ES2946235T3 - Stereo audio signal encoder - Google Patents
Stereo audio signal encoder Download PDFInfo
- Publication number
- ES2946235T3 ES2946235T3 ES18747600T ES18747600T ES2946235T3 ES 2946235 T3 ES2946235 T3 ES 2946235T3 ES 18747600 T ES18747600 T ES 18747600T ES 18747600 T ES18747600 T ES 18747600T ES 2946235 T3 ES2946235 T3 ES 2946235T3
- Authority
- ES
- Spain
- Prior art keywords
- index
- reordering
- additional
- index values
- map
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005236 sound signal Effects 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000013139 quantization Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 230000015654 memory Effects 0.000 description 13
- 230000003044 adaptive effect Effects 0.000 description 10
- 238000013461 design Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001960 triggered effect 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/02—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 spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
- G10L19/035—Scalar quantisation
-
- 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/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
-
- 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/0017—Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
-
- 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
- G10L19/18—Vocoders using multiple modes
- G10L19/24—Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Acoustics & Sound (AREA)
- Computational Linguistics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Electrophonic Musical Instruments (AREA)
- Stereo-Broadcasting Methods (AREA)
- Signal Processing Not Specific To The Method Of Recording And Reproducing (AREA)
Abstract
Un método que comprende: recibir al menos dos señales de canales de audio; determinar, para un primer cuadro, al menos dos parámetros que representan una diferencia entre las al menos dos señales de audio de canal; cuantificar escalar (451) los al menos dos parámetros para generar al menos dos valores de índice; determinar un mapa de índice inicial para reordenar (453) uno de los al menos dos valores de índice, y determinar al menos un mapa de índice adicional para reordenar al menos otro de los al menos dos valores de índice, en el que el al menos un mapa de índice adicional se determina basándose en uno de los al menos dos valores de índice; reordenar uno de los al menos dos valores de índice en base al mapa de índice inicial; reordenar el otro de los al menos dos valores de índice en base al al menos un mapa de índice adicional; codificar (455) el reordenado de los al menos dos valores de índice dependiendo de una posición de orden del reordenado de los al menos dos valores de índice; codificar el más reordenado de los al menos dos valores de índice en base a una posición de orden del más reordenado de los al menos dos valores de índice; generar una representación de un solo canal de al menos dos señales de canal de audio en función de al menos dos parámetros; y codificar (456) la representación de un solo canal. (Traducción automática con Google Translate, sin valor legal)A method comprising: receiving at least two audio channel signals; determining, for a first frame, at least two parameters representing a difference between the at least two channel audio signals; scalar quantizing (451) the at least two parameters to generate at least two index values; determining an initial index map for reordering (453) one of the at least two index values, and determining at least one further index map for reordering at least one other of the at least two index values, wherein the at least a further index map is determined based on one of the at least two index values; reorder one of the at least two index values based on the initial index map; reordering the other of the at least two index values based on the at least one additional index map; encoding (455) the reordering of the at least two index values depending on an order position of the reordering of the at least two index values; encoding the most reordered of the at least two index values based on an order position of the most reordered of the at least two index values; generating a single channel representation of at least two audio channel signals based on at least two parameters; and encoding (456) the representation of a single channel. (Automatic translation with Google Translate, without legal value)
Description
DESCRIPCIÓNDESCRIPTION
Codificador de señal de audio estéreoStereo audio signal encoder
CampoField
La presente solicitud se refiere a un codificador de señal de audio estéreo y, en particular, pero no exclusivamente, a un codificador de señal de audio estéreo para uso en aparatos portátiles.The present application relates to a stereo audio signal encoder and, in particular, but not exclusively, to a stereo audio signal encoder for use in portable devices.
AntecedentesBackground
Las señales de audio, como la voz o la música, se codifican, por ejemplo, para permitir una transmisión o almacenamiento eficiente de las señales de audio.Audio signals, such as speech or music, are encoded, for example, to allow efficient transmission or storage of the audio signals.
Los codificadores y decodificadores de audio (también conocidos como códecs) se usan para representar señales basadas en audio, tales como la música y sonidos ambientales (que en términos de codificación de voz pueden denominarse ruido de fondo). Estos tipos de codificadores típicamente no utilizan un modelo de voz para el proceso de codificación, en su lugar usan procesos para representar todo tipo de señales de audio, incluyendo la voz. Los codificadores y decodificadores de voz (códecs) pueden considerarse códecs de audio que están optimizados para señales de voz y pueden operar a una tasa de bits fija o variable.Audio encoders and decoders (also known as codecs) are used to represent audio-based signals such as music and environmental sounds (which in speech coding terms can be called background noise). These types of encoders typically do not use a speech model for the encoding process, instead they use processes to represent all kinds of audio signals, including speech. Speech encoders and decoders (codecs) can be thought of as audio codecs that are optimized for speech signals and can operate at a fixed or variable bit rate.
También se puede configurar un códec de audio para operar con tasas de bits variables. A tasas de bits inferiores, un códec de audio de este tipo puede optimizarse para trabajar con señales de voz a una tasa de codificación equivalente a un códec de voz puro. A tasas de bits superiores, el códec de audio puede codificar cualquier señal, incluyendo la música, el ruido de fondo y la voz, con calidad y rendimiento superiores. Un códec de audio de tasa variable también puede implementar una estructura y un flujo de bits de codificación escalable integrada, donde los bits adicionales (una cantidad específica de bits a menudo se denomina capa) mejoran la codificación a tasas inferiores, y donde el flujo de bits de una tasa superior puede truncarse para obtener el flujo de bits de una codificación de tasa inferior. Un códec de audio de este tipo puede utilizar un códec diseñado únicamente para señales de voz como capa de núcleo o codificación de tasa de bits más baja.An audio codec can also be configured to operate with variable bit rates. At lower bit rates, such an audio codec can be optimized to work with speech signals at a coding rate equivalent to a pure speech codec. At higher bit rates, the audio codec can encode any signal, including music, background noise, and speech, with superior quality and performance. A variable rate audio codec can also implement an integrated scalable coding bitstream and structure, where additional bits (a specific number of bits often referred to as a layer) improve coding at lower rates, and where the bits of a higher rate can be truncated to obtain the bit stream of a lower rate encoding. Such an audio codec may use a codec designed solely for speech signals as the core layer or lower bit rate coding.
Un códec de audio está diseñado para mantener una alta calidad (perceptual) mientras mejora la relación de compresión. Por lo tanto, en lugar de la codificación de coincidencia de forma de onda, es común emplear diversos esquemas paramétricos para reducir la tasa de bits. Para audio multicanal, tal como señales estéreo, es común usar una cantidad mayor de la tasa de bits disponible en una representación de canal mono y codificar la información estéreo o multicanal aprovechando un enfoque paramétrico que usa relativamente pocos bits.An audio codec is designed to maintain high (perceptual) quality while improving the compression ratio. Therefore, instead of waveform coincidence coding, it is common to employ various parametric schemes to reduce the bit rate. For multi-channel audio, such as stereo signals, it is common to use a greater amount of the available bit rate in a mono channel representation and encode the stereo or multi-channel information taking advantage of a parametric approach that uses relatively few bits.
Los esfuerzos actuales de normalización de voz y audio en el Proyecto de Asociación de Tercera Generación (3GPP) tienen como objetivo aumentar la calidad de la señal codificada a través de la eficiencia de codificación, el ancho de banda, así como el número de canales. Se está preparando una extensión estéreo/binaural para el candidato a códec de voz y audio de Servicios de Voz Mejorados (EVS). La eficiencia de codificación para esta propuesta es importante, especialmente para tasas de bits de códec inferiores. Como la adición de una extensión de tasa de bits grande disminuiría los beneficios de tener una extensión, si la tasa de bits total equivale o supera la tasa de bits de un modo dual.Current voice and audio standardization efforts in the Third Generation Partnership Project (3GPP) aim to increase the quality of the encoded signal through coding efficiency, bandwidth, as well as the number of channels. A stereo/binaural extension is in preparation for the Enhanced Voice Services (EVS) voice and audio codec candidate. The coding efficiency for this approach is important, especially for lower codec bit rates. As the addition of a large bitrate extension would diminish the benefits of having an extension, if the total bitrate equals or exceeds the bitrate of a dual mode.
La extensión estéreo/binaural propuesta está compuesta de parámetros estéreo codificados. Aumentar la eficiencia de codificación para estos parámetros significa reducir la tasa de bits de la extensión y usar los bits 'guardados' para una mejor codificación de la mezcla descendente mono. Esto es particularmente útil a tasas de bits bajas donde la calidad de la mezcla descendente codificada es más sensible a la tasa de bits.The proposed stereo/binaural extension is composed of encoded stereo parameters. Increasing the encoding efficiency for these parameters means lowering the bitrate of the extension and using the 'saved' bits for better encoding of the mono downmix. This is particularly useful at low bit rates where the quality of the encoded downmix is more sensitive to bit rate.
Al abordar la eficiencia de codificación de los parámetros estéreo, se puede lograr un ahorro significativo de bits. La eficiencia de codificación de los parámetros estéreo ha implicado la cuantificación de los valores (niveles), seguida de la codificación por entropía para reducir además la tasa de bits. Un procedimiento propuesto anteriormente para codificar los parámetros estéreo descrito en el documento EP2856776 usa una versión adaptativa de la codificación Golomb Rice. By addressing the coding efficiency of the stereo parameters, significant bit savings can be achieved. The coding efficiency of the stereo parameters has involved quantization of the values (levels), followed by entropy coding to further reduce the bit rate. A previously proposed method for encoding stereo parameters described in EP2856776 uses an adaptive version of Golomb Rice coding.
El documento US2016/027445 presenta un aparato que comprende un mapeador configurado para mapear una instancia de un parámetro según un primer mapeo para generar una primera instancia mapeada; un remapeador configurado para remapear la primera instancia mapeada dependiendo de la distribución de frecuencia de instancias mapeadas para generar una instancia remapeada con una posición de orden asociada; y un codificador configurado para codificar la instancia remapeada dependiendo de una posición de orden de la instancia remapeada.US2016/027445 discloses an apparatus comprising a mapper configured to map an instance of a parameter according to a first mapping to generate a first mapped instance; a remapper configured to remap the first mapped instance depending on the frequency distribution of mapped instances to generate a remapped instance with an associated order position; and an encoder configured to encode the remapped instance depending on an order position of the remapped instance.
El documento US2015/194160 presenta un codificador de audio para codificar segmentos de coeficientes, representando los segmentos de coeficientes diferentes resoluciones de tiempo o frecuencia de una señal de audio muestreada. El codificador de audio incluye un procesador para derivar un contexto de codificación para un coeficiente codificado actualmente de un segmento actual basándose en un coeficiente codificado previamente de un segmento anterior, representando el coeficiente codificado previamente una resolución de tiempo o frecuencia diferente del coeficiente codificado actualmente. El codificador de audio incluye además un codificador por entropía para codificar por entropía el coeficiente actual basándose en el contexto de codificación para obtener un flujo de audio codificado. US2015/194160 discloses an audio encoder for encoding coefficient slices, the coefficient slices representing different time or frequency resolutions of a sampled audio signal. The audio encoder includes a processor for deriving an encoding context for a currently encoded coefficient of a current segment based on a previously encoded coefficient of a previous segment, the previously encoded coefficient representing a different time or frequency resolution than the currently encoded coefficient. The audio encoder further includes an entropy encoder for entropy encoding the current coefficient based on the encoding context to obtain an encoded audio stream.
El documento US2005/015249 presenta un codificador de audio que realiza codificación por entropía adaptativa de datos de audio. Por ejemplo, un codificador de audio cambia entre la codificación Huffman de vector de dimensión variable de niveles directos de datos de audio cuantificados y la codificación de nivel de serie de longitudes de serie y niveles de datos de audio cuantificados. El codificador puede usar, por ejemplo, codificación aritmética basada en contexto para codificar longitudes y niveles de serie. El codificador puede determinar cuándo cambiar entre modos de codificación contando coeficientes consecutivos que tienen un valor predominante (por ejemplo, cero). Un decodificador de audio realiza la correspondiente decodificación por entropía adaptativa.US2005/015249 discloses an audio encoder that performs adaptive entropy coding of audio data. For example, an audio encoder switches between variable dimension vector Huffman encoding of direct levels of quantized audio data and string level encoding of string lengths and levels of quantized audio data. The encoder may use, for example, context-based arithmetic encoding to encode string lengths and levels. The encoder can determine when to switch between encoding modes by counting consecutive coefficients that have a predominant value (eg, zero). An audio decoder performs the corresponding adaptive entropy decoding.
El documento WO2014/013294 presenta un aparato que comprende: un analizador de canal configurado para determinar al menos un conjunto de parámetros que definen una diferencia entre al menos dos canales de señal de audio; un analizador de valor configurado para analizar el al menos un conjunto de parámetros para determinar una tendencia inicial; un mapeador configurado para mapear instancias del al menos un conjunto de parámetros según un primer mapeo para generar instancias mapeadas con instancias de posición de orden asociadas basándose en la tendencia inicial; y un codificador configurado para codificar las instancias mapeadas basándose en la posición de orden de las instancias mapeadas.Document WO2014/013294 presents an apparatus comprising: a channel analyzer configured to determine at least one set of parameters that define a difference between at least two audio signal channels; a value analyzer configured to analyze the at least one set of parameters to determine an initial trend; a mapper configured to map instances of the at least one parameter set according to a first mapping to generate mapped instances with associated order position instances based on the initial trend; and an encoder configured to encode the mapped instances based on the order position of the mapped instances.
ResumenSummary
Según un primer aspecto, se proporciona un aparato como se define en la reivindicación 1.According to a first aspect, there is provided an apparatus as defined in claim 1.
Según un segundo aspecto, se proporciona un procedimiento como se presenta la reivindicación 10.According to a second aspect, there is provided a method as claimed in claim 10.
Según un tercer aspecto, se proporciona un procedimiento según se define en la reivindicación 13.According to a third aspect, there is provided a method as defined in claim 13.
Según un segundo aspecto, se proporciona un procedimiento como se define en la reivindicación 14.According to a second aspect, there is provided a method as defined in claim 14.
Breve descripción de los dibujosBrief description of the drawings
Para una mejor comprensión de la presente invención, ahora se hará referencia a modo de ejemplo a los dibujos adjuntos, en los que:For a better understanding of the present invention, reference will now be made by way of example to the accompanying drawings, in which:
La Figura 1 muestra esquemáticamente un dispositivo electrónico que emplea algunas realizaciones;Figure 1 schematically shows an electronic device employing some embodiments;
La Figura 2 muestra esquemáticamente un sistema de códec de audio según algunas realizaciones;Figure 2 schematically shows an audio codec system according to some embodiments;
La Figura 3 muestra esquemáticamente un codificador como se muestra en la Figura 2 según algunas realizaciones; La Figura 4 muestra esquemáticamente un analizador de canal como se muestra en la Figura 3 con más detalle según algunas realizaciones;Figure 3 schematically shows an encoder as shown in Figure 2 according to some embodiments; Figure 4 schematically shows a channel analyzer as shown in Figure 3 in more detail according to some embodiments;
La Figura 5 muestra esquemáticamente un codificador de canal estéreo como se muestra en la Figura 3 con más detalle según algunas realizaciones;Figure 5 schematically shows a stereo channel encoder as shown in Figure 3 in more detail according to some embodiments;
La Figura 6 muestra un diagrama de flujo que ilustra la operación del codificador mostrado en la Figura 2 según algunas realizaciones;Figure 6 shows a flowchart illustrating the operation of the encoder shown in Figure 2 according to some embodiments;
La Figura 7 muestra un diagrama de flujo que ilustra la operación del analizador de canal como se muestra en la Figura 4 según algunas realizaciones;Figure 7 shows a flowchart illustrating the operation of the channel analyzer as shown in Figure 4 according to some embodiments;
La Figura 8 muestra un diagrama de flujo que ilustra la operación del codificador de canal como se muestra en la Figura 5 según algunas realizaciones;Figure 8 shows a flowchart illustrating the operation of the channel encoder as shown in Figure 5 according to some embodiments;
La Figura 9 muestra esquemáticamente el decodificador como se muestra en la Figura 2 según algunas realizaciones; y La Figura 10 muestra un diagrama de flujo que ilustra la operación del decodificador como se muestra en la Figura 9 según algunas realizaciones.Figure 9 schematically shows the decoder as shown in Figure 2 according to some embodiments; and Figure 10 shows a flowchart illustrating the operation of the decoder as shown in Figure 9 according to some embodiments.
Descripción de algunas realizaciones de la solicitudDescription of some embodiments of the application
A continuación, se describen con más detalle los posibles códecs de voz y audio estéreo y multicanal, incluyendo los códecs de voz y audio de tasa variable en capas o escalables. Como se analizó anteriormente, un procedimiento propuesto anteriormente para codificar los parámetros estéreo descrito en el documento EP2856776 usa una versión adaptativa de la codificación Golomb Rice. Possible stereo and multi-channel audio and speech codecs are described in more detail below, including layered or scalable variable rate audio and speech codecs. As discussed above, a previously proposed method of encoding stereo parameters described in EP2856776 uses an adaptive version of Golomb Rice coding.
El concepto, tal como se expresa en las realizaciones descritas a continuación en la memoria, intenta capturar y aprovechar mejor la correlación de valores intratrama y, como consecuencia, reducir además el consumo de tasa de bits para codificar los parámetros estéreo.The concept, as expressed in the embodiments described herein below, attempts to better capture and exploit intra-frame value mapping and, as a consequence, further reduce bit rate consumption for encoding stereo parameters.
Como tal, las realizaciones almacenan explícitamente el orden de las probabilidades de primer orden de los símbolos a codificar (en lugar de ordenarlos de forma adaptativa). En otras palabras, para una única trama de datos, basándose en un símbolo previamente codificado, una matriz de números enteros mantiene el orden de probabilidades para cada símbolo. En otras palabras 0 si es el más probable, 1 si es el segundo más probable y así sucesivamente. A continuación, se codifica el valor del orden de probabilidad con un código GR adaptativo. As such, the implementations explicitly store the ordering of the first-order probabilities of the symbols to be encoded (instead of adaptively ordering them). In other words, for a single data frame, based on a previously encoded symbol, an array of integers maintains the ordering of probabilities for each symbol. In other words, 0 if it is the most likely, 1 if it is the second most likely, and so on. The probability order value is then encoded with an adaptive GR code.
Con respecto a esto, en primer lugar, se hace referencia a la Figura 1, que muestra un diagrama de bloques esquemático de un dispositivo o aparato 10 electrónico ilustrativo, que puede incorporar un códec según una realización de la solicitud. In this regard, reference is first made to Figure 1, which shows a schematic block diagram of an illustrative electronic device or apparatus 10, which may incorporate a codec according to one embodiment of the application.
El aparato 10 puede ser, por ejemplo, un terminal móvil o equipo de usuario de un sistema de comunicación inalámbrica. En otras realizaciones, el aparato 10 puede ser un dispositivo de audio-vídeo, tal como una cámara de video, un receptor de televisión (TV), una grabadora de audio o un reproductor de audio, tal como una grabadora/reproductor de mp3, una grabadora de medios (también conocida como grabadora/reproductor de mp4), o cualquier ordenador adecuado para el procesamiento de señales de audio.The apparatus 10 can be, for example, a mobile terminal or user equipment of a wireless communication system. In other embodiments, apparatus 10 may be an audio-video device, such as a video camera, television (TV) receiver, audio recorder, or audio player, such as an mp3 recorder/player, a media recorder (also known as mp4 recorder/player), or any computer suitable for audio signal processing.
El dispositivo o aparato 10 electrónico en algunas realizaciones comprende un micrófono 11, que está conectado a través de un convertidor de analógico a digital (ADC) 14 a un procesador 21. El procesador 21 está además conectado a través de un convertidor 32 de digital a analógico (DAC) a los altavoces 33. El procesador 21 está además conectado a un transceptor (RX/TX) 13, a una interfaz de usuario (IU) 15 y a una memoria 22.Electronic device or apparatus 10 in some embodiments comprises a microphone 11, which is connected via an analog-to-digital converter (ADC) 14 to a processor 21. Processor 21 is further connected via a digital-to-digital converter 32 (DAC) to the speakers 33. The processor 21 is further connected to a transceiver (RX/TX) 13, a user interface (UI) 15 and a memory 22.
El procesador 21 puede configurarse en algunas realizaciones para ejecutar diversos códigos de programa. Los códigos de programa implementados en algunas realizaciones comprenden un código de codificación o decodificación multicanal o estéreo como se describe en la presente memoria. Los códigos 23 de programa implementados pueden almacenarse en algunas realizaciones, por ejemplo, en la memoria 22 para que el procesador 21 los recupere cada vez que sea necesario. La memoria 22 podría además proporcionar una sección 24 para almacenar datos, por ejemplo, datos que se han codificados según la aplicación.Processor 21 can be configured in some embodiments to execute various program codes. Program codes implemented in some embodiments comprise a multi-channel or stereo encoding or decoding code as described herein. The implemented program codes 23 may be stored in some embodiments, for example, in memory 22 for retrieval by processor 21 whenever necessary. The memory 22 could further provide a section 24 for storing data, eg data that has been encoded according to the application.
El código de codificación y decodificación en las realizaciones puede implementarse en hardware y/o firmware. The encoding and decoding code in embodiments may be implemented in hardware and/or firmware.
La interfaz 15 de usuario permite que un usuario introduzca comandos en el dispositivo 10 electrónico, por ejemplo, a través de un teclado, y/u obtenga información del dispositivo 10 electrónico, por ejemplo, a través de una pantalla. En algunas realizaciones, una pantalla táctil puede proporcionar funciones tanto de entrada como de salida para la interfaz de usuario. El aparato 10 en algunas realizaciones comprende un transceptor 13 adecuado para permitir la comunicación con otros aparatos, por ejemplo, a través de una red de comunicación inalámbrica.The user interface 15 allows a user to enter commands into the electronic device 10, eg via a keyboard, and/or obtain information from the electronic device 10, eg via a display. In some embodiments, a touch screen may provide both input and output functions for the user interface. The apparatus 10 in some embodiments comprises a transceiver 13 suitable to allow communication with other apparatus, for example, through a wireless communication network.
Debe entenderse nuevamente que la estructura del aparato 10 podría complementarse y variarse de muchas formas. It should again be understood that the structure of the apparatus 10 could be supplemented and varied in many ways.
Un usuario del aparato 10, por ejemplo, puede usar el micrófono 11 para introducir voz u otras señales de audio que van a transmitirse a algún otro aparato o que van a almacenarse en la sección 24 de datos de la memoria 22. El usuario puede activar una aplicación correspondiente en algunas realizaciones para este fin a través de la interfaz 15 de usuario. Esta aplicación en estas realizaciones puede realizarse por el procesador 21, hace que el procesador 21 ejecute el código de codificación almacenado en la memoria 22.A user of apparatus 10, for example, can use microphone 11 to input speech or other audio signals to be transmitted to some other apparatus or stored in data section 24 of memory 22. The user can activate a corresponding application in some embodiments for this purpose via the user interface 15 . This application in these embodiments can be performed by processor 21, it causes processor 21 to execute the encryption code stored in memory 22.
El convertidor de analógico a digital (ADC) 14 en algunas realizaciones convierte la señal de audio analógica de entrada en una señal de audio digital y proporciona la señal de audio digital al procesador 21. En algunas realizaciones, el micrófono 11 puede comprender una función integrada de micrófono y ADC y proporcionar señales de audio digitales directamente al procesador para su procesamiento.Analog-to-digital converter (ADC) 14 in some embodiments converts the input analog audio signal to a digital audio signal and provides the digital audio signal to processor 21. In some embodiments, microphone 11 may comprise an integrated function microphone and ADC and provide digital audio signals directly to the processor for processing.
El procesador 21 en tales realizaciones a continuación procesa la señal de audio digital de la misma manera que se describe con referencia al sistema mostrado en la Figura 2, al codificador mostrado en las Figuras 2 a 8 y al decodificador mostrado en las Figuras 9 y 10.The processor 21 in such embodiments then processes the digital audio signal in the same manner as described with reference to the system shown in Figure 2, the encoder shown in Figures 2 to 8 and the decoder shown in Figures 9 and 10. .
El flujo de bits resultante puede proporcionarse en algunas realizaciones al transceptor 13 para su transmisión a otro aparato. Alternativamente, los datos de audio codificados en algunas realizaciones pueden almacenarse en la sección 24 de datos de la memoria 22, por ejemplo, para una transmisión posterior o para una presentación posterior por el mismo aparato 10. The resulting bit stream may in some embodiments be provided to transceiver 13 for transmission to other apparatus. Alternatively, the encoded audio data in some embodiments may be stored in the data section 24 of the memory 22, for example, for later transmission or for later presentation by the same apparatus 10.
El aparato 10 en algunas realizaciones también puede recibir un flujo de bits con datos codificados correspondientemente desde otro aparato a través del transceptor 13. En este ejemplo, el procesador 21 puede ejecutar el código del programa de decodificación almacenado en la memoria 22. El procesador 21 en tales realizaciones decodifica los datos recibidos y proporciona los datos decodificados a un convertidor 32 de digital a analógico. El convertidor 32 de digital a analógico convierte los datos decodificados digitales en datos de audio analógicos y, en algunas realizaciones, emite el audio analógico a través de los altavoces 33. La ejecución del código de programa de decodificación en algunas realizaciones también puede desencadenarse por una aplicación llamada por el usuario a través de la interfaz 15 de usuario.Apparatus 10 in some embodiments may also receive a correspondingly encoded data bit stream from another apparatus via transceiver 13. In this example, processor 21 may execute the decoding program code stored in memory 22. Processor 21 in such embodiments, it decodes the received data and provides the decoded data to a digital-to-analog converter 32. The digital-to-analog converter 32 converts the digital decoded data to analog audio data and, in some embodiments, outputs the audio analog through the speakers 33. The execution of the decoding program code in some embodiments may also be triggered by an application called by the user through the user interface 15.
Los datos codificados recibidos en alguna realización también pueden almacenarse en lugar de una presentación inmediata a través de los altavoces 33 en la sección 24 de datos de la memoria 22, por ejemplo, para su posterior decodificación y presentación o decodificación y reenvío a otro aparato más.Received encoded data in some embodiment may also be stored instead of immediate presentation through speakers 33 in data section 24 of memory 22, for example, for later decoding and presentation or decoding and forwarding to further apparatus. .
Se apreciaría que las estructuras esquemáticas descritas en las Figuras 3, 5, 7 y 9, y las etapas de procedimiento mostradas en las Figuras 4, 6, 8 y 10 representan únicamente una parte de la operación de un códec de audio y específicamente parte de un aparato o procedimiento codificador/decodificador como se muestra ilustrativamente implementado en el aparato mostrado en la Figura 1.It would be appreciated that the schematic structures depicted in Figures 3, 5, 7 and 9, and the process steps shown in Figures 4, 6, 8 and 10 represent only part of the operation of an audio codec and specifically part of an encoder/decoder apparatus or method as shown illustratively implemented in the apparatus shown in Figure 1.
La operación general de los códecs de audio según se emplean por las realizaciones se muestra en la Figura 2. Los sistemas de codificación/decodificación de audio generales comprenden tanto un codificador como un decodificador, como se ilustra esquemáticamente en la Figura 2. Sin embargo, se entendería que algunas realizaciones pueden implementar uno de tanto el codificador como el decodificador, o ambos, el codificador y el decodificador. En la Figura 2 se ilustra un sistema 102 con un codificador 104 y, en particular, un codificador 151 estéreo, un canal 106 de almacenamiento o de medios y un decodificador 108. Se entendería que, como se describió anteriormente, algunas realizaciones pueden comprender o implementar uno del codificador 104 o decodificador 108 o tanto el codificador 104 como el decodificador 108.The general operation of the audio codecs as employed by the embodiments is shown in Figure 2. General audio encoding/decoding systems comprise both an encoder and a decoder, as schematically illustrated in Figure 2. However, it would be understood that some embodiments may implement one of both the encoder and the decoder, or both the encoder and the decoder. Illustrated in Figure 2 is a system 102 with an encoder 104 and, in particular, a stereo encoder 151, a storage or media channel 106 and a decoder 108. It would be understood that, as described above, some embodiments may comprise or implement one of encoder 104 or decoder 108 or both encoder 104 and decoder 108.
El codificador 104 comprime una señal 110 de audio de entrada que produce un flujo 112 de bits, que en algunas realizaciones se puede almacenar o transmitir a través de un canal 106 de medios. El codificador 104 además puede comprender un codificador 151 estéreo como parte de la operación de codificación global. Debe entenderse que, el codificador estéreo puede ser parte del codificador 104 global o un módulo de codificación separado. El codificador 104 también puede comprender un codificador multicanal que codifica más de dos señales de audio. Encoder 104 compresses an input audio signal 110 producing a bit stream 112, which in some embodiments may be stored or transmitted via media channel 106. Encoder 104 may further comprise a stereo encoder 151 as part of the overall encoding operation. It should be understood that the stereo encoder may be part of the overall encoder 104 or a separate encoding module. Encoder 104 may also comprise a multi-channel encoder that encodes more than two audio signals.
El flujo 112 de bits se puede recibir dentro del decodificador 108. El decodificador 108 descomprime el flujo 112 de bits y produce una señal 114 de audio de salida. El decodificador 108 puede comprender un decodificador estéreo como parte de la operación de decodificación global. Debe entenderse que, el decodificador estéreo puede ser parte del decodificador 108 global o un módulo de decodificación separado. El decodificador 108 también puede comprender un decodificador multicanal que decodifica más de dos señales de audio. La tasa de bits del flujo 112 de bits y la calidad de la señal 114 de audio de salida en relación con la señal 110 de entrada son las principales características que definen el rendimiento del sistema 102 de codificación.Bit stream 112 can be received into decoder 108. Decoder 108 decompresses bit stream 112 and produces an output audio signal 114 . Decoder 108 may comprise a stereo decoder as part of the overall decoding operation. It should be understood that the stereo decoder may be part of the overall decoder 108 or a separate decoding module. Decoder 108 may also comprise a multi-channel decoder that decodes more than two audio signals. The bit rate of the bit stream 112 and the quality of the output audio signal 114 relative to the input signal 110 are the main characteristics that define the performance of the encoding system 102.
Con respecto a la Figura 3, se muestra un codificador 104 ilustrativo según algunas realizaciones.Referring to Figure 3, an illustrative encoder 104 is shown according to some embodiments.
El codificador 104 en algunas realizaciones comprende un seccionador/transformador 201 de tramas. El seccionador/transformador 201 de tramas está configurado para recibir las señales de audio de entrada izquierda y derecha (o más generalmente cualquier representación de audio multicanal) y generar representaciones del dominio de la frecuencia de estas señales de audio para analizarlas y codificarlas. Estas representaciones del dominio de la frecuencia se pueden pasar al determinador 203 de parámetros de canal.The encoder 104 in some embodiments comprises a frame splitter/transformer 201. Frame splitter/transformer 201 is configured to receive the left and right input audio signals (or more generally any multi-channel audio representation) and generate frequency domain representations of these audio signals for analysis and encoding. These frequency domain representations may be passed to the channel parameter determiner 203.
En algunas realizaciones, el seccionador/transformador 201 de tramas se puede configurar para seccionar o segmentar los datos de la señal de audio en secciones o tramas adecuadas para la transformación del dominio de la frecuencia. El seccionador/transformador 201 de tramas en algunas realizaciones puede configurarse además para delimitar en ventanas estas tramas o secciones de datos de señales de audio según cualquier función de delimitación en ventanas adecuada. Por ejemplo, el seccionador/transformador 201 de tramas puede configurarse para generar tramas de 20 ms que se superponen a las tramas anteriores y posteriores en 10 ms cada una. In some embodiments, the slicer/frame transformer 201 may be configured to slice or segment the audio signal data into sections or frames suitable for frequency domain transformation. Frame splitter/transformer 201 in some embodiments may be further configured to window these frames or sections of audio signal data according to any suitable windowing function. For example, frame splitter/transformer 201 may be configured to generate 20 ms frames that overlap the preceding and following frames by 10 ms each.
En algunas realizaciones, el seccionador/transformador 201 de tramas puede configurarse para realizar cualquier transformación del tiempo al dominio de la frecuencia adecuada en los datos de la señal de audio. Por ejemplo, la transformación del dominio del tiempo al de la frecuencia puede ser una transformada de Fourier discreta (DFT), una transformada rápida de Fourier (FFT), una transformada de coseno discreta modificada (MDCT). En los siguientes ejemplos se usa una transformada rápida de Fourier (FFT). Además, la salida del transformador del dominio del tiempo al de la frecuencia puede procesarse además para generar representaciones del dominio de banda de frecuencia separadas (representaciones de subbanda) de cada dato de señal de audio de canal de entrada. Estas bandas pueden estar dispuestas de cualquier manera adecuada. Por ejemplo, estas bandas pueden estar espaciadas linealmente, o ser asignadas perceptivamente o psicoacústicamente. En algunas realizaciones, las representaciones del dominio de la frecuencia se pasan a un analizador 203 de canal.In some embodiments, frame splitter/transformer 201 may be configured to perform any suitable time-to-frequency domain transformation on the audio signal data. For example, the transformation from time to frequency domain can be a Discrete Fourier Transform (DFT), a Fast Fourier Transform (FFT), a Modified Discrete Cosine Transform (MDCT). The following examples use a Fast Fourier Transform (FFT). Furthermore, the output of the time domain to frequency domain transformer may be further processed to generate separate frequency band domain representations (subband representations) of each input channel audio signal data. These bands may be arranged in any suitable manner. For example, these bands may be linearly spaced, or perceptually or psychoacoustically assigned. In some embodiments, the frequency domain representations are passed to a channel analyzer 203.
En algunas realizaciones, el codificador 104 puede comprender un analizador 203 de canal. El analizador 203 de canal puede configurarse para recibir las representaciones filtradas de subbanda de la entrada multicanal o estéreo. El analizador 203 de canal puede además configurarse en algunas realizaciones para analizar las señales de audio en el dominio de la frecuencia y determinar los parámetros asociados con cada subbanda con respecto a las diferencias de las señales de audio estéreo o multicanal. Además, el analizador 203 de canal puede usar estos parámetros y generar un canal mono. In some embodiments, encoder 104 may comprise a channel analyzer 203. The channel analyzer 203 may be configured to receive the subband filtered representations of the multi-channel or stereo input. Channel analyzer 203 may further be configured in some embodiments to analyze audio signals in the frequency domain and determine the parameters associated with each subband with respect to differences from stereo or multi-channel audio signals. Furthermore, the channel analyzer 203 can use these parameters and generate a mono channel.
Los parámetros estereofónicos y los parámetros/señales mono pueden emitirse a continuación a un procesador cuantificador/codificador 205 mono.The stereo parameters and mono parameters/signals may then be output to a mono quantizer/encoder processor 205.
En algunas realizaciones, el codificador 104 comprende un procesador cuantificador/codificador 205 mono. El procesador cuantificador/codificador 205 mono puede configurarse para recibir los parámetros estéreo (diferencia) determinados por el analizador 203 de canal. El procesador cuantificador/codificador 205 mono puede configurarse a continuación en algunas realizaciones para realizar una cuantificación en los parámetros y además codificar los parámetros para que puedan emitirse (ya sea para ser almacenados en el aparato o pasarse a un aparato adicional). El procesador cuantificador/codificador 205 mono puede configurarse además para recibir los parámetros/canal mono y además codificar los parámetros/canal mono usando cualquier codificación adecuada y además basándose en el número de bits usados para codificar los parámetros estéreo. En otras palabras, en primer lugar, se codifican los parámetros estéreo y a continuación se codifica la señal de mezcla descendente. Los bits que se guardan usando la codificación por entropía para los parámetros estéreo pueden usarse para codificar la señal mezclada de manera descendente.In some embodiments, encoder 104 comprises a mono quantizer/encoder processor 205. The mono quantizer/encoder processor 205 may be configured to receive the stereo parameters (difference) determined by the channel analyzer 203 . The mono quantizer/encoder processor 205 may then be configured in some embodiments to perform quantization on the parameters and further encode the parameters so that they can be output (either to be stored in the apparatus or passed to additional apparatus). The mono quantizer/encoder processor 205 can be further configured to receive the mono parameters/channel and further encode the mono parameters/channel using any suitable encoding and further based on the number of bits used to encode the stereo parameters. In other words, first the stereo parameters are encoded and then the downmix signal is encoded. The bits that are saved using entropy coding for the stereo parameters can be used to down-code the mixed signal.
En algunas realizaciones, el codificador comprende una salida 207 de señal. La salida de señal, como se muestra en la Figura 3, representa una salida configurada para pasar los parámetros estéreo codificados para ser almacenados o transmitidos a un aparato adicional.In some embodiments, the encoder comprises a signal output 207. The signal output, as shown in Figure 3, represents an output configured to pass the encoded stereo parameters to be stored or transmitted to an additional device.
Con respecto a la Figura 4, se muestra como un diagrama de flujo un resumen del proceso de codificación según algunas realizaciones y la operación del codificador 104 mostrado en la Figura 3.With respect to Figure 4, a summary of the encoding process according to some embodiments and the operation of the encoder 104 shown in Figure 3 is shown as a flowchart.
La operación de generar representaciones del dominio de la frecuencia de banda de trama de audio se muestra en la Figura 4 por la etapa 501.The operation of generating audio frame band frequency domain representations is shown in Figure 4 by step 501.
La operación de determinación de los parámetros estéreo se muestra en la Figura 4 por la etapa 502.The operation of determining the stereo parameters is shown in Figure 4 by step 502.
La operación de generar los parámetros de canal mono (mezcla descendente) se muestra en la Figura 4 por la etapa 503. La operación de cuantificar los parámetros estéreo (multicanal) y codificar los parámetros estéreo (multicanal) cuantificados se muestra en la Figura 4 por la etapa 504.The operation of generating the mono channel (downmix) parameters is shown in Figure 4 by step 503. The operation of quantizing the stereo (multichannel) parameters and encoding the quantized stereo (multichannel) parameters is shown in Figure 4 by step 504.
La operación de codificar los parámetros de canal mono (mezcla descendente) basándose en el uso de bits de los parámetros estéreo cuantificados optimizados se muestra en la Figura 4 por la etapa 505.The operation of encoding the mono channel parameters (downmix) based on the bit usage of the optimized quantized stereo parameters is shown in Figure 4 by step 505.
La salida de los parámetros estéreo (multicanal) cuantificados codificados y los parámetros/señal mono (mezcla descendente) codificados se muestra en la Figura 4 por la etapa 507.The output of the encoded quantized stereo (multichannel) parameters and the encoded mono (downmix) parameters/signal is shown in Figure 4 by step 507.
Con respecto a la Figura 5, se describe con más detalle un analizador 203 de canal ilustrativo según algunas realizaciones. En algunas realizaciones, el analizador 203 de canal comprende un determinador 301 de parámetro de diferencia de canal. El determinador 301 de parámetro de diferencia de canal está configurado para determinar los diversos parámetros de diferencia de canal. En los siguientes ejemplos, las señales de audio de entrada son señales de audio izquierda y derecha. En algunas realizaciones, esto puede generalizarse como canales de audio de orden j y j+1 de un sistema de audio multicanal.With respect to Figure 5, an illustrative channel analyzer 203 according to some embodiments is described in more detail. In some embodiments, the channel analyzer 203 comprises a channel difference parameter determiner 301. The channel difference parameter determiner 301 is configured to determine the various channel difference parameters. In the following examples, the input audio signals are left and right audio signals. In some embodiments, this can be generalized as j and j+1 audio channels of a multi-channel audio system.
Por ejemplo, el determinador 301 de parámetro de diferencia de canal puede configurarse para recibir los siguientes parámetros del seccionador/transformador 201 de tramas,For example, channel difference parameter determiner 301 may be configured to receive the following parameters from frame splitter/transformer 201,
componente i de la DFT del canal derecho,i component of the DFT of the right channel,
- componente i de la DFT del canal izquierdo.- component i of the DFT of the left channel.
Además, estos pueden representarse como partes real e imaginaria, tal como para el canal derecho yFurthermore, these can be represented as real and imaginary parts, such as for the right channel and
- parte real del componente de orden i de la DFT del canal derecho,- real part of the component of order i of the DFT of the right channel,
- parte imaginaria del componente de orden i de la DFT del canal. - imaginary part of the component of order i of the DFT of the channel.
A partir de estos componentes, el determinador de diferencia de canal puede configurarse para generar parámetros de energía de canal, por ejemplo:From these components, the channel difference determinator can be configured to generate channel power parameters, for example:
- energía del canal derecho,- energy of the right channel,
- energía de subbanda b del canal derecho,- right channel subband b energy,
- energía del canal izquierdo,- left channel energy,
- energía de subbanda b del canal izquierdo,- left channel subband b energy,
- media geométrica de las energías izquierda y derecha,- geometric mean of the left and right energies,
- producto escalar real,- real dot product,
- producto escalar imaginario,- imaginary scalar product,
Además, el determinador de diferencia de canal puede configurarse para determinar parámetros de diferencia (estéreo) según las siguientes ecuaciones:In addition, the channel difference determiner can be configured to determine difference (stereo) parameters according to the following equations:
ganancia secundaria para la subbanda bsecondary gain for subband b
ganancia de predicción residual no normalizada para la subbanda bnon-normalized residual prediction gain for subband b
- ganancia de predicción residual (normalizada con energía de mezcla descendente).- residual prediction gain (normalized with downmix power).
Además, en algunas realizaciones, el determinador de diferencia de canal puede configurarse para generar para señales no de voz parámetros adicionales tales como:In addition, in some embodiments, the channel difference determiner may be configured to generate for non-voice signals additional parameters such as:
Para señales de voz y para las subbandas superiores, el determinador de diferencia de canal puede configurarse para generar: For speech signals and for the higher subbands, the channel difference determiner can be configured to generate:
- diferencia de fase inter canal para la subbanda b (para subbandas superiores, este valor puede establecerse a 0). - inter-channel phase difference for subband b (for higher subbands, this value can be set to 0).
Los parámetros de diferencia tales como la diferencia de fase intercanal, la ganancia secundaria y los valores de los parámetros de ganancia de predicción residual se pueden pasar al generador de canal mono y como parámetros de canal estéreo al procesador cuantificador.Difference parameters such as interchannel phase difference, secondary gain, and residual prediction gain parameter values can be passed to the mono channel generator and as stereo channel parameters to the quantizer processor.
En algunas realizaciones, el codificador 104 (o, como se muestra en la Figura 5, el analizador 203 de canal) comprende un generador 305 de canal mono. El generador de canal mono está configurado para recibir los valores del analizador de canal, tales como las ganancias secundarias y las diferencias de fase inter canal del determinador 301 de diferencia de canal. Además, en algunas realizaciones, el generador/codificador 305 de canal mono puede configurarse para recibir además las señales de audio multicanal de entrada. El generador 305 de canal mono puede configurarse en algunas realizaciones para generar un canal 'alineado' o mezclado de manera descendente que sea representativo de las señales de audio. En otras palabras, el generador 305 de canal mono puede generar una señal de canal mono (o mezclada de manera descendente) que representa una señal de audio multicanal alineada. Por ejemplo, en algunas realizaciones donde hay una señal de audio del canal izquierdo y una señal de audio del canal derecho, una de las señales de audio del canal izquierdo o derecho se retarda con respecto a la otra según una diferencia de retardo determinada y, a continuación, se promedian las señales de canal retardado y del audio de otro canal para generar una señal de canal mono. Sin embargo, se entendería que en algunas realizaciones se puede implementar cualquier procedimiento de generación de canal mono adecuado.In some embodiments, encoder 104 (or, as shown in Figure 5, channel analyzer 203) comprises a mono channel generator 305. The mono channel generator is configured to receive the channel analyzer values, such as the secondary gains and inter-channel phase differences from the channel difference determiner 301. Additionally, in some embodiments, the mono channel generator/encoder 305 may be configured to additionally receive the input multi-channel audio signals. The mono channel generator 305 may be configured in some embodiments to generate a 'lined' or down-mixed channel that is representative of the audio signals. In other words, the mono channel generator 305 can generate a mono (or down-mixed) channel signal that represents an aligned multi-channel audio signal. For example, in some embodiments where there is a left channel audio signal and a right channel audio signal, one of the left or right channel audio signals is delayed relative to the other by a given delay difference and, then the delayed channel signals and audio from another channel are averaged to produce a mono channel signal. However, it would be understood that in some embodiments any suitable mono channel generation method may be implemented.
A continuación, se pueden emitir los parámetros/señal de canal mono. En algunas realizaciones, la señal de canal mono se emite al procesador cuantificador/codificador 205 mono para codificarse.Then the mono channel signal/parameters can be output. In some embodiments, the mono channel signal is output to mono quantizer/encoder processor 205 to be encoded.
Con respecto a la Figura 6, se muestra como un diagrama de flujo un resumen del proceso de análisis (tal como se describe en la Figura 4 por las etapas 502 y 503) según algunas realizaciones y la operación del analizador 203 de canal mostrado en la Figura 5.With respect to Figure 6, a summary of the analysis process (as described in Figure 4 by steps 502 and 503) according to some embodiments and the operation of the channel analyzer 203 shown in Figure 6 is shown as a flowchart. Figure 5.
La operación de recibir los componentes de frecuencia de señal de audio multicanal se muestra en la Figura 6 mediante la etapa 551.The operation of receiving the multi-channel audio signal frequency components is shown in Fig. 6 by step 551.
La operación de determinar parámetros intermedios (p. ej., parámetros de energía para los canales de señal de audio) se muestra en la figura 6 por la etapa 552.The operation of determining intermediate parameters (eg, power parameters for audio signal channels) is shown in Figure 6 by step 552.
La operación de determinar los parámetros de diferencia (p. ej., ganancia secundaria, diferencia de interfase, ganancia de predicción residual) que se generan al menos parcialmente a partir de los parámetros intermedios se muestra en la Figura 6 por la etapa 553.The step of determining the difference parameters (eg, secondary gain, interface difference, residual prediction gain) that are generated at least partially from the intermediate parameters is shown in Figure 6 by step 553.
La operación de generar una señal/parámetros de canal mono (mezcla descendente) a partir de una señal estéreo (multicanal) se muestra en la Figura 6 por la etapa 555.The operation of generating a mono channel (downmix) signal/parameters from a stereo (multi-channel) signal is shown in Figure 6 by step 555.
Con respecto a la Figura 7, se muestra con mayor detalle un procesador cuantificador/codificador 205 mono ilustrativo. Referring to Figure 7, an illustrative mono quantizer/encoder processor 205 is shown in greater detail.
En algunas realizaciones, el procesador cuantificador/codificador 205 mono comprende un cuantificador 451 escalar. El cuantificador 451 escalar está configurado para recibir los parámetros estéreo del analizador 203 de canal.In some embodiments, the mono quantizer/encoder processor 205 comprises a scalar quantizer 451. The scalar quantizer 451 is configured to receive the stereo parameters of the channel analyzer 203.
El cuantificador escalar se puede configurar para realizar una cuantificación escalar en estos valores. Por ejemplo, el cuantificador 451 escalar puede configurarse para cuantificar los valores con regiones de partición de cuantificación definidas por la siguiente matriz.The scalar quantizer can be configured to perform scalar quantization on these values. For example, scalar quantizer 451 can be configured to quantize values with quantization partition regions defined by the following matrix.
Q= {-10000,0, -8,0, -5,0, -3,0, 0,0, 3,0, 5,0, 8,0, 100000,0}Q= {-10000.0, -8.0, -5.0, -3.0, 0.0, 3.0, 5.0, 8.0, 100000.0}
Por lo tanto, el cuantificador 451 escalar puede generar un símbolo de valor de índice asociado con la región dentro de la región de partición de cuantificación dentro de la cual se produce el valor de diferencia de nivel. Por ejemplo, una salida de valor de índice de cuantificación inicial puede ser la siguiente:Therefore, the scalar quantizer 451 may generate an index value symbol associated with the region within the quantization partition region within which the level difference value occurs. For example, an initial quantization index value output might be as follows:
Los valores de índice pueden emitirse en algunas realizaciones a un remapeador 453.The index values may be issued in some embodiments to a 453 remapper.
En algunas realizaciones, el procesador cuantificador/codificador 205 mono comprende un remapeador 453. El remapeador 453 puede configurarse en algunas realizaciones para recibir la salida del cuantificador 451 escalar, en otras palabras, un valor de índice asociado con la región de partición de cuantificación dentro de la cual se encuentra el parámetro estéreo o de diferencia y, a continuación, mapear u ordenar el valor de índice según a un mapeo definido. En algunas realizaciones, el (re)mapeo (o reordenación) de índice está basado en un mapa adaptativo seleccionado de un rango de mapas definido. Los mapas definidos pueden ser mapas que se determinan a partir de datos de entrenamiento o cualquier otra forma adecuada que aproveche la correlación intratrama. Por ejemplo, estos mapas pueden aprovechar la correlación entre símbolos adyacentes que representan parámetros de subbanda adyacentes. Como tal, el primer símbolo dentro de una trama puede mapearse según un mapa predeterminado o definido. El segundo símbolo dentro de una trama mapeada según un mapa que se selecciona basándose en el primer símbolo, y así sucesivamente.In some embodiments, mono quantizer/encoder processor 205 comprises a remapper 453. Remapper 453 may be configured in some embodiments to receive the output of scalar quantizer 451, in other words, an index value associated with the quantization partition region within of which the stereo or difference parameter is found, and then mapping or ordering the index value according to a defined mapping. In some embodiments, the index (re)mapping (or reordering) is based on an adaptive map selected from a defined range of maps. The defined maps may be maps that are determined from training data or any other suitable form that takes advantage of intra-frame correlation. For example, these maps can take advantage of the correlation between adjacent symbols representing adjacent subband parameters. As such, the first symbol within a frame may be mapped according to a predetermined or defined map. The second symbol within a frame mapped according to a map that is selected based on the first symbol, and so on.
Por ejemplo, un primer símbolo puede remapearse según la tablaFor example, a first symbol can be remapped according to the table
El siguiente (segundo) símbolo puede remapearse basándose en un mapa que depende del símbolo anterior (primero). Por ejemplo, la reordenación o remapeo del segundo símbolo puede definirse comoThe next (second) symbol can be remapped based on a map that depends on the previous (first) symbol. For example, the reordering or remapping of the second symbol can be defined as
Donde el símbolo anterior (primero) =0Where the previous (first) symbol = 0
Donde el símbolo anterior (primero) =1Where the previous (first) symbol =1
Donde el símbolo anterior (primero) =2Where the previous symbol (first) =2
Donde el símbolo anterior (primero) =3Where the previous symbol (first) =3
Donde el símbolo anterior (primero) =4Where the previous (first) symbol = 4
Donde el símbolo anterior (primero) =5Where the previous symbol (first) =5
Donde el símbolo anterior (primero) =6 Where the previous (first) symbol = 6
y donde el símbolo anterior (primero) =7and where the previous symbol (first) =7
Estos mapeos se pueden almacenar como una matriz de mapeos, tal como, por ejemplo,These mappings can be stored as an array of mappings, such as, for example,
short maps[]=shortmaps[]=
{{
7, 6, 4, 3, 1, 0, 2, 5,7, 6, 4, 3, 1, 0, 2, 5,
7, 6, 4, 3, 1, 0, 2, 5,7, 6, 4, 3, 1, 0, 2, 5,
7, 5, 3, 1, 0, 2, 4, 6,7, 5, 3, 1, 0, 2, 4, 6,
7, 5, 3, 1, 0, 2, 4, 6,7, 5, 3, 1, 0, 2, 4, 6,
7, 6, 4, 1, 0, 2, 3, 5,7, 6, 4, 1, 0, 2, 3, 5,
7, 6, 4, 2, 0, 1, 3, 5,7, 6, 4, 2, 0, 1, 3, 5,
7, 6, 4, 1, 0, 2, 3, 5,7, 6, 4, 1, 0, 2, 3, 5,
7, 6, 5, 4, 3, 2, 1, 0, };7, 6, 5, 4, 3, 2, 1, 0, };
Donde si el símbolo anterior ha sido '0', a continuación, la primera línea de la matriz bidimensional anterior se usa como mapa, si el símbolo anterior ha sido '1', a continuación, la segunda línea y así sucesivamente.Where if the previous symbol was '0' then the first line of the previous two-dimensional array is used as the map, if the previous symbol was '1' then the second line and so on.
En el ejemplo anterior, la matriz de funciones de reordenación o remapeo es la misma para cada símbolo. En algunas realizaciones, cada símbolo puede tener una matriz separada de funciones de reordenación o remapeo. Por ejemplo In the example above, the matrix of reordering or remapping functions is the same for each symbol. In some embodiments, each symbol may have a separate array of reordering or remapping functions. For example
el segundo símbolo puede tener una matrizthe second symbol can have an array
short mapsSymbol2[]= {...};short mapsSymbol2[]= {...};
el tercer símbolo puede tener una matrizthe third symbol can have an array
short mapsSymbol3[]= {...};short mapsSymbol3[]= {...};
y así sucesivamente hasta la octava matriz de símbolosand so on up to the eighth symbol array
short mapsSymbol8[]= {...};short mapsSymbol8[]= {...};
donde cada matriz puede ser diferente.where each matrix can be different.
Esto puede proporcionar la capacidad de ajustar la eficiencia de codificación con respecto a las correlaciones de subbanda a subbanda específicas a costa de requerir que se almacenen matrices adicionales en el codificador y decodificador. This can provide the ability to tune coding efficiency with respect to specific subband to subband mappings at the cost of requiring additional matrices to be stored in the encoder and decoder.
Además, en algunas realizaciones, la matriz puede definirse o seleccionarse a partir de más de relaciones de primer orden. Por ejemplo, la función de mapeo de matriz puede determinarse basándose en más de un símbolo (subbanda) previamente determinado dentro de la trama. Esto también puede proporcionar la capacidad de ajustar la eficiencia de codificación a costa de requerir que se almacenen matrices adicionales en el codificador y decodificador.Furthermore, in some embodiments, the matrix may be defined or selected from more than first order relations. For example, the matrix mapping function may be determined based on more than one previously determined symbol (subband) within the frame. This can also provide the ability to tune encoding efficiency at the cost of requiring additional matrices to be stored in the encoder and decoder.
Además, en algunas realizaciones, la función de mapeo de matriz puede determinarse basándose en un símbolo de tiempo anterior. Por ejemplo, la función de mapeo puede aprovechar cualquier correlación de trama a trama. La implementación del mapeo adaptativo basado en tiempo y subbanda hace que la ROM de la tabla aumente significativamente. Para 8 símbolos, la tabla con el mapeo tendrá 64 líneas en lugar de 8 líneas. En algunas realizaciones y dependiendo de los datos, únicamente podría usarse intertrama en lugar de intratrama. En algunos ejemplos, la correlación intertrama se aprovecha aplicando codificación GR a la diferencia entre la trama actual y la anterior. Los números 0,1,-1,2 ,-2 ,. se mapean a 0,1,2,3,4. y a continuación se codifican con GR de orden 0 o 1, lo que sea mejor. Also, in some embodiments, the matrix mapping function can be determined based on a previous time symbol. For example, the mapping function can take advantage of any frame-to-frame mapping. The implementation of subband and time-based adaptive mapping causes the table ROM to increase significantly. For 8 symbols, the mapping table will have 64 lines instead of 8 lines. In some embodiments and depending on the data, only interframe could be used instead of intraframe. In some examples, interframe correlation is exploited by applying GR encoding to the difference between the current and previous frame. The numbers 0,1,-1,2 ,-2 ,. they map to 0,1,2,3,4. and are then encoded with GR of order 0 or 1, whichever is better.
La salida del remapeador 453 a continuación se envía al codificador 455 Golomb-Rice.The output of the remapper 453 is then sent to the Golomb-Rice encoder 455.
En algunas realizaciones, el procesador cuantificador/codificador 205 mono puede comprender un selector de mapa (o el siguiente selector de mapa de símbolo) 454. El selector 454 de mapa o el determinador de mapa puede configurarse para seleccionar o determinar el mapa o la ordenación que va a aplicar el remapeador 453. El selector 454 de mapa puede, por lo tanto, recibir un valor de índice de símbolo o parámetro del cuantificador escalar y, a partir de este valor, determinar el mapa. En algunas realizaciones, como se describe en detalle en la presente memoria, la selección o determinación puede basarse en una implementación de tabla de consulta. Sin embargo, en algunas realizaciones, la selección o determinación se puede realizar al menos parcialmente de forma algorítmica. In some embodiments, the mono quantizer/encoder processor 205 may comprise a map selector (or the next symbol map selector) 454. The map selector 454 or map determiner may be configured to select or determine the map or ordering. to be applied by the remapper 453. The map selector 454 can therefore receive a symbol index value or parameter of the scalar quantizer and, from this value, determine the map. In some embodiments, as described in detail herein, the selection or determination may be based on a lookup table implementation. However, in some embodiments, the selection or determination may be performed at least partially algorithmically.
El procesador cuantificador/codificador 205 mono puede comprender en algunas realizaciones un codificador 455 Golomb-Rice. El codificador Golomb-Rice (codificador GR) 455 está configurado para recibir los valores o símbolos de índice remapeados generados por el remapeador y codificar los valores de índice según el procedimiento de codificación de Golomb-rice. El codificador Golomb-Rice 455 en tales realizaciones, por lo tanto, emite una palabra de código que representa los valores de índice actuales y anteriores.The mono quantizer/encoder processor 205 may comprise in some embodiments a Golomb-Rice encoder 455. The Golomb-Rice encoder (GR encoder) 455 is configured to receive the remapped index values or symbols generated by the remapper and encode the index values according to the Golomb-rice encoding method. The Golomb-Rice 455 encoder in such embodiments therefore outputs a code word representing the current and previous index values.
Un ejemplo de un código de número entero Golomb-Rice para el primer símbolo es uno donde la salida es de la siguiente manera.An example of a Golomb-Rice integer code for the first symbol is one where the output is as follows.
Se entendería que se puede usar cualquier codificación por entropía adecuada en lugar del código de número entero GR descrito en la presente memoria.It would be understood that any suitable entropy encoding may be used in place of the GR integer code described herein.
El codificador GR 455 puede a continuación emitir las palabras de código estéreo. En algunas realizaciones, las palabras de código se pasan a un multiplexor para mezclarlas con la señal de audio de canal mono codificada. Sin embargo, en algunas realizaciones, las palabras de código estéreo pueden en algunas realizaciones pasarse para ser almacenadas o pasarse a aparatos adicionales como un flujo separado.The GR 455 encoder can then output the stereo codewords. In some embodiments, the code words are passed to a multiplexer for mixing with the encoded mono channel audio signal. However, in some embodiments, the stereo codewords may in some embodiments be passed to be stored or passed to additional apparatus as a separate stream.
El procedimiento de codificación puede usarse para los parámetros de DFT dentro de un codificador de audio estéreo paramétrico. En algunas realizaciones, los parámetros a codificar son ganancias secundarias, ganancias de predicción residual y diferencias de fase inter canal.The encoding procedure can be used for DFT parameters within a parametric stereo audio encoder. In some embodiments, the parameters to be encoded are secondary gains, residual prediction gains, and inter-channel phase differences.
Para un caso de banda superancha ilustrativo para una trama de datos de audio, puede haberFor an illustrative super-wideband case for an audio data frame, there may be
12 valores de ganancia secundaria que necesitan transmitirse, correspondientes a las primeras 12 subbandas; 5 ganancias de predicción residual y12 secondary gain values that need to be transmitted, corresponding to the first 12 subbands; 5 residual prediction gains and
8 diferencias de fase intercanal8 interchannel phase differences
Los valores de todos los parámetros pueden cuantificarse escalarmente y su índice se codifica con GR adaptativa. En algunas realizaciones puede haber 31 (de 0 a 30) valores para las ganancias secundarias (cuantificadas usando 5 bits), 8 valores para las ganancias de predicción residual (cuantificadas usando 3 bits) y 8 valores para las primeras 7 diferencias de fase intercanal (cuantificadas usando 3 bits) y 4 valores para el último componente de diferencias de fase intercanal (cuantificadas usando 2 bits).The values of all parameters can be scalarly quantized and their index is encoded with adaptive GR. In some implementations there may be 31 (0 to 30) values for the secondary gains (quantized using 5 bits), 8 values for the residual prediction gains (quantized using 3 bits), and 8 values for the first 7 interchannel phase differences ( quantized using 3 bits) and 4 values for the last component of inter-channel phase differences (quantized using 2 bits).
Un ejemplo de la función de codificación escrita en C se puede escribir como:An example of the encode function written in C can be written as:
shortshorts
adapt_GR_sg(short * in, /* (i) parámetros de entrada a codificar */adapt_GR_sg(short * in, /* (i) input parameters to encode */
short len, /* (i) número de parámetros */short len, /* (i) number of parameters */
short no_symb, /* (i) número de posibles valores para los parámetros*/short no_symb, /* (i) number of possible values for the parameters */
short * nbits, /* (o) número usado de bits */short * nbits, /* (o) used number of bits */
short * in_enc, /* (o) valores que se codificarán */short * in_enc, /* (o) values to be encoded */
short no_GR_ord)short no_GR_ord)
{{
short *map;short *map;
short nbits0, nbits1, nbits2, symb, map_symb, i, nb0, nb1, nb2;short nbits0, nbits1, nbits2, symb, map_symb, i, nb0, nb1, nb2;
if (no_symb==NO_SYMB_GR_SIDE_G) /* para ganancias secundarias */if (no_symb==NO_SYMB_GR_SIDE_G) /* for secondary gains */
{{
map = &map0[15*no_symb]; map = &map0[15*no_symb];
}}
else /* para ipd y ganancia de predicción residual*/else /* for ipd and residual prediction gain */
{{
map = &(map0[8*no_symb]);map = &(map0[8*no_symb]);
}}
set_s(in_enc,0,len);set_s(in_enc,0,len);
nbits1 = 0;nbits1 = 0;
nbits0 = 0;nbits0 = 0;
nbits2 = 0;nbits2 = 0;
for(i=0;i<len;i++)for(i=0;i<len;i++)
{{
symb = in[i];symb = in[i];
map_symb = map[symb];map_symb = map[symb];
if (i==0)if (i==0)
{{
/* El orden GR es 1 para la primera banda*//* GR order is 1 for the first band */
nb0 = (map_symb>>1) 1;nb0 = (map_symb>>1) 1;
nb2 = nb0-2;nb2 = nb0-2;
}else}else
{{
nb0 = map_symb;nb0 = map_symb;
nb2 = ((map_symb)>>2);nb2 = ((map_symb)>>2);
}}
nb1 = ((map_symb)>>1);nb1 = ((map_symb)>>1);
in_enc[i] = map_symb;in_enc[i] = map_symb;
nbits0 = nb0; /* orden GR 0 */nbits0 = nb0; /* command GR 0 */
nbits1 = nb1; /* orden GR 1 */nbits1 = nb1; /* command GR 1 */
nbits2 = nb2; /* orden GR 2 */nbits2 = nb2; /* command GR 2 */
map = &(map0[symb*no_symb]); /* selecciona el mapa para la siguiente subbanda prm */ }map = &(map0[symb*no_symb]); /* select map for next subband prm */ }
if (no_GR_ord==2) /* únicamente se prueba 0 y 1 como órdenes GR */if (no_GR_ord==2) /* only test 0 and 1 as GR orders */
{{
nbits0+=len+1;nbits0+=len+1;
nbits1+=2*len+1;nbits1+=2*len+1;
if((nbits0<=nbits1))if((nbits0<=nbits1))
{{
*nbits = nbits0;*nbits = nbits0;
return 0;return 0;
}}
elseelse
{{
*nbits = nbits1;*nbits = nbits1;
return 1;return 1;
}}
}}
elseelse
{ /* 0, 1,2 y dos se prueban como órdenes GR */{ /* 0, 1,2 and two are tested as GR commands */
nbits0 = len+2;nbits0 = len+2;
nbits1 = 2*len+1;nbits1 = 2*len+1;
nbits2 = 3*len+2;nbits2 = 3*len+2;
if((nbtis1<=nbits2) && (nbits1 <= nbits0))if((nbtis1<=nbits2) && (nbits1 <= nbits0))
{{
*nbits = nbits1;*nbits = nbits1;
return 1;return 1;
}}
if((nbits0<=nbits2) && (nbits0 <= nbits1))if((nbits0<=nbits2) && (nbits0 <= nbits1))
{{
*nbits = nbits0;*nbits = nbits0;
return 0;return 0;
}}
if((nbits2<=nbits0) && (nbits2 <= nbits1))if((nbits2<=nbits0) && (nbits2 <= nbits1))
{{
*nbits = nbits2;*nbits = nbits2;
return 2;return 2;
}}
} }
return -1;return -1;
}}
Las matrices de mapas para el tipo de tres parámetros pueden ser:The map arrays for the three-parameter type can be:
Por la ganancia secundariaFor secondary gain
short maps_sg[] =shortmaps_sg[] =
{ 0, 1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,{ 0, 1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,17, 18, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,
1,0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,1.0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,17, 18, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,
15, 4, 0, 1,2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16,15, 4, 0, 1,2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16,
17, 18, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,17, 18, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,
12, 9, 4, 1,0, 2, 3, 5, 6, 7, 8, 10, 11, 13, 14, 15, 16,12, 9, 4, 1.0, 2, 3, 5, 6, 7, 8, 10, 11, 13, 14, 15, 16,
17, 18, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,17, 18, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,
16, 14, 8, 4, 2, 0, 1,3, 5, 6, 7, 9, 10, 11, 12, 13, 15,16, 14, 8, 4, 2, 0, 1,3, 5, 6, 7, 9, 10, 11, 12, 13, 15,
17, 18, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,17, 18, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,
18, 16, 14, 10, 5, 0, 1,2, 3, 4, 6, 7, 8, 9, 11, 12, 13,18, 16, 14, 10, 5, 0, 1,2, 3, 4, 6, 7, 8, 9, 11, 12, 13,
15, 17, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,15, 17, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,
21, 19, 17, 15, 8, 4, 2, 0, 1,3, 5, 6, 7, 9, 10, 11, 12,21, 19, 17, 15, 8, 4, 2, 0, 1,3, 5, 6, 7, 9, 10, 11, 12,
13, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30,13, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30,
21, 19, 17, 15, 12, 8, 4, 0, 1,2, 3, 5, 6, 7, 9, 10, 11,21, 19, 17, 15, 12, 8, 4, 0, 1,2, 3, 5, 6, 7, 9, 10, 11,
13, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 21, 19, 17, 15, 13, 11,9, 3, 0, 1,2, 4, 5, 6, 7, 8, 10, 12, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 24, 22, 20, 18, 16, 14, 12, 9, 6, 0, 1,2, 3, 4, 5, 7, 8, 10, 11, 13, 15, 17, 19, 21,23, 25, 26, 27, 28, 29, 30, 25, 23, 21, 19, 17, 15, 13, 11,9, 6, 0, 1,2, 3, 4, 5, 7,13, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 21, 19, 17, 15, 13, 11.9, 3, 0, 1,2, 4, 5, 6, 7, 8, 10, 12, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 24, 22, 20, 18, 16, 14, 12, 9, 6, 0, 1,2, 3, 4, 5, 7, 8, 10, 11, 13, 15, 17, 19, 21,23, 25, 26, 27, 28, 29, 30, 25, 23, 21, 19, 17, 15, 13, 11, 9, 6, 0, 1,2, 3, 4, 5, 7,
8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 27, 28, 29, 30,8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 27, 28, 29, 30,
27, 25, 23, 21, 19, 17, 15, 13, 11,8, 5, 0, 1,2, 3, 4, 6,27, 25, 23, 21, 19, 17, 15, 13, 11,8, 5, 0, 1,2, 3, 4, 6,
7, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 29, 30,7, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 29, 30,
26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 1,0, 3, 5,26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 1.0, 3, 5,
7, 9, 11, 13, 15, 17, 19, 21,23, 25, 27, 28, 29, 30,7, 9, 11, 13, 15, 17, 19, 21,23, 25, 27, 28, 29, 30,
28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 0, 1,3, 5, 7, 9, 11, 13, 15, 17, 19, 21,23, 25, 27, 29, 30,28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 0, 1,3, 5, 7, 9, 11, 13, 15, 17, 19, 21,23, 25, 27, 29, 30,
29, 27, 25, 23, 21, 19, 17, 15, 13, 11,9, 7, 5, 3, 0, 1,2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,29, 27, 25, 23, 21, 19, 17, 15, 13, 11,9, 7, 5, 3, 0, 1,2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 0, I , 3, 5, 7, 9, 11, 13, 15, 17, 19, 21,23, 25, 27, 29,30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 0, I, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21,23, 25, 27, 29,
30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 1,30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 1,
0, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21,23, 25, 27, 29,0, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21,23, 25, 27, 29,
30, 29, 27, 25, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1,30, 29, 27, 25, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1,
0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28,0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28,
30, 29, 28, 27, 25, 23, 21, 19, 17, 15, 13, 11,9, 7, 5, 3,30, 29, 28, 27, 25, 23, 21, 19, 17, 15, 13, 11,9, 7, 5, 3,
0, 1,2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26,0, 1,2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26,
30, 29, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 9, 7, 6, 4,30, 29, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 9, 7, 6, 4,
3, 2, 1, 0, 5, 8, 11, 13, 15, 17, 19, 21,23, 25, 27,3, 2, 1, 0, 5, 8, 11, 13, 15, 17, 19, 21,23, 25, 27,
30, 29, 28, 27, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 7, 5,30, 29, 28, 27, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 7, 5,
4, 3, 2, 1,0, 6, 9, 11, 13, 15, 17, 19, 21,23, 25,4, 3, 2, 1.0, 6, 9, 11, 13, 15, 17, 19, 21,23, 25,
30, 29, 28, 27, 26, 25, 23, 21, 19, 17, 15, 13, 11, 10, 8, 7, 5, 4, 3, 2, 1,0, 6, 9, 12, 14, 16, 18, 20, 22, 24,30, 29, 28, 27, 26, 25, 23, 21, 19, 17, 15, 13, 11, 10, 8, 7, 5, 4, 3, 2, 1.0, 6, 9, 12, 14, 16, 18, 20, 22, 24,
30, 29, 28, 27, 26, 25, 24, 23, 22, 20, 18, 16, 14, 12, 10, 8, 7, 6, 5, 4, 2, 1,0, 3, 9, 11, 13, 15, 17, 19, 21,30, 29, 28, 27, 26, 25, 24, 23, 22, 20, 18, 16, 14, 12, 10, 8, 7, 6, 5, 4, 2, 1,0, 3, 9, 11, 13, 15, 17, 19, 21,
30, 29, 28, 27, 26, 25, 24, 23, 22, 20, 18, 16, 14, 13, 11, 10, 9, 7, 6, 5, 3, 2, 1,0, 4, 8, 12, 15, 17, 19, 21,30, 29, 28, 27, 26, 25, 24, 23, 22, 20, 18, 16, 14, 13, 11, 10, 9, 7, 6, 5, 3, 2, 1,0, 4, 8, 12, 15, 17, 19, 21,
30, 29, 28, 27, 26, 25, 24, 23, 22, 20, 18, 16, 14, 13, 12,30, 29, 28, 27, 26, 25, 24, 23, 22, 20, 18, 16, 14, 13, 12,
I I , 10, 9, 7, 6, 5, 3, 1,0, 2, 4, 8, 15, 17, 19, 21,I I , 10, 9, 7, 6, 5, 3, 1,0, 2, 4, 8, 15, 17, 19, 21,
30, 29, 28, 27, 26, 25, 24, 23, 22, 21,20, 19, 17, 15, 13,30, 29, 28, 27, 26, 25, 24, 23, 22, 21,20, 19, 17, 15, 13,
12, 11, 9, 8, 7, 6, 4, 3, 2, 1,0, 5, 10, 14, 16, 18,12, 11, 9, 8, 7, 6, 4, 3, 2, 1,0, 5, 10, 14, 16, 18,
30, 29, 28, 27, 26, 25, 24, 23, 22, 21,20, 19, 18, 17, 15,30, 29, 28, 27, 26, 25, 24, 23, 22, 21,20, 19, 18, 17, 15,
13, 12, 11, 10, 9, 7, 6, 5, 3, 1,0, 2, 4, 8, 14, 16,13, 12, 11, 10, 9, 7, 6, 5, 3, 1.0, 2, 4, 8, 14, 16,
30, 29, 28, 27, 26, 25, 24, 23, 22, 21,20, 19, 18, 17, 16,30, 29, 28, 27, 26, 25, 24, 23, 22, 21,20, 19, 18, 17, 16,
15, 14, 13, 11, 10, 8, 7, 6, 5, 3, 2, 0, 1,4, 9, 12,15, 14, 13, 11, 10, 8, 7, 6, 5, 3, 2, 0, 1,4, 9, 12,
30, 29, 28, 27, 26, 25, 24, 23, 22, 21,20, 19, 18, 17, 16,30, 29, 28, 27, 26, 25, 24, 23, 22, 21,20, 19, 18, 17, 16,
14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 3, 2, 1,0, 4, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 3, 2, 1,0, 4, 15,
30, 29, 28, 27, 26, 25, 24, 23, 22, 21,20, 19, 18, 17, 16,30, 29, 28, 27, 26, 25, 24, 23, 22, 21,20, 19, 18, 17, 16,
15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 0, 1,15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 0, 1,
30, 29, 28, 27, 26, 25, 24, 23, 22, 21,20, 19, 18, 17, 16,30, 29, 28, 27, 26, 25, 24, 23, 22, 21,20, 19, 18, 17, 16,
15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,0,15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.0,
};};
Para la ganancia de predicción residualFor residual prediction gain
short maps_rμg[] = {short maps_rμg[] = {
0, 1, 2, 3, 4, 5, 6, 7,0, 1, 2, 3, 4, 5, 6, 7,
2, 0, 1, 3, 4, 5, 6, 7,2, 0, 1, 3, 4, 5, 6, 7,
6, 2, 0, 1, 3, 4, 5, 7,6, 2, 0, 1, 3, 4, 5, 7,
7, 5, 2, 0, 1, 3, 4, 6,7, 5, 2, 0, 1, 3, 4, 6,
7, 6, 4, 3, 1, 0, 2, 5,7, 6, 4, 3, 1, 0, 2, 5,
7, 6, 5, 3, 2, 1, 0, 4,7, 6, 5, 3, 2, 1, 0, 4,
7, 6, 5, 4, 3, 2, 0, 1,7, 6, 5, 4, 3, 2, 0, 1,
7, 6, 5, 4, 3, 2, 0, 1,7, 6, 5, 4, 3, 2, 0, 1,
6, 5, 4, 3, 1, 0, 2, 7,6, 5, 4, 3, 1, 0, 2, 7,
};};
y para las diferencias de interfaseand for the interface differences
short maps_ipd[]=short maps_ipd[]=
{{
7, 6, 4, 3, 1, 0, 2, 5,7, 6, 4, 3, 1, 0, 2, 5,
7, 6, 4, 3, 1, 0, 2, 5,7, 6, 4, 3, 1, 0, 2, 5,
7, 5, 3, 1, 0, 2, 4, 6,7, 5, 3, 1, 0, 2, 4, 6,
7, 5, 3, 1, 0, 2, 4, 6,7, 5, 3, 1, 0, 2, 4, 6,
7, 6, 4, 1, 0, 2, 3, 5,7, 6, 4, 1, 0, 2, 3, 5,
7, 6, 4, 2, 0, 1, 3, 5,7, 6, 4, 2, 0, 1, 3, 5,
7, 6, 4, 1, 0, 2, 3, 5,7, 6, 4, 1, 0, 2, 3, 5,
7, 6, 5, 4, 3, 2, 1, 0,7, 6, 5, 4, 3, 2, 1, 0,
6, 5, 4, 2, 0, 1, 3, 76, 5, 4, 2, 0, 1, 3, 7
};};
Como se ha mostrado anteriormente, como hay 31 símbolos para las ganancias secundarias (las ganancias secundarias se cuantifican en primer lugar escalarmente usando 5 bits), la tabla de 'mapas' es relativamente grande en comparación con la otra tabla de 'mapas'.As shown above, since there are 31 symbols for the secondary gains (the secondary gains are first scalarly quantized using 5 bits), the 'map' table is relatively large compared to the other 'map' table.
En algunas realizaciones, se analiza la estructura de la tabla de mapas y cuando hay una estructura definida en la tabla que se puede aprovechar, a continuación, esto puede usarse para comprimir la tabla de mapas. Por ejemplo, en la tabla de mapas sg ilustrativa definida anteriormente, el análisis puede permitir que se almacenen los siguientes datos: In some embodiments, the structure of the map table is parsed and where there is a structure defined in the table that can be exploited, then this can be used to compress the map table. For example, in the illustrative map table sg defined above, the analysis may allow the following data to be stored:
short sg_data1 [] = {1,0,2,short sg_data1[] = {1,0,2,
4, 0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,4, 0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
9, 4, 1, 0, 2, 3, 5, 6, 7, 8, 10, 11,9, 4, 1, 0, 2, 3, 5, 6, 7, 8, 10, 11,
8, 4, 2, 0, 1,3, 5, 6, 7, 9, 10, 11, 12, 13,8, 4, 2, 0, 1,3, 5, 6, 7, 9, 10, 11, 12, 13,
10, 5, 0, 1,2, 3, 4, 6, 7, 8, 9, 11, 12, 13,10, 5, 0, 1,2, 3, 4, 6, 7, 8, 9, 11, 12, 13,
8, 4, 2, 0, 1,3, 5, 6, 7, 9, 10, 11, 12, 13, 14,8, 4, 2, 0, 1,3, 5, 6, 7, 9, 10, 11, 12, 13, 14,
12, 8, 4, 0, 1,2, 3, 5, 6, 7, 9, 10, 11, 13, 14,12, 8, 4, 0, 1,2, 3, 5, 6, 7, 9, 10, 11, 13, 14,
3, 0, 1, 2, 4, 5, 6, 7, 8,3, 0, 1, 2, 4, 5, 6, 7, 8,
9, 6, 0, 1,2, 3, 4, 5, 7, 8, 10, 11,9, 6, 0, 1,2, 3, 4, 5, 7, 8, 10, 11,
6, 0, 1, 2, 3, 4, 5, 7, 8,6, 0, 1, 2, 3, 4, 5, 7, 8,
8, 5, 0, 1,2, 3, 4, 6, 7, 9, 10,8, 5, 0, 1,2, 3, 4, 6, 7, 9, 10,
2, 1, 0, 3,2, 1, 0, 3,
0, 1,0, 1,
0, 1, 2,0, 1, 2,
0};0};
short sg_data2[] =short sg_data2[] =
{3,3,{3,3,
15,16,15,16,
12, 13,12, 13,
14, 16,14, 16,
14, 17,14, 17,
15, 19,15, 19,
15, 19, 15, 19,
9, 16,9, 16,
12, 19,12, 19,
9, 18,9, 18,
11,20,11.20,
4, 16,4, 16,
2, 16,2, 16,
3, 17,3, 17,
1, 16};1, 16};
Estos datos pueden usarse de manera que, para obtener, por ejemplo, la 5a línea de 'mapas'This data can be used in such a way that to get, for example, the 5th line of 'maps'
16, 14, 8, 4, 2, 0, 1,3, 5, 6, 7, 9, 10, 11, 12, 13, 15, 17, 18, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30, 16, 14, 8, 4, 2, 0, 1,3, 5, 6, 7, 9, 10, 11, 12, 13, 15, 17, 18, 19, 20, 21,22, 23, 24, 25, 26, 27, 28, 29, 30,
Mediante la 4a línea de la pseudolínea de sg_data1 se indica que sus datos (en negrita y subrayado en la línea anterior tomada como ejemplo) son parte de la línea correspondiente en 'mapas'. Los datos en sg_data2, la 4a pseudolínea establece que hay 14 componentes en sg_data1 que deben copiarse en 'maps' (primer parámetro de sg_data2, línea 4), y que empezando con la posición 16, la línea de 'maps' correspondiente se llenará automáticamente. El llenado automático es tal que el primer número consecutivo después del último valor de la pseudolínea sg_data1 estará al comienzo de la cadena justo antes de 8, es decir, el valor 14, a continuación, 15 estará en el otro extremo, 16 al principio y así sucesivamente. Si no hay posibilidad de continuar en un extremo, a continuación, los números se rellenan consecutivamente solo en un lado. The 4th line of the sg_data1 pseudo-line indicates that its data (bold and underlined in the example line above) is part of the corresponding line in 'maps'. The data in sg_data2, the 4th pseudo line states that there are 14 components in sg_data1 that should be copied to 'maps' (first parameter of sg_data2, line 4), and that starting with position 16, the corresponding 'maps' line will be filled automatically . The autofill is such that the first consecutive number after the last value of the sg_data1 pseudoline will be at the beginning of the string just before 8, i.e. the value 14, then 15 will be at the other end, 16 at the beginning and so on. If there is no possibility to continue on one end, then the numbers are filled in consecutively on one side only.
Una función ilustrativa que puede usarse para volver a crear la matriz de 'mapas' para las ganancias secundarias es: An illustrative function that can be used to recreate the 'maps' array for secondary gains is:
voidvoid
fill_in_map_sg(short * maps_line, short * lens, short * data)fill_in_map_sg(short * maps_line, short * lens, short * data)
{{
short i, k, diff, last;short i, k, diff, last;
diff = lens[1]-lens[0];diff = lens[1]-lens[0];
for (i=diff;i<lens[1];i++)for (i=diff;i<lens[1];i++)
{{
maps_line[i] = data[i-diff];maps_line[i] = data[i-diff];
}}
if (diff>0)if (diff>0)
{{
/* rellenar ambos lados *//* fill both sides */
last = data[lens[0]-1]+1;last = data[lens[0]-1]+1;
k = lens[1];k = lens[1];
for(i=diff-1 ;i>=0;i--)for(i=diff-1 ;i>=0;i--)
{{
maps_line[i] = last;maps_line[i] = last;
last = 1;last = 1;
maps_line[k++] = last;maps_line[k++] = last;
last =1;last=1;
}}
for (i=k;i<NO_SYMB_GR_SIDE_G;i++)for (i=k;i<NO_SYMB_GR_SIDE_G;i++)
{{
maps_line[i] = last;maps_line[i] = last;
last++;last++;
}}
}}
elseelse
{{
for (i=lens[1];i<NO_SYMB_GR_SIDE_G;i++)for (i=lens[1];i<NO_SYMB_GR_SIDE_G;i++)
{{
maps_line[i] = i;maps_line[i] = i;
}}
}}
}}
voidvoid
mvs2s_rev(short * x, short * res, short len)mvs2s_rev(short * x, short * res, short len)
{{
short i;shorti;
for (i=0;i<len;i++)for (i=0;i<len;i++)
{{
res[len-1-i] = x[i];res[len-1-i] = x[i];
} }
}}
voidvoid
init_map_sg(short * maps_sg)init_map_sg(short * maps_sg)
{{
short i, s;short i, s;
for (i=0;i<NO_SYMB_GR_SIDE_G;i++)for (i=0;i<NO_SYMB_GR_SIDE_G;i++)
{{
maps_sg[i] = i;maps_sg[i] = i;
}}
s = 0;s = 0;
for(i=0;i<15;i++)for(i=0;i<15;i++)
{{
fill_in_map_sg(&maps_sg[(i+1)*NO_SYMB_GR_SIDE_G], &sg_data2[i*2], &sg_datal[s]; s = sg_Data2[i*2];fill_in_map_sg(&maps_sg[(i+1)*NO_SYMB_GR_SIDE_G], &sg_data2[i*2], &sg_datal[s]; s = sg_Data2[i*2];
}}
for(i=0;i<15;i++)for(i=0;i<15;i++)
{{
mvs2s_rev(&maps_sg[(14-i)*NO_SYMB_GR_SIDE_G], &maps_sg[(16+i)*NO_SYMB_GR_SIDE_G], NO_SYMB_GR_SIDE_G);mvs2s_rev(&maps_sg[(14-i)*NO_SYMB_GR_SIDE_G], &maps_sg[(16+i)*NO_SYMB_GR_SIDE_G], NO_SYMB_GR_SIDE_G);
}}
En algunas realizaciones, el procesador cuantificador/codificador 205 mono comprende además un codificador 456 de canal mono (mezcla descendente). El codificador 456 de canal mono (mezcla descendente) puede configurarse para recibir el canal o parámetros mono (mezcla descendente). Además, el codificador 456 de canal mono (mezcla descendente) puede configurarse para recibir una indicación del número de bits que se han usado en el codificador GR para codificar la trama actual. El codificador 456 de canal mono (mezcla descendente) puede configurarse entonces para codificar el canal mono (mezcla descendente) o los parámetros basándose en cualquier procedimiento de codificación adecuado basándose en el conocimiento del número de bits usados por la codificación de parámetros estéreo. El generador/codificador 456 de canal mono puede codificar la señal de audio de canal mono generada usando cualquier formato de codificación adecuado. Por ejemplo, en algunas realizaciones, la señal de audio de canal mono se puede codificar usando una forma codificada de canal mono de Servicio de Voz Mejorado (EVS), que puede contener una versión interoperable de flujo de bits del códec Multi-Tasa Adaptativa - Banda Ancha (AMR-WB). In some embodiments, the mono quantizer/encoder processor 205 further comprises a mono channel (downmix) encoder 456 . The mono channel (downmix) encoder 456 can be configured to receive the mono channel or parameters (downmix). In addition, the mono channel (downmix) encoder 456 may be configured to receive an indication of the number of bits that have been used in the GR encoder to encode the current frame. The mono channel (downmix) encoder 456 may then be configured to encode the mono channel (downmix) or the parameters based on any suitable encoding method based on knowledge of the number of bits used for encoding the stereo parameters. The mono channel generator/encoder 456 may encode the generated mono channel audio signal using any suitable encoding format. For example, in some embodiments, the mono channel audio signal may be encoded using a mono channel encoded form of Enhanced Voice Service (EVS), which may contain a bitstream interoperable version of the Adaptive Multi-Rate codec - Broadband (AMR-WB).
Con respecto a la Figura 8, se muestra como un diagrama de flujo un resumen del proceso de codificación (tal como se describe en la Figura 4 por las etapas 505) según algunas realizaciones y la operación del procesador cuantificador/codificador 205 mostrado en la Figura 7.With respect to Figure 8, a summary of the encoding process (as described in Figure 4 by steps 505) according to some embodiments and the operation of the quantizer/encoder processor 205 shown in Figure 8 is shown as a flow chart. 7.
La operación de recibir los parámetros estéreo se muestra en la Figura 8 por la etapa 701.The operation of receiving the stereo parameters is shown in Figure 8 by step 701.
La operación de cuantificar los parámetros estéreo para generar valores o símbolos de índice se muestra en la Figura 8 por la etapa 703.The operation of quantizing the stereo parameters to generate index values or symbols is shown in Figure 8 by step 703.
La operación de recuperar un mapa basándose al menos en un valor o símbolo de índice anterior (dentro de la trama) se muestra en la Figura 8 por la etapa 704.The operation of retrieving a map based on at least one previous value or index symbol (within the frame) is shown in Figure 8 by step 704.
La operación de reordenar o remapear el símbolo o el valor del índice basándose en el mapa recuperado se muestra en la Figura 8 por la etapa 705.The operation of reordering or remapping the symbol or index value based on the retrieved map is shown in Figure 8 by step 705.
La operación de generar palabras de código según el sistema de codificación Golomb-Rice a partir de los valores de símbolo remapeados se muestra en la Figura 8 por la etapa 707.The operation of generating codewords according to the Golomb-Rice coding system from the remapped symbol values is shown in Figure 8 by step 707.
La operación de emitir palabras de código estéreo se muestra en la Figura 8 por la etapa 709.The operation of outputting stereo codewords is shown in Figure 8 by step 709.
Además, la operación de recibir los parámetros mono se muestra en la Figura 8 por la etapa 702.Also, the operation of receiving the mono parameters is shown in Fig. 8 by step 702.
La operación de codificar los parámetros/canal mono basándose en el uso de bits de codificación Golomb-Rice se muestra en la Figura 8 por la etapa 708.The operation of encoding the mono parameters/channel based on the use of Golomb-Rice encoding bits is shown in Figure 8 by step 708.
La operación de emitir palabras de código mono se muestra en la Figura 8 por la etapa 710.The operation of issuing mono codewords is shown in Figure 8 by step 710.
Para mostrar completamente las operaciones del códec, las Figuras 9 y 10 muestran un decodificador y la operación del decodificador según algunas realizaciones.To fully show codec operations, Figures 9 and 10 show a decoder and decoder operation according to some embodiments.
En algunas realizaciones, el decodificador 108 comprende un decodificador 801 de canal mono. El decodificador 801 de canal mono está configurado en algunas realizaciones para recibir la señal de canal mono codificada. In some embodiments, decoder 108 comprises a mono channel decoder 801. The mono channel decoder 801 is configured in some embodiments to receive the encoded mono channel signal.
Además, el decodificador 801 de canal mono puede configurarse para decodificar la señal de audio de canal mono codificada usando el proceso inverso al codificador de canal mono mostrado en el codificador. En algunas realizaciones, el decodificador 801 de canal mono puede configurarse para recibir un indicador del decodificador 803 de canal estéreo que indica el número de bits usados para la señal estéreo para ayudar a la decodificación del canal mono.In addition, the mono channel decoder 801 may be configured to decode the encoded mono channel audio signal using the reverse process to the mono channel encoder shown in the encoder. In some embodiments, the mono channel decoder 801 may be configured to receive a flag from the stereo channel decoder 803 indicating the number of bits used for the stereo signal to aid decoding of the mono channel.
En algunas realizaciones, el decodificador 801 de canal mono se puede configurar para emitir la señal de audio de canal mono al generador 809 de canal estéreo.In some embodiments, mono channel decoder 801 may be configured to output the mono channel audio signal to stereo channel generator 809.
En algunas realizaciones, el decodificador 108 puede comprender un decodificador 803 de canal estéreo. El decodificador 803 de canal estéreo está configurado para recibir los parámetros estéreo codificados.In some embodiments, decoder 108 may comprise a stereo channel decoder 803. The stereo channel decoder 803 is configured to receive the encoded stereo parameters.
Además, el decodificador 803 de canal estéreo puede configurarse para decodificar los parámetros de señal de canal estéreo desde el código de entropía hasta un valor de símbolo.In addition, the stereo channel decoder 803 may be configured to decode the stereo channel signal parameters from the entropy code to a symbol value.
El decodificador 803 de canal estéreo está configurado además para emitir los valores de índice decodificados a un reordenador (desmapeador) de símbolos 807.The stereo channel decoder 803 is further configured to output the decoded index values to a symbol reorderer (demapper) 807.
En algunas realizaciones, el decodificador comprende un selector 805 de mapa de símbolos (o determinador de mapa o determinador de orden o selector de orden). El selector 805 de mapa de símbolos puede configurarse para recibir los valores de índice de canal estéreo de trama actual (símbolos decodificados y reordenados) y seleccionar un mapa de símbolos para invertir el mapeo usado en el codificador. En otras palabras, el selector 805 de mapa de símbolos está configurado para determinar un mapa basándose en un símbolo determinado previamente decodificado dentro de una trama.In some embodiments, the decoder comprises a symbol map selector 805 (or map determiner or order determiner or order selector). The symbol map selector 805 may be configured to receive the current frame stereo channel index values (decoded and reordered symbols) and select a symbol map to invert the mapping used in the encoder. In other words, the symbol map selector 805 is configured to determine a map based on a previously decoded determined symbol within a frame.
El mapa (de símbolos) puede emitirse al reordenador 807 de símbolos.The (symbol) map may be output to the symbol reorderer 807.
En algunas realizaciones, el decodificador 108 comprende un reordenador 807 de símbolos. El reordenador de símbolos o índices (desmapeador) en algunas realizaciones está configurado para recibir el mapa de símbolos del selector 805 de mapas y reordenar los símbolos decodificados recibidos del decodificador 803 de canal estéreo según el mapa seleccionado. En otras palabras, el reordenador 807 de símbolos está configurado para reordenar los valores de índice al orden original emitido por el cuantificador escalador dentro del codificador. Además, en algunas realizaciones, el reordenador de símbolos 807 está configurado para descuantificar el valor de índice desmapeado o reordenado en un parámetro (tal como el valor de diferencia/correlación de tiempo interaural; y el valor de diferencia de nivel interaural/diferencia de energía) usando el proceso inverso al definido dentro de la sección de cuantificador del procesador cuantificador dentro del codificador.In some embodiments, decoder 108 comprises a symbol reorderer 807. The symbol or index reorderer (demapper) in some embodiments is configured to receive the symbol map from the map selector 805 and reorder the decoded symbols received from the stereo channel decoder 803 according to the selected map. In other words, the symbol reorderer 807 is configured to reorder the index values to the original order output by the scaling quantizer within the encoder. In addition, in some embodiments, the symbol reorderer 807 is configured to dequantize the unmapped or reordered index value into a parameter (such as the interaural time difference/correlation value; and the interaural level difference/energy difference value). ) using the reverse process to that defined within the quantizer section of the quantizer processor within the encoder.
En algunas realizaciones, el decodificador comprende un generador 809 de canal estéreo configurado para recibir los símbolos decodificados reordenados (los parámetros estéreo) y el canal mono decodificado y regenerar los canales estéreo, en otras palabras, aplicar las diferencias de nivel al canal mono para generar un segundo canal. Con respecto a la Figura 10, se muestra como un diagrama de flujo un resumen del proceso de decodificación según algunas realizaciones y la operación del decodificador 108 mostrado en la Figura 9.In some embodiments, the decoder comprises a stereo channel generator 809 configured to receive the reordered decoded symbols (the stereo parameters) and the decoded mono channel and regenerate the stereo channels, in other words, apply the level differences to the mono channel to generate a second channel. With respect to Figure 10, a summary of the decoding process according to some embodiments and the operation of the decoder 108 shown in Figure 9 is shown as a flowchart.
La operación de recibir la señal de audio de canal mono codificada se muestra en la Figura 10 por la etapa 901. La operación de recibir los parámetros estéreo codificados se muestra en la Figura 10 por la etapa 902.The operation of receiving the encoded mono channel audio signal is shown in Figure 10 by step 901. The operation of receiving the encoded stereo parameters is shown in Figure 10 by step 902.
La operación de decodificar el canal mono (basándose en el número de bits usados por el canal estéreo) se muestra en la Figura 10 por la etapa 903.The operation of decoding the mono channel (based on the number of bits used by the stereo channel) is shown in Figure 10 by step 903.
La operación de decodificar los parámetros estéreo se muestra en la Figura 10 por la etapa 904.The operation of decoding the stereo parameters is shown in Figure 10 by step 904.
La operación de reordenar y descuantificar los símbolos decodificados para generar parámetros estéreo descuantificados (regenerados) para cada trama se muestra en la Figura 10 por la etapa 906.The operation of reordering and dequantizing the decoded symbols to generate dequantized (regenerated) stereo parameters for each frame is shown in Figure 10 by step 906.
La operación de seleccionar el mapa para un siguiente símbolo basándose en un valor de símbolo actual se muestra en la Figura 10 por la etapa 907.The operation of selecting the map for a next symbol based on a current symbol value is shown in Figure 10 by step 907.
La emisión de los parámetros estéreo al generador de canal estéreo se muestra en la Figura 10 por la etapa 908. La operación de generar los canales estéreo a partir de los parámetros estéreo de canal mono se muestra en la Figura 10 por la etapa 909.The output of the stereo parameters to the stereo channel generator is shown in Figure 10 by step 908. The operation of generating the stereo channels from the mono channel stereo parameters is shown in Figure 10 by step 909.
Aunque en los ejemplos anteriores el mapa se selecciona de una tabla almacenada, se entiende que en algunas realizaciones el mapa para el símbolo actual puede determinarse de forma algorítmica basándose en una función que recibe como entrada un símbolo previamente determinado. Although in the above examples the map is selected from a stored table, it is understood that in some embodiments the map for the current symbol may be algorithmically determined based on a function that receives a previously determined symbol as input.
Aunque los ejemplos anteriores describen realizaciones de la solicitud que operan dentro de un códec dentro de un aparato 10, se apreciaría que la invención como se describe a continuación puede implementarse como parte de cualquier códec de audio (o voz), incluyendo cualquier códec de audio (o voz) de tasa variable/tasa adaptativa. Por lo tanto, por ejemplo, las realizaciones de la solicitud pueden implementarse en un códec de vídeo que puede implementar la codificación de audio a través de rutas de comunicación fijas o alámbricas.Although the above examples describe application embodiments operating within a codec within an appliance 10, it would be appreciated that the invention as described below can be implemented as part of any audio (or speech) codec, including any audio codec (or voice) variable rate/adaptive rate. Thus, for example, the application embodiments may be implemented in a video codec that may implement audio encoding over fixed or wireline communication paths.
Por lo tanto, el equipo de usuario puede comprender un códec de audio tal como los descritos en las realizaciones de la solicitud anteriores.Therefore, the user equipment may comprise an audio codec such as those described in the application embodiments above.
Se apreciará que el término equipo de usuario está destinado a cubrir cualquier tipo adecuado de equipo de usuario inalámbrico, tal como teléfonos móviles, dispositivos portátiles de procesamiento de datos o navegadores web portátiles. It will be appreciated that the term user equipment is intended to cover any suitable type of wireless user equipment, such as mobile phones, portable data processing devices or portable web browsers.
Además, los elementos de una red móvil pública terrestre (PLMN) también pueden comprender códecs de audio como se ha descrito anteriormente.In addition, the elements of a public land mobile network (PLMN) may also comprise audio codecs as described above.
En general, las diversas realizaciones de la solicitud pueden implementarse en hardware o circuitos de propósito especial, software, lógica o cualquier combinación de los mismos. Por ejemplo, algunos aspectos pueden implementarse en hardware, mientras que otros aspectos pueden implementarse en firmware o software que puede ejecutarse por un controlador, microprocesador u otro dispositivo informático, aunque la invención no se limita a los mismos. Aunque diversos aspectos de la solicitud pueden ilustrarse y describirse como diagramas de bloques, diagramas de flujo, o usando alguna otra representación gráfica, se entiende que estos bloques, aparatos, sistemas, técnicas o procedimientos descritos en la presente memoria pueden implementarse, como ejemplos no limitativos, en hardware, software, firmware, circuitos o lógica de propósito especial, hardware de propósito general o controlador u otros dispositivos informáticos, o alguna combinación de los mismos.In general, the various embodiments of the application may be implemented in hardware or special purpose circuitry, software, logic, or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software that may be executed by a controller, microprocessor, or other computing device, although the invention is not limited thereto. Although various aspects of the application may be illustrated and described as block diagrams, flowcharts, or using some other graphical representation, it is understood that these blocks, apparatus, systems, techniques, or procedures described herein may be implemented, as examples not limited, in special purpose hardware, software, firmware, circuitry or logic, general purpose hardware or controller or other computing devices, or any combination thereof.
Las realizaciones de esta solicitud pueden implementarse mediante software informático ejecutable por un procesador de datos del dispositivo móvil, tal como en la entidad de procesador, o mediante hardware, o mediante una combinación de software y hardware. Además, en este sentido, cabe señalar que cualesquiera bloques del flujo lógico como en las Figuras puede representar etapas del programa, o circuitos lógicos interconectados, bloques y funciones, o una combinación de etapas de programa y circuitos lógicos, bloques y funciones.Embodiments of this application may be implemented by computer software executable by a mobile device data processor, such as in the processor entity, or by hardware, or by a combination of software and hardware. Furthermore, in this regard, it should be noted that any logic flow blocks as in the Figures may represent program steps, or interconnected logic circuits, blocks and functions, or a combination of program steps and logic circuits, blocks and functions.
La memoria puede ser de cualquier tipo adecuado para el entorno técnico local y puede implementarse usando cualquier tecnología de almacenamiento de datos adecuada, tal como dispositivos de memoria basados en semiconductores, dispositivos y sistemas de memoria magnéticos, dispositivos y sistemas de memoria ópticos, memoria fija y memoria extraíble. Los procesadores de datos pueden ser de cualquier tipo adecuado para el entorno técnico local, y pueden incluir uno o más de ordenadores de propósito general, ordenadores de propósito especial, microprocesadores, digital signal processors (procesadores de señales digitales - DSP), application specific integrated circuits (circuitos integrados específicos de aplicación - ASIC), circuitos de nivel de puerta y procesadores basados en arquitectura de procesador de múltiples núcleos, como ejemplos no limitativos.The memory may be of any type suitable for the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor-based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory. Data processors may be of any type suitable for the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs), application specific integrated circuits (application-specific integrated circuits - ASICs), gate-level circuits, and processors based on multi-core processor architecture, as non-limiting examples.
Las realizaciones de la solicitud pueden ponerse en práctica en diversos componentes tales como módulos de circuito integrado. El diseño de circuitos integrados es, en gran medida, un proceso altamente automatizado. Hay herramientas de software complejas y potentes disponibles para convertir un diseño de nivel lógico en un diseño de circuito de semiconductores listo para grabarse y formarse en un sustrato semiconductor.The application embodiments can be implemented in various components such as integrated circuit modules. Integrated circuit design is, to a large extent, a highly automated process. There are complex and powerful software tools available to convert a logic level design into a semiconductor circuit design ready to be etched and formed on a semiconductor substrate.
Los programas, tales como los proporcionados por Synopsys, Inc. de Mountain View, California y Cadence Design, de San Jose, California, enrutan automáticamente conductores y localizan componentes en un chip de semiconductor usando reglas de diseño bien establecidas, así como bibliotecas de módulos de diseño previamente almacenados. Una vez que se ha completado el diseño para un circuito de semiconductor, el diseño resultante, en un formato electrónico normalizado (p. ej., Opus, GDSII o similar) puede transmitirse a una instalación de fabricación de semiconductores o “fab” para su fabricación. Programs, such as those provided by Synopsys, Inc. of Mountain View, Calif., and Cadence Design of San Jose, Calif., automatically route leads and locate components on a semiconductor chip using well-established design rules as well as module libraries. previously stored layout. Once the design for a semiconductor circuit has been completed, the resulting design, in a standardized electronic format (eg, Opus, GDSII, or similar) can be transmitted to a semiconductor manufacturing facility or "fab" for processing. manufacturing.
Como se usa en esta solicitud, el término “conjunto de circuitos” se refiere a todo lo siguiente:As used in this application, the term "circuitry" refers to all of the following:
(a) implementaciones de circuitos solo en hardware (tales como implementaciones en conjuntos de circuitos solo analógicos y/o digitales) y(a) hardware-only circuit implementations (such as analog-only and/or digital-only circuitry implementations), and
(b) a combinaciones de circuitos y software (y/o firmware), tales como: (i) a una combinación de procesador o procesadores o (ii) a porciones de procesador o procesadores/software (incluyendo procesador o procesadores de señales digitales), software y memoria o memorias que funcionan juntos para hacer que un aparato, tal como teléfono móvil o servidor, realice diversas funciones y(b) to combinations of circuitry and software (and/or firmware), such as: (i) to a combination of processor(s) or (ii) to portions of processor(s)/software (including digital signal processor(s)) , software and memory or memories that work together to make a device, such as a mobile phone or server, perform various functions and
(c) a circuitos, tales como un microprocesador o microprocesadores o una porción de un microprocesador o microprocesadores, que requieren software o firmware para su operación, incluso si el software o firmware no está físicamente presente. (c) to circuits, such as a microprocessor or microprocessors or a portion of a microprocessor or microprocessors, that require software or firmware for their operation, even if the software or firmware is not physically present.
Esta definición de 'conjunto de circuitos' se aplica a todos los usos de este término en esta solicitud, incluyendo cualquier reivindicación. Como ejemplo adicional, tal como se usa en esta solicitud, la expresión 'conjunto de circuitos' también cubrirá una implementación de tan sólo un procesador (o múltiples procesadores) o una porción de un procesador y su (o sus) software y/o firmware adjunto. La expresión 'conjunto de circuitos' también cubriría, por ejemplo y si es aplicable al elemento particular de la reivindicación, un circuito integrado de banda base o un circuito integrado de procesador de aplicaciones para un teléfono móvil o un circuito integrado similar en un servidor, un dispositivo de red celular u otro dispositivo de red. This definition of 'circuitry' applies to all uses of this term in this application, including any claim. As a further example, as used in this application, the term 'circuitry' will also cover an implementation of as little as one processor (or multiple processors) or a portion of a processor and its software and/or firmware. attach. The expression 'circuitry' would also cover, for example and if applicable to the particular element of the claim, a baseband integrated circuit or an application processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device or other network device.
Claims (14)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1701594.2A GB2559199A (en) | 2017-01-31 | 2017-01-31 | Stereo audio signal encoder |
PCT/FI2018/050018 WO2018142018A1 (en) | 2017-01-31 | 2018-01-11 | Stereo audio signal encoder |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2946235T3 true ES2946235T3 (en) | 2023-07-14 |
Family
ID=58462846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES18747600T Active ES2946235T3 (en) | 2017-01-31 | 2018-01-11 | Stereo audio signal encoder |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3577649B1 (en) |
ES (1) | ES2946235T3 (en) |
GB (1) | GB2559199A (en) |
WO (1) | WO2018142018A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MX2019005147A (en) * | 2016-11-08 | 2019-06-24 | Fraunhofer Ges Forschung | Apparatus and method for encoding or decoding a multichannel signal using a side gain and a residual gain. |
GB2580899A (en) * | 2019-01-22 | 2020-08-05 | Nokia Technologies Oy | Audio representation and associated rendering |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1523863A1 (en) * | 2002-07-16 | 2005-04-20 | Koninklijke Philips Electronics N.V. | Audio coding |
US7433824B2 (en) * | 2002-09-04 | 2008-10-07 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
FI3573056T3 (en) * | 2008-07-11 | 2022-11-30 | Audio encoder and audio decoder | |
US9799339B2 (en) * | 2012-05-29 | 2017-10-24 | Nokia Technologies Oy | Stereo audio signal encoder |
WO2013185857A1 (en) * | 2012-06-14 | 2013-12-19 | Telefonaktiebolaget L M Ericsson (Publ) | Method and arrangement for scalable low-complexity coding/decoding |
EP2875510A4 (en) * | 2012-07-19 | 2016-04-13 | Nokia Technologies Oy | Stereo audio signal encoder |
US9530422B2 (en) * | 2013-06-27 | 2016-12-27 | Dolby Laboratories Licensing Corporation | Bitstream syntax for spatial voice coding |
TWI579831B (en) * | 2013-09-12 | 2017-04-21 | 杜比國際公司 | Method for quantization of parameters, method for dequantization of quantized parameters and computer-readable medium, audio encoder, audio decoder and audio system thereof |
-
2017
- 2017-01-31 GB GB1701594.2A patent/GB2559199A/en not_active Withdrawn
-
2018
- 2018-01-11 WO PCT/FI2018/050018 patent/WO2018142018A1/en unknown
- 2018-01-11 ES ES18747600T patent/ES2946235T3/en active Active
- 2018-01-11 EP EP18747600.7A patent/EP3577649B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3577649B1 (en) | 2023-05-10 |
GB2559199A (en) | 2018-08-01 |
WO2018142018A1 (en) | 2018-08-09 |
EP3577649A4 (en) | 2020-11-11 |
GB201701594D0 (en) | 2017-03-15 |
EP3577649A1 (en) | 2019-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9280976B2 (en) | Audio signal encoder | |
CN106463138B (en) | Method and apparatus for forming audio signal payload and audio signal payload | |
US9799339B2 (en) | Stereo audio signal encoder | |
US9865269B2 (en) | Stereo audio signal encoder | |
ES2968494T3 (en) | Determination of spatial audio parameter coding and associated decoding | |
JP7405962B2 (en) | Spatial audio parameter encoding and related decoding decisions | |
US10199044B2 (en) | Audio signal encoder comprising a multi-channel parameter selector | |
EP2989631A1 (en) | Audio signal encoder | |
ES2946235T3 (en) | Stereo audio signal encoder | |
US20160111100A1 (en) | Audio signal encoder | |
US10770081B2 (en) | Stereo audio signal encoder | |
US20160064004A1 (en) | Multiple channel audio signal encoder mode determiner | |
WO2019243670A1 (en) | Determination of spatial audio parameter encoding and associated decoding | |
EP3424048A1 (en) | Audio signal encoder, audio signal decoder, method for encoding and method for decoding |