DE102007017254B4 - Device for coding and decoding - Google Patents
Device for coding and decoding Download PDFInfo
- Publication number
- DE102007017254B4 DE102007017254B4 DE102007017254A DE102007017254A DE102007017254B4 DE 102007017254 B4 DE102007017254 B4 DE 102007017254B4 DE 102007017254 A DE102007017254 A DE 102007017254A DE 102007017254 A DE102007017254 A DE 102007017254A DE 102007017254 B4 DE102007017254 B4 DE 102007017254B4
- Authority
- DE
- Germany
- Prior art keywords
- sequence
- samples
- contraption
- coding
- sample
- 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.)
- Active
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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/002—Dynamic bit allocation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
Abstract
Description
Die vorliegende Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren zum Kodieren und Dekodieren von Informationssignalen, wie sie beispielsweise in der Audio- und Videokodierung vorkommen können.The The present invention relates to a device and a Method for coding and decoding information signals, as they occur, for example, in the audio and video encoding can.
Bei der Kodierung und Dekodierung von Informationssignalen sind im Bereich der konventionellen Technik sogenannte verlustbehaftete Kodierverfahren bekannt. Beispielsweise existieren bereits transformationsbasierte Kodierverfahren, wie MPEG 1/2 Layer-3 (MPEG = Moving Picture Expert Group, MP3) oder Advanced Audio Coding (AAC). Diese arbeiten mit einer Zeit-Frequenztransformation und einem psychoakustischen Modell, welches wahrnehmbare Signalanteile von nichtwahrnehmbaren Signalanteilen unterscheiden kann. Die anschließende Quantisierung der Daten im Frequenzbereich wird mit diesen Modellen gesteuert. Steht allerdings für die kodierten Signale nur ein geringes Datenvolumen zur Verfügung, damit z. B. eine niedrige Gesamtbitrate eingehalten werden kann, ist eine gröbere Quantisierung das Resultat, d. h. durch die Quantisierung entstehen dann deutlich wahrnehmbare Kodierartefakte.at The coding and decoding of information signals are in the range the conventional technique so-called lossy coding known. For example, transformation-based ones already exist Coding method, such as MPEG 1/2 Layer-3 (MPEG = Moving Picture Expert Group, MP3) or Advanced Audio Coding (AAC). These work with a time-frequency transformation and a psychoacoustic model, which perceptible signal components of non-perceivable signal components can differentiate. The subsequent quantization of the data in the frequency domain is controlled with these models. It stands, however for the coded signals only a small amount of data available, so z. B. a low overall bit rate can be met, is a coarser Quantization the result, d. H. caused by the quantization then clearly perceptible coding artifacts.
In der konventionellen Technik sind ferner die parametrischen Kodierverfahren bekannt, wie beispielsweise Philips Parametric Coding, HILN (HILN = Harmonic and Individual Lines and Noise), etc., welche das ursprüngliche Signal dekoderseitig synthetisieren. Bei niedrigen Bitraten entsteht dadurch eine Verfälschung der originalen Klangcharakteristik., d. h. solche Kodierverfahren können dann wahrnehmbare Unterschiede zum Original aufweisen.In The conventional technique is also the parametric coding method known, such as Philips Parametric Coding, HILN (HILN Harmonic and Individual Lines and Noise), etc., which are the original ones Synthesize the signal on the decoder side. At low bit rates arises thereby a falsification of original sound characteristics., d. H. such coding methods can then show noticeable differences to the original.
Im Bereich der verlustlosen Kodierung existieren prinzipiell zwei verschiedene Ansätze. Die erste Methode stützt sich darauf das Zeitsignal zu prädizieren. Der entstandene Prädiktorfehler wird dann anschließend entropiekodiert und kommt zur Speicherung bzw. Übertragung.in the In the field of lossless coding, there are basically two different ones Approaches. The first method supports to predict the time signal. The resulting predictor error is then subsequently entropy-coded and comes to storage or transmission.
Die zweite Methode benutzt als ersten Verarbeitungsschritt eine Zeit-Frequenztransformation mit anschließender verlustbehafteter Kodierung des entstandenen Spektrums. Zusätzlich kann dann noch der bei der Rücktransformation entstehende Fehler entropiekodiert werden, um eine verlustlose Kodierung des Signals zu gewährleisten, z. B. LTAC (LTAC = Lossless Transform Audio Compression).The second method uses a time-frequency transformation as the first processing step with following lossy coding of the resulting spectrum. In addition, can then the one in the reverse transformation resulting errors are entropy-coded to a lossless coding to ensure the signal z. B. LTAC (Lossless Transform Audio Compression).
Es existieren ferner zwei grundsätzliche Möglichkeiten zur Datenreduktion. Die erste Möglichkeit entspricht einer Redundanzreduktion. Hier wird eine ungleichmäßige Wahrscheinlichkeitsverteilung eines zugrundeliegenden Alphabets des Signals ausgenützt. Symbole, die eine höhere Auftrittswahrscheinlichkeit besitzen, werden z. B. mit weniger Bits dargestellt als Symbole mit einer kleineren Auftrittswahrscheinlichkeit. Oft wird dieses Prinzip auch als Entropiekodierung bezeichnet. Beim Enkodier-/Dekodierprozess gehen keine Daten verloren. Eine perfekte (verlustfreie) Rekonstruktion der Daten ist also wieder möglich. Die zweite Möglichkeit betrifft eine Irrelevanzreduktion. Bei dieser Art der Datenreduktion werden für den Benutzer nicht relevante Informationen gezielt entfernt. Als Grundlage werden hierfür oft Modelle natürlicher Wahrnehmungsbeschränkungen der menschlichen Sinne benutzt. Im Falle der Audiokodierung dient eine psychoakustische Betrachtung der Eingangssignale als Wahrnehmungsmodell, welche dann eine Quantisierung der Daten im Frequenzbereich steuert. Da Daten gezielt aus dem Enkodier-/Dekodierprozess entfernt werden, ist eine perfekte Rekonstruktion der Daten nicht mehr möglich. Es handelt sich also um eine verlustbehaftete Datenreduktion.It There are also two basic ones options for data reduction. The first possibility corresponds to a redundancy reduction. Here is an uneven probability distribution exploited an underlying alphabet of the signal. symbols, the one higher Appearance probability, z. With fewer bits represented as symbols with a smaller probability of occurrence. Often this principle is also called entropy coding. At the Encode / decode process, no data is lost. A perfect one (lossless) reconstruction of the data is again possible. The second possibility an irrelevance reduction. In this type of data reduction will be for the User selectively removes non-relevant information. As a basis be for this often models of natural perception restrictions used by the human senses. In the case of audio encoding is used a psychoacoustic consideration of the input signals as a perceptual model, which then controls a quantization of the data in the frequency domain. Since data is selectively removed from the encoding / decoding process, a perfect reconstruction of the data is no longer possible. It is therefore a lossy data reduction.
Bei üblichen transformationsbasierten Audiokodierverfahren werden die Eingangsdaten aus dem Zeit- in den Frequenzbereich transformiert und dort mit Hilfe eines psychoakustischen Modells quantisiert. Idealerweise wird durch diese Quantisierung nur so viel Quantisierungsrauschen in das Signal eingefügt, dass dieses für den Hörer nicht wahrnehmbar ist, was jedoch für niedrige Bitraten nicht eingehalten werden kann – es entstehen deutlich hörbare Kodierartefakte. Weiterhin ist es bei niedrigen Zielbitraten oftmals nötig ein Downsampling mit vorhergehender Tiefpassfilterung vorzunehmen, somit ist dann eine Übertragung hoher Frequenzanteile des ursprünglichen Signals nicht mehr ohne weiteres möglich. Diese Verarbeitungsschritte beanspruchen eine erhebliche Rechenleistung und bringen eine Einschränkung der Signalqualität mit sich.At usual Transformation based audio coding methods become the input data transformed from the time into the frequency domain and there with Help of a psychoacoustic model quantized. Ideally This quantization only causes so much quantization noise inserted in the signal, that this for the listener is imperceptible, but this is not respected for low bit rates can be - it clearly audible Kodierartefakte. Furthermore, it is often at low target bit rates necessary a downsampling with previous low pass filtering, so then is a transmission high frequency components of the original Signal no longer possible without further notice. Claim these processing steps a considerable computing power and bring a limitation of signal quality with himself.
Ziya Arnavut beschreibt in seiner Dissertation „Permutation Techniques in Lossless Compression", Lincoln, Nebraska, September 1995, Codierungskonzepte, die auf Permutationen, darunter auch Indexpermutationen basieren. Die Schrift konzentriert sich dabei vorwiegend auf verlustfreie Bildkomprimierung, wie beispielsweise dem JPG (JPG = Joint Photographic Experts). Verschiedene Codierungskonzepte werden untersucht und anhand der Codierungskosten, d. h. der benötigten Datenbits pro codiertem Symbol, verglichen. Die Schrift offenbart dabei Ansätze, die von einer Sortierung der zu komprimierenden Daten ausgeht, wie beispielsweise eine Sortierung einer Datensequenz, die aus jeweils 8 Bit Graustufenwerten eines Graustufenbildes bestehen.Ziya Arnavut describes coding concepts based on permutations, including index permutations, in his dissertation "Permutation Techniques in Lossless Compression", Lincoln, Nebraska, September 1995. The font concentrates primarily on lossless image compression, such as the JPG (JPG = Joint Various coding concepts are examined and compared on the basis of the coding costs, ie the required data bits per coded symbol, which discloses approaches which proceed from a sorting of the data to be compressed, such as a sorting of a data sequence consisting of 8 Bit greyscale values of a grayscale image of the exist.
A. A. Babaev „Procedures of Encoding and Decoding of Permutations", in: Plenum Publishing Corporation, UDC 519.15:681.3, S. 861–863, 1985, beschreibt ein Konzept zur Permutationscodierung. Vielerlei kombinatorische und Zuweisungsprobleme basieren auf dem Ausfüllen einer optimalen Zielfunktion oder Permutationscodierung. Die Schrift offenbart Verfahren zur Permutationscodierung.A. A. Babaev "Procedures of Encoding and Decoding of Permutation ", in: Plenum Publishing Corporation, UDC 519.15: 681.3, pp. 861-863, 1985, describes a concept for permutation coding. Much combinatorial and assignment problems are based on filling in an optimal objective function or permutation coding. The document discloses methods for Permutationscodierung.
Raad, M., et al. "Audio coding using sorted sinusoidal parameters", in: IEEE Circuits and Systems, 2001, ISCAS 2001, S. 401–404, vol. 2, offenbart ein Konzept zur Codierung von Audiodaten, das auf sinusoidalen Signalen basiert.Raad, M., et al. "Audio coding using sorted sinusoidal parameters ", in: IEEE Circuits and Systems, 2001, ISCAS 2001, p. 401-404, vol. 2 discloses a concept for encoding audio data that based on sinusoidal signals.
Sinusoidale Codierung erlaubt die Darstellung von Audiosignalen mittels Summen von Harmonischen, d. h. sinusoidalen Signalen. Eine effiziente Codierung kann erreicht werden, bei der Parameter, d. h. Amplituden, Phasen und Frequenzen, der Harmonischen übertragen werden, wobei am Dekoder durch Überlagerung der einzelnen Teilsignale, das Ursprungssignal rekonstruiert werden kann. Die Schrift offenbart ferner, die Parameter einer Grundfunktionen zu sortieren, beispielsweise anhand ihrer Leistung bzw. Energie oder ihrer psychoakustischen Signifikanz. Je nach gewünschter Coderate können dann mit den signifikantesten Parametern beginnend, mehr oder weniger Daten übertragen werden.sinusoidale Coding allows the representation of audio signals by means of sums of harmonics, d. H. sinusoidal signals. An efficient coding can be achieved at the parameters, d. H. Amplitudes, phases and frequencies that are harmonic transmitted, where at Decoder by overlaying the individual sub-signals, the original signal to be reconstructed can. The document further discloses the parameters of a basic function to sort, for example, based on their performance or energy or their psychoacoustic significance. Depending on the desired Code rate can then starting with the most significant parameters, more or less Transfer data become.
Die
Die Aufgabe der vorliegenden Erfindung besteht somit darin, ein alternatives Konzept zur Kodierung und Dekodierung von Informationssignalen zu schaffen.The The object of the present invention is thus to provide an alternative Concept for coding and decoding of information signals create.
Diese Aufgabe wird gelöst durch eine Vorrichtung zum Kodieren gemäß einem der Ansprüche 1, 22, 43, 61, eine Vorrich tung zum Dekodieren gemäß einem der Ansprüche 12, 33, 53, 66, ein Verfahren zum Kodieren gemäß einem der Ansprüche 10, 31, 51, 64, ein Verfahren zum Dekodieren gemäß einem der Ansprüche 20, 41, 59, 69.These Task is solved by a coding device according to one of claims 1, 22, 43, 61, a Vorrich device for decoding according to any one of claims 12, 33, 53, 66, a method of coding according to one of claims 10, 31, 51, 64, a method for decoding according to one of claims 20, 41, 59, 69.
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass ein Informationssignal aufwandsgünstiger kodiert werden kann, wenn zuvor eine Sortierung durchgeführt wird. Dabei kann angenommen werden, dass ein Informationssignal oder auch ein Audiosignal eine Sequenz von Abtastwerten umfasst, wobei die Abtastwerte von einem Zeit oder Frequenzsignal stammen können, d. h. es kann sich dabei auch um ein abgetastetes Spektrum handeln. Der Begriff Abtastwert ist somit nicht einschränkend zu verstehen. In Ausführungsbeispielen der vorliegenden Erfindung kann deswegen ein grundlegender Verarbeitungsschritt darin bestehen, die Sortierung eines Eingangssignals nach dessen Amplitude durchzuführen, wobei dies auch nach einer evtl. durchgeführten Vorverarbeitung stattfinden kann. Als Vorverarbeitung könnten im Bereich der Audiosignale beispielsweise eine Zeit-/Frequenz-Transformation, eine Prädiktion oder auch eine Multikanalredundanzreduktion, z. B. bei Mehrkanalsignalen, erfolgen, allgemein auch Dekorrelationsverfahren. Vor diesen Verarbeitungsschritten kann zusätzlich noch eine evtl. variable Einteilung des Signals in definierte Zeitabschnitte, sogenannte Frames, stattfinden. Auch eine weitere Einteilung dieser Zeitabschnitte in Subframes, die dann einzeln sortiert werden, ist möglich.Of the The present invention is based on the finding that an information signal expenses cheaper can be encoded if a sorting is performed before. It can be assumed that an information signal or else an audio signal comprises a sequence of samples, wherein the Samples from a time or frequency signal, d. H. it can also be a sampled spectrum. The term sample is thus not meant to be limiting. In exemplary embodiments Therefore, the present invention can be a fundamental processing step consist in the sorting of an input signal according to its Perform amplitude, this also take place after any pre-processing has taken place can. As preprocessing could in the field of audio signals, for example, a time / frequency transformation, a prediction or a multi-channel redundancy reduction, z. In multi-channel signals, generally, also decorrelation methods. Before these processing steps can additionally still a possible variable division of the signal into defined periods, so-called frames, take place. Also a further division of this Time periods in subframes, which are then sorted individually, is possible.
In Ausführungsbeispielen existieren nach dem Sortierschritt zum einen die sortierten Daten und zum anderen eine Rücksortiervorschrift, die als Permutation der Indizes der ursprünglichen Eingangswerte vorliegt. Beide Datensätze werden dann möglichst effektiv kodiert. Ausführungsbeispiele bieten hierzu mehrere Möglichkeiten, wie beispielsweise eine Prädiktion mit anschließender Entropiekodierung des Restsignals, d. h. das Bestimmen von Prädiktionskoeffizienten für ein Prädiktionsfilter und Bestimmen des Restsig nals, als eine Differenz zwischen einem Ausgangssignal des Prädiktionsfilters und des Eingangssignals.In embodiments After the sorting step, on the one hand, the sorted data exist and secondly, a sorting rule, which is present as a permutation of the indices of the original input values. Both records then be possible effectively coded. embodiments offer several options, such as a prediction with following Entropy coding of the residual signal, d. H. determining prediction coefficients for a prediction and determining the residual signal as a difference between a Output signal of the prediction filter and the input signal.
In anderen Ausführungsbeispielen erfolgt eine Kurvenanpassung mit geeigneten Funktionsvorschriften und Funktionskoeffizienten mit anschließender Entropiekodierung des Restsignals. In anderen Ausführungsbeispielen kann eine verlustbehaftete Kodierung erfolgen und somit die Kodierung des Restsignals auch entfallen.In other embodiments, a curve fit with appropriate Funktionsvorschrif th and function coefficients with subsequent Entropiekodierung the residual signal. In other embodiments, a lossy coding can take place and thus the coding of the residual signal also omitted.
Ausführungsbeispiele können auch eine Permutationskodierung durchführen, beispielsweise durch Erstellung von Inversionstafeln und anschließende Entropiekodierung.embodiments can also perform a permutation coding, for example by creation of inversion tables and subsequent entropy coding.
In anderen Ausführungsbeispielen kann auch eine Prädiktion von Inversionstafeln und anschließende Entropiekodierung des Restsignals durch geführt werden, sowie eine Prädiktion der Permutation und anschließende Entropiekodierung des Restsignals. Ausführungsbeispiele können durch Weglassen des Restsignals auch eine verlustbehaftete Kodierung erreichen. Alternativ kann auch ein Erstellen von Nummerierungen für die Permutationen erfolgen, vgl. A. A. Babaev: Procedures of encoding and decoding of permutations, Kibernetika, No. 6, 1984, pp. 77–82. Ferner können kombinatorische Auswahlverfahren mit anschließender Nummerierung in Ausführungsbeispielen zum Einsatz kommen.In other embodiments can also be a prediction of inversion tables and subsequent entropy coding of the Rest signal passed through be, as well as a prediction the permutation and subsequent Entropy coding of the residual signal. Embodiments can by Omitting the residual signal also achieve lossy coding. Alternatively, you can create numbering for the permutations take place, cf. A.A. Babaev: Procedures of encoding and decoding of permutations, Kibernetika, no. 6, 1984, pp. 77-82. Further can combinatorial selection method with subsequent numbering in exemplary embodiments be used.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:preferred embodiments The present invention will be described below with reference to FIG the enclosed drawings closer explained. Show it:
Bezüglich der nachfolgenden Beschreibung sollte beachtet werden, dass bei den unterschiedlichen Ausführungsbeispielen gleiche oder gleich wirkende Funktionselemente gleiche Bezugszeichen aufweisen und somit die Beschreibungen dieser Funktionselemente in den verschiedenen nachfolgend dargestellten Ausführungsbeispielen untereinander austauschbar sind. Es sei ferner noch einmal darauf hingewiesen, dass in den folgenden Ausführungsbeispielen stellvertretend für diskrete Werte eines Signals allgemein von Abtastwerten gesprochen wird. Der Begriff Abtastwert ist nicht einschränkend auszulegen, Abtastwerte können durch Abtasten eines Zeitsignals, eines Spektrums, eines allgemeinen Informationssignals usw. entstanden sein.Regarding the following description should be noted that in the different embodiments identical or functionally identical functional elements same reference numerals and thus the descriptions of these functional elements in the various embodiments illustrated below interchangeable. It is also on it again pointed out that in the following embodiments representative for discreet Values of a signal is generally spoken of samples. The term sample is not intended to be limiting, samples can by sampling a time signal, a spectrum, a general one Information signal, etc. may have arisen.
Die
Vorrichtung
In
anderen Ausführungsbeispielen
kann die Einrichtung
In
Ausführungsbeispielen
kann die Einrichtung
In
weiteren Ausführungsbeispielen
kann die Einrichtung
Die
Vorrichtung
In
weiteren Ausführungsbeispielen
kann die Einrichtung
In
Ausführungsbeispielen
kann das Informationssignal ein Audiosignal umfassen. Die Einrichtung
In
weiteren Ausführungsbeispielen
kann die Einrichtung
Die
Vorrichtung
In
Ausführungsbeispielen
kann das Informationssignal ein Audiosignal aufweisen. Ferner kann
die Einrichtung
Die
Einrichtung
In
einem anderen Ausführungsbeispiel
kann die Einrichtung
In
Ausführungsbeispielen
kann die Einrichtung
Die
Einrichtung
Die
Aus
den in der
Die
Prädiktion
ist möglich,
da sich eine im Eingangssignal vorhandene Korrelation auf die entstehende Permutation
bzw. Inversionstafel überträgt, vgl.
Bei den Inversionstafeln handelt es sich um eine äquivalente Darstellung der Permutation, die jedoch für eine Entropiekodierung besser geeignet sind. Für eine verlustbehaftete Kodierung ist es ebenso möglich die Rücksortierung nur unvollständig durchzuführen, um somit an Datenaufkommen einzusparen.at The inversion tables are an equivalent representation of the Permutation, however, for an entropy coding are more suitable. For lossy coding is it equally possible that resort only incomplete perform, thus save on data traffic.
Die
Die
Ausführungsbeispiele können ferner ein Kodiersystem besitzen, das 3 Betriebsmodi aufweist. Ein Modus 1 könnte hohe Kompressionsraten mit Hilfe einer psychoakustischen Betrachtung des Eingangssignals ermöglichen. Ein Modus 2 könnte mittlere Kompressionsraten ohne Psychoakustik und ein Modus 3 könnte niedrigere Kompressionsraten, jedoch mit verlustloser Kodierung ermöglichen.embodiments can further having a coding system having 3 modes of operation. One Mode 1 could be high compression rates using a psychoacoustic approach enable the input signal. A mode 2 could be Medium compression rates without psychoacoustics and a mode 3 could be lower Compression rates, but with lossless coding allow.
Allen
Modi gemeinsam könnte
der Verzicht auf die Verarbeitungsstufen der Quantisierung, des Resamplings
und der Tiefpassfilterung sein. Es könnte somit in allen 3 Stufen
die volle Bandbreite des Eingangssignals übertragen werden.
Danach
werden die Spektrallinien nach der Größe ihrer Amplituden sortiert
Die
Daten der Lauflängenkodierung
bzw. des Permutationskodierers
Das
Blockschaltbild der
Die
In anderen Ausführungsbeispielen kann auch auf die Zeit-/Frequenztransformation verzichtet werden und ein Informationssignal direkt im Zeitbereich sortiert, wie oben beschrieben, kodiert und übertragen werden.In other embodiments can also apply to the time / frequency transformation be omitted and an information signal directly in the time domain sorted as described above, coded and transmitted.
Die
Für das gesamte
Spektrum können
gemäß Ausführungsbeispielen
also letztendlich nur noch die Funktionstypen und deren Koeffizienten
bzw. für
die Bereiche 1 und 5 ggf. die Amplitudenwerte übertragen. Die gewählte Einteilung
in 5 Bereiche dient hier nur als Beispiel, es ist natürlich jederzeit
möglich
andere Aufteilungen zu wählen,
um z. B. die Qualität
der Approximation zu verbessern.
In Ausführungsbeispielen entsteht durch die Umsortierung eine Zahlenfolge der Spektrallinienindizes, die eine Permutation der Indexmenge darstellt. In Ausführungsbeispielen kann die Zahlenfolge dieser umsortierten Indizes direkt übertragen werden, wobei dabei relativ große Datenmengen anfallen können, die, da sie völlig gleichverteilt sind, nicht durch eine Entropiekodierung reduzierbar sind. Um die gleichverteilte Zahlenfolge der Indizes der sortierten Spektrallinien, diese Zahlenfolge ist logischerweise unsortiert, auf eine ungleichverteilte Folge abzubilden, kann in Ausführungsbeispielen eine Inversionstafelbildung auf die Indizes angewendet werden, welche eine bijektive, also eindeutig umkehrbare Abbildung darstellt, und ein nicht gleichverteiltes Ergebnis liefert.In embodiments, the resorting results in a number sequence of the spectral line indices, which represents a permutation of the index quantity. In embodiments, the number sequence of these resorted indexes can be transmitted directly, whereby relatively large amounts of data can arise, which, since they are completely uniform, can not be reduced by an entropy coding. To the gleichverteilte Zahlenfol In the case of the indices of the sorted spectral lines, this sequence of numbers is logically unsorted to map to an unequally distributed sequence, in embodiments an inversion table formation can be applied to the indices, which represents a bijective, that is to say unambiguously reversible, mapping and an unequally distributed result.
Eine nicht gleichverteilte invertierte Zahlenfolge wird nun entropiekodiert und somit das zu übertragende Datenvolumen reduziert. Im Folgenden wird ein kleines Beispiel zur Funktionsweise der Inversionstafel erläutert. Gegeben sei eine Menge von Zahlenpaaren A = {(xi, y1), ..., (xn, yn) wobei die xi eine Indizierung der yi darstellen sollen, so dass die xi eine streng monoton steigende Folge bilden. Bei den yi könnte es sich z. B. um Amplitudenwerte eines Frequenzspektrums handeln, z. B. A = ((1, 5), (2, 3), (3, 1), (4, 2), (5, 8), (6, 2.3), (7, 2), (8, 4.5), (9, 6)}.An invariably distributed inverted number sequence is now entropy-coded and thus the data volume to be transmitted is reduced. The following is a small example of how the inversion panel works. Given a set of number pairs A = {(xi, y 1), ..., (x n, y n) where the x i are intended to provide indexing of y i, so that the x i form a monotonically strictly increasing sequence , The y i could be z. B. be amplitude values of a frequency spectrum, z. B. A = ((1, 5), (2, 3), (3, 1), (4, 2), (5, 8), (6, 2.3), (7, 2), (8, 4.5), (9, 6)}.
Nun
wird A anhand der Größe der yi sortiert, so dass die yi eine
monoton fallende Folge bilden. Die xi werden
dadurch zu einer unsortierten Zahlenfolge, also eine Permutation
der ursprünglichen
xi.
A' = ((5, 8), (9, 6), (1, 5), (8, 4.5),
(2, 3), (6, 2.3), (4, 2), (7, 2), (3, 1))
xi' = {5, 9, 1, 8, 2,
6, 4, 7, 3}
yi' = {8, 6, 5, 4.5, 3, 2.3, 2, 2, 1}Now, A is sorted on the basis of the size of y i , so that the y i form a monotone decreasing sequence. The x i thus become an unsorted number sequence, ie a permutation of the original x i .
A '= ((5, 8), (9, 6), (1, 5), (8, 4.5), (2, 3), (6, 2.3), (4, 2), (7, 2 ), (3, 1))
x i '= {5, 9, 1, 8, 2, 6, 4, 7, 3}
y i '= {8, 6, 5, 4.5, 3, 2.3, 2, 2, 1}
Inversionstafelbildung
von xi:
Die
Umkehrung der Inversiontafel ergibt wieder die ursprüngliche
Zahlenfolge:
Prinzipiell sind noch weitere Möglichkeiten der Inversionstafelbildung möglich, siehe z. B.in principle There are other possibilities the inversion table formation possible, see, for. B.
Ziya Arnavut: Permutations Techniques in Lossless Compression, Dissertation, 1995.Ziya Arnavut: Permutations Techniques in Lossless Compression, Dissertation, 1995th
Weiterhin wäre in anderen Ausführungsbeispielen nach der Bildung der Inversionstafel eine Differenzkodierung, wie sie z. B. in Ziya Arnavut: Permutations Techniques in Lossless Compression, Dissertation, 1995, beschrieben ist oder andere Nachbearbeitungen (z. B. Prädiktion), die die Entropie verkleinern, denkbar.Farther would be in other embodiments after the formation of the inversion chart, a difference coding like them z. In Ziya Arnavut: Permutation Techniques in Lossless Compression, Dissertation, 1995, or other post-processing (eg prediction), which reduce the entropy, conceivable.
Ausführungsbeispiele der vorliegenden Erfindung arbeiten nach einem völlig anderen Prinzip als bereits bestehende Systeme. Durch die Vermeidung der Rechenschritte der Quantisierung, des Resamplings und der Tiefpassfilterung sowie durch den wahlweisen Verzicht einer psychoakustischen Betrachtung können Ausführungsbeispiele an Berechnungskomplexität einsparen. Die Qualität der Kodierung hängt für den Modus 2 ausschließlich von der Güte der Approximation der Funktionsvorschrift an das sortierte Frequenzspektrum ab, während für den Modus 1 die Qualität hauptsächlich durch das verwendete psychoakustische Modell bestimmt wird.embodiments The present invention operates on a completely different principle than already existing systems. By avoiding the calculation steps of Quantization, resampling and low-pass filtering and by the optional renouncement of a psychoacoustic consideration may be exemplary embodiments at computational complexity save on. The quality the coding depends for the Mode 2 exclusively of kindness the approximation of the functional specification to the sorted frequency spectrum, while for the Mode 1 the quality mainly determined by the psychoacoustic model used.
Die Bitrate aller Modi ist zum allergrößten Teil von der Komplexität der zu übertragenden Rücksortierungsvorschrift abhängig. Die Bitratenskalierbarkeit ist in einem weiten Bereich gegeben, von hoher Kompression bis hin zu verlustfreier Kodierung bei höheren Datenraten ist jede Abstufung möglich. Aufgrund des Funktionsprinzips kann auch bei relativ niedrigen Bitraten die volle Frequenzbandbreite des Signals übertragen werden. Die geringen Anforderungen an die Rechenleistung und den Speicherplatz ermöglichen eine Anwendung und Implementierung von Ausführungsbeispielen nicht nur auf herkömmlichen PCs, sondern auch auf portablen Endgeräten.The bitrate of all modes depends for the most part on the complexity of the resort rule to be transferred. The bit rate scalability is given in a wide range, from high compression to lossless coding at higher data rates, any gradation is possible. Due to the principle of operation, the full frequency bandwidth of the signal can be transmitted even at relatively low bit rates. The low demands on the computing power and the memory space allow an application and implementation of embodiments not only on conventional PCs, but also on portable terminals.
Weiterhin
wäre z.
B. ein Einsatz im Bereich des MPEG-4 Scalable, MPEG Surround,
oder
im Low-Delay-Bereich, hier evtl. auch in Verbindung mit einer Anwendung
im Zeitbereich möglich.Furthermore, z. As an application in the field of MPEG-4 Scalable, MPEG Surround,
or in the low-delay range, possibly also in conjunction with an application in the time domain possible.
Da das Funktionsprinzip von Ausführungsbeispielen keine restriktiven Anforderungen an das zu kodierende Signal stellt, können auch Anwendungen insbesondere des verlust freien Modus außerhalb der Audiokodierung, wie beispielsweise in der Videokodierung oder anderen Bereichen vorkommen.There the functional principle of embodiments does not impose restrictive requirements on the signal to be coded, can Also, applications in particular of loss-free mode outside audio encoding, such as in video encoding or other areas.
Da die entstehenden Bitraten erheblich von der Komplexität der zu übertragenden Rücksortierungsvorschrift abhängen, sind noch weitere Ausführungsbeispiele denkbar. Eine Verbesserung ist möglich, wenn beispielsweise ein Schlüssel übertragen wird, mit dem sich auf Dekoderseite die entstandene Permutation eindeutig identifizieren lässt. Schon vorhandene Arbeiten auf dem Gebiet der "Restricted Permutations" lassen sich hierzu als Grundlage benutzen.There the resulting bit rates are significantly different from the complexity of the ones to be transmitted Resort regulation depend, are still other embodiments conceivable. An improvement is possible for example, when transferring a key becomes, on the decoder side, the resulting permutation clearly identifiable. Existing work in the field of "Restricted Permutations" can be found here as a basis.
Ausführungsbeispiele können zusätzlich die Übertragung eines Fehler- oder Restsignals vorsehen, hiermit könnte die Qualität der Modi 1 und 2 gesteigert, der Modus 2 sogar zu einem verlustlosen Mode erweitert werden. Weiterhin könnte ein übertragenes Fehlersignal eine intelligente Zurückordnung für die im Modus 1 von der Rücksortierung ausgeschlossenen Frequenzlinien ermöglichen, und so die Qualität dieses Modus weiter verbessern.embodiments can additionally the transfer provide an error or residual signal, hereby could quality Modes 1 and 2 increased, the mode 2 even to a lossless Fashion to be extended. Furthermore, a transmitted error signal could be a intelligent rearrangement for the in mode 1 from resort allow excluded frequency lines, and so the quality of this Continue to improve the mode.
Ausführungsbeispiele können für den Modus 1 auch eine Synthetisierung von Frequenzlinien vorsehen, der ähnlich wie SBR (SBR = Spectral Band Replication) arbeitet, nur hier nicht ausschließlich für den oberen Frequenzbereich zuständig ist, sondern gelöschte Zwischenfrequenzbereiche rekonstruiert. Auch eine speziell auf die bei der Approximation entstehenden Fehler abgestimmte psychoakustische Betrachtung könnte in weiteren Ausführungsbeispielen die Qualität steigern und die Bitrate senken. Da das Prinzip der Umsortierung und anschließenden Kurvenapproximation nicht auf Signale aus dem Frequenzbereich angewiesen ist, können andere Ausführungsbeispiele auch im Zeitbereich auch für den Modus 2 eingesetzt sein. Da die Modi 2 und 3 auf den Einsatz einer psychoakustischen Betrachtung verzichten, können Ausführungsbeispiele auch außerhalb der Audiokodierung eingesetzt werden.embodiments can for the Mode 1 also provide a synthesization of frequency lines similar to SBR (SBR = Spectral Band Replication) works, but not exclusively for the upper one Frequency domain responsible is, but deleted Intermediate frequency areas reconstructed. Also a special on the in the approximation resulting errors tuned psychoacoustic Consideration could in further embodiments the quality increase and lower the bitrate. Because the principle of resorting and subsequent Curve approximation does not rely on signals from the frequency domain is, can other embodiments also in the time domain for be used in the mode 2. Since the modes 2 and 3 on the use can dispense with a psychoacoustic consideration, embodiments also outside the audio encoding are used.
Ausführungsbeispiele können ferner eine auf die Besonderheiten dieses Verfahrens angepasste optimierte Verarbeitung von Stereosignalen liefern und können somit den Bitverbrauch und den Rechenaufwand gegenüber einer zweifachen Monokodierung noch einmal reduzieren.embodiments can and one adapted to the specificities of this procedure provide optimized processing of stereo signals and thus can the bit consumption and the computational effort compared to a double mono encoding reduce again.
Ausführungsbeispiele
machen sich ein Sorting Model zu Nutze. Bei einem nach dem Sorting
Model arbeitenden Kodierverfahren findet eine Sortierung der zu
kodierenden Daten statt. Dadurch wird zum einen eine künstliche
Korrelation der Daten herbeigeführt,
wodurch sich die Daten leichter kodieren lassen. Zum anderen entsteht
aber durch die Sortierung eine Permutation der ursprünglichen
Positionen der Zeitwerte. Damit ein Decoder ein ursprüngliches
Informations- oder Audiosignal wieder rekonstruieren kann, ist es
somit nötig, neben
den kodierten Zeitwerten eine Rücksortiervorschrift
(Permutation) zu kodieren und zu übertragen. Dadurch wird das
ursprüngliche
Problem, lediglich eine Kodierung der Zeitwerte durchzuführen, nun
in zwei Teilprobleme zerlegt, d. h. in eine Kodierung der sortierten
Zeitwerte und eine Kodierung der Rücksortiervorschrift.
Aus
dem anhand der
Im Falle des Sorting Model kommt im Vergleich zu herkömmlichen Kodierverfahren ein zusätzlicher Verarbeitungsschritt, die Verarbeitung der Permutation, hinzu. Somit ergeben sich in Ausführungsbeispielen beispielsweise vier grundlegende Verarbeitungsschritte:
- 1. Blockeinteilung (Frameing)
- 2. Dekorrelation der unsortierten/sortierten Zeitwerte
- 3. Verarbeitung der Permutation
- 4. Entropiekodierung der Daten aus 2. und 3.
- 1. Blocking (Frameing)
- 2. Decorrelation of unsorted / sorted time values
- 3. Processing of the permutation
- 4. entropy coding of the data from 2. and 3.
Bei der Differenzkodierung wird, wie der Name sagt, nicht der eigentliche Wert, sondern die Differenz aufeinanderfolgender Werte kodiert. Sind die Differenzen kleiner als die ursprünglichen Werte kann eine höhere Kompression erreicht werden.at The difference coding, as the name says, is not the actual one Value, but encodes the difference of successive values. If the differences are smaller than the original values may be higher compression be achieved.
Sei i ∊ N (N = Menge der natürlichen Zahlen) mit 1 ≤ i ≤ n < ∞ und xi ∊ Z (Z = Menge der ganzen zahlen), dann kann die Differenzkodierung definiert werden als: Let i ∈ N (N = set of natural numbers) with 1 ≤ i ≤ n <∞ and x i ∈ Z (Z = set of integers), then the difference coding can be defined as:
Die Differenzkodierung ist invertierbar. Sei i ∊ N (N = Menge der natürlichen Zahlen) mit 1 ≤ i ≤ n < ∞ und xi ∊ Z (Z = Menge der ganzen zahlen), dann kann die inverse Differenzkodierung definiert werden als: The difference coding is invertible. Let i ∈ N (N = set of natural numbers) with 1 ≤ i ≤ n <∞ and x i ∈ Z (Z = set of integers), then the inverse difference coding can be defined as:
Da es sich bei der Differenzkodierung um eine einfache Art der Prädiktion handelt, wird auch hier ein Warmup (ein Zeitwert bei i = 1) von der Entropiekodierung ausgeschlossen. 6 hat die Eigenschaft, daß bei absteigend sortierten Zeitwerten das Restsignal komplett in der Menge der positiven natürlichen Zahlen liegt. Dadurch lässt sich eine nachfolgende Entropiekodierung einfacher gestalten. Eine Differenzkodierung arbeitet dann optimal, wenn die zu kodierenden Werte sehr nahe beieinander liegen, also stark korreliert sind. Durch die Sortierung der Zeitwerte werden die Zeitwerte in eine starke Korrelation gebracht.There difference coding is a simple way of prediction is also a warmup (a time value at i = 1) of excluded from the entropy coding. 6 has the property that when descending sorted time values complete the rest signal in the amount of positive natural Numbers lies. By doing so leaves make a subsequent Entropiekodierung easier. A Difference coding works optimally when the ones to be coded Values are very close to each other, so are highly correlated. By sorting the time values, the time values become one strong correlation.
Weiterhin
ist der wesentlich kleinere Dynamikumfang des Restsignals der Differenzkodierung
gegenüber
den sortierten Zeitwerten auffallend. Detailierte Angaben zu
Kurvenanpassung
(CF = Curve Fitting) ist eine Technik mit der in Ausführungsbeispielen
versucht wird eine gegebene mathematische Modellfunktion bestmöglich an
Datenpunkte, hier die sortierten Zeitwerte, anzupassen. Die Effektivität der Kurvenanpassung
wird ganz wesentlich dadurch bestimmt, welche Form die zu beschreibenden
Kurven haben. Sicher ist, dass es sich je nach Art der Sortierung,
um monoton fallende bzw. monoton steigende Kurvenformen handelt.
Die
Um
Kurvenverläufe
wie in den
Die Koeffizienten c1, c2, λ1, λ2 sind Elemente der Menge der reellen Zahlen und können z. B. mit dem Nelder-Mead Simplex Algorithmus bestimmt werden.The coefficients c 1 , c 2 , λ 1 , λ 2 are elements of the set of real numbers and can, for. B. with the Nelder-Mead Simplex algorithm.
Bei
diesem Algorithmus handelt es sich um eine Methode zur Optimierung
nichtlinearer Funktionen von mehreren Parametern. Ähnlich dem
Regula-falsi-Verfahrens mit Schrittweitensteuerung wird die Tendenz der
Werte Richtung Optimum angenähert.
Der Nelder-Mead Simplex Algorithmus konvergiert in etwa linear und
ist relativ einfach und robust. Die Funktion fcf1 hat
den Vorteil, dass sie sich sehr flexibel an eine ganze Reihe von
Kurvenverläufen
anpassen kann. Nachteilig ist allerdings, dass verhältnismäßig viel
Seiteninformation (vier Koeffizienten) benötigt wird. Zudem fällt auf,
dass Teile der sortierten Kurven, z. B. der mittlere Abschnitt von
Eine
Kurvenanpassung über
die gesamte Anzahl der sortierten Zeitwerte eines Blocks ist sicher
zu ungenau. Deshalb würde
es sich anbieten den Block in mehrere kleinere Partitionen aufzuteilen.
Zerlegt man aber den Block in zu viele Partitionen die durch die
Funktionen fcf1 und fcf2 beschrieben
werden, benötigt
man sehr viele Funktionskoeffizienten. Darum wird in einem Ausführungsbeispiel
bei einer festen Gesamtblocklänge
von
In
Abschließend soll
ein direkter Vergleich zwischen der Differenzkodierung und einer
Dekorrelation durch Kurvenanpassung erfolgen. Dazu werden die jeweiligen
Kosten in Bytes pro Frame angegeben. Um einen direkten Vergleich
beider Kodierverfahren zu gewährleisten,
wird in beiden Fällen
eine vorwärtsadaptive Rice
Kodierung mit nur einem Parameter verwendet. In allen Blöcken schneidet
die Differenzkodierung besser ab als das hier angegebene Kurvenanpassung
bzw. Curve-Fitting, eine Gegenüberstellung
ist in
Im
Nachfolgenden werden Details von Ausführungsbeispielen der vorliegenden
Erfindung näher
erläutert.
Die folgende Tabelle listet das im Folgenden verwendete Audiomaterial
auf, auf das an entsprechenden Stellen Bezug genommen wird.
Man kann die verlustlose Kodierung grob in zwei Bereiche unterteilen. Es gibt universelle Verfahren, die mit Daten unterschiedlichster Art arbeiten können, und es gibt spezialisierte Verfahren, die darauf optimiert sind ganz spezielle Daten wie z. B. Audiosignale zu komprimieren.you can roughly divide the lossless coding into two areas. There are universal procedures that vary with data Can work kind of and there are specialized procedures that are optimized for it very special data such. B. to compress audio signals.
Bereits seit vielen Jahren existieren universelle Verfahren wie GZIP oder ZIP zur Kompression von digitalen Daten. GZIP verwendet zur Komprimierung den Deflate-Algorithmus, der eine Kombination aus LZ77 und Huffman Kodierung ist. Auch das ZIP Dateiformat verwendet einen ähnlichen Algorithmus zur Kompression. Ein weiteres universelles Verfahren ist BZIP2. Vor der eigentlichen Kodierung der Daten findet hier eine Präkodierung mit der Burrows-Wheeler-Transformation (BWT) statt.Already For many years, universal methods such as GZIP or ZIP for the compression of digital data. GZIP used for compression the deflate algorithm, which is a combination of LZ77 and Huffman Coding is. Also, the ZIP file format uses a similar one Algorithm for compression. Another universal procedure is BZIP2. Before the actual coding of the data takes place here a precoding with the Burrows-Wheeler transformation (BWT) instead.
BZIP2
verwendet auch eine Huffman Kodierung. Diese Programme lassen sich
auf beliebige Daten wie z. B. Text, Programmcode, Audiosignale,
etc. anwenden. Aufgrund ihrer Arbeitsweise erreichen diese Verfahren
allerdings bei Text eine wesentlich bessere Kompression als bei
Audiosignalen. Ein direkter Vergleich von GZIP und dem auf Audiosignale
spezialisierten Kompressionsverfahren SHORTEN bestätigt dies,
siehe folgende Tabelle. Es wurden die jeweiligen Standardeinstellungen
für den
Test verwendet.
Um
also für
Audiosignale einen guten Kompressionsfaktor zu erhalten, müssen die
speziellen Eigenschaften von Audiosignalen bei der Kompression berücksichtigt
werden. Die meisten verlustlosen Audiokodierverfahren haben das
in
„Framing"-Block zugeführt wird, der das Audiosignal in Signalblöcke unterteilt. Nachfolgend dekorreliert ein Intrakanal-Dekorrelationsblock oder engl. „Intrachannel Decorrelation"-Block einzelne das Signal, beispielsweise durch eine Differenzkodierung. In einem Entropiekodierungsblock oder engl. „Entropy Coding"-Block wird das Signal schließlich entropiekodiert."Framing" block is supplied, the audio signal in signal blocks divided. Subsequently, an intra-channel decorrelation block decorrels or engl. "Intra Channel Decorrelation "block single the signal, for example by a differential encoding. In an entropy coding block or engl. "Entropy Coding" block becomes the signal after all entropy.
Zunächst werden die zu verarbeitenden Daten in Signalabschnitte (Frames) x(n) ∈ Z (Z entspricht der Menge der ganzen Zahlen) einer bestimmten Größe zerlegt. Dann folgt ein Dekorrelationsschritt, in dem versucht wird so gut wie möglich die Redundanz aus dem Signal zu entfernen. Letztlich wird das aus dem Dekorrelationsschritt entstandene Signal e(n) ∈ z entropiekodiert. Bisher gibt es zwei prinzipielle Vorgehensweisen für den Dekorrelationsschritt. Die meisten verlustlosen Audiokodierverfahren verwenden eine Art lineare Prädiktion, um die Redundanz aus dem Signal zu entfernen (Predictive Modeling). Andere verlustlose Audiokoderverfahren basieren auf einem verlustbehafteten Audiokodierverfahren, bei dem neben den verlustbehafteten Daten zusätzlich das Rest- oder Fehlersignal (auch Residualsignal) zum Originalsignal kodiert wird (Lossy Coding Model). Anschließend sollen die unterschiedlichen Herangehensweisen genauer betrachtet werden.First, be the data to be processed into signal sections (frames) x (n) ∈ Z (Z corresponds the set of integers) of a certain size. Then follows Decorrelation step in which is tried as well as possible the Remove redundancy from the signal. Ultimately, that will be from the Decorrelation step generated signal e (n) ∈ z entropy-coded. So far There are two principal approaches to the decorrelation step. Most lossless audio coding methods use some sort linear prediction, to remove the redundancy from the signal (predictive modeling). Other lossless audio encoder methods are based on a lossy one Audio coding method, in which besides the lossy data additionally the residual or error signal (even residual signal) to the original signal is coded (Lossy Coding Model). Subsequently, the different Approaches will be considered in more detail.
Die
Lineare Prädiktion
(Linear Predictive Coding – LPC)
ist vor allem in der digitalen Sprachsignalverarbeitung weit verbreitet.
Ihre Bedeutung liegt nicht nur in der hohen Effizienz, sondern auch
in der relativ geringen Berechnungskomplexität. Die Grundidee der Prädiktion
besteht darin einen Wert x(n) aus vorangegangenen Werten x(n – 1), x(n – 2), ...,
x(n – p)
vorherzusagen. Werden p vorhergehende Werte zur Prädiktion verwendet,
spricht man von einem Prädiktor
p-ter Ordnung. Die in der verlustlosen Audiokodierung verwendeten
Prädiktionskodierverfahren
haben üblicherweise
die in
Hinter
Falls
das Prädiktionskodierverfahren
optimal arbeitet, wird ein großer
Teil der Redundanz aus x(n) entfernt und durch die Koeffizienten
von A ^(z) und B ^(z) repräsentiert.
Das entstehende Restsignal e(n) ist dann unkorreliert und von der
Amplitude deutlich kleiner als das Originalsignal x(n). Dadurch
wird ein Kodiergewinn erreicht. Falls B ^(z) ≠ 0, also der feedback Term gleich
0 ist, spricht man von einem FIR-Prädiktor.
Andernfalls, also B ^(z) ≠ 0,
spricht man von einem IIR-Prädiktor.
IIR-Prädiktoren
sollen hier nicht näher
betrachtet werden. IIR-Prädiktoren
sind deutlich komplexer, können
aber in einigen Fällen
einen besseren Kodiergewinn als FIR-Pädiktoren erzielen. Um aus dem
Restsignal e(n) und den Prädiktorkoeffizienten
das ursprüngliche
Signal wieder rekonstruieren zu können, geht man wie in
Hinter
Die Prädiktorkoeffizienten werden für jeden zu verarbeitenden Signalabschnitt jedesmal neu bestimmt und übertragen. Dabei kann die adaptive Bestimmung der Koeffizienten ak eines Prädiktors p-ter Ordnung entweder mit der Kovarianzmethode oder mit der Autokorrelationsmethode, welche die Autokorrelationsfunktion benutzt, erfolgen. Mit der Autokorrelationsmethode erhält man die Koeffizienten über die Lösung eines linearen Gleichungssystems folgender Form: The predictor coefficients are redetermined and transmitted each time for each signal portion to be processed. In this case, the adaptive determination of the coefficients ak of a p-th order predictor can take place either with the covariance method or with the autocorrelation method which uses the autocorrelation function. The autocorrelation method obtains the coefficients by solving a linear system of equations of the following form:
Wobei
rxx(k) = E(s(n)s(n + k)) gilt. Alternativ
kann man dies in Matrixschreibweise durch
Wie man genau auf das lineare Gleichungssystem zur Bestimmung der optimalen Prädiktorkoeffizienten kommt, ist detailliert in beschrieben. Die Gleichung läßt sich aufgrund der Matrixeigenschaften von R sehr effektiv mit dem Levinson-Durbin Algorithmus lösen.As to be precise on the linear system of equations for the determination of the optimum predictor comes is described in detail in. The equation can be due to the matrix properties of R very effective with the Levinson Durbin Solve the algorithm.
Für eine Prädiktion
nimmt man eine Einteilung der Zeitwerte in Blöcke der Größe N vor. Angenommen man möchte einen
Prädiktor
2-ter Ordnung benutzen, um die Zeitwerte aus dem aktuellen Block
n zu prädizieren,
dann ergibt sich das Problem wie mit den ersten beiden Werten aus
Block n zu verfahren ist. Man kann entweder die letzten beiden Werte
aus dem vorhergehenden Block n – 1
dazu verwenden diese zu prädizieren, oder
die ersten beiden Werte von Block n nicht prädizieren und diese in ihrer
ursprünglichen
Form belas sen. Wird auf Werte aus einem vorhergehenden Block n – 1 zurückgegriffen,
dann ist Block n nur dekodierbar wenn Block n – 1 erfolgreich dekodiert wurde.
Dies würde
aber zu Blockabhängigkeiten
führen
und dem Grundsatz Wiedersprechen jeden Block (Frame) als eine für sich alleinstehende
dekodierbare Einheit zu behandeln. Werden die ersten p Werte in
ihrer ursprünglichen
Form belassen, werden sie als engl. Warmup oder Aufwärmwerte
(siehe
Eine andere Möglichkeit eine Prädiktion zu realisieren besteht darin, die Koeffizienten nicht für jeden Signalabschnitt neu zu bestimmen, sondern immer feste Prädiktorkoeffizienten zu verwenden. Werden immer die gleichen Koeffizienten verwendet, spricht man auch von einem Fixed Predictor.Another possibility for realizing a prediction is not to re-determine the coefficients for each signal section, but always to use fixed predictor coefficients. Will always Using the same coefficients, it is also called a fixed predictor.
Beispielhaft
soll nun AudioPaK, ein Vertreter des Predictive Modeling, etwas
näher betrachtet
werden. Zuerst wird bei AudioPaK das Audiosignal in unabhängige für sich dekodierbare
Abschnitte zerlegt. Üblicherweise
werden Vielfache von 192 Abtastwerten (192, 576, 1152, 2304, 4608)
verwendet. Zur Dekorrelation wird ein FIR-Prädiktor mit festen ganzzahligen
Koeffizienten verwendet (Fixed Predictor). Dieser FIR-Prädiktor wurde
erstmals in SHORTEN verwendet. Intern besitzt der Fixed Predictor
vier verschiedene Vorhersagemodelle.
Prinzipiell
handelt es sich in der Gleichung um polynomielle Approximations-
bzw. Vorhersagemethoden. Durch ein Polynom vom Grad p – 1 können die
vorhergehenden p Abtastwerte x(n – 1), x(n – 2), ..., x(n – p) beschrieben
werden. Wertet man nun dieses Polynom an der Stelle n aus, so erhält man den
vorhergesagten Wert x ^(n). Grafisch kann man sich dies wie in
Die
durch die Prädiktion
entstehenden Restsignale ep(n) = x(n) – x ^(n) lassen
sich wie in folgender Gleichung relativ einfach rekursiv berechnen.
Letztlich wird das beste Vorhersagemodell dadurch bestimmt, dass die Summe der Beträge der Restsignalwerte am kleinsten werden. AudioPaK verwendet eine Rice Kodierung. Da die Werte des Restsignals ei(n) ∈ Z, die Rice Kodierung aber mit Werten aus N0 arbeitet, wird zunächst eine Abbildung der Restwerte ei(n) nach N0 vorgenommen.Finally, the best predictive model is determined by making the sum of the amounts of the residual signal values smallest. AudioPaK uses a Rice coding. Since the values of the residual signal e i (n) ∈ Z, but the Rice coding works with values from N 0 , a mapping of the residual values e i (n) to N 0 is first made.
Der
Rice-Parameter k wird pro Block (Frame) bestimmt, und nimmt Werte
0, 1, ..., (b – 1)
an. Wobei b die Anzahl der Bits pro Audioabtastwert darstellt. k
wird über
folgende Gleichung ermittelt
Eine
einfache Abschätzung
von k ohne jegliche Gleitkommaoperationen kann beispielsweise folgendermaßen geschehen:
for
(k = 0, N = framesize; N < AbsError;
k++, N* = 2) (NULL;)A simple estimate of k without any floating-point operations can be done, for example, as follows:
for (k = 0, N = framesize; N <AbsError; k ++, N * = 2) (NULL;)
Wobei framesize die Anzahl der Abtastwerte pro Frame und AbsError die Summe der Absolutwerte des Restsignals darstellt. Weitere Vertreter des Predictive Modeling sind SHORTEN, FLAC (siehe Coalson, Josh: FLAC – Free Lossless Audio Codec; http://flac.sourceforge.net), MPEG-4 Audio Lossless Coding (MPEG-4 ALS) und Monkey's Audio (siehe Ashland, Matthew T.: Monkey's Audio – a fast and powerful lossless audio compressor; http://www.monkeysaudio.com/index.html).In which framesize the number of samples per frame and AbsError the Represents the sum of the absolute values of the residual signal. Other representatives of Predictive Modeling are SHORTEN, FLAC (see Coalson, Josh: FLAC - Free Lossless Audio Codec; http://flac.sourceforge.net), MPEG-4 audio Lossless Coding (MPEG-4 ALS) and Monkey's Audio (see Ashland, Matthew T .: Monkey's Audio - a fast and powerful lossless audio compressor; http://www.monkeysaudio.com/index.html).
Die
zweite Möglichkeit
ein verlustloses Audiokodierverfahren zu realisieren besteht darin
auf ein verlustbehaftetes Audiokodierverfahren aufzusetzen. Ein
Vertreter des Lossy Coding Model ist LTAC, wobei statt LTAC (Lossless
Transform Audio Compression) auch die Abkürzung LTC (Lossless Transform
Coding) verwendet wird. Die prinzipielle Arbeitsweise des Encoders
ist in
Bei LTAC werden die Zeitwerte x(n) durch eine orthogonale Transformation (DCT – Diskrete Kosinus Transformation) in den Frequenzbereich transformiert. Im verlustbehafteten Teil werden dann die Spektralwerte quantisiert c(k) und entropiekodiert.at LTAC, the time values x (n) by an orthogonal transformation (DCT - Discrete Cosine transformation) transformed into the frequency domain. in the lossy part then the spectral values are quantized c (k) and entropy-coded.
Um nun ein verlustloses Kodierverfahren zu realisieren, werden zusätzlich die quantisierten Spektralwerte c(k) mit der inversen Transformation (IDCT = Inverse Discrete Cosinus Transformation) zurücktransformiert und abermals quantisiert y(n). Das Restsignal wird durch e(n) = x(n) – y(n) berechnet. Anschließend wird e(n) entropiekodiert und übertragen. Im Decoder kann man aus c(k) durch die IDCT mit anschließender Quantisierung wieder y(n) erhalten. Letztlich wird eine perfekte Rekonstruktion von x(n) im Decoder durch y(n) + e(n) = y(n) + [x(n) – y(n)] = x (n) realisiert.Around Now to realize a lossless coding method, are additionally the quantized spectral values c (k) with the inverse transformation (IDCT = Inverse Discrete Cosine Transformation) and again quantized y (n). The residual signal is represented by e (n) = x (n) - y (n) calculated. Subsequently e (n) is entropy-coded and transmitted. In the decoder you can choose from c (k) through the IDCT with subsequent quantization get y (n) again. Ultimately, a perfect reconstruction of x (n) in the decoder by y (n) + e (n) = y (n) + [x (n) -y (n)] = x (n) realized.
Ein
weiteres Verfahren welches in die Kategorie des Lossy Coding Model
fällt,
ist MPEG-4 Scalable Lossless Audio Coding (MPEG-4 SLS). Es verbindet
Funktionalitäten
der verlustfreien Audiokodierung, der verlustbehafteten Audiokodierung
und der skalierbaren Audiokodierung. MPEG-4 SLS ist auf Bitstromebene rückwärtskompatibel
zu MPEG-4 Advanced Audio Coding (MPEG-4 AAC).
Die Audiodaten werden zunächst mit einer IntMDCT (Integer Modified Discrete Cosine Transform) in den Frequenzbereich transformiert und anschließend durch ein Temporal Noise Shaping (TNS) und eine Mitten-/Seitenkanal-Kodierung wei terverarbeitet (Integer AAC Tools/Anpassung). Alles was der AAC Encoder kodiert, wird dann von den IntMDCT Spektralwerten durch ein Error Mapping/Fehlerabbildung entfernt. Übrig bleibt ein Restsignal welches einer Entropiekodierung unterzogen wird. Für die Entropiekodierung wird ein BPGC (Bit-Plane Golomb Co-de), CBAC (Context-Based Arithmetic Code) und Low Energy Mode/Niedrig Energie Modus verwendet.The Audio will be first with an IntMDCT (Integer Modified Discrete Cosine Transform) into the Frequency domain transformed and then by a temporal noise Shaping (TNS) and a center / side channel coding (Integer AAC Tools / Customization). Everything encoded by the AAC encoder is then calculated from the IntMDCT spectral values by an error mapping away. Remains a residual signal which is subjected to entropy coding. For the Entropy coding is a BPGC (Bit-Plane Golomb Co-de), CBAC (Context-Based Arithmetic Code) and Low Energy Mode / Low Energy Mode.
Die Schallübertragung über zwei oder mehr Kanäle wird als Stereophonie bezeichnet. In der Praxis wird der Begriff Stereo meist ausschließlich für zweikanalige Stücke verwendet. Liegen mehr als zwei Kanäle vor, spricht man von Mehrkanalton. Diese Masterarbeit beschränkt sich auf Signale mit zwei Kanälen, wofür synonym die Bezeichnung Stereosignale verwendet wird. Eine Möglichkeit Stereosignale zu verarbeiten besteht darin beide Kanäle unabhängig voneinander zu kodieren. In diesem Fall spricht man von unabhängiger Stereokodierung (Independent Stereo Coding). Abgesehen von "pseudostereo"-Versionen alter Monoaufnahmen (beide Kanäle identisch) oder Zweikanalton beim Fernsehen (unabhängige Kanäle) weisen Stereosignale in aller Regel sowohl Unterschiede wie auch Gemeinsamkeiten (Redundanz) zwischen den beiden Kanälen auf. Wenn es gelingt die Gemeinsamkeiten zu ermitteln und sie für beide Kanäle lediglich einmal zu übertragen, kann man die Bitrate reduzieren. In diesem Fall spricht man von abhängiger Stereokodierung (Joint Stereo Coding). Eine Möglichkeit die Redundanz zwischen Stereosignalen zu reduzieren ist die Mitten-/Seitenkanal-Kodierung (MS-Kodierung). Wie man aus einem linken Kanal L und einem rechten Kanal R einen Mittenkanal M und einen Seitenkanal S erzeugt zeigt die folgende Gleichung The sound transmission over two or more channels is called stereophony. In practice, the term stereo is usually used exclusively for two-channel pieces. If there are more than two channels, this is called multi-channel sound. This master thesis is limited to signals with two channels, for which the term stereo signals is used synonymously. One way to handle stereo signals is to encode both channels independently. In this case we speak of independent stereo coding (Independent Stereo Coding). Apart from "pseudo-stereo" versions of old mono recordings (both channels identical) or two-channel sound in television (independent channels), stereo signals usually have both differences and similarities (redundancy) between the two channels. If you can identify the similarities and transfer them only once for both channels, you can reduce the bit rate. In this case, one speaks of dependent stereo coding (Joint Stereo Coding). One way to reduce the redundancy between stereo signals is the center / side channel coding (MS coding). How to generate a center channel M and a side channel S from a left channel L and a right channel R shows the following equation
Da ist die MS-Kodierung invertierbarThere the MS coding is invertible
Auch
verlustlose Audiokodierverfahren nutzen die MS-Kodierung. Da die obige Gleichung aber
die Eigenschaft hat, dass sich in manchen Fällen Gleitkommazahlen statt
Ganzzahlen (Integer) ergeben, wird von einigen verlustlosen Audiokodierverfahren
(siehe Ashland, Matthew T.: Monkey's Audio – a fast and powerful lossless
audio compressor; http://www.monkeysaudio.com/index.html) die folgende
Gleichung für
eine MS-Kodierung verwendet
NINT bedeutet hier Rundung zur nächstgelegenen Ganzzahl bezüglich Null.NINT here means rounding to the nearest one Integer relative Zero.
Neben
einer MS-Kodierung verwenden verlustlose Audiokodierverfahren auch
eine LS-Kodierung bzw. RS-Kodierung (siehe Coalson, Josh: FLAC – Free Lossless
Audio Codec; http://flac.sourceforge.net). Um aus einer LS-Kodierung
den rechten Kanal bzw. aus einer RS-Kodierung den linken Kanal zu
erhalten geht man wie in folgender Gleichung vor
Es
gibt zwei prinzipielle Möglichkeiten
eine Stereoredundanzreduktion (Stereo Redundancy Reduction – SRR) durchzuführen. Entweder
nach der Dekorrelation der einzelnen Kanäle (siehe
In
diesem Abschnitt soll für
die vorgestellte lineare Prädiktion
(LPC = Linear Prediction Coding) eine geeignete Quantisierung entwickelt
werden. Die ermittelten Koeffizienten az sind
in aller Regel Gleitkommawerte (reelle Zahlen), was in digitalen
Systemen immer nur mit endlicher Genauigkeit dargestellt werden
kann. Also muss eine Quantisierung der Koeffizienten az stattfinden.
Dies kann aber zu größeren Prädiktionsfehlern führen und
ist bei der Erzeugung des Restsignals zu berücksichtigen. Deshalb ist es
sinnvoll die Quantisierung über
einen Genauigkeitsparameter g zu steuern. Ist g groß findet
eine feinere Quantisierung der Koeffizienten statt und es werden
mehr Bits für
die Koeffizienten benötigt.
Ist g klein findet eine gröbere
Quantisierung der Koeffizienten statt und es sind weniger Bits für die Koeffizienten
nötig.
Um eine Quantisierung realisieren zu können, wird zunächst der
betragsmäßig größte Koeffizient
amax ermittelt
Der
so ermittelte maximale Prädiktorkoeffizient
amax wird jetzt in eine Mantisse M und in
einen Exponenten E zur Basis 2 zerlegt, also
Die
Mantisse M wird im weiteren Verlauf nicht mehr benötigt, aber
der Exponent E dient dazu den Skalierungsfaktor s durch folgende
Gleichung zu ermitteln
Die
Subtraktion von 1 dient dazu vorzeichenbehafteten Koeffizienten
Rechnung zu tragen. Die quantisierten Prädiktorkoeffizienten ergeben
sich für
i = 1, 2, ..., p durch die Gleichung
Mit dem Skalierungsfaktor s und den quantisierten Prädiktorkoeffizienten α ^i wird das zu übertragende Restsignal e(n) ermittelt With the scaling factor s and the quantized predictor coefficients α ^ i , the residual signal e (n) to be transmitted is determined
Die Gleichung stellt sicher, dass e(n) ∈ Z gilt. Durch eine Übertragung des Warmup, der Parameter g, s, p, α ^i und des Restsignals e(n) zum Decoder ist dadurch eine perfekte Rekonstruktion der ursprünglichen Werte x(n) dieses Signalabschnitts möglich The equation ensures that e (n) ∈ Z. By a transfer of the warmup, the parameters g, s, p, α ^ i and the residual signal e (n) to the decoder, a perfect reconstruction of the original values x (n) of this signal section is possible
Vergrößert man die Ordnung des Prädiktors, verkleinert dies in der Regel die Varianz und Amplitude des Restsignals. Dies hat eine kleinere Datenrate für das Restsignal zur Folge. Auf der anderen Seite ist es aber so, dass für eine größere Prädiktorordnung auch mehr Koeffizienten und ein größeres Warmup, also mehr Seiteninformation, übertragen werden muss. Dadurch steigt die Gesamtdatenrate wieder an. Die Aufgabe besteht also darin eine Ordnung zu finden, bei der die Gesamtdatenrate minimiert wird.Enlarged the order of the predictor, this usually reduces the variance and amplitude of the residual signal. This results in a smaller data rate for the residual signal. On the other hand, it is the case that more coefficients are needed for a larger predictor order and a bigger warmup, So more page information, transfer must become. This increases the overall data rate again. The task So it is to find an order in which the total data rate is minimized.
In
Die
eben gewonnenen Erkenntnisse sollen nun genutzt werden einen Algorithmus
für eine
verlustlose lineare Prädiktion
in einer vereinfachten MATLAB Codedarstellung anzugeben (siehe lpc()).
Bei MATLAB handelt es sich um eine kommerzielle mathematische Software
die für
Berechnungen mit Matrizen ausgelegt ist. Daher rührt auch der Name MATrix LABoratory.
Programmiert wird unter MATLAB in einer proprietären, plattformunabhängigen Programmiersprache,
die auf dem jeweiligen Rechner interpretiert wird. Zuerst werden einige
Variablen nach den in
Hier
soll untersucht werden, ob der oben beschriebene FIR Prädiktor mit
festen und ganzahligen Koeffizienten (Fixed Predictor) gewinnbringend
erweitert werden kann. Aus obigem Abschnitt wissen wir, daß eine optimale
Ordnung p im Bereich von 1 < p < 16 liegt. Der Fixed
Predictor verwendet eine maximale Ordnung von p = 3. Die Übertragungsfunktion
des Fixed Predictor ist
T
bezeichnet hier die Abtastrate und ω = 2πf. Die übertragungsfunktion ist eine
mathematische Beschreibung des Verhaltens eines linearen, zeitinvarianten
System, welches einen Eingang und einen Ausgang besitzt. Durch den
Frequenzgang wird das Verhalten eines linearen zeitinvarianten Systems
beschrieben, wobei die Ausgangsgröße mit der Eingangsgröße verglichen
und in Abhängigkeit
von der Frequenz aufgezeichnet wird. Unter Zuhilfenahme von obiger
Gleichung werden zwei weitere Ordnungen p = 4 und p = 5 entworfen:
Die
entsprechenden Restsignale ergeben sich durch folgende Gleichung
und die Bildung des Warmup geschieht äquivalent zu obigem Abschnitt:
Eine Untersuchung soll nun zeigen ob durch die Hinzunahme von p = 4 und p = 5 ein Kodiergewinn erzielt werden kann. Dazu werden verschiedene Musikstücke untersucht und pro Block die Ordnung ausgewählt, welche die wenigsten Bits benötigt.A Investigation will now show whether the addition of p = 4 and p = 5 a coding gain can be achieved. This will be different music examined and the block selected the least bits per block needed.
In
folgender Tabelle ist dargestellt wie oft welche Ordnung als die
Beste, aufsummiert über
die gesamte Audiodatei, selektiert wurde. Für die Erstellung dieser Tabelle
wurde eine konstante Blocklänge
von 1024 Zeitwerten genommen.
Aus obiger Tabelle ist ersichtlich, daß es keine Prädiktorordnung gibt, die in allen Fällen optimal ist. Deshalb ist es sinnvoll, die beste Ordnung für jeden Block erneut zu bestimmen. Am häufigsten werden die Ordnungen p = 2, p = 3 und p = 1 selektiert. Weniger häufig werden die Ordnungen p = 0 und p = 4 verwendet. Bei Stück Nummer 1 wird durch die Erweiterung des Fixed Predictor um p = 4 ein Kodiergewinn erzielt. Die Ordnung p = 5 bringt nur bei Stück 15 einen Kodiergewinn. Da es sich bei Stück Nummer 15 um kein "gewöhnliches" Musiksignal handelt, sondern um einen 1 kHz Sinus, ist der Nutzen von p = 5 fraglich. Zudem deutet dies auch darauf hin, dass p > 5 in aller Regel keinen großen Kodiergewinn mehr bringt und lediglich die Komplexität erhöht. Wie in obigem Abschnitt, sollen die eben gewonnen Erkenntnisse genutzt werden, um einen Algorithmus (siehe fixed()) anzugeben. Zuerst werden die maximale und minimale Ordnung festgelegt. Dann folgt eine for-Schleife, welche über alle Ordnungen läuft. Innerhalb dieser Schleife wird das Restsignal mit dem entsprechenden Bitverbrauch und die Kosten für das Warmup in Abhängigkeit von der Ordnung ermittelt. Letztlich wird die beste Variante gewählt.Out The above table shows that there is no predictor order there, in all cases optimal. That's why it makes sense to have the best order for everyone Redetermine block. Most frequently the orders p = 2, p = 3 and p = 1 are selected. Fewer often the orders p = 0 and p = 4 are used. At piece number 1 becomes a coding gain by expanding the Fixed Predictor by p = 4 achieved. The order p = 5 brings a coding gain only at piece 15. There it is by piece Number 15 is not a "normal" music signal, but by a 1 kHz sine, the utility of p = 5 is questionable. In addition, this also indicates that p> 5 usually no large coding gain brings more and only increases the complexity. As in the previous section, The newly gained insights should be used to create an algorithm (see fixed ()). First, the maximum and minimum Order set. Then follows a for loop, which over all Orders running. Within this loop, the residual signal with the corresponding Bit consumption and the cost of the warmup depending on determined by the order. Ultimately, the best option is chosen.
Bei der Differenzkodierung wird, wie der Name sagt, nicht der eigentliche Wert, sondern die Differenz aufeinanderfolgender Werte kodiert. Sind die Differenzen kleiner als die ursprünglichen Werte kann eine höhere Kompression erreicht werden. Der in obigem Abschnitt beschriebene Fixed Predictor verwendet für p = 1 eine Differenzkodierung.at The difference coding, as the name says, is not the actual one Value, but encodes the difference of successive values. If the differences are smaller than the original values may be higher compression be achieved. The Fixed Predictor described in the previous section used for p = 1 a difference coding.
Definition (Differenzkodierung): Sei i ∊ N mit 1 < i < n < ∞ und xi ∈ Z, dann ist die Differenzkodierung definiert als: Definition (difference coding): Let i ε N with 1 <i <n <∞ and x i ∈ Z, then the difference coding is defined as:
Die Differenzkodierung ist invertierbar. Definition (Inverse Differenzkodierung): Sei i ∊ N mit 1 < i < n < ∞ und xi ∈ Z, dann ist die Inverse Differenzkodierung definiert als: The difference coding is invertible. Definition (inverse difference coding): Let i ε N with 1 <i <n <∞ and x i ∈ Z, then the inverse difference coding is defined as:
Wie
bei den Prädiktoren
wird das Warmup (ein Zeitwert bei i = 1) von der Entropiekodierung
ausgeschlossen. 6 hat die Eigenschaft, dass bei absteigend sortierten
Zeitwerten das Restsignal komplett in N0 liegt. Dadurch
lässt sich
eine nachfolgende Entropiekodierung einfacher gestalten. Eine Differenzkodierung
arbeitet dann optimal, wenn die zu kodierenden Werte sehr nahe beieinander
liegen, also stark korreliert sind. Durch die Sortierung der Zeitwerte
werden die Zeitwerte in eine starke Korrelation gebracht.
In
den folgenden beiden Abschnitten werden Methoden entwickelt, wie
man Permutationen effektiv kodieren kann. Legt man eine gedächtnisfreie
Betrachtung einer Permutation zugrunde, dann ist die Entropie einer
beliebigen Permutation σ mit
|σ| < ∞ durch
folgende Gleichung gegeben. Auf die gedächtnisbehaftete Betrachtung
einer Permutation soll hier bewusst verzichtet werden, da eine gedächtnisfreie
Betrachtung die einfachste Art der Kodierung einer Permutation darstellt
H(σ) beschreibt dann die nötige Anzahl von Bit/Zeichen für Binärkodierung eines σ(i). Um z. B. eine Permutation der Länge 256 darzustellen, benötigt man pro Element 8 Bit.H (σ) describes then the necessary Number of bits / characters for binary encoding a σ (i). To z. B. a permutation of the length 256 is needed one per element 8 bits.
Dies ist darin begründet, dass das Auftreten der Elemente der Permutation gleichwahrscheinlich ist. Die bei der Kodierung eines Audiosignals (z. B. 16 Bit Auflösung) durch Sortierung der Zeitwerte entstehende Permutation würde in diesem Beispiel allein die Hälfte der Eingangsdatenrate benötigen. Da dieses Datenvolumen bereits relativ hoch ist, stellt sich folgende Frage: Können Permutationen mit weniger als log2(|σ|) Bit pro Element binär kodiert werden?This is because the occurrence of the elements of permutation is likely. The permutation resulting from the coding of an audio signal (eg 16-bit resolution) by sorting the time values would in this example alone require half the input data rate. Since this data volume is already relatively high, the following question arises: Can permutations with less than log 2 (| σ |) bits per element be binary coded?
In obigem Abschnitt wurde gezeigt, dass man von der Permutationsdarstellung in eine äquivalente Inversionstafeldarstellung und zurück wechseln kann. Es soll deshalb untersucht werden, ob eine Binärdarstellung der Inversionstafel eine kleinere Datenrate benötigt als die der Permutation. Ein Beispiel soll Aufschluss darüber geben. Beispiel: Gegeben sind folgende Permutationen In the previous section it was shown that one can switch from the permutation representation to an equivalent inversion table representation and back. It is therefore to be investigated whether a binary representation of the inversion chart requires a smaller data rate than that of the permutation. An example should provide information about it. Example: Given are the following permutations
Wird
von σ und π die Inversionstafel
gebildet, so ergibt sich I(σ)
= (2110), I(π)
= (3210). Es gilt
D.
h. die Entropie der Inversionstafel ist tatsächlich kleiner als die der
Permutation. Aber für π ergibt sich
Im
Falle von π ist
also die Entropie der Inversionstafel genauso groß wie die
der Permutation. Aber betrachtet man π in umgekehrter Folge, d. h. π(4), π(3), π(2), π(1) erhält man die
identische Permutation und deren Inversionstafel hat eine sehr kleine
Entropie. In jedem Falle gilt für
eine beliebige Permutation σ mit
|σ| < ∞:
Es sollen nun weitere Inversionstafelbildungsvorschriften definiert werden, um dem im obigen Beispiel beschriebenen Problem mit π entgegenzuwirken. Zunächst soll der Vollständigkeit halber nochmal die in obigem Abschnitt beschriebene Inversionstafelbildungsvorschrift (im folgenden Inversionstafel LB) erwähnt werden.It Now further inversion panel formation rules are to be defined to counteract the problem with π described in the above example. First should be the completeness half again the inversion boarding instruction described in the above section (in the following inversion chart LB).
Definition (LB = Left Bigger): Sei σ ∊ Sn eine Permutation und bj mit j = 1, 2, ..., n die Anzahl der Elemente links von j die größer als j sind. Dann stellt Ilb(σ) = (b1b2...bn) die Inversionstafel LB von σ dar.Definition (LB = Left Bigger): Let σ ε S n be a permutation and b j with j = 1, 2, ..., n the number of elements to the left of j that are greater than j. Then I lb (σ) = (b 1 b 2 ... b n ) represents the inversion table LB of σ.
Definition (LS = Left Smaller): Sei σ ∊ Sn eine Permutation und b mit j = 1, 2, ..., n die Anzahl der Elemente links von j die kleiner als j sind. Dann stellt Ils(σ) = (b1b2...bn) die Inversionstafel LB von σ dar.Definition (LS = Left Smaller): Let σ ε S n be a permutation and b with j = 1, 2, ..., n the number of elements left of j that are smaller than j. Then I ls (σ) = (b 1 b 2 ... b n ) represents the inversion table LB of σ.
Definition (RB = Right Bigger): Sei σ ∊ Sn eine Permutation und bj mit j = 1, 2, ..., n die Anzahl der Elemente rechts von j die größer als j sind. Dann stellt Irb(σ) = (b1b2...bn) die Inversionstafel LB von σ dar.Definition (RB = Right Bigger): Let σ ε S n be a permutation and b j with j = 1, 2, ..., n the number of elements to the right of j that are greater than j. Then, I rb (σ) = (b 1 b 2 ... b n ) represents the inversion table LB of σ.
Definition (RS = Right Smaller): Sei σ ∊ Sn eine Permutation und bj mit j = 1, 2, ..., n die Anzahl der Elemente rechts von j die kleiner als j sind. Dann stellt Irs(σ) = (b1b2...bn) die Inversionstafel LB von σ dar.Definition (RS = Right Smaller): Let σ ε S n be a permutation and b j with j = 1, 2, ..., n the number of elements to the right of j which are smaller than j. Then I rs (σ) = (b 1 b 2 ... b n ) represents the inversion table LB of σ.
Beispiel: Stellvertretend sei hier ein Beispiel für die Bildung einer Inversionstafel RS und die entsprechende Generierung der Permutation gezeigt, Example: By way of example, an example of the formation of an inversion table RS and the corresponding generation of the permutation is shown here.
Zuerst
nimmt man das Element der Permutation mit σ(i) = 1 und zählt die
Elemente rechts von σ(i)
= 1 in σ die
kleiner als die 1 sind. Hier ist dies kein Element. Dann nimmt man
das Element der Permutation mit σ(i)
= 2 und zählt
die kleineren Elemente rechts von σ(i) = 1 in σ. Hier ist kein Element rechts
neben σ(i)
= 2 kleiner als die 2. Verfährt
man genauso bis |σ|
weiter, ergibt sich letztlich Irs(σ) = (b1, ..., b4) = (0023). Aus einer Inversionstafel
RS läßt sich
bei schrittweisem Vorgehen j = 1, 2, ...|σ| die entsprechende Permutation
wieder generieren. Dafür
geht man umgekehrt vor und fügt
j so ein, dass bj Elemente rechts davon
kleiner j sind.
Bildet
man von σ die
Inversionstafeln LB, LS und RB erhält man
Ein
Vergleich der Entropien der Inversionstafeln von oben zeigt, dass
deren Entropien teilweise erhebliche Unterschiede aufweisen und
hier in allen Fällen
kleiner der Entropie der Permutation (2 Bit) sind.
ARNAVUT, Ziya: Permutation Techniques in Lossless Compression. Nebraska, University, Computer Science, Dissertation, 1995, S. 58–78 hat in seiner Dissertation mehrere verschiedene Methoden für die Bildung von Inversionstafeln benutzt. Er verwendete allerdings andere Bildungsvorschriften für die Inversionstafeln. Dabei handelt es sich um die Lehmer Inversionstafeln. Ist im weiteren Verlauf die Rede von Inversionstafeln, so sind die nicht-Lehmer Inversionstafeln gemeint. Im Falle von Lehmer Inversionstafeln, wird expli zit der Zusatz "Lehmer" mit angegeben. Diese sollen nun beschrieben und im weiteren Verlauf auch verwendet werden.arnavut, Ziya: Permutation Techniques in Lossless Compression. Nebraska, University, Computer Science, Dissertation, 1995, pp. 58-78 in his dissertation several different methods of education used by inversion panels. However, he used other educational regulations for the Inversion tables. These are the Lehmer Inversion panels. If in the course of the speech of inversion panels, so are the meant non-Lehmer inversion panels. In the case of Lehmer inversion charts, the term "Lehmer" is explicitly stated. These should now be described and used in the further course.
Definition
(Lehmer Inversionstafel RS (Right Smaller)): Sei σ ∊ Sn eine Permutation. Die Lehmer Inversionstafel
RS Irsl(σ)
= (b1, b2, ..., bn) ist dann definiert als
Der Zusatz rsl steht für "Right Smaller Lehmer". Entsprechendes gilt für folgenden Definitionen. Natürlich kann man aus der Lehmer Inversionstafel RS auch wieder die Permutation generieren. In ARNAVUT, Ziya: Permutation Techniques in Lossless Compression. Nebraska, University, Computer Science, Dissertation, 1995 auf S. 62–63 wurde dafür folgender Algorithmus angegeben. 1 stellt in dem Algorithmus eine verkettete Liste dar
- Algorithmus: 1 –1 / rsl(σ)
- 1. Setze i ← 1,1 ← (1, 2, ..., n)
- 2. σ(i) ← 1(bi + 1)
- 3. 1 ← 1 – 1(bi + 1) (entferne 1(bi + 1) von 1)
- 4. i ← i + 1, falls i > n stop, andernfalls gehe zu 2.
- Algorithm: 1 -1 / rsl (σ)
- 1. Set i ← 1.1 ← (1, 2, ..., n)
- 2. σ (i) ← 1 (b i + 1)
- 3. 1 ← 1 - 1 (b i + 1) (remove 1 (b i + 1) from 1)
- 4. i ← i + 1, if i> n stop, otherwise go to 2.
ARNAVUT, Ziya: Permutation Techniques in Lossless Compression. Nebraska, University, Computer Science, Dissertation, 1995 hat zwar in seiner Dissertation darauf hingewiesen, dass er mehrere Lehmer Inversionstafelbildungsvorschriften verwendet hat, allerdings wurden keine detaillierten Definitionen der übrigen drei Inversionstafelbildungsvorschriften (RBL, LSL und LBL) und entsprechende Algorithmen zur Rückgewinnung der Permutation angegeben. Deshalb sollen an dieser Stelle die entsprechenden Definitionen und Algorithmen angegeben werden.arnavut, Ziya: Permutation Techniques in Lossless Compression. Nebraska, University, Computer Science, Dissertation, 1995 Although has in his Dissertation noted that he has several Lehmer inversion board education regulations However, no detailed definitions were used the remaining three Inversion Panel Formulation Rules (RBL, LSL and LBL) and equivalent Algorithms for recovery the permutation specified. Therefore, at this point, the corresponding Definitions and algorithms are given.
Definition
(Lehmer Inversionstafel RB). Sei σ ∊ Sn eine Permutation. Die Lehmer Inversionstafel
RB Irbl(σ)
= (b1, b2, ...,
bn) ist dann definiert als
- Algorithmus: 1 –1 / rbl(σ)
- 1. Setzte i ← 1,1 ← (n, n – 1, ..., 1)
- 2. σ(i) ← 1(bi + 1)
- 3. 1 ← 1 – 1(bi + 1) (entferne 1(bi + 1) von 1)
- 4. i ← i + 1, falls i > n stop, andernfalls gehe zu 2.
- Algorithm: 1 -1 / rbl (σ)
- 1. Set i ← 1,1 ← (n, n-1, ..., 1)
- 2. σ (i) ← 1 (b i + 1)
- 3. 1 ← 1 - 1 (b i + 1) (remove 1 (b i + 1) from 1)
- 4. i ← i + 1, if i> n stop, otherwise go to 2.
Definition
(Lehmer Inversionstafel LS). Sei σ ∊ Sn eine Permutation. Die Lehmer Inversionstafel
LS Ilsl(σ)
= (b1, b2, ...,
bn)ist dann definiert als
- Algorithmus: 1 –1 / lsl(σ)
- 1. Setzte i ← n, 1 ← (1, 2, ..., n)
- 2. σ(i) ← 1(bi + 1)
- 3. 1 ← 1 – 1(bi + 1) (entferne 1(bi + 1) von 1)
- 4. i ← i – 1, falls i > n stop, andernfalls gehe zu 2.
- Algorithm: 1 -1 / lsl (σ)
- 1. Set i ← n, 1 ← (1, 2, ..., n)
- 2. σ (i) ← 1 (b i + 1)
- 3. 1 ← 1 - 1 (b i + 1) (remove 1 (b i + 1) from 1)
- 4. i ← i - 1, if i> n stop, otherwise go to 2.
Definition
(Lehmer Inversionstafel LB). Sei σ ∊ Sn eine Permutation. Die Lehmer Inversionstafel
LB 4,1(σ)
= (b1, b2, ...,
bn)ist dann definiert als
- Algorithmus: 1 –1 / lbl(σ)
- 1. Setzte i ← n, 1 ← (n, n – 1, ...,1)
- 2. σ(i) ← 1(bi + 1)
- 3. 1 4- 1 – 1(bi + 1) (entferne 1(bi + 1) von 1)
- 4. i ← i – 1, falls i > n stop, andernfalls gehe zu 2.
- Algorithm: 1 -1 / lbl (σ)
- 1. Set i ← n, 1 ← (n, n-1, ..., 1)
- 2. σ (i) ← 1 (b i + 1)
- 3. 1 4-1 - 1 (b i + 1) (remove 1 (b i + 1) from 1)
- 4. i ← i - 1, if i> n stop, otherwise go to 2.
Beispiel: Auch hier soll beispielhaft für alle vier Lehmer Inversionstafeln die Konstruktion einer Lehmer Inversionstafel LB und die entsprechende Rückgewinnung der Permutation gezeigt werden. Gegeben sei Example: Here, too, the construction of a Lehmer Inversion panel LB and the corresponding recovery of the permutation will be shown as an example for all four Lehmer inversion panels. Be given
Zuerst
nimmt man das erste Element der Permutation σ(1) = 4 und zählt die
Elemente links von σ(1) in σ die größer als
die 4 sind. Hier sind dies 0 Elemente. Dann nimmt man das zweite
Element der Permutation σ(2)
= 3 und zählt
die größeren Elemente
links von σ(2)
in σ. Hier
ist 1 Element neben der σ(2)
größer als
die 3. Verfährt
man genauso bis
Bildet
man von σ die
Lehmer Inverionstafeln RSL, RBL und LSL erhält man
Die
gezeigte Eigenschaft der Elemente der Inversionstafel LB gilt auch
für die
Inversionsionstafeln RB, RBL und RSL. Für die Inversionstafeln LS,
RS, LBL und LSL haben die Elemente hingegen folgende Eigenschaften
Zwischen
den Inversionstafeln und den Lehmer Inversionstafeln besteht folgender
Zusammenhang bezüglich
der Entropie
Dies liegt daran, dass bei Bildung der jeweiligen Inversionstafel bzw. Lehmer Inversionstafel lediglich die Elemente in einer anderen Reihenfolge betrachtet werden.This is due to the fact that when forming the respective inversion table or Lehmer Inversion panel just the elements in a different order to be viewed as.
Um eine Aussage darüber zu erhalten wie hoch die Datenrate ist, um eine Permutation zu kodieren, wird nun ein Maß für diesen Kodieraufwand definiert. Für dieses Maß werden die Entropien der verschiedenen Inversiontafeln bzw. Lehmer Inversionstafeln betrachtet.Around a statement about it how high the data rate is to encode a permutation will be now a measure for this Coding effort defined. For this measure will be the entropies of the different inversion tables or Lehmer inversion charts considered.
Definition
(Kodierbarkeitsmaß):
Sei σ eine
Permutation mit |σ| <∞ und Ilb(σ), Its(u), Ils(σ), Irb(σ)
die entsprechenden Inversionstafeln bzw. Ilbl(σ), Ilsl(σ),
Irbl(σ),
Irsl(σ)
die entsprechenden Lehmer Inversionstafeln, dann ist das Kodierbarkeitsmaß für Permutationen
durch
Eine
Signalisierung welche der 8 Inversionstafelbildungsvorschriften
benutzt wurde kann mit 3 Bit erfolgen. Somit ist die Verwendung
der besten Variante kostengünstiger
gegenüber
gewöhnlicher
Binärkodierung
der Permutation wenn folgende Ungleichung für |σ| < ∞ zutrifft:
Durch experimentelle Untersuchungen wurde festgestellt, dass für |σ| > 1 immer H(σ) > C(σ) und infolgedessen diese Ungleichung ab |σ| > 4 gilt. Damit ist auch die anfangs ge stellte Frage, ob eine Permutation mit weniger als log2(|σ|) kodiert werden kann, beantwortet. Aus Gründen der Messbarkeit ist man daran interessiert Permutationen Stück für Stück ausgehend von der identischen Permutation zu verwürfeln.
- Algorithmus P (Shuffling): Sei X1, X2, ..., Xt eine Anzahl von t Zahlen die verwürfelt werden sollen
- P1. Initialisierung : Setze j ← t
- P2. Generiere U. Generiere eine Zufallszahl U zwischen 0 und 1 (gleichverteilt)
- P3. Vertauschung : Setze k ← ⌊jU⌋ + 1. Vertausche Xk ↔ Xj.
- P4. Verkleinere j : Verkleinere j um 1. Falls j < 1 gehe zu P2.
- Algorithm P (Shuffling): Let X 1 , X 2 , ..., X t be a number of t numbers to be scrambled
- P1. Initialization: Set j ← t
- P2. Generate & generate a random number U between 0 and 1 (evenly distributed)
- P3. Exchange: Set k ← ⌊jU⌋ + 1. Swap X k ↔ X j .
- P4. Reduce j: Reduce j by 1. If j <1 go to P2.
Nachteilig
an dem Algorithmus ist die Wahl von U. Denn abhängig davon, welches U randomisiert
gewählt
wird, werden die t Zahlen in einem Transpositionsschritt manchmal
etwas mehr bzw. manchmal etwas weniger verwürfelt. Wesentlich ist dabei
aber die Eigenschaft, dass der Algorithmus schrittweise vorgeht
und Stück
für Stück die Verwürfelung
einer ursprünglich
unverwürfelten
Permutation (identische Permutation) erhöht. Aus
Nun
soll gezeigt werden welche Form die Inversionstafeln und Lehmer
Inversionstafeln einer Permutation, die durch die Sortierung der
Zeitwerte entstanden ist, bei verschiedengearteter Musik haben.
Dazu wird ein sehr tonales Stück
und ein rauschartiges Stück
verwendet.
In
den
Die
rechte Permutation aus
Die
Die
Prinzip der Korrelationsübertragung: Die Korrelation des Audiosignals spiegelt sich in aller Regel in der durch Sortierung entstandenen xy-vertauschten Permutation und der zur Permutation entsprechend gehörenden Inversionstafel wieder. Wegen des oben gezeigten Prinzips der Korrelationsübertragung bietet sich eine Prädiktion der Inversionstafeln zur Weiterverarbeitung an. Für die Prädiktion soll der beschriebene Fixed Predictor verwendet werden. Im Allgemeinen liefert eine Prädiktion der Lehmer Inversionstafeln kein gutes Ergebnis. In sehr seltenen Ausnahmefällen kommt es aber vor, dass das Restsignal der Prädiktion einer Lehmer Inversionstafel manchmal weniger Bits benötigt als das Restsignal der Inversionstafeln. Deshalb werden alle 8 Inversionstafelbildungvorschriften verwendet. Als vereinfachten MATLAB Code kann man dies wie in permCoding() darstellen.principle the correlation transfer: The correlation of the audio signal is usually reflected in the sorted xy-swapped permutation and corresponding to the permutation corresponding Inversionstafel again. Because of the principle of correlation transfer shown above offers a prediction the inversion panels for further processing. For the prediction the described fixed predictor should be used. In general provides a prediction the Lehmer Inversion panels are not a good result. In very rare exceptions but it happens that the residual signal of the prediction of a Lehmer inversion board sometimes less bits needed as the residual signal of the inversion panels. Therefore, all 8 inversion panel formation prescriptions used. As a simplified MATLAB code, this can be done as in permCoding () represent.
Aus obigem Abschnitt ist bekannt, dass die Inversionstafeln immer eine Form haben die einem Dreieck gleicht. In seltenen Fällen kann es vorkommen, dass die Prädiktion. der Inversionstafeln und Lehmer Inversionstafel ineffizient ist. Um diesem Problem zu begegnen, kann man nun die dreieckige Form der Inversionstafeln und Lehmer Inversionstafeln ausnutzen, um eine relative kostengünstige Binärkodierung im worst case Fall zu realisieren. Der worst case Fall tritt z. B. dann ein, wenn rauschartige oder transiente Audiosignale zu kodieren sind. Denn in diesen Fällen liefert eine Prädiktion der Inversionstafeln bzw. Lehmer Inversionstafeln manchmal keine guten Ergebnisse. Dazu werden abhängig von der jeweiligen Inversionstafelbildungsvorschrift immer soviel wie nötig aber sowenig wie möglich Bits für eine gewöhnliche Binärdarstellung der Elemente zugeteilt. Die entsprechenden dynamischen Bitzuteilungsfunktionen sind folgendermaßen definiert.Out It is known from the above section that the inversion tables are always one Have a shape that resembles a triangle. In rare cases can it happens that the prediction. the inversion charts and Lehmer inversion board is inefficient. To counter this problem, one can now use the triangular shape exploit the inversion panels and Lehmer inversion panels to create a Relatively inexpensive binary encoding to realize in the worst case case. The worst case case occurs z. For example, then when to encode noise-like or transient audio signals are. Because in these cases provides a prediction the inversion tables or Lehmer Inversionstafeln sometimes no good results. These are dependent on the respective Inversionstafelbildungsvorschrift always as much as necessary but as little as possible Bits for an ordinary one binary representation assigned to the elements. The corresponding dynamic bit allocation functions are as follows Are defined.
Definition (Dynamische Bitzuteilungsfunktion LS, RS, LBL, LSL). Sei σ ∊ Sn eine Permutation und b3 mit j = 1, 2, ..., n die Elemente einer Inversionstafelbildungsvorschrift, dann ist die Dynamische Bitzuteilungsfunktion LS, RS, LBL, LSL definiert als Definition (dynamic bit allocation function LS, RS, LBL, LSL). Let σ ε S n be a permutation and b 3 with j = 1, 2, ..., n be the elements of an inversion table formation rule, then the dynamic bit allocation function LS, RS, LBL, LSL be defined as
Definition (Dynamische Bitzuteilungsfunktion LB, RB, RBL, RSL). Sei σ ∊ Sn eine Permutation und b mit j = 1, 2, ..., n die Elemente einer Inversionstafelbildungsvorschrift, dann ist die Dynamische Bitzuteilungsfunktion LB, RB, RBL, RSL definiert als Definition (dynamic bit allocation function LB, RB, RBL, RSL). Let σ ε S n be a permutation, and b with j = 1, 2, ..., n be the elements of an inversion chart, then the dynamic bit allocation function LB, RB, RBL, RSL defined as
Die
folgende Tabelle zeigt was dieser Kodieransatz leisten kann.
Durch eine über die Inversionstafeln bzw. Lehmer Inversionstafeln realisierte dynamische Bitzuteilung kann ungefähr 1 Bit gegenüber einer gewöhnlichen Binärkodierung der Permutation pro Element eingespart werden. Dieser Kodieransatz stellt somit ein einfaches und gewinnbringendes Vorgehen für den worst case Fall dar.By one over the inversion panels and / or Lehmer inversion panels realized dynamic Bid allocation can be about 1 bit opposite an ordinary one binary encoding the permutation per element can be saved. This coding approach thus provides a simple and profitable approach for the worst case case.
In diesem Abschnitt soll untersucht werden, wie für die Restsignale der eben beschriebenen Dekorrelationsverfahren eine Entropiekodierung zu gestalten ist, um eine möglichst hohe Kompression zu erreichen. Es wurde gezeigt, dass das Restsignal einer Prädiktion von Zeitwerten eine annähernde Laplaceverteilung aufweist. Dies gilt auch für das Restsignal einer Prädiktion der nicht Lehmer Inversionstafeln.In In this section we will investigate, as for the rest of the signals described decorrelation to entropy coding Shaping is as possible to achieve high compression. It was shown that the residual signal a prediction of approximate time values Laplace distribution has. This also applies to the residual signal of a prediction the non-Lehmer inversion boards.
Kausal dafür ist das in obigem Abschnitt beschriebene Prinzip der Korrelationsübertragung.Causal for that is the principle of correlation transfer described in the previous section.
Letztlich
ist noch die Wahrscheinlichkeitsverteilung des Restsignals der Differenzkodierung
der sortierten Zeitwerte zu betrachten.
Zusätzlich zu
den speziellen Wahrscheinlichkeitsverteilungen haben die Restsignale
die Eigenschaft, dass die Wertebereiche von Block zu Block teilweise
erheblich schwanken und viele Werte des Wertebereichs gar nicht
vorkommen. In
Essentiell ist dabei die Bestimmung des Rice Parameters k bzw. des Golomb Parameters m. Wählt man den Parameter zu groß, erhöht dies die Anzahl der nötigten Bits für die kleinen Zahlen. Wählt man den Parameter zu klein, steigt die nötige Anzahl der Bits für den unär kodierten Teil vor allem bei großen zu kodierenden Werten sehr stark an. Ein falsch gewählter Parameter kann somit die Datenrate des Entropiecodes deutlich vergrößern und damit die Kompression verschlechtern. Es gibt zwei Möglichkeiten eine Rice bzw. Golomb Kodierung zu gestalten:
- 1. vorwärts-adaptive Rice/Golomb Kodierung
- 2. rückwärts-adaptive Rice/Golomb Kodierung
- 1. forward-adaptive Rice / Golomb coding
- 2. backward-adaptive Rice / Golomb coding
Einige Methoden, um den Rice Parameter k vorwärts-adaptiv zu berechnen, wurden bereits aufgezeigt. Weitere Gegebenheiten der vorwärts-adaptiven Rice Parameterbestimmung sollen nun erläutert werden. Liegt ein Restsignal e(i) ∈ Z für i = 1, 2, ..., n vor, dann wird zunächst eine M(e(i)) von Z nach N0 vorgenommen. Liegt das Restsignal bereits komplett in N0, wie dies bei dem Restsignal der Differenzkodierung der sortierten Zeitwerte der Fall ist, dann entfällt diese Abbildung. Die Abbildung von Z nach No wird für e(i) ∈ Z im folgenden vorausgesetzt. Somit ergibt sich folgende Gleichung mit zwei unterschiedlichen Bildungsvorschriften für den arithmetischen Mittelwert.Some methods to calculate the Rice parameter k forward-adaptively have already been shown. Further details of the forward-adaptive Rice parameter determination will now be explained. If there is a residual signal e (i) ∈ Z for i = 1, 2, ..., n, then first an M (e (i)) is made from Z to N 0 . If the residual signal is already completely in N 0 , as is the case with the residual signal of the difference coding of the sorted time values, then this mapping is omitted. The mapping from Z to No is assumed for e (i) ∈ Z in the following. Thus, the following equation results with two different arithmetic mean training rules.
Die
einfachste Möglichkeit
den Rice Parameter zu bestimmen ist, alle in Frage kommenden Rice
Parameter zu testen und den Parameter mit dem niedrigsten Bitverbrauch
zu wählen.
Dies ist nicht sehr komplex, weil der Wertebereich der zu testenden
Rice Parameter durch die Bitauflösung
des Zeitsignals beschränkt wird.
Bei einer Auflösung
von 16 Bit sind maximal 16 Rice Parameter zu verifizieren. Der entsprechende
Bitbedarf pro Parameter kann letztlich anhand weniger Bitoperationen
bzw. arithmetischer Operationen bestimmt werden. Dieses Vorgehen
den optimalen Rice Parameter zu finden ist etwas aufwendiger als
die direkte Berechnung des Parameters, garantiert aber immer den
optimalen Rice Parameter zu erhalten. In dem hier vorgestellen Verfahren
zur verlustlosen Audiokodierung wird in den meisten Fällen diese
Methode zur Bestimmung des Rice Parameters verwendet. Bei einer
direkten Bestimmung des Rice Parameters kann man sich die Parametergrenzwerte
Bei einer vorwärts-adaptiven Golomb Kodierung ist eine Parameterbestimmung anhand einer Suchmethode, wie dies bei der Rice Kodierung durchaus akzeptabel war, wesentlich komplexer. Dies liegt daran, dass die Golomb Kodierung deutlich mehr Zwischenabstufungen des Parameters m besitzt. Deshalb wird der Golomb Parameter errechnet In a forward-adaptive Golomb coding, a parameter determination using a search method, as was quite acceptable in the Rice coding, is much more complex. This is because the Golomb coding has significantly more intermediate gradations of the parameter m. Therefore, the Golomb parameter is calculated
Dabei wird θ durch berechnet.In this case, θ is going through calculated.
Bei
einer vorwärts-adaptiven
Rice/Golomb Kodierung besteht die Möglichkeit einen zu kodierenden Datenblock
in mehrere Teilblöcke
zu zerlegen und für
jeden Teil-block einen eigenen Parameter zu bestimmen und zu übertragen.
Mit zunehmender Anzahl von Teilblöcken steigt die nötige Seiteninformation
für die
Parameter. Die Effektivität
der Teilblockzerlegung hängt
stark davon ab, wie die zu übertragenden
Parameter selbst kodiert werden. Da die Parameter aufeinanderfolgender
Blöcke
meist nicht besonders stark variieren, bietet sich eine Differenzkodierung
der Parameter mit anschließender
vorwärts-adaptiver
Rice Kodierung an. Summiert man nun die nötige Datenrate der entropiekodierten
Teilblöcke
einschließlich
der dazugehörenden
Parameterseiteninformation über
den Gesamtblock auf, und zählt
wie oft welche Teilblockzerlegung das kleinste Datenaufkommen benötigte, ergibt
sich für
den gesamten Kodierprozess von einem Stück Nr. 1 die
Bei
unkodierten Rice Parametern ist eine Teilblockzerlegung meist nicht
besonders gewinnbringend. Werden die Rice Parameter kodiert, dann
ist häufig
eine Zerlegung in 32 Teilblöcken
besser als keine Teilblockzerlegung (vgl. auch folgende Tabelle).
Bei einer vorwärts-adaptiven
Golomb Kodierung ist eine Teilblockzerlegung sowohl für unkodierte
Golomb Parameter, als auch für
kodierte Golomb Parameter meist nicht vorteilhaft (siehe
Aus
den
- 1. Alle in Frage kommenden Teilblockzerlegungen zu testen und die mit der kleinsten Datenrate zu wählen.
- 2. Eine im Mittel gut geeignete Teilblockzerlegung für alle Fälle verwenden.
- 1. To test all possible sub-block decompositions and to select those with the smallest data rate.
- 2. Use an on average well-suited partial block decomposition for all cases.
Da die 1. Möglichkeit die Komplexität des Systems bei geringfügig besserer Kompression stark erhöht, wird im weiteren Verlauf keine Teilblockzerlegung verwendet. Wie eine vorwärts-adaptive Rice bzw. Golomb Kodierung praktisch realisiert wird, ist in FwAdaptCoding() gezeigt. Zu Beginn findet für ein vorzeichenbehaftetes Restsignal eine Abbildung nach N0 statt. Damit wird dann der Rice/Golomb Parameter bestimmt und letztlich alle Zeichen mit diesem Parameter kodiert. Es folgt ein Beispielcode Since the 1st possibility greatly increases the complexity of the system with slightly better compression, no partial block decomposition will be used in the further course. How to implement a forward-adaptive Rice or Golomb coding is shown in FwAdaptCoding (). At the beginning, a mapping to N0 takes place for a signed residual signal. This then determines the Rice / Golomb parameter and ultimately encodes all characters with this parameter. Here is a sample code
Eine
rückwärts-adaptive
Rice/Golomb Kodierung errechnet den Parameter aus vor-hergehenden
bereits kodierten Zeichen. Dazu werden die eben kodierten Zeichen
in einen History Buffer zyklisch eingetragen. Zu dem History Buffer
gibt es zwei Variablen. Eine hält
den aktuellen Füllstand
des History Buffers fest und die andere Variable speichert die nächste Schreibposition.
In
Zu Beginn wird der History Buffer mit Null initialisiert, der Füllstand ist Null und der Schreibindex ist eins (siehe a)). Dann wird ein Zeichen nach dem anderen in den History Buffer eingetragen und jeweils der Schreibindex (Pfeile) und der Füllstand aktualisiert (siehe b)–e)). Ist der History Buffer einmal komplett gefüllt, bleibt der Füllstand konstant (hier 8) und nur der Schreibindex wird angepasst (siehe e)–f)). Die Berechnung des rückwärtsadaptiven Rice Parameters geschieht folgendermaßen. Sei e(i) ∈ N0 mit i = 1, 2, ..., W die im History Buffer enthaltenen Restsignalwerte, W die Größe des History Buffers und F der aktuelle Füllstand, dann errechnet sich der rückwärtsadaptive Rice Parameter durch Gleichung wobei die Funktion l(e(i)) die nötige Anzahl der Bits für e(i) ermittelt, also Initially, the history buffer is initialized to zero, the level is zero and the write index is one (see a)). Then one character at a time is entered in the history buffer and the writing index (arrows) and the filling level are updated (see b) -e)). Once the history buffer has been completely filled, the level remains constant (here 8) and only the writing index is adjusted (see e) -f)). The calculation of the backward adaptive Rice parameter is done as follows. Let e (i) ∈ N 0 be i = 1, 2, ..., W are the residual signal values contained in the history buffer, W is the size of the history buffer and F is the current level, then the backward adaptive Rice parameter is calculated by equation where the function l (e (i)) determines the necessary number of bits for e (i), ie
Die Berechnung des rückwärts-adaptiven Golomb Parameters geschieht durch Gleichung The calculation of the backward-adaptive Golomb parameter is done by equation
Durch empirische Versuche erwies sich C = 1,15 als sinnvoll. Für die Größe des History Buffers wird im folgenden sowohl für die rückwärts-adaptive Rice Kodierung als auch für die rückwärts-adaptive Golomb Kodierung eine Größe von W = 16 verwendet. Dies stellt einen guten Kompromiss zwischen einer zu trägen Adaption und einer zu abrupt reagierenden Adaption dar. Wie bei der rückwärts-adaptiven Arithmetischen Kodierung muss die bei der Dekodierung verwendete Adaption zur Enkodierung synchronisiert werden, ansonsten ist eine perfekte Rekonstruktion der Daten nicht möglich. In machen Fällen verursacht bei der Rückwärtsadaption der anfangs noch nicht komplett gefüllte History Buffer noch keine gute Vorhersage des Parameters. Deshalb wird eine Variante verwendet, welche für die ersten W Werte einen vorwärts-adaptiven Parameter berechnet, und erst wenn der History Buffer komplett gefüllt ist, werden aus diesem adaptive Parameter berechnet.By empirical experiments, C = 1.15 proved to be useful. For the size of the history buffer, a size of W = 16 is used in the following for both the backward adaptive Rice coding and the backward adaptive Golomb coding. This is a good compromise between too slow adaptation and overly responsive adaptation. As with backward adaptive arithmetic coding, the adaptation used for decoding must be synchronized for encoding, otherwise perfect reconstruction of the data is not possible. In some cases the reverse buffer does not yet have a good prediction of the parameter. Therefore, a variant is used which calculates a forward-adaptive parameter for the first W values, and only when the history buffer is completely filled, is this adaptive parameter calculated net.
Wie
die adaptive Parameterbestimmung arbeitet ist detailiert in
Um
die Leistungsfähigkeit
der eben entwickelten Rice/Golomb Entropiekodierverfahren umfangreicher beurteilen
zu können,
soll zusätzlich
eine vorwärts-adaptive
Arithmetische Kodierung unter Zuhilfenahme einer rückwärts-adaptiven
Rice Kodierung entwickelt werden. Dazu wird zunächst ein Histogramm der zu
kodieren-den Daten erstellt. Mit diesem Histogramm ist es möglich durch
die Arithmetische Kodierung einen Code dicht an der Entropiegrenze
zu erzeugen. Allerdings müssen
zusätzlich
die enthaltenen Zeichen und deren Auftrittswahrscheinlichkeiten übertragen
werden. Da die Zeichen im Histogramm streng monoton steigend angeordnet
sind, bietet sich hier vor einer rückwärts-adaptiven Rice Kodierung
noch eine Differenzkodierung δ an.
Die Wahrscheinlichkeiten werden lediglich rückwärts-adaptiv Rice kodiert. Letztlich
ergeben sich die Gesamtkosten für
dieses Vorgehen durch die Summe des Codes der Arithmetischen Kodierung,
der Rice kodierten Zeichen und der Rice kodierten Wahrscheinlichkeiten
(siehe
Jetzt
sollen die fünf
verschiedenen Entropiekodierverfahren miteinander verglichen werden.
Dazu werden Tabellen aller im Gesamtsystem vorhandenen Verfahren
zur Restsignalsignalerzeugung erstellt und das Datenaufkommen gemittelt
pro Block über
das gesamte jeweilige Stück
in Byte angegeben werden. Die folgende Tabelle zeigt einen Vergleich
verschiedener Entropiekodierverfahren angewandt auf das Restsignal
des LPC Prädiktors.
Die
folgende Tabelle zeigt einen Vergleich verschiedener Entropiekodierverfahren
angewandt auf das Restsignal Vergleich verschiedener Entropiekodierverfahren
angewandt auf das Restsignal des Fixed Predictors.
Die
folgende Tabelle zeigt einen Vergleich verschiedener Entropiekodierverfahren
angewandt auf das Restsignal einer mit dem Fixed Predictor dekorrelierten
nicht Lehmer Inversionstafel LB
Die
folgende Tabelle zeigt einen Vergleich verschiedener Entropiekodierverfahren
angewandt auf das Restsignal der Differenzkodierung der sortierten
Zeitwerte
Bildet
man aus den obigen Tabellen die aufgerundeten arithmetischen Mittelwerte,
so ergibt sich folgende Tabelle
Für die abschließende Analyse der obigen Tabelle ist noch zu berücksichtigen, dass der Golomb Parameter eine etwas höhere Seiteninformationsdatenrate benötigt als der Rice Parameter. Trotzdem stellt die rückwärts-adaptive Golomb Kodierung im Mittel das beste Entropiekodierverfahren für die in SOLO vorhandenen Restsignale dar. In sehr seltenen Fällen kann es vorkommen, dass die Adaptionsstrategie fehlschlägt und keine guten Ergebnisse liefert. Deshalb kommt letztlich in SOLO eine Kombination aus einer rückwärts-adaptiven Golomb Kodierung und einer vorwärtsadaptiven Rice Kodierung zum Einsatz.For the final analysis the above table is still to be considered that the Golomb Parameter a little higher Page information data rate needed as the Rice parameter. Even so, the backward-adaptive Golomb introduces coding on average the best entropy coding method for the residual signals present in SOLO In very rare cases it may happen that the adaptation strategy fails and none gives good results. That is why SOLO is ultimately a combination from a backward-adaptive Golomb coding and a forward adaptive Rice coding used.
Um eine geeignete Blockgröße für ein Audiokodierverfahren festzulegen, sind immer folgende Gegebenheiten zu bedenken:
- • Wählt man die Blocklänge zu klein, so werden im Verhältnis zu den reinen Kodierungsdaten relativ viel Daten für die Seiteninformationen benötigt
- • Wählt man die Blocklänge zu groß, benötigt sowohl der Encoder als auch der Decoder große Datenstrukturen, um die zu bearbeitenden Daten im Speicher zu halten. Zudem stehen die ersten dekodierten Daten bei einer größeren Blocklänge auch erst später zur Verfügung als bei einer kleineren Blocklänge
- • If the block length is chosen too small, relatively much data is needed for the page information in relation to the pure coding data
- • If the block length is too large, both the encoder and the decoder require large data structures to hold the data to be processed in memory. In addition, the first decoded data are available with a larger block length also available later than with a smaller block length
Im wesentlichen wird also die Blocklänge dadurch bestimmt welche Anforderungen an das Kodierverfahren gestellt werden. Steht der Kompressionsfaktor im Vordergrund, ist unter Umständen eine sehr große Blocklänge akzeptabel. Wird aber ein Kodierverfahren mit einer niedrigen Verzögerungszeit oder einem kleinen Speicherverbrauch gefordert, so ist eine sehr große Blocklänge sicher nicht brauchbar. Bereits bestehende Audiokodierverfahren verwenden üblicherweise Blocklängen von 128 bis 4608 Abtastwerten. Bei einer Abtastrate von 44.1 khz entspricht dies ca. 3 bis 104 Millisekunden. Eine Untersuchung soll Aufschluss darüber geben, wie sich die verschiedenen von SOLO verwendeten Dekorrelationsverfahren bei unterschiedlichen Blocklängen verhalten. Dazu werden verschiedene Stücke bei Blocklängen von 256, 512, 1024 und 2048 Abtastwerten enkodiert und der Kompressionsfaktor F unter Einbezug der jeweiligen Seiteninformationen ermittelt. Von den sieben Kompressionsfaktoren einer Blocklänge wird dann der arithmetische Mittelwert gebildet.in the essentially, therefore, the block length is determined by which Requirements for the coding process. Is that the Compression factor in the foreground, may be a very large block length acceptable. But is a coding with a low delay time or a small memory consumption demanded, so is a very size block length certainly not usable. Already existing audio coding method usually use block lengths from 128 to 4608 samples. At a sampling rate of 44.1 khz this corresponds to about 3 to 104 milliseconds. An investigation should Give information about how the different decorrelation methods used by SOLO at different block lengths behavior. These are different pieces at block lengths of 256, 512, 1024 and 2048 samples encoded and the compression factor F determined by inclusion of the respective page information. From The seven compression factors of a block length then become the arithmetic Mean value formed.
In
In obigem Abschnitt wurde gezeigt, dass eine verlustlose Stereoredundanzreduktion realisiert werden kann. Eine Schwierigkeit dabei ist, dass der Mittenkanal M durch eine Division mit 2 mit anschließender Rundung zum nächstgelegenen ganzzahligen Wert bezüglich Null entstanden ist. Dadurch ist in manchen Fällen Information verloren gegangen. Dies ist z. B. bei L = 5, R = 4 der Fall. Wir gehen in diesem Beispiel davon aus, dass in jedem Kanal nur ein Wert vorhanden ist. In Wirklichkeit handelt es sich beim linken Kanal L oder beim rechten Kanal R natürlich um Vektoren.In The previous section has shown that a lossless stereo-redundancy reduction can be realized. One difficulty is that the middle channel M by a division with 2 followed by rounding to the nearest integer value with respect Zero has arisen. As a result, information has been lost in some cases. This is z. B. at L = 5, R = 4 of the case. We go in this example assume that there is only one value in each channel. In reality Of course, the left channel L or the right channel R are the same Vectors.
Hier
erhalten wir
Diese
Information ist aber noch im Seitenkanal S = L – R = 5 – 4 = 1 enthalten. Eine verlustbehaftete Rundung
von M hat immer dann stattgefunden, wenn S ungerade ist. Dies ist
entsprechend bei der Dekodierung zu berücksichtigen. Diese eben beschriebene
Möglichkeit
der Korrektur des Mittenkanals läßt sich
aber vermeiden wenn M aus R und S generiert wird
Grafisch
lässt sich
die Gleichung wie in
Eine
grafische Darstellung der Gleichung ist in
Neben einer MS-Kodierung soll innerhalb von SOLO auch eine LS- und RS-Kodierung zur Stereoredundanzreduktion verwendet werden. Somit gibt es insgesamt vier Varianten für die Kodierung von Stereosignalen:
- 1. LR-Kodierung: keine Stereoredundanzreduktion
- 2. LS-Kodierung: linker Kanal und Seitenkanal
- 3. RS-Kodierung: rechter Kanal und Seitenkanal
- 4. MS-Kodierung: Mittenkanal und Seitenkanal
- 1. LR coding: no stereo redundancy reduction
- 2. LS coding: left channel and side channel
- 3. RS coding: right channel and side channel
- 4. MS coding: center channel and side channel
Wie soll man aber entscheiden welche Kodierung am besten ist? Eine Möglichkeit wäre es ein Kriterium zu entwickeln, welches die Variante mit dem kleinsten Datenaufkommen auswählt bevor man die Dekorrelation und Entropiekodierung des jeweiligen Kanals durchführt. Diese Möglichkeit benötigt deutlich weniger Speicher und ist auch nur halb so rechenkomplex als die im folgenden beschriebene Vorgehensweise. Allerdings hängt die Güte dabei maßgeblich von dem Entscheidungskriterium ab. Man könnte dafür die Entropie (Gleichung 2.3) verwenden. Versuche haben allerdings ge zeigt, dass die Entropie hierfür kein zuverlässiges Entscheidungskriterium darstellt.As but should one decide which coding is best? A possibility would it be to develop a criterion which is the variant with the smallest Selects data traffic before getting the decorrelation and entropy coding of each Channels performs. This possibility needed significantly less memory and is only half as complex as the procedure described below. However, the hangs Goodness decisively from the decision criterion. You could use entropy (Equation 2.3) use. However, experiments have shown that entropy therefor not a reliable decision criterion represents.
Eine
andere Möglichkeit
wäre es
L, R, M und S komplett zu verarbeiten, und nach dem Bitverbrauch zu
entscheiden welche Variante verwendet werden soll. Hier benötigt man
mehr Speicher und Rechenzeit, kann aber mit Sicherheit immer die
günstigste
Variante selektieren. Im folgenden wird lediglich von der zweiten Möglichkeit
Gebrauch gemacht (s.
Eine
Untersuchung soll nun zeigen was diese Vorgehensweise bei Stereosignalen
leistet. In folgender Tabelle wird die gemittelte Entropie über das
gesamte Stück
der verschiedenen Varianten gegenübergestellt. Es wurde durchgehend
eine Blocklänge
von 1024 Zeitwerten pro Kanal benutzt. In der letzten Spalte (Beste Variante)
ist die gemittelte Entropie des Vorgehens nach
Am
gewinnbringensten ist das Vorgehen nach
Insbesondere wird darauf hingewiesen, dass abhängig von den Gegebenheiten das erfindungsgemäße Konzept auch in Software implementiert sein kann. Die Implementierung kann auf einem digitalen Speichermedium insbesondere einer Diskette oder einer CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem und/oder Mikrocontroller zusammenwirken können, dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt mit einem auf einem maschinenlesbaren Träger gespeichertem Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf einem Rechner und/oder Mikrocontroller abläuft. In anderen Worten ausgedrückt kann die Erfindung somit als ein Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computerprogramm auf einem Computer und/oder Mikrocontroller abläuft.Especially It is noted that depending on the circumstances the inventive concept can also be implemented in software. The implementation can on a digital storage medium, in particular a floppy disk or a CD with electronically readable control signals, the so with a programmable computer system and / or microcontroller can work together that the corresponding procedure is carried out. Generally exists The invention thus also in a computer program product with a on a machine-readable carrier stored program code for carrying out the method according to the invention, if the computer program product is on a computer and / or microcontroller expires. In other words Thus, the invention can be considered as a computer program with a program code to carry out the process can be realized when the computer program is up a computer and / or microcontroller expires.
Claims (70)
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102007017254A DE102007017254B4 (en) | 2006-11-16 | 2007-04-12 | Device for coding and decoding |
EP20070819842 EP2054884B1 (en) | 2006-11-16 | 2007-11-16 | Device for encoding and decoding |
PCT/EP2007/009941 WO2008058754A2 (en) | 2006-11-16 | 2007-11-16 | Device for encoding and decoding |
US12/514,629 US20100027625A1 (en) | 2006-11-16 | 2007-11-16 | Apparatus for encoding and decoding |
CN2007800498867A CN101601087B (en) | 2006-11-16 | 2007-11-16 | Device for encoding and decoding |
JP2009536665A JP5200028B2 (en) | 2006-11-16 | 2007-11-16 | Apparatus for encoding and decoding |
KR1020097011487A KR101122573B1 (en) | 2006-11-16 | 2007-11-16 | Apparatus for encoding and decoding |
AT07819842T ATE527655T1 (en) | 2006-11-16 | 2007-11-16 | DEVICE FOR CODING AND DECODING |
HK09105056.1A HK1126568A1 (en) | 2006-11-16 | 2009-06-05 | Device for encoding and decoding |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102006054080 | 2006-11-16 | ||
DE102006054080.8 | 2006-11-16 | ||
DE102007017254A DE102007017254B4 (en) | 2006-11-16 | 2007-04-12 | Device for coding and decoding |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102007017254A1 DE102007017254A1 (en) | 2008-07-17 |
DE102007017254B4 true DE102007017254B4 (en) | 2009-06-25 |
Family
ID=39283871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102007017254A Active DE102007017254B4 (en) | 2006-11-16 | 2007-04-12 | Device for coding and decoding |
Country Status (9)
Country | Link |
---|---|
US (1) | US20100027625A1 (en) |
EP (1) | EP2054884B1 (en) |
JP (1) | JP5200028B2 (en) |
KR (1) | KR101122573B1 (en) |
CN (1) | CN101601087B (en) |
AT (1) | ATE527655T1 (en) |
DE (1) | DE102007017254B4 (en) |
HK (1) | HK1126568A1 (en) |
WO (1) | WO2008058754A2 (en) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8521540B2 (en) | 2007-08-17 | 2013-08-27 | Qualcomm Incorporated | Encoding and/or decoding digital signals using a permutation value |
KR101487190B1 (en) * | 2008-09-11 | 2015-01-28 | 삼성전자주식회사 | Flash memory integrated circuit with compression/decompression codec |
CN101615911B (en) * | 2009-05-12 | 2010-12-08 | 华为技术有限公司 | Coding and decoding methods and devices |
CN101609680B (en) * | 2009-06-01 | 2012-01-04 | 华为技术有限公司 | Compression coding and decoding method, coder, decoder and coding device |
BR112012009446B1 (en) | 2009-10-20 | 2023-03-21 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V | DATA STORAGE METHOD AND DEVICE |
US8755619B2 (en) * | 2009-11-19 | 2014-06-17 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding image data using run of the image data |
PT2524371T (en) | 2010-01-12 | 2017-03-15 | Fraunhofer Ges Forschung | Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a hash table describing both significant state values and interval boundaries |
PL3751564T3 (en) * | 2010-07-20 | 2023-03-06 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio decoder, audio decoding method and computer program |
KR101206000B1 (en) * | 2010-12-31 | 2012-11-28 | 전자부품연구원 | Variable order short-term predictor |
EP2676263B1 (en) | 2011-02-16 | 2016-06-01 | Dolby Laboratories Licensing Corporation | Method for configuring filters |
US9058223B2 (en) * | 2011-04-22 | 2015-06-16 | Microsoft Technology Licensing Llc | Parallel entropy encoding on GPU |
GB2490879B (en) * | 2011-05-12 | 2018-12-26 | Qualcomm Technologies Int Ltd | Hybrid coded audio data streaming apparatus and method |
US11039138B1 (en) | 2012-03-08 | 2021-06-15 | Google Llc | Adaptive coding of prediction modes using probability distributions |
US10873761B2 (en) | 2012-04-13 | 2020-12-22 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a subset of transform units of encoded video data |
CN112185400A (en) | 2012-05-18 | 2021-01-05 | 杜比实验室特许公司 | System for maintaining reversible dynamic range control information associated with a parametric audio encoder |
US10844689B1 (en) | 2019-12-19 | 2020-11-24 | Saudi Arabian Oil Company | Downhole ultrasonic actuator system for mitigating lost circulation |
US9799339B2 (en) | 2012-05-29 | 2017-10-24 | Nokia Technologies Oy | Stereo audio signal encoder |
US10003793B2 (en) | 2012-10-01 | 2018-06-19 | Google Technology Holdings LLC | Processing of pulse code modulation (PCM) parameters |
US9490836B2 (en) * | 2012-10-26 | 2016-11-08 | Altera Corporation | Apparatus for improved encoding and associated methods |
US9942063B2 (en) | 2012-10-26 | 2018-04-10 | Altera Corporation | Apparatus for improved encoding and associated methods |
US9485222B2 (en) * | 2013-08-20 | 2016-11-01 | Hewlett-Packard Development Company, L.P. | Data stream traffic control |
BR112016004299B1 (en) | 2013-08-28 | 2022-05-17 | Dolby Laboratories Licensing Corporation | METHOD, DEVICE AND COMPUTER-READABLE STORAGE MEDIA TO IMPROVE PARAMETRIC AND HYBRID WAVEFORM-ENCODIFIED SPEECH |
TW202322101A (en) | 2013-09-12 | 2023-06-01 | 瑞典商杜比國際公司 | Decoding method, and decoding device in multichannel audio system, computer program product comprising a non-transitory computer-readable medium with instructions for performing decoding method, audio system comprising decoding device |
CN105100812B (en) * | 2014-05-23 | 2019-01-04 | 成都市高博汇科信息科技有限公司 | A kind of image sending, receiving method and device |
CN104318926B (en) * | 2014-09-29 | 2018-08-31 | 四川九洲电器集团有限责任公司 | Lossless audio coding method based on IntMDCT, coding/decoding method |
CN104392725A (en) * | 2014-12-02 | 2015-03-04 | 中科开元信息技术(北京)有限公司 | Method and device for hybrid coding/decoding of multi-channel lossless audios |
DE102015217724A1 (en) * | 2015-09-16 | 2017-03-16 | Siemens Aktiengesellschaft | Apparatus and method for creating an asymmetric checksum |
CN110771045B (en) * | 2017-06-22 | 2024-03-29 | 日本电信电话株式会社 | Encoding device, decoding device, encoding method, decoding method, and recording medium |
CN107582046B (en) * | 2017-09-18 | 2022-03-01 | 山东正心医疗科技有限公司 | Real-time electrocardio monitoring method |
EP3467824B1 (en) | 2017-10-03 | 2021-04-21 | Dolby Laboratories Licensing Corporation | Method and system for inter-channel coding |
US10630459B2 (en) | 2018-09-13 | 2020-04-21 | Viasat, Inc. | Synchronizing and aligning sample frames received on multi-component signals at a communications receiver |
TW202102010A (en) | 2019-05-24 | 2021-01-01 | 瑞典商赫爾桑茲股份有限公司 | Methods, devices and computer program products for lossless data compression and decompression |
US11403310B2 (en) * | 2020-02-28 | 2022-08-02 | Verizon Patent And Licensing Inc. | Systems and methods for enhancing time series data compression for improved data storage |
CN111431716B (en) * | 2020-03-30 | 2021-03-16 | 卓尔智联(武汉)研究院有限公司 | Data transmission method and device, computer equipment and storage medium |
CN112435674A (en) * | 2020-12-09 | 2021-03-02 | 北京百瑞互联技术有限公司 | Method, apparatus, medium for optimizing LC3 arithmetic coding search table of spectrum data |
CN113890737B (en) * | 2021-09-27 | 2024-01-26 | 清华大学 | Information coding method, information coding system and related device |
CN114173081A (en) * | 2021-12-13 | 2022-03-11 | 济南大学 | Remote audio and video method and system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10230809A1 (en) * | 2002-07-08 | 2004-01-29 | T-Mobile Deutschland Gmbh | Method for the transmission of audio signals according to the method of prioritizing pixel transmission |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3975587A (en) * | 1974-09-13 | 1976-08-17 | International Telephone And Telegraph Corporation | Digital vocoder |
US4903301A (en) * | 1987-02-27 | 1990-02-20 | Hitachi, Ltd. | Method and system for transmitting variable rate speech signal |
JP3498375B2 (en) * | 1994-07-20 | 2004-02-16 | ソニー株式会社 | Digital audio signal recording device |
JP3011038B2 (en) * | 1994-12-02 | 2000-02-21 | ヤマハ株式会社 | Audio information compression method and apparatus |
JP3353868B2 (en) * | 1995-10-09 | 2002-12-03 | 日本電信電話株式会社 | Audio signal conversion encoding method and decoding method |
US6731811B1 (en) * | 1997-12-19 | 2004-05-04 | Voicecraft, Inc. | Scalable predictive coding method and apparatus |
US6028541A (en) * | 1998-03-12 | 2000-02-22 | Liquid Audio Inc. | Lossless data compression with low complexity |
JP2000165252A (en) * | 1998-11-18 | 2000-06-16 | Neucore Technol Inc | Data compression method and device |
BR9908612B1 (en) * | 1999-01-07 | 2012-02-07 | APPARATUS FOR CODING A DIGITAL INFORMATION SIGNAL, PROCESS TO CODE A DIGITAL INFORMATION SIGNAL, RECORDING SUPPORT AND APPLIANCE FOR DECODING AN INFORMATION SIGNAL. | |
US6842735B1 (en) * | 1999-12-17 | 2005-01-11 | Interval Research Corporation | Time-scale modification of data-compressed audio information |
JP2002077255A (en) * | 2000-08-29 | 2002-03-15 | Fujitsu Ltd | Method for distributing image, and device for transmitting image and router device thereof |
US7047169B2 (en) * | 2001-01-18 | 2006-05-16 | The Board Of Trustees Of The University Of Illinois | Method for optimizing a solution set |
US20020198708A1 (en) * | 2001-06-21 | 2002-12-26 | Zak Robert A. | Vocoder for a mobile terminal using discontinuous transmission |
JP2003022192A (en) * | 2001-07-09 | 2003-01-24 | Hitachi Ltd | Compression programming method using block sort compression algorithm, processor system using the programming method and method for information distribution service |
US7260215B2 (en) * | 2001-09-04 | 2007-08-21 | Portauthority Technologies Inc. | Method for encryption in an un-trusted environment |
WO2003026308A2 (en) * | 2001-09-14 | 2003-03-27 | Siemens Aktiengesellschaft | Method and device for enhancing coding/decoding of video signals |
US6847682B2 (en) * | 2002-02-01 | 2005-01-25 | Hughes Electronics Corporation | Method, system, device and computer program product for MPEG variable bit rate (VBR) video traffic classification using a nearest neighbor classifier |
JP3997171B2 (en) * | 2003-03-27 | 2007-10-24 | 株式会社エヌ・ティ・ティ・ドコモ | Moving picture encoding apparatus, moving picture encoding method, moving picture encoding program, moving picture decoding apparatus, moving picture decoding method, and moving picture decoding program |
DE10322722B4 (en) * | 2003-05-20 | 2005-11-24 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for synchronizing an audio signal with a movie |
EP1749296B1 (en) | 2004-05-28 | 2010-07-14 | Nokia Corporation | Multichannel audio extension |
US7792373B2 (en) * | 2004-09-10 | 2010-09-07 | Pioneer Corporation | Image processing apparatus, image processing method, and image processing program |
-
2007
- 2007-04-12 DE DE102007017254A patent/DE102007017254B4/en active Active
- 2007-11-16 AT AT07819842T patent/ATE527655T1/en active
- 2007-11-16 WO PCT/EP2007/009941 patent/WO2008058754A2/en active Application Filing
- 2007-11-16 JP JP2009536665A patent/JP5200028B2/en active Active
- 2007-11-16 EP EP20070819842 patent/EP2054884B1/en active Active
- 2007-11-16 US US12/514,629 patent/US20100027625A1/en not_active Abandoned
- 2007-11-16 CN CN2007800498867A patent/CN101601087B/en active Active
- 2007-11-16 KR KR1020097011487A patent/KR101122573B1/en active IP Right Grant
-
2009
- 2009-06-05 HK HK09105056.1A patent/HK1126568A1/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10230809A1 (en) * | 2002-07-08 | 2004-01-29 | T-Mobile Deutschland Gmbh | Method for the transmission of audio signals according to the method of prioritizing pixel transmission |
Non-Patent Citations (4)
Title |
---|
ARNAVUT, Z.: Permutation Techniques in Lossless Compression. Dissertation an der Fakultät der University of Nebraska, Lincoln, Nebraska, September 1995 * |
ARNAVUT, Z.: Permutation Techniques in Lossless Compression. Dissertation an der Fakultät der University of Nebraska, Lincoln, Nebraska, September 1995 BABAEV, A.A.: Procedures of Encoding and Decoding of Permutations . In: Plenum Publishing Corporation, UDC 519.15:681.3, S. 861-863 , 1985 RAAD, M., BURNETT, I.S.: Audio coding using sorted sinusoidal parameters. in: IEEE Circuits and Systems, 2001, ISCAS 2001, S. 401-404, Vol. 2 |
BABAEV, A.A.: Procedures of Encoding and Decoding of Permutations . In: Plenum Publishing Corporation, UDC 519.15:681.3, S. 861-863 , 1985 * |
RAAD, M., BURNETT, I.S.: Audio coding using sorted sinusoidal parameters. in: IEEE Circuits and Systems, 2001, ISCAS 2001, S. 401-404, Vol. 2 * |
Also Published As
Publication number | Publication date |
---|---|
EP2054884B1 (en) | 2011-10-05 |
KR101122573B1 (en) | 2012-03-22 |
WO2008058754A3 (en) | 2008-07-10 |
EP2054884A2 (en) | 2009-05-06 |
CN101601087B (en) | 2013-07-17 |
CN101601087A (en) | 2009-12-09 |
KR20090087902A (en) | 2009-08-18 |
ATE527655T1 (en) | 2011-10-15 |
US20100027625A1 (en) | 2010-02-04 |
DE102007017254A1 (en) | 2008-07-17 |
JP2010510533A (en) | 2010-04-02 |
HK1126568A1 (en) | 2009-09-04 |
JP5200028B2 (en) | 2013-05-15 |
WO2008058754A2 (en) | 2008-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102007017254B4 (en) | Device for coding and decoding | |
EP2022043B1 (en) | Information signal coding | |
EP1495464B1 (en) | Device and method for encoding a time-discrete audio signal and device and method for decoding coded audio data | |
EP1502255B1 (en) | Device and method for scalable coding and device and method for scalable decoding | |
DE60014363T2 (en) | REDUCING DATA QUANTIZATION DATA BLOCK DISCOUNTS IN AN AUDIO ENCODER | |
DE102004009954B4 (en) | Apparatus and method for processing a multi-channel signal | |
EP1697931B1 (en) | Device and method for determining an estimated value | |
DE20321886U1 (en) | Inverse quantization for audio | |
EP1854334A1 (en) | Device and method for generating an encoded stereo signal of an audio piece or audio data stream | |
WO2006027079A1 (en) | Device and method for reconstructing a multichannel audio signal and for generating a parameter data record therefor | |
DE60310449T2 (en) | AUDIO SIGNAL CODING | |
WO1999004505A1 (en) | Method for signalling a noise substitution during audio signal coding | |
WO2005078704A1 (en) | Audio coding | |
DE69932861T2 (en) | METHOD FOR CODING AN AUDIO SIGNAL WITH A QUALITY VALUE FOR BIT ASSIGNMENT | |
WO2001043503A2 (en) | Method and device for processing a stereo audio signal | |
DE602005003358T2 (en) | AUDIO CODING | |
DE60303346T2 (en) | Encoding and / or decoding method for digital audio signals, based on time-frequency correlation and apparatus for this purpose | |
DE10331803A1 (en) | Apparatus and method for converting to a transformed representation or for inverse transformation of the transformed representation | |
EP1697928B1 (en) | Audio encoding | |
EP1247275B1 (en) | Device and method for determining a coding block raster of a decoded signal | |
DE102020210917B4 (en) | Improved M/S stereo encoder and decoder | |
EP1277346A1 (en) | Device and method for analysing a decoded time signal | |
DE202004002264U1 (en) | Audio encoding arrangement has device for including information from which quantised, filtered audio values, parameterisation version can be derived and parameterisation combination in coded signal | |
DE202004002269U1 (en) | Arrangement for quantising information signal has quantising step function that forms filtered information values on quantised information values with steeper gradient below threshold value |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ON | Later submitted papers | ||
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition |