DE19544761A1 - Verfahren zum Komprimieren eines eingegebenen Symbols - Google Patents

Verfahren zum Komprimieren eines eingegebenen Symbols

Info

Publication number
DE19544761A1
DE19544761A1 DE19544761A DE19544761A DE19544761A1 DE 19544761 A1 DE19544761 A1 DE 19544761A1 DE 19544761 A DE19544761 A DE 19544761A DE 19544761 A DE19544761 A DE 19544761A DE 19544761 A1 DE19544761 A1 DE 19544761A1
Authority
DE
Germany
Prior art keywords
context
pixel
equality
result
value
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
DE19544761A
Other languages
English (en)
Other versions
DE19544761C2 (de
Inventor
Michael J Gormish
Martin P Boliek
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 DE19544761A1 publication Critical patent/DE19544761A1/de
Application granted granted Critical
Publication of DE19544761C2 publication Critical patent/DE19544761C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/507Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction using conditional replenishment

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

Die Erfindung betrifft ein Verfahren zum Komprimieren eines ein­ gegebenen Symbols und betrifft darüber hinaus insbesondere die Schwierigkeit, eine Folge digitaler Bildsignale zu komprimieren.
Eine Kompression digitaler Signale ist ein Prozeß, die Bits eines nicht-komprimierten Bildes umzuordnen, um ein komprimier­ tes Bild mit weniger Bits zu erzeugen. Bei einer verlustfreien Kompression enthält das komprimierte Bild genug Information, um eine einwandfreie Rekonstruktion des ursprünglichen, unkompri­ mierten Bildes zu ermöglichen. Einige Kompressionsprozesse sind verlustbehaftet, so daß das nicht-komprimierte Bild nur annä­ hernd rekonstruiert werden kann. Bei Anwendungsfällen, bei wel­ chen eine verlustbehaftete Kompression angewendet wird, sind der Charakter der digitalen Bilder und die Kompressionsmethode der­ art, daß das rekonstruierte Bild dem ursprünglichen Bild ähnlich genug aussieht, so daß die Verluste kein Problem darstellen. Beispielsweise geht bei einigen verlustbehafteten Kompressions­ verfahren eine geringe Menge an Farbvariation oder Schärfe eines Bildes verloren.
Obwohl ein Bild nicht einwandfrei rekonstruiert werden kann, ist eine verlustbehaftete Kompression dennoch erwünscht, da sie oft zu höheren Kompressionsverhältnissen führt als eine verlustfreie Kompression. Jedoch sind in einigen Anwendungsfällen Verluste nicht tolerierbar, und die Kompression muß verlustfrei sein. Für diese Anwendungsfälle wird eine effiziente verlustfreie Kom­ pression benötigt. Der Ausdruck Effizienz, wie er im vorliegen­ den Fall verwendet wird, bezieht sich auf das erreichbare Kom­ pressionsverhältnis. Folglich ist ein Kompressor, welcher ein vorgegebenes Eingangsbild auf ein Viertel seiner Größe kompri­ miert (Kompressionsverhältnis von 4 : 1) effizienter als ein Kom­ pressor, welcher das vorgegebene Eingangsbild auf die Hälfte seiner Größe komprimiert (Kompressionsverhältnis von 2 : 1). Die Geschwindigkeit, mit welcher eine Kompression einer vorgegebe­ nen, begrenzten Rechenleistung begegnet, ist ein anderer Maß­ stab für eine Kompressor-Effizienz, was jedoch im vorliegenden Fall nicht erörtert wird.
Ein digitales Bild wird durch eine Ansammlung (üblicherweise eine zweidimensionale Anordnung) von Pixelwerten beschrieben, welchen Pixel zugeordnet sind. (Der Kürze halber werden die Be­ griffe "Pixel" und "Pixelwert" oft gegeneinander austauschbar verwendet). Die Pixelwerte zeigen an, in welcher Farbe das Pi­ xel angelegt sein sollte, um das Bild zu erzeugen. Wenn das Bild ein "palettiertes" (palettized) Bild ist, zeigen die Pi­ xelwerte nicht unmittelbar die Farbwerte an, aber sie sind In­ dizes in einer Farbtabelle, welche eine Querreferenz speichert, durch welche jeder Indexwert an einen Farbwert angepaßt ist. Ein Vorteil eines palettierten Bildes gegenüber einem nicht-pa­ lettierten Bild besteht darin, daß die Gruppe ähnlich kolorier­ ter Pixel allein durch Ändern eines Werts in der Farbtabelle geändert werden kann. Dieser Gesichtspunkt bei palettierten Bildern ist insbesondere bei Videospielen nützlich. Beispiels­ weise könnte ein Videospiel ein palettiertes Bild eines Rennwa­ gens speichern und einen anders gefärbten Rennwagen für jeden Spieler anzeigen, indem eine unterschiedliche Farbtabelle jedem Spieler zugeordnet wird. Bei nicht-palettierten Bildern würde für jeden Spieler ein Bild benötigt.
Ein Nachteil palettierter Bilder besteht darin, daß sie in der Regel verlustfrei komprimiert werden müssen. Eine verlustbehaf­ tete Kompression kann zu geringfügigen Fehlern in den Pixelwer­ ten führen. Bei nicht-palettierten Bildern führen diese gering­ fügigen Fehler gewöhnlich zu geringfügigen Verschiebungen in den Farbwerten, wodurch jedoch das Bild nicht stark beeinflußt wird. Jedoch führen bei palettierten Bildern die Fehler zu ge­ ringfügigen Verschiebungen in den Indexwerten, was zu größeren Farbverschiebungen führen kann, wodurch das Bild ziemlich stark verändert wird.
Ein Kompressionsverfahren ist von Zandi et al in einer am 23. Februar 1994 eingereichten Patentanmeldung S.N. 08/200,233 der Anmelderin der vorliegenden Anmeldung beschrieben, welche den Titel trägt "Compression of Palettized Images and Binariza­ tion for Bitwise Coding of M-ary Alphabets Therefor". Auf diese Anmeldung wird nachstehend Bezug genommen und sie wird als "Zandi" bezeichnet. In Zandi wird das Vorhandensein einer Farb­ tabelle in vorteilhafter Weise bei einem Kompressionssystem verwendet. Da die Pixelwerte des Bildes willkürliche Indizes in einer Tabelle sind, können die Eintragungen der Tabelle ohne Informationsverlust umgruppiert werden, solange die Farbwerte in den Tabelleneintragungen, die durch die Pixelwerte angezeigt sind, sich nicht ändern. Mit dieser Beschränkung werden die Pi­ xelwerte umgruppiert, so daß die Bits der Pixelwerte noch mehr kompressibel sind.
Obwohl die Kompression von Zandi ganz brauchbar ist, wird eine noch größere Kompression benötigt, wenn Mehrfachbilder, die eine sich bewegende Darstellung (d. h. eine Videofolge) bilden, gespeichert werden müssen, da bis zu 60 Bildern oder Vollbil­ dern für jede Sekunde der Videofolge erzeugt werden müssen. Bei einer Bildauflösung von (256 Pixel × 240 Pixel) pro Bild und 8 Bit Pixelwerten erfordert ein nicht-komprimiertes Vollbild 61 440 Speicherbytes (8 Bits/Byte) und eine Videofolge von einer Sekunde (60 Vollbildern) erfordert 3 686 400 Speicherby­ tes, wenn sie nicht komprimiert ist.
Eine gute Kompression ist wichtig für Videospiele, welche Vi­ deofolgen benutzen und Video-Kassetten geliefert werden, da die Spielbefehle, feste Bilder und Videofolgen, alle in einem Fest­ wertspeicher (ROM) gespeichert sind. In Anbetracht dessen, daß die Video-Kassetten preiswert sein müssen, sind die Videospiel-Designer oft auf eine begrenzte ROM-Größe beschränkt. Folglich fordern sie eine bessere Kompression, die es gestattet, daß entweder mehr Szenen in einem begrenzten ROM unterzubringen sind, oder kleinere, preiswertere ROM zum Speichern verwendet werden können.
Ein Kompressor liest nacheinander Symbole aus einem zu kompri­ mierenden Eingabeblock, komprimiert diese Symbole und erzeugt eine Ausgabedatei. Wenn die eingegebene Datei ein digitales Bild oder eine Folge von Vollbildern ist, (wobei jedes Vollbild ein digitales Bild ist), sind die Symbole Pixelwerte. Wenn die Pixelwerte nacheinander eingelesen werden, sind sie üblicher­ weise sequentiell geordnet, wobei mit der obersten Reihe Pixel begonnen und mit der untersten Reihe Pixel geendet wird, wobei jede Reihe von links nach rechts durchlaufen wird. Das zu kom­ primierende, ursprüngliche Pixel wird als das "aktuelle" Pixel bezeichnet; mit "älteren" Pixel werden die bereits verarbeite­ ten Pixel bezeichnet; mit "kommenden Pixel" werden noch nicht verarbeitete Pixel bezeichnet, und ein "nächstes" Pixel ist das kommende Pixel, das unmittelbar nach dem aktuellen Pixel verar­ beitet wird. Einige Kompressoren komprimieren jeweils ein Bit des aktuellen Pixel, wobei in diesem Fall das zu verarbeitende Pixel als dasjenige bezeichnet wird, das sich in der "aktuel­ len" Bitebene befindet.
Ein Kompressor enthält einen Codierer, welcher das aktuelle Symbol in eine Anzahl komprimierter Bits (ein Codewort) um­ setzt. Die Codeworte für alle Symbole bilden den Ausgabeblock. In einigen Codierern ist die Beziehung der eingegebenen Symbole zu den ausgegebenen Codeworten festgelegt. In einem adaptiven Entropie-Codierer ändert sich die Beziehung in Abhängigkeit von der Wahrscheinlichkeit des Auftretens des aktuellen Symbols. Ein Entropie-Codierer wird so bezeichnet, da er versucht, die Daten bis zu dem theoretisch möglichen Kompressionswert zu kom­ primieren, welcher durch die Entropie vorgegeben ist. Die Ent­ ropie gibt vor, daß im Durchschnitt ein Symbol S nicht in eine Anzahl Bits codiert werden kann, die kleiner ist als der binäre Logarithmus der Umkehr der Wahrscheinlichkeit des auftretenden Symbols S. Mit anderen Worten, wenn die Wahrscheinlichkeit eines auftretenden Symbols S P ist, dann werden mindestens N = log₂(1/P) Bits benötigt, um ein Symbol S in einem kompri­ mierten Block als das Symbol anzuzeigen, das aus dem kompri­ mierten Block extrahierbar ist. Folglich ist ein Kompressions­ verhältnis, das größer als der Entropie-Grenzwert ist, bei ver­ lustfreier Kompression nicht möglich.
In einem Huffman-Codierer ist die Anzahl Bits pro Codewort auf eine ganze Zahl beschränkt; folglich werden einige Codeworte durch mehr Teil- bzw. Bruchteil-Bits ausgedrückt als aufgrund der Entropie für die Wahrscheinlichkeit dieses Codewortes er­ forderlich sind. Wegen dieses Rundens komprimiert ein Huffman-Co­ dierer nicht so wie ein Entropie-Codierer, welcher Codeworte mit Teil-Bits ausdrücken kann. Die Verwendung von Codeworten mit Bruchteilen von Bits ist möglich, da Codeworte einander überlappen können.
Selbst bei Teilbits pro Codewort ist ein Bild üblicherweise nicht bis an seine Entropiegrenze komprimierbar, da die Wahr­ scheinlichkeiten nicht genau festgelegt sind. Selbstverständ­ lich kann die Wahrscheinlichkeit eines Auftretens jedes Pixel­ werts in dem eingegebenen Bild genau durch Untersuchen des ge­ samten Bildes bestimmt werden; jedoch sollte eine Information, die an dem Dekompressor nicht zu dem Zeitpunkt verfügbar ist, wenn das aktuelle Pixel zu dekomprimieren ist, nicht dazu ver­ wendet werden, zu entscheiden, wie das aktuelle Pixel zu codie­ ren ist. Andererseits hat der Dekompressor nicht genug Informa­ tionen, um das aktuelle Pixel zu decodieren.
Vorteilhafterweise schaffen Wahrscheinlichkeits-Schätzwerte, die nur auf älteren Pixel basieren, entsprechende Eingagswerte an einem Entropie-Codierer. Um die Wahrscheinlichkeits-Schätz­ werte zu verbessern, werden Kontexte verwendet, welche bedingte Wahrscheinlichkeits-Schätzwerte, d. h. einen bekannten Kontext zulassen, wobei die Wahrscheinlichkeit von Pixel P das aktuelle Pixel ist. Damit ein Dekompressor den Kontext vor einem Deco­ dieren des aktuellen Pixels bestimmen kann, sollte der Kontext nur von älteren Pixel abhängen. Die Wahl von Elementen, welche den Kontext eines Pixels festlegen, ist als das Kontext-Modell bekannt. Beispielsweise wird in einem Kontext-Modell der Kon­ text für ein zu komprimierendes Pixel durch das unmittelbar vorhergehende ältere Pixel bestimmt. In dem Bereich, in welchem die Wahrscheinlichkeiten besser mit Hilfe eines ganz bestimmten Kontext-Modells geschätzt werden, ergibt sich mit diesem Kon­ text-Modell eine bessere Kompression.
Ein Kontext-Modell arbeitet am besten, wenn der Kontext eine gute Vorgabe des Symbols oder eines zu codierenden Pixels ist. Wenn beispielsweise der Kontext von Pixel P C ist, und die Wahrscheinlichkeit von P mit dem Pixelwert, der zu diesem Kon­ text gehört, 0,50 ist, wird nur ein Bit benötigt, um dieses Pi­ xel zu codieren. Wenn jedoch die Wahrscheinlichkeit 0,70 ist, dann wird nur ein halbes Bit benötigt. Daher gilt, je mehr vor­ hersagbar das Pixel ist, umso weniger Bits oder Bitbruchteile werden benötigt, um das Pixel zu codieren; somit ergeben besse­ re Kontext-Modelle eine bessere Kompression. In einem Bild mit großen ganz farbigen Bereichen ist die Farbe benachbarter Pixel ein guter Prädiktor der Farbe des aktuellen Pixel, und daher ist ein gutes Kontext-Modell eines, bei welchem der Kontext durch die Farbe benachbarter Pixel bestimmt wird.
Selbst bei einem guten Kontext-Modell ist jedoch eine größere Kompression möglich und wünschenswert.
Die Erfindung soll daher eine verbesserte Kompression für Vi­ deofolgen zu schaffen, indem zwei Kontextsätze verwendet wer­ den, nämlich ein Satz, um Kontext zu schaffen, um zu bestimmen, ob ein aktueller Pixelwert derselbe ist wie ein Pixel in einer entsprechenden Position in einem vorherigen Vollbild, und einen Satz, um Kontext zu schaffen, wenn ein Pixelwert codiert wird, welcher nicht derselbe ist, wie das Pixel in dem vorherigen Vollbild. Die Erfindung schafft Kontext-Modelle, um zu erken­ nen, daß zeitlich nahe Pixel in einer Videofolge wertvolle Kon­ textinformation für ein zu codierendes Bild geben, und wenn zeitlich oder räumlich nahe Pixel dieselben sind, diese Infor­ mation mit nur einer Entscheidung (einer binären Entscheidung, jedoch einer, die zu mehr oder weniger als einem Bit codiert werden kann) ausgedrückt werden kann. Folglich muß eine Kon­ text-Modelleinheit, welche eine "Gleichheit"-("sameness")Ent­ scheidung abgibt, einen Ausgangswert verarbeiten oder schaffen, wenn die Gleichheit zutrifft.
Das Verwenden der Gleichheitsentscheidung erspart Berechnungen, da, wenn beim Codieren einer Gleichheitsentscheidung ein Dekom­ pressor feststellt, daß das Pixel gleich dem entsprechenden Pi­ xel in einem vorherigen Vollbild ist, dann keine weitere Codie­ rung für dieses Pixel erforderlich ist.
Die Pixelpaare, welche für die Gleichheitsprüfung verwendet werden, brauchen nicht die entsprechenden Pixel aus zwei Voll­ bildern zu sein, da die Gleichheitsbits bei einigen Anwendungen sich auf die Gleichheit des aktuellen Pixelwerts und eines Pi­ xelwerts eines Pixels in einer vorherigen Zeile oder eines ver­ schobenen Pixels in einem vorherigen Vollbild beziehen. Tat­ sächlich kann das aktuelle Pixel mit einem vorher übertragenen Pixel verglichen werden. Beispielsweise kann eine Kamera Bewe­ gungssensor-Ausgangswerte schaffen, welche anzeigen, wie sich eine Szene von Bild zu Bild ändert, so daß das aktuelle Bild mit einem Pixel verglichen werden kann, welches in derselben Position in dem vorherigen Bild gewesen sein sollte, aber auf­ grund der Kamerabewegung versetzt ist. (Eine derartige Kamera ist in der am 07. März 1994 eingereichten US-Patentanmeldung S.N. 08/207,244 der Anmelderin der vorliegenden Anmeldung dar­ gestellt und beschrieben, welche betitelt ist mit "Sensor Dri­ ven Global Motion Compensation"). Obendrein könnten ein Tabel­ lenlesen (TLU), ein Bewegungsschätzungssystem oder andere Ver­ fahren verwendet werden, um deterministisch ein vorheriges Pi­ xel auszuwählen, welches mit dem aktuellen Pixel zu vergleichen ist.
Nachfolgend wird die Erfindung anhand bevorzugter Ausführungs­ formen unter Bezugnahme auf die anliegenden Zeichnungen im ein­ zelnen erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm verschiedener Anwendungsmöglich­ keiten mit Hilfe einer Kompression und Dekompres­ sion, um wirksam Daten zu speichern oder zu übertra­ gen;
Fig. 2 eine genauere Darstellung eines in Fig. 1 dargestell­ ten Kompressors;
Fig. 3 eine genauere Darstellung eines in Fig. 1 dargestell­ ten Dekompressors;
Fig. 4 eine genauere Darstellung einer Kontext-Modellein­ heit des in Fig. 2 dargestellten Kompressors;
Fig. 5 eine schematische Darstellung, wie kontext-abhängige Pixel verwendet werden, um Gleichheits-Kontexte und Rest-Kontexte zu bilden;
Fig. 6 ein Ablaufdiagramm des Vorcodier-Prozesses, welcher mittels einer Kontext-Modelleinheit durchgeführt worden ist, und
Fig. 7 ein Ablaufdiagramm des Decodier-Prozesses, der mit­ tels einer Kontext-Modelleinheit durchgeführt worden ist.
Fig. 1 ist ein Blockdiagramm einer generellen Anwendung, bei welcher Kompression benutzt wird. In diesem System erzeugen Da­ tenquellen Daten und die jeweiligen Nutzer der Daten werden hinsichtlich Zeit und Raum von der Datenquelle durch eine be­ grenzten Kanal getrennt. Wenn der Nutzer und die Quelle nicht getrennt werden, oder wenn der Kanal nicht begrenzt ist, dann wird keine Kompression benötigt.
Fig. 1 zeigt mehrere Datenquellen, wie eine Videokassette 102, ein Einzelbild 104, eine Videofolge 105 und eine Workstation 106, welche gemachte Bilder erzeugt. Wenn die Datenquelle Bild­ daten, insbesondere Folgen von Vollbildern ist, wird eine Kom­ pression wegen des großen Speicherplatzes benötigt, der für nicht-komprimierte Bilder oder Folgen erforderlich ist. Die Er­ findung wird anhand von Vollbild-Folgen beschrieben; jedoch ist die Erfindung auch bei anderen Datentypen verwendbar, die ähn­ liche Kenndaten von Vollbild-Folgedaten gemeinsam nutzen.
Die Daten werden in einen Kompressor 108 eingegeben, welcher, wenn er richtig ausgelegt ist, ein komprimiertes Bild oder komprimierte Bilder abgibt, die weniger Bits enthalten als die ursprünglichen Daten. Wenn der Kompressor 108 ein verlustfreier Kompressor ist, sind die ursprünglichen Daten aus den Bits der komprimierten Daten wiederherstellbar. Sobald die Daten kompri­ miert sind, werden sie an einen Kanal abgegeben, wovon mehrere Beispiele in Fig. 1 dargestellt sind.
Ein Kanal ist eine Compact Disk ROM (CD-ROM) 100, welcher als Einrichtung verwendet wird, um Software und große Bilddateien zu verteilen. Folglich werden, um mehr Daten auf einem einzigen CD-ROM unterzubringen, und um einem Benutzer die Unbequemlich­ keit zu ersparen, ständig zwischen mehreren Disk wechseln zu müssen, werden die Daten komprimiert, um sie auf einer einzigen CD-ROM unterzubringen.
Ein anderer Kanal ist eine Spielkassette 112, die in Verbindung mit einem Gerät zur Wiedergabe von Videospielen verwendet wird, welche Spielkassetten annimmt. Ein wichtiger Faktor bei Video­ spiel-Kassetten ist der Kostenfaktor: wenn mehr Speicher benö­ tigt wird, steigen die Herstellungskosten bei jeder Kassette. Ahnliche Zwänge, die eine Kompression erfordern, gibt es bei anderen Speichermedien, wie ein Disk-Laufwerk 114 oder eine Vi­ deoband-Kassette 116.
Bei einigen Kanälen ist die Beschränkung nicht eine Speicherbe­ schränkung, sondern eine Beschränkung in der Übertragungszeit und der Bandbreite, so beispielsweise bei einer Datenübertra­ gungsleitung 118 (einer Fernsprechleitung, einer gemieteten Leitung, einer zellularen Telephonübertragung, einem Netzkabel, CD-ROM, usw.) oder ein Paketnetz 120. Eine Kompression ist in diesen Anwendungsfällen erwünscht, wenn die Anzahl Bits, die in einer Zeiteinheit übertragen ist, begrenzt ist und die Daten eine hohe Rate erfordern, oder wenn die Benutzungskosten des Übertragungsmediums auf der Anzahl der übertragenen Bits basie­ ren.
Jedoch werden die Daten als eine Datenquelle erzeugt und an einen eventuellen Nutzer übertragen, der zeitlich und räumlich von der Datenquelle getrennt ist; die Daten müssen daher von diesem eventuellen Nutzer dekomprimiert werden, der nur das nutzt, was über den Kanal übertragen wird und was im voraus be­ kannt ist. Zu diesem Zweck rekonstruiert der Dekompressor 122 das, was die Datenquelle anfangs vorgesehen hat, an einem Kom­ pressor 108.
Wegen der Entfernung zwischen der Quelle und dem Nutzer kann nur in der Übertragung enthaltene Information genutzt werden, um die Information zu dekomprimieren. Natürlich könnte die Da­ tenquelle Hinweise an den Dekompressor 112 geben; diese Hinwei­ se würden jedoch Bandbreite bei der Übertragung in Anspruch nehmen und dies würde irgendwie als Teil der Größe der kompri­ mierten Datei gezählt werden. Die Datenquelle könnte die Hin­ weise über einen anderen Kanal liefern. Jedoch sollten bei einer fairen Beurteilung eines Kompressionssystems diese Daten ebenfalls als Teil der komprimierten Daten betrachtet werden. Natürlich ist eine Möglichkeit, tatsächlich Speicher und Band­ breite zu sparen ständig (oder zeitweilig in Abhängigkeit von der Anwendung) apriori Daten zu haben, die in der Datenquelle und in dem System des eventuellen Benutzers gespeichert sind. Jedoch erzwingt dies Datentypen, welche übertragen werden kön­ nen. In den meisten Anwendungsfällen stellt dieser Zwang kein Problem dar. Beispielsweise vereinbaren Videospiel-Kassetten-Her­ steller und Designer von Videospiel-Systemen üblicherweise, wie ihre Daten formatiert werden und wie sie komprimiert wer­ den. Wenn nicht, muß ein Teil der Bandbreite verwendet werden, um sogenannte Setup-Information, wie Bildgrößen, zu übertragen. In einer Ausführungsform sind die Bilder festgelegt auf eine Breite von 256 Pixel, eine Höhe von 240 Pixel und 8 Bits/Pixel. Durch Festlegen dieser Information wird Bandbreite nicht ver­ wendet, welche den Umfang jedes Bildes begrenzt. Information, durch welche vorher eine Zeit zwischen der Datenquelle und dem Nutzersystem festgelegt ist, wird als "apriori Information" be­ zeichnet.
Fig. 2 zeigt im einzelnen einen Kompressor 108 zusammen mit einer Ausgangsdatei 200, welche eine Folge von nicht-kompri­ mierten Bildern (Vollbildern) darstellt, und einer komprimier­ ten Datei 220, welche eine komprimierten Version der Ausgangs- bzw. Originaldatei 200 darstellt. Obwohl die mit diesem System durchgeführte Kompression bezüglich Bildern und Bildfolgen be­ schrieben wird, sind mit diesem System auch andere Daten mit ähnlichen Kenndaten komprimierbar.
Der Kompressor 108 bewegt die Originaldaten über eine Kontext-Modelleinheit 202C und einen Entropie-Codierer 208C, um eine komprimierte Datei 220 zu erzeugen. Eine Kontext-Modelleinheit 202C hat einen Eingang für Original-Pixel und einen Pixeltakt. In einigen Ausführungsformen sind die Originaldaten (Pixel) selbst-taktend und der Pixeltakt wird nicht benötigt. Eine Kon­ text-Modelleinheit 202C gibt einen Ergebniswert und einen Kon­ textfach-Identifizierer (ID) ab, welcher einen Kontext für den Ergebniswert, jeden Takt eines Ergebnistaktes, identifiziert. Der Ergebnistakt ist ein binärer Wert für binäre Entropie-Co­ dierer und ist ein M-stufiger Wert für M Stufen-Codierer. Na­ türlich kann, wie bei Zandi ausgeführt, ein M Stufen-Codierer auch mit Hilfe eines binären Codierers und einer zusätzlichen Logik oder Verarbeitung ausgeführt werden.
Der Ergebnistakt wird ebenfalls abgegeben, wenn die Daten nicht selbst-taktend sind. Wenn die Eingabeeinheit eine Datenspei­ cher-Einrichtung ist, und wenn die Elemente des Kompressors 108 durch Software-Module ausgeführt sind, sind die Elemente im allgemeinen durch die Software selbst-getaktet.
Die Kontext-Modelleinheit 202C ist auch mit einem Vollbildspei­ cher 204C verbunden, um den Vollbildspeicher 204C mit dem ak­ tuellen Pixel zu aktualisieren und um Kontext-Pixel oder Kon­ text-Bits aus dem Vollbildspeicher 204C zu lesen.
Nunmehr werden einige Elemente beschrieben, welche einen Entro­ pie-Codierer 208C bilden. Ein Wahrscheinlichkeits-Schätzer 210C ist vorgesehen, um das Ergebnis und das Kontext-Fach ID von der Kontext-Modelleinheit 202C zu erhalten, und gibt einen Wahr­ scheinlichkeitswert und einen Ergebniswert ab (der ein binärer Wert für einen binären Bitgenerator ist.) Erforderlichenfalls gibt der Wahrscheinlichkeitsschätzer 210C auch einen Ergebnis- (outcome)Takt ab. Der Wahrscheinlichkeits-Schätzer 210C ist mit einer Gleichheit-Kontext-Tabelle 212C und einer Restkontext-Ta­ belle 214C verbunden, um Wahrscheinlichkeiten in diesen Tabel­ len zu aktualisieren, und um Wahrscheinlichkeiten aus diesen Tabellen zu lesen. Andererseits sind auch nicht-binäre Bitgene­ ratoren (Multi-Bitgeneratoren), wie Huffman- oder Tunstal-Bit­ generatoren, in einigen Implementierungen möglich.
Ein Bitgenerator 216C gibt den Wahrscheinlichkeitswert und den Ergebniswert von dem Wahrscheinlichkeitsschätzer 210C ein und gibt Bits ab, welche dem abgegebenen Codewort entsprechen, wo­ bei Teil- bzw. Bruchteil-Bits in einem Bruchteil-Bit-Speicher 218C gespeichert werden. Der von dem Bitgenerator 216C abgege­ bene Bitstrom stellt eine komprimierte Datei 220 dar.
Der Kompressor 108 weist auch eine Kontextmodell-Steuereinheit 206C auf, welche zwei Ausgänge hat, die mit der Kontext-Mo­ delleinheit 202C verbunden sind. Ein Ausgang schafft eine Gleichheit-Kontextmodell-Maske und der andere schafft eine Rest-Kontextmodell-Maske. Wenn diese zwei Masken nicht apriori Information sind, sind die Masken in der verdichteten Datei 220 zusammen mit Wegen 222C enthalten.
Während des Betriebs erhält während jedes Zyklus des Pixeltak­ tes der Kompressor 108 ein eingegebenes Pixel (das "aktuelle" Pixel) von der Datei 200, welche die Original-Pixel enthält. Entsprechend dem aktuellen Pixel gibt der Kompressor 108 eine Anzahl Bits an die komprimierte Datei 220 ab, wobei die Anzahl von dem Zustand des Kompressors 108 abhängt, und es Null Bits sein können (d. h. es gibt keine Bits, die in einem vorgegebenen Pixelzyklus abgegeben worden sind). Im Falle eines Nullbit-Aus­ gangs wird der interne Zustand des Kompressors 108 geändert. Dies wird in einem später komprimierten Bit oder Bits reflek­ tiert.
Jeder Pixelzyklus kann in mehrere Ergebnis- oder Entropie-Zy­ klen aufgeteilt sein. Wenn beispielsweise ein Pixel eine 8 Bit-Größe ist und ein Entropie-Codierer ein binärer Entropie-Codie­ rer ist, hat jeder Pixelzyklus acht Ergebniszyklen mit einem Kontextfach-Wert und einem Ergebnis-Bit für jeden Entropie-Zy­ klus.
Die Kontext-Modelleinheit 202C erhält das eingegebene Pixel und gibt jeweils ein oder mehrere Sätze eines Kontextfaches ID und eines Ergebniswertes ab. In einer Ausführungsform ist das Pixel durch eine Anzahl Bits dargestellt, und in einem Entropie-Zy­ klus werden ein Bit für den Ergebniswert und ein Kontextfach ID verarbeitet. In einer anderen Ausführungsform ist der Ergebnis­ wert ein 8 Bit-Wert, es wird ein einziger Kontext-ID verwendet, und der Entropie-Codierer ist ein arithmetischer Mehrsymbol-Co­ dierer, wie er beispielsweise beschrieben ist in Witten, H., R. Neal and J.G. Cleary, "Arithmetic coding for data compres­ sion", Comm. of the ACM. Juni 1987, Vol. 30, Stn. 520-540.
Die Kontext-Modelleinheit 202C legt den Kontext-Fach-ID und das Kontext-Ergebnis entsprechend dem nachstehend im einzelnen er­ läuterten Verfahren fest. Ein Kontext zeigt etwas über die Um­ gebung des aktuellen Pixel an, welches mittels des Dekodierers bestimmt werden kann, wie beispielsweise den Pixelwert auf der linken Seite des Pixels oder eine Kombination von Kontexten, wie den Pixelwert auf der linken Seite, welcher mit der Bit­ ebene des Ergebnis-Bit kombiniert ist (z. B. die Position des Ergebnis-Bits in dem aktuellen Pixel). Für den Fall, daß nur wenige vorherige Pixel verwendet werden, wird dies ein Markov-Modell der Daten genannt.
Ein Kontext-Modell steuert, welche Merkmale des aktuellen Pi­ xels und dessen Umgebung verwendet werden, um den Kontext zu bestimmen. Da Pixel in den Kompressor 108 in bekannter Reihen­ folge eingegeben werden, erkennt die Kontext-Modelleinheit 202C von welchem Vollbild das aktuelle Pixel ist, und die Position des aktuellen Pixels in dem Vollbild.
Anfangs ist der Vollbildspeicher 204C leer, so daß es nicht möglich ist, Kontexte für sehr frühe Pixel zu schaffen. Jedoch könnte der Vollbildspeicher gerade mit einem apriori Wert ge­ füllt sein, so daß Kontexte für jedes Ergebnis geschaffen wer­ den können. Nach dem ersten Vollbild enthält der Vollbildspei­ cher 204C zumindest ein ganzes Vollbild. Da sich der Speicher 204C füllt, werden die ältesten Pixel überschrieben, wenn neue Pixel gespeichert werden. Der Speicher 204C muß nur groß genug sein, um die Werte zu halten, die benötigt werden, um zukünfti­ ge Kontexte zu bestimmen. Wenn beispielsweise kein Kontext auf Pixel von einem früheren als dem unmittelbaren vorherigen Voll­ bild Bezug nimmt, wird ein Speicher nur für ein ganzes Vollbild benötigt. Bei einigen Ausführungsformen existiert der Vollbild­ speicher bereits, so daß kein zusätzlicher Speicher erforder­ lich ist.
Der Kontextfach-Identifizierer ID, der von der Kontext-Mo­ delleinheit 202C abgegeben worden ist, zeigt den Kontext des aktuellen Pixels sowie einen Modus, der aus einem Gleichheits-Modus und einem Rest-Modus ausgewählt ist. Natürlich braucht bei richtiger Zuordnung von sich nicht-überdeckenden Kontext­ fach-Identifizierern (ID) nur ein Kontextfach-ID abgegeben zu werden. Außer für die Aufteilung von konditionalen Wahrschein­ lichkeiten auf zwei Kontext-Tabellen entspricht die Arbeitswei­ se des Wahrscheinlichkeitsschätzers 210C derjenigen eines her­ kömmlichen Wahrscheinlichkeitsschätzers. Natürlich kann, wenn Gleichheit-Kontextfach- Identifizierer und Rest-Kontextfach- Identifizierer unterscheidbar sind, der Wahrscheinlichkeits­ schätzer 210C mit nur einer Tabelle ausgeführt sein, da eine Anzahl Eingänge gleich der Summe der Anzahl von Gleichheits-Kontexten und Rest-Kontexten ist.
Sobald der Kontext und das Ergebnis an den Wahrscheinlichkeits­ schätzer 210C abgegeben sind, wird ein Wahrscheinlichkeits­ schätzwert-Resultat (outcome) an einen Bitgenerator 216C über­ tragen. In einem binären Entropie-Codierer zeigt das Ergebnis an, ob das Resultat das wahrscheinlichste Symbol war oder nicht. Deswegen ist der Wahrscheinlichkeitsschätzwert immer 0,5 oder größer. In einem arithmetischen Mehrsymbol-Codierer kann das Ergebnis ein Schätzwert der Wahrscheinlichkeit aller Symbo­ le in einer Liste sein, die vor dem Resultat kommt.
Nachdem der Wahrscheinlichkeitsschätzwert und das -ergebnis an den Bitgenerator 216C abgegeben sind, wird das Ergebnis von dem Wahrscheinlichkeitsschätzer 210C benutzt, um den Wahrschein­ lichkeitsschätzwert zu aktualisieren. Im Anschluß an dieses Ak­ tualisieren ist der Wahrscheinlichkeitsschätzwert bereit für das nächste Auftreten dieses Kontextfach-Identifizierers (ID), er basiert jedoch nur auf Information, die in der Decodierzeit verfügbar ist (d. h. er ist zufällig).
Der Bitgenerator 216C verwendet das Ergebnis, daß durch den Wahrscheinlichkeitsschätzer 210C vorgegeben ist, und den Wahr­ scheinlichkeitsschätzwert dieses Resultats, um den internen Zu­ stand oder interne Zustände des Bitgenerators 216C zu ändern und unkomprimierte Bits, wenn sie geeignet sind, abzugeben. In einigen Ausführungsformen ist der Bitgenerator 216C ein Bitge­ nerator, wie beispielsweise der B-Codierer der in dem US-Patent 5,272,478 dargestellt ist. In einigen Ausführungsformen ist der Entropie-Codierer 208C ein Entropie-Copierer, wie beispielswei­ se der C-Codierer, der von IBM, New York, entwickelt worden ist, oder der ABS-Codierer von Ricoh (US-Patentanmeldung S.N. 08/016,035, eingereicht am 10.02.1993).
Fig. 3 zeigt einen Dekompressor 122, der vielfach dieselben Ele­ mente wie der Kompressor 108 aufweist. Um die gleichen Elemente des Dekompressors 122 und des Kompressors 108 zu unterscheiden, sind die Elemente des Dekompressors 122 mit derselben Zahl, je­ doch mit einem Suffix "D", statt des Suffix "C" versehen, so beispielsweise Kontext-Modelleinheit 202D, Vollbildspeicher 204D, Kontext-Modell-Steuereinheit 206D und Entropie-Decodierer 208D, welcher einen Wahrscheinlichkeitsschätzer 210D, Kontext-Tabellen 212D, 214D, einen Bitgenerator 216D und einen Teilbit-Speicher 218D aufweist. Verschiedene Unterschiede zwischen dem Dekompressor 122 und dem Kompressor 108 sind jedoch erwähnens­ wert.
In dem Dekompressor 122 wird der Kontext-Fach-Identifizierer (ID) mit Hilfe von Pixel aus dem Vollbildspeicher bestimmt, und die Kontext-Modelleinheit 202D sieht den so bestimmten Kontext- Fach-Identifizierer an dem Wahrscheinlichkeitsschätzer 210D vor. Der Schätzer 210D bestimmt eine Wahrscheinlichkeit für das wahrscheinlichste Symbol im Falle eines binären Entropie-Codie­ rers und eine Wahrscheinlichkeitsverteilung im Falle eines arithmetischen Mehrsymbol-Codierers. Der Bitgenerator 216D be­ nutzt dann diese Wahrscheinlichkeitsinformation zusammen mit dem Teilbit-Speicher 218D und dem komprimierten Bitstrom, um das Ergebnis festzulegen. Dieses Ergebnis wird dann an den Wahrscheinlichkeitsschätzer 210 rückgekoppelt und ist üblicher­ weise dasselbe Ergebnis, das von dem Wahrscheinlichkeitsschät­ zer 210C aus den Kompressionsprozeß durchlaufen hat. Der Bitge­ nerator aktualisiert dann einen Bruchteil-Speicher 218D.
Der Wahrscheinlichkeitsschätzer verwendet das Ergebnis, um das Resultat festzulegen. Dies ist üblicherweise, wenn codiert wird, dasselbe Ergebnis, das ursprünglich von der Kontext-Mo­ delleinheit 202C bestimmt worden ist. Der Wahrscheinlichkeits­ schätzer läßt dieses Resultat zu der Kontext-Modelleinheit 202D durch und aktualisiert dann den Kontext-Speicher 212D oder 214D, der den Kontext-Fach-Identifizierer (ID) anpaßt. Die Kon­ text-Modelleinheit benutzt das Ergebnis, um den Vollbildspei­ cher zu aktualisieren, um Originalpixel zu erzeugen und um den nächsten Kontext-Fach-Identifizierer zu bestimmen. Die Kontext- Modell-Steuereinheit 206D arbeitet auf die gleiche Weise wie die Kontext-Modell-Steuereinheit 206C.
Bei Systemen, die sowohl komprimieren als auch dekomprimieren, kommen einige Elemente, wie die Kontext-Modell-Steuereinheit und der Vollbild-Speicher, nur einmal vor und dienen sowohl dem Kompressor als auch dem Dekompressor.
Fig. 4 ist ein detailliertes Blockdiagramm der Kontext-Mo­ delleinheit 202C. Die Einzelheiten der Kontext-Modelleinheit 202D sind die gleichen, obwohl sie in den Zeichnungen nicht dargestellt sind. Wie in Fig. 4 dargestellt, weist die Kontext-Modelleinheit 202C ein Pixelregister 402 zum Halten des aktuel­ len Pixels, eine Steuerlogik 404C zum Durchführen des in Fig. 6 dargestellten Vorcodier-Prozesses, ein Bitebenen-(BP-)Register 406, um anzuzeigen, welches Bit des aktuellen Pixels gerade verarbeitet wird, wenn Bitebenen gesondert verarbeitet werden, ein Cursorposition-(CP-)Register 408 zum Halten der Position des aktuellen Pixels, einen Vergleicher 410 zum Erzeugen von Gleichheits-Signalen, ein volles Kontext-Register 412, zwei Kontext-Masken RMASK und SMASK und einen Aktualisierpuffer 414.
Die Verbindungen mit der Kontext-Modelleinheit 202C sind fol­ gende. Das Pixelregister 402 hat einen Eingang für das aktuelle Pixel und einen Takteingang für den Pixeltakt PCLK. Das Pixel­ register 402 gibt das aktuelle Pixel an die Steuerlogik 404C, den Vergleicher 410 und den Aktualisierpuffer 414 ab. Die Steu­ erlogik 404C hat einen Takteingang für PCLK sowie Eingänge für das aktuelle Pixel und das Resultat der Prüfung X==T (was unten noch erläutert wird). Die Steuerlogik 404C hat Ausgänge für einen Bitebenen-Indikator, (der an dem BP-Register 406 vorgese­ hen ist) eine Aktualisiertakt (UCLK) zum Takten des Aktuali­ sierpuffers 414, einen Modusselektor zum Auswählen einer Maske RMASK bzw. SMASK und einen Ausgang für einen Resultatwert. Die Maske RMASK ist aktiv in einem Restmodus, während die Maske SMAK aktiv ist in einem Gleichheitsmodus. Die aktive Maske wird verwendet, um das volle Kontext-Register 412 abzudecken, um einen aktuellen Kontext zu bilden. Das von der Steuerlogik 404C abgegebene Resultat ist das von der Kontext-Modelleinheit 202C abgegebene Resultat.
Der Aktualisiertakt taktet den Aktualisierpuffer 414, um den Vollbildpuffer 204C zu aktualisieren, nachdem der Kontext für das aktuelle Pixel erhalten ist. Natürlich kann, wenn der Voll­ bildpuffer 204C genug Raum hat, um das aktuelle Pixel ohne Überschreiben irgendwelcher Pixel zu halten, welche den Kontext für das aktuelle Pixel bilden, UCLK durch PCLK ersetzt werden.
Das BP-Register 406, der Vergleicher 410, der Vollbildpuffer 204C und das CP-Register 408 schaffen jeweils Bit oder Pixel um das volle Kontext-Register 412 zu füllen. Die Inhalte des Re­ gisters 412 werden durch die durch den Modus angezeigte Maske abgedeckt, und der maskierte Kontext wird als der Kontextfach-Iden­ tifizierer ausgegeben, der von der Kontext-Modelleinheit 202C abgegeben worden ist, wie im einzelnen anhand von Fig. 5 nachstehend erläutert wird. RMASK und SMASK haben Eingänge, da­ mit unterschiedliche Masken aus der Kontext-Modell-Steuerein­ heit 206C geladen werden können.
Die Arbeitsweise der Kontext-Modelleinheit 202C während eines Pixeltakt-(PCLK)Zyklus wird nunmehr beschrieben. Zuerst wird das aktuelle Pixel in das Pixelregister 402 gelesen. Das CP-Re­ giter 408 "adressiert" den Bildspeicher 204C, um die Kontext-Pixel für das aktuelle Pixel zu erhalten. Ein Kontext-Modell ist beispielsweise eines, bei welchem das Pixel auf der linken Seite des aktuellen Pixels den Kontext bildet. In diesem Fall würde das Pixel auf der linken Seite aus dem Bildpuffer 204C ausgelesen, wobei das CP-Register 408 anzeigt, wo das aktuelle Pixel ist, und wo folglich das "Pixel auf der linken Seite" zu finden ist. Einige der Kontext-Pixel werden von dem Vergleicher 410 mit einem anderen und mit dem aktuellen Pixel verglichen. Wie in Fig. 4 dargestellt, wird das aktuelle Pixel (das mit "X" bezeichnet ist) mit dem Pixel in dem unmittelbar vorherigen Vollbild verglichen, welches dieselbe Pixel-Position belegt, wie das aktuelle Pixel in dem aktuellen Bild (welches mit "T" bezeichnet ist). Das Ergebnis dieses Vergleichs wird an die Steuerlogik 404C abgegeben. Die Ergebnisse der anderen Verglei­ che, indem beispielsweise das Pixel auf der linken Seite mit entsprechenden Pixel aus dem vorherigen Vollbild verglichen wird, werden an dem vollen Kontext-Register 412 vorgesehen.
Fig. 5 zeigt eine mögliche Anordnung eines vollen Kontext-Regi­ sters 412 und der Kontext-Masken (welche in dem entsprechenden Maßstab in Fig. 5 nicht dargestellt sind, da sie in Fig. 4 vor­ handen sind; trotzdem ist die Übereinstimmung von Bits in dem Register und in Masken durch die Spezifizierung und die Figuren ganz offensichtlich gegeben). Kontext-Pixel sind Pixel bezüg­ lich des aktuellen Pixels und folglich sind sie für jedes Pixel verschieden. In Fig. 5 ist das aktuelle Pixel mit "X" bezeich­ net; das Pixel auf der linken Seite von X ist mit "H", das Pi­ xel unmittelbar über X in derselben vertikalen Spalte ist mit "V" und das Pixel diagonal oben links von X ist mit "D" be­ zeichnet. Pixel, welche nahe bei X, aber weiter weg als H, V, D sind, sind bezeichnet mit H1, H2, H3, V1, V2, D1, D2, usw. Da­ mit das aktuelle Pixel decodierbar ist, werden Pixel auf der rechten Seite und darunter für einen Kontext nicht verwendet, da wie oben aufgezeigt, das Bild nacheinander von oben nach un­ ten und von links nach rechts komprimiert und in derselben Rei­ henfolge dekomprimiert wird.
Die Kontext-Pixel können aus mehr als einem Vollbild entnommen werden. Diese Mehrfach-Vollbilder sind als das aktuelle Voll­ bild (C), das unmittelbar vorherige Vollbild (P), das unmittel­ bar ankommende Vollbild (N), das auf N folgende Vollbild (2N), usw. dargestellt. Das volle Kontext-Register 412 ist mit 46 Bits mit einem möglichen Einschluß in dem Kontext-Modell darge­ stellt. In der Praxis beeinflussen nicht alle 46 Bits den Kon­ text, da die daraus resultierende Anzahl an Kontext-Fächern (2ˆ46) in der Praxis zu groß ist. Tabelle 1 zeigt mehrere Gleichheits-Kontext-Modelle für ein Beispiel zusammen mit den Werten für SMASK. Natürlich könnten in Abhängigkeit von der Im­ plementierung mehr oder weniger als 46 Bits verwendet werden und/oder könnten verschiedene Kontext-Modelle verwendet werden.
Tabelle 1
Gleichheits-Kontext-Modelle
In Tabelle 1 wird der Kürze halber die Funktion S(a) verwendet, um das Resultat einer Gleichheitsprüfung, a==ap anzuzeigen, wo­ bei der Index p verwendet wird, um ein Bit-Pixel von einem vor­ herigen Bild anzuzeigen. T wird anstelle von Xp verwendet. Mo­ dell 0 benutzt nicht ein Gleichheits-Codieren, sondern ist für einen Vergleich vorgesehen. Modell 1 benutzt ein Gleichheits-Codieren, verwendet aber keine gesonderten Gleichheits-Kon­ texte.
Fig. 6 ist ein Ablaufdiagramm des Prozesses, auf den die Kon­ text-Modelleinheit 202 folgt, um das aktuelle Pixel in ein Re­ sultat und einen Kontext für dieses Resultat umzusetzen. Zuerst bestimmt die Kontext-Modell-Steuereinheit 206C das Gleich­ heits-Kontext-Modell und das Rest-Kontext-Modell und lädt SMASK und RMASK (Schritt C1). Sobald diese gesetzt sind, wiederholt die Steuerlogik 404C zyklisch den Pixeltakt, um das aktuelle Pixel in das Pixel-Register 402 zu laden (Schritt C2). In einigen Ausführungsformen ändert die Steuerlogik 404C adaptiv die Ma­ sken in einer kausalen Weise.
Als nächstes wird der Gleichheits-Kontext festgelegt (Schritt C3), um das volle Kontext-Register 412 zu aktualisieren und mit der Maske SMASK abzudecken. Wenn ein dynamisches (adaptives) Kontext-Modelieren verwendet wird, wird das dynamische Kontext-Modell zuerst festgelegt (Schritt C3′). Wenn das aktuelle Pixel X ist, ist die Gleichheitsprüfung X==T gegeben (Schritt C4), und wenn das Prüfungsresultat richtig ist, wird ein Resultat­ wert von 1 zusammen mit dem Gleichheits-Kontext des aktuellen Pixels abgegeben (C5). Bei der Gleichheitsprüfung wird geprüft, ob das aktuelle Pixel dasselbe ist wie das entsprechende Pixel aus dem vorherigen Vollbild (d. h. ob die Farbe des aktuellen Pixels sich gegenüber dem vorherigen Vollbild ändert). Diese Prüfung wird dargestellt durch X==T und wird vom Vergleicher 410 durchgeführt, welcher T aus dem Bildpuffer 204C und X aus dem Pixel-Register 204 liest. Wenn X==T richtig ist, braucht keine weitere Information über das aktuelle Pixel abgegeben zu werden.
Wenn X==T nicht richtig ist, wird das negative Prüfergebnis (0) als das Ergebnis bezüglich des Gleichheits-Kontextes des ak­ tuellen Pixels abgegeben (C6). Da nur ein Gleichheitsergebnis pro Pixel abgegeben wird, ist die Bitebenen-Position nicht Teil des Gleichheits-Kontextes. Wenn die Gleichheitsüberprüfung an­ zeigt, daß X und T verschieden sind, muß die Kontext-Modellein­ heit 202C nunmehr eine Anzeige des Wertes von X abgeben. Dies wird im vorliegenden Fall als Restcodieren bezeichnet. Die Gleichheitsprüfung kann über eine genaue zeitliche Gleichheit eines Pixels und eines Pixels aus einem älteren Vollbild hinaus verallgemeinert werden; wenn jedoch die Prüfung X==T ist, kann der Gleichheitsmodus als ein zeitlicher Modus und der Restmodus als ein nicht-zeitlicher Modus bezeichnet werden.
Bei dem Restmodus wird das Original-Pixel zu einer bestimmten Zeit als ein Bit abgegeben. Hierzu initialisiert die Steuerlo­ gik 404C das BP-Register 406, um dadurch auf die erste Bitebene zu zielen (C7), bestimmt den Rest-Kontext für das aktuelle Pi­ xel und die aktuelle Bitebene (C8) und gibt b(BP, X) als das Resultat ab (C9), wobei b(0) eine Funktion ist, welche das Bit von X extrahiert, welches in der Bitebene BP liegt. Da die Rest-Kontexte durch "0" und die Gleichheits-Kontexte durch "1" eingeleitet werden, kann der Entropie-Codierer, welcher die Kontext- und die Resultat-Ausgänge erhält, zwischen Ergebnissen einer Gleichheitsprüfung und von Rest-Resultaten unterscheiden.
Nach dem Abgeben des Restbits wird die Bitebene mit der Anzahl Bitebenen (NBP) verglichen, um zu prüfen, ob es die letzte Bit­ ebene ist (C10). Wenn Mehrbit-Ebenen übrigbleiben, wird das BP-Register inkrementiert (C11), und der Prozeß wird beim Schritt C8 wiederholt. Andernfalls geht der Prozeß auf den Schritt C12 über, bei welchem eine Prüfung durchgeführt wird, um zu prüfen, ob irgendwelche weiteren Bits übrigbleiben, um kompensiert zu werden. Dieser Schritt folgt auch auf den Schritt C5. Wenn mehr zu verarbeitende Bits übrig bleiben wiederholt die Steuerlogik 404C zyklisch UCLK, um den Bildpuffer 204C zu aktualisieren (C13) und wiederholt dann zyklisch PCLK, um das nächste Pixel zu erhalten (C14). Wenn keine Pixel mehr übrig bleiben, endet der Prozeß (C15).
Während vorstehend anhand von Fig. 6 die Restresultat-Ausgangs­ signale für einen binären Codierer beschrieben worden sind, sind die Einstellungen, um einen M-stufigen Codierer anzupas­ sen, ganz normal, wie Eliminieren des BP-Registers und Abgeben nur eines Restergebnisses pro Pixel wenn X nicht gleich T ist (es braucht nichts ausgegeben zu werden, wenn X und T gleich sind).
Beispiele unterschiedlicher Rest-Kontext-Modelle sind in Tabel­ le 2 dargestellt. Bei dem Bitebenen-Codieren werden drei Kon­ text-Bits verwendet, um die aktuelle Bitebene anzuzeigen, wäh­ rend ein simuliertes M-stufiges Codieren 255 Kontexte verwen­ det, die auf Bits aus älteren Bitebenen basieren (wie von Zandi beschrieben ist). Der Einfachheit halber ist in Tabelle 1 die Anzahl Kontexte, die für ein M-Stufen-Codieren erforderlich sind, auf 256 abgerundet.
Tabelle 2
Rest-Kontext-Modelle
In Tabelle 2 verweist BP auf den aktuellen Bitebenen-Wert, die Funktion b0 verweist auf die Werte der Bits aus der Bitebene BP für die Parameter-Pixel. Die Wert RMASK für jedes Rest-Kontext-Modell können ohne weiteres auf dieselbe Weise wie die SMASK-Werte in Tabelle 1 bestimmt werden.
Fig. 7 ist ein Flußdiagramm des Dekompressionsprozesses, welches anhand von Fig. 3 sowie von Fig. 7 beschrieben wird. Der Prozeß wird von dem Dekompressor 122 durchgeführt, welcher die Kon­ text-Modelleinheit 202D aufweist, welche der Kontext-Modellein­ heit 202C entspricht, außer daß die Kontext-Modelleinheit 202D ein Ergebnis eingibt und ein Ergebnis ausgibt, so daß folglich eine unterschiedliche Steuerlogik erforderlich ist.
Der Dekompressionsprozeß beginnt, wenn ein Gleichheits-Kontext-Modell und ein Rest-Kontext-Modell festgestellt werden (Schritt D1). Selbstverständlich werden, wenn das Gleichheits- und das Rest-Kontext-Modell überall in einem Anwendungsfall festgelegt sind, die Kontext-Steuereinheiten nicht mehr benötigt. Wenn mehrere Kontext-Modelle verwendet werden, können sie entweder deterministisch auf älteren Daten basieren oder sie können in die komprimierte Datei 220 zusammen mit den komprimierten Daten eingebracht werden. Die Kontext-Modell-Information wird an der komprimierten Datei 220 entlang des Wegs 222C (siehe Fig. 2) während des Kompressionsprozesses vorgesehen und wird entlang des Wegs 222D in dem Dekompressionsprozeß extrahiert.
Die Kontext-Modelleinheit 202D bestimmt den aktuellen Gleich­ heits-Kontext (Schritt D2) und gibt dies an den Wahrscheinlich­ keitsschätzer 210D ab (Schritt D3). Wenn eine dynamische Kon­ text-Modell-Rekonfiguration zum Komprimieren verwendet wurde, wird das Kontext-Modell während der Dekompression im Schritt D2 (Schritt D1′) rekonfiguriert. Mit der Kontext-Information kann dann der Wahrscheinlichkeitsschätzer 210D eine Wahrscheinlich­ keit für diesen Kontext an den Bitgenerator 216D abgeben, wel­ cher die Information benutzt, um festzulegen, wieviele Bits aus dem komprimierten Bild auszulesen sind, und benutzt diese In­ formation, um ein passendes Ergebnis aus den gelesenen Bits und der Wahrscheinlichkeit festzulegen. Der Bitgenerator 216D gibt den Ergebniswert an den Wahrscheinlichkeitsschätzer 210D ab, welcher das Ergebnis in ein Resultat umsetzt, dessen Wahr­ scheinlichkeitstabelle für den aktuellen Kontext aktualisiert und das Ergebnis an die Kontext-Modell-Einheit 202D abgibt (Schritt D4). Wegen der Ordnung in dem komprimierten Bild ist bekannt, daß der erste Kontext ein Gleichheitskontext ist.
Die Kontext-Modelleinheit 202D prüft das Resultat (D4). Wenn es 1 ist, wodurch angezeigt wird, daß das aktuelle Pixel X dassel­ be war wie T, liest die Kontext-Modelleinheit 202D T aus dem Bildspeicher 204D und gibt T als das aktuelle Pixel ab (D6). Die Kontext-Modelleinheit 202D überprüft dann mehrere Pixel (D7). Wenn es mehrere Pixel gibt, aktualisiert der Bildspeicher 204D mit dem Pixel X (D8), sonst endet der Prozeß (D9).
Wenn das Gleichheitsergebnis beim Schritt D5 0 ist, wodurch an­ gezeigt wird, daß das aktuelle Pixel verschieden von T ist, geht die Kontext-Modelleinheit 202D auf einen Restmodus, wo es erwartet, daß Restresultate auf das negative Gleichheitsergeb­ nis folgen. In dem Restmodus wird die erste Bitebene verarbei­ tet, indem die aktuelle Bitebene (BP) gleich der ersten Bit­ ebene gesetzt wird (D10), der Rest-Kontext für die aktuelle Bitebene (D11) bestimmt wird, dieser Kontext an den Wahrschein­ lichkeitsschätzer 210D (D12) abgegeben wird, ein Resultat von dem Schätzer 210D erhalten wird (D13) und dieses Resultat als b (BPX) abgegeben wird, d. h. das BP-te Bit von X. Die Bits können gesondert abgegeben oder gepuffert werden, bis der ganze Pixel­ wert verfügbar ist.
Nachdem das Resultat für eine Bitebene erhalten ist, wird, wenn die Steuerlogik feststeht, daß es mehr Bitebenen gibt (D15), BP inkrementiert (D16) und der Prozeß geht auf den Schritt D11 zu­ rück. Andernfalls wird das aktuelle Pixel abgegeben (D17), und die Steuerlogik geht auf den Schritt D7 über, um mehr Pixel zu überprüfen.
Somit werden mit Hilfe des dargestellten und beschriebenen Sy­ stems Daten komprimiert, bevor sie einen begrenzten Kanal durchlaufen und werden von dem jeweiligen Nutzer dekomprimiert. Das vorstehend wiedergegebene Beispiel bezog sich auf ein Kom­ primieren von Daten, welche eine Folge von Vollbildern sind, wobei jedes Vollbild ein digitalisiertes Bild ist. Der Kompres­ sor verwendet einen Entropie-Codierer, um die Vollbilder zu komprimieren und eine Kontext-Modelleinheit, Kontexte für das aktuelle Pixel und das aktuelle Bit des aktuellen Pixels in Ab­ hängigkeit von einem Modus. Wenn das aktuelle Pixel dasselbe ist, wie das Pixel, das für einen Gleichheits-Kontext verwendet worden ist, wird das Gleichheitsergebnis in einem Gleichheits­ modus an dem Entropie-Codierer angezeigt, und es braucht keine andere Information über das aktuelle Pixel vorgesehen zu wer­ den, außer einem Gleichheits-Kontext für dieses Ergebnis, wenn mehr als ein Gleichheits-Kontext verwendet wird.
In dem vorstehenden Beispiel ist das Pixel, das für die Gleich­ heitsprüfung verwendet worden ist, ein Pixel aus einem älteren Vollbild an derselben Position wie das aktuelle Pixel; folglich ist die Gleichheit eine zeitliche Gleichheit. Wenn die Gleich­ heitsprüfung negativ ist, d. h. die Pixel verschieden sind, schaltet der Kompressor auf einen Restmodus, wobei das aktuelle Pixel auf den Entropie-Codierer zusammen mit einem oder mehre­ ren Rest-Kontexten und Restergebnissen vorgesehen ist.
Der Dekompressor dekomprimiert die Vollbilder durch Festlegen des Kontextes für das aktuelle Pixel und dann durch Decodieren des aktuellen Pixels für den Bitstrom. Eine Kontext-Modell-Steu­ ereinheit ist vorgesehen, um ein Ändern von Kontext-Model­ len zuzulassen. Wenn das Kontext-Modell geändert wird, dann kann das spezielle verwendete Kontext-Modell als Teil der kom­ primierten Daten enthalten sein.
Mehrere Prüfungen wurden vorgenommen, um den relativen Nutzef­ fekt bei Verwenden einer Gleichheits-Information in dem Kom­ pressionsprozeß festzustellen. Für diese Prüfung wurden drei palettierte (palettized) Vollbild-Folgen verwendet. Die erste Folge ist eine Folge, welche zeigt, daß sich Text über einem festen Untergrund bewegt und verwendet nur drei verschiedene Farben. Die zweite Folge zeigt eine strahlgezeichnete Sphäre, die sich vor einem stationären Schwarz-Weiß-Raster bewegt und benutzt eine große Anzahl verschiedener Farben. Die dritte Fol­ ge ist ein digitalisierter Clip einer bewegten Aufnahme (anima­ ted movie), bei welcher 252 verschiedene Farben verwendet sind, und welche mehrere Szenenänderungen in dem Clip hat. Das digi­ talisierte Clip enthält Rauschen, das in dem Fassungsprozeß eingebracht worden ist. Tabelle 3 zeigt die Kompressibilität dieser drei Folgen, wobei ein Gleichheits-Codieren benutzt und nicht benutzt wird. Die benutzte Gleichheitsprüfung ist die zeitliche Prüfung.
Tabelle 3
Kompressionsergebnisse
Wie Tabelle 3 zeigt, kann ein Gleichheits-Codieren die Kompres­ sion von vielen Folgen verbessern. Obwohl die Aufnahme-Folge in einem Fall nicht sehr kompressibel ist, wird eine typische hoch-qualitative Folge, die entweder bei geringem Rauschen er­ zeugt oder digitalisiert worden ist, erwartet, wobei sich Er­ gebnisse zwischen demjenigen der strahl-geführten Folge und der erreichten Bildfolge ergeben.
Weitere Prüfungen wurden an diesen drei Folgen vorgenommen, um die besten Gleichheits-Kontext-Modelle und Rest-Modelle zu be­ stimmen. Die Ergebnisse für Tabelle 3 wurden mit Hilfe des Gleichheits-Kontext-Modells und des Rest-Kontext-Modells erhal­ ten, welches den besten Nutzeffekt gebracht hat (Gleichheits- Kontext-Modelle sind für das Nicht-Gleichheits-Codieren bedeu­ tungslos). Für die Textfolge arbeiteten Kontexte, die auf dem vorherigen Vollbild-Pixel T und dem M-Stufen-Codieren der ak­ tuellen Pixel basieren (Restmodell 3 aus Tabelle 3) am besten sowohl bei dem Gleichheits- als auch bei dem Nicht-Gleichheits-Co­ dieren. Bei dem Gleichheits-Codieren arbeitete das Gleich­ heits-Modell 6 (Tabelle 1) am besten von allen Gleichheits-Mo­ dellen unabhängig von dem verwendeten Rest-Codieren und eine Kombination dieser beiden arbeitete überall am besten.
Sowohl für die strahlgeführte Folge als auch die Aufnahme folge arbeitete der Gleichheits-Kontext 10 am besten bei dem Gleich­ heits-Codieren; jedoch in jedem Fall arbeitete das weniger kom­ plexe Gleichheits-Modell, Modell 6, mit nur 2ˆ8 Kontexten ge­ nauso gut wie das komplexere Gleichheits-Modell, Modell 10, mit 2ˆ17 Kontexten.
Die Resultate der Prüfungen sind in Tabellen 4 bis 6 darge­ stellt, in welchen die Bitraten für eine Kompression der drei Folgen (Bitrate von 8,0 für nicht-komprimierte Bilder) mit Hil­ fe jeweils der Gleichheits-Kontext-Modelle und der Rest-Kon­ text-Modelle tabellarisch aufgeführt sind. Das beste Ergebnis für jedes Gleichheitsmodell ist durch einen Stern ("*") ange­ zeigt, und das beste Ergebnis für jedes Rest-Modell ist durch ein Kreuz ("!") angezeigt. Wie in Tabelle 1 wiedergegeben, ist das Gleichheits-Modell 0 ein nicht-zeitlicher Fall. Obwohl es nicht getestet und geprüft worden ist, sollte das Verwenden von Paletten-Umordnen so wie bei Zandi beschrieben, die Kompression für das Bitebenen-Rest-Codieren (Modelle 1 und 4) verbessern.
Tabelle 4
Bitraten für Textfolge (Einheiten: Bits/Pixel)
Rest-Codiermodell
Tabelle 5
Bitraten für strahl-geführte Folge (Einheit:Bit/Pixel)
Rest-Codier-Modell
Tabelle 6
Bitraten für Aufnahmefolge (Einheiten:Bit/Pixel)
Rest-Codier-Modell

Claims (23)

1. Verfahren zum Komprimieren eines eingegebenen Symbols einer Anzahl von eingegebenen Symbolen, welches Verfahren die Schrit­ te aufweist:
Vergleichen des Original-Pixels mit einem Gleichheits-Pixel, wobei das Gleichheits-Pixel ein Pixel relativ zu dem Original-Pixel entsprechend einer Gleichheits-Beziehung ist, wobei der Schritt Vergleichen auf ein Gleichheits-Resultat hinausläuft;
Bestimmen eines Gleichheits-Kontext für das eingegebene Symbol, wobei der Gleichheits-Kontext zumindest von einem Kontext-Pixel oder Teilen davon bezüglich des Original-Pixels gemäß einem Gleichheits-Kontext-Modell abhängt;
Abgeben des Gleichheits-Resultats und des Gleichheits-Kontext an einen Entropie-Codierer;
wenn das Gleichheits-Resultat negativ ist Anzeigen einer Nicht-Äquivalenz des Original-Pixels und des Gleichheits-Pixels und Durchführen der Schritte:
Bestimmen eines Rest-Kontext für das eingegeben Symbol, wobei der Rest-Kontext zumindest durch Kontext-Pixel oder Teilen da­ von bezüglich des Original-Pixels entsprechend einem Rest-Kon­ text-Modell festgelegt ist, und
Abgeben einer Darstellung des Original-Pixels als ein Rester­ gebnis und den Rest-Kontext an einen Entropie-Codierer, und Codieren des Gleichheits-Ergebnisses und des Rest-Ergebnisses, wenn es abgegeben worden ist, mit Hilfe des Entropie-Codierers.
2. Verfahren nach Anspruch 1, bei welchem das Original-Pixel ein Pixel in einer Folge von Vollbildern ist, und bei welchem die Gleichheits-Beziehung so ist, daß das Gleichheits-Pixel das Pixel an einer Stelle in einem vorherigen Vollbild ist, das einer Pixelstelle des Original-Pixels in einem augenblicklichen Vollbild entspricht.
3. Verfahren nach Anspruch 1, bei welchem das Original-Pixel ein Pixel in einer Folge von Vollbildern ist, und bei welchem die Gleichheits-Beziehung derart ist, daß das Gleichheits-Pixel ein vorher übertragenes Pixel ist, welches zumindest annähernd einen Punkt in einer Szene darstellt, welcher Punkt auch durch das Original-Pixel dargestellt wird.
4. Verfahren nach Anspruch 3, bei welchem ferner eine Bewe­ gungs-Bewertung zwischen Vollbildern durchgeführt wird, um das vorher übertragene Pixel zu lokalisieren, das als das Gleich­ heits-Pixel verwendet worden ist.
5. Verfahren nach Anspruch 1, bei welchem das Gleichheits-Kon­ text-Modell so ist, daß der Gleichheits-Kontext ferner von den Gleichheits-Resultaten für eine Gleichheits-Prüfung abhängt, die an Kontext-Pixel durchgeführt worden ist.
6. Verfahren nach Anspruch 1, bei welchem der Schritt, Abgeben einer Darstellung des Original-Pixels, einen Schritt aufweist, Abgeben eines binären Restresultats und eines Bitebenen-Rest-Kontext für jede Bitebene des Restresultats.
7. Verfahren nach Anspruch 1, bei welchem der Entropie-Codierer ein binärer Codierer ist.
8. Verfahren nach Anspruch 1, bei welchem der Entropie-Codierer ein M-Stufen-Codierer ist.
9. Verfahren nach Anspruch 1, bei welchem das eingegebene Sym­ bol von dem Ausgangswert des Entropie-Codierers dekomprimiert wird.
10. Verfahren nach Anspruch 1, bei welchem der Gleichheits-Kon­ text von einer Gleichheit eines Symbolindex des eingegebenen Symbols und eines Symbolindex des Gleichheits-Pixel abhängt.
11. Kontext-Modelleinheit für ein Kompressions- oder Dekompres­ sions-System, bei welchem Pixel eingegeben und Resultatwerte und Kontextwerte an einen Entropie-Codierer abgegeben werden, welche Kontext-Modelleinheit aufweist
ein Eingangspixel-Register, das vorgesehen ist, um ein Pixel in jeder einer Anzahl Taktzyklen einschließlich einem aktuellen Taktzyklus zu erhalten, bei welchem das Eingangspixel-Register einen aktuellen Pixelwert des durch einen Pixeltakt getakteten Eingangspixel-Registers speichert;
einen Vollbild-Speicher, der mit dem Eingangspixel-Register verbunden ist, um den vorherigen Inhalt des Eingangspixel-Regi­ sters einschließlich eines Abgabesignals für Kontext-Daten zu speichern;
einen Vergleicher, welcher mit dem Vollbild-Speicher und dem Eingangspixel-Register verbunden ist, welcher Vergleicher einen ersten Teil der Kontext-Daten mit dem aktuellen Pixelwert ver­ gleicht und zumindest eine Gleichheitsanzeige abgibt, die eine primäre Gleichheitsanzeige einschließt;
ein Kontext-Register, das zumindest mit dem Vergleicher verbun­ den ist und das zumindest die primäre Gleichheits-Anzeige und einen zweiten Teil der Kontext-Daten speichert;
eine Resultat-Ausgabeeinrichtung, die mit dem Eingangspixel-Re­ gister verbunden ist, um einen Resultatwert abzugeben, der auf dem aktuellen Pixelwert basiert;
eine Gleichheits-Maske, die mit dem Kontext-Register verbunden ist, welche Bits aus einem Inhalt des Kontext-Registers ab­ deckt, um einen Gleichheits-Kontextwert zu bilden;
eine Restmaske, die mit dem Kontext-Register verbunden ist, welche Bits aus dem Inhalt des Kontext-Registers abdeckt, um einen Restkontextwert zu bilden, und
eine Steuerlogik, um den Gleichheits-Kontextwert als den Kon­ textwert abzugeben, welcher dem Resultatwert entspricht, wel­ cher von der Resultat-Abgabeeinrichtung abgegeben worden ist, wenn die primäre Gleichheitsanzeige eine Gleichheit anzeigt, und um den Restkontextwert als den Kontextwert abzugeben, wel­ cher dem Resultatwert entspricht, der von der Resultat-Abgabe­ einrichtung abgegeben worden ist, wenn die primäre Gleichheits-Anzeige nicht eine Gleichheit anzeigt.
12. Kontext-Modelleinheit nach Anspruch 11, bei welcher die Steuerlogik eine Taktlogik aufweist, welche zusätzliche Rest­ kontextwerte und entsprechende Resultatwerte abgibt.
13. Kontext-Modelleinheit nach Anspruch 11, bei welcher der er­ ste Teil der Kontext-Daten, der zweite Teil der Kontext-Daten, der Inhalt der Gleichheits-Masken und der Inhalt der Restmaske entsprechend einem Kontext-Modell festgelegt werden.
14. Kontext-Modelleinheit nach Anspruch 13, bei welchem das Kontext-Modell vorherbestimmt ist.
15. Kontext-Modelleinheit nach Anspruch 13, bei welcher das Kontext-Modell dynamisch entsprechend Werten von in die Kon­ text-Modelleinheit eingegebenen Pixel adaptiert ist.
16. Kontext-Modelleinheit nach Anspruch 11, bei welcher der er­ ste Teil der Kontext-Daten einen Pixelwert eines Pixels an­ zeigt, das von einem vorherigen Vollbild und von einer Position in dem vorherigen Vollbild erhalten worden ist, die einer Posi­ tion des aktuellen Pixels entspricht.
17. Kontext-Modelleinheit nach Anspruch 11, bei welcher der Ausgangswert des Vergleichers Gleichheits-Anzeigen für mehr als den aktuellen Pixelwert und einen vorherigen Pixelwert enthält.
18. Kontext-Modelleinheit nach Anspruch 11, bei welcher der Re­ sultatwert ein binärer Wert ist und zusätzliche Resultatwerte abgegeben werden, wenn die primäre Gleichheitsanzeige Nicht-Gleichheit anzeigt.
19. Kontext-Modelleinheit nach Anspruch 11, bei welcher Pixel­ werte Indizes in einer Farbtabelle sind.
20. Kontext-Modelleinheit nach Anspruch 11, bei welcher der er­ ste Teil der Kontext-Daten und der zweite Teil der Kontext-Da­ ten sich überlappen.
21. Kontext-Modelleinheit nach Anspruch 11, welche ein Cursor-Zeiger-Register aufweist, welches durch den Pixeltakt getaktet und mit einem Ausgang mit dem Vollbild-Speicher verbunden ist, wobei das Cursor-Zeiger-Register eine Adresse in dem Vollbild-Speicher schafft und der Vollbild-Speicher durch Abgeben der Kontext-Daten antwortet, die einem adressierten Kontext ent­ sprechen.
22. Kontext-Modelleinheit nach Anspruch 21, bei welcher das Voll-Kontext-Register auch einen Bitebenen-Indikator und Inhal­ te des Cursor-Zeiger-Registers speichert.
23. Kontext-Modelleinheit nach Anspruch 11, welche eine Voll­ bild-Puffer-Aktualisiereinrichtung aufweist.
DE19544761A 1994-12-01 1995-11-30 Verfahren zum Komprimieren eines eingegebenen Symbols Expired - Fee Related DE19544761C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/347,789 US5689589A (en) 1994-12-01 1994-12-01 Data compression for palettized video images

Publications (2)

Publication Number Publication Date
DE19544761A1 true DE19544761A1 (de) 1996-06-05
DE19544761C2 DE19544761C2 (de) 1998-07-23

Family

ID=23365280

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19544761A Expired - Fee Related DE19544761C2 (de) 1994-12-01 1995-11-30 Verfahren zum Komprimieren eines eingegebenen Symbols

Country Status (4)

Country Link
US (1) US5689589A (de)
JP (1) JP3171776B2 (de)
DE (1) DE19544761C2 (de)
TW (1) TW307086B (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848194A (en) * 1994-12-16 1998-12-08 Canon Kabushiki Kaisha Coding/decoding apparatus and coding/decoding method
US5659631A (en) * 1995-02-21 1997-08-19 Ricoh Company, Ltd. Data compression for indexed color image data
US6072909A (en) * 1995-12-13 2000-06-06 Fuji Xerox Co., Ltd. Image coding devise and image decoding devise using with image disassembly
US6188795B1 (en) * 1996-06-13 2001-02-13 Dublin City University Data compression
JPH1023271A (ja) * 1996-07-05 1998-01-23 Canon Inc 画像形成方法とその装置
TWI249760B (en) * 1996-07-31 2006-02-21 Canon Kk Remote maintenance system
KR100422935B1 (ko) * 1996-07-31 2004-03-12 마츠시타 덴끼 산교 가부시키가이샤 화상 부호화장치, 화상 복호화장치, 화상 부호화방법, 화상 복호화방법 및 매체
JPH1093827A (ja) * 1996-09-11 1998-04-10 Canon Inc 画像処理方法とその装置
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
US6757436B2 (en) * 1997-06-19 2004-06-29 Electroncs For Imaging, Inc. Methods and apparatus for data compression based on modeling schemes
US7359439B1 (en) * 1998-10-08 2008-04-15 Pixel Tools Corporation Encoding a still image into compressed video
US6535925B1 (en) * 1999-11-09 2003-03-18 Telefonaktiebolaget L M Ericsson (Publ) Packet header compression using division remainders
US6522783B1 (en) 1999-11-23 2003-02-18 Sharp Laboratories Of America, Inc. Re-indexing for efficient compression of palettized images
US6950445B2 (en) * 2000-11-16 2005-09-27 Telefonaktiebolaget Lm Ericsson (Publ) Communication system and method for shared context compression
US20030177255A1 (en) * 2002-03-13 2003-09-18 Yun David C. Encoding and decoding system for transmitting streaming video data to wireless computing devices
KR100477643B1 (ko) * 2002-04-10 2005-03-23 삼성전자주식회사 응답 속도 개선 장치 및 방법
US9577667B2 (en) 2002-04-23 2017-02-21 Ntt Docomo, Inc. System and method for arithmetic encoding and decoding
DK2933756T3 (da) * 2002-04-23 2020-06-02 Ntt Docomo Inc System og fremgangsmåde til aritmetisk kodning og afkodning
US6850175B1 (en) * 2003-09-18 2005-02-01 Ntt Docomo, Inc. Method and apparatus for arithmetic coding
US6906647B2 (en) 2002-09-20 2005-06-14 Ntt Docomo, Inc. Method and apparatus for arithmetic coding, including probability estimation state table creation
JP4134659B2 (ja) * 2002-09-30 2008-08-20 ブラザー工業株式会社 画像形成装置及び画像形成方法
US7400277B2 (en) * 2004-04-06 2008-07-15 International Business Machines Corporation Method and system for the compression of probability tables
KR100609697B1 (ko) * 2004-06-02 2006-08-08 한국전자통신연구원 이득 고정형 광증폭기를 이용한 광 선로 감시 시스템
JP4618676B2 (ja) 2005-04-28 2011-01-26 株式会社リコー 構造化文書符号の転送方法、画像処理システム、サーバ装置、プログラム及び情報記録媒体
US7319417B2 (en) * 2005-11-18 2008-01-15 Intel Corporation Compression using multiple Markov chain modeling
KR100750165B1 (ko) * 2006-02-22 2007-08-17 삼성전자주식회사 압축률 향상을 위해 개선된 컨텍스트 모델 선택을 사용하는cabac 부호화 방법 및 장치, 그리고 cabac복호화 방법 및 장치
US8111259B1 (en) 2006-07-06 2012-02-07 Marvell International Ltd. Image processing apparatus having context memory controller
US7865025B2 (en) * 2006-08-01 2011-01-04 Ching-Wei Yeh Data processing method in embedded block coding with optimized truncation module
US8526062B2 (en) * 2008-04-14 2013-09-03 Xerox Corporation Color lookup table compression

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4206280A1 (de) * 1991-12-14 1993-07-01 Samsung Electronics Co Ltd Verfahren zum aufzeigen eines bewegungsvektors
DE19506164A1 (de) * 1994-02-23 1995-08-31 Ricoh Kk Verfahren zum Komprimieren eingegebener Symbole in Codeworte

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4717956A (en) * 1985-08-20 1988-01-05 North Carolina State University Image-sequence compression using a motion-compensation technique
US5313204A (en) * 1991-04-25 1994-05-17 Mitsubishi Denki Kabushiki Kaisha Encoding and decoding devices with predictor and detector
US5442458A (en) * 1991-12-18 1995-08-15 Eastman Kodak Company Method and associated apparatus for encoding bitplanes for improved coding efficiency
US5422724A (en) * 1992-05-20 1995-06-06 Applied Materials, Inc. Multiple-scan method for wafer particle analysis
US5298992A (en) * 1992-10-08 1994-03-29 International Business Machines Corporation System and method for frame-differencing based video compression/decompression with forward and reverse playback capability
US5550540A (en) * 1992-11-12 1996-08-27 Internatioal Business Machines Corporation Distributed coding and prediction by use of contexts
US5414423A (en) * 1993-04-29 1995-05-09 International Business Machines Corporation Stabilization of probability estimates by conditioning on prior decisions of a given context

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4206280A1 (de) * 1991-12-14 1993-07-01 Samsung Electronics Co Ltd Verfahren zum aufzeigen eines bewegungsvektors
DE19506164A1 (de) * 1994-02-23 1995-08-31 Ricoh Kk Verfahren zum Komprimieren eingegebener Symbole in Codeworte

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Proceedings of the IEEE, Vol. 69, No. 3, March 1981, S. 349-389 *

Also Published As

Publication number Publication date
JP3171776B2 (ja) 2001-06-04
TW307086B (de) 1997-06-01
DE19544761C2 (de) 1998-07-23
JPH08228342A (ja) 1996-09-03
US5689589A (en) 1997-11-18

Similar Documents

Publication Publication Date Title
DE19544761C2 (de) Verfahren zum Komprimieren eines eingegebenen Symbols
DE19506164C2 (de) Verfahren zum Komprimieren eingegebener Symbole in Codeworte
DE3789857T2 (de) System zur Komprimierung von Bildern mit mehreren Graustufen.
DE69029725T2 (de) Hybrides hierarchisches verfahren auf basis von resten, zur speicherung und anzeige von hochauflösenden digitalen bildern in einer mehrzweckumgebung
DE19635251C2 (de) Verfahren und Apparat zur Komprimierung beliebiger Daten
DE19606178C2 (de) Verfahren zum Komprimieren einer Anordnung von Pixelwerten und zum Dekomprimieren einer Anordnung von Pixelwerten aus einem komprimierten Datensatz
DE69634962T2 (de) Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes
DE3851468T2 (de) Kodierungsverfahren von Bildsignalen.
US6192155B1 (en) Systems and methods for reducing boundary artifacts in hybrid compression
DE69922453T2 (de) Bildverarbeitungsgerät, Bildverarbeitungsverfahren und Herstellungsmedia
DE69020564T2 (de) Verfahren und vorrichtung zur behandlung von numerischen daten.
DE69814988T2 (de) Datenzusammenfügevorrichtung
DE19739266B4 (de) Verfahren und Vorrichtung zum Kodieren binärer Formen
DE69122595T2 (de) Aufzeichnungs- und Abspielgerät
US7113643B2 (en) Method and device for forming a derived digital signal from a compressed digital signal
DE69031638T2 (de) System zum Übertragen von Bildinformation
DE68927477T2 (de) Leistungsfähige Kodierung/Dekodierung in der Zerlegung und im Wiederaufbau eines Hochauflösungsbildes unter Verwendung seiner Kopie geringerer Auflösung
DE19536401A1 (de) Verfahren und Einrichtung zum Codieren und Decodieren von Daten
DE68926676T2 (de) Verfahren und gerät zur statistischen kodierung von digitalen daten
DE69728757T2 (de) Verfahren und Vorrichtung zum Kodieren eines Objektes unter Verwendung einer Konturbewegungsschätztechnik
CN110113617B (zh) 图像压缩与解压缩的方法、装置、电子设备及存储介质
DE2340230A1 (de) Verfahren und vorrichtung zur vorhersage des signalpegelwertes eines nachrichtenelementes
DE69724208T2 (de) Verfahren und Vorrichtung zur Leistungsverbesserung einer Vektorquantisierung
WO1995024770A1 (de) Verfahren zum übertragen von bildern
KR19980081853A (ko) 그래픽 이미지 압축 및 복원 방법

Legal Events

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

Ipc: H04N 7/26

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee