-
GEBIET DER ERFINDUNG
-
Die Erfindung betrifft das Gebiet
der Signalübertragung
und Fehlerkorrektur.
-
HINTERGRUND DER ERFINDUNG
-
Allgemein bekannte Verfahren zur
Bildkompression, wie MPEG und JPEG, machen von blockbasierten Transformationen
Gebrauch. Diese Standardmethoden eignen sich zwar gut für die Komprimierung,
sie bieten jedoch keine robusten Rekonstruktionsverfahren. Bei Bildern
der realen Welt besteht die Tendenz, daß größte Teil ihrer Energie in niedrigen
Freguenzbändern
konzentriert ist. Das heißt,
der größte Teil
des Informationsinhalts ist in den niederfrequenten Koeffizienten
des transformierten Bilds gespeichert. Das Verpacken dieser Information
in diese relativ wenigen Koeffizienten hat sich für die Bildkomprimierungsalgorithinen
als vorteilhaft erwiesen. Unter der Voraussetzung, daß diese
niederfrequenten Koeffizienten korrekt übertragen werden, läßt sich
ein Bild mit hoher Wiedergabetreue zurückgewinnen.
-
Das Transformieren eines N×N-Bildsegments
in die oder aus der Frequenzdomäne
erfordert etwa 2N3 Operationen. Wenn N groß ist, wird
dies undurchführbar.
Um die Komplexität
handhaben zu können,
wird für N üblicherweise
eine kleine Zahl, z.B. 8, gewählt,
und das Bild wird mit einem Block zu einer Zeit transformiert. Auf
diese Weise wächst
die Zahl der Operationen nur linear mit der Größe des Bilds.
-
Blocktransformationen, die ebenfalls
unitär
sind, sind besonders attraktiv für
die Transformationskodierung eines Bilds, weil der mittlere quadratische
Beitrag eines Koeffizienten in der Frequenzdomäne seinem mittleren quadratischen
Beitrag in der Zeitdomäne
gleich ist. Für
den Kodierer bedeutet dies, daß der
Beitrag eines Koeffizienten zur Rekonstruktion in der Zeitdomäne um so
größer ist,
je größer die
Magnitude des Koeffizienten in der Frequenzdomäne ist.
-
In der gleichen Weise entsprechen
Fehler in der Frequenzdomäne
in der Magnitude den Fehlern in der Zeitdomäne.
-
Ein Nachteil der herkömmlichen
Verfahren zur Transformationskodierung besteht darin, daß sie nicht fehlerrobust
sind. Dieser Mangel an Robustheit ist zum Teil auf die Kompressionsmethoden
mit variabler Länge,
die üblicherweise
bei der Kodierung eingesetzt werden, und zum Teil auf den Mangel
an Korrelation zwischen den Komponenten in der Frequenzdomäne zurückzuführen. Der
Verlust der Synchronisation aufgrund der variablen Längenkodierung
kann durch das Hinzufügen
von Resynchronisationspunkten oder durch die Benutzung einer pseudofesten
Längenkodierung überwunden
werden. Der Mangel an Korrelation in der Frequenzdomäne ist jedoch
ein fundamentaleres Problem, das mit den herkömmlichen Kodierverfahren nicht
in adäquater
Weise angegangen wurde.
-
Andere Forscher, insbesondere Edward
Chang und Keng-Kuan Lin, „Error
Concealment and Reconstruction Schemes for Image Transmission on
a Wireless Network",
Stanford University, März
1997, und Sheila S. Hemami, „Reconstruction-Optimized
Lapped Orthogonal Transforms for Robust Image Transmission", Cornell University,
April 1996, haben in der Vergangenheit das Problem des Mangels an
Korrelation in der Frequenzdomäne
untersucht. Diese Forscher gingen dieses Problem an, indem sie verlorene
Frequenzkomponenten unter Verwendung von gewichteten Mittelwerten
entsprechender Komponenten aus umgebenden Blöcken abschätzten.
-
Dieser Prozeß ist jedoch grundsätzlich begrenzt
durch die immer geringer werdende Korrelation bei wachsender Blockgröße. Wenn
z.B. die Gleichstromkomponente (DC-Komponente) beschädigt ist,
gleicht der Versuch, sie durch Mittelwertbildung der umgebenden
DC-Koeffizienten abzuschätzen,
dem Schätzen
eines verlorenen Pixels aus einem kleinen Bild durch Mittelwertbildung
der umgebenden Pixel. Weil das aus den DC-Komponenten gebildete
Bild klein ist im Vergleich zu dem Original, ist die räumliche
Korrelation gering. Deshalb ist der Prozeß der Mittelwertbildung nicht
effektiv.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es wird ein Verfahren zur robusten
Zeitdomänen-Blockdekodierung
offenbart. In einem Ausführungsbeispiel
umfaßt
das Verfahren das Empfangen eines Blocks von Transformationsdomänen-Koeffizienten
und der zugehörigen
Fehlerflags, das Dekodieren von Pixelwerten aus den Transformationsdomänen-Koeffizienten,
das Bestimmen eines ersten Schätzwerts
für jeden
fehlerhaften Pixelwert und das Aktualisieren der dekodierten Pixelwerte.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die vorliegende Erfindung ist in
den Figuren der anliegenden Zeichnungen dargestellt, in denen gleiche
Bezugszeichen ähnliche
Elemente bezeichnen, wobei diese Darstellung lediglich beispielhaft
ist und keine Beschränkung
darstellt.
-
1 zeigt
eine Darstellung eines Blocks von Bilddaten,
-
2 zeigt
eine Darstellung eines Pixels, das an Pixel aus anderen Blöcken angrenzt,
-
3 und 4 zeigen Darstellungen eines
Verfahrens zur Rückgewinnung
von verlorenen Daten,
-
5 zeigt
ein Ausführungsbeispiel
einer Vorrichtung zum Rückgewinnen
von verlorenen Daten nach dem Verfahren von 4,
-
6 zeigt
ein Ausführungsbeispiel
eines Systems, das eine Vorrichtung zum Rückgewinnen von verlorenen Daten
enthält,
-
7 zeigt
ein Ausführungsbeispiel
für eine
Bild-zu-Block-Abbildung,
-
8 zeigt
ein anderes Ausführungsbeispiel
für eine
Bild-zu-Block-Abbildung
-
DETAILLIERTE BESCHREIBUNG
-
Es wird ein Verfahren zur robusten
Zeitdomänen-Blockdekodierung
offenbart. In einem Ausführungsbeispiel
umfaßt
das Verfahren das Empfangen eines Blocks von Transformationsdomänen-Koeffizienten
und der entsprechenden Fehlerflags, das Dekodieren von Pixelwerten
aus den Transformationsdomänen-Koeffizienten,
das Bestimmen eines ersten Schätzwerts
für jeden
fehlerhaften Pixelwert, das Lösen
eines erzwungenen Minimierungsproblems und das Aktualisieren der
dekodierten Pixelwerte.
-
Um das Problem des Mangels an Korrelation
in der Frequenzdomäne
zu überwinden,
wird bei den Verfahren zur robusten Zeitdomänen-Blockdekodierung der Verlust
in der Zeitdomäne
neu formuliert und dann die Korrelation aus der höchstmöglichen
Auflösung
benutzt, um alle verlorenen Koeffizienten zurückzugewinnen. Da unabhängig von
der Blockgröße die Daten
mit der höchsten
Auflösung
verwendet werden, nimmt die Leistung mit wachsender Blockgröße nicht
ab.
-
Die robuste Zeitdomänen-Blockdekodierung
implementiert ein robustes Verfahren zur Dekodierung von Blockdaten
in der Zeitdomäne,
um die Auswirkung von Fehlern zu reduzieren. Anders als frühere Verfahren
basiert die bei der robusten Zeitdomänen-Blockdekodierung benutzte
Transformation auf einem Zeitdomänenansatz,
der durch skalare Koeffizienten parametrisiert ist, die durch Lösen eines
Problems der kleinsten Quadrate geschätzt werden können. Beispiele
von Block-Transformationen, die in dem Verfahren zur Durchführung einer
robusten Zeitdomänen-Blockdekodierung
enthalten sein können,
sind z.B. die diskrete Cosinus-Transformation
(DCT) und die Haar-Wavelet-Transformation.
-
Im folgenden wird der mathematische
Ansatz diskutiert, der für
die Beschreibung der robusten Zeitdomänen-Blockdekodierung benutzt
wird. Um diese Diskussion zu erleichtern, wird die folgende Notation
benutzt. Zur Bezeichnung einer Matrix oder eines Vektors wird eine
fettgedruckte Type verwendet, und zur Bezeichnung von Komponenten
wird eine reguläre
Type benutzt. So bedeutet z.B. A ∊ RN×N,
daß A
eine N×N-Matrix
mit realen Komponenten Aij, i, j ∊ {0,
1,..., N–1}
ist. Ein hochgesetztes T, wie bei AT, bedeutet
eine Transposition. Der Kehrwert von A ist A–l und
die Umkehrung der Transposition von A ist A–T.
-
Zeitdomänenansatz
-
X ∊ R
N×N sei
eine Matrix von Pixeln, H ∊ R
N×N sei
eine nichtsinguläre
Transformationsmatrix und Y ∊ R
N×N sei
das Ergebnis der folgenden Transformation
N
2 Indikator-Matrizen C
(k) ∊ R
N×N sind
definiert als
und der Vektor y mit N
2 Komponenten ist definiert als eindimensionale
Neuanordnung der Matrix Y in der Weise, daß
-
Die Matrix Y kann in Termen des Vektors
y und der Indikator-Matrizen erweitert werden:
-
Durch Invertieren der Gleichung (1)
und Substituieren der Gleichung (4) kann der Bildanteil X aus den transformierten
Pixeln Y in folgender Weise zurückgewonnen
werden.
-
-
P
(k) ∊ R
N×N ist
eine Matrix ersten Ranges, die aus dem äußeren Produkt der Spalten i
und j der Matrix H
–I gewonnen wird, wobei
k = iN + j, i, j = 0,... N–1.
In dem wichtigen Spezialfall, wenn H unitär ist, gilt
-
Die Gleichung (8) ist die Basis für die robuste
Rekonstruktion. Es sei angenommen, daß einige der yk Pixel
in dem Kommunikationskanal verlorengegangen sind. Zur Abschätzung des
fehlenden yk können Nachbarrelationen aus
der dekodierten Domäne
benutzt werden.
-
Rückgewinnung mit kleinsten Quadraten
-
I = {k0,
k1,..., kM–1}
sei eine Menge, die die Indizes der M unbekannten Werte von Y enthält. Es wird dann
X in die bekannten und die unbekannten Teile getrennt.
-
-
Obwohl X ^ und P(k) bekannt
sind, ist X nicht bekannt, und yk kann nicht direkt gelöst werden.
Um diesen Mangel zu überwinden,
wird E(X), der Erwartungswert von X, auf der Basis von lokalen Korrelationen
bestimmt und anstelle von X benutzt.
-
Da die Prädiktion des Erwartungswerts
nicht perfekt ist, ist es möglich,
daß die
Gleichung (11) keine Lösung
hat. Stattdessen wird das folgende Problem der kleinsten Quadrate
gelöst.
-
Problem der kleinsten Quadrate
-
Wenn eine partielle Dekodierung X ^ ∊ R
N×N,
eine prädizierte
Dekodierung E(X) ∊ R
N×N und ein Satz von vorbestimmten
Matrizen P
(k) gegeben sind, ist das y
k, ∀k
? I zu ermitteln, das
minimiert, worin der Index
F die Forbenius-Norm bezeichnet.
-
Die Lösung von Gleichung (12) ist
leicht, indem man die Terme in Vektorform neu ordnet, wobei die Frobenius-Norm
der üblichen
Vektor-2-Norm entspricht. Es sei α =
[y
k0, Y
k1, ...,
y
kM–1] ∊ R
M ein Spaltenvektor der unbekannten Werte
von Y, und x und x ^ seien Vektorversionen von X bzw. X ^ . Der Vektor
läßt sich
nun als die Summe eines bekannten Vektors x ^ und eines Matrix-Vektor-Produkts
ausdrücken (13)
x = x ^ + Fα worin
die Spalte j ∊ {0,..., M–1 } von F Komponenten von
P
(k) enthält, die in Vektorform neu geordnet
sind. Das Minimierungsproblem kann nun in Termen des unbekannten
Vektors a angeschrieben werden. Die Funktion f(α) wird minimiert
-
Bei dem nicht erzwungenen Minimum
verschwindet der Gradient.
-
-
Deshalb wird ein Wert von a bestimmt,
der die folgende Gleichung befriedigt.
-
-
Die Lösung von Gleichung (19) erfordert
O(M3) Fließkomma-Operationen.
-
Bestimmung von E(X)
-
Um die Gleichung (12) zu lösen, benötigt man
eine erste Prädiktion
von E(X). Um die Komplexität
in vernünftigen
Grenzen zu halten, wäre
E(X) voraussichtlich ein nicht erzwungener Schätzwert von X auf der Basis
von umgebenden Pixeln. Dieser nicht erzwungene Schätzwert wird
in der Gleichung (12) benutzt, um die fehlenden yk Koeffizientenwerte
zu schätzen,
so daß das
rekonstruierte X zwangsweise eine Summe der bekannten und unbekannten
Terme von X ist, wie es in der Gleichung (11) formuliert wurde.
-
Die Robustheit des Dekodierers resultiert
aus der Tatsache, daß für die Abschätzung jedes
Wert von yk ein ganzer Block von Daten benutzt
wird. Nichtsdestoweniger sollte der prädizierte Wert für E(X) vernünftig nahe
bei der tatsächlichen
erwarteten Größe der Schätzwerte
von yk liegen. Ein einfaches und effektives
Verfahren zur Bestimmung von E(X) besteht darin, jeden Bildblock
durch das Abbilden von Unterabtastwerten des Bilds auf den Block
zu bilden und den Mittelwert benachbarter Pixel als Schätzwert für das fehlende
Pixel zu verwenden. Dieses Verfahren wird verbessert, wenn der Kodierer
eine Unterabtast-Blockstruktur benutzt, wie sie in 1 dargestellt ist. Der Transformationsblock
von 1 enthält Abtastwerte
von jedem zweiten Pixel des Bilds, sowohl in horizontaler als auch
in vertikaler Richtung. Wie in 2 dargestellt,
kann jedes Pixel von E(X) berechnet werden als Mittelwert von benachbarten
Pixeln, die aus anderen Blöcken
entnommen werden. Ein Pixel x1 kann z.B.
geschätzt
werden, indem benachbarte Pixel z1, z2, z3 und z4 aus anderen Blöcken benutzt werden.
-
Rückgewinnungsmethode
-
Ein Verfahren zum Rückgewinnen
von verlorenen Daten ist in 3 dargestellt.
Ein Block von kodierten Bilddaten wird von einem Dekodierer empfangen, 305.
Die Bilddaten werden in der Transformationsdomäne kodiert und durch Transformationsdomänen-Koeffizienten
dargestellt. Einige der Transformationsdomänen-Koeffizienten können während der Übertragung
verlorengehen oder beschädigt
werden. Wenn das Bild dekodiert wird, sind die Pixelwerte, die aus
den verlorenen oder beschädigten
Koeffizienten hergeleitet werden, verloren oder beschädigt, 310.
Jeder verlorene oder beschädigte
Koeffizient wird identifiziert, 315. Es wird ein Anfangsschätzwert für jedes
verlorene oder beschädigte
Pixel bestimmt, 320. In einem Ausführungsbeispiel ist der geschätzte Pixelwert
der erwartete Schätzwert,
der der Mittelwert der Pixel ist, die an das verlorene oder beschädigte Pixel
angrenzen, wie dies oben diskutiert wurde. Dieser geschätzte Pixelwert
wird benutzt, um einen Anfangswert für jeden entsprechenden verlorenen
oder beschädigten
Transformationsdomänen-Koeffizienten
zu bestimmen. Der Block von kodierten Bilddaten wird dann unter
Verwendung der Anfangswerte der Transformationsdomänen-Koeffizienten
dekodiert, 325.
-
Dann wird für jeden verlorenen oder beschädigten Koeffizienten
ein aktualisierter Wert bestimmt,
330. Der aktualisierte
Koeffizientenwert kann dadurch bestimmt werden, daß ein Problem
der kleinsten Quadrate minimiert wird. Es kann z.B ein Schätzwert von α bestimmt
werden, der
befriedigt. Dieser Schätzwert von α kann dazu
benutzt werden, die Schätzwerte
für die
beschädigten
Pixelwerte zu aktualisieren,
335. Das Aktualisieren der
Pixelwert kann durchgeführt
werden, indem
benutzt
wird, wie dies oben diskutiert wurde. Deshalb können die aktualisierten Schätzwerte
für die
verlorenen oder beschädigten
Koeffizienten Y
k unter Verwendung von
bestimmt werden. Es ist
jedoch möglich,
daß ein
oder mehrere Pixel, die einem verlorenen oder beschädigten Pixel
benachbart sind, ebenfalls verloren oder beschädigt sind. Die verlorenen oder
beschädigten
Pixel, die an ein gegebenes verlorenes oder beschädigtes Pixel
angrenzen, verringern die Genauigkeit der durchgeführten Abschätzung des
Anfangswerts des gegebenen verlorenen oder beschädigten Pixels. Deshalb führt die
Iteration des Verfahrens von
3 über das
gesamte Bild zu einer weiteren Verbesserung des Schätzwerts.
-
Verfeinerung von E(X)
-
Wenn die an Pixel von X angrenzenden
Pixel fehlerfrei sind, ist die Bestimmung von E(X) einfach. Die angrenzenden
Pixel können
jedoch fehlerhaft sein. In diesem Fall verbessert eine Iteration
des Verfahrens von 3 über das
gesamte Bild diese beschädigten
angrenzenden Pixel. Eine Verbesserung bei diesen Pixeln führt zu einer
entsprechenden Verbesserung von E(X). Dies ermöglicht eine Auflösung von
Gleichung (12), um verbesserte Werte von yk zu berechnen. Wenn benachbarte
Blöcke
Fehler enthalten, kann so die Iteration auf dem gesamten Bild eine
Verbesserung des Bilds liefern.
-
Alternative Rückgewinnungsmethode
-
In 4 ist
ein weiteres Ausführungsbeispiel
eines robusten Dekodieralgorithmus dargestellt, der auf den vorangehenden
Gleichungen basiert. Das Verfahren von 3 wird für eine gege bene Anzahl von
Iterationen wiederholt. Die kodierten Bilddaten werden von dem Dekodierer
in der Transformationsdomäne
empfangen, 405. Die beschädigten oder verlorenen Koeffizienten
für jeden
Block des Bilds werden anfänglich
auf ihre Erwartungswerte gesetzt, 410. Die Bilddaten werden
unter Verwendung der Anfangswerte der Koeffizienten dekodiert, 415.
Dann werden für
jeden Block aktualisierte Werte für die verlorenen oder beschädigten Koeffizienten
bestimmt, 420.
-
Die aktualisierten Werte werden dazu
benutzt, die Pixelwerte des dekodierten Bilds zu aktualisieren, 430.
Es kann eine Verzögerung
vorgesehen sein, um für
jeden Block des Bilds aktualisierte Werte bestimmen zu können, 435.
Die Schritte 405 bis 435 können dann in einer gegebene
Anzahl von Iterationen wiederholt werden, um das dekodierte Bild
weiter zu verbessern, 440.
-
Das Verfahren von 4 benutzt eine feste Anzahl von Iterationen,
die eine einfache Hardware-Implementierung für einen Dekodierer ermöglicht,
der eine Kaskadenstruktur benutzt, wie dies in 5 dargestellt ist. Die Verzögerungen
können
in dem System enthalten sein, um Zeit für die Aktualisierung der Nachbarblöcke zu gewinnen,
bevor E(X) neu berechnet wird. Es ist jedoch nicht erforderlich,
starr an einer vorgeschriebenen Anzahl von Iterationen festzuhalten.
Die Iteration kann ohne weiteres zu irgendeiner Zeit gestoppt werden.
Außerdem
hat die Iteration keine Wirkung, wenn keine benachbarten Blockfehler
vorliegen.
-
Wie 5 zeigt,
werden die Eingangsbilddaten von einer Logik 510 aufgenommen,
die das Bild empfängt
und die Transformationsblöcke
in der Abtastreihenfolge rekonstruiert. Das rekonstruierte Bild
wird der Logik 520 zugeführt, die jeden N×N-Block
dekodiert. Die Logik 530 detektiert irgendwelche Fehler,
die in dem N×N-Block
vorhanden sind. Der Block wird von der Logik 540 empfangen,
die aktualisierte Werte für
den Transformationsblock bestimmt. Die Verzögerungslogik 540 schafft
Zeit für
die Dekodierung der Nachbarblöcke,
bevor die aktualisierten Werte des N×N-Blocks weiter verfeinert
werden. Die Logik 550 aktualisiert dann die Werte des Transformationsblocks,
wobei sie Daten aus den Nachbarblöcken benutzt, um die Auflösung zu verbessern.
Die Verzögerungslogik 560 schafft
Zeit für
die Dekodierung der Nachbarblöcke,
und die Logik 570 aktualisiert die Werte des N×N-Blocks
erneut und gibt dann die Bilddaten aus.
-
Hardware-Überblick
-
Die Kodierung, Übertragung und anschließende Dekodierung
des Signals werden in dem in 6 dargestellten
Gerät durchgeführt. Das
Signal 600 ist ein Datenstrom, der dem Kodierer 610 zugeführt wird.
Der Kodierer 610 folgt einem Komprimierungs-Algorithmus,
z.B. einem Komprimierungs-Algorithmus mit „Adaptive Dynamic Range Coding" („ADRC"). Eine nähere Beschreibung
der ADRC-Kodierung und -Pufferung ist in dem US-Patent Nr. 4 722
003 mit dem Titel „High
Efficiency Coding Apparatus" und
in dem US-Patent 4 845 560, ebenfalls mit dem Titel „High Efficiency
Coding Apparatus" beschrieben,
die an den Inhaber der vorliegenden Erfindung übertragen sind. Der Kodierer
erzeugt Pakete 1,...N für
die Übertragung über das Übertragungsmedium 635.
Der Dekodierer 620 empfängt
Pakete 1,...N von dem Übertragungsmedium 635 und
erzeugt das Signal 630. Das Signal 630 ist eine
Rekonstruktion des Signals 600.
-
Der Kodierer 610 und der
Dekodierer 620 können
in unterschiedlicher Weise implementiert werden, um die Kodier-
und Dekodierfunktionen auszuführen.
In einem Ausführungsbeispiel
sind der Kodierer 610 und/oder der Dekodierer 620 als
Software verkörpert,
die auf einem Medium gespeichert ist und von einem Universalcomputer
oder einem speziell konfigurierten Computersystem ausgeführt wird,
das typischerweise eine zentrale Verarbeitungseinheit, einen Speicher
und eine oder mehrere Eingabe-/Ausgabevorrichtungen und Coprozessoren
enthält.
Alternativ können
der Kodierer 610 und/oder der Dekodierer 620 als
logische Hardwareschaltungen implementiert sein, um diese Funktionen
auszuführen.
Außerdem
können
der Kodierer 610 und/oder der Dekodierer 620 als
eine Kombination von Hardware, Software oder Firmware implementiert sein.
Darüber
hinaus kann der in 5 dargestellte
Dekodierer benutzt werden, um den in 6 dargestellten Dekodierer 610 zu
implementieren.
-
In einem Ausführungsbeispiel ist das Signal 600 ein
Farbvideobild mit einer Sequenz von Videovollbildern, wobei jedes
Vollbild Information enthält,
die für
ein Bild eines Zeilensprung-Videosystems repräsentativ ist. Jedes Vollbild
ist aus zwei Halbbildern zusammengesetzt, wobei ein Halbbild die
Daten der geradzahligen Zeilen des Bilds und das andere Halbbild
die ungeradzahligen Zeilen des Bilds enthält. Die Daten enthalten Pixelwerte,
die die Farbkomponenten einer entsprechenden Stelle in dem Bild
beschreiben. In einem Ausführungsbeispiel
bestehen die Farbkomponenten z.B. aus dem Luminanzsignal Y und den
Farb differenzsignalen U und V. Es ist leicht erkennbar, daß der Prozeß gemäß vorliegender
Erfindung auch auf andere Signale als Zeilensprung-Videosignale
angewendet werden kann. Es ist außerdem offensichtlich, daß die vorliegende
Erfindung nicht auf Implementierungen in dem Y-, U-, V-Farbraum
beschränkt
ist, sondern auch auf Bilder angewendet werden kann, die in anderen
Farbräumen
dargestellt werden.
-
Es sei noch einmal auf 6 Bezug genommen. Der Kodierer 610 trennt
die Y-, U- und V-Signale
und verarbeitet jede Gruppe von Signalen unabhängig nach Maßgabe des
Kompressionsalgorithmus. Zur Vereinfachung der Diskussion bezieht
sich die folgende Beschreibung auf die Verarbeitung des Y-Signals.
Die Kodierschritte werden jedoch für die U- und V-Signale entsprechend
repliziert.
-
In einem Ausführungsbeispiel gruppiert der
Kodierer 610 die Y-Signale über zwei im folgenden als Vollbildpaar
bezeichnete, aufeinanderfolgende Vollbilder des Signals 600 in
dreidimensionale Blöcke
(„3D-Blöcke"). Bei einem Ausführungsbeispiel
wird ein 3D-Block aus der Gruppierung zweier 2D-Blöcke aus
dem gleichen lokalisierten Bereich über ein gegebenes Vollbildpaar
erzeugt, wobei ein zweidimensionaler 2D-Block durch Gruppieren lokalisierter
Pixel innerhalb eines Vollbilds oder eines Halbbilds erzeugt wird.
Der hier beschriebene Prozeß läßt sich
auf unterschiedliche Blockstrukturen anwenden. Das Gruppieren von
Signalen wird weiter unten in dem Abschnitt über die Bild-in-Block-Abbildung
näher beschrieben.
-
In einem Ausführungsbeispiel enthält ein einzelnes
Vollbild 5280 2D-Blöcke,
wobei jeder 2D-Block 64 Pixel umfaßt. Somit enthält ein Vollbildpaar
5280 3D-Blöcke,
da für
die Bildung eines 3D-Blocks ein 2D-Block aus einem ersten Vollbild
und ein 2D-Block aus einem nachfolgenden Vollbild gesammelt werden.
-
Bild-in-Block-Abbildung
-
Die Unterabtast-Blockstruktur von 1, die für das Schätzen von E(X) benutzt wird,
kann dadurch gebildet werden, daß Unterabtastwerte eines Bilds
auf die Blockstruktur abgebildet werden, wie dies in 7 und 8 dargestellt ist. Die Bild-in-Block-Abbildung
wird zu dem Zweck durchgeführt,
ein Vollbild oder einen Vollbildsatz von Daten in 2D-Blöcke bzw.
3D-Blöcke zu unterteilen.
Darüber
hinaus umfaßt
die Bild-in-Block-Abbildung die Benutzung eines komplementären und/oder
ineinandergreifenden Musters, um die Pixel in einem Vollbild zu
unterteilen und bei Übertragungsverlusten
eine robuste Fehlerkorrektur zu erleichtern.
-
7 zeigt
ein Ausführungsbeispiel
eines Bild-in-Block-Abbildungsprozesses für einen exemplarischen 16-Pixelabschnitt
eines Bilds. Das Bild 700 umfaßt 16 Pixel, die einen lokalisierten
Bereich eines einzelnen Vollbilds bilden. Jedes Pixel in dem Bild 700 wird
durch einen Intensitätswert
dargestellt. Das Pixel links oben in dem Bild hat z.B. den Intensitätswert 100,
während
das Pixel rechts unten in dem Bild den Intensitätswert 10 hat.
-
In einem Ausführungsbeispiel werden Pixel
aus unterschiedlichen Bereichen des Bilds 700 benutzt, um
2D-Blöcke 710, 720, 730 und 740 zu
erzeugen. Die 2D-Blöcke 710, 720, 730 und 740 werden
kodiert, verwürfelt
(wie weiter unten dargestellt) und übertragen. Im Anschluß an die Übertragung
werden die 2D-Blöcke 710, 720, 730 und 740 rekombiniert
und zur Erzeugung des Bilds 750 benutzt. Das Bild 750 ist
eine Rekonstruktion des Bilds 700.
-
Um trotz eines möglichen Übertragungsverlustes eine akkurate
Darstellung des Bilds 700 zu gewährleisten, stellt 7 eine ineinandergreifende,
komplementäre
Blockstruktur dar, von der in 7 ein
Ausführungsbeispiel
dargestellt ist, das zum Rekonstruieren des Bilds 750 benutzt
wird. Die zur Erzeugung der 2D-Blöcke 710, 720, 730 und 740 benutzte
Pixelauswahl stellt insbesondere sicher, daß bei der Rekonstruktion des
Bilds 750 ein komplementäres und/oder ineinandergreifendes
Muster benutzt wird, um die Blöcke
zu rekombinieren. Deshalb werden angrenzende Abschnitte des Bilds 750 bei
der Rekonstruktion nicht verzerrt, wenn ein Attribut eines speziellen
2D-Blöcks
während
der Übertragung
verlorengeht.
-
1 und 8 zeigen weitere komplementäre und ineinandergreifende
2D-Blockstrukturen. Es können
auch andere Strukturen benutzt werden. Ähnlich wie in 7 gewährleisten
die in 8 dargestellten 2D-Blockstrukturen,
daß für einen
gegebenen 2D-Block trotz Übertragungsverlusten
umgebende 2D-Blöcke vorhanden
sind. Die Muster 810a, 810b und 810d benutzen
bei der Abbildung von Pixeln auf aufeinanderfolgende 2D-Blöcke jedoch
eine horizontale und/oder vertikale Verschiebung. Horizontales Verschieben
beschreibt eine Verschiebung der Rasterstruktur um eine vorbestimmte
Anzahl von Pixeln in vertikaler Richtung, bevor eine neue 2D-Blockgrenze
beginnt. In der Anwendung kann entweder nur horizontales Verschieben
oder nur vertikales Verschieben oder eine Kombination aus horizontalem
und vertikalem Verschieben angewendet werden.
-
Das Muster 810a ist ein
Spiralmuster, das für
die Bild-in-Block-Abbildung benutzt wird. Das Spiralmuster folgt
einer horizontalen Verschiebung, um während des Bild-in-Block-Abbildungsprozesses
aufeinanderfolgende 2D-Blöcke
zu erzeugen. Die Muster 810a und 810d zeigen komplementäre Muster,
in denen die Pixelauswahl durch eine horizontale und vertikale Verschiebung
bewegt wird, um während
des Bild-in-Block-Abbildungsprozesses aufeinanderfolgende 2D-Blöcke zu erzeugen.
Ferner zeigen die Muster 810b und 810d alternierende
Offsets bei der Pixelauswahl zwischen 2D-Blöcken. Das Muster 810c zeigt
die Benutzung einer unregelmäßigen Abtastung
von Pixeln, um einen 2D-Block für
die Bild-in-Block-Abbildung zu erzeugen. Dementsprechend folgt die
Bild-in-Block-Abbildung einer beliebigen Abbildungsstruktur unter
der Voraussetzung, daß ein
Pixel in einem 2D-Block nur einmal abgebildet wird.
-
7 und 8 beschreiben die Bild-in-Block-Abbildung
für die
Erzeugung von 2D-Blöcken.
Es ist ohne weiteres erkennbar, daß diese Prozesse auch auf 3D-Blöcke anwendbar
sind. Wie oben beschrieben wurde, folgt die Erzeugung von 3D-Blöcken der
gleichen Grenzdefinition wie ein 2D-Block, wobei die Grenzteilung
jedoch über
ein nachfolgendes Vollbild verläuft
und in einem 3D-Block resultiert. Ein 3D-Block wird dadurch erzeugt,
daß die
Pixel, die für
die Definition eines 2D-Blocks in einem ersten Vollbild benutzt
werden, zusammen mit Pixeln aus einem 2D-Block in einem nachfolgenden
Vollbild gesammelt werden. In einem Ausführungsbeispiel stammen sowohl
die Pixel in dem 2D-Block aus dem ersten Vollbild als auch in dem
2D-Block aus dem nachfolgenden Vollbild von exakt der gleichen Stelle.
-
Diese und andere Ausführungsbeispiele
der vorliegenden Erfindung können
nach der hier vorgelegten Lehre realisiert werden, und es ist offensichtlich,
daß verschiedene
Modifizierungen und Änderungen
in diesen Lehren vorgenommen werden können, ohne daß damit
der breitere Geltungsbereich und der Geist der Erfindung verlassen
wird. Die Beschreibung und die Zeichnungen sind deshalb in einem
illustrativen und nicht in einem restriktiven Sinne zu betrachten
und der Geltungsbereich der Erfindung wird nur durch die Ansprüche bestimmt.
-
Zusammenfassung
-
Es wird ein Verfahren für eine robuste
Zeitdomänen-Blockdekodierung
offenbart. In einem Ausführungsbeispiel
umfaßt
das Verfahren das Empfangen eines Blocks von Transformationsdomänen-Koeffizienten,
das Detektieren von Fehlern in einem oder mehreren Transformationsdomänen-Koeffizienten,
das Dekodieren von Pixelwerten aus den Transformationsdomänen-Koeffizienten,
das Bestimmen eines ersten Schätzwerts
für jeden
fehlerhaften Pixelwert und das Aktualisieren der dekodierten Pixelwerte.