-
HINTERGRUND
-
Eine
blockgestützte
bewegungskompensierte Videocodierung wird bei vielen Videokompressionsnormen
verwendet, wie etwa bei H.261, H.263, H263+, MPEG-1, MPEG-2 und
H26L. Der verlustbehaftete Kompressionsprozess kann in den decodierten
Bildern sichtbare Bildfehler erzeugen, die als Bildfehler des Bildes
(Bildartefakte) bezeichnet werden. Blockungsbildfehler treten in
einem Bild längs
der Blockränder
auf und werden durch die grobe Quantisierung von Transformationskoeffizienten
verursacht.
-
Bildfilterungstechniken
können
verwendet werden, um Bildfehler in rekonstruierten Bildern zu verringern.
Rekonstruierte Bilder sind die Bilder, die erzeugt werden, nachdem
eine inverse Transformation und eine Decodierung ausgeführt wurden.
Die Faustregel besteht bei diesen Techniken darin, dass Bildkanten
beibehalten werden sollten, während
der Rest des Bildes geglättet
wird. Tiefpassfilter werden anhand der Charakteristiken eines bestimmten
Bildelements oder einer Gruppe von Bildelementen, die die Bildkanten
umgeben, sorgfältig
ausgewählt.
-
Nicht
korrelierte Bildelemente, die sich über Bildblockränder erstrecken,
werden speziell gefiltert, um Blockungsbildfehler zu verringern.
Diese Filterung kann jedoch Unschärfebildfehler in das Bild einführen. Wenn
geringe oder keine Blockungsbildfehler zwischen benachbarten Blöcken vorhanden
sind, bringt eine Tiefpassfilterung unnötigerweise eine Unschärfe in das
Bild, während
gleichzeitig Verarbeitungsressourcen vergeudet werden.
-
EP 0 838 955 32 offenbart
eine Video-Codier/Decodiervorrichtung, die decodierte Bilder wiedergeben
kann, ohne unerwünschte
Störungen
einzuführen,
selbst wenn eine beträchtliche
Differenz zwischen Bildelementwerten oder eine Unstetigkeit an einem
bestimmten Blockrand vorhanden ist. Filterungsmittel werden verwendet,
um einen Rand zwischen benachbarten Blöcken in einem Vorhersagebild
zu filtern.
-
Die
vorliegende Erfindung wendet sich an dieses sowie weitere Probleme,
die im Stand der Technik vorhanden sind.
-
Zusammenfassung der Erfindung
-
Es
wird eine Vorrichtung zum Codieren eines Bildes geschaffen, mit:
Vorrichtung
zum Codieren eines Bildes, mit:
Speichermitteln zum Speichern
von mehr als einem Referenzbild für die Bewegungskompensation
eines zu codierenden Bildes;
Bewegungskompensationsmitteln
zum Ableiten eines Referenzblocks aus dem Referenzbild entsprechend
einem Bewegungsvektor;
Codierungsmitteln zum Codieren einer
Differenz zwischen dem Referenzblock und einem Eingangsbild;
Filterungsmitteln
zum Entblockungsfiltern mehrerer Ränder, die in Blöcken eines
rekonstruierten momentanen Bildes enthalten sind; und
Beurteilungsmitteln
zum Beurteilen, ob die Entblockungsfilterung für jeden der Ränder zwischen
den benachbarten Blöcken
in dem rekonstruierten momentanen Bild ausgeführt wird, für jeden der Ränder, wobei:
die
Beurteilungsmittel bestimmen, ob ein erster Bewegungsvektor und
ein zweiter Bewegungsvektor einander ähnlich sind, wobei der erste
Bewegungsvektor und der zweite Bewegungsvektor für die Bewegungskompensation
eines ersten Luminanzbildblocks bzw. eines zweiten Luminanzbildblocks,
die an den Rand angrenzen, verwendet werden, und
die Beurteilungsmittel
außerdem
bestimmen, ob der erste und der zweite Bewegungsvektor auf dasselbe Referenzbild
für den
ersten Luminanzbildblock bzw. für
den zweiten Luminanzbildblock zeigen, und
die Entblockungsfilterung
für die
Luminanzbildblöcke und
Chrominanzbildblöcke
nicht ausgeführt
wird, wenn die Bewegungsvektoren einander ähnlich sind und auf dasselbe
Referenzbild zeigen.
-
Ferner
wird eine entsprechende Vorrichtung zum Decodieren eines Bildes
geschaffen.
-
Gemäß der vorliegenden
Erfindung wird außerdem
ein Verfahren zur Entblockungsfilterung geschaffen:
Verfahren
zur Entblockungsfilterung für
mehrere Ränder,
die in Blöcken
in einem rekonstruierten momentanen Bild enthalten sind, mit:
einem
Bewegungskompensationsschritt zum Ableiten eines Referenzblocks
aus den Referenzbildern in Übereinstimmung
mit einem Bewegungsvektor; und
einem Beurteilungsschritt zum
Beurteilen, ob die Entblockungsfilterung für jeden der Ränder zwischen den
benachbarten Blöcken
in dem rekonstruierten momentanen Bild ausgeführt wird, für jeden der Ränder, wobei:
der
Beurteilungsschritt bestimmt, ob ein erster Bewegungsvektor und
ein zweiter Bewegungsvektor einander ähnlich sind, wobei der erste
Bewegungsvektor und der zweite Bewegungsvektor für die Bewegungskompensation
eines ersten Luminanzbildblocks bzw. eines zweiten Luminanzbildblocks,
die zueinander benachbart sind, verwendet werden, und
der Beurteilungsschritt
außerdem
bestimmt, ob der erste und der zweite Bewegungsvektor auf dasselbe Referenzbild
für den
ersten Luminanzbildblock bzw. für
den zweiten Luminanzbildblock zeigen, und
die Entblockungsfilterung
für die
Luminanzbildblöcke und
Chrominanzbildblöcke
nicht ausgeführt
wird, wenn die Bewegungsvektoren einander ähnlich sind und auf dasselbe
Referenzbild zeigen.
-
In
einem Bild werden benachbarte Blöcke identifiziert.
Für die
benachbarten Blöcke
werden Codierungsparameter identifiziert. Falls die Codierungsparameter
für die
identifizierten benachbarten Blöcke ähnlich sind,
wird die Entblockungsfilterung zwischen den identifizierten benachbarten
Blöcken übersprungen,
während
sie nicht übersprungen
wird, falls die Codierungsparameter für die identifizierten benachbarten
Blöcke
wesentlich verschieden sind.
-
KURZBESCHREIBUNG DER ZEICHNUNG
-
1 ist
eine Darstellung, die zeigt, wie die Entblockierungsfilterung entsprechend Ähnlichkeiten zwischen
benachbarten Bildblöcken
wahlweise übersprungen
wird;
-
2 ist
eine Darstellung, die zwei benachbarte Bildblöcke zeigt, die ähnliche
Bewegungsvektoren aufweisen;
-
3 ist
eine Darstellung, die zeigt, wie Transformationskoeffizienten für einen
der Bildblöcke festgelegt
werden;
-
4 ist
eine Darstellung, die zeigt, wie restliche Transformationskoeffizienten
zwischen zwei benachbarten Bildblöcken verglichen werden;
-
5 ist
ein Blockschaltplan, der zeigt, wie das Videobild codiert und decodiert
wird;
-
6 ist
ein Blockschaltplan, der zeigt, wie eine Entblockierungsfilterung
in einem Codec wahlweise übersprungen
wird;
-
7 zeigt
eine Tabelle, die die Ergebnisse des wahlweisen Überspringens der Entblockungsfilterung
enthält;
-
8 ist
ein Ablaufplan, der die Schritte einer Ausführungsform der vorliegenden
Erfindung beschreibt, bei der die Entblockungsfilterung zwischen benachbarten
Blöcken
von Ähnlichkeiten
der Codierungsparameter in benachbarten Blöcken abhängt;
-
9 ist
ein Ablaufplan, der die Schritte einer Ausführungsform der vorliegenden
Erfindung beschreibt, bei der die Entblockungsfilterung zwischen benachbarten
Blöcken
von benachbarten Blöcken mit ähnlichen
Bewegungsvektoren abhängt;
-
10 ist
ein Ablaufplan, der die Schritte einer Ausführungsform der vorliegenden
Erfindung beschreibt, bei der die Entblockungsfilterung zwischen benachbarten
Blöcken
von benachbarten Blöcken mit ähnlichen
Bewegungsvektoren, die auf den gleichen Referenzrahmen zeigen, abhängt;
-
11 ist
ein Ablaufplan, der die Schritte einer Ausführungsform der vorliegenden
Erfindung beschreibt, bei der die Entblockungsfilterung zwischen benachbarten
Blöcken
von benachbarten Blöcken mit ähnlichen
Bewegungsvektoren, die in einem einzelnen Referenzrahmen auf benachbarte
Referenzblöcke
zeigen, abhängt;
-
12 ist
ein Ablaufplan, der die Schritte einer Ausführungsform der vorliegenden
Erfindung beschreibt, bei der die Entblockungsfilterung zwischen benachbarten
Blöcken
von benachbarten Blöcken mit
Parametern, die ähnliche
DC-Transformationskoeffizienten (Gleichspannungs-Transformationskoeffizienten)
enthalten, abhängt;
-
13 ist
ein Ablaufplan, der die Schritte einer Ausführungsform der vorliegenden
Erfindung beschreibt, bei der die Entblockungsfilterung zwischen benachbarten
Blöcken
von benachbarten Blöcken mit
Parametern, die ähnliche
AC-Transformationskoeffizienten (Wechselspannungs-Transformationskoeffizienten)
enthalten, abhängt;
-
14 ist
ein Ablaufplan, der die Schritte einer Ausführungsform der vorliegenden
Erfindung beschreibt, bei der die Entblockungsfilterung zwischen benachbarten
Blöcken
von benachbarten Blöcken
in einem Luminanzbild mit Parametern, die ähnliche Bewegungsvektoren und ähnliche
Bewegungsvektorziele in einem Referenzrahmen enthalten, abhängt;
-
15 ist
ein Ablaufplan, der die Schritte einer Ausführungsform der vorliegenden
Erfindung beschreibt, bei der die Entblockungsfilterung zwischen benachbarten
Blöcken
von benachbarten Blöcken
in einem Luminanzbild mit Parametern, die ähnliche Bewegungsvektoren, ähnliche
Bewegungsvektorziele in einem Referenzrahmen und ähnliche
Transformationskoeffizienten enthalten, abhängt;
-
16 ist
ein Ablaufplan, der die Schritte einer Ausführungsform der vorliegenden
Erfindung beschreibt, bei der ein Bild in getrennte Luminanz- und Chrominanzkanäle unterteilt
ist und die Entblockungsfilterung zwischen benachbarten Blöcken in jedem
Luminanz- oder Chrominanzbild von benachbarten Blöcken in
einem Luminanzbild mit Parametern, die ähnliche Bewegungsvektoren enthalten,
abhängt;
und
-
17 ist
ein Ablaufplan, der die Schritte einer Ausführungsform der vorliegenden
Erfindung beschreibt, bei der ein Bild in getrennte Luminanz- und Chrominanzkanäle unterteilt
ist und die Entblockungsfilterung zwischen benachbarten Blöcken in jedem
Luminanz- oder Chrominanzbild von benachbarten Blöcken in
einem Luminanzbild mit Parametern, die ähnliche Bewegungs vektoren, ähnliche
Bewegungsvektorziele in einem Referenzrahmen und ähnliche
Transformationskoeffizienten enthalten, abhängt.
-
GENAUE BESCHREIBUNG
-
Bei
herkömmlichen
Filterungsverfahren berücksichtigt
die Filterungsverarbeitung lediglich einen einzelnen rekonstruierten
Bildrahmen zu einem Zeitpunkt. Die Bewegungsvektor-Informationen,
die sowohl am Codierer als auch am Decodierer zur Verfügung stehen,
werden nicht verwendet. Wenn zwei benachbarte Blöcke den gleichen Bewegungsvektor in
Bezug auf den gleichen Referenzbildrahmen gemeinsam verwenden (bei
einem System mit mehreren Referenzrahmen), kann es keine wesentliche
Differenz zwischen den Bildresten jedes Blockes geben. Der Blockrand
dieser beiden benachbarten Blöcke kann
in dem Referenzrahmen gefiltert worden sein und sollte deswegen
für den
aktuellen Rahmen nicht noch einmal gefiltert werden. Wenn ein Entblockungsfilter
verwendet wird, ohne diese Bewegungsvektor-Informationen zu berücksichtigen,
könnte
der herkömmliche
Filterungsprozess den gleichen Rand von einem Rahmen zum anderen
immer wieder filtern. Diese unnötige
Filterung bewirkt nicht nur eine unnötige Unschärfe, sondern hat außerdem zusätzliche
Filterberechnungen zur Folge.
-
1 zeigt
ein Bild 12, das wahlweise Blockbildfehler entsprechend Ähnlichkeiten
zwischen Bildblöcken
filtert. Das Bild 12 enthält mehrere Bildblöcke 14,
die jeweils einzeln codiert werden, bevor sie gespeichert, übertragen
usw. werden. Die Grenzen zwischen einigen der Blöcke 14 enthalten Blockungsbildfehler 18.
Blockungsbildfehler sind Bildunstetigkeiten zwischen Blöcken 14,
die durch den Codierprozess erzeugt werden können. Ein Tiefpassfilter wird
verwendet, um die Blockungsbildfehler zu verringern, die an den
Grenzen der benachbarten Bildblöcke
vorhanden sind.
-
Blockungsbildfehler 24 sind
z. B. zwischen den Blöcken 20 und 22 vorhanden.
Ein Tiefpassfilter wird an der Grenze 26 zwischen den Blöcken 20 und 22 verwendet,
um die Blockungsbildfehler 24 zu entfernen oder zu verringern.
Das Tiefpassfilter wählt
in einem Beispiel eine Gruppe von Bildelementen 28 von
beiden Seiten der Grenze 26. Von der Gruppe von Bildelementen 28 wird
ein durchschnittlicher Bildelementwert abgeleitet. Dann wird jedes
einzelne Bildelement mit dem durchschnittlichen Bildelementwert
verglichen. Alle Bildele mente in der Gruppe 28, die außerhalb
eines vorgegebenen Bereichs des durchschnittlichen Bildelementwertes
liegen, werden dann durch den durchschnittlichen Bildelementwert ersetzt.
-
Wenn,
wie oben beschrieben wurde, zwischen den benachbarten Bildelementen
geringe oder keine Blockungsbildfehler 24 vorhanden sind,
kann die Gruppe der Bildelemente 28 unnötigerweise gefiltert werden,
wodurch eine Unschärfe
in dem Bild erzeugt wird und Verarbeitungsressourcen vergeudet werden.
Ein Filterungsschema mit Sprungmodus verwendet die Informationen
von Bewegungsabschätzung
und Kompensation für
benachbarte Bildblöcke. Wenn
die Informationen der Bewegungsabschätzung und Kompensation ähnlich sind,
wird die Entblockungsfilterung übersprungen.
Dies vermeidet nicht nur eine unnötige Bildunschärfe, sondern
verringert die erforderliche Anzahl von Filterungsoperationen beträchtlich.
-
Es
wird z. B. während
des Codierungsprozesses festgestellt, dass benachbarte Bildblöcke 30 und 32 ähnliche
Codierungsparameter besitzen. Demzufolge wird die Entblockungsfilterung
für die Gruppen
von Bildelementen 34, die sich über die Grenze 31 zwischen
benachbarten Blöcken 30 und 32 erstrecken, übersprungen.
Die Filterung mit Sprungmodus kann für jeden horizontalen oder vertikalen
Rand zwischen beliebigen benachbarten Blöcken im Bild 12 verwendet
werden.
-
2 zeigt
Referenzrahmen 42 und 48 und einen aktuellen Rahmen 40,
der momentan codiert oder decodiert wird. Codierungsparameter für die Blöcke 44 und 46 werden
verglichen, um festzulegen, ob die Entblockungsfilterung zwischen
den beiden benachbarten Blöcken 44 und 46 übersprungen
werden sollte. Ein Codierungsparameter, der verglichen wird, enthält die Bewegungsvektoren
(MV) für
die Blöcke 44 und 46.
-
Der
Bewegungsvektor MV1 zeigt vom Block 44 im aktuellen Bildrahmen 40 zugehörigen Block 44' im Referenzrahmen 42.
Der Bewegungsvektor MV2 zeigt vom Block 46 im aktuellen
Bildrahmen 40 auf einen zugehörigen Block 46' im Referenzrahmen 42. Die
Filterung mit Sprungmodus stellt fest, ob die Bewegungsvektoren
MV1 und MV2 auf benachbarte Blöcke
in dem gleichen Referenzrahmen 42 zeigen. Wenn die Bewegungsvektoren
auf benachbarte Blöcke
in dem Referenzrahmen zeigen (MV1 = MV2), wird die Entblockungsfilterung übersprungen.
Diese Bewegungsvektor-Informationen können gemeinsam mit anderen
Codierungsinformationen verwendet werden, um zu entscheiden, ob
die Entblockungsfilterung zwischen den beiden Bildblöcken 44 und 46 übersprungen
wird.
-
Während des
Codierungs- und Decodierungsprozesses können mehr als ein Referenzrahmen
verwendet werden. Es kann z. B. ein weiterer Referenzrahmen 48 vorhanden
sein. Die benachbarten Blöcke 44 und 46 können Bewegungsvektoren aufweisen,
die auf unterschiedliche Referenzrahmen zeigen. In einer Ausführungsform
hängt die
Entscheidung zum Überspringen
der Entblockungsfilterung davon ab, ob die Bewegungsvektoren für die beiden benachbarten
Blöcke
auf den gleichen Referenzrahmen zeigen. Der Bildblock 44 kann
z. B. einen Bewegungsvektor 49 haben, der auf den Referenzrahmen 48 zeigt,
und der Bildblock 46 kann den Bewegungsvektor MV2 haben,
der auf den Referenzrahmen 42 zeigt. In diesem Beispiel
wird die Entblockungsfilterung nicht übersprungen, da die Bewegungsvektoren 49 und
MV2 auf unterschiedliche Referenzrahmen zeigen.
-
3 zeigt
einen weiteren Codierungsparameter, der für die Entscheidung verwendet
werden kann, ob die Entblockungsfilterung übersprungen wird. Der Bildblock 44 vom
Bildrahmen 40 wird mit dem Referenzblock 44' von dem Referenzrahmen 42 verglichen,
auf den durch den Bewegungsvektor MV1 gezeigt wird, wie oben in 2 gezeigt
ist. Ein Restblock 44'' wird aus dem
Vergleich zwischen dem Bildblock 44 und dem Referenzblock 44 ausgegeben.
Eine Transformation 50 wird an dem Restblock 44'' ausgeführt, wodurch ein transformierter
Block 44''' aus transformierten Koeffizienten
erzeugt wird. In einem Beispiel ist die Transformation 50 eine
diskrete Cosinustransformation. Der transformierte Block 44''' enthält eine
DC-Komponente 52 und AC-Komponenten 53.
-
Die
DC-Komponente 52 bezieht sich auf einen Transformationskoeffizienten
der niedrigsten Frequenz im Bildblock 44. Dies ist z. B.
der Koeffizient, der die durchschnittliche Energie in dem Bildblock 44 darstellt.
Die AC-Komponenten 53 beziehen sich auf die Transformationskoeffizienten,
die die Komponenten höherer
Frequenz in dem Bildblock 44 darstellen. Dies sind z. B.
die Transformationskoeffizienten, die die großen Energiedifferenzen zwischen Bildelementen
in dem Bildblock 44 darstellen.
-
4 zeigt
die transformierten Restblöcke 44''' und 46'''.
Die DC-Komponenten 52 von den beiden transformierten Blöcken 44''' und 46''' werden
im Prozessor 54 verglichen. Wenn die DC-Komponenten einander
gleich sind oder innerhalb eines bestimmten Bereiches liegen, weist
der Prozessor 54 eine Entblockungsfilterungsoperation 56 an,
die Entblockungsfilterung zwischen der Grenze der beiden benachbarten
Blöcke 44 und 46 zu überspringen. Wenn
die DC-Komponenten 52 nicht ähnlich sind, wird keine Sprunganweisung
ausgelöst
und die Grenze zwischen den Blöcken 44 und 46 wird
entblockungsgefiltert.
-
In
einer Ausführungsform
ist die Filterung mit Sprungmodus in dem Fernübertragungssektor des Codierungsschemas
H.26L enthalten, das von der International Telecommunication Union
(ITU-T) vorgeschlagen wurde. Das Schema H.26L verwendet lediglich
ganzzahlige 4 × 4-Blöcke der
diskreten Cosinustransformation (DCT). Dabei kann nur die DC-Komponente
der beiden benachbarten Blöcke geprüft werden.
Einige begrenzte AC-Koeffizienten mit niedriger Frequenz könnten jedoch
außerdem
geprüft
werden, wenn die Bildblöcke
größer sind,
wie etwa 8 × 8-
oder 16 × 16-Blöcke. Die
obere DC-Komponente 52 und die drei AC-Transformationskoeffizienten 53 mit
niedriger Frequenz für
die Blöcke 44''' können z.
B. mit der oberen DC-Komponente 52 und den drei AC-Transformationskoeffizienten 53 niedriger
Frequenz für
den Block 46''' verglichen werden. Verschiedene
Kombinationen von DC- und/oder AC-Transformationskoeffizienten geringer
Frequenz können
verwendet werden, um die relative Ähnlichkeit zwischen den beiden
benachbarten Blöcken 44 und 46 festzustellen.
-
Der
Prozessor 54 kann außerdem
weitere Codierungsparameter 55 empfangen, die während des
Codierungsprozesses erzeugt werden. Diese Codierungsparameter enthalten
die Bewegungsvektoren- und Referenzrahmen-Informationen für die benachbarten
Blöcke 44 und 46,
wie oben beschrieben wurde. Der Prozessor 54 verwendet
alle diese Codierungsparameter, um festzulegen, ob die Entblockungsfilterung
zwischen benachbarten Bildblöcken 44 und 46 übersprungen
wird. Weitere Codierungs- und Transformationsfunktionen, die an
dem Bild ausgeführt
werden, können
in dem gleichen Prozessor 54 oder in einer anderen Verarbeitungsschaltung ausgeführt werden.
Wenn die gesamte oder nahezu die gesamte Codierung im gleichen Prozessor
erfolgt, wird der Sprungmodus in einfacher Weise freigegeben, indem
ein Sprungparameter in der Filterungsroutine eingestellt wird.
-
5 zeigt,
wie die Filterung mit Sprungmodus in einem blockgestützten bewegungskompensierten
Codierer-Decodierer (Codec) 60 verwendet wird. Der Codec 60 wird
für die
Zwischenrahmencodierung verwendet. Ein Eingangsvideoblock von dem aktuellen
Rahmen wird von der Einheit 62 in einen Komparator 64 geleitet.
Die Ausgabe einer Rahmenpuffereinheit 80 erzeugt einen
Referenzblock 81 entsprechend dem geschätzten Bewegungsvektor (und einer
möglichen
Referenzrahmennummer). Die Differenz zwischen dem Eingangsvideoblock
und dem Referenzblock 81 wird in der Einheit 66 transformiert und
anschließend
in der Einheit 68 quantisiert. Der quantisierte Transformationsblock
wird durch einen Codierer mit variabler Länge (VLC) in der Einheit 70 codiert
und anschließend übertragen,
gespeichert usw.
-
Der
Codierungsabschnitt des Codec 60 rekonstruiert das transformierte
und quantisierte Bild, indem zuerst in der Einheit 72 eine
inverse Quantisierung (IQ) des transformierten Bildes ausgeführt wird. Das
invers quantisierte Bild wird anschließend in der Einheit 74 invers
transformiert, um ein rekonstruiertes Restbild zu erzeugen. Dieser
rekonstruierte Restblock wird anschließend in der Einheit 76 zu
dem Referenzblock 81 addiert, um einen rekonstruierten Bildblock
zu erzeugen. Das rekonstruierte Bild wird im Allgemeinen in der
Einheit 78 schleifengefiltert, um Blockungsbildfehler zu
verringern, die durch den Quantisierungs- und Transformationsprozess
erzeugt werden. Das gefilterte Bild wird dann in der Einheit 80 gepuffert,
um Referenzrahmen zu bilden. Die Rahmenpufferung in der Einheit 80 verwendet
die rekonstruierten Referenzrahmen für die Bewegungsabschätzung und
Kompensation. Der Referenzblock 81 wird im Komparator 64 mit
dem Eingangsvideoblock verglichen. Ein codiertes Bild wird am Knoten 71 aus dem
Codierungsabschnitt ausgegeben und wird anschließend gespeichert oder übertragen.
-
In
einem Decodiererabschnitt des Codec 60 decodiert ein Decodierer
mit Variabler Länge
(VLD) das codierte Bild in der Einheit 82. Das decodierte Bild
wird in der Einheit 84 invers quantisiert und in der Einheit 86 invers
transformiert. Das rekonstruierte Restbild aus der Einheit 86 wird
in der Summiereinheit 88 zu dem Referenzblock 91 addiert,
bevor es in der Einheit 90 schleifengefiltert wird, um
Blockungsbildfehler zu verringern, sowie in der Einheit 92 als Refe renzrahmen
gepuffert. Der Referenzblock 91 wird aus der Einheit 92 entsprechend
den empfangenen Bewegungsvektor-Informationen erzeugt. Die schleifengefilterte
Ausgabe aus der Einheit 90 kann wahlweise in der Einheit 94 nachgefiltert
werden, um Bildfehler in dem Bild weiter zu verringern, bevor sie in
der Einheit 96 als ein Videobild angezeigt wird. Das Filterungsschema
mit Sprungmodus kann in einer beliebigen Kombination der Filterungsfunktionen
in den Einheiten 78, 90 und 94 ausgeführt werden.
-
Die
Informationen der Bewegungsabschätzung
und Kompensation, die während
der Videocodierung zur Verfügung
stehen, werden verwendet, um festzulegen, wann die Entblockungsfilterung
in den Einheiten 78, 90 und/oder 94 zu überspringen
ist. Da diese Codierungsparameter bereits während des Codierungs- und Decodierungsprozesses
erzeugt werden, sind sie keine zusätzlichen Codierungsparameter,
die speziell für
die Filterung mit Sprungmodus erzeugt oder übertragen werden müssen.
-
6 zeigt
genauer, wie die Filterung mit Sprungmodus in den Filtern 78, 90 und/oder 94 in dem
Codierer und Decodierer von 5 verwendet wird.
Der Zwischenblockrand zwischen zwei beliebigen benachbarten Blöcken "j" und "k" wird
zunächst in
der Einheit 100 gekennzeichnet. Die beiden Blöcke können in
dem Bildrahmen horizontal oder vertikal benachbart sein. Die Entscheidungseinheit 102 vergleicht
den Bewegungsvektor mv(j) für
den Block j mit dem Bewegungsvektor mv(k) für den Block k. Zuerst wird
festgestellt, ob die beiden benachbarten Blöcke j und k den gleichen Bewegungsvektor,
der zu dem gleichen Referenzrahmen zeigt, besitzen. Mit anderen
Worten, die Bewegungsvektoren für
die benachbarten Blöcke
zeigen zu benachbarten Blöcken (mv(j)
= mv(k)) in dem gleichen Referenzrahmen (ref(j) = ref(k)).
-
Anschließend wird
festgestellt, ob die restlichen Koeffizienten für die beiden benachbarten Blöcke ähnlich sind.
Wenn kein wesentlicher Unterschied zwischen den Bildresten der benachbarten Blöcke vorhanden
ist, d. h. wenn z. B. die beide Blöcke j und k die gleiche oder ähnliche
DC-Komponente haben (dc(j) = dc(k)), dann wird in der Einheit 104 der
Prozess der Entblockungsfilterung übersprungen. Die Filterung
mit Sprungmodus geht dann in der Einheit 106 zu dem nächsten Zwischenblockrand und
führt in
der Entscheidungseinheit 102 den nächsten Vergleich durch. Die
Filterung mit Sprungmodus kann sowohl für horizontal benachbarte Blöcke als auch
für vertikal
benachbarte Blöcke
ausgeführt
werden.
-
In
einer Ausführungsform
werden lediglich die Referenzrahmen- und Bewegungsvektor-Informationen
für die
benachbarten Bildblöcke
verwendet, um einen Blocksprung festzulegen. In einer weiteren Ausführungsform
werden lediglich die DC- und/oder AC-Restkoeffizienten verwendet,
um einen Blocksprung festzulegen. In einer weiteren Ausführungsform
werden sowohl der Bewegungsvektor, der Referenzrahmen sowie Restkoeffizienten
verwendet, um einen Blocksprung festzulegen.
-
Das
Filterungsschema mit Sprungmodus kann auf räumlich unterabgetastete Chrominanzkanäle angewendet
werden. Bei Sequenzen im 4:2:0-Farbformat kann z. B. die Filterung
mit Sprungmodus für
Blockränder
lediglich auf der Gleichheit von Bewegungsvektoren und DC-Komponenten
für die
Luminanzkomponente des Bildes basieren. Wenn die Bewegungsvektoren
und die DC-Komponenten gleich
sind, wird die Entblockungsfilterung sowohl für die Luminanz- als auch die
Chrominanzkomponenten der benachbarten Bildblöcke übersprungen. In einer weiteren
Ausführungsform
werden die Bewegungsvektoren und die DC-Komponenten für jede Luminanz-
und Chrominanzkomponente der benachbarten Blöcke getrennt betrachtet. In
diesem Fall kann eine Luminanz- oder Chrominanzkomponente für benachbarte
Blöcke
entblockierungsgefiltert werden, während die anderen Luminanz-
oder Chrominanzkomponenten für
die gleichen benachbarten Blöcke
nicht entblockungsgefiltert werden.
-
7 enthält eine
Tabelle 110, die die Ergebnisse der Filterung mit Sprungmodus
unter Verwendung eines Prüfmodells
ITU-T-H.26L-Long TML5.0 zeigt. Die Tabelle 110 vergleicht
die Ergebnisse der TML-Filterungsnorm mit der oben beschriebenen
Filterung mit Sprungmodus. Codierungsergebnisse unter Verwendung
der Filterung mit Sprungmodus sind in der Tabelle 110 unter
dem Spaltenkopf SLA dargestellt.
-
Es
wurden vier Bilder geprüft,
Akiyo_CIF mit 300 Rahmen bei 30 Rahmen pro Sekunde (fps), Foreman_cif
mit 300 Rahmen bei 30 fps, Foreman_qcif mit 100 Rahmen bei 10 fps
und Tempete_cif mit 260 Rahmen bei 30 fps. Quantisierungsparameter
(QP) von 25 und 30 wurden verwendet. Die Ergebnisse zeigen keine
wesentliche Verschlechterung der optischen Güte bei der Filterung mit Sprungmodus.
Der Bild-Störabstand
(PSNR) für die
Bilder bleibt für
die Kanäle
Luminanz Y und Chrominanz U und V im Wesentlichen etwa gleich. Die
Filterung mit Sprungmodus schafft jedoch eine Zeiteinsparung von
40–70
%.
-
Die
Filterung mit Sprungmodus kann bei jedem System verwendet werden,
das mehrere Bildrahmen codiert oder decodiert, z. B. DVD-Abspieleinrichtungen,
Videorecorder oder jedes System, das Bilddaten über einen Übertragungskanal überträgt, wie
etwa über
Fernsehkanäle
oder über
das Internet.
-
Die
oben beschriebene Filterung mit Sprungmodus kann mit speziellen
Prozessorsystemen, Mikrosteuereinheiten, programmierbaren logischen Vorrichtungen
oder Mikroprozessoren, die einige oder alle Operationen ausführen, realisiert
werden. Einige der oben beschriebenen Operationen können in
Software realisiert sein, wobei andere Operationen in Hardware realisiert
sein können.
-
Zur
Einfachheit werden die Operationen als verschiedene untereinander
verbundene Funktionsblöcke
oder einzelne Softwaremodule beschrieben. Dies ist jedoch nicht
notwendig und es kann Fälle
geben, bei denen diese Funktionsblöcke oder Module in eine einzelne
logische Vorrichtung, ein Programm oder eine Operation mit unklaren
Begrenzungen vereinigt sein können.
In jedem Fall können
die Funktionsblöcke
und Softwaremodule oder die beschriebenen Merkmale durch sich selbst
oder in Kombination mit anderen Operationen in Hardware oder Software realisiert
sein.
-
Einige
Ausführungen
der vorliegenden Erfindung können
unter Bezugnahme auf 8 beschrieben werden. Bei diesen
Systemen und Verfahren werden benachbarte Blöcke 150 in einem Videorahmen
gekennzeichnet und Codierungsparameter für diese benachbarten Blöcke werden
gekennzeichnet. Die Codierungsparameter für die benachbarten Blöcke werden
dann verglichen, um ihre Ähnlichkeit
festzustellen 154. Wenn die Codierungsparameter nicht ähnlich sind,
wird ein Entblockungsfilter 156 längs des Randes zwischen den
benachbarten Blöcken
angewendet. Wenn die Codierungsparameter ähnlich sind, wird die Entblockungsfilterung übersprungen und
der Prozess geht zum nächsten
Schritt 158. Wenn die Entblockungsfilterung ausgeführt wird, geht
der Prozess nach der Filterung gleichfalls zu dem nächsten Schritt 158.
-
Wie
in 9 gezeigt ist, sind in einigen Ausführungsformen
der vorliegenden Erfindung die Codierungsparameter Bewegungsvektoren.
In diesen Ausführungsformen
werden benachbarte Blöcke
in einem Videorahmen gekennzeichnet 160 und Codierungsparameter 162,
die Bewegungsvektoren enthalten, werden gekennzeichnet. Diese Bewegungsvektoren
werden verglichen, um ihre Ähnlichkeit
festzustellen 164. Wenn die Bewegungsvektoren nicht ähnlich sind,
kann die Entblockungsfilterung zwischen den benachbarten Blöcken ausgeführt werden 166 und
der Prozess kann zu seinem nächsten Schritt 168 gehen.
Wenn die Bewegungssektoren ähnlich
sind, wird die Entblockungsfilterung übersprungen und der nächste Schritt 168 wird
direkt ausgeführt.
-
Wie
in 10 gezeigt ist, können andere Ausführungsformen
der vorliegenden Erfindung mehrere Codierungsparameter verwenden,
um festzulegen, ob die Filterung übersprungen wird. Bei diesen
Ausführungsformen
werden benachbarte Blöcke gekennzeichnet 170 und
Codierungsparameter werden für
die benachbarten Blöcke
festgelegt 172. Diese Codierungsparameter können Bewegungsvektorattribute
umfassen, die den Zielrahmen der Bewegungsvektoren enthalten. Wenn
die Bewegungsvektoren benachbarter Blöcke nicht gleich sind 174, kann
eine Entblockierungsfilterung zwischen den benachbarten Blöcken ausgeführt werden 176.
Wenn die Bewegungsvektoren gleich sind 174, können andere
Parameter verwendet werden, um den Filterungsprozess weiter zu verbessern.
In diesem Beispiel können
die Bewegungsvektoren verglichen werden, um festzustellen, ob sie
auf den gleichen Referenzrahmen zeigen 178. Wenn die Vektoren
nicht auf den gleichen Referenzrahmen zeigen, kann die Entblockungsfilterung
zwischen den Blöcken
ausgeführt
werden 176. Wenn die Vektoren auf den gleichen Referenzrahmen
zeigen, kann die Filterung übersprungen
werden und der Prozess kann zu dem nächsten Schritt gehen 179.
-
Weitere
Bewegungsvektorparameter können verwendet
werden, um die Filterung festzulegen. In Ausführungsformen, die in 11 dargestellt
sind, ist die Lage der Blöcke,
zu denen Vektoren zeigen, ein Parameter, der verwendet werden kann,
um Filterungsoptionen festzulegen. In diesen Ausführungsformen
werden benachbarte Blöcke
gekennzeichnet 200 und Codierungsparameter werden für die benachbarten
Blöcke
gekennzeichnet 202. Bewegungsvektoren werden dann verglichen,
um ihre Ähnlichkeit
festzustellen 204. Wenn die Vektoren nicht ähnlich sind,
kann die Entblockungsfilterung ablaufen 208. Wenn die Bewegungsvektoren ähnlich sind,
kann ein weiterer Vergleich ausgeführt werden, um festzustellen,
ob die Bewegungsvektoren der benachbarten Blöcke auf den gleichen Referenzrahmen
zeigen. Wenn die Vektoren nicht auf den gleichen Rahmen zeigen,
kann die Entblockungsfilterung ablaufen 208. Wenn die Vektoren
auf den gleichen Referenzrahmen zeigen, können die Blöcke, auf die die Vektoren zeigen,
verglichen werden 210. Wenn Bewegungsvektoren nicht auf
benachbarte Blöcke
in dem gleichen Referenzrahmen zeigen, kann die Entblockungsfilterung
ablaufen 208. Wenn die Vektoren auf benachbarte Blöcke in dem
gleichen Referenzrahmen zeigen, kann die Entblockungsfilterung übersprungen
werden und ein nächster
Schritt kann ausgeführt
werden 212. Auf diese Weise wird an benachbarten Blöcken, die
auf benachbarte Blöcke
in einem Referenzrahmen Bezug nehmen und zwischen denen wahrscheinlich
keine wesentlichen Bildfehler vorhanden sind, keine Entblockungsfilterung
ausgeführt.
Dieses Überspringen
der Entblockungsfilterung vermeidet eine Unschärfe und eine Bildverschlechterung,
die durch den Filterungsprozess bewirkt werden. Außerdem wird
Bearbeitungszeit eingespart, da eine unnötige Filterung vermieden wird.
Die Bildqualität
wird dadurch verbessert und in dem Prozess sind weniger Berechnungen
erforderlich. Es sollte angemerkt werden, dass verschiedene Kombinationen
dieser Bewegungsvektorparameter verwendet werden können, um
ein Überspringen
der Filterung festzulegen. Diese große Anzahl von Kombinationen
werden nicht im Einzelnen beschrieben, liegen jedoch im Verständnis eines
Fachmanns und es ist vorgesehen, dass sie im Umfang der beigefügten Ansprüche liegen.
-
Weitere
Ausführungsformen
der vorliegenden Erfindung können
Transformationskoeffizienten verwenden, um festzulegen, ob eine
Entblockungsfilterung erfolgen sollte. In 12 werden
benachbarte Blöcke
in einem Rahmen gekennzeichnet 180 und Codierungsparameter
werden für
die benachbarten Blöcke
gekennzeichnet 182. Diese Codierungsparameter können Bewegungsvektorparameter
sowie Transformationskoeffizienten enthalten.
-
Bewegungsvektoren
werden dann verglichen 184, um eine Ähnlichkeit festzustellen. Wenn die
Bewegungsvektoren nicht ähnlich
sind, kann eine Entblockungsfilterung ausgeführt werden 186. Wenn die
Bewegungsvektoren ähnlich
sind, werden die Bewegungsvektordaten analysiert, um festzustellen,
ob die Bewegungsvektoren auf den gleichen Referenzrahmen zeigen.
Wenn die Bewegungsvektoren nicht auf den gleichen Referenzrahmen
zeigen 185, kann eine Filterung ablaufen 186.
-
Wenn
die Bewegungsvektoren auf den gleichen Referenzrahmen zeigen 185,
können
Transformationskoeffizienten verglichen werden, um den Filterungsprozess
weiter zu verbessern. In diesem Beispiel können DC-Transformationskoeffizienten,
die durch Verfahren der diskreten Cosinustransformation (DCT) oder
andere Verfahren erhalten werden, für die benachbarten Blöcken verglichen
werden. Wenn die DC-Transformationskoeffizienten nicht ähnlich sind 187,
kann eine Entblockungsfilterung ausgeführt werden 186. Wenn
die DC-Transformationskoeffizienten ähnlich sind,
kann die Filterung übersprungen werden
und die Verfahren und Systeme können
zum nächsten
Schritt gehen 188.
-
Weitere
Ausführungsformen
der vorliegenden Erfindung können
AC-Transformationskoeffizienten verwenden, um Filterungsoptionen
festzulegen. In 13 werden Ausführungsformen,
die den in Bezug auf 12 beschriebenen Ausführungsformen ähnlich sind,
mit den zusätzlichen
Schritten der Bewertung von AC-Transformationskoeffizienten dargestellt.
In diesen Ausführungsformen
werden Blöcke 190 und
ihre Codierungsparameter 191 gekennzeichnet. Ähnlichkeiten
bei Bewegungsvektoren 192, Bewegungsvektor-Zielrahmen 193 und DC-Transformationskoeffizienten
werden außerdem verglichen 194.
Wenn bei diesen Parametern Ähnlichkeiten
vorhanden sind, werden AC-Transformationskoeffizienten verglichen 196 und
falls sie ähnlich sind,
wird die Entblockungsfilterung übersprungen und
der nächste
Schritt im Prozess wird ausgeführt 197.
Wenn die AC-Koeffizienten nicht ähnlich
sind, wird eine Filterung zwischen den benachbarten Blöcken ausgeführt und
der Prozess geht weiter zum nächsten
Schritt 197.
-
AC-Transformationskoeffizienten
besitzen wahrscheinlich in größeren Blöcken eine
Bedeutung, sie können
jedoch bei Verfahren verwendet werden, die kleinere Blöcke, wie
etwa 4 × 4-Blöcke, verwenden.
-
In
einigen Ausführungsformen
der vorliegenden Erfindung kann ein Bild in Abhängigkeit von dem Format des
Bildes und des verwendeten Farbraums in verschiedene Luminanz- und
Chrominanzkanäle unterteilt
werden. In den folgenden Beispielen wird ein YUV-Farbraum beschrieben,
in diesen Ausführungsformen
können
jedoch viele andere Formate und Farbräume verwendet werden. CieLAB,
YcrCb und andere Räume
können
verwendet werden. In alter nativen Ausführungsformen können Farbräume, wie
etwa RGB, verwendet werden.
-
Einige
Ausführungsformen
der vorliegenden Erfindung können
bei Bezugnahme auf 14 beschrieben werden. Bei diesen
Ausführungsformen werden
Luminanzdaten aus dem Bild entnommen und ein Luminanzbild wird erzeugt 220.
Benachbarte Blöcke
werden dann in dem Luminanzbild gekennzeichnet 222 und
Codierungsparameter für
die benachbarten Blöcke
werden ebenfalls gekennzeichnet 224. Wie in anderen Ausführungsformen
werden die Bewegungsvektoren der benachbarten Blöcke verglichen, um Ähnlichkeiten
festzustellen 226. Wenn die Bewegungsvektoren nicht ähnlich sind,
wird die Entblockungsfilterung ausgeführt 230, wenn die
Vektoren ähnlich
sind, wird eine weitere Analyse ausgeführt, um festzustellen, ob die
Vektoren auf den gleichen Referenzrahmen zeigen 228. Wenn
die Vektoren auf unterschiedliche Referenzrahmen zeigen, wird die
Entblockungsfilterung zwischen den benachbarten Blöcken des
Originalbildes, die den benachbarten Blöcken in dem Luminanzbild entsprechen, ausgeführt 230.
Wenn die Vektoren auf den gleichen Rahmen zeigen, wird die Entblockungsfilterung übersprungen
und der nächste
Schritt wird ohne vorherige Filterung ausgeführt 232. Wenn die
Filterung ausgeführt
wird, wird der nächste
Schritt nach dem Filterungsprozess ausgeführt 232. Dementsprechend wird
die Analyse der Daten in dem Luminanzkanal verwendet, um Filterungsprozesse
in dem ursprünglichen
Bild festzulegen, das sowohl Luminanz- als auch Chrominanzdaten
enthält.
-
In
weiteren betreffenden Ausführungsformen,
die in 15 dargestellt sind, wird ein
Luminanzbild erzeugt 240 und entsprechende benachbarte
Blöcke
werden in dem Luminanzbild und dem ursprünglichen Bild gekennzeichnet 242.
Codierungsparameter werden außerdem
für die
Luminanzbildblöcke
gekennzeichnet 244. Anschließend werden Bewegungsvektoren
verglichen, um Ähnlichkeiten festzustellen 246.
Wenn keine wesentlichen Ähnlichkeiten
vorhanden sind, wird eine Filterung zwischen den benachbarten Blöcken in
dem ursprünglichen Bild
ausgeführt 252.
Wenn Bewegungsvektoren ähnlich
sind, werden die Zielrahmen der Bewegungsvektoren verglichen, um
festzustellen, ob die Vektoren auf den gleichen Referenzrahmen zeigen.
Wenn die Vektoren nicht auf den gleichen Referenzrahmen zeigen,
wird die Filterung ausgeführt.
Wenn die Vektoren auf den gleichen Referenzrahmen zeigen, werden
Transformationskoeffizienten des Luminanzbildes (Y) verglichen.
Wenn Y-Transformations koeffizienten nicht ähnlich sind, wird die Filterung
ausgeführt.
Wenn Transformationskoeffizienten ähnlich sind, wird die Filterung übersprungen
und der nächste
Schritt wird ausgeführt 254.
Der nächste
Schritt wird gleichfalls nach jeder Filterungsoperation ausgeführt 254.
-
Bilder
können
weiter in Komponentenkanäle unterteilt
werden, die im Allgemeinen den Luminanz- und Chrominanzkanälen entsprechen.
In einigen Ausführungsformen
der vorliegenden Erfindung kann jeder Kanal entsprechend den Parametern,
die für diesen
Kanal eindeutig sind, gefiltert werden.
-
Als
ein Beispiel können
Ausführungsformen unter
Bezugnahme auf 16 beschrieben werden, in der
ein Bild in separate Luminanz-(Y) und mehrere Chrominanz-(U, V)Kanäle unterteilt
wird 260. Bei diesen Ausführungsformen werden benachbarte
Blöcke in
Bildern gekennzeichnet, die dem jeweiligen Kanal entsprechen 262, 272, 282.
Codierungsparameter, wie etwa Bewegungsvektordaten, werden außerdem für diese
Blöcke
in jedem Kanal gekennzeichnet 264, 274, 284.
Diese Codierungsparameter können
dann verglichen werden, um wie in anderen Ausführungsformen Ähnlichkeiten
festzustellen. In diesen beispielhaften Ausführungsformen können Bewegungsvektor-Ähnlichkeiten
für kanalspezifische
Bewegungsvektoren verwendet werden, um Filterungsoptionen in jedem
Kanal festzulegen. Wenn die Bewegungsvektoren für ein Kanalbild nicht ähnlich sind 266, 276, 278,
wird eine Filterung in diesem speziellen Kanal zwischen den benachbarten
Blöcken
ausgeführt 270, 280, 290.
Wenn die Vektoren für
benachbarte Kanäle
in einem Kanal auf den gleichen Referenzrahmen zeigen, wird die
Filterung übersprungen.
Wenn die Vektoren auf unterschiedliche Referenzrahmen zeigen, wird
die Filterung ausgeführt 270, 280, 290.
-
Wie
in anderen Ausführungsformen
können diese
kanalbasierten Ausführungsformen
Transformationskoeffizientendaten verwenden, um Filterungsoptionen
zu verbessern. Wie in 17 gezeigt ist, können die
Verfahren und Systeme, die unter Bezugnahme auf 16 beschrieben
sind, des Weiteren Kanal-Transformationskoeffizienten
vergleichen 310, 322, 334. Wenn die Koeffizienten
nicht ähnlich sind,
wird die Filterung ausgeführt 312, 324, 336. Wenn
die Koeffizienten ähnlich
sind, wird die Filterung übersprungen.
-
Es
sollte angemerkt werden, dass verschiedene Kombinationen von Parametern
bei der Verbesserung von Filterungsoperationen in jedem Kanal verwendet
werden können.
DC- und AC-Transformationskoeffizienten können für diese Ausführungsformen
verwendet werden. Des Weiteren können
verschiedene Kanäle
und Kombinationen aus Kanälen verwendet
werden, um Filterungsoptionen festzulegen und eine Filterung auszuführen. In
einigen Ausführungsformen
können
z. B. beide Chrominanzkanäle
kombiniert und gemeinsam analysiert werden. Daten und Parameter
von einem Kanal können
außerdem
verwendet werden, um Filterungsoptionen in einem anderen Kanal festzulegen.
Es können
z. B. Parameter, die von dem U-Chrominanzkanal erhalten werden,
verglichen werden, um Filterungsoptionen in dem V-Chrominanzkanal
festzulegen und umgekehrt.
-
Nachdem
die Prinzipien der Erfindung in verschiedenen beispielhaften Ausführungsformen
beschrieben und dargestellt wurden, sollte klar sein, dass die Erfindung
in Anordnung und Einzelheiten modifiziert werden kann, ohne von
diesen Prinzipien abzuweichen. Alle Modifikationen und Variationen sollen
im Umfang der folgenden Ansprüche
liegen.