DE60302203T2 - Anordnung zur Komprimierung einer Datentabelle - Google Patents

Anordnung zur Komprimierung einer Datentabelle Download PDF

Info

Publication number
DE60302203T2
DE60302203T2 DE60302203T DE60302203T DE60302203T2 DE 60302203 T2 DE60302203 T2 DE 60302203T2 DE 60302203 T DE60302203 T DE 60302203T DE 60302203 T DE60302203 T DE 60302203T DE 60302203 T2 DE60302203 T2 DE 60302203T2
Authority
DE
Germany
Prior art keywords
data table
code
data
uncompressed
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60302203T
Other languages
English (en)
Other versions
DE60302203D1 (de
Inventor
Richard A. Brighton Weaver
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Delphi Technologies Inc
Original Assignee
Delphi Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Delphi Technologies Inc filed Critical Delphi Technologies Inc
Publication of DE60302203D1 publication Critical patent/DE60302203D1/de
Application granted granted Critical
Publication of DE60302203T2 publication Critical patent/DE60302203T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf Techniken zum Komprimieren von Daten und spezifischer auf Techniken, um aus einer nicht komprimierten Datentabelle eine komprimierte Datentabelle zu bilden.
  • HINTERGRUND DER ERFINDUNG
  • Kalibrierungsdatentabellen in Kraftfahrzeuganwendungen stellen typischerweise eine Sammlung diskreter Werte dar, die eine gewünschte analoge Funktion approximieren. Um in der Praxis die analoge Funktion genauer zu approximieren, werden typischerweise bekannte Dateninterpolationstechniken verwendet, um die Kalibrierungsdaten zu bestimmen, die zwischen die diskreten Tabelleneinträge fallen, wobei in einer zweidimensionalen Tabelle eine derartige Interpolation die Kenntnis von vier benachbarten Tabelleneinträgen erfordert. Wenn z. B. die Dateneinträge in einer speziellen Kalibrierungsdatentabelle als "D" bezeichnet werden, dann sind die Datenelemente Di,j, Di,j+1, Di+1,j und Di+1,j+1 erforderlich, um die Datenwerte zwischen den Zeilen i und i + 1 und den Spalten j und j + 1 zu interpolieren.
  • Die Datentabellen können im Allgemeinen ziemlich groß sein, wobei sie deshalb eine signifikante Menge der Speicherkapazität für ihre Speicherung erfordern.
  • US 5 125 072 A offenbart ein Verfahren und eine Vorrichtung, die Text- und Bilddaten effizient speichern. Die Textdaten werden mit zwei Bits pro Bildpunkt gespeichert, wohingegen die Bilddaten mit vier Bits pro Bildpunkt gespeichert werden. Die verschiedenen Datenformate werden verschmolzen. Es wird eine Ortstabelle verwendet, um den Übergangsort zu speichern, wo sich ein Datenformat in das andere Datenformat ändert.
  • US 4 645 916 A offenbart ein Verfahren, um Felder von 4-Bit-, 5-Bit- und 7-Bit-Codes effizient zu speichern. Die Codes sind durch Feldtrennzeichen getrennt.
  • Es ist demzufolge erwünscht, derartige Datentabellen in kleinere Blöcke der Daten zu komprimieren, die weniger Speicher verbrauchen. Es ist außerdem bei den komprimierten Kalibrierungsdatentabellen erwünscht, die Fähigkeit zu bewahren, benachbarte Tabelleneinträge für die Dateninterpolation, wie sie gerade beschrieben worden ist, schnell und effizient wiederzugewinnen. Die vorliegende Erfindung ist auf Datentabellen-Komprimierungstechniken gerichtet, die konstruiert sind, um jede dieser Aufgaben sowohl separat als auch in Kombination zu lösen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung umfasst eines oder mehrere der folgenden Merkmale oder Kombinationen aus diesen. Es wird ein Verfahren zum Bilden einer komprimierten Datentabelle aus einer nicht komprimierten Datentabelle geschaffen, wobei die komprimierte Datentabelle in einem computerlesbaren Medium gespeichert sein kann. Die komprimierte Datentabelle kann auf einer Codebeschreibungs-Bitstruktur basieren, die eine erste Anzahl von Bits, die einen Codetyp definiert, und eine zweite Anzahl von Bits, die eine Folgenlänge der Datenelemente definiert, enthalten.
  • Es kann ein erster Code-Deskriptor als die Codebeschreibungs-Bitstruktur definiert werden, bei der die erste Anzahl von Bits so konfiguriert ist, dass sie einen Bytecode-Codetyp definieren, der ein Byte lange Datenelemente identifiziert, wobei jede Folge von einem oder mehreren ein Byte langen Datenelementen der nicht komprimierten Datentabelle mit dem ersten Code-Deskriptor, dessen Folgenlänge gleich der Anzahl von ein Byte langen Datenelementen in der Folge von einem oder mehreren ein Byte langen Datenelementen ist, gefolgt von dem einen oder den mehreren ein Byte langen Datenelementen in der komprimierten Datentabelle dargestellt werden kann. Es kann ein zweiter Code-Deskriptor als die Codebeschreibungs-Bitstruktur definiert werden, bei der die erste Anzahl von Bits so konfiguriert ist, dass sie einen Wortcode-Codetyp definieren, der ein Wort lange Datenelemente identifiziert, wobei jede Folge von einem oder mehreren ein Wort langen Datenelementen der nicht komprimierten Datentabelle mit dem zweiten Code-Deskriptor, dessen Folgenlänge gleich der Anzahl von ein Wort langen Datenelementen in der Folge von einem oder mehreren ein Wort langen Datenelementen ist, gefolgt von dem einen oder den mehreren ein Wort langen Datenelementen in der komprimierten Datentabelle dargestellt werden kann. Es kann ein dritter Code-Deskriptor als die Codebeschreibungs-Bitstruktur definiert werden, bei der die erste Anzahl von Bits so konfiguriert ist, dass sie einen ersten Kurzcode-Codetyp definiert, der ein erstes spezifiziertspezifiziertes Datenelement identifiziert, wobei jede Folge von einem oder mehreren ersten spezifiziertspezifizierten Datenelementen in der nicht komprimierten Datentabelle in der komprimierten Datentabelle dargestellt werden kann, wobei die Folgenlänge des dritten Code-Deskriptors gleich der Anzahl der ersten spezifiziertspezifizierten Datenelemente in der Folge von einem oder meh reren der ersten spezifiziertspezifizierten Datenelemente ist. Es kann ein vierter Code-Deskriptor als die Codebeschreibungs-Bitstruktur definiert werden, bei der die erste Anzahl von Bits so konfiguriert ist, dass sie einen zweiten Kurzcode-Codetyp definiert, der ein zweites spezifiziertspezifiziertes Datenelement identifiziert, das von dem ersten spezifiziertspezifizierten Datenelement verschieden ist, wobei jede Folge von einem oder mehreren der zweiten spezifiziertspezifizierten Datenelemente in der nicht komprimierten Datentabelle in der komprimierten Datentabelle dargestellt werden kann, wobei die Folgenlänge des vierten Code-Deskriptors gleich der Anzahl der zweiten spezifizierten Datenelemente in der Folge von einem oder mehreren der zweiten spezifizierten Datenelemente ist. Die Codebeschreibungs-Bitstruktur kann ein ein Byte langes Codebeschreibungs-Byte oder alternativ durch irgendeine Anzahl von Bits definiert sein.
  • Die komprimierte Datentabelle kann einen Kopfsatz definieren, wobei der Kopfsatz eine erste Anzahl von Bits, die die Anzahl von Zeilen in der nicht komprimierten Datentabelle definieren, und eine zweite Anzahl von Bits, die die Anzahl von Spalten in der nicht komprimierten Datentabelle definieren, enthält. Der Kopfsatz kann ferner eine dritte Anzahl von Bits enthalten, die ein durch einen Kurzcode-Codetyp identifiziertes spezifiziertes Datenelement definieren. Alternativ kann die komprimierte Datentabelle keinen Kopfsatz enthalten, wobei das erste Element in der komprimierten Datentabelle stattdessen eine im Voraus definierte Anzahl von Bits umfassen kann, die die erste Anzahl von Zeilen und die zweite Anzahl von Spalten definieren.
  • Es kann eine Zeilenbeschreibungsmatrix definiert und im computerlesbaren Medium gespeichert werden, wobei die Matrix eine Anzahl von Zeilenidentifizierern enthalten kann, die gleich der Anzahl von Zeilen in der nicht komprimierten Datentabelle ist, wobei jeder Zeilenidentifizierer einen entsprechenden der Code-Deskriptoren identifiziert, der in der komprimierten Datentabelle vorhanden ist und das erste Element in der entsprechenden Zeile der nicht komprimierten Datentabelle definiert.
  • In dem computerlesbaren Medium kann ein Suchalgorithmus gespeichert sein, der so konfiguriert sein kann, dass er aus der komprimierten Datentabelle Datenelemente wiedergewinnt, die Datenelementen in spezifizierten Zeilen und Spalten der nicht komprimierten Datentabelle entsprechen, indem zunächst ein geeigneter erster, zweiter oder dritter Code-Deskriptor in der komprimierten Datentabelle lokalisiert wird, der durch Zeilenidentifizierer, die den entsprechenden Zeilen entsprechen, identifiziert wird, und anschließend wenigstens der geeignete erste, zweite oder dritte Code-Deskriptor verarbeitet wird, um diejenigen Datenelemente in der komprimierten Datentabelle zu lokalisieren, die jenen in den spezifizierten Spalten der nicht komprimierten Datentabelle entsprechen.
  • Die nicht komprimierte Datentabelle kann eine Kalibrierungstabelle sein, die Daten zum Steuern wenigstens einer einem Kraftfahrzeug zugeordneten Funktion enthält.
  • Diese und andere Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung der veranschaulichenden Ausführungsformen offensichtlicher werden.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • 1 ist eine graphische Veranschaulichung eines Steuercomputers, der innerhalb eines Kraftfahrzeugs eingebettet ist und einen Speicher besitzt, der eine oder mehrere Kalibrierungsdatentabellen enthält.
  • 2 ist eine graphische Darstellung eines veranschaulichenden Formats eines Codebeschreibungsbytes, das verwendet wird, um die Daten zu komprimieren, die eine Datentabelle bilden.
  • 3 ist eine graphische Darstellung eines veranschaulichenden Formats einer komprimierten Datentabelle unter Verwendung einer Anordnung von Codebeschreibungsbytes des in 2 veranschaulichten Typs.
  • 4 ist eine graphische Darstellung einer veranschaulichenden Ausführungsform einer Zeilenbeschreibungsmatrix, die Zeilenidentifizierer enthält, die das erste Datenelement in jeder Zeile einer nicht komprimierten Datentabelle auf ihre entsprechenden Datenelemente in der komprimierten Datentabelle nach 3 abbilden.
  • 5 ist ein Beispiel einer nicht komprimierten Kalibrierungsdatentabelle.
  • 6A ist eine komprimierte Darstellung der Kalibrierungsdatentabelle nach 5 unter Verwendung einer Anordnung der Codebeschreibungsbytes des in 2 veranschaulichten Typs.
  • 6B ist eine Zeilenbeschreibungsmatrix, die Zeilenidentifizierer enthält, die das erste Datenelement in jeder Zeile der nicht komprimierten Datentabelle nach 5 mit den entsprechenden Datenelementen in der komprimierten Datentabelle nach 6A abbilden.
  • 7 ist ein Ablaufplan, der eine Ausführungsform eines Algorithmus zum Lokalisieren von vier benachbarten Datenelementen in der komprimierten Datentabelle nach 6A für deren anschließende Interpolation, um einen spezifischen Wert der Kalibrierungsdaten zu bestimmen, veranschaulicht.
  • BESCHREIBUNG DER VERANSCHAULICHENDEN AUSFÜHRUNGSFORMEN
  • In 1 ist eine graphische Veranschaulichung eines Steuercomputers 12 gezeigt, der in ein Kraftfahrzeug 10 eingebettet ist. Der Steuercomputer 12 enthält einen Mikroprozessor 14, der mit einer Speichereinheit 16 und einer Eingabe-/Ausgabe-Schaltungsanordnung (E/A-Schaltungsanordnung) 18, die den Mikroprozessor 14 und die Speichereinheit 16 über eine Anzahl M von Signalwegen 201–20M, wobei M irgendeine positive ganze Zahl sein kann, mit externen elektronischen Vorrichtungen und/oder Systemen verbindet, in Verbindung steht.
  • Die Speichereinheit 16 kann für die Datenspeicherung in Übereinstimmung mit irgendeiner von verschiedenen bekannten Techniken konfiguriert und/oder partitioniert sein, wobei in der in 1 veranschaulichten Ausführungsform die Speichereinheit 16 in einer bekannten Weise konfiguriert ist, um darin eine Anzahl verschiedener Informationstypen zu speichern. Die Speichereinheit 16 enthält z. B. einen ersten Abschnitt oder einen ersten Anteil, der konfiguriert ist, um einen oder mehrere Steueralgorithmen zum Steuern einer oder mehrerer Komponenten, eines oder mehrerer Systeme oder eines oder mehrerer Untersysteme des Kraftfahrzeugs 10 zu speichern. Ein zweiter Abschnitt oder Anteil der Speichereinheit 16 ist konfiguriert, um Betriebsdaten zu speichern, wobei derartige Daten Parameter-Schwellenwerte und/oder -Bereiche, vorgegebene Parameterwerte und dergleichen enthalten können, die durch den einen oder die mehreren Steueralgorithmen beim Steuern der einen oder mehreren Komponenten, Systeme oder Untersysteme des Kraftfahrzeugs verwendet werden. Ein dritter Abschnitt oder Anteil der Speichereinheit 16 ist konfiguriert, um dem Fahrzeug und/oder irgendeiner durch dieses getragenen Komponente zugeordnete Betriebsdaten zu sammeln und zu speichern. Derartige Daten können z. B. diagnostische Daten, Reisedaten, Kraftstoffverbrauchsdaten und/oder dergleichen enthalten. Ein vierter Abschnitt oder Anteil der Speichereinheit 16 ist konfiguriert, um irgendeine Anzahl N von Kalibrierungsdatentabellen zu speichern, wobei N irgendeine positive ganze Zahl sein kann. Jede der Kalibrierungsdatentabellen enthält typischerweise Informationen, die einen oder mehrere Betriebsparameter auf eine spezielle Fahrzeugfunktion abbilden. Eine spezielle Kalibrierungstabelle kann z. B. mit den Werten der Motor-Kraftstoffversorgung belegt sein, die die Werte der Motordrehzahl und der Motorbelastung auf die spezifizierten Kraftstoffversorgungs-Befehlswerte abbilden. Für den Fachmann auf dem Gebiet werden andere Beispiele deutlich sein Der in 1 veranschaulichte Steuercomputer 12 kann irgendeinen aus einer Anzahl von Steuercomputern repräsentieren, die typischerweise innerhalb eines Kraftfahrzeugs 10 eingebettet sind, einschließlich eines Motor-Steuercomputers, der konfiguriert ist, um den Gesamtbetrieb eines internen Verbrennungsmotors, der durch das Kraftfahrzeug 10 getragen wird, zu managen und zu steuern, eines Kraftübertragungs-Steuercomputers, der konfiguriert ist, um den Gesamtbetrieb der Kraftübertragung des Kraftfahrzeugs zu steuern und zu managen, eines Getriebe-Steuercomputers, der konfiguriert ist, um den Gesamtbetrieb eines automatischen oder halbautomatischen Getriebes, das durch das Kraftfahrzeug 10 getragen wird, zu steuern und zu managen, eines Antiblockiersystem-Steuercomputers (ABS-Steuercomputers), der konfiguriert ist, um den Gesamtbetrieb des Antiblockiersystems zu steuern und zu managen, oder dergleichen, aber nicht eingeschränkt auf diese. Die Fachleute auf dem Gebiet werden andere Steuercomputer erkennen, die in das Kraftfahrzeug 10 eingebettet sein können oder vom Kraftfahrzeug 10 getragen werden können, wobei vorgesehen ist, dass alle derartigen anderen Steuercompu ter im Allgemeinen durch den 1 veranschaulichten Steuercomputer 12 repräsentiert werden.
  • In 2 ist eine veranschaulichende Ausführungsform eines Codebeschreibungsbytes (CDB) gezeigt, wobei eine Sammlung derartiger Codebeschreibungsbytes verwendet werden kann, um eine Datentabelle zu komprimieren, um einen kleineren Block der Daten zu bilden, der für seine Speicherung weniger Speicher verbraucht. Das Codebeschreibungsbyte ist in einen CODETYP und in einen Code FOLGENLÄNGE partitioniert. Der CODETYP identifiziert den Typ der Daten, die in einigen Fällen dem Codebeschreibungsbyte folgen, während der Code FOLGENLÄNGE die Anzahl der Datenelemente definiert, die dem Codebeschreibungsbyte folgt. In der veranschaulichten Ausführungsform ist der CODETYP durch zwei Bits des Codebeschreibungsbyte definiert; z. B. die Bits 6 und 7, während der Code FOLGENLÄNGE durch die sechs verbleibenden Bits des Codebeschreibungsbytes definiert ist; z. B. die Bits 0–5. Es ist selbstverständlich, dass eine größere oder kleinere Anzahl von Bits verwendet werden kann, um sowohl den CODETYP als auch den Code FOLGENLÄNGE zu definieren, und/oder dass das Codebeschreibungsbyte alternativ ein Codebeschreibungswort sein kann, das aus zwei Bytes besteht, die einen CODETYP und einen Code FOLGENLÄNGE mit jeweils irgendeiner gewünschten Anzahl von Bits definieren. Das Codebeschreibungsbit kann demzufolge eine Codebeschreibungs-Bitstruktur mit irgendeiner Bitlänge sein, die irgendeine Anzahl von verschiedener CODETYPEN und irgendeine Anzahl von entsprechenden FOLGENLÄNGEN definiert. In der folgenden Beschreibung wird die Codebeschreibungs-Bitstruktur im Kontext eines Codebeschreibungsbytes beschrieben, obwohl es selbstverständlich sein wird, dass die Codebeschreibungs-Bitstruktur alternativ kleiner oder größer als eine Länge von einem Byte sein kann, wie gerade beschrieben worden ist. Eine komprimierte Datentabelle 40 wird aus einer nicht komp rimierten Datentabelle gebildet, indem die verschiedenen nicht komprimierten Einträge unter Verwendung der Codebeschreibungsbytes des gerade beschriebenen Typs dargestellt werden, wobei jedem Codebeschreibungsbyte eine Anzahl von Dateneinträgen folgen kann, um die Struktur CDB[DATEN] CDB[DATEN] ..., zu bilden, wie in 3 veranschaulicht ist.
  • Der CODETYP definiert spezifische Datentypen, wobei in einigen Fällen derartige Daten dem Codebeschreibungsbyte folgen. Die Gesamtzahl der verschiedenen Codetypen, die definiert sein können, ist durch die Anzahl der Bits vorgeschrieben, die verwendet wird, um den Codetype im Codebeschreibungsbyte darzustellen. In der veranschaulichten Ausführungsform ist der CODETYP z. B. durch zwei Bits definiert; nämlich die Bits 6 und 7 des Codebeschreibungsbyte, wobei er demzufolge bis zu vier verschiedene Datentypen definieren kann. Jeder der Codetypen definiert ein spezifisches Datenformat, wobei in der in 2 veranschaulichten Ausführungsform ein erster Code-Deskriptor mit einem CODETYP 11 einen BYTECODE definiert, was bedeutet, dass die Dateneinträge, die dem Codebeschreibungsbyte in der komprimierten Datentabelle folgen, BYTE-Daten repräsentieren, wobei deshalb jeder derartige Dateneintrag eine Länge von einem Byte besitzt. Die Anzahl derartiger Dateneinträge, die dem Codebeschreibungsbyte in der komprimierten Datentabelle folgen, ist durch die FOLGENLÄNGE des Codebeschreibungsbytes definiert. Es wird z. B. angenommen, dass die folgenden zwölf hexadezimalen Einträge in einer nicht komprimierten Datentabelle nacheinander vorkommen; 0000E0, 0000FF, 0000A9, 0000B7, 00001A, 000001, 0000D8, 0000C9, 000015, 000022, 00006C, 00004D. Alle zwölf Einträge repräsentieren die BYTECODE-Daten, wobei das Codebeschreibungsbyte für derartige Daten folglich "11" in den Bits 6 und 7, um einen CODETYP darzustellen, der den BYTECODE-Daten entspricht, und "001100" in den Bits 0–5, um eine FOLGENLÄNGE von 12 Ein-Byte-Daten-Einträgen darzustellen, die dem Codebeschreibungsbyte folgen, sein würde. Hexadezimal würde das Codebeschreibungsbyte folglich "CC" sein, wobei die Darstellung des Beispiels der nicht komprimierten BYTECODE-Datenkette in einer komprimierten Datentabelle die Form CDB[DATEN] oder CCE0FFA9B71A01D8C915226C 4D besitzen würde.
  • In der veranschaulichten Ausführungsform definiert ein zweiter Code-Deskriptor, der einen CODETYP 10 besitzt, einen WORTCODE, was bedeutet, dass die Dateneinträge, die dem Codebeschreibungsbyte in der komprimierten Datentabelle folgen, WORT-Daten repräsentieren, wobei jeder derartige Dateneintrag deshalb eine Länge von zwei Bytes besitzt. Wie bei den BYTECODE-Daten ist die Anzahl derartiger Dateneinträge, die dem Codebeschreibungsbyte in der komprimierten Datentabelle folgen, durch die FOLGENLÄNGE des Codebeschreibungsbyte definiert. Es wird z. B. angenommen, dass die folgenden fünf hexadezimalen Einträge in einer nicht komprimierten Datentabelle nacheinander vorkommen; 0018E0, 0024FF, 0A9A9, 0045B7, 00F41A. Alle fünf Einträge repräsentieren WORTCODE-Daten, wobei das Codebeschreibungsbyte für derartige Daten folglich "10" in den Bits 6 und 7, um einen CODETYP darzustellen, der den BYTECODE-Daten entspricht, und "000101" in den Bits 0–5, um eine FOLGENLÄNGE von fünf Doppelbyte-Dateneinträgen darzustellen, die dem Codebeschreibungsbyte folgen, sein würde. Hexadezimal würde das Codebeschreibungsbyte folglich "85" sein, wobei die Darstellung des Beispiels der nicht komprimierten WORTCODE-Datenkette in einer komprimierten Datentabelle die Form CDB[DATEN] oder 8518E024FFA9A945B7F41A besitzen würde.
  • In der in 2 veranschaulichten Ausführungsform definiert ein dritter Code-Deskriptor, der einen CODETYP 00 besitzt, einen ersten Kurz-Code, KURZCODE1, während ein vierter Code-Deskriptor, der einen CODETYP 01 besitzt, einen zweiten Kurz-Code, KURZCODE2, definiert. KURZCODE1 und KURZCODE2 sind jeweils benutzerdefinierbare Datentypen, die verwendet werden können, um spezielle Ketten der Daten zu definieren, die durch irgendeinen anderen CODETYP nicht definierbar sind und/oder die mit irgendeiner Häufigkeit in der nicht komprimierten Datentabelle vorkommen können. Eine Datenkette, die zu groß sein kann, um sie entweder durch einen BYTECODE- oder durch einen WORTCODE-CODETYPE zu definieren, kann z. B. stattdessen als der KURZCODE1 oder der KURZCODE2 definiert werden. Wie im Allgemeinen in 3 veranschaulicht ist, kann die komprimierte Datentabelle 40 einen Kopfsatz enthalten, wobei in einer Ausführungsform der Kopfsatz sowohl die Indikatoren der Anzahl der Zeilen und Spalten in der nicht komprimierten Datentabelle als auch die Codedefinitionen aller Kurz-Codes, die durch ein oder mehrere Codebeschreibungsbytes definiert sind, enthalten kann. In dieser Ausführungsform kann der Kopfsatz z. B. das folgende Format besitzen:
    ZEILEN, SPALTEN, KURZCODE1LÄNGE, KURZCODE1, KURZCODE2LÄNGE, KURZCODE2, wobei KURZCODE1LÄNGE und KURZCODE2LÄNGE ein Byte lange Indikatoren der Bitlängen des KURZCODE1 bzw. des KURZCODE2 sind.
  • Als ein Beispiel wird eine nicht komprimierte Datentabelle betrachtet, die 10 Zeilen (0A hexadezimal) und 20 Spalten (14 hexadezimal) sowie einen hexadezimalen Eintrag der Form EAAEFBB (28 Bits oder "1C" hexadezimal lang), der neunmal nacheinander in der nicht komprimierten Datentabelle vorkommt, und einen weiteren hexadezimalen Eintrag der Form FDFACB (24 Bits oder "18" hexadezimal lang), der 4-mal nacheinander in der nicht komprimierten Datentabelle vorkommt, besitzt. Weil diese Datenketten jede zu groß sind, um sie als BYTECODE- oder WORTCODE-CODETYPEN darzustellen, wird die erste als der KURZCODE1 und die zweite als der KURZCODE2 definiert. Der Kopfsatz der komprimierten Datentabelle 40 in der oben beschriebenen Ausführungsform ist dann 0A 141CEAAEFFBB18FDFACB. Alternativ kann der Kopfsatz nur die Indikatoren der Anzahl der Zeilen und Spalten in der nicht komprimierten Datentabelle enthalten; z. B. 0A14 im obigen Beispiel, wobei die Definitionen aller Kurz-Codes als Variable zum Datenwiedergewinnungsalgorithmus weitergeleitet werden können, der konfiguriert ist, um die Daten aus der komprimierten Datentabelle 40 wiederzugewinnen. Nochmals alternativ kann der Kopfsatz aus der komprimierten Datentabelle 40 weggelassen werden, wobei die Indikatoren der Anzahl der Zeilen und Spalten in der in nicht komprimierten Datentabelle als das erste Element in der komprimierten Datentabelle selbst enthalten sein können, wobei die Definitionen aller Kurz-Codes als Variable zum Datenwiedergewinnungsalgorithmus weitergeleitet werden können. In dieser Ausführungsform kann das erste Element in der komprimierten Datentabelle 40, das die Anzahl der Zeilen und Spalten in der nicht komprimierten Datentabelle umfasst, durch irgendeine Anzahl von Bits in irgendeinem gewünschten Format definiert sein. Eine erste Anzahl von Bits des ersten Datenelements in der komprimierten Datentabelle 40 kann z. B. die Anzahl der Zeilen in der nicht komprimierten Datentabelle definieren, während eine zweite Anzahl der folgenden Bits die Anzahl der Spalten in der nicht komprimierten Datentabelle definieren kann. Im obigen Beispiel kann das erste Element in der komprimierten Datentabelle 40 das ein Wort lange Datenelement "0A14" sein, wobei "0A" angibt, dass die nicht komprimierte Datentabelle 10 Zeilen der nicht komprimierten Daten besitzt, während "14" angibt, dass die nicht komprimierte Datentabelle 20 Spalten der nicht komprimierten Daten besitzt.
  • In jedem Fall folgen einem Codebeschreibungsbyte, das irgendeinen Kurz-Code definiert, im Allgemeinen in der komprimierten Datentabelle 40 keine Daten, weil die Daten bereits durch den Kurz-Code selbst definiert sind. Die tatsächlichen Daten des Kurz-Codes können im Kopfsatz der Tabelle 40 gefunden werden, oder sie können als Variable zu einem Datenwiedergewinnungsalgorithmus weitergeleitet werden, wie gerade beschrieben worden ist. Folglich wird im oben angegebenen Beispiel ein Codebeschreibungsbyte für EAAEFBB, das neunmal nacheinander in der nicht komprimierten Datentabelle vorkommt und das als der KURZCODE1 definiert ist, in der komprimierten Datentabelle 40 einfach als "09" (die Bits 7 bzw. 6 des Codebeschreibungsbytes sind "00" und die Bits 5–0 sind entsprechend "001001" oder "09" hexadezimal) dargestellt. Ähnlich wird ein Codebeschreibungsbyte für FDFACB, das viermal nacheinander vorkommt und das als der KURZCODE2 definiert ist, in der komprimierten Datentabelle 40 einfach als "44" (die Bits 7 bzw. 6 des Codebeschreibungsbytes sind "01" und die Bits 5–0 sind entsprechend "000100" oder "44" hexadezimal) dargestellt.
  • Wie oben beschrieben worden ist, kann das Codebeschreibungsbyte konfiguriert sein, um irgendeine Anzahl von verschiedenen CODETYPEN und FOLGENLÄNGEN zu definieren, wobei die Fachleute auf dem Gebiet erkennen werden, dass die Anzahl der verschiedenen CODETYPEN und die zulässige Größe der FOLGENLÄNGE in Abhängigkeit von der Anwendung variieren können, wobei sie im Allgemeinen durch die Größe der nicht komprimierten Datentabelle und die Art ihrer Inhalte vorgeschrieben sind. Als ein Beispiel ist das in 2 veranschaulichte Codebeschreibungsbyte konfiguriert, um außer einem WORTCODE und einem BYTECODE zwei benutzerdefinierbare Kurz-Codes zu erlauben und um FOLGENLÄNGEN von bis zu 64 (z. B. sechs verfügbare Bits oder 26) zu erlauben. Als ein weiteres Beispiel kann das Codebeschreibungsbyte konfiguriert sein, um drei Bits, um den CODETYP zu definieren, und fünf Bits, um die FOLGENLÄNGE zu definieren, zu erlauben. In diesem Beispiel ist das Codebeschreibungsbyte konfiguriert, um außer einem WORTCODE und einem BYTECODE sechs benutzerdefinierbare Kurz-Codes zu erlauben, und um FOLGENLÄNGEN von bis zu 32 (z. B. fünf verfügbare Bits oder 25) zu erlauben. Die Fachleute auf dem Gebiet werden andere Konfigurationen des Codebeschreibungsbytes erkennen, wobei vorgesehen ist, dass derartige andere Konfigurationen in den Umfang der vorliegenden Erfindung fallen. Nochmals alternativ kann das Codebeschreibungsbyte durch eine Codebeschreibungsstruktur ersetzt sein, die weniger als acht Bits besitzt, oder es kann durch eine Codebeschreibungs-Bytebit-Kombination, -Wort-, -Wortbit- oder Wortbyte-Kombination oder Kombinationen von Wörtern, die mehr als acht Bits besitzen, ersetzt sein. In derartigen Fällen kann demzufolge irgendeine Anzahl von Bits oder Bytes verwendet werden, um die Anzahl der verschiedenen CODETYPEN und die FOLGENLÄNGE zu definieren.
  • In jedem Fall wird die komprimierte Datentabelle 40, die sich aus der vorausgehenden Datenkompressionstechnik ergibt, im Speicher 16 (1) als ein Block von Daten gespeichert, dem in einigen Ausführungsformen ein Kopfsatz vorangehen kann, wie gerade beschrieben worden ist. Um die Wiedergewinnung der Daten aus der komprimierten Datentabelle 40 zu unterstützen, die den Daten an spezifischen Stellen in der nicht komprimierten Datentabelle entsprechen, ist es erwünscht, in der komprimierten Datentabelle 40 die verschiedenen Einträge zu identifizieren, die die ersten Datenelemente in jeder Zeile der nicht komprimierten Datentabelle definieren. Dies wird mit einer Zeilenbeschreibungsmatrix erreicht, wobei eine veranschaulichende Ausführungsform einer derartigen Matrix 50 in 5 veranschaulicht ist. Die Zeilenbeschreibungsmatrix 50 enthält "X" Zeilenidentifizierer R1–RX, wobei "X" der Anzahl der Zeilen in der nicht komprimierten Datentabelle entspricht. Jeder Zeilenidentifizierer R1–RX in der Zeilenbeschreibungsmatrix 50 identifiziert einen Eintrag in der kompri mierten Datentabelle 40, der das erste Element in der Zeile der nicht komprimierten Datentabelle definiert, die diesem Zeilenidentifizierer entspricht. In der veranschaulichten Ausführungsform beginnen verschiedenen Gruppen von Einträgen in der komprimierten Datentabelle 40, die die einzelnen Zeilen der nicht komprimierten Datentabelle definieren, jede mit einem Codebeschreibungsbyte. Mit anderen Worten, der Beginn jeder Zeile in der nicht komprimierten Datentabelle ist in der komprimierten Datentabelle als ein Codebeschreibungsbyte eingetragen. Wenn der CODETYP dieses Codebeschreibungsbytes ein Kurz-Code ist (z. B. der KURZCODE1 oder der KURZCODE2), dann definiert das Codebeschreibungsbyte selbst das erste Datenelement dieser Zeile. Wenn andererseits der CODETYP des Codebeschreibungsbytes ein BYTECODE ist, dann definiert das Byte, das dem Codebeschreibungsbyte folgt, das erste Datenelement dieser Zeile, wobei, wenn der CODETYP stattdessen ein WORTCODE ist, dann das Zwei-Byte-Wort, das dem Codebeschreibungsbyte folgt, das erste Datenelement dieser Zeile definiert.
  • Im obigen Beispiel wurde die nicht komprimierte Datentabelle als zehn Zeilen und 20 Spalten besitzend identifiziert, wobei eine entsprechende Zeilenbeschreibungsmatrix 50 demzufolge 10 Zeilenidentifizierer R1–R10 enthält. Der erste Zeilenidentifizierer R1 zeigt auf die Stelle in der komprimierten Datentabelle 40, an der das Codebeschreibungsbyte, das das erste Datenelement in der ersten Zeile der nicht komprimierten Datentabelle definiert, gefunden werden kann. In den Ausführungsformen der komprimierten Datentabelle 40, die einen Kopfsatz enthalten, kann der Kopfsatz als Ganzes als das erste Element in der Tabelle 40 betrachtet werden. Alternativ kann in Ausführungsformen der komprimierten Datentabelle 40, die keinen Kopfsatz enthalten, das erste "Element", das aus einer vorgegebenen Anzahl von Bits besteht, ein Indikator der Anzahl der Zeilen und Spalten der nicht komprimierten Daten in der nicht kompri mierten Datentabelle sein. In jeder derartigen Ausführungsform ist das zweite Element in der komprimierten Datentabelle 40 folglich das erste Codebeschreibungsbyte, das das erste oder mehrere Datenelemente in der ersten Zeile der nicht komprimierten Datentabelle definiert, wobei R1 in diesem Fall "02" ist. In den Ausführungsformen der komprimierten Datentabelle 40, die keinen Kopfsatz enthalten und in denen irgendeine oder mehrere der Anzahl der Zeilen der Daten in der nicht komprimierten Datentabelle, der Anzahl der Spalten der Daten in der nicht komprimierten Datentabelle, ein oder mehrere Kurzcode-Folgenlängen-Deskriptoren und/oder eine oder mehrere Kurzcodedefinitionen als Variable zwischen den Datenwiedergewinnungsalgorithmen weitergeleitet werden, würde R1 "01" sein. Vorausgesetzt, dass die zweite Zeile in der nicht komprimierten Datentabelle kein genaues Duplikat der ersten Zeile ist, würde R2 dann auf das Codebeschreibungsbyte in der komprimierten Datentabelle 40 zeigen, das das erste Element in der zweiten Zeile der nicht komprimierten Datentabelle definiert, usw. Falls jedoch die zweite Zeile der nicht komprimierten Datentabelle ein genaues Duplikat der ersten Zeile ist, würde das Einbeziehen derartiger Daten in die komprimierte Datentabelle 40 redundant sein. In derartigen Fällen würde über die doppelte Zeile über die Zeilenbeschreibungsmatrix 50 Rechenschaft abgelegt, indem einfach der Wert von R1 als der Wert von R2 verdoppelt wird. In dieser Weise müssen die Daten für die zweite Zeile der komprimierten Datentabelle 40 nicht tatsächlich in die komprimierte Datentabelle 40 eingetragen werden, weil über die Zeilenbeschreibungsmatrix 50 über die Datenverdoppelung Rechenschaft abgelegt wird. Diese Technik wird auf irgendeine Anzahl von Wiederholungen in irgendeiner Anzahl von Zeilen der nicht komprimierten Datentabelle angewendet. In jedem Fall werden für den Zweck des Definierens und des Zählens der verschiedenen Einträge in der Zeilenbeschreibungsmatrix 50 die Dateneinträge oder -elemente in der komprimierten Datentabelle 40 als mit einer Länge von einem Byte betrachtet, sodass alle BYTECODE-Dateneinträge als ein Datenelement gezählt werden, während alle WORTCODE-Dateneinträge als zwei Elemente gezählt werden.
  • In den 5, 6A und 6B ist ein Beispiel bereitgestellt, um die Komprimierung einer 10-Zeilen-mal-21-Spalten-Tabelle 60 der Kalibrierungsdaten auf eine signifikant kleinere komprimierte Kalibrierungstabelle 70 und die begleitende Zeilenbeschreibungsmatrix 80 zu demonstrieren. In diesem Beispiel enthält die komprimierte Kalibrierungstabelle 70 keinen Kopfsatz, wobei die Anzahl der Zeilen und Spalten der nicht komprimierten Daten in der nicht komprimierten Kalibrierungstabelle 60 durch das erste ein Wort lange Element in der komprimierten Kalibrierungstabelle 70 dargestellt wird. Weil die Anzahl der Zeilen der nicht komprimierten Daten in der nicht komprimierten Kalibrierungstabelle 60 gleich 10 ist, das "0A" hexadezimal ist, und weil die Anzahl der Spalten der nicht komprimierten Daten in der nicht komprimierten Datentabelle 60 gleich 21 ist, das "15" hexadezimal ist, ist folglich das erste Element in der komprimierten Kalibrierungstabelle 70 nach einem ZEILEN-, SPALTEN-Format "0A15", wie in 6A veranschaulicht ist.
  • Aus 5 ist ersichtlich, dass die ersten drei Zeilen der nicht komprimierten Kalibrierungstabelle 60 völlig gleich sind, wobei jede aus 21 Einträgen der völlig gleichen Daten "FFFFFFFF" besteht. Es ist demzufolge bei derartigen Daten erwünscht, den ersten Kurz-Code KURZCODE1 als "FFFFFFFF" zu definieren, der eine Bitlänge oder KURZCODE1 LÄNGE von 32 (hexadezimal 20) besitzt. Alle verbleibenden Daten in der nicht komprimierten Kalibrierungstabelle 60 sind entweder als ein WORTCODE oder als ein BYTECODE definierbar, deshalb ist eine zweite Kurz-Code-Definition in diesem Fall nicht notwendig, wobei in diesem Beispiel die Werte der KURZCODE1LÄNGE und des KURZCODE1 als Variable zwischen den Datenwiedergewinnungsalgorithmen weitergeleitet werden.
  • Der CODETYP für den KURZCODE1 ist "00", wobei die FOLGENLÄNGE für die Daten in jeder der drei Zeilen 21 (hexadezimal 15) ist, sodass das Codebeschreibungsbyte, das den KURZCODE1 definiert, der eine FOLGENLÄNGE von 21 besitzt, "15" ist, das folglich der erste Eintrag in der komprimierten Kalibrierungstabelle 70 nach dem Kopfsatz ist, wie in 6A veranschaulicht ist. Weil das erste Codebeschreibungsbyte einen Kurz-Code definiert und weil das erste Codebeschreibungsbyte dem Kopfsatz folgt, ist der Eintrag in der komprimierten Kalibrierungstabelle 70, der das erste Datenelement in der ersten Zeile der nicht komprimierten Kalibrierungstabelle 60 definiert, das zweite Element in der komprimierten Kalibrierungstabelle 70 (das erste Element ist der ein Wort lange Zeilen-/Spaltenanzahl-Deskriptor "0A15"). Der erste Zeilenidentifizierer in der Zeilenbeschreibungsmatrix 80 ist demzufolge "02". Weil die Zeilen zwei und drei der nicht komprimierten Kalibrierungstabelle 60 zur ersten Zeile völlig gleich sind, ist es überflüssig, die Datenelemente der Zeilen zwei und drei in der komprimierten Kalibrierungstabelle 70 zu definieren, wobei sie stattdessen jedes als das zweite Element in der komprimierten Kalibrierungstabelle 70 identifiziert werden. Die zweiten und dritten Zeilenidentifizierer in der Zeilenbeschreibungsmatrix 80 sind demzufolge jeder "02".
  • Die vierte Zeile der nicht komprimierten Kalibrierungstabelle 60 ist durch vier aufeinanderfolgende KURZCODE1-Datenelemente, gefolgt von drei aufeinanderfolgenden WORTCODE-Datenelementen, gefolgt von neun aufeinanderfolgenden BYTECODE-Datenelementen, gefolgt von fünf aufeinanderfolgenden KURZCODE1-Datenelementen, definiert. Das Codebeschreibungsbyte für die ersten vier KURZCODE1-Datenelemente ist "04", wobei dies folglich der dritte Eintrag in der komprimierten Kalibrierungstabelle 70 ist, wie in 6A veranschaulicht ist. Das Codebeschreibungsbyte für die drei folgenden aufeinanderfolgenden WORTCODE- Datenelemente ist "83" hexadezimal, wobei die drei aufeinanderfolgenden ein Wort langen Datenelemente "0276", "01 F4 bzw. "0172" sind. Die Einträge 4–10 in der komprimierten Kalibrierungstabelle 70 sind folglich "830127601F40172", wobei angegeben werden sollte, dass, weil "83" drei aufeinanderfolgende WORTCODE-Datenelemente definiert, die drei Dateneinträge, die dem Codebeschreibungsbyte "83" folgen, jedes zwei Bytes lang sind, wobei sie deshalb über sechs ein Byte lange Dateneinträge in der komprimierten Kalibrierungstabelle 70 Rechenschaft ablegen. Das Codebeschreibungsbyte für die neun folgenden aufeinanderfolgenden BYTECODE-Datenelemente ist "C9" hexadezimal, wobei die neun aufeinanderfolgenden ein Byte langen Datenelemente "BE", "96", "7D", "69", "5F", "41", "37", "1E" bzw. "28" sind. Die Einträge 11–20 in der komprimierten Kalibrierungstabelle 70 sind folglich "C9BE967D695F41371E28". Schließlich ist das Codebeschreibungsbyte für die fünf folgenden aufeinanderfolgenden KURZCODE1-Datenelemente, die die Zeile vier der nicht komprimierten Kalibrierungstabelle 60 abschließen, "05", wobei der Eintrag 21 in der komprimierten Datentabelle 70 folglich "05" ist. Weil dieser dritte Eintrag in der komprimierten Kalibrierungstabelle 70 das Codebeschreibungsbyte ist, das das erste Datenelement in der vierten Zeile der nicht komprimierten Kalibrierungstabelle 60 definiert, ist der vierte Zeilenidentifizierer in der Zeilenbeschreibungsmatrix 80 folglich "03".
  • Weil die Zeile vier der nicht komprimierten Kalibrierungstabelle 60 in der komprimierten Kalibrierungstabelle 70 mit dem Element 21 endet, ist das Element 22 der komprimierten Kalibrierungstabelle 70 das Codebeschreibungsbyte, das den ersten Dateneintrag der Zeile fünf der nicht komprimierten Kalibrierungstabelle 60 definiert. Der erste Dateneintrag in der Zeile fünf der nicht komprimierten Kalibrierungstabelle 60 repräsentiert ein einzelnes Auftreten der KURZCODE1-Daten, wobei das Codebeschreibungsbyte, das das Element 22 in der komprimierten Kalibrierungstabelle 70 definiert, folglich "01" ist, wie in 6A veranschaulicht ist. Weil das Element 22 der komprimierten Kalibrierungstabelle 70 den ersten Dateneintrag in der Zeile fünf der nicht komprimierten Kalibrierungstabelle 60 definiert, ist der fünfte Zeilenidentifizierer der Zeilenbeschreibungsmatrix 80 folglich 16 (d. h. "22" dezimal entspricht "16" hexadezimal).
  • Die verbleibenden Dateneinträge der nicht komprimierten Kalibrierungstabelle 60 werden in die komprimierte Kalibrierungstabelle 70 eingetragen, wobei die Zeilenidentifizierer der Zeilenbeschreibungsmatrix 80 in der gleichen Weise definiert werden, um die komprimierte Kalibrierungstabelle 70 und die zugeordnete Zeilenbeschreibungsmatrix 80 zu erzeugen, die in den 6A und 6B veranschaulicht sind. Die Fachleute auf dem Gebiet werden erkennen, dass die Datenkomprimierungstechnik, die verwendet worden ist, um die komprimierte Kalibrierungstabelle 70 und die Zeilenbeschreibungsmatrix 80 zu bilden, auf jede geeignete Datentabelle in irgendeiner Anwendung angewendet werden kann, in der eine derartige Datentabelle in einem elektronisch zugänglichen Speicher gespeichert ist, während die Konstruktion der komprimierten Kalibrierungstabelle 70 und der Zeilenbeschreibungsmatrix 80 aus der nicht komprimierten Kalibrierungstabelle 60 im Kontext der innerhalb des Speichers 16 des Steuercomputers 12, der innerhalb eines Kraftfahrzeugs 10 eingebettet ist (siehe 1), gespeicherten Kalibrierungstabelle beschrieben worden ist.
  • Wie oben im HINTERGRUND-Abschnitt beschrieben worden ist, ist es in einigen Anwendungen erwünscht, die Datenelemente aus einer komprimierten Datentabelle, die benachbart angeordneten Datenelementen in der nicht komprimierten Datentabelle entsprechen, für den Zweck der Dateninterpolation oder einer oder mehrerer anderer Datenapproximationsfunktionen wiederzugewinnen. 7 zeigt einen Ablaufplan, der eine Ausführungsform eines Software-Algorithmus 100 zum Wiedergewinnen von vier Datenelementen aus der komprimierten Kalibrierungstabelle 70 nach 6A veranschaulicht, die den vier benachbart angeordneten Datenelementen in der nicht komprimierten Kalibrierungstabelle 60 nach 5 entsprechen. Der Algorithmus 100 erfordert die Kenntnis nur des Zeilen-Spalten-Orts von einem der Dateneinträge in der nicht komprimierten Kalibrierungstabelle 60, wobei in der in 7 veranschaulichten Ausführungsform des Algorithmus 100 dieser Zeilen-Spalten-Ort die Zeilen- und Spaltenkombination mit dem kleinsten Wert ist. Falls folglich erwünscht ist, die Datenelemente DX,Y, DX,Y+1, DX+1,Y und DX+1,Y+1 wiederzugewinnen, erfordert der Algorithmus 100 als Eingaben die Zeile X und die Spalte Y. Die Wahl dieses speziellen Zeilen-Spalten-Ortes ist beliebig, wobei die Fachleute auf dem Gebiet erkennen werden, dass der Algorithmus 100 alternativ konfiguriert sein kann, um als die Eingangs-Zeilen-Spalten-Kombination irgendeine der drei verbleibenden Zeilen-Spalten-Kombinationen zu empfangen. Die Modifikation des Algorithmus 100, um ihn an irgendeine derartige alternativ Wahl der Eingangs-Zeilen-Spalten-Kombination anzupassen, würde für einen Fachmann einen mechanischer Schritt sein.
  • Der Algorithmus 100 wird beschrieben, wie er durch den Steuercomputer 12 ausgeführt wird, obwohl es selbstverständlich ist, dass der Algorithmus 100 alternativ durch irgendeinen Universalcomputer ausgeführt werden kann, der betreibbar ist, wie hierin beschrieben ist. Für den Zweck der Veranschaulichung wird der Algorithmus 100 außerdem im Kontext eines Beispiels beschrieben, das sich auf die nicht komprimierte Kalibrierungstabelle 60 nach 5, die komprimierte Kalibrierungstabelle 70 nach 6A und die Zeilenbeschreibungsmatrix 80 nach 6B bezieht. In diesem Beispiel sind die vier benachbarten Datenelemente in der nicht komprimierten Kalibrierungstabelle 60, die in der komprimierten Kalibrierungstabelle 70 zu finden sind, die Datenelemente in der Zeile 6, den Spalten 4 und 5, und in der Zeile 7, den Spalten 4 und 5, die "000008D4", "0000051E", "000000B31" bzw. "00000704" entsprechen, wie in 5 hervorgehoben ist. Es ist selbstverständlich, dass dieses Beispiel nur für den Zweck der Veranschaulichung des Algorithmus 100 bereitgestellt worden ist und dass es in keiner Weise vorgesehen ist, um den Umfang der vorliegenden Erfindung einzuschränken.
  • Der Algorithmus 100 beginnt im Schritt 102, in dem der Steuercomputer 12 betreibbar ist, um als Eingaben die Zeile X und die Spalte Y zu empfangen, deren Kombination der Zeilen-Spalten-Kombination mit dem niedrigsten Wert entspricht, wo sich die gesuchten Daten, die wiederzugewinnen sind, in der nicht komprimierten Kalibrierungstabelle 60 befinden, wie oben beschrieben worden ist. In dem angegebenen Beispiel ist X folglich 6, während Y gleich 4 ist. Nach dem Schritt 102 geht die Ausführung des Algorithmus zum Schritt 104 weiter, in dem ein Zähler i auf eins gesetzt wird und eine Vier-Element-Daten-Matrix INT initialisiert wird. Danach ist im Schritt 106 der Steuercomputer 12 betreibbar, um das Element X in der Zeilenbeschreibungsmatrix 80 zu finden. In dem Beispiel ist X gleich 6, deshalb ist der Steuercomputer 12 im Schritt 106 betreibbar, um den 6. Zeilenidentifizierer (Rx) in der Zeilenbeschreibungsmatrix 80 wiederzugewinnen, der "33" hexadezimal ist, wie in 6B gezeigt ist. Der Wert des 6. Zeilenidentifizierers in der Zeilenbeschreibungsmatrix 80 ist die Elementnummer in der komprimierten Kalibrierungstabelle 70, die dem ersten Eintrag in der sechsten Zeile der nicht komprimierten Kalibrierungstabelle 60 entspricht.
  • Nach dem Schritt 106 geht die Ausführung des Algorithmus zum Schritt 108 weiter, in dem der Steuercomputer 12 betreibbar ist, um das Element Rx in der komprimierten Kalibrierungstabelle 70 zu finden. In dem Beispiel ist Rx hexadezimal "33", das dezimal "51" entspricht. Im Schritt 106 ist der Steuercomputer 12 folglich betreibbar, um das 51. Element in der komprimierten Kalibrierungstabelle 70 zu finden, das "89" ist, wie in 6A hervorgehoben ist. Nach dem Schritt 108 geht der Algorithmus 100 zum Schritt 110 weiter, in dem der Steuercomputer 12 betreibbar ist, um sowohl den Wert des Elements Rx in der nicht komprimierten Kalibrierungstabelle 60 als auch alle zusätzlichen Elemente, die dem Element Rx folgen, zu verarbeiten, um die Elemente Y und Y + 1 in der Zeile zu finden, die mit dem Element Rx beginnt. Der Wert des Elements Y wird als CY bezeichnet, während der Wert des Elements Y + 1 als CY+1 bezeichnet wird. In dem Beispiel ist Y gleich 4, während Y + 1 gleich 5 ist, wobei der Steuercomputer 12 demzufolge im Schritt 110 betreibbar ist, um das Element Rx zu verarbeiten, das das Element 51 in der komprimierten Kalibrierungstabelle 70 ist, um die Werte der 4. und 5. Elemente der Zeile zu finden, die mit dem Element 51 beginnt. Wie im Schritt 108 bestimmt wird, ist der Wert (Rx) des Elements 51 hexadezimal "89", und weil das Element 51 die Zeile 6 der nicht komprimierten Kalibrierungstabelle 60 beginnt, muss das Element 51 demzufolge ein Codebeschreibungsbyte sein. Ein Codebeschreibungsbyte mit dem hexadezimalen Wert "89" wird in "10001001" binär umgesetzt, wobei unter abermaliger Bezugnahme auf 2 dieses Codebeschreibungsbyte ein WORTCODE ist, der neun ein Wort lange Einträge besitzt, die dem Codebeschreibungsbyte folgen, weil die Bits 7 und 6 dieses binären Werts "10" und die Bits 5–0 "001001" sind. Weil in diesem Fall Y und Y + 1 (vier bzw. fünf) beide kleiner als die FOLGENLÄNGE des Codebeschreibungsbytes "89" sind, entsprechen die Elemente Y und Y + 1 folglich den 4. und 5. Wörtern, die dem Codebeschreibungsbyte "89" folgen. CY ist folglich "08D4", während CY+1 "051C" ist, wie in 6A veranschaulicht ist.
  • Nach dem Schritt 110 geht der Algorithmus 100 zum Schritt 112 weiter, in dem der Steuercomputer 12 betreibbar ist, um den i-ten (= 1 im ersten Durchlauf des Algorithmus 100) Wert der Vier-Element-Daten-Matrix INT auf CY oder "08D4" und den i + 1-ten (= 2 im ersten Durchlauf des Algorithmus 100) Wert der Vier-Element-Daten-Matrix INT auf CY+1 oder "051E" zu setzen. Danach inkrementiert im Schritt 114 der Steuercomputer 12 X um 1 und i um 2, wobei er zum Schritt 116 weitergeht, um den Wert des "i"-Zählers gegen den Wert von 5 zu prüfen. Weil nach dem ersten Durchgang durch den Schritt 114 i = 3 gilt, führt der Schritt 116 in einer Schleife vom "NEIN"-Zweig zurück zum Schritt 106.
  • Im zweiten Durchlauf durch den Schritt 106 ist der Steuercomputer 12 betreibbar, um das Element X in der Zeilenbeschreibungsmatrix 80 zu finden. In dem Beispiel ist X nun 7, wobei der Steuercomputer 12 im Schritt 106 betreibbar ist, um den 7. Zeilenidentifizierer (Rx) in der Zeilenbeschreibungsmatrix 80 wiederzugewinnen, der "53" hexadezimal ist, wie in 6B gezeigt ist. Der Wert des 7. Zeilenidentifizierers in der Zeilenbeschreibungsmatrix 80 ist die Elementnummer in der komprimierten Kalibrierungstabelle 70, die dem ersten Eintrag in der siebenten Zeile der nicht komprimierten Kalibrierungstabelle 60 entspricht.
  • Nach dem Schritt 106 geht die Ausführung des Algorithmus zum Schritt 108 weiter, in dem der Steuercomputer 12 betreibbar ist, um das Element Rx in der komprimierten Kalibrierungstabelle 70 zu finden. In dem Beispiel ist Rx hexadezimal "53", das dezimal "83" entspricht. Im Schritt 106 ist der Steuercomputer 12 folglich betreibbar, um das 83. Element in der komprimierten Kalibrierungstabelle 70 zu finden, das "8A" ist, wie in 6A hervorgehoben ist. Nach dem Schritt 108 geht der Algorithmus 100 zum Schritt 110 weiter, in dem der Steuercomputer 12 betreibbar ist, um sowohl den Wert des Elements Rx in der nicht komprimierten Kalibrierungstabelle 60 als auch alle zusätzlichen Elemente, die dem Element Rx folgen, zu verarbeiten, um die Elemente Y und Y + 1 in der Zeile zu finden, die mit dem Element Rx beginnt. Der Wert des Elements Y ist CY, während der Wert des Elements Y + 1 CY+1 ist. In dem Beispiel ist Y gleich 4, während Y + 1 gleich 5 ist, wobei der Steuercomputer 12 demzufolge im Schritt 110 betreibbar ist, um das Element Rx zu verarbeiten, das das Element 83 in der komprimierten Kalibrierungstabelle 70 ist, um die Werte der 4. und 5. Elemente der Zeile zu finden, die mit dem Element 83 beginnt. Wie im zweiten Durchlauf des Schritts 108 bestimmt wird, ist der Wert (Rx) des Elements 83 hexadezimal "8A", und weil das Element 83 die Zeile 7 der nicht komprimierten Kalibrierungstabelle 60 beginnt, muss das Element 83 demzufolge ein Codebeschreibungsbyte sein. Ein Codebeschreibungsbyte mit dem hexadezimalen Wert "8A" wird in "10001010" binär umgesetzt, wobei unter abermaliger Bezugnahme auf 2 dieses Codebeschreibungsbyte ein WORTCODE ist, der zehn ein Wort lange Einträge besitzt, die dem Codebeschreibungsbyte folgen, weil die Bits 7 und 6 dieses binären Werts "10" und die Bits 5–0 "001010" sind. Weil in diesem Fall Y und Y + 1 (vier bzw. fünf) beide kleiner als die FOLGENLÄNGE des Codebeschreibungsbytes "8A" sind, entsprechen die Elemente Y und Y + 1 folglich den 4. und 5. Wörtern, die dem Codebeschreibungsbyte "8A" folgen. CY ist folglich "0B31", während CY+1 "0704" ist, wie in 6A veranschaulicht ist.
  • Nach dem Schritt 110 geht der Algorithmus 100 zum Schritt 112 weiter, in dem der Steuercomputer 12 betreibbar ist, um den i-ten (= 3 im zweiten Durchlauf des Algorithmus 100) Wert der Vier-Element-Daten-Matrix INT auf CY oder "0B31" und den i + 1-ten (= 4 im ersten Durchlauf des Algorithmus 100) Wert der Vier-Element-Daten-Matrix INT auf CY+1 oder "0704" zu setzen. Danach inkrementiert im Schritt 114 der Steuercomputer 12 X um 1 und i um 2, wobei er zum Schritt 116 weitergeht, um den Wert des "i"-Zählers gegen den Wert von 5 zu prüfen. Weil nach dem ersten Durchgang durch den Schritt 114 i = 5 gilt, führt der Schritt 116 vom "JA"-Zweig zum Schritt 118 weiter, in dem der Algorithmus 100 endet. Wenn der Algorithmus 100 abgeschlossen ist, enthält die Vier-Element-Daten-Matrix INT DX,Y, DX,Y+1, DX+1,Y bzw. DX+1,Y+1. Dann kann eine bekannte Dateninterpolation oder ein anderer bekannter Datenapproximationsalgorithmus verwendet werden, um die vier Datenelemente zu verarbeiten, um das gewünschte Ergebnis zu bestimmen.
  • Obgleich die Erfindung in der vorangehenden Zeichnung und Beschreibung ausführlich veranschaulicht und beschrieben worden ist, sind dieselben in ihrem Charakter als veranschaulichend und nicht als einschränkend zu betrachten, wobei es selbstverständlich ist, dass nur ihre veranschaulichenden Ausführungsformen gezeigt und beschrieben worden sind.

Claims (25)

  1. Verfahren zum Bilden einer komprimierten Datentabelle aus einer nicht komprimierten Datentabelle, wobei das Verfahren die folgenden Schritte umfasst: Definieren einer Codebeschreibungs-Bitstruktur, die eine erste Anzahl von Bits, die einen Codetyp definieren, und eine zweite Anzahl von Bits, die eine Folgenlänge von Datenelementen definieren, enthält; Definieren eines ersten Code-Deskriptors als die Codebeschreibungs-Bitstruktur, bei der die erste Anzahl von Bits so konfiguriert ist, dass sie einen Bytecode-Codetyp definieren, der ein Byte lange Datenelemente identifiziert; Definieren eines zweiten Code-Deskriptors als die Codebeschreibungs-Bitstruktur, bei der die erste Anzahl von Bits so konfiguriert ist, dass sie einen Wortcode-Codetyp definieren, der ein Wort lange Datenelemente identifiziert; Darstellen jeder Folge von einem oder mehreren ein Byte langen Datenelementen der nicht komprimierten Datentabelle mit dem ersten Code-Deskriptor, dessen Folgenlänge gleich der Anzahl der ein Byte langen Datenelemente in der Folge von einem oder mehreren ein Byte langen Datenelementen ist, gefolgt von dem einen oder den mehreren ein Byte langen Datenelementen in der komprimierten Datentabelle; und Darstellen jeder Folge von einem oder mehreren ein Wort langen Datenelementen der nicht komprimierten Datentabelle mit dem zweiten Code-Deskriptor, dessen Folgenlänge gleich der Anzahl der ein Wort langen Datenelemente in der Folge von einem oder mehreren ein Wort langen Datenelementen ist, gefolgt von dem einen oder den mehreren ein Wort langen Datenelementen in der komprimierten Datentabelle.
  2. Verfahren nach Anspruch 1, das ferner die folgenden Schritte umfasst: Definieren eines dritten Code-Deskriptors als die Codebeschreibungs-Bitstruktur, bei der die erste Anzahl von Bits so konfiguriert ist, dass sie einen ersten Kurzcode-Codetyp definiert, der ein erstes spezifiziertes Datenelement identifiziert; und Darstellen jeder Folge von einem oder mehreren ersten spezifizierten Datenelementen in der nicht komprimierten Datentabelle in der komprimierten Datentabelle, wobei die Folgenlänge des dritten Code-Deskriptors gleich der Anzahl der ersten spezifizierten Datenelemente in der Folge eines oder mehrerer der ersten spezifizierten Datenelemente ist.
  3. Verfahren nach Anspruch 2, das ferner die folgenden Schritte umfasst: Definieren eines vierten Code-Deskriptors als die Codebeschreibungs-Bitstruktur, bei der die erste Anzahl von Bits so konfiguriert ist, dass sie einen zweiten Kurzcode-Codetyp definiert, der ein zweites spezifiziertes Datenelement identifiziert, das von dem ersten spezifizierten Datenelement verschieden ist; und Darstellen jeder Folge von einem oder mehreren der zweiten spezifizierten Datenelemente in der nicht komprimierten Datentabelle in der komprimierten Datentabelle, wobei die Folgenlänge des vierten Code-Deskriptors gleich der Anzahl der zweiten spezifizierten Datenelemente in der Folge eines oder mehrerer der zweiten spezifizierten Datenelemente ist.
  4. Verfahren nach Anspruch 1, bei dem die Codebeschreibungs-Bitstruktur ein ein Byte langes Codebeschreibungs-Byte ist.
  5. Verfahren nach Anspruch 1, bei dem die nicht komprimierte Datentabelle eine erste Anzahl von Zeilen und eine zweite Anzahl von Spalten aus nicht komprimierten Daten enthält; und wobei das Verfahren ferner den Schritt umfasst, bei dem in der komprimierten Datentabelle ein Kopfsatz definiert wird, der eine erste Anzahl von Bits, die die erste Anzahl von Zeilen in der nicht komprimierten Datentabelle definieren, und eine zweite Anzahl von Bits, die die zweite Anzahl von Zeilen in der nicht komprimierten Datentabelle definieren, enthält.
  6. Verfahren nach Anspruch 1, bei dem die nicht komprimierte Datentabelle eine erste Anzahl von Zeilen und eine zweite Anzahl von Spalten aus nicht komprimierten Daten enthält; und wobei das Verfahren ferner den Schritt umfasst, bei dem als das erste Element in der komprimierten Datentabelle eine im Voraus definierte Anzahl von Bits definiert wird, die die erste Anzahl von Zeilen und die zweite Anzahl von Spalten definieren.
  7. Verfahren nach Anspruch 1, das ferner den Schritt des Speicherns der komprimierten Datentabelle in einem Computerspeicher umfasst.
  8. Verfahren nach Anspruch 1, bei dem die nicht komprimierte Datentabelle eine Kalibrierungstabelle ist, die Daten zum Steuern wenigstens einer einem Kraftfahrzeug zugeordneten Funktion enthält.
  9. Verfahren nach Anspruch 2, bei dem die nicht komprimierte Datentabelle eine erste Anzahl von Zeilen und eine zweite Anzahl von Spalten aus nicht komprimierten Daten enthält; und wobei das Verfahren ferner den Schritt umfasst, bei dem in der komprimierten Datentabelle ein Kopfsatz definiert wird, der eine erste Anzahl von Bits, die die erste Anzahl von Zeilen in der nicht komprimierten Datentabelle definieren, eine zweite Anzahl von Bits, die die zweite Anzahl von Zeilen in der nicht komprimierten Datentabelle definieren, und eine dritte Anzahl von Bits, die das erste spezifizierte Datenelement definieren, enthält.
  10. Verfahren nach Anspruch 2, bei dem die nicht komprimierte Datentabelle eine erste Anzahl von Zeilen und eine zweite Anzahl von Spalten von nicht komprimierten Daten enthält; und wobei das Verfahren ferner den Schritt des Definierens einer im Voraus definierten Anzahl von Bits, die die erste Anzahl von Zeilen und die zweite Anzahl von Spalten definieren, als das erste Element in der komprimierten Datentabelle umfasst.
  11. Verfahren nach Anspruch 1, bei dem die nicht komprimierte Datentabelle eine Anzahl von Zeilen von nicht komprimierten Daten enthält; und ferner den Schritt umfasst, bei dem eine Zeilenbeschreibungsmatrix definiert wird, die eine Anzahl von Zeilenidentifizierern enthält, die gleich der Anzahl von Zeilen in der nicht komprimierten Datentabelle ist, wobei jeder Zeilenidentifizierer einen entsprechen den ersten oder zweiten Code-Deskriptor identifiziert, der in der komprimierten Datentabelle vorhanden ist und das erste Element in der entsprechenden Zeile der nicht komprimierten Datentabelle definiert.
  12. Verfahren nach Anspruch 10, das ferner den Schritt des Speicherns der komprimierten Datentabelle und der Zeilenbeschreibungsmatrix in einem Computerspeicher umfasst.
  13. Verfahren nach Anspruch 2, bei dem die nicht komprimierte Datentabelle eine Anzahl von Zeilen von nicht komprimierten Daten enthält; und ferner den Schritt umfasst, bei dem eine Zeilenbeschreibungsmatrix definiert wird, die eine Anzahl von Zeilenidentifizierern enthält, die gleich der Anzahl von Zeilen in der nicht komprimierten Datentabelle ist, wobei jeder Zeilenidentifizierer einen entsprechenden ersten, zweiten oder dritten Code-Deskriptor identifiziert, der in der komprimierten Datentabelle enthalten ist und das erste Element in der entsprechenden Zeile der nicht komprimierten Datentabelle definiert.
  14. Computerlesbares Speichermedium, in dem eine aus einer nicht komprimierten Datentabelle gebildete komprimierte Datentabelle gespeichert ist, wobei das Speichermedium umfasst: eine Anzahl von Codebeschreibungs-Bitstrukturen, wovon jede eine erste Anzahl von Bits, die einen Codetyp definieren, und eine zweite Anzahl von Bits, die eine Folgenlänge von Datenelementen definieren, enthält, wobei einige der Anzahl von Codebeschreibungs-Bitstrukturen erste Code-Deskriptoren definieren, wovon jeder der Codebeschreibungs-Bitstruktur entspricht, bei der die erste Anzahl von Bits so konfiguriert ist, dass sie einen Bytecode-Codetyp definiert, der ein Byte lange Datenelemente identifiziert, während die anderen der Anzahl von Codebeschreibungs-Bitstrukturen zweite Code-Deskriptoren definieren, wovon jeder der Codebeschreibungs-Bitstruktur entspricht, bei der die erste Anzahl von Bits so konfiguriert ist, dass sie einen Wortcode-Codetyp definieren, der ein Wort lange Datenelemente identifiziert; wobei jede Folge von einem oder mehreren ein Byte langen Datenelementen der nicht komprimierten Datentabelle in der komprimierten Datentabelle als eine Kombination aus dem ersten Code-Deskriptor, dessen Folgenlänge gleich der Anzahl von ein Byte langen Datenelementen in der Folge von einem oder mehreren ein Byte langen Datenelementen ist, gefolgt von dem einen oder den mehreren ein Byte langen Datenelementen gespeichert ist; und wobei jede Folge von einem oder mehreren ein Wort langen Datenelementen der nicht komprimierten Datentabelle in der komprimierten Datentabelle als eine Kombination des zweiten Code-Deskriptors, dessen Folgenlänge gleich der Anzahl von ein Wort langen Datenelementen in der Folge von einem oder mehreren ein Wort langen Datenelementen ist, gefolgt von dem einen oder den mehreren ein Wort langen Datenelementen gespeichert ist.
  15. Computerlesbares Speichermedium nach Anspruch 14, bei dem nochmals andere der Anzahl von Codebeschreibungs-Bitstrukturen dritte Code-Deskriptoren definieren, wovon jeder der Codebeschreibungs-Bitstruktur entspricht, bei der die erste Anzahl von Bits so konfiguriert ist, dass sie einen ersten Kurzcode-Codetyp definieren, der ein erstes spezifiziertes Datenelement identifiziert; und bei dem jede Folge von einem oder mehreren der ersten spezifizierten Datenelemente der nicht komprimierten Datentabelle in der komprimierten Datentabelle als der dritte Code-Deskriptor, dessen Folgenlänge gleich der Anzahl der ersten spezifizierten Datenelemente in der Folge von einem oder mehreren der ersten spezifizierten Datenelemente ist, gespeichert ist.
  16. Computerlesbares Speichermedium nach Anspruch 15, bei dem nochmals andere der Anzahl von Codebeschreibungs-Bitstrukturen vierte Code-Deskriptoren definieren, wovon jeder der Codebeschreibungs-Bitstruktur entspricht, bei der die erste Anzahl von Bits so konfiguriert ist, dass sie einen zweiten Kurzcode-Codetyp definieren, der ein zweites spezifiziertes Datenelement, das von dem ersten spezifizierten Datenelement verschieden ist, identifiziert; und bei dem jede Folge von einem oder mehreren der zweiten spezifizierten Datenelemente der nicht komprimierten Datentabelle in der komprimierten Datentabelle als der vierte Code-Deskriptor, dessen Folgenlänge gleich der Anzahl der zweiten spezifizierten Datenelemente in der Folge von einem oder mehreren der zweiten spezifizierten Datenelemente ist, gespeichert ist.
  17. Computerlesbares Speichermedium nach Anspruch 14, bei dem jede der Anzahl von Codebeschreibungs-Bitstrukturen ein ein Byte langes Codebeschreibungs-Byte ist.
  18. Computerlesbares Speichermedium nach Anspruch 14, bei dem die nicht komprimierte Datentabelle eine erste Anzahl von Zeilen und eine zweite Anzahl von Spalten aus nicht komprimierten Daten enthält; und bei dem die komprimierte Datentabelle einen darin gespeicherten Kopfsatz enthält, der eine erste Anzahl von Bits, die die erste Anzahl von Zeilen in der nicht komprimierten Datentabelle de finieren, und eine zweite Anzahl von Bits, die die zweite Anzahl von Zeilen in der nicht komprimierten Datentabelle definieren, enthält.
  19. Computerlesbares Speichermedium nach Anspruch 14, bei dem die nicht komprimierte Datentabelle eine erste Anzahl von Zeilen und eine zweite Anzahl von Spalten aus nicht komprimierten Daten enthält; und bei dem ein erstes Element in der komprimierten Datentabelle eine im Voraus definierte Anzahl von Bits enthält, die die erste Anzahl von Zeilen und die zweite Anzahl von Spalten definieren.
  20. Computerlesbares Medium nach Anspruch 14, bei dem die darin gespeicherte komprimierte Datentabelle eine Kalibrierungstabelle ist, die Daten zum Steuern wenigstens einer einem Kraftfahrzeug zugeordneten Funktion enthält.
  21. Computerlesbares Medium nach Anspruch 15, bei dem die nicht komprimierte Datentabelle eine erste Anzahl von Zeilen und eine zweite Anzahl von Spalten aus nicht komprimierten Daten enthält; und wobei die komprimierte Datentabelle einen darin gespeicherten Kopfsatz enthält, der eine erste Anzahl von Bits, die die erste Anzahl von Zeilen in der nicht komprimierten Datentabelle definieren, eine zweite Anzahl von Bits, die die zweite Anzahl von Zeilen in der nicht komprimierten Datentabelle definieren, und eine dritte Anzahl von Bits, die das erste spezifizierte Datenelement definieren, enthält.
  22. Computerlesbares Speichermedium nach Anspruch 15, bei dem die nicht komprimierte Datentabelle eine erste Anzahl von Zeilen und eine zweite Anzahl von Spalten aus nicht komprimierten Daten enthält; und bei dem ein erstes Element in der komprimierten Datentabelle eine im Voraus definierte Anzahl von Bits, die die erste Anzahl von Zeilen und die zweite Anzahl von Spalten definieren, enthält.
  23. Computerlesbares Medium nach Anspruch 14, bei dem die nicht komprimierte Datentabelle eine Anzahl von Zeilen aus nicht komprimierten Daten enthält; und wobei das computerlesbare Medium ferner eine darin gespeicherte Zeilenbeschreibungsmatrix enthält, die eine Anzahl von Zeilenidentifizierern enthält, die gleich der Anzahl von Zeilen in der nicht komprimierten Datentabelle ist, wobei jeder der Zeilenidentifizierer einen entsprechenden ersten oder zweiten Code-Deskriptor, der in der komprimierten Datentabelle enthalten ist und das erste Element in der entsprechenden Zeile der nicht komprimierten Datentabelle definiert, identifiziert.
  24. Computerlesbares Medium nach Anspruch 15, bei dem die nicht komprimierte Datentabelle eine Anzahl von Zeilen aus nicht komprimierten Daten enthält; und wobei das computerlesbare Medium ferner eine darin gespeicherte Zeilenbeschreibungsmatrix enthält, die eine Anzahl von Zeilenidentifizierern enthält, die gleich der Anzahl von Zeilen in der nicht komprimierten Datentabelle ist, wobei jeder Zeilenidentifizierer einen entsprechenden ersten, zweiten oder dritten Code-Deskriptor, der in der komprimierten Datentabelle enthalten ist und das erste Element in der entsprechenden Zeile der nicht komprimierten Datentabelle definiert, identifiziert.
  25. Computerlesbares Speichermedium nach Anspruch 14, in dem ferner ein Suchalgorithmus gespeichert ist, der so konfiguriert ist, dass er aus der komprimierten Datentabelle Datenelemente wiedergewinnt, die Datenelementen in spezifizierten Zeilen und Spalten der nicht komprimierten Datentabelle entsprechen, indem zunächst ein geeigneter erster, zweiter oder dritter Code-Deskriptor in der komprimierten Datentabelle lokalisiert wird, der durch Zeilenidentifizierer, die den entsprechenden Zeilen entsprechen, identifiziert wird, und anschließend wenigstens der geeignete erste, zweite oder dritte Code-Deskriptor verarbeitet wird, um diejenigen Datenelemente in der komprimierten Datentabelle zu lokalisieren, die jenen in den spezifizierten Spalten der nicht komprimierten Datentabelle entsprechen.
DE60302203T 2003-01-15 2003-12-22 Anordnung zur Komprimierung einer Datentabelle Expired - Lifetime DE60302203T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US342493 1989-04-24
US10/342,493 US7079056B2 (en) 2003-01-15 2003-01-15 Method of encoding and storing in a machine control computer a compressed data lookup table

Publications (2)

Publication Number Publication Date
DE60302203D1 DE60302203D1 (de) 2005-12-15
DE60302203T2 true DE60302203T2 (de) 2006-07-27

Family

ID=32594840

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60302203T Expired - Lifetime DE60302203T2 (de) 2003-01-15 2003-12-22 Anordnung zur Komprimierung einer Datentabelle

Country Status (3)

Country Link
US (1) US7079056B2 (de)
EP (1) EP1439638B1 (de)
DE (1) DE60302203T2 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7446681B2 (en) * 2006-06-14 2008-11-04 Freescale Semiconductor, Inc. Lookup table array compression and indexing
US8091077B1 (en) * 2006-10-11 2012-01-03 Oracle America, Inc. System and method for handling rare events by modification of executable code
US8578332B2 (en) * 2007-04-30 2013-11-05 Mark Murray Universal microcode image
US8356060B2 (en) 2009-04-30 2013-01-15 Oracle International Corporation Compression analyzer
US9667269B2 (en) 2009-04-30 2017-05-30 Oracle International Corporation Technique for compressing XML indexes
US8583692B2 (en) * 2009-04-30 2013-11-12 Oracle International Corporation DDL and DML support for hybrid columnar compressed tables
US8645337B2 (en) 2009-04-30 2014-02-04 Oracle International Corporation Storing compression units in relational tables
US8935223B2 (en) * 2009-04-30 2015-01-13 Oracle International Corporation Structure of hierarchical compressed data structure for tabular data
US8296517B2 (en) 2009-08-19 2012-10-23 Oracle International Corporation Database operation-aware striping technique
JP5473893B2 (ja) * 2010-12-28 2014-04-16 株式会社高速屋 コード列検索装置、検索方法及びプログラム
US8897298B2 (en) * 2011-11-02 2014-11-25 Qualcomm Incorporated Systems and methods for compressing headers and payloads
US9922115B1 (en) * 2012-02-10 2018-03-20 Intelligent Language, LLC Composite storage
US9792312B2 (en) * 2012-11-27 2017-10-17 Sap Se Row identification column authorization profiles
US9331712B1 (en) * 2015-05-11 2016-05-03 Qualcomm Incorporated Compressed caching in a virtual memory system
US9990308B2 (en) 2015-08-31 2018-06-05 Oracle International Corporation Selective data compression for in-memory databases
US10860626B2 (en) * 2018-10-31 2020-12-08 EMC IP Holding Company LLC Addressable array indexing data structure for efficient query operations

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4645916A (en) 1983-09-09 1987-02-24 Eltrax Systems, Inc. Encoding method and related system and product
US4623976A (en) * 1984-03-16 1986-11-18 Allied Corporation Automatic calibration apparatus for an automotive control system
EP0351824B1 (de) * 1988-07-19 1994-10-12 Nissan Motor Co., Ltd. Systemdrucksteuerung für ein automatisches Getriebe
US5125072A (en) 1989-07-31 1992-06-23 Eastman Kodak Company Efficient data storage system for gray-scale printers
JP3209104B2 (ja) * 1996-07-30 2001-09-17 トヨタ自動車株式会社 エンジンおよび自動変速機を備えた車両の制御装置
US6505105B2 (en) * 2001-01-05 2003-01-07 Delphi Technologies, Inc. Electronic control unit calibration
US6889132B2 (en) * 2001-02-01 2005-05-03 Ford Global Technologies, Llc Vehicle drive control for 4×4 mode
US6565064B2 (en) 2001-03-21 2003-05-20 Delphi Technologies, Inc. Model-based position control for a solenoid actuated valve
US6877114B2 (en) * 2002-02-14 2005-04-05 Delphi Technologies, Inc. On-chip instrumentation
US6925376B2 (en) * 2003-04-01 2005-08-02 Cummins, Inc. System for diagnosing operation of a cooling system for an internal combustion engine

Also Published As

Publication number Publication date
EP1439638A1 (de) 2004-07-21
DE60302203D1 (de) 2005-12-15
US7079056B2 (en) 2006-07-18
EP1439638B1 (de) 2005-11-09
US20040139099A1 (en) 2004-07-15

Similar Documents

Publication Publication Date Title
DE60302203T2 (de) Anordnung zur Komprimierung einer Datentabelle
DE3586956T2 (de) Speicherzuordnungsverfahren fuer rechnersysteme.
DE3606869C2 (de) Vorrichtung zur Datenkompression
EP0230437B1 (de) Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchführung des verfahrens
DE60118973T2 (de) Verfahren zum abfragen einer struktur komprimierter daten
DE2208664A1 (de) Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge
DE10255128A1 (de) Computer-implementierte PDF-Dokumentenverwaltung
DE3408674A1 (de) Steuerungsverfahren
DE19627472A1 (de) Datenbanksystem
DE69433620T2 (de) Datenkomprimierungsverfahren
DE3586447T2 (de) Kompression von binaerzahlen fuer ihre speicherung.
DE3148099C2 (de) Anordnung zum Erkennen einer Digitalfolge
DE19821727A1 (de) Vorrichtung und Verfahren zur Codierung mit variabler Länge
DE3826158A1 (de) Dateidaten-wiedergewinnungssystem
DE112021000112T5 (de) Rechenverarbeitungssystem und verfahren zur faltungsberechnung
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE69629540T2 (de) Verfahren und Gerät zum Sortieren von Elementen
DE3742142A1 (de) Verfahren und vorrichtung zur kompression und rekonstruktion von datenfolgen
DE60001585T2 (de) Datenverarbeitungseinrichtung und -verfahren
EP1145113B1 (de) Verfahren und anordnung zur erzeugung und ausführung von komprimierten programmen eines vliw-prozessors
DE3443272C2 (de) Verfahren zum Ausbreiten eines Fehlers in Daten und Fehlererkennungssystem
DE2062164A1 (de) Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten
DE2244163A1 (de) Verfahren zur verdichtung bzw. dehnung von dateninformationszeichen in einem datenverarbeitungssystem
EP0427884B1 (de) Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten
EP1186175B1 (de) Verfahren und vorrichtung zur komprimierung und dekomprimierung von daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition