DE4429017A1 - Verfahren zum Codieren von Daten in einem Datenkompressionssystem, Kompressions/Dekompressionsverfahren sowie Dekompressionssystem zum Dekomprimieren von komprimierten Daten - Google Patents
Verfahren zum Codieren von Daten in einem Datenkompressionssystem, Kompressions/Dekompressionsverfahren sowie Dekompressionssystem zum Dekomprimieren von komprimierten DatenInfo
- Publication number
- DE4429017A1 DE4429017A1 DE4429017A DE4429017A DE4429017A1 DE 4429017 A1 DE4429017 A1 DE 4429017A1 DE 4429017 A DE4429017 A DE 4429017A DE 4429017 A DE4429017 A DE 4429017A DE 4429017 A1 DE4429017 A1 DE 4429017A1
- Authority
- DE
- Germany
- Prior art keywords
- tokens
- data
- buffer
- decoder
- predetermined number
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
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)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Image Processing (AREA)
Description
Die Erfindung betrifft ein Verfahren zum Codieren von in eine
Anzahl Einheiten unterteilten Daten in einem Datenkompres
sionssystem, ein Kompressions/Dekompressionsverfahren sowie
ein Dekompressionssystem zum Dekomprimieren von komprimierten
Daten nach dem Oberbegriff des Anspruchs 19 oder 20. Darüber
hinaus betrifft die Erfindung ein Verfahren zum Reduzieren der
notwendigen Größe eines Pufferspeichers nach dem Oberbegriff
des Anspruchs 7 sowie eine Schaltung zum Begrenzen der Anzahl
Token bzw. Belegungsbits. Insbesondere betrifft die Erfindung
das Gebiet Kompressions/Dekompressionssysteme mit Speicher
einrichtungen zum Puffern von Daten zwischen zwei gesonderten
Decodierprozessen.
Datenkompressionsschemen sind heute in Computersystemen weit
verbreitet. Diese Datenkompressionsschemen bestehen aus mit
einander verbundenen Stufen, um eine Kompression oder eine De
kompression zu schaffen. Die einzelnen Stufen können kaskaden
artig ausgeführte Anordnungen von Datenkompressionsschemen
enthalten. Beispielsweise werden gemäß der JPEG-(Joint Photo
graphic Experts Group)Standbild-Kompressionsnorm die Daten mit
Hilfe einer zweidimensionalen diskreten Kosinus-Transformation
transformiert, und dann werden die Koeffizienten quantisiert.
Hierauf folgt eine Differenz-Puls-Code-Modulation (DPCM) der
Gleichspannungs-Koeffizienten und ein Lauflängencodieren der
Wechselspannungs-Koeffizienten. Schließlich werden die Ergeb
nisse nach den Huffman-Verfahren codiert. Da der Dekompres
sionsteil eines Datenkompressionssystems das Inverse des Kom
pressionsteils ist, sind Decodierer in aufeinanderfolgenden
Stufen kaskadenartig angeordnet.
Derartige Datenkompressionstechniken sind mit Verlusten behaf
tet. In einer verlustbehafteten Kompressionstechnik wird ein
Teil der eingegebenen Daten während einer Kompression elimi
niert oder quantisiert, so daß die komprimierten Daten nicht in
einem exakten "Duplikat" der eingegebenen Daten dekomprimiert
werden können. Eine verlustbehaftete Bildkompression kommt oft
bei Mehrfachstufen vor. Ein Beispiel eines solchen Systems ist
in Fig. 1 dargestellt. Manchmal laufen die kaskadenartig ange
ordneten Stufen bei verschiedenen Raten ab.
Für Echtzeitsysteme mit kaskadenartig angeordneten asynchronen
Stufen wird das Puffern der Daten ein größeres Auslegungspro
blem. In Fig. 1 erhält ein verlustbehafteter Kompressor 101
einen Dateneingang 110 mit einer Rate R. In einer Ausführungs
form kann der Kompressor 101 ein Transformationscode-(TC-)Kom
pressor sein, welcher Koeffizienten entsprechend den eingegebe
nen Daten bei einer eingestellten Rate von R erzeugt. Der Aus
gang des Kompressor 101 ist mit dem Eingang eines Lauflängen-
Codierers (RLE) 102 verbunden, welcher den Ausgang von dem Kom
pressor 101 mit einer Rate R erhält und komprimiert. Ein Lauf
längen-Codierer 102 ist ein veränderlicher Längencodierer und
erzeugt Token bzw. Belegungsbits (wobei nachfolgend der Ein
fachheit halber nur noch von Token gesprochen ist) mit
einer durchschnittlichen, aber nicht konstanten Rate von
R-G entsprechend dessen Eingang. Die Token, die von
dem Lauflängen-Codierer 102 abgegeben worden sind, sind mit dem
Eingang eines Codierers 103 verbunden, welcher die empfangenen
Token in Code-Worte codiert. Diese Code-Worte werden mit einer
mittleren Rate von R-G erzeugt. Die Code-Worte werden dann
gespeichert oder auf einem Kanal übertragen.
Eine Dekompression eines komprimierten Datenstroms mit Hilfe
des Systems in Fig. 1 ist der Kompression sehr ähnlich, mit der
Ausnahme, daß die Stufen umgekehrt werden. Der Decodierer 106
hält den komprimierten Datenstrom und erzeugt Token mit einer
mittleren, aber nicht konstanten Rate R-G. Die Token werden
von einem Lauflängen-Codierer 105 empfangen, welcher Koeffi
zienten mit einer Rate R erzeugt. Die Koeffizienten werden von
einem verlustbehafteten Dekompressor 104 empfangen, welcher
einen rekonstruierten Dateneingang 111 erzeugt.
Wie beschrieben, laufen die Stufen in dem verlustbehafteten
Bildkompressionssystem mit verschiedenen Raten ab. Die Raten
der Stufen sind R und R-G, wobei gilt: R < G 0. Dies ist
hauptsächlich dem veränderten Längencodieren (d. h. dem Lauflän
gen-Codierer/Decodierer) zuzuschreiben. Wenn in diesem Beispiel
der Codierer und der Decodierer mit einer Rate R laufen, gibt
es keine Schwierigkeit, da die synchron betrieben werden kön
nen. Andererseits ist ein Puffer notwendig, um die Rate des Co
dierers und Decodierers zu mitteln.
Wenn beim Stand der Technik eine langsamere Stufe nicht in der
Lage ist, zumindest mit einer Burstrate R betrieben zu werden,
kann ein FIFO-Puffer verwendet werden. Ein FIFO-Puffer ist eine
bekannte asynchrone Lösung, um ihn zwischen Stufen zwischenzu
schalten, welche mit unterschiedlichen Raten arbeiten. Mit Hil
fe des FIFO-Puffers kann eine vorhergehende schnellere Stufe
mit ihrer maximalen Rate betrieben werden, bis der FIFO-Puffer
voll ist. Der FIFO-Puffer mittelt im wesentlichen die Raten von
Ausgangscodes.
Die Größe des notwendigen FIFO-Puffers hängt davon ab, wie lang
ein Mitteln stattfindet. Mit anderen Worten, die Größe des FI
FO-Puffers bestimmt das Mittelungsfenster. Wenn die FIFO-Größe
die Größe des Bildes ist, dann kann sich der FIFO-Puffer an al
le Burstraten anpassen. Je größer jedoch die Größe des Puffers
ist, um so höher werden die Kosten. Darüber hinaus bewirkt eine
größer bemessene Größe eine verminderte Rückkehr infolge der
minimalen Anzahl von Situationen, welche der erhöhten Größe des
Puffers angepaßt sind.
Ebenso sind oft Codierer und Decodierer in anwenderspezifischen
integrierten Schaltungen (ASICs) implementiert. Wenn ein Puffer
erforderlich ist, kann der Puffer auf demselben integrierten
Schaltungschip wie der Decodierer enthalten sein. Die Größe des
Speichers steht in direkter Beziehung zu der Gesamtgröße des
Chips. Je größer die Größe des Puffers ist, umso größer ist die
Größe der integrierten Schaltung. Größere integrierte Schaltun
gen kosten üblicherweise mehr. Um die Chipgröße kleiner zu hal
ten, und dadurch die Gesamtkosten des Chips zu reduzieren,
sollte der Puffer auf die kleinstmögliche Größe verringert wer
den. Daher sollte auch die Größe des Pufferspeichers reduziert
werden, die erforderlich ist, um die Kosten des Systems wirksam
zu reduzieren.
Die Erfindung schafft daher ein Verfahren und eine Einrichtung
zum Reduzieren der Größe eines Puffers in einem verlustbehafte
ten Datenkompressionssystem. Gemäß der Erfindung wird die Größe
des Puffers reduziert, welcher zwischen Mehrfachstufen bei der
Dekompression verwendet wird.
Es werden daher ein Verfahren und eine Einrichtung zum Reduzie
ren der Größe eines Puffers zwischen zwei kaskadenartig ange
ordneten Decodierstufen beschrieben. Die Erfindung weist ferner
ein Verfahren und eine Einrichtung zum Codieren von Daten in
Mehrfach-Datenblöcken auf. Die Erfindung weist auch ein Verfah
ren und eine Einrichtung zum Codieren der Mehrfachdatenblöcke
in Mehrfachsymbole auf. Dieses Codieren enthält ein Verfahren
und eine Einrichtung, um Mehrfachsymbole auf eine vorherbe
stimmte Anzahl von Symbolen zu begrenzen. Durch Begrenzen der
Anzahl an Symbolen, welche für jeden Block codiert werden, wird
der Puffer nach der Decodierstufe begrenzt, so daß die Größe
des Pufferspeichers um dekomprimierte Daten zu puffern, welche
von der Decodierstufe abgegeben worden sind, reduziert ist.
Nachfolgend wird die Erfindung anhand von bevorzugten Ausfüh
rungsformen unter Bezugnahme auf die anliegenden Zeichnungen im
einzelnen erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm eines verlustbehafteten Bildkom
pressionssystems;
Fig. 2 ein Blockdiagramm einer Ausführungsform eines Daten
kompressionssystems gemäß der Erfindung;
Fig. 3 ein Ablaufdiagramm eines Kompressions/Dekompres
sionsprozesses der Erfindung;
Fig. 4 ein Ablaufdiagramm eines Prozesses gemäß der Erfin
dung, und
Fig. 5 ein Schaltungsdiagramm der Blockend-Schaltung gemäß
der Erfindung.
Nunmehr werden ein Verfahren und eine Einrichtung zum Kompri
mieren und Dekomprimieren von Daten beschrieben. In der folgen
den detaillierten Beschreibung der Erfindung werden zahlreiche
spezifische Details festgelegt, wie spezifische Taktgeschwin
digkeiten, Bitraten, Puffergrößen etc., um ein genaues Ver
ständnis der Erfindung zu schaffen. Die Erfindung ist jedoch
nicht auf diese spezifischen Details in der Praxis beschränkt.
Fig. 2 ist ein Blockdiagramm einer Ausführungsform eines Kom
pressions/Dekompressionssystems gemäß der Erfindung. Das in
Fig. 2 dargestellte System ist ein verlustbehaftetes Kompres
sionssystem. Das System arbeitet sehr ähnlich wie das System in
Fig. 1; eine spezifische Implementierung jeder der Blöcke in
Fig. 1 ist in Fig. 2 enthalten. In Fig. 2 werden Echtzeit-Bildda
ten von einem Transformations-Kompressor 202 aufgenommen, wel
cher Koeffizienten als Ausgangssignale erzeugt, welche von
einem Lauflängen-Codierer 203 aufgenommen werden. Der Lauflän
gen-Codierer 203 erzeugt Token, welche von einer vorzeitigen
Blockende-Schaltung 211 empfangen werden. Die Schaltung 211
gibt Token ab, welche von einem FIFO 212 aufgenommen werden.
Der FIFO 212 ist freigestellt und für das System nicht erfor
derlich, um die Erfindung anzuwenden. Ein Huffman-Codierer 204
ist vorgesehen, um Token von dem FIFO 212 aufzunehmen und co
diert die Token, um komprimierte Daten zu erzeugen. Die kompri
mierten Daten werden in einen Kanal 205 abgegeben. Der Kanal
205 kann einen Speicher oder eine Speichereinheit oder in ande
ren Ausführungsformen ein Übertragungsmedium aufweisen.
Von dem Kanal 205 aus werden die komprimierten Daten von einem
Huffman-Decodierer 206 aufgenommen, welcher die komprimierten
Daten in Token decodiert. Die von dem Huffman-Decodierer 206
abgegebenen Token werden in einem FIFO 207 gespeichert. Bei der
Erfindung kann der FIFO 207 eine Speichereinheit oder ein Puf
fer sein. Die in dem FIFO 207 gespeicherten Token werden von
einem Lauflängen-Decodierer 208 aufgenommen, welcher die Token
in Koeffizienten decodiert, welche von einem Transformations-
Dekompressor 209 aufgenommen werden. Die Ausgangswerte des
Transformations-Dekompressors 209 sind Echtzeit-Bilddaten.
Der Transformations-Kompressor 202, der Lauflängen- Codierer
203, die vorzeitige Blockende-Schaltung 211, der (freigestell
te) FIFO 212 und der Huffman-Codierer 204 bilden den Codierteil
des erfindungsgemäßen Systems. Der Huffman-Decodierer 206, der
FIFO 207, der Lauflängen-Decodierer 208 und der Transforma
tions-Dekompressor 209 stellen den Decodierteil des erfindungs
gemäßen Systems dar.
In der Erfindung sind er Huffman-Decodierer 206 und FIFO 207 in
einer einzigen anwenderspezifischen integrierten Schaltung
(ASIC) integriert. Da FIFO 207 auf einem Chip untergebracht
ist, beeinflußt dessen Größe unmittelbar die Gesamtgröße des
ASIC. Bei der Erfindung ist die FIFO-Tiefe begrenzt, welche für
das Datenkompressionssystem erforderlich ist. In einer Ausfüh
rungsform ist die Decodierer-FIFO-Tiefe von FIFO 207 auf 16 8-
Bit-Token und irgendwelche zusätzlichen Bits begrenzt, welche
dem Token zugeordnet sind, oder bei einer entsprechenden Norm
(z. B. JPEG) erforderlich sind. Auf diese Weise wird die Größe
des ASIC genauso begrenzt.
Fig. 3 ist ein Ablaufdiagramm der Arbeitsweise des Systems der
Fig. 2. Echtzeit-Bilddaten werden von dem Transformations-Kom
pressor 102 in der Raster-Abtastreihenfolge (Verarbeitungsblock
301) erhalten. In einer Ausführungsform komprimiert der Kom
pressor 202 die Bilddaten mit Hilfe der JPEG-Norm (Verarbei
tungsblock 302). Der Kompressor 202 segmentiert anfangs das
Bild in (8 × 8) Pixel-Blöcke. Dann sieht der Kompressor 202
eine Transformation jedes Blockes vor, um Koeffizienten zu er
zeugen. Bei der Erfindung führt der Kompressor 302 eine diskre
te Kosinus-Transformation (DCT) durch. Bei der Erfindung werden
dieses Transformations-Koeffizienten dann nicht-gleichförmig
quantisiert, um 64 quantisierte Koeffizienten zu erzeugen, wel
che dann in einer Zick-Zack-Reihenfolge im Lauflängen-Codierer
203 angeboten werden.
Der Lauflängen-Codierer 203 führt eine Lauflängen-Codierung in
der Zick-Zack-Koeffizientenfolge durch, um Token zu erzeugen
(Verarbeitungsblock 303). Der Lauflängen-Codierer 203 codiert
eine Reihe von Null-Koeffizienten in einem Token, welche eine
Kategorie und einen Zählwert haben, welcher die Anzahl an Null-
Token anzeigt. In JPEG gibt es drei Typen von Token. Für jeden
Block haben die Gleichspannungs-Koeffizienten ein Gleichspan
nungs-Token zur Folge. Irgendein Nicht-Null-Wechselspannungs
koeffizient führt zu einem Wechselspannungs-Token. Wechselspan
nungs-Token bestehen aus zwei Teilen. Ein Teil eines Wechsel
spannungs-Tokens drückt die Nicht-Null-Wechselspannungskoeffi
zientengröße aus. Ein zweiter Teil Wechselspannungs-Token
drückt einen Anzahl von benachbarten Nullwert-Koeffizienten
aus, welche dem Nicht-Null-Wechselspannungskoeffizienten in der
Zick-Zack-Reihenfolge vorausgingen. Ein Blockende-(EOB-)Token
wird abgegeben, nachdem die letzten Nicht-Null-Koeffizienten in
dem Block codiert worden sind (wenn nicht der allerletzte Koef
fizient nicht-null ist).
Die Token werden von einer vorzeitigen Blockende-Schaltung 211
empfangen, welche die Anzahl an Token für einen ganz bestimmten
Block auf eine vorherbestimmte Anzahl begrenzt. (Verarbeitungs
block 304). Dies wird in einer Ausführungsform dadurch er
reicht, daß irgendein Token über der vorherbestimmten Anzahl
abgebrochen wird. Die Token können dann im FIFO 212 gespeichert
werden (Verarbeitungsblock 305). Der FIFO 212 wird verwendet,
damit der Lauflängen-Codierer 203 und der Huffman-Codierer 204
synchron arbeiten, wenn es zwischen den beiden eine Raten-Fehl
anpassung gibt. Wenn die Daten so codiert werden, wie sie ver
fügbar werden, so daß der Codierteil des Systems einer Pipeline
ähnelt, ist der FIFO 212 nicht erforderlich.
Die Token werden von dem Huffman-Codierer 204 (von dem FIFO 212
aus oder von der vorzeitigen Blockende-Schaltung 211, wenn der
FIFO 212 in dem System nicht enthalten ist) aufgenommen, wel
cher die Token in Code-Worte codiert (Verarbeitungsblock 306).
Die von dem Huffman-Codierer 204 abgegebenen Code-Worte stellen
die komprimierten Daten dar und werden an einen Kanal 205 abge
geben oder in einem Speicher gespeichert (Verarbeitungsblock
307).
Dekompression ist die Umkehr von Kompression. Die komprimierten
Daten von dem Kanal 205 werden von einem Huffman-Decodierer 206
aufgenommen, welcher Token erzeugt (Verarbeitungsblock 308).
Der FIFO 207 speichert die Token, bis sie ein Lauflängen-Deco
dierer 208 decodieren kann (Verarbietungsblock 309). Der Deco
dierer 208 decodiert die Token von dem FIFO 207, um Koeffizien
ten zu erzeugen (Verarbeitungsblock 310). Diese Koeffizienten
werden von dem Transformations-Dekompressor 209 aufgenommen,
welcher sie dann in Bilddaten dekomprimiert (Verarbeitungsblock
311).
Bei der Erfindung sind die FIFO-Speicher 212 und 207 freige
stellt und können enthalten sein, um eine asynchrone Lösung
beim Zwischenschalten zwischen Stufen zu schaffen, welche mit
verschiedenen Raten arbeiten. Beispielsweise würde der FIFO 212
enthalten sein, wenn der Lauflängen-Codierer 203 und der Huff
man-Codierer 204 mit verschiedenen Raten arbeiten, während der
FIFO 207 enthalten sein würde, wenn der Huffman-Decodierer 206
und der Lauflängen-Decodierer 208 mit verschiedenen Raten ar
beiten.
Bei der Erfindung ist die Größe des FIFO 207 begrenzt, indem
die Anzahl an Code-Worten begrenzt wird, welche der Huffman-De
codierer 206 zu behandeln hat. Bei der Erfindung wird die An
zahl an Code-Worten, welche der Huffman-Decodierer 206 behan
delt, durch die Anzahl an Code-Worten begrenzt, welche von dem
Huffman-Codierer 204 erzeugt worden sind. Die Anzahl an Code-
Worten, welche von dem Huffman-Codierer 204 erzeugt worden
sind, ist in direkte Beziehung zu der Anzahl an Token gebracht,
die er behandelt. Um die Anzahl an Token zu begrenzen, welche
aufgenommen werden, um dem Huffman-Codierer 204 codiert zu wer
den, werden gemäß der Erfindung Blöcke beschnitten, welche mehr
als eine vorherbestimmte Anzahl von Token haben. Blöcke mit
mehr als einer vorherbestimmten Anzahl an Token werden durch
Erzwingen eines Blockende-Token beschnitten, wenn die Anzahl an
Token, welche von dem Codierer 203 erzeugt worden sind, einen
vom Benutzer gewählten Schwellenwert erreicht hat. In einer
Ausführungsform ist die vorherbestimmte Anzahl an Token 32 To
ken pro Block. Da nur Nicht-Null-Koeffizienten Token erzeugen,
werden durch das Begrenzen der Anzahl an Nicht-Null-Gleichspan
nungskoeffizienten in jedem Block die FIFO-Anforderungen redu
ziert. Folglich wird durch Erzwingen eines vorzeitigen Blocken
de-Token der früher als die normale Blockende-Bedingung er
folgt, die Anzahl an Token pro Block bei dem Huffman-Codierer
204 unmittelbar begrenzt.
Die Erfindung könnte verwendet werden, um die Größe des FIFO-
Speichers 212 in dem Codierteil des Systems zu reduzieren, wenn
es eine Raten-Fehlanpassung zwischen dem Lauflängen-Codierer
203 und dem Huffman-Codierer 204 gibt. In diesem Fall wird der
Teil der Koeffizienten in einem Block, welche größer als eine
vorherbestimmte Anzahl sind, beschnitten, so daß die Anzahl an
Token, die erzeugt werden können, auf ein vorherbestimmtes Ma
ximum begrenzt ist. Auf diese Weise wird die Anzahl an Token
pro Block direkt begrenzt.
Die maximale Anzahl an Token pro Block, welche der Huffman-Co
dierer oder -Decodierer verarbeiten muß, kann entsprechend den
Verhältnissen zwischen den verschiedenen Betriebsraten ausge
legt werden. Wenn beispielsweise der verlustbehaftete Kompres
sor mit einer Rate/Frequenz von 20 MHz läuft und der Huffman-Co
dierer mit einer 10 MHz-Token-Rate läuft, beträgt die maximale
Durchschnittsrate (R-G), welche der Huffman-Codierer behan
deln kann:
wobei die Komponenten in diesem Beispiel Koeffizienten sind.
Folglich ist in diesem Beispiel die Anzahl an Token/Block auf
32 begrenzt. Dieses System gleich auch einen Decodierer aus,
welcher mit der halben Rate des verlustbehafteten Kompressors
verläuft, ob es nun den Codierer gibt oder nicht.
Zu beachten ist, daß die Erfindung nicht auf Kompressions- und
Dekompressionssysteme beschränkt ist, welche auf Blöcken basie
ren. Statt dessen kann die Erfindung bei anderen Schemen/Verfah
ren verwendet werden, in welchen die Daten in vordefinierte
Einheiten aufgeteilt sind. Auch ist die Erfindung nicht auf ein
Benutzen von Koeffizienten und Token beschränkt und kann daher
bei Systemen verwendet werden, in welchen die Einheiten eine
gewisse Anzahl von Komponenten enthalten.
Ein vorzeitiger Blockende-Prozeß der Erfindung ist in Fig. 4 dar
gestellt. Bei der Erfindung beginnt der Prozeß durch Initiali
sieren des Token-Zählens bei null (Verarbeitungsblock 400). In
einer Ausführungsform kommt dies am Anfang jedes Blockes vor.
Token werden als ein Ergebnis des Codierprozesses abgegeben.
(Verarbeitungsblock 401). Als nächstes werden bei der Erfindung
die Anzahl Token gezählt, wenn sie abgegeben werden (Verarbei
tungsblock 402). Durch eine Kontrolle wird festgestellt, ob al
le Token abgenommen worden sind (Verarbeitungsblock 403). Wenn
dem so ist, endet die Verarbeitung dieses Blockes. Wenn dem
nicht so ist, wird die Verarbeitung im Prozeßblock 404 fortge
setzt.
Bei einer Überprüfung wird bestimmt, ob die Anzahl an abgegebe
nen Token den benutzer-spezifischen Grenzwert erreicht hat
(Verarbeitungsblock 404). Bei einer Ausführungsform liegt der
benutzer-spezifische Grenzwert bei 32 Token. Wenn dieser Grenz
wert für einen vorgegebenen Block erreicht ist, wird die Verar
beitung beim Verarbeitungsblock 405 fortgesetzt, wo ein Block
ende (EOB-)Token abgegeben wird, und die verbleibenden Koeffi
zienten in diesem Block werden verworfen. Wenn der Grenzwert
nicht erreicht worden ist, dann wird das Token noch abgegeben,
um von dem Huffman-Decodierer codiert zu werden, und die Verar
beitung wird beim Verarbeitungsblock 401 fortgesetzt.
Der Ausgang des Systems ist vollständig JPEG-kompatibel. Ferner
wird bei der Erfindung eine verlustbehaftete Stufe vor dem ver
lustfreien Codierer hinzugefügt. Durch das Hinzufügen der ver
lustbehafteten Stufe in dem Codierer ist gemäß der Erfindung
ein Ausfallen in der verlustbehafteten Stufe in dem Decodierer
infolge einer Raten-Fehlanpassung vermieden.
Es sollte beachtet werden, daß ein Verwerfen der restlichen
Koeffizienten analog einem Quantisieren der Hochfrequenz-Koef
fizienten schwerwiegender in diesen Blöcken ist. Zu beachten
ist, daß nur auf Blöcke mit vielen Hochfrequenz-Koeffizienten
eingewirkt wird. Ein Eliminieren der Hochfrequenz-Koeffizienten
hat einen kaum visuell feststellbaren Nachteil bei den rekon
struierten Bildern zur Folge.
Fig. 5 ist ein Blockdiagramm einer Ausführungsform der Schal
tungsanordnung die erforderlich ist, um ein vorzeitiges Block
ende durchzuführen. In Fig. 5 weist die vorzeitige Blockende-
Schaltung 500 einen Zähler 501, ein Register 502, einen Ver
gleicher 503, einen Multiplexer 504 und ein UND-Glied 505 auf.
An den Freigabeeingang des Zählers 501 wird das TOKEN-CLK-
Signal angelegt. An den Rücksetzeingang des Zählers 501 wird
das BLOCK-CLK-Signal angelegt. Der Ausgang des Zählers 501 ist
mit den A-Eingang des Vergleichers 503 verbunden. Der B-Eingang
des Vergleichers 503 ist mit dem Ausgang des Registers 502 ver
bunden. Der Eingang des Registers 502 weist 6 Daten-Bit Leitun
gen D0 bis D5 und ein Schreibfreigabe-(WEN)Signal auf. Der Aus
gang des Vergleichers 503 ist mit einem Eingang des UND-Glieds
505 verbunden. An den anderen Eingang des UND-Glieds 505 wird
das TOKEN-CK-Signal angelegt. Das Ausgangssignal des UND-Glieds
505 ist der Huffman-Taktimpuls HUFFMAN-ENC-CLK. Der Ausgang des
Vergleichers 503 ist auch mit dem Steuereingang des Multiple
xers (MUX) 504 verbunden. An einen Eingang von MUX 504 werden
die von dem Huffman-Decodierer 504 erzeugten Token angelegt.
An den anderen Eingang von MUX 504 wird das Blockende-Token an
gelegt (EOB-TOKEN). In einer Ausführungsform ist das EOB-TOKEN
fest verdrahtet. In anderen Ausführungsformen wird das EOB-TO
KEN programmiert. Der Ausgang von MUX 504 ist das mittels des
Huffman-Codierers zu codierende Token (HUFFMAN-ENC-TOKEN).
Der Zähler 501 zählt die Anzahl Token in jedem Block über das
TOKEN-CLK-Signal. Der Zähler 501 wird am Ende jedes Blockes
rückgesetzt. In einer Ausführungsform wird der Zähler 501 mit
Hilfe des BLOCK-CLK-Signals rückgesetzt, welches am Anfang
eines neuen Blocks eingeführt wird. Das Register 502 enthält
die maximale Anzahl von zulässigen Token. Der Wert wird in das
Register 502 eingeschrieben, wobei das WEN-Signal eingefügt
(aserting) wird. Wenn das WEN-Signal eingesetzt wird, werden
die Bits an den Daten-Eingängen D0 bis D5 gehalten und in dem
Register 502 gespeichert. Bei einer Ausführungsform ist ein Re
gister 502 ein 6 Bit-Zähler, so daß Zahlen von 0 bis 63 gespei
chert werden können.
Der Vergleicher 503 prüft den Wert des Zählers 501 gegenüber
dem Wert im Register 502. Solange dem Wert im Register 502 grö
ßer oder gleich dem Wert im Zähler 501 ist, ist der Ausgang des
Vergleichers 503 "1" (d. h. hoch). Der "1"-Ausgang bewirkt das
Auswählen der von dem MUX 504 abgegebenen Token, so daß ein
Huffman-codiertes Token abgegeben wird. Der binäre "1"-Ausgang
des Vergleichers 503 gibt das UND-Glied 505 frei, so daß, wenn
der Token-Takt hoch wird, ein Taktsignal wirksam von dem UND-
Glied 505 als das Huffman-codierte Taktsignal abgegeben wird.
Wenn der Wert im Zähler 501 größer oder gleich dem Wert im Re
gister 502 ist, ist das Ausgangssignal des Vergleichers 503
eine Null, wodurch angezeigt wird, daß es über dem Token-Grenz
wert liegt. In diesem Fall wird der Token-Taktausgang von dem
UND-Glied 505 gesperrt, indem einer der Eingänge des UND-Glieds
505 0 ist. Ebenso bewirkt "0"-Ausgang des Vergleichers 503, daß
der Nulleingang des MUX 504 gewählt wird, wodurch von dem MUX
504 das Blockende-(EOB-)Token abgegeben wird. Folglich wird,
solange der Wert im Register 502 größer als der Wert im Zähler
501 ist, ein Token erzeugt. Andernfalls wird das Blockende-To
ken abgegeben, und es werden keine weiteren Token erzeugt, bis
der Zähler 501 durch die wahre Blockende-Bedingung rückgesetzt
wird.
Die vorzeitige Blockende-Schaltung 500 kann gesperrt werden,
indem das Register 502 um eins weniger als die Anzahl Pixels in
dem Block initialisiert wird. In einer Ausführungsform, in wel
cher die Blöcke eine Größe von (8 × 8) haben, bewirkt ein Pla
zieren des Werts von 63 in dem Register 502, daß die vorzeitige
Blockende-Schaltung 500 gesperrt wird. Dies ist daraufzurück
zuführen, daß der Vergleicher immer "1" abgibt, bis der Token-
Zählstand 63 oder größer ist. Zu diesem Zeitpunkt wird dann das
Blockende automatisch irgendwie abgegeben. Daher wird niemals
ein erzwungenes Blockende-Token erzeugt.
Gemäß der Erfindung bleibt der Decodierer unverändert. Daher
ist, um die Erfindung durchzuführen, keine Änderung beim Deco
dieren der Erfindung erforderlich. Folglich können bereits exi
stierende Decoder-Chips und -Auslegungen ohne weiteres verwen
det werden, um den Decodierteil des Systems der Erfindung aus
zuführen.
Die festgestellte Bildqualität der Erfindung ist infolge des
vorzeitigen Blockende-Token-Systems nicht herabgesetzt. In
einem JPEG-System werden die Transformations-Koeffizienten
nicht-gleichförmig quantisiert. Im allgemeinen werden die Hoch
frequenz-Koeffizienten stärker quantisiert, da das visuelle
menschliche System weniger empfindlich ist bei hohen Raumfre
quenzen. Nur durch Beschneiden von Hochfrequenz-Koeffizienten
wird bei der Erfindung dieser Vorteil vorteilhaft ausgenutzt,
um ein Bild mit im wesentlichen derselben Qualität wie bei
einem Bild zu erzeugen, das ohne das vorzeitige Blockende gemäß
der Erfindung kemprimiert ist, soweit das visuelle menschliche
System dies überhaupt wahrnehmen kann. Ferner sind die Blöcke,
welche viele Nicht-Null-Wechselspannungskoeffizienten haben
(und daher einem Beschneiden durch ein vorzeitiges Blockende
unterzogen werden) visuell verrauscht. Das visuelle menschliche
System ist unempfindlich gegenüber einer Quantisierung von ver
rauschten Bildbereichen, so daß ein wahrgenommener Qualitäts
verlust im Bild gering ist. Folglich wird bei dem Verfahren und
bei der Einrichtung der Erfindung die Anzahl an Gleichspan
nungs-Token pro Block von dem Codierer aus direkt begrenzt. Auf
diese Weise kann ein Decodierer einer vorherbestimmten Größe
mit einer geringen Auswirkung auf die visuelle Qualität oder
die Bitrate des Systems bei verringerten Hardware-Kosten er
reicht werden.
Vorstehend ist somit ein Kompressions- und ein Dekompressions
system beschrieben worden.
Zu Fig. 1
110 Dateneingabe
101 verlustbehafteter Kompressor
102a zusätzlicher FIFO
103 Codierer
103a zu Kanal oder Speicher
111 rekonstruierter Dateneingang
104 verlustbehafteter Dekompressor
105a zusätzlicher FIFO
106 Decodierer
106a vom Kanal oder Speicher
110 Dateneingabe
101 verlustbehafteter Kompressor
102a zusätzlicher FIFO
103 Codierer
103a zu Kanal oder Speicher
111 rekonstruierter Dateneingang
104 verlustbehafteter Dekompressor
105a zusätzlicher FIFO
106 Decodierer
106a vom Kanal oder Speicher
Zu Fig. 2
202 Transformations-Kompressor
203 Lauflängen-Codierer
211 vorzeitiges Blockende
204 Huffman-Codierer
205 Kanal
206 Huffman-Decodierer
208 Lauflängen-Decodierer
209 Transformations-Dekompressor
209a Echtzeit-Bilddaten
202 Transformations-Kompressor
203 Lauflängen-Codierer
211 vorzeitiges Blockende
204 Huffman-Codierer
205 Kanal
206 Huffman-Decodierer
208 Lauflängen-Decodierer
209 Transformations-Dekompressor
209a Echtzeit-Bilddaten
Zu Fig. 3
301 Video-Bilddaten erzeugen
302 die Video-Bilddaten in Koeffizienten komprimieren
303 Lauflängen-codieren der Koeffizienten, um Token zu erzeugen
304 Begrenzen der Token auf eine vorherbestimmte Anzahl
305 die Token in einem FIFO speichern (freigestellt)
306 Token in Code-Worte codieren
307 Code-Worte an Kanal abgeben (oder Code-Worte in Speicher spei chern)
308 Huffman-Decodieren der komprimierten Daten, um Token zu erzeugen
309 Token in einem FIFO speichern
310 Token im FIFO decodieren, um Koeffizienten zu erzeugen
311 die Koeffizienten in Video-Bilddaten dekomprimieren
301 Video-Bilddaten erzeugen
302 die Video-Bilddaten in Koeffizienten komprimieren
303 Lauflängen-codieren der Koeffizienten, um Token zu erzeugen
304 Begrenzen der Token auf eine vorherbestimmte Anzahl
305 die Token in einem FIFO speichern (freigestellt)
306 Token in Code-Worte codieren
307 Code-Worte an Kanal abgeben (oder Code-Worte in Speicher spei chern)
308 Huffman-Decodieren der komprimierten Daten, um Token zu erzeugen
309 Token in einem FIFO speichern
310 Token im FIFO decodieren, um Koeffizienten zu erzeugen
311 die Koeffizienten in Video-Bilddaten dekomprimieren
Zu Fig. 4
400 Token-Zählwert auf Null initialisieren
401 ein Token abgeben
402 die Anzahl Token so zählen, wie sie abgegeben werden
403 sind alle Token von dem Block erschöpft?
404 ist Zählwert < benutzerspezifizierter Grenzwert?
405 Blockende-Token wird abgegeben und verbleibende Koeffizienten in diesem Block werden ausgeschieden
400 Token-Zählwert auf Null initialisieren
401 ein Token abgeben
402 die Anzahl Token so zählen, wie sie abgegeben werden
403 sind alle Token von dem Block erschöpft?
404 ist Zählwert < benutzerspezifizierter Grenzwert?
405 Blockende-Token wird abgegeben und verbleibende Koeffizienten in diesem Block werden ausgeschieden
Zu Fig. 5
501 Zähler
505 UND-Glied
503 Vergleicher
501 Zähler
505 UND-Glied
503 Vergleicher
Claims (26)
1. Verfahren zum Codieren von Daten in einem Datenkompres
sionssystem, welche in eine Anzahl Einheiten aufgeteilt sind,
dadurch gekennzeichnet, daß das Verfahren die Schritte auf
weist:
erstes Codieren der Daten in eine erste Anzahl einer ersten Symbolart;
Begrenzen der ersten Anzahl einer ersten Symbolart, welche entsprechend jeder der Anzahl Einheiten erzeugt worden ist, auf eine vorherbestimmte Anzahl, und
zweites Codieren der ersten Anzahl der ersten Symbolart in eine zweite Anzahl einer zweiten Symbolart, wobei die zweite Anzahl auf eine zweite vorherbestimmte Anzahl begrenzt ist.
erstes Codieren der Daten in eine erste Anzahl einer ersten Symbolart;
Begrenzen der ersten Anzahl einer ersten Symbolart, welche entsprechend jeder der Anzahl Einheiten erzeugt worden ist, auf eine vorherbestimmte Anzahl, und
zweites Codieren der ersten Anzahl der ersten Symbolart in eine zweite Anzahl einer zweiten Symbolart, wobei die zweite Anzahl auf eine zweite vorherbestimmte Anzahl begrenzt ist.
2. Verfahren nach Anspruch 1, bei welchem die Einheiten Blöcke
aufweisen.
3. Verfahren nach Anspruch 1, bei welchem das Datenkompres
sionssystem einen ersten Decodierer, einen Speicher und einen
zweiten Decodierer aufweist, die in einer kaskadenartigen An
ordnung verbunden sind, wobei die erste Anzahl der ersten Sym
boltart begrenzt ist, so daß die Größe des Speichers, die er
forderlich ist, um Daten zwischen dem ersten und dem zweiten
Decodierer zu puffern, reduziert ist.
4. Verfahren nach Anspruch 1, bei welchem die Daten nach dem
Schritt des ersten Codierens mit Hilfe einer Speichereinrich
tung gepuffert werden, wobei die erste Anzahl der ersten Sym
bolart begrenzt ist, so daß die Größe der Speichereinrichtung,
die erforderlich ist, um die erste Anzahl der ersten Symbolart
zu puffern, reduziert wird.
5. Verfahren nach Anspruch 1, bei welchem die erste Symbolart
ein Token aufweist.
6. Verfahren nach Anspruch 1, bei welchem die zweite Symbolart
ein Code-Wort aufweist.
7. Verfahren zum Reduzieren der notwendigen Größe eines Puffer
speicheres, um Daten zwischen einem ersten und einem zweiten
Decodierer zu speichern, die in einer kaskadenartigen Anordnung
in einem Datenkompressionssystem verbunden sind, dadurch ge
kennzeichnet, daß das Verfahren die Schritt aufweist:
Codieren der Daten in eine Anzahl Blöcke einer ersten Symbol art;
Codieren der Anzahl Blöcke der ersten Symbolart in eine Anzahl einer zweiten Symbolart, einschließlich des Schrittes, Begrenzen der Anzahl einer zweiten Symbolart auf eine vorherbestimmte An zahl der zweiten Symbolart, so daß die zweite Symbolart, die dem ersten Decodierer während einer Dekompression zugeführt worden ist, so begrenzt ist, daß die Größe des Pufferspeiche rs, um dekomprimierte Daten, die von dem ersten Decodierer ab gegeben worden sind, zu puffern, reduziert wird.
Codieren der Daten in eine Anzahl Blöcke einer ersten Symbol art;
Codieren der Anzahl Blöcke der ersten Symbolart in eine Anzahl einer zweiten Symbolart, einschließlich des Schrittes, Begrenzen der Anzahl einer zweiten Symbolart auf eine vorherbestimmte An zahl der zweiten Symbolart, so daß die zweite Symbolart, die dem ersten Decodierer während einer Dekompression zugeführt worden ist, so begrenzt ist, daß die Größe des Pufferspeiche rs, um dekomprimierte Daten, die von dem ersten Decodierer ab gegeben worden sind, zu puffern, reduziert wird.
8. Verfahren nach Anspruch 7, bei welchem die vorherbestimmte
Anzahl entsprechend der Größe des Pufferspeichers verbraucher
spezifiziert ist.
9. Verfahren nach Anspruch 7, bei welchem der Begrenzungs
schritt den Schritt aufweist, die zweite Art von Symbolen ober
halb der vorherbestimmten Anzahl zu beschneiden.
10. Verfahren nach Anspruch 7, bei welchem der Begrenzungs
schritt die Schritte aufweist:
Zählen der zweiten Symbolart, die abgegeben sind, um einen Zählwert zu erzeugen, wobei der Zählwert mit der vorherbestimm ten Zahl verglichen wird, und
Abgeben einer Blockende-Anzeige, wenn der Zählwert größer als die vorherbestimmte Zahl ist, wobei der Rest des Blockes ver worfen wird.
Zählen der zweiten Symbolart, die abgegeben sind, um einen Zählwert zu erzeugen, wobei der Zählwert mit der vorherbestimm ten Zahl verglichen wird, und
Abgeben einer Blockende-Anzeige, wenn der Zählwert größer als die vorherbestimmte Zahl ist, wobei der Rest des Blockes ver worfen wird.
11. Kompressions/Dekompressionsverfahren, welches die Schritte
aufweist:
Komprimieren der Bilddaten, um eine Anzahl Blöcke einer Anzahl von Koeffizienten zu erzeugen;
erstes Codieren der Anzahl Koeffizienten jeder der Anzahl Blöcke, um eine Anzahl Token zu erzeugen;
zweites Codieren der Anzahl Token in eine Anzahl Code-Worte, wobei der Schritt, zweites Codieren, ein Begrenzen der Anzahl von Token auf eine vorherbestimmte Anzahl einschließt;
erstes Decodieren der Anzahl Token in eine Anzahl decodierter Token;
Speichern der Anzahl decodierter Token in einem Puffer;
zweites Decodieren der Anzahl decodierter Token, die in dem Puffer gespeichert sind, um eine Anzahl Koeffizienten zu erzeu gen, und
Dekomprimieren der Koeffizienten in den Bilddaten.
Komprimieren der Bilddaten, um eine Anzahl Blöcke einer Anzahl von Koeffizienten zu erzeugen;
erstes Codieren der Anzahl Koeffizienten jeder der Anzahl Blöcke, um eine Anzahl Token zu erzeugen;
zweites Codieren der Anzahl Token in eine Anzahl Code-Worte, wobei der Schritt, zweites Codieren, ein Begrenzen der Anzahl von Token auf eine vorherbestimmte Anzahl einschließt;
erstes Decodieren der Anzahl Token in eine Anzahl decodierter Token;
Speichern der Anzahl decodierter Token in einem Puffer;
zweites Decodieren der Anzahl decodierter Token, die in dem Puffer gespeichert sind, um eine Anzahl Koeffizienten zu erzeu gen, und
Dekomprimieren der Koeffizienten in den Bilddaten.
12. Verfahren nach Anspruch 11, bei welchem der Schritt, zwei
tes Codieren, den Schritt eines Huffman-Codierens aufweist, und
der Schritt, erstes Decodieren, ein Huffman-Decodieren aufweist.
13. Verfahren nach Anspruch 11, bei welchem der Begrenzungs
schritt die Schritte aufweist:
Zählen der Anzahl an codierten Token, um einen Zählwert zu er zeugen;
Vergleichen des Zählwerts mit der vorherbestimmten Anzahl, und Abgeben einer Blockende-Anzeige, wenn der Zählwert größer als die vorherbestimmte Anzahl für den Rest des Blockes ist.
Zählen der Anzahl an codierten Token, um einen Zählwert zu er zeugen;
Vergleichen des Zählwerts mit der vorherbestimmten Anzahl, und Abgeben einer Blockende-Anzeige, wenn der Zählwert größer als die vorherbestimmte Anzahl für den Rest des Blockes ist.
14. Verfahren nach Anspruch 11, bei welchem die vorherbestimmte
Anzahl entsprechend der Größe des Pufferspeichers verbraucher
spezifiziert ist.
15. Kompressions/Dekompressionsverfahren, welches die Schritte
aufweist:
Komprimieren der Bilddaten mit Hilfe eines JPEG-Kompressors, um eine Anzahl Koeffizienten zu erzeugen;
Lauflängen-Codieren der Anzahl Koeffizienten, um eine Anzahl Token zu erzeugen;
Huffman-Codieren der Anzahl Token in eine Anzahl Code-Worte, wobei der Schritt Huffman-Codieren das Begrenzen der Anzahl To ken auf eine vorherbestimmte Anzahl einschließt;
Huffman-Decodieren der Anzahl Token in eine Anzahl codierter Token;
Speichern der Anzahl decodierter Token in einem Puffer;
Lauflängen-Decodieren der Anzahl decodierter Token, die in dem Puffer gespeichert sind, um eine Anzahl Koeffizienten zu erzeu gen, und
Dekomprimieren der Koeffizienten in die Bilddaten.
Komprimieren der Bilddaten mit Hilfe eines JPEG-Kompressors, um eine Anzahl Koeffizienten zu erzeugen;
Lauflängen-Codieren der Anzahl Koeffizienten, um eine Anzahl Token zu erzeugen;
Huffman-Codieren der Anzahl Token in eine Anzahl Code-Worte, wobei der Schritt Huffman-Codieren das Begrenzen der Anzahl To ken auf eine vorherbestimmte Anzahl einschließt;
Huffman-Decodieren der Anzahl Token in eine Anzahl codierter Token;
Speichern der Anzahl decodierter Token in einem Puffer;
Lauflängen-Decodieren der Anzahl decodierter Token, die in dem Puffer gespeichert sind, um eine Anzahl Koeffizienten zu erzeu gen, und
Dekomprimieren der Koeffizienten in die Bilddaten.
16. Verfahren nach Anspruch 15, bei welchem der Begrenzungs
schritt die Schritte aufweist:
Zählen der Anzahl codierter Token, um eine Zählwert zu erzeu gen;
Vergleichen des Zählwerts mit der vorherbestimmten Anzahl, und Abgeben einer Blockende-Anzeige, wenn der Zählwert größer als die vorherbestimmte Anzahl für den Rest des Blockes ist.
Zählen der Anzahl codierter Token, um eine Zählwert zu erzeu gen;
Vergleichen des Zählwerts mit der vorherbestimmten Anzahl, und Abgeben einer Blockende-Anzeige, wenn der Zählwert größer als die vorherbestimmte Anzahl für den Rest des Blockes ist.
17. Verfahren nach Anspruch 16, bei welchem der Abgabeschritt
ein Abgeben eines Blockende-Token aufweist.
18. Schaltung zum Begrenzen der Anzahl Token, welche codiert
werden, mit
einer Zähleinrichtung zum Zählen der Anzahl Token, wobei die Zähleinrichtung einen Zählwert der Anzahl Token erzeugt;
Speichereinrichtung zum Speichern einer vorherbestimmten An zahl;
Vergleichseinrichtung, die mit dem Speicher und dem Zähler ver bunden ist, um die vorbestimmte Anzahl und den Zählwert zu ver gleichen, wobei der Vergleicher ein Signal in einem ersten Zu stand abgibt, wenn der Zählwert größer als die vorherbestimmte Anzahl ist, und ein Signal in einem zweiten Zustand abgibt, wenn der Zählwert kleiner oder gleich der vorherbestimmten An zahl ist, und
Multiplexer mit einem ersten und einem zweiten Eingang und einem Steuereingang, wobei an den ersten Eingang die Anzahl To ken angelegt wird, an den zweiten Eingang eine Blockende-Anzei ge angelegt wird und der Steuereingang das Signal erhält, wobei der Multiplexer das Blockende-Token entsprechend dem Signal ab gibt, das sich in dem ersten Zustand befindet, und die Anzahl Token entsprechend dem Signal abgibt, das sich in dem zweiten Zustand befindet.
einer Zähleinrichtung zum Zählen der Anzahl Token, wobei die Zähleinrichtung einen Zählwert der Anzahl Token erzeugt;
Speichereinrichtung zum Speichern einer vorherbestimmten An zahl;
Vergleichseinrichtung, die mit dem Speicher und dem Zähler ver bunden ist, um die vorbestimmte Anzahl und den Zählwert zu ver gleichen, wobei der Vergleicher ein Signal in einem ersten Zu stand abgibt, wenn der Zählwert größer als die vorherbestimmte Anzahl ist, und ein Signal in einem zweiten Zustand abgibt, wenn der Zählwert kleiner oder gleich der vorherbestimmten An zahl ist, und
Multiplexer mit einem ersten und einem zweiten Eingang und einem Steuereingang, wobei an den ersten Eingang die Anzahl To ken angelegt wird, an den zweiten Eingang eine Blockende-Anzei ge angelegt wird und der Steuereingang das Signal erhält, wobei der Multiplexer das Blockende-Token entsprechend dem Signal ab gibt, das sich in dem ersten Zustand befindet, und die Anzahl Token entsprechend dem Signal abgibt, das sich in dem zweiten Zustand befindet.
19. Dekompressionssystem zum Dekomprimieren von komprimierten
Daten, wobei die komprimierten Daten durch eine Codiereinrich
tung entsprechend einer vorherbestimmten Anzahl von Token er
zeugt werden, gekennzeichnet durch
eine erste Decodiereinrichtung zum Aufnehmen der komprimierten Daten, um eine Anzahl Token zu erzeugen, wobei die erste Deco diereinrichtung mit einer ersten Rate arbeitet;
Pufferspeicher, um die Anzahl Token aufzunehmen, wobei der Puf ferspeicher eine vorherbestimmte Größe hat, und
zweite Decodiereinrichtung, um die Anzahl Token von dem Puffer speicher aufzunehmen, um die Anzahl zu decodieren, wobei die zweite Decodiereinrichtung ein veränderlicher Längendecodierer ist, welcher bei einer zweiten Rate arbeitet, wobei die zweite Rate höher als die erste Rate ist,
wobei die vorherbestimmte Größe des Pufferspeichers reduziert wird, indem die vorherbestimmte Anzahl an codierten Token durch die Codiereinrichtung begrenzt wird.
eine erste Decodiereinrichtung zum Aufnehmen der komprimierten Daten, um eine Anzahl Token zu erzeugen, wobei die erste Deco diereinrichtung mit einer ersten Rate arbeitet;
Pufferspeicher, um die Anzahl Token aufzunehmen, wobei der Puf ferspeicher eine vorherbestimmte Größe hat, und
zweite Decodiereinrichtung, um die Anzahl Token von dem Puffer speicher aufzunehmen, um die Anzahl zu decodieren, wobei die zweite Decodiereinrichtung ein veränderlicher Längendecodierer ist, welcher bei einer zweiten Rate arbeitet, wobei die zweite Rate höher als die erste Rate ist,
wobei die vorherbestimmte Größe des Pufferspeichers reduziert wird, indem die vorherbestimmte Anzahl an codierten Token durch die Codiereinrichtung begrenzt wird.
20. Dekompressionssystem zum Dekomprimieren komprimierter Da
ten, wobei die komprimierten Daten durch eine Codiereinrichtung
entsprechend einer vorherbestimmten Anzahl Token erzeugt wer
den, mit
einer ersten Codiereinrichtung zum Aufnehmen der verdichteten Daten, um eine Anzahl Token zu erzeugen, wobei die erste Deco diereinrichtung mit einer ersten Rate arbeitet;
einem Pufferspeicher, um eine Anzahl Token aufzunehmen, wobei der Pufferspeicher eine vorherbestimmte Größe hat, und
einer zweiten Decodiereinrichtung, um die Anzahl Token von dem Pufferspeicher aufzunehmen, um die Anzahl Token zu decodieren, um eine Anzahl Koeffizienten zu erzeugen, wobei die zweite De codiereinrichtung ein veränderlicher Längendecodierer ist, wel cher mit einer zweiten Rate arbeitet, wobei die zweite Rate hö her als die erste Rate ist;
einem Transformations-Dekompressor, um die Anzahl Koeffizienten aufzunehmen, um dekomprimierte Daten zu erzeugen;
wobei die vorherbestimmte Größe des Pufferspeichers reduziert wird, indem die vorherbestimmte Anzahl an codierten Token durch die Codiereinrichtung begrenzt wird.
einer ersten Codiereinrichtung zum Aufnehmen der verdichteten Daten, um eine Anzahl Token zu erzeugen, wobei die erste Deco diereinrichtung mit einer ersten Rate arbeitet;
einem Pufferspeicher, um eine Anzahl Token aufzunehmen, wobei der Pufferspeicher eine vorherbestimmte Größe hat, und
einer zweiten Decodiereinrichtung, um die Anzahl Token von dem Pufferspeicher aufzunehmen, um die Anzahl Token zu decodieren, um eine Anzahl Koeffizienten zu erzeugen, wobei die zweite De codiereinrichtung ein veränderlicher Längendecodierer ist, wel cher mit einer zweiten Rate arbeitet, wobei die zweite Rate hö her als die erste Rate ist;
einem Transformations-Dekompressor, um die Anzahl Koeffizienten aufzunehmen, um dekomprimierte Daten zu erzeugen;
wobei die vorherbestimmte Größe des Pufferspeichers reduziert wird, indem die vorherbestimmte Anzahl an codierten Token durch die Codiereinrichtung begrenzt wird.
21. System nach Anspruch 19 oder 20, bei welchem der Puffer
speicher ein FIFO-Speicher aufweist.
22. System nach Anspruch 19 oder 20, bei welchem der Puffer
speicher die Token speichert.
23. System nach Anspruch 19 oder 20, wobei die vorherbestimmte
Anzahl Token 32 Token aufweist.
24. System nach Anspruch 19 oder 20, bei welchem die erste De
codiereinrichtung einen Huffman-Decodierer aufweist.
25. System nach Anspruch 19 oder 20, bei welchem die zweite De
codiereinrichtung einen Lauflängen- Codierer aufweist.
26. System nach Anspruch 20, bei welchem der Transformations-
Kompressor einen JPEG-Kompressor aufweist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10737693A | 1993-08-17 | 1993-08-17 | |
US107376 | 1993-08-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4429017A1 true DE4429017A1 (de) | 1995-04-27 |
DE4429017B4 DE4429017B4 (de) | 2005-10-13 |
Family
ID=22316320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4429017A Expired - Fee Related DE4429017B4 (de) | 1993-08-17 | 1994-08-16 | Verfahren zum Codieren von Daten in einem Datenkompressionssystem, Kompressions/Dekompressionsverfahren sowie Dekompressionssystem zum Dekomprimieren von komprimierten Daten |
Country Status (3)
Country | Link |
---|---|
US (1) | US5535290A (de) |
JP (1) | JP3247804B2 (de) |
DE (1) | DE4429017B4 (de) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6067417A (en) | 1992-06-30 | 2000-05-23 | Discovision Associates | Picture start token |
US5768561A (en) | 1992-06-30 | 1998-06-16 | Discovision Associates | Tokens-based adaptive video processing arrangement |
US6330665B1 (en) | 1992-06-30 | 2001-12-11 | Discovision Associates | Video parser |
US6079009A (en) | 1992-06-30 | 2000-06-20 | Discovision Associates | Coding standard token in a system compromising a plurality of pipeline stages |
US5784631A (en) * | 1992-06-30 | 1998-07-21 | Discovision Associates | Huffman decoder |
US6112017A (en) | 1992-06-30 | 2000-08-29 | Discovision Associates | Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus |
US6435737B1 (en) | 1992-06-30 | 2002-08-20 | Discovision Associates | Data pipeline system and data encoding method |
US6047112A (en) | 1992-06-30 | 2000-04-04 | Discovision Associates | Technique for initiating processing of a data stream of encoded video information |
DE69229338T2 (de) | 1992-06-30 | 1999-12-16 | Discovision Ass | Datenpipelinesystem |
US5809270A (en) | 1992-06-30 | 1998-09-15 | Discovision Associates | Inverse quantizer |
US5861894A (en) | 1993-06-24 | 1999-01-19 | Discovision Associates | Buffer manager |
US5805914A (en) | 1993-06-24 | 1998-09-08 | Discovision Associates | Data pipeline system and data encoding method |
JP3332580B2 (ja) * | 1994-06-14 | 2002-10-07 | キヤノン株式会社 | 画像再生装置及び画像再生方式 |
US5801973A (en) | 1994-07-29 | 1998-09-01 | Discovision Associates | Video decompression |
US5654806A (en) * | 1996-05-06 | 1997-08-05 | Xerox Corporation | Code manipulation for a high speed JPEG decoder |
US5959560A (en) * | 1997-02-07 | 1999-09-28 | Said; Amir | Data compression via alphabet partitioning and group partitioning |
US6111844A (en) * | 1997-07-03 | 2000-08-29 | At&T Corp. | Quality degradation through compression/decompression |
US6266419B1 (en) * | 1997-07-03 | 2001-07-24 | At&T Corp. | Custom character-coding compression for encoding and watermarking media content |
KR100354531B1 (ko) * | 1998-05-06 | 2005-12-21 | 삼성전자 주식회사 | 실시간 복호화를 위한 무손실 부호화 및 복호화 시스템 |
US7167259B2 (en) | 2000-05-16 | 2007-01-23 | International Business Machines Corporation | System and method for merging line work objects using tokenization and selective compression |
US9267232B2 (en) | 2005-03-24 | 2016-02-23 | Tarkett Inc. | Synthetic turf system having an infill trapping structure |
US7668186B1 (en) * | 2006-03-07 | 2010-02-23 | Xilinx, Inc. | Token ecosystem for buffer management |
US9418450B2 (en) * | 2006-08-31 | 2016-08-16 | Ati Technologies Ulc | Texture compression techniques |
US8458457B2 (en) * | 2007-02-02 | 2013-06-04 | Red Hat, Inc. | Method and system for certificate revocation list pre-compression encoding |
US20230052538A1 (en) * | 2021-08-13 | 2023-02-16 | Meta Platforms, Inc. | Systems and methods for determining token rates within a rate-distortion optimization hardware pipeline |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4394774A (en) * | 1978-12-15 | 1983-07-19 | Compression Labs, Inc. | Digital video compression system and methods utilizing scene adaptive coding with rate buffer feedback |
US4922273A (en) * | 1987-04-02 | 1990-05-01 | Konica Corporation | Compression method of halftone image data |
FR2630277B1 (fr) * | 1988-04-15 | 1992-10-16 | Thomson Csf | Procede de codage et de decodage d'informations, par blocs, et dispositifs de codage et de decodage, pour la mise en oeuvre de ce procede |
US5051840A (en) * | 1988-12-14 | 1991-09-24 | Fuji Photo Film Co., Ltd. | Device for coding a picture signal by compression |
US5046121A (en) * | 1989-01-31 | 1991-09-03 | Konica Corporation | Image data compression apparatus |
US5086488A (en) * | 1989-08-19 | 1992-02-04 | Mitsubishi Denki Kabushiki Kaisha | Transform coding apparatus |
US5142380A (en) * | 1989-10-23 | 1992-08-25 | Ricoh Company, Ltd. | Image data processing apparatus |
US5063608A (en) * | 1989-11-03 | 1991-11-05 | Datacube Inc. | Adaptive zonal coder |
JP3071205B2 (ja) * | 1990-01-23 | 2000-07-31 | オリンパス光学工業株式会社 | 画像データの符号化装置および符号化方法 |
US5303058A (en) * | 1990-10-22 | 1994-04-12 | Fujitsu Limited | Data processing apparatus for compressing and reconstructing image data |
US5262854A (en) * | 1992-02-21 | 1993-11-16 | Rca Thomson Licensing Corporation | Lower resolution HDTV receivers |
-
1994
- 1994-08-01 JP JP17984694A patent/JP3247804B2/ja not_active Expired - Fee Related
- 1994-08-16 DE DE4429017A patent/DE4429017B4/de not_active Expired - Fee Related
-
1995
- 1995-09-11 US US08/526,758 patent/US5535290A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5535290A (en) | 1996-07-09 |
JPH07106979A (ja) | 1995-04-21 |
DE4429017B4 (de) | 2005-10-13 |
JP3247804B2 (ja) | 2002-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4429017B4 (de) | Verfahren zum Codieren von Daten in einem Datenkompressionssystem, Kompressions/Dekompressionsverfahren sowie Dekompressionssystem zum Dekomprimieren von komprimierten Daten | |
DE69735679T2 (de) | Verfahren zur Bilddecodierung | |
DE69932959T2 (de) | Verlustfreies Kodierungs- und Dekodierungsverfahren | |
DE69535569T2 (de) | Verfahren zur Synchronisationsrückgewinnung und Vorrichtung zur variablen Längendekodierung | |
DE69726661T2 (de) | Verfahren und vorrichtung zur kodierung eines digitalen informationssignales | |
DE19840835C2 (de) | Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern | |
DE69813349T2 (de) | Vorrichtung zur Kontrolle der Datenmenge und Kodierer dieselbige anwendend | |
DE19506164A1 (de) | Verfahren zum Komprimieren eingegebener Symbole in Codeworte | |
DE60211171T2 (de) | Verarbeitung von einem komprimierten mediensignal | |
DE4217008C2 (de) | HDTV-Dekodierer | |
DE69535710T2 (de) | Dekodierer variabler Länge für bitgestopfte Daten | |
EP1571755A2 (de) | Verfahren und Anordnung zur arithmetischen Enkodierung und Dekodierung mit Initialisierung eines Wahrscheinlichkeitsmodelles | |
DE19634600A1 (de) | Bildsignalkodiervorrichtung und zugehöriges Verfahren | |
DE4241131A1 (en) | Signal encoder selecting suitable signal transformation - selects output from parallel connected transformation unit having greatest measured energy and encodes | |
EP1472888B1 (de) | Kontextsensitive kodierung und dekodierung eines videodatenstroms | |
DE69724440T2 (de) | Mpeg-2-videodatendekodierer für codes variabler länge und dekodiererarchitektur mit zwei geschwindigkeiten | |
DE69928616T2 (de) | System zur extrahierung von codierungsparametern aus videodaten | |
DE112008003626T5 (de) | Kodierung mit geringer Komplexität in Datenkomprimierungssystemen | |
DE60015755T2 (de) | Verlustfreie adaptive codierung von daten eines endlichen alphabets | |
EP0752788A2 (de) | Videocoder und -decoder | |
EP0241745B1 (de) | Verfahren zur Datenreduktion digitaler Bildsignale durch Vektorquantisierung von durch orthonormale Transformation mittels einer symmetrischen fastzyklischen Hadamard-Matrix gewonnenen Koeffizienten | |
EP0303978B1 (de) | Verfahren und Schaltungsanordnung zur Verbesserung der Auflösung von digitalen Signalen | |
EP1388230B1 (de) | Verfahren und vorrichtung zum verschlüsseln eines diskreten signals sowie verfahren und vorrichtung zur entschlüsselung | |
DE19549491C2 (de) | Entropie-Codierer | |
EP1530824B1 (de) | Skalierbare codierung von bildinformation, insbesondere videobildinformation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20130301 |