Codificador de Audio y Decodificador de Audio
presente invención se relaciona con el campo de la codificaci ecialmente con el campo de la codificación de entropía basada en
conceptos tradicionales de codificación de audio incluyen un ificación de entropía par la reducción de redundancia. Por l ificación de entropía se aplica a coeficientes espectrales cua uemas de codificación basados en el dominio de la frecuencia o inio del tiempo cuantizadas para esquemas de codificación b inio del tiempo. Estos esquemas de codificación de entropía hac eral, de la transmisión de una palabra codificada en combinación un libro de codificación consiguiente, que faculta a un deco car una determinada página del libro de codificación para de abra de información codificada correspondiente a la palabra cla dicha página. Sin embargo, en algunos conceptos de co smisión del índice del libro de codificación puede no ser impre
mplo coeficientes espectrales cuantizados, que son precedentes frecuencia. En algunos de los conceptos convencionales, es dén estar disponibles tanto en el lado del codificador como del de re la base de estos símbolos, se puede determinar un libro de texto en forma sincrónica tanto del lado del codificador como del d
Fig. 9 ilustra un ejemplo de contexto y sus dependencias. La Fig. no de frecuencia, en el cual se ha indicado un número de símbolo denota un símbolo en el tiempo n y la frecuencia m. La Fig. 9 de a codificar un determinado símbolo, se utiliza su contexto para o de codificación asociado. Por ejemplo, en el caso del símbol respondería a todos los símbolos con
nO y todo m, o con n = nO y m < mO.
implementaciones prácticas, un contexto no es infinito sino li mplo ilustrado en la Fig. 9, el contexto del símbolo So,3 podría ser,
2, So,1, S_1,5, S-1 ,4, S-1 ,3, S-1 ,2, S-1 ,1 , S-2,5, S-2,4. S_2>3, S_2,2, S_2,1 .
otras palabras, dentro de estos conceptos de codificación de aud ducir, con el tiempo, cambios de resolución por frecuencia/tiempo. codificación de audio popular es el denominad AAC (del in anced Audio Coding (Codificación Avanzada de Audio)), en C izan dos longitudes de bloques, para lo cual se codifican, por ej 4 coeficientes transformados que representan los componentes 256 o 2048 muestras de dominio del tiempo en ventanas, respecti
os conceptos permiten la conmutación entre diferentes endiendo de ciertas características de las señales, como po rición de transitorios o la tonalidad o si la señal es del tipo musi En el caso de la conmutación entre diferentes res po/frecuencia, como por ejemplo entre diferentes tipos de blo texto no es estable. Los conceptos convencionales o las impleme ado actual de la técnica pueden utilizar el reinicio del contexto, icamente se conmuta a un estado en el cual no se dispone de nin de el contexto se construye comenzando de cero. Este enfoq
ificación subóptimos. La desventaja en la eficiencia de codificad ma en casos en los cuales la conmutación sólo tiene lugar ocasió bargo, en una situación en la que se produce una conmutación m o lleva a una pérdida significativa de eficiencia de codificación. Po mutación más frecuente es muy conveniente en el caso de vel as de datos/muestreo, ya que, especialmente en este caso, es co ptación. Por otro lado, la eficiencia de codificación se reduce signi la conmutación frecuente.
bjetivo de la presente invención es dar a conocer un concepto p re transformadas de diferente longitud en la codificación de au ar a una eficiencia de codificador mejorada.
objetivo se alcanza mediante un codificador de audio de ac indicación 1 , un método para la codificación de audio de ac indicación 8, un decodificador de audio de acuerdo con la reivindi todo para la decodificación de audio de acuerdo con la reivindicaci
dén derivar contextos para los coeficientes que tienen las nuevas los coeficientes que tienen las resoluciones precedentes. Es un h sente invención que se puede utilizar, por ejemplo, interpolación, muestreo, diezmado o reducción de la resolución (downsamplin secuencias (upsampling), etc, para la adaptación y/o derivación d rcambiar las resoluciones de tiempo/frecuencia en la codificación
realizaciones de la presente invención presentan un método de pea la frecuencia o los coeficientes espectrales de un contexto g refiere a una resolución anterior, con respecto a la resolución de contexto actual o un cuadro actual. En otras palabras, se pu rmación de contexto anterior para la determinación del libro de co ir para derivar nueva información de contexto. Las realizaci mitir, por esta razón, una conmutación más frecuente de longitud or lo tanto, una mejor adaptación a las características de la se iencia de codificación.
Fig. 3 ilustra una realización correspondiente a una e uencias de un contexto;
Fig. 4 ilustra una realización correspondiente a un diezmado d
Fig. 5 ilustra un audio con conmutación de resoluciones frecuencia;
Fig. 6 Ilustra una implementación de una realización;
Fig. 7a exhibe un gráfico de flujo de una realización de u codificación;
Fig. 7b ilustra el procedimiento general de actualización de acuerdo con una realización;
Fig. 7c ilustra el procedimiento general de actualización de
Fig. 1 ilustra una realización de un codificador de audio 100 mentos de coeficientes, segmentos de coeficientes que represent oluciones de tiempo o frecuencia de una señal de audio m ificador de audio 100 comprende un procesador 110 para deriva codificación para un coeficiente codificado actualmente de un se ase de un coeficiente codificado precedentemente de un segm de el coeficiente precedentemente codificado representa un rente de tiempo o frecuencia que el coeficiente codificado en este lización del codificador de audio comprende además un codificad para codificar por entropía el coeficiente actual sobre la base d ificación para obtener una secuencia de audio codificada.
ciertas realizaciones, los coeficientes pueden corresponder a io, muestras de audio cuantizadas, coeficientes espectrales o d ficientes escalados, coeficientes transformados o filtrados, etc. binación de los mismos.
coeficientes por ancho de banda, es decir una resolución es uencia diferente. El medio de obtención puede estar adaptado pa mentos de 1024 y 128 coeficientes de tiempo, frecuencia o espec
rocesador 110 puede estar adaptado, en algunas realizaciones, ? texto de codificación sobre la base de las representaciones d uencia o espectrales de los coeficientes o segmentos actuales y otras palabras, en algunas realizaciones, los segmentos suce ar representados en diferentes dominios de tiempo y/o ectrales. El procesador 110 puede estar adaptado para derivar e ificacion por banda de frecuencia o espectral del segmento e mplo basándose en los coeficientes espectrales vecinos d cedentes y/o del segmento actual. En algunas realizaciones, erminar los segmentos, en un principio, en el dominio de tiempo, ventana una secuencia de audio de entrada. Basándose en estos ficientes de dominio de tiempo, se pueden determinar s ficientes de domino de la frecuencia o espectrales mediante tr
procesador 110 y el codificador por entropía 120 puede estar con cionar basándose en un diezmado de los coeficientes de ectrales de un segmento anterior cuando un segmento anterior q ontexto comprende una resolución espectral o de frecuencia m mento actual. En algunas realizaciones el procesador 110 y el c ropía 120 pueden estar configurados para operar sobre la ansión de secuencias de los coeficientes de frecuencia o espe mento anterior, cuando un segmento anterior que pertenece prende una resolución espectral o de frecuencia más gruesa qu ual.
realizaciones pueden ofrecer un método para codificar s ficientes que representan diferentes resoluciones de tiempo o señal de audio tomada como muestra. El método puede compre derivar un contexto de codificación para un coeficiente actual o e momento de un segmento actual sobre la base de un coeficie es codificado de un segmento anterior y basado también, opcion
consecuencia, las realizaciones pueden comprender un decodific del cual se ilustra una realización en la Fig. 2. El decodificador á adaptado para decodificar una secuencia de audio codificada a f mentos de coeficientes que representan resoluciones de tiempo una señal de audio tomada como muestra; el decodificador d prende un procesador 210 para derivar un contexto de codifica ficiente decodificado en este momento o actual sobre la base de eriormente decodificado o anterior, donde el coeficiente ificado o anterior representa una resolución de tiempo o frecuenci el coeficiente que se está decodificando. Más aún, el decodific comprende un decodificador por entropía 220 para decodificar p ficiente en curso sobre la base del contexto de codificación y la io codificada.
ciertas realizaciones, el decodificador de audio 200 puede co odificador por entropía 220, que está adaptado para determinar l coeficientes decodificados sobre la base de diferentes longitude
ciertas realizaciones, el procesador 210 puede estar adaptado p texto de codificación por cada banda de frecuencia o espectral ual, por ejemplo sobre la base de coeficientes espectrales mento o segmentos precedentes y, opcionalmente, del segmento s palabras, se pueden procesar los segmentos en el dominio de spectral, lo que se puede realizar por cada banda de frecuenci r consiguiente, el procesador 210 puede estar adaptado entonce contexto que corresponde a una banda de frecuencia o espectral
decodificador por entropía 200 puede estar adaptado codificar p ficiente actual sobre la base de una regla de codificación por gitud variable.
procesador 210 puede estar adaptado para derivar el contexto d re la base del diezmado de los coeficientes de frecuencia o es mento anterior cuando el segmento anterior comprende más co ho de banda (es decir, una resolución espectral o de frecuencia
consecuencia, las realizaciones pueden proporcionar un r odificar una secuencia de audio codificada para obtener s ficientes que representan muestras de audio decodificadas. Los odificación pueden comprender un paso de derivar un contexto d respondiente a un coeficiente decodificado en este momento o mento actual basándose en un coeficiente antes codificado o a mento anterior, donde el coeficiente antes codificado o anterior re olución de tiempo o frecuencia diferente del coeficiente decod sente momento. Más aún, el método puede comprender un paso entropía el coeficiente actual sobre la base del contexto de codifi uencia de audio codificada. Opcionalmente, el método puede c o de determinar los segmentos de coeficiente de audio codific uencia de audio codificada, donde los segmentos represent eros de coeficientes de audio.
Fig. 3 ilustra la manera en que un procesador 110; 210 pue texto de codificación correspondiente a un segmento actual
mentos, es decir, el segmento original anterior 310 que re anteriores coeficientes Sn,o, Sn,i, Sn,2, etc., y, correspondientemente, erior mapeado 320, que tiene una resolución más alta, es decir q yor que Mc,anterior, y representa los coeficientes Mc,nuevos Sn,o( Sn,i, Sn
general, se pueden distinguir dos realizaciones, dependien olución del contexto del segmento actual es más alta o más olución del contexto del segmento anterior. La Fig. 3 ilustra una r ual la resolución del segmento anterior de coeficientes MClanteriores esolución del segmento actual de coeficientes Mc,nuevos. La Fig. ficientes del segmento anterior 310 y los símbolos corresp mento anterior mapeado 320. De la Fig. 3, se puede deducir que segmento actual de coeficientes MCinuevos es más alta que la r mento anterior 310 que sólo tiene coeficientes MCfPrecedentes- En u segmento anterior 310 es expandido a un segmento 320 ficientes para que coincida con la resolución de frecuencia o mento actual. Esto puede incluir la expansión pura con me
ar en cuenta múltiples segmentos precedentes, es decir, cedentes en los puntos de tiempo n-1 , n-2, etc. En general, las dén tomar en cuenta múltiples ranuras de tiempo o segmentos p número de ranuras de tiempo necesarias para definir un conte de ser diferente en otras implementaciones o realizaciones.
Fig. 4 ilustra otra realización, en la cual los coeficientes de erior 410 son diezmados hasta obtener un segmento 420 u putar los contextos del segmento actual, es decir en la cual ficientes Mc, recedentes del segmento anterior 410 es mayor que ficientes CfnUevos del segmento actual. La Fig. 4 utiliza una ¡lustra de la Fig. 3, por consiguiente se ilustran múltiples coeficien mento 410 y 420. Como se ilustra en la Fig. 4, Mc,anterior es mayo r lo tanto, los coeficientes MClPrecedentes se diezman para que coi olución de frecuencia o espectral del segmento actual de MCinUevos decir que en ciertas realizaciones, se pueden diezmar lo edentes con una resolución mayor para que coincidan con la r
Fig. 5 ilustra otra realización, en la cual se lleva a cabo la conm rentes resoluciones. La Fig. 5 ilustra un plano de tiempo/frecuen ilustran tres segmentos subsiguientes de coeficientes de audio, y 530. Cada uno de los segmentos 510, 520 y 530 correspond ie de coeficientes. En la realización ilustrada en la Fig. 5, se pr undo segmento 520 tiene el doble de la longitud del prim mentos 510 y 530. Esto se puede lograr utilizando diferentes mentar en el dominio del tiempo, como se hace, por ejemplo, e lización ilustrada en la Fig. 5, se presume que la velocidad de ntiene constante; en otras palabras, el segundo segmento m prende el doble de coeficientes de audio por ancho de banda qu er segmento 510 o 530.
Fig. 5 demuestra que en este caso la resolución se escala con la inio de la frecuencia o espectral del segmento en el dominio d s palabras, cuanto más corta es la ventana en el dominio del tie la resolución en el dominio de la frecuencia o espectral. Al evaluar
acuerdo con una realización, los coeficientes codificados dura mento 510 otorgan una base para determinar el contexto par mento 520, por ejemplo, por medio de una expansión interme bras, se puede obtener el contenido del contexto procedent mento 510 mediante la expansión del primer segmento 510, po inos de interpolación o extrapolación, para derivar el contexto cor egundo segmento 520, que tiene una resolución más alta.
o se ilustra en la Fig. 5, al conmutar del segundo segmento mento 530, el elemento constituyente del contexto tiene que cam que la resolución se ha reducido ahora. De acuerdo con una r dén utilizar los coeficientes codificados durante el segundo segm ivar el contexto para el tercer segmento, por medio de un diezmad o se puede llevar a cabo, por ejemplo, en términos de calcular u plemente utilizando sólo un valor por medio u otras medidas para
realizaciones otorgan la ventaja de una mayor eficiencia de
a reducir aun más la redundancia de un espectro cuantizado en l audio. La codificación espectral sin ruido se puede basar en un mética conjuntamente con una adaptación dinámica del contexto.
codificación sin ruido se puede basar en valores espectrales C de utilizar tablas de frecuencia cumulativa dependiente del conte ejemplo, de cuatro tupias adyacentes antes derivadas. La Fig. lización. La Fig. 6 muestra un plano tiempo frecuencia, donde a lo po hay tres ranuras de tiempo indexadas n, n-1 y n-2. Más tra cuatro bandas de frecuencia o espectrales que llevan la desi 1 , m y m+1. La Fig. 6 ilustra el interior de cada recuadro de ranu uencia, que representan tupias de muestras a codificar o de tran tres tipos diferentes de tupias en la Fig. 6, en la cual los r de sombreado o punteado indican las tupias restantes que se ha ecodificar, los recuadros" blancos con un borde pleno indican ificadas o decodificadas y los recuadros grises con borde plen las previamente codificadas/decodificadas que se utilizan para
texto. El codificador aritmético puede utilizar entonces tablas ulativas para generar un código binario de longitud variable. mético puede producir un código binario correspondiente a bolos dada y sus respectivas probabilidades. El código bina erar mapeando un intervalo de probabilidades, donde se encuent bolos, contra una palabra en código. El codificador aritrr responder al codificador por entropía 120, o sea el decodificador de las realizaciones precedentemente descriptas.
la presente realización, la codificación aritmética basada en el de llevar a cabo sobre la base de 4 tupias (es decir, en c ficientes espectrales) a las que también se designa q(n,m), qu coeficientes espectrales después de la cuantización, que son ady inio de la frecuencia o espectral y que son codificados por e o. De acuerdo con la descripción que antecede, la codificación s abo basándose en el contexto de codificación. Como se indica más de la 4-tuplas, que se está codificando (es decir, el segme
za para seleccionar la distribución por probabilidades del codifica ara predecir la amplitud de los coeficientes espectrales. En l uadro 705 representa la determinación del contexto, que se basa ue corresponden a q(n-1 , m), q(n,m-1 ), q (n-1 ,m-1 ) y q (n-1 , recuadros grises con bordes plenos en la Fig. 6.
general, en algunas realizaciones el codificador por entropía ptado para codificar el segmento actual en unidades de un ficientes espectrales y para predecir un rango de amplitudes re la base del contexto codificador.
la presente realización el esquema de codificación comprende ? primer lugar, se codifica una palabra en código literal utilizando mético y una distribución específica de probabilidades. La palab resenta cuatro coeficientes espectrales adyacentes (a.b.c.d), a uno de a, b, c, d está limitado en el rango:
imado y para codificar un resto de la división y el resultado de la di do.
lo sucesivo, si el término (a,b,c,d), es decir, cualquier coeficien ede el rango dado en esta realización, esto se puede consider idiendo (a,b,c,d) por un factor (por ejemplo 2 o 4) las veces que s a ajustar la palabra en código así obtenida al rango dado. La di tor de 2 corresponde a un desplazamiento binario hacia la dere ,c,d)» 1. Esta disminución se realiza en una representación po ir que se puede perder información. Los bits menos significat dén perder por el desplazamiento a la derecha, son guardados y los codifica utilizando el codificador aritmético y una di habilidades uniforme. El proceso de desplazamiento a la derec o con respecto a los cuatro coeficientes espectrales (a,b,c,d).
las realizaciones generales, el codificador por entropía 120 ptado para codificar el resultado de la división de la 4-tupla utiliza
ificar los restos de las divisiones sobre la base de una distribu zando una regla de codificación aritmética. El codificador por de estar adaptado para codificar una secuencia de símbolos y uencia de audio codificada utilizando un alfabeto de símbolos que símbolo de escape y símbolos de grupo que corresponden a ices de grupo disponibles, un alfabeto de símbolos que compren mentos y un alfabeto de símbolos que comprende los diferentes tos.
la realización de la Fig. 7a, se puede derivar del contexto la di habilidades para la codificación de la palabra en código literal y imación del número de pasos de reducción de rango. Por ejem abras en código, en un total de 84 = 4096, abarcan un total de 54 sisten en uno o más elementos. La palabra en código resentada en la secuencia de bits en forma de índice de grupo ng grupo ne. Ambos valores pueden ser codificados utilizando mético, utilizando ciertas distribuciones de probabilidades. En una
la Fig. 7a, en el paso 710, se presenta la 4-tupla q(n,m), qu ,c,d) o el segmento actual y se da comienzo a un parámetro lev
el paso 715 se estima el rango de (a,b,c,d) a partir del contexto. esta estimación, (a,b,c,d) se puede reducir en levO niveles, es d factor de 2lev0. Se. almacenan los planos de bits levO menos signi uso posterior en el paso 750.
el paso 720 se verifica si (a,b,c,d) excede el rango dado y, en uce el rango de (a.b.c.d) en un factor 4 en el paso 725. En otras paso 725 (a,b,c,d) se desplazan 2 a la derecha y se almacenan l suprimidos para su uso posterior en el paso 750.
ra indicar este paso de reducción, se ajusta ng a 544 en el paso ng = 544 sirve como palabra en código de escape. A continuaci a palabra en clave en la secuencia de bits del paso 755, donde ?
n el paso 720 se detecta una coincidencia de rangos, más espe ,c,d) coincide con la condición del rango, se mapea (a,b,c,d) con po ng, y, en caso de ser aplicable, el índice de elemento de g peo es inequívoco, o sea que se puede derivar (a.b.c.d) de tinuación el índice de grupo ng es codificado por un codificad izando una distribución de probabilidades obtenida para ptado/descartado en el paso 735. Seguidamente se inserta el in en la secuencia de bits en el paso 755. En un paso subsiguiente 7 l número de elementos de un grupo es superior a 1. Si es necesar rupo indexado por ng consiste en más de un elemento, el índice grupo ne es codificado por el codificador aritmético en el paso 74 distribución de probabilidades uniforme en la presente realización
spués del paso 745, se inserta el índice de elementos de gr uencia de bits en el paso 755. Por último, en el paso 750, se c planos de bits almacenados utilizando el codificador aritmético su tribución de probabilidades uniforme en el paso 755.
abra en código y para derivar una 4-tupla de coeficientes es mento actual sobre la base del índice de grupo ng y el índice de a obtener así la representación de dominios espectrales e ficientes espectrales.
ciertas realizaciones el decodificador por entropía 220 puede e a decodificar una secuencia de símbolos correspondientes a la io codificada sobre a base de la distribución de probabilidades texto de codificación utilizando un alfabeto de símbolos que c bolo de escape y símbolos de grupo correspondientes a una se grupo disponibles ng, para derivar una 4-tupla preliminar de ectrales sobre la base de un índice de grupo ng disponible al cual símbolo de grupo de la secuencia de Símbolos y sobre la base mento ne y para multiplicar la -tupla preliminar con un factor de ero de símbolos de escape en la secuencia de símbolos para ob coeficientes espectrales.
la secuencia de audio codificada, donde un símbolo de escape es po específico ng que sólo se utiliza para indicar una multiplic odificar un resto de una secuencia de audio codificada sobre la ribución uniforme de probabilidades utilizando una regla de mética, el decodificador por entropía 220 puede estar adaptado ar el resto a la 4-tupla multiplicada para obtener el segmento act
ontinuación se describe una realización de un esquema de deco ificador aritmético dependiente del contexto USAC. Como corr lización anterior del esquema de codificación, se consideran las responden a coeficientes espectrales cuantizados, que son co o. Más aun, se presume que las 4-tuples se transmiten a partir d frecuencia o espectral más bajo y progresando hasta el c uencia o espectral más elevado. Los coeficientes pueden corre mplo, a coeficientes AAC, que se almacenan en una matriz y se S n de transmisión de las palabras en código sin ruido es ta odifique en el orden recibido y se almacenen en la matriz, bin e
undidad de bits, es de bits, es decir el número de planos de b a representar una 4-tupla, por el contexto de la 4-tupla actual culo de la variable denominada levO, que también está indicada e tinuación se divide la 4-tupla por 2lev0, es decir que se supri os de bits y se los guarda para su uso posterior de acuerdo co es descripto.
a 4-tupla está en el rango -5<a,b,c,d<4, la profundidad de bits pre o correctamente predicha o sobreestimada. La 4-tupla puede s onces por el índice de grupo ng, el índice de elementos ne y los restantes, en línea con la descripción que antecede. Finaliza ificación de la 4-tupla en curso. La codificación del índice de ele icada en la Fig. 7b por la distribución uniforme de las probabilida lo sucesivo se utiliza siempre para codificar índices de elementos . 7b, el parámetro r representa el resto de la 4-tupla después d ) representa la correspondiente función de densidad de probabilida
ev>lev0+2 se codifica otro símbolo de escape de acuerdo con el p . 7b el contexto se reinicia por completo, como cotejando con carta como en el paso 730 de la Fig. 7a, respectivamente, ( guna adaptación del contexto más porque se considera no rele ificación de la 4-tuplá actual. Se utiliza entonces el modelo de p defecto, el que se utilizara cuando no se disponía de ningún cont ros símbolos ng, lo que está indicado por los pasos 774 y 776 uidamente se repite el proceso para otras tupias.
ra resumir, la adaptación del contexto es un mecanismo pa nificancia del contexto en la codificación adaptable al contexto. La texto se puede disparar cuando el lev' predicho y el lev real no c fácilmente detectado por el número de símbolos de escap =544), en comparación con 766 y 770 en la Fig. 7b, y por lo men de levar a cabo en el decodificador de manera similar.
pk() produce diferentes modelos de distribución de probabilida lización, el 23er bit de t se puede ajustar a uno cuando la 4-tupla espués de haber sido previamente dividida por levO, es decir lev==
consecuencia, el mapeo entre el estado del contexto t y e ribución de probabilidades pki es diferente para lev==lev0+ =levO. El mapeo entre el estado del contexto t y el modelo pki ante una fase de ordenamiento realizando optimizaciones en la erales de la secuencia de ordenamiento. Cuando lev>lev0+2, se ero el contexto y t. Get_pk() produce luego el modelo pki de di habilidades por defecto, que corresponde a t=0.
ontinuación se describen los detalles de un mapeo de contexto de realización. El mapeo de contexto es la primera operación que s ificación adaptable al contexto después del reinicio eventual ún la presente realización. Esto se realiza en dos pasos.
h_map context()
v=w=0
si(core_mode==1 ){
q[0][v++]=qs[w++];
}
relación= ((flotante)previous_lg)/((flotante)lg); para(j=0; j<lg/4; j++){
k = (int) ((flotante)) ((j)*relación);
q[0][v++] = qs[w+k];
}
si(core_mode==0){
q[0][lg/4]=qs[previous_lg/4];
}
ificación Avanzada de Audio) (core_mode==0) para un coefici ndo se utiliza TCX (Transform based Coding o Codificación nsformadas) (corejriode==1 ). Una de las diferencias proviene de se tratan los límites de las tablas. En AAC, el mapeo puede ini índice 0 (primer valor de la tabla), en tanto que en el caso de T iar desde el índice 1 (segundo valor de la tabla) sabiendo que e mpre e ajusta como "desconocido" (estado específico empleado p texto). La relación de previousjg sobre Ig (Ig anterior sobre Ig) en de la expansión (ratio<1 ) o el diezmado (ratio>1 ), que se sente realización. La Fig. 7c ilustra el caso de TCX cuando se con una tabla de contextos guardada de un tamaño 1024/4, com uierdo 780 de la Fig. 7c, a un tamaño de 512/4, como en el lado la Fig. 7c. Se puede apreciar que, si bien en la tabla de contextos izan incrementos escalonados de 1 , para la tabla de contextos gua izan incrementos escalonados de la relación antes descripta.
Fig. 7c ilustra el procedimiento de actualización de contexto de u
he índex of the 4-tuple to decode in the vector*/ (el índice de la 4-odificar en el vector)
/*number of 4-tuples*/ (número de 4-tuplas)
h_update_context()
q[1][1 +i].a=a;
q[1][1 +i].b=b;
q[1][1+i].c=c;
q[1][1+i].d=d;
si ( (a<-4) || (a>=4) || (b<-4) || (b>=4) || (c<-4) || (c>=4) || (d<- q[1][1 +i].v =1024;
}
además q[1][1 +i].v=egrupos[4+a][4+b][4+c][4+d];
si(¡==lg/4 && core_mode==1 ){
qs[0]=q[1][0];
lg/4 && core_mode==0){
qsffl = q[1]M;
}
previousjg = min(1024,lg);
la presente realización, se guarda de una manera diferente de a ificador de núcleo (AAC o TCX). En TCX el contexto se guarda la qsQ de 1024/4 valores. Este mapeo adicional se puede realiza ecisión de bucle cerrado del AMR-WB+ (Adaptive Multirate Wid dec Adaptativo Multivelocidad en Banda Ancha). En la decisi rado se necesitan varios procedimientos de copia de los estados d a analizar cada combinación posible de TCXs y ACELP (Arith ited Linear Prediction (Predicción Lineal de salida por Codificació
ucción levO del contexto y se ajusta a variable lev a levO. En el p , el ng de grupo se lee de la secuencia de bits y se deriva de ribución de probabilidades del contexto para la decodificación o 815, se puede decodificar entonces el ng del grupo de la secuen
el paso 820 se determina si el ng es igual a 544, que corresp ape. Si es así, se puede incrementar la variable lev en 2 antes o 815. En caso de utilizar esta ramificación por primera vez, =lev0, la distribución de probabilidades, el contexto se pued era correspondiente, descartarlo respectivamente si la ramific za por primera vez en línea con el mecanismo de adaptación eriormente descripto como ocurre en las Figs. 7b y 7c. En el ca ice de grupo ng no es igual a 544 en el paso 820, en un paso sig ermina si el número de elementos de un grupo es mayor que 1 , y aso 830, se lee el elemento del grupo ne y se lo decodifica de la os suponiendo una distribución uniforme, de las probabilidades. ento ne se deriva de la secuencia de bits empleando codificació
ribución uniforme de probabilidades. Seguidamente se pueden os de bits a (a,b,c,d) desplazando (a,b,c,d) a la izquierda y agreg bits bp: ((a,b,c,d)«=1 )|=bp. Este proceso se puede repetir lev vec
último, en el paso 845 se puede producir la 4-tupla q(n,m), es de
continuación se presentan detalles de pseudo códigos y lementación de acuerdo con una realización. Se utilizan l iniciones.
,c,d) 4-tupla a decodificar
índice de grupo del plano de a 2 bits más significativo de la 4 0 <= ng <= 544. Este último valor 544 corresponde al símbol ARITH_ESCAPE.
índice de elemento dentro de un grupo, ne yace entre 0 y
Cardinal del grupo
Desplazamiento del grupo
oupsQ Mapea el índice del grupo ng con el cardinal de cad
(primeros 8 bits) y el desplazamiento del grupo og e (últimos 8 bits).
ectorsQ Mapean el desplazamiento del grupo og y elemento ne con el plano de 2 bits más significat tupia (a,b,c,d).
h_cf_ng hashn Tabla sombreada que mapea el estado del respecto a un índice de tablas de cumulativas pki.
h_cf_ng[pki][545] Modelos de las frecuencias
h_cf_r? Frecuencias cumulativas correspondientes al planos de bis menos significativos r
ontinuación se considera, en primer lugar, el proceso de deco ifican sin ruido coeficientes espectrales cuantizados por 4— tup smite a partir del coeficiente de frecuencia o espectral más bajo y ta el coeficiente de frecuencia o espectral más alto. Los coeficie guardan en la matriz x_ac__quant[g][win][sfb][bin], y el orden de tr palabras en código de la codificación sin ruido es tal que c odifica en el orden recibido y guardado en la matriz, bin es el í rementa más rápidamente y g es el índice con incremento más len palabra en código, el orden de decodificación es a, b, c, d. El c X se guarda directamente en la matriz x_tcx_invquant[win][bin], y smisión de las palabras en código de la codificación sin ruid ndo se las decodifica en el orden recibido y guardado en la ma ice que se incrementa más rápidamente y win es el índice que s s lentamente. Dentro de una palabra en código el orden de decodi
h_re set_co ntext( )
para(i=0;i<258;i++){
qs[i].a=0; qs[i].b=0; qs[i].c=0; qs[i].d=0 qs[i].v— 1 ;
}
para(i=0;i<290;i++){
q[0][i].a=0; q[0][i].b=0; q[0][i].c=0; q[0][i].d= q[0][i].v=-1 ;
q[1][i]-a=0; q[1][i].b=0; q[1][i].c=0; q[1][i].d= q[1][i].v=-1 ;
}
previousJg=256;
lo contrario, cuando la bandera arith_reset_flag es FALSE (FALS mapeo entre el contexto anterior y el contexto actual:
riable de entrada*/
relación= ((fIotante)previous_lg)/((flotante)lg);
para(j=0; j<lg; j++){
k = (int) ((flotante)) (G)*relación);
q[0][v++] = qs[w+k];
}
si(core_mode==0){
q[0][lg]=qs[previous_lg];
}
q[0][lg+1]=qs[previous_lg+1];
previous_lg=lg;
}
decodificador sin ruido produce una salida de 4-tuplas de ectrales cuantizados identificados . Al principio se calcula e texto basándose en los cuatro grupos decodificados anteriorment 4-tupla que se ha de decodificar. El estado del contexto está ción arith_get_context():
T3=q[0][1+i+1].v+1 ;
si ( (tO<10) && (t1<10) && (t2<10) && (t3<10) ){
si ( t2>1 ) t2=2;
si ( t3>1 ) t3=2;
retorno 3*(3*(3*(3*(3*(10*(10*t0+t1 ))+t2)+t3)));
}
si ( (t0<34) && (t1<34) && (t2<34) && (t3<34) ){
si ( (t2>1 ) && (t2<10) ) t2=2; además si ( t2>=10 ) t2=3; si ( (t3>1 ) && (t3<10) ) t3=2; además si ( t3>=10 ) t3=3; retorno 252000+4*(4*(34*(34*t0+t1 ))+t2)+t3;
}
si ( (t0<90) && (t1<90) ) retorno 880864+90*(90*t0+t1);
sí ( (t0<544) && (t1<544) ) retorno 1609864 + 544*t0+t1 ;
si ( t0>1 )
a1=q[1][i-1].a; b1=q[1][i-1].b; c1=q[1][i-1].c; d1=q[1][i-1].d;
b1=d=d1=0;
aO»=1
bO»=1
cO»=1
dO»=1
a1»= 1;
(aK-4) II (a1 >=4) || (bK-4) || (b1 >=4) || (d<-4) || (d
4) || (d1 >=4) );
si ( tO>1 ) t0=1 +(egroups[4+a0][4+b0][4+c0][4+d0] » 16);
si ( t1 >1 ) t1 =1 +(egroups[4+a1][4+b1][4+c1][4+d1] » 16);
retorno 1609864 + ((I«24)|(544*t0+t1 ));
a vez conocido el estado, se decodifica el grupo al cual pertenece más significativo de la 4-tupla utilizando la arith__decode() alim ía de frecuencias cumulativas apropiadas correspondiente al texto. La correspondencia se realiza mediante la función arith_get
ariable de entrada */
Estado del contexto*/
h_get_pk(s)
j=ar¡ h_cf_nq_hash[¡&32767];
si ( j==OxFFFFFFFFul ) corte;
si ( 0>>8)==s ) retorno j&255;
}
p=psci+7*(s»22);
j= s & 4194303;
si ( j<436961 )
{
si ( j<252001 ) retorno p[(j<243001 )? retorno p[(j<288993)?2:3];
}
además
{
si ( j<1609865 ) retorno p[(j<880865)?
nciones auxiliares */
l arith_first_símbolo(nulo);
/* Retorno VERDADERO si es el primer símbolo de la secuen no lo es */
ort arith_get_next_bit(nulo);
/* Adquirir el siguiente bit de la secuencia de bits */
ariables globales 7
r
ariables de entrada */
JreqQ;
h_decode()
bajo=0;
alto=1048575;
}
rango = alto-bajo+1;
cum =((((¡nt64) (valor-bajo+1))«16H(int64) 1))/((¡nt64) rango) p = cum_freq-1 ;
do
{ s
q=p+(cfl»1);
si ( *q > cum ) { p=q; cfl++; }
cfl»=1;
}
en tanto que ( cfl>1 );
símbolo = p-cum_freq+1;
además si ( bajo>=524286)
{
valor -=524286;
bajo -=524286;
alto -=524286;
}
además si ( bajo>=262143 && alto<786429)
{
valor— 262143;
bajo -= 262143;
alto -= 262143;
}
además, corte;
bajo += bajo;
alto += alto+1 ;
valor = (valor«1 ) | arith_get_next_bit();
=dgroups[nq]&255
= dgroups[nq]»8
índice del elemento ne se decodifica a continuación evocando a la tabla de frecuencias cumulativas (arith_cf_ne+((mm*(mm-1 decodificado el índice de elemento se puede derivar el plano de ificativo de la 4-tupla con la tabla dgvector[]:
gvectors[4*(og+ne)]
gvectors[4*(og+ne)+1 ]
gvectors[4*(og+ne)+2]
gvectors[4*(og+ne)+3]
ontinuación se decodifica el resto de los planos de bits desde ificativo hasta el nivel menos significativo evocando lev veces a la tabla de frecuencias cumulativas arith_cf_r Q. El plano de bit mite refinar la 4-tupla decodificada de la siguiente manera:
(a«1 ) | (r&1 )
q[1][1+i].a=a;
q[1][1+i].b=b;
q[1][1+¡].c=c;
q[1][1 +i].d=d;
si ( (a<-4) || (a>=4) || (b<-4) || (b>=4) || (c<-4) || (c>=4) <-4) || (d>=4) )
q[1][1 +i].v =1024;
además q[1][1+¡].v=egroups[4+a][4+b][4+c][4+d];
si(¡==lg && core_mode==1 ){
qs[0]=q[1] [0];
relación= ((flotante) lg)/((flotanté)256);
para(j=0; j<256; j++){
k = (¡nt) ((flotante)) ((j)*relación); qs[1 +k] = q[1][1 +j] ;
previous_lg=min(1024,lg);
}
pendiendo de ciertos requisitos de implementación de los m sente invención, se pueden implementar los métodos de la dware o software. La implementación se puede formar utilizando acenamiento digital, en especial un disco, un DVD o un CD, c trol legible de manera electrónica almacenado en el mismo, que c putadora programable de tal manera que se puedan ejecutar lo presente invención. En general, por lo tanto, la presente inv ducto programa de computación con un código de programa par ible por la máquina, donde el código de programa es operativo par todos de la presente invención cuando el programa de computaci una computadora. En otras palabras, los métodos de la prese sisten en un programa de computación que tienen un código de p cutar por lo menos uno de los métodos de la presente invenci