DE19544761A1 - Verfahren zum Komprimieren eines eingegebenen Symbols - Google Patents
Verfahren zum Komprimieren eines eingegebenen SymbolsInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/507—Methods 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.
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.
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.
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.
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.
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.
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.
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)
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)
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)
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 |
-
1994
- 1994-12-01 US US08/347,789 patent/US5689589A/en not_active Expired - Lifetime
-
1995
- 1995-11-28 TW TW084112674A patent/TW307086B/zh not_active IP Right Cessation
- 1995-11-30 DE DE19544761A patent/DE19544761C2/de not_active Expired - Fee Related
- 1995-12-01 JP JP31392695A patent/JP3171776B2/ja not_active Expired - Fee Related
Patent Citations (2)
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)
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 |