ES2967136T3 - Sistemas y procedimientos de comunicación de información de trama redundante - Google Patents

Sistemas y procedimientos de comunicación de información de trama redundante Download PDF

Info

Publication number
ES2967136T3
ES2967136T3 ES20168837T ES20168837T ES2967136T3 ES 2967136 T3 ES2967136 T3 ES 2967136T3 ES 20168837 T ES20168837 T ES 20168837T ES 20168837 T ES20168837 T ES 20168837T ES 2967136 T3 ES2967136 T3 ES 2967136T3
Authority
ES
Spain
Prior art keywords
frame
audio frame
audio
bits
band
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
ES20168837T
Other languages
English (en)
Inventor
Venkatraman S Atti
Vivek Rajendran
Venkatesh Krishnan
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2967136T3 publication Critical patent/ES2967136T3/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/002Dynamic bit allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0014Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the source coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0075Transmission of coding parameters to receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • 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/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • 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
    • G10L2019/0001Codebooks

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)

Abstract

Un método incluye recibir una segunda trama de audio en un decodificador. La segunda trama de audio sigue a una primera trama de audio en una señal de audio e incluye un primer número de bits asignados a información de codificación primaria asociada con la segunda trama de audio, un segundo número de bits asignados a información de codificación redundante asociada con la primera trama de audio, y un indicador de un tipo de cuadro del primer cuadro de audio. En respuesta a una condición de borrado de cuadro asociada con el primer cuadro de audio, el segundo número de bits se determina basándose en el indicador y se usa para decodificar el primer cuadro de audio. En condiciones de canal limpio, la primera trama de audio se recibe y decodifica basándose en los bits de codificación primaria en la primera trama de audio, y el primer número de bits se determina basándose en el indicador y se utiliza para decodificar la segunda trama de audio. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Sistemas y procedimientos de comunicación de información de trama redundante
Campo
La presente divulgación está generalmente relacionada con la comunicación de información de trama redundante.
Descripción de la técnica relacionada
Los avances tecnológicos han dado lugar a dispositivos informáticos más pequeños y potentes. Por ejemplo, actualmente existe una variedad de dispositivos informáticos personales portátiles, incluidos los dispositivos informáticos inalámbricos, tales como teléfonos inalámbricos portátiles, asistentes digitales personales (PDA) y dispositivos de localización que son pequeños, ligeros y fáciles de transportar por los usuarios. Más específicamente, los teléfonos inalámbricos portátiles, tales como teléfonos celulares y teléfonos de Protocolo de Internet (IP), pueden comunicar paquetes de voz y datos a través de las redes inalámbricas. Además, muchos de estos teléfonos inalámbricos incluyen otros tipos de dispositivos que se incorporan en ellos. Por ejemplo, un teléfono inalámbrico también puede incluir una cámara fotográfica digital, una cámara de vídeo digital, una grabadora digital y un reproductor de archivos de audio.
Los dispositivos electrónicos, tales como los teléfonos inalámbricos, pueden enviar y recibir datos a través de las redes. Por ejemplo, los datos de audio pueden enviarse y recibirse a través de una red de circuitos conmutados (por ejemplo, la red telefónica pública conmutada (PSTN), un sistema global para la red de comunicaciones móviles (GSM), etc.) o una red de paquetes conmutados (por ejemplo, una red de voz sobre protocolo de Internet (VoIP), una red de voz sobre evolución a largo plazo (VoLTE), etc.). En una red de conmutación de paquetes, los paquetes de audio pueden enrutarse individualmente desde un dispositivo de origen a un dispositivo de destino. Debido a las condiciones de la red, los paquetes de audio pueden llegar fuera de orden. El dispositivo de destino puede almacenar los paquetes recibidos en una memoria intermedia de eliminación de fluctuación y puede reorganizar los paquetes recibidos si es necesario.
Pueden usarse varios esquemas de codificación al comunicar los datos de audio. Por ejemplo, en función del tipo de trama de audio, puede usarse un enfoque de predicción lineal excitada por código (CELP) o una transformada de coseno discreta modificada (MDCT) basada en el dominio de frecuencia para representar de forma compacta la voz y el audio. Para mejorar la eficiencia de codificación a tasas de bits bajas (por ejemplo, 13,2 kilobits por segundo (kbps), 24,4 kbps, etc.) al codificar anchos de banda mayores, por ejemplo, hasta 8 kilohercios (kHz) de banda ancha (WB), 16 kHz súper-banda ancha (SWB), o banda completa de 20 kHz, el núcleo de la banda inferior (por ejemplo, hasta 6,4 kHz o hasta 8 kHz) normalmente se codifica mediante el uso de técnicas de codificación de coincidencia de formas de onda tales como CELP o MDCT. Se realiza una extensión de ancho de banda (BWE) que modela la banda alta (por ejemplo, > 6,4 kHz o > 8 kHz) y codifica "información lateral" (por ejemplo, asociada con parámetros de banda alta). La información lateral de banda alta puede incluir coeficientes de filtro de predicción lineal (LP) y parámetros de ganancia que modelan la evolución temporal tanto fina como gruesa. Un codificador o un dispositivo fuente puede enviar la información lateral junto con la porción de baja frecuencia al dispositivo de destino para que el dispositivo de destino pueda sintetizar la porción de alta frecuencia de la trama de audio en el dispositivo de destino para una reconstrucción de alta calidad.
En el documento US 2013/0185062 A1, se describe un procedimiento de procesamiento de señales de audio, comprendiendo dicho procedimiento: calcular un estimado de la dependencia de codificación de una segunda trama de una señal de audio en una primera trama que precede a la segunda trama en la señal de audio; en base a la información relativa al estado de un canal de transmisión, calcular un valor umbral; comparar el estimado calculado con el valor umbral calculado; y, en base a un resultado de dicha comparación, decidir transmitir una copia redundante de la primera trama.
En el documento US 2013/0191121 A1, se describe un procedimiento para la codificación de tramas redundantes mediante un dispositivo electrónico. El procedimiento incluye determinar una energía de libro de códigos adaptativo y una energía de libro de códigos fijo en base a una trama. El procedimiento también incluye codificar una versión redundante de la trama en base a la energía de libro de códigos adaptativo y la energía de libro de códigos fijo. El procedimiento incluye además enviar una trama posterior.
En el documento US 6,801,499 B1, un procedimiento de envío de paquetes de información en tiempo real a un remitente incluye etapas de generar inicialmente en el remitente los paquetes de información en tiempo real con una tasa de fuente mayor que cero kilobits por segundo, y un tiempo o ruta o tasa de diversidad de tiempo/ruta combinados, siendo la cantidad de diversidad inicialmente de al menos cero kilobits por segundo. El procedimiento envía los paquetes, lo que da como resultado una calidad de servicio QoS y, opcionalmente, obtiene del remitente una medida de la QoS. Otra etapa compara la QoS con un umbral de aceptabilidad, y cuando la QoS está en un lado inaceptable de dicho umbral aumenta la tasa de diversidad y envía no sólo paquetes adicionales de información en tiempo real sino que también envía paquetes de diversidad a la tasa de diversidad como aumentado. Además, la decisión de adaptación de tasa/diversidad puede realizarse en el receptor.
En el documento US 2010/0312552 A1, se describe un procedimiento para evitar la pérdida de información dentro de una trama de voz. Se selecciona una primera trama de voz a codificar. Se determina si una segunda trama de voz es o no una trama de voz crítica en base a la información dentro de la segunda trama de voz y una o más tramas de voz adyacentes. Al menos una parte de una versión codificada de la segunda trama de voz se crea de acuerdo con un modo de corrección de errores directos (FEC) seleccionado si la segunda trama de voz es una trama de voz crítica. Se transmiten la primera trama de voz y al menos una parte de la versión codificada de la segunda trama de voz.
Sumario
Debido a que los paquetes en las redes de conmutación de paquetes pueden llegar fuera de orden, es posible que, aunque un paquete en particular (por ejemplo, correspondiente a la trama de audio N) esté dañado o se pierda, un paquete posterior (por ejemplo, correspondiente a la trama de audio N+2) puede estar libre de errores y disponible en la memoria de eliminación de fluctuación. Por lo tanto, puede ser útil incluir, en la trama posterior (por ejemplo, la trama N+2), información de codificación redundante (por ejemplo, la información de corrección de errores) que puede usarse para reconstruir la trama anterior (por ejemplo, la trama N).
La presente divulgación describe sistemas y procedimientos para comunicar la información de trama redundante. De acuerdo con las técnicas descritas, cuando se usa un esquema de extensión de ancho de banda (BWE), una trama de audio puede incluir cuatro tipos de datos: un núcleo de banda baja codificado, la información lateral de banda alta, la información de codificación redundante asociada con una porción de banda baja de una trama anterior, y la información de codificación redundante asociada con parámetros de banda alta de la trama anterior. El núcleo de banda baja y la información lateral de banda alta para una trama actual pueden denominarse colectivamente codificación "primaria". La información de codificación redundante para las bandas baja y alta de una trama anterior puede denominarse colectivamente "copia parcial". Por lo tanto, una trama puede incluir bits de codificación primaria para su propia banda baja y banda alta, y la trama también puede incluir bits de copia parcial para las bandas baja y alta de una trama anterior.
Cuando se produce una condición de borrado de trama (por ejemplo, la trama anterior no se recibe o está dañada debido a un error de red), un receptor puede usar la información de codificación redundante para reconstruir la trama anterior. Además, el número de bits asignado a cada uno de los cuatro tipos de datos, es decir, el núcleo de banda baja, la información lateral de banda alta, la copia parcial del núcleo de banda baja de la trama anterior y la copia parcial de la banda alta de la trama anterior puede ajustarse dinámicamente en base a las propiedades de una señal de audio que se transmite. Incluso cuando la trama anterior se recibe con éxito (por ejemplo, en condiciones de canal limpio), un decodificador puede separar los bits de codificación primarios de los bits de copia parcial antes de decodificar los bits de codificación primarios.
La invención se define por las reivindicaciones independientes.
Las características de algunas realizaciones se enumeran en las reivindicaciones dependientes.
Esta divulgación describe ejemplos relacionados con operaciones de codificación y ejemplos relacionados con operaciones de decodificación. Las reivindicaciones independientes se refieren a operaciones de decodificación. No obstante, los ejemplos relacionados con las operaciones de codificación pueden ayudar al lector a comprender o implementar las técnicas de esta divulgación.
Las ventajas particulares proporcionadas por al menos una de las realizaciones divulgadas incluyen la capacidad de proporcionar la información de codificación redundante para una trama anterior de un flujo de audio en una trama posterior del flujo de audio. La información de codificación redundante incluida en la trama posterior puede permitir la reconstrucción de la trama anterior, tal como cuando la trama anterior se daña o se pierde debido a un error de red. Otros aspectos, ventajas y características de la presente divulgación se harán evidentes después de la revisión de la solicitud completa, incluidas las siguientes secciones: Breve descripción de los dibujos, descripción detallada y reivindicaciones.
Breve descripción de las figuras
La Figura 1 es un diagrama para ilustrar una realización particular de un sistema que es operable para comunicar la información de trama redundante;
La Figura 2 es un diagrama para ilustrar una realización particular de una trama de audio que incluye la información de codificación redundante para otra trama de audio;
La Figura 3 es un diagrama para ilustrar otra realización particular de una trama de audio que incluye la información de codificación redundante para otra trama de audio;
La Figura 4 es un diagrama para ilustrar una realización particular de un libro de códigos de tramas de ganancia de banda alta;
La Figura 5 es un diagrama para ilustrar una realización particular de un codificador de ruta paralela configurado para codificar la información de trama redundante;
La Figura 6 es un diagrama para ilustrar una realización particular de un decodificador de ruta única configurado para decodificar la información de trama redundante;
La Figura 7 y la Figura 8 representan colectivamente un diagrama de flujo para ilustrar una realización particular de un procedimiento para decodificar una trama en base a la información de codificación redundante incluida en una trama posterior;
La Figura 9 es un diagrama de flujo para ilustrar una realización particular de codificación de la información de codificación redundante para una trama en una trama posterior; y
La Figura 10 es un diagrama de bloques de un dispositivo inalámbrico operable para realizar operaciones de acuerdo con los sistemas y procedimientos de las Figuras 1-9.
Descripción detallada
Las realizaciones particulares de la presente divulgación se describen a continuación con referencia a los dibujos. En la descripción y los dibujos, las características comunes se designan mediante números de referencia comunes para mayor claridad de las realizaciones representadas y descritas.
Con referencia a la Figura 1, se muestra una realización particular de un sistema que es operable para comunicar la información de trama redundante y generalmente se designa con 100. El sistema 100 incluye un primer dispositivo informático 110 y un segundo dispositivo informático 120. El primer dispositivo informático 110 y el segundo dispositivo informático 120 pueden configurarse para comunicar datos, tales como tramas de audio, a través de una red de conmutación de paquetes. Por ejemplo, la red de conmutación de paquetes puede incluir una red VoIP, una red VoLTE u otra red de conmutación de paquetes. En una realización ilustrativa, el primer dispositivo informático 110 y el segundo dispositivo informático 120 incluyen cada uno un teléfono móvil, un dispositivo informático (por ejemplo, un ordenador portátil, un ordenador de escritorio, una tableta, un ordenador servidor, etc.), un medio reproductor, un dispositivo de juego, un dispositivo decodificador, un dispositivo de navegación, un componente de una red de conmutación de paquetes, otro dispositivo configurado para comunicar datos de audio, o cualquiera de sus combinaciones.
El primer dispositivo informático 110 puede incluir un procesador 112 (por ejemplo, una unidad central de procesamiento (CPU), un procesador de señales digitales (DSP), etc.) y una memoria 114. En una realización particular, la memoria 114 almacena instrucciones ejecutables por el procesador 112 para realizar diversas operaciones descritas en la presente memoria. El primer dispositivo informático 110 también puede incluir un codificador 116 y un transmisor 118. El codificador 116 puede codificar tramas de audio que se transmiten por el transmisor 118 (por ejemplo, a través de una red de conmutación de paquetes). En realizaciones alternativas, el primer dispositivo informático 110 puede incluir un receptor además del transmisor 118, o puede incluir un transceptor configurado para transmitir y recibir datos. El codificador 116 puede codificar una secuencia de tramas de audio, incluidas las tramas de audio ilustrativas 131, 132, 133 y 134. En la Figura 1, las tramas de audio 131, 132, 133 y 134 son cuatro tramas sucesivas de una señal de audio y se designan como una (N-1) trama, una N trama, una (N+1) trama y una (N+2) trama, respectivamente. Para facilitar la lectura, estas tramas se denominan en la presente memoria trama<N-1>, trama<N>, trama<N+1>y trama<N+2>, respectivamente. Se debe señalar que, aunque las tramas de audio 131-134 se ilustran en la Figura 1 en orden de izquierda a derecha, esto no debe interpretarse como que implica que las tramas de audio 131-134 se reciben en ese orden por el segundo dispositivo informático 120. Como se describe con más detalle en la presente memoria, las tramas de audio pueden llegar a un dispositivo de destino fuera de orden o pueden perderse debido a un error de red.
Cada una de las tramas de audio 131-134 puede incluir una señal codificada de banda baja ("Núcleo LB") y parámetros de banda alta ("Parámetros HB"). Los parámetros de núcleo LB y HB de una trama pueden denominarse colectivamente codificación primaria de la trama. En una realización particular, cada una de las tramas de audio 131 134 tiene un tamaño fijo, y la cantidad de ancho de banda (por ejemplo, número de bits de una trama) asignada al núcleo de banda baja codificado y a los parámetros de banda alta puede ajustarse dinámicamente de una trama a otra, como se describe con más detalle en la presente memoria. Para mejorar el rendimiento de decodificación de audio en presencia de errores de red, una o más de las tramas de audio 131-134 pueden incluir la información de codificación redundante de una trama anterior. La información de codificación redundante puede incluir información de codificación redundante de banda baja y/o información de codificación redundante de parámetros de banda alta. La información de codificación redundante para las bandas baja y alta de una trama anterior puede denominarse colectivamente como una "copia parcial" de la trama anterior. En una realización particular, la cantidad de ancho de banda (por ejemplo, número de bits de una trama) asignada a la información de codificación redundante de banda baja y a la información de codificación redundante de banda alta puede ajustarse dinámicamente de trama a trama, como se describe con más detalle en la presente memoria.
Por ejemplo, el codificador 116 puede codificar la información de codificación redundante para la trama<N>132 en una trama posterior<N+OFFSET>, donde OFFSET es un número entero mayor o igual a 1. Cuando las tramas se comunican a través de una red de conmutación de paquetes, cada trama puede enrutarse individualmente a un dispositivo de destino y las tramas pueden llegar fuera de orden. Por lo tanto, aunque la trama<N>132 (o una porción de la misma) puede dañarse o puede no llegar al segundo dispositivo informático 120 (denominado colectivamente en la presente memoria como una condición de "borrado de trama" con respecto a la trama<N>132), la trama<N+OFFSET>puede llegar (o puede que ya haya llegado) al segundo dispositivo informático 120 intacta. La información de codificación redundante en la trama<N+OFFSET>puede usarse por el segundo dispositivo informático 120 para reconstruir la trama<N>132 (o una porción del mismo) o detener la propagación de un error grave que introduzca artefactos.
En el ejemplo de la Figura 1, OFFSET es igual a 2. Por lo tanto, la información de codificación redundante para la trama<N-1>la trama 131 se agrega a la trama<N+1>133, la información de codificación redundante para la trama<N>132 se agrega a la trama<N+2>134, etc. En realizaciones alternativas, el parámetro OFFSET puede tener un valor distinto de 2. El valor del parámetro OFFSET puede definirse mediante un estándar de la industria (por ejemplo, un estándar de servicios de voz mejorados (EVS)), puede negociarse por los dispositivos informáticos 110 y 120, y/o puede determinarse en base a errores de red medidos o estimados. En una realización ilustrativa, el primer dispositivo informático 110 puede configurarse para determinar si se envía o no la información de codificación redundante. Por ejemplo, el primer dispositivo informático 110 puede determinar enviar o no la información de trama redundante para la trama<N>132 en la trama<N+2>134 en base a un parámetro de "criticidad" asociado con la trama<N>132, donde el parámetro de criticidad indica una importancia relativa de la trama<N>132 para reducir o minimizar los artefactos en una señal de audio si la trama<N>132 se perdiera durante la transmisión. Por tanto, la comunicación de la información de trama redundante se puede realizar, en función de los parámetros controlados por la fuente, así como en base a las condiciones de la red o del canal, en una base por trama.
En una realización particular, la cantidad de espacio (por ejemplo, número de bits) ocupada en una trama por el núcleo de LB, los parámetros de HB, la información de codificación redundante de HB y la información de codificación redundante de LB se ajusta dinámicamente mediante el codificador 116. Por ejemplo, como se muestra en la Figura 1, la relación de la información de codificación redundante HB a LB es menor en la trama<N+1>133 que en la trama<N+2>134. En una realización particular, la información de codificación redundante de HB a LB varía entre una división del [25 %, 75 %] y una división del [5 %, 95 %]. Como otro ejemplo, como se muestra en la Figura 1, la relación entre los parámetros HB y el núcleo LB es menor en la trama<N-1>131 que en la trama<N+1>133, y la relación entre los parámetros HB y el núcleo LB es menor en la trama<N+1>133 que en la trama<N>132 y la trama<N+2>134.
Como ejemplo, la tasa de bits de codificación nominal para una trama de audio puede ser 13,2 kbps cuando no se incluye la información de codificación redundante en la trama de audio. Para acomodar la información de codificación redundante, la tasa de codificación para el núcleo LB y los parámetros HB de la trama de audio se puede reducir a 9,6 kbps. El ancho de banda restante de 3,6 kbps puede usarse para codificar la información de codificación redundante<h>B y LB para una trama anterior, donde la división entre la información de codificación redundante HB y LB puede variar dinámicamente de una trama a otra entre una división [25 %, 75 %] y una división del [5 %, 95 %]. Se debe señalar que las tasas de bits y divisiones descritas son sólo a manera de ejemplo. En realizaciones alternativas, las técnicas descritas pueden usarse con diferentes tasas de bits y diferentes divisiones. En otra realización particular, la relación de bits distribuidos entre la trama redundante y la trama primaria puede ser adaptativa. Por ejemplo, la trama primaria puede usar 11,6 kbps mientras que la trama redundante puede usar 1,6 kbps del total de 13,2 kbps. En otro ejemplo, la trama primaria puede usar 12,6 kbps mientras que la trama redundante puede usar 0,6 kbps del total de 13,2 kbps. En base a un parámetro de "criticidad", esta asignación dinámica de bits puede lograrse y puede limitar la degradación de la calidad de la trama primaria en ausencia de errores de red o en condiciones de canal limpio cuando se usan algunos bits para codificación de trama redundante.
Al determinar cuánto espacio asignar a la información de codificación redundante HB y a la información de codificación redundante LB en una trama particular (por ejemplo, la trama<N+2>134), el codificador 116 puede tener en cuenta las propiedades de la red de conmutación de paquetes que se usa, la trama particular y/o la trama anterior para la cual se transmite la información de codificación redundante (por ejemplo, la trama<N>132). Se describen además ejemplos de información de codificación redundante y de ajuste dinámico de cuánto espacio se asigna a dicha información de codificación redundante dentro de una trama de audio con referencia a las Figuras. 2-9.
El segundo dispositivo informático 120 puede incluir un procesador 122 y una memoria 124. En una realización particular, la memoria 124 almacena instrucciones ejecutables por el procesador 122 para realizar diversas operaciones descritas en la presente memoria. El segundo dispositivo informático 120 también puede incluir un decodificador 126 y un receptor 128. El decodificador 126 puede decodificar tramas de audio que recibe el receptor 128 (por ejemplo, a través de una red de conmutación de paquetes), tales como las tramas de audio 131, 132, 133 y/o 134. En realizaciones alternativas, el segundo dispositivo informático 120 puede incluir un transmisor además del receptor 128, o puede incluir un transceptor configurado para transmitir y recibir datos.
En una realización particular, el segundo dispositivo informático 120 incluye una memoria intermedia, que se ilustra en la Figura 1 como una memoria intermedia de eliminación de fluctuación 129. El receptor 128 puede almacenar paquetes recibidos (por ejemplo, tramas de audio) en la memoria intermedia de eliminación de fluctuación 129. Debido a que los paquetes transmitidos a través de redes de conmutación de paquetes pueden llegar fuera de orden, la memoria intermedia de eliminación de fluctuación 129 puede usarse para almacenar y reordenar los paquetes recibidos en base a, por ejemplo, una marca de tiempo del paquete. En presencia de errores de red, es posible que el decodificador 126 no pueda decodificar todo o parte de uno o más paquetes, porque los paquetes (o porción(es) de los mismos) pueden dañarse o perderse (por ejemplo, no recibirse). Por ejemplo, durante la transmisión de las tramas de audio 131-134, la trama<N>132 puede perderse. El decodificador 126 puede reconstruir la trama perdida<N>132 de la información de codificación redundante en la trama<N+2>134. Se describen además ejemplos de información de codificación redundante y reconstrucción de una trama de audio perdida con referencia a las Figuras 2-9.
Durante el funcionamiento, el primer dispositivo informático 110 puede codificar y transmitir las tramas de audio 131 134 al segundo dispositivo informático 120 a través de una red de conmutación de paquetes. El segundo dispositivo informático 120 puede almacenar en la memoria intermedia las tramas de audio recibidas en la memoria intermedia de eliminación de fluctuación 129. El decodificador 126 puede recuperar las tramas de audio almacenadas desde la memoria intermedia de eliminación de fluctuación 129 y decodificar las tramas de audio. Cuando el decodificador 126 determina que es incapaz de decodificar una trama de audio particular (o porción de la misma) (por ejemplo, porque la trama o porción de la misma está dañada o no se recibe), el decodificador 126 puede verificar la disponibilidad de la memoria intermedia de eliminación de fluctuación 129 de una trama que incluye la información de codificación redundante para la trama dañada/perdida (por ejemplo, una trama "futura" que sigue a la trama dañada/perdida en un flujo de audio). Si dicha trama futura está disponible, el decodificador 126 puede usar la información de codificación redundante de la trama futura para reconstruir y decodificar la trama de audio particular (o porción de la misma). El sistema 100 de la Figura 1 puede así permitir la comunicación de información de trama redundante que puede usarse para mejorar el rendimiento de decodificación de audio en presencia de condiciones adversas de la red.
Se debe señalar que, en la descripción anterior, varias funciones realizadas por el sistema 100 de la Figura 1 se describen como realizadas por ciertos componentes o módulos. Sin embargo, esta división de componentes y módulos es solo a manera de ilustración. En una realización alternativa, una función realizada por un componente o módulo particular puede en cambio dividirse entre múltiples componentes o módulos. Además, en una realización alternativa, pueden integrarse dos o más componentes o módulos de la Figura 1 en un solo componente o módulo. Cada componente o módulo ilustrado en la Figura 1 puede implementarse mediante el uso de hardware (por ejemplo, un dispositivo de matriz de puerta programable en campo (FPGA), un circuito integrado de aplicación específica (ASIC), un DSP, un controlador, etc.), software (por ejemplo, instrucciones ejecutables por un procesador), o cualquiera de sus combinaciones.
Con referencia a la Figura 2 y la Figura 3, se muestran realizaciones ilustrativas de la trama de audio 134. La trama de audio 134 puede incluir una porción de LB codificada, denominada "núcleo LB". La porción de LB codificada puede incluir un filtro de predicción lineal de LB e información de excitación. Por ejemplo, la porción de banda baja codificada puede incluir índice(s) de par espectral de líneas (LSP) de LB y excitación de L<b>201. En realizaciones alternativas, el núcleo LB de una trama de audio puede incluir información diferente. La trama de audio 134 también puede incluir parámetros HB, denominados "HB Params". Los parámetros HB ocupan menos espacio que el núcleo Lb codificado e incluyen un conjunto de parámetros que pueden usarse por un decodificador, de acuerdo con un modelo de codificación de señal de audio, para reconstruir una porción HB de una trama de audio. En el ejemplo de la Figura 2, los parámetros HB pueden incluir una excitación transformada LB 202, una forma de ganancia HB 203, una trama de ganancia HB 204 y el(los)índice(s) LSP HB 205. En realizaciones alternativas, una trama de audio puede incluir diferentes parámetros HB.
En una realización particular, el(los) índice(s) LSP LB y la excitación LB 201, la excitación transformada LB 202, la forma de ganancia HB 203, la trama de ganancia HB 204 y el(los) índice(s) LSP HB 205 se generan durante el análisis de audio en un codificador (por ejemplo, el codificador 116 de la Figura 1 o un codificador 500 descrito con referencia a la Figura 5). Por ejemplo, una señal de audio puede pasar a través de un banco de filtro de análisis que separa la señal de audio en una señal LB y una señal HB. Las señales LB y HB pueden o no superponerse. La señal LB puede introducirse en un módulo de análisis LP que codifica una envolvente espectral de la señal LB como un conjunto de coeficientes LP (LPC). Un módulo de transformación puede transformar los LPC en LSP, que pueden alternativamente denominarse pares espectrales de línea (LSP). Un cuantificador puede cuantificar los<l>S<p>al identificar una entrada de un libro de códigos de LSP de LB que esté "más cerca" de los LSP. El cuantificador puede generar el índice de la entrada en el libro de códigos como el(los) índice(s) LSP LB mostrado(s) en 201. El módulo de análisis LB también puede generar la excitación LB mostrada en 201 y la excitación transformada LB 202. Por ejemplo, la excitación LB puede ser una señal codificada que se genera al cuantificar una señal residual LP generada durante el procedimiento LP realizado por el módulo de análisis LP. La señal residual LP puede representar un error de predicción.
Un módulo de análisis HB puede recibir la señal HB del banco de filtro de análisis y la señal de excitación de banda baja del módulo de análisis LB. El módulo de análisis HB puede generar el(los) índice(s) LSP HB 205 mediante el uso de un procedimiento de codificación, transformación y cuantificación LPC similar al procedimiento descrito para generar el(los) índice(s) LSP LB y la excitación LB 201. El(los) índice(s) LSP HB 205 pueden ocupar menos bits que el(los) índice(s) LSP LB. El módulo de análisis HB también puede generar la forma de ganancia HB 203 y la trama de ganancia HB 204. La forma de ganancia HB 203 y la trama de ganancia HB 204 pueden permitir que un decodificador (por ejemplo, el decodificador 126 de la Figura 1 o un decodificador descrito con referencia a la Figura 6) ajuste la forma de ganancia HB y la ganancia de trama para reproducir con mayor precisión la señal HB.
Cuando se habilita la comunicación de la información de codificación de trama redundante, la trama de audio 134 incluye además la información de codificación redundante LB 214 y la información de codificación redundante HB 210 para otra trama de audio. La trama de audio 134 también puede incluir un indicador de tipo de trama 215. Como se describe adicionalmente con referencia a las Figuras 5-6, en una realización ilustrativa el indicador de tipo de trama 215 es un indicador de 3 bits que indica un tipo de trama de la otra trama de audio e indica cuántos bits de la trama de audio 134 se asignan a la información de codificación redundante LB 214 y a la información de codificación redundante HB 210. En una realización particular, la información de codificación redundante LB 214 o la información de codificación redundante HB 210 pueden ser opcionales. La información de codificación redundante HB 210 puede incluir un indicador de forma de ganancia HB 211, un indicador de trama de ganancia HB 212 y un indicador lSp HB 213, como se muestra en la Figura 2. En realizaciones alternativas, la información de codificación HB 210 puede incluir un indicador diferente o una combinación de indicadores. Por ejemplo, el indicador LSP HB 213 puede incluirse en la información de codificación redundante HB 210 para comunicación de banda súper ancha, pero puede omitirse para comunicación de banda ancha. Como otro ejemplo, el indicador de forma de ganancia HB 211 y/o el indicador de trama de ganancia HB 212 pueden omitirse para ciertos tipos de tramas.
En una realización particular, el indicador de forma de ganancia HB 211 puede ser un indicador de un solo bit que se asocia con una forma de ganancia HB de una trama de audio anterior (por ejemplo, la trama<N>132). El codificador puede establecer un valor del indicador de forma de ganancia de HB 211 en base a una correlación entre las porciones de HB de la trama<N>132 y la trama<N+2>134. Por ejemplo, una correlación HB normalizada entre la trama<N>132 y la trama<N+2>134 puede estimarse en base a la fórmula:
YJxN{k)xN+2{k)
_k_______________
k
Dónde X<N>(k) es un valor de forma de ganancia kth para la trama Nth. En un ejemplo, puede usarse una ventana móvil de una o más subtramas para determinar cuatro valores de forma de ganancia por trama (por ejemplo, k varía de 1 a 4). Si el valor de correlación es mayor que un umbral (por ejemplo, 0,75), entonces el codificador establece el valor del indicador de forma de ganancia HB 211 en un primer valor (por ejemplo, GS_bit=1). Cuando el indicador de forma de ganancia HB 211 tiene el primer valor, el decodificador puede reutilizar la forma de ganancia HB 203 de la trama<N+2>134 como forma estimada de ganancia HB de la trama<N>132 durante la decodificación/reconstrucción de trama redundante de la trama<N>132. Si el valor de correlación es menor que el umbral, entonces el codificador establece el valor del indicador de forma de ganancia HB 211 en un segundo valor (por ejemplo, GS_bit=0). Cuando el indicador de forma de ganancia HB 211 tiene el segundo valor, el decodificador puede usar una forma de ganancia constante como forma de ganancia estimada, o puede realizar algún otro procedimiento(s) de predicción para estimar la forma de ganancia de la trama<N>132.
En una realización particular, el codificador puede determinar el valor del indicador de forma de ganancia de HB 211 en base a la distancia del índice del libro de códigos en lugar de, o además de, la correlación de forma de ganancia de HB. Por ejemplo, el codificador puede mantener o tener acceso a un libro de códigos de forma de ganancia HB que se usa para cuantificar la información de forma de ganancia HB 203. El codificador puede determinar un primer índice de libro de códigos asociado con la forma de ganancia HB de la trama<N>132 y un segundo índice de libro de códigos asociado con la forma de ganancia HB de la trama<N+2>134. El codificador puede establecer el valor del indicador de forma de ganancia HB 211 (por ejemplo, GS_bit=1 o GS_bit=0) en base a una distancia (por ejemplo, una distancia de error cuadrático medio) entre los índices del libro de códigos.
El indicador de trama de ganancia HB 212 puede ser un indicador de un solo bit o un indicador de múltiples bits. En una realización particular, el codificador ajusta dinámicamente el tamaño del indicador de trama de ganancia HB 212. Por ejemplo, puede usarse una red de conmutación de paquetes para transmitir varios tipos de tramas de audio, incluidas las tramas de audio sonoras, tramas de audio genéricas, tramas de audio de transición y tramas de audio sordas. Puede resultar útil usar un rango dinámico más amplio para la cuantificación de tramas de ganancia de tramas sordas que para tramas sonoras/genéricas/de transición. Una cuantificación de trama de ganancia más gruesa puede ser suficiente para representar eficazmente la relación de ganancia HB a LB para tramas sonoras/genéricas/de transición. Por lo tanto, si la trama<N>132 es una trama sorda, el codificador puede asignar un primer número mayor de bits (por ejemplo, de 3 a 6 bits) al indicador de trama de ganancia HB 212. Si la trama<N>132 no es una trama sorda, el codificador puede asignar un segundo número menor de bits (por ejemplo, 1 a 2 bits) al indicador de trama de ganancia HB 212.
En el ejemplo mostrado en la Figura 2, al indicador de trama de ganancia HB 212 se le asigna un número mayor de bits (por ejemplo, 3-6 bits). Por el contrario, la Figura 3 ilustra un ejemplo en el que a un indicador de trama de ganancia HB 312 se le asigna un número menor de bits (por ejemplo, 1-2 bits) que al indicador de trama de ganancia HB 212 de la Figura 2. Debido a que al indicador de trama de ganancia HB 312 se le asigna un número menor de bits, pueden estar disponibles bits adicionales para su uso en la representación de la información de codificación redundante LB 314, que es mayor que la información de codificación redundante LB 214 de la Figura 2. Alternativamente, los bits adicionales pueden asignarse al núcleo LB o a los parámetros HB de la trama<N+2>134. En las Figuras 2-3, esta flexibilidad en la asignación de bits se ilustra mediante el uso de tres líneas divisorias 250, 260 y 270. La primera línea divisoria 250 separa la información de codificación primaria de la información de codificación redundante y puede ajustarse hacia la izquierda y hacia la derecha a medida que un codificador ajusta dinámicamente la relación de bits de codificación primaria a bits de codificación redundante. La segunda línea divisoria 260 separa el núcleo LB y los parámetros HB dentro de la información de codificación primaria y puede ajustarse hacia arriba y hacia abajo a medida que un codificador ajusta dinámicamente la relación de bits de núcleo LB a bits de parámetros HB dentro de la información de codificación primaria. La tercera línea divisoria 270 separa la información de codificación redundante LB y la información de codificación redundante HB y puede ajustarse hacia arriba y hacia abajo a medida que un codificador ajusta dinámicamente la relación de bits redundantes HB con respecto a la de bits redundantes LB.
En una realización particular, el codificador puede ajustar dinámicamente el número de bits asignados a cada una de las cuatro porciones de la trama (por ejemplo, "mover" dinámicamente las líneas divisorias 250, 260 y/o 270) en base a una "criticidad" y/o tipo de trama de la trama<N>132 y/o la trama<N+2>134. Para ilustrar, las asignaciones de bits entre las cuatro partes de la trama pueden ser en base a equilibrar la criticidad de una trama anterior (para la cual se incluirá la información de codificación redundante en la trama) y la degradación del audio resultante de tener menos bits de la trama disponibles para representar la información de codificación primaria para la trama. La incapacidad de decodificar un determinado tipo de trama puede ser más perceptible para el oyente que la incapacidad de decodificar otro tipo de trama. Por tanto, ciertas tramas de una señal de audio pueden considerarse más "críticas" que otras tramas. Por ejemplo, una primera trama de un flujo de audio puede tener mayor "criticidad" que una segunda trama del flujo de audio cuando es más probable que una decodificación errónea de la primera trama cause artefactos de decodificación perceptibles que una decodificación errónea de la segunda trama. Se pueden asignar más bits a la información de codificación redundante para una trama crítica que los asignados a la información de codificación redundante para una trama no crítica. Alternativamente, o, además, se pueden asignar menos bits de una trama crítica a la información de codificación redundante que los asignados en una trama no crítica.
De acuerdo con la invención, las tramas de voz se clasifican en tipos de tramas "totalmente predictivas", "predicción lineal excitada por ruido (NELP)", "genéricas" y "no predictivas". Todas las tramas predictivas pueden corresponder a voz sonora y pueden constituir el 50 % o más de las tramas activas en una señal de audio correspondiente a la comunicación basada en voz. Las tramas NELP pueden corresponder a datos sordos y pueden constituir entre el 10 % y el 20 % de las tramas. El 30 %-40 % restante de las tramas pueden ser tramas genéricas o tramas no predictivas. Las tramas genéricas pueden ser tramas de modo mixto que incluyen tanto la información de libro de códigos adaptativo (ACB) como la información de libro de códigos fijo (FCB), tales como los índices de libros de códigos. Las tramas no predictivas pueden corresponder a transiciones de audio y pueden incluir la información FCB. Las tramas genéricas y no predictivas pueden ser más "autónomas" que todas las tramas predictivas y NELP. En consecuencia, si una trama genérica o no predictiva está dañada o no se recibe, un decodificador puede ser menos capaz de depender de otras tramas para regenerar la trama. En consecuencia, las tramas genéricas y no predictivas pueden considerarse más críticas, mientras que las tramas totalmente predictivas y NELP pueden considerarse menos críticas para esa trama en particular (el impacto de las tramas totalmente predictivas y NELP puede ser diferente para una trama futura).
En el ejemplo de la Figura 2, la trama<N+2>134 incluye la información de codificación redundante para la trama<N>132. Si la trama<N>132 se considera crítica, pueden asignarse bits adicionales a la información de codificación redundante (por ejemplo, la primera línea divisoria 250 puede ajustarse hacia la izquierda). Si la trama<N+2>134 se considera crítica, pueden asignarse menos bits a la información de codificación redundante (por ejemplo, la primera línea divisoria 250 puede ajustarse hacia la derecha), de manera que una degradación en la calidad de la trama<N+2>134 puede reducirse. Por lo tanto, en realizaciones donde la trama<N+2>134 se considera crítica y la trama<N>132 no se considera crítica, pueden asignarse pocos o cero bits para la información de codificación redundante. Por el contrario, en realizaciones donde la trama<N+2>134 no se considera crítica y la trama<N>132 se considera crítica, puede asignarse una gran cantidad de bits para la información de codificación redundante. Por consiguiente, el número de bits asignados a los parámetros HB, núcleo LB, la información de codificación redundante LB y/o información de codificación redundante HB puede determinarse en base a un tipo de trama<N>132 y/o un tipo de trama de la trama<N+2>134.
En una realización particular, cuando al indicador de trama de ganancia HB 212 se le asigna el primer número de bits (por ejemplo, 3-6 bits), el primer número de bits se usa para representar un índice de libro de códigos. Cuando al indicador de trama de ganancia HB 212 se le asigna el segundo número de bits (por ejemplo, 1 bit), el segundo número de bits se usa para indicar qué mitad del libro de códigos corresponde a la trama de ganancia HB de la trama<N>132.
Como ejemplo, con referencia a la Figura 4, las tramas de audio 131-134 pueden tener los valores de trama de ganancia h B 1,6, 3,6, 1,6 y 1,0, respectivamente, y el libro de códigos de trama de ganancia HB puede incluir 8 índices.
Si la trama<N>132 es una trama sorda, al indicador de trama de ganancia HB 212 se le asignan tres bits que se establecen en el valor "100", es decir, que es la representación binaria del índice 4 del libro de códigos correspondiente al valor de trama de ganancia HB de 3,6. De lo contrario, al indicador de trama de ganancia HB 212 se le asigna un bit que se establece en "1", lo que indica que el valor de trama de ganancia HB de 3,6 está en una primera porción (por ejemplo, la mitad superior, correspondiente a los índices 4-7) del libro de códigos. El valor se establecería en "0" si el valor de la trama de ganancia HB estuviera en una segunda porción (por ejemplo, la mitad inferior, correspondiente a los índices 0-3) del libro de códigos. El decodificador puede usar un valor de trama de ganancia HB para una trama anterior (por ejemplo, la trama<N-1>) junto con la información de que el valor de trama de ganancia HB para la trama<N>está en la mitad superior del libro de códigos para estimar un valor de trama de ganancia HB para la trama<N>.
Por lo tanto, en una realización particular, el indicador de trama de ganancia HB 212 puede asignarse y establecerse mediante un codificador de acuerdo con el siguiente pseudocódigo de estilo C:
/* Si el tipo de trama redundante es NELP */
Si (st->rf frame_type == RF_NELP)
{
/* Ganancia de trama; potencialmente codificado mediante el uso de 5 bits para tramas NELP */
Etapa 1: Descuantificar el índice de ganancia HB de la trama redundante;
Etapa 2: convertir la ganancia del log domian al valor real (es decir, 10Aganancia) si es necesario;
}
Por otra parte /* Si el tipo de trama redundante es ALL_PRED o GENERIC o NO_PRED */
{
smoothFactor = 0,0f;
/* Ganancia de trama */
cambiar (gainIndex) /* codificado mediante el uso de 2 bits */
{
caso 0:
GainFrame = 0,5f; /* si el índice de ganancia es 0 */
sí (ganancia de la trama anterior <= 1,25) { smoothFactor = 0,8f; }
interrumpir;
caso 1:
GainFrame = 2,0f; /* si el índice de ganancia es 1 */
sí (ganancia de la trama anterior > 1,25 && <= 3) { smoothFactor = 0,8f; }
interrumpir;
caso 2:
GainFrame = 4,0f; /* si el índice de ganancia es 2 */
sí (ganancia de la trama anterior > 3 && <= 6) { smoothFactor = 0,8f; }
interrumpir;
caso 3:
GainFrame = 8,0f; /* si el índice de ganancia es 3 */
sí (ganancia de la trama anterior > 6 && <= 16) { smoothFactor = 0,8f; }
interrumpir;
}
GainFrame = (1-smoothFactor) *GainFrame+smoothFactor*(ganancia de la trama anterior);
}
El indicador LSP HB 213 puede ser un indicador de un solo bit que informa a un receptor cómo derivar LSP HB de la trama<N>132. Para determinar el valor del indicador LSP HB 213, el codificador puede estimar una variación LSP HB entre tramas mediante el uso de una métrica de distorsión espectral entre la trama<N>132 y la trama<N+2>134. Alternativamente, o, además, se puede usar una distancia de índice de libro de códigos entre el(los) índice(s) LSP HB de las tramas de audio. Cuando la variación espectral entre la trama<N>y la trama<N+2>es menor que un umbral particular (por ejemplo, 2 decibeles (dB)), el codificador puede establecer el indicador LSP HB 213 en un primer valor (por ejemplo, HBLSP_bit=0). Cuando el indicador lSp HB 213 tiene el primer valor, el decodificador puede usar el(los) índice(s) LSP HB 205 de trama<N+2>como índice(s) LSP HB estimado de la trama<N>. Cuando la variación espectral es mayor o igual que el umbral particular (por ejemplo, 2 dB), el codificador puede establecer el indicador LSP HB 213 en un segundo valor (por ejemplo, HBLSP_bit=1). Cuando el indicador LSP HB 213 tiene el segundo valor, el decodificador puede derivar el(los) índice(s) LSP HB para la trama<N>por interpolación o extrapolación. Por ejemplo, si la variación espectral está dentro de un intervalo de umbral (por ejemplo, 2 dB < variación < 4 dB), el decodificador puede derivar el índice LSP HB para la trama<N>al interpolar LSP HB de la trama<N-1>a la trama<N+2>. Si la variación espectral está fuera del intervalo de umbral (por ejemplo, >= 4 dB), el decodificador puede derivar el índice LSP HB para la trama<N>al extrapolar de las tramas anteriores (por ejemplo, la trama<N-1>y la trama<N-2>).
En una realización alternativa, para establecer un valor del indicador LSP HB 213, un codificador puede determinar una diferencia (por ejemplo, delta) entre los LSP HB de la trama<N>y la trama<N+2>. El codificador puede establecer el valor del indicador lSp HB 213 en base a la diferencia, y el decodificador puede usar el valor del indicador LSP HB 213 para derivar los LSP HB de la trama<N>de los LSP HB de la trama<N+2>. En una realización alternativa, el indicador LSP HB 123 no se incluye en la información de codificación redundante.
Por lo tanto, como se describe con referencia a las Figuras 2-4, un codificador puede ajustar dinámicamente cuánto espacio ocupa la información de codificación redundante HB 210 y puede establecer valores de la información de codificación redundante HB 210 para permitir que un decodificador reconstruya una trama perdida (o una porción de la misma).
Con referencia a la Figura 5, se muestra una realización particular de un codificador 500. En una realización ilustrativa, el codificador 500 corresponde al codificador 116 de la Figura 1. El codificador 500 incluye dos rutas de codificación que funcionan en paralelo: una ruta de codificación primaria 510 y una ruta de codificación redundante 520 (alternativamente denominada "copia parcial"). Las rutas de codificación 510, 520 se acoplan a un enmarcador (o multiplexor de bits) 540. En la Figura 5, las rutas de codificación 510, 520 se configuran para comunicarse a través de una memoria compartida 530. La memoria compartida 530 puede corresponder a una memoria basada en caché, una memoria basada en registros u otra memoria de un procesador (por ejemplo, un DSP). En realizaciones alternativas, las rutas de codificación 510, 520 pueden comunicarse mediante el uso de otro mecanismo.
Durante la operación, los datos de trama para cada trama de audio a codificar pueden proporcionarse tanto a la ruta de codificación primaria 510 como a la ruta de codificación redundante 520. Por ejemplo, la Figura 5 ilustra que los datos de trama 501, 502, 503 y 504 para la trama<N-2>551, la trama<N>132, la trama<N+2>134, y la trama<N+4>554, respectivamente, se proporciona a ambas rutas de codificación 510, 520. Los datos de trama para tramas intermedias (por ejemplo, la trama<N-1>131, la trama<N+1>133, y la trama<N+3>) no se muestran para facilitar la ilustración. La ruta de codificación primaria 510 puede generar información de codificación primaria para tramas de audio y la ruta de codificación redundante 520 puede generar información redundante para tramas de audio. El multiplexor de bits o enmarcador 540 puede concatenar bits recibidos desde las rutas de codificación 510, 520 para generar tramas de audio codificadas. En el ejemplo de la Figura 5, el enmarcador 540 genera la trama<N-2>551, la trama<N>132, la trama<N+2>134, y la trama<N+4>554, cada una de las cuales se proporciona a un sistema de paquetización y transporte para comunicación con un dispositivo de destino.
Las operaciones de codificación realizadas por la ruta de codificación primaria 510 pueden depender de las operaciones de codificación realizadas por la ruta de codificación redundante 520, y viceversa. Para ilustrar, el codificador 500 puede codificar tramas de audio a una tasa de bits de 13,2 kbps y cada trama puede incluir 264 bits (en realizaciones alternativas, se puede usar una tasa de bits diferentes y un número diferente de bits). La ruta de codificación primaria 510 puede determinar cuántos de los 264 bits están disponibles para codificar la información de codificación primaria (por ejemplo, núcleo LB y parámetros HB) de una trama en base a cuántos bits usó la ruta de codificación redundante 520 para codificar la información de codificación redundante para una trama anterior. La ruta de codificación redundante 520 puede codificar la información de codificación redundante para una trama en base a los parámetros determinados por la ruta de codificación primaria 510 durante la codificación primaria de la trama. Por lo tanto, como se muestra al usar la memoria compartida 530 de la Figura 5, la ruta de codificación primaria 510 puede comunicar los parámetros LB/HB a la ruta de codificación redundante 520, y la ruta de codificación redundante 520 puede comunicar el número de bits usados para realizar la codificación redundante de una trama a la ruta de codificación primaria 510.
Cuando la ruta de codificación primaria 510 recibe los datos de trama 501 para la trama<N-2>551, la ruta de codificación primaria 510 puede determinar cuántos bits usó la ruta de codificación redundante 520 para realizar la codificación redundante de la trama<N-4>(no mostrada). En el ejemplo de la Figura 5, no se realizó la codificación redundante para la trama<N-4>. Por lo tanto, la ruta de codificación primaria 510 puede asignar los 264 bits disponibles a la información de codificación primaria generada a partir de los datos de trama 501, y la trama<N-2>551 puede incluir los 264 bits codificados recibidos desde la ruta de codificación primaria 510. Para ilustrar, como se describe con referencia a las Figuras 2-3, los 264 bits pueden incluir índices LSP, información ACB, información FCB, información de excitación, información de excitación transformada, información de forma de ganancia y/o información de trama de ganancia, entre otras alternativas. En paralelo con las operaciones realizadas por la ruta de codificación primaria 510 para los datos de trama 501, la ruta de codificación redundante 520 puede determinar cuántos bits usar para la codificación redundante de la trama<N-2>551. En el ejemplo de la Figura 5, la codificación redundante de la trama<N-2>551 no se realiza (por ejemplo, la trama<N-2>551 se considera "no crítica"). En una realización ilustrativa, la ruta de codificación redundante 520 determina cuántos bits usar para la codificación redundante de una trama en base a un tipo de trama de la trama. Por ejemplo, se pueden usar 41 bits para la codificación redundante de una trama NELP, se pueden usar 58 bits para la codificación redundante de una trama totalmente predictiva y se pueden usar 72 bits para la codificación redundante de una trama genérica (en realizaciones alternativas puede usarse un número diferente de bits para varios tipos de trama). La información de trama redundante LB/HB particular que se representa cuando se usan 41 bits, cuando se usan 58 bits, cuando se usan 72 bits, etc. puede especificarse en un estándar industrial (por ejemplo, el 3<er>Proyecto de Asociación de Generación (3GPP) (estándar EVS).
Cuando la ruta de codificación primaria 510 recibe los datos de trama 502 para la trama<N>132, la ruta de codificación primaria 510 puede determinar cuántos bits usó la ruta de codificación redundante 520 para realizar la codificación redundante de trama de la trama<N-2>551. Debido a que no se realizó la codificación redundante para la trama<N-2>551, la ruta de codificación primaria 510 puede usar los 264 bits disponibles para representar el núcleo LB y los parámetros HB derivados de los datos de trama 502, y la trama<N>132 emitida por el enmarcador 540 puede incluir los 264 bits codificados recibidos desde la ruta de codificación primaria 510. La ruta de codificación redundante 520 puede usar 41 bits para realizar la codificación redundante para la trama<N>132 (por ejemplo, la trama<N>132 puede ser una trama NELP). En particular, los 41 bits pueden usarse para representar ciertos parámetros LB/H<b>"críticos" que se determinan por la ruta de codificación primaria 510 durante la codificación primaria para la trama<N>132. Para ilustrar, como se describe con referencia a las Figuras 2-3, la información de codificación redundante puede incluir información de forma de ganancia, información de trama de ganancia y/o información LSP, entre otras alternativas. La codificación redundante de 41 bits para la trama<N>132 puede almacenarse (por ejemplo, en la memoria compartida 530) para uso posterior.
Cuando la ruta de codificación primaria 510 recibe los datos de trama 503 para la trama<N+2>134, la ruta de codificación primaria 510 puede determinar (por ejemplo, en base a los datos almacenados en la memoria compartida 530), que se usaron 41 bits para la codificación redundante de la trama<N>132. Por lo tanto, la ruta de codificación primaria 510 puede usar 264-41 = 223 bits para codificar la información del núcleo LB y de los parámetros HP para la trama<N+2>134. La ruta de codificación redundante 520 puede determinar usar 72 bits para realizar la codificación redundante para la trama<N+2>134 (por ejemplo, la trama<N+2>134 puede ser una trama genérica). La codificación redundante de 72 bits para la trama<N+2>134, que puede representar parámetros seleccionados para la trama<N+2>134 que están determinados por la ruta de codificación primaria 510, pueden almacenarse para uso posterior. El enmarcador 540 puede concatenar la codificación primaria de 223 bits recibida desde la ruta de codificación primaria 510 con la codificación redundante de 41 bits previamente almacenada para la trama<N>132 para generar la trama<N+2>134, como se muestra.
Cuando la ruta de codificación primaria 510 recibe los datos de trama 504 para la trama<N+4>554, la ruta de codificación primaria 510 puede determinar que se usaron 72 bits para la codificación redundante de trama<N+2>134. Por lo tanto, la ruta de codificación primaria 510 puede usar 264-72 = 192 bits para codificar la información del núcleo LB y de los parámetros HP para la trama<N+4>554. En paralelo, la ruta de codificación redundante 520 puede realizar la codificación redundante para la trama<N+4>554. El enmarcador 540 puede concatenar la codificación primaria de 192 bits recibida desde la ruta de codificación primaria 510 con la codificación redundante de 72 bits previamente almacenada para la trama<N+2>134 para generar la trama<N+4>554, como se muestra.
En una realización particular, los últimos tres bits de una trama codificada representan un indicador de tipo de trama para datos de codificación redundantes incluidos en la trama. Por ejemplo, ya que la trama<N-2>551 y la trama codificada<N>132 no incluyen ninguna información de codificación redundante para otra trama, los últimos tres bits de la trama<N-2>551 y la trama<N>132 pueden tener un primer valor (por ejemplo, 000). Debido a que la trama<N+2>134 incluye 41 bits de información de codificación redundante y la trama<N>es una trama NELP, los últimos tres bits de la trama<N+2>134 pueden tener un segundo valor (por ejemplo, 001 u otro valor único de 3 bits). Debido a que la trama<N+4>554 incluye 72 bits de información de codificación redundante y trama<N+2>134 es una trama genérica, los últimos tres bits de la trama<N+4>554 pueden tener un tercer valor (por ejemplo, 010 u otro valor único de 3 bits). Pueden usarse valores adicionales del indicador de tipo de trama de 3 bits para indicar otros tipos de trama y para señalar otra información (por ejemplo, copias parciales en el dominio de la frecuencia). Por lo tanto, en el ejemplo descrito, los últimos tres bits de cada trama indican un tipo de trama de una trama anterior y cuántos bits de la información de codificación redundante para la trama anterior se incluyen en la trama. En consecuencia, 261 bits de los 264 bits pueden compartirse entre la ruta de codificación primaria 510 y la ruta de codificación redundante 520, y los 3 bits restantes pueden reservarse para el indicador de tipo de trama redundante.
Las tramas de audio codificadas pueden transmitirse mediante un dispositivo fuente (por ejemplo, el primer dispositivo informático 110 de la Figura 1) a un dispositivo de destino (por ejemplo, el segundo dispositivo informático 120 de la Figura 1), que puede decodificar las tramas de audio recibidas. Por ejemplo, la Figura 6 ilustra una realización particular de un decodificador 600 que es operable para decodificar tramas de audio recibidas. El decodificador 600 puede corresponder al decodificador 126 de la Figura 1. El decodificador 600 incluye una memoria intermedia de eliminación de fluctuación 610 (por ejemplo, correspondiente a la memoria intermedia de eliminación de fluctuación 129 de la Figura 1). Mientras que el codificador 500 incluye las rutas de codificación paralelas 510-520, el decodificador 600 incluye una única ruta de decodificación 620.
A medida que un receptor recibe las tramas de audio, las tramas de audio pueden almacenarse en la memoria intermedia de eliminación de fluctuación 610. Como se describe con referencia a la Figura 1, debido a las condiciones de la red, las tramas enviadas por un dispositivo de origen a un dispositivo de destino pueden llegar fuera de orden, pueden estar dañadas o pueden no llegar en absoluto. La ruta de decodificación 620 puede recuperar las tramas de la memoria intermedia de eliminación de fluctuación 610 de acuerdo con una secuencia de tramas (por ejemplo, en base a los números de secuencia de tramas u otra información de secuenciación incluida en las tramas de audio). Por ejemplo, la ruta de decodificación 620 puede intentar recuperar y decodificar la trama<N-2>551 antes de la trama<N>132, la trama<N>132 antes de la trama<N+2>134, y la trama<N+2>134 antes de la trama<N+4>554. Para facilitar la ilustración, la decodificación de las tramas intermedias (por ejemplo, la trama<N-1>131, la trama<N+1>133, y la trama<N+3>) no se muestra en la Figura 6.
Para iniciar la decodificación de la trama<N-2>551, la ruta de decodificación 620 puede verificar si la trama<N-2>551 está disponible en la memoria intermedia de eliminación de fluctuación 610. En el ejemplo de la Figura 6, la trama<N-2>551 está disponible en la memoria intermedia de eliminación de fluctuación 610. La ruta de decodificación 620 puede determinar cuántos bits de la trama<N-2>551 se han usado para la información de codificación redundante de otra trama. Por ejemplo, en base a los últimos tres bits de la trama<N-2>134 que tiene el valor 000 (como se describe con referencia a la Figura 5), la ruta de decodificación 620 puede determinar que ningún bit de la trama<N-2>134 representa la información de trama redundante. Por lo tanto, la ruta de decodificación 620 puede recuperar los 261 bits de la trama<N-2>551, como se muestra en 651, y puede generar datos decodificados 601. Los datos decodificados 601 pueden proporcionarse a un dispositivo de salida (por ejemplo, un altavoz) para su reproducción. Se apreciará que en función de la calidad de la codificación realizada en el codificador 500 y la calidad de la decodificación realizada en el decodificador 600, los datos 601 pueden ser idénticos o una aproximación de los datos 501 de la Figura 5. Durante la decodificación de la trama<N-2>551 en base a los 261 bits primarios, los valores de los parámetros de decodificación particulares pueden almacenarse en una memoria de decodificación primaria 622 para su uso durante la decodificación de una trama posterior.
En el ejemplo de la Figura 6, la trama<N>132 no está disponible en la memoria intermedia de eliminación de fluctuación 610. Alternativamente, la ruta de decodificación 620 puede determinar que la trama<N>132 está disponible en la memoria intermedia de eliminación de fluctuación 610, pero puede ocurrir un error durante la decodificación de los bits primarios de la trama<N>132. En cualquier caso, la ruta de decodificación 620 puede verificar si la información de trama redundante para la trama<N>132 está disponible en la memoria intermedia de eliminación de fluctuación 610. Por ejemplo, en base a un desplazamiento conocido de 2 tramas entre la información de codificación primaria y la información de codificación redundante (en otras realizaciones pueden usarse otros desplazamientos, por ejemplo, 3 o 5 o 7), la ruta de decodificación 620 puede verificar si la trama<N+2>134 está disponible en la memoria intermedia de eliminación de fluctuación 610. Si la trama<N+2>134 tampoco está disponible, la ruta de decodificación 620 puede iniciar un procedimiento de ocultación de errores para generar los datos decodificados 602 para la trama<N>132. En el ejemplo de la Figura 6, sin embargo, la trama<N+2>134 está disponible en la memoria intermedia de eliminación de fluctuación 610. En base a los últimos tres bits de la trama<N+2>134 que tiene el valor 001 (como se describe con referencia a la Figura 5), la ruta de decodificación 620 puede determinar que 41 bits de la trama<N+2>134 representan la información de codificación redundante para la trama<N>132. La ruta de decodificación 620 puede recuperar los 41 bits de codificación redundantes para la trama<N>132, como se muestra en 652, y puede generar los datos 602. Por lo tanto, la ruta de decodificación 620 puede determinar cuántos bits de codificación redundantes están disponibles y recuperar los bits de codificación redundantes en base al número determinado (por ejemplo, cuando hay X bits de codificación redundantes disponibles, la ruta de decodificación 620 puede recuperar los últimos bits X de una trama o paquete que se almacena en la memoria intermedia de eliminación de fluctuación 610 asociada con un número de secuencia de paquete determinado por el OFFSET). En la Figura 6, los datos decodificados generados a partir de la información de trama redundante (por ejemplo, los datos 602) se muestran mediante el uso de un patrón sombreado. Durante la decodificación de la trama<N>132 en base a los 41 bits de información de codificación redundante, los valores de ciertos parámetros pueden almacenarse en una memoria de decodificación redundante 624 para su uso posterior. En una realización alternativa, la memoria de decodificación redundante 624 y la memoria de decodificación primaria 622 pueden superponerse o pueden ser iguales.
Por tanto, la ruta de decodificación 620 puede mantener las memorias separadas para decodificar en base a los bits primarios y decodificar en base a los bits redundantes. En una realización particular, los datos en la memoria de decodificación primaria 622 pueden usarse durante la decodificación de otros bits primarios, pero no durante la decodificación de los bits redundantes. De manera similar, los datos de la memoria de decodificación redundante 624 pueden usarse durante la decodificación de los bits redundantes, pero no durante la decodificación de los bits primarios. En una realización alternativa, los datos de la memoria de decodificación primaria 622 pueden usarse durante la decodificación de los bits redundantes y/o los datos de la memoria de decodificación redundante 624 pueden usarse durante la decodificación de los bits primarios. Por ejemplo, pueden usarse parámetros de múltiples tramas previamente decodificadas durante la interpolación y/o predicción de un parámetro para una trama "actual".
La ruta de decodificación 620 puede decodificar la trama<N+2>134 y la trama<N+4>554, que están disponibles en la memoria intermedia de eliminación de fluctuación 610, como se describe para la trama<N-2>551. En base a los últimos tres bits de la trama<N+2>134 que tiene el valor 001 (como se describe con referencia a la Figura 5), la ruta de decodificación 620 puede recuperar 264-41 = 223 bits primarios de la trama<N+2>134, como se muestra en 653, para generar datos decodificados 603. En base a los últimos tres bits de la trama<N+4>554 que tiene el valor 010 (como se describe con referencia a la Figura 5), la ruta de decodificación 620 puede recuperar 264-72 = 192 bits primarios de la trama<N+4>134, como se muestra en 653, para generar datos decodificados 604.
Se debe señalar que el decodificador 600 también puede usar un indicador de tipo de trama de la copia parcial cuando realiza operaciones de decodificación en condiciones de "canal limpio". Por ejemplo, cuando la trama<N>132 se recibe en la memoria intermedia de eliminación de fluctuación 610, es posible que no exista una condición de borrado de trama para la trama<N>132. No obstante, el decodificador 600 puede evaluar el indicador de tipo de trama para determinar cuántos bits de la trama<N+2>134 son bits de codificación primaria y cuántos bits de la trama<N+2>134 son bits de copia parcial para la trama<N>132. La ruta de decodificación 620 puede decodificar la trama<N+2>134 en base a los bits de codificación primaria. Los bits de copia parcial de la trama<N>132 pueden ser descartados, porque la trama<N>132 puede haberse recibido y decodificado exitosamente antes de decodificar la trama<N+2>134. Por lo tanto, el decodificador 600 puede procesar información de trama redundante en condiciones de canal ruidoso (durante las cuales una trama puede descartarse y reconstruirse), así como en condiciones de canal limpio.
Se debe señalar que, para facilitar la explicación, las rutas de codificación 510, 520 de la Figura 5 y la ruta de decodificación 620 de la Figura 6 se ilustran como componentes de bloque. Sin embargo, debe entenderse que la ruta de codificación primaria 510, la ruta de codificación redundante 520 y/o la ruta de decodificación 620 pueden incluir subcomponentes que son operables para realizar operaciones de codificación y/o decodificaciones descritas con referencia a las Figuras 1-4. Por ejemplo, una o más de las rutas 510, 520 o 620 pueden incluir un banco de filtros de análisis, un módulo de análisis l P, un módulo de transformación, un cuantificador, un módulo de análisis HB, ACB, FCB, etc. En realizaciones particulares, una o ambas rutas de codificación 510-520 pueden incluir componentes de decodificación que también están incluidos en la ruta de decodificación 620 (por ejemplo, como un "decodificador local" del codificador 500).
Por lo tanto, las Figuras 5-6 ilustran ejemplos de un codificador 500 y un decodificador 600 que pueden usarse para codificar y decodificar información de trama redundante. La comunicación de bits de codificación redundantes para una trama en una trama posterior puede mejorar la reconstrucción de audio (por ejemplo, síntesis) en un dispositivo de destino en presencia de condiciones adversas de la red. Por ejemplo, se pueden usar bits de codificación redundantes para reconstruir una trama cuando la trama no se recibe en un dispositivo de destino. Como otro ejemplo, cuando se produce un error al decodificar bits primarios para una trama, los bits de codificación redundantes para la trama pueden recuperarse de otra trama y pueden usarse en lugar de, o junto con, los bits primarios.
Con referencia a las Figuras 7-8, se muestra un diagrama de flujo de una realización particular de un procedimiento para decodificar una trama en base a la información de codificación redundante incluida en una trama posterior y generalmente se designa con 700. En una realización ilustrativa, el procedimiento 700 puede realizarse en un dispositivo de destino (por ejemplo, el segundo dispositivo informático 120 de la Figura 1) y/o un decodificador (por ejemplo, el decodificador 600 de la Figura 6).
El procedimiento 700 incluye recibir una segunda trama de audio en un decodificador (por ejemplo, a través de una red de conmutación de paquetes), en 702. La segunda trama de audio sigue a una primera trama de audio en una señal de audio. La segunda trama de audio incluye un primer número de bits asignados a la información de codificación primaria asociada con la segunda trama de audio, un segundo número de bits asignados a la información de codificación redundante asociada con la primera trama de audio y un indicador de un tipo de trama de la primera trama de audio. Por ejemplo, en la Figura 6, el decodificador 600 puede recibir la trama<N+2>134, que sigue a la trama<N>132 en una señal de audio.
El procedimiento 700 también incluye almacenar la segunda trama de audio en una memoria intermedia de eliminación de fluctuación, en 704. Por ejemplo, en la Figura 6, la trama<N+2>134 puede almacenarse en la memoria intermedia de eliminación de fluctuación 610. El procedimiento 700 incluye determinar si una condición de borrado de trama se asocia con la primera trama de audio, en 706. En respuesta a determinar que una condición de borrado de trama se asocia con la primera trama de audio (por ejemplo, la primera trama de audio se eliminó o se dañó debido a malas condiciones del canal), el procedimiento 700 incluye además determinar, en base al indicador, el segundo número de bits de la segunda trama de audio que se asigna a la información de codificación redundante asociada con la primera trama de audio, en 708. Por ejemplo, en la Figura 6, la ruta de decodificación 620 puede determinar que la trama<N>132 no está disponible en la memoria intermedia de eliminación de fluctuación 610 y puede determinar, en base a un indicador de tipo de trama en la trama<N+2>134, que los 41 bits de la trama<N+2>134 representan la información de codificación redundante para la trama<N>132.
El procedimiento 700 incluye decodificar la primera trama de audio en base a la información de codificación redundante, en 710. Por ejemplo, en la Figura 6, la ruta de decodificación 620 puede decodificar la trama faltante<N>132, o una aproximación de la misma, en base a los 41 bits de la información de codificación redundante incluidos en la trama<N+2>134.
Cuando una condición de borrado de trama no se asocia con la primera trama de audio, el procedimiento 700 incluye decodificar la primera trama de audio en base a la información de codificación primaria en la primera trama de audio, en 712. Por ejemplo, en condiciones de canal limpio, la trama<N>132 se puede haber recibido y almacenado previamente en la memoria intermedia de eliminación de fluctuación 610, y la ruta de decodificación 620 puede decodificar la trama<N>132 en base a los bits de codificación primaria de la trama<N>132.
Independientemente de si la primera trama de audio se decodifica mediante el uso de la información de codificación redundante o la información de codificación primaria, el procedimiento 700 puede incluir determinar, en base al indicador, el primer número de bits de la segunda trama de audio que se asigna a la información de codificación primaria asociada con la segunda trama de audio, en 714. El procedimiento 700 también puede incluir decodificar la segunda trama de audio en base a la información de codificación primaria, en 716.
Un ejemplo particular de una o más operaciones que pueden realizarse durante la decodificación de la primera trama de audio (por ejemplo, la trama<N>132) en base a la información de codificación redundante incluida en la segunda trama de audio (por ejemplo, la trama<N+2>134) se describe con más detalle con referencia a la Figura 8. Por lo tanto, pueden realizarse una o más operaciones ilustradas en la Figura 8 como parte de la operación 710 de la Figura 7. En algunas realizaciones, pueden omitirse una o más operaciones mostradas en la Figura 8. Se debe señalar que la Figura 8 ilustra la decodificación HB en base a la información de trama redundante. Aunque no se muestra en la Figura 8, la decodificación LB en base a la información de trama redundante también puede realizarse en un decodificador durante la operación 710 de la Figura 7.
El decodificador puede determinar un valor de un indicador de forma de ganancia incluido en la información de codificación redundante, en 810. Cuando el indicador de forma de ganancia tiene un primer valor, el decodificador puede usar la forma de ganancia de banda alta de la segunda trama de audio como la forma de ganancia estimada de la primera trama de audio, en 812. Por ejemplo, con referencia a las Figuras 2-3, el decodificador puede usar la forma de ganancia HB 203. Cuando el indicador de forma de ganancia tiene un segundo valor, el decodificador puede usar una forma de ganancia constante como forma de ganancia estimada o algún otro procedimiento de predicción para estimar la forma de ganancia de la primera trama de audio, en 814.
El decodificador también puede determinar cuántos bits se asignan a un indicador de trama de ganancia HB en la información de codificación redundante, en 820. Cuando se asigna un primer número (por ejemplo, mayor) de bits, el decodificador puede determinar una trama de ganancia HB de la primera trama de audio mediante el uso del indicador de trama de ganancia HB como índice del libro de códigos, en 822. Cuando se asigna un segundo número (por ejemplo, menor) de bits, tal como un solo bit, el decodificador puede determinar la trama de ganancia HB de la primera trama de audio al acceder a una porción indicada (por ejemplo, la mitad superior o inferior) del libro de códigos, en 824.
El decodificador puede determinar además un valor de un indicador LSP HB, en 830. Cuando el indicador LSP HB tiene un primer valor, el decodificador puede usar el(los) índice(s) LSP HB (o LSP HB) de la segunda trama de audio como índice(s) LSP HB (o LSP HB) estimado(s) de la primera trama de audio, en 832. Cuando el indicador LSP HB tiene un segundo valor, el decodificador puede determinar si una distorsión espectral entre la primera y la segunda trama de audio está dentro de un intervalo de umbral, en 834. Cuando la distorsión espectral está dentro del intervalo de umbral, el decodificador puede determinar el índice(s) LSP HB (o LSP HB) de la primera trama de audio mediante interpolación (por ejemplo, al interpolar entre la trama<N-1>131 y la trama<N+2>134), en 836. Cuando la distorsión espectral está fuera del intervalo de umbral, el decodificador puede determinar los índices LSP HB (o LSP HB) de la primera trama de audio mediante extrapolación (por ejemplo, al extrapolar la trama<N-2>551 y la trama<N-1>131), en 838.
En realizaciones particulares, el procedimiento 700 de las Figuras 7-8 puede implementarse mediante hardware (por ejemplo, un dispositivo FPGA, un ASIC, etc.) de una unidad de procesamiento tal como una CPU, un DSP o un controlador, mediante un dispositivo de firmware, o cualquiera de sus combinaciones. Como ejemplo, el procedimiento 700 de las Figuras 7-8 puede realizarse por un procesador que ejecuta instrucciones, como se describe con respecto a la Figura 10.
Con referencia a la Figura 9, se muestra un diagrama de flujo de una realización particular de un procedimiento para codificar la información de codificación redundante para una trama en una trama posterior y se designa generalmente con 900. En una realización ilustrativa, el procedimiento 900 puede realizarse en un dispositivo fuente (por ejemplo, el primer dispositivo informático 110 de la Figura 1) y/o un codificador (por ejemplo, el codificador 500 de la Figura 5).
El procedimiento 900 incluye codificar y transmitir una primera trama de audio de una señal de audio, en 902. Por ejemplo, en la Figura 5, el codificador 500 puede codificar y transmitir la trama<N>132. El procedimiento 900 también incluye determinar, en base a un tipo de trama de la primera trama de audio, un primer número de bits de una segunda trama de audio para asignarlo a la información de codificación primaria asociada con la segunda trama de audio, en 904. La segunda trama de audio sigue a la primera trama de audio en la señal de audio. También se determina un segundo número de bits de la segunda trama de audio para asignarlo a la información de codificación redundante asociada con la primera trama de audio. Por ejemplo, como se muestra en la Figura 5, el codificador puede determinar, en base a un tipo de trama de la trama<N>132, que los 41 bits de la trama<N+2>134 deben asignarse a la información de codificación redundante para la trama<N>132 y que los 223 bits de la trama<N+2>134 deben asignarse a la información de codificación primaria para la trama<N+2>134.
El procedimiento 900 incluye codificar la segunda trama de audio, en 906. La segunda trama de audio incluye el primer número de bits de la información de codificación primaria, el segundo número de bits de la información de codificación redundante y un indicador del tipo de trama de la primera trama de audio.
Por ejemplo, un codificador puede establecer un valor de un indicador de forma de ganancia de un solo bit, en 908. El valor puede establecerse en base a una correlación entre las porciones HB de la primera y segunda trama de audio y/o una distancia entre los índices del libro de códigos asociados con las formas de ganancia HB de la primera y segunda trama de audio.
El codificador puede asignar un número particular de bits a un indicador de trama de ganancia HB, en 910. El número particular de bits puede determinarse en base a si la primera trama de audio es una trama sorda. El codificador también puede establecer los bits asignados a un valor particular en base a un libro de códigos (por ejemplo, el libro de códigos de trama de ganancia HB mostrado en la Figura 4).
El codificador puede establecer un valor de un indicador LSP HB de un solo bit en base a una distorsión espectral entre la primera y segunda trama de audio y/o una distancia entre los índices del libro de códigos asociados con los LSP HB de la primera y segunda trama de audio, en 912. Alternativamente, el codificador puede determinar una diferencia (por ejemplo, delta) entre los LSP de banda alta de la primera y segunda trama de audio y establecer un valor del indicador LSP HB en base a la diferencia, en 914. En realizaciones alternativas, el codificador puede determinar diferente información de codificación redundante. Además, se debe señalar que los ejemplos antes mencionados de ciertos tipos de indicadores que son de un solo bit o de varios bits son sólo a manera de ejemplo y no deben considerarse limitativos. En realizaciones alternativas, se pueden representar diferentes tipos de información de codificación primaria y/o redundante mediante el uso de un número diferente de bits.
El procedimiento 900 incluye además transmitir la segunda trama de audio, en 916. Por ejemplo, en la Figura 1, el transmisor 118 puede transmitir la trama<N+2>134 al receptor 128, donde la trama<N+2>134 incluye la información de codificación redundante para la trama<N>132.
En realizaciones particulares, el procedimiento 900 de la Figura 9 puede implementarse mediante hardware (por ejemplo, un dispositivo FPGA, un ASIC, etc.) de una unidad de procesamiento tal como una CPU, un DSP o un controlador, mediante un dispositivo de firmware, o cualquiera de sus combinaciones. Como ejemplo, el procedimiento 900 de la Figura 9 puede realizarse por un procesador que ejecuta instrucciones, como se describe con respecto a la Figura 10.
Se debe señalar que el orden de las operaciones ilustradas en las Figuras 7-9 tiene fines ilustrativos únicamente y no debe considerarse limitativo. En realizaciones alternativas, ciertas operaciones pueden realizarse en un orden diferente y/o pueden realizarse al mismo tiempo entre si (o al menos parcialmente al mismo tiempo).
Con referencia a la Figura 10, se representa un diagrama de bloques de una realización ilustrativa particular de un dispositivo de comunicación inalámbrica y se designa generalmente como 1000. El dispositivo 1000 incluye un primer procesador 1010 (por ejemplo, una CPU) acoplado a una memoria 1032 (por ejemplo, un dispositivo de almacenamiento legible por ordenador). El dispositivo 1000 también incluye un segundo procesador 1080 (por ejemplo, un DSP). La memoria 1032 puede incluir instrucciones 1060 ejecutables por el primer procesador 1010 y/o el segundo procesador 1080 para realizar los procedimientos y procesos divulgados en la presente memoria, tales como los procedimientos de las Figuras 7-9.
El segundo procesador 1080 puede incluir un codificador de voz 1087, un decodificador de voz 1088 y una memoria 1085 que almacena uno o más libros de códigos 1086 (por ejemplo, un libro de códigos LSP LB, un libro de códigos LSP HB, un libro de códigos de forma de ganancia HB, una trama de ganancia HB libro de códigos, etc.). Uno o más libros de códigos 1086 pueden incluir ACB, FCB o ambos. En una realización ilustrativa, el codificador de voz 1087 es el codificador 116 de la Figura 1 y/o el codificador 500 de la Figura 5, el decodificador de voz 1088 es el decodificador 126 de la Figura 1 y/o el decodificador 600 de la Figura 6, y la memoria 1085 incluye la memoria intermedia de eliminación de fluctuación 129 de la Figura 1, la memoria compartida 530 de la Figura 6 y/o la memoria intermedia de eliminación de fluctuación 610 de la Figura 6. En realizaciones alternativas, el codificador de voz 1087 y/o el decodificador de voz 1088 pueden ser externos al segundo procesador 1088 (por ejemplo, pueden incluirse en el primer procesador 1010 o en un procesador o bloque de hardware diferente). El codificador de voz 1087 y el decodificador de voz 1088 pueden implementarse mediante hardware dedicado (por ejemplo, circuitos), mediante un procesador que ejecuta instrucciones para realizar una o más tareas, o una combinación de estas. Como ejemplo, la memoria 1032 o la memoria 1085 pueden ser un dispositivo de memoria, tales como una memoria de acceso aleatorio (RAM), una memoria de acceso aleatorio magnetorresistente (MRAM), MRAM de par de transferencia de giro (STT-MRAM), memoria flash, memoria de solo lectura (ROM), memoria de solo lectura programable (PROM), memoria de solo lectura programable y borrable (EPROM), memoria de solo lectura programable y borrable electrónicamente (EEPROM), registros, disco duro, un disco extraíble o una memoria de disco óptico (por ejemplo, disco compacto de memoria de solo lectura (CD-ROM), disco de vídeo digital (DVD), disco Blu-ray, etc.). El dispositivo de memoria puede incluir instrucciones (por ejemplo, las instrucciones 1060) que, cuando las ejecuta un ordenador (por ejemplo, el primer procesador 1010 y/o el segundo procesador 1080), hacen que el ordenador realice varias operaciones descritas en la presente memoria.
La Figura 10 también muestra un controlador de pantalla 1026 que se acopla al primer procesador 1010 y a una pantalla 1028. Un codificador/descodificador (CODEC) 1034 puede acoplarse al primer procesador 1010 y al segundo procesador 1080, como se muestra. Un altavoz 1036 y un micrófono 1038 pueden acoplarse al CODEC 1034. En una realización particular, el CODEC 1034 es un componente frontal de procesamiento de audio analógico. Por ejemplo, el CODEC 1034 puede realizar ajuste de ganancia analógica y configuración de parámetros para señales recibidas desde el micrófono 1038 y señales transmitidas al altavoz 1036. El CODEC 1034 también puede incluir convertidores analógico-digital (A/D) y digital-analógico (D/A). En un ejemplo particular, el CODEC 1034 también incluye uno o más moduladores y filtros de procesamiento de señales. En realizaciones seleccionadas, el CODEC 1034 incluye una memoria para almacenar en la memoria intermedia los datos de entrada recibidos desde el micrófono 1038 y para almacenar en la memoria intermedia los datos de salida que se proporcionarán al altavoz 1036.
La Figura 10 también indica que puede acoplarse un controlador inalámbrico 1040 al primer procesador 1010 y a una antena 1042. En una realización particular, el primer procesador 1010, el segundo procesador 1080, el controlador de visualización 1026, la memoria 1032, el CODEc 1034 y el controlador inalámbrico 1040 se incluyen en un dispositivo de sistema en paquete o sistema en chip (por ejemplo, un módem de estación móvil (MSM)) 1022. En una realización particular, un dispositivo de entrada 1030, tal como una pantalla táctil y/o un teclado, y una fuente de alimentación 1044 se acoplan al dispositivo de sistema en chip 1022. Además, en una realización particular, como se ilustra en la Figura 10, la pantalla 1028, el dispositivo de entrada 1030, el altavoz 1036, el micrófono 1038, la antena 1042 y la fuente de alimentación 1044 son externos al dispositivo de sistema en chip 1022. Sin embargo, cada uno de la pantalla 1028, el dispositivo de entrada 1030, el altavoz 1036, el micrófono 1038, la antena 1042 y la fuente de alimentación 1044 pueden acoplarse a un componente del dispositivo de sistema en chip 1022, tal como una interfaz o un controlador.
Junto con las realizaciones descritas, se divulga un aparato que incluye medios para recibir una segunda trama de audio, donde la segunda trama de audio sigue a una primera trama de audio en una señal de audio. La segunda trama de audio incluye un primer número de bits asignados a la información de codificación primaria asociada con la segunda trama de audio, un segundo número de bits asignados a la información de codificación redundante asociada con la primera trama de audio y un indicador de un tipo de trama de la primera trama de audio. Por ejemplo, los medios para recibir pueden incluir el receptor 128 de la Figura 1, la antena 1042 de la Figura 10, el controlador inalámbrico 1040 de la Figura 10, uno o más dispositivos configurados para recibir una trama de audio, o cualquiera de sus combinaciones. El aparato también puede incluir medios para determinar, en base al indicador, el segundo número de bits de la segunda trama de audio que se asigna a la información de codificación redundante asociada con la primera trama de audio. Por ejemplo, los medios para determinar pueden incluir el procesador 122 de la Figura 1, el decodificador 126 de la Figura 1, el decodificador 600 de la Figura 6, el primer procesador 1010 de la Figura 10, el segundo procesador 1080 de la Figura 10, el decodificador de voz 1088 de la Figura 10, uno o más dispositivos configurados para determinar un número de bits asignado a la información de codificación redundante, o cualquiera de sus combinaciones. El aparato también puede incluir medios para decodificar la primera trama de audio en base a la información de codificación redundante. Por ejemplo, los medios para decodificar pueden incluir el decodificador 126 de la Figura 1, el decodificador 600 de la Figura 6, el primer procesador 1010 de la Figura 10, el segundo procesador 1080 de la Figura 10, el decodificador de voz 1088 de la Figura 10, uno o más dispositivos configurados para decodificar una trama de audio en base a la información de codificación redundante, o cualquier combinación de los mismos.
Se divulga un segundo aparato que incluye medios para codificar una primera trama de audio y una segunda trama de audio de una señal de audio, donde la segunda trama de audio sigue a una primera trama de audio en una señal de audio. Por ejemplo, los medios para codificar pueden incluir el codificador 116 de la Figura 1, el codificador 500 de la Figura 5, el primer procesador 1010 de la Figura 10, el segundo procesador 1080 de la Figura 10, el codificador de voz 1087 de la Figura 10, uno o más dispositivos configurados para codificar una trama de audio, o cualquiera de sus combinaciones. El aparato también puede incluir medios para determinar, en base a un tipo de trama de la primera trama de audio, un primer número de bits de la segunda trama de audio para asignar a la información de codificación primaria asociada con la segunda trama de audio y un segundo número de bits de la segunda trama de audio para asignar a la información de codificación redundante asociada con la primera trama de audio. Por ejemplo, los medios para determinar pueden incluir el procesador 112 de la Figura 1, el codificador 116 de la Figura 1, el codificador 500 de la Figura 1, el primer procesador 1010 de la Figura 10, el segundo procesador 1080 de la Figura 10, el codificador de voz 1087 de la Figura 10, uno o más dispositivos configurados para determinar los bits asignados a la información de codificación primaria y a la información de codificación redundante, o cualquier combinación de los mismos. El aparato también puede incluir medios para transmitir la primera trama de audio y la segunda trama de audio a un dispositivo de destino. La segunda trama de audio incluye el primer número de bits de la información de codificación primaria, el segundo número de bits de la información de codificación redundante y un indicador del tipo de trama de la primera trama de audio. Por ejemplo, los medios para transmitir pueden incluir el transmisor 118 de la Figura 1, la antena 1042 de la Figura 10, el controlador inalámbrico 1040 de la Figura 10, uno o más dispositivos configurados para transmitir una trama de audio, o cualquiera de sus combinaciones.
Los expertos en la técnica apreciarán además que los diversos bloques lógicos, configuraciones, módulos, circuitos, y etapas de algoritmos ilustrativos descritos en relación con las realizaciones divulgadas en la presente memoria pueden implementarse como hardware electrónico, software informático ejecutado por un dispositivo de procesamiento tal como un procesador de hardware, o combinaciones de ambos. Varios componentes, bloques, configuraciones, módulos, circuitos, y etapas ilustrativas se han descrito anteriormente de manera general en términos de su funcionalidad. El hecho de que dicha funcionalidad se implemente como hardware o software ejecutable depende de la aplicación particular y de las restricciones de diseño impuestas en el sistema general. Los expertos en la técnica pueden implementar la funcionalidad descrita de diversos modos para cada aplicación particular, pero tales decisiones de implementación no deben interpretarse como que provocan una desviación del ámbito de la presente divulgación.
Las etapas de un procedimiento o algoritmo descrito en relación con las realizaciones divulgadas en la presente memoria pueden llevarse a la práctica directamente en el hardware, en un módulo de software ejecutado por un procesador, o en una combinación de los dos. Un módulo de software puede residir en un dispositivo de memoria (por ejemplo, un dispositivo de almacenamiento legible por ordenador o por procesador), tal como RAM, MRAM, STT-MRAM, memoria flash, ROM, PROM, EPROM, EEPROM, registros, disco duro, un disco extraíble o una memoria de disco óptico. Un dispositivo de memoria ilustrativo se acopla al procesador de manera que el procesador pueda leer la información desde, y escribir la información en, el dispositivo de memoria. Como alternativa, el dispositivo de memoria puede estar integrado al procesador. El procesador y el medio de almacenamiento pueden encontrarse en un ASIC. El ASIC puede residir en un dispositivo informático o terminal de usuario. Como alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en un dispositivo informático o un terminal de usuario. Un dispositivo de almacenamiento legible por ordenador o por procesador no es una señal.
La descripción anterior de las realizaciones divulgadas se proporciona para permitir que un experto en la técnica realice o use las realizaciones divulgadas. Varias modificaciones a estas realizaciones serán evidentes para los expertos en la técnica, y los principios definidos en la presente memoria pueden aplicarse a otras realizaciones sin apartarse del ámbito de la divulgación. Por lo tanto, la presente divulgación no pretende limitarse a las realizaciones mostradas en la presente memoria, sino que se debe acordar el mayor ámbito posible acorde con los principios y novedosas características como se define por las reivindicaciones.

Claims (14)

REIVINDICACIONES
1. Un procedimiento para decodificar una trama realizada en un decodificador de un dispositivo informático, comprendiendo el procedimiento:
recibir una segunda trama de audio (134), en el que la segunda trama de audio sigue a una primera trama de audio (131 a 133) en una señal de audio, en el que la segunda trama de audio (134) incluye un primer número de bits asignado a la información de codificación primaria asociada con la segunda trama de audio (134), un segundo número de bits asignado a la información de codificación redundante (210, 214) asociada con la primera trama de audio (131 a 133), y un indicador (215) de un tipo de trama de la primera trama de audio (131 a 133), en el que el indicador (215) del tipo de trama de la primera trama de audio (131 a 133) indica una categoría de trama a la que pertenece la primera trama de audio (131 a 133) seleccionada de una pluralidad de categorías que incluyen: i) una trama totalmente predictiva, ii) una trama de predicción lineal excitada por ruido, iii) una trama no predictiva, y iv) una trama que no lleva información de codificación redundante; y
en respuesta a una condición de borrado de trama asociada con la primera trama de audio: determinar, en base al indicador (215) del tipo de trama de la primera trama de audio (131 a 134) que se incluye en la segunda trama de audio (134), el segundo número de bits de la segunda trama de audio (134) que se asigna a la información de codificación redundante (210, 214) asociada con la primera trama de audio (131 a 134) y decodificar la primera trama de audio en base a la información de codificación redundante.
2. El procedimiento de la reivindicación 1, en el que la información de codificación redundante (210, 214) incluye un indicador del par espectral de líneas de banda alta, LSP, (213) asociado con los LSP de banda alta de la primera trama de audio, en el que el indicador LSP de banda alta incluye uno o más bits que tienen un valor particular que indica una operación particular que debe realizar el decodificador para generar los LSP de banda alta para la primera trama de audio.
3. El procedimiento de la reivindicación 2, que comprende, además:
en respuesta a determinar que uno o más bits del indicador LSP de banda alta (213) indican un primer valor, usar LSP de banda alta de la segunda trama de audio como LSP de banda alta estimados de la primera trama de audio; y
en respuesta a determinar que uno o más bits del indicador LSP de banda alta (213) indican un segundo valor, determinar los LSP de banda alta estimados de la primera trama de audio en base a: i) interpolación de los LSP de banda alta de la segunda trama de audio y LSP de banda alta de al menos una trama de audio que precede a la primera trama de audio, o ii) extrapolación de LSP de banda alta de una pluralidad de tramas de audio que preceden a la primera trama de audio.
4 El procedimiento de la reivindicación 2, en el que uno o más bits del indicador LSP de banda alta (213) indican una diferencia entre los LSP de banda alta de la primera trama de audio y los LSP de banda alta de la segunda trama de audio.
5 El procedimiento de la reivindicación 1, en el que un indicador de tipo de trama (215) de la primera trama de audio (131 a 133) se incluye en los últimos tres bits de la segunda trama de audio, en el que los últimos tres bits de la segunda trama de audio indican un número de bits de la información de codificación redundante (210, 214) que se incluyen en la segunda trama de audio, en el que la segunda trama de audio incluye dos bits que preceden a los últimos tres bits, y en el que los dos bits que preceden a los últimos tres bits indican un desplazamiento entre la primera trama de audio y la segunda trama de audio.
6 El procedimiento de la reivindicación 1, en el que la condición de borrado de la trama corresponde a una determinación de que el decodificador no puede decodificar al menos una porción de la primera trama de audio o que el dispositivo informático no recibió la porción de la primera trama de audio, comprendiendo el procedimiento además regenerar una señal correspondiente a la primera trama de audio en base a la información de codificación redundante.
7 El procedimiento de la reivindicación 1, en el que:
la información de codificación primaria incluye un núcleo de banda baja codificado de la segunda trama de audio y parámetros de banda alta de la segunda trama de audio; y
la información de codificación redundante se asocia con un núcleo de banda baja codificado de la primera trama de audio y parámetros de banda alta de la primera trama de audio.
8 El procedimiento de la reivindicación 1, en el que la información de codificación redundante (210, 214) incluye un indicador de forma de ganancia (211) asociado con una forma de ganancia de banda alta (203) de la primera trama de audio, y en el que el procedimiento comprende, además:
i) en respuesta a determinar que el indicador de forma de ganancia (211) tiene un primer valor, usar una forma de ganancia de banda alta de la segunda trama de audio como una forma de ganancia de banda alta estimada de la primera trama de audio; y
ii) en respuesta a determinar que el indicador de forma de ganancia (211) tiene un segundo valor, usar una forma de ganancia constante como forma de ganancia de banda alta estimada de la primera trama de audio.
9 El procedimiento de la reivindicación 1, en el que la información de codificación redundante (210, 214) incluye un indicador de trama de ganancia de banda alta (212) asociado con una trama de ganancia de banda alta de la primera trama de audio, en el que el indicador de trama de ganancia de banda alta:
i) representa un índice de libro de códigos; o
ii) indica si la trama de ganancia de banda alta de la primera trama de audio corresponde a un índice de libro de códigos en una primera porción de un libro de códigos correspondiente a índices de libros de códigos altos o en una segunda porción del libro de códigos correspondiente a índices de libros de códigos bajos.
10 Un aparato, que comprende:
un receptor configurado para recibir una segunda trama de audio (134) que sigue a una primera trama de audio (131 a 133) en una señal de audio, en el que la segunda trama de audio incluye un primer número de bits asignado a la información de codificación primaria asociada con la segunda trama de audio, un segundo número de bits asignado a la información de codificación redundante (210, 214) asociada con la primera trama de audio, y un indicador (215) de un tipo de trama de la primera trama de audio (131 a 134), en el que el indicador (215) del tipo de trama de la primera trama de audio (131 a 133) indica una categoría de trama a la que pertenece la primera trama de audio (131 a 133) seleccionada de una pluralidad de categorías que incluyen: i) una trama totalmente predictiva, ii) una trama de predicción lineal excitada por ruido, iii) una trama no predictiva, y iv) una trama que no lleva información de codificación redundante; y un decodificador configurado para, en respuesta a una condición de borrado de trama asociada con la primera trama de audio, determinar, en base al indicador (215) del tipo de trama de la primera trama de audio (131 a 134) que se incluye en la segunda trama de audio (134), el segundo número de bits de la segunda trama de audio que se asigna a la información de codificación redundante asociada con la primera trama de audio, y decodifican la primera trama de audio en base a la información de codificación redundante (210, 214).
11 El aparato de la reivindicación 10, en el que la información de codificación redundante (210, 214) incluye un par espectral de línea de banda alta, LSP, el indicador (213) asociado con los LSP de banda alta de la primera trama de audio, en el que el indicador LSP de banda alta incluye uno o más bits que tienen un valor particular que indica una operación particular que debe realizar el decodificador para generar los LSP de banda alta para la primera trama de audio.
12 El aparato de la reivindicación 10, en el que un indicador de tipo de trama (215) de la primera trama de audio (131 a 133) se incluye en los últimos tres bits de la segunda trama de audio, en el que los últimos tres bits de la segunda trama de audio indican un número de bits de la información de codificación redundante (210, 214) que se incluyen en la segunda trama de audio, en el que la segunda trama de audio incluye dos bits que preceden a los últimos tres bits, y en el que los dos bits que preceden a los últimos tres bits indican un desplazamiento entre la primera trama de audio y la segunda trama de audio.
13 El aparato de la reivindicación 10, en el que la condición de borrado de trama corresponde a una determinación de que el decodificador no puede decodificar al menos una porción de la primera trama de audio o que el dispositivo informático no recibió la porción de la primera trama de audio, y en el que el decodificador se configura además para regenerar una señal correspondiente a la primera trama de audio en base a la información de codificación redundante.
14 Un medio legible por ordenador que comprende instrucciones que, cuando se ejecutan por un ordenador, hacen que el ordenador realice el procedimiento de acuerdo con cualquiera de las reivindicaciones 1 a 9.
ES20168837T 2013-10-11 2014-10-09 Sistemas y procedimientos de comunicación de información de trama redundante Active ES2967136T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361890092P 2013-10-11 2013-10-11
US14/509,817 US10614816B2 (en) 2013-10-11 2014-10-08 Systems and methods of communicating redundant frame information

Publications (1)

Publication Number Publication Date
ES2967136T3 true ES2967136T3 (es) 2024-04-26

Family

ID=52810405

Family Applications (2)

Application Number Title Priority Date Filing Date
ES20168837T Active ES2967136T3 (es) 2013-10-11 2014-10-09 Sistemas y procedimientos de comunicación de información de trama redundante
ES14789469T Active ES2805849T3 (es) 2013-10-11 2014-10-09 Sistemas y procedimientos de comunicación de información de trama redundante

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES14789469T Active ES2805849T3 (es) 2013-10-11 2014-10-09 Sistemas y procedimientos de comunicación de información de trama redundante

Country Status (20)

Country Link
US (2) US10614816B2 (es)
EP (2) EP3700111B1 (es)
JP (2) JP6553025B2 (es)
KR (1) KR102229487B1 (es)
CN (1) CN105594148B (es)
AU (1) AU2014331824B2 (es)
BR (1) BR112016007940B1 (es)
CA (1) CA2925582C (es)
CL (1) CL2016000833A1 (es)
DK (1) DK3055939T3 (es)
ES (2) ES2967136T3 (es)
HU (1) HUE049089T2 (es)
MX (1) MX365608B (es)
MY (1) MY179633A (es)
PH (1) PH12016500652B1 (es)
RU (1) RU2673847C2 (es)
SA (1) SA516370874B1 (es)
SG (1) SG11201601782VA (es)
WO (1) WO2015054512A1 (es)
ZA (1) ZA201602114B (es)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2527365B (en) 2014-06-20 2018-09-12 Starleaf Ltd A telecommunication end-point device data transmission controller
TWI602172B (zh) * 2014-08-27 2017-10-11 弗勞恩霍夫爾協會 使用參數以加強隱蔽之用於編碼及解碼音訊內容的編碼器、解碼器及方法
US9948578B2 (en) * 2015-04-14 2018-04-17 Qualcomm Incorporated De-jitter buffer update
WO2017000117A1 (zh) 2015-06-29 2017-01-05 华为技术有限公司 数据处理的方法及接收设备
US10504525B2 (en) * 2015-10-10 2019-12-10 Dolby Laboratories Licensing Corporation Adaptive forward error correction redundant payload generation
US10049682B2 (en) * 2015-10-29 2018-08-14 Qualcomm Incorporated Packet bearing signaling information indicative of whether to decode a primary coding or a redundant coding of the packet
US10049681B2 (en) * 2015-10-29 2018-08-14 Qualcomm Incorporated Packet bearing signaling information indicative of whether to decode a primary coding or a redundant coding of the packet
JP6409812B2 (ja) * 2016-04-01 2018-10-24 横河電機株式会社 冗長化装置、冗長化システム、及び冗長化方法
CN108011686B (zh) * 2016-10-31 2020-07-14 腾讯科技(深圳)有限公司 信息编码帧丢失恢复方法和装置
CN106710606B (zh) * 2016-12-29 2019-11-08 百度在线网络技术(北京)有限公司 基于人工智能的语音处理方法及装置
US20190051286A1 (en) * 2017-08-14 2019-02-14 Microsoft Technology Licensing, Llc Normalization of high band signals in network telephony communications
CA3074749A1 (en) * 2017-09-20 2019-03-28 Voiceage Corporation Method and device for allocating a bit-budget between sub-frames in a celp codec
US10475456B1 (en) * 2018-06-04 2019-11-12 Qualcomm Incorporated Smart coding mode switching in audio rate adaptation
EP4035289A1 (en) 2019-09-25 2022-08-03 Mixhalo Corp. Multi-stride packet payload mapping for robust transmission of data
US11811686B2 (en) * 2020-12-08 2023-11-07 Mediatek Inc. Packet reordering method of sound bar
CN112735446B (zh) * 2020-12-30 2022-05-17 北京百瑞互联技术有限公司 在lc3音频码流中添加额外信息的方法、系统及介质
US20240339120A1 (en) * 2023-04-07 2024-10-10 Apple Inc. Low latency audio for immersive group communication sessions
US20250201255A1 (en) * 2023-12-13 2025-06-19 Qualcomm Incorporated Content-based switchable audio codec

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141638A (en) 1998-05-28 2000-10-31 Motorola, Inc. Method and apparatus for coding an information signal
US7117146B2 (en) 1998-08-24 2006-10-03 Mindspeed Technologies, Inc. System for improved use of pitch enhancement with subcodebooks
US7272556B1 (en) 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
GB2342829B (en) 1998-10-13 2003-03-26 Nokia Mobile Phones Ltd Postfilter
CA2252170A1 (en) 1998-10-27 2000-04-27 Bruno Bessette A method and device for high quality coding of wideband speech and audio signals
US6449313B1 (en) 1999-04-28 2002-09-10 Lucent Technologies Inc. Shaped fixed codebook search for celp speech coding
US6704701B1 (en) 1999-07-02 2004-03-09 Mindspeed Technologies, Inc. Bi-directional pitch enhancement in speech coding systems
US6801499B1 (en) 1999-08-10 2004-10-05 Texas Instruments Incorporated Diversity schemes for packet communications
AU2001241475A1 (en) 2000-02-11 2001-08-20 Comsat Corporation Background noise reduction in sinusoidal based speech coding systems
US6757654B1 (en) 2000-05-11 2004-06-29 Telefonaktiebolaget Lm Ericsson Forward error correction in speech coding
US6760698B2 (en) 2000-09-15 2004-07-06 Mindspeed Technologies Inc. System for coding speech information using an adaptive codebook with enhanced variable resolution scheme
AU2001287970A1 (en) 2000-09-15 2002-03-26 Conexant Systems, Inc. Short-term enhancement in celp speech coding
US6804218B2 (en) * 2000-12-04 2004-10-12 Qualcomm Incorporated Method and apparatus for improved detection of rate errors in variable rate receivers
US6766289B2 (en) 2001-06-04 2004-07-20 Qualcomm Incorporated Fast code-vector searching
JP3457293B2 (ja) 2001-06-06 2003-10-14 三菱電機株式会社 雑音抑圧装置及び雑音抑圧方法
US6993207B1 (en) 2001-10-05 2006-01-31 Micron Technology, Inc. Method and apparatus for electronic image processing
US7146313B2 (en) 2001-12-14 2006-12-05 Microsoft Corporation Techniques for measurement of perceptual audio quality
US7047188B2 (en) 2002-11-08 2006-05-16 Motorola, Inc. Method and apparatus for improvement coding of the subframe gain in a speech coding system
US20070013873A9 (en) * 2004-04-29 2007-01-18 Jacobson Joseph M Low cost portable computing device
US7930184B2 (en) 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
US7788091B2 (en) 2004-09-22 2010-08-31 Texas Instruments Incorporated Methods, devices and systems for improved pitch enhancement and autocorrelation in voice codecs
JP2006197391A (ja) 2005-01-14 2006-07-27 Toshiba Corp 音声ミクシング処理装置及び音声ミクシング処理方法
KR100612889B1 (ko) * 2005-02-05 2006-08-14 삼성전자주식회사 선스펙트럼 쌍 파라미터 복원 방법 및 장치와 그 음성복호화 장치
US8280730B2 (en) 2005-05-25 2012-10-02 Motorola Mobility Llc Method and apparatus of increasing speech intelligibility in noisy environments
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
DE102006022346B4 (de) 2006-05-12 2008-02-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Informationssignalcodierung
US8682652B2 (en) 2006-06-30 2014-03-25 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder and audio processor having a dynamically variable warping characteristic
US7877253B2 (en) 2006-10-06 2011-01-25 Qualcomm Incorporated Systems, methods, and apparatus for frame erasure recovery
ES2624718T3 (es) * 2006-10-24 2017-07-17 Voiceage Corporation Método y dispositivo para la codificación de tramas de transición en señales de voz
US9009032B2 (en) 2006-11-09 2015-04-14 Broadcom Corporation Method and system for performing sample rate conversion
EP2096631A4 (en) 2006-12-13 2012-07-25 Panasonic Corp TONE DECODING DEVICE AND POWER ADJUSTMENT METHOD
US20080208575A1 (en) 2007-02-27 2008-08-28 Nokia Corporation Split-band encoding and decoding of an audio signal
EP1981170A1 (en) 2007-04-13 2008-10-15 Global IP Solutions (GIPS) AB Adaptive, scalable packet loss recovery
US8352252B2 (en) 2009-06-04 2013-01-08 Qualcomm Incorporated Systems and methods for preventing the loss of information within a speech frame
US8428938B2 (en) 2009-06-04 2013-04-23 Qualcomm Incorporated Systems and methods for reconstructing an erased speech frame
US8484020B2 (en) 2009-10-23 2013-07-09 Qualcomm Incorporated Determining an upperband signal from a narrowband signal
ES2645415T3 (es) 2009-11-19 2017-12-05 Telefonaktiebolaget Lm Ericsson (Publ) Métodos y disposiciones para la compensación de volumen y nitidez en códecs de audio
US8600737B2 (en) 2010-06-01 2013-12-03 Qualcomm Incorporated Systems, methods, apparatus, and computer program products for wideband speech coding
US8738385B2 (en) 2010-10-20 2014-05-27 Broadcom Corporation Pitch-based pre-filtering and post-filtering for compression of audio signals
US9026434B2 (en) * 2011-04-11 2015-05-05 Samsung Electronic Co., Ltd. Frame erasure concealment for a multi rate speech and audio codec
WO2012158157A1 (en) 2011-05-16 2012-11-22 Google Inc. Method for super-wideband noise supression
CN102802112B (zh) 2011-05-24 2014-08-13 鸿富锦精密工业(深圳)有限公司 具有音频文件格式转换功能的电子装置
US9047863B2 (en) 2012-01-12 2015-06-02 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for criticality threshold control
US9275644B2 (en) 2012-01-20 2016-03-01 Qualcomm Incorporated Devices for redundant frame coding and decoding

Also Published As

Publication number Publication date
NZ717780A (en) 2021-05-28
CL2016000833A1 (es) 2016-11-25
EP3700111A1 (en) 2020-08-26
BR112016007940B1 (pt) 2023-03-07
MY179633A (en) 2020-11-11
CA2925582A1 (en) 2015-04-16
US20200194010A1 (en) 2020-06-18
JP6553025B2 (ja) 2019-07-31
EP3700111B1 (en) 2023-11-22
EP3055939A1 (en) 2016-08-17
HUE049089T2 (hu) 2020-09-28
CN105594148A (zh) 2016-05-18
JP2019215545A (ja) 2019-12-19
KR20160072145A (ko) 2016-06-22
BR112016007940A2 (es) 2017-08-01
KR102229487B1 (ko) 2021-03-17
EP3055939B1 (en) 2020-04-15
RU2016116793A3 (es) 2018-06-20
WO2015054512A1 (en) 2015-04-16
CN105594148B (zh) 2019-07-05
MX2016004529A (es) 2016-07-22
US20150106106A1 (en) 2015-04-16
ES2805849T3 (es) 2021-02-15
SA516370874B1 (ar) 2020-09-21
JP6768886B2 (ja) 2020-10-14
AU2014331824A1 (en) 2016-03-31
US10614816B2 (en) 2020-04-07
JP2016539536A (ja) 2016-12-15
AU2014331824B2 (en) 2018-12-06
MX365608B (es) 2019-06-07
PH12016500652A1 (en) 2016-05-30
HK1219582A1 (zh) 2017-04-07
CA2925582C (en) 2022-01-04
RU2016116793A (ru) 2017-11-16
DK3055939T3 (da) 2020-05-18
EP3700111C0 (en) 2023-11-22
ZA201602114B (en) 2020-09-30
PH12016500652B1 (en) 2022-10-26
SG11201601782VA (en) 2016-04-28
RU2673847C2 (ru) 2018-11-30

Similar Documents

Publication Publication Date Title
ES2967136T3 (es) Sistemas y procedimientos de comunicación de información de trama redundante
JP6151405B2 (ja) クリティカリティ閾値制御のためのシステム、方法、装置、およびコンピュータ可読媒体
ES2839509T3 (es) Codificador, decodificador y método para codificar y decodificar contenido de audio que utiliza parámetros para potenciar una ocultación
ES2993333T3 (en) Decoder and decoding method for lc3 concealment including partial frame loss concealment
ES2865099T3 (es) Procedimiento y aparato de ocultación de errores de trama y procedimiento y aparato de decodificación que usa los mismos
ES2836220T3 (es) Sistema y procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia
ES2842175T3 (es) Control de señal objetivo de banda alta
ES2715847T3 (es) Sistemas y procedimientos de realización de filtrado para determinación de ganancia
ES2775615T3 (es) Paquete llevando información de señalización indicativa de si decodificar una codificación primaria o una codificación redundante del paquete
ES2774334T3 (es) Estimación de forma de ganancia para mejorar el rastreo de características temporales de banda alta
ES2770926T3 (es) Información de señalización de soporte de paquete indicativa de si decodificar una codificación primaria o una codificación redundante del paquete
ES2688037T3 (es) Aparato y procedimientos de conmutación de tecnologías de codificación en un dispositivo
ES2756023T3 (es) Método y dispositivo para decodificar un flujo de bits de voz y audio
ES2980990T3 (es) Método para procesar una trama perdida y decodificador
NZ717780B2 (en) Systems and methods of communicating redundant frame information
HK1219582B (zh) 传送冗余帧信息的系统和方法