ES2635026T3 - Aparato y procedimiento de codificación, procesamiento y decodificación de envolvente de señal de audio por división de la envolvente de la señal de audio utilizando cuantización y codificación de distribución - Google Patents

Aparato y procedimiento de codificación, procesamiento y decodificación de envolvente de señal de audio por división de la envolvente de la señal de audio utilizando cuantización y codificación de distribución Download PDF

Info

Publication number
ES2635026T3
ES2635026T3 ES14728995.3T ES14728995T ES2635026T3 ES 2635026 T3 ES2635026 T3 ES 2635026T3 ES 14728995 T ES14728995 T ES 14728995T ES 2635026 T3 ES2635026 T3 ES 2635026T3
Authority
ES
Spain
Prior art keywords
envelope
signal envelope
value
audio signal
division
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
ES14728995.3T
Other languages
English (en)
Inventor
Tom BÄCKSTRÖM
Benjamin SCHUBERT
Markus Multrus
Sascha Disch
Konstantin Schmidt
Grzegorz PIETRZYK
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Application granted granted Critical
Publication of ES2635026T3 publication Critical patent/ES2635026T3/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/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/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/03Spectral prediction for preventing pre-echo; Temporary noise shaping [TNS], e.g. in MPEG2 or MPEG4
    • 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
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0016Codebook for LPC parameters

Landscapes

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

Abstract

Aparato para decodificación y obtener una envolvente de señal de audio reconstruida que comprende: un reconstructor de envolvente de señal (110) adaptado para generar la envolvente de señal de audio reconstruida en función de uno o más puntos de división y una interfaz de salida (120) adaptada para producir la salida de la envolvente de señal de audio reconstruida donde el reconstructor de envolvente de señal (110) está configurado para generar la envolvente de señal de audio reconstruida de modo que el/ los, uno o más, puntos de división dividen la envolvente de señal de audio reconstruida en dos o más partes de envolvente de señal de audio donde una regla de asignación predefinida define un valor de parte de envolvente de señal para cada una de las partes de envolvente de señal de las dos o más partes de envolvente de señal en función de dicha parte envolvente de señal y donde el reconstructor de envolvente de señal (110) está configurado para generar la envolvente de señal de audio reconstruida de modo que, para cada una de las dos o más partes de envolvente de señal el valor absoluto de su valor de parte de envolvente de señal es mayor que la mitad del valor absoluto del valor de parte de envolvente de señal de cada una de las partes de envolvente de señal.

Description

DESCRIPCION
Aparato y procedimiento de codificacion, procesamiento y decodificacion de envolvente de senal de audio por division de la envolvente de la senal de audio utilizando cuantizacion y codificacion de distribucion 5
[0001] La presente invention se refiere a un aparato y a un procedimiento de codificacion, procesamiento y decodificacion de una envolvente de una senal de audio y, en particular, a un aparato y a un procedimiento para codificacion, procesamiento y decodificacion de la envolvente de una senal de audio utilizando cuantizacion de distribucion y codificacion.
10
[0002] La codificacion predictiva lineal (LPC) es una herramienta basica para modelar la envolvente espectral del ancho de banda fundamental de los codecs de voz. El dominio mas comun de la cuantizacion de modelos LPC es el dominio de frecuencia del espectro de llneas (LSF). Esta basado en la descomposicion del polinomio LPC en dos polinomios cuyas ralces estan en el clrculo de radio unidad de modo que se puedan describir por sus angulos o
15 por sus frecuencias solamente.
[0003] El objetivo de la presente invencion es proporcionar ideas mejoradas para codificacion y decodificacion de envolvente de una senal de audio. El objetivo de la presente invencion se consigue con el aparato segun la reivindicacion 1, el aparato segun la reivindicacion 5, el aparato segun la reivindicacion 17 y el
20 procedimiento segun la reivindicacion 22, el procedimiento segun la reivindicacion 23, el procedimiento segun la reivindicacion 24 y el programa de ordenador segun la reivindicacion 25.
[0004] Se proporciona un aparato de decodificacion para obtener la envolvente de una senal de audio reconstruida. El aparato comprende un reconstructor de envolvente de senal para generar la envolvente de senal de
25 audio reconstruida en funcion de uno o mas puntos de division y una interfaz de salida para producir la salida de la envolvente de senal de audio reconstruida. El reconstructor de la envolvente de senal de audio esta configurado para generar la envolvente de senal de audio reconstruida de modo que el/ los, uno o mas, puntos de division divide/n la envolvente de senal de audio reconstruida en dos o mas partes de envolvente de senal de audio definiendo una regla de asignacion predefinida un valor de parte de envolvente de senal para cada parte de la 30 envolvente de senal de las dos o mas partes de envolvente de senal en funcion de dicha parte de envolvente senal. Ademas, el reconstructor de envolvente de senal esta configurado para generar la envolvente de senal de audio reconstruida de modo que para cada una de las dos o mas partes de envolvente de senal el valor absoluto de su valor de parte de envolvente senal es mayor que la mitad del valor absoluto del valor de la parte de la envolvente de senal de cada una de las otras partes de envolvente de senal.
35
[0005] De acuerdo con una realization el reconstructor de envolvente de senal, por ejemplo, esta configurado para generar la envolvente de senal de audio reconstruida de modo que para cada una de las dos o mas partes de envolvente de senal el valor absoluto de su valor de parte de envolvente de senal sea mayor que un 90% del valor absoluto del valor de parte de envolvente de senal de cada una de las otras partes de envolvente de senal.
40
[0006] En una realizacion el reconstructor de envolvente de senal puede, por ejemplo, estar configurado para generar la envolvente de senal de audio reconstruida de modo que para cada una de las dos o mas partes de la envolvente de senal, el valor absoluto del valor de la parte de envolvente de senal sea mayor que un 99% del valor absoluto del valor de parte de envolvente de senal de cada una de las otras partes de envolvente de senal.
45
[0007] En otra realizacion el reconstructor de envolvente de senal 110 puede, por ejemplo, estar configurado para generar la envolvente de senal de audio reconstruida de modo que el valor de parte de envolvente de senal de cada una de las dos o mas partes de envolvente de senal sea igual al valor de parte de envolvente senal de cada una de las otras partes de la envolvente la senal de las dos o mas partes de envolvente de la senal.
50
[0008] De acuerdo con una realizacion el valor de parte de envolvente de la senal de cada parte de envolvente de la senal de dos o mas de las partes de envolvente de senal puede, por ejemplo, depender de uno o mas valores de energla o de uno o mas valores de potencia de dicha parte de envolvente de la senal o que el valor de la parte de envolvente de la senal de cada parte de envolvente de la senal de las dos o mas partes de envolvente
55 de la senal dependa de cualquier otro valor adecuado para reconstruir un nivel original un objetivo de la envolvente de la senal de audio.
[0009] El escalado de la envolvente se puede hacer de varias maneras. Especlficamente puede corresponder a la energla de la senal, area espectral o similar (un valor absoluto) o puede ser un factor de escalado o de ganancia
(un valor relativo). As! se puede codificar como un valor absoluto o relativo o se puede codificar como diferencia con respecto a un valor anterior o una combinacion de valores anteriores. En algunos casos el escalado tambien puede ser irrelevante o deducirse de otros datos disponibles. La envolvente se reconstruira hasta el nivel original u objetivo. Asl, en general el valor de la parte de la envolvente de la senal depende de cualquier valor adecuado para 5 reconstruir el nivel original u objetivo de la envolvente de la senal de audio.
[0010] En una realizacion el aparato puede, por ejemplo, comprender ademas un decodificador de puntos de division para decodificar uno o mas puntos de division codificados en funcion de una regla de clasificacion para obtener la posicion de cada uno de los uno o mas puntos de division. El decodificador de puntos de division puede,
10 por ejemplo, estar configurado para analizar el numero total de posiciones que indique el numero total de posibles posiciones de puntos de division indicando el numero del/ de los, uno o mas, punto/s de division y el numero de estado de puntos de division. Ademas, el decodificador de puntos de division puede, por ejemplo, estar configurado para generar una indicacion de la posicion de cada uno de los uno o mas puntos de division utilizando el numero total de posiciones, el numero de puntos de division y el numero de estado de los puntos de division.
15
[0011] De acuerdo con una realizacion el reconstructor de envolvente de la senal puede, por ejemplo, estar configurado para generar la envolvente de senal de audio reconstruida en funcion del valor de energla total que indica la energla total de la envolvente de senal de audio reconstruida o en funcion de cualquier otro valor adecuado para reconstruir un nivel original u objetivo de la envolvente de la senal de audio.
20
[0012] Ademas, se proporciona un aparato para decodificacion y obtencion de una envolvente de senal de audio de acuerdo con otra realizacion. El aparato comprende un reconstructor de envolvente de senal para generar la envolvente de senal de audio reconstruida en funcion de uno o mas puntos de division y una interfaz de salida para producir la salida de la envolvente de senal de audio reconstruida. El reconstructor de la envolvente de la senal
25 esta configurado para generar la envolvente de la senal de audio reconstruida de modo que el/los, uno o mas, punto/s de division divide/n la envolvente de senal de audio reconstruida en una o mas partes de envolvente de senal de audio donde una regla de asignacion predefinida define un valor de parte de envolvente de la senal para cada parte de la envolvente de la senal de las dos o mas partes de envolvente de la senal en funcion de dicha parte de envolvente de la senal. Un valor de parte de envolvente predefinido se asigna a cada una de las dos o mas
30 partes de envolvente de senal. El reconstructor de envolvente de senal esta configurado para generar la envolvente de senal de audio reconstruida de modo que para cada parte de la envolvente de la senal de las dos o mas partes de la envolvente de la senal el valor absoluto del valor de la parte de la envolvente la senal de dicha parte de envolvente de senal sea mayor que un 90% del valor absoluto de un valor de parte de envolvente predefinido, que se asigna a dicha parte de envolvente de la senal, y de modo que el valor absoluto de dicho valor de parte de la
35 envolvente de la senal de dicha parte de envolvente de la senal sea inferior a 110% del valor absoluto de parte de la envolvente predefinido que se asigna a dicha parte de la envolvente de la senal.
[0013] En una realizacion el reconstructor de envolvente de la senal esta configurado para generar la
envolvente de la senal de audio reconstruida de modo que el valor de parte de envolvente de la senal de cada una
40 de las dos o mas partes de la envolvente de la senal es igual al valor de parte de la envolvente predefinido que se asigna a dicha parte de envolvente de la senal.
[0014] En una realizacion los valores de partes de envolvente predefinidas de al menos dos o mas partes de la envolvente de la senal son diferentes.
45
[0015] En otra realizacion el valor de parte de la envolvente predefinida de cada una de las partes de
envolvente de la senal difiere del valor de parte de la envolvente predefinida de cada una de las otras partes de la envolvente de la senal.
50 [0016] Ademas, se proporciona un aparato para reconstruir una senal de audio. El aparato comprende un
aparato para decodificar en funcion de una de las realizaciones mencionadas para obtener una envolvente de senal de audio de la senal de audio y un generador de senal para generar la senal de audio en funcion de la envolvente de senal de audio de la senal de audio y en funcion de otra caracterlstica de senal de audio siendo la caracterlstica de la senal adicional diferente de la envolvente de la senal de audio.
55
[0017] Ademas, se proporciona un aparato de codificacion de una envolvente de senal de audio. El aparato
comprende una interfaz de envolvente senal de audio para recibir la envolvente senal de audio y un calculador de puntos de division para determinar en funcion de una regla de asignacion predefinida, un valor de parte de envolvente de senal para al menos una parte de envolvente de senal de audio de dos o mas partes de envolvente
senal de audio para cada una de las, al menos dos, configuraciones de puntos de division. Cada una de las, al menos dos, configuraciones de puntos de division comprende uno o mas puntos de division donde el/ los, uno o mas puntos de division de cada una de las dos configuraciones de puntos de division divide la envolvente de la senal de audio en dos o mas partes de envolvente de senal de audio. El calculador de puntos de division esta configurado 5 para elegir, el/ los, uno o mas puntos de division de una de las, al menos dos, configuraciones de puntos de division como el/ los, uno o mas, puntos de division seleccionados para codificar la envolvente de la senal de audio estando configurado el calculador de puntos de division para elegir uno o mas puntos de division en funcion del valor de parte de la envolvente de la senal de cada una de la/ las, al menos una, parte/s de envolvente senal de audio de dos o mas partes de envolvente de senal de audio de cada una de las, al menos dos, configuraciones de puntos de 10 division.
[0018] De acuerdo con una realizacion el valor de parte de envolvente de la senal de cada parte de envolvente de la senal de dos o mas partes de envolvente de la senal puede, por ejemplo, depender de uno o mas valores de energla o de uno o mas valores de potencia de dicha parte envolvente de senal; o el valor de parte de
15 envolvente de senal de cada parte de envolvente de senal de dos o mas partes de envolvente de la senal depende de cualquier otro valor adecuado para reconstruir un nivel original u objetivo de la envolvente de la senal de audio.
[0019] Como se ha mencionado el escalado de la envolvente se puede hacer de varias maneras. Especlficamente se puede corresponder con la energla de la senal o el area espectral o similar (valor absoluto) o
20 puede ser un factor de escalado o de ganancia (valor relativo). Asl, se puede codificar como valor absoluto o relativo o se puede codificar como diferencia con respecto a un valor previo o a una combinacion de valores previos. En algunos casos el escalado tambien puede ser irrelevante o deducirse de otros datos disponibles. La envolvente se reconstruye hasta el nivel original u objetivo. Asl, en general la parte el valor de parte de la envolvente de la senal depende de cualquier valor adecuado para reconstruir el nivel original u objetivo de la envolvente de la senal de 25 audio.
[0020] En una realizacion el aparato puede, por ejemplo, ademas comprender un codificador de puntos de division para codificar la posicion de cada uno de los, uno o mas, puntos de division para obtener uno o mas puntos de division. El codificador de puntos de division puede estar, por ejemplo, configurado para codificar la posicion de
30 cada uno de los, uno o mas, puntos de division codificando el numero de estado de los puntos de division. Ademas, el codificador de puntos de division puede, por ejemplo, estar configurado para proporcionar el numero total de posiciones que indica el numero total de posibles posiciones de puntos de division y un numero de puntos de division que indique el numero de los, uno o mas, puntos de division. El numero de estado de puntos de division, el numero total de posiciones y el numero de puntos de division conjuntamente indican la posicion de cada uno de los, 35 uno mas, puntos de division.
[0021] De acuerdo con una realizacion el aparato puede, por ejemplo, comprender ademas un calculador de energla para determinar la energla total de la envolvente de la senal de audio y para codificar la energla total de la envolvente de la senal de audio o el aparato puede, por ejemplo, ademas estar configurado para determinar
40 cualquier otro valor adecuado para reconstruir un nivel original u objetivo de la envolvente de la senal de audio.
[0022] Ademas, se proporciona un aparato para codificacion de senal de audio. El aparato comprende un aparato para codificar, en funcion de una de las realizaciones mencionadas para codificar una envolvente de senal de audio de la senal de audio y un codificador de caracterlstica de senal de audio secundaria para codificar otra
45 caracterlstica de senal de audio siendo la caracterlstica de senal adicional diferente de la envolvente de senal de audio.
[0023] Ademas, se proporciona, un procedimiento para decodificar y obtener una envolvente senal de audio reconstruida. El procedimiento comprende:
50 - generar la envolvente de la senal de audio reconstruida en funcion de uno o mas puntos de division y - proporcionar como salida la envolvente de la senal de audio reconstruida
[0024] La generacion de la envolvente de la senal de audio reconstruida se hace de modo que uno o mas puntos de division dividan la envolvente de la senal de audio reconstruida en dos o mas partes de envolvente de
55 senal de audio definiendo una regla de asignacion predefinida un valor de parte de envolvente de senal para cada parte de envolvente de senal de las, dos o mas, partes de envolvente de senal en funcion de dicha parte de envolvente de senal. Ademas, la generacion de envolvente de senal de audio reconstruida se hace de modo que, para cada una de las dos o mas partes de envolvente de la senal el valor absoluto del valor de parte de envolvente de la senal sea mayor que la mitad del valor absoluto del valor de parte de envolvente de la senal de cada una de
las otras partes de envolvente de la senal.
[0025] Ademas, se proporciona un procedimiento de decodificacion para obtener la envolvente de la senal de audio reconstruida. El procedimiento comprende:
5 - generar la envolvente de la senal de audio reconstruida en funcion de uno o mas puntos de division y
- proporcionar como salida la envolvente de la senal de audio reconstruida
[0026] La generacion de la envolvente de la senal de audio reconstruida se hace de modo que uno o mas puntos de division dividan la envolvente de la senal de audio reconstruida en dos o mas partes de envolvente de
10 senal de audio donde una regla de asignacion predefinida define un valor de parte de envolvente de senal para cada parte de envolvente de senal de las dos o mas partes de envolvente de senal en funcion de dicha parte de envolvente de senal. Un valor de parte de envolvente predefinida se asigna a cada una de las dos o mas partes de envolvente de senal. Ademas, la generacion de la envolvente de la senal de audio reconstruida se hace de modo que para cada parte de envolvente de senal de las dos o mas partes de envolvente de senal el valor absoluto del 15 valor de parte de envolvente de dicha parte de envolvente de senal sea mayor que un 90% del valor absoluto del valor de parte de envolvente predefinida que se asigna a dicha parte de envolvente de senal y de modo que dicho valor absoluto de dicho valor de parte de envolvente de senal de la senal sea menor que un 110% del valor absoluto del valor de parte de envolvente predefinida que se asigna a dicha parte de envolvente de senal.
20 [0027] Ademas, se proporciona un procedimiento de codificacion de envolvente de senal de audio. El
procedimiento comprende:
- recibir la envolvente de la senal de audio
- determinar en funcion de una regla de asignacion predefinida un valor de parte de envolvente de senal para al menos una parte de la envolvente de la senal de audio de dos o mas partes de envolvente de la senal de audio para
25 cada una de las, al menos dos, configuraciones de puntos de division donde cada una de las, al menos dos, configuraciones de puntos de division comprende uno o mas puntos de division, donde uno o mas puntos de division de cada una de las dos o mas configuraciones de puntos de division divide la envolvente de senal de audio en dos o mas partes de envolvente de senal de audio y
- seleccionar el/los, uno o mas, punto/s de division de una de las, al menos dos, configuraciones de puntos de 30 division como el/ los, uno o mas, punto/s de division seleccionados para codificar la envolvente de senal de audio
donde la seleccion del/de los, uno o mas, puntos de division se hace en funcion del valor de parte de envolvente de senal de cada una de las, al menos dos, partes de envolvente de la senal de audio de cada una de las, al menos dos, configuraciones de puntos de division.
35 [0028] Ademas, se proporciona un programa de ordenador para realizar uno de los procedimientos
mencionados cuando se ejecutan en un ordenador o un procesador de senal.
[0029] Se proporciona un aparato para generar una envolvente senal de audio a partir de uno o mas valores de codificacion. El aparato comprende una interfaz de entrada para recibir el uno o mas valores de codificacion y un
40 generador de envolvente para generar la envolvente de la senal de audio en funcion dichos uno o mas valores de codificacion. El generador de envolvente esta configurado para generar una funcion de agregacion en funcion de dichos uno o mas valores de codificacion donde la funcion de agregacion comprende una pluralidad de puntos de agregacion y donde cada uno de los puntos de agregacion comprenden valor de argumento y un valor de agregacion donde la funcion de agregacion es monotona creciente y donde cada uno de dichos uno o mas valores 45 de codificacion indica al menos un valor de argumento y un valor de agregacion de cada de uno de los puntos de agregacion de la funcion de agregacion. Ademas, el generador de envolvente esta configurado para generar la envolvente de la senal de audio comprendiendo la envolvente de la senal de audio una pluralidad de puntos de envolvente donde cada uno de los puntos de envolvente comprende un valor de argumento y un valor de envolvente y donde el punto de envolvente de la envolvente de la senal de audio se asigna a cada uno de los puntos de 50 agregacion de la funcion de agregacion de modo que el valor del argumento de dicho punto de envolvente es igual al valor del argumento dicho punto de agregacion. Ademas, el generador de envolvente esta configurado para generar la envolvente de la senal de audio de modo que el valor de la envolvente de cada uno de los puntos de envolvente de la envolvente de la senal de audio depende del valor de agregacion de al menos un punto de agregacion de la funcion de agregacion.
55
[0030] De acuerdo con una realizacion, el generador de envolvente puede, por ejemplo, estar configurado para determinar la funcion de agregacion determinando uno de los puntos de agregacion para cada uno de los uno o mas valores de codificacion en funcion de dicho valor de codificacion y aplicando interpolacion para obtener una funcion de agregacion en funcion del punto de agregacion de cada uno de los uno o mas valores de codificacion.
[0031] En una realizacion, el generador de envolvente puede, por ejemplo, estar configurado, para determinar la derivada primera de la funcion de agregacion en una pluralidad de puntos de agregacion de la funcion de agregacion.
5
[0032] De acuerdo con una realizacion, el generador de envolvente puede, por ejemplo, estar configurado para generar la funcion de agregacion en funcion de los valores decodificacion de modo que la funcion de agregacion tenga una derivada primera continua.
10 [0033] En una realizacion, el generador de envolvente puede, por ejemplo, estar configurado para determinar
la envolvente de senal de audio aplicando la formula:
tilt (k) =
c(k +1) - c(k -1)
f (k +1) - f (k -1)
15 donde tilt(k) representa la derivada de la envolvente de la senal agregada en el k-simo valor de codificacion, donde c(k) es el valor agregado del k-simo punto de agregacion de la funcion de agregacion y donde f(k) es el valor de argumento del k-simo punto agregado de la funcion de agregacion.
[0034] De acuerdo con una realizacion, la interfaz de entrada puede estar configurada para recibir uno o mas 20 valores de division como uno o mas valores de codificacion. El generador de envolvente puede estar configurado
para generar la funcion de agregacion en funcion de uno o mas valores de division, donde cada uno de los uno mas valores de division indica el valor de agregacion de uno de los puntos de agregacion de la funcion de agregacion. Ademas, el generador de envolvente puede estar configurado para generar la envolvente de la senal de audio reconstruida de modo que el/los, uno o mas, punto/s de division divide la envolvente de la senal de audio 25 reconstruida en dos o mas partes de envolvente de senal de audio, donde una regla de asignacion predefinida define un valor de parte de envolvente de senal para cada parte de envolvente de senal de las dos o mas partes de envolvente de senal en funcion de dicha parte de envolvente de senal. Ademas, el generador de envolvente puede estar configurado para generar de la senal de audio reconstruida de modo que para cada una de las dos o mas partes de envolvente de senal el valor absoluto del valor de parte de envolvente de senal es mayor que la mitad del 30 valor absoluto del valor del parte de envolvente de senal de cada una de las otras partes de envolvente de senal.
[0035] Ademas, se proporciona un aparato para determinar uno o mas valores de codificacion para codificar
una envolvente de senal de audio. El aparato comprende un agregador para determinar un valor agregado para cada uno de los valores de la pluralidad de valores de argumento donde la pluralidad de valores de argumento esta
35 ordenada de modo que el primer valor de argumento de la pluralidad de valores de argumentos o bien precede o bien sucede a un segundo valor de argumento de la pluralidad de valores de argumento cuando dicho segundo valor de argumento es diferente al primer valor de argumento, donde un valor de envolvente se asigna a cada uno de los valores de argumento, donde el valor de envolvente de cada valor de argumento depende de la envolvente de la senal de audio y donde el agregador esta configurado para determinar el valor agregado de cada valor de 40 argumento de la pluralidad de valores de argumento en funcion del valor de la envolvente de dicho valor de argumento y en funcion del valor de la envolvente de cada uno de los valores de dicha pluralidad de valores de argumento que preceden a dicho valor de argumento. Ademas, el aparato comprende una unidad de codificacion para determinar uno mas valores de codificacion en funcion de uno o mas de los valores agregados de la pluralidad de valores de argumento.
45
[0036] De acuerdo con una realizacion el agregador puede estar, por ejemplo, configurado para determinar el valor agregado para cada valor de argumento de la pluralidad de valores de argumento sumando el valor de envolvente de dicho valor de argumento y los valores de envolvente de los valores de argumento que preceden a dicho valor de argumento.
50
[0037] En una realizacion, el valor de envolvente de cada uno de los valores de argumento puede, por ejemplo, indicar un valor de energla de una envolvente senal de audio que tenga la envolvente senal de audio como envolvente de senal.
55 [0038] De acuerdo con una realizacion el valor de envolvente de cada uno de los valores de argumento
puede, por ejemplo, indicar una potencia n-sima de un valor espectral de una envolvente de senal de audio que tenga la envolvente de senal de audio como envolvente de senal donde n es un entero par mayor que 0.
[0039] En una realizacion el valor de la envolvente de cada uno de los valores de argumento puede, por ejemplo, indicar una potencia n-sima de un valor de amplitud de una senal de audio que este representado en el dominio del tiempo de que tenga una envolvente de senal de audio como envolvente de senal, donde n es un entero par mayor que 0.
5
[0040] De acuerdo con una realizacion, la unidad de codificacion puede, por ejemplo, estar configurada para determinar dichos uno o mas valores de codificacion en funcion de uno o mas de los valores agregados de los valores de argumento y en funcion de un numero de valores de codificacion que indica cuantos valores hay que determinar con la unidad de codificacion como dichos uno o mas valores de codificacion.
10
[0041] En una realizacion, la unidad de codificacion puede, por ejemplo, estar configurada para determinar dichos uno o mas valores de codificacion segun la formula:
(
c(k) = min
J
V
a(J) - k
max(a)
N
\
y
15
donde c(k) indica el k-simo valor de codificacion a determinar por la unidad de codificacion y donde j es el j-simo valor de argumento de la pluralidad de valores de argumento, donde a(j) indica el valor agregado que se asigna al j- simo valor de argumento y donde max(a) indica el valor maximo de los valores agregados que se asigna a uno de los valores de argumento y donde ninguno de los valores agregados que se asignan a uno de los valores de 20 argumento es mayor que el valor maximo y donde la expresion
(
min
J V
a(J) - k
max(a)
N
\
y
25
30
35
40
f
indica el valor mlnimo de los valores de argumento para el que min
a(J) - k
max(a)
N
es minima.
y
[0042] Ademas, se proporciona un procedimiento para generar una envolvente de senal de audio a partir de
uno o mas valores de codificacion. El procedimiento comprende:
- recibir el/los, uno mas, valor/es de codificacion y
- generar la envolvente senal de audio en funcion de dicho/s, uno o mas, valor/es de codificacion
[0043] La generation de la envolvente de senal de audio se realiza generando una funcion de agregacion en
funcion de dichos uno mas valores de codificacion donde la funcion de agregacion comprende una pluralidad de puntos de agregacion y donde cada uno de los puntos de agregacion comprende un valor de argumento y un valor de agregacion, donde la funcion de agregacion es monotona creciente y donde cada uno de los uno mas valores de codificacion indica al menos un valor de argumento y un valor de agregacion de uno de los puntos de agregacion de la funcion de agregacion. Ademas, la generacion de envolvente de la senal de audio se realiza de modo que la envolvente de senal de audio comprende una pluralidad de puntos de envolvente, donde cada uno de los puntos de envolvente comprende un valor de argumento y un valor de envolvente y donde un punto de envolvente de la envolvente de senal de audio se asigna a cada uno de los puntos de agregacion de la funcion de agregacion de modo que el valor de argumento de dicho punto de envolvente es igual al valor de argumento dicho punto de agregacion. Ademas, la generacion de la envolvente de senal de audio se realiza de modo que el valor de la envolvente de cada uno de los puntos de envolvente de la envolvente de senal de audio depende del valor de agregacion de al menos un punto de agregacion de la funcion de agregacion.
45 [0044] Ademas, se proporciona un procedimiento para determinar uno mas valores de codificacion para
codificar una envolvente senal de audio. El procedimiento comprende:
- determinar un valor agregado para cada uno de los valores de la pluralidad de valores de argumento donde la pluralidad de valores de argumento esta ordenada de modo que un primer valor de argumento de la pluralidad de valores de argumento o bien precede o bien sucede a un segundo valor de argumento de la pluralidad de valores de 50 argumento cuando dicho segundo valor de argumento es distinto al primer valor de argumento y donde un valor de envolvente se asigna a cada uno de los valores de argumento donde el valor de envolvente de cada uno de los valores de argumento depende de la envolvente de senal de audio y donde el agregador esta configurado para
determinar el valor agregado para cada valor de argumento de la pluralidad de valores de argumento en funcion del valor de envolvente de dicho valor de argumento y en funcion del valor de envolvente de cada valor de dicha pluralidad de valores de argumento que preceden a dicho valor de argumento y
- determinar uno o mas valores de codificacion en funcion de uno o mas de los valores agregados de la pluralidad de 5 valores de argumento
[0045] Ademas, se proporciona un programa de ordenador para realizar uno de los procedimientos descritos
anteriormente cuando se ejecuta en un ordenador o un procesador de senal.
10 [0046] Una descripcion heurlstica pero un poco inexacta de la frecuencia de espectro de llneas 5 (LSF 5) es
que describe la distribution de la energla la senal en el eje de frecuencia. Con una alta probabilidad LSF 5 se corresponded con frecuencias en las que la senal tenga una gran energla. Las realizaciones estan basadas en la idea de adoptar esta descripcion heurlstica de forma literal y cuantizar la distribucion real de la energla de la senal. Puesto que LS5 aplica esta idea solo de forma aproximada, de acuerdo con las realizaciones, el concepto LSF de la 15 se omite y la distribucion de frecuencias se cuantiza en su lugar de manera que se pueda construir un perfil de envolvente suave a partir de esa distribucion. Este concepto inventivo se llamara en lo que sigue cuantizacion de distribucion.
[0047] Las realizaciones estan basadas en la cuantizacion y codificacion de envolventes espectrales para 20 usarlas en la codificacion de audio. Las realizaciones pueden, por ejemplo, aplicarse tanto a las envolventes del
ancho de banda central como a los procedimientos de extension del ancho de banda.
[0048] De acuerdo con las realizaciones, las tecnicas de modelado de envolventes estandar como las bandas de factor de escala [3, 4] y los modelos predictivos lineales [1] pueden, por ejemplo, sustituirse y/o mejorarse. Las
25 tecnicas de codificacion de envolvente que se describen en la especificacion “Vorbis I specification” o en el documento de patente de Estados Unidos US6978236 B1 pueden tambien sustituirse y/o mejorarse con la presente invencion.
[0049] La especificacion “Vorbis I specification” de la fundacion Xiph. Org Foundation de 3 de febrero de 2012 30 describe una codificacion envolvente espectral basada en la codificacion con la funcion suelo con una division fija y
uniforme de la envolvente espectral.
[0050] El documento de patente de Estados Unidos US6978236 B1 describe una codificacion de envolvente espectral basada en un mapeo adaptativo de tiempo/ frecuencia
35
[0051] Un objetivo de las realizaciones es obtener una cuantizacion que combine los beneficios de ambas, las estrategias predictivas lineales y de banda con factor de escala evitando sus inconvenientes.
[0052] De acuerdo con las realizaciones las, se proporcionan ideas, que tienen una envolvente espectral 40 suave pero precisa por un lado y que por otro lado se puedan codificar con una baja cantidad de bits (opcionalmente
con una tasa de bits fija) y ademas conseguirse con una complejidad computacional razonable.
[0053] En lo que sigue se describen realizaciones de la presente invention mas en detalle haciendo referencia a las figuras:
45 - la fig. 1 muestra un aparato de decodificacion para obtener una envolvente de senal de audio reconstruida de acuerdo con una realizacion
- la fig. 2 muestra un aparato para decodificacion segun otra realization donde el aparato ademas comprende un decodificador de puntos de division
- la fig. 3 muestra un aparato para codificar una envolvente de senal de audio de acuerdo con una realizacion
50 - la fig. 4 muestra un aparato para codificar una envolvente de senal de audio en funcion de otra realizacion donde el aparato ademas comprende un codificador de puntos de division
- la fig. 5 muestra un aparato de codificacion de una envolvente de senal de audio de acuerdo con otra realizacion donde el aparato de codificacion de envolvente de senal de audio ademas comprende un calculador de energla
- la fig. 6 muestra tres envolventes de senal que se describen con bloques de energla constante de acuerdo con las 55 realizaciones
- la fig. 7 muestra una representation acumulativa de los espectros de la fig. 6 en funcion de las realizaciones y
- la fig. 8 muestra una envolvente de area espectral interpolada, tanto su representacion original como la representacion del dominio del area acumulativo
- la fig. 9 muestra un procedimiento de codificacion de las posiciones de los puntos de division de acuerdo con una
realizacion
- la fig. 10 muestra un pseudocodigo para determinar la decodificacion de las posiciones de los puntos de division de acuerdo con una realizacion
- la fig. 11 muestra un procedimiento de codificacion de puntos de division en funcion de una realizacion
5 - la fig. 12 representa un pseudocodigo para codificar las posiciones de los puntos de division en funcion de una realizacion de la presente invencion
- la fig. 13 muestra un decodificador de puntos de division de acuerdo con una realizacion
- la fig. 14 muestra un aparato para codificar una senal de audio de acuerdo con una realizacion
- la fig. 15 muestra un aparato de reconstruccion de una senal de audio de acuerdo con una realizacion
10 - la fig. 16 muestra un aparato para generar una envolvente de senal de audio a partir de uno mas valores de codificacion de acuerdo con una realizacion
- la fig. 17 muestra un aparato para determinar uno mas valores decodificacion de una envolvente de senal de audio de acuerdo con una realizacion
- la fig. 18 muestra una funcion de agregacion segun un primer ejemplo y
15 - la fig. 19 muestra una funcion de agregacion segun un segundo ejemplo
[0054] La figura 3 muestra un aparato para codificar una envolvente de senal de audio de acuerdo con una
realizacion.
20 [0055] El aparato comprende una interfaz de envolvente senal de audio 210 para recibir la envolvente de
senal de audio.
[0056] Ademas, el aparato comprende un calculador de punto de division 220 para determinar en funcion de una regla de asignacion predefinida un valor de parte de envolvente de senal para al menos una parte de envolvente
25 de senal de audio de dos o mas partes de envolvente de senal de audio para cada una de las al menos dos configuraciones de puntos de division.
[0057] Cada una de las, al menos dos, configuraciones de puntos de division comprende uno o mas puntos
de division donde el/los, uno o mas, puntos de division de cada una de las dos o mas configuraciones de puntos de
30 division dividen la envolvente de la senal de audio en dos o mas partes de envolvente de senal de audio. El
calculador de puntos de division 220 esta configurado para seleccionar el/los, uno o mas, puntos de division de las, al menos dos, configuraciones de puntos de division como uno o mas puntos de division seleccionados para codificar la envolvente de la senal de audio donde el calculador de puntos de division 220 esta configurado para seleccionar el/los, uno o mas, puntos de division en funcion del valor de parte de envolvente de senal de audio de 35 cada una de las al menos, dos o mas, partes de la envolvente de senal de audio de cada una de las, al menos dos, configuraciones de puntos de division.
[0058] Una configuracion de puntos de division comprende uno o mas puntos de division y esta definida por sus puntos de division. Por ejemplo, una envolvente de senal de audio puede comprender 20 muestras 0,..,19 y una
40 configuracion con dos puntos de division puede estar definida por un primer punto de division en la posicion de la muestra 3 y por un segundo punto de division en la posicion de la muestra 8, por ejemplo, la configuracion de puntos de division puede indicarse mediante la tupla (3,8). Si solo se va a calcular un punto de division entonces un unico punto de division indica la configuracion de puntos de division.
45 [0059] El/los punto/s de division, uno o mas, adecuado/s se seleccionaran como uno mas de los puntos de
division seleccionados. Con este proposito, se consideran al menos dos configuraciones de puntos de division, cada una conteniendo uno mas puntos de division. El/los punto/s de division, uno o mas, de la configuracion de puntos de division mas adecuada son los que se seleccionan. En cuanto a que, si una configuracion de puntos de division es mas adecuada que otra, esto se determina en funcion del valor de parte de envolvente de la senal que a su vez 50 depende de la regla de asignacion predefinida.
[0060] En realizaciones en las que cada una de las configuraciones de puntos de division tenga N puntos de division se pueden considerar todas las configuraciones de puntos de division posibles. Sin embargo, en algunas realizaciones solo se consideran dos configuraciones de puntos de division y no todas las posibles y los puntos de
55 division de la configuracion mas adecuada se eligen como, el/los uno o mas punto/s de division seleccionados.
[0061] En realizaciones en las que solo haya que calcular un unico punto de division cada configuracion de puntos de division solo comprende un unico punto de division. En realizaciones en las que haya que calcular dos puntos de division cada configuracion de puntos de division comprende dos puntos de division. Asimismo, en
realizaciones en las que haya que calcular N puntos de division cada configuration de puntos de division comprende N puntos de division.
[0062] Una configuracion de puntos de division con un unico punto de division divide la envolvente de senal
5 de audio en dos partes de envolventes de senal de audio. Una configuracion de puntos de division con dos puntos de division dividen la envolvente de senal de audio en tres partes de envolvente de la senal de audio. Una configuracion de N puntos de division divide la envolvente de senal de audio en N+1 partes de envolvente de la senal de audio.
10 [0063] Existe una regla de asignacion predefinida que asigna un valor de parte de envolvente de senal a cada
una de las partes de envolvente de senal de audio. La regla de asignacion predefinida depende de las partes de envolvente de senal de audio.
[0064] En algunas realizaciones los puntos de division se determinan de modo que cada una de las partes de 15 la envolvente de la senal de audio que resultan de que uno o mas puntos de division dividan la envolvente de senal
de audio tengan un valor de parte de envolvente de senal asignado por una regla de asignacion predefinida que sea aproximadamente igual. Por lo tanto, ya que el/los, uno mas, punto/s de division depende de la envolvente de senal de audio y la regla de asignacion; la envolvente de la senal de audio se puede estimar en un decodificador si la regla de asignacion y los puntos de division los conoce el decodificador. Esto por ejemplo se muestra en la figura 6:
20 En la figura 6 (a) hay que determinar un unico punto de division para una envolvente de senal 610. Por lo tanto, en este ejemplo, las distintas configuraciones de puntos de division posibles estan definidas por un unico punto de division. En la realization de la figura 6 (a) se determina que el punto de division 631 es el mejor. El punto de division 631 divide la envolvente de senal de audio 610 en dos partes de envolvente de senal. El bloque rectangular 611 representa una energla de una primera parte de envolvente de senal definida por el punto de division 631. El 25 bloque rectangular 612 representa una energla de una segunda parte de envolvente de senal definida por un punto de division 631. En el ejemplo de la figura 6 (a), las aristas superiores de los bloques 611 y 612 representa una estimation de la envolvente de la senal 610. Dicha estimation se puede hacer en el decodificador, por ejemplo, utilizarla como information el punto de division 631 (por ejemplo, si el unico punto de division tiene el valor s=12, entonces el punto division s esta ubicado en la position 12), informacion sobre donde empieza la envolvente de 30 senal (en este caso el punto 638) e informacion sobre donde termina la envolvente de senal (en ese caso el punto 639). La envolvente de senal puede comenzar y finalizar en valores fijos y esta informacion puede estar disponible como informacion fija en el receptor. O bien, esta informacion se puede transmitir al receptor. En el lado del decodificador, dicho decodificador puede reconstruir una estimacion de la envolvente de la senal de modo que las partes de la envolvente de la senal que resultan debidas al punto de division 631 que divide la envolvente de la senal 35 de audio, tengan el mismo valor asignado por la regla de asignacion predefinida. En la figura 6 (a) las partes de envolvente de senal de la envolvente estan definidas por las aristas superiores de los bloques 611 y 612 tienen el mismo valor asignado por la regla de asignacion y representan una buena estimacion del envolvente de senal 610. En lugar de usar el punto de division 631, se puede usar el valor 621 se puede usar como punto de division. Ademas, en lugar del valor de inicio 638, se puede utilizar el valor 628 como valor de inicio y en lugar del valor de 40 termination 639 se puede usar el valor de termination 629 como valor final. Sin embargo, no solo la codification de valores de abscisa, sino que tambien los valores de ordenada requieren mas recursos de codificacion y no es necesario.
[0065] En la figura 6 (b) se determinan tres puntos de division de una envolvente de senal 640. Por lo tanto, 45 en este ejemplo, las configuraciones de puntos de division posibles diferentes estan definidas por tres puntos de
division. En la realizacion de la figura 6 (b) los puntos de division 661, 662, 663 se determina que son los mejores puntos de division. Los puntos de division 661, 662, 663 divide la envolvente de senal de audio 640 en cuatro partes de envolvente de senal. El bloque rectangular 641 representa una energla de una primera parte de envolvente de senal definida por los puntos de division. El bloque rectangular 642 representa una energla de una segunda parte de 50 envolvente de senal definida por los puntos de division. El bloque rectangular 643 representa una energla de una tercera parte de envolvente de senal definida por los puntos de division. El bloque rectangular 644 representan la energla de una cuarta parte de envolvente de senal definida por los puntos de division. En el ejemplo de la figura 6 (b) las aristas superiores de los bloques 641, 642, 643, 644 representan una estimacion de envolvente de senal 640. Dicha estimacion se puede hacer en un decodificador, por ejemplo, utilizando como informacion los puntos de 55 division 661, 662, 663, informacion sobre donde comienza la envolvente de senal (en este caso 668) e informacion de donde termina la envolvente de senal (en este caso el punto 669). La envolvente de senal puede empezar y puede terminar en valores fijos y esta informacion puede estar disponible como informacion fija en el receptor. 0 bien, esta informacion se puede transmitir al receptor. En el lado del decodificador, el decodificador puede reconstruir una estimacion de la envolvente de senal de modo que las partes de envolvente de senal que resultan de
los puntos de division 661, 662, 663 que dividen la envolvente de la senal de audio tenga el mismo valor asignado por la regla de asignacion predefinida. En la figura 6 (b) las partes de envolvente de senal de una envolvente de senal estan definidos por las aristas superiores de los bloques 641, 642, 643, 644 y tienen el mismo valor asignado por la regla de asignacion y representa una buena estimacion de la envolvente de senal 640. En lugar de utilizar los 5 puntos de division 661, 662, 663 pueden tambien utilizarse los valores 651, 652, 653 como puntos de division. Ademas, en lugar del valor de inicio 668 se puede utilizar el valor 658 como valor de inicio y en lugar del valor de termination 669, se puede utilizar el valor de termination 659 como valor de termination. Sin embargo, no solo la codification de los valores de abscisa sino los valores de ordenada requieren mas recursos de codification y no es necesario.
10
[0066] En la figura 6 (c) se determinan cuatro puntos division de una envolvente de senal 670. Por lo tanto, en este ejemplo, las diferentes configuraciones de puntos de division posibles estan definidas por cuatro puntos de division. En la realization de la figura 6 (c) los puntos de division 691, 692, 693, 694 se determina que son los mejores puntos de division. Los puntos de division 691, 692, 693, 694 divide la envolvente de senal de audio 670 en
15 cinco partes de envolvente de senal. El bloque rectangular 671 representa la energla de una primera parte de envolvente de senal definida por los puntos de division. El bloque rectangular 672 representa la energla de una segunda parte de envolvente de senal definida por los puntos de division. El bloque rectangular 673 representa la energla de una tercera parte de envolvente de senal definida por los puntos de division. El bloque rectangular 674 representa la energla de una cuarta parte de envolvente senal definida por los puntos division. El bloque rectangular
20 675 representa la energla de una quinta parte de envolvente de senal definida por los puntos de division. En el ejemplo de la figura 6 (c) las aristas superiores de los bloques 671, 672, 673, 674, 675 representan una estimacion de la envolvente de senal 670. Dicha estimacion se puede hacer en un decodificador, por ejemplo, utilizando como information los puntos de division 691, 692, 693, 694, information sobre donde empieza la envolvente de senal (en este caso el punto 698) e informacion donde termina la envolvente de senal (en este caso 699). La envolvente de
25 senal puede empezar y terminar en valores fijos y esta informacion puede estar disponible como informacion fija en el receptor. O bien esta informacion puede transmitirse al receptor. En el lado del decodificador el decodificador puede reconstruir una estimacion de la envolvente de senal de modo que las partes de envolvente de senal que resultan de los puntos de division 691, 692, 693, 694 que dividen la envolvente de senal de audio tienen el mismo valor asignado por la regla de asignacion predefinida. En la figura 6 (c) las partes de envolvente de senal de una
30 envolvente de senal estan definidos por las aristas superiores de los bloques 671, 672, 673, 674 tienen el mismo valor asignado por la regla de asignacion y representan una buena estimacion de la envolvente de senal 670. En lugar de usar los puntos de division 691, 692, 693, 694 se puede utilizar tambien los valores 681, 682, 683, 684 como puntos de division. Ademas, en lugar del valor de inicio 698 se puede utilizar tambien el valor 688 como valor de inicio, y en lugar del valor de terminacion 699, se puede utilizar el valor de terminacion 689 como valor de
35 terminacion. Sin embargo, no solo la codificacion de valores de abscisa, sino que tambien los valores de ordenada requieren mas recursos de codificacion y no es necesaria.
[0067] Como otra realizacion particular se puede considerar el siguiente ejemplo: la codificacion de una envolvente de senal representada en el dominio espectral. La envolvente de senal puede, por ejemplo, comprender
40 n valores espectrales (por ejemplo, n= 33)
[0068] Las diferentes partes de envolvente de senal se consideran a continuation. Por ejemplo, una primera parte envolvente de senal puede comprender los primeros 10 valores espectrales vi (i=0...9, siendo i un Indice de valor espectral) y la segunda parte de envolvente de senal puede comprender los ultimos 23 valores espectrales
45 (i=10,...,32).
[0069] En una realizacion, una regla de asignacion predefinida puede, por ejemplo, ser que el valor de parte de envolvente de senal de una parte de envolvente de senal espectral m de valores espectrales v0, v1, ...vs-1 es la energla de parte de envolvente de senal espectral, por ejemplo,
50
Umite sup erior
p(m) = Z Vi
i=limite inf erior
donde llmite inferior es el valor llmite inferior de la parte de envolvente de senal m y donde el llmite superior es el valor llmite superior de la parte de envolvente de senal m.
55
[0070] El calculador de valor de parte de envolvente de senal 110 puede asignar un valor de parte de envolvente de senal en funcion de dicha formula a una o mas de las partes de envolvente de senal de audio.
[0071] El calculador de puntos de division 220 esta configurado en este caso para determinar uno o mas valores de parte de envolvente de senal de acuerdo con una regla de asignacion predefinida. En particular, el calculador de puntos de division 220 esta configurado para determinar uno o mas valores de parte de envolvente
5 senal en funcion de la regla de asignacion de modo que el valor de parte de envolvente de senal de cada una de las, dos o mas, partes de envolvente de senal sea aproximadamente igual al valor de parte de envolvente de senal de cada una de las partes de envolvente de senal de las, dos o mas, partes de envolvente de senal.
[0072] Por ejemplo, en una realizacion particular, el calculador de puntos de division 220 puede estar 10 configurado para determinar un unico punto de division. En dicha realizacion, dos partes de envolvente de senal, por
ejemplo, la parte de envolvente de senal 1 (m=1) y la parte de envolvente de senal 2 (m=2) estan definidas por el punto de division de acuerdo con las sientes formulas:
p(i)=Z v2
i=0
15
p(2)=Z v2
i=s
donde n es el numero de muestras de la envolvente de senal de audio, por ejemplo, el numero de valores espectrales de la envolvente de la senal de audio. En el ejemplo anterior n puede ser, por ejemplo, 33.
20
[0073] El calculador de valor de parte de envolvente de la senal 110 puede asignar dicho valor de parte de
envolvente de senal p(1) a la parte de envolvente de senal de audio 1 y dicho valor de parte de envolvente de la senal p(2) a la parte de envolvente la senal de audio 2.
25 [0074] En algunas realizaciones se determinan ambos valores de partes de envolvente de senal p(1), p(2).
Sin embargo, en algunas realizaciones solo se considera uno de los valores de partes de envolvente se senal. Por ejemplo, si la energla total es conocida solo hace falta determinar un punto de division tal que p(1) sea aproximadamente un 50% de la energla total.
30 [0075] En algunas realizaciones s(k) se puede seleccionar de un conjunto de valores posibles, por ejemplo,
de un valor de Indices enteros, por ejemplo, {0; 1; 2;...; 32}. En otras realizaciones s(k) puede seleccionarse de un conjunto de valores posibles, por ejemplo, de un conjunto de valores de frecuencia que indiquen un conjunto de bandas de frecuencia.
35
[0076] En las realizaciones en las que haya que determinar mas de un punto de division se puede considerar
una formula que represente la energla acumulada, que acumule la energla de las muestras hasta justo antes del punto de division s.
s—1
Z
vi
2
1=0
40
[0077] Si hay que terminar N puntos de division, entonces los puntos de division s(1), s(2),...,s(N) se
determinan segun la ecuacion:
s(k )—1
Z v2
i=0
energiatotal N +1
45 donde energla total es la energla total de la envolvente de senal.
[0078] En una realizacion se puede elegir el punto de division s(k) de modo que:
s(k )-1 o
z v
i=0
energiatotal
N+1
sea minima.
5
[0079] Por lo tanto, de acuerdo con una realizacion el calculador de puntos de division 220 puede, por
ejemplo, estar configurado para determinar el/los, uno o mas, puntos de division de modo que
s(k )-1
Z Vi
i=0
energiatotal N+1
10 sea minima, donde la energla total indica la energla total y donde el Indice k indica el punto de division del/ de los uno o mas, punto/s de division y donde N indica el numero de uno o mas puntos de division.
[0080] En otra realizacion si el calculador de puntos de division 220 esta configurado para seleccionar solo un unico punto de division, s, entonces el calculador de puntos de division 220 puede comprobar todos los puntos de
15 division posibles s=1,...32.
[0081] En algunas realizaciones, el calculador de puntos de division 220 puede elegir el mejor valor del punto de division, s, por ejemplo, el punto de division s en el que sea mlnimo:
20
d=|P(2) - P(1)I
n-1 s-1
Z2 v i 2
Vi - Z Vi
i=0
i=s
[0082] De acuerdo con una realizacion, el valor de parte de envolvente de senal de cada parte de envolvente de la senal de las, dos o mas, partes de envolvente de senal puede, por ejemplo, depender de uno o mas valores de energla o de uno o mas valores de potencia de dicha parte de envolvente de senal. O bien, el valor de parte de
25 envolvente de la senal de cada parte de envolvente de la senal de las, dos o mas, partes de envolvente de senal, por ejemplo, puede depender de cualquier otro valor adecuado para reconstruir un nivel original u objetivo de la envolvente de senal de audio.
[0083] De acuerdo con una realizacion, la envolvente de senal de audio puede, por ejemplo, estar 30 representada en un dominio espectral o en un dominio temporal.
[0084] La figura 4 muestra un aparato de codificacion de una envolvente senal de acuerdo con otra realizacion donde el aparato ademas comprende un codificador de puntos de division 225 para codificar uno o mas puntos de division, por ejemplo, en funcion de una regla de codificacion para obtener uno o mas puntos codificados.
35
[0085] El codificador de puntos de division 225 puede, por ejemplo, estar configurado para codificar la posicion de cada uno de los, uno o mas, puntos de division para obtener uno mas puntos calificados el codificador de puntos de division de siempre cinco puede estar por ejemplo configurado para codificar una posicion de cada uno de los uno mas puntos de division codificando el numero de estado de puntos de division. Ademas, el codificador de
40 puntos de division 225 puede, por ejemplo, estar configurado para proporcionar un numero total de posiciones que indique el numero total de posibles posiciones de puntos de division y un numero de puntos division que indique el numero de uno o mas puntos division. El numero de estado de puntos de division, el numero de posiciones totales y el numero de puntos de division conjuntamente indican la posicion de cada uno de los uno mas puntos de division.
45 [0086] La figura 5 muestra un aparato para codificar una envolvente de senal de audio de acuerdo con otra
realizacion donde el aparato de codificacion de envolvente de senal de audio ademas comprende un calculador de energla 230.
[0087] De acuerdo con otra realizacion el aparato puede, por ejemplo, comprender ademas un calculador de
50 energia 230 para determinar la energia total de la envolvente de senal de audio y para codificar la energia total de la envolvente de la senal de audio.
[0088] En otra realizacion, sin embargo, el aparato puede, por ejemplo, estar configurado ademas para determinar cualquier otro valor adecuado para reconstruir un nivel original u objetivo de la envolvente de senal de audio. En lugar de la energla total una pluralidad de otros valores son adecuados para reconstruir un nivel original u objetivo de la envolvente de senal de audio. Por ejemplo, como se ha mencionado antes, el escalado de la
5 envolvente puede realizarse de varias maneras y puede corresponder a la energla de la senal o el area espectral o similar (valor absoluto) o puede ser un factor de escalado o de ganancia (valor relativo), se puede codificar como un valor absoluto o relativo o se puede codificar como una diferencia con respecto a un valor previo o con respecto a una combinacion de valores previos. En algunos casos el factor de escalado tambien puede ser irrelevante o deducirse de otros datos disponibles. La envolvente se reconstruye hasta el nivel original u objetivo.
10
[0089] La figura 14 muestra un aparato de codificacion de senal de audio. El aparato comprende un aparato 1410 para codificar de acuerdo con una de las realizaciones escritas, para codificar una envolvente de senal de audio de la senal de audio generando uno mas puntos de division y un codificador de caracterlstica de senal secundaria 1420 para codificar otra caracterlstica de la senal de audio, siendo la caracterlstica de senal adicional
15 diferente a la envolvente de la senal de audio. Un experto en la materia sabe que a partir de la envolvente de una senal de audio y a partir de otra caracterlstica adicional de la senal de audio se puede reconstruir la senal de audio. Por ejemplo, la envolvente de la senal puede, por ejemplo, indicar la energla de las muestras de la senal de audio. Otra caracterlstica de la senal puede, por ejemplo, indicar para cada muestra de, por ejemplo, una senal de audio en el dominio temporal si la muestra tiene un valor positivo o negativo.
20
[0090] La figura 1 muestra un aparato de decodificacion para obtener una envolvente de senal de acuerdo con una realizacion.
[0091] El aparato comprende un reconstructor de envolvente de senal 110 para generar la envolvente de la 25 senal de audio reconstruida en funcion de uno o mas puntos de division.
[0092] Ademas, el aparato comprende una interfaz de salida 120 para producir la salida de la envolvente de la senal de audio reconstruida.
30 [0093] El reconstructor de envolvente de senal 110 esta configurado para generar la envolvente de senal de
audio reconstruida de modo que el/los, uno o mas punto/s de division divida/n la envolvente de la senal de audio reconstruida en dos o mas partes de envolvente de senal de audio.
[0094] Una regla de asignacion predefinida define el valor de parte de envolvente de senal para cada parte 35 de envolvente de senal de las dos o mas partes de envolvente de senal en funcion de dicha parte de envolvente de
senal.
[0095] Ademas, el reconstructor de envolvente de senal 110 esta configurado para generar la envolvente de senal de audio reconstruida de modo que para cada una de las dos o mas partes de envolvente de senal el valor de
40 parte de envolvente de senal sea mayor que la mitad del valor absoluto del valor de parte de la envolvente de senal de cada una de las otras partes de envolvente de senal.
[0096] En cuanto al valor absoluto de un valor de parte de envolvente de senal esto significa:
Si x > 0= , a= x
45 Si x < 0 a= -x
[0097] Si todos los valores de parte de envolvente de senal son positivos esta formulacion anterior significa que la envolvente de senal de audio reconstruida se genera de modo que para cada una de las dos o mas partes de envolvente de senal su valor de parte de envolvente de senal es mayor que la mitad del valor de parte de envolvente
50 de senal de cada una de las otras partes de envolvente de senal.
[0098] En una realizacion particular el valor de parte de envolvente de senal de cada una de las partes de envolvente de senal es igual al valor de parte de envolvente de senal de cada una de las otras partes de envolvente de senal de las dos o mas partes de envolvente de senal.
55
[0099] Sin embargo, en una realizacion mas general como la de la figura 1 la envolvente de senal de audio se reconstruye de modo que los valores de partes de envolvente de senal de las partes de envolvente de senal no tengan que ser exactamente iguales, sino que puede permitirse un cierto grado de tolerancia (algun margen).
5
10
15
20
25
30
35
40
45
50
55
[00100] La formulacion «de modo que para cada una de las, dos o mas, partes de envolvente de senal el valor absoluto del valor de parte de envolvente de senal sea mayor que la mitad del valor absoluto del valor de parte de la envolvente de la senal de cada una de las otras partes de envolvente de senal» puede, por ejemplo, entenderse que significa que en la medida en que el mayor de los valores absolutos de todos los valores de partes de envolvente de senal no sea dos veces el valor absoluto mas pequeno de todos los valores de partes de envolvente de senal se cumple la condicion exigida.
[00101] Por ejemplo, un conjunto de cuatro valores de partes de envolvente de senal (0,23; 0,28; 0,19; 0,30) cumple el requisito anterior puesto que 0,30<2 0,19=0,38. Otro conjunto de valores de partes de envolvente de senal sin embargo (0,24; 0,16; 0,35; 0,25) no cumple la condicion exigida porque 0,35> 2 0,16=0,32.
[00102] En el lado del decodificador el reconstructor de envolvente de senal 110 esta configurado para reconstruir la envolvente de senal de audio reconstruida de modo que las partes de envolvente de senal de audio resultantes de que los puntos de division dividan la envolvente de senal de audio reconstruida tengan unos valores de partes de envolvente de senal que practicamente sean iguales. Por lo tanto, el valor de parte de la envolvente de senal de cada una de las dos o mas partes de envolvente de senal es mayor que la mitad del valor de parte de envolvente de senal de cada una de las otras partes de envolvente de senal de las dos o mas partes de envolvente de senal.
[00103] En dichas realizaciones los valores de parte de envolvente de senal de las partes de envolvente de senal han de ser aproximadamente iguales, pero no tienen por que ser exactamente iguales.
[00104] Exigir que los valores de parte de envolvente de senal de las partes de envolvente de senal tengan que ser practicamente iguales indica al decodificador como tiene que reconstruir la senal. Cuando las partes de la envolvente de la senal se reconstruyen de modo que los valores de partes de envolvente de senal sean exactamente iguales el grado de libertad para reconstruir la senal en el lado del decodificador queda muy restringido.
[00105] Cuanto mas se desvlen los valores de parte de envolvente de la senal entre si hay mas libertad para el codificador para ajustar la envolvente de senal de audio en funcion de una especificacion en el lado del decodificador. Por ejemplo, cuando una envolvente de senal de audio espectral se codifica, algunos decodificadores pueden preferir acumular, por ejemplo, mas energla en las bandas de frecuencias inferiores mientras que otros decodificadores prefieren acumular mas energla, por ejemplo, en las bandas de mayor frecuencia. Permitiendo una tolerancia, una cantidad limitada de errores de redondeo, por ejemplo, causados por errores de cuantizacion y/o decuantizacion pueden ser admisibles.
[00106] En una realizacion en la que el reconstructor de envolvente de senal 110 se reconstruye practicamente con exactitud el reconstructor de envolvente de senal 110 esta configurado para generar la envolvente de senal de audio reconstruida de modo que para cada una de las dos o mas partes de envolvente de senal el valor absoluto de su valor de parte de envolvente de senal sea mayor que un 90% del valor absoluto del valor de parte de envolvente de senal de cada una de las otras partes de envolvente de senal.
[00107] De acuerdo con una realizacion el reconstructor de envolvente de senal 110 puede, por ejemplo, estar configurado para generar la envolvente de senal de audio reconstruido de modo que para cada una de las, dos o mas, partes de envolvente de senal el valor absoluto de su valor de parte de envolvente de senal sea mayor que un 99% del valor absoluto del valor de parte de envolvente de senal de cada una de las otras partes de envolvente de senal.
[00108] En otra realizacion, sin embargo, el reconstructor de envolvente de senal 110 puede, por ejemplo, estar configurado para generar la envolvente de senal de audio reconstruida de modo que el valor de parte de la envolvente de senal de cada una de las, dos o mas, partes de envolvente de senal sea igual al valor de parte de envolvente de senal de cada una de las otras partes de envolvente de senal de las dos o mas partes de envolvente de senal.
[00109] En una realizacion, el valor de parte de envolvente de senal de cada parte de envolvente de senal de las, dos o mas, partes de envolvente de senal puede, por ejemplo, depender de uno o mas valores de energla, de uno o mas valores de potencia de dicha parte de envolvente de senal.
10
15
20
25
30
35
40
45
50
[00110] De acuerdo con una realization la envolvente de senal de audio reconstruida puede, por ejemplo, estar representada en un dominio espectral o en un dominio temporal.
[00111] La figura 2 muestra un aparato para decodificar de acuerdo con otra realization donde el aparato ademas comprende un decodificador de puntos de division 105 para decodificar uno mas puntos codificados de acuerdo con una regla de decodificacion para obtener uno o mas puntos de division.
[00112] De acuerdo con una realization el reconstructor de envolvente de senal 110 puede, por ejemplo, estar configurado para generar la envolvente de senal de audio reconstruida en funcion de un valor de energla total que indica la energla total de la envolvente senal de audio reconstruida o en funcion de cualquier otro valor adecuado para reconstruir un nivel original u objetivo de la envolvente de senal de audio.
[00113] A continuation, para ilustrar la presente invention con mas detalle se proporcionan realizaciones particulares.
[00114] De acuerdo con una realization particular la idea es dividir la banda de frecuencia en dos partes de modo que ambas mitades tengan la misma energla. La idea se muestra en la figura 6 (a) en la que la envolvente, es decir, la forma global, se describe mediante bloques de energla constante.
[00115] La idea se puede aplicar recursivamente de modo que las dos mitades se dividan cada vez en dos mitades que tengan la misma energla. Esta estrategia se muestra en la figura 6 (b).
[00116] Mas en general el espectro se puede dividir en N bloques de modo que cada bloque tenga una fraction 1/N de la energla. En la figura 6 (c) esto se muestra para N=5.
[00117] Para reconstruir estas envolventes espectrales constantes por bloques en el decodificador se pueden transmitir los llmites de frecuencia de los bloques y, por ejemplo, la energla total. Por ejemplo, los llmites de frecuencia entonces corresponden, aunque solo en sentido heurlstico, a la representation LPC.
[00118] Hasta ahora las explicaciones que se han dado haciendo referencia a la envolvente de energla abs2(x) de una senal. En otras realizaciones se modelan, sin embargo, la envolvente de magnitud abs(x) y en otras una potencia n-sima absn(x) del espectro o de cualquier representation motivada por la perception (por ejemplo, el valor sonoro). En lugar de la energla se puede usar el termino «area espectral» y asumir que describe una representation apropiada del espectro. Lo unica importante es que sea posible calcular la suma acumulada de la representacion del espectro, es decir, la representacion tenga solo valores positivos.
[00119] Sin embargo, si una secuencia no es positiva se puede convertir en una secuencia positiva sumando un valor constante suficientemente grande, calculando su suma acumulada o mediante otras operaciones adecuadas. Analogamente una secuencia de valor complejo puede convertirse por ejemplo en:
1) dos secuencias, una de las cuales sea puramente real y otra puramente imaginario o
2) dos secuencias en la que la primera represente la magnitud y la segunda fase. Estas dos secuencias, en ambos casos, se pueden modelar como dos envolventes separadas.
[00120] Tampoco es necesario restringir el modelo a modelos de envolvente espectrales; cualquier forma de envolvente se puede describir con el modelo en cuestion. Por ejemplo, la modulation de ruido temporal (TNS) [6] es una herramienta estandar para los codecs de audio que modela la envolvente temporal de una senal. Puesto que nuestro procedimiento modela envolventes tambien puede aplicarse a senales en el dominio temporal.
[00121] Analogamente los procedimientos de extension del ancho de banda (BWE) aplican envolventes espectrales para modelar forma espectral de las altas frecuencias y el procedimiento propuesto, por tanto, se puede aplicar tambien para BWE.
[00122] La figura 17 muestra un aparato para determinar uno mas valores de codification para codificar una envolvente de senal de audio de acuerdo con una realizacion.
[00123] El aparato comprende un agregador 1710 para determinar un valor agregado para cada uno de los valores de la pluralidad de valores de argumento. La pluralidad de valores de argumento esta ordenada de modo que un primer valor de argumento de la pluralidad de valores de argumento siempre precede o
5
10
15
20
25
30
35
40
45
50
55
sucede a un segundo valor de argumento de la pluralidad de valores. de argumento cuando dicho segundo valor de argumento es diferente al primer valor de argumento.
[00124] Un valor de envolvente se asigna a cada uno de los valores de argumento donde el valor de envolvente de cada uno de los valores de argumento depende de la envolvente de senal de audio y donde el agregador esta configurado para determinar un valor agregado para cada valor de argumento de la pluralidad de valores de argumento en funcion del valor de envolvente de dicho valor de argumento y en funcion del valor de la envolvente de dicha pluralidad de valores de argumento que preceden a dicho valor de argumento.
[00125] Ademas, el aparato comprende una unidad de codificacion 1720 para determinar uno mas valores de codificacion en funcion de uno o mas de los valores agregados de la pluralidad de valores de argumento. Por ejemplo, la unidad de codificacion 1720 puede generar el/los, uno o mas, punto/s de division mencionados haciendolos el/los uno o mas valores de codificacion, por ejemplo, como se ha descrito anteriormente.
[00126] La figura 18 muestra una funcion de agregacion 1810 de acuerdo con un primer ejemplo.
[00127] Entre otras cosas la figura 18 muestra 16 puntos de envolvente de una envolvente senal de audio. Por ejemplo, el cuarto punto de envolvente de la envolvente senal de audio se indica mediante el numero de referencia 1824 y el octavo punto de envolvente se indica por el numero de referencias 1828. Cada punto de envolvente comprende un valor de argumento y un valor de envolvente. Dicho de otra manera, el valor de argumento se puede considerar la componente x y el valor de envolvente se puede considerar la componente de un punto de envolvente en un sistema de coordenadas x-y. Asl, como se puede ver en la figura 18 el valor de argumento del cuarto punto de envolvente 1824 es 4 y el valor de envolvente del cuarto punto de envolvente 3. Como otro ejemplo, el valor de argumento del octavo punto de envolvente 1828 es 8 y el valor de envolvente del cuarto punto de envolvente es 2. En otras realizaciones, los valores de argumento pueden no indicar numeros de Indice como en la figura 18 sino que pueden, por ejemplo, indicar una frecuencia central de una banda espectral si, por ejemplo, se considera una envolvente espectral, de modo que, por ejemplo, un primer valor de argumento puede ser entonces 300 Hz y un segundo valor de argumento puede ser 500 Hz etc. O bien, por ejemplo, en otras realizaciones los valores de argumento pueden indicar instantes de tiempo si, por ejemplo, se considera una envolvente temporal.
[00128] La funcion de agregacion 1810 comprende una pluralidad de puntos de agregacion. Por ejemplo, si se considera el cuarto punto de agregacion 1814 y el octavo punto de agregacion 1818. Cada punto de agregacion comprende un valor de argumento y un valor de agregacion. Analogamente a lo anterior, el valor de argumento se puede considerar la componente x y el valor de agregacion se puede considerar la componente y del punto de agregacion en un sistema de coordenadas x-y. En la figura 18 el valor de argumento del cuarto punto de agregacion 1814 es 4 y el valor de agregacion del cuarto punto de agregacion 1818 es 7. Como otro ejemplo, el valor de argumento del octavo punto de envolvente es 8 y el valor de envolvente del cuarto punto de envolvente es 13.
[00129] El valor de agregacion de cada punto de agregacion de la funcion de agregacion 1810 depende del valor de envolvente del punto de envolvente que tiene el mismo valor de argumento que el punto de agregacion considerado y depende ademas del valor de envolvente de cada uno de los valores de la pluralidad de valores de argumento que preceden dicho valor de argumento. En el ejemplo de la figura 8, cuanto al punto cuarto punto de agregacion 1814, su valor de agregacion depende del valor de envolvente del cuarto punto de envolvente 1824 puesto que este punto de envolvente tiene el mismo valor de argumento que el punto de generacion y depende ademas de los valores de envolvente de los puntos de envolvente 1821, 1822, 1823 puesto que los valores de argumento de estos puntos de envolvente 1821, 1822, 1823 preceden el valor de argumento del punto de envolvente 1824.
[00130] En el ejemplo de la figura 18 el valor de agregacion de cada punto de agregacion se determina sumando el valor de envolvente del punto de envolvente correspondiente y los valores de envolvente de sus puntos de envolvente precedentes. Por lo tanto, el valor de agregacion del cuarto punto de agregacion es 1+2+1+3=7 (puesto que el valor de envolvente del primer punto de envolvente es 1, puesto que el valor de envolvente del segundo punto de envolventes es 2 y el valor de envolvente del tercer punto de envolvente es 1 y el valor de envolvente del cuarto punto de envolvente es 3. Analogamente, el valor de agregacion del octavo punto de agregacion es 1+2+1+3+1+2+1+2=13.
5
10
15
20
25
30
35
40
45
50
55
[00131] La funcion de agregacion es monotona creciente. Esto, por ejemplo, significa que cada punto de agregacion de la funcion de agregacion (que tiene un predecesor) tiene un valor de agregacion que es mayor o igual que valor de agregacion del punto de agregacion inmediatamente precedente. Por ejemplo, en cuanto a la funcion de agregacion 1810, por ejemplo, el valor de agregacion del cuarto punto de agregacion 1814 es mayor o igual que el valor de agregacion del tercer punto de agregacion; el valor del octavo punto de agregacion 1818 es mayor o igual que el valor de agregacion del septimo punto de agregacion 1817 etc. y esto es cierto para todos los puntos de agregacion de la funcion de agregacion.
[00132] La figura 19 muestra otro ejemplo de una funcion de agregacion, en la figura, la funcion de agregacion 1910. En el ejemplo de la figura 19, el valor de agregacion de cada punto de agregacion se determina sumando el cuadrado del valor de envolvente del punto de envolvente correspondiente y los cuadrados de los valores de envolvente de los puntos de envolvente precedentes. Por lo tanto, por ejemplo, para obtener el valor de agregacion del cuarto punto de agregacion 1914, el cuadrado del valor de envolvente del punto de envolvente correspondiente 1924 y se suman los cuadrados de los valores de envolvente de los puntos de envolvente precedentes 1921, 1922, 1923 resultando 22+12+22+12= 10. Asl, el valor de agregacion del cuarto punto de agregacion 1914 de la figura 19. En la figura 19, los numeros de referencias 1931, 1933, 1935, 1936 indican los cuadrados de los valores de envolvente de los puntos de envolvente respectivos en cada caso.
[00133] Lo que se puede ver en las figuras 18 y 19 es que las funciones de agregacion proporcionan una forma eficiente para determinar los puntos de division. Los puntos de division son un ejemplo de valores de codificacion. En la figura 18 el mayor valor de agregacion de todos los puntos de division (puede ser, por ejemplo, la energla total) es 20.
[00134] Por ejemplo, si hay que determinar un punto de division, el valor de argumento del punto de generacion, puede, por ejemplo, elegirse como punto de division, que es igual o cercano a 10 (50% de 20). En la figura 18 este valor de argumento serla 6 y el unico punto de division unico serla, por ejemplo, 6.
[00135] Si hay que determinar tres puntos de division, los valores de argumento de los puntos de agregacion se pueden elegir como puntos de division que sean iguales o cercanos a 5, 10 y 15 (25%, 50%, 75% de 20) respectivamente. En la figura 18 estos valores de argumento serlan 3, 4, 6, 11. Por lo tanto, los puntos de division elegidos serlan o bien 3, 6, 11 o serla 4, 6, 11. En otras realizaciones se pueden permitir valores no enteros como puntos de division, en la figura 18, los puntos de division determinados serlan, por ejemplo, 3,33; 6 y 11.
[00136] Asl, de acuerdo con algunas realizaciones el agregador puede, por ejemplo, estar configurado para determinar el valor agregado de cada valor de argumento de la pluralidad de valores de argumento sumando el valor de envolvente de dicho valor de argumento y los valores de envolvente de los valores de argumento que preceden a dicho valor de argumento.
[00137] En una realizacion el valor de argumento de cada uno de los valores de argumento puede, por ejemplo, indicar un valor de energla de una envolvente de senal de audio que tiene la envolvente de senal de audio como envolvente senal.
[00138] De acuerdo con una realizacion el valor de envolvente de cada uno de los valores de argumento puede, por ejemplo, indicar una potencia n-sima de un valor espectral de una envolvente de senal de audio que tiene la envolvente de senal de audio como envolvente de senal donde n es un entero par mayor que 0.
[00139] En una realizacion el valor de envolvente de cada uno de los valores de argumento puede, por ejemplo, indicar la potencia n-sima de un valor de amplitud de envolvente de senal de audio, que se representa en un dominio temporal y que tenga una envolvente de senal de audio como envolvente senal donde n es un entero par mayor que 0.
[00140] De acuerdo con una realizacion la unidad de codificacion puede, por ejemplo, estar configurado para determinar uno o mas valores de codificacion en funcion de uno o mas de los valores agregados de los valores de argumento y en funcion del numero de valores de codificacion que indica cuantos valores tiene que determinar la unidad de codificacion como uno o mas valores de codificacion.
[00141] En una realizacion la unidad de codificacion puede, por ejemplo, estar configurada para determinar uno o mas valores de codificacion de acuerdo con la formula:
(
c(k) = min
j
V
a(j) - k
max(a)
N
\
5
donde c(k) indica el k-simo valor de codificacion a determinar por la unidad de codificacion, donde j indica el valor de argumento de la pluralidad de valores de argumento y donde a(j) indica el valor agregado que se asigna al valor de argumento j-simo, donde max(a) indica el valor maximo que es uno de los valores agregados que se asigna a uno de los valores de argumento, donde ninguno de los valores agregados que se asignan a uno de los valores de 10 argumento es mayor que el valor maximo y donde
min
j
a( j) - k
max(a)
N
15
indica un valor mlnimo siendo uno de los valores de argumento para el que es mlnimo
a( j) - k
max(a)
N
[00142] La figura 16 muestra un aparato para generar una envolvente senal de audio a partir de uno o mas de los valores de codificacion de acuerdo con una realizacion.
20
[00143] El aparato comprende una interfaz de entrada 1610 para recibir uno mas valores decodificacion y un generador de envolvente 1620 para generar la envolvente de la senal de audio en funcion de uno o mas valores de codificacion.
25 [00144] El generador de envolvente 1620 esta configurado para generar una funcion de generacion en funcion
de uno o mas valores de codificacion donde la funcion de agregacion comprende una pluralidad de puntos de agregacion donde cada uno de los puntos de agregacion comprenden un valor de argumento y un valor de agregacion donde la funcion de agregacion es monotona creciente.
30 [00145] Cada uno de los, uno mas, valores de codificacion indica/n al menos un valor de argumento y un valor
de agregacion de uno de los puntos de agregacion de la funcion de agregacion. Esto significa que cada uno de los valores de codificacion especifica un valor de argumento de uno de los puntos de agregacion o especifica un valor de agregacion de uno de los puntos de agregacion o tanto especifica un valor de argumento como un valor de agregacion de uno de los puntos de agregacion de la funcion de agregacion.
35 En otras palabras, cada uno de los, uno o mas, valores de codificacion indica el valor de argumento y/o el
valor de agregacion de uno de los puntos de agregacion de la funcion de agregacion.
[00146] Ademas, el generador de envolvente 1620 esta configurado para generar la envolvente de senal de audio de modo que la envolvente de senal de audio comprenda una pluralidad de puntos de envolvente
40 donde cada uno de los puntos de envolvente comprende un valor de argumento y un valor de envolvente y
donde para cada uno de los puntos de generacion de la funcion de agregacion, uno de los puntos de envolvente de la envolvente de senal de audio se asigna a dicho punto de agregacion de modo que el valor de argumento de dicho punto de envolvente es igual al valor de argumento dicho punto de agregacion. Ademas, el generador de envolvente 1620 esta configurado para generar la envolvente de senal de audio
45 de modo que el valor de la envolvente de cada uno de los puntos de envolvente de la envolvente la senal
de audio depende de un valor de agregacion de, al menos, un punto de agregacion de la funcion de agregacion.
[00147] De acuerdo con una realizacion el generador de envolvente 1620 puede, por ejemplo, estar
50 configurado, por ejemplo, para determinar la funcion de agregacion determinando uno de los puntos de
agregacion para cada uno de los, uno o mas, valores de codificacion en funcion de dicho valor de codificacion y aplicando interpolacion para obtener la funcion de agregacion en funcion del punto de
5
10
15
20
25
30
35
40
45
50
55
agregacion de cada uno de los uno mas valores de codificacion.
[00148] De acuerdo con una realizacion la interfaz de entrada 1610 puede estar configurada para recibir uno o mas valores de division como uno mas valores de codificacion. El generador de envolvente 1620 puede estar configurado para generar la funcion de agregacion en funcion de uno mas valores de codificacion donde cada uno de los, uno mas, valores de division indica el valor de agregacion de uno de los puntos de agregacion de la funcion de agregacion. Ademas, el generador de envolvente 1620 puede estar configurado para generar la envolvente de senal de audio reconstruida de modo que el/los, uno o mas, punto/s de division divide/n la envolvente de senal de audio reconstruida en dos o mas partes de envolvente de senal de audio. Una regla de asignacion predefinida define un valor de parte de envolvente de senal para cada parte de envolvente de senal de las dos o mas partes de envolvente de senal en funcion de dicha parte de envolvente de senal. Ademas, el generador de envolvente 1620 puede estar configurado para generar la envolvente de senal de audio reconstruida de modo que para cada una de las dos partes de envolvente de senal el valor absoluto del valor de su parte de envolvente de senal sea mayor que la mitad del valor absoluto del valor de parte de la envolvente de senal de cada una de las partes de envolvente de senal.
[00149] En una realizacion, el generador de envolventes 1620 puede, por ejemplo, estar configurado para determinar la primera derivada de la funcion de agregacion en una pluralidad de puntos de agregacion de la funcion de agregacion.
[00150] De acuerdo con una realizacion, el generador de envolvente 1620 puede estar configurado, por ejemplo, para generar la funcion de agregacion en funcion de los valores de codificacion de modo que la funcion de agregacion tenga una derivada primera continua.
[00151] En otras realizaciones un modelo LPC puede derivarse a partir de las envolventes espectrales cuantizadas. Aplicando la transformada de Fourier inversa del espectro de potencia abs2(x), se obtiene la autocorrelacion. A partir de esta autocorrelacion se puede calcular directamente un modelo LPC calculado por procedimientos tradicionales. Dicho modelo LpC puede utilizarse luego para crear una envolvente suave.
[00152] De acuerdo con algunas realizaciones una envolvente suave se puede obtener modelando los bloques con splines u otros procedimientos de interpolacion. Una forma muy adecuada de hacer estas interpolaciones es modelando la suma acumulada del area espectral.
[00153] La figura 7 muestra el mismo espectro que en la figura 6 pero con sus areas acumuladas. La llnea 710 ilustra una llnea de area acumulada de la envolvente de la senal original. Los puntos 721 de (a) 751, 752, 753 de (b) y 781, 782, 783, 784 de (c) indican donde hay que ubicar los puntos de division.
[00154] Los pasos entre los puntos 728, 731 y 729 del eje y de (a) son constantes. Asimismo, los pasos entre: los puntos 768, 751, 752, 753 y 759 del eje de (b) son constantes. Asimismo, los pasos entre los puntos 798, 781, 782, 783, 784 y 789 del eje y en (c) son constantes. La llnea discontinua entre los puntos 729 y 739 indica el valor total.
[00155] En el caso (a) el punto 721 indica la posicion del punto de division 731 del eje x. En el caso (b) los puntos 751, 752 y 753 indica la posicion de los puntos de division en el eje x. Asimismo en el caso (c), los puntos 781, 782, 783 y 784 indican la posicion de los puntos de division 791, 792, 793 y 794 del eje x. Las llneas discontinuas entre los puntos 729 y 739, los puntos 759 y 769 y los puntos 789 y 799, indican el valor total.
[00156] Hay que notar que los puntos 721, 751,752, 753; 781, 782, 783 y 784 que indican la posicion de los puntos de division 731; 761, 762, 763; 791,792, 793 y 794 respectivamente siempre estan en la llnea de area acumulada de la envolvente de la senal original y los pasos del eje y son constantes.
[00157] En este dominio el area espectral acumulada puede interpolarse mediante un algoritmo de interpolacion convencional.
[00158] Para obtener una representation continua en el dominio original el dominio acumulado tiene que tener una derivada primera continua. Por ejemplo, la interpolacion se puede hacer con splines, como para el
bloque k-simo, los puntos de los extremos de un spline es kE/N y (k+1)E/N donde E es el area total del espectro. Ademas, se puede especificar la derivada de la funcion spline en los puntos de los extremos para obtener una envolvente continua en el dominio original.
5 [00159] Una posibilidad es especificar la derivada (tilt) para el k-simo punto de division asl:
tilt (k) =
c(k +1) - c(k -1) f (k +1) - f (k -1)
donde c(k) es la energla acumulada en el k-simo punto de division y f(k) es la frecuencia del k-simo punto de 10 division.
[00160] Mas en general, los puntos k-1 y k+1 pueden ser cualquier valor de codificacion.
[00161] De acuerdo con una realization, el generador de envolvente 1620 esta configurado para determinar la
15 envolvente de senal de audio determinando un cociente entre una primera diferencia y una segunda
diferencia. Dicha primera diferencia es la diferencia entre un primer valor de agregacion c(k+1) de un primer punto de agregacion de la funcion de agregacion y el segundo valor de agregacion, c(k) o c(k-1), de un segundo punto de agregacion de la funcion de agregacion. Dicha segunda diferencia es la diferencia entre un primer valor de argumento f(k+1) de dicho primer punto de agregacion de la funcion de agregacion y un 20 segundo valor de argumento, f(k) o f(k-1), de dicho segundo punto de agregacion de la funcion de
agregacion.
25
[00162] En una realizacion particular, el generador de envolvente 1620 esta configurado para determinar la envolvente de la senal de audio aplicando:
tilt (k) =
c(k +1) - c(k -1) f (k +1) - f (k -1)
donde tilt(k) indica una derivada de la funcion de agregacion en el k-simo valor de codificacion, c(k+1) es dicho primer valor de agregacion, f(k+1) es dicho primer valor de argumento y c(k-1) es dicho segundo valor de agregacion 30 donde f(k-1) es dicho segundo valor de argumento y donde k es un entero que indica un Indice de uno de los uno mas valores de codificacion y donde c(k+1)-c(k-1) es la primera diferencia de los dos valores agregados c(k+1) y c(k- 1) y donde f(k+1)-f(k-1) es la segunda diferencia de los dos valores de argumento f(k+1) y f(k-1).
[00163] Por ejemplo, c(k+1) es el primer valor de agregacion que se asigna al (k+1)-simo valor de codificacion,
35 f(k+1) es dicho primer valor de argumento, asignandose al (k+1)-simo valor de codificacion; c(k-1) es dicho
segundo valor de agregacion asignandose al (k-1)-simo valor de codificacion, f(k-1) es dicho segundo valor de argumento se asigna al (k-1)-simo valor de codificacion.
[00164] En otra realizacion, el generador de envolvente 1620 esta configurado para determinar la envolvente
40 de senal de audio aplicando:
tilt (k) = 0,5 •
r c(k +1) - c(k) c(k) - c(k -1) ^
v f (k +1) - f (k) + f (k) - f (k -1) ,
donde tilt(k) es la derivada de la funcion de agregacion en el k-simo valor de codificacion, c(k+1) es dicho primer 45 valor de agregacion, f(k+1) es dicho primer valor de argumento, c(k) es dicho segundo valor de agregacion, f(k) es dicho segundo valor de argumento y donde c(k-1) es un tercer valor de agregacion de un tercer punto de agregacion de la funcion de agregacion, f(k-1) es el tercer valor de argumento de dicho tercer punto de agregacion de la funcion de agregacion, k es un entero que indica un Indice de uno de los uno o mas valores de codificacion, c(k)-c(k-1) es la primera diferencia de los dos valores agregados, c(k+1) y c(k) y donde f(k+1)-f(k) es la segunda diferencia de los dos 50 valores de argumento f(k+1) y f(k).
[00165] Por ejemplo, c(k+1) es dicho primer valor de agregacion, que se asigna al k-simo valor de codificacion,
5
10
15
20
25
30
35
40
45
50
55
f(k+1) es dicho primer valor de argumento que se asigna al k-simo valor de codificacion, c(k) es dicho segundo valor de agregacion que se asigna al k-simo valor de codificacion, f(k) es dicho segundo valor de argumento que se asigna al k-simo valor de codificacion, c(k-1) es dicho tercer valor de agregacion que se asigna al (k-1)-simo valor de codificacion, f(k-1) es dicho tercer valor de argumento asignandose al (k-1)- simo valor de codificacion.
[00166] Especificar que un valor de agregacion se asigna a un valor k-simo de codificacion, por ejemplo, significa que el k-simo valor de codificacion indica dicho valor de agregacion y/o que el k-simo valor de codificacion indica el valor documento argumento del punto de agregacion al que pertenece dicho valor de agregacion.
[00167] Especificar que un valor de argumento se asigna a un k-simo valor de codificacion, por ejemplo, significa que el valor de codificacion indica dicho valor de argumento y/o que dicho k-simo valor de codificacion indica el valor de agregacion del punto de agregacion al que pertenece dicho valor de argumento.
[00168] En realizaciones particulares, los valores de codificacion k-1 y k+1 son puntos de division, por ejemplo, como se han descrito.
[00169] Por ejemplo, en una realizacion el reconstructor de envolvente de senal 110 de la figura 1, por ejemplo, puede estar configurado para generar una funcion de agregacion en funcion de uno o mas puntos de division donde la funcion de agregacion comprende una pluralidad de puntos de agregacion y donde cada uno de los puntos de agregacion comprende un valor de argumento y un valor de agregacion y donde la funcion de agregacion es monotona creciente y donde cada uno de los uno mas puntos de division indica al menos un valor de argumento y un valor de agregacion de uno de los puntos de agregacion de la funcion de agregacion.
[00170] En dicha realizacion, el reconstructor de envolvente de senal 110, puede, por ejemplo, estar configurado para generar la envolvente la senal de audio de modo que la envolvente de senal de audio comprenda una pluralidad de puntos de envolvente donde cada uno de los puntos de envolvente comprende un valor de argumento y un valor de envolvente y donde cada punto de envolvente de la envolvente de senal de audio se asigna a cada uno de los puntos de agregacion de la funcion agregacion de modo que el valor de argumento de dicho punto de envolvente es igual al valor de argumento de dicho punto de agregacion.
[00171] Ademas, en dicha realizacion el reconstructor de envolvente de senal 110, puede, por ejemplo, estar configurado para generar la envolvente de senal de audio de modo que el valor de envolvente de cada uno de los puntos de envolvente de la envolvente la senal de audio depende del valor de agregacion de al menos un punto de agregacion de la funcion de agregacion.
[00172] En una realizacion particular el reconstructor de envolvente de senal 110 puede, por ejemplo, estar configurado para determinar la envolvente de la senal de audio determinando un cociente entre una primera diferencia y una segunda diferencia, dicha primera diferencia siendo una diferencia entre un primer valor de agregacion c(k+1) y un primer punto de agregacion de la funcion de agregacion y un segundo valor de agregacion )c(k-1); c(k)) de un segundo punto de agregacion de la funcion de agregacion y siendo dicha segunda diferencia la diferencia entre un primer valor de argumento f(k+1) de dicho primero punto de agregacion de la funcion de agregacion y un segundo valor de argumento (f(k-1);f(k)) de dicho segundo punto de agregacion de la funcion de agregacion. Para este proposito el reconstructor de envolvente de la senal 110 puede estar configurado para ejecutar una de las ideas descritas anteriormente como se ha explicado para el generador de envolvente 1620.
[00173] las aristas izquierda y derecha no se pueden usar en la ecuacion anterior de inclination, tilt, puesto que los c(k) y f(k) no estan definidos fuera de su rango. Estos c(k) y f(k) que estan fuera del rango de k se sustituyen por los valores de los puntos extremos en si de modo que:
tilt (0) =
c(1) - c(0) f (1) - f (0)
y
tilt (N -1)
c( N -1) - c( N - 2)
f (N -1) - f (N - 2)
[00174] Puesto que hay cuatro restricciones (el area acumulada y la inclinacion en ambos puntos extremos) el
5 spline correspondiente puede elegirse que sea un polinomio de cuarto grado.
[00175] La figura 8 muestra un ejemplo de envolvente de area espectral interpolada tanto en el dominio del area original (a) como en el acumulativo (b).
10 [00176] En el caso (a) la envolvente de senal original se indica con el numero de referencia 810 y la
envolvente de area espectral interpolada se indica con el numero de referencia 820. Los puntos de division se indican por respectivamente con los numeros de referencia 831, 832, 833 y 834. 838 indica el inicio de la envolvente de senal y 839 indica el final de la envolvente de senal.
15 [00177] En el caso (b) 840 indica la envolvente de senal original acumulada y 850 indica la envolvente de area
espectral acumulada. Los puntos de division se indican con los numeros de referencia 861, 862, 863 y 864 respectivamente. La posicion de los puntos de division indicados por los puntos 851, 852, 853, 854 de la envolvente de senal original acumulada 840. 868 indica el inicio de la envolvente de senal original y 869 indica la terminacion de la envolvente de senal original en el eje x. La llnea entre 869 y 859 indica el valor
20 total.
25
30
35
40
[00178] Las realizaciones proporcionan conceptos de codificacion de las frecuencias que separan los bloques. Las frecuencias representan una lista ordenada de valores escalares fk, es decir, fk < fk+1. Si hay K+1 bloques entonces hay K puntos de division.
[00179] Ademas, si hay N niveles de cuantizacion entonces hay
' N N' v K ,
posibles cuantizaciones. Por ejemplo,
con 32 niveles de cuantizacion y cinco puntos de division hay 201376 posibles cuantizaciones que se pueden codificar con 18 bits.
[00180] Hay que observar que el decorrelador de control transitorio (TSD) de la MPEG USAC [5] tiene un problema parecido para codificar K posiciones en un rango de 0 a N-1, por lo que la misma tecnica de enumeracion o parecida se puede utilizar para codificar las frecuencias del problema que se trata. El beneficio de este algoritmo de codificacion es que tiene un consumo de bits constante.
[00181] Alternativamente para mejorar mas la precision o reducir la tasa de bits se pueden utilizar tecnicas de cuantizacion de vectores convencionales tales como las que se usan para la cuantizacion de LSF. Con dicha estrategia se puede obtener un mayor numero de niveles de cuantizacion y la cuantizacion, en cuanto a la distorsion media se puede optimizar. El inconveniente es que, entonces, los libros de codigos pueden, por ejemplo, tener que almacenarse mientras que con la estrategia TSD se utiliza una enumeracion algebraica de constelaciones.
[00182] En lo que sigue se describen algoritmos segun las realizaciones.
[00183] En primer lugar, se considera el caso de aplicacion general.
[00184] En particular lo que sigue describe una aplicacion practica del procedimiento de cuantizacion de
45 distribucion propuesta para codificar una envolvente espectral en un escenario parecido a SBR:
De acuerdo con algunas realizaciones el codificador esta configurado para:
- calcular la magnitud espectral o los valores de energla de la banda de alta frecuencia de la senal de audio original y/o
- calcular un numero predefinido (o arbitrario y transmitido) de K Indices de subbanda que dividen la envolvente 50 espectral en K+1 bloques de igual area de bloque y/o
- codificar los Indices utilizando el mismo algoritmo que en TSD [5] y/o
- cuantizar y codificar el area total de la banda de alta frecuencia (por ejemplo, usando Huffman) escribiendo el area total y los Indices en el flujo de bits.
10
15
20
25
30
35
40
45
50
55
[00185] De acuerdo con algunas realizaciones el decodificador esta configurado para_
- leer el area total y los indices del flujo de bits y decodificarlos a continuacion y/o
- aproximar la curva de area acumulada suave con interpolacion de splines y/o
- la curva de la derivada primera del area acumulada para reconstruir la envolvente espectral
[00186] Algunas realizaciones comprenden ademas opciones adicionales; por ejemplo, algunas realizaciones proporcionan capacidad de deformacion; disminuir el numero de posibles niveles de cuantizacion deriva en una reduction de los bits necesarios para codificar los puntos de division y adicionalmente reduce la complejidad computacional. Este efecto se puede explotar, por ejemplo, alterando la envolvente espectral recurriendo a caracteristicas psicoacusticas o simplemente sumando bandas de frecuencia adyacentes en el decodificador antes de aplicar la cuantizacion de distribution. Despues de la reconstruction de la envolvente espectral a partir de los indices de puntos de division y el area total en el lado del decodificador la envolvente se tiene que desalterar aplicando la caracteristica inversa.
[00187] Algunas otras realizaciones proporcionan una conversion de envolvente adaptativa; como se ha mencionado antes no hace falta aplicar la cuantizacion de distribucion a las energias de la envolvente espectral (por ejemplo, abs2(x) de la senal x) sino que se puede aplicar otra representation cualquiera (positiva, de valor real), por ejemplo, (abs(x), sqrt(abs(x)) etc. Para ser capaz de explotar las diferentes propiedades de ajuste de forma de las distintas representaciones de envolvente es razonable utilizar una tecnologia de conversion adaptativa. Por lo tanto, la detection de la conversion de mejor ajuste (de un conjunto fijo predefinido) de la envolvente en cuestion se realiza como paso de preprocesamiento antes de que se aplique la cuantizacion de distribucion. La conversion utilizada se tiene que senalizar y transmitirse a traves del flujo de bits para permitir una correcta reconversion del lado del decodificador.
[00188] Otras realizaciones estan configuradas para dar soporte a un numero de bloques adaptativo para obtener aun una mayor flexibilidad en el modelo propuesto; es beneficioso poder cambiar entre distintos numeros de bloques para cada envolvente espectral. El numero de bloques que se elija puede ser de entre los de un conjunto predefinido para minimizar la demanda de bits de serialization o transmitirse explicitamente para permitir la mayor flexibilidad. Por otra parte, esto reduce la tasa de bits global puesto que para formas de envolvente fijas no hay necesidad de una adaptatividad. Por otra parte, un menor numero de bloques da lugar a unas areas de bloque mayores lo que permite un ajuste mas preciso de los grandes picos separados con pendientes fuertes.
[00189] Algunas las realizaciones estan configuradas para proporcionar estabilizacion de envolvente. Gracias a la mayor flexibilidad del modelo de cuantizacion de distribucion propuesto, en comparacion con, por ejemplo, una estrategia basada en bandas con factor de escala las fluctuaciones entre las envolventes adyacentes temporales pueden suponer inestabilidades no deseadas. Para contrarrestar este efecto se aplica una tecnica de estabilizacion de envolvente adaptativa a la senal como paso de posprocesamiento; para las partes de la senal constantes donde solo cabe esperar unas pocas fluctuaciones la envolvente se estabiliza alisando los valores de envolvente adyacente temporalmente. Para las partes de la senal que de forma natural suponen unos cambios temporales fuertes, por ejemplo, los transitorios o el inicio/ fin fricativo o silbante solo se aplica un alisado debil o ni tan siquiera.
[00190] En lo que sigue se describe un algoritmo de codification y cuantizacion de distribucion de envolvente segun una realizacion.
[00191] La description de la realization practica del procedimiento de cuantizacion de distribucion propuesto para codificar la envolvente espectral en un escenario parecido a SBR. La siguiente representacion del algoritmo hace referencia a los pasos del lado del codificador y del decodificador que pueden, por ejemplo, seguirse para procesar una envolvente especifica. En lo que sigue se describe el codificador correspondiente.
[00192] La determination y preprocesamiento de envolvente puede por ejemplo hacerse asi:
- determinar una curva de envolvente objetivo de energia espectral, por ejemplo, representada por 20 muestras de subbanda y su correspondiente energia total
- aplicar deformacion de envolvente promediado pares de valores de subbanda para reducir el numero total de valores (por ejemplo, promediando los 8 valores de subbanda y, por tanto, reduciendo el numero total de 20 a 16).
- aplicar la conversion de magnitud de envolvente para un mejor ajuste entre el rendimiento del modelo de la envolvente y los criterios de calidad perceptual (por ejemplo, la extraction de la raiz cuarta de cada valor de
5
10
15
20
25
30
35
40
45
50
55
subbanda xk =
[00193] La cuantizacion de distribution y la codification pueden, por ejemplo, hacerse como sigue:
- determinar multiplemente Indices de subbanda dividiendo la envolvente en un numero de bloques predefinido de la misma area (por ejemplo, aplicandolo cuatro veces seguidas para dividir la envolvente en 3, 4, 6 y 8 bloques).
- reconstruir completamente las envolventes cuantizadas de distribucion (estrategia «analysis by synthesis»; vease mas adelante)
- determinar y decidir el numero de bloques resultante de una description precisa de la envolvente, por ejemplo, por comparacion de las correlaciones cruzadas de las envolventes cuantizadas de distribucion y la original)
- corregir el valor sonoro comparando la envolvente original y la envolvente cuantizada de distribucion y de acuerdo con la adaptation de la energla total
- codificar los Indices de division utilizando el mismo algoritmo que la herramienta TSD [5]
- senalizar el numero de bloques utilizados para la cuantizacion de distribucion, por ejemplo, cuatro numeros de bloques predefinidos; serialization mediante 2 bits)
- cuantizar y codificar la energla total, por ejemplo, utilizando la codificacion Huffman
[00194] A continuation, se describira el decodificador correspondiente.
[00195] La decodificacion y la cuantizacion inversa pueden, por ejemplo, realizarse como sigue:
- decodificar el numero de bloques a usar para la cuantizacion de distribucion y decodificacion de la energla total
- decodificar los Indices de division utilizando el mismo algoritmo que la herramienta TSD [5]
- aproximar la curva suave de area acumulada mediante interpolation con splines
- reconstruir la envolvente espectral a partir del dominio acumulado a traves de la derivada primera, por ejemplo, obteniendo la diferencia de muestras consecutivas
[00196] El posprocesamiento puede, por ejemplo, hacerse como sigue:
- aplicar la estabilizacion de envolvente para contrarrestar fluctuaciones entre envolvente consecutivas causadas por errores de cuantizacion, por ejemplo, por alisado temporal de valores de subbanda reconstruidos
Xactual ,k = (l ~a)-Xactual ,k + &' Xprevio,k con a=0,1 para tramas que contengan partes de senal transitorias y
a=0,25 si no.
- revertir la conversion de la envolvente segun la aplicacion en el codificador
- revertir la deformation de la envolvente segun aplicacion en el codificador
[00197] En lo que sigue se describe la codificacion y decodificacion eficiente de puntos de division. El codificador de puntos de division 225 de la figura 4 y de la figura 5 puede, por ejemplo, estar configurado para realizar la codificacion eficiente como se describe a continuacion. El decodificador de puntos de division 105 de la figura 2 puede, por ejemplo, estar configurado para realizar una decodificacion eficiente como se describen a continuacion.
[00198] En la realization mostrada en la figura 2 el aparato para decodificar ademas comprende el decodificador de puntos de division 105 para decodificar uno o mas puntos codificados en funcion de una regla de decodificacion para obtener el/los, uno mas, puntos de division. El decodificador de puntos de division 105 esta configurado para analizar el numero total de posiciones que indica el numero total de posiciones de puntos de division posibles, el numero de puntos de division que indica el numero de puntos division y el numero de estado de puntos de division. Ademas, el decodificador de puntos de division 105 esta configurado para generar una indication de una o mas posiciones de puntos de division utilizando el numero total de posiciones, el numero de puntos de division y el numero de estado de puntos de division. En una realizacion particular el decodificador de puntos de division 105 puede, por ejemplo, estar configurado para generar una indicacion de dos o mas posiciones de puntos de division utilizando el numero total de posiciones, el numero de puntos de division y el numero de estado de puntos de division.
[00199] En las realizaciones mostradas en las figuras 4 y 5 el aparato ademas comprende un codificador de puntos de division 225 para codificar la posicion de cada uno de los, uno o mas, puntos de division para obtener uno o mas puntos codificados. El codificador de puntos de division 225 esta configurado para codificar la position de cada uno de los, uno o mas, puntos de division codificando el numero de estado de puntos de division. Ademas, el codificador de puntos de division 225 esta configurado para proporcionar un numero total de posiciones que indica el numero total de posibles posiciones de puntos de division y el numero de puntos de division que indica el numero de uno mas puntos de division que hay. El numero de
5
10
15
20
25
30
35
40
45
50
estado de puntos de division. el numero total de posiciones y el numero de puntos de division conjuntamente indican la posicion de cada uno de los uno o mas puntos de division.
[00200] La figura 15 muestra un aparato para reconstruir una senal de audio de acuerdo con una realizacion. El aparato comprende un aparato para decodificar 1510 de acuerdo con una de las realizaciones descritas o de acuerdo con una de las realizaciones que se describen a continuacion, para obtener una envolvente de senal de audio reconstruida de la senal de audio y un generador de senal 1520 para generar la senal de audio en funcion de la envolvente de la senal de audio y en funcion de una caracterlstica de senal adicional de la senal de audio siendo la caracterlstica de senal adicional distinta de la envolvente de la senal de audio. Como se ha descrito anteriormente un experto en la materia sabe que a partir de la envolvente de una senal de audio y a partir de una caracterlstica de senal adicional de la senal de audio la senal de audio en si se puede reconstruir. Por ejemplo, la envolvente de la senal puede, por ejemplo, indicar la energla de las muestras de la senal de audio. La caracterlstica de senal adicional puede, por ejemplo, indicar para cada muestra de, por ejemplo, una senal de audio del dominio temporal si la muestra tiene un valor positivo o negativo.
[00201] Algunas realizaciones particulares se basan en que el numero total de posiciones que indica el numero total de posiciones de puntos division posibles y el numero de puntos de division que indica el numero total de puntos de division pueden estar disponibles en un aparato de decodificacion de la presente invention. Por ejemplo, un codificador puede transmitir el numero total de posiciones y/o el numero de puntos de division al aparato de decodificacion.
[00202] Basandose en estas hipotesis, algunas realizaciones aplican las siguientes ideas:
Sea N el numero total de posibles posiciones de puntos de division y
P el numero total de puntos de division
[00203] Se asume que tanto el aparato de codification como el aparato de decodificacion conocen los valores de N y P.
[00204]
Conociendo los valores de N y P se pueden derivar que solo hay
f N']
v P J
combinaciones diferentes de
posiciones de puntos de division posibles.
[00205] Por ejemplo, si las posiciones de entre las posiciones de puntos de division posibles van de 0 a N-1 y si P=8, entonces una primera combination posible de posiciones de puntos de division con eventos serla (0, 1, 2, 3, 4 ,5 ,6, 7), una segunda serla (0, 1, 2, 3, 4 ,5 ,6, 8) etc. hasta la combinacion (N-8, N-7, N-6, N-5,
f N \
N-4, N-3, N-2, N-1) de modo que en total hay
vPJ
combinaciones diferentes.
[00206] La siguiente idea que se aplica es que el numero de estado de puntos de division puede estar codificado por el aparato de codificacion y que el numero de estado de puntos de division se le transmite al
decodificador. Si cada una de las
f N ^ v P J
combinaciones posibles se representa por un unico numero de
estado de puntos de division y si el aparato de decodificacion conoce que numero de estado de puntos de division representa que combinacion de posiciones de puntos de division entonces el aparato de decodificacion puede decodificar las posiciones de los puntos de division utilizando N y P y el numero estado de puntos de division. Para una gran cantidad de valores tlpicos de N y P dicha tecnica de codificacion utiliza menos bits para la codificacion de posiciones de puntos de division de eventos que otras ideas.
[00207] Dicho de otra manera, el problema de codificacion de las posiciones de puntos de division se puede resolver codificando un numero P de posiciones pk en el intervalo [0...N-1], de modo que las posiciones no se solapen pk^ph si k^h con el mlnimo numero de bits posible. Puesto que el orden de las posiciones no importa se deduce que el numero de combinaciones de posiciones unicas es el numero combinatorio
5
10
15
20
25
30
35
40
45
' N '
V P J
El numero necesario de bits por lo tanto es:
f
bits = ceil
log;
V
V n)Vs
p
VV P JJJ
[00208] Algunas realizaciones utilizan la idea de decodificacion posicion por posicion. Este concepto se basa en las siguientes ideas:
Se asume que N es el numero total de posiciones de puntos de division posibles y P es el numero de puntos de division (esto significa que N puede ser el numero total de posiciones FSN y puede ser el numero de puntos de division ESON). Se considera ahora a primera posicion de punto de division posible. Se pueden distinguir dos casos: si la primera posicion de punto de division posible es una posicion que no comprende un punto de division entonces
f N -1)
teniendo en cuenta el resto de posiciones de puntos de division posibles hay solo
P
combinaciones posibles
J
diferentes de P puntos de division teniendo en cuenta las restantes posiciones de puntos de division posibles.
[00209] Sin embargo, si la posicion del punto de division posible comprende un punto de division entonces teniendo en cuenta las restantes posiciones de puntos de division posibles solo hay
f N -l) f N) f N -1)
combinaciones posibles diferentes de las P-1 restantes posiciones de puntos
V P J
de division posibles teniendo en cuenta los restantes N-1 puntos de division.
v P -1J
V P J
[00210] Basandose en esta idea, las realizaciones se basan ademas en la idea de que todas las combinaciones con una primera posicion de puntos de division posibles en la que no este ubicado un punto de division se tienen que codificar mediante numeros de estado de puntos de division que sea menores o iguales a un valor umbral. Ademas, todas las combinaciones con una primera posicion: de punto de division posible donde no este ubicado un punto de division deberla codificarse mediante numeros de estado de puntos de division que sean mayores que un valor umbral. En una realizacion todos los numeros estado de puntos de division pueden ser enteros positivos o 0 y un valor umbral adecuado para la primera posicion de
f N -1)
punto de division posible puede ser
V
P
J
[00211] En una realizacion, se determina si la primera posicion de punto de division posible de una trama comprende un punto de division por comprobacion de si el numero de estado de puntos de division es mayor que un valor umbral. Alternativamente, el procedimiento de codificacion/ decodificacion de las realizaciones tambien se puede realizar comprobando si el numero de estado de puntos de division es mayor o igual, menor o igual o menor que el valor umbral.
[00212] Despues de analizar la primera posicion: de punto de division posible la decodificacion continua para la segunda posicion de punto de division posible utilizando los valores ajustados; ademas de ajustar el numero de posiciones de puntos de division consideradas (que se reduce en uno) el numero: de division tambien se reduce en uno y el numero estado de puntos de division se ajusta en caso de que el numero de estado de puntos de division sea mayor que el valor umbral para eliminar la parte relativa a la primera posicion de punto de division posible del numero de estado de puntos de posicion. El procedimiento de decodificacion se puede continuar para mas posiciones de puntos de division posibles de forma analoga.
[00213] En una realizacion, un numero discreto P de posiciones pk en el intervalo [0,...,N-1] se codifica de modo que todas las posiciones no se solapen pk^ph si k^h. En este caso, cada combinacion unica de posiciones del intervalo dado se llama estado y cada posicion posible del intervalo se llama posicion de punto de division posible (pspp). De acuerdo con una realizacion de un aparato de decodificacion la primera posicion de punto de division posible en el intervalo es la que se considera. Si la posicion de punto de division posible no tiene un punto de division entonces el intervalo se puede reducir a N-1 y el numero de
5
10
15
20
25
30
35
40
45
posibles estados se reduce a
' N - l'N
v P J
Viceversa, si el estado es mayor que
' N -1
v P J
entonces se
puede concluir que la primera posicion de punto de division posible tiene un punto de division. Se puede aplicar entonces el siguiente algoritmo de decodificacion:
Para cada pspp h
(N - h -l|
Si estado>
P
entonces
Asignar un punto de division a pspp h
Actualizar el estado restante estado:=estado ■
(N - h -l| P
Reducir el numero de posiciones restante P:=P-1
Fin si
Fin
[00214] El calculo del numero conminatorio en cada iteration resultarla costoso. Por lo tanto, de acuerdo con las realizaciones se pueden usar las siguientes reglas para actualizar el numero combinatorio utilizando valor de la iteracion anterior:
( N |
v P J
( N - l| N
v p J■ ~N^P
y
( N |
( N | N - P +1
v P J
VP - 1J
P
[00215] Utilizando estas formulas cada actualization del numero combinatorio solo cuesta una multiplication, y una division mientras que una evaluation expllcita supondrla P multiplicaciones y divisiones en cada iteracion.
[00216] En esta realization la complejidad total del decodificador es de P multiplicaciones y divisiones de initialization del numero conminatorio, para cada iteracion 1 multiplicacion y una division y una sentencia if y para cada posicion codificada una multiplicacion una suma y una division. Hay que observar que en teorla serla posible reducir el numero de divisiones necesarias para la inicializacion a 1. En la practica, sin embargo, esta estrategia resultarla en enteros demasiado grandes que son diflciles de manejar. La complejidad en el caso peor del decodificador es entonces de N+2P divisiones y multiplicaciones, P sumas (se pueden ignorar si se utilizan operaciones de suma y multiplicacion combinada) y N sentencias if.
[00217] En una realizacion, el algoritmo de codification utilizado por un aparato para codificar no tiene que iterar para todas las posiciones de puntos de division posible sino solo aquellas que tienen una posicion asignada a ellas. Por lo tanto:
Para cada posicion ph h=1...P
Actualizar estado; estado:= estado+
f
Ph-i
\
v
h
J
[00218] La complejidad del caso peor del codificador es P(P-1) multiplicaciones y divisiones, as! como P(P-1) sumas.
[00219] La figura 9 muestra un procedimiento de decodificacion de acuerdo con una realizacion de la presente invention. En esta realizacion la decodificacion se realiza posicion por posicion.
[00220] En el paso 110 se inicializan los valores. El aparato de decodificacion almacena el numero de estado de puntos de division que se recibe como valor de entrada en la variable s. Ademas, el numero total de puntos de division se indica por un numero de puntos de division almacenado en la variable p. Ademas, el numero total de posiciones de puntos de division posibles contenida en la trama se indica por el numero total de posiciones y se almacena en la variable N.
[00221] En el paso 120 el valor de spSepData[y] se inicializa en 0 para todas las posiciones de puntos de
5
10
15
20
25
30
35
40
45
50
55
division posibles. La ristra de bits spSepData es el dato de salida a generar. Indica para cada posicion de punto de division posible t si la posicion del punto de division posible comprende un punto de division (spSepData[t]=1) o si no (spSepData[t]=0). En el paso 120 los valores correspondientes de todas las posiciones de puntos de division posibles se inicializan en 0.
[00222] En el paso 130 la variable k se inicializa en el valor N-1. En esta realization las posiciones de puntos de division posibles se numeran 0, 1, 2...N-1. Eligiendo k=N-1 significa que la posicion del punto de division posible con el numero mas alto es la que primero se contempla.
[00223] En el paso 140 se comprueba si k>0. Si k <0 la decodificacion de las restantes posiciones de puntos de division posibles ha terminado y el procedimiento finaliza, si no el procedimiento continua en el paso 150.
[00224] En el paso 150 se comprueba si p>k. Si p es mayor que k, significa que todas las restantes posiciones de puntos de division posibles comprenden un punto de division unico. El procedimiento continua en el paso 230 donde a todos los valores de campo spSepData de las restantes posiciones de puntos de division posibles 0, 1,...k se les asigna un 1, indicando que cada una de las restantes posiciones de puntos de division posibles comprenden un punto de division. En este caso el proceso termina a continuation. Sin embargo, si en el paso 150 el valor p no es mayor que k entonces el procedimiento de decodificacion continua en el paso 160.
[00225]
En el paso 160 se calcula
f k 1 v P y
y c se utiliza como valor umbral.
[00226] En el paso 170 se comprueba si el valor real del numero de estado de puntos de division s es mayor o igual que c donde c es el valor umbral que se acaba de calcular en el paso 160.
[00227] Si s es menor que c esto significa que la posicion del punto de division posible considerada (con punto de division k) no comprende un punto de division. En este caso no hace falta hacer nada mas puesto que spSepData[k] ya tiene valor asignado igual a 0 para esta posible posicion de punto de division desde el paso 140. El procedimiento luego continua en el paso 220. En el paso 220 a k se actualiza, k:=k -1, y se considera la siguiente posicion de punto de division posible.
[00228] Sin embargo, si de la comprobacion del paso 170 s es mayor o igual que c, esto significa que la posicion de punto de division posible considerada (con punto de division k) comprende un punto de division. En este caso el numero de estado de puntos de division s se actualiza y se le asigna el valor s:=s-c en el paso 180. Ademas, en el paso 190 a spSepData[k] se le asigna un 1 para indicar que las restantes posiciones de puntos de division posibles comprenden un punto de division. Ademas, en el paso 200 sea p el valor p-1 indicando que las restantes posiciones de puntos de division posibles a examinar ahora solo comprenden p-1 posiciones de puntos de division posibles con puntos de division.
[00229] En el paso 210 se comprueba si p es igual a 0. Si el valor de p es igual a 0 las restantes posiciones de puntos de division posibles no comprenden puntos de division y finaliza el procedimiento de decodificacion.
[00230] En caso contrario al menos una de las restantes posiciones de puntos de division posibles comprenden un evento y el procedimiento continua en el paso 220 en el que el procedimiento de decodificacion continua con la siguiente posicion de punto de division posible (k-1).
[00231] El procedimiento de decodificacion de la realizacion mostrada en la figura 9 genera la ristra spSepData como valor de salida indicando para cada posicion k de punto de division posible si la posicion del punto de division posible comprende un punto de division (spSepData[k]=1) o si no (spSepData(k)=0).
[00232] La figura 10 muestra un pseudocodigo para decodificar las posiciones de puntos de division de acuerdo con una realizacion.
[00233] La figura 11 muestra un procedimiento de codification para codificar puntos de division de acuerdo con una realizacion. En esta realizacion la codificacion se realiza posicion por posicion. El proposito del procedimiento de codificacion de acuerdo con la realizacion mostrada en la figura 11 es generar un numero
de estado de puntos de division.
10
15
20
25
30
35
[00234] En el paso 310 se inicializa los valores p_s se inicializa en 0. El numero de estado de puntos de division se genera actualizando sucesivamente la variable p_s. Cuando el procedimiento de codificacion termina p_s tendra el valor del numero de estado de puntos de division. El paso 310 tambien inicializa la variable k asignandole el valor k:=numero de puntos de division -1.
[00235] En el paso 320 a la variable pos se le asigna el valor pos:=spPos[k] donde spPos es una ristra que contiene las posiciones para posiciones de puntos de division posibles que comprenden puntos de division.
[00236] Las posiciones de puntos de division de la ristra se almacenan en orden ascendente.
[00237] En el paso 330 se comprueba si k>pos. Si es as! el procedimiento termina. En caso contrario el procedimiento continua en el paso 340.
( pos ^
[00238] En el paso 340 se calculara el valor C =
lk + lJ
[00239] En el paso 350 la variable p_s se actualiza p_s:=p_s +c.
[00240] En el paso 360 se actualiza k, k:=k-1.
[00241] Entonces en el paso 370 se hace la comprobacion de si k>0. En este caso, se contempla la siguiente posicion de punto de division posible k-1. En otro caso el procedimiento termina.
[00242] La figura 12 muestra un pseudocodigo correspondiente a la codificacion de las posiciones de puntos de division de acuerdo con una realizacion de la presente invencion.
[00243] La figura 13 muestra un decodificador de puntos de division 410 de acuerdo con una realizacion.
[00244] El numero total de posiciones FSN que indica el numero total de posiciones de puntos de division posibles, el numero ESON que indica el numero total de puntos de division y el numero de estado de puntos de division ESTN se introducen en el decodificador de puntos de division 410. El decodificador de puntos de division 410 comprende un divisor 440. El divisor 440 esta adaptado para dividir una trama en una primera particion que comprenda un primer conjunto de posibles posiciones de puntos de division y en una segunda posicion que comprenda un segundo conjunto de posibles posiciones de puntos de division y donde las posiciones de puntos de division posibles que comprenden puntos de division se determinan separadamente para cada una de las particiones. Asl, las posiciones de los puntos de division se pueden determinar dividiendo repetidamente las posiciones en particiones cada vez mas pequenas.
[00245] La decodificacion basada en particiones del decodificador de puntos de division 410 de esta 40 realizacion se basa en las siguientes ideas:
- dividir un conjunto de todas las posibles posiciones de puntos de division se divide en dos particiones A y B; cada particion comprende un conjunto de posibles posiciones de puntos de division donde la particion A comprende Na posiciones de puntos de division posibles y la particion B comprende Nb posiciones de puntos de division posibles y de modo que Na + Nb el=N. El conjunto de todas las posiciones de puntos division posibles se puede dividir 45 arbitrariamente en dos particiones, preferiblemente de modo que la particion A y B tengan aproximadamente el mismo numero de posiciones de puntos de division posibles, por ejemplo, de modo que Na= Nb o Na= Nb-1. Dividiendo el conjunto de todas las posiciones de puntos de division posibles en dos particiones la tarea de determinar las posiciones de puntos de division reales tambien se divide en dos subtareas, a saber, determinar las posiciones de puntos de division reales en la particion A de la trama y la determinacion de las posiciones de puntos 50 de division reales en la particion B de la trama.
[00246] En esta realizacion se asume de nuevo que el decodificador de puntos de division 105 sabe el numero total de posiciones de puntos de division posibles, el numero total de puntos de division y el numero de estado de puntos de division. Para realizar ambas subtareas el decodificador de puntos de division 105 55 debe tambien saber el numero de posiciones de puntos de division posibles de cada particion, el numero de
puntos de division de cada particion y el numero de estado de puntos de division de cada particion de modo
5
10
15
20
25
30
35
40
45
50
que un numero de estado de puntos de division de una particion ahora se llamara numero de subestado de puntos de division.
[00247] Puesto que el decodificador de puntos de division divide por si mismo el conjunto de todos los puntos de division posibles en dos particiones, sabe por si mismo que la particion A comprende Na posibles posiciones de puntos de division y que la particion B comprende Nn posiciones de puntos de division posibles. Determinar el numero de puntos de division reales para cada una de ambas particiones se basa en las siguientes ideas: puesto que el conjunto de todas las posiciones de puntos de division posible se ha dividido en dos particiones cada una de las posiciones de puntos de division reales ahora estara ubicada o bien en la particion A o bien en la particion B. Ademas, asumiendo que P es el numero de puntos de division de una particion y N el numero total de posiciones de puntos de division posibles de la particion y que f(P,N) es una funcion que devuelve el numero de combinaciones diferentes de posiciones de puntos de division entonces el numero de combinaciones diferentes para dividir el conjunto completo de posiciones de puntos de division posibles (que se ha dividido en una particion A y en otra particion B es:
Numero de puntos de Numero de puntos de division de la particion A division de la particion B
0
2
P
P-1
P-2
Numero de diferentes combinaciones de todo el conjunto de posicion de puntos de division con esta configuracion
________________f(0, Na)f(P, Nb)___________________________
________________f(1, Na)f(P-1, Nb)__________________________
________________f(2, Na) f(P-2, Nb)__________________________
P
0
f(P, Na)f(0, Nb)
[00248] Basandose en las consideraciones anteriores, de acuerdo con una realizacion todas las combinaciones con la primera configuracion en la que la particion tiene 0 puntos de division y que la particion B tiene P puntos de division deberlan codificarse con un numero de estado de puntos de division menor que un primer valor umbral. El numero de estado de puntos de division puede codificarse como un valor entero que sea positivo o 0. Puesto que solo hay f(0, Na)f(P, Nb) combinaciones con la primera configuracion un primer valor umbral adecuado podrla ser f(0, Na)f(P, Nb).
[00249] Todas las combinaciones con la segunda configuracion donde la particion A tiene 1 punto de division y la particion B tiene P-1 puntos de division deberlan codificarse con un numero de estado de puntos de division mayor o igual que el primer valor umbral pero inferior o igual al segundo valor umbral. Puesto que solo hay f(1, Na)f(P-1, Nb) combinaciones con la segunda configuracion un segundo valor umbral adecuado podrla ser f(0, Na)f(P, Nb) + f(1, Na)f(P-1, Nb). El numero de estado de puntos de division para las combinaciones con otras configuraciones se determina analogamente.
[00250] De acuerdo con una realizacion la decodificacion se realiza separando un conjunto de todas las posibles posiciones de puntos division en dos particiones A y B. Luego se comprueba si el numero total de puntos de division es inferior a un primer valor umbral. En una realizacion preferida el primer valor umbral puede ser f(0, Na)f(P, Nb).
[00251] Si el numero de estado de puntos de division es inferior al primer valor umbral se puede concluir que la particion A comprende 0 puntos de division y que la particion B comprende todos los puntos de division P. La decodificacion se realizara a continuacion para mas particiones teniendo en cuenta el numero determinado que representa el numero de puntos de division de la particion correspondiente. Ademas, un primer numero de estado de puntos de division se determina para la particion A y un segundo numero de estado de puntos de division se determina para la particion B, que se usan respectivamente como nuevos numeros de estado de puntos de division. En este documento el numero de estados de puntos de division de una particion se llama «numero de subestado de puntos de division®.
[00252] Sin embargo, si el numero de estado de puntos de division es mayor o igual que el primer valor umbral el numero de estado de puntos de division se puede actualizar. En una realizacion preferida el numero de estado de puntos de division se puede actualizar restando un valor de numero de estado de puntos de division, preferiblemente, restando el valor umbral, por ejemplo, f(0, Na)f(P, Nb). En un paso siguiente se comprueba si el numero de estado de puntos division actualizado es inferior a un segundo valor umbral. En una realizacion preferida el segundo valor umbral puede ser f(1, Na)f(P-1, Nb). Si el numero de estado de puntos de division es inferior al segundo valor umbral se puede concluir que la particion A tiene un punto de division y la particion B tiene P-1 puntos de division.
[00253] La decodificacion se realizara entonces para ambas particiones teniendo en cuenta los numeros determinados de puntos de division de cada particion. Un primer numero de subestado de puntos de division se utiliza para decodificar la particion A y un segundo numero de subestado de puntos de division
5 se utiliza para decodificar la particion B. Sin embargo, si el numero de estado de puntos de division es
mayor o igual al segundo valor umbral el numero de estado de puntos de division se puede actualizar. En una realizacion preferida el numero de estado de puntos de division se puede actualizar restando un valor del numero de estado de puntos de division, preferiblemente f(1, Na)f(P-1, Nb). El procedimiento de decodificacion se aplica de forma similar para las restantes posibilidades de distribucion de puntos de
10 division de las dos particiones.
[00254] En una realizacion un numero de subestado de puntos de division de la particion A y un numero de subestado de puntos de division de la particion B se pueden utilizar para decodificar una particion A y una particion B donde ambos numeros de estado de evento se determinan haciendo la division: numero de
15 estado de puntos de division entre la funcion del numero de puntos de division de la particion, Nb.
[00255] Preferiblemente el numero de subestado de puntos de division de la particion A es la parte entera de la division anterior y el numero de subestado de puntos de division de la particion B es el resto de dicha division. El numero de estado de puntos de division utilizado en esta division puede ser el numero de
20 estado de puntos de division original de la trama o un numero de estado de puntos de division actualizado,
por ejemplo, actualizado restando uno o mas valores umbrales como se ha descrito anteriormente.
[00256] Para ilustrar la idea anterior de una decodificacion basada en particiones se considera un escenario en el que el conjunto de todas las posiciones de puntos de division posibles tiene dos puntos de division.
25 Ademas, f(p,N) valor sigue siendo la funcion que devuelve el numero de combinaciones de diferentes
posiciones de puntos de division de una particion donde p es el numero de puntos de division de una particion de trama y N es el numero total de puntos de division de la particion. Entonces para cada una de las distribuciones posibles de posiciones resulta el siguiente numero de combinaciones posibles:
Numero de puntos de
Numero de puntos de
Numero de diferentes combinaciones de todo el conjunto
division de la particion A
division de la particion B de posicion de puntos de division con esta configuration
0
2 f(0, Na)f(2, Nb)
1
1
f(1, Na)f(1, Nb)
2
0 f(2, Na) f(0, Nb)
30
[00257] Por lo tanto, se puede concluir que si el numero de estado de puntos de division codificado de la trama es inferior a f(0, Na)f(2, Nb) entonces las posiciones de puntos de division tienen que tener la distribucion 0,2. De lo contrario se resta f(0, Na)f(2, Nb) del numero de estado de puntos de division y el resultado se compara con f(1, Na)f(1, Nb). Si es inferior las posiciones tienen la distribucion 1,1. De lo contrario solo
35 queda la distribucion 2, 0 y las posiciones tienen entonces la distribucion 2, 0.
[00258] En lo que sigue se proporciona un pseudocodigo de acuerdo con una realizacion para decodificar las posiciones de los puntos de division (llamado sp). En este pseudocodigo sp_a es el numero de puntos de division asumido de la particion A y sp_b el numero de puntos de division asumido de la particion B. En este
40 pseudocodigo el numero de estado de puntos de division (por ejemplo, actualizado) se llamara «estado».
Los numeros de subestados de puntos de division de las particiones A y B se codifican conjuntamente en la variable de «estado». De acuerdo con un esquema de codificacion conjunto de una realizacion el numero de subestado de puntos de division de A (en este caso llamado state_a) es la parte entera de la division estado/f(sp_b, Nb) y el numero de estado de puntos de division de B (en este caso llamado state_b) es el 45 resto de la division. Asl, la longitud (el numero total de puntos de division de la particion) y el numero de
posiciones codificadas (el numero de puntos de division de la particion) para ambas particiones se puede decodificar con la misma estrategia Funcion x=decodificarestado (estado, sp, N)
1 .dividir el vector en dos particiones de longitudes Na y Nb 50 2. para sp_a de 0 a sp
a. sp_b=sp-sp_a
b. si estado < f(sp_a, Na)* f(sp_a, Nb) salir de bucle
c. estado:= estado - f(sp_a, Na)* f(sp_a, Nb)
3. el numero de estados posibles de la particion B es num_estados_b=f(sp_b,Nb)
4. los estados state_a y state_b de las particiones A y B respectivamente son la parte entera y el resto de la division estado/num_estados_b
5. si Na>1 entonces el vector codificado de la particion A se obtiene recursivamente xa=decodificarestado (state_a, sp_a, Na)
5 Si no (Na=1) y el vector xa es un escalar y se puede hacer la asignacion xa=state_a
Si Nb > 1 entonces el vector decodificado de la particion B se obtiene recursivamente asl: xb=decodificarestado (state_b, sp_b, Nb)
Si no (Nb=1) y el vector xb es un escalar y se puede hacer la asignacion xb=state_b 7. La salida definitiva x se obtiene combinando xa y xb en x=[xa xb]
10
[00259] La salida de este algoritmo es un vector que tiene un 1 en cada posicion codificada, es decir, en las posiciones de puntos de division y 0 en el resto de posiciones, es decir, en las posiciones de puntos division posibles que no comprenden puntos de division.
15 [00260] En lo que sigue se proporciona un pseudocodigo de acuerdo con una realization para codificar
posiciones de puntos de division que utiliza nombres de variables parecidos con un significado parecido al anterior
Funcion estado= codificarestado(x, N)
1. dividir el vector en dos particiones xa y xb de longitudes Na y Nb 20 2. contar los puntos de division de las particiones A y B de las variables sp_a y sp_b y hacer la asignacion sp=sp_a+sp_b
3. hacer la asignacion estado:=0
4. para k de 0 a sp_a-1
a. estado:= estado + f(k, Na)* f(sp- k, Nb)
25 5. Si Na > 1 codificar la particion A asl state_a= codificarestado(xa, Na)
De lo contrario Na=1, hacer la asignacion state_a=xa
6. Si Nb > 1 codificar la particion B asl state_b= codificarestado (xb, Nb)
30 Si no Nb=1, hacer la asignacion state_b=xb
7. Codificar los estados conjuntamente Estado:=estado+state_a* f(sp_b, Nb)+ state_b
[00261] En este caso se asume que, analogamente al algoritmo del decodificador cada posicion codificada, es
35 decir, una posicion de punto de division, se identifica con un 1 en el vector x y todos los otros elementos
son 0, por ejemplo, las posiciones de puntos de division posibles que no comprenden un punto de division.
[00262] Los procedimientos recursivos anteriores formulados en pseudocodigo se pueden poner en practica directamente de forma no recursiva utilizando procedimientos estandar.
40
[00263] De acuerdo con una realizacion la funcion f(p, N) puede materializarse en una tabla de consulta. Cuando las posiciones no se solapan como en el contexto en cuestion entonces la funcion f(p, N) de numero de estado simplemente es la funcion binomial que se puede calcular on-line. Asl:
45
f (P, N)
N (N -1)( N - 2)...( N - k) k (k -1)(k - 2)...1
[00264] De acuerdo con una realizacion de la presente invention tanto el codificador como el decodificador tienen unos bucles for donde se calcula f(p-k, Na)* f(k, Nb) para valores consecutivos de k. Para un computo eficiente esto se puede escribir asl
f (p - k, Na )f (k, Nb)
Na(Na -1)(Na - 2)...(Na - p + k) _ Nb(Nb -1)(Nb - 2)...(Nb -p + k) = (p - k)(p - k - 1)(p - k - 2)...1 k(k - 1)(k - 2)...1
5
10
15
20
25
30
35
40
45
50
N(Na -1)(Na -2)...(Na -p + k) _ Nb(Nb -1)(Nb -2)...(Nb -p + k) _ p-k +1 _ N -k
(p - k)(p - k - 1)(p - k - 2)...1 k(k - 1)(k - 2)...1 Na - p - k +1 k
f (p - k +1 Na )f (k -1, Nb) •
p - k +1
Na - p - k + 1
Na - k k
[00265] En otras palabras los terminos sucesivos de resta y suma en los pasos 2b y 2c del decodificador y en el paso 4a del codificador se pueden calcular mediante tres multiplicaciones y una division por iteracion.
[00266] Haciendo referencia a figura 1 realizaciones alternativas se materializan el aparato de la figura 1 para decodificar y obtener una envolvente de senal de audio reconstruida de forma diferente. En dichas realizaciones como se ha explicado anteriormente; el aparato comprende un reconstructor de envolvente 110 para generar la envolvente de senal de audio reconstruida en funcion de uno o mas puntos de division y una interfaz de salida 120 para producir la salida de la envolvente de senal de audio reconstruida.
[00267] De nuevo, el reconstructor de la envolvente de senal 110 esta configurado para generar la envolvente de senal de audio reconstruida de modo que uno o mas puntos de division dividen la envolvente de senal de audio reconstruida en dos o mas partes de envolvente de senal de audio de las dos o mas partes de la envolvente de la senal en funcion de dicha parte de envolvente de senal.
[00268] En dichas realizaciones alternativas, sin embargo, un valor de parte de envolvente predefinida se asigna a cada uno de las dos o mas partes de envolvente de senal.
[00269] En dichas realizaciones, el reconstructor de envolvente de senal 110 esta configurado para generar la envolvente de senal de audio reconstruida de modo que para cada valor de parte de envolvente de senal de las dos o mas partes de envolvente de senal, un valor absoluto del valor de parte de envolvente de dicha partes de envolvente es mayor que un 90% de un valor absoluto del valor de parte de envolvente predefinida asignandose a dicha parte de envolvente de senal y de modo que el valor absoluto del valor de parte de envolvente de senal de dicha parte de envolvente de senales inferior es inferior a un 110% del valor absoluto del valor de parte de envolvente predefinida asignandose a dicha parte de envolvente de senal. Esto permite una cierta desviacion del valor de la parte de envolvente predefinida.
[00270] En una realizacion particular, sin embargo, el reconstructor de envolvente de senal 110 esta configurado para generar la envolvente de senal de audio reconstruida de modo que el valor de parte de envolvente de senal de cada una de las dos o mas partes de envolvente de senal es igual al valor de parte de envolvente predefinida asignandose a dicha parte de envolvente de senal.
[00271] Por ejemplo, se pueden recibir tres puntos de division que dividen la envolvente de senal de audio en cuatro partes de envolvente de senal de audio. Una regla de asignacion puede especificar que el valor de parte envolvente predefinida de la primera parte de envolvente de senal es 0,15, que el valor de parte de envolvente predefinida de la segunda parte de envolvente de senal es 0,25, que el valor de parte envolvente predefinida de la tercera parte de envolvente de senal es 0,25 y que el valor de parte de envolvente predefinida de la primera parte de envolvente de senal es 0,35.
[00272] Al recibir tres puntos de division el reconstructor de envolvente de senal 110 se reconstruye la envolvente de senal de acuerdo con las ideas descritas anteriormente.
[00273] En otra realizacion, se puede recibir un punto de division que divida la envolvente de senal de audio en dos partes de envolvente de senal de audio. Una regla de asignacion puede especificar que el valor de parte de envolvente predefinida de la primera parte de envolvente de senal sea p, que el valor de parte de envolvente predefinida de la segunda parte de envolvente de senal sea 1-p. Por ejemplo, si p=0,4 entonces 1-p=0,6. De nuevo cuando se reciben los tres puntos de division el reconstructor de envolvente de senal 110 se reconstruye la envolvente de senal analogamente de acuerdo con las ideas mencionadas anteriormente.
[00274] Dichas realizaciones alternativas que utilizan valores de parte de envolvente predefinidas pueden
5
10
15
20
25
30
35
40
45
50
55
utilizar cada una de las ideas descritas anteriormente.
[00275] En una realizacion, los valores de parte de envolvente predefinidos de al menos dos de las partes de envolvente de senal son diferentes.
[00276] En otra realizacion, el valor de la parte de envolvente predefinida de cada una de las partes de envolvente de senal son diferentes del valor de parte de envolvente predefinida de cada uno de las partes de envolvente de senal.
[00277] Aunque algunos aspectos se han descrito en el contexto de un aparato esta claro que estos aspectos tambien representan una descripcion del procedimiento correspondiente donde un bloque o dispositivo corresponde a un paso de procedimiento o a una caracterlstica de un procedimiento. Analogamente, los aspectos descritos en un contexto de un paso de procedimiento tambien representan una descripcion de un bloque o elemento o caracterlstica correspondiente del aparato correspondiente.
[00278] La senal descompuesta inventiva se puede almacenar el un medio de almacenamiento digital o se puede transmitir a traves de medios de transmision como un medio inalambrico o un medio alambrico como Internet.
[00279] En funcion de ciertos requisitos de implementacion, las realizaciones de la invencion se pueden realizar en hardware o software. La implementacion se puede realizar utilizando un medio de almacenamiento digital, por ejemplo, un disco flexible, un DVD, un CD, una memoria ROM, PROM, EPROM, EEPROM o flash, que tienen senales de control legibles electronicamente almacenadas y que interaccionan, o que sean capaces de interaccionar, con un sistema de computo programable de modo que se realice el procedimiento respectivo.
[00280] Algunas realizaciones de acuerdo con la invencion comprenden una portadora de datos no transitoria que tiene unas senales de control legibles electronicamente que son capaces de interaccionar con un sistema de computo programable de modo que se ejecute uno de los procedimientos descritos.
[00281] En general, las realizaciones de la presente invencion se pueden ejecutar como un producto de programa de ordenador con un codigo de programa siendo operativo el programa para realizar uno de los procedimientos cuando el programa de ordenador se ejecuta en un ordenador. El codigo del programa puede, por ejemplo, estar almacenado en una portadora legible mediante maquina.
[00282] Otras realizaciones comprenden el programa de ordenador para realizar uno o mas de los procedimientos descritos almacenados en la portadora legible por una maquina.
[00283] En otras palabras, una realizacion del procedimiento inventivo es, por lo tanto, un programa de ordenador que tiene un codigo de programa para realizar uno o mas de los procedimientos descritos cuando el programa de ordenador se ejecuta en un ordenador.
[00284] Otra realizacion adicional de estos procedimientos inventivos es, por lo tanto, una portadora de datos o un medio de almacenamiento digital o un medio legible por ordenador, que comprende almacenada en ella el programa de ordenador para realizar uno o mas de los procedimientos descritos.
[00285] Otra realizacion adicional de los procedimientos inventivos, por lo tanto, es un flujo de datos o una secuencia que representen el programa de ordenador para realizar uno o mas de los procedimientos descritos. El flujo de datos o la secuencia de senales puede, por ejemplo, estar configurado para transferirse a traves de una conexion de comunicacion de datos, por ejemplo, a traves de Internet.
[00286] Otra realizacion adicional comprende unos medios de procesamiento, por ejemplo, un ordenador o un dispositivo logico programable configurado para un adaptado o adaptado para realizar uno o mas de los procedimientos descritos.
[00287] Otra realizacion adicional comprende un ordenador que tiene instalado el programa de ordenador para realizar uno o mas de los metodos descritos.
[00288] En algunas realizaciones un dispositivo logico programable (por ejemplo, FPGA) puede utilizarse para
10
desempenar algunas o todas de las funcionalidades de los procedimientos descritos. En algunas realizaciones una memoria puede interaccionar con un microprocesador para realizar uno o mas de los procedimientos descritos. En general, los procedimientos se realizan preferiblemente con cualquier aparato de hardware.
[00289] Las realizaciones descritas son meramente ilustrativas de los principios de la presente invencion. Se entiende que las modificaciones y las variaciones de las configuraciones y de los detalles descritos resultaran evidentes para los expertos en la materia. Es la intencion, por lo tanto, de limitarlo solo por el alcance de las reivindicaciones adjuntas y no por los detalles especlficos presentados para describir y explicar las realizaciones.

Claims (21)

  1. REIVINDICACIONES
    1. Aparato para decodificacion y obtener una envolvente de senal de audio reconstruida que comprende: un reconstructor de envolvente de senal (110) adaptado para generar la envolvente de senal de audio reconstruida
    5 en funcion de uno o mas puntos de division y una interfaz de salida (120) adaptada para producir la salida de la envolvente de senal de audio reconstruida donde el reconstructor de envolvente de senal (110) esta configurado para generar la envolvente de senal de audio reconstruida de modo que el/ los, uno o mas, puntos de division dividen la envolvente de senal de audio reconstruida en dos o mas partes de envolvente de senal de audio donde una regla de asignacion predefinida define un valor de parte de envolvente de senal para cada una de las partes de 10 envolvente de senal de las dos o mas partes de envolvente de senal en funcion de dicha parte envolvente de senal y donde el reconstructor de envolvente de senal (110) esta configurado para generar la envolvente de senal de audio reconstruida de modo que, para cada una de las dos o mas partes de envolvente de senal el valor absoluto de su valor de parte de envolvente de senal es mayor que la mitad del valor absoluto del valor de parte de envolvente de senal de cada una de las partes de envolvente de senal.
    15
  2. 2. Aparato segun la reivindicacion 1 donde el reconstructor de envolvente de senal (110) esta
    configurado para generar la envolvente de senal de audio reconstruida de modo que para cada una de las, dos o mas, partes de envolvente de senal el valor absoluto de su valor de parte de envolvente de la senal es mayor que un 90% del valor absoluto del valor de parte de envolvente de senal de cada una de las partes de envolvente de senal.
    20
  3. 3. Aparato segun la reivindicacion 2 donde el reconstructor de envolvente de senal (110) esta
    configurado para generar la envolvente de senal de audio reconstruida de modo que para cada una de las dos o mas partes de envolvente de senal el valor absoluto de su valor de parte de envolvente de senal sea mayor que un 99% del valor absoluto del valor de parte de envolvente de senal de cada una de las partes de envolvente de senal.
    25
  4. 4. Aparato segun la reivindicacion 3 donde el reconstructor de envolvente de senal (110) esta
    configurado para generar la envolvente de senal de audio construida de modo que el valor de parte de envolvente de senal de cada una de las dos o mas partes de envolvente de senal sea igual al valor de parte de envolvente de senal de cada una de las restantes partes de envolvente de senal de las dos o mas partes de envolvente de senal.
    30
  5. 5. Aparato de decodificacion para obtener una envolvente de senal de audio reconstruida que
    comprende: un reconstructor de envolvente de senal (110) adaptado para generar la envolvente de senal de audio reconstruida en funcion de uno mas puntos de division y una interfaz de salida (120) adaptada para producir la salida de la envolvente de senal de audio reconstruida donde el reconstructor de envolvente de senal (110) esta
    35 configurado para generar la envolvente de senal de audio reconstruida de modo que el/los, uno o mas, puntos de division dividen la envolvente de senal de audio reconstruida en dos o mas partes de envolvente de senal de audio donde una regla de asignacion predefinida define un valor de parte de envolvente de senal para cada parte de envolvente de senal de las dos o mas partes de envolvente de senal en funcion de dicha parte de envolvente de senal y donde un valor de parte de envolvente predefinida se asigna a cada una de las, dos o mas, partes 40 envolvente de senal y donde el reconstructor de envolvente de senal (110) esta configurado para generar la envolvente de senal de audio reconstruida de modo que para cada parte de envolvente de senal grados de las, dos mas, partes de envolvente de senal, el valor absoluto del valor de parte de envolvente de senal de dicha parte de envolvente de senal sea mayor que un 90% del valor absoluto del valor de parte de envolvente predefinido asignado a dicha parte de envolvente de senal y de modo que el valor absoluto del valor de parte de envolvente de senal de 45 dicha parte de envolvente de senal sea inferior a un 110% del valor absoluto del valor de parte de envolvente predefinida que se asigna a dicha parte de envolvente de senal.
  6. 6. Aparato segun la reivindicacion 5 donde el reconstructor de envolvente de senal (110) esta configurado para generar la envolvente de senal de audio reconstruida de modo que el valor de parte de envolvente
    50 de la senal de cada una de las, dos o mas, partes de envolvente de senal sea igual al valor de parte de envolvente predefinidas que se asigna a dicha parte de envolvente de senal.
  7. 7. Aparato segun la reivindicacion 5 o 6 donde los valores de parte de envolvente predefinidos de al menos dos de las partes de envolvente de senal son distintas.
    55
  8. 8. Aparato segun la reivindicacion 5 o 6 donde el valor de parte de envolvente predefinido de cada una de las partes de envolvente de senal es distinto al valor de parte de envolvente predefinido de cada una de las partes de envolvente de senal.
  9. 9. Aparato segun una de las reivindicaciones anteriores donde el valor de parte envolvente de senal de cada parte de envolvente de senal de dos o mas partes de envolvente de senal depende de uno o mas valores de energla o de uno o mas valores de potencia de dicha parte de envolvente de senal o donde el valor de parte de envolvente de senal de cada parte de envolvente de senal de las dos o mas partes de envolvente de senal depende
    5 de cualquier otro valor adecuado para reconstruir un nivel original u objetivo de la envolvente de senal de audio.
  10. 10. Aparato segun una de las reivindicaciones anteriores donde el reconstructor de envolvente de senal (110) esta configurado para generar una funcion de agregacion en funcion de uno o mas puntos de division, donde la funcion de agregacion comprende una pluralidad de puntos de agregacion donde cada uno de los puntos de
    10 agregacion comprende un valor de argumento y un valor de agregacion y donde la funcion de agregacion es monotona creciente y donde cada uno de los uno mas puntos de division indican al menos un valor de argumento y un valor de agregacion de uno de los puntos de agregacion de la funcion de agregacion donde el reconstructor de envolvente de senal (110) esta configurado para generar la envolvente de senal de audio de modo que la envolvente de senal comprende una pluralidad de puntos de envolvente y donde cada uno de los puntos de envolvente
    15 comprende un valor de argumento y valor de envolvente y donde para cada uno de los puntos de agregacion de la funcion de agregacion uno de los puntos de envolvente de la envolvente la senal de audio se asigna a dicho punto de agregacion de modo que el valor de argumento de dicho punto de envolvente sea igual al valor de argumento de dicho de punto de agregacion y donde el reconstructor de envolvente de senal (110) esta configurado para generar la envolvente de senal de audio de modo que el valor de envolvente de cada uno de los puntos de envolvente de
    20 senal de audio depende del valor de agregacion de al menos un punto de agregacion de la funcion de agregacion.
  11. 11. Aparato segun la reivindicacion 10 donde el reconstructor de envolvente de senal (110) esta configurado para determinar la envolvente de senal de audio determinando un cociente de una primera diferencia y una segunda diferencia siendo dicha primera diferencia la diferencia entre el primer valor de agregacion c(k+1) de un
    25 primer punto de agregacion de la funcion de agregacion y el segundo valor de agregacion (c(k-1);c(k)) de un segundo punto de agregacion de la funcion de agregacion, siendo dicha diferencia una diferencia entre un primer valor de argumento f(k+1) de dicho primer punto de agregacion de la funcion de agregacion y un segundo valor de argumento(f(k-1);f(k)) de dicho segundo punto de agregacion de la funcion de agregacion.
    30 12. Aparato segun la reivindicacion 11 donde el reconstructor de envolvente de senal (110) esta
    configurado para determinar la envolvente de senal de audio aplicando:
    tilt (k) =
    c(k +1) - c(k -1) f (k +1) - f (k -1)
    35 donde tilt(k) representa la derivada de la funcion de agregacion en el punto de division k-simo, c(k+1) es el primer valor de agregacion, f(k+1) es el primer valor de argumento, c(k-1) es el segundo valor de agregacion, f(k-1) es el segundo valor de argumento, k es un entero que indica un Indice de uno o mas de los puntos de division, donde c(k+1)-c(k-1) es la primera diferencia de los dos valores agregados c(k+1) y c(k-1), f(k+1)-f(k-1) es la segunda diferencia de los dos valores de argumento.
    40
  12. 13. Aparato segun la reivindicacion 11 donde el reconstructor de envolvente de senal (110) esta
    configurado para determinar una envolvente senal de audio aplicando
    45
    tilt (k) = 0,5 •
    ' c(k +1) - c(k) c(k) - c(k -1) ^
    v f (k +1) - f (k) + f (k) - f (k -1) ,
    donde tilt(k) es la derivada de la funcion de agregacion en el punto de division k-simo, c(k+1) es dicho primer valor de agregacion, f(k+1) es dicho primer valor de argumento, c(k) es dicho segundo valor de agregacion, f(k) es dicho segundo valor de argumento, c(k-1) es dicho tercer valor de agregacion de un tercer punto de agregacion de la funcion de agregacion, f(k-1) es un tercer valor de argumento de dicho tercer punto de agregacion de la funcion de agregacion, k es un entero que indica un Indice de uno de los puntos de division, c(k+1)-c(k) es la primera diferencia de los dos valores agregados c(k+1) y c(k) y f(k+1)-f(k) es la segunda diferencia de los dos valores de argumento f(k+1) y f(k).
  13. 14.
    Aparato segun una de las reivindicaciones anteriores donde el aparato comprende ademas un
    decodificador de puntos de division (105) adaptado para decodificar uno mas puntos codificados en funcion de una regla de decodificacion para obtener una posicion de cada uno del/ de los, uno mas, puntos de division y donde el decodificador de puntos de division (105) esta configurado para analizar un numero total de posiciones que indica el numero total de posiciones de puntos de division posibles, un numero de puntos de division indica el numero de uno 5 o mas puntos de division y un numero de estado de puntos de division y donde el decodificador de puntos de division (105) esta configurado para generar una indication de la posicion de cada uno de los, uno mas, puntos de division utilizando el numero total de posiciones, el numero de puntos de division y el numero estado de puntos de division.
    10 15. Aparato segun una de las reivindicaciones anteriores donde el reconstructor de envolvente de senal
    esta configurado para generar la envolvente la senal de audio reconstruida en funcion del valor de energla total que indica la energla total de la envolvente de senal de audio reconstruida, o en funcion de cualquier otro valor adecuado para reconstruir un nivel original u objetivo de la envolvente de senal de audio.
    15 16. Aparato para reconstruir una senal de audio que comprende un aparato (1510) para decodificar segun
    una de las reivindicaciones 1-15 para obtener una envolvente de senal de audio reconstruida de la senal de audio y un generador de senal (1520) para generar la senal de audio en funcion de la envolvente de senal de audio de la senal de audio y en funcion de otra caracterlstica de senal de audio siendo la otra caracterlstica de senal diferente de la envolvente de la senal.
    20
  14. 17. Aparato de codification de una envolvente senal de audio que comprende: una interfaz de envolvente de senal de audio (210) adaptada para recibir la envolvente de senal de audio y un calculador de puntos de division (220) adaptado para determinar en funcion de una regla de asignacion predefinida, un valor de parte de envolvente de senal para al menos una parte de envolvente de senal de audio de dos o mas partes de envolvente de senal de
    25 audio para cada una de las al menos dos configuraciones de puntos de division donde cada uno de las configuraciones de puntos de division comprende uno o mas puntos de division donde el uno o mas puntos de division de cada una de las dos o mas configuraciones de puntos de division divide la envolvente de senal de audio en dos o mas partes de envolvente de senal de audio y donde el calculador de puntos de division (220) esta configurado para seleccionar uno o mas puntos de division de una de las, al menos dos, configuraciones de puntos
    30 de division como uno mas puntos de division seleccionados para codificar la envolvente de la senal de audio donde el calculador de puntos de division (220) esta configurado para seleccionar uno o mas puntos de division en funcion del valor de la parte de envolvente de senal de audio de cada uno de las, al menos dos, partes de envolvente de la senal de audio de las dos o mas partes de envolvente de senal de audio de cada una de las, al menos dos, configuraciones de puntos de division.
    35
  15. 18. Aparato segun la reivindicacion 17 donde el valor de parte de envolvente de senal de cada parte de la envolvente de senal de las dos o mas partes de envolvente de senal depende de uno o mas valores de energla o de uno mas valores de potencia de dicha parte de envolvente senal, o donde el valor de parte de envolvente de la senal de cada una de las partes de envolvente de senal de las dos o mas partes de envolvente de senal depende de
    40 cualquier otro valor adecuado para reconstruir un nivel original u objetivo de la envolvente de senal de audio.
  16. 19. Aparato segun la reivindicacion 17 o 18 donde el aparato comprende ademas un codificador de puntos de division (225) adaptado para codificar una posicion de cada uno de los uno mas puntos de division para obtener uno mas puntos codificados y donde el codificador de puntos de division (225) esta configurado para codificar una
    45 posicion de cada uno de los uno mas puntos de division utilizando el numero de estado de puntos de division y donde el decodificador de puntos de division (225) esta configurado para codificar un numero total de posiciones que indica el numero total de posiciones de puntos division posibles y un numero de puntos de division que indica el numero de uno o mas puntos de division, donde el numero de estado de puntos de division, el numero total de posiciones y el numero de puntos de division indican conjuntamente la posicion de cada uno de los, uno mas, puntos
    50 de division.
  17. 20. Aparato segun una de las reivindicaciones 17-19 donde el aparato ademas comprende un calculador de energla (230) adaptado para determinar una energla total de la envolvente de senal de audio y para codificar la energla total de la envolvente de la senal de audio o donde el aparato ademas esta configurado para determinar
    55 cualquier otro valor adecuado para reconstruir un nivel original u objetivo de la envolvente de senal de audio.
  18. 21. Aparato para codificar una senal de audio que comprende un aparato (1410) para codificar segun una de las reivindicaciones 17 a 20 adaptado para codificar una envolvente de senal de audio de una senal de audio y un codificador de caracterlstica de senal secundaria (1420) adaptado para codificar otra caracterlstica de senal de
    audio siendo la otra caracterlstica de senal de audio diferente a la envolvente de la senal de audio.
  19. 22. Procedimiento de decodificacion para obtener una envolvente senal de audio reconstruida que comprende generar la envolvente de una senal de audio reconstruida en funcion de uno o mas puntos de division y
    5 producir la salida de envolvente de las senal reconstruida, donde la generacion de la envolvente de senal de audio reconstruida se realizan de modo que el/los, uno o mas, puntos de division dividen la envolvente de senal de audio reconstruida en dos o mas partes de envolvente de senal de audio, donde una regla de asignacion predefinida define un valor de parte de envolvente de la senal para cada parte de envolvente de senal de las dos o mas partes de envolvente de senal en funcion de dicha parte de envolvente de senal y donde la generacion de envolvente de la 10 senal de audio reconstruida se realiza de modo que para cada una de las dos o mas partes de envolvente de senal el valor absoluto de su valor de parte de envolvente de senal es mayor que la mitad del valor absoluto del valor de parte de envolvente de la senal de cada una de las partes de envolvente de la senal.
  20. 23. Procedimiento de decodificacion para obtener una envolvente de senal de audio reconstruida que 15 comprende generar la envolvente senal de audio reconstruida en funcion de uno mas puntos de division y producir la
    salida de la envolvente senal de audio reconstruida, donde la generacion de envolvente de la senal de audio reconstruida se realiza de modo que los uno o mas puntos de division dividen la envolvente de senal de audio reconstruida en dos o mas partes de envolvente de la senal de audio, donde una regla de asignacion predefinida define un valor de parte de envolvente de senal para cada parte de envolvente de senal de las dos o mas partes de 20 envolvente de senal en funcion de dicha parte de envolvente de senal y donde un valor de parte envolvente predefinido se asigna a cada una de las dos o mas partes de envolvente y donde la generacion de envolvente de senal de audio reconstruida se realiza de modo que para cada parte de envolvente de senal es mayor que un 110% del valor absoluto del valor de parte de la envolvente predefinido asignado a dicha parte de envolvente de senal.
    25 24. Procedimiento de codificacion de una envolvente senal de audio que comprende recibir la envolvente
    de la senal de audio, determinar en funcion de una regla de asignacion predefinida un valor de parte envolvente de senal para al menos una parte de envolvente de senal de audio de dos o mas partes de envolvente de senal de audio para cada una de las, al menos dos, configuraciones de puntos de division, donde cada una de las, al menos dos, configuraciones de puntos de division comprende uno o mas puntos de division, donde el uno mas puntos de 30 division de cada una de las dos o mas configuraciones de puntos de division divide la envolvente de senal de audio en dos o mas partes de envolvente de senal de audio y seleccionar uno o mas puntos de division de una de las, al menos dos, configuraciones de puntos de division como uno o mas puntos de division para codificar la envolvente de senal de audio, donde la seleccion de uno o mas puntos de division se realiza en funcion del valor de parte de la envolvente de la senal de cada una de la/s, al menos, parte/s de envolvente de senal de audio de las dos o mas 35 partes de envolvente de senal de audio de cada una de las, al menos, dos configuraciones de puntos de division.
  21. 25. Programa de ordenador adaptado para realizar el procedimiento de una de las reivindicaciones 22-24
    cuando se ejecuta en un ordenador o procesador de senal.
ES14728995.3T 2013-06-10 2014-06-10 Aparato y procedimiento de codificación, procesamiento y decodificación de envolvente de señal de audio por división de la envolvente de la señal de audio utilizando cuantización y codificación de distribución Active ES2635026T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP13171314 2013-06-10
EP13171314 2013-06-10
EP14167065 2014-05-05
EP14167065 2014-05-05
PCT/EP2014/062032 WO2014198724A1 (en) 2013-06-10 2014-06-10 Apparatus and method for audio signal envelope encoding, processing and decoding by splitting the audio signal envelope employing distribution quantization and coding

Publications (1)

Publication Number Publication Date
ES2635026T3 true ES2635026T3 (es) 2017-10-02

Family

ID=50897640

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14728995.3T Active ES2635026T3 (es) 2013-06-10 2014-06-10 Aparato y procedimiento de codificación, procesamiento y decodificación de envolvente de señal de audio por división de la envolvente de la señal de audio utilizando cuantización y codificación de distribución

Country Status (16)

Country Link
US (1) US10115406B2 (es)
EP (1) EP3008725B1 (es)
JP (1) JP6224233B2 (es)
KR (1) KR101789085B1 (es)
CN (1) CN105340010B (es)
AU (1) AU2014280256B2 (es)
BR (1) BR112015030672B1 (es)
CA (1) CA2914418C (es)
ES (1) ES2635026T3 (es)
HK (1) HK1223726A1 (es)
MX (1) MX353188B (es)
MY (1) MY170179A (es)
RU (1) RU2660633C2 (es)
SG (1) SG11201510164RA (es)
WO (1) WO2014198724A1 (es)
ZA (1) ZA201600080B (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6224827B2 (ja) 2013-06-10 2017-11-01 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 分配量子化及び符号化を使用した累積和表現のモデル化によるオーディオ信号包絡符号化、処理及び復号化の装置と方法
JP6224233B2 (ja) 2013-06-10 2017-11-01 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 分配量子化及び符号化を使用したオーディオ信号包絡の分割によるオーディオ信号包絡符号化、処理及び復号化の装置と方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765127A (en) * 1992-03-18 1998-06-09 Sony Corp High efficiency encoding method
JP3271193B2 (ja) * 1992-03-31 2002-04-02 ソニー株式会社 音声符号化方法
US5710863A (en) 1995-09-19 1998-01-20 Chen; Juin-Hwey Speech signal quantization using human auditory models in predictive coding systems
JP3283413B2 (ja) 1995-11-30 2002-05-20 株式会社日立製作所 符号化復号方法、符号化装置および復号装置
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
SE9903553D0 (sv) * 1999-01-27 1999-10-01 Lars Liljeryd Enhancing percepptual performance of SBR and related coding methods by adaptive noise addition (ANA) and noise substitution limiting (NSL)
US6978236B1 (en) * 1999-10-01 2005-12-20 Coding Technologies Ab Efficient spectral envelope coding using variable time/frequency resolution and time/frequency switching
SE0202159D0 (sv) * 2001-07-10 2002-07-09 Coding Technologies Sweden Ab Efficientand scalable parametric stereo coding for low bitrate applications
US20030187663A1 (en) * 2002-03-28 2003-10-02 Truman Michael Mead Broadband frequency translation for high frequency regeneration
US7573912B2 (en) * 2005-02-22 2009-08-11 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschunng E.V. Near-transparent or transparent multi-channel encoder/decoder scheme
CN101138274B (zh) * 2005-04-15 2011-07-06 杜比国际公司 用于处理去相干信号或组合信号的设备和方法
US7630882B2 (en) 2005-07-15 2009-12-08 Microsoft Corporation Frequency segmentation to obtain bands for efficient coding of digital media
WO2007080211A1 (en) * 2006-01-09 2007-07-19 Nokia Corporation Decoding of binaural audio signals
EP1989707A2 (fr) 2006-02-24 2008-11-12 France Telecom Procede de codage binaire d'indices de quantification d'une enveloppe d'un signal, procede de decodage d'une enveloppe d'un signal et modules de codage et decodage correspondants
DE602006021347D1 (de) * 2006-03-28 2011-05-26 Fraunhofer Ges Forschung Verbessertes verfahren zur signalformung bei der mehrkanal-audiorekonstruktion
US8392176B2 (en) * 2006-04-10 2013-03-05 Qualcomm Incorporated Processing of excitation in audio coding and decoding
US8532984B2 (en) * 2006-07-31 2013-09-10 Qualcomm Incorporated Systems, methods, and apparatus for wideband encoding and decoding of active frames
US8417532B2 (en) * 2006-10-18 2013-04-09 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Encoding an information signal
DE102006049154B4 (de) * 2006-10-18 2009-07-09 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Kodierung eines Informationssignals
CN101743586B (zh) 2007-06-11 2012-10-17 弗劳恩霍夫应用研究促进协会 音频编码器、编码方法、解码器、解码方法
WO2009038136A1 (ja) * 2007-09-19 2009-03-26 Nec Corporation 雑音抑圧装置、その方法及びプログラム
CN101430880A (zh) * 2007-11-07 2009-05-13 华为技术有限公司 一种背景噪声的编解码方法和装置
CN101521010B (zh) * 2008-02-29 2011-10-05 华为技术有限公司 一种音频信号的编解码方法和装置
EP2301028B1 (en) * 2008-07-11 2012-12-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. An apparatus and a method for calculating a number of spectral envelopes
JP5010743B2 (ja) * 2008-07-11 2012-08-29 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン スペクトル傾斜で制御されたフレーミングを使用して帯域拡張データを計算するための装置及び方法
MY160260A (en) * 2008-07-11 2017-02-28 Fraunhofer Ges Forschung Audio encoder and audio decoder
CN102081926B (zh) 2009-11-27 2013-06-05 中兴通讯股份有限公司 格型矢量量化音频编解码方法和系统
CN102081927B (zh) * 2009-11-27 2012-07-18 中兴通讯股份有限公司 一种可分层音频编码、解码方法及系统
CN103155033B (zh) * 2010-07-19 2014-10-22 杜比国际公司 高频重建期间的音频信号处理
WO2012146757A1 (en) 2011-04-28 2012-11-01 Dolby International Ab Efficient content classification and loudness estimation
DE102013104921A1 (de) * 2013-05-14 2014-11-20 A. Monforts Textilmaschinen Gmbh & Co. Kg Vorrichtung zum Beschichten und/oder Imprägnieren einer textilen Warenbahn
JP6224233B2 (ja) 2013-06-10 2017-11-01 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 分配量子化及び符号化を使用したオーディオ信号包絡の分割によるオーディオ信号包絡符号化、処理及び復号化の装置と方法
JP6224827B2 (ja) 2013-06-10 2017-11-01 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 分配量子化及び符号化を使用した累積和表現のモデル化によるオーディオ信号包絡符号化、処理及び復号化の装置と方法

Also Published As

Publication number Publication date
CN105340010B (zh) 2019-06-04
AU2014280256A1 (en) 2016-01-21
EP3008725A1 (en) 2016-04-20
JP2016524186A (ja) 2016-08-12
KR101789085B1 (ko) 2017-11-20
RU2660633C2 (ru) 2018-07-06
MY170179A (en) 2019-07-09
JP6224233B2 (ja) 2017-11-01
BR112015030672A2 (pt) 2017-08-22
BR112015030672B1 (pt) 2021-02-23
EP3008725B1 (en) 2017-05-17
MX353188B (es) 2018-01-05
US10115406B2 (en) 2018-10-30
CA2914418C (en) 2017-05-09
HK1223726A1 (zh) 2017-08-04
KR20160028420A (ko) 2016-03-11
AU2014280256B2 (en) 2016-10-27
MX2015016789A (es) 2016-03-31
ZA201600080B (en) 2017-08-30
WO2014198724A1 (en) 2014-12-18
SG11201510164RA (en) 2016-01-28
US20160148621A1 (en) 2016-05-26
RU2015156587A (ru) 2017-07-14
CN105340010A (zh) 2016-02-17
CA2914418A1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
ES2953085T3 (es) Decodificador de audio y métodos relacionados para procesar señales de audio multicanal usando una dirección de predicción variable
ES2433043T3 (es) Conmutación del modo de codificación ACELP a TCX
ES2677900T3 (es) Codificador y decodificador de audio
ES2646814T3 (es) Codificación de señales de audio por transformada modificada deformada en el tiempo
ES2461183T3 (es) Decodificador de señales de audio, codificador de señales de audio, procedimiento para decodificar una señal de audio, método para codificar una señal de audio y programa de ordenador que utilizan una adaptación dependiente de la frecuencia de un contexto de codificación
ES2728329T3 (es) Aparato y método para decodificar o codificar una señal de audio utilizando valores de información para una banda de reconstrucción
ES2604983T3 (es) Ajuste de nivel en el dominio del tiempo para decodificación o codificación de señales de audio
ES2454020T3 (es) Codificador de audio, decodificador de audio, procedimiento para codificar información de audio, procedimiento y programa de computación que usa una regla dependiente de la región para un mapeado mediante codificación aritmética
ES2379761T3 (es) Proporcinar una señal de activación de distorsión de tiempo y codificar una señal de audio con la misma
ES2716652T3 (es) Codificador para la codificación de una señal de audio, sistema de transmisión de audio y procedimiento para la determinación de valores de corrección
ES2874511T3 (es) Búsqueda de forma de cuantificador de vector en pirámide
ES2896016T3 (es) Aparato y procedimiento para la síntesis eficaz de sinusoides y barridos mediante el empleo de patrones espectrales
ES2703327T3 (es) Codificador, decodificador y métodos para codificación espacial de objetos de audio de multirresolución retrocompatible
ES2693051T3 (es) Aparato y procedimiento para generar una señal mejorada mediante el uso de relleno de ruido independiente
ES2628127T3 (es) Cuantificador avanzado
ES2644131T3 (es) Predicción lineal basada en una codificación de audio utilizando un estimador mejorado de distibución de probabilidad
ES2691479T3 (es) Procesador de señal y procedimiento para procesar una señal
ES2751275T3 (es) Procesador, procedimiento y programa informático para el tratamiento de una señal de audio mediante el uso de las partes de superposición truncadas de ventanas de análisis y de síntesis
ES2596275T3 (es) Método para crear una representación de un resultado de cálculo dependiente linealmente de un cuadrado de un valor
ES2635026T3 (es) Aparato y procedimiento de codificación, procesamiento y decodificación de envolvente de señal de audio por división de la envolvente de la señal de audio utilizando cuantización y codificación de distribución
ES2646021T3 (es) Método y aparato para codificación, procesamiento y decodificación de envolvente de señal de audio mediante modelado de una representación de suma acumulativa que emplea cuantificación de distribución y codificación
DK3136384T3 (en) DEVICE FOR CONVERTING A LINEAR FORECAST COFFEE AND PROCEDURE FOR CONVERTING A LINEAR FORECAST COFFEE
ES2704891T3 (es) Codificación de audio multicanal usando predicción compleja e indicador real