ES3054792T3 - Processor for generating a prediction spectrum based on long-term prediction - Google Patents
Processor for generating a prediction spectrum based on long-term predictionInfo
- Publication number
- ES3054792T3 ES3054792T3 ES22751694T ES22751694T ES3054792T3 ES 3054792 T3 ES3054792 T3 ES 3054792T3 ES 22751694 T ES22751694 T ES 22751694T ES 22751694 T ES22751694 T ES 22751694T ES 3054792 T3 ES3054792 T3 ES 3054792T3
- Authority
- ES
- Spain
- Prior art keywords
- sub
- pitch
- spectrum
- audio signal
- encoded
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/09—Long term prediction, i.e. removing periodical redundancies, e.g. by using adaptive codebook or pitch predictor
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/03—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
- G10L25/18—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being spectral information of each sub-band
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Un procesador para procesar una señal de audio (codificada), comprendiendo el procesador: un búfer LTP configurado para recibir muestras derivadas de un fotograma de la señal de audio codificada; un divisor de intervalo configurado para dividir un intervalo de tiempo asociado con un fotograma posterior de la señal de audio codificada en subintervalos dependiendo del parámetro de tono codificado; medios de cálculo configurados para derivar parámetros de subintervalo a partir del parámetro de tono codificado dependiendo de una posición de los subintervalos dentro del intervalo de tiempo asociado con el fotograma posterior de la señal de audio codificada; un predictor configurado para generar una señal de predicción a partir del búfer LTP dependiendo de los parámetros de subintervalo; y un transformador de dominio de frecuencia configurado para generar un espectro de predicción (XP) basado en la señal de predicción; y/o comprendiendo el procesador: un divisor configurado para dividir un intervalo de tiempo asociado con un fotograma de la señal de audio en una pluralidad de subintervalos, cada uno con una longitud respectiva, siendo la longitud respectiva de la pluralidad de subintervalos dependiente de un valor de desfase de tono; un postfiltro armónico configurado para filtrar la pluralidad de subintervalos, en donde el postfiltro armónico se basa en una función de transferencia que comprende un numerador y un denominador, donde el numerador comprende un valor de armonicidad, y en donde el denominador comprende un valor de retraso de tono y el valor de armonicidad y/o un valor de ganancia. (Traducción automática con Google Translate, sin valor legal)
Description
[0001] DESCRIPCIÓN
[0002] Procesador para generar un espectro de predicción basado en predicción a largo plazo
[0003] Las realizaciones se refieren a un procesador para procesar una señal de audio que comprende un búfer de LTP y/o un pos-filtro armónico, realizaciones adicionales se refieren a un método correspondiente para procesar una señal de audio. Las realizaciones anteriores también se pueden implementar por ordenador. Por lo tanto, otra realización se refiere a un método para realizar, cuando se ejecuta en un ordenador, el método para procesar una señal de audio utilizando el búfer de LTP y/o utilizando la pos-filtración armónica, o a un método para decodificar y/o codificar que incluye uno de los procesamientos. Otra realización hace referencia a un codificador. Otra realización hace referencia a un decodificador. En general, las realizaciones tienen el propósito de mejorar la calidad de las señales armónicas codificadas en el dominio de MDCT.
[0004] Los codees de dominio de MDCT son muy adecuados para codificar señales musicales, ya que la MDCT proporciona una decorrelación y compactación de los componentes armónicos comúnmente producidos por los instrumentos y la voz cantada. Sin embargo, esta propiedad de MDCT se deteriora si se utilizan ventanas de MDCT cortas o si los componentes armónicos están modulados por frecuencia o amplitud. Al presentar importantes modulaciones de frecuencia y amplitud, las vocales en las señales de voz son un reto especial para los codees de MDCT.
[0005] El estado de la técnica ya divulga algunos métodos para la predicción a largo plazo; véase en particular el documento US 6,064,954 A, Valin et al: A High-Quality Speech and Audio Codee With Less Than 10 ms Delay, ARXIV.ORG, 17 de febrero de 2016, DOI: 10.1109/TASL.2009.2023186, y Rao et al: Pitch adaptive Windows for improved excitation coding in low-rate CELP coders, IEEE TRANSACTIONS ON SPEECH AND AUDIO PROCESSING, vol. 11 , n° 6, noviembre de 2003, páginas 648-659, ISSN: 1063-6676, DOI: 10.1109/TSA.2003.815530.
[0006] Los métodos de predicción a largo plazo (LTP, Long Term Prediction) utilizan muestras decodificadas de tramas anteriores, disponibles tanto en el lado del codificador como en el del decodificador, para predecir las muestras en la trama actual. Como tal, aumentan la ganancia de codificación.
[0007] En [1] se determina un tono y se construye una señal de predicción en un LTP utilizando el tono y una decodificación filtrada de paso bajo de muestras de tramas anteriores. El tono puede buscarse en subtramas. La señal de LTP se transforma mediante la MDCT y se resta de la MDCT de la señal de entrada. El residuo se codifica y se conforma utilizando la curva de enmascaramiento transmitida. Sólo los coeficientes de baja frecuencia donde la ganancia de predicción es alta se restan de la MDCT de entrada. La señal de LTP se añade de nuevo a la MDCT decodificada. Otro método similar que funciona en un dominio de la frecuencia utilizando la señal en el dominio del tiempo incluye [2-6], En [22] se propone una extensión para señales polifónicas.
[0008] En [7] se propone un método de LTP que opera completamente en el dominio del tiempo con la aplicación de la MDCT en el residuo LTP.
[0009] También existen métodos de LTP que operan en el dominio de MDCT sin necesidad de la MDCT inversa en el codificador, por ejemplo [8][9][20][21],
[0010] Los métodos de pos-filtro armónico (HPF, Harmonio Post-Filter) utilizados junto con los codees de dominio de MDCT implementan filtración de dominio del tiempo que reduce el ruido de cuantificación entre armónicos y/o aumenta las amplitudes de los armónicos. En ocasiones, el pos-filtro va acompañado de un método de pre-filtración que reduce las amplitudes de los armónicos con la esperanza de que el códec de dominio de MDCT necesite menos bits en la codificación de la señal pre-filtrada.
[0011] En [10] se utiliza un filtro FIR adaptativo
para la mejora de la voz. Los parámetrosltestán definidos por los periodos de tono (a partir de las mediciones de los movimientos glotales de un acelerómetro). Los parámetros a¡ son fijos y se definen mediante una función de división en ventanas (por ejemplo, rectangular, Blackman).
[0012] En [11 ] se utiliza un método de expansión y compresión/reducción del ancho de banda denominado escalado armónico en el dominio del tiempo (TDHS, Time Domain Harmonio Scaling) para implementar el filtro de peine adaptativo variable en el tiempo, que de hecho puede considerarse como otra forma de implementar el filtro FIR adaptativo de [10] con una ventana específica de longitud adaptativa dependiente del tono.
[0013] En [12] un planteamiento de pre/pos-filtro divide la trama en subtramas no solapadas, donde los límites de subtrama se determinan de modo que se minimice la potencia neta de la señal. Para cada subtrama, se obtiene información sobre el tono. Se utilizan pos-filtroy[n] = x[n]∑£L_<m>bpy[n - d p]
, donde d es el tono estimado en una subtrama ybpson coeficientes de predicción obtenidos con una búsqueda de bucle cerrado.
[0014] En [13] se ejecuta un pos-filtro armónico (HPF) en una señal decodificada dividida en subtramas de longitud fija. Un análisis de tono devuelve una correlación y y un tonoP0por subtrama. Una gananciagse deriva a partir de la correlación y. El HPFy[n] = x[n] g-iy[n-P-i~]+g0y[n-P0]se ejecuta para cada subtrama cong0que cambia de 0 agyg_-¡que cambia de la ganancia en la subtrama previa a 0, donde P_<7>es igual al tono en la subtrama previa. En [14], [15] el filtro armónico con la función de transferencia:
[0017]
[0019] tiene coeficientes derivados de un retardo de tono y un valor de ganancia, que son adaptativos a la señal. El valor de gananciagse calcula utilizando
[0022]
[0024] donde * es la señal de entrada y y es la señal predicha. Después, el valor de gananciagse limita entre 0 y 1 . Los parámetros del post-filtro son constantes a lo largo de una trama, donde la trama está definida por un códec. La discontinuidad en los límites de la trama se remueve usando un atenuador cruzado o un método similar.
[0025] A continuación, se dará un análisis de la técnica anterior mostrando dichos inconvenientes, en donde la identificación de los inconvenientes forma parte de la presente invención, ya que las mejoras dadas por la presente invención resultan, al menos parcialmente, del análisis inventivo de los inconvenientes de la técnica anterior.
[0026] El uso de bloques de MDCT largos mejora la calidad cuando se codifican señales armónicas incluso para tonos variables, pero el LTP utilizado en señales con tonos variables (por ejemplo, la voz) necesita una adaptación con velocidad variable para lograr una ganancia de codificación suficientemente alta. El desacoplamiento de la velocidad de actualización del LTP y la trama de MDCT no es fácil de conseguir en los métodos de sólo frecuencia [8][9] y hasta ahora no se ha ofrecido ninguna solución.
[0027] Con las características variables en el tiempo de una señal, es necesario utilizar las muestras más recientes disponibles como entrada para el LTP y esto no es posible con los métodos en el dominio del tiempo únicamente [7] junto con ventanas solapadas para una transformada de frecuencia.
[0028] La división de la señal en el dominio del tiempo en subtramas solapadas o el suavizado en los límites de las subtramas y la longitud de filtro adaptativa dependiente del tono son técnicas conocidas en la filtración en el dominio del tiempo, pero no se aplicaban en los métodos de LTP que suman/restan una predicción en el dominio de la frecuencia. En [1 ][9] el tono se encuentra por subtrama y si el número de subtramas es alto, podrían necesitarse muchos bits para codificar la información del tono.
[0029] Ninguna de las técnicas de LTP conocidas no utiliza salida no solapada adicional de la MDCT inversa que está disponible si, por ejemplo, los métodos de [16] se utilizan .
[0030] El filtro FIR en [10] no modela las modulaciones/cambios de amplitud. El aumento de armonicidad que introduce es fijo e independiente de la señal. Utiliza una ventana solapada de tamaño fijo que abarca varios periodos de tono (como es necesario, debido a la limitación del filtro de FIR), incluyendo por lo tanto también periodos con periodos de tono cambiantes dentro de una sola ventana. El problema del cambio (rápido) del periodo de tono se denomina “problema de sobrecarga” y se aborda “apagando” el filtro adaptativo o, lo que es lo mismo, insertando ceros en la señal. Esto reduce la efectividad del filtro. El método de [10] también requiere la detección de voz/sin voz. El método TDHS de [11] utiliza una longitud de ventana adaptativa, pero la longitud del filtro de FIR abarca al menos 4 periodos de tono, por lo que tampoco es capaz de modelar los cambios rápidos de tono. Tampoco modela las modulaciones/cambios de amplitud. El aumento de armonicidad que introduce es también fijo e independiente de la señal.
[0031] En [12] el predictorde desarmonización reduce la parte armónica en la señal codificada y limita por lo tanto la calidad de los componentes armónicos codificados y la eficacia del pos-filtro. Todos los parámetros del pos-filtro se estiman para cada subtrama y se transmiten, por lo que la velocidad de bits aumenta considerablemente. El método tampoco considera el suavizado en los límites de las subtramas.
[0032] En [13] las subtramas son de longitud constante, no adaptables a la señal. El pos-filtro en [13] no modela las modulaciones/cambios de amplitud, porqueg0es proporcional a la correlación limitada entre 0 y 1 .
[0033] El pos-filtro LTP de [14], [15] no se adapta lo suficientemente rápido a los cambios de señal porque su adaptación está ligada al entramado constante del códec. Tampoco modela bien las modulaciones/cambios de amplitud debido a la limitación de queg ≤ 1y porquegaparece tanto en el numerador (prealimentación) como en el denominador (postalimentación).
[0034] Con base en esto, existe la necesidad de un planteamiento mejorado.
[0035] Es objetivo de la presente invención proporcionar un concepto para mejorar la calidad de la codificación de señales armónicas, especialmente en el dominio MDCT.
[0036] Este objetivo se resuelve por medio de la materia objeto de las reivindicaciones independientes.
[0037] La invención proporciona un procesador para procesar una señal de audio codificada, como se establece en la reivindicación 1 . La señal de audio codificada o la señal de audio codificada en el dominio del tiempo comprende al menos un parámetro de tono codificado. En aras de la completitud, cabe señalar que la señal de audio también puede tener parámetros que definan las muestras de una señal de audio decodificada en el dominio del tiempo (TD, Time Domain). El procesador comprende un búfer (memoria intermedia) LTP, un divisor de intervalos de tiempo, medios de cálculo, un predictor y un transformador del dominio de la frecuencia. El búfer de LTP está configurado para recibir muestras derivadas de una trama de la señal de audio codificada, el divisor de intervalo está configurado para dividir un intervalo de tiempo asociado con la trama posterior (posterior a la trama) de la señal de audio codificada en subintervalos dependiendo del parámetro de tono codificado. Los medios de cálculo están configurados para derivar parámetros de subintervalo a partir del parámetro de tono codificado dependiendo de una posición de los subintervalos dentro del intervalo (de tiempo) asociado con la trama posterior de la señal de audio codificada. El predictor está configurado para generar una señal de predicción a partir del búfer de LTP dependiendo de los parámetros de subintervalo. La transformada en el dominio de la frecuencia está configurada para generar un espectro de predicción con base en la señal de predicción.
[0038] Las realizaciones de este aspecto de la invención se basan en el principio de que es benéfico con respecto a la calidad de la codificación de la señal armónica en el dominio de MDCT para dividir una ventana actual en subintervalos solapados, en donde opcionalmente, las longitudes de los subintervalos pueden depender de un tono. En cada subintervalo, la señal predicha puede construirse utilizando una señal TD decodificada y un filtro derivado del contorno del tono dependiendo de la posición del subintervalo. Posteriormente, la señal predicha se divide en ventanas y se transforma al dominio de la frecuencia. De este modo, la señal predicha construida y el LTP aplicado en un dominio de la frecuencia, habilitan una adaptación suave y rápida sin retardo a las características de señal variable en una tasa no constante diferente a la frecuencia de tramas del codificador en el dominio de la frecuencia. De acuerdo con una realización adicional, el espectro predicho puede aplanarse perceptualmente para producir la derivación del espectro de predicción. Adicionalmente, cabe señalar que el espectro de predicción o la derivación del espectro de predicción pueden combinarse con un espectro de error. Las magnitudes alejadas de los armónicos en el espectro de predicción pueden reducirse a cero. Debido a esto, se obtiene la siguiente ventaja: un espectro predicho se procesa adicionalmente utilizando la información de tono para remover las partes no predecibles del espectro predicho. La invención proporciona además un método para procesar una señal de audio codificada, tal y como se establece en la reivindicación independiente 17, y un programa informático, tal y como se establece en la reivindicación independiente 18.
[0039] Las realizaciones preferidas de la invención se establecen en las reivindicaciones dependientes.
[0040] Las realizaciones que ilustran la presente invención se comentarán posteriormente haciendo referencia a las figuras adjuntas, en donde:
[0041] la figura 1a muestra una representación esquemática de una implementación básica de un procesador que utiliza almacenamiento en búfer de LTP de acuerdo con una realización de un primer aspecto;
[0042] la figura 1b muestra una representación esquemática de una implementación básica de un procesador que utiliza posfiltración armónica de acuerdo con una realización de un segundo aspecto;
[0043] la figura 2a muestra un diagrama de bloques esquemático que ilustra un codificador de acuerdo con una realización y un decodificador de acuerdo con otra realización;
[0044] la figura 2b muestra un diagrama de bloques esquemático que ilustra un codificador de acuerdo con una realización; la figura 2c muestra un diagrama de bloques esquemático que ilustra un decodificador de acuerdo con una realización;
la figura 3 muestra un diagrama de bloques esquemático de un codificador de señal para la señal residual de acuerdo con las realizaciones;
[0045] la figura 4 muestra un diagrama de bloques esquemático de un decodificador que comprende el principio de llenado cero de acuerdo con realizaciones adicionales;
[0046] la figura 5 muestra un diagrama esquemático para ilustrar el principio de determinación del contorno del tono (consulte el contorno de tono de separación de bloque) de acuerdo con las realizaciones;
[0047] la figura 6 muestra un diagrama de bloques esquemático de un extractor de pulso que utiliza una información sobre un contorno de tono de acuerdo con realizaciones adicionales;
[0048] la figura 7 muestra un diagrama de bloques esquemático de un extractor de pulso que utiliza el contorno de tono como información adicional de acuerdo con una realización alternativa;
[0049] la figura 8 muestra un diagrama de bloques esquemático que ilustra un codificador de pulso de acuerdo con realizaciones adicionales;
[0050] las figuras 9a a 9b muestran diagramas esquemáticos para ilustrar el principio del aplanamiento espectral de un pulso de acuerdo con las realizaciones;
[0051] la figura 10 muestra un diagrama de bloques esquemático de un codificador de pulso de acuerdo con realizaciones adicionales;
[0052] las figuras 11 a a 11 b muestran un diagrama esquemático que ilustra el principio de determinación de una señal residual de predicción a partir de una aplanada original;
[0053] la figura 12 muestra un diagrama de bloques esquemático de un codificador de pulso de acuerdo con realizaciones adicionales;
[0054] la figura 13 muestra un diagrama esquemático que ilustra una señal residual e impulsos codificados para ilustrar las realizaciones.
[0055] la figura 14 muestra un diagrama de bloques esquemático de un decodificador de pulso de acuerdo con realizaciones adicionales;
[0056] la figura 15 muestra un diagrama de bloques esquemático de un decodificador de pulso de acuerdo con realizaciones adicionales;
[0057] la figura 16 muestra un diagrama de flujo esquemático que ilustra el principio de estimación de un tamaño de paso utilizando el bloque IBPC de acuerdo con las realizaciones;
[0058] las figuras 17a a 17d muestran diagramas esquemáticos para ilustrar el principio de la predicción a largo plazo de acuerdo con las realizaciones;
[0059] las figuras 18a a 18d muestran diagramas esquemáticos para ilustrar el principio de pos-filtración armónica de acuerdo con realizaciones adicionales.
[0060] A continuación, se describirán las realizaciones que ilustran la presente invención haciendo referencia a las figuras adjuntas, en donde se proporcionan números de referencia idénticos a objetos que tienen funciones idénticas o similares, de modo que la descripción de los mismos sea mutuamente aplicable e intercambiable.
[0061] La figura 1a muestra un procesador 1000 de acuerdo con la invención reivindicada, que puede formar parte de un codificador para codificar y/o un decodificador para decodificar una señal de audio codificada. El procesador 100 comprende en su implementación básica un búfer de LTP 1010, un divisor de intervalo 1020, un calculador 1030, así como los elementos de un codificador/decodificador convencional, es decir, un predictor 1040 y un transformador en el dominio de la frecuencia 1050.
[0062] La señal de audio es una señal de audio codificada que comprenda al menos un parámetro de tono codificado y, opcionalmente, uno o más parámetros que definan las muestras de una señal de audio decodificada en el dominio del tiempo (TD). Observar que la señal de audio codificada puede constar de “contorno de tono”, “spect”, “zfl”, “tns”, “sns” y “pulsos codificados” (consultar la figura 2a). Por ejemplo, la señal de audio puede preprocesarse mediante un transformador inverso en el dominio de la frecuencia para generar un bloque de señal de audio TD distorsionada a
partir de una derivada de un espectro de error, en donde una trama de la señal de audio TD se genera utilizando al menos dos bloques de señal de audio TD distorsionada, de modo que al menos algunas porciones de la señal de audio TD distorsionada son diferentes de la señal de audio TD. Desde otro punto de vista, esto significa que la señal de audio se procesa en el dominio de la frecuencia. Observar que una derivada del espectro de error es, por ejemplo, Xc (figura 2a), ya que Xc se deriva del espectro combinado (XDT) que se deriva (a través del combinador) a partir del espectro de error (XD).
[0063] Esta señal de audio es recibida por el búfer 1010 y, a continuación, procesada por la ruta de procesamiento formada por los elementos 1010, 1020 y 1030. El búfer 1010 almacena/recibe las muestras de la trama de la señal de audio TD. Como posible implementación, la salida del decodificador en el dominio de la frecuencia se puede utilizar como búfer de LTP, incluyendo la parte completa no solapada de la señal decodificada.
[0064] En la siguiente entidad 1020, el intervalo de tiempo de la longitud de la ventana de la trama actual se divide en subintervalos solapados (intervalo para el que se generará la señal de predicción). Aquí, la longitud de cada subintervalo depende del tono, por ejemplo, depende de un tono promedio. Dado que la señal de audio comprende un parámetro de tono codificado, es posible que el tono o una información sobre el tono se obtenga a partir del parámetro de tono codificado. De acuerdo con las realizaciones, el tono se determina utilizando un contorno de tono. El contorno de tono se obtiene a partir de parámetros de tono codificados utilizando, por ejemplo, una interpolación. Por ejemplo, el parámetro de tono codificado puede tener una resolución temporal mayor que la trama codificada y/o puede tener una resolución temporal menor que el propio contorno de tono. Se debe observar que, de acuerdo con las realizaciones, puede haber más subintervalos que parámetros temporales de tono codificados distintos. La siguiente entidad 1030 recibe el intervalo de tiempo dividido asociado a la trama de la señal de audio codificada, es decir, los subintervalos, y está configurada para derivar parámetros de subintervalo a partir del parámetro de tono codificado dependiendo de una posición del subintervalo dentro de la señal de predicción. Este cálculo lo realiza la entidad 1030. Se debe observar que, al menos en algunos casos, hay más parámetros de subintervalo distintos que parámetros temporales de tono codificados distintos. Debido al procesamiento de la señal de predicción/espectro predicho utilizando la información sobre el tono, es posible revisar las partes no predecibles. Después de este procesamiento, se realiza la construcción de la señal predicha. La entidad 1040 está configurada para construir la señal predicha XP* en cada subintervalo, por ejemplo, utilizando un filtro cuyos parámetros se derivan a partir del parámetro de tono codificado / el contorno de tono (observar que el contorno de tono se deriva a partir de los parámetros de tono codificados, de modo que también podría afirmarse que los parámetros se derivan de los parámetros de tono codificados) y la posición del subintervalo dentro de la ventana / dentro del intervalo de tiempo asociado con la trama de la señal de audio codificada. Por lo tanto, el predictor 1040 construye/genera la señal de predicción XP* dependiente de los parámetros del subintervalo emitidos por la entidad 1030. Después de la entidad 1040, puede disponerse/configurarse un transformador en el dominio de la frecuencia 1050 para generar un espectro de predicción Xp basado en la señal de predicción XP*. Aquí, la señal predicha XP* se divide en ventanas y se transforma al dominio de la frecuencia. De acuerdo con las realizaciones, el espectro predicho puede ser opcionalmente aplanado perceptualmente para producir un espectro predicho aplanado. Debido a la construcción de subintervalo y a la aplicación del LTP en el dominio de la frecuencia, es posible adaptar el LTP de forma suave , rápida y sin retardo adicional a las características de señal variable en una tasa no constante diferente a la tasa del codificador en el dominio de la frecuencia.
[0065] Las magnitudes alejadas de los armónicos en el espectro predicho (aplanado) se reducen a un cero, donde la ubicación de los armónicos se deriva a partir del contorno de tono corregido.
[0066] El número de armónicos predecibles se determina en el codificador con base en el contorno de tono corregido, el espectro predicho (aplanado) y un espectro derivado de la señal de entrada. De acuerdo con algunas realizaciones, una parte del espectro predicho aplanado, correspondiente al número de armónicos predecibles, se resta en el dominio de la frecuencia en el codificador. De acuerdo con otras realizaciones, esta parte se añade en el dominio de la frecuencia en el decodificador y/o en el codificador.
[0067] Cabe señalar que este planteamiento de LTP puede formar parte de un codificador o de un decodificador, como se comentará con respecto a la figura 2a. En la figura 2a, el búfer de LTP forma parte del elemento de LTP 164.
[0068] Con respecto a la figura 1 b, se comentará de otra realización (no de acuerdo con la invención reivindicada) que también utiliza la división de la señal de audio ye en subintervalos solapados dependiendo de una información de tono. La figura 1 b muestra una unidad de pos-filtro armónico 1100 (HPF) que comprende el pos-filtro armónico 1120 después de los medios para dividir la señal de audio ye. Los medios para dividir están marcados por el número de referencia 1110. El divisor 1110 está configurado para dividir una trama de la señal de audio en una pluralidad de subintervalos superpuestos, cada uno de los cuales tiene longitudes respectivas. Por ejemplo, las longitudes respectivas de dos o todos de la pluralidad de subintervalos o subintervalos solapados dependen de un valor de retardo de tono. Observar que, al menos en algunos casos, hay al menos dos subintervalos en una trama.
[0069] El pos-filtro armónico 1120 está configurado para la filtración de la pluralidad de subintervalos (solapados). El filtro 1120 utiliza una función de filtro con base en una función de transferencia que comprende un numerador y un denominador. El numerador comprende un valor de armonicidad, mientras que el denominador comprende el valor de armonicidad, el valor de ganancia y el valor de retardo de tono. Por ejemplo, esta función de transferencia puede definirse para usarse un numerador que comprenda un valor de armonicidad, y un denominador que comprenda el valor de armonicidad, el valor de ganancia y el valor de retardo de tono.
[0070] El filtro puede describirse, por ejemplo, con base la siguiente función de transferencia:
[0073]
[0075] donde los parámetros adaptativos de la señal TJnt, T_fr, h, g se encuentran en cada subintervalo con base en la señal decodificada en el dominio del tiempo y los subintervalos previos ya disponibles de la señal de salida.
[0076] De acuerdo con realizaciones adicionales, la señal de audio se recibe de un convertidor de dominio para convertir por tramas una representación de primer dominio de la señal de audio en un segundo dominio, preferiblemente una representación en el dominio del tiempo de la señal de audio.
[0077] De acuerdo con las realizaciones, el valor de armonicidad es proporcional a la intensidad deseada del filtro. Además, puede ser independiente de los cambios de amplitud de la señal de audio, en donde el valor de ganancia puede depender de los cambios de amplitud. El resultado es que, al menos en algunos casos, el pos-filtro armónico es diferente en al menos dos subintervalos. Esto también significa que, si para una trama se da esta condición, para alguna(s) otra(s) trama(s) el pos-filtro armónico puede ser el mismo en todos los subintervalos o si en algunos casos sólo hay un subintervalo que sea igual al intervalo de tiempo asociado a toda la trama. Observar que el filtro puede tener una especie de bucle de retroalimentación, de modo que el valor de armonicidad, el valor de ganancia y el valor de retardo de tono pueden derivarse utilizando la salida ya disponible del filtro de armónicos en subintervalos pasados y la representación de segundo dominio de la señal de audio (por ejemplo, la representación de segundo dominio es un dominio temporal). De acuerdo con realizaciones adicionales, puede haber al menos dos subintervalos dentro de la trama. Aquí, puede haber otras tramas donde sólo haya un subintervalo que sea igual al intervalo de tiempo asociado a toda la trama.
[0078] De acuerdo con las realizaciones, si se detecta un cambio de tono, un cambio de armonicidad o una modulación de amplitud, el intervalo de tiempo de la longitud de la trama de salida actual se divide en subintervalos solapados de longitud que depende de un tono, donde el tono se obtiene a partir de los parámetros de tono codificados o se encuentra en la señal en el dominio del tiempo de codificada. De acuerdo con las realizaciones, el pos-filtro armónico 1100 está configurado para modelar los cambios de tono y/o amplitud. De acuerdo con las realizaciones, la velocidad de actualización de los parámetros del HPF puede ser independiente de la frecuencia de tramas del codificador en el dominio de la frecuencia.
[0079] Como se mostrará con respecto a la figura 2a, la entidad HPF 1100 (consultar la figura 1 b) se utiliza principalmente para el lado del decodificador. La entidad HPF 1100, aquí marcada como 214 está dispuesta al final de una ruta de proceso que comprende el codificador espectral 156. Todas las características comentadas en el contexto de la entidad HPF 1100 pueden aplicarse también a la entidad HPF 214.
[0080] El búfer de LTP incluido por el procesador 1000 puede usarse para el codificador 101 así como para el decodificador 201 que se comentan con respecto a las figuras 2a, 2b y 2c. Aquí, la entidad 164 puede comprender el procesador 1000 que incluye el búfer de LTP 1010, tal como se comenta en el contexto de la figura 1a. Todas las características comentadas en los contactos del procesador 1000 pueden aplicarse también a la entidad LTP 164.
[0081] La interacción completa de las entidades 164 (LTP) y 214 (HPF) se comentará con respecto a la figura 2a, en donde aquí se mencionarán elementos opcionales.
[0082] La figura 2a muestra un codificador 101 en combinación con un decodificador 201 .
[0083] Las entidades principales del codificador 101 están marcadas por los números de referencia 110, 130, 151 . La entidad 110 realiza la extracción de pulsos, en donde los pulsos p se codifican utilizando la entidad 132 para la codificación de pulsos.
[0084] El codificador de señal 150 se implementa por una pluralidad de entidades 152, 153, 154, 155, 156, 157, 158, 159, 160 y 161 . Estas entidades 152 a 161 forman la trayectoria principal del codificador 150, en donde, en paralelo, pueden disponerse entidades adicionales 162, 163, 164, 165 y 166. La entidad 162 (decodificador de zfl) conecta informativamente las entidades 156 (iBPC) con la entidad 158 (llenado cero). La entidad 165 (obtener TNS) conecta
informativamente la entidad 153 (SNSE) con las entidades 154, 158 y 159. La entidad 166 (obtener SNS) conecta informativamente la entidad 152 con las entidades 153, 163 y 160. La entidad 158 realiza el llenado cero y puede comprender un combinador 158c que se comentará en el contexto de la figura 4. Observar que puede haber una implementación donde las entidades 159 y 160 no existan - por ejemplo, un sistema con una filtración de análisis LP de la entrada de MDCT y una filtración de síntesis LP de la salida de IMDCT. Por lo tanto, estas entidades 159 y 160 son opcionales.
[0086] Las entidades 163 y 164 (búfer de LTP, por ejemplo, como se describió anteriormente haciendo referencia a la unidad 1010) reciben el contorno de tono de la entidad 180 y la señal de audio en el dominio del tiempo Ye para generar el espectro predicho Xp y/o la predicción aplanada perceptualmente XPS. La funcionalidad y la interacción de las distintas entidades se describirán a continuación.
[0088] Antes de comentar la funcionalidad del codificador 101 y especialmente del codificador 150, se proporciona una breve descripción del decodificador 201 . El decodificador 210 puede comprender las entidades 157, 162, 163, 164, 158, 159, 160, 161 , así como las entidades específicas del decodificador 214 (HPF), 23 (combinador de señal) y 22 (para construir la forma de onda que representa pulsos codificados). Además, el decodificador 201 comprende el decodificador de señal 210, en donde las entidades 158, 159, 160, 161 , 162, 163 y 164 forman junto con la entidad 214 el decodificador de señal 210. La entidad 1100 puede usarse como HPF 214. Además, el decodificador 201 comprende el combinador de señal 23. Nota: De acuerdo con las realizaciones, la entidad 156 sólo es utilizada parcialmente por el decodificador. Por lo tanto, el número de referencia 201 no incluye la entidad 156, mientras que la ruta de decodificación 210 sí la incluye. El uso parcial de 156 por el decodificador 210 se ilustra en la figura 2c, que comprende una entidad 156” ligeramente adaptada para la decodificación.
[0090] La extracción de pulsos 110 obtiene una STFT de la señal de audio de entrada PCMi, y utiliza un espectrograma de magnitud no lineal y un espectrograma de fase de la STFT para encontrar y extraer pulsos, teniendo cada pulso una forma de onda con características de paso alto. La señal residual de pulsoyMse obtiene removiendo los pulsos de la señal de audio de entrada. Los pulsos se codifican mediante la codificación de pulsos 132 y los pulsos codificados CP se transmiten al decodificador 201 .
[0092] La señal residual de pulsoyMse divide en ventanas y se transforma a través de la MDCT 152 para producirXMde longitudLM.Las ventanas se eligen entre 3 ventanas como en [17], La ventana más larga tiene una longitud de 30 milisegundos con un solapamiento de 10 milisegundos en el ejemplo siguiente, pero se puede utilizar cualquier otra ventana y longitud de solapamiento. La envolvente espectral deXMse aplana perceptualmente mediante SNS<E>153 obteniendoXMS.Opcionalmente, la conformación de ruido temporal TNS<E>154 se aplica para aplanar la envolvente temporal, en al menos una parte del espectro, produciendoXMT.Al menos una bandera de tonalidadφΗen una parte del espectro (enXMoXMSoXMT)puede estimarse y transmitirse al decodificador 201/210. Opcionalmente, la predicción a largo plazo LTP 164 que sigue el contorno de tono 180 se utiliza para construir un espectro predichoXPa partir de muestras decodificadas anteriores y la predicción perceptualmente aplanadaXPSse sustrae en el dominio de MDCT deXMT,produciendo un residual de LTP residualXMR.Se calcula una armonicidad promedio para cada trama. Se obtiene un contorno de tono en el bloque Obtener contorno de tono 180 para las tramas con una armonicidad promedio elevada y se transmite al decodificador 201 . El contorno de tono y una armonicidad se utilizan para dirigir muchas partes del códec. Alternativamente, el contorno de tono puede derivarse de los parámetros de tono codificados, por lo que también podría afirmarse que los parámetros se derivan de los parámetros de tono codificados.
[0093] La figura 2b muestra un fragmento de la figura 2a centrándose en el codificador 101’ que comprende las entidades 180, 110, 152, 153, 153, 155, 156, 165, 166 y 132. Observar que la entidad 156 de la figura 2a es una especie de combinación de 156’ de la figura 2b y de la 156” de la figura 2c. Observar que la entidad 163 (en las Figuras 2a, 2c) puede ser igual o comparable a 153 y es la inversa de 160.
[0095] De acuerdo con las realizaciones, el codificador divide la señal de entrada en tramas y emite, por ejemplo, para cada trama uno o más de los parámetros siguientes:
[0097] • contorno de tono
[0099] · elección de la ventana de MDCT, 2 bits
[0101] • parámetros de LTP
[0103] • pulsos codificados
[0105] • sns, es decir, información codificada para la conformación espectral mediante la SNS
[0107] • tns, es decir, información codificada para la conformación temporal mediante la TNS
[0108] • ganancia globalgQ0,es decir, el tamaño del paso de cuantificación global para el códec de MDCT
[0109] • spect, que consta del espectro de MDCT cuantificado y codificado por entropía
[0111] · zfl, que consta de las porciones cero codificadas paramétricamente del espectro de MDCT cuantificado
[0113] XPSes una salida del 163 o 164 que también puede requerirse en el codificador, pero que sólo se muestra en el decodificador.
[0115] La figura 2c muestra un fragmento de la figura 2a centrándose en el decodificador 20T que comprende las entidades 156”, 162, 163, 164, 158, 159, 160, 161 , 214, 23 y 2 que se han comentado en el contexto de la figura 2a. Con respecto al LTP 164. Básicamente, debido al LTP, una parte del decodificador (excepto 214, 230, 222 y sus salidas) también puede utilizarse / requerirse en el codificador (como se muestra en la figura 2a) y se denomina decodificador interno. En implementaciones sin el LTP, el decodificador interno no es necesario en el codificador.
[0117] Ejemplo para el codificador de MDCT : La salida de la MDCT esXMde longitudLM.Para un ejemplo a la frecuencia de muestreo de entrada de 48 kHz y para la longitud de trama ejemplar de 20 milisegundos,LMes igual a 960. El códec puede funcionar con otras frecuencias de muestreo y/o con otras longitudes de trama. Todos los demás espectros derivados deXM: XMS, XMT, XMR, XQ, XD, XDT, XCT, Xcs, Xc, XP, XPS, XN, XNP, Xstambién tienen la misma longitudLM,aunque en algunos casos sólo se necesita y se utiliza una parte del espectro. Un espectro consta de coeficientes espectrales, también conocidos como bins espectrales o bins de frecuencia. En el caso de un espectro de MDCT, los coeficientes espectrales pueden tener valores positivos y negativos. Podemos decir que cada coeficiente espectral cubre un ancho de banda. En el caso de la frecuencia de muestreo de 48 kHz y la longitud de trama de 20 milisegundos, un coeficiente espectral cubre el ancho de banda de 25 Hz. Los coeficientes espectrales pueden estar indexados de 0 aLM — 1.
[0119] Los factores de escala de SNS, utilizados en SNS<E>y SNS<D>, pueden obtenerse a partir de energías enNSB = 64subbandas de frecuencia (en ocasiones también haciendo referencia a ellas como bandas) con anchos de banda crecientes, donde las energías se obtienen a partir de un espectro dividido en las sub-bandas de frecuencia. A modo de ejemplo, los bordes de las sub-bandas, expresados en Hz, se pueden establecer en 0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2050, 2200, 2350, 2500, 2650, 2800, 2950, 3100, 3300, 3500, 3700, 3900, 4100, 4350, 4600, 4850, 5100, 5400, 5700, 6000, 6300, 6650, 7000, 7350, 7750, 8150, 8600, 9100, 9650, 10250, 10850, 11500, 12150, 12800, 13450, 14150, 15000, 16000, 24000. Las sub-bandas se pueden indexar de 0 aNSB - 1.En este ejemplo, la 0-ésima sub-banda (de 0 a 50 Hz) contiene 2 coeficientes espectrales, los mismos que las sub-bandas 1 a 11 , la sub-banda 62 contiene 40 coeficientes espectrales y la sub-banda 63 contiene 320 coeficientes. Las energías enNSB = 64sub-bandas de frecuencia pueden reducirse a 16 valores que se codifican, los valores codificados se denotan como “sns”. Los 16 valores decodificados obtenidos de “sns” se interpolan en factores de escala SNS, donde pueden ser, por ejemplo, 32, 64 o 128 factores de escala. Para más detalles sobre la obtención de los SNS, se remite al lector a [22-26],
[0120] En ÍBPC, “zfl decode” y/o “Zero Filling” los espectros se pueden dividir en sub-bandasBtde longitud variableLBi,la sub-bandaique comienza enjB..Pueden utilizarse los mismos 64 bordes de sub-banda que se emplean en las energías para obtener los factores de escala de SNS, pero también puede emplearse cualquier otro número de subbandas y cualquier otro borde de sub-banda, independientemente del SNS. Para subrayarlo, se puede utilizar el mismo principio de división de sub-bandas que en SNS, pero la división de sub-bandas en ÍBPC, “zfl decode” y/o “Zero Filling” es independiente de SNS y de los bloques SNS<E>y SNS<D>. Con el ejemplo anterior de división en sub-bandas,jBo = 0YLBO= 2,jBl = 0yLBI= 2.jg63 = 640yLBe3 = 320.
[0122] Observar que, en todavía otra realización, las sub-bandas (es decir, los límites de las sub-bandas) para el ÍBPC, la “decodificación de zfl” y el “llenado cero” podrían derivarse de las posiciones de los coeficientes espectrales cero en XD y XQ.
[0124] La codificación del XMR (residual de la LTP) proporcionada por la entidad 155 se realiza en el codificador integral de parámetros por bandas (ÍBPC, integral Band-wise Parameter Coder) como se comentará con respecto a la figura 3.
[0125] La figura 3 muestra que la entidad ÍBPC 156 que puede tener las subentidades 156q, 156m, 156pc, 156sc y 156mu. Observar que la figura 1a muestra una parte de la figura 3: Aquí, 1030 es comparable con 156a, 1010 es comparable con 156pc, 1020 es comparable con 156sc.
[0127] A la salida del multiplexor de flujo de bits 156mu se dispone el decodificador paramétrico por bandas 162 junto con el decodificador de espectro 156sc. La entidad 162 recibe la señal zfl, la entidad 156sc la señal spect, donde ambas reciben la ganancia global/tamaño de paso ga<a>. Observar que el decodificador paramétrico 162 utiliza la salida XD del decodificador de espectro 156sc para decodificar zfl. Alternativamente, puede utilizar otra señal de salida del
decodificador 156sc. El trasfondo de esto es que el decodificador de espectro 156sc puede constar de dos partes, es decir, un decodificador de espectro y un descuantificador. Por ejemplo, la salida del cuantificador puede ser utilizada como entrada para el decodificador paramétrico 162.
[0129] XMRse cuantifica y codifica incluyendo una cuantización y codificación de una energía para valores cero en (una parte de) el espectro cuantificadoXQ,dondeXQes una versión cuantificada deXMR.La cuantificación y codificación deXMRse realiza en el codificador integral de parámetros por bandas iBPC 156. Como una de las partes de ÍBPC, la cuantificación (cuantificador 156q) junto con la reducción a cero de banda adaptativa 156m produce, con base en el tamaño óptimo del paso de cuantificacióngQo,el espectro cuantificadoXQ.El ÍBPC 156 produce información codificada que consta de spect 156sc (que representaXQ)y zfl 162 (que puede representar la energía de los valores cero en una parte deXQ).
[0131] La entidad de llenado cero 158 dispuesta a la salida de la entidad 157 se ilustra en la figura 4.
[0133] La figura 4 muestra una entidad de relleno cero 158 que recibe la señal EB de la entidad 162 y el espectro combinado XDT de la entidad 156sd opcionalmente a través del elemento 157. La entidad de llenado cero 158 puede comprender las dos subentidades 158sc y 158sg así como un combinador 158c.
[0135] El spect se decodifica para obtener un espectro de codificadoXD(residuo de LTP decodificado, espectro de error) equivalente a la versión cuantificada deXMRsiendoXQ. EBse obtienen a partir de zfl teniendo en cuenta la ubicación de los valores cero enXD(espectro de error).EBpuede ser una versión suavizada de la energía para los valores cero enXQ. EBpuede tener una resolución diferente de zfl, preferiblemente una resolución mayor procedente del suavizado. Después de obtenerEB(consultar 162), la predicción perceptualmente aplanadaXPSse añade opcionalmente a la decodificadaXD,produciendoXDT.Un llenado ceroXsse obtiene y se combina conXDT(por ejemplo utilizando la adición 158c) en “Llenado cero”, donde el llenado ceroXGconsta de un llenado cero por bandas ¾<B>. que se obtiene iterativamente a partir de un espectro de origenXsque consta de un espectro de origen por bandas X<GB>. (consultar 156sc) y ponderado con base enEB. XCTes una combinación por bandas del llenado ceroXGy el espectroXDT (158c). Xsse construye a nivel de banda (158sg proporcionandoXG)yXGTse obtiene a nivel de banda empezando por la subbanda más baja. Para cada sub-banda se elige el espectro de origen (consultar 158sc), por ejemplo en función de la posición de la sub-banda, la bandera de tonalidad (toi), un espectro de potencia (pii) estimado a partir deXDT, EB,la información tonal y la información temporal (tei). Observar que el espectro de potencia estimado a partir deXDTpuede derivarse de XDT O XD Alternativamente, el espectro de origen se puede obtener a partir del flujo de bits. Las subbandas más bajas ¾<B>. enXshasta una frecuencia inicialfZFstartpueden establecerse en 0, lo que significa que en las sub-bandas más bajasXGTpuede ser una copia deXDT. fZFStartpuede ser 0, lo que significa que el espectro de origen distinto de cero puede elegirse incluso desde el inicio del espectro. El espectro de origen de una sub-bandaipuede ser, por ejemplo, un ruido aleatorio o un espectro predicho o una combinación de la parte inferior ya obtenida deXGT,el ruido aleatorio y el espectro predicho. El espectro de origen se pondera con base enEBpara obtener el llenado cero
[0136]
[0139] La ponderación puede realizarse por 158sg y tener mayor resolución que la división en subbandas; incluso puede determinarse por muestreo para obtener una ponderación suave.XSase añade a la sub-bandaideXDTpara producir la sub-bandaideXGT.Después de obtener laXGT,su envolvente temporal se modifica opcionalmente mediante TNS<D>159 (consultar la figura 2) para que coincida con la envolvente temporal deXMS,produciendoXGS.La envolvente espectral deXGSse modifica entonces mediante SNS<D>160 para que coincida con la envolvente espectral deXM,produciendoXG.Una señal en el dominio del tiempoycse obtiene deXccomo salida de IMDCT 161 donde IMDCT 161 consta de la MDCT inversa, división en ventanas y solapamiento-y-adición.ycse utiliza para actualizar la memoria intermedia LTP 164 (ya sea comparable a la memoria intermedia 164 de las figuras 2a y 2c, o a una combinación de 164+163) para la trama siguiente. Se aplica un pos-filtro armónico (HPF) que sigue el contorno del tono enyGpara reducir el ruido entre armónicos y a la salidayH.Los pulsos codificados, que constan de formas de onda de pulso codificados, se decodifican y una señal en el dominio del tiempoyPse construye a partir de las formas de onda de pulso decodificadas.yPse combina conyHpara producir la señal de audio decodificada (PCM<0>). Alternativamente,yPse puede combinar conyGy su combinación se puede utilizar como entrada del HPF, en cuyo caso la salida del HPF 214 es la señal de audio decodificada.
[0141] La entidad “Obtener contorno de tono” 180 se describe a continuación haciendo referencia a la figura 5.
[0143] A continuación se explicará el proceso del bloque Obtener contorno de tono 180”. La señal de entrada se reduce de la frecuencia de muestreo completa a una frecuencia de muestreo inferior, por ejemplo a 8 kHz. El contorno de tono se determina por pitch_mid y pitch_end de la trama actual y por pitch_start que es igual a pitch_end de la trama anterior. Las tramas se ilustran de forma ejemplar en la figura 5. Todos los valores utilizados en el contorno de tono se pueden almacenar como retardos de tono con una precisión fraccionaria. Los valores de retardo de tono están
comprendidos entre el retardo de tono mínimodPmln = 2,25milisegundos (correspondiente a 444,4 Hz) y el retardo de tono máximodFmax = 19,5milisegundos (correspondiente a 51 ,3 Hz), el intervalo dedFminadFmaxdenominándose intervalo de tono completo. También pueden usarse otros intervalos de valores. Los valores de pitch_mid y pitch_end se encuentran en múltiples pasos. En cada paso, se ejecuta una búsqueda de tono en un área de la señal reducida o en un área de la señal de entrada.
[0145] La búsqueda de tono calcula la autocorrelación normalizadapH[d<F>] de su entrada y una versión retardada de la misma. Los retardosdFson entre un inicio de búsqueda de tonodFstarty un final de búsqueda de tonodFend.El inicio de la búsqueda de tonodFstart,el final de la búsqueda de tonodFend,la longitud de autocorrelación1PHy un candidato de tono anteriordFpastson parámetros de la búsqueda de tono. La búsqueda de tono devuelve un tono óptimodFoptim,como un retardo de tono con una precisión fraccionaria, y un nivel de armonicidadpHoptim, obtenido a partir del valor de autocorrelación en el retardo de tono óptimo. El intervalo depHoptlmestá entre 0 y 1 , 0 significa ninguna armonicidad y 1 armonicidad máxima.
[0147] La ubicación del máximo absoluto en la autocorrelación normalizada es un primer candidatodF1para el retardo de tono óptimo. SidFpastestá cerca dedF1entonces un segundo candidatodF2para el retardo de tono óptimo esdFpast,de lo contrario la ubicación del máximo local cerca dedFpastes el segundo candidatodF2.El máximo local no se busca sidFpastestá cerca dedF1,porque entoncesdF1se volvería a elegir paradF2.Si la diferencia de la autocorrelación normalizada endF1ydF2está por encima de un umbral candidato de tonoτάΡ,entoncesdFoptimse establece endF1 (Ρπίάρι] ~ PHÍdP2] > ταρ=>dFopttm = dF1),de lo contrariodFopttmse establece endF2. τάΡse elige de forma adaptativa en función dedF1, dF2ydFpast,por ejemploτάΡ = 0,01si0,75 ■ dF1 < dFpast < 1,25 ■ dF1de lo contrarioτάΡ = 0,02sidF1<dF2yTdF = 0,03sidF1 > dF2(para un cambio de tono pequeño es más fácil cambiar a la nueva ubicación máxima y si el cambio es grande entonces es más fácil cambiar a un retardo de tono más pequeño que a un retardo de tono más grande).
[0149] En la figura 5 se muestran los lugares donde se ubican las zonas para la búsqueda del tono en relación con la trama y la ventana. Para cada área se ejecuta la búsqueda de tono con la longitud de autocorrelación1PHajustada a la longitud del área. En primer lugar, se calcula el retardo de tono start_pitch_ds y la armonicidad asociada start_norm_corr_ds a la frecuencia de muestreo más baja utilizandodPpast= pitch_start,dFstart = dFmlnydFend = dFmaxen la ejecución de la búsqueda de tono. A continuación, se calcula el retardo de tono avg_pitch_ds y la armonicidad asociada avg_norm_corr_ds a la frecuencia de muestreo inferior mediantedFpast= start_pitch_ds,dFstart=dFmlnydFend = dFmaxen la ejecución de la búsqueda de tono. La armonicidad promedio en la trama actual se establece en max(start_norm_corr_ds,avg_norm_corr_ds). Los retardos de tono mid_pitch_ds y end_pitch_ds y las armonicidades asociadas mid_norm_corr_ds y end_norm_corr_ds se calculan a la frecuencia de muestreo inferior utilizandodPpast= avg_pitch_ds,dFstart= 0,3 avg_pitchjds ydFend= 0,7 avg_pitchjds en la ejecución de la búsqueda de tono. Los retardos de tono pitch_mid y pitch_end y las armonicidades asociadas norm_corr_mid y norm_corr_end se calculan a la frecuencia de muestreo completa utilizandodFpast= pitch_ds,dFstart= pitchjds-A<Fdown>ydFend= pitchjds+A<Fdown>en la ejecución de la búsqueda de tono, dondeAPd0Wnes la relación entre la frecuencia de muestreo máxima y la mínima y pitch_ds = mid_pitch_ds para pitchjmid y pitch_ds = end_pitch_ds para pitch_end.
[0151] Si la armonicidad promedio es inferior a 0,3 o si norm_corr_end es inferior a 0,3 o si norm_corr_mid es inferior a 0,6, se señaliza en el flujo de bits con un solo bit que no hay contorno de tono en la trama actual. Si la armonicidad promedio es superior a 0,3, el contorno de tono se codifica utilizando una codificación absoluta para pitch_end y una codificación diferencial para pitch_mid. Pitch_mid se codifica diferencialmente a (pitch_start+pitch_end)/2 utilizando 3 bits, mediante el código para la diferencia a (pitch_start+pitch_end)/2 entre 8 valores predefinidos, que minimiza la autocorrelación en el área pitchjmid. Si hay un final de armonicidad en una trama, por ejemplo, norm_corr_end < norm_corr_mid/2, entonces se utiliza la extrapolación lineal de pitch_start y pitchjmid para pitch_end, de forma que pitchjmid pueda codificarse (por ejemplo, norrrjcorjmid > 0,6 y nornjcorjend < 0,3).
[0153] Si |pitch_mid-pitch_start| <THPPconsty |norm_corr_mid-norm_corr_start| < 0,5 y las ganancias esperadas del HPF en el área del pitchjstart y pitchjmid son cercanas a 1 y no cambian mucho entonces se señala en el flujo de bits que el HPF debe utilizar parámetros constantes.
[0155] De acuerdo con las realizaciones, el contorno de tono proporcionadcontourun valor de retardo de tonodcontour[i]en cada muestraien la ventana actual y en al menosdFmaxmuestras anteriores. Los retardos de tono del contorno de tono se obtienen por interpolación lineal de pitchjmid y pitchjend de la trama actual, la anterior y la segunda trama anterior.
[0157] Un retardo de tono promediodFose calcula para cada trama como promedio de pitchjstart, pitchjmid y pitchjend.
[0158] De acuerdo con otras realizaciones, también es posible una corrección del retardo de tono medio.
[0159] El búfer de LTP 164 que está disponible tanto en el codificador como en el decodificador, se utiliza para comprobar si el retardo de tono de la señal de entrada es inferior adFmin.La detección de si el retardo de tono de la entrada es inferior adFminse denomina “detección de retardo de tono medio” y si se detecta se dice que “se detecta retardo de tono medio”. Los valores codificados del retardo detono (pitch_mid, pitch_end) se codifican y transmiten en el intervalo dedFminadFmax.A partir de estos parámetros codificados se deriva el contorno de tono tal y como se ha definido anteriormente. Si se detecta un retardo de tono medio, se espera que los valores de retardo de tono codificados tengan un valor cercano a un múltiplo enteronFcorrectlonde los valores de retardo de tono verdaderos (equivalentemente el tono de la señal de entrada está cerca de un múltiplo enteronFcorrectiondel tono codificado). Para ampliar el intervalo de retardo de tono más allá del intervalo codificable, se utilizan valores de retardo de tono corregidos (pitch_mid_corrected, pitch_end_corrected). Los valores de retardo de tono corregidos (pitch_mid_corrected, pitch_end_corrected) pueden ser iguales a los valores de retardo de tono codificados (pitch_mid, pitch_end) si los valores de retardo de tono verdaderos están dentro del intervalo codificable. Tenga en cuenta que los valores de retardo de tono corregidos pueden usarse para obtener el contorno de tono corregido de la misma forma que el contorno de tono se obtiene a partir de los valores de retardo de tono. En otras palabras, esto habilita a ampliar la gama de frecuencias del contorno de tono fuera de la gama de frecuencias para los parámetros de tono codificados, produciendo un contorno de tono corregido.
[0161] La detección de medio tono se ejecuta sólo si el tono se considera constante en la ventana actual ydFo < nFcorrectlon ■ dFmln.El tono se considera constante en la ventana actual si max(|pitch_mid-pitch_start|,|pitch_mid-pitch_end|) <TFconst.En la detección del tono medio, para cadanFmuUipie e {1,2, ... ,nFmaxcorrectton}búsqueda de tono se ejecuta
[0162] utilizando
establece enn-Fmuitípieque maximiza la correlación normalizada devuelta por la búsqueda de tono. Se considera que el medio tono se detecta sinFcorrection > 1y la correlación normalizada devuelta por la búsqueda de tono paranFcorrectiones superior a 0,8 y 0,02 superior a la correlación normalizada devuelta por la búsqueda de tono paranFmultiple = 1.
[0164] Si se detecta un retardo de tono medio, entonces pitch_mid_corrected y pitch_end_corrected toman el valor devuelto por la búsqueda de tono paranFmuUlpie = nFcorrectlon,de lo contrario pitch_mid_corrected y pitch_end_corrected se fijan en pitch_mid y pitch_end respectivamente.
[0166] Un retardo de tono promedio corregidodFcorreaedse calcula como promedio de pitch_start, pitch_mid_corrected y pitch_end_corrected después de corregir los posibles saltos de octava. La corrección del salto de octava encuentra el mínimo entre pitch_start, pitch_mid_corrected y pitch_end_corrected y para cada tono entre pitch_start, pitch_mid_corrected y pitch_end_corrected encuentra el tonolnFmuUipiemás cercano al mínimo (paranFmuUlpie e{1,2 ,..., nFmaxcorrection}).El tonolnFmultiplese utiliza entonces en lugar del valor original en el cálculo del promedio.
[0167] A continuación se puede discutir la extracción de pulsos en el contexto de la figura 6. La figura 6 muestra el extractor de pulso 110 que tiene las entidades 111 hp, 112, 113c, 113p, 114 y 114m. La primera entidad a la entrada es un filtro de paso alto opcional 111 hp que envía la señal al extractor de pulso 112 (extraer pulsos y estadísticas) .
[0169] En la salida se disponen dos entidades 113c y 113p, que interactúan entre sí y reciben como entrada el contorno de tono de la entidad 180. La entidad para elegir los pulsos 113c emite los pulsos P directamente a otra entidad 114 que produce una forma de onda. Esta es la forma de onda de pulso y puede sustraerse mediante el mezclador 114m de la señal PCM para generar la señal residual R (residual después de extraer los pulsos).
[0171] Se extraen y codifican hasta 8 pulsos por trama. En otro ejemplo se puede utilizar otro número máximo de pulsos.NPpLos pulsos de las tramas anteriores se conservan y se utilizan en la extracción y la codificación predictiva (0<NPp< 3). En otro ejemplo se puede utilizar otro límite paraNPp.La opción Obtener contorno de tono 180” proporcionadFo,alternativamente,dFcorreaedse puede utilizar. Se espera quedFosea cero para tramas con baja armonicidad.
[0173] El análisis tiempo-frecuencia mediante la transformada de Fourier en tiempo corto (STFT) se utiliza para encontrar y extraer pulsos (consultar entidad 112). En otro ejemplo pueden usarse otras representaciones de tiempo-frecuencia. La señal PCM<|>puede someterse a un filtro de paso alto (111 hp) y se divide en ventanas utilizando ventanas sinusoidales cuadradas de 2 milisegundos de longitud con un solapamiento del 75% y transformadas mediante la transformada discreta de Fourier (DFT) en el dominio de la frecuencia (FD). Alternativamente, la filtración de paso alto se puede realizar en la FD (en 112s o a la salida de 112s). Por lo tanto, en cada trama de 20 milisegundos hay 40 puntos para cada banda de frecuencia, cada punto consta de una magnitud y una fase. Cada banda de frecuencias tiene un ancho de 500 Hz y sólo consideramos 49 bandas para la frecuencia de muestreoFs = 48kHz, ya que las 47 bandas restantes pueden construirse mediante una extensión simétrica. Por lo tanto, hay 49 puntos en cada instancia temporal de la STFT y40 - 49puntos en el plano de tiempo-frecuencia de una trama. El tamaño del salto de la STFT esHP =0,0005F<S>.
[0174] En la figura 7 se muestra la entidad 112 con más detalle. En 112te se obtiene una envolvente temporal a partir del espectrograma de magnitudes logarítmicas por integración a través del eje de frecuencias, es decir, para cada instancia temporal de la STFT se suman las magnitudes logarítmicas para obtener una muestra de la envolvente temporal.
[0175] La entidad mostrada 112 comprende una entidad Obtener espectrograma 112s que emite el espectrograma de fase y/o de magnitud con base en la señal PCMi. El espectrograma de fase se envía al extractor de pulso 112pe, mientras que el espectrograma de magnitud se procesa posteriormente. El espectrograma de magnitud puede procesarse utilizando un removedor de fondo 112br, un estimador de fondo 112be para estimar la señal de fondo que debe removerse. Adicionalmente o alternativamente, un determinador de la envolvente temporal 112te y un localizador de pulsos 112pl procesan el espectrograma de magnitud. Las entidades 112pl y 112te habilitan para determinar la(s) ubicación(es) de pulso que se usan como entrada para el extractor de pulso 112pe y el estimador de fondo 112be. El localizador de pulsos 112pl puede utilizar una información de contorno de tono. Opcionalmente, algunas entidades, por ejemplo, la entidad 112be y la entidad 112te pueden utilizar la representación logarítmica del espectrograma de magnitud obtenido por la entidad 1121o.
[0176] A continuación se comentará su funcionalidad. La envolvente temporal suavizada es una versión filtrada de paso bajo de la envolvente temporal utilizando un filtro FIR simétrico corto (para un ejemplo 4<o>filtro de orden enFs = 48kHz). Se calcula la autocorrelación normalizada de la envolvente temporal:
[0179]
[0181] dondeeTes la envolvente temporal después de la remoción de la media. El retardo exacto del máximo(Dp )se estima utilizando el polinomio de Lagrange de 3 puntos que forman el pico en la autocorrelación normalizada.
[0182] La distancia promedio esperada del pulso puede estimarse a partir de la autocorrelación normalizada de la envolvente temporal y el retardo de tono promedio de la trama:
[0185]
[0187] donde para las tramas con baja armonicidadDPse establece en 13, lo que corresponde a 6,5 milisegundos.
[0188] Las posiciones de los pulsos son picos locales en la envolvente temporal suavizada con el requisito de que los picos estén por encima de sus alrededores. El entorno se define como la versión filtrada de paso bajo de la envolvente temporal utilizando un filtro de promedio móvil simple con longitud adaptativa; la longitud del filtro se establece en la mitad de la distancia de pulso promedio esperada (DP). La posición exacta del pulso (t<P>.) se estima utilizando el polinomio de Lagrange de 3 puntos que forman el pico de la envolvente temporal suavizada. La posición central del pulso (t<P>.) es la posición exacta redondeada a las instancias temporales de la STFT y por lo tanto la distancia entre las posiciones centrales de los pulsos es un múltiplo de 0,5 milisegundos. Se considera que cada pulso se extiende 2 instancias temporales a la izquierda y 2 a la derecha desde su posición central (temporal). También se puede utilizar otro número de instancias temporales.
[0189] Se encuentran hasta 8 pulsos por cada 20 milisegundos; si se detectan más pulsos, no se tienen en cuenta los pulsos más pequeños. El número de pulsos encontrados se denota comoΝΡχ.Eli°pulso se denota comoPt.La distancia promedio de los pulsos se define como:
[0192]
[0193] Las magnitudes se realzan con base en las posiciones de los pulsos, de modo que la STFT realzada, también llamada espectrograma realzado, consta sólo de los pulsos. El fondo de un pulso se estima como la interpolación lineal del fondo izquierdo y derecho, donde los fondos izquierdo y derecho son la media de la 3<a>a 5<a>instancias temporales alejadas de la posición central temporal. El fondo se estima en el dominio de la magnitud logarítmica en 112be y se elimina restándolo en el dominio de la magnitud lineal en 112br. Las magnitudes en la STFT mejorada están en la escala lineal. La fase no se modifica. Todas las magnitudes en las instancias temporales que no pertenecen a un pulso se ponen a cero.
[0194] La frecuencia de inicio de un pulso es proporcional a la inversa de la distancia promedio del pulso (entre formas de onda de pulso cercanas) en la trama, pero limitada entre 750 Hz y 7250 Hz:
[0197]
[0199] La frecuencia de inicio (fP.) se expresa como índice de una banda STFT.
[0200] El cambio de la frecuencia de inicio en pulsos consecutivos se limita a 500 Hz (una banda de STFT). Las magnitudes de la STFT mejorada por debajo de la frecuencia de inicio se ponen a cero en 112pe.
[0201] La forma de onda de cada pulso se obtiene a partir de la STFT mejorada en 112pe. La forma de onda de pulso es distinta de cero en 4 milisegundos alrededor de su centro temporal y la longitud del pulso es deLWP = 0,004FS(la frecuencia de muestreo de la forma de onda de pulso es igual a la frecuencia de muestreo de la señal de entradaFs).El símboloxP.representa la forma de onda del i<er>pulso.
[0202] Cada pulso está determinado únicamente por la posición centraltP.y la forma de onda de pulsoxP..El extractor de pulso 112pe emite pulsos compuestos por las posiciones centralestP.y las formas de onda de pulsoxP..Los pulsos están alineados con la rejilla STFT. Alternativamente, los pulsos pueden no estar alineados con la rejilla STFT y/o la posición exacta del pulso (tP.) puede determinar el pulso en lugar detP..
[0203] Las características se calculan para cada pulso:
[0204] • porcentaje de la energía local en el pulso -• porcentaje de la energía de la trama en el pulso -• porcentaje de bandas con la energía del pulso por encima de la mitad de la energía local -• correlaciónpP.P.y distanciadP.P.entre cada par de pulsos (entre los pulsos de la trama actual y losNPpúltimos pulsos codificados de las tramas anteriores)
[0205] • retardo de tono en el lugar exacto del pulso -La energía local se calcula a partir de las 11 instancias temporales alrededor del centro del pulso en la STFT original. Todas las energías se calculan sólo por encima de la frecuencia de inicio.
[0206] La distancia entre un par de pulsosdP.P.se obtiene a partir de la localización de la máxima correlación cruzada entre pulsos (*p. *xP^ [m].La correlación cruzada se divide en ventanas con la ventana rectangular de 2 milisegundos de longitud y se normaliza por la norma de los pulsos (también divide en ventanas con la ventana rectangular de 2 milisegundos). La correlación entre pulsos es el máximo de la correlación cruzada normalizada:
[0209]
[0210]
[0213] El valor de(xP. * xP.) [m] está comprendido entre 0 y 1 .
[0214] El error entre el tono y la distancia de pulso se calcula como:
[0217]
[0219] Introduciendo múltiplos de la distancia entre pulsos (k ■ dP P.),se tienen en cuenta los errores en la estimación del tono. Introduciendo múltiplos del retardo de tono (k ■ dP.)resuelve los pulsos perdidos procedentes de imperfecciones en los trenes de pulsos: si un pulso del tren está distorsionado o hay un transitorio no perteneciente al tren de pulsos que inhibe la detección de un pulso perteneciente al tren.
[0220] Probabilidad de que el i<er>y el yer pulsos pertenezcan a un tren de pulsos (consultar entidad 113p):
[0223]
[0225] La probabilidad de un pulso con relación únicamente a los pulsos pasados ya codificados se define como:
[0228]
[0230] La probabilidad (consultar entidad 113p) de un pulso (p<P>.) se halla de forma iterativa:
[0231] 1 . Todas las probabilidades de pulso (p<P¡>,0 ≤ i < ΝΡχ)se fijan en 1
[0232] 2. En el orden de aparición temporal de los pulsos, para cada pulso que aún sea probable (p<P>. > 0):
[0233] a. Se calcula la probabilidad de que el pulso pertenezca a un tren de pulsos de la trama actual:
[0236]
[0238] b. La probabilidad inicial de que sea realmente un pulso es entonces:
[0241]
[0243] c. La probabilidad aumenta para los pulsos con la energía en muchas bandas por encima de la mitad de la energía local:
[0244]
[0246] d. La probabilidad está limitada por la correlación de la envolvente temporal y el porcentaje de la energía local en el pulso:
[0249]
[0251] e. Si la probabilidad del pulso está por debajo de un umbral, entonces su probabilidad se establece en cero y ya no se tiene en cuenta:
[0254]
[0256] 3. El paso 2 se repite mientras haya al menos unapP.puesto a cero en la iteración actual o hasta que todos lospP.se pongan a cero.
[0257] Al final de este procedimiento, hayNPcpulsos verdaderos conpP.igual a uno. Todos y sólo los pulsos verdaderos constituyen la porción de pulso P y se codifican como CP. Entre los verdaderosNPcpulsos hasta tres últimos pulsos se guardan en la memoria para calcularpP. P.ydP. P.en las tramas siguientes. Si hay menos de tres pulsos verdaderos en la trama actual, se conservan algunos pulsos que ya están en la memoria. En total se mantienen hasta tres pulsos en la memoria. Puede haber otro límite para el número de pulsos guardados en la memoria, por ejemplo 2 o 4. Una vez que hay tres pulsos en la memoria, ésta permanece llena y los pulsos más antiguos de la memoria se sustituyen por pulsos recién encontrados. En otras palabras, el número de pulsos pasadosNPpguardados en la memoria se incrementa al principio del procesamiento hastaNPp = 3y se mantiene en 3 después.
[0258] A continuación, con respecto a la figura 8 se comentará la codificación de pulsos (lado del codificador, consultar entidad 132).
[0259] La figura 8 muestra el codificador de pulso 132 que comprende las entidades 132fs, 132c y 132pc en la trayectoria principal, en donde la entidad 132as está dispuesta para determinar y proporcionar la envolvente espectral como entrada a la entidad 132fs configurada para realizar el aplanamiento espectral. Dentro de la trayectoria principal 132fs, 132c y 132pc, los pulsos P se codifican para determinar pulsos codificados aplanados espectralmente. La codificación realizada por la entidad 132pc se lleva a cabo sobre pulsos aplanados espectralmente. Los pulsos codificados CP de las Figuras 2a a 2c consisten en los pulsos codificados aplanados espectral mente y la envolvente espectral del pulso. La codificación de la pluralidad de pulsos se comentará en detalle con respecto a la figura 10.
[0260] Los pulsos se codifican utilizando parámetros:
[0261] • número de pulsos en la tramaNPC
[0262] • posición dentro de la tramatpi
[0263] • frecuencia de inicio de pulsosfp¡
[0264] • envolvente espectral de pulsos
[0265] • ganancia de prediccióngPpy sigPpno es cero:pi pi
[0266] íp
[0267] o índice de la fuente de predicciónpi
[0268] AP
[0269] o desplazamiento de predicciónF<
[0271] • ganancia de innovación® lpí
[0272] • innovación que consta de hasta 4 impulsos, cada pulso codificado por su posición y signo
[0273] Un pulso codificado único está determinado por parámetros:
[0274] • frecuencia de inicio de pulsosfpí,
[0275] envolvente espectral de pulsos
[0276] • ganancia de prediccióngPoy sigPono es cero:pi pi
[0277] o índice de la fuente de predicciónípn=
[0278] Δ<Ρ>„
[0279] o desplazamiento de predicciónF‘
[0280] 3iP.
[0281] • ganancia de innovación<1>
[0282] • innovación que consta de hasta 4 impulsos, cada pulso codificado por su posición y signo
[0283] A partir de los parámetros que determinan el pulso codificado único se puede construir una forma de onda que presente el pulso codificado único. Entonces también podemos decir que la forma de onda de pulso codificado está determinada por los parámetros del pulso codificado único.
[0284] El número de pulsos está codificado por Huffman.
[0285] La posición del primer pulsotPose codifica de forma absoluta utilizando la codificación de Huffman. Para los pulsos siguientes los deltas de posiciónAP.= tP.-tPi 1se codifican por Huffman. Existen diferentes códigos de Huffman en función del número de pulsos de la trama y en función de la posición del primer pulso.
[0286] La frecuencia de inicio del primer pulsofPose codifica de forma absoluta utilizando la codificación de Huffman. Las frecuencias de inicio de los pulsos siguientes se codifican diferencialmente. Si hay una diferencia cero, entonces todas las diferencias siguientes son también cero, por lo tanto se codifica el número de diferencias distintas de cero. Todas las diferencias tienen el mismo signo, por lo tanto el signo de las diferencias se puede codificar con un solo bit por trama. En la mayoría de los casos la diferencia absoluta es como máximo uno, por lo tanto se usa un solo bit para la codificación si la diferencia absoluta máxima es uno o mayor. Al final, sólo si la diferencia absoluta máxima es mayor que uno, es necesario codificar todas las diferencias absolutas distintas de cero y se codifican con un solo bit.
[0287] El aplanamiento espectral, por ejemplo realizado utilizando STFT (consultar la entidad 132fs de la figura 8) se ilustra en las Figuras 9a y 9b, donde la figura 9a muestra la forma de onda de pulso original en comparación con la versión aplanada de la figura 9b. Observar que el aplanamiento espectral se puede realizar alternativamente mediante un filtro, por ejemplo en el dominio del tiempo.
[0288] Todos los pulsos de la trama pueden utilizar el mismo envolvente espectral (consultar entidad 132as) que consiste, por ejemplo, en ocho bandas. Las frecuencias límite de las bandas son: 1 kHz, 1 ,5 kHz, 2,5 kHz, 3,5 kHz, 4,5 kHz, 6 kHz, 8,5 kHz, 11 ,5 kHz, 16 kHz. El contenido espectral por encima de 16 kHz no se codifica explícitamente. En otro ejemplo pueden usarse otros límites de banda.
[0289] La envolvente espectral en cada instancia temporal de un pulso se obtiene sumando las magnitudes dentro de las bandas de la envolvente, el pulso consta de 5 instancias temporales. Las envolventes se promedian en todos los pulsos de la trama. No se tienen en cuenta los puntos entre los pulsos en el plano tiempo-frecuencia.
[0290] Los valores se comprimen utilizando la raíz cuarta y las envolventes se cuantifican vectorial mente. El cuantificador vectorial tiene 2 etapas y la 2<a>etapa se divide en 2 mitades. Existen diferentes libros de códigos para tramas condFo =OydFo≠ Oy para los valores deNPcyfP..Los distintos libros de códigos requieren un número diferente de bits. La envolvente cuantificada puede suavizarse mediante interpolación lineal. Los espectrogramas de los pulsos se aplanan utilizando la envolvente suavizada (consultar entidad 132fs). El aplanamiento se consigue dividiendo las magnitudes con la envolvente (recibida de la entidad 132as), lo que equivale a una sustracción en el dominio de magnitud logarítmica. Los valores de fase no se modifican. Alternativamente, un procesador de filtro puede estar configurado para aplanar espectralmente magnitudes o la STFT de pulso mediante la filtración de la forma de onda de pulso en el dominio del tiempo.
[0291] La forma de onda de pulso aplanado espectral menteyP.se obtiene a partir de la STFT mediante la DFT inversa, división en ventanas y solapamiento-y-adición en 132c.
[0292] La figura 10 muestra una entidad 132pc para codificar una única forma de onda de pulso aplanada espectralmente de la pluralidad de formas de onda de pulso aplanadas espectral mente. Cada forma de onda de pulso única codificada se emite como señal de pulso codificada. Desde otro punto de vista, la entidad 132pc para codificar pulsos únicos de
la figura 10 es que la misma que la entidad 132pc configurada para codificar formas de onda de pulso como se muestra en la figura 8, pero utilizada varias veces para codificar las diversas formas de onda de pulso.
[0294] La entidad 132pc de la figura 10 comprende un codificador de pulso 132spc, un constructor para la forma de onda de pulso aplanada 132cpw y la memoria 132m dispuestos como una especie de bucle de realimentación. El constructor 132cpw tiene la misma funcionalidad que el 220cpw y la memoria 132m la misma funcionalidad que la 229 de la figura 14. Cada pulso único/actual es codificado por la entidad 132spc con base en la forma de onda de pulso aplanada teniendo en cuenta los pulsos pasados. La información sobre los pulsos pasados la proporciona la memoria 132m. Observe que los pulsos pasados codificados por 132pc se alimentan a través del constructor de la forma de onda de pulso 132cpw y la memoria 132m. Esto habilita la predicción. El resultado mediante el uso de tal planteamiento de predicción se ilustra en la figura 11. Aquí la figura 11a, indica el original aplanado junto con la predicción y la señal residual de predicción resultante en la figura 11 b.
[0296] De acuerdo con las realizaciones, se encuentra el pulso cuantificado previamente más similar entreNPplos pulsos de las tramas anteriores y los pulsos ya cuantificados de la trama actual. La correlaciónpPi}P¡,definida anteriormente, se utiliza para elegir el pulso más similar. Si las diferencias en la correlación son inferiores a 0,05, se elige el pulso más parecido. El pulso anterior más similar es la fuente de la predicción z<P>. y su índiceiPp., relativo al pulso codificado actualmente, se utiliza en la codificación del pulso. Hasta cuatro índices relativos de fuente de predicción i<Pp>se agrupan y se codifican por Huffman. El agrupamiento y los códigos de Huffman dependen deNPry de sidF = 0odFo≠0.
[0298] La desviación para la correlación máxima es la desviación de la predicción del pulsoAPB .Se codifica de formapi
[0299] absoluta, diferencial o relativa a un valor estimado, donde la estimación se calcula a partir del retardo de tono en el lugar exacto del pulsodP..Se calcula el número de bits necesarios para cada tipo de codificación y se elige la que tenga el mínimo de bits.
[0301] La gananciaά„que maximiza la SNR se usa para escalar la predicción z<P>.. La ganancia de predicción se cuantificapi 1
[0302] de forma no uniforme con 3 a 4 bits. Si la energía del residuo de predicción no es al menos un 5% menor que la energía del pulso, la predicción no se utiliza yg„se pone a cero.
[0304] El residuo de predicción se cuantifica utilizando hasta cuatro impulsos. En otro ejemplo se puede utilizar otro número máximo de impulsos. El residuo cuantificado formado por impulsos se denomina innovación z<P¡>. Estos ilustra por medio de la figura 12. Para ahorrar bits, el número de impulsos se reduce en uno por cada pulso predicho a partir de un pulso de esta trama. En otras palabras: si la ganancia de predicción es cero o si la fuente de la predicción es un pulso de tramas anteriores, se cuantifican cuatro impulsos; en caso contrario, el número de impulsos disminuye con respecto a la fuente de predicción.
[0306] La figura 12 muestra una ruta de proceso para usarse como bloque de proceso 132spc de la figura 10. La ruta de proceso habilita para determinar los pulsos codificados y puede comprender las tres entidades 132bp, 132qi, 132ce.
[0307] La primera entidad 132bp para encontrar la mejor predicción utiliza pulso(s) pasado(s) y la forma de onda de pulso para determinar el iSOURCE, el desplazamiento, GP’ y el residuo de predicción. La entidad 132gi de cuantificación de impulsos cuantifica el residuo de predicción y emite Gl’ y los impulsos. La entidad 132ce está configurada para calcular y aplicar un factor de corrección. Toda esta información junto con la forma de onda de pulso son recibidas por la entidad 132ce para corregir la energía, con el fin de emitir el impulso codificado. El algoritmo siguiente se puede utilizar de acuerdo con las realizaciones:
[0309] Para encontrar y codificar los impulsos se utiliza el siguiente algoritmo:
[0311] 1 . La forma de onda de pulso absoluta\x\P.se construye utilizando la rectificación de onda completa:
[0314]
[0316] 2. Vector con el número de impulsos en cada localización |*J<P¡>se inicializa con ceros:
[0319]
[0321] 3. La ubicación del máximo en\x\P.se encuentra:
[0322]
[0324] 4.Vector con el número de impulsos se incrementa para uno en el lugar del máximo encontrado[x\Pi[ñx]:
[0327]
[0329] 5. El máximo en\x\P.se reduce:
[0331]
[0334] 6. Las etapas 3-5 se repiten hasta encontrar el número de impulsos necesario, donde el número de pulsos es igual a ∑L*J/>¡[n]
[0335] Observarque los impulsos pueden tener la misma ubicación. Las ubicaciones de los pulsos se ordenan porsu distancia al centro del pulso. La ubicación del primer impulso está absolutamente codificada. Las ubicaciones de los impulsos siguientes se codifican diferencialmente con probabilidades que dependen de la posición del impulso anterior. Para la localización del impulso se utiliza la codificación de Huffman. También se codifica el signo de cada impulso. Si varios impulsos comparten la misma ubicación, el signo se codifica una sola vez.
[0336] Los 4 impulsos encontrados y escalados 15i resultantes de la señal residual 15r se ilustran en la figura 13. En detalle, los impulsos representados por las líneasQ(glp)zP.pueden escalarse en consecuencia, por ejemplo, el impulso /-1 multiplicado por la Gananciaá, .
[0337] La gananciaá,que maximiza la SNR se utiliza para escalar la innovaciónzP.que consta de los impulsos. La ganancia de innovación se cuantifica de forma no uniforme con 2 a 4 bits, en función del número de pulsosNPc.
[0338] La primera estimación para la cuantificación de la forma de onda de pulso aplanadozP.es entonces:
[0341]
[0343] dondeQ( ) denota cuantificación.
[0344] Dado que las ganancias se encuentran maximizando la SNR, la energía dezP.puede ser mucho menor que la energía del objetivo originalyP..Para compensar la reducción de energía se calcula un factor de correccióncgse calcula:
[0347]
[0350] Las ganancias finales son entonces:
[0353]
[0355] La memoria para la predicción se actualiza utilizando la forma de onda cuantificada del pulso aplanadozP.\
[0358]
[0360] Al final de la codificación deNPp < 3las formas de onda de pulso aplanadas y cuantificadas se guardan en la memoria para su predicción en las tramas siguientes.
[0361] A continuación, haciendo referencia a la figura 14 se comentará el planteamiento para reconstruir los pulsos.
[0363] La figura 14 muestra una entidad 220 para reconstruir una única forma de onda de pulso. El planteamiento que se expone a continuación para reconstruir una forma de onda de pulso único se ejecuta varias veces para múltiples formas de onda de pulso. Las formas de onda de impulsos múltiples son utilizadas por la entidad 22’ de la figura 15 para reconstruir una forma de onda que incluya los impulsos múltiples. Desde otro punto de vista, la entidad 220 procesa la señal que consta de una pluralidad de pulsos codificados y una pluralidad de envolventes espectrales de pulso y, para cada pulso codificado y una envolvente espectral de pulso asociada, emite una única forma de onda de pulso reconstruida, de modo que a la salida de la entidad 220 hay una señal que consta de una pluralidad de las formas de onda de pulso reconstruidas.
[0365] La entidad 220 comprende una pluralidad de subentidades, por ejemplo, la entidad 220cpw para construir la forma de onda de pulso aplanada espectralmente, una entidad 224 para generar un espectrograma de pulso (espectrograma de fase y magnitud) de la forma de onda de pulso aplanada espectralmente y una entidad 226 para conformar espectralmente el espectrograma de magnitud de pulso. Esta entidad 226 utiliza un espectrograma de magnitud así como una envolvente espectral de pulso. La salida de la entidad 226 se alimenta a un convertidor para convertir el espectrograma de pulsos en una forma de onda que está marcada por el numeral de referencia 228. Esta entidad 228 recibe el espectrograma de fase así como el espectrograma de magnitud de pulso conformado espectralmente, a fin de reconstruir la forma de onda de pulso. Cabe señalar que la entidad 220cpw (configurada para construir una forma de onda de pulso aplanada espectralmente) recibe en su entrada una señal que describe un pulso codificado. El constructor 220cpw comprende una especie de bucle de realimentación que incluye una memoria de actualización 229. Esto habilita que la forma de onda de pulso se construya teniendo en cuenta pulsos anteriores. Aquí, las formas de onda de pulso construidas previamente se retroalimentan de modo que los pulsos pasados puedan ser utilizados por la entidad 220cpw para construir la siguiente forma de onda de pulso. A continuación, se comentará la funcionalidad de este reconstructor de pulsos 220. Debe tenerse en cuenta que en el lado del decodificador sólo existen las formas de onda de pulso aplanadas cuantificadas (también denominadas formas de onda de pulso aplanadas decodificadas o formas de onda de pulso aplanadas codificadas) y, dado que no existen formas de onda de pulso originales en el lado del decodificador, utilizamos las formas de onda de pulso aplanadas para denominar las formas de onda de pulso aplanadas cuantificadas en el lado del decodificador y las formas de onda de pulso para denominar las formas de onda de pulso cuantificadas (también denominadas formas de onda de pulso decodificadas o formas de onda de pulso codificadas o formas de onda de pulso decodificadas).
[0367] Para reconstruir los pulsos en el lado del decodificador 220, se construyen las formas de onda de pulso aplanadas cuantificadas (consulte la entidad 220cpw) después de decodificar las ganancias (g„Byg,), los impulsos/innovación, la fuente de predicción(iPp) y desplazamiento(ΔΡρ). La memoria 229 para la predicción se actualiza (del mismo modo que en el codificador de la entidad 132m). A continuación se obtiene la STFT (consultar entidad 224) para cada forma de onda de pulso. Por ejemplo, se utilizan las mismas ventanas sinusoidales cuadradas de 2 milisegundos de longitud con un 75% de solapamientos que en la extracción del pulso. Las magnitudes de la STFT se remodelan utilizando la envolvente espectral decodificada y suavizada y se reducen a cero por debajo de la frecuencia de inicio del pulsofP..
[0368] Puede usarse una simple multiplicación de las magnitudes con la envolvente para conformar la STFT (consultar entidad 226). Las fases no se modifican. La forma de onda reconstruida del pulso se obtiene a partir de la STFT mediante la DFT inversa, división en ventanas y solapamiento-y-adición (consultar entidad 228). Alternativamente, la envolvente puede conformarse mediante un filtro FIR o de otro tipo, evitando la STFT.
[0370] La figura 15 muestra la entidad 22’ posterior a la entidad 228 que recibe una pluralidad de formas de onda reconstruidas de los pulsos así como las posiciones de los pulsos para construir la forma de ondayP(consultar las Figuras 2a, 2c). Esta entidad 22’ se utiliza, por ejemplo, como la última entidad dentro del constructor de forma de onda 22 de las Figuras 2a o 2c.
[0372] Las formas de onda de pulso reconstruidos se concatenan con base en las posiciones decodificadastP.,insertando ceros entre los pulsos en la entidad 22’ de la figura 15. La forma de onda concatenada se añade a la señal decodificada (consultar 23 en la figura 2a o la figura 2c o 114m en la figura 6). Del mismo modo, las formas de onda de pulso originalesxP.se concatenan (consultar 114 en la figura 6) y se restan de la entrada del códec basado en MDCT (consultar la figura 6).
[0374] Las formas de onda de pulso reconstruidos se concatenan con base en las posiciones decodificadastP.,insertando ceros entre los pulsos. La forma de onda concatenada se añade a la señal decodificada. Del mismo modo, las formas de onda de pulso originalesxP.se concatenan y se restan de la entrada del códec basado en MDCT.
[0376] La forma de onda de pulso reconstruido no son representaciones perfectas de los pulsos originales. Remover la forma de onda de pulso reconstruida de la entrada dejaría por lo tanto algunas de las partes transitorias de la señal. Como las señales transitorias no se pueden presentar bien con un códec MDCT, el ruido extendido por toda la trama estaría
presente y se reduciría la ventaja de codificar por separado los pulsos. Por este motivo, los pulsos originales se eliminan de la entrada.
[0378] De acuerdo con las realizaciones, la bandera de tonalidad HF ΦΗ puede definirse como sigue:
[0380] La correlación normalizadapHFse calcula enyMHFentre las muestras de la ventana actual y una versión retardada condFo(odFcorreaed)de retardo, dondeyMHFes una versión filtrada de paso alto de la señal residual de pulsoyM.A modo de ejemplo, se puede utilizar un filtro de paso alto con una frecuencia de cruce en torno a los 6 kHz.
[0382] Para cada bin de frecuencia MDCT por encima de una frecuencia especificada, se determina, como en 5.3.3.2.5 de [18], si el bin de frecuencia es tonal o similar al ruido. El número total de bin de frecuencia tonalnHFTonalCurrse calcula en la trama actual y adicionalmente se calcula el número total suavizado de frecuencias tonales comonHFTonal = 0,5 ■n HFTonal ^HFT onalCurr ·
[0384] La bandera de tonalidad HFφΗse pone a 1 si el TNS está inactivo y el contorno de tono está presente y hay tonalidad en las frecuencias altas, donde la tonalidad existe en las frecuencias altas sipHF > 0onHFTonal > 1.
[0386] Con respecto a la figura 16, se analiza el planteamiento iBPC. El proceso de obtención del tamaño óptimo del paso de cuantificacióngQose explicará ahora. El proceso puede ser parte integrante del bloque iBPC. Observar que iBPC de la figura 16 proporcionagQocon base enXMR.En otro aparatoXMRygQose puede utilizar como entrada (para más detalles consulte la figura 3).
[0388] La figura 16 muestra un diagrama de flujo de un planteamiento para estimar un tamaño de paso. El proceso comienza, con i = 0 en donde a continuación, por ejemplo, se realizan los cuatro pasos de cuantificación, reducción a cero de banda adaptativa, determinación conjunta de los parámetros de banda y espectro y determinación de si el espectro es codificable. Estos pasos están marcados por los números de referencia 301 a 304. En caso de que el espectro sea codificable, se reduce el tamaño del paso (consultar el paso 307) y se realiza una siguiente iteración +i consulte el número de referencia 308. Esto se realiza siempre que i no sea igual a la iteración máxima (consultar el paso de decisión 309). En caso de que se alcance la iteración máxima, se emite el tamaño del paso. En caso de que no se alcance la iteración máxima, se realiza la iteración siguiente.
[0390] En caso de que el espectro no sea codificable, se aplica el proceso que tiene las etapas 311 y 312 junto con la etapa de verificación (espectro ahora codificable) 313. A continuación, se aumenta el tamaño del paso (consultar 340) antes de iniciar la siguiente iteración (consultar el paso 308).
[0392] Un espectroXMR,cuya envolvente espectral está perceptualmente aplanada, se cuantifica escalarmente utilizando un único tamaño de paso de cuantificacióngQen todo el ancho de banda codificado y se codifica con entropía, por ejemplo, con un codificador aritmético basado en el contexto, produciendo un codificado spect. El ancho de banda del espectro codificado se divide en sub-bandas de ancho crecienteLB..
[0394] El tamaño óptimo del paso de cuantificacióngQo,también llamado ganancia global, se encuentra de forma iterativa, explicado anteriormente en la explicación de la figura 16.
[0396] En cada iteración el espectroXMRse cuantifica en el bloque Quantize para producirXQ1.En el bloque “Puesta a cero de banda adaptativa” se calcula una relación de la energía de las líneas cuantificadas en cero y la energía original en las sub-bandas y si la relación de energía está por encima de un umbral adaptativo T<S¡>, toda la sub-banda enXQise establece en cero. Los umbralesτΒ.se calculan con base en la bandera de tonalidadφΗy las banderasφΝβ., donde las banderas¿Naindican si una sub-banda se puso a cero en la trama anterior:Bi
[0399]
[0402] Para cada sub-banda puesta a cero una banderaφΝαse pone a uno. Al final del procesamiento de la trama actual,Bi
[0403] φΝαse copian enφΝα .Alternativamente, podría haber más de una bandera de tonalidad y un mapeo desde la pluralidad de las banderas de tonalidad a la tonalidad de cada sub-banda, produciendo un valor de tonalidad para cada sub-bandaφΗα .Los valores deτΒ.pueden tener, por ejemplo, un valor de entre un conjunto de valores {0,25, 0,5, 0,75}. Alternativamente, se puede utilizar otra decisión para decidir con base en la energía de las líneas cuantificadas cero y la energía original y en los contenidosXQiy ½ de si poner toda la sub-bandaienXQia cero.
[0404] La gama de frecuencias donde se utiliza la reducción a cero adaptativa de banda puede restringirse por encima de
una determinada frecuenciafABZStart·P<or>ejemplo 7000 Hz, ampliando la reducción a cero adaptativa de la banda siempre que se reduzca a cero la sub-banda más baja, hasta una determinada frecuenciafABZMm<P°<r>ejemplo 700 Hz.
[0406] Los niveles individuales de llenado cero (individuales zfl) de las sub-bandas dexQ1por encima defEZ,dondefEZes por ejemplo 3000 Hz que son completamente cero se codifica explícitamente y adicionalmente un nivel de llenado cero (zfl<smaN>) para todas las sub-bandas cero por debajo defEZy todas las sub-bandas cero por encima defEZcuantificadas a cero se codifica. Una sub-banda deXQ1puede ser completamente cero debido a la cuantificación en el bloque Cuantificar aunque no esté explícitamente puesta a cero por la puesta a cero de banda adaptativa. El número de bits necesario para la codificación de entropía de los niveles de relleno de cero (zfl compuesto por el individuo zfl y el zfl<smaN>) y las líneas espectrales enXQ1se calcula. Adicionalmente se halla el número de líneas espectralesNQque pueden codificarse explícitamente con el presupuesto de bits disponible.NQes una parte integral de spect codificado y se utiliza en el decodificador para averiguar cuántos bits se utilizan para codificar las líneas espectrales; se pueden utilizar otros métodos para averiguar el número de bits para codificar las líneas espectrales, por ejemplo utilizando el carácter de EOF especial. Mientras no haya suficientes bits para codificar todas las líneas distintas de cero, las líneas deXQ1por encima deNQse ponen a cero y se vuelve a calcular el número de bits necesario.
[0408] Para el cálculo de los bits necesarios para codificar las líneas espectrales, se calculan los bits necesarios para codificar las líneas empezando por abajo. Este cálculo sólo se necesita una vez, ya que el recálculo de los bits necesarios para codificar las líneas espectrales se hace eficiente almacenando el número de bits necesarios para codificarnlíneas para cadan < NQ.
[0410] En cada iteración, si el número de bits necesarios supera los bits disponibles, la ganancia global se disminuye (307), de lo contrario se aumenta (314). En cada iteración se adapta la velocidad de cambio de la ganancia global. Para modificar iterativamente la ganancia global puede utilizarse la misma modificación que en el bucle de distorsión de velocidad del EVS. Al final del proceso de iteración, el tamaño óptimo del paso de cuantificacióngQoes igual agQque produce una codificación óptima del espectro, por ejemplo utilizando los criterios del EVS.
[0412] En lugar de una codificación real, se puede utilizar una estimación del número máximo de bits necesarios para la codificación. La salida del proceso iterativo es el tamaño óptimo del paso de cuantificacióngQo\la salida también puede contener el spect codificado y los niveles de relleno de ruido codificados (zfl), ya que suelen estar ya disponibles, para evitar el procesamiento repetitivo en su obtención de nuevo.
[0414] A continuación, se tratará en detalle el llenado a cero.
[0416] De acuerdo con las realizaciones, ahora se explicará el bloque “Llenado cero”, comenzando con un ejemplo de una forma de elegir el espectro de origen.
[0418] Para crear el llenado cero, los siguientes parámetros se encuentran de forma adaptativa:
[0420] • una distancia de copia larga óptimadc
[0421] • una distancia de copia mínimad'c
[0422] • un inicio de fuente de copia mínima se
[0423] • un desplazamiento de distancia de copiaúc
[0425] La distancia de copia óptimadcdetermina la distancia óptima si el espectro de origen es la parte inferior ya obtenida deXCT.El valor dedcse sitúa entre el mínimod¿,es decir, para un ejemplo ajustado a un índice correspondiente a 5600 Hz, y el máximodF,es decir, para un ejemplo ajustado a un índice correspondiente a 6225 Hz. Pueden usarse otros valores con una restricciónd¿ < d¿.
[0427] La distancia entre armónicos Δ* se calcula a partir de un retardo de tono promediodFo,donde el retardo de tono promediodFose decodifica a partir del flujo de bits o se deduce a partir de parámetros del flujo de bits (por ejemplo pitch contour). Alternativamente Δ* se puede obtener analizandoXDTo una derivada de ella (por ejemplo, a partir de una señal en el dominio del tiempo obtenida medianteXDT).La distancia entre armónicosΔχno es necesariamente un número entero. SidFo = 0entonces Δ* se pone a cero, donde cero es una forma de señalar que no hay un retardo de tono significativo.
[0429] El valor dedCpoes el múltiplo mínimo de la distancia armónicaAXpomayor que la distancia mínima óptima de copiad¿:
[0430]
[0432] Si Δν es cero, entoncesdr„no se utiliza.
[0433] La línea inicial del espectro TNS más el orden TNS se denota comoiT,que puede ser, por ejemplo, un índice correspondiente a 1000 Hz.
[0434] Si el TNS está inactivo en la tramaiCsse establece en
. Si el TNS está activoiCsse establece eniT,adicionalmente se reduce en
si los HF son tonales (por ejemplo, siφΗes uno).
[0435] El espectro de magnitudZcse estima a partir de la decodificación spect¾<T>:
[0438]
[0440] Se calcula una correlación normalizada del espectro de magnitudes estimado:
[0443]
[0445] La longitud de la correlaciónLcse establece en el valor máximo permitido por el espectro disponible, opcionalmente limitado a algún valor (por ejemplo a la longitud equivalente a 5000 Hz).
[0446] Básicamente buscamos n que maximice la correlación entre la fuente de copiaZc[iCs + m]y el destinoZc[iCs + nm], donde0 < m < Lc.
[0447] ElegimosdCentre n(d¿ < n < d¿)dondepctiene el primer pico y está por encima de la media de p<c>, es decir:
[0448] V P<ara cada m>≤dcpno se cumple quepc[m - 1] ≤ pc[m] ≤
[0449] pc[m 1],En otra implementación podemos elegirdcde modo que sea un máximo absoluto en el intervalo ded¿ad¿.Cualquier otro valor en el intervalo ded¿ad¿puede elegirse paradCp,donde se espera una distancia de copia larga óptima.
[0450] Si el TNS está activo podemos elegirdc = dCp.
[0452] Si el TNS está inactivo
donde p<c>es la correlación normalizada ydcla distancia óptima en la trama anterior. La bandera<pTcindica si hubo cambio de tonalidad en la trama anterior. La funciónTcdevuelve cualquiera dedCp, dCpgodc.La decisión de qué valor devolver enTcse basa principalmente en los valores p<c>[d<Cp>], p<c>[d<CF>J YPc[dc\·Si la bandera<pTces verdadero y
<son>válidos entonces p<c>[á<c>] se ignora. Los valores de
se utilizan en casos excepcionales.
[0453] En un ejemploTcpodría definirse con las siguientes decisiones:
[0454] •dCpse devuelve si p<c>[d<Cp>] es mayor que p<c>[dc<Fo>] para al menosrdcpoy mayor que p<c>[á<c>] para al menosτάο,dondeTdcF0ΥTdcson
umbrales adaptativos proporcionales a los |dCp - dCpJ y |dCp -á<c>| respectivamente. Adicionalmente puede solicitarse que p<c>[d<Cp>] esté por encima de algún umbral absoluto, por ejemplo 0,5
[0456] · de lo contrariodCpose devuelve si p<c>[dc<F>J es mayor que p<c>[á<c>] para al menos un umbral, por ejemplo 0,2
[0458] • de lo contrariodCpse devuelve si<pTcestá fijado y p<c>[d<Cp>] >0
[0459] • de lo contrariodcse devuelve siφΤοestá ajustado y el valor de d<c>es válido, es decir, si hay un retardo de tono significativo
[0461] · de lo contrariodCFgse devuelve sipc[dc]es pequeño, por ejemplo inferior a 0,1 , y el valor dedCpges válido, es decir, si hay un retardo de tono significativo, y el cambio de retardo de tono respecto a la trama anterior es pequeño
[0463] • de lo contrariodcse devuelve
[0465] La bandera<pTcse pone a verdadero si el TNS está activo o sipc[dc] < TTCy la tonalidad es baja, siendo la tonalidad baja por ejemplo siφΗes falso o sidFges cero.TTCes un valor menor que 1 , por ejemplo0,7.El valor establecido en<pTcse utiliza en la trama siguiente.
[0467] El cambio porcentual dedFgentre la trama anterior y la trama actualA¿también se calcula.
[0469] El desplazamiento de la distancia de copiaAcse establece en Δ* a menos que la distancia de copia óptimadcsea equivalente adcy <τΑρ (T&Fsiendo un umbral predefinido), en cuyo casoAcse establece en el mismo valor que en la trama anterior, haciéndolo constante a lo largo de las tramas consecutivas.A¿es una medida de cambio (por ejemplo, un cambio porcentual) dedFgentre la trama anterior y la trama actual. T<4F>podría fijarse, por ejemplo, en 0,1 siA¿es el cambio perceptual dedFg.Si el TNS está activo en la tramaAcno se utiliza.
[0471] El inicio mínimo de la fuente de copiascpuede fijarse, por ejemplo, eniTsi el TNS está activo, opcionalmente inferior en |2,5Δ* | si los HF son tonales, o por ejemplo fijarse en[2,5AC\si el TNS no está activo en la trama actual.
[0473] La distancia de copia mínimadcse fija, por ejemplo, en [A<c>j si el TNS está inactivo. Si el TNS está activo,dcse fija,
[0474] por ejemplo, enscsi los AF no son tonales, odcse ajusta para un ejemplo a
si los AF son tonales.
[0476] Utilizando por ejemploXN[-1] =∑„2n|¾[n]| como condición inicial, un espectro de ruido aleatorioXNse construye comoXN[n] =short (31821XN[n - 1] 13849) donde la función short trunca el resultado a 16 bits. Puede utilizarse cualquier otro generador de ruido aleatorio y condición inicial. El espectro de ruido aleatorioxNse pone entonces a cero en el lugar de los valores distintos de cero enXDy opcionalmente las porciones enxNentre los lugares puestos a cero se someten a una ventana, con el fin de reducir el ruido aleatorio cerca de los lugares de los valores distintos de cero enXD.
[0478] Para cada sub-bandaBtde longitudLB.comenzando enjB.enXCTse encuentra un espectro de origen para ¾<B>. se encuentra. La división en sub-bandas puede ser la misma que la utilizada para codificar el zfl, pero también puede ser diferente, superior o inferior.
[0480] Por ejemplo, si el TNS no está activo y los HFs no son tonales, el espectro de ruido aleatorioXNse utiliza como espectro de origen para todas las sub-bandas. En otro ejemploXNse utiliza como espectro de origen para las subbandas donde otras fuentes están vacías o para algunas sub-bandas que empiezan por debajo del destino mínimo de copiado:sc +min (á<c>,L<fl¡>).
[0482] En otro ejemplo, si el TNS no está activo y los HF son tonales, un espectro previstoXNPpuede utilizarse como fuente para las sub-bandas que comienzan por debajo desc + dcy en las queEBestá al menos 12 dB por encima deEBen las sub-bandas vecinas, donde el espectro predicho se obtiene a partir del espectro descodificado anterior o de una señal obtenida a partir del espectro descodificado anterior (por ejemplo, a partir de la señal TD descodificada).
[0483] Para los casos no incluidos en los ejemplos anteriores, la distanciadcpuede encontrarse de forma queXCT[SC + m](0 ≤ m <L<fl>.) o una mezcla deXCT[sc + m]yXN[sc + dc + m]puede utilizarse como espectro de origen para ¾<B>. que comienza enjB.dondesc = jB.-dc.En un ejemplo, si el TNS está activo, pero comienza sólo en una frecuencia más alta (por ejemplo a 4500 Hz) y los HF no son tonales, la mezcla de losXCT[sc + m]yXN[sc + dc + m]puede utilizarse como espectro de origen sisc + dc < jB. < sc + dc\en otro ejemplo sóloXCT[sc + m]o puede utilizarse como fuente un espectro formado por ceros. SijB. ≥ sc + dcentoncesdcpuede fijarse endc.Si el TNS está activo entonces un número entero positivonpara quejB.- ^ > ¾ y cí<c>puede fijarse en ^ por ejemplo al menor de tales
enterosn.Si el TNS no está activo, otro entero positivo n para quejB.-dc+ n<■>Ac≥ sc
ydcse fije endc-n ■A<c>, por ejemplo al menor de tales enteros n.
[0484] En otro ejemplo, las sub-bandas más bajas
enXshasta una frecuencia inicialfZFStartpueden establecerse en 0, lo que significa que en las sub-bandas más bajasXCTpuede ser una copia deXDT.
[0485] Un ejemplo de ponderación del espectro de origen con base enEBen el bloque “Llenado cero”.
[0486] En un ejemplo de suavizado delEB, EB.puede obtenerse a partir del zfl, cada unaEB.correspondiente a una sub-, Εβ . ^ ΛΎΕβ . 7Εβ .~\~Εβ. .
[0487] bandaienEB. EB.se suavizan a continuación:EB1. =— ^ —l-yEB2i =—<1>.
[0488] El factor de escalaac.se calcula para cada sub-banda
en función del espectro de origen:
[0491]
[0493] Adicionalmente la escala se limita con el factorbr.calculado como
[0496]
[0498] La banda del espectro de origenxSa [m] (0 < m < LB.)se divide en dos mitades y cada mitad se escala, la primeraBi 1
[0499] mitad congCl i = bc. ■ ac. ■ EBl iy la segunda congC2i = bc. ■ ac. ■£<¾¡>.
[0500] La banda del espectro de origen a escalaxSa, donde la banda del espectro de origen escalada esXGa, se añade aBi Bi XDT\jBi + m]para obtener X<CT>[y<s>.m\.
[0501] A continuación se ofrece un ejemplo de cuantificación de las energías de las líneas cuantificadas cero (como parte del iBPC).
[0502] se obtiene a partir deXMRponiendo a cero las líneas cuantificadas no nulas. Para un ejemplo del mismo modo que enXNlos valores situados en el lugar de las líneas cuantificadas distintas de cero enXQse ponen a cero y las porciones de cero entre las líneas cuantificadas distintas de cero se acotan enXMR,produciendoXQZ.
[0503] La energía por bandaipara las líneas cero (Ez.) se calculan a partir deXQZ
[0506]
[0508] LosEz.están para un ejemplo cuantificados utilizando el tamaño de paso- 1y limitados
Las separadasEz.se codifican como individuales zfl sólo para las sub-bandas superiores afEZ,dondefEZes por ejemplo 3000 Hz, que están completamente cuantificadas a cero. Adicionalmente un nivel de energíaEZsse calcula como la media de todas lasEz.de las sub-bandas cero por debajo defEZy de las sub-bandas cero por encima defEZdondeEz.está cuantificada a cero, sub-banda cero significa que la sub-banda completa está cuantificada a cero. El nivel bajoEZsse cuantifica con el tamaño de pasoJy se limita a
La energía de las líneas cero individuales en las sub-bandas no cero se estima y no se codifica explícitamente.
[0509] Predicción a largo plazo (LTP)
[0510] A continuación se explicará la LTP 164 en bloque.
[0511] La señal en el dominio del tiempoycse utiliza como entrada a la LTP, dondeycse obtiene deXccomo salida de IMDCT. IMDCT consta de la MDCT inversa, división en ventanas y solapamiento-y-adición. La parte izquierda solapada y la parte no solapada deycen la trama actual se guarda en la memoria intermedia LTP. El búfer LTP se utiliza en la trama siguiente en el LTP para producir la señal predicha para toda la ventana del MDCT. Esto se ilustra
en la figura 17a.
[0513] Si se utiliza un solapamiento más corto, por ejemplo medio solapamiento, para el solapamiento derecho en la ventana actual, también se guardará en la memoria intermedia LTP la parte no solapada “diferencia de solapamiento”. Por lo tanto, las muestras en la posición “diferencia de solapamiento” (consultar la figura 17b) también se pondrán en la memoria intermedia LTP, junto con las muestras en la posición entre las dos líneas verticales anteriores a la “diferencia de solapamiento”. La parte no solapada “diferencia de solapamiento” no está en la salida del decodificador en la trama actual, sino sólo en la trama siguiente (consultar las figuras 17b y 17c).
[0515] Si se utiliza un solapamiento más corto para el solapamiento izquierdo en la ventana actual, toda la parte no solapada hasta el inicio de la ventana actual se utiliza como parte del búfer LTP para producir la señal predicha.
[0517] La señal predicha para toda la ventana de la MDCT se produce a partir del búfer LTP. El intervalo de tiempo de la longitud de la ventana se divide en subintervalos solapados de longitudLsubF0con el tamaño de saltoLupdateF0 =Pueden utilizarse otros tamaños de salto y relaciones entre la longitud del subintervalo y el tamaño del salto. La longitud del solapamiento puede serlupdateF0-LsubF0o menor.LsubF0se elige de forma que no se espere un cambio de tono
[0518] significativo dentro de los subintervalos. En un ejemploLupdateF0es un número entero lo más cercano a
pero nodF
[0519] mayor que-γyLsubF0se establece en2LupdateF0.Como se ilustra en la figura 17d. En otro ejemplo puede solicitarse adicionalmente que la longitud de la trama o la longitud de la ventana sea divisible porLupdateF0.
[0521] A continuación, se dará un ejemplo de “medios de cálculo (1030) configurados para derivar parámetros de subintervalo a partir del parámetro de tono codificado dependiente de una posición de los subintervalos dentro del intervalo asociado a la trama de la señal de audio codificada” y también un ejemplo de “se derivan parámetros a partir del parámetro de tono codificado y de la posición del subintervalo dentro del intervalo asociado a la trama de la señal de audio codificada”. Para cada subintervalo, el retardo de tono en el centro del subintervaloiSUbcenterse
obtiene a partir del contorno del tono. En el primer paso, el retardo de tono del subintervalodsubF0se establece en el retardo de tono en la posición del centro del subintervalodcontour [iSUbcenter] ■Mientras la distancia del extremo del subintervalo al inicio de la ventana (hubcenter+ es mayor quedsubF0, dsubF0se incrementa para el valor del retardo de tono desde el contorno de tono en la posicióndsubF0a la izquierda del centro del subintervalo, es decirdsubF0 = dsubF0 + dcontour[isubCenter ~ dsubFo]hasta queisubCenter< dsubFO ■La distancia del extremo del subintervalo al inicio de la ventana(iSUbcenter
también puede denominarse extremo del subintervalo.
[0523] En cada subintervalo, la señal prevista se construye utilizando la memoria intermedia LTP y un filtro con la función de transferenciaHLTP(z) donde:
[0526]
[0528] dondeTintes la parte entera dedsubF0es decirTint = [ dsubF0\yTfres la parte fraccionaria dedsubF0es decirTfr = dsubFo - TíntYTfr)es un filtro de retardo fraccional.B(z,Tfr) puede tener características de paso bajo (o puede restar énfasis a las frecuencias altas). A continuación, la señal de predicción se difumina de forma cruzada en las regiones de solapamiento de los subintervalos.
[0530] Alternativamente, la señal predicha puede construirse utilizando el método con filtros en cascada descrito en [19], con respuesta de entrada cero (ZIR) de un filtro con base en el filtro con la función de transferenciaHLTP2(z) y la memoria intermedia LTP utilizada como salida inicial del filtro, donde:
[0533]
[0535] Ejemplos paraB{z,Tfr):
[0538]
[0539]
[0542] En los ejemplosTfrse suele redondear al valor más próximo de una lista de valores y para cada valor de la lista el filtroBestá predefinido.
[0544] La señal predicha XP* se divide en ventanas, con la misma ventana que la utilizada para producirXMy se transforma mediante MDCT para obtenerXP.
[0546] A continuación, se dará un ejemplo de medios para modificar el espectro predicho, o un derivado del espectro predicho, en función de un parámetro derivado del parámetro de tono codificado. Las magnitudes de los coeficientes MDCT al menosnFsafeguardalejados de los armónicos enXPse ponen a cero (o se multiplican por un factor positivo menor que 1), dondenFsafeguardes por ejemplo 10. Alternativamente, pueden utilizarse otras ventanas distintas de la ventana rectangular para reducir las magnitudes entre los armónicos. Se considera que los armónicos enXPestán situados en ubicaciones que son múltiplos enteros de
dondeLMesXPla longitud ydPcorrecteies el retardo de tono promedio corregido. Los lugares de los armónicos son |n<■>¿FOJ. Esto elimina el ruido entre armónicos, especialmente cuando se detecta el retardo de tono medio.
[0548] La envolvente espectral deXPse aplana perceptualmente con el mismo método queXM,por ejemplo mediante SNS<E>, para obtenerXPS.
[0550] A continuación se da un ejemplo de “se determina un número de armónicos predecibles con base en el parámetro de tono codificado”. UtilizandoXPS, XMSydFcorreccedel número de armónicos predeciblesnLTPse determina.nLTPse codifica y se transmite al decodificador. HastaNLTParmónicos pueden predecirse, por ejemploNLTP = 8. XPSyXMSse dividen enNLTPbandas de longitud[iF00,5J, comenzando cada banda en L(n - 0,5)¿F0J,n e{1 , ...,NLTP}. nLTPse elige de forma que para todon<nLTPla relación entre la energía deXMS-XPSyXMSesté por debajo de un umbralTLTPpor ejemploTLTP = 0,7.Si no existe tal nentoncesnLTP = 0y el LTP no está activo en la trama actual. Se señala con una bandera si el LTP está activo o no. En lugar deXPSyXMS, XPyXMpueden usarse. En lugar deXPSyXMS, XPSyXMTpueden usarse. Alternativamente, el número de armónicos predecibles puede determinarse con base en un contorno de tonodcontour.
[0552] Si el LTP está activo, entonces primero[(nLTP + 0,5)iF0\coeficientes deXPS,excepto el ceroésimo coeficiente, se restan deXMTpara producirXMR.El ceroésimo y los coeficientes superiores a[(nLTP + 0,5)iF0\se copian deXMTa ¾B·
[0554] En un proceso de una cuantificación,XQse obtiene a partir deXMRyXQse codifica como spect, y por decodificaciónXDse obtiene a partir de spect.
[0556] A continuación, se dará un ejemplo de un combinador (157) configurado para combinar al menos una porción del espectro de predicción (Xp) o una porción de la derivada del espectro predicho (XPS) con el espectro de error (XD). Si la LTP está activa, entonces los primeros[(nLTP + 0,5)iF0\coeficientes deXPS,excepto el cerésimo coeficiente, se añaden aXDpara producirXDT.El cerésimo y los coeficientes por encima de[(nLTP + 0,5)iF0\se copian deXDaXDT.El “[ J” indica el uso de la función floor.
[0558] A continuación, se analizarán las características opcionales del pos-filtro armónico.
[0560] Una señal en el dominio del tiempoycse obtiene deXccomo salida de IMDCT donde IMDCT consta de la MDCT inversa, división en ventanas y solapamiento-y-adición. Se aplica un post-filtro armónico (HPF) que sigue el contorno del tono enycpara reducir el ruido entre armónicos y a la salidayH.En lugar deyc,se puede utilizar una combinación deycy una señal en el dominio del tiempoyP,construida a partir de las formas de onda de pulso de codificadas, como la entrada al HPF.
[0562] La entrada al HPF para la trama actualkes y<c>[n](0 < n < JV). Las muestras de salida pasadasyH[n](-dHPFmax< n < 0, dondedHPFmaxes al menos el retardo de tono máximo) también están disponibles. También están disponibles las muestras anticipadas de IMDCTNahead,que pueden incluir porciones distorsionadas de tiempo de la región derecha solapada de la salida MDCT inversa. Mostramos un ejemplo donde el intervalo de tiempo sobre el que se aplica el HPF es igual a la trama actual, pero pueden usarse intervalos diferentes. La ubicación de la entrada/salida actual de la HPF, la salida pasada de la HPF y la IMDCT anticipada en relación con las ventanas MDCT/IMDCT se ilustra en la figura 18a, que muestra también la parte solapada que puede añadirse de la forma habitual para producir solapamiento y adición.
[0563] Si se indica en el flujo de bits que el HPF debe utilizar parámetros constantes, se utiliza un suavizado al principio de la trama actual, seguido del HPF con parámetros constantes en el resto de la trama. Alternativamente, se puede realizar un análisis del tono enycpara decidir si deben usarse parámetros constantes. La longitud de la región donde se utiliza el suavizado puede depender de los parámetros de tono.
[0565] Cuando no se señalizan parámetros constantes, la entrada del HPF se divide en subintervalos solapados de longitudLkcon el tamaño de saltoLk update =y. Pueden usarse otros tamaños de salto. La longitud del solapamiento puede serLk update - Lko menor.Lkse elige de forma que no se espere un cambio de tono significativo dentro de los subintervalos. En un ejemploLk updatees un número entero lo más cercano a pitch_mid/2, pero no mayor que pitch_mid/2, yLkse establece en2Lk update.En lugar de pitch_mid pueden usarse otros valores, por ejemplo la media de pitch_mid y pitch_start o un valor obtenido de un análisis del tono enyco por ejemplo un retardo de tono mínimo esperado en el intervalo para señales con tono variable. Alternativamente, puede elegirse un número fijo de subintervalos. En otro ejemplo puede solicitarse adicionalmente que la longitud de la trama sea divisible porLk update(consultar figura 18b).
[0567] Decimos que el número de subintervalos en el intervalo actualkesKk,en el intervalo anteriork-1esKk_iy en el intervalo siguientek 1esKk+1.En el ejemplo en la figura 18bKk = 6yKk_i = 4.
[0569] En otro ejemplo, es posible que el intervalo (de tiempo) actual se divida en un número no entero de subintervalos y/o que la longitud de los subintervalos cambie dentro del intervalo actual, como se ilustra por medio de las figuras 18c y 18d.
[0571] Para cada subintervalolen el intervalo actualk (1<l < Kk), el retardo de tono del subintervalopk lse encuentra utilizando un algoritmo de búsqueda de tono, que puede ser el mismo que la búsqueda de tono utilizada para obtener el contorno de tono o diferente de él. La búsqueda de tono para el subintervalolpuede utilizar valores derivados del retardo de tono codificado (pitch_mid, pitch_end) para reducir la complejidad de la búsqueda y/o aumentar la estabilidad de los valorespk la lo largo de los subintervalos; por ejemplo, los valores derivados del retardo de tono codificado pueden ser los valores del contorno de tono. En otro ejemplo, los parámetros hallados mediante un análisis global del tono en el intervalo completo deycpueden utilizarse en lugar del retardo de tono codificado para reducir la complejidad de la búsqueda y/o la estabilidad de los valorespk la lo largo de los subintervalos. En otro ejemplo, cuando se busca el retardo de tono del subintervalo, se supone que se dispone de una salida intermedia del pos-filtro armónico para subintervalos anteriores y se utiliza en la búsqueda de tono (incluidos los subintervalos de los intervalos anteriores).
[0573] Las muestras anticipadasNahead(potencialmente con distorsión temporal) también se pueden utilizar para encontrar el tono en los subintervalos que cruzan el límite del intervalo (de tiempo)/trama o, por ejemplo, si no se dispone de la anticipación, puede introducirse un retardo en el decodificador para disponer de anticipación para el último subintervalo del intervalo. Alternativamente, puede usarse un valor derivado del retardo de tono codificado (pitch_mid, pitch_end) parapKKk.
[0575] Para el pos-filtro armónico, puede usarse el pos-filtro armónico de ganancia adaptativa. En el ejemplo, el HPF tiene la función de transferencia:
[0578]
[0581] dondeB[z,Tfr)es un filtro de retardo fraccional.B[z,Tfr)Puede ser el mismo que los filtros de retardo fraccional utilizados en el LTP o diferente de ellos, ya que la elección es independiente. En el HPFB[z,Tfr)actúa también como un pasa-bajos (o un filtro basculante que resta énfasis a las frecuencias altas).
[0583] Un ejemplo para la ecuación de diferencia para el pos-filtro armónico adaptativo de ganancia con la función de transferenciaH(z) yb¡[Tfr)como coeficientes deB[z,Tfr)es
[0586]
[0589] En lugar de un filtro de paso bajo con retardo fraccionario, se puede utilizar el filtro de identidad, dandoB[z,Tfr) = 1y la ecuación de la diferencia:
[0590]
[0592] El parámetroges la ganancia óptima. Modela el cambio de amplitud (modulación) de la señal y es adaptable a la señal.
[0593] El parámetrohes el nivel de armonicidad. Controla el aumento deseado de la armonicidad de la señal y es adaptable a la señal. El parámetroβtambién controla el aumento de la armonicidad de la señal y es constante o dependiente de la frecuencia de muestreo y de la velocidad binaria. El parámetroβtambién puede ser igual a 1 . El valor del productoβΐιdebe estar entre 0 y 1 , 0 no produce ningún cambio en la armonicidad y 1 aumenta al máximo la armonicidad. En la práctica es habitual queβΐι < 0,75.
[0594] La parte de avance del pos-filtro armónico (es decir / -αβΙιΒ(ζ, 0)) actúa como un filtro de paso alto (o un filtro basculante que resta énfasis a las frecuencias bajas). El parámetroadetermina la intensidad de la filtración de paso alto (o en otras palabras, controla la inclinación de la disminución de énfasis) y tiene un valor entre 0 y 1 . El parámetroaes constante o depende de la frecuencia de muestreo y de la velocidad binaria. En las realizaciones se prefiere un valor entre 0,5 y 1 .
[0595] Para cada subintervalo, la ganancia óptimagk iy el nivel de armonicidadhk ise encuentra o, en algunos casos, puede derivarse de otros parámetros.
[0596] Para unaB[z,Tfr)definimos una función de desplazamiento/filtración de una señal como
[0599]
[0601] Con estas definicionesyLii[n]representa para0 ≤ n < Lla señalycen un (sub)intervalolcon longitudL, y¡¡representa la filtración deycconB(z,0),y~prepresenta el desplazamiento deyHpara (posiblemente fraccionario)pmuestras. Definimos la correlación normalizada normcorr(y<c>,3¾,l,L,p) de las señalesycyyHen el subintervalolcon longitudLy desplazamiento p como:
[0604]
[0606] Una definición alternativa de normcorr(yc,yH, l,L,p)puede ser:
[0609]
[0611] En la definición alternativayLil[n-Tint\representayHen el pasado subintervalos paran < Tint.
[0612] En las definiciones anteriores hemos utilizado el orden 4<o>B[z,Tfr).
Puede usarse cualquier otro orden, para lo que será necesario cambiar el intervalo paraj.En el ejemplo dondeB{z,Tfr) =<■>/obtenemosy = ycyy~p[n\ = yH[n -LpJ] que pueden usarse si sólo se consideran desplazamientos enteros.
[0613] La correlación normalizada definida de esta manera permite calcular los desplazamientos fraccionarios p.
[0614] Los parámetros de normcorrlyLdefinen la ventana para la correlación normalizada. En la definición anterior se utiliza la ventana rectangular. En su lugar puede utilizarse cualquier otro tipo de ventana (por ejemplo, Hann, Coseno), lo que puede hacerse multiplicandoyLii[n]yy[[[n]conw[n]dondew[n]representa la ventana.
[0615] Para obtener la correlación normalizada en un subintervalo estableceríamoslal número de intervalo y i a la longitud del subintervalo.
[0617] La salida deyLf [n]representa la ZIR del post-filtro armónico de ganancia adaptativaH(z) para la subtramal,conβ = h = g = 1 y Tlnt= [pj y 7y<r>= p —Tint.
[0619] La ganancia óptimagk lmodela el cambio de amplitud (modulación) en la subtramal.Puede calcularse, por ejemplo, como una correlación de la señal predicha con la entrada de paso bajo dividida por la energía de la señal predicha:
[0622]
[0625] En otro ejemplo, la ganancia óptimagk lpuede calcularse como la energía de la entrada de paso bajo dividida por la energía de la señal predicha:
[0628]
[0630] El nivel de armonicidadhk lcontrola el aumento deseado de la armonicidad de la señal y puede calcularse, por ejemplo, como el cuadrado de la correlación normalizada:
[0633]
[0635] Normalmente, la correlación normalizada de un subintervalo ya está disponible a partir de la búsqueda de tono en el subintervalo.
[0637] El nivel de armonicidadhk ltambién puede modificarse en función de LTP y/o en función de las características del espectro descodificado. A modo de ejemplo, podemos establecer:
[0640]
[0643] dondehmodLTPes un valor entre 0 y 1 y proporcional al número de armónicos predichos por el LTP yhmodTiltes un valor entre 0 y 1 e inversamente proporcional a una inclinación deXc.En un ejemplohmodLTP = 0,5sinLTPes cero, en caso contrariohmodLTP = 0,7+°·3ηιτρ. La inclinación deXcpuede ser la relación entre la energía de los 7 primerosNLTP
[0644] coeficientes espectrales y la energía de los 43 coeficientes siguientes.
[0646] Una vez que hayamos calculado los parámetros para el subintervalo ¿podemos obtener la salida intermedia del postfiltro armónico para la parte del subintervalolque no se traslapa con el subintervalol 1.Como se ha escrito anteriormente, esta salida intermedia se utiliza para hallar los parámetros de los subintervalos posteriores.
[0648] Cada subintervalo se traslapa y se utiliza una operación de alisado entre dos parámetros de filtración. El suavizado se describe en [3] puede usarse. A continuación, se discutirán las realizaciones preferidas
[0650] Las realizaciones proporcionan un aparato para decodificar y codificar señales de audio, la señal de audio codificada comprende al menos parámetros de tono codificados y parámetros que definen un espectro de error, el aparato comprende: transformada inversa en el dominio de la frecuencia (por ejemplo, MDCT inversa) para generar un bloque de señal de audio td distorsionada a partir de una derivada del espectro de error; medios para generar una trama de señal de audio td utilizando al menos dos bloques de señal de audio td distorsionada, donde al menos algunas porciones de la señal de audio td distorsionada son diferentes de la señal de audio td (cancelación de distorsión en el dominio del tiempo (tdac) procedente de división en ventanas y solapamiento-y-adición); medios para colocar muestras de la trama de la señal de audio td en un búfer de LTP; medios para dividir una señal de predicción en subintervalos dependiendo de los parámetros de tono codificados, donde al menos en algunos casos hay más subintervalos que parámetros de tono codificados temporalmente distintos; medios para derivar parámetros de subintervalo a partir de los parámetros de tono codificados dependiendo de la posición del subintervalo dentro de la señal de predicción, donde al menos en algunos casos hay más parámetros de subintervalo distintos que parámetros de tono codificados temporalmente distintos; medios para generar la señal de predicción a partir del búfer de LTP dependiendo de los parámetros de subintervalo, incluido el suavizado a través/en los límites de los subintervalos; transformada en el dominio de la frecuencia para generar un espectro de predicción; medios para combinar al menos una porción de una
derivada del espectro de predicción con el espectro de error para generar un espectro combinado (la derivación es un aplanamiento espectral perceptual o una modificación); donde la derivada del espectro de error se deriva a partir del espectro combinado (la derivación incluye el llenado cero, la conformación espectral perceptual y TNS).
[0652] De acuerdo con otra realización, se proporciona un aparato para decodificar una señal de audio codificada. El aparato comprende: transformación inversa en el dominio de la frecuencia para generar un bloque de señal de audio td distorsionada a partir de una derivada del espectro de error; medios para generar una trama de señal de audio td utilizando al menos dos bloques de señal de audio td distorsionada, donde al menos algunas porciones de la señal de audio td distorsionada son diferentes de la señal de audio td (cancelación de distorsión en el dominio del tiempo (tdac) procedente de división en ventanas y solapamiento-y-adición); medios para colocar muestras de la trama de la señal de audio td en un búfer de LTP; medios para generar una señal de predicción a partir del búfer de LTP dependiendo de los parámetros derivados a partir de los parámetros de tono codificados; transformación en el dominio de la frecuencia para generar un espectro de predicción a partir de la señal de predicción; medios para modificar el espectro de predicción, o una derivada del mismo, dependiendo de los parámetros derivados de los parámetros de tono codificados, para generar un espectro de predicción modificado; (la derivación es, por ejemplo, el aplanamiento espectral perceptual, la modificación es, por ejemplo, la reducción de la magnitud entre armónicos o la restricción del número de armónicos predecibles) medios para combinar al menos una porción de una derivada del espectro de predicción modificado con el espectro de error para generar un espectro combinado (la derivación es, por ejemplo, el aplanamiento espectral perceptual); donde la derivada del espectro de error se deriva a partir del espectro combinado (la derivación incluye, por ejemplo, el llenado cero, la conformación espectral perceptual y TNS).
[0654] Otro aparato para decodificar una señal de audio codificada comprende: transformación inversa en el dominio de la frecuencia para generar un bloque de señal de audio td distorsionada a partir de una derivada del espectro de error; medios para generar una trama de señal de audio td utilizando al menos dos bloques de señal de audio td distorsionada, donde al menos algunas porciones de la señal de audio td distorsionada son diferentes de la señal de audio td (cancelación de distorsión en el dominio del tiempo (tdac) procedente de división en ventanas y solapamientoy-adición); medios para colocar muestras de la trama de la señal de audio td en un búfer de LTP; medios para derivar parámetros de tono modificados a partir de los parámetros de tono codificados en función del contenido del búfer de LTP (es decir, extender la gama de frecuencias de los parámetros de tono codificados); medios para generar un espectro de predicción a partir del búfer de LTP dependiendo de los parámetros de tono modificados; (los parámetros de tono modificados pueden utilizarse para generar la señal de predicción o para modificar el espectro de predicción) medios para combinar al menos una porción de una derivada del espectro de predicción con el espectro de error para generar un espectro combinado (la derivación es, por ejemplo, el aplanamiento espectral perceptual); donde la derivada del espectro de error se deriva a partir del espectro combinado (la derivación incluye, por ejemplo, el llenado cero, la conformación espectral perceptual y TNS).
[0656] De acuerdo con las realizaciones, el aparato comprende adicionalmente medios para poner todas las muestras del bloque de señal de audio td distorsionada no diferente de la señal de audio td en el búfer de LTP, incluso cuando las muestras se usan para producir la trama posterior de señal de audio td (usando la salida IMDCT no solapada cuando el solapamiento es más corto que el solapamiento máximo). Por ejemplo, la porción de muestras respectivas utilizadas por el búfer de LTP puede adaptarse (por ejemplo, de modo que se incremente una porción de las muestras utilizadas para la LTP). La figura 17c muestra un ejemplo de una porción aumentada utilizada para la LTP en comparación con la figura 17a. Esto significa que, de acuerdo con algunas realizaciones, el búfer de LTP almacena en búfer una o más tramas anteriores; las tramas almacenadas en búfer pueden usarse para la predicción de la trama actual o una trama posterior. Por ejemplo, se utiliza una sola trama almacenada en búfer o una pluralidad de tramas almacenadas en búfer o sólo una porción (una o más muestras) de una o más tramas. La selección de qué porción de las tramas respectivas almacenadas en búfer se selecciona dinámicamente. Por ejemplo, la porción de búfer se selecciona de modo que incluya las muestras que se emitirán en la trama posterior. En general, puede comprender una o más muestras de una o más tramas.
[0658] Otra realización proporciona un procesador de audio para procesar una señal de audio que tiene asociada una información de retardo de tono, el procesador de audio comprende un convertidor de dominio para convertir por tramas una representación de primer dominio de la señal de audio en una representación de segundo dominio de la señal de audio; y medios para dividir la señal de audio en subintervalos solapados dependiendo de la información de tono, donde al menos en algunos casos hay al menos dos subintervalos en una trama; un pos-filtro armónico para la filtración por subintervalos de la representación en el segundo dominio de la señal de audio, (incluido el suavizado a través de/en los límites de los subintervalos), en donde el pos-filtro armónico se basa en una función de transferencia que comprende un numerador y un denominador, en donde el numerador comprende un valor de armonicidad, y en donde el denominador comprende el valor de armonicidad y un valor de ganancia y un valor de retardo de tono, donde el valor de armonicidad es proporcional a una intensidad deseada del filtro independiente de los cambios de amplitud en la señal de audio y el valor de ganancia depende de los cambios de amplitud en la señal de audio y, al menos en algunos casos, el pos-filtro armónico es diferente en diferentes subintervalos.
[0659] De acuerdo con las realizaciones, el valor de armonicidad, el valor de ganancia y el valor de retardo de tono se derivan utilizando la salida ya disponible del pos-filtro armónico en subintervalos pasados y la representación del segundo dominio de la señal de audio. El trasfondo es que el pos-filtro armónico puede cambiar de un subintervalo anterior a un subintervalo posterior y que el pos-filtro armónico utiliza la salida ya disponible como entrada.
[0660] Otra realización proporciona una combinación tanto de la LTP como del HPF con un decodificador del dominio de la frecuencia.
[0661] Aunque algunos aspectos se han descrito en el contexto de un aparato, es claro que estos aspectos también representan una descripción del método correspondiente, donde un bloque o dispositivo corresponde a un paso de método o una característica de un paso de método. Análogamente, los aspectos descritos en el contexto de un paso de método también representan una descripción de un bloque o elemento o característica correspondiente de un aparato correspondiente. Algunos o todos los pasos de método se pueden ejecutar por (o utilizando) un aparato de hardware, como por ejemplo, un microprocesador, un ordenador programable o un circuito electrónico. En algunas realizaciones, se pueden ejecutar algunos o más de los pasos de método más importantes por medio de tal aparato. La señal de audio codificado inventiva se puede almacenar en un medio de almacenamiento digital o se puede transmitir en un medio de transmisión tal como un medio de transmisión inalámbrico o un medio de transmisión alámbrico tal como Internet.
[0662] Dependiendo de ciertos requisitos de implementación, las realizaciones de la invención se pueden implementar en hardware o en software. La implementación se puede llevara cabo utilizando un medio de almacenamiento digital, por ejemplo, un disquete, un DVD, un Blu-Ray, un CD, una ROM, una PROM, una EPROM, una EEPROM o una memoria flash, que tenga señales de control legibles electrónicamente almacenadas en el mismo, que coopere (o sea capaz de cooperar) con un sistema de cómputo programable de tal manera que se lleve a cabo el método respectivo. Por lo tanto, el medio de almacenamiento digital puede ser legible por ordenador.
[0663] Algunas realizaciones de acuerdo con la invención comprenden un portador de datos que tiene señales de control legibles electrónicamente, que es capaz de cooperar con un sistema de cómputo programable de tal manera que se lleve a cabo uno de los métodos descritos en este documento.
[0664] Generalmente, las realizaciones de la presente invención se pueden implementar como un producto de programa informático con un código de programa, el código de programa siendo operativo para llevar a cabo uno de los métodos cuando el producto de programa informático se ejecuta en un ordenador. El código de programa se puede almacenar, por ejemplo, en un portador legible por máquina.
[0665] Otras realizaciones comprenden el programa informático para llevar a cabo uno de los métodos descritos en este documento, almacenado en un portador legible por máquina.
[0666] En otras palabras, una realización del método inventivo es, por lo tanto, un programa informático que tiene un código de programa para llevar a cabo uno de los métodos descritos en este documento, cuando el programa informático se ejecuta en un ordenador.
[0667] Una realización adicional de los métodos inventivos es, por lo tanto, un portador de datos (o un medio de almacenamiento digital, o un medio legible por ordenador) que comprende, grabado en el mismo, el programa informático para llevar a cabo uno de los métodos descritos en este documento. El portador de datos, el medio de almacenamiento digital o el medio grabado son generalmente tangibles y/o no transitorios.
[0668] Una realización adicional del método inventivo es, por lo tanto, un flujo de datos o una secuencia de señales que representan el programa informático para llevar a cabo uno de los métodos descritos en este documento. El flujo de datos o la secuencia de señales se puede configurar, por ejemplo, para transferirse por medio de una conexión de comunicación de datos, por ejemplo, a través de Internet.
[0669] Una realización adicional comprende un medio de procesamiento, por ejemplo un ordenador, o un dispositivo lógico programable, configurado o adaptado para llevar a cabo uno de los métodos descritos en este documento.
[0670] Una realización adicional comprende un ordenador que tiene instalado en la misma el programa informático para llevar a cabo uno de los métodos descritos en este documento.
[0671] Una realización adicional de acuerdo con la invención comprende un aparato o un sistema configurado para transferir (por ejemplo, electrónicamente u ópticamente) un programa informático para llevar a cabo uno de los métodos descritos en este documento a un receptor. El receptor puede ser, por ejemplo, un ordenador, un dispositivo móvil, un dispositivo de memoria o similar. El aparato o sistema puede comprender, por ejemplo, un servidor de archivos para
transferir el programa informático al receptor.
[0672] En algunas realizaciones, un dispositivo lógico programable (por ejemplo, una matriz de puertas programable en campo) se puede utilizar para llevar a cabo algunas o todas las funcionalidades de los métodos descritos en este documento. En algunas realizaciones, una matriz de puertas programable en campo puede cooperar con un microprocesador con el fin de llevar a cabo uno o más de los métodos descritos en este documento. Generalmente, los métodos se llevan a cabo preferiblemente por medio de cualquier aparato de hardware.
[0673] Las realizaciones descritas anteriormente son solamente ilustrativas para los principios de la presente invención. Se entiende que las modificaciones y variaciones de los acomodos y los detalles descritos en este documento serán evidentes para otros experimentados en la materia. Se pretende, por lo tanto, que se limite solamente por el alcance de las reivindicaciones de patente inminentes y no por los detalles específicos presentados a manera de descripción y explicación de las realizaciones en este documento.
[0674] [1] G. Cohén, Y. Cohén, D. Hoffman, H. Krupnik y A. Satt, "Digital audio signal coding", US 6,064,954, 1998.
[0675] [2] K. Makino y J. Matsumoto, "Hybrid audio coding for speech and audio below médium bit rate", en Consumer Electronics, 2000. ICCE. 2000 Digest of Technical Papers. International Conference on, 2000, págs. 264-265.
[0676] [3] J. Ojanpera, "Method, apparatus and Computer program to provide predictor adaptation for advanced audio coding (AAC) System", 2004.
[0677] [4] J. Ojanperaá, "Method for improving the coding efficiency of an audio signal", 2007.
[0678] [5] J. Ojanpera, "Method for improving the coding efficiency of an audio signal", 2008.
[0679] [6] J. Ojanpera, M. Váánánen y L. Yin, "Long term predictor for transform domain perceptual audio coding", en Audio Engineering Society Convention 107, 1999.
[0680] [7] S. A. Ramprashad, "A multimode transform predictive coder (MTPC) for speech and audio", en Speech Coding Proceedings, 1999 IEEE Workshop on, 1999, págs. 10-12.
[0681] [8] B. Edler, C. Helmrich, M. Neuendorf, and B. Schubert, "Audio Encoder, Audio Decoder, Method For Encoding An Audio Signal And Method For Decoding An Encoded Audio Signal," PCT/EP2016/054831 , 2016.
[0682] [9] L. Villemoes, J. Klejsa y P. Hedelin, "Speech coding with transform domain prediction", en 2017 IEEE Workshop on Applications of Signal Processing to Audio and Acoustics (WASPAA), 2017, págs. 324-328.
[0683] [10] R. H. Frazier, "An adaptive filtering approach towards speech enhancement.," Citeseer, 1975.
[0684] [11] D. Malah y R. Cox, "A generalized comb filtering technique for speech enhancement", en Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP'82., 1982, vol. 7, págs. 160-163.
[0685] [12] J. Song, C.-H. Lee, H.-O. Oh y H.-G. Kang, "Harmonio Enhancement in Low Bitrate Audio Coding Using an Efficient Long-Term Predictor", en EURASIP J. Adv. Signal Process. 2010, 2010.
[0686] [13] T. Morii, "Post Filter And Filtering Method", PCT/JP2007/074044, 2007.
[0687] [14] E. Ravelli, C. Helmrich, G. Markovic, M. Neusinger, S. Disch, M. Jander y M. Dietz, "Apparatus and Method for Processing an Audio Signal Using a Harmonio Post-Filter", PCT/EP2015/066998, 2015.
[0688] [15] 3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Codee for Enhanced Voice Services (EVS); Detailed algorithmic description, no. 26.445. 3GPP, 2019.
[0689] [16] C. Helmrich, J. Lecomte, G. Markovic, M. Schnell, B. Edler y S. Reuschl, "Apparatus And Method For Encoding Or Decoding An Audio Signal Using A Transient-Location Dependent Overlap", PCT/EP2014/053293, 2014.
[0690] [17] C. Helmrich, J. Lecomte, G. Markovic, M. Schnell, B. Edler y S. Reuschl, "Apparatus And Method For Encoding Or Decoding An Audio Signal Using A Transient-Location Dependent Overlap", PCT/EP2014/053293, 2014.
[0691] [18] 3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Codee for Enhanced Voice Services (EVS); Detailed algorithmic description, no. 26.445. 3GPP, 2019.
[0692] [19] G. Markovic, E. Ravelli, M. Dietz y B. Grill, "Signal Filtering", PCT/EP2018/080837, 2018.
[0693] [20] N. Guo y B. Edler, "Encoder, Decoder, Encoding Method And Decoding Method For Frequency Domain Long-Term Prediction Of Tonal Signáis For Audio Coding", PCT/EP2019/082802, 2019
[0694] [21] N. Guo y B. Edler, "Frequency Domain Long-Term Prediction for Low Delay General Audio Coding", IEEE Signal Processing Letters, 2021
[0695] [22] T. Nanjundaswamy y K. Rose, "Cascaded Long Term Prediction for Enhanced Compression of Polyphonic Audio Signáis", IEEE/ACM Transactions On Audio, Speech, And Language Processing, 2014
[0696] [23] E. Ravelli, M. Schnell, C. Benndorf, M. Lutzky y M. Dietz, Apparatus And Method For Encoding And Decoding An Audio Signal Using Downsampling Or Interpolaron Of Scale Parameters, patente estadounidense PCT/EP2017/0789212017.
[0697] [24] E. Ravelli, M. Schnell, C. Benndorf, M. Lutzky, M. Dietz y S. Korse, Apparatus And Method For Encoding And Decoding An Audio Signal Using Downsampling Or Interpolaron Of Scale Parameters, patente estadounidense PCT/EP2018/0801372018.
[0698] [25] Low Complexity Communication Codee. Bluetooth, 2020.
[0699] [26] Digital Enhanced Cordless Telecommunications (DECT); Low Complexity Communication Codee plus (LC3plus), no. 103634. ETSI, 2019.
Claims (18)
1. REIVINDICACIONES
1. Procesador (1000,164,101 ,201 ,201 ’) para procesar una señal de audio codificada, la señal de audio codificada que comprende al menos un parámetro de tono codificado, el procesador (1000) comprende: un búfer de LTP (1010) configurado para recibir muestras (ye) derivadas de una trama de la señal de audio codificada;
un divisor de intervalos (1020) configurado para dividir un intervalo de tiempo asociado con una trama posterior de la señal de audio codificada en sub-intervalos dependiendo del parámetro de tono codificado; medios de cálculo (1030) configurados para derivar parámetros de sub-intervalo a partir del parámetro de tono codificado dependiendo de una posición de los sub-intervalos dentro del intervalo de tiempo asociado con la trama posterior de la señal de audio codificada;
un predictor (1040) configurado para generar una señal de predicción a partir del búfer de LTP (1010) dependiendo de los parámetros de sub-intervalo; y
un transformador en el dominio de la frecuencia (1050) configurado para generar un espectro de predicción (Xp) con base en la señal de predicción.
2. Procesador (1000,164,101 , 201) de acuerdo con la reivindicación 1 , en donde hay más sub-intervalos que parámetros de tono codificados temporalmente distintos; y/o
en donde hay más parámetros de sub-intervalo distintos que parámetros de tono codificados temporalmente distintos; y/o
en donde hay más de uno de los parámetros de tono codificados temporalmente distintos en la trama.
3. Procesador (101 , 201) de acuerdo con una de las reivindicaciones anteriores, que comprende además un combinador (157) configurado para combinar al menos una porción del espectro de predicción(Xps) con un espectro de error ( XD ) para generar un espectro combinado (XDT); y/o
en donde una derivación del espectro de predicción (XPS) se deriva del espectro de predicción (Xp) aplanando perceptualmente el espectro de predicción (Xp).
4. Procesador (101 , 201) de acuerdo con la reivindicación 1 , 2 o 3, en donde el procesador (101 , 201) comprende además un transformador inverso en el dominio de la frecuencia (161); y/o
en donde el procesador (101 , 201) comprende además un transformador inverso en el dominio de la frecuencia (161) configurado para generar un bloque de señal de audio en el dominio del tiempo distorsionada a partir de una derivación de un espectro de error (Xc), donde el espectro de predicción (Xp) se obtiene de la trama de la señal de audio codificada y/o donde un espectro de error (XD) se obtiene de la trama posterior de la señal de audio codificada posterior a la trama y la derivación del espectro de error (Xc) se deriva a partir del espectro de error (XD); O
en donde el procesador (101 , 201) comprende además un transformador inverso en el dominio de la frecuencia (161) configurado para generar un bloque de señal de audio en el dominio del tiempo distorsionada a partir de una derivación de un espectro de error (Xc), donde el espectro de predicción (Xp) se obtiene de la trama de la señal de audio codificada y/o donde un espectro de error (XD) se obtiene de la trama posterior de la señal de audio codificada posterior a la trama y la derivación del espectro de error (Xc) se deriva a partir del espectro de error (XD); y comprende además medios para generar una trama de señal de audio en el dominio del tiempo (ye) utilizando al menos dos bloques de la señal de audio en el dominio del tiempo distorsionada, donde al menos algunas porciones de la señal de audio en el dominio del tiempo distorsionada son diferentes de la señal de audio en el dominio del tiempo (ye) y las muestras recibidas (ye), respectivamente.
5. Procesador (101 , 201) de acuerdo con la reivindicación 4, que comprende además una entidad (158) configurada para llenado cero con base en una señal (EB) recibida del decodificador paramétrico por bandas (162) y un efecto combinado (XDT) para obtener una derivación de un espectro de error ((Xc) donde el espectro combinado (XDT) se obtiene con base en al menos una porción de una derivación del espectro de predicción (XPS) y un espectro de error (XD); y una entidad (160) configurada para conformación espectral (SNSD) de una envolvente espectral de una señal (X es) modificada por una entidad configurada para conformación
temporal (TNSD) y tomando en cuenta una información codificada (sns) para la conformación espectral para obtener una derivación de un espectro de error (Xc) y una entidad (159) configurada para conformación temporal (TNSD) de una señal (XCT) tomando en cuenta una información codificada para la conformación temporal (tns) para obtener una derivación de un espectro de error (Xc).
6. Procesador (101 , 201) de acuerdo con una de las reivindicaciones anteriores, que comprende además un combinador (157) configurado para combinar al menos una porción del espectro de predicción Xp (Xp) con un espectro de error XD (XD) para generar un espectro combinado XDT (XDT); y/o
que comprende además un combinador (157) configurado para combinar al menos una porción del espectro de predicción Xp (Xp) o al menos una porción de una derivación del espectro de predicción XPS (XPS) con un espectro de error XD (XD), en donde la porción se determina con base en el parámetro de tono codificado; y/o que comprende además un combinador (157) configurado para combinar al menos una porción del espectro de predicción Xp (Xp) o al menos una porción de una derivación del espectro de predicción XPS (XPS) con un espectro de error XD (XD), en donde si el búfer de LTP está activo entonces[(nLTP +0,5)iF0jlos coeficientes del espectro de predicción (Xp) o de la derivación del espectro de predicción (XPS), excepto el ceroésimo coeficiente, se añaden al espectro de error (XD) para producir un espectro combinado XDT (XDT); y/o en donde el ceroésimo y los coeficientes anteriores L(n<iTP>+ 0,5)iF0jse copian del espectro de error (XD) al espectro combinado (XDT), en donde "<L J>" indica el uso de la función floor;
dondeDLTPes un parámetro de la señal de audio codificada y/o dondeDLTPes un número de armónicos predecibles; y
dondeiFOse deriva del parámetro de tono codificado.
7. Procesador (1000) de acuerdo con una de las reivindicaciones anteriores, en donde en cada sub-intervalo la señal predicha se construye utilizando el búfer de LTP (1010) y/o utilizando una señal de audio decodificada fuera del búfer de LTP (1010) y un filtro cuyos parámetros se derivan del parámetro de tono codificado y de la posición del sub-intervalo dentro del intervalo de tiempo asociado con la trama posterior de la señal de audio codificada.
8. Procesador (1000) de acuerdo con una de las reivindicaciones anteriores, en donde los medios de cálculo (1030) están configurados para derivar parámetros de sub-intervalo a partir del parámetro de tono codificado, en donde los parámetros de sub-intervalo comprenden al menos un parámetro de tono de sub-intervalo(dsubFo),como sigue:
obtener el retardo de tono del sub-intervalo (dsubFo) asociado con un centro del sub-intervalo (isubcenter) a partir de un contorno de tono (dcontour), en donde el contorno de tono consta de múltiples valores, que tienen uno o más de los siguientes sub-etapas:
- ajustar el retardo de tono del sub-intervalo (dsubFo) al valor del contorno de tono en la posición del centro del SUb-intervalo(dcontour[isubCenter\)
- determinar un final de sub-intervalo (isubcenter LsubFo/2)
-comparar el retardo de tono del sub-intervalo (dsubFo) con el final de sub-intervalo (isubcenter+LsubFo/2)produciendo un resultado de comparación
- adaptar el retardo de tono del sub-intervalo (dsubFo) para el valor del contorno de tono en la posición derivada a partir del retardo de tono del sub-intervalo (isubcenter - dsubFo)dependiendo del resultado de la comparación y
que comprende además los medios de cálculo configurados para derivar un contorno de tono a partir del parámetro de tono codificado; donde el contorno de tono se obtiene a partir de los parámetros de tono codificados utilizando una interpolación; o
que comprende además los medios de cálculo configurados para derivar un contorno de tono a partir del parámetro de tono codificado; donde el contorno de tono se obtiene a partir de los parámetros de tono codificados utilizando una interpolación.
9. Procesador (1000) de acuerdo con una de las reivindicaciones anteriores, que comprende además medios
para suavizar la señal de predicción a través y/o en los límites de al menos dos sub-intervalos de la pluralidad de sub-intervalos y/o
que comprende además medios para suavizar la señal de predicción a través y/o en los límites de al menos dos sub-intervalos de la pluralidad de sub-intervalos, en donde al menos dichos al menos dos sub-intervalos están solapados.
10. Procesador (1000) de acuerdo con una de las reivindicaciones anteriores, que comprende además medios para modificar el espectro predicho, o un derivado del espectro predicho, dependiente de un parámetro derivado del parámetro de tono codificado con el fin de generar un espectro predicho modificado; y/o que comprende además medios para modificar el espectro predicho(Xp), o un derivado del espectro predicho (XPS), en donde los medios para modificar están configurados para adaptar las magnitudes de los coeficientes de MDCT al menosnpsafeguardlejos de los armónicos enXpo enXPSestableciendo en cero o multiplicando por un factor positivo inferior a 1 las magnitudes de los coeficientes de MDCT; o que comprende además medios para modificar el espectro predicho, o un derivado del espectro predicho, en donde los medios para modificar están configurados para reducir las magnitudes del espectro predicho, o las magnitudes del derivado del espectro predicho, entre armónicos.
11. Procesador (1000) de acuerdo con una de las reivindicaciones anteriores, que comprende además medios para derivar un parámetro de tono modificado a partir del parámetro de tono codificado dependiente de un contenido del búfer de LTP (1010); o
en donde el espectro predicho se genera dependiendo de un parámetro de tono modificado.
12. Procesador (1000) de acuerdo con una de las reivindicaciones 3 a 11 , que comprende además medios para poner todas las muestras (ye) de un bloque de señal de audio distorsionada que no sean diferentes de la señal de audio en el búfer de LTP (1010); o
que comprende además medios para poner muestras (ye) del bloque de señal de audio en el dominio del tiempo distorsionada no diferente de una señal de audio en el dominio del tiempo (ye) en el búfer de LTP (1010), en donde las muestras (ye) se utilizan para producir la trama posterior de la señal de audio; o que comprende además medios para poner muestras (ye) del bloque de señal de audio en el dominio del tiempo distorsionada no diferente de la trama actual en el búfer de LTP (1010), en donde las muestras (ye) se utilizan para producir la trama posterior de señal de audio en el dominio del tiempo(yc), en donde una selección de una porción de la trama actual o de las muestras (ye) seleccionadas del bloque de señal de audio en el dominio del tiempo distorsionada se adapta por los medios para poner muestras.
13. Unidad de procesamiento que comprende un procesador (1000, 164,101 , 201 ,201') de acuerdo con una de las reivindicaciones 1 a 12 y un procesador (1100, 214) que comprende:
un divisor (1110) configurado para dividir un intervalo de tiempo asociado con una trama de la señal de audio (ye) en una pluralidad de sub-intervalos, cada uno con una longitud respectiva, siendo la longitud respectiva de la pluralidad de sub-intervalos dependiente de un valor de retardo de tono;
un pos-filtro de armónicos (1120) configurado para filtrar la pluralidad de sub-intervalos, en donde el pos-filtro de armónicos (1120) se basa en una función de transferencia que comprende un numerador y un denominador, donde el numerador comprende un valor de armonicidad, y en donde el denominador comprende un valor de retardo de tono de sub-intervalo y el valor de armonicidad y/o un valor de ganancia; en el que el valor de armonicidad asociado y/o el valor de retardo de tono de sub-intervalo y/o el valor de ganancia es diferente en al menos dos sub-intervalos diferentes de la pluralidad de sub-intervalos; en donde el valor de retardo de tono de sub-intervalo, el valor de armonicidad y/o el valor de ganancia se obtienen basándose en la señal de audio (ye) en cada sub-intervalo de la pluralidad de sub-intervalos.
14.Decodificador para decodificar una señal de audio codificada que comprende un procesador de acuerdo con una de las reivindicaciones 1 a 12 y un procesador que comprende:
un divisor (1110) configurado para dividir un intervalo de tiempo asociado con una trama de la señal de audio (ye) en una pluralidad de sub-intervalos, cada uno con una longitud respectiva, siendo la longitud respectiva de la pluralidad de sub-intervalos dependiente de un valor de retardo de tono;
un pos-filtro de armónicos (1120) configurado para filtrar la pluralidad de sub-intervalos, en donde el pos-filtro
de armónicos (1120) se basa en una función de transferencia que comprende un numerador y un denominador, donde el numerador comprende un valor de armonicidad, y en donde el denominador comprende un valor de retardo de tono de sub-intervalo y el valor de armonicidad y/o un valor de ganancia; en el que el valor de armonicidad asociado y/o el valor de retardo de tono de sub-intervalo y/o el valor de ganancia es diferente en al menos dos sub-intervalos diferentes de la pluralidad de sub-intervalos; en donde el valor de retardo de tono de sub-intervalo, el valor de armonicidad y/o el valor de ganancia se obtienen basándose en la señal de audio (ye) en cada sub-intervalo de la pluralidad de sub-intervalos.
15. Decodificador de acuerdo con la reivindicación 14, que comprende además un decodificador de dominio de frecuencia o un decodificador basado en una MDCT inversa.
16. Codificador para codificar una señal de audio, que comprende un procesador de acuerdo con una de las reivindicaciones 1 a 12.
17. Método para procesar una señal de audio codificada, comprendiendo la señal de audio codificada al menos un parámetro de tono codificado, comprendiendo el método las siguientes etapas:
recibir muestras (ye) derivadas de una trama de la señal de audio codificada usando un búferde LTP (1010); dividir un intervalo de tiempo asociado con una trama posterior de la señal de audio codificada posterior a la trama en sub-intervalos dependiendo del parámetro de tono codificado;
derivar parámetros de sub-intervalo a partir del parámetro de tono codificado dependiendo de una posición de los sub-intervalos dentro del intervalo de tiempo asociado con la trama posterior de la señal de audio codificada;
generar una señal de predicción a partir del búfer de LTP (1010) dependiendo de los parámetros de subintervalo; y
generar un espectro de predicción basándose en la señal de predicción.
18. Programa informático para realizar, cuando se ejecuta en un ordenador, el método de acuerdo con la reivindicación 17.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP21185662.0A EP4120256A1 (en) | 2021-07-14 | 2021-07-14 | Processor for generating a prediction spectrum based on long-term prediction and/or harmonic post-filtering |
| PCT/EP2022/069751 WO2023285600A1 (en) | 2021-07-14 | 2022-07-14 | Processor for generating a prediction spectrum based on long-term prediction and/or harmonic post-filtering |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3054792T3 true ES3054792T3 (en) | 2026-02-06 |
Family
ID=76942805
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES22751694T Active ES3054792T3 (en) | 2021-07-14 | 2022-07-14 | Processor for generating a prediction spectrum based on long-term prediction |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US20240177720A1 (es) |
| EP (3) | EP4120256A1 (es) |
| JP (1) | JP2024529351A (es) |
| KR (1) | KR20240036029A (es) |
| CN (1) | CN117940994A (es) |
| CA (1) | CA3225841A1 (es) |
| ES (1) | ES3054792T3 (es) |
| MX (1) | MX2024000597A (es) |
| WO (1) | WO2023285600A1 (es) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101883767B1 (ko) * | 2013-07-18 | 2018-07-31 | 니폰 덴신 덴와 가부시끼가이샤 | 선형 예측 분석 장치, 방법, 프로그램 및 기록 매체 |
| AU2023445414A1 (en) * | 2023-04-26 | 2025-10-23 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for harmonicity-dependent tilt control of scale parameters in an audio encoder |
| CN116520022B (zh) * | 2023-06-29 | 2023-09-15 | 武汉纺织大学 | 电力谐波动态检测方法、装置、电子设备及介质 |
| CN116739048B (zh) * | 2023-08-16 | 2023-10-20 | 合肥工业大学 | 基于多元transformer的雷电长时预测模型、方法和系统 |
| WO2026084515A1 (ko) * | 2024-10-18 | 2026-04-23 | 삼성전자 주식회사 | 입력 오디오에서 타겟음을 제거하는 방법 및 이의 전자 장치 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6064954A (en) | 1997-04-03 | 2000-05-16 | International Business Machines Corp. | Digital audio signal coding |
| AU2002307884A1 (en) * | 2002-04-22 | 2003-11-03 | Nokia Corporation | Method and device for obtaining parameters for parametric speech coding of frames |
| JP2004302257A (ja) * | 2003-03-31 | 2004-10-28 | Matsushita Electric Ind Co Ltd | 長期ポストフィルタ |
| US8135047B2 (en) * | 2006-07-31 | 2012-03-13 | Qualcomm Incorporated | Systems and methods for including an identifier with a packet associated with a speech signal |
| KR102138320B1 (ko) * | 2011-10-28 | 2020-08-11 | 한국전자통신연구원 | 통신 시스템에서 신호 코덱 장치 및 방법 |
| KR102259112B1 (ko) * | 2012-11-15 | 2021-05-31 | 가부시키가이샤 엔.티.티.도코모 | 음성 부호화 장치, 음성 부호화 방법, 음성 부호화 프로그램, 음성 복호 장치, 음성 복호 방법 및 음성 복호 프로그램 |
| EP2980799A1 (en) * | 2014-07-28 | 2016-02-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for processing an audio signal using a harmonic post-filter |
-
2021
- 2021-07-14 EP EP21185662.0A patent/EP4120256A1/en not_active Withdrawn
-
2022
- 2022-07-14 MX MX2024000597A patent/MX2024000597A/es unknown
- 2022-07-14 JP JP2024501937A patent/JP2024529351A/ja active Pending
- 2022-07-14 WO PCT/EP2022/069751 patent/WO2023285600A1/en not_active Ceased
- 2022-07-14 ES ES22751694T patent/ES3054792T3/es active Active
- 2022-07-14 CN CN202280062479.4A patent/CN117940994A/zh active Pending
- 2022-07-14 CA CA3225841A patent/CA3225841A1/en active Pending
- 2022-07-14 EP EP25207647.6A patent/EP4661000A1/en active Pending
- 2022-07-14 EP EP22751694.5A patent/EP4371109B1/en active Active
- 2022-07-14 KR KR1020247004659A patent/KR20240036029A/ko active Pending
-
2024
- 2024-01-05 US US18/405,369 patent/US20240177720A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP4661000A1 (en) | 2025-12-10 |
| EP4120256A1 (en) | 2023-01-18 |
| EP4371109C0 (en) | 2025-11-05 |
| KR20240036029A (ko) | 2024-03-19 |
| EP4371109A1 (en) | 2024-05-22 |
| WO2023285600A1 (en) | 2023-01-19 |
| JP2024529351A (ja) | 2024-08-06 |
| CA3225841A1 (en) | 2023-01-19 |
| US20240177720A1 (en) | 2024-05-30 |
| EP4371109B1 (en) | 2025-11-05 |
| CN117940994A (zh) | 2024-04-26 |
| MX2024000597A (es) | 2024-03-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES3054792T3 (en) | Processor for generating a prediction spectrum based on long-term prediction | |
| ES2379761T3 (es) | Proporcinar una señal de activación de distorsión de tiempo y codificar una señal de audio con la misma | |
| TWI384807B (zh) | 用於在一與一語音訊號相關之封包中包含一識別符之系統及方法 | |
| ES2938668T3 (es) | Mejorar la clasificación entre codificación en el dominio del tiempo y codificación en el dominio de la frecuencia | |
| ES2703327T3 (es) | Codificador, decodificador y métodos para codificación espacial de objetos de audio de multirresolución retrocompatible | |
| ES2461183T3 (es) | Decodificador de señales de audio, codificador de señales de audio, procedimiento para decodificar una señal de audio, método para codificar una señal de audio y programa de ordenador que utilizan una adaptación dependiente de la frecuencia de un contexto de codificación | |
| ES2665599T3 (es) | Codificador y descodificador de audio | |
| ES2923098T3 (es) | Aparato y procedimiento de procesamiento de una señal de audio | |
| ES2934964T3 (es) | Procesador de audio y procedimiento para generar una señal de audio de frecuencia mejorada usando procesamiento de impulsos | |
| ES2952973T3 (es) | Dispositivo de determinación de la función de ponderación y procedimiento para cuantificar el coeficiente de codificación de predicción lineal | |
| JP2026042037A (ja) | 積分帯域ごとのパラメトリックオーディオコーディング | |
| US20240177724A1 (en) | Coding and decoding of pulse and residual parts of an audio signal | |
| RU2826967C2 (ru) | Процессор для формирования спектра прогнозирования на основе долгосрочного прогнозирования и/или гармонической постфильтрации | |
| RU2825308C2 (ru) | Кодирование и декодирование импульсных и остаточных частей звукового сигнала | |
| RU2834366C2 (ru) | Интегральное параметрическое аудиокодирование для каждой полосы частот | |
| US10115406B2 (en) | Apparatus and method for audio signal envelope encoding, processing, and decoding by splitting the audio signal envelope employing distribution quantization and coding | |
| WO2014198726A1 (en) | Apparatus and method for audio signal envelope encoding, processing and decoding by modelling a cumulative sum representation employing distribution quantization and coding | |
| KR20260004452A (ko) | 오디오 인코더에서 스케일 파라미터의 고조파 의존적 기울기 제어 장치 및 방법 |