ES2972833T3 - Métodos y aparatos para mejoras de descodificación unificada de habla y de audio - Google Patents

Métodos y aparatos para mejoras de descodificación unificada de habla y de audio Download PDF

Info

Publication number
ES2972833T3
ES2972833T3 ES21725222T ES21725222T ES2972833T3 ES 2972833 T3 ES2972833 T3 ES 2972833T3 ES 21725222 T ES21725222 T ES 21725222T ES 21725222 T ES21725222 T ES 21725222T ES 2972833 T3 ES2972833 T3 ES 2972833T3
Authority
ES
Spain
Prior art keywords
usac
configuration
current
bitstream
decoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES21725222T
Other languages
English (en)
Inventor
Michael Franz Beer
Eytan Rubin
Daniel Fischer
Christof Fersch
Markus Werner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dolby International AB
Original Assignee
Dolby International AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dolby International AB filed Critical Dolby International AB
Application granted granted Critical
Publication of ES2972833T3 publication Critical patent/ES2972833T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech 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/0204Speech 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 using subband decomposition
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • G10L19/07Line spectrum pair [LSP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

En el presente documento se describen métodos, aparatos y productos informáticos para decodificar un flujo de bits MPEG-D USAC codificado. En el presente documento se describen métodos, aparatos y productos informáticos que reducen la complejidad computacional. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Métodos y aparatos para mejoras de descodificación unificada de habla y de audio
Tecnología
La presente divulgación se refiere en general a métodos y aparatos para descodificar un flujo de bits de USAC de MPEG-D codificado. La presente divulgación se refiere adicionalmente a tales métodos y aparatos que reducen la complejidad informática. Lo que es más, la presente divulgación se refiere también a respectivos productos de programa de ordenador.
Si bien algunas realizaciones se describirán en el presente documento con referencia particular a esa divulgación, se apreciará que la presente divulgación no se limita a tal campo de uso y es aplicable en contextos más amplios.
Antecedentes
Cualquier análisis sobre la técnica anterior a lo largo de la divulgación no debe considerarse de ninguna manera como una aceptación de que tal técnica es ampliamente conocida o forma parte del conocimiento general común en el campo.
Los descodificadores para codificación unificada de voz y audio (USAC), como se especifica en el estándar internacional ISO/IEC 23003-3 (en adelante denominado estándar USAC de MPEG-D) incluyen varios módulos (unidades) que requieren múltiples pasos de informática complejos. Cada uno de estos pasos de informática puede resultar agotador para los sistemas de equipo físico informático (hardware) que implantan estos descodificadores. Ejemplos de tales módulos incluyen el módulo (o herramienta) de cancelación de alias directo, FAC, y el módulo de codificación de predicción lineal, LPC.
En el contexto de la transmisión por secuencias adaptativa, al conmutar a una configuración diferente (por ejemplo, a una tasa de bits diferente, tal como a una tasa de bits configurada dentro de un conjunto de adaptación en MPEG-DASH), para reproducir la señal con precisión desde el principio, el descodificador tiene que suministrarse con una trama (AUn) que representa el segmento de tiempo correspondiente de un programa, y con tramas anticipatorias de rodaje adicionales (AUn-1, AUn-2, ... AU) y datos de configuración que preceden a la trama AUn. De lo contrario, debido a diferentes configuraciones de codificación (por ejemplo, a datos de ventanas, datos relacionados con SBR, datos relacionados con la codificación estéreo (MPS212)), no se puede garantizar que un descodificador produzca una emisión correcta al descodificar sólo la trama AUn.
Por lo tanto, la primera trama AUn que se va a descodificar con una nueva configuración (actual) puede llevar los nuevos datos de configuración y tramas anticipatorias de rodaje (en forma de AUn-x, que representan segmentos de tiempo antes de AUn) que se necesitan para iniciar el descodificador con la nueva configuración. Esto se puede hacer, por ejemplo, mediante una trama de reproducción inmediata (IPF).
Además, el documento WO 2018/130577 A1 describe un descodificador de audio para proporcionar una representación de señal de audio descodificada sobre la base de una representación de señal de audio codificada que está configurada para ajustar los parámetros de descodificación dependiendo de una información de configuración y que está también configurada para descodificar una o más tramas de audio utilizando la información de configuración actual. El descodificador de audio está configurado para comparar la información de configuración en una estructura de configuración asociada con una o más tramas que se van a descodificar mediante la información de configuración actual, y para hacer una transición para realizar una descodificación usando la información de configuración en la estructura de configuración asociada con la una o más tramas que se van a descodificar como una nueva información de configuración si la información de configuración en la estructura de configuración asociada con la una o más tramas que se van a descodificar, o una porción relevante de la información de configuración en la estructura de configuración asociada con la una o más tramas que se van a descodificar, es diferente de la información de configuración actual. El descodificador de audio está configurado para considerar una información de identificador de flujo incluida en la estructura de configuración cuando se compara la información de configuración, de tal manera que la diferencia entre un identificador de flujo previamente obtenido por el descodificador de audio y un identificador de flujo representado por la información de identificador de flujo en la estructura de configuración asociado con la una o más tramas que se van a descodificar origina que se haga la transición.
En vista de lo anterior, existe, de este modo, la necesidad de implantar procesos y módulos de descodificadores USAC de MPEG-D que reduzcan la complejidad informática.
Sumario
De acuerdo con un primer aspecto de la presente divulgación, se proporciona un descodificador para descodificar un flujo de bits USAC de MPEG-D codificado. El descodificador puede comprender un receptor configurado para recibir el flujo de bits codificado, en el que el flujo de bits representa una secuencia de valores de muestra (en lo sucesivo denominados valores de muestra de audio) y comprende una pluralidad de tramas, en el que cada trama comprende valores de muestra de audio codificados asociados, en el que el flujo de bits comprende un elemento anticipatorio de rodaje que incluye una o más tramas anticipatorias de rodaje que el descodificador necesita para conformar una señal completa de modo que esté en situación de emitir valores de muestra de audio válidos asociados con una trama actual, y en el que el flujo de bits comprende adicionalmente un elemento de configuración USAC que comprende una configuración USAC actual como carga útil y una identificación de flujo de bits actual. El descodificador puede comprender adicionalmente un analizador configurado para analizar el elemento de configuración USAC hasta la identificación de flujo de bits actual y para almacenar una posición inicial del elemento de configuración USAC y una posición inicial de la identificación de flujo de bits actual en el flujo de bits. El descodificador puede comprender adicionalmente un determinador configurado para determinar si la configuración USAC actual difiere de una configuración USAC anterior cotejando la longitud de la configuración USAC actual config_length_in_bits en contraposición con la longitud de la configuración USAC anterior, y, si la configuración USAC actual difiere de la configuración USAC anterior, almacena la configuración USAC actual, en el que el determinador puede configurarse para saltar de regreso a la posición inicial del elemento de configuración USAC en el flujo de bits y para leer masivamente y almacenar la carga útil de configuración USAC no analizada de (confi g_l e n gth_i n_bits 7)/8) bytes. Y el descodificador puede comprender un inicializador configurado para inicializar el descodificador si el determinador determina que la configuración USAC actual difiere de la configuración USAC anterior, donde inicializar el descodificador puede comprender descodificar la una o más tramas anticipatorias de rodaje incluidas en el elemento anticipatorio de rodaje. Inicializar el descodificador puede comprender adicionalmente conmutar el descodificador de la configuración USAC anterior a la configuración USAC actual, configurando por ello el descodificador, para que use la configuración USAC actual si el determinador determina que la configuración USAC actual difiere de la configuración USAC anterior. Y el descodificador puede configurarse para descartar, y no descodificar, el elemento anticipatorio de rodaje si el determinador determina que la configuración USAC actual es idéntica a la configuración USAC anterior.
En el caso de transmisión por secuencias adaptativa, el procesamiento de flujos de bits USAC de MPEG-D puede implicar conmutar de una configuración anterior a una actual diferente. Esto se puede hacer, por ejemplo, por medio de una trama de reproducción inmediata (IPF). En este caso, un elemento anticipatorio de rodaje puede que todavía se descodifique cada vez completamente (es decir, incluyendo tramas anticipatorias de rodaje), independientemente del cambio de configuración. Configurado como anteriormente, el descodificador permite evitar tal descodificación innecesaria de elementos anticipatorios de rodaje.
En algunas realizaciones, el determinador puede configurarse para determinar si la configuración USAC actual difiere de la configuración USAC anterior cotejando la identificación de flujo de bits actual con una identificación de flujo de bits anterior.
En algunas realizaciones, si se determina que la identificación de flujo de bits actual es idéntica a la identificación de flujo de bits anterior y/o si se determina que la longitud de la configuración USAC actual es idéntica a la longitud de la configuración USAC anterior, el determinador se puede configurar para determinar si la configuración USAC actual difiere de la configuración USAC anterior comparando byte a byte la configuración USAC actual con la configuración USAC anterior.
En algunas realizaciones, el descodificador puede configurarse adicionalmente para retardar una trama la emisión de valores de muestra de audio válidos asociados con la trama actual, en las que retardar una trama la emisión de valores de muestra de audio válidos puede incluir almacenar en memoria intermedia cada trama de las muestras de audio antes de emitirlas, y en las que el descodificador puede configurarse adicionalmente, si se determina que la configuración USAC actual difiere de la configuración USAC anterior, para hacer un fundido cruzado de una trama de la configuración USAC anterior, almacenada en memoria intermedia en el descodificador, con la trama actual de la configuración USAC actual.
De acuerdo con un segundo aspecto de la presente divulgación, se proporciona un método de descodificación, mediante un descodificador, de un flujo de bits USAC de MPEG-D. El método puede comprender recibir el flujo de bits codificado, en el que el flujo de bits representa una secuencia de valores de muestra de audio y comprende una pluralidad de tramas, en el que cada trama comprende valores de muestra de audio codificados asociados, en el que el flujo de bits comprende un elemento anticipatorio de rodaje que incluye una o más tramas anticipatorias de rodaje que el descodificador necesita para conformar una señal completa de modo que esté en situación de emitir valores de muestra de audio válidos asociados con una trama actual, y en el que el flujo de bits comprende adicionalmente un elemento de configuración USAC que comprende una configuración USAC actual como carga útil y una identificación de flujo de bits actual. El método puede comprender adicionalmente analizar el elemento de configuración USAC hasta la identificación de flujo de bits actual y almacenar una posición inicial del elemento de configuración USAC y una posición inicial de la identificación de flujo de bits actual en el flujo de bits. El método puede comprender adicionalmente determinar si la configuración USAC actual difiere de una configuración USAC anterior cotejando la longitud de la configuración USAC actual config_length_in_bits con la longitud de la configuración USAC anterior, y, si la configuración USAC actual difiere de la configuración USAC anterior, almacenar la configuración USAC actual, en el que la determinación puede incluir saltar de regreso a la posición inicial del elemento de configuración USAC en el flujo de bits y leer masivamente y almacenar la carga útil de configuración USAC no analizada de (configjength_in_bits 7)/8) bytes. Y el método puede comprender inicializar el descodificador si se determina que la configuración USAC actual difiere de la configuración USAC anterior, en el que inicializar el descodificador puede comprender descodificar la una o más tramas anticipatorias de rodaje incluidas en el elemento anticipatorio de rodaje, y conmutar el descodificador de la configuración USAC anterior a la configuración USAC actual, configurando por ello el descodificador para usar la configuración USAC actual si se determina que la configuración USAC actual difiere de la configuración USAC anterior. El método puede comprender adicionalmente descartar, y no descodificar, mediante el descodificador, el elemento anticipatorio de rodaje, si se determina que la configuración USAC actual es idéntica a la configuración USAC anterior.
En algunas realizaciones, el determinar si la configuración USAC actual difiere de la configuración USAC anterior puede incluir cotejar la identificación de flujo de bits actual con una identificación de flujo de bits anterior.
En algunas realizaciones, si se determina que la identificación de flujo de bits actual es idéntica a la identificación de flujo de bits anterior y/o si se determina que la longitud de la configuración USAC actual es idéntica a la longitud de la configuración USAC anterior, el determinar si la configuración USAC actual difiere de la configuración USAC anterior puede incluir comparar byte a byte la configuración USAC actual con la configuración USAC anterior.
En algunas realizaciones, el método puede comprender adicionalmente retardar una trama la emisión de valores de muestra de audio válidos asociados con la trama actual, en las que retardar una trama la emisión de valores de muestra de audio válidos puede incluir almacenar en memoria intermedia cada trama de las muestras de audio emitidas anteriormente, y, si se determina que la configuración USAC actual difiere de la configuración USAC anterior, realizar el fundido cruzado de una trama de la configuración USAC anterior, almacenada en memoria intermedia en el descodificador, con la trama actual de la configuración USAC actual.
De acuerdo con un ejemplo no cubierto por las reivindicaciones, se proporciona un descodificador para descodificar un flujo de bits USAC de MPEG-D codificado, incluyendo, el flujo de bits codificado, una pluralidad de tramas, cada una compuesta por una o más subtramas, en el que el flujo de bits codificado incluye, como una representación de coeficientes de predicción lineal, LPC, uno o más conjuntos de frecuencia espectral de línea, LSF, para cada subtrama. El descodificador puede configurarse para descodificar el flujo de bits codificado, en el que descodificar el flujo de bits codificado por el descodificador puede comprender descodificar los conjuntos LSF para cada subtrama del flujo de bits. Y descodificar el flujo de bits codificado por el descodificador puede comprender convertir los conjuntos LSF descodificados en representaciones de pares espectrales lineales, LSP, para su posterior procesamiento. El descodificador puede configurarse adicionalmente para almacenar temporalmente, para cada trama, los conjuntos LSF descodificados para interpolación con una trama subsiguiente.
Configurado como anteriormente, el descodificador permite utilizar directamente el último conjunto guardado en la representación LSF evitando, de este modo, la necesidad de convertir el último conjunto guardado en representación LSP a LSF.
En algunos ejemplos no cubiertos por las reivindicaciones, el procesamiento adicional puede incluir determinar los LPC en base a las representaciones LSP aplicando un algoritmo de búsqueda de raíz, en los que la aplicación del algoritmo de búsqueda de raíz puede implicar el escalado de coeficientes de las representaciones LSP dentro del algoritmo de búsqueda de raíz para evitar el desbordamiento en un intervalo de punto fijo.
En algunos ejemplos no cubiertos por las reivindicaciones, la aplicación del algoritmo de búsqueda de raíz puede implicar encontrar el polinomio F1(z) y/o F2(z) a partir de las representaciones LSP expandiendo los respectivos polinomios de producto, en los que el escalado se realiza como un escalado de potencia de 2 de los coeficientes polinómicos. Este escalado puede implicar o corresponder a una función de desplazamiento de bits a la izquierda.
En algunos ejemplos no cubiertos por las reivindicaciones, el descodificador puede configurarse para recuperar filtros LPC cuantificados y para calcular sus versiones ponderadas y para calcular los espectros diezmados correspondientes, en los que se puede aplicar una modulación a los LPC antes de calcular los espectros diezmados en base a valores previamente calculados que pueden recuperarse de una o más tablas de búsqueda.
De acuerdo con otro ejemplo no cubierto por las reivindicaciones, se proporciona un método para descodificar un flujo de bits USAC de MPEG-D codificado, incluyendo el flujo de bits codificado una pluralidad de tramas, cada una compuesta por una o más subtramas, en el que el flujo de bits codificado incluye, como una representación de coeficientes de predicción lineal, LPC, uno o más conjuntos de frecuencia espectral de línea, LSF, para cada subtrama. El método puede incluir descodificar el flujo de bits codificado, en el que descodificar el flujo de bits codificado puede comprender descodificar los conjuntos LSF para cada subtrama del flujo de bits. Y descodificar el flujo de bits codificado puede comprender convertir los conjuntos LSF descodificados en representaciones de pares espectrales lineales, LSP, para su procesamiento adicional. El método puede incluir adicionalmente almacenar temporalmente, para cada trama, los conjuntos LSF descodificados para interpolación con una trama posterior.
En algunos ejemplos no cubiertos por las reivindicaciones, el procesamiento adicional puede incluir determinar los LPC en base a las representaciones LSP mediante la aplicación de un algoritmo de búsqueda de raíz, en el que la aplicación del algoritmo de búsqueda de raíz puede implicar el escalado de coeficientes de las representaciones LSP dentro del algoritmo de búsqueda de raíz para evitar el desbordamiento en un intervalo de punto fijo.
En algunos ejemplos no cubiertos por las reivindicaciones, la aplicación del algoritmo de búsqueda de raíz puede implicar encontrar el polinomio F1(z) y/o F2(z) a partir de las representaciones LSP expandiendo los polinomios de producto respectivos, en los que el escalado se realiza como un escalado de potencia de 2 de los coeficientes polinomiales. Este escalado puede implicar o corresponder a una función de desplazamiento de bits a la izquierda.
De acuerdo con otro ejemplo no cubierto por las reivindicaciones, se proporciona un descodificador para descodificar un flujo de bits USAC de MPEG-D codificado. El descodificador puede configurarse para implantar una herramienta de cancelación de alias directo, FAC, para cancelar alias en el dominio tiempo y/o establecimiento de ventanas durante la transición entre tramas codificadas de predicción lineal excitada por código algebraico, ACELP, y tramas codificadas por transformación, TC, dentro de un códec de dominio predicción lineal, LPD. El descodificador puede configurarse adicionalmente para realizar una transición del LPD al dominio frecuencia, FD, y aplicar la herramienta FAC si la señal previa establecida en ventana descodificada fue codificada con ACELP. El descodificador puede configurarse adicionalmente para realizar una transición del FD al LPD y aplicar la herramienta FAC si una primera ventana descodificada se codificó con ACELP, en el que la misma herramienta FAC puede usarse en ambas transiciones de LPD a FD, y de FD a LPD.
Configurado como anteriormente, el descodificador permite el uso de una herramienta de cancelación de alias directo (FAC) en ambos códecs, LPD y FD.
En algunos ejemplos no cubiertos por las reivindicaciones, se puede añadir una respuesta de entrada cero ACELP, cuando se usa la herramienta FAC para la transición de FD a LPD.
De acuerdo con otro ejemplo no cubierto por las reivindicaciones, se proporciona un método para descodificar un flujo de bits USAC de MPEG-D codificado mediante un descodificador que implanta una herramienta de cancelación de alias directo, FAC, para cancelar alias en el dominio tiempo y/o establecer ventanas durante la transición entre tramas codificadas por predicción lineal excitada por código algebraico, ACELP, y tramas codificadas por transformada, TC, dentro de un códec de dominio predicción lineal, LPD. El método puede incluir realizar una transición de LPD a dominio frecuencia, FD, y aplicar la herramienta FAC si una señal previa establecida en ventana descodificada fue codificada con ACELP. El método puede incluir adicionalmente realizar una transición de FD a LPD, y aplicar la herramienta FAC si una primera ventana descodificada fue codificada con ACELP, en el que la misma herramienta FAC puede usarse en ambas transiciones de LPD a FD, y de FD a LPD.
En algunos ejemplos no cubiertos por las reivindicaciones, el método puede incluir adicionalmente añadir una respuesta de entrada cero ACELP, cuando la herramienta FAC se usa para la transición de FD a LPD.
De acuerdo con otro ejemplo no cubierto por las reivindicaciones, se proporciona un producto de programa de ordenador con instrucciones adaptadas para hacer que un dispositivo que tiene capacidad de procesamiento realice un método de descodificación, mediante un descodificador, un flujo de bits USAC de MPEG-D codificado, un método de descodificar un flujo de bits USAC de MPEG-D codificado, incluyendo, el flujo de bits codificado, una pluralidad de tramas, cada una compuesta por una o más subtramas, en el que el flujo de bits codificado incluye, como una representación de coeficientes de predicción lineal, LPC, uno o más conjuntos de frecuencia espectral de línea, LSF, para cada subtrama, o un método de descodificar un flujo de bits USAC de MPEG-D codificado mediante un descodificador que implanta una herramienta de cancelación de alias directo, FAC, para cancelar alias en dominio tiempo y/o establecer ventanas durante la transición entre tramas codificadas de predicción lineal excitada por código algebraico, ACELP, y tramas codificadas por transformada, TC, dentro de un códec de dominio predicción lineal, LPD.
Breve descripción de los dibujos
A continuación se describirán realizaciones de ejemplo de la divulgación, sólo a modo de ejemplo, con referencia a los dibujos que se acompañan, en los que:
La figura 1 ilustra esquemáticamente un ejemplo de un descodificador USAC de MPEG-D.
La figura 2 ilustra un ejemplo de un método de descodificación, mediante un descodificador, de un flujo de bits USAC de MPEG-D codificado.
La figura 3 ilustra un ejemplo de un flujo de bits USAC de MPEG-D codificado que comprende un elemento anticipatorio de rodaje y un elemento de configuración USAC.
La figura 4 ilustra un ejemplo de un descodificador para descodificar un flujo de bits USAC de MPEG-D codificado.
La figura 5 ilustra un ejemplo, no cubierto por las reivindicaciones, de un método para descodificar un flujo de bits USAC de MPEG-D codificado, incluyendo, el flujo de bits codificado, una pluralidad de tramas, cada una compuesta por una o más subtramas, en el que el flujo de bits codificado incluye, como una representación de coeficientes de predicción lineal, LPC, uno o más conjuntos de frecuencia espectral de línea, LSF, para cada subtrama.
La figura 6 ilustra un ejemplo adicional, no cubierto por las reivindicaciones, de un método para descodificar un flujo de bits USAC de M<p>EG-D codificado, incluyendo, el flujo de bits codificado, una pluralidad de tramas, cada una compuesta por una o más subtramas, en el que el flujo de bits codificado incluye, como una representación de coeficientes de predicción lineal, LPC, uno o más conjuntos de frecuencia espectral de línea, LSF, para cada subtrama, en el que el método incluye almacenar temporalmente, para cada trama, los conjuntos de LSF descodificados para interpolación con una trama subsiguiente.
La figura 7 ilustra un ejemplo adicional más, no cubierto por las reivindicaciones, de un método para descodificar un flujo de bits USAC de MPEG-D codificado, incluyendo, el flujo de bits codificado, una pluralidad de tramas, cada una compuesta por una o más subtramas, en el que el flujo de bits codificado incluye, como una representación de coeficientes de predicción lineal, LPC, uno o más conjuntos de frecuencia espectral de línea, LSF, para cada subtrama.
La figura 8 ilustra un ejemplo, no cubierto por las reivindicaciones, de un método de descodificación de un flujo de bits USAC de MPEG-D codificado mediante un descodificador que implanta una herramienta de cancelación de alias directo, FAC, para cancelar alias en el dominio tiempo y/o establecer ventanas durante la transición entre tramas codificadas de predicción lineal excitada por código algebraico, ACELP, y tramas codificadas por transformada, TC, dentro de un códec de dominio predicción lineal, LPD.
La figura 9 ilustra un ejemplo, no cubierto por las reivindicaciones, de un descodificador para descodificar un flujo de bits USAC de MPEG-D codificado, en el que el descodificador está configurado para implantar una herramienta de cancelación de alias directo, FAC, para cancelar alias en el dominio tiempo y/o establecer ventanas durante la transición entre tramas codificadas de predicción lineal excitada por código algebraico, ACELP, y tramas codificadas por transformada, TC, dentro de un códec de dominio predicción lineal, LPD.
La figura 10 ilustra un ejemplo de un dispositivo que tiene capacidad de procesamiento.
Descripción de realizaciones de ejemplo
Procesamiento de flujos de bits USAC de MPEG-D
El procesamiento de flujos de bits USAC de MPEG-D, según se describe en el presente documento, se refiere a los diferentes pasos de descodificar un flujo de bits USAC de MPEG-D codificado, según son aplicados por el respectivo descodificador. Aquí y en lo sucesivo, flujos de bits USAC de MPEG-D puede referirse a flujos de bits compatibles con el estándar establecido en ISO/IEC 23003-3:2012, Information technology-MPEG audio technologies - Part 3: unified speech and audio coding, y subsiguientes versiones, enmiendas y corrigendas ("en adelante USAC de MPEG-D o USAC").
Con referencia al ejemplo de la figura 1, se ilustra un descodificador USAC de MPEG-D 1000. El descodificador 1000 incluye una unidad funcional MPEG envolvente 1200 para manejar procesamiento estéreo o multicanal. La unidad funcional MPEG envolvente 1200 puede describirse en la cláusula 7.11 del estándar USAC, por ejemplo. Esta cláusula se incorpora por la presente como referencia en su totalidad. La unidad funcional MPEG envolvente 1200 puede incluir una caja (bloque de descodificación OTT) de uno a dos (OTT), como ejemplo de una unidad de mezcla ascendente, que puede realizar una mezcla ascendente de mono a estéreo. El descodificador 1000 incluye adicionalmente una herramienta 1400 de demultiplexor de carga útil de flujo de bits, que separa la carga útil de flujo de bits en partes para cada herramienta, y proporciona a cada una de las herramientas la información de carga útil de flujo de bits relacionada con esa herramienta; una herramienta 1500 de descodificación silenciosa de factor de escala, que toma información del demultiplexor de carga útil de flujo de bits, analiza esa información y descodifica los factores de escala codificados de Huffman y de modulación de código de pulso diferencial (DPCM); una herramienta 1500 de descodificación silenciosa espectral, que toma información del demultiplexor de carga útil de flujo de bits, analiza esa información, descodifica los datos codificados aritméticamente y reconstruye los espectros cuantificados; una herramienta 1500 de cuantificación inversa, que toma los valores cuantificados para los espectros y convierte los valores enteros en espectros reconstruidos sin escalar; este cuantificador es preferiblemente un cuantificador de expansión, cuyo factor de expansión depende del modo de codificación central elegido; una herramienta 1500 de ruido de relleno, que se utiliza para llenar huecos espectrales en los espectros descodificados, que se producen cuando los valores espectrales se cuantifican a cero, por ejemplo, debido a una fuerte restricción en la demanda de bits en el codificador; una herramienta 1500 de reescalado, que convierte la representación entera de los factores de escala en los valores reales, y multiplica los espectros cuantificados inversamente sin escalar por los factores de escala relevantes; una herramienta 1900 M/S, como se describe en ISO/IEC 14496-3; una herramienta 1700 de conformación temporal de ruido (TNS), como se describe en ISO/IEC 14496-3; una herramienta 1800 de conmutación de bloque/banco de filtros, que aplica la inversa del mapeo de frecuencia que se realizó en el codificador; usándose, preferiblemente, una transformada de coseno discreta modificada inversa (IMDCT) para la herramienta del banco de filtros; una herramienta 1800 de conmutación de bloque/banco de filtros distorsionada en el tiempo, que reemplaza a la herramienta de conmutación de bloque/banco de filtros normal cuando el modo de distorsión de tiempo está habilitado; el banco de filtros es preferiblemente la misma (IMDCT) que el banco de filtros normal; además, las muestras en el dominio tiempo en ventana se mapean desde el dominio tiempo distorsionado al dominio tiempo lineal mediante remuestreo variable en el tiempo; una herramienta clasificadora de señales, que analiza la señal de entrada original y genera a partir de ella información de control que activa la selección de los diferentes modos de codificación; el análisis de la señal de entrada depende típicamente de la implantación e intentará elegir el modo de codificación central óptimo para una trama de señal de entrada dada; la emisión del clasificador de señales se puede también utilizar opcionalmente para influir en el comportamiento de otras herramientas, por ejemplo MPEG envolvente, replicación de banda espectral perfeccionada (SBR), banco de filtros con distorsión en el tiempo, y otros; y una herramienta 1600 de predicción lineal excitada por código algebraico (ACELP), que proporciona una manera de representar eficientemente una señal de excitación en el dominio tiempo combinando un predictor a largo plazo (palabra de código adaptativa) con una secuencia similar a un pulso (palabra de código de innovación). El descodificador 1000 puede incluir adicionalmente una herramienta 1300 de filtro LPC, que produce una señal en el dominio tiempo a partir de una señal en el dominio excitación filtrando la señal de excitación reconstruida a través de un filtro de síntesis de predicción lineal. El descodificador 1000 puede incluir también una unidad 1100 de replicación de ancho de banda espectral (eSBR) perfeccionada. La unidad eSBR 1100 puede describirse en la cláusula 7.5 del estándar USAC, por ejemplo. Esta cláusula se incorpora en el presente documento como referencia en su totalidad. La unidad eSBR 1100 recibe el flujo de bits de audio codificado o la señal codificada desde un codificador. La unidad eSBR 1100 puede generar un componente de alta frecuencia de la señal, que se fusiona con el componente de baja frecuencia descodificado para producir una señal descodificada. En otras palabras, la unidad eSBR 1100 puede regenerar la banda alta de la señal de audio.
Con referencia ahora a los ejemplos de las figuras 2 y 4, se ilustra un método y un descodificador para descodificar un flujo de bits USAC de MPEG-D codificado. En el paso S101, un receptor 101 recibe un flujo de bits USAC de MPEG-D codificado. El flujo de bits representa una secuencia de valores de muestra de audio y comprende una pluralidad de tramas, en el que cada trama comprende valores de muestra de audio codificados asociados. El flujo de bits comprende un elemento anticipatorio de rodaje que incluye una o más tramas anticipatorias de rodaje que el codificador 100 necesita para conformar una señal completa de modo que esté en situación de emitir valores de muestra de audio válidos asociados con una trama actual. La señal completa (reproducción correcta de muestras de audio) puede referirse, por ejemplo, a la conformación de una señal por parte del descodificador durante el inicio o el reinicio. El flujo de bits comprende adicionalmente un elemento de configuración USAC que comprende una configuración USAc actual como carga útil y una identificación de flujo de bits actual (ID_Co NFIG_EXT _STREAM _ID). La configuración USAC incluida en el elemento de configuración USAC puede ser utilizada, por el descodificador 100, como una configuración actual si se produce un cambio de configuración. El elemento de configuración USAC puede incluirse en el flujo de bits como parte del elemento anticipatorio del rodaje.
En el paso S102, el elemento de configuración USAC (el elemento anticipatorio de rodaje) es analizado, por un analizador 102, para la identificación actual del flujo de bits. Además, se almacena una posición inicial del elemento de configuración USAC, y una posición inicial de la identificación de flujo de bits actual en el flujo de bits.
Con referencia al ejemplo de la figura 3, se ilustra esquemáticamente la posición del elemento 1 de configuración USAC en el flujo de bits USAC de MPEG-D en relación con el elemento 4 anticipatorio de rodaje. Como se ilustra en el ejemplo de la figura 3 y ya se mencionó anteriormente, el elemento 1 de configuración USAC (elemento de configuración USAC) incluye la configuración 2 USAC actual y la identificación 3 de flujo de bits actual. El elemento 4 anticipatorio de rodaje incluye las tramas 5, 6 anticipatorias de rodaje (UsacFrame ()[n-1], UsacFrame ()[n-2]). la trama actual está representada por UsacFrame ()[n]. En el ejemplo de la figura 3, el elemento 4 anticipatorio de rodaje incluye adicionalmente el elemento 1 de configuración USAC. Con el fin de determinar un cambio de configuración, el elemento 4 anticipatorio de rodaje puede analizarse hasta el elemento 1 de configuración USAC que a su vez puede analizarse hasta la identificación 3 de flujo de bits actual.
En el paso S103, se determina entonces, mediante un determinador 103, si la configuración USAC actual difiere de una configuración USAC anterior y, si la configuración USAC actual difiere de la configuración USAC anterior, se almacena la configuración USAC actual. La configuración USAC almacenada es entonces utilizada, por el descodificador 100, como la configuración actual. El uso de un elemento de configuración USAC según se describe en el presente documento permite, de este modo, evitar una innecesaria (cada vez, independientemente de un cambio de configuración) descodificación del elemento anticipatorio de rodaje, en particular, de las tramas anticipatorias de rodaje incluidas en el elemento anticipatorio de rodaje.
En una realización, se puede determinar, mediante el determinador 103 (el determinador 103 puede configurarse para determinar), si la configuración USAC actual difiere de la configuración USAC anterior al cotejar la identificación de flujo de bits actual con una identificación de flujo de bits anterior. Si la identificación de flujo de bits difiere, se puede determinar que la configuración USAC ha cambiado.
Alternativamente, o adicionalmente, si se determina, mediante el determinador 103, que la identificación de flujo de bits actual es idéntica a la identificación de flujo de bits anterior, cuando la configuración USAC actual difiera de la configuración USAC anterior al cotejar la longitud de la actual configuración USAC (config_length_in_bits: longitud = inicio del inicio de la identificación de flujo de bits de la configuración USAC) con a la longitud de la configuración USAC anterior. Si se determina que la longitud difiere, se puede determinar que la configuración USAC ha cambiado.
En caso de que la identificación de flujo de bits actual y/o la longitud de la configuración USAC actual indique/n que la configuración USAC ha cambiado, se almacena la configuración USAC actual. La configuración USAC actual almacenada puede usarse más tarde como la configuración USAC anterior para comparación, si se recibe un elemento de configuración USAC siguiente. Esto se realiza de la siguiente manera:
a. salto de regreso a la posición inicial de la configuración USAC en el flujo de bits;
b. lectura masiva (y almacenamiento) de carga útil (no analizada) de configuración USAC de ((config_length_in_bits 7)/8) bytes.
Si se determina que la identificación de flujo de bits actual es idéntica a la identificación de flujo de bits anterior y/o si se determina que la longitud de la configuración USAC actual es idéntica a la longitud de la configuración USAC anterior, en una realización, se puede determinar, por el determinador 103, si la configuración USAC actual difiere de la configuración USAC anterior, comparando byte a byte la configuración USAC actual con la configuración USAC anterior. A modo de ejemplo, esto se puede realizar de la siguiente manera:
a. salto de regreso a la posición inicial de la configuración USAC en el flujo de bits;
b. lectura masiva byte a byte de carga útil (no analizada) de configuración USAC de ((config_length_in_bits 7)/8) bytes;
c. comparación de cada nuevo byte de carga útil con el byte correspondiente de la carga útil anterior;
d. si el byte es diferente, reemplazo del antiguo (anterior) por el nuevo (actual);
e. si se ha aplicado algún reemplazo, la configuración USAC ha cambiado.
Haciendo referencia nuevamente a los ejemplos de las figuras 2 y 4, en el paso S 104, el descodificador 100 se inicializa, mediante un inicializador 104, si se determina que la configuración USAC actual difiere de la configuración USAC anterior. Inicializar el descodificador 100 comprende descodificar la una o más tramas anticipatorias de rodaje incluidas en el elemento anticipatorio de rodaje, y conmutar el descodificador 100 de la configuración USAC anterior a la configuración USAC actual, configurando así el descodificador 100 para usar la configuración USAC actual si se determina que la configuración USAC actual difiere de la configuración USAC anterior. Si se determina que la configuración USAC actual es idéntica a la configuración USAC anterior, en el paso S 105, el elemento anticipatorio de rodaje es descartado y no descodificado por el descodificador 100. Sobre esto, se puede evitar descodificar, independientemente de un cambio en la configuración USAC, el elemento anticipatorio de rodaje cada vez, ya que el cambio de configuración se puede determinar en base al elemento de configuración USA<c>, es decir, sin descodificar el elemento anticipatorio de rodaje.
En una realización, el descodificador 100 puede retardar en una trama la emisión de valores de muestra de audio válidos asociados con la trama actual. Retardar en una trama la emisión de valores de muestra de audio válidos puede incluir almacenar en memoria intermedia cada trama de muestras de audio antes de su emisión, realizándose por el descodificador 100, si se determina que la configuración USAC actual difiere de la configuración USAC anterior, el fundido cruzado de una trama de la configuración USAC anterior, almacenada en memoria intermedia en el descodificador 100, con una trama actual de la configuración USAC actual.
A este respecto, se puede considerar que se puede habilitar un esquema de ocultación de errores en el descodificador 100 que puede introducir un retardo adicional de una trama en la emisión del descodificador 100. Un retardo adicional significa que se puede acceder aún a la última emisión (por ejemplo, PCM) de la configuración anterior en el momento en que se determine que la configuración USAC ha cambiado. Esto permite iniciar el fundido cruzado (desvanecimiento) 128 muestras antes de lo descrito en el estándar USAC de MPEG-D, es decir, al final de la última trama anterior en lugar de al inicio de los estados de trama vaciados. Lo que significa que no sería necesario vaciar el descodificador en absoluto.
En general, vaciar el descodificador en una trama es, en términos de complejidad informática, comparable con descodificar una trama habitual. De este modo, esto permite ahorrar la complejidad de una trama en un momento en el que se tendría que gastar ya (número de tramas anticipatorias de rodaje 1) * (complejidad para una sola trama), lo que daría como resultado una carga pico. De este modo, es posible que el fundido cruzado (o aparición gradual) de la emisión relacionada con la (nueva) configuración actual ya comience al final de la última trama anticipatoria de rodaje. Generalmente, el descodificador debe actualizarse con la configuración anterior (antigua) para obtener 128 muestras adicionales que se utilizan para hacer un fundido cruzado con las primeras 128 muestras de la primera trama actual (real) (ninguna de las tramas anticipatorias de rodaje) con la configuración actual (nueva).
Haciendo referencia ahora al ejemplo de la figura 5, no cubierto por las reivindicaciones, un método para descodificar un flujo de bits USAC de MPEG-D codificado, incluyendo el flujo de bits codificado una pluralidad de tramas, cada una compuesta por una o más subtramas, en el que el flujo de bits codificado incluye, como representación de los coeficientes de predicción lineal, LPC, uno o más conjuntos de frecuencia espectral de línea, LSF, para cada subtrama. En el paso S201, se recibe el flujo de bits USAC de MPEG-D codificado. La descodificación del flujo de bits codificado incluye entonces en el paso S202 descodificar, mediante un descodificador (el descodificador está configurado para descodificar), los conjuntos LSF para cada subtrama del flujo de bits. En el paso S203, los conjuntos LSF descodificados son luego convertidos, por el descodificador, en representaciones de pares espectrales lineales, LSP, para su procesamiento adicional.
Generalmente, los LSP tienen varias propiedades (por ejemplo, menor sensibilidad al ruido de cuantificación) que los hacen superiores a la cuantificación directa de los LPC.
Con referencia al ejemplo de la figura 6, en una realización no cubierta por las reivindicaciones, para cada trama, los conjuntos LSF descodificados pueden ser almacenados temporalmente por el descodificador para interpolación con una trama posterior, S204a. A este respecto, también puede ser suficiente guardar sólo el último conjunto en la representación LSF, ya que se requiere el último conjunto de la trama anterior para fines de interpolación. Almacenar temporalmente los conjuntos LSF permite utilizar directamente los conjuntos LSF: if (!p_lpd_data->first _lpd_flag) {
memcpy(lsf, h_lpd_dec->lsf_prev, LPD _ORDER *sizeof(DLB_LFRACT));
}
sin la necesidad de convertir el último conjunto guardado en representación LSP a LSF:
if (!first_lpd_flag) {
ixheaacd_lsp_2_lsf_conversion(st->lspold, lsf_fit, ORDER);
}
Haciendo referencia al ejemplo de la figura 7, de manera alternativa o adicional, en una realización no cubierta por las reivindicaciones, el procesamiento adicional puede incluir determinar las LPC en base a las representaciones LSP aplicando un algoritmo de búsqueda de raíz, en el que aplicar el algoritmo de búsqueda de raíz puede implicar escalado, S204b. Los coeficientes de las representaciones LSP se pueden escalar dentro del algoritmo de búsqueda de raíz para evitar el desbordamiento en un intervalo de puntos fijos.
En una realización no cubierta por las reivindicaciones, la aplicación del algoritmo de búsqueda de raíz puede implicar encontrar el polinomio F1(z) y/o F2(z) a partir de las representaciones LSP expandiendo los polinomios de producto respectivos, en el que el escalado se puede realizar como una potencia de 2 escalados de los coeficientes polinomiales. Esto define una función 1 de desplazamiento de bits a la izquierda <<LPD_COEFF_SCALE, siendo 8 el valor predeterminado LPD_COe Ff_SCALE. A modo de ejemplo, esto se puede realizar de la siguiente manera.
La representación LSP del polinomio LP consiste simplemente en la ubicación de las raíces P y Q, es decir, o tal que z = eio, P(z) = 0. Como aparecen en pares, sólo tienen que transmitirse la mitad de las raíces reales (convencionalmente entre 0 y n). Por lo tanto, el número total de coeficientes tanto para P como para Q es igual a p, el número de coeficientes LP originales (sin contar a<0>= 1). Un algoritmo común para encontrarlos es evaluar el polinomio en una secuencia de puntos estrechamente espaciados alrededor del círculo unitario, observando cuándo el resultado cambia de signo; cuando lo hace, ha de haber una raíz entre los puntos comprobados. Debido a que las raíces de P están intercaladas con las de Q, una sola pasada es suficiente para encontrar las raíces de ambos polinomios. Si bien los LSP están en el intervalo [-1..1] por diseño (cos()), éste no es el caso de los coeficientes LP. De este modo, es necesario realizar el escalado dentro del algoritmo de búsqueda de raíz. A continuación se ofrece un código de ejemplo al respecto:
Encontrar el polinomio F1(z) o F2(z) a partir de los LSP.
Esto se realiza expandiendo los polinomios del producto:
F1(z) = producto (1 - 2 LSP_i zA-1 zA-2 )
i = 0, 2, 4, 6, 8, 10, 12, 13
F2(z) = producto (1 - 2 LSP_i zA-1 zA-2 )
i = 1, 3, 5, 7, 9, 11,13,15
donde LSP_i son los LSP en el dominio coseno.
R.A. Salami, octubre de 1990
El pseudocódigo, como se ilustra a continuación, implanta el escalado mencionado anteriormente (y no forma parte del algoritmo R.A. Salami):
END LOOP
Escalando dentro del algoritmo de búsqueda de raíz para evitar desbordamientos en el intervalo de punto fijo:
En algunas realizaciones no cubiertas por las reivindicaciones, el descodificador puede configurarse para recuperar filtros LPC cuantificados y para calcular sus versiones ponderadas y para calcular los espectros diezmados correspondientes, en las que se puede aplicar una modulación a los LPC antes de calcular los espectros diezmados en base a valores previamente calculados que pueden recuperarse de una o más tablas de búsqueda.
En general, en el cálculo de ganancia de excitación codificada por transformada (TCX), antes de aplicar una transformada de coseno discreta modificada inversa (MDCT), los dos filtros LPC cuantificados correspondientes a ambos extremos del bloque MDCT (es decir, los puntos de plegado izquierdo y derecho) se pueden recuperar, se pueden calcular sus versiones ponderadas y se pueden calcular los espectros diezmados correspondientes. Estos espectros LPC ponderados se pueden calcular aplicando una transformada de Fourier discreta impar (ODFT) a los coeficientes de filtro LPC. Se puede aplicar una modulación compleja a los coeficientes LPC antes de calcular la ODFT de modo que los contenedores de frecuencia ODFT puedan estar perfectamente alineados con los contenedores de frecuencia MDCT. Esto puede describirse en la cláusula 7.15.2 del estándar USAC, por ejemplo. Esta cláusula se incorpora por la presente como referencia en su totalidad. Dado que los únicos valores posibles para M (ccfl/16) pueden ser 64 y 48, se puede utilizar una tabla de consulta para esta modulación compleja.
A continuación se ofrece un ejemplo de una modulación que utiliza una tabla de consulta:
void lpd_lpc_to_td(DLB_LFRACT *coeff, infc order, DLB_LFRACT *gains, int ig ) { "
size n = 2*1g ;
switch(lg) {
case 48:
cos_table = lpd_cos_table_48;
sin_table = lpd_sin_table_48;
break;
case 64:
cos_table = lpd_cos_table_64;
sin table = lpd sin table 64;
break;
}
for (i =0; i < order 1; i++) {
data_in[2 * i] = DLB_LmpyLL(coeff[i], cos_table[i]); /* eos(i * PI/ s data_in[2 * i 1] = DLB_LnegL(DLB_LmpyLL(coeff[i], sin_table[i]));
/* sin íi * PI/ s
}
for (; i < size n; i++) {
data in[2 * i] = DLB LOO;
data_in[2 * i 1] = DLB_L00;
} “ “
Haciendo referencia ahora a los ejemplos de las figuras 8 y 9, no cubiertos por las reivindicaciones, se describe un método para descodificar un flujo de bits USAC de MPEG-D codificado mediante un descodificador que implanta una herramienta de cancelación de alias directo, FAC, para cancelar alias en el dominio tiempo y/o establecer ventanas durante la transición entre tramas codificadas por predicción lineal excitada por código algebraico, ACELP, y tramas codificadas por transformada, TC, dentro de un códec de dominio predicción lineal, LPD.
La herramienta FAC puede describirse en la cláusula 7.16 de la norma USAC, por ejemplo. Esta cláusula se incorpora por la presente como referencia en su totalidad. Generalmente, la cancelación de alias directo (FAC) se realiza durante las transiciones entre tramas ACELP y TC dentro del códec LPD con el fin de obtener la señal de síntesis final. El objetivo de FAC es cancelar el alias de dominio tiempo y la formación de ventanas introducidas por TC y que no pueden cancelarse mediante la trama ACELP anterior o siguiente.
En el paso S301, el descodificador 300 recibe un flujo de bits USAC de MPEG-D codificado. En el paso S 302, se realiza una transición del LPD al dominio frecuencia, FD, y se aplica la herramienta FAC 301 si una señal en ventana descodificada se codificó con ACELP. Además, en el paso S 303, se realiza una transición del FD al LPD y se aplica la (misma) herramienta FAC 301 si una primera ventana descodificada se codificó con ACELP. La transición que se va a realizar se puede determinar durante el proceso de descodificación, ya que esto depende de cómo se haya codificado el flujo de bits USAC de MPEG-D. El uso de una sola función (lpd_fwd_alias_cancel_tool ()) permite utilizar menos código y menos memoria y, de este modo, reducir la complejidad informática.
En una realización no cubierta por las reivindicaciones, se puede añadir adicionalmente una respuesta de entrada cero de ACELP (ACELP ZIR), cuando se usa la herramienta FAC 301 para la transición de FD a LPD. El ACELP ZIR puede ser la señal de emisión realmente sintetizada de la última subtrama codificada por ACELP, que se utiliza, en combinación con la herramienta FAC, para generar las primeras nuevas muestras de emisión después de la conmutación de códec de LPD a FD. Añadir ACELP ZIR a la herramienta FAC (por ejemplo, como entrada a la herramienta FAC) permite una transición perfecta del FD al LPD y/o utilizar la misma herramienta FAC para las transiciones del Lp D al FD y/o del FD al LPD.
Como se señaló anteriormente, la misma herramienta FAC se puede aplicar a ambas transiciones del LPD al FD y del FD al LPD. Aquí, usar la misma herramienta puede significar que se aplica (o se llama) la misma función en el código de una aplicación de descodificación, independientemente de la transición entre LPD y FD, o viceversa. Esta función puede ser, por ejemplo, la función lpd_fwd_alias_cancel_tool() que se describe a continuación. La función que implanta la herramienta FAC (por ejemplo, la función lpd_fwd_alias_cancel_tool ()) puede recibir información relacionada con los coeficientes de filtro, ZIR, longitud de subtrama, longitud de FAC y/o la señal de FAC como entrada. En el código de ejemplo que se presenta a continuación, esta información puede representarse mediante *lp_filt_coeff (coeficientes de filtro), *zir (ZIR), len_subfrm (longitud de subtrama), fac_length (longitud de FAC) y *fac_signal (señal de FAC).
Como se señaló anteriormente, la función que implanta la herramienta FAC (por ejemplo, la función lpd_fwd_alias_cancel_tool ()) puede diseñarse de tal manera que se pueda acudir a ella durante cualesquiera casos de la descodificación, independientemente del dominio de codificación actual (por ejemplo, LPD o FD). Esto significa que se acudirá a la misma función al conmutar del FD al LPD, o viceversa. En consecuencia, la herramienta o función FAC propuesta que implanta la herramienta FAC proporciona una ventaja técnica o una mejora sobre implantaciones anteriores con respecto a la ejecución de código en la descodificación. Además, la flexibilidad resultante en la descodificación permite optimizaciones de código que no están disponibles en implantaciones anteriores (por ejemplo, en implantaciones que usan funciones diferentes para implantar herramientas FAC en FD y LPD).
A continuación se ofrece un código de ejemplo para una función que implanta la herramienta FAC:
)
Como se puede ver en el código de ejemplo anterior, se puede acudir a la función lpd_fwd_alias_cancel_tool () que implanta la herramienta FAC independientemente del dominio de codificación actual (por ejemplo, FD o LPD) y se pueden manejar adecuadamente las transiciones entre dominios de codificación.
Con referencia al ejemplo de la figura 10, cabe señalar que los métodos descritos en el presente documento pueden también implantarse mediante respectivos productos de programa de ordenador con instrucciones adaptadas para hacer que un dispositivo 400 que tenga capacidad 401 de procesamiento realice dichos métodos.
Interpretación
A menos que se indique específicamente lo contrario, como se desprende de las siguientes discusiones, se aprecia que a lo largo de los análisis de divulgación que utilizan términos tales como "procesar", "computar", "determinar", analizar" o similares, éstos se refieren a la acción y/o a los procesos de un ordenador o sistema informático, o a dispositivos electrónicos similares, que manipulan y/o transforman datos representados como cantidades físicas, tales como electrónicas, en otros datos representados de manera similar como cantidades físicas.
De manera similar, el término "procesador" puede referirse a cualquier dispositivo o porción de un dispositivo que procesa datos electrónicos para transformar esos datos electrónicos en otros datos electrónicos. Un "ordenador" o una "máquina informática" o una "plataforma informática" puede incluir uno o más procesadores.
Como se indicó anteriormente, los métodos descritos en el presente documento se pueden implantar como un producto de programa de ordenador con instrucciones adaptadas para hacer que un dispositivo que tenga capacidad de procesamiento realice tales métodos. Se incluye cualquier procesador capaz de ejecutar un conjunto de instrucciones (secuenciales o no) que especifican las acciones a tomar. De este modo, un ejemplo puede ser un sistema de procesamiento típico que puede incluir uno o más procesadores. Cada procesador puede incluir un elemento o más de una CPU, una unidad de procesamiento de gráficos, una unidad de procesamiento de tensor y una unidad DSP programable. El sistema de procesamiento puede incluir adicionalmente un subsistema de memoria que incluye RAM principal y/o RAM estática y/o ROM. Puede incluirse un subsistema de bus para la comunicación entre los componentes. El sistema de procesamiento puede ser adicionalmente un sistema de procesamiento distribuido con procesadores acoplados por una red. Si el sistema de procesamiento requiere un dispositivo de visualización, tal dispositivo de visualización puede estar incluido en, por ejemplo, un dispositivo de visualización de cristal líquido (LCD), un dispositivo de visualización de diodo emisor de luz (LED) de cualquier tipo, por ejemplo, incluyendo dispositivos de visualización OLED (diodo emisor de luz orgánico), o una pantalla de tubo de rayos catódicos (CRT). Si se requiere la entrada de datos manuales, el sistema de procesamiento puede incluir también un dispositivo de entrada tal como una o más unidades de entrada alfanuméricas tal como un teclado, un dispositivo de control señalador tal como un ratón, etc. El sistema de procesamiento puede también abarcar un sistema de almacenamiento tal como una unidad de disco. El sistema de procesamiento puede incluir un dispositivo de emisión de sonido, por ejemplo uno o más altavoces o puertos para auriculares, y un dispositivo de interfaz de red.
Un producto de programa de ordenador puede ser, por ejemplo, equipo lógico informático (software). El software se puede implantar de diversas maneras. El software puede transmitirse o recibirse a través de una red mediante un dispositivo de interfaz de red o puede distribuirse mediante un medio de portador. Un medio de portador puede incluir, sin estar limitado a, medios no volátiles, medios volátiles y medios de transmisión. Los medios no volátiles pueden incluir, por ejemplo, discos ópticos, magnéticos y discos magnetoópticos. Los medios volátiles pueden incluir memoria dinámica, tal como la memoria principal. Los medios de transmisión pueden incluir cables coaxiales, alambres de cobre y fibra óptica, incluyendo los alambres que componen un subsistema de bus. Los medios de transmisión pueden también tomar la forma de ondas acústicas o luminosas, tales como las generadas durante las comunicaciones de datos por ondas de radio e infrarrojos. Por ejemplo, se considerará, en consecuencia, que el término "medio portador" incluye, sin estar limitado a, memorias de estado sólido, un producto de ordenador incorporado en medios ópticos y magnéticos; un medio que porta una señal propagada detectable por al menos un procesador o uno o más procesadores y que representa un conjunto de instrucciones, que, cuando se ejecutan, implantan un método; y un medio de transmisión en una red que porta una señal propagada detectable por al menos un procesador del uno o más procesadores y que representa el conjunto de instrucciones.
Obsérvese que, cuando el método a realizar incluye varios elementos, por ejemplo varios pasos, no se implica ningún orden de tales elementos, a menos que se indique específicamente lo contrario.
Se entenderá que los pasos de los métodos analizados se realizan en una realización ejemplar mediante un procesador (o procesadores) apropiado de un sistema de procesamiento (por ejemplo, un ordenador) que ejecuta instrucciones (código legible por ordenador) almacenadas en un almacenamiento. También se entenderá que la divulgación no está limitada a ninguna implantación o técnica de programación particular, y que la divulgación puede implantarse utilizando cualquier técnica apropiada para implantar la funcionalidad descrita en el presente documento. La divulgación no se limita a ningún lenguaje de programación o sistema operativo en particular.
En las reivindicaciones siguientes y la descripción en el presente documento, cualquiera de los términos que comprende, que están comprendidos o el cual comprende es un término abierto que significa incluir al menos los elementos/características que siguen, pero sin excluir otros. De este modo, el término que comprende, cuando se utiliza en las reivindicaciones, no debe interpretarse como limitante de los medios, elementos o pasos enumerados a continuación. Cualquiera de los términos que incluyen o el cual incluye como se usan en este documento es también un término abierto que significa también incluir al menos los elementos/características que siguen al término, pero sin excluir otros. De este modo, incluir es sinónimo de y significa comprender.
En la descripción proporcionada en el presente documento, se exponen numerosos detalles específicos. Sin embargo, se entiende que se pueden practicar realizaciones ejemplares de la divulgación sin estos detalles específicos. En otros casos, los métodos, estructuras de dispositivos y técnicas bien conocidos no se han mostrado en detalle con el fin de no oscurecer la comprensión de esta descripción.
De este modo, si bien se han descrito lo que se cree que son los mejores modos de la divulgación, el experto en la técnica reconocerá que se pueden realizar otras modificaciones adicionales sin salir del alcance de la divulgación según se define en las reivindicaciones adjuntas, y se pretende reivindicar la totalidad de tales cambios y modificaciones que caen dentro del alcance de la divulgación según se define en las reivindicaciones adjuntas. Por ejemplo, se pueden añadir o eliminar pasos a los métodos descritos dentro del alcance de la presente divulgación según se define en las reivindicaciones adjuntas.

Claims (6)

REIVINDICACIONES
1. Un descodificador para descodificar un flujo de bits USAC de MPEG-D codificado, comprendiendo el descodificador:
un receptor configurado para recibir el flujo de bits codificado, en el que el flujo de bits representa una secuencia de valores de muestra de audio y comprende una pluralidad de tramas, en el que cada trama comprende valores de muestra de audio codificados asociados, en el que el flujo de bits comprende un elemento anticipatorio de rodaje que incluye una o más tramas anticipatorias de rodaje que el descodificador necesita para conformar una señal completa de modo que esté en situación de emitir valores de muestra de audio válidos asociados con una trama actual, y en el que el flujo de bits comprende adicionalmente un elemento de configuración USAC que comprende una configuración USAC actual como carga útil y una identificación de flujo de bits actual;
un analizador configurado para analizar el elemento de configuración USAC hasta la identificación de flujo de bits actual y para almacenar una posición inicial del elemento de configuración USAC y una posición inicial de la identificación de flujo de bits actual en el flujo de bits;
un determinador configurado para determinar si la configuración USAC actual difiere de una configuración USAC anterior cotejando una longitud de la configuración USAC actual config_length_in_bits con la longitud de la configuración USAC anterior, y, si la configuración USAC actual difiere de la configuración USAC anterior, almacenar la configuración USAC actual, en el que el determinador está configurado para saltar de regreso a la posición inicial del elemento de configuración USAC en el flujo de bits y para leer masivamente y almacenar la carga útil de configuración USAC no analizada de (config_length_in_bits 7)/8) bytes; y
un inicializador configurado para inicializar el descodificador si el determinador determina que la configuración USAC actual difiere de la configuración USAC anterior, en el que inicializar el descodificador comprende: descodificar la una o más tramas anticipatorias de rodaje incluidas en el elemento anticipatorio de rodaje, conmutar el descodificador de la configuración USAC anterior a la configuración USAC actual, configurando por ello el descodificador para usar la configuración USAC actual si el determinador determina que la configuración USAC actual difiere de la configuración USAC anterior, y
en el que el descodificador está configurado para descartar y no descodificar el elemento anticipatorio de rodaje si el determinador determina que la configuración USAC actual es idéntica a la configuración USAC anterior.
2. El descodificador de acuerdo con la reivindicación 1, en el que el determinador está configurado para determinar si la configuración USAC actual difiere de la configuración USAC anterior cotejando la identificación de flujo de bits actual con una identificación de flujo de bits anterior.
3. El descodificador de acuerdo con la reivindicación 1 ó 2, en el que, si se determina que la identificación de flujo de bits actual es idéntica a la identificación de flujo de bits anterior y/o si se determina que la longitud de la configuración USAC actual es idéntica a la longitud de la configuración USAC anterior, el determinador está configurado para determinar si la configuración USAC actual difiere de la configuración USAC anterior comparando byte a byte la configuración USAC actual con la configuración USAC anterior.
4. El descodificador de acuerdo con una cualquiera de las reivindicaciones 1 a 3, en el que el descodificador está configurado adicionalmente para retardar en una trama la emisión de valores de muestra de audio válidos asociados con la trama actual, en el que retardar una trama la emisión de valores de muestra de audio válidos incluye almacenar en memoria intermedia cada trama de muestras de audio antes de su emisión, y en el que el descodificador está configurado adicionalmente, si se determina que la configuración USAC actual difiere de la configuración USAC anterior, para realizar el fundido cruzado de una trama de la configuración USAC anterior, almacenada en memoria intermedia en el descodificador, con la trama actual de la configuración USAC actual.
5. Un método para descodificar, mediante un descodificador, un flujo de bits USAC de MPEG-D codificado, comprendiendo el método:
recibir el flujo de bits codificado, en el que el flujo de bits representa una secuencia de valores de muestra de audio y comprende una pluralidad de tramas, en el que cada trama comprende valores de muestra de audio codificados asociados, en el que el flujo de bits comprende un elemento anticipatorio de rodaje que incluye una o más tramas anticipatorias de rodaje que el descodificador necesita para conformar una señal completa como para estar en situación de emitir valores de muestra de audio válidos asociados con una trama actual, y en el que el flujo de bits comprende adicionalmente un elemento de configuración USAC que comprende una configuración USAC actual como carga útil y una identificación de flujo de bits actual;
analizar el elemento de configuración USAC hasta la identificación de flujo de bits actual y almacenar una posición inicial del elemento de configuración USAC y una posición inicial de la identificación de flujo de bits actual en el flujo de bits;
determinar si la configuración USAC actual difiere de una configuración USAC anterior cotejando una longitud de la configuración USAC actual config_length_in_bits con la longitud de la configuración USAC anterior, y, si la configuración USAC actual difiere de la configuración USAC anterior, almacenar la configuración USAC actual , en el que la determinación incluye saltar de regreso a la posición inicial del elemento de configuración USAC en el flujo de bits y leer masivamente y almacenar la carga útil de configuración USAC no analizada de (config_length_in_bits 7)/8) bytes; y
inicializar el descodificador si se determina que la configuración USAC actual difiere de la configuración USAC anterior,
en el que inicializar el descodificador comprende:
descodificar la una o más tramas anticipatorias de rodaje incluidas en el elemento anticipatorio de rodaje, y conmutar el descodificador de la configuración USAC anterior a la configuración USAC actual, configurando por ello el descodificador para usar la configuración USAC actual si se determina que la configuración USAC actual difiere de la configuración USAC anterior,
en el que el método comprende adicionalmente:
descartar y no descodificar, mediante el descodificador, el elemento anticipatorio de rodaje si se determina que la configuración USAC actual es idéntica a la configuración USAC anterior.
6. Producto de programa de ordenador con instrucciones adaptadas para hacer que un dispositivo que tiene capacidad de procesamiento lleve a cabo el método de acuerdo con la reivindicación 5.
ES21725222T 2020-05-20 2021-05-18 Métodos y aparatos para mejoras de descodificación unificada de habla y de audio Active ES2972833T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063027594P 2020-05-20 2020-05-20
EP20175652 2020-05-20
PCT/EP2021/063092 WO2021233886A2 (en) 2020-05-20 2021-05-18 Methods and apparatus for unified speech and audio decoding improvements

Publications (1)

Publication Number Publication Date
ES2972833T3 true ES2972833T3 (es) 2024-06-17

Family

ID=75904960

Family Applications (1)

Application Number Title Priority Date Filing Date
ES21725222T Active ES2972833T3 (es) 2020-05-20 2021-05-18 Métodos y aparatos para mejoras de descodificación unificada de habla y de audio

Country Status (8)

Country Link
US (1) US20230186928A1 (es)
EP (1) EP4154249B1 (es)
JP (1) JP2023526627A (es)
KR (1) KR20230011416A (es)
CN (1) CN115668365A (es)
BR (1) BR112022023245A2 (es)
ES (1) ES2972833T3 (es)
WO (1) WO2021233886A2 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024167252A1 (ko) * 2023-02-09 2024-08-15 한국전자통신연구원 오디오 신호 코딩 방법 및 이를 수행하는 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2557455C2 (ru) * 2009-06-23 2015-07-20 Войсэйдж Корпорейшн Прямая компенсация наложения спектров во временной области с применением в области взвешенного или исходного сигнала
ES2706061T3 (es) * 2010-01-13 2019-03-27 Voiceage Corp Decodificación de audio con cancelación directa de distorsión por repliegue espectral en el dominio del tiempo usando filtrado predictivo lineal
CN116631414A (zh) * 2017-01-10 2023-08-22 弗劳恩霍夫应用研究促进协会 音频解码器、提供解码的音频信号的方法、和计算机程序
US11315584B2 (en) * 2017-12-19 2022-04-26 Dolby International Ab Methods and apparatus for unified speech and audio decoding QMF based harmonic transposer improvements

Also Published As

Publication number Publication date
US20230186928A1 (en) 2023-06-15
JP2023526627A (ja) 2023-06-22
WO2021233886A2 (en) 2021-11-25
KR20230011416A (ko) 2023-01-20
EP4154249B1 (en) 2024-01-24
EP4154249A2 (en) 2023-03-29
WO2021233886A3 (en) 2021-12-30
BR112022023245A2 (pt) 2022-12-20
EP4154249C0 (en) 2024-01-24
CN115668365A (zh) 2023-01-31

Similar Documents

Publication Publication Date Title
JP6773743B2 (ja) フォワードエイリアシング消去を用いた符号器
ES2592416T3 (es) Esquema de codificación/decodificación de audio que tiene una derivación conmutable
US7876966B2 (en) Switching between coding schemes
ES2383217T3 (es) Codificador, descodificador y métodos para codificar y descodificar segmentos de datos que representan una corriente de datos de dominio de tiempo
ES2683077T3 (es) Codificador y decodificador de audio para codificar y decodificar tramas de una señal de audio muestreada
AU2009267543B2 (en) Audio encoder and audio decoder
KR101869395B1 (ko) 예측 인코딩 및 변환 인코딩 사이에서 교번하는 낮은―지연 사운드―인코딩
PT2301023T (pt) Esquema de codificação/descodificação áudio de baixo débito com comutadores em cascata
CN113571070B (zh) Fd/lpd转换环境中的帧丢失管理
RU2644135C2 (ru) Устройство и способ декодирования кодированного аудиосигнала с низкими вычислительными ресурсами
KR102388687B1 (ko) 변환 코딩/디코딩으로부터 예측 코딩/디코딩으로의 천이
ES2972833T3 (es) Métodos y aparatos para mejoras de descodificación unificada de habla y de audio
BR122021006965B1 (pt) Codificador de áudio e decodificador de áudio