ES2278338T3 - Dispositivo y procedimiento para procesar una señal. - Google Patents

Dispositivo y procedimiento para procesar una señal. Download PDF

Info

Publication number
ES2278338T3
ES2278338T3 ES04765662T ES04765662T ES2278338T3 ES 2278338 T3 ES2278338 T3 ES 2278338T3 ES 04765662 T ES04765662 T ES 04765662T ES 04765662 T ES04765662 T ES 04765662T ES 2278338 T3 ES2278338 T3 ES 2278338T3
Authority
ES
Spain
Prior art keywords
values
rounding
sequence
discrete
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES04765662T
Other languages
English (en)
Inventor
Ralf Geiger
Gerald Schuller
Thomas Sporer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Application granted granted Critical
Publication of ES2278338T3 publication Critical patent/ES2278338T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components

Landscapes

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

Abstract

Dispositivo para el procesamiento de una señal con una secuencia de valores discretos que representan datos de audio, datos de imágenes o datos de vídeo, existiendo una primer gama de frecuencias, en la que la señal tiene una energía alta, y en el que existe una segunda gama de frecuencias, en la que la señal tiene una energía baja, con las siguientes características: un dispositivo (202) para manipular la secuencia de valores discretos, para obtener una secuencia de valores manipulados, de manera que al menos uno de los valores manipulados es de no enteros; y un dispositivo (204) para redondear la secuencia de los valores manipulados, para obtener una secuencia de valores manipulados redondeados de enteros, estando configurados el dispositivo (204) para redondear para producir una configuración espectral de un error de redondeo generado, de manera que un error de redondeo configurado espectralmente tiene una energía mayor en la primera gama de frecuencias que en la segunda gama de frecuencias.

Description

Dispositivo y procedimiento para procesar una señal.
La presente invención se refiere al procesamiento de señales y, particularmente, al procesamiento de señales de valores que se presentan en secuencia, tal como muestras de audio o muestras de video, que son particularmente adecuadas, especialmente para aplicaciones de codificación sin pérdidas, en inglés "lossless".
La presente invención es además adecuada para los algoritmos de compresión para valores discretos, que presentan información de audio y/o imagen, y, particularmente, para algoritmos de codificación que incluyen una transformación en la gama de frecuencia, o intervalo de tiempo o intervalo de posición, a los que sigue una codificación, tal como la codificación de entropía en la forma de una codificación de Huffman o aritmética.
Los procedimientos modernos de codificación de audio, tal como la capa 3 de MPEG (MP3) o MPEG AAC, usan transformadas, tal como la denominada transformada de coseno discreto modificada (MDCT), para obtener una representación de frecuencia, tipo bloque, de una señal de audio. Un codificador de audio de este tipo obtiene normalmente un flujo de muestras de audio discretas en el tiempo. Al flujo de muestras de audio se le aplica una ventana para obtener un bloque de ventanas de, por ejemplo, 1.024 ó 2,048 muestras de audio en ventanas. Para aplicación de ventanas, se emplean varias funciones de ventanas, tal como una ventana de seno, etc.
Las muestras de audio discretas en el tiempo en ventana se convierten entonces mediante un banco de filtros en una representación espectral. Principalmente puede utilizarse para ello una transformada de Fourier, o por motivos especiales, una variedad de la transformada de Fourier, como por ejemplo una FFT, tal como se ha expuesto, una MDCT. El bloque de valores espectrales de audio en la salida del banco de filtros puede entonces procesarse adicionalmente, según la necesidad. En el caso de los codificadores de audio anteriormente mencionados sigue una cuantificación de los valores espectrales de audio, seleccionándose los niveles de cuantificación normalmente de tal manera que el ruido de cuantificación introducido por la cuantificación se sitúa por debajo del umbral de enmascaramiento psicoacústico, es decir, se "enmascara". La cuantificación es una codificación afectada por las pérdidas. Para obtener una reducción adicional de la cantidad de datos, los valores espectrales cuantificados se codifican a continuación por entropía por ejemplo mediante una codificación de Huffman. Mediante la adición de información secundaria, como por ejemplo factores de escala, etc. se forma a partir de los valores espectrales cuantificados y codificados por entropía, mediante un multiplexador de flujo de bits, un flujo de bits que puede transferirse o almacenarse.
En el decodificador de audio se divide el flujo de bits mediante un demultiplexador de flujo de bits en valores espectrales cuantificados y codificados y en información secundaria. Los valores espectrales cuantificados y codificados por entropía se codifican en primer lugar por entropía, para obtener los valores espectrales cuantificados. Los valores espectrales cuantificados se cuantifican entonces a la inversa, para obtener valores espectrales decodificados que presentan un ruido de cuantificación que, no obstante, se sitúa por debajo del umbral de enmascaramiento psicoacústico y, por tanto, será inaudible. Estos valores espectrales se convierten entonces mediante un banco de filtros de síntesis en una representación temporal, para obtener muestras de audio decodificadas discretas en el tiempo. En el banco de filtros de síntesis debe aplicarse un algoritmo de transformación inverso con respecto al algoritmo de transformación. Además, después de la transformación inversa de frecuencia-tiempo se deshace la aplicación de ventana.
Para alcanzar una buena selectividad de frecuencia, los codificadores de audio modernos utilizan normalmente un solapamiento de bloques. En la figura 12a se representa un caso de este tipo. En primer lugar se toman por ejemplo 2048 muestras de audio discretas en el tiempo y se les aplica una ventana mediante un dispositivo 402. La ventana que representa el dispositivo 402 tiene una longitud de ventana de 2N muestras y proporciona en el lado de salida un bloque de 2N muestras con aplicación de ventana. Para conseguir un solapamiento de ventanas, se forma mediante un dispositivo 404, que está representado únicamente por motivos de claridad en la figura 12a separado del dispositivo 402, un segundo bloque de 2N muestras con aplicación de ventana. Sin embargo, las 2048 muestras alimentadas al dispositivo 404 no son las muestras de audio discretas en el tiempo inmediatamente posteriores a la primera ventana, sino que incluyen la segunda mitad de las muestras con aplicación de ventana mediante el dispositivo 402 e incluyen además sólo 1024 "nuevas" muestras. El solapamiento se representa simbólicamente en la figura 12a mediante un dispositivo 406 en la figura 6a que causa un grado de solapamiento del 50%. Tanto las 2N muestras con aplicación de ventana producidas por el dispositivo 402 como las 2N muestras con aplicación de ventana producidas por el dispositivo 404 se someten entonces al algoritmo MDCT mediante un dispositivo 408 ó 410. El dispositivo 408 proporciona según el algoritmo MDCT conocido N valores espectrales para la primera ventana, mientras que el dispositivo 410 proporciona igualmente N valores espectrales, pero para la segunda ventana, existiendo entre la primera ventana y la segunda ventana un solapamiento del 50%.
En el decodificador, los N valores espectrales de la primera ventana se alimentan, tal como se muestra en la figura 6b, a un dispositivo 412 que realiza una transformada discreta del coseno modificada inversa. Lo mismo se aplica para los N valores espectrales de la segunda ventana. Éstos se alimentan a un dispositivo 414 que realiza igualmente una transformada discreta del coseno modificada inversa. Tanto el dispositivo 412 como el dispositivo 414 proporcionan, en cada caso, 2N muestras para la primera ventana y 2N muestras para la segunda ventana.
En un dispositivo 416, que en la figura 6b se designa con TDAC (TDAC = "Time Domain Aliasing Cancellation", cancelación del solapamiento del dominio del tiempo), se tiene en cuenta el hecho de que las dos ventanas se solapan. Especialmente una muestra y_{1} de la segunda mitad de la primera ventana, por tanto con un índice N+k, se suma a una muestra Y_{2} de la primera mitad de la segunda ventana, esto es con un índice k, de modo que en el lado de salida, es decir en el decodificador, se obtienen N muestras temporales decodificadas.
Se indica que mediante la función del dispositivo 416, que también se designa como función de suma, la aplicación de ventana realizada en el codificador representado esquemáticamente mediante la figura 6a se tiene en cuenta automáticamente hasta cierto punto de modo que en el decodificador representado mediante la figura 12b no debe tener lugar ninguna "aplicación de ventana inversa" explícita.
Si la ventana implementada por el dispositivo 402 ó 404 se designa con w(k), representando el índice k el índice temporal, debe cumplirse la condición de que el peso de la ventana w(k) elevado al cuadrado sumado al peso de la ventana w(N+k) elevado al cuadrado den conjuntamente 1, siendo k de 0 a N-1. Si se emplea una ventana seno, cuyas ponderaciones de ventana siguen a la primera semionda de la función seno, se cumple siempre esta condición de que el cuadrado del seno y el cuadrado del coseno den conjuntamente el valor 1 para cada ángulo.
En el procedimiento de ventanas descrito en la figura 6a con la función MDCT posterior resulta desventajoso el hecho de que la aplicación de ventana mediante la multiplicación de una muestra discreta en el tiempo, si se piensa en una ventana seno, se consigue con un número de coma flotante, puesto que el seno de un ángulo entre 0 y 180 grados, aparte del ángulo de 90 grados, no da ningún número entero. Aunque se apliquen ventanas a muestras discretas en el tiempo de números enteros, se originan por tanto números de coma flotante después de la aplicación de ventanas.
En consecuencia, también cuando no se emplee ningún codificador psicoacústico, es decir, cuando deba lograrse una codificación sin pérdidas, es necesaria una cuantificación a la salida de los dispositivos 408 ó 410 para poder realizar una codificación de entropía apreciable hasta cierto punto.
En términos generales se obtienen transformadas de números enteros conocidas actualmente para una codificación de audio y/o de video sin pérdidas mediante una descomposición de las transformadas empleadas en ellos en rotaciones de Givens y empleando el esquema de elevación en cada rotación de Givens. De este modo se introduce en cada etapa un error de redondeo. El error de redondeo se acumula cada vez más para las siguientes fases de rotaciones de Givens. El error de aproximación resultante es problemático especialmente para planteamientos de codificación de audio sin pérdidas, especialmente si se emplean transformadas largas, que proporcionan por ejemplo 1024 valores espectrales, tal como es el caso por ejemplo con la conocida MDCT con superposición y suma (MDCT = transformada discreta del coseno modificada). Especialmente en el área de altas frecuencias, en la que la señal de audio tiene en cualquier caso normalmente una cantidad de energía muy pequeña, el error de aproximación puede hacerse rápidamente mayor que la señal real, de modo que estos planteamientos son problemáticos en cuanto a la codificación sin pérdidas y especialmente en cuanto a la eficiencia de codificación que puede alcanzarse con ello.
Las transformaciones de números enteros, es decir los algoritmos de transformación que generan valores de salida enteros, se basan con respecto a la codificación de audio especialmente en la conocida DCT-IV, que no tiene en cuenta ninguna componente constante, mientras que las transformaciones de números enteros para aplicaciones de imágenes se basan más bien en la DCT-II, que incluye especialmente las medidas para la componente constante. Tales transformaciones de números enteros se conocen por ejemplo por Y. Zeng, G. Bi y Z. Lin, "Integer sinusoidal transforms based on lifting factorization", en Proc. ICASSP'01, mayo de 2001, págs. 1.181 - 1.184, K. Komatsu y K. Sezaki, "Reversible Discrete Cosine Transform", en Proc. ICASSP, 1998, tomo 3, páginas 1.769 - 1.772, P. Hao y Q. Shi, "Matrix factorizations for reversible integer mapping", IEEE Trans. Signal Processing, Signal Processing, tomo 49, págs. 2.314 - 2.324, y J. Wang, J. Sun y S. Yu, "1-d and 2-d transforms from integers to integers", en Proc. ICASSP'03, Hong Kong, abril de 2003.
Tal como se mencionó anteriormente, las transformaciones de enteros, descritas aquí, se basan en la descomposición de la transformada en rotaciones de Givens y en la aplicación del esquema de elevación conocido a las rotaciones de Givens, que trae consigo el problema de la acumulación de los errores de redondeo. Esto es particularmente debido al hecho que, dentro de una transformada, los redondeos deben realizarse muchas veces, es decir, después de cada etapa de elevación, de manera que, particularmente en transformadas largas que implican un número correspondientemente grande de etapas de elevación, deben realizarse redondeos de manera especialmente frecuente. Tal como se describió, esto da como resultado un error acumulado y particularmente también en procesamiento relativamente complejo, debido a que el redondeo se realiza después de cada etapa de elevación, para ejecutar la siguiente etapa de elevación.
A continuación, se ilustra de nuevo la aplicación de la ventana de NDCT con respecto a las Figuras 9 a 11, tal como se describe en el documento DE 10129249 A1, en la que esta descomposición de la ventana MDCT en rotaciones de Givens, con matrices de elevación y redondeos correspondientes, puede combinarse ventajosamente con el concepto discutido en la Figura 1 para la conversión y en la Figura 2, para la conversión inversa, para obtener una aproximación de MDCT completa de enteros, es decir, una MDCT de enteros (IntMDCT) según la presente invención, en el que se usan tanto el concepto de transformación directa como de transformación inversa para el ejemplo de un MCDT.
La Figura 3 muestra un diagrama general para el dispositivo preferido de la invención, para el procesamiento de muestras discretas en el tiempo, que representan una señal de audio para obtener valores de enteros sobre los que se trabaja basándose en el algoritmo de transformación de enteros Int-MDCT. A las muestras discretas en el tiempo se les aplica una ventana mediante el dispositivo mostrado en la Figura 3, y se convierten opcionalmente a una representación espectral. A las muestras discretas en el tiempo alimentadas al dispositivo en una entrada 10 se les aplica una ventana, con una ventana w, con una longitud que corresponde a 2N muestras discretas en el tiempo para lograr, en una salida 12, muestras en ventanas de enteros adecuadas para convertirse en una representación espectral por medio de una transformada y particularmente el dispositivo 14 para ejecutar una DCT de entero. Esta DCT de entero está configurado para generar N valores de salida de N valores de entrada, en contraste con la función de MDT 408 de la Figura 6a, que sólo genera N valores espectrales de 2N muestras en ventanas, debido a la ecuación de MDCT.
Para la aplicación de ventana en las muestras discretas en el tiempo se seleccionan en primer lugar en un dispositivo 16 dos muestras discretas en el tiempo, que conjuntamente representan un vector de las muestras discretas en el tiempo. Una muestra discreta en el tiempo, que se selecciona mediante el dispositivo 16, se encuentra en el primer cuarto de la ventana. La otra muestra discreta en el tiempo se encuentra en el segundo cuarto de la ventana, tal como se expone mediante la figura 11 aún más detalladamente. El vector generado mediante el dispositivo 16 se carga ahora con una matriz de rotación con la dimensión 2 x 2, no realizándose esta operación directamente, sino mediante varias denominadas matrices de elevación.
Una matriz de elevación tiene la propiedad de presentar solamente un elemento que depende de la ventana w y es desigual.
La factorización de transformadas de wavelet en etapas de elevación se representa en la publicación técnica "Factoring Wavelet Transforms Into Lifting Steps", Ingrid Daubechies y Wim Sweldens, preimpresión, Bell Laboratories, Lucent Technologies, 1996. En general un esquema de elevación es una relación sencilla entre pares de filtros que se reconstruyen perfectamente, que tienen el mismo filtro de baja frecuencia o de alta frecuencia. Cada par de filtros complementarios puede factorizarse en etapas de elevación. Esto es especialmente válido para rotaciones de Givens. Debe considerarse el caso, en el que la matriz de fases múltiples es una rotación de Givens. Entonces vale que:
1
Cada una de las tres matrices de elevación dispuestas a la derecha del signo de igualdad tiene como elementos diagonales principales el valor "1". Además en cada matriz de elevación un elemento diagonal secundario es igual a 0, y un elemento diagonal secundario es dependiente del ángulo \alpha de giro.
Ahora el vector se multiplica con la tercera matriz de elevación, es decir con la matriz de elevación a la derecha del todo en la ecuación anterior, para obtener un primer vector de resultado. Esto se representa en la figura 9 mediante un dispositivo 18. Ahora se redondea el primer vector de resultado con una función de redondeo aleatoria, que transforma la cantidad en números reales en la cantidad en números enteros, tal como se representa en la figura 9 mediante un dispositivo 20. A la salida del dispositivo 20 se obtiene un primer vector de resultado redondeado. El primer vector de resultado redondeado se alimenta ahora en un dispositivo 22 para multiplicar el mismo con la matriz de elevación intermedia, es decir, la segunda, para obtener un segundo vector de resultado, que a su vez se redondea en un dispositivo 24, para obtener un segundo vector de resultado redondeado. El segundo vector de resultado redondeado se alimenta ahora en un dispositivo 26, y más concretamente para multiplicar el mismo con la matriz de elevación presentada a la izquierda en la ecuación anterior, es decir, la primera matriz, para obtener un tercer vector de resultado, que finalmente se redondea aún mediante un dispositivo 28, para obtener finalmente en la salida 12 muestras con aplicación de ventana de números enteros, que ahora, en caso de que se desee una representación espectral de las mismas, deben procesarse mediante el dispositivo 14, para obtener una salida 30 espectral de valores espectrales enteros.
Preferiblemente el dispositivo 14 se realiza como DCT de números enteros o DCT de enteros.
La transformada de coseno discreta según el tipo 4 (DCT-IV) con una longitud N se da mediante la ecuación siguiente:
2
Cada una de las tres matrices de elevación en el lado derecho del signo igual tiene, como elementos diagonales principales el valor "1". Hay además, en cada matriz de elevación, un elemento diagonal secundario igual a 0 y un elemento diagonal secundario que depende del ángulo \alpha de rotación.
\newpage
El vector ahora se multiplica por la tercera matriz de elevación, es decir la matriz de elevación a la derecha en la ecuación anterior, para obtener un primer vector de resultado. Esto se ilustra en la Figura 3, por el dispositivo 18. Ahora el primer vector de resultado se redondea con una función de redondeo cualquiera, que correlaciona la cantidad de números reales con la cantidad de números enteros, tal como se ilustra en la Figura 3, por el dispositivo 20. En la salida del dispositivo 20, se obtiene un primer redondeo del vector el resultado. El primer vector de resultado redondeado se alimenta ahora al dispositivo 22 para multiplicarlo por el central, es decir, la segunda matriz de elevación, para obtener un segundo vector de resultado, que de nuevo se redondea en un dispositivo 24, para obtener un segundo vector de resultado redondeado. El segundo vector de resultado redondeado ahora se suministra a un dispositivo 26 para multiplicarlo por la matriz de elevación, mostrada a la izquierda de la ecuación anterior, es decir, la primera, para obtener un tercer vector de resultado, que se redondea finalmente mediante otro dispositivo 28 para obtener finalmente muestras en ventana de enteros en la salida 12, que, si se desea una representación especial de las mismas, ahora deberán procesarse por el dispositivo 14 para obtener valores espectrales de enteros en una salida 30 espectral.
Preferiblemente, el dispositivo 14 se realiza como la DCT de enteros.
La transformada de coseno discreta, según el tipo 4 (DCT-IV) con una longitud N se da por la siguiente ecuación:
3
Los coeficientes de la DCT-IV forman una matriz ortonormal N x N. Cada matriz N x N ortogonal puede descomponerse en rotaciones de Givens N(N-1)/2 tal como se indica en la publicación especializada P. P. Vaidyanathan, "Multirate Systems And Filter Banks", Prentice Hall, Englewood Cliffs, 1993. Debe indicarse que también existen otras descomposiciones.
Con respecto a las clasificaciones de los diferentes algoritmos de DCT debe hacerse referencia a H. S. Malvar, "Signal Processing With Lapped Transforms", Artech House, 1992. En general, los algoritmos de DCT se diferencian por el tipo de sus funciones básicas. Mientras que la DCT-IV, que se prefiere en el presente documento, comprende funciones básicas no simétricas, es decir un cuarto de onda de coseno, una onda de 3/4 de coseno, una onda de 5/4 de coseno, una onda de 7/4 de coseno, etc. la transformada de coseno discreta por ejemplo del tipo II (DCT-II) funciones básicas axisimétricas y de simetría puntual. La función básica de orden 0 tiene una componente constante, la primera función básica es media onda de coseno, la segunda función básica es una onda de coseno completa, etc. A causa del hecho, de que la DCT-II considera especialmente la componente constante, se utiliza en la codificación de vídeo, pero no en la codificación de audio, puesto que en la codificación de audio al contrario que en la codificación de vídeo la componente constante no es relevante.
A continuación se hará referencia a la forma en la que el ángulo \alpha de giro de la rotación de Givens depende de la función de ventana.
Una MDCT con una longitud de ventana de 2N puede reducirse en una transformada de coseno discreta del tipo IV con una longitud N. Esto se consigue porque la operación de TDAC se realiza de manera explícita en el intervalo de tiempo y porque luego se aplica la DCT-IV. Con un solapamiento del 50% la mitad izquierda de la ventana para un bloque t se solapa con la mitad derecha del bloque anterior, es decir del bloque t-1. La parte que se solapa de dos bloques t-1 y t consecutivos se procesa previamente en el intervalo de tiempo, es decir antes de la transformación, de la siguiente manera, es decir, se procesa entre la entrada 10 y la salida 12 de la figura 9:
4
Los valores designados con la tilde son los valores en la salida 12 de la figura 9, mientras que los valores x designados en la ecuación anterior sin tilde son los valores en la entrada 10 o detrás del dispositivo 16. El índice k continuo va desde 0 hasta N/2-1, mientras que w representa la función de ventana.
A partir de la condición de TDAC para la función w de ventana es válida la siguiente relación:
5
\newpage
Para determinados ángulos \alpha_{k}, k = 0,…, N/2-1 este procesamiento previo puede escribirse en el intervalo de tiempo como rotación de Givens, tal como se ha expuesto.
El ángulo \alpha de la rotación de Givens depende de la función w de ventana de la siguiente manera:
(5)\alpha = arctan[w(N/2 - 1 - k)
\hskip0.3cm
/
\hskip0.3cm
w(N/2 + k)]
Debe hacerse referencia a que puede introducirse cualquier función w de ventana, siempre que cumplan esta condición de TDAC.
A continuación se describirá mediante la figura 10 un decodificador y un codificador en cascada. Las muestras x(0) a x(2N-1) discretas en el tiempo, a las que se "aplica una ventana" conjuntamente mediante una ventana, se seleccionan en primer lugar mediante el dispositivo 16 de la figura 9 de tal manera que se seleccionan la muestra x(0) y la muestra x(N-1), es decir una muestra a partir del primer cuarto de la ventana y una muestra a partir del segundo cuarto de la ventana, para formar el vector en la salida del dispositivo 16. Las flechas que se entrecruzan representan esquemáticamente las multiplicaciones de elevación y redondeos posteriores de los dispositivos 18, 20 ó 22, 24 ó 26, 28, para obtener las muestras con aplicación de ventana de números enteros en la entrada de los bloques de DCT-IV.
Cuando se procesa el primer vector tal como se describió anteriormente, se selecciona adicionalmente un segundo vector a partir de las muestras x(N/2-1) y x(N/2), es decir de nuevo una muestra a partir del primer cuarto de la ventana y una muestra a partir del segundo cuarto de la ventana y a su vez se procesa mediante el algoritmo descrito en la figura 3. De manera análoga se procesan todos los demás pares de muestras a partir del primer y del segundo cuarto de ventana. El mismo procesamiento se lleva a cabo para el tercer y cuarto cuarto de la primera ventana. Ahora existen en la salida 12 2N muestras de números enteros con aplicación de ventana, que ahora, tal como representa la figura 4, se alimentan a una transformada de DCT-IV. En especial se alimentan las muestras con aplicación de ventana de números enteros del segundo y tercer cuarto en una DCT. Las muestras de números enteros con aplicación de ventana del primer cuarto de la ventana se procesan en una DCT-IV anterior junto con las muestras de números enteros con aplicación de ventana del cuarto cuarto de la ventana anterior. De manera análoga se alimenta el cuarto cuarto de las muestras de números enteros con aplicación de ventana en la figura 4 con el primer cuarto de la ventana siguiente conjuntamente en una transformada de DCT-IV. La transformada 32 intermedia de DCT-IV de números enteros mostrada en la figura 4 proporciona ahora N valores espectrales enteros de y(0) a y(N-1). Ahora estos valores espectrales enteros pueden codificarse por ejemplo por entropía de manera sencilla, sin necesitar una cuantificación intermedia, puesto que la aplicación de ventana y la transformada proporciona valores de salida enteros.
En la mitad derecha de la figura 4 se representa un decodificador. El decodificador compuesto por transformación inversa y "aplicación inversa de ventana" trabaja de manera inversa con respecto al codificador. Se conoce, que para la transformación inversa de una DCT-IV puede utilizarse una DCT-IV inversa, tal como representa la figura 4. Los valores de salida de la DCT-IV 34 de decodificador se procesan ahora, tal como representa la figura 4, de manera inversa con los valores correspondientes de la transformada anterior o la transformada posterior, para volver a generar a partir de las muestras en ventana de números enteros en la salida del dispositivo 34 o de la transformada anterior y posterior muestras de x(0) a x(2N-1) de audio discretas en el tiempo.
La operación en el lado de salida se produce mediante una rotación de Givens inversa, es decir de tal manera, que los bloques 26, 28 ó 22, 24 ó 18, 20 se atraviesan en la dirección opuesta. Esto se representa con más detalle mediante la segunda matriz de elevación de la ecuación 1. Cuando (en el codificador) el segundo vector de resultado se forma mediante multiplicación del primer vector de resultado redondeado con la segunda matriz de elevación (dispositivo 22), así se obtiene la siguiente expresión:
6
Los valores x, y en el lado derecho de la ecuación 6 son números enteros. Sin embargo, esto no se cumple para el valor x sen \alpha. Aquí debe introducirse la función r de redondeo tal como representa la siguiente ecuación
7
Esta operación la realiza el dispositivo 24.
La transformación inversa (en el decodificador) se define de la siguiente manera:
8
Debido al signo menos antes de la operación de redondeo se observa que puede invertirse la aproximación de números enteros de la etapa de elevación, sin introducir un error. La aplicación de esta aproximación a cada una de las tres etapas de elevación conduce a una aproximación de números enteros de la rotación de Givens. La rotación redondeada (en el codificador) puede invertirse (en el decodificador), sin introducir un error, y más concretamente llevando a cabo las etapas de elevación redondeadas inversas en orden inverso, es decir cuando durante la decodificación el algoritmo de la figura 3 se realiza desde abajo hacia arriba.
Cuando la función r de redondeo es de simetría puntual, la rotación redondeada inversa es idéntica a la rotación redondeada con el ángulo -\alpha y se expresa de la siguiente manera:
9
Las matrices de elevación para el decodificador, es decir para la rotación de Givens inversa, se obtienen en este caso directamente a partir de la ecuación (1), sustituyendo únicamente la expresión "sen \alpha" por la expresión "-sen \alpha".
A continuación vuelve a representarse mediante la figura 5 la descomposición de una MDCT habitual con ventanas 40 a 46 solapadas. Las ventanas 40 a 46 se solapan en cada caso en un 50%. Por ventana se realizan en primer lugar rotaciones de Givens dentro del primer y del segundo cuarto de una ventana o dentro del tercer y del cuarto cuarto de una ventana, tal como representan las flechas 48 de manera esquemática. A continuación se alimentan los valores rotados, es decir las muestras de números enteros en ventana en una DCT de N a N de tal manera que siempre el segundo y el tercer cuarto de una ventana o el cuarto y el primer cuarto de una ventana consecutiva se convierten conjuntamente mediante un algoritmo de DCT-IV en una representación espectral.
Por tanto la rotación de Givens habitual se descompone en matrices de elevación, que se realizan de manera secuencial, introduciéndose tras cada multiplicación de matriz de elevación una etapa de redondeo, de tal manera que los números de coma flotante se redondean directamente tras su generación, de tal manera que antes de cada multiplicación de un vector de resultado con una matriz de elevación el vector de resultado sólo tiene números enteros.
Los valores de salida siempre permanecen por tanto como valores enteros, prefiriendo utilizar también valores de entrada de número entero. Esto no supone ninguna limitación, puesto que por ejemplo todas las muestras de PCM, tal como se almacenan en un CD son valores de números enteros, cuyo intervalo de valores varía según el ancho de bit, es decir, en función de si los valores de entrada digitales discretos en el tiempo son valores de 16 bits o valores de 24 bits. Aún así puede invertirse todo el proceso, tal como se ha expuesto, realizando las rotaciones inversas en orden inverso. Así existe una aproximación de la MDCT de números enteros con una reconstrucción perfecta, esto es, una transformación sin pérdidas.
La transformación mostrada proporciona valores de salida enteros en lugar de valores de coma flotante. Proporciona una reconstrucción perfecta, de modo que no se introduce ningún error, cuando se realiza una transformación directa y luego una transformación inversa. Según un ejemplo de realización preferido de la presente invención la transformación es una sustitución para la transformada de coseno discreta modificada. Sin embargo también pueden realizarse otros procedimientos de transformación de números enteros, siempre que sea posible una descomposición en rotaciones y una descomposición de las rotaciones en etapas de elevación.
La MDCT de números enteros tiene la mayor parte de las propiedades favorables de la MDCT. Tiene una estructura de solapamiento, por lo que se obtiene una mejor selectividad de frecuencia que en el caso de transformaciones de bloque que no se solapan. Debido a la función de la TDAC, que ya se considera durante la aplicación de ventana antes de la transformación, se mantiene un muestreo crítico, de modo que la totalidad de valores espectrales, que representan una señal de audio, son iguales a la totalidad de muestras de entrada.
En comparación con una MDCT normal, que proporciona muestras de coma flotante, se demuestra durante la transformación de números enteros preferida descrita, que sólo en la banda espectral, en la que hay poco nivel de señal, ha aumentado el ruido en comparación con la MDCT normal, mientras que este aumento del ruido no es perceptible en el caso de niveles de señal significativos. Para ello es adecuado el procesamiento de números enteros para una implementación de hardware eficaz, puesto que sólo se utilizan etapas de multiplicación, que pueden descomponerse sin más en etapas de desplazamiento-suma ("etapas de shift/add"), que pueden implementarse de manera sencilla y rápida con respecto al hardware. Evidentemente también es posible una implementación de software.
La transformación de números enteros proporciona una buena representación espectral de la señal de audio y aún así, permanece en el intervalo de los números enteros. Si se aplica a componentes tonales de una señal de audio, esto da como resultado una buena concentración de energía. Con ello puede construirse un esquema de codificación eficaz y sin pérdidas, realizando simplemente en cascada la aplicación de ventana/transformación representada en la figura 9 con un codificador de entropía. Es especialmente favorable una codificación apilada ("stacked coding") empleando valores de escape, tal como se utiliza en el MPEG AAC. Se prefiere ajustar en escala descendente todos los valores en una potencia determinada de dos, hasta que entren en una tabla de códigos deseada, y luego codificar adicionalmente los bits de menor valor eliminados. En comparación con la alternativa del uso de tablas de códigos más grandes la alternativa descrita es mejor con respecto al consumo de la memoria para almacenar las tablas de códigos. También podría obtenerse un codificador prácticamente sin pérdidas eliminando simplemente determinados bits de menor valor.
Especialmente para señales tonales una codificación de entropía de los valores espectrales de números enteros permite una ganancia de codificación elevada. Para componentes transitorias de la señal la ganancia de codificación es reducida, y más concretamente debido al espectro plano de las señales transitorias, es decir debido a un número reducido de valores espectrales, que son iguales a o prácticamente 0. Tal como se describe en J. Herre, J. D. Johnston: "Enhancing the Performance of Perceptual Audio Coders by Using Temporal Noise Shaping (TNS)" 101. Convención AES, Los Ángeles, 1996, preimpresión 4384, puede utilizarse sin embargo esta planeidad utilizando una predicción lineal en la gama de frecuencias. Una alternativa es una predicción con bucle abierto. Otra alternativa es el predictor en bucle cerrado. La primera alternativa, es decir el predictor con bucle abierto, se denomina TNS. La cuantificación tras la predicción conduce a una adaptación del ruido de cuantificación resultante a la estructura temporal de la señal de audio y de este modo impide ecos previos en codificadores de audio psicoacústicos. Para una codificación de audio sin pérdidas es más adecuada la segunda alternativa, es decir con un predictor con bucle cerrado, dado que la predicción con bucle cerrado permite una reconstrucción precisa de la señal de entrada. Cuando se aplica esta técnica a un espectro generado, debe realizarse una etapa de redondeo tras cada etapa del filtro de predicción, para permanecer en el intervalo de los números enteros. Mediante la utilización del filtro inverso y de la misma función de redondeo puede volver a establecerse exactamente el espectro original.
Para aprovechar la redundancia entre dos canales para la reducción de datos, puede utilizarse también sin pérdidas una codificación MS (mid-side), cuando se utiliza una rotación redondeada con un ángulo \pi/4. En comparación con la alternativa del cálculo de la suma y la diferencia del canal izquierdo y derecho de una señal estéreo la rotación redondeada tiene la ventaja de la conservación de energía. La utilización de las denominadas técnicas de codificación joint stereo puede apagarse o encenderse para cada banda tal como también se realiza en la norma MPEG AAC. También pueden considerarse otros ángulos de rotación, para poder reducir una redundancia entre dos canales de una manera más flexible.
Particularmente, el concepto de transformación ilustrado con respecto a la Figura 3 proporciona una implementación de enteros de la MOCT, es decir, una IntMDCT, que trabaja sin pérdidas con respecto a la transformación directa y la transformación inversa subsiguiente. Por las etapas 20, 24, 28 de redondeo y las etapas de redondeo correspondientes en la DCT de enteros (bloque 14 en la Figura 3), es además siempre posible un procesamiento de enteros, es decir, el procesamiento con valores cuantificados más aproximados, que los que se generaron, por ejemplo, por una multiplicación de coma flotante, con una matriz de elevación (bloques 12, 22, 26 de la figura 3).
El resultado es que la IntMOCT total puede realizarse eficientemente con respecto al cálculo.
La característica de no tener pérdidas de esta IntMDCT o, hablando generalmente, la característica de no tener pérdidas de todos los algoritmos de codificación, referidos como sin pérdidas, se relaciona al hecho que la señal, cuando se codifica, para lograr una señal codificada y cuando en seguida de nuevo se descodifica para lograr una señal codificada/descodificada, se "parece" exactamente a la señal original. Expresado de otra manera, la señal original es idéntica a la señal original codificada/descodificada. Esto se contrapone claramente a una denominada codificación con pérdidas, en la que, como en el caso de codificadores de audio que operan en una base psicoacústica, los datos se pierden de forma no recuperable mediante el procesamiento de codificación y particularmente mediante el procesamiento de cuantificación controlado por un modelo psicoacústico.
Naturalmente se introducen sin embargo errores de redondeo. Así, tal como se muestra con respecto a la Figura 3, en los bloques 20, 244, 28, se realizan etapas de redondeo, que naturalmente introducen un error de redondeo, que sólo "se elimina" en el descodificador, cuando se ejecutan las operaciones inversas. Así los conceptos de codificación/descodificación sin pérdidas difieren esencialmente de los conceptos de codificación/descodificación con pérdidas, en que, en los conceptos de codificación/descodificación sin pérdidas, el error de redondeo se introduce de manera que puede eliminarse de nuevo, mientras que esto no es el caso en los conceptos de codificación/descodificación sin pérdidas.
Sin embargo si se considera la señal codificada, es decir, en el ejemplo de codificadores de transformación, el espectro de un bloque de muestras temporales, el redondeo en la transformación directa o bien generalmente la cuantificación una señal de este tipo da como resultado un error que se introduce en la señal. Así, un error de redondeo se superpone al espectro ideal libre de errores de la señal, el error siendo típicamente, por ejemplo, en el caso de la figura 3, un ruido blanco que comprenden igualmente todas las componentes de frecuencia del intervalo espectral considerado. Este ruido blanco superpuesto al espectro ideal, representa así el error de redondeo que ocurre, por ejemplo por el redondeo en los bloques 20, 24, 28 durante la aplicación de ventana, es decir el procesamiento previo de la señal antes de la DCT real en el bloque 14. Ha de indicarse que, para un requisito de estado sin pérdidas, el error de redondeo total debe necesariamente codificarse, es decir, transmitido al descodificador, debido a que el descodificador requiere que el error total de redondeo introducido en el codificador, logre una reconstrucción correcta sin pérdidas.
El error de redondeo no es problemático cuando no se "hace" nada con la representación espectral, es decir, cuando la representación espectral sólo se transmite almacenada y se descodifica de nuevo por el descodificador inverso que ha de adaptarse correctamente. En ese caso, el criterio de estado sin pérdida siempre se cumplirá, independientemente de cuánto error de redondeo se haya introducido en el espectro. Sin embargo, si algo se hace con la representación espectral, es decir, con la representación espectral ideal de una señal original que contiene errores de redondeo, por ejemplo, si se generan capas de capacidad de ajuste a escala, etc., todas estas cosas funcionan mejor cuanto más pequeño sea el error de redondeo.
Así, también existe un requisito en la codificación/descodificación sin pérdidas en el sentido de que por un lado una señal debe poderse reconstruir sin pérdidas mediante descodificadores especiales, de que, sin embargo, una señal también debe tener un error de redondeo lo más pequeño posible en su representación espectral para preservar la flexibilidad en el sentido de que también pueden alimentarse descodificadores sin pérdidas no ideales con la representación espectral o que pueden generarse capas de ajuste a escala, etc.
Tal como se discutió antes, el error de redondeo se expresa como ruido blanco a través de todo el espectro considerado. Por otra parte, particularmente en aplicaciones de alta calidad, ya que son especialmente interesantes para el caso sin pérdida, es decir aplicaciones de audio, con frecuencias de muestro muy altas, por ejemplo de 96 kHz, la señal de audio solamente tiene un contenido de señal razonable en un cierto intervalo espectral, que puede alcanzar normalmente a lo sumo, 20 kHz. Típicamente, el intervalo en el que se concentra la mayor parte de la energía de señal de la señal de audio será el intervalo entre 0 y 10 kHz, mientras que la energía de señal disminuirá considerablemente en el intervalo por encima de 10 kHz. Sin embargo, esto no le afecta al ruido blanco introducido por el redondeo. Este se superpone por todo el intervalo espectral considerado de la energía de señal. El resultado es que, en los intervalos espectrales, es decir típicamente en los intervalos espectrales altos, en los que no hay o solamente hay muy poca energía de señal de audio, será solamente el error de redondeo. Al mismo tiempo, el error de redondeo particularmente debido a su naturaleza no determinada es también difícil de codificar, es decir, es solamente codificable con un gasto de bits relativamente altos. De esta manera el gasto de bits no juega el papel decisivo, particularmente en algunas aplicaciones sin pérdidas. Para que las aplicaciones de codificación sin pérdidas sean cada vez más amplias, es muy importante un funcionamiento eficiente de los bits, para combinar la ventaja inherente en aplicaciones sin pérdidas de la reducción de calidad ausente también con la eficiencia de bits correspondiente, tal como se conoce de los conceptos de codificación con pérdidas.
El objetivo de la presente invención es proporcionar un concepto eficiente para el procesamiento de señales.
Este objeto se logra por un dispositivo para procesar una señal con una secuencia de valores discretos, según la reivindicación 1, un procedimiento para el procesamiento de una señal, con una secuencia de valores discretos según la reivindicación 18, o un programa informático según la reivindicación 19.
La presente invención se basa en el conocimiento de que, particularmente en el contexto de la codificación/descodi-
ficación sin pérdidas se forma un error de redondeo espectralmente de tal manera que se "acomoda" en la gama de frecuencias de la señal que va a codificarse, en la que la señal tiene una energía de señal alta de todos modos, y que, como consecuencia el error de redondeo no está presente en gamas en las que la señal no tiene de todos modos ninguna energía. Aunque en la técnica anterior en la codificación sin pérdidas y especialmente en la codificación sin pérdidas basándose de algoritmos de enteros se ha distribuido un error de redondeo de forma aleatoria a través de todo el espectro de la señal en la codificación sin pérdida, al espectro ideal se superpone el error de redondeo según la invención en la forma de ruido coloreado y concretamente de tal manera que la energía de ruido debida al redondeo esté presente, donde la señal tiene su energía de señal más alta de cualquier forma, y que así el ruido debido al error de redondeo tiene muy poca o ninguna energía presente, donde la señal que va a codificarse no tiene energía por sí misma. Así se evita el peor caso, en el que el error de redondeo, que es una señal estocástica y por tanto difícil de codificar, es la única señal que va a codificarse en una gama de frecuencias y por tanto aumenta innecesariamente la tasa de bits.
Cuando se considera una señal de audio, en la que la energía se encuentra en la gama de frecuencias bajas, el dispositivo para el redondeo presente según la invención se diseña para lograr una configuración espectral de paso bajo del error de redondeo generado en el sentido de que con frecuencias altas de la señal codificada, no hay ni energía de señal ni energía de ruido, mientras que el error de redondeo se correlaciona en la gama en la que la señal tiene un lote de energía de cualquier manera.
Particularmente, para aplicaciones de codificación sin pérdidas, esto contrapone a la técnica anterior, en la que un error de redondeo se filtra por paso alto espectralmente para llevar al error de redondeo fuera del intervalo audible. Esto también corresponde al caso en el que el intervalo espectral en el que se encuentra el error de redondeo se filtra automáticamente de manera electrónica o por el propio oído, para eliminar el error de redondeo. Sin embargo, para una codificación/descodificación sin pérdidas, el error de redondeo se necesita urgentemente en el descodificador, debido a que de otra manera el algoritmo usado en el descodificador, que es inverso al algoritmo de codificación sin pérdidas, genera distorsiones.
El concepto según la invención de la configuración espectral del error de redondeo se usa preferiblemente en aplicaciones sin pérdidas con una tasa alta de muestreo, dado que particularmente en casos donde los espectros teóricamente se extienden hasta por encima de 40 kHz (debido al sobre-muestreo), en la gama de frecuencias alta, en la que no hay energía de señal, es decir en la que la codificación se realiza de manera eficiente se produce la misma situación que en el caso de una codificación de números no enteros, en la que la energía de la señal es también de cero en la gama de frecuencias alta.
Como un número grande de ceros se codifica muy eficientemente y porque el error de redondeo, que es problemático de codificar, se desplaza al intervalo que de todos modos se codifica típicamente muy finamente, por tanto toda la velocidad de transmisión de datos de la señal se reduce así en comparación con el caso en el que el error de redondeo se distribuye como ruido blanco a través de toda la gama de frecuencias. Asimismo, aumenta el rendimiento de la codificación - y así también el rendimiento de la descodificación, debido a que tampoco debe invertirse nada de tiempo de computación para la codificación y descodificación de la gama de frecuencias alta. El concepto según la invención por tanto lleva también a que puede lograrse un procesamiento de señales más rápido en el lado del codificador y/o en el lado del descodificador.
En un ejemplo de realización preferido de la presente invención, el concepto según la invención de la configuración/reducción del error de aproximación se aplica a transformadas de enteros que pueden invertirse, particularmente la IntMDCT. Hay dos áreas de aplicación, concretamente por una parte, elevación multidimensional, con la que la NDCT puede simplificarse considerablemente con respecto a las etapas de redondeo requeridas y, por otra parte, las operaciones de redondeo requeridas en la aplicación de ventanas de enteros, tal como aparecen en el procesamiento previo antes de la DCT real.
Según la invención, se usa un concepto de realimentación de error para la configuración espectral del error de redondeo, en el que, según la invención, el error de redondeo se desplaza a la gama de frecuencias en la que la señal que se procesa en ese momento tiene la energía de señal más alta. Para las señales de audio y particularmente también para las señales de video, esto será la gama de frecuencias baja, de manera que el sistema de realimentación de error tiene una propiedad de paso bajo. Esto resulta en menores errores de redondeo en la gama de frecuencias superior, en la que hay normalmente menos componentes de señal. En la gama anterior, los errores de redondeo prevalecen en la técnica anterior, que deben codificarse entonces y así aumentan el número de bits requerido para la codificación. Según la invención, este error de redondeo se reduce en las frecuencias más altas lo que disminuye directamente el número de bits requerido para la codificación.
A continuación se explican detalladamente ejemplos de realización de la presente invención con respecto a los dibujos acompañantes. Muestran:
la Figura 1, un diagrama de bloques del concepto según la invención para procesar una señal con una secuencia de valores discretos;
la Figura 2a, un concepto conocido para la configuración espectral de paso alto de un error de cuantificación;
la Figura 2b, un concepto para configurar el paso bajo del error de redondeo, según la presente invención;
la Figura 2c, un diagrama de bloques, según un ejemplo de realización preferido de la presente invención, para el bloque de configuración espectral/redondeo;
la Figura 3, un diagrama de circuito de bloques de un dispositivo preferido para el procesamiento de muestras de audio discretas en el tiempo, para obtener valores de enteros desde los cuales pueden determinarse valores espectrales de enteros;
la Figura 4, una ilustración esquemática de la descomposición de una MDCT y una MDCT inversa, en rotaciones de Givens y dos operaciones de DCT-IV;
la Figura 5, una representación para ilustrar la descomposición de la MDCT con el 50 por ciento de solapamiento en rotaciones y operaciones de DCT-IV;
la Figura 6a, un diagrama de bloques esquemático de un codificador conocido con MDCT y 50 por ciento de solapamiento;
la Figura 6b, un diagrama de bloques de un descodificador conocido, para descodificar los valores generados por la Figura 10a;
la Figura 7, una ilustración de la elevación en la aplicación de ventanas, según la Figura 1;
la Figura 8, una representación "con otro orden" de la elevación de la Figura 7 para la inaplicación de ventanas, antes de la transformación real;
la Figura 9, una aplicación de la presente invención para la aplicación de ventanas, según las Figuras 3, 7 y 8;
las Figuras 10A - 10C, diagramas de bloques de un dispositivo para la conversión, según un ejemplo de realización preferido de la presente invención;
la Figura 11, un dispositivo para la conversión inversa, según un ejemplo de realización preferido de la presente invención;
la Figura 12, una representación de la transformación de dos bloques de valores sucesivos, tal como pueden emplearse para la presente invención;
la Figura 13, una representación detallada de una etapa de elevación multidimensional con una matriz de transformación directa;
la Figura 14, una representación de una etapa de elevación inversa multidimensional con una matriz de transformación inversa;
la Figura 15, una representación de la presente invención para la descomposición de una DCT-IV de la longitud N en dos DCT-IV de la longitud N/2;
la Figura 16, una aplicación del concepto según la invención dentro de la transformación con elevación multidimensional de la Figura 10;
la Figura 17, una representación de dos etapas de elevación sucesivas;
la Figura 18, una representación del concepto para reducir el error de redondeo en dos etapas de elevación sucesivas de la Figura 17 y
la Figura 19, una combinación según la invención del concepto de la Figura 18 con el concepto de la Figura 16.
La Figura 1 muestra un dispositivo para procesar una señal con una secuencia de valores discretos, que se introduce en un dispositivo 202 para manipular por medio de una entrada 200 de señal. La señal está configurada normalmente para tener una primera gama de frecuencias, en la que la señal tiene una alta energía y para tener una segunda gama de frecuencias, en la que la señal tiene una energía comparativamente baja. Si la primera señal es una señal de audio, tendrá la energía alta en la primera gama de frecuencias, es decir en la gama de frecuencias baja, y tendrá la energía baja en la gama de frecuencias alta. Sin embargo, si la señal es una señal de video, también tendrá la energía alta en la gama baja, y tendrá la energía baja en la gama baja. En contraste con la señal de audio, la gama de frecuencias en la señal de video es una gama de frecuencias espacial, a no ser que se consideren tramas de video sucesivas en las que también
existe una frecuencia temporal, relacionada por ejemplo con un intervalo de imagen seleccionado, en tramas sucesivas.
El dispositivo 202 para la manipulación está configurado generalmente para manipular la secuencia de valores discretos de manera que se obtiene una secuencia de valores manipulados en los que al menos un valor manipulado no es de enteros. Esta secuencia de valores discretos que no son enteros se alimenta a un dispositivo 204 para el redondeo de la secuencia de valores manipulados, para obtener una secuencia de los valores manipulados redondeados. Según la invención, el dispositivo 204 para el redondeo está configurado para efectuar una configuración espectral de un error de redondeo, generado por el redondeo de tal manera que un error de redondeo formado espectralmente en la primera gama de frecuencias, es decir, en la gama de frecuencias en la que la señal original tiene una energía alta también tiene una energía alta, y que el error de redondeo formado espectralmente en la segunda gama de frecuencias, es decir, en la gama de frecuencias donde la señal original tiene una energía baja también tiene una energía baja o no tiene energía. Generalmente, la energía del error de redondeo configurado espectralmente en la primera gama de frecuencias es así mayor que la energía del error de redondeo configurado espectralmente en la segunda gama de frecuencias. Sin embargo, la configuración espectral preferiblemente no cambia nada en cuanto a la energía general del error de redondeo.
Preferiblemente, el dispositivo según la invención para generar la secuencia que contiene errores de los valores manipulados redondeados se acopla al dispositivo 206 para convertir a una representación espectral o bien directamente o por medio de combinaciones adicionales de manipulación/redondeos. Así, la secuencia que contiene errores de los valores manipulados redondeados puede alimentarse directamente al dispositivo 206 para la conversión a una representación espectral para lograr un espectro directo de la secuencia que contiene errores de valores manipulados redondeados. Sin embargo, en un ejemplo de realización preferido de la presente invención, el dispositivo para manipular es una etapa de elevación y/o una matriz de elevación, y el dispositivo para el redondeo está configurado para redondear los resultados que no son de enteros de una etapa de elevación. En este caso, al dispositivo 204 le sigue un dispositivo de manipulación adicional que realiza la segunda etapa de elevación, al que, a su vez le sigue un tercer dispositivo de manipulación que implementa la tercera etapa de elevación, teniendo lugar de nuevo otra manipulación, de manera que todas las tres etapas de elevación se logren. Así se genera una secuencia de valores manipulados redondeados que contiene errores, derivada de la secuencia original de valores manipulados redondeados que contiene errores en la salida del dispositivo 204, que después se convierte finalmente a una representación espectral, preferiblemente también por una transformación de enteros provista también con el concepto de la invención, como se ilustra por el bloque 206. La señal de salida de la representación espectral en la salida del bloque 206 tiene ahora un espectro que en contraste con la técnica anterior, ya no tiene un error de redondeo aleatorio distribuido, sino un error de redondeo configurado espectralmente, y concretamente de manera que allí el "espectro útil" tiene una energía alta de señal que hay también una energía de error de redondeo alta, mientras que en las gamas de frecuencia, en las que no se presenta ninguna energía de señal, tampoco está presente en el mejor de los casos ninguna energía de errores de redondeo.
Este espectro generado, según la invención se alimenta después al dispositivo 208 para la codificación de entropía de la representación espectral. El dispositivo para la codificación de entropía puede presentar cualquier medio de codificación, tal como por ejemplo la codificación de Huffman, una codificación aritmética, etc. Especialmente para codificar un gran número de líneas espectrales que son igual a cero y limitan entre sí, es también adecuada una codificación de longitud de ejecución (runlength-codierung) que, por supuesto, no puede aplicarse en la técnica anterior, debido a que en este caso en tales gamas de frecuencia debe codificarse una señal de determinación realmente que sin embargo, tiene un espectro blanco y por tanto es especialmente desfavorable para cualquier clase de herramientas de codificación, debido a que los valores espectrales individuales están sin correlacionar completamente entre sí.
A continuación se explica detalladamente un ejemplo de realización preferido del dispositivo 204 de redondeo con la configuración espectral con referencia a las Figuras 2a, 2b, 2c.
La Figura 2a muestra un sistema de realimentación de error conocido para la configuración espectral de un error de cuantificación, tal como se describe en la publicación especializada "Digitale Audiosignalverarbeitung", U. Zoelzer, Teubner-Verlag, Stuttgart, 1997. Un valor x(i) de entrada se alimenta a sumador 210 de entrada. La señal de salida del sumador 210 se alimenta a un cuantificador 212, que suministra un valor y(i) de salida cuantificado en una salida del dispositivo de configuración espectral. En un segundo sumador 214, se determina la diferencia entre el valor después del cuantificador 212 y el valor antes del cuantificador 212, es decir, el error de redondeo e(i). La señal de salida en el segundo sumador 214 se alimenta a un dispositivo 216 de retardo. El error e(i) retardado por una unidad de tiempo, se resta después del valor de entrada por medio del sumador 210. Esto resulta en una valoración de paso alto de la señal e(n) de error original.
Si se usa z^{-1} (-2 = z^{-1}) en lugar del dispositivo z^{-1} de retardo designado con 216 en la Figura 2a, entonces se produce una valoración de paso alto de segundo orden. En determinados ejemplos de realización tales configuraciones espectrales del error de cuantificación se usan para "enmascarar" el error de cuantificación de la gama perceptible, es decir, por ejemplo de la gama i de paso bajo de la señal x(n), para que el error de cuantificación no se
perciba.
Según la invención, tal como se muestra en la Figura 2b, en su lugar se realiza una valoración de paso bajo para lograr una configuración espectral del error no fuera del intervalo de percepción, sino exactamente en el intervalo de percepción. Para esto, la señal de salida del sumador 210, tal como se muestra en la Figura 2b, se alimenta a un bloque 218 de redondeo, que realiza alguna función de redondeo, que puede ser, por ejemplo, el redondeo por exceso, redondeo por defecto, redondeo por recorte, un redondeo por exceso/redondeo por defecto al siguiente entero o al entero próximo al siguiente o al que viene al próximo al siguiente, En la trayectoria de realimentación de error, es decir, entre el sumador 214 y el sumador 210, hay ahora otro bloque 220 de realimentación adicional al elemento 216 de retardo con una respuesta de h(n) impulso o bien una función H(z) de transferencia. La transformada z de la secuencia de salida, es decir Y(z), se relaciona con la secuencia X(z) de entrada por medio de la ecuación ilustrada en la Figura 2b:
e(n) = y(n) - x'(n)
En la ecuación anterior, x'(n) es la señal de salida del sumador 210, e y(n) es la señal de salida desde el bloque 218 de redondeo.
Asimismo, se aplica la siguiente ecuación:
y(n) = round \ (x'(n))
En la ecuación anterior, "round" representa la función de redondeo, realizada por el bloque 218. Asimismo se aplica la siguiente ecuación, en la que "*" representa la operación de convolución:
x'(n) = x(n) - h(n)
\hskip0.3cm
\text{*}
\hskip0.3cm
e(n - 1)
En el intervalo Z, se encuentra el siguiente resultado:
\hskip55mm
y(z) = X'(z) + E(z)
\hskip55mm
X'(z) = X(z) - E(z)z^{-1}H(z)
\hskip55mm
Y(z) = X(z) + (1 - z^{-1}H(z))E(z)
Puesto que E(z) es el error de redondeo, se configura espectralmente mediante el filtro (1 = z^{-1} H(z)). Según la invención, ahora se usa una función de transferencia de tipo de paso bajo. La función de transferencia de tipo de paso bajo más sencilla puede obtenerse cuando se establece, por ejemplo, H(z) = -1. En este ejemplo sencillo, el error de redondeo de la operación de redondeo anterior se suma por tanto simplemente al valor que se va a redondear, antes de aplicar la siguiente operación de redondeo. Así se consigue una sencilla filtración de paso bajo del error de redondeo, que es muy eficiente para la presente invención y, por lo tanto, preferida.
En la figura 2c se ilustra una implementación. En particular, se ilustra el dispositivo 202 para la manipulación de una secuencia original de valores discretos enteros, que proporciona la secuencia de valores discretos no de enteros y_{0}, y_{1}, y_{2},... y_{i}, en el lado de salida. Ahora, a diferencia de la técnica anterior, cada valor ya no se redondea por sí mismo, tal como se ilustra, por ejemplo, mediante los bloques 20, 24, 28 en la figura 3 o mediante los bloques 104, 110, 142 en la figura 10C o 127, 132, 150 en la figura 11. En lugar de ello, los valores discretos no enteros de la secuencia y_{0}, y_{1}, y_{2}, y_{3}... se filtran, dependiendo unos de otros, con la característica de paso bajo en el ramal de realimentación mediante la "red" mostrada en la figura 2, de manera que se obtiene como resultado la configuración espectral según la invención. Se ilustran elementos similares en la figura 2c y en la figura 2b con los mismos números de referencia.
Asimismo, la figura 2c muestra una implementación paralela, es decir, una implementación en la que los valores que se van a redondear se proporcionan en paralelo. Por supuesto, esta ilustración es sólo esquemática. Los valores y_{0}, y_{1}, y_{2},... pueden proporcionarse en secuencia para luego obtener valores de salida en secuencia, siendo suficiente, en este caso, una realización sencilla de la estructura de los elementos 210, 214, 216, 218, 220. Las estructuras repetidas de los elementos 214, 218, 210, 220 se ilustran solamente para fines de claridad.
El medio 204 de redondeo mostrado en la figura 2a, es eficaz por tanto para calcular primero el valor redondeado [Y_{0}]. Luego se calcula el error i_{0} de redondeo. Entonces, el error de redondeo i_{0} se pondera (filtra) mediante el bloque 220 con la función H(z) de transferencia, que es preferiblemente igual a -1 y se alimenta al sumador 210. Este error de redondeo filtrado se suma al siguiente valor y_{1} de la secuencia, por lo que el resultado del sumador 210 se redondea en el bloque 218, para obtener el siguiente valor [y_{i}] redondeado. A continuación, el error de redondeo se vuelve a determinar por el sumador 214, es decir usando el valor [y_{i}] redondeado y el valor y_{1} original, filtrándose de nuevo este error i_{1} de redondeo obtenido en el bloque 220 para realizar el mismo procedimiento para el siguiente valor y_{2} de la secuencia.
En este punto, ha de indicarse que la dirección es irrelevante. Esto significa que es también posible proceder desde y_{i}, con índice mayor hasta y_{1} con índice menor, es decir, en la dirección opuesta con respecto a lo que se ha simbolizado particularmente por las flechas en la figura 2a, que se extienden desde el bloque 220 hacia el sumador 210. El orden, es decir, si el procedimiento procede desde el índice de secuencia bajo hacia el alto o desde el índice de secuencia alto hacia el bajo, no es por lo tanto importante.
Particularmente, en el caso de la aplicación de la MDCT de enteros (IntMDR), la configuración espectral del error de redondeo se usa preferiblemente de manera especialmente efectiva en sitios que presentan las siguientes condiciones:
-
Se añade un error de redondeo a varios valores adyacentes, de forma independiente entre sí.
-
Los valores adyacentes son señales temporales (en el sentido más amplio), que se convierten después mediante una transformación en una representación espectral, es decir, se transfieren a la gama de frecuencia.
A continuación se explica más detalladamente en qué parte de la MDCT de enteros se usa preferiblemente la configuración espectral del error de redondeo.
El primer caso de aplicación preferido consiste en la aplicación de ventanas antes de la transformación real, es decir, para el redondeo especificado en la figura 3 por los bloques 20, 24, 28. La operación de elevación, tal como se experimenta por cada muestra original individual x_{1},..., x_{N} y tal como esquematiza en la figura 3, puede también observarse mediante el diagrama mostrado en la figura 7. Aquí, las aplicaciones de las tres matrices de elevación, es decir, la multiplicación respectiva por un factor para una muestra, se ilustra en forma de valores de muestras, de manera que el resultado es la secuencia "de arriba a abajo", "de abajo a arriba" y "de arriba a abajo".
Con respecto a la notación en la figura 7, ha de indicarse que, cuando una flecha llega a una línea horizontal, tiene lugar en este caso una suma. Dicha suma se muestra, por ejemplo, en 27 en la figura 7. Cuando la figura 4 se compara a la figura 7, la única diferencia es que x(0) en la figura 4 corresponde a x_{1} de la figura 7.En este aspecto, x_{N} en la figura 7 corresponde a x(N-1) en la figura 4. Sin embargo, x(N/2-1) de la figura 4 corresponde a x_{N/2} en la figura 7. Además, x(N/2) en la figura 4 corresponde a x_{n/2+1} de la figura 7, de manera que el resultado son las mariposas mostradas en la figura 2, mediante las que cada valor del primer cuarto de una ventana se pondera con un valor desde el segundo cuarto de la ventana, según las etapas de elevación, mientras, análogamente, también un valor del tercer cuarto de la ventana se procesa con un valor del cuarto cuarto de la ventana por el "sistema de descenso - ascenso - descenso", tal como se ilustra en la figura 7.
Se procede de manera correspondiente para la pareja de valores X_{N/2} y x_{n/2+1}. Hay de nuevo una secuencia descendente - ascendente - descendente, en la que una etapa 29a descendente va seguida por una etapa 29b ascendente, que, a su vez, va seguida por una etapa 29c descendente.
La Figura 7 muestra así la aplicación de ventana de enteros por elevación. Este cálculo puede realizarse sin ningún problema de otra manera, tal como se ilustra en la Figura 8 sin cambiar el resultado. Así, por supuesto pueden realizarse en primer lugar todas las etapas descendentes (todas las etapas 29a). Después pueden realizarse todas las etapas (29b) ascendentes para ejecutar finalmente todas las etapas 29c descendentes, de manera que los resultados son un bloque 31a descendente, un bloque 31b ascendente y de nuevo un bloque 31c descendente. Ha de indicarse que la Figura 8 corresponde a la Figura 7, pero en otra representación, que es más adecuada para el entendimiento de la presente invención.
La Figura 9 muestra ahora el concepto según la invención, en el que el redondeo según la invención se ejecuta para redondear con una configuración espectral. El concepto del cálculo de elevación, mostrado en la Figura 9, corresponde a la Figura 1, en el sentido de que los valores x_{1}, X_{N/2} de entrada representan la secuencia original de valores discretos de enteros en la entrada 200. Los bloques cd_{1}, cs_{2}... c_{s,} de valoración en el bloque 31a inferior, forman juntos el dispositivo 202 para la manipulación. El bloque designado [.]/configuración de ruido, representa el dispositivo 204 para el redondeo de la Figura 1. En la salida de este bloque 204 se produce ahora la secuencia de los valores manipulados redondeados que contiene errores.
En ejemplo de realización mostrado en la Figura 9, la secuencia de los valores manipulados redondeados, que contienen errores, se suma a una secuencia adicional x_{N/2+1} hasta x_{N}, para obtener una nueva secuencia de valores discretos enteros, que a su vez se manipulan (por los bloques s_{1}, s_{k}, en el bloque 31b superior) para luego lograr de nuevo un redondeo según la invención en el bloque 31b superior por el elemento 204b. Luego está previsto un sumador 205b de valores, como en el bloque 31a inferior, es decir como en el caso del sumador 205a, para obtener la nueva secuencia que a su vez, se alimenta a un manipulador 202c, en el que la señal de salida del manipulador 202c no es de enteros y se redondea en un dispositivo 204c de redondeo adicional para sumarse, a su vez, por un sumador 205c adicional, es decir a la secuencia alimentada al manipulador 202b.
En ejemplo de realización mostrado en la Figura 9, en el lado de salida se produce un bloque de muestra en ventana, que, según la sistematización, tal como se ilustra mediante la Figura 4, se alimenta a los bloques DCt-IV desplazados correspondientemente. Estos bloques de DCT desplazados proporcionan una transformación para convertir una secuencia de valores manipulados redondeados que contiene errores a una representación espectral. Los bloques DCT-IV en la Figura 4, representan así una implementación del dispositivo 205 de la figura 1. Análogamente a esto, los bloques para ejecutar la DCT-IV de enteros inversa representan dispositivos analógicos para convertir a una representación temporal.
A continuación se discutirá la aplicación de la elevación multidimensional con respecto a las Figuras 10 a 15, para presentar una implementación del dispositivo para convertir a la representación espectral 206 de la Figura 10a o bien una implementación de de enteros análoga de la conversión inversa (para un descodificador). El concepto de la elevación multidimensional se presenta en el documento DE-A-10331803.
La figura 10a muestra un dispositivo de conversión de valores discretos en una representación transformada con valores enteros. Los valores discretos se alimentan a través de una primera entrada 100a así como a través de una segunda entrada 100b al dispositivo. A través de la entrada 100a se alimenta un primer bloque de valores discretos, mientras que a través de la entrada 100b se alimenta un segundo bloque de valores discretos. Los valores discretos representan datos de audio o datos de imágenes o datos de video. Tal como se expondrá aún posteriormente, el primer bloque de valores discretos y el segundo bloque de valores discretos pueden comprender efectivamente dos bloques consecutivos en el tiempo de muestras de audio. El primer y el segundo bloque de valores discretos pueden comprender también dos imágenes representadas mediante valores discretos o valores residuales según una predicción o valores diferenciales en una codificación diferencial, etc. Alternativamente, los dos bloques de valores discretos pueden haberse sometido sin embargo a un procesamiento previo, tal como, por ejemplo, en la implementación de números enteros de la MDCT, en la que el primer bloque y el segundo bloque de valores discretos se han generado mediante rotaciones de Givens a partir de muestras reales con aplicación de ventana. El primer y el segundo bloque de valores discretos pueden derivarse por tanto mediante cualquier procesamiento, tal como por ejemplo rotaciones, permutaciones, mariposas de suma/resta, ajustes de escala, etc. de datos de audio o datos de imágenes originales. No obstante, el primer y el segundo bloque de valores discretos contienen, aunque no sean muestras de audio directas o valores de imágenes discretos, información de audio o información de imágenes.
El primer bloque de valores discretos se alimenta a través de la entrada 100a a un dispositivo 102 para el procesamiento del primer bloque de valores discretos empleando una primera regla de transformación para obtener en una salida del dispositivo 102 un primer bloque de valores transformados, tal como se muestra en la figura 10a. Este primer bloque de valores transformados no será normalmente de números enteros sino que comprenderá valores de coma flotante, tal como los que obtienen normalmente mediante cualquier regla de transformación, tal como por ejemplo una transformada de Fourier, una transformada de Laplace, una FFT, una DCT, una DST, una MDCT, una MDST o cualquier otra transformada, tal como una transformada wavelet con cualquier función base. El primer bloque de valores transformados se alimenta a un dispositivo 104 para redondear el primer bloque de valores transformados, para obtener en el lado de salida un primer bloque de valores transformados redondeados. El dispositivo 104 para el redondeo está configurado para realizar cualquier función de redondeo, tal como por ejemplo un redondeo mediante corte o un redondeo hacia arriba o hacia abajo que se lleve a cabo dependiendo del valor de coma flotante, etc.
La regla del redondeo, implementada por el dispositivo 104, es por tanto responsable de que el primer bloque de valores transformados redondeados de nuevo comprenda sólo valores enteros, cuya exactitud se determina por la regla de redondeo usada por el dispositivo 103. El primer bloque de valores transformados redondeados, al igual que el segundo bloque de valores discretos aplicados a la segunda entrada 100b, se alimenta al dispositivo 106 de suma para obtener un segundo bloque de valores sumados. Si se considera el ejemplo de la señal de audio, es evidente que los valores espectrales del primer bloque de valores transformados redondeados, se suman a los valores temporales, desde el segundo bloque de valores discretos por el dispositivo 106. Si los valores discretos del segundo bloque son, por ejemplo, valores de tensión, se recomienda que el primer bloque de valores transformados redondeados también se presente como amplitudes de la tensión, es decir, como valores con la unidad V. En este caso, no se esperarán problemas de unidad en la suma. Sin embargo, es evidente para los expertos en la técnica que cualquier normalización de unidad puede realizarse con el primer bloque de valores transformados redondeados y/o con el segundo bloque de valores discretos, en el sentido de que tanto el primer bloque de valores transformados redondeados como el segundo bloque de valores discretos, por ejemplo, carecen de unidades.
El segundo bloque de valores sumados se alimenta al dispositivo 108 para procesar el segundo bloque de valores sumados, usando una segunda regla de transformación, para obtener un segundo bloque de valores transformados. Si la regla de transformación usada en el dispositivo 102 es, por ejemplo, una regla de transformación de tiempo-frecuencia, entonces la segunda regla de transformación usada en el bloque 108 es, por ejemplo, una regla de transformación de frecuencia-tiempo. Sin embargo, estas rotaciones pueden también invertirse, de manera que el primer y segundo bloques de valores discretos son, por ejemplo, valores espectrales, de modo que los valores temporales se obtienen por el dispositivo 102 para el procesamiento bajo la regla de transformación, mientras que los valores espectrales se obtienen de nuevo por el dispositivo para el procesamiento por medio de la regla de transformación inversa, es decir, el dispositivo 108. La primea y segunda reglas de transformación pueden por tanto ser una regla de transformación directa e inversa, siendo entonces de la regla de transformación inversa la regla de transformación inversa o la regla de transformación directa, respectivamente.
El segundo bloque de valores transformados se alimenta al dispositivo 110 de redondeo, como se muestra en la figura 10a, para obtener un segundo bloque de valores transformados redondeados que se alimenta finalmente al restador 112, para restar el segundo bloque de valores transformados redondeados del primer bloque de valores discretos alimentado por la primera entrada 108a para obtener un bloque de valores de salida enteros de la representación transformada que puede emitirse en una salida 114. Mediante el procesamiento del bloque de valores de salida enteros de la representación transformada usando cualquier tercera regla de transformación, que también se ha usado en el dispositivo 102 o que difiere de la misma y mediante el redondeo posterior del bloque de valores de salida transformados, para obtener un bloque de valores de salida transformados, redondeados, y mediante la suma posterior del bloque de valores de salida transformados redondeados y el segundo bloque de valores sumados, puede obtenerse un bloque ulterior de valores de salida enteros de la representación transformada, que proporciona una representación transformada completa del primer y segundo bloques de valores discretos con el bloque de valores de salida enteros aplicado a la salida 114.
Sin embargo, aún sin las ultimas tres etapas del procesamiento, el redondeo y suma, en las que se usa el bloque de valores de salida enteros de la representación transformada en la salida 114, parte de toda la representación transformada puede ya obtenerse, es decir, por ejemplo la primera mitad que, cuando se somete al procesamiento inverso, permite un cálculo inverso del primer y segundo bloques de valores discretos.
En este punto ha de indicarse que, según la regla de transformación, las reglas de transformación primera, segunda, y, dado el caso, tercera pueden ser idénticas. Éste es el caso, por ejemplo, en la DCT-IV. Si se empleara como primera regla de transformación una FFT, entonces, como segunda regla de transformación (inversa) podría emplearse la IFFT que no es idéntica a la FFT.
Por motivos de la técnica de cálculo se prefiere facilitar la regla de transformación en forma de una matriz que, cuando el número de valores discretos del primer bloque es igual al número de valores discretos del segundo bloque, es una matriz N x N cuadrada, cuando el número de los valores discretos del primer bloque y el número de valores discretos del segundo bloque en cada caso es igual a N.
Los dispositivos 104 y 110 de redondeo están configurados en un ejemplo de realización para redondear según una función de redondeo que proporciona resultados redondeados, cuya exactitud es menor a una exactitud mecánica inherente a un ordenador que realiza las funcionalidades mostradas en la figura 10a. Con respecto a la función de redondeo ha de indicarse que la misma solamente en un ejemplo de realización preferido transforma un número no entero en el siguiente número entero siguiente mayor o menor. La función de redondeo puede transformarse exactamente también en otros números enteros, tal como por ejemplo el número 17,5 en el número 10 o en el número 20 siempre que la función de redondeo provoque una disminución de la exactitud del número que va a redondearse. En el ejemplo anterior, el número no redondeado es un número con un lugar detrás de la coma, mientras que el número redondeado es un número que no tiene ningún lugar detrás de la coma.
Aunque en la figura 10a se muestra el dispositivo 102 para procesar empleando la primera regla de transformación y el dispositivo 108 para procesar empleando la segunda regla de transformación como dispositivos separados, ha de indicarse que en una implementación concreta solamente puede existir una unidad de función de transformación que, controlada por un control de proceso especial, transforma primero el primer bloque de valores discretos y después, en un momento correspondiente del algoritmo, transforma inversamente el segundo bloque de valores sumados. Entonces, la primera y la segunda regla de transformación serían idénticas. Lo mismo es válido para los dos dispositivos 104, 110 de redondeo. Tampoco estos deben estar previstos como dispositivos separados, sino que pueden implementarse mediante una unidad de función de redondeo que, controlada de nuevo por el control de proceso según los requisitos del algoritmo, redondea primero el primer bloque de valores transformados y después redondea el segundo bloque de valores transformados.
En un ejemplo de realización, el primer bloque de valores discretos y el segundo bloque de valores discretos son muestras en ventana de enteros, tal como se obtienen en la salida del bloque 28 en la figura 3. La DCT de enteros en el bloque 14 de la figura 3, se implementa entonces mediante el algoritmo de números de enteros mostrado en la figura 1, de tal manera que la representación transformada en el ejemplo de la señal de audio a la que se refiere la figura 3 representa los valores espectrales enteros en la salida 30 del dispositivo mostrado en la figura 3.
A continuación se ilustra mediante la figura 10b el dispositivo para la conversión inversa que corresponde a la figura 10a, en el que, además del bloque de valores de salida enteros en la salida del bloque 112 de la figura 10a, se usa también el segundo bloque de valores sumados en la salida del dispositivo 106 en la figura 10a. Con respecto a la figura 11, que se explicará en mayor detalle más adelante, esto corresponde al caso en el que sólo existen los bloques 150 y 130, pero no el bloque 124 de transformación.
La figura 10b muestra un dispositivo para convertir inversamente un bloque de valores de salida de enteros de la representación transformada, tal como se obtienen en la salida 114 de la figura 10a, y el segundo bloque de valores sumados. El segundo bloque de valores sumados se alimenta a una entrada 120 del dispositivo para la conversión inversa, mostrado en la figura 10b. El bloque de valores de salida de la representación transformada se alimenta a una entrada 122 ulterior del dispositivo para la conversión inversa.
El segundo bloque de valores sumados se alimenta a un dispositivo 130 para el procesamiento de este bloque, usando la segunda regla de transformación, empleada por última vez en la codificación era la segunda regla de transformación. El dispositivo 130 proporciona en el lado de salida un primer bloque de valores transformados, que se alimenta al dispositivo 132 de redondeo, que, a su vez, genera un primer bloque de valores transformados redondeados en el lado de salida. El primer bloque de valores transformados redondeados se resta luego del bloque de valores de salida de la representación transformada por medio de un dispositivo 134 para obtener el primer bloque de valores discretos en una primera salida 149 del dispositivo de la figura 10b.
Este primer bloque de valores discretos se alimenta al dispositivo 150 para procesar este bloque usando la primera regla de transformación para obtener un segundo bloque de valores transformados en la salida del dispositivo 150. Este segundo bloque de valores transformados restados es, a su vez, redondeado en el dispositivo 152, para obtener un segundo bloque de valores transformado redondeados. Este segundo bloque de valores transformados redondeados se resta del segundo bloque de valores sumados, proporcionado en el lado de entrada, que se ha introducido por medio de la entrada 120, para obtener un segundo bloque de valores discretos en una salida 136 en el lado de salida.
Con respecto a la relación de la primera, segunda y tercera reglas de transformación y con respecto a la implementación especial de los bloques de función individuales en la figura 10b mediante unidades de función común y un control de proceso/almacenamiento intermedio correspondiente, se remite a las realizaciones proporcionadas con referencia a la figura 10a.
A continuación, con referencia a la figura 10c, se describe un ejemplo de realización preferida del dispositivo para convertir en una representación transformada, ilustrado en general en la figura 10a. El ejemplo de realización en la figura 10c comprende una transformación/redondeo adicional, en comparación con la figura 10a, para generar otro bloque de valores de salida enteros a partir del segundo bloque de valores sumados.
La primera entrada 100a comprende N líneas x_{0},... x_{N-1} de entrada para introducir N valores del primer bloque de valores discretos. La segunda entrada 100b comprende x líneas para la introducción de los N valores x_{N},..., x_{2N-1} del segundo bloque de valores discretos. El dispositivo 102 de la figura 10a se designa como el transformador DCT-IV en la figura 10c. El transformador 102 DCT está configurado para crear a partir de N valores de entrada N valores de salida de los cuales cada uno se redondea, tal como se muestra en la figura 10c, mediante el dispositivo 104, mediante la regla de redondeo que se indica con "[.]". El sumador 106 se ilustra de modo que existe una suma de valores. Esto significa que el valor de salida del dispositivo 102 con el índice 0, se suma con el primer valor del segundo bloque de valores discretos, que tienen el índice N. Generalmente, el valor del primer bloque de valores transformados redondeados en la salida del dispositivo 104 de redondeo con un número ordinal i se suma por tanto individualmente con el valor discreto del segundo bloque de valores de salida con un número ordinal N+i, siendo i un índice de redondeo que se extiende de 0 a N-1.
El dispositivo 108 para el procesamiento que usa la segunda regla de transformación, se indica también como el transformador DCT-UV. En el ejemplo de realización preferido, mostrado en la figura 10c, el restador 112, está configurado también para realizar una resta de valores en el sentido de que los valores de salida del dispositivo 110 de redondeo, es decir, los valores del segundo bloque de valores transformados redondeados se restan individualmente del primer bloque de valores discretos. En el ejemplo de realización mostrado en la figura 10c se prefiere realizar una resta correspondiente, en el sentido de que un valor del segundo bloque con un número ordinal N+i se resta de un valor del primer bloque con el número ordinal i, variando i de nuevo de 0 a N-1. De manera alternativa, sin embargo, pueden realizarse también otras sumas/restas en el sentido de que, por ejemplo, un valor de un bloque con el número ordinal N-1 se resta del valor del otro bloque con el número ordinal N, siempre que esto se tenga en cuenta de manera correspondiente en la conversión inversa.
El restador 112 ya proporciona un bloque de valores de salida enteros de la representación transformada en el lado de salida, es decir, los valores de salid de enteros y_{0} a y_{N-1} de la representación transformada. Con el fin de obtener también los valores de salida enteros restantes de la representación transformada, es decir, el bloque posterior y_{N} a y_{2N-1} si esto es opcionalmente deseado, el bloque de valores de salida de enteros de la representación transformada, que se aplica a la salida 114, se somete a una transformación usando la tercera regla de transformación mediante el transformador 140 directo, redondeándose de nuevo los valores de salida del mismo, tal como se ilustra por el dispositivo 142 de redondeo, para ahora realizar una suma de estos valores con el segundo bloque de valores sumados en la salida del sumador 106, como se ilustra por el número de referencia 144 en la figura 10c. Los valores de salida del sumador 144 representan entonces otro bloque 146 de valores de salida de enteros de la representación transformada, que se designa por y_{N} a y_{2N-1}.
A continuación, se ilustra un dispositivo para convertir inversamente la representación transformada, según un ejemplo de realización, con respecto a la figura 11. Ha de indicarse que las operaciones realizadas por el dispositivo ilustrado en la figura 10c, se invierten sin pérdidas por el dispositivo ilustrado en la figura 11. La figura 11 corresponde a la figura 10b, con la excepción de la etapa adicional de transformación/redondeo, para generar, a partir del bloque adicional de valores de salida transformados, el segundo bloque de valores sumados, que se alimenta a la entrada 120 en el ejemplo de realización mostrado en la figura 10b. Ha de indicarse que la función de suma se invierte en cada caso mediante la función de resta. Ha de indicarse además que una pareja de sumador/restador (144 de la figura 10c y 128 de la figura 11) puede también cargarse con variables de entrada invertidas con respecto al signo, de manera que, si un grupo de variables de entrada se carga con un signo negativo en comparación con el caso mostrado, el sumador 144 realiza realmente una operación de resta, siempre que esto se tenga en cuenta en cuenta en el dispositivo contrario (128 en la figura 11), que luego realizará realmente una operación de suma.
El restador 128 mostrado en la figura 11, el sumador 134 y el otro restador 154 se configuran de nuevo para ejecutar una suma/resta de valores individuales, empleándose de nuevo el mismo procesamiento de número ordinal, como se describió con respecto a la figura 10c. Si se empleara otra utilización de número de orden, distinta a la mostrada, entonces esto se tendría en cuenta de manera correspondiente en la figura 11.
En la salida del restador 134 ya está presente el primer bloque 136 de valores discretos, designados por x_{0} a x_{N-1}. Con el fin de también obtener el resto de la representación transformada inversamente, el primer bloque de valores discretos se alimenta al transformador 150, que trabaja con la primera regla de transformación, cuyos valores en el lado de salida se redondean por el dispositivo 152 de redondeo y se restan del segundo bloque de valores restados en la salida del restador 128 para finalmente también obtener el segundo bloque 156 de valores discretos, designados por x_{n}..., x_{2N-1}.
A continuación, con referencia a las figuras 12 - 15, se aclara el trasfondo matemático de los dispositivos de la invención, tal como se han mostrado mediante las figuras 10a, 10b, 10c y 11. Mediante el dispositivo ilustrado, de conversión y/o de conservación inversa, se crean procedimientos de transformación de enteros para una codificación de audio sin pérdidas, en los que se reduce el error de aproximación. Además, el esfuerzo de cálculo también se tiene en cuenta en el sentido de que el planteamiento de solución conocido de la utilización del esquema de elevación ya no se plantea en cada rotación de Givens, apareciendo en éste siempre mariposas de sumas-diferencias triviales. Éstas aumentan considerablemente el esfuerzo de cálculo en comparación con la versión original de números no enteros de la transformación que va a realizarse.
Normalmente, el esquema de elevación se usa para obtener una aproximación de enteros que se puede invertir de una rotación de Givens.
10
Esta aproximación de enteros se logra usando una función de redondeo, después de cada suma, es decir, después de cada etapa de elevación.
El esquema de elevación puede emplearse también para una aproximación de enteros que puede invertirse de operaciones de ajuste a escala determinadas. En la publicación especializada R. Geiger y G. Schuller, "Integer low delay and MDCT filter banks" Actas de la conferencia de Asilomar de Señales, Sistemas y Ordenadores, 2002 se muestra y se describe la descomposición de elevación siguiente de una matriz de ajuste a escala 2x2 con un determinante
igual a 1:
11
esta descomposición de elevación, que es unidimensional, es decir que se refiere solamente a una matriz de ajuste a escala 2x2, se amplia en el caso multidimensional. En particular, todos los valores de la ecuación anterior se sustituyen por matrices nxn, siendo n, por tanto el número de valores discretos de un bloque, mayor o igual a 2. Por tanto se deduce que para cualquier matriz T nxn, que preferiblemente pueda invertirse, es posible la siguiente descomposición en matrices de bloques 2n x 2n, describiendo E_{n} la matriz identidad n x n.
12
Además de operaciones sencillas, como permutaciones o multiplicaciones con -1, los tres bloques de esta descomposición tienen la estructura general siguiente
13
Para esta matriz de bloques 2n x 2n puede emplearse un esquema de elevación generalizado según la invención, que se denomina también en lo sucesivo como elevación multidimensional.
Para un vector de los valores x = (x_{0,}…, x_{2n-1}) la aplicación de esta matriz de bloques proporciona la siguiente ecuación:
14
Ha de indicarse que en el lado derecho de la ecuación anterior se dispone un vector cuya dimensión, es decir, su número de líneas es igual a 2n. Las primeras n componentes, es decir las componentes de 0 a n-1 corresponden a de x_{0} a x_{n-1}. Las segundas n componentes, es decir la segunda mitad del vector que se produce en el lado derecho de la ecuación anterior, son iguales a una suma del segundo bloque de valores discretos, es decir x_{n},…, x_{2n-1}, sumado ahora sin embargo a la multiplicación de la matriz A, que corresponde a la matriz de transformación de las figuras 10a, 10b, 10c y 11, y al primer bloque de valores discretos x_{0},…, x_{n-1}. La matriz de transformación representa la primera, la segunda o la tercera regla de transformación.
De manera similar al esquema de elevación habitual con matrices 2 x 2 de la forma:
15
estas matrices 2n x 2n pueden emplearse para aproximaciones de números enteros que pueden invertirse de la transformación T de la siguiente manera. Para valores (x_{0},…, x_{2n-1}) enteros iniciales se redondean los valores (Y_{0},…, Y_{n-1}) = A·(x_{0},…, x_{n-1}) de salida de coma flotante, y concretamente en valores enteros, antes de sumarse a los valores (x_{0},…, x_{2n-1}) enteros. La inversa de la matriz de bloques se produce de la siguiente manera:
16
\newpage
Así, este proceso puede invertirse sin errores empleándose simplemente la misma matriz A y la misma función de redondeo y restando los valores resultantes en lugar de la suma en el procesamiento directo. El procesamiento directo se muestra en la figura 13, mientras que el procesamiento inverso se ilustra en la figura 14. Ha de indicarse que la matriz de transformación en la figura 11 es idéntica a la matriz de transformación en la figura 14, lo que se prefiere por motivos de sencillez de la implementación.
Puesto que los valores (x_{0},..., x_{n-1}) no se modifican en la etapa directa mostrada en la figura 13, todavía están presentes para la etapa inversa, es decir para la etapa de inversión en la figura 14. Ha de indicarse que no existen restricciones especiales para la matriz A. Por tanto, no es necesario que la misma deba poder invertirse.
Con el fin de obtener una aproximación de enteros que se pueda invertir de la MDT conocida, esta MDCT se descompone en rotaciones de Givens en una primera fase, siendo esta fase la fase de aplicación de ventana, y una fase DCT-IV siguiente. Esta descomposición se muestra en la figura 3 que va a explicarse a continuación y se describe detalladamente en el documento DE 10129240 A1.
En contraposición al estado de la técnica en el que las DCT-IV se descomponen en varias fases de rotaciones de Givens, la transformación se deja según la invención y después se redondea.
De manera conocida, por tanto, la transformación de enteros de la DCT-IV se realiza mediante varias fases de rotaciones de Givens basadas en la elevación. El número de rotaciones de Givens se determina mediante el algoritmo rápido empleado en el que se basan. De esta manera, el número de rotaciones de Givens se proporciona mediante O (N log N) para una transformación de longitud N. La fase de aplicación de ventana de cada descomposición MDCT se compone solamente de N/2 rotaciones de Givens o de 3N/2 etapas de redondeo. De esta manera, especialmente en longitudes de transformación que son altas, tal como las que se emplean en aplicaciones de codificación de audio (por ejemplo 1024), la aproximación de enteros de las DCT-IV proporciona la cantidad principal para el error de aproximación.
El planteamiento de solución emplea el esquema de elevación multidimensional descrito. Con ello el número de etapas de redondeo en la DCT_{IV} se reduce a 3N/2, es decir se iguala al número de etapas de redondeo en la fase de aplicación de ventana, y concretamente en comparación con las aproximadamente 2N log_{2} N etapas de redondeo en el planteamiento de solución basado en la elevación convencional.
Según la invención, la DCT-IV se emplea simultáneamente en dos bloques de señales. Una posibilidad para esto se muestra en la figura 12, en la que simplemente, por ejemplo, dos bloques de muestras que se suceden en el tiempo se someten a una DCT-IV. Ambos bloques, que se someten a las dos transformaciones, podrían ser sin embargo también muestras de dos canales de una señal multicanal.
La descomposición de la ecuación de elevación multidimensional descrita anteriormente se aplica a la regla de transformación, que también puede considerarse como matriz N x N. Dado que la inversa, especialmente en la DCT-IV, es de nuevo la DCT-IV, se produce la siguiente descomposición para el concepto mostrado en la figura 12:
17
Las permutaciones de las multiplicaciones con -1 pueden extraerse en matrices de bloques propias de manera que se produce la siguiente relación:
18
De este modo, puede obtenerse la aplicación de una transformación en dos bloques de señales, es decir en dos bloques de valores discretos, con preferiblemente tres etapas de elevación multidimensional:
19
\newpage
La ecuación anterior se ilustra gráficamente en la figura 10c mediante un ejemplo de realización. La conversión inversa se ilustra correspondientemente en la figura 11, tal como se ha expuesto.
Con el planteamiento de solución según la invención pueden implementarse dos transformadas DCT-IV de la longitud N de manera que pueden invertirse, necesitándose solamente 3N etapas de redondeo, es decir 3N/2 etapas de redondeo por transformada.
La DCT-IV en las tres etapas de elevación multidimensional puede presentar una implementación cualquiera, es decir, por ejemplo una implementación basada en una coma flotante o una coma fija. Ni siquiera debe poder invertirse. Solamente debe realizarse exactamente de la misma manera en el proceso directo y el proceso inverso. Esto lleva a que este concepto sea adecuado para longitudes de transformación altas, por ejemplo de 1024, tal como se emplean en aplicaciones de codificación de audio actuales.
La complejidad de cálculo general es igual a 1,5 veces la complejidad de cálculo de la implementación de número no enteros de las dos transformadas DCT-IV. Esta complejidad de cálculo es todavía claramente más baja que las implementaciones de enteros basadas en la elevación convencional, que es aproximadamente el doble de compleja que la DCT-IV convencional, dado que estas implementaciones deben emplear las mariposas de suma/resta triviales que se basan en el esquema de elevación empleado para conseguir mantener una energía, tal como se describe en R. Geiger, T. Sporer, J Koller y K. Brandenburg, "Audio Coding based on Integer Transforms" en la 111ª Convención AES, Nueva York, 2001.
El planteamiento de solución mostrado calculará al menos dos transformadas DCT-IV de alguna manera simultáneamente, es decir dentro de una conversión. Esto puede conseguirse por ejemplo calculando la transformada DCT-IV para dos bloques consecutivos de la señal de audio o dos imágenes consecutivas de una señal de imagen. En el caso de una señal estéreo de dos canales esto puede conseguirse también calculando la DCT-IV del canal izquierdo y del derecho en una acción de conversión o una acción de conversión inversa. La primera versión introduce un retardo adicional de un bloque en el sistema. La segunda versión es posible para canales estéreo o dicho en general para señales multicanal.
Alternativamente si no se desean ambas opciones, cuando sin embargo debe mantenerse una longitud de procesamiento de bloque de N valores, puede descomponerse también la DCT-IV de la longitud N en dos transformadas DCT-IV de la longitud N/2. En este contexto se remite a Y. Zeng, G. Bi y Z. Lin, "Integer sinusoidal transforms based on lifting factorization" en ICASSP'01, mayo de 2001, págs. 1181-1184, donde se explica esta descomposición. Adicionalmente a las dos transformadas DCT de longitud N/2 se necesitan aún algunas fases adicionales de rotaciones de Givens. En este algoritmo se aplica además una matriz de bloques:
20
es decir, mariposas de suma/resta, una matriz diagonal de bloques con rotaciones de Givens N/2 y además algunas matrices de permutación. Aplicando estas fases adicionales de rotaciones de Givens N/2 puede emplearse el enfoque de elevación multidimensional también para el cálculo solamente de una DCT-IV de longitud N. La estructura básica de este algoritmo se muestra en la figura 15, en la que además de la fase de inversión real, en la que se emplean dos transformadas DCT-IV con la longitud N/2 se presenta en primer lugar una fase de mariposa para calcular el primer y el segundo bloque de valores discretos que ahora sin embargo presentan solamente una longitud de N/2. En el lado de la salida se prevé además una fase de rotación, para a partir del bloque de valores de salida de la representación transformada y del bloque adicional de valores de salida de la representación transformada, que ahora sin embargo únicamente tienen N/2 valores en cada caso, obtener los valores de salida y_{0}, …, y_{N-1}, que son iguales a los valores de salida de una operación DCT-IV de la figura 12, tal como puede observarse a partir de una comparación del índice en el lado de la entrada y en el lado de la salida de la figura 15 y la figura 12.
Hasta ahora sólo se ha expuesto la aplicación de elevaciones multidimensionales en matrices de bloques de la siguiente forma:
100
Sin embargo, también es posible descomponer otras matrices de bloques en etapas de elevación multidimensional. Por ejemplo puede utilizarse la siguiente descomposición, para implementar la combinación de una fase con mariposas normalizadas de suma/resta y dos bloques de transformadas de DCT-IV mediante tres etapas de la elevación multidimensional:
101
A partir de la ecuación anterior se observa que la primera regla de transformación, que se utiliza en el paréntesis izquierdo de la ecuación anterior, y la segunda regla de transformación, que se utiliza en el paréntesis intermedio de la ecuación anterior, y la tercera regla de transformación, que se utiliza en el último paréntesis de la ecuación anterior, no tienen que ser idénticas. Además a partir de la ecuación anterior se observa que no sólo pueden descomponerse matrices de bloques, en las que sólo estén ocupados los elementos diagonales principales, sino que también pueden procesarse matrices completamente ocupadas. Además debe indicarse que no se limita a que las reglas de transformación, que se utilizan en una representación transformada durante la conversión, deban ser idénticas o si quiera deban tener alguna relación entre sí, de tal manera que, por ejemplo, la segunda regla de transformación es la regla de transformación inversa con respecto a la primera regla de transformación. En principio pueden utilizarse también tres reglas de transformación diferentes entre sí, siempre que esto se tenga en cuenta en la representación inversa.
En este contexto vuelve a hacerse referencia a la figura 10c y a la figura 11. Durante la conversión de los valores discretos en una representación transformada el dispositivo 102 puede estar configurado para implementar una primera regla de transformación cualquiera. Además el dispositivo 108 puede estar configurado también, para utilizar cualquier otra regla de transformación o la misma, que se designa como segunda regla de transformación. Además el dispositivo 140 puede estar configurado, para utilizar en general una tercera regla de transformación cualquiera, que no necesariamente tiene que ser igual a la primera o la segunda regla de transformación.
Sin embargo, durante la conversión inversa de la representación transformada debe encontrarse una adaptación a las reglas 1-3 de transformación presentadas en la figura 10c, para que el primer dispositivo 124 no realice para la conversión una regla de transformación cualquiera, sino la tercera regla de transformación, que se ha realizado en el bloque 140 de la figura10c. De manera correspondiente, el dispositivo 130 en la figura 11 debe realizar la segunda regla de transformación, que también se ha realizado mediante el bloque 108 en la figura 10c. Finalmente el dispositivo 150 de la figura 11 debe realizar la primera regla de transformación, que también se ha realizado mediante el dispositivo 102 de la figura 10c, para obtener una conversión inversa sin pérdidas.
La Figura 16 muestra una modificación del concepto descrito en la figura 10c. En particular, los redondeos en los elementos 104, 110, 142 para la transformación directa o en los elementos 126, 132, 152 en la transformación inversa ya no se ejecutan como muestra, sino que hay una configuración espectral del error de redondeo.
Cuando se compara la figura 10c con la figura 16, es evidente que se prefiere sustituir sólo el bloque 104 por el bloque 204a, y usar el bloque 204b en lugar del bloque 110 de redondeo. Este es el caso debido a que el concepto es especialmente ventajoso cuando hay una transformación subsiguiente en la gama de frecuencias, en la que el ruido blanco del error de redondeo resulta problemático cuando se realiza una configuración espectral. Puesto que no tiene lugar una transformación de frecuencia después del redondeo 142, una configuración espectral en el bloque 142 ya no implicará una ventaja. Sin embargo, este es el caso para el bloque 204a, debido a que tiene lugar de nuevo una conversión de frecuencia mediante la transformación en el bloque 108. La configuración espectral según la invención en el bloque 204b aún es también por tanto ventajosa, debido a que tiene lugar de nuevo una transformación mediante el último bloque 140. Sin embargo, como es evidente con respecto a la figura 16, el error de redondeo configurado como ruido entra ya en el bloque 114 de salida, de manera que, en el bloque 204b, puede también ya realizarse un redondeo común, como se ilustra por los bloques 110 en la figura 10c, en lugar de la configuración espectral del error de redondeo.
Depende del caso individual de aplicación si hay un redondeo de configuración espectral o un redondeo común, es decir, con un error de redondeo que tiene una distribución espectral aleatoria, al final de la segunda transformación, es decir, la transformación 108.
Según la invención, el redondeo independiente de un cierto número de, por ejemplo, k valores se sustituye por tanto por el redondeo con configuración espectral, que también puede denominarse como "redondeo dependiente".
De la discusión anterior, con respecto a la figura 16, resulta evidente que la configuración espectral del error de redondeo también puede usarse en la DCT de enteros requerida para IntMDCT. Sin embargo, tiene que considerarse aquí, como se ha expuesto, que la configuración espectral mediante la realimentación de error, es sólo ventajosa particularmente cuando los valores que deben redondearse son señales temporales que se transfieren a la gama de frecuencia mediante una etapa de transformación posterior. Por lo tanto, tal como se ilustra mediante la elevación multidimensional de la figura 16, la configuración espectral es ventajosa en las primeras dos etapas, pero ya no es ventajosa necesariamente en la tercera etapa.
Ha de indicarse que la figura 16 muestra el caso que corresponde a la figura 10c según la invención en un codificador. El caso correspondiente a la figura 16 en el descodificador se deduce directamente de una comparación de la figura 16 y la figura 11. El descodificador que corresponde directamente a la figura 16 se deduce de la figura 11, en el sentido de que todos los bloques funcionan de manera idéntica, con la excepción de los dos bloques, 132, 152 de redondeo. En la figura 11, estos dos bloques de redondeo funcionan como bloques de redondeo independientes y serán sustituidos, en el descodificador según la invención, por bloques 204a, 204b de redondeo dependientes, que tienen todos la estructura mostrada por ejemplo mediante la figura 2c. En particular, se indica que va a usarse exactamente el mismo algoritmo de redondeo de configuración espectral en el descodificador que en el codificador.
El concepto ilustrado en las Figuras 2b y 2c, particularmente para H(z) = "-1", es también adecuado además especialmente para usar una reducción del error de redondeo y particularmente una reducción del error de redondeo en las transformaciones de enteros. Tal reducción del error de redondeo es posible cuando se redondean dos valores de coma flotante y se suman al mismo valor, en lugar de a diferentes valores. Dicha situación a modo de ejemplo se ilustra en la figura 17. En este caso, primero hay una primera etapa de elevación con una secuencia descendente - ascendente - descendente entre los componentes de elevación x_{1} y x_{3}. Hay además una segunda secuencia de elevación con la secuencia conocida descendente - ascendente - descendente, pero ahora con los componentes de elevación x_{2} y x_{3}. En particular, el valor x_{3} obtenido en la primera operación de elevación se usa para servir como un participante de suma en la segunda etapa de elevación, tal como es evidente en la figura 17. Ha de indicarse de nuevo que, cuando una flecha llega a una línea horizontal, esto representa una suma. En otras palabras, un valor que se ha redondeado ase suma por tanto al valor correspondiente a la línea horizontal.
Específicamente, en el ejemplo mostrado en la figura 17, el valor x_{1} se pondera primero (bloque 250) y luego se redondea individualmente (bloque 252). La señal de salida del bloque 252 se suma a x_{3} (bloque 254). Entonces, el resultado de la suma 254 se vuelve a ponderar (bloque 256) y se redondea de nuevo (bloque 258). El resultado de este redondeo 258 se suma ahora a x_{1} (260). El resultado de la suma 260 se vuelve a ponderar (bloque 262) y a redondear (bloque 264) para sumarse al valor actual de x_{3} (para dar el bloque 266). Correspondientemente, el valor x_{2} se pondera mediante un bloque 270 y luego se redondea mediante un bloque 272. El resultado del bloque 272 se suma (274) al valor actual ahora de x_{3}. Luego, se vuelve a ponderar (276) y a redondear (278) para sumar (280) el resultado del bloque 278 de nuevo al valor actual de x_{2}. El resultado de esta suma 280 se vuelve a ponderar (bloque 282) y el resultado ponderado se redondea (bloque 284) para luego sumar el resultado del bloque redondeado 284 de nuevo al valor ahora actual de x_{3} (bloque 286), para obtener un resultado del valor para x_{3}. Puede observarse en la figura 17 que, en primer lugar, un primer valor, es decir, el resultado del bloque 262, se redondea y luego se suma a x_{3}. Además, un segundo valor, es decir, el resultado del bloque 270, también se redondea (bloque 272) y luego se suma al valor x_{3} (sumador 274). Se produce por tanto la situación de que dos valores de coma flotante se redondean, uno después del otro, y se suman al mismo valor, en lugar de a diferentes valores. En el ejemplo mostrado en la figura 17, el resultado de la tercera y cuarta etapas de elevación se suman al mismo valor, es decir x_{3}, de manera que la suma se hace con la función de redondeo [.]:
[X_{1} \cdot CS_{1}] + [X_{2} \cdot CS_{2}]
Si el error de la tercera etapa de elevación durante el redondeo se alimenta a la cuarta etapa de elevación, el error de la tercera etapa puede usarse en este caso y sólo se genera un error de redondeo, en lugar de los dos errores de redondeo. Con respecto al cálculo, esto resulta de la siguiente relación:
[X_{1} \cdot CS_{1}] + [X_{2} \cdot CS_{2} + X_{1} \cdot CS_{1}] - [X_{1} \cdot CS_{1}] =
[X_{2} \cdot CS_{2}] + [X_{1} \cdot CS_{1}]
Con respecto al cálculo, la alimentación del error de redondeo en la siguiente etapa de redondeo es por tanto, en este caso, idéntica a la suma de los valores y a un redondeo subsiguiente. Esta situación se ilustra en la figura 18, siendo esta Figura 18 correspondiente a la figura 17, sin embargo, los dos bloques 264, 272 de redondeo separados y los dos sumadores 266, 274 separados se sustituyen por un bloque 268 configurado para implementar la ecuación anterior. Por lo tanto, los resultados de los dos bloques 262 y 270 se suman primero en forma no redondeada y luego se redondean. En casos favorables, el error de redondeo se reduce por tanto hasta la mitad. En la salida del bloque 268 se produce ahora solamente un único resultado, que se suma a x_{1} mediante un sumador 269.
Una combinación de reducción y configuración del error de redondeo puede también producirse, por ejemplo, cuando se suceden un conjunto de rotaciones de Givens y una etapa de elevación multidimensional, tal como se ilustra en la figura 19. Por tanto, a modo de ejemplo solamente, la última etapa de una secuencia descendente - ascendente - descendente para varios valores se realiza a partir de los valores x_{1} a x_{4}, es decir, por ejemplo, la etapa 31c descendente de la figura 9. Estos valores se suman ahora a valores correspondientes, a los que también se sumarán los valores redondeados en la figura 16, es decir, los valores en la salida del bloque 204a. En este caso se prefiere sumar los valores no redondeados primero, concretamente mediante los sumadores 203 mostrados en la figura 19, y luego redondear los valores sumados en el bloque 204 en la figura 19 y someterlos simultáneamente a una configuración de ruido, de tal manera que entonces sólo se obtiene un simple error de redondeo y los valores de salida después de la suma mediante los sumadores 106 contienen menos errores. La situación en la figura 19 se produce por tanto cuando la figura 9 se coloca a la izquierda de la figura 16, y particularmente cuando se usa un valor N/2 DCT-IV en lugar de N valores DCT-IV.
Según la invención, se prefiere por tanto combinar la reducción del error de redondeo con la configuración del error de redondeo. En el caso de la reducción del error de redondeo, se procesan y se redondean por tanto conjuntamente varios valores de entrada, sumándose los valores redondeados a un valor, mientras que, en el caso de la configuración espectral del error de redondeo, los valores redondeados se redondean independientemente entre sí y se suman a varios otros valores, respectivamente, diferentes.
Además se indica que la situación en la figura 19 puede también darse cuando, como se ilustra en la figura 15, se usan N/2 DCTs. Aquí, antes de la fase de conversión, es decir, antes de los dos bloques de DCT, existe la fase denominada como la fase de mariposa en la figura 15, en la que los valores de entrada x_{0} a x_{N/2-1} se ponderan de manera correspondiente y se redondean para luego sumarse a los mismos valores a los que también se suman los valores de la fase DCT-IV. Se indica además que la fase de conversión en la figura 15 se ilustra solamente en forma esquemática. Los dos bloques DCT-IV ilustrados esquemáticamente en la figura 15 se sustituirían en una implementación práctica por los componentes mostrados en la figura 16, si en la figura 16 se escribe en su lugar x_{N-1} x_{N/2-1} y si en su lugar se escribe x_{N/2} y si en su lugar se escribe x_{n/2-1} xN_{-1}.
Así, la figura 19 muestra una implementación preferida particularmente para monoaplicaciones, es decir para el caso en el que se va a usar una DCT-IV N/2.
Dependiendo de las circunstancias, el procedimiento según la invención para procesar una señal con una secuencia de valores discretos puede realizarse en hardware o en software. La implementación puede realizarse en un medio de almacenamiento digital, particularmente un disquete o un DC, con señales de control que pueden leerse electrónicamente, que pueden funcionar junto con un sistema informático programable, de manera que se realice el procedimiento. Generalmente, la invención además consiste por tanto en un producto de programa informático con un código de programa para realizar el procedimiento de la invención almacenado en un soporte legible por ordenador, cuando el producto de programa informático se ejecuta en un ordenador. En otras palabras, la invención también es por tanto un programa informático con un código de programa para realizar el procedimiento, cuando este programa informático se ejecuta en un ordenador.

Claims (19)

1. Dispositivo para el procesamiento de una señal con una secuencia de valores discretos que representan datos de audio, datos de imágenes o datos de vídeo, existiendo una primer gama de frecuencias, en la que la señal tiene una energía alta, y en el que existe una segunda gama de frecuencias, en la que la señal tiene una energía baja, con las siguientes características:
un dispositivo (202) para manipular la secuencia de valores discretos, para obtener una secuencia de valores manipulados, de manera que al menos uno de los valores manipulados es de no enteros; y
un dispositivo (204) para redondear la secuencia de los valores manipulados, para obtener una secuencia de valores manipulados redondeados de enteros, estando configurados el dispositivo (204) para redondear para producir una configuración espectral de un error de redondeo generado, de manera que un error de redondeo configurado espectralmente tiene una energía mayor en la primera gama de frecuencias que en la segunda gama de frecuencias.
2. Dispositivo según la reivindicación 1, en el que la señal es una señal de tiempo, en la que los valores discretos son valores discretos en el tiempo, y que además presenta las siguientes características:
un dispositivo (208) para convertir al menos la secuencia de valores manipulados redondeados o una secuencia derivada de la secuencia de valores manipulados redondeados en una representación espectral con coeficientes espectrales que contienen más errores de redondeo en la primera gama de frecuencias que en la segunda gama de frecuencias; y
un dispositivo (208) para codificar la representación espectral.
3. Dispositivo según la reivindicación 1 ó 2, en el que la primera gama de frecuencias es un gama de frecuencias bajas, en la que la segunda gama de frecuencias es un gama de frecuencias altas, y en el que el dispositivo (204) para redondear está configurado para efectuar la configuración espectral, usando una característica de paso bajo para la filtración de uno o más errores de realimentación.
4. Dispositivo según una de las reivindicaciones precedentes, en el que el dispositivo (204) para redondear está configurado para redondear (218) un primer valor discreto, para determinar (214) un error de redondeo generado al redondear el valor discreto, para evaluar (220) el error de redondeo, y para (210) combinar el error de redondeo evaluado con un segundo valor discreto adyacente al primer valor discreto en la secuencia, para obtener un valor combinado, y para redondear (218)el valor combinado para obtener una versión redondeada del segundo valor.
5. Dispositivo según una de las reivindicaciones precedentes, en el que el dispositivo (204) de redondeo está configurado para evaluar el error de redondeo con una función de redondeo, cuya función de transferencia es igual a "-1".
6. Dispositivo según una de las reivindicaciones precedentes, en el que los valores discretos son valores de enteros.
7. Dispositivo según una de las reivindicaciones precedentes, en el que el dispositivo (204) de redondeo está configurado para generar valores redondeados que tienen menos exactitud que los valores manipulados.
8. Dispositivo según una de las reivindicaciones precedentes, que está configurado para aplicar una ventana de enteros, o una ventana inversa de enteros,
en el que la señal incluye n/2 valores discretos de un bloque de 2N valores discretos;
en el que el dispositivo (202a) de manipulación está configurado para ponderar cada uno de los n/2 valores discretos con un valor determinado por una primera etapa de elevación;
en el que el dispositivo además presenta un primer sumador (205a) para la suma de valores de la secuencia de valore manipulados redondeados a una secuencia con otros N/2 valores discretos del bloque de los 2N valores discretos para obtener un primera secuencia de valores sumados;
en el que el dispositivo además presenta un dispositivo (202b) de manipulación adicional para ponderar cada valor de la primera secuencia de valores sumados con un valor determinado por una segunda etapa de elevación, para obtener una secuencia adicional de valores manipulados;
en el que el dispositivo además presenta un dispositivo (204b) de redondeo adicional para obtener una secuencia adicional de valores manipulados redondeados;
en el que el dispositivo comprende un segundo sumador (205b) para la suma de valores para obtener una segunda secuencia de valores sumados;
\newpage
en el que el dispositivo presenta además otro dispositivo (202c) de manipulación adicional para ponderar cada valor de la segunda secuencia de valore sumados con un valor determinado por una tercera etapa de elevación, para obtener otra secuencia más de valores manipulados;
en el que el dispositivo además incluye otro dispositivo (204c) de redondeo adicional para obtener otra secuencia adicional de valores manipulados redondeados;
en el que el dispositivo además incluye un tercer sumador (205c) para obtener una tercera secuencia de valores sumados;
en la otra secuencia adicional de valores manipulados es de N/2 valores a los que se ha aplicado una ventana o una ventana inversa.
9. Dispositivo según la reivindicación 8, en el que el dispositivo de manipulación está configurado para usar los siguientes factores como factores de ponderación para los N/2 valores:
GF_{k} = (cos \ \alpha - 1)/seno \ \alpha
siendo GF_{k} el factor de ponderación para el valor con un índice k ordinal, y en la que \alpha representa un ángulo al que se aplica la siguiente ecuación:
\alpha = arctan[w(N/2 - 1 - k)
\hskip0.3cm
/
\hskip0.3cm
w(N/2 + k)]
en la que k discurre entre 0 y N/2-1, y w representa una ventana.
10. Dispositivo según la reivindicación 9, en el que el dispositivo de manipulación está configurado para usar los siguientes factores como factores de ponderación para los N/2 valores:
GF_{k} = seno \ \alpha
siendo GF_{K} el factor de ponderación para el valor con un índice k ordinal, y en la que \alpha representa un ángulo al que se aplica la siguiente ecuación:
\alpha = arctan[w(N/2 - 1 - k)
\hskip0.3cm
/
\hskip0.3cm
w(N/2 + k)]
en la que k discurre entre 9 y N/2-1 y en la que w representa una función de ventana.
11. Dispositivo según una de las reivindicaciones 8, 9 ó 10, en el que el otro dispositivo de manipulación adicional está configurado para usar los siguientes factores como factores de ponderación para los N/2 valores:
GF_{k} = (cos \ \alpha - 1) / seno \ \alpha
en la que GF_{k} es el factor de ponderación para el valor con un índice k ordinal, y en la que \alpha representa un ángulo al que se aplica la siguiente ecuación:
\alpha = arctan[w(N/2 - 1 - k)
\hskip0.3cm
/
\hskip0.3cm
w(N/2 + k)]
en la que k discurre entre 0 y N/2-1 y en la que w representa una función ventana.
12. Dispositivo según una de las reivindicaciones 8 a 11, que está configurado para una aplicación ventana y al que le sigue un dispositivo (206) de conversión, o que está configurado para una aplicación de ventana inversa, y al que le precede un dispositivo de conversión inversa de un intervalo espectral a un intervalo de tiempo.
13. Dispositivo según la reivindicación 12, en el que el dispositivo de conversión inversa o el dispositivo de conversión comprenden un dispositivo DCT-IV.
14. Dispositivo según una de las reivindicaciones precedentes, en el que el dispositivo (202) de manipulación es un dispositivo (102, 108, 130, 150) de procesamiento que utiliza una regla de transformación para obtener un bloque de valores transformados, que corresponde a la secuencia de valores discretos que no son enteros.
15. Dispositivo según la reivindicación 14, en el que el dispositivo (202) de manipulación es un dispositivo para realizar un algoritmo DC-IV.
16. Dispositivo según una de las reivindicaciones anteriores, que es parte de un codificador para generar una representación codificada de una señal original o parte de un descodificador, para generar una representación descodificada desde una señal codificada.
17. Dispositivo según la reivindicación 16, en el que el codificador y el descodificador representan conjuntamente un esquema de codificación sin pérdidas.
18. Procedimiento para procesar una señal con una secuencia de valores discretos que representan datos de audio, datos de imágenes o datos de vídeo, existiendo una primera gama de frecuencias, en la que la señal tiene una alta energía y en el que existe una segunda gama de frecuencias, en la que la señal tiene una baja energía con las siguientes etapas:
manipular (202) la secuencia de valores discretos para obtener una secuencia de valores manipulados, de modo que al menos uno de estos valores manipulados no es de enteros; y
redondear (204) la secuencia de valores manipulados para obtener una secuencia de valores manipulados redondeados de enteros en el que el redondeo está configurado para efectuar una configuración espectral de un error de redondeo generado, de modo que este error de redondeo configurado espectralmente tiene una energía mayor en la primera gama de frecuencias que en la segunda gama de frecuencias.
19. Programa informático, con un código de programa para ejecutar el procedimiento de la reivindicación 18, cuando este programa opera en un ordenador.
ES04765662T 2003-10-02 2004-09-28 Dispositivo y procedimiento para procesar una señal. Active ES2278338T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10345995A DE10345995B4 (de) 2003-10-02 2003-10-02 Vorrichtung und Verfahren zum Verarbeiten eines Signals mit einer Sequenz von diskreten Werten
DE10345995 2003-10-02

Publications (1)

Publication Number Publication Date
ES2278338T3 true ES2278338T3 (es) 2007-08-01

Family

ID=34399211

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04765662T Active ES2278338T3 (es) 2003-10-02 2004-09-28 Dispositivo y procedimiento para procesar una señal.

Country Status (18)

Country Link
US (1) US7917564B2 (es)
EP (1) EP1647009B1 (es)
JP (1) JP4439522B2 (es)
KR (1) KR100778349B1 (es)
CN (1) CN1860527B (es)
AT (1) ATE349753T1 (es)
AU (1) AU2004278828B2 (es)
BR (1) BRPI0414618B1 (es)
CA (1) CA2541116C (es)
DE (2) DE10345995B4 (es)
ES (1) ES2278338T3 (es)
HK (1) HK1096760A1 (es)
IL (1) IL173730A (es)
MX (1) MXPA06003620A (es)
NO (1) NO337159B1 (es)
PT (1) PT1647009E (es)
RU (1) RU2325708C2 (es)
WO (1) WO2005034088A1 (es)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10345996A1 (de) 2003-10-02 2005-04-28 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Verarbeiten von wenigstens zwei Eingangswerten
EP2063417A1 (en) * 2007-11-23 2009-05-27 Deutsche Thomson OHG Rounding noise shaping for integer transform based encoding and decoding
KR100992675B1 (ko) 2007-12-21 2010-11-05 한국전자통신연구원 오디오 부호화 및 복호화 방법과 그 장치
CA2871498C (en) 2008-07-11 2017-10-17 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder and decoder for encoding and decoding audio samples
PL2346030T3 (pl) * 2008-07-11 2015-03-31 Fraunhofer Ges Forschung Koder audio, sposób kodowania sygnału audio oraz program komputerowy
PT2146344T (pt) * 2008-07-17 2016-10-13 Fraunhofer Ges Forschung Esquema de codificação/descodificação de áudio com uma derivação comutável
US9384748B2 (en) 2008-11-26 2016-07-05 Electronics And Telecommunications Research Institute Unified Speech/Audio Codec (USAC) processing windows sequence based mode switching
KR101315617B1 (ko) 2008-11-26 2013-10-08 광운대학교 산학협력단 모드 스위칭에 기초하여 윈도우 시퀀스를 처리하는 통합 음성/오디오 부/복호화기
PL4224475T3 (pl) 2008-12-15 2024-03-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Dekoder powiększania szerokości pasma audio, powiązany sposób oraz program komputerowy
RU2523035C2 (ru) * 2008-12-15 2014-07-20 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Форшунг Е.Ф. Аудио кодер и декодер, увеличивающий полосу частот
ES2567129T3 (es) * 2009-01-28 2016-04-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codificador de audio, decodificador de audio, información de audio codificada, métodos para la codificación y decodificación de una señal de audio y programa de ordenador
JP5754899B2 (ja) * 2009-10-07 2015-07-29 ソニー株式会社 復号装置および方法、並びにプログラム
CN102081926B (zh) * 2009-11-27 2013-06-05 中兴通讯股份有限公司 格型矢量量化音频编解码方法和系统
MY165853A (en) 2011-02-14 2018-05-18 Fraunhofer Ges Forschung Linear prediction based coding scheme using spectral domain noise shaping
EP2676268B1 (en) 2011-02-14 2014-12-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for processing a decoded audio signal in a spectral domain
EP2676270B1 (en) 2011-02-14 2017-02-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding a portion of an audio signal using a transient detection and a quality result
TWI483245B (zh) * 2011-02-14 2015-05-01 Fraunhofer Ges Forschung 利用重疊變換之資訊信號表示技術
TR201903388T4 (tr) 2011-02-14 2019-04-22 Fraunhofer Ges Forschung Bir ses sinyalinin parçalarının darbe konumlarının şifrelenmesi ve çözülmesi.
FR2977439A1 (fr) * 2011-06-28 2013-01-04 France Telecom Fenetres de ponderation en codage/decodage par transformee avec recouvrement, optimisees en retard.
CN103493130B (zh) * 2012-01-20 2016-05-18 弗劳恩霍夫应用研究促进协会 用以利用正弦代换进行音频编码及译码的装置和方法
EP2757558A1 (en) * 2013-01-18 2014-07-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Time domain level adjustment for audio signal decoding or encoding
EP2830064A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for decoding and encoding an audio signal using adaptive spectral tile selection
CN107452391B (zh) 2014-04-29 2020-08-25 华为技术有限公司 音频编码方法及相关装置
CN105096957B (zh) 2014-04-29 2016-09-14 华为技术有限公司 处理信号的方法及设备
US10448053B2 (en) * 2016-02-15 2019-10-15 Qualcomm Incorporated Multi-pass non-separable transforms for video coding
EP3276620A1 (en) * 2016-07-29 2018-01-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Time domain aliasing reduction for non-uniform filterbanks which use spectral analysis followed by partial synthesis
WO2018201113A1 (en) * 2017-04-28 2018-11-01 Dts, Inc. Audio coder window and transform implementations

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02134010A (ja) * 1988-11-15 1990-05-23 Sony Corp 信号処理装置
TW224553B (en) 1993-03-01 1994-06-01 Sony Co Ltd Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture
GB9509831D0 (en) 1995-05-15 1995-07-05 Gerzon Michael A Lossless coding method for waveform data
FR2765419B1 (fr) * 1997-06-27 1999-09-17 Thomson Csf Dispositif de generation de signaux analogiques a partir de convertisseurs analogique-numerique, notamment pour la synthese numerique directe
CA2233831A1 (en) * 1998-03-31 1999-09-30 Tom Riley Digital-sigma fractional-n synthesizer
US20050143981A1 (en) * 2000-06-06 2005-06-30 Yukio Koyanagi Compressing method and apparatus, expanding method and apparatus, compression and expansion system, recorded medium, program
DE10129240A1 (de) * 2001-06-18 2003-01-02 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Verarbeiten von zeitdiskreten Audio-Abtastwerten
US7197525B2 (en) * 2002-11-26 2007-03-27 Analog Devices, Inc. Method and system for fixed point fast fourier transform with improved SNR
DE10331803A1 (de) 2003-07-14 2005-02-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Umsetzen in eine transformierte Darstellung oder zum inversen Umsetzen der transformierten Darstellung

Also Published As

Publication number Publication date
CA2541116A1 (en) 2005-04-14
US20060210180A1 (en) 2006-09-21
NO20061870L (no) 2006-04-28
IL173730A (en) 2010-06-30
KR20060054472A (ko) 2006-05-22
PT1647009E (pt) 2007-03-30
JP4439522B2 (ja) 2010-03-24
DE10345995A1 (de) 2005-05-12
NO337159B1 (no) 2016-02-01
CN1860527A (zh) 2006-11-08
BRPI0414618B1 (pt) 2019-02-12
KR100778349B1 (ko) 2007-11-21
US7917564B2 (en) 2011-03-29
JP2007510167A (ja) 2007-04-19
DE502004002475D1 (de) 2007-02-08
RU2325708C2 (ru) 2008-05-27
MXPA06003620A (es) 2006-06-05
CA2541116C (en) 2010-12-21
AU2004278828B2 (en) 2008-01-10
RU2006110566A (ru) 2007-10-20
EP1647009B1 (de) 2006-12-27
HK1096760A1 (en) 2007-06-08
AU2004278828A1 (en) 2005-04-14
IL173730A0 (en) 2006-07-05
ATE349753T1 (de) 2007-01-15
BRPI0414618A (pt) 2006-11-07
WO2005034088A1 (de) 2005-04-14
DE10345995B4 (de) 2005-07-07
EP1647009A1 (de) 2006-04-19
CN1860527B (zh) 2010-04-14

Similar Documents

Publication Publication Date Title
ES2278338T3 (es) Dispositivo y procedimiento para procesar una señal.
ES2273268T3 (es) Dispositivo y procedimiento para convertir en una representacion transformada o para convertir de manera inversa la representacion transformada.
US7873227B2 (en) Device and method for processing at least two input values
US7275036B2 (en) Apparatus and method for coding a time-discrete audio signal to obtain coded audio data and for decoding coded audio data
ES2328187T3 (es) Aparato y metodo para generar valores de subbanda de audio y aparato ymetodo para generar muestras de audio de dominio de tiempo.
JP3814611B2 (ja) 時間離散オーディオサンプル値を処理する方法と装置
EP2784776B1 (en) Orthogonal transform apparatus, orthogonal transform method, orthogonal transform computer program, and audio decoding apparatus
MXPA06003309A (es) Dispositivo y metodo para procesar al menos dos valores de entrada
AU2002358578A1 (en) Device and method for encoding a time-discrete audio signal and device and method for decoding coded audio data