DE69229153T2 - Gerät und Verfahren zur variablen Längenkodierung für einen Bewegungsvektor - Google Patents
Gerät und Verfahren zur variablen Längenkodierung für einen BewegungsvektorInfo
- Publication number
- DE69229153T2 DE69229153T2 DE69229153T DE69229153T DE69229153T2 DE 69229153 T2 DE69229153 T2 DE 69229153T2 DE 69229153 T DE69229153 T DE 69229153T DE 69229153 T DE69229153 T DE 69229153T DE 69229153 T2 DE69229153 T2 DE 69229153T2
- Authority
- DE
- Germany
- Prior art keywords
- motion vector
- data
- vlc
- variable length
- range
- 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 title claims description 111
- 239000013598 vector Substances 0.000 title claims description 109
- 238000000034 method Methods 0.000 title description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 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 Vorrichtung zur variablen Längenkodierung von Bewegungsvektoren, die 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 16 · 16 Bildelementen, wie in Fig. 1A dargestellt). In diesem Fall zeigt ein Bewegungsvektor an, in welche Position eines anderen Bilds (Fig. 18), 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 Position herangezogen wird, die von einem Bewegungsvektor bewegt wurde, 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, die einen Bewegungsvektor detektiert. Der Bewegungsvektor wird einer variablen Längenkodierschaltung 20 zugeführt und kodiert, um einen VLC-Kode (variablen Längenkode) zu gewinnen.
- Die Größe und Genauigkeit eines Bewegungsvektors sind theoretisch beliebig. Eine tatsächliche Beschränkung ist bezüglich des Hardwareumfangs usw. gegeben. So kann der Bereich für die Größe des Bewegungsvektors beispielsweise ±7 Bildelemente oder ±15 Bildelemente von dem das Zentrum betragen, der den Ursprung bildet. Die Einheit der Genauigkeit kann 1 Bildelement oder 0,4 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 Bild elementen und ein Bewegungsvektor im Bereich von ±15 Bildelementen kodiert werden, benötigt man zwei Arten von Tabellen zur variablen Längenkodierung (im folgenden kurz als variable Längenkodiertabellen bezeichnet). Dabei wird die Tabelle für den Bereich von ±7 Bildelementen mit einer Genauigkeit von 1 Bildelement zu einer Tabelle mit 15 Arten von Elementen, nämlich 7, 6, ..., 0, ..., -6, -7 enthält, während die Tabelle für den Bereich von ± 15 Bildelementen zu einer Tabelle mit 31 Arten von Elementen wird, 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ängenkodierung von Bewegungsvektoren zu schaffen, mit der die Belastung der Hardware reduziert werden kann, wenn mehrere Arten von Bewegungsvektorbereichen und -genauigkeiten vorliegen.
- Nach einem Aspekt der Erfindung ist eine variable Längencodiervorrichtung zur Erzeugung von variablen Längencodes vorgesehen, die Bewegungsvektoren repräsentieren, welche für die Bewegung in Bildern kennzeichnend sind,
- mit einer auf Bilddaten ansprechenden Einrichtung zur Erzeugung von Bewegungsvektoren und einer Einrichtung zur variablen Längencodierung der Bewegungsvektoren, wobei
- die Einrichtung zur variablen Längencodierung eine Speicherschaltung zur Speicherung einer Tabelle von VLC-Daten enthält, die einen vorgegebenen Satz von Bewegungsvektorwerten repräsentieren,
- mit einer auf die Bewegungsvektoren ansprechenden 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,
- sowie mit einer Einrichtung zum Kombinieren der VLC-Daten mit den zusätzlichen Daten.
- Die oben beschriebenen sowie weitere Ziele, Merkmale und Vorteile der Erfindung werden durch der folgende detaillierte Beschreibung weiter verdeutlicht, die auf die anliegenden Zeichnungen Bezug nimmt.
- Fig. 1A und 1B zeigen Diagramme, in denen das Konzept eines Bewegungsvektors veranschaulicht wird,
- Fig. 2 zeigt ein Blockdiagramm einer Schaltung 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-Kode) 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-Kode erzeugt, indem man den Rest Z als zusätzliches Bit zu dem (nach der Tabelle von Fig. 3 kodierten) VLC-Kode 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 hat 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-Kode, wenn man die in Fig. 3 dargestellte variable Längenkodiertabelle benutzt.
- Auf der Basis der variablen Längenkodiertabelle für den Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement, läßt sich damit 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 durch die zu der oben beschriebenen Operation inverse 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 darstellt. 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-Kode. 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-Kode 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, wobei man die einzige variable Längenkodiertabelle (ROM 2) benutzt, so daß der Hardwareaufwand reduziert wird.
- Fig. 6 zeigt eine Dekodierschaltung, die der Kodierschaltung von Fig. 5 entspricht. Auf der Basis eines Flags, das mit dem VLC-Kode gesendet wird, wird festgestellt, ob der VLC-Kode sich auf einen Bewegungsvektor im Bereich von ±2 Bildelementen bezieht oder auf einen Bewegungsvektor im Bereich von ±4 Bildelementen.
- In der Anordnung von Fig. 6 wird einer Trennschaltung ein VLC-Kode zugeführt, 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-Kode direkt als Adresse zugeführt, wenn der VLC-Kode sich auf einen Bewegungsvektor im Bereich von ±2 Bildelementen bezieht. Wenn der VLC-Kode sich hingegen auf einen Bewegungsvektor im Bereich von ±4 Bildelementen bezieht, werden andere Bits als das in der Trennschaltung 4 abgetrennte zusätzliche Bit als Adresse zugeführt.
- Wenn der VLC-Kode sich auf einen Bewegungsvektor im Bereich von ±2 Bildelementen bezieht, bildet das Ausgangssignal des ROM 5 den Bewegungsvektor. Wenn der VLC-Kode 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-Kode erzeugt, indem man den Rest Z als zusätzliches Bit zu einem (nach der Tabelle von Fig. 3 kodierten) VLC-Kode addiert, der dem Quotienten Y entspricht. Infolgedessen ist dies der 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 dementsprechend 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-Kode, indem man die variable Längenkodiertabelle von Fig. 3 benutzt.
- Mit der variablen Längenkodiertabelle für den Bereich von ±2 Bildelementen mit einer Genauigkeit von 1 Bildelement läßt sich deshalb 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, läßt sich der kodierte Bewegungsvektor auf der Dekodiererseite mit der zu der oben beschriebenen Operation inversen Operation genau reproduzieren, 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, um den Hardwareaufwand zu reduzieren.
- 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-Kode erfolgt, der kürzer ist als der dem Wert 4 entsprechende VLC-Kode, ist eine effiziente Übertragung möglich.
- Für die DPCM eines Bewegungsvektors ist ein Verfahren bekannt, das als gespiegelte DPCM-Methode bezeichnet wird. Dies ist eine Methode, die bei der DPCM eines Wertes benutzt wird, deren Bereich wie ein Bewegungsvektor bestimmt wird. Wie Fig. 8 und 9 zeigen, sind einem VLC-Kode 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-Kode gleich "0010".
- Wenn nach der Übertragung dieses Kodes eine Rückumwandlung in einen Bewegungsvektor durchgeführt wird, ist der VLC-Kode 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 vorbereitet sind. Es gibt auch z. B. ein Verfahren, bei dem nur die in Fig. 8 dargestellte variable Längenkodiertabelle vorbereitet ist, 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 Wahrschein lichkeit groß, daß in der Tabelle von Fig. 8 ein längerer Kode generiert wird als in der Tabelle von Fig. 9, so daß sich die Effizienz verschlechtert.
- Um diese Nachteile zu beseitigen, ist in dem oben beschriebenen Ausführungsbeispiel ein Flag vorgesehen, das den Bereich eines Bewegungsvektors angibt. Für die variable Längenkodierung des Bewegungsvektors ist nur die in Fig. 8 dargestellte Tabelle vorbereitet. 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 durch die in Fig. 9 dargestellte Tabelle für die Kodierung ersetzt.
- Durch die Übertragung eines Flags, das den Bereich des Bewegungsvektors angibt, zusammen mit dem so kodierten VLC-Kode wird der Bewegungsvektor durch die Vorbereitung einer Referenztabelle, die 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 durch das Ersetzen durch die Referenztabelle der Hardwareaufwand im Vergleich zu dem Fall, in dem mehrere Tabellen vorgesehen sind, herabgesetzt werden.
- In einem Ausführungsbeispiel der Erfindung genügt eine variable Längenkodier-Referenztabelle für mehrere Arten von Bewegungsvektorbereichen und -genauigkeiten, so daß der Hardwareaufwand herabgesetzt wird. Da das Ausführungsbeispiel der Erfindung durch das Erweitern der Referenztabelle an einen Bewegungsvektor mit einem breiten Bereich und auch an einen Bewegungsvektor mit einem engen Bereich angepaßt werden kann, ist der Vorteil größerer Flexibilität gegeben. Durch das Erweitern der Referenztabelle kann die Genauigkeit erhöht 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 (9)
1. Variable Längencodiervorrichtung zur Erzeugung von variablen Längencodes (VLC), die
Bewegungsvektoren repräsentieren, welche für die Bewegung in Bildern kennzeichnend
sind,
mit einer auf Bilddaten ansprechenden Einrichtung (10) zur Erzeugung von
Bewegungsvektoren und einer Einrichtung (20) zur variablen Längencodierung der Bewegungsvektoren,
wobei
die Einrichtung (20) zur variablen Längencodierung eine Speicherschaltung (2) zur
Speicherung einer Tabelle von VLC-Daten enthält, die einen vorgegebenen Satz von
Bewegungsvektorwerten repräsentieren,
mit einer auf die Bewegungsvektoren ansprechenden 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,
sowie mit einer Einrichtung (3) zum Kombinieren der VLC-Daten mit den zusätzlichen
Daten.
2. Vorrichtung nach Anspruch 1, bei der der Bereich und/oder die Genauigkeit der VLC-Daten
durch die zusätzlichen Daten geändert wird.
3. Vorrichtung nach Anspruch 1 oder 2, bei der die Steuereinrichtung (1) die in der
Speicherschaltung gespeicherten VLC-Daten ausliest, ohne die zusätzlichen Daten zu erzeugen, wenn
die Bewegungsvektorwerte von den gespeicherten VLC-Daten repräsentiert werden, und bei
der die Steuereinrichtung (1) die in der Speicherschaltung gespeicherten VLC-Daten ausliest
und die zusätzlichen Daten erzeugt, wenn die Bewegungsvektorwerte die genannten
geänderten Werte haben.
4. Vorrichtung nach Anspruch 3, bei der
die Bewegungsvektorwerte der Speicherschaltung (2) direkt als Adressen zum Auslesen
der VLC-Daten ohne zusätzliche Daten zugeführt werden und
die Steuereinrichtung (1) auf die Bewegungsvektorwerte mit den geänderten Werten in
der Weise reagiert, daß sie Adressen für die Speicherschaltung (2) erzeugt und die
zusätzlichen Daten erzeugt.
5. Vorrichtung nach Anspruch 4, bei die Steuereinrichtung (1) eine Rechenschaltung (1)
aufweist, die einen Quotienten (Y) als die genannte Adresse und einen Rest (Z) als die
zusätzli
chen Daten ausgibt, wobei der Quotient und der Rest dadurch gewonnen werden, daß der
Wert des Bewegungsvektors durch zwei dividiert wird.
6. Vorrichtung nach einem der Ansprüche 3 bis 5, bei der die Speicherschaltung (2) eine
Tabelle zur variablen Längencodierung speichert, die einen Bereich von plus oder minus zwei
Bildelementen mit der Genauigkeit von einem Bildelement repräsentiert, und die zusätzlichen
Daten die VLC-Daten so ändern, daß sie Bewegungsvektorwerte innerhalb des Bereichs von
plus oder minus vier Bildelementen mit der Genauigkeit von einem Bildelement
repräsentieren.
7. Vorrichtung nach Anspruch 1, 2 oder 3, bei der die VLC-Daten Daten sind, die Differenzen
zwischen Bewegungsvektorwerten repräsentieren.
8. Vorrichtung nach Anspruch 7, bei der die zusätzlichen Daten die von einem Teil der VLC-
Daten repräsentierten Werte ändern.
9. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Speicherschaltung (2)
ein ROM enthält.
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 |
---|---|
DE69229153D1 DE69229153D1 (de) | 1999-06-17 |
DE69229153T2 true DE69229153T2 (de) | 1999-11-25 |
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 Before (2)
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 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5298991A (de) |
EP (5) | EP1032210B1 (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 | 三菱電機株式会社 | ディジタル映像信号符号化装置および復号化装置 |
US7046734B2 (en) * | 1998-04-02 | 2006-05-16 | Intel Corporation | Method and apparatus for performing real-time data encoding |
US7263127B1 (en) | 1998-04-02 | 2007-08-28 | Intel Corporation | Method and apparatus for simplifying frame-based motion estimation |
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 |
US7305034B2 (en) * | 2002-04-10 | 2007-12-04 | Microsoft Corporation | Rounding control for multi-stage interpolation |
US7620109B2 (en) * | 2002-04-10 | 2009-11-17 | Microsoft Corporation | Sub-pixel interpolation in motion estimation and compensation |
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 |
US7499495B2 (en) * | 2003-07-18 | 2009-03-03 | Microsoft Corporation | Extended range motion vectors |
US20050013498A1 (en) | 2003-07-18 | 2005-01-20 | Microsoft Corporation | Coding of motion vector information |
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 |
US10554985B2 (en) | 2003-07-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | DC coefficient signaling at small quantization step sizes |
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 |
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 |
US7623574B2 (en) | 2003-09-07 | 2009-11-24 | Microsoft Corporation | Selecting between dominant and non-dominant motion vector predictor polarities |
US7616692B2 (en) | 2003-09-07 | 2009-11-10 | Microsoft Corporation | Hybrid motion vector prediction for interlaced forward-predicted fields |
US7567617B2 (en) * | 2003-09-07 | 2009-07-28 | Microsoft Corporation | Predicting motion vectors for fields of forward-predicted interlaced video frames |
US8064520B2 (en) * | 2003-09-07 | 2011-11-22 | Microsoft Corporation | Advanced bi-directional predictive coding of interlaced video |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
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 |
US7499595B2 (en) * | 2004-08-18 | 2009-03-03 | Cisco Technology, Inc. | Joint amplitude and position coding for photographic image and video 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 |
US7454076B2 (en) * | 2004-06-15 | 2008-11-18 | Cisco Technology, Inc. | Hybrid variable length coding method for low bit rate video coding |
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 |
US7499596B2 (en) | 2004-08-18 | 2009-03-03 | Cisco Technology, Inc. | Amplitude coding for clustered transform coefficients |
US7471841B2 (en) * | 2004-06-15 | 2008-12-30 | Cisco Technology, Inc. | Adaptive breakpoint for hybrid variable length coding |
US20070230805A1 (en) * | 2004-07-27 | 2007-10-04 | Yoshihisa Yamada | Coded Data Recording Apparatus, Decoding Apparatus and Program |
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 |
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 |
US8295343B2 (en) * | 2005-11-18 | 2012-10-23 | Apple Inc. | Video bit rate control method |
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 |
EP2565582B1 (de) | 2009-07-09 | 2014-05-14 | TomTom International B.V. | Verfahren zur Komprimierung von Routesuchebeschleunigungsdaten |
US9942560B2 (en) | 2014-01-08 | 2018-04-10 | Microsoft Technology Licensing, Llc | Encoding screen capture data |
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 |
WO2020098810A1 (en) | 2018-11-17 | 2020-05-22 | Beijing Bytedance Network Technology Co., Ltd. | Merge with motion vector difference in video processing |
EP4307667A3 (de) | 2018-12-21 | 2024-03-20 | Beijing Bytedance Network Technology Co., Ltd. | Bewegungsvektorgenauigkeit in zusammenschaltung mit bewegungsvektordifferenzmodus |
WO2020125755A1 (en) | 2018-12-21 | 2020-06-25 | Beijing Bytedance Network Technology Co., Ltd. | Motion vector range based on motion vector precision |
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 |
EP0260748B1 (de) * | 1986-09-13 | 1994-07-13 | Philips Patentverwaltung GmbH | 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 |
US4954892A (en) * | 1989-02-14 | 1990-09-04 | Mitsubishi Denki Kabushiki Kaisha | Buffer controlled picture signal encoding and decoding system |
DE68922610T2 (de) * | 1989-09-25 | 1996-02-22 | 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 DE DE69232824T patent/DE69232824T2/de not_active Expired - Lifetime
- 1992-07-28 EP EP00109705A patent/EP1032210B1/de 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 DE69232597T patent/DE69232597T2/de not_active Expired - Lifetime
- 1992-07-28 DE DE69229153T patent/DE69229153T2/de not_active Expired - Lifetime
- 1992-07-28 EP EP00109706A patent/EP1028592B1/de not_active Expired - Lifetime
- 1992-07-28 EP EP98203272A patent/EP0891090B1/de not_active Expired - Lifetime
-
1998
- 1998-08-03 JP JP10219458A patent/JPH11112995A/ja active Pending
- 1998-08-03 JP JP10219460A patent/JPH11113004A/ja active Pending
- 1998-08-03 JP JP10219459A patent/JPH11112996A/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 |
---|---|
JPH11112995A (ja) | 1999-04-23 |
DE69229153D1 (de) | 1999-06-17 |
DE69232824T2 (de) | 2003-08-07 |
EP0891090B1 (de) | 2002-10-16 |
EP0891090A2 (de) | 1999-01-13 |
EP0891090A3 (de) | 1999-01-20 |
JPH0541862A (ja) | 1993-02-19 |
DE69232824D1 (de) | 2002-11-21 |
EP1032210A1 (de) | 2000-08-30 |
EP0527011A3 (en) | 1994-07-27 |
EP1028592A1 (de) | 2000-08-16 |
DE69232597D1 (de) | 2002-06-06 |
EP1032210B1 (de) | 2003-02-26 |
EP0527011B1 (de) | 1999-05-12 |
DE69232597T2 (de) | 2002-12-05 |
EP1028592B1 (de) | 2004-02-04 |
HK1030322A1 (en) | 2001-04-27 |
EP0527011A2 (de) | 1993-02-10 |
EP0891091B1 (de) | 2002-05-02 |
JPH11113004A (ja) | 1999-04-23 |
EP0891091A3 (de) | 1999-01-27 |
JPH11112996A (ja) | 1999-04-23 |
HK1013570A1 (en) | 1999-08-27 |
HK1030123A1 (en) | 2001-04-20 |
US5298991A (en) | 1994-03-29 |
EP0891091A2 (de) | 1999-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69229153T2 (de) | Gerät und Verfahren zur variablen Längenkodierung für einen Bewegungsvektor | |
DE69716037T2 (de) | Verfahren zur kodierung und dekodierung von digitalen bildern | |
DE3851468T2 (de) | Kodierungsverfahren von Bildsignalen. | |
DE69324960T2 (de) | Kodierung und Dekodierung | |
DE69327375T2 (de) | Verfahren und Vorrichtung zur Wiederherstellung von Bilddaten | |
DE69221191T2 (de) | Verfahren und Vorrichtung zur Prädiktiven Kodierung eines Bildsignals mit Bewegungskompensation | |
DE69031045T2 (de) | Einrichtung zur adaptiven Zwischenbild-Prädiktionsdekodierung eines Videosignals | |
DE69323156T2 (de) | Bilddatenkomprimierungs/Dekomprimierungssystem | |
DE69316440T2 (de) | Einrichtung zur Umsetzung von digitalen Daten | |
DE69535007T2 (de) | Verfahren und Vorrichtung zur objektbasierten prädiktiven Kodierung und Übertragung von digitalen Bildern und Dekodierungsvorrichtung | |
DE69015695T2 (de) | Einrichtung zur Transformationskodierung. | |
DE69421135T2 (de) | Verfahren zur vermeidung von rundungsfehlern bei der inversen transformation von transformationskoeffizienten eines bewegtbildsignals | |
DE69309529T2 (de) | Verfahren und Vorrichtung für die räumliche Filterung von blocktransformationsdekodierten digitalen Bildern | |
DE69736852T2 (de) | Codierung- und Decodierungssystem für bewegte Bilder mit beliebig geformten Objekten | |
DE3109795A1 (de) | Bandeinengungsverfahren fuer getoente bilder | |
DE69329983T2 (de) | Bildverarbeitungsverfahren und -vorrichtung | |
DE69031638T2 (de) | System zum Übertragen von Bildinformation | |
EP0141127B1 (de) | Anordnung zur zweidimensionalen DPCM-Codierung | |
EP0285902A2 (de) | Verfahren zur Datenreduktion digitaler Bildsequenzen | |
DE69321038T2 (de) | Kodierung und Dekodierung von digitalen Videodaten | |
DE4442643B4 (de) | Verfahren zum Abschätzen der Bewegung in einem Bewegtbild | |
DE69024002T2 (de) | Vorrichtung zum Codieren von zweidimensionalen Informationen und entsprechende Decodiervorrichtung. | |
DE69735968T2 (de) | Vorrichtung und Verfahren zur Bildinformationsumwandlung | |
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: 527011 Country of ref document: EP |