DE69509421T2 - Verschiebungsstufe für einen Dekodierer von digitalen Kodes veränderlicher Länge - Google Patents
Verschiebungsstufe für einen Dekodierer von digitalen Kodes veränderlicher LängeInfo
- Publication number
- DE69509421T2 DE69509421T2 DE69509421T DE69509421T DE69509421T2 DE 69509421 T2 DE69509421 T2 DE 69509421T2 DE 69509421 T DE69509421 T DE 69509421T DE 69509421 T DE69509421 T DE 69509421T DE 69509421 T2 DE69509421 T2 DE 69509421T2
- Authority
- DE
- Germany
- Prior art keywords
- shift
- length
- code
- decoded
- shift register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000003860 storage Methods 0.000 claims description 25
- 230000001186 cumulative effect Effects 0.000 claims description 11
- 230000009466 transformation Effects 0.000 claims description 4
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 238000011002 quantification Methods 0.000 claims description 2
- 239000011159 matrix material Substances 0.000 description 12
- 238000000034 method Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013139 quantization Methods 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 6
- 239000013598 vector Substances 0.000 description 5
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 230000001955 cumulated effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009916 joint effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Shift Register Type Memory (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
- die Erfindung betrifft eine Schiebestufe für einem Dekodierer von digitalen Kodes variabler Länge.
- Eine gewisse Zahl von Datenübertragungs- und Datenspeichergeräten verwendet eine Informationskodierung, die digitale Kodes mit variabler Länge erzeugt.
- Diese Kodes werden aufeinanderfolgend ohne besondere Trennung gespeichert oder übertragen.
- Beim Dekodieren wird jeder Kode von einer Logikeinheit erkannt und eine der Leseoperationen bewirkt eine Verschiebung der Eingangsdaten entsprechend der in dem dekodierten Kode enthaltenen Bitzahl.
- Dies ist die Aufgabe der Schiebestufen für einen Dekodierer von digitalen Kodes variabler Länge, wie demjenigen der vorliegenden Erfindung.
- Die Techniken des Übertragens und des Speicherns digitalisierter Bilder ermöglichen eine erhebliche Verbesserung der Qualität der letztlich erhaltenen Bilder gegenüber der analogen Übertragung. Es ist somit möglich, ebenfalls die Anwendungsmöglichkeiten dieser Techniken zu vervielfachen.
- Die direkte Übertragung und die Speicherung digitalisierter animierter Bilder erfordern jedoch einen extrem großen Datenstrom, der in der Praxis das Komprimieren und das Kodieren der Bilder erfordert.
- Auf diese Weise werden die digitalisierten Bilder vor der Übertragung kodiert, um die Menge der diese wiedergebenden Informationen zu verringern, und nach der Übertragung wieder dekodiert.
- Die Techniken des Kodierens und des Dekodierens sind selbstverständlich essentiell für die Qualität der letztlich erhaltenen Bilder und es erscheint notwendig, um die Kompatibilität der verschiedenen Vorrichtungen, die diese Techniken ausmachen, zu gewährleisten, eine Normierung derselben vorzusehen.
- Aus diesem Grund hat eine Expertengruppe (Moving Picture Expert Group - MPEG) die Norm ISO 11172 formuliert.
- Diese Norm, die oft als MPEG bezeichnet wird, definiert die Bedingungen des Kodierens und des Dekodierens von animierten Bildern, die eventuell mit einem Tonsignal verbunden sind, wobei diese Bedingungen sowohl für das Speichern und wiederherstellen von Bildern, als auch für deren Übertragung verwendet werden können.
- Diese Norm MPEG kann somit zum Speichern von Bildern auf Kompaktdisks, interaktiven Kompaktdisks sowie Magnetbänder, zum Übertragen von Bildern über lokale Netze, Telefonleitungen und zum Übertragen von Fernsehbildern über Funkwellen verwendet werden.
- Die Norm, welche die Gesamtheit dieses Verfahrens vollständig und detailliert definiert, ist bei den Normungsorganen erhältlich, an welche man sich zur Einsicht in die detaillierte Beschreibung derselben wenden sollte.
- Die nach der Norm MPEG durchgeführte Datenkomprimierung kann mehreren Verarbeitungen folgen.
- Zunächst werden die aufeinanderfolgenden Bilder gesammelt, um eine Gruppe von Bildern zu erstellen, die eine Sequenz bilden. Eine Sequenz ist somit in Gruppen von Bildern unterteilt.
- Jedes Bild ist in Abschnitte unterteilt, wobei jeder Abschnitt selbst in Makroblöcke zerfällt, welche das Basiselement für die Kompensation von Bewegungen und letzlich zum Verändern des Quantifizierungsmaßstabs bilden.
- Die Makroblöcke bestehen aus einer Matrix von 16 · 16 Bildelementen (Pixel).
- Jeder Makroblock ist in sechs Blöcke unterteilt, wobei die ersten vier eine Information über die Leuchtdichte und die beiden anderen eine Information über die Farbigkeit, blau bzw. rot, aufweisen.
- Jeder der sechs Blöcke ist als Matrix aus 8 · 8 Bildelementen (Pixeln) definiert.
- Innerhalb jeder Sequenz sind verschiedene Bildtypen definiert, um die zu speichernde oder zu übertragende Informationsmenge zu reduzieren, da zwischen den in den unterschiedlichen Bildern einer Sequenz enthaltenen Informationen Analogien bestehen.
- Die Bilder I (Intra frames) sind als unbewegte Bilder und damit als Bilder ohne Bezug zu einem anderen der Bilder kodiert.
- Die Bilder P (Predicted) werden aus dem zuvor wiederhergestellten Bild I oder P abgeleitet.
- Die Bilder B (Bi-directional frames) werden aus zwei widerhergestellten Bildern I und P oder P und P abgeleitet, einem unmittelbar vorhergehenden und einem unmittelbar nachfolgenden.
- Es sei hier betont, daß im allgemeinen die Reihenfolge der Übertragung der Bilder einer Sequenz nicht deren Reihenfolge bei der Bereitstellung während der Erfassung oder der Wiederherstellung. Sie befinden sich in der Reihenfolge der Dekodierung.
- Die diskrete Cosinus-Transformation (Discrete Cosine Transformation - DCT) wird auf der Ebene der Blöcke angewandt.
- Diese DCT-Transformation transformiert räumliche Blöcke, die wie zuvor erwähnt aus einer Matrix von 8 · 8 Pixeln bestehen, in zeitliche Blöcke, die ebenfalls aus einer 8 · 8 Matrix aus räumlichen Frequenzen gebildet sind.
- Es wurde aufgezeigt, daß in der 8 · 8 Matrix des zeitlichen Blocks der in der Matrix links oben angeordnete kontinuierliche Tiefenkoeffizient (DC) für den erzielten optischen Eindruck wesentlich wichtiger ist als die anderen Frequenzen entsprechenden Komponenten.
- Genauer gesagt: je höher die Frequenz ist, desto weniger empfindlich ist das Auge dafür.
- Aus diesem Grund werden die Frequenzpegel quantisiert, um so mehr als die Frequenzen hoch sind. Diese Quantisierung erfolgt mittels eines von der Norm nicht vorgeschriebenen Algorithmus, bei dem es sich um eine Quantisierungs operation und eine Operation des Kodierens mit variabler Länge (Variable. Length Coding - VLC) handeln kann.
- Die durch die DCT-Transformation erhaltene Frequenz-Matrix wird anschließend mittels einer als "Quantisierungsmatrix" bezeichneten Matrix verarbeitet, die zum Dividieren jedes der Terme der Zeit-Matrix durch einen Wert dient, der von dessen Position abhängt und berücksichtigt, daß die Gewichtung der unterschiedlichen von den Koeffizienten repräsentierten Frequenzen variabel ist.
- Das Ergebnis dieser Operation führt nach dem Runden jedes Werts auf den nächsten ganzzahligen Wert zu einer wichtigen Zahl von Koeffizienten, die gleich Null ist.
- Es sei darauf hingewiesen, daß bei den Intra-Makroblöcken der Wert der Quantisierung des Tiefenkoeffizienten (DC) konstant, beispielsweise gleich 8, ist. Die von Null verschiedenen Frequenzkoeffizienten werden daher nach einer Zickzack-Abtastung unter Bezugnahme auf eine Huffman-Tabelle abgetastet, wodurch jedem Koeffizienten der Matrix ein kodierter Wert mit variabler Länge zugewiesen und das Informationsvolumen verringert wird.
- Vorzugsweise werden die die kontinuierliche Tiefe wiedergebenden Koeffizienten nach der Quantisierung übertragen und ferner wird die Quantisierungsmatrix derart optimiert, daß das Informationsvolumen kleiner als eine vorbestimmte Menge ist, die den Speicher- oder Übertragungsmöglichkeiten entspricht, ohne daß dies übermäßigen Einfluß auf die Qualität der übertragenen Information hat.
- Die Bilder vom Typ I werden ohne Verwendung von Bewegungsvektoren kodiert.
- Im Gegensatz dazu verwenden die Bilder vom Typ P und B wenigstens für bestimmte Makroblöcke, die sie bilden, Bewegungsvektoren, die eine Verbesserung der Wirksamkeit der Kodierung ermöglichen und angeben, aus welchem Teil des Referenzbildes oder der Referenzbilder ein bestimmter Makroblock des betreffenden Bildes abgeleitet werden soll.
- Die Suche nach dem Bewegungsvektor ist Gegenstand einer Optimierung beim Kodieren und er wird selbst unter Verwendung des DPCM-Verfahrens kodiert; das die bestehende Korrelation zwischen den Bewegungsvektoren der verschiedenen Makroblöcke desselben Bildes bestmöglich nutzt. Die Bewegungsvektoren werden schließlich einer Kodierung mit variabler Länge (VLC) unterzogen.
- Sämtliche Informationen bezüglich einer kodierten Sequenz bilden den digitalen Informationsstrom (Bitstream), der entweder aufgezeichnet oder übertragen wird.
- Ein derartiger digitaler Informationsstrom beginnt mit einem Sequenzkopfabschnitt, der eine bestimmte Zahl von Informationen und Parametern enthält, deren Werte für die gesamte Sequenz gelten.
- Da die Sequenz sich in Bildgruppen unterteilt, geht gleichermaßen jeder Gruppe ein Gruppenkopfabschnitt voraus, und den jedes Bild repräsentierenden Daten geht wiederum ein Bildkopfabschnitt voraus.
- Die normierte MPEG-Technik zum Kodieren von animierten Bildern schließt eine derartige Technik ein und erfordert so die Verwendung von Schiebestufen, welche Gegenstand der Erfindung sind.
- Bisher entsprachen die Schiebestufen für Dekodierer von digitalen Kodes variabler Länge, welche einen Kode pro Taktzyklus dekodieren, der in der Fig. 1 dargestellten Vorrichtung.
- Ein Speicherelement 1 empfängt von einem nicht dargestellten vorgeschalteten Speicher aus einer Anzahl von Bits M zusammengesetzte Eingangsdaten.
- Das Trommel-Schieberegister 2, dessen Schiebevorgang durch den Addierer 3 gesteuert ist, liefert der Logikeinheit 4 ein Wort mit einer vorab definierten Länge W, die gleich der maximalen Länge eines zu dekodierenden Kodes variabler Länge ist, der, entsprechend dem durch den Addierer 3 definierten Schiebewert m+1, den vom Eingangsspeicherelement 1 angelegten und bereits dekodierten digitalisierten Daten folgt.
- Die Logikeinheit 4 dekodiert in dem empfangenen Wort den ersten identifizierbaren Kodes und gibt diesen an die Speichereinheit S weiter.
- Die Einheiten 4 und 5 bilden eine Maschine mit finitem Zustand (Finite State Machine), die gleichermaßen mit Hilfe einer PLA (Programmable Logic Array) implementiert werden kann.
- Der Addierer 3 wirkt mit einem Speicherelement 6 derart zusammen, daß er von dem Speicherelement 5 die Länge m des im vorherigen Zyklus dekodierten Kodes und von Kumulationsspeicherelement 6 den vorhergehenden kumulierten Wert der Gesamtheit der Länge der dekodierten Kodes empfängt. Auf diese Weise steuert er das Trommel-Schieberegister 2, so daß dies, wie zuvor angedeutet, eine Verschiebung entsprechend der kumulierten Länge der Gesamtheit der bereits von der Logikeinheit 4 seit der letzten Erfassung von Eingangsdaten durch das Eingangsspeicherelement 1 bewirkt.
- Wenn der Addierer 3 überläuft (msb = 1), veranlaßt er einen neuen Lesevorgang durch das Eingangsspeicherelement 1.
- Das Taktsignal 8 koordiniert die Gesamtheit dieser Operationen.
- Bei dieser bekannten Vorrichtung müssen somit während desselben Taktzyklus nacheinander die Addition von Längen der zuvor dekodierten Kodes durch den Addierer 3, die Verschiebung entsprechender Werte durch das Trommel-Schieberegister 2 und die logische Verarbeitung der Dekodierung durch die Logikeinheit 4 durchgeführt werden.
- Die Gesamtmenge der zu verarbeitenden Informationen ist durch die Norm vorgegeben, welche die Vorrichtung, in welche die zu beschreibende Schiebestufe einschreibt, zu erfüllen hat.
- Die Geschwindigkeit dieser Verarbeitung hängt von der Ausbildung der Schaltung ab und kann erhöht werden, indem die Zahl der Gatter der ausgebildeten Schaltung vervielfacht wird. Dies erfordert eine Vervielfachung der Fläche der Schaltungen und des Energieverbrauchs.
- Das Dokument US 5 245 338 betrifft einen Dekodierer für variable Längen, der einen Dekodiererteil und einen Interfaceteil aufweist. Der Dekodierer weist zwei Trommel-Schiebeelemente (barrel shifters) auf, zwischen denen ein Dekodierer-Sperregister (decoder latch) angeordnet ist.
- Die Europäische Anmeldung EP-A-0 493 086 beschreibt einen Dekodierer für komprimierte Bilder CCITT. Er weist einen Kode-Umsetzer gefolgt von einem Kode-Separator und von Dekodierern auf, die jeweils für kurze und lange Kodes vorgesehen sind.
- Es ist die Aufgabe der vorliegenden Erfindung, eine Schiebestufe für einen Dekodierer von digitalen Kodes mit variablen Längen zu schaffen, die aufgrund ihrer Struktur schnell arbeitet, ohne daß dafür eine erhöhte Zahl an Gattern erforderlich ist.
- Es ist eine weitere Aufgabe der vorliegenden Erfindung, eine Schiebestufe für einen Dekodierer von digitalen Kodes mit variablen Längen zu schaffen, die wirksam und zuverlässig ist und eine relativ kleine Siliziumfläche erfordert und einen niedrigen Stromverbrauch hat.
- Zur Lösung der Aufgabe ist erfindungsgemäß eine Schiebestufe gemäß dem Patentanspruch 1 vorgesehen.
- In verschiedenen bevorzugten Ausführungsbeispielen weist die erfindungsgemäße Vorrichtung die folgenden Merkmale auf, und zwar in sämtlichen technisch möglichen Kombinationen:
- - das zweite Trommel-Schieberegister empfängt die Länge des während des vorhergehenden Zyklus dekodierten Kodes direkt von der logischen Einheit;
- - sie weist einen Addierer auf, der einem Speicherelement zugeordnet ist, und der zu jedem Zyklus die Länge des dekodierten Kodes empfängt, diese Längen seit dem letzten Lesevorgang der Eingangsdaten kumuliert, die Verschiebung des ersten Registers und das Lesen neuer Eingangsdaten steuert;
- - sie ist als integrierte VLSI-Schaltung (Very Large Scale Integrated Technology) ausgebildet;
- - sie dient zum Dekodieren eines durch diskrete Kosinus-Transformation (DCT) und Quantifizierung nach der MPEG-Norm kodierten Videosignals;
- - sie dient dem Dekodieren von Informationen, die auf einer interaktiven digitalen CD gespeichert sind;
- - sie dient dem Dekodieren von auf einem Magnetband gespeicherten Informationen;
- - sie dient dem Dekodieren von über Funk übertragenen Informationen;
- Ein Ausführungsbeispiel der Erfindung wird im folgenden unter Bezugnahme auf die zugehörigen Zeichnungen näher beschrieben, welche zeigen:
- Fig. 1 - ein zuvor beschriebenes Beispiel nach dem Stand der Technik;
- Fig. 2 - eine schematische Darstellung eines ersten Ausführungsbeispiels der Erfindung zum besseren Verständnis derselben;
- Fig. 3 - eine schematische Darstellung eines zweiten Ausführungsbeispiels gemäß der Erfindung.
- In beiden Ausführungsbeispielen werden Daten von außen durch eine direkt mit einem ersten Trommel-Schieberegister 11 verbundene Speichereinheit 10 erfaßt.
- Die logische Einheit 12 bewirkt die Dekodierung und liefert den Wert m der Länge des letzten dekodieren Kodes mit variabler Länge einerseits an ein zweites Trommel-Schieberegister 13 und andererseits an einen Addierer 14. Die logische Einheit 12 liefert das Ergebnis der Verarbeitung an ein Speicherelement 15.
- Der Addierer 14 befiehlt, wenn er überläuft (msb = 1) einen neuen Lesevorgang durch die Eingangsspeichereinheit 10.
- Im folgenden wird das erste Ausführungsbeispiel unter Bezugnahme auf die Fig. 2 beschrieben.
- Eine Kumulationsspeichereinheit 17 ist mit dem Ausgang des Addierers 14 verbunden, dessen einen Eingang er über den Ausgang 18 speist, während der andere 19, wie zuvor beschrieben, von der Speichereinheit 15 mit einem Wert m beliefert wird, der die Länge des im vorherigen Taktzyklus dekodierten Kodes wiedergibt.
- Eine Speichereinheit 20 ist zwischen dem ersten Trommel-Schieberegister 11 und dem zweiten Trommel-Schieberegister 13 angeordnet.
- Bei dieser Vorrichtung empfängt das erste Trommel-Schieberegister 11 zu einem gegebenen Takt ein Schiebesteuersignal m+1, das der Summe der Längen der Kodes entspricht, die seit dem letzten, von der Eingangsspeichereinheit 10 bis zum gegenwärtigen Zeitpunkt empfangenen Lesebefehl dekodiert wurden. Die zwischen dem ersten Trommel-Schieberegister 11 und dem zweiten Trommel-Schieberegister 12 angeordnete erste Speichereinheit 1, enthält während dieser Zeit den vorhergehenden Wert, der vom ersten Trommel-Schieberegister 11 geliefert wurde und der Verschiebung entspricht, die von den kumulierten Werten der Längen der Kodes erzeugt wurden, die seit dem Moment des Lesens durch die Eingangsspeichereinheit 10 bis zum Zeitpunkt t-1 dekodiert wurden. Ein von der Speichereinheit 20 erzeugter Wert wird als Eingang von dem Trommel-Schieberegister 13 empfangen, das einen Befehl zum Schieben um m entsprechend der Länge des während des letzten Takts von der logischen Einheit 12 dekodierten Kodes empfängt und an seinem Ausgang zur Übertragung an die logische Einheit 12 bestimmte verschobene Daten der Kumulation der Verschiebung, die während des vorherigen Taktzyklus von dem Trommel-Schieberegister 11 erzeugt wurde, und des eigenen Schiebewertes liefert, das heißt der kumulierten Länge der Kodes, die seit dem Lesebefehl bis zu und einschließlich dem vorherigen Taktzyklus von der logischen Einheit 12 dekodiert wurden.
- Somit greift die logische Einheit 12 unter den von der Speichereinheit 10 gespeicherten Daten auf die gewünschten Daten zu, d. h. auf die exakt auf die bereits dekodierten Kodes folgenden Daten.
- Es ist wichtig, darauf hinzuweisen, daß bei dieser Vorrichtung die Begrenzung der Verarbeitungszeit ausschließlich durch die gemeinsame Wirkung des Trommel-Schieberegisters 13 und der logischen Einheit 12 bewirkt wird.
- Es ist während dieses Taktzeitraums erforderlich, daß das zweite Trommel- Schieberegister 13 den aus dem von der logischen Einheit 12 gelieferten Ergebnis erzeugten Schiebewert m empfängt, die Verschiebung durchführt, so daß die logische Einheit, die Zugriff auf in geeigneter Weise definierte Eingangsdaten hat, seine Verarbeitung durchführen kann.
- Während dieser Zeit kann das erste Trommel-Schieberegister 11, das Informationen bearbeitet, die nicht aus dem vorhergehenden Zyklus t-1, sondern aus dem Zyklus t-2 hervorgehen, seine eigenen Operationen durchführen.
- Da der von den Schieberegistern erzeugte Schiebewert ein begrenzender Faktor der für diese Operationen erforderlichen Zeit ist, wird auf diese Weise ein erheblicher Gewinn erzielt, da das zweite Trommel-Schieberegister 13 lediglich eine Verschiebung durchführen muß, die höchstens gleich der maximalen Länge des möglichen auftretenden Kodes ist. In der Realität ist diese Länge oft wesentlich geringer als die globale Verschiebung. Lediglich die Dauer der Verarbeitung durch das zweite Trommel-Schieberegister 13 wird mit der Dauer der Verarbeitung durch die logische Einheit 12 kumuliert.
- Im Gegenteil dazu ist das Trommel-Schieberegister 11, das selbst in der Lage sein muß, wesentlich größere Verschiebungen zu erzeugen, autonom und kann die Gesamtheit eines Taktzyklus zur Durchführung seiner eigenen Operationen verwenden.
- Im folgenden wird das zweite Ausführungsbeispiel unter Bezugnahme auf Fig. 3 beschrieben, in der die gemeinsamen Elemente, welche dieselbe Funktion wie im ersten Ausführungsbeispiel ausüben, mit denselben Bezugszeichen versehen sind.
- Die Speichereinheit 21 empfängt als Eingang ein vom Addierer 14 erzeugtes Signal, und speist, wie bei dem ersten Ausführungsbeispiel, über ihren Ausgang einerseits den Addierer 14, jedoch auch das erste Trommel-Schieberegister 11.
- Das zweite Trommel-Schieberegister 13 ist direkt mit dem ersten Trommel- Schieberegister 11 verbunden. Wie beim ersten Ausführungsbeispiel empfängt es als Schiebebefehl den Wert m der Länge des letzten dekodierten Kodes.
- Das zweite Trommel-Schieberegister 13 liefert an eine zwischen dem Trommel- Schieberegister 13 und der logischen Einheit 12 angeordnete Speichereinheit 22 verschobene Daten, die aus den von der Eingangsspeichereinheit 10 empfangenen Daten extrahiert sind, entsprechend einer Länge, die gleich der kumulierten Länge der bis zu und einschließlich dem vorhergehenden Takt dekodierten Kodes.
- Die logische Einheit 12 erhält diese Daten von der Speichereinheit 22 und kann auf diese Weise die Verarbeitung durchführen.
- Parallel dazu ist eine Längenlogik 16 vorgesehen, die Länge des im vorherigen Zyklus dekodierten Kodes zu liefern, wobei das zweite Trommel-Schieberegister 13 diesen Wert empfängt und diesen auf den vom ersten Trommel- Schieberegister 11 gelieferten verfügbaren Wert anwendet, und somit in stabiler Weise über die Speichereinheit 22 den für die logische Einheit 12 zur Durchführung des nachfolgenden Zyklus erforderlichen Eingangswert liefert.
- Während dieser Zeit speist der Addierer 14, der den Wert der Länge des letzten dekodierten Kodes empfängt, die Speichereinheit 21, welche den Schiebewert des Trommel-Schieberegisters 11 verändert. Dies bewirkt die Verarbeitung desselben und, durch eine neuerliche Verschiebung, eine Bereitstellung für den nachfolgenden Zyklus.
- Die Zeitspanne, welche die Betriebsgeschwindigkeit dieser Schiebestufe begrenzt, resultiert auch hier aus der Kumulation der für das zweite Register erforderlichen Zeitdauer der Verschiebung, die wie beim vorhergehenden Beispiel auch auf die maximale Länge eines zu erkennenden Kodes begrenzt ist, welche anhand der Verarbeitungszeit der logischen Einheit 12 berechnet wird.
- Seinerseits verfügt das Trommel-Schieberegister 11 über die gesamte Taktdauer zur Durchführung seiner Operation, wobei das Register für eine wesentlich größere Verschiebung geeignet ist, da es sich um die Verschiebung der kumulierten Länge der seit dem letzten Lesebefehl erkannten Kodes handelt.
- Es ist daher ersichtlich, daß bei dem einen und dem anderen Ausführungsbeispiel die Verwendung zweier Schieberegister eine Aufteilung der Schiebeoperation in zwei Unteroperationen ermöglicht, die gleichzeitig miteinander ausgeführt werden. Es handelt sich einerseits um die Hauptverschiebung, die vom ersten Register für einen Wert ausgeführt wird, der gleich dem kumulierten Wert der Längen der bis zum Taktzeitpunkt t-1 erkannten Kodes ist, und andererseits um eine geringere Verschiebung, die dem unter Verwendung der logi schen Operation ermittelten Einzelwert der Länge des zum Zeitpunkt t-1 erkannten Kodes entspricht.
- Diese Unterteilung ermöglicht die Ausbildung von entsprechenden Schaltungen mit einer minimalen Siliziumfläche und dadurch verringerten Herstellungskosten und einem ebenfalls minimalen Energieverbrauch im Gebrauch.
Claims (8)
1. Schiebestufe für einen Dekodierer von digitalen Kodes variabler Länge,
welcher einen Kode pro Taktzyklus dekodiert, mit Einrichtungen zum
- Lesen von aus einem Speicher kommenden Eingangsdaten,
- Liefern eines Wortes in jedem Zyklus an eine logische Dekodiereinheit, wobei
das Wort die maximale Länge eines zu dekodierenden Kodes mit variabler
Länge hat,
- Empfangen der Bitzahl des während des vorhergehenden Taktzyklus
empfangenen Kodes von der logischen Einheit,
- und Durchführen einer Verschiebung in den gelesenen Daten, die dem
kumulierten Wert der Länge der seit dem letzten Lesen der Eingangsdaten
dekodierten Kodes entspricht,
- wobei die Schiebestufe aufweist: ein erstes Trommel-Schieberegister (11) zum
Lesen der Eingangsdaten und zum Durchführen einer Verschiebung in den
gelesenen Daten, die dem kumulativen Wert der Länge der zwischen dem
vorherigen Zyklus und dem Beginn des letzten Lesevorgangs dekodierten
Kodes entspricht, und ein zweites Trommel-Schieberegister (13) zum
Empfangen der vom ersten Register kommenden Daten und zum Durchführen einer
Verschiebung entsprechend der Länge des während des vorhergehenden Zyklus
dekodierten Kodes,
dadurch gekennzeichnet, daß die vom ersten Trommel-Schieberegister (11)
gelieferten Daten direkt dem zweiten Schieberegister (13) zugeführt werden
und daß zwischen dem zweiten Trommel-Schieberegister (13) und der logischen
Einheit (12) ein Speicherelement (22) angeordnet ist.
2. Schiebestufe nach Anspruch 1, dadurch gekennzeichnet, daß das zweite
Trommel-Schieberegister (13) die Länge des während des vorhergehenden
Zyklus dekodierten Kodes direkt von der logischen Einheit (12) empfängt.
3. Schiebestufe nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet,
daß sie einen Addierer (14) aufweist, der einem Speicherelement zugeordnet ist,
und der zu jedem Zyklus die Länge des dekodierten Kodes empfängt, diese
Längen seit dem letzten Lesevorgang der Eingangsdaten kumuliert, die
Verschiebung des ersten Registers und das Lesen neuer Eingangsdaten steuert.
4. Schiebestufe nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß
sie als integrierte VLSI-Schaltung ausgebildet ist.
5. Schiebestufe nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß
sie zum Dekodieren eines durch diskrete Kosinus-Transformation (DCT) und
Quantifizierung nach der MPEG-Norm kodierten Videosignals dient.
6. Schiebestufe nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß
sie dem Dekodieren von Informationen dient, die auf einer interaktiven digitalen
CD gespeichert sind.
7. Schiebestufe nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß
sie dem Dekodieren von auf einem Magnetband gespeicherten Informationen
dient.
8. Schiebestufe nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß
sie dem Dekodieren von über Funk übertragenen Informationen dient.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9401301A FR2716054B1 (fr) | 1994-02-04 | 1994-02-04 | Etage de décalage pour décodeur de codes numériques de longueurs variables. |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69509421D1 DE69509421D1 (de) | 1999-06-10 |
DE69509421T2 true DE69509421T2 (de) | 2000-01-20 |
Family
ID=9459808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69509421T Expired - Fee Related DE69509421T2 (de) | 1994-02-04 | 1995-02-01 | Verschiebungsstufe für einen Dekodierer von digitalen Kodes veränderlicher Länge |
Country Status (5)
Country | Link |
---|---|
US (1) | US5666115A (de) |
EP (1) | EP0666652B1 (de) |
JP (1) | JPH07282594A (de) |
DE (1) | DE69509421T2 (de) |
FR (1) | FR2716054B1 (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0176537B1 (ko) * | 1995-10-14 | 1999-05-01 | 김광호 | 가변길이복호화기의 메모리 인터페이스방법 및 회로 |
US5835035A (en) * | 1995-12-28 | 1998-11-10 | Philips Electronics North America Corporation | High performance variable length decoder with two-word bit stream segmentation and related method |
JP3712422B2 (ja) | 1997-05-07 | 2005-11-02 | シーメンス アクチエンゲゼルシヤフト | デジタルデータの符号化、伝送、復号化のための方法および装置 |
KR100253366B1 (ko) * | 1997-12-03 | 2000-04-15 | 김영환 | 엠펙용 가변길이코드 디코더 |
US7213129B1 (en) * | 1999-08-30 | 2007-05-01 | Intel Corporation | Method and system for a two stage pipelined instruction decode and alignment using previous instruction length |
US7379498B2 (en) * | 2002-03-11 | 2008-05-27 | Broadcom Corporation | Reconstructing a compressed still image by transformation to a compressed moving picture image |
US9626184B2 (en) * | 2013-06-28 | 2017-04-18 | Intel Corporation | Processors, methods, systems, and instructions to transcode variable length code points of unicode characters |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4018133A1 (de) * | 1990-06-06 | 1991-12-12 | Siemens Ag | Anordnung zur decodierung eines in parallelen datenwoertern der breite n vorliegenden datenstroms mit codewoertern unterschiedlicher breite |
US5229863A (en) * | 1990-12-24 | 1993-07-20 | Xerox Corporation | High speed CCITT decompressor |
DE69126198T2 (de) * | 1990-12-24 | 1997-12-04 | Xerox Corp | Datendekodierungsvorrichtung |
JPH05259922A (ja) * | 1992-03-10 | 1993-10-08 | Oki Electric Ind Co Ltd | 可変長符号化器 |
US5245338A (en) * | 1992-06-04 | 1993-09-14 | Bell Communications Research, Inc. | High-speed variable-length decoder |
-
1994
- 1994-02-04 FR FR9401301A patent/FR2716054B1/fr not_active Expired - Fee Related
-
1995
- 1995-02-01 EP EP95400212A patent/EP0666652B1/de not_active Expired - Lifetime
- 1995-02-01 DE DE69509421T patent/DE69509421T2/de not_active Expired - Fee Related
- 1995-02-06 JP JP7017988A patent/JPH07282594A/ja active Pending
- 1995-02-06 US US08/384,560 patent/US5666115A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5666115A (en) | 1997-09-09 |
FR2716054A1 (fr) | 1995-08-11 |
EP0666652B1 (de) | 1999-05-06 |
DE69509421D1 (de) | 1999-06-10 |
JPH07282594A (ja) | 1995-10-27 |
FR2716054B1 (fr) | 1996-04-19 |
EP0666652A1 (de) | 1995-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69116869T2 (de) | Digitale bildkodierung mit einer zufallsabtastung der bilder | |
DE3871998T2 (de) | Fernsehsystem, in dem digitalisierte transformationskodierte bildsignale von einer kodierstation zu einer dekodierstation uebertragen werden. | |
DE69330191T2 (de) | Prädiktive Zwischenbildkodierungsvorrichtung mit Bewegungsausgleich | |
DE69015695T2 (de) | Einrichtung zur Transformationskodierung. | |
DE69624276T2 (de) | System und Verfahren zur variablen Längenkodierung von sich bewegenden Bildern | |
EP0309669B1 (de) | Verfahren zur szenenmodellgestützten Bilddatenreduktion für digitale Fernsehsignale | |
DE69332425T2 (de) | Vorrichtung und Verfahren zur Übertragung von Videosignalen | |
DE69637335T2 (de) | Bildsignalkodierungsmethode und -vorrichtung | |
DE69129595T2 (de) | Systeme und Verfahren zur Kodierung alternierender Halbbilder in Zeilensprungbildsequenzen | |
DE69127739T2 (de) | Bilddatenverarbeitungsgerät | |
DE69223560T2 (de) | Einrichtung zur Verminderung von Quantisierungsstörungen in einem Zwischenbild-Hybrid-Kodierungssystem mit Bewegungskompensation | |
DE69323156T2 (de) | Bilddatenkomprimierungs/Dekomprimierungssystem | |
DE69122595T2 (de) | Aufzeichnungs- und Abspielgerät | |
DE3853225T2 (de) | Aufzeichnungssystem zur Aufzeichnung einer Sequenz von optimal codierten Signalen auf einen ROM. | |
DE19638632A1 (de) | Verfahren und Vorrichtung zur Bildkodierung | |
DE3109795A1 (de) | Bandeinengungsverfahren fuer getoente bilder | |
DE69428034T2 (de) | Bildsignalkodierung und -dekodierung | |
DE19634600A1 (de) | Bildsignalkodiervorrichtung und zugehöriges Verfahren | |
EP1472888B1 (de) | Kontextsensitive kodierung und dekodierung eines videodatenstroms | |
DE69126525T2 (de) | Digitale bildverarbeitung mit filterung der blockkanten | |
DE4408522C2 (de) | Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten | |
DE69328698T2 (de) | Verfahren und Vorrichtung zur Bildcodierung | |
DE69326586T2 (de) | Einrichtung und Verfahren zur Bildkommunikation | |
DE69509421T2 (de) | Verschiebungsstufe für einen Dekodierer von digitalen Kodes veränderlicher Länge | |
DE69835264T2 (de) | Verfahren und Vorrichtung zur Auswahl einer Quantisierungstabelle für digitale Bildkodierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8332 | No legal effect for de | ||
8370 | Indication related to discontinuation of the patent is to be deleted | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |