DE69232824T2 - Dekoder - Google Patents
DekoderInfo
- Publication number
- DE69232824T2 DE69232824T2 DE69232824T DE69232824T DE69232824T2 DE 69232824 T2 DE69232824 T2 DE 69232824T2 DE 69232824 T DE69232824 T DE 69232824T DE 69232824 T DE69232824 T DE 69232824T DE 69232824 T2 DE69232824 T2 DE 69232824T2
- Authority
- DE
- Germany
- Prior art keywords
- motion vector
- data
- range
- vlc
- variable length
- 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 - Lifetime
Links
- 230000033001 locomotion Effects 0.000 claims description 104
- 239000013598 vector Substances 0.000 claims description 102
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- 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
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive 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)
Description
- Die Erfindung betrifft eine Dekodiervorrichtung für die Benutzung mit einer Kodiervorrichtung für Bewegungsvektoren, das bei der hocheffizienten Kodierung eines Bewegtbildsignals, z. B. auf der Basis der Zwischenbild-(Interframe)-Korrelation, eingesetzt wird.
- Bei der hocheffizienten Kodierung eines Bewegtbildsignals mit Interframe-Korrelation wird die Differenz zwischen Vollbildern kodiert. Dabei wird ein Bewegungsvektor benutzt, um die Bewegung zwischen zwei Vollbildern zu berücksichtigen.
- Und zwar wird ein Bild in Blöcke mit einer bestimmten Größe unterteilt (z. B. in Blöcke mit jeweils 16 · 16 Bildelementen, wie in Fig. 1A dargestellt). In diesem Fall zeigt ein Bewegungsvektor an, in welche Position eines anderen Bilds (Fig. 1B), von dem die Differenz herangezogen wird, sich ein bestimmter Block (konkreter Block) bewegt hat.
- Wenn die Differenz zwischen zwei Vollbildern erzeugt wird und die Differenz gegenüber einer durch einen Bewegungsvektor verschobenen Position herangezogen wird, ist die Differenz ein Minimum, um eine hocheffiziente Kodierung zu ermöglichen. Wenn man, umgekehrt betrachtet, einen Bewegungsvektor gewinnt, bei dem die Differenz zwischen Vollbildern ein Minimum wird, kann eine solche hocheffiziente Kodierung durchgeführt werden.
- Um die Effizienz bei der Übertragung des Bewegungsvektors zu verbessern, ist es bekannt, den Bewegungsvektor einer variablen Längenkodierung zu unterziehen. Das heißt, die Bilddaten werden, wie in Fig. 2 dargestellt, einer Bewegungsvektor-Detektorschaltung 10 zugeführt, um einen Bewegungsvektor zu delektieren. Der Bewegungsvektor wird einer variablen Längenkodierschaltung 20 zugeführt und kodiert, um einen variablen Längencode (VLC-Code) zu gewinnen.
- Was den Bewegungsvektor betrifft, so sind seine Größe und Genauigkeit theoretisch beliebig. Der Bereich für die Größe des Bewegungsvektors kann beispielsweise ±7 Bildelemente oder ±15 Bildelemente gegenüber dem Zentrum betragen, das den Ursprung bildet. Die Einheit der Genauigkeit kann 1 Bildelement oder 0,5 Bildelemente betragen.
- Es werde der Fall betrachtet, daß ein solcher Bewegungsvektor einer variablen Längenkodierung unterzogen wird. Wenn beispielsweise ein Bewegungsvektor im Bereich von ±7 Bildelementen und ein Bewegungsvektor im Bereich von ±15 Bildelementen kodiert werden, benötigt man zwei Arten von Tabellen für die variable Längenkodierung (im folgenden kurz als variable Längenko diertabellen bezeichnet). Dabei wird die Tabelle für den Bereich von ±7 Bildelementen mit einer Genauigkeit von 1 Bildelement zu einer Tabelle, die 15 Arten von Elementen enthält, nämlich 7, 6, ..., 0, ..., -6, -7, während die Tabelle für den Bereich von ±15 Bildelementen zu einer Tabelle wird, die 31 Arten von Elementen enthält, nämlich 15, 14, ..., 0, ..., -14, -15. Die Tabelle für den Bereich von ±7 Bildelementen mit einer Genauigkeit 0,5 Bildelementen wird zu einer Tabelle mit 29 Arten von Elementen, nämlich 7,0, 6,5, ..., 0, ..., -6,5, -7,0.
- Wenn mehrere Arten von Vektorbereichen und mehrere Arten von Genauigkeit vorliegen, wächst so die Zahl der benötigten Tabellen an, so daß der Hardwareaufwand vergrößert wird.
- Es ist ein Ziel der Erfindung, eine Vorrichtung zur variablen Längendekodierung von Bewegungsvektoren zu schaffen, mit der der Hardwareaufwand reduziert werden kann, wenn mehrere Arten von Bewegungsvektorbereichen und -genauigkeiten vorliegen.
- Gemäß vorliegender Erfindung ist eine Dekodiervorrichtung zum Dekodieren von variablen Längencodes vorgesehen, die Bewegungsvektoren, die für die Bewegung innerhalb von Bildern kennzeichnend sind, repräsentieren und von einer Kodiervorrichtung erzeugt werden, welche aufweist:
- eine auf Bilddaten ansprechende Einrichtung zur Erzeugung von Bewegungsvektoren und eine Einrichtung zur variablen Längenkodierung der Bewegungsvektoren, wobei die Einrichtung zur variablen Längenkodierung eine Speicherschaltung zur Speicherung einer Tabelle von VLC- Daten enthält, die einen vorgegebenen Satz von Bewegungsvektorwerten repräsentieren,
- eine auf die Bewegungsvektoren ansprechende Steuereinrichtung zum Auslesen der VLC- Daten aus der Speicherschaltung und zur Erzeugung von zusätzlichen Daten zu den aus der Speicherschaltung ausgelesenen VLC-Daten, welche die von den VLC-Daten oder einem Teil der VLC-Daten repräsentierten Werte ändern, und
- eine Einrichtung zum Kombinieren der VLC-Daten mit den zusätzlichen Daten,
- und wobei die Dekodiervorrichtung aufweist:
- eine Einrichtung zum Trennen der VLC-Daten und der die VLC-Daten begleitenden zusätzlichen Daten,
- eine Speicherschaltung zur Speicherung von Umwandlungsdaten für die inverse Kodierung der VLC-Daten, wobei diese Speicherschaltung durch die VLC-Daten adressiert wird, und
- eine auf die zusätzlichen Daten und die invers kodierten VLC-Daten ansprechende Einrichtung zur Erzeugung von Bewegungsvektorwerten, die durch die invers kodierten VLC-Daten und die zusätzlichen Daten repräsentiert werden.
- Die oben beschriebenen sowie weitere Ziele, Merkmale und Vorteile der Erfindung werden durch die folgende detaillierte Beschreibung weiter verdeutlicht, die auf die anliegenden Zeichnungen Bezug nimmt.
- Fig. 1A und 1B zeigen Diagramme, in denen das Konzept eines Bewegungsvektors dargestellt ist,
- Fig. 2 zeigt ein Blockdiagramm einer Schaltang zur Bewegungsvektordetektierung und -kodierung,
- Fig. 3 zeigt ein Beispiel für eine variable Längenkodiertabelle,
- Fig. 4 zeigt ein Diagramm eines Beispiels einer variablen Längenkodiertabelle,
- Fig. 5 zeigt ein Blockschaltbild eines Beispiels einer Bewegungsvektorkodierschaltung,
- Fig. 6 zeigt ein Blockschaltbild eines Beispiels einer Bewegungsvektordekodierschaltung,
- Fig. 7 zeigt ein Diagramm eines Beispiels einer variablen Längenkodiertabelle,
- Fig. 8 zeigt ein Diagramm eines Beispiels einer variablen Längenkodiertabelle,
- Fig. 9 zeigt ein Diagramm eines Beispiels einer variablen Längenkodiertabelle.
- Im folgenden wird anhand der Zeichnungen ein Ausführungsbeispiel der Erfindung beschrieben. In diesem Ausführungsbeispiel erfolgt die variable Längenkodierung für einen Bewegungsvektor im Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement und für einen Bewegungsvektor im Bereich von ±4 Bildelementen mit einer Genauigkeit von 1 Bildelement.
- Fig. 3 zeigt eine variable Längenkodiertabelle (d. h. die Beziehung zwischen einem Wert des Bewegungsvektors und einem VLC-Code) für den Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement. Die Tabelle enthält 5 Arten von Elementen, nämlich 2, 1, 0, -1 und -2.
- Die variable Längenkodierung eines Bewegungsvektors im Bereich von ±4 Bildelementen wird auf der Basis einer variablen Längenkodiertabelle für einen Bereich von ±2 Bildelementen durchgeführt.
- Wenn man zunächst annimmt, daß ein Bewegungsvektor den Wert X hat, erhält man den Quotienten Y und den Rest Z, wenn man X durch 2 teilt.
- 1) X = 2*Y + Z
- Als nächstes wird ein VLC-Code erzeugt, indem man den Rest Z als zusätzliches Bit zu dem (nach der Tabelle von Fig. 3 kodierten) VLC-Code addiert, der dem Quotienten Y entspricht. Dies ist der Kodierung mit einer Genauigkeit von 1 Bildelement in der variablen Längenkodiertabelle für den Bereich von ±4 Bildelementen äquivalent, wie dies in Fig. 4 dargestellt ist. Die variable Längenkodiertabelle von Fig. 3 wird entsprechend erweitert. Die variable Längenkodiertabelle von Fig. 4 besitzt 9 Arten von Elementen, nämlich 4, 3, ..., 0, ..., -3, -4.
- Auf der anderen Seite erhält man für die Kodierung eines Bewegungsvektors im Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement direkt einen dem Bewegungsvektor X entsprechenden VLC-Code, wenn man die in Fig. 3 dargestellte variable Längenkodiertabelle benutzt.
- Damit läßt sich auf der Basis der variablen Längenkodiertabelle, die für den Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement vorgesehen ist, die Kodierung eines Bewegungsvektors im Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement und außerdem die Kodierung eines Bewegungsvektors mit dem Bereich von ±4 Bildelementen mit einer Genauigkeit von einem 1 Bildelement durchführen.
- Wie oben erwähnt wurde, kann ein kodierter Bewegungsvektor auf der Dekodiererseite mit der zu der oben beschriebenen Operation inversen Operation reproduziert werden, indem man ein Flag überträgt, das angibt, ob der Bewegungsvektor im Bereich von ±2 Bildelementen oder im Bereich von ±4 Bildelementen liegt.
- Fig. 5 zeigt ein Beispiel für eine Schaltung zur Kodierung eines Bewegungsvektors im Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement sowie zur Kodierung eines Bewegungsvektors im Bereich von ±4 Bildelementen mit einer Genauigkeit von 1 Bildelement auf der Basis einer variablen Längenkodiertabelle für ±2 Bildelemente mit einer Genauigkeit von 1 Bildelement.
- In der Anordnung von Fig. 5 wird einer Rechenschaltung 1 ein Bewegungsvektor im Bereich von ±4 Bildelementen zugeführt. Die Rechenschaltung 1 führt die oben beschriebene Berechnung nach Gleichung (1) aus und liefert den Quotienten Y und den Rest Z.
- Mit 2 ist ein ROM bezeichnet, das die variable Längenkodiertabelle von Fig. 3 verkörpert. Wenn ein Bewegungsvektor im Bereich von ±2 Bildelementen liegt, wird er dem ROM 2 direkt als Adresse zugeführt. Wenn der Bewegungsvektor hingegen im Bereich von ±4 Bildelementen liegt, wird der in der Rechenschaltung 1 erzeugte Quotient Y dem ROM 2 als Adresse zugeführt.
- Wenn der Bewegungsvektor im Bereich von ±2 Bildelementen liegt, bildet das Ausgangssignal des ROM 2 den VLC-Code. Wenn der Bewegungsvektor hingegen im Bereich von ±4 Bildelementen liegt, fügt die Addierschaltung 3 zu dem Ausgangssignal des ROM 2 den von der Rechenschaltung 1 gelieferten Rest Z als zusätzliches Bit hinzu, um einen VLC-Code als Ausgangssignal zu erzeugen.
- Auf diese Weise können in dem vorliegenden Beispiel der Bewegungsvektor im Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement und der Bewegungsvektor im Bereich von ±4 Bildelementen mit einer Genauigkeit von 1 Bildelement kodiert werden, indem man die einzige variable Längenkodiertabelle (ROM 2) benutzt, um den Hardwareaufwand zu reduzieren.
- Fig. 6 zeigt eine Dekodierschaltung, die der Kodierschaltung von Fig. 5 entspricht. Auf der Basis eines Flags, das mit dem VLC-Code gesendet wird, wird festgestellt, ob der VLC-Code sich auf einen Bewegungsvektor im Bereich von ±2 Bildelementen bezieht oder auf einen Bewegungsvektor im Bereich von ±4 Bildelementen.
- In Fig. 6 bezeichnet das Bezugszeichen 4 eine Trennschaltung, der ein VLC-Code zugeführt wird, der sich auf einen Bewegungsvektor im Bereich von ±4 Bildelementen bezieht. Die Trennschaltung 4 führt eine Trennung in ein zusätzliches Bit (Rest Z) und die anderen Bits durch.
- Mit 5 ist ein ROM bezeichnet, das eine zu der variablen Längenkodiertabelle von Fig. 3 inverse Umwandlungstabelle darstellt. Dem ROM 5 wird ein VLC-Code direkt als Adresse zugeführt, wenn der VLC-Code sich auf einen Bewegungsvektor im Bereich von ±2 Bildelementen bezieht. Wenn der VLC-Code sich hingegen auf einen Bewegungsvektor im Bereich von ±4 Bildelementen bezieht, werden die anderen Bits und nicht das in der Trennschaltung 4 abgetrennte zusätzliche Bit als Adresse zugeführt.
- Wenn der VLC-Code sich auf einen Bewegungsvektor im Bereich von ±2 Bildelementen bezieht, bildet das Ausgangssignal des ROM 5 den Bewegungsvektor. Wenn der VLC-Code sich hingegen auf einen Bewegungsvektor im Bereich von ±4 Bildelementen bezieht, bildet das Ausgangssignal der Rechenschaltung 6 den Bewegungsvektor. In der Rechenschaltung 6 wird deshalb nach Gleichung (1) aus dem Ausgangssignal Y des ROM 5 und dem in der Trennschaltung 4 abgetrennten zusätzlichen Bit Z der Wert X gewonnen.
- Als nächstes wird ein Beispiel erläutert, bei dem ein Bewegungsvektor im Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement sowie ein Bewegungsvektor im Bereich von ±2 Bildelementen mit einer Genauigkeit von 0,5 Bildelementen kodiert werden.
- Die Kodierung eines Bewegungsvektor im Bereich von ±2 Bildelementen mit einer Genauigkeit von 0,5 Bildelementen erfolgt auf der Basis der variablen Längenkodiertabelle von Fig. 3.
- Wenn man annimmt, daß der Wert des Bewegungsvektors gleich X ist, erhält man zunächst einen Quotienten Y und einen Rest Z, wenn man 2X durch 2 dividiert.
- (2) 2*X = 2*Y + Z
- Wenn man nun annimmt, daß Y, Z ganzzahlig sind, wird Y ein ganzzahliger Teil von X. Dabei wird Z ein Wert, der doppelt so groß ist wie der Dezimalteil, der "0" oder "1" sein soll.
- Als nächstes wird ein VLC-Code erzeugt, indem man den Rest Z als zusätzliches Bit zu einem (nach der Tabelle von Fig. 3 kodierten) VLC-Code addiert, der dem Quotienten Y entspricht. Infolgedessen ist dies einer Kodierung mit einer Genauigkeit von 0,5 Bildelementen bei der variablen Längenkodierung für den Bereich von ±2 Bildelementen äquivalent, wie in Fig. 7 dargestellt, und die variable Längenkodiertabelle von Fig. 3 wird entsprechend erweitert. Die variable Längenkodiertabelle von Fig. 7 enthält 9 Arten von Elementen, nämlich 2,0, 1,5, ..., 0, ..., -1,5, -2,0.
- Für die Kodierung eines Bewegungsvektors im Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement erhält man direkt einen dem Bewegungsvektor X entsprechenden VLC- Code, indem man die variable Längenkodiertabelle von Fig. 3 benutzt.
- Deshalb läßt sich auf der Basis der variablen Längenkodiertabelle für den Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement nicht nur ein Bewegungsvektor im Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement sondern auch ein Bewegungsvektor im Bereich von ±2 Bildelementen mit einer Genauigkeit von 0,5 Bildelementen kodieren.
- Wie oben festgestellt wurde, kann der kodierte Bewegungsvektor auf der Dekodiererseite mit der zu der oben beschriebenen Operation inversen Operation genau reproduziert werden, indem ein Flag übertragen wird, das angibt, ob der Bewegungsvektor eine Genauigkeit von 1 Bildelement oder eine Genauigkeit von 0,5 Bildelementen hat.
- Auf der Basis der variablen Längenkodiertabelle für den Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement lassen sich Schaltungen zum Kodieren und Dekodieren eines Bewegungsvektors im Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement und eines Bewegungsvektors im Bereich von ±2 Bildelementen mit einer Genauigkeit von 0,5 Bildelementen aufbauen, die den Schaltungen von Fig. 5 und 6 entsprechen. Die Kodierung kann mit einer einzigen variablen Längenkodiertabelle (ROM 2) durchgeführt werden, so daß der Hardwareaufwand reduziert wird.
- Als nächstes wird der Fall betrachtet, daß ein Bewegungsvektor einer differentiellen PCM (DPCM) unterzogen wird und nur die Differenz zu einem Bewegungsvektor eines benachbarten Blocks übertragen wird.
- Wenn der Wert eines Bewegungsvektors eines bestimmten Blocks beispielsweise gleich 4 ist, wird 4 - 3 = 1 erzeugt, wenn der Wert des nächsten Bewegungsvektors gleich 3 ist. In diesem Fall wird nur der Wert 1 der Differenz übertragen. Da die Übertragung mit einem VLC-Code erfolgt, der kürzer ist als der dem Wert 4 entsprechende VLC-Code, ist eine vorteilhafte Übertragung möglich.
- Für die DPCM eines Bewegungsvektors ist nun ein Verfahren bekannt, das als gespiegelte DPCM-Methode bezeichnet wird. Dies ist eine Methode, die bei der DPCM eines Wertes benutzt wird, dessen Bereich wie ein Bewegungsvektor festgelegt wird. Wie Fig. 8 und 9 zeigen, sind einem VLC-Code z. B. zwei Werte zugeordnet. Fig. 8 und 9 zeigen variable Längenkodiertabellen für die DPCM-Übertragung von Bewegungsvektoren, die im Bereich ±7 Bildelementen liegen, mit einer Genauigkeit von 1 Bildelement und im Bereich von ±3 Bildelementen mit einer Genauigkeit von 1 Bildelement.
- Da in Fig. 9 der Bereich eines Bewegungsvektors einen Umfang von ±3 Bildelementen hat, wird das Ergebnis der DPCM gleich ±6. Wenn beispielsweise angenommen wird, daß der Wert des vorangehenden Bewegungsvektors gleich 3 und der Wert des laufenden Bewegungsvektors gleich 1 ist, erhält man 3 - 1 = 2. Infolgedessen ist der VLC-Code gleich "0010".
- Wenn nach der Übertragung dieses Codes eine Rückumwandlung in einen Bewegungsvektor durchgeführt wird, ist der VLC-Code gleich "0010". Deshalb ist der Wert gleich 2 oder -6. Da im vorliegenden Fall die Dekodiererseite weiß, daß der Wert des vorangehenden Bewegungsvektors gleich 3 ist, ist der Wert des Bewegungsvektors gleich 3 - 2 = 1 oder 3 - (-6) = 9. Da der Bewegungsvektor im Bereich von ±3 Bildelementen liegt, kann er nicht den Wert 9 annehmen und wird deshalb gleich 1.
- Bei dem oben beschriebenen gespiegelten DPCM-Verfahren benötigt man eine Tabelle, die dem Bereich des Bewegungsvektors proportional ist. Für den Fall, daß die variable Längenkodierung durch DPCM für einen Bewegungsvektor durchgeführt wird, dessen Bereich z. B. ±7 Bildelemente und ±3 Bildelemente abdeckt, ist deshalb ein Verfahren vorgesehen, bei dem die in Fig. 8 und 9 dargestellten variablen Längenkodiertabellen erstellt werden. Es gibt auch z. B. ein Verfahren, bei dem nur die in Fig. 8 dargestellte variable Längenkodiertabelle erstellt wird, so daß DPCM-Werte ±6 eines Bewegungsvektors im Bereich von ±3 Bildelementen nach Maßgabe der Tabelle von Fig. 8 einer variablen Längenkodierung unterzogen werden.
- Da bei dem erstgenannten Verfahren zwei Tabellen benötigt werden, ist der Hardwareaufwand entsprechend groß. Bei dem letztgenannten Verfahren ist hingegen die Wahrscheinlichkeit groß, daß in der Tabelle von Fig. 8 ein längerer Code generiert wird als in der Tabelle von Fig. 9, so daß sich die Effizienz verschlechtert.
- Um diese Nachteile zu beseitigen, ist wie in dem oben beschriebenen Ausführungsbeispiel ein Flag vorgesehen, das den Bereich eines Bewegungsvektors angibt. Für die variable Längenkodie rung des Bewegungsvektors wird nur die in Fig. 8 dargestellte Tabelle erstellt. Wenn in diesem Fall der Bereich des Bewegungsvektors ±7 Bildelemente beträgt, erfolgt die Kodierung unter Verwendung der gesamten Tabelle. Wenn hingegen der Bereich des Bewegungsvektors ±3 Bildelemente beträgt, wird der durch eine gestrichelte Linie gekennzeichnete Bereich für die Kodierung durch die in Fig. 9 dargestellte Tabelle ersetzt.
- Durch die Übertragung eines Flags, das den Bereich des Bewegungsvektors angibt, zusammen mit dem so kodierten VLC-Code wird der Bewegungsvektor durch die Erstellung einer Referenztabelle, wie sie in Fig. 8 dargestellt ist, auf der Dekodiererseite korrekt reproduziert, und beim Dekodieren wird die Tabelle von Fig. 8 nur dann durch die Tabelle von Fig. 9 ersetzt, wenn das Flag zur Kennzeichnung des Bewegungsvektorbereichs den Bereich von ±3 Bildelementen angibt.
- Auf diese Weise kann durch die Benutzung einer Referenztabelle und das Ersetzen der Referenztabelle der Hardwareaufwand im Vergleich zu dem Fall, daß mehrere Tabellen vorgesehen sind, herabgesetzt werden.
- Bei der Erfindung genügt eine variable Längenkodier-Referenztabelle für mehrere Arten von Bewegungsvektorbereichen und -genauigkeiten, so daß der Hardwareaufwand herabgesetzt wird. Da die Erfindung durch das Erweitern der Referenztabelle an einen Bewegungsvektor mit einem breiten Bereich angepaßt werden kann und auch an einen Bewegungsvektor mit einem engen Bereich angepaßt werden kann, ist der Vorteil größerer Flexibilität gegeben. Durch Erweiterung der Referenztabelle kann außerdem die Genauigkeit gesteigert werden.
- Vorangehend wurde anhand der Zeichnungen ein bevorzugtes Ausführungsbeispiel der Erfindung beschrieben. Die Erfindung ist selbstverständlich nicht auf dieses Ausführungsbeispiel beschränkt. Der einschlägige Fachmann kann vielmehr zahlreiche Änderungen und Modifizierungen vornehmen, ohne daß dadurch der durch die Ansprüche definierte Schutzbereich der Erfindung verlassen wird.
Claims (1)
1. Dekodiervorrichtung zum Dekodieren von variablen Längencodes (VLC), die
Bewegungsvektoren, die für die Bewegung innerhalb von Bildern kennzeichnend sind, repräsentieren und
von einer Kodiervorrichtung erzeugt werden, welche aufweist:
eine auf Bilddaten ansprechende Einrichtung (10) zur Erzeugung von
Bewegungsvektoren und eine Einrichtung (20) zur variablen Längenkodierung der Bewegungsvektoren,
wobei die Einrichtung (20) zur variablen Längenkodierung eine Speicherschaltung (2) zur
Speicherung einer Tabelle von VLC-Daten enthält, die einen vorgegebenen Satz von
Bewegungsvektorwerten repräsentieren,
eine auf die Bewegungsvektoren ansprechende Steuereinrichtung (1) zum Auslesen der
VLC-Daten aus der Speicherschaltung und zur Erzeugung von zusätzlichen Daten zu den aus
der Speicherschaltung (2) ausgelesenen VLC-Daten, welche die von den VLC-Daten oder
einem Teil der VLC-Daten repräsentierten Werte ändern, und
eine Einrichtung (3) zum Kombinieren der VLC-Daten mit den zusätzlichen Daten,.
und wobei die Dekodiervorrichtung aufweist:
eine Einrichtung (4) zum Trennen der VLC-Daten und der die VLC-Daten begleitenden
zusätzlichen Daten,
eine Speicherschaltung (5) zur Speicherung von Umwandlungsdaten für die inverse
Kodierung der VLC-Daten, wobei diese Speicherschaltung durch die VLC-Daten adressiert
wird, und
eine auf die zusätzlichen Daten und die invers kodierten VLC-Daten ansprechende
Einrichtung (6) zur Erzeugung von Bewegungsvektorwerten, die durch die invers kodierten
VLC-Daten und die zusätzlichen Daten repräsentiert werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3194576A JPH0541862A (ja) | 1991-08-03 | 1991-08-03 | 動きベクトルの可変長符号化方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69232824D1 DE69232824D1 (de) | 2002-11-21 |
DE69232824T2 true DE69232824T2 (de) | 2003-08-07 |
Family
ID=16326838
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69232824T Expired - Lifetime DE69232824T2 (de) | 1991-08-03 | 1992-07-28 | Dekoder |
DE69232597T Expired - Lifetime DE69232597T2 (de) | 1991-08-03 | 1992-07-28 | Kodierungsverfahren |
DE69229153T Expired - Lifetime DE69229153T2 (de) | 1991-08-03 | 1992-07-28 | Gerät und Verfahren zur variablen Längenkodierung für einen Bewegungsvektor |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69232597T Expired - Lifetime DE69232597T2 (de) | 1991-08-03 | 1992-07-28 | Kodierungsverfahren |
DE69229153T Expired - Lifetime DE69229153T2 (de) | 1991-08-03 | 1992-07-28 | Gerät und Verfahren zur variablen Längenkodierung für einen Bewegungsvektor |
Country Status (5)
Country | Link |
---|---|
US (1) | US5298991A (de) |
EP (5) | EP0527011B1 (de) |
JP (4) | JPH0541862A (de) |
DE (3) | DE69232824T2 (de) |
HK (3) | HK1013570A1 (de) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428396A (en) * | 1991-08-03 | 1995-06-27 | Sony Corporation | Variable length coding/decoding method for motion vectors |
JP3025827B2 (ja) * | 1993-09-14 | 2000-03-27 | 松下電器産業株式会社 | 可変長コード化装置 |
GB2287602B (en) * | 1994-03-16 | 1998-06-03 | Hyundai Electronics Ind | Motion vector decoding apparatus and method |
JP3552811B2 (ja) * | 1995-09-29 | 2004-08-11 | 三菱電機株式会社 | ディジタル映像信号符号化装置および復号化装置 |
US7263127B1 (en) | 1998-04-02 | 2007-08-28 | Intel Corporation | Method and apparatus for simplifying frame-based motion estimation |
US7046734B2 (en) * | 1998-04-02 | 2006-05-16 | Intel Corporation | Method and apparatus for performing real-time data encoding |
US6904174B1 (en) * | 1998-12-11 | 2005-06-07 | Intel Corporation | Simplified predictive video encoder |
US6983018B1 (en) | 1998-11-30 | 2006-01-03 | Microsoft Corporation | Efficient motion vector coding for video compression |
JP3681342B2 (ja) | 2000-05-24 | 2005-08-10 | 三星電子株式会社 | 映像コーディング方法 |
US7003035B2 (en) | 2002-01-25 | 2006-02-21 | Microsoft Corporation | Video coding methods and apparatuses |
US7620109B2 (en) * | 2002-04-10 | 2009-11-17 | Microsoft Corporation | Sub-pixel interpolation in motion estimation and compensation |
US7305034B2 (en) * | 2002-04-10 | 2007-12-04 | Microsoft Corporation | Rounding control for multi-stage interpolation |
US20040001546A1 (en) | 2002-06-03 | 2004-01-01 | Alexandros Tourapis | Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation |
US7280700B2 (en) * | 2002-07-05 | 2007-10-09 | Microsoft Corporation | Optimization techniques for data compression |
US7154952B2 (en) | 2002-07-19 | 2006-12-26 | Microsoft Corporation | Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures |
US7212681B1 (en) | 2003-01-15 | 2007-05-01 | Cisco Technology, Inc. | Extension of two-dimensional variable length coding for image compression |
US7194137B2 (en) * | 2003-05-16 | 2007-03-20 | Cisco Technology, Inc. | Variable length coding method and apparatus for video compression |
US20050013498A1 (en) | 2003-07-18 | 2005-01-20 | Microsoft Corporation | Coding of motion vector information |
US10554985B2 (en) | 2003-07-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | DC coefficient signaling at small quantization step sizes |
US7738554B2 (en) | 2003-07-18 | 2010-06-15 | Microsoft Corporation | DC coefficient signaling at small quantization step sizes |
US7426308B2 (en) * | 2003-07-18 | 2008-09-16 | Microsoft Corporation | Intraframe and interframe interlace coding and decoding |
US7499495B2 (en) * | 2003-07-18 | 2009-03-03 | Microsoft Corporation | Extended range motion vectors |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US7317839B2 (en) * | 2003-09-07 | 2008-01-08 | Microsoft Corporation | Chroma motion vector derivation for interlaced forward-predicted fields |
US7599438B2 (en) * | 2003-09-07 | 2009-10-06 | Microsoft Corporation | Motion vector block pattern coding and decoding |
US7577200B2 (en) | 2003-09-07 | 2009-08-18 | Microsoft Corporation | Extended range variable length coding/decoding of differential motion vector information |
US7620106B2 (en) | 2003-09-07 | 2009-11-17 | Microsoft Corporation | Joint coding and decoding of a reference field selection and differential motion vector information |
US7567617B2 (en) * | 2003-09-07 | 2009-07-28 | Microsoft Corporation | Predicting motion vectors for fields of forward-predicted interlaced video frames |
US7616692B2 (en) | 2003-09-07 | 2009-11-10 | Microsoft Corporation | Hybrid motion vector prediction for interlaced forward-predicted fields |
US7623574B2 (en) | 2003-09-07 | 2009-11-24 | Microsoft Corporation | Selecting between dominant and non-dominant motion vector predictor polarities |
US8064520B2 (en) * | 2003-09-07 | 2011-11-22 | Microsoft Corporation | Advanced bi-directional predictive coding of interlaced video |
US7492956B2 (en) * | 2004-08-18 | 2009-02-17 | Cisco Technology, Inc. | Video coding using multi-dimensional amplitude coding and 2-D non-zero/zero cluster position coding |
US7471841B2 (en) * | 2004-06-15 | 2008-12-30 | Cisco Technology, Inc. | Adaptive breakpoint for hybrid variable length coding |
US7454073B2 (en) * | 2004-06-15 | 2008-11-18 | Cisco Technology, Inc. | Video compression using multiple variable length coding processes for multiple classes of transform coefficient blocks |
US7499595B2 (en) * | 2004-08-18 | 2009-03-03 | Cisco Technology, Inc. | Joint amplitude and position coding for photographic image and video coding |
US7471840B2 (en) * | 2004-08-18 | 2008-12-30 | Cisco Technology, Inc. | Two-dimensional variable length coding of runs of zero and non-zero transform coefficients for image compression |
US7454076B2 (en) * | 2004-06-15 | 2008-11-18 | Cisco Technology, Inc. | Hybrid variable length coding method for low bit rate video coding |
US7499596B2 (en) | 2004-08-18 | 2009-03-03 | Cisco Technology, Inc. | Amplitude coding for clustered transform coefficients |
JPWO2006011197A1 (ja) * | 2004-07-27 | 2008-05-01 | 三菱電機株式会社 | 符号化データ再符号化装置及びその復号装置並びにプログラム |
US7680349B2 (en) | 2004-08-18 | 2010-03-16 | Cisco Technology, Inc. | Variable length coding for clustered transform coefficients in video compression |
US7620258B2 (en) * | 2004-08-18 | 2009-11-17 | Cisco Technology, Inc. | Extended amplitude coding for clustered transform coefficients |
US8295343B2 (en) * | 2005-11-18 | 2012-10-23 | Apple Inc. | Video bit rate control method |
US8780997B2 (en) | 2005-11-18 | 2014-07-15 | Apple Inc. | Regulation of decode-side processing based on perceptual masking |
US8031777B2 (en) | 2005-11-18 | 2011-10-04 | Apple Inc. | Multipass video encoding and rate control using subsampling of frames |
US8233535B2 (en) | 2005-11-18 | 2012-07-31 | Apple Inc. | Region-based processing of predicted pixels |
US20070116117A1 (en) * | 2005-11-18 | 2007-05-24 | Apple Computer, Inc. | Controlling buffer states in video compression coding to enable editing and distributed encoding |
US7242328B1 (en) * | 2006-02-03 | 2007-07-10 | Cisco Technology, Inc. | Variable length coding for sparse coefficients |
US8254455B2 (en) * | 2007-06-30 | 2012-08-28 | Microsoft Corporation | Computing collocated macroblock information for direct mode macroblocks |
US8189666B2 (en) | 2009-02-02 | 2012-05-29 | Microsoft Corporation | Local picture identifier and computation of co-located information |
ES2468795T3 (es) | 2009-07-09 | 2014-06-17 | Tomtom International B.V. | Dispositivo de navegación y método para el cálculo de ruta con dependencia temporal |
US9749642B2 (en) | 2014-01-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Selection of motion vector precision |
US9774881B2 (en) | 2014-01-08 | 2017-09-26 | Microsoft Technology Licensing, Llc | Representing motion vectors in an encoded bitstream |
US9942560B2 (en) | 2014-01-08 | 2018-04-10 | Microsoft Technology Licensing, Llc | Encoding screen capture data |
CN113039780B (zh) | 2018-11-17 | 2023-07-28 | 北京字节跳动网络技术有限公司 | 视频处理中用运动矢量差的Merge |
WO2020125751A1 (en) | 2018-12-21 | 2020-06-25 | Beijing Bytedance Network Technology Co., Ltd. | Information signaling in current picture referencing mode |
CN113196771B (zh) | 2018-12-21 | 2023-12-22 | 北京字节跳动网络技术有限公司 | 基于运动矢量精度的运动矢量范围 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06101841B2 (ja) * | 1984-01-11 | 1994-12-12 | 日本電気株式会社 | 動画像信号の符号化方法およびその装置 |
AU579550B2 (en) * | 1985-06-10 | 1988-11-24 | Nec Corporation | Movement compensation predictive encoder for a moving picture signal with a reduced amount of information |
ATE108587T1 (de) * | 1986-09-13 | 1994-07-15 | Philips Nv | Verfahren und schaltungsanordung zur bitratenreduktion. |
CA1296430C (en) * | 1986-11-10 | 1992-02-25 | Masahide Kaneko | Encoding system capable of accomplishing a high efficiency by anterior and/or posterior processing to quantization |
US4816914A (en) * | 1987-01-07 | 1989-03-28 | Pictel Corporation | Method and apparatus for efficiently encoding and decoding image sequences |
US4995059A (en) * | 1988-01-14 | 1991-02-19 | Canon Kabushiki Kaisha | Predictive coding device |
CA2000156C (en) * | 1989-02-14 | 1995-05-02 | Kohtaro Asai | Picture signal encoding and decoding apparatus |
EP0419752B1 (de) * | 1989-09-25 | 1995-05-10 | Rai Radiotelevisione Italiana | Umfassendes System zur Codierung und Übertragung von Videosignalen mit Bewegungsvektoren |
-
1991
- 1991-08-03 JP JP3194576A patent/JPH0541862A/ja active Pending
-
1992
- 1992-07-24 US US07/918,010 patent/US5298991A/en not_active Expired - Lifetime
- 1992-07-28 EP EP92306852A patent/EP0527011B1/de not_active Expired - Lifetime
- 1992-07-28 EP EP98203273A patent/EP0891091B1/de not_active Expired - Lifetime
- 1992-07-28 DE DE69232824T patent/DE69232824T2/de not_active Expired - Lifetime
- 1992-07-28 EP EP98203272A patent/EP0891090B1/de not_active Expired - Lifetime
- 1992-07-28 EP EP00109706A patent/EP1028592B1/de not_active Expired - Lifetime
- 1992-07-28 DE DE69232597T patent/DE69232597T2/de not_active Expired - Lifetime
- 1992-07-28 DE DE69229153T patent/DE69229153T2/de not_active Expired - Lifetime
- 1992-07-28 EP EP00109705A patent/EP1032210B1/de not_active Expired - Lifetime
-
1998
- 1998-08-03 JP JP10219459A patent/JPH11112996A/ja active Pending
- 1998-08-03 JP JP10219460A patent/JPH11113004A/ja active Pending
- 1998-08-03 JP JP10219458A patent/JPH11112995A/ja active Pending
- 1998-12-22 HK HK98114863A patent/HK1013570A1/xx not_active IP Right Cessation
-
2001
- 2001-02-12 HK HK01101007A patent/HK1030123A1/xx not_active IP Right Cessation
- 2001-02-20 HK HK01101198A patent/HK1030322A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0891090A2 (de) | 1999-01-13 |
US5298991A (en) | 1994-03-29 |
EP1028592B1 (de) | 2004-02-04 |
HK1030322A1 (en) | 2001-04-27 |
HK1030123A1 (en) | 2001-04-20 |
EP0891090A3 (de) | 1999-01-20 |
EP0891090B1 (de) | 2002-10-16 |
JPH11112995A (ja) | 1999-04-23 |
JPH11112996A (ja) | 1999-04-23 |
DE69232824D1 (de) | 2002-11-21 |
DE69232597D1 (de) | 2002-06-06 |
EP1028592A1 (de) | 2000-08-16 |
DE69232597T2 (de) | 2002-12-05 |
EP0527011B1 (de) | 1999-05-12 |
DE69229153T2 (de) | 1999-11-25 |
EP1032210B1 (de) | 2003-02-26 |
HK1013570A1 (en) | 1999-08-27 |
EP1032210A1 (de) | 2000-08-30 |
EP0891091A3 (de) | 1999-01-27 |
EP0527011A3 (en) | 1994-07-27 |
JPH11113004A (ja) | 1999-04-23 |
DE69229153D1 (de) | 1999-06-17 |
EP0891091A2 (de) | 1999-01-13 |
EP0527011A2 (de) | 1993-02-10 |
EP0891091B1 (de) | 2002-05-02 |
JPH0541862A (ja) | 1993-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69232824T2 (de) | Dekoder | |
DE69327375T2 (de) | Verfahren und Vorrichtung zur Wiederherstellung von Bilddaten | |
DE69324960T2 (de) | Kodierung und Dekodierung | |
DE3851468T2 (de) | Kodierungsverfahren von Bildsignalen. | |
DE69015695T2 (de) | Einrichtung zur Transformationskodierung. | |
DE69422266T2 (de) | Verfahren, Vorrichtung und Schaltung zur Verbesserung von Bewegungskompensation bei digitaler Bildkodierung | |
DE69535007T2 (de) | Verfahren und Vorrichtung zur objektbasierten prädiktiven Kodierung und Übertragung von digitalen Bildern und Dekodierungsvorrichtung | |
DE69221191T2 (de) | Verfahren und Vorrichtung zur Prädiktiven Kodierung eines Bildsignals mit Bewegungskompensation | |
DE69736852T2 (de) | Codierung- und Decodierungssystem für bewegte Bilder mit beliebig geformten Objekten | |
DE69224055T2 (de) | Bildsignalkodier- und -dekodiergerät | |
DE69131377T2 (de) | Einrichtung zur Verarbeitung von Bildern | |
DE69816342T2 (de) | Prädiktives Bilddekodierungsverfahren | |
DE3908890C2 (de) | ||
DE69323156T2 (de) | Bilddatenkomprimierungs/Dekomprimierungssystem | |
DE69715426T2 (de) | Verfahren und vorrichtung zur bilddekodierung | |
DE3109795A1 (de) | Bandeinengungsverfahren fuer getoente bilder | |
DE69031638T2 (de) | System zum Übertragen von Bildinformation | |
DE69631819T2 (de) | Fehlerverdeckung in einem Block-basierten Bildkodierer | |
EP0141127B1 (de) | Anordnung zur zweidimensionalen DPCM-Codierung | |
DE69321038T2 (de) | Kodierung und Dekodierung von digitalen Videodaten | |
DE4442643B4 (de) | Verfahren zum Abschätzen der Bewegung in einem Bewegtbild | |
DE69416662T2 (de) | Bewegtbildkodierer | |
DE69736257T2 (de) | Schaltung und Verfahren zur Produktsummenberechnung | |
DE69331174T2 (de) | Bildverarbeitungsvorrichtung | |
DE69424923T2 (de) | Verfahren und Anordnung zur Bearbeitung eines dekodierten Bildsignals mit Verzerrung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
R071 | Expiry of right |
Ref document number: 891090 Country of ref document: EP |