DE112008003626T5 - Low complexity coding in data compression systems - Google Patents
Low complexity coding in data compression systems Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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/426—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/439—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/93—Run-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.
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:
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
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
Unter
Bezugnahme auf
Wiederum
unter Bezugnahme auf
Entropiekodierer
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
Wie
oben diskutiert wurde, kann die Eingabe des Entropiekodierers
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.
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).
- 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.
Lauflängenkodierung mit kurzen TabellenRun Length Encoding with short tables
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
Nach
der Ausgabe von FDCT
Entropiekodierer
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.
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
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
Demgegenüber
zeigt
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.
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
Demgegenüber
zeigt
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.
Gemäß einer
beispielhaften Ausführungsform der vorliegenden Offenbarung
wird in
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
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)
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)
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 |
-
2008
- 2008-01-18 WO PCT/RU2008/000025 patent/WO2009091279A1/en active Application Filing
- 2008-01-18 CN CN2008801253255A patent/CN101919252A/en active Pending
- 2008-01-18 DE DE112008003626T patent/DE112008003626T5/en not_active Withdrawn
- 2008-01-18 EP EP08793987A patent/EP2235950A1/en not_active Withdrawn
Non-Patent Citations (4)
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 |