-
Die vorliegende Erfindung betrifft
ein Verfahren zum wirksamen Erfassen eines Bewegungsvektors bei
der bewegungskompensierten Codierung eines bewegten Bildes.
-
Ein Blockanpassungsverfahren wird
normalerweise verwendet, um einen Bewegungsvektor aus einem bewegten
Bild heraus zu erfassen. 8 ist eine
Entwurfszeichnung und veranschaulicht ein Blockanpassungsverfahren.
Wie in 8 gezeigt, wird gemäß dem Blockanpassungsverfahren
ein Korrelation darstellender Schätzwert zuerst zwischen einer in
einem zu codierenden Block, der auch als der aktuelle Block bezeichnet
wird, woraus der Bewegungsvektor erfasst werden sollen, enthaltenen
Bildkomponente und einer Bildkomponente in jedem zur Auswahl stehenden
Block innerhalb eines Suchbereiches berechnet, wobei dieser Block
die gleiche Größe hat wie
der zu codierende Block. Danach wird die Verschiebung von einem
Block, der sich an der gleichen Position befindet wie der zu codierende Block,
zu einem zur Auswahl stehenden Block mit der höchsten Korrelation, dargestellt
durch den Schätzwert,
als der Bewegungsvektor definiert. Als der Schätzwert von Korrelation wird
zum Beispiel eine Summe der absoluten Werte von Differenzen zwischen
Paaren gegenseitig zusammengehöriger
Pixel in dem Paar von Blöcken
verwendet. In diesem Fall wird der Schätzwert umso kleiner, je größer die
Korrelation zwischen den Bildkomponenten (d. h. den Pixeln) ist.
-
Bei dem Blockanpassungsverfahren
werden die Schätzwerte
zwischen einem einzelnen zu codierenden Block und zahlreichen innerhalb
des Suchbereiches zur Auswahl stehenden Blöcken berechnet. Um somit die
zahlreichen Schätzwerte
zu erhalten, ist eine sehr große
Menge von Berechnungen erforderlich. Demzufolge ist auch der Stromverbrauch
einer Bewegungsvektor-Erfassungsvorrichtung sehr groß.
-
Bei dem Erfassen eines Bewegungsvektors nach
dem Blockanpassungsverfahren werden verschiedene Verfahren verwendet,
um die Menge der Schätzwertberechnungen
zu reduzieren und somit den Stromverbrauch zu senken. Die Unterabtastung (Dezimation)
ist ein solches Verfahren. Entsprechend der Unterabtastung werden
einige Pixel eines zu codierenden Blockes und die Gegenstücke der
Blöcke innerhalb
des Suchbereiches dezimiert, und man erhält einen Bewegungsvektor in
Bezug auf die dezimierten Bilder durch das Blockanpassungsverfahren. Bei
dem Unterabtastungsverfahren und wenn die Anzahl der in dem zu codierenden
Block enthaltenen Pixel durch Dezimation auf 1/N reduziert wird
(wobei N eine positive ganze Zahl ist), kann die Menge der Schätzwertberechnung
ebenfalls auf etwa 1/N reduziert werden.
-
Da einige Pixel jedoch von dem zu
codierenden Block und den jeweiligen Blöcken innerhalb des Suchbereiches
nach dem Unterabtastungsverfahren dezimiert werden, ist es wahrscheinlich,
dass das dezimierte Bild die detaillierten Merkmale des Ausgangsbildes
verliert. Im Vergleich zu dem Fall der Nichtverwendung von Unterabtastung
kann die Menge von Schätzwertberechnung
somit reduziert werden, jedoch ist die Leistung von Bewegungsvektorerfassung
geringwertig. Dennoch wird die Reduzierung der Menge von Schätzwertberechnung
und des Stromverbrauchs dennoch vorgezogen, und zwar selbst dann,
wenn sich die Leistung von Bewegungsvektorerfassung in einem bestimmten
Grad verschlechtert.
-
Das Bezugsdokument EP-A2-0 732 670
beschreibt ein Bewegungsschätzverfahren.
Um die Anzahl der für
den Suchbereich gespeicherten Pixel um die Hälfte zu reduzieren, wird nur
jedes zweite Pixel des Suchbereiches für die Bewegungsschätzung verwendet.
Die Pixel eines jeden aktuellen Blockes werden dementsprechend einer
Unterabtastung unterzogen, wobei beide Hälften von Pixeln für den aktuellen
Block für
Bewegungsschätzung
verwendet werden können.
Welche der einer Unterabtastung unterzogenen Pixel der aktuellen
Blöcke
für Bewegungsschätzung verwendet
werden, hängt
von der Parität
des Bewegungsvektors ab.
-
In dem von Klaus Hildenbrand und
Jörg Mayer
in „Frequenz" 47(1993) Nr. 11/12,
Berlin, veröffentlichten
Artikel „Motion
Estimation in the HERMES Videocedec" wird ein Bewegungsschätzungsverfahren für einen
Videocodec beschrieben, wobei einer Unterabtastung unterzogene Blöcke für eine Bewegungsschätzung verwendet
werden. Bei der Berechnung eines Bewegungsvektors wird ein dreistufiges Verfahren
angewandt. Jeder nachfolgende Schritt von Bewegungsschätzung verwendet
eine erhöhte Auflösung von
Positionen innerhalb des Suchbereiches.
-
Die Zusammenfassung zur japanischen
Patentanmeldung JP-A-09200542 stellt eine Regressor-Codierungsvorrichtung
vor. Die beschriebene Vorrichtung wählt eine Position eines aktuellen
Bildelements in Bezug auf ein Bezugsbild aus. Die vorausgesagten
Videodaten werden verwendet, um die Bildfehlerdaten zu berechnen.
Eine Positionsauswahl eines Bezugsbildelements wird auf der Grundlage
der Ergebnisse einer Bildeigenschaftserfassung durchgeführt.
-
Die Aufgabe der vorliegenden Erfindung
besteht darin, ein verbessertes Verfahren und eine Vorrichtung für die Bewegungsvektorerfassung
vorzustellen, insbesondere um den Berechnungsaufwand und den Stromverbrauch
für Bewegungserfassung zu
senken.
-
Dies wird durch die Merkmale von
Anspruch 1 für
ein Verfahren von Bewegungsvektorerfassung und durch die Merkmale
von Anspruch 7 für
eine Vorrichtung von Bewegungsvektorerfassung gelöst.
-
1 ist
ein Blockschema und veranschaulicht die Konfiguration einer Bewegungsvektor-Erfassungsvorrichtung
in einem Ausführungsbeispiel
der vorliegenden Erfindung.
-
2 ist
ein Blockschema und veranschaulicht die Konfiguration eines in 1 gezeigten Korrelations-Bestimmungsgliedes.
-
3 ist
ein Blockschema und veranschaulicht eine beispielhafte Bildcodierungsvorrichtung
unter Einbeziehung der in 1 gezeigten
Bewegungsvektor-Erfassungsvorrichtung.
-
4(a) und 4(b) sind Grafiken und zeigen die
Beziehungen zwischen Bildern und Frequenzkomponenten.
-
5(a) ist
ein Diagramm und veranschaulicht ein beispielhaftes Bild eines zu
codierenden Blockes.
-
5(b) ist
ein Diagramm und veranschaulicht die Ergebnisse von an dem in 5(a) zur Dezimation jedes
zweiten Pixels in der horizontalen Richtung durchgeführter Unterabtastung.
-
5(c) ist
ein Diagramm und veranschaulicht die Ergebnisse von an dem in 5(a) zur Dezimation jedes
zweiten Pixels in der vertikalen Richtung durchgeführter Unterabtastung.
-
6 ist
ein Fließbild
und zeigt den Fluss eines Unterabtastungs-Einstellverfahrens in einem Ausführungsbeispiel
der vorliegenden Erfindung.
-
7 ist
ein Diagramm und veranschaulicht beispielhafte DCT-Komponenten eines
zu codierenden Blockes.
-
8 ist
ein Entwurfsdiagramm und veranschaulicht ein Blockanpassungsverfahren.
-
1 ist
ein Blockschema und veranschaulicht die Konfiguration einer Bewegungsvektor-Erfassungsvorrichtung
in einem Ausführungsbeispiel
der vorliegenden Erfindung. In 1 bezeichnet
die Verweisnummer 11 ein erstes Bildspeicherglied zum Speichern
des Bildes eines zu codierenden Blockes. 12 bezeichnet
ein zweites Bildspeicherglied zum Speichern eines Bildes in einem
Suchbereich. Und 13 bezeichnet ein Korrelations-Berechnungsglied
mit vier Korrelations-Berechnungsblöcken 13a bis 13d zur
Berechnung der Korrelation zwischen dem zu codierenden Block und
den zur Auswahl stehenden Blöcken
in dem Suchbereich. Jeder des ersten bis vierten Korrelationsblockes 13a bis 13d wird
von dem ersten Bildspeicherglied 11 mit einer verschiedenen Gruppe
von Pixeln des zu codierenden Blockes versorgt und mit einer zugehörigen Gruppe
von Pixeln des zur Auswahl stehenden Blockes von dem zweiten Bildspeicherglied 12.
Und jeder Korrelations-Berechnungsblock berechnet die Korrelation
zwischen den beiden Gruppen zugeführter Pixel. Als Schätzwert von
Korrelation wird eine Summe von absoluten Werten von Differenzen
zwischen den Pixeln verwendet.
-
Bei diesem Ausführungsbeispiel kann jedes zweite
Pixel sowohl horizontal als auch vertikal unterabgetastet werden.
Somit werden die in dem ersten Bildspeicherglied 11 gespeicherten
Pixel in die folgenden vier Gruppen unterteilt: eine Gruppe von
Pixeln O, eine Gruppe von Pixeln ♢, eine Gruppe von Pixeln • und eine
Gruppe von Pixeln ♦.
Die Gruppe von Pixeln O wird dem ersten Korrelations-Berechnungsblock 13a zugeführt. Die
Gruppe von Pixeln ♢ wird dem zweiten Korrelations-Berechnungsblock 13b zugeführt. Die
Gruppe von Pixeln • wird
dem dritten Korrelations-Berechnungsblock 13c zugeführt. Und
die Gruppe von Pixeln ♦ wird
dem vierten Korrelations-Berechnungsblock 13d zugeführt. Der
Zielort einer jeden in dem zweiten Bildspeicherglied 12 gespeicherten
Gruppe von Pixeln ist variabel in Abhängigkeit von der Einstellung
der zur Auswahl stehenden Blöcke.
Adressieren des zweiten Bildspeichergliedes 12 erfolgt
durch ein Adresserzeugungsglied 15.
-
Die Verweisnummer 20 bezeichnet
ein Steuerglied für
die gezielte Ansteuerung einiger oder aller des ersten bis vierten
Korrelations-Berechnungsblockes 13a bis 13d durch
Bereitstellung eines Freigabesignals EN. Entsprechend der Bildmerkmal-Information
S1 des zu codierenden Blockes bzw. der Betriebszustand-Information
S2 der Bewegungsvektor-Erfassungsvorrichtung wählt das Steuerglied 20 entweder
einen Betriebsmodus, bei dem einer oder mehrere des ersten bis vierten
Korrelations-Berechnungsblockes 13a bis 13d betrieben
wird oder werden. Wenn Unterabtastung bei einer Bewegungsvektor-Erfassung
nicht durchgeführt
wird, werden alle der ersten bis vierten Korrelations-Berechnungsblöcke 13a bis 13d betrieben.
Wenn andererseits Unterabtastung bei einer Bewegungsvektor-Erfassung durchgeführt wird,
wird einer oder werden mehrere der ersten bis vierten Korrelations-Berechnungsblöcke 13a bis 13d betrieben.
-
Die Verweisziffer 14 bezeichnet
ein Korrelations-Bestimmungsglied zum Ermitteln der Korrelation zwischen
dem zu codierenden Block und den zur Auswahl stehenden Blöcken auf
der Grundlage der Ausgänge
EC1 bis EC4 des ersten bis vierten Korrelations-Berechnungsblockes 13a bis 13d,
die entsprechend der Ansteuerung durch das Steuerglied 20 betrieben
werden. Das Korrelations-Bestimmungsglied 14 gibt auf der
Grundlage der Korrelation zwischen dem zu codierenden Block und
den zur Auswahl stehenden Blöcken
einen Bewegungsvektor MV aus.
-
2 ist
ein Blockschema zur Veranschaulichung der Konfiguration des in 1 gezeigten Korrelations-Bestimmungsgliedes 14.
In 2 bezeichnet die
Verweisziffer 14a einen Selektor zur Auswahl eines beliebigen
der Ausgänge
EC1 bis EC4 des ersten bis vierten Korrelations-Berechnungsblockes 13a bis 13d und
einen Zahlenwert „0" als Reaktion auf
das Freigabesignal EN. Die Verweisziffer 14b bezeichnet
ein Addierwerk als Arithmetikeinheit zum Addieren der Ausgangswerte
des Selektors 14a. Und die Verweisziffer 14c bezeichnet
einen Minimalwertdetektor zum Melden eines Minimalwertes aus den
Ausgängen
des Addierwerkes 14b.
-
Im Folgenden wird der Betrieb der
in 1 und 2 gezeigten Bewegungsvektor-Erfassungsvorrichtung
beschrieben. Das Bild des zu codierenden Blockes und das Bild in
dem Suchbereich werden von dem ersten und dem zweiten Bildspeicherglied 11 und 12 an
den ersten bis vierten Korrelations-Berechnungsblock 13a bis 13b übergeben,
die eine Gruppe von Pixeln O, eine Gruppe von Pixeln ♢,
eine Gruppe von Pixeln • bzw. eine
Gruppe von Pixeln ♦ empfangen.
Wenn ein beliebiger des ersten bis vierten Korrelations-Berechnungsblockes 13a bis 13d angewiesen
wird, als Reaktion auf das Freigabesignal EN von dem Steuerglied 20 zu
arbeiten, berechnet der Korrelations-Berechnungsblock eine Summe der Absolutwerte
von Differenzen zwischen den in der Gruppe von dem zu codierenden
Block enthaltenen Pixeln und den in der Gruppe in dem Suchbereich
enthaltenen Pixeln. Somit gibt der erste Korrelations-Berechnungsblock 13a im
Betrieb die Summe EC1 der Absolutwerte von Differenzen zwischen
den in beiden Gruppen O enthaltenen Pixeln aus. Analog dazu gibt
der zweite Korrelations-Berechnungsblock 13b die Summe
EC2 der Absolutwerte von Differenzen zwischen den in beiden Gruppen ♢ enthaltenen Pixeln
aus. Analog dazu gibt der dritte Korrelations-Berechnungsblock 13e die
Summe EC3 von Absolutwerten von Differenzen zwischen den in beiden Gruppen • enthaltenen
Pixeln aus. Und im Betrieb gibt der vierte Korrelations-Berechnungsblock 13d die
Summe EC4 von Absolutwerten von Differenzen zwischen den in beiden
Gruppen ♦ enthaltenen
Pixeln aus.
-
In dem in 2 gezeigten Korrelations-Bestimmungsglied 14 wählt der
Selektor 14a einen beliebigen der Ausgänge EC1 bis EC4 des ersten
bis vierten Korrelations-Berechnungsblockes 13a bis 13d und
einen Zahlenwert „0" als Reaktion auf
das Freigabesignal EN aus. Und die ausgewählten Werte werden durch das
Addierwerk 14b addiert. In diesem Fall wählt der
Selektor 14b den Ausgang oder die Ausgänge nur des oder der in Betrieb
befindlichen ersten bis vierten Korrelations-Berechnungsblockes oder
Korrelations-Berechnungsblöcke 13a bis 13d aus,
und er wählt „0" für den oder
die nicht in Betrieb befindlichen anstelle des Ausgangs oder der
Ausgänge
aus. Somit gibt das Addierwerk 14b die Summe der Ausgänge der
in Betrieb befindlichen ersten bis vierten Korrelations-Berechnungsblöcke 13a bis 13d aus.
Hierin entspricht ein Wert, den man durch Addieren der Summe der
Absolutwerte von Differenzen zwischen in beiden Gruppen A enthaltenen
Pixeln und der Summe von Absolutwerten von Differenzen zwischen
in beiden Gruppen B enthaltenen Pixeln der Summe der Absolutwerte
von Differenzen zwischen den in Gruppe A enthaltenen Pixeln und den
in Gruppe B enthaltenen Pixeln. Dementsprechend entspricht der Ausgang
des Addierwerkes 14b der Summe von Absolutwerten von Differenzen
zwischen den in den beiden an die in Betrieb befindlichen Korrelations-Berechnungsblöcke übergebenen Gruppen
enthaltenen Pixeln, d. h. einem Schätzwert von Korrelation.
-
Der Minimalwert-Detektor 14c erfasst
einen Minimalwert aus den Schätzwerten
von Korrelationsausgang von dem Addierwerk 14b und erfasst
einen Bewegungsvektor entsprechend dem zur Auswahl stehenden Block,
der den minimalen Schätzwert
von Korrelation hat.
-
Das Steuerglied 20 wählt die
Gruppe von Pixeln aus, die für
die Berechnung der Schätzwerte
von Korrelation gemäß der Bildmerkmal-Informationen S1
des zu codierenden Blockes und der Betriebszustand-Informationen
S2 der Bewegungsvektor-Erfassungsvorrichtung
benötigt
werden. Und das Steuerglied 20 betreibt nur diejenigen
Korrelations-Berechnungsblöcke,
an die die benötigten
Gruppen von Pixeln übergeben
werden, indem das Freigabesignal EN dorthin bereitgestellt wird.
-
Wie zu erkennen ist, wählt die
Bewegungsvektor-Erfassungsvorrichtung der vorliegenden Erfindung
Gruppen von Pixeln, die für
die Berechnung der Schätzwerte
von Korrelation benötigt
werden, von dem zu codierenden Block und dem Suchbereich entsprechend
den Bildmerkmal-Informationen S1 und den Betriebszustand-Informationen
S2 aus. Danach berechnet die Vorrichtung die Schätzwerte von Korrelation nur
für die
ausgewählten
Gruppen von Pixeln, wobei ein Bewegungsvektor erfasst wird. Mit anderen
Worten wurden die nicht ausgewählten Gruppen
von Pixeln praktisch aus dem zu codierenden Block und dem Suchbereich
dezimiert. Im Ergebnis dessen wird eine Bewegungsvektor-Erfassung durch
Unterabtastung realisiert.
-
Da die Korrelationsblöcke, an
die die nicht ausgewählten,
unnötigen
Gruppen von Pixeln übergeben
werden, weiterhin nicht betrieben werden, kann der Bewegungsvektor
mit notwendiger Mindestleistung betrieben werden.
-
3 ist
ein Blockschema zur Veranschaulichung einer beispielhaften Bildcodiereinrichtung
mit der in 1 gezeigten
Bewegungsvektor-Erfassungsvorrichtung. In 3 bezeichnet die Verweisziffer 1 eine
Bildcodiervorrichtung zum Erzeugen von codierten Daten aus Bilddaten.
Die Verweisziffer 41 bezeichnet eine Batterie als Stromversorgung
für die Bildcodiervorrichtung 1.
Die Verweisziffer 42 bezeichnet eine Zentraleinheit (CPU)
zum Steuern des Betriebes eines Verarbeitungsgliedes für die Vorverarbeitung
der Bilddaten, die an die Bildcodiervorrichtung 1 übergeben
werden sollen.
-
Und die Verweisziffer 44 bezeichnet
einen Einzelbildspeicher zum Speichern des Bilddaten-Ausgangs aus
der Bildcodiervorrichtung 1.
-
Die Bildcodiervorrichtung 1 umfasst:
ein Bildeingabeglied 31; ein Bewegungsvektor-Erfassungsglied 10;
ein DCT-Glied 32; ein Quantisierungsglied 33;
ein variables Längencodierungsglied
(VLC) 34; und ein lokales Decodierglied 35 als
jeweilige Verarbeitungsblöcke.
Das Bewegungsvektor-Erfassungsglied 10 hat den in 1 gezeigten Aufbau. Das
lokale Decodierglied 35 führt inverse Quantisierung und
inverse DCT an den quantisierten Daten durch, wobei ein Bild wiederhergestellt
wird. Ein Steuergerät 30 steuert
die jeweiligen Verarbeitungsblöcke.
Das Speicher-Schnittstellenglied (1/F) 36 überträgt Daten
zwischen den jeweiligen Verarbeitungsblöcken und dem Einzelbild-Speicher 44.
-
In der in 3 gezeigten Konfiguration wird die in 1 gezeigte Funktion des
Steuergliedes 20 von dem Steuergerät 30 und der CPU 42 ausgeführt. Insbesondere
empfangen das Steuergerät 30 und die
CPU 42 die Bildmerkmal-Informationen S1 von dem DCT-Glied 32,
dem Bewegungsvektor-Erfassungsglied 10 bzw. dem Verarbeitungsglied 43 und ebenso
die Betriebszustand-Informationen S2, die die in der Batterie 41 verbliebene
Leistung darstellt. Und entsprechend den Informationen S1 und S2 steuern
das Steuergerät 30 und
die CPU 42 die Bewegungsvektor-Erfassungsvorrichtung 10 für gezieltes
Unterabtasten.
-
Als nächstes wird beschrieben werden,
wie Unterabtasten auf der Grundlage der Bildmerkmal-Informationen
S1 und der Betriebszustand-Informationen S2 gezielt eingestellt
wird.
-
4(a) und 4(b) sind Diagramme und veranschaulichen
die Beziehungen zwischen Bildern und Frequenzkomponenten, wobei
die Abszissenachse die Positionen von Pixeln und die Ordinatenachse
die Werte jeweiliger Pixel darstellen. 4(a) veranschaulicht ein Bild, bei dem
von den jeweiligen Pixeln jeweils jedes zweite Werte A bzw. B hat.
Dieses Bild hat Frequenzkomponenten mit einer Periode von zwei Pixelintervallen. 4(b) veranschaulicht ein
Bild, das durch Unterabtastung eines jeden zweiten Pixels des in 4(a) gezeigten Bildes gewonnen
wurde. Wie aus dem Vergleich zwischen 4(a) und 4(b) ersichtlich ist, geht
das Merkmal des in
-
4(a) gezeigten
Bildes, dass Pixelwerte bei jeweils jedem zweiten Pixel schwanken,
als Ergebnis der an jedem zweiten Pixel durchgeführten Unterabtastung verloren.
-
Jedoch geht das Merkmal eines Bildes
mitunter verloren und mitunter geht es nicht verloren, was von der
Richtung der Unterabtastung und der Anordnung von Pixeln in dem
Bild abhängig
ist. Wenn das Bild eines zu codierenden Blockes, wie zum Beispiel
das in 5(a) gezeigte,
an jedem zweiten Pixel horizontal unterabgetastet wird, sehen die
Ergebnisse wie in 5(b) gezeigt
aus. In diesem Fall verschlechtert sich die Leistung der Bewegungsvektor-Erfassung
nicht so stark, da das Merkmal des Ausgangsbildes des zu codierenden
Blockes auch nach der Unterabtastung erhalten bleibt. Wenn jedoch
das in 5(a) gezeigte
Bild vertikal an jedem zweiten Pixel unterabgetastet wird, bleibt
das Merkmal des Ausgangsbildes des zu codierenden Blockes nach Durchführung der
Unterabtastung wie in 5(c) gezeigt
nicht erhalten. In diesem Fall verschlechtert sich die Leistung
der Bewegungsvektor-Erfassung und möglicherweise wird ein fehlerhafter
Bewegungsvektor erfasst.
-
Das heißt, bei Anwendung von Unterabtastung
und wenn das Merkmal des Ausgangsbildes nach Durchführung von
Unterabtastung nicht erhalten bleibt, wird möglicherweise ein fehlerhafter
Bewegungsvektor erfasst. Bei diesem Ausführungsbeispiel wird folglich
Unterabtastung gezielt eingestellt, indem die Frequenzkomponenten
des zu codierenden Blockes als die Bildmerkmal-Informationen S1 verwendet
werden.
-
Bei der in 1 gezeigten Konfiguration und wenn ein
Bild vertikal betrachtet wird, ist Berechnen der Schätzwerte
unter Verwendung von Gruppen von Pixeln O und ♢ (oder Gruppen
von Pixeln • und ♦) gleichwertig
mit Erfassen eines Bewegungsvektors ohne Unterabtastung, wohingegen
Berechnen der Schätzwerte
unter Verwendung nur der Gruppe von Pixeln O gleichwertig mit Erfassen
eines Bewegungsvektors mit Unterabtastung an jedem zweiten Pixel
ist.
-
Wenn somit das Bild eines zu codierenden Blockes
Frequenzkomponenten mit einer Periode von zwei Pixelintervallen
in der vertikalen Richtung hat, wird keine vertikale Unterabtastung
durchgeführt,
um die Frequenzkomponenten nicht zu verlieren. Dementsprechend werden
die Schätzwerte
berechnet, indem Gruppen von Pixeln O und ♢ (bzw.
-
Gruppen von Pixeln • und ♦) verwendet
werden. Wenn das Bild eines zu codierenden Blockes andererseits
keine Frequenzkomponenten mit einer Periode von zwei Pixelintervallen
in der vertikalen Richtung hat, werden die Schätzwerte durch Verwendung ausschließlich von
Gruppen von Pixeln O berechnet. Das Einstellen von Unterabtastung
kann analog dazu erfolgen, wenn ein Bild horizontal betrachtet wird.
-
Die Betriebszustand-Informationen
S2 beinhalten, ob eine Bildcodiervorrichtung in einem beweglichen
oder einem unbeweglichen Zustand betrieben wird. Insbesondere und
wenn die Vorrichtung in einem unbeweglichen Zustand betrieben wird, kann
sie normalerweise stabil mit Strom versorgt werden. Somit ist es
vorzuziehen, die Leistung der Bewegungsvektor-Erfassung ohne Durchführung von
Unterabtastung zu maximieren. Wenn die Vorrichtung andererseits
in einem beweglichen Zustand betrieben wird, ist es mitunter vorzuziehen,
in Abhängigkeit
davon, wie viel Energie in der Batterie übrig geblieben ist bzw. wie
lange die Vorrichtung danach genutzt werden soll, Unterabtastung
durchzuführen.
-
Nachfolgend wird die Einstellung
von Unterabtastung konkret beschrieben. 6 ist ein Fließbild und veranschaulicht den
Fluss von Unterabtastungseinstellungs-Verarbeiten in diesem Ausführungsbeispiel.
-
In dem Schritt S11 empfängt die
Zentraleinheit (CPU) 42 Informationen zur Anzeige der in
der Batterie 41 verbliebenen Energie als Betriebszustands-Informationen
S2. Angesichts nicht nur der Informationen S2, sondern auch anderer
Informationen zu der voreingestellten Betriebszeit und ähnlichem weist
die CPU 42 die Bildcodiervorrichtung 1 an, ob der
Stromverbrauch zu senken ist oder nicht. Wenn es nicht notwendig
ist, den Stromverbrauch zu senken, wird die Bewegungsvektor-Erfassung
ohne Unterabtastung durchgeführt,
wobei der Leistung der Bewegungsvektor-Erfassung mehr Beachtung
geschenkt wird als der Senkung des Stromverbrauches.
-
Wenn es andererseits notwendig ist,
den Stromverbrauch zu senken, stellt das Steuergerät 30 Unterabtastung
entsprechend den Bildmerkmal-Informationen S1 ein. Hierbei werden
die von dem DCT-Glied 32 für den zu codierenden Block
gewonnenen DCT-Komponenten
als die Bildmerkmal-Informationen S1 verwendet: Die diskrete Kosinustransformation
ist eine orthogonale Transformation und verwendet eine Kosinusfunktion als
Basisfunktion und ist eine Berechnung, um die in dem zu transformierenden
Objekt enthaltenen Frequenzkomponenten zu erhalten.
-
7 veranschaulicht
beispielhafte DCT-Komponenten für
einen zu codierenden Block. Die DCT-Komponenten, wie zum Beispiel
die in 7 gezeigten,
stellen die Verteilung von Frequenzkomponenten in dem zu codierenden
Block dar. Insbesondere gilt in 7:
je größer der
Wert einer in der Nähe
der oberen linken Ecke befindlichen Komponente ist, umso größer ist
die Anzahl vorhandener Komponenten niedriger Frequenz. Umgekehrt gilt:
je größer der
Wert einer in der Nähe
der unteren rechten Ecke befindlichen Komponente, umso größer die
Anzahl der vorhandenen Komponenten hoher Frequenz.
-
In Abbildung 7stellt die Schwankung
der Komponentenwerte in der horizontalen Richtung die Frequenzverteilung
in der horizontalen Richtung dar, und die Schwankung der Komponentenwerte
in der vertikalen Richtung stellt die Frequenzverteilung in der
vertikalen Richtung dar. In dem in 7 gezeigten
Beispiel ist die Frequenz in der horizontalen Richtung niedrig,
wohingegen die Frequenz in der vertikalen Richtung hoch ist. Somit
wird vorzugsweise horizontale Unterabtastung durchgeführt und
vertikale Unterabtastung wird vorzugsweise nicht durchgeführt. In
einem solchen Fall, in der in 1 gezeigten
Anordnung, kann der Stromverbrauch gesenkt werden, indem nur der
erste und der zweite Korrelations-Berechnungsblock 13a und 13b betrieben
werden.
-
Hierbei wird die Summe der Werte
der beiden am weitesten links gelegenen Komponenten in der obersten
Reihe als horizontaler Frequenzwert Σ fH angenommen, während die
Summe der Werte der beiden obersten Komponenten in der Spalte ganz links
als vertikaler Frequenzwert Σ fV
angenommen wird. Indem der horizontale und der vertikale Frequenzwert Σ fH und Σ fV verwendet
werden, wird Unterabtastung horizontal und vertikal eingestellt.
-
In dem Schritt S12 und wenn der horizontale Frequenzwert Σ fH gleich
oder größer einem
vorbestimmten Wert H0 ist, wird die horizontale Frequenz des zu
codierenden Blockes als niedrig bestimmt, und in dem Schritt S13
wird bestimmt, dass horizontale Unterabtastung durchgeführt werden
soll. Wenn der horizontale Frequenzwert Σ fH andererseits kleiner als
der vorbestimmte Wert H0 ist, wird die horizontale Frequenz des
zu codierenden Blockes als hoch bestimmt, und horizontale Unterabtastung
wird nicht durchgeführt.
-
In dem Schritt S14 und wenn der vertikale Frequenzwert Σ fV gleich
oder größer einem
vorbestimmten Wert V0 ist, wird die vertikale Frequenz des zu codierenden
Blockes als niedrig bestimmt, und in dem Schritt S15 wird bestimmt,
dass vertikale Unterabtastung durchgeführt werden soll. Wenn andererseits
der vertikale Frequenzwert Σ fV
kleiner als der vorbestimmte Wert V0 ist, wird die vertikale Frequenz des
zu codierenden Blockes als hoch bestimmt und vertikale Unterabtastung
wird nicht durchgeführt.
-
In dem Schritt S16 wird ein Bewegungsvektor
entsprechend der Einstellung der Unterabtastung erfasst.
-
Eine Bildcodiervorrichtung zum Erfassen
eines Bewegungsvektors umfasst normalerweise ein DCT-Glied und daher
besteht keine Notwendigkeit, eine neue Funktion zum Berechnen von
DCT-Komponenten bereitzustellen. In einem allgemeinen Bildcodier-Verarbeitungsfluss
wird die DCT-Berechnung durchgeführt,
nachdem der Bewegungsvektor erfasst worden ist. Wenn somit die DCT-Komponenten
wie in diesem Ausführungsbeispiel
zum Einstellen von Unterabtastung verwendet werden sollen, muss
nicht nur eine ursprünglich
beabsichtigte DCT-Berechnung, sondern auch eine zusätzliche
DCT-Berechnung zum Einstellen von Unterabtastung durchgeführt werden,
wodurch die Menge der Berechnungen nachteilig steigt.
-
Somit kann Unterabtastung eingestellt
werden, indem das Vorverarbeitungsglied 43 veranlasst wird,
das Bildmerkmal, wie zum Beispiel DCT-Komponenten, des zu codierenden
Blockes herauszuziehen. Zum Beispiel kann die CPU 42 das
Steuergerät 30 veranlassen,
während
der Bewegungsvektor-Erfassung den Betriebsmodus Unterabtastung entsprechend
den von dem Vorverarbeitungsglied 43 bereitgestellten Bildmerkmal-Informationen S1
einzustellen. Alternativ dazu kann das Steuergerät 30 den Modus Unterabtastung
während
der Bewegungsvektor-Erfassung entsprechend den von dem Bildeingabeglied 31 bereitgestellten
Bildmerkmal-Informationen S1 einstellen.
-
Selbst bei einem bewegten Bild ändert sich das
Bild für
kurze Zeit kaum. Die DCT-Komponenten eines
Blockes, der sich an der gleichen Position wie der zu codierende Block
in einem Einzelbild vor dem Ziel-Einzelbild befindet, die bereits
berechnet sind, können
ebenfalls zum Einstellen von Unterabtastung verwendet werden. In
den meisten Fällen
hat ein Block darüber
hinaus ein ähnliches
Bildmerkmal wie der benachbarte Block. Die DCT-Komponenten eines Blockes
in der Nähe
des zu codierenden Blockes bzw. die DCT-Komponenten eines Blockes
in der gleichen Position wie der zu codierende Block in einem Einzelbild
vor dem Ziel-Einzelbild können
somit zum Einstellen von Unterabtastung verwendet werden.
-
Als die Bildmerkmal-Informationen
S1 können
nicht nur die Frequenzkomponenten, sondern auch die Informationen
zu der Bewegung eines Bildes verwendet werden. Insbesondere und
in Bezug auf die Tatsache, dass die Auflösung des menschlichen Auges
abnimmt, wenn man ein sich rasch bewegendes Objekt betrachtet, kann
Unterabtastung durchgeführt
werden, wenn sich der zu codierende Block sehr bewegt, bzw. nicht
durchgeführt
werden, wenn die Bewegung gering ist. Als die Bildmerkmal-Informationen
S1, die die Bewegung des zu codierenden Blockes darstellen, kann
der Bewegungsvektor eines Blockes, der sich an der gleichen Position
wie der zu codierende Block oder in der Nähe des zu codierenden Blockes
in einem vorherigen Einzelbild vor dem Ziel-Einzelbild befindet und bereits erfasst
worden ist, verwendet werden.
-
In diesem Ausführungsbeispiel werden das Bild
des zu codierenden Blockes und das Bild in dem Suchbereich jeweils
in vier Gruppen von Pixeln unterteilt, und das Korrelations-Berechnungsglied 13 besteht
aus vier Korrelations-Berechnungsblöcken 13a bis 13d.
Jedoch ist die vorliegende Erfindung nicht auf eine solche Konfiguration
beschränkt.
Wenn zum Beispiel jedes zweite Pixel horizontal und jedes dritte Pixel
vertikal unterabgetastet wird, müssen
das Bild des zu codierenden Blockes und das Bild in dem Suchbereich
in sechs (= 2 × 3)
Gruppen von Pixeln eingeteilt werden. In einem solchen Fall müssen sechs
Korrelations-Berechnungsblöcke
für die
jeweiligen Gruppen von Pixeln bereitgestellt werden. Ebenso kann
ein einzelner Korrelations-Berechnungsblock gemeinsam für mehrere
Gruppen von Pixeln genutzt werden. In einem solchen Fall wird die Anzahl
der Korrelations-Berechnungsblöcke
kleiner als die Anzahl der Gruppen von Pixeln.
-
Hierbei wird die Menge der von der
Bewegungsvektor-Erfassungsvorrichtung 10 durchzuführenden
Berechnungen 100 bis 1.000 Mal so groß wie jene der anderen Verarbei tungsblöcke in der
Bildcodiereinrichtung 1. Konkrete numerische Beispiele werden
beschrieben werden. Entsprechend einem Blockanpassungsverfahren
ist die Menge der Berechnungen, um Schätzwerte zu erhalten, wie folgt: (Anzahl
der Berechnung pro Pixel) × (Anzahl
von Pixeln in dem zu codierenden Block) × (Anzahl der zur Auswahl stehenden
Blöcke).
Nehmen wir an, die Anzahl von Berechnungen (Berechnung von Absolutwerten
von Differenzen) pro Pixel ist 3, die Anzahl von Pixeln in dem zu
codierenden Block ist 256 (= 16 × 16) und die Anzahl der zur
Auswahl stehenden Blöcke
ist 1024. Dann beträgt
die Menge von Berechnungen pro zu codierendem Block „786.432". Ein bewegtes Bild,
das eine Größe von 720
horizontalen Pixeln mal 480 vertikalen Pixeln hat und aus 30 Bildern pro
Sekunde besteht, umfasst 40.500 zu codierende Blöcke (jeweils bestehend aus
16 × 16
Pixel) pro Sekunde. Somit muss die Bewegungsvektor-Erfassungsvorrichtung 10 enorme
Berechnungen in der Größenordnung
von etwa 31 GOP durchführen.
Angesichts der Auslegung von gegenwärtig erhältlichen Bildcodierungs-LSI-Schaltungen
entspricht der Stromverbrauch des Bewegungsvektor-Ertfssungsgliedes 10 wahrscheinlich
etwa 1/2 bis etwa 1/4 des Stromverbrauches der gesamten Vorrichtung.
-
Um somit den Stromverbrauch der gesamten Bildcodierungsvorrichtung
zu senken, haben die Erfinder der Bewegungsvektor-Erfassungseinrichtung 10,
die insbesondere viel Strom verbraucht, besondere Achtung geschenkt.
Entsprechend der vorliegenden Erfindung wird Unterabtastung, eines
der Verfahren für
das Erfassen eins Bewegungsvektors, angewandt und entsprechend dem
Betriebszustand der Bildcodiervorrichtung und der Merkmale von Bildern
adaptiv eingestellt. Insbesondere wird Unterabtastung prinzipiell
angewandt, wenn der Stromverbrauch gesenkt werden soll (wie zum
Beispiel, wenn in der Batterie einer mobilen Einheit nicht viel
Energie übrig
ist). Indem jedoch die Nutzung von Unterabtastung für ein Bild
mit Komponenten hoher Frequenz vermieden wird, um eine Verschlechterung
der Bildqualität
zu vermeiden, kann die vorliegende Erfindung Stromverbrauch senken
und gleichzeitig die Bildqualität
aufrecht erhalten. Somit ist die vorliegende Erfindung wirksam anwendbar
auf die Nutzung einer batteriebetriebenen Vorrichtung, wie zum Beispiel
einer mobilen Einheit in einem Langzeitmodus, und auf die Energiesparsteuerung
in Abhängigkeit von
der in der Batterie verbliebenen Energie.
-
Wie aus der vorstehenden Beschreibung hervorgeht,
stellt die vorliegende Erfindung adaptiv Unterabtastung entsprechend
der Bildmerkmal-Informationen, wie zum Beispiel der Frequenzkomponenten
eines zu codierenden Blockes, und der Betriebszustand-Informationen, wie
zum Beispiel der in der Batterie verbliebenen Energie, ein. Im Ergebnis
dessen kann ein Bewegungsvektor in Bezug auf die Erfassungsleistung
und den Stromverbrauch besser erfasst werden als mit herkömmlichen
Verfahren. Weiterhin werden Korrelations-Berechnungsblöcke entsprechend
der Einstellung von Unterabtastung gezielt betrieben, wobei ein
Bewegungsvektor mit erforderlicher Minimalleistung erfasst wird.