-
Die
Erfindung betrifft im allgemeinen Kommunikationssysteme und insbesondere
betrifft die Erfindung ein Verfahren und gleichzeitig eine Vorrichtung
für das
Reduzieren eines "atmenden" Artefakts (breathing)
innerhalb eines codierten Informationsstroms.
-
TECHNISCHER HINTERGRUND
DER BESCHREIBUNG
-
In
verschiedenen Kommunikationssystemen werden die zu übertragenden
Daten komprimiert, so daß die
verfügbare
Bandbreite effizienter verwendet wird. Beispielsweise hat die Moving
Pictures Experts Group (MPEG) verschiedene Normen bzw. Standards
betreffend digitale Datenliefersysteme veröffentlicht. Die erste, bekannt
als MPEG-1, bezieht sich auf die ISO/IEC-Normen 11172. Die zweite,
bekannt als MPEG-2, bezieht sich auf die ISO/IEC-Normen 13818. Ein
komprimiertes digitales Videosystem wird in dem Advanced Television
Systems Committee (ATSC) Digital Television Standard-Dokument A/53
beschrieben.
-
Die
oben genannten Normen beschreiben die Datenverarbeitung und Manipulationstechniken,
die für die
Komprimierung und Lieferung von Video-, Audio- und anderer Information
unter Verwendung von digitalen Kommunikationssystemen fester oder
variabler Länge
gut geeignet sind. Die oben erwähnten
Normen und andere "MPEG-artige" Normen und Techniken
komprimieren insbesondere anschaulich die Videoinformation unter
Verwendung von Intraframe- bzw. Intraeinzelbild-Codiertechniken (wie z. B. die Lauflängencodierung,
die Huffman-Codierung und dergleichen) und der Interframe-Codiertechniken
(wie z. B. die vorwärts-
und rückwärts-prädiktive
Codierung, die Bewegungskompensation und dergleichen). Speziell
im Fall der videoverarbeitenden Systeme werden MPEG- und MPEG-artige
Videoverarbeitungssysteme charakterisiert durch die prädiktionsbasierte
Komprimierungscodierung von Videoeinzelbildern mit oder ohne Intra-
und/oder Interframebewegungskompensationscodierung.
-
In
einem typischen MPEG-Codierer wird ein empfangener Videostrom, der
eine Mehrzahl von Videoeinzelbildern aufweist, entsprechend einer
vorbestimmten Bildergruppenstruktur (GOP) codiert. Das heißt, der empfangene
Videostrom wird codiert, um eine GOP zu erzeugen, die aufweist z.
B. ein intracodiertes Einzelbild (I-Frames), gefolgt von einem oder
mehreren vorwärts
vorhergesagten codierten Einzelbildern (P-Frames), und bidirektionalen
(d. h. vorwärts
und rückwärts) vorhergesagten
Einzelbildern (B-Frames).
-
Unglücklicherweise
können,
da die Bewegungskompensationstechniken nicht perfekt sind, vorhergesagte
Einzelbilder oder Bilder an unerwünschten visuellen Artefakten
leiden, wie z. B. die Fehlerausbreitung, die reduzierte Aufbereitung
der Granularität
und dergleichen. Darüber
hinaus leiden die GOP-Strukturen einschließlich solcher vorhergesagter
Einzelbilder ebenso unter solchen Artefakten. Da die Wiedergabetreue
von einzelnen Einzelbildern innerhalb einer GOP-Struktur dazu neigt,
sich nach einem ursprünglichen
I-Frame hoher Qualität
zu verschlechtern, erzeugt die Anzei ge einer Sequenz von GOPs ein
zyklisch visuelles Artefakt, das als "Atmen" bekannt ist, wobei die zyklische Natur
des Artefakts mit der Länge
der angezeigten GOPs in Beziehung steht.
-
Daher
ist es wünschenswert,
ein Verfahren und eine entsprechende Vorrichtung bereitzustellen,
die den oben beschriebenen "Atmungs"-Artefakt reduziert.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
Erfindung wird in den angefügten
Ansprüchen
ausgeführt.
Ein Aspekt der Erfindung stellt ein Verfahren zum Betreiben eines
Systems zur Verfügung
für das
Decodieren einer Sequenz von komprimierten Videoinformationseinzelbildern,
die entsprechend einer Bildergruppen- (GOP-) Informationsstruktur
angeordnet sind, wobei das Verfahren visuelle Artefakte reduziert
und die Schritte aufweist: Bestimmen eines relativen Niveaus der
Verschlechterung der Wiedergabetreue von einem oder mehreren Einzelbildern
innerhalb einer Mehrzahl der komprimierten Videoinformationseinzelbilder
innerhalb einer GOP, Berechnen eines Wiedergabetreueverschlechterungsausgleichsparameters
unter Verwendung des bestimmten relativen Wiedergabeverschlechterungsniveaus
und Anwenden des Güteverschlechterungsausgleichs
unter Verwendung des berechneten Güteverschlechterungsgradausgleichsparameters
an ein oder mehrere komprimierte Videoinformationseinzelbilder innerhalb
der GOP, so daß die
Varianz im Gütegrad
zwischen Einzelbildern auf ein Grenzwertniveau reduziert wird.
-
Ein
anderer Aspekt der Erfindung stellt ein System zur Verfügung für das Decodieren
einer Sequenz von komprimierten Videoinformationseinzelbildern,
die entsprechend einer Bildergruppeninformationsstruktur (GOP) angeordnet
sind, das aufweist: einen Videoprozessor für das Bearbeiten von Videoinformationseinzelbildern
in Antwort auf ein Steuersignal und einen Controller für das Erzeugen
des Steuersignals in Antwort auf Indizien der Güte der Videoinformationseinzelbilder,
wobei der Controller ein relatives Güteverschlechterungsgradniveau
von einem oder mehreren Einzelbildern innerhalb einer Mehrzahl der
komprimierten Videoinformationseinzelbilder innerhalb einer GOP
bestimmt, und unter Verwendung des bestimmten relativen Gütegradverschlechterungsniveaus
an einen Gütegradverschlechterungsausgleichsparameter
berechnet, wobei der Videoprozessor einen Gütegradverschlechterungsausgleich
unter Verwendung des berechneten Gütegradverschlechterungsausgleichsparameters
bei einem oder mehreren Videoinformationseinzelbildern durchführt, so daß die Varianz
in der Güteverschlechterung
zwischen den Einzelbildern auf ein Grenzwertniveau reduziert wird.
-
Eine
Ausführungsform
der Erfindung weist ein Verfahren und eine Vorrichtung für das Reduzieren
von Atmungs-Artefakten in MPEG-artigen Videoinformationsströmen auf
unter Einsetzen einer Gruppe von Bildern (GOP-) Struktur oder einer
Gruppe von Einzelbildern (GOF-) Struktur.
-
Genauer
gesagt weist in einem System für
die Verarbeitung einer Sequenz von komprimierten Bildern, die entsprechend
einer Gruppe von Bildern Informationsstruktur (GOP) angeordnet ist,
ein Verfahren nach einer Ausführungsform
der Erfindung für
das Reduzieren von Inter-GOP-visuellen
Artefakten die Schritte auf: Bestimmen eines entsprechenden Grades
der Wiedergabeverschlechterung für
einen ersten Typ eines Informationseinzelbildes innerhalb der GOP- Informationsstruktur,
Bestimmen eines entsprechenden Grades der Wiedergabetreueverschlechterung
für einen
zweiten Typ eines Informationseinzelbildes der GOP-Informationsstruktur,
Berechnen unter Verwendung der bestimmten Niveaus der Güteverschlechterung
eines Verschlechterungsausgleichsparameters und Verarbeiten des
ersten oder des zweiten Typs von Informationseinzelbildern unter
Verwendung der berechneten Verschlechterungsausgleichsparameter,
so daß der
erste und der zweite Typ von Informationseinzelbildern Niveaus der
Wiedergabeverschlechterung innerhalb eines vorbestimmten Bereichs
haben.
-
KURZE BESCHREIBUNG DER
FIGUREN
-
Die
Lehren der vorliegenden Erfindung können leicht unter Beachtung
der folgenden detaillierten Beschreibung in Verbindung mit den begleitenden
Zeichnungen verstanden werden, in denen:
-
1A–1C graphische
Darstellungen von relativen Einzelbild-per-Einzelbild-Verschlechterungen
von einem oder mehreren Parametern darstellen, die mit der Videowiedergabetreue
innerhalb einer Gruppe aus Bildern (GOP) verknüpft sind,
-
2 eine Ausführungsform
eines MPEG-artigen Decoders entsprechend der Erfindung darstellt,
-
3 eine Verschlechterungsausgleichsroutine
gemäß der Erfindung
für das
Reduzieren von Atmungs-Artefakten in einem Videosignal darstellt,
-
4 eine Verschlechterungsausgleichsroutine 400 gemäß der Erfindung
darstellt,
-
5 ein Flußdiagramm
einer GOP-Ausgleichsroutine gemäß der Erfindung
darstellt,
-
6 ein Flußdiagramm
einer Verschlechterungsausgleichsroutine entsprechend der Erfindung
darstellt,
-
7 ein Flußdiagramm
einer Verschlechterungsausgleichsroutine gemäß der Erfindung darstellt,
die geeignet ist für
das Reduzieren von Atmungsartefakten innerhalb des Kontexts eines
speicherbeschränkten Decoders
und
-
8 ein Flußdiagramm
einer Blockniveaukorrektursteuerroutine gemäß der Erfindung darstellt.
-
Um
das Verständnis
zu erleichtern, wurden identische Bezugszahlen verwendet, wo dies
möglich
war, um identische Elemente, die in den Figuren gemeinsam gezeigt
sind, zu bezeichnen.
-
DETAILLIERTE BESCHREIBUNG
-
Die
Erfindung wird in dem Kontext eines Videodecoders, anschaulich ein
MPEG-2-Videodecoder,
innerhalb eines digitalen Fernsehempfängers (DTV), anschaulich ein
ATSC-Fernsehempfänger, beschrieben. Es
versteht sich jedoch für
den Fachmann, daß die
Erfindung bei jedem videoverarbeitenden System, einschließlich denjenigen
Systemen, die an DVB-, MPEG-1- und
andere Informationsströme
angepaßt
sind, angewendet werden kann.
-
Die
Erfindung wird ausdrücklich
hauptsächlich
innerhalb des Kontexts eines MPEG-artigen Decodierungssystems beschrieben,
das einen komprimierten Videoinformationsstrom IN empfängt und
decodiert, um einen Videoausgangsstrom OUT zu erzeugen. Die Erfindung
arbeitet, um ein "Atmungs"-Artefakt zu reduzieren,
das im Falle eines Video- oder Bildverarbeitungssystems, das eine
Group-of-Pictures- (GOP-) Informationsstruktur benutzt, durch Intra-GOP-Veränderungen
der visuellen Wiedergabetreuegrade verursacht wird, die zu einer
Modulation der visuellen Wiedergabetreue mit der GOP-Darstellungsrate
führt.
Es versteht sich jedoch für
den Fachmann, daß die
Erfindung eine breite Anwendungsmöglichkeit bei anderen Informationssystemen
hat mit unterschiedlichen Interframewiedergabetreuegraden innerhalb
einer Group-of-Pictures- (GOP-) oder einer Group-of-Frames- (GOF-)
Informationsstruktur.
-
Die 1A–1C stellen
graphische Darstellungen von relativer Frame-per-Frame-Verschlechterung von
einem oder mehreren Parametern dar, die mit der Videowiedergabetreue
innerhalb einer Group of Pictures (GOP) verknüpft ist. In dem Ausmaß, in dem
solch eine Frame-per-Frame-Verschlechterung
innerhalb einer GOP zu einem periodischen Anstieg und/oder Abfall
in der visuellen Wiedergabetreue mit einer Periode näherungsweise
der GOP-Periode führt,
wird der vorher erwähnte
Atmungs-Artefakt produziert. Wenn der periodische Anstieg und/oder
Abfall in der visuellen Wiedergabetreue ausreichend groß ist, wird
der Atmungsartefakt für
einen Betrachter erkennbar, wenn die Videosequenz einschließlich der
GOP auf einer Anzeigeeinrichtung dargestellt wird.
-
Man
betrachte beispielsweise den Fall eines Darstellungs-/Anzeigesystems
mit 30 Einzelbildern pro Sekunde (fps), das auf einen Videoinformationsstrom
reagiert, der eine MPEG-artige Videoinformation aufweist, die entsprechend
einer 15-Einzelbild-GOP angeordnet ist, die signifikant Intra-GOP-Veränderungen
in der visuellen Wiedergabetreue zeigt (z. B. große Quantisierungsunterschiede
zwischen I- und B-Frames). Da die GOP ein einzelnes I-Frame und
viele B-Frames aufweist, beginnt jede halbe Sekunde (15-Einzelbilder-GOP/30
fps) von angezeigtem Video mit einem I-Frame hoher Wiedergabetreue,
auf das eine Anzahl von B-Frames (und typischerweise P-Frames) mit
relativ niedriger Wiedergabetreue folgen. Diese angezeigte Sequenz
von Bildern kann eine pulsierende (d. h. atmende) Charakteristik
mit einer Periode von 1/2 Sekunde aufgrund der Interframewiedergabetreuevariationen
innerhalb der GOP zeigen.
-
Die
Erfinder haben bestimmt, daß die
Hauptgründe
der Atmungs-Artefakte sind: 1) Interframeunterschiede in den Quantisierungsgraden
innerhalb einer GOP, 2) die Ausbreitung von Halb-Pel-Bewegungsschätzungsfehlern innerhalb einer
GOP und 3) Wiedergabetreueanomalien, die von einem Decoder, der
eine GOP verarbeitet, eingeführt
werden (oder die charakteristisch für diesen sind). Ausführungsformen
der Erfindung, die alle drei Gründe
der Atmungs-Artefakte ansprechen, werden beschrieben.
-
Die 1A stellt eine graphische
Darstellung einer Einzelbild-per-Einzelbild-Verschlechterung der Video-"Schärfe" innerhalb einer
GOP dar, die ein I-Frame gefolgt von 10 P-Frames aufweist. Schärfe ist eine Funktion der Hochfrequenzantwort,
die kritisch für
die genaue Darstellung von Kanten und anderen Helligkeitsübergängen mit
hohem Kontrast ist. Ausdrücklich
gesagt stellt 1A eine
Sequenz von drei GOPs (bezeichnet mit 101) und eine entsprechende
Diagrammdarstellung eines Schärfegrades
von jedem Einzelbild in den GOPs dar (bezeichnet durch die Bezugszahl 102).
Man sieht, daß die
Schärfe
eines Videobildes für
jedes I-Frame in den GOPs maximal ist mit einem entsprechenden Abfall
in der Schärfe
für jedes
nachfolgende P-Frame. Ein Atmungs-Artefakt wird erzeugt aufgrund
der graduellen Verschlechterung und des plötzlichen Anstiegs in dem Schärfegrad
mit einer Rate, die der GOP-Darstellungsrate entspricht.
-
In 1A wird der entsprechende
Abfall in der Schärfe
für jedes
nachfolgende P-Frame durch die Halb-Pel-Interpolation innerhalb
des Bewegungskompensationsschaltkreises eines Decoders, der die
GOPs verarbeitet, veranlaßt.
Der Halb-Pel-Interpolator arbeitet derart, daß er die vorhergesagten Makroblöcke oder Pel-Gruppierungen
tiefpassfiltert. Die relativ lineare Verschlechterung des Schärfegrades,
der in 1A dargestellt,
beruht auf der Verwendung von P-Frames innerhalb der GOPs und einer
Annahme, daß der Halb-Pel-Interpolationsfehler
näherungsweise
konstant ist. Die schattierten Abschnitte der Diagrammdarstellung
weisen ein statistisches Fehlerband auf, in das jedes P-Frame fällt. Es
muß bemerkt
werden, daß,
während
jedes I-Frame (I1, I2 und
I3) als mit demselben maximalen Schärfegrad
gezeigt ist, der Schärfegrad
der I-Frames ursprünglich
basierend auf vielen Faktoren, einschließlich eines Bitbudgets, das
einer GOP zugewiesen wird, von einem Geschwindigkeitscontroller
des Codierers bestimmt wird. Der Grad der Schärfe und der allgemeinen visuellen
Wiedergabetreue eines I-Frames variiert, wenn dies notwendig ist,
abhängig
von den Anforderungen des Codierers.
-
1B ist eine graphische Darstellung
einer Verschlechterung von Einzelbild per Einzelbild der Videoschärfe innerhalb
einer 12-Einzelbild-GOP, die ein ursprüngliches I-Frame gefolgt von
einer sich wiederholenden Sequenz aus drei P-Frames und einem B-Frame
aufweist. Da jedes P-Frame
unter Verwendung des unmittelbar vorhergehenden Ankerframes (I-
oder P-Frame) vorhergesagt wird, ist eine relative lineare Verschlechterung
in dem Schärfegrad
für die
P-Frames gezeigt. Da jedoch jedes B-Frame unter Verwendung der Ankerframes
(I-Frame oder P-Frame), die das B-Frame umgeben, vorhergesagt wird, sind
zwei Halb-Pel-Interpolationen mit jedem B-Frame verknüpft. Daher
wird jedes B-Frame mit einem Schärfegrad
gezeigt, der um ein halbes Pel niedriger ist als das am wenigsten
genaue Referenzeinzelbild, das verwendet wird, um das B-Frame vorherzusagen.
Man sieht, daß die
Schärfe
eines Videobildes bei einem Maximum für jedes I-Frame in den GOPs
ist mit einem variierenden Verschlechterungsumfang der Schärfe für jedes
nachfolgende Einzelbild in einer GOP. Ein Atmungs-Artefakt wird
erzeugt aufgrund des variierenden Verschlechterungsumfangs und dem
starken Anstieg in dem Schärfegrad
mit einer Rate, die der GOP-Anzeigerate
entspricht.
-
In 1B wird das erste I-Frame
(I1) mit einem maximalen (max) Schärfegrad
dargestellt. Das erste P-Frame, der diesem I-Frame folgt, ist mit
einem Schärfegrad
von 1/2 Pel niedriger als das Maximum dargestellt. Die drei B-Frames,
die unter Verwendung des ersten I-Frames und des ersten P-Frames
vorhergesagt wurden, sind mit Schärfegraden von einem halben
Pel geringer als der Schärfegrad
des P-Frames dargestellt. In ähnlicher
Weise hat das zweite P-Frame nach dem ersten I-Frame einen Schärfegrad
eines halben Pel unter dem Schärfegrad
des ersten P-Frames, aus dem es vorhergesagt wurde. Somit haben
die B-Frames, die unter Verwendung des ersten P- Frames und des zweiten P-Frames vorhergesagt
wurden, Schärfegrade,
die ein halbes Pel geringer als der Schärfegrad des zweiten P-Frames
sind.
-
1C ist eine graphische Darstellung
eines Frame-per-Frame-Quantisierungsgrades (d. h. Granularität) innerhalb
einer 12-Frame-GOP, die ein ursprüngliches I-Frame gefolgt von
einer sich wiederholenden Sequenz von drei B-Frames und einem P-Frame
aufweist. Da I-Frames typischerweise mit einem feineren Quantisierungsgrad
als P-Frames codiert werden, und da P-Frames typischerweise mit
einem feineren Quantisierungsgrad als B-Frames codiert werden, stellt 1C die Veränderung
in dem Quantisierungsgrad von Videobildern, die unter Verwendung
der GOP-Struktur erzeugt wurden, dar. Man erkennt durch Betrachtung,
daß der
Quantisierungsgrad bei einem feinen Grad für das ursprüngliche I-Frame (I1)
startet und sich auf einen gröberen
Grad für
die B-Frames und zu einem weniger groben Grad für die B-Frames verschlechtert.
Somit wird ein Videobild, das unter Verwendung der GOP-Struktur,
die in 1C dargestellt
ist, einschließlich
der entsprechenden Quantisierungsgranularitätsgraden, hergestellt wird,
einen Anstieg und einen Abfall in der Wiedergabetreue basierend
auf dem Frametyp innerhalb der GOP-Struktur, der verwendet wird,
um ein einzelnes Videoframe zu erzeugen, haben. Diese Veränderung
oder Modulation der Wiedergabetreue trägt ebenso zu dem vorher erwähnten Atmungs-Artefakt
bei.
-
2 stellt eine Ausführungsform
eines MPEG-artigen Decoders 200 gemäß der Erfindung dar. Im Grunde
genommen empfängt
der Decoder 200 von 2 einen
komprimierten Videoinformationsstrom IN und decodiert ihn, um einen
Videoausgangsstrom OUT zu erzeugen. Der Videoausgangsstrom OUT ist
geeignet für
die Kopplung zu beispielsweise einem Anzeigetreiberschaltkreis innerhalb
einer Darstellungseinrichtung (nicht gezeigt). Der MPEG-artige Decoder 200 untersucht
Parameter, welche die Wiedergabetreue anzeigen, die mit den Informationsframes
(z. B. Video- oder Bildframes) innerhalb des komprimierten Videoinformationsstroms
verknüpft
sind, um zu bestimmen, ob ein resultierender dekomprimierter Informationsstrom
(z. B. ein Videostrom) wahrscheinlich den oben beschriebenen Atmungs-Artefakt
zeigen wird. In Antwort auf eine Bestimmung, daß wahrscheinlich ein Atmungs-Artefakt
vorhanden ist, modifiziert der MPEG-artige Decoder 200 einen
decodierten Informationsstrom in einer Art und Weise, die dazu neigt,
den Atmungs-Artefakt abzuschwächen.
Mit Vorteil kann die Erfindung ohne irgendein Wissen betreffend
das Verhalten des Codierers, der den komprimierten Videostrom IN
(außer
der Information innerhalb des komprimierten Videostroms IN) arbeiten.
-
Der
MPEG-artige Decoder 200 von 2 weist
einen Videodecoder 210, einen Videoprozessor 220 und
einen Controller 230 auf. Der Videodecoder 210 arbeitet
in einer relativ standardisierten Art und Weise, um den komprimierten
Videoinformationsstrom IN zu empfangen und zu decodieren, um einen
dekomprimierten Videostrom V1 zu erzeugen. Der dekomprimierte Videostrom
V1 ist anfällig
für Atmungs-Artefakte,
die durch Interframewiedergabetreuevariationen innerhalb GOPs und
durch Anomalien (oder Charakteristiken) des Videodecoders 210 selbst,
wie oben beschrieben wurde, verursacht werden. Der dekomprimierte
Videostrom V1 ist mit dem Videoprozessor 220 und optional
mit dem Controller 230 verbunden.
-
Der
Videoprozessor 220 paßt
in Antwort auf ein Verschlechterungssteuersignal C, das von dem
Controller 230 erzeugt wird, einen Verschlechterungsgrad
von einem oder mehreren Einzelbildern bzw. Frames innerhalb des
decodierten Videostroms V1 an, um den Videoausgangsstrom OUT zu
erzeugen, beispielsweise einen digitalen Basisbandvideostrom.
-
Der
Videoprozessor 220 arbeitet in einem von verschiedenen
Verschlechterungsmodi, wie im folgenden detaillierter erörtert wird.
Kurz gesagt injiziert in einem Rauschinjizierungsarbeitsmodus der
Videoprozessor 220 eine Rauschmenge (bestimmt durch den
Controller 230) in ein Bildframe (z. B. ein I-Frame) höherer Wiedergabetreue,
das berechnet ist, um einen effektiven Quantisierungsgrad des Bildframes
höherer
Wiedergabetreue zu reduzieren. In diesem Betriebsmodus werden Atmungs-Artefakte,
die durch größere Unterschiede
in den Interframequantisierungsgraden (z. B. nach 1C) induziert wurden, durch Reduzieren
der Interframequantisierungsgradunterschiede auf ein Grenzwertdifferenzniveau
reduziert. In einem Filterbetriebsmodus legt der Videoprozessor
selektiv die Tiefpassfilterung (LPF) und die Hochpassfilterung (HPF)
an ein oder mehrere Bildframes oder Bildframetypen innerhalb einer
GOP an. In diesem Betriebsmodus werden Atmungs-Artefakte, die durch
das Ausbreiten von Vorhersagungsfehlern induziert werden, durch
Filtern von jedem Bildframe in einer Art und Weise, die dazu neigt,
die Größe der Schärfeverschlechterung
zwischen allen Bildframes innerhalb einer GOP auszugleichen, reduziert.
Andere Betriebsmodi werden unten beschrieben.
-
Der
Controller 230 empfängt
ein die Wiedergabetreue anzeigendes Parametersignal DATA von dem Videodecoder 210,
das z. B. Quantisierungsgrade, Frametypen, GOP-Positionen und andere
Informationen betreffend Videoframes innerhalb des komprimierten
Videoeingangsstroms anzeigt. Optional empfängt der Controller 230 den
dekomprimierten Videostrom V1. Zusätzlich empfängt der Controller 230 optional
ein Signal SOURCE ERROR, das Fehler anzeigt, die an der Quelle (d.
h. an dem Codierer) an den komprimierten Videoinformationsstrom
IN weitergegeben werden.
-
Der
Controller 230 verarbeitet das Wiedergabetreue anzeigende
Parametersignal DATA und optional den dekomprimierten Videostrom
V1, um einen Grad der visuellen Wiedergabetreueverschlechterung
zu bestimmen, der mit einem oder mehreren Bildframes oder Bildframetypen
innerhalb einer oder mehreren GOPs verknüpft ist, die den komprimierten
Videoinformationsstrom IN enthalten.
-
Der
Controller 230 bestimmt dann, ob die Variationen in den
Verschlechterungsgraden des Bildframes oder des Bildframetyps derart
sind, daß wahrscheinlich
ein Atmungs-Artefakt durch eine nachfolgende Darstellung des dekomprimierten
Videostroms V1 erzeugt wird. Wenn die identifizierten Verschlechterungsvariationen wahrscheinlich
einen Atmungs-Artefakt erzeugen (z. B. ein Grenzwertdifferenzniveau überschreiten),
dann berechnet der Controller 230 ein oder mehrere Verschlechterungsausgleichsparameter,
die dann mit dem Videoprozessor 220 als Verschlechterungssteuersignal
C gekoppelt werden. Der Betrieb des Controllers 230 wird unten
unter Bezug auf 3 detaillierter
erörtert.
-
In
der beispielhaften Ausführungsform
des MPEG-artigen Decoders 200 von 2 weist der Videodecoder 210 ein
Eingangspufferspeichermodul 211, ein variable-Längendecoder-
(VLD-) Modul 212, ein inverses Quantisierungsmodul (IQ) 213,
ein inverses diskretes Kosinustransformationsmodul (IDCT) 214,
einen Summierer 215, ein Bewegungskompensationsmodul 216,
ein Ausgangspuffermodul 218 und ein Ankerframespeichermodul 217 auf.
-
Das
Eingangspufferspeichermodul 211 empfängt den komprimierten Videostrom
IN, beispielsweise einen variablen längencodierten Bitstrom, der
z. B. ein Fernsehsignal hoher Definition (HDTV) oder ein Standarddefinitionsfernsehsignal
(SDTV), darstellt, das von einem Transportdemultiplexer/Decodierschaltkreis (nicht
gezeigt) ausgegeben wird. Das Eingangspufferspeichermodul 211 wird
verwendet, um zeitweilig den empfangenen komprimierten Videostrom
IN zu speichern, bis das variable Längendecodiermodul 212 bereit ist,
die Videodaten für
die Verarbeitung zu akzeptieren. Das VLD 212 hat einen
Eingang, der mit einem Datenausgang des Eingangspufferspeichermoduls 211 verbunden
ist, um z. B. die gespeicherten variablen längencodierten Videodaten als
Datenstrom S1 abzurufen.
-
Das
VLD 212 decodiert die abgerufenen Daten, um einen Bitstrom
S2 konstanter Länge,
der quantisierte Vorhersagefehler-DCT-Koeffizienten aufweist, und
einen Bewegungsvektorstrom MV zu erzeugen. Das IQ-Modul 213 führt eine
inverse Quantisierungsoperation auf dem Bitstrom S2 konstanter Länge durch,
um einen Bitstrom S3 zu erzeugen, der quantisierte Vorhersagefehlerkoeffizienten
in der Standardform aufweist. Das IDCT-Modul 214 führt eine
inverse diskrete Kosinustransformationsoperation auf dem Bitstrom
S3 durch, um einen Bitstrom S4 zu erzeugen, der Vorhersagefehler
auf einer Pixel-per-Pixel-Basis aufweist. Diese Vorhersagefehler
(und die verknüpfte
Bildverschlechterung) werden durch codiererseitige Quantisierung
der Pixelinformation verursacht, wie oben unter Bezug auf 1C erörtert wurde.
-
Der
Summierer 215 addiert den Pixel-per-Pixel-Vorhersagefehlerstrom
S4 zu einem bewegungskompensierten Vorhersagepixelwertstrom S6,
der durch das Bewegungskompensationsmodul 216 erzeugt wird. Der
bewegungskompensierte vorhergesagte Pixelwertstrom S6 wird eine
Vorhersagefehlerkomponente (und verknüpfte Schärfeverschlechterung) aufweisen,
die mit der Anzahl von vorherigen Vorhersagen, die verwendet wurden,
um den gegenwärtigen
Pixelwert zu erzeugen, wie oben unter Bezug auf die 1A–1B diskutiert wurde, in Bezug
steht. Somit ist der Ausgang des Summierers 215 in der
exemplarischen Ausführungsform
ein Videostrom S5, der rekonstruierte Pixelwerte aufweist, die durch
sowohl Quantisierungsfehler als auch durch kumulative Vorhersagefehler
verschlechtert wurden, die oben in Bezug auf die 1A–1C erörtert wurden.
-
Der
Videostrom S5 (einschließlich
Quantisierungs- und Vorhersagefehlern), der von dem Summierer 215 erzeugt
wird, ist mit dem Ankerframespeichermodul 217 und dem Ausgangspuffermodul 218 verbunden. Auf
das Ankerframespeichermodul 217 wird auf den Signalpfad
S7 von dem Bewegungskompensationsmodul 216 zugegriffen.
Das Bewegungskompensationsmodul 216 verwendet ein oder
mehrere gespeicherte Ankerframes (z. B. das I-Frame oder das P-Frame,
das letzte Frame des Videos, das an dem Ausgang des Summierers 215 erzeugt
wird) und das Bewegungsvektorsignal MV, das von der VLD 212 empfangen
wird, um die Werte für
den bewegungskompensierten vorhergesagten Pixelwertstrom S6 zu berechnen.
-
Der
Videodecoder 210, der oben beschrieben wurde, produziert
ebenso ein Wiedergabetreue anzeigendes Parametersignal DATA, das
beispielsweise Quantisierungsgrade, Frametypen, GOP-Positionen und andere
Informationen betreffend Videoframes innerhalb des komprimierten
Videoeingabestromendes anzeigt. Genauer gesagt werden diese und
andere Wiedergabetreue anzeigende Parameter aus den komprimierten Videoinformationsstrom
IN in einer standardmäßigen Art
und Weise durch die VLD 212 extrahiert. Wenn beispielsweise
der komprimierte Videoinformationsstrom IN einen MPEG-Videostrom
aufweist, untersucht das VLD 212 die Information, die in
einer oder mehreren der Videosequenzkopfzeilen, der GOP-Kopfzeile,
der Bildkopfzeile, der Schnittslicekopfzeile und der Makroblockkopfzeile
enthalten ist. Die extrahierte Information ist mit dem Controller 230 als
das Wiedergabetreue anzeigende Parametersignal DATA verbunden.
-
In
der beispielhaften Ausführungsform
des MPEG-artigen Decoders 200 in 2 weist der Controller 230 einen
Mikroprozessor 234 sowie Speicher 238 für das Speichern
von zumindest einer Verschlechterungsausgleichsroutine 300,
einer Quantisierungsausgleichsroutine 400 oder einer Frequenzausgleichsroutine 500 auf.
Die Funktion dieser Routinen wird unten unter Bezug auf die 3–5 im
Detail erläutert.
Der Mikroprozessor 234 arbeitet mit einem konventionellen
Unterstützungsschaltkreis 236,
wie z. B. Energieversorgungen, Taktschaltkreisen, Cachespeichern
und dergleichen sowie auch Schaltkreisen, die bei der Ausführung der Softwareroutinen
assistieren, zusammen. Es wird in Betracht gezogen, daß einige
der Prozeßschritte,
die hier als Softwareprozesse beschrieben werden, innerhalb von
Hardware, z. B. als Schaltkreise, die mit dem Mikroprozessor 234 zusammenarbeiten,
um verschiedene Schritte durchzuführen, implementiert werden
können. Der
Controller 230 enthält
ebenso Eingabe-/Ausgabeschaltkreise 232, die eine Schnittstelle
zwischen dem Mikroprozessor 234, dem Videodecoder 210 und
dem Videoprozessor 220 bilden. Obgleich der Controller 230 als
Allzweckcomputer dargestellt ist, der programmiert ist, um spezifische
Steuerfunktionen in Übereinstimmung
mit der vorliegenden Erfindung durchzuführen, kann die Erfindung in
Hardware als applikationsspezifischer integrierter Schaltkreis (ASIC)
implementiert sein. Darüber
hinaus kann der Controller 230 funktional mit dem Videoprozessor 220 oder
dem Videodecoder 210 oder mit beiden kombiniert sein. In
der Tat wird von den Erfindern in Betracht gezogen, daß ein einzelner
integrierter Schaltkreis, der im wesentlichen die gesamte Funktionalität des MPEG-artigen
Decoders 200 von 2 aufweist,
als ein einzelner integrierter Schaltkreis implementiert werden
wird.
-
3 stellt eine Verschlechterungsausgleichsroutine 300 gemäß der Erfindung
für das
Reduzieren von Atmungs-Artefakten in einem Videosignal dar. Die
Verschlechterungsausgleichsroutine 300 kann als Steuerroutine
innerhalb des Controllers 230 oder, in dem Fall, daß der Controller 230 keine
Universalberechnungseinrichtung, wie dargestellt, aufweist, als
eine logische Funktion zwischen zusammenarbeitenden Modulen des MPEG-artigen
Decoders 200 von 2 implementiert
sein. In die Verschlechterungsausgleichsroutine 300 wird
in Schritt 320 eingetreten, wenn z. B. der Videodecoder 210 von 2 beginnt, den komprimierten
Videoinformationsstrom IN zu empfangen. Die Routine 300 setzt
dann mit den Schritten 304 fort.
-
In
Schritt 304 werden die relativen Verschlechterungsgrade
von empfangenen Videoframes oder Videoframetypen bestimmt. Die relativen
Verschlechterungsgrade werden bestimmt durch Bewerten von ein oder
mehreren Parametern, die mit jedem Videoframe oder Videoframetyp
verknüpft
sind. Ausdrücklich
gesagt können
ein oder mehrere der verschiedenen Bild- oder Videoframeparameter,
wie z. B. der Framequantisierungsgrad (z. B. der Durchschnitt von
Framemakroblöcken),
der Frametyp, die Frameposition innerhalb der GOP, das Framespektrum
und dergleichen analysiert werden, um einen Verschlechterungsgrad
zu bestimmen, der mit einem bestimmten Frame verknüpft ist.
Der Verschlechterungsgrad, der mit einem bestimmten Video- oder
Bildframe verknüpft
ist, wird dann mit beispielsweise einem nominellen oder Durchschnitts-Verschlechterungsgrad,
der mit den Frames, die eine GOP aufweisen, oder mit einer Untergruppe
der Frames, die eine GOP aufweisen, verglichen. Auf diese Art und
Weise wird eine Verschlechterungsvarianz eines bestimmten Einzelbildes
aus einem Durchschnitt einer GOP oder einem Durchschnitt einer Unter-GOP
bestimmt. Die Routine 300 setzt dann mit Schritt 306 fort.
-
In
Schritt 306 wird der Verschlechterungsgrad und/oder die
Verschlechterungsvarianz von einigen oder allen Frames, die in Schritt 304 bewertet
wurden, verwendet, um einen oder mehrere Verschlechterungsausgleichsparameter
für ein
oder mehrere Frames in der GOP zu berechnen. Beispielsweise werden
diejenigen Frames innerhalb der GOP mit relativ hoher Wiedergabetreue
(d. h. mit relativ niedriger Verschlechterung) entsprechend dem
einen oder den mehreren Frameparametern, die in Schritt 304 analysiert
wurden, verschlechtert, so daß die
Interframevarianz in der Wiedergabetreueverschlechterung innerhalb
der GOP auf ein Niveau beschränkt
ist bei oder unterhalb eines Niveaus, das zu einem bemerkbaren Atmungs-Artefakt
führt. Die
Routine 300 setzt dann mit Schritt 308 fort.
-
In
Schritt 308 werden die Verschlechterungsausgleichsparameter,
die in Schritt 306 berechnet wurden, an ein oder mehrere
geeignete Einzelbilder innerhalb der GOP-Struktur angewendet, so
daß die
Interframeverschlechterungsvarianz innerhalb der GOP-Struktur geeignet
begrenzt wird. Da die Verschlechterung der Wiedergabetreue eines
Video- oder Bildframes typischerweise einfacher (hinsichtlich der
Verarbeitungskomplexität
und dergleichen) ist, werden geeignete Frames typischerweise diejenigen
Frames mit einem relativ hohen Wiedergabetreueniveau aufweisen.
Im Falle eines Wiedergabetreueparameters, der der Verstärkung zugänglich ist,
können
jedoch geeignete Frames diejenigen Frames mit einem relativ niedrigen
Wiedergabetreuegrad aufweisen. Die Routine 300 setzt dann
mit Schritt 310 fort.
-
In
Schritt 310 wird eine Abfrage durchgeführt, ob noch mehr Frames zu
verarbeiten sind. Wenn die Abfrage in Schritt 310 bestätigend beantwortet
wird, dann setzt die Routine 300 mit Schritt 304 fort.
Wenn die Abfrage in Schritt 310 negativ beantwortet wird,
dann setzt die Routine 300 mit Schritt 312 fort,
wo sie verlassen wird.
-
Es
wird bemerkt, daß eine
Technik, die verwendet wird, um Verschlechterungsgrade auszugleichen, es
ist, ein oder mehrere Video- oder Bildframes oder Frametypen mit
relativ hoher Wiedergabetreue weiter zu verschlechtern. Es wurde
von den Erfindern bestimmt, daß der
Abfall in der Wiedergabetreue von z. B. einem I-Frame in einer GOP
von einem Betrachter weit weniger bean standet wird als der Atmungs-Artefakt,
der durch die Funktion der Erfindung effektiv reduziert oder entfernt
wird. Somit wird in dem Ausmaß,
in dem ein Kompromiß hinsichtlich
des Veränderns
oder des selektiven Reduzierens der visuellen, auditiven oder der
Wiedergabetreue anderer Information innerhalb eines oder mehrerer
Frames einer GOP einer GOF gemacht wird, der resultierende verarbeitete
Informationsstrom (z. B. der Videoausgabestrom OUT) eine bessere
Darstellung zu dem Informationskonsumenten liefern.
-
Die
Erfindung zieht die Verwendung von einem oder mehreren Verfahren
für das
Bestimmen der Verschlechterungsgrade (Schritt 304), der
Berechnung der Verschlechterungsausgleichsparameter (Schritt 306) und
das Anwenden der Verschlechterungsausgleichsparameter (Schritt 308)
in Betracht. In einer Ausführungsform
der Erfindung wird die Verschlechterungsausgleichsroutine 300 von 3 ausdrücklich angepaßt, um die Interframevariationen
in den Quantisierungsgraden innerhalb einer GOP auf im wesentlichen
ein Grenzwertquantisierungsvariationsniveau zu reduzieren. Die Quantisierungsausgleichsausführungsform
ist insbesondere gut geeignet für
das Reduzieren von Atmungs-Artefakten, die mit Quantisierungsgradvariationen
zwischen unterschiedlichen Typen (d. h. I-Frame, P-Frame oder B-Frame)
von Video- oder Bildframes in Beziehung stehen und wird unten unter
Bezug auf 4 beschrieben.
-
In
einer anderen Ausführungsform
der Erfindung wird die Verschlechterungsausgleichsroutine 300 von 3 angepaßt, um die Interframevariationen
in dem Frequenzraum innerhalb einer GOP auf einen Wert unterhalb
eines Spektrumvariationsgrenzniveaus zu reduzieren. Die Frequenzantwortausgleichsausführungsform
ist insbesondere gut geeignet für
das Reduzieren von Atmungs-Artefakten,
die mit der Tiefpassfilterung (d. h. der Reduktion der Bildschärfe), die
vorhergesagten Video- oder Bildframes (d. h. P-Frames oder B-Frames)
aufgrund der Ausbreitung von Bewegungsschätzfehlern vermittelt wird,
in Beziehung stehen, und wird unten in Bezug auf 5 beschrieben.
-
Ein
erstes Verfahren bezieht die Untersuchung eines Quantisierungsgradparameters,
der mit jedem codierten Videoframe verknüpft ist, mit ein. Typischerweise
erzeugen Videodecoder, wie z. B. MPEG-Videodecoder, eine GOP-Struktur
mit einem I-Frame relativ hoher Wiedergabetreue gefolgt von ein
oder mehreren P-Frames und B-Frames mit verringerter Wiedergabetreue.
Es ist wichtig, das ursprüngliche
I-Frame einer GOP-Struktur mit einem hohen Wiedergabetreuegrad zu
codieren, da dieses Frame verwendet wird, um nachfolgende Frames
innerhalb der GOP-Struktur vorherzusagen. Somit wird ein feiner
Quantisierungsgrad typischerweise von dem Quantisierer in dem Codierer
verwendet. Da P-Frames als Ankerframes innerhalb einer GOP-Struktur
verwendet werden (d. h. P-Frames werden verwendet, um nachfolgende
P-Frames und unmittelbar nachfolgende und vorherige B-Frames vorherzusagen),
werden P-Frames mit einem Grad quantisiert, der typischerweise feiner
ist als der Grad, der für
B-Frames verwendet wird. Wie vorher erwähnt wurde, tragen Variationen
im Quantisierungsgrad innerhalb einer GOP zu dem nicht gewünschten
Atmungs-Artefakt bei. Um somit die Quantisierungsgrade innerhalb
einer GOP-Struktur auszugleichen, ist es notwendig, den effektiven Quantisierungsgrad
von z. B. dem I-Frame und/oder einem oder mehreren der P-Frames innerhalb
einer GOP zu erhöhen.
Ein Beispiel des Quantisierungsverschlechterungsausgleichs wird
nun unter Bezug auf 4 beschrieben.
-
4 stellt eine Verschlechterungsausgleichsroutine 400 gemäß der Erfindung
dar. Ausdrücklich
gesagt wird die Verschlechterungsausgleichsroutine 400 von 4 geleitet, um Atmungs-Artefakte in einem
Videosignal, die mit Quantisierungsgradvariationen zwischen einem
I-Frame innerhalb einer GOP und einer Mehrzahl von B-Frames innerhalb
der GOP in Beziehung stehen, zu reduzieren. Die Routine 400 paßt die Quantisierungsgrade
innerhalb einer GOP-Struktur an, so daß die Wiedergabetreue eines
I-Frames innerhalb einer GOP derart reduziert wird, daß sie in
ein Wiedergabetreuegrenzwertniveau von anschaulich gesprochen dem
durchschnittlichen Wiedergabeniveau einer Mehrzahl von B-Frames
innerhalb der GOP fällt.
Die Verschlechterungsausgleichsroutine 400 kann als Steuerroutine
innerhalb des Controllers 230 oder in dem Fall, in dem
der Controller 230 keine Allzweckberechnungseinrichtung
wie dargestellt aufweist, als eine logische Funktion zwischen miteinander
kooperierenden Modulen des MPEG-artigen Decoders 200 von 2 implementiert sein.
-
In
die Verschlechterungsausgleichsroutine 400 wird in Schritt 402 eingetreten,
wenn z. B. der Videodecoder 210 von 2 damit beginnt, den komprimierten Videoinformationsstrom
IN zu empfangen. Die Routine 400 setzt dann mit Schritt 404 fort.
-
In
Schritt 404 wird ein Quantisierungsparameter, der mit einem
I-Frame (Q1) verknüpft ist, bestimmt durch z.
B. Mitteln des Quantisierungsgrades von jedem Makroblock innerhalb
des I-Frames in
der GOP, die verarbeitet wird. Zusätzlich wird ein Quantisierungsparameter,
der mit den B-Frames (QB) verknüpft ist,
bestimmt durch z. B. Mitteln des Quantisierungsgrades von jedem
Makroblock innerhalb eines oder mehrerer B-Frames innerhalb der
GOP, die verarbeitet wird. Die Bestimmung kann in Bezug zu beispielsweise
der MPEG-Variablen quantizer_scale durchgeführt werden, die innerhalb der
Slice-Layer-Kopfzeile eines MPEG-konformen Videostroms gefunden
werden kann und die einen ganzzahligen Wert zwischen 1 und 31 hat
(unter der Annahme, daß eine
konstante Quantisierungstabelle, wie z. B. die voreingestellte Tabelle,
verwendet wird). Es muß erwähnt werden,
daß quantizer_scale
ebenso in der Makroblockschicht einstellbar ist.
-
Die
Routine 400 setzt dann mit Schritt 406 fort, wo
eine Abfrage durchgeführt
wird, ob der Quantisierungsparameter, der mit dem B-Frame QB verknüpft
ist, größer als
die Summe der Quantisierungsparameter, die mit dem I-Frame Q1 plus eines Quantisierungsparametergrenzwerts
QTH verknüpft ist, ist. Das Quantisierungsparametergrenzwertniveau
QTH stellt eine maximale Quantisierungsparameterabweichung
zwischen dem B-Frame-Quantisierungsparameter QB und
dem I-Frame-Quantisierungsparameter
QI dar, der nicht zu einem bemerkbaren,
der Quantisierungsdifferenz zurechenbaren Atmungs-Artefakt führt.
-
Wenn
die Abfrage in Schritt 406 bestätigend beantwortet wird, dann
setzt die Routine 400 mit Schritt 408 fort. Wenn
die Abfrage in Schritt 406 negativ beantwortet wird, dann
setzt die Routine mit Schritt 414 fort, wo eine Abfrage
durchgeführt
wird, ob weitere Frames zu verarbeiten sind. Wenn die Abfrage in
Schritt 414 bestätigend
beantwortet wird, dann setzt die Routine 400 mit Schritt 404 fort.
Wenn die Abfrage in Schritt 414 negativ beantwortet wird,
dann setzt die Routine mit Schritt 416 fort und steigt
aus.
-
In
Schritt 408 wird das Rauschen innerhalb des I-Frames und
der B-Frames charakterisiert. Das heißt, die Rauschmenge, die innerhalb
eines I-Frames mit einem Quantisierungsparameter QI und
innerhalb eines B-Frames mit einem Quantisierungsparameter QB erwartet wird, wird hinsichtlich eines
Quantisierungsgrades (d. h. einer Schrittgröße), die einen Rauschbeitrag
erzeugt, bestimmt.
-
Ein
Verfahren für
das Bestimmen der Menge des zusätzlichen
Rauschens, das erwartet wird innerhalb eines B-Frames, ist es, eine
Leistungsdichtefunktion (pdf) der quantisierten AC-Koeffizienten der
B-Frame-DCT-Koeffizienten abzuschätzen und dann eine auf ähnliche
Weise erhaltene pdf für
das Referenzeinzelbild (z. B. das Ankerframe, das von dem Bewegungskompensationsmodul
verwendet wird) abzuziehen. In der beispielhaften Ausführungsform
wird ein pdf für
jeden der 63 AC-Koeffizienten innerhalb der DCT verwahrt. Da die
Laplace-Verteilung eine gute Näherung
der tatsächlichen
pdf für
einen AC-Koeffizienten ist, verwendet die beispielhafte Ausführungsform
solch eine Laplace-Verteilung als bevorzugte pdf für das Anpassen
der Daten. Der Fachmann erkennt jedoch, daß andere Verteilungsfunktionen
bei der Praktizierung der Erfindung ebenso eingesetzt werden können. Darüber hinaus
kann irgendeines von verschiedenen Verfahren verwendet werden, um
die Daten in die unten beschriebene Laplace-pdf anzupassen.
-
Wie
in Gleichung 1 dargestellt ist, wird die pdf (d. h. pdf(x)) abgeschätzt durch
Berechnen des α,
das die Differenz zwischen der tatsächlichen Wahrscheinlichkeit
von jedem Quantisierungsgrad (berechnet aus den empfangenen Daten)
und der Wahrscheinlichkeit des Quantisierungsgrades, wenn die pdf
die abgeschätzte
pdf wäre,
minimiert.
-
-
Das
heißt,
wie in Gleichung 2 dargestellt ist, Minimieren in Bezug auf α, wenn die
Summe über
alle Quantisierungsbehälter
B läuft,
p(Bi) die relative Frequenz dieses Behälters in
dem empfangenen Signal ist, Bilow und Bihigh die untere und die obere Grenze der
Quantisierungsbehälter
sind (d. h. der kleinste und der größte Wert, der zu diesem Wert
quantisiert würde).
-
-
Angenommen,
die ursprüngliche
(nicht quantisierte) pdf folgt der abgeschätzten Verteilung, dann wird die
pdf des Fehlers berechnet durch Addieren der pdf der Differenz zwischen
dem ursprünglichen
und dem Rekonstruktionsgrad für
jeden Quantisierungsbehälter,
wie in Gleichung 3 dargestellt ist.
wobei
rec(B
i) der Rekonstruktionsgrad für den Behälter B
i ist.
-
Die
error_pdf wird dann mit einer (in ähnlicher Weise erhaltene) error_pdf
für das
Referenzframe verglichen und eine geeignete Rauschmenge wird zu
dem Einzelbild mit niedrigem Rauschen hinzugefügt, um den Atmungs-Artefakt
zu reduzieren. Das hinzugefügte
Rauschen würde
eine ähnliche
(oder geringere) Varianz haben und kann ebenso dieselbe pdf wie
die error_pdf haben.
-
In
Schritt 410 wird das charakterisierte B-Frame-Rauschen
von Schritt 408 auf einen geeigneten Grad skaliert abhängig von
dem Quantisierungsparameter QI, der mit
dem I-Frame verbunden ist. Das heißt, die vorher bestimmte pdf
wird entsprechend dem Verhältnis
QB/QI skaliert,
um eine skalierte pdf zu erzeugen.
-
Die
Routine 400 setzt dann mit Schritt 412 fort, wo
das skalierte, charakterisierte Rauschen in das I-Frame injiziert
wird. In einer Ausführungsform
der Erfindung wird diese Rauschinjektion injiziert durch das Injizieren
einer Zufallszahl, die durch das skalierte Quantisierungsniveau,
das in Schritt 410 bestimmt wurde, begrenzt ist. Auf diese
Art und Weise wird der effektive Quantisierungsparameter QI, der mit dem I-Frame verknüpft ist,
auf einen Quantisierungsparameter reduziert mit einem Wert innerhalb
von QTH des Quantisierungsparameters QB, der mit den B-Frames verknüpft ist.
-
Es
muß erwähnt werden,
daß die
Routine 400 von 4 angepaßt sein
kann, um gleichzeitig oder individuell Quantisierungsniveauvariationen
zwischen I-Frames und P-Frames und P-Frames und B-Frames zu adressieren.
Darüber
hinaus haben die Erfinder, obgleich die Routine 400 auf
jeder GOP individuell arbeitend dargestellt ist, in Betracht gezogen,
daß die
Routine 400 modifiziert sein kann, um auf einer Mehrzahl
von GOPs zu arbeiten. In dem Fall eines von einer konstanten Bitrate
komprimierten Videostroms IN ist das durchschnittliche Bitbudget
für jede
GOP, die von einem Codierer gebildet wird, im wesentlichen dasselbe.
In dem Fall eines Informationsstroms mit variabler Bitrate kann
jedoch das Bitbudget für
jede GOP, die von dem Codierer gebildet wird, variieren, wenn mehr
oder weniger Bandbreite für
die Verwendung durch den Codierer verfügbar wird. In dem Fall der
variablen Bitrate wird eine zusätzliche
Variable verwendet, um sicherzustellen, daß der durchschnittliche Quantisierungsparameter
einer GOP (QGOP) nicht von dem durchschnittlichen
Quantisierungsparameter von einem oder mehreren vorhergehenden und
folgenden GOPs um mehr als eine Grenzmenge variiert.
-
5 stellt ein Flußdiagramm
einer GOP-Ausgleichsroutine 500 gemäß der Erfindung dar. Ausdrücklich gesagt
ist die GOP-Ausgleichsroutine 500 von 5 auf das Reduzieren von At mungs-Artefakten
in einem Videosignal gerichtet, die durch sukzessive Halb-Pel-Interpolationen
von vorhergesagten Frames innerhalb einer GOP verursacht werden,
wie oben unter Bezug auf 1 beschrieben
wurde.
-
In
die Routine 500 wird in Schritt 502 eingetreten,
wenn z. B. der Videodecoder 210 von 2 beginnt, den komprimierten Videoinformationsstrom
IN zu empfangen. Die Routine 500 setzt dann bei Schritt 504 fort, wo
eine Schärfefunktion
unter Verwendung der GOP-Struktur bestimmt wird. Das heißt, eine
Abschätzung
der sich ausgebreiteten Verschlechterung in der Bildschärfe wird
durchgeführt
basierend auf den Typen der Einzelbilder innerhalb der GOP und der
Anzahl von Einzelbildern innerhalb der GOP. Beispielsweise wird
eine GOP, die alle I-Frames enthält,
nicht unter einer Schärfeverschlechterung
aufgrund von Halb-Pel-Interpolationen leiden (da keine Vorhersagen
durchgeführt
werden). In gleicher Weise wird eine GOP, die ein einzelnes I-Frame
gefolgt von einer Mehrzahl von P-Frames und B-Frames einen Grad
der Schärfeverschlechterung
aufgrund von Halb-Pel-Interpolationen
erfahren. Die Schärfefunktion,
die am Haltepunkt 504 bestimmt wurde, ist eine Schätzung der
Größe einer
solchen Schärfeverschlechterung
als eine Funktion der Frameposition und/oder des Frametyps innerhalb
der GOP. Die Routine 500 setzt dann bei Schritt 506 fort.
-
In
Schritt 506 werden Ausgleichsfilterparameter berechnet.
Die Ausgleichsfilterparameter weisen Tiefpass- und/oder Hochpassfilterparameter
auf, die mit einem oder mehreren Frames innerhalb der GOP verknüpft sind.
Das heißt,
ein Basislinienniveau der Schärfe
wird ausgewählt
(z. B. minimales Schärfeniveau,
wie es von dem am stärksten
schärfeverschlechterten
Einzelbild festgelegt wird, ein mittlerer Schärfegrad, der von einem mittleren
Schärfegrad
aller Einzelbilder festgelegt wird, oder ein bestimmter Frametyp
innerhalb der GOP oder dergleichen). Die Ausgleichsfilterparameter
werden für
jedes Frame innerhalb der GOP basierend auf der Position des Frames
und/oder des Frametyps bestimmt, so daß der relative Unterschied
in der Schärfe zwischen
den Frames innerhalb der GOP auf einen Wert unterhalb eines Grenzwerts
reduziert wird, wie vorher unter Bezug auf 1 beschrieben wurde. Die Routine 500 setzt
dann mit Schritt 508 fort.
-
In
Schritt 508 werden die berechneten Ausgleichsfilterparameter
verwendet, um, sofern dies notwendig ist, ein oder mehrere der Frames
innerhalb der GOP auszugleichen. Die Routine 500 setzt
dann mit Schritt 510 fort, wo eine Abfrage durchgeführt wird,
ob zusätzliche
GOPs zu verarbeiten sind. Wenn die Abfrage in Schritt 510 negativ
beantwortet wird, dann setzt die Routine 500 mit Schritt 512 fort
und die Routine wird verlassen. Wenn die Abfrage in Schritt 510 bestätigend beantwortet
wird, dann setzt die Routine 500 mit Schritt 504 fort,
wo eine Schärfefunktion,
die die nächste
GOP betrifft, berechnet wird. Das heißt, die Routine 500 wird für jede nachfolgende
GOP wiederholt. In dem Fall einer festen GOP-Struktur kann die Schärfefunktion,
die in Schritt 504 bestimmt wurde, und die Ausgleichsfilterparameter,
die in Schritt 506 berechnet wurden, für jede nachfolgende GOP wiederverwendet
werden.
-
In
einer Ausführungsform
der Erfindung werden "Trainingsequenzen" benutzt, um die
Fehler, die einer Sequenz von decodierten Bildern von dem Decoder
selbst vermittelt werden, zu charakterisieren. Wenn beispielsweise
eine Verzerrung innerhalb einer decodierten GOP durch einen bekannten
Faktor eingeführt
wird (z. B. durch den Bewegungsinterpolationsfilter in dem Empfänger oder
dem Decoder), wird ein Vorverzerrungsfilter berechnet, um den bekannten
Faktor zu kompensieren. Um die Verzerrung zu identifizieren, wird eine
Spektrumanalysefunktion verwendet. Das heißt, die tatsächliche(n)
spektrale(n) Charakteristik(a) einer Trainingssequenz, die ein oder
mehrere "typische" decodierte Videoeinzelbilder
aufweist, verglichen mit einer "erwarteten" spektralen Charakteristik(a).
Die spektralen Charakteristika von nachfolgenden decodierten Videoframes
werden dann "korrigiert" basierend auf Filtern,
die von den Trainingssequenzen erhalten werden. Es sollte bemerkt
werden, daß die "erwarteten" spektralen Charakteristika
in Bezug auf einen zweiten Decoder bestimmt sein können.
-
Die Übertragungsfunktion
des spektralen Korrekturfilters wird als das Verhältnis des
erwarteten Spektrums und des tatsächlichen Spektrums als eine
Funktion der Frequenz bestimmt. Dies ist die gewünschte Frequenzantwort des
Signals. Der Filter kann als z. B. ein Filter mit endlicher Impulsantwort
(FIR) oder unendlicher Impulsantwort (IIR) implementiert sein. Beispielsweise
werden in einer Ausführungsform
der Erfindung die Koeffizienten für einen FIR-Filter, die im
wesentlichen die bestimmte Übertragungsfunktion
erfüllen,
berechnet, invertiert und auf eine gewünschte Anzahl von Abgriffen
bzw. Tabs eingeschränkt.
Der resultierende FIR-Filter wird verwendet, um jedes decodierte
Einzelbild zu verarbeiten, so daß die spektralen Charakteristika
des decodierten Einzelbildes an die vorher beschriebenen "erwarteten" spektralen Charakteristika
herankommen, wodurch das decodierte Videoausgangssignal ausgeglichen
wird.
-
6 stellt ein Flußdiagramm
einer Verschlechterungsausgleichsroutine 600 gemäß der Erfindung dar.
Ausdrücklich
gesagt wird die Verschlechterungsausgleichsroutine 600 von 6 auf das Reduzieren von Artefakten
gerichtet, die einer Sequenz von decodierten Bildern, durch z. B.
Anomalien innerhalb des Decoders selbst vermittelt werden. Die Routine
charakterisiert als erstes den Decoder unter Verwendung einer Trainingssequenz.
Die Trainingssequenz weist eine "Goldcode"-Sequenz von codierten
Bildern auf, die vorher unter Verwendung eines "bekannten guten" Decoders verarbeitet wurden, um eine
Ausgangsbildsequenz mit einer verknüpften Spektralcharakteristik
zu erzeugen. Diese verknüpfte
Spektralcharakteristik des bekannten guten decodierten Goldcodes
wird als ein "erwartetes
Spektrum" bezeichnet.
-
In
die Routine 600 wird in Schritt 602 eingetreten
und zu Schritt 604 fortgesetzt, wo eine Trainingssequenz
abläuft.
Das Ablaufen der Trainingssequenz weist das Anlegen der bekannten "Goldcode"-Sequenz von codierten
Bildern (z. B. einen MPEG-artigen komprimierten Videoinformationsstrom)
an den Decodereingang auf, so daß ein decodierter Trainingsinformationsstrom
erzeugt wird. Die Routine 600 setzt dann mit Schritt 606 fort,
wo der decodierte Trainingsinformationsstrom spektral analysiert
wird, um ein Trainingssequenzspektrum zu erzeugen. Die Routine 600 setzt
dann mit Schritt 608 fort.
-
In
Schritt 608 wird das Trainingssequenzspektrum, das in Schritt 606 berechnet
wird, mit dem erwarteten Spektrum verglichen (d. h. dem vorher berechneten
Spektrum der "Goldcode"-Videotrainingssequenz, wie sie von einem
bekannten guten Decoder erzeugt wird). Da allgemein gesprochen die
Unterschiede zwischen dem Trainingssequenzspektrum und dem erwarteten
Spektrum hauptsächlich
durch Unterschiede in dem Decoderverhalten verursacht werden, können spek trale
Anomalien, die von dem Decoder in den decodierten Videoinformationsstrom
eingefügt
werden, von spektralen Anomalien, die aufgrund der Halb-Pel-Interpolation
oder anderen Nicht-Decoder-Fehlerquellen
in den decodierten Videostrom eingeführt werden, isoliert werden.
Die Routine 600 setzt dann mit Schritt 610 fort.
-
In
Schritt 610 wird eine Abfrage durchgeführt, ob die GOP-Struktur des
Videoinformationsstroms, der zu decodieren ist, bekannt ist (d.
h. die komprimierte Nicht-Trainingsvideosequenz). Wenn die Abfrage
in Schritt 610 bestätigend
beantwortet wird, dann setzt die Routine 600 mit Schritt 612 fort,
wo ein GOP-Ausgleichsfilter basierend auf den spektralen Varianzen
zwischen der Trainingssequenz-GOP und einer spektral analysierten
GOP von dem zu decodierenden komprimierten Videoinformationsstrom
berechnet wird. Das heißt,
die spektralen Variationen zwischen der "Goldcode"-GOP und der empfangenen GOP werden
verglichen und verwendet, um einen Ausgleichsfilter zu berechnen,
so daß die
spektralen Varianzen zwischen diesen GOPs auf ein Niveau unterhalb
eines Grenzniveaus reduziert werden. Die Routine 600 setzt
dann mit Schritt 614 fort, wo der berechnete GOP-Ausgleichsfilter
an die empfangene GOP angelegt wird.
-
Die
Routine 600 setzt dann mit Schritt 616 fort, wo
eine Abfrage durchgeführt
wird, ob weitere GOPs zu verarbeiten sind. Wenn die Abfrage in Schritt 616 bestätigend beantwortet
wird, dann fährt
die Routine mit Schritt 614 fort, wo der Computerfilter
an die nächste
GOP angelegt wird. Optional kann die Routine mit Schritt 612 fortsetzen,
wo eine Spektralanalyse und eine Vergleichsfunktion auf der nächsten zu
verarbeitenden GOP durchgeführt
wird, was zu einer neuen GOP-Ausgleichsfilterberechnung
führt.
Wenn die Abfrage in Schritt 616 negativ beantwortet wird,
dann setzt die Routine 600 mit Schritt 618 fort
und endet.
-
Wenn
die Abfrage in Schritt 610 negativ beantwortet wird, dann
setzt die Routine 600 mit Schritt 620 fort, wo
spektrale Variationen zwischen den Frametypen innerhalb der "Goldcode"-Trainingssequenz und des empfangenen
komprimierten Videoinformationsstroms gemacht werden. Das heißt, die
spektralen Variationen zwischen z. B. P-Frames innerhalb der Goldcode-Trainingsfrequenz
und P-Frames innerhalb des empfangenen Videoinformationsstroms werden
verglichen. In gleicher Weise können
die spektralen Variationen zwischen den I-Frames und den B-Frames ebenso verglichen
werden. Die Routine 600 setzt dann mit Schritt 622 fort.
-
In
Schritt 622 werden ein oder mehrere Frametypausgleichsfilter
basierend auf Spektralvarianzen des Frames berechnet. Das heißt, die
Spektralvariationen zwischen z. B. P-Frames der Goldcode-Trainingssequenz
und P-Frames des empfangenen Informationsstroms werden verwendet,
um einen Ausgleichsfilter zu berechnen, der, wenn er an die P-Frames
innerhalb des empfangenen Informationsstroms angelegt wird, die spektralen
Variationen auf einen Wert unterhalb eines Grenzniveaus reduzieren
wird. Die Filterauswahl, die für ein
bestimmtes durchgeführt
wird, steht ebenso mit der Anzahl von I-Frames und P-Frames, die
dem bestimmten Einzelbild innerhalb der GOP vorausgehen, in Beziehung.
Da beispielsweise die Größe der Vorhersagefehler
sich erhöht,
wenn ein Vorhersagefehler sich auf spätere Einzelbilder innerhalb
einer GOP ausbreitet, wird der Filter, der für spätere Einzelbilder innerhalb
der GOP benutzt wird, ausgewählt,
um in dem zugrundeliegenden Signal eine entsprechend größere Veränderungsmenge
zu vermitteln. Die Routine 600 setzt dann mit Schritt 624 fort.
-
In
Schritt 624 werden die Frametypfilter, die in Schritt 622 berechnet
wurden, an jedes geeignete Frame innerhalb einer empfangenen GOP
angelegt. Die Routine 600 setzt dann mit Schritt 626 fort,
wo eine Abfrage durchgeführt
wird, ob weitere Frames zu verarbeiten sind. Wenn die Abfrage in
626 negativ beantwortet wird, dann setzt die Routine mit Schritt 630 fort
und endet. Wenn die Abfrage in 626 bestätigend beantwortet wird, dann
setzt die Routine mit Schritt 628 fort, wo das nächste Frame
für die
Verarbeitung ausgewählt
wird, und setzt mit Schritt 624 fort, wo das ausgewählte Frame
entsprechend dem geeigneten Frametypfilter, der in Schritt 622 berechnet
wurde, gefiltert wird. Das heißt,
das nächste
Frame, das ausgewählt
wird (z. B. ein I-Frame, P-Frame oder B-Frame), wird entsprechend
einem I-Frame-Spektralausgleichsfilter, einem P-Frame-Spektralausgleichsfilter
oder einem B-Frame-Spektralausgleichsfilter, wie vorher in Schritt 622 berechnet wurde,
ausgewählt.
-
Die
oben beschriebenen Ausführungsformen
der Erfindung sind auf Decoder gerichtet mit genügend Speicherressourcen, um
eine gesamte GOP für
die Verarbeitung zu speichern. Wo jedoch Speicherbeschränkungen
die Speicherung und die Verarbeitung einer gesamten GOP-Struktur
verhindern, haben die Erfinder verschiedene Verfahren für das Reduzieren
der vorerwähnten
Atmungs-Artefakte in Betracht gezogen.
-
In
einem ersten Verfahren gemäß der Erfindung
und gerichtet auf speicherbeschränkte
Decoder wird ein einzelnes Frame innerhalb der GOP als das "Wiedergabetreuereferenz"-Frame ausgewählt. Die
anderen Frames innerhalb der GOP werden verschlechtert oder verbessert,
so wie dies notwendig ist, um einen Grad der Wiedergabetreue innerhalb
eines Grenzniveaus des Wiedergabetreuereferenzframes zu erfüllen. Dieses Verfahren
wird unten detaillierter unter Bezug auf 7 beschrieben.
-
In
einem zweiten Verfahren gemäß der Erfindung
und gerichtet auf speicherbegrenzte Decoder werden die Charakteristika
einer vorher decodierten GOP verwendet, um eine gegenwärtig zu
decodierende GOP anzupassen. Das heißt, die Charakteristika einer
ersten GOP werden bestimmt und gespeichert, wenn die erste GOP verarbeitet
wird. Beispielsweise werden die GOP-Struktur selbst, Quantisierungsniveaus,
die in der GOP verwendet werden, und andere solche Wiedergabetreue
betreffende Parameter gespeichert. Eine zweite GOP, die der ersten
GOP folgt, wird in einer Art und Weise verarbeitet, daß sie die
gespeicherten Parameter, die unter Bezug auf die erste GOP bestimmt
wurden, verwendet. Da sich diese Parameter typischerweise nicht stark
zwischen z. B. GOPs unterscheiden, die Bilder beinhalten, die eine
gemeinsame Szene darstellen, sind die Annahmen nützlich. Darüber hinaus werden selbst im
Falle einer Szenenveränderung
jegliche Wiedergabetreueunterschiede zwischen der letzten GOP einer
ersten Szene und der ersten GOP einer zweiten Szene im Hinblick
auf die tatsächliche
Szenenveränderung
nicht bemerkbar sein (d. h. die große visuelle Diskontinuität, die durch
die Szenenveränderung
verursacht wird, tendiert dazu, jegliche Atmungs-Artefakte aufgrund
von ungenauen GOP-Parametervorhersagen zu verdecken). Diese Verfahren
gemäß der Erfindung
und die auf speicherbegrenzte Decoder gerichtet sind stellen einen Vorteil
darin zur Verfügung,
daß es
nicht nötig
ist, auf den Empfang einer vollständigen GOP zu warten, bevor
die GOP decodiert wird.
-
7 stellt ein Flußdiagramm
einer Verschlechterungsausgleichsroutine 700 gemäß der Erfindung dar,
die für
das Reduzieren von Atmungs-Artefakten innerhalb des Kontexts eines
speicherbegrenzten Decoders geeignet ist. In die Routine 700 wird
in Schritt 702 eingetreten, wenn z. B. der Videodecoder 210 von 2 beginnt, den komprimierten
Videoinformationsstrom IN zu empfangen. Die Routine 700 setzt
dann mit Schritt 704 fort, wo ein Abschnitt der GOP im
Speicher gespeichert wird. Ausdrücklich
gesagt wird ein Teil der GOP einschließlich zumindest eines vorbestimmten
Referenzframes (z. B. dem ersten Ankerframe nach einem ursprünglichen
I-Frame) im Speicher abgelegt. Alternativ dazu wird nur der vorbestimmte
Referenzframe im Speicher gespeichert. Die Routine 700 setzt
dann mit Schritt 706 fort.
-
In
Schritt 706 wird das gespeicherte Referenzframe in der
vorher beschriebenen Art und Weise charakterisiert durch Notieren
z. B. der Quantisierungsschrittgröße, der Position innerhalb
der GOP, dem Frametyp und von anderen Parametern. Die Referenzframecharakterisierung
führt zu
einem näherungsweisen
Basislinienniveau der Wiedergabetreue, so daß andere Frames innerhalb der
GOP verbessert und/oder verschlechtert werden, um es zu erreichen.
Das heißt,
im Falle eines I-Frames, das eine signifikant bessere Wiedergabetreue
aufweist als das Referenzframe, wird das I-Frame in einer Art und Weise verarbeitet,
daß die
Wiedergabetreue etwas verschlechtert wird, so daß die Wiedergabetreueunterschiede
zwischen dem I-Frame und dem ausgewählten Referenzframe auf einen
Wert unterhalb eines Grenzniveaus reduziert werden. In ähnlicher
Weise, wenn das Wiedergabetreueniveau des ausgewählten Referenzframes signifikant
höher ist
als z. B. ein oder mehrere B-Frames innerhalb der GOP, werden die
B-Frames in einer Art und Weise gefiltert, die dazu tendiert, zu
einer sichtbaren Verbesserung in der Wiedergabetreue zu führen. Beispielsweise
können
die B-Frames einer Hochfrequenzverbesserung bzw. -verstärkung ausgesetzt
sein, um zu helfen, eine Tiefpassfilter auszugleichen, die durch
die Halb-Pel-Interpolation innerhalb des Decoders induziert wird.
Die Routine 700 setzt dann mit Schritt 708 fort.
-
In
Schritt 708 werden die Frames innerhalb der GOP gemäß der charakterisierten
Parameter des Referenzframes verarbeitet. Ausdrücklich gesagt werden in Schritt 708 alle
Frames, die zusammen mit dem Referenzframe gespeichert sind, selektiv
verbessert oder verschlechtert gemäß den Referenzframecharakteristika,
die in Schritt 706 bestimmt wurden. Die Routine 700 setzt
dann mit Schritt 710 fort, wo eine Abfrage durchgeführt wird,
ob es innerhalb der GOP weitere Frames gibt, die zu verarbeiten
sind.
-
Wenn
die Abfrage in Schritt 710 bestätigend beantwortet wird, dann
setzt die Routine mit Schritt 716 fort, wo das nächste Frame
innerhalb der GOP durch die Referenzframecharakteristika, die in
Schritt 706 bestimmt wurden, verarbeitet wird. Die Routine 700 setzt
dann mit Schritt 710 fort.
-
Wenn
die Abfrage in Schritt 710 negativ beantwortet wird, dann
setzt die Routine mit Schritt 712 fort, wo eine Abfrage
durchgeführt
wird, ob weitere GOPs zu verarbeiten sind. Wenn die Abfrage in Schritt 712 negativ
beantwortet wird, dann setzt die Routine 700 mit Schritt 714 fort
und wird beendet. Wenn die Abfrage in Schritt 712 bestätigend beantwortet
wird, dann setzt die Routine 700 mit Schritt 704 fort,
wo die Routine 700 für
die nächste
GOP wiederholt wird. Es muß bemerkt
werden, daß,
da die GOP-zu-GOP-Charakteristika sich relativ langsam verändern (außer für z. B.
Szenenschnitte), die nächste
GOP optional unter Verwendung des charakterisierten Referenzframes
von der vorhergehenden GOP verarbeitet werden kann.
-
In
einer anderen Ausführungsform
der Erfindung wird jede GOP entsprechend einem mittleren statistischen
Maß der
vorherigen GOP verarbeitet. Das heißt, jede GOP wird charakterisiert
unter Verwendung von einer oder mehreren der oben beschriebenen
Techniken, wenn die GOP verarbeitet wird. Die Ergebnisse dieser
Charakterisierung werden verwendet, um die nächste GOP zu verarbeiten. In
dieser Art und Weise wird die Speichermenge, die erforderlich ist,
stark reduziert. Darüber
hinaus, da der mögliche
Inter-GOP-Wiedergabefehler innerhalb einer GOP korrigiert wird,
gibt es, wenn überhaupt,
nur wenige Atmungs-Artefakte zwischen der letzten GOP einer Szene
und der ersten GOP einer folgenden Szene.
-
In
einer anderen Ausführungsform
der Erfindung wird die Fehlerkorrektur und/oder der Fehlerausgleich
dem decodierten Videostrom auf einer Block-per-Block-Basis weitergegeben.
Mit Vorteil stellt die Blocklevelverarbeitung eine stark verbesserte
Steuerung des Ausgleichsprozesses zur Verfügung. Beispielsweise wird die
Hochpassfilterung geeignet an Blöcken
angewendet, wo die Halb-Pel-Interpolation
verwendet wurde, jedoch nicht an Blöcken mit geradzahligen Bewegungsvektoren.
Blöcke
mit geradzahligen Bewegungsvektoren enthalten typischerweise nicht
die vorher diskutierte Halb-Pel-Fehlerkomponente und werden daher
nicht in der vorher erörterten
Tiefpassfilterungs-Art und Weise verschlechtert, so daß eine Ausgleichs-Hochpassfilterung
gerechtfertigt wäre.
Zusätzlich
stellt die Block-per-Block-Verarbeitung eine größere Steuerung des Ausgleichsprozesses
zur Verfügung,
so daß z.
B. der Controller sicherstellen kann, daß ein Ausgleich oder eine Korrektur,
der bzw. die an einen Block weitergeleitet wird, niemals den Quantisierungsschritt überschreitet,
wodurch verhindert wird, daß eine übermäßige Verzerrung
in das resultierende Bild eingefügt
wird.
-
Schließlich sollte
erwähnt
werden, daß eine "Kopie" des ursprünglichen
Referenzeinzelbildes, wie es von dem Decoder decodiert wird, gespeichert
werden kann und als eine Referenz verwendet werden kann, um die
Drift auf das gewünschte
Maximalniveau, z. B. einen Quantisierungsschritt, zu begrenzen.
-
Somit
wird in einer Ausführungsform
der Erfindung ein "verstärktes" Referenzframe (d.
h. ein Referenzframe, das Blöcke
mit einem maximalen Niveau der Wiedergabetreue aufweist) gebildet
durch Hinzufügen von
Korrekturinformation zu dem "ursprünglichen" oder "nominellen" Referenzframe. Das
verstärkte
bzw. verbesserte Referenzframe wird dann zusammen mit dem ursprünglichen
Referenzframe gespeichert. Jedesmal, wenn eine Korrektur durchgeführt wird,
um Atmungs-Artefakte
zu vermeiden, ist es wünschenswert,
die Korrektur zu untersuchen, so daß die Korrektur selbst nicht
neue Artefakte einführt.
Dies kann durchgeführt
werden durch Begrenzen des Unterschieds zwischen dem verbesserten
Referenzframe und dem ursprünglichen Referenzframe
auf weniger als einen Quantisierungsschritt, wenn die DCT der Differenz
berechnet wird. Somit wird in einer Ausführungsform der Erfindung eine
DCT der Differenz zwischen einem Block innerhalb des verbesserten
Referenzframes (d. h. ein "korrigierter" Block) und ein entsprechender
Block innerhalb des ursprünglichen
Frames berechnet. Wenn diese Differenz ein Grenzwertniveau, anschaulich
einen Quantisierungsschritt, überschreitet,
dann wird der ursprüngliche
Block verwendet oder optional wird der korrigierte Makroblock erneut
verarbeitet. Zusätzlich
wird dieser Prozeß der
Steuerung der Korrektur, die an verbesserte Blöcke weitergegeben wird, für Nicht-Referenzframes
verwendet.
-
8 stellt ein Flußdiagramm
einer Blocklevelkorrektursteuerroutine gemäß der Erfindung dar. Die Routine 800 wird
in Schritt 806 betreten, wo der korrigierte Makroblock
oder Block mit einem entsprechenden nicht korrigierten Makroblock
oder Block verglichen wird, um eine Differenzgröße zu erzeugen. Die Routine 800 setzt
dann mit Schritt 808 fort, wo eine diskrete Kosinustransformation
(DCT) auf der Differenz zwischen dem korrigierten und nicht korrigierten
Makroblock oder Block durchgeführt
wird. Die Routine 800 setzt dann mit Schritt 810 fort,
wo eine Abfrage durchgeführt
wird, ob die Quantisierungsschrittgröße der DCT, die in Schritt 808 durchgeführt wurde,
größer als
1 ist. Wenn die Abfrage in Schritt 810 negativ beantwortet
wird, dann setzt die Routine mit Schritt 812 fort und wird
beendet. Wenn die Abfrage in Schritt 810 bestätigend beantwortet wird,
dann setzt die Routine mit Schritt 814 fort, wo eine Abfrage
durchgeführt
wird, ob der Block oder der Makroblock erneut verarbeitet werden
sollte.
-
Wenn
die Abfrage in Schritt 814 bestätigend beantwortet wird, dann
setzt die Routine 800 mit Schritt 804 fort, wo
der Block oder der Makroblock erneut verarbeitet wird oder erneut
korrigiert wird. Die erneute Verarbeitung oder die erneute Korrektur
in Schritt 804 benutzt die zusätzliche Information der DCT-Quantisierungsschrittgröße und der
DCT-Information, die in Schritt 808 gebildet wurde.
-
Wenn
die Abfrage in Schritt 814 negativ beantwortet wird, dann
setzt die Routine 800 mit Schritt 816 fort, wo
der NICHT-korrigierte Block oder Makroblock statt des korrigierten
Makroblocks verwendet wird. Die Routine 800 setzt dann
mit Schritt 812 fort und wird beendet.
-
Eine
andere blockbasierte Ausführungsform
der Erfindung ist ähnlich
der oben unter Bezug auf die 3 oder 4 beschriebene, außer daß die relativen
Verschlechterungsgrade in Bezug auf individuelle Blöcke bestimmt
werden und die individuellen Blöcke
in einer Art und Weise verarbeitet werden, die die Quantisierungs-
und/oder Halb-Pel-Vorhersageverschlechterungen ansprechen.
-
Eine
andere blockbasierte Ausführungsform
der Erfindung ist ähnlich
der in Bezug auf 6 beschriebenen,
außer
daß die
Blöcke
verarbeitet werden, um beispielsweise die durchschnittlichen Wiedergabetreueniveaus
der Blöcke
in einem bestimmten Frametyp oder einer Intra-GOP-Frameposition zu
erfüllen.
-
In
einer Ausführungsform
der Erfindung wird der Korrekturfilter in einem Codierer berechnet
und zu dem Decodierer zusammen mit dem codierten Videostrom übertragen.
Der Korrekturfilter kann einen Hilfsstrom, einen verbesserten Leerstrom
aufweisen oder kann innerhalb eines Benutzerdatenfeldes beinhaltet sein.
Der Decoder empfängt
und benutzt die Korrekturfilterdaten, um das Bild in einer Art und
Weise zu filtern und zu verbessern, die ähnlich der vorher beschriebenen
ist. Da jedoch in dieser Ausführungsform
der Codierer für
das Berechnen eines Korrekturfaktors verantwortlich ist, wird der
Korrekturfaktor viel genauer sein. Es sollte erwähnt werden, daß in dem
Fall eines Decoders, der den von dem Codierer bereitgestellten Korrekturfaktor
nicht verwendet, die Korrekturgröße relativ
klein ist (obgleich ausreichend, um Atmungs-Artefakte abzuschwächen) und
der nicht benutzende Decoder immer noch in der Lage sein wird, den
empfangenen komprimierten Videostrom zu decodieren.
-
Die
vorliegende Erfindung kann verkörpert
werden in Form von computerimplementierten Prozessen und Vorrichtungen
für das
Praktizieren dieser Prozesse. Die vorliegende Erfindung kann ebenso
in der Form von Computerprogrammcode verkörpert sein, der in konkreten
Medien, wie z. B. Disketten, CD-ROMs, Festplattenlaufwerken oder
irgendeinem anderen computerlesbaren Speichermedium verkörpert ist,
wobei, wenn der Computerprogrammcode in einen Computer geladen und
von diesem ausgeführt
wird, der Computer eine Vorrichtung für das Ausführen der Erfindung wird. Die
vorliegende Erfindung kann ebenso in der Form eines Computerprogrammcodes
verkörpert
sein, beispielsweise auf einem Speichermedium gespeichert, geladen
in und/oder ausgeführt
von einem Computer oder übertragen über ein Übertragungsmedium,
wie z. B. über
elektrische Drähte
oder Kabel, über
Faseroptiken oder über
elektromagnetische Strahlung, wobei, wenn ein Computerprogrammcode
in einen Computer geladen wird und von diesem ausgeführt wird,
der Computer eine Vorrichtung für
das Ausführen
der Erfindung wird. Wenn auf einem Allzweck-Mikroprozessor implementiert, konfigurieren
die Computerprogrammcodesegmente den Mikroprozessor, um spezifische
logische Schaltkreise zu erzeugen.
-
Obgleich
verschiedene Ausführungsformen,
die die Lehren der vorliegenden Erfindung beinhalten, gezeigt und
im Detail hier beschrieben wurden, kann der Fachmann leicht viele
andere variierte Ausführungsformen
ersinnen, die immer noch diese Lehren der Erfindung, wie sie in
den angefügten
Ansprüchen
beschrieben werden, enthalten.