ES2837478T3 - Procesamiento de audio para señales desajustadas temporalmente - Google Patents

Procesamiento de audio para señales desajustadas temporalmente Download PDF

Info

Publication number
ES2837478T3
ES2837478T3 ES17714985T ES17714985T ES2837478T3 ES 2837478 T3 ES2837478 T3 ES 2837478T3 ES 17714985 T ES17714985 T ES 17714985T ES 17714985 T ES17714985 T ES 17714985T ES 2837478 T3 ES2837478 T3 ES 2837478T3
Authority
ES
Spain
Prior art keywords
signal
value
offset
offset value
audio signal
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
ES17714985T
Other languages
English (en)
Inventor
Venkatraman S Atti
Venkata Subrahmanyam Chandra Sekhar Chebiyyam
Daniel Jared Sinder
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 ES2837478T3 publication Critical patent/ES2837478T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/022Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
    • G10L19/025Detection of transients or attacks for time/frequency resolution switching
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/22Mode decision, i.e. based on audio signal content versus external parameters

Abstract

Un dispositivo para comunicación, comprendiendo el dispositivo: un procesador configurado para: determinar (2802) un primer valor de desajuste (962) indicativo de una primera cantidad de desajuste temporal entre una primera señal de audio (130) y una segunda señal de audio (132), con el primer valor de desajuste asociado con una primera trama a codificar; determinar (2804) un segundo valor de desajuste (116) indicativo de una segunda cantidad de desajuste temporal entre la primera señal de audio y la segunda señal de audio, con el segundo valor de desajuste asociado con una segunda trama a codificar, en el que la segunda trama a codificar es posterior a la primera trama a codificar; determinar (2806) un valor de desajuste efectivo (540) basado en el primer valor de desajuste y el segundo valor de desajuste, en el que la segunda trama a codificar incluye primeras muestras de la primera señal de audio y segundas muestras de la segunda señal de audio, y en el que las segundas muestras se seleccionan basándose al menos en parte en el valor de desajuste efectivo; determinar un valor de variación (2057) basado en el segundo valor de desajuste y el valor de desajuste efectivo, siendo el valor de variación una diferencia de valor entre el segundo valor de desajuste y el valor de desajuste efectivo; en respuesta a la determinación de que el valor de variación (2057) es mayor que un primer umbral (1902), generar una asignación de bits para indicar un primer número de bits para asignación a una señal media codificada y un segundo número de bits para asignación a una señal lateral codificada; en respuesta a determinar que el valor de variación (2057) es menor o igual que el primer umbral (1902) y menor que un segundo umbral (1904), generar la asignación de bits para indicar un tercer número de bits para la asignación a una señal media codificada y un cuarto número de bits para su asignación a una señal lateral codificada, en el que el tercer número de bits es mayor que el primer número de bits, y en el que el cuarto número de bits es menor que el segundo número de bits; y generar (2808), basándose al menos parcialmente en la segunda trama a codificar y en la asignación de bits generada, al menos una señal codificada (102) que incluye una señal media codificada y una señal lateral codificada; en el que el dispositivo comprende además un transmisor configurado para transmitir (2810) la al menos una señal codificada a un segundo dispositivo.

Description

DESCRIPCIÓN
Procesamiento de audio para señales desajustadas temporalmente
Campo
[0001] La presente divulgación se refiere en general al procesamiento de audio.
Descripción de la técnica relacionada
[0002] Los avances en la tecnología han dado como resultado dispositivos informáticos más pequeños y más potentes. Por ejemplo, existe en la actualidad una variedad de dispositivos informáticos personales portátiles, incluyendo teléfonos inalámbricos tales como teléfonos móviles e inteligentes, tablets electrónicas y ordenadores portátiles, que son pequeños, ligeros y fáciles de transportar por los usuarios. Estos dispositivos pueden comunicar paquetes de voz y datos a través de redes inalámbricas. Además, muchos de estos dispositivos incorporan funcionalidades adicionales, tales como una cámara fotográfica digital, una cámara de vídeo digital, una grabadora digital y un reproductor de archivos de audio. Asimismo, dichos dispositivos pueden procesar instrucciones ejecutables, incluyendo aplicaciones de software, tales como una aplicación de navegador web, que puede usarse para acceder a Internet. Como tal, estos dispositivos pueden incluir capacidades informáticas significativas.
[0003] Un dispositivo informático puede incluir múltiples micrófonos para recibir señales de audio. En general, una fuente de sonido está más cerca de un primer micrófono que de un segundo micrófono de los múltiples micrófonos. En consecuencia, una segunda señal de audio recibida desde el segundo micrófono se puede retardar en relación con una primera señal de audio recibida desde el primer micrófono. En la codificación estéreo, las señales de audio de los micrófonos se pueden codificar para generar una señal de canal medio y una o más señales de canal lateral. La señal de canal medio puede corresponder a una suma de la primera señal de audio y la segunda señal de audio. La señal de canal lateral puede corresponder a una diferencia entre la primera señal de audio y la segunda señal de audio. La primera señal de audio puede no estar alineada temporalmente con la segunda señal de audio debido al retardo de la recepción de la segunda señal de audio en relación con la primera señal de audio. La desalineación (o "desviación temporal") de la primera señal de audio con respecto a la segunda señal de audio puede aumentar una magnitud de la señal de canal lateral. Debido al incremento en la magnitud de la señal de canal lateral, puede ser necesario un mayor número de bits para codificar la señal de canal lateral.
[0004] Además, diferentes tipos de tramas pueden hacer que el dispositivo informático genere diferentes desviaciones temporales o estimaciones de desplazamiento. Por ejemplo, el dispositivo informático puede determinar que una trama sonora de la primera señal de audio está desviada por una trama sonora correspondiente en la segunda señal de audio una cantidad particular. Sin embargo, debido a una cantidad relativamente alta de ruido, el dispositivo informático puede determinar que una trama de transición (o trama sorda) de la primera señal de audio está desviada por una trama de transición correspondiente (o trama sorda correspondiente) de la segunda señal de audio una cantidad diferente. Las variaciones en las estimaciones de desplazamiento pueden provocar la repetición de la muestra y la omisión de distorsiones en los límites de la trama. Además, la variación en las estimaciones de desplazamiento puede dar como resultado energías de canal lateral más altas, lo cual puede reducir la eficiencia de codificación.
[0005] En EP 2 381 439 A1, se divulga un aparato de codificación de señales de sonido acústico estéreo que comprende: una sección de seguimiento de picos que divide una trama de una señal de canal derecho y una señal de canal izquierdo en una pluralidad de subtramas, detecta picos en formas de onda de las subtramas divididas y compara las posiciones de los picos detectados, estimando así un retardo de tiempo de trama de cada trama de la señal de canal derecho y la señal de canal izquierdo; una sección de alineación de tiempo que realiza la alineación de tiempo en una de la señal de canal derecho y la señal de canal izquierdo sobre la base del retardo de tiempo de la trama; y una sección de codificación que codifica la otro de la señal de canal derecho y la señal de canal izquierdo, la alineada en el tiempo de la señal de canal derecho y la señal de canal izquierdo, y el retardo de tiempo de trama.
[0006] En "Flexible sum-difference stereo coding based on time-aligned signal components" de Lindblom et al (Taller de IEEE sobre aplicaciones de procesamiento de señales en audio y acústica, 2005, New Paltz, NY, 2005, págs. 255­ 258), se propone un marco para la codificación flexible y eficiente de señales de audio estéreo generales. Se informa que los procedimientos basados en el marco se pueden usar junto con un codificador arbitrario de un solo canal (mono) para lograr una transición perfecta de la codificación estéreo paramétrica pura a la codificación aproximada de la forma de onda a medida que aumenta la velocidad de transmisión de bits. La idea, basada en la codificación de sumadiferencia de componentes de señal alineados en el tiempo, se presenta como un marco general.
[0007] En US 2006/0029239 A1, un proceso para combinar canales de audio combina los canales de audio para producir un canal de audio combinado y aplica dinámicamente uno o más ajustes de tiempo, fase y amplitud o potencia a los canales, al canal combinado, o tanto a los canales como al combinado. canal. Uno o más de los ajustes se controlan al menos en parte mediante una medida de eventos auditivos en uno o más de los canales y/o el canal combinado. Las aplicaciones incluyen la presentación de audio multicanal en cines y vehículos.
[0008] En "Enhanced AMR-WB bandwidth extensión in 3GPP EVS codec"de Kaniewska et al (Conferencia global de IEEE sobre procesamiento de señales e información de 2015 (GlobalSIP), Orlando, FL, 2015, págs. 652-656) se presenta una extensión de ancho de banda
[0009] (BWE) desarrollado para los modos interoperables AMR-WB (AMR-WB IO) del códec 3GPP EVS.
[0010] En EP 1,953,736 A1, se describe un aparato de codificación estéreo que comprende: un primer filtro de paso bajo que deja pasar un componente de banda baja de una señal del primer canal; un segundo filtro de paso bajo que deja pasar un componente de banda baja de un segundo canal de señal; una sección de predicción que predice el componente de banda baja de la señal del segundo canal a partir del componente de banda baja de la señal del primer canal y genera un parámetro de predicción; una primera sección de codificación que codifica la señal del primer canal; y una segunda sección de codificación que codifica el parámetro de predicción, donde la sección de predicción realiza la predicción y genera información de una diferencia de tiempo de retardo y una relación de amplitud entre el componente de banda baja de la señal del primer canal y el componente de banda baja del segundo señal de canal.
Breve explicación
[0011] La invención se define mediante las reivindicaciones independientes.
Breve descripción de los dibujos
[0012]
La FIG. 1 es un diagrama de bloques de un ejemplo ilustrativo particular de un sistema que incluye un dispositivo que es operativo para codificar múltiples señales de audio;
la FIG. 2 es un diagrama que ilustra otro ejemplo de un sistema que incluye el dispositivo de la FIG. 1; la FIG. 3 es un diagrama que ilustra ejemplos particulares de muestras que pueden ser codificadas por el dispositivo de la FIG. 1;
la FIG. 4 es un diagrama que ilustra ejemplos particulares de muestras que pueden ser codificadas por el dispositivo de la FIG. 1;
la FIG. 5 es un diagrama que ilustra otro ejemplo de un sistema que es operativo para codificar múltiples señales de audio;
la FIG. 6 es un diagrama que ilustra otro ejemplo de un sistema que es operativo para codificar múltiples señales de audio;
la FIG. 7 es un diagrama que ilustra otro ejemplo de un sistema que es operativo para codificar múltiples señales de audio;
la FIG. 8 es un diagrama que ilustra otro ejemplo de un sistema que es operativo para codificar múltiples señales de audio;
la FIG. 9A es un diagrama que ilustra otro ejemplo de un sistema que es operativo para codificar múltiples señales de audio;
la FIG. 9B es un diagrama que ilustra otro ejemplo de un sistema que es operativo para codificar múltiples señales de audio;
la FIG. 9C es un diagrama que ilustra otro ejemplo de un sistema que es operativo para codificar múltiples señales de audio;
la FIG. 10A es un diagrama que ilustra otro ejemplo de un sistema que es operativo para codificar múltiples señales de audio;
la FIG. 10B es un diagrama que ilustra otro ejemplo de un sistema que es operativo para codificar múltiples señales de audio;
la FIG. 11 es un diagrama que ilustra otro ejemplo de un sistema que es operativo para codificar múltiples señales de audio;
la FIG. 12 es un diagrama que ilustra otro ejemplo de un sistema que es operativo para codificar múltiples señales de audio;
la FIG. 13 es un diagrama de flujo que ilustra un procedimiento particular para codificar múltiples señales de audio;
la FIG. 14 es un diagrama que ilustra otro ejemplo de un sistema que es operativo para codificar múltiples señales de audio;
la FIG. 15 representa gráficos que ilustran valores de comparación para tramas sonoras, tramas de transición y tramas sordas;
la FIG. 16 es un diagrama de flujo que ilustra un procedimiento para estimar una desviación temporal entre el audio capturado en múltiples micrófonos;
la FIG. 17 es un diagrama para expandir selectivamente un rango de búsqueda de valores de comparación usados para la estimación de desplazamiento;
la FIG. 18 representa gráficos que ilustran la expansión selectiva de un rango de búsqueda para valores de comparación usados para la estimación de desplazamiento;
La FIG. 19 es un diagrama de bloques de un ejemplo ilustrativo particular de un sistema que incluye un dispositivo que es operativo para codificar múltiples señales de audio;
La FIG. 20 es un diagrama de flujo de un procedimiento para asignar bits entre una señal media y una señal lateral;
la FIG. 21 es un diagrama de flujo de un procedimiento para seleccionar diferentes modos de codificación basándose en un valor de desplazamiento final y un valor de desplazamiento modificado;
la FIG. 22 ilustra diferentes modos de codificación de acuerdo con las técnicas descritas en el presente documento;
la FIG. 23 ilustra un codificador;
la FIG. 24 ilustra diferentes señales codificadas de acuerdo con las técnicas descritas en el presente documento;
la FIG. 25 es un sistema para codificar una señal de acuerdo con las técnicas descritas en el presente documento;
la FIG. 26 es un diagrama de flujo de un procedimiento de comunicación;
la FIG. 27 es un diagrama de flujo de un procedimiento de comunicación;
la FIG. 28 es un diagrama de flujo de un procedimiento de comunicación; y
la FIG. 29 es un diagrama de bloques de un ejemplo ilustrativo particular de un dispositivo que es operativo para codificar múltiples señales de audio.
Descripción detallada
[0013] Se divulgan sistemas y dispositivos que son operativos para codificar múltiples señales de audio. Un dispositivo puede incluir un codificador configurado para codificar las múltiples señales de audio. Las múltiples señales de audio pueden capturarse simultáneamente en el tiempo usando múltiples dispositivos de grabación, por ejemplo, múltiples micrófonos. En algunos ejemplos, las múltiples señales de audio (o audio multicanal) pueden generarse sintéticamente (por ejemplo, artificialmente) multiplexando varios canales de audio que se graban al mismo tiempo o en momentos diferentes. Como ejemplos ilustrativos, la grabación o multiplexación simultánea de los canales de audio puede dar como resultado una configuración de 2 canales (es decir, estéreo: izquierda y derecha), una configuración de canal 5.1 (izquierda, derecha, centro, envolvente izquierdo, envolvente derecho y canales de énfasis de baja frecuencia (LFE)), una configuración de canal 7.1, una configuración de canal 7.1+4, una configuración de canal 22.2, o una configuración de canal N.
[0014] Los dispositivos de captura de audio en salas de teleconferencia (o salas de telepresencia) pueden incluir múltiples micrófonos que adquieren audio espacial. El audio espacial puede incluir voz, así como audio de fondo que se codifica y transmite. La voz/audio de una fuente determinada (por ejemplo, un hablante) puede llegar a los múltiples micrófonos en diferentes momentos dependiendo de cómo estén dispuestos los micrófonos y de dónde se localiza la fuente (por ejemplo, el hablante) con respecto a los micrófonos y las dimensiones de la sala. Por ejemplo, una fuente de sonido (por ejemplo, un hablante) puede estar más cerca de un primer micrófono asociado con el dispositivo que de un segundo micrófono asociado con el dispositivo. Por tanto, un sonido emitido por la fuente de sonido puede llegar al primer micrófono antes que el segundo micrófono. El dispositivo puede recibir una primera señal de audio a través del primer micrófono y puede recibir una segunda señal de audio a través del segundo micrófono.
[0015] La codificación de lado medio (MS) y la codificación estéreo paramétrica (PS) son técnicas de codificación estéreo que pueden proporcionar una eficacia mejorada sobre las técnicas de codificación mono dual. En la codificación mono dual, el canal (o señal) izquierdo (L) y el canal (o señal) derecho (R) se codifican independientemente sin usar la correlación entre canales. La codificación MS reduce la redundancia entre un par de canales L/R correlacionados al transformar el canal izquierdo y el canal derecho en un canal de suma y un canal de diferencia (por ejemplo, un canal lateral) antes de la codificación. La señal de suma y la señal de diferencia están codificadas en forma de onda en la codificación MS. Se gastan relativamente más bits en la señal de suma que en la señal lateral. La codificación PS reduce la redundancia en cada subbanda transformando las señales L/R en una señal de suma y un conjunto de parámetros secundarios. Los parámetros secundarios pueden indicar una diferencia de intensidad entre canales (IID), una diferencia de fase entre canales (IPD), una diferencia de tiempo entre canales (ITD), etc. La señal de suma se codifica en forma de onda y se transmite junto con los parámetros secundarios. En un sistema híbrido, el canal lateral puede estar codificado en forma de onda en las bandas inferiores (por ejemplo, menos de 2 kilohercios (kHz)) y el PS puede estar codificado en las bandas superiores (por ejemplo, mayor o igual a 2 kHz) donde la preservación de la fase entre canales es perceptivamente menos crítica.
[0016] La codificación MS y la codificación PS pueden realizarse en el dominio de la frecuencia o en el dominio de subbanda. En algunos ejemplos, el canal izquierdo y el canal derecho pueden no estar correlacionados. Por ejemplo, el canal izquierdo y el canal derecho pueden incluir señales sintéticas no correlacionadas. Cuando el canal izquierdo y el canal derecho no están correlacionados, la eficacia de codificación de la codificación MS, la codificación PS, o ambas, pueden aproximarse a la eficacia de codificación de la codificación mono dual.
[0017] Dependiendo de la configuración de grabación, puede haber un desplazamiento temporal (o desajuste temporal) entre un canal izquierdo y un canal derecho, así como otros efectos espaciales tales como el eco y la reverberación de la sala. Si el desplazamiento temporal y el desajuste de fase entre los canales no se compensan, el canal de suma y el canal de diferencia pueden contener energías comparables que reducen las ganancias de codificación asociadas con las técnicas MS o PS. La reducción en las ganancias de codificación se puede basar en la cantidad de desplazamiento temporal (o de fase). Las energías comparables de la señal de suma y la señal de diferencia pueden limitar el uso de la codificación MS en determinadas tramas donde los canales cambian temporalmente, pero están altamente correlacionados. En la codificación estéreo, se puede generar un canal medio (por ejemplo, un canal de suma) y un canal lateral (por ejemplo, un canal de diferencia) basándose en la siguiente fórmula:
M= (L+R)/2, S= (L-R)/2, Fórmula 1
[0018] donde M corresponde al canal medio, S corresponde al canal lateral, L corresponde al canal izquierdo y R corresponde al canal derecho.
[0019] En algunos casos, el canal medio y el canal lateral se pueden generar basándose en la siguiente fórmula:
M=c (L+R), S= c (L-R), Fórmula 2
[0020] donde C corresponde a un valor complejo que es dependiente de la frecuencia. Generar el canal medio y el canal lateral basándose en la fórmula 1 o la fórmula 2 puede referirse al modo de realización de un algoritmo de "mezcla descendente". El proceso inverso de generar el canal izquierdo y el canal derecho desde el canal medio y el canal lateral basándose en la fórmula 1 o la fórmula 2 se puede referir a la realización de un algoritmo de "mezcla ascendente".
[0021] Un enfoque ad-hoc usado para elegir entre la codificación MS o la codificación mono dual para una trama particular puede incluir generar una señal media y una señal lateral, calcular las energías de la señal media y la señal lateral, y determinar si se realiza una codificación MS en las energías. Por ejemplo, la codificación MS se puede realizar en respuesta a la determinación de que la proporción de energías de la señal lateral y la señal media es inferior a un umbral. A modo ilustrativo, si un canal derecho se desplaza al menos por primera vez (por ejemplo, aproximadamente 0,001 segundos o 48 muestras a 48 kHz), una primera energía de la señal media (correspondiente a una suma de la señal izquierda y la señal derecha) puede ser comparable a una segunda energía del canal lateral (correspondiente a una diferencia entre la señal izquierda y la señal derecha) para tramas de voz. Cuando la primera energía es comparable a la segunda energía, se puede usar un mayor número de bits para codificar el canal lateral, reduciendo de este modo la eficacia de codificación de la codificación MS en relación con la codificación mono dual. Por tanto, la codificación mono dual se puede usar cuando la primera energía es comparable a la segunda energía (por ejemplo, cuando la proporción de la primera energía y la segunda energía es mayor o igual que el umbral). En un enfoque alternativo, la decisión entre la codificación MS y la codificación mono dual para una trama particular se puede hacer basándose en una comparación de un umbral y valores de correlación cruzada normalizados del canal izquierdo y el canal derecho.
[0022] En algunos ejemplos, el codificador puede determinar un valor de desplazamiento temporal indicativo de un desplazamiento de la primera señal de audio con respecto a la segunda señal de audio. El valor de desplazamiento puede corresponder a una cantidad de retardo temporal entre la recepción de la primera señal de audio en el primer micrófono y la recepción de la segunda señal de audio en el segundo micrófono. Además, el codificador puede determinar el valor de desplazamiento trama por trama, por ejemplo, basándose en cada trama de voz/audio de 20 milisegundos (ms). Por ejemplo, el valor de desplazamiento puede corresponder a una cantidad de tiempo en el que una segunda trama de la segunda señal de audio se retarda con respecto a una primera trama de la primera señal de audio. De forma alternativa, el valor de desplazamiento puede corresponder a una cantidad de tiempo en el que la primera trama de la primera señal de audio se retarda con respecto a la segunda trama de la segunda señal de audio.
[0023] Cuando la fuente de sonido está más cerca del primer micrófono que del segundo micrófono, las tramas de la segunda señal de audio se pueden retardar en relación con las tramas de la primera señal de audio. En este caso, la primera señal de audio puede denominarse "señal de audio de referencia" o "canal de referencia" y la segunda señal de audio retardada puede denominarse "señal de audio objetivo" o "canal objetivo". De forma alternativa, cuando la fuente de sonido está más cerca del segundo micrófono que del primer micrófono, las tramas de la primera señal de audio se pueden retardar en relación con las tramas de la segunda señal de audio. En este caso, la segunda señal de audio puede denominarse señal de audio de referencia o canal de referencia y la primera señal de audio retardada puede denominarse señal de audio objetivo o canal objetivo.
[0024] Dependiendo de dónde se localicen las fuentes de sonido (por ejemplo, los hablantes) en una sala de conferencias o telepresencia o cómo cambie la posición de la fuente de sonido (por ejemplo, el hablante) en relación con los micrófonos, el canal de referencia y el canal objetivo pueden cambiar de una trama a otra; de forma similar, el valor de retardo temporal también puede cambiar de una trama a otra. Sin embargo, en algunas implementaciones, el valor de desplazamiento siempre puede ser positivo para indicar una cantidad de retardo del canal "objetivo" en relación con el canal de "referencia". Además, el valor de desplazamiento puede corresponder a un valor de "desplazamiento no causal" mediante el cual el canal objetivo retardado se "retrae" en el tiempo de modo que el canal objetivo esté alineado (por ejemplo, con la alineación máxima) con el canal de "referencia". El algoritmo de mezcla descendente para determinar el canal medio y el canal lateral puede realizarse en el canal de referencia y el canal objetivo desplazado no causal.
[0025] El codificador puede determinar el valor de desplazamiento basado en el canal de audio de referencia y una pluralidad de valores de desplazamiento aplicados al canal de audio objetivo. Por ejemplo, una primera trama del canal de audio de referencia, X, puede recibirse en un primer momento (mi). Una primera trama particular del canal de audio objetivo, Y, puede recibirse en un segundo momento (m) correspondiente a un primer valor de desplazamiento, por ejemplo, desplazamiento1 = m - mu. Además, una segunda trama del primer canal de audio de referencia puede recibirse en un tercer momento (m2). Una segunda trama particular del segundo canal de audio objetivo puede recibirse en un cuarto momento (n2) correspondiente a un segundo valor de desplazamiento, por ejemplo, desplazamiento2 = n2 - m2.
[0026] El dispositivo puede realizar un algoritmo de entramado o de almacenamiento en búfer para generar una trama (por ejemplo, muestras de 20 ms) a una primera velocidad de muestreo (por ejemplo, velocidad de muestreo de 32 kHz (es decir, 640 muestras por trama)). El codificador puede, en respuesta a la determinación de que una primera trama de la primera señal de audio y una segunda trama de la segunda señal de audio llegan al mismo tiempo al dispositivo, estimar un valor de desplazamiento (por ejemplo, desplazamiento^ igual a cero muestras. Un canal izquierdo (por ejemplo, correspondiente a la primera señal de audio) y un canal derecho (por ejemplo, correspondiente a la segunda señal de audio) pueden estar alineados temporalmente. En algunos casos, el canal izquierdo y el canal derecho, incluso cuando están alineados, pueden diferir en energía debido a diversas razones (por ejemplo, calibración del micrófono).
[0027] En algunos ejemplos, el canal izquierdo y el canal derecho pueden no estar alineados temporalmente debido a diversas razones (por ejemplo, una fuente de sonido, tal como un hablante, puede estar más cerca de uno de los micrófonos que otro y los dos los micrófonos pueden estar a más de un umbral (por ejemplo, 1-20 centímetros) de distancia). Una localización de la fuente de sonido en relación con los micrófonos puede introducir diferentes retardos en el canal izquierdo y el canal derecho. Además, puede haber una diferencia de ganancia, una diferencia de energía o una diferencia de nivel entre el canal izquierdo y el canal derecho.
[0028] En algunos ejemplos, el momento de llegada de las señales de audio a los micrófonos desde múltiples fuentes de sonido (por ejemplo, hablantes) puede variar cuando los múltiples hablantes están hablando de forma alternativa (por ejemplo, sin superposición). En dicho caso, el codificador puede ajustar dinámicamente un valor de desplazamiento temporal basado en el hablante para identificar el canal de referencia. En algunos otros ejemplos, los múltiples hablantes pueden estar hablando al mismo tiempo, lo que puede dar como resultado valores de desplazamiento temporal variables dependiendo de quién es el hablante que habla más fuerte, el más cercano al micrófono, etc.
[0029] En algunos ejemplos, la primera señal de audio y la segunda señal de audio pueden sintetizarse o generarse artificialmente cuando las dos señales muestran potencialmente menos (por ejemplo, ninguna) correlación. Debe entenderse que los ejemplos descritos en el presente documento son ilustrativos y pueden ser instructivos para determinar una relación entre la primera señal de audio y la segunda señal de audio en situaciones similares o diferentes.
[0030] El codificador puede generar valores de comparación (por ejemplo, valores de diferencia, valores de variación o valores de correlación cruzada) basándose en una comparación de una primera trama de la primera señal de audio y una pluralidad de tramas de la segunda señal de audio. Cada trama de la pluralidad de tramas puede corresponder a un valor de desplazamiento particular. El codificador puede determinar un primer valor de desplazamiento estimado basado en los valores de comparación. Por ejemplo, el primer valor de desplazamiento estimado puede corresponder a un valor de comparación que indica una mayor similitud temporal (o menor diferencia) entre la primera trama de la primera señal de audio y la primera trama correspondiente de la segunda señal de audio.
[0031] El codificador puede determinar el valor de desplazamiento final refinando, en múltiples fases, una serie de valores de desplazamiento estimados. Por ejemplo, el codificador puede estimar primero un valor de desplazamiento "tentativo" basado en valores de comparación generados a partir de versiones estéreo preprocesadas y remuestreadas de la primera señal de audio y la segunda señal de audio. El codificador puede generar valores de comparación interpolados asociados con valores de desplazamiento próximos al valor de desplazamiento "tentativo" estimado. El codificador puede determinar un segundo valor de desplazamiento "interpolado" estimado basado en los valores de comparación interpolados. Por ejemplo, el segundo valor de desplazamiento "interpolado" estimado puede corresponder a un valor de comparación interpolado particular que indica una mayor similitud temporal (o menor diferencia) que los valores de comparación interpolados restantes y el primer valor de desplazamiento "tentativo" estimado. Si el segundo valor de desplazamiento "interpolado" estimado de la trama actual (por ejemplo, la primera trama de la primera señal de audio) es diferente al valor de desplazamiento final de una trama previa (por ejemplo, una trama de la primera señal de audio que precede la primera trama), entonces el valor de desplazamiento "interpolado" de la trama actual se "modifica" aún más para mejorar la similitud temporal entre la primera señal de audio y la segunda señal de audio desplazada. En particular, un tercer valor de desplazamiento "modificado" estimado puede corresponder a una medida más precisa de la similitud temporal buscando alrededor del segundo valor de desplazamiento "interpolado" estimado de la trama actual y el valor de desplazamiento estimado final de la trama previa. El tercer valor de desplazamiento "modificado" estimado está además condicionado a estimar el valor de desplazamiento final al limitar cualquier desplazamiento espurio en el valor de desplazamiento entre tramas y se controla además para no cambiar de un valor de desplazamiento negativo a un valor de desplazamiento positivo (o viceversa) en dos tramas sucesivas (o consecutivas) como se describe en el presente documento.
[0032] En algunos ejemplos, el codificador puede abstenerse de cambiar entre un valor de desplazamiento positivo y un valor de desplazamiento negativo o viceversa en tramas consecutivas o en tramas adyacentes. Por ejemplo, el codificador puede establecer el valor de desplazamiento final en un valor particular (por ejemplo, 0) que indica que no hay desplazamiento temporal basado en el valor de desplazamiento "interpolado" o "modificado" estimado de la primera trama y un valor de desplazamiento final o "interpolado" o "modificado" estimado correspondiente en una trama particular que precede la primera trama. A modo de ilustración, el codificador puede establecer el valor de desplazamiento final de la trama actual (por ejemplo, la primera trama) para indicar que no hay desplazamiento temporal, es decir, desplazamiento1 = 0, en respuesta a la determinación de que uno de los valores de desplazamiento "tentativos" o "interpolados" o "modificados" estimados de la trama actual es positivo y el otro de los valores de desplazamiento estimados "tentativos" o "interpolados" o "modificados" o "finales" de la trama previa (por ejemplo, la trama que precede la primera trama) es negativo. De forma alternativa, el codificador puede establecer también el valor de desplazamiento final de la trama actual (por ejemplo, la primera trama) para indicar que no hay desplazamiento temporal, es decir, desplazamiento1 = 0, en respuesta a la determinación de que uno de los valores de desplazamiento "tentativos" o "interpolados" o "modificados" estimados de la trama actual es negativo y el otro de los valores de desplazamiento estimados "tentativos" o "interpolados" o "modificados" o "finales" de la trama previa (por ejemplo, la trama que precede la primera trama) es positivo.
[0033] El codificador puede seleccionar una trama de la primera señal de audio o la segunda señal de audio como "referencia" u "objetivo" basándose en el valor de desplazamiento. Por ejemplo, en respuesta a la determinación de que el valor de desplazamiento final es positivo, el codificador puede generar un canal de referencia o indicador de señal que tiene un primer valor (por ejemplo, 0) que indica que la primera señal de audio es una señal de "referencia" y que la segunda señal de audio es la señal "objetivo". De forma alternativa, en respuesta a la determinación de que el valor de desplazamiento final es negativo, el codificador puede generar el canal de referencia o indicador de señal que tiene un segundo valor (por ejemplo, 1) que indica que la segunda señal de audio es una señal de "referencia" y que la primera señal de audio es la señal "objetivo".
[0034] El codificador puede estimar una ganancia relativa (por ejemplo, un parámetro de ganancia relativa) asociada con la señal de referencia y la señal objetivo desplazada no causal. Por ejemplo, en respuesta a la determinación de que el valor de desplazamiento final es positivo, el codificador puede estimar un valor de ganancia para normalizar o igualar los niveles de energía o potencia de la primera señal de audio en relación con la segunda señal de audio que es desviada por el valor de desplazamiento no causal (por ejemplo, un valor absoluto del valor de desplazamiento final). De forma alternativa, en respuesta a la determinación de que el valor de desplazamiento final es negativo, el codificador puede estimar un valor de ganancia para normalizar o igualar los niveles de potencia de la primera señal de audio desplazada no causal en relación con la segunda señal de audio. En algunos ejemplos, el codificador puede estimar un valor de ganancia para normalizar o igualar los niveles de energía o potencia de la señal de "referencia" en relación con la señal "objetivo" desplazada no causal. En otros ejemplos, el codificador puede estimar el valor de ganancia (por ejemplo, un valor de ganancia relativa) basado en la señal de referencia relativa a la señal objetivo (por ejemplo, la señal objetivo no desplazada).
[0035] El codificador puede generar al menos una señal codificada (por ejemplo, una señal media, una señal lateral, o ambas), basándose en la señal de referencia, la señal objetivo, el valor de desplazamiento no causal, y el parámetro de ganancia relativa. La señal lateral puede corresponder a una diferencia entre las primeras muestras de la primera trama de la primera señal de audio y las muestras seleccionadas de una trama seleccionada de la segunda señal de audio. El codificador puede seleccionar la trama seleccionada basándose en el valor de desplazamiento final. Se pueden usar menos bits para codificar la señal de canal lateral debido a la diferencia reducida entre las primeras muestras y las muestras seleccionadas en comparación con otras muestras de la segunda señal de audio que corresponden a una trama de la segunda señal de audio que recibe el dispositivo al mismo tiempo que la primera trama. Un transmisor del dispositivo puede transmitir al menos una señal codificada, el valor de desplazamiento no causal, el parámetro de ganancia relativa, el canal de referencia o el indicador de señal, o una combinación de los mismos.
[0036] El codificador puede generar al menos una señal codificada (por ejemplo, una señal media, una señal lateral o ambas) basándose en la señal de referencia, la señal objetivo, el valor de desplazamiento no causal, el parámetro de ganancia relativa, parámetros de banda baja de una trama particular de la primera señal de audio, parámetros de banda alta de la trama particular, o una combinación de los mismos. La trama particular puede preceder la primera trama. Determinados parámetros de banda baja, parámetros de banda alta, o una combinación de los mismos, de una o más tramas anteriores se pueden usar para codificar una señal media, una señal lateral, o ambas, de la primera trama. La codificación de la señal media, la señal lateral, o ambas, basada en los parámetros de banda baja, los parámetros de banda alta, o una combinación de los mismos, puede mejorar las estimaciones del valor de desplazamiento no causal y el parámetro de ganancia relativa entre canales. Los parámetros de banda baja, los parámetros de banda alta, o una combinación de los mismos, pueden incluir un parámetro de tono, un parámetro de voz, un parámetro de tipo codificador, un parámetro de energía de banda baja, un parámetro de energía de banda alta, un parámetro de inclinación, un parámetro de ganancia de tono, un parámetro de ganancia FCB, un parámetro de modo de codificación, un parámetro de actividad de voz, un parámetro de estimación de ruido, un parámetro de relación señal/ruido, un parámetro de formantes, un parámetro de decisión de voz/música, el desplazamiento no causal, el parámetro de ganancia entre canales, o una combinación de los mismos. Un transmisor del dispositivo puede transmitir la al menos una señal codificada, el valor de desplazamiento no causal, el parámetro de ganancia relativa, el indicador de canal de referencia (o señal) o una combinación de los mismos.
[0037] Con referencia a la FIG. 1, se divulga un ejemplo ilustrativo particular de un sistema y se designa en general 100. El sistema 100 incluye un primer dispositivo 104 acoplado de forma comunicativa, a través de una red 120, a un segundo dispositivo 106. La red 120 puede incluir una o más redes inalámbricas, una o más redes cableadas, o una combinación de las mismas.
[0038] El primer dispositivo 104 puede incluir un codificador 114, un transmisor 110, una o más interfaces de entrada 112, o una combinación de los mismos. Una primera interfaz de entrada de las interfaces de entrada 112 puede estar acoplada a un primer micrófono 146. Una segunda interfaz de entrada de la interfaz o interfaces de entrada 112 puede estar acoplada a un segundo micrófono 148. El codificador 114 puede incluir un ecualizador temporal 108 y puede configurarse para mezclar de forma descendente y codificar múltiples señales de audio, como se describe en el presente documento. El primer dispositivo 104 también puede incluir una memoria 153 configurada para almacenar datos de análisis 190. El segundo dispositivo 106 puede incluir un descodificador 118. El descodificador 118 puede incluir un equilibrador temporal 124 que está configurado para mezclar de forma ascendente y renderizar los múltiples canales. El segundo dispositivo 106 puede estar acoplado a un primer altavoz 142, un segundo altavoz 144, o ambos.
[0039] Durante el funcionamiento, el primer dispositivo 104 puede recibir una primera señal de audio 130 a través de la primera interfaz de entrada desde el primer micrófono 146 y puede recibir una segunda señal de audio 132 a través de la segunda interfaz de entrada desde el segundo micrófono 148. La primera señal de audio 130 puede corresponder a una de una señal de canal derecho o una señal de canal izquierdo. La segunda señal de audio 132 puede corresponder a la otra de la señal de canal derecho o la señal de canal izquierdo. Una fuente de sonido 152 (por ejemplo, un usuario, un altavoz, ruido ambiental, un instrumento musical, etc.) puede estar más cerca del primer micrófono 146 que del segundo micrófono 148. Por consiguiente, se puede recibir una señal de audio de la fuente de sonido 152 en la interfaz o interfaces de entrada 112 a través del primer micrófono 146 en un momento anterior que a través del segundo micrófono 148. Este retardo natural en la adquisición de la señal multicanal a través de los múltiples micrófonos puede introducir un desplazamiento temporal entre la primera señal de audio 130 y la segunda señal de audio 132.
[0040] El ecualizador temporal 108 puede configurarse para estimar una desviación temporal entre el audio capturado en los micrófonos 146, 148. La desviación temporal puede estimarse basándose en un retardo entre un primera trama de la primera señal de audio 130 y un segunda trama de la segunda señal de audio 132, donde la segunda trama incluye un contenido sustancialmente similar al de la primera trama. Por ejemplo, el ecualizador temporal 108 puede determinar una correlación cruzada entre la primera trama y la segunda trama. La correlación cruzada puede medir la similitud de las dos tramas en función del retraso de una trama con respecto a la otra. Basándose en la correlación cruzada, el ecualizador temporal 108 puede determinar el retardo (por ejemplo, retraso) entre la primera trama y la segunda trama. El ecualizador temporal 108 puede estimar la desviación temporal entre la primera señal de audio 130 y la segunda señal de audio 132 basándose en el retardo y los datos históricos de retardo.
[0041] Los datos históricos pueden incluir retardos entre las tramas capturadas desde el primer micrófono 146 y las tramas correspondientes capturadas desde el segundo micrófono 148. Por ejemplo, el ecualizador temporal 108 puede determinar una correlación cruzada (por ejemplo, un retraso) entre las tramas previas asociadas con la primera señal de audio 130 y las tramas correspondientes asociadas con la segunda señal de audio 132. Cada retraso puede representarse mediante un "valor de comparación". Es decir, un valor de comparación puede indicar un desplazamiento de tiempo (k) entre una trama de la primera señal de audio 130 y una trama correspondiente de la segunda señal de audio 132. De acuerdo con una implementación, los valores de comparación para tramas anteriores pueden almacenarse en la memoria 153. Un 192 más suave del ecualizador temporal 108 puede "suavizar" (o promediar) los valores de comparación en un conjunto de tramas a largo plazo y utilizar los valores de comparación suavizados a largo plazo para estimar una desviación temporal (por ejemplo, "desplazamiento") entre la primera señal de audio 130 y la segunda señal de audio 132.
[0042] Para ilustrar, si CompValN(k) representa el valor de comparación en un desplazamiento de k para la trama N, la trama N puede tener valores de comparación de k=T_MIN (un desplazamiento mínimo) a k=T_MAX (un desplazamiento máximo). El suavizado se puede realizar de manera que un valor de comparación a largo plazo CompValLTN(k) esté representado por CompValLTN(k) = f(CompValN(k), CompValN -1(k), CompVali_TN-2(k),...). La función f en la ecuación anterior puede ser una función de todos (o un subconjunto) de los valores de comparación pasados en el desplazamiento (k). Una representación alternativa del valor de comparación a largo plazo CompValLTN(k) puede ser CompValLTN(k) = g(CompValLTN(k), CompValN -i(k), CompValN-2(k)...). Las funciones f o g pueden ser simples filtros de respuesta de impulso finito (FIR) o filtros de respuesta de impulso infinito (IIR), respectivamente. Por ejemplo, la función g puede ser un filtro IIR de un solo toque, de modo que el valor de comparación a largo plazo CompValLTN (k) es representado por CompValLTN (k) = (1 - a) * CompValN(k), + (a) * CompValLTN-1 (k), where a E (0,1,0). Por lo tanto, el valor de comparación a largo plazo CompValLTN(k) puede basarse en una mezcla ponderada del valor de comparación instantáneo CompVaN (k) en la trama N y los valores de comparación a largo plazo CompValLTN-1(k) para una o más tramas anteriores. A medida que aumenta el valor de a, aumenta la cantidad de suavizado en el valor de comparación a largo plazo. En un aspecto particular, la función/puede ser un filtro FIR L-tap de modo que el valor de comparación a largo plazo CompValLTN(k) está representado por CompValLTN(k) = (a1) * CompVaN (k), + (a2) * CompValN-1(k) + ... (aL) * CompVaN_ L+1(k), dónde a1, a2, ... y aL corresponden a ponderaciones. En un aspecto particular, cada uno de los a1, a2, ..., y aL E (0, 1,0), y una ponderación particular de la a1, a2, ..., y aL puede ser igual o distinto de otra ponderación de la a1, a2, ... y aL. Por lo tanto, el valor de comparación a largo plazo CompValLTN(k) puede basarse en una mezcla ponderada del valor de comparación instantáneo CompVaN (k) en la trama N y los valores de comparación a largo plazo CompValN-i(k) para las tramas anteriores (L-1).
[0043] Las técnicas de suavizado descritas anteriormente pueden normalizar sustancialmente la estimación de desplazamiento entre tramas sonoras, tramas sordas y tramas de transición. Las estimaciones de desplazamiento normalizadas pueden reducir la repetición de la muestra y la omisión de distorsiones en los límites de la trama. Además, las estimaciones de desplazamiento normalizadas pueden dar como resultado energías de canal lateral reducidas, lo cual puede mejorar la eficiencia de codificación.
[0044] El ecualizador temporal 108 puede determinar un valor de desplazamiento final 116 (por ejemplo, un valor de desplazamiento no causal) indicativo del desplazamiento (por ejemplo, un desplazamiento no causal) de la primera señal de audio 130 (por ejemplo, "objetivo") en relación con la segunda señal de audio 132 (por ejemplo, de "referencia"). El valor de desplazamiento final 116 puede basarse en el valor de comparación instantáneo CompVaN (k) y la comparación a largo plazo CompValLTN-1(k). Por ejemplo, la operación de suavizado descrita anteriormente se puede realizar en un valor de desplazamiento tentativo, en un valor de desplazamiento interpolado, en un valor de desplazamiento modificado, o una combinación de los mismos, como se describe con respecto a la FIG. 5. El valor de desplazamiento final 116 puede basarse en el valor de desplazamiento tentativo, el valor de desplazamiento interpolado y el valor de desplazamiento modificado, como se describe con respecto a la FIG. 5. Un primer valor (por ejemplo, un valor positivo) del valor de desplazamiento final 116 puede indicar que la segunda señal de audio 132 está retardada en relación con la primera señal de audio 130. Un segundo valor (por ejemplo, un valor negativo) del valor de desplazamiento final 116 puede indicar que la primera señal de audio 130 está retardada en relación con la segunda señal de audio 132. Un tercer valor (por ejemplo, 0) del valor de desplazamiento final 116 puede indicar que no hay retardo entre la primera señal de audio 130 y la segunda señal de audio 132.
[0045] En algunas implementaciones, el tercer valor (por ejemplo, 0) del valor de desplazamiento final 116 puede indicar que el retardo entre la primera señal de audio 130 y la segunda señal de audio 132 ha cambiado de signo. Por ejemplo, una primera trama particular de la primera señal de audio 130 puede preceder la primera trama. La primera trama particular y una segunda trama particular de la segunda señal de audio 132 pueden corresponder al mismo sonido emitido por la fuente de sonido 152. El retardo entre la primera señal de audio 130 y la segunda señal de audio 132 puede cambiar de tener la primera trama particular retardada con respecto a la segunda trama particular a tener la segunda trama retardada con respecto a la primera trama. De forma alternativa, el retardo entre la primera señal de audio 130 y la segunda señal de audio 132 puede cambiar de tener la segunda trama particular retardada con respecto a la primera trama particular a tener la primera trama retardada con respecto a la segunda trama. El ecualizador temporal 108 puede establecer el valor de desplazamiento final 116 para indicar el tercer valor (por ejemplo, 0) en respuesta a la determinación de que el retardo entre la primera señal de audio 130 y la segunda señal de audio 132 ha cambiado de signo.
[0046] El ecualizador temporal 108 puede generar un indicador de señal de referencia 164 basado en el valor de desplazamiento final de 116. Por ejemplo, el ecualizador temporal 108 puede, en respuesta a la determinación de que el valor de desplazamiento final 116 indica un primer valor (por ejemplo, un valor positivo), generar el indicador de señal de referencia 164 para tener un primer valor (por ejemplo, 0) que indica que la primera señal de audio 130 es una señal de "referencia". El ecualizador temporal 108 puede determinar que la segunda señal de audio 132 corresponde a una señal "objetivo" en respuesta a la determinación de que el valor de desplazamiento final 116 indica el primer valor (por ejemplo, un valor positivo). De forma alternativa, el ecualizador temporal 108 puede, en respuesta a la determinación de que el valor de desplazamiento final 116 indica un segundo valor (por ejemplo, un valor negativo), generar el indicador de señal de referencia 164 para tener un segundo valor (por ejemplo, 1) que indica que la segunda señal de audio 132 es la señal de "referencia". El ecualizador temporal 108 puede determinar que la primera señal de audio 130 corresponde a la señal "objetivo" en respuesta a la determinación de que el valor de desplazamiento final 116 indica el segundo valor (por ejemplo, un valor negativo). El ecualizador temporal 108 puede, en respuesta a la determinación de que el valor de desplazamiento final 116 indica un tercer valor (por ejemplo, 0), generar el indicador de señal de referencia 164 para tener un primer valor (por ejemplo, 0) que indica que la primera señal de audio 130 es una señal de "referencia". El ecualizador temporal 108 puede determinar que la segunda señal de audio 132 corresponde a una señal "objetivo" en respuesta a la determinación de que el valor de desplazamiento final 116 indica el tercer valor (por ejemplo, 0). De forma alternativa, el ecualizador temporal 108 puede, en respuesta a la determinación de que el valor de desplazamiento final 116 indica un tercer valor (por ejemplo, 0), generar el indicador de señal de referencia 164 para tener un segundo valor (por ejemplo, 1) que indica que la segunda señal de audio 132 es una señal de "referencia". El ecualizador temporal 108 puede determinar que la primera señal de audio 130 corresponde a una señal "objetivo" en respuesta a la determinación de que el valor de desplazamiento final 116 indica el tercer valor (por ejemplo, 0). En algunas implementaciones, el ecualizador temporal 108 puede, en respuesta a la determinación de que el valor de desplazamiento final 116 indica un tercer valor (por ejemplo, 0), dejar el indicador de señal de referencia 164 sin cambios. Por ejemplo, el indicador de señal de referencia 164 puede ser el mismo que un indicador de señal de referencia correspondiente a la primera trama particular de la primera señal de audio 130. El ecualizador temporal 108 puede generar un valor de desplazamiento no causal 162 indicando un valor absoluto del valor de desplazamiento final 116.
[0047] El ecualizador temporal 108 puede generar un parámetro de ganancia 160 (por ejemplo, un parámetro de ganancia de códec) basado en muestras de la señal "objetivo" y basado en muestras de la señal de "referencia". Por ejemplo, el ecualizador temporal 108 puede seleccionar muestras de la segunda señal de audio 132 basándose en el valor de desplazamiento no causal 162. De forma alternativa, el ecualizador temporal 108 puede seleccionar muestras de la segunda señal de audio 132 independientemente del valor de desplazamiento no causal 162. El ecualizador temporal 108 puede, en respuesta a la determinación de que la primera señal de audio 130 es la señal de referencia, determinar el parámetro de ganancia 160 de las muestras seleccionadas basándose en las primeras muestras de la primera trama de la primera señal de audio 130. De forma alternativa, el ecualizador temporal 108 puede, en respuesta a la determinación de que la segunda señal de audio 132 es la señal de referencia, determinar el parámetro de ganancia 160 de las primeras muestras basándose en las muestras seleccionadas. Como ejemplo, el parámetro de ganancia 160 puede basarse en una de las siguientes ecuaciones:
_ lS = 0 W1 Re f i n ) T arg (n+ N i)
Ecuación la
'Zn=l¡' Targ 2 (n+N-¡) 5
Figure imgf000010_0001
Ecuación Ib
Y.n=i,¡<er{n) Tarff(n)
9d = Ecuación le
Sn=aTarS2(n) ’
= EEUIWOOI
9 ° Z Nn=a\T a rg {n )\’ Ecuación Id
tn=o H efin) Targ(n)
9d = Ecuación le
Ecuación lf
ziSUiwooi
[0048] donde gD corresponde al parámetro de ganancia relativa 160 para el procesamiento de mezcla descendente, Ref(n) corresponde a muestras de la señal de "referencia", N1 corresponde al valor de desplazamiento no causal 162 de la primera trama y Targ(n + N1) corresponde a muestras de la señal "objetivo". El parámetro de ganancia 160 (gD) puede modificarse, por ejemplo, basándose en una de las ecuaciones 1a - 1f, para incorporar la lógica de suavizado/histéresis a largo plazo para evitar grandes saltos en la ganancia entre tramas. Cuando la señal objetivo incluye la primera señal de audio 130, las primeras muestras pueden incluir muestras de la señal objetivo y las muestras seleccionadas pueden incluir muestras de la señal de referencia. Cuando la señal objetivo incluye la segunda señal de audio 132, las primeras muestras pueden incluir muestras de la señal de referencia y las muestras seleccionadas pueden incluir muestras de la señal objetivo.
[0049] En algunas implementaciones, el ecualizador temporal 108 puede generar el parámetro de ganancia 160 basado en el tratamiento de la primera señal de audio 130 como una señal de referencia y en el tratamiento de la segunda señal de audio 132 como una señal objetivo, independientemente del indicador de señal de referencia 164. Por ejemplo, el ecualizador temporal 108 puede generar el parámetro de ganancia 160 basado en una de las ecuaciones 1 a-1 f donde Ref(n) corresponde a muestras (por ejemplo, las primeras muestras) de la primera señal de audio 130 y Targ(n+N1) corresponde a muestras (por ejemplo, las muestras seleccionadas) de la segunda señal de audio 132. En implementaciones alternativas, el ecualizador temporal 108 puede generar el parámetro de ganancia 160 basado en el tratamiento de la segunda señal de audio 132 como una señal de referencia y en el tratamiento de la primera señal de audio 130 como una señal objetivo, independientemente del indicador de señal de referencia 164. Por ejemplo, el ecualizador temporal 108 puede generar el parámetro de ganancia 160 basado en una de las ecuaciones 1 a-1 f donde Ref(n) corresponde a muestras (por ejemplo, las muestras seleccionadas) de la segunda señal de audio 132 y Targ(n+N1) corresponde a muestras (por ejemplo, las primeras muestras) de la primera señal de audio 130.
[0050] El ecualizador temporal 108 puede generar una o más señales codificadas 102 (por ejemplo, una señal de canal medio, una señal de canal lateral, o ambas) basándose en las primeras muestras, las muestras seleccionadas y el parámetro de ganancia relativa 160 para el procesamiento de mezcla descendente. Por ejemplo, el ecualizador temporal 108 puede generar la señal media basándose en una de las siguientes ecuaciones:
M = Ref{n) gDTarg{n Nf), Ecuación 2a.
M - Ref(n) Targ{n Nf), Ecuación 2 b
M = DMXFAC * Ref(n) (1 - DMXFAC) $ gDTarg{n ¡VJ. Ecuación 2c
M = DMXFAC * Ref(n) (1 - DMXFAC) * Targ{n + NJ, Ecuación 2d
[0051] donde M corresponde a la señal de canal medio, gD corresponde al parámetro de ganancia relativa 160 para el procesamiento de mezcla descendente, Ref(n) corresponde a muestras de la señal de "referencia", N1 corresponde al valor de desplazamiento no causal 162 de la primera trama, y Targ(n + N1) corresponde a muestras de la señal "objetivo". DMXFAC puede corresponder a un factor de mezcla descendente, como se describe adicionalmente con referencia a la FIG. 19.
[0052] El ecualizador temporal 108 puede generar la señal de canal lateral basándose en una de las siguientes ecuaciones:
S = Ref(n) - gDTargin N-f). Ecuación 3 a
S = gaRef{n) - Targin JVJ, Ecuación 3b
S = (1 - DMXFAC) * Re fin) - iDMXFAC) * gDTarg(n NJ, Ecuación 3 c
S = (1 - DMXFAC) * Refin) - {DMXFAC) * Targ{n Nt\ Ecuación 3d
[0053] donde S corresponde a la señal de canal lateral, gD corresponde al parámetro de ganancia relativa 160 para el procesamiento de mezcla descendente, Ref(n) corresponde a muestras de la señal de "referencia", N1 corresponde al valor de desplazamiento no causal 162 de la primera trama y Targ(n + N1) corresponde a muestras de la señal "objetivo".
[0054] El transmisor 110 puede transmitir las señales codificadas 102 (por ejemplo, la señal de canal medio, la señal de canal lateral, o ambas), el indicador de señal de referencia 164, el valor de desplazamiento no causal 162, el parámetro de ganancia 160, o una combinación de los mismos, a través de la red 120, al segundo dispositivo 106. En algunas implementaciones, el transmisor 110 puede almacenar las señales codificadas 102 (por ejemplo, la señal de canal medio, la señal de canal lateral, o ambas), el indicador de señal de referencia 164, el valor de desplazamiento no causal 162, el parámetro de ganancia 160, o una combinación de los mismos, en un dispositivo de la red 120 o un dispositivo local para su procesamiento adicional o descodificación posterior.
[0055] El descodificador 118 puede descodificar las señales codificadas 102. El equilibrador temporal 124 puede realizar la mezcla ascendente para generar una primera señal de salida 126 (por ejemplo, correspondiente a la primera señal de audio 130), una segunda señal de salida 128 (por ejemplo, correspondiente a la segunda señal de audio 132), o ambos. El segundo dispositivo 106 puede emitir la primera señal de salida 126 a través del primer altavoz 142. El segundo dispositivo 106 puede emitir la segunda señal de salida 128 a través del segundo altavoz 144.
[0056] Por tanto, el sistema 100 puede permitir que el ecualizador temporal 108 codifique la señal de canal lateral usando menos bits que la señal media. Las primeras muestras de la primera trama de la primera señal de audio 130 y las muestras seleccionadas de la segunda señal de audio 132 pueden corresponder al mismo sonido emitido por la fuente de sonido 152 y, por lo tanto, una diferencia entre las primeras muestras y las muestras seleccionadas puede ser inferior a entre las primeras muestras y otras muestras de la segunda señal de audio 132. La señal de canal lateral puede corresponder a la diferencia entre las primeras muestras y las muestras seleccionadas.
[0057] Con referencia a la FIG. 2, se divulga una implementación ilustrativa particular de un sistema y se designa en general 200. El sistema 200 incluye un primer dispositivo 204 acoplado, a través de la red 120, al segundo dispositivo 106. El primer dispositivo 204 puede corresponder al primer dispositivo 104 de la FIG. 1. El sistema 200 difiere del sistema 100 de la FIG. 1 en que el primer dispositivo 204 está acoplado a más de dos micrófonos. Por ejemplo, el primer dispositivo 204 puede estar acoplado al primer micrófono 146, un enésimo micrófono 248 y uno o más micrófonos adicionales (por ejemplo, el segundo micrófono 148 de la FIG. 1). El segundo dispositivo 106 puede estar acoplado al primer altavoz 142, un Y-ésimo altavoz 244, uno o más altavoces adicionales (por ejemplo, el segundo altavoz 144), o una combinación de los mismos. El primer dispositivo 204 puede incluir un codificador 214. El codificador 214 puede corresponder al codificador 114 de la FIG. 1. El codificador 214 puede incluir uno o más ecualizadores temporales 208. Por ejemplo, el (los) ecualizador(es) temporal(es) 208 puede(n) incluir el ecualizador temporal 108 de la FIG. 1.
[0058] Durante el funcionamiento, el primer dispositivo 204 puede recibir más de dos señales de audio. Por ejemplo, el primer dispositivo 204 puede recibir la primera señal de audio 130 a través del primer micrófono 146, una N-ésima señal de audio 232 a través del N-ésimo micrófono 248 y una o más señales de audio adicionales (por ejemplo, la segunda señal de audio 132) a través de los micrófonos (por ejemplo, el segundo micrófono 148).
[0059] El (los) ecualizador(es) temporal(es) 208 puede(n) generar uno o más indicadores de señal de referencia 264, valores de desplazamiento finales 216, valores de desplazamiento no causales 262, parámetros de ganancia 260, señales codificadas 202, o una combinación de las mismos. Por ejemplo, el (los) ecualizador(es) temporal(es) 208 puede(n) determinar que la primera señal de audio 130 es una señal de referencia y que cada una de la N-ésima señal de audio 232 y las señales de audio adicionales es una señal objetivo. El (los) ecualizador(es) temporal(es) 208 puede(n) generar el indicador de señal de referencia 164, los valores de desplazamiento finales 216, los valores de desplazamiento no causales 262, los parámetros de ganancia 260 y las señales codificadas 202 correspondientes a la primera señal de audio 130 y cada una de la N-ésima señal de audio 232 y las señales de audio adicionales.
[0060] Los indicadores de señal de referencia 264 pueden incluir el indicador de señal de referencia 164. Los valores de desplazamiento finales 216 pueden incluir el valor de desplazamiento final 116 indicativo de un desplazamiento de la segunda señal de audio 132 en relación con la primera señal de audio 130, un segundo valor de desplazamiento final indicativo de un desplazamiento de la N-ésima señal de audio 232 en relación con la primera señal de audio 130, o ambos. Los valores de desplazamiento no causales 262 pueden incluir el valor de desplazamiento no causal 162 correspondiente a un valor absoluto del valor de desplazamiento final 116, un segundo valor de desplazamiento no causal correspondiente a un valor absoluto del segundo valor de desplazamiento final, o ambos. Los parámetros de ganancia 260 pueden incluir el parámetro de ganancia 160 de muestras seleccionadas de la segunda señal de audio 132, un segundo parámetro de ganancia de muestras seleccionadas de la N-ésima señal de audio 232, o ambos. Las señales codificadas 202 pueden incluir al menos una de las señales codificadas 102. Por ejemplo, las señales codificadas 202 pueden incluir la señal de canal lateral correspondiente a las primeras muestras de la primera señal de audio 130 y muestras seleccionadas de la segunda señal de audio 132, un segundo canal lateral correspondiente a las primeras muestras y muestras seleccionadas de la N-ésima señal de audio 232, o ambos. Las señales codificadas 202 pueden incluir una señal de canal medio correspondiente a las primeras muestras, las muestras seleccionadas de la segunda señal de audio 132 y las muestras seleccionadas de la N-ésima señal de audio 232.
[0061] En algunas implementaciones, el (los) ecualizador(es) temporal(es) 208 puede(n) determinar múltiples señales de referencia y señales objetivo correspondientes, como se describe con referencia a la FIG. 15. Por ejemplo, los indicadores de señal de referencia 264 pueden incluir un indicador de señal de referencia correspondiente a cada par de señal de referencia y señal objetivo. A modo ilustrativo, los indicadores de señal de referencia 264 pueden incluir el indicador de señal de referencia 164 correspondiente a la primera señal de audio 130 y la segunda señal de audio 132. Los valores de desplazamiento finales 216 pueden incluir un valor de desplazamiento final correspondiente a cada par de señal de referencia y señal objetivo. Por ejemplo, los valores de desplazamiento finales 216 pueden incluir el valor de desplazamiento final 116 correspondiente a la primera señal de audio 130 y la segunda señal de audio 132. Los valores de desplazamiento no causales 262 pueden incluir un valor de desplazamiento no causal correspondiente a cada par de señal de referencia y señal objetivo. Por ejemplo, los valores de desplazamiento no causales 262 pueden incluir el valor de desplazamiento no causal 162 correspondiente a la primera señal de audio 130 y la segunda señal de audio 132. Los parámetros de ganancia 260 pueden incluir un parámetro de ganancia correspondiente a cada par de señal de referencia y señal objetivo. Por ejemplo, los parámetros de ganancia 260 pueden incluir el parámetro de ganancia 160 correspondiente a la primera señal de audio 130 y la segunda señal de audio 132. Las señales codificadas 202 pueden incluir una señal de canal medio y una señal de canal lateral correspondiente a cada par de señal de referencia y señal objetivo. Por ejemplo, las señales codificadas 202 pueden incluir las señales codificadas 102 correspondientes a la primera señal de audio 130 y la segunda señal de audio 132.
[0062] El transmisor 110 puede transmitir los indicadores de señal de referencia 264, los valores de desplazamiento no causales 262, los parámetros de ganancia 260, las señales codificadas 202, o una combinación de los mismos, a través de la red 120, al segundo dispositivo 106. El descodificador 118 puede generar una o más señales de salida basadas en los indicadores de señal de referencia 264, los valores de desplazamiento no causales 262, los parámetros de ganancia 260, las señales codificadas 202, o una combinación de los mismos. Por ejemplo, el descodificador 118 puede emitir una primera señal de salida 226 a través del primer altavoz 142, una Y-ésima señal de salida 228 a través del Y-ésimo altavoz 244, una o más señales de salida adicionales (por ejemplo, la segunda señal de salida 128) a través de uno o más altavoces adicionales (por ejemplo, el segundo altavoz 144), o una combinación de los mismos.
[0063] Por tanto, el sistema 200 puede permitir que el (los) ecualizador(es) temporal(es) 208 codifique(n) más de dos señales de audio. Por ejemplo, las señales codificadas 202 pueden incluir múltiples señales de canal lateral que se codifican usando menos bits que los canales medios correspondientes generando las señales de canal lateral basadas en los valores de desplazamiento no causales 262.
[0064] Con referencia a la FIG. 3, se muestran ejemplos ilustrativos de muestras y se designan en general como 300. Al menos un subconjunto de las muestras 300 puede estar codificado por el primer dispositivo 104, como se describe en el presente documento.
[0065] Las muestras 300 pueden incluir primeras muestras 320 correspondientes a la primera señal de audio 130, segundas muestras 350 correspondientes a la segunda señal de audio 132, o ambas. Las primeras muestras 320 pueden incluir una muestra 322, una muestra 324, una muestra 326, una muestra 328, una muestra 330, una muestra 332, una muestra 334, una muestra 336, una o más muestras adicionales, o una combinación de las mismas. Las segundas muestras 350 pueden incluir una muestra 352, una muestra 354, una muestra 356, una muestra 358, una muestra 360, una muestra 362, una muestra 364, una muestra 366, una o más muestras adicionales, o una combinación de las mismas.
[0066] La primera señal de audio 130 puede corresponder a una pluralidad de tramas (por ejemplo, una trama 302, una trama 304, una trama 306 o una combinación de las mismas). Cada una de la pluralidad de tramas puede corresponder a un subconjunto de muestras (por ejemplo, correspondiente a 20 ms, tal como 640 muestras a 32 kHz o 960 muestras a 48 kHz) de las primeras muestras 320. Por ejemplo, la trama 302 puede corresponder a la muestra 322, la muestra 324, una o más muestras adicionales, o una combinación de las mismas. La trama 304 puede corresponder a la muestra 326, la muestra 328, la muestra 330, la muestra 332, una o más muestras adicionales, o una combinación de las mismas. La trama 306 puede corresponder a la muestra 334, la muestra 336, una o más muestras adicionales, o una combinación de las mismas.
[0067] La muestra 322 puede recibirse en la interfaz o interfaces de entrada 112 de la FIG. 1 aproximadamente al mismo tiempo que la muestra 352. La muestra 324 puede recibirse en la interfaz o interfaces de entrada 112 de la FIG. 1 aproximadamente al mismo tiempo que la muestra 354. La muestra 326 puede recibirse en la interfaz o interfaces de entrada 112 de la FIG. 1 aproximadamente al mismo tiempo que la muestra 356. La muestra 328 puede recibirse en la interfaz o interfaces de entrada 112 de la FIG. 1 aproximadamente al mismo tiempo que la muestra 358. La muestra 330 puede recibirse en la interfaz o interfaces de entrada 112 de la FIG. 1 aproximadamente al mismo tiempo que la muestra 360. La muestra 332 puede recibirse en la interfaz o interfaces de entrada 112 de la FIG. 1 aproximadamente al mismo tiempo que la muestra 362. La muestra 334 puede recibirse en la interfaz o interfaces de entrada 112 de la FIG. 1 aproximadamente al mismo tiempo que la muestra 364. La muestra 336 puede recibirse en la interfaz o interfaces de entrada 112 de la FIG. 1 aproximadamente al mismo tiempo que la muestra 366.
[0068] Un primer valor (por ejemplo, un valor positivo) del valor de desplazamiento final 116 puede indicar que la segunda señal de audio 132 está retardada en relación con la primera señal de audio 130. Por ejemplo, un primer valor (por ejemplo, X ms o Y muestras, donde X e Y incluyen números reales positivos) del valor de desplazamiento final 116 puede indicar que la trama 304 (por ejemplo, las muestras 326-332) corresponden a las muestras 358-364. Las muestras 326-332 y las muestras 358-364 pueden corresponder al mismo sonido emitido desde la fuente de sonido 152. Las muestras 358-364 pueden corresponder a una trama 344 de la segunda señal de audio 132. La ilustración de muestras con sombreado transversal en una o más de las FIGS. 1-15 puede indicar que las muestras corresponden al mismo sonido. Por ejemplo, las muestras 326-332 y las muestras 358-364 se ilustran con sombreado transversal en la FIG. 3 para indicar que las muestras 326-332 (por ejemplo, la trama 304) y las muestras 358-364 (por ejemplo, la trama 344) corresponden al mismo sonido emitido desde la fuente de sonido 152.
[0069] Debe entenderse que una desviación temporal de Y muestras, como se muestra en la FIG. 3, es ilustrativa. Por ejemplo, la desviación temporal puede corresponder a varias muestras, Y, que es mayor o igual a 0. En un primer caso donde la desviación temporal Y = 0 muestras, las muestras 326-332 (por ejemplo, correspondiente a la trama 304) y las muestras 356-362 (por ejemplo, correspondiente a la trama 344) pueden mostrar una gran similitud sin ninguna desviación de trama. En un segundo caso donde la desviación temporal Y = 2 muestras, la trama 304 y la trama 344 pueden estar desviadas por 2 muestras. En este caso, la primera señal de audio 130 puede recibirse antes de la segunda señal de audio 132 en la interfaz o interfaces de entrada 112 por Y = 2 muestras o X = (2/Fs) ms, donde Fs corresponde a la frecuencia de muestreo en kHz. En algunos casos, la desviación temporal, Y, puede incluir un valor no entero, por ejemplo, Y = 1,6 muestras correspondiente a X = 0,05 ms a 32 kHz.
[0070] El ecualizador temporal 108 de la FIG. 1 puede generar las señales codificadas 102 codificando las muestras 326-332 y las muestras 358-364, como se describe con referencia a la FIG. 1. El ecualizador temporal 108 puede determinar que la primera señal de audio 130 corresponde a una señal de referencia y que la segunda señal de audio 132 corresponde a una señal objetivo.
[0071] Con referencia a la FIG. 4, se muestran ejemplos ilustrativos de muestras y se designan en general como 400. Las muestras 400 difieren de las muestras 300 en que la primera señal de audio 130 se retarda con respecto a la segunda señal de audio 132.
[0072] Un segundo valor (por ejemplo, un valor negativo) del valor de desplazamiento final 116 puede indicar que la primera señal de audio 130 está retardada en relación con la segunda señal de audio 132. Por ejemplo, el segundo valor (por ejemplo, -X ms o -Y muestras, donde X e Y incluyen números reales positivos) del valor de desplazamiento final 116 puede indicar que la trama 304 (por ejemplo, las muestras 326-332) corresponden a las muestras 354-360. Las muestras 354-360 pueden corresponder a la trama 344 de la segunda señal de audio 132. Las muestras 354-360 (por ejemplo, la trama 344) y las muestras 326-332 (por ejemplo, la trama 304) pueden corresponder al mismo sonido emitido desde la fuente de sonido 152.
[0073] Debe entenderse que una desviación temporal de -Y muestras, como se muestra en la FIG. 4, es ilustrativa. Por ejemplo, la desviación temporal puede corresponder a varias muestras, -Y, que es menor que o igual a 0. En un primer caso donde la desviación temporal Y = 0 muestras, las muestras 326-332 (por ejemplo, correspondiente a la trama 304) y las muestras 356-362 (por ejemplo, correspondiente a la trama 344) pueden mostrar una gran similitud sin ninguna desviación de trama. En un segundo caso donde la desviación temporal Y = -6 muestras, la trama 304 y la trama 344 pueden estar desviadas por 6 muestras. En este caso, la primera señal de audio 130 puede recibirse posterior a la segunda señal de audio 132 en la interfaz o interfaces de entrada 112 por Y = -6 muestras o X = (-6/Fs) ms, donde Fs corresponde a la frecuencia de muestreo en kHz. En algunos casos, la desviación temporal, Y, puede incluir un valor no entero, por ejemplo, Y = -3,2 muestras correspondiente a X = -0,1 ms a 32 kHz.
[0074] El ecualizador temporal 108 de la FIG. 1 puede generar las señales codificadas 102 codificando las muestras 354-360 y las muestras 326-332, como se describe con referencia a la FIG. 1. El ecualizador temporal 108 puede determinar que la segunda señal de audio 132 corresponde a una señal de referencia y que la primera señal de audio 130 corresponde a una señal objetivo. En particular, el ecualizador temporal 108 puede estimar el valor de desplazamiento no causal 162 a partir del valor de desplazamiento final 116, como se describe con referencia a la FIG. 5. El ecualizador temporal 108 puede identificar (por ejemplo, designar) una de la primera señal de audio 130 o la segunda señal de audio 132 como una señal de referencia y la otra de la primera señal de audio 130 o la segunda señal de audio 132 como una señal objetivo basándose en un signo del valor de desplazamiento final 116.
[0075] Con referencia a la FIG. 5, un ejemplo ilustrativo de un sistema se muestra y se designa en general como 500. El sistema 500 puede corresponder al sistema 100 de la FIG. 1. Por ejemplo, el sistema 100, el primer dispositivo 104 de la FIG. 1, o ambos, pueden incluir uno o más componentes del sistema 500. El ecualizador temporal 108 puede incluir un remuestreador 504, un comparador de señal 506, un interpolador 510, un refinador de desplazamiento 511, un analizador de desplazamiento de desplazamiento 512, un generador de desplazamiento absoluto 513, un designador de señal de referencia 508, un generador de parámetros de ganancia 514, un generador de señal 516, o una combinación de los mismos.
[0076] Durante el funcionamiento, el remuestreador 504 puede generar una o más señales remuestreadas, como se describe adicionalmente con referencia a la FIG. 6. Por ejemplo, el remuestreador 504 puede generar una primera señal remuestreada 530 mediante el remuestreo (por ejemplo, muestreo descendente o muestreo ascendente) de la primera señal de audio 130 basándose en un factor de remuestreo (por ejemplo, muestreo descendente o muestreo ascendente) (D) (por ejemplo, > 1). El remuestreador 504 puede generar una segunda señal remuestreada 532 remuestreando la segunda señal de audio 132 basándose en el factor de remuestreo (D). El remuestreador 504 puede proporcionar la primera señal remuestreada 530, la segunda señal remuestreada 532, o ambas, al comparador de señales 506.
[0077] El comparador de señales 506 puede generar valores de comparación 534 (por ejemplo, valores de diferencia, valores de variación, valores de similitud, valores de coherencia o valores de correlación cruzada), un valor de desplazamiento tentativo 536, o ambos, como se describe adicionalmente con referencia a la FIG. 7. Por ejemplo, el comparador de señales 506 puede generar los valores de comparación 534 basados en la primera señal remuestreada 530 y una pluralidad de valores de desplazamiento aplicados a la segunda señal remuestreada 532, como se describe adicionalmente con referencia a la FIG. 7. El comparador de señales 506 puede determinar el valor de desplazamiento tentativo 536 basándose en los valores de comparación 534, como se describe adicionalmente con referencia a la FIG. 7. De acuerdo con una implementación, el comparador de señales 506 puede recuperar valores de comparación para tramas previas de las señales remuestreadas 530, 532 y puede modificar los valores de comparación 534 basándose en una operación de suavizado a largo plazo usando los valores de comparación para tramas previas. Por ejemplo, los valores de comparación 534 pueden incluir el valor de comparación a largo plazo CompValLTN(k) para una trama actual (N) y pueden estar representados por CompValLTN(k) = (1 - a) * CompValN(k), (a) * CompValLTN -i(k), donde a e (0,1,0). Por lo tanto, el valor de comparación a largo plazo CompValLTN(k) puede basarse en una mezcla ponderada del valor de comparación instantáneo CompValN(k) en la trama N y los valores de comparación a largo plazo CompValLTN-1(k) para una o más tramas anteriores. A medida que aumenta el valor de a, aumenta la cantidad de suavizado en el valor de comparación a largo plazo.
[0078] La primera señal remuestreada 530 puede incluir menos muestras o más muestras que la primera señal de audio 130. La segunda señal remuestreada 532 puede incluir menos muestras o más muestras que la segunda señal de audio 132. La determinación de los valores de comparación 534 basándose en la menor cantidad de muestras de las señales remuestreadas (por ejemplo, la primera señal remuestreada 530 y la segunda señal remuestreada 532) puede usar menos recursos (por ejemplo, tiempo, número de operaciones o ambos) que en muestras de señales originales (por ejemplo, la primera señal de audio 130 y la segunda señal de audio 132). La determinación de los valores de comparación 534 basándose en la mayor cantidad de muestras de las señales remuestreadas (por ejemplo, la primera señal remuestreada 530 y la segunda señal remuestreada 532) puede incrementar más la precisión que en las muestras de las señales originales (por ejemplo, la primera señal de audio 130 y la segunda señal de audio 132). El comparador de señales 506 puede proporcionar los valores de comparación 534, el valor de desplazamiento tentativo 536, o ambos, al interpolador 510.
[0079] El interpolador 510 puede extender el valor de desplazamiento tentativo 536. Por ejemplo, el interpolador 510 puede generar un valor de desplazamiento interpolado 538, como se describe adicionalmente con referencia a la FIG.
8. Por ejemplo, el interpolador 510 puede generar valores de comparación interpolados correspondientes a valores de desplazamiento que están próximos al valor de desplazamiento tentativo 536 interpolando los valores de comparación 534. El interpolador 510 puede determinar el valor de desplazamiento interpolado 538 basándose en los valores de comparación interpolados y los valores de comparación 534. Los valores de comparación 534 pueden basarse en una granularidad más gruesa de los valores de desplazamiento. Por ejemplo, los valores de comparación 534 pueden basarse en un primer subconjunto de un conjunto de valores de desplazamiento de modo que una diferencia entre un primer valor de desplazamiento del primer subconjunto y cada segundo valor de desplazamiento del primer subconjunto sea mayor o igual a un umbral (por ejemplo, > 1). El umbral puede basarse en el factor de remuestreo (D).
[0080] Los valores de comparación interpolados pueden basarse en una granularidad más fina de los valores de desplazamiento que se aproximan al valor de desplazamiento tentativo remuestreado 536. Por ejemplo, los valores de comparación interpolados pueden basarse en un segundo subconjunto del conjunto de valores de desplazamiento de modo que la diferencia entre un valor de desplazamiento más alto del segundo subconjunto y el valor de desplazamiento tentativo remuestreado 536 sea menor que el umbral (por ejemplo, >1), y una diferencia entre el valor de desplazamiento más bajo del segundo subconjunto y el valor de desplazamiento tentativo remuestreado 536 sea menor que el umbral. La determinación de los valores de comparación 534 basándose en la granularidad más gruesa (por ejemplo, el primer subconjunto) del conjunto de valores de desplazamiento puede usar menos recursos (por ejemplo, tiempo, operaciones o ambos) que la determinación de los valores de comparación 534 basándose en una granularidad más fina (por ejemplo, todos) del conjunto de valores de desplazamiento. La determinación de los valores de comparación interpolados correspondientes al segundo subconjunto de valores de desplazamiento puede extender el valor de desplazamiento tentativo 536 basándose en una granularidad más fina de un conjunto más pequeño de valores de desplazamiento que se aproximan al valor de desplazamiento tentativo 536 sin determinar los valores de comparación correspondientes a cada valor de desplazamiento del conjunto de valores de desplazamiento. Por tanto, determinar el valor de desplazamiento tentativo 536 basándose en el primer subconjunto de valores de desplazamiento y determinar el valor de desplazamiento interpolado 538 basándose en los valores de comparación interpolados puede equilibrar el uso de recursos y el refinamiento del valor de desplazamiento estimado. El interpolador 510 puede proporcionar el valor de desplazamiento interpolado 538 al refinador de desplazamiento 511.
[0081] De acuerdo con una implementación, el interpolador 510 puede recuperar valores de desplazamiento interpolados para tramas anteriores y puede modificar el valor de desplazamiento interpolado 538 basándose en una operación de suavizado a largo plazo utilizando los valores de desplazamiento interpolados para tramas anteriores. Por ejemplo, el valor de desplazamiento interpolado 538 puede incluir un valor de desplazamiento interpolado a largo plazo InterValLTN(k) para una trama actual (N) y puede estar representado por InterValLTN(k) = (1 - a) * InterValN(k), + (a) * InterValLTN-1(k), donde a e (0,1,0). Por lo tanto, el valor de desplazamiento interpolado a largo plazo InterValLTN(k) puede basarse en una mezcla ponderada del valor de desplazamiento interpolado instantáneo InterVaN (k) en la trama N y los valores de desplazamiento interpolados a largo plazo InterValLTN-1(k) para una o más tramas anteriores. A medida que aumenta el valor de a, aumenta la cantidad de suavizado en el valor de comparación a largo plazo.
[0082] El refinador de desplazamiento 511 puede generar un valor de desplazamiento modificado 540 refinando el valor de desplazamiento interpolado 538, como se describe adicionalmente con referencia a las FIGS. 9A-9C. Por ejemplo, el refinador de desplazamiento 511 puede determinar si el valor de desplazamiento interpolado 538 indica que un desplazamiento en un desplazamiento entre la primera señal de audio 130 y la segunda señal de audio 132 es mayor que un umbral de desplazamiento de desplazamiento, como se describe adicionalmente con referencia a la FIG. 9A. El cambio en el desplazamiento puede indicarse mediante una diferencia (por ejemplo, una variación) entre el valor de desplazamiento interpolado 538 y un primer valor de desplazamiento asociado con la trama 302 de la FIG.
3. El refinador de desplazamiento 511 puede, en respuesta a la determinación de que la diferencia es menor o igual al umbral, establecer el valor de desplazamiento modificado 540 al valor de desplazamiento interpolado 538. De forma alternativa, el refinador de desplazamiento 511 puede, en respuesta a la determinación de que la diferencia es mayor que el umbral, determinar una pluralidad de valores de desplazamiento que corresponden a una diferencia que es menor o igual al umbral de cambio de desplazamiento, como se describe adicionalmente con referencia a la FIG. 9A. El refinador de desplazamiento 511 puede determinar valores de comparación basándose en la primera señal de audio 130 y la pluralidad de valores de desplazamiento aplicados a la segunda señal de audio 132. El refinador de desplazamiento 511 puede determinar el valor de desplazamiento modificado 540 basándose en los valores de comparación, como se describe adicionalmente con referencia a la FIG. 9A. Por ejemplo, el refinador de desplazamiento 511 puede seleccionar un valor de desplazamiento de la pluralidad de valores de desplazamiento basándose en los valores de comparación y el valor de desplazamiento interpolado 538, como se describe adicionalmente con referencia a la FIG. 9A. El refinador de desplazamiento 511 puede establecer el valor de desplazamiento modificado 540 para indicar el valor de desplazamiento seleccionado. Una diferencia distinta de cero entre el primer valor de desplazamiento correspondiente a la trama 302 y el valor de desplazamiento interpolado 538 puede indicar que algunas muestras de la segunda señal de audio 132 corresponden a ambas tramas (por ejemplo, la trama 302 y la trama 304). Por ejemplo, algunas muestras de la segunda señal de audio 132 pueden duplicarse durante la codificación. De forma alternativa, la diferencia distinta de cero puede indicar que algunas muestras de la segunda señal de audio 132 no corresponden ni a la trama 302 ni a la trama 304. Por ejemplo, algunas muestras de la segunda señal de audio 132 pueden perderse durante la codificación. Establecer el valor de desplazamiento modificado 540 en uno de la pluralidad de valores de desplazamiento puede evitar un gran cambio en los desplazamientos entre tramas consecutivas (o adyacentes), reduciendo así una cantidad de pérdida de muestra o duplicación de muestra durante la codificación. El refinador de desplazamiento 511 puede proporcionar el valor de desplazamiento modificado 540 al analizador de desplazamiento de desplazamiento 512.
[0083] De acuerdo con una implementación, el refinador de desplazamiento puede recuperar valores de desplazamiento modificados para tramas anteriores y puede modificar el valor de desplazamiento modificado 540 basándose en una operación de suavizado a largo plazo utilizando los valores de desplazamiento modificados para tramas anteriores. Por ejemplo, el valor de desplazamiento modificado 540 puede incluir un valor de desplazamiento modificado a largo plazo AmendValLTN (k) para una trama actual (N) y puede representarse mediante AmendValLTN(k) = (1 - a) * AmendValN(k), + (a) * AmendValLTN-1(k), donde a e (0, 1,0). Por lo tanto, el valor de desplazamiento modificado a largo plazo AppendValLTN(k) puede basarse en una mezcla ponderada del valor de desplazamiento modificado instantáneo AmendVaN (k) en la trama N y los valores de desplazamiento modificados a largo plazo AmendValLTN-1(k) para una o más tramas anteriores. A medida que aumenta el valor de a, aumenta la cantidad de suavizado en el valor de comparación a largo plazo.
[0084] En algunas implementaciones, el refinador de desplazamiento 511 puede ajustar el valor de desplazamiento interpolado 538, como se describe con referencia a la FIG. 9B. El refinador de desplazamiento 511 puede determinar el valor de desplazamiento modificado 540 basándose en el valor de desplazamiento interpolado ajustado 538. En algunas implementaciones, el refinador de desplazamiento 511 puede determinar el valor de desplazamiento modificado 540, como se describe con referencia a la FIG. 9C.
[0085] El analizador de desplazamiento de desplazamiento 512 puede determinar si el valor de desplazamiento modificado 540 indica una conmutación o retroceso en la temporización entre la primera señal de audio 130 y la segunda señal de audio 132, como se describe con referencia a la FIG. 1. En particular, un retroceso o un cambio en la temporización pueden indicar que, para la trama 302, la primera señal de audio 130 se recibe en la interfaz o interfaces de entrada 112 antes de la segunda señal de audio 132 y, para una trama posterior (por ejemplo, la trama 304 o la trama 306), la segunda señal de audio 132 se recibe en la interfaz o interfaces de entrada antes de la primera señal de audio 130. De forma alternativa, un retroceso o un cambio en la temporización pueden indicar que, para la trama 302, la segunda señal de audio 132 se recibe en la interfaz o interfaces de entrada 112 antes de la primera señal de audio 130 y, para una trama posterior (por ejemplo, la trama 304 o la trama 306), la primera señal de audio 130 se recibe en la interfaz o interfaces de entrada antes de la segunda señal de audio 132. En otras palabras, una conmutación o retroceso en la temporización puede indicar que un valor de desplazamiento final correspondiente a la trama 302 tiene un primer signo que es distinto de un segundo signo del valor de desplazamiento modificado 540 correspondiente a la trama 304 (por ejemplo, una transición positiva a negativa o viceversa). El analizador de desplazamiento de desplazamiento 512 puede determinar si el retardo entre la primera señal de audio 130 y la segunda señal de audio 132 ha cambiado de signo basándose en el valor de desplazamiento modificado 540 y el primer valor de desplazamiento asociado con la trama 302, como se describe adicionalmente con referencia a la FIG. 10 A. El analizador de desplazamiento de desplazamiento 512 puede, en respuesta a la determinación de que el retardo entre la primera señal de audio 130 y la segunda señal de audio 132 ha cambiado de signo, establecer el valor de desplazamiento final 116 en un valor (por ejemplo, 0) que indica que no hay desplazamiento de tiempo. De forma alternativa, el analizador de desplazamiento de desplazamiento 512 puede establecer el valor de desplazamiento final 116 al valor de desplazamiento modificado 540 en respuesta a la determinación de que el retardo entre la primera señal de audio 130 y la segunda señal de audio 132 no ha cambiado de signo, como se describe adicionalmente con referencia a la FIG. 10A. El analizador de desplazamiento de desplazamiento 512 puede generar un valor de desplazamiento estimado refinando el valor de desplazamiento modificado 540, como se describe adicionalmente con referencia a las FIGS. 10A, 11. El analizador de desplazamiento de desplazamiento 512 puede establecer el valor de desplazamiento final 116 al valor de desplazamiento estimado. Establecer el valor de desplazamiento final 116 para indicar que no hay desplazamiento de tiempo puede reducir la distorsión en un descodificador al abstenerse del desplazamiento de tiempo de la primera señal de audio 130 y la segunda señal de audio 132 en direcciones opuestas para tramas consecutivas (o adyacentes) de la primera señal de audio 130. El analizador de desplazamiento de desplazamiento 512 puede proporcionar el valor de desplazamiento final 116 al designador de señal de referencia 508, al generador de desplazamiento absoluto 513, o ambos. En algunas implementaciones, el analizador de desplazamiento de desplazamiento 512 puede determinar el valor de desplazamiento final 116, como se describe con referencia a la FIG. 10B.
[0086] El generador de desplazamiento absoluto 513 puede generar el valor de desplazamiento no causal 162 aplicando una función absoluta al valor de desplazamiento final 116. El generador de desplazamiento absoluto 513 puede proporcionar el valor de desplazamiento no causal 162 al generador de parámetros de ganancia 514.
[0087] El designador de señal de referencia 508 puede generar el indicador de señal de referencia 164 como se describe adicionalmente con referencia a las FIGS. 12-13. Por ejemplo, el indicador de señal de referencia 164 puede tener un primer valor que indica que la primera señal de audio 130 es una señal de referencia o un segundo valor que indica que la segunda señal de audio 132 es la señal de referencia. El designador de señal de referencia 508 puede proporcionar el indicador de señal de referencia 164 al generador de parámetros de ganancia 514.
[0088] El generador de parámetros de ganancia 514 puede seleccionar muestras de la señal objetivo (por ejemplo, la segunda señal de audio 132) basándose en el valor de desplazamiento no causal 162. A modo ilustrativo, el generador de parámetros de ganancia 514 puede seleccionar las muestras 358-364 en respuesta a la determinación de que el valor de desplazamiento no causal 162 tiene un primer valor (por ejemplo, X ms o Y muestras, donde X e Y incluyen números reales positivos). El generador de parámetros de ganancia 514 puede seleccionar las muestras 354-360 en respuesta a la determinación de que el valor de desplazamiento no causal 162 tiene un segundo valor (por ejemplo, -X ms o -Y muestras). El generador de parámetros de ganancia 514 puede seleccionar las muestras 356-362 en respuesta a la determinación de que el valor de desplazamiento no causal 162 tiene un valor (por ejemplo, 0) que indica que no hay desplazamiento de tiempo.
[0089] El generador de parámetros de ganancia 514 puede determinar si la primera señal de audio 130 es la señal de referencia o la segunda señal de audio 132 es la señal de referencia basándose en el indicador de señal de referencia 164. El generador de parámetros de ganancia 514 puede generar el parámetro de ganancia 160 basado en las muestras 326-332 de la trama 304 y las muestras seleccionadas (por ejemplo, las muestras 354-360, las muestras 356-362 o las muestras 358-364) de la segunda señal de audio 132, como se describe con referencia a la FIG. 1. Por ejemplo, el generador de parámetros de ganancia 514 puede generar el parámetro de ganancia 160 basado en una o más de la Ecuación 1a - Ecuación 1f, donde gD corresponde al parámetro de ganancia 160, Ref(n) corresponde a muestras de la señal de referencia, y Targ(n+N1) corresponde a muestras de la señal objetivo. A modo ilustrativo, Ref(n) puede corresponder a las muestras 326-332 de la trama 304 y Targ(n+tm) puede corresponder a las muestras 358-364 de la trama 344 cuando el valor de desplazamiento no causal 162 tiene un primer valor (por ejemplo, X ms o Y muestras, donde X e Y incluyen números reales positivos). En algunas implementaciones, Ref(n) puede corresponder a muestras de la primera señal de audio 130 y Targ(n+N1) puede corresponder a muestras de la segunda señal de audio 132, como se describe con referencia a la FIG. 1. En implementaciones alternativas, Ref(n) puede corresponder a muestras de la segunda señal de audio 132 y Targ(n+N1) puede corresponder a muestras de la primera señal de audio 130, como se describe con referencia a la FIG. 1.
[0090] El generador de parámetros de ganancia 514 puede proporcionar el parámetro de ganancia 160, el indicador de señal de referencia 164, el valor de desplazamiento no causal 162, o una combinación de los mismos, al generador de señal 516. El generador de señal 516 puede generar las señales codificadas 102, como se describe con referencia a la FIG. 1. Por ejemplo, las señales codificadas 102 pueden incluir una primera trama de señal codificada 564 (por ejemplo, una trama de canal medio), una segunda trama de señal codificada 566 (por ejemplo, una trama de canal lateral), o ambas. El generador de señal 516 puede generar la primera trama de señal codificada 564 basándose en la ecuación 2a o la ecuación 2b, donde M corresponde a la primera trama de señal codificada 564, gD corresponde al parámetro de ganancia 160, Ref(n) corresponde a muestras de la señal de referencia, y Targ(n+Ni) corresponde a muestras de la señal objetivo. El generador de señal 516 puede generar la segunda trama de señal codificada 566 basándose en la ecuación 3a o la ecuación 3b, donde S corresponde a la segunda trama de señal codificada 566, gD corresponde al parámetro de ganancia 160, Ref(n) corresponde a muestras de la señal de referencia señal, y Targ(n+N1) corresponde a muestras de la señal objetivo.
[0091] El ecualizador temporal 108 puede almacenar la primera señal remuestreada 530, la segunda señal remuestreada 532, los valores de comparación 534, el valor de desplazamiento tentativo 536, el valor de desplazamiento interpolado 538, el valor de desplazamiento modificado 540, el valor de desplazamiento no causal 162, el indicador de señal de referencia 164, el valor de desplazamiento final 116, el parámetro de ganancia 160, la primera trama de señal codificada 564, la segunda trama de señal codificada 566, o una combinación de los mismos, en la memoria 153. Por ejemplo, los datos de análisis 190 pueden incluir la primera señal remuestreada 530, la segunda señal remuestreada 532, los valores de comparación 534, el valor de desplazamiento tentativo 536, el valor de desplazamiento interpolado 538, el valor de desplazamiento modificado 540, el valor de desplazamiento no causal 162, el indicador de señal de referencia 164, el valor de desplazamiento final 116, el parámetro de ganancia 160, la primera trama de señal codificada 564, la segunda trama de señal codificada 566, o una combinación de los mismos.
[0092] Las técnicas de suavizado descritas anteriormente pueden normalizar sustancialmente la estimación de desplazamiento entre tramas sonoras, tramas sordas y tramas de transición. Las estimaciones de desplazamiento normalizadas pueden reducir la repetición de la muestra y la omisión de distorsiones en los límites de la trama. Además, las estimaciones de desplazamiento normalizadas pueden dar como resultado energías de canal lateral reducidas, lo cual puede mejorar la eficiencia de codificación.
[0093] Con referencia a la FIG. 6, un ejemplo ilustrativo de un sistema se muestra y se designa en general como 600. El sistema 600 puede corresponder al sistema 100 de la FIG. 1. Por ejemplo, el sistema 100, el primer dispositivo 104 de la FIG. 1, o ambos, pueden incluir uno o más componentes del sistema 600.
[0094] El remuestreador 504 puede generar las primeras muestras 620 de la primera señal remuestreada 530 remuestreando (por ejemplo, muestreo descendente o muestreo ascendente) la primera señal de audio 130 de la FIG.
1. El remuestreador 504 puede generar las segundas muestras 650 de la segunda señal remuestreada 532 remuestreando (por ejemplo, muestreo descendente o muestreo ascendente) la segunda señal de audio 132 de la FIG. 1.
[0095] La primera señal de audio 130 puede muestrearse a una primera frecuencia de muestreo (Fs) para generar las primeras muestras 320 de la FIG. 3. La primera frecuencia de muestreo (Fs) puede corresponder a una primera frecuencia (por ejemplo, 16 kilohercios (kHz)) asociada con el ancho de banda de banda ancha (WB), una segunda frecuencia (por ejemplo, 32 kHz) asociada con el ancho de banda de banda superancha (SWB), una tercera frecuencia (por ejemplo, 48 kHz) asociada con el ancho de banda de banda completa (FB) u otra frecuencia. La segunda señal de audio 132 puede muestrearse a una primera frecuencia de muestreo (Fs) para generar las muestras 350 de la FIG.
3.
[0096] En algunas implementaciones, el remuestreador 504 puede preprocesar la primera señal de audio 130 (o la segunda señal de audio 132) antes de remuestrear la primera señal de audio 130 (o la segunda señal de audio 132). El remuestreador 504 puede preprocesar la primera señal de audio 130 (o la segunda señal de audio 132) filtrando la primera señal de audio 130 (o la segunda señal de audio 132) basándose en un filtro de respuesta de impulso infinito (IIR) (por ejemplo, un filtro IIR de primer orden). El filtro IIR se puede basar en la siguiente ecuación:
H p re iz ) - V (1 — a z -1) ’ Ecuación 4
donde a es positivo, tal como 0,68 o 0,72. Al realizar la eliminación del énfasis antes del remuestreo se pueden reducir efectos, tales como el solapamiento, el condicionamiento de la señal o ambos. La primera señal de audio 130 (por ejemplo, la primera señal de audio preprocesada 130) y la segunda señal de audio 132 (por ejemplo, la segunda señal de audio preprocesada 132) se pueden remuestrear basándose en un factor de remuestreo (D). El factor de remuestreo (D) puede basarse en la primera frecuencia de muestreo (Fs) (por ejemplo, D = Fs/8, D = 2Fs, etc.).
[0097] En implementaciones alternativas, la primera señal de audio 130 y la segunda señal de audio 132 pueden filtrarse por paso bajo o eliminarse usando un filtro de antisolapamiento antes del remuestreo. El filtro de eliminación puede basarse en el factor de remuestreo (D). En un ejemplo particular, el remuestreador 504 puede seleccionar un filtro de eliminación con una primera frecuencia de corte (por ejemplo, n/D o n/4) en respuesta a la determinación de que la primera frecuencia de muestreo (Fs) corresponde a una frecuencia particular (por ejemplo, 32 kHz). Reducir el solapamiento desestimando múltiples señales (por ejemplo, la primera señal de audio 130 y la segunda señal de audio 132) puede ser computacionalmente menos costoso que aplicar un filtro de eliminación a las múltiples señales.
[0098] Las primeras muestras 620 pueden incluir una muestra 622, una muestra 624, una muestra 626, una muestra 628, una muestra 630, una muestra 632, una muestra 634, una muestra 636, una o más muestras adicionales, o una combinación de las mismas. Las primeras muestras 620 pueden incluir un subconjunto (por ejemplo, 1/8-ésimo) de las primeras muestras 320 de la FIG. 3. La muestra 622, la muestra 624, una o más muestras adicionales, o una combinación de las mismas, pueden corresponder a la trama 302. La muestra 626, la muestra 628, la muestra 630, la muestra 632, una o más muestras adicionales, o una combinación de las mismas, pueden corresponder a la trama 304. La muestra 634, la muestra 636, una o más muestras adicionales, o una combinación de las mismas, pueden corresponder a la trama 306.
[0099] Las segundas muestras 650 pueden incluir una muestra 652, una muestra 654, una muestra 656, una muestra 658, una muestra 660, una muestra 662, una muestra 664, una muestra 667, una o más muestras adicionales, o una combinación de las mismas. Las segundas muestras 650 pueden incluir un subconjunto (por ejemplo, 1/8-ésimo) de las primeras muestras 350 de la FIG. 3. Las muestras 654-660 pueden corresponder a las muestras 354-360. Por ejemplo, las muestras 654-660 pueden incluir un subconjunto (por ejemplo, 1/8-ésimo) de las muestras 354-360. Las muestras 656-662 pueden corresponder a las muestras 356-362. Por ejemplo, las muestras 656-662 pueden incluir un subconjunto (por ejemplo, 1/8-ésimo) de las muestras 356-362. Las muestras 658-664 pueden corresponder a las muestras 358-364. Por ejemplo, las muestras 658-664 pueden incluir un subconjunto (por ejemplo, 1/8-ésimo) de las muestras 358-364. En algunas implementaciones, el factor de remuestreo puede corresponder a un primer valor (por ejemplo, 1) donde las muestras 622-636 y las muestras 652-667 de la FIG. 6 puede ser similares a las muestras 322­ 336 y las muestras 352-366 de la FIG. 3, respectivamente.
[0100] El remuestreador 504 puede almacenar las primeras muestras 620, las segundas muestras 650, o ambas, en la memoria 153. Por ejemplo, los datos de análisis 190 pueden incluir las primeras muestras 620, las segundas muestras 650 o ambas.
[0101] Con referencia a la FIG. 7, un ejemplo ilustrativo de un sistema se muestra y se designa en general como 700. El sistema 700 puede corresponder al sistema 100 de la FIG. 1. Por ejemplo, el sistema 100, el primer dispositivo 104 de la FIG. 1, o ambos, pueden incluir uno o más componentes del sistema 700.
[0102] La memoria 153 puede almacenar una pluralidad de valores de desplazamiento 760. Los valores de desplazamiento 760 pueden incluir un primer valor de desplazamiento 764 (por ejemplo, -X ms o -Y muestras, donde X e Y incluyen números reales positivos), un segundo valor de desplazamiento 766 (por ejemplo, X ms o Y muestras, donde X e Y incluyen números reales positivos), o ambos. Los valores de desplazamiento 760 pueden variar desde un valor de desplazamiento inferior (por ejemplo, un valor de desplazamiento mínimo, T_MIN) hasta un valor de desplazamiento superior (por ejemplo, un valor de desplazamiento máximo, T_MAX). Los valores de desplazamiento 760 pueden indicar un desplazamiento temporal esperado (por ejemplo, un desplazamiento temporal esperado máximo) entre la primera señal de audio 130 y la segunda señal de audio 132.
[0103] Durante el funcionamiento, el comparador de señales 506 puede determinar los valores de comparación 534 basados en las primeras muestras 620 y los valores de desplazamiento 760 aplicados a las segundas muestras 650. Por ejemplo, las muestras 626-632 pueden corresponder a un primer tiempo (t). A modo ilustrativo, la interfaz o interfaces de entrada 112 de la FIG. 1 puede recibir las muestras 626-632 correspondientes a la trama 304 aproximadamente el primer tiempo (t). El primer valor de desplazamiento 764 (por ejemplo, -X ms o -Y muestras, donde X e Y incluyen números reales positivos) puede corresponder a un segundo tiempo (t-1).
[0104] Las muestras 654-660 pueden corresponder al segundo tiempo (t-1). Por ejemplo, la interfaz o interfaces de entrada 112 pueden recibir las muestras 654-660 a aproximadamente el segundo tiempo (t-1). El comparador de señal 506 puede determinar un primer valor de comparación 714 (por ejemplo, un valor de diferencia, un valor de variación o un valor de correlación cruzada) correspondiente al primer valor de desplazamiento 764 basándose en las muestras 626-632 y las muestras 654-660. Por ejemplo, el primer valor de comparación 714 puede corresponder a un valor absoluto de correlación cruzada de las muestras 626-632 y las muestras 654-660. Como otro ejemplo, el primer valor de comparación 714 puede indicar una diferencia entre las muestras 626-632 y las muestras 654-660.
[0105] El segundo valor de desplazamiento 766 (por ejemplo, X ms o Y muestras, donde X e Y incluyen números reales positivos) puede corresponder a un tercer tiempo (t+1). Las muestras 658-664 pueden corresponder al tercer tiempo (t+1). Por ejemplo, la interfaz o interfaces de entrada 112 pueden recibir las muestras 658-664 a aproximadamente el tercer tiempo (t+1). El comparador de señal 506 puede determinar un segundo valor de comparación 716 (por ejemplo, un valor de diferencia o un valor de correlación cruzada) correspondiente al segundo valor de desplazamiento 766 basándose en las muestras 626-632 y las muestras 658-664. Por ejemplo, el segundo valor de comparación 716 puede corresponder a un valor absoluto de correlación cruzada de las muestras 626-632 y las muestras 658-664. Como otro ejemplo, el segundo valor de comparación 716 puede indicar una diferencia entre las muestras 626-632 y las muestras 658-664. El comparador de señal 506 puede almacenar los valores de comparación 534 en la memoria 153. Por ejemplo, los datos de análisis 190 pueden incluir los valores de comparación 534.
[0106] El comparador de señal 506 puede identificar un valor de comparación seleccionado 736 de los valores de comparación 534 que tiene un valor superior (o inferior) a otros valores de los valores de comparación 534. Por ejemplo, el comparador de señal 506 puede seleccionar el segundo valor de comparación 716 como el valor de comparación seleccionado 736 en respuesta a la determinación de que el segundo valor de comparación 716 es mayor o igual que el primer valor de comparación 714. En algunas implementaciones, los valores de comparación 534 pueden corresponder a valores de correlación cruzada. El comparador de señales 506 puede, en respuesta a la determinación de que el segundo valor de comparación 716 es mayor que el primer valor de comparación 714, determinar que las muestras 626-632 tienen una correlación más alta con las muestras 658-664 que con las muestras 654-660. El comparador de señal 506 puede seleccionar el segundo valor de comparación 716 que indica la correlación más alta como el valor de comparación seleccionado 736. En otras implementaciones, los valores de comparación 534 pueden corresponder a valores de diferencia (por ejemplo, valores de variación). El comparador de señales 506 puede, en respuesta a la determinación de que el segundo valor de comparación 716 es menor que el primer valor de comparación 714, determinar que las muestras 626-632 tienen una mayor similitud con (por ejemplo, una diferencia menor con) las muestras 658-664 que las muestras 654-660. El comparador de señal 506 puede seleccionar el segundo valor de comparación 716 que indica una diferencia menor como el valor de comparación seleccionado 736.
[0107] El valor de comparación seleccionado 736 puede indicar una correlación más alta (o una diferencia más baja) que los otros valores de los valores de comparación 534. El comparador de señal 506 puede identificar el valor de desplazamiento tentativo 536 de los valores de desplazamiento 760 que corresponde al valor de comparación seleccionado 736. Por ejemplo, el comparador de señal 506 puede identificar el segundo valor de desplazamiento 766 como el valor de desplazamiento tentativo 536 en respuesta a la determinación de que el segundo valor de desplazamiento 766 corresponde al valor de comparación seleccionado 736 (por ejemplo, el segundo valor de comparación 716).
[0108] El comparador de señal 506 puede determinar el valor de comparación seleccionado 736 basándose en la siguiente ecuación:
maxXCorr - max(|Xfc=-K w(n)i(n) * tv(n k)r'(n + /c)|). Ecuación 5
donde maxXCorr corresponde al valor de comparación seleccionado 736 y k corresponde a un valor de desplazamiento. w(n)*l' corresponde a la primera señal de audio 130 sin énfasis, remuestreada y en ventana, y w(n)*r' corresponde a una segunda señal de audio 132 sin énfasis, remuestreada y en ventana. Por ejemplo, w(n)*l' puede corresponder a las muestras 626-632, w(n-1) r' puede corresponder a las muestras 654-660, w(n) r' puede corresponder a las muestras 656-662, y w(n+1) r' puede corresponder a las muestras 658-664. -K puede corresponder a un valor de desplazamiento inferior (por ejemplo, un valor de desplazamiento mínimo) de los valores de desplazamiento 760, y K puede corresponder a un valor de desplazamiento superior (por ejemplo, un valor de desplazamiento máximo) de los valores de desplazamiento 760. En la ecuación 5, w(n) l' corresponde a la primera señal de audio 130 independientemente de si la primera señal de audio 130 corresponde a una señal de canal derecho (r) o una señal de canal izquierdo (1). En la ecuación 5, w(n) r' corresponde a la segunda señal de audio 132 independientemente de si la segunda señal de audio 132 corresponde a la señal de canal derecho (r) o a la señal de canal izquierdo (1).
[0109] El comparador de señal 506 puede determinar el valor de desplazamiento tentativo 536 basándose en la siguiente ecuación:
donde T corresponde al valor de desplazamiento tentativo 536.
[0110] El comparador de señal 506 puede asignar el valor de desplazamiento tentativo 536 de las muestras remuestreadas a las muestras originales basándose en el factor de remuestreo (D) de la FIG. 6. Por ejemplo, el comparador de señal 506 puede actualizar el valor de desplazamiento tentativo 536 basándose en el factor de remuestreo (D). A modo ilustrativo, el comparador de señal 506 puede establecer el valor de desplazamiento tentativo 536 en un producto (por ejemplo, 12) del valor de desplazamiento tentativo 536 (por ejemplo, 3) y el factor de remuestreo (D) (por ejemplo, 4).
[0111] Con referencia a la FIG. 8, un ejemplo ilustrativo de un sistema se muestra y se designa en general como 800. El sistema 800 puede corresponder al sistema 100 de la FIG. 1. Por ejemplo, el sistema 100, el primer dispositivo 104 de la FIG. 1, o ambos, pueden incluir uno o más componentes del sistema 800. La memoria 153 puede configurarse para almacenar valores de desplazamiento 860. Los valores de desplazamiento 860 pueden incluir un primer valor de desplazamiento 864, un segundo valor de desplazamiento 866, o ambos.
[0112] Durante el funcionamiento, el interpolador 510 puede generar los valores de desplazamiento 860 próximos al valor de desplazamiento tentativo 536 (por ejemplo, 12), como se describe en el presente documento. Los valores de desplazamiento asignados pueden corresponder a los valores de desplazamiento 760 asignados desde las muestras remuestreadas a las muestras originales basándose en el factor de remuestreo (D). Por ejemplo, un primer valor de desplazamiento asignado de los valores de desplazamiento asignados puede corresponder a un producto del primer valor de desplazamiento 764 y el factor de remuestreo (D). Una diferencia entre un primer valor de desplazamiento asignado de los valores de desplazamiento asignados y cada segundo valor de desplazamiento asignado de los valores de desplazamiento asignados puede ser mayor o igual que un valor umbral (por ejemplo, el factor de remuestreo (D), tal como 4). Los valores de desplazamiento 860 pueden tener una granularidad más fina que los valores de desplazamiento 760. Por ejemplo, una diferencia entre un valor inferior (por ejemplo, un valor mínimo) de los valores de desplazamiento 860 y el valor de desplazamiento tentativo 536 puede ser menor que el valor umbral (por ejemplo, 4). El valor umbral puede corresponder al factor de remuestreo (D) de la FIG. 6. Los valores de desplazamiento 860 pueden variar desde un primer valor (por ejemplo, el valor de desplazamiento tentativo 536 - (el valor umbral-1)) a un segundo valor (por ejemplo, el valor de desplazamiento tentativo 536 (valor umbral-1)).
[0113] El interpolador 510 puede generar valores de comparación interpolados 816 correspondientes a los valores de desplazamiento 860 realizando la interpolación en los valores de comparación 534, como se describe en el presente documento. Los valores de comparación correspondientes a uno o más de los valores de desplazamiento 860 pueden excluirse de los valores de comparación 534 debido a la menor granularidad de los valores de comparación 534. El uso de los valores de comparación interpolados 816 puede permitir la búsqueda de valores de comparación interpolados correspondientes a uno o más de los valores de desplazamiento 860 para determinar si un valor de comparación interpolado correspondiente a un valor de desplazamiento particular próximo al valor de desplazamiento tentativo 536 indica una correlación más alta (o diferencia menor) que el segundo valor de comparación 716 de la FIG.
7.
[0114] La FIG. 8 incluye un gráfico 820 que ilustra ejemplos de los valores de comparación interpolados 816 y los valores de comparación 534 (por ejemplo, valores de correlación cruzada). El interpolador 510 puede realizar la interpolación basándose en una interpolación sinc en ventana de Hanning, interpolación basada en filtro IIR, interpolación spline, otra forma de interpolación de señal, o una combinación de las mismas. Por ejemplo, el interpolador 510 puede realizar la interpolación sinc en ventana de Hanning basándose en la siguiente ecuación:
Ecuación 7
donde t = k-N/2, b corresponde a una función sinc con ventana, ¡h/2 corresponde al valor de desplazamiento tentativo 536. R(N/2-i)8kHz puede corresponder a un valor de comparación particular de los valores de comparación 534. Por ejemplo, R(fw2-i)skHz puede indicar un primer valor de comparación de los valores de comparación 534 que corresponde a un primer valor de desplazamiento (por ejemplo, 8) cuando i corresponde a 4. R(fW2-i)skHz puede indicar el segundo valor de comparación 716 que corresponde al valor de desplazamiento tentativo 536 (por ejemplo, 12) cuando i corresponde a 0. R(fw2-i)skHz puede indicar un tercer valor de comparación de los valores de comparación 534 que corresponde a un tercer valor de desplazamiento (por ejemplo, 16) cuando i corresponde a -4.
[0115] R(k)32kHz puede corresponder a un valor interpolado particular de los valores de comparación interpolados 816. Cada valor interpolado de los valores de comparación interpolados 816 puede corresponder a una suma de un producto de la función sinc en ventana (b) y cada uno del primer valor de comparación, el segundo valor de comparación 716 y el tercer valor de comparación. Por ejemplo, el interpolador 510 puede determinar un primer producto de la función sinc en ventana (b) y el primer valor de comparación, un segundo producto de la función sinc en ventana (b) y el segundo valor de comparación 716, y un tercer producto de la función sinc en ventana (b) y el tercer valor de comparación. El interpolador 510 puede determinar un valor interpolado particular basado en una suma del primer producto, el segundo producto y el tercer producto. Un primer valor interpolado de los valores de comparación interpolados 816 puede corresponder a un primer valor de desplazamiento (por ejemplo, 9). La función sinc en ventana (b) puede tener un primer valor correspondiente al primer valor de desplazamiento. Un segundo valor interpolado de los valores de comparación interpolados 816 puede corresponder a un segundo valor de desplazamiento (por ejemplo, 10). La función sinc en ventana (b) puede tener un segundo valor correspondiente al segundo valor de desplazamiento. El primer valor de la función sinc en ventana (b) puede ser distinto del segundo valor. Por tanto, el primer valor interpolado puede ser distinto del segundo valor interpolado.
[0116] En la ecuación 7, 8 kHz pueden corresponder a una primera frecuencia de los valores de comparación 534. Por ejemplo, la primera frecuencia puede indicar un número (por ejemplo, 8) de valores de comparación correspondientes a una trama (por ejemplo, la trama 304 de la FIG. 3) que se incluyen en los valores de comparación 534. 32 kHz pueden corresponder a una segunda frecuencia de los valores de comparación interpolados 816. Por ejemplo, la segunda frecuencia puede indicar un número (por ejemplo, 32) de valores de comparación interpolados correspondientes a una trama (por ejemplo, la trama 304 de la FIG. 3) que se incluyen en los valores de comparación interpolados 816.
[0117] El interpolador 510 puede seleccionar un valor de comparación interpolado 838 (por ejemplo, un valor máximo o un valor mínimo) de los valores de comparación interpolados 816. El interpolador 510 puede seleccionar un valor de desplazamiento (por ejemplo, 14) de los valores de desplazamiento 860 que corresponde al valor de comparación interpolado 838. El interpolador 510 puede generar el valor de desplazamiento interpolado 538 que indica el valor de desplazamiento seleccionado (por ejemplo, el segundo valor de desplazamiento 866).
[0118] Usar un enfoque aproximado para determinar el valor de desplazamiento tentativo 536 y buscar alrededor del valor de desplazamiento tentativo 536 para determinar el valor de desplazamiento interpolado 538 puede reducir la complejidad de la búsqueda sin comprometer la eficacia o exactitud de la búsqueda.
[0119] Con referencia a la FIG. 9A, se muestra un ejemplo ilustrativo de un sistema y se designa en general como 900. El sistema 900 puede corresponder al sistema 100 de la FIG. 1. Por ejemplo, el sistema 100, el primer dispositivo 104 de la FIG. 1, o ambos, pueden incluir uno o más componentes del sistema 900. El sistema 900 puede incluir la memoria 153, un refinador de desplazamiento 911, o ambos. La memoria 153 se puede configurar para almacenar un primer valor de desplazamiento 962 correspondiente a la trama 302. Por ejemplo, los datos de análisis 190 pueden incluir el primer valor de desplazamiento 962. El primer valor de desplazamiento 962 puede corresponder a un valor de desplazamiento tentativo, un valor de desplazamiento interpolado, un valor de desplazamiento modificado, un valor de desplazamiento final o un valor de desplazamiento no causal asociado con la trama 302. La trama 302 puede preceder la trama 304 en la primera señal de audio 130. El refinador de desplazamiento 911 puede corresponder al refinador de desplazamiento 511 de la FIG. 1.
[0120] La FIG. 9A también incluye un diagrama de flujo de un procedimiento ilustrativo de funcionamiento en general designado como 920. El procedimiento 920 puede ser realizado por el ecualizador temporal 108, el codificador 114, el primer dispositivo 104 de la FIG. 1, el (los) ecualizador(es) temporal(es) 208, el codificador 214, el primer dispositivo 204 de la FIG. 2, el refinador de desplazamiento 511 de la FIG. 5, el refinador de desplazamiento 911, o una combinación de los mismos.
[0121] El procedimiento 920 incluye determinar si un valor absoluto de una diferencia entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538 es mayor que un primer umbral, en 901. Por ejemplo, el refinador de desplazamiento 911 puede determinar si un valor absoluto de una diferencia entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538 es mayor que un primer umbral (por ejemplo, un umbral de cambio de desplazamiento).
[0122] El procedimiento 920 también incluye, en respuesta a la determinación de que el valor absoluto es menor o igual que el primer umbral, en 901, establecer el valor de desplazamiento modificado 540 para indicar el valor de desplazamiento interpolado 538, en 902. Por ejemplo, el refinador de desplazamiento 911 puede, en respuesta a la determinación de que el valor absoluto es menor o igual al umbral de cambio de desplazamiento, establecer el valor de desplazamiento modificado 540 para indicar el valor de desplazamiento interpolado 538. En algunas implementaciones, el umbral de cambio de desplazamiento puede tener un primer valor (por ejemplo, 0) que indica que el valor de desplazamiento modificado 540 debe establecerse al valor de desplazamiento interpolado 538 cuando el primer valor de desplazamiento 962 es igual al valor de desplazamiento interpolado 538. En implementaciones alternativas, el umbral de cambio de desplazamiento puede tener un segundo valor (por ejemplo, > 1) que indica que el valor de desplazamiento modificado 540 debe establecerse al valor de desplazamiento interpolado 538, en 902, con un mayor grado de libertad. Por ejemplo, el valor de desplazamiento modificado 540 puede establecerse al valor de desplazamiento interpolado 538 para un rango de diferencias entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538. A modo ilustrativo, el valor de desplazamiento modificado 540 puede establecerse al valor de desplazamiento interpolado 538 cuando un valor absoluto de una diferencia (por ejemplo, -2, -1, 0, 1, 2) entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538 es menor o igual que el umbral de cambio de desplazamiento (por ejemplo, 2).
[0123] El procedimiento 920 incluye además, en respuesta a la determinación de que el valor absoluto es mayor que el primer umbral, en 901, determinar si el primer valor de desplazamiento 962 es mayor que el valor de desplazamiento interpolado 538, en 904. Por ejemplo, el refinador de desplazamiento 911 puede, en respuesta a la determinación de que el valor absoluto es mayor que el umbral de cambio de desplazamiento, determinar si el primer valor de desplazamiento 962 es mayor que el valor de desplazamiento interpolado 538.
[0124] El procedimiento 920 también incluye, en respuesta a la determinación de que el primer valor de desplazamiento 962 es mayor que el valor de desplazamiento interpolado 538, en 904, establecer un valor de desplazamiento inferior 930 a una diferencia entre el primer valor de desplazamiento 962 y un segundo umbral, y establecer un valor de desplazamiento superior 932 al primer valor de desplazamiento 962, en 906. Por ejemplo, el refinador de desplazamiento 911 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 (por ejemplo, 20) es mayor que el valor de desplazamiento interpolado 538 (por ejemplo, 14), establecer el valor de desplazamiento inferior 930 (por ejemplo, 17) en una diferencia entre el primer valor de desplazamiento 962 (por ejemplo, 20) y un segundo umbral (por ejemplo, 3). De forma adicional o alternativa, el refinador de desplazamiento 911 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 es mayor que el valor de desplazamiento interpolado 538, establecer el mayor valor de desplazamiento 932 (por ejemplo, 20) en el primer valor de desplazamiento 962. El segundo umbral puede basarse en la diferencia entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538. En algunas implementaciones, el valor de desplazamiento inferior 930 puede establecerse en una diferencia entre la desviación del valor de desplazamiento interpolado 538 y un umbral (por ejemplo, el segundo umbral) y el mayor valor de desplazamiento 932 puede establecerse en una diferencia entre el primer valor de desplazamiento 962 y un umbral (por ejemplo, el segundo umbral).
[0125] El procedimiento 920 incluye además, en respuesta a la determinación de que el primer valor de desplazamiento 962 es menor o igual que el valor de desplazamiento interpolado 538, en 904, establecer el valor de desplazamiento inferior 930 al primer valor de desplazamiento 962, y establecer un valor de desplazamiento superior 932 a una suma del primer valor de desplazamiento 962 y un tercer umbral, en 910. Por ejemplo, el refinador de desplazamiento 911 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 (por ejemplo, 10) es menor o igual que el valor de desplazamiento interpolado 538 (por ejemplo, 14), establecer el valor de desplazamiento inferior 930 al primer valor de desplazamiento 962 (por ejemplo, 10). De forma adicional o alternativa, el refinador de desplazamiento 911 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 es menor o igual que el valor de desplazamiento interpolado 538, establecer el mayor valor de desplazamiento 932 (por ejemplo, 13) en una suma del primer valor de desplazamiento 962 (por ejemplo, 10) y un tercer umbral (por ejemplo, 3). El tercer umbral puede basarse en la diferencia entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538. En algunas implementaciones, el valor de desplazamiento inferior 930 puede establecerse en una diferencia entre la desviación del primer valor de desplazamiento 962 y un umbral (por ejemplo, el tercer umbral) y la desviación del valor de desplazamiento superior 932 puede establecerse en una diferencia entre el valor de desplazamiento interpolado 538 y un umbral (por ejemplo, el tercer umbral).
[0126] El procedimiento 920 también incluye la determinación de los valores de comparación 916 basándose en la primera señal de audio 130 y los valores de desplazamiento 960 aplicados a la segunda señal de audio 132, en 908. Por ejemplo, el refinador de desplazamiento 911 (o el comparador de señal 506) puede generar los valores de comparación 916, como se describe con referencia a la FIG. 7, basándose en la primera señal de audio 130 y los valores de desplazamiento 960 aplicados a la segunda señal de audio 132. A modo ilustrativo, los valores de desplazamiento 960 pueden variar desde el menor valor de desplazamiento 930 (por ejemplo, 17) hasta el mayor valor de desplazamiento 932 (por ejemplo, 20). El refinador de desplazamiento 911 (o el comparador de señal 506) puede generar un valor de comparación particular de los valores de comparación 916 basándose en las muestras 326-332 y un subconjunto particular de las segundas muestras 350. El subconjunto particular de las segundas muestras 350 puede corresponder a un valor de desplazamiento particular (por ejemplo, 17) de los valores de desplazamiento 960. El valor de comparación particular puede indicar una diferencia (o una correlación) entre las muestras 326-332 y el subconjunto particular de las segundas muestras 350.
[0127] El procedimiento 920 incluye además determinar el valor de desplazamiento modificado 540 basándose en los valores de comparación 916 generados basándose en la primera señal de audio 130 y la segunda señal de audio 132, en 912. Por ejemplo, el refinador de desplazamiento 911 puede determinar el valor de desplazamiento modificado 540 basándose en los valores de comparación 916. A modo ilustrativo, en un primer caso, cuando los valores de comparación 916 corresponden a valores de correlación cruzada, el refinador de desplazamiento 911 puede determinar que el valor de comparación interpolado 838 de la FIG. 8 correspondiente al valor de desplazamiento interpolado 538 es mayor que o igual a un valor de comparación más alto de los valores de comparación 916. De forma alternativa, cuando los valores de comparación 916 corresponden a valores de diferencia (por ejemplo, valores de variación), el refinador de desplazamiento 911 puede determinar que el valor de comparación interpolado 838 es menor que o igual al menor valor de comparación de los valores de comparación 916. En este caso, el refinador de desplazamiento 911 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 (por ejemplo, 20) es mayor que el valor de desplazamiento interpolado 538 (por ejemplo, 14), establecer el valor de desplazamiento modificado 540 en el valor de desplazamiento menor 930 (por ejemplo, 17). De forma alternativa, el refinador de desplazamiento 911 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 (por ejemplo, 10) es menor que o igual al valor de desplazamiento interpolado 538 (por ejemplo, 14), establecer el valor de desplazamiento modificado 540 al primer valor de desplazamiento 932 (por ejemplo, 13).
[0128] En un segundo caso, cuando los valores de comparación 916 corresponden a valores de correlación cruzada, el refinador de desplazamiento 911 puede determinar que el valor de comparación interpolado 838 es menor que el valor de comparación más alto de los valores de comparación 916 y puede establecer el valor de desplazamiento modificado 540 en un valor de desplazamiento particular (por ejemplo, 18) de los valores de desplazamiento 960 que corresponde al valor de comparación más alto. De forma alternativa, cuando los valores de comparación 916 corresponden a valores de diferencia (por ejemplo, valores de variación), el refinador de desplazamiento 911 puede determinar que el valor de comparación interpolado 838 es mayor que el valor de comparación menor de los valores de comparación 916 y puede establecer el valor de desplazamiento modificado 540 en un valor de desplazamiento particular (por ejemplo, 18) de los valores de desplazamiento 960 que corresponde al valor de comparación menor.
[0129] Los valores de comparación 916 pueden generarse basándose en la primera señal de audio 130, la segunda señal de audio 132 y los valores de desplazamiento 960. El valor de desplazamiento modificado 540 puede generarse basándose en los valores de comparación 916 usando un procedimiento similar al realizado por el comparador de señal 506, como se describe con referencia a la FIG. 7.
[0130] El procedimiento 920 puede permitir, por tanto, que el refinador de desplazamiento 911 limite un cambio en un valor de desplazamiento asociado con tramas consecutivas (o adyacentes). El cambio reducido en el valor de desplazamiento puede reducir la pérdida de muestra o la duplicación de muestra durante la codificación.
[0131] Con referencia a la FIG. 9B, se muestra un ejemplo ilustrativo de un sistema y se designa en general como 950. El sistema 950 puede corresponder al sistema 100 de la FIG. 1. Por ejemplo, el sistema 100, el primer dispositivo 104 de la FIG. 1, o ambos, pueden incluir uno o más componentes del sistema 950. El sistema 950 puede incluir la memoria 153, el refinador de desplazamiento 511, o ambos. El refinador de desplazamiento 511 puede incluir un ajustador de desplazamiento interpolado 958. El ajustador de desplazamiento interpolado 958 puede configurarse para ajustar selectivamente el valor de desplazamiento interpolado 538 basándose en el primer valor de desplazamiento 962, como se describe en el presente documento. El refinador de desplazamiento 511 puede determinar el valor de desplazamiento modificado 540 basándose en el valor de desplazamiento interpolado 538 (por ejemplo, el valor de desplazamiento interpolado ajustado 538), como se describe con referencia a las FIGS. 9A, 9C.
[0132] La FIG. 9B también incluye un diagrama de flujo de un procedimiento ilustrativo de funcionamiento en general designado como 951. El procedimiento 951 puede ser realizado por el ecualizador temporal 108, el codificador 114, el primer dispositivo 104 de la FIG. 1, el (los) ecualizador(es) temporal(es) 208, el codificador 214, el primer dispositivo 204 de la FIG. 2, el refinador de desplazamiento 511 de la FIG. 5, el refinador de desplazamiento 911 de la FIG. 9A, el ajustador de desplazamiento interpolado 958, o una combinación de los mismos.
[0133] El procedimiento 951 incluye generar una desviación 957 basándose en una diferencia entre el primer valor de desplazamiento 962 y un valor de desplazamiento interpolado no restringido 956, en 952. Por ejemplo, el ajustador de desplazamiento interpolado 958 puede generar la desviación 957 basándose en una diferencia entre el primer valor de desplazamiento 962 y un valor de desplazamiento interpolado no restringido 956. El valor de desplazamiento interpolado no restringido 956 puede corresponder al valor de desplazamiento interpolado 538 (por ejemplo, antes del ajuste por el ajustador de desplazamiento interpolado 958). El ajustador de desplazamiento interpolado 958 puede almacenar el valor de desplazamiento interpolado no restringido 956 en la memoria 153. Por ejemplo, los datos de análisis 190 pueden incluir el valor de desplazamiento interpolado no restringido 956.
[0134] El procedimiento 951 también incluye determinar si un valor absoluto de la desviación 957 es mayor que un umbral en 953. Por ejemplo, el ajustador de desplazamiento interpolado 958 puede determinar si un valor absoluto de la desviación 957 satisface un umbral. El umbral puede corresponder a una limitación de desplazamiento interpolada MAX_SHIFT_CHANGE (por ejemplo, 4).
[0135] El procedimiento 951 incluye, en respuesta a la determinación de que el valor absoluto de la desviación 957 es mayor que el umbral, en 953, establecer el valor de desplazamiento interpolado 538 basándose en el primer valor de desplazamiento 962, un signo de la desviación 957 y el umbral, en 954. Por ejemplo, el ajustador de desplazamiento interpolado 958 puede, en respuesta a la determinación de que el valor absoluto de la desviación 957 no puede satisfacer (por ejemplo, es mayor que) el umbral, restringir el valor de desplazamiento interpolado 538. A modo ilustrativo, el ajustador de desplazamiento interpolado 958 puede ajustar el valor de desplazamiento interpolado 538 basándose en el primer valor de desplazamiento 962, un signo (por ejemplo, 1 o -1) de la desviación 957 y el umbral (por ejemplo, el valor de desplazamiento interpolado 538 = el primer valor de desplazamiento 962 signo (la desviación 957) Umbral).
[0136] El procedimiento 951 incluye, en respuesta a la determinación de que el valor absoluto de la desviación 957 es menor o igual al umbral, en 953, establecer el valor de desplazamiento interpolado 538 al valor de desplazamiento interpolado no restringido 956, en 955. Por ejemplo, el ajustador de desplazamiento interpolado 958 puede, en respuesta a la determinación de que el valor absoluto de la desviación 957 satisface (por ejemplo, es menor que o igual a) el umbral, abstenerse de cambiar el valor de desplazamiento interpolado 538.
[0137] El procedimiento 951 puede permitir, por tanto, restringir el valor de desplazamiento interpolado 538 de modo que un cambio en el valor de desplazamiento interpolado 538 en relación con el primer valor de desplazamiento 962 satisfaga una limitación de desplazamiento de interpolación.
[0138] Con referencia a la FIG. 9C, se muestra un ejemplo ilustrativo de un sistema y se designa en general como 970. El sistema 970 puede corresponder al sistema 100 de la FIG. 1. Por ejemplo, el sistema 100, el primer dispositivo 104 de la FIG. 1, o ambos, pueden incluir uno o más componentes del sistema 970. El sistema 970 puede incluir la memoria 153, un refinador de desplazamiento 921, o ambos. El refinador de desplazamiento 921 puede corresponder al refinador de desplazamiento 511 de la FIG. 5.
[0139] La FIG. 9C también incluye un diagrama de flujo de un procedimiento ilustrativo de funcionamiento en general designado como 971. El procedimiento 971 puede ser realizado por el ecualizador temporal 108, el codificador 114, el primer dispositivo 104 de la FIG. 1, el (los) ecualizador(es) temporal(es) 208, el codificador 214, el primer dispositivo 204 de la FIG. 2, el refinador de desplazamiento 511 de la FIG. 5, el refinador de desplazamiento 911 de la FIG. 9A, el refinador de desplazamiento 921, o una combinación de los mismos.
[0140] El procedimiento 971 incluye determinar si una diferencia entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538 no es cero, en 972. Por ejemplo, el refinador de desplazamiento 921 puede determinar si una diferencia entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538 no es cero.
[0141] El procedimiento 971 incluye, en respuesta a la determinación de que la diferencia entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538 es cero, en 972, establecer el valor de desplazamiento modificado 540 al valor de desplazamiento interpolado 538, en 973. Por ejemplo, el refinador de desplazamiento 921 puede, en respuesta a la determinación de que la diferencia entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538 es cero, determinar el valor de desplazamiento modificado 540 basándose en el valor de desplazamiento interpolado 538 (por ejemplo, el valor de desplazamiento modificado 540 = el valor de desplazamiento interpolado 538).
[0142] El procedimiento 971 incluye, en respuesta a la determinación de que la diferencia entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538 no es cero, en 972, determinar si un valor absoluto de la desviación 957 es mayor que un umbral, en 975. Por ejemplo, el refinador de desplazamiento 921 puede, en respuesta a la determinación de que la diferencia entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538 no es cero, determinar si un valor absoluto de la desviación 957 es mayor que un umbral. La desviación 957 puede corresponder a una diferencia entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado no restringido 956, como se describe con referencia a la FIG. 9B. El umbral puede corresponder a una limitación de desplazamiento interpolada MAX_SHIFT_CHANGE (por ejemplo, 4).
[0143] El procedimiento 971 incluye, en respuesta a la determinación de que una diferencia entre el primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538 no es cero, en 972, o a la determinación de que el valor absoluto de la desviación 957 es menor que o igual al umbral, en 975, establecer el valor de desplazamiento menor 930 a una diferencia entre un primer umbral y un mínimo del primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538, y establecer el valor de desplazamiento mayor 932 en una suma de un segundo umbral y un máximo del primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538, en 976. Por ejemplo, el refinador de desplazamiento 921 puede, en respuesta a la determinación de que el valor absoluto de la desviación 957 es menor que o igual al umbral, determinar el valor de desplazamiento menor 930 basándose en una diferencia entre un primer umbral y un mínimo del primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538. El refinador de desplazamiento 921 también puede determinar el mayor valor de desplazamiento 932 basándose en una suma de un segundo umbral y un máximo del primer valor de desplazamiento 962 y el valor de desplazamiento interpolado 538.
[0144] El procedimiento 971 también incluye generar los valores de comparación 916 basándose en la primera señal de audio 130 y los valores de desplazamiento 960 aplicados a la segunda señal de audio 132, en 977. Por ejemplo, el refinador de desplazamiento 921 (o el comparador de señal 506) puede generar los valores de comparación 916, como se describe con referencia a la FIG. 7, basándose en la primera señal de audio 130 y los valores de desplazamiento 960 aplicados a la segunda señal de audio 132. Los valores de desplazamiento 960 pueden variar desde el menor valor de desplazamiento 930 al mayor valor de desplazamiento 932. El procedimiento 971 puede avanzar hasta 979.
[0145] El procedimiento 971 incluye, en respuesta a la determinación de que el valor absoluto de la desviación 957 es mayor que el umbral, en 975, generar un valor de comparación 915 basándose en la primera señal de audio 130 y el valor de desplazamiento interpolado no restringido 956 aplicado a la segunda señal de audio 132, en 978. Por ejemplo, el refinador de desplazamiento 921 (o el comparador de señal 506) puede generar los valores de comparación 915, como se describe con referencia a la FIG. 7, basándose en la primera señal de audio 130 y los valores de desplazamiento interpolados no restringidos 956 aplicados a la segunda señal de audio 132.
[0146] El procedimiento 971 también incluye determinar el valor de desplazamiento modificado 540 basándose en los valores de comparación 916, el valor de comparación 915, o una combinación de los mismos, en 979. Por ejemplo, el refinador de desplazamiento 921 puede determinar el valor de desplazamiento modificado 540 basándose en los valores de comparación 916, el valor de comparación 915, o una combinación de los mismos, como se describe con referencia a la FIG. 9A. En algunas implementaciones, el refinador de desplazamiento 921 puede determinar el valor de desplazamiento modificado 540 basándose en una comparación del valor de comparación 915 y los valores de comparación 916 para evitar máximos locales debido a la variación de desplazamiento.
[0147] En algunos casos, un tono inherente de la primera señal de audio 130, la primera señal remuestreada 530, la segunda señal de audio 132, la segunda señal remuestreada 532, o una combinación de las mismas, pueden interferir con el proceso de estimación de desplazamiento. En dichos casos, se puede realizar la desestimación de tono o el filtrado de tono para reducir la interferencia debida al tono y para mejorar la confiabilidad de la estimación de desplazamiento entre múltiples canales. En algunos casos, puede haber ruido de fondo en la primera señal de audio 130, la primera señal remuestreada 530, la segunda señal de audio 132, la segunda señal remuestreada 532, o una combinación de las mismas, lo cual puede interferir con el proceso de estimación de desplazamiento. En dichos casos, la supresión de ruido o la cancelación de ruido se puede usar para mejorar la confiabilidad de la estimación de desplazamiento entre múltiples canales.
[0148] Con referencia a la FIG. 10A, se muestra un ejemplo ilustrativo de un sistema y se designa en general como 1000. El sistema 1000 puede corresponder al sistema 100 de la FIG. 1. Por ejemplo, el sistema 100, el primer dispositivo 104 de la FIG. 1, o ambos, pueden incluir uno o más componentes del sistema 1000.
[0149] La FIG. 10A también incluye un diagrama de flujo de un procedimiento ilustrativo de funcionamiento en general designado como 1020. El procedimiento 1020 puede realizarse mediante el analizador de desplazamiento de desplazamiento 512, el ecualizador temporal 108, el codificador 114, el primer dispositivo 104, o una combinación de los mismos.
[0150] El procedimiento 1020 incluye determinar si el primer valor de desplazamiento 962 es igual a 0, en 1001. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede determinar si el primer valor de desplazamiento 962 correspondiente a la trama 302 tiene un primer valor (por ejemplo, 0) que indica que no hay desplazamiento de tiempo. El procedimiento 1020 incluye, en respuesta a la determinación de que el primer valor de desplazamiento 962 es igual a 0, en 1001, avanzar hasta 1010.
[0151] El procedimiento 1020 incluye, en respuesta a la determinación de que el primer valor de desplazamiento 962 no es cero, en 1001, determinar si el primer valor de desplazamiento 962 es mayor que 0, en 1002. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede determinar si el primer valor de desplazamiento 962 correspondiente a la trama 302 tiene un primer valor (por ejemplo, un valor positivo) que indica que la segunda señal de audio 132 está retardada en el tiempo en relación con la primera señal de audio 130.
[0152] El procedimiento 1020 incluye, en respuesta a la determinación de que el primer valor de desplazamiento 962 es mayor que 0, en 1002, determinar si el valor de desplazamiento modificado 540 es menor que 0, en 1004. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 tiene el primer valor (por ejemplo, un valor positivo), determinar si el valor de desplazamiento modificado 540 tiene un segundo valor (por ejemplo, un valor negativo) que indica que la primera señal de audio 130 se retarda en el tiempo en relación con la segunda señal de audio 132. El procedimiento 1020 incluye, en respuesta a la determinación de que el valor de desplazamiento modificado 540 es menor que 0, en 1004, avanzar hasta 1008. El procedimiento 1020 incluye, en respuesta a la determinación de que el valor de desplazamiento modificado 540 es mayor que o igual a 0, en 1004, avanzar hasta 1010.
[0153] El procedimiento 1020 incluye, en respuesta a la determinación de que el primer valor de desplazamiento 962 es menor que 0, en 1002, determinar si el valor de desplazamiento modificado 540 es mayor que 0, en 1006. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 tiene el segundo valor (por ejemplo, un valor negativo), determinar si el valor de desplazamiento modificado 540 tiene un primer valor (por ejemplo, un valor positivo) que indica que la segunda señal de audio 132 se retarda en el tiempo con respecto a la primera señal de audio 130. El procedimiento 1020 incluye, en respuesta a la determinación de que el valor de desplazamiento modificado 540 es mayor que 0, en 1006, avanzar hasta 1008. El procedimiento 1020 incluye, en respuesta a la determinación de que el valor de desplazamiento modificado 540 es menor que o igual a 0, en 1006, avanzar hasta 1010.
[0154] El procedimiento 1020 incluye establecer el valor de desplazamiento final 116 en 0, en 1008. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede establecer el valor de desplazamiento final 116 en un valor particular (por ejemplo, 0) que indica que no hay desplazamiento de tiempo.
[0155] El procedimiento 1020 incluye determinar si el primer valor de desplazamiento 962 es igual al valor de desplazamiento modificado 540, en 1010. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede determinar si el primer valor de desplazamiento 962 y el valor de desplazamiento modificado 540 indican el mismo retardo de tiempo entre la primera señal de audio 130 y la segunda señal de audio 132.
[0156] El procedimiento 1020 incluye, en respuesta a la determinación de que el primer valor de desplazamiento 962 es igual al valor de desplazamiento modificado 540, en 1010, establecer el valor de desplazamiento final 116 al valor de desplazamiento modificado 540, en 1012. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede establecer el valor de desplazamiento final 116 al valor de desplazamiento modificado 540.
[0157] El procedimiento 1020 incluye, en respuesta a la determinación de que el primer valor de desplazamiento 962 no es igual al valor de desplazamiento modificado 540, en 1010, generar un valor de desplazamiento estimado 1072, en 1014. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede determinar el valor de desplazamiento estimado 1072 refinando el valor de desplazamiento modificado 540, como se describe adicionalmente con referencia a la FIG. 11.
[0158] El procedimiento 1020 incluye establecer el valor de desplazamiento final 116 al valor de desplazamiento estimado 1072, en 1016. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede establecer el valor de desplazamiento final 116 al valor de desplazamiento estimado 1072.
[0159] En algunas implementaciones, el analizador de desplazamiento de desplazamiento 512 puede establecer el valor de desplazamiento no causal 162 para indicar el segundo valor de desplazamiento estimado en respuesta a la determinación de que el retardo entre la primera señal de audio 130 y la segunda señal de audio 132 no cambió. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede establecer el valor de desplazamiento no causal 162 para indicar el valor de desplazamiento modificado 540 en respuesta a la determinación de que el primer valor de desplazamiento 962 es igual a 0, 1001, de que el valor de desplazamiento modificado 540 es mayor que o igual a 0, en 1004, o de que el valor de desplazamiento modificado 540 es menor que o igual a 0, en 1006.
[0160] El analizador de desplazamiento de desplazamiento 512 puede establecer, por tanto, el valor de desplazamiento no causal 162 para indicar que no hay desplazamiento de tiempo en respuesta a la determinación de que el retardo entre la primera señal de audio 130 y la segunda señal de audio 132 cambió entre la trama 302 y la trama 304 de la FIG. 3. Evitar que el valor de desplazamiento no causal 162 cambie de dirección (por ejemplo, positivo a negativo o negativo a positivo) entre tramas consecutivas puede reducir la distorsión en la generación de señal de mezcla descendente en el codificador 114, evitar el uso de un retardo adicional para la síntesis de mezcla ascendente en un descodificador, o ambos.
[0161] Con referencia a la FIG. 10B, se muestra un ejemplo ilustrativo de un sistema y se designa en general como 1030. El sistema 1030 puede corresponder al sistema 100 de la FIG. 1. Por ejemplo, el sistema 100, el primer dispositivo 104 de la FIG. 1, o ambos, pueden incluir uno o más componentes del sistema 1030.
[0162] La FIG. 10B también incluye un diagrama de flujo de un procedimiento ilustrativo de funcionamiento en general designado como 1031. El procedimiento 1031 puede realizarse mediante el analizador de desplazamiento de desplazamiento 512, el ecualizador temporal 108, el codificador 114, el primer dispositivo 104, o una combinación de los mismos.
[0163] El procedimiento 1031 incluye determinar si el primer valor de desplazamiento 962 es mayor que cero y el valor de desplazamiento modificado 540 es menor que cero, en 1032. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede determinar si el primer valor de desplazamiento 962 es mayor que cero y si el valor de desplazamiento modificado 540 es menor que cero.
[0164] El procedimiento 1031 incluye, en respuesta a la determinación de que el primer valor de desplazamiento 962 es mayor que cero y de que el valor de desplazamiento modificado 540 es menor que cero, en 1032, establecer el valor de desplazamiento final 116 a cero, en 1033. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 es mayor que cero y de que el valor de desplazamiento modificado 540 es menor que cero, establecer el valor de desplazamiento final 116 en un primer valor (por ejemplo, 0) que indica que no hay desplazamiento de tiempo.
[0165] El procedimiento 1031 incluye, en respuesta a la determinación de que el primer valor de desplazamiento 962 es menor que o igual a cero o de que el valor de desplazamiento modificado 540 es mayor que o igual a cero, en 1032, determinar si el primer valor de desplazamiento 962 es menor que cero y si el valor de desplazamiento modificado 540 es mayor que cero, en 1034. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 es menor que o igual a cero o de que el valor de desplazamiento modificado 540 es mayor que o igual a cero, determinar si el primer valor de desplazamiento 962 es menor que cero y si el valor de desplazamiento modificado 540 es mayor que cero.
[0166] El procedimiento 1031 incluye, en respuesta a la determinación de que el primer valor de desplazamiento 962 es menor que cero y de que el valor de desplazamiento modificado 540 es mayor que cero, avanzar hasta 1033. El procedimiento 1031 incluye, en respuesta a la determinación de que el primer valor de desplazamiento 962 es mayor que o igual a cero o de que el valor de desplazamiento modificado 540 es menor que o igual a cero, establecer el valor de desplazamiento final 116 al valor de desplazamiento modificado 540, en 1035. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 es mayor que o igual a cero o que el valor de desplazamiento modificado 540 es menor que o igual a cero, establecer el valor de desplazamiento final 116 al valor de desplazamiento modificado 540.
[0167] Con referencia a la FIG. 11, un ejemplo ilustrativo de un sistema se muestra y se designa en general como 1100. El sistema 1100 puede corresponder al sistema 100 de la FIG. 1. Por ejemplo, el sistema 100, el primer dispositivo 104 de la FIG. 1, o ambos, pueden incluir uno o más componentes del sistema 1100. La FIG. 11 también incluye un diagrama de flujo que ilustra un procedimiento de funcionamiento que en general se designa con 1120. El procedimiento 1120 puede realizarse mediante el analizador de desplazamiento de desplazamiento 512, el ecualizador temporal 108, el codificador 114, el primer dispositivo 104, o una combinación de los mismos. El procedimiento 1120 puede corresponder al paso 1014 de la FIG. 10A.
[0168] El procedimiento 1120 incluye determinar si el primer valor de desplazamiento 962 es mayor que el valor de desplazamiento modificado 540, en 1104. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede determinar si el primer valor de desplazamiento 962 es mayor que el valor de desplazamiento modificado 540.
[0169] El procedimiento 1120 también incluye, en respuesta a la determinación de que el primer valor de desplazamiento 962 es mayor que el valor de desplazamiento modificado 540, en 1104, establecer un primer valor de desplazamiento 1130 en una diferencia entre el valor de desplazamiento modificado 540 y una primera desviación, y establecer un segundo valor de desplazamiento 1132 en una suma del primer valor de desplazamiento 962 y la primera desviación, en 1106. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 (por ejemplo, 20) es mayor que el valor de desplazamiento modificado 540 (por ejemplo, 18), determinar el primer valor de desplazamiento 1130 (por ejemplo, 17) basándose en el valor de desplazamiento modificado 540 (por ejemplo, valor de desplazamiento modificado 540 - una primera desviación). De forma alternativa o además, el analizador de desplazamiento de desplazamiento 512 puede determinar el segundo valor de desplazamiento 1132 (por ejemplo, 21) basándose en el primer valor de desplazamiento 962 (por ejemplo, el primer valor de desplazamiento 962 la primera desviación). El procedimiento 1120 puede avanzar hasta 1108.
[0170] El procedimiento 1120 incluye además, en respuesta a la determinación de que el primer valor de desplazamiento 962 es menor que o igual al valor de desplazamiento modificado 540, en 1104, establecer el primer valor de desplazamiento 1130 en una diferencia entre el primer valor de desplazamiento 962 y una segunda desviación, y establecer el segundo valor de desplazamiento 1132 en una suma del valor de desplazamiento modificado 540 y la segunda desviación. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 (por ejemplo, 10) es menor que o igual al valor de desplazamiento modificado 540 (por ejemplo, 12), determinar el primer valor de desplazamiento 1130 (por ejemplo, 9) basándose en el valor de desplazamiento 962 (por ejemplo, primer valor de desplazamiento 962 - una segunda desviación). De forma alternativa o además, el analizador de desplazamiento de desplazamiento 512 puede determinar el segundo valor de desplazamiento 1132 (por ejemplo, 13) basándose en el valor de desplazamiento modificado 540 (por ejemplo, el valor de desplazamiento modificado 540 la segunda desviación). La primera desviación (por ejemplo, 2) puede ser distinta de la segunda desviación (por ejemplo, 3). En algunas implementaciones, la primera desviación puede ser igual a la segunda desviación. Un valor más alto de la primera desviación, la segunda desviación, o ambas, puede mejorar un rango de búsqueda.
[0171] El procedimiento 1120 también incluye generar valores de comparación 1140 basándose en la primera señal de audio 130 y valores de desplazamiento 1160 aplicados a la segunda señal de audio 132, en 1108. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede generar los valores de comparación 1140, como se describe con referencia a la FIG. 7, basándose en la primera señal de audio 130 y los valores de desplazamiento 1160 aplicados a la segunda señal de audio 132. A modo ilustrativo, los valores de desplazamiento 1160 pueden variar desde el primer valor de desplazamiento 1130 (por ejemplo, 17) al segundo valor de desplazamiento 1132 (por ejemplo, 21). El analizador de desplazamiento de desplazamiento 512 puede generar un valor de comparación particular de los valores de comparación 1140 basándose en las muestras 326-332 y un subconjunto particular de las segundas muestras 350. El subconjunto particular de las segundas muestras 350 puede corresponder a un valor de desplazamiento particular (por ejemplo, 17) de los valores de desplazamiento 1160. El valor de comparación particular puede indicar una diferencia (o una correlación) entre las muestras 326-332 y el subconjunto particular de las segundas muestras 350.
[0172] El procedimiento 1120 incluye además determinar el valor de desplazamiento estimado 1072 basándose en los valores de comparación 1140, en 1112. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede, cuando los valores de comparación 1140 corresponden a valores de correlación cruzada, seleccionar un valor de comparación más alto de los valores de comparación 1140 como el valor de desplazamiento estimado 1072. De forma alternativa, el analizador de desplazamiento de desplazamiento 512 puede, cuando los valores de comparación 1140 corresponden a valores de diferencia (por ejemplo, a valores de variación), seleccionar un valor de comparación menor de los valores de comparación 1140 como el valor de desplazamiento estimado 1072.
[0173] El procedimiento 1120 puede permitir, por tanto, que el analizador de desplazamiento de desplazamiento 512 genere el valor de desplazamiento estimado 1072 refinando el valor de desplazamiento modificado 540. Por ejemplo, el analizador de desplazamiento de desplazamiento 512 puede determinar los valores de comparación 1140 basándose en muestras originales y puede seleccionar el valor de desplazamiento estimado 1072 correspondiente a un valor de comparación de los valores de comparación 1140 que indica una correlación más alta (o diferencia menor).
[0174] Con referencia a la FIG. 12, un ejemplo ilustrativo de un sistema se muestra y se designa en general como 1200. El sistema 1200 puede corresponder al sistema 100 de la FIG. 1. Por ejemplo, el sistema 100, el primer dispositivo 104 de la FIG. 1, o ambos, pueden incluir uno o más componentes del sistema 1200. La FIG. 12 también incluye un diagrama de flujo que ilustra un procedimiento de funcionamiento que en general se designa con 1220. El procedimiento 1220 puede realizarse mediante el designador de señal de referencia 508, el ecualizador temporal 108, el codificador 114, el primer dispositivo 104, o una combinación de los mismos.
[0175] El procedimiento 1220 incluye determinar si el primer valor de desplazamiento final 116 es igual a 0, en 1202. Por ejemplo, el designador de señal de referencia 508 puede determinar si el valor de desplazamiento final 116 tiene un valor particular (por ejemplo, 0) que indica que no hay desplazamiento de tiempo.
[0176] El procedimiento 1220 incluye, en respuesta a la determinación de que el valor de desplazamiento final 116 es igual a 0, en 1202, dejar el indicador de señal de referencia 164 sin cambios, en 1204. Por ejemplo, el designador de señal de referencia 508 puede, en respuesta a la determinación de que el valor de desplazamiento final 116 tiene el valor particular (por ejemplo, 0) que indica que no hay desplazamiento de tiempo, dejar el indicador de señal de referencia 164 sin cambios. A modo ilustrativo, el indicador de señal de referencia 164 puede indicar que la misma señal de audio (por ejemplo, la primera señal de audio 130 o la segunda señal de audio 132) es una señal de referencia asociada con la trama 304 como con la trama 302.
[0177] El procedimiento 1220 incluye, en respuesta a la determinación de que el valor de desplazamiento final 116 no es cero, en 1202, determinar si el valor de desplazamiento final 116 es mayor que 0, en 1206. Por ejemplo, el designador de señal de referencia 508 puede, en respuesta a la determinación de que el valor de desplazamiento final 116 tiene un valor particular (por ejemplo, un valor distinto de cero) que indica un desplazamiento de tiempo, determinar si el valor de desplazamiento final 116 tiene un primer valor (por ejemplo, un valor positivo) que indica que la segunda señal de audio 132 está retardada en relación con la primera señal de audio 130 o un segundo valor (por ejemplo, un valor negativo) que indica que la primera señal de audio 130 está retardad en relación con la segunda señal de audio 132.
[0178] El procedimiento 1220 incluye, en respuesta a la determinación de que el valor de desplazamiento final 116 tiene el primer valor (por ejemplo, un valor positivo), establecer el indicador de señal de referencia 164 para que tenga un primer valor (por ejemplo, 0) que indique que la primera señal de audio 130 es una señal de referencia, en 1208. Por ejemplo, el designador de señal de referencia 508 puede, en respuesta a la determinación de que el valor de desplazamiento final 116 tiene el primer valor (por ejemplo, un valor positivo), establecer el indicador de señal de referencia 164 en un primer valor (por ejemplo, 0) que indica que la primera señal de audio 130 es una señal de referencia. El designador de señal de referencia 508 puede, en respuesta a la determinación de que el valor de desplazamiento final 116 tiene el primer valor (por ejemplo, el valor positivo), determinar que la segunda señal de audio 132 corresponde a una señal objetivo.
[0179] El procedimiento 1220 incluye, en respuesta a la determinación de que el valor de desplazamiento final 116 tiene el segundo valor (por ejemplo, un valor negativo), establecer el indicador de señal de referencia 164 para que tenga un segundo valor (por ejemplo, 1) que indique que la segunda señal de audio 132 es una señal de referencia, en 1210. Por ejemplo, el designador de señal de referencia 508 puede, en respuesta a la determinación de que el valor de desplazamiento final 116 tiene el segundo valor (por ejemplo, un valor negativo) que indica que la primera señal de audio 130 está retardada en relación con la segunda señal de audio 132, establecer el indicador de señal de referencia 164 en un segundo valor (por ejemplo, 1) que indica que la segunda señal de audio 132 es una señal de referencia. El designador de señal de referencia 508 puede, en respuesta a la determinación de que el valor de desplazamiento final 116 tiene el segundo valor (por ejemplo, el valor negativo), determinar que la primera señal de audio 130 corresponde a una señal objetivo.
[0180] El designador de señal de referencia 508 puede proporcionar el indicador de señal de referencia 164 al generador de parámetros de ganancia 514. El generador de parámetros de ganancia 514 puede determinar un parámetro de ganancia (por ejemplo, un parámetro de ganancia 160) de una señal objetivo basándose en una señal de referencia, como se describe con referencia a la FIG. 5.
[0181] Una señal objetivo puede retardarse en el tiempo en relación con una señal de referencia. El indicador de señal de referencia 164 puede indicar si la primera señal de audio 130 o la segunda señal de audio 132 corresponde a la señal de referencia. El indicador de señal de referencia 164 puede indicar si el parámetro de ganancia 160 corresponde a la primera señal de audio 130 o la segunda señal de audio 132.
[0182] Con referencia a la FIG. 13, se muestra un diagrama de flujo que ilustra un procedimiento particular de funcionamiento y en general se designa como 1300. El procedimiento 1300 puede realizarse mediante el designador de señal de referencia 508, el ecualizador temporal 108, el codificador 114, el primer dispositivo 104, o una combinación de los mismos.
[0183] El procedimiento 1300 incluye determinar si el valor de desplazamiento final 116 es mayor que o igual a cero, en 1302. Por ejemplo, el designador de señal de referencia 508 puede determinar si el valor de desplazamiento final 116 es mayor que o igual a cero. El procedimiento 1300 también incluye, en respuesta a la determinación de que el valor de desplazamiento final 116 es mayor que o igual a cero, en 1302, avanzar hasta 1208. El procedimiento 1300 incluye además, en respuesta a la determinación de que el valor de desplazamiento final 116 es menor que cero, en 1302, avanzar hasta 1210. El procedimiento 1300 difiere del procedimiento 1220 de la FIG. 12 en que, en respuesta a la determinación de que el valor de desplazamiento final 116 tiene un valor particular (por ejemplo, 0) que indica que no hay desplazamiento de tiempo, el indicador de señal de referencia 164 se establece en un primer valor (por ejemplo, 0) que indica que la primera señal de audio 130 corresponde a una señal de referencia. En algunas implementaciones, el designador de señal de referencia 508 puede realizar el procedimiento 1220. En otras implementaciones, el designador de señal de referencia 508 puede realizar el procedimiento 1300.
[0184] El procedimiento 1300 puede permitir, por tanto, establecer el indicador de señal de referencia 164 en un valor particular (por ejemplo, 0) que indica que la primera señal de audio 130 corresponde a una señal de referencia cuando el valor de desplazamiento final 116 indica que no hay desplazamiento de tiempo independientemente de si la primera señal de audio 130 corresponde a la señal de referencia para la trama 302.
[0185] Con referencia a la FIG. 14, un ejemplo ilustrativo de un sistema se muestra y se designa en general como 1400. El sistema 1400 incluye el comparador de señales 506 de la FIG. 5, el interpolador 510 de la FIG. 5, el refinador de desplazamiento 511 de la FIG. 5, y el analizador de desplazamiento de desplazamiento 512 de la FIG. 5.
[0186] El comparador de señales 506 puede generar los valores de comparación 534 (por ejemplo, valores de diferencia, valores de varianza, valores de similitud, valores de coherencia, o valores de correlación cruzada), el valor de desplazamiento tentativo 536, o ambos. Por ejemplo, el comparador de señales 506 puede generar los valores de comparación 534 basados en la primera señal remuestreada 530 y una pluralidad de valores de desplazamiento 1450 aplicados al segunda señal remuestreada 532. El comparador de señales 506 puede determinar el valor de desplazamiento tentativo 536 basándose en los valores de comparación 534. El comparador de señales 506 incluye un suavizador 1410 configurado para recuperar valores de comparación para tramas anteriores de las señales remuestreadas 530, 532 y puede modificar los valores de comparación 534 basándose en una operación de suavizado a largo plazo utilizando los valores de comparación para tramas anteriores. Por ejemplo, los valores de comparación 534 pueden incluir el valor de comparación a largo plazo CompValLTN(k) para una trama actual (N) y pueden estar representados por CompValLTN(k) = (1 - a) * CompVaN (k), +(a) CompVaÍT N -1 (k), donde a e (0, 1,0). Por lo tanto, el valor de comparación a largo plazo CompValLTN(k) puede basarse en una mezcla ponderada del valor de comparación instantáneo CompVaN (k) en la trama N y los valores de comparación a largo plazo CompValLTN-1(k) para una o más tramas anteriores. A medida que aumenta el valor de a, aumenta la cantidad de suavizado en el valor de comparación a largo plazo. El comparador de señales 506 puede proporcionar los valores de comparación 534, el valor de desplazamiento tentativo 536, o ambos, al interpolador 510.
[0187] El interpolador 510 puede extender el valor de desplazamiento tentativo 536 para generar el valor de desplazamiento interpolado 538. Por ejemplo, el interpolador 510 puede generar valores de comparación interpolados correspondientes a valores de desplazamiento que están próximos al valor de desplazamiento tentativo 536 interpolando los valores de comparación 534. El interpolador 510 puede determinar el valor de desplazamiento interpolado 538 basándose en los valores de comparación interpolados y los valores de comparación 534. Los valores de comparación 534 pueden basarse en una granularidad más gruesa de los valores de desplazamiento. Los valores de comparación interpolados pueden basarse en una granularidad más fina de los valores de desplazamiento que se aproximan al valor de desplazamiento tentativo remuestreado 536. La determinación de los valores de comparación 534 basándose en la granularidad más gruesa (por ejemplo, el primer subconjunto) del conjunto de valores de desplazamiento puede usar menos recursos (por ejemplo, tiempo, operaciones o ambos) que la determinación de los valores de comparación 534 basándose en una granularidad más fina (por ejemplo, todos) del conjunto de valores de desplazamiento. La determinación de los valores de comparación interpolados correspondientes al segundo subconjunto de valores de desplazamiento puede extender el valor de desplazamiento tentativo 536 basándose en una granularidad más fina de un conjunto más pequeño de valores de desplazamiento que se aproximan al valor de desplazamiento tentativo 536 sin determinar los valores de comparación correspondientes a cada valor de desplazamiento del conjunto de valores de desplazamiento. Por tanto, determinar el valor de desplazamiento tentativo 536 basándose en el primer subconjunto de valores de desplazamiento y determinar el valor de desplazamiento interpolado 538 basándose en los valores de comparación interpolados puede equilibrar el uso de recursos y el refinamiento del valor de desplazamiento estimado. El interpolador 510 puede proporcionar el valor de desplazamiento interpolado 538 al refinador de desplazamiento 511.
[0188] El interpolador 510 incluye un 1420 más suave configurado para recuperar valores de desplazamiento interpolados para tramas anteriores y puede modificar el valor de desplazamiento interpolado 538 basándose en una operación de suavizado a largo plazo utilizando los valores de desplazamiento interpolados para tramas anteriores. Por ejemplo, el valor de desplazamiento interpolado 538 puede incluir un valor de desplazamiento interpolado a largo plazo InterValLTN(k) para una trama actual (N) y puede estar representado por InterValLTN(k) = (1 - a) * InterValN(k), +(a) * InterValLTN-1(k), donde a e (0,1,0). Por lo tanto, el valor de desplazamiento interpolado a largo plazo InterValLTN(k) puede basarse en una mezcla ponderada del valor de desplazamiento interpolado instantáneo InterVaN (k) en la trama N y los valores de desplazamiento interpolados a largo plazo InterValLTN-1(k) para una o más tramas anteriores. A medida que aumenta el valor de a, aumenta la cantidad de suavizado en el valor de comparación a largo plazo.
[0189] El refinador de desplazamiento 511 puede generar el valor de desplazamiento modificado 540 refinando el valor de desplazamiento interpolado 538. Por ejemplo, el refinador de desplazamiento 511 puede determinar si el valor de desplazamiento interpolado 538 indica que un cambio en un desplazamiento entre la primera señal de audio 130 y la segunda señal de audio 132 es mayor que un umbral de cambio de desplazamiento. El cambio en el desplazamiento puede indicarse por una diferencia entre el valor de desplazamiento interpolado 538 y un primer valor de desplazamiento asociado con la trama 302 de la FIG. 3. El refinador de desplazamiento 511 puede, en respuesta a la determinación de que la diferencia es menor o igual al umbral, establecer el valor de desplazamiento modificado 540 al valor de desplazamiento interpolado 538. De forma alternativa, el refinador de desplazamiento 511 puede, en respuesta a la determinación de que la diferencia es mayor que el umbral, determinar una pluralidad de valores de desplazamiento que corresponden a una diferencia que es menor o igual al umbral de cambio de desplazamiento. El refinador de desplazamiento 511 puede determinar valores de comparación basándose en la primera señal de audio 130 y la pluralidad de valores de desplazamiento aplicados a la segunda señal de audio 132. El refinador de desplazamiento 511 puede determinar el valor de desplazamiento modificado 540 basándose en los valores de comparación. Por ejemplo, el refinador de desplazamiento 511 puede seleccionar un valor de desplazamiento de la pluralidad de valores de desplazamiento basándose en los valores de comparación y el valor de desplazamiento interpolado 538. El refinador de desplazamiento 511 puede establecer el valor de desplazamiento modificado 540 para indicar el valor de desplazamiento seleccionado. Una diferencia distinta de cero entre el primer valor de desplazamiento correspondiente a la trama 302 y el valor de desplazamiento interpolado 538 puede indicar que algunas muestras de la segunda señal de audio 132 corresponden a ambas tramas (por ejemplo, la trama 302 y la trama 304). Por ejemplo, algunas muestras de la segunda señal de audio 132 pueden duplicarse durante la codificación. De forma alternativa, la diferencia distinta de cero puede indicar que algunas muestras de la segunda señal de audio 132 no corresponden ni a la trama 302 ni a la trama 304. Por ejemplo, algunas muestras de la segunda señal de audio 132 pueden perderse durante la codificación. Establecer el valor de desplazamiento modificado 540 en uno de la pluralidad de valores de desplazamiento puede evitar un gran cambio en los desplazamientos entre tramas consecutivas (o adyacentes), reduciendo así una cantidad de pérdida de muestra o duplicación de muestra durante la codificación. El refinador de desplazamiento 511 puede proporcionar el valor de desplazamiento modificado 540 al analizador de desplazamiento de desplazamiento 512.
[0190] El refinador de desplazamiento 511 incluye un 1430 más suave configurado para recuperar valores de desplazamiento modificados para tramas anteriores y puede modificar el valor de desplazamiento modificado 540 basándose en una operación de suavizado a largo plazo utilizando los valores de desplazamiento modificados para tramas anteriores. Por ejemplo, el valor de desplazamiento modificado 540 puede incluir un valor de desplazamiento modificado a largo plazo AmendValLTN(k) para una trama actual (N) y puede representarse mediante AmendValLTN(k) = (1 - a) * AmendValN(k), +(a) * AmendValLTN-1(k), donde a e (0, 1,0). Por lo tanto, el valor de desplazamiento modificado a largo plazo AppendValLTN(k) puede basarse en una mezcla ponderada del valor de desplazamiento modificado instantáneo AmendVaN (k) en la trama N y los valores de desplazamiento modificados a largo plazo AmendValLTN-1(k) para una o más tramas anteriores. A medida que aumenta el valor de a, aumenta la cantidad de suavizado en el valor de comparación a largo plazo.
[0191] El analizador de desplazamiento de desplazamiento 512 puede determinar si el valor de desplazamiento modificado 540 indica un cambio o retroceso en la temporización entre la primera señal de audio 130 y la segunda señal de audio 132. El analizador de desplazamiento de desplazamiento 512 puede determinar si el retardo entre la primera señal de audio 130 y la segunda señal de audio 132 ha cambiado de signo basándose en el valor de desplazamiento modificado 540 y el primer valor de desplazamiento asociado con la trama 302. El analizador de desplazamiento de desplazamiento 512 puede, en respuesta a la determinación de que el retardo entre la primera señal de audio 130 y la segunda señal de audio 132 ha cambiado de signo, establecer el valor de desplazamiento final 116 en un valor (por ejemplo, 0) que indica que no hay desplazamiento de tiempo. De forma alternativa, el analizador de desplazamiento de desplazamiento 512 puede establecer el valor de desplazamiento final 116 al valor de desplazamiento modificado 540 en respuesta a la determinación de que el retardo entre la primera señal de audio 130 y la segunda señal de audio 132 no ha cambiado de signo.
[0192] El analizador de desplazamiento de desplazamiento 512 puede generar un valor de desplazamiento estimado refinando el valor de desplazamiento modificado 540. El analizador de desplazamiento de desplazamiento 512 puede establecer el valor de desplazamiento final 116 al valor de desplazamiento estimado. Establecer el valor de desplazamiento final 116 para indicar que no hay desplazamiento de tiempo puede reducir la distorsión en un descodificador al abstenerse del desplazamiento de tiempo de la primera señal de audio 130 y la segunda señal de audio 132 en direcciones opuestas para tramas consecutivas (o adyacentes) de la primera señal de audio 130. El analizador de desplazamiento de desplazamiento 512 puede proporcionar el valor de desplazamiento final 116 al generador de desplazamiento absoluto 513. El generador de desplazamiento absoluto 513 puede generar el valor de desplazamiento no causal 162 aplicando una función absoluta al valor de desplazamiento final 116.
[0193] Las técnicas de suavizado descritas anteriormente pueden normalizar sustancialmente la estimación de desplazamiento entre tramas sonoras, tramas sordas y tramas de transición. Las estimaciones de desplazamiento normalizadas pueden reducir la repetición de la muestra y la omisión de distorsiones en los límites de la trama. Además, las estimaciones de desplazamiento normalizadas pueden dar como resultado energías de canal lateral reducidas, lo cual puede mejorar la eficiencia de codificación.
[0194] Como se describe con respecto a la FIG. 14, el suavizado se puede realizar en el comparador de señal 506, el interpolador 510, el refinador de desplazamiento 511 o una combinación de los mismos. Si el desplazamiento interpolado es consistentemente diferente del desplazamiento tentativo a una frecuencia de muestreo de entrada (FSin), el suavizado del valor de desplazamiento interpolado 538 puede realizarse además del suavizado de los valores de comparación 534 o en alternativa al suavizado de los valores de comparación 534. Durante la estimación del valor de desplazamiento interpolado 538, el proceso de interpolación puede realizarse en valores de comparación suavizados a largo plazo generados en el comparador de señal 506, en valores de comparación no suavizados generados en el comparador de señal 506, o en una mezcla ponderada de valores de comparación y valores de comparación interpolados no suavizados. Si se realiza el suavizado en el interpolador 510, la interpolación puede extenderse para realizarse en la proximidad de múltiples muestras además del desplazamiento tentativo estimado en una trama actual. Por ejemplo, la interpolación se puede realizar cerca del desplazamiento de una trama previa (por ejemplo, uno o más del desplazamiento tentativo anterior, el desplazamiento interpolado anterior, el desplazamiento modificado anterior o el desplazamiento final anterior) y cerca del desplazamiento tentativo de la trama actual. Como resultado, se puede realizar un suavizado en muestras adicionales para los valores de desplazamiento interpolados, lo cual puede mejorar la estimación de desplazamiento interpolado.
[0195] Refiriéndose a la FIG. 15, se muestran gráficos que ilustran los valores de comparación para las tramas sonoras, las tramas de transición y las tramas sordas. De acuerdo con la FIG. 15, el gráfico 1502 ilustra los valores de comparación (por ejemplo, valores de correlación cruzada) para una trama sonora procesada sin utilizar las técnicas de suavizado a largo plazo descritas, el gráfico 1504 ilustra los valores de comparación para una trama de transición procesada sin utilizar las técnicas de suavizado a largo plazo descritas, y el gráfico 1506 ilustra valores de comparación para una trama sorda procesada sin utilizar las técnicas de suavizado a largo plazo descritas.
[0196] La correlación cruzada representada en cada gráfico 1502, 1504, 1506 puede ser sustancialmente diferente. Por ejemplo, el gráfico 1502 ilustra que una correlación cruzada máxima entre una trama sonora capturada por el primer micrófono 146 de la FIG. 1 y una trama sonora correspondiente capturada por el segundo micrófono 148 de la FIG. 1 ocurre aproximadamente en un desplazamiento de muestra de 17. Sin embargo, el gráfico 1504 ilustra que una correlación cruzada máxima entre una trama de transición capturada por el primer micrófono 146 y una trama de transición correspondiente capturada por el segundo micrófono 148 se produce en aproximadamente un desplazamiento de 4 muestras. Además, el gráfico 1506 ilustra que una correlación cruzada máxima entre una trama sorda capturada por el primer micrófono 146 y una trama sorda correspondiente capturada por el segundo micrófono 148 se produce en aproximadamente un desplazamiento de muestra de -3. Por lo tanto, la estimación de desplazamiento puede ser inexacta para tramas de transición y tramas sordas debido a un nivel relativamente alto de ruido.
[0197] De acuerdo con la FIG. 15, el gráfico 1512 ilustra valores de comparación (por ejemplo, valores de correlación cruzada) para una trama sonora procesada usando las técnicas de suavizado a largo plazo descritas, el gráfico 1514 ilustra valores de comparación para una trama de transición procesada usando las técnicas de suavizado a largo plazo descritas, y el gráfico 1516 ilustra valores de comparación para una trama sorda procesada usando las técnicas de suavizado a largo plazo descritas. Los valores de correlación cruzada en cada gráfico 1512, 1514, 1516 pueden ser sustancialmente similares. Por ejemplo, cada gráfico 1512, 1514, 1516 ilustra que una correlación cruzada máxima entre una trama capturada por el primer micrófono 146 de la FIG. 1 y una trama correspondiente capturada por el segundo micrófono 148 de la FIG. 1 ocurre aproximadamente en un desplazamiento de muestra de 17. Por tanto, la estimación de desplazamiento para las tramas de transición (ilustradas por el gráfico 1514) y las tramas sordas (ilustradas por el gráfico 1516) puede ser relativamente precisa (o similar) a la estimación de desplazamiento de la trama sonora a pesar del ruido.
[0198] El proceso de suavizado a largo plazo del valor de comparación descrito con respecto a la FIG. 15 puede aplicarse cuando los valores de comparación se estiman en los mismos rangos de desplazamiento en cada trama. La lógica de suavizado (por ejemplo, los suavizadores 1410, 1420, 1430) puede realizarse antes de la estimación de un desplazamiento entre los canales basándose en los valores de comparación generados. Por ejemplo, el suavizado se puede realizar antes de la estimación del desplazamiento tentativo, la estimación del desplazamiento interpolado o el desplazamiento modificado. Para reducir la adaptación de los valores de comparación durante las partes silenciosas (o el ruido de fondo que puede causar una desviación en la estimación de desplazamiento), los valores de comparación pueden suavizarse basándose en una constante de tiempo más alta (por ejemplo, a = 0,995); de lo contrario, el suavizado puede basarse en a = 0,9. La determinación de si ajustar los valores de comparación puede basarse en si la energía de fondo o la energía a largo plazo está por debajo de un umbral.
[0199] Con referencia a la FIG. 16, se muestra un diagrama de flujo que ilustra un procedimiento particular de funcionamiento y en general se designa como 1600. El procedimiento 1600 se puede realizar mediante el ecualizador temporal 108, el codificador 114, el primer dispositivo 104 de la FIG. 1 o una combinación de los mismos.
[0200] El procedimiento 1600 incluye capturar una primera señal de audio en un primer micrófono en 1602. La primera señal de audio puede incluir una primera trama. Por ejemplo, haciendo referencia a la FIG. 1, el primer micrófono 146 puede capturar la primera señal de audio 130. La primera señal de audio 130 puede incluir una primera trama.
[0201] Una segunda señal de audio puede capturarse en un segundo micrófono, en 1604. La segunda señal de audio puede incluir una segunda trama, y la segunda trama puede tener un contenido sustancialmente similar al de la primera trama. Por ejemplo, haciendo referencia a la FIG. 1, el segundo micrófono 148 puede capturar la segunda señal de audio 132. La segunda señal de audio 132 puede incluir una segunda trama, y la segunda trama puede tener un contenido sustancialmente similar al de la primera trama. La primera trama y la segunda trama pueden ser una de tramas sonoras, tramas de transición o tramas sordas.
[0202] Se puede estimar un retardo entre la primera trama y la segunda trama, en 1606. Por ejemplo, refiriéndose a la FIG. 1, el ecualizador temporal 108 puede determinar una correlación cruzada entre la primera trama y la segunda trama. Se puede estimar una desviación temporal entre la primera señal de audio y la segunda señal de audio basándose en el retardo basado en los datos de retardo históricos, en 1608. Por ejemplo, refiriéndose a la FIG. 1, el ecualizador temporal 108 puede estimar una desviación temporal entre el audio capturado en los micrófonos 146, 148. La desviación temporal puede estimarse basándose en un retardo entre un primera trama de la primera señal de audio 130 y un segunda trama de la segunda señal de audio 132, donde la segunda trama incluye un contenido sustancialmente similar al de la primera trama. Por ejemplo, el ecualizador temporal 108 puede usar una función de correlación cruzada para estimar el retardo entre la primera trama y la segunda trama. La función de correlación cruzada puede usarse para medir la similitud de las dos tramas en función del retraso de una trama con respecto a la otra. Basándose en la función de correlación cruzada, el ecualizador temporal 108 puede determinar el retardo (por ejemplo, retraso) entre la primera trama y la segunda trama. El ecualizador temporal 108 puede estimar la desviación temporal entre la primera señal de audio 130 y la segunda señal de audio 132 basándose en el retardo y los datos históricos de retardo.
[0203] Los datos históricos pueden incluir retardos entre las tramas capturadas desde el primer micrófono 146 y las tramas correspondientes capturadas desde el segundo micrófono 148. Por ejemplo, el ecualizador temporal 108 puede determinar una correlación cruzada (por ejemplo, un retraso) entre las tramas previas asociadas con la primera señal de audio 130 y las tramas correspondientes asociadas con la segunda señal de audio 132. Cada retraso puede representarse mediante un "valor de comparación". Es decir, un valor de comparación puede indicar un desplazamiento de tiempo (k) entre una trama de la primera señal de audio 130 y una trama correspondiente de la segunda señal de audio 132. De acuerdo con una implementación, los valores de comparación para tramas anteriores pueden almacenarse en la memoria 153. Un 192 más suave del ecualizador temporal 108 puede "suavizar" (o promediar) los valores de comparación en un conjunto de tramas a largo plazo y utilizar los valores de comparación suavizados a largo plazo para estimar una desviación temporal (por ejemplo, "desplazamiento") entre la primera señal de audio 130 y la segunda señal de audio 132.
[0204] Por tanto, los datos de retardo históricos pueden generarse basándose en valores de comparación suavizados asociados con la primera señal de audio 130 y la segunda señal de audio 132. Por ejemplo, el procedimiento 1600 puede incluir valores de comparación de suavizado asociados con la primera señal de audio 130 y la segunda señal de audio 132 para generar los datos de retardo históricos. Los valores de comparación suavizados pueden basarse en tramas de la primera señal de audio 130 generada antes que la primera trama y basados en tramas de la segunda señal de audio 132 generada antes que la segunda trama. De acuerdo con una implementación, el procedimiento 1600 puede incluir la desviación temporal de la segunda trama mediante la desviación temporal.
[0205] Para ilustrar, si CompValN(k) representa el valor de comparación en un desplazamiento de k para la trama N, la trama N puede tener valores de comparación de k=T_MIN (un desplazamiento mínimo) a k=T_MAX (un desplazamiento máximo). El suavizado se puede realizar de manera que un valor de comparación a largo plazo CompValLTN(k) esté representado por CompValLTN(k) = f(CompValN(k), CompValN-1(k), CompValLTN-2(k), ...). La función f en la ecuación anterior puede ser una función de todos (o un subconjunto) de los valores de comparación pasados en el desplazamiento (k). Una representación alternativa de puede ser CompValLTN(k) = g(CompVaN(k), CompVaN-1(k), CompValN-2(k), ...). Las funciones f o g pueden ser simples filtros de respuesta de impulso finito (FIR) o filtros de respuesta de impulso infinito (IIR), respectivamente. Por ejemplo, la función g puede ser un filtro IIR de un solo toque, de modo que el valor de comparación a largo plazo CompValLTN(k) esté representado por CompValLTN(k) = (1 - a) * CompValN(k), +(a) * CompVaÍTN-1(k), donde a e (0,1,0). Por lo tanto, el valor de comparación a largo plazo CompValLTN(k) puede basarse en una mezcla ponderada del valor de comparación instantáneo CompVaN(k) en la trama N y los valores de comparación a largo plazo CompValLTN-1(k) para una o más tramas anteriores. A medida que aumenta el valor de a, aumenta la cantidad de suavizado en el valor de comparación a largo plazo.
[0206] De acuerdo con una implementación, el procedimiento 1600 puede incluir ajustar un rango de valores de comparación que se utilizan para estimar el retardo entre la primera trama y la segunda trama, como se describe con mayor detalle con respecto a las FIGS. 17-18. El retardo puede estar asociado con un valor de comparación en el rango de valores de comparación que tienen una correlación cruzada más alta. El ajuste del rango puede incluir determinar si los valores de comparación en un límite del rango aumentan de manera monótona y ampliar el límite en respuesta a una determinación de que los valores de comparación en el límite aumentan de manera monótona. El límite puede incluir un límite izquierdo o un límite derecho.
[0207] El procedimiento 1600 de la FIG. 16 puede normalizar sustancialmente la estimación de desplazamiento entre tramas sonoras, tramas sordas y tramas de transición. Las estimaciones de desplazamiento normalizadas pueden reducir la repetición de la muestra y la omisión de distorsiones en los límites de la trama. Además, las estimaciones de desplazamiento normalizadas pueden dar como resultado energías de canal lateral reducidas, lo cual puede mejorar la eficiencia de codificación.
[0208] Refiriéndose a la FIG. 17, se muestra un diagrama de proceso 1700 para expandir selectivamente un rango de búsqueda de valores de comparación usados para la estimación de desplazamiento. Por ejemplo, el diagrama de proceso 1700 puede usarse para expandir el rango de búsqueda de valores de comparación basándose en valores de comparación generados para una trama actual, valores de comparación generados para tramas pasadas o una combinación de los mismos.
[0209] De acuerdo con el diagrama de proceso 1700, se puede configurar un detector para determinar si los valores de comparación en las proximidades de un límite derecho o un límite izquierdo aumentan o disminuyen. Los límites del rango de búsqueda para la generación futura de valores de comparación pueden extenderse para contener más valores de desplazamiento basados en la determinación. Por ejemplo, los límites del rango de búsqueda pueden empujarse hacia afuera para valores de comparación en tramas posteriores o valores de comparación en una misma trama cuando se regeneran los valores de comparación. El detector puede iniciar la extensión del límite de búsqueda basándose en los valores de comparación generados para una trama actual o basándose en los valores de comparación generados para una o más tramas anteriores.
[0210] En 1702, el detector puede determinar si los valores de comparación en el límite derecho aumentan de manera monótona. Como ejemplo no limitativo, el rango de búsqueda puede extenderse de -20 a 20 (por ejemplo, de 20 desplazamientos de muestra en la dirección negativa a 20 desplazamientos de muestra en la dirección positiva). Como se usa en el presente documento, un desplazamiento en la dirección negativa corresponde a una primera señal, tal como la primera señal de audio 130 de la FIG. 1, que es una señal de referencia y una segunda señal, tal como la segunda señal de audio 132 de la FIG. 1, siendo una señal objetivo. Un desplazamiento en la dirección positiva corresponde a que la primera señal sea la señal objetivo y la segunda señal sea la señal de referencia.
[0211] Si los valores de comparación en el límite derecho aumentan de forma monótona, en 1702, el detector puede ajustar el límite derecho hacia afuera para aumentar el rango de búsqueda, en 1704. Para ilustrar, si el valor de comparación en el desplazamiento de muestra 19 tiene un valor particular y el valor de comparación en el desplazamiento de muestra 20 tiene un valor más alto, el detector puede extender el rango de búsqueda en la dirección positiva. Como ejemplo no limitativo, el detector puede extender el rango de búsqueda de -20 a 25. El detector puede extender el rango de búsqueda en incrementos de una muestra, dos muestras, tres muestras, etc. De acuerdo con una implementación, la determinación en 1702 puede realizarse detectando valores de comparación en una pluralidad de muestras hacia el límite derecho para reducir la probabilidad de expandir el rango de búsqueda basado en un salto espurio en el límite correcto.
[0212] Si los valores de comparación en el límite derecho no aumentan de manera monótona, en 1702, el detector puede determinar si los valores de comparación en el límite izquierdo aumentan de manera monótona, en 1706. Si los valores de comparación en el límite izquierdo aumentan de manera monótona, en 1706, el detector puede ajustar el límite izquierdo hacia afuera para aumentar el rango de búsqueda, en 1708. Para ilustrar, si el valor de comparación en el desplazamiento de muestra -19 tiene un valor particular y el valor de comparación en el desplazamiento de muestra -20 tiene un valor más alto, el detector puede extender el rango de búsqueda en la dirección negativa. Como ejemplo no limitativo, el detector puede extender el rango de búsqueda de -25 a 20. El detector puede ampliar el rango de búsqueda en incrementos de una muestra, dos muestras, tres muestras, etc. De acuerdo con una implementación, la determinación en 1702 puede realizarse detectando valores de comparación en una pluralidad de muestras hacia el límite izquierdo para reducir la probabilidad de expandir el rango de búsqueda basado en un salto espurio en el límite izquierdo. Si los valores de comparación en el límite izquierdo no aumentan de manera monótona, en 1706, el detector puede dejar el rango de búsqueda sin cambios, en 1710.
[0213] Por tanto, el diagrama de proceso 1700 de la FIG. 17 puede iniciar la modificación del rango de búsqueda para tramas futuras. Por ejemplo, si se detecta que las últimas tres tramas consecutivas aumentan de manera monótona en los valores de comparación durante los últimos diez valores de desplazamiento antes del umbral (por ejemplo, aumentando del desplazamiento de muestra 10 al desplazamiento de muestra 20 o aumentando del desplazamiento de muestra -10 al desplazamiento de muestra -20), el rango de búsqueda puede incrementarse hacia afuera en un número particular de muestras. Este aumento hacia el exterior del rango de búsqueda puede implementarse continuamente para tramas futuras hasta que el valor de comparación en el límite ya no aumente de manera monótona. El aumento del rango de búsqueda basado en los valores de comparación para las tramas anteriores puede reducir la probabilidad de que el "desplazamiento verdadero" pueda estar muy cerca del límite del rango de búsqueda pero justo fuera del rango de búsqueda. La reducción de esta probabilidad puede dar como resultado una mejora en la minimización de la energía del canal lateral y en la codificación del canal.
[0214] Refiriéndose a la FIG. 18, se muestran gráficos que ilustran la expansión selectiva de un rango de búsqueda para valores de comparación usados para la estimación de desplazamiento. Los gráficos pueden funcionar junto con los datos de la tabla 1.
(O>
+■»Oa>
o </>
co o o
3C<0
.Q
O ■o
OO)
£
(i_0
O ■o
£
: '< 2
£/>
(0
Q.
X O
o ■o
<0
4 o ->
(0
Q
iS SI
Figure imgf000035_0001
[0215] De acuerdo con la tabla 1, el detector puede expandir el rango de búsqueda si un límite particular aumenta en tres o más tramas consecutivas. El primer gráfico 1802 ilustra los valores de comparación para la trama i-2. De acuerdo con el primer gráfico 1802, el límite izquierdo no aumenta monótonamente y el límite derecho aumenta monótonamente durante una trama consecutiva. Como resultado, el rango de búsqueda permanece sin cambios para la siguiente trama (por ejemplo, la trama i-1) y el límite puede variar de -20 a 20. El segundo gráfico 1804 ilustra los valores de comparación para la trama i-1. De acuerdo con el segundo gráfico 1804, el límite izquierdo no aumenta de manera monótona y el límite derecho aumenta de manera monótona durante dos tramas consecutivas. Como resultado, el rango de búsqueda permanece sin cambios para la siguiente trama (por ejemplo, la trama i) y el límite puede variar de -20 a 20.
[0216] El tercer gráfico 1806 ilustra los valores de comparación para la trama i. De acuerdo con el tercer gráfico 1806, el límite izquierdo no aumenta de manera monótona y el límite derecho aumenta de manera monótona durante tres tramas consecutivas. Debido a que el límite derecho aumenta de manera monótona durante tres o más tramas consecutivas, el rango de búsqueda para la siguiente trama (por ejemplo, la trama i+1) puede expandirse y el límite para la siguiente trama puede oscilar entre -23 y 23. El cuarto gráfico 1808 ilustra los valores de comparación para la trama i+1. De acuerdo con el cuarto gráfico 1808, el límite izquierdo no aumenta de manera monótona y el límite derecho aumenta de manera monótona durante cuatro tramas consecutivas. Debido a que el límite derecho aumenta de manera monótona durante tres o más tramas consecutivas, el rango de búsqueda para la siguiente trama (por ejemplo, la trama i+2) puede expandirse y el límite para la siguiente trama puede oscilar entre -26 y 26. El quinto gráfico 1810 ilustra los valores de comparación para la trama i+2. De acuerdo con el quinto gráfico 1810, el límite izquierdo no aumenta de manera monótona y el límite derecho aumenta de manera monótona durante cinco tramas consecutivas. Debido a que el límite derecho aumenta de manera monótona durante tres o más tramas consecutivas, el rango de búsqueda para la siguiente trama (por ejemplo, la trama i+3) puede expandirse y el límite para la siguiente trama puede oscilar entre -29 y 29.
[0217] El sexto gráfico 1812 ilustra los valores de comparación para la trama i+3. De acuerdo con el sexto gráfico 1812, el límite izquierdo no aumenta de manera monótona y el límite derecho no aumenta de manera monótona. Como resultado, el rango de búsqueda permanece sin cambios para la siguiente trama (por ejemplo, la trama i+4) y el límite puede variar de -29 a 29. El séptimo gráfico 1814 ilustra los valores de comparación para la trama i+4. De acuerdo con el séptimo gráfico 1814, el límite izquierdo no aumenta monótonamente y el límite derecho aumenta monótonamente durante una trama consecutiva. Como resultado, el rango de búsqueda permanece sin cambios para la siguiente trama y el límite puede variar de -29 a 29.
[0218] De acuerdo con la FIG. 18, el límite izquierdo se expande junto con el límite derecho. En implementaciones alternativas, el límite izquierdo puede empujarse hacia adentro para compensar el empuje hacia afuera del límite derecho para mantener un número constante de valores de desplazamiento en los que se estiman los valores de comparación para cada trama. En otra implementación, el límite izquierdo puede permanecer constante cuando el detector indica que el límite derecho debe expandirse hacia afuera.
[0219] De acuerdo con una implementación, cuando el detector indica que un límite particular se va a expandir hacia afuera, la cantidad de muestras a las que el límite particular se expande hacia afuera puede determinarse basándose en los valores de comparación. Por ejemplo, cuando el detector determina que el límite correcto debe expandirse hacia afuera basándose en los valores de comparación, se puede generar un nuevo conjunto de valores de comparación en un rango de búsqueda de desplazamiento más amplio y el detector puede usar los valores de comparación recién generados y los valores de comparación existentes para determinar el rango de búsqueda final. Para ilustrar, para la trama i+1, se puede generar un conjunto de valores de comparación en un rango más amplio de desplazamientos que van de -30 a 30. El rango de búsqueda final puede estar limitado basándose en los valores de comparación generados en el rango de búsqueda más amplio.
[0220] Aunque los ejemplos de la FIG. 18 indican que el límite derecho puede extenderse hacia afuera, se pueden realizar funciones análogas similares para extender el límite izquierdo hacia afuera si el detector determina que el límite izquierdo debe extenderse. De acuerdo con algunas implementaciones, pueden utilizarse limitaciones absolutas en el rango de búsqueda para evitar que el rango de búsqueda aumente o disminuya indefinidamente. Como ejemplo no limitativo, es posible que no se permita que el valor absoluto del rango de búsqueda aumente por encima de 8,75 milisegundos (por ejemplo, la anticipación del CÓDEC).
[0221] Con referencia a la FIG. 19, se divulga un ejemplo ilustrativo particular de un sistema y se designa en general 1900. El sistema 1900 incluye un primer dispositivo 104 que está comunicativamente acoplado, a través de la red 120, al segundo dispositivo 106.
[0222] El primer dispositivo 104 incluye componentes similares y puede funcionar de una manera sustancialmente similar a la descrita con respecto a la FIG. 1. Por ejemplo, el primer dispositivo 104 incluye el codificador 114, la memoria 153, las interfaces de entrada 112, el transmisor 110, el primer micrófono 146 y el segundo micrófono 148. Además del valor de desplazamiento final 116, la memoria 153 puede incluir información adicional. Por ejemplo, la memoria 153 puede incluir el valor de desplazamiento modificado 540 de la FIG. 5, un primer umbral 1902, un segundo umbral 1904, un primer modo de codificación HB 1912, un primer modo de codificación LB 1913, un segundo modo de codificación HB 1914, un segundo modo de codificación LB 1915, un primer número de bits 1916 y un segundo número de bits 1918. Además del ecualizador temporal 108 representado en la FIG. 1, el codificador 114 puede incluir un asignador de bits 1908 y un selector de modo de codificación 1910.
[0223] El codificador 114 (u otro procesador en el primer dispositivo 104) puede determinar el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540 de acuerdo con las técnicas descritas con respecto a la FIG. 5. Como se describe a continuación, el valor de desplazamiento modificado 540 también puede denominarse "valor de desplazamiento" y el valor de desplazamiento final 116 también puede denominarse "segundo valor de desplazamiento". El valor de desplazamiento modificado puede ser indicativo de un desplazamiento (por ejemplo, un desplazamiento de tiempo) de la primera señal de audio 130 capturada por el primer micrófono 146 con respecto a la segunda señal de audio 132 capturada por el segundo micrófono 148. Como se describe con respecto a la FIG. 5, el valor de desplazamiento final 116 puede basarse en el valor de desplazamiento modificado 540.
[0224] El asignador de bits 1908 puede configurarse para determinar una asignación de bits basándose en el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540. Por ejemplo, el asignador de bits 1908 puede determinar una variación entre el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540. Después de determinar la variación, el asignador de bits 1908 puede comparar la variación con el primer umbral 1902. Como se describe a continuación, si la variación satisface el primer umbral 1902, el número de bits asignados a una señal media y el número de bits asignados a una señal lateral pueden ajustarse durante una operación de codificación.
[0225] Para ilustrar, el codificador 114 puede configurarse para generar al menos una señal codificada (por ejemplo, las señales codificadas 102) basándose en la asignación de bits. Las señales codificadas 102 pueden incluir una primera señal codificada y una segunda señal codificada. De acuerdo con una implementación, la primera señal codificada puede corresponder a una señal media y la segunda señal codificada puede corresponder a una señal lateral. El codificador 114 puede generar la señal media (por ejemplo, la primera señal codificada) basándose en una suma de la primera señal de audio 130 y la segunda señal de audio 132. El codificador 114 puede generar la señal lateral basándose en una diferencia entre la primera señal de audio 130 y la segunda señal de audio 132. De acuerdo con una implementación, la primera señal codificada y la segunda señal codificada pueden incluir señales de banda baja. Por ejemplo, la primera señal codificada puede incluir una señal media de banda baja y la segunda señal codificada puede incluir una señal lateral de banda baja. La primera señal codificada y la segunda señal codificada pueden incluir señales de banda alta. Por ejemplo, la primera señal codificada puede incluir una señal media de banda alta y la segunda señal codificada puede incluir una señal lateral de banda alta.
[0226] Si el valor de desplazamiento final 116 (por ejemplo, una cantidad de desplazamiento usada para codificar las señales codificadas 102) es diferente del valor de desplazamiento modificado 540 (por ejemplo, una cantidad de desplazamiento calculada para reducir la energía de la señal lateral), se pueden asignar bits adicionales a la codificación de señales en comparación con un escenario en el que el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540 son similares. Después de asignar los bits adicionales a la codificación de la señal lateral, el resto de los bits disponibles puede asignarse a la codificación de la señal media y a los parámetros laterales. Tener un valor de desplazamiento final similar 116 y un valor de desplazamiento modificado 540 puede reducir sustancialmente la probabilidad de inversiones de señal en tramas sucesivas, reducir sustancialmente la aparición de un gran salto en el desplazamiento entre las señales de audio 130, 132 y/o puede ralentizar temporalmente cambiar la señal objetivo de una trama a otra. Por ejemplo, el desplazamiento puede evolucionar (por ejemplo, cambiar) lentamente porque el canal lateral no está completamente descorrelacionado y porque cambiar el desplazamiento en pasos grandes puede generar distorsiones. Además, si el desplazamiento cambia más de una cantidad particular de una trama a otra y una variación de desplazamiento final es limitada, puede producirse un aumento de la energía de la trama lateral. Por tanto, pueden asignarse bits adicionales a la codificación de la señal lateral para tener en cuenta el aumento de la energía de la trama lateral.
[0227] Para ilustrar, el asignador de bits 1908 puede asignar el primer número de bits 1916 a la primera señal codificada (por ejemplo, la señal media) y puede asignar el segundo número de bits 1918 a la segunda señal codificada (por ejemplo, la señal lateral). El asignador de bits 1908 puede determinar la variación (o la diferencia) entre el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540. Después de determinar la variación, el asignador de bits 1908 puede comparar la variación con el primer umbral 1902. En respuesta a la variación entre el valor de desplazamiento modificado 540 y el valor de desplazamiento final 116 que satisface el primer umbral 1902, el asignador de bits 1908 puede disminuir el primer número de bits 1916 y aumentar el segundo número de bits 1918. Por ejemplo, el asignador de bits 1908 puede disminuir el número de bits asignados a la señal media y puede aumentar el número de bits asignados a la señal lateral. De acuerdo con una implementación, el primer umbral 1902 puede ser igual a un valor relativamente pequeño (por ejemplo, cero o uno) de modo que los bits adicionales se asignen a la señal lateral si el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540 no son (sustancialmente) similares.
[0228] Como se describió anteriormente, el codificador 114 puede generar las señales codificadas 102 basándose en la asignación de bits. Además, las señales codificadas 102 pueden basarse en un modo de codificación, y el modo de codificación puede basarse en el valor de desplazamiento 540 modificado (por ejemplo, el valor de desplazamiento) y el valor de desplazamiento final 116 (por ejemplo, el segundo valor de desplazamiento). Por ejemplo, el codificador 114 puede configurarse para determinar el modo de codificación basándose en el valor de desplazamiento 540 modificado y el valor de desplazamiento final 116. Como se describió anteriormente, el codificador 114 puede determinar la diferencia entre el valor de desplazamiento modificado 540 y el valor de desplazamiento final 116.
[0229] En respuesta a la diferencia que satisface un umbral, el codificador 114 puede generar la primera señal codificada (por ejemplo, la señal media) basada en un primer modo de codificación y puede generar la segunda señal codificada (por ejemplo, la señal lateral) basada en un segundo modo de codificación. Ejemplos de modos de codificación se describen más adelante con referencia a las FIGS. 21-22. Para ilustrar, de acuerdo con una implementación, la primera señal codificada incluye una señal media de banda baja y la segunda señal codificada incluye una señal lateral de banda baja, y el primer modo de codificación y el segundo modo de codificación incluyen un modo de codificación de predicción lineal excitada por código algebraico (ACELP). De acuerdo con otra implementación, la primera señal codificada incluye una señal media de banda alta y la segunda señal codificada incluye una señal lateral de banda alta, y el primer modo de codificación y el segundo modo de codificación incluyen un modo de codificación de extensión de ancho de banda (BWE).
[0230] De acuerdo con una implementación, en respuesta a la diferencia entre el valor de desplazamiento modificado 540 y el valor de desplazamiento final 116 que no logra satisfacer el umbral, el codificador 114 puede generar una señal media de banda baja codificada (por ejemplo, la primera señal codificada) basada en un modo de codificación ACELP y puede generar una señal lateral de banda baja codificada (por ejemplo, la segunda señal codificada) basada en un modo de codificación ACELP predictivo. En este escenario, las señales codificadas 102 pueden incluir la señal media de banda baja codificada y uno o más parámetros correspondientes a la señal lateral de banda baja codificada.
[0231] De acuerdo con una implementación particular, el codificador 114 puede, basándose en la determinación de al menos que la variación en un segundo valor de desplazamiento (por ejemplo, el valor de desplazamiento modificado 540 o el valor de desplazamiento final 116 de la trama 304) con respecto al primer valor de desplazamiento 962 (por ejemplo, el desplazamiento final de la trama 302) supera un umbral particular, establecer un indicador de seguimiento de variación de desplazamiento. El codificador 114 puede estimar, basándose en el indicador de seguimiento de variación de desplazamiento, el parámetro de ganancia 160 (por ejemplo, una ganancia objetivo estimada), o ambos, un valor de relación de energía o un factor de mezcla descendente (por ejemplo, DMXFAC (como en las ecuaciones 2c-2d)). El codificador 114 puede determinar la asignación de bits para la trama 304 basándose en el factor de mezcla descendente (DMXFAC) que está controlado por la variación de desplazamiento, como se muestra en el pseudocódigo siguiente.
Seudocódigo: Generación del indicador de seguimiento de variación de desplazamiento
[0232]
S h i f t _ v a r i a t i o n _ t r a c k i n g f l a g = 0 ;
i f ( s p e e c h _ f r a m e
&& ( a b s ( p r e v F r a m e S h i f t V a l u e - c u r r F r a m e S h i f t V a l u e ) > T H R ) )
{ S h i f t _ v a r i a t i o n _ t r a c k i n g f l a g = 1 ;
}
Seudocódigo: Ajuste del factor de mezcla descendente basándose en la variación de desplazamiento, ganancia objetivo.
[0233]
Figure imgf000038_0001
Seudocódigo: Ajuste de la asignación de bits basándose en el factor de mezcla descendente.
[0234]
s i d e C h a n n e l _ b i t s = f u n c t i o n o f ( d o w n m i x F a c t o r , c o d i n g m o d e ) ;
H ig h B a n d _ b i t s = f u n c t i o n o f ( c o d e r _ t y p e , c o r e s a m p l e r a t e , t o t a l _ b i t r a t e )
m i d C h a n n e l _ b i t s = t o t a l _ b i t s - s i d e C h a n n e l _ b i t s - H B _ b i t s ;
[0235] Los "sideChannel_bits" pueden corresponder al segundo número de bits 1918. Los "midChannel_bits" pueden corresponder al primer número de bits 1916. De acuerdo con una implementación particular, los sideChannel_bits pueden estimarse basándose en el factor de mezcla descendente (por ejemplo, DMXFAC), el modo de codificación (por ejemplo, ACELP, TCX, INACTIVO, etc.), o ambos. La asignación de bits de banda alta, bits de banda alta puede basarse en el tipo de codificador (ACELP, sonoro, sordo), la frecuencia de muestreo del núcleo (núcleo de 12,8 kHz o 16 kHz), la frecuencia de bits total fija disponible para la codificación de canal lateral, canal medio codificación y codificación de banda alta, o una combinación de las mismas. El número restante de bits después de la asignación a la codificación de canal lateral y la codificación de banda alta puede asignarse a la codificación de canal medio.
[0236] En una implementación particular, el valor de desplazamiento final 116 elegido para el ajuste del canal objetivo puede ser distinto del valor de desplazamiento modificado sugerido o real (por ejemplo, el valor de desplazamiento modificado 540). Una máquina de estado (por ejemplo, el codificador 114) puede, en respuesta a la determinación de que el valor de desplazamiento modificado 540 es mayor que un umbral y daría como resultado un gran desplazamiento o ajuste en el canal objetivo, establecer el valor de desplazamiento final 116 en un valor intermedio. Por ejemplo, el codificador 114 puede establecer el valor de desplazamiento final 116 en un valor intermedio entre el primer valor de desplazamiento 962 (por ejemplo, el valor de desplazamiento final de la trama anterior) y el valor de desplazamiento modificado 540 (por ejemplo, el valor de desplazamiento sugerido o modificado de la trama actual). Cuando el valor de desplazamiento final 116 es distinto del valor de desplazamiento modificado 540, el canal lateral puede no estar descorrelacionado al máximo. Establecer el valor de desplazamiento final 116 en un valor intermedio (es decir, no el valor de desplazamiento verdadero o real, como el representado por el valor de desplazamiento modificado 540) puede resultar en asignar más bits a la codificación del canal lateral. La asignación de bits de canal lateral puede basarse directamente en la variación de desplazamiento o indirectamente en el indicador de seguimiento de variación de desplazamiento, la ganancia objetivo, el factor de mezcla descendente DMXFAC o una combinación de los mismos.
[0237] De acuerdo con otra implementación, en respuesta a la diferencia entre el valor de desplazamiento modificado 540 y el valor de desplazamiento final 116 que no logra satisfacer el umbral, el codificador 114 puede generar una señal media de banda alta codificada (por ejemplo, la primera señal codificada) basada en un modo de codificación BWE y puede generar una señal lateral de banda alta codificada (por ejemplo, la segunda señal codificada) basada en un modo de codificación BWE ciego. En este escenario, las señales codificadas 102 pueden incluir la señal media de banda alta codificada y uno o más parámetros correspondientes a la señal lateral de banda alta codificada.
[0238] Las señales codificadas 102 pueden basarse en primeras muestras de la primera señal de audio 130 y segundas muestras de la segunda señal de audio 132. Las segundas muestras se pueden desplazar en el tiempo con respecto a las primeras muestras en una cantidad que se basa en el valor de desplazamiento final 116 (por ejemplo, el segundo valor de desplazamiento). El transmisor 110 puede configurarse para transmitir las señales codificadas 102 al segundo dispositivo 106 a través de la red 120. Al recibir la señal codificada 102, el segundo dispositivo 106 puede funcionar de una manera sustancialmente similar a la descrita con respecto a la FIG. 1 para emitir la primera señal de salida 126 en el primer altavoz 142 y para emitir la segunda señal de salida 128 en el segundo altavoz 144.
[0239] El sistema 1900 de la FIG. 19 puede permitir que el codificador 114 ajuste (por ejemplo, aumente) el número de bits asignados a la codificación del canal lateral si el valor de desplazamiento final 116 es diferente del valor de desplazamiento modificado 540. Por ejemplo, el valor de desplazamiento final 116 puede estar restringido (por el analizador de desplazamiento de desplazamiento 512 de la FIG. 5) a un valor que sea diferente del valor de desplazamiento modificado 540 para evitar la inversión de signo en tramas sucesivas, para evitar grandes saltos de desplazamiento, y/o para cambiar temporalmente la señal objetivo de una trama a otra para alinearla con la señal de referencia. En estos escenarios, el codificador 114 puede aumentar el número de bits asignados a la codificación del canal lateral para reducir las distorsiones. Debe entenderse que el valor de desplazamiento final 116 puede ser diferente del valor de desplazamiento modificado 540 basado en otros parámetros, tales como parámetros de preprocesamiento/análisis entre canales (por ejemplo, voz, tono, energía de trama, actividad de voz, detección de transitorios, clasificación de voz/música, tipo de codificador, estimación del nivel de ruido, estimación de la relación señal/ruido (SNR), entropía de la señal, etc.), basada en una correlación cruzada entre canales y/o basada en una similitud espectral entre canales.
[0240] Refiriéndose a la FIG. 20, se muestra un diagrama de flujo de un procedimiento 2000 para asignar bits entre una señal media y una señal lateral. El procedimiento 2000 se puede realizar mediante el asignador de bits 1908.
[0241] En 2052, el procedimiento 2000 incluye determinar una diferencia 2057 entre el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540. Por ejemplo, el asignador de bits 1908 puede determinar la diferencia 2057 restando el valor de desplazamiento modificado 540 del valor de desplazamiento final 116.
[0242] En 2053, el procedimiento 2000 incluye comparar la diferencia 2057 (por ejemplo, el valor absoluto de la diferencia 2057) con el primer umbral 1902. Por ejemplo, el asignador de bits 1908 puede determinar si el valor absoluto de la diferencia es mayor que el primer umbral 1902. Si el valor absoluto de la diferencia 2057 es mayor que el primer umbral 1902, el asignador de bits 1908 puede disminuir el primer número de bits 1916 y puede aumentar el segundo número de bits 1918, en 2054. Por ejemplo, el asignador de bits 1908 puede disminuir el número de bits asignados a la señal media y puede aumentar el número de bits asignados a la señal lateral.
[0243] Si el valor absoluto de la diferencia 2057 no es mayor que el primer umbral 1902, el asignador de bits 1908 puede determinar si el valor absoluto de la diferencia 2057 es menor que el segundo umbral 1904, en 2055. Si el valor absoluto de la diferencia 2057 es menor que el segundo umbral 1904, el asignador de bits 1908 puede aumentar el primer número de bits 1916 y puede disminuir el segundo número de bits 1918, en 2056. Por ejemplo, el asignador de bits 1908 puede aumentar el número de bits asignados a la señal media y puede disminuir el número de bits asignados al canal lateral. Si el valor absoluto de la diferencia 2057 no es menor que el segundo umbral 1904, el primer número de bits 1916 y el segundo número de bits 1918 pueden permanecer sin cambios, en 2057.
[0244] El procedimiento 2000 de la FIG. 20 puede permitir que el asignador de bits 1908 ajuste (por ejemplo, aumente) el número de bits asignados a la codificación del canal lateral si el valor de desplazamiento final 116 es diferente del valor de desplazamiento modificado 540. Por ejemplo, el valor de desplazamiento final 116 puede estar restringido (por el analizador de desplazamiento de desplazamiento 512 de la FIG. 5) a un valor que sea diferente del valor de desplazamiento modificado 540 para evitar la inversión de signo en tramas sucesivas, para evitar grandes saltos de desplazamiento, y/o para cambiar temporalmente la señal objetivo de una trama a otra para alinearla con la señal de referencia. En estos escenarios, el codificador 114 puede aumentar el número de bits asignados a la codificación del canal lateral para reducir las distorsiones.
[0245] Refiriéndose a la FIG. 21, se muestra un diagrama de flujo de un procedimiento 2100 para seleccionar diferentes modos de codificación basándose en el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540. El procedimiento 2100 puede ser realizado por el selector de modo de codificación 1910.
[0246] En 2152, el procedimiento 2100 incluye determinar la diferencia 2057 entre el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540. Por ejemplo, el asignador de bits 1908 puede determinar la diferencia 2057 restando el valor de desplazamiento modificado 540 del valor de desplazamiento final 2052.
[0247] En 2153, el procedimiento 2100 incluye comparar la diferencia 2057 (por ejemplo, el valor absoluto de la diferencia 2057) con el primer umbral 1902. Por ejemplo, el asignador de bits 1908 puede determinar si el valor absoluto de la diferencia es mayor que el primer umbral 1902. Si el valor absoluto de la diferencia 2057 es mayor que el primer umbral 1902, el selector de modo de codificación 1910 puede seleccionar un modo de codificación BWE como el primer modo de codificación HB 1912, seleccionar un modo de codificación ACELP como el primer modo de codificación LB 1913, seleccionar un modo de codificación BWE como segundo modo de codificación HB 1914, y seleccionar un modo de codificación ACELP como segundo modo de codificación LB 1915, en 2154. Una implementación ilustrativa de la codificación de acuerdo con este escenario se representa como un esquema de codificación 2202 en la FIG. 22. De acuerdo con el esquema de codificación 2202, la banda alta puede codificarse utilizando modos de codificación BWE por división de tiempo (TD) o división de frecuencia (FD).
[0248] Volviendo a la FIG. 21, si el valor absoluto de la diferencia 2057 no es mayor que el primer umbral 1902, el selector de modo de codificación 1910 puede determinar si el valor absoluto de la diferencia 2057 es menor que el segundo umbral 1904, en 2155. Si el valor absoluto de la diferencia 2057 es menor que el segundo umbral 1904, el selector de modo de codificación 1910 puede seleccionar un modo de codificación BWE como el primer modo de codificación HB 1912, seleccionar un modo de codificación ACELP como el primer modo de codificación LB 1913, seleccionar un modo de codificación BWE ciego como el segundo modo de codificación HB 1914, y seleccionar un ACELP predictivo como el segundo modo de codificación LB 1915, en 2156. Una implementación ilustrativa de la codificación de acuerdo con este escenario se representa como un esquema de codificación 2206 en la FIG. 22. De acuerdo con el esquema de codificación 2206, la banda alta puede codificarse usando un modo de codificación TD o FD BWE para la codificación del canal medio, y la banda alta puede codificarse usando un modo de codificación TD o FD ciega BWE para la codificación del canal lateral.
[0249] Volviendo a la FIG. 21, si el valor absoluto de la diferencia 2057 no es menor que el segundo umbral 1904, el selector de modo de codificación 1910 puede seleccionar un modo de codificación BWE como el primer modo de codificación HB 1912, seleccionar un modo de codificación ACELP como el primer modo de codificación LB 1913, seleccionar un modo de codificación BWE ciego como el segundo modo de codificación HB 1914, y seleccionar un modo de codificación ACELP como el segundo modo de codificación LB 1915, en 2157. Una implementación ilustrativa de la codificación de acuerdo con este escenario se representa como un esquema de codificación 2204 en la FIG. 22. De acuerdo con el esquema de codificación 2204, la banda alta puede codificarse usando un modo de codificación TD o FD BWE para la codificación del canal medio, y la banda alta puede codificarse usando un modo de codificación TD o FD ciega BWE para la codificación del canal lateral.
[0250] Por tanto, de acuerdo con el procedimiento 2100, el esquema de codificación 2202 puede asignar un gran número de bits para la codificación del canal lateral, el esquema de codificación 2204 puede asignar un número menor de bits para la codificación del canal lateral, y el esquema de codificación 2206 puede asignar un número aún menor de bits para la codificación del canal lateral. Si las señales 130, 132 son señales de tipo ruido, el selector de modo de codificación 1910 puede codificar las señales 130, 132 de acuerdo con un esquema de codificación 2208. Por ejemplo, el canal lateral puede codificarse utilizando codificación residual o predictiva. El canal lateral de banda alta y de banda baja puede codificarse usando el dominio de transformación (por ejemplo, codificación de Transformada de Fourier Discreta (DFT) o Transformada de Coseno Discreta Modificada (MDCT)). Si las señales 130, 132 tienen ruido reducido (por ejemplo, señales de tipo musical), el selector de modo de codificación 1910 puede codificar las señales 130, 132 de acuerdo con un esquema de codificación 2210. El esquema de codificación 2210 puede ser similar al esquema de codificación 2208, sin embargo, la codificación del canal medio de acuerdo con el esquema de codificación 2210 incluye la codificación de excitación codificada por transformada (TCX).
[0251] El procedimiento 2100 de la FIG. 21 puede permitir que el selector de modo de codificación 1910 cambie los modos de codificación para el canal medio y el canal lateral basándose en una diferencia entre el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540.
[0252] Con referencia a la FIG. 23, se muestra un ejemplo ilustrativo del codificador 114 del primer dispositivo 104. El codificador 114 incluye un preprocesador de señal 2302 acoplado, a través de un estimador de desplazamiento 2304, a un analizador de variación de desplazamiento entre tramas 2306, a un designador de señal de referencia 2309, o ambos. El preprocesador de señales 2302 puede configurarse para recibir señales de audio 2328 (por ejemplo, la primera señal de audio 130 y la segunda señal de audio 132) y para procesar las señales de audio 2328 para generar una primera señal remuestreada 2330 y una segunda señal remuestreada 2332. Por ejemplo, el preprocesador de señales 2302 puede configurarse para muestrear de forma descendente o volver a muestrear las señales de audio 2328 para generar las señales remuestreadas 2330, 2332. El estimador de desplazamiento 2304 puede configurarse para determinar valores de desplazamiento basándose en la comparación o comparaciones de las señales remuestreadas 2330, 2332. El analizador de variación de desplazamiento entre tramas 2306 puede configurarse para identificar señales de audio como señales de referencia y señales objetivo. El analizador de variación de desplazamiento entre tramas 2306 también puede configurarse para determinar una diferencia entre dos valores de desplazamiento. El designador de señal de referencia 2309 se puede configurar para seleccionar una señal de audio como señal de referencia (por ejemplo, una señal que no está desplazada en el tiempo) y para seleccionar otra señal de audio como una señal objetivo (por ejemplo, una señal que está desplazada en el tiempo relativo a la señal de referencia para alinear temporalmente la señal con la señal de referencia).
[0253] El analizador de variación de desplazamiento entre tramas 2306 puede acoplarse, a través de un ajustador de señal objetivo 2308, al generador de parámetros de ganancia 2315. El ajustador de señal objetivo 2308 puede configurarse para ajustar una señal objetivo basándose en una diferencia entre los valores de desplazamiento. Por ejemplo, el ajustador de señal objetivo 2308 puede configurarse para realizar la interpolación en un subconjunto de muestras para generar muestras estimadas que se utilizan para generar muestras ajustadas de la señal objetivo. El generador de parámetros de ganancia 2315 puede configurarse para determinar un parámetro de ganancia de la señal de referencia que "normaliza" (por ejemplo, ecualiza) un nivel de potencia de la señal de referencia en relación con un nivel de potencia de la señal objetivo. De forma alternativa, el generador de parámetros de ganancia 2315 puede configurarse para determinar un parámetro de ganancia de la señal objetivo que normaliza (por ejemplo, ecualiza) un nivel de potencia de la señal objetivo en relación con un nivel de potencia de la señal de referencia.
[0254] El designador de señal de referencia 2309 puede estar acoplado al analizador de variación de desplazamiento entre tramas 2306, al generador de parámetros de ganancia 2315, o ambos. El ajustador de señal objetivo 2308 puede estar acoplado a un generador intermedio 2310, al generador de parámetros de ganancia 2315 o a ambos. El generador de parámetros de ganancia 2315 puede estar acoplado al generador intermedio 2310. El generador intermedio 2310 puede configurarse para realizar la codificación de la señal de referencia y la señal objetivo ajustada para generar al menos una señal codificada. Por ejemplo, el generador intermedio 2310 puede configurarse para realizar codificación estéreo para generar una señal de canal medio 2370 y una señal de canal lateral 2372.
[0255] El generador intermedio 2310 puede estar acoplado a un equilibrador espacial de extensión de ancho de banda (BWE) 2312, un codificador de bW e media 2314, un regenerador de señal de banda baja (LB) 2316, o una combinación de los mismos. El regenerador de señal de LB 2316 puede estar acoplado a un codificador de núcleo lateral de LB 2318, un codificador de núcleo medio LB 2320, o ambos. El codificador de BWE media 2314 puede estar acoplado al equilibrador espacial BWE 2312, al codificador de núcleo central de LB 2320, o ambos. El equilibrador espacial BWE 2312, el codificador de BWE media 2314, el regenerador de señal LB 2316, el codificador de núcleo lateral LB 2318 y el codificador de núcleo medio LB 2320 pueden configurarse para realizar una extensión de ancho de banda y codificación adicional, como la codificación de banda baja y codificación de banda media, en la señal de canal medio 2370, la señal de canal lateral 2372, o ambas. La realización de la extensión del ancho de banda y la codificación adicional puede incluir la realización de una codificación de señal adicional, la generación de parámetros o ambos.
[0256] Durante el funcionamiento, el preprocesador de señal 2302 puede recibir las señales de audio 2328. Las señales de audio 2328 pueden incluir la primera señal de audio 130, la segunda señal de audio 132, o ambas. En una implementación particular, las señales de audio 2328 pueden incluir una señal de canal izquierdo y una señal de canal derecho. En otras implementaciones, las señales de audio 2328 pueden incluir otras señales. El preprocesador de señales 2302 puede muestrear de forma descendente (o volver a muestrear) la primera señal de audio 130 y la segunda señal de audio 132 para generar las señales remuestreadas 2330, 2332 (por ejemplo, la primera señal de audio muestreada de forma descendente 130 y la segunda señal de audio muestreada de forma descendente 132).
[0257] El estimador de desplazamiento 2304 puede generar valores de desplazamiento basados en las señales remuestreadas 2330, 2332. En una implementación particular, el estimador de desplazamiento 2304 puede generar un valor de desplazamiento no causal (NC_SHIFT_INDX) 2361 después de la realización de una operación de valor absoluto. En una implementación particular, el estimador de desplazamiento 2304 puede evitar que el siguiente valor de desplazamiento tenga un signo diferente (por ejemplo, positivo o negativo) que un valor de desplazamiento actual. Por ejemplo, cuando el valor de desplazamiento para una primera trama es negativo y se determina que el valor de desplazamiento para una segunda trama es positivo, el estimador de desplazamiento 2304 puede establecer el valor de desplazamiento para la segunda trama en cero. Como otro ejemplo, cuando el valor de desplazamiento para la primera trama es positivo y el valor de desplazamiento para la segunda trama se determina que es negativo, el estimador de desplazamiento 2304 puede establecer el valor de desplazamiento para la segunda trama en cero. Por tanto, en esta implementación, un valor de desplazamiento para una trama actual tiene el mismo signo (por ejemplo, positivo o negativo) que un valor de desplazamiento para una trama anterior, o el valor de desplazamiento para la trama actual es cero.
[0258] El designador de señal de referencia 2309 puede seleccionar una de la primera señal de audio 130 y la segunda señal de audio 132 como una señal de referencia durante un período de tiempo correspondiente a la tercera trama y a la cuarta trama. El designador de señal de referencia 2309 puede determinar la señal de referencia basándose en el valor de desplazamiento final 116 del estimador de desplazamiento 2304. Por ejemplo, cuando el valor de desplazamiento final 116 es negativo, el designador de señal de referencia 2309 puede identificar la segunda señal de audio 132 como la señal de referencia y la primera señal de audio 130 como la señal objetivo. Cuando el valor de desplazamiento final 116 es positivo o cero, el designador de señal de referencia 2309 puede identificar la segunda señal de audio 132 como la señal objetivo y la primera señal de audio 130 como la señal de referencia. El designador de señal de referencia 2309 puede generar el indicador de señal de referencia 2365 que tiene un valor que indica la señal de referencia. Por ejemplo, el indicador de señal de referencia 2365 puede tener un primer valor (por ejemplo, un valor lógico cero) cuando la primera señal de audio 130 se identifica como la señal de referencia, y el indicador de señal de referencia 2365 puede tener un segundo valor (por ejemplo, un valor lógico un valor) cuando la segunda señal de audio 132 se identifica como la señal de referencia. El designador de señal de referencia 2309 puede proporcionar el indicador de señal de referencia 2365 al analizador de variación de desplazamiento entre tramas 2306 y al generador de parámetros de ganancia 2315.
[0259] El analizador de variación de desplazamiento entre tramas 2306 puede generar un indicador de señal objetivo 2364 basado en el valor de desplazamiento final 116, un primer valor de desplazamiento 2363, una señal objetivo 2342, una señal de referencia 2340 y el indicador de señal de referencia 2365. El indicador de señal objetivo 2364 indica un canal objetivo ajustado. Por ejemplo, un primer valor (por ejemplo, un valor lógico cero) del indicador de señal objetivo 2364 puede indicar que la primera señal de audio 130 es el canal objetivo ajustado, y un segundo valor (por ejemplo, un valor lógico uno) de la señal objetivo el indicador 2364 puede indicar que la segunda señal de audio 132 es el canal objetivo ajustado. El analizador de variación de desplazamiento entre tramas 2306 puede proporcionar el indicador de señal objetivo 2364 al ajustador de señal objetivo 2308.
[0260] El ajustador 2308 de la señal objetivo puede ajustar las muestras correspondientes a la señal objetivo ajustada para generar las muestras ajustadas una señal objetivo ajustada 2352. El ajustador de señal objetivo 2308 puede proporcionar la señal objetivo ajustada 2352 al generador de parámetros de ganancia 2315 y al generador intermedio 2310. El generador de parámetros de ganancia 2315 puede generar un parámetro de ganancia 261 basado en el indicador de señal de referencia 2365 y la señal objetivo ajustada 2352. El parámetro de ganancia 261 puede normalizar (por ejemplo, ecualizar) un nivel de potencia de la señal objetivo en relación con un nivel de potencia de la señal de referencia. De forma alternativa, el generador de parámetros de ganancia 2315 puede recibir la señal de referencia (o muestras de la misma) y determinar el parámetro de ganancia 261 que normaliza un nivel de potencia de la señal de referencia con relación a un nivel de potencia de la señal objetivo. El generador de parámetros 2315 puede proporcionar el parámetro de ganancia 261 al generador intermedio 2310.
[0261] El generador intermedio 2310 puede generar la señal de canal medio 2370, la señal de canal lateral 2372, o ambas, basándose en la señal objetivo ajustada 2352, la señal de referencia 2340, el parámetro de ganancia 261. El generador intermedio 2310 puede proporcionar la señal de canal lateral 2372 al equilibrador espacial BWE 2312, al regenerador de señal de LB 2316, o a ambos. El generador intermedio 2310 puede proporcionar la señal de canal medio 2370 al codificador de BWE media 2314, al regenerador de señal de LB 2316, o a ambos. El regenerador de señal de LB 2316 puede generar una señal media de LB 2360 basándose en la señal de canal medio 2370. Por ejemplo, el regenerador de señal de LB 2316 puede generar la señal media de LB 2360 filtrando la señal de canal medio 2370. El regenerador de señal de LB 2316 puede proporcionar la señal media de LB 2360 al codificador de núcleo medio de LB 2320. El codificador de núcleo medio de LB 2320 puede generar parámetros (por ejemplo, parámetros centrales 2371, parámetros 2375 o ambos) basándose en la señal media de LB 2360. Los parámetros centrales 2371, los parámetros 2375, o ambos, pueden incluir un parámetro de excitación, un parámetro de sonorización, etc. El codificador central medio de LB 2320 puede proporcionar los parámetros centrales 2371 al codificador de BWE media 2314, los parámetros 2375 al codificador central lateral de LB 2318, o a ambos. Los parámetros centrales 2371 pueden ser iguales a o distintos de los parámetros 2375. Por ejemplo, los parámetros centrales 2371 pueden incluir uno o más de los parámetros 2375, pueden excluir uno o más de los parámetros 2375, pueden incluir uno o más parámetros adicionales, o una combinación de los mismos. El codificador de BWE media 2314 puede generar una señal BWE media codificada 2373 basándose en la señal de canal medio 2370, los parámetros centrales 2371, o una combinación de los mismos. El codificador de BWE media 2314 también puede generar un conjunto de primeros parámetros de ganancia 2394 y parámetros LPC 2392 basándose en la señal de canal medio 2370, los parámetros centrales 2371, o una combinación de los mismos. El codificador de BWE media 2314 puede proporcionar la señal BWE media codificada 2373 al equilibrador espacial BWE 2312. El equilibrador espacial BWE 2312 puede generar parámetros (por ejemplo, uno o más parámetros de ganancia, parámetros de ajuste espectral, otros parámetros o una combinación de los mismos) basados en la señal BWE media codificada 2373, una señal HB izquierda 2396 (por ejemplo, una parte de banda alta de una señal de canal izquierdo), una seña1HB derecha 2398 (por ejemplo, una parte de banda alta de una señal de canal derecho), o una combinación de las mismas.
[0262] El regenerador de señal de LB 2316 puede generar una señal lateral de LB 2362 basándose en la señal de canal lateral 2342. Por ejemplo, el regenerador de señal de LB 2316 puede generar la señal lateral de LB 2362 filtrando la señal de canal lateral 2342. El regenerador de señal de LB 2316 puede proporcionar la señal lateral de LB 2362 al codificador central lateral de LB 2318.
[0263] Por tanto, el sistema 2300 de la FIG. 23 genera señales codificadas (por ejemplo, señales de salida generadas en el codificador de núcleo del lado LB 2318, el codificador de núcleo medio de LB 2320, el codificador de BWE media 2314, el equilibrador espacial BWE 2312 o una combinación de los mismos) que se basan en un canal objetivo ajustado . El ajuste del canal objetivo basándose en una diferencia entre los valores de desplazamiento puede compensar (u ocultar) las discontinuidades entre tramas, lo cual puede reducir los clics u otros sonidos de audio durante la reproducción de las señales codificadas.
[0264] Refiriéndose a la FIG. 24, un diagrama 2400 ilustra diferentes señales codificadas de acuerdo con las técnicas descritas en el presente documento. Por ejemplo, se muestra una señal media HB codificada 2102, una señal media LB codificada 2104, una señal lateral HB codificada 2108 y una señal lateral LB codificada 2110.
[0265] La señal media HB codificada 2102 incluye los parámetros LPC 2392 y el conjunto de primeros parámetros de ganancia 2394. Los parámetros LPC 2392 pueden indicar un índice de frecuencia espectral de línea de banda alta (LSF). El conjunto de los primeros parámetros de ganancia 2394 puede indicar un índice de trama de ganancia, un índice de formas de ganancia o ambos. La señal lateral HB codificada 2108 incluye los parámetros LPC 2492 y un conjunto de parámetros de ganancia 2494. Los parámetros LPC 2492 pueden indicar un índice LSF de banda alta. El conjunto de parámetros de ganancia 2494 puede indicar un índice de trama de ganancia, un índice de formas de ganancia o ambos. La señal media 2104 de LB codificada puede incluir parámetros 2371 centrales, y la señal 2110 lateral LB codificada puede incluir parámetros 2471 centrales.
[0266] Refiriéndose a la FIG. 25, se muestra un sistema 2500 para codificar una señal de acuerdo con las técnicas descritas en el presente documento. El sistema 2500 incluye un mezclador descendente 2502, un preprocesador 2504, un codificador medio 2506, un primer codificador medio HB 2508, un segundo codificador medio HB 2509, un codificador lateral 2510 y un codificador lateral HB 2512.
[0267] Una señal de audio 2528 se puede proporcionar al mezclador descendente 2502. De acuerdo con una implementación, la señal de audio 2528 puede incluir la primera señal de audio 130 y la segunda señal de audio 132. El mezclador descendente 2502 puede realizar una operación de mezcla descendente para generar la señal de canal medio 2370 y la señal de canal lateral 2372. La señal de canal medio 2370 puede proporcionarse al preprocesador 2504, y la señal de canal lateral 2372 puede proporcionarse al codificador lateral 2510.
[0268] El preprocesador 2504 puede generar parámetros de preprocesamiento 2570 basados en la señal de canal medio 2370. Los parámetros de preprocesamiento 2570 pueden incluir el primer número de bits 1916, el segundo número de bits 1918, el primer modo de codificación HB 1912, el primer modo de codificación LB 1913, el segundo modo de codificación HB 1914 y el segundo modo de codificación LB 1915 . La señal de canal medio 2370 y los parámetros de preprocesamiento 2570 pueden proporcionarse al codificador medio 2506. Basado en el modo de codificación, el codificador medio 2506 puede acoplarse selectivamente al primer codificador medio HB 2508 o al segundo codificador medio HB 2509. El codificador lateral 2510 puede acoplarse al codificador latera1HB 2512.
[0269] Haciendo referencia a la FIG. 26, se muestra un diagrama de flujo de un procedimiento 2600 de comunicación. Se puede realizar el procedimiento 2600 mediante el primer dispositivo 104 de las FIGS. 1 y 19.
[0270] El procedimiento 2600 incluye determinar, en un dispositivo, un valor de desplazamiento y un segundo valor de desplazamiento, en 2602. El valor de desplazamiento puede ser indicativo de un desplazamiento de una primera señal de audio con respecto a una segunda señal de audio, y el segundo valor de desplazamiento puede basarse en el valor de desplazamiento. Por ejemplo, refiriéndose a la FIG. 19, el codificador 114 (u otro procesador en el primer dispositivo 104) puede determinar el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540 de acuerdo con las técnicas descritas con respecto a la FIG. 5. Con respecto al procedimiento 2600, el valor de desplazamiento modificado 540 también puede denominarse "valor de desplazamiento" y el valor de desplazamiento final 116 también puede denominarse "segundo valor de desplazamiento". El valor de desplazamiento modificado puede ser indicativo de un desplazamiento (por ejemplo, un desplazamiento de tiempo) de la primera señal de audio 130 capturada por el primer micrófono 146 con respecto a la segunda señal de audio 132 capturada por el segundo micrófono 148. Como se describe con respecto a la FIG. 5, el valor de desplazamiento final 116 puede basarse en el valor de desplazamiento modificado 540.
[0271] El procedimiento 2600 también incluye determinar, en el dispositivo, una asignación de bits basada en el segundo valor de desplazamiento y el valor de desplazamiento, en 2604. Por ejemplo, refiriéndose a la FIG. 19, el asignador de bits 1908 puede determinar una asignación de bits basándose en el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540. Por ejemplo, el asignador de bits 1908 puede determinar una diferencia entre el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540. Si el valor de desplazamiento final 116 es diferente del valor de desplazamiento modificado 540, pueden asignarse bits adicionales a la codificación de la señal lateral en comparación con un escenario en el que el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540 son similares. Después de asignar los bits adicionales a la codificación de la señal lateral, el resto de los bits disponibles puede asignarse a la codificación de la señal media y a los parámetros laterales. Tener un valor de desplazamiento final similar 116 y un valor de desplazamiento modificado 540 puede reducir sustancialmente la probabilidad de inversiones de señal en tramas sucesivas, reducir sustancialmente la aparición de un gran salto en el desplazamiento entre las señales de audio 130, 132 y/o puede ralentizar temporalmente cambiar la señal objetivo de una trama a otra.
[0272] El procedimiento 2600 también incluye generar, en el dispositivo, al menos una señal codificada basada en la asignación de bits, en 2606. La al menos una señal codificada puede basarse en las primeras muestras de la primera señal de audio y las segundas muestras de la segunda señal de audio. Las segundas muestras pueden estar desplazadas en el tiempo en relación con las primea muestras en una cantidad que se basa en el segundo valor de desplazamiento. Por ejemplo, refiriéndose a la FIG. 19, el codificador 114 puede generar al menos una señal codificada (por ejemplo, las señales codificadas 102) basándose en la asignación de bits. Las señales codificadas 102 pueden incluir una primera señal codificada y una segunda señal codificada. De acuerdo con una implementación, la primera señal codificada puede corresponder a una señal media y la segunda señal codificada puede corresponder a una señal lateral. Las señales codificadas 102 pueden basarse en primeras muestras de la primera señal de audio 130 y segundas muestras de la segunda señal de audio 132. Las segundas muestras se pueden desplazar en el tiempo con respecto a las primeras muestras en una cantidad que se basa en el valor de desplazamiento final 116 (por ejemplo, el segundo valor de desplazamiento).
[0273] El procedimiento 2600 incluye también enviar la al menos una señal codificada a un segundo dispositivo, en 2608. Por ejemplo, refiriéndose a la FIG. 19, el transmisor 110 puede transmitir las señales codificadas 102 al segundo dispositivo 106 a través de la red 120. Al recibir la señal codificada 102, el segundo dispositivo 106 puede funcionar de una manera sustancialmente similar a la descrita con respecto a la FIG. 1 para emitir la primera señal de salida 126 en el primer altavoz 142 y para emitir la segunda señal de salida 128 en el segundo altavoz 144.
[0274] De acuerdo con una implementación, el procedimiento 2600 incluye determinar que la asignación de bits tiene un primer valor en respuesta a una diferencia entre el valor de desplazamiento y el segundo valor de desplazamiento que satisface un umbral. La al menos una señal codificada puede incluir una primera señal codificada y una segunda señal codificada. La primera señal codificada puede corresponder a una señal media y la segunda señal codificada puede corresponder a una señal lateral. La asignación de bits puede indicar que se asigna un primer número de bits a la primera señal codificada y que se asigna un segundo número de bits a la segunda señal codificada. El procedimiento 2600 también puede incluir disminuir el primer número de bits y aumentar el segundo número de bits en respuesta a una diferencia entre el valor de desplazamiento y el segundo valor de desplazamiento que satisface un primer umbral.
[0275] De acuerdo con una implementación, el procedimiento 2600 puede incluir generar la señal media basándose en una suma de la primera señal de audio y la segunda señal de audio. El procedimiento 2600 también puede incluir generar la señal lateral basándose en una diferencia entre la primera señal de audio y la segunda señal de audio. De acuerdo con una implementación del procedimiento 2600, la primera señal codificada incluye una señal media de banda baja y la segunda señal codificada incluye una señal lateral de banda baja. De acuerdo con otra implementación del procedimiento 2600, la primera señal codificada incluye una señal media de banda alta y la segunda señal codificada incluye una señal lateral de banda alta.
[0276] De acuerdo con una implementación, el procedimiento 2600 incluye determinar un modo de codificación basado en el valor de desplazamiento y el segundo valor de desplazamiento. La al menos una señal codificada puede basarse en el modo de codificación. El procedimiento 2600 también puede incluir generar una primera señal codificada basándose en un primer modo de codificación y generar una segunda señal codificada basándose en un segundo modo en respuesta a una diferencia entre el valor de desplazamiento y el segundo valor de desplazamiento que satisface un umbral. La al menos una señal codificada puede incluir la primera señal codificada y la segunda señal codificada. De acuerdo con una implementación, la primera señal codificada puede incluir una señal media de banda baja y la segunda señal codificada puede incluir una señal lateral de banda baja. El primer modo de codificación y el segundo modo de codificación pueden incluir un modo de codificación ACELP. De acuerdo con otra implementación, la primera señal codificada puede incluir una señal media de banda alta y la segunda señal codificada puede incluir una señal lateral de banda alta. El primer modo de codificación y el segundo modo de codificación pueden incluir un modo de código BWE.
[0277] De acuerdo con una implementación, el procedimiento 2600 incluye generar una señal media de banda baja codificada basada en un modo de codificación ACELP y generar una señal lateral de banda baja codificada basada en un modo de codificación ACELP predictivo. La al menos una señal codificada puede incluir la señal media de banda baja codificada y uno o más parámetros correspondientes a la señal lateral de banda baja codificada.
[0278] De acuerdo con una implementación, el procedimiento 2600 incluye generar una señal media de banda alta codificada basada en un modo de codificación BWE en respuesta a una diferencia entre el valor de desplazamiento y el segundo valor de desplazamiento que no logra satisfacer un umbral. El procedimiento 2600 también puede incluir generar una señal lateral de banda alta codificada basada en un modo de codificación BWE ciego en respuesta a que la diferencia no satisfaga el umbral. La al menos una señal codificada puede incluir la señal media de banda alta codificada y uno o más parámetros correspondientes a la señal lateral de banda alta codificada.
[0279] El procedimiento 2600 de la FIG. 6 puede permitir que el codificador 114 ajuste (por ejemplo, aumente) el número de bits asignados a la codificación del canal lateral si el valor de desplazamiento final 116 es diferente del valor de desplazamiento modificado 540. Por ejemplo, el valor de desplazamiento final 116 puede estar restringido (por el analizador de desplazamiento de desplazamiento 512 de la FIG. 5) a un valor que sea diferente del valor de desplazamiento modificado 540 para evitar la inversión de signo en tramas sucesivas, para evitar grandes saltos de desplazamiento, y/o para cambiar temporalmente la señal objetivo de una trama a otra para alinearla con la señal de referencia. En estos escenarios, el codificador 114 puede aumentar el número de bits asignados a la codificación del canal lateral para reducir las distorsiones.
[0280] Haciendo referencia a la FIG. 27, se muestra un diagrama de flujo de un procedimiento 2700 de comunicación. Se puede realizar el procedimiento 2700 mediante el primer dispositivo 104 de las FIGS. 1 y 19.
[0281] El procedimiento 2700 puede incluir determinar, en un dispositivo, un valor de desplazamiento y un segundo valor de desplazamiento, en 2702. El valor de desplazamiento puede ser indicativo de un desplazamiento de una primera señal de audio con respecto a una segunda señal de audio, y el segundo valor de desplazamiento puede basarse en el valor de desplazamiento. Por ejemplo, refiriéndose a la FIG. 19, el codificador 114 (u otro procesador en el primer dispositivo 104) puede determinar el valor de desplazamiento final 116 y el valor de desplazamiento modificado 540 de acuerdo con las técnicas descritas con respecto a la FIG. 5. Con respecto al procedimiento 2700, el valor de desplazamiento modificado 540 también puede denominarse "valor de desplazamiento" y el valor de desplazamiento final 116 también puede denominarse "segundo valor de desplazamiento". El valor de desplazamiento modificado puede ser indicativo de un desplazamiento (por ejemplo, un desplazamiento de tiempo) de la primera señal de audio 130 capturada por el primer micrófono 146 con respecto a la segunda señal de audio 132 capturada por el segundo micrófono 148. Como se describe con respecto a la FIG. 5, el valor de desplazamiento final 116 puede basarse en el valor de desplazamiento modificado 540.
[0282] El procedimiento 2700 también puede incluir determinar, en el dispositivo, un modo de codificación basado en el segundo valor de desplazamiento y el valor de desplazamiento, en 2704. El procedimiento 2700 también puede incluir generar, en el dispositivo, al menos una señal codificada basada en el modo de codificación, en 2706. La al menos una señal codificada puede basarse en las primeras muestras de la primera señal de audio y las segundas muestras de la segunda señal de audio. Las segundas muestras pueden estar desplazadas en el tiempo en relación con las primea muestras en una cantidad que se basa en el segundo valor de desplazamiento. Por ejemplo, refiriéndose a la FIG. 19, el codificador 114 puede generar al menos una señal codificada (por ejemplo, las señales codificadas 102) basándose en el modo de codificación. Las señales codificadas 102 pueden incluir una primera señal codificada y una segunda señal codificada. De acuerdo con una implementación, la primera señal codificada puede corresponder a una señal media y la segunda señal codificada puede corresponder a una señal lateral. Las señales codificadas 102 pueden basarse en primeras muestras de la primera señal de audio 130 y segundas muestras de la segunda señal de audio 132. Las segundas muestras se pueden desplazar en el tiempo con respecto a las primeras muestras en una cantidad que se basa en el valor de desplazamiento final 116 (por ejemplo, el segundo valor de desplazamiento).
[0283] El procedimiento 2700 también puede incluir enviar la al menos una señal codificada a un segundo dispositivo, en 2708. Por ejemplo, refiriéndose a la FIG. 19, el transmisor 110 puede transmitir las señales codificadas 102 al segundo dispositivo 106 a través de la red 120. Al recibir la señal codificada 102, el segundo dispositivo 106 puede funcionar de una manera sustancialmente similar a la descrita con respecto a la FIG. 1 para emitir la primera señal de salida 126 en el primer altavoz 142 y para emitir la segunda señal de salida 128 en el segundo altavoz 144.
[0284] El procedimiento 2700 también puede incluir generar una primera señal codificada basándose en un primer modo de codificación y generar una segunda señal codificada basándose en un segundo modo de codificación en respuesta a una diferencia entre el valor de desplazamiento y el segundo valor de desplazamiento que satisface un umbral. La al menos una señal codificada puede incluir la primera señal codificada y la segunda señal codificada. De acuerdo con una implementación, la primera señal codificada puede incluir una señal media de banda baja y la segunda señal codificada puede incluir una señal lateral de banda baja. El primer modo de codificación y el segundo modo de codificación pueden incluir un modo de codificación ACELP. De acuerdo con otra implementación, la primera señal codificada puede incluir una señal media de banda alta y la segunda señal codificada puede incluir una señal lateral de banda alta. El primer modo de codificación y el segundo modo de codificación pueden incluir un modo de codificación BWE.
[0285] De acuerdo con una implementación, el procedimiento 2700 también puede incluir generar una señal media de banda baja codificada basada en un modo de codificación ACELP y generar una señal lateral de banda baja codificada basada en un modo de codificación ACELP predictivo en respuesta a una diferencia entre el valor de desplazamiento y el segundo valor de desplazamiento no satisface un umbral. La al menos una señal codificada puede incluir la señal media de banda baja codificada y uno o más parámetros correspondientes a la señal lateral de banda baja codificada.
[0286] De acuerdo con otra implementación, el procedimiento 2700 también puede incluir generar una señal media de banda alta codificada basada en un modo de codificación BWE y generar una señal lateral de banda alta codificada basada en un modo de codificación BWE ciego en respuesta a una diferencia entre el valor de desplazamiento y el segundo valor de desplazamiento no satisface un umbral. La al menos una señal codificada puede incluir la señal media de banda alta codificada y uno o más parámetros correspondientes a la señal lateral de banda alta codificada.
[0287] De acuerdo con una implementación, en respuesta a una diferencia entre el valor de desplazamiento y el segundo valor de desplazamiento que satisface un primer umbral y no logra satisfacer un segundo umbral, el procedimiento 2700 puede incluir generar una señal media de banda baja codificada y una señal lateral de banda baja codificada basada en un modo de codificación ACELP. El procedimiento 2700 también puede incluir generar una señal de banda alta codificada basada en un modo de codificación BWE y generar una señal lateral de banda alta codificada basada en un modo de codificación BWE ciego. La al menos una señal codificada puede incluir la señal media de banda alta codificada, la señal media de banda baja codificada, la señal lateral de banda baja codificada y uno o más parámetros correspondientes a la señal lateral de banda alta codificada.
[0288] De acuerdo con una implementación, el procedimiento 2700 puede incluir determinar una asignación de bits basada en el segundo valor de desplazamiento y el valor de desplazamiento. La al menos una señal codificada se puede generar basándose en la asignación de bits. La al menos una señal codificada puede incluir una primera señal codificada y una segunda señal codificada. La asignación de bits puede indicar que se asigna un primer número de bits a la primera señal codificada y que se asigna un segundo número de bits a la segunda señal codificada. El procedimiento 2700 también puede incluir disminuir el primer número de bits y aumentar el segundo número de bits en respuesta a una diferencia entre el valor de desplazamiento y el segundo valor de desplazamiento que satisface un primer umbral.
[0289] Haciendo referencia a la FIG. 28, se muestra un diagrama de flujo de un procedimiento 2800 de comunicación. Se puede realizar el procedimiento 2800 mediante el primer dispositivo 104 de las FIGS. 1 y 19.
[0290] El procedimiento 2800 incluye determinar, en un dispositivo, un primer valor de desajuste indicativo de una primera cantidad de desajuste temporal entre una primera señal de audio y una segunda señal de audio, en 2802. Por ejemplo, refiriéndose a la FIG. 9, el codificador 114 (u otro procesador en el primer dispositivo 104) puede determinar el primer valor de desplazamiento 962, como se describe con referencia a la FIG. 9. Con respecto al procedimiento 2800, el primer valor de desplazamiento 962 también puede denominarse "primer valor de desajuste". El primer valor de desplazamiento 962 puede ser indicativo de una primera cantidad de desajuste temporal entre la primera señal de audio 130 y la segunda señal de audio 132, como se describe con referencia a la FIG. 9. El primer valor de desplazamiento 962 se puede asociar con una primera trama a codificar. Por ejemplo, la primera trama a codificar puede incluir muestras 322-324 de la trama 302 de la FIG. 3 y muestras particulares de la segunda señal de audio 132. Las muestras particulares pueden seleccionarse basándose en el primer valor de desplazamiento 962, como se describe con referencia a la FIG. 1.
[0291] El procedimiento 2800 también incluye determinar, en el dispositivo, un segundo valor de desajuste, con el segundo valor de desajuste indicativo de una segunda cantidad de desajuste temporal entre la primera señal de audio y la segunda señal de audio, en 2804. Por ejemplo, el codificador 114 (u otro procesador en el primer dispositivo 104) puede determinar el valor de desplazamiento tentativo 536, el valor de desplazamiento interpolado 538, el valor de desplazamiento modificado 540 o una combinación de los mismos, como se describe con referencia a la FIG. 5. Con respecto al procedimiento 2800, el valor de desplazamiento tentativo 536, el valor de desplazamiento interpolado 538 o el valor de desplazamiento modificado 540 también pueden denominarse "segundo valor de desajuste". Uno o más del valor de desplazamiento tentativo 536, el valor de desplazamiento interpolado 538 o el valor de desplazamiento modificado 540 pueden ser indicativos de una segunda cantidad de desajuste temporal entre la primera señal de audio 130 y la segunda señal de audio 132. El segundo valor de desajuste puede asociarse con una segunda trama a codificar. Por ejemplo, la segunda trama a codificar puede incluir las muestras 326-332 de la primera señal de audio 130 y las muestras 354-360 de la segunda señal de audio 132, como se describe con referencia a la FIG. 4. Como otro ejemplo, la segunda trama a codificar puede incluir las muestras 326-332 de la primera señal de audio 130 y las muestras 358-364 de la segunda señal de audio 132, como se describe con referencia a la FIG. 3.
[0292] La segunda trama a codificar puede ser posterior a la primera trama a codificar. Por ejemplo, al menos algunas muestras asociadas con la segunda trama a codificar pueden ser posteriores a al menos algunas muestras asociadas con la primera trama a codificar en las primeras muestras 320 de la primera señal de audio 130 o en las segundas muestras 350 de la segunda señal de audio 132. En un aspecto particular, las muestras 326-332 de la segunda trama a codificar pueden ser posteriores a las muestras 322-324 de la primera trama a codificar en las primeras muestras 320 de la primera señal de audio 130. Para ilustrar, cada una de las muestras 326-332 puede estar asociada con una marca de tiempo que indique un tiempo posterior al indicado por una marca de tiempo asociada con cualquiera de las muestras 322-324. En algunos aspectos, las muestras 354-360 (o las muestras 358-364) de la segunda trama a codificar pueden ser posteriores a las muestras particulares de la primera trama a codificar en las segundas muestras 350 de la segunda señal de audio 132.
[0293] El procedimiento 2800 incluye además determinar, en el dispositivo, un valor de desajuste efectivo basado en el primer valor de desajuste y el segundo valor de desajuste, en 2806. Por ejemplo, el codificador 114 (u otro procesador en el primer dispositivo 104) puede determinar el valor de desplazamiento modificado 540, el valor de desplazamiento final 116, o ambos, de acuerdo con las técnicas descritas con respecto a la FIG. 5. Con respecto al procedimiento 2800, el valor de desplazamiento modificado 540 o el valor de desplazamiento final 116 también puede denominarse "valor de desajuste efectivo". El codificador 114 puede identificar uno del primer valor de desplazamiento 962 o el segundo valor de desajuste como un primer valor. Por ejemplo, el codificador 114 puede, en respuesta a la determinación de que el primer valor de desplazamiento 962 es menor o igual que el valor de desplazamiento identificar el primer valor de desplazamiento 962 como el primer valor. El codificador 114 puede identificar el otro del primer valor de desplazamiento 962 o el segundo valor de desajuste como un segundo valor.
[0294] El codificador 114 (u otro procesador en el primer dispositivo 104) puede generar que el valor de desajuste efectivo sea mayor o igual al primer valor y menor o igual que el segundo valor. Por ejemplo, el codificador 114 puede generar el valor de desplazamiento final 116 para igualar un valor particular (por ejemplo, 0) que indica que no hay desplazamiento de tiempo en respuesta a la determinación de que el primer valor de desplazamiento 962 es mayor que 0 y el valor de desplazamiento modificado 540 es menor que 0 o que el primer valor de desplazamiento 962 es menor que 0 y el valor de desplazamiento modificado 540 es mayor que 0, como se describe con referencia a las FIGS. 10A y 10B. En este ejemplo, el valor de desplazamiento final 116 puede denominarse "valor de desajuste efectivo" y el valor de desplazamiento modificado 540 puede denominarse "segundo valor de desajuste".
[0295] Como otro ejemplo, el codificador 114 puede generar el valor de desplazamiento final 116 para igualar el valor de desplazamiento estimado 1072, como se describe con referencia a las FIGS. 10A y 11. El valor de desplazamiento estimado 1072 puede ser mayor o igual a una diferencia entre el valor de desplazamiento modificado 540 y una primera desviación y menor o igual a una suma del primer valor de desplazamiento 962 y el primer desplazamiento. De forma alternativa, el valor de desplazamiento estimado 1072 puede ser mayor o igual a una diferencia entre el primer valor de desplazamiento 962 y un segundo desplazamiento y menor o igual a una suma del valor de desplazamiento modificado 540 y el segundo desplazamiento, como se describe con referencia a la FIG. 11. En este ejemplo, el valor de desplazamiento final 116 puede denominarse "valor de desajuste efectivo" y el valor de desplazamiento modificado 540 puede denominarse "segundo valor de desajuste".
[0296] En un aspecto particular, el codificador 114 puede generar el valor de desplazamiento modificado 540 para que sea mayor o igual al valor de desplazamiento inferior 930 y menor o igual al valor de desplazamiento mayor 932, como se describe con referencia a la FIG. 9. El valor de deplazamiento menor 930 puede basarse en el menor del primer valor de desplazamiento 962 o el valor de desplazamiento interpolado 538. El valor de desplazamiento mayor 932 puede basarse en el otro del primer valor de desplazamiento 962 o el valor de desplazamiento interpolado 538. En este aspecto, el valor de desplazamiento interpolado 538 puede denominarse "segundo valor de desajuste" y el valor de desplazamiento modificado 540 o el valor de desplazamiento final 116 puede denominarse "valor de desajuste efectivo". Las muestras 358-364 (o las muestras 354-360) de las segundas muestras 350 pueden seleccionarse basándose al menos en parte en el valor de desajuste efectivo, como se describe con referencia a las FIGS. 1 y 3-5.
[0297] El procedimiento 2800 también incluye generar, basándose al menos parcialmente en la segunda trama a codificar, al menos una señal codificada que tiene una asignación de bits. Por ejemplo, el codificador 114 (u otro procesador en el primer dispositivo 104) puede generar las señales codificadas 102 basándose en la segunda trama a codificar, como se describe con referencia a la FIG. 1. Para ilustrar, el codificador 114 puede generar las señales codificadas 102 codificando las muestras 326-332 y las muestras 354-360, como se describe con referencia a las FIGS. 1 y 4. En un aspecto alternativo, el codificador 114 puede generar las señales codificadas 102 codificando las muestras 326-332 y las muestras 358-364, como se describe con referencia a las FIGS. 1 y 3.
[0298] Las señales codificadas 102 pueden tener una asignación de bits, como se describe con referencia a la FIG.
9. Por ejemplo, la asignación de bits puede indicar que el primer número de bits 1916 está asignado a una primera señal codificada (por ejemplo, una señal media), que el segundo número de bits 1918 está asignado a una segunda señal codificada (por ejemplo, una señal lateral), o ambos. El codificador 114 (u otro procesador en el primer dispositivo 104) puede generar la primera señal codificada (por ejemplo, la señal media) para tener una primera asignación de bits correspondiente al primer número de bits 1916, la segunda señal codificada (por ejemplo, la señal lateral) para tener una segunda asignación de bits correspondiente al segundo número de bits 1918, o ambas, como se describe con referencia a la FIG. 9.
[0299] El procedimiento 2800 incluye además enviar la al menos una señal codificada a un segundo dispositivo, en 2810. Por ejemplo, refiriéndose a la FIG. 19, el transmisor 110 puede transmitir las señales codificadas 102 al segundo dispositivo 106 a través de la red 120. Al recibir la señal codificada 102, el segundo dispositivo 106 puede funcionar de una manera sustancialmente similar a la descrita con respecto a la FIG. 1 para emitir la primera señal de salida 126 en el primer altavoz 142 y para emitir la segunda señal de salida 128 en el segundo altavoz 144.
[0300] El procedimiento 2800 también puede incluir generar una primera asignación de bits asociada con la primera trama a codificar, como se describe con referencia a la FIG. 19. La primera asignación de bits puede indicar que se asigna un segundo número de bits a una primera señal lateral codificada. La asignación de bits asociada con la segunda trama a codificar puede indicar que se asigna un número particular para codificar las señales codificadas 102. El número particular puede ser mayor, menor o igual que el segundo número. Por ejemplo, el codificador 114 puede generar una o más primeras señales codificadas que tienen una primera asignación de bits basada en el primer número de bits 1916, el segundo número de bits 1918, o ambos, como se describe con referencia a la FIG. 1. El codificador 114 puede generar las primeras señales codificadas codificando las muestras 322-324 y las muestras seleccionadas de las segundas muestras 350 como se describe con referencia a la FIG. 3. El codificador 114 puede actualizar el primer número de bits 1916, el segundo número de bits 1918, o ambos, como se describe con referencia a la FIG. 20. El codificador 114 puede generar las señales codificadas 102 que tienen la asignación de bits correspondiente al primer número actualizado de bits 1916, el segundo número actualizado de bits 1918, o ambos, como se describe con referencia a la FIG. 20.
[0301] El procedimiento 2800 puede incluir además la determinación de los valores de comparación 534 de la FIG. 5, los valores de comparación 915, los valores de comparación 916 de la FIG. 9, los valores de comparación 1140 de la FIG. 11, valores de comparación correspondientes al gráfico 1502, valores de comparación correspondientes al gráfico 1504, valores de comparación 1506 de la FIG. 15, o una combinación de los mismos. Por ejemplo, el codificador 114 puede determinar valores de comparación basándose en una comparación de las muestras 326-332 de la primera señal de audio 130 con múltiples conjuntos de muestras de la segunda señal de audio 132, como se describe con referencia a las FIGS. 3-4. Cada conjunto de múltiples conjuntos de muestras puede corresponder a un valor de desajuste particular de un rango de búsqueda particular. Por ejemplo, el rango de búsqueda particular puede ser mayor o igual al valor de desplazamiento inferior 930 y menor o igual al valor de desplazamiento mayor 932, como se describe con referencia a la FIG. 9. Como otro ejemplo, el rango de búsqueda particular puede ser mayor o igual al primer valor de desplazamiento 1130 y menor o igual al segundo valor de desplazamiento 1132, como se describe con referencia a la FIG. 9. El valor de comparación interpolado 838, el valor de desplazamiento modificado 540, el valor de desplazamiento final 116, o una combinación de los mismos, pueden basarse en valores de comparación, como se describe con referencia a las FIGS. 8, 9A, 9B, 10A y 11.
[0302] El procedimiento 2800 también puede incluir determinar valores de comparación de límite de los valores de comparación, como se describe con referencia a la FIG. 17. Por ejemplo, el codificador 114 puede determinar valores de comparación en el límite derecho (por ejemplo, 20 muestras de desplazamiento/desajuste), valores de comparación en el límite izquierdo (-20 muestras de desplazamiento/desajuste), o ambos, como se describe con referencia a la FIG.
18. Los valores de comparación de límite pueden corresponder a valores de desajuste que están dentro de un umbral (por ejemplo, 10 muestras) de un valor de desajuste de límites (por ejemplo, -20 o 20) del rango de búsqueda particular. El codificador 114 puede identificar la segunda trama a codificar como indicativo de una tendencia monótona en respuesta a la determinación de que los valores de comparación de límite aumentan o disminuyen monótonamente, como se describe con referencia a la FIG. 17.
[0303] El codificador 114 puede determinar que un número particular de tramas a codificar (por ejemplo, tres tramas) que son anteriores a la segunda trama a codificar se identifican como indicativos de una tendencia monótona, como se describe con referencia a las FIGS. 17-18. El codificador 114 puede, en respuesta a la determinación de que el número particular es mayor que un umbral, determinar un rango de búsqueda particular (por ejemplo, -23 a 23) correspondiente a la segunda trama a codificar, como se describe con referencia a las FIGS. 17-18. El rango de búsqueda particular incluye un segundo valor de desajuste de límites (por ejemplo, -23) que está más allá de un primer valor de desajuste de límites (por ejemplo, -20) de un primer rango de búsqueda (por ejemplo, de -20 a 20) correspondiente a la primera trama que se va a codificar. El codificador 114 puede generar valores de comparación basados en el rango de búsqueda particular, como se describe con referencia a la FIG. 18. El segundo valor de desajuste puede basarse en los valores de comparación.
[0304] El procedimiento 2800 puede incluir además la determinación de un modo de codificación basado al menos en parte en el valor de desajuste efectivo. Por ejemplo, el codificador 114 puede determinar el primer modo de codificación LB 1913, el segundo modo de codificación LB 1915, el primer modo de codificación HB 1912, el segundo modo de codificación HB 1914, o una combinación de los mismos, como se describe con referencia a la FIG. 19. Las señales codificadas 102 pueden basarse en el primer modo de codificación LB 1913, el segundo modo de codificación LB 1915, el primer modo de codificación HB 1912, el segundo modo de codificación HB 1914, o una combinación de los mismos, como se describe con referencia a la FIG. 19. De acuerdo con una implementación particular, el codificador 114 puede generar una señal media HB codificada basada en el primer modo de codificación HB 1912, una señal lateral HB codificada basada en el segundo modo de codificación HB 1914, una señal media LB codificada basada en el primer modo de codificación LB 1913, una señal lateral LB codificada basada en el segundo modo de codificación LB 1915, o una combinación de los mismos, como se describe con referencia a la FIG. 19.
[0305] De acuerdo con algunas implementaciones, el primer modo de codificación HB 1912 puede incluir un modo de codificación BWE, y el segundo modo de codificación HB 1914 puede incluir un modo de codificación BWE ciego, como se describe con referencia a la FIG. 21. Las señales codificadas 102 pueden incluir la señal media HB codificada y uno o más parámetros correspondientes a la señal lateral HB codificada.
[0306] De acuerdo con algunas implementaciones, el primer modo de codificación HB 1912 puede incluir un modo de codificación BWE, y el segundo modo de codificación HB 1914 puede incluir un modo de codificación BWE, como se describe con referencia a la FIG. 21. Las señales codificadas 102 pueden incluir la señal media HB codificada y uno o más parámetros correspondientes a la señal lateral HB codificada.
[0307] De acuerdo con algunas implementaciones, el primer modo de codificación LB 1913 puede incluir un modo de codificación ACELP, el segundo modo de codificación LB 1915 puede incluir un modo de codificación ACELP, el primer modo de codificación HB 1912 puede incluir un modo de codificación BWE, el segundo modo de codificación HB 1914 puede incluir un modo de codificación BWE ciego, o una combinación de los mismos, como se describe con referencia a la FIG. 21. Las señales codificadas 102 pueden incluir la señal media HB codificada, la señal media LB codificada, la señal lateral LB codificada y uno o más parámetros correspondientes a la señal latera1HB codificada.
[0308] De acuerdo con algunas implementaciones, el primer modo de codificación LB 1913 puede incluir un modo de codificación ACELP, el segundo modo de codificación LB 1915 puede incluir un modo de codificación ACELP predictivo, o ambos, como se describe con referencia a la FIG. 21. Las señales codificadas 102 pueden incluir la señal media LB codificada y uno o más parámetros correspondientes a la señal lateral LB codificada.
[0309] Con referencia a la FIG. 29, se representa un diagrama de bloques de un ejemplo ilustrativo particular de un dispositivo (por ejemplo, un dispositivo de comunicación inalámbrica) y en general se designa con 2900. En diversos ejemplos, el dispositivo 2900 puede tener menos o más componentes de los ilustrados en la FIG. 29. En una implementación ilustrativa, el dispositivo 2900 puede corresponder al primer dispositivo 104 o al segundo dispositivo 106 de la FIG. 1. En una implementación ilustrativa, el dispositivo 2900 puede realizar una o más operaciones descritas con referencia a sistemas y procedimientos de las FIGS. 1-28.
[0310] En una implementación particular, el dispositivo 2900 incluye un procesador 2906 (por ejemplo, una unidad de procesamiento central (CPU)). El dispositivo 2900 puede incluir uno o más procesadores 2910 adicionales (por ejemplo, uno o más procesadores de señales digitales (DSP)). El procesador 2910 puede incluir un codificadordescodificador (por ejemplo, voz y música) de medios (CÓDEC) 2908 y un cancelador de eco 2912. El CÓDEC de medios 2908 puede incluir el descodificador 118, el codificador 114, o ambos, de la FIG. 1. El codificador 114 puede incluir el ecualizador temporal 108, el asignador de bits 1908 y el selector de modo de codificación 1910.
[0311] El dispositivo 2900 puede incluir una memoria 153 y un CÓDEC 2934. Aunque el CÓDEC de medios 2908 se ilustra como un componente de los procesadores 2910 (por ejemplo, circuitos dedicados y/o código de programación ejecutable), en otras implementaciones, uno o más componentes del CÓDEC de medios 2908, tal como el descodificador 118, el codificador 114, o ambos, se pueden incluir en el procesador 2906, el CÓDEC 2934, otro componente de procesamiento, o una combinación de los mismos.
[0312] El dispositivo 2900 puede incluir el transmisor 110 acoplado a una antena 2942. El dispositivo 2900 puede incluir una pantalla 2928 acoplada a un controlador de pantalla 2926. Uno o más altavoces 2948 pueden estar acoplados al CÓDEC 2934. Se pueden acoplar uno o más micrófonos 2946, a través de la interfaz o interfaces de entrada 112, al CÓDEC 2934. En una implementación particular, los altavoces 2948 pueden incluir el primer altavoz 142, el segundo altavoz 144 de la FIG. 1, el Y-ésimo altavoz 244 de la FIG. 2, o una combinación de los mismos. En una implementación particular, los micrófonos 2946 pueden incluir el primer micrófono 146, el segundo micrófono 148 de la FIG. 1, el N-ésimo micrófono 248 de la FIG. 2, el tercer micrófono 1146, el cuarto micrófono 1148 de la FIG. 11, o una combinación de los mismos. El CÓDEC 2934 puede incluir un convertidor digital-analógico (DAC) 2902 y un convertidor analógico-digital (ADC) 2904.
[0313] La memoria 153 puede incluir instrucciones 2960 ejecutables por el procesador 2906, los procesadores 2910, el CÓDEC 2934, otra unidad de procesamiento del dispositivo 2900, o una combinación de los mismos, para realizar una o más operaciones descritas con referencia a las FIGS. 1-28. La memoria 153 puede almacenar los datos de análisis 190.
[0314] Uno o más componentes del dispositivo 2900 pueden implementarse a través de hardware dedicado (por ejemplo, circuitería), mediante un procesador que ejecuta instrucciones para realizar una o más tareas, o una combinación de las mismas. Como un ejemplo, la memoria 153 o uno o más componentes del procesador 2906, los procesadores 2910 y/o el CÓDEC 2934 puede(n) ser un dispositivo de memoria, tal como una memoria de acceso aleatorio (RAM), una memoria de acceso aleatorio magnetorresistiva (MRAM), una MRAM de transferencia de par de giro (STT-MRAM), una memoria flash, una memoria de solo lectura (ROM), una memoria de solo lectura programable (PROM), una memoria de solo lectura programable y borrable (EPROM), una memoria de solo lectura programable y borrable eléctricamente (EEPROM), registros, un disco duro, un disco extraíble o una memoria de solo lectura de disco compacto (CD-ROM). El dispositivo de memoria puede incluir instrucciones (por ejemplo, las instrucciones 2960) que, cuando se ejecutan mediante un ordenador (por ejemplo, un procesador en el CÓDEC 2934, el procesador 2906 y/o los procesadores 2910), pueden hacer que el ordenador realice una o más operaciones descritas con referencia a las FIGS. 1 -28. Como un ejemplo, la memoria 153 o los uno o más componentes del procesador 2906, los procesadores 2910, y/o el CÓDEC 2934 pueden ser un medio legible por ordenador no transitorio que incluye instrucciones (por ejemplo, las instrucciones 2960) que, cuando se ejecutan mediante un ordenador (por ejemplo, un procesador en el CÓDEC 2934, el procesador 2906 y/o los procesadores 2910), hacen que el ordenador realice una o más operaciones descritas con referencia a las FIGS. 1-28.
[0315] En una implementación particular, el dispositivo 2900 puede estar incluido en un dispositivo de sistema en paquete o de sistema en chip (por ejemplo, un módem de estación móvil (MSM)) 2922. En una implementación particular, el procesador 2906, los procesadores 2910, el controlador de visualización 2926, la memoria 153, el CÓDEC 2934 y el transmisor 110 se incluyen en un dispositivo de sistema en paquete o sistema en chip 2922. En una implementación particular, un dispositivo de entrada 2930, tal como una pantalla táctil y/o un teclado, y una fuente de alimentación 2944, están acoplados al dispositivo de sistema en chip 2922. Además, en una implementación particular, como se ilustra en la FIG. 29, la pantalla 2928, el dispositivo de entrada 2930, los altavoces 2948, los micrófonos 2946, la antena 2942 y la fuente de alimentación 2944 son externos con respecto al dispositivo de sistema en chip 2922. Sin embargo, cada uno de la pantalla 2928, el dispositivo de entrada 2930, los altavoces 2948, los micrófonos 2946, la antena 2942 y la fuente de alimentación 2944 se pueden acoplar a un componente del dispositivo de sistema en chip 2922, tal como una interfaz o un controlador.
[0316] El dispositivo 2900 puede incluir un teléfono inalámbrico, un dispositivo de comunicación móvil, un teléfono móvil, un teléfono inteligente, un teléfono celular, un ordenador portátil, un ordenador de escritorio, un ordenador, una tablet, un descodificador, un asistente digital personal (PDA), un dispositivo de visualización, un televisor, una consola de juegos, un reproductor de música, una radio, un reproductor de vídeo, una unidad de entretenimiento, un dispositivo de comunicación, una unidad de datos de ubicación fija, un reproductor multimedia personal, un reproductor de vídeo digital, un reproductor de disco de vídeo digital (DVD), un sintonizador, una cámara, un dispositivo de navegación, un sistema descodificador, un sistema codificador, una estación base, un vehículo o cualquier combinación de los mismos.
[0317] En una implementación particular, uno o más componentes de los sistemas descritos en el presente documento y en el dispositivo 2900 pueden integrarse en un sistema o aparato de descodificación (por ejemplo, un dispositivo electrónico, un CÓDEC o un procesador en el mismo), en un sistema o aparato de codificación, o en ambos. En otras implementaciones, uno o más componentes de los sistemas descritos en el presente documento y el dispositivo 2900 pueden integrarse en un dispositivo de comunicaciones inalámbricas (por ejemplo, un teléfono inalámbrico), una tablet, un ordenador de escritorio, un ordenador portátil, un descodificador, un reproductor de música, un reproductor de vídeo, una unidad de entretenimiento, un televisor, una consola de juegos, un dispositivo de navegación, un dispositivo de comunicación, un asistente digital personal (PDA), una unidad de datos de ubicación fija, un reproductor multimedia personal, una estación base, un vehículo u otro tipo de dispositivo.
[0318] Debe observarse que diversas funciones realizadas por el uno o más componentes de los sistemas descritos en el presente documento y el dispositivo 2900 se describen como realizados por determinados componentes o módulos. Esta división de componentes y módulos tiene solo fines ilustrativos. En una implementación alternativa, una función realizada mediante un componente o módulo particular puede dividirse entre múltiples componentes o módulos. Además, en una implementación alternativa, dos o más componentes o módulos de los sistemas descritos en el presente documento pueden integrarse en un único componente o módulo. Cada componente o módulo ilustrado en los sistemas descritos en el presente documento se puede implementar usando hardware (por ejemplo, un dispositivo de matriz de puertas programables por campo (FPGA), un circuito integrado específico de la aplicación (ASIC), un DSP, un controlador, etc.), software (por ejemplo, instrucciones ejecutables por un procesador), o una combinación de los mismos.
[0319] Junto con las implementaciones descritas, un aparato incluye medios para determinar una asignación de bits basándose en un valor de desplazamiento y un segundo valor de desplazamiento. El valor de desplazamiento puede ser indicativo de un desplazamiento de una primera señal de audio con respecto a una segunda señal de audio, y el segundo valor de desplazamiento puede basarse en el valor de desplazamiento. Por ejemplo, entre los medios para determinar la asignación de bits puede incluirse el asignador de bits 1908 de la FIG. 19, uno o más dispositivos/circuitos configurados para determinar la asignación de bits (por ejemplo, un procesador que ejecuta instrucciones que se almacenan en un dispositivo de almacenamiento legible por ordenador), o una combinación de los mismos.
[0320] El aparato también puede incluir medios para transmitir al menos una señal codificada que se genera basándose en la asignación de bits. La al menos una señal codificada puede basarse en las primeras muestras de la primera señal de audio y las segundas muestras de la segunda señal de audio, y las segundas muestras pueden estar desplazadas en el tiempo en relación con las primeras muestras una cantidad que se basa en el valor de desplazamiento final. Por ejemplo, entre los medios para transmitir se puede incluir el transmisor 110 de las FIGS. 1 y 19.
[0321] También en conjunción con las implementaciones descritas, un aparato incluye medios para determinar un primer valor de desajuste indicativo de una primera cantidad de desajuste temporal entre una primera señal de audio y una segunda señal de audio. El primer valor de desajuste está asociado con una primera trama que se codificará. Por ejemplo, entre los medios para determinar el primer valor de desajuste se puede incluir el codificador 114, el ecualizador temporal 108 de la FIG. 1, el (los) ecualizador (es) temporal (s) 208 de la FIG. 2, el comparador de señal 506, el interpolador 510, el refinador de desplazamiento 511, el analizador de desplazamiento de desplazamiento 512, el generador de desplazamiento absoluto 513 de la FIG. 5, los procesadores 2910, el CODEC 2934, el procesador 2906, uno o más dispositivos/circuitos configurados para determinar el primer valor de desajuste (por ejemplo, un procesador que ejecuta instrucciones que se almacenan en un dispositivo de almacenamiento legible por ordenador), o una combinación de los mismos .
[0322] El aparato también incluye medios para determinar un segundo valor de desajuste indicativo de una segunda cantidad de desajuste temporal entre la primera señal de audio y la segunda señal de audio. El segundo valor de desajuste está asociado con una segunda trama a codificar. La segunda trama a codificar es posterior a la primera trama a codificar. Por ejemplo, entre los medios para determinar el segundo valor de desajuste puede incluirse el codificador 114, el ecualizador temporal 108 de la FIG. 1, el (los) ecualizador (es) temporal (s) 208 de la FIG. 2, el comparador de señal 506, el interpolador 510, el refinador de desplazamiento 511, el analizador de desplazamiento de desplazamiento 512, el generador de desplazamiento absoluto 513 de la FIG. 5, los procesadores 2910, el CODEC 2934, el procesador 2906, uno o más dispositivos/circuitos configurados para determinar el segundo valor de desajuste (por ejemplo, un procesador que ejecuta instrucciones que están almacenadas en un dispositivo de almacenamiento legible por ordenador), o una combinación de los mismos.
[0323] El aparato incluye además medios para determinar un valor de desajuste efectivo basado en el primer valor de desajuste y el segundo valor de desajuste. La segunda trama a codificar incluye primeras muestras de la primera señal de audio y segundas muestras de la segunda señal de audio. Las segundas muestras se seleccionan basándose al menos en parte en el valor de desajuste efectivo. Por ejemplo, entre los medios para determinar el valor de desajuste efectivo puede incluirse el codificador 114, el ecualizador temporal 108 de la FIG. 1, el (los) ecualizador(es) temporal(es) 208 de la FIG. 2, el comparador de señal 506, el interpolador 510, el refinador de desplazamiento 511, el analizador de desplazamiento de desplazamiento 512, los procesadores 2910, el CÓDEC 2934, el procesador 2906, uno o más dispositivos/circuitos configurados para determinar el valor de desajuste efectivo (por ejemplo, un procesador que ejecuta instrucciones que se almacenan en un dispositivo de almacenamiento legible por ordenador), o una combinación de los mismos.
[0324] El aparato también incluye medios para transmitir al menos una señal codificada que tiene una asignación de bits que se basa al menos parcialmente en el valor de desajuste efectivo. La al menos una señal codificada se genera basándose al menos parcialmente en la segunda trama a codificar. Por ejemplo, entre los medios para transmitir se puede incluir el transmisor 110 de las FIGS. 1 y 19.
[0325] Los expertos en la técnica apreciarán además que los diversos bloques lógicos, configuraciones, módulos, circuitos y pasos de algoritmo ilustrativos descritos en relación con las implementaciones divulgadas en el presente documento 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. Se han descrito anteriormente diversos componentes, bloques, configuraciones, módulos, circuitos y pasos ilustrativos, en general en términos de su funcionalidad. Que dicha funcionalidad se implemente como hardware o software ejecutable depende de la aplicación en particular y de las restricciones de diseño impuestas al sistema global. Los expertos en la técnica pueden implementar la funcionalidad descrita de formas variadas para cada aplicación particular, pero no se debe interpretar que dichas decisiones de implementación suponen apartarse del alcance de la presente divulgación.
[0326] Los pasos de un procedimiento o algoritmo descritos en relación con las implementaciones divulgadas en el presente documento pueden realizarse directamente en 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, tal como una memoria de acceso aleatorio (RAM), una memoria de acceso aleatorio magnetorresistiva (MRAM), una MRAM de transferencia de par de espín (STT-MRAM), una memoria flash, una memoria de solo lectura (ROM), una memoria de solo lectura programable (PROM), una memoria de solo lectura programable y borrable (EPROM), una memoria de solo lectura programable y borrable eléctricamente (EEPROM), unos registros, un disco duro, un disco extraíble o una memoria de solo lectura de disco compacto (CD-ROM). Un dispositivo de memoria a modo de ejemplo está acoplado al procesador de modo que el procesador puede leer información de, y escribir información en, el dispositivo de memoria. De forma alternativa, el dispositivo de memoria puede estar integrado en el procesador. El procesador y el medio de almacenamiento pueden residir en un circuito integrado específico de la aplicación (ASIC).
El ASIC puede residir en un dispositivo informático o en un terminal de usuario. De forma alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en un dispositivo informático o en un terminal de usuario.
[0327] La descripción anterior de las implementaciones divulgadas se proporciona para permitir que un experto en la técnica elabore o use las implementaciones divulgadas. Diversas modificaciones de estas implementaciones resultarán fácilmente evidentes para los expertos en la técnica, y los principios definidos en el presente documento se pueden aplicar a otras implementaciones sin apartarse del alcance de la divulgación. Por tanto, la presente divulgación no está prevista para limitarse a las implementaciones mostradas en el presente documento, sino que se le ha de conceder el alcance más amplio posible compatible con los principios y los rasgos característicos novedosos como se define en las reivindicaciones siguientes.

Claims (13)

REIVINDICACIONES
1. Un dispositivo para comunicación, comprendiendo el dispositivo:
un procesador configurado para:
determinar (2802) un primer valor de desajuste (962) indicativo de una primera cantidad de desajuste temporal entre una primera señal de audio (130) y una segunda señal de audio (132), con el primer valor de desajuste asociado con una primera trama a codificar;
determinar (2804) un segundo valor de desajuste (116) indicativo de una segunda cantidad de desajuste temporal entre la primera señal de audio y la segunda señal de audio,
con el segundo valor de desajuste asociado con una segunda trama a codificar, en el que
la segunda trama a codificar es posterior a la primera trama a codificar;
determinar (2806) un valor de desajuste efectivo (540) basado en el primer valor de desajuste y el segundo valor de desajuste, en el que la segunda trama a codificar incluye primeras muestras de la primera señal de audio y segundas muestras de la segunda señal de audio, y en el que las segundas muestras se seleccionan basándose al menos en parte en el valor de desajuste efectivo;
determinar un valor de variación (2057) basado en el segundo valor de desajuste y el valor de desajuste efectivo, siendo el valor de variación una diferencia de valor entre el segundo valor de desajuste y el valor de desajuste efectivo;
en respuesta a la determinación de que el valor de variación (2057) es mayor que un primer umbral (1902), generar una asignación de bits para indicar un primer número de bits para asignación a una señal media codificada y un segundo número de bits para asignación a una señal lateral codificada;
en respuesta a determinar que el valor de variación (2057) es menor o igual que el primer umbral (1902) y menor que un segundo umbral (1904), generar la asignación de bits para indicar un tercer número de bits para la asignación a una señal media codificada y un cuarto número de bits para su asignación a una señal lateral codificada, en el que el tercer número de bits es mayor que el primer número de bits, y en el que el cuarto número de bits es menor que el segundo número de bits; y
generar (2808), basándose al menos parcialmente en la segunda trama a codificar y en la asignación de bits generada, al menos una señal codificada (102) que incluye una señal media codificada y una señal lateral codificada;
en el que el dispositivo comprende además un transmisor configurado para transmitir (2810) la al menos una señal codificada a un segundo dispositivo.
2. El dispositivo según la reivindicación 1, en el que el valor de desajuste efectivo es mayor o igual a un primer valor y menor o igual a un segundo valor, en el que el primer valor es igual a uno del primer valor de desajuste o el segundo valor de desajuste, en el que el segundo valor es igual al otro del primer valor de desajuste o al segundo valor de desajuste.
3. El dispositivo según la reivindicación 1, en el que el procesador está configurado además para determinar el valor de desajuste efectivo basándose en una diferencia de valor entre el primer valor de desajuste y el segundo valor de desajuste.
4. El dispositivo según la reivindicación 1, en el que el procesador está configurado además para:
generar una señal media basada en una suma de las primeras muestras de la primera señal de audio y las segundas muestras de la segunda señal de audio;
generar una señal lateral basada en una diferencia entre las primeras muestras de la primera señal de audio y las segundas muestras de la segunda señal de audio;
generar la señal media codificada codificando la señal media basándose en la asignación de bits; y generar la señal lateral codificada codificando la señal lateral basándose en la asignación de bits.
5. El dispositivo según la reivindicación 1, que comprende además una antena acoplada al transmisor, en el que el transmisor está configurado para transmitir la al menos una señal codificada a través de la antena.
6. El dispositivo según reivindicación 1, en el que el procesador y el transmisor están integrados en un dispositivo de comunicación móvil.
7. El dispositivo según la reivindicación 1, en el que el procesador y el transmisor están integrados en una estación base.
8. Un procedimiento de comunicación, que comprende:
determinar (2802), en un dispositivo, un primer valor de desajuste indicativo de una primera cantidad de desajuste temporal entre una primera señal de audio y una segunda señal de audio, con el primer valor de desajuste asociado con una primera trama a codificar;
determinar (2804), en el dispositivo, un segundo valor de desajuste, con el segundo valor de desajuste indicativo de una segunda cantidad de desajuste temporal entre la primera señal de audio y la segunda señal de audio, con el segundo valor de desajuste asociado con una segunda trama a codificar, en el que la segunda trama a codificar es posterior a la primera trama a codificar;
determinar (2806), en el dispositivo, un valor de desajuste efectivo basado en el primer valor de desajuste y el segundo valor de desajuste, en el que la segunda trama a codificar incluye primeras muestras de la primera señal de audio y segundas muestras de la segunda señal de audio, y en el que las segundas muestras se seleccionan basándose al menos en parte en el valor de desajuste efectivo;
determinar un valor de variación basado en el segundo valor de desajuste y el valor de desajuste efectivo, siendo el valor de variación una diferencia de valor entre el segundo valor de desajuste y el valor de desajuste efectivo;
en respuesta a determinar que el valor de variación es mayor que un primer umbral, generar una asignación de bits para indicar un primer número de bits para asignación a una señal media codificada y un segundo número de bits para asignación a una señal lateral codificada;
en respuesta a determinar que el valor de variación es menor o igual que el primer umbral y menor que un segundo umbral, generar la asignación de bits para indicar un tercer número de bits para asignación a una señal media codificada y un cuarto número de bits para asignación a una señal lateral codificada, donde el tercer número de bits es mayor que el primer número de bits, y en el que el cuarto número de bits es menor que el segundo número de bits;
generar (2808), basándose al menos parcialmente en la segunda trama a codificar y en la asignación de bits generada, al menos una señal codificada que incluye una señal media codificada y una señal lateral codificada; y
enviar (2810) la al menos una señal codificada a un segundo dispositivo.
9. El procedimiento según la reivindicación 8, que comprende determinar el valor de desajuste efectivo basado en una diferencia de valor entre el primer valor de desajuste y el segundo valor de desajuste.
10. El procedimiento según la reivindicación 8, en el que el dispositivo comprende un dispositivo de comunicación móvil.
11. El procedimiento según la reivindicación 8, en el que el dispositivo comprende una estación base.
12. El procedimiento según la reivindicación 8, que comprende además:
generar, basándose al menos en parte en el valor de desajuste efectivo, una señal media de banda alta codificada basada en un modo de codificación de extensión de ancho de banda, BWE; y
generar, basándose al menos en parte en el valor de desajuste efectivo, una señal lateral de banda alta codificada basada en un modo de codificación BWE ciego,
en el que la al menos una señal codificada incluye la señal media de banda alta codificada y uno o más parámetros correspondientes a la señal lateral de banda alta codificada.
13. Un dispositivo de almacenamiento legible por ordenador que almacena instrucciones que, cuando se ejecutan mediante un procesador, hacen que el procesador realice el procedimiento de cualquiera de las reivindicaciones
ES17714985T 2016-03-18 2017-03-17 Procesamiento de audio para señales desajustadas temporalmente Active ES2837478T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662310611P 2016-03-18 2016-03-18
US15/461,356 US10210871B2 (en) 2016-03-18 2017-03-16 Audio processing for temporally mismatched signals
PCT/US2017/023026 WO2017161309A1 (en) 2016-03-18 2017-03-17 Audio processing for temporally mismatched signals

Publications (1)

Publication Number Publication Date
ES2837478T3 true ES2837478T3 (es) 2021-06-30

Family

ID=59847109

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17714985T Active ES2837478T3 (es) 2016-03-18 2017-03-17 Procesamiento de audio para señales desajustadas temporalmente

Country Status (10)

Country Link
US (2) US10210871B2 (es)
EP (2) EP3430621B1 (es)
JP (1) JP6978425B2 (es)
KR (2) KR102461411B1 (es)
CN (2) CN116721667A (es)
BR (1) BR112018068608A2 (es)
CA (1) CA3014675A1 (es)
ES (1) ES2837478T3 (es)
TW (1) TWI743097B (es)
WO (1) WO2017161309A1 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI564884B (zh) 2013-06-21 2017-01-01 弗勞恩霍夫爾協會 用以改良在錯誤消除期間於不同域之信號衰減之裝置及方法、以及相關電腦程式
US10210871B2 (en) * 2016-03-18 2019-02-19 Qualcomm Incorporated Audio processing for temporally mismatched signals
CN108269577B (zh) 2016-12-30 2019-10-22 华为技术有限公司 立体声编码方法及立体声编码器
US10304468B2 (en) * 2017-03-20 2019-05-28 Qualcomm Incorporated Target sample generation
CN109859766B (zh) * 2017-11-30 2021-08-20 华为技术有限公司 音频编解码方法和相关产品
CN108428457B (zh) * 2018-02-12 2021-03-23 北京百度网讯科技有限公司 音频去重方法及装置
US10932122B1 (en) * 2019-06-07 2021-02-23 Sprint Communications Company L.P. User equipment beam effectiveness
CN113870881B (zh) * 2021-09-26 2024-04-26 西南石油大学 一种鲁棒哈默斯坦子带样条自适应回声消除方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7508947B2 (en) * 2004-08-03 2009-03-24 Dolby Laboratories Licensing Corporation Method for combining audio signals using auditory scene analysis
US7573912B2 (en) * 2005-02-22 2009-08-11 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschunng E.V. Near-transparent or transparent multi-channel encoder/decoder scheme
US8112286B2 (en) * 2005-10-31 2012-02-07 Panasonic Corporation Stereo encoding device, and stereo signal predicting method
US20080294446A1 (en) * 2007-05-22 2008-11-27 Linfeng Guo Layer based scalable multimedia datastream compression
US9653088B2 (en) * 2007-06-13 2017-05-16 Qualcomm Incorporated Systems, methods, and apparatus for signal encoding using pitch-regularizing and non-pitch-regularizing coding
JP5269914B2 (ja) * 2009-01-22 2013-08-21 パナソニック株式会社 ステレオ音響信号符号化装置、ステレオ音響信号復号装置およびそれらの方法
KR101367604B1 (ko) * 2009-03-17 2014-02-26 돌비 인터네셔널 에이비 적응형으로 선택가능한 좌/우 또는 미드/사이드 스테레오 코딩과 파라메트릭 스테레오 코딩의 조합에 기초한 진보된 스테레오 코딩
CN102222505B (zh) * 2010-04-13 2012-12-19 中兴通讯股份有限公司 可分层音频编解码方法系统及瞬态信号可分层编解码方法
KR101998609B1 (ko) * 2010-10-25 2019-07-10 보이세지 코포레이션 혼합형 시간-영역/주파수-영역 코딩 장치, 인코더, 디코더, 혼합형 시간-영역/주파수-영역 코딩 방법, 인코딩 방법 및 디코딩 방법
CN104641414A (zh) * 2012-07-19 2015-05-20 诺基亚公司 立体声音频信号编码器
US9601125B2 (en) * 2013-02-08 2017-03-21 Qualcomm Incorporated Systems and methods of performing noise modulation and gain adjustment
ES2665599T3 (es) * 2013-04-05 2018-04-26 Dolby International Ab Codificador y descodificador de audio
KR102251833B1 (ko) * 2013-12-16 2021-05-13 삼성전자주식회사 오디오 신호의 부호화, 복호화 방법 및 장치
US10074373B2 (en) 2015-12-21 2018-09-11 Qualcomm Incorporated Channel adjustment for inter-frame temporal shift variations
US10210871B2 (en) * 2016-03-18 2019-02-19 Qualcomm Incorporated Audio processing for temporally mismatched signals

Also Published As

Publication number Publication date
EP3739579B1 (en) 2023-12-06
US20170270934A1 (en) 2017-09-21
WO2017161309A1 (en) 2017-09-21
CN108780648A (zh) 2018-11-09
KR102557066B1 (ko) 2023-07-18
KR102461411B1 (ko) 2022-10-31
TW201737243A (zh) 2017-10-16
BR112018068608A2 (pt) 2019-02-05
KR20220150996A (ko) 2022-11-11
JP6978425B2 (ja) 2021-12-08
EP3739579C0 (en) 2023-12-06
CN116721667A (zh) 2023-09-08
TWI743097B (zh) 2021-10-21
US10204629B2 (en) 2019-02-12
EP3430621B1 (en) 2020-09-16
US20180336907A1 (en) 2018-11-22
EP3430621A1 (en) 2019-01-23
CN108780648B (zh) 2023-07-14
EP3739579A1 (en) 2020-11-18
CA3014675A1 (en) 2017-09-21
US10210871B2 (en) 2019-02-19
KR20180125963A (ko) 2018-11-26
JP2019512735A (ja) 2019-05-16

Similar Documents

Publication Publication Date Title
ES2837478T3 (es) Procesamiento de audio para señales desajustadas temporalmente
US10714100B2 (en) Audio signal decoding
TWI664624B (zh) 編碼多重音訊信號之器件,通信之方法及裝置及電腦可讀儲存器件
RU2762302C1 (ru) Устройство, способ или компьютерная программа для оценки разности во времени между каналами
US10714101B2 (en) Target sample generation
EP3391369B1 (en) Encoding of multiple audio signals
KR20180125475A (ko) 멀티 채널 코딩
WO2017202680A1 (en) Method and apparatus for voice or sound activity detection for spatial audio