-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft ein Verfahren zur Vermeidung von
Fehlern beim Runden von Werten nach Durchführung einer inversen diskreten
Kosinus-Transformation,
sowie eine Codiervorrichtung und eine Decodiervorrichtung, die das
Verfahren verwenden.
-
Technischer Hintergrund
-
Auf
Grund von Bandbreitenbeschränkungen
ist eine Vielzahl von verlustfreien und verlustbehafteten Codierungstechniken
für die Übertragung
von Bild- und/oder
Tonmaterial bekannt, um die zu übertragende
Datenmenge zu reduzieren. Viele bekannte Codierverfahren verwenden
orthogonale Transformationen, wie z. B. die Fourier-Transformation
oder die Kosinus-Transformation.
-
Aus
dem MPEG-1-Video-Standard (ISO/IEC 11172-2) und dem MPEG-2-Video-Standard (ISO/IEC 13818-2)
ist eine große
Anzahl unterschiedlicher Verfahren bekannt, um Videomaterial von
Redundanz zu befreien, seine Datenmenge zu reduzieren und für eine sichere Übertragung über eine
Funkstrecke oder ein Speichermedium zu sorgen. Die Inhalte des MPEG-1-Video-Standards
(ISO/IEC 11172-2) und des MPEG-2-Video-Standards (ISO/IEC 13818-2)
sind hiermit durch Referenz eingebunden. Beide MPEG-Standards schreiben
die Verwendung der inversen diskreten Kosinus-Transformation (IDCT)
im Decoder als inverse orthogonale Transformation vor. Sie schreiben
jedoch nicht die genaue Implementierung vor, sondern beschreiben
lediglich die erforderliche minimale Genauigkeit.
-
Häufig wird
nach Berechnung der inversen diskreten Kosinus-Transformation ein
Runden von vorliegenden reellen Zahlen auf ganze Zahlen vorgenommen.
Wie die IEEE Standard-Spezifikation für die Implementierung der 8×8 inversen
diskreten Kosinus-Transformation von 1990, auf die sowohl der MPEG-1-Standard
als auch der MPEG-2-Standard Bezug nehmen, beschreibt, kann es beim
Runden von Werten, die genau zwischen zwei ganzen Zahlen liegen,
zu Fehlern kommen. Es ist bekannt, dass Codierer einen inversen
Zweig aufweisen können,
der ein bereits codiertes Bild wieder decodiert. In diesem inversen
Zweig wird dann auch wie im Decoder eine inverse diskrete Kosinus-Transformation
durchgeführt.
Wird nun bei Werten, die genau zwischen zwei ganzen Zahlen liegen,
im Codierer anders gerundet als im Decoder, so entsteht ein Anpassungsfehler,
wie es in der IEEE Spezifikation beschrieben ist.
-
MPEG-1
sieht zur Reduktion solcher Anpassungsfehler vor, dass alle Koeffizienten
vor der IDCT ungeradzahlig gemacht werden. Hierdurch wird die Wahrscheinlichkeit
reduziert, dass am Ausgang der IDCT-Werte für Bildpunkte auftreten, die
genau zwischen zwei ganzen Zahlen liegen.
-
Die
EP 0 638 218 B1 beschreibt
ein Verfahren, um einen Satz von Transformationskoeffizienten zu verarbeiten,
und um einen fehler-immunen Satz von Transformationskoeffizienten
für die
Verarbeitung durch eine inverse orthogonale Transformation bereitzustellen.
Dieser fehler-immune Satz von Transformationskoeffizienten ist laut
EP 0 638 218 B1 bei
der inversen orthogonalen Transformation gegen Rundungsfehler immun. In
dem Verfahren der
EP
0 638 218 B1 werden die Transformationskoeffizienten in
einem Satz summiert und die Parität der Summe wird geprüft (d. h.
ob die Summe ungeradzahlig oder geradzahlig ist).
-
Wenn
sich zeigt, dass die Parität
der Summe geradzahlig ist, wird die Parität eines der Transformationskoeffizienten
in dem Satz invertiert, um einen paritätsinvertierten Transformationskoeffizienten
zu gewinnen. Der paritäts-invertierte
Transformationskoeffizient macht die Parität der Summe ungeradzahlig.
Schließlich
wird der Satz von Transformationskoeffizienten, einschließlich des
paritätsinvertierten
Transformationskoeffizienten, als fehler-immuner Satz für die nachfolgende
IDCT bereitgestellt.
-
Die
WO 01/17270 beschreibt
ein Verfahren zum effizienteren und schnelleren Kodieren von Videodaten,
bei dem auf der Koeffizientenebene der Koeffizient C
(7,7) des
Koeffizientenblocks, immer wenn er den Wert 1 aufweist, zwingend
auf den Wert 0 gesetzt wird, bevor eine IDCT durchgeführt wird.
Dadurch werden IDCT-Kodierungsschritte eingespart. Zur Korrektur
der nach der IDCT erhaltenen fehlerhaften Bildwerte, wird zu den
erhaltenen Bildwerten dann eine im Voraus berechenbare immer gleiche
Dummy Matrix hinzuaddiert. Die Dummy Matrix ergibt sich aus einer
IDCT einer Koeffizientenmatrix, die einen Koeffizienten C
(7,7) mit dem Wert 1 und ansonsten lediglich
Nullen aufweist.
-
Die
JP H09-187 001 offenbart
ein Verfahren zur Vermeidung von Rundungsfehlern beim Runden von Werten
nach der Durchführung
einer inversen diskreten Kosinustransformation. Hier wird nach einer
inversen diskreten Kosinustransformation ein exakt berechneter Manipulationswerteblock
zu den Bildpunktwerten addiert, bevor eine Rundungsoperation durchgeführt wird.
Die Addition des Manipulationswerteblocks nach der IDCT entspricht
im Prinzip einer Manipulation des Koeffizienten 7,7 vor der IDCT.
-
Die
JP H09-187 001 geht jedoch,
wie auch die obigen Dokumente, von idealen Implementierungen der IDCT
aus. Tatsächlich
können
reale Implementierungen der IDCT sowie der nachfolgenden Rundungsoperation
jedoch im Codierer und im Decoder unterschiedlich sein, da sie z.
B. von unterschiedlichen Herstellern hergestellt sein können. Auf
Grund solcher unterschiedlichen Implementierungen kann es bei Werten,
die in einem kleinen Bereich genau zwischen zwei Werten liegen,
auf die gerundet werden kann, zu unterschiedlichen Ergebnissen kommen.
Dieser Fehler soll minimiert werden.
-
Zusammenfassung der Erfindung
-
Ausgehend
vom Stand der Technik ist es die Aufgabe der vorliegenden Erfindung,
ein verbessertes Verfahren zur Vermeidung von Fehlern im Rahmen
der Durchführung
einer inversen diskreten Kosinus-Transformation, sowie eine Codiervorrichtung
und eine Decodiervorrichtung, die das Verfahren verwenden, bereitzustellen.
-
Die
Aufgabe wird gemäß der Erfindung
gelöst
durch das Verfahren zur Vermeidung von Fehlern, das in dem unabhängigen Patentanspruch
1 beschrieben ist. Bevorzugte Ausführungsformen sind in den abhängigen Patentansprüchen beschrieben.
-
Die
vorliegende Erfindung stellt gemäß einer
bevorzugten Ausführungsform
ein Verfahren zur Vermeidung von Fehlern beim Runden von Werten
nach Durchführung
von inversen diskreten Kosinus-Transformationen bereit. In einem
ersten Schritt a) werden die Koeffizientenwerte von einer Mehrzahl
von Koeffizienten aufsummiert, wobei die Koeffizienten zu einem
Block von Koeffizienten gehören.
Gemäß einer
vorteilhaften Ausgestaltung wird in diesem ersten Schritt die Summe
der Werte aller Koeffizienten in dem jeweiligen Block ermittelt.
In einem zweiten Schritt b) wird beurteilt, ob die Summe der Koeffizientenwerte
geradzahlig oder ungeradzahlig ist. In einem dritten Schritt c)
wird dann der Koeffizientenblock mittels einer bestimmten Implementierung
einer inversen diskreten Kosinus-Transformation
in einen Block von Bildpunkten transformiert, wobei jeder Bildpunkt
einen Bildpunktwert aufweist, der von der gewählten Implementierung der inversen
diskreten Kosinus-Transformation abhängig ist. In einem vierten
Schritt d) wird, wenn die Beurteilung der Summe der Koeffizientenwerte
ergeben hat, dass die Summe geradzahlig ist, ein Manipulationswerteblock
zu den Bildpunktwerten des Blocks von Bildpunkten addiert oder subtrahiert,
um einen manipulierten Bildpunktblocks zu erzeugen, wobei in einem
Schritt e) der genannte Manipulationswerteblock in Abhängigkeit
der gewählten
Implementierung der inversen diskreten Kosinus-Transformation durch
numerische Optimierung ermittelt wird, um Rundungsfehler bei einer
nachfolgenden Rundungsoperation und Fehler aufgrund unterschiedlicher
Implementierungen zu vermeiden.
-
Bevorzugt
weist der Manipulationswerteblock Werte auf, deren Vorzeichen in
der Form eines Schachbrettmusters angeordnet sind, wobei die Beträge der Werte
zu den Rändern
des Blocks hin abnehmen. Ein besonders geeigneter Manipulationswerteblock
besteht aus einer quadratischen, symmetrischen Matrix. Der Begriff
Schachbrettmuster, wie er in dieser Beschreibung verwendet wird,
bezieht sich auf die Anordnung der + bzw. -Vorzeichen der Manipulationswerte.
Gemäß einer
bevorzugten Ausführungsform
wird der Block von Koeffizienten, der Block von Bildpunkten und
der Block von Manipulationswerten jeweils durch eine Matrix von 8×8 Werten
gebildet.
-
Es
ist vorteilhaft im vierten Schritt d) den Manipulationswerteblock
zu den Bildpunktwerten des Blocks von Bildpunkten hinzuzuaddieren,
wenn der Wert eines vorbestimmten Koeffizienten gerade ist, und
den Manipulationswerteblock von den Bildpunktwerten des Blocks von
Bildpunkten zu subtrahieren, wenn der Wert des vorbestimmten Koeffizienten
ungerade ist. Auf diese Weise kann sichergestellt werden, dass keiner
der manipulierten Bildpunktwerte einen Wert genau zwischen zwei
ganzen Zahlen aufweist, so dass die nachfolgende Rundungsoperation
mit klar vorhersehbarem Ergebnis ausgeführt werden kann. In dem Rundungsschritt
f) werden die manipulierten Bildpunktwerte des manipulierten Bildpunktblocks
jeweils auf eine ganze Zahl gerundet. Bei dieser Rundung wird bevorzugt
jeweils zur nächstliegenden
ganzen Zahl gerundet.
-
Die
vorliegende Erfindung kann ebenfalls in vorteilhafter Weise eingesetzt
werden, um ein komprimiertes Videosignal bereitzustellen, wobei
zumindest die folgenden Schritte durchgeführt werden: Durchführen einer
Vorhersagecodierung mittels Vergleich aufeinanderfolgender Bilder,
Transformieren von Bildblöcken
mittels einer diskreten Kosinus-Transformation in Blöcke von
Transformationskoeffizienten, wobei zur Vorhersagecodierung in einem
inversen Zweig des Codierers, in dem ein codiertes Bild decodiert
wird, das erfindungsgemäße Verfahren
zur Vermeidung von Rundungsfehlern verwendet wird. Im Rahmen der
Vorhersagecodierung kann eine Vielzahl von Verfahren, wie Bewegungskompensation,
Block-Matching, Interpolation usw., verwendet werden.
-
Es
ist vorteilhaft, das komprimierte Videosignal auf einem Speichermedium
zu speichern, insbesondere einem optisch auslesbaren Speichermedium
wie einer CD oder DVD. Alternativ kann das komprimierte Videosignal
auf einer Festplatte eines Computers oder z. B. auf einem Magnetband
gespeichert werden. Gemäß der Erfindung
wird weiterhin ein solches Speichermedium selbst bereitgestellt,
auf dem ein komprimiertes Videosignal gemäß der vorliegenden Erfindung
gespeichert ist.
-
Darüber hinaus
stellt die vorliegende Erfindung eine Codiervorrichtung und eine
Decodiervorrichtung bereit, die jeweils ein Verfahren zur Vermeidung
von Rundungsfehlern gemäß der Erfindung
durchführen.
-
Kurze Beschreibung der Zeichnungen
-
Die
beigefügten
Zeichnungen dienen lediglich zur Veranschaulichung und zum besseren
Verständnis der
vorliegenden Erfindung und ihrer Vorteile. Es zeigen:
-
1 eine
schematische Darstellung eines Codierers, in dem die vorliegende
Erfindung verwendet wird.
-
2 eine
schematische Darstellung eines Decoders, in dem die vorliegende Erfindung
verwendet wird.
-
3 eine
schematische Darstellung der Rundungsfehlervermeidung gemäß der vorliegenden
Erfindung.
-
4 eine
Abbildung eines Blocks von Manipulationswerten gemäß der vorliegenden
Erfindung.
-
5 ein
Flussdiagramm, das das Verfahren zur Vermeidung von Rundungsfehlern
gemäß der vorliegenden
Erfindung illustriert.
-
Detaillierte Beschreibung
bevorzugter Ausführungsformen
-
In 1 ist
schematisch die Struktur eines typischen Video-Codierers 1 dargestellt.
Eine Möglichkeit, Video-Bilder
zu codieren, stellt z. B. eine Codierung gemäß MPEG dar. Die folgende Beschreibung
wird nur zur Veranschaulichung auf dem Hintergrund einer Video-Codierung
gemäß MPEG ausgeführt, ohne
dass der Anwendungsbereich der vorliegenden Erfindung auf eine solche
Codierung beschränkt
ist. Der MPEG-2-Standard seht drei verschiedene Typen von Bildern
für die
Codierung vor, nämlich
I-, P- und B-Bilder. I-Bilder werden unabhängig von anderen Bildern codiert,
sie werden einer so genannten Intra-Codierung unterzogen. P-Bilder
werden aus einem vorhergehenden I-Bild prädiziert, sie sind also von
einem zeitlich vorhergehenden I-Bild abhängig. B-Bilder können von
einem vorhergehenden und/oder einem nachfolgendem I- bzw. P-Bild
abhängig
sein.
-
Wenn
ein Video-Codierer 1, wie er in 1 dargestellt
ist, für
eine derartige MPEG-Codierung eingesetzt wird, wird z. B. bei P-Bildern
nicht das Eingangsbild, sondern ein Prädiktionsfehlerbild 12 codiert
und übertragen.
Aus einem bereits übertragenen
Bild in einem Bildspeicher 9 wird mittels Bewegungskompensation
(MC-Motion Compensation) 10 ein Prädiktionsbild 11 erzeugt.
Verschiebungen von einem Bild zu einem anderen Bild werden durch
Bewegungsvektoren beschrieben. Die Differenz von Eingangsbild 2 und
Prädiktionsbild 11 ergibt
das Prädiktionsfehlerbild 12.
Die Pixelwerte des Prädiktionsfehlerbildes 12 werden
mittels DCT 3 transformiert und ergeben einen Satz von
Transformationskoeffi zienten. Diese werden in einem Quantisierer 4 quantisiert.
Die quantisierten Transformationskoeffizienten und die Bewegungsvektoren
werden mittels eines VLC (Variable Length Coder) 5 in Codeworte
umgewandelt und ergeben den Bitstrom zur Speicherung oder Übertragung.
Jedes zum Decoder 20 übersandte
Bild muss auch im Codierer 1 möglichst empfängergetreu
im Bildspeicher 9 für
die nächste
Prädiktion
zur Verfügung
stehen. Aus diesem Grund beinhaltet der Codierer 1 auch
einen lokalen Decoder, der das Decoderbild B' (n) 8 rekonstruiert. Der lokale
Decoder beinhaltet einen inversen Quantisierer 6 und eine
Vorrichtung zur Durchführung
einer inversen diskreten Kosinus-Transformation (IDCT) 7.
Das erfindungsgemäße Verfahren
zur Vermeidung von Rundungsfehlern beim Runden von Werten nach Durchführung der
IDCT wird im Bereich des lokalen Decoders, der den inversen Quantisierer 6 und die
IDCT 7 aufweist, eingesetzt. Ein Vergleich mit 2 zeigt,
dass die lokalen Decoder-Blöcke
des Codierers mit denen des Decoders prinzipiell übereinstimmen.
-
2 zeigt
schematisch die grundlegende Struktur eines typischen Video-Decoders 20.
Der eingehende Bitstrom transportiert unter anderem Informationen über Bewegungsvektoren
und Prädiktionsfehlerbilder.
Ein Variable Length Decoder (VLD) 21 wandelt den Bitstrom
in Quantisiererwerte und Bewegungsvektoren um. Die Quantisiererwerte
werden durch den inversen Quantisierer 22 in einen Satz
von Transformationskoeffizienten und danach mittels einer inversen
DCT (IDCT) 23 in Pixel des Prädiktionsfehlerbildes 24 umgewandelt.
Das rekonstruierte Bild 28 ergibt sich aus der Addition
des Prädiktionsbildes 27 und
des Prädiktionsfehlerbildes 24.
Das Prädiktionsbild 27 wird
mittels Bewegungskompensation (MC–Motion Compensation) 26 aus dem
vorhergehenden rekonstruierten Bild, das im Bildspeicher 25 gespeichert
ist, erzeugt. Genau wie bei dem Codierer 1 wird auch im
Decoder 20 das erfindungsgemäße Verfahren zur Vermeidung
von Rundungsfehlern beim Runden von Werten nach Durchführung der
IDCT im Bereich der IDCT 23 eingesetzt.
-
Wie
aus den 1 und 2 ersichtlich
ist, enthält
sowohl der Codierer 1 als auch der Decoder 20 einen
IDCT-Block 7 bzw. 23. Aus den Koeffizienten, die
der inversen Quantisierung unterzogen wurden, werden mit Hilfe der
IDCT Pixelwerte (oder auch Bildpunktwert genannt) rekonstruiert.
Diese Berechnung findet mit endlicher Genauigkeit statt. Um den
Rechen- und Speicheraufwand bei der weiteren Verarbeitung zu reduzieren,
werden die mittels IDCT 7, 23 erhaltenen Pixelwerte
gerundet. Bevorzugt wird jeder Pixelwert auf eine ganze Zahl gerundet.
Eine solche Rundung wird sowohl im Codierer 1 als auch
im Decoder 20 vorgenommen. Die Implementierungen der IDCT 7, 23 sowie
der nachfolgenden Rundungsoperation können jedoch im Codierer 1 und
im Decoder 20 unterschiedlich sein, da sie z. B. von unterschiedlichen
Herstellern hergestellt sein können.
Auf Grund solcher unterschiedlichen Implementierungen kann es bei
Werten, die in einem kleinen Bereich genau zwischen zwei Werten
liegen, auf die gerundet werden kann, zu unterschiedlichen Ergebnissen kommen.
Es kann somit von der Implementierung der Rundungsoperation abhängen, ob
ein Wert aufgerundet oder abgerundet wird. Liegt im Codierer 1 und
im Decoder 20 nach der Rundung ein unterschiedlicher Wert vor,
so spricht man von einem Anpassungsfehler.
-
3 beschreibt
eine bevorzugte Ausgestaltung des Verfahrens gemäß der vorliegenden Erfindung, durch
die das Auftreten von Anpassungsfehlern reduziert werden kann. Ein
Block von Koeffizientenwerten F'[v][u],
wobei v und u z. B. ganze Zahlen im Bereich 0, 1, ..., 7 sind, wird
der inversen diskreten Kosinus-Transformation
(IDCT) 7, 23 unterworfen. Das Ergebnis der IDCT 7, 23 ist
ein Block von Bildpunktwerten f'[y][x],
die bevorzugt als reelle Zahlen mit endlicher Genauigkeit vorliegen.
Zudem wird eine Summe S' über die
Koeffizientenwerte F'[v][u]
gebildet. Dann wird in einer Paritätsbeurteilungsvorrichtung 31 beurteilt,
ob der Wert der Summe S' gerade
oder ungerade ist. Wenn die Summe S' eine ungerade Zahl ist, bleiben die
Bildpunktwerte unverändert,
es gilt f[y][x] = f'[y][x].
Ist die Summe S' jedoch
gerade, so wird zu dem Block von Bildpunktwerten f'[y][x] ein Block
von Manipulationswerten B[y][x] durch einen Addierer/Subtrahierer 32 hinzuaddiert
bzw. davon abgezogen, um einen manipulierten Bildpunktwerteblock
zu erhalten, f[y][x] = f'[y][x]
+/– B[y][x].
Die manipulierten Bildpunktwerte f[y][x] werden nachfolgend gerundet,
wobei die manipulierten Bildpunktwerte für den Fall einer ungeraden
Summe S' gleich
den Bildpunktwerten f'[y][x]
sind. Durch die Manipulation der Bildpunktwerte wird vermieden,
dass Bildpunktwerte genau zwischen zwei ganzen Zahlen liegen bzw.
in einem kleinem Bereich genau zwischen ganzen Zahlen. Hierdurch
wird das Ergebnis der Rundungsoperation unabhängig von der Implementierung
der IDCT 7, 23 und der nachfolgenden Rundungsoperation,
wodurch die vorliegende Erfindung das Auftreten von Anpassungsfehlern
vermeidet.
-
In
dem Ausführungsbeispiel
von
3 wird, wenn die Summe der Werte des Koeffizientenblocks F'[v][u], wobei v und
u ganze Zahlen im Bereich 0, 1, ..., 7 sind, geradzahlig ist, den
rekonstruierten Pixelwerten im 8×8 Block f'[y][x] ein 8×8 festes Bildmuster B[y][x]
(Schachbrettmuster) überlagert.
Die Rundung auf ganze Zahlen wird auf Basis der manipulierten Bildpunktwerte
f[y][x] durchgeführt.
4 zeigt
ein Beispiel für
einen Manipulationswerteblock, wie er im Rahmen der vorliegenden
Erfindung eingesetzt werden kann. Die Werte sind zur besseren Übersichtlichkeit
auf vier Nachkommastellen gerundet. Das Beispiel in
4 ist
nicht beschränkend
zu verstehen, sondern es soll lediglich einen besonderes vorteilhaften
Manipulationswerteblock beschreiben. Die exakt zu verwendenden Werte
können
z. B. durch eine numerische Optimierung erzeugt werden. Am Beispiel
der
4 wird ebenfalls deutlich, dass im Rahmen einer
8×8 IDCT
bevorzugt eine quadratische Matrix von Manipulationswerten B[y][x]
der Größe 8×8 verwendet
wird, die symmetrisch ist. Die Vorzeichen der einzelnen Werte sind
wie ein Schachbrettmuster angeordnet, wobei der Wert oben links
ein positives Vorzeichen aufweist. Zudem nehmen die Werte der abgebildeten
Matrix betraglich nach außen
hin ab. Mit höherer
Genauigkeit als in
4 dargestellt lauten die Werte
der beispielhaften Matrix zeilenweise von oben links anfangend gelesen:
-
5 zeigt
ein Flussdiagramm, in dem der Ablauf des erfindungsgemäßen Verfahrens,
wie es in dem Codierer 1 bzw. dem Decoder 20 eingesetzt
wird, veranschaulicht ist. In Schritt S1 werden Koeffizientenwerte F'[v][u], die ein Ergebnis
der inversen Quantisierung 6 bzw. 22 sind, aufsummiert.
Danach wird in Schritt S2 die Parität der Summe S' beurteilt, d. h.
ob die Summe gerade oder ungerade ist. Wie aus der weiteren Beschreibung
deutlich werden wird, wird das Ergebnis der Beurteilung in Schritt
S2 erst in Schritt S4 für
eine Entscheidung verwendet, daher kann die Abfolge der Schritte
S2 und S3 auch vertauscht werden. In Schritt S3 werden die Koeffizienten
F'[v][u] mittels
IDCT 7 bzw. 23 in einen Block von Bildpunkten
f'[y][x] transformiert. Wie
bereits angedeutet, wird in Schritt S4 eine Entscheidung vorgenommen
abhängig
davon, ob die Parität der
Summe S' gemäß Beurteilung
in Schritt S2 ungerade bzw. gerade ist. Wenn die Parität ungerade
ist, schreitet die Verarbeitung zu Schritt S5 fort und die Bildpunktwerte
bleiben unverändert
f[y][x] = f'[y][x].
Wenn hingegen in Schritt S4 festgestellt wird, dass die Parität der Summe
S' aus Schritt S2
nicht ungerade ist – also gerade
ist – schreitet
die Verarbeitung zu Schritt S6 fort.
-
In
Schritt S6 wird geprüft,
ob der Wert des Koeffizienten F'[7][7]
ungerade ist. Dieser Koeffizient F'[7][7] kann entweder vor der Durchführung der
IDCT 7 bzw. 23 auf seine Parität untersucht werden, wobei
das Ergebnis der Untersuchung zwischengespeichert wird, oder eine
Kopie des Koeffizienten F'[7][7]
kann zwischengespeichert werden. Wenn der Wert des Koeffizienten
F'[7][7] aus dem
Frequenzbereich gerade ist, geht die Verarbeitung zu Schritt S7 über, wo
der Manipu lationswerteblock B[y][x] zu dem Bildpunktwerteblock f'[y][x] hinzuaddiert
wird, um einen Block von manipulierten Bildpunkten f[y][x] zu erhalten,
f[y][x] = f'[y][x]
+ B[y][x]. Wenn in Schritt S6 jedoch bestimmt wird, dass der Wert
des Koeffizienten F'[7][7]
ungerade ist, wird Schritt S8 ausgeführt, wo der Manipulationswerteblock
B[y][x] von dem Bildpunktwerteblock f'[y][x] subtrahiert wird, um einen Block
von manipulierten Bildpunkten f[y][x] zu erhalten, f[y][x] = f'[y][x] – B[y][x].
-
Anschließend an
den Schritt S5, S7 bzw. S8 werden in Schritt S9 die Bildpunktwerte
f[y][x] jeweils auf eine ganze Zahl gerundet. Durch das Verfahren
der vorliegenden Erfindung wird vermieden, dass Bildpunktwerte für das Runden
vorliegen, die genau zwischen zwei ganzen Zahlen liegen, somit werden
Anpassungsfehler unabhängig
von der genauen Implementierung vermieden.