[go: up one dir, main page]

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änge

Info

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
Application number
DE69509421T
Other languages
English (en)
Other versions
DE69509421D1 (de
Inventor
Oswald Colavin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SA filed Critical STMicroelectronics SA
Publication of DE69509421D1 publication Critical patent/DE69509421D1/de
Application granted granted Critical
Publication of DE69509421T2 publication Critical patent/DE69509421T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion 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.
DE69509421T 1994-02-04 1995-02-01 Verschiebungsstufe für einen Dekodierer von digitalen Kodes veränderlicher Länge Expired - Fee Related DE69509421T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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