DE112008003626T5 - Low complexity coding in data compression systems - Google Patents

Low complexity coding in data compression systems Download PDF

Info

Publication number
DE112008003626T5
DE112008003626T5 DE112008003626T DE112008003626T DE112008003626T5 DE 112008003626 T5 DE112008003626 T5 DE 112008003626T5 DE 112008003626 T DE112008003626 T DE 112008003626T DE 112008003626 T DE112008003626 T DE 112008003626T DE 112008003626 T5 DE112008003626 T5 DE 112008003626T5
Authority
DE
Germany
Prior art keywords
zero
coefficient
dct
coefficients
amplitude
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.)
Withdrawn
Application number
DE112008003626T
Other languages
German (de)
Inventor
Anton Valerievich Sergeev
Andrey Mikhailovich Turlikov
Ann Sergeevna Ukhanova
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112008003626T5 publication Critical patent/DE112008003626T5/en
Withdrawn legal-status Critical Current

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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • 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/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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
    • 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
    • H04N19/426Methods 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 using memory downsizing methods
    • 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/439Methods 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 using cascaded computational arrangements for performing a single operation, e.g. filtering
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Abstract

Vorrichtung, umfassend:
einen integrierten Schaltkreis (integrated circuit (IC)), der konfiguriert ist, um Daten zu komprimieren und/oder dekomprimieren, wobei der integrierte Schaltkreis einen Entropiekodierer aufweist, der konfiguriert ist, um wenigstens einem diskreten Kosinustransformations(DCT)-Koeffizienten zu empfangen, wobei der Entropiekodierer eine erste Huffman-Tabelle aufweist, die einer Anzahl von Bits entspricht, die verwendet wird, um eine Amplitude eines Nichtnull-AC-Koeffizienten zu codieren.
Apparatus comprising:
an integrated circuit (IC) configured to compress and / or decompress data, the integrated circuit comprising an entropy coder configured to receive at least one discrete cosine transform (DCT) coefficient, wherein the entropy coder has a first Huffman table corresponding to a number of bits used to encode an amplitude of a non-zero AC coefficient.

Figure 00000001
Figure 00000001

Description

Gebietarea

Die vorliegende Offenbarung beschreibt ein Verfahren zur Kodierung mit geringer Komplexität zur Verwendung in der Datenkomprimierung.The The present disclosure describes a method of coding low complexity for use in data compression.

Hintergrundbackground

Datenkomprimierung kann verwendet werden, um eine Menge von Informationen so raumeffizient wie möglich darzustellen. Ein Datenkomprimierungscode kann eine Abbildung zwischen einer Menge von Quellnachrichten und einer Menge von Codewörtern bereitstellen. Einige Videokomprimierungssysteme können diese Kodierung während einer begrenzten Zeitspanne durchführen. Beispielsweise kann für hochauflösendes Fernsehen (High Definition Television (HDTV)) 1080i (1080 × 1920 30 fps), das durch Tiles (d. h. rechteckige Teilbilder) der Größe 8 × 1920 kodiert wird, jedes Tile in 497 Mikrosekunden kodiert werden. Sobald ein Tile kodiert ist, kann ein darauf folgendes Tile am Eingang des Komprimierungssystems vorliegen und zum Verarbeiten bereit sein.data compression Can be used to make a lot of information so space efficient as possible to represent. A data compression code can a mapping between a set of source messages and a Provide set of codewords. Some video compression systems can do this coding for a limited time Time span. For example, for high-definition television (HDTV) 1080i (1080 × 1920 30 fps) passing through tiles (ie rectangular fields) 8 × 1920 size, each encoded Tile be coded in 497 microseconds. Once encoded a tile is a subsequent tile at the input of the compression system be ready and ready for processing.

Im Allgemeinen bezieht sich Entropiekodierung auf ein verlustfreies Datenkomprimierungsschema, das von den speziellen Charakteristiken des Mediums unabhängig sein kann. Typischerweise ist Entropiekodierung eines der berechnungsmäßig komplexesten Elemente eines Videokomprimierungssystems. In einigen Fällen kann Entropiekodierung die Zuweisung von Codes an Symbole einschließen, um Codelängen mit den Wahrscheinlichkeiten der Symbole abzugleichen. Das Design eines Datenkomprimierungssystems schließt typischerweise einen Kompromiss zwischen der effektiven Komprimierung von Eingabedaten und minimalen Komplexitätskosten in dem Design ein.in the In general, entropy coding refers to a lossless one Data compression scheme, that of the special characteristics of the medium can be independent. Typically, entropy coding one of the most computationally complex elements a video compression system. In some cases Entropy coding involves the assignment of codes to symbols, code lengths with the probabilities of the symbols match. The design of a data compression system closes typically a compromise between effective compression of input data and minimum complexity costs in the Design.

Entropiekodierung kann in modernen Videokomprimierungssystemen unter Verwendung einer Vielzahl von Techniken realisiert werden, wie etwa paarweise Lauflängen(run length (RLE))- und Variable-Länge-Kodierung (variable length coding (VLC)) oder arithmetische Kodierung. Arithmetische Kodierung kann eine bessere Komprimierungsrate liefern, kann jedoch sehr komplex sein und kann keine gute Lösung für Systeme geringer Komplexität sein. VLC-basierte Techniken können eine kleinere Komprimierungsrate liefern und tendieren dazu, viel weniger komplex zu sein, daher können diese Techniken für Echtzeitanwendungen geeigneter sein.entropy can be used in modern video compression systems using a Variety of techniques are realized, such as pairwise run lengths (run length (RLE)) and variable length coding (variable length coding (VLC)) or arithmetic coding. Arithmetic coding can provide a better compression rate, but can be very complex can not be a good solution for systems lower Be complexity. VLC-based techniques can provide a smaller compression rate and tend to do a lot less complex, therefore, these techniques can be used for Real-time applications may be more appropriate.

Kurze Beschreibung der ZeichnungenBrief description of the drawings

Merkmale und Vorteile des beanspruchten Gegenstandes sind aus der folgenden detaillierten Beschreibung von Ausführungsformen, die damit konsistent sind, ersichtlich, wobei die Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen betrachtet werden sollte, wobei:characteristics and advantages of the claimed subject matter are as follows detailed description of embodiments that come with it are consistent, with the description by reference should be considered in the attached drawings, in which:

1 ein Diagramm ist, das ein Beispiel einer auf Diskreter-Kosinustransformation (DCT) basierenden Kodiererverarbeitung zeigt; 1 Fig. 12 is a diagram showing an example of discrete cosine transform (DCT) based encoder processing;

2 ein Diagramm ist, das ein Beispiel von DCT-basierter Dekodiererverarbeitung zeigt; 2 Fig. 12 is a diagram showing an example of DCT-based decoder processing;

3 ein Diagramm einer beispielhaften Ausführungsform von Entropiekodierung geringer Komplexität gemäß der vorliegenden Offenbarung ist; 3 FIG. 12 is a diagram of an exemplary embodiment of low complexity entropy coding according to the present disclosure; FIG.

4 ein Diagramm ist, das eine Rate-Verzerrungskurve (d. h. Komprimierungsrate gegenüber PSNR) zeigt, die mit Standard-JPEG-Entropiekodierung assoziiert wird, wie sie mit der Entropiekodierung verglichen werden kann, die gemäß der vorliegenden Offenbarung beschrieben ist; 4 Figure 12 is a graph showing a rate-distortion curve (ie, compression rate versus PSNR) associated with standard JPEG entropy coding, as may be compared to entropy coding described in accordance with the present disclosure;

5 ein Diagramm ist, das eine geschätzte Wahrscheinlichkeitsverteilung von RUNLENGTH-Werten in einem Standard-JPEG-Algorithmus zeigt; 5 Figure 12 is a graph showing an estimated probability distribution of RUNLENGTH values in a standard JPEG algorithm;

6 ein Diagramm ist, das eine geschätzte Wahrscheinlichkeitsverteilung von SIZE-Werten in einem Standard-JPEG-Algorithmus zeigt; 6 is a graph showing an estimated probability distribution of SIZE values in a standard JPEG algorithm;

7 ein Flussdiagramm von Operationen ist, die Standard-Entropiekodierung unter Verwendung des JPEG-Bildkomprimierungsalgorithmus zeigen; 7 Fig. 10 is a flowchart of operations showing standard entropy coding using the JPEG image compression algorithm;

8 ein Flussdiagramm von Operationen ist, die Entropiekodierung unter Verwendung kurzer Tabellen der RUNLENGTH gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung zeigen; 8th FIG. 10 is a flowchart of operations showing entropy coding using short tables of the RUNLENGTH according to an exemplary embodiment of the present disclosure; FIG.

9 ein Flussdiagramm von Operationen gemäß einer anderen beispielhaften Ausführungsform der vorliegenden Offenbarung ist; und 9 FIG. 10 is a flowchart of operations according to another exemplary embodiment of the present disclosure; FIG. and

10 ein Flussdiagramm von Operationen gemäß einer Ausführungsform der vorliegenden Offenbarung ist. 10 FIG. 10 is a flowchart of operations in accordance with an embodiment of the present disclosure. FIG.

Auch wenn die folgende ausführliche Beschreibung mit Bezugnahme auf illustrierende Ausführungsformen fortfährt, werden Fachleuten viele Alternativen, Modifikationen und Variationen derselben ersichtlich sein.Also if the following detailed description with reference continuing to illustrative embodiments, Professionals will find many alternatives, modifications and variations be the same apparent.

Ausführliche BeschreibungDetailed description

Im Allgemeinen beschreibt diese Offenbarung ein Verfahren zur Kodierung mit geringer Komplexität zur Verwendung in der Datenkomprimierung. Die hierin beschriebenen Ausführungsformen können gemäß Datenkomprimierungsstandards, wie etwa dem Joint-Photographic-Experts-Group(JPEG)-Standard, ITU-T T.81 , ISO/IEC IS 10918-1 , veröffentlicht im September 1992, verwendet werden. Noch genauer können hierin beschriebene Ausführungsformen eine Anzahl von Entropiekodierungsalgorithmen bereitstellen, die verwendet werden können, um den Speicherplatz, der für Huffman-Tabellen benötigt wird, unter Verwendung eines Codec-Programms reduziert werden.In general, this disclosure describes a method of encoding with low complexity for use in data compression. The embodiments described herein may be in accordance with data compression standards, such as Joint Photographic Experts Group (JPEG) standard, ITU-T T.81 . ISO / IEC IS 10918-1 , published in September 1992, can be used. More specifically, embodiments described herein can provide a number of entropy coding algorithms that can be used to reduce the memory space required for Huffman tables using a codec program.

Datenübertragung von Standbildern auf vielen Gebieten, wie etwa Farb-Facsimile, Desktop-Publishing und medizinische Bildgebung können gemäß dem JPEG-Standard durchgeführt werden. Der JPEG-Standard kann die Verwendung diskreter Kosinustransformations(DCT)-Kodierung während der Datenkomprimierungsverarbeitung einschließen.data transfer of still images in many fields, such as color facsimile, desktop publishing and medical imaging can be done according to the JPEG standard. The JPEG standard can the use of discrete cosine transform (DCT) coding during include data compression processing.

Diskrete Kosinustransformations(DCT)-basierte Komprimierung kann das Komprimieren eines Streams aus 8 × 8-Blöcken von Graustufenbeispielbildern einschließen. Jeder 8 × 8-Block von Quellbildproben ist effektiv ein 64-Punkt-diskretes Signal, das eine Funktion der beiden räumlichen Dimensionen x und y sein kann. Die DCT-Koeffizientenwerte können daher als der relative Betrag der 2D-räumlichen Frequenzen betrachtet werden, die in dem 64-Punkt-Eingabesignal enthalten sind. Der Koeffizient mit Nullfrequenz in beiden Dimensionen wird als der „DC-Koeffizient” bezeichnet, und die verbleibenden 63 Koeffizienten werden als die „AC-Koeffizienten” bezeichnet. Zusätzliche Informationen über die DCT wird ausführlicher in „The JPEG Still Picture Compression Standard”, Gregory K. Wallace, IEEE Transactions on Consumer Electronics, 1991 , beschrieben.Discrete Cosine Transform (DCT) based compression may include compressing a stream of 8x8 blocks of grayscale sample images. Each 8x8 block of source image samples is effectively a 64-point discrete signal, which may be a function of the two spatial dimensions x and y. The DCT coefficient values may therefore be considered as the relative amount of 2D spatial frequencies contained in the 64-point input signal. The zero frequency coefficient in both dimensions is referred to as the "DC coefficient", and the remaining 63 coefficients are referred to as the "AC coefficients". Additional information about the DCT is discussed in more detail "The JPEG Still Picture Compression Standard", Gregory K. Wallace, IEEE Transactions on Consumer Electronics, 1991 , described.

Unter Bezugnahme auf 1 wird nun ein DCT-basierter Kodierer 100 gezeigt. DCT-basierter Kodierer 100 kann konfiguriert werden, um einige Quellbilddaten (beispielsweise wie als in 1 gezeigte 8 × 8-Blöcke) empfangen und diese Daten in einer komprimierten Form auszugeben. Kodierer 100 kann Forward-DCT (FCDT) 102, Quantisierer 104 und Entropiekodierer 106 aufweisen. Demgegenüber zeigt 2 einen DCT-basierten Dekodierer 200, der die komprimierten Bilddaten empfängt und die originalen Quellbilddaten in einer rekonstruierten Form ausgibt. Dekodierer 200 kann als ein Spiegelbild von Kodierer 100 betrachtet werden, als solcher kann Dekodierer 200 Entropiedekodierer 202, Dequantisierer 204 und inverse DCT (IDCT) 206 aufweisen.With reference to 1 now becomes a DCT-based encoder 100 shown. DCT-based encoder 100 can be configured to store some source image data (such as in 1 8 × 8 blocks shown) and output this data in a compressed form. encoder 100 can forward DCT (FCDT) 102 , Quantizer 104 and entropy coders 106 exhibit. In contrast, shows 2 a DCT-based decoder 200 which receives the compressed image data and outputs the original source image data in a reconstructed form. decoder 200 can be considered a reflection of encoder 100 As such, decoders can be considered 200 entropy 202 , Dequantizer 204 and inverse DCT (IDCT) 206 exhibit.

Wiederum unter Bezugnahme auf 1 kann Kodierer 100 konfiguriert sein, um Quellbilddaten 101 für nachfolgende Komprimierung zu empfangen. Quellbilddaten 101 können in 8 × 8-Blöcken gruppiert sein, die von nicht-vorzeichenbehafteten ganzen Zahlen verschoben sind und in Forward-DCT 102 eingegeben werden. Wie oben diskutiert, wird die spezielle Operation der Weiterleitungs-DCT 102 ausführlicher in „The JPEG Still Picture Compression Standard”, Gregory K. Wallace, IEEE Transactions an Consumer Eletronics, 1991 , beschrieben. FDCT 102 kann eine Ausgabe (beispielweise 64 DCT-Koeffizienten) für einen Quantisierer 104 bereitstellen. In einigen Ausführungsformen kann der Quantisierer 104 konfiguriert sein, um einen Bereich von Werten (beispielsweise die Amplituden der Frequenzkomponenten) auf einen einzelnen Quantenwert zu komprimieren. Auf diese Weise kann Quantisierer 104 konfiguriert sein, um die Daten durch Darstellen von DCT-Koeffizienten mit nicht größerer Präzision als nötig ist zu komprimieren, um die gewünschte Bildqualität zu erreichen. Daher kann Quantisierer 104 eine Sequenz quantisierter DCT-Koeffizienten (DC und AC) als Eingabe für Entropiekodierer 106 liefern.Again with reference to 1 can coder 100 be configured to source image data 101 for subsequent compression. Source image data 101 may be grouped in 8x8 blocks that are shifted from unsigned integers and in forward DCT 102 be entered. As discussed above, the specific operation of the forwarding DCT 102 in more detail in "The JPEG Still Picture Compression Standard", Gregory K. Wallace, IEEE Transactions to Consumer Eletronics, 1991 , described. FDCT 102 can be an output (for example, 64 DCT coefficients) for a quantizer 104 provide. In some embodiments, the quantizer 104 be configured to compress a range of values (eg, the amplitudes of the frequency components) to a single quantum value. That way, quantizers can be used 104 be configured to compress the data by presenting DCT coefficients with no greater precision than necessary to achieve the desired image quality. Therefore, quantizers 104 a sequence of quantized DCT coefficients (DC and AC) as input to entropy coders 106 deliver.

Entropiekodierer 106 kann konfiguriert sein, um die abschließenden DCT-basierten Verarbeitungsoperationen durchzuführen. Entropiekodierer 106 kann zusätzliche Komprimierung verlustfrei erreichen, indem die quantisierten DCT-Koeffizienten anhand ihrer statistischen Charakteristiken kompakter kodiert werden. Entropiekodierer 106 kann konfiguriert sein, um eine Vielzahl verschiedener Operationen durchzuführen, wie weiter unten ausführlicher diskutiert wird.entropy 106 may be configured to perform the final DCT-based processing operations. entropy 106 can achieve additional compression lossless by more compact coding of the quantized DCT coefficients based on their statistical characteristics. entropy 106 may be configured to perform a variety of different operations, as discussed in greater detail below.

Im Allgemeinen kann Entropiekodierung zwei verschiedene Operationen aufweisen. Die erste Operation kann eine Zickzack-Sequenz quantisierter Koeffizienten in eine Zwischensequenz von Symbolen konvertieren. Der Zweck und die Operation der Zickzack-Sequenz wird ausführlicher in dem „JPEG Still Picture Compression Standard”, der oben zitiert wurde, be schrieben. Die zweite Operation kann die Symbole in einen Daten-Stream konvertieren, in dem die Symbole keine von außen identifizierbaren Grenzen mehr haben.in the Generally, entropy coding can be two different operations exhibit. The first operation can quantize a zigzag sequence Convert coefficients into a cutscene of symbols. The purpose and operation of the zigzag sequence becomes more detailed in the "JPEG Still Picture Compression Standard", which was cited above, be written. The second operation can be the Convert symbols to a data stream where the symbols are none from outside identifiable borders have more.

Daher kann in einigen Ausführungsformen Kodierer 106 die Zickzack-Sequenz der quantisierten Koeffizienten in eine Zwischensequenz von Signalen konvertieren. Kodierer 106 kann die Symbole auch in einen Daten-Stream konvertieren, in dem die Symbole keine von außen identifizierbaren Grenzen mehr haben. Die Form und Definition der Zwischensymbole kann sowohl von dem DCT-basierten Betriebsmodus als auch von dem Entropiekodierungsverfahren (Huffman, arithmetisch, etc.) abhängen.Therefore, in some embodiments, encoders 106 convert the zigzag sequence of quantized coefficients into an intermediate sequence of signals. encoder 106 can also convert the symbols to a data stream where the symbols no longer have any externally identifiable borders. The form and definition of the intermediate symbols may depend on both the DCT based mode of operation and the entropy coding method (Huffman, arithmetic, etc.).

Wie oben diskutiert wurde, kann die Eingabe des Entropiekodierers 106 eine Sequenz quantisierter DCT-Koeffizienten (DC und AC) sein. In der Zwischensymbolsequenz kann jeder Nichtnull-AC-Koeffizient in Kombination mit seiner „Lauflänge” (runlength) dargestellt werden. Der Begriff „Runlength” oder „RUNLENGTH” kann, wie hierin verwendet, der Folgenummer von nullwertigen AC-Koeffizienten entsprechen, die dem Nichtnull-AC-Koeffizienten in der Zickzack-Sequenz vorangehen.As discussed above, the input of the entropy coder 106 a sequence of quantized DCT coefficients (DC and AC). In the intermediate symbol sequence, each non-zero AC coefficient can be represented in combination with its "runlength". As used herein, the term "runlength" or "RUNLENGTH" may correspond to the sequence number of zero-valued AC coefficients preceding the non-zero AC coefficient in the zigzag sequence.

Jede Kombination von Lauflänge-/Nichtnull-Koeffizient kann durch ein Paar von Symbolen dargestellt werden, beispielsweise Symbol-1 (RUNLENGTH, SIZE) und Symbol-2 (AMPLITUDE). In diesem Beispiel kann Symbol-1 die beiden Informationsstücke RUNLENGTH und SIZE darstellen. Wie oben erwähnt, kann RUNLENTH der Anzahl von aufeinanderfolgenden nullwertigen AC-Koeffizienten in der Zickzack-Sequenz entsprechen, die dem dargestellten Nichtnull-Koeffizienten vorangeht. Der Begriff „SIZE” kann, wie hierin verwendet, der Anzahl von Bits entsprechen, die verwendet werden, um AMPLITUDE (d. h. Symbol-2) zu kodieren. Der Begriff „AMPLITUDE” kann, wie hierin verwendet, der Amplitude des Nichtnull-AC-Koeffizienten entsprechen. Symbol-2 kann ein einzelnes Informationsstück, das als AMPLITUDE bezeichnet wird, darstellen.each Combination of run length / non-zero coefficient can be achieved by a pair of symbols are displayed, for example symbol-1 (RUNLENGTH, SIZE) and Symbol-2 (AMPLITUDE). In this example, symbol-1 represent the two pieces of information RUNLENGTH and SIZE. As mentioned above, RUNLENTH can be the number of consecutive zero-valued AC coefficients in the zigzag sequence, which precedes the non-zero coefficient shown. The term "SIZE" can as used herein, correspond to the number of bits used to encode AMPLITUDE (ie symbol-2). The term "AMPLITUDE" can As used herein, the amplitude of the non-zero AC coefficient correspond. Symbol 2 can be a single piece of information, which is referred to as AMPLITUDE represent.

Im Allgemeinen kann der RUNLENGTH-Wert Null-Läufe der Länge null bis fünfzehn darstellen. Eigentliche Null-Läufe in der Zickzack-Sequenz können größer als 15 sein, so dass der Symbol-1-Wert (15, 0) als das Erweiterungssymbol mit RUNLENGTH = 16 interpretiert werden kann. Der spezielle Symbol-1-Wert (0, 0) zeigt eine Situation am Ende des Blocks (end of block (EOB)) an und kann als ein „Escape”-Symbol betrachtet werden, das den 8 × 8-Beispielblock abschließt.in the Generally, the RUNLENGTH value can be zero runs of length represent zero to fifteen. Actual zero runs in the zigzag sequence can get bigger be as 15, so that the symbol 1 value (15, 0) as the extension symbol can be interpreted with RUNLENGTH = 16. The special symbol 1 value (0, 0) shows a situation at the end of the block (EOB) and can be considered as an "escape" symbol, which completes the 8x8 sample block.

Daher kann die Zickzack-Sequenz 63 quantisierter AC-Koeffizienten für jeden 8 × 8-Block von Proben als eine Sequenz von Symbol-1- und Symbol-2-Symbolpaaren dargestellt werden. Jedoch kann jedes „Paar” im Falle einer langen RUNLENGTH Wiederholungen von Symbol-1 aufweisen oder lediglich ein Symbol-1 im Falle eines EOB.Therefore can calculate the zigzag sequence 63 of quantized AC coefficients for every 8x8 block of samples as a sequence of symbol-1 and symbol 2 symbol pairs. However, every "couple" in the Case of a long RUNLENGTH repeat of Symbol-1 or just a symbol-1 in the case of an EOB.

Der mögliche Bereich quantisierter AC-Koeffizienten kann den Wertebereich bestimmen, dem sowohl die AMPLITUDEN- als auch die SIZE-Information entsprechen kann. Für AC-Koeffizienten wird eine mögliche Struktur der Symbol-1- und Symbol-2-Zwischendarstellungen unten jeweils in Tabellen 1 und 2 illustriert. Für DC-Koeffizienten kann die Zwischendarstellung ähnlich strukturiert werden. In diesem Beispiel kann Symbol-1 lediglich SIZE-Information darstellen; Symbol-2 kann AMPLITUDEN-Information wie zuvor darstellen: Symbol-1-(SIZE), Symbol-2 (AMPLITUDEN).Of the possible range of quantized AC coefficients may be the Determine the range of values to which both the AMPLITUDE and the SIZE information. For AC coefficients becomes a possible structure of the Symbol 1 and Symbol 2 intermediate representations Illustrated below in Tables 1 and 2, respectively. For DC coefficients the intermediate representation can be structured similarly. In this example, symbol-1 can only represent SIZE information; Symbol 2 can display AMPLITUDE information as before: Symbol 1 (SIZE), Symbol 2 (AMPLITUDE).

Weil der DC-Koeffizient differentiell kodiert sein kann, kann er von zweimal so vielen Ganzzahlwerten [–211, 211 – 1] wie AC-Koeffizienten abgedeckt werden, so dass eine zusätzliche Ebene am Ende der Tabelle 2 für DC-Koeffizienten hinzugefügt werden kann. Symbol-1 für DC-Koeffizienten kann daher einen Wert von 1 bis 11 darstellen. SIZE 0 1 2 ... 9 10 RUN- LENGTH 0 EOB RUNLENGTH-WERTE . X . X . X 15 ZRL Tabelle 1. Basis-Huffman-Kodierungs-Symbol-1-Struktur SIZE AMPLITUDE 1 1–, 1 2 –3, -2, 2, 3 3 –7 .. -4, 4 .. 7 4 –15 .. –8, 8 .. 15 5 –31 .. –16, 16 .. 31 6 –63 .. –32, 32 .. 63 7 –127 .. –64, 64 .. 127 8 –255 .. –128, 128 .. 255 9 –511 .. –256, 256 .. 511 10 –1023 .. –512, 512 .. 1023 Tabelle 2. Basis-Entropiekodierungs-Symbol-2-Struktur Because the DC coefficient can be differentially encoded, it can be covered by twice as many integer values [-2 11 , 2 11 -1] as AC coefficients, so adding an extra level at the end of Table 2 for DC coefficients can. Symbol 1 for DC coefficients may therefore represent a value from 1 to 11. SIZE 0 1 2 ... 9 10 RUNLENGTH 0 EOB RUNLENGTH VALUES , X , X , X 15 ZRL Table 1. Basic Huffman coding symbol 1 structure SIZE AMPLITUDE 1 1-, 1 2 -3, -2, 2, 3 3 -7 .. -4, 4 .. 7 4 -15 .. -8, 8 .. 15 5 -31 .. -16, 16 .. 31 6 -63 .. -32, 32 .. 63 7 -127 .. -64, 64 .. 127 8th -255 .. -128, 128 .. 255 9 -511 .. -256, 256 .. 511 10 -1023 .. -512, 512 .. 1023 Table 2. Basic entropy coding symbol 2 structure

Huffman-Kodierung ist ein Verfahren, das Symbole (beispielsweise Bytes, DCT-Koeffizienten, etc.) annehmen kann und diese mit Codes variabler Länge kodieren kann, die gemäß statistischen Wahrscheinlichkeiten zugewiesen werden können. Beispielsweise kann das Huffman-Kodierungsschema, das bei JPEG-Komprimierung verwendet wird, Dateigröße weiter durch Ersetzen der Codes fester Größe (beispielsweise 12 Bit) durch Codes variabler Länge (beispielsweise 1–16 Bits) ersetzt werden. Im Durchschnitt addieren sich die Ersetzungcodes auf weniger Bits als beim Original. Falls im Durchschnitt 10% weniger Bits benötigt werden, um die quantisierten DCT-Koeffizienten zu speichern, kann dies direkt zu einer 10%-Dateigrößenreduzierung führen. Der schwierige Teil kann darin liegen, zu entscheiden, welche Codes mit welchen Bitketten variabler Länge zu ersetzen sind. Die Huffman-Tabellen definieren diese Abbildungen und werden innerhalb jeder JPEG-Bilddatei gespeichert. Eine separate Huffman-Tabelle kann für jede der folgenden vier Komponenten benötigt werden: Leuchtdichte-DC-Komponente, Leuchtdichte-AC-Komponente, Chrominanz-DC-Komponente und Chrominanz-AC-Komponenten.Huffman coding is a method that uses symbols (eg bytes, DCT coefficients, etc.) and these with variable length codes can code according to statistical probabilities can be assigned. For example, the Huffman coding scheme, used with JPEG compression, file size by replacing the fixed-size codes (for example 12 bits) by variable-length codes (e.g. 1-16 Bits). On average, the replacement codes add up to fewer bits than the original. If on average 10% less Bits are needed to get the quantized DCT coefficients This can directly add to a 10% file size reduction to lead. The hard part may be deciding which codes to replace with which bit strings of variable length are. The Huffman tables define these figures and will stored within each JPEG image file. A separate Huffman table may be needed for each of the following four components are: luminance DC component, luminance AC component, Chrominance DC component and chrominance AC components.

Beispielsweise können diese Tabellen eine Tabelle für Leuchtdichte einschließlich AC-Koeffizienten (162 Datensätze, 162×20 = 3240 Bits), eine Tabelle für Chrominanz einschließlich AC-Koeffizienten (162 Datensätze, 162×20 = 3240 Bits), eine Tabelle für Leuchtdichte einschließlich DCT-Koeffizienten (12 Datensätze, 12×15 = 180 Bits) und eine Tabelle für Chrominanz einschließlich DC-Koeffizienten (12 Datensätze, 12×15 = 180 Bits) aufweisen. Dies kann zu insgesamt 6840 Bits oder 855 Bytes zur Standard-Entropiekodierung, wie in Tabelle 6 gezeigt, führen.For example These tables can be a table for luminance including AC coefficients (162 datasets, 162 × 20 = 3240 bits), a table for chrominance including AC coefficients (162 datasets, 162 × 20 = 3240 bits), a table of luminance including DCT coefficients (12 records, 12 × 15 = 180 bits) and a table for chroma including DC coefficients (12 records, 12 × 15 = 180 bits) exhibit. This can result in a total of 6840 bits or 855 bytes for standard entropy coding, as shown in Table 6.

Standard-Lauflängen-Kodierung (Run-Length-Encoding(RLE))-Datenkomprimierung kann mehrere Operationen aufweisen. Beispielsweise können die folgenden Operationen implementiert sein, während eine RLE-Sequenz erzeugt wird:

  • 1. Aktion-1: Für jedes Element von 63 AC-Koeffizienten kann diese mit Null verglichen werden. Daher können für jede Domäne 63 Aktion-1 vorliegen.
  • 2. Aktion-2: Falls das vorliegende Element der Sequenz 0 ist, kann der Zähler der RUNLENGTH erhöht werden.
  • 3. Aktion-3: Falls die Anzahl von RUNLENGTH größer als 15 ist und kein EOB vorliegt, kann der Zähler der RUNLENGTH modifiziert werden.
  • 4. Aktion-4: Falls das vorliegende Element nicht null ist, kann eine Adresse für die passende Tabelle erzeugt werden, das Codewort kann erhalten und geschrieben werden.
  • 5. Aktion-5: Sobald das Codewort für die RUNLENGTH-SIZE-Kombination erhalten wurde, kann der AMPLITUDEN-Wert in Binärform dargestellt und geschrieben werden.
  • 6. Aktion-6: Adressenberechnung in Huffman-Tabellen (unter Verwendung von Werten von RUNLENGTH und SIZE).
Standard Run Length Encoding (RLE) - Data compression can have multiple operations. For example, the following operations may be implemented while generating an RLE sequence:
  • 1. Action-1: For each element of 63 AC coefficients, this can be compared to zero. Therefore, there can be 63 action-1 for each domain.
  • 2. Action-2: If the present element of the sequence is 0, the counter of the RUNLENGTH can be increased.
  • 3. Action-3: If the number of RUNLENGTH is greater than 15 and there is no EOB, the counter of the RUNLENGTH be modified.
  • 4. Action-4: If the present element is not zero, an address for the matching table can be generated, the codeword can be obtained and written.
  • 5. Action-5: Once the code word for the RUNLENGTH-SIZE combination has been obtained, the AMPLITUDE value can be displayed in binary form and written.
  • 6. Action-6: Address calculation in Huffman tables (using values of RUNLENGTH and SIZE).

Tabelle 3 zeigt die durchschnittlichen Komplexitätswerte je Block für die Operationen, die oben aufgeführt sind, unter Verwendung des YUV-Modells, wobei Y Helligkeit (d. h. Leuchtdichte) entspricht und UV Farbe (d. h. Chrominanz) entspricht. Beispielsweise kann, falls durchschnittliche Aktion-3-Y-Komplexität 0, 1 gleicht, lediglich eine Aktion-3-Y für durchschnittlich zehn Blöcke vorliegen. Komplexität von Standard-RLE Aktion-1-Y 63 Aktion-1-UV 63 Aktion-2-Y 48 Aktion-2-UV 57 Aktion-3-Y 0,1 Aktion-3-UV 0,1 Aktion-4-Y 16 Aktion-4-UV 7 Aktion-5-Y 15 Aktion-5-UV 6 Aktion-6-Y 16 Aktion-6-UV 7 Tabelle 3. Komplexität von Standard-RLE Table 3 shows the average complexity values per block for the operations listed above using the YUV model, where Y is brightness (ie, luminance) and UV color (ie, chrominance). For example, if average action 3-Y complexity equals 0, 1, there may be only one action-3-Y for an average of ten blocks. Complexity of standard RLE Action-1-Y 63 Action-1 UV 63 Action 2 Y 48 Action 2 UV 57 Action 3 Y 0.1 Action 3 UV 0.1 Action-4-Y 16 Action-4-UV 7 Action-5-Y 15 Action-5 UV 6 Action-6-Y 16 Action-6 UV 7 Table 3. Complexity of standard RLE

Lauflängenkodierung mit kurzen TabellenRun Length Encoding with short tables

3 zeigt ein System 300 zur Kodierung mit geringer Komplexität gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung. System 3 kann konfiguriert sein, um rohe Videodaten zu empfangen und diese Daten unter Verwendung von Konvertierer 302 aus einem Rot-Grün-Blau(RGB)-Farbraum in einen Leuchtdichte- und Chrominanz(YUV)-Farbraum zu konvertieren. 3 shows a system 300 for low complexity coding according to an exemplary embodiment of the present disclosure. system 3 can be configured to receive raw video data and this data using converters 302 convert from a red-green-blue (RGB) color space to a luminance and chrominance (YUV) color space.

Konvertierung von RGB nach YUV kann unter Verwendung einer Vielzahl von Techniken durchgeführt werden, einschließlich der Verwendung schneller tabellengetriebener Algorithmen, ohne auf diese beschränkt zu sein. Jeder konvertierte Y-, U- und V-Frame kann in 8 × 8-Blöcke gruppiert und in FDCT 304 eingegeben werden. Jeder 8 × 8-Block von Quellbildbeispielen ist effektiv ein 64-Punkt-diskretes Signal, das eine Funktion von x und y sein kann. FDCT 304 kann dieses Signal als Eingabe empfangen und es in 64 Signale orthogonaler Basis zerlegen. Jedes kann eine der 64 eindeutigen zweidimensionalen (2D) „räumlichen Frequenzen” enthalten, die das „Spektrum” des Eingabesignals umfassen. Die Ausgabe von FDCT 304 kann die Menge von 64 Basissignalamplituden oder „DCT-Koeffizienten” sein, deren Werte durch das betreffende 64-Punkt-Eingabesignal eindeutig bestimmt werden können. FDCT kann diese Ausgabe an Quantisierer 306 liefern. Es wird darauf hingewiesen, dass jeder Abschnitt von System 300 beispielsweise in einem integrierten Schaltkreis oder einer ähnlichen Einrichtung enthalten sein kann.Conversion from RGB to YUV can be accomplished using a variety of techniques, including but not limited to, the use of fast, table-driven algorithms. Each converted Y, U and V frame can be grouped in 8x8 blocks and in FDCT 304 be entered. Each 8x8 block of source image examples is effectively a 64-point discrete signal, which may be a function of x and y. FDCT 304 can receive this signal as input and decompose it into 64 orthogonal base signals. Each may include one of the 64 unique two-dimensional (2D) "spatial frequencies" that comprise the "spectrum" of the input signal. The output of FDCT 304 may be the set of 64 base signal amplitudes or "DCT coefficients" whose values can be uniquely determined by the particular 64-point input signal. FDCT can output this output to quantizers 306 deliver. It should be noted that every section of system 300 For example, it may be included in an integrated circuit or similar device.

Nach der Ausgabe von FDCT 304 kann jeder der 64 DCT-Koeffizienten gleichmäßig in Verbindung mit einer Quantisierungstabelle (beispielsweise 64 Elemente) quantisiert werden, die durch die Anwendung (oder Benutzer) als Eingabe für den Entropiekodierer 308 spezifiziert werden kann. Jedes Element kann ein Ganzzahlwert von 1 bis 255 sein, der die Schrittgröße des Quantisierers für seinen entsprechenden DCT-Koeffizienten spezifiziert. Quantisierung kann als Division jedes DCT-Koeffizienten durch seine entsprechende Quantisiererschrittgröße definiert werden, gefolgt von Runden auf die nächste ganze Zahl. Dieser Ausgabewert kann sodann durch die Quantisiererschrittgröße normalisiert werden. Nach der Quantisierung kann jedes Element einem Entropiekodierer 308 eingegeben werden.After the issue of FDCT 304 For example, each of the 64 DCT coefficients may be uniformly quantized in conjunction with a quantization table (e.g., 64 elements) provided by the application (or user) as input to the entropy coder 308 can be specified. Each element may be an integer value from 1 to 255, which specifies the step size of the quantizer for its corresponding DCT coefficient. Quantization can be defined as the division of each DCT coefficient by its corresponding quantizer step size, followed by rounding to the nearest integer. This output value can then be normalized by the quantizer step size. After quantization, each element can be an entropy encoder 308 be entered.

Entropiekodierer 308 kann RLE-Kodierungsmodul 310 und Huffman-Kodierungsmodul 312 einschließen. Die Standardlauflängenkodierung, die oben unter Bezugnahme auf Tabelle 3 beschrieben wurde, benötigt vier Huffman-Tabellen. Demgegenüber können in dieser Ausführungsform separate Tabellen für die LAUFLÄNGEN- und SIZE-Werte für AC-Koeffizienten verwendet werden. In dieser Ausführungsform können für die DC-Koeffizienten die gleichen Tabellen ohne Änderungen verwendet werden. Dies kann die Speichergröße, die zum Unterhalten der Huffman-Tabellen benötigt wird, reduzieren. Bei spielsweise kann gemäß dieser Ausführungsform eine Tabelle von Codewörtern für alle möglichen RUNLENGTH-Werte aus 16 Datensätzen (16×10 = 160 Bits für die UV-Komponenten, 14×16 = 224 Bits für die Y-Komponente) bestehen, und die Tabelle für SIZE kann zwölf Datensätze (12×16 = 192 Bits) aufweisen. Dies kann insgesamt zu 576 Bits oder 72 Bytes führen. Daher kann dieser Ansatz zu einer signifikanten Einsparung von Speicherressourcen im Vergleich zu existierenden Kodierungstechniken führen, was 855 Bytes benötigt.entropy 308 can RLE encoding module 310 and Huffman coding module 312 lock in. The standard run-length encoding described above with reference to Table 3 requires four Huffman tables. On the other hand, in this embodiment, separate tables can be used for the RUNNING and SIZE values for AC coefficients. In this embodiment, the same tables can be used without changes for the DC coefficients. This can reduce the amount of memory needed to maintain the Huffman tables. In example, according to this off A table of codewords for all possible RUNLENGTH values consists of 16 data sets (16 × 10 = 160 bits for the UV components, 14 × 16 = 224 bits for the Y component), and the table for SIZE can contain 12 data records ( 12 × 16 = 192 bits). This can result in a total of 576 bits or 72 bytes. Therefore, this approach can result in a significant saving of memory resources compared to existing coding techniques, which requires 855 bytes.

Tabelle 4 zeigt eine Zusammenfassung, die die reduzierte Anzahl von Operationen zeigt, die benötigt werden, wenn separate Tabellen für LAUFLÄNGLÄNGE und GRÖSSE für AC-Koeffizienten verwendet werden. Komplexität von RLE mit kurzen Tabellen Aktion-1-Y 63 Aktion-1-UV 63 Aktion-2-Y 48 Aktion-2-UV 57 Aktion-3-Y 0,1 Aktion-3-UV 0,1 Aktion-4-Y 32 Aktion-4-UV 14 Aktion-5-Y 15 Aktion-5-UV 6 Tabelle 4. Komplexität von RLE mit kurzen Tabellen Table 4 shows a summary showing the reduced number of operations needed when using separate tables for LAUFLÄNGLÄNGE and SIZE for AC coefficients. Complexity of RLE with short tables Action-1-Y 63 Action-1 UV 63 Action 2 Y 48 Action 2 UV 57 Action 3 Y 0.1 Action 3 UV 0.1 Action-4-Y 32 Action-4-UV 14 Action-5-Y 15 Action-5 UV 6 Table 4. Complexity of RLE with short tables

Ein Maß für die Komplexität dieses Ansatzes zur RLE-Kodierung kann Bestimmen der Anzahl von benötigten Operationen einschließen. Die Anzahl von Operationen kann mit derjenigen verglichen werden, die für Standard-RLE benötigt wird, wie oben in Tabelle 3 gezeigt. Der primäre Unterschied erscheint in Aktion-4, da in dieser Ausführungsform zwei unterschiedliche Tabellen adressiert werden müssen, daher verdoppelt sich die Anzahl dieser Operationen. Darüber hinaus wird Aktion-6 nicht benötigt, um Adressen in Huffman-Tabellen zu zählen. Ein detaillierterer Vergleich zwischen Standard-RLE und dieser Ausführungsform kann durch Vergleichen der 7 und 8 gebildet werden, die unten ausführlicher dargestellt sind.One measure of the complexity of this approach to RLE coding may include determining the number of operations required. The number of operations can be compared to that needed for standard RLEs, as shown in Table 3 above. The primary difference appears in action-4, because in this embodiment two different tables must be addressed, therefore the number of these operations is doubled. In addition, Action-6 is not needed to count addresses in Huffman tables. A more detailed comparison between standard RLE and this embodiment can be made by comparing 7 and 8th formed in more detail below.

4 zeigt ein Diagramm 400, das die Rate-Verzerrungskurve (d. h. Komprimierungsrate gegenüber Qualität eines rekonstruierten Bildes unter Verwendung einer PSNR-Metrik) zeigt, die mit Standard-JPEG-Entropiekodierung assoziiert ist, verglichen mit der Entropiekodie rung, die gemäß dieser Ausführungsform der vorliegenden Offenbarung beschrieben ist. Der oben beschriebene Ansatz in 3 kann den Kodierungsprozess vereinfachen, obwohl das Komprimierungsverhältnis geringfügig reduziert sein kann (siehe 4), weil RUNLENGTH und SIZE unabhängig kodiert sein können, ohne die Relation zwischen ihnen zu verwenden. 4 zeigt, dass die Komprimierungsrate und korrespondierende Qualitätsebene (berechnet unter Verwendung der Rate-Verzerrungsfunktion) sehr geringfügig abnehmen. Beispielsweise ist die Abnahme der Qualitätsebene für die hierin beschriebenen Ausführungsformen für Rate = 1 Mbps weniger als 0, 1 dB im Vergleich zu Standard-JPEG unter Verwendung einer PSNR-Metrik. 4 shows a diagram 400 showing the rate-distortion curve (ie, compression rate versus quality of a reconstructed image using a PSNR metric) associated with standard JPEG entropy coding as compared to the entropy coding described in accordance with this embodiment of the present disclosure. The approach described above in 3 can simplify the encoding process, although the compression ratio may be slightly reduced (see 4 ), because RUNLENGTH and SIZE can be independently coded without using the relation between them. 4 shows that the compression rate and corresponding quality level (calculated using the rate distortion function) decreases very slightly. For example, the decrease in quality level for the embodiments described herein for rate = 1 Mbps is less than 0.1 dB compared to standard JPEG using a PSNR metric.

Lauflängenkodierung ohne Tabellen für RUNLENGTHRun Length Encoding without tables for RUNLENGTH

In einigen Ausführungsformen kann Lauflängenkodierung ohne Verwendung von Huffman-Tabellen für RUNLENGTH durchgeführt werden. Das heißt, dass für AC-Koeffizienten lediglich Huffman-Tabellen für SIZE verwendet werden können. Für DC-Koeffizienten können die gleichen Tabellen wie oben beschrieben verwendet werden. Codewörter für RUNLENGTH werden nicht benötigt, stattdessen können diese Nullen auf den Ausgabe-Stream geschrieben werden. Beispielsweise können die Nullen, falls sechs Nullen und Nicht-null-AC-Koeffizienten in Sequenz vorliegen, in den Stream geschrieben werden, gefolgt von SIZE und AMPLITUDE.In In some embodiments, run-length coding may be used performed without using Huffman tables for RUNLENGTH become. That is, for AC coefficients only Huffman tables can be used for SIZE. For DC coefficients can be the same tables as described above. Codewords for RUNLENGTH are not needed, instead you can these zeros are written to the output stream. For example can use the zeros if six zeros and non-zero AC coefficients in sequence, written to the stream, followed from SIZE and AMPLITUDE.

Die Bestimmung, lediglich Huffman-Tabellen für SIZE zu verwenden, kann nach Betrachtung von 5 und 6 ersichtlich werden, die die Wahrscheinlichkeitsverteilung sowohl von RUNLENGTH- als auch SIZE-Werten jeweils zeigen. Wie in 5 gezeigt, kann die Wahrscheinlichkeit einer großen Null-Sequenz sehr klein sein, um verschiedene Testbilder (beispielsweise claire80.avi gegenüber soldiers_hi.avi) zu testen. Hier scheint sich die Verteilungsfunktion für die verschiedenen Testbilder nicht wesentlich zu ändern. Beispielsweise kann die Wahrscheinlichkeit fünf aufeinanderfolgender Nullen, die in einer Sequenz von AC-Koeffizienten auftreten, weniger als 0,008 für die verschiedenen Testbilder betragen.The determination to use only Huffman tables for SIZE may, after consideration of 5 and 6 which show the probability distribution of both RUNLENGTH and SIZE values, respectively. As in 5 As shown, the likelihood of a large zero sequence may be very small to test different test images (e.g., claire80.avi versus soldiers_hi.avi). Here the distribution function for the different test images does not seem to change significantly. For example, the probability of five consecutive zeros occurring in a sequence of AC coefficients may be less than 0.008 for the various test images.

Demgegenüber zeigt 6 die Wahrscheinlichkeitsverteilung für SIZE-Werte. Hier ist ersichtlich, dass die Verteilungsfunktion für SIZE-Werte für verschiedene Filme sich ändern kann und daher komplizierter sein kann. Beispielsweise unterscheidet sich die Wahrschein lichkeit von SIZE-Wert 2 um näherungsweise 0,45 für den claire80.avi bis näherungsweise 0,55 für den solders_hi.avi.In contrast, shows 6 the probability distribution for SIZE values. It can be seen here that the distribution function for SIZE values for different films may change and therefore be more complicated can. For example, the probability of SIZE 2 varies by approximately 0.45 for the claire80.avi to approximately 0.55 for the solders_hi.avi.

Tabelle 5 zeigt die Komplexität anhand der Anzahl von Operationen, die benötigt werden, wenn RUNLENGTH-Kodierung ohne Verwendung von Huffman-Tabellen für RUNLENGTH verwendet wird. Das Eliminieren der RUNLENGTH-Tabellen kann auch den Bedarf für den RUNLENGTH-Zähler eliminieren. Daher sind Aktion-2 und Aktion-3 (d. h. RUNLENGTH-Zählermodifikationen) nicht notwendig. Der Aktion-6-Bedarf kann außerdem ebenfalls eliminiert werden, da kein Bedarf besteht, in den Huffman-Tabellen Adressen zu berechnen. Komplexität von RLE ohne Tabellen für Lauf Aktion-1-Y 63 Aktion-1-UV 63 Aktion-4-Y 16 Aktion-4-UV 7 Aktion-5-Y 15 Aktion-5-UV 6 Tabelle 5. Komplexität von RLE ohne Tabellen für Lauf Table 5 shows the complexity in terms of the number of operations needed when RUNLENGTH encoding is used without the use of Huffman tables for RUNLENGTH. Eliminating the RUNLENGTH tables can also eliminate the need for the RUNLENGTH counter. Therefore, Action-2 and Action-3 (ie RUNLENGTH counter modifications) are not necessary. The Action 6 requirement can also be eliminated as there is no need to calculate addresses in the Huffman tables. Complexity of RLE without tables for run Action-1-Y 63 Action-1 UV 63 Action-4-Y 16 Action-4-UV 7 Action-5-Y 15 Action-5 UV 6 Table 5. Complexity of RLE without tables for run

Daher kann durch Eliminieren der Huffman-Tabellen für RUNLENGTH der Prozess des Kodierens vereinfacht werden. Als Ergebnis kann das Komprimierungsverhältnis außerdem, mehr als in 4 gezeigt ist, abnehmen, weil die RUNLENGTH-Werte nicht komprimiert sind.Therefore, by eliminating the Huffman tables for RUNLENGTH, the process of coding can be simplified. As a result, the compression ratio can also, more than in 4 is decreasing because the RUNLENGTH values are not compressed.

7 bis 9 zeigen eine Reihe von Flussdiagrammen, die Standard-JPEG-Entropiekodierung mit den Ausführungsformen der vorliegenden Offenbarung vergleichen. Beispielsweise zeigt 7 ein Flussdiagramm 700 einschließlich Operationen 701 bis 715, die verwendet werden, um Standard-Entropiekodierung gemäß dem JPEG-Bildkomprimierungsalgorithmus durchzuführen. Flussdiagramm 700 schließt die Operation der Adressberechnung in den Huffman-Tabellen für RUNLENGTH und SIZE (d. h. Aktion-6) ein. Die Standard-Entropiekodierungstechnik, die in 7 gezeigt ist, kann 855 Bytes an Speicherverbrauch benötigen. 7 to 9 Figure 12 shows a series of flowcharts comparing standard JPEG entropy coding with the embodiments of the present disclosure. For example, shows 7 a flowchart 700 including operations 701 to 715 which are used to perform standard entropy coding according to the JPEG image compression algorithm. flow chart 700 includes the operation of address calculation in the Huffman tables for RUNLENGTH and SIZE (ie action-6). The standard entropy coding technique used in 7 shown may require 855 bytes of memory usage.

Demgegenüber zeigt 8 Flussdiagramm 800 einschließlich Operationen 801 bis 814, die konfiguriert sind, um Entropiekodierung unter Verwendung separater Tabellen für RUNLENGTH und SIZE gemäß der hierin beschriebenen Ausführungsformen durchzuführen. In dieser Ausführungsform ist, wie oben diskutiert, die Operation der Adressberechnung in Huffman-Tabellen entfernt (daher wird keine Aktion-6 benötigt). Die in 8 gezeigte Ausführungsform kann ebenfalls viel weniger Speicher (d. h. 72 Bytes) als Standard-Entropiekodierung benötigen.In contrast, shows 8th flow chart 800 including operations 801 to 814 configured to perform entropy coding using separate tables for RUNLENGTH and SIZE according to the embodiments described herein. In this embodiment, as discussed above, the operation of address calculation in Huffman tables is removed (therefore no action-6 is needed). In the 8th The embodiment shown may also require much less memory (ie 72 bytes) than standard entropy coding.

9 zeigt ein Flussdiagramm 900 einschließlich Operationen 901 bis 911, die konfiguriert sind, um gemäß den hierin beschriebenen Ausführungsformen Entropiekodierung durchzuführen. Flussdiagramm 900 zeigt eine Ausführungsform zum Durchführen von Entropiekodierung ohne Verwenden von Tabellen für RUNLENGTH. In dieser Ausführungsform können die Operationen, die sich auf die Berechnung von RUNLENGTH beziehen, gelöscht sein. Beispielsweise sind Operationen 705 (d. h. Aktion-2, die dem Erhöhen des Laufzählers um 1 entspricht) 707, 709 und 710 der 7 gelöscht. Flussdiagramm 900 zeigt außerdem das Schreiben von Null-Koeffizienten in den Stream, wie in Operation 905 gezeigt ist. Die in 9 gezeigte Ausführungsform kann ebenfalls weniger Speicher (d. h. 24 Bytes) als Standard-Entropiekodierung benötigen. 9 shows a flowchart 900 including operations 901 to 911 configured to perform entropy coding in accordance with the embodiments described herein. flow chart 900 FIG. 12 shows an embodiment for performing entropy coding without using tables for RUNLENGTH. In this embodiment, the operations related to the calculation of RUNLENGTH may be cleared. For example, operations are 705 (ie action-2, which equals 1 to increment the run counter) 707 . 709 and 710 of the 7 deleted. flow chart 900 also shows the writing of zero coefficients into the stream as in operation 905 is shown. In the 9 The embodiment shown may also require less memory (ie 24 bytes) than standard entropy coding.

Eine Zusammenfassung, die die Standard-Entropiekodierung ebenso wie die hierin beschriebenen Ausführungsformen zeigt, ist unten in Tabelle 6 angegeben. Tabelle 6 zeigt die Variationen des Speicherbedarfs zwischen (1) bestehenden Entropiekodierungstechniken, (2) Entropiekodierung unter Verwendung kurzer RL-Tabellen und (3) Entropiekodierung ohne Verwendung von Tabellen für RUNLENGTH. Wie unten gezeigt ist, liefern die hierin beschriebenen Ausführungsformen einen signifikanten Betrag an Speichereinsparung im Vergleich zu Standard-Entropiekodierung. Entropiekodierungsschema Betriebskomplexität Speicherverbräuche Entropiekodierung – Stan- dard (1) 126 Aktion-1 +105 Aktion-2 +0,2 Aktion-3 +23 Aktion-4 +21 Aktion-5 +23 Aktion-6 855 Byte Entropiekodierung – kurze RL-Tabellen (2) 126 Aktion-1 +105 Aktion-2 +0,2 Aktion-3 +46 Aktion-4 +21 Aktion-5 72 Byte Entropiekodierung – RLE ohne Tabellen für RL (3) 126 Aktion-1 +23 Aktion-4 +21 Aktion-5 24 Byte Tabelle 6. Speicherverbrauch für die drei Techniken A summary showing the standard entropy coding as well as the embodiments described herein is given in Table 6 below. Table 6 shows the memory requirement variations between (1) existing entropy coding techniques, (2) entropy coding using short RL tables, and (3) entropy coding without using tables for RUNLENGTH. As shown below, the embodiments described herein provide a significant amount of memory savings compared to standard entropy coding. Entropiekodierungsschema operational complexity memory consumption Entropy coding - standard (1) 126 Action-1 +105 Action-2 +0,2 Action-3 +23 Action-4 +21 Action-5 +23 Action-6 855 bytes Entropy coding - short RL tables (2) 126 action-1 +105 action-2 +0,2 action-3 +46 action-4 +21 action-5 72 bytes Entropy coding - RLE without tables for RL (3) 126 action-1 +23 action-4 +21 action-5 24 bytes Table 6. Memory consumption for the three techniques

Gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung wird in 10 ein Flussdiagram 1000 von Operationen zur Datenkomprimierung bereitgestellt. Das Verfahren kann das Konvertieren von Daten aus einem ersten Farbraum in einen zweiten Farbraum aufweisen, um konvertierte Daten (1002) zu erzeugen. Das Verfahren kann ferner das Empfangen der konvertierten Daten an einer diskreten Kosinustransformation (DCT) aufweisen, wobei die DCT konfiguriert ist, um wenigstens einen DCT-Koeffizienten (1004) zu erzeugen. Das Verfahren kann zusätzlich Empfangen des wenigstens einen DCT-Koeffizienten von der diskreten Kosinustransformation an einem Quantisierer aufweisen, wobei der Quantisierer konfiguriert ist, um den wenigstens einen DCT-Koeffizienten zu quantisieren und wenigstens einen quantisierten Koeffizienten an einen Entropiekodierer zu liefern, wobei der Entropiekodierer eine erste Huffman-Tabelle aufweist, die einer Anzahl von Bits entspricht, die verwendet werden, um eine Amplitude eines Nichtnull-AC-Koeffizienten (106) zu kodieren. Selbstverständlich liegen zusätzliche Operationen ebenfalls innerhalb des Bereichs der vorliegenden Offenbarung.According to an exemplary embodiment of the present disclosure, in 10 a flowchart 1000 provided by data compression operations. The method may include converting data from a first color space to a second color space to convert converted data (Fig. 1002 ) to create. The method may further comprise receiving the converted data at a Discrete Cosine Transform (DCT), wherein the DCT is configured to generate at least one DCT coefficient (DCT). 1004 ) to create. The method may additionally comprise receiving the at least one DCT coefficient from the discrete cosine transform at a quantizer, wherein the quantizer is configured to quantize the at least one DCT coefficient and provide at least one quantized coefficient to an entropy coder, the entropy coder having a first Huffman table corresponding to a number of bits used to calculate an amplitude of a non-zero AC coefficient ( 106 ). Of course, additional operations are also within the scope of the present disclosure.

Die hierin beschriebenen Ausführungsformen können beispielsweise in einem integrierten Schaltkreis (integrated circuit (IC)) implementiert sein, der beispielsweise ein System-on-a-Chip (SoC), einen anwendungsspezifischen integrierten Schaltkreis (application specific integrated circuit (ASIC)) und/oder ein Field-Programmable-Gate-Array (FPGA) aufweisen kann. „Integrierter Schaltkreis”, wie in jeder Anführungsform hierin verwendet wird, bedeutet eine Halbleitereinrichtung und/oder Mikroelektronikeinrichtung, wie etwa beispielsweise ein integrierter Halbleiterschaltkreischip, ohne auf diesen beschränkt zu sein.The Embodiments described herein can be used for example in an integrated circuit (integrated circuit (IC)), for example, a system-on-a-chip (SoC), an application-specific integrated circuit (application specific integrated circuit (ASIC)) and / or a field programmable gate array (FPGA). "Integrated circuit", as used in each embodiment herein a semiconductor device and / or microelectronics device, such as, for example, a semiconductor integrated circuit chip, without being limited to these.

Wie in jeder Ausführungsform, die hierin beschrieben wurde, verwendet wird, kann „Schaltkreise” beispielsweise einzeln oder in jeder Kombination fest verdrahtete Schaltkreise, programmierbare Schaltkreise, Zustandsmaschinenschaltkreise und/oder Firmware umfassen, die Befehle speichern, die durch programmierbare Schaltkreise ausgeführt werden. Es ist sofort einzusehen, dass jede der Operationen und/oder operativen Komponenten, die in jeder Aus führungsform hierin beschrieben sind, in Software, Firmware, fest verdrahteten Schaltkreisen und/oder jeder Kombination derselben implementiert werden können.As in each embodiment described herein For example, "circuits" can be used individually or in any combination hard-wired circuits, programmable circuits, state machine circuits and / or Include firmware that store commands by programmable Circuits are executed. It's easy to see that any of the operations and / or operational components that are in each embodiment is described herein in software, Firmware, hardwired circuits, and / or any combination the same can be implemented.

Ausführungsformen der oben beschriebenen Verfahren können in einem Computerprogramm implementiert sein, das auf einem Speichermedium gespeichert werden kann, das Befehle zum Programmieren eines Systems (beispielsweise eine Maschine) zum Durchführen der Verfahren aufweist. Das Speichermedium kann jeden Typ von Disk einschließlich Floppydisks, optische Disks, Compact-Disk-Read-only-Speicher (CD-ROMS), Compact-Disk-Rewritables (CD-RWs) und magneto-optische Disks, Halbleitereinrichtungen, wie etwa Read-only-Speicher (ROMs), Random-Access-Speicher (RAMs), wie etwa dynamische und statische RAMs, löschbare programmierbare Read-only-Speicher (EPROMs), elektrisch löschbare programmierbare Read-only-Speicher (EEPROMs), Flash-Speicher, magnetische oder optische Karten oder jeden Typ von Medien, die zum Speichern elektronischer Befehle geeignet sind, aufweisen. Andere Ausführungsformen können als Softwaremodule, die durch eine programmierbare Steuereinrichtung ausgeführt werden, implementiert sein.embodiments The methods described above can be used in a computer program be implemented, which are stored on a storage medium may be the commands for programming a system (for example a machine) for carrying out the methods. The storage medium can include any type of disk Floppy Disks, Optical Discs, Compact Disk Read Only Memory (CD-ROMS), Compact Disk Rewritables (CD-RWs) and Magneto-Optical Disks, Semiconductor Devices, such as read-only memory (ROMs), random access memory (RAMs), such as dynamic and static RAM, erasable programmable Read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), flash memory, magnetic or optical cards or any type of media suitable for storing electronic commands are, have. Other embodiments may be considered Software modules by a programmable controller to be implemented.

Die vorliegende Offenbarung kann zahlreiche Vorteile gegenüber dem Stand der Technik liefern. Beispielsweise beschreiben die Ausführungsformen, die hierin beschrieben sind, eine Anzahl von Entropiekodierungsschemata mit geringer Komplexität, die die Rechnungskomplexität VLC-basierter Entropiekodierer um näherungsweise 50% und Speicherverbrauch um näherungsweise 70% im Vergleich mit Standard-JPEG verringern. Die Ausführungen, die hierin beschrieben sind, erlauben eine Auswahl eines effizienten Kompromisses zwischen Berechnungskomplexität und Komprimierungsverhältnis.The present disclosure can provide numerous advantages over the prior art. at For example, the embodiments described herein describe a number of low complexity entropy encoding schemes that reduce the computational complexity of VLC-based entropy encoders by approximately 50% and memory consumption by approximately 70% compared to standard JPEG. The embodiments described herein allow selection of an efficient trade-off between computational complexity and compression ratio.

Beispielsweise brauchen die hierin beschriebenen Ausführungsformen kein Kodieren der Nullsequenzen zwischen Nichtnullkoeffizienten (RUNLENGTH) zu benötigen. In einigen Ausführungsformen werden Huffman-Tabellen für RUNLENGTH-Werte außerdem nicht benötigt, so dass Speicherverbrauch (siehe Tabelle 6) reduziert wird. Es wurde gezeigt, dass Wahrscheinlichkeit solcher Sequenzen für verschiedene Testfilme (siehe 5) sehr klein sein kann und dass der Effekt des Komprimierungsverhältnisses sehr klein ist (siehe 4).For example, the embodiments described herein need not require coding the null sequences between non-zero coefficients (RUNLENGTH). In addition, in some embodiments, Huffman tables are not needed for RUNLENGTH values, so memory consumption (see Table 6) is reduced. It has been shown that the probability of such sequences for different test films (see 5 ) can be very small and that the effect of the compression ratio is very small (see 4 ).

Zahlreiche Merkmale, Aspekte und Ausführungsformen wurden hierin beschrieben. Die Merkmale, Aspekte und Ausführungsformen unterliegen einer Kombination miteinander, ebenso wie Variation und Modifikation, wie Fachleuten ersichtlich ist. Die vorliegende Of fenbarung sollte daher betrachtet werden, solche Kombinationen, Variationen und Modifikationen zu umfassen.numerous Features, aspects, and embodiments have been described herein. The features, aspects and embodiments are subject a combination with each other, as well as variation and modification, as will be apparent to those skilled in the art. The present disclosure should Therefore, such combinations, variations and modifications are considered to include.

ZusammenfassungSummary

Die vorliegende Offenbarung stellt ein Verfahren zur Datenkomprimierung bereit. In einer Ausführungsform kann das Verfahren Konvertieren von Daten aus einem ersten Farbraum in einen zweiten Farbraum aufweisen, um konvertierte Daten zu erzeugen. Das Verfahren kann ferner Empfangen der konvertierten Daten an einer diskreten Kosinustransformation (DCT) aufweisen, wobei die DCT konfiguriert ist, um wenigstens einen DCT-Koeffizienten zu erzeugen. Das Verfahren kann zusätzlich Empfangen des wenigstens einen DCT-Koeffizienten von der diskreten Kosinustransformation an einem Quantisierer aufweisen, wobei der Quantisierer konfiguriert ist, um den wenigstens einen DCT-Koeffizienten zu quantisieren und wenigstens einen quantisierten Koeffizienten für einen Entropiekodierer bereitzustellen, wobei der Entropiekodierer eine erste Huffman-Tabelle aufweist, die einer Anzahl von Bits entspricht, die verwendet wird, um eine Amplitude eines Nicht-Null-AC-Koeffizienten zu kodieren.The The present disclosure provides a method of data compression ready. In one embodiment, the method may convert of data from a first color space to a second color space, to generate converted data. The method may further receive the converted data at a discrete cosine transform (DCT), wherein the DCT is configured to be at least one To produce DCT coefficients. The procedure may additionally Receiving the at least one DCT coefficient from the discrete one Cosine transform at a quantizer, wherein the quantizer is configured to quantize the at least one DCT coefficient and at least one quantized coefficient for one Entropiekodierer provide, wherein the Entropiekoder a has first Huffman table corresponding to a number of bits, which is used to produce an amplitude of a non-zero AC coefficient to code.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list The documents listed by the applicant have been automated generated and is solely for better information recorded by the reader. The list is not part of the German Patent or utility model application. The DPMA takes over no liability for any errors or omissions.

Zitierte Nicht-PatentliteraturCited non-patent literature

  • - Joint-Photographic-Experts-Group(JPEG)-Standard, ITU-T T.81 [0017] Joint Photographic Experts Group (JPEG) standard, ITU-T T.81 [0017]
  • - ISO/IEC IS 10918-1 [0017] - ISO / IEC IS 10918-1 [0017]
  • - „The JPEG Still Picture Compression Standard”, Gregory K. Wallace, IEEE Transactions on Consumer Electronics, 1991 [0019] - "The JPEG Still Picture Compression Standard", Gregory K. Wallace, IEEE Transactions on Consumer Electronics, 1991 [0019]
  • - „The JPEG Still Picture Compression Standard”, Gregory K. Wallace, IEEE Transactions an Consumer Eletronics, 1991 [0021] - "The JPEG Still Picture Compression Standard", Gregory K. Wallace, IEEE Transactions to Consumer Eletronics, 1991 [0021]

Claims (15)

Vorrichtung, umfassend: einen integrierten Schaltkreis (integrated circuit (IC)), der konfiguriert ist, um Daten zu komprimieren und/oder dekomprimieren, wobei der integrierte Schaltkreis einen Entropiekodierer aufweist, der konfiguriert ist, um wenigstens einem diskreten Kosinustransformations(DCT)-Koeffizienten zu empfangen, wobei der Entropiekodierer eine erste Huffman-Tabelle aufweist, die einer Anzahl von Bits entspricht, die verwendet wird, um eine Amplitude eines Nichtnull-AC-Koeffizienten zu codieren.Apparatus comprising: an integrated An integrated circuit (IC) configured to Data to compress and / or decompress, the integrated Circuit has an entropy coder configured at least one discrete cosine transform (DCT) coefficient the entropy coder is a first Huffman table which corresponds to a number of bits that is used to encode an amplitude of a non-zero AC coefficient. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass der Entropiekodierer ferner eine zweite Huffman-Tabelle aufweist, die einer aufeinanderfolgenden Anzahl nullwertiger AC-Koeffizienten entspricht, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangeht.Device according to claim 1, characterized in that the entropy coder further comprises a second Huffman table, that of a consecutive number of zero-valued AC coefficients corresponds to the non-zero AC coefficient in a given Sequence precedes. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass der Entropiekodierer konfiguriert ist, um wenigstens eine Null in einen Ausgabe-Stream zu schreiben, wobei die wenigstens eine Null einer aufeinanderfolgenden Anzahl von nullwertigen AC-Koeffizienten entspricht, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangeht.Device according to claim 1, characterized in that the entropy coder is configured to be at least one zero to write to an output stream, the at least one Zero of a consecutive number of zero-valued AC coefficients corresponds to the non-zero AC coefficient in a given Sequence precedes. Vorrichtung nach Anspruch 1, ferner umfassend einen Quantisierer, der konfiguriert ist, um den wenigstens einen Koeffizienten von einer forward-diskreten Kosinustransformation zu empfangen, wobei der Quantisierer ferner konfiguriert ist, um den wenigstens einen Koeffizienten zu quantisieren und wenigstens einen quantisierten Koeffizienten an den Entropiekodierer zu liefern.The device of claim 1, further comprising Quantizer configured to have the at least one coefficient receive from a forward discrete cosine transformation, wherein the quantizer is further configured to receive the at least to quantize a coefficient and at least one quantized one To provide coefficients to the entropy encoder. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass die forward-diskrete Kosinustransformation konfiguriert ist, um konvertierte Daten von einem Konvertierer zu empfangen, wobei die diskrete Kosinustransformation ferner konfiguriert ist, um den wenigstens einen DCT-Koeffizienten zu erzeugen und den wenigstens einen DCT-Koeffizienten an den Quantisierer zu liefern.Device according to claim 4, characterized in that that the forward discrete cosine transformation is configured to receive converted data from a converter, where the discrete cosine transform is further configured to execute the to generate at least one DCT coefficient and the at least to provide a DCT coefficient to the quantizer. Verfahren zur Datenkomprimierung, umfassend: Konvertieren von Daten aus einem ersten Farbraum in einen zweiten Farbraum, um konvertierte Daten zu erzeugen; Empfangen der konvertierten Daten an einer diskreten Kosinustransformation (DCT), wobei die DCT konfiguriert ist, um wenigstens einen DCT-Koeffizienten zu erzeugen; und Empfangen des wenigstens einen DCT-Koeffizienten von der diskreten Kosinustransformation an einem Quantisierer, wobei der Quantisierer konfiguriert ist, um den wenigstens einen DCT-Koeffizienten zu quantisieren und wenigstens einen quantisierten Koeffizienten an einen Entropiekodierer zu liefern, wobei der Entropiekodierer eine erste Huffman-Tabelle aufweist, die einer Anzahl von Bits entspricht, die verwendet werden, um eine Amplitude eines Nichtnull-AC-Koeffizienten zu kodieren.A method of data compression, comprising: Convert from data from a first color space to a second color space to generate converted data; Receive the converted Data at a Discrete Cosine Transform (DCT), where the DCT is configured to generate at least one DCT coefficient; and Receiving the at least one DCT coefficient from the discrete cosine transform at a quantizer, wherein the Quantizer is configured to the at least one DCT coefficient to quantize and at least one quantized coefficient to an entropy coder, the entropy coder has a first Huffman table that corresponds to a number of bits, which are used to calculate an amplitude of a non-zero AC coefficient to code. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, dass der Entropiekodierer ferner eine zweite Huffman-Tabelle aufweist, die einer aufeinanderfolgenden Anzahl von nullwertigen AC-Koeffizienten entspricht, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangeht.Device according to claim 6, characterized in that the entropy coder further comprises a second Huffman table, that of a consecutive number of zero-valued AC coefficients corresponds to the non-zero AC coefficient in a given Sequence precedes. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass der Entropiekodierer konfiguriert ist, um wenigstens eine Null in einen Ausgabe-Stream zu schreiben, wobei die wenigstens eine Null einer aufeinanderfolgenden Anzahl nullwertiger AC-Koeffizienten entspricht, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangeht.Method according to Claim 6, characterized the entropy coder is configured to be at least one zero to write to an output stream, the at least one Zero of a consecutive number of zero-valued AC coefficients corresponds to the non-zero AC coefficient in a given Sequence precedes. Verfahren nach Anspruch 7, fernen umfassend: Vergleichen des wenigstens einen DCT-Koeffizienten mit Null; Erhöhen eines Zählers, der einer aufeinanderfolgenden Anzahl nullwertiger AC-Koeffizienten entspricht, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangeht; Modifizieren des Zählers, falls die aufeinanderfolgende Anzahl nullwertiger AC-Koeffizienten, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangeht, größer ist als ein gegebener Schwellenwert und kein Ende des Blocks (end-of-block (EOB)) ist; Erkennen eines Nichtnull-Koeffizienten und Erhalten und Schreiben eines Codewortes, das wenigstens einer aufeinanderfolgender Anzahl von nullwertigen AC-Koeffizienten, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangeht, entspricht, und wobei die Anzahl von Bits verwendet wird, um eine Amplitude eines Nichtnull-AC-Koeffizienten zu kodieren; und Schreiben der Amplitude des Nichtnull-AC-Koeffizienten in Binärform.The method of claim 7, further comprising: to compare the at least one DCT coefficient of zero; Increase of a counter which zeroes out of a consecutive number AC coefficient corresponding to the non-zero AC coefficient precedes in a given sequence; Modifying the counter, if the consecutive number of zero-valued AC coefficients, which precedes the non-zero AC coefficient in a given sequence, is greater than a given threshold and no End of block (EOB) is; Detecting a non-zero coefficient and obtaining and writing a codeword that is at least one successive one Number of zero-valued AC coefficients corresponding to the non-zero AC coefficient precedes in a given sequence corresponds, and wherein the Number of bits used is an amplitude of a non-zero AC coefficient to code; and Write the amplitude of the non-zero AC coefficient in binary form. Verfahren nach Anspruch 8, ferner umfassen: Vergleichen des wenigstens einen DCT-Koeffizienten mit Null; Detektieren eines Nichtnull-Koeffizienten und Erhalten und Schreiben eines Codewortes, das wenigstens einer aufeinanderfolgenden Anzahl nullwertiger AC-Koeffizienten entspricht, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangeht, und wobei die Anzahl von Bits verwendet wird, um eine Amplitude eines Nichtnull-AC-Koeffizienten zu kodieren; und Schreiben der Amplitude des Nichtnull-AC-Koeffizienten in Binärform.The method of claim 8, further comprising: to compare the at least one DCT coefficient of zero; detect a non-zero coefficient and getting and writing a codeword, the at least one consecutive number of zero-valued AC coefficients corresponds to the non-zero AC coefficient in a given Sequence precedes, and where the number of bits is used to encode an amplitude of a non-zero AC coefficient; and Write the amplitude of the non-zero AC coefficient in binary form. Erzeugnis, umfassend ein Speichermedium, das darauf gespeichert Befehle aufweist, die beim Ausführen durch eine Maschine zu Folgendem führen: Konvertieren von Daten aus einem ersten Farbraum in einen zweiten Farbraum, um konvertierte Daten zu erzeugen; Empfangen der konvertierten Daten an einer diskreten Kosinustransformation (DCT), wobei die DCT konfiguriert ist, um wenigstens einen DCT-Koeffizienten zu erzeugen; und Empfangen des wenigstens einen DCT-Koeffizienten von der diskreten Kosinustransformation an einem Quantisierer, wobei der Quantisierer konfiguriert ist, um den wenigstens einen DCT-Koeffizienten zu quantisieren und wenigstens einen quantisierten Koeffizienten an einen Entropiekodierer zu liefern, wobei der Entropiekodierer eine erste Huffman-Tabelle aufweist, die einer Anzahl von Bits entspricht, die verwendet werden, um eine Amplitude eines Nichtnull-AC-Koeffizienten zu kodieren.Product comprising a storage medium thereon has stored instructions when executed by lead a machine to: Convert from Data from a first color space to a second color space converted to Generate data; Receive the converted data on one discrete cosine transform (DCT), where the DCT is configured is to produce at least one DCT coefficient; and Receive of the at least one DCT coefficient from the discrete cosine transform at a quantizer, where the quantizer is configured, to quantize the at least one DCT coefficient and at least provide a quantized coefficient to an entropy encoder, the entropy coder having a first Huffman table, which corresponds to a number of bits used to make a Amplitude of a non-zero AC coefficient to code. Erzeugnis nach Anspruch 11, dadurch gekennzeichnet, dass der Entropiekodierer ferner eine zweite Huffman-Tabelle aufweist, die einer aufeinanderfolgenden Anzahl nullwertiger AC-Koeffizienten entspricht, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangeht.Product according to claim 11, characterized in that the entropy coder further comprises a second Huffman table, that of a consecutive number of zero-valued AC coefficients corresponds to the non-zero AC coefficient in a given Sequence precedes. Erzeugnis nach Anspruch 11, dadurch gekennzeichnet, dass der Entropiekodierer konfiguriert ist, um wenigstens eine Null in einen Ausgabe-Stream zu schreiben, wobei die wenigstens eine Null einer aufeinanderfolgenden Anzahl nullwertiger AC-Koeffizienten entspricht, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangehen.Product according to claim 11, characterized in that the entropy coder is configured to be at least one zero to write to an output stream, the at least one Zero of a consecutive number of zero-valued AC coefficients corresponds to the non-zero AC coefficient in a given Sequence ahead. Erzeugnis nach Anspruch 12, ferner umfassend: Vergleichen des wenigstens einen DCT-Koeffizienten mit Null; Erhöhen eines Zählers, der einer aufeinanderfolgenden Anzahl nullwertiger AC-Koeffizienten entspricht, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangeht; Modifizieren des Zählers, falls die aufeinanderfolgende Anzahl nullwertiger AC-Koeffizienten, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangeht, größer ist als ein gegebener Schwellenwert, und kein Ende des Blocks (end-of-block (EOB)) ist; Detektieren eines Nichtnull-Koeffizienten und Erhalten und Schreiben eines Codewortes, das wenigstens einer aus einer aufeinanderfolgenden Anzahl nullwertiger AC-Koeffizienten entspricht, die dem Nichtnull-AC-Koeffizienten in einer gegebenen Sequenz vorangeht, und wobei die Anzahl von Bits verwendet wird, um eine Amplitude eines Nichtnull-AC-Koeffiezienten zu kodieren; und Schreiben der Amplitude des Nichtnull-AC-Koeffizienten in Binärform.The article of claim 12, further comprising: to compare the at least one DCT coefficient of zero; Increase of a counter which zeroes out of a consecutive number AC coefficient corresponding to the non-zero AC coefficient precedes in a given sequence; Modifying the counter, if the consecutive number of zero-valued AC coefficients, which precedes the non-zero AC coefficient in a given sequence, is greater than a given threshold, and is not an end-of-block (EOB); detect a non-zero coefficient and getting and writing a codeword, the at least one of a consecutive number of zeros AC coefficient corresponding to the non-zero AC coefficient in a given sequence and where the number of bits is used to calculate an amplitude of a non-zero AC coefficient to code; and Write the amplitude of the non-zero AC coefficient in binary form. Erzeugnis nach Anspruch 13, ferner umfassend: Vergleichen des wenigstens einen DCT-Koeffizienten mit Null; Detektieren eines Nichtnull-Koeffizienten und Erhalten und Schreiben eines Codewortes, das wenigstens einer aus der aufeinanderfolgenden Anzahl nullwertiger AC-Koeffizienten entspricht, die dem Nichtnull-AC-Koeffizienten in einer gege benen Sequenz vorangehen, und wobei die Anzahl von Bits verwendet wird, um eine Amplitude eines Nichtnull-AC-Koeffizienten zu kodieren; und Schreiben der Amplitude des Nichtnull-AC-Koeffizienten in Binärform.The article of claim 13, further comprising: to compare the at least one DCT coefficient of zero; detect a non-zero coefficient and getting and writing a codeword, the at least one of the consecutive number of zeros AC coefficient corresponding to the non-zero AC coefficient precede in a given sequence, and where the number of Bits is used to give an amplitude of a non-zero AC coefficient to code; and Write the amplitude of the non-zero AC coefficient in binary form.
DE112008003626T 2008-01-18 2008-01-18 Low complexity coding in data compression systems Withdrawn DE112008003626T5 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2008/000025 WO2009091279A1 (en) 2008-01-18 2008-01-18 Separate huffman coding of runlength and size data of dct coefficients

Publications (1)

Publication Number Publication Date
DE112008003626T5 true DE112008003626T5 (en) 2010-12-16

Family

ID=39865630

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112008003626T Withdrawn DE112008003626T5 (en) 2008-01-18 2008-01-18 Low complexity coding in data compression systems

Country Status (4)

Country Link
EP (1) EP2235950A1 (en)
CN (1) CN101919252A (en)
DE (1) DE112008003626T5 (en)
WO (1) WO2009091279A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8891616B1 (en) 2011-07-27 2014-11-18 Google Inc. Method and apparatus for entropy encoding based on encoding cost
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
US9774856B1 (en) 2012-07-02 2017-09-26 Google Inc. Adaptive stochastic entropy coding
US9509998B1 (en) 2013-04-04 2016-11-29 Google Inc. Conditional predictive multi-symbol run-length coding
US9392288B2 (en) 2013-10-17 2016-07-12 Google Inc. Video coding using scatter-based scan tables
US9179151B2 (en) 2013-10-18 2015-11-03 Google Inc. Spatial proximity context entropy coding
CN112449185B (en) * 2019-08-28 2022-01-25 腾讯科技(深圳)有限公司 Video decoding method, video encoding device, video encoding medium, and electronic apparatus
CN115664426B (en) * 2022-12-27 2023-03-21 深圳安德空间技术有限公司 Real-time lossless compression method and system for ground penetrating radar data

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"The JPEG Still Picture Compression Standard", Gregory K. Wallace, IEEE Transactions an Consumer Eletronics, 1991
"The JPEG Still Picture Compression Standard", Gregory K. Wallace, IEEE Transactions on Consumer Electronics, 1991
ISO/IEC IS 10918-1
Joint-Photographic-Experts-Group(JPEG)-Standard, ITU-T T.81

Also Published As

Publication number Publication date
WO2009091279A1 (en) 2009-07-23
EP2235950A1 (en) 2010-10-06
CN101919252A (en) 2010-12-15

Similar Documents

Publication Publication Date Title
DE69720559T2 (en) Image encoding method with variable length codes
DE69434862T2 (en) SEGMENTATION-BASED REMOVAL OF ARTIFACTS FROM A JPEG IMAGE
DE112008003626T5 (en) Low complexity coding in data compression systems
DE60305325T2 (en) SYSTEM AND METHOD FOR RATE DRAINING OPTIMIZED DATA PARTITIONING FOR VIDEO-CORDING USING REVERSE ADAPTATION
DE19861377B4 (en) An improved compression and decompression system with reversible wavelets and lossy reconstruction
EP1467491B1 (en) Arithmetical coding of transform coefficients
DE69722601T2 (en) DATA COMPRESSION WITH HYBRID LOSS ENTROPY CODING FROM RUN-LENGTH CODES
DE60312620T2 (en) CODING AND DECODING METHOD WITH VARIABLE LENGTH
DE69826928T2 (en) Compression of a mosaic picture
DE10253418A1 (en) Image signal coding method, involves selecting reference block from set of reference blocks, and generating scanning order to scan blocks that are to be coded of reference blocks
DE112011104625T5 (en) Method of encoding videos using dictionaries
DE10022331A1 (en) Method for transformation coding of moving image sequences e.g. for audio-visual objects, involves block-wise assessing movement vectors between reference- and actual- image signals of image sequence
DE602004001993T2 (en) TRANSFORMATION BASED REMAINING FRAME MOVEMENT OVERCOMPLETE BASIC CODING PROCESS AND ASSOCIATED VIDEO COMPRESSION DEVICE
DE112012005164T5 (en) Method and apparatus for context-adaptive binary arithmetic coding of syntax elements
DE60211171T2 (en) PROCESSING OF A COMPRESSED MEDIA SIGNAL
DE102018122297A1 (en) Process for compression and decompression of image data
DE102010010736A1 (en) Method of compressing image data
DE60015755T2 (en) LOSS-FREE ADAPTIVE CODING OF DATA OF A FINAL ALPHABET
DE102005051723A1 (en) Apparatus and method for image processing
DE19819405B4 (en) Implementation of a reversible embedded wavelet system
EP1425920B1 (en) Method of video coding and computer program product
DE102012111405A1 (en) Method for efficiently decoding variable length codes
US5218650A (en) Quantization method for use in image compression
US7492956B2 (en) Video coding using multi-dimensional amplitude coding and 2-D non-zero/zero cluster position coding
DE602004011213T2 (en) INTRAFRAME COMPRESSION AND DECOMPRIMATION OF VIDEO SIGNALS WITH A FIXED BITRATE

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04N0007260000

Ipc: H04N0019000000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04N0007260000

Ipc: H04N0019000000

Effective date: 20131204

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