DE4437790A1 - Verfahren und Vorrichtung zur Verwendung von endlichen Automaten zur Durchführung einer Kanalmodulation und einer Fehlerkorrektur und einer Entropie-Kodierung - Google Patents

Verfahren und Vorrichtung zur Verwendung von endlichen Automaten zur Durchführung einer Kanalmodulation und einer Fehlerkorrektur und einer Entropie-Kodierung

Info

Publication number
DE4437790A1
DE4437790A1 DE4437790A DE4437790A DE4437790A1 DE 4437790 A1 DE4437790 A1 DE 4437790A1 DE 4437790 A DE4437790 A DE 4437790A DE 4437790 A DE4437790 A DE 4437790A DE 4437790 A1 DE4437790 A1 DE 4437790A1
Authority
DE
Germany
Prior art keywords
transition
output
input
bits
bit stream
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.)
Granted
Application number
DE4437790A
Other languages
English (en)
Other versions
DE4437790B4 (de
Inventor
Michael J Gormish
James Dow Allen
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of DE4437790A1 publication Critical patent/DE4437790A1/de
Application granted granted Critical
Publication of DE4437790B4 publication Critical patent/DE4437790B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/31Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining coding for error detection or correction and efficient use of the spectrum
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • H03M5/145Conversion to or from block codes or representations thereof
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof

Description

Die vorliegende Erfindung betrifft das Gebiet der Datenkompression; speziell betrifft die vorliegende Erfindung das Gebiet binärer Entropiekodierer und deren Verwendung in Verbindung mit der Kanalmodulation und einer vorwärts gerich­ teten Fehlerkorrektur.
Die Datenkompression stellt ein extrem nützliches Werkzeug für die Speicherung und Übertragung großer Mengen an Daten dar. Beispielsweise wird die Zeit, die zum Übertragen eines Bildes erforderlich ist, wie die Faksimileübertragung einer Vorlage, drastisch reduziert, wenn die Kompression verwendet wird, um die Zahl der Bits zu vermindern, die zum Übertragen des Bildes erforderlich ist. Es existieren beim Stand der Technik viele unterschiedliche Datenkompressions­ techniken.
Jedes Kompressionssystem ist einem entsprechenden Dekompressionssystem zugeordnet. Die Ausführung eines Dekompressionssystems kann normalerweise von dem Kompressionssystem gestört werden. Der von dem Kompressionssystem verwendete Algorithmus, um eine Kodierung zu bewirken, muß entweder als Teil der komprimierten Vorlage gesendet werden oder muß durch das Dekom­ pressionssystem ableitbar sein.
Spezieller gesagt, kann das Entropie-Kodierverfahren, eine Folge von "Ein­ gangs"-Symbolen < t₁, t₂, t₃, . . ., tm <, die typische Datenproben oder quanti­ sierte Fehlerwerte darstellen, deterministisch durch eine Folge von "Ausgangs"- Kodeworten < s₁, s₂, s₃ . . . , sn < als eine Funktion der Zeit ersetzt werden:
f() = () = <s₁, s₂, . . . sn<
Eine solche deterministische inverse (Rekonstruktions-)Funktion existiert:
f-1 () = (), für alle {t}, {s} = f({t})
Dieser Typ eines Entropie-Kodes f kann aus einem Satz von momentanen Pro­ duktionsregeln gebildet werden. Das Ergebnis der Anwendung jeder dieser Regeln besteht aus der Generierung einer geordneten Sequenz von null oder mehreren Ausgangsbelegungsbits (tokens). Jedoch beträgt die Zahl der Aus­ gangsbelegungsbits gewöhnlich Eins oder mehr.
Bei einigen Kompressionssystemen wird eine Eingangsdatei oder Satz von Daten in eine Sequenz von Entscheidungen übersetzt, und zwar unter der Leitung eines Entscheidungsmodells. Jede Entscheidung hat eine zugeordnete Wahrscheinlich­ keit und, basierend auf dieser Wahrscheinlichkeit, wird ein Ausgangskode erzeugt und wird zu der komprimierten Datei hinzugefügt. Um diese Kodiersy­ steme auszuführen, umfassen die Kompressionssysteme drei Teile: ein Entschei­ dungsmodell, ein Wahrscheinlichkeitsschätzverfahren und einen Bit-Stromgene­ rator. Das Entscheidungsmodell empfängt die Eingangsdaten und übersetzt die Daten in einen Satz von Entscheidungen, die das Kompressionssystem dazu verwendet, um die Daten zu kodieren. Das Wahrscheinlichkeitsschätzverfahren stellt die Prozedur dar, um den Schätzwert für die Wahrscheinlichkeit jeder Entscheidung zu entwickeln. Der Bitstromgenerator führt die endgültige Bit­ stromkodierung durch, um einen Ausgangskode zu generieren, der dann den komprimierten Datensatz oder die komprimierte Datei darstellt. Eine Kompres­ sion kann effektiv entweder oder sowohl im Entscheidungsmodell oder bzw. als auch in dem Wahrscheinlichkeitsschätzverfahren auftreten.
Eine weit verwendete Kompressionstechnik ist die arithmetische Kodierung. Bei der arithmetischen Kodierung wird eine Kette von Daten (d. h. eine "Nachricht") in eine Kodierkette aufgelistet, und zwar derart, daß die Originalnachricht aus der Kodierkette wiedergewonnen werden kann, wobei die Kodier- und Dekodier­ algorithmen arithmetische Operationen an der Kodierkette durchführen. Eine Erläuterung hinsichtlich einer arithmetischen Kodierung kann ersehen werden aus Glenn G. Langdon, Jr., "An Introduction to Arithmetic Coding", IBM Journal of Research and Development, Vol. 28, Nr. 2 (März 1984).
Bei der arithmetischen Kodierung wird ein Kode, der eine Nachricht wiedergibt, durch ein Intervall von Zahlen zwischen 0 und 1 wiedergegeben. Wenn die Zahl der Symbole in der Nachricht zunimmt, wird das Intervall, das diese wiedergibt, kleiner und die Zahl der Bits, die erforderlich ist, um dieses Intervall zu spezifi­ zieren, nimmt zu. Zu Beginn liegt das Intervall für die Nachricht zwischen Null und Eins [0, 1). Wenn jedes Symbol der Nachricht verarbeitet wird, verengt sich das Intervall gemäß der Symbolwahrscheinlichkeit.
Beispielsweise werden gemäß Fig. 1a den Symbolen (in diesem Fall Text) z, y, x, w, v, u die Wahrscheinlichkeiten 0,2, 0,3, 0,1, 0,2, 0,1, 0,1 zugeordnet. Die Wahrscheinlichkeiten werden dann auf den Bereich von [0, 1,0) abgebildet, woraus die Bereiche resultieren, die in Fig. 1a identifiziert sind. Gemäß Fig. 1a wird das Symbol z dem Bereich [0, 0,2) zugeordnet, was der Wahrscheinlichkeit von 0,2 entspricht und das Symbol u wird dem Bereich von [0,9, 1,0) zugeord­ net, was das hohe Ende des Wahrscheinlichkeitsbereiches der Symbole wider­ spiegelt und die Wahrscheinlichkeit für u von 0,1.
Damit eine Kompression möglich ist, wird den Symbolen, die häufiger auftreten, ein größerer Wahrscheinlichkeitswert zugeordnet. Wenn einmal die Wahrschein­ lichkeitsbereiche zugeordnet sind, können die Symbole für eine Kompression kodiert werden. Der Anfangsbereich oder das Intervall wird auf [0, 1) gesetzt. Nach dem Auftreten des ersten Symbols der zu komprimierenden Nachricht wird der Bereich proportional zu dieser Symbolwahrscheinlichkeit enger gefaßt. Gemäß Fig. 1a ist der Bereich [0, 1) zuerst veranschaulicht. Nach dem Auftreten des Symbols y wird der Bereich auf ein neues Intervall der Größe vermindert, proportional zur Wahrscheinlichkeit von y. Mit anderen Worten, anstatt daß der Bereich oder das Intervall auf seine Anfangswerte gesetzt wird, wird der Bereich gemäß der Wahrscheinlichkeit des eben aufgetretenen Symbols gesetzt. Da die Wahrscheinlichkeit für y gleich 0,3 ist und einen Bereich von [0,2, 0,5) hat, liegt der aufgewertete oder erneuerte Bereich, von dem aus das Kodieren statt­ findet, bei [0,2, 0,5) in solcher Weise, daß die Wahrscheinlichkeit des Auf­ tretens des nächsten Symbols den Einfluß der Wahrscheinlichkeiten der Symbole enthält, die vor diesem (d. h. y) kommen. Somit umfassen alle die Wahrschein­ lichkeiten für die Symbole einen Gesamtbereich von 0,2 bis 0,5 anstelle von 0 bis 1 bis zu dem Auftreten des Symbols y. In ähnlicher Weise wird nach dem Auftreten des nächsten Symbols z, welches die Wahrscheinlichkeit von 0,2 und den Bereich [0, 0,2) hat, das Intervall proportional zur z-Wahrscheinlichkeit auf [0,2, 0,26) vermindert in solcher Weise, daß der Bereich der Wahrscheinlichkei­ ten für das nächste Symbol von dem Intervall 0,2 bis 0,26 genommen wird, wobei der Einfluß von sowohl den früheren y- und z-Symbolen berücksichtigt ist.
Da die Größe des Intervalls, das beim Kodierungsprozeß verwendet wird, beim Dekodieren kennzeichnend für den Wahrscheinlichkeitsbereich eines Symbols in der Gruppe der Symbole ist, können die Symbole einfach extrahiert werden unter Verwendung der Bereiche für jedes Symbol, die beim Kodierungsvorgang verwendet worden sind. Wenn beispielsweise das letzte oder endgültige Intervall [0,23, 0,236) betragen hat, kann man festlegen, daß das erste Symbol y ist, da das letzte oder endgültige Intervall vollständig innerhalb des Bereiches von y [0,2, 0,5) liegt. Unter Verwendung des gleichen Prozesses beim Kodieren wird, nach Erkennen von y, der Anfangsintervall [0, 1) aufgewertet auf [0,2, 0,5) und der aufgewertete Bereich von [0,2, 0,26) umschließt das End-Intervall [0,23, 0,236). Dieser Prozeß wird fortgesetzt, bis alle Symbole dekodiert sind.
Ein binärer arithmetischer Kodierer stellt einen Typ eines arithmetischen Kodier­ systems dar. Bei einem binären arithmetischen Kodiersystem kann die Auswahl eines Symbols aus einem Satz von Symbolen als eine Folge von binären Ent­ scheidungen kodiert werden. Ein Beispiel eines binären arithmetischen Kodierers ist der "Q-Kodierer", der von International Business Machines, Armonk, New York, entwickelt wurde. Der Q-Kodierer verwendet eine festgelegte Präzisions- Arithmetik und einen Renormalisierungsprozeß, wobei die Kodierkette und das Intervall in der erforderlichen Weise renormalisiert werden, um die Werte innerhalb der Grenzen zu halten, die durch die festgelegte Präzisionswiedergabe zugelassen werden. Um darüber hinaus das Erfordernis der Durchführung einer Multiplikationsoperation zu vermeiden, um das Intervall zu skalieren, um das Kodieren eines Symbols wiederzugeben, wird eine Annäherung anstelle der Multiplikation verwendet. Beim Stand der Technik ist ein komprimierter Bit­ strom häufig dadurch gekennzeichnet, daß er über einen verlustlosen, in der Bandbreite eingeschränkten oder begrenzten Kanal gesendet wird. Der kom­ primierte Bitstrom wird dann empfangen und dekodiert. Jedoch sind die Kanäle in der Realität gewöhnlich nicht verlustfrei. Es wird daher eine gewisse Form einer Fehlerkorrekturkodierung und eine gewisse Art einer Kanalmodulation durchgeführt. Beim Stand der Technik sind dies getrennte Operationen.
Ein weiterer allgemein verwendeter Satz von Kodes wird als Zwangskanalkode bezeichnet. Ein Typ von Kanalkode sind die lauflängenbegrenzten (RLL; run length limited) Kodes. Die RLL-Kodes werden häufig in der Disk-Treiber- Industrie verwendet, speziell dort, wo Rohdaten auf eine magnetische Spur geschrieben werden. Auch werden Kodes, die sehr ähnliche Eigenschaften wie die RLL-Kodes haben, ebenso für digitale Magnetbänder, CD-ROMs, optische Disks und selbst Faseroptikkabel verwendet. In diesen Fällen wird eine Gruppe von willkürlichen binären Ziffern in eine lange Folge von binären Ziffern umge­ setzt mit einigen Einschränkungen hinsichtlich des Musters von zulässigen Eins- und Null-Bits. Für die grundlegenden RLL-Kodes besteht die Einschränkung darin, daß ein "1"-Bit immer gefolgt wird von wenigstens d "0" -Bits und höch­ stens k "0"-Bits. Die einem solchen Format folgenden Kodes werden allgemein als RLL(d,k)-Kodes bezeichnet. Beispielsweise wird ein Kode, der eine 1 hat, auf die wenigstens 1 "0"-Bit und höchstens 7 "0"-Bits folgen, als ein RLL(1,7)- Kode bezeichnet. Ein derartiger Kode ist in dem US-Patent 4,413,251 beschrie­ ben, welches den Titel trägt "Verfahren und Vorrichtung zum Erzeugen eines störungsfreien gleitenden Blockkodes für einen (1,7)-Kanal mit einer Rate von 2/3′′, Adler et al. Bei Adler wird Bezug genommen auf (1,8)- und (2,7)-Kodes. Ein häufig verwendeter RLL-Kode wird als modifizierte Frequenzmodulation (MFM) bezeichnet. Die MFM ist ein RLL(1,3)-Kode und erzeugt daher eine Folge, bei der auf jede "1" wenigstens eine Null folgt und höchstens drei Nullen folgen. Die Verwendung dieser Zwangs-Kanalkodes ist universell und erlaubt tatsächlich, mehr Informationen auf einer Scheibe bzw. Disk zu speichern.
Die bei der Kanalmodulation verwendeten Kanalkodes erzeugen Ausgangsgrößen mit einer festen Rate. Mit anderen Worten empfängt ein Kodierer, der einen solchen Kode verwendet, eine feste Zahl von willkürlichen Eingangsbits und erzeugt eine feststehende große Zahl von Zwangsbits. Da der Stand der Technik auf die Ausgabe von lediglich Festlängen-Ausgangsbit-Strömen beschränkt ist, verwenden diese Kanalkodes nicht alle möglichen Zwangssequenzen. Es ist daher vorteilhaft, Kodes zu schaffen, die mehr Gebrauch machen von Ausgangskode­ strömen und die gleichzeitig technologisch ausführbar sind.
Die Funktionen der Datenkompression und der Kanalmodulation sind beide bei der Ausführung einiger Anwendungen erforderlich. Jedoch werden diese Funk­ tionen mit getrennten Einheiten beim Stand der Technik realisiert. Dies erfordert eine zusätzliche Hardware und kann zusätzliche Ressourcen erforderlich machen. Es ist daher vorteilhaft, die Funktionen der Datenkompression und der Kanalko­ dierung in der gleichen funktionellen Einheit gleichzeitig zu implementieren, um die erforderliche Hardware zu reduzieren.
Zusätzlich zum Komprimieren der Daten werden die Daten häufig kodiert, um eine Fehlerkorrektur nach der Übertragung über einen geräuschbehafteten Kanal zu erlauben. Störsignale treten in praktisch jedem digitalen Kanal auf, inklusive Satellitenübertragungsstrecken und Diskantrieben. Bei der Fehlerkorrekturkodie­ rung wird ein zuvor willkürlicher Bitstrom in einer Weise expandiert, die Zwän­ ge berücksichtigt, welche es möglich machen, Fehler in dem Bitstrom zu detek­ tieren und zu korrigieren. Dies ist ähnlich der Kodierung, die für lauflängenbe­ grenzte Kanäle durchgeführt wird, obwohl die Einschränkung oder der Zwang unterschiedlich ist. Die Funktionen einer Fehlerkorrektur und einer Datenkom­ pression werden üblicherweise auch durch getrennte funktionale Einheiten realisiert. Es ist somit vorteilhaft, eine Datenkompression und Fehlerkorrektur zur Verfügung zu haben, die gleichzeitig durch die gleiche funktionale Einheit durchgeführt werden, und zwar als ein Mittel, um die erforderliche Hardware zu reduzieren.
Wie noch gezeigt werden wird, schafft die vorliegende Erfindung einen binären Entropiekodierer, der ein Entscheidungsmodell verwendet, welches Entschei­ dungen erzeugt, die immer zweiwertig (d. h. ja oder nein) sind. Die vorliegende Erfindung verwendet auch Ausgangs-Belegungsbits (tokens), die Bitketten mit nicht festgelegter Länge darstellen. Speziell werden nach der vorliegenden Erfindung die meisten Entscheidungen mit weniger als einem Bit kodiert.
Die vorliegende Erfindung schafft auch einen endlichen Automaten, um eine Kanalkodierung durchzuführen. Ein weiterer endlicher Automat der vorliegenden Erfindung führt eine Fehlerkorrekturkodierung durch. Es ist auch möglich, eine Kanalkodierung und Kompression mit einem endlichen Automaten durchzufüh­ ren.
Es ist Aufgabe der vorliegenden Erfindung, einen binären Kodierer zu schaffen, der effizient ist und sich einfach realisieren läßt.
Die vorliegende Erfindung schafft ein einfaches kostengünstiges Kodier- und Dekodiergerät und -verfahren für das Komprimieren und Expandieren von Daten, die durch Binärentscheidungen wiedergegeben sind. Die vorliegende Erfindung umfaßt einen Automaten mit einer Vielzahl von Zuständen. Jeder Zustand besitzt wenigstens ein Übergangspaar. Jedes Element des Übergangspaa­ res bewirkt, daß eine Null oder mehr Bits, die repräsentativ für den Kode sind, ausgegeben werden, und bewirkt die Identifizierung des nächsten Zustandes, zu dem hin fortzufahren ist. Das Übergangspaar reflektiert eine Ausgangsgröße für eine Ja- und Nein-Antwort, die der Wahrscheinlichkeit der zu komprimierenden Daten zugeordnet ist, und ob die Daten innerhalb dieser Wahrscheinlichkeit fallen.
Die vorliegende Erfindung umfaßt auch ein Gerät und Verfahren zum Suchen des Übergangspaares in dem laufenden Zustand des endlichen Automaten gemäß dem Wahrscheinlichkeitswert. Gemäß der Wahrscheinlichkeitsschätzung wird gemäß der vorliegenden Erfindung eine Null oder werden mehr Bits und ein Übergang zum nächsten Zustand ausgegeben.
Die vorliegende Erfindung umfaßt ein Gerät und ein Verfahren zum Durchführen einer Kanalkodierung, Fehlerkorrektur oder beider Vorgänge unter Verwendung eines endlichen Automaten. Der endliche Automat der vorliegenden Erfindung kann so konstruiert sein, um eine Kanalmodulation und eine Datenkompression gleichzeitig durchzuführen, ferner eine Fehlerkorrektur und Datenkompression gleichzeitig durchzuführen, oder eine Fehlerkorrektur, Kanalmodulation und Datenkompression gleichzeitig durchzuführen.
Die vorliegende Erfindung kann besser aus der folgenden detaillierten Beschrei­ bung unter Hinweis auf die beigefügten Zeichnungen von bevorzugten Aus­ führungsbeispielen der Erfindung verstanden werden, die jedoch nicht so zu betrachten sind, daß sie die vorliegende Erfindung auf die spezifischen Aus­ führungsbeispiele einschränken, sondern lediglich der Erläuterung und dem Verständnis dienen.
Fig. 1a und 1b veranschaulichen ein herkömmliches Verfahren der arith­ metischen Kodierung.
Fig. 2 ist ein beispielhaftes Blockschaltbild eines Entropiekodierers und eines Dekodierers nach einer bevorzugten Ausführungsform der vorliegenden Erfindung.
Fig. 3 ist ein Blockschaltbild, welches eine andere Ausführungsform der vorliegenden Erfindung wiedergibt.
Fig. 4 veranschaulicht einen Kodierer zur Durchführung einer Kanalko­ dierung nach der vorliegenden Erfindung.
Fig. 5 veranschaulicht eine Ausführungsform eines Kodierers zur Durch­ führung einer Kanalkodierung nach der vorliegenden Erfindung.
Fig. 6 ist ein Blockschaltbild einer Ausführungsform eines Aufzeichnungs- Systems der vorliegenden Erfindung.
Fig. 7 veranschaulicht eine Ausführungsform eines Kodierers zur Durch­ führung einer Kanalkodierung gleichzeitig mit einer Datenkom­ pression.
Fig. 8 ist ein Beispiel eines endlichen Zustands-Übergangsdiagramms.
Fig. 9 ist ein Flußdiagramm, welches den Tabellengenerierungsprozeß der vorliegenden Erfindung veranschaulicht.
Fig. 10 ist ein Flußdiagramm, welches den Prozeß der Generierung eines anfänglichen endlichen Zustands-Diagramms veranschaulicht.
Fig. 11 ist ein Flußdiagramm, welches eine Ausführungsform des Prozes­ ses herausgreift, um das zu Beginn erzeugte endliche Zustands- Diagramm nach der vorliegenden Erfindung zu verbessern.
Fig. 12 veranschaulicht ein Beispiel eines endlichen Zustands-Übergangs­ diagramms für lauflängenbegrenzte Kanäle.
Fig. 13A veranschaulicht ein Endlichzustand-Diagramm, welches gemäß dem Generierungsverfahren nach der vorliegenden Erfindung erzeugt wurde.
Fig. 13B gibt ein Endlichzustands-Diagramm wieder, welches in Fig. 13A gezeigt ist, wobei Übergänge für eine andere Wahrscheinlichkeit hinzugefügt sind.
Fig. 14 veranschaulicht ein Endlichzustands-Übergangsdiagramm.
Fig. 15 veranschaulicht ein Endlichzustands-Übergangsdiagramm, welches gemäß dem endlichen Automaten-Generierungsverfahren der vor­ liegenden Erfindung erzeugt wurde.
Fig. 16A-16D sind Beispiele der Übergangsmatrizen, die unter Verwen­ dung des Prozesses nach der vorliegenden Erfindung erzeugt wurden.
Es wird ein Verfahren und ein Gerät zum Kodieren binärer Entscheidungen beschrieben. Auch wird ein Verfahren und ein Gerät zur Durchführung einer Kanalmodulation und für die Fehlerkorrektur beschrieben. In der folgenden Beschreibung sind zahlreiche spezifische Details dargestellt, wie beispielsweise spezifische Zahlen von Bits, Belegungsbits usw., um dadurch ein sorgfältiges Verstehen der bevorzugten Ausführungsform der vorliegenden Erfindung zu erreichen. Für den Fachmann ist offensichtlich, daß die vorliegende Erfindung ohne diese spezifischen Details praktisch realisiert werden kann. Auch sind gut bekannte Schaltungen in Blockschaltbildform anstatt in Details gezeigt, um eine unnötige Verschleierung der vorliegenden Erfindung zu vermeiden.
Fig. 2 ist ein Blockschaltbild, welches ein System für die Kompression und Dekompression von Daten veranschaulicht, das durch die vorliegende Erfindung verwendet wird. Daten 100 werden in ein binäres Entscheidungsmodell (BDM) 110 eingegeben. Das BDM 110 übersetzt den Eingangs-Datenstrom (z. B. eine Eingangsdatei) in einen Satz oder Folge von binären Entscheidungen. Es sei darauf hingewiesen, daß das Datenmodell, welches durch die vorliegende Erfin­ dung verwendet wird, alle Ereignisse als binäre Entscheidungen ausdrückt. Das BDM 110 erzeugt auch einen Kontext für jede binäre Entscheidung.
Sowohl die Folge der binären Entscheidungen als auch deren zugeordneter Kontext werden von dem BDM 110 an den Wahrscheinlichkeitsschätzmodul (PEM) 115 ausgegeben. Das PEM 115 verwendet den Kontext, um eine Wahr­ scheinlichkeitsschätzung für jede binäre Entscheidung zu generieren. Die aktuelle Wahrscheinlichkeitsschätzung wird als eine Klasse wiedergegeben, die als P- Klasse bezeichnet wird. Jede P-Klasse wird für einen Bereich von Wahrschein­ lichkeiten verwendet. Bei der vorliegenden Erfindung wird jede P-Klasse für einen Bereich von Wahrscheinlichkeiten verwendet, anstelle von der Verwendung mehrerer Bits, um eine exakte Zahl-Wahrscheinlichkeit zu spezifizieren. Auf diese Weise werden lediglich ein Paar Bits dazu benötigt, um zu spezifizieren, in welchem Klassenbereich sich die Wahrscheinlichkeit befindet. Bei einer Ausführungsform wird jede binäre Entscheidung als Phrase dargestellt, so daß sie leicht wenigstens 50% der Zeit beträgt. Dies stellt sicher, daß alle Wahr­ scheinlichkeitsklassen, die von dem Kodierer der vorliegenden Erfindung ver­ wendet werden, Wahrscheinlichkeiten sind, die größer sind als oder gleich sind 50%. Das heißt, die Wahrscheinlichkeitsklassen gelten für Wahrscheinlichkeiten größer als 50%. Das PEM 115 bestimmt auch, ob die Binärentscheidung (Ergeb­ nis) sich in dem wahrscheinlicheren Zustand befindet oder nicht. Sowohl die Wahrscheinlichkeitsschätzung (P-Klasse) als auch die Bestimmung, ob die Binärentscheidung mit Wahrscheinlichkeit oder nicht durch das PEM 115 erzeugt worden ist, werden an den Kodierer 120 ausgegeben. Nach dem Zuführen der P- Klasse in den Kodierer 120 kann das PEM 115 seine Wahrscheinlichkeitsschät­ zung für den gegebenen Kontext auf den neuesten Stand bringen.
Der Kodierer 120 ist so verbunden, um Eingänge der Wahrscheinlichkeitsklasse zu empfangen, welche die Wahrscheinlichkeit des Auftretens der Eingangs- Binärentscheidungen betrifft und ein Bit, welches anzeigt, ob das wahrscheinliche Ereignis aufgetreten ist oder nicht. Als Antwort erzeugt der Kodierer 120 einen komprimierten Datenstrom, der die Ursprungsdaten 100 wiedergibt. Der Kodie­ rer 120 gibt null oder mehr Bits aus, und zwar mit jeder Eingangsgröße. Diese komprimierten Daten können über ein Netzwerk oder ein anderes Datenver­ bindungsmittel (z. B. Kommunikationsleitung) gesendet werden oder können einfach in einem Speicher gespeichert werden. Beispielsweise können die kom­ primierten Daten 125 dazu verwendet werden, Bilder zwischen Faksimilegeräten zu übertragen.
Der umgekehrte Prozeß wird bei dem Dekomprimieren der Daten ausgeführt, und zwar derart, daß die ursprünglichen Eingangsdaten 100 rekonstruiert werden können (bis zu einem gewissen Ausmaß). Es sei erwähnt, daß das Ergebnis von dem PEM 135 exakt das gleiche ist wie das Ergebnis, welches an das PEM 115 übergeben wurde. Die Originaldaten 100 können exakt rekonstruiert werden oder annähernd rekonstruiert werden, was von dem BDM 110 und 140 abhängt. Der Dekodierer (Codec) 130 ist so angeschlossen oder angekoppelt, um die kom­ primierte Ausgangsgröße 125 zu empfangen. Der BDM 140 erzeugt einen Kontext für den PEM 135. Der PEM 135 ist so angekoppelt, um den Kontext von BDM 140 zu empfangen. Basierend auf dem Kontext erzeugt der PEM 135 eine Wahrscheinlichkeitsklasse für den Kodierer 130. Der Kodierer 130 ist so angekoppelt, um die Wahrscheinlichkeitsklasse von dem PEM 135 zu empfan­ gen. Als Antwort auf die Wahrscheinlichkeitsklasse und die komprimierten Daten 125 gibt der Kodierer 130 ein Bit aus, welches angibt, ob die Binärent­ scheidung sich in ihrem Wahrscheinlichkeitszustand befindet. Mit anderen Worten gibt der Kodierer 130 eine Bitanzeige zurück für das Auftreten des wahrscheinlichen Ereignisses. Das PEM 135 ist so angekoppelt, um das Bit von dem Kodierer 130 zu empfangen und verwendet das Bit dazu, um die Wahr­ scheinlichkeitsschätzungen basierend auf dem empfangenen Bit auf den neuesten Stand zu bringen. Das PEM 135 gibt auch das Ergebnis an BDM 140 zurück.
Das BDM 140 ist so angekoppelt, um das zurückgeleitete Bit zu empfangen und verwendet das zurückgeleitete Bit dazu, um die Originaldaten 100 zu generieren und um den Kontext für die nächste Binärentscheidung auf den neuesten Stand zu bringen.
In Fig. 2 schaffen BDM und PEM für sowohl den Kodierer 120 als auch den Dekodierer 130 ein Gerät und ein Verfahren zum Verstehen der Daten und zum Entwickeln von nützlichen Wahrscheinlichkeitsschätzungen. Es sei darauf hinge­ wiesen, daß viele Annäherungen existieren, um eine Wahrscheinlichkeitsschät­ zung zu erzeugen, und daß die vorliegende Erfindung nicht auf die Verwendung irgendeines bestimmten Wahrscheinlichkeitsschätzungsmechanismus einge­ schränkt ist. Beispielsweise kann bei der Bildkompression die Wahrscheinlichkeit gemäß einem 5-pel-Voraussageverfahren bzw. 5-Pixel-Voraussageverfahren bestimmt werden, bei dem fünf früher verarbeitete Bildpunktwerte ("X") dazu verwendet werden, um einen anderen Bildpunktwert A zu schätzen, wie dies im folgenden dargestellt ist:
XX
XXXA
Dies kann dadurch erreicht werden, indem man 32 Wahrscheinlichkeitsschät­ zungen (d. h. 2⁵, wobei 5 die Zahl der früheren Bildpunkte ist) beibehält und indem man die geeignete Schätzung auswählt, basierend auf dem aktuellen "Kontext" (d. h. den fünf früher verarbeiteten Bildpunktwerten). Die einzelnen Wahrscheinlichkeitsschätzungen können immer dann auf den neuesten Stand gebracht werden, wenn deren individueller Kontext angetroffen wird. Bei einer Ausführungsform werden die Schätzungen bei jeder Entscheidung auf den neuesten Stand gebracht. Der Bitstromgenerator kann mit dem Wahrscheinlich­ keitsschätzgerät in eine einzige Nachschlagtabelle kombiniert werden. Die einzige Forderung der vorliegenden Erfindung besteht darin, daß die Eingangs­ größe in den Bitgenerator eine Binärentscheidung und eine Wahrscheinlichkeit ist. Mit anderen Worten besteht die Eingangsgröße in dem Kodierer lediglich aus Entscheidungspaaren (z. B. Ja/Nein-Entscheidungen) oder irgendeiner anderen geeigneten Zwei-Kode-Anordnung.
Bei der Ausführung dieser spezifischen Einschränkung, bei der alle möglichen Entscheidungen in Paaren auftreten, haben beide Entscheidungen ihnen zugeord­ nete Wahrscheinlichkeiten. Beispielsweise im Falle von Ja/Nein-Entscheidungen hat "Ja" eine Wahrscheinlichkeit P, während ein "Nein" eine Wahrscheinlichkeit (1-P) hat. Diese Wahrscheinlichkeiten werden gewöhnlich gespeichert und in einer Tabelle zugegriffen. In der Praxis kann die Größe der Schätztabelle auf die Hälfte zugeschnitten werden, indem man sich lediglich an den wahrscheinliche­ ren Zustand jedes Kontextes erinnert. Mit anderen Worten kann das Paar (P, X), wobei X ein "Ja" oder "Nein" ist und P eine Wahrscheinlichkeit zwischen 0 und 1 ist, durch ein Paar (P′, W) ersetzt werden, wobei W "wahrscheinlich" oder "unwahrscheinlich" ist und P′ zwischen 0,5 und 1 liegt. Dies ist die Annähe­ rung, die bei der momentant bevorzugten Ausführungsform des Kodierers nach der vorliegenden Erfindung verwendet wird, wobei die Wahrscheinlichkeits­ schätzungen, die von PEM 115 und von PEM 135 durch den Kodierer 120 und den Dekodierer 130 empfangen werden, jeweils die Wahrscheinlichkeitsschätzun­ gen für den am wahrscheinlichsten Zustand wiedergeben (d. h. Wahrscheinlich­ keiten größer als 50%). Es sei darauf hingewiesen, daß zum Zwecke der folgen­ den Erläuterung die Ausdrücke wahrscheinlich und unwahrscheinlich austausch­ bar mit "Ja" (Y)- und "Nein"(N)-Bestimmungen verwendet werden und "MPS" und "LPS" für das am wahrscheinlichste Symbol und das am wenigsten wahr­ scheinliche Symbol verwendet werden.
Das binäre Entropiekodiersystem der vorliegenden Erfindung umfaßt ein Über­ gangsgerät mit einer Vielzahl von Zuständen, wobei jeder der Zustände ein oder mehrere Paare von legalen Übergängen besitzt. Jeder Übergang ist definiert, um zu bewirken, daß eine Kette von null oder mehr Bits ausgegeben wird, wenn der Übergang auftritt, und einen Bestimmungszustand zu bewirken, zu welchem das Übergangsgerät während des Überganges überträgt. Gerade von diesem Bestim­ mungszustand aus setzt das Übergangsgerät die Verarbeitung des nächsten Symbols fort. Bei der vorliegenden Erfindung bestimmt PEM 115, welches Übergangspaar in irgendeinem bestimmten Zustand genommen wird. Bei der momentan bevorzugten Ausführungsform bestimmt PEM 115 (oder 135) die Auswahl eines der Paare der legalen Übergänge vom laufenden Zustand durch Ausgeben von Wahrscheinlichkeitsschätzungen an den Kodierer 120 (oder Dekodierer 130). Die Y/N-Eingabe von BDM 110 bestimmt, welche der zwei legalen Übergänge des ausgewählten Paares während dem Kodieren ausgeführt werden. Letztendlich gibt der Kodierer 120 seinen Bitstrom aus, der die kompri­ mierten Eingangsdaten wiedergibt, und zwar gemäß dem Y/N-Eingang von BDM und den Wahrscheinlichkeitsschätzungen von PEM 115. Während des Dekodie­ rens bestimmen die Bitwerte in dem Bitstrom des komprimierten Bitstromes, welcher der zwei legalen Übergänge von dem ausgewählten Paar durchgeführt wird.
Jeder der Zustände kann als ein Satz von legal emittierbaren Bitströmen be­ schrieben werden. Mit sorgfältig vorbereiteten emittierten Bits kann jeder der Übergänge des Gerätes ebenfalls als ein solcher Satz beschrieben werden. Für jedes Übergangspaar, das in dem Kodierer und Dekodierer verwendet wird, sind die Übergangspaare disjunkt und bilden eine Vereinigung gleich der dem Zustand entsprechenden Menge. Bei der vorliegenden Erfindung besteht die Vereinigung der Menge aus allen möglichen binären Ausgangsgrößen. Der Wahrscheinlich­ keitsbereich, der jedem Übergangspaar zugeordnet ist, wird so gewählt, um eine Kodierung mit niedriger Bitrate der Binärentscheidungen zu erzeugen.
Der Kodierer 120 empfängt die Wahrscheinlichkeit, die dem Symbol zugeordnet ist, welches zu kodieren ist (d. h. die Wahrscheinlichkeitsschätzungen), und das Y/N-Signal, welches anzeigt, ob die zu kodierenden Daten innerhalb des Wahr­ scheinlichkeitsbereiches liegen oder nicht, der durch die Wahrscheinlichkeits­ schätzungsausgangsgröße durch das Wahrscheinlichkeitsschätzungsmodell ange­ zeigt wird (d. h. ob die Daten sich in ihrem wahrscheinlicheren Zustand befin­ den). Mit dieser Information gibt der Kodierer 120 eine Kette von Bits aus, die repräsentativ für das Symbol, welches zu kodieren ist, sind, wobei die Bitkette eine komprimierte Form des Symbols ist.
Eine Ausführungsform der vorliegenden Erfindung ist in der unten aufgeführten Tabelle 1 gezeigt.
Tabelle 1
Gemäß Tabelle 1 ist ein Zwei-Zustandskodierer gezeigt. Zu Beginn befindet sich der Kodierer im Zustand SO. Der Kodierer (z. B. der Kodierer 120 in Fig. 2) empfängt eine Zeile von Wahrscheinlichkeitsklassen (z. B. PC1, PC2, PC3, PC4, . . . ) und wahrscheinlich (MPS, LPS, MPS, MPS) oder (Y, N, Y, Y) von dem Wahrscheinlichkeitsschätzmodell (z. B. PEM 115 in Fig. 2), welches den Kodie­ rer veranlaßt, eine Bitfolge von null oder mehr Bits auszugeben und mit einem möglichen Übergang zu einem anderen Zustand. Die Wahrscheinlichkeitsklassen zeigen dem Kodierer an, welche Spalte verwendet werden sollte. Bei diesem Beispiel zeigt die Wahrscheinlichkeitsklasse an, ob der Kodierer die Spalte P1 oder P2 verwenden sollte. Wenn beispielsweise der Zwei-Zustandskodierer die Folge der Wahrscheinlichkeitsschätzungen < P1, P2, P2, P2 < und die Folge von Y/N-Entscheidungen (Y, Y, Y, N) (d. h. wahrscheinlich oder nicht) als Eingangsgrößen empfängt, würde der Kodierer zu Beginn die erste Eingangs­ größe (P1) empfangen und würde die erste Spalte ("0,50 < P < 0,64") der ersten Zeile (SO) empfangen und würde auf die Antwort "O SO" stoßen. In diesem Fall wird eine "O" ausgegeben und das Zustandsregister verbleibt im Zustand SO. Der zweite Eingang zum Kodierer (P2) bewirkt, daß die zweite Spalte ausgewählt wird ("0,64 P < 1") in der ersten Zeile (SO). Als Antwort gibt der Kodierer keinerlei Bits aus (gezeigt als "-") und das Zustandsregister wechselt auf den Zustand S1 (wie in der Spalte dargestellt ist). Auf ähnliche Weise wählt der dritte Eingang (P2) die zweite Spalte der dritten Zeile (S2) aus und bewirkt, daß eine "O" ausgegeben wird und veranlaßt das Zustandsregister, einen Übergang in den Zustand SO durchzuführen. Letztlich bewirkt der vierte Eingang (P2), daß die zweite Spalte in der zweiten Zeile SO ausgewählt wird, wobei eine "11" ausgegeben wird und das Zustandsregister in dem Zustand SO verbleibt. Demnach hat die Folge der vier Wahrscheinlichkeitsschätzungen (d. h. der vier Entscheidungen) vier Bits von Ausgängen ("0011") erzeugt, obwohl die Entsprechung nicht Eins-zu-Eins war. Obwohl bei diesem Beispiel keine Kom­ pression in irgendeiner Zahl der kodierten Symbole erzeugt wurde, wenn der Zwei-Zustandskodierer 20 aufeinanderfolgende Fälle von Wahrscheinlichkeit P = 0,7 empfangen hat, und zwar mit 20 aufeinanderfolgenden Y-Entscheidungen, würde die Ausgangsgröße dann zehn "0"s betragen, wodurch eine 2-zu-1-Kom­ primierung geschaffen wird.
Wie in Fig. 2 veranschaulicht ist, besteht das Y/N-Ansprechen aus einem Ein­ gang in das Wahrscheinlichkeitsschätzmodell (PEM), welches dann Binärent­ scheidungen an das Datenmodell ausgibt, welches seinerseits die Daten ausgibt, die die dekomprimierte Version der Eingangsdaten darstellen.
Fig. 3 veranschaulicht eine andere Ausführungsform eines Kodierers und eines Dekodierers, die gemäß der vorliegenden Erfindung aufgebaut sind. Bei dieser Ausführungsform sind zwei Speicher dazu verwendet, um zwei Nachschlagta­ bellen zu speichern (z. B. Übergangszustandgerät, Übergangstabellen), die jeweils beim Kodierungsprozeß und Dekodierungsprozeß verwendet werden (in Fig. 3 als ROM 300 und 310 jeweils bezeichnet). Diese Speicher werden dazu ver­ wendet, um die Übergänge auszuwählen und um die Kompression und Dekom­ pression der Daten zu steuern. Gemäß Fig. 3 wird die Y/N-Entscheidung 315, die Wahrscheinlichkeit 320 aus dem statistischen Modell (Fig. 2) und der Zu­ stand des Kodierers 325, wie durch das Zustandsregister 330 aufrechterhalten, in den ROM 300 eingegeben, um einen richtigen Ausgang auszuwählen, der aus dem komprimierten Datenbitstrom besteht und aus einer Identifizierung des nächsten Zustandes. Für eine Dekompression werden die komprimierten Daten aus dem Datenregister 370, die Wahrscheinlichkeit 320 und der Zustand des Kodierers als Indizes in die Nachschlagtabelle in dem ROM 310 eingegeben, der als Antwort hierauf die Y/N-Entscheidung 380 ausgibt und auch die Identifizie­ rung des nächsten Zustandes.
Da diese Schaltung sowohl eine Kompression als auch Dekompression ausführt, werden eine Kompressions-Freigabesignalleitung 335 und eine Dekompressions- Freigabesignalleitung 340 dazu verwendet, um die Funktionalität der Schaltung auszuwählen. Wenn somit die Schaltung eine Kompression durchführen soll, wird die Kompressions-Freigabeleitung 335 betätigt, um den ROM 300 in Bereitschaft zu setzen, und wenn eine Dekompression ausgeführt werden soll, wird die Dekompressions-Freigabeleitung 340 aktiviert, um den ROM 310 in Bereitschaft zu setzen.
Während der Kompressionssequenz empfängt der ROM 300 den Y/N-Wert 315, die Wahrscheinlichkeit 320 und den Zustandsregisterzustand 325 und gibt den neuen Zustand 350 aus, der dann in dem Zustandsregister 330 gespeichert wird, gibt ferner den Zählwert der Zahl der Bits, die als komprimierte Daten 355 ausgegeben wurden, und die komprimierten Daten 360 aus. Die komprimierten Daten 360 sind in dem Datenregister 370 gespeichert und der Zählwert der Bits 355, die von dem ROM ausgegeben werden, wird dazu verwendet, um die Bits in das Datenregister einzuschieben, um die komprimierten Datenbits zu empfan­ gen, die von ROM 300 ausgegeben wurden. Die komprimierten Daten können dann zu einem Speicher ausgegeben werden oder auf ein Übertragungsmedium, und zwar über das Datenregister 370, wenn dies gewünscht wird.
Wenn Daten zu dekomprimieren sind, werden die Daten in das Datenregister 370 gegeben und werden aus dem Datenregister gesteuert durch die Schiebezählwert­ signalleitung 375 ausgelesen und in den ROM 320 eingegeben, und zwar zu­ sammen mit der Wahrscheinlichkeit 320 und dem Zustand, wie dieser durch das Zustandsregister 330 gehalten wird. Diese Eingabegrößen werden dazu ver­ wendet, um einen Tabellennachschlag in der Tabelle durchzuführen, die in dem ROM 310 gelegen ist, die dann den Y/N-Wert 380 ausgibt und für das statisti­ sche Modell eine Identifizierung liefert, ob der Datenwert innerhalb des Mehr­ wahrscheinlichkeitsbereiches fällt. Der ROM 310 gibt auch eine Anzahl von komprimierten Datenbits aus, die auf die Schiebezählwert-Leitung 375 des Datenregisters 370 eingegeben werden, um die in dem Datenregister 370 enthal­ tenen Bits zu verschieben, und auch den nächsten Zustand 350 der Schaltung. Wie an früherer Stelle beschrieben wurde, wird das erzeugte Y/N-Signal in die verbleibenden Komponenten des Dekompressors eingegeben, speziell das statisti­ sche Modell und die BDM-Vorrichtung, um die Eingangsdaten zu rekonstruie­ ren.
ENDLICHE AUTOMATEN
Die vorliegende Erfindung schafft ein Verfahren und ein Gerät zur Durchführung einer Kanalmodulation. Bei einer Ausführungsform führt die vorliegende Erfin­ dung eine Kanalkodierung für lauflängenbegrenzte Kanäle durch. Das Kanalko­ dieren wird unter Verwendung von endlichen Automaten (finite state machines) durchgeführt. Bei der vorliegenden Erfindung werden die endlichen Automaten dazu verwendet, um einen Spurnachlauf von Teilausgangsgrößen durchzuführen, während jede Eingangsgröße eine zu einem Zeitpunkt verbraucht wird. Die Ausgangsgrößen werden mit variablen Raten dahingehend erzeugt, daß die Länge jeder Ausgangsgröße gemäß den kodierten Daten variieren kann.
Die vorliegende Erfindung umfaßt ein Verfahren und ein Gerät zur Durchfüh­ rung einer Kanalkodierung und einer Datenkompression mit Hilfe der gleichen funktionellen Einheit. Eine Anwendung des binären Entropiekodierers der vorliegenden Erfindung besteht darin, die Bitgenerierungsstufe der vorliegenden Erfindung mit der Kanalmodulation zu kombinieren, um sowohl eine Kom­ pression als auch Kanalmodulation gleichzeitig zuzulassen. Mit anderen Worten kann der binäre Entropiekodierer der vorliegenden Erfindung so modifiziert werden, um einige Typen einer Kanalmodulation zur gleichen Zeit durchzufüh­ ren, zu der die ursprüngliche Operation der Bitgenerierung für die Datenkom­ pression ausgeführt wird. Ein endlicher Automat, der nach der vorliegenden Erfindung konstruiert ist, kann dazu verwendet werden, um die Operationen gleichzeitig auszuführen.
Die vorliegende Erfindung umfaßt auch die Verwendung der endlichen Automa­ ten für die Fehlerkorrektur. Das bedeutet, ein endlicher Automat kann so ausge­ legt werden, um eine Fehlerkorrekturkodierung durchzuführen. Bei einer anderen Anwendung wird der binäre Entropiekodierer der vorliegenden Erfindung so modifiziert, um eine Fehlerkorrektur gleichzeitig mit der Bitgenerierungsopera­ tion der Datenkompression durchzuführen. Es können auch Modifikationen hinsichtlich des binären Entropiekodierers vorgenommen werden (z. B. Modifika­ tionen hinsichtlich des endlichen Automaten), um eine Fehlerkorrektur und eine Kanalmodulation gleichzeitig durchführen zu können, und zwar zusammen mit der Bitgenerierungsoperation der Datenkompression.
Wenn die Datenkompressionsoperation der Bitgenerierung mit den Operationen der Kanalmodulation und/oder Fehlerkorrekturkodierung kombiniert wird, wird die Hardware, die erforderlich ist, um ein System, welches diese Funktionen besitzt, zu erstellen, reduziert, da ein einzelner funktionaler Hardware-Block gleichzeitig mehrere Funktionen vorsieht. Bei Anwendungen, wie beispielsweise einer Datenspeicherung, können die Kompressions-, Fehlerkorrektur- und Kanal­ modulationsfunktionen alle durch die Datenspeichervorrichtung ausgeführt werden, die durchlässig ist für die Software, die auf diesem System momentan läuft und von dieser getrennt ist.
KODIERUNG FÜR ZWANGSKANÄLE
Die vorliegende Erfindung ermöglicht die Durchführung einer Kodierung für Zwangskanäle (d. h. Kanalmodulation). Gemäß der vorliegenden Erfindung wird eine feste Zahl von willkürlichen Eingangsbits empfangen und es wird eine größere Zahl von Zwangsbits erzeugt. Bei einer Ausführungsform wird erfin­ dungsgemäß ein Eingangsbit zu einem Zeitpunkt empfangen und es wird eine variable Zahl von Zwangsbits (constrained bits) erzeugt.
Der Kanal kann erzwungen (constrained) sein, um einen lauflängenbegrenzten Kode zu schaffen, wie beispielsweise (1, 3). Der Gegenstand der vorliegenden Erfindung kann für andere lauflängenbegrenzte Kodes (1, 7) verwendet werden. Die vorliegende Erfindung ist auch anwendbar auf andere Zwänge oder Ein­ schränkungen neben den lauflängenbegrenzten Kodes. Beispielsweise haben Faseroptikkanäle und andere Typen von Kanälen eine Ladungseinschränkung. Anstelle eines binären Zwanges (d. h. eine "1" und "0") ist der Kanal darauf eingeschränkt, definiert zu sein durch +1- und -1-Ladungen, wobei die Gesamt­ ladung im Kanal zwischen einem gewissen vordefinierten Spannungsbereich (z. B. [-2, +3]) bleiben muß. Kanäle, die kein Binärsymbol haben, wie beispielsweise ein Morse-Kode (Punkte und Striche), können ebenfalls als Zwang oder Ein­ schränkung gehandhabt werden.
Durch die vorliegende Erfindung wird eine Kanalkodierung oder eine Kanalmo­ dulation unter Verwendung von endlichen Automaten durchgeführt. Die endli­ chen Automaten der vorliegenden Erfindung enthalten vielfache Zustände. Jeder dieser Zustände umfaßt einen Satz von Übergängen, der anzeigt, in welchen der Zustände der Automat überzuwechseln hat. Die Entscheidung hinsichtlich der Tatsache, zu welchen der Übergänge eines bestimmten Zustandes übergegangen werden soll, wird gemäß der empfangenen Eingangsgröße getroffen. Bei einer Ausführungsform enthält jeder der Zustände ein Paar von Übergängen, wobei der bestimmte genommene Übergang gemäß jedem Eingang gewählt wird. Für binäre Eingangsgrößen wählt eine "O" einen Übergang und ein "1"-Biteingang wählt den zweiten Übergang. Die vorliegende Erfindung ist nicht auf binäre Eingangsgrößen beschränkt, so daß die Übergänge in einem Übergangspaar oder Satz gemäß jedem bestimmten empfangenen Eingang (z. B. Belegungsbit, Kode­ wort usw.) ausgewählt werden können.
Jeder Übergang enthält auch einen Satz von 0 oder mehr Ausgangsbits, die nach Auswahl des Überganges ausgegeben werden. Die Ausgangsbits sind die einge­ schränkten oder Zwangskanalbits. Mit anderen Worten werden die Ausgangsbits für den endlichen Automaten so ausgewählt, daß die Beschränkung des Kanals getroffen oder berücksichtigt wird.
Ein beispielhaftes Blockschaltbild der Kanalkodierlogik ist in Fig. 4 gezeigt. Gemäß Fig. 4 werden Eingangsbits 401 in die Kodierlogik 400 eingegeben, um eine variable Zahl von Ausgangsbits 402 zu erzeugen. Bei der vorliegenden Erfindung umfaßt die Kodierlogik 400 einen endlichen Automaten. Der endliche Automat empfängt sowohl den laufenden Zustand 403 als auch ein Eingangsbit 401 und erzeugt 0 oder mehrere Ausgangsbits 402. Der endliche Automat erzeugt auch eines oder mehrere Bits, um den nächsten Zustand anzuzeigen. Die nächste Zustands-Ausgangsgröße wird zu dem laufenden Zustand 403 für den nächsten Biteingang 401 rückgekoppelt. Ein Satz an Pufferstufen kann dazu verwendet werden, um die Ausgangsbits 402, die Eingangsbits 401 und den Zustand zu puffern. Diese Pufferstufen sind nicht gezeigt, um eine unnötige Verschleierung der vorliegenden Erfindung zu vermeiden.
Eine Zustandstabelle, die den Betrieb einer Ausführungsform der Kodierlogik 400 herausgreift, ist in der Tabelle 2 gezeigt. Die Tabelle 2 greift die Zustand­ stabelle für einen RLL(1,3)-Kode heraus. Der RLL(1,3)-Kanal wird häufig bei Disk-Antrieben verwendet, wobei ein unterschiedlicher Kode als der modifizierte Frequenzmodulationskode (MFM) bezeichnet wird. Der MFM gibt immer ein Bit ein und gibt zwei Bits aus.
Tabelle 2
Zustandstabelle für die RLL(1,3)-Umsetzung
Wie in der Tabelle 2 gezeigt ist, gibt der Kodierer dann, wenn sich der Kodierer im Zustand 0 befindet und ein Eingangsbit von "0" empfängt, das Bitmuster "01" aus. Es sei erwähnt, daß in diesem Fall der nächste Zustand der Zustand 0 ist. Daher bleibt für diese Eingangsgrößen der Kodierer im Zustand 0. Wenn sich der Kodierer in dem Zustand 0 befindet und eine Eingangsgröße einer "1" empfängt, gibt der Kodierer keinerlei Bits aus, wie dies durch "--" angezeigt ist, und geht in den Zustand 1 über. Wenn er sich in dem Zustand 1 befindet, gibt der Kodierer entweder einen Bitstrom von "1000" oder "100" aus, was davon abhängig ist, ob das Eingangsbits jeweils eine "0" oder "1" ist. In jedem Fall gelangt der Kodierer, nachdem er die Ausgangsbits erzeugt hat, zurück in den Zustand 0.
Nach Betrachtung der möglichen Ausgangsbitströme erfüllt der endliche Auto­ mat, der durch die Tabelle 2 definiert ist, die Einschränkung oder den Zwang eines RLL(1,3)-Kanalkodes. Alle die Ausgangsbitströme haben eine "1", die gefolgt wird von wenigstens einer Null, und haben nicht mehr als drei Nullen. Wenn man somit endliche Automaten verwendet, die gemäß der Zustandstabelle in der Tabelle 2 arbeiten, und andere Automaten verwendet, die ähnlich kon­ struiert sind, kann gemäß der vorliegenden Erfindung eine Kanalmodulation durchgeführt werden (d. h. eine Kanalkodierung).
Wie ebenfalls in der Tabelle 2 veranschaulicht ist, besitzen die Ausgangsbits eine variable Länge, und zwar entweder 0, 2, 3 oder 4 Bits. Da gemäß der vor­ liegenden Erfindung eine Ausgangsgröße variabler Länge vorhanden ist, kann nach der Erfindung auch die Zahl der legitimierten (d. h. verfügbaren) Sequen­ zen, die über den Stand der Technik hinaus verwendet werden können, erhöht werden, und zwar ohne zu große Komplexität. Beispielsweise zeigt die Informa­ tionstheorie, daß der RLL(1,3)-Kanal ca. 1,81 Kanalbits pro willkürlichem Datenbit erfordert. Es werden somit 0,19 Kanalbits für jedes Datenbit vergeudet, wenn ein festes Ratenverfahren, wie das MFM-Verfahren verwendet wird. Wenn die Kodierung durchgeführt wird unter Verwendung eines endlichen Automaten der vorliegenden Erfindung, wie beispielsweise des einen, der in der Tabelle 2 beschrieben ist, ist es möglich, nur 1,833 Kanalbits pro Datenbit im Schnitt zu verwenden. Beispielsweise kann ein 100-Megabyte-Disk-Antrieb, der die MFM- Kodierung verwendet, grob 110 Megabyte unter Verwendung des endlichen Automaten der vorliegenden Erfindung im Gegensatz zur herkömmlichen MFM- Ausführung speichern. (Es sei darauf hingewiesen, daß es möglich ist, die Grenze von 1,81 Kanalbits pro Datenbit anzunähern, und zwar mit momentan verfügbaren Festratenverfahren, jedoch erfordert dieses Verfahren viel größere Nachschlagtabellen, was dann zu höheren Hardware-Kosten führt.)
Der Zustandsautomat, der die Operation der Kodierlogik 400 definiert, ist so ausgeführt, daß die Ausgangsgrößen der Übergänge automatisch den auferlegten Zwang oder die Einschränkung erfüllen. Bei einer Ausführungsform ist der endliche Automat als eine Nachschlagtabelle (LUT) ausgeführt. Der endliche Zustand kann unter Verwendung einer kombinatorischen Logik realisiert werden. Eine mögliche Ausführung des Zwangskanalkodierers nach der vorliegenden Erfindung ist in Fig. 5 gezeigt. Gemäß Fig. 5 ist eine Nachschlagtabelle (look-up table) (LUT) 502 gezeigt, die einen Zustand 507 von einem Zustandsregister 501 und einem Resultat 503 empfängt. Die LUT 502 kann in einem Speicher enthal­ ten sein. Es ist auch möglich, anstelle des Speichers eine kombinatorische Logik zu verwenden. Bei einer Ausführungsform besteht das Resultat 503 aus einem binären Wert. Der binäre Wert kann entweder das wahrscheinlichste Symbol (MPS; most probable symbol) oder das am wenigstens wahrscheinliche Symbol (LPS; least probable symbol) wiedergeben. Die LUT 502 erzeugt einen Zwangs­ bitstrom, der als Ausgang 505 angegeben ist, und zwar als Antwort auf Ein­ gangsgrößen derart, daß der Ausgang 505 den Zwang erfüllt, der dem Kanal auferlegt ist. Die LUT 502 erzeugt auch eine Ausgangsgröße 506. Die Aus­ gangsgröße 506 gibt die Zahl der Bits in dem Ausgang 505 an. Diese Anzeige kann lediglich eine Anzeige darüber sein, welche Bits in dem Ausgangsstrom signifikant sind (d. h. welche der Bits aktuelle Ausgangsgrößen sein). Die LUT 502 ist auch verantwortlich für die Erzeugung des nächsten Zustandes 504. Der nächste Zustand 504 wird von der LUT 502 ausgegeben und wird in das Zu­ standsregister 501 eingegeben, und zwar als der Zustandseingang für das nächste Bit. Wenn somit die LUT 502 den Zustand 507 und das Resultat 503 empfängt, werden der Ausgang 505, die Ausgangsgröße 506 und der nächste Zustand 504 generiert. Der Ausgang 505 und der nächste Zustand 506 werden in typischer Weise in der gleichen Weise erzeugt, wie der Ausgang und der nächste Zustand in Verbindung mit der Tabelle 2 erzeugt werden.
Bei einer Ausführungsform kann das Zustandsregister 501 2-8 Bits puffern; jedoch kann das Zustandsregister 501 ein Register irgendeiner Größe sein. Da das Resultat 503 eine einzelne binäre Bit-Eingangsgröße ist, empfängt die LUT 502 einen Eingang von 3-9 Bits. Bei einer Ausführungsform kann der Ausgang 505 bis zu 14 Bits umfassen, und zwar für einige eingeschränkte Kanäle. Um daher anzuzeigen, welche Bits signifikant sind, muß die Ausgangsgröße 506 2-4 Bits betragen.
Gemäß der vorliegenden Erfindung kann auch eine Kanalmodulation unter Verwendung einer Anzahl frei wählbarer Zustände durchgeführt werden. Die Zahl der Zustände, die ausgewählt werden, hängt von der Kanalbeschränkung ab. Beispielsweise belegt für einen RLL(1,3)-kodierten Kanal die Verwendung der zwei Zustände 99% der Kanalkapazität. Jedoch würden für einen RLL(1,7)- kodierten Kanal 18 Zustände erforderlich sein, um einen äquivalenten oder größeren Wirkungsgrad zu erhalten. Es können auch Zustandsautomaten unter­ schiedlicher Größe verwendet werden. Diese Zustandsautomaten können lediglich ein Eingangsbit zu einem Zeitpunkt empfangen. Es ist jedoch möglich, vor­ auszuschauen und mehr als 1 Bit gleichzeitig aufzunehmen (z. B. 2 Bits) unter Verwendung einer größeren LUT.
Die endlichen Automaten der vorliegenden Erfindung, die eine Kanalmodulation durchführen können, können in dynamischen Aufzeichnungssystemen verwendet werden, wie beispielsweise Disk-Treiber-Speichersysteme. Die vorliegende Erfindung ist auch bei Systemen anwendbar, die ein digitales Magnetband, CD- ROMs, optische Disks und Faseroptikkabel verwenden. Fig. 6 veranschaulicht ein Beispiel eines digitalen Aufzeichnungssystems. Gemäß Fig. 6 umfaßt das System 600 einen Komprimierungskodierer 601, einen Fehlerkorrekturkodierer 602, einen Modulationskodierer 603, einen Datenübertragungsmechanismus 604, einen digitalen Datenaufzeichnungskanal 605, einen Datenempfangsmechanismus 606, einen Modulationsdekodierer 607, einen Fehlerkorrekturdekodierer 608 und einen Kompressionsdekodierer 609.
Die Daten 610 werden von dem Kompressionskodierer 601 empfangen, der die Daten komprimiert. Der Fehlerkorrekturkodierer 602 ist an den Kompressions­ kodierer 601 gekoppelt und empfängt die komprimierten Daten. Der Fehler­ korrekturkodierer 602 führt eine Fehlerkorrekturkodierung an den komprimierten Daten durch. Der Modulationskodierer 603 ist an den Fehlerkorrekturkodierer 602 gekoppelt und empfängt die komprimierten, fehlerkorrigierten Daten von dem Fehlerkorrekturkodierer 602. Als Antwort führt der Modulationskodierer 603 eine Kanalmodulation an den Daten durch. Bei der vorliegenden Erfindung enthält der Modulationskodierer 603 einen endlichen Automaten. Der Ausgang des Modulationskodierers 603 wird von dem Datenübertragungsmechanismus 604 empfangen, der die Daten auf den Kanal 605 überträgt. Bei einer Ausführungs­ form enthält der Datenübertragungsmechanismus 604 einen Signalgenerator. Der Datenübertragungsmechanismus 604 kann auch einen Schreibequalizer enthalten. Bei einigen Ausführungsformen kann der Kanal 605 eine Disk-Speichervor­ richtung oder ein Speichermedium umfassen oder einen Faseroptikkanal dar­ stellen.
Der Datenempfangsmechanismus 606 ist an den Kanal 605 gekoppelt, um Daten zu empfangen und um Daten dem Modulationsdekodierer 607 zuzuführen. Bei einer Ausführungsform kann der Datenempfangsmechanismus 606 einen Lese­ equalizer und/oder einen Datendetektor enthalten. Der Modulationsdekodierer 607 ist angekoppelt, um Daten zu empfangen und er demoduliert die Daten. Bei einer Ausführungsform demoduliert der Modulationsdekodierer 607 die Daten unter Verwendung eines endlichen Automaten. Der Ausgang des Modulations­ dekodierers 607 ist so angekoppelt, daß ein Empfang durch den Fehlerkorrektur­ dekodierer 608 möglich ist, der eine Fehlerkorrekturdekodierung an den Daten durchführt, wodurch die komprimierten Daten aus den Daten extrahiert werden, die von dem Modulationsdekodierer 607 empfangen werden. Die komprimierten Daten werden von dem Kompressionsdekodierer 609 empfangen, der die Daten dekomprimiert, um die Daten 610 zu reproduzieren.
Die vorliegende Erfindung ermöglicht auch die gleichzeitige Durchführung einer Kanalmodulation und einer Datenkompression unter Verwendung von endlichen Automaten. Nach der vorliegenden Erfindung kann das Datenkompressions­ system, welches den binären Entropiekodierer der vorliegenden Erfindung für eine Bitgenerierung verwendet, modifiziert werden, um Sequenzen zu kodieren und zu dekodieren, die die Kanaleinschränkung erfüllen. Ein in Fig. 6 gezeigtes System kann diesen Typ eines endlichen Automaten verwenden, und zwar für den Kompressionskodierer 601 und den Modulationskodierer 603 (oder für den Kompressionsdekodierer 609 und den Modulationsdekodierer 607). Somit kann die gleiche Funktionalität, die dazu verwendet wird, um die Datenkompression durchzuführen, dazu verwendet werden, um auch eine Kanalkodierung durch­ zuführen.
Bei der vorliegenden Erfindung ist ein endlicher Automat dafür ausgelegt, um eine Bitgenerierung der Datenkompression und der Kanalmodulation durch­ zuführen und enthält vielfache Zustände. Jeder der Zustände enthält einen oder mehrere Sätze von Übergängen. Bei einer Ausführungsform enthält jeder Satz ein Paar von Übergängen. Die Wahrscheinlichkeitsschätzung, die der Datenkom­ pression zugeordnet ist, wird dazu verwendet, um eine Wahl zu treffen, welcher der Übergangssätze zu verwenden ist, während der ausgewählte bestimmte Zustand herrscht. Die Eingabe in den komprimierten und kodierten Kanal wird dazu verwendet, um einen bestimmten Übergang (und Ausgangs-Bitstrom) in einem bestimmten Satz auszuwählen. Indem somit der Zustand, eine Eingangs­ größe und eine wahrscheinliche Schätzung oder Schätzwert empfangen wird, kann der endliche Automat der vorliegenden Erfindung den Bitstrom komprimie­ ren, während eine Kanalmodulation an dem Bitstrom durchgeführt wird.
Ein Bitgenerierungsgerät, welches eine Kompressionskodierung und eine Kanal­ kodierung für RLL (1, 3) durchführt, ist in der Tabelle 3 gezeigt. Gemäß der Tabelle 3 enthält die Eingangsspalte einen binären Wert, der entweder dem wahrscheinlichsten Symbol (MPS) oder dem am wenigsten wahrscheinlichen Symbol (LPS) entspricht. Die Schräge (skew) stellt den Wahrscheinlichkeits­ schätzwert dar und weist darauf hin, wie wahrscheinlich das MPS auftritt.
Tabelle 3
Datenkompressions- und erzwungene Kanalkodierung
Wie in der Tabelle 3 veranschaulicht ist, greift die Ausgangsspalte die Tatsache heraus, daß jedes "1"-Bit gefolgt wird von wenigstens einem "0"-Bit und nicht mehr als drei "0"-Bits. Daher haftet der Ausgang an der RLL(1,3)-Kanalkodie­ rungsdefinition.
Wenn der laufende Zustand der Zustand O ist, gibt es zwei mögliche Übergangs­ paare. Jedes der Übergangspaare wird abhängig davon ausgewählt, ob die Schräge hoch oder niedrig ist. Wenn eine niedrige Wahrscheinlichkeit existiert, daß MPS auftreten wird, so daß die Schräge niedrig ist, wird das erste Über­ gangspaar gewählt. Wenn dies der Fall ist, bewirkt ein Eingang von LPS, daß ein Ausgangsstrom von "10" ausgegeben wird und der Automat in dem Zustand 0 verbleibt. Wenn andererseits MPS auftritt, werden keine Bits ausgegeben und der Automat wechselt in den Zustand 1. Wenn die Schräge hoch ist, bewirkt ein Eingang von LPS, daß ein Bitstrom "1000" ausgegeben wird und daß der Auto­ mat in einem Zustand 0 verbleibt. Ein MPS-Eingang bewirkt jedoch, daß keine Bits ausgegeben werden und daß der Automat in den Zustand 2 überwechselt. Wenn sich der Automat in den Zuständen 1 oder 2 befindet, bewirkt ungeachtet der Neigung oder Schräge ein Eingang, daß der nächste Zustand der Zustand 0 ist. Für jeden bestimmten Fall sind die Ausgänge so, wie gezeigt. Wenn somit die Schräge niedrig ist und somit angezeigt wird, daß eine hohe Kompression nicht erreicht werden kann, dann bleibt der Betrieb eines endlichen Automaten, wie in Tabelle 3 definiert, in der gleichen Weise, wie in Tabelle 2, bestehen. Wenn jedoch die Schräge hoch ist, werden die am häufigsten vorkommenden zwei Eingangssituationen kodiert als die Bits "10". Es sei darauf hingewiesen, daß dies die Kompression darstellt, da normalerweise zwei Datenbits wenigstens 3,62-Kanalbits erforderlich machen würden. Größere Automaten erlauben eine größere Kompression.
Eine Ausführungsform des kombinierten Kanalkodierers und Binär-Entropieko­ dierers der vorliegenden Erfindung ist in Fig. 7 gezeigt. Gemäß Fig. 7 ist eine LUT 702 gezeigt, die einen Zustand 708 von einem Zustandsregister 701, ein Ergebnis 703 und eine Wahrscheinlichkeitsschätzung oder Schätzwert 707 empfängt. Es sei erwähnt, daß das Ergebnis oder Resultat 703 den Bitstrom­ eingang wiedergibt, der Kanal kodiert und gleichzeitig komprimiert werden muß. Als Antwort darauf gibt die LUT 702 einen Ausgang 705 und eine Ausgangs­ größe 706 (output size) aus. Die LUT 702 erzeugt auch den nächsten Zustand 704, der zu dem Zustandsregister 701 rückgekoppelt wird, und zwar für die Verwendung als dem Zustand für das nächste Auftreten des Eingangs des Resul­ tats 703. Der kombinierte Kanalkodierer/Binär-Entropiekodierer arbeitet in der gleichen Weise wie der Kanalkodierer der Fig. 5, ausgenommen, daß der Wahr­ scheinlichkeitsschätzwert 707 dazu verwendet wird, den Satz der Übergänge in jedem der Zustände auszuwählen.
Bei einer Ausführungsform kann das Zustandsregister 701 2-8 Bits halten, der Wahrscheinlichkeitsschätzwert kann 1-4 Bits betragen und das Resultat 703 betragt ein Bit. In diesem Fall kann die LUT 702 3-13 Bits des Eingangs emp­ fangen. Es sei darauf hingewiesen, daß das Zustandsregister 701 aus einem Register bestehen kann, welches irgendeine Zahl von Bits speichert. Auch der Wahrscheinlichkeitsschätzwert kann größer sein als vier Bits, und zwar bei anderen Ausführungsformen. Der Ausgang 705 von der LUT 702 beträgt 2-8 Bits für den Binär-Entropiekodierer der vorliegenden Erfindung. Es kann jedoch der Ausgang 705 größer sein, wenn eine mehrdimensionale (joint) Datenkom­ pression durchgeführt wird. In diesem Fall beträgt die Ausgangsgröße 706 2-4 Bits, um alle möglichen Größen des Ausgangs 705 anzuzeigen.
Es kann somit ein Übergangszustandsautomat nach der vorliegenden Erfindung so ausgelegt werden, daß er einen Bitstrom erzeugt, der eine Einschränkung oder einen Zwang erfüllt, der durch ein Endlich-Übergangsdiagramm spezifiziert ist, und zwar in solcher Weise, daß es möglich wird, auf den ursprünglichen Daten­ strom als Teil der Dekodieroperation zurückzukehren. Auf diese Weise schafft die vorliegende Erfindung endliche Automaten, die eine Kanalmodulation durch­ führen oder gleichzeitig eine Kompression und Kanalmodulation durchführen.
Die vorliegende Erfindung schafft einen Automaten, der Ausgänge erzeugt, die eine variable Anzahl von Bits aufweisen. Da erfindungsgemäß die Möglichkeit geschaffen wird, eine Ausgangsgröße mit einer variablen Rate während der Kanalmodulation zu erzeugen, ist die exakte Speicherkapazität eines Diskantriebs nicht unabhängig von den gespeicherten Daten. Da jedoch Diskantriebe häufig schlechte Sektoren aufweisen und auch einige komprimierte Dateien, bildet die exakte Speicherkapazität eines typischen Diskantriebs bereits eine gewisse Unsicherheit. Kodes mit variabler Rate ermöglichen es auch, daß ein einzelner Fehler mehrere Daten als Kodes mit fester Rate beeinflussen. Jedoch existiert die gleiche Situation bei laufend komprimierten Dateien auf Aufzeichnungsmedien. Kurz gesagt, bieten die Zwangskanalkodes mit variabler Rate der vorliegenden Erfindung die gleichen Probleme, die bei komprimierten Dateien bei normalen Diskantrieben existieren. Sie sind jedoch befähigt, bei der Kanalverwendung wirksamer zu sein und erhöhen möglicherweise die Geschwindigkeit aufgrund ihrer gemeinsamen Operation (bei der Datenkompression).
FEHLERKORREKTURKODIERUNG
Die Fehlerkorrekturkodierung wird häufig bei Daten durchgeführt, wo der Kanal nicht verlustlos ist. Die Fehlerkorrektur kann als eine andere Beschränkung oder Zwang in Verbindung mit dem Kanal betrachtet werden. Das heißt, eine Folge von willkürlichen Bits enthält einige Paritätsbits, die entsprechend diesen erzeugt werden. Die vorliegende Erfindung schafft auch endliche Automaten, um eine Fehlerkorrekturkodierung an einem Eingangsdatenstrom durchzuführen. Für einige Typen der Fehlerkorrekturkodes ist es möglich, einen endlichen Automa­ ten zu erstellen, der eine Kodierung durchführt. Einer dieser Typen der Fehler­ steuerkodes wird häufig als Konvolutionalkode bezeichnet. Die Konvolutionalko­ des haben bekanntermaßen eine Struktur, die es ihnen ermöglicht, durch ein endliches Zustandsübergangsdiagramm wiedergegeben zu werden. Obwohl Konvolutionalkodes verwendet werden können, können nach der vorliegenden Erfindung auch andere Fehlerkorrekturkodes realisiert werden unter Verwendung der endlichen Automaten. Beispielsweise können Trellis-Kodes ebenfalls durch ein Endlichzustand-Übergangsdiagramm wiedergegeben werden. Andere Kodes können solange verwendet werden, als sie mit Hilfe eines Endlichzustands-Über­ gangsdiagramms wiedergegeben werden können.
Die endlichen Automaten der vorliegenden Erfindung können derart ausgelegt werden, daß deren Ausgang Fehlerkorrekturbits enthält, die in die Bits aus dem Eingangsbitstrom integriert sind. Ein Beispiel einer Zustandstabelle für einen endlichen Automaten, der eine Fehlerkorrektur vorsieht, ist in der Tabelle 4 gezeigt.
Tabelle 4
Automat für die Fehlerkorrekturkodierung
Gemäß der Tabelle 4 arbeitet die Zustandstabelle in der gleichen Weise wie diejenige der Tabelle 2. Unter Verwendung des laufenden Zustands und des Eingangs wird erfindungsgemaß ein Bitstrom ausgegeben, der integrierte Fehler­ korrekturbits und Übergänge zu dem nächsten bezeichneten Zustand für den nächsten Eingang enthält. In ähnlicher Weise können die funktionellen Kom­ ponenten, die verwendet wurden, um die Tabelle 2 zu erstellen, wie in Fig. 4 und 5 gezeigt ist, dazu verwendet werden, um die Zustandstabelle nach Tabelle 4 zu erstellen.
Wenn in einem System, welches einen Binär-Kodierer der vorliegenden Erfin­ dung verwendet, Daten komprimiert werden, kann der binäre Kodierer modifi­ ziert werden, um sowohl eine Datenkompressions- als auch Fehlerkorrekturko­ dierung durchzuführen. Dies bedeutet, daß unter Verwendung des endlichen Automaten die vorliegende Erfindung die Möglichkeit schafft, eine Datenkom­ pression und eine Fehlerkorrekturkodierung an einem Eingangsbitstrom gleich­ zeitig vorzunehmen. Der Automat der vorliegenden Erfindung arbeitet in der gleichen Weise wie die Automaten, die oben beschrieben sind, die eine Daten­ kompression und Kanalmodulation gleichzeitig durchführen. Mit anderen Worten empfängt der Automat einen Eingangsbitstrom, eine Anzeige des laufenden Zustands und einen Wahrscheinlichkeitsschätzwert und generiert einen Ausgangs­ bitstrom, wobei der Wahrscheinlichkeitsschätzwert dazu verwendet wird, um zwischen vielfältigen Sätzen der Übergänge auszuwählen und wobei der Bit­ eingang den aktuellen Übergang in dem Satz der Übergänge auswählt, die durch den Wahrscheinlichkeitsschätzwert ausgewählt worden sind. Ein Beispiel einer Zustandstabelle für einen endlichen Automaten, der eine Fehlerkorrektur und Datenkompression erzeugt, ist in der Tabelle 5 gezeigt.
Tabelle 5
Automat für die Fehlerkorrekturkodierung und die Datenkompression
Bei einer Ausführungsform kann dieser Typ eines endlichen Automaten in Systemen verwendet werden, wie demjenigen, welches in Fig. 6 gezeigt ist, wobei der Kompressionskodierer 601 und der Fehlerkorrekturkodierer 603 durch deren Verwendung durch den endlichen Automaten kombiniert sind. Nach der vorliegenden Erfindung wird die Dekodierung mit Hilfe einer getrennten Fehler­ korrekturschaltungsanordnung und einem Dekompressionssystem erreicht. Mit anderen Worten wird die Dekodierung nicht in Form einer einzelnen Stufe durchgeführt.
Der endliche Automat der vorliegenden Erfindung kann so ausgelegt werden, um gleichzeitig eine Fehlerkorrekturkodierung und eine Kanalmodulation zu erzeu­ gen. Die vorliegende Erfindung ermöglicht es auch, die Datenkompression, Fehlerkorrektur und Kanalkodierung in einem einzigen endlichen Automaten zu kombinieren. Unter Verwendung der gleichen oben beschriebenen Techniken führt ein endlicher Automat, der Eingangsdaten empfängt und die Daten kom­ primiert, eine Fehlerkorrekturkodierung und gleichzeitig eine Kanalkodierung durch. In diesem Fall werden der Kompressionskodierer (z. B. der Kompressions­ kodierer 601), der Fehlerkorrekturkodierer (z. B. der Fehlerkorrekturkodierer 602) und der Kanalmodulationsmechanismus (z. B. der Modulationskodierer 603) in einem System, wie demjenigen in Fig. 6, in einem einzigen endlichen Auto­ maten kombiniert, der einen Ausgang erzeugt, der Daten wiedergibt, die drei Funktionen unterworfen wurden. Es ist möglich, Systeme zu realisieren, welche mehrere endliche Automaten verwenden, wobei jeder endliche Automat eine Anschlußfunktionalität besitzt, wie dies oben beschrieben wurde.
Jede Kombination erlaubt eine erhöhte Geschwindigkeit, obwohl die Zustandsta­ bellen, die für diese Kodierung erforderlich sind, groß werden können. Bei herkömmlichen Aufzeichnungssystemen werden diese Funktionen durch getrennte Einheiten durchgeführt. Nur eine der Einheiten ist befähigt, auf die Daten zu irgendeinem Zeitpunkt einzuwirken. Darüber hinaus verkörpern nicht alle Auf­ zeichnungssysteme alle die Funktionen. In diesem Fall muß häufig die System­ software dazu verwendet werden, um die Funktion durchzuführen. Dies bewirkt, daß andere Systemfunktionen aufgeschoben werden müssen. Die vorliegende Erfindung erlaubt es, alle Funktionen durch eine Einheit ausführen zu können. Im Falle der Aufzeichnungssysteme führt die Systemsoftware eine Kompression aus. Eine getrennte Hardware führt die Fehlerkorrekturkodierung und die Kanal­ modulation durch. Diese Hardware kann so ausgelegt werden, daß sie einen endlichen Automaten der vorliegenden Erfindung enthält, der eine Datenkom­ pression, Kanalmodulation und eine Fehlerkorrektur gleichzeitig ausführt. Beispielsweise kann der Automat den Eingangsbitstrom empfangen, ebenso eine Anzeige des laufenden Zustandes und einen Wahrscheinlichkeitsschätzwert, und kann einen Ausgangsbitstrom erzeugen, wobei der Wahrscheinlichkeitsschätzwert dazu verwendet ist, zwischen vielen Sätzen der Übergänge auszuwählen, und wobei der Biteingang den aktuellen Übergang in dem Satz der Übergänge aus­ wählt, der durch den Wahrscheinlichkeitsschätzwert ausgewählt worden ist. In diesem Fall ist die Systemsoftware davon befreit, andere Aufgaben auszuführen, und die Hardware benötigt lediglich einen Tabellennachschlag pro Eingang, wodurch dann die Systemgeschwindigkeit erhöht wird.
KODIERUNG VON BITSEQUENZEN
Bei irgendeiner Kodierungsoperation (Datenkompression, Kanalkodierung oder Fehler-Steuerkodierung) ist es wesentlich, daß die Ursprungsdaten aus den kodierten Daten erhalten werden können. Mit anderen Worten muß bei einem gegebenen komprimierten oder anderweitig kodierten Datenstrom eine einzig­ artige Folge der Ursprungsdaten vorhanden sein, welche diese Folge erzeugt hat.
Wenn dies der Fall ist, so wird die komprimierte Folge oder der Kompressions­ prozeß als einmalig oder eindeutig dekodierbar bezeichnet. Bei der vorliegenden Erfindung sind die Kodes noch eindeutig dekodierbar. Darüber hinaus besitzen die Kodes der vorliegenden Erfindung nicht die Präfix-Eigenschaft, sondern sie sind noch einzigartig dekodierbar. Dies wird offensichtlich, indem man die Kodierungsentscheidung betrachtet. Es wird die Eingangswahrscheinlichkeit geschätzt und dazu verwendet, um ein Paar von möglichen Übergängen auszu­ wählen. Für irgendein Paar der Übergänge ist ein Übergang in der Lage, einige der Sequenzen in der ersten Menge zu generieren und der andere Übergang ist in der Lage, eine vollständig andere Menge der Sequenzen zu generieren. Ein Dekodierer kann die Bitsequenz, die tatsächlich aufgetreten ist, prüfen. Wenn die Sequenz sich in der ersten Menge des ersten Übergangs befindet, dann muß der Kodierer diesen Übergang verwendet haben und es muß der Eingang, der be­ wirkt hat, daß dieser Übergang verwendet worden ist, aufgetreten sein. Im anderen Fall muß die Sequenz in einer anderen Menge vorhanden sein und auch ein unterschiedlicher Übergang und deswegen auch ein Eingang aufgetreten sein.
Das Dekodieren einer Sequenz kann mit Hilfe des endlichen Automaten erreicht werden, der die komprimierte Bitsequenz mit einer variablen Rate aufnimmt. Bei einer Ausführungsform hat der Dekodierer einen Zustand für jeden Zustand in dem Kodierer und erlaubt die Übergänge, die der Kodierer ausführt. Bei einem gegebenen Zustand empfängt der Dekodierer den gleichen Wahrscheinlichkeits­ schätzwert, den der Kodierer empfangen hat, der Dekodierer prüft den Bitstrom, der durch den Kodierer erzeugt worden ist, und bestimmt den Übergang, der aufgetreten sein muß. Der Dekodierer führt den gleichen Übergang aus, welchen der Kodierer ausgeführt hat, und beseitigt jegliche Bits aus dem Bitstrom, die der Kodierer bei diesem Übergang hinzugefügt hat.
AUTOMATISCHE MASCHINEN-GENERIERUNG
Die vorliegende Erfindung schafft ein Verfahren zum Generieren von Tabellen für die Zwangskanalkodierung. Auch dieses Tabellengenerierungsverfahren kann dazu verwendet werden, um den Automaten für den Bitgenerierungsabschnitt des binären Entropiekodierers der vorliegenden Erfindung zu erzeugen. Es sei darauf hingewiesen, daß das weiter unten erläuterte Verfahren nicht notwendigerweise einen optimalen Automaten für die Bitgenerierung hervorbringt, jedoch einen Übergangsautomaten schaffen und diesen durch Erhöhen der Zahl der Zustände verbessert.
In der folgenden Beschreibung werden die folgenden Ausdrücke verwendet, die unten definiert sind. Ein Endlichzustand-Übergangsdiagramm ist ein randbe­ schrifteter Graph. Jeder Scheitelpunkt bildet einen möglichen laufenden Zustand und die Beschriftungen an den Rändern geben die möglichen Bits in einer Se­ quenz an, und zwar ausgehend von diesem Zustand. Wenn eine bestimmte Sequenz von Bits auftritt, die zu einem der Ränder paßt, wird der Zustand auf den Terminus bzw. Endpunkt des Randes auf den neuesten Stand gebracht. Der Folgesatz eines Zustands in einem Endlichzustand-Übergangsdiagramm ist der Satz aller möglichen Sequenzen, die generiert werden können, indem irgendein Pfad verfolgt wird, wobei zu Beginn in diesem Zustand gestartet wird. Alle Folgesätze bei der vorliegenden Erfindung umfassen unendlich viele Elemente und sind als rekursiv definiert. Für die lauflängenbegrenzten Zwangsdiagramme sind die Folgesätze dahingehend rekursiv, daß alle Sequenzen, die bei einem bestimmten Zustand beginnen und zu diesem Zustand zurückkehren, durch irgendeine der anderen Sequenzen, die sich in diesem Zustand befinden, verfolgt werden können.
Das Übergangszustandsdiagramm, welches in Fig. 8 herausgegriffen ist, ver­ anschaulicht diese rekursive Natur einiger Sequenzen. Gemäß Fig. 8 enthält das Zustandsdiagramm 800 die Zustände 0-2 und die Übergangsbögen 801-805. Die Symbole "a" werden als Teil einer Sequenz ausgegeben, wenn der Automat von dem Zustand 0 in den Zustand 1 überwechselt (über den Übergangsbogen 801). Die Symbole "b" oder "c" werden als Teil einer Sequenz ausgegeben, wenn der Automat von dem Zustand 1 in den Zustand 0 überwechselt, was davon abhängig ist, ob jeweils der Übergangsbogen 802 oder 803 gewählt wird. Das Symbol "c" wird auch als Teil einer Sequenz ausgegeben, wenn der Automat von dem Zustand 0 in den Zustand 2 überwechselt (über den Übergangsbogen 805). Das Symbol "d" wird als Teil der Sequenz ausgegeben, wenn der Automat von dem Zustand 2 in den Zustand 0 überwechselt (über den Übergangsbogen 804).
Bei der Bestimmung der Folgemenge F für den Zustand 0 muß beachtet werden, daß die Folgemenge des Zustandes alle möglichen Sequenzen von diesem Zu­ stand enthält. Für den Zustand 0 werden die Symbole "ab" ausgegeben, wenn der Automat von dem Zustand 0 in den Zustand 1 überwechselt und über den Übergangsbogen 802 zurückkehrt. Da der Automat zu dem Zustand 0 zurückge­ kehrt ist, kann der verbleibende Abschnitt der Sequenz irgendeine Zahl des gesamten Satzes der Sequenzen sein, der bei dem Zustand 0 verfügbar ist, und zwar an erster Stelle. Das bedeutet, daß alle Sequenzen, die mit den Symbolen "ab" begonnen haben, alle möglichen Übergänge enthalten, die existiert haben, bevor der Automat zwischen den Zuständen 0 und 1 gewechselt hat. Da somit alle die Sequenzen in dem Folgesatz F verfügbar sind, nachdem der Automat zurück in den Zustand 0 gewechselt hat, können die Sequenzen, die mit den Symbolen "ab" beginnen, neubenannt werden auf "abF", wobei "F" die Folge­ menge wiedergibt. Wenn in ähnlicher Weise der Automat in den Zustand 1 über­ wechselt und dann über den Übergangsbogen 803 zurück, werden die Symbole "ac" ausgegeben und die gesamte Folgemenge verbleibt als mögliche Sequenzen. Somit können alle Sequenzen, die mit den Symbolen "ac" beginnen, in der Folgemenge "F" als "acF" charakterisiert werden. Das gleiche gilt für die Sequenzen, die mit den Symbolen "cd" beginnen. Zusammenfassend enthält die Folgemenge F für das Zustandsdiagramm in Fig. 8 die Sequenzen F = {abF, acF, cdF}, wobei F "rekursiv" einen Hinweis auf sich selbst enthält.
Ein Flußdiagramm, welches das Tabellen-Generierungsverfahren der vorliegen­ den Erfindung darstellt, ist in Fig. 9 gezeigt. Gemäß Fig. 9 beginnt das erfin­ dungsgemäße Verfahren durch Erzeugen eines Anfangsautomaten (Verarbeitungs­ block 901) und dann Verbessern des Anfangsautomaten (Verarbeitungsblock 902). Bei der vorliegenden Erfindung wird das Verfahren in Form einer Softwa­ re unter Verwendung eines Computersystems realisiert.
Das Verfahren zur Erzeugung eines anfänglichen Automaten gemäß der vor­ liegenden Erfindung ist in Fig. 10 gezeigt. Gemäß Fig. 10 beginnt das Verfahren der Erzeugung eines Anfangszustands-Automaten mit einem Endlich-Zustands- Übergangsdiagramm (FSTD; finite state transition diagram), welches die Ein­ schränkung oder Zwang, die Fehlerkorrektur-Einschränkung oder Zwang oder den Bitgenerierungsabschnitt des binären Entropiekodierers (Verarbeitungsblock 1001) wiedergibt.
Unter Verwendung von FSTD wird der Folgesatz für jeden Zustand in den FSTD generiert (Verarbeitungsblock 1002). Die Folgemenge kann häufig eine unendliche Menge sein. Wie jedoch oben dargelegt wurde, kann es dann, wenn die Folgemenge unendlich ist, möglich sein, die Menge durch eine rekursive Definition zu beschriften.
Nachdem die Folgemenge generiert worden ist, wird die Folgemenge in zwei Teilmengen aufgeteilt, und zwar basierend auf dem ersten möglichen Symbol (Verarbeitungsblock 1003). Mit anderen Worten, wo eine Menge alle Sequenzen enthält, die mit dem gleichen Symbol beginnen, so kann dieses Symbol ein Ausgang für den Übergang werden. Es sei erwähnt, daß dort, wo die Sequenzen mit der gleichen Menge von Symbolen beginnen, diese Symbole die Ausgabe für den Übergang werden können. Beispielsweise kann F = {abF, acF, cdF} aufge­ spalten werden in {abF, acF} und {cdF}.
Es wird für jede Teilmenge ein Ü 21714 00070 552 001000280000000200012000285912160300040 0002004437790 00004 21595bergang erzeugt (Verarbeitungsblock 1004). Wenn bei der vorliegenden Erfindung alle Teile der Teilmenge den gleichen Anfang haben, so wird der gemeinsame Anfang einer Ausgabe zugeordnet und die Folgemenge wird revidiert. Wenn die Folgemenge bereits als ein Zustand existiert, dann wird dieser Zustand zu dem Endpunkt des Übergangs gemacht. Beispielsweise kann mit {abF, acF} "a" dem Übergang hinzugefügt werden und es wird dann {bF, cF} die neue Menge. Wenn die Folgemenge nicht als ein Zustand existiert, wird ein neuer Zustand geschaffen, und zwar mit dieser Menge als der Folgemenge.
Nachdem ein Übergang für jede Teilmenge erzeugt worden ist, bestimmt ein Test, ob alle die Zustände einen Ausgangsübergang besitzen (Verarbeitungsblock 1005). Wenn alle die Zustände einen Ausgangsübergang aufweisen, ist die anfängliche FSTD-Erzeugung vervollständigt. Wenn einer oder mehrere der Zustände keinen Ausgangsübergang besitzen, wird die Verarbeitung bei den Blöcken 1003 und 1004 für jeden Zustand fortgesetzt, der noch nicht einen Ausgangsübergang besitzt. Die Erzeugungsstufe wird möglicherweise beendet, da eine endliche Anzahl von Übergängen in der FSTD existieren.
Die vorliegende Erfindung schafft einen Automaten, der eine willkürliche Bitfol­ ge in eine Folge übersetzt, welche die Kanalbeschränkung erfüllt, und zwar einfach durch Verwenden eines der Übergänge für einen "0"-Eingang und des anderen Übergangs für einen "1"-Eingang. Eine Kompression kann erzeugt werden, wenn einer der Eingänge wahrscheinlicher ist als der andere und dieser Eingang wird immer dem Übergang zugeordnet, der zu den kürzeren Sequenzen (im Schnitt) führt.
Der endliche Automat, der aus den folgenden Schritten abgeleitet wird, ist in Fig. 10 dargestellt und kann nicht gut Daten komprimieren oder expandiert sogar Daten, wenn die Wahrscheinlichkeiten nicht die Erwartungen erfüllen. Die Ausführung des endlichen Automaten kann in jedem Fall dadurch verbessert werden, indem man mehrere Übergänge zu jedem Zustand hinzufügt. Dann, unter Verwendung des Schätzwertes von dem Wahrscheinlichkeitsschätzwertauto­ maten, wird ein Übergangspaar ausgewählt, welches eine Schräge oder Neigung hat, die nicht bei der geschätzten Schräge oder Neigung liegt und das Resultat wird dann dazu verwendet, zu bestimmen, welcher Übergang des Paares dazu verwendet werden soll, um das Eingangssymbol zu kodieren.
Eine Ausführungsform des Verfahrens zum Verbessern des endlichen Automaten ist in dem Flußdiagramm nach Fig. 11 gezeigt. Gemäß Fig. 11 wird erfindungs­ gemäß zu Beginn der Teil des Automaten gefunden, welcher die schlechteste Qualität gemäß einigen Kriterien besitzt (Verarbeitungsblock 1101). Die schlech­ teste Ausführungsqualität kann gemäß dem größten Zwischenraum in den Wahr­ scheinlichkeiten zwischen zwei Übergängen identifiziert werden.
Als nächstes wird die Wahrscheinlichkeit bestimmt, welche die Ausführungs­ qualität verbessern würde, wenn ein Übergang bei dieser Wahrscheinlichkeit vorhanden wäre (Verarbeitungsblock 1102). Die Identifizierung einer solchen Wahrscheinlichkeit ist anwendungsabhängig. Beispielsweise kann bei einer Anwendung die Auswahl der Wahrscheinlichkeit dadurch auftreten, indem eine Wahrscheinlichkeit zwischen zwei Endpunkt-Wahrscheinlichkeiten gewählt wird. Wenn beispielsweise ein Übergang zwischen 0,5 und 0,95 existiert, kann einer am Mittelpunkt 0,725 hinzugefügt werden, der aus dem Mittelwert abgeleitet wird. Es können andere Entscheidungsverfahren verwendet werden, um die erwartete Ausgangslänge minimal zu gestalten.
Es wird dann die Folgemenge in zwei untergeordnete Sätze aufgeteilt, derart, daß die relative Größe dicht bei der Wahrscheinlichkeit liegt, um die Ausfüh­ rungsqualität zu verbessern (Verarbeitungsblock 1103). Mit anderen Worten wird die Menge so aufgeteilt, daß die kumulativen Wahrscheinlichkeiten in einer der Mengen gleich ist mit oder relativ dicht bei der gewünschten Wahrscheinlichkeit ist bzw. liegt.
Es wird dann für jede Teilmenge ein Übergang erzeugt (Verarbeitungsblock 1104), und zwar in der gleichen Weise wie diejenige, bei dem anfänglichen Erzeugungsverfahren (d. h. dem Verarbeitungsblock 1004). Wenn bei der vor­ liegenden Erfindung alle Glieder der Teilmenge den gleichen Anfang haben, wird der gemeinsame Anfang als ein Ausgang zugeordnet und die Folgemenge wird revidiert. Wenn die Folgemenge bereits als ein Zustand existiert, wird dieser Zustand als Endpunkt des Überganges gewählt. Wenn die Folgemenge nicht als ein Zustand existiert, wird ein neuer Zustand mit dieser Menge als der Folgemenge kreiert.
Ein Test bestimmt dann, ob ein Beendigungskriterium erfüllt worden ist (Ver­ arbeitungsblock 1105). Wenn das Kriterium erfüllt worden ist, endet der Prozeß.
Die Prozeßblöcke 1101-1104 werden wiederholt, bis ein Beendigungskriterium befriedigt wird. Bei einer Ausführungsform kann dieses Kriterium entweder darin bestehen, daß eine maximale Zahl von Zuständen erreicht worden ist oder ein gewünschter Ausführungsqualitätswert erreicht worden ist. Qualitätswerte können dadurch bestimmt werden, indem man die Ausführung bzw. Qualität des Automaten gegenüber der Shannon-Grenze mißt. Bei einer Ausführungsform kann die mittlere Ausgangslänge von typischen Dateien berechnet werden und wenn die Mittelwertlänge ein vorbestimmtes Minium erreicht, endet der Prozeß der vorliegenden Erfindung.
Bei einigen Fällen kann das Automatengenerierungsverfahren der vorliegenden Erfindung einen Automaten verbessern, ohne Hinzufügung irgendeines Zustan­ des. Bei anderen Situationen können ein Paar Zustände zum Automaten hin­ zugefügt werden. Dieses Verfahren kann wiederholt angewandt werden, bis ein Automat der wünschten Größe und Qualität erreicht ist.
Die Fig. 12, 13A und 13B zeigen ein Beispiel des Verfahrens der vorliegenden Erfindung. Fig. 12 veranschaulicht ein FSTD, welches lediglich Sequenzen zuläßt, welche die RLL(1,3)-Kodebeschränkung erfüllt. Somit beschreibt Fig. 12 einen eingeschränkten oder Zwangskanal. Es sei erwähnt, daß Fig. 12 mit nur einem Zustand dargestellt wurde, obwohl es möglich ist, ein äquivalentes Dia­ gramm mit drei oder vier Zuständen zu zeichnen.
Das FSTD, welches in Fig. 12 gezeigt ist, repräsentiert das FSTD, welches bei der ersten Stufe der Automaten-Generierung nach der vorliegenden Erfindung erforderlich ist. Wenn einmal das anfängliche FSTD identifiziert ist, wird die Folgemenge erzeugt. Die Folgemenge besitzt eine unendliche Größe, kann jedoch wiedergegeben werden als F = {10F, 100F, 1000F}, wobei die Menge aus 10, gefolgt von irgendetwas in der Menge, besteht oder aus "100", gefolgt von irgendetwas in der Menge, besteht oder aus "1000", gefolgt von irgendetwas in der Menge, besteht. Nachdem die Folgemenge F identifiziert worden ist, kann die Menge F aufgeteilt werden in zwei untergeordnete Mengen Fa = {10F} und Fb = {100F, 1000F}.
Da die Menge Fa immer mit "10" beginnt, kann dies dem Ausgang eines Über­ gangs zugeordnet werden. Dies macht den Folgemenge unmittelbar zu F, was bereits einen Zustand bedeutet, und somit kann die Bestimmung für diesen Übergang der Zustand 0 sein. Die zweite Teilmenge Fb beginnt immer mit 100, so daß dies dem Ausgang zugeordnet werden kann, wobei {F, 0F} als Folgemen­ ge verbleibt. Die Menge existiert nicht und somit wird ein neuer Zustand kreiert. Im Falle der Fig. 13A wurde nichts zu dem Übergang hinzugefügt, so daß die Menge als {100F, 1000F} verbleibt.
Der neue Zustand besitzt keinerlei Ausgangsübergänge, so daß es erforderlich ist, dessen Folgemenge zu splitten. Dies kann dadurch erreicht werden, indem man Fc = {100F} und Fd = {1000F} erzeugt. Die Menge Fc ist äquivalent zu 100, gefolgt von F, so daß kein Ausgang 100 zu dem Übergang hinzugefügt wird, und ein Übergang in den Zustand 1000 durchgeführt werden kann. Fd beginnt immer mit 0. Daher kann dies dem Ausgang zugeordnet werden und der Übergang kann in den Zustand 0 erfolgen. Nun gibt es keine Zustände mehr, die keine Ausgangsübergänge besitzen, so daß also ein Anfangsautomat kreiert worden ist. Dieser Automat ist in Fig. 13A gezeichnet. Gemäß Fig. 13A wurden die Folgemengen entlang den Übergängen und bei den zwei Zuständen aufgeli­ stet. Auch sind die Ausgänge bei jedem Übergang aufgelistet. Jeder Zustand besitzt zwei Ausgangsübergänge, indem ein Null-Eingang für die Verwendung des ersten Übergangs zugeordnet wird und ein Eins-Eingang für die Verwendung des zweiten Übergangs zugeordnet wird, so daß also ein Automat äquivalent dem einen in der Tabelle 4 kreiert worden ist. Im Falle der Fig. 13A wurde nichts zu dem Übergang hinzuaddiert, so daß die Menge mit {100F, 1000F} verbleibt.
Dieser Automat kann dadurch verbessert werden, indem man das Verfahren, welches in Fig. 11 beschrieben ist, verwendet. Zu Beginn wird der schlechteste Zustand identifiziert. Es sei angenommen, daß der schlechteste Zustand der Zustand 0 ist, so daß dann irgendein Übergang bei einer Wahrscheinlichkeit, die verschieden von der laufenden Wahrscheinlichkeit ist, die Ausführungsqualität verbessern wird. Es sei angenommen, daß es wünschenswert ist, einen Übergang für die Wahrscheinlichkeiten dicht bei 0,70 hinzuzufügen. Es ist eine neue Teilung der Menge F möglich. Wenn Fe = {100F} und Ff = {10F, 1000F} ist, so wird dadurch die Menge in einer unterschiedlichen Weise aufgeteilt und es befinden sich grob 70% der möglichen Sequenzen in der Menge Ff. Fig. 13B veranschaulicht ein solches Endlichzustands-Übergangsdiagramm.
Die Übergänge werden dann erzeugt. Gemäß Fig. 13B kann die Menge Fe zu einem Übergang gemacht werden, indem 100 zum Ausgang gemacht wird und der Zustand 0 die Bestimmung ist. Die Menge Ff bewirkt, daß 10 ausgegeben wird und ein Übergang in einen neuen Zustand erfolgt, wobei die Folgemenge zu {F, 00F} gemacht wird. Zu diesem neuen Zustand kann ein Übergang da­ durch hinzugefügt werden, indem die Menge gesplittet wird in {F} und {00F}. Beide dieser Übergänge können auf den Zustand 0 zurückkehren, und zwar mit einem geeigneten Ausgang. Dieser verbesserte Automat ist äquivalent demjeni­ gen, der in der Tabelle 5 aufgelistet ist, und erlaubt eine gewisse Kompression bei hohen Schrägen (skews).
In Verbindung mit dem Beendigungskriterium sei bei diesem Beispiel angenom­ men, daß die maximal gewünschte Zahl von Zuständen gleich Drei ist. Daher hat das automatische Automatgenerierungsverfahren der vorliegenden Erfindung sein Beendigungskriterium erfüllt und endet.
Ein anderes Beispiel für die Verwendung des Automat-Generierungsverfahrens ist in den Fig. 14 und 15 veranschaulicht. Fig. 14 veranschaulicht ein Endlichzu­ stand-Übergangsdiagramm für einen Morse-Kode. Um die Verwendung des Kanals zu maximieren, ist es wünschenswert, den "." (Punkt) mehr zu verwen­ den als den "-"(Strich), da der Punkt weniger Raum beansprucht. Für den Rest des Beispiels sind die Worte "Punkt" und "Strich" für deren Symbole in dem Text und den Zeichnungen substituiert. Die maxentropischen Wahrscheinlichkei­ ten (solche, die zu einer äußerst wirksamen Verwendung des Kanals führen) für jeden der Übergänge liegen bei 68,23% (oder 0,6823) für den Punkt und 31,77% (oder 0,3177) für den Strich, wobei angenommen ist, daß der Strich und der Leerraum danach die dreifache Dauer des Punktes und dessen Leerraum hat. Somit repräsentiert dieses Zustandsübergangsdiagramm in angemessener Weise den Fall gemäß ca. 70%. Dieses Zustandsübergangsdiagramm kann dazu ver­ wendet werden, um eine Kanalmodulation durchzuführen, es würde jedoch nicht angemessen für eine Datenkompression sein, und zwar bei Wahrscheinlichkeiten, die weit von 0,70 abliegen. Beispielsweise ist es nicht wirksam für den 0,50 Fall.
Um ein Endlichzustand-Übergangsdiagramm zu erzeugen, welches dem 50%-Fall besser entspricht, werden die Länge-Zwei-Sequenzen geprüft anstelle der Länge- Eins-Sequenzen. Da zwei Symbole, Punkt und Strich, vorhanden sind, gibt es vier Länge-Zwei-Sequenzen. Die vier Länge-Zwei-Sequenzen und deren zu­ geordnete Wahrscheinlichkeiten des Auftretens (bestimmt durch Multiplizieren der unabhängigen Wahrscheinlichkeiten des Auftretens miteinander) sind wie folgt: Punkt-Punkt (0,466), Punkt-Strich (0,217), Strich-Punkt (0,217), Strich- Strich (0,10). Dies veranschaulicht die Folgemenge bis zu einem Ausmaß, bei dem alle Längen-Zwei-Sequenzen für jede mögliche Übergangsbahn von einem ersten Zustand aus herausgegriffen sind.
Da ein Zustand nur erlaubt ist für zwei ausgehende Übergänge pro Wahrschein­ lichkeitsklasse, wird diese Menge in zwei Mengen getrennt. Die Wahl der Inhalte der Mengen basiert auf den gewünschten Wahrscheinlichkeiten. Wenn ein 50%-Fall gewünscht wird, können die zwei Sätze sein [Punkt-Punkt] und [Punkt- Strich, Strich-Punkt, Strich-Strich], da die Wahrscheinlichkeit von [Punkt-Punkt] ca. 0,50 (d. h. sie ist 0,466) beträgt. [Punkt-Punkt] repräsentiert dann den Wert, welcher dem ersten Übergangsbogen 1501 zugeordnet ist, der den Zustand 0 verläßt. Da ferner auch die Wahrscheinlichkeit unter 50% liegt, wird die Se­ quenz [Punkt-Punkt] als LPS bezeichnet. Der zweite Übergangsbogen 1502 wird dann als MPS bezeichnet; dem Übergang ist kein Ausgang zugeordnet. Es sei erwähnt, daß sich dies aufgrund der Tatsache ergibt, daß kein gemeinsames Präfix in den Symbolen dieser Gruppe vorhanden ist.
Einmal beim Zustand 4 angelangt, müssen zwei ausgehende Übergänge identifi­ ziert werden. Es muß daher der Satz [Punkt-Strich, Strich-Punkt, Strich-Strich] getrennt werden. Um den 50%-Fall besser nachzubilden, wird die Auswahl der Menge durchgeführt, um diese Menge so dicht wie möglich bei 50% zu trennen. Eine Normalisierung der Möglichkeiten in der Menge führt zu Wahrscheinlich­ keiten für [Punkt-Strich] bei 0,406, [Strich-Punkt] bei 0,406 und [Strich-Strich] bei 0,188. Im Hinblick darauf wird entweder [Punkt-Strich] oder [Strich-Punkt] als die LPS gewählt. Wie in Fig. 15 gezeigt ist, stellt der Übergangsbogen 1506 einen [Punkt-Strich]-Übergang zurück zum Zustand 0 dar. Der andere Über­ gangsbogen 1503, der den Zustand 1 verläßt, ist als das MPS-Symbol bezeich­ net, da die Wahrscheinlichkeiten in dem Satz größer sind als 0,5. Der Über­ gangsbogen 1503 geht in den Zustand 2 ohne irgendeinen Ausgang über.
Bei dem Zustand 2 müssen die zwei Übergänge identifiziert werden. Da nur zwei Symbole verbleiben, [Strich-Punkt, Strich-Strich], ist jedes einem der Übergangsbögen 1504 und 1505 zugeordnet. Die Übergänge kehren alle zum Zustand 0 zurück, da nach einer solchen Transaktion alle möglichen Längen- Zwei-Sequenzen für ein Überwechseln verfügbar sein müssen.
Es sei erwähnt, daß die ursprüngliche Wahrscheinlichkeitsverteilung bei dem Zustand 0 als Bögen 1510 und 1511 mit eingeschlossen wurde. Abhängig von dem Wahrscheinlichkeitsschätzwert werden entweder die durchgehenden Linien oder die strichlierten Linien ausgewählt. Es können alle Zustände so ausgelegt werden, daß sie Vielfachbögen enthalten, ausgewählt auf der Grundlage der Wahrscheinlichkeit. Auf diese Weise kann der Automat, der in Fig. 15 definiert ist, für die Datenkompression und eine andere Aufgabe, wie für eine Kanalkodie­ rung, verwendet werden.
Die Fig. 16A-16D zeigen Darstellungen von vier spezifischen Ausführungs­ formen von Automat-Übergangsmatrizen, die unter Verwendung des Tabellen- Generierungsverfahrens der vorliegenden Erfindung erzeugt wurden. Für jeden veranschaulichten Automat (state machine) entspricht die erste Menge von drei Spalten der "Y"-Entscheidung (wahrscheinlich) oder MPS, während die zweite Menge der drei Spalten der "N"-Entscheidung entspricht. Die letzte Spalte gibt die Wahrscheinlichkeiten an. Fig. 16D veranschaulicht eine Tabelle zum Durch­ führen einer binären Kompression.
Gemäß Fig. 16a ist ein Zwei-Zustands-Automat-Übergangsdiagramm gezeigt. Übergangspaare sind als Spalten (1) und (2) beschriftet. Wenn der Automat sich in dem Zustand SO befindet und die Schwelle (Wahrscheinlichkeitsschätzwert) größer ist als 0,644, bleiben die zwei legalen Übergänge im Zustand SO und es wird eine Bitfolge "11" für eine N(Nein)-Entscheidung ausgegeben oder wech­ seln in den Zustand S1 über und es wird überhaupt keine Bitfolge für eine Y(Ja)- Entscheidung ausgegeben. Wenn die Schwelle (Wahrscheinlichkeitsschätzwert) unter 0,644 im Zustand SO liegt, verbleiben die zwei legalen Übergänge im Zustand SO und es wird eine Bitfolge "1" für eine N(Nein)-Entscheidung ausge­ geben, oder verbleiben in dem Zustand SO und es wird eine Bitfolge "0" für eine Y(Ja)-Entscheidung ausgegeben. Wenn der Automat sich in dem Zustand S1 befindet, müssen die zwei legalen Übergänge in den Zustand SO überwechseln und es wird für eine N(Nein)-Entscheidung eine Bitfolge "10" ausgegeben oder sie müssen in den Zustand SO überwechseln und es wird eine Bitfolge "0" für eine Y(Ja)-Entscheidung ausgegeben.
Das Verfahren nach der vorliegenden Erfindung wird unter Verwendung einer Computer-Software realisiert. Eine solche Software kann so ausgelegt werden, daß Übergangszustand-Automaten gemäß einigen Kriterien generiert werden, wie beispielsweise ein Wunsch 50% Übergänge zu haben, eine begrenzte oder spezifische Zahl von Zuständen oder eine begrenzte oder spezifische Zahl von Wahrscheinlichkeitsklassen zu haben.
Es wird somit das Automatgenerierungsverfahren der vorliegenden Erfindung dazu verwendet, um endliche Automaten zu schaffen, um willkürliche Bitströme in Bitströme umzusetzen, die verschiedene lauflängenbegrenzte Einschränkungen oder Zwänge erfüllen als auch für andere beschränkte Kanäle. Es erlaubt auch, größere Automaten für normalerweise nicht beschränkte binäre Kanäle zu er­ stellen.
KODIERUNG VON GRÖSSEREN ALPHABETEN
Der binäre Entropiekodierer der vorliegenden Erfindung kodiert gewöhnlich binäre Eingangsgrößen. Es ist für den binären Entropiekodierer möglich, ein geringfügig größeres Alphabet zu kodieren. Um beispielsweise ein Alphabet mit drei Symbolen zu kodieren (a, b, c), ist es erforderlich, drei Übergänge her­ auszugreifen, von jedem Zustand anstelle von nur zwei. Ein Übergang wird jeder Zahl des Alphabets zugeordnet. Wie oben beschrieben wurde, wird bei dem endlichen Automat-Generierungsverfahrensabschnitt die Folgemenge in drei nicht aneinandergefügte Teilmengen anstelle in zwei gesplittet. Dies ist ziemlich annehmbar für feste Wahrscheinlichkeitssymbole, wird jedoch sehr schwierig bei Änderung der Wahrscheinlichkeitsverteilungen. Obwohl somit der binäre En­ tropiekodierer der vorliegenden Erfindung ein geringfügig größeres Alphabet kodieren kann, wird die Zustandstabellenerzeugung bei einer bestimmten Stelle leitbar oder steuerbar.
Im Falle von drei Symbolen sind Schätzungen von zwei Wahrscheinlichkeiten erforderlich, um jede Verteilung zu spezifizieren. Dies alleine verdoppelt die Wahrscheinlichkeitsschätz-Eingangsgrößen, die für eine Nachschlagtabelle erforderlich sind. Für jede Kombination von Schätzungen für diese zwei Sym­ bole muß ein unterschiedliches Übergangstriple vorhanden sein. Bei zu vielen Eingangssymbolen wird es erforderlich, daß das Kontextmodell eine Aufteilung in binäre Entscheidungen erfährt.
Die vorliegende Erfindung schafft die Voraussetzungen für die Verwendung endlicher Automaten für eingeschränkte oder begrenzte Kanäle. Obwohl diese endlichen Automaten bei Diskantrieben verwendet werden können, können sie auch bei eingeschränkten Kanälen angewandt werden, die bei CD-ROMs ver­ wendet werden, ebenso bei löschbaren optischen Disks und selbst bei einem Faseroptikkanal.
Die vorliegende Erfindung schafft auch die Voraussetzung dafür, um einen gleichzeitigen Betrieb der Bitgenerierung und der Kanalkodierung oder Fehler­ korrektur zu realisieren. Darüber hinaus wurde auch ein Verfahren zur automati­ schen Generierung von endlichen Automaten zur Durchführung dieser Aufgaben beschrieben. Das Verfahren nach der vorliegenden Erfindung, welches die Erzeugung eines endlichen Zustandes erlaubt, ist erforderlich, um befähigt zu sein, Automaten für die früheren Verbindungs-(Joint-)Operationen zu erzeugen. Diese Technologie kann nützlich sein bei magnetischen Diskantrieben, CD- ROMs, magneto-optischen Antrieben oder für irgendeine Situation, bei der eingeschränkte oder mit einem Zwang belegte Kanäle und/oder eine Fehler­ korrektur angewandt werden.
Obwohl die Erfindung in Verbindung mit bevorzugten Ausführungsformen beschrieben worden ist, ist es offensichtlich, daß eine Reihe von Abwandlungen, Modifikationen und Ausgestaltungen möglich sind, die für den Fachmann im Rahmen der vorangegangenen Beschreibung offensichtlich sind.
Es wurde somit ein Verfahren und ein Gerät zum Generieren eines Bitstromes beschrieben.

Claims (44)

1. Verfahren zur Durchführung einer Kanalmodulation bei einem Eingangs­ bitstrom mit einer Vielzahl von Eingangsbits, wobei das Verfahren die folgenden Schritte aufweist:
Vorsehen eines Übergangsautomaten mit einer Vielzahl von Zuständen, wobei jede der Vielzahl der Zustände wenigstens ein Übergangspaar aufweist und wobei jeder Übergang in dem wenigstens einen Übergangspaar einem Ausgabebitstrom zugeordnet ist, der ausgegeben wird, wenn jeder Übergang ausgewählt ist, und wobei ferner das wenigstens eine Übergangspaar gemäß einem Abschnitt der Vielzahl der Eingangsbits gewählt wird und wobei jeder der Ausgabebitströme eine kanalkodierte Wiedergabe des Abschnitts des Abschnitts der Vielzahl der Eingangsbits umfaßt,
Lokalisieren bzw. Festlegen eines Übergangs in dem wenigstens einen Übergangspaar in dem einen der Zustände gemäß dem genannten Abschnitt der Vielzahl der Eingangsbits, und
Ausgeben des Ausgangsbitstroms, der dem Übergang zugeordnet ist und Überwechseln in einen nächsten Zustand, wobei eine variable Zahl von Bits von dem Übergangsautomaten für jeden Abschnitt der Vielzahl der Eingangsbits ausgegeben wird, und wobei eine Vielzahl der Ausgangsbits als Antwort auf den Eingangsbitstrom generiert werden und wobei die Vielzahl der Ausgangsbits repräsentativ sind für eine Vielzahl von Ausgangsbitströmen in solcher Weise, daß der Eingangsbitstrom kanalkodiert wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Schritt des Vorsehens einen Auswahlschritt umfaßt zur Auswahl des Bitstroms für jeden der Übergänge gemäß der Kanalbeschränkung.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der Bitstrom für jeden der Übergänge derart ausgewählt wird, daß die Bitstrom-Ausgabe eine lauflängenbegrenzte Kodierung der Vielzahl der Eingangsbits wiedergibt.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß jeder Abschnitt der Vielzahl der Eingangsbits ein Bit umfaßt.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß jeder der Ausgangsbitströme eine komprimierte Wiedergabe des Abschnitts der Vielzahl der Eingangsbits umfaßt, in solcher Weise, daß der Eingangsbitstrom kompri­ miert und kanalkodiert wird.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß der Erzeu­ gungsschritt einen Auswahlschritt umfaßt, bei dem der Bitstrom dafür ausgewählt wird, kanalkodiert zu werden und komprimiert zu werden.
7. Verfahren zur Durchführung einer Kanalmodulation bei einem Eingabebit­ strom mit einer Vielzahl von Eingangsbits, wobei das Verfahren die folgenden Schritte aufweist:
Vorsehen eines Übergangsautomaten mit einer Vielzahl von Zuständen, wobei jede der Vielzahl der Zustände wenigstens ein Übergangspaar aufweist und wobei jeder Übergang in dem wenigstens einen Übergangspaar einem Ausgabebitstrom zugeordnet ist, wobei jeder Ausgabebitstrom eine komprimierte und kanalkodierte Wiedergabe von einem der Vielzahl der Eingangsbits umfaßt,
Festlegen eines Übergangs in dem wenigstens einen Übergangspaar in einem der Zustände gemäß dem einen der Vielzahl der Eingangsbits, und
Ausgeben des Ausgangsbitstroms, der dem Übergang zugeordnet ist, wobei eine variable Zahl von Bits von dem Übergangsautomaten für jeden Abschnitt der Vielzahl der Eingangsbits ausgegeben wird, und wobei eine Vielzahl der Ausgangsbits abhängig von dem Eingangsbitstrom generiert wird und wobei die Vielzahl der Ausgangsbits eine Vielzahl der Ausgabebitströme in solcher Weise wiedergibt, daß der Eingangsbitstrom komprimiert und kanalko­ diert wird.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß der Erzeu­ gungsschritt einen Auswahlschritt umfaßt, um einen Bitstrom für jeden der Übergänge gemäß einer Kanalbeschränkung oder -einschränkung auszuwählen.
9. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß der Bitstrom für jeden der Übergänge so ausgewählt wird, daß die Bitstrom-Ausgabe eine lauflängenbegrenzte Kodierung der Vielzahl der Eingangsbits wiedergibt.
10. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß ein Übergangs­ schritt in einen nächsten Zustand nach der Ausgabe des Bitstroms durchgeführt wird, wobei der nächste Zustand durch den Übergang angezeigt wird.
11. Verfahren zur Durchführung einer Kanalmodulation an einem Eingabebit­ strom mit einer Vielzahl von Eingangsbits, wobei das Verfahren die folgenden Schritte umfaßt:
Empfangen eines ersten Schwellenwertes für einen der Vielzahl der Eingänge,
Empfangen einer ersten Anzeige für den einen der Vielzahl der Eingänge, wobei die erste Anzeige anzeigt, ob einer der Vielzahl der Eingänge innerhalb einem der Vielzahl der möglichen ersten Zustände gelegen ist,
Auswählen einer aus einer Vielzahl von Mengen von Übergängen in einem einer Vielzahl von Übergangszuständen gemäß dem ersten Schwellenwert, wobei jeder Übergang in der Vielzahl der Mengen der Übergänge einem Aus­ gang und einem nächsten Zustand innerhalb der Vielzahl der Übergangszustände zugeordnet ist und wobei ferner jeder Ausgang eine kanalmodulierte Wiedergabe eines Abschnitts der Vielzahl der Eingangsbits umfaßt,
Auswählen eines Übergangs aus dem einen einer Vielzahl von Mengen der Übergänge gemäß der ersten Anzeige, und
Ausgeben des dem Übergang zugeordneten Ausgangs, wobei eine variable Zahl von Bits von dem Übergangsautomaten für jedes der Vielzahl der Eingangs­ bits in solcher Weise ausgegeben wird, daß der Eingangsbitstrom kanalkodiert wird.
12. Verfahren nach Anspruch 11, gekennzeichnet durch einen Schritt des Überwechselns in den nächsten Zustand, der dem Übergang zugeordnet ist, in solcher Weise, daß ein Übergang innerhalb des nächsten Zustandes unter Ver­ wendung eines zweiten Schwellenwertes und einer zweiten Anzeige, die einem Eingang entspricht, der unmittelbar auf einen der Vielzahl der Eingänge folgt, ausgewählt wird.
13. Verfahren zur Durchführung einer Fehlerkorrekturkodierung an einem Eingabebitstrom mit einer Vielzahl von Eingangsbits, wobei das Verfahren die folgenden Schritte aufweist:
Schaffen eines Übergangsautomaten mit einer Vielzahl von Zuständen, wobei jede der Vielzahl der Zustände wenigstens ein Übergangspaar aufweist und jeder Übergang in dem wenigstens einen Übergangspaar einem Ausgangsbit­ strom zugeordnet ist, und wobei das wenigstens eine Übergangspaar gemäß einem Abschnitt der Vielzahl der Eingangsbits ausgewählt wird und wobei ferner jeder Ausgabebitstrom eine kanalkodierte und komprimierte Wiedergabe des Ab­ schnitts der Vielzahl der Eingangsbits umfaßt,
Positionieren eines Übergangs in dem wenigstens einen Übergangspaar in dem einen der Zustände gemäß dem genannten Abschnitt der Vielzahl der Eingangsbits, und
Ausgeben des Ausgangsbitstroms, der dem Übergang zugeordnet ist und Überwechseln in den nächsten Zustand, wobei eine Vielzahl von Ausgangsbits in Abhängigkeit von dem Eingabebitstrom generiert werden, und wobei die Viel­ zahl der Ausgangsbits eine Vielzahl von Ausgabebitströmen umfassen, derart, daß der Eingabebitstrom fehlerkorrekturkodiert und kanalkodiert wird.
14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß jeder Ab­ schnitt der Vielzahl der Eingangsbits ein Bit umfaßt.
15. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß die Fehler­ korrekturkodierung aus einem Faltungskode besteht.
16. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß die Fehler­ korrekturkodierung aus einem Gitterkode (trellis code) besteht.
17. Verfahren nach Anspruch 13, gekennzeichnet durch einen Überwechsel­ schritt in einen nächsten Zustand nach der Ausgabe des Bitstroms, wobei der nächste Zustand durch den Übergang angezeigt wird.
18. Verfahren zur Durchführung einer Fehlerkorrektur an einem Eingabebit­ strom mit einer Vielzahl von Eingangsbits, wobei das Verfahren die folgenden Schritte aufweist:
Schaffen eines Übergangsautomaten mit einer Vielzahl von Zuständen, wobei jede der Vielzahl der Zustände wenigstens ein Übergangspaar aufweist und jeder der Übergänge in dem wenigstens einen Übergangspaar einem Aus­ gabebitstrom zugeordnet ist, und jeder Ausgabebitstrom eine komprimierte und fehlerkorrekturkodierte Wiedergabe von einem der Vielzahl der Eingangsbits ist,
Anordnen eines Übergangs in dem wenigstens einen Übergangspaar in einem der Zustände gemäß dem einen der Vielzahl der Eingangsbits, und
Ausgeben des Ausgangsbitstroms, der dem Übergang zugeordnet ist, wobei eine variable Zahl von Bits aus dem Übergangsautomaten für jeden Abschnitt der Vielzahl der Eingangsbits ausgegeben wird und eine Vielzahl der Ausgangsbits in Abhängigkeit von dem Eingabebitstrom generiert werden und wobei die Vielzahl der Ausgangsbits eine Vielzahl von Ausgabebitströmen wiedergibt, derart, daß der Eingabebitstrom komprimiert wird und fehlerkorrek­ turkodiert wird.
19. Verfahren nach Anspruch 18, dadurch gekennzeichnet, daß das Fehler­ korrekturkodieren mit einem Faltungskode erfolgt.
20. Verfahren nach Anspruch 18, dadurch gekennzeichnet, daß die Fehler­ korrekturkodierung ein Gitterkode ist.
21. Verfahren nach Anspruch 18, gekennzeichnet durch einen Schritt gemäß einem Überwechseln zu einem nächsten Zustand nach der Ausgabe des Bit­ stroms, wobei der nächste Zustand durch den Übergang angezeigt wird.
22. Verfahren zum Generieren eines Zustandsautomaten mit den folgenden Schritten:
  • (a) Erzeugen eines Satzes von allen möglichen Sequenzen für jeden einer Vielzahl von Zuständen, wobei die Menge aller möglichen Sequenzen solche Sequenzen enthält, welche die Fähigkeit haben, unter Verfolgung irgendeines Pfades von dem Zustand aus generiert zu werden, wobei jede der Sequenzen ein erstes Symbol enthält,
  • (b) Aufteilen der Menge in zwei Teilmengen, basierend auf einem ersten möglichen Symbol,
  • (c) Erzeugen eines Überganges für jede der Teilmengen,
  • (d) Wiederholen der Schritte (b) und (c) für jeden Zustand, ohne einen Aus­ gangs-Übergang, derart, daß ein Zustandsautomat erzeugt wird.
23. Verfahren nach Anspruch 22, dadurch gekennzeichnet, daß der Schritt der Erzeugung das Zuordnen eines Anfangsabschnitts jeder der Sequenzen in der Menge als eine Ausgangsgröße beinhaltet, wenn der Anfangsabschnitt für jede der Sequenzen identisch ist.
24. Verfahren nach Anspruch 23, dadurch gekennzeichnet, daß die Menge revidiert wird, wobei der Anfangsabschnitt aus jeder der Sequenzen entfernt wird.
25. Verfahren nach Anspruch 22, dadurch gekennzeichnet, daß ein Zustand der Endpunkt eines Übergangs ist, wenn die Menge bereits als ein Zustand exi­ stiert.
26. Verfahren nach Anspruch 22, dadurch gekennzeichnet, daß ein neuer Zustand in Verbindung mit der Menge erzeugt wird, wenn die Menge nicht als ein Zustand existiert.
27. Verfahren nach Anspruch 22, gekennzeichnet durch die folgenden Schrit­ te:
  • (e) Identifizieren eines Abschnitts des Zustandsautomaten für eine Modifika­ tion,
  • (f) Bestimmen einer Wahrscheinlichkeit, die zu einer Erhöhung der Leistung führt, wenn ein Übergang bei der Wahrscheinlichkeit existierte,
  • (g) Unterteilen der Menge der Sequenzen in zwei Teilmengen, derart, daß die kumulative Wahrscheinlichkeit der Sequenzen in einer der zwei Teilmen­ gen im wesentlichen dicht bei der Wahrscheinlichkeit liegt,
  • (h) Unterteilen der Menge in zwei Teilmengen, basierend auf einem ersten möglichen Symbol,
  • (i) Erzeugen eines Übergangs für jede der zwei Teilmengen, wobei der Erzeugungsschritt einen Schritt der Erzeugung eines neuen Zustandes in Verbindung mit der Menge umfaßt, wenn die Menge nicht als ein Zustand existiert, und
  • (j) Wiederholen der Schritte (e)-(i), bis ein Beendigungskriterium erreicht ist, derart, daß ein Zustandsautomat erzeugt wird.
28. Verfahren nach Anspruch 27, dadurch gekennzeichnet, daß der Identifi­ zierungsschritt einen Schritt der Identifizierung des Abschnitts des Zustands­ automaten umfaßt, der den größten Unterschied in den Wahrscheinlichkeiten zwischen zwei Übergängen besitzt.
29. Verfahren nach Anspruch 27, dadurch gekennzeichnet, daß das Beendi­ gungskriterium eine vorbestimmte Zahl von Zuständen enthält, derart, daß die Schritte (e)-(i) solange wiederholt werden, bis eine vorbestimmte Zahl von Zuständen existiert.
30. Verfahren nach Anspruch 27, dadurch gekennzeichnet, daß das Beendi­ gungskriterium einen Leistungswert enthält, derart, daß die Schritte (e)-(i) solange wiederholt werden, bis ein Leistungswert oder Eignungswert existiert.
31. Verfahren zur Durchführung einer Kodierung an einem Eingangsstrom, der eine Vielzahl von Symbolen auf einem Alphabet einer vorbestimmten Zahl von Symbolen enthält, wobei das Verfahren die folgenden Schritte umfaßt:
Schaffen eines Übergangsautomaten mit einer Vielzahl von Zuständen, wobei jeder der Vielzahl der Zustände wenigstens einen Übergang für jede der vorbestimmten Zahl der Symbole in dem Alphabet besitzt und wobei jeder der Übergänge einem Ausgangsstrom zugeordnet wird,
Auswählen eines Übergangs in einer der Vielzahl der Zustände gemäß einem Symbol in dem Eingangsstrom,
Ausgeben des Ausgangsstroms, der dem Übergang zugeordnet ist, und Überwechseln in einen nächsten Zustand, wobei eine variable Zahl von Sym­ bolen von dem Übergangsautomaten für wenigstens zwei bestimmte Symbole in dem Eingangsstrom ausgegeben wird, derart, daß der Eingangsstrom kodiert wird.
32. Verfahren nach Anspruch 31, dadurch gekennzeichnet, daß jeder Aus­ gangsstrom derart ausgewählt wird, daß der Ausgangsstrom in solcher Weise ausgegeben wird, daß der Eingangsstrom kanalmoduliert wird.
33. Verfahren nach Anspruch 31, dadurch gekennzeichnet, daß jeder Aus­ gangsstrom derart ausgewählt wird, daß ein Ausgangsstrom in solcher Weise ausgegeben wird, daß der Eingangsstrom fehlerkorrekturkodiert wird.
34. Verfahren nach Anspruch 31, dadurch gekennzeichnet, daß jeder Aus­ gangsstrom derart ausgewählt wird, daß ein Ausgangsstrom in solcher Weise ausgegeben wird, daß der Eingangsstrom kanalmoduliert wird und fehlerkorrek­ turkodiert wird.
35. Verfahren nach Anspruch 31, dadurch gekennzeichnet, daß jeder Aus­ gangsstrom derart ausgewählt wird, daß ein Ausgangsstrom in solcher Weise ausgegeben wird, daß der Eingangsstrom kanalmoduliert wird und komprimiert wird.
36. Verfahren nach Anspruch 31, dadurch gekennzeichnet, daß jeder Aus­ gangsstrom derart ausgewählt wird, daß ein Ausgangsstrom in solcher Weise ausgegeben wird, daß der Eingangsstrom komprimiert wird, kanalmoduliert wird und fehlerkorrekturkodiert wird.
37. Verfahren nach Anspruch 31, dadurch gekennzeichnet, daß jeder Aus­ gangsstrom derart ausgewählt wird, daß ein Ausgangsstrom in solcher Weise ausgegeben wird, daß der Eingangsstrom fehlerkorrekturkodiert und komprimiert wird.
38. Gerät zur Durchführung einer Kanalmodulation an einem Eingabebitstrom mit einer Vielzahl von Eingangsbits, wobei das Gerät einen Übergangsautomaten mit einer Vielzahl von Zuständen umfaßt, wobei jeder der Vielzahl der Zustände wenigstens ein Übergangspaar aufweist und wobei jeder Übergang in dem wenigstens einen Übergangspaar einem Ausgabebitstrom zugeordnet ist, der ausgegeben wird, wenn jeder Übergang ausgewählt worden ist, und wobei ferner das wenigstens eine Übergangspaar gemäß einem Abschnitt der Vielzahl der Eingangsbits ausgewählt wird und jeder der Ausgabebitströme eine kanalkodierte Wiedergabe des Abschnitts der Vielzahl der Eingangsbits enthält,
mit einer Einrichtung zum Auswählen eines Übergangs in dem wenigstens einen Übergangspaar in dem einen der Zustände gemäß dem genannten Abschnitt der Vielzahl der Eingangsbits, und
einer Einrichtung zum Ausgeben der Ausgabebitströme, die dem genann­ ten Übergang zugeordnet sind, und zum Überwechseln in den nächsten Zustand, wobei eine variable Zahl von Bits aus dem Übergangsautomaten für jeden Abschnitt der Vielzahl der Eingangsbits ausgegeben wird und wobei eine Viel­ zahl der Eingangsbits in Abhängigkeit von den Eingabebitströmen generiert wird, wobei die Vielzahl der Ausgangsbits repräsentativ sind für eine Vielzahl der Ausgabebitströme in solcher Weise, daß die Eingabebitströme kanalkodiert werden.
39. Gerät nach Anspruch 38, dadurch gekennzeichnet, daß der Übergangs­ automat einen ROM aufweist.
40. Gerät nach Anspruch 38, dadurch gekennzeichnet, daß jeder Abschnitt einer Vielzahl von Eingangsbits ein Bit aufweist.
41. Gerät nach Anspruch 38, dadurch gekennzeichnet, daß jeder der Ein­ gabebitströme eine komprimierte Wiedergabe des Abschnitts der Vielzahl der Ein­ gangsbits in solcher Weise umfaßt, daß die Eingabebitströme komprimiert werden und kanalkodiert werden.
42. Gerät nach Anspruch 38, dadurch gekennzeichnet, daß jeder der Aus­ gabebitströme eine kanalfehlerkorrekturkodierte Wiedergabe des Abschnitts der Vielzahl der Eingangsbits enthält, derart, daß der Eingabebitstrom fehlerkorrek­ turkodiert wird und kanalkodiert wird.
43. Gerät nach Anspruch 38, dadurch gekennzeichnet, daß jeder der Aus­ gabebitströme eine komprimierte und fehlerkorrekturkodierte Wiedergabe des Abschnitts der Vielzahl der Eingangsbits umfaßt, derart, daß der Eingabebitstrom komprimiert wird, fehlerkorrekturkodiert und kanalkodiert wird.
44. Gerät zur Durchführung einer Fehlerkorrektur an einem Eingabebitstrom mit einer Vielzahl von Eingangsbits, wobei das Gerät aufweist:
einen Übergangsautomaten mit einer Vielzahl von Zuständen, wobei jeder der Vielzahl der Zustände wenigstens ein Übergangspaar hat und jeder der Übergänge in dem wenigstens einen Übergangspaar einem Ausgabebitstrom zugeordnet ist, wobei jeder Ausgabebitstrom eine komprimierte und fehlerkor­ rekturkodierte Wiedergabe eines Abschnitts der Vielzahl der Eingangsbits ist,
eine Einrichtung zum Auswählen des Übergangs in dem wenigstens einen Übergangspaar in dem einen der Zustände gemäß dem genannten Abschnitt der Vielzahl der Eingangsbits, und
eine Einrichtung zum Ausgeben des Ausgabebitstroms, der dem genannten Übergang zugeordnet ist, wobei eine variable Zahl von Bits von dem Über­ gangsautomaten für jeden Abschnitt der Vielzahl der Eingangsbits ausgegeben wird und eine Vielzahl von Ausgangsbits in Abhängigkeit von dem Eingabebit­ strom generiert werden, wobei die Vielzahl der Ausgangsbits eine Vielzahl der Ausgabebitströme wiedergeben, derart, daß der Eingabebitstrom komprimiert wird und fehlerkorrekturkodiert wird.
DE4437790A 1993-10-22 1994-10-21 Verfahren und Vorrichtung zur Verwendung von endlichen Automaten zur Durchführung einer Kanalmodulation und einer Fehlerkorrektur und einer Entropie-Kodierung Expired - Fee Related DE4437790B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US142504 1988-01-11
US08/142,504 US5475388A (en) 1992-08-17 1993-10-22 Method and apparatus for using finite state machines to perform channel modulation and error correction and entropy coding

Publications (2)

Publication Number Publication Date
DE4437790A1 true DE4437790A1 (de) 1995-06-01
DE4437790B4 DE4437790B4 (de) 2006-02-16

Family

ID=22500091

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4437790A Expired - Fee Related DE4437790B4 (de) 1993-10-22 1994-10-21 Verfahren und Vorrichtung zur Verwendung von endlichen Automaten zur Durchführung einer Kanalmodulation und einer Fehlerkorrektur und einer Entropie-Kodierung

Country Status (3)

Country Link
US (1) US5475388A (de)
JP (1) JPH07240720A (de)
DE (1) DE4437790B4 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19538852A1 (de) * 1995-06-30 1997-01-02 Deutsche Telekom Ag Verfahren und Anordnung zur Klassifizierung von Sprachsignalen
DE19622365A1 (de) * 1996-06-04 1997-12-11 Deutsche Telekom Ag Umsetzer zur Übertragung von Quellencode
US5781881A (en) * 1995-10-19 1998-07-14 Deutsche Telekom Ag Variable-subframe-length speech-coding classes derived from wavelet-transform parameters

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149554A (ja) * 1992-11-09 1994-05-27 Matsushita Electric Ind Co Ltd プログラム動作仕様自動合成装置及びその方法
US5617333A (en) * 1993-11-29 1997-04-01 Kokusai Electric Co., Ltd. Method and apparatus for transmission of image data
CA2156889C (en) * 1994-09-30 1999-11-02 Edward L. Schwartz Method and apparatus for encoding and decoding data
GB2306281B (en) * 1994-09-30 1997-10-22 Ricoh Kk nethod for decoding data
US5675590A (en) * 1994-11-23 1997-10-07 At&T Wireless Services, Inc. Cyclic trellis coded modulation
US6889356B1 (en) * 1994-11-23 2005-05-03 Cingular Wireless Ii, Llc Cyclic trellis coded modulation
US5819026A (en) * 1995-06-06 1998-10-06 Apple Computer, Inc System and method for arbitrating accelerator requests
US5751859A (en) * 1995-06-14 1998-05-12 Lucent Technologies Inc. Compression of text images by soft pattern matching
US5793371A (en) * 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data
US5818369A (en) * 1996-03-07 1998-10-06 Pegasus Imaging Corporation Rapid entropy coding for data compression or decompression
EP0853843B1 (de) * 1996-07-03 2002-09-18 Koninklijke Philips Electronics N.V. Übertragung und empfang eines digitalen informationssignals
US5912636A (en) * 1996-09-26 1999-06-15 Ricoh Company, Ltd. Apparatus and method for performing m-ary finite state machine entropy coding
DE19758853B4 (de) * 1996-09-26 2006-09-07 Ricoh Co., Ltd. Dekoder und Verfahren zum Dekodieren sowie System mit Kodierer und Dekodierer
US5859604A (en) * 1997-01-14 1999-01-12 International Business Machines Corporation Merged VLSI implementation of hardware optimized Q-Coder and software optimized QM-Coder
GB9718688D0 (en) * 1997-09-03 1997-11-12 Sgs Thomson Microelectronics Post image techniques
US6816821B1 (en) 1997-09-03 2004-11-09 Stmicroelectronics Limited Post image techniques
US6256764B1 (en) * 1997-11-26 2001-07-03 Nortel Networks Limited Method and system for decoding tailbiting convolution codes
US6094151A (en) * 1998-01-05 2000-07-25 Ricoh Company, Ltd. Apparatus and method for finite state machine coding of information selecting most probable state subintervals
CN1285986A (zh) * 1998-01-07 2001-02-28 西门子公司 信息编码、解码和传输的方法,信号处理器和无线电装置
ES2298942T3 (es) * 1998-03-19 2008-05-16 Koninklijke Philips Electronics N.V. Codificacion/descodificacion aritmetica de una señal de informacion digital.
WO2000018015A1 (de) * 1998-09-24 2000-03-30 Siemens Aktiengesellschaft Verfahren zur gemeinsamen quellen- und kanalcodierung
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6259385B1 (en) * 1999-07-16 2001-07-10 Texas Instruments Incorporated System for data transceiving using run-length constrained convolutional codes
GB2395823B (en) * 2000-01-27 2004-08-25 Automatic Parallel Designs Ltd Method and apparatus for binary encoding logic circuits
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US7844579B2 (en) 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US6879988B2 (en) 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US6473010B1 (en) * 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US6516035B1 (en) * 2000-04-07 2003-02-04 Actisys Corporation Intelligent encoding method for wireless data communication and control
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
JP4214440B2 (ja) * 2000-10-19 2009-01-28 ソニー株式会社 データ処理装置およびデータ処理方法、並びに記録媒体
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US7185041B1 (en) 2001-10-05 2007-02-27 Unisys Corporation Circuit and method for high-speed execution of modulo division
US7095343B2 (en) * 2001-10-09 2006-08-22 Trustees Of Princeton University code compression algorithms and architectures for embedded systems
WO2003079557A1 (en) * 2002-03-04 2003-09-25 Seagate Technology Llc Error correction coding utilizing numerical base conversion for modulation coding
US6624762B1 (en) 2002-04-11 2003-09-23 Unisys Corporation Hardware-based, LZW data compression co-processor
US9577667B2 (en) * 2002-04-23 2017-02-21 Ntt Docomo, Inc. System and method for arithmetic encoding and decoding
ES2442190T3 (es) * 2002-05-02 2014-02-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Procedimiento y dispositivo de codificación y descodificación aritméticas utilizando una pluralidad de tablas de consulta
GB2396718B (en) * 2002-12-23 2005-07-13 Arithmatica Ltd A logic circuit and method for carry and sum generation and method of designing such a logic circuit
WO2004064254A2 (en) * 2003-01-14 2004-07-29 Arithmatica Limited A logic circuit
WO2004081761A2 (en) * 2003-03-12 2004-09-23 Sensory Networks Inc. Apparatus and method for memory efficient, programmable, pattern matching finite state machine hardware
US7308471B2 (en) 2003-03-28 2007-12-11 Arithmatica Limited Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding
WO2004104820A2 (en) * 2003-05-23 2004-12-02 Arithmatica Limited A sum bit generation circuit
WO2004107404A2 (en) * 2003-05-23 2004-12-09 Sensory Networks, Inc. Apparatus and method for large hardware finite state machine with embedded equivalence classes
US7219319B2 (en) * 2004-03-12 2007-05-15 Sensory Networks, Inc. Apparatus and method for generating state transition rules for memory efficient programmable pattern matching finite state machine hardware
US7307453B1 (en) * 2004-10-12 2007-12-11 Nortel Networks Limited Method and system for parallel state machine implementation
US7673215B2 (en) * 2004-12-17 2010-03-02 Samsung Electronics Co., Ltd. Apparatus and method for using an error correcting code to achieve data compression in a data communication network
JP4618676B2 (ja) 2005-04-28 2011-01-26 株式会社リコー 構造化文書符号の転送方法、画像処理システム、サーバ装置、プログラム及び情報記録媒体
US20080022401A1 (en) * 2006-07-21 2008-01-24 Sensory Networks Inc. Apparatus and Method for Multicore Network Security Processing
US7405678B2 (en) * 2006-09-25 2008-07-29 International Business Machines Corporation Method of retrieving data from a storage device using a recovered read-back parameter
TWI330006B (en) * 2007-07-27 2010-09-01 Lite On It Corp Encoding method and encoder for generating balanced code or constant weighted code
US9736181B2 (en) * 2013-07-26 2017-08-15 Intel Corporation Hardening data transmissions against power side channel analysis
US9252808B1 (en) * 2014-08-28 2016-02-02 Avago Technologies General Ip (Singapore) Pte. Ltd. Ping-pong run length limit encoder
US11115050B1 (en) * 2020-08-24 2021-09-07 Innogrit Technologies Co., Ltd. Hardware friendly data decompression
US11115049B1 (en) * 2020-08-24 2021-09-07 Innogrit Technologies Co., Ltd. Hardware friendly data decompression

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4286256A (en) * 1979-11-28 1981-08-25 International Business Machines Corporation Method and means for arithmetic coding utilizing a reduced number of operations
US4413251A (en) * 1981-07-16 1983-11-01 International Business Machines Corporation Method and apparatus for generating a noiseless sliding block code for a (1,7) channel with rate 2/3
US4488143A (en) * 1981-08-07 1984-12-11 International Business Machines Corporation Fixed rate run length limited (RLL) code string generation using length oriented arithmetic code data string expansion and data string recovery using arithmetic code compression of RLL code strings

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265127A (en) * 1991-09-03 1993-11-23 At&T Bell Laboratories Non-linear encoder and decoder for information transmission through non-linear channels

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4286256A (en) * 1979-11-28 1981-08-25 International Business Machines Corporation Method and means for arithmetic coding utilizing a reduced number of operations
US4413251A (en) * 1981-07-16 1983-11-01 International Business Machines Corporation Method and apparatus for generating a noiseless sliding block code for a (1,7) channel with rate 2/3
US4488143A (en) * 1981-08-07 1984-12-11 International Business Machines Corporation Fixed rate run length limited (RLL) code string generation using length oriented arithmetic code data string expansion and data string recovery using arithmetic code compression of RLL code strings

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HAYKIN, Simon: Communication Systems, 3. Aufl., New York u.a.: John Wiley and Sons, Inc., 1994, S. 701,702,706,715,716,718 *
LANGDON, Glen G. Jr.: An Introduction to Arithmetic Coding. In: IBM Journal of Research and Development, 1984, Nr. 2,(März), S. 135 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19538852A1 (de) * 1995-06-30 1997-01-02 Deutsche Telekom Ag Verfahren und Anordnung zur Klassifizierung von Sprachsignalen
US5781881A (en) * 1995-10-19 1998-07-14 Deutsche Telekom Ag Variable-subframe-length speech-coding classes derived from wavelet-transform parameters
DE19622365A1 (de) * 1996-06-04 1997-12-11 Deutsche Telekom Ag Umsetzer zur Übertragung von Quellencode
DE19622365B4 (de) * 1996-06-04 2008-08-28 Deutsche Telekom Ag Verfahren für einen Umsetzer zur Umsetzung von Quellcode

Also Published As

Publication number Publication date
DE4437790B4 (de) 2006-02-16
JPH07240720A (ja) 1995-09-12
US5475388A (en) 1995-12-12

Similar Documents

Publication Publication Date Title
DE4437790A1 (de) Verfahren und Vorrichtung zur Verwendung von endlichen Automaten zur Durchführung einer Kanalmodulation und einer Fehlerkorrektur und einer Entropie-Kodierung
DE19742417B4 (de) Vorrichtung und Verfahren zur Durchführung von M-fachem Maschinenendzustands-Entropiekodieren bzw. Entropiekodieren mit einer Maschine mit finitem Zustand
DE19606178C2 (de) Verfahren zum Komprimieren einer Anordnung von Pixelwerten und zum Dekomprimieren einer Anordnung von Pixelwerten aus einem komprimierten Datensatz
DE69734645T2 (de) Datenverarbeitung von einem bitstromsignal
DE2844216C2 (de) Erzeugung von Synchronisier-Bitfolgemustern bei Code mit begrenzter Lauflänge
DE69535009T2 (de) Optische Platte und Verfahren und Gerät zur Aufzeichnung und Wiedergabe von dieser Platte
DE19506164C2 (de) Verfahren zum Komprimieren eingegebener Symbole in Codeworte
DE3219439C2 (de)
DE69932962T2 (de) Kodierungsverfahren und Speicheranordnung
EP0276753B1 (de) Verfahren und Vorrichtung zur digitalen Nachrichtenübertragung und/oder -aufzeichnung und -wiedergabe
DE69932959T2 (de) Verlustfreies Kodierungs- und Dekodierungsverfahren
DE69612955T4 (de) Verfahren zur umwandlung von m-bit-informationsworten in ein moduliertes signal, verfahren zur herstellung eines aufzeichnungsträgers, codiervorrichtung, vorrichtung, aufzeichnungsvorrichtung, signal sowie aufzeichnungsträger
DD202084A5 (de) Verfahren zum umkodieren einer folge von datenbits in eine folge von kanalbits, anordnung zum dekodieren der nach diesemverfahren kodierten kanalbits und aufzeichnungstraeger miteiner informationsstruktur
DE3039688A1 (de) Verfahren und vorrichtung zum codieren eines digitalsignals mit minimaler gleichkomponente
DE102016012160B4 (de) Restentropiekompression für cloudbasierte Videoanwendungen bzw. Apps
DE1964570A1 (de) Verfahren zum Wiederauffinden gespeicherter Informationen
DE69733465T2 (de) Umsetzung einer sequenz von m-bit-informationswörtern in ein moduliertes signal
EP1616274B1 (de) Verfahren zur codierung eines strukturierten dokuments
DE69530046T2 (de) Zusammenpassende Spektral-Nullkodes für unvollständige Antwortkanäle
DE69937761T2 (de) Arithmetische Kodierung/Dekodierung eines digitalen Informationssignals
DE69433050T2 (de) Verfahren zur Erzeugung eines Fehlerprüfkodes und Kodeverarbeitungsschaltkreis
DE19539343A1 (de) Verfahren zur Fehlerbehandlung eines digitalen Bitdatenstroms, der von einem Sender zu einem Empfänger übertragen wird
DE19963687B4 (de) Modulations-Codierer und -Decodierer
DE2336180A1 (de) Videodatenkompression bei der abtastung von schriftstuecken
DE19534048A1 (de) Verfahren und Schaltungsanordnung zur Erzeugung eines kanalcodierten Binärsignals

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: H03M 7/30

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee