Contenido
Principal
Psicoacústica
Definición
Aspectos relevantes
Conclusión
Grupo MPEG
Historia
Estándares MPEG
Audio MPEG
Codificación MP3
La Capa III
Análisis psicoacústico
Filtro híbrido
Cuantización
Formato
Encabezado
Información
secundaria
Datos principales
Descargas
Links
|
CODIFICACIÓN
MP3
INFORMACIÓN SECUNDARIA
Ésta consta de 17 bytes para el
modo monofónico, y de 32 bytes en cualquier otro modo.
La información que contiene, consiste de cuatro partes:
el puntero main_data_begin, información secundaria para
ambos gránulos (scfsi y private_bits), información
secundaria para el gránulo 0, e información secundaria
del gránulo 1.

- main_data_begin:
el campo main_data no está necesariamente
localizado justo después de la información
secundaria. main_data_begin es un puntero que usa
9 bits, indicando la localización donde está el
primer byte del main_data de la trama actual. La
localización está especificada como un
desplazamiento negativo en bytes desde el
encabezado actual (bytes a la izquierda, antes
del primer bit del encabezado).
La información secundaria (SI) común a ambos gránulos
se muestra a continuación:
- private_bits:
El número de private_bits para la información
secundaria depende del número de canales (5 para
mono y 3 para estéreo). El número de bits
reservados para private_bits es definido por el
usuario.
- scfsi: La
variable scfsi (información para selección del
factor de escala) determina si los factores de
escala se envían para cada gránulo, o si son
comunes para ambos gránulos, por canal. Se
transmiten cuatro (4) bits por canal, cada bit
perteneciente a un grupo de bandas del factor de
escala diferente. Un '0' para un grupo
específico de bandas del factor de escala,
indica que los factores de escala para ese grupo
en particular, se transmiten para cada gránulo.
Un '1' indica que se usan los mismos factores de
escala para ambos grupos; por lo tanto, sólo se
transmiten los factores de escala
correspondientes al grupo de bandas del primer
gránulo.
Después de la información
secundaria para ambos gránulos, sigue la información
secundaria para cada gránulo:

Figura
1. Información secundaria para cada gránulo.
En el caso de bloques largos, la información secundaria
para cada gránulo es:
- part2_3_length:
Denota el número de bits que son usados en
main_data para los factores de escala y los datos
codificados con Huffman. Se usan 12 bits en modo
mono y 24 en los otros modos. Como la cantidad de
bits usados para la información secundaria es
constante, part2_3_length puede usarse para
calcular el comienzo del próximo gránulo.
- big_values:
Después de la cuantización, las 576 muestras
MDCT cuantizadas están organizadas en un orden
determinado (de menor a mayor frecuencia). Luego,
estos valores se dividen en tres particiones
consecutivas: rzero, count1 y big_values. La
primera partición, rzero, se localiza en las
altas frecuencias y consiste en pares de ceros.
La partición de la mitad, count1, consiste de
cuádruplos cuyo valor es -1, 0 ó 1. La última
partición, big_values, se localiza en las bajas
frecuencias extendiéndose hasta el nivel de
directa (frecuencia de 0 Hz) y se compone de
pares de valores restringidos a una amplitud
máxima absoluta de 8206 (8191+15, el cual es el
máximo valor cuantizado permitido). El campo
big_values indica la cantidad de pares
cuantizados que pertenecen a esta partición.
Nueve (9) bits se usan para big_values en modo
mono y 18 en los otros modos.
- global_gain:
Contiene información acerca del intervalo usado
en el cuantizador, donde la cuantización se hace
logarítmicamente. La variable global_gain usa 8
bits en modo mono y 16 bits para los otros modos.
- scalefac_compress:
Es una variable de 4 bits (en modo mono),
transmitida para cada gránulo, la cual determina
el número de bits usados para la transmisión de
los factores de escala. Cada gránulo se divide
en 12 ó 21 bandas del factor de escala
dependiendo del tipo de ventana que se esté
usando. Estas bandas del factor de escala se
dividen de nuevo en dos grupos (0-10 y 11-20 para
ventanas largas; 0-5 y 6-11 en el caso de
ventanas cortas). La variable scalefac_compress
se usa como índice a una tabla proporcionada en
el estándar ISO 11172-3, la cual retorna dos
variables llamadas "slen1" y
"slen2", que indican la cantidad de
bits usados para los factores de escala del
primer y segundo grupo de bandas,
respectivamente.
- window_switching_flag:
Un (1) bit por canal que señala si una ventana
diferente del tipo NORMAL se está
usando. Este valor determina los siguientes 22
bits en la información secundaria: si está en
'1', se añaden los bits de la figura 1(b); si
está en '0', se añaden los bits de la figura
1(c).
- table_select:
Habilita el uso de 32 diferentes tablas para el
código de Huffman, dependiendo de las
estadísticas de la señal. Se usan 15 bits por
canal (5 bits por región) para indicar cuáles
de las 32 tablas han sido seleccionadas.
- region0_count:
Para mejorar el desempeño en la codificación,
la partición big_values se subdivide en tres
regiones llamadas region0, region1 y region2.
Cada región se codifica con una de las 32 tablas
de Huffman (seleccionada con table_select). La
variable region0_count especifica el límite
entre region0 y region1. Esta variable de 4 bits
(en modo mono) especifica la cantidad de bandas
del factor de escala incluidas en esta región,
pero disminuidas en 1.
region0_count =
bandas del factor de escala en region0 - 1
- region1_count:
especifica el límite entre region1 y region2.
Esta variable de 3 bits por canal indica las
bandas del factor de escala incluidas en region1,
disminuidas en 1.
region1_count =
bandas del factor de escala en region1 - 1
- preflag: Un
(1) bit por canal, indicando que se usó
preénfasis (o sea, amplificación adicional en
las altas frecuencias). Este valor apunta a una
tabla en el estándar ISO 11172-3, cuyos 21
valores son sumados a los factores de escala.
Para bloques cortos, no se usa preénfasis.
- scalefac_scale:
Los factores de escala están cuantizados de
manera logarítmica con un intervalo de 2 ó (2)1/2, dependiendo del valor de
scalefac_scale, que usa 1 bit por canal.
- count1table_select:
Esta variable, que usa 1 bit por canal, indica
cuál de dos (2) posibles tablas de Huffman fue
usada para codificar la partición count1.
En el caso de bloques cortos, la información secundaria
sólo cambia en las variables mostradas en la figura
1(c), las cuales son reemplazados por aquellas de la
figura 1(b). Las otras variables mostradas en la figura 1
no cambian.
- block_type:
Indica el tipo de ventana que se usa en un
gránulo particular. La variable block_type
consume 2 bits por canal.
- mixed_block_flag:
Esta variable, que consume 1 bit por canal,
indica que se usan diferentes tipos de ventana en
las bajas y en las altas frecuencias. Si esta
variable está en '1', las dos subbandas más
bajas usan ventana NORMAL, y las 30
subbandas restantes usan el tipo de ventana
especificado por block_type.
- table_select:
En este caso, table_select usa 10 bits por canal,
debido a que, para bloques cortos, la partición
big_values sólo se subdivide en dos (2)
regiones.
- subblock_gain:
Habilita una ganancia por un factor de 4 para un
subbloque particular. Esta variable usa 3 bits
por canal.
[ Principal ]
Psicoacústica: [ Definición | Aspectos relevantes | Conclusión ]
Grupo MPEG: [ Historia | Estándares MPEG | Audio MPEG ]
Codificación MP3: [ La Capa III | Análisis psicoacústico | Filtro híbrido | Cuantización | Formato
Encabezado | Información secundaria | Datos principales ]
[ Descargas ]
[ Links ]
|