DE102006049232B4 - Method and apparatus for avoiding errors when rounding values after performing an inverse discrete cosine transformation - Google Patents

Method and apparatus for avoiding errors when rounding values after performing an inverse discrete cosine transformation Download PDF

Info

Publication number
DE102006049232B4
DE102006049232B4 DE102006049232A DE102006049232A DE102006049232B4 DE 102006049232 B4 DE102006049232 B4 DE 102006049232B4 DE 102006049232 A DE102006049232 A DE 102006049232A DE 102006049232 A DE102006049232 A DE 102006049232A DE 102006049232 B4 DE102006049232 B4 DE 102006049232B4
Authority
DE
Germany
Prior art keywords
block
values
coefficients
discrete cosine
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102006049232A
Other languages
German (de)
Other versions
DE102006049232A1 (en
Inventor
Thomas Prof. Sikora
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ECODISC TECHNOLOGY AG, ZUERICH, CH
Original Assignee
ODS Tech GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ODS Tech GmbH filed Critical ODS Tech GmbH
Priority to DE102006049232A priority Critical patent/DE102006049232B4/en
Priority to US12/443,163 priority patent/US20090198757A1/en
Priority to EP07819111A priority patent/EP2090109A2/en
Priority to PCT/EP2007/009046 priority patent/WO2008046622A2/en
Publication of DE102006049232A1 publication Critical patent/DE102006049232A1/en
Application granted granted Critical
Publication of DE102006049232B4 publication Critical patent/DE102006049232B4/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Discrete Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

Verfahren zur Vermeidung von Fehlern beim Runden von Werten nach Durchführung von inversen diskreten Kosinus-Transformationen (7, 23), wobei das Verfahren die folgenden Schritte aufweist:
a) Summieren von Koeffizientenwerten von einer Mehrzahl von Koeffizienten, wobei die Koeffizienten zu einem Block von Koeffizienten gehören (S1);
b) Beurteilen der Summen der Koeffizientenwerte, ob die Summe geradzahlig oder ungeradzahlig ist (S2);
c) Transformieren des Blocks von Koeffizienten mittels einer bestimmten Implementierung einer inversen diskreten Kosinus-Transformation (7, 23) in einen Block von Bildpunkten, wobei jeder Bildpunkt einen Bildpunktwert aufweist (S3), der von der gewählten Implementierung der inversen diskreten Kosinus-Transformation abhängig ist;
d) wenn die Beurteilung der Summe der Koeffizientenwerte ergeben hat (S4), dass die Summe geradzahlig ist: Addieren oder Subtrahieren eines Manipulationswerteblocks zu den Bildpunktwerten des Blocks von Bildpunkten, um einen manipulierten Bildpunktblock zu erzeugen, wobei
e) der genannte Manipulationswerteblock in Abhängigkeit der gewählten Implementierung der inversen diskreten Kosinus-Transformation durch...
A method of avoiding rounding errors after performing inverse discrete cosine transformations (7, 23), the method comprising the steps of:
a) summing coefficient values from a plurality of coefficients, the coefficients belonging to a block of coefficients (S1);
b) judging the sums of the coefficient values, whether the sum is even or odd (S2);
c) transforming the block of coefficients into a block of pixels by means of a particular inverse discrete cosine transformation implementation (7, 23), each pixel having a pixel value (S3) which depends on the chosen implementation of the inverse discrete cosine transformation is;
d) if the judgment of the sum of the coefficient values has resulted (S4) that the sum is even: adding or subtracting a manipulation value block to the pixel values of the block of pixels to produce a manipulated pixel block, wherein
e) said manipulation value block depending on the selected implementation of the inverse discrete cosine transformation by ...

Figure 00000001
Figure 00000001

Description

Gebiet der ErfindungField of the invention

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.The The present invention relates to a method for avoiding Errors when rounding values after performing an inverse discrete Cosine transform, and a coding device and a decoding device comprising the Use procedure.

Technischer HintergrundTechnical background

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.On Reason for bandwidth restrictions is a variety of lossless and lossy coding techniques for the transmission of image and / or Clay material known to be transmitted To reduce the amount of data. Use many known coding methods orthogonal transformations such. B. the Fourier transform or the cosine 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.Out the MPEG-1 video standard (ISO / IEC 11172-2) and the MPEG-2 video standard (ISO / IEC 13818-2) is a big one Number of different methods known to video footage of Reduce redundancy, reduce its amount of data and secure transmission over a Radio link or a storage medium. The contents of the MPEG-1 video standard (ISO / IEC 11172-2) and the MPEG-2 video standard (ISO / IEC 13818-2) are hereby incorporated by reference. Both MPEG standards write the use of inverse discrete cosine transformation (IDCT) in the decoder as an inverse orthogonal transformation. They write but not the exact implementation before, but describe only the required minimum accuracy.

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.Frequently becomes after calculating the inverse discrete cosine transformation Rounding of existing real numbers to integers. As the IEEE standard specification for the implementation of the 8 × 8 inverse discrete cosine transform of 1990, to which both the MPEG-1 standard As well as the MPEG-2 standard reference describes, it can at Rounds of values that are exactly between two integers come to mistakes. It is known that encoders have an inverse Can have branch, which decodes an already coded picture again. In this inverse Branch then becomes an inverse discrete cosine transformation as in the decoder carried out. Will now be at values that are exactly between two integers, Rounded differently in the encoder than in the decoder, this results in an adjustment error. as described in the IEEE specification.

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.MPEG-1 provides for the reduction of such fitting errors that all coefficients be made odd before the IDCT. This will be the probability reduces that occur at the output of the IDCT values for pixels that exactly between two integers.

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).The EP 0 638 218 B1 describes a method to process a set of transform coefficients and to provide an error-immune set of transform coefficients for inverse orthogonal transform processing. This error-immune set of transform coefficients is loud EP 0 638 218 B1 in the inverse orthogonal transformation immune to rounding errors. In the process of EP 0 638 218 B1 the transform coefficients are summed in a set and the parity of the sum is checked (ie, whether the sum is odd or even).

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.If It shows that the parity the sum is even, the parity becomes one of the transformation coefficients inverted in the sentence to a parity-inverted transform coefficient to win. The parity-inverted Transformation coefficient makes the parity of the sum odd. After all is the set of transform coefficients, including the parity- Transformation coefficients, as error-immune sentence for the following IDCT provided.

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.The WO 01/17270 describes a method for more efficient and faster coding of video data, in which, at the coefficient level, the coefficient C (7,7) of the coefficient block, whenever it has the value 1, is compulsorily set to the value 0 before an IDCT is performed. This saves IDCT encoding steps. To correct the defective image values obtained after the IDCT, a previously identical dummy matrix is then added to the image values obtained. The dummy matrix results from an IDCT of a coefficient matrix which has a coefficient C (7,7) with the value 1 and otherwise only zeros.

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.The JP H09-187,001 discloses a method for avoiding rounding errors when rounding Values after performing an inverse discrete cosine transform. Here, after an inverse discrete cosine transformation, an exactly calculated manipulation value block is added to the pixel values before a rounding operation is performed. The addition of the manipulation value block after the IDCT corresponds in principle to a manipulation of the coefficient 7.7 before the 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.The JP H09-187,001 However, like the above documents, it prefers ideal implementations of the IDCT. In fact, however, real implementations of the IDCT as well as the subsequent rounding operation may be different in the encoder and the decoder because they may be different. B. can be made by different manufacturers. Due to such different implementations, values that are in a small range exactly between two values that can be rounded to, may give different results. This error should be minimized.

Zusammenfassung der ErfindungSummary of the invention

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.outgoing It is the object of the present invention to an improved method for avoiding errors in the frame the implementation an inverse discrete cosine transform, as well as a coding device and a decoding apparatus using the method.

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.The Task is according to the invention solved by the method for avoiding errors, that in the independent claim 1 is described. Preferred embodiments are described in the dependent claims.

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.The present invention provides according to a preferred embodiment a method for avoiding errors when rounding values after execution of inverse discrete cosine transformations. In one first step a), the coefficient values of a plurality summed up by coefficients, the coefficients to a Block of coefficients belong. According to one advantageous embodiment, the sum in this first step the values of all coefficients in the respective block. In a second step b) it is judged whether the sum of the coefficient values even or odd. In a third step c) then becomes the coefficient block by means of a particular implementation an inverse discrete cosine transformation transformed into a block of pixels, each pixel has a pixel value different from the chosen implementation of the inverse discrete cosine transformation. In a fourth Step d), when judging the sum of the coefficient values has shown that the sum is even, a manipulation value block added or subtracted to the pixel values of the block of pixels, to produce a manipulated pixel block, wherein in one Step e) the said manipulation value block in dependence the chosen one Implementation of the inverse discrete cosine transformation by numerical optimization is determined to round off errors in a subsequent rounding operation and errors due to different Avoid implementations.

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.Prefers the manipulation value block has values whose sign in the shape of a checkerboard pattern are arranged, the amounts of the values to the edges of the block. A particularly suitable manipulation value block consists of a square, symmetric matrix. The term Checkerboard pattern as used in this description refers to the arrangement of the + or - sign of the manipulation values. According to one preferred embodiment becomes the block of coefficients, the block of pixels and the block of manipulation values each through a matrix of 8x8 values educated.

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.It is advantageous in the fourth step d) the Manipulationswerteblock add to the pixel values of the block of pixels, if the value of a predetermined coefficient is even, and the manipulation value block from the pixel values of the block of Subtracting pixels when the value of the predetermined coefficient is odd. In this way it can be ensured that none the manipulated pixel values have a value exactly between two has integers, so the subsequent rounding operation can be performed with a clearly predictable result. In the rounding step f) are the manipulated pixel values of the manipulated pixel block each rounded to an integer. In this rounding is preferred each to the nearest rounded whole number.

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.The present invention may also be advantageously employed to provide a compressed video signal, wherein at least the following steps are performed: performing predictive coding by comparing successive images, transforming image blocks By means of a discrete cosine transformation into blocks of transform coefficients, the method according to the invention for avoiding rounding errors is used for predictive coding in an inverse branch of the coder in which a coded picture is decoded. In predictive coding, a variety of methods such as motion compensation, block matching, interpolation, etc. may be used.

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.It is advantageous, the compressed video signal on a storage medium store, in particular an optically readable storage medium like a CD or DVD. Alternatively, the compressed video signal on a hard disk of a computer or z. B. on a magnetic tape get saved. According to the invention Furthermore, such a storage medium itself is provided, on the a compressed video signal according to the present invention is stored.

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.Furthermore the present invention provides a coding device and a Decoding device ready, each one a method of avoidance rounding errors according to the invention carry out.

Kurze Beschreibung der ZeichnungenBrief description of the drawings

Die beigefügten Zeichnungen dienen lediglich zur Veranschaulichung und zum besseren Verständnis der vorliegenden Erfindung und ihrer Vorteile. Es zeigen:The attached Drawings are for illustrative purposes only and for the better Understanding of present invention and its advantages. Show it:

1 eine schematische Darstellung eines Codierers, in dem die vorliegende Erfindung verwendet wird. 1 a schematic representation of an encoder in which the present invention is used.

2 eine schematische Darstellung eines Decoders, in dem die vorliegende Erfindung verwendet wird. 2 a schematic representation of a decoder in which the present invention is used.

3 eine schematische Darstellung der Rundungsfehlervermeidung gemäß der vorliegenden Erfindung. 3 a schematic representation of the rounding error avoidance according to the present invention.

4 eine Abbildung eines Blocks von Manipulationswerten gemäß der vorliegenden Erfindung. 4 an illustration of a block of manipulation values according to the present invention.

5 ein Flussdiagramm, das das Verfahren zur Vermeidung von Rundungsfehlern gemäß der vorliegenden Erfindung illustriert. 5 a flowchart illustrating the method for avoiding rounding errors according to the present invention.

Detaillierte Beschreibung bevorzugter AusführungsformenDetailed description preferred embodiments

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.In 1 is schematically the structure of a typical video encoder 1 shown. One way to encode video images, z. For example, the following description is given by way of illustration only on the background of MPEG video encoding, without limiting the scope of the present invention to such encoding. The MPEG-2 standard provides three different types of pictures for coding, namely I, P and B pictures. I pictures are coded independently of other pictures, they are subjected to a so-called intra-coding. P pictures are predicted from a previous I picture, so they depend on a temporally preceding I picture. B-pictures may depend on a previous and / or a subsequent I or P picture.

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.If a video encoder 1 as he is in 1 is used for such MPEG encoding, z. For example, in P-pictures, not the input picture but a prediction error picture 12 coded and transmitted. From an already transferred image in an image memory 9 is determined by motion compensation (MC-Motion Compensation) 10 a prediction image 11 generated. Shifts from one image to another image are described by motion vectors. The difference of input image 2 and prediction image 11 gives the prediction error image 12 , The pixel values of the prediction error image 12 be using DCT 3 transform and yield a set of transformation coefficients. These are in a quantizer 4 quantized. The quantized transform coefficients and the motion vectors are determined by means of a VLC (Variable Length Coder) 5 converted into codewords and give the bit stream for storage or transmission. Each to the decoder 20 sent picture must also be in the encoder 1 preferably as true to the receiver in the image memory 9 be available for the next prediction. For this reason, the encoder includes 1 also a local decoder, which decoder image B '(n) 8th reconstructed. The local decoder includes an inverse quantizer 6 and an apparatus for performing an inverse discrete cosine transformation (IDCT) 7 , The method according to the invention for avoiding rounding errors when rounding who After execution of the IDCT is in the range of the local decoder, the inverse quantizer 6 and the IDCT 7 has used. A comparison with 2 shows that the coder's local decoder blocks match those of the decoder in principle.

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. 2 schematically shows the basic structure of a typical video decoder 20 , Amongst other things, the incoming bit stream carries information about motion vectors and prediction error images. A variable length decoder (VLD) 21 converts the bitstream into quantizer values and motion vectors. The quantizer values are given by the inverse quantizer 22 into a set of transform coefficients and then using an inverse DCT (IDCT) 23 in pixels of the prediction error image 24 transformed. The reconstructed picture 28 results from the addition of the prediction image 27 and the prediction error image 24 , The prediction image 27 is determined by motion compensation (MC-Motion Compensation) 26 from the previous reconstructed image stored in the image memory 25 is stored, generated. Just like the encoder 1 will also be in the decoder 20 the inventive method for preventing rounding errors when rounding values after performing the IDCT in the field of IDCT 23 used.

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.Like from the 1 and 2 can be seen, contains both the encoder 1 as well as the decoder 20 an IDCT block 7 respectively. 23 , From the coefficients which have been subjected to the inverse quantization, pixel values (also called pixel values) are reconstructed with the aid of the IDCT. This calculation takes place with finite precision. In order to reduce the computational and memory overhead during further processing, the IDCT 7 . 23 obtained pixel values rounded. Preferably, each pixel value is rounded to an integer. Such rounding is both in the encoder 1 as well as in the decoder 20 performed. The implementations of the IDCT 7 . 23 and the subsequent rounding operation, however, may be in the encoder 1 and in the decoder 20 be different, as they z. B. can be made by different manufacturers. Due to such different implementations, values that are in a small range exactly between two values that can be rounded to, may give different results. It may thus depend on the implementation of the rounding operation whether a value is rounded up or rounded down. Lies in the encoder 1 and in the decoder 20 after rounding a different value, we speak of an adjustment error.

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. 3 describes a preferred embodiment of the method according to the present invention, by which the occurrence of matching errors can be reduced. A block of coefficient values F '[v] [u], where v and u z. For example, if integers are in the range 0, 1, ..., 7, the inverse discrete cosine transformation (IDCT) 7 . 23 subjected. The result of the IDCT 7 . 23 is a block of pixel values f '[y] [x] which are preferably real numbers with finite precision. In addition, a sum S 'is formed over the coefficient values F' [v] [u]. Then, in a parity judging device 31 judges whether the value of the sum S 'is even or odd. If the sum S 'is an odd number, the pixel values remain unchanged, f [y] [x] = f' [y] [x]. However, if the sum S 'is even, a block of manipulated values B [y] [x] is added to the block of pixel values f' [y] [x] by an adder / subtractor 32 and subtracted therefrom to obtain a manipulated pixel value block, f [y] [x] = f '[y] [x] +/- B [y] [x]. The manipulated pixel values f [y] [x] are subsequently rounded, the manipulated pixel values for the case of an odd sum S 'being equal to the pixel values f' [y] [x]. The manipulation of the pixel values avoids that pixel values lie exactly between two whole numbers or in a small area exactly between whole numbers. This will cause the result of the rounding operation to be independent of the implementation of the IDCT 7 . 23 and the subsequent rounding operation, whereby the present invention avoids the occurrence of matching errors.

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:

Figure 00100001
Figure 00110001
In the embodiment of 3 if the sum of the values of the coefficient block F '[v] [u], where v and u are integers in the range 0, 1, ..., 7, is even, the reconstructed pixel values in the 8 × 8 block f' [y] [x] an 8 × 8 solid image pattern B [y] [x] (checkerboard pattern) overlaid. The rounding to integer numbers is performed on the basis of the manipulated pixel values f [y] [x]. 4 shows an example of a Manipulationswerteblock, as it can be used in the context of the present invention. The values are rounded to four decimal places for clarity. The example in 4 is not intended to be limiting, but is merely intended to describe a particular advantageous manipulative value block. The exact values to be used may, for. B. generated by a numerical optimization. The example of 4 It also becomes clear that in the context of an 8 × 8 IDCT a square matrix of manipulation values B [y] [x] of the size 8 × 8, which is symmetrical, is preferably used. The signs of each value are arranged like a checkerboard pattern, with the value at the top left has a positive sign. In addition, the values of the mapped matrix decrease in size outwardly. With higher accuracy than in 4 The values of the example matrix are read line by line starting from top left:
Figure 00100001
Figure 00110001

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. 5 shows a flowchart in which the flow of the inventive method, as in the encoder 1 or the decoder 20 is used is illustrated. In step S1, coefficient values F '[v] [u] which are a result of the inverse quantization 6 respectively. 22 are, summed up. Thereafter, in step S2, the parity of the sum S 'is judged, that is, whether the sum is even or odd. As will be apparent from the further description, the result of the judgment in step S2 is not used for decision until step S4, therefore, the sequence of steps S2 and S3 may be reversed as well. In step S3, the coefficients F '[v] [u] are determined by IDCT 7 respectively. 23 transformed into a block of pixels f '[y] [x]. As already indicated, a decision is made in step S4 depending on whether the parity of the sum S 'is odd or even, as judged in step S2. If the parity is odd, the processing advances to step S5 and the pixel values remain unchanged f [y] [x] = f '[y] [x]. On the other hand, if it is determined in step S4 that the parity of the sum S 'of step S2 is not odd-that is, even-the processing proceeds to step S6.

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].In step S6, it is checked if the value of the coefficient F '[7] [7] is odd. This coefficient F '[7] [7] can either be before the implementation of the IDCT 7 respectively. 23 be examined for parity, with the result of the examination being buffered, or a copy of the coefficient F '[7] [7] can be cached. If the value of the coefficient F '[7] [7] from the frequency domain is even, processing transfers to step S7, where the manipulation value block B [y] [x] adds to the pixel value block f' [y] [x] For example, to obtain a block of manipulated pixels f [y] [x], f [y] [x] = f '[y] [x] + B [y] [x]. However, if it is determined in step S6 that the value of the coefficient F '[7] [7] is odd, step S8 is executed, where the manipulation value block B [y] [x] is derived from the pixel value block f' [y] [x]. is subtracted to obtain a block of manipulated pixels f [y] [x], 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.Afterwards the step S5, S7 and S8 become the pixel values in step S9 f [y] [x] each rounded to an integer. By the procedure The present invention avoids pixel values for rounding which are exactly between two integers, thus become Adjustment error independent avoided by the exact implementation.

Claims (12)

Verfahren zur Vermeidung von Fehlern beim Runden von Werten nach Durchführung von inversen diskreten Kosinus-Transformationen (7, 23), wobei das Verfahren die folgenden Schritte aufweist: a) Summieren von Koeffizientenwerten von einer Mehrzahl von Koeffizienten, wobei die Koeffizienten zu einem Block von Koeffizienten gehören (S1); b) Beurteilen der Summen der Koeffizientenwerte, ob die Summe geradzahlig oder ungeradzahlig ist (S2); c) Transformieren des Blocks von Koeffizienten mittels einer bestimmten Implementierung einer inversen diskreten Kosinus-Transformation (7, 23) in einen Block von Bildpunkten, wobei jeder Bildpunkt einen Bildpunktwert aufweist (S3), der von der gewählten Implementierung der inversen diskreten Kosinus-Transformation abhängig ist; d) wenn die Beurteilung der Summe der Koeffizientenwerte ergeben hat (S4), dass die Summe geradzahlig ist: Addieren oder Subtrahieren eines Manipulationswerteblocks zu den Bildpunktwerten des Blocks von Bildpunkten, um einen manipulierten Bildpunktblock zu erzeugen, wobei e) der genannte Manipulationswerteblock in Abhängigkeit der gewählten Implementierung der inversen diskreten Kosinus-Transformation durch numerische Optimierung ermittelt wird, um e1) Rundungsfehler bei einer nachfolgenden Rundungsoperation (S6, S7, S8); und e2) Fehler aufgrund unterschiedlicher Implementierungen der diskreten inversen Kosinus-Transformation zu vermeiden.Method for avoiding rounding errors after performing inverse discrete cosine transformations ( 7 . 23 ), the method comprising the steps of: a) summing coefficient values from a plurality of coefficients, the coefficients belonging to a block of coefficients (S1); b) judging the sums of the coefficient values, whether the sum is even or odd (S2); c) transforming the block of coefficients by means of a particular implementation of an inverse discrete cosine transformation ( 7 . 23 ) into a block of pixels, each pixel having a pixel value (S3) that depends on the selected implementation of the inverse discrete cosine transform; d) if the judgment of the sum of the coefficient values has resulted (S4) that the sum is even: adding or subtracting a manipulation value block to the pixel values of the block of pixels to produce a manipulated pixel block, wherein e) the said manipulation value block is determined by numerical optimization as a function of the selected implementation of the inverse discrete cosine transformation in order to e1) round off errors in a subsequent rounding operation (S6, S7, S8); and e2) to avoid errors due to different implementations of the discrete inverse cosine transform. Verfahren nach Anspruch 1, wobei der Manipulationswerteblock Werte aufweist, deren Vorzeichen in der Form eines Schachbrettmusters angeordnet sind, wobei die Beträge der Werte zu den Rändern des Blocks hin abnehmen.The method of claim 1, wherein the manipulation value block Has values whose sign in the form of a checkerboard pattern are arranged, with the amounts the values to the edges of the block. Verfahren nach einem der Ansprüche 1 oder 2, wobei der Manipulationswerteblock aus einer quadratischen, symmetrischen Matrix besteht.Method according to one of claims 1 or 2, wherein the Manipulationswerteblock consists of a square, symmetric matrix. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Block von Koeffizienten, der Block von Bildpunkten und der Block von Manipulationswerten jeweils durch eine Matrix von 8×8 Werten gebildet werden.Method according to one of the preceding claims, wherein the block of coefficients, the block of pixels and the block of manipulation values each through a matrix of 8x8 values be formed. Verfahren nach einem der vorhergehenden Ansprüche, wobei in Schritt a) die Summe über alle Koeffizienten des Blocks von Koeffizienten berechnet wird.Method according to one of the preceding claims, wherein in step a) the sum over all coefficients of the block of coefficients is calculated. Verfahren nach einem der vorhergehenden Ansprüche, wobei in Schritt d) der Manipulationswerteblock zu den Bildpunktwerten des Blocks von Bildpunkten hinzuaddiert wird, wenn der Wert eines vorbestimmten Koeffizienten gerade ist (S7), und der Manipulationswerteblock von den Bildpunktwerten des Blocks von Bildpunkten subtrahiert wird, wenn der Wert des vorbestimmten Koeffizienten ungerade ist (S8).Method according to one of the preceding claims, wherein in step d), the manipulation value block to the pixel values of the block of pixels is added when the value of a predetermined coefficient is even (S7), and the manipulation value block is subtracted from the pixel values of the block of pixels, when the value of the predetermined coefficient is odd (S8). Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verfahren weiterhin folgenden Schritt f) aufweist: Runden jedes manipulierten Bildpunktwertes des manipulierten Bildpunktblocks auf eine ganze Zahl (S9).Method according to one of the preceding claims, wherein the method further comprises the following step f): rounding each manipulated pixel value of the manipulated pixel block to an integer (S9). Verfahren zum Bereitstellen eines komprimierten Videosignals, das die folgenden Schritte aufweist: 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 Verfahren zur Vermeidung von Rundungsfehlern nach einem der Ansprüche 1 bis 7 verwendet wird.Method for providing a compressed video signal, which has the following steps: Perform a predictive coding by comparing successive images, transforming image blocks using a discrete cosine transformation into blocks of transform coefficients, wherein for predictive coding in an inverse branch of the coder, in which a coded picture is decoded, the method of avoidance of rounding errors according to one of claims 1 to 7 is used. Verfahren nach Anspruch 8, wobei das komprimierte Videosignal weiterhin auf einem Speichermedium, insbesondere einem optisch auslesbaren Speichermedium, gespeichert wird.The method of claim 8, wherein the compressed Video signal continues on a storage medium, in particular a optically readable storage medium is stored. Speichermedium, auf dem das komprimierte Videosignal nach Anspruch 8 gespeichert ist.Storage medium on which the compressed video signal is stored according to claim 8. Decodiervorrichtung, in der zur Vermeidung von Rundungsfehlern das Verfahren nach einem der Ansprüche 1 bis 7 durchgeführt wird.Decoding device, in order to avoid rounding errors the method according to one of claims 1 to 7 is carried out. Codiervorrichtung, in der zur Vermeidung von Rundungsfehlern das Verfahren nach einem der Ansprüche 1 bis 9 durchgeführt wird.Coding device, in order to avoid rounding errors the method according to any one of claims 1 to 9 is carried out.
DE102006049232A 2006-10-18 2006-10-18 Method and apparatus for avoiding errors when rounding values after performing an inverse discrete cosine transformation Expired - Fee Related DE102006049232B4 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102006049232A DE102006049232B4 (en) 2006-10-18 2006-10-18 Method and apparatus for avoiding errors when rounding values after performing an inverse discrete cosine transformation
US12/443,163 US20090198757A1 (en) 2006-10-18 2007-10-18 Method and device for avoiding rounding errors after performing an inverse discrete cosine transformation
EP07819111A EP2090109A2 (en) 2006-10-18 2007-10-18 Method and device for avoiding rounding errors after performing an inverse discrete cosine transformation
PCT/EP2007/009046 WO2008046622A2 (en) 2006-10-18 2007-10-18 Method and device for avoiding rounding errors after performing an inverse discrete cosine transformation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006049232A DE102006049232B4 (en) 2006-10-18 2006-10-18 Method and apparatus for avoiding errors when rounding values after performing an inverse discrete cosine transformation

Publications (2)

Publication Number Publication Date
DE102006049232A1 DE102006049232A1 (en) 2008-05-08
DE102006049232B4 true DE102006049232B4 (en) 2010-02-04

Family

ID=39204802

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006049232A Expired - Fee Related DE102006049232B4 (en) 2006-10-18 2006-10-18 Method and apparatus for avoiding errors when rounding values after performing an inverse discrete cosine transformation

Country Status (4)

Country Link
US (1) US20090198757A1 (en)
EP (1) EP2090109A2 (en)
DE (1) DE102006049232B4 (en)
WO (1) WO2008046622A2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2222086A1 (en) * 2009-02-18 2010-08-25 EcoDisc Technology AG Method and device for avoiding rounding errors after carrying out an inverse discrete orthogonal transformation
EP2813078A4 (en) * 2012-02-06 2015-09-30 Nokia Technologies Oy Method for coding and an apparatus

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0638218B1 (en) * 1993-03-01 1999-10-13 Sony Corporation Methods for preventing rounding errors when transform coefficients representing a motion picture signal are inversely transformed
WO2001017270A1 (en) * 1999-08-31 2001-03-08 Sony Electronics Inc. Method and apparatus for decoding mpeg video data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822005A (en) * 1996-01-11 1998-10-13 Tektronix, Inc. Pre-oddification
US6456663B1 (en) * 2000-03-29 2002-09-24 Matsushita Electric Industrial Co., Ltd. DCT domain down conversion system that compensates for IDCT mismatch
US6940912B2 (en) * 2000-04-21 2005-09-06 Microsoft Corporation Dynamically adaptive multimedia application program interface and related methods
US7689052B2 (en) * 2005-10-07 2010-03-30 Microsoft Corporation Multimedia signal processing using fixed-point approximations of linear transforms

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0638218B1 (en) * 1993-03-01 1999-10-13 Sony Corporation Methods for preventing rounding errors when transform coefficients representing a motion picture signal are inversely transformed
WO2001017270A1 (en) * 1999-08-31 2001-03-08 Sony Electronics Inc. Method and apparatus for decoding mpeg video data

Also Published As

Publication number Publication date
EP2090109A2 (en) 2009-08-19
WO2008046622A2 (en) 2008-04-24
DE102006049232A1 (en) 2008-05-08
US20090198757A1 (en) 2009-08-06
WO2008046622A3 (en) 2008-06-05

Similar Documents

Publication Publication Date Title
EP2222086A1 (en) Method and device for avoiding rounding errors after carrying out an inverse discrete orthogonal transformation
EP0817496B1 (en) Method and device for reducing blocking artifacts in encoded images
DE69815922T2 (en) Method and device for predictive image coding and decoding
DE69421135T2 (en) METHOD FOR AVOIDING ROUNDING ERRORS IN THE INVERSE TRANSFORMATION OF TRANSFORMATION COEFFICIENTS OF A MOVING IMAGE SIGNAL
DE69709189T2 (en) Image prediction and decoding apparatus
DE60309375T2 (en) PARAMETERIZATION FOR COURSE COMPENSATION
DE10253380B4 (en) Method and apparatus for encoding moving pictures with fixed computational complexity
DE69434862T2 (en) SEGMENTATION-BASED REMOVAL OF ARTIFACTS FROM A JPEG IMAGE
EP0836328A2 (en) A coding method for a video signal
DE10253383B4 (en) Method and apparatus for encoding moving pictures with fixed computational complexity
DE602004001993T2 (en) TRANSFORMATION BASED REMAINING FRAME MOVEMENT OVERCOMPLETE BASIC CODING PROCESS AND ASSOCIATED VIDEO COMPRESSION DEVICE
DE69915843T2 (en) PART BAND CODING / decoding
DE102020125206A1 (en) METHOD AND SYSTEM FOR MULTI-CHANNEL VIDEO ENCODING WITH FRAMERATE CHANGE AND CROSS-CHANNEL REFERENCING
DE10204617B4 (en) Methods and apparatus for compressing and decompressing a video data stream
EP3434015B1 (en) Data compression by means of adaptive subsampling
EP1425920B1 (en) Method of video coding and computer program product
DE102006049232B4 (en) Method and apparatus for avoiding errors when rounding values after performing an inverse discrete cosine transformation
DE60036585T2 (en) Video data coder and method for encoding video data
DE69431572T2 (en) video decoder
DE69625501T2 (en) DEVICE AND METHOD FOR SELECTING THE CODING MODE IN A BLOCK-BASED CODING SYSTEM
EP0981910B1 (en) Method and device for coding a digitized image
DE19618117C1 (en) Method for quantization and method for inverse quantization of transformation coding coefficients of a video data storm
DE102015010412B3 (en) A method, apparatus and computer program product for compressing an input data set
EP0981909B1 (en) Method and device for coding and decoding a digitized image
EP1121809B1 (en) Method and device for coding a digitized image and method for decoding a digitized image

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: ODS TECHNOLOGY GMBH, 23942 DASSOW, DE

8327 Change in the person/name/address of the patent owner

Owner name: ECODISC TECHNOLOGY AG, HERGISWIL, CH

8328 Change in the person/name/address of the agent

Representative=s name: PATENT- UND RECHTSANWAELTE BARDEHLE, PAGENBERG, DO

8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: ECODISC TECHNOLOGY AG, ZUERICH, CH

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130501