-
Die vorliegende Erfindung betrifft
ein Verfahren zur Bildkodierung und einen Bildkodierer, und noch
genauer eine Verbesserung in der Wiederherstellungsfunktion, die
einen Dekodierungsfehler davon abhält, sich auf eine Vielzahl
von fortlaufenden Bildern auszuwirken.
-
US-A 4 689 671 betrifft eine Kodierungsvorrichtung
für ein
sich bewegendes Objekteingabesignal, wie beispielsweise ein Fernsehsignal,
die einen unbedeckten Hintergrundbereich erkennt, der auf eine Bewegung
eines bewegenden Objekts hin in dem sich bewegenden Objektbildeingabesignals
erscheint, und die ein Bildsignal kodiert, das mit dem unbedeckten
Hintergrundbereich korrespondiert, entsprechend einer vollbildinternen
Korrelation anstelle einer Intervollbild-Korrelation.
-
Daten von sich bewegenden Bildern
werden komprimiert, um die Redundanz zu vermindern, wenn sie über ein
digitales Kommunikationsnetzwerk gesendet werden. Generell kombiniert
ein standardisiertes Kodiersystem für sich bewegende Bilder (z.
B. ein Kodierungssystem für
sich bewegende Bilder in Übereinstimmung
mit dem ITU-T/H. 261 oder MPEG2 Algorithmus) zwei Kodierungsverfahren:
ein Verfahren, in dem temporäre
Redundanz vermindert wird, indem nur die Unterschiede zwischen zwei
aufeinander folgenden Vollbildern Kodiert werden (nachfolgend als
Inter-Vollbild-Kompressionsmodus-Kodierung oder INTER-Modus-Kodierung bezeichnet) und
ein Verfahren, in dem räumliche
Redundanz reduziert wird, indem eine orthogonale Transformation in
einem Bild ausgeführt
wird (nachfolgend als Vollbildinterne Kompressionsmodus-Kodierung
oder INTRA-Modus-Kodierung bezeichnet), anstelle die Unterschiede
zwischen zwei Vollbildern zu kodieren.
-
Ein standardisiertes Kodierungssystem
für sich
bewegende Bilder, wie beispielsweise ITU-T/H. 261 oder MPEG2, unterteilt
eine Einheit von Bilddaten (Vollbild) in eine Vielzahl von Partitionen
von jeweils gleicher Größe (z. B.:
16 × 16
Pixel; in der folgenden Erörterung
wird diese Partition als Makroblock bezeichnet) und führt eine
Kodierung auf jeweils einem Makroblock durch. Das System kombiniert
verschiedene Gruppen von Makroblöcken
in eine andere Einheit (z. B. eine durch eine gepunktete Linie in 2 unterteilte Einheit) und
fügt ein
Synchronisations-Kodierungswort zwischen sämtlichen zwei aufeinander folgenden
Makroblockgruppen ein, um die Synchronisation der Kodierung von
variablen Längen
zu ermöglichen.
Diese Art von Einheit (Makroblockgruppe) wird bei ITU-T/H. 261 als
GOB (group of block) oder bei MPEG2 als Slice (Scheibe) bezeichnet.
In dem Rest dieser Spezifikation wird diese Einheit als Slice bezeichnet.
-
Das Synchronisations-Kodierungswort,
das für
jeden Slice in Form von komprimierten Daten vorgesehen wird, begrenzt
die Auswirkung eines Datenfehlers oder eines Datenverlusts nur auf
diesen Slice. In anderen Worten, kann durch einen Slice nicht dekodiert
werden, ob ein Datenfehler oder ein Datenverlust in diesem Slice
vorkommt, das Synchronisations-Kodierungswort
ermöglicht
es, dass die nachfolgenden Slices dekodiert werden.
-
Jedoch verzerrt ein Datenfehler oder
ein Datenverlust, der in komprimierten Daten von sich bewegenden
Bildern, die in dem Inter-Modus komprimiert worden sind, auftreten
kann, das Bild maßgeblich.
In dem Inter-Modus, in dem nur die Unterschiede zwischen dem vorhergehenden
Vollbild und dem gegenwärtigen
Vollbild kodiert werden, wird der Fehler durch die folgenden Vollbilder
fortgepflanzt. Z. B. wird das Bild wie in 2(a) gezeigt dekodiert, wenn es in komprimierten
Daten keinen Fehler gibt. Andererseits wird der Fehler nicht nur
in dem zweiten Vollbild, sondern auch durch das dritte und die darauffolgenden
Vollbilder fortgepflanzt, wenn ein Fehler auftritt, z. B. in dem
vierten Vollbild, und als ein Ergebnis ein Teil des zweiten Vollbilds
nicht dekodiert werden kann.
-
Um zu verhindern, dass sich eine
durch einen Fehler verursachte Verzerrung (verminderte Bildqualität) durch
die nachfolgenden Vollbilder fortpflanzt, erzwingt der Kodierer
regelmäßig die
Vollbildinterne Kompressionsmodus-Kodierung (INTRA-Modus-Kodierung),
bei der ein vorhergehendes Vollbild nicht referenziert wird. Diese
Art der erzwungenen IN-TRA-Modus-Kodierung,
die auf diese Weise durch den Kodierer ausgelöst wird, wird Wiederherstellung
genannt. Wiederherstellung wird auf einer Slice-Basis (Slice-interne
Wiederherstellung) oder auf einer Vollbildbasis (Vollbildinternes
Slicing) ausgeführt,
wie in Referenz 1 beschreiben ist. Wiederherstellung wird auch auf
einer Makroblockbasis ausgeführt,
obwohl der Name der Literatur, welche dieses Verfahren beschreibt,
hier nicht angegeben ist.
-
Es wird auf Yutaka Machida und Takeshi
Ikutake "ATM-Bildkodierungsverfahren
mit Zellenverwurfstoleranz",
1992 Picture Coding Symposium Bezug genommen.
-
3 veranschaulicht
eine übliche
Slice-interne Wiederherstellung. Während der Slice-internen Wiederherstellung
wird eine vorgegebene Anzahl von Slices (zwei Slices in der Figur)
innerhalb eines Vollbilds zyklisch wiederhergestellt, wie in 3 gezeigt. 4 veranschaulicht ein übliches
Wiederherstellen auf einer Makroblockbasis. Während der Makroblockbasis-Wiederherstellung
wird eine vorgegebene Anzahl von Makroblöcke (drei Slices in der Figur)
innerhalb eines Vollbilds zyklisch wieder hergestellt, wie in 4 gezeigt.
-
Jedoch hat das übliche Wiederherstellen die unten
beschriebenen Probleme, egal ob die Wiederherstellung auf einer
Vollbildbasis, Slicebasis oder Makroblockbasis ausgeführt wird.
- (1) INTER-Modus-Kodierung, in der nur die Inter-Vollbild-Differenzialsignale
für die
Veränderungen
zwischen zwei nachfolgenden Vollbildern kodiert werden, stellt eine
bessere Kodierungsleistung als diejenige des INTRA-Modus-Kodierens bereit.
Und INTRA-Modus-Kodieren,
das zur Wiederherstellung einer Bildpartition ausgeführt wird (Wiederherstellungseinheit)
bringt einen größeren Kodierungsumfang
als denjenigen beim INTER-Modus-Kodieren
mit sich. Daher muss die Wiederherstellung, die mit dem Opfer eines
großen
Kodierungsumfangs ausgeführt
wird, in der Lage sein, eine bessere Bildqualität zu gewährleisten. Wenn ein Fehler
oder ein Datenverlust in den komprimierten Daten aufgefunden wird,
werden gewöhnlich
Daten in der korrespondierenden Partition in einem Vollbild verwendet,
das korrekt dekodiert worden ist. Für eine Partition, die ein unbewegtes
Bild enthält,
wird eine gute Qualität
gewährleistet,
sogar wenn ein Datenfehler oder ein Datenverlust aufgefunden wird,
und daher wird keine Wiederherstellung gebraucht.
Jedoch hat
ein übliches
Wiederherstellungsverfahren die Partitionen eines Vollbilds zyklisch
wiederhergestellt, oder ein Vollbild selbst und die wiederhergestellten
Daten (INTRA-Modus-Kodieren) ohne Rücksicht darauf, ob es ein sich
bewegendes Bild oder ein unbewegtes Bild ist. Das heißt, dass
das übliche
Verfahren alle die Bilder wieder hergestellt hat, einschließlich denjenigen,
die eine gute Bildqualität
gewährleisten,
sogar wenn ein Datenfehler oder ein Datenverlust auftritt (beispielsweise
unbewegte Bilder), daher resultierend in zusätzlichem Kodieren und verminderter Übermittlungsleistung.
- (2) Wenn ein Datenfehler oder ein Datenverlust in komprimierten
Daten in einem sich bewegenden Bildbereich, wie in 2b gezeigt, gefunden worden ist, wird
die Bildqualität
maßgeblich
vermindert. Daher ist es empfohlen, dass die Fortpflanzung der verminderten
Bildqualität
so schnell wie möglich
gestoppt wird, und dass der Wiederherstellungszyklus so kurz wie
möglich
ist. Jedoch ist diese Lösung
nicht praktisch, weil ein kurzer Wiederherstellungszyklus den Umfang
der zu versendenden Kodierung erhöht.
-
Daher wird ein durch einen Datenfehler
oder Datenverlust verschlechterter, sich bewegender Bildbereich
nicht korrigiert, bis er wieder hergestellt worden ist. In einigen
Fällen
ist das verschlechterte, sich bewegende Bild für eine lange Zeit inkorrekt.
-
Um das obige Problem zu lösen, umfasst
ein Verfahren zum Kodieren von Bilddaten eines Vollbilds gemäß der Erfindung
die Verfahrensschritte von Anspruch 1 und ein Bildko dierer gemäß der Erfindung
umfasst die Merkmale von Anspruch 7. Vorteilhafte Ausführungsformen
des Verfahrens der Erfindung und des Bildkodierers der Erfindung
sind in den abhängigen
Ansprüchen
offenbart.
-
Wenn ein Fehler oder ein Datenverlust
in komprimierten Daten gefunden worden ist, werden gewöhnlich Daten
in der korrespondierenden Partition in einem Vollbild, das korrekt
dekodiert worden ist, verwendet. Für eine Partition, die ein unbewegtes Bild
enthält,
ist gute Qualität
sogar gewährleistet, wenn
ein Datenfehler oder ein Datenverlust gefunden worden ist, und daher
wird keine Wiederherstellung gebraucht.
-
Jedoch hat ein übliches Wiederherstellungsverfahren
zyklisch die Partitionen eines Vollbilds oder ein Vollbild selbst
wiederhergestellt, und wiederhergestellte Daten (INTRA-Modus-Kodierung)
ohne Rücksicht
darauf, ob es ein sich bewegendes Bild oder ein unbewegtes Bild
ist. Das heißt,
dass das übliche
Verfahren alle die Bilder wieder hergestellt hat, einschließlich denen,
die eine gute Bildqualität
gewährleisten,
sogar wenn ein Datenfehler oder ein Datenverlust auftritt (z. B.
unbewegte Bilder), daher resultierend in zusätzlichem Kodieren und verminderter Übertragungsleistung.
- (3) Wenn ein Datenfehler oder ein Datenverlust
in komprimierten Daten in einem sich bewegenden Bildbereich, wie
in 2b gezeigt, aufgefunden worden
ist, wird die Bildqualität
maßgeblich
vermindert. Daher ist es empfohlen, dass die Fortpflanzung von verminderter
Bildqualität
so schnell wie möglich
gestoppt wird, und dass der Wiederherstellungszyklus so kurz wie
möglich
ist. Jedoch ist diese Lösung
nicht praktisch, weil ein kurzer Wiederherstellungszyklus den Umfang
der zu versendenden Kodierung erhöht.
-
Daher wird ein sich bewegender Bildbereich, der
durch einen Datenfehler oder einen Datenverlust verschlechtert worden
ist, nicht verbessert, bis er wieder hergestellt worden ist. In
einigen Fällen
ist das verschlechterte, sich bewegende Bild für eine lange Zeit inkorrekt.
-
Um die obigen Probleme zu lösen, umfasst ein
Verfahren zum Kodieren von Bilddaten gemäß einem Aspekt der vorliegenden
Erfindung ein Vollbild, das in eine Vielzahl von Partitionen unterteilt
ist, wobei jede Partition durch ein temporäres Korrelations-Kodierungsverfahren
oder durch ein bildinternes Kodierungsverfahren kodiert wird, wobei
eine oder mehr Partitionen bestimmt werden, die für jedes
Vollbild oder für
jede Vielzahl von Vollbildern wiederhergestellt werden, und wobei
Partitionen, die dazu bestimmt sind, wiederhergestellt zu werden,
durch das bildinterne Kodierungsverfahren kodiert werden, und es
umfasst die Schritte des Berechnens eines temporären Veränderungsbetrags für jede Partition
und des Bestimmens, basierend auf dem temporären Veränderungsbetrag für jede Partition,
einer oder mehrerer wiederherzustellender Partitionen.
-
Gemäß einem anderen Aspekt der
vorliegenden Erfindung weist ein Bildkodierer, in dem Bildkodierungsmittel
ein Vollbild von Daten in eine Vielzahl von Partitionen unterteilen
und jede Partition durch ein temporäres Korrelations-Kodierungsverfahren
oder durch ein bildinternes Kodierungsverfahren kodieren, Wiederherstellungsziel-Bestimmungsmittel
auf, um eine oder mehrere wiederherzustellende Partitionen für jedes
Vollbild oder für
jede Vielzahl von Vollbildern festzulegen, wobei das Bildkodierungsmittel
mittels des bildinternen Kodierungsverfahrens eine oder mehr Partitionen
kodiert, die dazu bestimmt sind, wieder hergestellt zu werden, und
wobei das Wiederherstellungsziel-Bestimmungsmittel die folgenden
Bestandteile umfasst: Das Wiederherstellungsziel-Bestimmungsmittel
beinhaltet ein Veränderungsbetrags-Berechnungsmodul,
um für
jede Partition einen temporären
Veränderungsbetrag
zu berechnen; und ein Wiederherstellungsziel-Bestimmungsmodul, um
eine oder mehrere wiederherzustellende Partitionen basierend auf
dem temporären Veränderungsbetrag
für jede
Partition zu bestimmen.
-
Die ersten und zweiten Erfindungen
bestimmen wieder herzustellende Partitionen basierend auf einem
temporären
Veränderungsbetrag
von Bilddaten. Daher kann die durch einen Datenfehler oder einen
Datenverlust verschlechterte Bildqualität schnell durch Wiederherstellung
wiederhergestellt werden, ohne die Übertragungsleistung zu beeinflussen.
-
Die vorliegende Erfindung wird aus
der detaillierten Beschreibung und den nachfolgenden begleitenden
Zeichnungen der bevorzugten Ausführungsbeispiele
der Erfindung noch umfassender verstanden werden. In den Zeichnungen:
-
1 ist
ein Blockdiagramm, das einen Aufbau eines in dem ersten Ausführungsbeispiel
verwendeten Kodierers zeigt;
-
2 ist
ein Diagramm, das zeigt, warum eine Wiederherstellungsoperation
notwendig ist;
-
3 ist
ein Diagramm, das ein übliches Wiederherstellungsverfahren
(1) zeigt;
-
4 ist
ein Diagramm, das ein übliches Wiederherstellungsverfahren
(2) zeigt;
-
5 ist
ein Blockdiagramm, das ein Beispiel eines detaillierten Aufbaus
eines in dem ersten Ausführungsbeispiel
verwendeten Datenquellenkodierers zeigt;
-
6 ist
ein Ablaufdiagramm, das die Wiederherstellung des ersten Ausführungsbeispiels zeigt;
-
7 ist
ein Diagramm, das zeigt, wie sich wiederherzustellende Makroblöcke än dern;
-
8 ist
ein Diagramm, das einen Vorteil des ersten Ausführungsbeispiels zeigt;
-
9 ist
ein Blockdiagramm, das einen Aufbau eines in dem zweiten Ausführungsbeispiel
verwendeten Kodierers zeigt;
-
10 ist
ein Ablaufdiagramm, das die Wiederherstellung des zweiten Ausführungsbeispiels zeigt;
-
11 ist
ein Diagramm, das zeigt, wie umgebende Makroblöcke in dem zweiten Ausführungsbeispiel
(1) ermittelt werden;
-
12 ist
ein Diagramm, das zeigt, wie umgebende Makroblöcke in dem zweiten Ausführungsbeispiel
(2) ermittelt werden;
-
13 ist
ein Diagramm, das zeigt, wie sich wiederherzustellende Makroblöcke ändern;
-
14 ist
ein Diagramm, das einen Vorteil des zweiten Ausführungsbeispiels zeigt;
-
15 ist
ein Diagramm, das ein anderes Ausführungsbeispiel (1) zeigt;
-
16 ist
ein Diagramm, das ein anderes Ausführungsbeispiel (2) zeigt; und
-
17 zeigt
ein Ablaufdiagramm eines Bildkodierungsverfahrens gemäß der vorliegenden
Erfindung.
-
Nachfolgend werden die bevorzugten
Ausführungsbeispiele
eines Bildkodierungsverfahrens und eines Bildkodierers gemäß dieser
Erfindung mit den begleitenden Zeichnungen beschrieben.
-
Zunächst werden das Bildkodierungsverfahren
gemäß der vorliegenden
Erfindung zum einfachen Verständnis
der detaillierten Funktionen und des Aufbaus davon und des Bildkodierers
gemäß der vorliegenden
Erfindung mit Bezugnahme auf 17 zusammengefasst.
-
Wie in 17 gezeigt,
wird zunächst
für jeden
Makroblock ein temporärer
Veränderungsbetrag berechnet
(Schritt 1000). Das Verfahren fährt mit drei Schritten fort.
In einem der Schritte werden n-Makroblöcke mit n-größten temporären Veränderungsbeträgen wiederhergestellt,
wenn ihr temporärer
Veränderungsbetrag
groß ist
(Schritt 2000). In einem anderen der Schritte wird ein
Makroblock mit einem großen
temporären
Veränderungsbetrag
wiederhergestellt, ähnlich
zu dem Verfahren des Schritts 2000 (Schritt 3000), und
des weiteren wird ein Makroblock wiederhergestellt, der denjenigen
Makroblock umgibt, der den großen
temporären
Veränderungsbetrag
hat (Schritt 4000). In dem anderen der Schritte, wird ein
Makroblock mit einem temporären
Veränderungsbetrag,
der größer ist
als ein vorbestimmter Schwellenwert, wieder hergestellt (Schritt 5000).
-
A) Erstes Ausführungsbeispiel
-
Bezugnehmend auf die beigehefteten
Zeichnungen, wird das erste Ausführungsbeispiel
eines Bildkodierungsverfahrens und eines Bildkodierers gemäß der vorliegenden
Erfindung gezeigt. Es ist zu bemerken, dass das erste Ausführungsbeispiel
ein Verfahren und ein System einsetzt, die MPEG2 entsprechen.
-
1 ist
ein Blockdiagramm, das einen funktionalen Aufbau eines in dem ersten
Ausführungsbeispiel
verwendeten Bildkodierers zeigt.
-
Ein in 1 gezeigter
Bildkodierer 100 weist einen Datenquellenkodierer 101,
einen Videosignal-Multiplexier-Kodierer 102, einen Sendepuffer 103,
einen Übertragungskodierer 104,
eine Kodiersteuereinheit 109 und eine SAD-Sortiereinheit 110 auf.
Die Kodiersteuereinheit 109 weist einen größtes n-SAD-Auswähler 105,
eine Übereinstimmungs-Bestimmungseinheit 106,
eine Kodiermodus-Bestimmungseinheit 107 und eine Quantisierungsschrittgrößen-Bestimmungseinheit 108 auf.
-
Videosignale (digitale Signale) werden
beispielsweise von einer Videokamera oder einem Aufnahmemedium eingelesen
und werden an den Datenquellenkodierer 101 gesendet. Der
Datenquellenkodierer 101 kodiert die empfangenen Signale
in dem INTER-Modus oder INTRA-Modus.
-
5 ist
ein Blockdiagramm, das ein Beispiel eines detaillierten Aufbaus
des Datenquellenkodierers 101 zeigt. Der Datenquellenkodierer 101 unterteilt
Eingabe-Videosignaldaten
in eine Vielzahl von Partitionen, wie beispielsweise Slices oder
Blöcke, und
führt auf
jeder Partition eine Kodierung aus. Obwohl in der Figur nicht gezeigt,
hat der Datenquellenkodierer 101 einen Verarbeitungsschaltkreis,
der ermittelt, welcher Makroblock gegenwärtig verarbeitet wird.
-
Empfangene, in 5 gezeigte Videosignale werden an einen
Subtrahierer 200, einen Signalauswähler 201 und einen
Bewegungsvektor-Detektor 208 gesendet. Der Subtrahierer 200 findet
differenzielle Signale zwischen den empfangenen Videosignalen und
den vorausgesagten Videosignalen des vorhergehenden Vollbilds, die
aus einem Vollbildspeicher 207 erhalten werden, heraus
und sendet die differenziellen Signale an den Signalauswähler 201. Der
Signalauswähler 201,
der ein Modustypsignal von einer Kodiermodus-Bestimmungseinheit 107 empfängt, wählt die
differenziellen Signale aus dem Subtrahierer 200, wenn
das Modustypsignal den INTER-Modus anzeigt und die empfangenen Signale, wenn
das Modustypsignal den INTRA-Modus anzeigt. Die Signale von dem
Signalauswähler
werden durch einen DCT-Wandler (Diskreter Cosinus Transformierkonverter) 202,
einer Art eines orthogonalen Wandlers DCT gewandelt. Dann werden
die Signale durch einen Quantisierer 203 quantisiert und
als komprimierte Videosignale (kodierte Daten) an den Videosignal-Multiplexier-Kodierer 102 und
zur gleichen Zeit an einen Dequantisierer 204 gesendet.
-
Eine Quantisierungs-Schrittgröße ist durch eine
Quantisierungs-Schrittgrößen-Bestimmungseinheit 108 zur
Verwendung durch den Quantisierer 203 und den Dequantisierer 204 gegeben.
-
Komprimierte Videosignale (kodierte
Daten) werden an den Dequantisierer 204 und einen DCT-Inverter 205 gesendet,
dort lokal zu Ausgabesignalen dekodiert, die den Ausgabesignalen
von dem Signalauswähler 201 entsprechen,
und dann an einen Addierer 206 gesendet. Obwohl die Signalverbindung
in der Figur nicht gezeigt ist, wird das Modustypsignal von der
Kodiermodus-Bestimmungseinheit 107 an den Addierer 206 gesendet.
Wenn das Modustypsignal den INTER-Modus anzeigt, addiert der Addierer 206 die
lokalen Reproduktions-Videosignale
eines vorhergehenden Vollbilds von dem Vollbildspeicher 207 zu
dem Ausgabesignal des DCT-Wandlers 205; wenn das Modustypsignal
den INTRA-Modus anzeigt, lässt
der Addierer 206 die Ausgabesignale von dem DCT-Inverter 205 an
den Vollbildspeicher 207 durch. Der Vollbildspeicher 207 beinhaltet
die Signale von dem Addierer 206 als die Signale (vorhergesagte
Videosignale) des vorhergehenden Vollbilds zur Verwendung beim Kodieren
des nächsten
Vollbilds.
-
Der Bewegungsvektor-Detektor 208 überprüft die Eingabe-Videosignale,
ob sie einen Bewegungsvektor beinhalten und sendet auf die Erkennung
hin ein Erkennungssignal an den Vollbildspeicher 207 und
den Videosignal-Multiplexier-Kodierer 102. Z. B. versucht
der Bewegungsvektor-Detektor 208 mit einem Feld von 15 × 15 Pixeln
als Suchbereich, einen Bewegungsvektor mit der Minimumvarianz der
differenziellen Signale von dem Subtrahierer 200 aufzufinden.
Der Vollbildspeicher 207 wird zum Ausgleich während einer
Speicher- und Leseoperation verwendet, basierend auf einem vorgegebenen Bewegungsvektor.
-
5 ist
ein Blockablaufdiagramm aus dem Blickwinkel des Kodierens. Zusätzlich zu
den in 5 gezeigten Komponenten
hat der Datenquellenkodierer 101 eine Vielzahl von Verarbeitungs-Funktionseinheiten,
einschließlich
einer Funktionseinheit, die Slices oder Makroblöcke erkennt, oder eine Funktionseinheit,
die Daten zur Verwendung beim Bestimmen des Kodiermodus (INTER-Modus
oder INTRA-Modus) erzeugt.
-
Der in 1 gezeigte
Videosignal-Multiplexier-Kodierer 102 multiplexiert einen
Header, einschließlich
eines Synchronisations-Kodierungsworts, auf die vom Quantisierer 203 gesendeten
komprimierten Signale (kodierte Daten), vervollständigt einen
zu versendenden kodierten Bitstrom und sendet eine resultierenden
Bitstrom variabler Länge
an den Sendepuffer 103. Der Videosignal-Multiplexier-Kodierer 102 multiplexiert
auch das von der Kodiermodus-Bestimmungseinheit 107 gesendete
Modustypsignal, eine von der Quantisierungs-Schrittgrößen-Bestimmungseinheit 108 gesendete
Quantisierungs-Schrittgröße und ein
von dem Bewegungsvektor-Detektor 208 gesendetes Bewegungsvektorsignal
auf den Bitstrom. Die in dem Sendepuffer 103 gespeicherte Übertragungskodefolge
wird von dem Übertragungsbitfolgen-Kodierer 104 für eine Übertragung
bearbeitet. Ein Fehlerverbesserungskode, wie beispielsweise ein
BCH-Kode, wird für
die Kodebitfolge verwendet, die über
den Übertragungskanal
gesendet wird.
-
Information über den Speicherstatus des Sendepuffers 103 wird
an die Quantisierungs-Schrittgrößen-Bestimmungseinheit 108 gesendet,
um den Umfang der zu versendenden kodierten Daten zu steuern. Basierend
auf dem Speicherstatus des Sendepuffers 103 bestimmt die
Quantisierungs-Schrittgrößen-Bestimmungseinheit 108 eine
optimale Quantisierungs-Schrittgröße zu einem
besonderen Zeitpunkt und sendet diese Information als Kontrollsignale
an den Datenquellenkodierer 101 (Quantisierer 203 und
Dequantisierer 204) und an den Videosignal-Multiplexier-Kodierer 102,
wie oben beschrieben.
-
Die oben beschriebenen Komponenten – Datenquellenkodierer 101 bis Übertragungs-Kodierer 104 und
Quantisierungs-Schrittgrößen-Bestimmungseinheit 108 – sind dieselben
wie diejenigen in einem üblichen
System.
-
Das erste Ausführungsbeispiel wird durch die
Komponenten charakterisiert, die für die Wiederherstellungsfunktion
verantwortlich sind, einschließlich
dem größtes n-SAD-Auswähler 105,
der Übereinstimmungs-Bestimmungseinheit 106,
der Kodiermodus-Bestimmungseinheit 107 und
der SAD-Sortiereinheit 110.
-
Ein übliches System wählt ein
Vollbild oder eine Partition (Slices oder Makroblöcke) zyklisch
für eine
Wiederherstellung aus, ohne Rücksicht
auf den Typ der wieder herzustellenden Bilddaten, während das
erste Ausführungsbeispiel
den Datentyp in einer Partition oder einem wiederherzustellenden
Vollbild überprüft und basierend
auf dem Ergebnis eine Partition oder ein Vollbild auswählt. Dies
wird durch den größtes n-SAD-Auswähler 105,
die Übereinstimmungs-Bestimmungseinheit 106,
die Kodiermodus-Bestimmungseinheit 107 und die SAD-Sortiereinheit 102 umgesetzt.
In der folgenden Beschreibung wird angenommen, dass drei Makroblöcke in jedem
Vollbild wieder hergestellt werden.
-
Wie in einem üblichen System empfängt die Kodiermodus-Bestimmungseinheit 107 von
dem Datenquellenkodierer 101 die Information, die verwendet
wird, um den Komprimie rungs-Kodiermodus (INTER-Modus oder INTRA-Modus)
zu bestimmen, der verwendet werden soll, wenn ein Makroblock nicht wieder
hergestellt wird. Noch genauer, empfängt die Kodiermodus-Bestimmungseinheit 107 zwei
Varianzen: die Varianz der Eingabe-Videosignale (Quelldaten), die alle
die Pixel (N × M
Pixel: z. B. 16 × 16
Pixel) eines Makroblöcke
darstellen (als Quelldaten-Varianz bezeichnet) und die Varianz der
differenziellen Signale (Prädiktionsfehlerdaten)
von sämtlichen
von dem Subtrahierer 200 gesendeten Pixeln des Makroblocks
(als Bewegungskompensations-Differenzial-Datenvarianz bezeichnet,
welche die Minimumvarianz der differenziellen Signale ist, die während der
Suche des besten Bewegungsvektors erhalten worden sind). Für einen
nicht wieder herzustellenden Makroblock vergleicht die Kodiermodus-Bestimmungseinheit 107 die
Quelldatenvarianz mit der Bewegungskompensations-Differenzial-Datenvarianz
(jede kann mit einem Koeffizienten multipliziert werden oder ein
Koeffizient kann zu der Varianz addiert werden), um den zu verwendenden
Komprimierungsmodus zu bestimmen; INTER-Modus oder INTRA-Modus.
Weil es eine große
Korrelation zwischen einem Vollbild eines Videosignals und dem nächsten Vollbild
eines Videosignals gibt, ist die Bewegungskompensations-Differenzial-Datenvarianz
in den meisten Fällen
klein, und als ein Ergebnis wird der INTER-Modus verwendet.
-
Zusätzlich zu der oben beschriebenen
Quelldatenvarianz und der Bewegungskompensations-Differenzial-Datenvarianz,
empfängt
die Kodiermodus-Bestimmungseinheit 107 in dem ersten Ausführungsbeispiel
eine andere Varianz, die eine Varianz der differenziellen Signale
(Prädiktionsfehlerdaten)
in jedem Makroblock ist, die von dem Subtrahierer 200 gesendet
worden sind, wobei der Bewegungsvektor gleich null ist (als positionsgebundene Differenzial-Datenvarianz
bezeichnet, die als SAD abgekürzt
wird). Dies ist von einem üblichen
System unterschiedlich.
-
Die positionsgebundene Differenzialdatenvarianz
(SAD) ist eine Varianz der differenziellen Signale zwischen zwei
aufeinander folgenden Vollbildern, wobei der Bewegungsvektor gleich
null ist. Daher ist diese Varianz größer, wenn der Makroblock ein
sich bewegendes Bild beinhaltet, und ist kleiner, wenn der Makroblock
ein unbewegtes Bild beinhaltet (wird als übereinstimmend mit der Bewegungskompensations-Differenzial-Datenvarianz
betrachtet). In anderen Worten sagt eine größere positionsgebundene Differenzialdatenvarianz
(SAD) an, dass das Bild in der entsprechenden Position des gegenwärtigen Vollbilds
verzerrt ist, wenn ein Makroblock in einer Position des vorhergehenden
Vollbilds in der entsprechenden Position des gegenwärtigen Vollbilds verwendet
wird. Es ist zu bemerken, dass eine positionsgebundene Differenzial-Datenvarianz
nicht notwendigerweise gemäß der statistischen
Definition berechnet zu werden braucht; sie kann auch in irgendeiner
anderen Weise berechnet werden, wie später beschrieben wird.
-
Für
jeden Makroblock, dessen Information von dem Datenquellenkodierer 101 ausgesendet wird,
sendet die Kodiermodus-Bestimmungseinheit 107 die SAD an
die SAD-Sortiereinheit 110.
-
Die SAD-Sortiereinheit 110 empfängt die
positionsgebundene Differenzial-Datenvarianz
jedes Makroblocks von der Kodiermodus-Bestimmungseinheit 107 und
sortiert, wenn das Vollbild vervollständigt worden ist, die positionsgebundenen
Differenzialdatenvarianzen aller Makroblöcke in eine absteigende Reihenfolge.
Dann gibt sie die sortierten Ergebnisse an den größtes n-SAD-Auswähler 105 aus.
-
Der größtes n-SAD-Auswähler 105 wählt die größten n (3
in diesem Beispiel) positionsgebundenen Differenzial-Datenvarianzen
aus und gibt deren Makroblocknummern an die Übereinstimmungs-Bestimmungseinheit 106 aus.
-
Die Übereinstimmungs-Bestimmungseinheit 106 speichert
n Makroblocknummern, die von dem größtes n-SAD-Auswähler 105
gesendet worden sind, und überprüft, ob die
Nummer eines durch den Datenquellenkodierer 101 zu kodierenden
Makroblocks mit irgendeiner der gespeicherten n Makroblocknummern übereinstimmt.
Wenn keine Übereinstimmung
gefunden worden ist, sendet die Übereinstimmungs-Bestimmungseinheit 106 ein
Nicht-Übereinstimmungssignal
an die Kodiermodus-Bestimmungseinheit 107; wenn eine Übereinstimmung
gefunden worden ist, sendet die Übereinstimmungs-Bestimmungseinheit 106 ein Übereinstimmungssignal an
die Kodiermodus-Bestimmungseinheit 107.
-
Auf das Empfangen dieses Nicht-Übereinstimmungssignals
hin, vergleicht die Kodiermodus-Bestimmungseinheit 107 die
Quelldatenvarianz mit der Bewegungskompensations-Differenzial-Datenvarianz,
wie oben beschrieben, um den Kodiermodus (INTER-Modus oder INTRA-Modus)
zu bestimmen. Andererseits bestimmt die Kodiermodus-Bestimmungseinheit 107 auf
das Empfangen des Übereinstimmungssignals
hin, dass der Makroblock in dem INTRA-Modus zu kodieren ist (um
wiederhergestellt zu werden), ohne Rücksicht auf die Beziehung zwischen
der Quelldatenvarianz und der Bewegungskompensations-Differenzial-Datenvarianz,
und sendet das Modustypsignal, das den bestimmten Modustyp an den
Datenquellenkodierer 101 anzeigt.
-
In Wirklichkeit umfasst der Bildkodierer 100 in
vielen Fällen
einen oder mehrere Halbleiterchips. Er ist gewöhnlich nicht aus Hardwareeinheiten
aufgebaut, jede mit ihrer eigenen Funktion, wie in 1 gezeigt, sondern er ist aus Hardwareeinheiten
und Softwaremo dulen zusammengesetzt.
-
Der Betrieb des Bildkodierers 100 oder
das Durchführen
des Bildkodierungsverfahrens, das in dem ersten Ausführungsbeispiel
verwendet wird, wird mit Bezug auf das Ablaufdiagramm in 6 beschrieben. Es gibt keine Übereinstimmung
zwischen den Blöcken 101 bis 110 und
den in dem Ablaufdiagramm gezeigten Schritten. Es ist zu beachten,
dass in 6 jeweils drei
Makroblöcke
in jedem Vollbild wiederhergestellt werden. Es ist auch zu beachten, dass 6 nicht das gesamte Bildkodierungsverfahren
zeigt, sondern nur das mit dem im ersten Ausführungsbeispiel ausgeführten Wiederherstellungsbetrieb
verbundene Verarbeiten.
-
Wenn die in 6 gezeigte Verarbeitung startet, werden
drei Parameter (UPD1, UPD2 und UPD3), welche die Nummern der wieder
herzustellenden Makroblöcke
repräsentieren,
auf eine nicht existierende Blocknummer (in 6 wird "–1" verwendet) gesetzt
(Schritt 301). Das heißt,
dass das Freigeben der Parameter UPD1, UPD2 und UPD3 auf diese Weise
jeden Makroblock davon abhält,
wieder hergestellt zu werden, bis eine existierende Makroblocknummer
festgesetzt wird.
-
Wenn das Verarbeiten eines Vollbilds
beginnt, wird der Parameter MBK, der einen zu verarbeitenden Makroblock
bezeichnet, auf den Anfangswert gesetzt ("0":
dies bezeichnet den ersten Makroblock) (Schritt 302).
-
Darm wird eine Überprüfung durchgeführt, um
festzustellen, ob das wiederherzustellende Vollbild das erste Vollbild
ist (Schritt 303).
-
Wenn das Vollbild das erste Vollbild
ist, kodiert der Bildkodierer 100 den durch den Parameter MBK
bestimmten Makroblock in dem INTRA-Modus (Schritt 306).
In diesem Fall ist das Kodieren in dem INTER-Modus unmöglich, weil
kein Unterschied zwischen dem vorhergehenden Vollbild und dem ersten Vollbild
erhalten werden kann.
-
Wenn das Vollbild nicht das erste
Vollbild ist, wird die positionsgebundene Differenzial-Datenvarianz
SAD [MBK] für
den zu verarbeitenden Makroblock berechnet (Schritt 304).
Die positionsbebundene Differenzial-Datenvarianz SAD [i] für die differenziellen
Bildsignale für
das gegenwärtige
Vollbild und das vorhergehende Vollbild kann gemäß der Varianzdefinition in
der Statistik berechnet werden. Der Einfachheit halber ist es praktischer,
sie als eine Summe der absoluten differenziellen Bildsignalwerte
der entsprechenden Positionen (Summe der Signalwerte für die Pixel
in dem Makroblock) in dem gegenwärtigen Vollbild
zu berechnen, und das vorhergehende Vollbild, das die Summe bereitgestellt
hat, ist funktional der Varianz äquivalent.
-
Wenn die positionsgebundene Differenzial-Datenvarianz
SAD [MBK] berechnet und gespeichert wird, wird eine Überprüfung durchgeführt, um festzustellen,
ob der Parameter MBK mit irgendeinem der Parameter UPD1, UPD2 oder
UPD3 übereinstimmt
(Schritt 305). Das heißt,
dass dieser Schritt überprüft, ob der
durch den Parameter MBK festgelegte Makroblock einer der wiederherzustellenden Makroblöcke ist.
-
Wenn der Makroblock einer der wiederherzustellenden
Makroblöcke
ist, kodiert der Bildkodierer 100 den Makroblock in dem
INTRA-Modus (Schritt 306); anderenfalls kodiert der Bildkodierer 100 den Makroblock
in dem Kodiermodus, der durch den Vergleich der Quelldatenvarianz
und der Bewegungskompensations-Differenzial-Datenvarianz bestimmt ist
(Schritt 307).
-
Der Kodiermodus braucht nicht immer
durch den oben beschriebenen Kodiermodus, der ähnlich dem eines üblichen
Systems ist, bestimmt zu werden. Das heißt, weil die positionsgebundene
Differenzial-Datenvarianz SAD [MBK] in dem ersten Ausführungsbeispiel
berechnet wird, können
der INTER-Modus oder INTRA-Modus ausgewählt werden, ohne dass die Bewegungskompensations-Differenzial-Datenvarianz
verwendet wird; welcher Kodiermodus der am besten geeignete ist,
kann festgestellt werden, indem die Bewegungskompensations-Differenzial-Datenvarianz
und die positionsgebundene Differenzial-Datenvarianz SAD [MBK] verwendet werden.
Je größer die
positionsgebundenen Differenzial-Datenvarianz
SAD [MBK] ist, desto niedriger ist die Korrelation zwischen dem
gegenwärtigen
Vollbild und dem vorhergehenden Vollbild. Diese Beziehung kann beim
Bestimmen des Kodiermodus wie oben beschrieben verwendet werden.
-
Auf die Fertigstellung der Makroblock-Kodierung
hin, wird der Parameter MBK mit der Anzahl der Makroblöcke eines
Vollbilds minus Eins verglichen, um zu überprüfen, ob alle die Makroblöcke des
Vollbilds kodiert worden sind (Schritt 308). Wenn der gerade
verarbeitete Makroblock nicht der letzte Makroblock des Vollbilds
ist, wird der Parameter MBK um 1 inkrementiert, um den nächsten Makroblock
anzuzeigen (Schritt 309), und dann geht die Steuerung zurück zum Schritt 303,
um das Verarbeiten für
den nächsten
Makroblock zu beginnen.
-
Die Verarbeitungsschleife, Schritt 303 bis Schritt 308,
wird wiederholt und, wenn der letzte Makroblock kodiert worden ist
(ein entsprechender Vergleich kommt in Schritt 308 vor),
wird eine Überprüfung ausgeführt, um
festzustellen, ob das Vollbild das letzte Vollbild ist, das heißt, ob das
Ende des Eingabebilds erreicht worden ist (Schritt 310).
-
Wenn das Vollbild nicht das letzte
Vollbild ist, werden alle berechneten positionsge bundenen Differenzial-Datenvarianzen
SAD [i] (i = 0 bis MBKS-1) in eine absteigende Reihenfolge sortiert,
und die entsprechenden Makroblocknummern werden den Parametern SADNO
[j] zugewiesen (Schritt 311). Z. B. ist SADNO [0] die Nummer
des Makroblocks mit der größten positionsgebundenen
Differenzial-Datenvarianz SAD innerhalb des gerade kodierten Vollbilds, und
SADNO [MBK-1] ist die Nummer des Makroblocks mit der kleinsten positionsgebundenen
Differenzial-Datenvarianz SAD.
-
Dann werden die Parameter SADNO [0], SADNO
[1] und SADNO [2] jeweils drei Parametern UPD1, UPD2 und UPD3 zugewiesen,
welche die wiederherzustellenden Makroblöcke angeben. Die Steuerung
wird dann an den Schritt 302 weitergegeben (Schritt 312),
um das nächste
Vollbild zu verarbeiten. Das heißt, dass die Nummern der Blöcke mit
den größten drei
positionsgebundenen Differenzial-Datenvarianzen SAD in dem gerade
kodierten Vollbild reserviert werden, bevor mit der Verarbeitung
des nächsten
Vollbilds fortgefahren wird.
-
Für
das erste Vollbild wird die positionsgebundene Differenzial-Datenvarianz
SAD nicht in Schritt 304 berechnet, und die Schritte 311
und 312 werden daher ausgelassen, und die Steuerung geht direkt
zu Schritt 302 zurück.
Dies ist in 6 nicht gezeigt.
-
In dem ersten Ausführungsbeispiel
werden die wiederherzustellenden Makroblöcke nicht regulär wie in
einem üblichen
System durchlaufen (wie in 3 gezeigt).
Anstelle dessen werden die Makroblöcke mit großen positionsgebundenen Differenzial-Datenvarianzen SAD,
die Makroblöcken
entsprechen, die schnell zwischen zwei aufeinander folgenden Vollbildern
wechseln, und die, wenn sie ausgelassen würden, das Bild maßgeblich
verzerren würden,
wie in 8 gezeigt, in
den Schritten 311 und 312 als die wiederherzustellenden
Makroblöcke
ausgewählt.
In anderen Worten werden die Makroblöcke mit kleinen positionsgebundenen
Differenzial-Datenvarianzen SAD, wie diejenigen im Hintergrund,
nicht für
die Wiederherstellung ausgewählt,
weil diese Makroblöcke,
wenn sie ausgelassen würden,
das Bild nicht maßgeblich
verzerren würden.
-
Die Verarbeitungsschleife, die aus
den Schritten 302 bis 312 zusammengesetzt ist,
wird wiederholt und eine Folge der in 6 gezeigten
Kodierverarbeitung wird beendet, wenn das Verarbeiten des letzten
Vollbilds beendet wird und ein entsprechender Vergleich in Schritt 308 vorkommt.
-
In dem ersten Ausführungsbeispiel
kann ein wiederherzustellender Makroblock, wie oben beschrieben,
flexibel entsprechend den Inhalten eines Bilds geändert werden.
Daher wird die Qualität
des Makroblocks sichergestellt, sogar wenn ein Datenfehler oder
ein Datenverlust in dem Dekoder auftritt und ein Makroblock nicht
dekodiert werden kann, durch Verwendung der Signale des Makroblocks
an der gleichen Position, an der er in der Vergangenheit erfolgreich
dekodiert worden ist.
-
Das heißt, wenn ein Makroblock in
einem unbewegten Bildabschnitt aufgrund eines Datenfehlers oder
eines Datenverlusts nicht dekodiert werden kann, werden die Signale
des Makroblocks verwendet, der in der gleichen Position in der Vergangenheit erfolgreich
dekodiert worden ist, um eine gute Bildqualität sicherzustellen. Sogar wenn
ein Datenfehler oder ein Datenverlust in einem sich bewegenden Bildabschnitt
auftritt, der sich schnell bewegt, wird der Makroblock sofort wiederhergestellt,
um die Auswirkung des langen Andauerns zu vermeiden und um die verminderte
Bildqualität
schnell zu verbessern.
-
8 erklärt den Vorteil
des ersten Ausführungsbeispiels. 8(a) zeigt ein übliches
Bildkodierungsverfahren (Wiederherstellungsverfahren), während 8(b) das Bildkodierungsverfahren
(Wiederherstellungsverfahren) des ersten Ausführungsbeispiels zeigt.
-
Bei dem üblichen Verfahren wird ein
Makroblock in einem festen Intervall wiederhergestellt. Daher wird
das Bild verzerrt, wenn der Dekoder einen Datenfehler oder einen
Datenverlust in den ersten fünf
Makroblöcken
(ein Teil dessen ist in einem sich bewegenden Bild) in der fünften Slice
des zweiten Vollbilds verursacht und die vergangenen Signale für diese
Makroblöcke
verwendet. Es wird lange brauchen, den verzerrten Bereich wiederherzustellen, und
daher verbleibt das verzerrte dekodierte Bild lange, wie in 8(a) gezeigt.
-
In dem ersten Ausführungsbeispiel
werden Makroblöcke
mit großen
positionsgebundenen Differenzial-Datenvarianzen SAD zur Wiederherstellung ausgesucht.
Daher wird der korrespondierende sich bewegende Teil in dem INTRA-Modus
zur Wiederherstellung in dem nächsten
Vollbild (drittes Vollbild) kodiert und der verzerrte Teil wird
korrigiert, sogar wenn ein Datenfehler oder ein Datenverlust in
der fünften
Slice des zweiten Vollbilds durch den Dekoder verursacht wird, wie
in dem obigen Fall, und das sich bewegende Bild durch die vergangenen
Signale verzerrt wird. Dies hält
die verzerrten Vollbilder minimal (z. B. nur ein Vollbild in 8).
-
In dem ersten Ausführungsbeispiel
ist die Anzahl der in einem Vollbild wiederherzustellenden Makroblöcke die
gleiche wie diejenige in einem üblichen
System, mit keinem Anstieg in dem Kodierungsumfang (Übertragungsleistung
nicht betroffen).
-
(B) Zweites Ausführungsbeispiel
-
Mit Bezug auf die beigefügten Zeichnungen ist
das zweite Ausführungsbeispiel
eines Bildkodierungsverfahrens und eines Bildkodierer gemäß der vorliegenden
Erfindung gezeigt.
-
Es ist zu bemerken, dass das zweite
Ausführungsbeispiel
auch ein Verfahren und ein System entsprechend MPEG2 einsetzt.
-
9 ist
ein Blockdiagramm, das einen funktionellen Aufbau eines in dem zweiten
Ausführungsbeispiel
verwendeten Bildkodierers zeigt, wobei die mit den in 1 übereinstimmenden Komponenten die
gleichen Bezugszeichen haben.
-
Ein in 9 gezeigter
Bildkodierer 100A des zweiten Ausführungsbeispiels weist ebenfalls
einen Datenquellenkodierer 101, einen Videosignal-Multiplexier-Kodierer 102,
einen Sendepuffer 103, einen Übertragungs-Kodierer 104,
eine Kodier-Steuereinheit 109A und eine SAD-Sortiereinheit 110 auf.
Jedoch ist der detaillierte Aufbau der Kodier-Steuereinheit 109A verschieden
von dem des ersten Ausführungsbeispiels.
Das heißt,
dass die Kodier-Steuereinheit 109A eine Übereinstimmungs-Bestimmungseinheit 106,
eine Kodiermodus-Bestimmungseinheit 107 und
eine Quantisierungs-Schrittgrößen-Bestimmungseinheit 108 hat,
aber keinen größtes n-SAD-Auswähler 105 aufweist.
Sie hat anstelle des größtes n-SAD-Auswählers 105 einen
Positionsauswähler
für ein
umgebendes Bild 111.
-
Die in dem zweiten Ausführungsbeispiel
verwendete SAD-Sortiereinheit 110 empfängt positionsgebundene Differenzial-Datenvarianzen
(SAD) von der Kodiermodus-Bestimmungseinheit 107 und
sortiert nach Beendigung der Kodierung eines Vollbilds die positionsgebundenen
Differenzial-Datenvarianzen aller Makroblöcke in diesem Vollbild in eine
absteigende Reihenfolge. Sie gibt dann die sortierten Ergebnisse
an den Positionsauswähler
für ein
umgebendes Bild 111 aus.
-
Der Positionsauswähler für ein umgebendes Bild 111 findet
die Nummer eines Makroblocks mit der größten positionsgebundenen Differenzial-Datenvarianz
(SAD) heraus, erkennt die Nummern von acht umgebenden Makroblöcken und
gibt die Nummern an die Übereinstimmungs-Bestimmungseinheit 106 aus.
Wenn ein Makroblock mit der größten positionsgebundenen
Differenzial-Datenvarianz (SAD) auf einer der Seiten oder auf einer
der Ecken des Vollbilds ist und es nicht acht umgebende Makroblöcke gibt, erkennt
der Positionsauswähler
für ein
umgebendes Bild 111 den Makroblock mit der größten positionsgebundenen Differenzial-Datenvarianz
(SAD) und weniger als acht umgebende Makroblöcke und sendet ihre Nummern
an die Übereinstimmungs-Bestimmungseinheit 106.
-
Die Übereinstimmungs-Bestimmungseinheit 106 speichert
bis zu neun Makroblocknummern, die von dem Positionsauswähler für ein umgebendes Bild
111 gesendet worden sind, und überprüft, ob die Nummer
eines zu kodierenden Makroblocks mit einer der neun in ihr gespeicherten
Nummern übereinstimmt.
Wenn keine der neun Nummern mit der Nummer des zu kodierenden Makroblocks übereinstimmt, sendet
die Übereinstimmungs-Bestimmungseinheit 106 ein
Nicht-Übereinstimmungssignal;
wenn eine der neun Nummern mit der Nummer des zu kodierenden Makroblocks übereinstimmt,
sendet die Übereinstimmungs-Bestimmungseinheit 106 ein Übereinstimmungssignal
an die Kodiermodus-Bestimmungseinheit 107.
-
Außer der oben beschriebenen
Funktion kodiert der Bildkodierer 100A in dem zweiten Ausführungsbeispiel
Videosignale in derselben Weise wie der Bildkodierer 100 in
dem ersten Ausführungsbeispiel.
-
Wie oben beschrieben, werden im ersten Ausführungsbeispiel
die Makroblöcke
mit den größten n positionsgebundenen
Differenzial-Datenvarianzen (SAD) unter Verwendung des größtes n-SAD-Auswählers 105
wieder hergestellt, während im
zweiten Ausführungsbeispiel
ein Makroblock mit der größten positionsgebundenen
Differenzial-Datenvarianz (SAD) und die umgebenden Makroblöcke wiederhergestellt
werden.
-
Der Betrieb des Bildkodierers 100A oder
das Durchführen
des Bildkodierungsverfahrens, das in dem zweiten Ausführungsbeispiel
verwendet wird, werden mit Bezug auf das Ablaufdiagramm in 10 beschrieben. Es gibt keine Verbindung
zwischen den Blöcken 101 bis 111 und
den in dem Ablaufdiagramm gezeigten Schritten. In 10 haben
die Schritte, welche denjenigen in 6 entsprechen,
die in 6 verwendeten
Nummern. Zusätzlich
zeigt 10 nur diejenige Verarbeitung,
die mit dem für das
zweite Ausführungsbeispiel
spezifischen Wiederherstellungsbetrieb verbunden ist.
-
Wie in den 10 und 6 gezeigt, ist die Verarbeitung
im ersten Ausführungsbeispiel
im Wesentlichen die gleiche wie diejenige im zweiten Ausführungsbeispiel,
außer
dass die Schritte 301, 305 und 312 des
ersten Ausführungsbeispiels
im zweiten Ausführungsbeispiel
verändert
sind (Schritte 301A, 305A und 312A im
zweiten Ausführungsbeispiel).
-
Wenn die in 10 gezeigte
Verarbeitung beginnt, werden neun Parameter (UPD1 bis UPD9), die
den Nummern von wiederherzustellenden Makroblöcken entsprechen, auf eine
nicht existierende Blocknummer ("–1") gesetzt (Schritt 301A).
Wie oben beschrieben, können
im zweiten Ausführungsbeispiel
jeweils bis zu neun Makroblöcke
wiederhergestellt werden, es gibt neun Parameter, welche Makroblocknummern
darstellen.
-
Wenn die Parameter UPD1 bis UPD9
initialisiert werden, wird das erste Vollbild in dem INTRA-Modus
kodiert; das heißt,
jeder Makroblock im ersten Vollbild wird wieder hergestellt, indem
der Makroblock-Nummernparameter MBK jeweils um 1 inkrementiert wird
(Schritt 302 und eine aus den Schritten 303, 306, 308, 309 und 303 zusammengesetzte Schlei fe).
Für das
erste Vollbild wird keine positionsgebundene Differenzial-Datenvarianz
(SAD) berechnet, ein Sortieren wird nicht ausgeführt, und kein Makroblock wird
zur Wiederherstellung ausgewählt (Schritte 311 und 312A werden
nicht ausgeführt). Nachdem
sämtliche
Makroblöcke
des ersten Vollbilds kodiert worden sind, startet das Verarbeiten
für das
zweite Vollbild.
-
Für
das zweite und die folgenden Vollbilder wird ein Makroblock auf
den nächsten
umgeschaltet, indem der Makroblock-Nummernparameter MBK inkrementiert
wird, eine positionsgebunden Differenzial-Datenvarianz (SAD) wird
für jeden
Makroblock berechnet, eine Überprüfung wird
ausgeführt,
ob der Makroblock wiederherzustellen ist, und der Makroblock wird
entweder im INTER-Modus oder im INTRA-Modus kodiert (Schritt 302 und
eine aus den Schritten 303, 304, 305A, 306 (oder 307), 308, 309 und 303 zusammengesetzte
Schleife). Weil beim zweiten Ausführungsbeispiel jeweils bis
zu neun Makroblöcke
wiederhergestellt werden, ist die Überprüfung, um zu erkennen, ob ein
Makroblock wiederherzustellen ist (Schritt 305A), etwas
unterschiedlich von derjenigen im ersten Ausführungsbeispiel.
-
Für
das zweite Vollbild verbleiben die Parameter UPD1 bis UPD9 initialisiert,
und daher tritt keine gleiche Bedingung in Schritt 305A auf.
Der Kodiermodus wird bestimmt, indem die Varianzen wie in einem üblichen
System verglichen werden (Schritt 307).
-
Für
das dritte und die folgenden Vollbilder umfassen die Parameter UPD1
bis UPD9 gültige Werte,
und jene Parameter können
die wiederherzustellenden Makroblöcke festlegen (Schritt 306).
-
Für
das zweite und die folgenden Vollbilder werden die positionsgebundenen
Differenzial-Datenvarianzen (SAD) sortiert (Schritt 311),
nachdem sämtliche
Makroblöcke
eines Vollbilds wie im ersten Ausführungsbeispiel kodiert worden
sind. Jedoch unterscheiden sich das erste Ausführungsbeispiel und das zweite
Ausführungsbeispiel
darin, wie im nächsten
Vollbild wiederherzustellende Makroblöcke ausgewählt werden (Schritt 312A).
-
Im zweiten Ausführungsbeispiel wird die Nummer
eines Makroblocks mit der größten positionsgebundenen
Differenzial-Datenvarianz SADNO [0] durch den Parameter UPD1 festgelegt,
wobei die Nummern von acht Makroblöcken, die SADNO [0] umgeben,
in den Parametern UPD2 bis UPD9 enthalten sind.
-
Die 11(a) bis (e) und die 12(a) bis (d) zeigen, wie die Parameter UPD1 bis
UPD9 entsprechend dem in Schritt 312A erhaltenen Sortierergebnis
(SADNO [0]) aktualisiert werden. Die Figuren zeigen, dass die Parameter
UPD1 bis UPD9 davon abhängen,
wo innerhalb des Vollbilds ein Makroblock mit der größten Makroblocknummer
SADNO angeordnet ist. Dies ist hier nicht im Detail beschrieben, weil
es nicht maßgeblich
ist.
-
Auf die eine oder andere An werden
in Schritt 312A ein Makroblock mit der größten positionsgebundenen
Differenzial-Datenvarianz (SAD) und bis zu acht umgebende Makroblöcke zur
Wiederherstellung im nächsten
Vollbild ausgewählt.
Wenn das nächste
Vollbild kodiert wird, werden die ausgewählten Makroblöcke in dem
INTRA-Modus kodiert (wiederhergestellt).
-
Im zweiten Ausführungsbeispiel werden wiederherzustellende
Makroblöcke
nicht innerhalb eines Vollbilds durchlaufen, sondern werden dynamisch ausgewählt, wie
in 13 gezeigt, abhängig davon, wie
stark sich die Inhalte der Makroblöcke ändern.
-
Weil sich ein sich bewegender Bildabschnitt gewöhnlich über mehr
als einen Makroblock erstreckt, wird eine durch einen Datenfehler
oder einen Datenverlust verursachte Verzerrung in den meisten Fällen nicht
korrigiert, indem nur ein Makroblock, der durch den Fehler am meisten
betroffen ist, wiederhergestellt wird. Daher werden im zweiten Ausführungsbeispiel
ein Makroblock mit der größten positionsgebundenen
Differenzial-Datenvarianz (SAD) und die ihn umgebenden Makroblöcke wiederhergestellt.
-
Im zweiten Ausführungsbeispiel kann ein wiederherzustellender
Makroblock auch flexibel entsprechend den Inhalten eines Bilds verändert werden,
wie oben beschrieben. Daher wird, sogar wenn ein Datenfehler oder
ein Datenverlust in dem Dekodierer verursacht wird und ein Makroblock
nicht dekodiert werden kann, die Qualität des Makroblocks sichergestellt
unter Verwendung des Signals des Makroblocks in der gleichen Position,
der in der Vergangenheit erfolgreich dekodiert worden ist. Das heißt, dass,
wenn ein Makroblock in einem unbewegten Bildabschnitt wegen eines
Datenfehlers oder eines Datenverlusts nicht dekodiert worden ist,
die Signale des Makroblöcke,
die in derselben Position in der Vergangenheit erfolgreich dekodiert
worden sind, verwendet werden, um eine gute Bildqualität zu gewährleisten.
Sogar wenn ein Datenfehler oder ein Datenverlust in einem sich bewegenden Bildabschnitt
auftritt, der sich schnell bewegt, wird der Makroblock sofort wiederhergestellt,
um zu vermeiden, dass die Auswirkung lange anhält, und um die verminderte
Bildqualität
schnell zu verbessern.
-
Im zweiten Ausführungsbeispiel werden nicht
nur ein Makroblock mit der größten positionsgebundenen
Differenzial-Datenvarianz (SAD), sondern auch die umgebenden Makroblöcke wiederhergestellt.
Dies hält
die durch einen Dekodierfehler verursachte Verschlechterung gering.
-
Wenn ein Makroblock infolge eines
Datenfehlers oder eines Datenverlusts nicht deko diert werden kann
(die vergangenen Signale müssen
verwendet werden, um ihn zu dekodieren), wird der Makroblock in
vielen Fällen
von einer Vielzahl von Makroblöcken
umgeben, die dekodiert werden können, aber
deren Qualität
gering ist (Makroblöcke,
die in einer üblichen
Weise dekodiert worden sind, ohne den Datenfehler oder den Datenverlust
zu bemerken). Die Wiederherstellungsfunktion verhindert schnell eine
Bildqualitätsverschlechterung,
die durch einen Dekodierfehler verursacht worden ist.
-
14 zeigt
die Auswirkung des zweiten Ausführungsbeispiels. 14(a) zeigt die Wiederherstellung
eines üblichen
Systems, während 14(b) die Wiederherstellung
des zweiten Ausführungsbeispiels
zeigt. Ein schwarzer Makroblock ist ein Makroblock, in dem ein Dekodierfehler
aufgetreten ist. 14 veranschaulicht,
dass die Bildqualität
eines Fehler-Makroblocks im zweiten Ausführungsbeispiel schneller wieder
hergestellt wird als in einem üblichen
System.
-
Im zweiten Ausführungsbeispiel ist die Anzahl
der wiederherzustellenden Makroblökke die gleiche wie diejenige
in einem üblichen
System ohne einen Anstieg im Kodierumfang, der davon abhängt, wie
viele Makroblöcke
bei der Wiederherstellung verwendet werden.
-
(C) Andere Ausführungsbeispiele
-
Obwohl in jedem der obigen Ausführungsbeispiele
Bilddaten in Einheiten von Makroblöcken dekodiert worden sind,
können
auch andere Einheiten, wie beispielsweise eine Slice verwendet werden (eine
kleinere Einheit als ein Makroblock kann auch verwendet werden).
Zusätzlich
ist die Anzahl von wiederherzustellenden Partitionen in einem Vollbild nicht
auf diejenige begrenzt, die in dem obigen Ausführungsbeispiel verwendet worden
ist. Diese Erfindung kann verwendet werden, wenn die Wiederherstellungseinheit
ein Vollbild ist. Obwohl es verstanden werden kann, dass der Anspruch
nicht nur Vollbild-basierte Wiederherstellung einschließt, sollte verstanden
werden, dass der Anspruch Vollbild-basierte Wiederherstellung umfasst.
-
Obwohl die Anzahl von Wiederherstellungseinheiten
in jedem der obigen Ausführungsbeispiele festgelegt
ist (in dem zweiten Ausführungsbeispiel
ist die Anzahl im wesentlichen festgelegt), kann sie sich zwischen
den Vollbildern unterscheiden. Z. B. können als eine Variante des
zweiten Ausführungsbeispiels
eine Partition mit der größten positionsgebundenen
Differenzial-Datenvarianz (SAD) und die umgebenden Partitionen mit
einer positionsgebundenen Differenzial-Datenvarianz (SAD), die einen
Schwellenwert überschreiten,
wieder hergestellt werden.
-
Das Wiederherstellungsverfahren des
ersten Ausführungsbeispiels
kann kombiniert werden mit demjenigen eines üblichen Systems oder mit demjenigen
des zweiten Ausführungsbeispiels.
Ebenso kann das Wiederherstellungsverfahren des zweiten Ausführungsbeispiels
mit demjenigen eines üblichen Systems
kombiniert werden.
-
15 zeigt
ein Beispiel einer Kombination, bei der drei Wiederherstellungsverfahren
miteinander kombiniert werden: die Wiederherstellungsverfahren des
ersten Ausführungsbeispiels,
des zweiten Ausführungsbeispiels
und eines üblichen
Systems. Die Figur zeigt, wie sich wiederherzustellende Partitionen
(Makroblöcke) ändern.
-
In den obigen Ausfülhrungsbeispielen
wird eine positionsgebundene Differenzial-Datenvarianz (SAD), die verwendet wird,
um eine wiederherzustellende Partition auszuwählen, aus Daten in den zwei direkt
vorhergehenden Vollbildern erzeugt; sie kann aus Daten in dem gegenwärtigen Vollbild
und dem direkt vorhergehenden Vollbild erzeugt werden; sie kann
auch aus Daten in drei oder mehr Vollbildern erzeugt werden. Zusätzlich braucht
eine positionsgebundene Differenzial-Datenvarianz (SAD) nicht immer
eine statistisch definierte Varianz zu sein, sondern kann eine Summe
von differenziellen absoluten Werten sein, wie oben beschrieben.
Z. B. kann sie ein differenzieller absoluter Wert zwischen dem Durchschnitt
der Makroblockwerte in dem gegenwärtigen Vollbild und dem Durchschnitt
der Makroblockwerte in dem vorhergehenden Vollbild sein. In anderen Worten
kann ein Wert, der verwendet wird, um einen wiederherzustellenden
Makroblock auszuwählen,
ein beliebiger Wert sein, der verwendet werden kann, um einen Makroblock
zu finden, der durch die vergangenen Dekodiersignale wiederhergestellt
werden musste, weil während
dem Dekodieren ein Datenfehler oder ein Datenverlust aufgetreten
ist. Z. B. kann es ein Wert sein, der schwierig wiederherzustellen
ist, wenn er groß wird.
-
Im zweiten Ausführungsbeispiel werden eine Partition
mit der größten positionsgebundenen
Differenzial-Datenvarianz (SAD) und die umgebenden acht Partitionen
wiederhergestellt. Die Anzahl der umgebenden Partitionen kann kleiner
oder größer als acht
sein. Z. B. können
nicht nur acht umgebenden Partitionen, sondern auch 24 (8 plus 16)
umgebende Partitionen wiederhergestellt werden; umgekehrt können nur
die Partitionen in einer festgelegten Richtung (z. B. vertikale
oder horizontale Richtung) wiederhergestellt werden. In 16 werden nur die umgebenden
Partitionen in der horizontalen Richtung wieder hergestellt.
-
In den obigen Ausführungsbeispielen
werden für
jedes Vollbild wiederherzustellende Partitionen ausgewählt. Sie
können
einmal für
verschiedene Vollbilder ausgewählt
werden.
-
In den obigen Ausführungsbeispielen
wird der Kodiermodus für
einen Makroblock be stimmt, der nicht wiederhergestellt zu werden
braucht. Umgekehrt kann der Kodiermodus eines Makroblocks zuerst
bestimmt werden und nur, wenn der Makroblock im INTER-Modus kodiert
werden soll, kann eine Überprüfung ausgeführt werden,
um zu entscheiden, ob der Makroblock basierend auf einer positionsgebundenen
Differenzial-Datenvarianz (SAD) wieder hergestellt werden soll.
-
Die obigen Ausführungsbeispiele setzen einen
Bildkodierer und ein Verfahren übereinstimmend mit
MPEG2 voraus. Die vorliegende Erfindung ist nicht auf ein System
oder ein Verfahren gemäß diesem
Algorithmus beschränkt,
sondern kann mit einem Kodierer oder einem Kodierverfahren angewendet
werden, das ein Kodierverfahren, das eine Inter-Vollbild-Korrelation (dies
wird in den Ansprüchen als
temporäres
Korrelations-Kodierungsverfahren bezeichnet) und ein Kodierungsverfahren
kombiniert, das keine vergangenen Vollbilddaten verwendet (dies
wird in den Ansprüchen
als bildinternes Kodierverfahren bezeichnet).
-
In diesem Fall ist weder das temporäre Korrelations-Kodierungsverfahren
noch das bildinterne Kodierungsverfahren auf das in den obigen Ausführungsbeispielen
verwendete Verfahren begrenzt. Z. B. können als temporäres Korrelations-Kodierungsverfahren
nicht nur ein Vollbild sondern auch mehrere vergangene Vollbilder
verwendet werden, um Vorhersagesignale zu erzeugen, oder eine Korrelation
kann nicht nur zwischen Vollbildern, sondern zwischen Feldern verwendet
werden; als bildinternes Kodierungsverfahren kann ein Kodierungsverfahren,
wie beispielsweise ein Verfahren verwendet werden, das eine Linienkorrelation
verwendet. Wie ein Vollbild in unterschiedliche Partitionen unterteilt
wird sowie der Bewegungsvektor-Suchbereich ist daher nicht auf das
beschränkt,
was in den obigen Ausführungsbeispielen
beschrieben ist.
-
Die vorliegende Erfindung kann auch
auf einen Bildkodierer und ein Verfahren angewendet werden, das
im Wesentlichen ein temporäres
Korrelations-Kodierungsverfahren ohne eine Wiederherstellung verwendet.
-
Der Bildkodierer und das Verfahren
gemäß der vorliegenden
Erfindung berechnen einen temporären
Veränderungsbetrag
für jede
Partition und bestimmen basierend auf diesem Ergebnis die wiederherzustellenden
Partitionen. Daher können
der Bildkodierer und das Verfahren gemäß der vorliegenden Erfindung
die verminderte Bildqualität
durch Wiederherstellung verbessern, ohne den Kodierungsumfang zu
erhöhen,
sogar wenn die Bildqualität
infolge eines Datenfehlers oder eines Datenverlusts, der während des
Dekodierens aufgetreten ist, maßgeblich
vermindert ist.