DE69908433T2 - METHOD FOR REDUCING MEMORY IN AN AC-3 AUDIO ENCODER - Google Patents
METHOD FOR REDUCING MEMORY IN AN AC-3 AUDIO ENCODER Download PDFInfo
- Publication number
- DE69908433T2 DE69908433T2 DE69908433T DE69908433T DE69908433T2 DE 69908433 T2 DE69908433 T2 DE 69908433T2 DE 69908433 T DE69908433 T DE 69908433T DE 69908433 T DE69908433 T DE 69908433T DE 69908433 T2 DE69908433 T2 DE 69908433T2
- Authority
- DE
- Germany
- Prior art keywords
- channel
- psd
- bit allocation
- bit
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 50
- 230000015654 memory Effects 0.000 title claims description 41
- 238000010168 coupling process Methods 0.000 claims description 45
- 230000008878 coupling Effects 0.000 claims description 43
- 238000005859 coupling reaction Methods 0.000 claims description 43
- 230000000873 masking effect Effects 0.000 claims description 25
- 230000005284 excitation Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 15
- 230000001052 transient effect Effects 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 13
- 230000009466 transformation Effects 0.000 claims description 12
- 238000013139 quantization Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 6
- 238000001228 spectrum Methods 0.000 claims description 5
- 238000012856 packing Methods 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 description 11
- 238000007667 floating Methods 0.000 description 8
- 235000019800 disodium phosphate Nutrition 0.000 description 7
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000003595 spectral effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- OVOUKWFJRHALDD-UHFFFAOYSA-N 2-[2-(2-acetyloxyethoxy)ethoxy]ethyl acetate Chemical compound CC(=O)OCCOCCOCCOC(C)=O OVOUKWFJRHALDD-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 101150041966 lev-11 gene Proteins 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
Gebiet der ErfindungField of the Invention
Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Vermindern der Speicheranforderungen in einem Codierer, und zwar insbesondere, aber nicht ausschließlich in einem AC-3-Codierer.The present invention relates out a method for reducing storage requirements in an encoder, specifically but not exclusively in an AC-3 encoder.
Hintergrund der Erfindungbackground the invention
AC-3 ist ein transformationsbasierter Audio-Codier-Algorithmus, welcher entworfen ist zum Vorsehen einer Datenratenverminderung für Breitbandsignale, während die hohe Qualität des ursprünglichen Inhalts beibehalten wird. In der Unterhaltungselektronikindustrie kann ein AC-3-Soundtrack bzw. eine AC-3-Tonspur gefunden werden auf der neuesten Generation von Laserdisks oder als die Standard-Tonspur auf DVDs, AC-3 ist das Standard-Audioformat für hochauflösendes Fernsehen (HDTV) und wird für digitale Kabel- und Satellitenübertragungen verwendet.AC-3 is a transformation-based Audio coding algorithm designed to provide one Data rate reduction for Wideband signals while the high quality of the original Content is retained. In the consumer electronics industry an AC-3 soundtrack or an AC-3 sound track can be found on the latest generation of laser discs or as the standard soundtrack on DVDs, AC-3 is the standard audio format for high definition television (HDTV) and is used for digital cable and satellite broadcasts used.
Für all diese Verbraucheranwendungen muss der AC-3-Algorithmus auf die Firmware von DSPs abgebildet werden, welche ein Teil eines größeren System wären, das Datenformatierung, Synchronisation, Fehlerüberprüfung und Korrektur und möglicherweise auch Videocodierung durchführt. Der Verbrauchermarkt erfordert immer ein billiges Produkt, jedoch mit hoher Qualität, und dies bedeutet, dass die Kostenfrage von Anfang an angegangen werden muss. Chipkosten sind vorgegeben durch Parameter wie beispielsweise Chipfläche, Speicher und neuerdings auch geringe Leistungsaufnahme.For all of these consumer applications must be based on the AC-3 algorithm Firmware are mapped by DSPs, which are part of a larger system would, that data formatting, synchronization, error checking and correction and possibly also performs video coding. The consumer market always requires a cheap product, however with high quality, and this means that the cost issue was tackled from the start must become. Chip costs are determined by parameters such as, for example Chip area, Storage and recently also low power consumption.
Verminderung von Speicheranforderungen für einen komplexen Algorithmus, wie beispielsweise ein AC-3-Codierer, bedeutet, dass der Algorithmus gründlich analysiert werden muss und restrukturiert werden muss, so dass die Codierqualität erhalten bleibt, aber die Menge an Speicherplatz vermindert wird. U.S. 5,687,282 offenbart ein Verfahren zum Vermindern der Speicheranforderungen für einen Codierer, und zwar durch aufeinanderfolgendes Überschreiben verschiedener Funktionen, die zum Codieren verwendet werden. Die vorliegende Erfindung strebt danach, ein Verfahren vorzusehen, insbesondere für einen AC-3-Codierer, welches die Speicheranforderungen weiter vermindert.Reduce storage requirements for one complex algorithm, such as an AC-3 encoder, means that the algorithm is thorough must be analyzed and restructured so that the coding quality is retained, but the amount of storage space is reduced. U.S. 5,687,282 discloses a method for reducing storage requirements for one Encoder, by successively overwriting different ones Functions used for coding. The present invention strives to provide a procedure, especially for one AC-3 encoder, which further reduces memory requirements.
Zusammenfassung der ErfindungSummary the invention
Gemäß der Erfindung ist ein Verfahren
vorgesehen zur Reduzierung von Speicheranforderungen für einen
Encoder, der die Funktion der Bitzuweisung für Quantisieren von Frequenzkoeffizienten
eines Eingabesignals aufweist, wobei das Verfahren Folgendes aufweist:
Berechnen
einer Leistungsspektrumdichte (PSD);
Integrieren der PSD über eine
Vielzahl von Frequenzbändern
zum Bilden einer Band-PSD;
Berechnen einer Erregungsfunktion
zum Anlegen einer Prototyp-Maskierungskurve
an die Band-PSD;
Erzeugen einer Maskierungskurve eines ersten
Schritts (FSMC = First Step Masking Curve) eines Rauschpegelschwellenwerts
aus der Erregungsfunktion;
Berechnen einer Maskierungskurve
eines zweiten Schritts (SSMC = Second Step Masking Curve) durch
Inkrementieren der FSMC gemäß einer
ausgewählten
Signal-zu-Rausch-Variablen (snroffst), wobei
die Erregungsfunktion
nach dem Berechnen in den Speicher geschrieben wird anstelle der
Band-PSD und nachfolgend durch die FSMC überschrieben wird, und wobei
die SSMC in einem temporären
Speicher gespeichert wird und für
jeden Datenblock, der durch den Codierer verarbeitet wird, neu berechnet
wird, dadurch gekennzeichnet, dass:
die Frequenzkoeffizienten
von zwei gekoppelten Eingangskanälen
in einem Kopplungskanal kombiniert werden, wobei das Verfahren das
Abbilden von Kopplungskanaldaten in den Speicher aufweist, der für einen
der gekoppelten Kanäle
reserviert ist.According to the invention, a method is provided for reducing memory requirements for an encoder which has the function of bit allocation for quantizing frequency coefficients of an input signal, the method having the following:
Calculating a power spectrum density (PSD);
Integrating the PSD over a plurality of frequency bands to form a band PSD;
Computing an excitation function to apply a prototype masking curve to the band PSD;
Generating a first step masking curve (FSMC) of a noise level threshold from the excitation function;
Calculate a second step masking curve (SSMC) by incrementing the FSMC according to a selected signal-to-noise variable (snroffst), where
the excitation function after computation is written in memory instead of the band PSD and subsequently overwritten by the FSMC, and wherein the SSMC is stored in temporary memory and recalculated for each block of data processed by the encoder marked that:
the frequency coefficients of two coupled input channels are combined in one coupling channel, the method comprising mapping coupling channel data into the memory which is reserved for one of the coupled channels.
Vorzugsweise umfasst das Verfahren das Zuweisen von Bits für das Codieren von Mantisse-Werten der Frequenzkoeffizienten, wobei die Bitzuweisung auf der Basis der PSD, der SSMC und der Variablen bestimmt wird, wobei Bitzuweisungsaddressverweise bzw. -pointer für nur einen aktuellen Datenblock erzeugt und gespeichert werden.The method preferably comprises assigning bits for encoding frequency coefficient mantissa values, where bit allocation based on PSD, SSMC and variables is determined, with bit allocation address pointers for only a current data block is generated and saved.
Vorzugsweise folgt der Bitzuweisung eine Quantisierung der Mantisse-Werte gemäß den Bitzuweisungspointern und Packen der quantisierten Werte in einen Datenrahmen, wobei die quantisierten Werte im Speicher anstelle der ursprünglichen nicht-quantisierten Koeffizienten gespeichert werden.The bit allocation preferably follows a quantization of the mantissa values according to the bit allocation pointers and packing the quantized values into a data frame, the quantized values in memory instead of the original ones non-quantized coefficients can be saved.
Vorzugsweise werden die Frequenzkoeffizienten anfänglich in Exponent- und Mantisse-Komponenten getrennt, und die Exponent-Komponenten werden mit der PSD überschrieben.The frequency coefficients are preferred initially separated into exponent and mantissa components, and the exponent components are overwritten with the PSD.
Ferner wird Information, die während des Codierens überflüssig bzw. redundant wurde in der folgenden genauen Beschreibung als geeignet zum Überschreiben identifiziert, um die Speicheranforderungen für den AC-3-Codierer weiter zu vermindern.Furthermore, information that is collected during the Coding unnecessary or redundancy became suitable in the following detailed description to overwrite identified to further reduce the memory requirements for the AC-3 encoder.
Kurz Beschreibung der ZeichnungenBrief description of the drawings
Die Erfindung wird vollständiger beschrieben, und zwar lediglich anhand eines nicht-beschränkenden Beispiels, mit Bezug auf die beigefügten Zeichnungen, in denen:The invention is more fully described and only by way of a non-limiting example, with reference on the attached Drawings in which:
Genaue Beschreibung eines bevorzugten AusführungsbeispielsPrecise description of a preferred embodiment
Für die nachfolgende Implementierung eines AC-3-Codierers auf einem Festkomma-DSP müssen die Wortlängenanforderungen jedes verarbeiteten Blocks bestimmt werden, wo Festkomma-Arithmetik verwendet wird.For the subsequent implementation of an AC-3 encoder on one Fixed point DSP must the word length requirements each processed block is determined where fixed point arithmetic is used.
Schließlich wird das Thema eines Speicherzuweisungsschemas im Codierer angesprochen, welcher der Gegenstand der vorliegenden Erfindung ist. Basierend auf der Erfahrung der Algorithmusentwicklung und der Analyse/ Studie der Qualitätsanforderungen wird eine Lösung mit wenig Speicher für einen AC-3-Codierer beschrieben, der eine Speicheroptimierung ohne Qualitätskompromisse durchführt.Finally, the topic becomes one Memory allocation schemes addressed in the encoder, which of the The subject of the present invention is. Based on experience algorithm development and analysis / study of quality requirements will be a solution with little memory for described an AC-3 encoder, which memory optimization without quality compromises performs.
A. SystemüberblickA. System overview
Ähnlich
wie die AC-2-Einzelkanalcodiertechnologie, aus der es abgeleitet
ist, ist AC-3 grundsätzlich ein
adaptiver, transformationsbasierter Codierer unter Verwendung einer
frequenz-linearen, kritisch gesampelten Filterreihe basierend auf
der Princen-Bradley-Zeitdomänen-Alias-Auslöschungs-Technik
(TDAC-Technik = Time-Domain-Aliasing-Cancellation-Technik). Das
AC-3-Systemdiagramm
ist in
A.1 EingabeformatA.1 Input format
AC-3 ist ein rahmenbasierter Codierer. Jeder Rahmen enthält Information äquivalent zu 256 × 6 PCM (pulscodemodulierten) Samples pro Kanal. Zum einfacheren Codieren ist der Rahmen unterteilt in sechs Audioblocks, wobei jeder Block daher Information von 256 Samples pro Kanal enthält.AC-3 is a frame-based encoder. Each frame contains Equivalent information to 256 × 6 PCM (pulse code modulated) samples per channel. For easier coding The frame is divided into six audio blocks, with each block therefore contains information of 256 samples per channel.
A.2 TransientendetektionA.2 Transient detection
Transienten bzw. Übergangszustände werden detektiert in den Kanälen mit voller Bandbreite, um zu entscheiden, wann auf Audioblock mit kurzer Länge umgeschaltet wird zum Beschränken von Quantisierungsrauschen, das mit der Transienten assoziiert ist, und zwar innerhalb eines kleinen zeitlichen Bereichs um die Transiente herum. Hochpass-gefilterte Versionen des Signals werden untersucht hinsichtlich eines Energieanstiegs von einem Sub-Block-Zeitsegment zum Nächsten. Sub-Blocks werden mit unterschiedlichen Zeitskalen untersucht. Wenn eine Transiente in der zweiten Hälfte eines Audioblocks in einem Kanal detektiert wird, schaltet dieser Kanal auf einen kurzen Block. Beim Vorhandensein einer Transienten wird das Bit "blksw" für den Kanal in dem codierten Bitstrom in dem bestimmten Audioblock gesetzt.Transients or transition states detected in the channels with full bandwidth to decide when to use audio block short length switched becomes limiting of quantization noise associated with the transient namely within a small time range around the transient around. High pass filtered versions of the signal are examined with respect to an increase in energy from one sub-block time segment to the next. Sub-blocks are examined with different time scales. If a transient in the second half If an audio block is detected in a channel, it switches Channel on a short block. In the presence of a transient the bit becomes "blksw" for the channel set in the encoded bit stream in the particular audio block.
Der Transientendetektor bearbeitet für jeden Audioblock 512 Samples. Der AC-3-Codierer verwendet eine Überlappungstechnik, so dass, obwohl jeder Block nur 256 Samples enthält, wenn der Block eine Transientendetektion (oder Frequenz-Transformation) aufweist, der vorherige Block daran festgelegt wird, was eine Gesamtzahl von 512 Samples ergibt.The transient detector processed for each Audio block 512 samples. The AC-3 encoder uses an overlap technique so that even though each block only contains 256 samples, if the block has a transient detection (or frequency transform), the previous block on it is determined, which results in a total of 512 samples.
A.3 FrequenztransformationA.3 Frequency transformation
Das Zeitdomäneneingabesignal jedes Kanals wird gefenstert und gefiltert mit einer TDAC-basierten Analysefilterreihe, um Frequenzdomänenkoeffizienten zu erzeugen. Wenn das blksw-Bit gesetzt ist, was bedeutet, dass eine Transiente für den Block detektiert wurde, werden zwei kurze Transformationen mit einer Länge von jeweils 256 durchgeführt, was die zeitliche Auflösung des Signals erhöht. Falls das Bit nicht gesetzt ist, wird eine einzige lange Transformation mit einer Länge von 512 durchgeführt, wodurch eine hohe spektrale Auflösung vorgesehen wird.The time domain input signal of each channel is windowed and filtered with a TDAC-based analysis filter series, around frequency domain coefficients to create. If the blksw bit is set, which means that a transient for the block was detected, two short transformations are made with a length carried out by 256 each, what the temporal resolution of the signal increased. If the bit is not set, there will be a single long transformation with a length performed by 512, resulting in high spectral resolution is provided.
Der Ausgabefrequenzkoeffizient Xk ist definiert als:
wobei x[n] die gefensterte
Eingabesequenz für
einen Kanal und N die Transformationslänge ist. Anstatt Xk in der
oben angegebenen Form auszuwerten, könnte es berechnet werden in
einer rechnerisch effizienten Weise gemäß der folgenden Gleichung:
dem bekannten FFT-Verfahren (Schnelle-Fourier-Transformation-Verfahren), indem zunächst die Transformation x'[n] = x[n]*ejπn/N verwendet wird und dann die FFT von x'[n] = x[n]*ejπn/N berechnet wird.the known FFT method (Fast Fourier Transform method), in which the transformation x '[n] = x [n] * e jπn / N is used first and then the FFT of x' [n] = x [n ] * e jπn / N is calculated.
A.4 KopplungA.4 Coupling
Einen hohe Kompression kann erreicht werden bei AC-3 durch Verwendung einer Technik, die bekannt ist als Koppeln. Koppeln nutzt die Art und Weise, in der das menschliche Ohr ein Richtungsverhalten bzw. eine Direktionalität für Signale mit sehr hoher Frequenz bestimmt. Bei hohen Audiofrequenzen (ungefähr oberhalb 4 kHz) ist das Ohr physisch nicht in der Lage, individuelle Zyklen einer Audiowellenform zu detektieren und spricht stattdessen auf die Umhüllende der Wellenform an. Infolgedessen kombiniert der Codieren die Hochfrequenzkoeffizienten der individuellen Kanäle, um einen gemeinsamen Kopplungskanal zu bilden. Die ursprünglichen Kanäle, die kombiniert wurden zum Bilden des Kopplungskanals, werden die gekoppelten Kanäle genannt.A high compression can be achieved are at AC-3 using a technique that is known as pairing. Pairing uses the way in which human Ear a directional behavior or directionality for signals determined at a very high frequency. At high audio frequencies (approximately above 4 kHz) the ear is physically unable to complete individual cycles of an audio waveform and speaks instead the envelope the waveform. As a result, the coding combines the high frequency coefficients of individual channels, to form a common coupling channel. The originals Channels, that have been combined to form the coupling channel will be the coupled channels called.
Der einfachste Codierer kann den Kopplungskanal bilden durch einfache Durchschnittsbildung aller individueller Kanalkoeffizienten. Ein höher entwickelter Codierer könnte die Vorzeichen der individuellen Kanäle ändern, bevor sie zu der Summe addiert werden, um Phasenauslöschung zu vermeiden.The simplest encoder can do that Form a coupling channel by simply averaging all individual channel coefficients. A more sophisticated encoder could do that Change sign of individual channels before they are added to the total to avoid phase cancellation.
Der erzeugte Kopplungskanal wird als nächstes unterteilt in eine Anzahl von Bändern. Für jedes solche Band und jeden Kopplungskanal wird eine Kopplungskoordinate an den Decoder übertragen. Um die Hochfrequenzkoeffizienten in jedem Band für einen bestimmte gekoppelten Kanal aus dem Kopplungskanal zu erhalten, multipliziert der Decoder die Kopplungskanalkoeffizienten in diesem Frequenzband mit der Kopplungskoordinate dieses Kanals für das bestimmte Frequenzband. Für einen Zweikanalcodierer wird auch einen Phasenkorrekturinformation für jedes Frequenzband des Kopplungskanals ausgesandt.The coupling channel generated is next divided into a number of bands. For each such band and each coupling channel becomes a coupling coordinate transmitted to the decoder. To the radio frequency coefficients in each band for a particular coupled To get the channel from the coupling channel, the decoder multiplies the coupling channel coefficients in this frequency band with the coupling coordinate this channel for the particular frequency band. For a two-channel encoder also becomes a phase correction information for each Frequency band of the coupling channel sent.
"Es
sei angenommen, dass die Frequenzdomänen-Koeffizienten bezeichnet
sind als:
ai, für den ersten gekoppelten Kanal,
bi, für
den zweiten gekoppelten Kanal,
ci,
für den
Kopplungskanal,"It is assumed that the frequency domain coefficients are referred to as:
a i , for the first coupled channel,
b i , for the second coupled channel,
c i , for the coupling channel,
Für jedes Sub-Band wird der Wert Σiai*bi berechnet, wobei sich der Index i über den Frequenzbereich des Sub-Bands erstreckt. Wenn Σiai*bi > 0 ist, wird die Kopplung für dieses Sub-Band durchgeführt als ci = (ai + bi)/2. Wenn ci = (ai + bi)/2 ist, dann wird in ähnlicher Weise die Kopplungsstrategie für das Sub-Band durchgeführt als ci = (ai + bi)/2The value Σ i a i * b i is calculated for each sub-band, the index i extending over the frequency range of the sub-band. If Σ i a i * b i > 0, the coupling for this sub-band is carried out as c i = (a i + b i ) / 2. Similarly, if c i = (a i + b i ) / 2, the coupling strategy for the sub-band is performed as c i = (a i + b i ) / 2
Benachbarte Sub-Bänder, die identische Kopplungsstrategien verwenden, können zusammengruppiert werden, um eines oder, mehrere Kopplungsbänder zu bilden. Jedoch dürfen Sub-Bänder mit unterschiedlichen Kopplungsstrategien nicht in einem Band verbunden werden. Wenn die Gesamtkopplungsstrategie für ein Band ci = (ai + bi)/2 ist, d. h. für alle Sub-Bänder, die das Band bilden, wird der Phasenmerker für das Band auf +1 gesetzt, anderenfalls wird er auf –1 gesetzt."Adjacent subbands that use identical coupling strategies can be grouped together to form one or more coupling bands. However, sub-bands with different coupling strategies must not be connected in one band. If the overall coupling strategy for a band is ci = (a i + b i ) / 2, ie for all sub-bands that make up the band, the phase flag for the band is set to +1, otherwise it is set to -1. "
A.5 RematrixingA.5 Rematrixing
Ein weiterer Prozess, das Rematrixing, wird verwendet im speziellen Fall, dass der Codierer nur zwei Kanäle verarbeitet. Die Summe und die Differenz der beiden Signale von jedem Kanal werden auf einer Band-für-Band-Basis berechnet, und wenn in einem gegebenen Band die Pegeldisparität zwischen dem abgeleiteten (matrixed bzw. gematrixten) Signalpaar größer ist als der entsprechende Pegel des ursprünglichen Signals, wird stattdessen das Matrixpaar gewählt. Mehr Bits werden in dem Bit-Strom vorgesehen, um diesen Zustand anzuzeigen, woraufhin der Decodierer eine komplementäre Unmatrixing- bzw. Entmatrizierungs-Operation durchführt, um die ursprünglichen Signale wieder herzustellen. Die Rematrix-Bits werden weggelassen, wenn es mehr als zwei codierte Kanäle gibt.Another process, rematrixing, is used in the special case that the encoder has only two Channels processed. The sum and difference of the two signals from each channel are calculated on a band-by-band basis, and if in a given band the level disparity between the derived (matrixed) signal pair is greater than the corresponding level of the original signal , the matrix pair is selected instead. More bits are provided in the bit stream to indicate this condition, whereupon the decoder performs a complementary unmatrixing or de-matrixing operation to restore the original signals. The rematrix bits are omitted if there are more than two encoded channels.
Der Vorteil dieser Technik ist, dass sie gerichtetes Entmaskieren (directional unmasking) vermeidet, wenn die decodierten Signale nachfolgend bei einem Matrix-Surround-Prozessor verarbeitet werden, wie beispielsweise einem Dolby-Prologic-Decoder.The advantage of this technique is that it avoids directional unmasking when the decoded signals subsequently in a matrix surround processor processed, such as a Dolby Prologic decoder.
Bei AC-3 wird Rematrixing in separaten Frequenzbändern unabhängig durchgeführt. Es gibt vier Bänder mit Grenzstellen abhängig von der Kopplungsinformation. Die Grenzstellen sind bestimmt anhand der Koeffizient-Bin-Zahl, und die entsprechenden Rematrixing-Band-Frequenzgrenzen ändern sich mit der Sampling-Frequenz.With AC-3, rematrixing is done in separate frequency bands independently carried out. There are four bands dependent on border points from the coupling information. The border points are determined based on the coefficient bin number, and the corresponding rematrixing band frequency limits change with the sampling frequency.
A.6 Umwandlung in FließkommaA.6 Converting to floating point
Die Koeffizientenwerte, die einem Rematrix- und Kopplungsprozess unterzogen worden sein können, werden in eine spezielle Fließkomma-Darstellung umgewandelt, was separate Anordnungen aus Exponenten und Mantissen ergibt. Diese Fließkomma-Anordnung wird durch den Rest des Codierverfahrens hindurch beibehalten, bis gerade vor der inversen Umwandlung des Decodierers, und sieht einen dynamischen Bereich von 144 dB vor und gestattet, dass AC-3 auf Festkomma- oder Fließkomma-Hardware implementiert wird.The coefficient values that one Rematrix and coupling process may have been subjected in a special floating point representation converted what separate arrangements of exponents and mantissas results. This floating point arrangement is maintained through the rest of the encoding process until just before the inverse conversion of the decoder, and sees one dynamic range of 144 dB before and allowed to AC-3 Fixed point or floating point hardware is implemented.
Codierte Audioinformation besteht im Wesentlichen aus separater Darstellung der Exponenten- und Mantissenanordnungen. Der übrige Codierprozess konzentriert sich individuell auf die Verminderung der Exponenten- und Mantissendatenrate.Coded audio information exists essentially from separate representation of the exponent and mantissa arrangements. The rest Coding process focuses individually on the reduction the exponent and mantissa data rate.
Die Exponenten werden codiert unter Verwendung einer der Exponentencodierungsstrategien. Jede Mantisse ist auf eine festgelegte Anzahl von Binärstellen trunkiert bzw. gekürzt. Die Anzahl von Bits, die verwendet werden zum Codieren jeder Mantisse, wird erhalten aus einem Bit-Zuordnungsalgorithmus, der auf der Maskierungseigenschaft des menschlichen Gehörsystems basiert.The exponents are coded under Use one of the exponent coding strategies. Any mantissa is truncated or truncated to a specified number of binary digits. The Number of bits used to encode each mantissa, is obtained from a bit allocation algorithm based on the masking property of the human auditory system based.
A.7 ExponentencodierungsstrategieA.7 Exponent coding strategy
Exponentenwerte dürfen bei AC-3 in einem Bereich von 0 bis –24 liegen. Die Exponenten wirken als ein Skalierfaktor für jede Mantisse. Die Exponenten für Koeffizienten, die mehr als 24 führende Nullen besitzen, werden bei –24 festgelegt, und bei den entsprechenden Mantissen wird gestattet, dass sie führende Nullen besitzen.Exponent values are allowed in one range with AC-3 from 0 to –24 lie. The exponents act as a scaling factor for each mantissa. The exponents for Coefficients that more than 24 leading Have zeros at -24 and the corresponding mantissas are allowed to that they're leading Have zeros.
Ein AC-3-Bit-Strom enthält Exponenten für unabhängige, gekoppelte und die Kopplungskanäle. Exponenteninformation kann für Blöcke innerhalb eines Rahmens gemeinsam verwendet werden, so dass die Blöcke 1 bis 5 Exponenten von vorhergehenden Blöcke wiederverwenden können.An AC 3-bit stream contains exponents for independent, coupled and the coupling channels. Exponent information can be used for blocks can be shared within a frame so that the blocks Can reuse 1 to 5 exponents from previous blocks.
Die AC-3-Exponentenübertragung verwendet eine Differenzialcodiertechnik, bei der die Exponenten für einen Kanal über die Frequenz hinweg differenziell codiert werden. Der erste Exponent wird immer als ein Absolutwert gesandt. Der Wert zeigt die Anzahl führender Nullen im ersten Umwandlungskoeffizienten an. Nachfolgende Exponenten werden als Differenzwerte gesandt, die zu dem vorhergehenden Exponentenwert hinzugefügt werden müssen, um den nächsten tatsächlichen Exponentenwert zu bilden.The AC-3 exponent transmission uses a differential coding technique where the exponents are for one Channel over the frequency is encoded differentially. The first exponent is always sent as an absolute value. The value shows the number leading Zeros in the first conversion coefficient. Subsequent exponents are sent as difference values that are added to the previous exponent value have to, to the next actual To form exponent value.
Die differenziell codierten Exponenten werden als nächstes in Gruppen kombiniert. Die Gruppierung wird durchgeführt mit einem der drei Verfahren D15, D25 und D45. Diese Verfahren zusammen mit 'Wiederverwendung' werden als Exponentenstrategien bezeichnet. Die Anzahl von Exponenten in jeder Gruppe hängt nur von der Exponentenstrategie ab. Im D15-Modus ist jede Gruppe aus drei Exponenten gebildet. Bei D45 werden vier Exponenten durch einen Differenzwert repräsentiert. Als nächstes werden drei aufeinanderfolgende solcher repräsentativer Differenzwerte zusammen gruppiert, um eine Gruppe zu bilden. Jede Gruppe besteht stets aus 7 Bits. Im Fall, dass die Strategie ,Wiederverwendung' für einen Kanal in einem Block ist, werden keine Exponenten für diesen Kanal geschickt, und der Decodierer verwendet die zuletzt für diesen Kanal gesandten Exponenten erneut.The differentially coded exponents will be next combined in groups. The grouping is carried out with one of the three methods D15, D25 and D45. These procedures together with 'reuse' as exponent strategies designated. The number of exponents in each group only depends depending on the exponent strategy. Each group is off in D15 mode three exponents formed. With D45, four exponents are replaced by one Represented difference value. Next three successive such representative difference values are put together grouped to form a group. Each group always consists of 7 bits. In the event that the 'reuse' strategy for one Channel is in a block, no exponents for this Channel sent, and the decoder uses the last one for this Channel exponents sent again.
Eine Vorverarbeitung der Exponenten vor dem Codieren kann zu einer besseren Audioqualität führen.A preprocessing of the exponents before encoding can lead to better audio quality.
Die Wahl der geeigneten Strategie für Exponentencodierung bildete einen wichtigen Aspekt von AC-3. D15 liefert die beste Genauigkeit, aber nur eine geringe Komprimierung. Andererseits kann die Übertragung von nur einem Exponentensatz für einen Kanal in dem Rahmen (in dem ersten Audioblock des Rahmens) und der Versuch, dieselben Exponenten für die nächsten fünf Audioblöcke 'wiederzuverwenden', zu einer hohen Exponentenkompression führen, manchmal aber auch zu einer sehr hörbaren Verzerrung.Choosing the right strategy for exponent coding was an important aspect of AC-3. D15 provides the best accuracy but little compression. On the other hand, the transfer of only one exponent set for a channel in the frame (in the first audio block of the frame) and trying to 'reuse' the same exponents for the next five audio blocks results in high exponent compression to lead, but sometimes also to a very audible distortion.
A.8 Bit-Zuweisung für MantissenA.8 Bit assignment for mantissas
Der Bit-Zuweisungsalgorithmus analysiert die Spektral-Umhüllende des Audiosignals, das codiert wird, hinsichtlich Maskierungseffekten, um die Anzahl von Bits zu bestimmen, die jeder Umwandlungskoeffizienten-Mantisse zugewiesen werden. Es wird empfohlen, dass die Bit-Zuweisung im Codierer global auf die Gesamtheit der Kanäle als eine Einheit durchgeführt wird, und zwar aus einem gemeinsamen Bit-Pool.The bit allocation algorithm analyzes the spectral envelope the audio signal that is encoded for masking effects, to determine the number of bits that each conversion coefficient mantissa be assigned to. It is recommended that the bit assignment in the Encoder is performed globally on the entirety of the channels as a unit from a common bit pool.
Die Bit-Zuweisungsroutine enthält ein parametrisches Modell des menschlichen Hörvermögens zum Schätzen eines Rauschpegelschwellenwerts, und zwar ausgedrückt als eine Funktion der Frequenz, die hörbare von nichthörbaren Spektralkomponenten trennt. Verschiedene Parameter des Gehörmodells können von dem Codierer eingestellt werden, abhängig von den Signaleigenschaften. Beispielsweise wird eine Prototyp-Maskierungskurve definiert anhand von zwei stückweise kontinuierlichen Liniensegmenten, und zwar jedes mit seiner eigenen Steigung und y-Schnittpunkt.The bit allocation routine contains a parametric Model of human hearing to estimate one Noise level threshold, expressed as a function of frequency, the audible of inaudible Separates spectral components. Different parameters of the hearing model can set by the encoder depending on the signal properties. For example, a prototype masking curve is defined using two piece by piece continuous line segments, each with its own Slope and y-intersection.
Die Anzahl von Bits in einem AC-3-Rahmen, die verfügbar sind zum Packen von Mantissen, ist erstens natürlich abhängig von der Rahmengröße und zweitens abhängig von der Anzahl von Bits, die von anderen Feldern verbraucht werden – Exponenten, Kopplungsparameter, etc. Ein signifikanter Teil des Bitzuweisungsprozesses ist die Optimierung der Bitzuweisung für die Mantisse, so daß unter Maskiererwägungen die Gesamtsumme aller von den Mantissen verbrauchten Bits gleich (oder fast nahezu gleich) der verfügbaren Bits ist. Diese Optimierung wird durchgeführt durch einen sogenannten Binär-Konvergenz-Algorithmus.The number of bits in an AC-3 frame, the available are for packing mantissas, firstly of course depends on the frame size and secondly dependent the number of bits consumed by other fields - exponents, Coupling parameters, etc. A significant part of the bit allocation process is the optimization of the bit allocation for the mantissa, so that under Maskiererwägungen the total of all bits used by the mantissas equal (or almost almost the same) of the available bits. This optimization is carried out through a so-called binary convergence algorithm.
B. Wortlängenanforderungen im AC-3-CodiererB. Word length requirements in the AC-3 encoder
Fließkomma-Arithmetik verwendet üblicherweise IEEE 754 (32 Bits: 24-Bit-Mantissen, 7-Bit-Exponent & ein Vorzeichen-Bit), was adäquat ist für AC-3-Codierung mit hoher Qualität. Workstations, wie die Sun SPARCstation 20 können eine viel höhere Präzision vorsehen (z. B. doppelte Präzision ist 8 Byte). Jedoch erfordern Fließkomma-Einheiten eine größere Chip-Fläche und daher verwenden die meisten DSP-Prozessoren eine Festkomma-Arithmetik. Der AC-3-Codierer soll bei der Verwendung häufig ein Teil eines Verbraucherprodukts sein, z. B. DVD (Digital Versatile Disk), wo Kosten (Chipfläche) ein wichtiger Faktor sind.Floating point arithmetic is commonly used IEEE 754 (32 bits: 24-bit mantissa, 7-bit exponent & a Sign bit), which is adequate is for AC-3 coding with high quality. Workstations like the Sun SPARCstation 20 can provide much higher precision (e.g. double precision is 8 bytes). However, floating point units require a larger chip area and therefore most DSP processors use fixed point arithmetic. The AC-3 encoder is often intended to be part of a consumer product when in use be, e.g. B. DVD (Digital Versatile Disk), where costs (chip area) are an important factor.
Der AC-3-Codierer wurde implementiert auf 24-Bit-Prozessoren, wie beispielsweise dem Motorola 56000, und hatte großen wirtschaftlichen Erfolg. Obwohl jedoch die Leistung eines AC-3-Codierers, welcher auf einem 16-Bit-Prozessor implementiert ist, allgemein als qualitativ gering angenommen wurde, wurde keine angemessene Studie durchgeführt, um die Qualität zu messen bzw. einzuordnen (benchmark), oder sie mit der Fließkomma-Version zu vergleichen.The AC-3 encoder has been implemented on 24-bit processors, such as the Motorola 56000, and had great economic success. However, although the performance of an AC-3 encoder, which is implemented on a 16-bit processor in general was assumed to be of low quality, was not an appropriate one Study carried out about the quality to measure or classify (benchmark), or with the floating point version to compare.
Die Verwendung doppelter Präzision (32-Bit) zur Implementierung des Codierers auf einem 16-Bit-Prozessor kann zu einer hohen Qualität führen (sogar mehr als die 24-Bit-Version). Jedoch ist die Arithmetik für doppelte Präzision rechnermäßig sehr aufwendig bzw. teuer (z. B. benötigt auf D950 eine Multiplikation mit einfacher Präzision 1 Zyklus, wohingegen doppelte Präzision 6 Zyklen erfordert). Anstatt einfache oder doppelte Präzision während des gesamten Codierprozesses durchzuführen, können Berechnungen mit unterschiedlicher Präzision für verschiedene Stufen der Berechnung durchgeführt werden.Using double precision (32-bit) to implement the encoder on a 16-bit processor to a high quality to lead (even more than the 24-bit version). However, the arithmetic is double precision mathematically very much complex or expensive (e.g. needed on D950 a multiplication with simple precision 1 cycle, whereas double precision 6 cycles required). Instead of single or double precision during the perform entire coding process, calculations with different precision for different Levels of calculation performed become.
C. Speicherzuweisungsschema in AC-3-Stereo-CodiererC. Memory allocation scheme in AC-3 stereo encoder
Nachfolgend wird die Implementierung eines Zweikanal-AC-3-Codierers beschrieben, der hinsichtlich der Speicheranforderungen stark optimiert wurde. Der spezielle betrachtete DSP ist der STMicroelectronics' eigene D950-Kern, ein programmierbarer 16-Bit-Festkomma-Allzweck-Digitalsignalprozessor. Obwohl die Speicheroptimierungen mit Bezug auf diese 16-Bit-Maschine beschrieben werden, sind viele der Konzepte auf andere DSPs (mit unterschiedlichen Wortlängen) ebenfalls anwendbar.Below is the implementation of a two-channel AC-3 encoder described with respect to the Storage requirements have been greatly optimized. The special looked at DSP is STMicroelectronics' own D950 core, a programmable 16-bit fixed-point general-purpose digital signal processor. Although the memory optimizations related to this 16-bit machine Many of the concepts are described on other DSPs (with different word lengths) also applicable.
Wie die meisten DSPs enthält der D950 zwei Datenspeicherplätze, die X-Speicher und Y-Speicher genannt werden, von denen in einem einzigen Zyklus Lade-/Speicher-Vorgänge gleichzeitig ausgeführt werden können. Obwohl Datenspeicher in DSPs üblicherweise flach (nicht segmentiert) sind, sieht die vorliegende Implementierung aus Zwecken der Indexierung und der Logistik den Speicher als Blöcke von 512 Worten an. Die Wahl von 512 ist natürlich, da jeder Block 256 Worte von PCM enthält und sich dies für Stereo auf 512 addiert. Segmente im X-Speicher sind mit X00, X01, etc. bezeichnet. In ähnlicher Weise sind Segmente im Y-Speicher bezeichnet als Y00, Y01, etc. Aufeinanderfolgende Segmente werden als benachbart zueinander angenommen, z. B. wenn die Startadresse von X04 1500 ist, dann ist die Adresse von X05 2000.Like most DSPs, the D950 includes two data storage locations, the X memory and Y memories are called, of which in a single cycle load / store operations simultaneously accomplished can be. Although data storage in DSPs is common are flat (not segmented), the present implementation sees for the purposes of indexing and logistics, the memory as blocks of 512 words. The choice of 512 is natural since each block has 256 words from PCM contains and this for Stereo added to 512. Segments in the X memory are marked with X00, X01, etc. More like that Segments in the Y memory are designated as Y00, Y01, etc. Successive segments are assumed to be adjacent to each other, z. B. if the start address of X04 is 1500, then the address is from X05 2000.
C.1 Eingabeformat.C.1 Input format.
Sechs Audioblocks, die jeweils aus 256 Samples pro Kanal bestehen, werden im Eingabepuffer gepuffert und an den internen Arbeitsspeicher des AC-3-Codierer-Algorithmus übertragen.Six audio blocks, each made up of There are 256 samples per channel and are buffered in the input buffer and transferred to the internal memory of the AC-3 encoder algorithm.
In dem obigen Diagramm sind Segmente
X07–X12
mit den Eingabe-PCM-Daten
von sechs Blocks beschrieben. Wie oben erwähnt wurde, verwendet AC-3 ein Überlappungsvertahren
für Frequenztransformation, wodurch
jeder Block Daten von einem vorhergehenden Block erfordert, um Koeffizienten
für den
aktuellen Block zu erzeugen. Für
den Block Null jedes Rahmens wird die PCM-Eingabe vom letzten Block
des vorhergehenden Rahmens kombiniert. Der letzte Block des vorhergehenden
Rahmens ist in X13 gespeichert und wird beim Beginn der Verarbeitung
des aktuellen Rahmens in X06 kopiert, so dass X06–X12 einen
kontinuierlichen Block aus sechs Blocks darstellt, jeder mit 512
Samples (mit Überlappung),
wie es in
C.2 TransientendefektionC.2 Transient Defect
Eine Transientendetektion für jeden Block erfordert 512 Eingaben. Wie oben erklärt wurde, wird jeder Block kombiniert mit Daten von einem vorhergehenden Block für Transientendetektion und Frequenztransformation präsentiert.A transient detection for everyone Block requires 512 entries. As explained above, each block combined with data from a previous block for transient detection and frequency transformation presented.
Der Filtervorgang ändert nicht
die Eingabe, sondern erzeugt eine gleiche Anzahl von hochpassgefilterter
Information. Diese wird analysiert durch den Transientendetektor,
um Transienteninformation zu erzeugen. Filtern und Transientendetektion
erfordert einen Arbeitspuffer von 1024 Worten – X14–X15, wie in
C.3 FrequenztransformationC.3 Frequency transformation
512 Samples, jedes davon ein Wort (16-Bit), werden multipliziert mit dem entsprechenden Fensterkoeffizienten (32-Bit), um ein 48-Bit-Produkt zu erzeugen, das vor der Speicherung auf 32 Bit (2 Worte) trunkiert wird. Die Eingabe ist in X14 (512 16-Bit-PCM), aber nach dem Fenstern ist die Ausgabe 512 32-Bit, d. h. 1024 Worte (X14–X15). Für Berechnung des gefensterten Signals vor Ort werden die 16-Bit-PCM-Daten auseinandergezogen bzw. beabstandet mit einem leeren Wort jeweils dazwischen. Wenn ein doppeltes Wortprodukt erzeugt wird, kann es dann an Ort und Stelle gespeichert werden.512 samples, each one a word (16-bit) are multiplied by the corresponding window coefficient (32-bit) to create a 48-bit product that will be saved truncated to 32 bits (2 words). The entry is in X14 (512 16-bit PCM), but after windowing the 512 output is 32-bit, d. H. 1024 words (X14 – X15). For calculation of the windowed signal on site, the 16-bit PCM data are pulled apart or spaced with an empty word in between. If A duplicate word product is generated, it can then be put in place and Position can be saved.
Frequenztransformation unter Verwendung der Zeitdomänen-Alias-Auslöschungs-Verfahrens erzeugt 256 32-Bit-Koeffizienten. Diese Koeffizienten werden von X14 an eine geeignete Stelle im Adressraum X00–X11 übertragen, so dass ein bestimmter Koeffizient Xj[blk_no][ch][bin] in praktischer Weise adressiert werden kann als X00[blk_no*1024 + ch*512 + bin*2].Frequency transformation using the time domain alias cancellation method produces 256 32-bit coefficients. These coefficients are transferred from X14 to a suitable location in the address space X00-X11, so that a specific coefficient X j [blk_no] [ch] [bin] can be addressed in a practical way as X00 [blk_no * 1024 + ch * 512 + bin * 2].
C.4 RematrixingC.4 Rematrixing
Rematrixing ist sehr unkompliziert hinsichtlich der Speicheranforderungen und Zuweisungen. Rematrizierte Daten werden an die Stelle der ursprünglichen Kanalkoeffizienten geschrieben.Rematrixing is very straightforward regarding storage requirements and allocations. Rematrizierte Data will replace the original channel coefficients written.
C.5 KoppelnC.5 Pairing
Zwei oder mehr gekoppelte Kanäle zusammen
bilden den Kopplungskanal. Sobald er erzeugt ist, wird der Kopplungskanal
als ein neuer Kanal behandelt und unterschiedlich verarbeitet. Jedoch
ist das letzte Bin für
gekoppelte Kanäle
um eines weniger als das Start-Bin für den Kopplungskanal.
endmant[ch]
= cplstrtmant ;//ch sind gekoppelter Kanal, ATSC Dok. S. 47Two or more coupled channels together form the coupling channel. Once created, the coupling channel is treated as a new channel and processed differently. However, the last bin for coupled channels is one less than the start bin for the coupled channel.
endmant [ch] = cplstrtmant; // ch are coupled channel, ATSC doc. p. 47
Basierend auf diesem Wissen, kann der Kopplungskanal im gleichen Speicher abgebildet werden, der für einen der gekoppelten Kanäle reserviert ist.Based on this knowledge, can the coupling channel can be mapped in the same memory as for one of the coupled channels is reserved.
Normalerweise würde ein Speicherplatz von 256 Bins reserviert sein zum Speichern und Verarbeiten von Koeffizienten für jeden Kanal mit voller Bandbreite (z. B. Kanal 0 und 1 für einen Stereocodierer). Statt jedoch einen neuen Speicherblock für den Kopplungskanal zu bilden, kann der Speicherplatz eines gekoppelten Kanals wiederverwendet werden. Von Bin Null bis endmant[ch]-1 werden die Koeffizienten für den gekoppelten Kanal (ch) gespeichert, und ab endmant[ch] bis max(255, cplendmant) werden die Kopplungskanalkoeffizienten gespeichert.Typically, a memory space of 256 bins would be reserved for storing and processing coefficients for each full bandwidth channel (e.g. channel 0 and 1 for a stereo encoder). However, instead of forming a new memory block for the coupling channel, the memory space of a coupled channel can be reused. From bin zero to endmant [ch] -1 the coefficients for the kop are channel (ch) is saved, and from endmant [ch] to max (255, cplendmant) the coupling channel coefficients are saved.
Der Kopplungsprozess, wie er allgemein
in
C.6 Fließkomma zu ExponentialschreibweiseC.6 Floating point closed exponential
Jeder Frequenzkoeffizient (32-Bit)
erzeugt eine Mantisse und einen Exponenten. Exponenten besitzen einen
Maximalwert von 24, daher sind sechzehn Bits mehr als genug, um
ihren Wert zu speichern. Für
Mantissen ist es nicht offensichtlich, ob sechzehn Bits ausreichend
sind oder ob die vollen zweiunddreißig Bits benötigt werden.
Jedoch spricht die Patentanmeldung des Autors mit dem Titel "Accuracy Demands
on Mantissa Representation in AC-Encoder" ("Genauigkeitsanforderungen
an die Mantissendarstellung bei einem AC-3-Codierer"), das gleiche Problem
an und beweist, dass sechzehn Bits ausreichend sind. Daher werden sechs
Blocks der Frequenzkoeffizienten an den Stellen X00–X11 mit
Exponenten (X00–X05)
und Mantissen (X06–X11) überschrieben,
siehe
C.7. ExponentencodierungC.7. exponent coding
Wie oben erklärt wurde, werden Exponenten in AC-3 unterschiedlich codiert und nachfolgend gruppiert unter Verwendung eines der Schemata D15, D25, D45 und Wiederverwendung. Ein Zwischenspeicher von 2 K wird benötigt für den Codier- und Gruppierungsprozess. Die sich ergebenden gruppierten Exponenten erfordern zusätzlichen Speicherplatz zum Speichern, bevor sie schließlich in einen AC-3-Rahmen gepackt werden. Der zugewiesene Speicher muss selbst im schlimmsten Fall ausreichend sein. Dies wird nun überprüft.As explained above, exponents coded differently in AC-3 and subsequently grouped under Use one of the schemes D15, D25, D45 and reuse. A buffer of 2 K is required for the coding and grouping process. The resulting grouped exponents require additional ones Storage space for storage before finally being placed in an AC-3 frame be packed. The allocated memory must be at worst Case be sufficient. This is now being checked.
Sechs Blocks und zwei Kanäle in jedem Block (angenommen dass der Kopplungskanal, wenn er vorhanden ist, mit dem Kanal 0 überlappt), sehen eine Gesamtzahl von 256 × 2 × 6 = 3072 Exponenten vor. Der schlimmste Fall ist, wenn alle Blocks die D15-Codierstrategie verwenden. In diesem Fall ist der Codiergewinn nur 3 (da drei Exponenten zu einem gruppiert werden). Somit ist der für die Exponenten erforderliche Gesamtspeicher 3072/3 = 1 K. Wenn man gewährleistet (wie es bei dem hier verwendeten Algorithmus der Fall ist), dass die letzten drei Blocks Wiederverwendung benutzen, fällt darüber hinaus die Speicheranforderung für gruppierte Exponenten auf 512 Worte.Six blocks and two channels in each Block (assuming that the coupling channel, if it exists, overlapped with channel 0), see a total of 256 × 2 × 6 = 3072 Exponents. The worst case is when all blocks use the D15 encoding strategy use. In this case the coding gain is only 3 (since there are three exponents be grouped into one). So that is necessary for the exponents Total memory 3072/3 = 1 K. If you guarantee (as is the case here algorithm used is the case that the last three blocks Use reuse falls about that addition, the storage requirement for grouped Exponents on 512 words.
Für künftige Zugriffe müssen die gruppierten Exponenten leicht zu indexieren sein. Obwohl die gruppierten Exponenten 512 Worte einnehmen können, wären sie im Allgemeinen im Speicher verteilt wegen Indexierung, z. B. zum Indexieren zu grp_exp[blk_no][ch][grp] sollte die Adresse X12[(blk_no*max_grp_size*3) + (max_grp_size*ch) + grp] sein. Dies bedeutet, dass man mehr als 512 Worte zuweisen muss zur Speicherung gruppierter Exponenten. Der Weg, um dies zu vermeiden, ist die Verwendung eines Doppelindexierverfahrens. Für jeden Block und Kanal wird die Startstelle seiner gruppierten Exponenten in einer separaten kleinen Tabelle gespeichert (Größe: 18 Byte). Dieser Adressenverweis oder Pointer wird dann verwendet, um auf den tatsächlichen gruppierten Exponenten zuzugreifen. In Fällen, wo die Exponentencodierstrategie Wiederverwendung ist, existieren keine gruppierten Exponenten, und der Tabelleneintrag für einen derartigen Block und Kanal wäre ein Null-Pointer.For future Accesses must the grouped exponents are easy to index. Although the grouped exponents can take 512 words, they would generally be in memory distributed due to indexing, e.g. B. for indexing to grp_exp [blk_no] [ch] [grp] the address X12 [(blk_no * max_grp_size * 3) + (max_grp_size * ch) + grp]. This means that you can assign more than 512 words must be used to store grouped exponents. The way to do this avoid using a double indexing method. For each Block and channel become the starting point of its grouped exponents stored in a separate small table (size: 18 bytes). This address reference or pointer is then used to point to the actual to access grouped exponents. In cases where the exponent coding strategy Is reuse, there are no grouped exponents, and the table entry for such a block and channel would be a null pointer.
C.8 BitzuweisungsalgorithmusC.8 Bit allocation algorithm
Bitzuweisung ist einer der kompliziertesten Teile der AC-3-Codierung (hinsichtlich Rechneraufwand und Speicher). Sie kann unterteilt werden in die folgenden Schritte.Bit allocation is one of the most complicated Parts of the AC-3 coding (in terms of computing effort and memory). It can be divided into the following steps.
- – PSD Berechnung – Leistungsspektrumdichte für Exponenten- PSD Calculation - power spectrum density for exponents
- – PSD Integration – Zusammenfassen von PSD in Bändern, entsprechend einer Maskierungskurve- PSD Integration - summarizing of PSD in tapes, according to a masking curve
- – Erregung und FSMC – Erststufenmaskierungskurve (First Step Masking Curve)- Excitement and FSMC - first stage masking curve (First Step Masking Curve)
- – Schnelle Bitzuweisung – Bitzuweisung um optimales SNR (Rauschverhältnis) zu finden- Quick Bit allocation - bit allocation for optimal SNR (noise ratio) to find
- – Kernbitzuweisung – Erzeugung von Bitzuweisungspointern bzw. -adressverweisen- Core bit allocation - generation of bit allocation pointers or addresses
C.8.1 PSD-BerechnungC.8.1 PSD calculation
Der erste Schritt der Bitzuweisung
bestimmt die Leistungsspektrumdichte (PSD) entsprechend der folgenden
Gleichung
Die PSD soll an der gleichen Stelle gespeichert werden wie die Exponenten. Dies ist möglich, da die Exponenten nicht mehr benötigt werde, sobald die PSD erzeugt ist.The PSD is said to be in the same place are saved like the exponents. This is possible because the exponents no longer needed once the PSD is created.
C.8.2 PSD-IntegrationC.8.2 PSD integration
Der nächste Schritt des Algorithmus integriert feine PSD-Werte innerhalb jedes Bandes aus einer Vielzahl von 1/6-Oktaven-Bändern, um eine Band-PSD zu erzeugen. Die Integration von PSD-Werten in jedem Band wird mit log-Addition durchgeführt. Die log-Addition wird implementiert durch Berechnen der Differenz zwischen den zwei Operanden und unter Verwendung der absoluten Differenz geteilt durch 2 als eine Adresse in einer Länge-256-Nachschlagetabelle. Insgesamt können 50 derartige Bänder pro Kanal vorhanden sein. Der Kopplungskanal kann jedoch den gleichen Speicherplatz wiederverwenden, wie einer der gekoppelten Kanäle. Die Band-PSD für den gekoppelten Kanal nimmt den unteren Teil ein (0-bndstart[ch]), und der obere Teil kann von dem Kopplungskanal eingenommen werden, vorausgesetzt, dass die Start-Bin des Kopplungskanals immer auf einem neuen Band ist – anderenfalls wird das Kopplungsband das letzte Band des gekoppelten Kanals überschreiben.The next step of the algorithm integrates fine PSD values within each band from a variety of 1/6 octave bands, a band PSD to create. The integration of PSD values in each volume is included log addition performed. The log addition is implemented by calculating the difference between the two operands and using the absolute difference divided by 2 as an address in a length 256 lookup table. Overall, can 50 such tapes be available per channel. However, the coupling channel can be the same Reuse space like one of the paired channels. The Band PSD for the paired Channel takes the lower part (0-bndstart [ch]), and the upper part Part can be taken up by the coupling channel, provided that the start bin of the coupling channel is always on a new tape is - otherwise the coupling band will overwrite the last band of the coupled channel.
Tabelle 1. Bandstrukturfabellen, bndtab[], bdnsz[] Table 1. Band structure tables, bndtab [], bdnsz []
Die obige Tabelle 1 zeigt die Bandstruktur
für PSD-Integration.
Für jedes
Band zeigt bndtab (Spalte 2) den Startindex der Koeffizienten in
dem Band. Koppeln kann nur an diskreten Punkten beginnen, die in
der folgenden Gleichung gegeben sind.
Basierend auf der Tabelle und der obigen Gleichung wird man bemerken, dass für cplbegf von 0 bis 8, cplstrtmant immer der Startpunkt eines Bandes ist. Für cplbegf über 8, ist die Bedingung noch immer erfüllt, wenn die Werte auf gerade Zahlen beschränkt sind. Somit kann mit dieser Beschränkung (die kaum einschränkend ist) die Band-PSD der Kopplung an die eines gekoppelten Kanals angehängt werden.Based on the table and the above equation it will be noted that for cplbegf from 0 to 8, cplstrtmant is always the starting point of a band. For cplbegf over 8, the condition is still always met when the values are limited to even numbers. So with this restriction (which is hardly restrictive is) the band PSD of the coupling are appended to that of a coupled channel.
C.8.3 Erregungskurve und FSMCC.8.3 Excitation curve and FSMC
Die Erregungsfunktion wird berechnet durch Anwenden der Prototyp-Maskierungskurve, die von dem Codieren ausgewählt wurde (und an den Decodieren übertragen wurde) auf das integrierte PSD-Spektrum (bndpsd[]). Das Ergebnis dieser Berechnung wird dann hinsichtlich der Amplitude nach unten versetzt durch die Parameter fgain und sgain, die auch aus dem Bit-Strom erhalten werden.The excitation function is calculated by applying the prototype masking curve, selected by the coding was (and transmitted to the decoders was) on the integrated PSD spectrum (bndpsd []). The result this calculation is then down in terms of amplitude offset by the parameters fgain and sgain, which are also obtained from the bit stream.
Die Erregungskurvenwerte können an die Stelle der Band-PSD geschrieben werden. Da jedoch die Band-PSD-Werte während des Anfangsteils der Maskierungskurvenberechnungen benötigt werden, kann einen zeitweilige Sicherungskopie (back-up) seines Werts hergestellt werden.The excitation curve values can be on the place of the band PSD will be written. However, since the band PSD values while the initial part of the masking curve calculations are required, can make a temporary backup (back-up) of its value become.
Nach der Erregungskurve, wird die Erststufenmaskierungskurve (FSMC = First-Sfep-Masking-Curve) berechnet, wie es durch den nachfolgenden Pseudo-Code vorgegeben ist:After the excitation curve, the First stage masking curve (FSMC = First Sfep Masking Curve) calculated, as specified by the following pseudo code:
Dieser Schritt berechnet die Maskierungskurve (Rauschpegelschwellenwertskurve) aus der Erregungsfunktion. Die Hörschwelle hthpp ist in dem ATSC-Dokument angegeben. Die Variablen fscod und dbknee werden durch den Codierer zugewiesen. Die FSMC wird über die Erregungskurve geschrieben, da ihr Wert nicht mehr von dem Codierer benötigt wird.This step calculates the masking curve (Noise level threshold curve) from the excitation function. The auditory threshold hthpp is specified in the ATSC document. The variables fscod and dbknee are assigned by the encoder. The FSMC is about the Excitation curve written because its value is no longer from the encoder needed becomes.
C.8.3 Schnelle BitzuweisungC.8.3 Fast bit allocation
AC-3 führt eine globale Bitzuweisung durch, d. h. die Zuweisungsroutine verschiebt je nach Bedarf Bits über Kanäle und Blocks hinweg, um die Verschiebungsanforderungen des Signals zu erfüllen. Mantissen-Bits für den gesamten Rahmen werden aus einem gemeinsamen Pool zugewiesen. Als Ergebnis davon erfordert die Bitzuweisung Maskierungs- und PSD-Information des gesamten Rahmens. Sobald die Bits zugewiesen sind, kann die Quantisierung der Mantisse gemäß der zugewiesenen Bits auf einer blockweisen Basis durchgeführt werden. Dies ist so, weil das Teilen von Information über eine quantisierte Mantisse auf das Blockniveau beschränkt ist. Um die Speicheranforderungen zu vermindern, ist der erste Schritt die Quantisierung von dem Bitzuweisungsprozess zu trennen.AC-3 performs global bit allocation through, d. H. the assignment routine shifts bits across channels and blocks as needed away to meet the signal's displacement requirements. Mantissa bits for the whole Frames are assigned from a shared pool. As a result bit allocation of this requires masking and PSD information of the entire frame. Once the bits are assigned, the Quantize the mantissa according to the assigned Bits are performed on a block-by-block basis. This is because sharing information about a quantized mantissa is limited to the block level. The first step is to reduce storage requirements separate the quantization from the bit allocation process.
Der zweite zu bemerkende wichtige Aspekt, welcher eine enorme Verminderung der Speicheranforderungen mit sich bringt, ist die Tatsache, dass die Bitzuweisung nur drei Informationen benötigt – FSMC, PSD und snroffst. Während die ersten beiden inzwischen bekannt sind, muss der dritte Parameter erklärt werden. Da FSMC und PSD zu diesem Zeitpunkt des Rahmencodierprozesses festgelegt sind, ist der einzige Parameter, der die Verteilung der Bits auf Mantissen ändert, der Wert von snroffst. Der Bitzuweisungsalgorithmus wiederholt sich bzw. iteriert mit verschiedenen Werten dieses Parameters, bis er auf einen Wert konvergiert, bei dem die gesamten Bits der quantisierten Matisse in dem Rahmen auf die verfügbaren Bits addieren.The second important to notice Aspect, which is a huge reduction in storage requirements entails the fact that the bit allocation is only three Information needed - FSMC, PSD and snroffst. While The first two are now known, the third parameter explained become. Because FSMC and PSD at this point in the frame coding process is the only parameter that determines the distribution of the Bits on mantissa changes the value of snroffst. The bit allocation algorithm is repeated or iterates with different values of this parameter until it converges to a value at which the total bits of the quantized Add Matisse in the frame to the available bits.
Aus der allgemeinen Beschreibung im ATSC-Standard scheint es, dass zum Berechnen des richtigen Werts für snroffst die Maskierkurve für jede Iteration aus der Erregungskurve neu berechnet werden muss. Unter Verwendung der Maskierkurve würden die Bit-Zuweisungs-Adressverweise bzw. -Pointer berechnet und summiert, um die Mantissengröße zu schätzen. Speichern der Bitzuweisungspointer für den gesamten Rahmen würde 3 K Speicher erfordern. Darüber hinaus würde die Maskierkurve von einer separaten Stelle von der Erregungskurve gespeichert werden müssen, da andernfalls die Erregungskurvenwerte für die nächste Iteration korrumpiert oder beschädigt würden. Durch Aufteilen der Maskierungskurvenberechnung in zwei Teile – FSMC und SSMC (Second-Step-Masking-Curve = Zweitstufenmaskierkurve), trennt man den Teil der unter snroffst unverändert bleibt von dem sich ändernden Teil.From the general description in the ATSC standard it seems that to calculate the correct value for snroffst the masking curve for each iteration has to be recalculated from the excitation curve. Using the masking curve, the bit allocation address references or pointer calculated and summed to estimate the mantissa size. to save the bit allocation pointer for the whole frame would 3K memory required. About that would out the masking curve from a separate location from the excitation curve need to be saved otherwise the excitation curve values for the next iteration will be corrupted or damaged would. By dividing the masking curve calculation into two parts - FSMC and SSMC (Second Step Masking Curve), separates one the part of the under snroffst remains unchanged from the changing Part.
Ein innovativer Aspekt des Speicherzuweisungsprozesses, welcher von dem Autor entworfen wurde, besteht darin, dass die SSMC (Zweitstufenmaskierkurve) unterwegs oder nebenbei berechnet wird, d. h. jedes Mal, wenn Maskierkurve für den Block benötigt wird. Während der Optimierungsstufe des Bitzuweisungsalgorithmus wird die SSMC aus der FSMC (Erststufenmaskierungskurve) und dem gewählten snroffst berechnet und an einer temporären Stelle gespeichert und verworfen, sobald sie ihren Zweck erfüllt hat. Bitzuweisungspointer (baps) werden nur für den aktuellen Block gespeichert. Nachdem Konvergenzprozess, wenn der optimale Wert für snroffst bekannt ist, werden die SSMC und Bitzuweisungspointer für jeden Block erneut berechnet, wenn und soweit nötig. Dies erhöht effektiv die Anzahl der Iterationen um eins, aber da üblicherweise die Anzahl der Iterationen ziemlich groß ist (~6), sind die Auswirkungen nicht signifikant.An innovative aspect of the memory allocation process, which was designed by the author is that the SSMC (Second-stage masking curve) is calculated on the way or incidentally, d. H. every time masking curve is needed for the block. While The optimization level of the bit allocation algorithm is the SSMC from the FSMC (first stage masking curve) and the selected snroffst calculated and at a temporary Place saved and discarded as soon as it has served its purpose. Bit allocation pointers (baps) are only saved for the current block. After the convergence process, if the optimal value for snroffst is known, the SSMC and bit allocation pointers for everyone Block recalculated if and as necessary. This effectively increases the number of iterations by one, but since usually the number of Iterations is pretty big (~ 6), the effects are not significant.
Speichern von Bitzuweisungspointern
(baps) nur für
den aktuellen Block spart nicht nur Speicher, sondern vermindert
auch den Rechneraufwand und verbessert die Leichtigkeit des Codierens
und Testens. Das folgende übliche
Szenario im AC-3-Codierprozess sei angenommen, wenn die Exponentencodierstrategie
für einen
bestimmten Block wie folgt ist: D15, Wiederverwendung, Wiederverwendung,
Wiederverwendung, D25, Wiederverwendung. Die Verarbeitung für den Block
Null beginnt und die FSMC und Bitzuweisungspointer werden berechnet.
Mantissen für
den Block Null werden quantisiert, gruppiert und gemäß der Bitzuweisungspointer
gepackt. Da die Strategie für
den Block Eins Wiederverwendung ist, sind die SSMC und dadurch die
Bitzuweisungspointer wie für
den Block Null. Daher werden die Berechnungen für SSMC und Bitzuweisungspointer einfach
ausgelassen (siehe
Es sei bemerkt, dass dieses Schema nur bis zum Blockniveau funktioniert. SSMC und Bitzuweisungspointer können nicht auf Kanalniveau in einem Block bearbeitet werde, da in der Quantisierungsstufe sich die Gruppierung von Mantissen von einem Kanal zu einem anderen (innerhalb desselben Blocks) erstrecken kann, z. B. wenn Kanal Null nur zwei Mantissen der dritten Stufe (d. h. auf drei Stufen quantisierte Mantissen) besitzt, dann wird die erste Mantisse der dritten Stufe in Kanal Eins zusammenaddiert, um eine Gruppe von drei zu bilden. Die Sache ist die, dass wenn Mantissen eines Blocks quantisiert werden, die Bitzuweisungspointer für alle Kanäle innerhalb des Blocks vorher berechnet und bereit sein müssen.It should be noted that this scheme only works up to the block level. SSMC and bit allocation pointer can are not processed at channel level in a block, because in the Quantization level is the grouping of mantissas from one Channel can extend to another (within the same block), e.g. B. if channel zero only two mantissas of the third stage (i.e. on has three levels of quantized mantissa), then the first Third stage mantissa added together in channel one to make one Form group of three. The thing is that when mantissas of a block are quantized, the bit allocation pointer for all channels within of the block must be calculated beforehand and be ready.
C.8.5 KernbifzuweisungC.8.5 Core bif allocation
Der letzte Schritt der Bitzuweisung überprüft, ob die Einschränkungen (ATSC Dokument) für den AC-3-Rahmen erfüllt sind, wie beispielsweise – Größe von Block 0 und Block 1 kombiniert sind niemals größer als 5/8 des Rahmens. Sobald der Einschränkungstest bestanden wurde, werden die Bitzuweisungspointer für jeden Block berechnet und ihr Wert wird verwendet zum Quantisieren der Mantissen.The last step of the bit allocation checks whether the restrictions (ATSC document) for the AC-3 frames are met, such as - size of block 0 and block 1 combined are never larger than 5/8 of the frame. Once the restriction test is passed, the bit allocation pointers for each block are calculated and their value is used to quantize the mantissas.
C.9 QuanfisierungC.9 Quantification
Die Mantissen in X06–X11 werden quantisiert bis zu der Anzahl von Bits, die von den Bitzuweisungspointern vorgegeben ist. Die quantisierten Mantissen werden an Ort und Stelle gespeichert. Jedoch werden bei AC-3 Mantissen mit bestimmten Niveaus oder Stufen der Quantisierung zusammengruppiert. Diese Mantissen müssen separat gespeichert und gruppiert werden und dann in dem AC-3-Rahmen gepackt werden.The mantissas in X06 – X11 are quantizes up to the number of bits from the bit allocation pointers is specified. The quantized mantissas are in place saved. However, AC-3 mantissas have certain levels or levels of quantization grouped together. These mantissas have to stored and grouped separately and then in the AC-3 frame be packed.
Wie aus der nachfolgenden Tabelle 2 ersichtlich ist, werden die Mantissen mit den Bitzuweisungspointern 1, 2 und 4 (d. h. Lev-3, Lev-5 und Lev-11-Mantissen) in Gruppen von 3 bzw. 3 bzw. 2 zusammengefasst.As from the table below 2 can be seen, the mantissas with the bit allocation pointers 1, 2 and 4 (i.e. Lev-3, Lev-5 and Lev-11 mantissa) in groups of 3, 3 and 3 respectively 2 summarized.
Tabelle 2. Abbilden von Bitzuweisungspointern zum Quantisierer Table 2. Mapping bit allocation pointers to the quantizer
Die nachfolgende
Der letzte Schritt im Codierprozess
ist das Packen der Mantissen auf den AC-3-Rahmen. Für jede Mantisse
werden Q Bits der quantisierten Mantisse im AC-3-Rahmen gespeichert,
wobei die Größe Q bestimmt
wird aus dem Wert des Bitzuweisungspointers. Zu dieser Zeit werden
die PSD-Werte für
den betreffenden Block nicht mehr benötigt, und daher können die
Q Werte an ihrer Stelle gespeichert werden. (Stelle: X06–X11), siehe
C.10 AC-3-RahmenpackenC.10 Pack AC-3 frames
Die Rahmengröße hängt vom Kompressionsverhältnis ab. Für Stereo-AC-3 sind Bitraten von bis zu 192 bis 384 kbps vernünftig, da in diesem Bereich eine transparente Qualität erreicht werden kann. Die größte Rahmengröße (836 Worte) ergibt sich, wenn die Bitrate 384 kbps ist und die Samplefrequenz 44,1 kHz ist. Eine Rahmenpuffergröße von 1 K ist daher vernünftig zum Speichern des AC-3-Rahmens (X14–X15).The frame size depends on the compression ratio. For stereo AC-3 Bit rates of up to 192 to 384 kbps are reasonable given this range a transparent quality can be achieved. The largest frame size (836 Words) results when the bit rate is 384 kbps and the sample rate Is 44.1 kHz. A frame buffer size of 1 K is therefore reasonable Save the AC-3 frame (X14 – X15).
Claims (9)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/SG1999/000111 WO2001033556A1 (en) | 1999-10-30 | 1999-10-30 | A method of reducing memory requirements in an ac-3 audio encoder |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69908433D1 DE69908433D1 (en) | 2003-07-03 |
DE69908433T2 true DE69908433T2 (en) | 2004-04-08 |
Family
ID=20430245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69908433T Expired - Lifetime DE69908433T2 (en) | 1999-10-30 | 1999-10-30 | METHOD FOR REDUCING MEMORY IN AN AC-3 AUDIO ENCODER |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1228507B1 (en) |
DE (1) | DE69908433T2 (en) |
WO (1) | WO2001033556A1 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0749647B1 (en) * | 1995-01-09 | 2003-02-12 | Koninklijke Philips Electronics N.V. | Method and apparatus for determining a masked threshold |
TW316302B (en) * | 1995-05-02 | 1997-09-21 | Nippon Steel Corp | |
US5819215A (en) * | 1995-10-13 | 1998-10-06 | Dobson; Kurt | Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data |
-
1999
- 1999-10-30 DE DE69908433T patent/DE69908433T2/en not_active Expired - Lifetime
- 1999-10-30 EP EP99954578A patent/EP1228507B1/en not_active Expired - Lifetime
- 1999-10-30 WO PCT/SG1999/000111 patent/WO2001033556A1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
EP1228507B1 (en) | 2003-05-28 |
EP1228507A1 (en) | 2002-08-07 |
WO2001033556A1 (en) | 2001-05-10 |
DE69908433D1 (en) | 2003-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60004814T2 (en) | QUANTIZATION IN PERCEPTUAL AUDIO ENCODERS WITH COMPENSATION OF NOISE LUBRICATED BY THE SYNTHESIS FILTER | |
DE69633633T2 (en) | MULTI-CHANNEL PREDICTIVE SUBBAND CODIER WITH ADAPTIVE, PSYCHOACOUS BOOK ASSIGNMENT | |
DE69401514T2 (en) | EFFICIENT ADAPTIVE BIT ALLOCATION FOR CODING METHODS AND CODING DEVICE IN COMPUTER EFFICIENCY | |
DE69006011T2 (en) | LOW BITRATE TRANSFORMATION ENCODERS, DECODERS AND ENCODERS / DECODERS FOR HIGH QUALITY AUDIO APPLICATIONS. | |
DE60318835T2 (en) | PARAMETRIC REPRESENTATION OF SPATIAL SOUND | |
DE69107841T2 (en) | TRANSFORMATION ENCODER AND DECODER WITH ADAPTIVE BLOCK LENGTH, ADAPTIVE TRANSFORMATION AND ADAPTIVE WINDOW FOR HIGH QUALITY SOUND SIGNALS. | |
DE69924431T2 (en) | Apparatus and method for dynamic bit distribution for audio coding | |
DE602004004168T2 (en) | COMPATIBLE MULTICHANNEL CODING / DECODING | |
DE60310716T2 (en) | SYSTEM FOR AUDIO CODING WITH FILLING OF SPECTRAL GAPS | |
DE602005006385T2 (en) | DEVICE AND METHOD FOR CONSTRUCTING A MULTI-CHANNEL OUTPUT SIGNAL OR FOR PRODUCING A DOWNMIX SIGNAL | |
DE69210064T2 (en) | Subband encoder and transmitter using this encoder | |
DE602004010885T2 (en) | AUDIO-TRANS CODING | |
DE69333394T2 (en) | Highly effective coding method and device | |
DE60303214T2 (en) | PROCEDURE FOR REDUCING ALIASING FAILURES CAUSED BY THE ADAPTATION OF THE SPECTRAL CURVE IN REAL-VALUE FILTER BANKS | |
DE602005005640T2 (en) | MULTI-CHANNEL AUDIOCODING | |
DE69826529T2 (en) | FAST DATA FRAME OPTIMIZATION IN AN AUDIO ENCODER | |
DE4320990B4 (en) | Redundancy reduction procedure | |
EP1609084B1 (en) | Device and method for conversion into a transformed representation or for inversely converting the transformed representation | |
DE10345995B4 (en) | Apparatus and method for processing a signal having a sequence of discrete values | |
WO2004021710A2 (en) | Device and method for scalable coding and device and method for scalable decoding | |
DE602005005441T2 (en) | AUDIOCODING BASED ON BLOCK GROUPING | |
EP1397799B1 (en) | Method and device for processing time-discrete audio sampled values | |
EP0611516B1 (en) | Process for reducing data in the transmission and/or storage of digital signals from several dependent channels | |
DE60024729T2 (en) | SYSTEM AND METHOD FOR EFFICIENT TIRE ANTI-DIALING (TDAC) | |
EP1825356A2 (en) | Method for producing a representation of a calculation result that is linearly dependent on the square of a value |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |