ES2821725T3 - Codificación y decodificación de posiciones de impulso de pistas de una señal de audio - Google Patents
Codificación y decodificación de posiciones de impulso de pistas de una señal de audio Download PDFInfo
- Publication number
- ES2821725T3 ES2821725T3 ES18209670T ES18209670T ES2821725T3 ES 2821725 T3 ES2821725 T3 ES 2821725T3 ES 18209670 T ES18209670 T ES 18209670T ES 18209670 T ES18209670 T ES 18209670T ES 2821725 T3 ES2821725 T3 ES 2821725T3
- Authority
- ES
- Spain
- Prior art keywords
- track
- positions
- pulse
- tracks
- pulses
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Un aparato para decodificar una señal de audio codificada, en el que una o más pistas se asocian con la señal de audio codificada, teniendo cada una de las pistas una pluralidad de posiciones de pista y una pluralidad de impulsos, en el que el aparato comprende: un decodificador de información de impulsos (110) para decodificar una pluralidad de posiciones de impulsos, en el que cada una de las posiciones de impulsos indica una de las posiciones de la pista de una de las pistas para indicar una posición de uno de los impulsos de la pista, y en el que el decodificador de información de impulsos (110) se configura para decodificar la pluralidad de posiciones de impulsos usando un número de posiciones de pista que indica un número total de las posiciones de pista de al menos una de las pistas, un número de impulsos total que indica un número total de los impulsos de al menos una de las pistas, y un número de estado; y un decodificador de señal (120) para decodificar la señal de audio codificada generando una señal de audio sintetizada usando la pluralidad de posiciones de impulsos y una pluralidad de coeficientes de filtro predictivos estando asociados con la señal de audio codificada, en el que o bien (i) el decodificador de información de impulsos (110) está configurado para dividir una de las pistas en una primera partición de pista, comprendiendo al menos dos posiciones de pista de la pluralidad de posiciones de pistas, y en una segunda partición de pista, comprendiendo al menos otras dos posiciones de pista de la pluralidad de posiciones de pista, en el que el decodificador de información de impulsos (110) está configurado para generar un primer número de sub-estado y un segundo número de sub-estado en base al número de estado; en el que el decodificador de información de impulsos (110) está configurado para decodificar un primer grupo de posiciones de impulso asociadas con la primera partición de pista en base al primer número de sub-estado; y en el que el decodificador de información de impulsos (110) está configurado para decodificar un segundo grupo de posiciones de impulso asociadas con la segunda partición de pista en base al segundo número de sub-estado; en el que el número de estado indica un estado de una enumeración de todos los posibles estados, en el que todos los posibles estados indican todas las configuraciones posibles de los impulsos en una de las una o más pistas que tienen la pluralidad de posiciones de pista; o bien (ii) el decodificador de información de impulsos (110) está adaptado para llevar a cabo una prueba comparando el número de estado o un número de estado actualizado con un valor de umbral, en el que el decodificador de información de impulsos (110) está adaptado para llevar a cabo la prueba comparando, si el número de estado o un número de estado actualizado es mayor que, mayor que o igual a, menor que, o menor que o igual al valor de umbral, y en el que el decodificador de información de impulsos (110) está adaptado además para actualizar el número de estado o un número de estado actualizado dependiendo del resultado de la prueba; en el que el decodificador de información de impulsos (110) está configurado, para comparar, para cada posición de pista de una de la pluralidad de pistas, el número de estado o el número de estado actualizado con el valor de umbral; en el que el número de estado indica un estado de una enumeración de todos los posibles estados, en el que todos los posibles estados indican todas las configuraciones posibles de los impulsos en una de las una o más pistas que tienen la pluralidad de posiciones de pista.
Description
DESCRIPCIÓN
Codificación y decodificación de posiciones de impulso de pistas de una señal de audio
[0001] La presente invención se refiere al campo del procesamiento de audio y codificación de audio, en particular a decodificación de posiciones de impulso de pistas en una señal de audio.
[0002] El procesamiento y/o codificación de audio ha avanzado de muchas formas. En la codificación de audio, los codificadores predictivos lineales juegan un importante papel. Cuando se codifica una señal de audio, por ejemplo, una señal de audio que comprende voz, los codificadores predictivos lineales normalmente codifican una representación de la envolvente espectral de la señal de audio. En este extremo, los codificadores predictivos lineales pueden determinar los coeficientes de filtro predictivos para representar el envolvente espectral del sonido en formato codificado. Los coeficientes de filtro pueden ser utilizados entonces por un decodificador predictivo lineal para decodificar la señal de audio codificada generando una señal de audio sintetizada usando los coeficientes de filtro predictivos.
[0003] Ejemplos importantes de codificadores predictivos lineales son los codificadores ACELP (ACELP = codificadores de predicción lineal excitado por código algebraico). Los codificadores ACELP se utilizan ampliamente, por ejemplo, en USAC (USAC = Codificación de voz y audio unificada) y puede tener campos de aplicación adicionales, por ejemplo, en LD-USAC (Codificación de voz y audio unificada de bajo retraso).
[0004] Los codificadores ACELP normalmente codifican una señal de audio mediante la determinación de coeficientes de filtro predictivos. Para conseguir una mejor codificación, los codificadores ACELP determinan una señal residual, también denominada señal de destino, basada en la señal de audio que se va a codificar, y basada en los coeficientes de filtro predictivos ya determinados. La señal residual puede, por ejemplo, ser una señal de diferencia que representa una diferencia entre la señal de audio que se va a codificar y las partes de la señal que son codificadas por los coeficientes de filtro predictivos, y, posiblemente por los coeficientes de filtro adaptativos que resultan de un análisis de tono. El codificador ACELP intenta entonces codificar la señal residual. Para esto, el codificador codifica parámetros algebraicos del libro de códigos, que se utilizan para codificar la señal residual.
[0005] Para codificar la señal residual, se utilizan libros de códigos algebraicos. Normalmente, los libros de códigos algebraicos comprenden una pluralidad de pistas, por ejemplo, cuatro pistas cada uno comprendiendo 16 posiciones de pista. En dicha configuración, un total de 4 ■ 16 = 64 posiciones de muestra pueden representarse por un libro de códigos algebraico respectivo, por ejemplo, correspondiente al número de muestras de una subestructura de la señal de audio que se va a codificar.
[0006] Las pistas del libro de códigos pueden entrelazarse de forma que la pista 0 del libro de códigos puede representar muestras 0, 4, 8, ..., 60 de la sub-estructura, de forma que la pista 1 del libro de códigos puede representar las muestras 1, 5, 9..., 61 de la sub-estructura, de forma que la pista 2 del libro de códigos puede representar las muestras 2, 6, 10... 62 de la sub-estructura, y de forma que la pista 3 del libro de códigos puede representar las muestras 3, 7, 11, ...63 de la sub-estructura. Cada pista puede tener un número fijo de impulsos. Mejor dicho, el número de impulsos por pista puede variar, por ejemplo, dependiendo de otras condiciones. Un impulso puede, por ejemplo, ser positivo o negativo, por ejemplo, puede estar representado por 1 (impulso positivo) o 0 (impulso negativo).
[0007] Para codificar la señal residual, cuando se codifica, una configuración del libro de códigos puede seleccionarse, de forma que represente mejor las partes de señal restantes de la señal residual. Para esto, los impulsos disponibles pueden posicionarse a posiciones de la pista adecuadas que reflejen mejor las partes de la señal que se van a codificar. Además, puede especificarse si un impulso correspondiente es positivo o negativo.
[0008] En un lado del decodificador, un decodificador ACELP decodificaría primero los parámetros del libro de códigos algebraico. El decodificador ACELP también puede decodificar los parámetros adaptativos del libro de códigos. Para determinar los parámetros algebraicos del libro de códigos, el decodificador ACELP puede determinar la pluralidad de posiciones de impulso para cada pista de un libro de códigos algebraico. Además, el decodificador ACELP también puede decodificar si un impulso en una posición de pista es un impulso positivo o negativo. Adicionalmente, el codificador ACELP también puede decodificar los parámetros adaptativos del libro de códigos. En base a esta información, el decodificador ACELP normalmente genera una señal de excitación. El decodificador ACELP aplica a continuación los coeficientes de filtro predictivos sobre la señal de excitación para generar una señal de audio sintetizada para obtener la señal de audio decodificada.
[0009] En ACELP, los impulsos sobre una pista se codifican generalmente del siguiente modo. Si la pista es de una longitud 16 y si el número de impulsos en esta pista es uno, entonces podemos codificar la posición del impulso por su posición (4 bits) y señal (1 bit), con un total de 5 bits. Si la pista es de una longitud 16 y el número de impulsos es dos, entonces el primer impulso se codifica por su posición (4 bits) y señal (1 bit). Para el segundo impulso, necesitamos codificar solo la posición (4 bits), ya que podemos seleccionar que la señal del segundo
impulso sea positiva si está a la izquierda del primer impulso, negativa si está a la derecha del primer impulso, y la misma señal que el primer impulso si está en la misma posición que el primer impulso. En total, por tanto, necesitaremos 9 bits para codificar dos impulsos. En comparación con la codificación, el impulso se posiciona por separado, en 5 bits cada uno, y así ahorramos 1 bit por cada par de impulsos.
[0010] Al codificar un número de impulsos mayor de 2, podemos codificar impulsos en parejas y si el número de impulsos es impar, codificar el último impulso por separado. Entonces, por ejemplo, para una pista de 5 impulsos, necesitaríamos 9+9+5 = 23 bits. Si tenemos 4 pistas, entonces 4 x 23 = 92 bits se requerirían para codificar una sub estructura de una longitud de 64 con 4 pistas y 5 impulsos por pista. Sin embargo, se apreciaría si el número de bits pudiera reducirse aún más.
[0011] Virette et al, "Enhanced Pulse Indexing CE for ACELP in USAC", ISO/IEC JTC1/SC29/WG11, 95a Reunión de MPEG, enero 2011, páginas 11-13, XP030047872, presenta una indexación y desindexación de impulso basada en un procedimiento de permutación para la codificación y decodificación ACELP.
[0012] Se apreciaría si se proporcionara un aparato para codificar y un aparato respectivo para decodificar con conceptos de codificación o decodificación mejorados, que tenga medios para codificar o decodificar información de impulsos en una forma mejorada usando menos bits para la representación de la información de impulsos, ya que esto, por ejemplo, reduciría la velocidad de transmisión para transmitir una señal de audio codificada respectivamente, y además, esto, por ejemplo, reduciría el almacenamiento necesario para almacenar una señal de audio codificada respectivamente.
[0013] Es por tanto un objetivo de la presente invención proporcionar conceptos mejorados para codificar y decodificar los impulsos de las pistas de una señal de audio. Los objetivos de la presente invención se consiguen mediante un aparato para decodificar según la reivindicación 1, un procedimiento para decodificar según la reivindicación 4, y un programa informático según la reivindicación 5.
[0014] Como se ha señalado más arriba, la invención se describe en las reivindicaciones independientes. Todos los casos siguientes de la palabra “forma(s) de realización”, si se refieren a combinaciones de características diferentes de las definidas por las reivindicaciones independientes, hacen referencia a ejemplos que fueron presentados originalmente pero que no representan las formas de realización de la invención actualmente reivindicada; estos ejemplos se muestran aún con fines ilustrativos únicamente.
[0015] Según las formas de realización, se asume que un número de estado está disponible para un aparato para decodificación. Se asume además que un número de posiciones de pista, indicando el número total de las posiciones de pista de al menos una de las pistas asociadas con la señal de audio codificada, y un número total de impulsos, indicando el número de impulsos de al menos una de las pistas, está disponible para un aparato de decodificación de la presente invención. Preferiblemente, el número de posiciones de pista y el número total de impulsos está disponible para cada pista asociada con una señal de audio codificada.
[0016] Por ejemplo, al tener 4 pistas con 5 impulsos, cada uno puede alcanzar aproximadamente 6,6 x 10A21 estados, que pueden, según las formas de realización, codificarse por 73 bits, que es aproximadamente un 21% más eficaz que la codificación del codificador de última generación descrito anteriormente usando 92 bits.
[0017] Primero, se proporciona un concepto sobre cómo codificar una pluralidad de posiciones de impulsos de una pista de una señal de audio de forma eficaz. A continuación, el concepto se amplía para permitir codificar no solo la posición de los impulsos de una pista, sino si el impulso es positivo o negativo. Adicionalmente, el concepto se amplía entonces para permitir codificar información del impulso para una pluralidad de pistas de forma eficaz. Los conceptos son aplicables de forma correspondiente en el lado de un decodificador.
[0018] Además, las formas de realización están basadas, por otra parte, en la conclusión de que, si la estrategia de codificación utiliza un número de bits predeterminado, dicha configuración con el mismo número de impulsos en cada pista requiere un número igual de bits. Si el número de bits disponible es fijo, es entonces posible elegir directamente cuántos impulsos pueden codificarse con la cantidad de bits dada, permitiendo así la codificación con una cantidad predeterminada. Además, con esta estrategia, no es necesario probar diferentes cantidades de impulsos hasta que se consiga la tasa de bits deseada, pero podemos seleccionar directamente la cantidad adecuada de impulsos, reduciendo así la complejidad.
[0019] En base a las suposiciones anteriores, la pluralidad de posiciones de impulsos de una pista de una estructura de señal de audio puede codificarse y/o decodificarse.
[0020] Aunque la presente invención puede emplearse para codificar o decodificar cualquier tipo de señal de audio, por ejemplo, señales de voz o señales de música, la presente invención es particularmente útil para codificar o decodificar señales de voz.
[0021] En otra forma de realización, el decodificador de la información del impulso se adapta adicionalmente para decodificar una pluralidad de señales de impulso usando el número de posiciones de la pista, el número total de impulsos y el número de estado, donde cada una de las señales de impulso indica una señal de uno de la pluralidad de impulsos. El decodificador de señal puede estar adaptado para decodificar la señal de audio codificada generando una señal de audio sintetizada utilizando adicionalmente la pluralidad de señales de impulso.
[0022] Según una forma de realización adicional, en la que una o más pistas pueden comprender al menos una última pista y una o más pistas adicionales, el decodificador de información de impulso puede adaptarse para generar un primer número de sub-estado y un segundo número de sub-estado desde un número de estado. El decodificador de información de impulso puede configurarse para decodificar un primer grupo de las posiciones del impulso en base al número del primer sub-estado, y el decodificador de la información del impulso puede además configurarse para decodificar un segundo grupo de las posiciones de impulso en base al segundo número del sub estado. El segundo grupo de las posiciones del impulso pueden consistir solo en posiciones de impulso que indican las posiciones de la pista de la última pista. El primer grupo de las posiciones del impulso pueden consistir solo en posiciones de impulso que indican las posiciones de una o más pistas adicionales.
[0023] Según otra forma de realización, el decodificador de información de impulsos puede configurarse para separar el número de estado en el primer número de sub-estado y el segundo número de sub-estado dividiendo el número de estado por f(pk, N) para obtener una parte de entero y un resto como un resultado de la división, donde la parte de entero es el primer número de sub-estado y donde el resto es el segundo número de sub-estado, donde pk indica para cada una de la pista o pistas el número de impulsos, y donde N indica para cada una de la pista o pistas el número de posiciones de pista. Aquí, f(pk, N) es una función que devuelve el número de estados que pueden conseguirse en una pista de longitud N con impulsos pk.
[0024] En otra forma de realización, el decodificador de información de impulso puede adaptarse para realizar una prueba comparando el número de estado o un número de estado actualizado con un valor umbral.
[0025] El decodificador de información de impulso puede adaptarse para realizar la prueba comparando si el número de estado o un número de estado actualizado es mayor que, mayor que o igual a, más pequeño que, o más pequeño que o igual al valor umbral, y donde la unidad analizadora se adapta adicionalmente para actualizar el número de estado o un número de estado actualizado dependiendo del resultado de la prueba.
[0026] En una forma de realización, el decodificador de información de impulso puede configurarse para comparar el número de estado o el número de estado actualizado con el valor umbral para cada posición de pista de una de la pluralidad de pistas.
[0027] Según una forma de realización, el decodificador de información de impulso puede estar configurado para dividir una de las pistas en una primera partición de pista, comprendiendo al menos una posición de pista de la pluralidad de posiciones de pistas, y en una segunda partición de pista, comprendiendo las otras posiciones de pista restantes de la pluralidad de posiciones de pista. El decodificador de información de impulso puede estar configurado para generar un primer número de sub-estado y un segundo número de sub-estado en base al número de estado. Además, el decodificador de información de impulso puede estar configurado para decodificar un primer grupo de posiciones de impulso asociadas con la primera partición de pista en base al primer número de sub-estado. Además, el decodificador de información de impulso puede estar configurado para decodificar un segundo grupo de posiciones de impulso asociadas con la segunda partición de pista en base al segundo número de sub-estado.
[0028] Según una forma de realización, se proporciona un aparato para codificar una señal de audio. El aparato comprende un procesador de señal adaptado para determinar una pluralidad de coeficientes de filtro predictivos que están asociados con la señal de audio, para generar una señal residual basada en la señal de audio y la pluralidad de coeficientes de filtro predictivos. Por otra parte, el aparato comprende un codificador de información de impulso adaptado para codificar una pluralidad de posiciones de impulso relacionadas con una o más pistas para codificar la señal de audio, estando la pista o pistas asociadas con la señal residual. Cada una de las pistas tiene una pluralidad de posiciones de pista y una pluralidad de impulsos. Cada una de las posiciones de impulso indica una de las posiciones de la pista de una de las pistas para indicar una posición de uno de los impulsos de la pista. El codificador de información de impulso se configura para codificar la pluralidad de posiciones de impulso generando un número de estado, de forma que las posiciones de impulso puedan decodificarse solo en base al número de estado, un número de posiciones de pista indicando un número total de las posiciones de la pista de al menos una de las pistas, y un número total de impulsos indicando un número total de los impulsos de al menos una de las pistas.
[0029] Según otra forma de realización, el codificador de información de impulsos puede estar adaptado para codificar una pluralidad de señales de impulso, donde cada una de las señales de impulso indica una señal de una de la pluralidad de impulsos. El codificador de información de impulso puede estar configurado adicionalmente para codificar la pluralidad de señales de impulso generando el número de estado, de forma que las señales de impulso
pueden decodificarse solo en base al número de estado, el número de posiciones de pista indicando un número total de las posiciones de pista de al menos una de las pistas, y el número total de impulsos.
[0030] En una forma de realización, el codificador de información de impulso está adaptado para añadir un valor entero a un número intermedio para cada impulso en una posición de pista para cada posición de pista de una de las pistas, para obtener el número de estado.
[0031] Según otra forma de realización, el codificador de información de impulso puede estar configurado para dividir una de las pistas en una primera partición de pista, comprendiendo al menos una posición de pista de la pluralidad de posiciones de pistas, y en una segunda partición de pista, comprendiendo las otras posiciones de pista restantes de la pluralidad de posiciones de pista. Además, el codificador de información de impulso puede estar configurado para codificar un primer número de sub-estado asociado con la primera partición. Además, el codificador de información de impulso puede estar configurado para codificar un segundo número de sub-estado asociado con una segunda partición. Además, el codificador de información de impulsos puede estar configurado para combinar el primer número de sub-estado y el segundo número de sub-estado para obtener el número de estado.
[0032] En la siguiente descripción, se describen con más detalles las formas de realización de la presente invención con respecto a las figuras, en las que:
La Fig. 1 ilustra un aparato para decodificar una señal de audio codificada según una forma de realización, la Fig. 2 ilustra un aparato para codificar una señal de audio según una forma de realización,
la Fig. 3 ilustra todas las posibles configuraciones para una pista que tenga dos impulsos no asignados y tres posiciones de pista,
la Fig. 4 ilustra todas las posibles configuraciones, para una pista que tenga un impulso con señal y dos posiciones de pista,
la Fig. 5 ilustra todas las posibles configuraciones, para una pista que tenga dos impulsos de señal y dos posiciones de pista,
la Fig. 6 es un gráfico de flujo que ilustra una forma de realización, que representa las etapas del procesamiento realizadas por un decodificador de información de impulso según una forma de realización, y
la Fig. 7 es un gráfico de flujo que ilustra una forma de realización, representando el gráfico de flujo las etapas del procesamiento realizadas por un codificador de información de impulso según una forma de realización.
[0033] La Fig. 1 ilustra un aparato para decodificar una señal de audio codificada, en la que una o más pistas se asocian con la señal de audio codificada, teniendo cada una de las pistas una pluralidad de posiciones de pista y una pluralidad de impulsos.
[0034] El aparato comprende un decodificador de información de impulsos 110 y un decodificador de señal 120. El decodificador de información de impulsos 110 se adapta para decodificar una pluralidad de posiciones de impulso. Cada una de las posiciones de impulso indica una de las posiciones de la pista de una de las pistas para indicar una posición de uno de los impulsos de la pista.
[0035] El decodificador de impulsos 110 está configurado para decodificar la pluralidad de posiciones de impulso mediante el uso de un número de posiciones de pista que indica un número total de las posiciones de pista de al menos una de las pistas, indicando un número total de impulsos un número total de los impulsos de al menos una de las pistas, y un número de estado.
[0036] El decodificador de señal 120 se adapta para decodificar la señal de audio codificada generando una señal de audio sintetizada mediante el uso de la pluralidad de posiciones de impulso y una pluralidad de coeficientes de filtro predictivos que están asociados con la señal de audio codificada.
[0037] El número de estado es un número que puede haber sido codificado por un codificador según las formas de realización que se describirán a continuación. El número de estado, por ejemplo, comprende información sobre una pluralidad de posiciones de impulsos en una representación compacta, por ejemplo, una representación que requiere algunos bits, y que puede decodificarse, cuando la información sobre el número de posiciones de pista y el número de impulsos totales está disponible en el decodificador.
[0038] En una forma de realización, el número de posiciones de pista y/o el número de impulsos totales de una o de cada pista de la señal de audio puede estar disponible en el decodificador, porque el número de posiciones de pista y/o el número de impulsos totales es un valor estático que no cambia y es conocido por el receptor. Por ejemplo, el número de posiciones de pista puede ser siempre 16 para cada pista y el número total de impulsos puede ser siempre 4.
[0039] En otra forma de realización, el número de posiciones de pista y/o el número total de impulsos de una o de cada pista de la señal de audio puede transmitirse explícitamente al aparato para decodificación, por ejemplo, por el aparato para codificación.
[0040] En una forma de realización adicional, el decodificador puede determinar el número de posiciones de pista y/o el número total de impulsos de una o de cada pista de la señal de audio analizando otros parámetros que no indican explícitamente el número de posiciones de pista y/o el número total de impulsos, pero desde los cuales el número de posiciones de pista y/o el número total de impulsos puede derivarse.
[0041] En otras formas de realización, el decodificador puede analizar otros datos disponibles para derivar el número de posiciones de la pista y/o el número total de impulsos de una o de cada pista de la señal de audio.
[0042] En una forma de realización adicional, el decodificador de la información de impulsos puede adaptarse para decodificar también, tanto si un impulso es un impulso positivo o un impulso negativo.
[0043] En otra forma de realización, el decodificador de información de impulsos puede adaptarse adicionalmente para decodificar información de impulsos que comprende información sobre los impulsos para una pluralidad de pistas. La información del impulso puede, por ejemplo, ser información sobre la posición de los impulsos en una pista y/o información tanto si un impulso es un impulso positivo o un impulso negativo.
[0044] La Fig. 2 ilustra un aparato para codificar una señal de audio, que comprende un procesador de señal 210 y un codificador de información de impulsos 220.
[0045] El procesador de señal 210 está adaptado para determinar una pluralidad de coeficientes de filtro predictivos estando asociados con la señal de audio, para generar una señal residual basada en la señal de audio y la pluralidad de coeficientes de filtro predictivos.
[0046] El codificador de información de impulsos 220 está adaptado para codificar una pluralidad de posiciones de impulsos relacionadas con una o más pistas para codificar la señal de audio. Una o más pistas están asociadas con la señal residual generada por el procesador de señal 210. Cada una de las pistas tiene una pluralidad de posiciones de pista y una pluralidad de impulsos. Además, cada una de las posiciones de impulso indica una de las posiciones de la pista de una de las pistas para indicar una posición de uno de los impulsos de la pista.
[0047] El codificador de información de impulsos 220 está configurado para codificar la pluralidad de posiciones de impulso generando un número de estado, de forma que las posiciones de impulso puedan ser decodificadas solo en base al número de estado, un número de posiciones de pista que indica un número total de las posiciones de pista de al menos una de las pistas, y un número total de impulsos que indica un número total de los impulsos de al menos una de las pistas.
[0048] A continuación, se presentan los conceptos básicos de las formas de realización de la presente invención relacionada con la codificación de posiciones de impulso y posiblemente señal de impulso (impulso positivo o impulso negativo) al generar un número de estado.
[0049] Los principios de codificación de las formas de realización de la presente invención se basan en la conclusión de que, si una enumeración de estado de todas las posibles configuraciones de k impulsos en una pista con n posiciones de pista se considera, es suficiente codificar el estado actual de los impulsos de una pista. Codificar dicho estado en tan pocos bits como sea posible proporciona la codificación compacta deseada. Con esto, se presenta un concepto de enumeración de estado, donde cada constelación de posiciones de impulso, y posiblemente también las señales de impulso, representa un estado y cada estado se enumera de forma única.
[0050] La Fig. 3 ilustra esto para un caso sencillo, donde todas las posibles configuraciones se representan, cuando se considera una pista que tiene dos impulsos y tres posiciones de pista. Dos impulsos pueden estar ubicados en la misma posición de la pista. En el ejemplo de la Fig. 3, la señal de los impulsos (por ejemplo, cuando el impulso es positivo o negativo) no se considera, por ejemplo, en dicho ejemplo, todos los impulsos pueden, por ejemplo, considerarse como positivos.
[0051] En la Fig. 3, se ilustran todos los posibles estados para dos impulsos no dirigidos ubicados en una pista con tres posiciones de pista (en la Fig. 3: posiciones de pista 1, 2 y 3). Existen solo seis posibles estados diferentes (en la Fig. 3, enumerados de 0 a 5) que describen cómo los impulsos pueden distribuirse en la pista. Con esto, es suficiente usar un número de estado en el intervalo 0 a 5 para describir la configuración real presente. Por ejemplo, si el número de estado en el ejemplo de la Fig. 3 tiene el valor (4) y si el decodificador conoce el esquema de codificación, el decodificador puede concluir que el número de estado = 4 significa que la pista tiene un impulso en la posición de pista 0 y otro impulso en la posición de pista 2. Con esto, en el ejemplo de la Fig. 3, tres bits son suficientes para codificar el número de estado para identificar uno de los seis estados diferentes del ejemplo de la Fig. 3.
[0052] La Fig. 4 ilustra un caso que representa todos los estados posibles para un impulso dirigido ubicado en una pista con dos posiciones de pista (en la Fig. 4: posiciones de pista 1 y 2). En la Fig. 4 se considera la señal de los impulsos (por ejemplo, si el impulso es positivo o negativo). Existen cuatro estados diferentes posibles (en la Fig. 4 enumerados de 0 a 3) que describen cómo el impulso puede distribuirse en la pista y también su señal (positiva o negativa). Es suficiente usar un número de estado en el intervalo 0 a 3 para describir la configuración real presente. Por ejemplo, si el número de estado en el ejemplo de la Fig. 4 tiene el valor (2) y si el decodificador conoce el esquema de codificación, el decodificador puede concluir que el número de estado = 2 significa que la pista tiene un impulso en la posición de pista 1 y que el impulso es un impulso positivo.
[0053] La Fig. 5 ilustra otro caso más, donde todas las posibles configuraciones se representan, cuando se considera una pista que tiene dos impulsos y dos posiciones de pista. Los impulsos pueden estar ubicados en la misma posición de la pista. En el ejemplo mostrado en la Fig. 5 se considera la señal de los impulsos (por ejemplo, si el impulso es positivo o negativo). Se asume que los impulsos en la misma posición de pista tienen la misma señal (por ejemplo, las pistas en la misma posición de pista son todas positivas o todas negativas).
[0054] En la Fig. 5, se ilustran todos los posibles estados para los impulsos de dos señales (por ejemplo, impulsos que son positivos o negativos) ubicados en una pista con dos posiciones de pista (en la Fig. 5: posiciones de pista 1 y 2). Existen solo ocho posibles estados diferentes (en la Fig. 5, enumerados de 0 a 7) que describen cómo los impulsos pueden distribuirse en la pista. Con esto, es suficiente usar un número de estado en el intervalo 0 a 7 para describir la configuración real. Por ejemplo, si el número de estado en el ejemplo de la Fig. 5 tiene el valor (3) y si el decodificador conoce el esquema de codificación, el decodificador puede concluir que el número de estado = 3 significa que la pista tiene un impulso en la posición de pista 0 que es positivo y otro impulso en la posición de pista 1 que es negativo. Con esto, en el ejemplo de la Fig. 5, tres bits son suficientes para codificar el número de estado para identificar uno de los ocho estados diferentes del ejemplo de la Fig. 5.
[0055] En ACELP, la señal residual puede codificarse mediante un número fijo de impulsos con señal. Como se ha descrito anteriormente, los impulsos pueden distribuirse, por ejemplo, en cuatro pistas interrelacionadas, de forma que la pista 0 contenga las posiciones mod(n,4)==0, la pista=1 contenga las posiciones mod(n, 4)==1, y así sucesivamente. Cada pista puede tener un número predefinido de impulsos de unidad con señal, que pueden solaparse, pero cuando se solapan, los impulsos tienen la misma señal.
[0056] Al codificar los impulsos, se debería conseguir una asignación desde las posiciones del impulso y sus señales, a una representación que utiliza la cantidad más pequeña posible de bits. Además, la codificación de impulsos debería tener un consumo de bits que es fijo, es decir, cualquier constelación de impulsos tiene el mismo número de bits.
[0057] Cada pista se codifica primero de forma independiente y, a continuación, los estados de cada pista se combinan a un número, que representa el estado de toda la sub-estructura. Esta estrategia proporciona el consumo de bits matemáticamente óptimo, dado que todos los estados tienen una probabilidad igual y el consumo de bits es fijo.
[0058] El concepto de numeración de estado puede explicarse también mediante el uso de una representación compacta de las diferentes constelaciones de estado:
Digamos que la señal residual, que queremos codificar, sea xn. Asumiendo que se consideren cuatro pistas interrelacionadas, por ejemplo, de un libro de códigos algebraico, entonces la primera pista tiene las muestras xo, X4, xs ... xn-4, la segunda pista tiene las muestras xi, xs, X9...XN-3, etc. Supongamos que la primera pista está cuantizada con un impulso de unidad con señal y que T=8, donde la longitud de la pista es 2 (T = longitud (muestras) de la señal residual que se va a codificar). Si T=8, y si se utilizan 4 pistas para codificar la señal residual, cada una de las 4 pistas tiene dos posiciones de pista. Por ejemplo, la primera pista puede considerarse como que tiene dos posiciones de pista x0 y x4. El impulso de la primera pista puede entonces aparecer en cualquiera de las siguientes constelaciones:
[0059] Existen cuatro estados diferentes para esta configuración.
[0060] Similarmente, si hubiera dos impulsos en la primera pista, teniendo la primera pista dos posiciones de pista x0 y x4, los impulsos podrían asignarse entonces en las siguientes constelaciones:
[0061] Por tanto, esta configuración tiene 8 estados.
[0062] Si la longitud de la señal residual se extiende a T=12, entonces cada una de las 4 pistas tiene 3 posiciones de pista. La primera pista obtiene una muestra más y ahora tiene las posiciones de pista x0, x4 y x8, de forma que obtengamos:
[0063] La tabla anterior significa que existen 8 estados diferentes para x0 y x4, si x8 = 0 (x8 no tiene impulso); 4 estados diferentes para x0 y x4, si x8 = 1 (x8 tiene un impulso positivo); 4 estados diferentes para x0 y x4, si x8 = 1 (x8 tiene un impulso negativo); 1 estado para x0 y x4, si x8 = 2 (x8 tiene dos impulsos positivos); y 1 estado para x0 y x4, si x8 = 2 (x8 tiene dos impulsos negativos).
[0064] Aquí, el número de estados para la primera fila ha sido obtenido a partir de las dos tablas anteriores. En adición al número de estados de la primera fila, vemos que esta configuración tiene 18 estados.
[0065] En el ejemplo T=12, 5 bits son suficientes para codificar todos los 18 estados diferentes posibles. El codificador selecciona entonces, por ejemplo, el número de estado desde el intervalo [0, ..., 17] para especificar una de las 18 configuraciones. Si el decodificador conoce el esquema de codificación, por ejemplo, si conoce qué número de estado representa qué configuración, puede decodificar las posiciones de impulso y las señales de impulso para una pista.
[0066] A continuación, se proporcionarán procedimientos de codificación adecuados y procedimientos de decodificación correspondientes según las formas de realización. Según las formas de realización, se proporciona un aparato para codificación que está configurado para ejecutar uno de los procedimientos de codificación presentados más abajo. Además, según formas de realización adicionales, se proporciona un aparato para decodificación que está configurado para ejecutar uno de los procedimientos de decodificación presentados más abajo.
[0067] En las formas de realización, para generar el número de estado o para decodificar el número de estado, puede calcularse el número de configuraciones posibles para las posiciones de pista N que tienen impulsos p.
[0068] Los impulsos pueden señalizarse, y puede emplearse una fórmula recursiva, que calcula el número de estados f(p, N) para una pista que tiene posiciones de pista N e impulsos con señal p (los impulsos pueden ser positivos o negativos, pero los impulsos en la misma posición de pista tienen la misma señal), donde la fórmula recurrente f(p, N) se define mediante:
Fórmula 1:
[0069] Las condiciones iniciales son
ya que una posición única con uno o más impulsos requiere un bit (dos estados) para la señal. La fórmula recurrente es para la totalización de todas las constelaciones diferentes.
[0070] Es decir, dados los impulsos p, la posición actual puede tener impulsos qN = 0 a p, donde las posiciones N-1 restantes tienen impulsos p - qN. El número de estados en la posición actual y las posiciones N-1 restantes se multiplican para obtener el número de estados con estas combinaciones de impulsos y las combinaciones se totalizan para obtener el número total de estados.
[0071] En las formas de realización, la función recurrente puede calcularse mediante un algoritmo iterativo, donde la recurrencia se sustituye por la iteración.
[0072] Ya que la evaluación de f(p,N) es relativamente numéricamente compleja para las aplicaciones a tiempo real, según algunas formas de realización, puede emplearse una búsqueda de tabla para calcular f(p,N). Según algunas formas de realización, la tabla puede haber sido calculada offline.
[0073] En lo siguiente, se proporcionan conceptos adicionales para codificar y decodificar el número de estado:
Digamos que f(p,N) denota el número de configuraciones posibles para una pista que tiene posiciones de pista N e impulsos de señal p.
[0074] El codificador de información de impulsos puede analizar ahora la pista: si la primera posición en la pista no tiene un impulso, entonces las posiciones N-1 restantes tienen impulsos con señal p, y para describir esta constelación, necesitamos solo los estados f(p, N -1).
[0075] De lo contrario, si la primera posición tiene uno o más impulsos, el codificador de información de impulsos puede definir que el estado general es mayor que f(p, N -1).
[0076] A continuación, en el decodificador de la información de impulsos, el decodificador de información de impulsos puede, por ejemplo, empezar con la última posición y comparar el estado con un valor de umbral, por ejemplo con f(p, N - 1). Si es mayor, entonces el decodificador de información de impulsos puede determinar que la última posición tiene al menos un impulso. El decodificador de información de impulsos puede entonces actualizar el estado para obtener un número de estado actualizado restando f(p, N - 1) del estado y reduciendo el número de impulsos restantes en uno.
[0077] De otra forma, si no hay impulso en la última posición, el decodificador de información de impulsos puede reducir el número de posiciones restantes en uno. Repetir este procedimiento hasta que no queden impulsos, proporcionaría las posiciones sin señal de los impulsos.
[0078] Para tener en cuenta también las señales de los impulsos, el codificador de información de impulsos puede codificar los impulsos en el bit más bajo del estado. En una forma de realización alternativa, el codificador de información de impulsos puede codificar la señal en el bit restante más alto del estado. Se prefiere, sin embargo, codificar la señal de impulso en el bit más bajo, ya que es más fácil de gestionar con respecto a los cálculos de enteros.
[0079] Si, en el decodificador de información de impulsos, se encuentra el primer impulso de una posición dada, la señal del impulso se determina mediante el último bit. A continuación, el estado restante se desplaza una etapa a la derecha para obtener un número de estado actualizado.
[0080] En una forma de realización, un decodificador de la información de impulsos se configura para aplicar el siguiente algoritmo de decodificación. En este algoritmo de decodificación, en una estrategia etapa a etapa, para cada posición de pista, por ejemplo una detrás de la otra, el número de estado o el número de estado actualizado se compara con un valor umbral, por ejemplo, con f(p, k -1).
[0081] Según una forma de realización, se proporciona un algoritmo para el decodificador de información de impulsos:
Para cada posición en la pista, k=N a 1
Mientras el estado s >= f(p, k -1)
Poner un impulso en k
Establecer s := s - f(p, k -1)
Si éste es el primer impulso en k
Si el bit más bajo de s está ajustado, establecer señal a menos
De otro modo, establecer señal a más
Desplazar estado derecho una etapa s = s/2
Reducir el número de impulsos restantes p : = p - 1
[0082] En cuanto a la información de impulsos, según una forma de realización, un codificador de información de impulsos se configura para aplicar el siguiente algoritmo de codificación. El codificador de información de impulsos realiza las mismas etapas que el decodificador de información de impulsos, pero en orden inverso.
[0083] Según una forma de realización, se proporciona un algoritmo para el codificador de información de impulsos:
Establecer número de impulsos encontrados a cero, p:=0 y el estado a cero, s:=0.
Para cada posición en la pista, k=1 a N
Para cada impulso en esta posición
Si el impulso actual es el último en esta posición
Desplazar estado izquierdo una etapa s := s * 2
Si la señal es menos, establecer el bit más bajo a uno, s := s 1
De otra manera establecer el bit más bajo a cero (es decir, no hacer nada)
Actualizar el estado s := s f(p, k -1)
Aumentar el número de impulsos encontrados p: =p+1
[0084] Al decodificar el número de estado mediante el uso de este algoritmo, el codificador de información de impulso añade un valor entero a un número intermedio (por ejemplo, un número de estado intermedio), por ejemplo, el número de estado antes de completar el algoritmo, para cada impulso en una posición de pista para cada posición de pista de una de las pistas, para obtener (el valor de) el número de estado.
[0085] La estrategia para codificar y decodificar la información de impulsos, por ejemplo, las posiciones de impulsos y las señales de impulsos, puede denominarse "codificación etapa a etapa" y "decodificación etapa a etapa", ya que las posiciones de pista son consideradas por los procedimientos de codificación y decodificación uno tras el otro, etapa a etapa.
[0086] La Fig. 6 es un gráfico de flujo que ilustra un ejemplo, que representa las etapas de procesamiento realizadas por una decodificación de la información de impulsos según una forma de realización.
[0087] En la etapa 610, la posición de pista actual k se establece a N. Aquí, N representa el número de posiciones de pista de una pista, donde las posiciones de pista se enumeran de 1 a N.
[0088] En la etapa 620, se prueba si k es mayor que o igual a 1, es decir, si las posiciones de la pista restantes no han sido consideradas. Si k no es mayor que o igual a 1, todas las posiciones de pista han sido consideradas y el proceso finaliza.
[0089] De otra manera, se prueba en la etapa 630 si el estado es mayor que o igual a f(p, k-1). Si éste es el caso, al menos hay un impulso presente en la posición k. Si éste no es el caso, no hay presente ningún impulso (adicional) en la posición de pista k y el proceso continúa en 640 donde k se reduce en 1, de forma que la siguiente posición de pista se considerará.
[0090] Si, sin embargo, el estado es mayor que o igual a f(p, k-1), el proceso continúa con la etapa 642, un impulso se pone en la posición de pista k y, a continuación, en la etapa 644, el estado se actualiza reduciendo el estado en f(p, k-1). A continuación, en la etapa 650, se prueba si el impulso actual es el primer impulso descubierto en la posición de pista k. Si éste no es el caso, el número de impulsos restantes se reduce en 1 en la etapa 680, y el proceso continúa en la etapa 630.
[0091] Si, sin embargo, éste es el primer impulso descubierto en la posición de pista k, el proceso continúa con la etapa 660, donde se prueba si el bit más bajo de s se ha establecido. Si éste es el caso, la señal de los impulsos en esta posición de pista se establece a menos (etapa 662), de otra manera, la señal de los impulsos en esta posición de pista se establece a más (etapa 664). En ambos casos, el estado se desplaza una etapa a la derecha en la etapa 670 (s := s/2). A continuación, además, el número de impulsos restante se reduce en una (etapa 680) y el proceso continúa en la etapa 630.
[0092] La Fig. 7 es un gráfico de flujo que ilustra una forma de realización, representando el gráfico de flujo las etapas de procesamiento realizadas por un codificador de información de impulsos según una forma de realización.
[0093] En la etapa 710, el número de impulsos p encontrados se establece a 0, el estado s se establece a 0 y la posición de pista considerada k se establece a 1.
[0094] En la etapa 720, se prueba si k es más pequeño que o igual a N, es decir, si las posiciones de pista permanecen como no consideradas (aquí, N significa: número de posiciones de pista de una pista). Si k no es más pequeño que o igual a N, todas las posiciones de pista han sido consideradas y el proceso finaliza.
[0095] De otra manera, se prueba en la etapa 730 si al menos un impulso está presente en la posición k. Si éste no es el caso, el proceso continúa a 740, donde k se aumenta en 1, de forma que se considerará la siguiente posición de pista.
[0096] Sin embargo, si al menos hay presente un impulso en la posición de pista k, se prueba en la etapa 750 si el impulso considerado actualmente es el último impulso en la posición de la pista k. Si éste no es el caso, entonces, en la etapa 770, el estado s se actualiza añadiendo f(p, k-1) al estado s, el número de impulsos encontrados p se aumenta en 1 y el proceso continúa con la etapa 780.
[0097] Si el impulso considerado actualmente es el último impulso en la posición de pista k, entonces tras la etapa 750, el proceso continúa con la etapa 755 y el estado se desplaza una etapa a la izquierda (s := s * 2). A continuación, se prueba en la etapa 760 si la señal del impulso es menos. Si éste es el caso, el bit más bajo se establece a 1 (etapa 762); de otra manera, el bit más bajo de s se establece a 0 (o no se hace nada) (etapa 764). A continuación, en ambos casos, se realiza la etapa 770, donde el estado s se actualiza añadiendo f(p, k-1) al estado s, el número de impulsos encontrados p se aumenta en 1 y el proceso continúa con la etapa 780.
[0098] En la etapa 780, se prueba si existe otro impulso en la posición k. Si éste es el caso, el proceso continúa con la etapa 750; de otra manera, el proceso continúa con la etapa 740.
[0099] En lo sucesivo, se proporciona un concepto para generar un número de estado conjunto que codifica el estado de una pluralidad de pistas.
[0100] Desafortunadamente, en muchos casos, el rango de posibles estados de una sola pista no es un múltiplo de 2 y la representación binaria de cada estado es por tanto ineficiente. Por ejemplo, si el número de posibles estados es 5, entonces necesitamos 3 bits para representarlo con un número binario. Sin embargo, si tenemos cuatro pistas, cada una con 5 estados, entonces tenemos 5x5x5x5=625 estados para toda la sub-estructura que puede representarse por 10 bits (en vez de 4x3=12 bits). Esto se corresponde con 2,5 bits por pista en vez de 3 y así obtenemos un ahorro de 0,5 bits por pista o de forma equivalente, 2 bits por sub-estructura (20% del consumo total de bits). Es por tanto importante combinar los estados de cada pista a un estado conjunto, ya que, por esto, la ineficacia de la representación puede reducirse. Debe tenerse en cuenta que podría usarse la misma estrategia para cualquier número transmitido. Por ejemplo, ya que cada sub-estructura puede tener un estado que representa las posiciones de los impulsos, y cada estructura puede, por ejemplo, tener cuatro sub-estructuras, estos estados podrían combinarse a un número de estado conjunto.
[0101] Dado que una sub-estructura tiene, por ejemplo, 4 pistas, el consumo de bits puede reducirse para mejorar la eficacia para codificar de forma conjunta los estados de cada pista. Por ejemplo, dado que cada pista tiene impulsos pk y cada pista tiene una longitud N, por ejemplo tiene N posiciones de pista, entonces el estado de cada pista está en el rango de 0 a f(pk, N) - 1. Los estados de cada pista Sk pueden entonces combinarse a un estado conjunto s de la sub-estructura con la fórmula (asumiendo que tenemos 4 pistas por sub-estructura).
Fórmula 2:
s = [fco/fe,» N) l f ( p \ > N) silfÍP2. N)+s3.
[0102] Los estados de cada pista pueden entonces determinarse en el decodificador dividiendo el estado conjunto por f(pk, N), donde el resto es el estado de la última pista y la parte entera es el estado conjunto de las pistas restantes. Si el número de pistas es distinto a 4, podemos rápidamente añadir o reducir el número de términos en la ecuación anterior de forma apropiada.
[0103] Debe tenerse en cuenta que cuando el número de impulsos por pista es grande, entonces el número de posibles estados aumenta. Por ejemplo, con 6 impulsos por pista con cuatro pistas y una longitud de pista N=16, entonces el estado es un número de 83 bit, que supera la longitud máxima de los números binarios en CPUs regulares. A continuación, se muestran algunas etapas regulares que deben realizarse para evaluar la fórmula anterior usando procedimientos estándar con enteros muy largos.
[0104] Debe observarse también que esta estrategia es igual a la codificación aritmética de los estados de la pista, cuando las posibilidades del estado se asumen como iguales.
[0105] Anteriormente, se ha presentado una estrategia etapa a etapa para codificar y decodificar informaciones de impulsos de una pista, por ejemplo, las posiciones, y posiblemente las señales, de impulsos de una pista. Otras formas de realización proporcionan otra estrategia, a la que llamaremos estrategia "dividir y conquistar".
[0106] Un codificador de información de impulsos configurado para aplicar la estrategia dividir y conquistar, divide una pista en dos particiones de pista x1 y x2, que podrían considerarse como dos vectores, donde x = [x1 x2]. La idea básica es codificar ambos vectores xi y X2 por separado y, a continuación, combinar los dos con la fórmula.
[0107] En la ecuación anterior, debería destacarse que s(x1) y s(x2) son los estados de los vectores X1 y X2, cuando el número de impulsos ya se conocen, es decir, cuando los vectores tienen, respectivamente, impulsos, pi y P2 =p-pi. Para tener en cuenta todos los estados que tienen 0 a pi-1 impulsos en el vector X1, tenemos que añadir el término de la suma en la ecuación anterior.
[0108] El algoritmo/fórmula anterior puede aplicarse para codificar los impulsos de las pistas interrelacionadas para aplicar las siguientes etapas de pre-procesamiento. Primero, dejemos que los vectores xtrack k consistan en todas las muestras en la pista k y combinar estos vectores definiendo x = [xtrack i, xtrack2, xtrack3, xtrack4]. Observamos que esto es meramente una reordenación de las muestras de forma que todas las muestras de la pista 1 se coloquen en el primero grupo y así sucesivamente.
[0109] Segundo, obsérvese que los números de impulsos por pista es normalmente un número fijo. Sigue que si la pista 1 siempre tiene impulsos pi entonces el número de estado en la pista 1 es f(k, Ni)= 0 para todos los valores k t pi. Ésta es simplemente otra forma de decir que no hay estados para la pista 1 que no tengan impulsos pi. Formalmente, podemos definir la fórmula número de estados como:
Fórmula 4:
[0110] Para una pista completa xtrackk con impulsos pk el número de estados es (N=Ntrackk)
para p = p k
[0111] De otra manera, para N> i
f<P, N) = f J/(k,Nl )f(p - K N - N J
k=0
[0112] Y para N=1:
para p > 1
[0113] Al reordenar las muestras y usar la definición anterior para el número de estados (Fórmula 4), podemos calcular el estado conjunto de todas las pistas mediante la Fórmula 3. Cabe destacar que, ya que el número de estados contiene en su mayoría ceros, la suma en la Fórmula 3 es cero, cuando se combina el estado de las pistas. Por tanto, combinar dos pistas es idéntico a la Fórmula 2. De forma similar, podemos mostrar fácilmente que la combinación de las cuatro pistas (o cinco) también proporciona resultados idénticos con ambas estrategias.
[0114] Según una forma de realización, la reordenación puede usarse como una etapa de pre-procesamiento para el codificador. En otro ejemplo, la reordenación puede integrarse en el codificador. De forma similar, según una forma de realización, la reordenación puede utilizarse como etapa de post-procesamiento para el decodificador. En otra forma de realización, la reordenación puede integrarse en el decodificador. Si el número de impulsos en una pista no es fijo, podemos modificar fácilmente el número de la fórmula de estados de forma apropiada, y seguir usando el mismo algoritmo de codificación.
[0115] Se observa que la estrategia presentada en la sección "Combinando datos de pista" y el procedimiento anterior proporcionan resultados iguales si el orden de combinación de las pistas se selecciona de forma apropiada. Igualmente, además las estrategias etapa a etapa y dividir y conquistar proporcionan los mismos resultados. Podemos por tanto seleccionar de forma independiente qué estrategia usar en el decodificador y codificador, según cuál es más práctica de implementar o qué estrategia se ajusta mejor a las restricciones computacionales de la plataforma.
[0116] Según una forma de realización, se proporciona un algoritmo de codificador de información de impulsos, que puede describirse en pseudo-código por
estado de función = codificar(x)
1. si la longitud de x es 1
a. si x no tiene impulsos
i. estado = 0
ii. retorno
b. si no (x tiene al menos un impulso)
i. si el impulso(s) en x es positivo
estado = 0
retorno
ii. si no (el impulso(s) en x es negativo)
estado = 1
retorno
iii. fin
c. fin
2. si no (es decir, cuando la longitud de x es > 1)
a. dividir x en dos vectores x1 y x2 de longitud N1 y N2 respectivamente
b. determinar el estado del vector x1 por s1 = codificar(x1)
c. determinar el estado del vector x2 por s2 = codificar(x1)
d. dejar que p sea el número de impulsos en x y p1 el número de impulsos en x1
e. establecer n0 = 0
f. para k desde 0 a p1-1
i. establecer n0 := n0 f(k,N1)*f(p-kN2)
g. fin
h. calcular estado como s := s1 f(p1,N1)*s2 n0
i. retorno
3. fin
[0117] Al emplear dicho algoritmo de codificación, según una forma de realización, se configura el codificador de información de impulsos para dividir una de las pistas en una primera partición de pista y en una segunda partición de pista. El codificador de información de impulso está configurado para codificar un primer número de sub estado asociado con la primera partición. Además, el codificador de información de impulsos se configura para codificar un segundo número de sub-estado asociado con la segunda partición. Adicionalmente, el codificador de la información de impulsos se configura para combinar el primer número de sub-estado y el segundo número de sub estado para obtener el número de estado.
[0118] De forma similar, según una forma de realización, el algoritmo del decodificador de información de impulsos se proporciona de forma que puede describirse en un pseudo-código mediante:
función x = decodificar(s, p, N)
1. si el número de impulsos p es 0
a. vector de retorno x lleno de ceros
2. si no
a. si lon. es 1
i. si s == 0
1. El vector x tiene impulsos p positivos en su primera posición
ii. si no
1. El vector x tiene impulsos p negativos en su primera posición
iii. fin
b. si no
i. Seleccionar longitudes de partición N1 y N2
ii. Establecer n0 := 0 y p1 :=0
iii. Mientras n0 f(p1,N1)*f(p-p1) < s
1. establecer p1 := p1 1
2. establecer n0 := n0 f(p1,N1)*f(p-p1)
iv. fin
v. establecer s := s - n0 y p2 := p - p1
vi. establecer s1 := s / f(p1,N1) y el resto en s2
vii. decodificar la primera partición x1 = decodifica(s1, p1, N1)
viii. decodificar la segunda partición x2 = decodificar(s2, p2, N2)
ix. combinar particiones x1 y x2 en para x
c. fin
3. fin
[0119] En una forma de realización, realizando la estrategia dividir y conquistar, un decodificador de información de impulsos se configura para generar un primer número de sub-estado y un segundo número de sub estado basado en el número de estado. El decodificador de información de impulsos se configura para decodificar un primer grupo de posiciones de impulsos de una primera partición de una de las pistas basada en el primer número de sub-estado. Además, el decodificador de información de impulsos se configura para decodificar un segundo grupo de posiciones de impulsos de una segunda partición de una de las pistas basada en el segundo número de sub-estado.
[0120] Aunque algunos aspectos se han descrito en el contexto de un aparato, está claro que estos aspectos también representan una descripción del procedimiento correspondiente, donde un bloque o dispositivo se corresponde con una etapa del procedimiento o una característica de una etapa del procedimiento. De manera análoga, los aspectos descritos en el contexto de una etapa del procedimiento representan también una descripción de un bloque correspondiente o elemento o característica de un aparato correspondiente.
[0121] Dependiendo de ciertos requisitos de implementación, las formas de realización de la invención pueden implementarse en hardware o en software. La implementación puede realizarse usando un soporte de almacenamiento digital, por ejemplo, un disquete, un DVD, un CD, un ROM, un PROM, un EPROM, un EEPROM o una memoria flash, con señales de control legibles electrónicamente almacenadas en el mismo, que cooperan (o son capaces de cooperar) con un sistema informático programable de forma que se realice el procedimiento respectivo.
[0122] Algunas formas de realización según la invención comprenden un soporte de datos que tiene señales de control legibles electrónicamente, que son capaces de cooperar con un sistema informático programable, de tal forma que se lleve a cabo uno de los procedimientos descritos en esta invención.
[0123] Generalmente, las formas de realización de la presente invención se pueden implementar como un producto de programa informático con un código de programa, siendo el código de programa operativo para llevar a cabo uno de los procedimientos cuando el producto de programa informático se ejecuta en un ordenador. El código de programa puede estar almacenado por ejemplo en un soporte legible por máquina.
[0124] Otras formas de realización comprenden el programa informático para llevar a cabo uno de los procedimientos descritos en esta invención, almacenado en un soporte legible por máquina o un medio de almacenamiento no transitorio.
[0125] En otras palabras, una forma de realización del procedimiento inventivo es, por tanto, un programa informático que tiene un código de programa para llevar a cabo uno de los procedimientos descritos en esta invención, cuando el programa informático se ejecuta en un ordenador.
[0126] Una forma de realización adicional del procedimiento inventivo es, por tanto, un soporte de datos (o un medio de almacenamiento digital, o un medio legible por ordenador) que comprende, grabado en sí, el programa informático para llevar a cabo uno de los procedimientos descritos en esta invención.
[0127] Una forma de realización adicional del procedimiento inventivo es, por tanto, un flujo de datos o una secuencia de señales que representa el programa informático para llevar a cabo uno de los procedimientos descritos en esta invención. El flujo de datos o la secuencia de señales puede estar configurado por ejemplo para ser
transferido a través de una conexión de comunicación de datos, por ejemplo a través de Internet o en un canal de radio.
[0128] Una forma de realización adicional comprende un medio de procesamiento, por ejemplo un ordenador, o un dispositivo lógico programable, configurado para o adaptado para llevar a cabo uno de los procedimientos descritos en esta invención.
[0129] Una forma de realización adicional comprende un ordenador que tiene instalado en sí el programa informático para llevar a cabo uno de los procedimientos descritos en esta invención.
[0130] En algunas formas de realización, un dispositivo lógico programable (por ejemplo, una matriz de puertas programables por campo o FPGA)) puede utilizarse para realizar algunas o todas las funcionalidades de los procedimientos descritos en esta invención. En algunas formas de realización, una matriz de puerta programable por campo puede cooperar con un microprocesador con el fin de llevar a cabo uno de los procedimientos descritos en esta invención. Generalmente, los procedimientos son llevados a cabo preferiblemente por cualquier aparato de hardware.
[0131] Las formas de realización descritas anteriormente son meramente ilustrativas para los principios de la presente invención. Se comprende que las modificaciones y variaciones de las disposiciones y los detalles descritos en esta invención serán aparentes para aquellos expertos en la técnica. Es la intención, por tanto, estar limitados solo por el alcance de las reivindicaciones de patente inminentes y no por los detalles específicos presentados a título de descripción y explicación de las formas de realización de la presente invención.
Claims (5)
1. Un aparato para decodificar una señal de audio codificada, en el que una o más pistas se asocian con la señal de audio codificada, teniendo cada una de las pistas una pluralidad de posiciones de pista y una pluralidad de impulsos, en el que el aparato comprende:
un decodificador de información de impulsos (110) para decodificar una pluralidad de posiciones de impulsos, en el que cada una de las posiciones de impulsos indica una de las posiciones de la pista de una de las pistas para indicar una posición de uno de los impulsos de la pista, y en el que el decodificador de información de impulsos (110) se configura para decodificar la pluralidad de posiciones de impulsos usando un número de posiciones de pista que indica un número total de las posiciones de pista de al menos una de las pistas, un número de impulsos total que indica un número total de los impulsos de al menos una de las pistas, y un número de estado; y
un decodificador de señal (120) para decodificar la señal de audio codificada generando una señal de audio sintetizada usando la pluralidad de posiciones de impulsos y una pluralidad de coeficientes de filtro predictivos estando asociados con la señal de audio codificada,
en el que o bien (i) el decodificador de información de impulsos (110) está configurado para dividir una de las pistas en una primera partición de pista, comprendiendo al menos dos posiciones de pista de la pluralidad de posiciones de pistas, y en una segunda partición de pista, comprendiendo al menos otras dos posiciones de pista de la pluralidad de posiciones de pista, en el que el decodificador de información de impulsos (110) está configurado para generar un primer número de sub-estado y un segundo número de sub-estado en base al número de estado; en el que el decodificador de información de impulsos (110) está configurado para decodificar un primer grupo de posiciones de impulso asociadas con la primera partición de pista en base al primer número de sub-estado; y en el que el decodificador de información de impulsos (110) está configurado para decodificar un segundo grupo de posiciones de impulso asociadas con la segunda partición de pista en base al segundo número de sub-estado; en el que el número de estado indica un estado de una enumeración de todos los posibles estados, en el que todos los posibles estados indican todas las configuraciones posibles de los impulsos en una de las una o más pistas que tienen la pluralidad de posiciones de pista;
o bien (ii) el decodificador de información de impulsos (110) está adaptado para llevar a cabo una prueba comparando el número de estado o un número de estado actualizado con un valor de umbral, en el que el decodificador de información de impulsos (110) está adaptado para llevar a cabo la prueba comparando, si el número de estado o un número de estado actualizado es mayor que, mayor que o igual a, menor que, o menor que o igual al valor de umbral, y en el que el decodificador de información de impulsos (110) está adaptado además para actualizar el número de estado o un número de estado actualizado dependiendo del resultado de la prueba; en el que el decodificador de información de impulsos (110) está configurado, para comparar, para cada posición de pista de una de la pluralidad de pistas, el número de estado o el número de estado actualizado con el valor de umbral; en el que el número de estado indica un estado de una enumeración de todos los posibles estados, en el que todos los posibles estados indican todas las configuraciones posibles de los impulsos en una de las una o más pistas que tienen la pluralidad de posiciones de pista.
2. Un aparato según la reivindicación 1, en el que al menos dos pistas están asociadas con la señal de audio codificada, en el que las al menos dos pistas comprenden al menos una última pista y una o más otras pistas, y
en el que el decodificador de información de impulsos (110) se adapta para generar un primer número de sub-estado y un segundo número de sub-estado desde el número de estado,
en el que el decodificador de información de impulsos (110) se configura para decodificar un primer grupo de las posiciones de impulso en base al primer número de sub-estado, y
en el que el decodificador de información de impulsos (110) se configura para decodificar un segundo grupo de las posiciones de impulsos en base al segundo número de sub-estado,
en el que el segundo grupo de las posiciones de impulsos solo consisten en posiciones de impulsos que indican posiciones de pista de la última pista, y
en el que el primer grupo de las posiciones de impulsos consisten únicamente en posiciones de impulsos que indican posiciones de pista de las una o más otras pistas.
3. Un aparato según la reivindicación 2, en el que el decodificador de información de impulsos está configurado para generar el primer número de sub-estado y el segundo número de sub-estado dividiendo el número de estado por f(p, N) para obtener una parte de entero y un resto como un resultado de la división, en el que la parte de entero es el primer número de sub-estado y en el que el resto es el segundo número de sub-estado, en el que p indica para cada una de las al menos dos pistas el número de impulsos, y en el que N indica para cada una de las al menos dos pistas el número de posiciones de pista, en el que f(p,N) denota el número de configuraciones posibles para una pista con N posiciones de pista y p impulsos con señal.
4. Procedimiento para decodificar una señal de audio codificada, en el que una o más pistas se asocian con la señal de audio codificada, teniendo cada una de las pistas una pluralidad de posiciones de pista y una pluralidad de impulsos, donde el procedimiento comprende:
decodificación de una pluralidad de posiciones de impulsos, en la que cada una de las posiciones de impulsos indica una de las posiciones de pista de una de las pistas para indicar una posición de uno de los impulsos de la pista, y en la que la pluralidad de posiciones de impulsos se decodifican usando un número de posiciones de pista que indica un número total de las posiciones de pista de al menos una de las pistas, un número total de impulsos que indica un número total de los impulsos de al menos una de las pistas, y un número de estado,
decodificación de la señal de audio codificada mediante la generación de una señal de audio sintetizada usando la pluralidad de posiciones de impulsos y estando una pluralidad de coeficientes de filtro predictivo asociada a la señal de audio codificada,
en el que o bien (i) el procedimiento además comprende dividir una de las pistas en una primera partición de pista, comprendiendo al menos dos posiciones de pista de la pluralidad de posiciones de pistas, y en una segunda partición de pista, comprendiendo al menos otras dos posiciones de pista de la pluralidad de posiciones de pista, en el que el procedimiento además comprende generar un primer número de sub-estado y un segundo número de sub estado en base al número de estado; en el que el procedimiento además comprende decodificar un primer grupo de posiciones de impulso asociadas con la primera partición de pista en base al primer número de sub-estado; y en el que el procedimiento además comprende decodificar un segundo grupo de posiciones de impulso asociadas con la segunda partición de pista en base al segundo número de sub-estado; en el que el número de estado indica un estado de una enumeración de todos los posibles estados, en el que todos los posibles estados indican todas las configuraciones posibles de los impulsos en una de las una o más pistas que tienen la pluralidad de posiciones de pista;
o bien (ii) el procedimiento comprende llevar a cabo una prueba comparando el número de estado o un número de estado actualizado con un valor de umbral, en el que la prueba se lleva a cabo comparando, si el número de estado o un número de estado actualizado es mayor que, mayor que o igual a, menor que, o menor que o igual al valor de umbral, y en el que el procedimiento comprende además actualizar el número de estado o un número de estado actualizado dependiendo del resultado de la prueba; en el que el procedimiento además comprende comparar, para cada posición de pista de una de la pluralidad de pistas, el número de estado o el número de estado actualizado con el valor de umbral; en el que el número de estado indica un estado de una enumeración de todos los posibles estados, en el que todos los posibles estados indican todas las configuraciones posibles de los impulsos en una de las una o más pistas que tienen la pluralidad de posiciones de pista.
5. Un programa informático que comprende instrucciones que, cuando se ejecutan en un ordenador o procesador de señal, provocan que el ordenador o procesador de señal lleve a cabo las etapas del procedimiento de la reivindicación 4.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161442632P | 2011-02-14 | 2011-02-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2821725T3 true ES2821725T3 (es) | 2021-04-27 |
Family
ID=75293604
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES18209670T Active ES2821725T3 (es) | 2011-02-14 | 2012-02-10 | Codificación y decodificación de posiciones de impulso de pistas de una señal de audio |
ES19157006T Active ES2963367T3 (es) | 2011-02-14 | 2012-02-14 | Aparato y procedimiento de decodificación de una señal de audio usando una parte de anticipación alineada |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES19157006T Active ES2963367T3 (es) | 2011-02-14 | 2012-02-14 | Aparato y procedimiento de decodificación de una señal de audio usando una parte de anticipación alineada |
Country Status (3)
Country | Link |
---|---|
ES (2) | ES2821725T3 (es) |
PL (1) | PL3503098T3 (es) |
PT (1) | PT3471092T (es) |
-
2012
- 2012-02-10 ES ES18209670T patent/ES2821725T3/es active Active
- 2012-02-10 PT PT182096701T patent/PT3471092T/pt unknown
- 2012-02-14 PL PL19157006.8T patent/PL3503098T3/pl unknown
- 2012-02-14 ES ES19157006T patent/ES2963367T3/es active Active
Also Published As
Publication number | Publication date |
---|---|
ES2963367T3 (es) | 2024-03-26 |
PL3503098T3 (pl) | 2024-02-19 |
PT3471092T (pt) | 2020-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2715191T3 (es) | Codificación y decodificación de posiciones de impulso de pistas de una señal de audio | |
ES2911893T3 (es) | Codificador de audio, decodificador de audio y métodos relacionados para procesar señales de audio estéreo usando una dirección de predicción variable | |
ES2539174T3 (es) | Aparato y método para ocultamiento de error en voz unificada con bajo retardo y codificación de audio (USAC) | |
ES2354743T3 (es) | Dispositivo y método para el procesamiento posterior de valores espectrales y codificador y decodificador para señales de audio. | |
Hashemi et al. | Partitioned successive-cancellation list decoding of polar codes | |
ES2363346T3 (es) | Códec de audio multi-canal sin pérdidas. | |
JP2020024431A (ja) | オーディオ/ビデオサンプルベクトルのピラミッドベクトル量子化インデクシング及びデインデクシングの方法及び装置 | |
TWI488176B (zh) | 音訊信號音軌脈衝位置之編碼與解碼技術 | |
ES2720253T3 (es) | Método de codificación, codificador, programa, y medio de grabación | |
ES2900594T3 (es) | Procedimiento para determinar un modo de codificación | |
ES2628127T3 (es) | Cuantificador avanzado | |
ES2547457T3 (es) | Generación de ruido de confort | |
CN104737227A (zh) | 语音音响编码装置、语音音响解码装置、语音音响编码方法和语音音响解码方法 | |
JPH10117149A (ja) | ビタービ復号化器用トレースバック装置及びトレースバック方法 | |
ES2718935T3 (es) | Método y codificador para la codificación conjunta de vectores de una señal de voz | |
ES2764832T3 (es) | Método de codificación y decodificación de pulso y códec de pulso | |
ES2225647T3 (es) | Turbo descodificador con comparacion de codigo de firma para redundancia circular. | |
ES2821725T3 (es) | Codificación y decodificación de posiciones de impulso de pistas de una señal de audio | |
ES2428572T3 (es) | Dispositivo de codificación de audio y método de codificación de audio | |
Wang et al. | Non-binary distributed arithmetic coding | |
ES2363190T3 (es) | Codificación de señales audio-digitales. | |
ES2646021T3 (es) | Método y aparato para codificación, procesamiento y decodificación de envolvente de señal de audio mediante modelado de una representación de suma acumulativa que emplea cuantificación de distribución y codificación | |
ES2627410T3 (es) | Aparato para codificar una señal de voz/sonido | |
JP2019124951A (ja) | 快適雑音生成モード選択のための装置および方法 | |
JP2008187496A (ja) | 復号装置及び復号方法 |