PT1647009E - Dispositivo e método para o processamento de um sinal - Google Patents

Dispositivo e método para o processamento de um sinal Download PDF

Info

Publication number
PT1647009E
PT1647009E PT04765662T PT04765662T PT1647009E PT 1647009 E PT1647009 E PT 1647009E PT 04765662 T PT04765662 T PT 04765662T PT 04765662 T PT04765662 T PT 04765662T PT 1647009 E PT1647009 E PT 1647009E
Authority
PT
Portugal
Prior art keywords
values
rounding
sequence
block
discrete
Prior art date
Application number
PT04765662T
Other languages
English (en)
Inventor
Gerald Schuller
Ralf Geiger
Thomas Sporer
Original Assignee
Fraunhofer Ges Forschung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Ges Forschung filed Critical Fraunhofer Ges Forschung
Publication of PT1647009E publication Critical patent/PT1647009E/pt

Links

Classifications

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

Landscapes

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

Description

DESCRIÇÃO "DISPOSITIVO E MÉTODO PARA O PROCESSAMENTO DE UM SINAL" A presente invenção refere-se ao processamento de um sinal e, particularmente, ao processamento de um sinal de valores apresentados sequencialmente, tais como por exemplo amostras de áudio ou amostras de video que, em particular, são especialmente adequadas para aplicações de codificação sem perdas, isto é lossless. A presente invenção é ainda adequada para algoritmos de compressão para valores discretos que apresentam informações de áudio e/ou imagem e, particularmente, para algoritmos de codificação, incluindo uma transformação no domínio da frequência ou domínio do tempo ou domínio do local, que são seguidos por uma codificação, como por exemplo uma codificação por entropia sob a forma de uma codificação de Huffman ou aritmética.
Os métodos modernos de codificação de áudio, como por exemplo MPEG Layer 3 (MP3) ou MPEG AAC, utilizam transformações, como por exemplo a denominada transformação discreta do co-seno modificada (MDCT), para se obter uma representação de frequência em blocos de um sinal de áudio. Normalmente, um codificador de áudio deste género recebe um fluxo de amostras de áudio discretas no tempo. 0 fluxo de amostras de áudio é dividido em janelas para se obter um bloco dividido em janelas de, por exemplo, 1024 ou 2048 amostras de áudio divididas em janelas. 1
Para o processo de divisão em janelas, são utilizadas diferentes funções de janela, como por exemplo uma janela sinusoidal, etc.
As amostras de áudio discretas no tempo divididas em janelas são, em seguida, convertidas numa representação espectral por meio de um banco de filtros. Para este fim pode ser utilizada, em principio, uma transformação de Fourier ou, por razões especiais, uma variante da transformação de Fourier, como por exemplo uma FFT ou, como explicado acima, uma MDCT. 0 bloco de valores espectrais de áudio na saida do banco de filtros pode em seguida ser ainda processado consoante a necessidade. Nos codificadores de áudio acima mencionados, segue-se uma quantificação dos valores espectrais de áudio, sendo os niveis de quantificação tipicamente escolhidos de tal modo que o ruído de quantificação introduzido pela mesma fique abaixo do limiar de mascaramento psicoacústico, isto é, seja "eliminado por mascaramento". A quantificação é uma codificação com perdas. Para se obter uma redução adicional da quantidade de dados, os valores espectrais quantificados são em seguida codificados por entropia, por exemplo, através de uma codificação de Huffman. Através do acréscimo de informações secundárias, tais como factores de escala, etc., um multiplexador de fluxo de bits forma um fluxo de bits a partir dos valores espectrais quantificados codificados por entropia, o qual pode ser armazenado ou transmitido.
No descodificador de áudio, o fluxo de bits é dividido em valores espectrais quantificados codificados e informações secundárias por meio de um desmultiplexador de fluxo de bits. Os valores espectrais quantificados codificados por entropia são, em primeiro lugar descodificados por entropia para se obterem os valores espectrais quantificados. Os valores espectrais 2 quantificados são, em seguida, inversamente quantificados para se obterem valores espectrais descodificados que possuem ruido de quantificação, o qual está no entanto abaixo do limiar de mascaramento psicoacústico e, por isso, será inaudível. Estes valores espectrais são em seguida convertidos numa representação temporal por meio de um banco de filtros de síntese, para se obterem amostras de áudio descodificadas discretas no tempo. No banco de filtros de síntese tem de ser utilizar um algoritmo de transformação inverso ao algoritmo de transformação. Além disso, a divisão em janelas tem de ser anulada após a transformação inversa frequência-tempo.
Para se obter uma boa selectividade da frequência, os codificadores de áudio modernos utilizam, tipicamente uma sobreposição de blocos. Um caso deste género está representado na Figura 6a. Primeiro, por exemplo, captam-se 2048 amostras de áudio discretas no tempo e divididas em janelas por meio de um dispositivo 402. A janela que representa o dispositivo 402 possui um comprimento de janela de 2N amostras e emite um bloco de 2N amostras divididas em janelas. De modo a se obter uma sobreposição de janelas, um segundo bloco de 2N amostras divididas em janelas é formado por meio de um dispositivo 404, o qual está representado na Figura 6a, meramente por razões de clareza, separadamente do dispositivo 402. No entanto, as 2048 amostras introduzidas no dispositivo 404 não são as amostras de áudio discretas no tempo imediatamente adjacentes a primeira janela, mas sim compreendem a segunda metade das amostras divididas em janelas pelo dispositivo 402 e compreendem, além disso meramente 1024 "novas" amostras. A sobreposição está simbolicamente representada por um dispositivo 406 na Figura 6a, o qual provoca um grau de sobreposição de 50%. Tanto as 2N amostras divididas em janelas emitidas pelo dispositivo 402, 3 como também as 2N amostras divididas em janelas emitidas pelo dispositivo 404, são então submetidas ao algoritmo MDCT por meio de dispositivos 408 e 410, respectivamente. De acordo com o algoritmo MDCT conhecido, o dispositivo 408 fornece N valores espectrais para a primeira janela, enquanto o dispositivo 410 também fornece N valores espectrais, mas para a segunda janela, sendo que existe uma sobreposição de 50% entre a primeira janela e a segunda janela.
Conforme mostrado na Figura 6b, no descodificador. os N valores espectrais da primeira janela são fornecidos a um dispositivo 412 que realiza uma transformação discreta de co-seno modificada. O mesmo se aplica aos N valores espectrais da segunda janela. Estes são fornecidos a um dispositivo 414 que também realiza uma transformação discreta de co-seno modificada. Tanto o dispositivo 412, como também o dispositivo 414, fornecem, respectivamente 2N amostras para a primeira janela e 2N amostras para a segunda janela.
No dispositivo 416, que é designado por TDAC (TDAC = Time Domain Aliasing Cancelation) na Figura 6b, é considerado o facto das duas janelas estarem sobrepostas. Particularmente, uma amostra yi da segunda metade da primeira janela, portanto com um índice N+k, é somada a uma amostra y2 da primeira metade da segunda janela, portanto com um índice k, de modo que resultam N amostras descodificadas temporalmente no lado de saída, portanto no descodificador.
Deve-se observar que através da função do dispositivo 416, que também é designada por função de adição, a divisão em janelas realizada no codificador representado esquematicamente na Figura 6a é de certo modo levado em consideração 4 automaticamente, de modo que nenhuma "divisão em janelas inversa" explicita tem de ser realizada no descodificador representado na Figura 6b.
Quando a função de janela implementada pelo dispositivo 402 ou 404 é designada por w(k), sendo que o índice k representa o índice do tempo, tem de ser cumprida a condição de que o peso w(k) da janela ao quadrado somado ao peso w(N+k) da janela ao quadrado resulte em 1, sendo que k varia de 0 a N-l. Caso seja utilizada uma janela sinusoidal, cujos pesos seguem a primeira meia-onda da função seno, esta condição é sempre preenchida, visto que o quadrado do seno e o quadrado do co-seno somados, para todos os ângulos, resultam no valor 1.
Uma desvantagem do método de divisão em janelas com função MDCT subsequente, descrito na Figura 6a, é o facto da divisão em janelas ser obtida por multiplicação de uma amostra discreta no tempo, ao se considerar uma janela sinusoidal, com um número em vírgula flutuante, visto que o seno de um ângulo entre 0 e 180 graus não resulta num número inteiro, excepto no ângulo de 90 graus. Mesmo quando amostras inteiras discretas no tempo são divididas em janelas, resultam portanto números em vírgula flutuante após a divisão em janelas.
Por isso, mesmo quando não é utilizado nenhum codificador psicoacústico, isto é, quando se pretende obter uma codificação sem perdas, é necessária uma quantificação na saída dos dispositivos 408 e 410, respectivamente, de modo a ser possível a realização de uma codificação entrópica em certa medida visivelmente abrangente. 5
Geralmente, as transformações inteiras actualmente conhecidas para uma codificação de áudio e/ou vídeo sem perdas, são obtidas através da decomposição das transformações nesta utilizadas em rotações de Givens e através da aplicação do esquema de elevação a cada rotação de Givens. Desta forma, um erro de arredondamento é introduzido em cada etapa. Para andares subsequentes de rotações de Givens, o erro de arredondamento continua a acumular-se. 0 erro de aproximação resultante torna-se especialmente problemático para abordagens de codificação de áudio sem perdas, especialmente quando são utilizadas transformações longas que fornecem, por exemplo, 1.024 valores espectrais, tal como ocorre, por exemplo, no caso da MDCT (MDCT = transformação discreta de co-seno modificada) conhecida com sobreposição e adição. Particularmente na faixa de altas frequências, onde, de qualquer forma o sinal de áudio tem tipicamente uma quantidade de energia muito pequena, o erro de aproximação pode rapidamente tornar-se maior do que o próprio sinal, de modo que estas abordagens são problemáticas no que diz respeito à codificação sem perdas e especialmente no que diz respeito à eficiência da codificação que neste caso pode ser obtida.
No que diz respeito à codificação de áudio, transformações inteiras, portanto algoritmos de transformação que geram valores de saída inteiros, são, particularmente no que diz respeito à codificação de áudio, baseados na conhecida DCT-IV, que não leva em consideração nenhuma componente contínua, enquanto transformações inteiras para aplicações de imagem são baseadas, em vez disso, na DCT-II, a qual contém especialmente as medidas para a componente continua. As transformações inteiras deste género estão descritas, por exemplo, em Y. Zeng, G. Bi e Z. Lin, "Integer sinusoidal transforms based on lifting factorization", 6 em Proc. ICASSP'01, Maio de 2001, pp. 1.181 - 1.184, K. Komatsu e K. Sezaki, "Reversible Discrete Cosine Transform", em Proc. ICASSP, 1998, Vol. 3, pp. 1.769 - 1.772, P. Hao e Q. Shi,
"Matrix factorizations for reversible integer mapping", IEEE
Trans. Signal Processing, Signal Processing, Vol. 49, pp. 2.314 - 2.324, e J. Wang, J. Sun e S. Yu, "1-d and 2-d transforms from integers to integers", em Proc. ICASSP'03, Hong Kong, Abril de 2003.
Como foi explicado, as transformações inteiras ai descritas baseiam-se na decomposição da transformação em rotações de Givens e na aplicação do esquema de elevação conhecido às rotações de Givens, o que envolve o problema da acumulação de erros de arredondamento. Isto deve-se particularmente ao facto de um arredondamento ter de ser realizado várias vezes durante uma transformação, isto é, após cada etapa de elevação, de modo que, especialmente em transformações longas que envolvem por consequência muitas etapas de elevação, o arredondamento tem de ser realizado muito frequentemente. Como foi explicado, isto resulta num erro acumulado e, particularmente, também num processamento relativamente complexo, visto que o arredondamento é realizado após cada uma das etapas de elevação para realizar a próxima etapa de elevação.
Em seguida, com referência às Figuras 9 - 11, a decomposição da divisão em janelas MDCT é representada mais uma vez, conforme está descrita no documento DE 10129240 Al, onde esta decomposição da divisão em janelas MDCT em rotações de Givens com matrizes de elevação e correspondentes arredondamentos pode ser combinada de forma vantajosa com o conceito representado na Figura 1 para conversão e na Figura 2 para conversão inversa, para se obter uma aproximação MDCT inteira completa, portanto 7 uma MDCT inteira (IntMDCT) de acordo com a presente invenção, sendo que tanto um conceito de transformação progressiva como um conceito de transformação regressiva foram realizados no exemplo de uma MDCT, ver também Geiger R et al: "IntMDCT - a link between perceptual and lossless áudio coding", IEEE ICASSP 2002. A Figura 3 mostra um diagrama geral para o dispositivo preferido de acordo com a invenção, para o processamento de amostras discretas no tempo que representam um sinal de áudio, para se obterem valores inteiros sobre os quais actua de forma construtiva o algoritmo de transformação inteira Int-MDCT. As amostras discretas no tempo são divididas em janelas pelo dispositivo mostrado na Figura 3 e, opcionalmente, convertidas numa representação espectral. As amostras discretas no tempo introduzidas no dispositivo numa entrada 10, são divididas em janelas com uma janela w com um comprimento correspondente a 2N amostras discretas no tempo para se obterem amostras divididas em janelas inteiras numa saida 12, as quais estão preparadas para serem convertidas numa representação espectral por meio de uma transformação e, particularmente, do dispositivo 14 para a realização de uma DCT inteira. A DCT inteira é concebida para gerar N valores de saida a partir de N valores de entrada, o que é contrário à função MDCT 408 da Figura 6a, a qual, com base na equação da MDCT, gera meramente N valores espectrais a partir de 2N amostras divididas em janelas.
Para a divisão em janelas das amostras discretas no tempo, num dispositivo 16, em primeiro lugar são seleccionadas duas amostras discretas no tempo que juntas representam um vector de amostras discretas no tempo. Uma amostra discreta no tempo seleccionada pelo dispositivo 16 situa-se no primeiro quarto da janela. A outra amostra discreta no tempo situa-se no segundo quarto da janela, como será ainda discutido mais pormenorizadamente com base na Figura 5. 0 vector gerado pelo dispositivo 16 é agora provido de uma matriz de rotação de dimensão 2 x 2, sendo que esta operação não é realizada directamente, mas sim por meio de várias denominadas matrizes de elevação.
Uma matriz de elevação tem a caracteristica de apresentar apenas um elemento dependendo da janela w e diferente de "1" ou "0". A factorização de transformações wavelet em etapas de elevação encontra-se explicada na publicação especializada "Factoring Wavelet Transforms Into Lifting Steps", Ingrid Daubechies e Wim Sweldens, Pré-Publicação, Bell Laboratories, Lucent Technologies, 1996. Geralmente, um esquema de elevação é uma relação simples entre pares de filtros que reconstroem perfeitamente, os quais têm o mesmo filtro passa-baixo ou passa-alto. Cada par de filtros complementares pode ser factorizado em etapas de elevação. Isto aplica-se particularmente a rotações de Givens. É considerado o caso em que a matriz polifásica é uma rotação de Givens. Então aplica-se: ( \ cos α -sen ot ^sen α cos α j
(^ COS O-lV 1° sen ot 1 1 0 sen α 1 Λ COS Oi-1 sen α 1 \ (1)
Cada uma das três matrizes de elevação à direita do sinal de igual possui o valor "1" como elemento da diagonal principal. Além disso, em cada matriz de elevação, um elemento da diagonal secundária é igual a 0 e um elemento da diagonal secundária depende do ângulo de rotação a. 9 0 vector é agora multiplicado pela terceira matriz de elevação, isto é, a matriz de elevação na extremidade direita da equação acima, para se obter um primeiro vector resultante. Isto está representado na Figura 3 através de um dispositivo 18. Agora, o primeiro vector resultante é arredondado com uma função de arredondamento arbitrária que mapeia a quantidade de números reais para a quantidade de números inteiros, como está representado na Figura 3 através de um dispositivo 20. Um primeiro vector resultante arredondado é obtido na saída do dispositivo 20. O primeiro vector resultante arredondado é agora introduzido num dispositivo 22 para multiplicação do mesmo pela matriz de elevação central, isto é, a segunda, para se obter um segundo vector resultante que, por sua vez, é arredondado num dispositivo 24 para se obter um segundo vector resultante arredondado. 0 segundo vector resultante arredondado é agora introduzido no dispositivo 26 para multiplicação do mesmo pela matriz de elevação mostrada à esquerda da equação acima, isto é, a primeira matriz de elevação, para se obter um terceiro vector resultante que finalmente é ainda arredondado por meio de um dispositivo 28 para se obterem finalmente amostras divididas em janelas inteiras na saída 12, as quais agora, caso se deseje uma representação espectral das mesmas, têm de ser processadas pelo dispositivo 14 para se obterem valores espectrais inteiros numa saída 30 espectral.
De um modo preferido, o dispositivo 14 é concebido como uma DCT inteira. A transformação discreta de co-seno de acordo com o tipo 4 (DCT-IV) com um comprimento N é dada pela seguinte equação: 10
Xt(m)= J— Σ Mk)coJ~(2k+lX2m+l)Uj^o W ' (2)
Os coeficientes da DCT-IV formam uma matriz ortogonal de N x N. Cada matriz ortogonal de N x N pode ser decomposta em N (N-1) /2 rotações de Givens conforme exposto na publicação especializada P. P. Vaidyanathan, "Multirate Systems And Filter banks", Prentice Hall, Englewood Cliffs, 1993. Deve-se observar que também existem outras decomposições.
No que diz respeito às classificações dos diferentes algoritmos DCT, faz-se referência a H. S. Malvar, "Signal Processing With Lapped Transforms", Artech House, 1992. Geralmente, os algoritmos DCT diferem pelo tipo das suas funções de base. Enquanto a DCT-IV, que é a preferida aqui, compreende funções de base não simétricas, isto é, um quarto de onda de co-seno, um 3/4 de onda de co-seno, um 5/4 de onda de co-seno, um 7/4 de onda de co-seno, etc., a transformação discreta do co-seno, por exemplo, do tipo II (DCT-II), possui funções de base com simetria axial e simetria pontual. A função de base de ordem 0 possui uma componente continua, a primeira função de base é uma meia-onda de co-seno, a segunda função de base é um onda completa de co-seno, etc. Devido ao facto de que a DCT-II considera particularmente a componente continua, a mesma é utilizada na codificação de vídeo, mas não na codificação de áudio, visto que a componente contínua não é relevante na codificação de áudio, ao contrário da codificação de vídeo.
Em seguida, faz-se referência ao facto de como o ângulo de rotação α da rotação de Givens depende da função de janela. 11
Uma MDCT com um comprimento de janela de 2N pode ser reduzida a uma transformação discreta do co-seno do tipo IV com um comprimento N. Isto é obtido através da realização da operação de TDAC explicitamente no dominio do tempo e da subsequente aplicação da DCT-IV. Numa sobreposição de 50%, a metade esquerda da janela para um bloco t sobrepõe-se com a metade direita do bloco anterior, isto é, o bloco t-1. A parte da sobreposição de dois blocos sucessivos t-1 e t é pré-processada da seguinte maneira no dominio do tempo, isto é, antes da transformação, ou seja, processada entre a entrada 10 e a saida 12 da Figura 3: í \x,(k)X, (N-l-k) \ t-1 w N , —+k 2 -w N —i-k 2 ;h ' w 2
N / i (3)
Os valores indicados com o til são os valores na saida 12 da Figura 3, enquanto os valores de x indicados sem til na equação acima são os valores na entrada 10 ou antes do dispositivo 16 para selecção. O índice variável k varia de 0 a N/2-1, enquanto w representa a função de janela. A partir da condição de TDAC para a função w de janela, aplica-se o seguinte contexto:
+ w - ~ 1 -k \ 2 = 1 (4)
Para determinados ângulos ak, k = 0,..., N/2-1, este pré- processamento no domínio do tempo pode ser escrito como uma 12 rotação de Givens, conforme foi explicado. 0 ângulo α da rotação de Givens depende da função w de janela da seguinte maneira: α = arctan [w (Ν/2-l-k) / w(N/2 + k) ] (5)
Deve observar-se que é possível utilizar qualquer função w de janela, desde que preencha esta condição de TDAC.
Em seguida, um codificador e descodificador em cascata são descritos com base na Figura 4. As amostras discretas no tempo x(0) a x(2N-l), que são "divididas em janelas" juntas através de uma janela são primeiro seleccionadas de tal maneira pelo dispositivo 16 da Figura 3 que a amostra x(0) e a amostra x(N-1), isto é, uma amostra do primeiro quarto da janela e uma amostra do segundo quarto da janela são seleccionadas para formar o vector na saída do dispositivo 16. As setas cruzadas representam esquematicamente as multiplicações de elevação e os subsequentes arredondamentos dos dispositivos 18, 20 e 22, 24 e 26, 28, respectivamente, para se obterem as amostras divididas em janelas inteiras na entrada dos blocos DCT-IV.
Quando o primeiro vector tiver sido processado como descrito acima, é ainda seleccionado um segundo vector a partir das amostras x(N/2-l) e x(N/2), isto é, novamente uma amostra do primeiro quarto da janela e uma amostra do segundo quarto da janela, e por sua vez processado através do algoritmo descrito na Figura 3. De maneira análoga, todos os demais pares de amostras a partir do primeiro e do segundo quartos da janela são processados. 0 mesmo processamento é realizado para o terceiro e o quarto quartos da primeira janela. Agora, 2N amostras inteiras 13 divididas em janelas estão presentes na saída 12, as quais são agora introduzidas numa transformação DCT-IV conforme 0 representado na Figura 4 . Particularmente, as amostras divididas em janelas inteiras do segundo e do terceiro quartos são introduzidas numa DCT. As amostras inteiras divididas em janelas do primeiro quarto da janela são processadas numa DCT -IV anterior em conjunto com as amostras inteiras divididas em janelas do quarto quarto da janela anterior. De maneira análoga, o quarto quarto das amostras inteiras divididas em janelas da Figura 4 é introduzido juntamente com o primeiro quarto da próxima janela numa transformação DCT-IV. A transformação DCT-IV 32 inteira, intermédia mostrada na Figura 4 fornece agora N valores espectrais inteiros y (0) a y(N-l). Estes valores espectrais inteiros podem agora ser, por exemplo, facilmente codificados por entropia, sem exigir uma quantificação intermédia, visto que a divisão em janelas e a transformação fornecem valores de saída inteiros.
Um descodificador está representado na metade direita da Figura 4. 0 descodificador que consiste em transformação inversa e "divisão em janelas inverso" opera inversamente ao codificador. É sabido que uma DCT-IV inversa pode ser utilizada para a transformação inversa de uma DCT-IV, conforme o representado na Figura 4. Os valores de saída da DCT-IV do descodificador 34 são agora processados inversamente, conforme o representado na Figura 4, com os valores correspondentes da transformação anterior e da transformação subsequente, respectivamente, de modo a gerar amostras de áudio discretas no tempo x(0) a x(2N-l) novamente a partir das amostras divididas em janelas inteiras na saída do dispositivo 34 e das transformações anterior e subsequente, respectivamente. 14 A operação no lado de saída é realizada por uma rotação de Givens inversa, isto é, de tal modo que os blocos 26, 28 e 22, 24 e 18, 20, respectivamente, sejam passados na direcção oposta. Isto está representado mais detalhadamente com base na segunda matriz de elevação da equação 1. Caso (no codificador) o segundo vector resultante seja formado através de uma multiplicação do primeiro vector resultante arredondado pela segunda matriz de elevação (dispositivo 22), obtém-se a seguinte expressão: {x,y)~* {x,y + xsena) (6)
Os valores x, y no lado direito da equação 6 são números inteiros. No entanto, isto não se aplica ao valor de x sen a. Aqui, a função r de arredondamento tem de ser introduzida, conforme o representado na equação subsequente: (x,y)->(x,y + r (xsena)) (7)
Esta operação é realizada pelo dispositivo 24. O mapeamento inverso (no descodificador) é definido da seguinte maneira: (x' ,y/) -► (x' ,y' - r(x'sena)) (8)
Devido ao sinal de menos antes da operação de arredondamento, torna-se óbvio que a aproximação inteira da etapa de elevação pode ser invertida sem a introdução de um erro. A aplicação desta aproximação a cada uma das três etapas de elevação leva a uma aproximação inteira da rotação de Givens. A rotação arredondada (no codificador) pode ser invertida (no descodificador) sem se introduzir um erro e nomeadamente através da passagem pelas etapas de elevação arredondadas inversas em 15 ordem inversa, isto é, quando o algoritmo da Figura 3 é executado de baixo para cima durante a descodificação.
Quando a função r de arredondamento apresenta simetria pontual, a rotação arredondada inversa é idêntica à rotação arredondada com o ângulo -a e é como segue: ( \ cos a sen a (9) v-sen a cos a
As matrizes de elevação para o descodificador, isto é, para a rotação de Givens inversa, resultam neste caso directamente da equação (1) através da mera substituição da expressão "sen a" pela expressão "-sen a".
Em seguida, está representada mais uma vez a decomposição de uma MDCT comum com janelas 40 a 46 sobrepostas, com base na Figura 5. As janelas 40 a 46 sobrepõem-se respectivamente em 50%. Por janela, as rotações de Givens são realizadas dentro do primeiro e segundo quartos de uma janela e dentro do terceiro e quarto quartos de uma janela, respectivamente, como está representado esquematicamente pelas setas 48. Em seguida, os valores submetidos a rotações de Givens, isto é, as amostras inteiras divididas em janelas, são introduzidos numa DCT de N para N, de tal modo que sempre o segundo e terceiro quartos de uma janela e o quarto e primeiro quartos de uma janela subsequente, respectivamente, sejam convertidos, em conjunto, numa representação espectral por meio de um algoritmo DCT-IV.
Por esta razão, as rotações comuns de Givens são decompostas em matrizes de elevação que são realizadas em sequência, sendo 16 que uma etapa de arredondamento é introduzida após cada multiplicação de matriz de elevação, de tal modo que os números em virgula flutuante sejam arredondados imediatamente após a sua ocorrência, de tal modo que o vector resultante tenha meramente números inteiros antes de cada multiplicação de um vector resultante por uma matriz de elevação.
Assim, os valores de saida permanecem sempre inteiros, sendo que é preferido também utilizar valores de entrada inteiros. Isto não representa uma limitação visto que, por exemplo, quaisquer amostras PCM, como as que estão armazenadas num CD, são valores inteiros cuja gama de valores varia consoante a largura de bit, isto é, dependendo de se os valores de entrada digitais discretos no tempo são valores de 16 bits ou valores de 24 bits. Todavia, como foi exposto, todo o processo é invertivel através da execução das rotações inversas numa ordem inversa. Assim, existe uma aproximação inteira da MDCT com reconstrução perfeita, portanto uma transformação sem perdas. A transformação mostrada fornece valores de saida inteiros ao invés de valores em virgula flutuante. Esta fornece uma reconstrução perfeita, de modo que nenhum erro é introduzido quando são realizadas uma transformação progressiva e depois uma outra regressiva. De acordo com um exemplo de realização preferido da presente invenção, a transformação é uma substituição para a transformação discreta do co-seno modificada. No entanto, também outros métodos de transformação podem ser realizados com números inteiros, desde que seja possível uma decomposição em rotações e uma decomposição das rotações em etapas de elevação. 17 A MDCT inteira tem a maioria das caracteristicas favoráveis da MDCT. Esta possui uma estrutura de sobreposição, através da qual é obtida uma melhor selectividade da frequência do que com transformações de bloco sem sobreposição. Devido à função de TDAC, que já é considerada durante a divisão em janelas antes da transformação, é mantida uma amostragem critica, de modo que o número total de valores espectrais que representam um sinal de áudio seja igual ao número total de amostras de entrada.
Comparada com uma MDCT normal, que fornece amostras em virgula flutuante, verifica-se na transformação inteira preferida descrita que, comparada com a MDCT normal, o ruido é aumentado meramente na faixa espectral, na qual existe um reduzido nivel de sinal, enquanto este aumento de ruido não é perceptivel em niveis de sinal significativos. Ao invés disso, o processamento inteiro presta-se a uma implementação de hardware eficiente, visto que são utilizados meramente etapas de multiplicação que podem facilmente ser decompostas em etapas de deslocamento/adição (etapas Shift/Add) que podem ser implementadas de uma maneira simples e rápida no que diz respeito ao hardware. É evidente que uma implementação de software também é possivel. A transformação inteira fornece uma boa representação espectral do sinal de áudio e no entanto permanece na gama dos números inteiros. Caso a mesma seja aplicada a componentes tonais de um sinal de áudio, isto resulta numa boa concentração de energia. Deste modo, pode-se construir um esquema de codificação eficiente sem perdas através do facto de que a divisão em janelas/transformação representado na Figura 3 é simplesmente submetido em cascata a um codificador entrópico. É particularmente favorável a codificação empilhada (Stacked 18
Coding), usando valores de "escape", como é empregue em MPEG AAC. É preferido escalonar para baixo todos os valores numa determinada potência de dois até que caibam numa tabela de código desejada e em seguida codificar adicionalmente os bits menos significativos omitidos. Em comparação com a alternativa de utilizar tabelas de código maiores, a alternativa descrita é mais favorável no que diz respeito ao consumo de memória para armazenagem das tabelas de código. Também seria possível obter um codificador quase sem perdas através da simples omissão de determinados bits menos significativos.
Particularmente para sinais tonais, uma codificação entrópica dos valores espectrais inteiros permite um elevado ganho de codificação. Para componentes transientes do sinal, o ganho de codificação é reduzido, nomeadamente devido ao espectro plano dos sinais transientes, isto é, devido a um reduzido número de valores espectrais que são iguais a ou próximos de 0. Conforme o descrito em J. Herre, J. D. Johnston: "Enhancing the Performance of Perceptual Audio Coders by Using Temporal Noise Shapping (TNS)" 101. AES Convention, Los Angeles, 1996, Pré-Publicação 4384, esta planura pode no entanto ser utilizada através da aplicação de uma predição linear na faixa de frequência. Uma alternativa é uma predição com laço aberto. Outra alternativa é o predictor com laço fechado. A primeira alternativa, isto é, o predictor com laço aberto, é designada por TNS. A quantificação após a predição leva a uma adaptação do ruído de quantificação resultante à estrutura temporal do sinal de áudio e evita, por conseguinte, pré-ecos em codificadores de áudio psicoacústicos. Para uma codificação de áudio sem perdas, a segunda alternativa, isto é, com um predictor com laço fechado, é mais adequada, visto que a predição com laço fechado possibilita uma reconstrução exacta do sinal de entrada. Quando 19 esta técnica é aplicada a um espectro gerado, uma etapa de arredondamento tem de ser realizada após cada etapa do filtro de predição para permanecer na gama dos números inteiros. Através da utilização do filtro inverso e da mesma função de arredondamento, o espectro original pode de novo ser exactamente reconstruído.
De modo a aproveitar a redundância entre dois canais para a redução de dados, também poderá ser utilizada uma codificação em sinal central/lateral sem perdas, quando é utilizada uma rotação arredondada com um ângulo de π/4 . Em comparação com a alternativa de calcular a soma e a diferença dos canais esquerdo e direito de um sinal estéreo, a rotação arredondada tem a vantagem da conservação de energia. A utilização das denominadas técnicas de codificação "Joint-Stereo" pode ser activada ou desactivada para cada banda, como é também feito na norma MPEG AAC. Também podem ser considerados outros ângulos de rotação para poder reduzir a redundância entre dois canais de uma maneira mais flexível.
Particularmente, o conceito de transformação representado com base na Figura 3 fornece uma implementação inteira da MDCT, portanto uma IntMDCT, que opera sem perdas no que diz respeito à transformação progressiva e à subsequente transformação regressiva. Para além disso, através das etapas 20, 24, 28 de arredondamento e das correspondentes etapas de arredondamento na DCT inteira (bloco 14 da Figura 3), é sempre possível um processamento inteiro, portanto um processamento com valores quantificados com menos precisão do que aqueles que foram gerados, por exemplo, pela multiplicação de vírgula flutuante por uma matriz de elevação (blocos 18, 22, 26 da Figura 3). 20 0 resultado é que toda a IntMDCT também pode ser realizada eficientemente no quer diz respeito aos cálculos. 0 facto de não haver perdas nesta IntMDCT ou, no geral, não haver perdas em todos os algoritmos de codificação denominados como sem perdas, refere-se ao facto de que o sinal, quando é codificado para se obter um sinal codificado e quando é depois novamente descodificado para se obter um sinal codificado/descodifiçado, "parece" exactamente igual ao sinal original. Por outras palavras, o sinal original é idêntico ao sinal original codificado/descodifiçado. Isto contrasta obviamente com a denominada codificação com perdas, na qual, como no caso de codificadores de áudio que operam em base psicoacústica, se perdem irremediavelmente dados devido ao processo de codificação e particularmente devido ao processo de quantificação controlado por um modelo psicoacústico. É evidente que, mesmo assim, são introduzidos erros de arredondamento. Como mostrado, com base na Figura 3, nos blocos 20, 24, 28, são assim executadas etapas de arredondamento que evidentemente introduzem um erro de arredondamento, que só é novamente "eliminado" no descodificador quando são realizadas as operações inversas. Assim, o conceito de codificação/descodificação sem perdas difere essencialmente dos conceitos de codificação/descodificação com perdas pelo facto de, nos conceitos de codificação/descodificação sem perdas, o erro de arredondamento ser introduzido de forma a poder ser novamente eliminado, enquanto que este facto não é o caso nos conceitos de codificação/descodificação com perdas.
Se no entanto for considerado o sinal codificado, portanto no exemplo de codificadores transformadores, o espectro de um 21 bloco de amostras temporais, o arredondamento na transformação progressiva, ou globalmente a quantificação de um tal sinal resulta na introdução de um erro no sinal. Deste modo, o espectro ideal sem erro do sinal é sobreposto com um erro de arredondamento que é tipicamente, por exemplo no caso da Figura 3, um ruido branco que compreende igualmente todas as componentes de frequência da faixa espectral considerada. Este ruido branco sobreposto no espectro ideal representa assim o erro de arredondamento que ocorre, por exemplo, devido ao arredondamento nos blocos 20, 24, 28 durante a divisão em janelas, portanto durante o pré-processamento do sinal antes da DCT propriamente dita no bloco 14. Deve observar-se em particular, que para um requisito de falta de perdas, o erro total de arredondamento deve ser necessariamente codificado, portanto ser transmitido ao descodificador, porque o descodificador necessita do erro total de arredondamento introduzido no codificador, para conseguir de novo uma reconstrução correcta sem perdas. O erro de arredondamento não é, todavia, problemático quando nada é "feito" com a representação espectral, portanto quando a representação espectral é somente armazenada, transmitida e novamente descodificada por um descodificador inverso correctamente apropriado. Nesse caso, o critério de não haver perdas será sempre cumprido, independentemente da dimensão de erro de arredondamento que foi introduzido no espectro. Se no entanto, com a representação espectral, portanto com a representação espectral ideal de um sinal original que contenha um erro de arredondamento, alguma coisa for feita, por exemplo geradas camadas de escalabilidade, etc., todos estes aspectos funcionam tanto melhor, quanto mais reduzido for o erro de arredondamento. 22
Por conseguinte, também existe um requisito nas codificações/descodificações sem perdas, no sentido de que, por um lado, um sinal deve ser reconstruível sem perdas por descodificadores especiais, mas que, no entanto, um sinal deve também ter um erro de arredondamento minimo na sua representação espectral, para preservar flexibilidade no sentido de que a representação espectral possa também ser introduzida em descodificadores não ideais sem perdas ou que possam ser geradas camadas de escalonamento, etc.
Como já foi acima explicado, o erro de arredondamento é expresso como ruido branco em todo o espectro considerado. Por outro lado, particularmente em aplicações de elevada qualidade, como as que são especialmente interessantes para o caso sem perdas, portanto em aplicações de áudio com frequências de amostragem muito altas, como por exemplo 96 kHz, o sinal de áudio tem somente um conteúdo de sinal razoável numa determinada faixa espectral, que tipicamente atinge no máximo apenas até 20 kHz. Tipicamente, a faixa em que a maior parte da energia do sinal de áudio se concentra, será a faixa entre 0 e 10 kHz, enquanto a energia do sinal diminuirá consideravelmente na faixa acima de 10 kHz. Isto no entanto, não é importante para o ruido branco introduzido pelo arredondamento. Este sobrepõe-se em toda a faixa espectral considerada da energia do sinal. O resultado é que, em faixas espectrais, portanto tipicamente nas altas faixas espectrais onde não existe, ou somente existe energia do sinal de áudio muito pequena, haverá somente o erro de arredondamento. Ao mesmo tempo, particularmente devido à sua natureza não determinística, o erro de arredondamento pode ser ainda difícil de codificar, isto é, pode ser somente codificado com uma quantidade de bits relativamente grande. Assim, a quantidade de 23 bits não desempenha, todavia, o papel decisivo, particularmente nalgumas aplicações sem perdas. No entanto, para que as aplicações de codificação sem perdas se tornem cada vez mais divulgadas, é muito importante operar também aqui com muita eficiência no que diz respeito aos bits, para combinar a vantagem da redução não existente de qualidade, inerente às aplicações sem perdas, também com a correspondente eficiência no que diz respeito aos bits, como é conhecido nos conceitos de codificação com perdas. É o objecto da presente invenção conceber um conceito eficiente para o processamento de sinais.
Este objecto é solucionado através de um dispositivo para o processamento de um sinal com uma sequência de valores discretos de acordo com a reivindicação 1, de um método para o processamento de um sinal com uma sequência de valores discretos de acordo com a reivindicação 18, ou de um programa de computador de acordo com a reivindicação 19. A presente invenção baseia-se no reconhecimento de que, particularmente no contexto da codificação/descodificação sem perdas, um erro de arredondamento é configurado espectralmente de modo a ser "acomodado" na faixa de frequência do sinal a ser codificado, em que o sinal tem, de qualquer forma, uma energia alta de sinal e de tal modo que, como consequência, o erro de arredondamento não esteja presente nas faixas em que o sinal não tem, de qualquer forma, qualquer energia. Enquanto no estado da técnica, na codificação sem perdas, e particularmente na codificação sem perdas com base em algoritmos inteiros, um erro de arredondamento foi distribuído em faixa larga em todo o espectro do sinal, o erro de arredondamento, é de acordo com a 24 invenção, sobreposto no espectro ideal sob a forma de um ruido colorido, nomeadamente de tal modo que a energia do ruido devida ao arredondamento esteja presente onde o sinal tem, de qualquer forma, a sua maior energia de sinal, e que, deste modo, o ruído devido ao erro de arredondamento tenha uma energia mínima ou mesmo inexistente onde o próprio sinal a ser codificado também não tenha qualquer energia. Deste modo, é evitado o caso mais desvantajoso, no qual o erro de arredondamento que é um sinal estocástico e portanto difícil de codificar, é o único sinal a ser codificado numa faixa de frequência e, por conseguinte, aumenta desnecessariamente a taxa de bits.
Ao considerar-se um sinal de áudio, no qual a energia se situa na faixa de baixa frequência, o dispositivo presente, de acordo com a invenção, é concebido para o arredondamento de modo a alcançar uma configuração espectral passa-baixo do erro de arredondamento gerado, no sentido de que, nas altas frequências do sinal codificado, não existe nem energia de sinal nem energia de ruído, enquanto o erro de arredondamento é mapeado na faixa em que o sinal tem, de qualquer forma, muita energia.
Em particular, para aplicações de codificação sem perdas, isto contrasta com o estado da técnica, onde um erro de arredondamento é submetido espectralmente a uma filtragem passa-alto para se obter um erro de arredondamento fora da faixa audível. Isto corresponde portanto ao caso em que a faixa espectral, na qual se encontra o erro de arredondamento é filtrada, ou electronicamente ou pela própria audição, para eliminar o erro de arredondamento. Para uma codificação/descodificação sem perdas o erro de arredondamento é, no entanto, absolutamente necessário no descodificador, porque, de outra maneira, o algoritmo utilizado no 25 descodificador, que é inverso ao algoritmo de codificação sem perdas, gera distorções. 0 conceito de acordo com a invenção, de configuração espectral do erro de arredondamento é empregue, de um modo preferido, em aplicações sem erros com uma alta taxa de amostragem, porque em particular nos casos em que os espectros se estendem teoricamente acima de 40 kHz (devido a uma sobreamostragem), a mesma situação é obtida na faixa de alta frequência, na qual, de qualquer maneira não existe energia do sinal, e na qual, portanto, a codificação pode ser feita de maneira muito eficiente, como no caso de uma codificação não inteira, onde a energia do sinal é também igual a zero na faixa de alta frequência.
Devido ao facto de um grande número de zeros ser codificado de forma muito eficiente e devido ao facto de o erro de arredondamento, que é problemático para ser codificado, ser transferido para a faixa que de qualquer maneira é tipicamente codificada de forma muito precisa, toda a taxa de dados do sinal fica assim reduzida quando comparada com o caso em que o erro de arredondamento se distribui como ruido branco em toda a faixa de frequência. Além disso, o desempenho da codificação - e assim também o desempenho da descodificação - aumentam, porque também nenhum tempo de cálculo tem que ser gasto para a codificação e a descodificação da faixa de alta frequência. O conceito de acordo com a invenção, conduz, deste modo, também a que possa ser obtido um processamento de sinal mais rápido por parte do codificador e por parte do descodificador.
Num exemplo de realização preferido da presente invenção, aplica-se o conceito de acordo com a invenção, de configurar 26 e/ou reduzir o erro de aproximação às transformações inteiras invertíveis, particularmente à IntMDCT. A este respeito, existem duas áreas de aplicação, nomeadamente, por um lado, a elevação multidimensional, com a qual a MDCT pode ser consideravelmente simplificada no que diz respeito às etapas de arredondamento necessárias, e, por outro lado, as operações de arredondamento necessárias na divisão em janelas inteiro, tais como ocorrem no pré-processamento antes da DCT propriamente dita.
De acordo com a invenção, é utilizar um conceito de realimentação de erro para a configuração espectral do erro de arredondamento, no qual, de acordo com a invenção, o erro de arredondamento é deslocado para a faixa de frequência em que o sinal que está a ser processado, tem a energia de sinal mais elevada. Em sinais de áudio, e particularmente também em sinais de vídeo, esta será a faixa de baixa frequência, de modo que o sistema de realimentação de erro tem uma característica de passa-baixo. Devido a este facto resultam menos erros de arredondamento na faixa superior de frequência, na qual existem normalmente menos componentes de sinal. No estado da técnica, os erros de arredondamento têm prevalência na faixa superior, que têm portanto de ser codificados e assim aumentam o número de bits necessários para a codificação. De acordo com a invenção, este erro de arredondamento é reduzido nas frequências mais altas, o que reduz directamente o número de bits necessários para a codificação.
Os exemplos de realização preferidos da presente invenção são, em seguida, explicados mais detalhadamente com referência aos desenhos anexos. Mostram: 27
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura 1 um diagrama de blocos do conceito, de acordo com a invenção para o processamento de um sinal com uma sequência de valores discretos; 2a um conceito conhecido para a configuração espectral do tipo passa-alto de um erro de quantificação; 2b um conceito para a configuração do tipo passa-baixo do erro de arredondamento, de acordo com a presente invenção; 2c um diagrama de blocos, de acordo com um exemplo de realização preferido da presente invenção para o bloco de configuração espectral/arredondamento; 3 um diagrama de blocos de um dispositivo preferido para o processamento de amostras de áudio discretas no tempo, para se obterem valores inteiros, a partir dos quais podem ser determinados valores espectrais inteiros; 4 uma representação esquemática da decomposição de uma MDCT e de uma MDCT inversa em rotações de Givens e duas operações de DCT-IV; 5 uma representação para a ilustração da decomposição da MDCT com 50 por cento de sobreposição em rotações e operações de DCT-IV; 6a um diagrama de blocos esquemático de um codificador conhecido com MDCT e 50 por cento de sobreposição; 28
Figura
Figura
Figura
Figura
Figuras
Figura
Figura
Figura
Figura 6b um diagrama de blocos de um descodificador conhecido para a descodificação dos valores gerados pela Figura 10a; 7 uma representação da elevação durante a divisão em janelas, de acordo com a Figura 3; 8 uma representação "reordenada" da elevação da Figura 7 para a divisão em janelas antes da transformação propriamente dita; 9 uma aplicação da presente invenção para a divisão em janelas, de acordo com as Figuras 3, 7 e 8; 10A - 10C diagramas de blocos de um dispositivo para conversão, de acordo com um exemplo de realização preferido da presente invenção; 11 um dispositivo para conversão inversa, de acordo com um exemplo de realização preferido da presente invenção; 12 uma representação da transformação de dois blocos subsequentes de valores, conforme aplicável para a presente invenção; 13 uma representação detalhada de uma etapa de elevação multidimensional com uma matriz de transformação progressiva; 14 uma representação de uma etapa de elevação inversa multidimensional com uma matriz de transformação 29 regressiva;
Figura 15 uma representação da presente invenção para a decomposição de uma DCT-IV do comprimento N em duas DCT-IV do comprimento N/2;
Figura 16 uma aplicação do conceito, de acordo com a invenção dentro da transformação com elevação multidimensional da Figura 10;
Figura 17 uma representação de duas etapas de elevação sucessivas;
Figura 18 uma representação do conceito para a redução do erro de arredondamento em duas etapas de elevação sucessivas da Figura 17; e
Figura 19 uma combinação, de acordo com a invenção, do conceito da Figura 18 com o conceito da Figura 16. A Figura 1 mostra um dispositivo para o processamento de um sinal com uma sequência de valores discretos, que é introduzido num dispositivo 202 de manipulação através de uma entrada 200 de sinal. O sinal é, tipicamente, formado para ter uma primeira faixa de frequências, na qual o sinal tem uma alta energia e para ter uma segunda faixa de frequências, na qual o sinal tem uma energia comparativamente baixa. Se o primeiro sinal for um sinal de áudio, terá uma alta energia na primeira faixa de frequências, portanto na faixa de baixas frequências, e terá a baixa energia na faixa de altas frequências. Se, no entanto, o sinal for um sinal de video, este também terá a alta energia na faixa de baixas frequências, e terá a baixa energia na faixa de 30 altas frequências. Em contraste com o sinal de áudio, a faixa de frequências no sinal de vídeo é uma faixa de frequências espacial, a menos que sejam considerados sucessivas tramas de vídeo, nas quais também existe uma frequência temporal, por exemplo, relacionada com uma área de imagem seleccionada em tramas sucessivas. 0 dispositivo 202 de manipulação é, geralmente, concebido para manipular a sequência de valores discretos, de tal modo que seja obtida uma sequência de valores manipulados, na qual, pelo menos, um valor manipulado não seja inteiro. Esta sequência de valores discretos não inteiros é introduzida num dispositivo 204 para arredondamento da sequência de valores manipulados de modo a ser obtida uma sequência de valores manipulados arredondados. De acordo com a invenção, o dispositivo 204 para arredondamento é concebido para efectuar uma configuração espectral de um erro de arredondamento gerado pelo arredondamento, de tal modo que, na primeira faixa de frequência, portanto na faixa de frequência em que o sinal original tem uma alta energia, um erro de arredondamento configurado espectralmente também tem uma alta energia, e que, na segunda faixa de frequência, portanto na faixa de frequência em que o sinal original tem uma baixa energia, o erro de arredondamento configurado espectralmente também tem uma energia reduzida ou nenhuma. Em geral, a energia do erro de arredondamento configurado espectralmente na primeira faixa de frequência é por conseguinte mais alta do que a energia do erro de arredondamento configurado espectralmente na segunda faixa de frequência. No entanto, a configuração espectral, de um modo preferido, não altera nada na energia total do erro de arredondamento. 31
De um modo preferido, para a geração da sequência com erros de valores manipulados arredondados, o dispositivo de acordo com a invenção está acoplado, ou directamente ou através de outras combinações de manipulação/arredondamento, a um dispositivo 206 para conversão numa representação espectral. Assim, a sequência com erros de valores manipulados arredondados pode ser introduzida directamente no dispositivo 206 para conversão numa representação espectral, de modo a se obter um espectro directo da sequência com erros de valores manipulados arredondados. No entanto, num exemplo de realização preferido da presente invenção, o dispositivo para manipulação é uma etapa de elevação, ou seja uma matriz de elevação, e o dispositivo para arredondamento é concebido para arredondar os resultados não inteiros de uma etapa de elevação. Neste caso, o dispositivo 204 é seguido por um outro dispositivo para manipulação que realiza a segunda etapa de elevação, que, por sua vez, é seguido por um dispositivo para arredondamento, que, por sua vez, é seguido por um terceiro dispositivo para manipulação que implementa a terceira etapa de elevação, sendo que então ocorre uma manipulação de modo que todas as três etapas de elevação tenham sido realizadas. Assim, é gerada uma sequência com erros de valores manipulados arredondados derivada na saída do dispositivo 204, a partir da sequência original com erros de valores manipulados arredondados, que é então finalmente convertida numa representação espectral, de um modo preferido também através de uma transformação inteira e particularmente, de um modo preferido, através de uma transformação inteira também provida do conceito de acordo com a invenção, como se encontra representado pelo bloco 206. O sinal de saída da representação espectral na saída do bloco 206 tem agora um espectro que, em contraste com o estado da técnica, já não tem um erro de arredondamento distribuído em faixa larga, mas antes 32 um erro de arredondamento configurado espectralmente, nomeadamente de tal modo que também haja uma alta energia de erro de arredondamento, onde o "espectro útil" propriamente dito tem uma alta energia de sinal, enquanto que, mesmo no melhor caso, não existe energia de erro de arredondamento nas faixas de frequência em que não existe energia de sinal.
Este espectro gerado de acordo com a invenção é então introduzido num dispositivo 208 para codificação por entropia da representação espectral. O dispositivo para codificação por entropia pode compreender qualquer método de codificação, como por exemplo uma codificação de Huffman, uma codificação aritmética, etc. Em particular para a codificação de um grande número de linhas espectrais que são iguais a zero e que são adjacentes umas às outras, é também adequada uma codificação de repetições (codificação run-length) que naturalmente não se pode aplicar no estado da técnica, porque aqui um sinal realmente deterministico tem de ser codificado em faixas de frequência tais, que, no entanto, tem um espectro branco e, sendo, por conseguinte especialmente desfavorável para quaisquer tipos de ferramentas de codificação, porque os valores espectrais individuais estão completamente descorrelacionados entre si.
Em seguida, é exemplificado um exemplo de realização preferido do dispositivo 204 para arredondamento, com configuração espectral, tendo como referência as Figuras 2a, 2b, 2c. A Figura 2a mostra um sistema conhecido de realimentação de erro para a configuração espectral de um erro de quantificação, como descrito no livro especializado "Digitale Audiosignalverarbeitung", U. Zoelzer, Teubner-Verlag, Stuttgart, 33 1997. Um valor x(i) de entrada é introduzido num somador 210 de entrada. O sinal de saida do somador 210 é introduzido num quantificador 212 que fornece um valor y(i) de saida quantificado numa saida do dispositivo de configuração espectral. Num segundo somador 214, é determinada a diferença entre o valor após o quantificador 212 e o valor antes do quantificador 212, portanto o erro de arredondamento e(i). O sinal de saida do segundo somador 214 é introduzido num dispositivo 216 retardador. O erro e(i) retardado por uma unidade de tempo é então subtraído do valor de entrada por meio do somador 210. Deste modo, resulta uma avaliação do tipo passa-alto do sinal e(n) de erro original.
Se z’1 (-2 + z’1) for utilizado ao invés do dispositivo retardador z"1, designado por 216 na Figura 2a, o resultado é uma avaliação do tipo passa-alto de segunda ordem. Em determinados exemplos de realização, as configurações espectrais deste género do erro de quantificação são utilizadas para "desvanecer" o erro de quantificação, da faixa perceptível, portanto, por exemplo, da faixa de passa-baixo do sinal x(n), para que o erro de quantificação não seja percebido.
De acordo com a invenção, como está mostrado na Figura 2b, é em vez disso realizada uma avaliação do tipo passa-baixo para se obter uma configuração espectral do erro que não fique fora da faixa de percepção, mas sim, exactamente, na faixa de percepção. Para este fim, o sinal de saída do somador 210, como está mostrado na Figura 2b, é introduzido num bloco 218 de arredondamento que implementa uma função de arredondamento qualquer, que pode ser, por exemplo, um arredondamento para cima, um arredondamento para baixo, um arredondamento por corte, um arredondamento para cima/arredondamento para baixo até ao 34 próximo inteiro, ou até ao próximo inteiro a seguir, a seguir a este, .... No percurso de realimentação de erro, portanto entre o somador 214 e o somador 210, encontra-se agora ainda um outro bloco 220 de realimentação com uma resposta h(n) de impulso e/ou uma função H(z) de transferência adicionalmente ao elemento 216 retardador. A transformada z da sequência de saida, portanto Y(z), depende da sequência X(z) de entrada através da equação representada na Figura 2b. e (n) = y (n) -x' (n)
Na equação precedente, x' (n) é o sinal de saída do somador 210, e y(n) é o sinal de saída do bloco 218 de arredondamento.
Além disso, aplica-se a seguinte equação: y(n) = round (x'(n))
Na equação precedente, "round" representa a função de arredondamento que é implementada pelo bloco 218. Além disso, aplica-se a seguinte equação, na qual representa a operação de convolução: x'(n) - x{n) - h(n) * e{n - 1)
Na faixa Z, existe o seguinte resultado: Y(z) = X' (z) + E(z) X' (z) = X{z) - E(z) z_1H{z) Y(z) - X(z) + (1 - z’1 H{z))E(z) 35
Como E(z) é o erro de arredondamento, é configurado espectralmente pelo filtro (1 - z_1H(z)). De acordo com a invenção, é empregue agora uma função de transferência do tipo passa-baixo. A função de transferência do tipo passa-baixo mais simples pode ser obtida quando se estabelece, por exemplo, H(z) = -1. Neste exemplo simples, o erro de arredondamento da operação anterior de arredondamento é, portanto, simplesmente somado ao valor a ser arredondado antes de ser aplicada a próxima operação de arredondamento. Deste modo, é obtida uma filtragem passa-baixo simples do erro de arredondamento, que é muito eficiente para a presente invenção, sendo por isso preferida.
Na Figura 2c está representada uma implementação. Em particular, está representado o dispositivo 202 para manipulação de uma sequência original de valores discretos inteiros, que fornece a sequência de valores yo, yi, y2, ···, Y± discretos não inteiros no lado de saida. Agora, em contraste com o estado da técnica, cada valor deixa de ser arredondado individualmente, como se encontra representado, por exemplo, com base nos blocos 20, 24, 28 da Figura 3 ou com base nos blocos 104, 110, 142 da Figura 10C ou 126, 132, 150 da Figura 11. Ao invés disso, os valores discretos não inteiros da sequência y0, yi, Y2, Y3r · · · são filtrados, dependendo entre si, com característica de passa-baixo no ramo de realimentação, pela "rede" mostrada na Figura 2, de modo que o resultado é a configuração espectral de acordo com a invenção. Os elementos iguais na Figura 2c e na Figura 2b estão representados com os mesmos números de referência.
Além disso, na Figura 2c está representada uma implementação paralela, portanto uma implementação, na qual os valores a serem 36 arredondados são disponibilizados em paralelo. É evidente que esta representação é somente esquemática. Os valores yo, yi, y2, . . ., podem ser disponibilizados sequencialmente para então se obterem valores de saida sequenciais, sendo que, neste caso, uma única execução da estrutura a partir dos elementos 210, 214, 216, 218, 220 é suficiente. As estruturas repetitivas dos elementos 214, 218, 210, 220 estão representadas somente por razões de compreensão. O dispositivo 204 para arredondamento, mostrado na Figura 2c, opera, deste modo, para primeiro calcular o valor [y0] arredondado. Depois, é calculado o erro i0 de arredondamento. Depois, o erro i0 de arredondamento é ponderado (filtrado) pelo bloco 220 com a função H(z) de transferência, que é, de um modo preferido, igual a -1, e introduzido no somador 210. Este erro de arredondamento filtrado é somado ao próximo valor da sequência yi, sendo depois o resultado do somador 210 arredondado no bloco 218 para se obter o próximo valor [yi] arredondado. Em seguida, o erro de arredondamento é novamente determinado pelo somador 214, nomeadamente, usando o valor [yi] arredondado e o valor yi original, sendo que este erro ii de arredondamento obtido é novamente filtrado no bloco 220 para realizar o mesmo procedimento para o próximo valor y2 da sequência.
Aqui deve-se observar que a direcção é irrelevante. Isto significa que é também possível progredir a partir de yi com maiores índices até yi com menores índices, portanto na direcção oposta à da simbolizada na Figura 2c pelas setas, que se estendem a partir do bloco 220 até ao somador 210. A ordem, portanto se o procedimento segue de baixos até altos índices de sequência ou de altos até baixos índices de sequência, não é, por conseguinte, importante. 37
Particularmente, no caso de aplicação da MDCT inteira (IntMDCT), a configuração espectral do erro de arredondamento é empregue, de um modo preferido, com especial eficiência nos locais que cumprem as seguintes condições: É introduzido, independentemente uns dos outros, um erro de arredondamento em diversos valores adjacentes.
Os valores adjacentes são (no sentido mais amplo) sinais de tempo que são posteriormente convertidos em representação espectral por uma transformação, portanto são transferidos para o dominio da frequência.
Em seguida, explica-se mais detalhadamente em que partes da MDCT inteira, a configuração espectral do erro de arredondamento é empregue de um modo preferido. 0 primeiro caso de aplicação preferido consiste na divisão em janelas antes da transformação propriamente dita, portanto para o arredondamento especificado na Figura 3 pelos blocos 20, 24, 28. A operação de elevação, à qual é submetida cada amostra xi, ..., xn original individual e como se encontra ilustrada com base na Figura 3, pode também ser representada através do diagrama mostrado na Figura 7. Neste caso, as aplicações das três matrizes de elevação, portanto a respectiva multiplicação por um factor para uma amostra, estão representadas por amostras, de modo que resulta a sequência "de cima para baixo", "de baixo para cima" e "de cima para baixo".
No que diz respeito à notação da Figura 7, deve observar-se que, quando uma seta incide numa linha horizontal, é ai 38 realizada uma soma. Esta soma é mostrada, por exemplo, em 27 na Figura 7. Quando a Figura 4 é comparada com a Figura 7, a única diferença reside no facto de x(0) na Figura 4 corresponder a xi da Figura 7. Nesta medida, xN na Figura 7 corresponde a x(N-l) na Figura 4. No entanto, x(N/2-l) da Figura 4 corresponde a xN/2 da Figura 7. Além disso, x(N/2) na Figura 4 corresponde a xn/2+i da Figura 7, de modo que resultam as borboletas mostradas na Figura 4, através das quais é respectivamente ponderado, de acordo com as etapas de elevação, um valor do primeiro quadrante de uma janela com um valor do segundo quadrante da janela, enquanto, de modo análogo, também um valor do terceiro quadrante da janela é processado com um valor do quarto quadrante da janela através do "sistema para baixo - para cima - para baixo", como se encontra representado na Figura 7.
Existe um procedimento correspondente para o par de valores xn/2 e χν/2+ι· Existe novamente uma sequência para baixo - para cima - para baixo, sendo que uma etapa 29a para baixo é seguida por uma etapa 29b para cima, que por sua vez, é seguida por uma etapa 29c para baixo. A Figura 7 mostra, por conseguinte, a divisão em janelas inteiro por elevação. Este cálculo pode também ser reordenado sem problemas e sem alterar o resultado, como se encontra representado na Figura 8. Assim, evidentemente, todas as etapas para baixo (todas as etapas 29a) podem ser realizadas primeiro. Depois, todas as etapas (29b) para cima podem ser realizadas, até finalmente se realizar todas as etapas 29c para baixo, de modo que resultam um bloco 31a para baixo, um bloco 31b para cima e novamente um bloco 31c para baixo. Deve observar-se que a Figura 8 corresponde à Figura 7, embora numa outra representação que é mais adequada para a compreensão da presente invenção. 39 A Figura 9 mostra agora o conceito de acordo com a invenção, no qual é realizado o arredondamento de acordo com a invenção, para o arredondamento com configuração espectral. 0 conceito de cálculo da elevação mostrado na Figura 9 corresponde à Figura 1, no sentido de que os valores xi, xN/2 de entrada representam a sequência original de valores discretos inteiros na entrada 200. Os blocos csi, cs2, . .., csk de avaliação no bloco 31a para baixo formam, em conjunto, o dispositivo 202 para manipulação. O bloco designado como [.]/NoiseShaping representa o dispositivo 204 para arredondamento da Figura 1. Na saida deste bloco 204 resulta agora a sequência com erros de valores manipulados arredondados.
No exemplo de realização mostrado na Figura 9, a sequência de valores manipulados arredondados com erros é somada a uma outra sequência χν/2+ι a xn para se obter uma nova sequência de valores discretos inteiros, que, por sua vez, é manipulada (pelos blocos si, Sk no bloco 31b para cima) para então se obter novamente através do elemento 204b, um arredondamento, de acordo com a invenção, no bloco 31b para cima. Depois, como no bloco 31a para baixo, portanto como no caso do somador 205a, está novamente previsto um somador 205b por valor, para se obter uma nova sequência que, por sua vez, é introduzida num manipulador 202c, em que o sinal de saida do manipulador 202c não é inteiro, sendo arredondado num outro arredondador 204c, para ser somado, por sua vez, por um outro somador 205c, nomeadamente, à sequência introduzida no manipulador 202b.
No exemplo de realização mostrado na Figura 9, obtém-se, no lado de saida, um bloco de amostras divididas em janelas que, de acordo com o sistema representado com base na Figura 4, é 40 introduzido em blocos DCT-IV correspondentemente deslocados. Estes blocos DCT deslocados disponibilizam uma transformação para converter uma sequência com erros de valores manipulados arredondados numa representação espectral. Na Figura 4 os blocos DCT-IV representam, por conseguinte, uma implementação do dispositivo 206 da Figura 1. Analogamente, os blocos para a realização da DCT-IV inteira inversa representam dispositivos análogos para conversão numa representação temporal.
Em seguida, a aplicação da elevação multidimensional é explicada tendo como referência as Figuras 10 a 15, para expor uma implementação inteira do dispositivo 206 para conversão na representação espectral da Figura 10a e/ou uma implementação inteira análoga da conversão inversa (para um descodificador). O conceito da elevação multidimensional está apresentado no documento DE-A-10331803. A Figura 10a mostra um dispositivo para conversão de valores discretos numa representação transformada com valores inteiros. Os valores discretos são introduzidos no dispositivo através de uma primeira entrada 100a, assim como através de uma segunda entrada 100b. Um primeiro bloco de valores discretos é introduzido através da entrada 100a, enquanto um segundo bloco de valores discretos é introduzido através da entrada 100b. Os valores discretos representam dados de áudio ou dados de imagem ou seja dados de video. Como em seguida será ainda explicado, o primeiro bloco de valores discretos e o segundo bloco de valores discretos podem de facto compreender dois blocos de amostras de áudio sucessivos no tempo. O primeiro e o segundo blocos de valores discretos também podem compreender duas imagens representadas por valores discretos, ou valores residuais após uma predição ou valores diferenciais numa codificação 41 diferencial, etc. Como alternativa, os dois blocos de valores discretos podem ter sido submetidos, no entanto, a um pré-processamento, como por exemplo na implementação inteira da MDCT, onde o primeiro bloco e o segundo blocos de valores discretos foram gerados através de rotações de Givens a partir de amostras divididas em janelas efectivas. 0 primeiro e o segundo blocos de valores discretos podem, assim, ser derivados a partir de dados originais de áudio ou de imagem através de quaisquer processamentos, como por exemplo rotações, permutações, borboletas para mais/menos, escalonamentos, etc. Todavia, o primeiro e o segundo blocos de valores discretos, embora não sejam directamente amostras de áudio ou valores de imagem discretizados, contêm informações de áudio ou informações de imagem, respectivamente. 0 primeiro bloco de valores discretos é introduzido, através da entrada 100a, num dispositivo 102 para processamento do primeiro bloco de valores discretos através da utilização de uma Ia regra de transformação, para se obter um primeiro bloco de valores transformados numa saida do dispositivo 102, como é mostrado na Figura 10a. Este primeiro bloco de valores transformados não será tipicamente inteiro, mas compreenderá antes valores em virgula flutuante, como são tipicamente obtidos por qualquer regra de transformação como, por exemplo, uma transformação de Fourier, uma transformação de Laplace, uma FFT, uma DCT, uma DST, uma MDCT, uma MDST ou qualquer outra transformação, como por exemplo uma transformação wavelet com funções de base arbitrárias. O primeiro bloco de valores transformados é introduzido no dispositivo 104 para arredondamento do primeiro bloco de valores transformados, visando obter, no lado de saida, um primeiro bloco de valores transformados arredondados. O dispositivo 104 para 42 arredondamento é concebido para realizar qualquer função de arredondamento como, por exemplo, um arredondamento por truncamento ou um arredondamento para cima ou para baixo, a ser realizado dependendo do valor em virgula flutuante. A regra de arredondamento, que é implementada pelo dispositivo 104, é assim responsável pelo facto de que o primeiro bloco de valores transformados arredondados apenas possui novamente valores inteiros, cuja precisão é determinada através da regra de arredondamento utilizada pelo dispositivo 104. O primeiro bloco de valores transformados arredondados, assim como o segundo bloco de valores discretos aplicado à segunda entrada 100b, é fornecido a um dispositivo 106 para soma, de modo a obter um segundo bloco de valores somados. Caso se considere o exemplo do sinal de áudio, pode ver-se que, através do dispositivo 106, valores espectrais do primeiro bloco de valores transformados arredondados são somados aos valores de tempo a partir do segundo bloco de valores discretos. Caso os valores discretos do segundo bloco se apresentem, por exemplo, como valores de tensão, recomenda-se que o primeiro bloco de valores transformados arredondados se apresente também como amplitudes de tensão, portanto como valores com a unidade V. Neste caso, na soma não haverá problemas no que diz respeito às unidades. Para os especialistas é todavia evidente que qualquer padronização de unidade pode ser feita com o primeiro bloco de valores transformados arredondados e com o segundo bloco de valores discretos, respectivamente, no sentido de que tanto o primeiro bloco de valores transformados arredondados, como o segundo bloco de valores discretos são, por exemplo, isentos de unidades. 43 0 segundo bloco de valores somados é fornecido a um dispositivo 108 para processamento do segundo bloco de valores somados através da utilização de uma 2a regra de transformação para se obter um segundo bloco de valores transformados. Caso a regra de transformação utilizada no dispositivo 102 seja, por exemplo, uma regra de transformação tempo-frequência, então a 2a regra de transformação, que é utilizada no bloco 108, é, por exemplo, uma regra de transformação frequência-tempo. Estas relações também podem ser invertidas, de modo que o primeiro e o segundo blocos de valores discretos sejam, por exemplo, valores espectrais, de modo que valores de tempo sejam obtidos através do dispositivo 102 para processamento sob a regra de transformação, enquanto valores espectrais são novamente obtidos através do dispositivo para processamento mediante a regra de transformação inversa, portanto do dispositivo 108. Assim, a Ia e a 2 a regras de transformação podem ser uma regra de transformação progressiva ou uma regra de transformação regressiva, sendo que a regra de transformação inversa é então a regra de transformação regressiva ou a regra de transformação progressiva, respectivamente. O segundo bloco de valores transformados é introduzido num dispositivo 110 para arredondamento, conforme o mostrado na Figura 10a, para se obter um segundo bloco de valores transformados arredondados, o qual é finalmente introduzido num dispositivo 112 para subtracção, de modo a subtrair o segundo bloco de valores transformados arredondados a partir do primeiro bloco de valores discretos que é introduzido através da primeira entrada 108a, para se obter um bloco de valores de saida inteiros da representação transformada, o qual pode ser emitido por uma saida 114. Através do processamento do bloco de valores de saida inteiros da representação transformada utilizando uma 44 terceira regra de transformação arbitrária que também tenha sido utilizada no dispositivo 102 ou difira da mesma, e através do subsequente arredondamento do bloco de valores de saida transformados para se obter um bloco de valores de saída transformados arredondados, e através da subsequente soma do bloco de valores de saida transformados arredondados ao segundo bloco de valores somados, pode obter-se um outro bloco de valores de saida inteiros da representação transformada, o qual, com o bloco de valores de saida inteiros aplicado à saida 114, fornece uma representação transformada completa do primeiro e do segundo blocos de valores discretos.
No entanto, mesmo sem as últimas três etapas de processamento, arredondamento e soma, nas quais o bloco de valores de saida inteiros da representação transformada é aplicado à saida 114, uma parte da representação total transformada pode ser logo obtida, a saber, por exemplo, a primeira metade que, quando submetida ao processamento inverso, permite um cálculo inverso do primeiro e do segundo blocos de valores discretos.
Aqui deve observar-se que, consoante a regra de transformação, a Ia, a 2a e, eventualmente, a terceira regras de transformação podem ser idênticas. Isto é, por exemplo, o caso da DCT-IV. Caso uma FFT tenha sido empregue como Ia regra de transformação, a IFFT, que não é idêntica à FFT, poderia ser utilizada como segunda regra de transformação (inversa).
Por motivos computacionais é preferido disponibilizar a regra de transformação na forma de uma matriz que, quando o número de valores discretos do primeiro bloco é igual ao número de valores discretos dos segundo bloco, é então uma matriz 45 quadrada de NxN, quando o número de valores discretos do primeiro bloco e o número de valores discretos do segundo bloco são respectivamente iguais a N.
Num exemplo de realização, os dispositivos 104 e 110 para arredondamento estão concebidos para arredondar, de acordo com uma função de arredondamento que fornece resultados arredondados, cuja precisão é inferior a uma precisão de máquina inerente a um computador que executa as funcionalidades mostradas na Figura 10a. No que diz respeito à função de arredondamento, deve observar-se que a mesma mapeia um número não inteiro para o próximo inteiro mais alto ou mais baixo, meramente num exemplo de realização preferido. De igual modo, a função de arredondamento também pode mapear para outros números inteiros, como por exemplo o número 17,7 para o número 10 ou para o número 20, desde que a função de arredondamento provoque uma diminuição da precisão do número a ser arredondado. No exemplo acima, o número não arredondado é um número com um digito após a virgula decimal, enquanto o número arredondado é um número sem digito após a vírgula decimal.
Embora o dispositivo 102 para processamento através da utilização da Ia regra de transformação e o dispositivo 108 para processamento através do uso da 2a regra de transformação sejam mostrados como dispositivos separados na Figura 10a, deve observar-se que numa implementação concreta, pode estar presente meramente uma unidade funcional de transformação que, controlada por um controlo sequencial especial, transforme em primeiro lugar o primeiro bloco de valores discretos e em seguida, no respectivo momento do algoritmo, transforme inversamente o segundo bloco de valores somados. Então, a primeira e a segunda regras de transformação seriam idênticas. O mesmo aplica-se aos dois dispositivos 104, 110 para arredondamento. Eles também não têm de estar previstos como dispositivos separados, podendo antes ser implementados por uma unidade funcional de arredondamento que, novamente controlada pelo controlo sequencial, consoante os requisitos do algoritmo, arredonda em primeiro lugar o primeiro bloco de valores transformados e, em seguida, arredonda o segundo bloco de valores transformados.
Num exemplo de realização, o primeiro bloco de valores discretos e o segundo bloco de valores discretos são as amostras divididas em janelas inteiras, tal como são obtidas na saida do bloco 28 na Figura 3. A DCT inteira no bloco 14 da Figura 3 é então implementada através do algoritmo inteiro mostrado na Figura 1, de tal modo que a representação transformada, no exemplo do sinal de áudio relativo à Figura 3, representa o valor espectral inteiro na saida 30 do dispositivo mostrado na Figura 3.
Em seguida, com base na Figura 10b, está representado um dispositivo para transformação inversa correspondente à Figura 10a, no qual além do bloco de valores de saida inteiros na saida do bloco 112 da Figura 10a, é também utilizado o segundo bloco de valores somados na saida do dispositivo 106 da Figura 10a. Com referência à Figura 11, a qual será em seguida ainda explicada detalhadamente, isto corresponde ao caso em que meramente os blocos 150 e 130 estão presentes, mas não o bloco 124 de transformação. A Figura 10b mostra um dispositivo para conversão inversa de um bloco de valores de saída inteiros da representação transformada, tal como é obtida na saída 114 da Figura 10a, e do segundo bloco de valores somados. O 2o bloco de valores somados 47 é introduzido numa entrada 120 do dispositivo para conversão inversa, mostrado na Figura 10b. O bloco de valores de saida da representação transformada é introduzido numa outra entrada 122 do dispositivo para conversão inversa. O 2o bloco de valores somados é introduzido num dispositivo 130 para processamento deste bloco através da utilização da 2a regra de transformação, quando a última regra de transformação utilizada durante a codificação foi a 2a regra de transformação. No lado de saida, o dispositivo 130 fornece um primeiro bloco de valores transformados, o qual é fornecido a um dispositivo 132 para arredondamento que, por sua vez, gera um primeiro bloco de valores transformados arredondados no lado de saída. O primeiro bloco de valores transformados arredondados é, em seguida, subtraído a partir do bloco de valores de saída da representação transformada por meio de um dispositivo 134, para se obter o primeiro bloco de valores discretos numa primeira saída 149 do dispositivo da Figura 10b.
Este primeiro bloco de valores discretos é fornecido a um dispositivo 150 para processamento deste bloco através da utilização da Ia regra de transformação para se obter um segundo bloco de valores transformados na saída do dispositivo 150. Este segundo bloco de valores subtraídos transformados é, por sua, vez arredondado no dispositivo 152 para se obter um segundo bloco de valores transformados arredondados. Este segundo bloco de valores transformados arredondados é em seguida subtraído a partir do 2° bloco de valores somados fornecido no lado de entrada, o qual foi introduzido através da entrada 120, para se obter, no lado de saída, um segundo bloco de valores discretos numa saída 136. 48
No que diz respeito à relação de Ia, 2a e 3a regras de transformação, assim como no que diz respeito à implementação especial dos blocos funcionais individuais na Figura 10b através de unidades funcionais comuns e a um correspondente controlo sequencial/armazenagem temporária, faz-se referência às explicações feitas em relação à Figura 10a.
Em seguida, com referência à Figura 10c, é explicado um exemplo de realização preferido do dispositivo para conversão numa representação transformada, representado de forma geral na Figura 10a. O exemplo de realização na Figura 10a compreende uma outra transformação/arredondamento, comparado com a Figura 10a, de modo a gerar o outro bloco de valores de saida inteiros a partir do segundo bloco de valores somados. A primeira entrada 100a compreende N linhas de entrada xo,..., xn-i para a introdução de N valores do primeiro bloco de valores discretos. A segunda entrada 100b também compreende N linhas para a introdução de N valores xn, ..., X2N-1 do segundo bloco de valores discretos. O dispositivo 102 da Figura 10a é mostrado na Figura 10c como um transformador DCT-IV. O transformador DCT 102 é concebido para gerar N valores de saída a partir de N valores de entrada, dos quais cada um é então arredondado através da regra de arredondamento designada por conforme o mostrado na Figura 10c pelo dispositivo 104. O dispositivo 106 para soma está representado de modo a que ocorra uma soma por valor. Isto significa que o valor de saida do dispositivo 102 com o indice 0 é somado ao primeiro valor do segundo bloco de valores discretos, que tem o índice N. Assim, geralmente o valor do primeiro bloco de valores transformados arredondados na saida do dispositivo 104 para arredondamento com um número ordinal i é somado individualmente ao valor discreto 49 do segundo bloco de valores de saída com um número ordinal N+i, sendo que i é um índice variável que se estende de 0 a N-l. 0 dispositivo 108 para processamento através da utilização da 2a regra de transformação também é desenhado como um transformador DCT-IV. No exemplo de realização preferido mostrado na Figura 10c, o dispositivo 112 para subtracção também é concebido para realizar uma subtracção por valor, nomeadamente no sentido de que os valores de saída do arredondador 110, portanto, os valores do segundo bloco de valores transformados arredondados, são subtraídos individualmente a partir do primeiro bloco de valores discretos. No exemplo de realização mostrado na Figura 10c, é preferido realizar uma subtracção correspondente, no sentido de que um valor do segundo bloco com um número ordinal de N+i é subtraído a partir de um valor do primeiro bloco com o número ordinal i, sendo que i varia novamente de 0 a N-l. Como alternativa, podem no entanto também ser realizadas outras somas/subtracções, no sentido de que, por exemplo, um valor de um bloco com o número ordinal N-l, é subtraído a partir do valor do outro bloco com o número ordinal N, desde que este seja correspondentemente considerado na conversão inversa.
No lado de saída, o dispositivo 112 para subtracção já fornece um bloco de valores de saída inteiros da representação transformada, portanto os valores de saída inteiros yo a yN_i da representação transformada. De modo a se obterem também, caso opcionalmente isso seja pretendido, os restantes valores de saída inteiros da representação transformada, portanto o outro bloco yN a y2N-i, o bloco de valores de saída inteiros da representação transformada aplicado à saída 114 é submetido a uma transformação através da utilização da terceira regra de 50 transformação pelo transformador 140 progressivo, em que os valores de saída do mesmo são, por sua vez, arredondados, conforme representado por um dispositivo 142 para arredondamento, para realizar agora uma adição destes valores com o segundo bloco de valores somados na saída do somador 106, conforme representado pelo número de referência 144 na Figura 10c. Os valores de saída do somador 144 representam então um outro bloco 146 de valores de saída inteiros da representação transformada, os quais são designados como yN a y2N-i ·
Em seguida, com referência à Fig. 11, é explicado um dispositivo para conversão inversa da representação transformada de acordo com um exemplo de realização. Deve observar-se que as operações realizadas pelo dispositivo representado na Fig. 10c podem ser anuladas sem perdas pelo dispositivo representado na Fig. 11. A Fig.11 corresponde à Fig. 10b, excepto o andar adicional de transformação/arredondamento para gerar a partir do outro bloco de valores de saída transformados, o segundo bloco de valores somados que é introduzido na entrada 120 no exemplo de realização mostrado na Fig. 10b. Deve observar-se que a função de adição é respectivamente invertida pela função de subtracção. Além disso, deve observar-se que um par somador/subtractor (144 da Fig. 10c e 128 da Fig. 11) também pode ser provido com grandezas de entrada invertidas no que diz respeito ao sinal, de modo a que o somador 144, quando um grupo de grandezas de entrada é provido com sinal negativo em comparação com o caso mostrado, realize na verdade uma operação de subtracção, desde que isto seja considerado na contraparte (128 na Fig. 11) que iria então na verdade realizar uma operação de adição. 51 0 subtractor 128, ο somador 134, assim como o outro subtractor 154, mostrados na Fig. 11, são por sua vez concebidos para realizar uma adição/subtracção individual por valor, sendo que é novamente utilizar o mesmo processamento de números ordinais, como explicado em relação à Fig. 10c. Se na Fig. 10c fosse empregue uma outra aplicação de números ordinais, em vez da que é mostrada, isto seria correspondentemente considerado na Fig. 11. O primeiro bloco 136 de valores discretos designados por x0 a xN-i, já se apresenta na saida do subtractor 134. De modo a se obter também o restante da representação inversamente transformada, o primeiro bloco de valores discretos é fornecido ao transformador 150 que opera com a primeira regra de transformação e cujos valores no lado de saida são arredondados pelo arredondador 152 e subtraídos a partir do segundo bloco de valores subtraídos na saída do subtractor 128, para se obter finalmente também o segundo bloco 156 de valores discretos designados por xN, . . ., X2n-i.
Em seguida, com referência às Figuras 12 - 15, é elucidada a fundamentação matemática para os dispositivos, conforme explicados com base nas Figuras 10a, 10b, 10c e 11. Através do dispositivo representado, para conversão e para conversão inversa, respectivamente, são criados métodos de transformação inteira para uma codificação de áudio sem perdas, nos quais o erro de aproximação é reduzido. Para além disso, o esforço de cálculo é também considerado no sentido de que não se baseia mais na abordagem de solução conhecida da aplicação do esquema de elevação a cada rotação de Givens, sendo que sempre ocorrem borboletas triviais de soma-diferença. Estas aumentam o esforço de cálculo, a saber, significativamente em comparação com a 52 versão não inteira original da transformação a ser reproduzida.
Normalmente, o esquema de elevação é utilizar para se obter uma aproximação inteira invertivel de uma rotação de Givens.
{ \ cos α - sen α vsen Oí cos α j cos α - lV 1 0 sen α 1 1 0 ^sen oc 1 1 0 cos a -sen α 1
Esta aproximação inteira é obtida através do uso de uma função de arredondamento após cada adição, portanto após cada etapa de elevação. 0 esquema de elevação também pode ser utilizar para uma aproximação inteira invertivel de determinadas operações de escalonamento. Na publicação especializada R. Geiger e G. Schuller, "Integer low delay and MDCT filter banks" Proc. of the Asilomar Conf. on Signals, Systems and Computers, 2002, a seguinte decomposição por elevação de uma matriz de escalonamento de 2 x 2 com um determinante igual a 1 é explicada e descrita: ( Λ -dfo 1 ' d 0 _ -1 0 1- ,0 d"1, [d-1 1>°
Esta decomposição por elevação, que é unidimensional, que se refere portanto meramente a uma matriz de escalonamento de 2 x 2, é estendida para o caso multidimensional. Em pormenor, todos os valores da equação anterior são substituídos por matrizes de nxn, sendo que n, portanto o número de valores discretos de um 53 bloco, é maior do que ou igual a 2. Assim, resulta que para qualquer matriz T de nxn arbitrária, que de um modo preferido deve ser invertivel, é possível a seguinte decomposição em matrizes de blocos de 2n x 2n, sendo que En descreve a matriz unidade de n x n:
rT 0 ' ,0 T-iJ
E» 0 Yb» - τΥο e„ ' It-‘ eJ(.0 e„ ^ T-iJ
Além de operações simples, como permutações ou multiplicações por -1, todos os três blocos desta decomposição possuem a seguinte estrutura geral: v
En 0 A E. n y
Para esta matriz de blocos de 2n x 2n pode-se utilizar um esquema de elevação generalizado, o qual em seguida é também designado por uma elevação multidimensional.
Para um vector dos valores x = (xo,..., X2n-i) a aplicação desta matriz de blocos fornece a seguinte equação: g λ
^ 2 ’ 1 ' “ ((XQ' · f xn-i^ ·» κ2η-ι) + A * (xq/ · - - / Xn-lW
Deve observar-se que há um vector no lado direito da equação anterior, cuja dimensão, portanto cujo número de linhas, é igual a 2n. As primeiras n componentes, portanto as componentes de 0 a n-1, correspondem a x0 a xn-i. As segundas n componentes, portanto 54 a segunda metade do vector que resulta no lado direito da equação anterior, são iguais a uma soma do segundo bloco de valores discretos, portanto xn, . . ., x2n-i, mas agora somados à multiplicação da matriz A que corresponde à matriz de transformação das Figuras 10a, 10b, 10c e 11, e do primeiro bloco de valores discretos x0, ..., xn-i · A matriz de transformação representa a primeira, a segunda e a terceira regras de transformação, respectivamente.
Similar ao esquema de elevação comum com matrizes de 2 x 2 na forma Λ / 1 a
Io 1J estas matrizes de 2n x 2n podem ser utilizadas para aproximações inteiras invertiveis da transformação T como se segue. Para valores de entrada inteiros (x0,..., x2n-i) , os valores de saida em virgula flutuante (y0,..., yn_i) = A-(x0,..., xn-i) são arredondados, nomeadamente para valores inteiros, antes de serem somados aos valores inteiros (xn, . . ., x2n-i) - O inverso da matriz de blocos resulta da seguinte forma: \-i
En 0 A E.
Assim, este processo pode ser invertido sem erros através da simples utilização da mesma matriz A e da mesma função de arredondamento e agora através da subtracção dos valores resultantes ao invés da adição no processamento progressivo. O 55 processamento progressivo está representado na Figura 13, enquanto o processamento regressivo está representado na Figura 14. Deve observar-se que a matriz de transformação na Figura 13 é idêntica à matriz de transformação na Figura 14, o que é preferido por razões de simplicidade da implementação.
Visto que os valores (x0, ..., xn-i) não são modificados na etapa progressiva mostrada na Figura 13, ainda estão presentes para a etapa inversa, portanto para a etapa regressiva na Figura 14. Deve observar-se que não existem restrições especiais para a matriz A. Assim, a mesma não tem de ser necessariamente invertivel.
De modo a se obter uma aproximação inteira invertivel da MDCT conhecida, a MDCT é decomposta em rotações de Givens num primeiro andar, sendo que este andar é o andar de divisão em janelas, e num subsequente andar de DCT-IV. Esta decomposição está ilustrada na Figura 3, que em seguida é ainda explicada, e descrita em detalhes no documento DE 10129240 AI.
Em oposição ao estado da técnica, no qual a DCT-IV é decomposta em vários andares de rotações de Givens a própria transformação é inalterada e em seguida arredondada.
Deste modo, como se sabe, a aproximação inteira da DCT-IV é realizada através de vários andares de rotações de Givens baseadas em elevação. O número de rotações de Givens é determinado pelo algoritmo rápido subjacente utilizado. Assim, o número de rotações de Givens é fornecido através de O (N log N) para uma transformação do comprimento N. O andar de divisão em janelas de cada decomposição MDCT consiste apenas em N/2 rotações de Givens ou de 3N/2 etapas de arredondamento. Assim, 56 particularmente em elevados comprimentos de transformação, como os utilizados em aplicações de codificação de áudio (por exemplo, 1.024), a aproximação inteira da DCT-IV fornece a principal contribuição para o erro de aproximação. A abordagem de solução utiliza o esquema de elevação multidimensional descrito. Por conseguinte, o número das etapas de arredondamento na DCTiV é reduzido para 3N/2, portanto tornado igual ao número de etapas de arredondamento no andar de divisão em janelas, nomeadamente comparado com cerca de 2N log2 N etapas de arredondamento na abordagem de solução convencional baseada em elevação. A DCT-IV é aplicada simultaneamente a dois blocos de sinais. Uma possibilidade para tal está representada na Figura 12, onde simplesmente, por exemplo, dois blocos de amostras subsequentes no tempo são submetidos a uma DCT-IV. Os dois blocos que são submetidos às duas transformações, podem, no entanto, também ser amostras de dois canais de um sinal multicanal. A decomposição da equação de elevação multidimensional acima descrita é aplicada à regra de transformação que também pode ser considerada como uma matriz de N x N. Visto que particularmente na DCT-IV o inverso é novamente a DCT-IV, resulta a seguinte decomposição para o conceito mostrado na Figura 12: f DCT,
IV DCT, (- E„ oYeh - dcÇvYq ,DCTiv en
As permutações das multiplicações por -1 podem ser extraídas em matrizes de blocos próprios, resultando assim o seguinte 57 contexto : DCTIV 0 >, 0
0 Y EK 0 Yem - DCT^ o Yo \ DCT,
W 'νΛ*ν /
Por conseguinte, a aplicação de uma transformação a dois blocos de sinais, portanto a dois blocos de valores discretos, pode ser obtida, de um modo preferido, com três etapas de elevação multidimensional: Έ, cC f8· - DCV ÍE» 0 ' (o E* J (dciw eh> A equação precedente está graficamente representada na Figura 10c com base num exemplo de realização. A conversão inversa é, como explicado, ilustrada de maneira correspondente na Figura 11.
Com a abordagem de solução, duas transformações DCT-IV do comprimento N podem ser implementadas de uma maneira invertivel, sendo necessárias apenas 3N etapas de arredondamento, portanto 3N/2 etapas de arredondamento por transformação. A DCT-IV nas três etapas de elevação multidimensional pode ter uma implementação arbitrária, o que significa, por exemplo, uma implementação baseada em virgula flutuante ou em virgula fixa. Esta nem precisa ser invertivel. Esta apenas tem de ser executada exactamente da mesma maneira nos processos progressivo e regressivo. Como resultado, este conceito é adequado a elevados comprimentos de transformação, como, por exemplo, 58 1.024, como os que são utilizados nas aplicações actuais de codificação de áudio.
Toda a complexidade de computação é igual a 1,5 vezes a complexidade de computação da implementação não inteira das duas transformações DCT-IV. Esta complexidade de computação é ainda significativamente inferior às implementações inteiras convencionais baseadas em elevação, as quais são cerca de duas vezes mais complexas do que a DCT-IV convencional, visto que estas implementações têm de utilizar as triviais borboletas mais/menos baseadas no esquema de elevação utilizado, para se obter uma conservação de energia, conforme está descrito em R. Geiger, T. Sporer, J. Koller e K. Brandenburg, "Audio Coding based on Integer Transforms" em lllth AES Convention, Nova Iorque, 2001. A abordagem de solução representada calculará pelo menos duas transformações DCT-IV simultaneamente, portanto durante uma conversão. Isto pode, por exemplo, ser alcançado através do cálculo da transformação DCT-IV para dois blocos subsequentes do sinal de áudio ou duas imagens subsequentes de um sinal de imagem. No caso de um sinal estéreo de dois canais, isto também pode ser obtido através do cálculo da DCT-IV dos canais esquerdo e direito numa acção de conversão e numa acção de conversão inversa, respectivamente. A primeira versão introduz um atraso adicional de um bloco no sistema. A segunda versão é possível para canais estéreos e de modo geral para sinais multicanal, respectivamente.
Como alternativa, caso ambas as opções não sejam desejadas, mas caso um comprimento de processamento de blocos normal de N valores deva ser mantido, a DCT-IV do comprimento N pode ser 59 decomposta em duas transformações DCT-IV do comprimento N/2. Neste contexto, faz-se referência a Y. Zeng, G. Bi e Z. Lin, "Integer sinusoidal transforms based on lifting factorization", em Proc. OCASSP'01, Maio de 2001, pp. 1.181 - 1.184, onde esta decomposição é realizada. Além das duas transformações DCT de comprimento N/2, são ainda necessários alguns andares adicionais de rotações de Givens. Além disso, neste algoritmo, é utilizada uma matriz de blocos
EN/2 - E ^ EN / 2 EH/2 J isto é, N/2 borboletas mais/menos, uma matriz diagonal em bloco com N/2 rotações de Givens e, ainda, algumas matrizes de permutação. Através da utilização destes andares adicionais de N/2 rotações de Givens, a abordagem de elevação multidimensional também pode ser utilizada para o cálculo de apenas uma DCT-IV do comprimento N. A estrutura de base deste algoritmo está representada na Figura 15, onde, além do andar de conversão propriamente dita, no qual são utilizadas duas transformações DCT-IV com o comprimento N/2, está presente, em primeiro lugar, um andar de borboleta para calcular o primeiro e o segundo blocos de valores discretos, os quais têm agora, no entanto, apenas um comprimento de N/2. No lado de saida, está previsto além disso um andar de rotação para se obterem a partir do bloco de valores de saida da representação transformada e do outro bloco de valores de saida da representação transformada, os quais têm agora, cada um, meramente N/2 valores, os valores yo,..., Yn-i de saida que são iguais aos valores de saida de uma operação de DCT-IV da Figura 12, como se torna óbvio a partir de uma comparação dos índices do lado de entrada e do lado de saída 60 da Figura 15 e da Figura 12.
Até agora, foi explicada meramente a aplicação da elevação multidimensional a matrizes de blocos da seguinte forma: T 0 o r1
Todavia, também é possível decompor outras matrizes de blocos em etapas de elevação multidimensionais. Por exemplo, a decomposição a seguir pode ser utilizada para implementar a combinação de um andar com borboletas mais/menos normalizadas e de dois blocos de transformações DCT-IV através de três etapas da elevação multidimensional: \ 1 ( P e/ "dctiv 0 ' EN EnJ 0 V DCT1V>
IV & DCT,
IV (E„ 0 ·' E„ - VãjCT,,., E„ χιν
Eh ~ DCT, ^ V2 0 Ev CP >/2DCTlv en
Torna-se óbvio a partir da equação anterior que a primeira regra de transformação utilizada entre parênteses no lado esquerdo da equação anterior e a segunda regra de transformação utilizada entre parênteses no centro da equação anterior e a terceira regra de transformação utilizada nos últimos parênteses da equação anterior, não têm de ser idênticas. Além disso, torna-se óbvio a partir da equação anterior que podem ser decompostas não apenas matrizes de blocos nas quais meramente os elementos da diagonal principal estão ocupados, mas que também 61 matrizes plenamente ocupadas podem ser processadas. Além disso, deve observar-se que não se encontra limitado ao facto de as regras de transformação, que são utilizadas na conversão numa representação transformada, têm de ser idênticas ou precisam de ter qualquer relação entre si, de tal modo que, por exemplo, a segunda regra de transformação seja a regra de transformação regressiva em relação à primeira regra de transformação. Em principio, poderiam também ser utilizadas três regras de transformação diferentes entre si, desde que isto seja considerado na representação inversa.
Neste contexto, faz-se mais uma vez referência à Figura 10c e à Figura 11. Na conversão dos valores discretos numa representação transformada, o dispositivo 102 pode ser concebido para implementar qualquer regra 1 de transformação. Além disso, o dispositivo 108 também pode ser concebido para utilizar qualquer outra ou a mesma regra de transformação, a qual é designada por regra 2 de transformação. Além disso, o dispositivo 140 pode ser concebido para utilizar em geral qualquer regra 3 de transformação que não tem, necessariamente, de ser igual à primeira ou à segunda regra de transformação.
No entanto, na conversão inversa da representação transformada, tem de ser encontrada uma adaptação às regras 1 -3 de transformação representadas na Figura 10c, no sentido de que o primeiro dispositivo 124 para conversão não realiza nenhuma regra de transformação além da regra 3 de transformação realizada no bloco 140 da Figura 10c. De maneira correspondente, o dispositivo 130 na Figura 11 tem de realizar a regra 2 de transformação que também foi realizada pelo bloco 108 na Figura 10c. Finalmente, o dispositivo 150 da Figura 11 tem de realizar a regra 1 de transformação que também foi realizada pelo 62 dispositivo 102 da Figura 10c, de modo a ser obtida uma conversão inversa sem perdas. A Figura 16 mostra uma modificação do conceito descrito na Figura 10c. Em particular, os arredondamentos nos elementos 104, 110, 142 para a transformação progressiva ou nos elementos 126, 132, 152 na transformação regressiva não são mais realizados por amostras, mas sim de tal modo que haja uma configuração espectral do erro de arredondamento.
Ao comparar a Figura 10c com a Figura 16, fica evidente que é preferido substituir somente o bloco 104 pelo bloco 204a e utilizar o bloco 204b em vez do bloco 110 de arredondamento. Este é o caso uma vez que o conceito é especialmente vantajoso quando há uma transformação subsequente para a faixa de frequência onde o ruído branco do erro de arredondamento é problemático quando nenhuma configuração espectral é realizada. Como não há mais nenhuma transformação de frequência após o arredondamento 142, uma configuração espectral no bloco 142 não seria mais vantajosa. No entanto, isto verifica-se para o bloco 204a, pois há novamente uma conversão de frequência devido à transformação no bloco 108. Também a configuração espectral no bloco 204b, de acordo com a invenção, é por conseguinte ainda vantajosa, pois há novamente uma transformação através do último bloco 140. No entanto, como fica evidente com base na Figura 16, o erro de arredondamento formado pelo ruído já entra no bloco 114 de saída, de modo que, no bloco 204b, também já poderá ser realizado um arredondamento convencional, conforme representado pelos blocos 110 na Figura 10c, em vez da configuração espectral do erro de arredondamento. 63
Depende de cada caso, se no final da segunda transformação, portanto da transformação 108, se arredondar de acordo com a configuração espectral ou de modo convencional, portanto com um erro de arredondamento que tem uma distribuição espectral do ruido branco.
De acordo com a invenção, o arredondamento independente de um determinado número de, por exemplo, k valores, é por conseguinte substituído por um arredondamento com configuração espectral, que também pode ser designado por "arredondamento dependente".
Fica evidente, a partir da explicação precedente, com base na Figura 16, que a configuração espectral do erro de arredondamento também pode ser utilizada na DCT inteira necessária para a IntMDCT. No entanto, deve aqui observar-se, conforme explicado, que a configuração espectral por realimentação de erro é particularmente vantajosa apenas quando os valores a serem arredondados forem sinais de tempo que são transferidos para o domínio da frequência por uma outra etapa de transformação. Por esta razão, conforme se encontra representado com base na elevação multidimensional da Figura 16, a configuração espectral é vantajosa nas primeiras duas etapas, porém já não é necessariamente vantajosa na terceira etapa.
Deve-se observar-se que a Figura 16 mostra o caso que, de acordo com a invenção, corresponde à Figura 10c, num codificador. O caso correspondente à Figura 16, no descodificador, resulta directamente de uma comparação da Figura 16 e da Figura 11. O descodificador directamente correspondente à Figura 16 resulta da Figura 11 no sentido de que todos os blocos operam de forma idêntica, com excepção dos dois blocos 64 132, 152 de arredondamento. Na Figura 11, estes dois blocos de arredondamento operam como blocos de arredondamento independentes e seriam substituídos, no descodificador de acordo com a invenção, pelos blocos 204a, 204b de arredondamento dependente que todos possuem, por exemplo, a estrutura mostrada com base na Figura 2c. Em particular, deve observar-se que no descodificador deve ser utilizado exactamente o mesmo algoritmo de arredondamento de configuração espectral como no codificador. O conceito representado na Figura 2b e na Figura 2c, particularmente para H(z) = "-1", é além disso também especialmente adequado para utilizar uma redução do erro de arredondamento e particularmente uma redução do erro de arredondamento em transformações inteiras. Uma redução deste género do erro de arredondamento é possível sempre que dois valores em vírgula flutuante forem arredondados e somados ao mesmo valor em vez de a valores diferentes. Um exemplo de situação deste género encontra-se representado na Figura 17. Aqui, há primeiro uma primeira etapa de elevação com uma sequência para baixo - para cima - para baixo entre os participantes xi e x3 da elevação. Existe ainda uma segunda sequência de elevação com a sequência conhecida para baixo -para cima - para baixo, porém agora com os participantes X2 e x3 da elevação. Em particular, o valor x3 obtido na primeira operação de elevação é utilizado para servir como parcela de soma na segunda etapa de elevação, como fica evidente a partir da Figura 17. Deve novamente observar-se que, quando uma seta incide numa linha horizontal, isto representa uma adição. Por outras palavras, um valor que acabou de ser arredondado é, por conseguinte, somado ao valor correspondente à linha horizontal. 65
Em pormenor, no exemplo mostrado na Figura 17, o valor xi é primeiro ponderado (bloco 250) e então individualmente arredondado (bloco 252) . O sinal de saída do bloco 252 é somado a x3 (bloco 254) . Então, o resultado da soma 254 é novamente ponderado (bloco 256) e novamente arredondado (bloco 258) . O resultado deste arredondamento 258 é agora somado a x1 (260) . O resultado da soma 260 é novamente ponderado (bloco 262) e arredondado (bloco 264) para ser somado ao valor actual de x3 (ao bloco 266) . Correspondentemente, o valor x2 é ponderado por um bloco 270 e é então arredondado por um bloco 272. O resultado do bloco 272 é somado (274) ao valor agora actual de x3. Então, ocorre novamente uma ponderação (276) e um arredondamento (278) para somar (280) o resultado do bloco 278 novamente ao actual valor de x2. O resultado desta soma 280 é novamente ponderado (bloco 282) e o resultado ponderado é arredondado (bloco 284) para então somar o resultado do bloco 284 de arredondamento novamente ao valor agora actual de x3 (bloco 286) para se obter um valor de resultado para x3. Fica evidente a partir da Figura 17 que primeiramente um primeiro valor, nomeadamente o resultado do bloco 262, é arredondado e então somado a x3. Para além disso, um segundo valor, nomeadamente o resultado do bloco 270, é também arredondado (bloco 272) e então somado ao valor x3 (somador 274) . Portanto, ocorre uma situação em que dois valores em vírgula flutuante são arredondados um após o outro e somados ao mesmo valor em vez de a diferentes valores. No exemplo mostrado na Figura 17, o resultado da terceira e da quarta etapas de elevação é somado ao mesmo valor, nomeadamente x3, realizando-se portanto uma adição com a função [.] de arredondamento: [xi‘CSi] + [Xí-CS2] 66
Se o erro da terceira etapa de elevação no arredondamento for introduzido na quarta etapa de elevação, o erro da terceira etapa pode ser utilizado neste caso e é somente gerado um erro de arredondamento em vez de dois erros de arredondamento. No que diz respeito ao cálculo, isto resulta do seguinte contexto: 1*1'CSi] + [xj*csz + (Xi-CSi - [Xi’C$i])] “ [xrOSj] + [x2-csa + Xi-csí] “ [Xi-csi] = [X2-CSí+ [Χχ-CSi)
Neste caso, no que diz respeito ao cálculo, a introdução do erro de arredondamento na próxima etapa de arredondamento é deste modo idêntica a uma soma dos valores e a um subsequente arredondamento. Esta situação encontra-se representada na Figura 18, sendo que a Figura 18 corresponde à Figura 17, ao passo que, no entanto, os dois blocos 264, 272 de arredondamento separados e os dois somadores 266, 274 separados são substituídos por um bloco 268 que é concebido para implementar a equação acima mencionada. Portanto, os resultados dos dois blocos 262 e 270 são primeiramente somados na forma não arredondada e depois arredondados. Em casos favoráveis, o erro de arredondamento é deste modo reduzido pela metade. Na saída do bloco 268, resulta agora somente um único valor que é somado a X3 por um somador 269.
Pode ocorrer de igual modo uma combinação de redução e configuração do erro de arredondamento, por exemplo, quando se efectuam sucessivamente um conjunto de rotações de Givens e uma etapa de elevação multidimensional, conforme se encontra representado com base na Figura 19. Aqui, somente a título de 67 exemplo para os valores xi a X4, a última etapa de uma sequência para baixo - para cima - para baixo é realizada para vários valores, portanto, por exemplo, a etapa 31c para baixo representada na Figura 9. Estes valores devem ser agora somados a valores correspondentes, aos quais também os valores arredondados na Figura 16, portanto os valores na saida do bloco 204a, devem ser somados. Neste caso, é preferível somar os valores não arredondados primeiro, nomeadamente pelos somadores 203 mostrados na Figura 19, para depois arredondar os valores somados no bloco 204 na Figura 19 e simultaneamente submetê-los a uma formatação de ruído de tal modo que, então, somente um simples erro de arredondamento seja obtido e os valores de saída após a adição pelos somadores 106 contenham menos erros. A situação mostrada na Figura 19 resulta por conseguinte, quando a Figura 9 é colocada à esquerda da Figura 16 e em particular, quando uma DCT-IV de N/2 valores é utilizada em vez de uma DCT-IV de N valores.
De acordo com a invenção, é, por conseguinte, preferido combinar a redução do erro de arredondamento com a configuração do erro de arredondamento. No caso da redução do erro de arredondamento, diversos valores de entrada são, por conseguinte, processados e arredondados juntos, sendo que os valores arredondados são somados a um valor, ao passo que, no caso da configuração espectral do erro de arredondamento, os valores arredondados são arredondados independentemente uns dos outros e são somados a diversos outros valores respectivamente diferentes.
Deve ainda observar-se que a situação na Figura 19 também pode ocorrer quando, conforme se encontra representado com base na Figura 15, DCTs de N/2 são utilizadas. Aqui, antes do andar 68 de conversão, portanto antes dos dois blocos DCT, há um andar denominado andar de borboleta na Figura 15, no qual os valores xo a xn/2-i de entrada são correspondentemente ponderados e arredondados para serem depois somados aos mesmos valores, aos quais os valores de um andar DCT-IV também são somados. Deve ainda observar-se que o andar de conversão na Figura 15 se encontra representado apenas de uma forma esquemática. Os dois blocos DCT-IV representados esquematicamente na Figura 15 seriam substituídos pelas componentes mostradas na Figura 16 numa implementação prática, quando, na Figura 16, estivesse escrito χν/2-ι em vez de xN-i, e em vez de [Xn/2"xN"] e em vez de xN/2 estivesse escrito xN-i.
Deste modo, a Figura 19 mostra uma implementação preferida em particular para aplicações únicas, portanto para o caso em que se pretende utilizar uma DCT-IV de N/2.
Dependendo das circunstâncias, o método de acordo com a invenção, para o processamento de um sinal com uma sequência de valores discretos pode ser implementado em hardware ou em software. A implementação pode ser realizada num suporte de armazenamento digital, particularmente numa disquete ou CD com sinais de controlo legíveis electronicamente que assim podem interagir com um sistema de computador programável, para que o método seja executado. Geralmente, a invenção consiste por conseguinte também num produto de programa de computador com um código de programa armazenado num suporte legível por máquina, para realizar o método de acordo com a invenção quando o produto de programa de computador for executado num computador. Por outras palavras, a invenção é também, por conseguinte, um programa de computador com um código de programa para a 69 realização do método quando o programa de computador é executado num computador.
Lisboa, 14 de Março de 2007 70

Claims (19)

  1. REIVINDICAÇÕES 1. Dispositivo de processamento de um sinal com uma sequência de valores discretos representando dados de áudio, dados de imagem ou dados de video, em que existe uma primeira faixa de frequências, na qual o sinal tem uma alta energia e sendo que existe uma segunda faixa de frequência, na qual o sinal tem uma baixa energia, compreendendo: um dispositivo (202) para manipulação da sequência de valores discretos, para se obter uma sequência de valores manipulados, de modo a que, pelo menos, um dos valores manipulados seja um número não inteiro; e um dispositivo (204) para arredondamento da sequência de valores manipulados, para se obter uma sequência de valores manipulados inteiros arredondados, em que o dispositivo (204) para arredondamento é concebido para realizar uma configuração espectral de um erro de arredondamento gerado de modo a que um erro de arredondamento espectralmente configurado tenha uma energia mais elevada na primeira faixa de frequências do que na segunda faixa de frequências.
  2. 2. Dispositivo, de acordo com a reivindicação 1, em que o sinal é um sinal de tempo, em que os valores discretos são valores discretos no tempo e compreendendo ainda: um dispositivo (208) para conversão, pelo menos, da sequência de valores manipulados arredondados ou de uma sequência derivada da sequência de valores manipulados arredondados, numa representação espectral com coeficientes 1 espectrais que contêm mais erros de arredondamento na primeira faixa de frequências do que na segunda faixa de frequências; e um dispositivo (208) para codificação da representação espectral.
  3. 3. Dispositivo, de acordo com a reivindicação 1 ou 2, em que a primeira faixa de frequência é uma faixa de baixas frequências, em que a segunda faixa de frequências é uma faixa de altas frequências e, em que o dispositivo (204) para arredondamento está concebido para realizar a configuração espectral utilizando uma caracteristica de passa-baixo para filtrar um erro e(n) realimentado.
  4. 4. Dispositivo, de acordo com qualquer uma das reivindicações anteriores, em que o dispositivo (204) para arredondamento está concebido para arredondar (218) um primeiro valor discreto, para determinar (214) um erro de arredondamento gerado no arredondamento do valor discreto, para avaliar (220) o erro de arredondamento, e para combinar (210) o erro de arredondamento avaliado com um segundo valor discreto adjacente ao primeiro valor discreto na sequência, para se obter um valor combinado, e para arredondar (218) o valor combinado de modo a se obter uma versão arredondada do segundo valor.
  5. 5. Dispositivo, de acordo com qualquer uma das reivindicações anteriores, em que o dispositivo (204) para arredondamento está concebido para avaliar o erro de arredondamento com uma função de arredondamento, cuja função de transferência é igual a "-1". 2
  6. 6. Dispositivo, de acordo com qualquer uma das reivindicações anteriores, em que os valores discretos são valores inteiros.
  7. 7. Dispositivo, de acordo com qualquer uma das reivindicações anteriores, em que o dispositivo (204) para arredondamento está concebido para gerar valores arredondados tendo uma menor precisão que os valores manipulados.
  8. 8. Dispositivo, de acordo com qualquer uma das reivindicações anteriores, que é concebido para realizar como processamento uma divisão em janelas de número inteiro ou uma divisão em janelas de número inteiro inverso, em que o sinal inclui N/2 valores discretos de um bloco de 2N valores discretos, em que o dispositivo (202a) de manipulação está concebido para ponderar cada um dos N/2 valores discretos com um valor determinado por uma primeira etapa de elevação, em que o dispositivo compreende ainda um primeiro somador (205a) para adicionar por valores a sequência de valores manipulados arredondados com uma sequência com outros N/2 valores discretos do bloco de 2N valores discretos, para se obter uma primeira sequência de valores somados, em que o dispositivo compreende ainda um outro dispositivo (202b) de manipulação, para ponderar cada valor da primeira sequência de valores somados com um valor determinado por uma segunda etapa de elevação, para se obter uma outra sequência de valores manipulados, em que o dispositivo compreende um outro dispositivo (204b) para arredondamento, para se obter uma outra sequência de valores manipulados arredondados, em que o dispositivo compreende um segundo somador (205b) para adição por valores, de modo a se obter uma segunda sequência 3 de valores somados, em que o dispositivo compreende ainda um outro dispositivo (202c) de manipulação, para ponderar cada valor da segunda sequência de valores somados com um valor determinado por uma terceira etapa de elevação, para se obter ainda uma outra sequência de valores manipulados, em que o dispositivo inclui além disso, ainda um outro dispositivo (204c) para arredondamento, para se obter ainda uma outra sequência de valores manipulados arredondados, em que o dispositivo inclui ainda um terceiro somador (205c), para se obter uma terceira sequência de valores somados, em que a ainda outra sequência de valores manipulados inclui N/2 valores divididos em janelas ou valores inversamente divididos em janelas, e em que a terceira sequência de valores somados inclui outros N/2 valores divididos em janelas ou valores inversamente divididos em janelas.
  9. 9. Dispositivo, de acordo com a reivindicação 8, em que o dispositivo de manipulação está concebido para utilizar os seguintes factores como factores de ponderação para os N/2 valores: GFk = (cos α - l)/sen α Em que GFk é o factor de ponderação para o valor com um índice ordinal k, e em que α representa um ângulo ao qual se aplica a seguinte equação: α = arctan[w(Ν/2-l-k) / w(N/2 + k)] em que k varia entre 0 e N/2-1 e em que w representa uma função de janela. 4
  10. 10. Dispositivo, de acordo com a reivindicação 9, em que o dispositivo de manipulação está concebido para utilizar os seguintes factores como factores de ponderação para os N/2 valores: GFk = sen α em que GFk é o factor de ponderação para o valor com um índice ordinal k e em que α representa um ângulo ao qual se aplica a seguinte equação: α = arctan[w(Ν/2-l-k) / w(N/2 + k)] em que k varia entre 0 e N/2-1 e em que w representa uma função de janela.
  11. 11. Dispositivo, de acordo com qualquer uma das reivindicações 8, 9 ou 10, em que o ainda outro dispositivo de manipulação está concebido para utilizar os seguintes factores como factores de ponderação para os N/2 valores: GFk = (cos α - l)/sen α em que que GFk é o factor de ponderação para o valor com um índice ordinal k e em que α representa um ângulo ao qual se aplica a seguinte equação : α = arctan[w(Ν/2-l-k) / w(N/2 + k)] em que k varia de 0 a N/2-1 e em que w representa uma função de janela. 5
  12. 12. Dispositivo, de acordo com qualquer uma das reivindicações 8 a 11, concebido para uma divisão em janelas e que é ainda seguido por um dispositivo (206) para conversão, ou concebido para uma divisão em janelas inversa e precedido de um dispositivo para conversão inversa de um domínio espectral para um domínio do tempo.
  13. 13. Dispositivo, de acordo com a reivindicação 12, em que o dispositivo para conversão inversa ou o dispositivo para conversão inclui um dispositivo DCT-IV.
  14. 14. Dispositivo, de acordo com qualquer uma das reivindicações anteriores, em que o dispositivo (202) de manipulação é um dispositivo (102, 108, 130, 150) para processamento utilizando uma regra de transformação, para se obter um bloco de valores transformados que corresponde à sequência de valores discretos não inteiros.
  15. 15. Dispositivo, de acordo com a reivindicação 14, em que o dispositivo (202) de manipulação é um dispositivo para a realização de um algoritmo DCT-IV.
  16. 16. Dispositivo, de acordo com qualquer uma das reivindicações anteriores, que faz parte de um codificador para gerar uma representação codificada a partir de um sinal original ou parte de um descodificador para gerar uma representação descodificada a partir de um sinal codificado.
  17. 17. Dispositivo, de acordo com a reivindicação 16, em que o codificador e o descodificador juntos representam um esquema de codificação sem perdas. 6
  18. 18. Método para processamento de um sinal com uma sequência de valores discretos representando dados de áudio, dados de imagem ou dados de vídeo, em que existe uma primeira faixa de frequências, na qual o sinal tem uma alta energia e em que existe uma segunda faixa de frequências, na qual o sinal tem uma baixa energia, compreendendo: manipulação (202) da sequência de valores discretos, para se obter uma sequência de valores manipulados, de modo a que, pelo menos, um dos valores manipulados seja um número não inteiro; e arredondamento (204) da sequência de valores manipulados, para se obter uma sequência de valores manipulados inteiros arredondados, em que o arredondamento está concebido para realizar uma configuração espectral de um erro de arredondamento gerado de modo a que um erro de arredondamento espectralmente configurado tenha uma energia mais elevada na primeira faixa de frequências do que na segunda faixa de frequência.
  19. 19. Programa de computador com um código de programa para realizar o método de acordo com a reivindicação 18, quando o programa de computador é executado num computador. Lisboa, 14 de Março de 2007 7
PT04765662T 2003-10-02 2004-09-28 Dispositivo e método para o processamento de um sinal PT1647009E (pt)

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
PT1647009E true PT1647009E (pt) 2007-03-30

Family

ID=34399211

Family Applications (1)

Application Number Title Priority Date Filing Date
PT04765662T PT1647009E (pt) 2003-10-02 2004-09-28 Dispositivo e método para o processamento de um sinal

Country Status (18)

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

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10345996A1 (de) 2003-10-02 2005-04-28 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Verarbeiten von wenigstens zwei Eingangswerten
EP2063417A1 (en) * 2007-11-23 2009-05-27 Deutsche Thomson OHG Rounding noise shaping for integer transform based encoding and decoding
KR100992675B1 (ko) 2007-12-21 2010-11-05 한국전자통신연구원 오디오 부호화 및 복호화 방법과 그 장치
CA2871268C (en) * 2008-07-11 2015-11-03 Nikolaus Rettelbach Audio encoder, audio decoder, methods for encoding and decoding an audio signal, audio stream and computer program
RU2515704C2 (ru) 2008-07-11 2014-05-20 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Аудиокодер и аудиодекодер для кодирования и декодирования отсчетов аудиосигнала
PL2146344T3 (pl) * 2008-07-17 2017-01-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sposób kodowania/dekodowania sygnału audio obejmujący przełączalne obejście
KR101315617B1 (ko) 2008-11-26 2013-10-08 광운대학교 산학협력단 모드 스위칭에 기초하여 윈도우 시퀀스를 처리하는 통합 음성/오디오 부/복호화기
US9384748B2 (en) 2008-11-26 2016-07-05 Electronics And Telecommunications Research Institute Unified Speech/Audio Codec (USAC) processing windows sequence based mode switching
RU2523035C2 (ru) * 2008-12-15 2014-07-20 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Форшунг Е.Ф. Аудио кодер и декодер, увеличивающий полосу частот
CA2989886C (en) 2008-12-15 2020-05-05 Frederik Nagel Audio encoder and bandwidth extension decoder
TWI459375B (zh) * 2009-01-28 2014-11-01 Fraunhofer Ges Forschung 音訊編碼器、音訊解碼器、包含經編碼音訊資訊之數位儲存媒體、用以將音訊信號編碼及解碼之方法及電腦程式
JP5754899B2 (ja) * 2009-10-07 2015-07-29 ソニー株式会社 復号装置および方法、並びにプログラム
CN102081926B (zh) * 2009-11-27 2013-06-05 中兴通讯股份有限公司 格型矢量量化音频编解码方法和系统
TWI488177B (zh) 2011-02-14 2015-06-11 Fraunhofer Ges Forschung 使用頻譜域雜訊整形之基於線性預測的編碼方案
MX2013009304A (es) 2011-02-14 2013-10-03 Fraunhofer Ges Forschung Aparato y metodo para codificar una porcion de una señal de audio utilizando deteccion de un transiente y resultado de calidad.
ES2529025T3 (es) 2011-02-14 2015-02-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Aparato y método para procesar una señal de audio decodificada en un dominio espectral
SG185519A1 (en) * 2011-02-14 2012-12-28 Fraunhofer Ges Forschung Information signal representation using lapped transform
ES2639646T3 (es) 2011-02-14 2017-10-27 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codificación y decodificación de posiciones de impulso de pistas de una señal de audio
FR2977439A1 (fr) * 2011-06-28 2013-01-04 France Telecom Fenetres de ponderation en codage/decodage par transformee avec recouvrement, optimisees en retard.
EP2673776B1 (en) * 2012-01-20 2015-06-17 Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for audio encoding and decoding employing sinusoidal substitution
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
EP2830065A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for decoding an encoded audio signal using a cross-over filter around a transition frequency
CN107452390B (zh) * 2014-04-29 2021-10-26 华为技术有限公司 音频编码方法及相关装置
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
EP3616196A4 (en) 2017-04-28 2021-01-20 DTS, Inc. AUDIO ENCODER WINDOW AND TRANSFORMATION IMPLEMENTATIONS

Family Cites Families (9)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
PT1647009E (pt) Dispositivo e método para o processamento de um sinal
US8195730B2 (en) Apparatus and method for conversion into a transformed representation or for inverse conversion of the transformed representation
KR101226094B1 (ko) 5-포인트 dct-ⅱ, dct-ⅳ, 및 dst-ⅳ 및 아키텍쳐들의 계산을 위한 고속 알고리즘들
ES2950751T3 (es) Codificador de audio o vídeo, decodificador de audio o vídeo y métodos relacionados para procesar señales de audio o vídeo multicanal usando una dirección de predicción variable
US8655670B2 (en) Audio encoder, audio decoder and related methods for processing multi-channel audio signals using complex prediction
US7275036B2 (en) Apparatus and method for coding a time-discrete audio signal to obtain coded audio data and for decoding coded audio data
US7873227B2 (en) Device and method for processing at least two input values
ES2216367T3 (es) Aparato de codificacion y de decodificacion de señales de audio.
JP3814611B2 (ja) 時間離散オーディオサンプル値を処理する方法と装置
MXPA06003309A (en) Device and method for processing at least two input values
AU2002358578A1 (en) Device and method for encoding a time-discrete audio signal and device and method for decoding coded audio data