DE102007017254B4 - Device for coding and decoding - Google Patents

Device for coding and decoding Download PDF

Info

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
Application number
DE102007017254A
Other languages
German (de)
Other versions
DE102007017254A1 (en
Inventor
Tilo Wik
Dieter Weninger
Jürgen HERRE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to DE102007017254A priority Critical patent/DE102007017254B4/en
Application filed by Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to CN2007800498867A priority patent/CN101601087B/en
Priority to EP20070819842 priority patent/EP2054884B1/en
Priority to PCT/EP2007/009941 priority patent/WO2008058754A2/en
Priority to US12/514,629 priority patent/US20100027625A1/en
Priority to JP2009536665A priority patent/JP5200028B2/en
Priority to KR1020097011487A priority patent/KR101122573B1/en
Priority to AT07819842T priority patent/ATE527655T1/en
Publication of DE102007017254A1 publication Critical patent/DE102007017254A1/en
Priority to HK09105056.1A priority patent/HK1126568A1/en
Application granted granted Critical
Publication of DE102007017254B4 publication Critical patent/DE102007017254B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/002Dynamic bit allocation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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

An apparatus for encoding a sequence of samples of an audio signal, with each sample within the sequence having an original position, includes a sorter for sorting the samples depending on their sizes, in order to obtain a sorted sequence of samples, with each sample having a sorting position within the sorted sequence. Furthermore, the apparatus has an encoder for encoding the sorted samples and information on a relation between the original and sorting positions of the samples.

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 DE 102 30 809 A1 offenbart ein Verfahren zur Übertragung von Audiosignalen zwischen einem Sender und mindestens einem Empfänger nach dem Verfahren der priorisierenden Pixelübertragung. Zunächst wird das Audiosignal in eine Anzahl von spektralen Anteilen zerlegt. Das zerlegte Audiosignal wird in einem zweidimensionalen Array mit einer Vielzahl von Feldern gespeichert, mit Frequenz und Zeit als Dimensionen und der Amplitude als jeweils einzutragenden Wert im Feld. Dann werden aus jedem einzelnen Feld und mindestens zwei in diesem Feld benachbarten Feldern des Arrays Gruppen gebildet und den einzelnen Gruppen eine Priorität zugeordnet, wobei die Priorität einer Gruppe umso größer gewählt wird, je größer die Amplituden der Gruppenwerte sind und/oder je größer die Amplitudenunterschiede der Werte einer Gruppe sind und/oder je näher die Gruppe an der aktuellen Zeit liegt. Schließlich werden die Gruppen in der Reihenfolge ihrer Priorität an den Empfänger übertragen.The DE 102 30 809 A1 discloses a method of transmitting audio signals between a transmitter and at least one receiver according to the method of prioritizing pixel transmission. First, the audio signal is decomposed into a number of spectral components. The decomposed audio signal is stored in a two-dimensional array with a plurality of fields, with frequency and time as dimensions, and the amplitude as each value to be entered in the field. Then groups are formed from each individual field and at least two fields of the array adjacent to one another in this field, and a priority is assigned to the individual groups, the priority of a group being selected the greater the amplitudes of the group values are and / or the larger the amplitude differences the values of a group and / or the closer the group is to the current time. Finally, the groups are transmitted to the recipient in order of priority.

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:

1a ein Ausführungsbeispiel einer Vorrichtung zum Kodieren; 1a an embodiment of a device for coding;

1b ein Ausführungsbeispiel einer Vorrichtung zum Dekodieren; 1b an embodiment of a device for decoding;

2a ein Ausführungsbeispiel einer Vorrichtung zum Kodieren; 2a an embodiment of a device for coding;

2b ein Ausführungsbeispiel einer Vorrichtung zum Dekodieren; 2 B an embodiment of a device for decoding;

3a ein Ausführungsbeispiel einer Vorrichtung zum Kodieren; 3a an embodiment of a device for coding;

3b ein Ausführungsbeispiel einer Vorrichtung zum Dekodieren; 3b an embodiment of a device for decoding;

4a ein Ausführungsbeispiel einer Vorrichtung zum Kodieren; 4a an embodiment of a device for coding;

4b ein Ausführungsbeispiel einer Vorrichtung zum Dekodieren; 4b an embodiment of a device for decoding;

5 Ausführungsbeispiele eines Audiosignals, einer Permutation und einer Inversionstafel; 5 Exemplary embodiments of an audio signal, a permutation and an inversion panel;

6 ein Ausführungsbeispiel eines Kodierers; 6 an embodiment of an encoder;

7 ein Ausführungsbeispiel eines Dekodierers; 7 an embodiment of a decoder;

8 ein weiteres Ausführungsbeispiel eines Kodierers; 8th another embodiment of an encoder;

9 ein weiteres Ausführungsbeispiel eines Dekodierers; 9 another embodiment of a decoder;

10a ein Beispiel für ein Frequenzspektrum mit Approximation eines Audiosignals; 10a an example of a frequency spectrum with approximation of an audio signal;

10b ein Beispiel für ein sortiertes Frequenzspektrum und dessen Approximation eines Audiosignals; 10b an example of a sorted frequency spectrum and its approximation of an audio signal;

11 eine Illustration zur Verdeutlichung einer Sorted-Lossless-Kodierung; 11 an illustration to illustrate a sorted-lossless encoding;

12 ein Beispiel eines sortierten differenzkodierten Signals und dessen Restsignals; 12 an example of a sorted difference-coded signal and its residual signal;

13 Beispiel eines sortierten Zeitsignals; 13 Example of a sorted time signal;

14 ein Beispiel sortierter Zeitwerte und einem entsprechenden Curve-Fitting; und 14 an example of sorted time values and a corresponding curve fitting; and

15 eine Gegenüberstellung der Kodiereffizienz einer Differenzkodierung und Curve-Fitting. 15 a comparison of the coding efficiency of differential coding and curve fitting.

16 beispielhafte Verarbeitungsschritte der meisten verlustlosen Audiokompressionsalgorithmen; 16 exemplary processing steps of most lossless audio compression algorithms;

17 ein Ausführungsbeispiel einer Struktur einer Prädiktionskodierung; 17 an embodiment of a structure of a prediction coding;

18 ein Ausführungsbeispiel einer Struktur einer Rekonstruktion bei einer Prädiktionskodierung; 18 an embodiment of a structure of a reconstruction in a prediction coding;

19 ein Ausführungsbeispiel von Warmup-Werten eines Prädiktionsfilters; 19 an embodiment of warmup values of a prediction filter;

20 ein Ausführungsbeispiel eines Vorhersagemodells; 20 an embodiment of a predictive model;

21 ein Blockdiagramm einer Struktur eines LTAC Encoders; 21 a block diagram of a structure of a LTAC encoder;

22 ein Blockdiagramm eines MPEG-4 SLS Encoders; 22 a block diagram of an MPEG-4 SLS encoder;

23 eine Stereoredundanzreduktion nach Dekorrelation einzelner Kanäle; 23 a stereo-redundancy reduction after decorrelation of single channels;

24 eine Stereoredundanzreduktion vor Dekorrelation einzelner Kanäle; 24 a stereo-redundancy reduction before decorrelation of single channels;

25 eine Illustration des Zusammenhangs von Prädiktorordnung und Gesamtbitverbrauch; 25 an illustration of the relationship between predictor order and total bit consumption;

26 eine Illustration des Zusammenhangs von Quantisierungparameters g und Gesamtbitverbrauch; 26 an illustration of the relationship between quantization parameter g and total bit consumption;

27 eine Illustration eines Betragsfrequenzgangs eines Fixed Predictors in Abhängigkeit von dessen Ordnung p; 27 an illustration of a magnitude frequency response of a fixed predictor as a function of its order p;

28 eine Illustration des Zusammenhangs von Permutationslänge, Anzahl der Transpositionen und Kodierbarkeitsmaß; 28 an illustration of the relationship between permutation length, number of transpositions and codability measure;

29 eine Darstellung von Inversionstafeln im 10. Block (Frame) eines rauschartigen Stückes; 29 a representation of inversion tables in the 10th block (frame) of a noise-like piece;

30 eine Darstellung von Inversionstafeln im 20. Block (Frame) eines tonalen Stückes; 30 a representation of inversion tables in the 20th block (frame) of a tonal piece;

31 eine Darstellung von aus einer Sortierung von Zeitwerten enstandenen Permutation eines rauschartigen Stückes im 10. Block (links) und eines tonalen Stückes (rechts); 31 a representation of a permutation of a noise-like piece in the 10th block (left) and a tonal piece (right) created from a sorting of time values;

32 links einen Teil eines Audiosignals, die entsprechende Permutation und Inversionstafel LS, und rechts die Permutation und die Inversionstafel LS aus dem linken Bild vergrößert; 32 on the left a part of an audio signal, the corresponding permutation and inversion table LS, and on the right the permutation and the inversion table LS from the left picture enlarged;

33 links einen Teil eines Audiosignals, die entsprechende Permutation und Inversionstafel LS, und rechts die Permutation und die Inversionstafel LS aus dem linken Bild vergrößert; 33 on the left a part of an audio signal, the corresponding permutation and inversion table LS, and on the right the permutation and the inversion table LS from the left picture enlarged;

34 eine Wahrscheinlichkeitsverteilung (oben) und eine Länge der Codewörter (unten) eines durch Prädiktion (Fixed Predictor) entstandenen Restsignals einer Inversionstafel LB; 34 a probability distribution (above) and a length of the codewords (below) of a predicted (Fixed Predictor) residual signal of an inversion table LB;

35 eine Wahrscheinlichkeitsverteilung (oben) und eine Länge von Codewörtern eines durch Differenzkodierung entstandenen Restsignals (unten) sortierter Zeitwerte; 35 a probability distribution (above) and a length of codewords of a difference signal-generated residual signal (below) of sorted time values;

36 einen prozentualen Anteil einer Teilblockzerlegung mit einem geringsten Datenaufkommen einer vorwärts-adaptiven Rice Kodierung über ein Restsignal eines Fixed Predictors eines Stückes einschließlich Seiteninformation für Parameter, die Gesamtblocklänge ist 1024 Zeitwerte groß; 36 a percentage of a partial block decomposition with a least amount of data of a forward adaptive Rice coding over a residual signal of a fixed predictor of a piece including side information for parameters, the total block length is 1024 time values;

37 einen prozentualen Anteil einer Teilblockzerlegung mit dem geringsten Datenaufkommen einer vorwärts-adaptiven Golomb Kodierung über das Restsignal eines Fixed Predictors eines Stückes einschließlich Seiteninformation für Parameter, die Gesamtblocklänge ist 1024 Zeitwerte groß; 37 a percentage of a subblock decomposition with the least amount of data of a forward adaptive Golomb coding over the residual signal of a fixed predictor of a piece including side information for parameters, the total block length is 1024 time values;

38 eine Illustration zur Arbeitsweise eines History Buffers; 38 an illustration of the operation of a history buffer;

39 eine Illustration zur Arbeitsweise einer Adaption verglichen mit einem optimalen Parameter für den Gesamtblock; 39 an illustration of the operation of an adaptation compared with an optimal parameter for the entire block;

40 ein Ausführungsbeispiel einer vorwärts-adaptiven arithmetische Kodierung unter Zuhilfenahme einer rückwärts-adaptiven Rice Kodierung; 40 an embodiment of a forward-adaptive arithmetic coding with assistance me a backward adaptive Rice coding;

41 eine Darstellung des Einflusses der Blockgröße auf den Kompressionsfaktor F; 41 a representation of the influence of the block size on the compression factor F;

42 eine Darstellung zur verlustlosen MS-Enkodierung; 42 a representation for lossless MS encoding;

43 eine weitere Darstellung zur verlustlosen MS-Enkodierung; und 43 another illustration for lossless MS encoding; and

44 eine Illustration zur Auswahl einer besten Variante zur Stereoredundanzreduktion. 44 an illustration to select a best variant for stereo reduction reduction.

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.

1a zeigt eine Vorrichtung 100 zum Kodieren einer Sequenz von Abtastwerten eines Audiosignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist. Die Vorrichtung 100 umfasst eine Einrichtung 110 zum Sortieren der Abtastwerte nach ihrer Größe (nach einer evtl. stattfindenden Vorverarbeitung, z. B. Zeit-/Frequenz-Transformation, Prädiktion, usw.), um eine sortierte Sequenz von Abtastwerten zu erhalten, wobei jeder Abtastwert eine Sortierungsposition innerhalb der sortierten Sequenz aufweist. Ferner weist die Vorrichtung 100 eine Einrichtung 120 zum Kodieren der sortierten Abtastwerte und einer Information über eine Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte auf. 1a shows a device 100 for encoding a sequence of samples of an audio signal, each sample having an origin position within the sequence. The device 100 includes a device 110 for sorting the samples by size (after any preprocessing, eg, time / frequency transformation, prediction, etc.) to obtain a sorted sequence of samples, each sample having a sorting position within the sorted sequence having. Furthermore, the device 100 An institution 120 for encoding the sorted samples and information about a relationship between the original and sort positions of the samples.

Die Vorrichtung 100 kann ferner eine Vorverarbeitungseinrichtung aufweisen, die ausgebildet ist, um eine Filterung, eine Zeit-/Frequenz-Transformation, eine Prädiktion oder eine Multikanalredundanzreduktion zur Erzeugung der Sequenz von Abtastwerten durchzuführen. In Ausführungsbeispielen kann die Einrichtung 120 zum Kodieren ausgebildet sein, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Indexpermutation zu kodieren. Optional kann die Einrichtung 120 zum Kodieren die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Inversionstafel kodieren. Die Einrichtung 120 zum Kodieren kann ferner ausgebildet sein, um die sortierten Abtastwerte oder die Information. über die Beziehung zwischen den Ursprungs- und Sortierungspositionen mit einer Differenz- und anschließender Entropiekodierung oder nur einer Entropiekodierung zu kodieren.The device 100 may further comprise a preprocessing means configured to perform a filtering, a time / frequency transform, a prediction or a multi-channel redundancy reduction for generating the sequence of samples. In embodiments, the device 120 for encoding to encode the information about the relationship between the source and sort positions as index permutation. Optionally, the device 120 for encoding, encode the information about the relationship between the source and sort positions as an inversion chart. The device 120 The coding may further be adapted to the sorted samples or the information. encode the relationship between the source and sort positions with differential and subsequent entropy coding or only one entropy coding.

In anderen Ausführungsbeispielen kann die Einrichtung 120 basierend auf den sortierten Abtastwerten, einer Permutation oder einer Inversionstafel Koeffizienten eines Prädiktionsfilters bestimmen und kodieren. Dabei kann ferner ein Restsignal, das einer Differenz zwischen den Abtastwerten und einem Ausgangssignal des Prädiktionsfilters entspricht, kodiert werden und eine verlustlose Kodierung ermöglichen. Das Restsignal kann dabei mit einer Entropiekodierung kodiert werden. In einem weiteren Ausführungsbeispiel kann die Vorrichtung 100 eine Einrichtung zum Einstellen von Funktionskoeffizienten einer Funktionsvorschrift zur Anpassung zumindest an einen Teilbereich der sortierten Sequenz aufweisen und die Einrichtung 120 zum Kodieren kann ausgebildet sein, um die Funktionskoeffizienten zu kodieren.In other embodiments, the device may 120 determine and encode coefficients of a prediction filter based on the sorted samples, a permutation or an inversion table. In this case, furthermore, a residual signal which corresponds to a difference between the sampled values and an output signal of the prediction filter can be coded and enable lossless coding. The residual signal can be coded with an entropy coding. In a further embodiment, the device 100 a device for setting function coefficients of a functional specification for adaptation at least to a subregion of the sorted sequence and the device 120 for encoding may be formed to encode the function coefficients.

1b zeigt ein Ausführungsbeispiel einer Vorrichtung 150 zum Dekodieren einer Sequenz von Abtastwerten eines Audiosignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist. Die Vorrichtung 150 umfasst dabei eine Einrichtung 160 zum Empfangen einer Sequenz von kodierten Abtastwerten, wobei jeder kodierte Abtastwert innerhalb der Sequenz von kodierten Abtastwerten eine Sortierungsposition aufweist und die Einrichtung 160 ferner zum Empfangen einer Information über eine Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte ausgebildet ist. Die Vorrichtung 150 weist ferner eine Einrichtung 170 zum Dekodieren der Abtastwerte und der Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen auf und umfasst ferner eine Einrichtung 180 zum Umsortieren der Abtastwerte basierend auf der Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen, so dass jeder Abtastwert seine Ursprungsposition aufweist. 1b shows an embodiment of a device 150 for decoding a sequence of samples of an audio signal, each sample having an origin position within the sequence. The device 150 includes a device 160 for receiving a sequence of coded samples, each coded sample having a sorting position within the sequence of coded samples, and the device 160 is further adapted to receive information about a relationship between the original and sort positions of the samples. The device 150 also has a device 170 for decoding the samples and the information about the relationship between the source and sort positions, and further comprising means 180 for resorting the samples based on the information on the relationship between the source and sort positions so that each sample has its original position.

In Ausführungsbeispielen kann die Einrichtung 160 zum Empfangen ausgebildet sein, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Indexpermutation zu empfangen. Ferner kann die Einrichtung 160 zum Empfangen ausgebildet sein, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Inversionstafel zu empfangen. Die Einrichtung 170 zum Dekodieren kann in Ausführungsbeispielen ausgebildet sein, um die kodierten Abtastwerte oder die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen mit einer Entropie- und anschließender Differenzdekodierung oder nur einer Entropiedekodierng zu dekodieren. Die Einrichtung 160 zum Empfangen kann optional kodierte Koeffizienten eines Prädiktionsfilters empfangen und die Einrichtung 170 zum Dekodieren kann ausgebildet sein, um die kodierten Koeffizienten zu dekodieren, wobei die Vorrichtung 150 ferner eine Einrichtung zum Prädizieren von Abtastwerten oder Beziehungen zwischen den Ursprungs- und Sortierungspositionen basierend auf den Koeffizienten aufweisen kann.In embodiments, the device 160 for receiving to receive the information about the relationship between the originating and sorting positions as an index permutation. Furthermore, the device 160 for receiving to receive the information about the relationship between the originating and sorting positions as an inversion chart. The device 170 For decoding purposes, embodiments may be configured to decode the encoded samples or the information on the relationship between the source and sort positions with entropy and subsequent difference decoding, or only entropy decoding. The device 160 For receiving, optionally coded coefficients of a prediction filter can be received and the device 170 for decoding may be configured to decode the coded coefficients, wherein the device 150 and further comprising means for predicting samples or relationships between the source and sort positions based on the coefficients.

In weiteren Ausführungsbeispielen kann die Einrichtung 160 zum Empfangen ausgebildet sein, um ferner ein Restsignal, das einer Differenz zwischen den Abtastwerten und einem Ausgangssignal des Prädiktionsfilters entspricht, zu empfangen und die Einrichtung 170 zum Dekodieren kann ferner ausgebildet sein, um basierend auf dem Restsignal die Abtastwerte anzupassen. Die Einrichtung 170 kann dabei optional das Restsignal mit einer Entropiedekodierung dekodieren. Die Einrichtung 160 zum Empfangen könnte ferner Funktionskoeffizienten einer Funktionsvorschrift empfangen und die Vorrichtung 150 könnte ferner eine Einrichtung zum Anpassen einer Funktionsvorschrift an zumindest einen Teilbereich der sortierten Sequenz aufweisen und die Einrichtung 170 zum Dekodieren könnte ausgebildet sein, um die Funktionskoeffizienten zu dekodieren.In further embodiments, the device 160 for receiving, to further receive a residual signal corresponding to a difference between the samples and an output of the prediction filter, and the means 170 for decoding may further be configured to adjust the samples based on the residual signal. The device 170 can optionally decode the residual signal with an entropy decoding. The device 160 for receiving could also receive function coefficients of a functional specification and the device 150 could further comprise means for adapting a functional rule to at least a portion of the sorted sequence and the device 170 for decoding could be designed to decode the function coefficients.

2a zeigt ein Ausführungsbeispiel einer Vorrichtung 200 zum Kodieren einer Sequenz von Abtastwerten eines Informationssignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist. Die Vorrichtung 200 umfasst eine Einrichtung 210 zum Sortieren der Abtastwerte nach ihrer Größe, um eine sortierte Sequenz von Abtastwerten zu erhalten, wobei jeder Abtastwert eine Sortierungsposition innerhalb der sortierten Sequenz aufweist. Die Vorrichtung 200 umfasst ferner eine Einrichtung 220 zum Einstellen von Funktionskoeffizienten einer Funktionsvorschrift zur Anpassung an zumindest einen Teilbereich der sortierten Sequenz und eine Einrichtung 230 zum Kodieren der Funktionskoeffizienten, der Abtastwerte außerhalb des Teilbereichs und einer Information über eine Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte. 2a shows an embodiment of a device 200 for encoding a sequence of samples of an information signal, each sample having an origin position within the sequence. The device 200 includes a device 210 for sorting the samples by their size to obtain a sorted sequence of samples, each sample having a sorting position within the sorted sequence. The device 200 also includes a device 220 for setting functional coefficients of a functional specification for adaptation to at least one subregion of the sorted sequence and a device 230 for coding the function coefficients, the samples outside the sub-range, and information about a relationship between the original and sort positions of the samples.

Die Vorrichtung 200 kann ferner eine Vorverarbeitungseinrichtung aufweisen, die ausgebildet ist, um eine Filterung, eine Zeit-/Frequenz-Transformation, eine Prädiktion oder eine Multikanalredundanzreduktion zur Erzeugung der Sequenz von Abtastwerten durchzuführen. In Ausführungsbeispielen kann das Informationssignal ein Audiosignal umfassen. Die Einrichtung 230 zum Kodieren kann ausgebildet sein, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Indexpermutation zu kodieren. Ferner kann die Einrichtung 230 zum Kodieren ausgebildet sein, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Inversionstafel zu kodieren. Optional kann die Einrichtung 220 zum Kodieren auch ausgebildet sein, um die sortierten Abtastwerte, die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen mit einer Differenz- und anschließen der Entropiekodierung oder nur einer Entropiekodierung zu kodieren. Die Einrichtung 230 zum Kodieren könnte ferner ausgebildet sein, um basierend auf den Abtastwerten, einer Permutation oder einer Inversionstafel Koeffizienten eines Prädiktionsfilters zu bestimmen und zu kodieren.The device 200 may further comprise a preprocessing means configured to perform a filtering, a time / frequency transform, a prediction or a multi-channel redundancy reduction for generating the sequence of samples. In embodiments, the information signal may include an audio signal. The device 230 For encoding, it may be configured to encode the information about the relationship between the originating and sorting positions as an index permutation. Furthermore, the device 230 be adapted to encode to encode the information about the relationship between the original and sorting positions as Inversionstafel. Optionally, the device 220 also be configured for coding to encode the sorted samples, the information about the relationship between the original and sorting positions with a difference and then the entropy coding or only an entropy coding. The device 230 The coding could also be designed to determine and to code coefficients of a prediction filter based on the samples, a permutation or an inversion table.

In weiteren Ausführungsbeispielen kann die Einrichtung 230 zum Kodieren ferner ausgebildet sein, um ein Restsignal, das einer Differenz zwischen den Abtastwerten und einem Ausgangssignal eines Prädiktionsfilters entspricht, zu kodieren. Die Einrichtung 230 zum Kodieren kann wiederum angepasst sein, um das Restsignal mit einer Entropiekodierung zu kodieren.In further embodiments, the device 230 for encoding, further configured to encode a residual signal corresponding to a difference between the samples and an output of a prediction filter. The device 230 for encoding, in turn, may be adapted to encode the residual signal with entropy coding.

2b zeigt ein Ausführungsbeispiel einer Vorrichtung 250 zum Dekodieren einer Sequenz von Abtastwerten eines Informationssignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist. Die Vorrichtung 250 umfasst eine Einrichtung 260 zum Empfangen von kodierten Funktionskoeffizienten, sortierten Abtastwerten und einer Information über eine Beziehung zwischen einer Sortierungsposition und der Ursprungsposition von Abtastwerten. Die Vorrichtung 250 umfasst ferner eine Einrichtung 270 zum Dekodieren von Abtastwerten und eine Einrichtung 280 zum Approximieren von Abtastwerten basierend auf den Funktionskoeffizienten zumindest in einem Teilbereich der Sequenz. Die Vorrichtung 250 weist ferner eine Einrichtung 290 zum Umsortieren der Abtastwerte und des approximierten Teilbereiches auf, basierend auf der Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen, so dass jeder Abtastwert seine Ursprungsposition aufweist. 2 B shows an embodiment of a device 250 for decoding a sequence of samples of an information signal, each sample having an origin position within the sequence. The device 250 includes a device 260 for receiving coded function coefficients, sorted samples, and information about a relationship between a sort position and the origin position of samples. The device 250 also includes a device 270 for decoding samples and means 280 for approximating samples based on the function coefficients at least in a portion of the sequence. The device 250 also has a device 290 for resorting the samples and the approximated portion based on the information about the relationship between the original and sort positions so that each sample has its original position.

In Ausführungsbeispielen kann das Informationssignal ein Audiosignal umfassen. Die Einrichtung 260 zum Empfangen kann ausgebildet sein, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Indexpermutation zu empfangen. Ferner kann die Einrichtung 260 zum Empfangen ausgebildet sein, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Inversionstafel zu empfangen. Die Einrichtung 270 kann optional die sortierten Abtastwerte oder die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen mit einer Entropie- und anschließender Differenzdekodierung oder nur einer Entropiedekodierung dekodieren. Die Einrichtung 260 zum Empfangen kann ferner angepasst sein, um kodierte Koeffizienten eines Prädiktionsfilters zu empfangen und die Einrichtung 270 zum Dekodieren kann ausgebildet sein, um die kodierten Koeffizienten zu dekodieren, wobei die Vorrichtung 250 ferner eine Einrichtung zum Prädizieren von Abtastwerten basierend auf den Koeffizienten aufweisen kann.In embodiments, the information signal may include an audio signal. The device 260 for receiving, it may be arranged to receive the information about the relationship between the originating and sorting positions as an index permutation. Furthermore, the device 260 for receiving, the information about the relationship between the originating and sorting positions to receive as an inversion table. The device 270 Optionally, it may decode the sorted samples or the information about the relationship between the source and sort positions with entropy and then difference decoding or only entropy decoding. The device 260 for receiving may further be adapted to receive coded coefficients of a prediction filter and the device 270 for decoding may be configured to decode the coded coefficients, wherein the device 250 and further comprising means for predicting samples based on the coefficients.

In weiteren Ausführungsbeispielen kann die Einrichtung 260 zum Empfangen ausgebildet sein, um ein Restsignal, das einer Differenz zwischen den Abtastwerten und einem Ausgangssignal des Prädiktionsfilters oder der Einrichtung 280 zum Approximieren entspricht, zu empfangen und die Einrichtung 270 zum Dekodieren kann ausgebildet sein, um basierend auf dem Restsignal die Abtastwerte anzupassen. Die Einrichtung 270 zum Dekodieren kann optional das Restsignal mit einer Entropiedekodierung dekodieren.In further embodiments, the device 260 for receiving, a residual signal representing a difference between the samples and an output signal of the prediction filter or the device 280 for approximating corresponds to receive and the device 270 for decoding may be configured to adjust the samples based on the residual signal. The device 270 For decoding, optionally, the residual signal may be decoded with entropy decoding.

3a zeigt eine Vorrichtung 300 zum Kodieren einer Sequenz von Abtastwerten eines Informationssignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist. Die Vorrichtung 300 umfasst eine Einrichtung 310 zum Sortieren der Abtastwerte nach ihrer Größe, um eine sortierte Sequenz von Abtastwerten zu erhalten, wobei jeder Abtastwert eine Sortierungsposition innerhalb der sortierten Sequenz aufweist. Die Vorrichtung 300 umfasst ferner eine Einrichtung 320 zum Erzeugen einer Zahlenfolge abhängig von einer Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte und zum Bestimmen von Koeffizienten eines Prädiktionsfilters basierend auf der Zahlenfolge. Die Vorrichtung 300 weist ferner eine Einrich tung 330 zum Kodieren der sortierten Abtastwerte und der Koeffizienten auf. 3a shows a device 300 for encoding a sequence of samples of an information signal, each sample having an origin position within the sequence. The device 300 includes a device 310 for sorting the samples by their size to obtain a sorted sequence of samples, each sample having a sorting position within the sorted sequence. The device 300 also includes a device 320 for generating a sequence of numbers depending on a relationship between the original and sort positions of the samples and for determining coefficients of a prediction filter based on the sequence of numbers. The device 300 also has a Einrich device 330 for encoding the sorted samples and the coefficients.

Die Vorrichtung 300 kann ferner eine Vorverarbeitungseinrichtung aufweisen, die ausgebildet ist, um eine Filterung, eine Zeit-/Frequenz-Transformation, eine Prädiktion oder eine Multikanalredundanzreduktion zur Erzeugung der Sequenz von Abtastwerten durchzuführen. In Ausführungsbeispielen kann das Informationssignal ein Audiosignal aufweisen. Die Einrichtung 320 zum Erzeugen der Zahlenfolge kann ausgebildet sein, um eine Indexpermutation zu erzeugen. Optional kann die Einrichtung 320 zum Erzeugen der Zahlenfolge eine Inversionstafel erzeugen. Die Einrichtung 320 zum Erzeugen der Zahlenfolge kann angepasst sein, um ferner ein Restsignal zu erzeugen, das einer Differenz zwischen der Zahlenfolge und einer auf der Basis der Koeffizienten prädizierten Prädiktionsfolge entspricht. Die Einrichtung 330 zum Kodieren kann angepasst sein, um die sortierten Abtastwerte gemäß einer Differenz- und anschließender Entropiekodierung oder nur einer Entropiekodierung zu kodieren. Die Einrichtung 330 zum Kodieren kann ferner ausgebildet sein, um das Restsignal zu kodieren.The device 300 may further comprise a preprocessing means configured to perform a filtering, a time / frequency transform, a prediction or a multi-channel redundancy reduction for generating the sequence of samples. In embodiments, the information signal may comprise an audio signal. The device 320 for generating the sequence of numbers may be formed to generate an index permutation. Optionally, the device 320 To generate the sequence of numbers, create an inversion table. The device 320 for generating the sequence of numbers may be adapted to further generate a residual signal corresponding to a difference between the sequence of numbers and a prediction order predicted on the basis of the coefficients. The device 330 for encoding may be adapted to encode the sorted samples according to difference and subsequent entropy coding or only one entropy coding. The device 330 for encoding may further be configured to encode the residual signal.

3b zeigt ein Ausführungsbeispiel einer Vorrichtung 350 zum Dekodieren einer Sequenz von Abtastwerten eines Informationssignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist. Die Vorrichtung 350 umfasst eine Einrichtung 360 zum Empfangen von Koeffizienten eines Prädiktionsfilters und einer Sequenz von Abtastwerten, wobei jeder Abtastwert eine Sortierungsposition aufweist. Die Vorrichtung umfasst ferner eine Einrichtung 370 zum Prädizieren einer Zahlenfolge basierend auf den Koeffizienten und eine Einrichtung 380 zum Umsortieren der Sequenz von Abtastwerten basierend auf der Zahlenfolge, so dass jeder Abtastwert seine Ursprungsposition aufweist. 3b shows an embodiment of a device 350 for decoding a sequence of samples of an information signal, each sample having an origin position within the sequence. The device 350 includes a device 360 for receiving coefficients of a prediction filter and a sequence of samples, each sample having a sorting position. The device further comprises a device 370 for predicting a sequence of numbers based on the coefficients and a device 380 for reordering the sequence of samples based on the sequence of numbers so that each sample has its original position.

In Ausführungsbeispielen kann das Informationssignal ein Audiosignal aufweisen. Ferner kann die Einrichtung 370 zum Prädizieren der Zahlenfolge eine Indexpermutation als Zahlenfolge Prädizieren. Die Einrichtung 370 zum Prädizieren der Zahlenfolge könnte auch eine Inversionstafel als Zahlenfolge Prädizieren. Die Einrichtung 360 zum Empfangen kann ferner ausgebildet sein, um ein kodiertes Restsignal zu empfangen und die Einrichtung 370 zum Prädizieren kann ausgebildet sein, um das Restsignal bei der Prädiktion der Zahlenfolge zu berücksichtigen. Die Vorrichtung 350 kann ferner eine Einrichtung zum Dekodieren aufweisen, die ausgebildet ist, um Abtastwerte nach einer Entropie- und anschließender Differenzdekodierung oder nur einer Entropiedekodierung zu dekodieren.In embodiments, the information signal may comprise an audio signal. Furthermore, the device 370 to predicate the sequence of numbers an index permutation as a number sequence predicate. The device 370 Predicting the sequence of numbers could also predict an inversion chart as a sequence of numbers. The device 360 for receiving may further be configured to receive a coded residual signal and the device 370 for prediction can be designed to take into account the residual signal in the prediction of the sequence of numbers. The device 350 may further comprise means for decoding configured to decode samples following entropy and subsequent difference decoding or only entropy decoding.

4a zeigt ein Ausführungsbeispiel einer Vorrichtung 400 zum Kodieren einer Sequenz von Abtastwerten, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist. Die Vorrichtung 400 umfasst eine Einrichtung 410 zum Sortieren der Abtastwerte nach ihrer Größe, um eine sortierte Sequenz von Abtastwerten zu erhalten, wobei jeder Abtastwert eine Sortierungsposition innerhalb der sortierten Sequenz aufweist. Die Vorrichtung 400 umfasst ferner eine Einrichtung 420 zum Kodieren der sortierten Abtastwerte und zum Kodieren einer Zahlenfolge mit einer Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte, wobei jedes Element innerhalb der Zahlenfolge einzigartig ist, und wobei die Einrichtung 420 zum Kodieren einem Element der Zahlenfolge eine Anzahl von Bits zuordnet, derart, dass die Anzahl von Bits, die einem ersten Element zuggeordnet wird, größer ist als die Anzahl von Bits, die einem zweiten Element zugeordnet wird, wenn vor der Kodierung des ersten Elements weniger Elemente bereits kodiert waren, als vor der Kodierung des zweiten Elements. 4a shows an embodiment of a device 400 for encoding a sequence of samples, each sample having an origin position within the sequence. The device 400 includes a device 410 for sorting the samples by their size to obtain a sorted sequence of samples, each sample having a sorting position within the sorted sequence. The device 400 also includes a device 420 for encoding the sorted samples and encoding a sequence of numbers having information about the relationship between the source and sort positions of the samples, each element unique within the sequence of numbers, and wherein the means 420 for coding assigns a number of bits to an element of the sequence of numbers, the number of bits allocated to a first element is greater than the number of bits allocated to a second element if fewer elements were already coded before the coding of the first element than before the coding of the second element.

Die Einrichtung 420 zum Kodieren kann dabei ausgebildet sein, um eine Zahlenfolge der Länge N zu kodieren und um eine Anzahl von X Elementen gleichzeitig zu kodieren, wobei der Anzahl von X Elementen G Bits zugeordnet werden gemäß, mit

Figure 00190001
wobei die unten geöffneten Klammern anzeigen, dass der Wert in den Klammern auf die nächstgrößere ganze Zahl aufgerundet wird.The device 420 The coding may be designed to encode a number sequence of length N and to code a number of X elements simultaneously, the number of X elements being assigned to G bits according to FIG
Figure 00190001
the brackets below show that the value in parentheses is rounded up to the next larger integer.

In einem anderen Ausführungsbeispiel kann die Einrichtung 420 zum Kodieren ausgebildet sein, um eine Zahlenfolge der Länge N zu kodieren, wobei X eine Anzahl bereits kodierter Elemente der Zahlenfolge ist, wobei der dem nächsten Element der Zahlenfolge G Bits zugeordnet werden gemäß, G = ⌈log2(N – X)⌉ mit 0 ≤ X < N. In another embodiment, the device 420 be designed to encode to encode a number sequence of length N, where X is a number of already encoded elements of the sequence of numbers, where the next element of the sequence of numbers G bits are assigned according to, G = ⌈log 2 (N - X) ⌉ with 0 ≤ X <N.

4b zeigt ein Ausführungsbeispiel einer Vorrichtung 450 zum Dekodieren einer Sequenz von Abtastwerten, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist. Die Vorrichtung 450 umfasst eine Einrichtung 460 zum Empfangen einer kodierten Zahlenfolge und einer Sequenz von Abtastwerten, wobei jeder Abtastwert eine Sortierungsposition aufweist. Die Vorrichtung 450 umfasst ferner eine Einrichtung 470 zum Dekodieren einer dekodierten Zahlenfolge mit einer Information über eine Beziehung zwischen den Ursprungs- und Sortierungspositionen basierend auf der kodierten Zahlenfolge, wobei jedes Element innerhalb der dekodierten Zahlenfolge einzigartig ist und die Einrichtung 470 zum Dekodieren einem Element der Zahlenfolge eine Anzahl von Bits zuordnet, derart, dass die Anzahl von Bits, die einem ersten Element zuggeordnet wird, größer ist als die Anzahl von Bits, die einem zweiten Element zugeordnet wird, wenn vor der Dekodierung des ersten Elements weniger Elemente bereits dekodiert waren, als vor der Kodierung des zweiten Elements. Die Vorrichtung 450 umfasst ferner eine Einrichtung 480 zum Umsortieren der Sequenz von Abtastwerten basierend auf der dekodierten Zahlenfolge, so dass jeder Abtastwert innerhalb der dekodierten Sequenz seine Ursprungsposition aufweist. 4b shows an embodiment of a device 450 for decoding a sequence of samples, each sample having an origin position within the sequence. The device 450 includes a device 460 for receiving a coded sequence of numbers and a sequence of samples, each sample having a sorting position. The device 450 also includes a device 470 for decoding a decoded number sequence having information about a relationship between the source and sort positions based on the encoded sequence of numbers, each element unique within the decoded sequence of numbers, and the device 470 for decoding assigns a number of bits to an element of the number sequence such that the number of bits allocated to a first element is greater than the number of bits allocated to a second element if less prior to the decoding of the first element Elements were already decoded, as before the coding of the second element. The device 450 also includes a device 480 for reordering the sequence of samples based on the decoded number sequence such that each sample within the decoded sequence has its original position.

In Ausführungsbeispielen kann die Einrichtung 470 zum Dekodieren ausgebildet sein, um eine Zahlenfolge der Länge N zu dekodieren und um eine Anzahl von X Elementen gleichzeitig zu dekodieren, wobei der Anzahl von X Elementen G Bits zugeordnet werden gemäß,

Figure 00200001
In embodiments, the device 470 for decoding to decode a number sequence of length N and to simultaneously decode a number of X elements, wherein the number of X elements are assigned to G bits according to,
Figure 00200001

Die Einrichtung 470 zum Dekodieren kann ferner ausgebildet sein, um eine Zahlenfolge der Länge N zu dekodieren, wobei X eine Anzahl bereits kodierter Elemente der Zahlenfolge ist, wobei der dem nächsten Element der Zahlenfolge G Bits zugeordnet werden gemäß, G = ⌈log2(N – X)⌉ mit 0 ≤ X < N. The device 470 for decoding may further be configured to decode a sequence of numbers of length N, where X is a number of already encoded elements of the sequence of numbers, which are assigned to the next element of the sequence of numbers G bits according to, G = ⌈log 2 (N - X) ⌉ with 0 ≤ X <N.

Die 5 zeigt auf der linken Seite Signalverläufe eines Audiosignals 505 (große Amplituden), einer Permutation 510 (mittlere Amplituden) und einer Inversionstafel 515 (kleine Amplituden). Auf der rechten Seite sind die Permutation 510 und die Inversionstafel 515 aus Gründen einer besseren Übersicht noch einmal in einer anderen Skalierung dargestellt.The 5 shows on the left side waveforms of an audio signal 505 (large amplitudes), a permutation 510 (mean amplitudes) and an inversion chart 515 (small amplitudes). On the right side are the permutation 510 and the inversion panel 515 for a better overview again shown in a different scale.

Aus den in der 5 dargestellten Verläufen, lässt sich eine Korrelation zwischen dem Audiosignal 505, der Permutation 510 und der Inversionstafel 515 erkennen. Deutlich ist die Korrelationsübertragung des Eingangssignals auf die Permutation bzw. Inversionstafel zu erkennen. Gemäß Ausführungsbeispielen kann neben einer Kodierung der sortierten Abtastwerte eine Permutationskodierung durch Erstellen von Inversionstafeln erfolgen, die anschließend entropiekodiert werden. Aus der 5 wird ersichtlich, dass aufgrund der Korrelationen auch eine Prädiktion der Permutation bzw. der Inversionstafeln möglich ist, wobei das jeweilige Restsignal im Falle einer verlustlosen Kodierung beispielsweise entropiekodiert werden kann.From the in the 5 shown gradients, can be a correlation between the audio signal 505 , the permutation 510 and the inversion panel 515 detect. The correlation transfer of the input signal to the permutation or inversion chart can be clearly recognized. According to embodiments, in addition to a coding of the sorted samples, a permutation coding can take place by creating inversion tables, which are subsequently entropy-coded. From the 5 It can be seen that due to the correlations also a prediction of the permutation or the inversion tables is possible, whereby the respective residual signal can be entropy coded, for example, in the case of a lossless coding.

Die Prädiktion ist möglich, da sich eine im Eingangssignal vorhandene Korrelation auf die entstehende Permutation bzw. Inversionstafel überträgt, vgl. 5. Als Prädiktionsfilter können dabei bekannte FIR (FIR = Finite Impulse Response) und IIR (IIR = Infinite Impulse Response) Strukturen zum Einsatz kommen. Die Koeffizienten eines solchen Filters werden dann so gewählt, daß beispielsweise basierend auf einem Restsignal am Eingang des Filters, an seinem Ausgang das ursprüngliche Ausgangssignal anliegt bzw. ausgegeben werden kann. Die entsprechenden Koeffizienten des Filters und das Restsignal können dann in Ausführungsbeispielen kostengünstiger, d. h. mit weniger Bits oder Übertragungsrate übertragen werden, als das ursprüngliche Signal selbst. In einem Empfänger, bzw. einem Dekoder wird dann das ursprüngliche Signal, basierend auf den übertragenen Koeffizienten und gegebenenfalls einem Restsignal prädiziert oder rekonstruiert. Die Anzahl der Koeffizienten bzw. die Ordnung des Prädiktionsfilters bestimmt dabei einerseits die zur Übertragung notwendigen Bits und andererseits die Genauigkeit, mit der das ursprüngliche Signal prädiziert oder rekonstruiert werden kann.The prediction is possible because a correlation present in the input signal is transferred to the resulting permutation or inversion table, cf. 5 , As prediction filters known FIR (FIR = Finite Impulse Response) and IIR (IIR = Infinite Impulse Response) structures can be used. The coefficients of such a filter are then selected so that, for example based on a residual signal at the input of the filter, at its output the original output signal is present or can be output. The corresponding coefficients of the filter and the residual signal can then be transmitted more cost-effectively, ie with fewer bits or transmission rate than the original signal itself. In a receiver, or a decoder then the original signal, based on the transmitted coefficients and optionally a residual signal predicted or reconstructed. The number of coefficients or the order of the prediction filter determines, on the one hand, the bits necessary for transmission and, on the other hand, the accuracy with which the original signal can be predicted or reconstructed.

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 6 zeigt ein Ausführungsbeispiel eines Kodierers 600. In dem Kodierer 600 kann eine Vorverarbeitung 605 der Eingangsdaten erfolgen (z. B. Zeit-/Frequenz-Transformation, Prädiktion, Stereoredundanzreduktion, Filterung zur Bandbe grenzung, usw.). Die vorverarbeiteten Daten werden dann sortiert 610, wobei sortierte Daten und eine Permutation entstehen. Die sortierten Daten können dann weiter verarbeitet oder kodiert werden 615, beispielsweise kann hier eine Differenzkodierung erfolgen. Die Daten können dann im Anschluss entropiekodiert werden 620 und einem Bitmultiplexer 625 zur Verfügung gestellt werden. Die Permutation kann ebenfalls zunächst verarbeitet oder kodiert werden 630, beispielsweise durch Bestimmen einer Inversionstafel mit evtl anschließender Prädiktion, woraufhin auch hier eine Entropiekodierung 635 erfolgen kann, bevor die entropiekodierte Permutation bzw. Inversionstafel dem Bitmultiplexer 625 zugeführt werde. Der Bitmultiplexer 625 multiplext dann die entropiekodierten Daten und die Permutation zu einem Bitstrom.The 6 shows an embodiment of an encoder 600 , In the encoder 600 can be a preprocessing 605 the input data (eg time / frequency transformation, prediction, stereo-redundancy reduction, band-limiting filtering, etc.). The preprocessed data is then sorted 610 , where sorted data and a permutation arise. The sorted data can then be further processed or coded 615 For example, here can be a difference coding. The data can then be entropy-coded afterwards 620 and a bit multiplexer 625 to provide. The permutation can also be processed or coded first 630 , For example, by determining an inversion table with possibly subsequent prediction, whereupon an entropy coding 635 can be done before the entropy-coded permutation or Inversionstafel the bit multiplexer 625 fed. The bit multiplexer 625 then multiplexes the entropy-coded data and the permutation into a bitstream.

Die 7 zeigt ein Ausführungsbeispiel eines Dekodierers 700, der beispielsweise einen Bitstrom gemäß des Kodierers 600 erhält. Der Bitstrom wird dann zunächst in einem Bitstromdemultiplexer 705 gedemultiplext, woraufhin kodierte Daten einer Entropiedekodierung 710 zugeführt werden. Die entropiedekodierten Daten können dann in einer Dekodierung der sortierten Daten 715, z. B. in einer Differenzdekodierung, weiter dekodiert werden. Die dekodierten sortierten Daten werden dann einer Rücksortierung 720 zugeführt. Aus dem Bitstrommultiplexer 705 werden ferner die kodierten Permutationsdaten einer Entropiedekodierung 725 zugeführt, der eine weitere Dekodierung der Permutation 730 nachgeschaltet sein kann. Die dekodierte Permutation wird dann ebenfalls der Rücksortierung 720 zugeführt. Die Rücksortierung 720 kann dann basierend auf den dekodierten Permutationsdaten und den dekodierten sortierten Daten die Ausgangsdaten ausgeben.The 7 shows an embodiment of a decoder 700 for example, a bit stream according to the encoder 600 receives. The bitstream is then first in a bitstream demultiplexer 705 demultiplexed, whereupon encoded data is entropy-decoded 710 be supplied. The entropy-coded data can then be used in a decoding of the sorted data 715 , z. B. in a differential decoding continue to be decoded. The decoded sorted data is then resorted 720 fed. From the bit stream multiplexer 705 Furthermore, the coded permutation data of an Entropiedekodierung 725 fed, which further decoding the permutation 730 can be downstream. The decoded permutation will then also be resorted 720 fed. The resort 720 may then output the output data based on the decoded permutation data and the decoded sorted data.

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. 8 zeigt ein weiteres Ausführungsbeispiel eines Kodierers 800. 8 zeigt das Blockschaltbild eines Kodierers 800 bzw. eine Kodierverfahrens für die Modi 1 und 2. Das Eingangssignal wird mittels einer Zeit-Frequenztransformation 805, z. B. einer MDCT (MDCT = Modified Discrete Cosinus Transform) in den Frequenzbereich transformiert.All modes in common could be the waiver of the processing stages of quantization, resampling and low-pass filtering. It could thus be transmitted in all 3 levels, the full bandwidth of the input signal. 8th shows a further embodiment of an encoder 800 , 8th shows the block diagram of an encoder 800 or a coding method for modes 1 and 2. The input signal is by means of a time-frequency transformation 805 , z. B. an MDCT (MDCT = Modified Discrete Cosine Transform) transformed into the frequency domain.

Danach werden die Spektrallinien nach der Größe ihrer Amplituden sortiert 810 (Sorting). Da das entstehende sortierte Spektrum eine relativ einfache Kurvenform besitzt, kann es in Ausführungsbeispielen leicht durch eine Funktionsvorschrift mittels eine Kurvenanpassung approximiert werden 815 (Curve Fitting),. Um die durch die Umsortierung entstandene Permutation der Spektrallinienindizes auf Dekoderseite wieder in die ursprüngliche Reihenfolge zu bringen und somit das ursprüngliche Spektrum wiederherstellen zu können, kann nun eine Rücksortierungsvorschrift 820 gefunden und in den Bitstrom geschrieben werden, die ein möglichst kleines Datenaufkommen beinhaltet. Dieses kann für den Modus 1 beispielsweise durch eine Lauflängenkodierung 820 und für den Modus 2 durch einen speziellen Permutationskodierer 820 bewerkstelligt werden, der mit Hilfe einer Inversionstafel arbeiten kann.Thereafter, the spectral lines are sorted according to the magnitude of their amplitudes 810 (Sorting). Since the resulting sorted spectrum has a relatively simple curve shape, in embodiments it can easily be approximated by a function rule by means of a curve fit 815 (Curve Fitting) ,. In order to be able to bring the permutation of the spectral line indices on the decoder side, which had resulted from the resorting, back into the original order, and thus to be able to restore the original spectrum, a re-sorting rule can now be used 820 be found and written to the bitstream, which includes the smallest possible amount of data. This can be for mode 1, for example, by run-length coding 820 and for mode 2 through a special permutation encoder 820 be accomplished, which can work with the help of an inversion board.

Die Daten der Lauflängenkodierung bzw. des Permutationskodierers 820 werden dann zusätzlich durch ein Entropiekodierverfahren oder Entropiekodierer 830 kodiert und schließlich inklusive einiger Zusatzinformationen, z. B. den Koeffizienten der o. g. Funktionsvorschrift in den Bitstrom geschrieben, angedeutet durch den Bitstromformatierer 835. Möglichkeiten das entstehende Datenaufkommen zu kontrollieren (variable Bitraten) bestehen z. B. in der Variation der Qualität der Kurvenanpassung, durch wahlweise Hinzunahme einer psychoakustischen Betrachtung in einem psychoakustischen Modell 840 des Eingangssignals sowie durch verschiedene Kodierstrategien des Permutationskodierers 820 bzw. der Lauflängenkodierung 820. Dazu zeigt die 8 ferner einen Block 825 der die im Kodierprozess entstandene Bitrate überwacht und gegebenenfalls eine Rückmeldung an das psychoakustische Modell liefert, wenn die Datenrate noch zu hoch ist.The data of the run length coding or of the permutation coder 820 are then additionally by an entropy coding or entropy coder 830 coded and finally including some additional information, eg. B. the coefficient of the above-mentioned functional rule written in the bit stream, indicated by the bitstream formatter 835 , Possibilities to control the arising data volume (variable bitrates) exist eg. In the variation of the quality of the curve fitting, by the optional addition of a psychoacoustic observation in a psychoacoustic model 840 of the input signal as well as by different coding strategies of the permutation coder 820 or the run-length coding 820 , This shows the 8th also a block 825 which monitors the bitrate generated in the coding process and, if necessary, provides feedback to the psychoacoustic model if the data rate is still too high.

Das Blockschaltbild der 8 zeigt das ein psychoakustisches Modell 840 zur Bitratensteuerung, dieses kann beispielsweise nur für den Modus 1 aktiviert sein und im Modus 2 kann auf diese Steuerungsmöglichkeit zugunsten der Kodierqualität verzichtet werden. Im Betriebsmodus 1 wird eine höhere Kompressionsrate erreicht als in den beiden anderen Betriebsmodi. Hierzu werden mit Hilfe einer psychoakustischen Betrachtung 840 des Eingangssignals gezielt Linien des Frequenzspektrums zu Null gesetzt oder alternativ Elemente der Indexpermutation von der Rücksortierung ausgeschlossen, um bei der Übertragung der Rücksortierungsvorschrift 820 Daten einsparen zu können. Im Gegensatz dazu wird im Betriebsmodus 2 das Frequenzspektrum vollständig wiederhergestellt, es treten hier nur geringe Fehler durch kleine Ungenauigkeiten der Kurvenapproximation 815 auf. Weiterhin kann der Betriebsmodus 2 mit der Hinzunahme eines Restsignals zu einem verlustlosen Modus erweitert werden. Sowohl in Modus 1 als auch Modus 2 kann das gesamte Frequenzspektrum übertragen werden, d. h. die Datenreduktion im Modus 1 kann nur durch eine verkleinerte Rücksortiervorschrift 820 erzielt werden.The block diagram of 8th this shows a psychoacoustic model 840 for bitrate control, this can for example be activated only for the mode 1 and in mode 2 can be dispensed with this control option in favor of coding quality. In operation mode 1, a higher compression rate is achieved than in the other two operating modes. This is done with the help of a psychoacoustic analysis 840 Of the input signal, targeted lines of the frequency spectrum are set to zero or, alternatively, elements of the index permutation excluded from resorting to the transmission of the resort rule 820 To save data. In contrast, in operating mode 2, the frequency spectrum is completely restored, there are only small errors due to small inaccuracies of the curve approximation 815 on. Furthermore, the operating mode 2 can be extended with the addition of a residual signal to a lossless mode. Both in mode 1 and mode 2, the entire frequency spectrum can be transmitted, ie the data reduction in mode 1 can only by a reduced Rücksortiervorschrift 820 be achieved.

Die 9 zeigt ein weiteres Ausführungsbeispiel eines Dekodierers 900 bzw. eines Dekodierprozesses der Modi 1 und 2, der im Wesentlichen die Schritte der Kodierung bzw. des Kodierers 800 rückwärts durchläuft. Der Bitstrom wird zunächst durch einen Bitstromdemultiplexer 905 entpackt und in einem Entropiedekodierer 910 dekodiert. Aus den dekodierten Funktionskoeffizienten einer Funktionsvorschrift kann dann durch einen „Inverse Curve Fitting"-Block, d. h. eine inverse Kurvenanpassung 915 die Funktion bzw. Spektralfunktion wieder hergestellt werden und einem Rücksortierer 920 zugeführt werden. Der Rücksortierer 920 erhält ferner eine Permutation von einem Permutationdekodierer 925, der auf der Basis der entropiedekodierten Permutation die Permutation dekodiert. Der Rücksortierer 920 kann dann mit Hilfe der Permutation und der mit Hilfe der übertragenen Funktionskoeffizienten wieder aufgebauten Spektralfunktion ihre Spektrallinien in die ursprüngliche Reihenfolge bringen. Schließlich wird das rekonstruierte Spektrum durch eine Rücktransformation 930, z. B. inverse MDCT, in den Zeitbereich zurücktransformiert.The 9 shows a further embodiment of a decoder 900 or a decoding process of the modes 1 and 2 essentially the steps of coding or encoder 800 goes backwards. The bitstream is first passed through a bitstream demultiplexer 905 unzipped and in an entropy decoder 910 decoded. From the decoded function coefficients of a function specification can then by an "Inverse Curve Fitting" -Block, ie an inverse curve fitting 915 the function or spectral function are restored and a rescaler 920 be supplied. The recycler 920 also obtains a permutation from a permutation decoder 925 which decodes the permutation based on the entropy-coded permutation. The recycler 920 can then use the permutation and the spectral function rebuilt with the aid of the transferred function coefficients to bring their spectral lines into their original order. Finally, the reconstructed spectrum is transformed by an inverse transformation 930 , z. Inverse MDCT, transformed back into the time domain.

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 10a zeigt ein Beispiel für ein Frequenzspektrum eines Audiosignals mit 1024 Frequenzlinien und dessen approximiertes Spektrum, wobei Original und Approximation nahezu identisch sind. 10b zeigt das dazugehörende sortierte Spektrum und dessen Approximation. Es ist klar ersichtlich, dass sich das sortierte Spektrum deutlich leichter und genauer durch eine Funktionsvorschrift approximieren lässt als das Originalspektrum. Um das Spektrum aus 10b zu approximieren, kann es in Ausführungsbeispielen in z. B. 5 Bereiche (Partitionen oder engl. Partitions) eingeteilt werden, die in der 10b dargestellt sind, wobei der Bereich 3 z. B. durch eine Gerade und die Bereiche 2 und 4 mit entsprechend geeigneten Funktionen (z. B. Polynome, Exponentialfunktionen, usw.) angenähert werden. Die Anzahl der Amplitudenwerte in den Bereichen 1 und 5 kann in Ausführungsbeispielen sehr klein gewählt werden, z. B. 3, da diese aber enorm wichtig für die Klangqualität sind, sollten sie entweder sehr genau approximiert oder direkt übertragen werden.The 10a shows an example of a frequency spectrum of an audio signal with 1024 frequency lines and its approximated spectrum, where original and approximation are almost identical. 10b shows the associated sorted spectrum and its approximation. It is clear that the sorted spectrum can be more easily and accurately approximated by a functional specification than the original spectrum. To the spectrum 10b to approximate, it may be in embodiments in z. B. 5 areas (partitions or English partitions) are divided, which in the 10b are shown, wherein the area 3 z. B. by a straight line and the areas 2 and 4 with correspondingly suitable functions (eg, polynomials, exponential functions, etc.) are approximated. The number of amplitude values in the areas 1 and 5 can be chosen very small in embodiments, z. B. 3, but since these are enormously important for the sound quality, they should either be very accurately approximated or transmitted directly.

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. 10a zeigt zusätzlich noch das approximierte und wieder zurücksortierte Spektrum, wobei gut zu erkennen ist, dass das rekonstruierte Spektrum sehr nahe an das Originalspektrum zu liegen kommt.Thus, according to exemplary embodiments, only the function types and their coefficients or, for the ranges 1 and 5, if necessary, the amplitude values can be transmitted for the entire spectrum. The selected division into 5 areas is only an example, it is of course always possible to choose other divisions to z. B. to improve the quality of the approximation. 10a shows in addition the approximated and sorted back spectrum, where it is easy to see that the reconstructed spectrum comes very close to the original spectrum.

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: xi' 5 9 1 8 2 6 4 7 3 (gleichverteilt) xi'–1 2 3 6 4 0 2 2 1 0 (nicht gleichverteilt) Inversion table formation of x i : x i ' 5 9 1 8th 2 6 4 7 3 (Equally distributed) x i ' -1 2 3 6 4 0 2 2 1 0 (not equally distributed)

Die Umkehrung der Inversiontafel ergibt wieder die ursprüngliche Zahlenfolge: x9'–1 = 0 9 x8'–1 = 1 9 8 x7'–1 = 2 9 8 7 x6'–1 = 2 9 8 6 7 x5'–1 = 0 5 9 8 6 7 x4'–1 = 4 5 9 8 6 4 7 x3'–1 = 6 5 9 8 6 4 7 3 x2'–1 = 3 5 9 8 2 6 4 7 3 x1'–1 = 2 5 9 1 8 2 6 4 7 3 = xi' The inversion of the inversion table returns the original sequence of numbers: x 9 ' -1 = 0 9 x 8 ' -1 = 1 9 8th x 7 ' -1 = 2 9 8th 7 x 6 ' -1 = 2 9 8th 6 7 x 5 ' -1 = 0 5 9 8th 6 7 x 4 ' -1 = 4 5 9 8th 6 4 7 x 3 ' -1 = 6 5 9 8th 6 4 7 3 x 2 ' -1 = 3 5 9 8th 2 6 4 7 3 x 1 ' -1 = 2 5 9 1 8th 2 6 4 7 3 = x i '

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. 11 illustriert das Schema einer sogenannten „Sorted-Lossless"-Kodierung. Beispielsweise wird ein Audiosignal durch Sortierung auf ein Signal mit stärkerer Korrelation abgebildet. Anschließend werden die sortierten Zeitwerte und eine Rücksortiervorschrift kodiert.Exemplary embodiments make use of a sorting model. In a coding method working according to the sorting model, a sorting of the data to be coded takes place. As a result, on the one hand, an artificial correlation of the data is brought about, which makes the data easier to encode. On the other hand, the sorting results in a permutation of the original positions of the time values. In order for a decoder to be able to reconstruct an original information or audio signal, it is thus necessary to encode and transmit a reordering rule (permutation) in addition to the coded time values. As a result, the original problem of merely encoding the time values is now broken down into two subproblems, that is to say a coding of the sorted time values and a coding of the sorting rule. 11 illustrates the scheme of a so-called "sorted-lossless" coding, for example, an audio signal is mapped to a signal with stronger correlation, and then the sorted time values and a sorting rule are coded.

Aus dem anhand der 11 beschriebenen Prinzip leitet sich auch der Name SOLO (SOLO = Sorted Lossless) für das neuartige verlustlose Kodierverfahren oder Audiokodierverfahren ab. Jedes der beiden Teilprobleme hat ganz spezielle Eigenschaften. Für die Kodierung der sortierten Zeitwerte bietet sich in Ausführungsbeispielen z. B. eine Differenzkodierung an. Die Kodierung der Permutation kann z. B. in der äquivalenten Inversionstafeldarstellung erfolgen. Im folgenden wird detailliert auf die beiden Teilprobleme eingegangen. Zusätzlich zu dem Sorting Model können in SOLO aber auch traditionelle Dekorrelationsverfahren, beispielsweise die des Predictive Modeling verwendet werden.From the basis of the 11 The principle described is also derived from the name SOLO (SOLO = Sorted Lossless) for the novel lossless coding method or audio coding method. Each of the two subproblems has very special properties. For the coding of the sorted time values offers in embodiments z. B. a difference coding. The coding of the permutation can z. In the equivalent inversion panel display. The following section deals in detail with the two subproblems. In addition to the sorting model, traditional decorrelation methods, such as predictive modeling, can be used in SOLO.

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.
In the case of the Sorting Model, an additional processing step, the processing of the permutation, is added compared to conventional coding methods. Thus, in embodiments, for example, four basic processing steps result:
  • 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:

Figure 00310001
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:
Figure 00310001

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:

Figure 00310002
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:
Figure 00310002

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.

12 zeigt einen beispielhaften Verlauf eines differenzkodierten sortierten Signals und dessen Restsignal, d. h. 12 shows an exemplary course of a difference-coded sorted signal and its residual signal, ie

12 zeigt die Auswirkung einer Differenzkodierung angewandt auf sortierte Zeitwerte. Deutlich ist der übereinstimmende Wert von sortiertem und dekorreliertem Zeitsignal bei Index 1 (Warmup oder Aufwärmehase) zu erkennen. 12 shows the effect of difference coding applied to sorted time values. The matching value of sorted and decorrelated time signal at index 1 (warm-up or warm-up phase) can be clearly recognized.

Weiterhin ist der wesentlich kleinere Dynamikumfang des Restsignals der Differenzkodierung gegenüber den sortierten Zeitwerten auffallend. Detailierte Angaben zu 12 sind der nachfolgenden Tabelle zu entnehmen. Die Differenzkodierung stellt also ein einfaches und effizientes Verfahren dar, um sortierte Zeitwerte zu kodieren. max. Wert (ohne Warmup) min. Wert Warmup Sortierte Zeitwerte 32425 –32768 32767 Restsignal δ 2630 0 32767 Furthermore, the much smaller dynamic range of the residual signal of the difference coding compared to the sorted time values is striking. Detailed information to 12 are to be taken from the following table. The difference coding thus represents a simple and efficient method for coding sorted time values. Max. Value (without warmup) minute value Warmup Sorted time values 32425 -32768 32767 Residual signal δ 2630 0 32767

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 12 und 13 zeigen zwei repräsentative Kurvenformen sortierter Zeitwerte. Beachtenswert ist die ungleichmäßige Kurvenform in 13. Solche Kurvenverläufe, welche ca. in 40% (Bezogen auf eine Auswahl von verschiedenen Audiosignalen) der Fälle auftreten, lassen sich meist nicht besonders gut durch ein Curve Fitting beschreiben.Curve fitting (CF = Curve Fitting) is a technique that attempts in exemplary embodiments to adapt a given mathematical model function as best as possible to data points, in this case the sorted time values. The effectiveness of curve fitting is essentially determined by the shape of the curves to be described. What is certain is that, depending on the type of sorting, it is a monotonously decreasing or monotonically increasing waveform. The 12 and 13 show two representative waveforms of sorted time values. Noteworthy is the uneven waveform in 13 , Such curves, which occur in about 40% (related to a selection of different audio signals) of the cases, can usually not be described very well by a Curve Fitting.

Um Kurvenverläufe wie in den 12 und 13 gezeigt zu approximieren, wird die folgende Funktion gewählt. Diese Funktion erwies sich in Experimenten als gut dafür geeignet die hier vorliegenden Kurvenformen zu beschreiben.

Figure 00330001
To curves as in the 12 and 13 shown to approximate, the following function is selected. This function proved to be well suited in experiments to describe the waveforms available here.
Figure 00330001

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 12, gut durch ein Polynom ersten Grades (Gerade) beschrieben werden könnten und nur zwei reelle Koeffizienten a, b benötigt würden. Deshalb soll alternativ eine zweite Funktion zur Anwendung kommen: fcf2(x) = αx + b. This algorithm is a method for optimizing nonlinear functions of multiple parameters. Similar to the Regula-falsi method with step size control, the tendency of the values towards the optimum is approximated. The Nelder-Mead Simplex algorithm converges roughly linearly and is relatively simple and robust. The function f cf1 has the advantage that it can adapt very flexibly to a whole series of curves. The disadvantage, however, is that relatively much page information (four coefficients) is needed. It is also noticeable that parts of the sorted curves, z. B. the middle section of 12 , could be well described by a polynomial of first degree (straight line) and only two real coefficients a, b would be needed. Therefore, a second function should alternatively be used: f cf2 (x) = αx + b.

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 1024 Zeitwerten eine Unterteilung in 4 Partitionen zu je 256 Zeitwerten vorgenommen. Um pro Partition entscheiden zu können ob sich fcf1 oder fcf2 besser für eine Kurvenanpassung eignet, benötigt man ein adäquates Entscheidungskriterium. Das Entscheidungskriterium sollte zum einen einfach zu ermitteln sein, und zum anderen aussagekräfig sein. Um dies zu gewährleisten wird zunächst das Restsignal der jeweiligen Funktion gebildet und eine Abschätzung des Bitbedarfs vorgenommen. Da Funktion fcf1 doppelt so viele Koeffizienten wie fcf2 benötigt, werden zusätzlich 32 Bit für fcf1 veranschlagt.A curve fit over the total number of sorted time values of a block is certainly too inaccurate. Therefore, it would be useful to divide the block into several smaller partitions. But if you decompose the block into too many partitions, which are described by the functions f cf1 and f cf2 , you need a lot of function coefficients . Therefore, in one embodiment, for a fixed total block length of 1024 Time values subdivide into 4 partitions each 256 Time values made. In order to be able to decide per partition whether f cf1 or f cf2 is better suited for curve fitting, an adequate decision criterion is required. The decision criterion should be easy to identify and meaningful. In order to ensure this, the residual signal of the respective function is initially formed and an estimate of the bit requirement is made. Since function f cf1 requires twice as many coefficients as f cf2 , an additional 32 bits are estimated for f cf1 .

In 14 ist die Wirkungsweise von Curve-Fitting dargestellt. In diesem Frame wird die erste und vierte Partition durch fcf2 und die zweite und dritte Partition durch fcf1 beschrieben.In 14 the operation of Curve-Fitting is shown. In this frame, the first and fourth partitions are described by fcf2 and the second and third partitions are written by fcf1.

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 15 dargestellt.Finally, a direct comparison between the difference coding and a decorrelation by curve fitting is made. For this, the respective costs are specified in bytes per frame. In order to ensure a direct comparison of both coding methods, a forward adaptive Rice coding with only one parameter is used in both cases. In all blocks, the difference coding performs better than the curve fitting or curve fitting specified here, a comparison is in 15 shown.

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. Nr. Dateiname Abtastrate Bit Kanäle Anmerkung Quelle Stil 1 adia m.wav 44100 Hz 16 1 k. A. Pop 2 White m.wav 44100 Hz 16 1 OdBFS s. e. weißes Rauschen 3 es01 m.wav 44100 Hz 16 1 Suzanne Vega k. A. Pop 4 es02 m.wav 44100 Hz 16 1 geschnitten SQAM German Male 5 es03 m.wav 44100 Hz 16 1 geschnitten SQAM English Female 6 si01 m.wav 44100 Hz 16 1 geschnitten SQAM Harpsichord 7 si02 m.wav 44100 Hz 16 1 geschnitten SQAM Castagnets 8 si03 m.wav 44100 Hz 16 1 k. A. Pitch Pipe 9 sm01 m.wav 44100 Hz 16 1 k. A. Bagpipe 10 sm02 m.wav 44100 Hz 16 1 k. A. Glockenspiel 11 sm03 m.wav 44100 Hz 16 1 k. A. Dulzimer 12 sc01 m.wav 44100 Hz 16 1 geschnitten SQAM Trompetenkonzert 13 sc02 m.wav 44100 Hz 16 1 Richard Wagner k. A. Meistersinger 14 sc03 m.wav 44100 Hz 16 1 k. A. Pop 15 sine1k Hz OdB.wav 44100 Hz 16 1 OdBFS s. e. 1k Hz Sinus 16 adia LegR.wav 44100 Hz 16 2 L = R s. e. Pop 17 adia.wav 44100 Hz 16 2 k. A. Pop 18 es01.wav 44100 Hz 16 2 Suzanne Vega k. A. Pop 19 es02.wav 44100 Hz 16 2 geschnitten SQAM German Male 20 es03.wav 44100 Hz 16 2 geschnitten SQAM English Female 21 si01.wav 44100 Hz 16 2 geschnitten SQAM Harpsichord 22 si02.wav 44100 Hz 16 2 geschnitten SQAM Castagnets 23 si03.wav 44100 Hz 16 2 k. A. Pitch Pipe 24 sm01.wav 44100 Hz 16 2 k. A. Bagpipe 25 sm02.wav 44100 Hz 16 2 geschnitten SQAM Glockenspiel 26 sm03.wav 44100 Hz 16 2 k. A. Dulzimer 27 sc01.wav 44100 Hz 16 2 geschnitten SQAM Trompetenkonzert 28 sc02.wav 44100 Hz 16 2 Richard Wagner k. A. Meistersinger 29 sc03.wav 44100 Hz 16 2 k. A. Pop In the following, details of embodiments of the present invention will be explained in more detail. The following table lists the audio material used in the following, which is referred to in corresponding places. No. filename sampling rate bit channels annotation source style 1 adia m.wav 44100 Hz 16 1 k. A. pop 2 White m.wav 44100 Hz 16 1 OdBFS se White noise 3 es01 m.wav 44100 Hz 16 1 Suzanne Vega k. A. pop 4 es02 m.wav 44100 Hz 16 1 sliced SQAM German Male 5 es03 m.wav 44100 Hz 16 1 sliced SQAM English Female 6 si01 m.wav 44100 Hz 16 1 sliced SQAM Harpsichord 7 si02 m.wav 44100 Hz 16 1 sliced SQAM Castagnets 8th si03 m.wav 44100 Hz 16 1 k. A. Pitch pipe 9 sm01 m.wav 44100 Hz 16 1 k. A. Bagpipe 10 sm02 m.wav 44100 Hz 16 1 k. A. chimes 11 sm03 m.wav 44100 Hz 16 1 k. A. Dulzimer 12 sc01 m.wav 44100 Hz 16 1 sliced SQAM Trumpet Concerto 13 sc02 m.wav 44100 Hz 16 1 Richard Wagner k. A. Meistersinger 14 sc03 m.wav 44100 Hz 16 1 k. A. pop 15 sine1k Hz OdB.wav 44100 Hz 16 1 OdBFS se 1k Hz sine wave 16 adia LegR.wav 44100 Hz 16 2 L = R se pop 17 adia.wav 44100 Hz 16 2 k. A. pop 18 es01.wav 44100 Hz 16 2 Suzanne Vega k. A. pop 19 es02.wav 44100 Hz 16 2 sliced SQAM German Male 20 es03.wav 44100 Hz 16 2 sliced SQAM English Female 21 si01.wav 44100 Hz 16 2 sliced SQAM Harpsichord 22 si02.wav 44100 Hz 16 2 sliced SQAM Castagnets 23 si03.wav 44100 Hz 16 2 k. A. Pitch pipe 24 sm01.wav 44100 Hz 16 2 k. A. Bagpipe 25 sm02.wav 44100 Hz 16 2 sliced SQAM chimes 26 sm03.wav 44100 Hz 16 2 k. A. Dulzimer 27 sc01.wav 44100 Hz 16 2 sliced SQAM Trumpet Concerto 28 sc02.wav 44100 Hz 16 2 Richard Wagner k. A. Meistersinger 29 sc03.wav 44100 Hz 16 2 k. A. pop

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. Stuck Nr. Dateigröße (Bytes) GZIP Dateigröße. F SHORTE Dateigröße. N F 13 2246022 1962100 1.145 1102557 2.037 14 2037842 1724447 1.182 1304845 1.562 17 1912876 1753719 1.091 1117413 1.712 BZIP2 also uses a Huffman encoding. These programs can be used on any data such. As text, program code, audio signals, etc. apply. However, due to their mode of operation, these methods achieve much better compression in text than in audio. A direct comparison of GZIP and the SHORTEN compression method specializing in audio signals confirms this, see the following table. The default settings were used for the test. Stucco no. File size (bytes) GZIP file size. F SHORT file size. N F 13 2246022 1962100 1145 1102557 2037 14 2037842 1724447 1182 1304845 1562 17 1912876 1753719 1091 1117413 1712

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 16 gezeigte Blockschaltbild gemeinsam.In order to obtain a good compression factor for audio signals, the special properties of audio signals during compression must be taken into account. Most lossless audio encoding methods have that in 16 shown block diagram together.

16 zeigt beispielhaft Verarbeitungsschritte der meisten verlustlosen Audiokompressionsalgorithmen. Die Darstellung in der 16 zeigt ein Blockdiagramm, wobei das Audiosignal zunächst einer Blockbildung oder einem engl. 16 Fig. 10 exemplifies processing steps of most lossless audio compression algorithms. The presentation in the 16 shows a block diagram, wherein the audio signal is first a block formation or a engl.

„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 12 gezeigte grundlegende Struktur. A ^(z) und B ^(z) stehen dabei für z-Transformationspolynome mit quantisierten Koeffizienten α ^k und b ^k. Q steht für Quantisierung zur selben Wortlänge wie x(n). Die z-Transformation ist das zeitdiskrete Analogon zur Laplace-Transformation zeitkontinuierlicher Signale.Linear Predictive Coding (LPC) is widely used in digital speech signal processing. Their importance lies not only in the high efficiency, but also in the relatively low computational complexity. The basic idea of the prediction is to predict a value x (n) from previous values x (n - 1), x (n - 2), ..., x (n - p). If p preceding values are used for prediction, this is called a pth order predictor. The prediction coding methods used in lossless audio coding usually have the in 12 shown basic structure. A ^ (z) and B ^ (z) stand for z-transformation polynomials with quantized coefficients α ^ k and b ^ k . Q stands for quantization to the same word length as x (n). The z-transformation is the discrete-time analogue to the Laplace transform of continuous-time signals.

17 zeigt ein Ausführungsbeispiel einer Struktur einer Prädiktionskodierung. Prinzipiell zeigt 17 eine IIR-Filter-Struktur mit einem Mitkopplungszweig mit Filterkoeffizienten A ^(z), einem Gegenkopplungszweig mit Filterkoeffizienten B ^(z), und einer Quantisierung Q. 17 shows an embodiment of a structure of a prediction coding. In principle shows 17 an IIR filter structure with a feedforward branch with filter coefficients A ^ (z), a negative feedback branch with filter coefficients B ^ (z), and a quantization Q.

Hinter 17 verbirgt sich die Gleichung

Figure 00380001
Behind 17 hides the equation
Figure 00380001

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 18 vor.If the prediction coding method works optimally, much of the redundancy is removed from x (n) and represented by the coefficients of A ^ (z) and B ^ (z). The resulting residual signal e (n) is then uncorrelated and significantly smaller in amplitude than the original signal x (n). This achieves a coding gain. If B ^ (z) ≠ 0, ie the feedback term is 0, we speak of an FIR predictor. Otherwise, B ^ (z) ≠ 0, one speaks of an IIR predictor. IIR predictors will not be considered here. IIR predictors are much more complex, but in some cases they can achieve a better coding gain than FIR pedagogues. In order to be able to reconstruct the original signal from the residual signal e (n) and the predictor coefficients, we proceed as in 18 in front.

18 zeigt ein Ausführungsbeispiel einer Struktur einer Rekonstruktion bei einer Prädiktionskodierung. 18 zeigt eine Ausführung als IIR-Filter-Struktur mit einem Mitkopplungszweig mit Filterkoeffizienten B ^(z), einem Gegenkopplungszweig mit Filterkoeffizienten A ^(z), und einer Quantisierung Q. 18 shows an embodiment of a structure of a reconstruction in a prediction coding. 18 shows an embodiment as an IIR filter structure with a Mitkopplungszweig with filter coefficients B ^ (z), a negative feedback branch with filter coefficients A ^ (z), and a quantization Q.

Hinter 18 verbirgt sich die Gleichung

Figure 00380002
Behind 18 hides the equation
Figure 00380002

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:

Figure 00390001
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:
Figure 00390001

Wobei rxx(k) = E(s(n)s(n + k)) gilt. Alternativ kann man dies in Matrixschreibweise durch r = Rαdarstellen. Weil R invertierbar ist, erhält man die Koeffizienten durch α = R–1r Where rxx (k) = E (s (n) s (n + k)). Alternatively, this can be done in matrix notation r = Rα represent. Because R is invertible, the coefficients are obtained α = R -1 r

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 19) des Prädiktors bezeichnet. Weil das Warmup üblicherweise andere Größenverhältnisse und statistische Eigenschaften als das Restsignal hat, wird es meist nicht entropiekodiert.For a prediction one makes a division of the time values into blocks of size N. Assuming one would like to use a second-order predictor to predict the time values from the current block n, then the problem arises as to how to deal with the first two values from block n. One can either use the last two values from the previous block n-1 to predicate them or not predicate the first two values of block n and leave them in their original form. If values from a preceding block n-1 are used, block n is only decodable if block n-1 was successfully decoded. However, this would lead to block dependencies and treat the principle of talking each block (frame) as a stand-alone decodable unit. If the first p values are left in their original form, they will be called engl. Warm-up or warm-up values (see 19 ) of the predictor. Because the warmup usually has different size ratios and statistical properties than the residual signal, it is usually not entropy-coded.

19 zeigt ein Ausführungsbeispiel von Warmup-Werten eines Prädiktionsfilters. Im oberen Bereich der 19 sind unveränderte Eingangssignale dargestellt, im unteren Bereich sind Aufwärmwerte und ein Restsignal dargestellt. 19 shows an embodiment of warmup values of a prediction filter. In the upper area of the 19 unchanged input signals are shown, in the lower area are shown warm-up values and a residual signal.

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. x ^0(n) = 0 x ^1(n) = x(n – 1) x ^2(n) = 2x(n – 1) – x(n – 2) x ^3(n) = 3x(n – 1) – 3x(n – 2) + x(n – 3) By way of example, AudioPaK, a representative of predictive modeling, will be considered a little closer. First, AudioPaK splits the audio signal into independent decodable sections. Typically, multiples of 192 samples (192, 576, 1152, 2304, 4608) are used. For decorrelation, a FIR predictor with fixed integer coefficients is used (fixed predictor). This FIR predictor was first used in SHORTEN. Internally, the Fixed Predictor has four different predictive models. x ^ 0 (n) = 0 x ^ 1 (n) = x (n - 1) x ^ 2 (n) = 2x (n-1) -x (n-2) x ^ 3 (n) = 3x (n-1) - 3x (n-2) + x (n-3)

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 20 gezeigt veranschaulichen. 20 zeigt ein Ausführungsbeispiel eines Vorhersagemodells, in einem polynomialen Prädiktor.In principle, the equation is polynomial approximation or prediction methods. By a polynomial of degree p-1, the preceding p samples x (n-1), x (n-2), ..., x (n-p) can be described. If one now evaluates this polynomial at the position n, one obtains the predicted value x ^ (n). Graphically, you can feel like this 20 to illustrate. 20 shows an embodiment of a predictive model, in a polynomial predictor.

Die durch die Prädiktion entstehenden Restsignale ep(n) = x(n) – x ^(n) lassen sich wie in folgender Gleichung relativ einfach rekursiv berechnen. e0(n) = x(n) e1(n) = e0(n) – e0(n – 1) e2(n) = e1(n) – e1(n – 1) e3(n) = e2(n) – e2(n – 1) The residual signals e p (n) = x (n) -x ^ (n) resulting from the prediction can be calculated relatively simply recursively, as in the following equation. e 0 (n) = x (n) e 1 (n) = e 0 (n) - e 0 (n - 1) e 2 (n) = e 1 (n) - e 1 (n - 1) e 3 (n) = e 2 (n) - e 2 (n - 1)

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.

Figure 00410001
Figure 00410001

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 k = |log2(E(|ei(n)|)) The Rice parameter k is determined per block (frame) and assumes values 0, 1, ..., (b - 1). Where b represents the number of bits per audio sample. k is determined by the following equation k = | log 2 (E (| e i (N) |))

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 21 dargestellt.The second way to implement a lossless audio coding method is to set up a lossy audio coding method. A representative of the Lossy Coding Model is LTAC, where instead of LTAC (Lossless Transform Audio Compression) the abbreviation LTC (Lossless Transform Coding) ver is used. The principal mode of operation of the encoder is in 21 shown.

21 zeigt ein Blockdiagramm einer Struktur eines LTAC (LTAC = Lossless Transform Coding) Encoders. Der Encoder umfasst einen „DCT"-Block um ein Eingangssignal x(n) in den Frequenzbereich zu transformieren, woran eine Quantisierung Q anschließt. Das quantisierte Signal c(n) kann dann über einen „IDCT"-Block zurück in den Zeitbereich transformiert werden, wo es dann über einen weiteren Quantisierer Q quantisiert von dem ursprünglichen Eingangssignal subtrahiert werden kann. Das Restsignal e(n) kann dann entropiekodiert übertragen werden. Das quantisierte Signal c(n) kann ebenfalls über eine Entropiekodierung, die entsprechend der 21 aus verschiedenen Codebüchern auswählen kann, kodiert werden. 21 shows a block diagram of a structure of a LTAC (Lossless Transform Coding) encoder. The encoder comprises a "DCT" block to transform an input signal x (n) into the frequency domain, followed by quantization Q. The quantized signal c (n) can then be transformed back into the time domain via an "IDCT" block where it can then be subtracted, quantized by another quantizer Q, from the original input signal. The residual signal e (n) can then be transmitted entropy-coded. The quantized signal c (n) can also be determined by an entropy coding, which corresponds to the 21 from different codebooks can be coded.

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). 22 zeigt ein Blockdiagramm eines MPEG-4 SLS (SLS = Scalable Lossless Audio Coding) Encoders.Another method which falls into the category of the Lossy Coding Model is MPEG-4 Scalable Lossless Audio Coding (MPEG-4 SLS). It combines lossless audio encoding, lossy audio coding and scalable audio coding functionality. MPEG-4 SLS is backward compatible at bitstream level to MPEG-4 Advanced Audio Coding (MPEG-4 AAC). 22 shows a block diagram of a MPEG-4 SLS (Scalable Lossless Audio Coding) encoder.

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

Figure 00440001
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
Figure 00440001

Da

Figure 00450001
ist die MS-Kodierung invertierbarThere
Figure 00450001
the MS coding is invertible

Figure 00450002
Figure 00450002

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 M = NINT (L + R2 ) S = L – R Even lossless audio coding methods use the MS coding. However, since the above equation has the property of yielding floating point numbers rather than integers in some cases, some lossless audio coding techniques (see Ashland, Matthew T .: Monkey's Audio - a fast and powerful lossless audio compressor; www.monkeysaudio.com/index.html) uses the following equation for MS encoding M = NINT ( L + R 2 ) S = L - R

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 L = R + S R = L – S In addition to MS coding, lossless audio coding methods also use LS coding or RS coding (see Coalson, Josh: FLAC - Free Lossless Audio Codec, http://flac.sourceforge.net). In order to obtain the right channel from an LS coding or the left channel from an RS coding, one proceeds as in the following equation L = R + S R = L - S

Es gibt zwei prinzipielle Möglichkeiten eine Stereoredundanzreduktion (Stereo Redundancy Reduction – SRR) durchzuführen. Entweder nach der Dekorrelation der einzelnen Kanäle (siehe 23) oder vor der Dekorrelation der einzelnen Kanäle (siehe 24). 23 zeigt eine Stereoredundanzreduktion (SRR) nach Dekorrelation einzelner Kanäle, 24 eine Stereoredundanzreduktion vor Dekorrelation einzelner Kanäle. Beide Methoden haben spezifische Vor- als auch Nachteile. Im folgenden soll aber ausschließlich Methode 2 verwendet werden.There are two principal ways to perform stereo redundancy reduction (SRR). Either after the decorrelation of the individual channels (see 23 ) or before the decorrelation of the individual channels (see 24 ). 23 shows a stereo-redundancy reduction (SRR) after decorrelation of single channels, 24 a stereo-redundancy reduction before decorrelation of single channels. Both methods have specific advantages as well as disadvantages. In the following, but only method 2 be used.

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 α = max(|ai|) für j = 1, 2, ..., p. In this section a suitable quantization is to be developed for the presented linear prediction coding (LPC). The determined coefficients a z are usually floating-point values (real numbers), which can only be represented with finite precision in digital systems. So there must be a quantization of the coefficients a z . However, this can lead to larger prediction errors and has to be considered in the generation of the residual signal. Therefore, it makes sense to control the quantization via an accuracy parameter g. If g is large, finer quantization of the coefficients takes place and more bits are needed for the coefficients. If g is small, a coarser quantization of the coefficients takes place and fewer bits are needed for the coefficients. In order to be able to realize a quantization, the largest coefficient a max is initially determined α = max (| a i |) for j = 1, 2, ..., p.

Der so ermittelte maximale Prädiktorkoeffizient amax wird jetzt in eine Mantisse M und in einen Exponenten E zur Basis 2 zerlegt, also α = 2E·M. The thus determined maximum predictor coefficient a max is now decomposed into a mantissa M and an exponent E to the base 2, ie α = 2 e · M.

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 s = g – E – 1. The mantissa M is no longer needed in the further course, but the exponent E is used to determine the scaling factor s by the following equation s = g - E - 1.

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 α ^i = ⌊αi·2s⌋. The subtraction of 1 serves to take account of signed coefficients. The quantized predictor coefficients result for i = 1, 2,..., P by the equation α ^ i = ⌊Α i · 2 s ⌋.

Mit dem Skalierungsfaktor s und den quantisierten Prädiktorkoeffizienten α ^i wird das zu übertragende Restsignal e(n) ermittelt

Figure 00470001
With the scaling factor s and the quantized predictor coefficients α ^ i , the residual signal e (n) to be transmitted is determined
Figure 00470001

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

Figure 00470002
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
Figure 00470002

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 25 ist der Zusammenhang von Prädiktorordnung und Gesamtbitverbrauch dargestellt. Es ist klar zu erkennen, dass mit steigender Ordnung das Restsignal immer weniger Bits für eine Kodierung benötigt. Allerdings nimmt die Datenrate für die Seiteninformation (quantisierte Prädiktorkoeffizienten und Warmup) kontinuierlich zu, wodurch die Gesamtdatenrate ab einem gewissen Punkt wieder ansteigt. In aller Regel wird ein Minimum bei 1 < p < 16 erreicht. In 25 ergibt sich eine optimale Ordnung bei p = 5. Für 25 wurde ein fester Wert für die Quantisierungssteuerung von g = 12 und eine Auflösung von 16 Bit pro Abtastwert für das Eingangssignal verwendet.In 25 the relationship between predictor order and total bit consumption is shown. It will be appreciated that as the order increases, the residual signal will require fewer and fewer bits for encoding. However, the data rate for the page information (quantized predictor coefficients and warmup) increases continuously, causing the overall data rate to rise again at some point. As a rule, a minimum is reached at 1 <p <16. In 25 results in an optimal order at p = 5. For 25 a fixed value was used for the quantization control of g = 12 and a resolution of 16 bits per sample for the input signal.

26 zeigt eine Illustration des Zusammenhangs von Quantisierungparameters g und Gesamtbitverbrauch. Betrachtet man die Gesamtdatenrate in Abhängigkeit vom Quantisierungsparameter g (siehe 26), so sinkt der Bitverbrauch für das Restsignal kontinuierlich bis zu einem gewissen Wert. Ab hier nützt eine weitere Erhöhung der Quantisierungsgenauigkeit nichts mehr. D. h. die nötige Anzahl an Bits für das Restsignal bleibt annähernd konstant. Die Gesamtdatenrate sinkt anfangs auch kontinuierlich, steigt dann aber aufgrund größer werdender Seiteninformation für die quantisierten Prädiktorkoeffizienten wieder an. In den meisten Fällen ergibt sich ein Optimum bei 5 < g < 15. In 26 liegt das Minimum bei g = 11. Für 26 wurde eine konstante Prädiktorordnung von p = 7 und eine Auflösung von 16 Bit pro Abtastwert für das Eingangssignal verwendet. 26 shows an illustration of the relationship between quantization parameter g and total bit consumption. If one considers the total data rate as a function of the quantization parameter g (see 26 ), the bit consumption for the residual signal decreases continuously up to a certain value. From here, a further increase in quantization accuracy is of no use. Ie. the necessary number of bits for the residual signal remains approximately constant. The overall data rate initially decreases continuously, but then increases again due to increasing page information for the quantized predictor coefficients. In most cases, the optimum is 5 <g <15 26 the minimum is at g = 11 26 For example, a constant predictor order of p = 7 and a resolution of 16 bits per sample were used for the input signal.

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 25 und 26 ermittelten Grenzwerten initialisiert. Dann werden die Prädiktorkoeffizienten über die Autokorrelation und dem Levinson-Durbin Algorithmus ermittelt. Den Kern des Algorithmus bilden zwei verschachtelte for-Schleifen. Die äußere Schleife läuft über die Prädiktorordung p. Die innere Schleife läuft über den Quantisierungsparameter g. Innerhalb der inneren Schleife findet die Quantisierung der Koeffizienten, die Berechnung des Restsignals und eine Entropiekodierung des Restsignals statt. Statt einer kompletten Entropiekodierung des Restsignals wäre auch eine möglicherweise schneller auszuführende Schätzung des Bitverbrauchs denkbar. Letztlich sichert man sich die Variante mit dem niedrigsten Bitverbrauch. Es folgt ein Ausführungsbeispiel eines MATLAB-Codes:

Figure 00490001
Figure 00500001
The newly gained insights should now be used to specify an algorithm for lossless linear prediction in a simplified MATLAB code representation (see lpc ()). MATLAB is a commercial mathematical software designed for matrices calculations. Hence the name MATrix LABoratory. Programming is done under MATLAB in a proprietary, platform-independent programming language, which is interpreted on the respective computer. First, some variables after the in 25 and 26 initialized determined limit values. Then the predictor coefficients are determined via the autocorrelation and the Levinson-Durbin algorithm. The core of the algorithm is formed by two nested for loops. The outer loop passes over the predictor order p. The inner loop passes over the quantization parameter g. Within the inner loop, the quantization of the coefficients, the calculation of the residual signal and an entropy coding of the residual signal take place. Instead of a complete entropy coding of the residual signal, an estimate of the bit consumption which might possibly be carried out faster would also be conceivable. Finally, you secure the variant with the lowest bit consumption. Following is an embodiment of a MATLAB code:
Figure 00490001
Figure 00500001

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 H(z) = (1 – z–1)p. und der Betragsfrequenzgang ist H(ejωT) = |2·sin(ωT/2)|p. Here we will investigate if the FIR predictor with fixed and integer coefficients (Fixed Predictor) described above can be profitably extended. From the above section we know that an optimal order p is in the range of 1 <p <16. The Fixed Predictor uses a maximum order of p = 3. The transfer function of the Fixed Predictor is H (z) = (1 - z -1 ) p , and the magnitude frequency response is H (e jωT ) = | 2 · sin (ωT / 2) | p ,

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: x ^0(n) = 0 x ^1(n) = x(n – 1) x ^2(n) = 2x(n – 1) – x(n – 2) x ^3(n) = 3x(n – 1) – 3x(n – 2) + x(n – 3) x ^4(n) = 4x(n – 1) – 6x(n – 2) + 4x(n – 3) – x(n – 4) x ^5(n) = 5x(n – 1) – 10x(n – 2) + 10x(n – 3) – 5x(n – 4) + x(n – 5) T here denotes the sampling rate and ω = 2πf. The transfer function is a mathematical description of the behavior of a linear, time-invariant system that has an input and an output. The frequency response describes the behavior of a linear time-invariant system, comparing the output with the input and recording it as a function of frequency. With the aid of the above equation, two further orders p = 4 and p = 5 are designed: x ^ 0 (n) = 0 x ^ 1 (n) = x (n - 1) x ^ 2 (n) = 2x (n-1) -x (n-2) x ^ 3 (n) = 3x (n-1) - 3x (n-2) + x (n-3) x ^ 4 (n) = 4x (n-1) -6x (n-2) + 4x (n-3) -x (n-4) x ^ 5 (n) = 5x (n-1) -10x (n-2) + 10x (n-3) -5x (n-4) + x (n-5)

Die entsprechenden Restsignale ergeben sich durch folgende Gleichung und die Bildung des Warmup geschieht äquivalent zu obigem Abschnitt: e0(n) = x(n) e1(n) = e0(n) – e0(n – 1) e2(n) = e1(n) – e1(n – 1) e3(n) = e2(n) – e2(n – 1) e4(n) = e3(n) – e3(n – 1) e5(n) = e4(n) – e4(n – 1) The corresponding residual signals are given by the following equation and the formation of the warmup is equivalent to the above section: e 0 (n) = x (n) e 1 (n) = e 0 (n) - e 0 (n - 1) e 2 (n) = e 1 (n) - e 1 (n - 1) e 3 (n) = e 2 (n) - e 2 (n - 1) e 4 (n) = e 3 (n) - e 3 (n - 1) e 5 (n) = e 4 (n) - e 4 (n - 1)

27 zeigt eine Illustration eines Betragsfrequenzgangs eines Fixed Predictors in Abhängigkeit von dessen Ordnung p. Deutlich wird die Wirkung der verschiedenen Prädiktorordnungen anhand einer Betrachtung ihres Frequenzgangs (siehe 27). Bei einer Ordnung von p = 0 entspricht das Restsignal dem Eingangssignal. Dadurch ergibt sich ein Betragsfrequenzgang von konstant 1. Eine Erhöhung der Ordnung führt einerseits zu einer stärkeren Dämpfung der tieffrequenten Signalanteile, andererseits aber zu einer Anhebung der hochfrequenten Signalanteile. Die Frequenzachse wurde für die Darstellung zur halben Abtastfrequenz normalisiert, wodurch sich bei der halben Abtastfrequenz (hier 22.05 kHz) die 1 ergibt. 27 shows an illustration of a magnitude frequency response of a fixed predictor as a function of its order p. The effect of the different predictor orders becomes clear on the basis of a consideration of their frequency response (see 27 ). With an order of p = 0, the residual signal corresponds to the input signal. This results in a magnitude frequency response of constant 1. Increasing the order leads on the one hand to a greater attenuation of the low-frequency signal components, but on the other hand to an increase in the high-frequency signal components. The frequency axis was normalized for the representation at half the sampling frequency, resulting in 1 at half the sampling frequency (here 22.05 kHz).

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. Stück Nr. p = 0 p = 1 p = 2 p = 3 p = 4 p = 5 Gesamtblockanzahl 1 0 14 316 67 57 0 454 4 15 69 161 79 0 0 324 6 5 173 115 27 0 0 320 7 3 74 189 43 0 0 309 8 0 221 959 0 0 0 1180 14 2 30 279 158 4 0 473 15 0 0 0 0 0 216 216 The following table shows how often which order was selected as the best, summed over the entire audio file. For the creation of this table, a constant block length of 1024 time values was taken. Piece no. p = 0 p = 1 p = 2 p = 3 p = 4 p = 5 Total number of blocks 1 0 14 316 67 57 0 454 4 15 69 161 79 0 0 324 6 5 173 115 27 0 0 320 7 3 74 189 43 0 0 309 8th 0 221 959 0 0 0 1180 14 2 30 279 158 4 0 473 15 0 0 0 0 0 216 216

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.

Figure 00520001
Figure 00520001

Figure 00530001
Figure 00530001

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:

Figure 00530002
Definition (difference coding): Let i ε N with 1 <i <n <∞ and x i ∈ Z, then the difference coding is defined as:
Figure 00530002

Die Differenzkodierung ist invertierbar. Definition (Inverse Differenzkodierung): Sei i ∊ N mit 1 < i < n < ∞ und xi ∈ Z, dann ist die Inverse Differenzkodierung definiert als:

Figure 00530003
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:
Figure 00530003

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. 12 zeigte bereits die Auswirkung einer Differenzkodierung angewandt auf sortierte Zeitwerte. Deutlich ist der übereinstimmende Wert von sortiertem und dekorreliertem Zeitsignal bei Index 1 (Warmup) zu erkennen. Weiterhin ist der wesentlich kleinere Dynamikumfang des Restsignals der Differenzkodierung gegenüber den sortierten Zeitwerten auffallend. Detaillierte Angaben zu 12 sind der folgenden Tabelle angegeben. Die Differenzkodierung stellt also ein einfaches und effizientes Verfahren dar, um sortierte Zeitwerte zu kodieren. Stück Nr. 2 max. Wert (ohne Warmup) min. Wert Warmup Sortierte Zeitwerte 32425 –32768 32767 Restsignal δ 2630 0 32767 As with the predictors, warmup (a time value at i = 1) is excluded from entropy coding. 6 has the property that with decreasing time values, the residual signal is completely in N 0 . This makes a subsequent entropy coding easier. Difference coding works optimally if the values to be coded are very close to each other, ie strongly correlated. Sorting the time values places the time values in a strong correlation. 12 already showed the effect of difference coding applied to sorted time values. The matching value of sorted and decorrelated time signal at index 1 (warmup) can be clearly seen. Furthermore, the much smaller dynamic range of the residual signal of the difference coding compared to the sorted time values is striking. Detailed information to 12 are given in the following table. The difference coding thus represents a simple and efficient method for coding sorted time values. Piece No. 2 Max. Value (without warmup) minute value Warmup Sorted time values 32425 -32768 32767 Residual signal δ 2630 0 32767

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(σ) = log2(|σ|). The following two sections develop methods for effectively coding permutations. Assuming a memory-free consideration of a permutation, then the entropy of any permutation σ is given by | σ | <∞ is given by the following equation. The memory-sensitive consideration of a permutation should be deliberately avoided here, since a memory-free view is the simplest way of coding a permutation H (σ) = log 2 (| Σ |).

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

Figure 00550001
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
Figure 00550001

Wird von σ und π die Inversionstafel gebildet, so ergibt sich I(σ) = (2110), I(π) = (3210). Es gilt H(I(σ)) = 1.5 Bit < 2 Bit = H(σ). If the inversion table is formed by σ and π, then I (σ) = (2110), I (π) = (3210). It applies H (I (σ)) = 1.5 bits <2 bits = H (σ).

D. h. die Entropie der Inversionstafel ist tatsächlich kleiner als die der Permutation. Aber für π ergibt sich H(I(π)) = 2 Bit = H(π). Ie. the entropy of the inversion table is actually smaller than that of the permutation. But for π arises H (I (π)) = 2 bits = H (π).

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 |σ| < ∞: H(I(σ)) ≤ H(σ). In the case of π, the entropy of the inversion table is the same as that of the permutation. But considering π in reverse order, ie π (4), π (3), π (2), π (1) gives the identical permutation and its inversion table has a very small entropy. In any case, for any permutation σ with | σ | <∞: H (I (σ)) ≤H (σ).

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,

Figure 00560001
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.
Figure 00560001

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. b1 = 0 1 b2 = 0 1 2 b3 = 2 3 1 2 b4 = 3 4 3 1 2 First, take the element of permutation with σ (i) = 1 and count the elements to the right of σ (i) = 1 in σ which are smaller than 1. Here, this is not an element. Then take the element of permutation with σ (i) = 2 and count the smaller elements to the right of σ (i) = 1 in σ. Here, no element to the right of σ (i) = 2 is smaller than the second. If the same applies to | σ | Furthermore, I rs (σ) = (b 1 , ..., b4) = (0023). From an inversion table RS, j = 1, 2, ... | σ | generate the corresponding permutation again. For this, one goes the other way round and inserts j such that b j elements to the right of it are smaller j. b1 = 0 1 b2 = 0 1 2 b3 = 2 3 1 2 b4 = 3 4 3 1 2

Bildet man von σ die Inversionstafeln LB, LS und RB erhält man Ilb(σ) = (2210) Ils(σ) = (0100) Ilb(σ) = (1000) If one forms the inversion tables LB, LS and RB from σ, one obtains I lb (σ) = (2210) I ls (σ) = (0100) I lb (σ) = (1000)

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. H(Ilb(σ)) = 1.5 Bit < 2 Bit = H(σ) H(Ils(σ)) ≈ 0.81 Bit < 2 Bit = H(σ) H(Irb(σ)) ≈ 0.81 Bit < 2 Bit = H(σ) H(Irs(σ)) = 1.5 Bit < 2 Bit = H(σ) A comparison of the entropies of the inversion tables from above shows that their entropies sometimes show considerable differences and in all cases are smaller than the entropy of the permutation (2 bits). HI lb (σ)) = 1.5 bits <2 bits = H (σ) HI ls (σ)) ≈ 0.81 bit <2 bit = H (σ) HI rb (σ)) ≈ 0.81 bit <2 bit = H (σ) HI rs (σ)) = 1.5 bits <2 bits = H (σ)

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 bk = |{j:k < j ≤ n ∧ σ(k) > σ(j)}| für 1 ≤ k ≤ n Definition (Lehmer Inversion Board RS (Right Smaller)): Let σ ε S n be a permutation. The Lehmer inversion table RS I rsl (σ) = (b1, b2, ..., b n ) is then defined as b k = | {j: k <j ≤ n ∧ σ (k)> σ (j)} | for 1≤k≤n

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.
The suffix rsl stands for "Right Smaller Lehmer". The same applies to the following definitions. Of course you can also generate the permutation from the Lehmer Inversion Board RS. In ARNAVUT, Ziya: Permutation Techniques in Lossless Compression. Nebraska, University, Computer Science, Dissertation, 1995 at pp. 62-63, the following algorithm has been given. Figure 1 illustrates a linked list in the algorithm
  • 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 bk = |{j:k < j ≤ n ∧ σ(k) < σ(j)}| für 1 ≤ k ≤ n.

  • 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.
Definition (Lehmer Inversion Board RB). Let σ ε S n be a permutation. The Lehmer inversion table RB I rbl (σ) = (b 1 , b 2 , ..., b n ) is then defined as b k = | {j: k <j ≤ n ∧ σ (k) <σ (j)} | for 1≤k≤n.
  • 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 bk = {j:j < k ≤ n ∧ σ(k) > σ(j)}| für 1 ≤ k ≤ n

  • 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.
Definition (Lehmer Inversion Board LS). Let σ ε S n be a permutation. The Lehmer inversion table LS I lsl (σ) = (b 1 , b 2 , ..., b n ) is then defined as b k = {j: j <k ≦ n ∧ σ (k)> σ (j)} | for 1≤k≤n
  • 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 bk = |{j:j < k ≤ n ∧ σ(k) < σ(j)}| für 1 ≤ k ≤ n.

  • 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.
Definition (Lehmer Inversion panel LB). Let σ ε S n be a permutation. The Lehmer inversion table LB 4.1 (σ) = (b 1 , b 2 , ..., b n ) is then defined as b k = | {j: j <k ≦ n ∧ σ (k) <σ (j)} | for 1≤k≤n.
  • 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

Figure 00600001
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
Figure 00600001

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 101 weiter, ergibt sich letztlich Ilbl(σ) = (b1, b2, ..., b4) = (0122). Aus einer Lehmer Inversionstafel LB lässt sich die entsprechende Permutation durch Algorithmus I –1 / lbl(σ) wieder generieren l = (4, 3, 2, 1) b4 = 2 2 l = (4, 3, 1) b3 = 2 1 2 l = (4, 3) . b2 = 1 3 1 2 l = (4) b4 = 0 4 3 2 1 l = {} First, take the first element of the permutation σ (1) = 4 and count the elements to the left of σ (1) in σ larger than 4. Here are 0 elements. Then take the second element of the permutation σ (2) = 3 and count the larger elements to the left of σ (2) in σ. Here is 1 element next to the σ (2) larger than the 3. If the same goes to 101 Furthermore, I lbl (σ) = (b 1 , b 2 , ..., b 4 ) = (0122). From a Lehmer inversion table LB the corresponding permutation can be regenerated by algorithm I -1 / lbl (σ) l = (4, 3, 2, 1) b 4 = 2 2 l = (4, 3, 1) b 3 = 2 1 2 l = (4, 3). b 2 = 1 3 1 2 l = (4) b 4 = 0 4 3 2 1 l = {}

Bildet man von σ die Lehmer Inverionstafeln RSL, RBL und LSL erhält man 1rsl(σ) = (3200) 1rbl(σ) = (0010). 1lsl(σ) = (0001) If one forms from σ the Lehmer Inverionstafeln RSL, RBL and LSL one receives 1 rsl (σ) = (3200) 1 rbl (σ) = (0010) , 1 lsl (σ) = (0001)

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 0 ≤ bi ≤ j – 1 (∀j = 1, 2, ..., n). The property shown of the elements of the inversion panel LB also applies to the inversion panels RB, RBL and RSL. For the inversion panels LS, RS, LBL and LSL, however, the elements have the following properties 0 ≤ b i ≤ j - 1 (∀ j = 1, 2, ..., n).

Zwischen den Inversionstafeln und den Lehmer Inversionstafeln besteht folgender Zusammenhang bezüglich der Entropie H(1lb(σ)) = H(1lbl(σ)) H(1ls(σ)) = H(1lsl(σ)) H(1rb(σ)) = H(1rbl(σ)) H(lrs(σ)) = H(lrsl(σ)) Between the inversion tables and the Lehmer inversion tables, there is the following relation to entropy H (1 lb (σ)) = H (1 lbl (Σ)) H (1 ls (σ)) = H (1 lsl (Σ)) H (1 rb (σ)) = H (1 rbl (Σ)) H (l rs (σ)) = H (l rsl (Σ))

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 C(σ) = min(H(1lsl(σ)), H(1lbl(σ)), H(1rsl(σ)), H(1rbl(σ))) = mm (H(lls(σ)), H(1lb(σ)), H(1rs(σ)), H(1rb(σ)))definiert.Definition (codability measure): Let σ be a permutation with | σ | <∞ and I lb (σ), I ts (u), I ls (σ), I rb (σ) are the corresponding inversion tables or I lbl (σ), I lsl (σ), I rbl (σ), I rsl (σ) the corresponding Lehmer inversion tables, then the Codierbarkeitsmaß for permutations by C (σ) = min (H (1 lsl (σ)), H (1 lbl (σ)), H (1 rsl (σ)), H (1 rbl (σ))) = mm (H (l ls (σ)), H (1 lb (σ)), H (1 rs (σ)), H (1 rb (Σ))) Are defined.

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: 3 < (H(σ) – C(σ))·|σ|. Signaling which of the 8 inversion panel building codes was used can be done with 3 bits. Thus, using the best variant is more cost effective over ordinary binary coding of the permutation if the following inequality is for | σ | <∞ is true: 3 <(H (σ) - C (σ)) · | σ |.

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.
It has been determined by experimental investigations that for | σ | > 1 always H (σ)> C (σ) and as a result this inequality ab | σ | > 4 applies. This also answers the initial question as to whether a permutation can be coded with less than log 2 (| σ |). For reasons of measurability, one is interested in scrambling permutations piece by piece starting from the identical permutation.
  • 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 28 ist deutlich eine Eigenschaft zwischen Länge der Permutation, Anzahl der Transpositionen und des Kodierbarkeitsmaßes herauszulesen. 28 zeigt eine Illustration des Zusammenhangs von Permutationslänge |s|, Anzahl der Transpositionen und Kodierbarkeitsmaß. Ist die identische Permutation gegeben, dann ist das Kodierbarkeitsmaß gleich 0. Werden nur wenige Elemente der Permutation miteinander vertauscht, steigt das Kodierbarkeitsmaß sofort sehr stark an. Werden anschließend noch mehr Permutationselemente durch Transpositionen vertauscht, flacht die Kurve nach oben ab und läuft gegen die empirisch ermittelten Bitwerte aus folgender Tabelle |σ| 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024 H(σ) 7.00 7.59 8.00 8.32 8.59 8.81 9.00 9.17 9.32 9.46 9.59 9.70 9.81 9.91 10.00 C(σ) 5.72 6.35 6.73 7.08 7.33 7.53 7.74 7.90 8.07 8.19 8.32 8.43 8.53 8.65 8.74 The disadvantage of the algorithm is the choice of U. Depending on which U is chosen randomly, the t numbers in a transposition step are sometimes slightly more or sometimes less scrambled. However, the essential feature is the fact that the algorithm proceeds step by step and gradually increases the scrambling of an originally undiscussed permutation (identical permutation). Out 28 is clearly a property between length of the permutation, number of transpositions and the Kodierbarkeitsmaßes read out. 28 shows an illustration of the relationship between permutation length | s |, number of transpositions and codability measure. If the identical permutation is given, then the codability measure is 0. If only a few elements of the permutation are interchanged, the codability measure immediately increases very strongly. If more permutation elements are subsequently exchanged by transpositions, the curve flattens upward and runs counter to the empirically determined bit values from the following table | Σ | 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024 H (σ) 7:00 7:59 8:00 8:32 8:59 8.81 9:00 9.17 9:32 9:46 9:59 9.70 9.81 9.91 10:00 C (σ) 5.72 6:35 6.73 7:08 7:33 7:53 7.74 7.90 8:07 8.19 8:32 8:43 8:53 8.65 8.74

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. 29 zeigt eine Darstellung von Inversionstafeln im 10. Block (Frame) eines rauschartigen Stückes. 30 zeigt eine Darstellung von Inversionstafeln im 20. Block (Frame) eines tonalen Stückes. Es liegt eine Blockgröße von 1024 Zeitwerten zugrunde.Now we want to show what form the inversion tables and Lehmer inversion tables of a permutation, which resulted from the sorting of the time values, have with different kind of music. For this a very tonal piece and a noisy piece is used. 29 shows a representation of inversion tables in the 10th block (frame) of a noise-like piece. 30 shows a representation of inversion tables in the 20th block (frame) of a tonal piece. It is based on a block size of 1024 time values.

In den 29 und 30 ist zunächst die größer bzw. kleiner werdende dreieckige Kurvenform auffallend. Diese Kurvenform ist durch die zugrundeliegende Inversionstafelbildungsvorschrift und diese Gleichungen bedingt. Weiter fällt auf, dass die Lehmer Inversionstafeln sowohl beim rauschartigen Musikstück (siehe 29) als auch beim tonalen Musikstück (siehe 30) sehr unkorreliert sind. Wohingegen bei den Inversionstafeln zwischen dem tonalen Musikstück und dem rauschartigen Musikstück ein deutlicher Unterschied zu erkennen ist. Betrachtet man, die zu den obigen Inversionstafeln und Lehmer Inversionstafeln gehörenden Permutationen, so ist auch dort die durch Sortierung des tonalen Musikstücks entstandene Permutation wesentlich korrelierter als die des rauschartigen Musikstückes (siehe 31). 31 zeigt eine Darstellung von aus einer Sortierung von Zeitwerten enstandenen Permutation eines rauschartigen Stückes im 10. Block (links) und eines tonalen Stückes (rechts).In the 29 and 30 At first, the larger or smaller triangular waveform is striking. This waveform is conditioned by the underlying inversion panel formation rule and these equations. It is also noticeable that the Lehmer inversion panels both in the noise-like piece of music (see 29 ) as well as the tonal piece of music (see 30 ) are very uncorrelated. Whereas there is a clear difference between the tonal piece of music and the noisy piece of music in the inversion charts. If one considers the permutations belonging to the above inversion tables and Lehmer inversion tables, the permutation resulting from the sorting of the tonal piece of music is much more correlated there than that of the noisy piece of music (see 31 ). 31 FIG. 10 is an illustration of permutation of a noise-like piece resulting from a sorting of time values in FIG. 10. FIG. Block (left) and a tonal piece (right).

Die rechte Permutation aus 31 erinnert an ein an der Hauptachse gespiegeltes Audiosignal. Es scheint so, dass ein direkter Zusammenhang zwischen Audiosignal, Rücksortiervorschrift und sogar auch noch der Inversionstafeln besteht.The right permutation off 31 is reminiscent of an audio signal mirrored on the main axis. It seems that there is a direct correlation between the audio signal, the sorting rule and even the inversion charts.

Die 32 und 33 zeigen das Audiosignal eines Blocks, die entsprechende Permutation bei welcher die x und y Koordina te vertauscht wurde und die entsprechende Inversionstafel LS. 32 zeigt links einen Teil eines Audiosignals, die entsprechende Permutation und Inversionstafel LS, und rechts die Permutation und die Inversionstafel LS aus dem linken Bild vergrößert. 33 zeigt links einen Teil eines Audiosignals, die entsprechende Permutation und Inversionstafel LS, und rechts die Permutation und die Inversionstafel LS aus dem linken Bild vergrößert.The 32 and 33 show the audio signal of a block, the corresponding permutation in which the x and y Koordina te has been swapped and the corresponding Inversionstafel LS. 32 shows on the left a part of an audio signal, the corresponding permutation and inversion table LS, and on the right the permutation and the inversion table LS from the left picture enlarged. 33 shows on the left a part of an audio signal, the corresponding permutation and inversion table LS, and on the right the permutation and the inversion table LS from the left picture enlarged.

Die 32 und 33 zeigen deutlich die Verbundenheit von ursprünglichem Audiosignal, Permutation und Inversionstafel. D. h. wird die Amplitude des ursprünglichen Signals größer, steigt auch die Amplitude von Permutation und Inversionstafel an bzw. umgekehrt. Sehr erwähnenswert sind auch die Amplitudenverhältnisse. Die maximale und minimale Amplitude der Permutation bleibt immer in einem beschränkten Rahmen von min(σ(i)) = 1 bis max(σ(i)) = |σ|. Die Inversionstafel hat aufgrund der obigen Gleichungen sogar noch kleinere Amplitudenwerte von min(σ(i)) – 1 bis max(σ(i)) – 1. Im Gegensatz dazu hat ein Audiosignal von 16 Bit einen maximalen Amplitudenumfang von – 2ⁱ⁶ / 2 bis 2ⁱ⁶ / 2 – 1. Das eben beobachtete Prinzip soll nun explizit hervorgehoben werden.The 32 and 33 clearly show the affinity of the original audio signal, permutation and inversion chart. Ie. As the amplitude of the original signal increases, so does the amplitude of the permutation and inversion chart, and vice versa. Very worth mentioning are the amplitude ratios. The maximum and minimum amplitude of the permutation always remains within a bounded framework of min (σ (i)) = 1 to max (σ (i)) = | σ |. The inversion table has even smaller amplitude values of min (σ (i)) -1 to max (σ (i)) -1 due to the above equations. In contrast, a 16-bit audio signal has a maximum amplitude range of-2ⁱ⁶ / 2 to 2ⁱ⁶ / 2 - 1. The principle just observed should now be emphasized explicitly.

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.

Figure 00650001
Figure 00650001

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

Figure 00660001
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
Figure 00660001

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

Figure 00660002
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
Figure 00660002

Die folgende Tabelle zeigt was dieser Kodieransatz leisten kann. |σ| dynamische Bitzuteilung statische Bitzuteilung 32 4.063 Bit 5 Bit 64 5.031 Bit 6 Bit 128 6.016 Bit 7 Bit 256 7.008 Bit 8 Bit 512 8.004 Bit 9 Bit 1024 9.002 Bit 10 Bit 2048 10.001 Bit 11 Bit The following table shows what this coding approach can do. | Σ | dynamic bit allocation static bit allocation 32 4,063 bits 5 bits 64 5,031 bits 6 bits 128 6,016 bits 7 bits 256 7,008 bits 8 bits 512 8,004 bits 9 bits 1024 9,002 bits 10 bits 2048 10,001 bits 11 bits

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.

34 zeigt eine Wahrscheinlichkeitsverteilung (oben) und eine Länge der Codewörter (unten) eines durch Prädiktion (Fixed Predictor) entstandenen Restsignals einer Inversionstafel LB. 34 zeigt die Wahrscheinlichkeitsverteilung des Restsignals einer nicht Lehmer Inversionstafel LB, entstanden durch die Anwendung eines Fixed Predictors. Für die Bestimmung der Codewortlängen des Restsignals liegt eine vorwärts-adaptive Rice Kodierung mit einem Parameter von k = 2 zugrunde. Deutlich ist zu erkennen, daß die Wahrscheinlichkeitsverteilung des Restsignals annähernd einer Laplaceverteilung entspricht. Im Falle einer Laplacevertei lung ist eine Golomb bzw. Rice Kodierung optimal als Entropiekodierverfahren geeignet. 34 FIG. 12 shows a probability distribution (top) and a length of the codewords (bottom) of a predicted (fixed predictor) residual signal of an inversion table LB. 34 shows the probability distribution of the residual signal of a non-Lehmer inversion chart LB, created by the application of a fixed predictor. For the determination of the code word lengths of the residual signal, a forward adaptive Rice coding with a parameter of k = 2 is used. It can be clearly seen that the probability distribution of the residual signal corresponds approximately to a Laplace distribution. In the case of a Laplace distribution, a Golomb or Rice coding is optimally suitable as entropy coding method.

Letztlich ist noch die Wahrscheinlichkeitsverteilung des Restsignals der Differenzkodierung der sortierten Zeitwerte zu betrachten. 35 zeigt eine Wahrscheinlichkeitsverteilung (oben) und eine Länge von Codewörtern eines durch Differenzkodierung entstandenen Restsignals (unten) sortierter Zeitwerte. In 35 ist deutlich zu erkennen, das das Restsignal eine annähernd geometrische Wahrscheinlichkeitsverteilung aufweist. Auch in diesem Fall ist eine Golomb bzw. Rice Kodierung sehr gut als Entropiekodierverfahren geeignet. Zur Darstellung der Codewortlängen wurde in 35 eine vorwärts-adaptive Rice Kodierung mit einem Parameter von k = 8 verwendet.Finally, the probability distribution of the residual signal of the difference coding of the sorted time values is still to be considered. 35 shows a probability distribution (top) and a length of codewords of a difference signal-generated residual signal (below) of sorted time values. In 35 It can clearly be seen that the residual signal has an approximately geometric probability distribution. Also in this case, a Golomb or Rice coding is very well suited as Entropiekodierverfahren. For the representation of the codeword lengths was in 35 used a forward-adaptive Rice coding with a parameter of k = 8.

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 34 ist dies z. B. zwischen –25, ..., –20 der Fall. Auch in 35 ist dies für Werte > 350 zu erkennen. Eine tabellarische Abspeicherung der Codes oder deren Übertragung als Seiteninformation, wie dies z. B. bei einer Huffman Kodierung der Fall wäre, ist deswegen ungeeignet. Da jeder Rice bzw. Golomb Code durch den Parameter k bzw. m eindeutig beschrieben wird, ist lediglich k bzw. m als Seiteninformation zu übertragen, wenn zwischen verschiedenen Rice bzw. Golomb Codes unterschieden werden soll. Mit dem Wissen, dass eine Rice bzw. Golomb Kodierung hervorragend für die in SOLO präsenten Restsignale geeignet ist, sollen nun verschiedene Varianten einer Rice bzw. Golomb Kodierung entwickelt werden.In addition to the special probability distributions, the residual signals have the property that the value ranges from block to block sometimes vary considerably and many values of the value range do not occur at all. In 34 is this z. For example, between -25, ..., -20 the case. Also in 35 this can be seen for values> 350. A tabular storage of the codes or their transmission as page information, as z. B. would be the case with a Huffman coding is therefore unsuitable. Since each Rice or Golomb code is uniquely described by the parameter k or m, only k or m is to be transmitted as side information if a distinction is to be made between different Rice or Golomb codes. With the knowledge that a Rice or Golomb coding is perfectly suitable for the residual signals present in SOLO, different variants of a Rice or Golomb coding are to be developed.

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
Essential here is the determination of the Rice parameter k or the Golomb parameter m. Selecting the parameter too large increases the number of bits needed for the small numbers. If one chooses the parameter too small, the necessary number of bits for the unary coded part increases very strongly, especially for large values to be coded. A wrongly chosen parameter can thus the data rate of the entropy code increase significantly and thus worsen the compression. There are two ways to make a Rice or Golomb encoding:
  • 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

Figure 00690001
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
Figure 00690001
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 kmin(μ) = max{0,⌊log2|23 (μ + 1))⌋} kmax(μ) = max{0,⌊log2(μ)⌋}zu Nutze machen. Dadurch wird der Bereich des optimalen Rice Parameters k auf kmax(μ) – kmin(μ) ≤ 2 ∀μbeschränkt und man muss maximal 3 verschiedene Rice Parameter testen, um den optimalen Parameter bestimmen zu können. Liegt eine geometrische Wahrscheinlichkeitsverteilung vor, dann ergibt sich der optimale Rice Parameter durch folgende Gleichung

Figure 00700001
wobei ϕ = (√5 + 1)/2 ist.The easiest way to determine the Rice parameter is to test all the Rice parameters in question and choose the parameter with the lowest bit consumption. This is not very complex because the range of values of the Rice parameters to be tested is limited by the bit resolution of the time signal. At a resolution of 16 bits, a maximum of 16 Rice parameters must be verified. The corresponding bit requirement per parameter can ultimately be determined by means of a few bit operations or arithmetic operations. This procedure of finding the optimal Rice parameter is a bit more complicated than the direct calculation of the parameter, but always guarantees the optimal Rice parameter. In the lossless audio coding method presented here, in most cases this method is used to determine the Rice parameter. In a direct determination of the Rice parameter, the parameter limit values can be determined k min (μ) = max {0, ⌊log 2 | 2 3 (μ + 1)) ⌋} k Max (μ) = max {0, ⌊log 2 (Μ)} ⌋ to make use of. This will set the range of the optimal Rice parameter k k Max (μ) - k min (μ) ≤ 2 ∀μ limited and you have to test a maximum of 3 different Rice parameters to determine the optimal parameter. If there is a geometric probability distribution, then the optimal Rice parameter is given by the following equation
Figure 00700001
where φ = (√5 + 1) / 2.

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

Figure 00710001
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
Figure 00710001

Dabei wird θ durch

Figure 00710002
berechnet.In this case, θ is going through
Figure 00710002
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 36. 36 zeigt einen prozentualen Anteil einer Teilblockzerlegung mit einem geringsten Datenaufkommen einer vorwärts-adaptiven Rice Kodierung über ein Restsignal eines Fixed Predictors eines Stückes einschließlich einer Seiteninformation für Parameter, die Gesamtblocklänge ist 1024 Zeitwerte groß. Anzahl Teilblöcke 128 64 32 16 8 4 2 1 Parameter unkodiert 488 243 121 60 30 15 8 4 Parameter kodiert 304 153 80 44 25 16 10 6 Summe der Teilblockdatenraten 9748 9796 9833 9872 9911 9926 9938 9952 With a forward-adaptive Rice / Golomb coding, it is possible to split a data block to be coded into several sub-blocks and to determine and transmit a separate parameter for each sub-block. As the number of subblocks increases, the necessary page information for the parameters increases. The effectiveness of the subblock decomposition strongly depends on how the parameters to be transmitted are coded themselves. Since the parameters of successive blocks usually do not vary very much, a difference coding of the parameters with subsequent forward-adaptive Rice coding is useful. If one now sums up the necessary data rate of the entropy-coded sub-blocks including the associated parameter page information over the entire block, and counts how often which sub-block dissection required the smallest data volume, the result for the entire coding process of a piece no 36 , 36 Figure 10 shows a percentage of a partial block decomposition with a least amount of data of a forward adaptive Rice coding over a residual signal of a fixed predictor of a piece including a side information for parameters, the total block length being 1024 time values. Number of subblocks 128 64 32 16 8th 4 2 1 Parameters uncoded 488 243 121 60 30 15 8th 4 Coded parameters 304 153 80 44 25 16 10 6 Sum of subblock data rates 9748 9796 9833 9872 9911 9926 9938 9952

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 37 und die folgende Tabelle). 37 zeigt einen prozentualen Anteil einer Teilblockzerlegung mit dem geringsten Datenaufkommen einer vorwärts-adaptiven Golomb Kodierung über das Restsignal eines Fixed Predictors eines Stückes einschließlich Seiteninformation für Parameter, die Gesamtblocklänge ist 1024 Zeitwerte groß. Allerdings bestände die Möglichkeit die Golomb Parameter vor ihrer Kodierung noch zu quantisieren, um dadurch deren nötige Datenrate zu verkleinern. Da aber bereits die Rice Parameter im Prinzip quantisierte Golomb Parameter darstellen, soll dies hier nicht weiter betrachtet werden. Anzahl Teilblöcke 128 64 32 16 8 4 2 1 Parameter unkodiert 1242 603 293 142 69 34 17 9 Parameter kodiert 1123 552 278 139 68 36 19 11 Summe der Teilblockdatenraten 9752 9794 9827 9863 9899 9913 9924 9938 For uncoded Rice parameters, a partial block decomposition is usually not very profitable. If the Rice parameters are coded, then a decomposition into 32 subblocks is often better than no subblock decomposition (see also the following table). In a forward-adaptive Golomb coding, a sub-block decomposition for both uncoded Golomb parameters and coded Golomb parameters is usually not advantageous (see 37 and the following table). 37 Figure 10 shows a percentage of a partial block decomposition with the lowest data volume of a forward adaptive Golomb coding over the residual signal of a fixed predictor of a piece including side information for parameters, the total block length being 1024 time values. However, it would be possible to quantize the Golomb parameters before encoding them, thereby reducing their necessary data rate. However, since the Rice parameters are in principle quantized Golomb parameters, this should not be considered here. Number of subblocks 128 64 32 16 8th 4 2 1 Parameters uncoded 1242 603 293 142 69 34 17 9 Coded parameters 1123 552 278 139 68 36 19 11 Sum of subblock data rates 9752 9794 9827 9863 9899 9913 9924 9938

Aus den 36 und 37 ist ersichtlich, dass es keine in allen Fällen optimale Teilblockzerlegung gibt. Somit ergeben sich zwei Möglichkeiten:

  • 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.
From the 36 and 37 It can be seen that there are no optimal partial block decompositions in all cases. Thus, there are two possibilities:
  • 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

Figure 00730001
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
Figure 00730001

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 38 ist die prinzipielle Arbeitsweise des History Buffers der Größe 8 dargestellt.A backward-adaptive Rice / Golomb coding calculates the parameter from previously encoded characters. For this purpose, the newly encoded characters are entered cyclically in a history buffer. There are two variables to the history buffer. One holds the current level of the History Buffer and the other variable stores the next write position. In 38 the principle of operation of the size 8 History Buffer is shown.

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

Figure 00740001
wobei die Funktion l(e(i)) die nötige Anzahl der Bits für e(i) ermittelt, also
Figure 00740002
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
Figure 00740001
where the function l (e (i)) determines the necessary number of bits for e (i), ie
Figure 00740002

Die Berechnung des rückwärts-adaptiven Golomb Parameters geschieht durch Gleichung

Figure 00740003
The calculation of the backward-adaptive Golomb parameter is done by equation
Figure 00740003

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 39 gezeigt. 39 zeigt eine Illustration zur Arbeitsweise einer Adaption verglichen mit einem optimalen Parameter für den Gesamtblock. Dabei stellen die helleren Linien den Grenzbereich dar, ab welchem die adaptiven Parameter verwendet werden. Vereinfacht läßt sich dieses eben beschriebene Vorgehen wie in BwAdaptivCoding() darstellen. Zuerst folgt im Falle von e(i) ∈ Z wieder eine Abbildung nach N0. Dann wird über die ersten W Werte (Größe des History Buffers) ein vorwärts-adaptiver Parameter bestimmt mit dem die ersten W Werte kodiert werden. Ist der History Buffer komplett gefüllt, werden die adaptiven Parameter für die weitere Kodierung verwendet. Es folgt ein Beispielcode

Figure 00750001
How the adaptive parameter determination works is detailed in 39 shown. 39 shows an illustration of the operation of an adaptation compared with an optimal parameter for the entire block. The brighter lines represent the limit range from which the adaptive parameters are used. Simplified, this procedure can be described as in BwAdaptivCoding (). First, in the case of e (i) ∈ Z, another mapping to N 0 follows. Then, via the first W values (size of the history buffer), a forward-adaptive parameter is determined with which the first W values are coded. If the history buffer is completely filled, the adaptive parameters are used for the further coding. Here is a sample code
Figure 00750001

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 40). 40 zeigt ein Ausführungsbeispiel einer vorwärts-adaptiven arithmetische Kodierung unter Zuhilfenahme einer rückwärts-adaptiven Rice Kodierung.In order to be able to assess the performance of the newly developed Rice / Golomb entropy coding methods more comprehensively, a forward adaptive arithmetic coding with the help of a backward adaptive Rice coding is to be developed in addition. First, a histogram of the data to be encoded is created. With this histogram it is possible to generate a code close to the entropy limit by the arithmetic coding. However, in addition, the contained characters and their occurrence probabilities must be transmitted. Since the characters in the histogram are arranged in a strictly monotonically increasing manner, a difference coding δ is available here before a backward-adaptive Rice coding. The probabilities are only encoded backwards-adaptive Rice. Ultimately, the total cost of doing this is given by the sum of the arithmetic coding code, the Rice coded characters, and the Rice coded probabilities (see 40 ). 40 shows an embodiment of a forward-adaptive arithmetic coding with the aid of a backward adaptive Rice coding.

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. Stück Nr. Entropie summiert v. a. Rice Kodierung r. a. Rice Kodierung v. a. Golomb Kodierung r. a. Golomb Kodierung v. a. Arith. Kodierung 1 1117 1242 1252 1241 1239 1599 2 1249 1980 1998 1981 1984 2548 4 910 988 974 985 960 1201 13 1026 1096 1111 1095 1098 1350 14 1111 1278 1291 1276 1279 1668 Now the five different entropy coding methods will be compared. To this end, tables of all the residual signal signal generation methods present in the overall system are created, and the data volume is averaged per block over the entire piece in bytes. The following table shows a comparison of different entropy coding methods applied to the residual signal of the LPC predictor. Piece no. Entropy sums up especially Rice coding ra Rice coding especially Golomb coding ra Golomb coding especially Arith. Coding 1 1117 1242 1252 1241 1239 1599 2 1249 1980 1998 1981 1984 2548 4 910 988 974 985 960 1201 13 1026 1096 1111 1095 1098 1350 14 1111 1278 1291 1276 1279 1668

Die folgende Tabelle zeigt einen Vergleich verschiedener Entropiekodierverfahren angewandt auf das Restsignal Vergleich verschiedener Entropiekodierverfahren angewandt auf das Restsignal des Fixed Predictors. Stück Nr. Entropie summiert v. a. Rice Kodierung r. a. Rice Kodierung v. a. Golomb Kodierung r. a. Golomb Kodierung v. a. Arith. Kodierung 1 1100 1243 1246 1241 1233 1599 2 1249 1982 1999 1983 1986 2543 4 908 1001 978 995 964 1218 13 989 1050 1111 1049 1052 1276 14 1140 1370 1381 1367 1370 1797 The following table shows a comparison of different entropy coding methods applied to the residual signal. Comparison of different entropy coding methods applied to the residual signal of the fixed predictor. Piece no. Entropy sums up especially Rice coding ra Rice coding especially Golomb coding ra Golomb coding especially Arith. Coding 1 1100 1243 1246 1241 1233 1599 2 1249 1982 1999 1983 1986 2543 4 908 1001 978 995 964 1218 13 989 1050 1111 1049 1052 1276 14 1140 1370 1381 1367 1370 1797

Die folgende Tabelle zeigt einen Vergleich verschiedener Entropiekodierverfahren angewandt auf das Restsignal einer mit dem Fixed Predictor dekorrelierten nicht Lehmer Inversionstafel LB Stück Nr. Entropie summiert v. a. Rice Kodierung r. a. Rice Kodierung v. a. Golomb Kodierung r. a. Golomb Kodierung v. a. Arith. Kodierung 1 674 705 677 698 665 780 2 1114 1241 1203 1237 1189 1603 4 683 767 764 755 721 833 13 659 687 670 680 656 754 14 856 922 907 914 883 1058 The following table shows a comparison of various entropy coding methods applied to the residual signal of a non-Lehmer inversion chart LB decorrelated with the fixed predictor Piece no. Entropy sums up especially Rice coding ra Rice coding especially Golomb coding ra Golomb coding especially Arith. Coding 1 674 705 677 698 665 780 2 1114 1241 1203 1237 1189 1603 4 683 767 764 755 721 833 13 659 687 670 680 656 754 14 856 922 907 914 883 1058

Die folgende Tabelle zeigt einen Vergleich verschiedener Entropiekodierverfahren angewandt auf das Restsignal der Differenzkodierung der sortierten Zeitwerte Stück Nr. Entropie summiert v. a. Rice Kodierung r. a. Rice Kodierung v. a. Golomb Kodierung r. a. Golomb Kodierung v. a. Arith. Kodierung 1 711 756 730 750 721 819 2 868 949 914 937 905 1051 4 471 547 487 528 476 540 13 610 660 624 653 615 694 14 605 678 622 665 613 697 The following table shows a comparison of different entropy coding methods applied to the residual signal of the difference coding of the sorted time values Piece no. Entropy sums up especially Rice coding ra Rice coding especially Golomb coding ra Golomb coding especially Arith. Coding 1 711 756 730 750 721 819 2 868 949 914 937 905 1051 4 471 547 487 528 476 540 13 610 660 624 653 615 694 14 605 678 622 665 613 697

Bildet man aus den obigen Tabellen die aufgerundeten arithmetischen Mittelwerte, so ergibt sich folgende Tabelle Entropie summiert 903 r. a. Golomb Kodierung 1031 r. a. Rice Kodierung 1045 v. a. Golomb Kodierung 1052 v. a. Rice Kodierung 1058 v. a. Arithmetische Kodierung 1282 If the rounded up arithmetic mean values are formed from the above tables, the following table results Entropy sums up 903 ra Golomb coding 1031 ra Rice coding 1045 especially Golomb coding 1052 especially Rice coding 1058 especially arithmetic coding 1282

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
In order to determine a suitable block size for an audio coding method, the following circumstances must always be taken into consideration:
  • • 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 41 ist das Ergebnis dieser Untersuchung dargestellt.In 41 is the result of this investigation.

41 zeigt eine Darstellung des Einflusses der Blockgröße auf den Kompressionsfaktor F. Deutlich ist zu erkennen, dass die Prädiktoren mit steigender Blocklänge einen besseren Kompressionsfaktor erzielen, wobei dies bei dem Fixed Predictor nicht so stark wie bei dem LPC Kodierverfahren ausgeprägt ist. Das nach dem Sorting Model arbeitende Dekorrelationsverfahren, hat ein Optimum bei einer Blocklänge von 1024 Abtastwerten. Da ein hoher Kompressionsfaktor bei einer möglichst kleinen Blocklänge erstrebenswert ist, wird im folgenden vorrangig eine Blocklänge von 1024 Abtastwerten verwendet. SOLO kann allerdings optional mit einer Blockänge von 256, 512 oder 2048 Abtastwerten betrieben werden. 41 shows a representation of the influence of the block size on the compression factor F. It can be clearly seen that the predictors with increasing block length achieve a better compression factor, which is not so pronounced in the fixed predictor as in the LPC coding method. The sorting model decorrelation method has an optimum at a block length of 1024 samples. Since a high compression factor is desirable with as small a block length as possible, a block length of 1024 samples is primarily used in the following. However, SOLO can optionally be operated with a block length of 256, 512 or 2048 samples.

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 M = NINT(L + R2 ) = NINT(5 + 42 ) = NINT(4,5) = 4. Here we get M = NINT ( L + R 2 ) = NINT ( 5 + 4 2 ) = NINT (4,5) = 4.

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 S = L – R M = NINT(S2 ) + R This information is still contained in the side channel S = L - R = 5 - 4 = 1. A lossy rounding of M has always occurred when S is odd. This must be taken into account when decoding. However, this just described possibility of correcting the center channel can be avoided if M is generated from R and S. S = L - R M = NINT ( S 2 ) + R

Grafisch lässt sich die Gleichung wie in 42 darstellen. 42 zeigt eine Darstellung zur verlustlosen MS-Enkodierung. Die MS-Dekodierung invertiert die Berechnungsvorschrift der MS-Enkodierung und generiert aus M und S wieder den rechten Kanal R und den linken Kanal L R = M – NINT(S2 ) L = S + R Graphically, the equation can be like in 42 represent. 42 shows a representation for lossless MS encoding. The MS decoding inverts the calculation rule of the MS encoding and generates from M and S again the right channel R and the left channel L R = M - NINT ( S 2 ) L = S + R

Eine grafische Darstellung der Gleichung ist in 43 gezeigt. 43 zeigt eine weitere Darstellung zur verlustlosen MS-Enkodierung.A graphical representation of the equation is in 43 shown. 43 shows a further illustration of the lossless MS encoding.

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
In addition to MS coding, LSO and RS coding for stereo-redundancy reduction should also be used within SOLO. Thus there are a total of four variants for the coding of stereo signals:
  • 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. 44). 44 zeigt eine Illustration zur Auswahl einer besten Variante zur Stereoredundanzreduktion.Another possibility would be to process L, R, M and S completely, and to decide which bit variant to use according to the bit consumption. Here you need more memory and computing time, but can certainly always select the cheapest option. In the following, only the second option is used (s. 44 ). 44 shows an illustration to select a best variant for stereo reduction reduction.

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 44 dargestellt. Stück Nr. L R S M LR LS RS MS Beste Variante 16 (L = R) 9.64 9.64 0 9.64 19.28 9.64 9.64 9.64 9.64 17 9.64 9.62 9.55 9.63 19.26 19.19 19.17 19.18 19.16 18 8.74 8.77 7.62 8.74 17.51 16.36 16.39 16.36 16.34 19 7.79 7.84 4.32 7.83 15.63 12.11 12.16 12.15 12.10 20 8.29 8.30 5.07 8.30 16.59 13.36 13.37 13.37 13.35 27 9.18 9.18 9.23 9.11 18.36 18.41 18.41 18.34 18.32 28 9.36 9.38 9.41 9.33 18.74 18.77 18.79 18.74 18.72 29 9.12 9.10 9.15 9.07 18.22 18.27 18.25 18.22 18.20 A study will now show what this procedure does for stereo signals. The following table compares the average entropy over the entire piece of the different variants. A block length of 1024 time values per channel was used throughout. In the last column (best variant), the mean entropy of the procedure is 44 shown. Piece no. L R S M LR LS RS MS Best variant 16 (L = R) 9.64 9.64 0 9.64 19:28 9.64 9.64 9.64 9.64 17 9.64 9.62 9:55 9.63 19:26 19:19 19:17 19:18 19:16 18 8.74 8.77 7.62 8.74 17:51 16:36 16:39 16:36 16:34 19 7.79 7.84 4:32 7.83 15.63 12:11 12:16 12:15 12:10 20 8.29 8.30 5:07 8.30 16:59 13:36 13:37 13:37 13:35 27 9.18 9.18 9.23 9.11 18:36 18:41 18:41 18:34 18:32 28 9:36 9:38 9:41 9:33 18.74 18.77 18.79 18.74 18.72 29 9.12 9.10 9.15 9:07 18:22 18:27 18:25 18:22 18:20

Am gewinnbringensten ist das Vorgehen nach 44 bei Stereosignalen mit identischen Kanälen. Bei stark monohaftigen Sprachstücken wie nützt die vorgestellte Stereoredundanzreduktion viel, wohingegen bei normalen Musikstücken wie 17, 27, 28 und 29 zwischen der LR-Kodierung und der Auswahl der besten Variante nur ein sehr geringer Kodiergewinn erzielt wird.The most profitable is the procedure after 44 for stereo signals with identical channels. For strongly monophonic pieces of speech, how does the presented stereo-redundancy reduction benefit much, whereas for normal pieces of music such as 17, 27, 28 and 29, only a very small coding gain is achieved between the LR-coding and the selection of the best variant.

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)

Vorrichtung (100) zum Kodieren einer Sequenz von Abtastwerten eines Audiosignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Merkmalen: einer Einrichtung (110) zum Sortieren der Abtastwerte nach ihrer Größe, um eine sortierte Sequenz von Abtastwerten zu erhalten, wobei jeder Abtastwert eine Sortierungsposition innerhalb der sortierten Sequenz aufweist; und einer Einrichtung (120) zum Kodieren der sortierten Abtastwerte und einer Information über eine Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte, wobei die Einrichtung (120) zum Kodieren ausgebildet ist, um basierend auf einer Permutation oder einer Inversionstafel Koeffizienten eines Prädiktionsfilters zu bestimmen und zu kodieren.Contraption ( 100 ) for encoding a sequence of samples of an audio signal, each sample within the sequence having an origin position, comprising: means ( 110 ) for sorting the samples by size to obtain a sorted sequence of samples, each sample having a sorting position within the sorted sequence; and a facility ( 120 ) for encoding the sorted samples and information about a relationship between the source and sort positions of the samples, the device ( 120 ) is adapted to code to determine and encode coefficients of a prediction filter based on a permutation or an inversion table. Vorrichtung (100) gemäß Anspruch 1, die ferner eine Vorverarbeitungseinrichtung aufweist, die ausgebildet ist, um eine Filterung, eine Zeit-/Frequenz-Transformation, eine Prädiktion oder eine Multikanalredundanzreduktion zur Erzeugung der Sequenz von Abtastwerten durchzuführen.Contraption ( 100 ) according to claim 1, further comprising preprocessing means configured to perform filtering, time / frequency transformation, prediction or multi-channel redundancy reduction for generating the sequence of samples. Vorrichtung (100) gemäß einem der Ansprüche 1 oder 2, bei der die Einrichtung (120) zum Kodieren ausgebildet ist, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Indexpermutation zu kodieren.Contraption ( 100 ) according to one of claims 1 or 2, in which the device ( 120 ) is adapted to code to encode the information about the relationship between the source and sort positions as an index permutation. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 3, bei der die Einrichtung (120) zum Kodieren ausgebildet ist, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Inversionstafel zu kodieren.Contraption ( 100 ) according to one of claims 1 to 3, in which the device ( 120 ) is adapted to code to encode the information about the relationship between the originating and sorting positions as an inversion chart. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 4, bei der die Einrichtung (120) zum Kodieren ausgebildet ist, um die sortierten Abtastwerte oder die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen mit einer Differenz- und anschließender Entropiekodierung oder nur einer Entropiekodierung zu kodieren.Contraption ( 100 ) according to one of claims 1 to 4, in which the device ( 120 ) is adapted to code to encode the sorted samples or the information on the relationship between the source and sort positions with difference and subsequent entropy coding or only entropy coding. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 5, bei der die Einrichtung (120) zum Kodieren ausgebildet ist, um basierend auf den sortierten Abtastwerten Koeffizienten eines Prädiktionsfilters zu bestimmen und zu kodieren.Contraption ( 100 ) according to one of claims 1 to 5, in which the device ( 120 ) is adapted to be coded to determine and to code coefficients of a prediction filter based on the sorted samples. Vorrichtung (100) gemäß Anspruch 6, bei der die Einrichtung (120) zum Kodieren ausgebildet ist, um ein Restsignal, das einer Differenz zwischen den Abtastwerten und einem Ausgangssignal des Prädiktionsfilters entspricht, zu kodieren.Contraption ( 100 ) according to claim 6, wherein the device ( 120 ) for coding to code a residual signal corresponding to a difference between the samples and an output of the prediction filter. Vorrichtung (100) gemäß Anspruch 7, bei der die Einrichtung (120) zum Kodieren ausgebildet ist, um das Restsignal mit einer Entropiekodierung zu kodieren.Contraption ( 100 ) according to claim 7, wherein the device ( 120 ) is adapted to code to encode the residual signal with an entropy coding. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 8, die ferner eine Einrichtung zum Einstellen von Funktionskoeffizienten einer Funktionsvorschrift zur Anpassung der Funktionsvorschrift an zumindest einen Teilbereich der sortierten Sequenz aufweist und bei der die Einrichtung (120) zum Kodieren ausgebildet ist, um die Funktionskoeffizienten zu kodieren.Contraption ( 100 ) according to one of claims 1 to 8, further comprising means for setting functional coefficients of a functional rule for adapting the functional specification to at least a portion of the sorted sequence, and wherein the device ( 120 ) is adapted to code to code the function coefficients. Verfahren zum Kodieren einer Sequenz von Abtastwerten eines Audiosignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Schritten: Sortieren der Abtastwerte nach ihrer Größe, um eine sortierte Sequenz von Abtastwerten zu erhalten, wobei jeder Abtastwert eine Sortierungsposition innerhalb der sortierten Sequenz aufweist; und Kodieren der sortierten Abtastwerte und einer Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte basierend auf Koeffizienten eines Prädiktionsfilters einer Permutation oder einer Inversionstafel.Method for coding a sequence of samples an audio signal, each sample within the sequence has an originating position, with the following steps: sort by the samples according to their size, by one assorted sequence of samples, each sample has a sorting position within the sorted sequence; and Encoding the sorted samples and information about the Relationship between the origin and sorting positions of the Samples based on coefficients of a prediction filter of a permutation or an inversion board. Computerprogramm mit einem Programmcode zur Ausführung des Verfahrens gemäß Anspruch 10, wenn das Computerprogramm auf einem Computer abläuft.Computer program with a program code for executing the Process according to claim 10, when the computer program runs on a computer. Vorrichtung (150) zum Dekodieren einer Sequenz von Abtastwerten eines Audiosignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Merkmalen: einer Einrichtung (160) zum Empfangen einer Sequenz von kodierten Abtastwerten, wobei jeder kodierte Abtastwert innerhalb der Sequenz von kodierten Abtastwerten eine Sortierungsposition aufweist und zum Empfangen einer Information über eine Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte; einer Einrichtung (170) zum Dekodieren der Abtastwerte und der Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen basierend auf kodierten Koeffizienten eines Prädiktionsfilters zum Bestimmen einer Permutation oder einer Inversionstafel; und einer Einrichtung (180) zum Umsortieren der Abtastwerte basierend auf der Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen, so dass jeder Abtastwert seine Ursprungsposition aufweist.Contraption ( 150 ) for decoding a sequence of samples of an audio signal, each sample within the sequence having an origin position, comprising: means ( 160 ) for receiving a sequence of encoded samples, each encoded sample having a sorting position within the sequence of encoded samples, and for receiving information about a relationship between the source and sort positions of the samples; a facility ( 170 ) for decoding the samples and the information about the relationship between the original and sort positions based on coded coefficients of a prediction filter to determine a permutation or an inversion table; and a facility ( 180 ) for resorting the samples based on the information on the relationship between the source and sort positions so that each sample has its origin position. Vorrichtung (150) gemäß Anspruch 12, bei der die Einrichtung (160) zum Empfangen ausgebildet ist, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Indexpermutation zu empfangen.Contraption ( 150 ) according to claim 12, wherein the device ( 160 ) is adapted to receive the information about the relationship between the source and sort positions as an index permutation. Vorrichtung (150) gemäß Anspruch 13, bei der die Einrichtung (160) zum Empfangen ausgebildet ist, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Inversionstafel zu empfangen.Contraption ( 150 ) according to claim 13, in which the device ( 160 ) for receiving to receive the information about the relationship between the originating and sorting positions as the inversion chart. Vorrichtung (150) gemäß einem der Ansprüche 12 bis 14, bei der die Einrichtung (170) zum Dekodieren ausgebildet ist, um die kodierten Abtastwerte oder die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen mit einer Entropie- und anschließender Differenzdekodierung oder nur einer Enttopiedekodierung zu dekodieren.Contraption ( 150 ) according to one of claims 12 to 14, in which the device ( 170 ) for decoding to decode the coded samples or the information on the relationship between the original and sort positions with an entropy and then difference decoding or only a de-copy decoding. Vorrichtung (150) gemäß einem der Ansprüche 12 bis 15, bei der die Einrichtung (160) zum Empfangen ausgebildet ist, um kodierte Koeffizienten eines Prädiktionsfilters zu empfangen und die Einrichtung (170) zum Dekodieren ausgebildet ist, um die kodierten Koeffizienten zu dekodieren, wobei die Vorrichtung (150) ferner eine Einrichtung zum Prädizieren von Abtastwerten basierend auf den Koeffizienten aufweist.Contraption ( 150 ) according to one of claims 12 to 15, in which the device ( 160 ) is adapted to receive coded coefficients of a prediction filter and the device ( 170 ) for decoding to decode the coded coefficients, the device ( 150 ) further comprises means for predicting samples based on the coefficients. Vorrichtung (150) gemäß Anspruch 16, bei der die Einrichtung (160) zum Empfangen ausgebildet ist, um ferner ein Restsignal, das einer Differenz zwischen den Abtastwerten und einem Ausgangssignal des Prädiktionsfilters entspricht, zu empfangen und die Einrichtung (170) zum Dekodieren ferner ausgebildet ist, um basierend auf dem Restsignal die Abtastwerte anzupassen.Contraption ( 150 ) according to claim 16, in which the device ( 160 ) is adapted to receive further to receive a residual signal corresponding to a difference between the samples and an output of the prediction filter, and the means ( 170 ) is further adapted for decoding to adjust the samples based on the residual signal. Vorrichtung (150) gemäß Anspruch 17, bei der die Einrichtung (170) zum Dekodieren angepasst ist, um das Restsignal mit einer Entropiedekodierung zu dekodieren.Contraption ( 150 ) according to claim 17, wherein the device ( 170 ) is adapted for decoding to decode the residual signal with entropy decoding. Vorrichtung (150) gemäß einem der Ansprüche 12 bis 18, bei der die Einrichtung (160) zum Empfangen ferner ausgebildet ist, um Funktionskoeffizienten einer Funktionsvorschrift zu empfangen und wobei die Vorrichtung (150) ferner eine Einrichtung zum Anpassen einer Funktionsvorschrift an zumindest einen Teilbereich der sortierten Sequenz aufweist und die Einrichtung (170) zum Dekodieren ausgebildet ist, um die Funktionskoeffizienten zu dekodieren.Contraption ( 150 ) according to one of claims 12 to 18, in which the device ( 160 ) for receiving is further adapted to receive functional coefficients of a functional specification and wherein the device ( 150 ) further comprises means for adapting a functional rule to at least a portion of the sorted sequence and the device ( 170 ) is adapted for decoding to decode the function coefficients. Verfahren zum Dekodieren einer Sequenz von Abtastwerten eines Audiosignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Schritten: Empfangen einer Sequenz von kodierten Abtastwerten, wobei jeder kodierte Abtastwert innerhalb der Sequenz von kodierten Abtastwerten eine Sortierungsposition aufweist; Empfangen einer Information über eine Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte; Dekodieren der Abtastwerte und der Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen basierend auf kodierten Koeffizienten eines Prädiktionsfilters zum Bestimmen einer Permutation oder einer Inversionstafel; und Umsortieren der Abtastwerte basierend auf den Informationen über die Beziehung zwischen den Ursprungs- und Sortierungspositionen, so dass jeder Abtastwert seine Ursprungsposition aufweist.Method of decoding a sequence of samples an audio signal, each sample within the sequence has an originating position, with the following steps: Receive a sequence of coded samples, each coded sample within the sequence of coded samples, a sorting position having; Receiving information about a relationship between the source and sort positions of the samples; Decode the samples and the information about the relationship between the source and sort positions based on coded Coefficients of a prediction filter for determining a permutation or inversion panel; and rearrange the samples based on the information about the relationship between the source and sort positions so that each sample has its original position. Computerprogramm mit einem Programmcode zur Ausführung des Verfahrens nach Anspruch 20, wenn der Programmcode auf einem Computer ausgeführt wird.Computer program with a program code for executing the The method of claim 20, when the program code is on a computer accomplished becomes. Vorrichtung (200) zum Kodieren einer Sequenz von Abtastwerten eines Informationssignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Merkmalen: einer Einrichtung (210) zum Sortieren der Abtastwerte nach ihrer Größe, um eine sortierte Sequenz von Abtastwerten zu erhalten, wobei jeder Abtastwert eine Sortierungsposition innerhalb der sortierten Sequenz aufweist; einer Einrichtung (220) zum Einstellen von Funktionskoeffizienten einer Funktionsvorschrift zur Anpassung der Funktionsvorschrift an einen Teilbereich der sortierten Sequenz; und einer Einrichtung (230) zum Kodieren der Funktionskoeffizienten, der Abtastwerte außerhalb des Teilbereichs und einer Information über eine Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte.Contraption ( 200 ) for encoding a sequence of samples of an information signal, each sample within the sequence having an origin position, comprising: means ( 210 ) for sorting the samples by size to obtain a sorted sequence of samples, each sample having a sorting position within the sorted sequence; a facility ( 220 ) for setting function coefficients of a functional specification for adapting the functional specification to a subarea of the sorted sequence; and a facility ( 230 ) for encoding the function coefficients, the samples outside the subarea, and information about a relationship between the origin and sort positions of the samples. Vorrichtung (200) gemäß Anspruch 22, die ferner eine Vorverarbeitungseinrichtung aufweist, die ausgebildet ist, um eine Filterung, eine Zeit-/Frequenz-Transformation, eine Prädiktion oder eine Multikanal redundanzreduktion zur Erzeugung der Sequenz von Abtastwerten durchzuführen.Contraption ( 200 ) according to claim 22, further comprising preprocessing means configured to filter, time / frequency transform, predict or multichannel danzreduktion to generate the sequence of samples to perform. Vorrichtung (200) gemäß einem der Ansprüche 22 oder 23, bei der das Informationssignal ein Audiosignal umfasst.Contraption ( 200 ) according to one of claims 22 or 23, wherein the information signal comprises an audio signal. Vorrichtung (200) gemäß einem der Ansprüche 22 bis 24, bei der die Einrichtung (230) zum Kodieren ausgebildet ist, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Indexpermutation zu kodieren.Contraption ( 200 ) according to one of claims 22 to 24, in which the device ( 230 ) is adapted to code to encode the information about the relationship between the source and sort positions as an index permutation. Vorrichtung (200) gemäß einem der Ansprüche 22 bis 25, bei der die Einrichtung (230) zum Kodieren ausgebildet ist, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Inversionstafel zu kodieren.Contraption ( 200 ) according to one of claims 22 to 25, in which the device ( 230 ) is adapted to code to encode the information about the relationship between the originating and sorting positions as an inversion chart. Vorrichtung (200) gemäß einem der Ansprüche 22 bis 26, bei der die Einrichtung (220) zum Kodieren ausgebildet ist, um die sortierten Abtastwerte, die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen mit einer Differenz- und anschließender Entropiekodierung oder nur einer Entropiekodierung zu kodieren.Contraption ( 200 ) according to one of claims 22 to 26, in which the device ( 220 ) is adapted to code to encode the sorted samples, the information on the relationship between the source and sort positions with difference and subsequent entropy coding or only entropy coding. Vorrichtung (200) gemäß einem der Ansprüche 22 bis 27, bei der die Einrichtung (230) zum Kodieren ausgebildet ist, um basierend auf den Abtastwerten, einer Permutation oder einer Inversionstafel Koeffizienten eines Prädiktionsfilters zu bestimmen und zu kodieren.Contraption ( 200 ) according to one of claims 22 to 27, in which the device ( 230 ) is adapted to code to determine and encode coefficients of a prediction filter based on the samples, a permutation or an inversion table. Vorrichtung (200) gemäß Anspruch 28, bei der die Einrichtung (230) zum Kodieren ferner ausgebildet ist, um ein Restsignal, das einer Differenz zwischen den Abtastwerten und einem Ausgangssignal eines Prädiktionsfilters entspricht, zu kodieren.Contraption ( 200 ) according to claim 28, wherein the device ( 230 ) for encoding is further configured to encode a residual signal corresponding to a difference between the samples and an output of a prediction filter. Vorrichtung (200) gemäß Anspruch 29, bei der die Einrichtung (230) zum Kodieren ausgebildet ist, um das Restsignal mit einer Entropiekodierung zu kodieren.Contraption ( 200 ) according to claim 29, wherein the device ( 230 ) is adapted to code to encode the residual signal with an entropy coding. Verfahren zum Kodieren einer Sequenz von Abtastwerten eines Informationssignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Schritten: Sortieren der Abtastwerte nach ihrer Größe, um eine sortierte Sequenz von Abtastwerten zu erhalten, wobei jeder Abtastwert eine Sortierungsposition innerhalb der sortierten Sequenz aufweist; Einstellen von Funktionskoeffizienten einer Funktionsvorschrift zur Anpassung der Funktionsvorschrift an einen Teilbereich der sortierten Sequenz; und Kodieren der Funktionskoeffizienten, der Abtastwerte außerhalb des Teilbereichs und einer Information über eine Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte.Method for coding a sequence of samples an information signal, each sample within the Sequence has an origin position, with the following steps: sort by the samples according to their size, by one assorted sequence of samples, each sample has a sorting position within the sorted sequence; To adjust of function coefficients of a function rule for adaptation the functional specification to a subarea of the sorted sequence; and coding the function coefficients, the samples outside of the subarea and information about a relationship between the source and sort positions of the samples. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens gemäß Anspruch 31, wenn der Programmcode auf einem Computer ausgeführt wird.Computer program with a program code for carrying out the Process according to claim 31, when the program code is executed on a computer. Vorrichtung (250) zum Dekodieren einer Sequenz von Abtastwerten eines Informationssignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Merkmalen: einer Einrichtung (260) zum Empfangen von kodierten Funktionskoeffizienten, sortierten Abtastwerten und einer Information über eine Beziehung zwischen einer Sortierungsposition und der Ursprungsposition von Abtastwerten; einer Einrichtung (270) zum Dekodieren von Abtastwerten; einer Einrichtung (280) zum Approximieren von Abtastwerten basierend auf den Funktionskoeffizienten in einem Teilbereich der Sequenz; und einer Einrichtung (290) zum Umsortieren der Abtastwerte und des Teilbereiches basierend auf der Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen, so dass jeder Abtastwert seine Ursprungsposition aufweist.Contraption ( 250 ) for decoding a sequence of samples of an information signal, each sample within the sequence having an origin position, comprising: means ( 260 ) for receiving coded function coefficients, sorted samples and information about a relationship between a sort position and the origin position of samples; a facility ( 270 ) for decoding samples; a facility ( 280 ) for approximating samples based on the function coefficients in a portion of the sequence; and a facility ( 290 ) for reordering the samples and the subarea based on the information about the relationship between the source and sort positions so that each sample has its origin position. Vorrichtung (250) gemäß Anspruch 33, bei der das Informationssignal ein Audiosignal umfasst.Contraption ( 250 ) according to claim 33, wherein the information signal comprises an audio signal. Vorrichtung (250) gemäß einem der Ansprüche 33 oder 34, bei der die Einrichtung (260) zum Empfangen ausgebildet ist, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Indexpermutation zu empfangen.Contraption ( 250 ) according to one of claims 33 or 34, in which the device ( 260 ) is adapted to receive the information about the relationship between the source and sort positions as an index permutation. Vorrichtung (250) gemäß einem der Ansprüche 33 bis 35, bei der die Einrichtung (260) zum Empfangen ausgebildet ist, um die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen als Inversionstafel zu empfangen.Contraption ( 250 ) according to one of claims 33 to 35, in which the device ( 260 ) to receive is designed to receive the information about the relationship between the original and sorting positions as an inversion table. Vorrichtung (250) gemäß einem der Ansprüche 33 bis 36, bei der die Einrichtung (270) ferner ausgebildet ist, um die Funktionskoeffizienten, die sortierten Abtastwerte oder die Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen mit einer Entropie- und anschließender Differenzdekodierung oder nur einer Entropiedekodierung zu dekodieren.Contraption ( 250 ) according to one of claims 33 to 36, in which the device ( 270 ) is further adapted to decode the function coefficients, the sorted samples or the information about the relationship between the original and sorting positions with an entropy and subsequent difference decoding or only an entropy decoding. Vorrichtung (250) gemäß einem der Ansprüche 33 bis 37, bei die Einrichtung (260) zum Empfangen ausgebildet ist, um kodierte Koeffizienten eines Prädiktionsfilters zu empfangen und die Einrichtung (270) zum Dekodieren ausgebildet ist, um die kodierten Koeffizienten zu dekodieren, wobei die Vorrichtung (250) ferner eine Einrichtung zum Prädizieren von Abtastwerten basierend auf den Koeffizienten aufweist.Contraption ( 250 ) according to one of claims 33 to 37, wherein the device ( 260 ) is adapted to receive coded coefficients of a prediction filter and the device ( 270 ) for decoding to decode the coded coefficients, the device ( 250 ) further comprises means for predicting samples based on the coefficients. Vorrichtung (250) gemäß einem der Ansprüche 33 bis 38, bei der die Einrichtung (260) zum Empfangen ausgebildet ist, um ein Restsignal, das einer Differenz zwischen den Abtastwerten und einem Ausgangssignal des Prädiktionsfilters oder der Einrichtung (280) zum Approximieren entspricht, zu empfangen und die Einrichtung (270) zum Dekodieren ausgebildet ist, um basierend auf dem Restsignal die Abtastwerte anzupassen.Contraption ( 250 ) according to one of claims 33 to 38, in which the device ( 260 ) is adapted to receive a residual signal representing a difference between the samples and an output signal of the prediction filter or the device ( 280 ) to approximate, to receive and the device ( 270 ) is adapted for decoding to adjust the samples based on the residual signal. Vorrichtung (250) gemäß Anspruch 39, bei der die Einrichtung (270) zum Dekodieren ausgebildet ist, um das Restsignal mit einer Entropiedekodierung zu dekodieren.Contraption ( 250 ) according to claim 39, wherein the device ( 270 ) is adapted to decode to decode the residual signal with an entropy decoding. Verfahren zum Dekodieren einer Sequenz von Abtastwerten eines Informationssignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Schritten: Empfangen von kodierten Funktionskoeffizienten, sortierten Abtastwerten und einer Information über eine Beziehung zwischen einer Sortierungsposition und der Ursprungsposition von Abtastwerten; Dekodieren von Abtastwerten; Approximieren von Abtastwerten basierend auf den Funktionskoeffizienten in einem Teilbereich der Sequenz; und Umsortieren der Abtastwerte und des Teilbereiches basierend auf der Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen, so dass jeder Abtastwert seine Ursprungsposition aufweist.Method of decoding a sequence of samples an information signal, each sample within the Sequence has an origin position, with the following steps: Receive coded function coefficients, sorted samples and an information about a relationship between a sorting position and the originating position of samples; Decoding samples; approximate of samples based on the function coefficients in one Subregion of the sequence; and Resorting to the samples and of the subarea based on the information about the relationship between the source and sort positions so that each sample has its original position. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens gemäß Anspruch 41, wenn der Programmcode auf einem Computer ausgeführt wird.Computer program with a program code for carrying out the Process according to claim 41, when the program code is executed on a computer. Vorrichtung (300) zum Kodieren einer Sequenz von Abtastwerten eines Informationssignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Merkmalen: einer Einrichtung (310) zum Sortieren der Abtastwerte nach ihrer Größe, um eine sortierte Sequenz von Abtastwerten zu erhalten, wobei jeder Abtastwert eine Sortierungsposition innerhalb der sortierten Sequenz aufweist; einer Einrichtung (320) zum Erzeugen einer Zahlenfolge abhängig von einer Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte und zum Bestimmen von Koeffizienten eines Prädiktionsfilters basierend auf der Zahlenfolge; und einer Einrichtung (330) zum Kodieren der sortierten Abtastwerte und der Koeffizienten.Contraption ( 300 ) for encoding a sequence of samples of an information signal, each sample within the sequence having an origin position, comprising: means ( 310 ) for sorting the samples by size to obtain a sorted sequence of samples, each sample having a sorting position within the sorted sequence; a facility ( 320 ) for generating a sequence of numbers depending on a relationship between the original and sort positions of the samples and for determining coefficients of a prediction filter based on the sequence of numbers; and a facility ( 330 ) for encoding the sorted samples and the coefficients. Vorrichtung (300) gemäß Anspruch 43, die ferner eine Vorverarbeitungseinrichtung aufweist, die ausgebildet ist, um eine Filterung, eine Zeit-/Frequenz-Transformation, eine Prädiktion oder eine Multikanalredundanzreduktion zur Erzeugung der Sequenz von Abtastwerten durchzuführen.Contraption ( 300 ) according to claim 43, further comprising preprocessing means configured to perform filtering, time / frequency transform, prediction or multi-channel redundancy reduction to generate the sequence of samples. Vorrichtung (300) gemäß einem der Ansprüche 43 oder 44, bei der das Informationssignal ein Audiosignal aufweist.Contraption ( 300 ) according to one of claims 43 or 44, wherein the information signal comprises an audio signal. Vorrichtung (300) gemäß einem der Ansprüche 43 bis 45, bei der die Einrichtung (320) zum Erzeugen der Zahlenfolge ausgebildet ist, um eine Indexpermutation zu erzeugen.Contraption ( 300 ) according to one of claims 43 to 45, in which the device ( 320 ) is configured to generate the sequence of numbers to produce an index permutation. Vorrichtung (300) gemäß einem der Ansprüche 43 bis 46, bei der die Einrichtung (320) zum Erzeugen der Zahlenfolge ausgebildet ist, um eine Inversionstafel zu erzeugen.Contraption ( 300 ) according to one of claims 43 to 46, in which the device ( 320 ) for generating the sequence of numbers is formed to produce an inversion panel. Vorrichtung (300) gemäß einem der Ansprüche 43 bis 47, bei der die Einrichtung (320) zum Erzeugen der Zahlenfolge ausgebildet ist, um ferner ein Restsignal zu erzeugen, das einer Differenz zwischen der Zahlenfolge und einer auf der Basis der Koeffizienten prädizierten Prädiktionsfolge entspricht.Contraption ( 300 ) according to one of claims 43 to 47, in which the device ( 320 ) for generating the sequence of numbers for further generating a residual signal corresponding to a difference between the sequence of numbers and a prediction order predicted on the basis of the coefficients. Vorrichtung (300) gemäß einem der Ansprüche 43 bis 48, bei der die Einrichtung (330) zum Kodieren angepasst ist, um die sortierten Abtastwerte oder die Koeffizienten gemäß einer Differenz- oder Entropiekodierung zu kodieren.Contraption ( 300 ) according to one of claims 43 to 48, in which the device ( 330 ) is adapted for coding to encode the sorted samples or the coefficients according to difference or entropy coding. Vorrichtung (300) gemäß einem der Ansprüche 48 oder 49, bei der die Einrichtung (330) zum Kodieren ferner ausgebildet ist, um das Restsignal zu kodieren.Contraption ( 300 ) according to one of claims 48 or 49, in which the device ( 330 ) for encoding is further adapted to code the residual signal. Verfahren zum Kodieren einer Sequenz von Abtastwerten eines Informationssignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Schritten: Sortieren der Abtastwerte nach ihrer Größe, um eine sortierte Sequenz von Abtastwerten zu erhalten, wobei jeder Abtastwert eine Sortierungsposition innerhalb der sortierten Sequenz aufweist; Erzeugen einer Zahlenfolge abhängig von einer Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte und Bestimmen von Koeffizienten eines Prädiktionsfilters basierend auf der Zahlenfolge; und Kodieren der sortierten Abtastwerte und der Koeffizienten.Method for coding a sequence of samples an information signal, each sample within the Sequence has an origin position, with the following steps: sort by the samples according to their size, by one assorted sequence of samples, each sample has a sorting position within the sorted sequence; Produce dependent on a sequence of numbers a relationship between the source and sort items sampling and determining coefficients of a prediction filter based on the sequence of numbers; and Encoding the sorted ones Samples and the coefficients. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens gemäß Anspruch 51, wenn der Programmcode auf einem Computer ausgeführt wird.Computer program with a program code for carrying out the Process according to claim 51, when the program code is executed on a computer. Vorrichtung (350) zum Dekodieren einer Sequenz von Abtastwerten eines Informationssignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Merkmalen: einer Einrichtung (360) zum Empfangen von Koeffizienten eines Prädiktionsfilters und von einer Sequenz von Abtastwerten, wobei jeder Abtastwert eine Sortierungsposition aufweist; einer Einrichtung (370) zum Prädizieren einer Zahlenfolge basierend auf den Koeffizienten; und einer Einrichtung (380) zum Umsortieren der Sequenz von Abtastwerten basierend auf der Zahlenfolge, so dass jeder Abtastwert seine Ursprungsposition aufweist.Contraption ( 350 ) for decoding a sequence of samples of an information signal, each sample within the sequence having an origin position, comprising: means ( 360 ) for receiving coefficients of a prediction filter and a sequence of samples, each sample having a sort position; a facility ( 370 ) for predicting a sequence of numbers based on the coefficients; and a facility ( 380 ) for reordering the sequence of samples based on the sequence of numbers such that each sample has its original position. Vorrichtung (350) gemäß Anspruch 53, bei der das Informationssignal ein Audiosignal aufweist.Contraption ( 350 ) according to claim 53, wherein the information signal comprises an audio signal. Vorrichtung (350) gemäß einem der Ansprüche 53 oder 54, bei der die Einrichtung (370) zum Prädizieren der Zahlenfolge eine Indexpermutation als Zahlenfolge prädiziert.Contraption ( 350 ) according to one of claims 53 or 54, in which the device ( 370 ) predicates an index permutation as a sequence of numbers to predict the sequence of numbers. Vorrichtung (350) gemäß einem der Ansprüche 53 bis 55, bei der die Einrichtung (370) zum Prädizieren der Zahlenfolge eine Inversionstafel als Zahlenfolge prädiziert.Contraption ( 350 ) according to one of claims 53 to 55, in which the device ( 370 ) predicts an inversion chart as a sequence of numbers to predict the sequence of numbers. Vorrichtung (350) gemäß einem der Ansprüche 53 bis 56, bei der die Einrichtung (360) zum Empfangen ferner ausgebildet ist, um ein kodiertes Restsignal zu empfangen und die Einrichtung (370) zum Prädizieren ausgebildet ist, um das Restsignal bei der Prädiktion der Zahlenfolge zu berücksichtigen.Contraption ( 350 ) according to one of claims 53 to 56, in which the device ( 360 ) for receiving is further adapted to receive a coded residual signal and the device ( 370 ) is designed for prediction to take into account the residual signal in the prediction of the sequence of numbers. Vorrichtung (350) gemäß einem der Ansprüche 53 bis 57, die ferner eine Einrichtung zum Dekodieren aufweist, die ausgebildet ist, um Abtastwerte, Restsignale oder Koeffizienten nach einer Differenz- oder Entropiekodierung zu dekodieren.Contraption ( 350 ) according to one of claims 53 to 57, further comprising means for decoding configured to decode samples, residual signals or coefficients after difference or entropy coding. Verfahren zum Dekodieren einer Sequenz von Abtastwerten eines Informationssignals, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Schritten: Empfangen von Koeffizienten eines Prädiktionsfilters und von einer Sequenz von Abtastwerten, wobei jeder Abtastwert eine Sortierungsposition aufweist; Prädizieren einer Zahlenfolge basierend auf den Koeffizienten; und Umsortieren der Sequenz von Abtastwerten basierend auf der Zahlenfolge, so dass jeder Abtastwert seine Ursprungsposition aufweist.Method of decoding a sequence of samples an information signal, each sample within the Sequence has an origin position, with the following steps: Receive of coefficients of a prediction filter and a sequence of samples, each sample one Has sorting position; Predicting a sequence of numbers based on the coefficients; and Resorting to the sequence of samples based on the sequence of numbers so that each sample has its original position. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens gemäß Anspruch 59, wenn der Programmcode auf einem Computer ausgeführt wird.Computer program with a program code for carrying out the Process according to claim 59, when the program code is executed on a computer. Vorrichtung (400) zum Kodieren einer Sequenz von Abtastwerten, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Merkmalen: einer Einrichtung (410) zum Sortieren der Abtastwerte nach ihrer Größe, um eine sortierte Sequenz von Abtastwerten zu erhalten, wobei jeder Abtastwert eine Sortierungsposition innerhalb der sortierten Sequenz aufweist; und einer Einrichtung (420) zum Kodieren der sortierten Abtastwerte und zum Kodieren einer Zahlenfolge mit einer Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte, wobei jedes Element innerhalb der Zahlenfolge einzigartig ist, und wobei die Einrichtung (420) zum Kodieren einem Element der Zahlenfolge eine Anzahl von Bits zuordnet, derart, dass die Anzahl von Bits, die einem ersten Element zuggeordnet wird, größer ist als die Anzahl von Bits, die einem zweiten Element zugeordnet wird, wenn vor der Kodierung des ersten Elements weniger Elemente bereits kodiert waren, als vor der Kodierung des zweiten Elements.Contraption ( 400 ) for encoding a sequence of samples, each sample within the sequence having an origin position, comprising: means ( 410 ) for sorting the samples by size to obtain a sorted sequence of samples, each sample having a sorting position within the sorted sequence; and a facility ( 420 ) for encoding the sorted samples and encoding a sequence of numbers with a Information about the relationship between the original and sorting positions of the samples, each element unique within the sequence of numbers, and wherein the device ( 420 ) assigns a number of bits to an element of the number sequence such that the number of bits allocated to a first element is greater than the number of bits allocated to a second element if prior to the coding of the first element fewer elements were already coded than before the coding of the second element. Vorrichtung (400) gemäß Anspruch 61, bei der die Einrichtung (420) zum Kodieren ausgebildet ist, um eine Zahlenfolge der Länge N zu kodieren und um eine Anzahl von X Elementen gleichzeitig zu kodieren, wobei der Anzahl von X Elementen G Bits zugeordnet werden gemäß,
Figure 00970001
Contraption ( 400 ) according to claim 61, wherein the device ( 420 ) is adapted to code to encode a number sequence of length N and to encode a number of X elements simultaneously, the number of X elements being assigned to G bits according to,
Figure 00970001
Vorrichtung (400) gemäß Anspruch 61, bei der die Einrichtung (420) zum Kodieren ausgebildet ist, um eine Zahlenfolge der Länge N zu kodieren, wobei X eine Anzahl bereits kodierter Elemente der. Zahlenfolge ist, wobei der dem nächsten Element der Zahlenfolge G Bits zugeordnet werden gemäß, G = ⌈log2(N – X)⌉ mit 0 ≤ X < N. Contraption ( 400 ) according to claim 61, wherein the device ( 420 ) is adapted to code to encode a number sequence of length N, where X is a number of already encoded elements of the. Number sequence is where the next element of the sequence of numbers G bits are assigned according to, G = ⌈log 2 (N - X) ⌉ with 0 ≤ X <N. Verfahren zum Kodieren einer Sequenz von N-Abtastwerten, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Schritten: Sortieren der Abtastwerte nach ihrer Größe, um eine sortierte Sequenz von Abtastwerten zu erhalten, wobei jeder Abtastwert eine Sortierungsposition innerhalb der sortierten Sequenz aufweist; Kodieren der sortierten Abtastwerte; und Kodieren einer Zahlenfolge mit einer Information über die Beziehung zwischen den Ursprungs- und Sortierungspositionen der Abtastwerte, wobei jedes Element innerhalb der Zahlenfolge einzigartig ist, und wobei die beim Kodieren einem Element der Zahlenfolge eine Anzahl von Bits zuordnet wird, derart, dass die Anzahl von Bits, die einem ersten Element zuggeordnet wird, größer ist als die Anzahl von Bits, die einem zweiten Element zugeordnet wird, wenn vor der Kodierung des ersten Elements weniger Elemente bereits kodiert waren, als vor der Kodierung des zweiten Elements.Method for coding a sequence of N samples, wherein each sample within the sequence has an origin position, with the following steps: Sort the samples according to theirs Size to one assorted sequence of samples, each sample has a sorting position within the sorted sequence; Encode the sorted samples; and Coding a sequence of numbers with information about the relationship between the source and sort items the samples, each element unique within the sequence of numbers is, and wherein the coding of an element of the sequence of numbers a Number of bits, such that the number of bits, that is assigned to a first element is greater than the number of Bits assigned to a second element if before coding of the first element fewer elements were already encoded than before the coding of the second element. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens gemäß Anspruch 64, wenn der Programmcode auf einem Computer ausgeführt wird.Computer program with a program code for carrying out the Process according to claim 64, if the program code is run on a computer. Vorrichtung (450) zum Dekodieren einer Sequenz von Abtastwerten, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Merkmalen: einer Einrichtung (460) zum Empfangen einer kodierten Zahlenfolge und einer Sequenz von Abtastwerten, wobei jeder Abtastwert eine Sortierungsposition aufweist; einer Einrichtung (470) zum Dekodieren einer dekodierten Zahlenfolge mit einer Information über eine Beziehung zwischen den Ursprungs- und Sortierungspositionen basierend auf der kodierten Zahlenfolge, wobei jedes Element innerhalb der dekodierten Zahlenfolge einzigartig ist und die Einrichtung (470) zum Dekodieren einem Element der Zahlenfolge eine Anzahl von Bits zuordnet, derart, dass die Anzahl von Bits, die einem ersten Element zuggeordnet wird, größer ist als die Anzahl von Bits, die einem zweiten Element zugeordnet wird, wenn vor der Dekodierung des ersten Elements weniger Elemente bereits dekodiert waren, als vor der Kodierung des zweiten Elements; und einer Einrichtung (480) zum Umsortieren der Sequenz von Abtastwerten basierend auf der dekodierten Zahlenfolge, so dass jeder Abtastwert innerhalb der dekodierten Sequenz seine Ursprungsposition aufweist.Contraption ( 450 ) for decoding a sequence of samples, each sample within the sequence having an origin position, comprising: means ( 460 ) for receiving a coded sequence of numbers and a sequence of samples, each sample having a sorting position; a facility ( 470 ) for decoding a decoded number sequence with information about a relationship between the original and sort positions based on the encoded sequence of numbers, each element unique within the decoded sequence of numbers, and the device ( 470 ) for decoding assigns a number of bits to an element of the sequence of numbers such that the number of bits allocated to a first element is greater than the number of bits allocated to a second element if prior to the decoding of the first element fewer elements were already decoded than before the encoding of the second element; and a facility ( 480 ) for reordering the sequence of samples based on the decoded number sequence so that each sample within the decoded sequence has its original position. Vorrichtung (450) gemäß Anspruch 66, bei der die Einrichtung (470) zum Dekodieren ausgebildet ist, um eine Zahlenfolge der Länge N zu dekodieren und um eine Anzahl von X Elementen gleichzeitig zu dekodieren, wobei der Anzahl von X Elementen G Bits zugeordnet werden gemäß,
Figure 00990001
Contraption ( 450 ) according to claim 66, wherein the device ( 470 ) is adapted to decode a number sequence of length N and to simultaneously decode a number of X elements, wherein the number of X elements are assigned to G bits according to,
Figure 00990001
Vorrichtung (450) gemäß Anspruch 66, bei der die Einrichtung (470) zum Dekodieren ausgebildet ist, um eine Zahlenfolge der Länge N zu dekodieren, wobei X eine Anzahl bereits kodierter Elemente der Zahlenfolge ist, wobei der dem nächsten Element der Zahlenfolge G Bits zugeordnet werden gemäß, G = ⌈log2(N – X)⌉ mit 0 ≤ X < N. Contraption ( 450 ) according to claim 66, wherein the device ( 470 ) is adapted for decoding to decode a sequence of numbers of length N, where X is a number of already encoded elements of the sequence of numbers, where the next element of the sequence of numbers G bits are assigned according to, G = ⌈log 2 (N - X) ⌉ with 0 ≤ X <N. Verfahren zum Dekodieren einer Sequenz von Abtastwerten, wobei jeder Abtastwert innerhalb der Sequenz eine Ursprungsposition aufweist, mit folgenden Schritten: Empfangen einer kodierten Zahlenfolge und einer Sequenz von Abtastwerten, wobei jeder Abtastwert eine Sortierungsposition aufweist; Dekodieren der kodierten Zahlenfolge mit einer Information über eine Beziehung zwischen den Ursprungs- und Sortierungspositionen basierend auf der kodierten Zahlenfolge, wobei jedes Element innerhalb der dekodierten Zahlenfolge einzigartig ist und beim Dekodieren einem Element der Zahlenfolge eine Anzahl von Bits zuordnet wird, derart, dass die Anzahl von Bits, die einem ersten Element zuggeordnet wird, größer ist als die Anzahl von Bits, die einem zweiten Element zugeordnet wird, wenn vor der Dekodierung des ersten Elements weniger Elemente bereits dekodiert waren, als vor der Kodierung des zweiten Elements; und Umsortieren der Sequenz von Abtastwerten basierend auf der dekodierten Zahlenfolge, so dass jeder Abtastwert innerhalb der dekodierten Sequenz seine Ursprungsposition aufweist.Method of decoding a sequence of samples, wherein each sample within the sequence is an origin position comprising, with the following steps: Receiving a coded Number sequence and a sequence of samples, each sample has a sorting position; Decoding the encoded Number sequence with information about a relationship between the source and sort positions based on the coded one Number sequence, where each element within the decoded number sequence is unique and when decoding an element of the sequence of numbers is assigned a number of bits such that the number of bits Bits allocated to a first element is larger as the number of bits allocated to a second element if fewer elements already exist before decoding the first element were decoded as before the coding of the second element; and rearrange the sequence of samples based on the decoded sequence of numbers, such that each sample within the decoded sequence is its Has original position. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens gemäß Anspruch 69, wenn der Programmcode auf einem Computer ausgeführt wird.Computer program with a program code for carrying out the Process according to claim 69, when the program code is executed on a computer.
DE102007017254A 2006-11-16 2007-04-12 Device for coding and decoding Active DE102007017254B4 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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