-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft Verfahren zum Kodieren und Dekodieren
von Bewegungsvektorinformationen beim Kodieren und Dekodieren von Bewegtbildern
unter Verwendung von Inter-Bild-Prädiktionskodierung.
-
Stand der Technik
-
Im
Allgemeinen wird beim Kodieren von Bewegtbildern der Informationsbetrag
komprimiert durch Unterdrückung
der räumlichen
und zeitlichen Redundanzen, die innerhalb von Bewegtbildern vorhanden
sind. Als ein Verfahren zur Unterdrückung der zeitlichen Redundanzen
wird Inter-Bild-Prädiktionskodierung
verwendet. Bei der Inter-Bild-Prädiktionskodierung
werden zum Kodieren eines aktuellen Bildes die Bilder, die dem aktuellen
Bild zeitlich vorhergehen oder nachfolgen, als Referenzbilder genutzt.
Die Bewegung des aktuellen Bildes aus den Referenzbildern wird detektiert
und die Differenz zwischen dem durch Bewegungskompensation erhaltenen
Bild und dem aktuellen Bild berechnet. Dann werden aus dieser Differenz
die räumlichen
Redundanzen eliminiert, um den Informationsbetrag der Bewegtbilder
zu komprimieren.
-
Beim
herkömmlichen
Bewegtbildkodierverfahren nach MPEG-4 Standard (ISO/IEC 14496-2: 1999
Information technology, Coding of audio-visual objects – Teil 2:
Visual, S. 146–148;
im Folgenden als MPEG-4 bezeichnet) und dergleichen gibt es drei
Typen von Bildern. I-Bilder (intrakodierte Bilder) werden kodiert,
indem keine Inter-Bild-Prädizierung
genutzt wird, sind jedoch intrakodiert. P-Bilder (prädizierte Bilder)
werden mittels Inter-Bild-Prädizierung
mit Bezug auf ein vorhergehendes Bild kodiert. B-Bilder (bidirektional
prädizierte
Bilder) werden mittels Inter-Bild-Prädizierung mit Bezug auf ein
vorhergehendes Bild (I-Bild oder B-Bild) und ein nachfolgendes Bild
(I-Bild oder P-Bild) kodiert. 15 zeigt vorhersagbare
Beziehungen zwischen entsprechenden Bildern im oben genannten Bewegtbildkodierverfahren. In 15 stellen
vertikale Linien Bilder dar, und an der unteren rechten Seite der
jeweiligen Bilder sind Bildtypen (I, P und B) angegeben. Die Bilder
an den Pfeilspitzen werden durch Inter-Bild-Prädiktionskodierung
mit Bezug auf die Bilder an den anderen Enden der Pfeile kodiert.
Zum Beispiel wird das zweite B-Bild kodiert, indem das erste I-Bild
und das vierte P-Bild als Referenzbilder verwendet werden.
-
Nach
dem MPEG 4-Standard wird zum Kodieren von Bewegungsvektoren eine
Differenz zwischen einem Bewegungsvektor eines aktuellen Blocks
und einem aus den Bewegungsvektoren für die benachbarten Blocks erhaltenen
prädizierten Vektor
kodiert. Weil die Bewegungsvektoren der benachbarten Blocks normalerweise
eine ähnliche
Größe und Richtung
der Bewegung auf der räumlichen Koordinate
zu den Bewegungsvektoren für
den aktuellen Block aufweisen, kann der Kodierungsbetrag der Bewegungsvektoren
durch Berechnen der Differenz aus dem prädizierten Vektor, der aus den
Bewegungsvektoren der benachbarten Blocks erhalten wird, reduziert
werden. Wie Bewegungsvektoren nach MPEG-4 zu kodieren sind, wird
mit Bezug auf die 16A–16D erläutert. In
diesen Abbildungen sind halbfett angegebene Blocks Makroblocks von
16·16
Pixel, wobei in jedem Makroblock 4 Blocks von 8·8 Pixel vorhanden sind. In 16A–16D ist der Bewegungsvektor (MV) jedes Blocks
auf der Basis der Differenz aus dem prädizierten Vektor, der aus den
Bewegungsvektoren (MV1, MV2 und MV3) der drei benachbarten Blocks
erhalten wird, kodiert. So wie dieser prädizierte Vektor werden Mittelwerte genutzt,
die jeweils aus den horizontalen und vertikalen Komponenten dieser
drei Bewegungsvektoren MV1, MV2 und MV3 berechnet sind. Jedoch hat
ein benachbarter Block manchmal keinen Bewegungsvektor, wenn er
zum Beispiel intrakodiert ist oder als ein B-Bild im direkten Modus
kodiert ist. Wenn einer der benachbarten Blocks ein Block dieses
Typs ist, wird der Bewegungsvektor für den Block als gleich Null
betrachtet. Wenn zwei der benachbarten Blocks Blocks dieses Typs
sind, wird der Bewegungsvektor des übrig bleibenden einen Blocks
als ein prädizierter Vektor
genutzt. Und wenn alle der benachbarten Blocks keinen Bewegungsvektor
besitzen, dann wird der Bewegungsvektor des aktuellen Blocks in
der Annahme kodiert, dass der prädizierte
Vektor Null ist.
-
Inzwischen
wird im Verfahren H.26L, das zur Standardisierung entwickelt wurde,
ein neues Kodierverfahren von B-Bildern vorgeschlagen. B-Bilder werden üblicherweise
kodiert, indem ein vorher kodiertes vorhergehendes Bild und ein
vorher kodiertes nachfolgendes Bild als Referenzbilder genutzt werden,
wobei aber bei dem neuen Kodierverfahren B-Bilder kodiert werden,
indem zwei vorher kodierte vorhergehende Bilder, zwei vorher kodierte
nachfolgende Bilder oder ein vorher kodiertes vorhergehendes Bild
und ein vorher kodiertes nachfolgendes Bild verwendet werden.
-
Auch
wenn die benachbarten Blocks in einem B-Bild jeweils zwei Bewegungsvektoren
in Richtung der vorhergehenden Referenzbilder oder zwei Bewegungsvektoren
in Richtung der folgenden Referenzbilder aufweisen, gibt es bei
dem herkömmlichen Bewegungsvektorkodierverfahren
keine bestimmte und vereinheitlichte Methode zur Bestimmung, welcher
dieser zwei Vektoren als ein prädizierter
Vektor verwendet werden soll, womit es kein effizientes Kodierverfahren
des bestimmten Bewegungsvektors gibt.
-
Takahiro
Fukuhara et al. offenbaren in „Very Low
Bit-Rate Video Coding with Block Partitioning and Adaptive Selection
of Two Time-Differential Frame Memories" („Videokodierung
niedrigster Bitrate mit Blockunterteilung und adaptiver Auswahl
von zwei zeitlich differentiellen Bildspeichern"), IEEE Transactions an Circuits and
Systems für
Video Technology (IEEE Veröffentlichungen über Schaltkreise und
Systeme zur Videotechnologie), IEEE Service Center, Piscataway,
NJ, USA, Bd. 7, Nr. 1, Februar 1997 (1997-02) ein Bewegungskompensationsverfahren
mit blockunterteilender Prädiktion
und Nutzung zweier zeitlich differentieller Referenzbilder. Der Prädiktionsbewegungsvektor
basiert entweder auf einem Bewegungsvektor eines kurzzeitigen Vollbildes oder
eines langzeitigen Vollbildes oder auf einer Kombination von zwei
Bewegungsvektoren der Vollbilder.
-
In „Arbeitsentwurf
Nummer 2, verbesserte Ausgabe 2 (WD-2)", Unterlage JVT-B118R2, 29. Januar 2002 (29.1.2002),
Seiten 1–10,
wird die selektive Verwendung von Bewegungsvektoren des benachbarten
Blocks in den Berechnungen des prädizierten Vektors gelehrt.
-
Die
vorliegende Erfindung wurde erdacht, um das oben erwähnte Problem
zu lösen,
und Aufgabe der vorliegenden Erfindung ist die Bereitstellung eines
Bewegungsvektorkodierverfahrens und eines Bewegungsvektordekodierverfahrens,
die das Verfahren zum Bestimmen eines prädizierten Vektors zum Kodieren
eines Bewegungsvektors vereinheitlichen und die Vorausberechenbarkeit
verbessern können.
-
Darstellung der Erfindung
-
Um
die oben genannte Aufgabe zu erfüllen, stellt
die vorliegende Erfindung ein Bewegungsvektordekodierverfahren und
eine Vorrichtung nach den Ansprüchen
1 bis 3 bereit.
-
Kurze Beschreibung der Zeichnungen
-
1A ist ein Blockdiagramm, das den Aufbau
einer Bildkodiervorrichtung nach einer ersten Ausführungsform
der vorliegenden Erfindung darstellt;
-
2A ist
eine grafische Darstellung, die die Reihenfolge von in einen Bildspeicher
eingegebenen Bildern zeigt;
-
2B ist
eine grafische Darstellung, die die Reihenfolge des Kodierens der
Bilder zeigt;
-
3A ist
eine grafische Darstellung, die einen zu kodierenden aktuellen Block
(an der oberen linken Seite in einem Makroblock) und die vorher
kodierten benachbarten Blocks zeigt;
-
3B ist
eine grafische Darstellung, die einen zu kodierenden aktuellen Block
(an der oberen rechten Seite in einem Makroblock) und die vorher kodierten
benachbarten Blocks zeigt;
-
3C ist
eine grafische Darstellung, die einen zu kodierenden aktuellen Block
(an der unteren linken Seite in einem Makroblock) und die vorher
kodierten benachbarten Blocks zeigt;
-
3D ist
eine grafische Darstellung, die einen zu kodierenden aktuellen Block
(an der unteren rechten Seite in einem Makroblock) und die vorher kodierten
benachbarten Blocks zeigt;
-
4A ist
eine grafische Darstellung, die Referenzbilder zeigt, wobei Bewegungsvektoren
eines zu kodierenden aktuellen Blocks und vorher kodierter benachbarter
Blocks jeweils darauf verweisen;
-
4B ist
eine grafische Darstellung, die Referenzbilder zeigt, wobei Bewegungsvektoren
eines zu kodierenden aktuellen Blocks und vorher kodierter benachbarter
Blocks jeweils darauf verweisen;
-
4C ist
eine grafische Darstellung, die Referenzbilder zeigt, wobei Bewegungsvektoren
eines zu kodierenden aktuellen Blocks und vorher kodierter benachbarter
Blocks jeweils darauf verweisen;
-
5 ist
eine grafische Darstellung, die eine Bewegungskompensation für den Fall
erläutert,
bei dem zwei Referenzbilder beide in Vorwärtsrichtung angeordnet sind;
-
6 ist
eine grafische Darstellung, die den Fall erläutert, wo Bewegungsvektoren
skaliert sind;
-
7 ist
ein Ablaufdiagramm, das ein Verfahren zum Erzeugen eines prädizierten
Vektors für den
Fall darstellt, bei dem das erste und das zweite Verfahren zum Erzeugen
eines prädizierten
Vektors in Kombination verwendet werden;
-
8 ist
eine grafische Darstellung, die die Reihenfolge von in einem Bitstrom
angeordneten Bewegungsvektoren zeigt;
-
9 ist
ein Blockdiagramm, das den Aufbau einer Bilddekodiervorrichtung
nach einer zweiten Ausführungsform
der vorliegenden Erfindung darstellt;
-
10A ist eine grafische Darstellung, die ein
physikalisches Format einer flexiblen Magnetplatte (Diskette) zeigt;
-
10B ist eine grafische Darstellung, die eine
Diskette, die Querschnittsansicht der äußeren Erscheinung der Diskette
und die Vorderansicht der äußeren Erscheinung
der Diskette zeigt;
-
10C ist eine grafische Darstellung, die die äußere Erscheinung
einer Vorrichtung zum Schreiben eines Programms auf die Diskette
und zum Auslesen davon zeigt;
-
11 ist
ein Blockdiagramm, das den gesamten Aufbau eines Content-Providing-Systems darstellt;
-
12 ist
eine grafische Darstellung, die ein das Bewegtbildkodierverfahren
und das Bewegtbilddekodierverfahren nutzendes Mobiltelefon zeigt;
-
13 ist
ein Blockdiagramm, das den Aufbau des Mobiltelefons zeigt;
-
14 ist
eine grafische Darstellung, die ein digitales Sendesystem zeigt;
-
15 ist
eine grafische Darstellung, die Referenzbildbeziehungen im Stand
der Technik zeigt;
-
16 ist eine grafische Darstellung, die zum
Erzeugen eines prädizierten
Vektors verwendete benachbarte Blocks zeigt.
-
Beste Ausführungsart der Erfindung
-
(Erste Ausführungsform)
-
Die
erste Ausführungsform
der vorliegenden Erfindung wird nachstehend mit Bezug auf die Abbildungen
erläutert. 1 ist
ein Blockdiagramm der Bildkodiervorrichtung zum Kodieren von Bewegungsvektoren
als Teil einer Bildkodierung, die einen Bildspeicher 101,
eine Differenzberechnungseinheit 102, eine Restfehler-Kodiereinheit 103,
eine Bitstrom-Erzeugungseinheit 104, eine Restfehler-Dekodiereinheit 105,
eine Additionseinheit 106, einen Bildspeicher 107,
eine Bewegungsvektor-Erfassungseinheit 108, eine Moduswähleinheit 109, eine
Kodiersteuereinheit 110, Schalter 111–115,
eine Bewegungsvektor-Speichereinheit 116 und
eine Bewegungsvektor-Kodiereinheit 117 umfasst.
-
In
den Bildspeicher 101 werden Bilder auf der Basis Bild für Bild in
Anzeigereihenfolge eingegeben. 2A zeigt
die Reihenfolge der in den Bildspeicher 101 eingegebenen
Bilder. In 2A stellen vertikale Linien
Bilder dar, und ein Alphabet und eine Zahl an der unteren rechten
Seite von jedem Bild geben jeweils einen Bildtyp (P gibt ein P-Bild
und B gibt ein B-Bild an) sowie eine Bildnummer in Anzeigereihenfolge
an. Die in den Bildspeicher 101 eingegebenen Bilder werden
in Kodierungsreihenfolge umgeordnet. Die Bilder werden basierend
auf den Referenzbildern bei Inter-Bild-Prädiktionskodierung umgeordnet,
d. h. die Bilder werden so umgeordnet, dass die als Referenzbilder
genutzten Bilder früher kodiert
werden als die Bilder, die sich auf diese Referenzbilder beziehen.
Die Referenzbeziehungen der Bilder B8 und B9 sind durch Pfeile in 2A dargestellt.
In dieser Abbildung geben die Pfeilspitzen die Bilder an, die auf
Referenzbilder verweisen, und die anderen Enden der Pfeile geben
die Referenzbilder an. In diesem Fall sind die in 2A gezeigten
Bilder in diejenigen gemäß 2B umgeordnet.
-
Die
in dem Bildspeicher 101 umgeordneten Bilder werden durch
jeden Makroblock ausgelesen. In diesem Fall soll ein Makroblock
eine Größe von horizontal
16·vertikal
16 Pixel besitzen, und eine Bewegungskompensation soll durch jeden
Block (8·8 Pixel
groß)
ausgeführt
werden. Das Kodieren des Bildes B8 wird schrittweise erläutert.
-
Das
Bild B8 ist ein B-Bild und wird durch jeden Makroblock oder Block
kodiert, indem ein Maximum von zwei Referenzbildern aus fünf kodierten
Bildern, vorhergehenden kodierten Bildern P1, P4 und P7 und nachfolgenden
kodierten Bilder P10 und P13 genutzt wird. Diese Referenzbilder
wurden bereits kodiert, und die lokalen dekodierten Bilder werden
in dem Bildspeicher 107 gespeichert.
-
Zum
Kodieren eines B-Bildes schaltet die Kodiersteuereinheit 110 den
Schalter 113 ein. Wenn ein B-Bild als ein Referenzbild
für andere
Bilder genutzt wird, steuert die Kodiersteuereinheit 110 die Schalter 114 und 115 auf
Einschalten.
-
Wenn
das B-Bild nicht als ein Referenzbild für andere Bilder genutzt wird,
steuert sie die Schalter 114 und 115 auf Ausschalten.
Deshalb werden die aus dem Bildspeicher 101 ausgelesenen
Makroblocks des Bildes B8 zuerst in die Bewegungsvektor-Erfassungseinheit 108,
die Moduswähleinheit 109 und
die Differenzberechnungseinheit 102 eingegeben.
-
Die
Bewegungsvektor-Erfassungseinheit 108 detektiert vorwärts gerichtete
Bewegungsvektoren und rückwärts gerichtete
Bewegungsvektoren von jedem in einem Makroblock enthaltenen Block, indem
die dekodierten Bilddaten der Bilder P1, P4 und P7 als vorwärts gerichtete
Referenzbilder und die dekodierten Bilddaten der Bilder P10 und
P13 als rückwärts gerichtete
Referenzbilder verwendet werden, die jeweils in dem Bildspeicher 107 gespeichert werden.
-
Die
Moduswähleinheit 109 bestimmt
den Kodiermodus von Makroblocks, indem die von der Bewegungsvektor-Erfassungseinheit 108 detektierten Bewegungsvektoren
genutzt werden. Hier kann der Kodiermodus von Makroblocks in einem
B-Bild zum Beispiel aus Intra-Bild-Kodierung, Inter-Bild-Prädiktionskodierung
unter Anwendung eines vorwärts
gerichteten Referenzbildes, Inter-Bild-Prädiktionskodierung
unter Anwendung zweier vorwärts
gerichteter Referenzbilder, Inter-Bild-Prädiktionskodierung unter Verwendung
eines rückwärts gerichteten
Referenzbildes, Inter-Bild-Prädiktionskodierung
unter Anwendung zweier rückwärts gerichteter
Referenzbilder und Inter-Bild-Prädiktionskodierung
unter Verwendung bidirektionaler Bewegungsvektoren heraus ausgewählt werden.
Wenn Inter-Bild-Prädiktionskodierung
unter Verwendung zweier vorwärts
gerichteter Referenzbilder, Inter-Bild-Prädiktionskodierung unter
Verwendung zweier rückwärts gerichteter
Referenzbilder oder Inter-Bild-Prädiktionskodierung unter Verwendung
bidirektionaler Bewegungsvektoren (eine vorwärts gerichtete Referenz und
eine rückwärts gerichtete
Referenz) ausgewählt
ist, wird der durch Mittelwertbildung zweier Referenzblocks erhaltene Block
als ein Bewegungskompensationsblock verwendet. Ein Beispiel dieses
Falles wird mit Bezug auf 5 erläutert. In
dieser Abbildung wird zur Bewegungskompensation eines Blocks X im
Bild B8 mittels eines Blocks Y im Bild P7 und eines Blocks Z im
Bild P4 als vorwärts
gerichtete Referenzbilder der Mittelwertblock der Blocks Y und Z
als ein Bewegungskompensationsblock für den Block X verwendet.
-
Der
durch die Moduswähleinheit 109 bestimmte
Kodiermodus wird an die Bitstrom-Erzeugungseinheit 104 ausgegeben.
Die Referenzblocks, die dem durch die Moduswähleinheit 109 bestimmten Kodiermodus
zugrunde gelegt sind, werden an die Differenzberechnungseinheit 102 und
die Additionseinheit 106 ausgegeben. Wenn die Intra-Bild-Kodierung
ausgewählt
ist, werden die Referenzblocks nicht ausgegeben. Wenn die Moduswähleinheit 109 Intra-Bild-Kodierung auswählt, werden
die Schalter 111 und 112 so gesteuert, dass sie
jeweils mit „a" und „c" verbunden sind,
und wenn sie Inter-Bild-Prädiktionskodierung
auswählt,
werden die Schalter 111 und 112 so gesteuert,
dass die jeweils mit „b" und „d" verbunden sind.
Der Fall, bei dem die Moduswähleinheit 109 Inter-Bild-Prädiktionskodierung
auswählt,
wird nachstehend erläutert.
-
Die
Differenzberechnungseinheit 102 empfängt die Referenzblocks von
der Moduswähleinheit 109.
Die Differenzberechnungseinheit 102 berechnet die Differenz
zwischen dem Block des Bildes B8 und dem Referenzblock (der Bewegungskompensationsblock)
und entwickelt den Restfehler zur Ausgabe.
-
Der
Restfehler wird in die Restfehler-Kodiereinheit 103 eingegeben.
Die Restfehler-Kodiereinheit 103 führt eine Kodierverarbeitung
wie beispielsweise Frequenzumwandlung und Quantisierung des eingegebenen
Restfehlers durch und entwickelt so die kodierten Daten des Restfehlers
zur Ausgabe. Die von der Restfehler-Kodiereinheit 103 ausgegebenen
kodierten Daten werden in die Bitstrom-Erzeugungseinheit 104 eingegeben.
-
Die
Bewegungsvektoren, die in dem durch die Moduswähleinheit 109 ausgewählten Kodiermodus
verwendet werden, werden an die Bewegungsvektor-Speichereinheit 116 und
die Bewegungsvektor-Kodiereinheit 117 ausgegeben.
-
Die
Bewegungsvektor-Speichereinheit 116 speichert die von der
Moduswähleinheit 109 eingegebenen
Bewegungsvektoren. Mit anderen Worten, die Bewegungsvektor-Speichereinheit 116 speichert die
Bewegungsvektoren, die für
die vorher kodierten Blocks verwendet wurden.
-
Die
Bewegungsvektor-Kodiereinheit 117 kodiert die von der Moduswähleinheit 109 eingegebenen
Bewegungsvektoren. Diese Operation wird mit Bezug auf 3A–3D erläutert. In
diesen Abbildungen sind halbfett dargestellte Blocks 16·16 Pixel-Makroblocks,
wobei in jedem Makroblock vier 8·8 Pixel-Blocks vorhanden
sind. In 3A–3D ist Block
A ein aktueller Block, der zu kodieren ist, wobei der Bewegungsvektor
für den
Block A kodiert wird auf der Basis der Differenz von dem aus den
Bewegungsvektoren der drei benachbarten kodierten Blocks B, C und
D erhaltenen prädizierten
Vektor. Die Bewegungsvektoren für
die benachbarten Blocks werden von der Bewegungsvektor-Speichereinheit 116 erhalten.
-
Mit
Bezug auf 4A–4C werden
Verfahren zum Berechnen eines prädizierten
Vektors erläutert.
Diese Figuren zeigen die Bewegungsvektoren für die Blocks A–D. MV1
und MV2 geben jeweils den ersten Bewegungsvektor und den zweiten
Bewegungsvektor an. „Vorwärts" bedeutet einen vorwärts gerichteten
Bezugsbewegungsvektor. Zeichen und Zahlen in runden Klammern stellen
die Referenzbilder dar.
-
Durch
das erste Verfahren wird der prädizierte
Vektor erzeugt, indem nur die Bewegungsvektoren ausgewählt werden,
die sich auf das gleiche Referenzbild wie der Bewegungsvektor des
aktuellen Blocks aus den Bewegungsvektoren für die benachbarten Blocks beziehen.
In 4A ist der prädizierte Vektor
für MV1
für den
Block A der für
die Blocks B, C und D verschiedene Mittelwert von MV1; und der prädizierte
Vektor für
MV2 für
den Block A ist der für die
Blocks B, C und D verschiedene Mittelwert von MV2. In 4B ist
der prädizierte
Vektor für
MV1 für den
Block A der für
die Blocks B, C und D verschiedene Mittelwert von MV1 und der prädizierte
Vektor für
MV2 für
den Block A ist MV2 für
den Block C selbst. In 4C ist der prädizierte
Vektor für
MV1 für
den Block A der Mittelwert von MV1 und MV2 für den Block B; MV1 für den Block
C und MV1 und MV2 für
den Block D, und der prädizierte
Vektor für
MV2 für
den Block A ist MV2 für
den Block C selbst. In diesem Fall kann der prädizierte Vektor für MV1 für den Block
A der Mittelwert der drei Vektoren sein; der Mittelwert von MV1
und MV2 für
den Block B; MV1 für den
Block C; oder der Mittelwert von MV1 und MV2 für den Block D. Der Mittelwert
von MV1 und MV2 für den
Block B ist auf die Genauigkeit der Bewegungsvektoren (wie beispielsweise
eine 2/1 Pixel-Genauigkeit, 1/4 Pixel-Genauigkeit und 1/8 Pixel-Genauigkeit)
gerundet. Diese Pixelgenauigkeit wird durch jeden Block, jedes Bild
oder jede Sequenz festgelegt. In einem solchen Fall, wenn kein Bewegungsvektor für die benachbarten
Blocks, die sich auf das gleiche Referenzbild beziehen, vorhanden
ist, kann der prädizierte
Vektor Null sein. Die Mittelwerte werden jeweils für horizontale
und vertikale Komponenten des Bewegungsvektors berechnet.
-
Durch
das zweite Verfahren werden die prädizierten Vektoren für MV1 und
MV2, ungeachtet der Referenzbilder, getrennt erzeugt. In diesem
Fall kann die Reihenfolge von MV1 und MV2 in jedem Block durch eine
vorgeschriebene Methode bestimmt werden. Zum Beispiel kann MV1 und
MV2 in absteigender oder aufsteigender Reihenfolge von zeitlichen Abständen aus
dem aktuellen Bild zu den Referenzbildern, vorwärts gerichtete Vektoren zuerst
oder rückwärts gerichtete
Vektoren zuerst, in Kodierungsreihenfolge (in der Reihenfolge in
einem Bitstrom) oder dergleichen eingerichtet werden. Zum Beispiel erhöht die absteigende
oder aufsteigende Reihenfolge von zeitlichen Abständen aus
dem aktuellen Bild zu den Referenzbildern die Wahrscheinlichkeit,
dass das Referenzbild für
den Bewegungsvektor des aktuellen Blocks zeitlich nahe zu dem Referenzbild
für den
Bewegungsvektor ist, der für
einen prädizierten Vektor
ausgewählt
wurde, womit die Leistung der Bewegungsvektorkodierung verbessert
werden kann. Außerdem
erhöht
die Reihenfolge von vorwärts
gerichteten Vektoren zuerst und rückwärts gerichteten Vektoren danach
die Wahrscheinlichkeit, dass der vorwärts gerichtete Bewegungsvektor
des aktuellen Blocks unter Verwendung des prädizierten Vektors kodiert wird,
der aus den vorwärts
gerichteten Bewegungsvektoren der benachbarten Blocks erzeugt wurde,
und der rückwärts gerichtete
Bewegungsvektor des aktuellen Blocks unter Nutzung des aus den rückwärts gerichteten
Bewegungsvektoren der benachbarten Blocks erzeugten prädizierten
Vektors kodiert wird, womit die Leistung der Bewegungsvektorkodierung
verbessert werden kann. Außerdem kann
die Kodierungsreihenfolge das Verfahren zur Handhabung der benachbarten
Blocks vereinfachen, um einen prädizierten
Vektor zu erzeugen. In 4A ist der prädizierte
Vektor für
MV1 für
den Block A der für
die Blocks B, C und D verschiedene Mittelwert von MV1, und der prädizierte
Vektor für
MV2 für
den Block A ist der für
die Blocks B, C und D verschiedene Mittelwert von MV2. Außerdem ist
in 4B und 4C der
prädizierte
Vektor für
MV1 für
den Block A der für
die Blocks B, C und D verschiedene Mittelwert von MV1, und der prädizierte
Vektor für
MV2 für den
Block A ist der für
die Blocks B, C und D verschiedene Mittelwert von MV2. Wenn die
Referenzbilder der Bewegungsvektoren für den Block A abweichend sind
von den Referenzbildern der Bewegungsvektoren für die Blocks B, C und D, die
für den prädizierten
Vektor für
den Block A genutzt werden, können
die Bewegungsvektoren für
die Blocks B, C und D skaliert werden. Sie können auf der Basis eines Wertes,
der durch einen zeitlichen Abstand zwischen Bildern bestimmt ist,
oder eines vorgegebenen Wertes skaliert werden.
-
Durch
das dritte Verfahren wird der prädizierte
Vektor für
MV1 auf der Basis der benachbarten Blocks zur Verwendung erzeugt.
Wenn MV1 als ein prädizierter
Vektor für
MV2 verwendet wird, kann MV1 selbst als der prädizierte Vektor verwendet werden,
oder der skalierte MV1 kann genutzt werden. Wenn der skalierte verwendet
wird, ist es vorstellbar, den zeitlichen Abstand zwischen dem Bild
B8 und dem Referenzbild von MV1 dem zeitlichen Abstand zwischen
dem Bild B8 und dem Referenzbild von MV2 gleich zu machen. Ein Beispiel
wie sie gleich zu machen sind, wird mit Bezug auf 6 erläutert. In 6 ist
vorausgesetzt, dass der Block A im Bild B8 die Bewegungsvektoren
MV1 und MV2 besitzt und die Referenzbilder von MV1 und MV2 die Bilder
P7 bzw. P4 sind. In diesem Fall wird MV1', der durch Skalieren von MV1 zu dem
Bild P4 erhalten wird (d. h. ein durch Vervierfachen von in diesem
Beispiel jeweils horizontalen und vertikalen Komponenten von MV1
erhaltener Vektor), als ein prädizierter
Vektor für den
Bewegungsvektor MV2 genutzt. Oder er kann unter Verwendung eines
vorgegebenen Wertes für ein
anderes Verfahren skaliert werden. Außerdem kann die Reihenfolge
von MV1 und MV2 für
jeden Block durch eine vorgeschriebene Methode vorher bestimmt werden.
Zum Beispiel können
MV1 und MV2 in einer absteigenden oder aufsteigenden Reihenfolge
zeitlicher Abstände
aus dem aktuellen Bild zu den Referenzbildern, vorwärts gerichtete
Vektoren zuerst oder rückwärts gerichtete
Vektoren zuerst, in Kodierungsreihenfolge oder dergleichen eingerichtet werden.
-
In
den oben erwähnten
Beispielen weisen alle Blocks B–D
Bewegungsvektoren auf, jedoch kann, wenn diese Blocks als Intrablocks
oder im direkten Modus kodiert sind, für sie eine Ausnahmeverarbeitung
durchgeführt
werden. Wenn zum Beispiel einer der Blocks B–D der Block eines solchen
Typs ist, werden die Bewegungsvektoren für diesen Block als Null zum
Kodieren betrachtet. Wenn zwei von ihnen Blocks eines solchen Typs
sind, werden die Bewegungsvektoren des restlichen Blocks als prädizierte
Vektoren genutzt. Und wenn alle Blocks keinen Bewegungsvektor besitzen,
werden Bewegungsvektoren in der Annahme kodiert, dass der prädizierte
Vektor Null ist. Dieser Verarbeitungstyp kann auch angewandt werden.
-
Nach
Empfang der kodierten Daten führt
die Bitstrom-Erzeugungseinheit 104 variable Längenkodierung
der kodierten Daten durch und addiert außerdem die Informationen wie
beispielsweise die von der Bewegungsvektorkodiereinheit 117 eingegebenen kodierten
Bewegungsvektoren, den von der Modusauswähleinheit 109 eingegebenen
Kodiermodus sowie die Kopfinformation zu den kodierten Daten, um einen
Bitstrom zur Ausgabe zu entwickeln.
-
Nach
der gleichen Verarbeitung werden die restlichen Makroblocks im Bild
B8 kodiert.
-
Wie
es oben beschrieben ist, wird nach dem Bewegungsvektorkodierverfahren
der vorliegenden Erfindung ein Bewegungsvektor für jeden aktuellen Block kodiert,
indem eine Differenz zwischen dem prädizierten Vektor, der aus Bewegungsvektoren
für vorher
kodierte benachbarte Blocks erhalten wird, und dem Bewegungsvektor
für den
aktuellen Block genutzt wird. Dieser prädizierte Vektor wird durch eine
der folgenden Verarbeitungen erzeugt: Wenn der aktuelle Block bzw.
die benachbarten Blocks eine Vielzahl von Bewegungsvektoren besitzen,
die auf die Referenzbilder in der gleichen Richtung (vorwärts oder
rückwärts) hinweisen,
werden (A) die Bewegungsvektoren, die auf das gleiche Bild verweisen, aus
den Bewegungsvektoren für
die benachbarten Blocks heraus ausgewählt, um den prädizierten
Vektor (basierend auf den ausgewählten
Bewegungsvektoren) zu erzeugen; werden (B) die Bewegungsvektoren
für die
entsprechenden benachbarten Blocks in der vorher bestimmten Reihenfolge
eingerichtet und die Bewegungsvektoren der gleichen Rangfolge aus
den eingerichteten Bewegungsvektoren ausgewählt, um den prädizierten
Vektor (basierend auf den ausgewählten
Bewegungsvektoren) zu erzeugen; soll (C) der prädizierte Vektor für „den zweiten
Bewegungsvektor" des
aktuellen Blocks „der erste
Bewegungsvektor" werden,
und wenn „der zweite
Bewegungsvektor" und „der erste
Bewegungsvektor" auf
unterschiedliche Bilder verweisen, wird „der erste Bewegungsvektor" entsprechend dem zeitlichen
Abstand zwischen den Bildern skaliert, um den prädizierten Vektor zu erzeugen.
-
Spezieller
ist das Bewegungsvektorkodierverfahren nach der vorliegenden Erfindung
ein Bewegungsvektorkodierverfahren zum Erzeugen eines Bewegungsvektors
für einen
aktuellen Block, der zu kodieren ist, und eines prädizierten
Vektors für
den Bewegungsvektor und zum Kodieren einer Differenz zwischen dem
Bewegungsvektor und dem prädizierten
Vektor, wobei das Bewegungsvektorkodierverfahren einen Zuweisungsschritt
zum Zuweisen von Kennungscodes an zwei Bewegungsvektoren für jeweils
einen der Vielzahl kodierter Blocks, wenn wenigstens ein Block aus
einer Vielzahl kodierter Blocks in der Nachbarschaft des aktuellen
Blocks zwei Bewegungsvektoren besitzt, die auf Referenzbilder in der
gleichen Richtung in Anzeigereihenfolge verweisen; und einen Entwicklungsschritt
zum Erzeugen des prädizierten
Vektors für
jeden der Bewegungsvektoren für
den aktuellen Block basierend auf den Bewegungsvektoren mit dem
gleichen Kennungscode aus den Bewegungsvektoren für die Vielzahl kodierter
Blocks umfasst. Hierbei kann in dem oben erwähnten Zuweisungsschritt und
dem Entwicklungsschritt folgendes (a) und (b) ausgeführt werden:
- (a) im Zuweisungsschritt werden die Kennungscodes
außerdem
den Bewegungsvektoren für
den aktuellen Block zugewiesen, und im Entwicklungsschritt wird
der prädizierte
Vektor für
jeden der Bewegungsvektoren für
den aktuellen Block basierend auf den Bewegungsvektoren mit dem gleichen
Kennungscode als der dem Bewegungsvektor für den aktuellen Block aus den
Bewegungsvektoren für
die Vielzahl kodierter Blocks zugewiesenen erzeugt.
- (b) im Zuweisungsschritt werden die Kennungscodes außerdem den
Bewegungsvektoren für
den aktuellen Block zugewiesen, und der Entwicklungsschritt umfasst:
einen Entwicklungsunterschritt zum Erzeugen eines prädizierten
Kandidatenvektors durch jeden Kennungscode basierend auf den Bewegungsvektoren
mit dem gleichen Kennungscode aus den Bewegungsvektoren für die Vielzahl
kodierter Blocks; und einen Verknüpfungsunterschritt zum Verknüpfen des
prädizierten
Kandidatenvektors mit jedem Kennungscode für den Bewegungsvektor für den aktuellen
Block.
-
Folglich
kann das Verfahren zum Kodieren der Bewegungsvektoren vereinheitlicht
werden, auch wenn ein benachbarter Block eine Vielzahl von Bewegungsvektoren
aufweist, die in die gleiche Richtung (vorwärts oder rückwärts) weisen, womit die Leistungsfähigkeit
der Kodierung der Bewegungsvektoren verbessert werden kann.
-
In
der vorliegenden Ausführungsform,
in der ein Makroblock horizontal 16·vertikal 16 Pixel aufweist,
wird eine Bewegungskompensation durch jeden Block von 8·8 Pixel
durchgeführt
und der Restfehler durch jede horizontal 8·vertikal 8 Pixel kodiert, wobei
jedoch auch jede andere Pixelanzahl verwendet werden kann.
-
Des
Weiteren wird in der vorliegenden Ausführungsform ein Bewegungsvektor
eines aktuellen Blocks unter Verwendung des Mittelwerts der Bewegungsvektoren
der drei vorher kodierten benachbarten Blocks als ein prädizierter
Vektor kodiert, wobei jedoch die Anzahl der benachbarten Blocks
beliebige andere Zahlen sein können
und der prädizierte
Vektor durch beliebige andere Verfahren bestimmt werden kann. Zum
Beispiel können
die Bewegungsvektoren für
den Block unmittelbar links von dem aktuellen Block für einen
prädizierten
Vektor genutzt werden.
-
In
der vorliegenden Ausführungsform
wurde der Ort des vorher kodierten benachbarten Blocks zur Bewegungsvektorkodierung
mit Bezug auf 3 erläutert, wobei
jedoch beliebige andere Orte verwendet werden können.
-
Wenn
zum Beispiel die Blocks von 8·8
Pixel der vorliegenden Ausführungsform
und Blocks von beliebigen anderen Größen gemischt werden, können die
folgenden kodierten benachbarten Blocks B, C und D für den aktuellen
Block A verwendet werden. Spezieller, es kann festgelegt werden,
dass der Block B ein Block ist, der ein Pixel links von dem oberen
linken Pixel im Block A enthält,
der Block C ein Block ist, der ein Pixel direkt über dem oberen linken Pixel
im Block A enthält
und der Block D ein Block ist, der ein Pixel über und rechts von dem oberen
rechten Pixel im Block A enthält.
-
In
der vorliegenden Ausführungsform
wird ein Bewegungsvektor durch Berechnen der Differenz zwischen
dem Bewegungsvektor eines aktuellen Blocks und dem aus den Bewegungsvektoren
für die benachbarten
Blocks erhaltenen prädizierten
Vektor kodiert, wobei er jedoch durch andere Methoden als die Differenzberechnung
kodiert werden kann.
-
In
der vorliegenden Ausführungsform
wurde jeweils das erste, zweite und dritte Verfahren zum Erzeugen
des prädizierten
Vektors zur Bewegungsvektorkodierung erläutert, wobei diese Verfahren
jedoch außerdem
in Kombination verwendet werden können.
-
Ein
Beispiel des kombinierten Verfahrens wird mit Bezug auf 7 erläutert. 7 ist
ein Ablaufdiagramm, das den Fall zeigt, bei dem das erste und das
zweite Verfahren zum Erzeugen von prädizierten Vektoren kombiniert
sind, und spezieller die Verarbeitung der Entwicklung eines prädizierten
Vektors in dem Fall, bei dem ein Block in 3A–3D ein
aktueller Block ist und zwei Bewegungsvektoren von jedem benachbarten
Block B–D
auf die Referenzblocks in der gleichen Richtung (vorwärts oder rückwärts) hinweisen.
In dieser Abbildung entsprechen die Schritte S115–S118 dem
oben erwähnten ersten
Verfahren zum Erzeugen von prädizierten Vektoren,
und die Schritte S111–S114
entsprechen einem Teil zur Bestimmung der Reihenfolge der benachbarten
Blocks für
das zweite Verfahren.
-
Eine
vorgegebene Reihenfolge im S112 kann die absteigende oder aufsteigende
Reihenfolge von zeitlichen Abständen
aus dem aktuellen Bild zu den Referenzbildern, eine Kodierungsreihenfolge oder
dergleichen sein. Hierbei ist die Kodierungsreihenfolge die Reihenfolge
in einem Bitstrom, wie es in 8 dargestellt
ist. 8 zeigt die einem Bild in dem Bitstrom entsprechenden
Bilddaten. Die Bilddaten enthalten einen Dateiheader und kodierte
Daten von entsprechenden Blocks. Die Bewegungsvektoren sind in den
kodierten Daten der Blocks angeordnet. In dieser Abbildung sind
die Bewegungsvektoren für
die Blocks B und C in Kodierungsreihenfolge angeordnet.
-
Im
S113 werden die Bewegungsvektoren in der vorgegebenen Reihenfolge
entsprechend ihren Rangfolgen in MV1 und MV2 klassifiziert. Diese
Klassifizierung der Bewegungsvektoren für die benachbarten Blocks ermöglicht eine
vereinfachtere Verarbeitung. Wenn die Bewegungsvektoren nicht klassifiziert
sind, muss der Mittelwert eines Maximums von 6 Bewegungsvektoren
(2 Bewegungsvektoren·3
benachbarte Blocks) berechnet werden.
-
Spezieller
werden bei der Verarbeitung von Schleife 1 zwei Bewegungsvektoren
für den
benachbarten Block B zuerst in der oben erwähnten vorgegebenen Reihenfolge
(S112) angeordnet und ihnen Kennungscodes (zum Beispiel 0 und 1,
1 und 2, MV1 und MV2 oder dergleichen) in dieser Reihenfolge (S113)
zugewiesen. Die Kennungscodes (zum Beispiel 0 und 1, 1 und 2, MV1
und MV2 oder dergleichen) werden außerdem in der gleichen Weise
den Bewegungsvektoren jeweils für
die benachbarten Blocks C und D zugewiesen. Gleichzeitig werden
die Kennungscodes in der gleichen Weise auch den zwei Bewegungsvektoren
für den
aktuellen Block A zugewiesen.
-
Als
Nächstes
werden bei der Verarbeitung von Schleife 2 die Bewegungsvektoren
mit dem gleichen Kennungscode (zum Beispiel 0 oder 1) zuerst aus
den Bewegungsvektoren für
die benachbarten Blocks B–D
(S116) heraus ausgewählt,
und der Mittelwert der ausgewählten
Bewegungsvektoren wird als ein prädizierter Vektor für den aktuellen
Block A (S117) betrachtet. Der prädizierte Vektor für einen weiteren
Bewegungsvektor wird ebenfalls in der gleichen Weise erhalten.
-
Zu
beachten ist, dass in Schleife 2 die oben erwähnten zwei Mittelwerte, ungeachtet
der Kennungscodes der Bewegungsvektoren für den Block A, als prädizierte
Kandidatenvektoren berechnet werden können, um einen beliebigen der
Kandidatenvektoren für
jeden Kennungscode des Bewegungsvektors für den Block A auszuwählen (oder
ihm diese zuzuordnen). Außerdem
müssen
in Schleife 1 die Kennungscodes nicht zugewiesen werden, wenn die prädizierten
Vektoren für
den Block A erzeugt werden, können
jedoch zugewiesen werden, wenn die Bewegungsvektoren für die benachbarten
Blocks B, C und D erfasst werden. Sowohl die zugewiesenen Kennungscodes
als auch die Bewegungsvektoren werden in der Bewegungsvektor-Speichereinheit 116 gespeichert.
-
Um
das zweite und dritte Verfahren zum Erzeugen prädizierter Vektoren gemeinsam
zu nutzen, kann das dritte Verfahren zum Erzeugen prädizierter Vektoren
anstelle von S115–S118
in 7 ausgeführt
werden.
-
In
der vorliegenden Ausführungsform
wird ein prädizierter
Vektor zum Kodieren eines Bewegungsvektors in der Annahme erzeugt,
dass ein aktueller Block nur vorwärts gerichtete Bewegungsvektoren
besitzt, jedoch kann der prädizierte
Vektor in der gleichen Weise erzeugt werden, auch wenn der aktuelle
Block einen rückwärts gerichteten
Bezugsbewegungsvektor aufweist.
-
Außerdem wird
in der vorliegenden Ausführungsform
ein prädizierter
Vektor zum Kodieren eines Bewegungsvektors in der Annahme erzeugt,
dass alle benachbarten Blocks jeweils zwei Bewegungsvektoren besitzen.
Jedoch kann der Bewegungsvektor, selbst wenn ein benachbarter Block
nur einen Bewegungsvektor besitzt, als ein erster oder ein zweiter Bewegungsvektor
behandelt werden.
-
Außerdem wurde
in der vorliegenden Ausführungsform
der Fall erläutert,
bei dem die maximale Anzahl von Referenzbildern zwei ist, jedoch
drei oder mehr sein kann.
-
Es
gibt außerdem
die folgenden Verfahren zum Speichern und Verwalten von Bewegungsvektoren
in der Bewegungsvektor-Speichereinheit 116 der vorliegenden
Ausführungsform:
- (1) Bewegungsvektoren für benachbarte Blocks und deren
Reihenfolge (Kennungscodes, die anzeigen, ob sie die ersten Bewegungsvektoren oder
die zweiten Bewegungsvektoren sind) werden gespeichert, um den ersten
oder den zweiten Bewegungsvektor für jeden benachbarten Block aus
der Bewegungsvektor-Speichereinheit 116 zu erfassen, indem
die Kennungscodes verwendet werden; und
- (2) die Orte zum Speichern des ersten Bewegungsvektors und des
zweiten Bewegungsvektors für
jeden benachbarten Block werden vorher bestimmt, um den ersten oder
den zweiten Bewegungsvektor für
den benachbarten Block aus der Bewegungsvektor-Speichereinheit 116 zu
erfassen, indem auf deren Speicherstellen zugegriffen wird.
-
(Zweite Ausführungsform)
-
Die
zweite Ausführungsform
der vorliegenden Erfindung wird nachstehend mit Bezug auf 9 erläutert. 9 ist
ein Blockdiagramm der Bilddekodiervorrichtung zum Dekodieren von
Bewegungsvektoren als einen Teil von Bilddekodierung, die eine Bildstrom-Analysiereinheit 701,
eine Restfehler-Dekodiereinheit 702,
eine Modusdekodiereinheit 703, eine Bewegungskompensations-Dekodiereinheit 705,
eine Bewegungsvektor-Speichereinheit 706, einen Bildspeicher 707,
eine Additionseinheit 708, Schalter 709 und 710 sowie
eine Bewegungsvektor-Dekodiereinheit 711 umfasst.
-
Die
Eingabereihenfolge von Bildern in den Bitstrom ist die gleiche wie
die in 2B dargestellte. Nachstehend
wird schrittweise die Dekodierverarbeitung des Bildes B8 erläutert.
-
Der
Bitstrom des Bildes B8 wird in die Bitstrom-Analysiereinheit 701 eingegeben.
Die Bitstrom-Analysiereinheit 701 zieht aus dem eingegebenen
Bitstrom verschiedene Datentypen ab. Hierbei enthalten verschiedene
Datentypen die Modusauswahl- und Bewegungsvektorinformationen. Die
abgezogenen Modusauswahlinformationen werden an die Modusdekodiereinheit 703 ausgegeben.
Die abgezogenen Bewegungsvektorinformationen werden an die Bewegungsvektor-Dekodiereinheit 711 ausgegeben.
Die kodierten Daten des Restfehlers werden an die Restfehler-Dekodiereinheit 701 ausgegeben.
-
Die
Modusdekodiereinheit 703 steuert den Schalter 709 und
den Schalter 710 auf der Basis der aus dem Bitstrom abgezogenen
Modusauswahlinformationen. Wenn die Modusauswahl eine Intra-Bild-Kodierung
ist, steuert sie den Schalter 709 und den Schalter 710 so,
dass sie jeweils mit „a" und "c" verbunden sind. Wenn die Modusauswahl
eine Inter-Bild-Prädiktionskodierung
ist, steuert sie den Schalter 709 und den Schalter 710 so,
dass sie jeweils mit „b" und „d" verbunden sind.
-
Die
Modusdekodiereinheit 703 gibt außerdem die Modusauswahlinformationen
an die Bewegungskompensations-Dekodiereinheit 705 und die Bewegungsvektor-Dekodiereinheit 711 aus.
Es wird nachstehend der Fall erläutert,
bei dem die Modusauswahl eine Inter-Bild-Prädiktionskodierung ist.
-
Die
Restfehler-Dekodiereinheit 702 dekodiert die eingegebenen
kodierten Daten des Restfehlers zum Entwickeln von Restfehlern.
Die entwickelten Restfehler werden an den Schalter 709 ausgegeben.
Da der Schalter 709 hier mit "b" verbunden
ist, werden die Restfehler zur Additionseinheit 708 ausgegeben.
-
Die
Bewegungsvektor-Dekodiereinheit 711 führt eine Dekodierverarbeitung
der kodierten Bewegungsvektoren durch, die von der Bitstrom-Analysiereinheit 701 eingegeben
werden. Die kodierten Bewegungsvektoren werden unter Verwendung
der Bewegungsvektoren der vorher dekodierten benachbarten Blocks
dekodiert. Diese Operation wird mit Bezug auf 3A–3D erläutert. Der
kodierte Bewegungsvektor (MV) für
den aktuellen Block A, der zu dekodieren ist, wird durch Addieren
des prädizierten
Vektors, der aus den Bewegungsvektoren der drei vorher dekodierten
benachbarten Blocks B, C und D erhalten wird, und des kodierten
Bewegungsvektors berechnet. Die Bewegungsvektoren der benachbarten Blocks
werden aus der Bewegungsvektor-Speichereinheit 706 erhalten.
-
Mit
Bezug auf 4A–4C werden
Verfahren zum Berechnen eines prädizierten
Vektors erläutert.
Diese Figuren zeigen die Bewegungsvektoren für die Blocks A–D. MV1
und MV2 geben jeweils die ersten Bewegungsvektoren und die zweiten
Bewegungsvektoren an. „Vorwärts" bedeutet einen vorwärts gerichteten
Bezugsbewegungsvektor. Die Zeichen und Zahlen in runden Klammern
stellen die Referenzbilder dar.
-
Durch
das erste Verfahren wird der prädizierte
Vektor erzeugt, indem nur die Bewegungsvektoren aus den Bewegungsvektoren
für die
benachbarten Blocks ausgewählt
werden, die auf das gleiche Referenzbild wie der Bewegungsvektor
für den
aktuellen Block verweisen. In 4A ist
der prädizierte
Vektor für
MV1 für
den Block A der für
die Blocks B, C und D verschiedene Mittelwert von MV1; und der prädizierte Vektor
für MV2
für den
Block A ist der für
die Blocks B, C und D verschiedene Mittelwert von MV2. In 4B ist
der prädizierte
Vektor für
MV1 für
den Block A der für
die Blocks B, C und D verschiedene Mittelwert von MV1; und der prädizierte
Vektor für MV2
für den
Block A ist der MV2 für
Block C selbst. In 4C ist der prädizierte
Vektor für
MV1 für
den Block A der Mittelwert von MV1 und MV2 für den Block B, MV1 für den Block
C und MV1 und MV2 für den
Block D, und der prädizierte
Vektor für
MV2 für den
Block A ist der MV2 für
Block C selbst. In diesem Fall kann der prädizierte Vektor für MV1 für den Block A
der Mittelwert von drei Vektoren sein; der Mittelwert von MV1 und
MV2 für
den Block B; MV1 für
den Block C; oder der Mittelwert von MV1 und MV2 für den Block
D. Der Mittelwert von MV1 und MV2 für den Block B wird auf die
Genauigkeit der Bewegungsvektoren (wie beispielsweise 2/1 Pixelgenauigkeit,
1/4 Pixelgenauigkeit und 1/8 Pixelgenauigkeit) gerundet. Diese Pixelgenauigkeit
wird durch jeden Block, jedes Bild oder jede Sequenz bestimmt. In
einem solchen Fall, wenn es keinen Bewegungsvektor für die benachbarten
Blocks gibt, die auf das gleiche Referenzbild verweisen, kann der
prädizierte
Vektor Null sein. Die Mittelwerte sind jeweils für horizontale und vertikale
Komponenten des Bewegungsvektors berechnet.
-
Durch
das zweite Verfahren werden die prädizierten Vektoren für MV1 und
MV2, ungeachtet der Referenzbilder, getrennt erzeugt. In diesem
Fall kann die Reihenfolge von MV1 und MV2 in jedem Block durch eine
vorgeschriebene Methode bestimmt werden. Zum Beispiel können MV1
und MV2 in absteigender oder aufsteigender Reihenfolge von zeitlichen
Abständen
aus dem aktuellen Bild zu den Referenzbilder, vorwärts gerichtete
Vektoren zuerst oder rückwärts gerichtete
Vektoren zuerst, in Dekodierreihenfolge (in der Reihenfolge in einem
Bitstrom) oder dergleichen angeordnet werden. In 4A ist
der prädizierte
Vektor für
MV1 für
den Block A der für
die Blocks B, C und D verschiedene Mittelwert von MV1, und der prädizierte
Vektor für
MV2 für
den Block A ist der für
die Blocks B, C und D verschiedene Mittelwert von MV2. Außerdem ist
in den 4B und 4C der
prädizierte
Vektor für
MV1 für
den Block A der für die
Blocks B, C und D verschiedene Mittelwert von MV1, und der prädizierte
Vektor für
MV2 für
den Block A ist der für
die Blocks B, C und D verschiedene Mittelwert von MV2. Wenn die
Referenzbilder der Bewegungsvektoren für den Block A von den Referenzbildern
der Bewegungsvektoren für
die Blocks B, C und D, die für
den prädizierten
Vektor für
den Block A verwendet werden, abweichen, können die Bewegungsvektoren
für die
Blocks B, C und D skaliert werden. Sie können auf der Basis eines Wertes
skaliert werden, der durch einen zeitlichen Abstand zwischen Bildern
oder einen vorgegebenen Wert bestimmt ist.
-
Durch
das dritte Verfahren wird der prädizierte
Vektor für
MV1 basierend auf den benachbarten Blocks zur Verwendung erzeugt.
Wenn MV1 als ein prädizierter
Vektor für
MV2 genutzt wird, kann der MV1 selbst als der prädizierte Vektor verwendet werden,
oder der skalierte MV1 kann genutzt werden. Wenn der skalierte verwendet
wird ist es vorstellbar, den zeitlichen Abstand zwischen dem Bild
B8 und dem Referenzbild von MV1 dem zeitlichen Abstand zwischen
dem Bild B8 und dem Referenzbild von MV2 gleich zu machen. Ein Beispiel
wie sie gleich zu machen sind, wird mit Bezug auf 6 erläutert. In 6 ist
vorausgesetzt, dass der Block A im Bild B8 die Bewegungsvektoren
MV1 und MV2 besitzt und die Referenzbilder von MV1 und MV2 jeweils
die Bilder P7 und P4 sind. In diesem Fall wird der durch Skalieren
von MV1 zu dem Bild P4 erhaltene MV1' (das heißt ein Vektor, der in diesem
Beispiel jeweils durch Vervierfachen von horizontalen und vertikalen Komponenten
von MV1 erhalten wird) als ein prädizierter Vektor für den Bewegungsvektor
MV2 genutzt. Oder er kann unter Verwendung eines vorgegebenen Wertes
für ein
anderes Verfahren skaliert werden. Außerdem kann die Reihenfolge
von MV1 und MV2 für
jeden Block durch eine vorgegebene Methode vorher bestimmt werden.
Zum Beispiel können
MV1 und MV2 in absteigender oder aufsteigender Reihenfolge von zeitlichen
Abständen
aus dem aktuellen Bild zu den Referenzbildern, vorwärts gerichtete
Vektoren zuerst oder rückwärts gerichtete Vektoren
zuerst, in Dekodierreihenfolge oder dergleichen angeordnet werden.
-
Im
oben erwähnten
Beispiel besitzen alle Blocks B–D
Bewegungsvektoren, jedoch kann, wenn diese Blocks als Intrablocks
oder im direkten Modus kodiert sind, eine Ausnahmeverarbeitung für sie durchgeführt werden.
Wenn zum Beispiel einer der Blocks B–D ein Block eines solchen
Typs ist, werden die Bewegungsvektoren für diesen Block zum Dekodieren
als Null betrachtet. Wenn zwei von ihnen Blocks eines solchen Typs
sind, werden die Bewegungsvektoren des restlichen Blocks als prädizierte Vektoren
verwendet. Und wenn alle der Blocks keinen Bewegungsvektor besitzen,
werden Bewegungsvektoren in der Annahme dekodiert, dass der prädizierte
Vektor Null ist. Dieser Verarbeitungstyp kann ebenfalls angewandt
werden.
-
Die
dekodierten Bewegungsvektoren werden an die Bewegungskompensations-Dekodiereinheit 705 und
die Bewegungsvektor-Speichereinheit 706 ausgegeben.
-
Die
Bewegungskompensations-Dekodiereinheit 705 erfasst die
Bewegungskompensationsblocks aus dem Bildspeicher 707 auf
der Basis der eingegebenen Bewegungsvektoren. Die wie oben erwähnt entwickelten
Bewegungs kompensationsblocks werden an die Additionseinheit 708 ausgegeben.
-
Die
Bewegungsvektor-Speichereinheit 706 speichert die eingegebenen
Bewegungsvektoren. Speziell speichert die Bewegungsvektor-Speichereinheit 706 die
Bewegungsvektoren für
die dekodierten Blocks.
-
Die
Additionseinheit 708 addiert die eingegebenen Restfehler
und die Bewegungskompensationsblocks, um dekodierte Blocks zu entwickeln.
Die entwickelten dekodierten Blocks werden über den Schalter 710 in
den Bildspeicher 707 ausgegeben.
-
Die
Makroblocks im Bild B8 werden aufeinander folgend in der Weise dekodiert,
wie es oben erwähnt
ist.
-
Wie
oben beschrieben, wird entsprechend dem Bewegungsvektordekodierverfahren
nach der vorliegenden Erfindung ein Bewegungsvektor für jeden
aktuellen Block dekodiert, indem ein prädizierter Vektor, der von Bewegungsvektoren
für vorher
dekodierte benachbarte Blocks erhalten wird, und der kodierte Bewegungsvektor
für den
aktuellen Block addiert werden. Dieser prädizierte Vektor wird durch eine
der folgenden Verarbeitungen erzeugt: Wenn der aktuelle Block und
die benachbarten Blocks jeweils eine Vielzahl von Bewegungsvektoren
besitzen, die auf die Referenzbilder in der gleichen Richtung (vorwärts oder
rückwärts) hinweisen,
werden
- (A) die Bewegungsvektoren, die auf das
gleiche Bild verweisen, aus den Bewegungsvektoren für die benachbarten
Blocks heraus ausgewählt,
um den prädizierten
Vektor (auf der Basis der ausgewählten
Bewegungsvektoren) zu erzeugen;
- (B) die Bewegungsvektoren für
die entsprechenden benachbarten Blocks in der vorgegebenen Reihenfolge
angeordnet und die Bewegungsvektoren der gleichen Rangfolge aus
den angeordneten Bewegungsvektoren ausgewählt, um den prädizierten
Vektor (basierend auf den ausgewählten Bewegungsvektoren)
zu erzeugen;
- (C) soll der prädizierte
Vektor für „den zweiten
Bewegungsvektor" des
aktuellen Blocks „der
erste Bewegungsvektor" sein,
und wenn der „zweite Bewegungsvektor" und „der erste
Bewegungsvektor" auf
unterschiedliche Bilder verweisen, wird der „erste Bewegungsvektor" entsprechend dem
zeitlichen Abstand zwischen den Bildern skaliert, um den prädizierten
Vektor zu erzeugen.
-
Spezieller
ist das Bewegungsvektordekodierverfahren nach der vorliegenden Erfindung
ein Bewegungsvektordekodierverfahren zum Erzeugen eines prädizierten
Vektors für
einen aktuellen Block, der zu dekodieren ist, und zum Dekodieren
eines kodierten Bewegungsvektors unter Verwendung des prädizierten
Vektors, wobei das Bewegungsvektordekodierverfahren einen Zuweisungsschritt
zum Zuweisen von Kennungscodes an Bewegungsvektoren für einen
entsprechenden der Vielzahl kodierter Blocks umfasst, wenn wenigstens
ein Block aus der Vielzahl von dekodierten Blocks in der Nachbarschaft des
aktuellen Blocks Bewegungsvektoren besitzt, die auf Referenzbilder
in der gleichen Richtung in Anzeigereihenfolge verweisen; und einen
Entwicklungsschritt zum Erzeugen des prädizierten Vektors für jeden
der Bewegungsvektoren für
den aktuellen Block basierend auf den Bewegungsvektoren mit dem
gleichen Kennungscode aus den Bewegungsvektoren für die Vielzahl
dekodierter Blocks umfasst. Hierbei kann in dem oben erwähnten Entwicklungsschritt
folgendes (a) und (b) ausgeführt
werden:
- (a) Im Entwicklungsschritt wird der
prädizierte Vektor
basierend auf den Bewegungsvektoren für die Vielzahl von dekodierten
Blocks mit dem gleichen Kennungscode wie dem Kennungscode, der dem
Bewegungsvektor für
den aktuellen Block zugewiesen ist, erzeugt.
- (b) Im Entwicklungsschritt wird der prädizierte Vektor durch Verknüpfen eines
durch jeden Kennungscode für
die Bewegungsvektoren erzeugten prädizierten Kandidatenvektors
mit dem gleichen Kennungscode aus den Bewegungsvektoren für die Vielzahl
dekodierter Blocks mit dem Kennungscode für den Bewegungsvektor für den aktuellen
Block erzeugt. Die Bewegungsvektoren für den dekodierten Block werden
unterschieden basierend auf einer der absteigenden Reihenfolge und
aufsteigenden Reihenfolge zeitlicher Abstände in der Anzeigereihenfolge
aus einem den aktuellen Block enthaltenden Bild zu den Referenzbildern,
auf die durch die Bewegungsvektoren verwiesen wird.
-
Folglich
können
die Bewegungsvektoren, die in dem Verfahren kodiert werden wie es
in der ersten Ausführungsform
gezeigt ist, fehlerfrei dekodiert werden.
-
In
der vorliegenden Ausführungsform
wird ein Bewegungsvektor eines aktuellen Blocks unter Verwendung
des Mittelwertes der Bewegungsvektoren der drei vorher dekodierten
benachbarten Blocks als ein prädizierter
Vektor dekodiert, jedoch kann die Anzahl der benachbarten Blocks
eine beliebige andere Anzahl sein, und der prädizierte Vektor kann durch
beliebige andere Verfahren bestimmt werden. Zum Beispiel können die
Bewegungsvektoren für den
Block unmittelbar links vom aktuellen Block für einen prädizierten Vektor verwendet
werden.
-
Wenn
zum Beispiel die Blocks von 8·8
Pixel der vorliegenden Ausführungsform
und Blocks beliebiger anderer Größen gemischt
werden, können
die folgenden dekodierten benachbarten Blocks B, C und D für den aktuellen
Block A genutzt werden. Spezieller, es kann festgelegt werden, dass
der Block B ein Block ist, der ein Pixel links von dem oberen linken
Pixel im Block A enthält,
der Block C ein Block ist, der ein Pixel direkt über dem oberen linken Pixel
im Block A enthält
und der Block D ein Block ist, der ein Pixel über und rechts von dem oberen
rechten Pixel im Block A enthält.
-
In
der vorliegenden Ausführungsform
wurden die Orte der vorher dekodierten benachbarten Blocks zur Bewegungsvektordekodierung
mit Bezug auf 3A–3D erläutert, wobei
sich jedoch beliebige andere Orte anwenden lassen.
-
In
der vorliegenden Ausführung
wird der Bewegungsvektor durch Addieren des Bewegungsvektors eines
aktuellen Blocks und des aus den Bewegungsvektoren für die benachbarten
Blocks erhaltenen prädizierten
Vektors dekodiert, jedoch kann er durch andere Methoden als die
Addition dekodiert werden.
-
Außerdem wurde
in der vorliegenden Ausführung
jeweils das erste, zweite und dritte Verfahren zum Erzeugen des
prädizierten
Vektors zur Bewegungsvektordekodierung erläutert, wobei diese Verfahren
in Kombination verwendet werden können.
-
Wenn
zum Beispiel das erste und zweite Verfahren zum Erzeugen von prädizierten
Vektoren kombiniert werden, kann der prädizierte Vektor entsprechend
dem Ablauf erzeugt werden, wie es in 7 gezeigt
ist. Wenn das zweite und dritte Verfahren zum Erzeugen prädizierter
Vektoren kombiniert werden, kann das dritte Verfahren anstelle von
S115 bis S118 in 7 ausgeführt werden.
-
In
der vorliegenden Ausführungsform
wird ein prädizierter
Vektor zum Dekodieren von Bewegungsvektoren in der Annahme erzeugt,
dass ein aktueller Block nur vorwärts gerichtete Bezugsbewegungsvektoren
besitzt, jedoch kann der prädizierte Vektor
in der gleichen Weise erzeugt werden, auch wenn der aktuelle Block
einen rückwärts gerichteten Bezugsbewegungsvektor
aufweist.
-
In
der vorliegenden Ausführungsform
wurde der Fall erläutert,
bei dem die maximale Anzahl von Referenzbildern zwei ist, wobei
es jedoch drei oder mehr sein können.
-
Außerdem gibt
es die folgenden Verfahren zum Speichern und Verwalten von Bewegungsvektoren
in der Bewegungsvektor-Speichereinheit 706 der vorliegenden
Ausführungsform:
- (1) Bewegungsvektoren für benachbarte Blocks und deren
Reihenfolge (Kennungscodes, die anzeigen, ob sie die ersten Bewegungsvektoren oder
die zweiten Bewegungsvektoren sind) werden so gespeichert, um den
ersten oder den zweiten Bewegungsvektor für jeden benachbarten Block
aus der Bewegungsvektor-Speichereinheit 706 unter Verwendung
der Kennungscodes zu erfassen; und
- (2) die Orte zum Speichern des ersten Bewegungsvektors und des
zweiten Bewegungsvektors für
jeden benachbarten Block werden vorher bestimmt, um den ersten oder
den zweiten Bewegungsvektor für
den benachbarten Block aus der Bewegungsvektor-Speichereinheit 706 zu
erfassen, indem auf deren Speicherstellen zugegriffen wird.
-
Wenn
ein Programm zur Ausführung
der Struktur des Bewegungsvektorkodierverfahrens, des Bildkodierverfahrens
einschließlich
Bewegungsvektorkodierverfahren, des Bewegungsvektordekodierverfahrens
oder des Bilddekodierverfahrens einschließlich Bewegungsvektordekodierverfahren,
wie in der ersten und der zweiten Ausführungsform gezeigt, auf einem
Speichermedium wie einer Diskette aufgezeichnet ist, wird es außerdem möglich die
Verarbeitung, wie in diesen Ausführungsformen
dargestellt, bequem in einem unabhängigen Computersystem durchzuführen.
-
10A, 10B und 10C sind Darstellungen, die den Fall zeigen,
bei dem die Verarbeitung in einem Computersystem unter Verwendung
einer Diskette durchgeführt
wird, die das oben erwähnte
Programm speichert.
-
10B zeigt eine Diskette und die Vorderansicht
sowie die Querschnittsansicht der äußeren Erscheinung der Diskette,
und 10A zeigt ein Beispiel eines physikalischen
Formats einer Diskette als Speichermedium selbst. Eine Diskette
FD ist in einer Hülle
F enthalten, wobei eine Vielzahl von Spuren Tr auf der Oberfläche der
Scheibe in Radiusrichtung konzentrisch vom Umfang ausgebildet ist
und jede Spur in 16 Sektoren Se in Winkelrichtung unterteilt ist.
Deshalb wird, was die das oben erwähnte Programm speichernde Diskette
betrifft, das Bildkodierverfahren als das Programm in einem Bereich
aufgezeichnet, der diesem auf der Diskette FD zugeordnet ist.
-
10C zeigt die Struktur zum Schreiben und
Lesen des Programms auf die und von der Diskette FD. Wenn das Programm
auf der Diskette aufgezeichnet wird, schreibt das Computersystem
Cs das Bildkodierverfahren oder das Bilddekodierverfahren als Programm über ein
Diskettenlaufwerk auf die Diskette FD. Zum Aufbau des Bildkodierverfahrens
im Computersystem durch das auf der Diskette aufgezeichnete Programm
wird das Programm über das
Diskettenlaufwerk von der Diskette ausgelesen und auf das Computersystem übertragen.
-
Die
obige Erläuterung
wird in der Annahme gemacht, dass ein Speichermedium eine Diskette
ist, jedoch kann die gleiche Verarbeitung auch unter Verwendung
einer optischen Speicherplatte durchgeführt werden. Außerdem ist
das Speichermedium nicht auf eine Diskette und eine optische Speicherplatte
beschränkt,
sondern es können
beliebige andere Medien wie beispielsweise eine Chipkarte und eine
ROM Kassette verwendet werden, wenn auf ihnen ein Programm aufgezeichnet
werden kann.
-
11–14 sind
Darstellungen der Vorrichtungen zum Durchführen der Kodier- oder Dekodierverarbeitung
nach der ersten und zweiten Ausführungsform
sowie des sie verwendenden Systems.
-
11 ist
ein Blockdiagramm, das den gesamten Aufbau eines Content-Providing-Systems ex100
zur Durchführung
eines Content-Verteilungsservices darstellt. Der Bereich zur Bereitstellung
eines Kommunikationsservices ist in Zellen von gewünschter
Größe eingeteilt,
und Mobilstationen ex107–ex110,
die feste Funkstationen sind, sind in entsprechenden Zellen angeordnet.
-
Dieses
Content-Providing-System ex100 ist mit Vorrichtungen wie Computer
ex111, PDA-Computer (elektronischer Assistent) ex112, Kamera ex113, Mobiltelefon
ex114 und ein mit Kamera ausgestattetes Mobiltelefon ex115 über Internet
ex101, Internetprovider ex102, Telefonnetz ex104 und Mobilstationen
ex107–ex110
verbunden.
-
Jedoch
ist das Content-Providing-System ex100 nicht auf den wie in 11 gezeigten
Aufbau beschränkt
und kann mit einer beliebigen Kombination von ihnen verbunden werden.
Außerdem
kann jede Vorrichtung direkt mit dem Telefonnetz ex104, nicht durch
die Mobilstationen ex107–ex110,
verbunden werden.
-
Die
Kamera ex113 ist ein Gerät
wie eine digitale Videokamera, die Bewegtbilder aufnehmen kann.
Das Mobiltelefon kann das Mobiltelefon eines PDC-Systems (persönliche digitale
Kommunikation), eines CDMA-Systems (codegeteilter Mehrfachzugriff),
eines W-CDMA-Systems (breitbandiger codegeteilter Mehrfachzugriff)
oder eines GSM-Systems (globales Mobilfunksystem nach GSM-Standard),
eines PHS (schnurloses Mobilfunksystem) oder dergleichen sein.
-
Ein
Streaming-Server ex103 wird über
das Telefonnetz ex104 und die Mobilstation ex109 mit der Kamera
ex113 verbunden, der eine unmittelbar übertragene Verteilung oder
dergleichen unter Verwendung der Kamera ex113 auf der Basis der
vom Benutzer übertragenen
kodierten Daten ermöglicht.
Entweder die Kamera ex113 oder der Server zum Übertragen der Daten kann die
von der Kamera aufgenommenen Daten kodieren. Außerdem können die von einer Kamera ex116
aufgenommenen Bewegtbildaten über
den Computer ex111 zu dem Streaming-Server ex103 übertragen
werden. Die Kamera ex116 ist ein Gerät wie beispielsweise eine Digitalkamera,
die stehende Bilder und Bewegtbilder aufnehmen kann. Entweder die
Kamera ex116 oder der Computer ex111 kann die Bewegtbilddaten kodieren. Eigentlich
führt ein
in dem Computer ex111 oder der Kamera ex116 enthaltener LSI ex117
(hochintegrierter Schaltkreis) Kodierverarbeitung durch. Software zum
Kodieren und Dekodieren von Bildern kann in einen beliebigen Typ
von Speichermedium (wie eine CD-ROM,
eine Diskette und eine Festplatte), das vom Computer ex111 oder
dergleichen lesbar ist, integriert werden. Außerdem kann das mit einer Kamera
ausgestattete Mobiltelefon ex115 die Bewegtbilddaten übertragen.
Diese Bewegtbilddaten sind die Daten, die durch den im Mobiltelefon
ex115 enthaltenen LSI kodiert werden.
-
Beim
Content-Providing-System ex100 werden Inhalte (wie ein unmittelbar übertragenes
Musikvideo), die von Benutzern mittels Kamera ex113, Kamera ex116
oder dergleichen aufgenommen wurden, in der gleichen Weise wie die
erste Ausführungsform kodiert
und zum Streaming-Server ex103 übertragen,
während
der Streaming-Server ex103 eine Verteilung von digitalen Bild- und
Toninhalten der Inhaltsdaten an die Inhaltsprogramme auf ihre Anforderung hin
vornimmt. Die Verbindungsprogramme umfassen den Computer ex111,
den PDA ex112, die Kamera ex113, das Mobiltelefon ex114 und so weiter,
die die oben erwähnten
kodierten Daten dekodieren können. Beim
Content-Providing-System ex100 können
die Verbindungsprogramme somit die kodierten Daten empfangen und
reproduzieren und können
außerdem
die Daten in Echtzeit empfangen, dekodieren und reproduzieren, um
personenbezogenes Broadcasting zu verwirklichen.
-
Wenn
jedes Gerät
in diesem System das Kodieren oder Dekodieren durchführt, können die
Bewegtbild-Kodiervorrichtung oder die Bewegtbild-Dekodiervorrichtung,
wie sie in der oben erwähnten
ersten oder zweiten Ausführungsform
gezeigt sind, verwendet werden.
-
Als
Beispiel wird ein Mobiltelefon erläutert.
-
12 ist
eine grafische Darstellung, die das Mobiltelefon ex115 zeigt, das
unter Verwendung des in der ersten und der zweiten Ausführungsform
erläuterten
Bewegtbildkodierverfahrens und des Bewegtbilddekodierverfahrens
realisiert wird. Das Mobiltelefon ex115 besitzt eine Antenne ex201
zum Senden und Empfangen von Funkwellen zwischen der Mobilstation
ex110, eine Kameraeinheit ex203 wie eine CCD-Kamera, die Bewegtbilder
und stehende Bilder aufnehmen kann, eine Displayeinheit ex202 wie
eine Flüssigkristallanzeige
zum Anzeigen der Daten, die erhalten werden durch Dekodieren von
Bildern und dergleichen, die von der Kameraeinheit ex203 aufgenommen
oder von der Antenne ex201 empfangen wurden, ein Hauptgehäuse einschließlich einer
Gruppe von Bedientasten ex204, eine Sprachausgabeeinheit ex208 wie
ein Lautsprecher zur Ausgabe von Stimmen, eine Spracheingabeeinheit 205 wie
ein Mikrofon zur Eingabe von Stimmen, ein Speichermedium ex207 zum
Speichern von kodierten oder dekodierten Daten wie Daten von Bewegtbildern
oder stehenden Bildern, die von der Kamera aufgenommen wurden, sowie
Daten von Bewegtbildern oder stehenden Bildern von empfangenen E-Mails,
und eine Slot-Einheit
ex206 zum Anbringen des Speichermediums ex207 in dem Mobiltelefon
ex115. Das Speichermedium ex207 enthält ein blockweise löschbares
Speicherelement, eine Art von EEPROM (elektrisch löschbarer
und programmierbarer Nur-Lese-Speicher), d. h. ein elektrisch löschbarer
und wieder beschreibbarer, nicht flüchtiger Speicher in einem Kunststoffgehäuse wie
beispielsweise eine SD-Karte.
-
Als
Nächstes
wird mit Bezug auf 13 das Mobiltelefon ex115 erläutert. Im
Mobiltelefon ex115 sind eine Hauptsteuereinheit ex311 zur gesamten Steuerung
jeder Einheit des Hauptgehäuses
einschließlich
der Displayeinheit ex202 und der Bedientasten ex204 mit einer Versorgungsstromkreiseinheit ex310,
einer Funktionseingabe-Steuereinheit ex304, einer Bildkodiereinheit
ex312, einer Kameraschnittstelleneinheit ex303, einer LCD-Steuereinheit
ex302 (Flüssigkristallanzeige),
einer Bilddekodiereinheit ex309, einem Multiplexer/Demultiplexer
ex308, einer Lese-/Schreibeinheit ex307, einer Modemschaltkreiseinheit
ex306 und einer Sprachverarbeitungseinheit ex305 über einen
synchronen Bus ex313 miteinander verbunden.
-
Wenn
durch die Bedienung eines Benutzers eine Rufbeendigungstaste oder
eine Stromtaste eingeschaltet wird, versorgt die Versorgungsstromkreiseinheit
ex310 entsprechende Einheiten mit Strom aus einem Akkupack, um das
mit einer Kamera ausgestattete digitale Mobiltelefon ex115 in einen
Bereitzustand zu aktivieren.
-
Im
Mobiltelefon ex115 wandelt die Sprachverarbeitungseinheit ex305
die von der Spracheingabeeinheit ex205 im Dialogbetrieb empfangenen Sprachsignale
mit Steuerung der Hauptsteuereinheit ex311 einschließlich CPU,
ROM und RAM in digitale Sprachdaten um, wobei die Modemschaltkreiseinheit ex306
eine Streuspektrumsverarbeitung der digitalen Sprachdaten und die
Sende-/Empfangsschaltkreiseinheit ex301 eine Digital-Analog-Umwandlung
und Frequenzumwandlung der Daten durchführt, um sie über die
Antenne ex201 zu übertragen.
Außerdem verstärkt im Mobiltelefon
ex115 die Sende-/Empfangsschaltkreiseinheit ex301 die von der Antenne ex201
im Dialogbetrieb empfangenen Daten und führt eine Frequenzumwandlung
sowie Analog-Digital-Umwandlung
der Daten durch, wobei die Modemschaltkreiseinheit ex306 eine inverse
Streuspektrumsverarbeitung der Daten durchführt und die Sprachverarbeitungseinheit
ex305 sie in analoge Sprachdaten umwandelt, um sie über die
Sprachausgabeeinheit ex208 auszugeben.
-
Außerdem werden
beim Senden einer E-Mail im Datenübertragungsmodus die durch
Bedienung der Bedientasten ex204 am Hauptgehäuse eingegebenen Textdaten
der E-Mail über
die Bedieneingabe-Steuereinheit ex304 zur Hauptsteuereinheit ex311 überfragen.
In der Hauptsteuereinheit ex311 werden die Daten, nachdem die Modemschaltkreiseinheit
ex306 eine Streuspektrumsverarbeitung der Textdaten und die Sende-/Empfangsschaltkreiseinheit
ex301 von ihnen eine Digital-Analog-Umwandlung und Frequenzumwandlung
durchgeführt
hat, über
die Antenne ex201 an die Mobilstation ex110 gesendet.
-
Wenn
Bilddaten im Datenübertragungsmodus
gesendet werden, werden die von der Kameraeinheit ex203 aufgenommenen
Bilddaten über
die Kameraschnittstelleneinheit ex303 der Bildkodiereinheit ex312
geliefert. Werden sie nicht gesendet, können die von der Kameraeinheit
ex203 aufgenommenen Bilddaten auch direkt über die Kameraschnittstelleneinheit
ex303 und die LCD-Steuereinheit ex302
auf der Displayeinheit 202 angezeigt werden.
-
Die
Bildkodiereinheit ex312, die die in der vorliegenden Erfindung erläuterte Bildkodiervorrichtung
enthält,
kodiert die von der Kameraeinheit ex203 gelieferten Bilddaten durch
das für
die Bildkodiervorrichtung verwendete Kodierverfahren, wie es in
der oben erwähnten
ersten Ausführung
dargestellt ist, um sie in kodierte Bilddaten umzuwandeln und überträgt sie an
den Multiplexer/Demultiplexer ex308. Gleichzeitig überträgt das Mobiltelefon
ex115 die von der Spracheingabeeinheit ex205 während der Aufnahme von Bildern
durch die Kameraeinheit ex203 empfangenen Stimmen an den Multiplexer/Demultiplexer
ex308 über
die Sprachverarbeitungseinheit ex305 als digitale Sprachdaten.
-
Der
Multiplexer/Demultiplexer ex308 sendet gleichzeitig die von der
Bildkodiereinheit ex312 gelieferten kodierten Bilddaten und die
von der Sprachverarbeitungseinheit ex305 gelieferten Sprachdaten durch
ein vorher bestimmtes Verfahren, wobei die Modemschaltkreiseinheit
ex306 eine Streuspektrumsverarbeitung der sich ergebenden gleichzeitig gesendeten
Daten durchführt
und die Sende-/Empfangsschaltkreiseinheit ex301 eine Digital-Analog-Umwandlung
und Frequenzumwandlung der Daten zum Senden über die Antenne ex201 durchführt.
-
Was
das Empfangen von Daten einer Bewegtbilddatei betrifft, die mit
einer Internetseite oder dergleichen im Datenübertragungsmodus verlinkt ist, führt die
Modemschaltkreiseinheit ex306 eine inverse Streuspektrumsverarbeitung
der Daten durch, die von der Mobilstation ex110 über die Antenne ex201 empfangen
wurden und überträgt die sich
ergebenden gleichzeitig gesendeten Daten an den Multiplexer/Demultiplexer
ex308.
-
Um
die über
die Antenne ex201 empfangenen, gleichzeitig gesendeten Daten zu
dekodieren, entschachtelt der Multiplexer/Demultiplexer ex308 die
gleichzeitig gesendeten Daten zu einem Bitstrom von Bilddaten und
einen Bitstrom von Sprachdaten und liefert die kodierten Bilddaten über den
synchronen Bus ex313 jeweils an die Bilddekodiereinheit ex309 und
die Sprachdaten an die Sprachverarbeitungseinheit ex305.
-
Als
Nächstes
dekodiert die Bilddekodiereinheit ex309, die die in der vorliegenden
Erfindung erläuterte
Bilddekodiervorrichtung enthält,
den Bitstrom von Bilddaten durch das Dekodierverfahren paarweise
mit dem Kodierverfahren, wie es in den oben erwähnten Ausführungsformen dargestellt ist,
um reproduzierte Bewegtbilddaten zu entwickeln und liefert diese
Daten über
die LCD-Steuereinheit ex302 an die Displayeinheit ex202, womit Bilddaten,
die zum Beispiel in einer mit einer Internetseite verlinkten Bewegtbilddatei
enthalten sind, angezeigt werden. Gleichzeitig wandelt die Sprachverarbeitungseinheit ex305
die Sprachdaten in analoge Sprachdaten um und liefert diese Daten
an die Sprachausgabeeinheit ex208, womit Sprachdaten, die zum Beispiel
in einer mit einer Internetseite verlinkten Bewegtbilddatei enthalten
sind, reproduziert werden.
-
Die
vorliegende Erfindung ist nicht auf das oben erwähnte System beschränkt, und
zumindest kann entweder die Bildkodiervorrichtung oder die Bilddekodiervorrichtung
in den oben erwähnten
Ausführungsformen
in ein digitales Funkübertragungssystem
einbezogen werden, wie es in 14 gezeigt ist.
Eine solche vom Boden oder per Satellit durchgeführte digitale Übertragung
durch Funk hat kürzlich von
sich reden gemacht. Spezieller wird ein Bitstrom von Bildinformationen
von einem Funksender ex409 durch Funkwellen zu einem Fernmeldesatelliten ex410
gesendet oder an ihn übertragen.
Nach dessen Empfang sendet der Fernmeldesatellit ex410 Funkwellen
zur Übermittlung,
empfängt
eine Hausantenne ex406 mit einer Satellitenfunk-Empfangsfunktion
die Funkwellen, und ein Gerät
wie beispielsweise ein Fernsehempfänger ex401 oder eine Settop-Box
(STB) ex407 dekodiert den Bitstrom zur Wiedergabe. Die Bilddekodiervorrichtung,
wie sie in der oben erwähnten
Ausführungsform
gezeigt ist, kann in die Wiedergabevorrichtung ex403 implementiert
werden, um den in einem Speichermedium ex402, wie eine CD und DVD,
aufgezeichneten Bitstrom zu lesen und ihn zu dekodieren. In diesem
Fall werden die reproduzierten Bildsignale auf einem Monitor ex404 angezeigt.
Es wird auch in Erwägung
gezogen, die Bilddekodiervorrichtung in der Settop-Box ex407, die an
ein Kabel ex405 für
Kabelfernsehen oder die Antenne ex406 für Satellitenfunk und/oder bodenstationierten
Rundfunk angeschlossen ist, zu implementieren, um die Bildsignale
auf einem Monitor ex408 des Fernsehempfängers ex401 wiederzugeben.
Die Bilddekodiervorrichtung kann in den Fernsehempfänger, jedoch
nicht in die Setup-Box, einbezogen werden. Oder, ein Auto ex412
mit einer Antenne ex411 kann Signale vom Satelliten ex410 oder von
der Mobilstation ex107 empfangen, um Bewegtbilder auf einem Anzeigegerät wie eine
Autonavigationsvorrichtung ex413 im Auto ex412 wiederzugeben.
-
Außerdem kann
die wie in der oben erwähnten
Ausführungsform
gezeigte Bildkodiervorrichtung Bildsignale zum Aufzeichnen auf einem
Speichermedium kodieren. Als konkretes Beispiel gibt es ein Aufzeichnungsgerät ex420,
wie beispielsweise einen DVD Rekorder, zum Aufzeichnen von Bildsignalen auf
eine Digitalvideoplatte ex421 und ein Plattenaufzeichnungsgerät, um sie
auf einer Festplatte aufzuzeichnen. Sie können auch auf einer SD Karte
(Speicherkante) ex422 aufgezeichnet werden. Wenn das Aufzeichnungsgerät ex420
die in der oben erwähnten
Ausführungsform
gezeigte Bilddekodiervorrichtung enthält, können die auf der Digitalvideoplatte ex421
oder der SD-Karte ex422 aufgezeichneten Bildsignale zur Anzeige
auf dem Monitor ex408 wiedergegeben werden.
-
Als
Aufbau des Autonavigationsgerätes ex413
ist der Aufbau ohne die Kameraeinheit ex203, die Kameraschnittstelleneinheit
ex303 und die Bildkodiereinheit ex312, ohne die Einheiten gemäß 13,
vorstellbar. Das gleiche gilt für
den Computer ex111, den Fernseh(empfänger) ex401 und anderes.
-
Außerdem können drei
Typen von Implementierungen für
ein Endgerät
wie das oben erwähnte
Mobiltelefon ex114 in Erwägung
gezogen werden. Ein sowohl mit einem Enkoder als auch einem Dekoder
ausgestattetes Sende-Empfangs-Endgerät, ein nur
mit einem Enkoder ausgestattetes Sendeendgerät und ein nur mit einem Dekoder
ausgestattetes Empfangsendgerät.
-
Wie
oben beschrieben, ist es möglich,
das Bewegtbildkodierverfahren oder das Bewegtbilddekodierverfahren
in den oben erwähnten
Ausführungsformen
auf eine beliebige der oben genannten Vorrichtungen und Systeme
anzuwenden, wobei durch Anwendung dieses Verfahrens die in den oben genannten
Ausführungsformen
beschriebenen Effekte erreicht werden können.
-
Aus
der so weit beschriebenen Erfindung wird ersichtlich, dass die Ausführungsformen
der Erfindung in vieler Hinsicht unterschiedlich gestaltet werden
können.
Solche Änderungen
sind nicht als eine Abweichung von Geist und Umfang der Erfindung
zu betrachten, womit alle diejenigen Modifizierungen zur Einbeziehung
innerhalb des Umfangs der folgenden Ansprüche beabsichtigt sind, die
sich dem Fachmann erschließen
würden.
-
Industrielle Anwendbarkeit
-
Die
vorliegende Erfindung lässt
sich anwenden auf eine Bewegungsvektorkodiervorrichtung und eine
Bewegtbildkodiervorrichtung zum Erzeugen eines Bewegungsvektors
für einen
aktuellen Block, der zu kodieren ist, und eines prädizierten
Vektors für den
Bewegungsvektor; zum Kodieren der Differenz zwischen dem Bewegungsvektor
und dem prädizierten
Vektor und Unterbringen der kodierten Differenz in einem ein Bewegtbild
darstellenden Bitstrom sowie auf eine Bewegungsvektordekodiervorrichtung
und eine Bewegtbilddekodiervorrichtung zum Dekodieren des Bitstroms.