DE102006061648B4 - Transform coefficient block coding - Google Patents

Transform coefficient block coding Download PDF

Info

Publication number
DE102006061648B4
DE102006061648B4 DE200610061648 DE102006061648A DE102006061648B4 DE 102006061648 B4 DE102006061648 B4 DE 102006061648B4 DE 200610061648 DE200610061648 DE 200610061648 DE 102006061648 A DE102006061648 A DE 102006061648A DE 102006061648 B4 DE102006061648 B4 DE 102006061648B4
Authority
DE
Germany
Prior art keywords
bit
magnitude
bits
predetermined
plane
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
DE200610061648
Other languages
German (de)
Other versions
DE102006061648A1 (en
Inventor
Jörg Mohr
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.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to DE200610061648 priority Critical patent/DE102006061648B4/en
Priority to US12/521,276 priority patent/US20100111432A1/en
Priority to PCT/EP2007/010756 priority patent/WO2008080516A1/en
Priority to EP07856524A priority patent/EP2109993B1/en
Priority to JP2009543355A priority patent/JP4745445B2/en
Priority to EP09011939A priority patent/EP2131596B1/en
Publication of DE102006061648A1 publication Critical patent/DE102006061648A1/en
Application granted granted Critical
Publication of DE102006061648B4 publication Critical patent/DE102006061648B4/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/645Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform

Abstract

Vorrichtung zum Kodieren eines Blockes (34) von Transformationskoeffizienten, wobei die Transformationskoeffizienten jeweils mittels mehrerer Betragsbits (252) dargestellt sind, so dass dieselben eine Folge von Betragsbitebenen (381...38n) definieren, mit
einer Kodiereinrichtung zum Durchlaufen der Betragsbits einer vorbestimmten der Betragsbitebenen (381....38n) und Kodieren vorbestimmter der Betragsbits in einen kodierten Datenstrom, wobei der Kodierer folgende Merkmale aufweist:
einen Zwischenspeicher (106; 710);
einen Bitextraktor (104; 712) zum, bei Durchlaufen der Betragsbits, Ermitteln erster Statusbits, die für die Transformationskoeffizienten, die durch Betragsbits der vorbestimmten Betragsbitebene dargestellt sind, die gemäß einer Reihenfolge des Durchlaufens frühestens als nächstes an der Reihe sind, eine Signifikanz bezogen auf die vorbestimmte Betragsbitebene anzeigen, aus Betragsbits, die die gleichen Transformationskoeffizienten darstellen wie die frühestens als nächstes an der Reihe seienden Betragsbits aber in signifikanteren Bitebenen liegen als dieselben und Befüllen des Zwischenspeichers mit den ermittelten ersten Statusbits; und
einen Kodierer (112, 1081; 1082; 1083; 714) zum Kodieren...
Apparatus for coding a block (34) of transform coefficients, wherein the transform coefficients are each represented by a plurality of magnitude bits (252), so that they define a sequence of magnitude bit-planes (38 1 ... 38 n )
encoding means for sweeping the magnitude bits of a predetermined one of the magnitude bit planes (38 1 .... 38 n ) and encoding predetermined ones of the magnitude bits into a coded data stream, the encoder comprising:
a buffer (106; 710);
a bit extractor (104; 712) for, upon passing through the magnitude bits, obtaining first status bits indicative of the transform coefficients represented by magnitude bits of the predetermined magnitude bit plane next in order at the earliest according to an order of traversal indicate the predetermined magnitude bit-plane from magnitude bits representing the same transform coefficients as the earliest next-rank magnitude bits but at more significant bit-planes than the same and filling the buffer with the determined first status bits; and
an encoder (112, 108 1 , 108 2 , 108 3 , 714) for encoding ...

Figure 00000001
Figure 00000001

Description

Die vorliegende Erfindung bezieht sich auf die Kodierung von Transformationskoeffizientenblöcken, wie z. B. eines Bildes, wie sie beispielsweise im Verlauf der digitalen Bildkompressionsmethode nach dem JPEG2000-Standard vorkommt.The The present invention relates to the coding of transform coefficient blocks, such as z. As an image, such as in the course of the digital Image compression method according to the JPEG2000 standard occurs.

Die Schritte des JPEG2000-Kodierprozesses umfassen ein optionales Aufteilen des Bildes in sogenannte Kacheln bzw. Tiles, d. h. rechteckige Bildbereiche, eine Gleichsignalanteilpegelverschiebung, eine optionale Transformation der Farbkomponenten, die Durchführung einer diskreten Wavelet-Transformation, eine skalare Quantisierung der Wavelet-Koeffizienten, eine Anordnung der quantisierten Wavelet-Koeffizienten in zweidimensionalen Feldern, sogenannten „Codeblöcken”, eine Block-Kodierung umfassend einen sogenannten „Koeffizientenbitmodellierprozess” und einen arithmetischen Kodiervorgang sowie ein Anordnen der kodierten Codeblock-Daten zu einem standardkonformen Kodierstrom. Beschrieben sind die Schritte beispielsweise in Christopoulos et al.: The JPEG2000 Still Image Coding System: An Overview, IEEE Transactions an Consumer Electronics, Bd. 46, Nr. 4, S. 1103–1127, November 2000.The Steps of the JPEG2000 encoding process include optional splitting of the picture in so-called tiles or tiles, d. H. rectangular image areas, a DC signal level shift, an optional transformation the color components, the implementation a discrete wavelet transformation, a scalar quantization of wavelet coefficients, an array of quantized ones Wavelet coefficients in two-dimensional fields, so-called "code blocks", comprising a block coding a so-called "coefficient bit-modeling process" and a Arithmetic coding operation and arranging the coded code block data to a standard coding current. Described are the steps for example in Christopoulos et al .: The JPEG2000 Still Image Coding System: An Overview, IEEE Transactions to Consumer Electronics, Vol. 46, No. 4, pp. 1103-1127, November 2000.

Der rechenintensivste Teil unter diesen Schritten ist das Koeffizientenbitmodellieren. Bei diesem Schritt wird ein Codeblock in sogenannte Magnitude- bzw. Betragsbitebenen zerlegt, die in der Reihenfolge von den MSBs bzw. den signifikantesten Bits zu den LSBs bzw. den wenigst signifikanten Bits angeordnet bzw. erzeugt werden, sowie zugehörige Vorzeichenbits, die gesondert gehandhabt bzw. betrachtet werden. Jede Betragsbitebene wird in einer Folge von drei Coding-Pässen bzw. Kodierdurchläufen moduliert, mit Ausnahme der ersten Bitebene, die nur mit einem Kodierdurchlauf moduliert wird. Diese Kodierdurchläufe durchlaufen die Bits einer Betragsbitebene in einer bestimmten Reihenfolge. Angefangen wird am Bit der Position oben links, dann drei darunter liegende Bits, bevor um eine Spalte nach rechts gesprungen wird. So entsteht ein sogenannter Stripe bzw. Streifen der Breite des Codeblocks und der Höhe von vier Koeffizienten. Nachdem ein Codeblock so in horizontaler Richtung prozessiert wurde, wird der nächste Stripe vier Koeffizientenpositionen tiefer verarbeitet usw.Of the The most computationally intensive part among these steps is coefficient bit modeling. In this step, a code block in so-called magnitude or Amount bite levels decomposed in the order of the MSBs or the most significant bits to the least significant LSBs Bits are arranged, as well as associated sign bits, which are separate be handled or considered. Each amount bit level is in a sequence of three coding passes or coding runs modulated, except for the first bit plane, with only one coding pass is modulated. These coding passes pass through the bits of a Amount bit level in a specific order. It starts at the bit of the position top left, then three bits underneath, before jumping one column to the right. This is how you get started Stripe of the width of the code block and the Height of four coefficients. After a code block so in the horizontal direction was processed, becomes the next Stripe four coefficient positions processed deeper, etc.

ISO/IEC15444-1 beschreibt näher, ob und welches Kodierschema während eines Kodierdurchlaufes zur Anwendung kommt. Insbesondere wird diese Entscheidung koeffizientenweise getroffen. In anderen Worten ausgedrückt werden beim ersten Kodierdurchlauf nur bestimmte Koeffizienten moduliert. Unter den restlichen Koeffizienten kodiert der zweite Kodierdurchlauf ebenfalls einen Teil. Der Rest wird von dem dritten Kodierdurchlauf modelliert. Welcher Koeffizient zu welchem Kodierdurchlauf gehört, hängt u. a. davon ab, ob der jeweilige Koeffizient signifikant ist bzw. von der Signifikanz seiner direkten Nachbarn. ISO/IEC15444-1, im Folgenden kurz der Standard genannt, definiert hierzu eine binäre Statusvariable für jeden Koeffizienten in einem Codeblock, den sogenannten „Signifikanzstatus”. Anfänglich auf „insignifikant” initialisiert, wechselt sie auf „signifikant” an der Betragsbitebene, an der erstmalig ein gesetztes Bit des Koeffizienten zu modellieren ist und bleibt so bis zum Ende der Modellierung dieses Codeblocks gesetzt.ISO / IEC15444-1 describes closer, whether and which coding scheme during a coding pass is used. In particular, this will Decision taken by coefficient. In other words only certain coefficients are modulated during the first coding pass. Among the remaining coefficients encodes the second coding pass also a part. The rest is from the third coding pass modeled. Which coefficient belongs to which coding pass depends u. a. depending on whether the respective coefficient is significant or of the significance of its direct neighbors. ISO / IEC15444-1, below called the standard for short, defines a binary status variable for each Coefficients in a block of code, the so-called "significance status". Initially initialized to "insignificant", she changes to "significant" at the Amount bit level, at the first time a set bit of the coefficient modeling is and remains so until the end of the modeling of this code block set.

Für ein Bit eines Koeffizienten, das während eines Kodierdurchlaufes in einer bestimmten Bitebene durch ein Kodierschema modelliert wird, wird ein Datenbit zusammen mit jeweils einem Kontext-Index erzeugt. Dieser Kontext-Index ergibt sich in erster Linie aus den Signifikanzstatus-Variablen des Koeffizienten und seiner Nachbarn. Bei bestimmten Kodierdurchläufen, nämlich dem ersten und dem dritten, ergibt sich, dass auch das Vorzeichenbit des aktuellen Koeffizienten zusammen mit einem Kontext-Index zu modellieren ist, der wiederum von den Signifikanzstatus variablen und der Vorzeichen seiner Nachbarn abhängt. Ein sogenanntes „Betragsverfeinerungs”- bzw. MR-Kodierschema bzw. der zweite Kodierdurchlauf wertet zusätzlich aus, ob dieses Schema bereits bei vorhergehenden Bitebenen auf den zu modellierenden Koeffizienten angewendet wurde, oder zum ersten Mal. Der nachgeschaltete arithmetische Kodierer erwartet die Bit-Kontext-Paare in der auf die oben beschriebene Weise festgelegten Reihenfolge.For a bit a coefficient that occurs during a Encoding run in a certain bit plane by a coding scheme is modeled, a data bit is generated together with a context index. This context index results primarily from the significance status variables of the coefficient and his neighbors. For certain coding runs, the first and the third, it follows that also the sign bit of the current coefficient modeling together with a context index, which in turn depends on the significance status variables and the sign of its neighbors. One so-called "amount refinement" - or MR coding scheme or the second coding pass additionally evaluates whether this scheme already at previous bit levels on the modeled Coefficient was applied, or for the first time. The downstream arithmetic coder expects the bit-context pairs in the the order described above.

Folgt man der Reihenfolge, in der die Bit-Kontext-Paare von dem arithmetischen Kodierer gemäß dem Standard zu Enkodieren sind, ergibt sich daraus eine sequentielle Folge in Bezug auf die Kodierdurchläufe, wie sie im Vorhergehenden beschrieben wurde, und wie sie insbesondere auch durch Software-Implementierungen eingehalten wird. Durch Implementierungen in Hardware lässt sich eine höhere Kodiergeschwindigkeit erreichen. Beispielsweise können mehrere Codeblöcke unabhängig voneinander gleichzeitig kodiert werden, indem mehrere Blockkodierer parallel instantiiert werden. Dies stellt allerdings einen enormen Ressourcenverbrauch dar, wie z. B. im Hinblick auf die benötigten Transistoren auf einer integrierten Schaltung oder im Hinblick auf die Gatteräquivalente bei einem FPGA (Field Programmable Gate Array).follows one of the order in which the bit-context pairs of the arithmetic Encoder according to the standard are to be encoded, this results in a sequential sequence in Regards the coding passes, as described above and in particular is also complied with by software implementations. Through implementations in hardware a higher one Achieve coding speed. For example, several code blocks independently be encoded from one another simultaneously by using multiple block encoders be instantiated in parallel. However, this is an enormous Resource consumption, such. B. with regard to the required transistors on an integrated circuit or in terms of gate equivalents with a FPGA (Field Programmable Gate Array).

In Lian et al.: Analysis and Architecture Design of Block-Coding Engine for EBCOT in JPEG 2000, IEEE Transactions an Circuits and Systems for Video Technology, Bd. 13, Nr. 3, März 2003, S. 219–230, wird beispielsweise ein Hardwaredesign des Block-Coders in JPEG2000 beschrieben, bei der Einsparungen an erforderlichen Überprüfungen pro Koeffizient in jedem Durchlauf, ob der jeweilige Koeffizient zu dem jeweiligen Durchlauf gehört, erzielt werden, indem die Zugehörigkeitsüberprüfungen parallelisiert werden und je nach Zugehörigkeit keines oder eines oder mehr Bits zu dem jeweiligen Durchlauf 4-er-Spalten oder Gruppen von 4-er-Spalten pro Durchlauf übersprungen werden. Einen Schritt weiter geht eine in Gangadhar und Bhatia: FPGA based EBCOT Architecture for JPEG2000, Field-Programmable Technology (FPT), 2003, Proceedings 2003, IEE International Conference, S. 228 bis 233, vorgeschlagene Hardwarelösung für den JPEG2000-Blockkodierer, wonach die Durchläufe parallelisiert werden, so dass weniger Taktzyklen zur Kodierung der Codeblöcke notwendig sind. Neben einem Speicher zur Speicherung der Betragsbits und Vorzeichenbits ist dabei ein Puffer zur Zwischenspeicherung aktualisierter Signifikanzstatusvariablen zwischen einer ersten Verarbeitungseinheit vorgesehenen, die sich um den ersten Kodierdurchlauf kümmert, und einer zweiten Verarbeitungseinheit, die für die Kodierdurchläufe 2 und 3 zuständig ist.For example, in Lian et al .: Analysis and Architecture Design of Block Coding Engine for EBCOT in JPEG 2000, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, No. 3, March 2003, pp. 219-230 a hardware design of the block coder described in JPEG2000, which saves on required checks per Coefficient in each pass, whether the respective coefficient belongs to the respective pass can be achieved by the membership checks are parallelized and, depending on the affiliation of no or one or more bits to the respective pass 4-er columns or groups of 4-er columns be skipped per pass. A hardware solution for the JPEG2000 block coder proposed in Gangadhar and Bhatia: FPGA based EBCOT Architecture for JPEG 2000, Field Programmable Technology (FPT), 2003, Proceedings 2003, IEE International Conference, pp. 228-233, goes one step further, according to which Runs are parallelized, so that fewer clock cycles for coding the code blocks are necessary. In this case, in addition to a memory for storing the magnitude bits and sign bits, a buffer is provided for buffering updated significance status variables between a first processing unit, which handles the first coding pass, and a second processing unit, which is responsible for the coding cycles 2 and 3.

Es bleibt aber weiterhin wünschenswert, eine in Hardware effektiv implementierbare Lösung für die Kodierung von Transformationskoeffizientenblöcken zu finden, wie sie eben beispielsweise bei der JPEG2000-Kodierung vorkommt.It but remains desirable, a hardware-effectively implementable solution for encoding transform coefficient blocks find, as it happens, for example, in the JPEG2000 encoding.

In der US 2004/0228539 A1 wird ein Bitebenen-Codierungsdurchlaufgenerator beschrieben, der ein Bildcodierungsverfahren durchführt, das folgende Schritte umfasst: Teilen eines Eingangsbildes in Teilbänder mittels einer Wavelet-Transformation; Teilen jedes der bei dem Schritt der Wavelet-Transformation erzeugten Teilbänder in Codeblöcke, die jeweils eine vorbestimmte Größe aufweisen; Erzeugen einer Bitebene, die von einem höchstwertigen Bit bis zu einem mindestwertigen Bit in Einheiten des Codeblocks umfasst; Verarbeiten jedes von Abtastpunkten in der Bitebene anhand einer beliebigen einer Mehrzahl von Codierdurchläufen; und Durchführen einer arithmetischen Codierung gemäß Ergebnissen der Codierdurchlaufverarbeitung; bei der Codierdurchlaufverarbeitung werden aus einer Speicherungseinrichtung Signifikanz/Nicht-Signifikanz-Informationen ausgelesen, die angeben, ob Abtastpunkte in einem Bereich, der die Position eines derzeit in der Verarbeitung befindlichen Abtastpunktes umfasst und der durch eine vorbestimmte Anzahl von Abtastwerten besetzt ist, und diejenigen, die um den Bereich herum existieren, signifikant oder nicht- signifikant sind, und es wird ein paralleler Vergleich zwischen den Signifikanz/Nicht-Signifikanz-Informationen und einer Mehrzahl von voreingestellten übereinstimmenden Mustern durchgeführt, wodurch ein nächster zu verarbeitender Abtastpunkt erfasst wird.In the US 2004/0228539 A1 there is described a bit-plane encoding sweep generator which performs a picture coding method comprising the steps of: dividing an input picture into sub-bands by means of a wavelet transform; Dividing each of the subbands generated at the wavelet transform step into code blocks each having a predetermined size; Generating a bit-plane comprising from a most significant bit to a least significant bit in units of the code block; Processing each of sample points in the bit plane based on any one of a plurality of encoding passes; and performing arithmetic coding according to results of the encoding sweep processing; in the coding pass processing, significance / non-significance information is read from a storage means indicating whether sample points are in a range which includes the position of a currently-processed sampling point and which is occupied by a predetermined number of samples, and those which exist around the area are significant or non-significant, and a parallel comparison is made between the significance / non-significance information and a plurality of preset matching patterns, thereby detecting a next sample point to be processed.

In der US 2002/0027516 A1 wird ein Verfahren zur Entropiecodieren von Symbolen beschrieben, die für einen Codeblock, der Transformationskoeffizienten eines Digitalbildes aufweist, repräsentativ sind. Das Verfahren umfasst einen Signifikanzfortpflanzungsdurchlauf, einen Betragsverfeinerungsdurchlauf und einen Reinigungsdurchlauf zum Entropiecodieren der Symbole. Das Verfahren erzeugt vor dem Signifikanzfortpflanzungsdurchlauf der aktuellen Bitebene eine erste Liste von Positionen derjenigen Koeffizienten in dem Codeblock, die Symbole aufweisen, die während des Signifikanzfortpflanzungsdurchlaufs der aktuellen Bitebene entropiecodiert werden sollen. Das Verfahren erzeugt vor dem Betragsverfeinerungsdurchlauf der aktuellen Bitebene ferner eine zweite Liste von Positionen derjenigen Koeffizienten in dem Codeblock, die Symbole aufweisen, die während des Betragsverfeinerungsdurchlaufs der aktuellen Bitebene entropiecodiert werden sollen. Das Verfahren erzeugt ferner vor dem Reinigungsdurchlauf der aktuellen Bitebene eine dritte Liste von Positionen derjenigen Koeffizienten in dem Codeblock, die Symbole aufweisen, die während des Reinigungsdurchlaufs der aktuellen Bitebene entropiecodiert werden sollen.In the US 2002/0027516 A1 For example, a method of entropy coding symbols representative of a code block having transform coefficients of a digital image is described. The method includes a significance propagation sweep, an amount refinement sweep, and a sweep sweep for entropy coding the symbols. The method generates a first list of positions of those coefficients in the code block that have symbols that are to be entropy encoded during the significant bitplane significance traversal sweep, prior to the significant bitplane significance traversal sweep. The method also generates a second list of positions of those coefficients in the code block that have symbols that are to be entropy coded during the amount refinement sweep of the current bit plane before the current bit plane amount refinement pass. The method also generates a third list of positions of those coefficients in the code block that have symbols that are to be entropy coded during the cleaning pass of the current bit plane before the current bit plane is scanned.

In der US 2003/035476 A1 liest ein Bitebenen-Prozessor einen Codeblock, der als Einheit zum arithmetischen Codieren dient, aus einem SRAM aus. Nach einem Konvertieren des Codeblocks in die Form einer Bitebene liefert der Bitebenenprozessor Bitdaten an einen Durchlaufprozessor. Der Durchlaufprozessor umfasst einen s-Durchlauf-Prozessor, einen r-Durchlauf-Prozessor und einen c-Durchlauf-Prozessor. Jede von s-Durchlauf-, r-Durchlauf- und c-Durchlauf-Verarbeitungen wird parallel in einem derartigen Zustand durchgeführt, dass eine Startzeit derselben durch einen Betrieb zweier Verzögerungseinheiten um eine vorbestimmte Einheitszeit verschoben wird. Beispielsweise werden bei JPEG200 Spezialzweck-Unterteileinheiten, die Daten in drei jeweilige Durchläufe eines s-Durchlaufs (Signifikanzdurchlaufs), r-Durchlaufs (Verfeinerungsdurchlaufs) und c-Durchlaufs (Reinigungsdurchlaufs) aufteilen/einteilen, und Verarbeitungsvorgänge dieser Spezialzweck-Unterteileinheiten parallelisiert. In diesem Fall wird auf Ergebnisse von Durchlaufverarbeitungen in einer Bitebene eines Bits hoher Ordnung zum Zeitpunkt einer Durchlaufverarbeitung in einer Bitebene eines Bits niedriger Ordnung Bezug genommen. Die Vorverarbeitungen durch die Mehrzahl von Spezialzweck-Unterteileinheiten können parallel ausgeführt werden, während eine zeitliche Verzögerung in einem Umfang gehalten wird, dass eine Quer-Bezugnahme, die unter den Ergebnissen der Vorverarbeitungen nötig ist, durchgeführt wird. Beispielsweise kann diese Quer-Bezugnahme eine in einer Richtung erfolgende Bezugnahme sein, so dass auf ein Verarbeitungsergebnis des s-Durchlaufs bei der r-Durchlauf-Verarbeitung Bezug genommen wird und auf ein Verarbeitungsergebnis des r-Durchlaufs bei der c-Durchlauf-Verarbeitung Bezug genommen wird.In the US 2003/035476 A1 For example, a bit-plane processor reads out a code block serving as an arithmetic-coding unit from an SRAM. After converting the code block to the form of a bit-plane, the bit-plane processor supplies bit data to a sweep processor. The thread processor includes an s-pass processor, an r-pass processor, and a c-pass processor. Each of s-pass, r-pass and c-pass processes is performed in parallel in such a state that a start time thereof is shifted by an operation of two delay units by a predetermined unit time. For example, in JPEG200, special purpose subdividing units which divide / divide data into three respective passes of s-pass (significance pass), r-pass (refine pass), and c-pass (purge pass) and parallelize processing operations of these special-purpose subpart units. In this case, results of pass-through processing in a bit plane of a high order bit at the time of pass processing in a bit plane of a low-order bit are referred to. The preprocessing by the plurality of special purpose subdividing units may be performed in parallel while maintaining a time delay to an extent that a cross-reference necessary among the results of the preprocessing is performed. For example, this cross-reference may be a one-way reference, so that reference is made to a processing result of the s-pass in the r-pass processing and to a processing result of the r-pass in the c-pass processing becomes.

Die US 2005/0094881 A1 beschreibt eine Codiervorrichtung und ein Codierverfahren, bei denen eingegebene Bildinformationen durch Folgendes codiert werden: Speichern, in einer Speicherungseinrichtung, von Zustandsquantitätsinformationen, die eine vorbestimmte Zustandsquantität darstellen, die verwendet werden soll, während sie gemäß einem Verarbeitungsstatus des Codierprozesses sequentiell aktualisiert werden, wenn ein vorbestimmter Codierprozess an den Bildinformationen durchgeführt wird; Durchführen des Codierprozesses an den Bildinformationen für jede der Verarbeitungseinheiten durch Verwendung der diesen entsprechenden Zustandsquantitätsinformationen mit einer vorbestimmten Mehrzahl von Pixeln als Verarbeitungseinheit, wobei die Zustandsquantitätsinformationen mit der Mehrzahl von Pixeln, die der Verarbeitungseinheit der Bildinformationen entsprechen, als ein Wort in der Speicherungseinrichtung gespeichert werden, und wobei die Zustandsquantitätsinformationen, die zum Durchführen des Codierprozesses an den Bildinformationen der Verarbeitungseinheit notwendig sind, in Einheiten der Wörter aus der Speicherungseinrichtung ausgelesen werden.The US 2005/0094881 A1 describes an encoding device and a coding method in which input image information is encoded by: storing, in a storage device, state quantity information representing a predetermined state quantity to be used while being sequentially updated according to a processing state of the encoding process, if a predetermined one Coding process is performed on the image information; Performing the encoding process on the image information for each of the processing units by using the state quantity information corresponding thereto with a predetermined plurality of pixels as the processing unit, wherein the state quantity information having the plurality of pixels corresponding to the processing unit of the image information is stored as a word in the storage means; and wherein the state quantity information necessary for performing the encoding process on the image information of the processing unit is read out in units of the words from the storage means.

Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren und eine Vorrichtung zum Kodieren eines Blockes von Transformationskoeffizienten, wie z. B. diejenigen eines Bildes, zu schaffen, die eine effektivere Implementierung in Hardware ermöglichen.The The object of the present invention is a method and an apparatus for coding a block of transform coefficients, such as B. those of a picture, to create a more effective Enable implementation in hardware.

Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 29 gelöst.These The object is achieved by a device according to claim 1 and a method according to claim 29 solved.

Eine erfindungsgemäße Vorrichtung zum Kodieren eines Blockes von Transformationskoeffizienten, wobei die Transformationskoeffizienten jeweils mittels mehrerer Betragsbits dargestellt sind, so dass dieselben eine Folge von Betragsbitebenen definieren, umfasst eine Kodiereinrichtung zum Durchlaufen der Betragsbits einer vorbestimmten der Betragsbitebenen und Kodieren vorbestimmter der Betragsbits der Tupel in einen kodierten Datentstrom, wobei die Kodiereinrichtung einen Zwischenspeicher 106; einen Bitextraktor 104 zum, beim Durchlaufen der Betragsbits, Ermitteln erster Statusbits, die für die Transformationskoeffizienten, die durch Betragsbits der vorbestimmten Betragsbitebene dargestellt sind, die gemäß einer Reihenfolge des Durchlaufens frühestens als nächstes an der Reihe sind, eine Signifikanz bezogen auf die vorbestimmte Betragsbitebene anzeigen, aus Betragsbits, die die gleichen Transformationskoeffizienten darstellen wie die frühestens als nächstes an der Reihe seienden Betragsbits, aber in signifikanteren Bitebenen liegen als dieselben und Befüllen des Zwischenspeichers mit den ermittelten ersten Statusbits; und einen Kodierer zum Kodieren der vorbestimmten Betragsbits in den kodierten Datenstrom unter Verwendung der ersten Statusbits in dem Zwischenspeicher aufweist.An apparatus for coding a block of transform coefficients, wherein the transform coefficients are each represented by a plurality of magnitude bits defining a sequence of magnitude bit-planes, comprises coding means for sweeping the magnitude bits of a predetermined one of the magnitude bit-planes and encoding predetermined ones of the magnitude bits of the tuples into a coded one Data stream, wherein the coding means a buffer 106 ; a Bitextraktor 104 for, upon passing through the magnitude bits, determining first status bits indicative of significance for the predetermined magnitude bit-plane from the magnitude bits for the transform coefficients represented by magnitude bits of the predetermined magnitude bit-plane next in order according to an order of traversal at the earliest which represent the same transform coefficients as the earliest next-ranked magnitude bits, but at more significant bit-planes are the same and fill the cache with the first status bits detected; and an encoder for encoding the predetermined magnitude bits into the encoded data stream using the first status bits in the buffer.

Eine Erkenntnis der vorliegenden Erfindung besteht darin, dass eine effektivere bzw. effizientere Implementierung des Transformationskoeffizientenblockkodierers ermöglicht wird, wenn ein Kodierer die Kodierung der vorbestimmten Betragsbits in den kodierten Datenstrom unter Verwendung von Statusbits in einem Zwischenspeicher vornimmt, der durch einen Bitextraktor auf der Basis von Informationen gefüllt wird, die Betragsbits umfassen, die die gleichen Transformationskoeffizienten darstellen wie frühestens als nächstes an der Reihe seiende Betragsbits, aber in signifikanteren Bitebenen liegen als dieselben.A A realization of the present invention is that a more effective or more efficient implementation of the transform coefficient block coder allows when an encoder encodes the predetermined magnitude bits into the encoded data stream using status bits in one Caching, by a Bitextraktor on the Base of information filled which include magnitude bits having the same transform coefficients represent as at the earliest next numbered bits of magnitude, but in more significant bit-planes are the same.

Auf diese Weise ist es möglich, die Signifikanzinformationen, die von der Kodiereinrichtung gegebenenfalls benötigt werden, um zu entscheiden, ob und, falls ja, welcher oder welche der Betragsbits der vorbestimmten Betragsbitebene zu den vorbestimmten Betragsbits gehören, während des Durchlaufens der Betragsbits nur vorübergehend bzw. lokal in der Nähe des aktuell an der Reihe seienden Betragsbits zu speichern, wodurch ein größerer Speicher zur Speicherung der Signifikanzinformationen entfällt. Dadurch kann wiederum der Speicherbedarf klein gehalten werden, so dass umgekehrt wiederum eine aufwendigere aber umgekehrt schnellere Speichertechnologie zur Speicherung dieser Statusbits verwendet werden kann. Trotz einer nur vorübergehenden Speicherung der Statusinformationen in dem Zwischenspeicher kann eine Aktualisierung des Inhalts vorgenommen werden, mit dem der Zwischenspeicher gefüllt wird, um diesen aktualisierten Inhalt während der Kodierung zu verwenden. Der zusätzliche Aufwand für die Logik zur ständigen Extraktion der Statusinformationen anstelle der Speicherung und Wiederherstellung über alle Bitebenen hinweg ist verhältnismäßig gering gegenüber der Einsparung an Speicheraufwand. Zudem bedeutet die Extraktion keine zeitliche Einbuße, da die Extraktion zeitlich parallel zu der eigentlichen Kodierung durchgeführt werden kann.On this way it is possible the significance information provided by the encoder, if appropriate needed to decide whether and, if so, which or which the magnitude bits of the predetermined magnitude bit plane to the predetermined ones Include amount bits, while of passing the magnitude bits only temporarily or locally in the Near the currently in line with the amount bits to store, thereby a bigger store to store the significance information is omitted. Thereby In turn, the memory requirement can be kept small, so that conversely, a more complex but conversely faster storage technology can be used to store these status bits. Despite one only temporary Storing the status information in the cache can an update of the content with which the Cache filled is to use this updated content during encoding. The additional Effort for the logic to the permanent Extraction of status information instead of storage and Restore over all bit levels are relatively low across from the saving of storage costs. In addition, the extraction means no temporal loss, because the extraction is temporally parallel to the actual encoding be performed can.

Weitere Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die Figuren näher erläutert. Es zeigen:Further embodiments The present invention will be described below with reference to FIG the figures closer explained. Show it:

1 ein Blockschaltbild eines Bildkomprimierers, bei dem die erfindungsgemäße Transformationskoeffizientenblockkodierung angewendet werden kann; 1 a block diagram of an image compressor, in which the transformation coefficient block coding according to the invention can be applied;

2 eine schematische Darstellung einer Aufteilung der Transformationskoeffizienten in Betragsbits und Vorzeichenbits; 2 a schematic representation of a division of the transformation coefficients in magnitude bits and sign bits;

3 ein Blockschaltbild eines Blockkodierers gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; 3 a block diagram of a block encoder according to an embodiment of the present invention;

4 ein Blockschaltbild der Bitmodelliereinheit des Kodierdurchlaufes 1 (Pass 1) aus 3 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; 4 a block diagram of the bit modeling unit of the coding pass 1 (Pass 1) 3 according to an embodiment of the present invention;

5 ein Blockschaltbild der Bitmodelliereinheit für den Kodierdurchlauf 2 (Pass 2) aus 3 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; 5 a block diagram of the bit modeling unit for the coding pass 2 (Pass 2) 3 according to an embodiment of the present invention;

6 ein Blockschaltbild der Bitmodelliereinheit für den Kodierdurchlauf 3 (Pass 3) aus 3 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; 6 a block diagram of the bit modeling unit for the coding pass 3 (Pass 3) 3 according to an embodiment of the present invention;

7 ein Blockschaltbild des Durchlauf- bzw. Pass-Entscheiders von 3 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; 7 a block diagram of the pass or decoder of 3 according to an embodiment of the present invention;

8 eine schematische Darstellung zur Veranschaulichung der Größe der Schieberegistereinheit von 3 und des in derselben zu einem jeweiligen Zeitpunkt gespeicherten Inhalts; und 8th a schematic representation for illustrating the size of the shift register unit of 3 and the content stored therein at a particular time; and

9 ein Blockschaltbild eines Blockkodierers gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung. 9 a block diagram of a block encoder according to another embodiment of the present invention.

1 zeigt einen Bildkomprimierer 10 als Beispiel für einen Anwendungsfall, bei dem die nachfolgend beschriebenen Ausführungsbeispiele vorteilhaft verwendet werden können. Der Bildkomprimierer 10 von 1 ist dazu ausgelegt, ein Quellbild 12 bestehend aus beispielsweise in Spalten und Zeilen angeordneten Abtastwerten bzw. Pixelwerten in einen kodierten Datenstrom bzw. Codestrom 14 zu komprimieren. Dazu umfasst der Komprimierer 10 von 1 beispielsweise eine Hintereinanderschaltung von optional einem Kachelaufteiler 16, einem Gleichanteilpegelverschieber 18, optional einem Farbtransformator 20, einem Transformator 22 zur räumlichen spektralen Zerlegung, einem optionalen Quantisierer 24, einem Blockkodierer bzw. Block-Coder 26 und einem Datenanordner 28. Der Kachelaufteiler teilt das Bild 12 in beispielsweise rechteckige Bildbereiche auf, sogenannte Tiles bzw. Kacheln. Die weitere Verarbeitung wird pro Tile bzw. Kachel durchgeführt, so dass die weitere Komprimierung in den einzelnen Kacheln unabhängig voneinander stattfindet. Der Gleichsignalpegelverschieber 18 führt innerhalb jeder Kachel eine über alle Pixel der entsprechenden Kachel gleichmäßige Gleichsignalverschiebung durch, so dass bei spielsweise nachher der Mittelwert der Pixelwerte, wie z. B. der Luminanzwerte, Null ergibt. Der Farbtransformator 20 führt optional noch eine Farbtransformation an den Pixelwerten durch, wobei die Farbtransformation optional ist und natürlich nur in dem Fall von Farbbildern 12 stattfindet. Daraufhin führt der Transformator 22 eine räumliche spektrale Zerlegung pro Kachel durch. In dem Fall eines zu erzeugenden JPEG2000-Codestromes 14 ist die Transformation beispielsweise einer Wavelettransformation, genauer eine diskrete Wavelettransformation, die auf jede Kachel einzeln angewendet wird. Auf diese Weise wird jede Kachel in unterschiedliche Auflösungspegel bzw. Zerlegungspegel zerlegt, die aus Subbändern von Transformationskoeffizienten bestehen, die Frequenzcharakteristika von lokalen Bereichen jeder Kachel beschreiben. Die Transformationskoeffizienten können bereits ganzzahlig sein. Der Quantisierer 24 unterzieht die Transformationskoeffizienten optional einer skalaren Quantisierung und fasst dieselben zu Codeblöcken zusammen, d. h. zu beispielsweise rechteckigen Arrays von Transformationskoeffizienten. Der Blockkodierer 26 entropiekodiert bitebenenweise die Transformationskoeffizienten in den Codeblöcken in Datenströme, woraufhin der Datenanordner 28 die arithmetisch kodierten Codeblock-Datenströme noch geeignet anordnet, um den Codestrom 14 zu bilden, wie z. B. einen JPEG2000-konformen Codestrom. 1 shows an image compressor 10 as an example of an application in which the embodiments described below can be used advantageously. The image compressor 10 from 1 is designed to be a source image 12 consisting of, for example, arranged in columns and rows samples or pixel values in a coded data stream or code stream 14 to compress. This includes the compressor 10 from 1 For example, a series connection of optionally a tile divider 16 , a DC level shifter 18 , optionally a color transformer 20 , a transformer 22 for spatial spectral decomposition, an optional quantizer 24 , a block coder or block coder 26 and a data folder 28 , The tile divider splits the picture 12 in, for example, rectangular image areas, so-called tiles or tiles. The further processing is carried out per tile or tile, so that the further compression in the individual tiles takes place independently of each other. The DC level shifter 18 performs within each tile a uniform across all pixels of the corresponding tile DC offset, so that, for example, after the mean of the pixel values, such. B. the luminance values, zero. The color transformer 20 optionally performs a color transformation on the pixel values, the color transformation being optional and of course only in the case of color images 12 takes place. Thereupon the transformer leads 22 a spatial spectral decomposition per tile through. In the case of a JPEG2000 code stream to be generated 14 For example, the transformation is, for example, a wavelet transform, more specifically, a discrete wavelet transform that is applied to each tile one at a time. In this way, each tile is decomposed into different resolution levels consisting of subbands of transform coefficients describing frequency characteristics of local areas of each tile. The transform coefficients can already be integers. The quantizer 24 optionally translates the transform coefficients to scalar quantization and merges them into code blocks, ie, for example, rectangular arrays of transform coefficients. The block encoder 26 The transform coefficients in the code blocks are entropy-coded bit by bit into data streams, whereupon the data arbiter 28 the arithmetic coded codeblock data streams still suitably order the code stream 14 to form, such. B. a JPEG2000-compliant code stream.

Der Blockkodierer 26 weist insbesondere, wie es in 1 gezeigt ist, einen Koeffizientenbitmodellierer 30 mit einem nachgeschalteten arithmetischen Kodierer 31 auf. Der Koeffizientenbitmodellierer 30 ordnet den Betragsbits der Koeffizienten Kontexte zu, die von dem arithmetischen Kodierer 32 zur arithmetischen Kodierung verwendet werden. Insbesondere ist der arithmetische Kodierer 32 ein kontextabhängig arbeitender binärer arithmetischer Kodierer, der ausgebildet ist, um ein aktuelles Intervall, das den augenblicklichen Zustand des arithmetischen Kodierers darstellt, abhängig von Schätzwahrscheinlichkeiten für das Auftreten eines jeweiligen Bitwertes für das nächste zu enkodierende Bit in zwei Hälften zu unterteilen, und unter diesen Hälften eine auszuwählen, um das aktuelle Intervall auf dieses Intervall zu beschränken, je nachdem wie der tatsächliche Bitwert des aktuellen zu kodierenden Bits ist, wobei die Schätzwahrscheinlichkeiten für jeden Kontext unterschiedlich sind, und der Kontext durch den Koeffizientenbitmodellierer 30 abhängig von benachbarten Signifikanzen und/oder Betragsbitwerten und einer Mehrzahl von möglichen Kontexten ermittelt wird. Der Kodierer kann dabei zudem adaptiv arbeiten, um die vorinitialisierten Schätzwahrscheinlichkeiten während der Kodierung an die tatsächlichen Wahrscheinlichkeiten pro Kontext anzupassen.The block encoder 26 In particular, as in 1 is shown a coefficient bit modeler 30 with a downstream arithmetic coder 31 on. The coefficient bit modeler 30 assigns to the magnitude bits of the coefficients contexts assigned by the arithmetic coder 32 be used for arithmetic coding. In particular, the arithmetic coder 32 a contextual binary arithmetic coder adapted to divide a current interval representing the current state of the arithmetic coder into two halves depending on estimated probabilities for occurrence of each bit value for the next bit to be encoded, and among these halves one to limit the current interval to this interval depending on how the actual bit value of the current bit to be coded is, the estimated probabilities being different for each context, and the context by the coefficient bit modeler 30 is determined depending on adjacent significances and / or magnitude bit values and a plurality of possible contexts. The encoder may also adaptively adapt the pre-initialized estimates during encoding to the actual probabilities per context.

Die nachfolgende Erläuterung von Ausführungsbeispielen der vorliegenden Erfindung konzentriert sich zunächst auf eine JPEG2000-konforme Kompression, weshalb im Folgenden vor diesem Hintergrund die Aufgabe des Blockkodierers 26 näher veranschaulicht werden soll. Insbesondere sind von dem Blockkodierer 26 die einzelnen Betragsbits der Transformationskoeffizienten in einem Block in einer vorbestimmten bzw. festgelegten Reihenfolge in den arithmetisch kodierten Datenstrom des arithmetischen Kodierers 32 zu kodieren, nämlich insbesondere zunächst bitebenenweise von der signifikantesten Bitebene zur wenigst signifikanten Bitebene und innerhalb dieser Bitebenen durch Scannen der Koeffizientenbetragsbits in drei Durchläufen in einer festgelegten Scanreihenfolge, wobei in jedem Durchlauf nur Betragsbit kodiert werden, die bestimmte Kriterien erfüllen, derart, dass mit den drei Durchläufen aus dem arithmetisch kodierten Datenstrom alle Betragsbits rekonstruierbar sind. Um die Aufteilung in Bitebenen und die Scanreihenfolge innerhalb dieser Ebenen zu veranschaulichen, zeigt 2 exemplarisch einen Codeblock der Größe 3 × 8.The following explanation of exemplary embodiments of the present invention initially concentrates on a JPEG2000-compliant compression, for which reason the object of the block coder in the following is this background 26 will be illustrated in more detail. In particular are from the block encoder 26 the individual magnitude bits of the transform coefficients in a block in a predetermined order into the arithmetic-coded data stream of the arithmetic coder 32 in particular first bitwise from the most significant bitplane to the least significant bitplane and within those bitplanes by scanning the coefficient magnitude bits in three passes in a fixed scan order, encoding in each pass only magnitude bits that meet certain criteria such that three passes from the arithmetic coded data stream all magnitude bits are reconstructed. To illustrate the split in bit planes and the scan order within those planes, shows 2 exemplarily a code block of size 3 × 8.

Insbesondere zeigt 2 bei 34 exemplarisch einen 3 × 8-Codeblock mit 3 × 8 Transformationskoeffizienten a bis x. Wie es durch den Pfeil 36 angedeutet ist, wird jeder Koeffizient a bis x durch n Betragsbits a1...n, ..., x1...xn sowie ein jeweiliges Vorzeichenbit avz, ..., xvz dargestellt, wobei die Aufspaltung 36 in Betragsbits und Vorzeichenbits beispielsweise inhärent aus der Art der diskreten Wavelettransformation 22 hervorgeht oder aus der Quantisierung 24 (1). Die MSBs bzw. signifikantesten Betragsbits sind beispielsweise die Bits a1...x1 und bilden eine erste Betragsbitebene 381 . Ebenso lassen sich die anderen Betragsbits zu entsprechenden Bitebenen 382 ...38n zusammenfassen. Jede Bitebene 381 ...38n sowie die Vorzeichenbits 40 bilden also jeweils ein 3 × 8 Bitarray.In particular shows 2 at 34 exemplarily a 3 × 8 code block with 3 × 8 transformation coefficients a to x. As by the arrow 36 is indicated, each coefficient a to x by n amount bits a 1 ... n, ..., x 1 ... x n and a respective sign bit a vz , ..., x vz represented, wherein the splitting 36 in magnitude bits and sign bits, for example inherently from the type of discrete wavelet transform 22 or from quantization 24 ( 1 ). The MSBs or significant magnitude bits are, for example, the bits a 1 ... X 1 and form a first magnitude bit level 38 1 , Likewise, the other magnitude bits can be assigned to corresponding bit planes 38 2 ... 38 n sum up. Every bit level 38 1 ... 38 n as well as the sign bits 40 So each form a 3 × 8 bit array.

Die vorerwähnte Scanreihenfolge sieht nun vor, dass die Bits einer Bitebene 381 ...38n in Viererspalten bzw. Tupeln von je vier in Spaltenrichtung benachbarten Betragsbits von einem Zeilenende aus bis zu dem anderen, d. h. streifenweise, gescannt werden, woraufhin der nächste Streifen in den nächsten Zeilen gescannt wird, und innerhalb jedes Viererspaltenvektors bzw. jedes Tupels die Betragsbits von oben nach unten gescannt werden. Für die Bitebenen 381 ...38n lässt sich das Scanmuster folglich darstellen als
ai, bi, ci, di, ii, ji, ki, li, qi, ri, si, ti, ei, fi, gi, hi, mi, ni, oi, pi, ui, vi, wi, xi, mit i = 1...n,
wobei dieses Scanmuster hier exemplarisch sechs Viererspalten bzw. Tupel und zwei Streifen umfasst.
The aforementioned scan order now provides that the bits of a bit plane 38 1 ... 38 n in four columns or tuples of four column bits adjacent magnitude bits from one line end to the other, ie, stripwise, whereupon the next strip is scanned in the next lines, and within each four column vector or each tuple the magnitude bits from the top be scanned down. For the bit levels 38 1 ... 38 n Thus, the scan pattern can be displayed as
a i, b i, c i, d i, i i, j i, k i, l i, q i, r i, s i, t i, e i, f i, g i, h i, m i , n i , o i , p i , u i , v i , w i , x i , where i = 1 ... n,
this scan pattern here exemplarily comprises six quadruplets or tuples and two stripes.

Ein dreifaches Scannen der Betragsbits der einzelnen Bitebenen wird nun gemäß dem nachfolgend beschriebenen Ausführungsbeispiel für einen Block-Coder 26 dadurch vermieden, dass die den jeweiligen Durchläufen zugeordneten Betragsbits mittels eines Scans erkannt und in Datenworte kodiert werden, aus denen sich die Bitwerte und die zugeordneten Kontexte ergeben, woraufhin dieselben nach Zwischenspeicherung in einem Zwischenspeicher in geeigneter Reiheinfolge in einen arithmetisch kodierten Datenstrom enkodiert werden. Dabei wird auch ein ständiges Nachschlagen in einem Speicher vermieden, indem die Betragsbits und Vorzeichenbits zwischengespeichert sind.A triple scan of the magnitude bits of the individual bit planes will now be according to the embodiment described below for a block coder 26 This is avoided by the fact that the amount bits associated with the respective passes are detected by means of a scan and encoded into data words, from which the bit values and the associated contexts result, whereupon the same are cached in a buffer in an appropriate sequence in an arithmetically coded data stream. In this case, a constant lookup in a memory is avoided by the magnitude bits and sign bits are cached.

3 zeigt einen Blockkodierer 100 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Er umfasst eine Speichereinheit 102, einen Bitextraktor 104, eine Schieberegistereinheit 106, eine Koeffizientenbitmodelliererstufe 108, einen Zwischenspeicher 110 und eine arithmetische Kodiereinrichtung 112. Die Speichereinheit 102 ist beispielsweise ein Direktzugriffsspeicher, wie z. B. ein RAM, und fungiert als Schnittstelle zum Erhalt der quantisierten vorzeichenbehafteten Transformationskoeffizienten der zu kodierenden Codeblöcke, wie z. B. des Codeblocks 34 von 2. Der Bitextraktor 104 ist mit dem Speicher 102 gekoppelt, um auf den Speicherinhalt der Speichereinheit 102 Zugriffe 114 durchführen zu können, um von der Speichereinheit 102 Betragsbits und Vorzeichenbits zu lesen. Wann und auf welche Betragsbits und/oder Vorzeichenbits der Bitextraktor 104 zugreift, wird im Folgenden näher beschrieben. Jedenfalls ist der Bitextraktor 104 zuständig dafür, die Schieberegistereinheit 106 basierend auf den ausgelesenen Informationen von der Speichereinheit 102 mit Bits zu befüllen, die von der Koeffizientenbitmodellierstufe 108 benötigt werden, um die notwendigen Kontexterstellungen bzw. die notwendige Vorkodierung vorzunehmen. Etwas konkreter ausgedrückt, scannt der Bitextraktor 104 auf eine im Folgenden noch etwas detaillierter dargestellte Art und Weise Betragsbitebene für Betragsbitebene die Betragsbits der aktuellen Betragsbitebene entlang der vorgeschriebenen Streifen und befüllt die Schieberegistereinheit 106 während des Scannens fortwährend mit Informationen, so dass die Schieberegistereinheit 106 aufgrund ihrer Schieberegisterlänge, Informationsbits bezüglich eines aktuellen Ausschnitts der aktuellen Betragsbitebene entlang der Streifen umfasst, die die Koeffizientenbitmodellierstufe 108 aktuell für ihre Kontexterstellung bzw. Vorkodierung benötigt. Im Vorgriff auf die spätere detailliertere Beschreibung bildet der Bitextraktor 104 beispielsweise aus den Koeffizientenbetrags bits und den Vorzeichenbits durch bloße Übernahme die neu aufzunehmenden Betragsbits 108 der aktuellen Bitebene, durch bloße Übernahme die neu aufzunehmenden Vorzeichenbits 118 und durch geeignetes Kombinieren zugehörige Statusbits 120 und führt diese der Schieberegistereinheit 106 zu, die so dimensioniert ist, dass sie die einzelnen Bits 108, 110, 112 in einer Tiefe einer jeweiligen geeigneten Anzahl von Schiebestufen bzw. -rängen halten kann, wie es im Folgenden noch näher beschrieben wird. Am Rand des Codeblocks befindliche Nachbarbits werden entsprechend mit Nullen aufgefüllt, wie es in 3 exemplarisch für die oberen Nachbarbits dargestellt ist. 3 shows a block encoder 100 according to an embodiment of the present invention. It comprises a storage unit 102 , a bitextractor 104 , a shift register unit 106 , a coefficient bit modeler stage 108 , a cache 110 and an arithmetic coding device 112 , The storage unit 102 For example, is a random access memory such. As a RAM, and acts as an interface for obtaining the quantized signed transformation coefficients of the code blocks to be coded, such. B. the code block 34 from 2 , The Bitextraktor 104 is with the store 102 coupled to the memory contents of the memory unit 102 Views 114 to be able to perform from the storage unit 102 To read magnitude bits and sign bits. When and on what magnitude bits and / or sign bits of the bitextractor 104 will be described in more detail below. Anyway, the Bitextraktor 104 responsible for this, the shift register unit 106 based on the information read from the storage unit 102 to fill with bits from the coefficient bit modeling stage 108 needed to make the necessary contexts or the necessary precoding. More specifically, the Bitextraktor scans 104 In a manner which will be described in more detail below, the amount bit-plane for the amount-bit-plane is the amount bits of the current amount bit-plane along the prescribed strips and fills the shift register unit 106 during the scanning process with information continuously, so that the shift register unit 106 due to its shift register length, comprises information bits relating to a current portion of the current magnitude bit plane along the stripes comprising the coefficient bit modeling stage 108 currently needed for their context creation or precoding. In anticipation of the later more detailed description forms the Bitextraktor 104 for example, from the coefficient amount bits and the sign bits by mere assumption the amount of bits to be newly recorded 108 the current bit-plane, by mere assumption the new sign bits to be recorded 118 and by appropriate combining associated status bits 120 and feeds it to the shift register unit 106 too, which is sized to fit the individual bits 108 . 110 . 112 at a depth of a respective suitable number of shift stages, as will be described in more detail below. Neighbor bits located at the edge of the code block are padded with zeros, as shown in FIG 3 is shown as an example for the upper neighbor bits.

Vereinfachend ist in 3 dargestellt, das Schieberegister 106 sähe jeweils vier Register (schattiert dargestellt) zusammen mit je 14 Nachbarregistern vor, und zwar jeweils für die Koeffizientenbits 108, Vorzeichenbits 118 und Statusbits 120. Die Schieberegistereinheit 106 kann somit als mehrere Schieberegister 1061,2,3,4 aufweisend angesehen werden, jeweils eine für die Betragsbits, Vorzeichenbits und zwei unterschiedliche Statusbits, die im Folgenden noch näher beschrieben werden, wobei diese einzelnen Schieberegister 1061...4 miteinander synchronisiert sind, so dass pro Schiebeimpuls sämtliche Registerinhalte gleichzeitig um eine Position horizontal bzw. um einen Schieberegisterrang, d. h. um einen 6-er-Vektor in 3, weitergeschoben werden.Simplifying is in 3 shown, the shift register 106 see four registers each (shaded) together with each 14 neighbor registers, each for the coefficient bits 108 , Sign bits 118 and status bits 120 , The shift register unit 106 can thus be used as multiple shift registers 106 1,2,3,4 each one for the magnitude bits, sign bits and two different status bits which will be described in more detail below, these individual shift registers 106 1 ... 4 synchronized with each other, so that each shift pulse at the same time by one horizontal position or by a shift register rank, ie by a 6-he vector in 3 to be pushed further.

Intern zergliedert sich die Koeffizientenbitmodellierstufe 108 in mehrere Bitmodelliereinheiten 1081, 1082 und 1083 , von denen die erste für den Pass 1 bzw. Durchlauf 1, die zweite für den Durchlauf 2 bzw. Pass 2 und die dritte für den Pass 3 bzw. Durchlauf 3 zuständig ist, und die im Folgenden noch näher beschrieben werden. Die einzelnen Einheiten 1081 1083 sind jeweils mit jeweiligen Bitregistern der Schieberegister 1061 1064 gekoppelt, um die entsprechenden Registerinhalte zu analysieren und für jedes zu modellierende Bit aus einem aktuellen Tupel von Betragsbits, das inInternally, the coefficient bit modeling stage decomposes 108 into several bit-modeling units 108 1 , 108 2 and 3 of which the first is responsible for pass 1 or pass 1, the second pass 2 or pass 2 and the third pass 3 or pass 3, and which will be described in more detail below. The individual units 108 1 - 3 are each shift registers with respective bit registers 106 1 - 106 4 coupled to analyze the corresponding register contents and for each bit to be modeled from a current tuple of magnitude bits stored in

3 den schraffierten Registern entspricht, festzustellen, ob es gemäß dem jeweiligen Durchlauf bzw. Pass zu modellieren ist oder nicht, und, wenn ja, mit welchem Resultat. Die Bitmodelliereinheiten 1081 1083 sind insbesondere dazu ausgebildet, pro Tupel oder pro zu dem jeweiligen Pass gehörigen Betragsbit ein entsprechend vorkodiertes Datenwort inklusive im Folgenden noch näher erläuterter Steuerbits zu erzeugen und in jeweiligen Zwischenspeichern 1101 , 1102 und 1103 der Zwischenspeicherstufe 110 abzulegen. Datenworte, die zu Tupeln gehören, in denen sich kein zu dem jeweiligen Durchlauf gehöriges Betragsbit befindet, können verworfen werden, wie es im Folgenden beschrieben werden wird, ebenso wie Datenworte für nicht zu dem jeweiligen Durchlauf gehörige Betragsbits. 3 the hatched registers correspond to determine whether or not to model according to the respective pass or pass, and if so, with what result. The bit modeling units 108 1 - 3 are in particular designed to generate, per tuple or per amount bit belonging to the respective pass, a correspondingly precoded data word including control bits explained in more detail below and in respective latches 110 1 . 110 2 and 110 3 the cache stage 110 store. Data words belonging to tuples in which there is no magnitude bit associated with the respective pass can be discarded, as will be described below, as well as data words for magnitude bits not associated with the respective pass.

Die Bitmodelliereinheiten 1081 1083 können insbesondere ausgelegt sein, um in den Datenworten Steuerbits einzustellen, die durch die anschließende arithmetische Kodiereinrichtung 112 verwendet werden können, um die in die Zwischenspeicher 1101 1103 abgelegten Datenworte bzw. die in dieselben kodierten Betragsbits in der geeigneten Reihenfolge und unter Verwendung des richtigen Kontexts oder unter Aussetzung der arithmetischen Kodierung in einem anderen Modus, wie z. B. einem Klartextmodus, in den Datenstrom einzufügen, wie es im Folgenden noch näher erörtert werden wird. Hierzu weist die arithmetische Kodiereinrichtung 112 insbesondere einen Durchlaufentscheider 122 auf, dem ein arithmetischer Kodierer 124 nachgeschaltet ist. Der Durchlaufentscheider 122 fungiert als Kodierer der vorkodierten Datenworte in den Zwischenspeichern 1101 1103 und ist hierzu mit letztgenannten gekoppelt. Aus diesen Datenworten rekonstruiert der Durchlaufentscheider 122 die in den einzelnen Durchläufen 1, 2 und 3 bzw. Pass 1, Pass 2 und Pass 3 kontextmodellierten Bits mit zugehörigem Kontext und leitet diese Paare in der geeigneten Reihenfolge, d. h. Pass 1 gefolgt von Pass 2 gefolgt von Pass 3, an den arithmetischen Kodierer 124 weiter, wobei die weitergeleiteten Informationen neben den Bitwerten und den zugehörigen Kontextindizes auch Informationen über durch den arithmetischen Kodierer 124 zu verwendende Kodiermodi beinhalten können oder dgl., wobei die Steuersignale von dem Entscheider 122 zu dem arithmetischen Kodierer 124 in 3 allgemein mit 126 angezeigt sind. In anderen Worten ausgedrückt kodiert der Pass-Entscheider 122 die ausgelesenen Datenwörter in den Zwischenspeichern 110 zurück in Bit-Kontext-Paare 126 und führt diese dem nachgeschalteten arithmetischen Kodierer 124 in vorgeschriebener Weise und geeigneter Repräsentierung zu.The bit modeling units 108 1 - 3 In particular, they can be designed to set control bits in the data words that are generated by the subsequent arithmetic coding device 112 can be used to put in the cache 110 1 - 110 3 stored data words or the magnitude bits encoded in the same in the appropriate order and using the correct context or subjecting the arithmetic coding in another mode, such. As a plain text mode to insert into the data stream, as will be discussed in more detail below. For this purpose, the arithmetic coding device 112 in particular a continuous decision maker 122 on which an arithmetic coder 124 is downstream. The pass decision maker 122 acts as encoder of the precoded data words in the latches 110 1 - 110 3 and is coupled with the latter. The pass decision maker reconstructs from these data words 122 contextualized bits with context associated with each of runs 1, 2 and 3 and pass 1, pass 2 and pass 3, respectively, and passes these pairs to the arithmetic coder in the appropriate order, ie pass 1 followed by pass 2 followed by pass 3 124 in addition to the bit values and the associated context indices, the forwarded information also contains information about the arithmetic coder 124 may include coding modes to be used or the like, wherein the control signals from the decision maker 122 to the arithmetic coder 124 in 3 generally with 126 are displayed. In other words, the passport decoder encodes 122 the read data words in the buffers 110 back to bit-context pairs 126 and leads this to the downstream arithmetic coder 124 in a prescribed manner and appropriate representation.

Im Vorhergehenden wurde grob der Aufbau des Blockkodierers 100 von 3 beschrieben sowie die Aufgaben und Funktionalitäten der einzelnen Einheiten grob skizziert. Bevor im Folgenden mit der detaillierten Beschreibung der Bitmodelliereinheiten 1081 1083 und des Pass-Entscheiders 122 und basierend darauf einer detaillieren Beschreibung der Funktionsweise des Blockkodierers 100 fortgefahren wird, soll im Folgenden noch einmal kurz grob das allgemeine Ziel des Zusammenspiels der Einheiten von 3 beschrieben werden, um auf diese Weise einen Überblick zu geben, der für das Verständnis der nachfolgenden detaillierten Beschreibung hilfreich sein kann. Wie bereits erwähnt, sorgt der Bitextraktor 104 für die Befüllung der Schieberegistereinheit 106. Der Bitextraktor 104 scannt dabei streifenweise die aktuelle Betragsbitebene. In erster Näherung kann man sich deshalb die Schieberegistereinheit 106 als ein Fenster vorstellen, das sich über die aktuelle Betragsbitebene entlang der Scanreihenfolge bewegt, mit dazu synchroner Bewegung eines entsprechenden Fensters in der Vorzeichenbitebene 40 (2) und unter Zwischenspeicherung dazugehöriger Statusbits für diese Fensterinhalte. Die Bitmodelliereinheiten 1081 1083 benötigen für ihre Arbeit keine weiteren Informationen als diejenigen in der Schieberegistereinheit 106, weshalb langwierige Speicherzugriffe 114 auf die Speichereinheit 102 nicht notwendig sind. Zudem ist nur ein Durchlauf durch die aktuelle Betragsbitebene notwendig, obwohl von dem Standard wie im Vorhergehenden erörtert drei Durchläufe zur Festlegung der Reihenfolge festgelegt sind, in der die Betragbits in den Datenstrom kodiert werden sollen. Um Letzteres zu erzielen, kümmert sich jede der Bitmodelliereinheiten 1081 1083 nur um diejenigen Betragsbits in den Vierertupeln, die zu dem jeweiligen eigenen Pass gehören. Allgemein kann man sagen, dass sich der Pass 1 um Betragsbits von Transformationskoeffizienten kümmert, die noch nicht signifikant sind, d. h. deren Betragsbits in den signifikanteren Betragsbitebenen Null bzw. nicht-signifikant sind, aber zu Transformationskoeffizienten benachbart sind, die signifikant sind. Um Verwirrungen auszuschließen, wird darauf hingewiesen, dass ein Transformationskoeffizient in einer bestimmten Betragsbitebene als signifikant bezeichnet wird, wenn zumindest einer der Betragsbits in den signifikanteren Betragsbitebenen 1 ist, und derselbe in einer bestimmten Betragsbitebene „signifikant wird”, wenn keiner der Betragsbits in den signifikanteren Betragsbitebenen 1 ist aber er während der Kodierung der aktuellen Bitebene noch in dieser Ebene durch ein Betragsbit von 1 signifikant wird. Ein Betragsbit wird als signifikant bezeichnet, wenn er 1 ist. Der Pass 2 kümmert sich um Transformationskoeffizienten, die in der aktuellen Betragsbitebene bereits signifikant sind. Der Pass 3 schließlich adressiert die restlichen Betragsbits, d. h. die Betragsbits von Transformationskoeffizienten, die nicht-signifikant sind und nicht in den Pass 1 fielen.The above has been roughly the structure of the block coder 100 from 3 described and the tasks and functionalities of the individual units roughly sketched. Before proceeding with the detailed description of the bit modeling units 108 1 - 3 and the passport-decision maker 122 and based thereon a detailed description of the operation of the block encoder 100 In the following, the general aim of the interaction of the units of 3 to give an overview which may be helpful in understanding the following detailed description. As already mentioned, the bitextractor ensures 104 for filling the shift register unit 106 , The Bitextraktor 104 scans the current amount bitmap in strips. As a first approximation one can therefore use the shift register unit 106 as a window moving across the current amount bit plane along the scan order, with synchronous movement of a corresponding window in the sign bit plane 40 ( 2 ) and caching associated status bits for these window contents. The bit modeling units 108 1 - 3 require no further information than those in the shift register unit for their work 106 That's why lengthy memory accesses 114 on the storage unit 102 are not necessary. In addition, only one pass through the current amount bit plane is necessary, although the standard, as discussed above, defines three passes for determining the order in which the magnitude bits are to be encoded into the data stream. To achieve the latter, each of the bit-modeling units takes care of it 108 1 - 3 only to those Amount bits in the quad tuples belonging to the respective own pass. Generally speaking, passport 1 takes care of magnitude bits of transform coefficients that are not yet significant, ie whose magnitude bits in the more significant magnitude bit-planes are zero or non-significant, but adjacent to transform coefficients that are significant. To eliminate confusion, it is noted that a transform coefficient in a particular magnitude bit-plane is said to be significant if at least one of the magnitude bits in the more significant magnitude bit-planes is 1 and becomes "significant" in a particular magnitude bit-plane if none of the magnitude bits are in the more significant However, during the coding of the current bit level, it is still significant in this level by means of an amount bit of 1. An amount bit is said to be significant if it is 1. Pass 2 takes care of transformation coefficients, which are already significant in the current amount bitmap. The pass 3 finally addresses the remaining magnitude bits, ie the magnitude bits of transform coefficients which are non-significant and did not fall into pass 1.

Die Signifikanzen der Transformationskoeffizienten in der aktuell zu kodierenden Betragsbitebene spielen bei der Modell- bzw. Kontextbildung, die durch die Bitmodelliereinheiten 1081 1083 durchgeführt wird, eine große Rolle, da hieraus die Kontexte bestimmt werden und diese Information bei Dekodierung bereits auch dem Dekodierer vorliegt und er somit die Kontextmodellierung nachbilden kann. Bereits jetzt sei darauf hingewiesen, dass die Entscheidung, ob ein bestimmtes Betragbit zu dem Pass 3 gehört mitunter davon abhängt, ob eines der Nachbarbetragsbits zwar in logischer Abfolge vor Pass 1 zu einem nicht-signifikanten Transforma tionskoeffizienten gehört, aber zu dem Pass 1 gehört und somit gegebenenfalls virtuell bzw. gemäß der im Standard festgelegten Reihenfolge, wonach die Durchläufe nacheinander durchgeführt werden, noch vor dem Ende des Pass 1 signifikant wird, in welchem Fall nämlich das entsprechende Betragsbit gegebenenfalls doch nicht dem Pass 3 angehört, sondern dem Pass 1. Das Problem des Signifikantwerdens von Nachbarbetragsbits betrifft aber natürlich nur diejenigen Nachbarbetragsbits, die gemäß der Betragsbitscanreihenfolge vor dem aktuell betrachteten Betragsbit liegen.The significances of the transform coefficients in the magnitude bit-plane currently to be coded play in the modeling of the bit-modeling units 108 1 - 3 is carried out, a major role, since the contexts are determined from this and this information is already present at the decoder during decoding and thus he can emulate the context modeling. It should already be noted that the decision as to whether a particular amount bit belongs to the pass 3 sometimes depends on whether one of the neighbor amount bits, although in logical sequence before pass 1, belongs to a non-significant transform coefficient but belongs to the pass 1 and Thus, if necessary, virtually or according to the order defined in the standard, after which the runs are performed sequentially, even before the end of the pass 1 is significant, in which case the appropriate amount bit may not belong to the passport 3, but the passport 1. Das However, of course, the problem of signing neighbor amount bits concerns only those neighborhood amount bits that are ahead of the currently considered magnitude bit according to the magnitude bit scan order.

Die Bitmodelliereinheiten 1081 1083 füllen ihre jeweiligen Zwischenspeicher 1101 1103 mit aufeinander folgenden Datenworten, die der Reihe nach von dem Pass-Entscheider 122 ausgelesen werden, und zwar betragsbitebenenweise, also mit dem Zwischenspeicher 1101 beginnend so lange bis das letzte Datenwort der aktuellen Betragsbitebene ausgelesen worden ist, daraufhin fortfahrend mit dem Zwischenspeicher 1102 , so lange bis das letzte Datenwort aus der aktuellen Betragsbitebene ausgelesen worden ist, wiederum gefolgt von dem Zwischenspeicher 1103 , so lange bis dort das letzte Datenwort ausgelesen worden ist, wobei ausnahmsweise in der ersten bzw. signifikantesten Betragsbitebene gleich mit dem Zwischenspeicher 1103 begonnen wird, da dort noch kein Transformationskoeffizient signifikant ist, und somit auch kein Betragsbit dieser Ebene einem anderen Paß angehören kann als Pass 3. Die Datenwörter werden in dem Pass-Entscheider 122 auch dekodiert und in entsprechende Steuersignale für den arithmetischen Kodierer 124 umgewandelt, der daraus einen kodierten Datenstrom für den Codeblock bildet.The bit modeling units 108 1 - 3 fill their respective cache 110 1 - 110 3 with consecutive data words, in turn, from the passport decision maker 122 be read out, namely amount bitwise way, so with the cache 110 1 beginning until the last data word of the current amount bit plane has been read, then proceeding with the buffer 110 2 until the last data word has been read from the current amount bit level, again followed by the buffer 110 3 until the last data word has been read there, exceptionally in the first or most significant amount bit level equal to the buffer 110 3 is started because there is no transformation coefficient is significant, and thus no amount bit of this level can belong to another passport than pass 3. The data words are in the pass decision maker 122 also decoded and into corresponding control signals for the arithmetic coder 124 converted, which forms a coded data stream for the code block.

Im Folgenden wird nun vorab der interne Aufbau der Bitmodelliereinheiten sowie des Pass-Entscheiders von 3 näher beschrieben. 4 zeigt den Aufbau der Bitmodelliereinheit 1081 . Sie ist für den Pass 1 zuständig, d. h. für den ersten Kodierdurchlauf, der auch als „Signifikanzfortpflanzungsdurchlauf” bzw. „significance propagation pass”, bezeichnet wird, weil er Betragsbits von Transformationskoeffizienten betrifft, die sich in der Nähe von bereits signifikanten Transformationskoeffizienten befinden und somit wahrscheinlicher signifikant werden als solche Transformationskoeffizienten, die sich weiter entfernt von bereits signifikanten befinden. Wie im Vorhergehenden erwähnt, basiert die Entscheidung, ob ein entsprechendes Betragsbit in dem Kodierdurchlauf Pass 1 zu modellieren ist, darauf, ob der entsprechende Koeffizient für die aktuelle Bitebene noch insignifikant ist und mindestens einer seiner direkten Nachbarkoeffizienten signifikant ist oder im Verlaufe des ersten Durchlaufs signifikant wird.In the following, the internal structure of the bit-modeling units and the pass-decision maker of 3 described in more detail. 4 shows the structure of the bit modeling unit 108 1 , It is responsible for pass 1, ie for the first coding pass, also referred to as "significance propagation pass", because it relates to magnitude bits of transform coefficients which are in the vicinity of already significant transform coefficients and thus are likely to become significantly more significant than those transformation coefficients farther from already significant ones. As mentioned above, the decision as to whether to model a corresponding magnitude bit in the pass 1 pass is based on whether the corresponding coefficient for the current bit-plane is still insignificant and at least one of its direct neighbor coefficients is significant or significant in the course of the first pass becomes.

Die Bitmodelliereinheit 1081 weist eine Analysevorhersageeinheit 200, eine Betragsbitvorkodiereinheit 202, letzterer eingangsseitig vorgeschaltete Multiplexer 204, 206, eine Vorzeichenbitvorkodiereinheit 208, letzterer eingangsseitig vorgeschaltete Multiplexer 210, 212, einen Aktualisierungsdemultiplexer 214, einen Gültigkeitsbitmultiplexer 216, ein Vierbitregister 218, einen Taktzähler 220, einen Koeffizientenwähler 222 sowie eine Steuerbitsteuerung 224 auf, wobei in 4 zum leichteren Verständnis noch der Zwischenspeicher 1101 sowie die Schieberegistereinheit 106 dargestellt sind.The bit modeling unit 108 1 has an analysis prediction unit 200 a magnitude bit pre-encoding unit 202 , the latter input side upstream multiplexer 204 . 206 , a sign bit precoding unit 208 , the latter input side upstream multiplexer 210 . 212 , an update demultiplexer 214 , a valid bit multiplexer 216 , a four-bit register 218 , a clock counter 220 , a coefficient selector 222 and a control bit control 224 on, in 4 for easier understanding even the cache 110 1 and the shift register unit 106 are shown.

Die Analysevorhersageeinheit 200 ist dazu vorgesehen, vorab, d. h. im Vorgriff auf das Schieben des nächsten zu bearbeitenden Tupels in den Teil des Schieberegisters 106, an dem die Bitmodelliereinheit 1081 das zu bearbeitende Tupel erwartet, welche Stelle in 4 mit Schraffur dargestellt sind, festzustellen, welche dieser Betragsbits dem Pass 1 angehören. Die Analyse/Vorhersageeinheit 200 trifft diese Entscheidung beispielsweise immer dann, wenn die Schieberegistereinheit 106 durch den Bitextraktor 104 (3) neu befüllt wird, d. h. bei jedem Schiebeimpuls. In 4 trifft die Analysevorhersageeinheit 200 beispielsweise die Entscheidung über Zugehörigkeit oder Nicht-Zugehörigkeit der Betragsbits des 4-er-Vektors qm, rm, sm, tm, die beim nächsten Schiebevorgang in der Registereinheit 106 zu dem aktuellen Tupel werden bzw. in den schraffierten Registerbereich verschoben werden, wo momentan die Betragsbits im, jm, km und lm befindlich sind. Um die Vorhersage treffen zu können, ist die Analyse/Vorhersageeinheit 200 mit Registerzellen der Registereinheit 106 gekoppelt, und zwar mit dem Teil 1062 , der die Betragsbits betrifft, wie es mit einem Pfeil 226 angedeutet ist, und dem Teil 1063 , der die ersten Statusbits betrifft, wie es mit einem Pfeil 228 angedeutet ist, wobei die ersten Statusbits die Signifikanz entsprechender Koeffizienten bezüglich der aktuellen Bitebene anzeigen, wie es im Folgenden noch detailliert erörtert wird.The analysis predictor 200 is intended to advance, ie in anticipation of pushing the next tuple to be processed into the part of the shift register 106 at which the bit modeling unit 108 1 the tuple to be processed expects which spot in 4 are shown with hatching to determine which of these magnitude bits belong to pass 1. The analysis / prediction unit 200 For example, this decision is made whenever the shift register unit 106 through the bit extractor 104 ( 3 ) is refilled, ie at each shift pulse. In 4 meets the analysis prediction unit 200 For example, the decision on membership or non-membership of the magnitude bits of the 4-er vector q m , r m , s m , t m , the next shift in the register unit 106 to the current tuple or to the hatched register area, where currently the magnitude bits i m , j m , k m and l m are located. To make the prediction, the analysis / prediction unit is 200 with register cells of the register unit 106 coupled, with the part 106 2 that affects the magnitude bits, as with an arrow 226 is implied, and the part 106 3 that affects the first status bits, as with an arrow 228 is indicated, wherein the first status bits indicate the significance of corresponding coefficients with respect to the current bit plane, as will be discussed in more detail below.

An einen Ausgang der Analyse/Vorhersageeinheit 200 schließt sich das Register 218 an, um von der Analyse/Vorhersageeinheit 200 das Ergebnis der Vorhersage in Form eines 4-Bit-Vektors zu erhalten, der pro Betragsbit des als nächstes aktuellen Tupels durch ein entsprechendes Bit iae, jae, kae und lae aufweist, das angibt, ob das jeweilige Betragsbit qm, rm, sm, bzw. tm im Nachfolgenden Schiebezyklus durch die Bitmodelliereinheit 1081 zu verarbeiten ist oder nicht.To an output of the analysis / prediction unit 200 closes the register 218 to from the analysis / prediction unit 200 to obtain the result of the prediction in the form of a 4-bit vector having per magnitude bit of the next current tuple by a corresponding bit i ae , j ae , k ae and l ae indicating whether the respective magnitude bit q m , r m, s m, t m or hereinafter shift cycle by the Bitmodelliereinheit 108 1 to process or not.

Sowohl ein Eingang des Multiplexers 216 als auch ein Eingang des Koeffizientenwählers 222 sind mit dem Register 218 gekoppelt. Der Koeffizientenwähler 222 ist ausgebildet, um auf Basis des Registerinhaltes des Registers 218 die zu modellierenden bzw. vorzukodierenden Betragsbits des Passes 1 auszuwählen und diese Auswahl in Form eines Multiplexersteuersignals an den Multiplexer 210, 212, 204, 206 und 216 bzw. den Demultiplexer 214 mitzuteilen. Die Analyse/Vorhersageeinheit 200 gibt ferner eine Vorhersage über die Anzahl der zum Pass 1 gehörigen Betragsbits in dem als nächstes an der Reihe seienden Tupels aus, und zwar an den Taktzähler 220, der auf diese Weise an dem Beginn jedes Schiebezyklus bzw. nach einem Schiebevorgang in dem Schieberegister 106 auf einen Wert vorinitialisiert ist, der der Anzahl der zu dem Pass 1 gehörigen Betragsbits in dem aktu ellen Betragsbittupel entspricht. Der Taktzähler 220 dekrementiert dann beispielsweise seinen Zählerinhalt basierend auf einen Verarbeitungstakt, den derselbe von dem Koeffizientenwähler 222 erhält, der in dem Verarbeitungstakt das Multiplexersignal nacheinander auf die zu dem Pass 1 gehörigen Betragsbits einstellt, wie sie in dem Register 218 angezeigt sind.Both an input of the multiplexer 216 as well as an input of the coefficient selector 222 are with the register 218 coupled. The coefficient selector 222 is designed to be based on the register contents of the register 218 to select the amount bits of the pass 1 to be modeled or prescoded and this selection in the form of a multiplexer control signal to the multiplexer 210 . 212 . 204 . 206 and 216 or the demultiplexer 214 tell. The analysis / prediction unit 200 Further, there is a prediction about the number of magnitude bits associated with pass 1 in the next in-line tuple, to the clock counter 220 in this way at the beginning of each shift cycle or after a shift operation in the shift register 106 is preinitialized to a value corresponding to the number of magnitude bits associated with the pass 1 in the current magnitude bitmap. The clock counter 220 For example, then it decrements its counter content based on a processing clock the same from the coefficient selector 222 receives, in the processing clock, the multiplexer signal sequentially to the amount associated with the pass 1 magnitude bits, as in the register 218 are displayed.

Der Multiplexer 216 ist ausgebildet, um abhängig von dem Multiplexersignal von dem Koeffizientenwähler 222 das durch das Multiplexersignal angezeigte Bit aus dem Register 218 als Gültigkeitsbit bzw. Valid-Bit an seinen Zwischenspeicher 1101 auszugeben. Der Multiplexer 204 ist eingangsseitig mit speziellen Registerzellen bzw. Registerplätzen der Schieberegistereinheit aus dem Teil 1062 für die Betragsbits gekoppelt, und ist ausgebildet, um abhängig von dem Multiplexersteuersignal von dem Koeffizientenwähler 222 eine das durch das Multiplexersignal angezeigte Bit speichernde der Betragsbitregisterzellen mit einem Eingang der Betragsbitvorkodiereinheit 202 und optional einem Eingang der Vorzeichenbitvorkodiereinheit 208 zu koppeln, indem ein entsprechender der Eingänge des Multiplexers 204 auf einen entsprechenden Ausgang des Multiplexers 204 geführt wird. Entsprechendes gilt auch für die Multiplexer 210, 212 und 206. Der Multiplexer 210 beispielsweise ist eingangsseitig mit speziellen Vorzeichenbitzellen aus dem Teil 1061 der Schieberegistereinheit 106 gekoppelt und ausgebildet, um abhängig von dem Multiplexersignal einen entsprechenden Teilsatz dieser Registerinhalte bzw. Vorzeichenbits über den Ausgang des Multiplexers 210 an einen weiteren Eingang der Vorzeichenbitvorkodiereinheit 208 auszugeben. In entsprechender Weise ist der Multiplexer 212 zwischen spezielle Registerzellen aus dem Teil 1063 für die ersten Statusbits der Schieberegistereinheit 106 und einen weiteren Eingang der Vorzeichenbitvorkodiereinheit 208 und der Multiplexer 206 zwischen spezielle Registerzellen in dem Teil 1063 der Schieberegistereinheit 106 und einen weiteren Eingang der Betragsbitvorkodiereinheit 202 geschaltet, um ab hängig von dem Multiplexersignal einen Teil der ersten Statusbits dieser speziellen Registerzellen an die jeweilige Einheit auszugeben.The multiplexer 216 is configured to be dependent on the multiplexer signal from the coefficient selector 222 the bit indicated by the multiplexer signal from the register 218 as a valid bit or valid bit to its cache 110 1 issue. The multiplexer 204 is the input side with special register cells or register locations of the shift register unit from the part 106 2 for the magnitude bits, and is configured to be dependent on the multiplexer control signal from the coefficient selector 222 a bit bit register cell storing the bit indicated by the multiplexer signal, having an input of the magnitude bit precoding unit 202 and optionally an input of the sign bit precoding unit 208 to couple by a corresponding one of the inputs of the multiplexer 204 to a corresponding output of the multiplexer 204 to be led. The same applies to the multiplexer 210 . 212 and 206 , The multiplexer 210 For example, the input side with special sign bit cells from the part 106 1 the shift register unit 106 coupled and configured to, depending on the multiplexer signal, a corresponding subset of these register contents or sign bits via the output of the multiplexer 210 to another input of the sign bit precoding unit 208 issue. Similarly, the multiplexer 212 between special register cells from the part 106 3 for the first status bits of the shift register unit 106 and another input of the sign bit precoding unit 208 and the multiplexer 206 between special register cells in the part 106 3 the shift register unit 106 and another input of the magnitude bit pre-encoding unit 202 switched to output a part of the first status bits of these special register cells to the respective unit, depending on the multiplexer signal.

Die so eingehenden Signale werden von den Vorkodiereinheiten 208 und 202 verwendet, um jeweils ein Paar aus Datenbit 230 bzw. 232 und Kontext-Index bestehend aus 2 Bits 234 bzw. 236 auszugeben, wobei das Datenbit den Bitwert des Vorzeichenbits bzw. des Betragsbits des durch das Multiplexersignal angezeigten aktuell zu verarbeitenden Transformationskoeffizienten angibt, während der Kontextindex jeweils dazu auf den zugehörigen zu verwendenden Kontext zeigt.The incoming signals are from the precoding units 208 and 202 used to each a pair of data bits 230 respectively. 232 and context index consisting of 2 bits 234 respectively. 236 where the data bit indicates the bit value of the sign bit or the magnitude bit of the transform coefficient currently being processed by the multiplexer signal, while the context index points to the associated context to be used respectively.

Wie es in 4 durch einen Pfeil 238 angezeigt ist, kann es vorgesehen sein, dass die Vorzeichenbitvorkodiereinheit 208 zusätzlich bei Ihrer Kodierung bzw. Kontextbildung ein Bypass-Modus-Bit 240 verwendet, das von der Steuerbitsteuerung 224 neben einem Pass-Ende-Bit 242 ausgegeben wird. Die Bedeutung dieser Steuerbits 240 und 242 wird im Folgenden noch näher erörtert. Die Bits 230, 242 bilden zusammen ein 12-Bit-Wort 244, das in den Zwischenspeicher 1101 eingegeben wird. Der Zwischenspeicher 1101 kann ausgebildet sein, um lediglich Datenwörter 244 zwischenzuspeichern, bei denen das gleichzeitig eintreffende Gültigkeitsbit 246, das von dem Multiplexer 216 ausgegeben wird, anzeigt, dass das aktuelle Multiplexersignal auf einen zu dem Pass 1 gehöriges Betragsbit zeigte.As it is in 4 through an arrow 238 is displayed, it may be provided that the sign bit precoding 208 additionally with your coding or context formation a bypass mode bit 240 used by the control bit control 224 next to a pass-end bit 242 is issued. The meaning of these control bits 240 and 242 will be discussed in more detail below. The bits 230 . 242 together form a 12-bit word 244 that in the cache 110 1 is entered. The cache 110 1 can be designed to only data words 244 to cache in which the simultaneously arriving validity bit 246 that from the multiplexer 216 is output, indicating that the current multiplexer signal pointed to an amount bit associated with the pass 1.

Wie es in 4 ferner zu sehen ist, wird das von der Betragsbitvorkodiereinheit 202 ausgegebene Datenbit 232 auf einen Eingang des Demultiplexers 214 rückgekoppelt. Letztere ist ausgangsseitig mit Registerzellen aus dem Bereich 1063 gekoppelt, nämlich denjenigen, die die ersten Statusbits für die aktuellen Betragsbits (schraffiert dargestellt) enthält, um abhängig von dem Multiplexersignal das Datenbit 232 zur Aktualisierung des ersten Statusbits zu verwenden, das dem Betragsbit zugeordnet ist, das gerade durch die Betragsbitvorkodiereinheit 202 modelliert worden ist. Auf diese Weise wird nämlich die Signifikanz des entsprechenden Koeffizienten aktualisiert.As it is in 4 It will also be seen that this is done by the magnitude bit pre-encoding unit 202 output data bit 232 to an input of the demultiplexer 214 fed back. The latter is the output side with register cells from the area 106 3 coupled, namely the one containing the first status bits for the current magnitude bits (shown hatched), depending on the multiplexer signal, the data bit 232 to use for updating the first status bit associated with the magnitude bit currently being generated by the magnitude bit precoding unit 202 has been modeled. In this way, namely, the significance of the corresponding coefficient is updated.

Die vorhergehende Beschreibung ging lediglich grob auf den Aufbau und die Einzelfunktionsweise der Komponenten der Bitmodelliereinheit 1081 ein. Im Folgenden soll deshalb das Zusammenspiel der einzelnen Komponenten der Bitmodelliereinheit 1081 im Zusammenspiel mit der Schieberegistereinheit 106, dem Zwischenspeicher 1101 sowie dem Bitextraktor 104 unter gleichzeitiger Bezugnahme auf 8 und 3 näher erläutert werden. 8 versinnbildlicht einen Ausschnitt aus der Speichereinheit 102 (3) nämlich einen Ausschnitt aus den Betragsbits und Vorzeichenbits der Transformationskoeffizienten eines aktuell zu kodierenden Codeblocks. Insbesondere sind die einzelnen Vorzeichenbits und Betragsbits durch Würfel 250 bzw. 252 versinnbildlicht. Insbesondere sind die Vorzeichenbits 250 in Zeilen und Spalten nebeneinander liegend angeordnet dargestellt, in Entsprechung der entsprechenden Transformationskoeffizienten in dem zu kodierenden Codeblock. Nur ein Ausschnitt der Vorzeichenbits 250 ist gezeigt, und zwar ein Ausschnitt aus Vorzeichenbits 250 in einem aktuellen Streifen 254 plus der angrenzenden Zeilen 256 bzw. 258 des darüber und darunter befindlichen Streifens. Auch die Betragsbits 252 der aktuellen Bitebene sind als in Zeilen und Spalten nebeneinander liegend dargestellt, wobei ebenfalls lediglich ein Teil bzw. Ausschnitt aus der aktuellen Bitebene dargestellt ist, der dem Teil aus der Vorzeichenbitebene entspricht, d. h. einem Teil eines entsprechenden Streifens 260 mit den Betragsbits 252 der darüber und darunter befindlichen Zeile 262 und 264. Lediglich der Vollständigkeit halber wird darauf hingewiesen, dass in vertikaler Richtung zueinander ausgerichtete Betrags- und Vorzeichenbits in einander entsprechenden Zeilen unter den Zeilen 254264 in 8 zu gleichen Transformationskoeffizienten gehören sollen.The preceding description was only roughly related to the construction and single-function manner of the components of the bit-modeling unit 108 1 one. In the following, therefore, the interaction of the individual components of the Bitmodelliereinheit 108 1 in interaction with the shift register unit 106 the cache 110 1 as well as the Bitextraktor 104 with simultaneous reference to 8th and 3 be explained in more detail. 8th symbolizes a section of the storage unit 102 ( 3 ) namely a section of the magnitude bits and sign bits of the transformation coefficients of a code block currently to be coded. In particular, the individual sign bits and magnitude bits are cubes 250 respectively. 252 symbolizes. In particular, the sign bits 250 shown juxtaposed in rows and columns, corresponding to the corresponding transform coefficients in the code block to be coded. Only a section of the sign bits 250 is shown, a section of sign bits 250 in a current strip 254 plus the adjacent lines 256 respectively. 258 the strip above and below it. Also the amount bits 252 the current bit plane are shown as juxtaposed in rows and columns, wherein also only a part or section of the current bit plane is shown, which corresponds to the part of the sign bit plane, ie a part of a corresponding strip 260 with the amount bits 252 the line above and below 262 and 264 , For the sake of completeness, it is pointed out that magnitude and sign bits aligned in the vertical direction are arranged in lines corresponding to one another among the lines 254 - 264 in 8th should belong to the same transformation coefficients.

Die Betragsbits von weniger signifikanten Bitebenen als der aktuellen Bitebene sind in 8 nicht dargestellt. Signi fikantere und somit bereits kodierte Betragsbits der signifikanteren Bitebenen sind allerdings in 8 erkennbar und liegen der Reihe nach hinter der aktuellen Bitebene.The magnitude bits of less significant bit-planes than the current bit-plane are in 8th not shown. Signi fikantere and thus already encoded magnitude bits of the more significant bit planes are, however, in 8th recognizable and are behind the current bit level in turn.

Wie nun bereits im Vorhergehenden beschrieben wurde, füllt der Bitextraktor 104 bei jedem Schiebevorgang der Schieberegistereinheit 106 mittels Speicherzugriffen 114 (2) letztere wieder mit Vorzeichenbits 250 bzw. Betragsbits 252 aus der Speichereinheit 102, 3, so dass sich in dem Schieberegister 106 zu jedem Zeitpunkt immer ein Ausschnitt aus der Vorzeichenbitebene bzw. der aktuellen Betragsbitebene befindet. Diese Ausschnitte sind in 8 bei 266 und 268 hervorgehoben dargestellt. Wie zu erkennen ist, befindet sich zu einem betrachteten Zeitpunkt in dem Teil 1061 der Schieberegistereinheit ein Ausschnitt aus dem Vorzeichenbitarray von fünf aufeinander folgenden Spalten und sechs übereinander liegenden Zeilen, nämlich den vier Zeilen des aktuellen Streifens 254 und der Nachbarzeilen 256 und 258. Auf entsprechende Weise befindet sich in dem Teil 1062 der Schieberegister 106 zu jedem Zeitpunkt ein Ausschnitt aus der aktuellen Betragsbitebene von vier Spalten Länge zu je sechs Zeilen 260264.As already described above, the bitextractor fills 104 every time the shift register unit slides 106 by means of memory accesses 114 ( 2 ) the latter again with sign bits 250 or amount bits 252 from the storage unit 102 . 3 , so in the shift register 106 always a section of the sign bit plane or the current amount bit plane is always located. These cutouts are in 8th at 266 and 268 highlighted. As can be seen, is located at a given time in the part 106 1 the shift register unit is a section of the sign bit array of five consecutive columns and six superimposed lines, namely the four lines of the current strip 254 and the neighboring lines 256 and 258 , In a similar way is located in the part 106 2 the shift register 106 at any time a section of the current magnitude bit-plane of four columns length of six lines each 260 - 264 ,

Wie es in 8 zu erkennen ist, sind die Ausschnitte 266 und 268 der in den Zeilen 1061 und 1062 der Schieberegistereinheit 106 gespeicherten Vorzeichenbits 250 bzw. Betragsbits 252 derart zueinander ausgerichtet, dass zu einem Transformationskoeffizienten, für die augenblickliche Betragsbits 252 in dem Teil 1062 zwischengespeichert ist, auch das entsprechende Vorzeichenbit 250 des jeweiligen Transformationskoeffizienten in dem Teil 1061 zwischengespeichert ist. Insbesondere ist in der Schieberegistereinheit für jedes zu speichernde Bit eine Registerzelle vorgesehen, die in 8 ebenfalls als durch die Würfel in den entsprechenden Abschnitten 266 und 268 versinnbildlicht angesehen werden können. Die Registerzellen der Teile 1061 und 1062 sind dabei derart miteinander verschaltet, dass die Registerinhalte in 8 von rechts nach links ver schoben werden, so dass bei jedem Schiebevorgang eine Spalte von Vorzeichenbits 250 bzw. Betragsbits 252 die Schieberegistereinheit 106 auf der einen Seite, in 8 nämlich links, verlässt, und an dem anderen Ende des Schieberegisters die entsprechenden Teile 1061 und 1062 mit einer nächsten Spalte 270 bzw. 272 von Vorzeichenbits 250 bzw. Betragsbits 252 aufgefüllt werden. In 8 entspricht dies einer Verschiebung des zwischengespeicherten Abschnittes 266 bzw. 268 in der Vorzeichenbitebene bzw. Betragsbitebene pro Schiebevorgang virtuell um eine Spalte nach rechts. Der Bitextraktor 104 ist nun derart ausgebildet, dass er die Befüllung des Teiles 1061 und 1062 mit Vorzeichenbits 250 bzw. Betragsbits 252 durchführt, die eine aneinander zugeordnete Spalte von Transformationskoeffizienten betreffen, so dass sich der Versatz zwischen dem Inhalt des Vorzeichenbitteiles 1061 und dem augenblicklichen Inhalt des Betragsbitinhaltes 1062 der Schieberegistereinheit 106 am hinteren Schieberegisterende ergibt, wo Vorzeichenbits in dem Teil 1061 zwischengespeichert sind, die diesen Teil beim nächsten Schiebevorgang verlassen, und für die keine Betragsbits mehr in dem Teil 1062 zwischengespeichert sind.As it is in 8th it can be seen, are the cutouts 266 and 268 the one in the lines 106 1 and 106 2 the shift register unit 106 stored sign bits 250 or amount bits 252 aligned such that to a transformation coefficient, for the momentary magnitude bits 252 in the part 106 2 is cached, including the corresponding sign bit 250 the respective transformation coefficient in the part 106 1 is cached. In particular, a register cell is provided in the shift register unit for each bit to be stored, which in 8th also as through the cubes in the corresponding sections 266 and 268 can be regarded as symbolized. The register cells of the parts 106 1 and 106 2 are interconnected in such a way that the register contents in 8th be shifted from right to left ver, so that each shift a column of sign bits 250 or amount bits 252 the shift register unit 106 on the one hand, in 8th namely left, leaves, and at the other end of the shift register the corresponding parts 106 1 and 106 2 with a next column 270 respectively. 272 of sign bits 250 or amount bits 252 be filled. In 8th this corresponds to a shift of the cached portion 266 respectively. 268 in the sign bit plane or amount bit plane per shift virtually by one column to the right. The Bitextraktor 104 is now designed such that it is the filling of the part 106 1 and 106 2 with sign bits 250 or amount bits 252 which relates to a column of transform coefficients associated with each other, so that the offset between the contents of the sign bit part 106 1 and the momentary Content of amount bit content 106 2 the shift register unit 106 at the rear shift register end, where sign bits in the part 106 1 are cached that leave this part at the next shift, and no more magnitude bits in the part 106 2 are cached.

Wie bereits im Vorhergehenden erwähnt, benötigen die Bitmodelliereinheiten 1081 und 1082 für ihre Verarbeitung auch Statusbits, nämlich erste und zweite Statusbits. Die ersten Statusbits geben jeweils für einen Transformationskoeffizienten an, ob derselbe bezüglich der aktuellen Betragsbitebene signifikant ist oder nicht. Erneut sei darauf hingewiesen, dass sich der Zustand der Signifikanz der aktuellen Betragsbitebene für einen Transformationskoeffizienten nach dem – bzw. währenddessen – virtuellen ersten Durchlauf bzw. Pass 1 ändern kann. Der Teil 1063 der Schieberegistereinheit 106 ist nun derart dimensioniert, dass er für sechs aufeinander folgende Spalten von Transformationskoeffizienten in den Zeilen 260264 entsprechenden Zeilen jeweils ein Statusbit 274 speichert, die in 8 ebenfalls als Würfel dargestellt sind. Insbesondere speichert die Schieberegis tereinheit 106 in dem Teil 1063 zu jedem Zeitpunkt erste Statusbits 274 für Transformationskoeffizienten von sechs benachbarten Spalten zu je sechs Zeilen, von denen fünf Spalten die ersten Statusbits zu Transformationskoeffizienten enthalten, zu denen die Vorzeichenbits 250 in dem Ausschnitt 266 des Teils 1061 enthalten sind. Zusätzlich sind erste Statusbits für Transformationskoeffizienten in einer 6-er Spalte von Transformationskoeffizienten enthalten, mit deren Vorzeichenbits 250 bzw. Betragsbits der aktuellen Bitebene die Teile 1061 und 1062 der Schieberegistereinheit 106 erst beim nächsten Schiebevorgang befüllt werden.As already mentioned above, the bit modeling units require 108 1 and 108 2 for their processing also status bits, namely first and second status bits. The first status bits each indicate, for a transform coefficient, whether or not it is significant with respect to the current magnitude bit-plane. Again, it should be noted that the state of significance of the current magnitude bit-plane for a transform coefficient may change after-or during-virtual-first pass. The part 106 3 the shift register unit 106 is now dimensioned to be for six consecutive columns of transform coefficients in the rows 260 - 264 corresponding lines each have a status bit 274 stores in 8th are also shown as cubes. In particular, the shift register unit stores 106 in the part 106 3 first status bits at any time 274 for transform coefficients of six adjacent six-row columns, five of which contain the first status bits of transform coefficients, including the sign bits 250 in the clipping 266 of the part 106 1 are included. In addition, first status bits for transform coefficients are contained in a 6-column of transform coefficients, with their sign bits 250 or amount bits of the current bit plane the parts 106 1 and 106 2 the shift register unit 106 be filled only at the next shift.

In der Darstellung von 8 können ebenfalls die Würfel 274 gleichzeitig auch als die entsprechenden Registerzellen angesehen werden, die derart verschaltet sind, dass sie ihre Inhalte spaltenweise verschieben, und zwar in 8 ebenfalls von rechts nach links im gleichen Takt wie die anderen Teile 1061 und 1062 . Die Befüllung übernimmt ebenfalls der Bitextraktor 104 und zwar durch Bitkombination, wie z. B. ein logisches ODER zwischen in Signifikanzrichtung in einer Linie angeordneten Bits, auf der Basis der durch Schraffur hervorgehobenen Betragsbits 276 in den signifikanteren Betragsbitebenen als der aktuellen Betragsbitebene für Transformationskoeffizienten, die an den Positionen der Spalte 272 befindlich sind, mit deren Betragsbits der aktuellen Bitebene die Registerzellen am vorderen Ende des Teils 1062 der Schieberegistereinheit 106 erst beim nächsten Schiebeimpuls befüllt werden. Der Befüllvorgang, der zu den jüngsten Einträgen in dem ersten-Statusbit-Teil 1063 geführt hat, ist in 8 mit dem Pfeil 278 angedeutet.In the presentation of 8th can also do the dice 274 at the same time be regarded as the corresponding register cells interconnected to shift their contents column by column, in 8th also from right to left in the same bar as the other parts 106 1 and 106 2 , The filling also takes over the Bitextraktor 104 by bit combination, such. A logical OR between bits arranged in a significant direction on the basis of the magnitude bits emphasized by hatching 276 in the more significant amount bit-planes than the current magnitude-bit-plane for transform coefficients that appear at the positions of the column 272 with their magnitude bits of the current bit plane, the register cells at the front end of the part 106 2 the shift register unit 106 be filled only at the next shift pulse. The filling process, which is among the most recent entries in the first status bit part 106 3 has been in is 8th with the arrow 278 indicated.

Schließlich ist auch in dem Schieberegister 106 ein Teil 1064 vorgesehen, in dem zweite Statusbits gespeichert sind, deren Bedeutung und Relevanz noch aus der folgenden Beschreibung deutlich wird. Jedenfalls speichert der Teil 1064 die zweiten Statusbits für Transformationskoeffizienten lediglich einer Spalte und zwar in lediglich vier Zeilen, die den Zeilen des Streifens 260 bzw. 254 entsprechen, wobei die zweiten Statusbits ebenfalls als Würfel versinnbildlicht sind, die mit dem Bezugszeichen 280 angezeigt sind. Bei jedem Schiebevorgang in der Schieberegistereinheit 106 werden die zweiten Statusbits 280 aktualisiert, derart, dass sie immer für die Transformationskoeffizienten definiert sind, deren Betragsbit in der ausgangsseitigen Spalte in dem Streifen 260 zwischengespeichert sind, um beim nächsten Schiebevorgang aus dem Teil 1062 der Schieberegistereinheit 106 verdrängt zu werden. Der Bit-Extraktor 104 aktualisiert die zweiten Statusbits 280 bei jedem Schiebevorgang der Schieberegister 106 aus schraffiert hervorgehobenen Betragsbits 282 in signifikanteren Betragsbitebenen als der aktuellen Betragsbitebene für die soeben erwähnten Transformationskoeffizienten in dem Streifen 260, indem der Bitextraktor 104 für jeden Transformationskoeffizienten die entsprechenden Betragsbits daraufhin überprüft, ob zumindest zwei dieser Betragsbits Eins bzw. signifikant sind.Finally, also in the shift register 106 a part 106 4 provided in the second status bits are stored, whose meaning and relevance will become apparent from the following description. Anyhow, the part saves 106 4 the second status bits for transform coefficients of only one column in only four lines corresponding to the lines of the strip 260 respectively. 254 correspond, wherein the second status bits are also symbolized as cubes, denoted by the reference numeral 280 are displayed. Every time you shift in the shift register unit 106 become the second status bits 280 updated such that they are always defined for the transform coefficients, their magnitude bits in the output-side column in the stripe 260 are cached to the next shift from the part 106 2 the shift register unit 106 to be displaced. The bit extractor 104 updates the second status bits 280 with each shift of the shift registers 106 hatched bits of magnitude highlighted 282 in more significant magnitude bit-planes than the current magnitude bit-plane for the just-mentioned transform coefficients in the strip 260 by the bitextractor 104 for each transform coefficient, check the corresponding magnitude bits for at least two of these magnitude bits to be one or significant.

Zurückkehrend zur 4 ist nun die Analyse/Vorhersageeinheit 200 derart mit den Teilen 1062 und 1063 der Schieberegistereinheit 106 gekoppelt, dass sie zur Vorhersage der Betragsbitzugehörigkeit des nächsten zu modellierenden Betragsbittupels den Inhalt der Registerzellen aus dem Teil 1062 sowie die ersten Statusbits in denjenigen Registerzellen des Teils 1063 der Schieberegistereinheit 106 erhält, die mit gestrichelten Linien angezeigt und mit dem Bezugszeichen 282 bzw. 284 versehen sind. Um dies ein weniger näher zu veranschaulichen, werden im Folgenden speziell angesprochene Registerzellen bzw. Bits in den Teilen 1061 1064 jeweils mit einem Indexpaar #, # versehen, das kodiert in Spaltennummer und Zeilennummer von der linken oberen Ecke ausgehend die Registerzellen- bzw. Bitposition angibt. So spannt der Bereich 282 beispielsweise den Bereich der Bereich der Betragsbits 2523,2 bis 2524,5 auf und der Bereich 284 den Bereich der Bits 2744,1 bis 2746,6 . Die Analyse/Vorhersageeinheit 200 verwendet nun die ihr zugeführten Informationen, um die Zugehörigkeit der Betragsbits an den Positionen 2524,2 bis 2524,5 zu dem ersten Pass vorherzusagen, welche Betragsbits das als nächstes an der Reihe seiende Tupel bilden, das zumindest in dem Fall, dass sich unter den Betragsbits ein zu dem Pass 1 Gehöriges befindet, von den Vorkodiereinheiten 202, 208 verarbeitet wird.Returning to 4 is now the analysis / prediction unit 200 so with the parts 106 2 and 106 3 the shift register unit 106 coupled to predict the magnitude membership of the next magnitude bit tuple to be modeled, the contents of the register cells of the part 106 2 and the first status bits in those register cells of the part 106 3 the shift register unit 106 receives, indicated by dashed lines and by the reference numeral 282 respectively. 284 are provided. To illustrate this a little closer, in the following specifically addressed register cells or bits in the parts 106 1 - 106 4 each with an index pair #, # coded in the column number and line number starting from the top left corner indicates the register cell or bit position. That's how the area spans 282 for example, the range of the range of magnitude bits 252 3.2 to 252 4.5 on and the area 284 the range of bits 274 4.1 to 274 6.6 , The analysis / prediction unit 200 now uses the information supplied to it to determine the affiliation of the magnitude bits at the positions 252 4.2 to 252 4.5 to predict to the first pass which magnitude bits form the next-ranked tuple that, at least in the case that among the magnitude bits is one associated with pass 1, from the precode units 202 . 208 is processed.

Die Betragsbits in dem Bereich 282 verwendet die Analyse/Vorhersageeinheit 200, um berücksichtigen zu können, dass nicht alle Statusbits in dem zweiten Bereich 284 so aktualisiert sind, wie sie es in dem Fall der Dekodierung in dem Dekodierer an der gleichen Stelle bei der Dekodierung des Pass 1 sein werden. Zusätzlich verwendet die Analyse/Vorhersageeinheit 200 zu ihrer Vorhersage das letzte Vorhersageergebnis, das sie an die Register 218 ausgab, und in dem Schieberegisterspeicherzustand von 8 die Transformationskoeffizientenpositionen betrifft, die in dem Teil 1063 mit der Strich-Punkt-Punkt-Linie 286 markiert sind, die auch gleichzeitig die Transformationskoeffizientenpositionen markieren, die dem aktuell zu modellierenden Tupel entsprechen. Zum Beispiel kann die Analyse/Vorhersageeinheit 200 eine Noch-Nicht-Aktualisiertheit des ersten Statusbits 2744,2 abhängig von einer UND-Verknüpfung des Bits iae des letzten Vorhersageergebnisses mit dem Betragsbit 2523,2 berücksichtigen, indem sie das Ergebnis dieser UND-Verknüpfung mit dem ersten Statusbit 2744,2 ODER-verknüpft.The amount bits in the range 282 uses the analysis / prediction unit 200 to capture to be aware that not all status bits are in the second area 284 are updated as they will be in the case of decoding in the decoder at the same location in the decoding of the passport 1. In addition, the analysis / prediction unit uses 200 to their prediction the last forecast result that they sent to the registers 218 and in the shift register storage state of 8th the transform coefficient positions that are in the part 106 3 with the dash-dot-dot line 286 are marked, which also simultaneously mark the transformation coefficient positions which correspond to the tuple currently to be modeled. For example, the analysis / prediction unit 200 a not-yet-updated first status bit 274 4.2 dependent on ANDing the bit i ae of the last prediction result with the magnitude bit 252 3.2 take into account the result of this AND operation with the first status bit 274 4.2 ORed.

Für das erste Statusbit 2745,2 kann die Analyse/Vorhersageeinheit 200 die Noch-Nicht-Aktualisiertheit dadurch adressieren, dass sie das Ergebnis einer ODER-Verknüpfung der acht direkten Nachbarbits 274 mit vorbeschriebener Aktualisierungskompensation für die Statusbits 2744,2 und 2744,3 mit dem Betragsbit 2524,2 UND-verknüpft. Mit solchermaßen virtuell aktualisierten ersten Steuerbits kann die Analyse/Vorhersageeinheit 200 die Zugehörigkeit von beispielsweise dem Betragsbit 2524,3 durch eine ODER-Verknüpfung der acht ersten Steuerbits der acht unmittelba ren Nachbar-Koeffizienten unter anschließender UND-Verknüpfung mit dem Inversen bzw. der Negation des Statusbits 2745,3 ermitteln. Auf diese Weise überprüft folglich die Analyse/Vorhersageeinheit 202 für jeden der zu modellierenden Betragsbits 2524,2 , bis 2524,5 , ob die entsprechenden Transformationskoeffizienten, die sie darstellen, noch insignifikant sind, sowie ob die direkten Nachbar-Koeffizienten schon signifikant sind bzw. zumindest einer derselben schon signifikant ist, und zwar bereits eine Spalte vor der aktuell zu modellierenden Spalte 2523,2 bis 2523,5 und unter Berücksichtigung der Signifikanzen, wie sie sich bei ordentlichem Durchlauf des Pass 1 bis zu dem jeweiligen Betragsbit in 2523,2 bis 2523,5 ergeben hätten.For the first status bit 274 5.2 can be the analysis / prediction unit 200 address the not-yet-updated by being the result of ORing the eight immediate neighbor bits 274 with the above-described update compensation for the status bits 274 4.2 and 274 4.3 with the amount bit 252 4.2 ANDed. With such virtually updated first control bits, the analysis / prediction unit 200 the affiliation of, for example, the amount bit 252 4.3 by an OR operation of the eight first control bits of the eight direct neigh neighboring coefficients, followed by an AND operation with the inverse or the negation of the status bit 274 5.3 determine. Thus, the analysis / prediction unit checks in this way 202 for each of the magnitude bits to be modeled 252 4.2 , to 252 4.5 whether the corresponding transformation coefficients that they represent are still insignificant, as well as whether the direct neighboring coefficients are already significant or at least one of them is already significant, already a column in front of the column currently to be modeled 252 3.2 to 252 3.5 and taking into account the significances, such as they are in proper passage of the passport 1 to the respective amount bit in 252 3.2 to 252 3.5 would have resulted.

Das Analyseergebnis wird dann von der Einheit 200, wie bereits beschrieben, als 4-Bit-Vektor an das Register 218 ausgegeben, um nach dem nächsten Schiebevorgang der Schieberegistereinheit 106 am Eingang des Multiplexers 216 bzw. des Koeffizientenwählers 222 anzuliegen. Mit nur einer zusätzlichen arithmetischen Addieroperation unter den Bitwerten, die dieselbe an die Register 218 ausgibt, kann die Analyse/Vorhersageeinheit 200 auch das Vorhersageergebnis liefern und an den Bitzähler 220 vor Beginn des nächsten Schiebevorganges in das Schieberegistereinheit 106 ausgeben, das angibt, wie viele der Betragsbits in dem nächsten zu modellierenden Tupel dem Pass 1 angehören. Zeigt das Register 218 an, dass keines der Betragsbits des aktuellen Tupels 2523,2 bis 2523,5 zu dem Pass 1 gehört, so stellt der Koeffizientenwähler 222 das Multiplexersignal beliebig ein, wie z. B. auf einen vorbestimmten Wert, der nicht von dem Registerinhalt des Registers 218 abhängt, wodurch der Multiplexer 216 eines der nicht-gesetzten Bits in dem Register 218 als Gültigkeitsbit 246 an den Zwischenspeicher 2101 ausgibt. Selbst wenn also die Vorkodiereinheiten 202, 208 und die Steuerbitsteuerung 224 zusammen ein 12-Bit-Wort 244 bilden und an den Zwischenspeicher 1101 ausgeben, so nimmt der Zwischenspeicher 1101 beispielsweise die Zwischenspeicherung dieses Datenwortes 244 nicht vor, weil das Gültig keitsbit nicht gesetzt ist. Zur Stromersparnis kann es jedoch vorgesehen sein, dass beispielsweise der Betrieb der Vorkodiereinheiten 202, 208 in einem solchen Fall unterbunden wird, wie es exemplarisch durch einen Pfeil 288 in 4 angedeutet ist. Natürlich wäre es ferner möglich, dass der Zwischenspeicher 1101 die Speicherung der Datenworte 244 unabhängig davon vornimmt, ob das Gültigkeitsbit gesetzt ist oder nicht, in welchem Fall der Zwischenspeicher 1101 das Gültigkeitsbit einfach zusammen mit dem 12 Bit-Wort zwischenspeichert, wobei diese Vorgehensweise allerdings einen größeren Speicherplatz in dem Zwischenspeicher 1101 erforderlich macht.The analysis result is then from the unit 200 as previously described, as a 4-bit vector to the register 218 is issued after the next shift operation of the shift register unit 106 at the input of the multiplexer 216 or the coefficient selector 222 to rest. With just one additional arithmetic adding operation among the bit values, the same to the registers 218 can output the analysis / prediction unit 200 also deliver the prediction result and to the bit counter 220 before starting the next shift into the shift register unit 106 which indicates how many of the magnitude bits in the next tuple to be modeled belong to pass 1. Shows the register 218 that none of the magnitude bits of the current tuple 252 3.2 to 252 3.5 belongs to the passport 1, so sets the coefficient selector 222 the multiplexer signal as desired, such. To a predetermined value that is not from the register contents of the register 218 depends, causing the multiplexer 216 one of the unset bits in the register 218 as valid bit 246 to the cache 210 1 outputs. So even if the precoding units 202 . 208 and the control bit control 224 together a 12-bit word 244 form and to the cache 110 1 spend, so takes the cache 110 1 For example, the caching of this data word 244 not available because the validity bit is not set. However, to save power, it may be provided that, for example, the operation of the precoding units 202 . 208 is prevented in such a case, as exemplified by an arrow 288 in 4 is indicated. Of course, it would also be possible for the cache to work 110 1 the storage of data words 244 regardless of whether the validity bit is set or not, in which case the cache 110 1 the valid bit is simply cached along with the 12-bit word, but this approach takes up more space in the cache 110 1 required.

Anderenfalls jedoch, d. h. in dem Fall zumindest eines gesetzten Bits in dem Register 218, das anzeigt, dass das entsprechende Betragsbit unter den aktuell zu modellierenden Betragsbits 2523,2 bis 2523,5 dem Pass 1 angehört, stellt in aufeinander folgenden Arbeitszyklen der Koeffizientenwähler 222 das Multiplexersignal sequentiell unten entsprechend den gesetzten Bits in dem Register 218 auf die dem Pass 1 angehörigen Koeffizienten ein. In dem Verarbeitungstakt generieren dann die Steuerbitsteuerung 224 und die Vorkodiereinheiten 202 und 208 zu jedem dieser dem Pass 1 angehörigen Betragsbits ein 12 Bit-Datenwort 244, das zusammen mit einem gesetzten Gültigkeitsbit 246 an den Zwischenspeicher 1101 ausgegeben wird, der aufgrund des gesetzten Gültigkeitsbits diese Datenwörter in der eintreffenden Reihenfolge speichert. Insbesondere geht der Koeffizientenwähler 222 die zu dem Pass 1 gehörigen Betragsbits innerhalb der Spalte 2523,2 bis 2523,5 von oben nach unten durch, wie es gemäß der Scanreihenfolge der Decoder auch erwartet.Otherwise, however, ie in the case of at least one set bit in the register 218 indicating that the corresponding magnitude bit is below the magnitude bits currently to be modeled 252 3.2 to 252 3.5 belongs to Pass 1, sets the coefficient selector in successive cycles 222 the multiplexer signal sequentially down corresponding to the set bits in the register 218 to the coefficients belonging to Pass 1. In the processing clock then generate the control bit control 224 and the precoding units 202 and 208 for each of these pass bits belonging to the 1 a 12-bit data word 244 , which together with a set validity bit 246 to the cache 110 1 is output, which stores these data words in the incoming order due to the valid bit set. In particular, the coefficient selector goes 222 the amount bits associated with pass 1 within the column 252 3.2 to 252 3.5 from top to bottom as it also expects according to the scanning order of the decoder.

In jedem Verarbeitungszyklus verarbeiten die Vorkodiereinheiten 202 und 208 die ihnen zu Verfügung stehenden Informationen gemäß einem jeweiligen Kodierungsschema, um die Datenbits 230 bzw. 232 und die zugehörigen Kontext-Indizes 234 und 236 zu bestimmen. Die Vorkodiereinheit 202 führt ein sogenanntes Signifikanzfortpflanzungs- bzw. SP-Kodierschema aus. Danach wird der Kontext-Index 236 mittels logischer Verknüpfung der Signifikanzen der Nachbar-Koeffizienten gebildet. Zeigt also beispielsweise das aktuelle Multiplexersignal auf das Betragsbit 2523,3 , so leitet der Multiplexer 206 die ersten Statusbits 2743,2 bis 2745,2 , 2743,4 bis 2745,4 , 2743,3 und 2745,3 weiter. Insgesamt ist folglich eingangsseitig der Multiplexer 206 mit den Registerzellen gekoppelt, die von der gestrichelten Linie 290 in 8 umgeben sind. Der Multiplexer 204 ist eingangsseitig mit den Registerpositionen in dem Bereich 1062 gekoppelt, der dem aktuell zu modellierenden Tupel entspricht und mit einer gestrichelten Linie 292 gekennzeichnet ist. Der Multiplexer 204 gibt den durch das Multiplexersignal angezeigten Betragsbitwert an die Vorkodiereinheit 202 aus, damit diese das Datenbit 232 entsprechend einstellen kann.In each processing cycle, the precoding units process 202 and 208 the information available to them according to a respective coding scheme, the data bits 230 respectively. 232 and the associated context indexes 234 and 236 to determine. The precoding unit 202 performs a so-called significance propagation or SP coding scheme. After that, the context index 236 formed by logically linking the significances of the neighbor coefficients. Thus, for example, shows the current multiplexer signal on the amount bit 252 3.3 so does the multiplexer 206 the first status bits 274 3.2 to 274 5.2 . 274 3.4 to 274 5.4 . 274 3.3 and 274 5.3 further. Overall, therefore, the input side of the multiplexer 206 coupled to the register cells by the dashed line 290 in 8th are surrounded. The multiplexer 204 is input side with the register positions in the area 106 2 coupled, which corresponds to the currently modeled tuple and with a dashed line 292 is marked. The multiplexer 204 indicates the magnitude bit value indicated by the multiplexer signal to the precode unit 202 off, so that this is the data bit 232 can adjust accordingly.

Die Vorzeichenbitvorkodiereinheit 208 kann, wie es in 4 durch die gestrichelte Verbindungslinie 294 angezeigt ist, ebenfalls den Betragsbitwert des durch das Multiplexersignal angezeigten Betragsbits erhalten, um abhängig davon eine Verarbeitung zu unterbinden oder durchzuführen. Denn decoderseitig erwartet der Dekodierer eine Kodierung des Vorzeichenbits eines Transformationskoeffizienten ohnehin nur dann, wenn er das erste Mal signifikant wird, nämlich unmittelbar nach Erhalt des entsprechenden Datenbits dieses Betragskoeffizienten, so dass in diesem Fall in dem Datenwort 244 die entsprechenden Bits 230 und 234 unbeachtlich sind. Die durch die Einheit 208 ausgegeben Datenbits und Kontext-Indizes 230, 234 sind anders ausgedrückt nur dann relevant, wenn das Datenbit 232, das durch die Betragsvorkodiereinheit 202 ausgegeben wird, signifikant bzw. gesetzt ist. Die Verbindung 294 zwischen dem Ausgang des Multiplexers 204 und der Vorkodiereinheit 208 kann allerdings auch fehlen, in welchem Fall die Werte, die das Datenbit 230 bzw. der Kontext-Index 234 annehmen, für die nachfolgende Überarbeitung allerdings unbeachtlich ist.The sign bit precoding unit 208 can, as it is in 4 through the dashed connecting line 294 is also displayed, the amount bit value of the magnitude bits indicated by the multiplexer signal is received to inhibit or perform processing depending thereon. On the decoder side, the decoder expects an encoding of the sign bit of a transformation coefficient anyway only if it becomes significant the first time, namely immediately after receipt of the corresponding data bit of this magnitude coefficient, so that in this case in the data word 244 the corresponding bits 230 and 234 are irrelevant. The by the unit 208 output data bits and context indices 230 . 234 in other words, they are only relevant if the data bit 232 by the amount pre-encoding unit 202 is issued, is significant or set. The connection 294 between the output of the multiplexer 204 and the precoding unit 208 However, it can also be missing, in which case the values that the data bit 230 or the context index 234 assume, for the subsequent revision, however, is irrelevant.

Jedenfalls führt die Vorzeichenbitvorkodiereinheit 208 ein sogenanntes Vorzeichenkodier- bzw. SC-(SC = sign coding) Schema durch, wonach das Datenbit 230 den Wert des Vorzeichens zu dem durch das Multiplexersignal angezeigten Transformationskoeffizienten und der zugehörige Kontext-Index 234 auf einen Kontext eingestellt wird, welcher von einer logischen Verknüpfung der Signifikanzen und Vorzeichen der Nachbar-Koeffizienten abhängt, und zwar gemäß dem JPEG2000-Standard, der hier ja exemplarisch adressiert wird, lediglich die Nachbar-Koeffizienten in Spalten- und Zeilenrichtung. Zeigt beispielsweise das Multiplexersignal auf das Betragsbit 2523,3 , so ermittelt die Vorkodiereinheit 208 das Datenbit 230 aus dem Vorzeichenbit 2504,3 und den hierzu benachbarten Vorzeichenbits 2503,3 , 2505,3 , 2504,2 und 2504,4 unter Berücksichtigung, dass für den Dekodierer noch nicht alle Vorzeichenbits bekannt sind, was hier durch Auswertung der ersten Steuerbits der Nachbarbits berücksichtigt wird, nämlich von 2743,3 und 2744,2 . Dementsprechend ist der Multiplexer 210 eingangsseitig mit Registerzellen innerhalb des mit der gestrichelten Linie 294 markierten Bereichs gekoppelt, während der Multiplexer 212 eingangsseitig mit einem Teil der Registerzellen innerhalb des Bereichs 290 gekoppelt ist, um jeweils einen Teil dieser Registerzellen abhängig von dem Multiplexersignal von dem Koeffizientenwähler 222 mit der Vorzeichenbitvorkodierungseinheit 208 zu koppeln.In any case, the sign bit precoding unit performs 208 a so-called sign coding or SC (SC = sign coding) scheme, after which the data bit 230 the value of the sign to the transform coefficient indicated by the multiplexer signal and the associated context index 234 is set to a context which depends on a logical combination of the significances and signs of the neighboring coefficients, according to the JPEG2000 standard, which is hereby addressed by way of example, only the neighboring coefficients in column and row direction. For example, shows the multiplexer signal on the magnitude bit 252 3.3 , so determines the Vorkodiereinheit 208 the data bit 230 from the sign bit 250 4.3 and the sign bits adjacent thereto 250 3.3 . 250 5.3 . 250 4.2 and 250 4.4 taking into account that not all sign bits are yet known for the decoder, which is taken into account here by evaluating the first control bits of the neighboring bits, namely 274 3.3 and 274 4.2 , Accordingly, the multiplexer 210 input side with register cells within the dashed line 294 coupled area while the multiplexer 212 on the input side with part of the register cells within the range 290 is coupled to each a part of these register cells depending on the multiplexer signal from the coefficient selector 222 with the sign bit precoding unit 208 to pair.

Die Steuerbitsteuerung 224 setzt in jedem Verarbeitungszyklus der Vorkodiereinheiten 202 und 208 die Steuerbits 240 und 242, die die nachfolgende arithmetische Kodierungseinrichtung 112 (3) beispielsweise darüber informieren sollen, ob der Bypass-Modus für den jeweiligen Transformationskoeffizienten des Datenworts 244 aktiv sein soll, und ob der aktuelle Coding-Pass zu Ende ist. Genauer ausgedrückt, setzt die Steuerbitsteuerung 224 das Pass-Ende-Bit 242 in dem Fall, dass das aktuelle zu modellierende Tupel die letzten Betragsbits in der aktuellen Betragsbitebene beinhaltet, z. B. die Betragsbits ui, vi, wi und xi in der aktuellen Bitebene i in dem Beispiel von 2. Das Bypass-Modus-Bit 240 stellt die Steuerbitsteuerung 224 beispielsweise in Abhängigkeit von der Tiefe der aktuellen Betragsbitebene ein, so dass beispielsweise nach der vierten kodierten Bitebene das Bit 240 den Bypass-Modus anzeigt, was anzeigt, dass ab diesem Zeitpunkt die Pass-1-Daten in Rohform bzw. unkomprimiert in den Datenstrom am Ausgang der arithmetischen Kodiereinrichtung 112 eingebracht werden sollen.The control bit control 224 sets in each processing cycle of the precoding units 202 and 208 the control bits 240 and 242 representing the subsequent arithmetic coding device 112 ( 3 ) should inform, for example, whether the bypass mode for the respective transformation coefficient of the data word 244 should be active, and whether the current coding pass is over. More specifically, the control bit control sets 224 the pass-end bit 242 in the case that the current tuple to be modeled includes the last magnitude bits in the current magnitude bit-plane, e.g. B. the magnitude bits u i , v i , w i and x i in the current bit plane i in the example of 2 , The bypass mode bit 240 provides the control bit control 224 For example, depending on the depth of the current magnitude bit plane, so that, for example, after the fourth coded bit plane, the bit 240 indicates the bypass mode, indicating that from this point on the pass-1 data is raw or uncompressed into the data stream at the output of the arithmetic encoder 112 should be introduced.

Schließlich sei noch bemerkt, dass der Zwischenspeicher 1101 in dem Fall, dass er ausgebildet ist, um Datenwörter 244 abhängig von dem Gültigkeitsbit 246 zwischenzuspeichern oder zu verwerfen, insbesondere so ausgebildet ist, dass der Zwischenspeicher 2101 das Datenwort 244 in dem Fall eines gesetzten Pass-Ende-Bits 242 aber auch dann zwischenspeichert, wenn das entsprechende Gültigkeitsbit 246 nicht gesetzt ist. Verschiedene Maßnahmen können in diesem Fall dafür vorgesehen sein, dass das Datenwort das eigentliche ungesetzte Gültigkeitsbit 246 widerspiegelt, wie z. B. das kodieren des Restes der Datenwortes 244 außer dem Pass-Ende-Bit zu einem ansonsten nicht gültigen, da mit Pass 1 zugehörigen Betragsbit nicht vorkommenden Zustand.Finally, it should be noted that the cache 110 1 in the case that he is trained to data words 244 depending on the validity bit 246 temporarily store or discard, in particular, is designed so that the cache 210 1 the data word 244 in the case of a set pass-end bit 242 but also cached if the corresponding valid bit 246 not set. Various measures can be provided in this case for the data word to be the actual unactivated validity bit 246 reflects, such as B. coding the remainder of the data word 244 except for the pass-end bit for an otherwise invalid state, since Pass 1 associated with the magnitude bit does not occur.

Wie bereits erwähnt, wird der Taktzähler 220 nach jedem Schiebevorgang auf die Vorhersage vorinitialisiert, wie viele Koeffizienten in einer Spalte moduliert werden bzw. zu modellieren sind. Da diese Vorhersage bereits eine Spalte vor der aktuell zu modellierenden Spalte ausgeführt wird, liegt das Ergebnis für den Taktzähler 22 bereits beim Schiebevorgang selbst vor. Ist das Ergebnis bzw. die Vorinitialisierung 0 oder 1, kann mit dem nächsten Takt sofort der nächste Schiebevorgang der Schieberegistereinheit 106 ausgelöst werden, was der Taktzähler 220 entsprechend veranlasst. Bei größeren vorinitialisierten Werten verzögert der Taktzähler 220 entsprechend die Ausgabe des Schiebeimpulses 296 an die Schieberegistereinheit 106. Wie es im Folgenden ferner erwähnt werden wird, berücksichtigt der Taktzähler 220 dabei ferner, ob die parallele Verarbeitung durch die Bitmodelliereinheiten 1082 bzw. 1083 weit genug fortgeschritten ist. Das Vorhersageergebnis bezüglich der Anzahl zugehöriger Betragsbits wird, wie im Vorhergehenden erwähnt, mittels logischer Verknüpfung aus dem 4-Bit-Vektor für das Register 218 und der Signifikanzstatusvariablen gebildet.As already mentioned, the clock counter becomes 220 after each shift to the prediction preinitializes how many coefficients in a column are modulated or to be modeled. Since this prediction already executes one column before the column currently being modeled, the result is for the clock counter 22 already at Schiebevor yourself. If the result or the preinitialization is 0 or 1, the next shift operation of the shift register unit can be immediate with the next cycle 106 be triggered, what the clock counter 220 prompted accordingly. For larger preinitialized values, the clock counter delays 220 according to the output of the shift pulse 296 to the shift register unit 106 , As will be further mentioned below, the clock counter takes into account 220 further, whether the parallel processing by the bit-modeling units 108 2 respectively. 3 has progressed far enough. The prediction result regarding the number of associated magnitude bits, as mentioned above, is logically combined from the 4-bit vector for the register 218 and the significance status variable.

Obwohl im Vorhergehenden bereits angedeutet wird noch einmal hervorgehoben, wie die Aktualisierung der ersten Statusbits über den Demultiplexer 214 verläuft. Wie bereits erwähnt zeigen die ersten Statusbits 274 an, ob ein betreffender Transformationskoeffizient bereits signifikant ist oder nicht, bezogen auf die aktuelle Bitebene. Eine Aktualisierung kann also lediglich einen Übergang von nichtsignifikant auf signifikant bedeuten. Die Kopplung des Datenbits 232 über den Demultiplexer 214 mit der entsprechenden Registerzelle innerhalb des Bereiches 286 des Teils 1063 der Schieberegistereinheit 106 ist deshalb vorzugsweise derart ausgebildet, dass die Rückkopplung zu einer Aktualisierung des augenblicklichen Registerzellenzustands des dem Datenbit 232 entsprechenden ersten Statusbits mit einem Wert führt, der einer logischen ODER-Verknüpfung des augenblicklichen Zustands mit dem Datenbit 232 entspricht. Zudem sollten entsprechende Vorkehrungen getroffen werden, so dass das Datenbit 232 0 ist, wenn das Gültigkeitsbit 246 nicht gesetzt ist. Anders ausgedrückt ist der Demultiplexer 214 ausgangsseitig mit den Registerzellen innerhalb des Bereiches 286 gekoppelt und ausgebildet, um abhängig von dem Multiplexersignal von dem Koeffizientenwähler 222 den Datenbitausgang der Vorkodiereinheit 102 auf die vorbeschriebene ODER-Verknüpfungsweise mit der entsprechenden erstes-Statusbit-Registerzelle des durch das Multiplexersignal angezeigten Transformationskoeffizienten zu koppeln.Although previously indicated, it is emphasized once again how to update the first status bits via the demultiplexer 214 runs. As already mentioned, the first status bits show 274 whether a respective transformation coefficient is already significant or not, relative to the current bit-plane. An update can therefore only mean a transition from insignificant to significant. The coupling of the data bit 232 over the demultiplexer 214 with the corresponding register cell within the range 286 of the part 106 3 the shift register unit 106 Therefore, it is preferably designed so that the feedback to an update of the current register cell state of the data bit 232 corresponding first status bits with a value that a logical OR of the current state with the data bit 232 equivalent. In addition, appropriate precautions should be taken so that the data bit 232 0 is when the validity bit 246 not set. In other words, the demultiplexer 214 on the output side with the register cells within the range 286 coupled and adapted to be dependent on the multiplexer signal from the coefficient selector 222 the data bit output of the precode unit 102 in the above-described OR operation, to the corresponding first status bit register cell of the transform coefficient indicated by the multiplexer signal.

Nachdem im Vorhergehenden die Funktionsweise der für den ersten Kodierpass zugständigen Bitmodelliereinheit 1081 beschrieben worden ist, wird im Folgenden die Funktionsweise der für den zweiten Kodierpass zuständigen Bitmodelliereinheit 1082 beschrieben, wozu auf 5 Bezug genommen wird. Im Unterschied zu dem ersten Kodierdurchlauf bzw. Pass 1 ist der zweite Kodierdurchlauf bzw. Pass 2 für Betragsbits zuständig, die zu bereits signifikanten Transformationskoeffizienten gehören. Der zweite Kodierdurchlauf wird gemäß dem JPEG2000-Kodierschema auch Betragsverfeinerungsdurchlauf bzw. Magnitude Refinement Pass genannt, wobei derselbe für Betragsbits relevant ist, die zu Koeffizienten gehören, die bereits vor jeglichem Kodierdurchlauf der aktuellen Betragsbitebene bereits signifikant sind aber eben nicht erst durch den ersten Pass signifikant werden. Das bedeutet, dass die Entscheidung über die Zugehörigkeit eines Betragsbits zu dem zweiten Kodierdurchlauf auf der Grundlage der Statusbits in dem Teil 1063 der Schieberegistereinheit 106 getroffen werden sollte, der noch nicht durch die Rückkopplung über den Demultiplexer 214 innerhalb des Speichers 286 aktualisiert worden ist, d. h. den ersten Statusbits in Registerzellen rechts hiervon aus der Perspektive von 8. Umgekehrt werden aber Kontexte der zu dem zweiten Pass gehörigen Betragsbits, wie im Folgenden noch detaillierter beschrieben, auf der Grundlage der aktualisierten ersten Statusbits ermittelt, weshalb die Bitmodelliereinheit 1082 ebenso wie die im Anschluss daran beschriebene Bitmodelliereinheit 1083 die Modellierung bezüglich Betragsbits vornehmen, die von den aktuell modellierten Betragsbits der Bitmodelliereinheit 1081 in Einheiten der Schieberegisterränge ausreichend zeitlich zurückliegen. In dem vorliegend beschrieben exemplarischen Fall wird exemplarisch von einem festen Versatz von zwei Schiebeimpulsen ausgegangen, obwohl, wie es im Anschluss noch näher ausgeführt wird, auch eine variable Gestaltung dieses Versatzes unter Einhaltung eines Mindestabstandes, wie z. B. den zwei Schieberegisterrängen, vorgesehen sein kann.After above, the operation of the first coding pass associated with the bit-modeling unit 108 1 In the following, the mode of operation of the bit modeling unit responsible for the second coding pass will be described below 108 2 what's up to 5 Reference is made. In contrast to the first coding pass or pass 1, the second coding pass or pass 2 is responsible for magnitude bits which belong to already significant transformation coefficients. The second encoding pass is also called Magnitude Refinement Pass according to the JPEG2000 coding scheme, which is relevant to magnitude bits belonging to coefficients already significant before any coding pass of the current magnitude bit-plane, but not significant only by the first pass become. That is, the decision on the membership of a magnitude bit to the second coding pass is based on the status bits in the part 106 3 the shift register unit 106 should not be taken, yet not by the feedback on the demultiplexer 214 inside the store 286 has been updated, ie the first status bits in register cells to the right thereof from the perspective of 8th , Conversely, however, contexts of the magnitude bits associated with the second pass, as described in more detail below, are determined based on the updated first status bits, for which reason the bit modeling unit 108 2 as well as the bit modeling unit described below 3 make the modeling in terms of magnitude bits that are from the currently modeled magnitude bits of the bit modeling unit 108 1 are sufficiently in time in units of the shift register ranks. In the exemplary case described herein exemplary is assumed by a fixed offset of two shift pulses, although, as will be explained in more detail below, also a variable design of this offset while maintaining a minimum distance, such. B. the two shift registers, may be provided.

5 zeigt den Aufbau der Bitmodelliereinheit 1082 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Analog zur 4 ist sie wieder zusammen mit der Schiebere gistereinheit 106 und dem zugehörigen Zwischenspeicher 1102 gezeigt. Die Bitmodelliereinheit 1082 umfasst einen Anwendungsentscheider 300, einen Vorkodierer 302, eine Steuerbitsteuerung 304, ein 4-Bit-Register 306 und einen Sumrnenschwellwertentscheider 308. Der Anwendungsentscheider 300 ist mit dem Teil 1063 der Schieberegistereinheit 106 eingangsseitig gekoppelt und ausgangsseitig mit dem 4-Bit-Register 306. Sowohl ein Eingang des Vorkodierers 302 als auch ein Eingang des Summenschwellwertentscheiders 308 sind mit dem Register 306 gekoppelt. Eingangsseitig ist der Vorkodierer 302 zudem mit Teilen 1062 , 1063 und 1064 der Schieberegistereinheit 106 gekoppelt. Intern umfasst der Vorkodierer 302 vier zueinander entsprechend ausgeführte Betragsbitvorkodiereinheiten 3021 bis 3024 , eine für jedes Betragsbit des aktuellen Tupels, die auch in 5 schraffiert versinnbildlicht sind. Jede der Vorkodiereinheiten 3021 bis 3024 umfasst einen Ausgang 310 für ein Datenbit und einen 2-Bit-Ausgang 312 für einen Kontext-Index. Die Steuerbitsteuerung 304 umfasst einen Ausgang 314 für ein Pass-Ende-Bit und einen Ausgang 316 für ein Bypass-Modus-Bit, wobei die Ausgänge 310 bis 316 zusammen einen 14-Bit-Ausgang für ein 14-Bit-Wort 318 definieren, der mit einem Eingang des Zwischenspeichers 1102 gekoppelt ist. Auch ein Ausgang des Summenschwellwertentscheiders 308 ist mit einem weiteren Eingang des Zwischenspeichers 1102 gekoppelt, um ein Gültigkeitsbit 320 an den Zwischenspeicher 1102 auszugeben. 5 shows the structure of the bit modeling unit 108 2 according to an embodiment of the present invention. Analogous to 4 she is back together with the sliding gistereinheit 106 and the associated cache 110 2 shown. The bit modeling unit 108 2 includes an application decision maker 300 , a precoder 302 , a control bit control 304 , a 4-bit register 306 and a sum threshold decision maker 308 , The application decision maker 300 is with the part 106 3 the shift register unit 106 coupled on the input side and output side with the 4-bit register 306 , Both an input of the precoder 302 as well as an input of the sum threshold decision maker 308 are with the register 306 coupled. On the input side is the precoder 302 also with parts 106 2 . 106 3 and 106 4 the shift register unit 106 coupled. Internally, the precoder includes 302 four mutually corresponding magnitude bit pre-encoding units 302 1 to 302 4 , one for each amount bit of the current tuple, which is also in 5 hatched are symbolized. Each of the precoding units 302 1 to 302 4 includes an exit 310 for a data bit and a 2-bit output 312 for a context index. The control bit control 304 includes an exit 314 for a pass end bit and an output 316 for a bypass mode bit, with the outputs 310 to 316 together a 14-bit output for a 14-bit word 318 define that with an input of the cache 110 2 is coupled. Also an output of the Sumschwellwertentscheiders 308 is with another input of the cache 110 2 coupled to a valid bit 320 to the cache 110 2 issue.

Nachdem im Vorhergehenden der Aufbau der Bitmodelliereinheit 1082 beschrieben worden ist, wird im Folgenden ihre Funktionsweise beschrieben. Der Anwendungsentscheider 300 ist ausgebildet, um auf Basis seiner Eingangsinformationen in dem Register 306 pro aktuell zu modellierendem Betragsbit ein Informationsbit iae, jae, kae und lae zu bilden, die anzeigen, ob das jeweilige Betragsbit zu dem Pass 2 gehört oder nicht, um dasselbe um eine geeignete Anzahl von Schiebeimpulsen der Schieberegistereinheit verzögert in das Register 306 zu schreiben. Die Verzögerung rührt daher, dass eingangsseitig der Vorkodierer 102 mit Registerzellen des Betragsbitteils 1062 der Schieberegistereinheit 106 gekoppelt ist, die gegenüber den Registerpositionen der Betragsbits, zu denen der Anwendungsentscheider 300 aktuell die ersten Steuerbits auswertet, hier exemplarisch um drei Schieberänge nachgeordnet ist, wobei erstere Registerpositionen innerhalb des Teils 1062 mit einer Strich-Punkt-Linie 322 markiert sind. Insbesondere ist nun eingangsseitig die Vorkodiereinheit 3021 mit der Registerzelle 2521,2 und innerhalb des Registers 306 mit dem Eintrag iae gekoppelt, die Vorkodiereinheit 3022 mit der Registerzelle 2521,3 und dem Bit jae des Registers 306 usw. Jede der Vorkodiereinheiten 3021 bis 3024 ist somit für einen unterschiedlichen der Betragsbits in der aktuell zu modellierenden 4-er-Spalte 322 zuständig.After the construction of the bit modeling unit 108 2 has been described, their operation will be described below. The application decision maker 300 is designed to be based on its input information in the register 306 for each amount bit to be currently modeled, form an information bit i ae , j ae , k ae, and l ae indicating whether or not the respective magnitude bit belongs to the pass 2, and the same by a suitable number of shift pulses of the shift register unit delayed in the register 306 to write. The delay is due to the fact that the input side of the precoder 102 with register cells of the magnitude bit part 106 2 the shift register unit 106 which is opposite to the register positions of the magnitude bits to which the application decision maker 300 currently evaluates the first control bits, here by example by three slide length downstream, the former register positions within the part 106 2 with a dash-dot line 322 are marked. In particular, the input side is now the precoding unit 302 1 with the register cell 252 1.2 and within the register 306 coupled to the entry i ae , the precoding unit 302 2 with the register cell 252 1.3 and the bit j ae of the register 306 etc. Each of the precoding units 302 1 to 302 4 is thus for a different one of the magnitude bits in the 4-er column currently to be modeled 322 responsible.

Jede Vorkodiereinheit 3021 bis 3024 stellt ihr Datenbit gemäß Ihrem Betragsbit aus den Zellen 322 ein. Den Kontextindex bestimmen sie abhängig von den aktualisierten Signifikanzen der Nachbarkoeffizienten, wozu der Vorkodierer 302 mit den Registerzellen des Teils 1063 der Schieberegistereinheit 106 gekoppelt ist, der in 8 mit einer Strich-Punkt-Linie 324 gekennzeichnet ist. Insbesondere ist beispielsweise die Vorkodiereinheit 3021 mit den Registerzellen 2741,1 bis 2743,1 , 2741,3 bis 2743,3 , 2741,2 und 2743,2 gekoppelt, die somit Koeffizienten betreffen, die dasjenige des Betragsbits 2521,2 umgeben. Insbesondere legt jede Kodiereinheit 3021 bis 3024 ihren Kontextindex 312 durch Bildung aus einer logischen Verknüpfung der ersten Steuerbits 274 dieser Nachbarkoeffizienten fest. Sollte dabei allerdings der zugehörige Eintrag in dem Register 306 der jeweiligen Vorkodiereinheit 3021 bis 3024 anzeigen, dass ihr jeweiliges Betragsbit gar nicht dem Pass 2 angehört, so setzt sie die Kontextindexbits 312 auf eine Bitkombination, die keinem sinnvollen Kontextindex entspricht und somit aus sich allein heraus erkennen lässt, dass das entsprechend zugehörige Datenbit 310 ungültig ist.Each precoding unit 302 1 to 302 4 puts its data bit out of cells according to its amount bit 322 one. They determine the context index depending on the updated significances of the neighboring coefficients, for which the precoder 302 with the register cells of the part 106 3 the shift register unit 106 is coupled in 8th with a dash-dot line 324 is marked. In particular, for example, the Vorkodiereinheit 302 1 with the register cells 274 1.1 to 274 3.1 . 274 1.3 to 274 3.3 . 274 1.2 and 274 3.2 coupled, which thus affect coefficients that that of the magnitude bits 252 1.2 surround. In particular, each coding unit sets 302 1 to 302 4 their context index 312 by forming a logical combination of the first control bits 274 of these neighboring coefficients. Should, however, the associated entry in the register 306 the respective precoding unit 302 1 to 302 4 indicate that their respective amount bit does not belong to pass 2, it sets the context index bits 312 to a bit combination that does not correspond to a meaningful context index and thus can be seen by itself that the corresponding data bit 310 is invalid.

Zusätzlich ist der Vorkodierer 302 mit den Registerzellen 280 aus dem Teil 1064 der Schieberegistereinheit gekoppelt, insbesondere jede Vorkodiereinheit 3021 bis 3024 mit der entsprechenden Registerzelle für das dem jeweiligen Betragsbit zugeordnete zweite Statusbit. Dabei sind die Vorkodiereinheiten 3021 bis 3024 so ausgelegt, dass die Kontextindizes 312, die sie ausgeben, nicht nur von der soeben beschriebenen logischen Verknüpfung, sondern ferner auch von dem jeweiligen zweiten Statusbit abhängen, d. h. also davon, ob der betreffende Transformationskoeffizient bereits ein Betragsbit in den vorhergehenden signifikanteren Betragsbitebenen besaß, dass den zweiten Kodierdurchlauf bzw. Pass 2 durchlief oder nicht. Die Kopplung des Vorkodierers 302 mit den Registerzellen des Teils 1064 ist in 8 mit der Strich-Punkt-Linie 326 angedeutet.In addition, the precoder is 302 with the register cells 280 from the part 106 4 the shift register unit coupled, in particular each Vorkodiereinheit 302 1 to 302 4 with the corresponding register cell for the second status bit assigned to the respective magnitude bit. Here are the Vorkodiereinheiten 302 1 to 302 4 designed so that the context indexes 312 which they output depend not only on the logic operation just described, but also on the respective second status bit, ie on whether the transformation coefficient concerned already had an amount bit in the previous more significant amount bit planes, that the second coding pass 2 went through or not. The coupling of the precoder 302 with the register cells of the part 106 4 is in 8th with the dash-dot line 326 indicated.

Die Steuerbitsteuerung 304 stellt das Bypass-Modus-Bit 316 beispielsweise gleichartig ein wie im Vorhergehenden Bezug nehmend auf die Steuerung 224 beschrieben. Gleiches gilt für das Pass-Ende-Bit 314. Auch die Steuerbitsteuerung 304 setzt folglich die Steuerbits 314 und 316, um der nachfolgenden arithmetischen Kodiereinrichtung Informationen zu liefern, die anzeigen, ob der sogenannte Bypass-Modus aktiv sein soll, oder ob der aktuelle Coding-Pass zu Ende ist.The control bit control 304 sets the bypass mode bit 316 for example, similar to the above with reference to the controller 224 described. The same applies to the pass-end bit 314 , Also the control bit control 304 thus sets the control bits 314 and 316 to provide the subsequent arithmetic encoder information indicating whether the so-called bypass mode should be active or whether the current coding pass is over.

Wie bereits erwähnt, bilden die Bits 310316 das Datenwort 318. Der Zwischenspeicher 3102 ist nun beispielsweise ausgebildet, um das 14-Bit-Wort 318 nur dann in den Zwischenspeicher aufzunehmen, wenn das Gültigkeitsbit 320 gesetzt ist, es sei denn, das Pass-Ende-Bit 314 ist gesetzt, in welchem Fall das Datenwort 318 auf jeden Fall in den Zwischenspeicher 3102 eingespeichert wird. Die Zusammenfassung von Gültigkeitsbit und 14-Bit-Wort 318 zu einem größeren Datenwort mit Einspeicherung auf jeden Fall ist natürlich alternativ ebenfalls möglich, wie es bereits Bezug nehmend auf 4 beschrieben worden war.As already mentioned, the bits form 310 - 316 the data word 318 , The cache 310 2 is now trained, for example, the 14-bit word 318 to include in the cache only if the valid bit 320 is set unless the pass-end bit 314 is set, in which case the data word 318 definitely in the cache 310 2 is stored. The summary of valid bit and 14-bit word 318 to a larger data word with storage in any case is of course also possible, as already referring to 4 had been described.

Der Summenschwellwertentscheider 308 summiert die Bits in dem Register 306 und überprüft, ob die Summe größer oder gleich 1 ist, um das Gültigkeitsbit 320 entsprechend dem Überprüfungsergebnis einzustellen, und um auf diese Weise das Gültigkeitsbit zu setzen, wenn zumindest einer der aktuell zu modifizierenden Betragsbits in dem aktuellen Tupel dem Pass 2 angehört.The sum threshold decision maker 308 sums the bits in the register 306 and checks if the sum is greater than or equal to 1 to the valid bit 320 in accordance with the result of the check, and thereby set the validity bit if at least one of the currently modifiable magnitude bits in the current tuple belongs to the pass2.

Die Bitmodelliereinheit 1082 ist folglich in der Lage, die dem Pass 2 zugehörigen Betragsbits innerhalb eines aktuellen Tupels 322 in einem Verarbeitungszyklus in ein Datenwort 318 vorzukodieren. Wie viele der Paare von Datenbit und Kontextindex in dem 14-Bit-Datenwort 318 tatsächlich gültig sind bzw. in den zu kodierenden Datenstrom am Ausgang des arithmetischen Kodierers 124 (3) einzubringen sind, geht aus diesen Paaren selbst hervor, indem dieselben in dem negativen Fall eine spezielle Bitkombination aufweisen, die keine gültige Kombination aus Datenbit und Kontextindex bzw. kein gültiger Kontext ist. Insofern benötigt die Bitmodelliereinheit 1082 auch keine Schiebeimpulsausgabefähigkeit, da sie mindestens so schnell ist wie die beschriebene Bitmodelliereinheit 1081 , die ja zumindest einen Verarbeitungszyklus pro zum Pass 1 gehörigem Betragsbit benötigt.The bit modeling unit 108 2 is thus able, the amount bits associated with the pass 2 within a current tuple 322 in a processing cycle into a data word 318 precode. How many of the pairs of data bits and context index in the 14-bit data word 318 are actually valid or in the data stream to be coded at the output of the arithmetic coder 124 ( 3 ) are inherent in these pairs themselves, having in the negative case a special bit combination which is not a valid combination of data bit and context index or valid context. In this respect, the bit modeling unit needs 108 2 also no shift pulse output capability, since it is at least as fast as the described bit modeling unit 108 1 , which requires at least one processing cycle per amount bit associated with pass 1.

Im Folgenden wird Aufbau und Funktionsweise der Bitmodelliereinheit 1083 für den dritten Kodierpass beschrieben. Dabei wird Bezug auf 6 genommen. Der Aufbau ist im Hinblick auf die Blöcke und deren Kopplung untereinander ähnlich zu dem Fall der Bitmodelliereinheit 1081 von 4. Zur Vermeidung unnötiger Wiederholungen sind deshalb in 6 Elemente, die grundsätzlich gleiche Aufgaben übernehmen wie Elemente aus 4 mit Bezugszeichen versehen, die sich von denjenigen aus 4 lediglich um die erste Ziffer bzw. die Hunderterstelle unterscheiden, und zwar so, dass sie eine Vier anstelle einer Zwei aufweisen. Insbesondere sind alle Elemente aus 4 auch in 6 dargestellt, mit dem Unterschied, dass es sich bei dem in 6 gezeigten Zwischenspeicher natürlich um den Zwischenspeicher 1103 handelt, mit dem Unterschied, dass die Steuerbitkontrolle neben dem Pass-Ende-Bit 442 ein Block-Ende-Bit 440 ausgibt und kein Bypass-Ende-Bit, und mit dem Unterschied, dass die Vorzeichenbitvorkodiereinheit 408 keine Kopplung mit der Steuerbitkontrolle 424 aufweist. Unterschiede in Funktionalität und genauer Verschaltung mit der Schieberegistereinheit 106 der einander entsprechenden Elemente in 4 und 6 gehen aus der nachfolgenden Beschreibung hervor, so dass Funktionalitätsbeschreibungen, die im Folgenden erläutert werden, entsprechende Funktionalitätsbeschreibungen bezüglich der entsprechenden Elemente Bezug nehmend auf 4 insofern ersetzen sollen. Im Übrigen wird bezüglich Funktionalität und Verschaltung auf die Beschreibung von 4 verwiesen.The following describes the structure and mode of operation of the bit modeling unit 3 for the third coding pass. This refers to 6 taken. The structure is similar to the case of the bit modeling unit in terms of the blocks and their coupling to each other 108 1 from 4 , To avoid unnecessary repetitions are therefore in 6 Elements that basically perform the same tasks as elements 4 provided with reference numerals, which are different from those of 4 differ only by the first digit or the hundredth place, in such a way that they have a four instead of a two. In particular, all elements are off 4 also in 6 shown, with the difference that it is in the in 6 Of course, the cache shown around the cache 110 3 with the difference being that the control bit control is next to the pass end bit 442 a block end bit 440 outputs and no bypass end bit, and with the difference that the sign bit precoding unit 408 no coupling with the control bit control 424 having. Differences in functionality and more precise connection with the shift register unit 106 the corresponding elements in 4 and 6 will be apparent from the following description, so that functionality descriptions, which will be explained below, corresponding function descriptions with respect to the corresponding elements with reference to 4 in this respect should replace. Incidentally, regarding functionality and interconnection, the description of 4 directed.

Zusätzlich zu den vorerwähnten Elementen umfasst die Bitmodelliereinheit 1083 eine Lauflängenkodiereinheit 500, die einen Eingang aufweist, der mit dem Register 418 gekoppelt ist, sowie einen Eingang, der mit einem weiteren Ausgang der Analyse/Vorhersageeinheit 400 gekoppelt ist. Ein Ausgang der Lauflängenkodiereinheit 500 ist dazu vorgesehen, ein Lauflängensymbol 502 mit drei Bits auszugeben, um zusammen mit den anderen Ausgabebits 430436 und 440, 442 das in den Zwischenspeicher 1103 eingehende Datenwort 444 zu bilden, das somit ein 15-Bit-Datenwort 444 ist.In addition to the aforementioned elements, the bit modeling unit includes 3 a run length encoding unit 500 having an input connected to the register 418 coupled to an input connected to another output of the analysis / prediction unit 400 is coupled. An output of the run length encoding unit 500 is intended to be a run length symbol 502 with three bits to output together with the other output bits 430 - 436 and 440 . 442 that in the cache 110 3 incoming data word 444 thus forming a 15-bit data word 444 is.

Der dritte Kodierdurchlauf, für den die Bitmodelliereinheit 1083 zuständig ist, kommt zum Tragen, wenn der zu modellierende Koeffizient für die aktuelle Bitebene noch insignifikant ist, und nicht von dem ersten Durchlauf erfasst wurde. Er wird somit auch als „clean-up pass” bezeichnet. Die Funktionsweise des dritten Kodierdurchlaufes ähnelt hinsichtlich der Kontextbildung und Vorkodierung dem ersten Durchlauf, ist aber um eine sogenannte Lauflängen- bzw. RL-(RL = one length = Lauflänge) Primitive erweitert. Anders ausgedrückt ist der dritte Kodierdurchlauf für die restlichen Betragsbits zuständig, die weder dem ersten noch dem zweiten Kodierdurchlauf angehören, wobei die Kodierung der Pass-3-Betragsbits in der aktuellen 4-er-Spalte wie in dem Fall von Pass 1 erfolgt, mit der Ausnahme, dass in dem Fall, dass alle Betragsbits in der aktuellen 4-er-Spalte einem noch nicht signifikanten Transformationskoeffizienten zugeordnet sind und lediglich insignifikante Nachbarkoeffizienten aufweisen, in welchem Fall der Lauflängenmodus einsetzt, der von oben bis unten den Lauf von insignifikant bleibenden Betragsbits in dem aktuellen Tupel angibt und somit lediglich unterbrochen wird, falls einer der Betragsbits der aktuellen 4-er-Spalte in der aktuellen Bitebene signifikant wird bzw. einen Betragsbitwert von 1 aufweist, von wo an die darauf folgenden Betragsbits in dieser 4-er-Spalte wie in dem Fall von Pass 1 weiterkodiert werden und das Vorzeichen des die RL-Primitive unterbrechenden Koeffizienten kodiert wird.The third coding pass for which the bit modeling unit 3 is responsible, comes into play when the coefficient to be modeled for the current bit-plane is still insignificant, and was not covered by the first pass. He is therefore also referred to as a "clean-up pass". The operation of the third coding pass is similar in terms of context formation and precoding to the first pass, but is extended by a so-called run length or RL (RL = one length) primitive. In other words, the third coding pass is responsible for the remaining magnitude bits which belong to neither the first nor the second coding pass, the coding of the pass-3 magnitude bits in the current 4-er column being the same as in the case of pass 1, with Exception that in the case that all magnitude bits in the current 4-er column are assigned a not yet significant transformation coefficient and have only insignificant neighboring coefficients, in which case the run-length mode sets in, from top to bottom the run of insignificant magnitude bits in indicates the current tuple and is thus only interrupted if any of the magnitude bits of the current 4-er column in the current bit-plane becomes significant or has an magnitude-bit-value of 1, from where to the subsequent magnitude bits in that 4-er column in the case of pass 1 and the sign of the RL primitive interrupting coefficients is encoded.

Nach diesem kurzen Überblick über den Pass 3 wird wieder in Zusammenschau der 6 und 8 die Funktionsweise der Einheit 1083 erläutert. Da der Pass 3 definitionsgemäß der letzte unter den sequentiellen Passes bzw. Durchläufen ist, beziehen sich die Signifikanzüberprüfungen jeweils auf die bereits durch die Bitmodelliereinheit 1081 aktualisierten ersten Statusbits, d. h. die ersten Statusbits links des Bereiches 286 in 8. Die Überprüfung der Nachbarkoeffizientensignifikanzen in Betracht ziehend, sollte der Bereich der aktuellen 4-er-Spalte zumindest zwei Schieberegisterränge hinter dem aktuellen Bereich 282 der Bitmodelliereinheit 1081 liegen. Gemäß dem Ausführungsbeispiel von 6 liegt der aktuelle Bereich genau zwei Schieberegisterringe hinter diesem Bereich. Allerdings kann es, wie im Vorhergehenden Bezug nehmend auf den Pass 2 erläutert, auch vorgesehen sein, dass der Aufbau der Schieberegistereinheit gegenüber 8 modifiziert wird, um auch einen variablen Versatz zu ermöglichen, so dass die Verarbeitungsgeschwindigkeit der beiden Einheiten 1081 und 1083 entkoppelt ist.After this brief overview of the Pass 3 is again in synopsis of 6 and 8th the functioning of the unit 3 explained. Since pass 3 is by definition the last among the sequential passes, the significance checks each already refer to those already performed by the bit modeling unit 108 1 updated first status bits, ie the first status bits left of the range 286 in 8th , Taking into account the adjacency coefficient significance checks, the range of the current 4-column should be at least two shift register ranks beyond the current range 282 the bit modeling unit 108 1 lie. According to the embodiment of 6 The current range is exactly two shift register rings behind this range. However, as explained above with reference to the passport 2, it may also be provided that the structure of the shift register unit faces 8th is also modified to allow a variable offset, so that the processing speed of the two units 108 1 and 3 is decoupled.

Im Folgenden soll Bezug auf die 6 und 8 in Zusammenschau genommen werden, um die Funktionsweise der Bitmodelliereinheit 1083 zu veranschaulichen. Die Analyse/Vorhersageeinheit 400 überprüft wieder vorab das 4-er-Tuple von Betragsbits 2522,2 bis 2522,5 , das als nächstes zur Modellierung in der Einheit 1083 vorgesehen ist, welche derselben dem Pass 3 angehören, d. h. welche nicht dem Pass 1 oder dem Pass 2 angehören, und ist dazu über die Kopplung 428 mit Registerzellen des Teils 1063 der Schieberegistereinheit 106 gekoppelt, wobei diese Schieberegisterzellen in 8 mit der Strich-3-Punkt-Linie 504 umrahmt sind. Unter diesen ersten Statusbits in dem Bereich 504 bedürfen die Statusbits innerhalb des Bereiches 286 einer Aktualisierung bzw. einer Berücksichtigung, dass dieselben gegebenenfalls während des ersten Durchlaufs signifikant werden, wozu die Analyse/Vorhersageeinheit auch das vorherige, bezüglich des vorherigen Schiebezyklus erhaltene Vorhersageergebnis der Analyse/Vorhersageeinheit 200 der Bitmodelliereinheit 1081 verwendet sowie die Betragsbits in dem zugehörigen Bereich 292, wozu die Analyse/Vorhersageeinheit 400 über die Kopplung 446 ebenfalls mit den Registerzellen in dem Bereich 292 gekoppelt ist. Zudem verwendet die Analyse/Vorhersageeinheit 400 analog zu dem Fall von 4 ihr letztes Vorhersageergebnis für die Vorhersage, welches sich für die aktuelle Vorhersage natürlich auf die Betragsbits in dem aktuell zu modellierenden Bereich bezieht, um nämlich die Aktualisierungen der Signifikanzen in den Positionen 2742,2 bis 2742,5 aufgrund des eigenen Kodierdurchlaufes, d. h. des Kodierdurchlaufes 3, zu berücksichtigen, der erst im laufenden Schiebezyklus erfolgt, wozu die Analyse/Vorhersageeinheit 400 ebenfalls mit weiteren Betragsbitregisterzellen innerhalb des Bereiches 1062 der Schieberegister 106 gekoppelt ist, nämlich denen der aktuellen 4-er-Spalte innerhalb des mit der Strich-3-Punkt-Linie 506 gekennzeichneten Bereiches. Das Vorhersageergebnis gibt die Analyse/Vorhersageeinheit 400 wie in dem Fall von 4 in das Register 418 für den nächsten Schiebezyklus aus.The following is intended to refer to the 6 and 8th be taken in synopsis to the operation of the bit modeling unit 3 to illustrate. The analysis / prediction unit 400 again checks in advance the 4-tuple of magnitude bits 252 2.2 to 252 2.5 next to the Mo formation in the unit 3 is provided, which belong to the passport 3, ie which do not belong to the passport 1 or the passport 2, and is about the coupling 428 with register cells of the part 106 3 the shift register unit 106 coupled, these shift register cells in 8th with the dash 3-point line 504 are framed. Among these first status bits in the range 504 require the status bits within the range 286 an updating or taking into account that they may become significant during the first pass, for which the analysis / prediction unit also includes the previous prediction result of the analysis / prediction unit obtained with respect to the previous shift cycle 200 the bit modeling unit 108 1 used and the magnitude bits in the associated area 292 including the analysis / prediction unit 400 over the coupling 446 also with the register cells in the area 292 is coupled. In addition, the analysis / prediction unit uses 400 analogous to the case of 4 its last prediction result for the prediction, which for the current prediction naturally relates to the magnitude bits in the area currently to be modeled, namely the updates of the significances in the positions 274 2.2 to 274 2.5 due to its own coding pass, ie the coding pass 3, which takes place only in the current shift cycle, including the analysis / prediction unit 400 also with further magnitude bit register cells within the range 106 2 the shift register 106 is coupled, namely those of the current 4-er column within the dashed 3-point line 506 marked area. The prediction result gives the analysis / prediction unit 400 as in the case of 4 in the register 418 for the next shift cycle.

Die Lauflängenkodiereinheit 500 wertet bei Beginn des Schiebezyklus, bei dem also die bezüglich ihrer Pass 3-Zugehörigkeit vorhergesagten Betragsbits in dem Teil 1062 der Schieberegistereinheit 106 vorgeschoben worden sind, um das aktuelle Betragsbittupel darzustellen, zusammen mit den aktuellen Betragsbits, auf die sich die Vorhersage in dem Register 418 bezieht und die sie gemäß dem Beispiel von 6 von der Analyse/Vorhersageeinheit 400 weitergeleitet bekommt, den 4-Bit-Vektor in dem Register 418 aus, um erstens festzustellen, ob die Lauflängenprimitive Anwendung finden soll, d. h. alle Betragsbits des aktuellen 4-er-Tupels dem dritten Kodierdurchlauf zugeordnet sind, und, falls dies der Fall ist, ob sie aufgrund eines signifikant werdenden Betragsbits unter denselben an irgendeiner Stelle unterbrochen wird, um abhängig von dieser Auswertung das Lauflängensymbol 502 einzustellen. Ab dem signifikant werdenden Betragsbit, d. h. alle Betragsbits nach dem signifikant werdenden bis unten, inklusive des signifikant werdenden, da für diesen ja noch das Vorzeichen in den kodierten Datenstrom zu kodieren ist, werden von dem Koeffizientenwähler 422 in ein entsprechendes Multiplexersignal umgewandelt, so dass die Kodiereinheiten 402 und 408 auf die oben beschriebene Weise für diese Betragsbits entsprechende Paare von Datenbit und Kontextbit 430436 erzeugen. Wie bereits im Vorhergehenden erwähnt, benötigen die Vorkodiereinheiten 402 und 408 hierzu einen Verarbeitungszyklus pro Betragsbit. Es wird deshalb lediglich nur ein Datenwort 444 für eine 4-er-Spalte durch die Bitmodelliereinheit 1083 in dem Lauflängenkodierfall nur dann erzeugt, solange sich nicht mehr als ein signifikant werdender Betragsbit unter den vier aktuellen Betragsbits befindet. Anderenfalls werden mehrere 15-Bit-Datenworte 444 erzeugt, wobei nur in dem ersten Datenwort 444 das Lauflängensymbol 502 anzeigt, dass die Lauflängenprimitive zur Anwendung kam, und ansonsten anzeigt, dass es unbeachtlich ist.The run-length coding unit 500 evaluates at the beginning of the shift cycle, in which therefore the predicted with respect to their Pass 3 membership amount bits in the part 106 2 the shift register unit 106 have been advanced to represent the current magnitude bit, along with the current magnitude bits to which the prediction in the register 418 and according to the example of 6 from the analysis / prediction unit 400 gets the 4-bit vector in the register 418 to first determine whether the run-length primitive is to be used, ie, all of the magnitude bits of the current 4-time tuple are assigned to the third encoding pass and, if so, whether to break them at any point due to a significant magnitude bit below them is dependent on this evaluation, the run length symbol 502 adjust. From the significant amount bit, ie all amount bits after the becoming significant to below, including the significant, since this is still the sign in the coded data stream to be coded are from the coefficient selector 422 converted into a corresponding multiplexer signal, so that the coding units 402 and 408 in the manner described above for these magnitude bits corresponding pairs of data bits and context bits 430 - 436 produce. As already mentioned above, the precoding units require 402 and 408 this one processing cycle per amount bit. It is therefore only a single word 444 for a 4-column by the bit modeling unit 3 in the run-length coding case is only generated as long as there is no more than one significant amount bit among the four current magnitude bits. Otherwise, multiple 15-bit data words 444 generated, only in the first data word 444 the run length symbol 502 indicates that the run-length primitive was used, and otherwise indicates that it is irrelevant.

Obwohl der Pass 3 der letzte Durchlauf ist, wird das Betragsdatenbit 432 am Ausgang der Vorkodiereinheit 402 über den Demultiplexer 414 in den Teil 1063 der Schieberegistereinheit 106 rückgekoppelt, und zwar abhängig von dem Multiplexersignal von dem Koeffizientenwähler 422 in die entsprechende Registerzelle innerhalb der 4-er-Spalte von Registerzellen 2742,2 bis 2742,5 . der Grund dafür besteht darin, dass beim nächsten Schiebevorgang, bei dem diese 4-er-Spalte in 8 um eine Position nach links verschoben wird, bezüglich der Signifikanzen aktualisiert sein soll. Ausgangsseitig ist der Demultiplexer 414 mit den Registerzellen 2742,2 bis 2742,5 gekoppelt. Eingangsseitig ist der Multiplexer 404 mit den Registerzellen innerhalb des Bereiches 506 gekoppelt. Der Multiplexer 406 ist eingangsseitig mit den Registerzellen innerhalb des Bereiches 508 gekoppelt, der die ersten Statusbits für einen Bereich beinhaltet, den die aktuelle 4-er-Spalte von Betragsbits 506 inklusive Nachbarkoeffizienten umgibt. Der Multiplexer 410 ist mit dem entsprechenden Bereich von Registerzellen innerhalb des Bereiches 1061 der Schieberegistereinheit 106 gekoppelt, der in 8 mit 510 hervorgehoben ist. Der Multiplexer 412 ist eingangsseitig mit Registerzellen innerhalb des Bereiches 508 gekoppelt, und zwar beispielsweise den Registerzellen 2741,2 bis 2741,5 und 2742,1 bis 2742,4 .Although pass 3 is the last pass, the amount data bit becomes 432 at the exit of the precoding unit 402 over the demultiplexer 414 in the part 106 3 the shift register unit 106 fed back, depending on the multiplexer signal from the coefficient selector 422 into the corresponding register cell within the 4-column of register cells 274 2.2 to 274 2.5 , the reason for this is that at the next shift, this 4's column in 8th is shifted one position to the left, with respect to which significances should be updated. On the output side is the demultiplexer 414 with the register cells 274 2.2 to 274 2.5 coupled. The input side is the multiplexer 404 with the register cells within the range 506 coupled. The multiplexer 406 is input side with the register cells within the range 508 which includes the first status bits for an area that the current 4's column of magnitude bits 506 including adjacent coefficients. The multiplexer 410 is with the corresponding range of register cells within the range 106 1 the shift register unit 106 coupled in 8th With 510 is highlighted. The multiplexer 412 is input side with register cells within the range 508 coupled, for example, the register cells 274 1.2 to 274 1.5 and 274 2.1 to 274 2.4 ,

Auf die vorgeschriebene Weise sorgt folglich die Bitmodelliereinheit 1083 dafür, dass eine Analyse der zu modellierenden Koeffizienten stattfindet, ob sie noch insignifikant sind, sowie eine Analyse der direkten Nachbar-Koeffizienten, ob sie schon signifikant sind, und zwar derart, dass die Analyse bereits eine Spalte vor der aktuell zu modellierenden Spalte stattfindet. Das Analyseergebnis wird wieder als 4-Bit-Vektor ausgegeben, und zwar in das Register 418, auf der Basis welchen Vektors die Entscheidung getroffen wird, ob die RL-Primitive auf die vier aktuellen Koeffizienten angewendet wird. Wenn die Bedingung erfüllt ist, was von der Lauflängenkodiereinheit 500 geprüft wird, wird natürlich über den Multiplexer 516 auch das Gültigkeitsbit gesetzt, da jedes Bit in dem Register 418 gesetzt ist, und die Kodiereinheit 500 führt das Lauflängen kodierschema aus, was die Festlegung des Symbols 502 beinhaltet, das repräsentiert, ob die RL-Primitive zur Anwendung kam und gegebenenfalls an welcher Position ein Koeffizient signifikant wird. Wenn mindestens ein Koeffizient in dem aktuellen Tupel signifikant wird, wird zudem durch die Vorkodiereinheit 408 für das den Lauf unterbrechende Betragsbit das zugehörige Vorzeichen kodiert (die Bits 432 und 436 sind in diesem Verarbeitungszyklus unbeachtlich). Für die auf das die RL-Primitive unterbrechende Betragsbit folgenden Bitpositionen wird durch die Vorkodiereinheit 402 das bereits im Vorhergehenden beschriebene SP-Kodierschema für jeden folgenden Koeffizienten in der aktuellen Spalte ausgeführt, was die Festlegung eines Datenbits und eines passenden Kontextindex beinhaltet, welches mittels logischer Verknüpfungen der Signifikanzen der Nachbar-Koeffizienten gebildet wird. Zusätzlich wird für diese nachfolgenden Bitpositionen, wenn das Datenbit des SP-Kodierschemas bzw. das entsprechende Betragsbit an der jeweiligen Bitposition gesetzt ist, was über die Verbindung 494 überprüfbar ist, durch die Vorkodiereinheit 408 die Ausführung des SC-Schemas ausgeführt, was die Festlegung eines Datenbits und eines passenden Kontext-Index, welches mittels logischer Verknüpfungen der Signifikanzen und Vorzeichen der Nachbar-Koeffizienten gebildet wird, beinhaltet. Die Steuerbits 440 und 442 werden von der Steuerbitsteuerung 424 gesetzt, die der nachfolgenden arithmetischen Kodiereinrichtung mitteilen, ob der aktuelle Kodierdurchlauf bzw. der aktuelle Codeblock zu Ende sind. Letzteres trifft bei dem Beispiel von 2 beispielsweise bei dem Tupel un, vn, wn, xn zu. Datenbits und Kontext-Indizes der SP- und SC-Schemata sowie dem Symbol 502 und der Steuerbits 440 und 424 werden zu dem 15-Bit-Datenwort 444 zusammengefasst, das in dem Zwischenspeicher 1103 bei gesetztem Gültigkeitsbit und auf jeden Fall dann, wenn das Pass-Ende-Bit 442 gesetzt ist, eingespeichert wird.Consequently, the bit modeling unit provides the prescribed manner 3 for an analysis of the coefficients to be modeled, whether they are still insignificant, and an analysis of the direct neighboring coefficients, whether they are already significant, and in such a way that the analysis already takes place one column in front of the column currently to be modeled. The analysis result is again output as a 4-bit vector, in the register 418 on the basis of which vector the decision is made whether the RL primitive is applied to the four current coefficients. If the condition is met, what of the runlength coding unit 500 is checked, of course, via the multiplexer 516 also set the valid bit since every bit in the register 418 is set, and the coding unit 500 executes the run-length encoding scheme, which defines the icon 502 which represents whether the RL primitive was used and, where appropriate, at which position a coefficient becomes significant. If at least one coefficient in the current tuple becomes significant, it will also become significant by the precoding unit 408 for which the run interrupting magnitude bit encodes the associated sign (the bits 432 and 436 are irrelevant in this processing cycle). The bit positions following the magnitude bit interrupting the RL primitive are processed by the precode unit 402 executing the SP encoding scheme already described above for each successive coefficient in the current column, which involves establishing a data bit and matching context index formed by logically linking the significances of the neighbor coefficients. In addition, for these subsequent bit positions, when the data bit of the SP encoding scheme or the corresponding magnitude bit is set at the respective bit position, what happens over the connection 494 is verifiable by the precoding unit 408 execution of the SC scheme is carried out, which involves establishing a data bit and a matching context index formed by logically linking the significances and signs of the neighbor coefficients. The control bits 440 and 442 be from the control bit control 424 are set, which tell the subsequent arithmetic encoder whether the current coding pass or the current code block are over. The latter applies in the example of 2 for example, with the tuple u n , v n , w n , x n . Data bits and context indices of the SP and SC schemas and the symbol 502 and the control bits 440 and 424 become the 15-bit data word 444 summarized in the cache 110 3 if valid bit is set and in any case if the pass-end bit 442 is set, is stored.

Natürlich wird von der Analyse-Vorhersageeinheit 400 auch die Vorhersage getroffen, wie viele Koeffizienten in einer Spalte modelliert werden, wobei diese Vorhersage bereits eine Spalte vor der aktuell zu modellierenden Spalte ausgeführt wird, so dass das Ergebnis bereits beim Schiebevorgang vorliegt, wobei, falls das Ergebnis „0” oder „1” ist, mit dem nächsten Takt sofort der nächste Schiebevorgang folgen könnte, was der Taktzähler 426 der Schieberegistereinheit 106 mitteilt. Das Vorhersageergebnis wird mittels logischer Verknüpfung aus dem Vier-Bit-Vektor sowie der Signifikanzstatusvariablen gebildet, wie es im Vorhergehenden beschrieben worden ist, wobei in der Schieberegistereinheit 106 entsprechende Vorkehrungen getroffen sind, dass der Schiebevorgang tatsächlich nur dann durchgeführt wird, wenn beide Einheiten 1081 und 1083 ihren Schiebeimpuls an die Schieberegistereinheit 106 weitergeleitet haben, um sicherzustellen, dass nicht zu früh mit einem Schiebevorgang begonnen wird.Of course, from the analysis prediction unit 400 also predicted how many coefficients are modeled in a column, this prediction already being performed one column ahead of the column currently being modeled, so that the result is already present during the shift, and if the result is "0" or "1" is, with the next bar could immediately follow the next shift, which is the clock counter 426 the shift register unit 106 telling. The prediction result is formed by logically combining the four-bit vector and the significance status variable, as described above, in the shift register unit 106 appropriate precautions are taken that the sliding operation is actually only performed when both units 108 1 and 3 its shift pulse to the shift register unit 106 to make sure that you do not start pushing too soon.

Nach der Beschreibung der drei Bitmodelliereinheiten 1081 bis 1083 wird kurz wieder auf 3 Bezug genommen, bevor mit der detaillierten Beschreibung des internen Aufbaus des Durchlaufentscheiders 122 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung fortgefahren wird. Wie im Vorhergehenden beschrieben, arbeiten die drei Bitmodelliereinheiten 1081 bis 1083 weitestgehend unabhängig voneinander und vor allem parallel zueinander in einem gemeinsamen Scan mit einem leichten Versatz zueinander die Betragsbits der aktuellen Betragsbitebene ab. Die Datenworte werden jeweils in einem eigenen der Zwischenspeicher 1101 bis 1103 der Reihe nach abgelegt. Die Zwischenspeicher 1101 bis 1103 sind dabei so ausgeführt, dass die Reihenfolge der jeweiligen abgelegten Datenworte beim Auslesen erhalten bleibt. Dazu könnten die Zwischenspeicher 1101 bis 1103 beispielsweise als FIFO-Speicher (First-In-Fist-Out) ausgelegt sein. Andere Ausführungen sind natürlich ebenfalls möglich, wie z. B. Implementierungen als Ringspeicher, aber auch direkt adressierbare oder inhaltsadressierbare Speicher in dem Fall entsprechender Vorkehrungen zur geeigneten Ausleserei henfolge, wobei dementsprechend die Speicher nicht getrennt für jede Modelliereinheit vorhanden sein müssen.After the description of the three Bitmodelliereinheiten 108 1 to 3 is briefly on again 3 With reference to the detailed description of the internal construction of the continuous flow separator 122 is continued according to an embodiment of the present invention. As described above, the three bit modeling units work 108 1 to 3 largely independent of each other and especially parallel to each other in a common scan with a slight offset to each other from the magnitude bits of the current amount bit plane. The data words are each in their own the cache 110 1 to 110 3 filed in sequence. The buffers 110 1 to 110 3 are executed so that the order of the respective stored data words is retained during reading. This could be the cache 110 1 to 110 3 For example, be designed as FIFO memory (First-In-Fist-Out). Other versions are of course also possible, such. As implementations as a ring memory, but also directly addressable or content-addressable memory in the case of appropriate arrangements for the appropriate reading sequence, and accordingly the memory must not be present separately for each modeling unit.

Der Durchlaufentscheider 122 dekodiert nun die Datenworte in einer geeigneten Reihenfolge und wandelt sie um in entsprechende Steuersignale für den arithmetischen Kodierer 124. Insbesondere liest der Durchlaufentscheider 122 die Datenworte zunächst des ersten Durchlaufs aus, bis dieser beendet ist, was durch das Pass-Ende-Bit angezeigt wird, daraufhin die Datenworte des zweiten kodierten Durchlaufs aus dem Zwischenspeicher 1102 , bis dort das Pass-Ende-Bit gesetzt ist, und dann die Datenworte aus dem Zwischenspeicher 1103 ... Dadurch wird die Kodierreihenfolge eingehalten, wie sie eigentlich der Dekodierer erwartet.The pass decision maker 122 Now decodes the data words in a suitable order and converts them into corresponding control signals for the arithmetic coder 124 , In particular, the pass decision maker reads 122 the data words first of the first pass until it is finished, which is indicated by the pass-end bit, then the data words of the second encoded pass from the buffer 110 2 until the pass-end bit is set, and then the data words from the cache 110 3 ... This respects the coding order as expected by the decoder.

7 zeigt den internen Aufbau des Durchlaufentscheiders 122 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung in einem mit dem arithmetischen Kodierer 124 auf der einen und den Zwischenspeichern 1101 , 1102 und 1103 auf der anderen Seite gekoppelten Zustand. Insbesondere umfasst der Durchlaufentscheider 122 von 7 drei Datenwortdekodierer 6001, 6002 und 6003 , die zwischen einem jeweiligen der Zwischenspeicher 1101 bis 1103 auf der einen Seite und entsprechend der Eingänge eines Multiplexers 602 auf der anderen Seite geschaltet sind. Ferner umfasst der Durchlaufentscheider 122 eine Steuerung 604. 7 shows the internal structure of the flow separator 122 according to an embodiment of the present invention in one with the arithmetic coder 124 on the one and the latches 110 1 . 110 2 and 110 3 coupled state on the other side. In particular, the pass decision maker comprises 122 from 7 three data word decoders 600 1 , 600 2 and 600 3 between each one of the caches 110 1 to 110 3 on the one hand and according to the inputs of a multiplexer 602 switched on the other side. Furthermore, the pass decision maker includes 122 a controller 604 ,

Zwischen jedem Paar von Zwischenspeichern 1101 bis 1103 und Datenwortdekodierer 6001 bis 6003 ist eine jeweilige Datenwortleitung 6061 , 6062 bzw. 6063 vorgesehen, um das nächste Datenwort aus dem jeweiligen Zwischenspeicher zu lesen. Anforderungs- und Bestätigungssignalleitungen 6081 bis 6082 und 6083 sind ebenfalls zwischen diesen Paaren vorgesehen, um in einem Handshake-Verfahren die Datenworte auszulesen. Ausgangsseitig weist jeder Datenwortdekodierer 6001 bis 6003 fünf Signalverbindungen 6101 , 6102 und 6103 zu entsprechenden Eingängen des Multiplexers 602 auf. Die Signalverbindungen 6101 bis 6103 umfassen jeweils eine Datenbit-, Kontextindex-, Gültigkeitsbit-, Bypass-Modus-Bit- und Durchlauf-Ende-Bit-Verbindung. Lediglich die Bypass-Modus-Bit-Verbindung ist in dem Fall des Datenwortdekodierers 6003 durch eine Block-Ende-Bit-Verbindung ersetzt. Eingangsseitig ist die Steuerung 604 mit jeweils dem Pass-Ende-Bit-Ausgängen der Datenwortdekodierer 6001 bis 6003 sowie mit dem Block-Ende-Bit-Ausgang des Datenwortdekodierers 6003 gekoppelt. Die Steuerung umfasst ferner einen Ausgang, der mit einem Steuereingang des Multiplexers 602 gekoppelt ist. Zudem tauschen die Datenwortdekodierer 6001 bis 6003 Steuersignale mit der Steuerung 604 aus, die beispielsweise ebenfalls der Realisierung eines Handshaking-Verfahrens dienen können. Ausgangsseitig umfasst der Multiplexer 602 sechs Signalverbindungen 612 zu dem arithmetischen Kodierer 124, nämlich die vorerwähnten Signalverbindungen für Datenbit, Kontextindex, Gültigkeitsbit, Bypass-Modus-Bit, Pass-Ende-Bit und Block-Ende-Bit. Zudem ist der arithmetische Kodierer 124 über einen Rückkopplungspfad 614 mit der Steuerung 604 gekoppelt, um letzterer mitteilen zu können, ob er wieder aufnahmefähig ist, um weitere Daten auf den Signalverbindungen 612 zu verarbeiten.Between each pair of buffers 110 1 to 110 3 and data word decoder 600 1 to 600 3 is a respective data word line 606 1 . 606 2 respectively. 606 3 provided to read the next data word from the respective cache. Request and acknowledge signal lines 608 1 to 608 2 and 608 3 are also provided between these pairs to read the data words in a handshake procedure. On the output side, each data word decoder 600 1 to 600 3 five signal connections 610 1 . 610 2 and 610 3 to corresponding inputs of the multiplexer 602 on. The signal connections 610 1 to 610 3 each comprise a data bit, context index, valid bit, bypass mode bit, and pass end bit connection. Only the bypass mode bit connection is in the case of the data word decoder 600 3 replaced by a block end-bit connection. On the input side is the controller 604 each with the pass-end bit outputs of the data word decoders 600 1 to 600 3 and with the block end bit output of the data word decoder 600 3 coupled. The controller further includes an output connected to a control input of the multiplexer 602 is coupled. In addition, the data word decoders swap 600 1 to 600 3 Control signals with the controller 604 from, for example, can also serve the realization of a handshaking process. On the output side, the multiplexer includes 602 six signal connections 612 to the arithmetic coder 124 Namely, the above-mentioned signal connections for data bit, context index, validity bit, bypass mode bit, pass end bit and block end bit. In addition, the arithmetic coder 124 via a feedback path 614 with the controller 604 to inform the latter if it is resumable to receive further data on the signal links 612 to process.

Während des Betriebes lesen nun die Datenwortdekodierer 6001 bis 6003 nacheinander die Datenworte aus dem jeweiligen der drei Zwischenspeicher 1101 bis 1103 aus und dekodieren die Datenworte. Der Datenwortdekodierer 6001 kodiert die 12-Bit-Datenworte jeweils zurück in einen oder zwei Datenbündel, um sie in einem oder zwei aufeinander folgenden Takten an den Multiplexer 602 über die Signalverbindungen 6101 weiterzuleiten, nämlich ein Signalbündel mit dem Betragsdatenbit und dem zugehörigen Kontext-Index für die Koeffizientenbitmodellierung sowie einem weiteren Signalbündel, wenn das Betragsdatenbit gesetzt ist, mit einem Datenbit, das dann das Vorzeichen anzeigt, und dem zugehörigen Kontext-Index. Ist das Datenbit gültig, setzt der Dekodierer 6001 auch das Gültigkeitsbit. Das Bypass-Modus-Bit und das Pass-Ende-Bit auf den Signalleitungen 6101 leitet der Dekodierer 6001 unmittelbar aus dem 12-Bit-Datenwort her.During operation, the data word decoders now read 600 1 to 600 3 successively the data words from the respective one of the three latches 110 1 to 110 3 off and decode the data words. The data word decoder 600 1 each encodes the 12-bit data words back into one or two bursts of data to the multiplexer in one or two consecutive clocks 602 over the signal connections 610 1 forward, namely a burst having the magnitude data bit and the associated context index for coefficient bit modeling, and another burst if the magnitude data bit is set, with a data bit indicating the sign, and the associated context index. If the data bit is valid, the decoder continues 600 1 also the validity bit. The bypass mode bit and the pass end bit on the signal lines 610 1 conducts the decoder 600 1 directly from the 12-bit data word.

Der Dekodierer 6002 verhält sich ähnlich. Auch er nimmt eine Dekodierung der Datenworte von dem Zwischenspeicher 1102 zurück in Datenbits und Kontext-Indizes für die Koeffizienten-Modellierung von bis zu vier Koeffizienten vor, um so jedes 14-Bit-Datenwort in Form von einem bis zu vier aufeinanderfolgenden Signalbündeln auf den Signalleitungen 6102 an den Multiplexer 602 weiterzuleiten. Der Datenwortdekodierer 6003 verhält sich auf ähnliche Weise, indem derselbe die ankommenden 15-Bit-Datenworte aus dem Zwischenspeicher 1103 zurück in Lauflängensymbole, Datenbits und Kontext-Indizes für die Koeffizienten-Modellierung sowie, wenn das Datenbit gesetzt ist, die Vorzeichenbit-Modellierung umwandelt und in einem bzw. zwei aufeinanderfolgenden Signalbündeln auf den Signalleitungen 6103 an dem Multiplexer 602 weiterleitet. Kommt allerdings die RL-Primitve zum Tragen, was aus dem RL-Symbol hervorgeht, so erfolgt die Umwandlung durch den Datenwortdekodierer 6003 in ein – in dem Fall der vollständigen Lauflänge bzw. keinem signifikant werdenden Betragsbit unter lauter Pass 3 Bits – bis vier – in dem Fall eines signifikant werdenden Betragsbits unter lauter Pass 3 Bits an der zweiten Position von Oben innerhalb des Tupels-Signalbündel. Die Steuerung 604 wertet die Pass-Ende-Bits aus, um nacheinander erstmal die Signalleitungen 6101 mit den entsprechenden Signalleitungen der Signalleitungen 612 zu verbinden, daraufhin die Signalleitungen 6102 und daraufhin wiederum die Signalleitungen 6103 . Auf diese Weise erhält der arithmetische Kodierer 124 mit jedem Datenbit und Kontext-Index auch eine Information darüber, ob der Bypass-Modus für den jeweiligen Koeffizienten zu verwenden ist, und ob der aktuelle Kodierdurchlauf bzw. Codeblock zu Ende ist. In dem erstgenannten Fall unterbricht der arithmetische Kodierer 124 nämlich seine arithmetische Intervallteilung und fügt das entsprechende Datenbit bei gesetztem Bypass-Modus-Bit im Klartext in den arithmetischen Datenstrom ein, und in dem zweiten Fall setzt der arithmetische Kodierer sein aktuelles Intervall wieder auf den vorbestimmten Wert zurück, e benso wie Wahrscheinlichkeitsschätzwerte der einzelnen Kontexte in dem Fall, dass der arithmetische Kodierer adaptiv ausgeführt ist. Durch die oben beschriebenen Handshake-Verbindungen wird der Informationsfluss innerhalb des Durchlaufentscheiders 122 in Abhängigkeit davon gesteuert, ob die Zwischenspeicher 1101 bis 1103 Daten enthalten bzw. ob der arithmetische Kodierer bereit ist, Daten anzunehmen.The decoder 600 2 behaves similarly. He also takes a decoding of the data words from the cache 110 2 back into data bits and context indices for coefficient modeling of up to four coefficients, so as to provide each 14-bit data word in the form of one to four consecutive bursts on the signal lines 610 2 to the multiplexer 602 forward. The data word decoder 600 3 Similarly, it behaves the incoming 15-bit data words from the cache 110 3 back in run-length symbols, data bits, and context indices for coefficient modeling, and when the data bit is set, converts sign-bit modeling and in one or two consecutive bursts on the signal lines 610 3 at the multiplexer 602 forwards. However, if the RL primitive comes to fruition, as indicated by the RL symbol, then the conversion is done by the data word decoder 600 3 in a - in the case of the complete run length or no significant amount bit among pass 3 bits - to four - in the case of a significant magnitude bit among pass 3 bits at the second position from the top within the tuple burst. The control 604 evaluates the pass-end bits to successively first the signal lines 610 1 with the corresponding signal lines of the signal lines 612 to connect, then the signal lines 610 2 and then turn the signal lines 610 3 , In this way, the arithmetic coder gets 124 with each data bit and context index also information on whether to use the bypass mode for the respective coefficient and whether the current coding pass or code block is over. In the former case, the arithmetic coder interrupts 124 namely, its arithmetic interval division, and inserts the corresponding data bit in clear text into the arithmetic data stream when the bypass mode bit is set, and in the second case the arithmetic encoder resets its current interval back to the predetermined value, as well as probability estimates of the individual contexts in the case that the arithmetic coder is adaptive. Through the handshake connections described above, the flow of information within the flow decision maker becomes 122 depending on whether the caches 110 1 to 110 3 Data or whether the arithmetic coder is ready to accept data.

Der oben beschriebene Blockkodierer nach den 38 lässt sich in Hardware realisieren und stellt in diesem Fall einen Hardware-basierten JPEG2000-Blockkodierer dar, bei dem durch die oben veranschaulichte Parallelverarbeitung und die Durchlaufzugehörigkeitsvorhersage die Anzahl der benötigten Prozessschritte bei der Kontext-Modellierung reduziert ist. Je nach Kodierdurchlauf wurde entweder in einem Schritt ein Koeffizientenbit gleichzeitig mit seinem Vorzeichenbit modelliert oder in einem Schritt eine Spalte von bis zu vier Koeffizientenbits gleichzeitig modelliert oder in einem Schritt eine Spalte von bis zu vier Koeffizientenbits in einer sogenannten Lauflängenprimitive modelliert, wobei im selben Schritt der signifikant werdende Koeffizient zusammen mit seinem Vorzeichenbit modelliert wird.The above-described block coder after the 3 - 8th can be implemented in hardware and in this case represents a hardware-based JPEG2000 block coder in which the number of process steps required in the context modeling is reduced by the above-illustrated parallel processing and the pass prediction. Depending on the coding pass, a coefficient bit was equalized either in one step modeled in time with its sign bit or in one step a column of up to four coefficient bits simultaneously modeled or modeled in one step a column of up to four coefficient bits in a so-called run-length primitive, wherein in the same step the significant coefficient is modeled together with its sign bit.

Des Weiteren war eine Vorhersage vorgesehen, wie viele Koeffizienten in einer Spalte in einem Schritt modelliert werden können. Diese Maßnahmen bewirken bei einem getakteten Prozess bei gleicher Taktfrequenz die Kodierung eines Kodierdurchlaufes in weniger Zeit, da Wartezeiten auf Registersetzvorgänge entfallen, bis zu vier Koeffizienten gleichzeitig modelliert werden können, bis zu vier Modelliervorgänge in einem Schritt erfolgen können, bereits am Beginn des Modelliervorgangs einer Spalte bekannt ist, wie viele Koeffizienten in einem Schritt modelliert werden können, wodurch zeitaufwendige Prüffunktionen während der Modellierung entfallen.Of Furthermore, a prediction was provided, how many coefficients can be modeled in a column in one step. These Effect measures in a clocked process at the same clock frequency coding a coding pass in less time, since waiting times for register set operations are eliminated, up to four coefficients can be modeled simultaneously to four modeling operations can be done in one step, already known at the beginning of the modeling process of a column how many coefficients can be modeled in one step, thereby time-consuming test functions while the modeling is omitted.

Zudem ermöglichte die Bitextraktion eine Reduktion der mitzuprotokollierenden und zu aktualisierenden gesonderten Statusvariablen für jeden Koeffizienten eines Codeblocks, womit einerseits die benötigte Speichergröße reduziert werden kann und andererseits die Kodierung eines Kodierdurchlaufes beschleunigt werden kann, da zusätzliche Lese- und Schreibvorgänge entfallen.moreover enabled the bite extraction a reduction of the to be logged and to update separate status variables for each Coefficients of a code block, which on the one hand reduces the required memory size and on the other hand speeds up the coding of a coding cycle can be, because additional Read and write operations omitted.

Ein Vorteil des Blockkodierers von 38 besteht insbesondere darin, dass je nach Kodierdurchlauf bis zu vier in einem Streifen untereinander liegende Koeffizientenbits gleichzeitig modelliert wurden, um Informationsworte zu generieren, die gegebenenfalls sogar komprimierte Informationen für bis zu vier Bit-Kontext-Paare beinhalten können. Diese Informationsworte werden zwischengespeichert und durch geeignete Evaluierung in einem Decoder dem nachgeschalteten arithmetischen Kodierer in einer geeigneten Darstellung und in der korrekten Reihenfolge zugeführt auf die Art und Weise, wie es im Vorhergehenden beschrieben wurde. Durch obige Maßnahmen wurde die Koeffizientenbitmodellierung so verbessert, dass sie eine leichtere Hardwareimplementierung ermöglicht.An advantage of the block coder of 3 - 8th consists, in particular, in the fact that, depending on the encoding cycle, up to four coefficient bits lying in a strip underneath were modeled simultaneously in order to generate information words which may possibly even contain compressed information for up to four bit context pairs. These information words are latched and fed by appropriate evaluation in a decoder to the downstream arithmetic coder in a suitable representation and in the correct order in the manner described above. By the above measures, coefficient bit modeling has been improved to allow easier hardware implementation.

Wie im Vorhergehenden beschrieben enthält der Bitextraktor von einer Speichereinheit einen Vektor von Koeffizienten, um aus jedem Koeffizienten k des Vektors für die zu kodierende Bitebene m Informationen zu extrahieren, die das Betragsbit km, das Vorzeichenbit kvz und Statusbits kst aufweisen, wobei die Statusbits wiederum aus dem Bit bestehen, das anzeigt, ob der Koeffizient in der Bitebene m schon signifikant ist, wozu für alle Betragsbits oberhalb der aktuellen Ebene überprüft wird, ob ein Bit gesetzt ist. Wobei, wenn mindestens ein Bit gesetzt ist, der Koeffizient in dieser Bitebene signifikant ist, und dem Bit, das anzeigt, ob das MR-Kodierschema zum ersten Mal oder bereits vorher schon Mal auf diesen Koeffizienten angewendet worden ist, wozu für alle Betragsbits oberhalb der aktuellen Bitebene überprüft wird, ob eines dieser Bits gesetzt ist, wo bei, wenn mindestens zwei Bits gesetzt sind, dann das MR-Kodierschema für den Koeffizienten schon einmal angewendet worden ist. Durch diese Extraktion kann wie im Vorhergehen erwähnt auf gesonderte Statusvariablen für jeden Koeffizienten eines Kodierblocks verzichtet werden, da diese Informationen für jeden Streifen aufs Neue bestimmt werden und nur für die Dauer der Kodierung gehalten werden müssen, wodurch einerseits die benötigte Speichergröße reduziert und andererseits die Kodierung des Kodierdurchlaufes beschleunigt werden kann, da zusätzliche Lese- und Schreibvorgänge entfallen.As described above, the bitextractor of a memory unit contains a vector of coefficients for extracting from each coefficient k of the vector for the bit plane to be coded m information comprising the magnitude bit km, the sign bit k vz and status bits k st , the status bits again consist of the bit which indicates whether the coefficient in the bit plane m is already significant, for which it is checked for all magnitude bits above the current level whether a bit is set. Where, if at least one bit is set, the coefficient in that bit-plane is significant and the bit indicating whether the MR-coding scheme has been applied to that coefficient for the first time or already before, for which all magnitude bits above that current bit-plane is checked whether one of these bits is set, where if at least two bits are set, then the MR-coding scheme for the coefficient has already been applied once. As mentioned above, this extraction eliminates the need for separate state variables for each coefficient of a coding block since this information must be redetermined for each strip and held only for the duration of the coding, thereby reducing the amount of memory required and the coding the coding cycle can be accelerated because additional read and write operations omitted.

Eine Hardwareimplentierung gemäß den 38 lässt also erwarten, dass in einem getakteten Prozess bei gleicher Taktfrequenz die Kodierung eines Kodierdurchlaufes wesentlich schneller erfolgen kann, da wie oben erwähnt Wartezeiten auf Register-Setzvorgänge entfallen, bis zu vier Koeffizienten gleichzeitig modelliert werden können, bis zu fünf Modelliervorgänge in einem Schritt erfolgen können, bereits am Beginn des Modelliervorganges einer Spalte bekannt ist, wie viel Koeffizienten in einem Schritt modelliert werden können, wodurch zeitaufwendige Prüffunktionen während der Modellierung entfallen, und zusätzliche Lese- und Schreibvorgänge für die Statusvariablen entfallen. Diese Vorteile sind für einen Komprimierer, wie er in 1 gezeigt ist, und bei dem der Kodierer von 3 eingesetzt werden kann, von hohem Wert. Denn in mehreren Untersuchungen wurde bereits festgestellt, dass der Blockkodierer und vor allem die Koeffizientenbitmodellierung die aufwendigste Operation innerhalb des JPEG2000-Kodierprozesses darstellt. In dem bereits in der Beschreibungseinleitung der vorliegenden Anmeldung genannten Artikel von Lian et al. wird beispielsweise ein Untersuchungsergebnis vorgestellt, wonach fast 52% der Rechenleistung eines Computers für die Summe aller drei Kodierdurchläufe benötigt wird. Eine Beschleunigung des Koeffizientenbitmodelliervorganges wirkt sich somit signifikant für den gesamten Kodierprozess aus. Bei Implementierungen, bei denen eine höhere Kodierge schwindigkeit durch Mehrfachinstantiierung des Blockkodierers erreicht wird, können somit Resourcen eingespart werden, damit dem Ausführungsbeispiel nach 38 weniger Kodiereinheiten zur Erlangung der gleichen Kodiergeschwindigkeit notwendig sind.A hardware implementation according to the 3 - 8th Thus, it can be expected that in a clocked process at the same clock frequency the encoding of a coding cycle can be done much faster, because as mentioned above waits for register-setting processes omitted, up to four coefficients can be modeled simultaneously, up to five modeling can be done in one step It is already known at the beginning of the modeling process of a column how many coefficients can be modeled in one step, which eliminates time-consuming test functions during modeling and eliminates additional read and write operations for the status variables. These benefits are for a compressor, as in 1 is shown, and in which the encoder of 3 can be used, of high value. For it has already been stated in several studies that the block coder and above all the coefficient bit modeling represent the most complex operation within the JPEG2000 coding process. In the already mentioned in the introduction to the present application by Lian et al. For example, we present a test result that requires nearly 52% of the computational power of a computer for the sum of all three encoding cycles. Acceleration of the coefficient bit modeling process thus significantly affects the entire coding process. In implementations in which a higher coding speed is achieved by multiple instantiation of the block coder, resources can thus be saved, thus according to the exemplary embodiment 3 - 8th less coding units are required to obtain the same coding speed.

Soeben erwähnte Implementierungen lassen sich beispielsweise auf FPGAs (Field Programmable Logic Array = Vorortprogrammierbare Logik Arrays) aber auch als integrierte Schaltung bzw. ASIC (ASIC = Application Specific Integrated Circuit = anwendungsspezifische integrierte Schaltung) realisieren. Für ein FPGA wurde bereits eine Hardwareimplementierung umgesetzt, wozu die entsprechende Funktionseinheiten durch VHDL beschrieben und mit geeigneten Werkzeugen übersetzt und für die Zielplattform synthetisiert wurden.Implementations just mentioned can be implemented, for example, on FPGAs (Field Programmable Logic Array) but also as an integrated circuit or ASIC (Application Specific Integrated Circuit). A hardware implementation has already been implemented for an FPGA, for which the corresponding functional units have been described by VHDL and translated with suitable tools and synthesized for the target platform.

Verschiedene Modifikationen können an den Ausführungsbeispielen nach 38 vorgenommen werden. Beispielsweise kann das Schieberegister 106 anders ausgeführt sein. Insbesondere kann es beispielsweise mehr Schieberegisterränge aufweisen, d. h. in 8 also nach links hin ausgeweitet sein. Ferner kann der Versatz zwischen den aktuellen 4-er-Vektoren 292, 322 und 506 auch größer sein als die zwei Schieberegisterränge, wie es in 8 gezeigt ist. Zudem ist es möglich, dass der Versatz variabel ist. Hierzu ist beispielsweise die Schieberegistereinheit nicht einheitlich ausgeführt, wie es in 8 gezeigt ist, sondern als Zwei Schieberegister, eines für die Bitmodelliereinheit 1081 und eine weitere für die Bitmodelliereinheiten 1082 und 1083 , wobei zwischen denselben ein FIFO-Speicher angeordnet ist, um als variabler Puffer zwischen den Schieberegistern zu dienen.Various modifications may be made to the embodiments 3 - 8th be made. For example, the shift register 106 be executed differently. In particular, it may for example have more shift register ranks, ie in 8th so be widened to the left. Furthermore, the offset between the current 4's vectors 292 . 322 and 506 also be larger than the two shift register ranks, as in 8th is shown. In addition, it is possible that the offset is variable. For this purpose, for example, the shift register unit is not executed uniformly, as in 8th but as two shift registers, one for the bit modeling unit 108 1 and another for the bit-modeling units 108 2 and 3 in which a FIFO memory is arranged between them to serve as a variable buffer between the shift registers.

Im Vorhergehenden wurde erwähnt, dass die Vorzeichenbitvorkodiereinheiten auf Basis der ersten Steuerbits feststellen, ob die jeweiligen Vorzeichenbits der Nachbarkoeffizienten dekodiererseitig bekannt sind oder nicht. Im Normalfall ist dann das erste Steuerbit des Transformationsko effizienten, das oben an dem betreffenden aktuellen Koeffizienten angrenzt, als über den Demultiplexer 214 bzw. 414 aktualisiert anzusehen. Sollte das jedoch aufgrund von Signallaufzeitüberlegungen dazu führen, dass die Verarbeitungszyklen sich verzögern, so wäre es ebenfalls möglich, dass die Vorzeichenbitvorkodiereinheiten ein noch nicht aktualisiertes erstes Steuerbit des oberen nächsten Nachbarkoeffizienten mittels des entsprechenden Betragsbits dieses Nachbarkoeffizienten virtuell aktualisieren.In the foregoing, it has been mentioned that the sign bit pre-coding units based on the first control bits determine whether or not the respective sign bits of the neighboring coefficients are known on the decoder side. Normally, then, the first control bit of the Transformationko efficient, which is adjacent to the top of the respective current coefficient, than the demultiplexer 214 respectively. 414 to be updated. However, should that, because of signal propagation delays, cause the processing cycles to be delayed, it would also be possible for the sign bit pre-coder units to virtually update a not yet updated first next adjacent coefficient control bit by the corresponding magnitude bit of that adjacent coefficient.

Im Vorhergehenden wurden auch zur Vereinfachung der Darstellung Randproblematiken beispielsweise am Rand der Bitebenen, am Ende und am Anfang eines Streifens usw. nicht weiter vertieft, um die vorhergehende Beschreibung nicht unnötig zu verkomplizieren. Nicht vorhandene oder dem Dekodierer nicht zur Verfügung stehenden Daten können vereinbarungsgemäß auf eine vorzugsweise decoderseitig bekannte Weise auf vorbestimmte Werte eingestellt werden. Es können zudem bei dem Blockkodierer nach 3 bei der Kodierung der Betragsbits der Streifen die jeweils angrenzenden Zeilen der angrenzenden Streifen unberücksichtigt bleiben. In diesem Fall wäre dann beispielsweise auch das Schieberegister kleiner, um in jedem der Teile 1061 bis 1063 lediglich die vier Zeilen der Streifen zu umfassen.In the foregoing, for the sake of simplicity of illustration, marginal problems such as at the edge of bit planes, at the end and at the beginning of a stripe, etc. have not been further deepened so as not to unduly complicate the above description. Unavailable data or data that is not available to the decoder can be set according to agreement to predetermined values in a manner preferably known on the decoder side. It may also be in the block encoder after 3 when encoding the magnitude bits of the stripes, the respective adjacent rows of the adjacent stripes are disregarded. In that case, for example, the shift register would also be smaller to fit in each of the parts 106 1 to 106 3 just to cover the four lines of the strips.

9 zeigt ein etwas allgemeineres Beispiel eines Blockkodierers. Der Blockkodierer von 9, der allgemein mit 700 angezeigt ist, ist ebenso wie das vorhergehende Ausführungsbeispiel dazu vorgesehen, einen Bock von Transformationskoeffizienten zu kodieren, die jeweils mittels mehrerer Betragsbits dargestellt sind, die eine Folge von Betragsbitebenen definieren. In 9 sind diese Betragsbits 252 mit gleichen Bezugszeichen und gleicher Form und Anordnung veranschaulicht, d. h. als Würfel angeordnet in Zeilen und Spalten sowie in der Tiefe in Betragsbitebenen, wobei der so entstehende dreidimensionale Block 701 von Betragsbits 252 im Schnitt gezeigt ist, so dass seine aktuelle Betragsbitebene 704 sichtbar ist, während die bereits kodierten weniger signifikanten Betragsbitebenen weiter hinten liegen und die signifikanteren Bitebenen nicht zu sehen sind. Der Blockkodierer 700 weist eine Kodiereinrichtung 702 auf, die dazu vorgesehen ist, die Betragsbits 252 betragsbitebenenweise zu durchlaufen, und zwar durch Durchlaufen der jeweiligen aktuellen Betragsbitebene 702 in einer vorbestimmten Reihenfolge einzeln oder, wie in 9 in Anlehnung an das vorhergehende Ausführungsbeispiel exemplarisch dargestellt, in Tupeln von benachbarten Betragsbits 252. Die Kodiereinrichtung kodiert in der aktuellen Betragsbitebene 702 in der Reihenfolge des Durchlaufens vorbestimmte Betragsbits in einen kodierten Datenstrom 706. Das Durchlaufen der Betragsbits 252 der aktuellen Betragsbitebene 704 findet somit entweder individuell statt oder tupelweise, wie es im vorhergehenden Ausführungsbeispiel der Fall war. Insbesondere ist in 9 ein aktuell zu kodierendes Tupel durch Schraffur bei 708 hervorgehoben. 9 shows a more general example of a block encoder. The block coder of 9 who is generally with 700 is displayed, as well as the previous embodiment is intended to encode a block of transform coefficients, each represented by a plurality of magnitude bits defining a sequence of magnitude bit planes. In 9 are these amount bits 252 illustrated with the same reference numerals and the same shape and arrangement, that is arranged as a cube in rows and columns and in depth in magnitude bit planes, wherein the resulting three-dimensional block 701 of amount bits 252 shown in section, so its current magnitude bitmap 704 is visible, while the already coded less significant magnitude bit-planes are further behind and the more significant bit-planes are not visible. The block encoder 700 has an encoder 702 on which is provided, the magnitude bits 252 to go through the amount bit by bit by going through the respective current amount bit level 702 in a predetermined order individually or as in 9 on the basis of the preceding exemplary embodiment, shown in tuples of adjacent magnitude bits 252 , The coding device encodes in the current amount bit level 702 in order of passing predetermined amount bits into a coded data stream 706 , Passing through the magnitude bits 252 the current amount bit level 704 thus takes place either individually or tupleweise, as was the case in the previous embodiment. In particular, in 9 a currently to be coded tuple by hatching at 708 highlighted.

Die Kodiereinrichtung 702 weist nun einen Zwischenspeicher 710, einen Bitextraktor 712 und einen Kodierer 714 auf, wobei der Bitextraktor bei Durchlaufen der Betragsbits 252 erste Statusbits 716 ermittelt, die für die Transformationskoeffizienten, die durch Betragsbits der aktuellen Betragsbitebene 702 dargestellt sind, die gemäß der Reihenfolge des Durchlaufens frühestens als nächstes an der Reihe sind, und für die Stellvertretend mögliche Betragsbits in 9 mit einem Rechteck 718 hervorgehoben sind, eine Signifikanz bezogen auf die aktuelle Betragsbitebene 704 anzeigen. Insbesondere ermittelt der Bitextraktor 712 diese Statusbits aus Betragsbits, die die gleichen Transformationskoeffizienten darstellen wie die Betragsbits 718, aber in signifikanteren Bitebenen liegen als dieselben. Mit diesen ersten Statusbits 716 befüllt beständig der Bitextraktor 712 den Speicherspeicher 710, der diese ersten Statusbits vorübergehend, nämlich so lange die ersten Statusbits durch den Kodierer 714 benötigt, d. h. zugreifbar und aktualisierbar, sein müssen, zwischenspeichert. Der Zwischenspeicher 710 kann beispielsweise als ein FIFO-Speicher aus geführt sein. Der Kodierer 714 führt die Kodierung der vorbestimmten unter den Betragsbits 252 in den kodierten Datenstrom 706 unter Verwendung der ersten Statusbits in dem Zwischenspeicher 710 durch.The coding device 702 now has a cache 710 , a bitextractor 712 and an encoder 714 on, the bitextractor traversing the magnitude bits 252 first status bits 716 which determines the transform coefficients by magnitude bits of the current magnitude bit-plane 702 which are next in line at the earliest according to the order of passage, and for the representative possible magnitude bits in FIG 9 with a rectangle 718 are highlighted, a significance related to the current amount bit level 704 Show. In particular, the bite extractor determines 712 these status bits are of magnitude bits representing the same transform coefficients as the magnitude bits 718 but in more significant bit planes are the same. With these first status bits 716 The bitextractor is constantly filling 712 the memory memory 710 that temporarily stores these first status bits, namely as long as the first status bits by the encoder 714 needed, ie accessible and updatable, must be cached. The cache 710 may be performed as a FIFO memory, for example. The encoder 714 performs the coding of the predetermined among the magnitude bits 252 in the coded data stream 706 using the first status bits in the cache 710 by.

Trotz des betragsbitebenenweisen Durchlaufens der Betragsbitebenen ist es folglich nicht nötig, dass die ersten Statusbits für alle Transformationskoeffizienten und damit über die gesamte Kodierung der einzelnen Betragsbitebenen hinweg gespeichert werden müssen.In spite of of the amount-side-wise iterating through the amount-bit-planes it is therefore not necessary that the first status bits for all the transformation coefficients and thus over the entire coding of the have to be stored in individual amount bit levels.

Bei dem Ausführungsbeispiel von 9 ist das Durchlaufen der Betragsbits der aktuellen Betragsbitebene 104 nicht auf eine tupelweise Durchlaufvorgehensweise beschränkt. Vielmehr können die Betragsbits 252 auch einzeln durchlaufen werden oder zu zweit usw. Der Zwischenspeicher 710 kann wie bei den vorhergehenden Ausführungsbeispielen vorgesehen sein, um neben den ersten Statusbits auch weitere Informationen zu speichern. Beispiele sind das vorübergehende Speichern von Betragsbits 252 und/oder zugeordneten Vorzeichenbits sowie gegebenenfalls zweiten Statusbits. Obwohl bei dem Ausführungsbeispiel von 9 lediglich vorbestimmte der Betragsbits von dem Kodierer 714 erfasst werden und somit eine verlustbehaftete Kompression der Transformationskoeffizienten vorgenommen wird, kann analog zu dem vorhergehenden Ausführungsbeispiel dem Kodierer 714 auch ein weiterer Kodierer parallel geschaltet sein, um weitere andere vorbestimmte Betragsbits zu kodieren, wobei dann nachgeschaltet zu diesen beiden Kodierern eine geeignete Entropiekodiereinrichtung mit einem Multiplexer oder nur einem Multiplexer/Entscheider angeordnet sein kann, um die Reihenfolge festzulegen, in der die verschiedenen unterschiedlichen vorbestimmten Betragsbits in den kodierten Datenstrom 706 eingebunden werden. Ferner kann zusätzlich oder alternativ zwischen dem Zwischenspeicher und dem Kodierer 714 eine Vorhersageeinrichtung geschaltet werden, die ähnlich den Vorhersageeinheiten in den vorhergehenden Ausführungsbeispielen für noch nicht an der Reihe seiende Be tragsbits vorhersagt, ob dieselben zu den vorbestimmten gehören oder nicht.In the embodiment of 9 is passing through the amount bits of the current amount bit plane 104 not limited to a tuple-by-pass procedure. Rather, the magnitude bits 252 also through individually or in pairs, etc. The cache 710 can be provided as in the previous embodiments, in addition to the first status bits also store more information. Examples are the temporary storage of amount bits 252 and / or associated sign bits and optionally second status bits. Although in the embodiment of 9 only predetermined ones of the magnitude bits from the encoder 714 can be detected and thus a lossy compression of the transform coefficients is made, analogous to the previous embodiment, the encoder 714 Also, a further encoder may be connected in parallel to encode further other predetermined magnitude bits, then downstream of these two encoders a suitable entropy coding means may be arranged with a multiplexer or only one multiplexer / decision maker to determine the order in which the different different predetermined ones Amount bits in the encoded data stream 706 be involved. Furthermore, additionally or alternatively, between the buffer and the encoder 714 a predictor may be switched which, similarly to the prediction units in the preceding embodiments, predicts whether or not they are predetermined ones for non-in-order carry bits.

Abhängig von den Gegebenheiten können beschriebene Abläufe zur Transformationskoeffizientenblockkodierung nicht nur in Hardware, sondern natürlich auch in Software implementiert werden. Die Implementation kann auf einem digitalen Speichermedium, insbesondere einer Diskette, einer CD oder einer DVD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computer-Programm-Produkt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung eines obiger Verfahren, wenn das Computer-Programm-Produkt auf einem Rechner abläuft. Mit anderen Worten ausgedrückt kann die Erfindung somit als ein Computer-Programm mit einem Programmcode zur Durchführung eines obiger Verfahren realisiert werden, wenn das Computer-Programm auf einem Computer abläuft. Hierbei ist unter einem Computer jegliche Form eines Prozessors zu verstehen, der ausgelegt ist, um ein Programm oder einen Programmcode auszuführen, also insbesondere auch Mikrocontroller oder dergleichen.Depending on The circumstances can be described procedures for transform coefficient block coding not only in hardware, but of course also be implemented in software. The implementation can be on a digital storage medium, in particular a floppy disk, a CD or a DVD with electronically readable control signals, which interact with a programmable computer system can, that the corresponding procedure is carried out. Generally exists the invention thus also in a computer program product with a program code stored on a machine-readable medium to carry out an above procedure when the computer program product on a Calculator expires. In other words Thus, the invention can be thought of as a computer program with a program code to carry out an above procedure can be realized when the computer program runs on a computer. Here, under a computer is any form of processor to understand that is designed to be a program or a program code perform, So in particular also microcontroller or the like.

Claims (30)

Vorrichtung zum Kodieren eines Blockes (34) von Transformationskoeffizienten, wobei die Transformationskoeffizienten jeweils mittels mehrerer Betragsbits (252) dargestellt sind, so dass dieselben eine Folge von Betragsbitebenen (381 ...38n ) definieren, mit einer Kodiereinrichtung zum Durchlaufen der Betragsbits einer vorbestimmten der Betragsbitebenen (381 ....38n ) und Kodieren vorbestimmter der Betragsbits in einen kodierten Datenstrom, wobei der Kodierer folgende Merkmale aufweist: einen Zwischenspeicher (106; 710); einen Bitextraktor (104; 712) zum, bei Durchlaufen der Betragsbits, Ermitteln erster Statusbits, die für die Transformationskoeffizienten, die durch Betragsbits der vorbestimmten Betragsbitebene dargestellt sind, die gemäß einer Reihenfolge des Durchlaufens frühestens als nächstes an der Reihe sind, eine Signifikanz bezogen auf die vorbestimmte Betragsbitebene anzeigen, aus Betragsbits, die die gleichen Transformationskoeffizienten darstellen wie die frühestens als nächstes an der Reihe seienden Betragsbits aber in signifikanteren Bitebenen liegen als dieselben und Befüllen des Zwischenspeichers mit den ermittelten ersten Statusbits; und einen Kodierer (112, 1081 ; 1082 ; 1083 ; 714) zum Kodieren der vorbestimmten Betragsbits in den kodierten Datenstrom unter Verwendung der ersten Statusbits in dem Zwischenspeicher (106), wobei der Zwischenspeicher so ausgebildet ist, dass derselbe zu jedem Zeitpunkt die ersten Statusbits nur für einen Ausschnitt der Transformationskoeffizienten speichert, und wobei die Kodiereinrichtung ausgebildet ist, um auf das Durchlaufen der vorbestimmten Betragsbitebene hin eine weniger signifikante Betragsbitebene zu durchlaufen und die vorbestimmten Betragsbits der weniger signifikanten Betragsbitebene in den Datenstrom zu kodieren, und zwar unter Ermittlung der ersten Statusbits und Befüllung des Zwischenspeichers durch den Bitextraktor.Device for coding a block ( 34 ) of transform coefficients, wherein the transform coefficients are each determined by means of several magnitude bits ( 252 ), so that they are a sequence of amount bit planes ( 38 1 ... 38 n ) with an encoder for traversing the magnitude bits of a predetermined one of the magnitude bit-planes ( 38 1 .... 38 n ) and encode predetermined ones of the magnitude bits into a coded data stream, the encoder comprising: a buffer memory ( 106 ; 710 ); a bitextractor ( 104 ; 712 ) for, upon passing through the magnitude bits, determining first status bits indicative of the significance of the predetermined magnitude bit-plane for the transform coefficients represented by magnitude bits of the predetermined magnitude bit-plane next in order according to an order of traversal at the earliest Magnitude bits representing the same transform coefficients as the earliest next-ranked magnitude bits but at more significant bit-planes than the same and filling the cache with the first status bits detected; and an encoder ( 112 . 108 1 ; 108 2 ; 3 ; 714 ) for encoding the predetermined magnitude bits into the encoded data stream using the first status bits in the buffer memory ( 106 ), wherein the latch is arranged to store the first status bits for only a portion of the transform coefficients at any one time, and wherein the encoder is adapted to traverse a less significant magnitude bit plane upon passing through the predetermined magnitude bit plane and the predetermined magnitude bits encode the less significant magnitude bit-plane into the data stream, detecting the first status bits and filling the buffer by the bit-extractor. Vorrichtung gemäß Anspruch 1, bei der der Bitextraktor und der Kodierer derart ausgebildet sind, dass die ersten Statusbits, mit denen der Bitextraktor den Zwischenspeicher befüllt, die Signifikanz für Transformationskoeffizienten anzeigen, die durch Betragsbits der aktuellen Betragsbitebene dargestellt sind, die mit einem konstanten Versatz gemäß der Reihenfolge des Durchlaufens durch den Kodierer verarbeitet werden, um die vorbestimmten Betragsbits unter den Betragsbits der aktuellen Betragsbitebene zu kodieren.Apparatus according to claim 1, wherein the bit extractor and the encoder are arranged such that the first status bits with which the bit extractor fills the buffer indicate the significance for transform coefficients represented by magnitude bit plane magnitude bits corresponding to a constant offset according to FIG of the Order of the pass through the encoder are processed to encode the predetermined magnitude bits among the magnitude bits of the current magnitude bit-plane. Vorrichtung gemäß Anspruch 1 oder 2, bei dem der Zwischenspeicher als Schieberegister ausgebildet ist, der Bitextraktor ausgebildet ist, um das Schieberegister an einem vorderen Ende desselben zu befüllen und der Kodierer ausgebildet ist, um die Kodierung der vorbestimmten Betragsbits in den kodierten Datenstrom zumindest auch unter Verwendung von Registerinhalten des Schieberegisters durchzuführen, die zumindest ein Schieberang hinter dem vorderen Ende des Schieberegisters angeordnet sind, und in einem Verlauf der Kodierung auch eine Aktualisierung von Registerinhalten des Schieberegisters durchzuführen, die zumindest ein Schieberang vor den Registerinhalten ausgeordnet sind, die zur Kodierung verwendet werden.Device according to claim 1 or 2, wherein the buffer formed as a shift register The bitextractor is designed to apply the shift register to fill a front end thereof and the encoder formed is to encode the predetermined magnitude bits in the encoded one Data stream at least also using register contents perform the shift register, the at least one slide behind the front end of the shift register are arranged, and in an evolution of the coding also an update register contents of the shift register to perform at least one slide gate are arranged before the register contents, the be used for coding. Vorrichtung gemäß Anspruch 1, bei der die Kodiereinrichtung ausgebildet ist, um die Betragsbits der vorbestimmten Betragsbitebene (381 ....38n ) in Tupeln (292; 322; 506) von jeweils einer Mehrzahl von benachbarten Betragsbits zu durchlaufen, und der Kodierer folgende Merkmale aufweist: einen Vorkodierer zum, bei Durchlaufen der Betragsbits, Kodieren vorbestimmter der Betragsbits der Tupel in Datenwörter derart, dass ein vorbestimmtes Betragsbit zusammen mit einem zugeordneten Vorzeichenbit in eines der Datenwörter (244; 444) kodiert wird, oder dass ein vorbestimmtes Betragsbit zusammen mit einem anderen vorbestimmten Betragsbit des gleichen Tupels in eines der Datenwörter (318; 444) kodiert wird; einen Datenwortzwischenspeicher (1101 ; 1102 ; 1103 ) zum Zwischenspeichern der Datenwörter (244; 318; 444); und einen Entropiekodierer (112) zum Kodieren der Datenwörter (244; 318; 444) aus dem Datenwortzwischenspeicher in den kodierten Datenstrom.Apparatus according to claim 1, wherein the coding means is arranged to adjust the magnitude bits of the predetermined magnitude bit-plane ( 38 1 .... 38 n ) in tuples ( 292 ; 322 ; 506 each of a plurality of adjacent magnitude bits, the encoder comprising: a precoder for, upon passing through the magnitude bits, encoding predetermined ones of the magnitude bits of the tuples into data words such that a predetermined magnitude bit together with an associated sign bit in one of the data words ( 244 ; 444 ) or that a predetermined amount bit together with another predetermined magnitude bit of the same tuple is encoded into one of the data words ( 318 ; 444 ) is encoded; a data word buffer ( 110 1 ; 110 2 ; 110 3 ) for temporarily storing the data words ( 244 ; 318 ; 444 ); and an entropy coder ( 112 ) for encoding the data words ( 244 ; 318 ; 444 ) from the data word buffer into the encoded data stream. Vorrichtung gemäß Anspruch 4, bei der die Transformationskoeffizienten jeweils mittels der mehreren Betragsbits (252) sowie einem zugehörigen Vorzeichenbit (250) dargestellt sind, und der Vorkodierer (1081 ; 1083 ) derart ausgebildet ist, dass die Kodierung der vorbestimmten Betragsbits auch von dem diesem vorbestimmten Betragsbit zugehörigen Vorzeichenbit abhängt.Apparatus according to claim 4, wherein the transform coefficients are each determined by means of the plurality of magnitude bits ( 252 ) and an associated sign bit ( 250 ) and the precoder ( 108 1 ; 3 ) is designed such that the coding of the predetermined magnitude bits also depends on the sign bit associated with this predetermined magnitude bit. Vorrichtung gemäß Anspruch 5, bei der der Vorkodierer (1081 ; 1083 ) derart ausgebildet ist, dass die Kodierung der vorbestimmten Betragsbits auch von Vorzeichenbits abhängt, die den Betragsbits zugehörig sind, die zu den vorbestimmten Betragsbits benachbart sind.Apparatus according to claim 5, wherein the precoder ( 108 1 ; 3 ) such that the coding of the predetermined magnitude bits also depends on sign bits associated with the magnitude bits adjacent to the predetermined magnitude bits. Vorrichtung gemäß Anspruch 6, bei der der Vorkodierer (1081 ; 1083 ) derart ausgebildet ist, dass die Kodierung der vorbestimmten Betragsbits auch von ersten Statusbits (274) abhängt, die für die Transformationskoeffizienten, die durch die vorbestimmten Betragsbits und Betragsbits, die zu den vorbestimmten Betragsbits benachbart sind, dargestellt sind, eine Signifikanz bezogen auf die vorbestimmte Betragsbitebene anzeigen.Apparatus according to claim 6, wherein the precoder ( 108 1 ; 3 ) is formed such that the coding of the predetermined magnitude bits also of first status bits ( 274 ) indicative of significance to the predetermined magnitude bit-plane for the transform coefficients represented by the predetermined magnitude bits and magnitude bits adjacent to the predetermined magnitude bits. Vorrichtung gemäß einem der Ansprüche 5 bis 7, bei denen dem Vorkodierer (1081 ; 1083 ) der Zwischenspeicher (106) sowie der Bitextraktor (104) vorgeschaltet ist, wobei der Bitextraktor ausgebildet ist, um beim Durchlaufen der Betragsbits in Tupeln den Zwischenspeichers (106) mit einem Tupel einer Mehrzahl von benachbarten Betragsbits der vorbestimmten Betragsbitebene, das gemäß einer Reihenfolge des Durchlaufens frühestens als nächstes Tupel an der Reihe ist, zugehörigen Vorzeichenbits zu den Betragsbits des frühestens als nächstes an der Reihe seienden Tupels, und ersten Statusbits, die für die Transformationskoeffizienten, die durch eine Mehrzahl von benachbarten Betragsbits der vorbestimmten Betragsbitebene eines gemäß der Reihenfolge des Durchlaufens frühestens als übernächstes an der Reihe seiendes Tupels dargestellt sind, eine Signifikanz bezogen auf die vorbestimmte Betragsbitebene anzeigen, zu befüllen, wobei der Vorkodierer ausgebildet ist, um die Kodierung auf Basis eines Inhalts des Zwischenspeichers durchzuführen.Device according to one of Claims 5 to 7, in which the precoder ( 108 1 ; 3 ) the cache ( 106 ) as well as the Bitextraktor ( 104 ), wherein the bitextractor is designed in order to pass through the buffer memory (when passing through the magnitude bits in tuples). 106 ), having a tuple of a plurality of adjacent magnitude bits of the predetermined magnitude bit-plane, which according to an order of traversal at the earliest next tuple, corresponding sign bits to the magnitude bits of the earliest next-row tuple, and first status bits corresponding to the Transform coefficients indicated by a plurality of adjacent magnitude bits of the predetermined magnitude bit-plane of a tuple at the earliest next in order of traversal, indicating significance with respect to the predetermined magnitude bit-plane, the precoder configured to encode based on a content of the cache. Vorrichtung gemäß Anspruch 8, bei der der Bitextraktor (104) ausgebildet ist, um zur Befüllung des Zwischenspeichers (106) die ersten Statusbits (274) aus Betragsbits (276) zu ermitteln, die die gleichen Transformationskoeffizienten darstellen wie die Betragsbits des frühestens als übernächstes an der Reihe seienden Tupels, aber in signifikanteren Betragsbitebenen liegen als dieselben.Apparatus according to claim 8, wherein the bite extractor ( 104 ) is designed to fill the buffer ( 106 ) the first status bits ( 274 ) from amount bits ( 276 ), which are the same transform coefficients as the magnitude bits of the earliest next-in-order tuple, but in more significant magnitude bit-planes are the same. Vorrichtung gemäß Anspruch 8 oder 9, bei der der Bitextraktor (104) ausgebildet ist, um zur Befüllung des Zwischenspeichers (106) die Mehrzahl von benachbarten Betragsbits des frühestens als nächstes zu kodierenden Tupels und die dazugehörigen Vorzeichenbits durch einen Speicherzugriff (114) auf einen Speicher (102) zu erhalten, der die Betragsbits und Vorzeichenbits speichert.Apparatus according to claim 8 or 9, wherein the bitextractor ( 104 ) is designed to fill the buffer ( 106 ) the plurality of adjacent magnitude bits of the earliest next to be coded tuple and the associated sign bits by a memory access ( 114 ) to a memory ( 102 ), which stores the magnitude bits and sign bits. Vorrichtung gemäß Anspruch 9 oder 10, bei der der Zwischenspeicher ein Schieberegister (106) aufweist, das erste Statusbits (274), mit denen der Zwischenspeicher (106) gefüllt wird, erst nach mehr als fünf Schiebeoperationen verliert, und/oder Betragsbits (252), mit denen der Zwischenspeicher (106) gefüllt wird, erst nach mehr als drei Schiebeoperationen und/oder Vorzeichenbits (250), mit denen der Zwischenspeicher (106) befüllt wird, erst nach mehr als vier Schiebeoperationen verliert.Device according to claim 9 or 10, in which the buffer stores a shift register ( 106 ), the first status bits ( 274 ), with which the cache ( 106 ), only after more than five shift operations loses, and / or amount bits ( 252 ), with which the cache ( 106 ) after more than three shift operations and / or sign bits ( 250 ), with which the cache ( 106 ) is filled, only after loses more than four shift operations. Vorrichtung gemäß einem der Ansprüche 7 bis 11, bei der der Vorkodierer (1081 ), eine Betragsbitvorkodiereinheit (202), die ausgebildet ist, um auf Basis eines zugeführten Betragsbits unter den benachbarten Betragsbits eines gemäß einer Reihenfolge des Durchlaufens aktuell an der Reihe seienden Tupels (282), und ersten Statusbits (290) für die Transformationskoeffizienten, die durch eine erste Mehrzahl von Betragsbits der vorbestimmten Betragsbitebene dargestellt sind, die zu dem zugeführten Betragsbit benachbart sind, ein erstes Teildatenwort zu erzeugen, aus dem das zugeführte Betragsbit (232) sowie ein zugehöriger Betragsbitkontext (236) ermittelbar ist, und eine Vorzeichenbitvorkodiereinheit (208), die ausgebildet ist, um auf Basis des dem zugeführten Betragsbit zugehörigen Vorzeichenbits (250); von einer zweiten Mehrzahl von Betragsbits der vorbestimmten Betragsbitebene, die zu dem zugeführten Betragsbit benachbart sind, zugehörigen Vorzeichenbits (294); und der ersten Statusbits (290) für die Transformationskoeffizienten, die durch die zweite Mehrzahl von Betragsbits der vorbestimmten Betragsbitebene dargestellt sind, ein zweites Teildatenwort zu erzeugen, aus dem das dem zugeführten Betragsbit zugehörige Vorzeichenbit (234) sowie ein zugehöriger Vorzeichenbitkontext (236) ermittelbar sind, aufweist, und derart ausgebildet ist, dass das Datenwort (244) des zugeführten Betragsbits das erste Teildatenwort und das zweite Teildatenwort umfasst, und wobei der Entropiekodierer (112) ausgebildet ist, um aus dem ersten Teildatenwort das zugeführte Betragsbit sowie den zugehörigen Betragsbitkontext zu ermitteln und das zugeführte Betragsbit unter Verwendung des zugeführten Betragsbitkontexts kontext-abhängig arithmetisch in den Datenstrom zu kodieren, und, falls der zugeführte Betragsbit signifikant ist, aus dem zweiten Teildatenwort, das dem zugeführten Betragsbit zugehörige Vorzeichenbit sowie den demselben zugehörigen Vorzeichenbitkontext zu ermitteln und das dem zugeführten Betragsbit zugehörige Vorzeichenbit unter Verwendung des zugehörigen Vorzeichenbitkontexts kontextabhängig arithmetisch in den Datenstrom zu kodieren.Device according to one of Claims 7 to 11, in which the precoder ( 108 1 ), an amount bit precoding unit ( 202 ), which is designed to determine on the basis of an input amount bits among the adjacent magnitude bits of a tuple currently in line according to an order of passage ( 282 ), and first status bits ( 290 ) for the transform coefficients represented by a first plurality of magnitude bits of the predetermined magnitude bit plane adjacent to the supplied magnitude bit to generate a first sub-data word from which the supplied magnitude bits ( 232 ) and an associated amount bit context ( 236 ) and a sign bit precoding unit ( 208 ) which is adapted to be based on the sign bit associated with the supplied magnitude bit ( 250 ); of a second plurality of magnitude bits of the predetermined magnitude bit plane which are adjacent to the inputted magnitude bit, sign bits (FIG. 294 ); and the first status bits ( 290 ) for the transform coefficients represented by the second plurality of magnitude bits of the predetermined magnitude bit plane, to generate a second sub-data word from which the sign bit associated with the input magnitude bit ( 234 ) and an associated sign bit context ( 236 ) are determinable, and is designed such that the data word ( 244 ) of the supplied magnitude bits comprises the first sub-data word and the second sub-data word, and wherein the entropy coder ( 112 ) is configured to determine from the first partial data word the supplied amount bit and the associated magnitude bit context and encode the supplied amount bit using the supplied amount bit context context-dependent arithmetic in the data stream, and, if the supplied amount bit is significant, from the second sub-data word to determine the sign bit associated with the supplied magnitude bit as well as the same sign bit context associated therewith, and to arithmetically code the sign bit associated with the supplied magnitude bit using the associated sign bit context context-dependently into the data stream. Vorrichtung gemäß Anspruch 12, bei der der Vorkodierer (108) eine Multiplexschaltung aufweist, die eine erste Multiplexerschaltung (204), der durch ein Steuersignal ein beliebiges der Betragsbits des gerade an der Reihe seienden Tupels (282) anzeigbar ist, und die ausgebildet ist, um das angezeigte Betragsbit als das zugeführte Betragsbit der Betragsbitvorkodiereinheit (202) zuzuführen; eine zweite Multiplexerschaltung (206, 212), die durch das Steuersignal steuerbar ist, um die ersten Statusbits (290) für Transformationskoeffizienten, die durch eine dritte Mehrzahl von Betragsbits der vorbestimmten Betragsbitebene dargestellt sind, die zu dem angezeigten Betragsbit benachbart sind, als die ersten Steuerbits für die Transformationskoeffizienten, die durch die erste Mehrzahl von Betragsbits dargestellt sind, der Betragsbitvorkodiereinheit (202) zuzuführen, und die ersten Statusbits (290) für Transformationskoeffizienten, die durch eine vierte Mehrzahl von Betragsbits der vorbestimmten Betragsbitebene dargestellt sind, die zu dem angezeigten Betragsbit benachbart sind, als die ersten Steuerbits für die Transformationskoeffizienten, die durch die zweite Mehrzahl von Betragsbits dargestellt sind, der Vorzeichenbitvorkodiereinheit (208) zuzuführen; eine dritte Multiplexereinheit (210), die durch das Steuersignal steuerbar ist, um die dem angezeigten Betragsbit und der vierten Mehrzahl von Betragsbits der vorbestimmten Betragsbitebene zugehörigen Vorzeichenbits (294) als das dem vorgegebenen Betragsbit zugehörige Vorzeichenbit und die der zweiten Mehrzahl von Betragsbits zugehörigen Vorzeichenbits der Vorzeichenbitvorkodiereinheit (208) zuzuführen, aufweist.Apparatus according to claim 12, wherein the precoder ( 108 ) comprises a multiplex circuit comprising a first multiplexer circuit ( 204 ) which, by means of a control signal, is any one of the magnitude bits of the tuple currently in the row ( 282 ) and which is arranged to derive the indicated magnitude bit as the supplied magnitude bit of the magnitude bit pre-encoding unit ( 202 ); a second multiplexer circuit ( 206 . 212 ), which is controllable by the control signal to the first status bits ( 290 ) for transform coefficients represented by a third plurality of magnitude bits of the predetermined magnitude bit plane adjacent to the displayed magnitude bit as the first control bits for the transform coefficients represented by the first plurality of magnitude bits, the magnitude bits precoding unit (FIG. 202 ), and the first status bits ( 290 ) for transform coefficients represented by a fourth plurality of magnitude bits of the predetermined magnitude bit plane adjacent to the displayed magnitude bit as the first control bits for the transform coefficients represented by the second plurality of magnitude bits, the sign bit precoding unit (FIG. 208 ); a third multiplexer unit ( 210 ) controllable by the control signal to correspond to the sign bits (16) associated with the displayed magnitude bit and the fourth plurality of magnitude bits of the predetermined magnitude bit-plane ( 294 ) as the sign bit associated with the predetermined magnitude bit and the sign bits of the sign bit precoding unit sign associated with the second plurality of magnitude bits ( 208 ). Vorrichtung gemäß einem der Ansprüche 7 bis 13, bei der der Vorkodierer (1081 ; 1083 ) eine Vorhersageeinrichtung (200; 400) zum Vorhersagen aufweist, ob und, wenn ja, welcher der Betragsbits unter den benachbarten Betragsbits der vorbestimmten Betragsbitebene eines gemäß der Reihenfolge des Durchlaufens als nächstes an der Reihe seienden Tupels (2745,2 bis 2745,5 ; 2743,2 bis 2743,5 ) zu den vorbestimmten Betragsbits gehört, wobei die Vorhersageeinrichtung ausgebildet ist, die Vorhersage auf Basis der Betragsbits (282) der vorbestimmten Betragsbitebene des als nächstes an der Reihe seienden Tupels und des aktuell an der Reihe seienden Tupels und der ersten Statusbits (284; 504) für die Transformationskoeffizienten, die durch die Betragsbits der vorbestimmten Betragsbitebene des als nächstes an der Reihe seienden Tupels, des aktuell an der Reihe seienden Tupels und des als übernächstes an der Reihe seienden Tupels dargestellt sind, zu treffen.Device according to one of Claims 7 to 13, in which the precoder ( 108 1 ; 3 ) a predictor ( 200 ; 400 ) for predicting whether and, if so, which of the magnitude bits among the adjacent magnitude bits of the predetermined magnitude bit-plane of a tuple next in line according to the order of traversal ( 274 5.2 to 274 5.5 ; 274 3.2 to 274 3.5 ) to the predetermined magnitude bits, the predicting means being adapted to calculate the prediction on the basis of the magnitude bits ( 282 ) of the predetermined magnitude bit-plane of the next-ranked tuple and the currently-ranked tuple and the first status bits (FIG. 284 ; 504 ) for the transform coefficients represented by the magnitude bits of the predetermined magnitude bit-plane of the next-ranked tuple, the currently-ranked tuple, and the next-to-next-ranked tuple. Vorrichtung gemäß Anspruch 14, bei der die Vorhersageeinrichtung (200) derart ausgebildet ist, dass die Vorhersage, ob und, wenn ja, welcher der Betragsbits unter den benachbarten Betragsbits der vorbestimmten Betragsbitebene eines gemäß der Reihenfolge des Durchlaufens als nächstes an der Reihe seienden Tupels zu den vorbestimmten Betragsbits gehört, auch von einer vorherigen Vorhersage (218) der Vorhersageeinrichtung abhängt, ob und wenn ja, welche der Betragsbits unter den benachbarten Betragsbits der vorbestimmten Betragsbitebene eines gemäß der Reihenfolge des Durchlaufens aktuell an der Reihe seienden Tupels zu dem vorbestimmten Betragsbit gehört.Device according to Claim 14, in which the predicting device ( 200 ) is arranged such that the prediction of whether and, if so, which of the magnitude bits among the adjacent magnitude bits of the predetermined magnitude bit-plane of a next-in-order tuple according to the order of traversal belongs to the predetermined magnitude bits also depends on a previous prediction ( 218 ) of the predictor depends on whether and, if so, which of the magnitude bits are below the adjacent magnitude bits of the predetermined magnitude bits ne of a tuple currently in line according to the order of traversal belongs to the predetermined magnitude bit. Vorrichtung gemäß Anspruch 14, bei der die Vorhersageeinrichtung (200) derart ausgebildet ist, dass die Vorhersage, ob und, wenn ja, welcher der Betragsbits unter den benachbarten Betragsbits der vorbestimmten Betragsbitebene eines gemäß der Reihenfolge des Durchlaufens als nächstes an der Reihe seienden Tupels zu dem vorbestimmten Betragsbit gehört, auch von ersten Statusbits (2743,2 bis 2743,5 ) für die Transformationskoeffizienten abhängt, die durch die Betragsbits der vorbestimmten Betragsbitebene des gemäß der Reihenfolge des Durchlaufens zuletzt an der Reihe gewesenen Tupels dargestellt sind.Device according to Claim 14, in which the predicting device ( 200 ) is configured such that the prediction of whether and, if so, which of the magnitude bits among the adjacent magnitude bits of the predetermined magnitude bit-plane of a next-in-order tuple according to the order of traversal belongs to the predetermined magnitude bit also of first status bits ( 274 3.2 to 274 3.5 ) for the transform coefficients represented by the magnitude bits of the predetermined magnitude bit-plane of the most recently ranked tuple according to the order of traversal. Vorrichtung gemäß einem der Ansprüche 14 bis 16, bei der die Vorhersageeinrichtung (200) ausgebildet ist, um ein Ergebnis der Vorhersage in Form eines Bitvektors (218) auszugeben, der pro Betragsbit des als nächstes an der Reihe seienden Tupels ein Vektorbit (iae, jae, kae, lae) aufweist, das die Zugehörigkeit oder Nicht-Zugehörigkeit des jeweiligen Betragsbits des als nächstes an der Reihe seienden Tupels anzeigt.Device according to one of Claims 14 to 16, in which the prediction device ( 200 ) is adapted to produce a result of the prediction in the form of a bit vector ( 218 ) outputting a vector bit (i ae , j ae , k ae , l ae ) indicative of membership or disagreement of the respective magnitude bit of the next-ranked tuple per magnitude bit of the next-ranked tuple , Vorrichtung gemäß einem der Ansprüche 14 bis 17, bei der der Vorkodierer (1081 ) ferner einen Schiebeimpulsgenerator (200, 220) aufweist, der ausgebildet ist, um auf Basis der Betragsbits der vorbestimmten Betragsbitebenen des als nächstes an der Reihe seienden Tupels und des aktuell an der Reihe seienden Tupels und der ersten Steuerbits für Transformationskoeffizienten, die durch Betragsbits der vorbestimmten Betragsbitebene des als nächstes an der Reihe seienden Tupels, des aktuell an der Reihe seienden Tupels und des als übernächstes an der Reihe seienden Tupels dargestellt sind, vorherzusagen, wie viele der Betragsbits unter den benachbarten Betragsbit der vorbestimmten Betragsbitebene des als nächstes an der Reihe seienden Tupels zu den vorbestimmten Betragsbits gehören, und basierend auf der vorhergesagten Anzahl und einem Verarbeitungstakt, in Einheiten wessen die Kodierung der vorbestimmten Betragsbits in Datenworte durchgeführt wird, um keinen, einen oder mehrere Taktzyklen des Verarbeitungstaktes verzögert, ein Schiebeimpuls an ein Schieberegister (106) auszugeben.Device according to one of claims 14 to 17, wherein the precoder ( 108 1 ) further comprises a shift pulse generator ( 200 . 220 ) adapted to be based on the magnitude bits of the predetermined magnitude bit planes of the next ranked tuple and the currently ranked tuple and the first transform coefficient control bits, which are next in magnitude by magnitude bits of the predetermined magnitude bitplane representing the tuples currently being ranked and the tuple next in line, predict how many of the magnitude bits among the adjacent magnitude bits of the predetermined magnitude bit-plane of the next-ranked tuple belong to the predetermined magnitude bits, and based on the predicted number and a processing clock in units of which the encoding of the predetermined magnitude bits in data words is performed to delay no, one or more clock cycles of the processing clock, a shift pulse to a shift register ( 106 ). Vorrichtung gemäß einem der Ansprüche 7 bis 18, bei der der Vorkodierer (1081 ; 1083 ) ferner eine Multiplexeransteuerung (422, 222) aufweist, die ausgebildet ist, um an eine Multiplexerschaltung (204, 206, 210, 212) ein Steuersignal auszugeben, das in einer vorbestimmten Reihenfolge unter den benachbarten Betragsbits eines aktuell an der Reihe seienden Tupels sequentiell diejenigen Betragsbits anzeigt, die zu den vorbestimmten Betragsbits gehören.Device according to one of Claims 7 to 18, in which the precoder ( 108 1 ; 3 ) a multiplexer drive ( 422 . 222 ), which is designed to be connected to a multiplexer circuit ( 204 . 206 . 210 . 212 ) output a control signal sequentially indicating, in a predetermined order among the adjacent magnitude bits of a currently ranked tuple, those magnitude bits belonging to the predetermined magnitude bits. Vorrichtung gemäß einem der Ansprüche 4 bis 19, bei der der Vorkodierer (1081 , 1082 , 1083 ) ausgebildet ist, um beim Durchlaufen auch jeweils ein Datenwort für Tupel zu erzeugen, unter dessen benachbarten Betragsbits keines zu den vorbestimmten Betragsbits gehört, und ein Gültigkeitsbit (246; 320; 446) abhängig davon zu setzen, ob sich unter den Betragsbits in einem gemäß der Reihenfolge des Durchlaufens aktuell an der Reihe seienden Tupels ein vorbestimmtes Betragsbit befindet, und der Datenwortzwischenspeicher (1101 ; 1102 ; 1103 ) ausgebildet ist, um nur in dem Fall eines gesetzten Gültigkeitsbits das jeweilige Datenwort (244; 318; 444) zwischenzuspeichern oder dann, wenn das jeweilige Datenwort (244; 318; 444) für das letzte Tupel in der vorbestimmten Betragsbitebene erzeugt worden ist.Device according to one of Claims 4 to 19, in which the precoder ( 108 1 . 108 2 . 3 ) is designed to also generate a data word for tuples during its passage, under whose adjacent magnitude bits none of the predetermined magnitude bits belongs, and a validity bit ( 246 ; 320 ; 446 ) depending on whether there is a predetermined amount bit among the magnitude bits in a tuple currently in line according to the order of the run, and the data word buffer ( 110 1 ; 110 2 ; 110 3 ) is designed so that only in the case of a set validity bit the respective data word ( 244 ; 318 ; 444 ) or when the respective data word ( 244 ; 318 ; 444 ) has been generated for the last tuple in the predetermined amount bit plane. Vorrichtung gemäß einem der Ansprüche 5 bis 20, bei der der Vorkodierer (1081 , 1082 , 1083 ) derart ausgebildet ist, dass das Durchlaufen der Betragsbits der vorbestimmten Betragsbitebene streifenweise erfolgt, derart, dass die benachbarten Bits jedes Tupels in einer Spalte des Blocks liegen, und unmittelbar aufeinander folgende Tupel Spalte an Spalte nebeneinander liegen oder in unmittelbar benachbarten Streifen von Zeilen des Blocks mit einem der beiden Tupel an einem Ende eines der unmittelbar benachbarten Streifen und dem anderen der beiden Tupel an einem gegenüberliegenden Ende des anderen der unmittelbar benachbarten Streifen.Device according to one of Claims 5 to 20, in which the precoder ( 108 1 . 108 2 . 3 ) is arranged such that it traverses the amount bits of the predetermined magnitude bit plane in stripes such that the adjacent bits of each tuple are in one column of the block, and contiguous tuple columns are adjacent to one another in columns or in immediately adjacent strips of rows of the block with one of the two tuples at one end of one of the immediately adjacent strips and the other of the two tuples at an opposite end of the other of the immediately adjacent strips. Vorrichtung gemäß einem der Ansprüche 5 bis 21, bei der der Vorkodierer (1081 , 1082 , 1083 ) derart ausgebildet ist, dass derselbe auf das Durchlaufen der vorbestimmten Betragsbitebene hin eine weniger signifikante Betragsbitebene durchläuft und die vorbestimmten Betragsbits der weniger signifikanten Betragsbitebene in Datenworte kodiert.Device according to one of Claims 5 to 21, in which the precoder ( 108 1 . 108 2 . 3 ) is configured such that it passes through a less significant amount bit plane upon passing through the predetermined amount bit plane and encodes the predetermined magnitude bits of the less significant amount bit plane into data words. Vorrichtung gemäß einem der Ansprüche 5 bis 22, bei der der Vorkodierer (1081 , 1083 ) derart ausgebildet ist, dass derselbe für jedes vorbestimmte Betragsbit ein Bypass-Modus-Bit (240, 440) des jeweiligen Daten- worts abhängig von einer Bittiefe einstellt, die der vorbestimmten Betragsbitebene zugeordnet ist.Device according to one of Claims 5 to 22, in which the precoder ( 108 1 . 3 ) is designed such that, for each predetermined magnitude bit, it carries a bypass mode bit ( 240 . 440 ) of the respective data word depending on a bit depth assigned to the predetermined amount bit plane. Vorrichtung gemäß Anspruch 7, bei der der Vorkodierer, derart ausgebildet ist, dass die Kodierung jedes Tupels einer Mehrzahl von benachbarten Betragsbits auch von ersten Statusbits (274) abhängt, die für die Transformationskoeffizienten, die durch die vorbestimmten Betragsbits und Betragsbits, die zu den vorbestimmten Betragsbits benachbart sind, dargestellt sind, eine Signifikanz bezogen auf die vorbestimmte Betragsbitebene anzeigen, sowie von zweiten Statusbits (280), die für die Transformationskoeffizienten, die durch vorbestimmte Betragsbits dargestellt sind, anzeigen, ob für den jeweiligen Transformationskoeffizienten zwei oder mehr als zwei Betragsbits unter den Betragsbits, die die jeweiligen Transformationskoeffizienten darstellen und sich in signifikanteren Betragsbitebenen befinden als die vorbestimmte Betragsbitebene, existieren, die signifikant sind.Apparatus according to claim 7, wherein the precoder is arranged such that the coding of each tuple of a plurality of adjacent magnitude bits also of first status bits ( 274 ) indicative of significance to the predetermined magnitude bit plane for the transform coefficients represented by the predetermined magnitude bits and magnitude bits adjacent the predetermined magnitude bits, and second status bits (Fig. 280 ), which for the transformation coefficients determined by predetermined Be trage bits, indicate whether there are two or more magnitude bits among the magnitude bits representing the respective transform coefficients and being in more significant magnitude bit-planes than the predetermined magnitude bit-plane, which are significant, for the respective transform coefficients. Vorrichtung gemäß Anspruch 24, bei der der Vorkodierer (1082 ) pro Betragsbit der Mehrzahl von benachbarten Betragsbits der Tupel eine Betragsbitvorkodiereinheit (302# ) aufweist, die ausgebildet ist, um auf Basis des jeweiligen Betragsbits unter den benachbarten Betragsbits eines gemäß einer Reihenfolge des Durchlaufens aktuell an der Reihe seienden Tupels (322), der ersten Statusbits (324) für die Transformationskoeffizienten, die durch eine siebte Mehrzahl von Betragsbits der vorbestimmten Betragsbitebene dargestellt sind, die zu dem jeweiligen Betragsbit benachbart sind, und des zweiten Statusbits (280) für den Transformationskoeffizienten, der durch das jeweilige Betragsbit dargestellt ist, ein jeweiliges Teildatenwort zu erzeugen, aus dem das jeweilige Betragsbit (310) sowie ein zugehöriger Betragsbitkontext (312) ermittelbar ist, aufweist und derart ausgebildet ist, dass die Teildatenworte gemeinsam das Datenwort (318) des oder der vorbestimmten Betragsbits des aktuell an der Reihe seienden Tupels ergeben, und dass ausschließlich anhand des Datenworts ermittelbar ist, welche der Teildatenworte für Betragsbits erzeugt worden sind, die zu den vorbestimmten Betragsbits gehören, wobei der Entropiekodierer ausgebildet ist, um aus den Teildatenworten zu ermitteln, welche derselben für Betragsbits, die zu den vorbestimmten Betragsbits gehören, erzeugt wurden, und aus diesen das jeweilige Betragsbit sowie den dazugehörigen Betragsbitkontext zu ermitteln, und das jeweilige Betragsbit unter Verwendung des zugehörigen Betragsbitkontexts kontextabhängig arithmetisch in den Datenstrom zu kodieren.Apparatus according to claim 24, wherein the precoder ( 108 2 ) an amount bit precoding unit (s) per magnitude bit of the plurality of adjacent magnitude bits of the tuples 302 # ) arranged to be based on the respective magnitude bits among the adjacent magnitude bits of a tuple currently in line according to an order of traversal ( 322 ), the first status bits ( 324 ) for the transform coefficients represented by a seventh plurality of magnitude bits of the predetermined magnitude bit plane adjacent to the respective magnitude bits and the second status bit (Fig. 280 ) for the transformation coefficient represented by the respective magnitude bit to generate a respective partial data word from which the respective magnitude bit ( 310 ) and an associated amount bit context ( 312 ) can be determined, and is designed such that the partial data words together the data word ( 318 ) of the predetermined magnitude bit of the currently ranked tuple, and that it is possible to determine only from the data word which of the partial data words have been generated for magnitude bits belonging to the predetermined magnitude bits, the entropy encoder being arranged to extract from the partial data words to determine which of them have been generated for magnitude bits belonging to the predetermined magnitude bits, and to determine therefrom the respective magnitude bit and the associated magnitude bit context, and arithmetically code the respective magnitude bit into the data stream using the associated magnitude bit context context-dependently. Vorrichtung gemäß Anspruch 25, bei der Vorkodierer eine Vorhersageeinrichtung (300) zum Vorhersagen aufweist, ob, und, wenn ja, welcher oder welche der Betragsbits unter den benachbarten Betragsbits der vorbestimmten Betragsbitebene eines gemäß der Reihenfolge des Durchlaufens als frühestens übernächstes an der Reihe seienden Tupels zu den vorbestimmten Betragsbits gehört, wobei die Vorhersageeinrichtung ausgebildet ist, um die Vorhersage auf Basis der ersten Statusbits für die Transformationskoeffizienten, die durch die Betrags bits der vorbestimmten Betragsbitebene eines frühestens übernächstes an der Reihe seienden Tupels dargestellt sind, zu treffen.Apparatus according to claim 25, wherein the precoder includes a predictor ( 300 ) for predicting whether, and if so, which one or more of the magnitude bits among the adjacent magnitude bits of the predetermined magnitude bit-plane of a tuple at the earliest next in the order of running belongs to the predetermined magnitude bits, the predicting means being arranged; to make the prediction based on the first status bits for the transform coefficients represented by the magnitude bits of the predetermined magnitude bit-plane of an earliest next-in-line-ranked tuple. Vorrichtung gemäß Anspruch 14, bei der der Vorkodierer (1083 ), eine Lauflängenkodiereinheit (500), die basierend auf einem Vorhersageergebnis (418) der Vorhersageinrichtung (400) in dem Zustand, bei dem das als nächstes an der Reihe seiende Tupel aktuell an die Reihe kommt, ein Lauflängenteildatenwort (446) erzeugt, aus dem ermittelbar ist, wie viele der Betragsbits des an die Reihe kommenden Tupels in einer vorbestimmten Betragsbitreihenfolge unter denselben durchgehend insignifikant sind, sowie, falls einer der Betragsbits des an die Reihe kommenden Tupels existiert, der signifikant ist und nicht das erste Betragsbit in diesem Tupel in der Betragsbitreihenfolge ist, an welcher Position sich das in der Betragsbitreihenfolge erste signifikante Betragsbit befindet, eine Koeffizientenwählereinheit (422), die ausgebildet ist, um basierend auf einem Vorhersageergebnis (418) der Vorhersageinrichtung (400) in dem Zustand, bei dem das als nächstes an der Reihe seiende Tupel aktuell an die Reihe kommt, ein Steuersignal auszugeben, das in der Betragsbitreihenfolge sequentiell das in der Betragsbitreihenfolge erste signifikante Betragsbit und die auf das in der Betragsbitreihenfolge erste signifikante Betragsbit folgenden Betragsbits des an die Reihe kommenden Tupels vorgibt, und eine Betragsbitvorkodiereinheit (402), die ausgebildet ist, um abhängig von dem Steuersignal jeweils auf Basis eines jeweils vorgegebenen Betragsbits unter den benachbarten Betragsbits des an die Reihe kommenden Tupels, und ersten Statusbits (510) für die Transformationskoeffizienten, die durch eine erste Mehrzahl von Betragsbits der vorbestimmten Betragsbitebene dargestellt sind, die zu dem jeweils vorgegebenen Betragsbit benachbart sind, ein erstes Teildatenwort zu erzeugen, aus dem das jeweils vorgegebene Betragsbit (432) sowie ein zugehöriger Betragsbitkontext (436) ermittelbar ist, und eine Vorzeichenbitvorkodiereinheit (408), die ausgebildet ist, um abhängig von dem Steuersignal auf Basis des dem jeweils vorgegebenen Betragsbit zugehörigen Vorzeichenbit; von einer zweiten Mehrzahl von Betragsbits der vorbestimmten Betragsbitebene, die zu dem jeweils vorgegebenen Betragsbit benachbart sind, zugehörigen Vorzeichenbits (510); und der ersten Statusbits (508) für die Transformationskoeffizienten, die durch die zweite Mehrzahl von Betragsbits der vorbestimmten Betragsbitebene dargestellt sind, ein zweites Teildatenwort zu erzeugen, aus dem das dem jeweils vorgegebenen Betragsbit zugehörige Vorzeichenbit (434) sowie ein zugehöriger Vorzeichenbitkontext (436) ermittelbar sind, aufweist, und derart ausgebildet ist, dass eines der Datenwörter (444) das erste Teildatenwort, das zweite Teildatenwort und das Lauflängendatenwort umfasst, und wobei der Entropiekodierer (112) ausgebildet ist, um aus dem Lauflängendatenwort (446) eine Information über die in der vorbestimmten Betragsbitreihenfolge durchgehend insignifikanten Betragsbits zu ermitteln und arithmetisch in den Datenstrom zu kodieren, aus dem ersten Teildatenwort – außer in dem Fall des in der Betragsbitreihenfolge ersten signifikanten Betragsbits – das jeweils vorgegebene Betragsbit sowie den zugehörigen Betragsbitkontext zu ermitteln und das jeweils Betragsbit unter Verwendung des zugeführten Betragsbitkontexts kontext-abhängig arithmetisch in den Datenstrom zu kodieren, und, falls das jeweils vorgegebene Betragsbit signifikant ist, – auch in dem Fall des in der Betragsbitreihenfolge ersten signifikanten Betragsbits – aus dem zweiten Teildatenwort, das dem jeweils vorgegebenen Betragsbit zugehörige Vorzeichenbit sowie den demselben zugehörigen Vorzeichenbitkontext zu ermitteln und das dem jeweils vorgegebenen Betragsbit zugehörige Vorzeichenbit unter Verwendung des zugehörigen Vorzeichenbitkontexts kontextabhängig arithmetisch in den Datenstrom zu kodieren.Apparatus according to claim 14, wherein the precoder ( 3 ), a run length encoding unit ( 500 ) based on a prediction result ( 418 ) of the prediction device ( 400 ) in the state where the next-ranked tuple is next in line, a run length data word ( 446 ) from which it is possible to determine how many of the magnitude bits of the ranked tuple in a predetermined magnitude bit order among them are consistently insignificant, and if one of the magnitude bits of the ranked tuple exists, which is significant rather than the first magnitude bit in this tuple in the magnitude bit order, at which position the first significant magnitude bit in the magnitude bit order is, a coefficient selector unit ( 422 ), which is designed to be based on a prediction result ( 418 ) of the prediction device ( 400 ) in the state where the next-ranked tuple is currently at issue, output a control signal sequentially in the magnitude bit order, the first significant magnitude bit in the magnitude bit order and the magnitude bit following the first significant magnitude bit in the magnitude bit order pretending tuple, and a magnitude bit precoding unit ( 402 ) which is adapted to generate, in dependence on the control signal, in each case on the basis of a respective predetermined magnitude bit among the adjacent magnitude bits of the series-coming tuple, and first status bits ( 510 ) for the transform coefficients represented by a first plurality of magnitude bits of the predetermined magnitude bit plane adjacent to the respective predetermined magnitude bits to generate a first sub-data word from which the respective predetermined magnitude bits ( 432 ) and an associated amount bit context ( 436 ) and a sign bit precoding unit ( 408 ) which is designed to be dependent on the control signal on the basis of the sign bit associated with the respective predetermined magnitude bit; of a second plurality of magnitude bits of the predetermined magnitude bit plane which are adjacent to the respective magnitude bit, associated sign bits ( 510 ); and the first status bits ( 508 ) for the transform coefficients, which are represented by the second plurality of magnitude bits of the predetermined magnitude bit plane, to generate a second sub-data word, from which the sign bit associated with the respective predetermined magnitude bit ( 434 ) and an associated sign bit context ( 436 ) are determinable, and is designed such that one of the data words ( 444 ) the first partial data word, the two te part data word and the runlength data word comprises, and wherein the entropy ( 112 ) is designed to extract from the runlength data word ( 446 ) to determine information about the amount bits insignificant in the predetermined magnitude bit order and encode it arithmetically into the data stream, from the first partial data word - except in the case of the first significant magnitude bits in the magnitude bit order - determine the respectively given magnitude bit and the associated magnitude bit context and encode the respective magnitude bit arithmetically into the data stream using the supplied magnitude bit context, and, if the respective predetermined magnitude bit is significant, also in the case of the first significant magnitude bit in the magnitude bit order, from the second partial data word corresponding to the respectively predetermined one Determine amount bit associated sign bit and the same sign bit context associated and the associated each bit of the given amount bit sign bit using the associated sign bit context context-dependent arithmetic to encode in the data stream. Vorrichtung gemäß einem der Ansprüche 5 bis 27, wobei der Vorkodierer ferner ausgebildet ist, um beim Durchlaufen andere, zu den vorbestimmten Betragsbits unterschiedliche Betragsbits der Tupel in weitere Datenwörter derart zu kodieren, dass eines der anderen Betragsbits zusammen mit einem zugeordneten Vorzeichenbit in eines der Datenwörter (244; 444) kodiert wird, oder dass eines der anderen Betragsbits zusammen mit einem anderen der anderen Betragsbits des gleichen Tupels in eines der Datenwörter (318; 444) kodiert wird, wobei die Vorrichtung ferner einen weiteren Zwischenspeicher zum Zwischenspeichern der weiteren Datenworte aufweist, und der Entropiekodierer ausgebildet ist, um zunächst die Datenworte in dem Zwischenspeicher und dann die weiteren Datenworte in dem weiteren Zwischenspeicher in den kodierten Datenstrom zu kodieren.The apparatus of any one of claims 5 to 27, wherein the precoder is further configured to encode other magnitude bits of the tuples other than the predetermined magnitude bits into further data words such that one of the other magnitude bits together with an associated sign bit in one of the data words ( 244 ; 444 ), or one of the other magnitude bits together with another of the other magnitude bits of the same tuple in one of the data words ( 318 ; 444 ), wherein the device further comprises a further latch for latching the further data words, and the entropy coder is adapted to first encode the data words in the buffer and then the further data words in the further buffer in the coded data stream. Verfahren zum Kodieren eines Blockes (34) von Transformationskoeffizienten, wobei die Transformationskoeffizienten jeweils mittels mehrerer Betragsbits (252) dargestellt sind, so dass dieselben eine Folge von Betragsbitebenen (381 ...38n ) definieren, mit folgenden Schritten: Durchlaufen der Betragsbits einer vorbestimmten der Betragsbitebenen (381 ....38n ) unter Kodieren vorbestimmter der Betragsbits in einen kodierten Datenstrom, unter Durchführung folgender Schritte: bei Durchlaufen der Betragsbits, Ermitteln erster Statusbits, die für die Transformationskoeffizienten, die durch Betragsbits der vorbestimmten Betragsbitebene dargestellt sind, die gemäß einer Reihenfolge des Durchlaufens frühestens als nächstes an der Reihe sind, eine Signifikanz bezogen auf die vorbestimmte Betragsbitebene anzeigen, aus Betragsbits, die die gleichen Transformationskoeffizienten darstellen wie die frühestens als nächstes an der Reihe seienden Betragsbits aber in signifikanteren Bitebenen liegen als dieselben; Befüllen eines Zwischenspeichers mit den ermittelten ersten Statusbits; und Kodieren der vorbestimmten Betragsbits in den kodierten Datenstrom unter Verwendung der ersten Statusbits in dem Zwischenspeicher (106), wobei in dem Zwischenspeicher zu jedem Zeitpunkt die ersten Statusbits nur für einen Ausschnitt der Transformationskoeffizienten gespeichert werden, und wobei auf das Durchlaufen der vorbestimmten Betragsbitebene hin eine weniger signifikante Betragsbitebene durchlaufen wird, und zwar unter Kodierung der vorbestimmten Betragsbits der weniger signifikanten Betragsbitebene in den Datenstrom und unter erneuter Ermittlung der ersten Statusbits und erneuter Befüllung des Zwischenspeichers.Method for coding a block ( 34 ) of transform coefficients, wherein the transform coefficients are each determined by means of several magnitude bits ( 252 ), so that they are a sequence of amount bit planes ( 38 1 ... 38 n ), comprising the steps of: traversing the magnitude bits of a predetermined one of the magnitude bit-planes ( 38 1 .... 38 n by encoding predetermined ones of the magnitude bits into a coded data stream, by performing the steps of: by passing the magnitude bits, determining first status bits representing the transform coefficients represented by magnitude bits of the predetermined magnitude bit-plane which, at the earliest, next at the Rows are, indicative of significance to the predetermined magnitude bit-plane, of magnitude bits representing the same transform coefficients as the earliest next-ranked magnitude bits but at more significant bit-planes than the same; Filling a buffer with the determined first status bits; and encoding the predetermined magnitude bits into the encoded data stream using the first status bits in the buffer ( 106 ), wherein the first status bits are stored in the cache for only a portion of the transform coefficients at any one time, and passing through the predetermined magnitude bit plane through a less significant magnitude bit plane encoding the predetermined magnitude bits of the less significant magnitude bit plane into the first Data stream and again determining the first status bits and refilling the buffer. Programm mit einem Programmcode zum Durchführen des Verfahrens nach Anspruch 29, wenn das Programm auf einem Prozessor abläuft.Program with a program code for performing the The method of claim 29 when the program is on a processor expires.
DE200610061648 2006-12-27 2006-12-27 Transform coefficient block coding Expired - Fee Related DE102006061648B4 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE200610061648 DE102006061648B4 (en) 2006-12-27 2006-12-27 Transform coefficient block coding
US12/521,276 US20100111432A1 (en) 2006-12-27 2007-12-10 Device and Method for Coding a Transformation Coefficient Block
PCT/EP2007/010756 WO2008080516A1 (en) 2006-12-27 2007-12-10 Device and method for encoding a block of transformation coefficients
EP07856524A EP2109993B1 (en) 2006-12-27 2007-12-10 Device and method for encoding a block of transformation coefficients
JP2009543355A JP4745445B2 (en) 2006-12-27 2007-12-10 Apparatus and method for encoding transform coefficient block
EP09011939A EP2131596B1 (en) 2006-12-27 2007-12-10 Device and method for coding a transformation coefficient block

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200610061648 DE102006061648B4 (en) 2006-12-27 2006-12-27 Transform coefficient block coding

Publications (2)

Publication Number Publication Date
DE102006061648A1 DE102006061648A1 (en) 2008-07-03
DE102006061648B4 true DE102006061648B4 (en) 2010-01-07

Family

ID=39465675

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200610061648 Expired - Fee Related DE102006061648B4 (en) 2006-12-27 2006-12-27 Transform coefficient block coding

Country Status (1)

Country Link
DE (1) DE102006061648B4 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020027516A1 (en) * 2000-09-01 2002-03-07 Dominic Yip Entropy encoding and decoding
US20030035476A1 (en) * 2001-07-12 2003-02-20 Sanyo Electric Co., Ltd. Image coding apparatus and image coding method
US20040228539A1 (en) * 2002-08-14 2004-11-18 Sony Corporation Image coding apparatus and method, and program and recording medium
US20050094881A1 (en) * 2003-10-10 2005-05-05 Satoshi Takagi Encoding apparatus and method, and decoding apparatus, method and program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020027516A1 (en) * 2000-09-01 2002-03-07 Dominic Yip Entropy encoding and decoding
US20030035476A1 (en) * 2001-07-12 2003-02-20 Sanyo Electric Co., Ltd. Image coding apparatus and image coding method
US20040228539A1 (en) * 2002-08-14 2004-11-18 Sony Corporation Image coding apparatus and method, and program and recording medium
US20050094881A1 (en) * 2003-10-10 2005-05-05 Satoshi Takagi Encoding apparatus and method, and decoding apparatus, method and program

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CHRISTOPOLOUS et al.: The JPEG2000 Still Image Coding System: An Overview *
CHRISTOPOLOUS et al.: The JPEG2000 Still Image Coding System: An Overview In: IEEE Transactions on Consumer Electronics, Bd. 46, Nr. 4, S. 1103-1127, November 2000 Standard ISO/IEC15444-1, S. 1-12 sowie Annex D (S. 101-112) LIAN et al.: Analysis and Architecture Design of Block-Coding Engine for EBCOT in JPEG2000. In: IEEE Transactions on Circuits and Systems for Video Technology, Bd. 13, Nr. 3, März 2003, S. 219-230 GANGADHAR M., BHATIA D.: FPGA Based EBCOT Architecture for JPEG2000. In: Field-Programmable Technology (FPT), 2003, Proceedings 2003, IEE International Conference, S. 228-233
GANGADHAR M., BHATIA D.: FPGA Based EBCOT Architecture for JPEG2000. In: Field-Programmable Technology (FPT), 2003, Proceedings 2003, IEE International Conference, S. 228-233 *
In: IEEE Transactions on Consumer Electronics, Bd. 46, Nr. 4, S. 1103-1127, November 2000 *
LIAN et al.: Analysis and Architecture Design of Block-Coding Engine for EBCOT in JPEG2000. In: IEEE Transactions on Circuits and Systems for Video Technology, Bd. 13, Nr. 3, März 2003, S. 219-230 *
Standard ISO/IEC15444-1, S. 1-12 sowie Annex D (S. 101-112) *

Also Published As

Publication number Publication date
DE102006061648A1 (en) 2008-07-03

Similar Documents

Publication Publication Date Title
EP2109993B1 (en) Device and method for encoding a block of transformation coefficients
EP0368139B1 (en) Method for coding residual error pictures
EP0309669B1 (en) Method for scenery model aided image data reduction for digital television signals
DE69737514T2 (en) SYSTEM AND METHOD FOR PROCESSING WAVY AND INVERTED WAVY TRANSFORMATIONS OF DIGITAL DATA
DE2640140C2 (en) Method and arrangement for redundancy-reducing image coding
DE4314741C2 (en) Decoder for units of Huffman encoded data
DE69735838T2 (en) Video encoder with transform coefficient prediction
DE2625973C3 (en) Method and arrangement for the redundancy-reducing transformation of images
DE112009004320T5 (en) Memory Subsystem
DE2706080C2 (en) Method for adaptive quantization of transformation coefficients of an image and arrangement for carrying out the method
DE112009004344T5 (en) Parallel implementation of a computing machine according to the pipeline method on an integrated circuit
DE102018118362A1 (en) SYSTEMS AND METHOD FOR THE EFFICIENT AND LOSS-FREE COMPRESSION OF COLLECTED RAW PICTURE DATA
DD293933A5 (en) motion estimator
DE60108892T2 (en) MODULE, DEVICE AND METHOD FOR HIGH-BITRATED DECODING OF A CHAINED CODE
DE102004049156B4 (en) Coding scheme for a temporally variable graphic model representing data stream
DE3632639C2 (en) Device for high-speed processing of image data by folding
DE202017007520U1 (en) Motion compensation through machine learning
DE102016125131A1 (en) Efficient generation of stochastic spike patterns in nuclear-based neuromorphic systems
DE102010030973A1 (en) Video encoder and method for decoding a sequence of pictures
DE102006061647B3 (en) Image transformation coefficients blocks encoder, has precoder for traversing magnitude bits of predetermined magnitude bit plane in entities of set of magnitude bits, and coder to encode data words into encoded data stream
DE102006061648B4 (en) Transform coefficient block coding
DE102006061651B4 (en) Coding of a transformation coefficient block
DE3545106C2 (en)
DE3634691A1 (en) DIFFERENTIAL PULSE CODE MODULATOR AND THEIR USE AS A DEMODULATOR
DE102021100205A1 (en) SYSTEMS AND METHODS FOR REDUCING MEMORY REQUIREMENTS IN NEURAL NETWORKS

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20140701