ES2278338T3 - Dispositivo y procedimiento para procesar una señal. - Google Patents
Dispositivo y procedimiento para procesar una señal. Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims description 33
- 230000003595 spectral effect Effects 0.000 claims abstract description 96
- 230000009466 transformation Effects 0.000 claims description 122
- 230000002441 reversible effect Effects 0.000 claims description 32
- 238000006243 chemical reaction Methods 0.000 claims description 28
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 3
- 238000007493 shaping process Methods 0.000 abstract description 3
- 238000003860 storage Methods 0.000 abstract description 2
- 230000000694 effects Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 44
- 239000011159 matrix material Substances 0.000 description 42
- 238000000354 decomposition reaction Methods 0.000 description 19
- 230000000875 corresponding effect Effects 0.000 description 16
- 238000001228 spectrum Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 14
- 238000011002 quantification Methods 0.000 description 14
- 238000013459 approach Methods 0.000 description 13
- 230000005236 sound signal Effects 0.000 description 13
- 238000007667 floating Methods 0.000 description 12
- 230000009467 reduction Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000000844 transformation Methods 0.000 description 8
- 230000001174 ascending effect Effects 0.000 description 7
- 241000255777 Lepidoptera Species 0.000 description 6
- BXBVPYSHEOQGHP-UHFFFAOYSA-N Nordihydrocapsiate Chemical compound COC1=CC(COC(=O)CCCCCC(C)C)=CC=C1O BXBVPYSHEOQGHP-UHFFFAOYSA-N 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 101100445834 Drosophila melanogaster E(z) gene Proteins 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 206010073261 Ovarian theca cell tumour Diseases 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000002592 echocardiography Methods 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 208000001644 thecoma Diseases 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/0017—Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Speech 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/02—Speech enhancement, e.g. noise reduction or echo cancellation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation 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:
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:
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:
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:
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:
\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.3cmw(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:
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
Esta operación la realiza el dispositivo 24.
La transformación inversa (en el decodificador)
se define de la siguiente manera:
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:
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.
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.
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.
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.3cme(n - 1)
En el intervalo Z, se encuentra el siguiente
resultado:
\hskip55mmy(z) = X'(z) + E(z)
\hskip55mmX'(z) = X(z) - E(z)z^{-1}H(z)
\hskip55mmY(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.
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:
igual a 1:
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.
Además de operaciones sencillas, como
permutaciones o multiplicaciones con -1, los tres bloques de esta
descomposición tienen la estructura general siguiente
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:
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:
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:
\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:
Las permutaciones de las multiplicaciones con -1
pueden extraerse en matrices de bloques propias de manera que se
produce la siguiente relación:
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:
\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:
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:
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:
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.3cmw(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.3cmw(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.3cmw(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.
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)
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)
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 |
-
2003
- 2003-10-02 DE DE10345995A patent/DE10345995B4/de not_active Expired - Lifetime
-
2004
- 2004-09-28 DE DE502004002475T patent/DE502004002475D1/de active Active
- 2004-09-28 MX MXPA06003620A patent/MXPA06003620A/es active IP Right Grant
- 2004-09-28 BR BRPI0414618-2A patent/BRPI0414618B1/pt active IP Right Grant
- 2004-09-28 EP EP04765662A patent/EP1647009B1/de active Active
- 2004-09-28 PT PT04765662T patent/PT1647009E/pt unknown
- 2004-09-28 AT AT04765662T patent/ATE349753T1/de active
- 2004-09-28 ES ES04765662T patent/ES2278338T3/es active Active
- 2004-09-28 RU RU2006110566/09A patent/RU2325708C2/ru active
- 2004-09-28 WO PCT/EP2004/010854 patent/WO2005034088A1/de active IP Right Grant
- 2004-09-28 KR KR1020067005972A patent/KR100778349B1/ko active IP Right Grant
- 2004-09-28 AU AU2004278828A patent/AU2004278828B2/en active Active
- 2004-09-28 JP JP2006530033A patent/JP4439522B2/ja active Active
- 2004-09-28 CA CA2541116A patent/CA2541116C/en active Active
- 2004-09-28 CN CN200480028608XA patent/CN1860527B/zh active Active
-
2006
- 2006-02-14 IL IL173730A patent/IL173730A/en active IP Right Grant
- 2006-03-23 US US11/388,186 patent/US7917564B2/en active Active
- 2006-04-28 NO NO20061870A patent/NO337159B1/no unknown
-
2007
- 2007-02-09 HK HK07101543.3A patent/HK1096760A1/xx unknown
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 |