ES2627212T3 - Modificación de palabras de código en diccionario usado para codificación eficaz de datos espectrales de medio digital - Google Patents

Modificación de palabras de código en diccionario usado para codificación eficaz de datos espectrales de medio digital Download PDF

Info

Publication number
ES2627212T3
ES2627212T3 ES06787180.6T ES06787180T ES2627212T3 ES 2627212 T3 ES2627212 T3 ES 2627212T3 ES 06787180 T ES06787180 T ES 06787180T ES 2627212 T3 ES2627212 T3 ES 2627212T3
Authority
ES
Spain
Prior art keywords
code word
code
subband
coefficients
band
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06787180.6T
Other languages
English (en)
Other versions
ES2627212T8 (es
Inventor
Wei-Ge Chen
Sanjeev Mehrotra
Kazuhito Koishida
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Microsoft Technology Licensing LLC
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 Microsoft Corp, Microsoft Technology Licensing LLC filed Critical Microsoft Corp
Application granted granted Critical
Publication of ES2627212T3 publication Critical patent/ES2627212T3/es
Publication of ES2627212T8 publication Critical patent/ES2627212T8/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/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
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • 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
    • 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/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • 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/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding

Landscapes

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

Abstract

Un método de codificación de audio, que comprende: transformar una señal de audio de entrada en un conjunto de coeficientes espectrales; codificar una porción de banda base del conjunto de coeficientes espectrales en el flujo de bits de salida; dividir una banda extendida de los coeficientes espectrales en diversas subbandas; cambiar de escala las diversas subbandas en la banda extendida; transformar al menos una palabra de código desde una biblioteca de palabras de código; comparar el conjunto de coeficientes espectrales de una subbanda a al menos unas palabras de código transformadas desde la biblioteca; codificar los coeficientes espectrales de la subbanda en un flujo de bits de salida que comprende codificar un identificador de una o más palabras de código desde la biblioteca y un identificador de transformador.

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Modificacion de palabras de codigo en diccionario usado para codificacion eficaz de datos espectrales de medio digital.
Campo tecnico
La tecnologla se refiere en general a codificacion de datos espectrales representando ciertas porciones de los datos espectrales segun versiones modificadas de otras porciones previamente codificadas.
Antecedentes
La codificacion de audio utiliza tecnicas de codificacion que aprovechan diversos modelos perceptuales del oldo humano. Por ejemplo, muchos tonos mas debiles cerca de unos fuertes se enmascaran por lo que no necesitan codificare. En codificacion de audio perceptual tradicional, esto se aprovecha como cuantificacion adaptativa de datos de frecuencia diferente. Los datos de frecuencia perceptualmente importantes se les asignan mas bits y por lo tanto cuantificacion mas precisa y viceversa.
La codificacion perceptual, sin embargo, puede llevarse a un sentido mas amplio. Por ejemplo, algunas partes del espectro pueden codificarse con ruido apropiadamente conformado. Cuando se toma este enfoque, la senal codificada puede no tener como objetivo representar una version exacta o casi exacta de la original. En su lugar la meta es hacer que suene similar y agradable cuando se compara con el original.
Todos estos efectos perceptuales pueden usarse para reducir la tasa de bits necesaria para codificacion de senales de audio. Esto es debido a que algunos componentes de frecuencia no necesitan representarse de manera precisa como presentes en la senal original, sino que pueden no codificarse o sustituirse con algo que proporcione el mismo efecto perceptual que en el original.
En el artlculo por Kwon, S.Y. et al.: “A high quality BI-CELP speech coder at 8 kbit/s and below”, IEEE International Conference on Acoustics, Speech, and Signal Processing, 1997. ICASSP-97, Munich, Alemania 21-24 de abril de 1997, Los Alamitos, CA, Estados Unidos, IEEE Comput. Soc; Estados Unidos, Estados Unidos, vol. 2, 21 de abril de 1997 (), paginas 759-762, DOI: 10.1109/ICASSP. 1997.596034, ISBN: 978-0-8186-7919-3, se desvela un metodo de codificacion de voz, que esta basado en un modelo de Prediccion Lineal con Excitacion por Codigo (CELP) que emplea vectores de excitacion combinados desde dos libros de codigo. Uno de los vectores de excitacion proviene del libro de codigos de llnea de base y el otro proviene del libro de codigos implicado. En este metodo, el Indice del libro de codigos de llnea de base se codifica y transmite al receptor mientras que el Indice del libro de codigos implicado se extrae desde la voz sintetizada. Ademas, en el documento US 6.073.092 A, se desvela un metodo para codificacion de voz usando prediccion lineal con excitacion por codigo, que produce voz de calidad de larga distancia a tasas de datos entre 4 y 16 kbit/s. Se usa una serie de libros de codigos de llnea de base, implicados y adaptativos, comprendidos de libros de codigo de pulso y aleatorios, con vectores de juego asociados para caracterizar la voz. Adicionalmente, en el artlculo por Epps J. et al: “A new technique for wideband enhancement of coded narrowband speech”, Speech Coding Processings, 1999 IEEE Workshop en Porvoo, Finlandia 20-23 de junio de 1999, Piscataway, nJ, Estados Unidos, IEEE, US, 20 de junio de 1999 (), paginas 174-176, DOI: 10.1109/SCFT.1999.781522, ISBN: 978-0-7803-5651-1, se desvela una tecnica para prediccion de envolvente espectral de banda alta basandose en mapeo de libro de codigos con libros de codigos divididos por sonorizacion.
Sumario
Una tecnica de codificacion/decodificacion de audio descrita en el presente documento utiliza el hecho de que algunos componentes de frecuencia pueden representarse perceptualmente bien, o parcialmente, usando ruido conformado, o versiones conformadas de otros componentes de frecuencia, o la combinacion de ambos. Mas particularmente, algunas bandas de frecuencia pueden representarse perceptualmente bien como una version conformada de otras bandas que ya se han codificado. Incluso aunque el espectro real pueda desviarse de su version sintetica, aun es una representacion perceptualmente buena que puede usarse para reducir significativamente la tasa de bits de la codificacion de senal de audio sin reducir la calidad.
Se describen diversas caracterlsticas opcionales para modificar los vectores de codigo (por ejemplo, palabras de codigo) en el libro de codigos de acuerdo con algunas reglas que permiten que el vector de codigo represente mejor los datos de sub-banda. La modificacion puede consistir en cualquiera de una transformation lineal o no lineal, o representando el vector de codigo como una combinacion de los otros dos vectores de codigo. En el caso de una combinacion, la modificacion puede proporcionarse tomando porciones de un vector de codigo y combinandolo con porciones de otros vectores de codigo.
Una palabra de codigo proviene de una banda base, un libro de codigos fijado y/o una palabra de codigo generada aleatoriamente. Adicionalmente, una palabra de codigo puede provenir tambien de una banda que se codifico previamente por cualquiera de un codificador de banda base o codificador de banda extendida. Las referencias a palabras de codigo en el presente documento, incluyen todas estas fuentes potenciales para palabras de codigo, 5 aunque cualquier realizacion particular puede usar unicamente un subconjunto de estas fuentes para palabras de codigo. Se realizan diversas transformaciones lineales o no lineales en una o mas palabras de codigo en una biblioteca para obtener un conjunto mayor o mas diverso de formas para identificar una mejor forma para hacer coincidir un vector que se este codificando. En un ejemplo, una palabra de codigo se invierte en orden de coeficiente para obtener otra palabra de codigo para coincidencia de forma. En otro ejemplo, una varianza de la palabra de
10 codigo se reduce usando exponenciacion de coeficientes con un exponente menor que uno. De manera similar, una varianza de la palabra de codigo se exagera usando un exponente mayor que uno. En otro ejemplo, los coeficientes de una palabra de codigo se niegan. Por supuesto, pueden realizarse muchas otras transformaciones lineales y no lineales en una o mas palabras de codigo para proporcionar un universo mas grande o mas diverso para sub-bandas coincidentes u otros vectores.
15 En otro ejemplo, se realiza una busqueda exhaustiva junto con una banda base y/u otros libros de codigo para hallar una palabra de codigo mejor coincidente. Por ejemplo, se realiza una busqueda que comprende una busqueda exhaustiva de una biblioteca de palabra de codigo, que incluye todas las combinaciones de transformacion exponencial (p=0,5, 1,0, 2,0), transformacion de signo (+/-) y transformacion de direccion (hacia delante/inversa). De manera similar, esta busqueda exhaustiva puede realizar a lo largo del espectro de libro de codigos de ruido, otros
20 libros de codigo o vectores de ruido aleatorio.
En general, puede proporcionarse una coincidencia estrecha determinando una varianza mas baja entre la subbanda que se este codificando y una palabra de codigo transformada. Un identificador de la palabra de codigo y transformacion, junto con otra informacion tal como un factor de escala, se codifican en el flujo de bits y se proporcionan al decodificador.
25 En otro ejemplo, dos o mas palabras de codigo se combinan para proporcionar un modelo para codificar. Por ejemplo, se proporcionan dos palabras de codigo b y n, b = <b0, bi ... bu > y n = < n0, ni ... nu > para describir mejor una subbanda que se esta codificando. El vector b puede provenir desde la banda base, un libro de codigos de ruido o una biblioteca, y el vector n puede provenir de manera similar desde cualquier fuente de este tipo. Se proporciona una regla para intercalar coeficientes desde cada dos o mas palabras de codigo b y n, de manera que el
30 decodificador conoce impllcita o expllcitamente que coeficiente tomar desde las palabras de codigo b y n. La regla puede proporcionarse en el flujo de bits o puede conocerse por el decodificador impllcitamente. Como alternativa, “b” puede ser la codificacion real que usa la codificacion de forma de onda en lugar de una palabra de codigo.
Por lo tanto, un codificador puede enviar dos o mas identificadores de palabra de codigo, y opcionalmente, una regla para decodificar que coeficientes tomar para crear la subbanda. El codificador enviara tambien informacion de factor
35 de escala para palabras de codigo, y opcionalmente, si fuera relevante, cualquier otra informacion de transformacion de palabra de codigo.
Se haran evidentes caracterlsticas y ventajas adicionales de la invention a partir de la siguiente description detallada de las realizaciones que continua con referencia a los dibujos adjuntos.
Breve descripcion de los dibujos
40 Las Figuras 1 y 2 son un diagrama de bloques de un codificador y decodificador de audio en el que pueden incorporarse las presentes tecnicas de codificacion.
La Figura 3 es un diagrama de bloques de un codificador de banda base y codificador de banda extendida que implementan la codificacion de audio eficaz usando palabras de codigo modificadas y o segmentation de frecuencia variable que pueden incorporarse en el codificador de audio general de la Figura 1.
45 La Figura 4 es un diagrama de flujo de bandas de codificacion con la codificacion de audio eficaz que usa el codificador de banda extendida de la Figura 3.
La Figura 5 es un diagrama de bloques de un decodificador de banda base, un decodificador de configuration de banda extendida y decodificador de banda extendida que pueden incorporarse en el decodificador de audio general de la Figura 2.
50 La Figura 6 es un diagrama de flujo de bandas de decodificacion con la codificacion de audio eficaz que usa el decodificador de banda extendida de la Figura 5.
La Figura 7 es un grafico que representa un conjunto de coeficientes espectrales.
La Figura 8 es un grafico de una palabra de codigo y diversas transformaciones lineales y no lineales de la palabra de codigo.
La Figura 9 es un grafico de un vector ejemplar que no representa picos de manera distinta.
La Figura 10 es un grafico de la Figura 9 con distintos picos creados mediante la modificacion de palabra de codigo 5 mediante transformacion exponencial.
La Figura 11 es un grafico de una palabra de codigo segun se compara a la subbanda que esta modelando.
La Figura 12 es un grafico de una palabra de codigo de subbanda transformada segun se compara con la subbanda que esta modelando.
La Figura 13 es un grafico de una palabra de codigo, una subbanda a codificarse mediante la palabra de codigo, una 10 version cambiada de escala de la palabra de codigo, y una version modificada de la palabra de codigo.
La Figura 14 es un diagrama de una serie ejemplar de transformaciones de tamano de subbanda de division y union.
La Figura 15 es un diagrama de bloques de un entorno informatico adecuado para implementar el codificador/decodificador de audio de la Figura 1 o 2.
Description detallada
15 La siguiente descripcion detallada trata realizaciones de codificador/decodificador con codificacion/decodificacion de audio de datos espectrales de audio que usan modificacion de palabras de codigo y/o modificacion de una segmentation de frecuencia por defecto. Esta codificacion/decodificacion de audio representa algunos componentes de frecuencia que usan ruido conformado, o versiones conformadas de otros componentes de frecuencia o la combination de ambos. Mas particularmente, algunas bandas de frecuencia se representan como una version 20 conformada o transformacion de otras bandas. Esto a menudo permite una reduction en tasa de bits a una calidad dada o una mejora en calidad a una tasa de bits dada. Opcionalmente, una configuration de frecuencia de subbanda inicial puede modificarse basandose en la tonalidad, energla o forma de los datos de audio.
Breve vista general
En la solicitud de patente, “Efficient coding of digital media spectral data using wide-sense perceptual similarity”, 25 Solicitud de Patente de Estados Unidos N. ° 10/882.801, presentada el 29 de junio 2004, se proporciona un algoritmo que permite la codification de datos espectrales representando ciertas porciones de los datos espectrales como una version cambiada de escala de un vector de codigo, donde el vector de codigo se elige desde cualquiera de un libro de codigos predeterminado fijo (por ejemplo, un libro de codigos de ruido), o un libro de codigos tomado desde una banda base (por ejemplo, un libro de codigos de banda base). Cuando el libro de codigos se crea de 30 manera adaptativa, puede consistir de datos espectrales previamente codificados.
Se describen diversas caracterlsticas opcionales para modificar los vectores de codigo en el libro de codigos de acuerdo con algunas reglas que permiten que el vector de codigo represente mejor los datos que estan representando. La modificacion puede consistir en cualquiera de una transformacion lineal o no lineal, o que represente el vector de codigo como una combinacion de dos o mas otros vectores de codigo originales o 35 modificados. En el caso de una combinacion, la modificacion puede proporcionarse tomando las porciones de un vector de codigo y combinandolas con porciones de otros vectores de codigo.
Cuando se usa modificacion de vector de codigo, tienen que enviarse bits de modo que el decodificador pueda aplicar la transformacion para formar un nuevo vector de codigo. A pesar de los bits adicionales, la modificacion de palabra de codigo es aun una codificacion mas eficaz para representar porciones de los datos espectrales que la 40 codificacion de forma de onda real de esa portion.
La tecnologla descrita se refiere a mejorar la calidad de codificacion de audio, y puede aplicarse tambien a otra codificacion de multimedia tal como imagenes, video y voz. Una mejora perceptual esta disponible cuando se codifica audio, especialmente cuando la porcion del espectro usada para formar el libro de codigos (tlpicamente la banda baja) tiene caracterlsticas diferentes que la porcion que se esta codificando usando ese libro de codigos 45 (tlpicamente la banda alta). Por ejemplo, si la banda inferior tiene “picos” y por lo tanto tiene valores que estan lejos de la media, y la banda alta no, o viceversa, entonces puede usarse esta tecnica para codificar mejor la banda alta usando la banda baja como un libro de codigos.
Un vector es una subbanda de datos espectrales. Si los tamanos de subbanda son variables para una implementation dada, esto proporciona la oportunidad de dimensionar subbandas para mejorar la eficacia de
5
10
15
20
25
30
35
40
45
50
55
codificacion. A menudo, las subbandas que tienen caracterlsticas similares pueden unirse con muy poco efecto sobre la calidad, mientras que las subbandas con datos altamente variables pueden representarse mejor si se divide una subbanda. Se describen diversos metodos para medir la tonalidad, energla o forma de una subbanda. Estas diversas mediciones se analizan a la luz de tomar decisiones de cuando dividir o unir subbandas. Sin embargo, las subbandas mas pequenas (divididas) requieren mas subbandas para representar los mismos datos espectrales. Por lo tanto, los tamanos de subbanda mas pequenos requieren mas bits para codificar la informacion. En casos donde se emplean tamanos de subbanda variables, se proporciona una configuracion de subbanda para codificacion eficaz de los datos espectrales, mientras se considera tanto los datos requeridos para codificar las subbandas como los datos requeridos para enviar la configuracion de subbanda a un decodificador. Los siguientes parrafos continuan a traves de ejemplos mas generalizados a ejemplos mas especlficos.
Codificador y decodificador de audio generalizado
Las Figuras 1 y 2 son diagramas de bloques de un codificador (100) de audio generalizado y decodificador (200) de audio generalizado, en el que las tecnicas descritas en el presente documento para codificacion/decodificacion de audio de datos espectrales de audio usan modificacion de palabras de codigo y/o modificaciones de una segmentacion de frecuencia inicial. Las relaciones mostradas entre modulos en el codificador y decodificar indican el flujo principal de informacion en el codificador y decodificador; otras relaciones no se muestran por motivos de simplicidad. Dependiendo de la implementacion y el tipo de compresion deseada, los modulos del codificador o decodificador pueden anadirse, omitirse, dividirse en multiples modulos, combinarse con otros modulos y/o sustituirse por modulos similares. En realizaciones alternativas, los codificadores o decodificadores con diferentes modulos y/u otras configuraciones de modulos miden calidad de audio perceptual.
Se describen detalles adicionales de un codificador/decodificador de audio en el que puede incorporarse la codificacion/decodificacion de datos espectrales de audio de similitud perceptual de sentido amplio en las siguientes solicitudes de Patente de Estados Unidos: Solicitud de Patente de Estados Unidos N. ° 10/882.801, presentada el 29/6/2004; Solicitud de Patente de Estados Unidos N. ° 10/020.708, presentada el 14/12/2001; Solicitud de Patente de Estados Unidos N. ° 10/016.918, presentada el 14/12/2001; Solicitud de Patente de Estados Unidos N. ° 10/017.702, presentada el 14/12/2001; Solicitud de Patente de Estados Unidos N. ° 10/017.861, presentada el 14/12/2001; y la Solicitud de Patente de Estados Unidos N. ° 10/017.694, presentada el 14/12/2001.
Codificador de audio generalizado ejemplar
El codificador (100) de audio generalizado incluye un transformador (110) de frecuencia, un transformador (120) de multiples canales, un modelador (130) de percepcion, un ponderador (140), un cuantificador (150), un codificador (160) por entropla, un controlador (170) de tasa/calidad y un multiplexor de flujo de bits [“MUX”] (180).
El codificador (100) recibe unas series de tiempo de muestras (105) de audio de entrada. Para entrada con multiples canales (por ejemplo, modo estereo), el codificador (100) procesa los canales de manera independiente, y puede funcionar con canales codificados conjuntamente siguiendo el transformador (120) de multiples canales. El codificador (100) comprime las muestras (105) de audio y multiplexa informacion producida por los diversos modulos del codificador (100) para emitir un flujo de bits (195) en un formato tal como Windows Media Audio [“WMA”] o Formato de Flujo Continuo Avanzado [“ASF”]. Como alternativa, el codificador (100) funciona con otros formatos de entrada y/o salida.
El transformador (110) de frecuencia recibe las muestras (105) de audio y las convierte en datos en el dominio de la frecuencia. El transformador (110) de frecuencia divide las muestras (105) de audio en bloques, que pueden tener tamano variable para permitir resolution temporal variable. Los bloques pequenos permiten mayor conservation de detalle de tiempo en segmentos de transition cortos pero activos en las muestras (105) de audio de entrada, pero sacrifican alguna resolucion de frecuencia. En contraste, los bloques grandes tienen mejor resolucion de frecuencia y pero resolucion de tiempo, y normalmente permiten mayor eficacia de compresion en segmentos mas largos y menos activos. Los bloques pueden solapar para reducir discontinuidades perceptibles entre bloques que podrlan introducirse de otra manera por cuantificacion posterior. El transformador (110) de frecuencia emite bloques de datos de coeficiente de frecuencia al transformador (120) de multiples canales y emite informacion secundaria tal como tamanos de bloque al MUX (180). El transformador (110) de frecuencia emite tanto los datos de coeficiente de frecuencia como la informacion secundaria al modelador (130) de percepcion.
El transformador (110) de frecuencia subdivide una trama de muestras (105) de audio de entrada en bloques de subtrama solapantes con tamano variable en el tiempo y aplica una MLT variable en el tiempo a los bloques de subtrama. Los tamanos de subtrama ejemplares incluyen 128, 256, 512, 1024, 2048 y 4096 muestras. La MLT opera como una DCT modulada por una funcion de ventana de tiempo, donde la funcion de ventana es variable en el tiempo y depende de la secuencia de tamanos de subtrama. La MLT transforma un bloque solapante dado de muestras x[n],0 < n < tamano_subtrama en un bloque de coeficientes de frecuencia X[k],0 < k < tamano_subtrama/2. El transformador (110) de frecuencia puede emitir tambien estimaciones de la complejidad de tramas futuras al controlador (170) de tasa/calidad. Realizaciones alternativas usan otras variedades de MLT. En aun otras
5
10
15
20
25
30
35
40
45
50
realizaciones alternativas, el transformador (110) de frecuencia aplica una DCT, FFT u otro tipo de trasformacion de frecuencia solapada o no solapada, modulada o no modulada, o usa codificacion de subbanda o de ondlcula.
Para datos de audio de multiples canales, los multiples canales de datos de coeficiente de frecuencia producidos por el transformador (110) de frecuencia a menudo estan correlacionados. Para aprovechar esta correlacion, el transformador (120) de multiples canales puede convertir los multiples canales codificados independientemente originales en canales codificados conjuntamente. Por ejemplo, si la entrada es modo estereo, el transformador (120) de multiples canales puede convertir los canales izquierdo y derecho en canales de suma y diferencia:
imagen1
O, el transformador (120) de multiples canales puede pasar los canales izquierdo y derecho a traves de canales codificados independientemente. Mas en general, para un numero de canales de entrada mayor de uno, el transformador (120) de multiples canales pasa canales codificados independientemente originales sin cambios o convierte los canales originales en canales codificados conjuntamente. La decision de usar canales codificados independiente o conjuntamente puede predeterminarse, o la decision puede realizarse de manera adaptativa en una base bloque a bloque u otra durante la codificacion. El transformador (120) de multiples canales produce informacion secundaria al MUX (180) que indica el modo de transformacion de canal usado.
El modelador (130) de percepcion modela propiedades del sistema auditivo humano para mejorar la calidad de la senal de audio reconstruida para una tasa de bits dada. El modelador (130) de percepcion calcula el patron de excitacion de un bloque de coeficientes de frecuencia de tamano variable. En primer lugar, el modelador (130) de percepcion normaliza el tamano y escala de amplitud del bloque. Esto posibilita el efecto escala temporal posterior y establece una escala coherente para medidas de canal. Opcionalmente, el modelador (130) de percepcion atenua los coeficientes a ciertas frecuencias para modelar la funcion de transferencia del oldo externo/medio. El modelador (130) de percepcion calcula la energla de los coeficientes en el bloque y agrega las energlas por 25 bandas crlticas. Como alternativa, el modelador (130) de percepcion usa otro numero de bandas crlticas (por ejemplo, 55 o 109). Los intervalos de frecuencia para las bandas crlticas son dependientes de la implementacion y se conocen bien numerosas opciones. Por ejemplo, vease el documento ITU-R BS 1387 o una referencia mencionada en el mismo. El modelador (130) de percepcion procesa las energlas de banda para contabilizar el enmascaramiento simultaneo y temporal. En realizaciones alternativas, el modelador (130) de percepcion procesa los datos de audio de acuerdo con un modelo auditivo diferente, tal como el descrito o mencionado en el documento ITU-R BS 1387.
El ponderador (140) genera factores de ponderacion (denominados como alternativa una matriz de cuantificacion) basandose en el patron de excitacion recibido desde el modelador (130) de percepcion y aplica los factores de ponderacion a los datos recibidos desde el transformador (120) de multiples canales. Los factores de ponderacion incluyen un peso para cada una de multiples bandas de cuantificacion en los datos de audio. Las bandas de cuantificacion pueden ser las mismas o diferentes en numero o posicion desde las bandas crlticas usadas en cualquier otro lugar en el codificador (100). Los factores de ponderacion indican proporciones en las que el ruido se expande a traves de las bandas de cuantificacion, con el objetivo de minimizar la capacidad audible del ruido poniendo mas ruido en bandas donde es menos audible y viceversa. Los factores de ponderacion pueden variar en amplitudes y numero de bandas de cuantificacion de bloque a bloque. En una implementacion, el numero de bandas de cuantificacion varla de acuerdo con el tamano de bloque; bloques mas pequenos tienen menos bandas de cuantificacion que bloques mas grandes. Por ejemplo, bloques con 128 coeficientes tienen 13 bandas de cuantificacion, bloques con 256 coeficientes tienen 15 bandas de cuantificacion, hasta 25 bandas de cuantificacion para bloques con 2048 coeficientes. Estas proporciones de bloque-banda son unicamente ejemplares. El ponderador (140) genera un conjunto de factores de ponderacion para cada canal de datos de audio de multiples canales en canales codificados independiente o conjuntamente, o genera un unico conjunto de factores de ponderacion para canales codificados conjuntamente. En realizaciones alternativas, el ponderador (140) genera los factores de ponderacion desde informacion distinta de, o ademas de, los patrones de excitacion.
El ponderador (140) emite bloques ponderados de datos de coeficiente al cuantificador (150) y emite informacion secundaria tal como el conjunto de factores de ponderacion al MUX (180). El ponderador (140) puede emitir tambien los factores de ponderacion al controlador (140) de tasa/calidad o a otros modulos en el codificador (100). El conjunto de factores de ponderacion puede comprimirse para representacion mas eficaz. Si los factores de ponderacion estan comprimidos con perdidas, los factores de ponderacion reconstruidos se usan tlpicamente para ponderar los bloques de datos de coeficientes. Si la informacion de audio en una banda de un bloque se elimina completamente por alguna razon (por ejemplo, sustitucion de ruido o truncation de banda), el codificador (100) puede mejorar adicionalmente la compresion de la matriz de cuantificacion para el bloque.
5
10
15
20
25
30
35
40
45
50
55
El cuantificador (150) cuantifica la salida del ponderador (140), produciendo datos de coeficiente cuantificados al codificador (160) por entropla e informacion secundaria que incluye el tamano de etapa de cuantificacion al MUX (180). La cuantificacion introduce perdida de informacion irreversible, pero tambien permite que el codificador (100) regule la tasa de bits del flujo de bits (195) de salida en conjunto con el controlador (170) de tasa/calidad. En la Figura 1, el cuantificador (150) es un cuantificador escalar uniforme adaptativo. El cuantificador (150) aplica el mismo tamano de etapa de cuantificacion a cada coeficiente de frecuencia, pero el mismo tamano de etapa de cuantificacion puede cambiar de una iteracion a la siguiente para afectar a la tasa de bits de la salida del codificador (160) por entropla. En realizaciones alternativas, el cuantificador es un cuantificador no uniforme, un cuantificador vectorial y/o un cuantificador no adaptativo.
El codificador (160) por entropla comprime de manera sin perdidas datos de coeficiente cuantificados recibidos desde el cuantificador (150). Por ejemplo, el codificador (160) por entropla usa codificacion por longitud de serie de multiples niveles, codificacion de longitud variable a variable, codificacion por longitud de serie, codificacion Huffman, codificacion de diccionario, codificacion aritmetica, codificacion LZ, una combinacion de las anteriores o alguna otra tecnica de codificacion.
El controlador (170) de tasa/calidad funciona con el cuantificador (150) para regular la tasa de bits y calidad de la salida del codificador (100). El controlador (170) de tasa/calidad recibe informacion desde otros modulos del codificador (100). En una implementacion, el controlador (170) de tasa/calidad recibe estimaciones de complejidad futura desde el transformador (110) de frecuencia, tasa de muestreo, informacion de tamano de bloque, el patron de excitacion de datos de audio original desde el modelador (130) de perception, factores de ponderacion desde el ponderador (140), un bloque de informacion de audio cuantificada en alguna forma (por ejemplo, cuantificada, reconstruida o codificada), y almacena en memoria intermedia informacion de estado desde el MUX (180). El controlador (170) de tasa/calidad puede incluir un cuantificador inverso, un ponderador inverso, un transformador de multiples canales inverso, y, potencialmente, un decodificador por entropla y otros modulos, para reconstruir los datos de audio de una forma cuantificada.
El controlador (170) de tasa/calidad procesa la informacion para determinar un tamano de etapa de cuantificacion deseado dadas condiciones actuales y emite el tamano de etapa de cuantificacion al cuantificador (150). El controlador (170) de tasa/calidad a continuation mide la calidad de un bloque de datos de audio reconstruidos como cuantificados con el tamano de etapa de cuantificacion, como se describe a continuacion. Usando la calidad medida as! como informacion de tasa de bits, el controlador (170) de tasa/calidad ajusta el tamano de etapa de cuantificacion con el objetivo de satisfacer restricciones de tasa de bits y calidad, tanto de manera instantanea como a largo plazo. En realizaciones alternativas, el controlador (170) de tasa/calidad funciona con informacion diferente o adicional o aplica diferentes tecnicas para regular la calidad y tasa de bits.
En conjunto con el controlador (170) de tasa/calidad, el codificador (100) puede aplicar sustitucion de ruido, truncation de banda y/o rematrizacion de multiples canales a un bloque de datos de audio. A tasas de bits bajas y medias, el codificador (100) de audio puede usar sustitucion de ruido para transportar informacion en ciertas bandas. En truncacion de banda, si la calidad medida para un bloque indica calidad pobre, el codificador (100) puede eliminar completamente los coeficientes en ciertas bandas (normalmente de frecuencia mas alta) para mejorar la calidad global en las bandas restantes. En rematrizacion de multiples canales, para datos de audio de multiples canales de baja tasa de bits en canales codificados conjuntamente, el codificador (100) puede suprimir informacion en ciertos canales (por ejemplo, el canal de diferencia) para mejorar la calidad del canal o canales restantes (por ejemplo, el canal de suma).
El MUX (180) multiplexa la informacion secundaria recibida desde los otros modulos del codificador (100) de audio junto con los datos codificados por entropla recibidos desde el codificador (160) por entropla. El MUX (180) emite la informacion en WMA o en otro formato que reconoce un decodificador de audio.
El MUX (180) incluye una memoria intermedia virtual que almacena el flujo de bits (195) para emitirse mediante el codificador (100). La memoria intermedia virtual almacena una duration predeterminada de informacion de audio (por ejemplo, 5 segundos para enviar por flujo continuo audio) para suavizar sobre fluctuaciones a corto plazo en la tasa de bits debido a cambios de complejidad en el audio. La memoria intermedia virtual a continuacion emite datos a una tasa de bits relativamente constante. La amplitud actual de la memoria intermedia, la tasa de cambio de amplitud de la memoria intermedia y otras caracterlsticas de la memoria intermedia pueden usarse mediante el controlador (170) de tasa/calidad para regular la calidad y tasa de bits.
Decodificador de audio generalizado ejemplar
Con referencia a la Figura 2, el decodificador (200) de audio generalizado incluye un demultiplexor de flujo de bits [“DEMUX”] (210), un decodificador (220) por entropla, un cuantificador (230) inverso, un generador (240) de ruido, un ponderador (250) inverso, un transformador (260) de multiples canales inverso y un transformador (270) de frecuencia inverso. El decodificador (200) es mas simple de lo que lo es el codificador (100) puesto que el decodificador (200) no incluye modulos para control de tasa/calidad.
5
10
15
20
25
30
35
40
45
50
55
El decodificador (200) recibe un flujo de bits (205) de datos de audio comprimidos en WMA u otro formato. El flujo de bits (205) incluye datos codificados por entropia asi como informacion secundaria desde la que el decodificador (200) reconstruye muestras (295) de audio. Para datos de audio con multiples canales, el decodificador (200) procesa cada canal de manera independiente, y puede funcionar con canales codificados conjuntamente antes del transformador (260) de multiples canales inverso.
El DEMUX (210) analiza informacion en el flujo de bits (205) y envia informacion a los modulos del decodificador (200). El DEMUX (210) incluye una o mas memorias intermedias para compensar variaciones a corto plazo en la tasa de bits debido a fluctuaciones en complejidad del audio, inestabilidad de red y/u otros factores.
El decodificador (220) por entropia descomprime de manera sin perdidas codigos de entropia recibidos desde el DEMUX (210), produciendo datos de coeficiente de frecuencia cuantificados. El decodificador (220) por entropia tipicamente aplica la inversa de la tecnica de codificacion por entropia usada en el codificador.
El cuantificador (230) inverso recibe un tamano de etapa de cuantificacion desde el DEMUX (210) y recibe datos de coeficiente de frecuencia cuantificados desde el decodificador (220) por entropia. El cuantificador (230) inverso aplica el tamano de etapa de cuantificacion a los datos de coeficiente de frecuencia cuantificados para reconstruir parcialmente los datos de coeficiente de frecuencia. En realizaciones alternativas, el cuantificador inverso aplica la inversa de alguna otra tecnica de cuantificacion usada en el codificador.
El generador (240) de ruido recibe desde el DEMUX (210) la indicacion de que bandas en un bloque de datos estan sustituidas en ruido asi como cualquier parametro para la forma del ruido. El generador (240) de ruido genera los patrones para las bandas indicadas y pasa la informacion al ponderador (250) inverso.
El ponderador (250) inverso recibe los factores de ponderacion desde el DEMUX (210), patrones para cualquier banda de ruido sustituido desde el generador (240) de ruido, y los datos de coeficiente de frecuencia parcialmente reconstruidos desde el cuantificador (230) inverso. Segun sea necesario, el ponderador (250) inverso descomprime los factores de ponderacion. El ponderador (250) inverso aplica los factores de ponderacion a los datos de coeficiente de frecuencia parcialmente reconstruidos para bandas que no se han sustituido en ruido. El ponderador (250) inverso a continuacion anade los patrones de ruido recibidos desde el generador (240) de ruido.
El transformador (260) de multiples canales inverso recibe los datos de coeficiente de frecuencia reconstruidos desde el ponderador (250) inverso e informacion de modo de transformacion de canal desde el DEMUX (210). Si los datos de multiples canales estan en canales codificados independientemente, el transformador (260) de multiples canales inverso pasa los canales a traves. Si los datos de multiples canales estan en canales codificados conjuntamente, el transformador (260) de multiples canales inverso convierte los datos en canales codificados independientemente. Si se desea, el decodificador (200) puede medir la calidad de los datos de coeficiente de frecuencia reconstruidos en este punto.
El transformador (270) de frecuencia inverso recibe los datos de coeficiente de frecuencia emitidos mediante el transformador (260) de multiples canales asi como informacion secundaria tal como tamanos de bloque desde el DEMUX (210). El transformador (270) de frecuencia inverso aplica la inversa de la transformacion de frecuencia usada en el codificador y emite bloques, de muestras (295) de audio reconstruidas.
Codificacion/decodificacion ejemplar con palabras de codigo modificadas y similitud perceptual de sentido amplio
La Figura 3 ilustra una implementacion de un codificador (300) de audio que usa codificacion con configuracion de subbanda adaptativa y/o palabras de codigo modificadas tal como, con similitud perceptual de sentido amplio, que puede incorporarse en el proceso de codificacion/decodificacion de audio global del codificador (100) y decodificador (200) de audio generalizado de las Figuras 1 y 2. En esta implementacion, el codificador (300) de audio realiza una descomposicion espectral en la transformacion (320), usando cualquiera de una transformacion de subbanda o una transformacion ortogonal solapada tal como MDCT o MLT, para producir un conjunto de coeficientes espectrales para cada bloque de entrada de la senal de audio. Como es conocido de manera convencional, el codificador de audio codifica estos coeficientes espectrales para enviar en el flujo de bits de salida al decodificador. La codificacion de los valores de estos coeficientes espectrales constituye la mayoria de la tasa de bits usada en un codec de audio. A tasas de bits bajas, el codificador (300) de audio selecciona codificar menos de los coeficientes espectrales usando un codificador (340) de banda base (es decir, un numero de coeficientes que pueden codificarse dentro de un porcentaje del ancho de banda de los coeficientes espectrales emitidos desde el transformador (110) de frecuencia), tal como una porcion inferior o banda base del espectro. El codificador (340) de banda base codifica estos coeficientes espectrales de banda base usando una sintaxis de codificacion conocida de manera convencional, como se describe para el codificador de audio generalizado anterior. Esto daria como resultado en general que el audio reconstruido sonara apagado o con filtro de paso bajo.
El codificador (300) de audio evita el efecto de apagado/paso bajo codificando tambien los coeficientes espectrales omitidos usando configuracion de subbanda adaptativa y/o palabras de codigo modificadas con similitud perceptual
5
10
15
20
25
30
35
40
45
50
55
de sentido amplio. Los coeficientes espectrales (denominados en el presente documento como los “coeficientes espectrales de banda extendida”) que se omitieron de la codificacion con el codificador (340) de banda base se codifican mediante el codificador (350) de banda extendida como ruido conformado, o versiones conformadas de otros componentes de frecuencia, o dos o mas combinaciones de los dos. Mas especlficamente, los coeficientes espectrales de banda extendida se dividen en un numero de subbandas de diversos tamanos y potencialmente diferentes (por ejemplo, de tlpicamente 16, 32, 64, 128, 256, ..., etc., coeficientes espectrales), que se codifican como ruido conformado o versiones conformadas de otros componentes de frecuencia. Esto anade una version perceptualmente placentera del coeficiente espectral faltante para proporcionar un sonido completamente mas rico. Incluso aunque el espectro real pueda desviarse de la version sintetica resultante de esta codificacion, esta codificacion de banda extendida proporciona un efecto perceptual similar que en el original.
En algunas implementaciones, la anchura de la banda base (es decir, numero de coeficientes espectrales de banda base codificados usando el codificador 340 de banda base) as! como el tamano o numero de bandas extendidas puede variarse de una configuracion por defecto o inicial. En tal caso, la anchura de la banda base y/o numero (o tamano) de bandas extendidas codificadas usando el codificador (350) de banda base extendida puede codificarse (360) en el flujo (195) de salida.
Si es deseable, el particionamiento del flujo de bits entre los coeficientes espectrales de banda base y coeficientes de banda extendida en el codificador (300) de audio se hace para asegurar compatibilidad hacia atras con decodificadores existentes basandose en la sintaxis de codificacion del codificador de banda base, de manera que tal decodificador existente pueda decodificar la porcion de banda base codificada mientras se ignora la porcion extendida. El resultado es que los decodificadores mas modernos tienen la capacidad para representar el espectro completo cubierto por el flujo de bits codificado de banda extendida, mientras que los decodificadores mas antiguos pueden representar la porcion que el codificador elige para codificar con la sintaxis existente. El llmite de frecuencia (por ejemplo, el llmite ente la porcion de banda base y extendida) puede ser flexible y variable en el tiempo. Puede decidirse mediante el codificador basandose en caracterlsticas de senal y enviarse expllcitamente al decodificador, o puede ser una funcion del espectro decodificado, por lo que no necesita enviarse. Puesto que los decodificadores existentes pueden decodificar unicamente la porcion que se codifica usando el codec existente (banda base), esto significa que la porcion inferior del espectro (por ejemplo, banda base) se codifica con el codec existente y la porcion superior se codifica usando la codificacion de banda extendida con palabras de codigo modificadas usando similitud perceptual de sentido amplio
En otras implementaciones donde tal compatibilidad hacia atras no sea necesaria, el codificador tiene la libertad de elegir entre la codificacion de banda base convencional y la banda extendida (con palabras de codigo modificadas y enfoque de similitud perceptual de sentido amplio) solamente basandose en caracterlsticas de senal y el coste de codificar sin considerar la localizacion de llmite de frecuencia. Por ejemplo, aunque es altamente improbable en senales naturales, puede ser mejor codificar la frecuencia superior con el codec tradicional y la porcion inferior usando el codec extendido.
Metodo de codificacion ejemplar
La Figura 4 es un diagrama de flujo que representa un proceso (400) de codificacion de audio realizado mediante el codificador (350) de banda base extendida de la Figura 3 para codificar los coeficientes espectrales de banda extendida. En este proceso (400) de codificacion de audio, el codificador (350) de banda base extendida divide los coeficientes espectrales de banda extendida en un numero de subbandas. En una implementacion tlpica, estas subbandas en general consisten en 64 o 128 coeficientes espectrales cada una. Como alternativa, pueden usarse otras subbandas de tamano (por ejemplo, 16, 32 u otros numeros de coeficientes espectrales). Si un codificador de banda extendida proporciona la posibilidad de modificar el tamano de las subbandas, un proceso (360) de configuracion de banda extendida modifica las subbandas y codifica la configuracion de banda extendida. Las subbandas pueden ser disjuntas o pueden solaparse (usando generacion de ventanas). Con subbandas solapantes, se codifican mas bandas. Por ejemplo, si tienen que codificarse 128 coeficientes espectrales usando el codificador de banda base extendida con subbandas de tamano 64, el metodo usara dos bandas disjuntas para codificar los coeficientes, codificando los coeficientes 0 a 63 como una subbanda y los coeficientes 64 a 127 como la otra. Como alternativa, pueden usarse tres bandas solapantes con el 50 % de solapamiento, codificando 0 a 63 como una banda, 32 a 95 como otra banda y 64 a 127 como la tercera banda. Se analizaran mas tarde diversos otros metodos dinamicos para segmentacion de frecuencia de subbandas en esta memoria descriptiva.
Para cada una de estas subbandas fijas o dinamicamente optimizadas, el codificador (350) de banda base extendida codifica la banda usando dos parametros. Un parametro (“parametro de escala”) es un factor de escala que representa la energla total en la banda. El otro parametro (“parametro de forma”, en general en forma de un vector de movimiento) se usa para representar la forma del espectro en la banda. Opcionalmente, como se analizara, el parametro de forma requerira uno o mas bits de transformacion de forma que indican un exponente, una direccion de vector (por ejemplo, hacia delante/inversa) y/o una transformacion de signo de coeficiente.
Como se ilustra en el diagrama de flujo de la Figura 4, el codificador (350) de banda base extendida realiza el
5
10
15
20
25
30
35
40
45
50
55
60
proceso (400) para cada subbanda de la banda extendida. En primer lugar (en 420), el codificador (350) de banda base extendida calcula el factor de escala. En una implementacion, el factor de escala es simplemente el valor de rms (media cuadratica) de los coeficientes dentro de la subbanda actual. Se halla tomando la ralz cuadrada del valor promedio cuadrado de todos los coeficientes. El valor promedio cuadrado se halla tomando la suma del valor cuadrado de todos los coeficientes en la subbanda, y dividiendo por el numero de coeficientes.
El codificador (350) de banda base extendida a continuacion determina el parametro de forma. El parametro de forma normalmente es un vector de movimiento que indica simplemente copiar sobre una version normalizada del espectro de una porcion del espectro que ya se ha codificado (es decir, una porcion de los coeficientes espectrales de banda base codificados con el codificador de banda base). En ciertos casos, el parametro de forma puede especificar en su lugar un vector de ruido aleatorio normalizado o simplemente un vector para una forma espectral desde un libro de codigos fijado. Copiar la forma desde otra porcion del espectro es util en audio puesto que tlpicamente en muchas senales tonales, hay componentes armonicos que se repiten a traves de todo el espectro. El uso de ruido o algun otro libro de codigos fijado permite una codificacion de baja tasa de bits de aquellos componentes que no estan bien representados en la porcion codificada de banda base del espectro. Por consiguiente, el proceso (400) proporciona un metodo de codificacion que es esencialmente una codificacion de cuantificacion de vector de forma de ganancia de estas bandas, donde el vector es la banda de frecuencia de coeficientes espectrales, y el libro de codigos se toma del espectro previamente codificado y puede incluir otros vectores fijados o vectores de ruido aleatorio, tambien. Es decir, cada subbanda codificada mediante el codificador de banda base extendida se representa como a*X, donde 'a' es un parametro de escala y 'X' es un vector representado por el parametro de forma, y puede ser una version normalizada de (cualquier) coeficiente espectral previamente codificado, un vector desde un libro de codigos fijado o un vector de ruido aleatorio. Tambien, si esta porcion copiada del espectro se anade a una codificacion tradicional de esa misma porcion, entonces esta adicion es una codificacion residual. Esto podrla ser util si una codificacion tradicional de la senal proporciona una representacion de base (por ejemplo, codificacion del suelo espectral) que es facil de codificar con unos pocos bits, y el resto se codifica con el nuevo algoritmo.
Mas especlficamente, en la accion (430), el codificador (350) de banda base extendida busca los coeficientes espectrales de banda base (u otra previamente codificada) para un vector en la banda base de coeficientes espectrales que tienen una forma similar como la subbanda actual. Como se ha establecido anteriormente, una “palabra de codigo desde la banda base” tambien incluye fuentes fuera de la banda base presente. El codificador de banda base extendida determina que porcion de la banda base (u otra banda previa) es mas similar a la subbanda actual usando una comparacion de media minima cuadratica a una version normalizada de cada porcion de la banda base. Opcionalmente, se aplica una transformacion (431) lineal o no lineal a una o mas porciones del espectro en la banda base (u otra banda previa) para crear un universo mayor de formas para coincidencia. De nuevo, la banda base incluye la biblioteca y otras bandas previas cuando se analizan fuentes para palabras de codigo. Opcionalmente, el codificador de banda extendida realiza una o mas transformaciones lineales o no lineales en la banda base y/o libro de codigos fijados para proporcionar una biblioteca mas grande de formas disponibles para coincidencia. Por ejemplo, considerese un caso en el que hay 256 coeficientes espectrales producidos por la transformacion (320) desde un bloque de entrada, las subbandas de banda extendida (en este ejemplo) son cada una 16 coeficientes espectrales en anchura, y el codificador de banda base codifica los primeros 128 coeficientes espectrales (numerados de 0 a 127) como la banda base. A continuacion, la busqueda realiza una comparacion de media minima cuadratica de los 16 coeficientes espectrales normalizados en cada banda extendida a una version normalizada de cada una de 16 porciones de coeficientes espectrales de la banda base (o cualquier banda previamente codificada) comenzando en las posiciones de coeficiente 0 a 111 (es decir, un total de 112 posibles formas espectrales diferentes codificadas en la banda base en este caso). La porcion de banda base que tiene el valor de media cuadratica minima mas bajo se considera la mas cercana (mas similar) en forma a la banda extendida actual. Opcionalmente, la busqueda realiza la comparacion de media cuadratica minima en las transformaciones (431) lineales o no lineales de la banda base (u otras bandas). En la accion (432), el codificador de banda base extendida comprueba si esta banda mas similar de los coeficientes espectrales de banda base es suficientemente cercana en forma a la banda extendida actual (por ejemplo, el valor de media cuadratica minima es inferior a un umbral preseleccionado). En caso afirmativo, a continuacion el codificador de banda base extendida determina un vector de movimiento que apunta a esta banda coincidente mas cercana de coeficientes espectrales de banda base en la accion (434) y opcionalmente, information acerca de una transformacion lineal o no lineal en el vector de movimiento mejor coincidente. El vector de movimiento puede ser la position de coeficiente de inicio en la banda base (por ejemplo, 0 a 111 en el ejemplo). Pueden usarse otros metodos (tal como comprobar tonalidad frente a no tonalidad) para observar si la banda mas similar de los coeficientes de banda base (u otras bandas) esta suficientemente cercana en forma a la banda extendida actual.
Si no se halla porcion suficientemente similar de la banda base, el codificador de banda base extendida a continuacion mira un libro de codigos (440) fijado de formas espectrales para representar la subbanda actual. El codificador de banda base extendida busca en este libro de codigos (440) fijado una forma espectral similar a la de la subbanda actual. Opcionalmente, la busqueda realiza las comparaciones de media cuadratica minima en las transformaciones (431) lineales o no lineales del libro de codigos fijado. Si se halla, el codificador de banda base extendida usa su indice en el libro de codigos como el parametro de forma en la accion (444) y opcionalmente, informacion acerca de una transformacion lineal o no lineal en el mejor indice coincidente en el libro de codigos. De
5
10
15
20
25
30
35
otra manera, en la accion (450), el codificador de banda base extendida puede determinar tambien representar la forma de la subbanda actual como un vector de ruido aleatorio normalizado.
En implementaciones alternativas, el codificador de banda extendida puede decidir si los coeficientes espectrales pueden representarse usando ruido incluso antes de buscar la mejor forma espectral en la banda base. De esta manera incluso si se hallara una forma espectral suficientemente cercana en la banda base, el codificador de banda base extendida codificara aun esa porcion usando ruido aleatorio. Esto puede dar como resultado menos bits cuando se compara con enviar el vector de movimiento que corresponde a una posicion en la banda base.
En la accion (460), el codificador de banda extendida codifica los parametros de escala y forma (es decir, factor de cambio de escala y vector de movimiento en esta implementacion, y opcionalmente, informacion de transformacion lineal y no lineal) usando codificacion predictiva, cuantificacion y/o codificacion por entropla. En una implementacion, por ejemplo, el parametro de escala se codifica de manera predictiva basandose en la subbanda extendida inmediatamente precedente. (Los factores de cambio de escala de las subbandas de la banda extendida tlpicamente son similares en valor, de modo que sucesivas sub-bandas tlpicamente tienen factores de cambio de escala cercanos en valor). En otras palabras, se codifica el valor total del factor de cambio de escala para la primera subbanda de la banda extendida. Las subbandas posteriores se codifican como su diferencia de su valor real de su valor previsto (es decir, siendo el valor previsto el factor de cambio de escala de la subbanda precedente). Para audio de multiples canales, se codifica la primera subbanda de la banda extendida en cada canal como su valor completo, y se predicen factores de cambio de escala de subbandas posteriores de aquellas de la subbanda precedente en el canal. En implementaciones alternativas, el parametro de escala tambien puede predecirse a traves de los canales, para mas de otra subbanda, desde el espectro de banda base o desde bloques de audio de entrada previos, entre otras variaciones.
El codificador de banda base extendida cuantifica adicionalmente el parametro de escala usando cuantificacion uniforme o no uniforme. En una implementacion, se usa una cuantificacion no uniforme del parametro de escala, en la que un logaritmo del factor de cambio de escala se cuantifica uniformemente a 128 segmentos. El valor cuantificado resultante a continuacion se codifica por entropla usando codificacion Huffman.
Para el parametro de forma, el codificador de banda base extendida tambien usa codificacion predictiva (que puede predecirse desde la subbanda precedente como para el parametro de escala), cuantificacion a 64 segmentos, y codificacion por entropla (por ejemplo, con codificacion Huffman).
En algunas implementaciones, las subbandas de banda extendida pueden ser variables en tamano. En tales casos, el codificador de banda base extendida tambien codifica la configuracion de la banda extendida.
Mas particularmente, en una implementacion de ejemplo, el codificador de banda base extendida codifica los parametros de escala y de forma como se muestra mediante el listado de pseudocodigo en la Tabla 1. Mas de un parametro de escala o de forma puede enviarse para el caso de multiples palabras de codigo.
__________________________________________Tabla 1__________________________________________
para cada pieza en flujo de audio {
para cada canal en pieza que puede necesitar codificarse (por ejemplo, altavoz de graves puede no necesitar codificarse)
{
1 bit para indicar si el canal esta codificado o no.
8 bits para especificar version cuantificada de posicion de inicio de banda extendida.
'n_config' bits para especificar codificacion de configuracion de banda. para cada subbanda a codificar usando codificador de banda extendida {
'n_scale' bits para codigo de longitud variable para especificar
parametro de escala (energla en la banda).
'n_shape' bits para codigo de longitud variable para especificar
parametro de forma.
'n_transformation' bits para parametros de transformacion lineal/no lineal.
}
}
J________________________________________________________________________________________
En el listado de codigo anterior, la codificacion para especificar la configuracion de banda (es decir, el numero de bandas y sus tamanos) depende del numero de coeficientes espectrales a codificarse usando el codificador de
5
10
15
20
25
30
35
40
45
50
banda base extendida. El numero de coeficientes codificados usando el codificador de banda base extendida puede encontrarse usando la posicion de inicio de la banda extendida y el numero total de coeficientes espectrales (numero de coeficientes espectrales codificados usando el codificador de banda extendida = numero total de coeficientes espectrales - posicion de inicio). En un ejemplo, la configuracion de banda se codifica a continuacion como un Indice en el listado de todas las configuraciones posibles permitidas. Este Indice se codifica usando un codigo de longitud fija con n_config=log2(numero de configuraciones) bits. Las configuraciones permitidas son una funcion de numero de coeficientes espectrales a codificarse usando este metodo. Por ejemplo, si se han de codificar 128 coeficientes, la configuracion por defecto es 2 bandas de tamano 64. Pueden ser posibles otras configuraciones, por ejemplo, la Tabla 2 muestra un listado de configuraciones de banda para 128 coeficientes espectrales.
Tabla 2
0
128
1
64 64
2
64 32 32
3
32 32 64
4
32 32 32 32
Por lo tanto, en este ejemplo, hay 5 posibles configuraciones de banda. En una configuracion de este tipo, se elige una configuracion por defecto para los coeficientes como que tiene 'n' bandas. A continuacion, permitiendo a cada banda dividirse o unirse (unicamente un nivel), hay 5(n/2) posibles configuraciones, que requieren (n/2)log2(5) bits para codificar. En otras implementaciones, puede usarse codificacion de longitud variable para codificar la configuracion. No se requiere metodo especlfico de configuracion de banda extendida para beneficiarse de la modificacion de palabra de codigo. Adicionalmente, se analizan mas tarde diversos otros metodos para configuracion de banda extendida que no requieren ningun metodo de modificacion de palabra de codigo de este tipo para ser beneficiosos.
Como se ha analizado anteriormente, el factor de escala se codifica usando codificacion predictiva, donde la prediction puede tomarse desde factores de escala previamente codificados desde bandas previas en el mismo canal, desde canales previos en la misma pieza, o desde piezas previamente decodificadas. Para una implementation dada, la election para la prediccion puede realizarse mirando que banda previa (en la misma banda extendida, canal o pieza (bloque de entrada)) proporciono las correlaciones mas altas. En una implementacion ejemplo, la banda se codifica predictivamente como sigue:
Sean los factores de escala en una pieza x[i][j], donde i=lndice de canal, j=lndice de banda.
Para i=0 && j=0 (primer canal, primera banda), sin prediccion.
Para i!=0 && j=0 (otros canales, primera banda), prediccion es x[0][0] (primer canal, primera banda)
Para i!=0 && j!=0 (otros canales, otras bandas), prediccion es x[i][j-1] (mismo canal, banda previa).
En la tabla de codigo anterior, el “parametro de forma” es un vector de movimiento que especifica la localization de la palabra de codigo previa de coeficientes espectrales, o vector desde el libro de codigos fijado o ruido. Los coeficientes espectrales previos pueden provenir desde el mismo canal, o desde canales previos, o desde piezas previas. El parametro de forma se codifica usando prediccion, donde la prediccion se toma desde localizaciones previas desde bandas previas en el mismo canal o canales previos en la misma pieza o desde piezas previas. Cualquier transformation lineal o no lineal puede aplicare a una forma. El parametro de “transformation” indica tal information de transformacion, Indice para information de transformacion o etc.
Metodo de decodificacion ejemplar
La Figura 5 muestra un decodificador (500) de audio para el flujo de bits producido por el codificador (300) de audio. En este decodificador, el flujo de bits (205) codificado se demultiplexa (por ejemplo, basandose en la anchura de banda base codificada y configuracion de banda extendida) mediante el demultiplexor (210) de flujo de bits en el flujo de codigo de banda base y flujo de codigo de banda extendida, que se decodifican en el decodificador (540) de banda base y el decodificador (550) de banda extendida. El decodificador (540) de banda base decodifica los coeficientes espectrales de banda base usando decodificacion convencional del codec de banda base. El decodificador (545) de configuracion de banda extendida decodifica los tamanos de banda optimizados si se utiliza la optimization desde una configuracion de banda por defecto. El decodificador (550) de banda extendida decodifica el flujo de codigo de banda extendida, que incluye copiar a traves de una o mas porciones de los coeficientes espectrales de banda base originales o transformados (o cualquier banda o libro de codigos previo) apuntados mediante el vector de movimiento de los parametros de forma (y cualquier informacion opcional sobre la transformacion lineal o no lineal del coeficiente apuntado mediante el vector de movimiento) y cambiar de escala mediante el factor de cambio de escala del parametro de escala. Los coeficientes espectrales de banda base y banda extendida se combinan en un unico espectro que se convierte mediante transformacion 580 inversa para
reconstruir la senal de audio.
La Figura 6 muestra un proceso (600) de decodificacion usado en el decodificador (550) de banda extendida de la Figura 5. Para cada subbanda codificada de la banda extendida en el flujo de codigo de banda extendida (accion (610)), el decodificador de banda extendida decodifica el factor de escala (accion (620)) y el vector de movimiento 5 junto con cualquier informacion de transformacion (accion (630)). El decodificador de banda extendida a continuacion copia (accion (640)) la subbanda de banda base, vector de libro de codigos fijado, o vector de ruido aleatorio identificado mediante el vector de movimiento (parametro de forma y realiza cualquier transformacion identificada). El decodificador de banda extendida cambia de escala la banda o vector espectral copiado mediante el factor de cambio de escala para producir los coeficientes espectrales para la subbanda actual de la banda 10 extendida.
Coeficientes espectrales ejemplares
La Figura 7 es un grafico que representa un conjunto de coeficientes espectrales. Por ejemplo, los coeficientes (700) son una salida de una transformacion o una transformacion ortogonal solapada tal como MDCT o MCT, para producir un conjunto de coeficientes espectrales para cada bloque de entrada de la senal de audio.
15 Como se muestra en la Figura 7, una porcion de la salida de la transformacion denominada la banda base (702) se codifica mediante el codificador de banda base. A continuacion la banda extendida (704) se divide en subbandas de tamanos (706) homogeneos o variados. Las formas en la banda base (708) (por ejemplo, formas segun se representa mediante una serie de coeficientes) se comparan a formas en la banda extendida (710), y se usa un desplazamiento (712) que representa una forma similar en la banda base para codificar una forma (por ejemplo, 20 subbanda) en la banda extendida de modo que necesitan codificarse y enviarse menos bits al decodificador.
Un tamano de banda base (702) puede variar, y una banda extendida (704) resultante puede variar basandose en la banda base. La banda extendida puede dividirse en diversos y multiples tamanos (706) de subbanda de tamano.
En este ejemplo, un segmento de banda base (desde esta o cualquier banda anterior) se usa para identificar una palabra de codigo (708) para simular una subbanda en la banda extendida (710). La palabra de codigo (708) puede 25 transformarse linealmente o transformarse no linealmente para crear otras formas (por ejemplo, otras series de coeficientes) que pueden proporcionar mas estrechamente un modelo para el vector (710) que se esta codificando.
Por lo tanto, se usan diversos segmentos en la banda base como modelos potenciales (por ejemplo, un libro de codigos, biblioteca o diccionario de palabras de codigo) para codificar datos en la banda extendida. En lugar de enviar los coeficientes (710) reales en una subbanda en la banda extendida se envla un identificador tal como un 30 desplazamiento (712) de vector de movimiento, al codificador para representar los datos para la banda extendida. Sin embargo, en ocasiones no hay coincidencias cercanas en la banda base para datos que se estan modelando en una subbanda. Esto puede ser debido a restricciones de baja tasa de bits que pueden permitir una banda base de tamano limitado. Como se establece, el tamano (702) de la banda base en relacion a la banda extendida puede variar basandose en recursos informaticos tales como el tiempo, dispositivo de salida o ancho de banda.
35 En otro ejemplo, se proporciona otro libro de codigos (716) o esta disponible para el codificador/decodificador, y se proporciona un identificador de mejor coincidencia como un Indice a una palabra de codigo (718) de coincidencia mas cercana en el libro de codigos. Adicionalmente, en casos donde es deseable ruido aleatorio como una palabra de codigo, una porcion del flujo de bits (tal como bits desde la banda base) pueden usarse para sembrar de manera similar un generador de numeros aleatorios tanto en el codificador como el decodificador.
40 Estos diversos metodos pueden usarse para crear una biblioteca o diccionario de palabras de codigo para proporcionar un universo de palabras de codigo para hacer coincidir una forma, para codificar una subbanda (710) u otro vector, de modo que los mismos coeficientes pueden modelarse mediante un vector (712) de movimiento en lugar de cuantificarse individualmente.
Transformaciones de palabras de codigo ejemplares
45 La Figura 8 es un grafico de una palabra de codigo y diversas transformaciones lineales y no lineales de la palabra de codigo. Por ejemplo, una palabra de codigo (802) proviene de una banda base, un libro de codigos fijado y/o una palabra de codigo generada aleatoriamente. Se realizan transformaciones lineales o no lineales en una o mas palabras de codigo en una biblioteca para obtener un conjunto mayor o mas diverso de formas para identificar una mejor forma para hacer coincidir un vector que se esta codificando. En un ejemplo, una palabra de codigo se invierte 50 (804) en orden de coeficiente para obtener otra palabra de codigo para coincidencia de forma. Una inversa de una
palabra de codigo que contiene los valores de coeficiente < 1, 1,5, 2,2, 3,2 > se vuelve < 3,2, 2,2, 1,5, 1 >. En otro ejemplo, el rango dinamico o varianza de una palabra de codigo se reduce (806) usando exponenciacion con un exponente menor que uno en cada coeficiente. De manera similar, una variacion de la palabra de codigo se exagera (por ejemplo, varianza aumentada) usando un exponente mayor que uno, no mostrado. Por ejemplo, una palabra de
5
10
15
20
25
30
35
40
45
50
55
codigo que contiene los coeficientes < 1, 1, 2, 1, 4, 2, 1 > se eleva a la potencia de 2 para crear la palabra de codigo < 1, 1, 4, 1, 16, 4, 1 >. En otro ejemplo, los coeficientes de una palabra de codigo < -1, 1, 2, 3 > (802) se niegan < 1, -1, -2, -3 > (808). Por supuesto, pueden realizarse muchas otras transformaciones lineales y no lineales (por ejemplo, 806) en una o mas palabras de codigo para proporcionar un universo o biblioteca mayor o mas diverso para hacer coincidir subbandas u otros vectores. Adicionalmente, una o mas transformaciones pueden aplicarse tambien en combinacion a las palabras de codigo para proporcionar mayor diversidad de formas disponibles.
En un ejemplo, un codificador en primer lugar determina una palabra de codigo en la banda base que es una coincidencia mas cercana a una subbanda que se esta codificando. Por ejemplo, puede usarse una comparacion de media minima cuadratica de coeficientes en la banda base para determinar una mejor coincidencia. Por ejemplo, despues de comparar (708) a (710), la comparacion mueve un coeficiente hacia abajo del espectro, un coeficiente a la vez, para obtener otra palabra de codigo para comparar (710). A continuation cuando se encuentra una coincidencia mas cercana, en un ejemplo, la forma de la palabra de codigo de mejor coincidencia se varla mediante transformation no lineal para ver si la coincidencia puede mejorarse. Por ejemplo, usando una transformation de exponente en los coeficientes de una palabra de codigo de mejor coincidencia puede proporcionar un perfeccionamiento en la coincidencia. Hay dos metodos para hallar la mejor coincidencia de palabra de codigo y exponente. En el primer metodo, se halla una mejor palabra de codigo tlpicamente usando la distancia euclldea como la metrica (MSE). Despues de que se halla la mejor palabra de codigo, se halla el mejor exponente. El mejor exponente se halla usando uno de los siguientes dos metodos.
Un metodo es intentar todos los exponentes disponibles y observar cual proporciona la distancia Euclldea minima, el otro metodo es probar exponentes y observar cual exponente proporciona la mejor coincidencia de histograma o funcion de masa de probabilidad (pmf). La coincidencia de pmf puede calcularse usando el segundo momento sobre la media (la varianza) para la pmf del vector original y para cada uno de los vectores exponenciados. El que tiene la coincidencia mas cercana se elige para que sea el mejor exponente.
El segundo metodo de hallar la mejor coincidencia de palabra de codigo y exponente es hacer una busqueda exhaustiva usando muchas combinaciones de palabras de codigo y exponentes.
Si, por ejemplo, X0,5 proporciona una mejor comparacion que X1,0, se codifica una subbanda usando el desplazamiento para esa palabra de codigo en la banda base (712), junto con una transformacion (lineal o no lineal) xp, donde uno o mas bits que indican p=0,5 se envian y se aplican en el decodificador. En este ejemplo, la busqueda continua hallando una palabra de codigo en primer lugar, y a continuacion variando con una transformacion, pero no se requiere tal orden en la practica.
En otro ejemplo, se realiza una busqueda exhaustiva a lo largo de la banda base y/o otros libros de codigo para hallar una mejor coincidencia. Por ejemplo, se realiza una busqueda que comprende una busqueda exhaustiva a lo largo de la banda base de todas las combinaciones de (transformacion exponencial (p=0,5, 1,0, 2,0), transformacion de signo (+/-), direction (hacia delante/inversa). De manera similar, esta busqueda exhaustiva puede realizarse a lo largo del espectro de libro de codigos de ruido, o palabras de codigo.
En general, puede proporcionarse una coincidencia cercana determinando una varianza mas baja entre la subbanda que se esta codificando y la palabra de codigo y transformacion seleccionada para modelar una subbanda. Un identificador o indication codificada de la palabra de codigo y/o transformacion, junto con otra information tal como un factor de escala, se codifica en el flujo de bits y se proporciona al codificador.
Codification de palabra de codigo multiple ejemplar
En un ejemplo, se utilizan dos palabras de codigo diferentes para proporcionar una codificacion de subbanda. Por ejemplo, dadas dos palabras de codigo b y n de longitud u, se proporcionan b = <b0, b1, ... bu > y n = < n0, n1, ... nu > para describir mejor una subbanda que se esta codificando. El vector b puede provenir de la banda base, cualquier banda anterior, un libro de codigos de ruido o una biblioteca, y el vector n puede provenir de manera similar desde cualquier tal fuente. Se proporciona una regla para intercalar coeficientes desde cada una de dos o mas palabras de codigo b y n, de manera que el decodificador conoce implicita o explicitamente que coeficiente tomar desde las palabras de codigo b y n. La regla puede proporcionarse en el flujo de bits o puede conocerse por el decodificador implicitamente.
La regla y dos o mas vectores se usan en el decodificador para crear las subbandas s = < no, b1, n2, n3, b4, ... nu >. Por ejemplo, se establece una regla basandose en el orden de las palabras de codigos enviadas, y un valor de porcentaje “a”. El codificador entrega informacion en el orden (b, n, a). El decodificador traduce la informacion en un requisito para tomar cualquier coeficiente desde el primer vector b si ese coeficiente es menor que 'a' multiplicado por el valor de coeficiente mas alto M en el vector b. Por lo tanto, si un coeficiente b1 es mayor que a*M, entonces b1 esta en el vector s, de otra manera n esta en s. Otra regla puede requerir que para que b1 este en el vector s, tiene que ser parte de un grupo de T coeficientes adyacentes con un valor menor que a*M. Si se establece un valor por defecto para 'a', entonces 'a' no necesita enviarse al decodificador, puesto que esta implicito.
5
10
15
20
25
30
35
40
45
50
Por lo tanto, un decodificador puede enviar dos o mas identificadores de palabra de codigo, y opcionalmente, una regla para decodificar cuales coeficientes tomar para crear la subbanda. El codificador enviara tambien informacion de factor de escala para palabras de codigo, y opcionalmente, si fuera relevante, cualquier otra informacion de transformacion de palabra de codigo puesto que b y/o n pueden transformarse lineal o no linealmente.
Usando dos o mas palabras de codigo b y n anteriores, un codificador enviarla un identificador (por ejemplo, un vector de movimiento, Indice de libro de codigos, etc.) de las palabras de codigos, una regla (por ejemplo, Indice para libro de reglas) o la regla sera conocida impllcitamente tanto por el codificador como el decodificador, cualquier informacion de transformacion adicional (por ejemplo, xp, p=0,5, suponiendo b o n tambien requiere transformacion adicional), y la informacion acerca de factores de escala (por ejemplo, sb, sn, etc.). La informacion de factor de escala puede ser tambien un factor de escala y una relacion (por ejemplo, sb, sb/sn, etc.). Con un factor de escala de vector y una relacion, el decodificador tendra suficiente informacion para calcular el otro factor de escala.
Mejora de banda base ejemplar
Bajo ciertas condiciones, tales como aplicaciones de baja tasa de bits, la misma banda base puede no codificarse bien (por ejemplo, varios coeficientes cero consecutivos o entremezclados). En un ejemplo de este tipo, la banda base representa picos de buena intensidad, pero no representa bien varianzas sutiles a coeficientes que representan intensidades inferiores entre picos. En un caso de este tipo, los picos de una palabra de codigo desde la misma la banda base se seleccionan como un primer vector (por ejemplo, b), y los coeficientes cero, o coeficientes relativos muy bajos se sustituyen por un segundo vector (por ejemplo, n) que se asemeja mas estrechamente a la baja energla entre picos. Por lo tanto, el metodo de dos palabras de codigo puede usarse en la banda base o subbanda de la banda base, para proporcionar mejora de banda base. Como anteriormente, la regla usada para seleccionar el primer o segundo vector, puede ser expllcita y enviarse al decodificador, o ser impllcita. En algunos casos el segundo vector puede proporcionarse mejor mediante una palabra de codigo de ruido.
Transformaciones ejemplares
Una banda base, banda previa y otro libro de codigos proporcionan una biblioteca de coeficientes consecutivos, sirviendo cada coeficiente potencialmente como el primer coeficiente en una serie de coeficientes consecutivos que puede servir como una palabra de codigo. Una palabra de codigo de mejor coincidencia en la biblioteca se identifica y envla a un decodificador, junto con un factor de escala, y se usa mediante el decodificador para crear una subbanda en la subbanda extendida.
Opcionalmente, una o mas palabras de codigo en la biblioteca se transforman para proporcionar un universo mayor de palabras de codigo disponibles para hallar una mejor coincidencia para una forma que se esta codificando. En matematicas, existe un universo de transformaciones lineales y no lineales para formas, vectores y matrices. Por ejemplo, un vector puede invertirse, negarse a traves de un eje, y una forma puede modificarse de otra manera con transformaciones lineales y no lineales tal como aplicando funciones de ralz, exponentes, etc. Se realiza una busqueda en la biblioteca de palabras de codigo, que incluye aplicar una o mas transformaciones lineales o no lineales en las palabras de codigo, y se identifica una palabra de codigo de coincidencia mas cercana, junto con cualquier transformacion. Un identificador de una mejor coincidencia, palabra de codigo, un factor de escala y un identificador de transformacion se envlan a un decodificador. Un decodificador recibe la informacion y reconstruye una subbanda en la banda extendida.
Opcionalmente, un codificador selecciona dos o mas palabras de codigo que juntas representan mejor una subbanda que se esta codificando y/o mejorando. Se usa una regla para seleccionar o intercalar posiciones de coeficiente individuales en la subbanda que se esta codificando. La regla es impllcita o expllcita. La subbanda que se esta codificando puede estar en la banda extendida, o puede ser una subbanda en la banda base que se esta mejorando. Las dos o mas palabras de codigo que se estan usando pueden provenir de una banda base o cualquier otro libro de codigos, y una o mas de las palabras de codigos puede transferirse lineal o no linealmente.
Coincidencia de envolvente ejemplar
Una senal denominada “una envolvente” (por ejemplo, Env(i)) se genera ejecutando una media ponderada en la senal de entrada x(i) (por ejemplo, audio, video, etc.) como sigue:
L
Env(i) = wU) | x(i + j) \
v=-L
donde w(j) es una funcion de ponderacion (actualmente una forma de triangulo) y L es el numero de coeficientes vecinos a reconstruirse en el analisis ponderado. Anteriormente, se analizo el ejemplo de una busqueda exhaustiva usando un universo de palabras de codigo de entrada, transformacion de exponente (0,5, 1,0, 2,0), negacion de
5
10
15
20
25
30
35
40
coeficiente (signo +/-) y direccion de coeficiente de palabra de codigo (hacia delante, inversa). En lugar de un mejor 'Q' numero de palabras de codigo se seleccionan en primer lugar (combinaciones de palabra de codigo, exponente, signo y/o direccion) usando una distancia euclldea entre las envolventes de la subbanda que se esta codificando y la palabra de codigo. Las versiones no cuantificadas originales de las palabras de codigos pueden ser utiles para medir la distancia euclldea de la envolvente. A partir de estos Q candidatos mas cercanos determinados basandose en la distancia euclldea, se selecciona una mejor coincidencia. Opcionalmente, despues de que se consideren las envolventes, un metodo (tal como como se ha descrito anteriormente metodos de comparacion de palabras de codigos) puede devolver para examinar cual de los Q candidatos se adapta mejor.
Modificacion de palabra de codigo ejemplar
Dado un libro de codigos que consiste en vectores de codigo, se propone una modificacion de los vectores de codigo en el libro de codigos de manera que pueden representar mejor el vector que se esta codificando. La modificacion de libro de codigo/palabra de codigo puede consistir en cualquier combinacion de una o mas de las siguientes transformaciones.
• Transformacion lineal aplicada a un vector de codigo.
• Transformacion no lineal aplicada a un vector de codigo.
• Combinar mas de un vector de codigo para obtener un nuevo vector de codigo (los vectores que se combinan pueden provenir desde el mismo libro de codigos, diferentes libros de codigos o ser aleatorios).
• Combinar un vector de codigo con una codificacion de base.
Se usa la informacion relacionada con la transformacion, si la hubiera, y cuales vectores de codigo se usan en la transformacion se envlan al decodificador en el flujo de bits o se calculan en el decodificador usando el conocimiento que ya tenia (datos que ya ha decodificado). Un vector es tipicamente una cierta banda de coeficientes espectrales que sean de codificar.
Se proporcionan tres ejemplos en particular para modificaciones de palabra de codigo:
(1) exponenciacion aplicada a cada componente del vector (transformacion no lineal),
(2) combinacion de dos (o mas) vectores para formar un nuevo vector, donde cada uno de los dos vectores se usa para representar porciones del vector que tienen diferentes caracteristicas, y (3) combinar un vector de codigo con una codificacion de base. En el siguiente analisis, se usara v para representar el vector a codificar, x sera el vector de codigo o palabra de codigo que se esta usando para codificar v, e y seran el vector de codigo modificado. El vector v se codificara usando una aproximacion v' = Sx, donde S es un factor de escala. El factor de escala usado es una version cuantificada de la relacion de potencia entre v y x,
imagen2
donde Q(.) es cuantificacion, e ||.|| representa la norma, que es la potencia en el vector. Se envia una version cuantificada de la potencia en el vector original. El decodificador calcula el factor de escala para usar dividiendo la potencia en el vector de codigo.
Transformacion no lineal ejemplar
Un primer ejemplo consiste en aplicar un exponente a cada componente en el vector de codigo. La Tabla 3 proporciona una transformacion no lineal de una serie de coeficientes en una palabra de codigo.
Tabla 3
Palabra de codigo
1 2 3 2 1 1 2 3
Transformacion
1 4 9 4 1 1 4 9
En este ejemplo, cada coeficiente en una palabra de codigo (vector de codigo) se eleva a la potencia de un exponente dos (x2). En un ejemplo de este tipo, si la forma de la palabra de codigo transformada es un mejor ajuste
5
10
15
20
25
30
para un vector a codificar, entonces el codificador proporcionara una identification de la palabra de codigo y la transformation que conduce a una mejor coincidencia.
El exponente puede enviarse al decodificador usando un numero fijo de bits, o puede enviarse desde un libro de codigos de exponentes, o puede calcularse impllcitamente en el decodificador usando datos previamente observados. Por ejemplo, para un vector L dimensional, sean los componentes del vector de codigo de orden 'i' en un libro de codigos xi[0], xi[1], ..., xi[L-1]. A continuation, la exponentiation aplica un exponente 'p' para modificar el vector para obtener un nuevo vector yi,
ytU\ = (*,[/])'» Para./ = 0.1.....1
donde 'j' es el Indice de componente. Esta transformacion no lineal permite que un vector de codigo que tiene picos se use para codificar un vector que no tiene usando un valor de p que es menor de 1. De manera similar, permite que se use un vector de codigo no de picos para representar uno con picos usando p > 1.
La Figura 9 es un grafico de un vector ejemplar que no representa picos de manera distinta.
La Figura 10 es un grafico de la Figura 9 con distintos picos creado mediante transformacion exponencial.
Como un ejemplo, vease la Figura 9 y Figura 10. En la Figura 9, un vector que es bastante aleatorio y se muestra que no tiene picos distintos. Cuando se aplica un exponente p=5, entonces la Figura 10 representa mejor los picos deseados. De manera similar, si el vector de codigo original que se mostro en la Figura 10, entonces un exponente p=1/5=0,2, proporcionarla la Figura 9. El factor de escala del curso se recalcula puesto que la norma (o energla) en el vector de codigo ha cambiado durante la transformacion de x a y. En particular, S=Q(||v||)/||y|| se usa ahora por el factor de escala. El factor de escala real que se envla Q(||v||) no cambia con el exponente, pero el decodificador tiene que calcular un factor de escala diferente debido al cambio en la potencia en el vector de codigo.
Una palabra de codigo puede tener varios exponentes aplicados en ella, proporcionando cada uno diferentes resultados. El metodo usado para calcular el mejor exponente es hallar un exponente de manera que el histograma (o funcion de masa de probabilidad (pmf)) de los valores a traves del vector de codigo coincidan mejor el del vector real. Para hacer esto, se calcula una varianza de los valores de slmbolo tanto para el vector como el vector de codigo usando exponenciacion. Por ejemplo, supongase que el conjunto de posibles exponentes es pk, donde k se usa para indexar el conjunto de posibles exponentes, k=0,1,....,P-1. Entonces se calcula el segundo momento normalizado sobre de la media para el vector de codigo resultante de cada posible exponente (V*), y se compara al vector real (V).
imagen3
imagen4
Se elige el mejor exponente para minimizar la diferencia entre V* y V, y se proporciona mediante pb, donde b se define como:
b — argminfl V - Vk j)
k
Como se ha indicado previamente, un exponente de mejor coincidencia puede hallarse tambien usando una busqueda exhaustiva.
Modificacion de palabra de codigo ejemplar mediante combinacion
Otra transformacion combina multiples vectores para formar un nuevo vector de codigo. Esto es esencialmente una 5 codificacion de multiples etapas, donde en cada etapa se halla una coincidencia que coincide mejor con la porcion mas importante del vector no codificado aun. Como un ejemplo para dos vectores, hallamos en primer lugar la mejor coincidencia y a continuacion observamos cual porcion del vector se esta codificando bien. La segmentation puede enviarse expilcitamente, pero esta puede tomar demasiados bits. Por lo tanto, la segmentacion se proporciona impllcitamente, en un ejemplo, indicando que porcion del vector usar. La porcion restante se representa a 10 continuacion usando cualquiera de un vector de codigo aleatorio, u otro vector de codigo desde un libro de codigos que representa los componentes restantes mejor. Siendo x un primer vector de codigo, y siendo w un segundo vector de codigo. Especificando el conjunto T la porcion del vector que se considera para codificarse usando el primer vector de codigo. La cardinalidad del ajuste T sera entre 0 y L, es decir tendra entre 0 y L elementos que representan los Indices del vector que se consideran para codificarse usando este primer vector de codigo. Se 15 proporciona una regla para figurar cuales componentes se representan bien mediante el primer vector y la regla puede usar metricas, tales como, determinar si un coeficiente potencial es mayor que un cierto porcentaje del coeficiente maximo en el primer vector. Por lo tanto, para cualquier coeficiente en el primer vector que esta dentro de un porcentaje del coeficiente mas alto en el primer vector, ese coeficiente se tomara desde el primer vector, sino, ese coeficiente de palabra de codigo se toma desde la segunda palabra de codigo. Siendo M el valor maximo en el 20 primer vector de codigo x. Entonces el conjunto T puede definirse usando lo siguiente:
T = O': x[j] > aM, j = 0,1,...L -1}
3
donde 'a' es alguna constante entre 0 y 1. Por ejemplo, si a=0, entonces cualquier valor distinto de 0 se considera que pertenece al conjunto T de vectores codificados. Si a=1-e, entonces unicamente se considera el mismo valor maximo para codificarse, si e se toma para que sea suficientemente pequeno. Entonces dado el conjunto T, un 25 conjunto N es el complementario y el conjunto restante tomado desde el vector w, como sigue:
imagen5
Por lo tanto, se toma un coeficiente x[j] desde x o w dependiendo del valor de aM. Observese que N o T pueden dividirse adicionalmente usando otras reglas similares para obtener mas de dos vectores. Dados T y N como los conjuntos de Indices codificados usando el primer vector de codigo (x) y el segundo vector de codigo (w) 30 respectivamente, se define un nuevo vector:
imagen6
donde Sx y Sw son los factores de escala para x y w, respectivamente. Puesto que se envla tlpicamente un factor de escala para todo el vector de codigo, que representa una version cuantificada de la potencia en todo el vector que se esta codificando, una relation entre los dos factores de escala (Sw/Sx) ademas del factor de escala para todo el 35 vector de codigo necesita enviarse en este caso. En general, si se crea un vector usando 'm' vectores de codigo, entonces tendrlan que enviarse 'm' factores de escala que incluyen el del vector entero. Por ejemplo, para el caso de dos vectores, observese que,
imagen7
Suponiendo vt y vn se definen como los dos vectores, entonces su potencia puede definirse como,
imagen8
5
10
15
20
25
30
35
40
45
donde |T| y |N| son la cardinalidad de los dos conjuntos (el numero de elementos). Dados los valores para ||v|| (la potencia total en el vector), y ||vn|| (la potencia en el segundo componente del vector), un decodificador puede calcular,
imagen9
Por lo tanto, si se envla una version cuantificada de la potencia en el conjunto N (Q(||vn||), y se envla la potencia total Q(||v||), es suficiente informacion para el decodificador.
Es importante observar que, usando el mismo vector de codigo x para realizar la segmentacion, el codificador evita tener que enviar ninguna informacion relacionada con la segmentacion puesto que el coeficiente seleccionado desde cada vector x y w esta impllcito en las reglas (por ejemplo, x[j] > aM). Incluso en casos cuando el Indice del vector de codigo o vector de movimiento que corresponde a x no se envla (es un vector de codigo aleatorio), la segmentacion de los conjuntos T y N puede coincidirse entre codificador y decodificador usando un vector aleatorio siendo el estado del generador de vector aleatorio determinlstico basandose en informacion que tienen tanto el codificador como el decodificador. Por ejemplo, el vector aleatorio puede determinarse usando alguna combinacion de los bits menos significativos (LSB) de datos que se han codificado y enviarse al decodificador (tal como en la banda base codificada) y a continuacion usar esos para sembrar un generador de numeros pseudoaleatorios. De esta manera la segmentacion puede controlarse impllcitamente incluso si no se envla el vector de codigo real.
Esta transformacion combinando dos vectores permite mejor representacion del vector que se ha de codificar. El vector w puede provenir de un libro de codigos y puede enviarse un Indice para representarlo, o puede ser aleatorio, caso en el que no es necesario que se envle informacion adicional. Observese que en el ejemplo dado anteriormente, la segmentacion es impllcita puesto que se hace usando una regla de comparacion en los coeficientes (por ejemplo, x[j] > aM) usando el vector x, por lo que no necesita enviarse informacion con respecto a la segmentacion. Esta transformacion es util cuando el vector a codificarse tiene dos distribuciones diferentes.
La Figura 11 es un grafico de una palabra de codigo segun se compara a la banda que esta modelando. En este ejemplo (1100), el vector de codigo se ha elegido para coincidir mejor los picos en el vector. Sin embargo, aunque los picos estan bien coincididos, el resto del vector no tiene potencia similar. La porcion restante del vector de codigo tiene mucho menos potencia con relacion a los picos que lo que tiene el vector real. Esto da como resultado artefactos de compresion perceptibles. Sin embargo, cuando se selecciona la porcion de v que se codifico bien mediante el vector de codigo del primer vector y a continuacion se aplica un segundo vector de codigo a la porcion restante, se obtiene un resultado mucho mejor.
La Figura 12 es un grafico de una palabra de codigo transformada segun se compara a la subbanda que esta modelando. La subbanda modelada se modela mediante una palabra de codigo creada desde dos palabras de codigo.
La Figura 13 es un grafico de una palabra de codigo, una subbanda a codificarse mediante la palabra de codigo, una version cambiada de escala de la palabra de codigo, y una version modificada de la palabra de codigo.
Modificacion de palabra de codigo ejemplar mediante operaciones selectivas
Una version alternativa de los vectores de codigos multiple (por ejemplo, multiples palabras de codigo) anade el primer vector de codigo en lugar de sustituirlo para ciertos coeficientes seleccionados. Esto puede hacerse aplicando la siguiente ecuacion:
imagen10
Mejora ejemplar de la banda base
En este ejemplo, un vector de codigo se combina con una codificacion de base. Esto es similar al enfoque de dos vectores (o multiples vectores), excepto que el primer vector x es tanto el vector que se esta codificando y se usa el mismo como uno de los dos vectores para codificarse a si mismo. Por ejemplo, una codificacion de base se modifica para incluir aquellos coeficientes donde la codificacion de base esta funcionando bien y se toman mejores coeficientes desde el segundo vector, como anteriormente. Para cada vector (subbanda) que se codifique, si ya
existe una codificacion de base, esta codificacion de base entonces es el primer vector de codigo en el esquema de vector multiple, donde se segmenta en regiones T y N (o mas regiones). La segmentacion (por ejemplo, seleccion de coeficiente) puede proporcionarse usando las mismas tecnicas que en el enfoque de vector de codigo multiple.
Por ejemplo, para cada codificacion de base, si hay algun coeficiente con un valor de 0, todos estos iran entonces al 5 conjunto N que se codifican a continuacion mediante una capa de mejora (por ejemplo, segundo vector). Un metodo de este tipo puede usarse para rellenar grandes huecos espectrales que resultan a menudo de codificar a tasas de bits muy bajas. Las modificaciones pueden incluir no rellenar huecos o coeficientes 'cero' a menos que no sean mayores que algun umbral, cuando pueda definirse el umbral para que sea un cierto numero de Hercios (Hz) o coeficientes (coeficientes multiples de cero). Puede haber tambien limitaciones sobre no rellenar huecos que estan 10 por debajo de una cierta frecuencia. Estas limitaciones modifican las reglas de segmentacion impllcitas proporcionadas anteriormente (por ejemplo, x[j] > aM, etc.). Por ejemplo, si se proporciona un umbral 'T' en un tamano mlnimo de un hueco espectral, entonces este esencialmente cambia la definicion del conjunto N a lo siguiente:
N = {j : x[j -K] < aM&&x[j-K + l] < aM & &K & &x[j -K + T -1] < aM,
' j = 0,1,..., Z -1}
15 para algun K entre 0,...,T-1. Por lo que para que x[j] este en el conjunto N, tiene que ser parte de un grupo de T coeficientes consecutivos, todos los cuales tienen un valor menor que o igual a (aM). Este puede calcularse en dos etapas, calcular en primer lugar para cada coeficiente si su valor es menor que el umbral, y a continuacion agruparlos juntos para observar si cumplen los requisitos 'consecutivos'. Para un hueco espectral verdadero de tamano T, a=0. Otras condiciones tales como restricciones de frecuencia minima se anaden a la restriccion adicional 20 para que pertenezcan al conjunto N, j > Tminfreq.
Las reglas anteriores proporcionan un filtro que requiere que multiples coeficientes en una fila (por ejemplo, T coeficientes consecutivos) satisfagan la condicion x[j] < aM, antes de que la regla senalice sustituir los coeficientes por valores desde el segundo vector.
Otra modificacion que puede necesitar realizarse es debido al hecho de que la codificacion de base tambien codifica 25 los canales despues de aplicar una transformacion de canal. Por lo tanto, despues de una transformacion de canal la codificacion de base y codificacion de mejora pueden tener diferentes agrupaciones de canal. Por lo que, en lugar de simplemente mirar en la codificacion de base para el canal particular despues de que se aplican las mejoras, la segmentacion puede mirar en mas del canal de codificacion base. Esto de nuevo modifica la restriccion de segmentacion. Por ejemplo, supongase que los canales 0 y 1 estan codificados conjuntamente. Entonces la regla 30 para aplicar la mejora se cambia a lo siguiente. Para aplicar la mejora, el hueco espectral tiene que estar presente en ambos canales de banda base codificados puesto que ambos canales codificados contribuyen a ambos canales reales.
Optimizacion de segmentacion de subbandas ejemplar
La buena segmentacion de frecuencia es importante para la calidad de codificar datos espectrales. La segmentacion 35 implica descomponer los datos espectrales en unidades denominadas subbandas o vectores. Una segmentacion sencilla es dividir uniformemente el espectro en un numero deseado de segmentos homogeneos o subbandas. La segmentacion homogenea puede ser suboptima. Puede haber regiones del espectro que puedan representarse con tamanos mas grandes de subbanda, y otras regiones se representan mejor con tamanos de subbanda mas pequenos. Se describen diversas caracterlsticas para proporcionar intensidad de datos espectrales dependiendo de 40 la segmentacion. Se proporciona segmentacion mas precisa para regiones de varianza espectral mayor y se proporciona segmentacion mas basta para regiones mas homogeneas. Por ejemplo, inicialmente se proporciona una segmentacion por defecto o inicial, y una configuracion de optimizacion o posterior varla la segmentacion basandose en una varianza de intensidad de datos espectrales.
Segmentacion por defecto ejemplar
45 Los datos espectrales se segmentan inicialmente en subbandas. Opcionalmente, una segmentacion inicial puede variarse para producir una segmentacion optima o posterior. Dos segmentaciones iniciales o por defecto de este tipo se denominan una segmentacion de division uniforme y una configuracion de division no uniforme. Estas u otras configuraciones de subbanda pueden proporcionarse inicialmente o por defecto. Opcionalmente, la configuracion inicial o por defecto puede reconfigurarse para proporcionar una configuracion de subbanda posterior.
50 Dados los datos espectrales de L coeficientes espectrales, una segmentacion de division uniforme de M subbandas de datos se identifica con la siguiente ecuacion:
5
10
15
20
25
30
35
40
imagen11
Por ejemplo, si los L coeficientes espectrales se etiquetan como puntos como 0, 1, L-1, entonces las M
subbandas se inician en los sj] coeficientes en los datos espectrales. Por lo tanto, la subbanda de orden 'j' tiene coeficientes de s[j] a s[j+1]-1, j=0,1,...,M-1, con un tamano de subbanda de s[j+1]-s[j] coeficientes.
La segmentacion de division no uniforme se hace de una manera similar, excepto que se proporcionan multiplicadores de subbanda. Un multiplicador de subbanda se define para cada una de las M subbandas, a[j], j=0, 1, ..., M-1. Ademas, se proporciona un multiplicador acumulativo como sigue:
J-1 k*=0
El punto de inicio para las subbandas en la configuracion del caso de division no uniforme se define como:
sO‘] = round^|^j, j = 0,1,..., Af - l,M
De nuevo, la subbanda de orden 'j' incluye los coeficientes de s[j] a s[j+1]-1, donde j = 0, 1,..., M-1, con un tamano de subbanda de s[j+1] - s[j] coeficientes. La configuracion no uniforme tiene tamanos de subbanda que aumentan con la frecuencia, pero puede ser cualquier configuracion. Ademas, si es deseable, puede predeterminarse, de modo que no necesita enviarse informacion adicional para describirla. Para el caso no uniforme por defecto, se proporciona un ejemplo de multiplicadores de subbanda como sigue:
a — (1, 1,2, 2y 4, 4, 4,4, 8, 8, 8, 8, 8, 8S 8, 8,...}
Por lo tanto, el multiplicador de tamano de banda no uniforme por defecto es una configuracion de division donde los tamanos de banda son monotonicamente no decrecientes (las primeras pocas subbandas son mas pequenas, y las subbandas de frecuencia mas alta son mas grandes). Las subbandas de frecuencia mas alta a menudo tienen menos variacion para empezar, por lo que menos subbandas mas grandes pueden capturar la escala y forma de la banda. Adicionalmente, las subbandas de frecuencia mas alta tienen menos importancia en la distorsion perceptual global puesto que tienen menos energfa y son perceptualmente menos importantes para el ofdo humano. Observese que la division uniforme puede explicarse tambien usando multiplicadores de subbanda, excepto que a[j] = 1 para toda j.
Aunque una segmentacion por defecto o inicial a menudo es suficiente para codificar datos espectrales, y de hecho el esquema no uniforme puede manejar un gran porcentaje de casos, hay senales que se benefician de una segmentacion optimizada. Para tales senales, se define una segmentacion que es similar al caso no uniforme, excepto que los multiplicadores de banda son en su lugar arbitrarios o fijos. Los multiplicadores de banda arbitrarios reflejan las divisiones y uniones de las subbandas. En un ejemplo, un codificador senaliza el decodificador con un primer bit que indica si la segmentacion esta fijada (por ejemplo, por defecto) o variable (por ejemplo, optimizada o modificada). Se proporciona un segundo bit para senalizar si la segmentacion inicial es division uniforme o una division no uniforme.
Segmentacion optimizada ejemplar
Empezando con una segmentacion por defecto (tal como una segmentacion uniforme o no uniforme), las subbandas se dividen o unen para obtener una segmentacion optimizada o uniforme. Se realiza una decision para dividir una subbanda en dos subbandas, o para unir dos subbandas en una subbanda. Una decision para dividir o unir puede basarse en diversas caracterfsticas de los datos espectrales dentro de una subbanda inicial, tal como una medicion de intensidad de cambio a traves de una subbanda. En un ejemplo, se realiza una decision para dividir o unir basandose en caracterfsticas de datos espectrales de subbanda tales como tonalidad u horizontalidad espectral en una subbanda.
En un ejemplo de este tipo, si la relacion de energfa es similar entre dos subbandas, y al menos una de las bandas no es tonal, entonces las dos subbandas adyacentes se unen. Esto es debido a que un vector de forma unica (por ejemplo, palabra de codigo) y un factor de escala probablemente seran suficientes para representar las dos subbandas. Un ejemplo de una relacion de energfa de este tipo se proporciona como sigue:
5
10
15
20
25
30
35
40
45
50
— —— > (1 - a) & & (Tonalidad 0 <T
max(£0,£,) V ' 0
Tonalidad , < T)
En este ejemplo, Eo es la energla en la subbanda 0, Ei es la energla en una subbanda adyacente 1, ‘a’ es un valor umbral constante (tlpicamente en el intervalo 0 < a < 1) y T es una metrica de comparacion de tonalidad. La medida de tonalidad (por ejemplo, Tonalidad 0) en una subbanda puede obtenerse usando diversos metodos analizando el espectro.
De manera similar, si dividir una unica subbanda en dos subbandas crea dos subbandas con energla distinta, entonces deberla realizarse la division. O, si dividir una subbanda crea dos subbandas que son intensamente tonales con diferentes caracterlsticas de forma, entonces la subbanda deberla dividirse. Por ejemplo, una condicion de este tipo se define como sigue:
ma—^ > (1 + b) j| (Tonalidad 0 > T && Tonalidad ,> T && forma diferente)
minCEo,^)
■ 3
donde ‘b es una constante mayor que cero. Por ejemplo, pueden definirse dos subbandas para tener diferente forma si la coincidencia de forma mejora significativamente cuando se divide la subbanda. En un ejemplo, una coincidencia de forma se considera mejor si las dos subbandas de division tienen una coincidencia de diferencia euclldea de media minima cuadratica (MSE) mucho inferior despues de la division, en comparacion con la coincidencia antes de la division. Por ejemplo, una subbanda se compara a una diversidad de palabras de codigo para determinar una palabra de codigo de mejor coincidencia para la subbanda unica. Entonces la subbanda se divide en dos bandas, cada subbanda comparada a (la mitad) palabras de codigo para hallar una mejor coincidencia para cada subbanda de la division. La MSE de las dos coincidencias de subbandas se compara a la MSE de la coincidencia de subbanda unica, y una coincidencia mejorada significativamente indica un valor de mejora de la tara extra de codificar una division. Por ejemplo, si una MSE mejora en el 20 % o mas, la division se considera eficaz. En este ejemplo, aunque no se requiere, la coincidencia de forma se hace relevante si ambas subbandas de division son tonales.
En un ejemplo, se ejecuta un algoritmo repetitivamente hasta que no se dividen o unen subbandas adicionales en una iteracion presente. Puede ser beneficioso etiquetar subbandas como division, union o en orden para reducir la posibilidad de un bucle infinito. Por ejemplo, si una subbanda esta marcada como una subbanda de division, entonces no se unira de vuelta con una subbanda desde la que se dividio. Un bloque que se marca como unido, no se dividira en la misma configuracion.
Se utilizan diversas metricas para calcular tonalidad, energla o forma diferente. Un vector de movimiento y una metrica de escala pueden usarse para codificar una subbanda extendida. Si dividir una subbanda en dos subbandas crea una energla significativamente diferente en el factor de escala (por ejemplo, > (1 + b), donde b es 0,2 - 0,5), entonces la subbanda puede dividirse. En un ejemplo, se calcula la tonalidad en el dominio de la transformada rapida de Fourier (FFT). Por ejemplo, una senal de entrada se divide en bloques fijos de 256 muestras, y se ejecuta la FFT en tres bloques de FFT adyacentes. Se realiza una media de tiempo en las tres salidas de FFT adyacentes para obtener una salida de FFT promediada en tiempo para el bloque actual. Se ejecuta un filtro de mediana sobre las tres salidas de FFT promediadas en tiempo para obtener una llnea de base. Si un coeficiente esta por encima de un cierto umbral por encima de la llnea de base, entonces el coeficiente se clasifica como tonal, y el porcentaje que esta por encima de la llnea de base es una medida de la tonalidad. Si el coeficiente esta por debajo del umbral, entonces no es tonal y la medida de la tonalidad es 0. La tonalidad para una pieza de frecuencia de tiempo particular se halla mapeando las dimensiones de la pieza a los bloques de FFT y acumulando la medida de tonalidad a traves del bloque. El umbral que un coeficiente tiene que estar por encima de la llnea de base puede definirse para que sea un umbral absoluto, una relacion con relacion a la llnea de base, o una relacion con relacion a la varianza de la llnea de base. Por ejemplo, si el coeficiente esta por encima de una desviacion tlpica local desde la llnea de base (mediana filtrada, tiempo promediado), puede clasificarse como que es tonal. En un caso de este tipo, la subbanda traducida correspondiente en la MLT que representa los bloques de FFT tonales se etiqueta como tonal, y puede dividirse. El analisis esta relacionado con la magnitud de la FFT en oposicion a la fase. Con respecto a la metrica de MSE en diferentes formas, una metrica de MSE mucho inferior puede variar sustancialmente la tasa de bits. Por ejemplo, con tasas de bits mas altas, si la MSE se reduce en aproximadamente el 20 %, entonces una determinacion de division puede tener sentido. Sin embargo, a tasas de bits mas bajas la decision de division puede tener lugar a una MSE el 50 % mas baja.
Multiplicador de banda variable y codificacion ejemplar
Despues de que las bandas se dividen y/o unen, se calcula la relacion entre el tamano de subbanda mas pequeno original y el nuevo tamano de subbanda mas pequeno. Se define una relacion como minRatioBandSize = max(1, tamano de subbanda mas pequeno original / nuevo tamano de subbanda mas pequeno). A continuation, la
subbanda optimizada con el tamano mas pequeno (por ejemplo, numero de coeficientes en la subbanda) se asigna un multiplicador de sub-banda de 1, y los otros tamanos de subbanda tienen un multiplicador de banda establecido como la funcion round(este tamano de subbanda / tamano de subbanda mas pequeno). Por lo tanto, los multiplicadores de sub-banda son enteros mayores que o iguales a 1, y minRatioBandSize es tambien un entero 5 mayor que o igual a 1. Los multiplicadores de sub-banda se codifican esencialmente codificando una diferencia entre el multiplicador de sub-banda esperado y el multiplicador de sub-banda optimizado usando un codigo de longitud variable sin tabla. Una diferencia de 0 se codifica con 1 bit, una diferencia que es una de las 15 diferencias mas pequenas posible excluyendo el 0 se codifica con 5 bits, y el resto de las diferencias se codifican usando un codigo sin tabla.
10 Como un ejemplo, considerese el siguiente caso donde los tamanos de subbanda para un caso no uniforme por defecto se proporcionan como se muestra en la Tabla 4.
Tabla 4
Tamanos de banda:
4 4 8 8 16 16 16
Multiplicadores de banda:
1 1 2 2 4 4 4
Supongase ademas, que despues de dividir/unir, se crea la siguiente configuracion de subbanda optimizada como se muestra en la Tabla 5.
Tabla 5
Tamanos de banda:
2 4 10 24 8 8 16
15
La Figura 14 es un diagrama de unas series ejemplares de transformaciones de tamano de subbanda. Por ejemplo, los tamanos de subbanda en la Tabla 5 pueden obtenerse desde la Tabla 4 mediante las transformaciones de la Figura 14.
Usar la formula anterior para minRatioBandSize = max(1, 4/2) = 2, se proporciona el tamano de subbanda de 20 relacion minima de 2, y pueden obtenerse los valores para multiplicadores de tamano de banda como se muestra en la Tabla 6.
Tabla 6
Tamanos de banda:
2 4 10 24 8 8 16
Multiplicador de banda:
1 2 5 12 4 4 8
minRatioBandSize:
2
Se usa un metodo para calcular el multiplicador de subbanda esperado. En primer lugar, supongase que los bloques que no estan divididos o unidos debieran tener el multiplicador de tamano de banda por defecto (multiplicador de 25 tamano de banda esperado = = multiplicador de tamano de banda real). Esto ahorra bits puesto que unicamente necesitan codificarse cambios desde el multiplicador de tamano de banda esperado. Ademas, cuanto menor es la modificacion desde la configuracion de banda por defecto, menos bits son necesarios para codificar la configuracion. De otra manera, el multiplicador de banda esperado se calcula en el decodificador usando la siguiente logica.
• Ver que subbanda en la configuracion por defecto estamos decodificando actualmente mirando en el punto de
30 inicio de la banda real y comparar con los puntos de inicio y final de las bandas en la configuracion de banda por
defecto.
• El multiplicador de banda esperado se calcula tomando el numero de coeficientes restantes en la banda en la configuracion por defecto y dividiendo por el tamano de bloque (subbanda) mas pequeno en la configuracion real.
35 Por ejemplo, siendo sd[j] la posicion de inicio de la banda de orden 'j' en la configuracion de banda por defecto, siendo sa[j] la posicion de inicio de la banda de orden 'j' en la configuracion de banda real, siendo md el tamano de banda mlnimo en el caso por defecto, y siendo ma el tamano de banda mlnimo en el caso real. A continuacion, calcular lo siguiente,
5
10
15
20
25
r =max(l,7rtd / mQ)
a[j] = [j +1] - s. [7]) I m„
9
donde 'r' es el minRatioBandSize, y a[j] es el multiplicador de banda para la banda de multiplicador esperado para la banda de orden 'j', calcular en primer lugar 'i', el indice de por defecto que contiene la posicion de inicio de la banda real. A continuacion, calcular multiplicador esperado de la banda de orden 'j'. Esto puede calcularse como sigue,
SaWZS'ifiKsjii + l]
L/3 - Orf [* + L/])*
Observese que si una banda no se divide o une, entonces el multiplicador de banda esperado sera el mismo que el real. Tambien, siempre que sd[i+1] sea el mismo que sa[j+1], entonces el multiplicador de banda esperado sera el mismo que el real.
Continuando con el ejemplo, se muestra una configuracion de subbanda por defecto en la Tabla 7.
orden 'j'. Para calcular el la configuracion de banda aexpected[j] para que sea el
Tabla 7
Tamanos de banda :
4 4 8 8 16 16 16
Indice de banda :
0 1 2 3 4 5 6
Punto de inicio :
0 4 8 16 24 40 56
Punto final :
4 8 16 24 40 56 72
Se muestran las subbandas reales u optimizadas como se mapean a la configuracion de banda por defecto en la Tabla 8.
Tabla 8
Tamanos de banda :
2 4 10 24 8 8 16
Multiplicador de banda :
1 2 5 12 4 4 8
Punto de inicio :
0 2 6 16 40 48 56
Indice de Banda por defecto :
0 0 1 3 5 5 6
Coeficientes restantes :
4 2 2 16 16 8 16
Multiples bandas esperadas :
2 1 1 8 8 4 8
Diferencia :
-1 1 4 4 -4 0 0
El Indice de Banda por Defecto es el valor de 'i' para una j dada. Coeficientes restantes es sd[i+1] - sa[j]. El Multiplicador de Banda Esperado es aexpeted[j], y el Multiplicador de Banda es a[j]. De nuevo, observese que cualquier subbanda que no se divida o se una siempre tendra una diferencia de 0. La codificacion codificara el valor de “Diferencia” para cada subbanda y el minRatioBandSize ('r') para la configuracion usando un codigo de longitud variable para cada una. El uso de minRatioBandSize permite codificar una configuracion de banda en la que las bandas mas pequenas son mas pequenas que las bandas en la configuracion por defecto.
Entorno informatico
La Figura 15 ilustra un ejemplo generalizado de un entorno (1500) informatico adecuado en el que pueden implementarse las realizaciones ilustrativas. El entorno (1500) informatico no se pretende para sugerir ninguna limitacion en cuanto al alcance de uso o funcionalidad de la invencion, ya que la presente invention puede
5
10
15
20
25
30
35
40
45
implementarse en diversos entornos informaticos de fin general o de fin especial.
Con referencia a la Figura 15, el entorno (1500) informatico incluye al menos una unidad (1510) de procesamiento y memoria (1520). En la Figura 15, esta configuracion (1530) mas basica se incluye con una llnea discontinua. La unidad (1510) de procesamiento ejecuta instrucciones ejecutables por ordenador y puede ser un procesador real o uno virtual. En un sistema multi-procesamiento, multiples unidades de procesamiento ejecutan instrucciones ejecutables por ordenador para aumentar la potencia de procesamiento. La memoria (1520) puede ser memoria volatil (por ejemplo, registros, cache, RAM), memoria no volatil (por ejemplo, ROM, EEPROM, memoria flash, etc.), o alguna combinacion de las dos. La memoria (1520) almacena software (1580) que implementa un codificador y/o decodificador de audio.
Un entorno informatico puede tener caracterlsticas adicionales. Por ejemplo, el entorno (1500) informatico incluye el almacenamiento (1540), uno o mas dispositivos (1550) de entrada, uno o mas dispositivos (1560) de salida, y una o mas conexiones (1570) de configuracion. Un mecanismo de interconexion (no mostrado) tal como un bus, controlador o red interconecta los componentes del entorno (1500) informatico. Tlpicamente, el software de sistema operativo (no mostrado) proporciona un entorno operativo para que otro software se ejecute en el entorno (1500) informatico, y coordina las actividades de los componentes del entorno (1500) informatico.
El almacenamiento (1540) puede ser extralble o no extralble, e incluye discos magneticos, cintas o casetes magneticos, CD-ROM, CD-RW, DVD o cualquier otro medio que pueda usarse para almacenar informacion y que pueda accederse en el entorno (1500) informatico. El almacenamiento (1540) almacena instrucciones para que el software (1580) implemente el codificador y/o decodificador de audio.
El dispositivo o dispositivos (1550) de entrada pueden ser un dispositivo de entrada tactil tal como un teclado, raton, lapicero o bola de mando, un dispositivo de entrada de voz, un dispositivo de exploracion u otro dispositivo que proporcione entrada al entorno (1500) informatico. Para audio, el dispositivo o dispositivos (1550) de entrada pueden ser una tarjeta de sonido o dispositivo similar que acepte entrada de audio en forma analogica o digital. El dispositivo o dispositivos (1560) de salida pueden ser una pantalla, impresora, altavoz u otro dispositivo que proporcione salida desde el entorno (1500) informatico.
La conexion o conexiones (1570) de comunicacion posibilitan la comunicacion a traves de un medio de comunicacion a otra entidad informatica. El medio de comunicacion transporta informacion tal como instrucciones ejecutables por ordenador, informacion de audio o video comprimido u otros datos en una serial de datos modulada. Una serial de datos modulada es una serial que tiene una o mas de sus caracterlsticas establecidas o cambiadas de tal manera para codificar informacion en la serial. A modo de ejemplo, y no como limitacion, los medios de comunicacion incluyen tecnicas alambricas o inalambricas implementadas con un soporte electrico, optico, de RF, de infrarrojos, acustico u otro.
La invencion puede describirse en el contexto general de medio legible por ordenador. Medio legible por ordenador es cualquier medio disponible que pueda accederse dentro de un entorno informatico. A modo de ejemplo, y no como limitacion, con el entorno (1500) informatico, medio legible por ordenador incluye la memoria (1520), almacenamiento (1540), medio de comunicacion y combinaciones de cualquiera de lo anterior.
La invencion puede describirse en el contexto general de instrucciones ejecutables por ordenador, tales como aquellas incluidas en modulos de programa, que se ejecutan en un entorno informatico en un procesador real o virtual objetivo. En general, los modulos de programa incluyen rutinas, programas, bibliotecas, objetos, clases, componentes, estructuras de datos, etc., que realizan tareas particulares o implementan tipos de datos abstractos particulares. La funcionalidad de los modulos de programa puede combinarse o dividirse entre modulos de programa segun se desee en diversas realizaciones. Las instrucciones ejecutables por ordenador para modulos de programa pueden ejecutarse dentro de un entorno informatico local o distribuido.
Para fines de presentation, la description detallada usa terminos como “determinar”, “obtener”, “ajustar” y “aplicar”, para describir operaciones informaticas en un entorno informatico. Estos terminos son abstracciones de alto nivel para operaciones realizadas mediante un ordenador, y no deberlan confundirse con actos realizados por un ser humano. Las operaciones informaticas reales que corresponden a estos terminos pueden variar dependiendo de la implementation.

Claims (17)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    REIVINDICACIONES
    1. Un metodo de codificacion de audio, que comprende:
    transformar una senal de audio de entrada en un conjunto de coeficientes espectrales;
    codificar una porcion de banda base del conjunto de coeficientes espectrales en el flujo de bits de salida;
    dividir una banda extendida de los coeficientes espectrales en diversas subbandas;
    cambiar de escala las diversas subbandas en la banda extendida;
    transformar al menos una palabra de codigo desde una biblioteca de palabras de codigo;
    comparar el conjunto de coeficientes espectrales de una subbanda a al menos unas palabras de codigo transformadas desde la biblioteca;
    codificar los coeficientes espectrales de la subbanda en un flujo de bits de salida que comprende codificar un identificador de una o mas palabras de codigo desde la biblioteca y un identificador de transformador.
  2. 2. El metodo de codificacion de audio de la reivindicacion 1, que comprende adicionalmente:
    comparar el conjunto de coeficientes espectrales de la subbanda con al menos una palabra de codigo desde la biblioteca que no se ha transformado, en el que la biblioteca comprende diversas palabras de codigo desde la porcion de banda base.
  3. 3. El metodo de codificacion de audio de la reivindicacion 1, en el que las transformaciones disponibles para transformar al menos una palabra de codigo desde la biblioteca comprenden una o mas de las siguientes transformaciones:
    aplicar un exponente a cada coeficiente de una palabra de codigo;
    negar cada coeficiente de una palabra de codigo; o
    invertir el orden de los coeficientes en una palabra de codigo.
  4. 4. El metodo de codificacion de audio de la reivindicacion 1, en el que transformar al menos una palabra de codigo desde la biblioteca comprende crear una palabra de codigo con coeficientes desde dos o mas palabras de codigo que comprende:
    desde todas menos la palabra de codigo final, seleccionar coeficientes que satisfacen una regla; desde una palabra de codigo final, proporcionar los otros coeficientes.
  5. 5. El metodo de codificacion de audio de la reivindicacion 1, en el que la biblioteca comprende adicionalmente palabras de codigo desde un libro de codigos de ruido o una palabra de codigo rellenada usando un generador de numeros aleatorio sembrado de manera determinativa.
  6. 6. El metodo de codificacion de audio de la reivindicacion 1, en el que codificar los coeficientes espectrales de la subbanda incluye proporcionar un identificador de dos o mas palabras de codigo y el identificador de transformation comprende al menos uno de una indication de exponente, una indication de signo, una indication de direction o una ordenacion de identificadores de palabra de codigo en el flujo de bits de salida, indicando la ordenacion una selection impllcita de coeficientes.
  7. 7. El metodo de codificacion de audio de la reivindicacion 1, en el que codificar los coeficientes espectrales de la subbanda en el flujo de bits de salida incluye un identificador de dos o mas palabras de codigo y el identificador de transformacion es un identificador de una regla expllcita para seleccion de coeficientes desde las dos o mas palabras de codigo.
  8. 8. El metodo de codificacion de audio de la reivindicacion 1, en el que la al menos una palabra de codigo transformada comparada desde la biblioteca son dos o mas palabras de codigo creadas usando una transformacion exponencial de una palabra de codigo coincidente mas cercana desde la biblioteca.
    5
    10
    15
    20
    25
    30
    35
  9. 9. El metodo de codificacion de audio de la reivindicacion 8, en el que la palabra de codigo coincidente mas cercana desde la biblioteca se identifica usando una comparacion de media minima cuadratica y las dos o mas palabras de codigo creadas desde la transformacion exponencial se comparan usando una funcion de masa de probabilidad.
  10. 10. El metodo de codificacion de audio de la reivindicacion 1, en el que las palabras de codigo comparadas comprenden diversas palabras de codigo desde la biblioteca y comparar el conjunto de coeficientes espectrales de la subbanda con la al menos una palabra de codigo transformada desde la biblioteca comprende una busqueda exhaustiva en las palabras de codigo de la biblioteca y las transformaciones de la misma que comprenden negacion, direccion inversa y transformaciones exponenciales usando dos o mas exponentes.
  11. 11. El metodo de codificacion de audio de la reivindicacion 1, en el que transformar al menos una palabra de codigo desde la biblioteca comprende crear una palabra de codigo con coeficientes desde dos o mas palabras de codigo que comprende:
    desde una primera palabra de codigo, seleccionar coeficientes que satisfacen una regla; y
    para coeficientes en la primera palabra de codigo que no satisfacen la regla, realizar una operacion matematica para crear otros coeficientes, comprendiendo la operacion matematica un operador y diversos operandos,
    siendo un primer operando un coeficiente desde la primera palabra de codigo que no satisface la regla, y
    siendo un segundo operando un coeficiente obtenido desde una segunda palabra de codigo.
  12. 12. El metodo de codificacion de audio de la reivindicacion 1, que comprende adicionalmente preseleccionar palabras de codigo antes de comparar la subbanda con palabras de codigo, comprendiendo la preseleccion:
    crear una envolvente que comprende ejecutar una funcion de media ponderada en una senal de audio; y
    determinar las palabras de codigo preseleccionadas comparando la envolvente con la subbanda.
  13. 13. El metodo de codificacion de audio de la reivindicacion 12, en el que comparar la envolvente con la subbanda comprende adicionalmente:
    transformar la envolvente usando una o mas transformaciones que comprenden una transformacion de negacion, una transformacion inversa o una transformacion exponencial; y
    en el que comparar la envolvente con la subbanda comprende determinar una distancia euclldea.
  14. 14. Un metodo de decodificacion de audio que comprende: decodificar coeficientes espectrales codificados en un flujo de bits; y decodificar una o mas subbandas codificadas en el flujo de bits que comprende, determinar uno o mas identificadores de palabra de codigo para cada subbanda, obtener la una o mas palabras de codigo determinadas para cada subbanda, y para al menos una subbanda, determinar una regla de transformacion,
    para la al menos una subbanda, transformar una palabra de codigo obtenida para la subbanda usando la regla de transformacion.
  15. 15. El metodo de decodificacion de audio de la reivindicacion 14, en el que la regla de transformacion determinada comprende una o mas de las siguientes transformaciones:
    aplicar un exponente a cada coeficiente de una palabra de codigo;
    negar cada coeficiente de una palabra de codigo; o
    invertir el orden de coeficientes en una palabra de codigo.
  16. 16. El metodo de decodificacion de audio de la reivindicacion 14, en el que la regla de transformacion determinada
    5
    10
    15
    crea una palabra de codigo desde dos o mas palabras de codigo que comprende:
    de todas menos la palabra de codigo final, seleccionar coeficientes que satisfacen una regla; y
    desde una palabra de codigo final, proporcionar los otros coeficientes.
  17. 17. Un codificador de audio que comprende:
    un transformador para transformar un bloque de senal de audio de entrada en coeficientes espectrales;
    un codificador de base para codificar valores de una porcion de banda base de coeficientes espectrales en un flujo de bits;
    un divisor para dividir una porcion de coeficientes espectrales en subbandas; un cambiador de escala para cambiar de escala subbandas;
    un comparador para comparar coeficientes espectrales de las subbandas con palabras de codigo desde una biblioteca de palabras de codigo;
    un codificador (350) de banda extendida para codificar coeficientes espectrales de las subbandas en el flujo de bits, en el que una codificacion de los coeficientes espectrales para una subbanda comprende un identificador de una palabra de codigo y un exponente para transformar la palabra de codigo identificada.
ES06787180.6T 2005-07-15 2006-07-14 Modificación de palabras de código en diccionario usado para codificación eficaz de datos espectrales de medio digital Active ES2627212T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US183084 2005-07-15
US11/183,084 US7562021B2 (en) 2005-07-15 2005-07-15 Modification of codewords in dictionary used for efficient coding of digital media spectral data
PCT/US2006/027238 WO2007011657A2 (en) 2005-07-15 2006-07-14 Modification of codewords in dictionary used for efficient coding of digital media spectral data

Publications (2)

Publication Number Publication Date
ES2627212T3 true ES2627212T3 (es) 2017-07-27
ES2627212T8 ES2627212T8 (es) 2017-09-04

Family

ID=37662735

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06787180.6T Active ES2627212T3 (es) 2005-07-15 2006-07-14 Modificación de palabras de código en diccionario usado para codificación eficaz de datos espectrales de medio digital

Country Status (11)

Country Link
US (1) US7562021B2 (es)
EP (1) EP1905011B1 (es)
JP (1) JP5456310B2 (es)
KR (1) KR101330362B1 (es)
CN (1) CN101223582B (es)
AU (1) AU2006270263B2 (es)
CA (1) CA2612474C (es)
ES (1) ES2627212T3 (es)
MX (1) MX2008000528A (es)
NO (1) NO340485B1 (es)
WO (1) WO2007011657A2 (es)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240001B2 (en) 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
ATE543179T1 (de) * 2002-09-04 2012-02-15 Microsoft Corp Entropische kodierung mittels anpassung des kodierungsmodus zwischen niveau- und lauflängenniveau-modus
US7460990B2 (en) 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
GB2427803A (en) * 2005-06-29 2007-01-03 Symbian Software Ltd E-mail/text message compression using differences from earlier messages or standard codebooks with specific message supplements
KR101171098B1 (ko) * 2005-07-22 2012-08-20 삼성전자주식회사 혼합 구조의 스케일러블 음성 부호화 방법 및 장치
US7688231B2 (en) * 2005-08-29 2010-03-30 Mrv Communications, Inc. Transmission of pathological data patterns
US20070271250A1 (en) * 2005-10-19 2007-11-22 Monro Donald M Basis selection for coding and decoding of data
US8126706B2 (en) * 2005-12-09 2012-02-28 Acoustic Technologies, Inc. Music detector for echo cancellation and noise reduction
US8332216B2 (en) * 2006-01-12 2012-12-11 Stmicroelectronics Asia Pacific Pte., Ltd. System and method for low power stereo perceptual audio coding using adaptive masking threshold
US8674855B2 (en) * 2006-01-13 2014-03-18 Essex Pa, L.L.C. Identification of text
US7783079B2 (en) * 2006-04-07 2010-08-24 Monro Donald M Motion assisted data enhancement
US7586424B2 (en) * 2006-06-05 2009-09-08 Donald Martin Monro Data coding using an exponent and a residual
US7770091B2 (en) * 2006-06-19 2010-08-03 Monro Donald M Data compression for use in communication systems
US20070290899A1 (en) * 2006-06-19 2007-12-20 Donald Martin Monro Data coding
US7845571B2 (en) * 2006-06-19 2010-12-07 Monro Donald M Data compression
US7689049B2 (en) * 2006-08-31 2010-03-30 Donald Martin Monro Matching pursuits coding of data
US7508325B2 (en) * 2006-09-06 2009-03-24 Intellectual Ventures Holding 35 Llc Matching pursuits subband coding of data
US7974488B2 (en) * 2006-10-05 2011-07-05 Intellectual Ventures Holding 35 Llc Matching pursuits basis selection
US20080084924A1 (en) * 2006-10-05 2008-04-10 Donald Martin Monro Matching pursuits basis selection design
FR2912249A1 (fr) * 2007-02-02 2008-08-08 France Telecom Codage/decodage perfectionnes de signaux audionumeriques.
US7707214B2 (en) 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location with indirect addressing
US7707213B2 (en) * 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location
US20080205505A1 (en) * 2007-02-22 2008-08-28 Donald Martin Monro Video coding with motion vectors determined by decoder
US10194175B2 (en) 2007-02-23 2019-01-29 Xylon Llc Video coding with embedded motion
JP4871894B2 (ja) * 2007-03-02 2012-02-08 パナソニック株式会社 符号化装置、復号装置、符号化方法および復号方法
GB0704622D0 (en) * 2007-03-09 2007-04-18 Skype Ltd Speech coding system and method
US8046214B2 (en) * 2007-06-22 2011-10-25 Microsoft Corporation Low complexity decoder for complex transform coding of multi-channel sound
US7885819B2 (en) 2007-06-29 2011-02-08 Microsoft Corporation Bitstream syntax for multi-process audio decoding
WO2009038422A2 (en) * 2007-09-20 2009-03-26 Lg Electronics Inc. A method and an apparatus for processing a signal
US8249883B2 (en) 2007-10-26 2012-08-21 Microsoft Corporation Channel extension coding for multi-channel source
GB2454190A (en) * 2007-10-30 2009-05-06 Cambridge Silicon Radio Ltd Minimising a cost function in encoding data using spectral partitioning
EP2220646A1 (en) * 2007-11-06 2010-08-25 Nokia Corporation Audio coding apparatus and method thereof
US20100250260A1 (en) * 2007-11-06 2010-09-30 Lasse Laaksonen Encoder
RU2483368C2 (ru) * 2007-11-06 2013-05-27 Нокиа Корпорейшн Кодер
KR100926566B1 (ko) * 2007-12-06 2009-11-12 한국전자통신연구원 연판정값 산출 방법 및 송신 신호 검출 방법
KR20090110244A (ko) * 2008-04-17 2009-10-21 삼성전자주식회사 오디오 시맨틱 정보를 이용한 오디오 신호의 부호화/복호화 방법 및 그 장치
KR20090110242A (ko) * 2008-04-17 2009-10-21 삼성전자주식회사 오디오 신호를 처리하는 방법 및 장치
KR101599875B1 (ko) * 2008-04-17 2016-03-14 삼성전자주식회사 멀티미디어의 컨텐트 특성에 기반한 멀티미디어 부호화 방법 및 장치, 멀티미디어의 컨텐트 특성에 기반한 멀티미디어 복호화 방법 및 장치
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
US7786903B2 (en) * 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7864086B2 (en) * 2008-10-06 2011-01-04 Donald Martin Monro Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems
US7786907B2 (en) * 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7791513B2 (en) 2008-10-06 2010-09-07 Donald Martin Monro Adaptive combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US8898057B2 (en) * 2009-10-23 2014-11-25 Panasonic Intellectual Property Corporation Of America Encoding apparatus, decoding apparatus and methods thereof
TR201907767T4 (tr) * 2011-04-15 2019-06-21 Ericsson Telefon Ab L M Uyarlamalı kazanç-form hızı paylaşımı.
CN105825859B (zh) * 2011-05-13 2020-02-14 三星电子株式会社 比特分配、音频编码和解码
WO2013061531A1 (ja) * 2011-10-28 2013-05-02 パナソニック株式会社 音声符号化装置、音声復号装置、音声符号化方法及び音声復号方法
US9161035B2 (en) 2012-01-20 2015-10-13 Sony Corporation Flexible band offset mode in sample adaptive offset in HEVC
CN103297182A (zh) * 2012-03-02 2013-09-11 中兴通讯股份有限公司 频谱感知测量数据的发送方法及装置
KR102379609B1 (ko) 2012-10-01 2022-03-28 지이 비디오 컴프레션, 엘엘씨 향상 레이어 모션 파라미터들에 대한 베이스-레이어 힌트들을 이용한 스케일러블 비디오 코딩
CN105976824B (zh) 2012-12-06 2021-06-08 华为技术有限公司 信号解码的方法和设备
CN110867190B (zh) 2013-09-16 2023-10-13 三星电子株式会社 信号编码方法和装置以及信号解码方法和装置
CN110808056B (zh) 2014-03-14 2023-10-17 瑞典爱立信有限公司 音频编码方法和装置
BR112017000629B1 (pt) 2014-07-25 2021-02-17 Fraunhofer-Gesellschaft Zur Förderung Der Angewandten Forschug E.V. aparelho de codificação de sinal de áudio e método de codificação de sinal de áudio
CN111968655B (zh) 2014-07-28 2023-11-10 三星电子株式会社 信号编码方法和装置以及信号解码方法和装置
US9553611B2 (en) * 2014-11-27 2017-01-24 Apple Inc. Error correction coding with high-degree overlap among component codes
JP2016153933A (ja) * 2015-02-20 2016-08-25 株式会社リコー 画像処理装置、画像処理システム、画像処理方法、プログラム、及び記録媒体
DE102016104665A1 (de) 2016-03-14 2017-09-14 Ask Industries Gmbh Verfahren und Vorrichtung zur Aufbereitung eines verlustbehaftet komprimierten Audiosignals
US10355712B2 (en) * 2017-03-31 2019-07-16 Sandisk Technologies Llc Use of multiple codebooks for programming data in different memory areas of a storage device
US10230395B2 (en) * 2017-03-31 2019-03-12 Sandisk Technologies Llc Determining codebooks for different memory areas of a storage device
US10236909B2 (en) * 2017-03-31 2019-03-19 Sandisk Technologies Llc Bit-order modification for different memory areas of a storage device
EP3413308A1 (en) * 2017-06-07 2018-12-12 Nokia Technologies Oy Efficient storage of multiple structured codebooks
US10586546B2 (en) 2018-04-26 2020-03-10 Qualcomm Incorporated Inversely enumerated pyramid vector quantizers for efficient rate adaptation in audio coding
US10573331B2 (en) * 2018-05-01 2020-02-25 Qualcomm Incorporated Cooperative pyramid vector quantizers for scalable audio coding
US10666289B1 (en) 2019-01-16 2020-05-26 International Business Machines Corporation Data compression using dictionary encoding

Family Cites Families (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023910A (en) * 1988-04-08 1991-06-11 At&T Bell Laboratories Vector quantization in a harmonic speech coding arrangement
US5539829A (en) * 1989-06-02 1996-07-23 U.S. Philips Corporation Subband coded digital transmission system using some composite signals
US5040217A (en) * 1989-10-18 1991-08-13 At&T Bell Laboratories Perceptual coding of audio signals
JP2560873B2 (ja) * 1990-02-28 1996-12-04 日本ビクター株式会社 直交変換符号化復号化方法
US5388181A (en) * 1990-05-29 1995-02-07 Anderson; David J. Digital audio compression system
JP3033156B2 (ja) * 1990-08-24 2000-04-17 ソニー株式会社 ディジタル信号符号化装置
EP0520068B1 (en) * 1991-01-08 1996-05-15 Dolby Laboratories Licensing Corporation Encoder/decoder for multidimensional sound fields
WO1992021101A1 (en) * 1991-05-17 1992-11-26 The Analytic Sciences Corporation Continuous-tone image compression
KR100268623B1 (ko) * 1991-06-28 2000-10-16 이데이 노부유끼 압축 데이타 기록 재생 장치 및 신호 처리 방법
US5369724A (en) * 1992-01-17 1994-11-29 Massachusetts Institute Of Technology Method and apparatus for encoding, decoding and compression of audio-type data using reference coefficients located within a band of coefficients
EP0559348A3 (en) * 1992-03-02 1993-11-03 AT&T Corp. Rate control loop processor for perceptual encoder/decoder
DE4209544A1 (de) * 1992-03-24 1993-09-30 Inst Rundfunktechnik Gmbh Verfahren zum Übertragen oder Speichern digitalisierter, mehrkanaliger Tonsignale
US5295203A (en) * 1992-03-26 1994-03-15 General Instrument Corporation Method and apparatus for vector coding of video transform coefficients
JP3186307B2 (ja) * 1993-03-09 2001-07-11 ソニー株式会社 圧縮データ記録装置及び方法
US5581653A (en) * 1993-08-31 1996-12-03 Dolby Laboratories Licensing Corporation Low bit-rate high-resolution spectral envelope coding for audio encoder and decoder
US5737720A (en) * 1993-10-26 1998-04-07 Sony Corporation Low bit rate multichannel audio coding methods and apparatus using non-linear adaptive bit allocation
KR960012475B1 (ko) 1994-01-18 1996-09-20 대우전자 주식회사 디지탈 오디오 부호화장치의 채널별 비트 할당 장치
JP2956473B2 (ja) * 1994-04-21 1999-10-04 日本電気株式会社 ベクトル量子化装置
EP0738441B1 (en) * 1994-11-04 2002-03-13 Koninklijke Philips Electronics N.V. Encoding and decoding of a wideband digital information signal
US5654702A (en) * 1994-12-16 1997-08-05 National Semiconductor Corp. Syntax-based arithmetic coding for low bit rate videophone
JPH08179800A (ja) * 1994-12-26 1996-07-12 Matsushita Electric Ind Co Ltd 音声符号化装置
GB9512284D0 (en) * 1995-06-16 1995-08-16 Nokia Mobile Phones Ltd Speech Synthesiser
DE19549621B4 (de) * 1995-10-06 2004-07-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Codieren von Audiosignalen
US5819215A (en) * 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5777678A (en) * 1995-10-26 1998-07-07 Sony Corporation Predictive sub-band video coding and decoding using motion compensation
US5956674A (en) * 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
US5686964A (en) * 1995-12-04 1997-11-11 Tabatabai; Ali Bit rate control mechanism for digital image and video data compression
US6449596B1 (en) * 1996-02-08 2002-09-10 Matsushita Electric Industrial Co., Ltd. Wideband audio signal encoding apparatus that divides wide band audio data into a number of sub-bands of numbers of bits for quantization based on noise floor information
JP3353267B2 (ja) * 1996-02-22 2002-12-03 日本電信電話株式会社 音響信号変換符号化方法及び復号化方法
US5852806A (en) * 1996-03-19 1998-12-22 Lucent Technologies Inc. Switched filterbank for use in audio signal coding
SE506341C2 (sv) * 1996-04-10 1997-12-08 Ericsson Telefon Ab L M Metod och anordning för rekonstruktion av en mottagen talsignal
DE19628292B4 (de) * 1996-07-12 2007-08-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zum Codieren und Decodieren von Stereoaudiospektralwerten
DE19628293C1 (de) * 1996-07-12 1997-12-11 Fraunhofer Ges Forschung Codieren und Decodieren von Audiosignalen unter Verwendung von Intensity-Stereo und Prädiktion
US5870480A (en) * 1996-07-19 1999-02-09 Lexicon Multichannel active matrix encoder and decoder with maximum lateral separation
US6697491B1 (en) * 1996-07-19 2004-02-24 Harman International Industries, Incorporated 5-2-5 matrix encoder and decoder system
US5886276A (en) * 1997-01-16 1999-03-23 The Board Of Trustees Of The Leland Stanford Junior University System and method for multiresolution scalable audio signal encoding
US20010017941A1 (en) * 1997-03-14 2001-08-30 Navin Chaddha Method and apparatus for table-based compression with embedded coding
SE512719C2 (sv) * 1997-06-10 2000-05-02 Lars Gustaf Liljeryd En metod och anordning för reduktion av dataflöde baserad på harmonisk bandbreddsexpansion
US6073092A (en) 1997-06-26 2000-06-06 Telogy Networks, Inc. Method for speech coding based on a code excited linear prediction (CELP) model
DE19730129C2 (de) 1997-07-14 2002-03-07 Fraunhofer Ges Forschung Verfahren zum Signalisieren einer Rauschsubstitution beim Codieren eines Audiosignals
JPH11122120A (ja) * 1997-10-17 1999-04-30 Sony Corp 符号化方法及び装置、並びに復号化方法及び装置
US6959220B1 (en) * 1997-11-07 2005-10-25 Microsoft Corporation Digital audio signal filtering mechanism and method
JP3344962B2 (ja) * 1998-03-11 2002-11-18 松下電器産業株式会社 オーディオ信号符号化装置、及びオーディオ信号復号化装置
US6029126A (en) * 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6115689A (en) * 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
US7272556B1 (en) * 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
SE519552C2 (sv) 1998-09-30 2003-03-11 Ericsson Telefon Ab L M Flerkanalig signalkodning och -avkodning
CA2252170A1 (en) * 1998-10-27 2000-04-27 Bruno Bessette A method and device for high quality coding of wideband speech and audio signals
US6498865B1 (en) * 1999-02-11 2002-12-24 Packetvideo Corp,. Method and device for control and compatible delivery of digitally compressed visual data in a heterogeneous communication network
US6778709B1 (en) * 1999-03-12 2004-08-17 Hewlett-Packard Development Company, L.P. Embedded block coding with optimized truncation
MY149792A (en) * 1999-04-07 2013-10-14 Dolby Lab Licensing Corp Matrix improvements to lossless encoding and decoding
US6226616B1 (en) * 1999-06-21 2001-05-01 Digital Theater Systems, Inc. Sound quality of established low bit-rate audio coding systems without loss of decoder compatibility
US6604070B1 (en) * 1999-09-22 2003-08-05 Conexant Systems, Inc. System of encoding and decoding speech signals
FI19992351A (fi) * 1999-10-29 2001-04-30 Nokia Mobile Phones Ltd Puheentunnistus
US6601032B1 (en) * 2000-06-14 2003-07-29 Intervideo, Inc. Fast code length search method for MPEG audio encoding
JP4508490B2 (ja) 2000-09-11 2010-07-21 パナソニック株式会社 符号化装置および復号化装置
US6760698B2 (en) * 2000-09-15 2004-07-06 Mindspeed Technologies Inc. System for coding speech information using an adaptive codebook with enhanced variable resolution scheme
JP3557164B2 (ja) 2000-09-18 2004-08-25 日本電信電話株式会社 オーディオ信号符号化方法及びその方法を実行するプログラム記憶媒体
US7003467B1 (en) * 2000-10-06 2006-02-21 Digital Theater Systems, Inc. Method of decoding two-channel matrix encoded audio to reconstruct multichannel audio
US6463408B1 (en) 2000-11-22 2002-10-08 Ericsson, Inc. Systems and methods for improving power spectral estimation of speech signals
KR100433516B1 (ko) * 2000-12-08 2004-05-31 삼성전자주식회사 트랜스코딩 방법
CN1248544C (zh) * 2000-12-22 2006-03-29 皇家菲利浦电子有限公司 多通道音频转换器及其方法
US7062445B2 (en) * 2001-01-26 2006-06-13 Microsoft Corporation Quantization loop with heuristic approach
EP1231793A1 (en) * 2001-02-09 2002-08-14 STMicroelectronics S.r.l. A process for changing the syntax, resolution and bitrate of MPEG bitstreams, a system and a computer program product therefor
GB0108080D0 (en) * 2001-03-30 2001-05-23 Univ Bath Audio compression
EP1386312B1 (en) 2001-05-10 2008-02-20 Dolby Laboratories Licensing Corporation Improving transient performance of low bit rate audio coding systems by reducing pre-noise
JP4506039B2 (ja) 2001-06-15 2010-07-21 ソニー株式会社 符号化装置及び方法、復号装置及び方法、並びに符号化プログラム及び復号プログラム
JP3926726B2 (ja) * 2001-11-14 2007-06-06 松下電器産業株式会社 符号化装置および復号化装置
EP1444688B1 (en) * 2001-11-14 2006-08-16 Matsushita Electric Industrial Co., Ltd. Encoding device and decoding device
US7240001B2 (en) * 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
US7146313B2 (en) * 2001-12-14 2006-12-05 Microsoft Corporation Techniques for measurement of perceptual audio quality
US7460993B2 (en) * 2001-12-14 2008-12-02 Microsoft Corporation Adaptive window-size selection in transform coding
US7027982B2 (en) * 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
US6934677B2 (en) * 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US7310598B1 (en) * 2002-04-12 2007-12-18 University Of Central Florida Research Foundation, Inc. Energy based split vector quantizer employing signal representation in multiple transform domains
US7158539B2 (en) * 2002-04-16 2007-01-02 Microsoft Corporation Error resilient windows media audio coding
US7447631B2 (en) * 2002-06-17 2008-11-04 Dolby Laboratories Licensing Corporation Audio coding system using spectral hole filling
US7072726B2 (en) * 2002-06-19 2006-07-04 Microsoft Corporation Converting M channels of digital audio data into N channels of digital audio data
US7043423B2 (en) * 2002-07-16 2006-05-09 Dolby Laboratories Licensing Corporation Low bit-rate audio coding systems and methods that use expanding quantizers with arithmetic coding
US7299190B2 (en) * 2002-09-04 2007-11-20 Microsoft Corporation Quantization and inverse quantization for audio
US20060106597A1 (en) * 2002-09-24 2006-05-18 Yaakov Stein System and method for low bit-rate compression of combined speech and music
US6965859B2 (en) * 2003-02-28 2005-11-15 Xvd Corporation Method and apparatus for audio compression
SG135920A1 (en) * 2003-03-07 2007-10-29 St Microelectronics Asia Device and process for use in encoding audio data
KR20060090984A (ko) * 2003-09-29 2006-08-17 코닌클리케 필립스 일렉트로닉스 엔.브이. 오디오 신호들을 엔코딩하는 방법 및 장치
US7447317B2 (en) * 2003-10-02 2008-11-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V Compatible multi-channel coding/decoding by weighting the downmix channel
CN100507485C (zh) * 2003-10-23 2009-07-01 松下电器产业株式会社 频谱编码装置和频谱解码装置
JP4009781B2 (ja) * 2003-10-27 2007-11-21 カシオ計算機株式会社 音声処理装置及び音声符号化方法
US7809579B2 (en) * 2003-12-19 2010-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Fidelity-optimized variable frame length encoding
US7460990B2 (en) * 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
US7805313B2 (en) * 2004-03-04 2010-09-28 Agere Systems Inc. Frequency-based coding of channels in parametric multi-channel coding systems
SE0400997D0 (sv) * 2004-04-16 2004-04-16 Cooding Technologies Sweden Ab Efficient coding of multi-channel audio
KR100634506B1 (ko) * 2004-06-25 2006-10-16 삼성전자주식회사 저비트율 부호화/복호화 방법 및 장치
US20060025991A1 (en) * 2004-07-23 2006-02-02 Lg Electronics Inc. Voice coding apparatus and method using PLP in mobile communications terminal
BRPI0514998A (pt) 2004-08-26 2008-07-01 Matsushita Electric Ind Co Ltd equipamento de codificação de sinal de canal múltiplo e equipamento de decodificação de sinal de canal múltiplo
US7630902B2 (en) * 2004-09-17 2009-12-08 Digital Rise Technology Co., Ltd. Apparatus and methods for digital audio coding using codebook application ranges
RU2007115914A (ru) * 2004-10-27 2008-11-10 Мацусита Электрик Индастриал Ко., Лтд. (Jp) Кодер звука и способ кодирования звука
SE0402652D0 (sv) * 2004-11-02 2004-11-02 Coding Tech Ab Methods for improved performance of prediction based multi- channel reconstruction
US7548853B2 (en) * 2005-06-17 2009-06-16 Shmunk Dmitry V Scalable compressed audio bit stream and codec using a hierarchical filterbank and multichannel joint coding
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7539612B2 (en) * 2005-07-15 2009-05-26 Microsoft Corporation Coding and decoding scale factor information
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding

Also Published As

Publication number Publication date
ES2627212T8 (es) 2017-09-04
CA2612474C (en) 2014-09-09
CA2612474A1 (en) 2007-01-25
US7562021B2 (en) 2009-07-14
NO20076260L (no) 2008-02-06
WO2007011657A3 (en) 2007-10-11
MX2008000528A (es) 2008-03-06
EP1905011A2 (en) 2008-04-02
WO2007011657A2 (en) 2007-01-25
AU2006270263A1 (en) 2007-01-25
US20070016414A1 (en) 2007-01-18
EP1905011A4 (en) 2012-05-30
KR101330362B1 (ko) 2013-11-15
CN101223582B (zh) 2011-05-11
JP5456310B2 (ja) 2014-03-26
AU2006270263B2 (en) 2011-01-06
NO340485B1 (no) 2017-05-02
JP2009501944A (ja) 2009-01-22
KR20080025404A (ko) 2008-03-20
CN101223582A (zh) 2008-07-16
EP1905011B1 (en) 2017-03-01

Similar Documents

Publication Publication Date Title
ES2627212T3 (es) Modificación de palabras de código en diccionario usado para codificación eficaz de datos espectrales de medio digital
KR101343267B1 (ko) 주파수 세그먼트화를 이용한 오디오 코딩 및 디코딩을 위한 방법 및 장치
ES2388942T3 (es) Codificación entrópica adaptando la codifidación entre modos de nivel y de longitud de serie/nivel
JP6262820B2 (ja) 広義知覚類似性(wide−sense perceptual similarity)を使用するデジタルメディアスペクトルデータの効率的な復号
ES2693051T3 (es) Aparato y procedimiento para generar una señal mejorada mediante el uso de relleno de ruido independiente