Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CODIFICACION
DE
VOZ Y VIDEO
Marzo 2013
Contenido
Contenido ................................................................................................................ 2
1 Introduccin a la codificacin de voz ................................................................ 3
2 Digitalizacin y codificacin de la voz .............................................................. 7
2.1 CODECs ................................................................................................... 7
2.1.1 G.711 ................................................................................................. 8
2.1.2 Muestreo ............................................................................................ 9
2.1.3 Cuantificacin .................................................................................. 10
2.1.4 Codificacin ..................................................................................... 15
2.1.5 G.711 Appendix II ............................................................................ 15
2.1.6 G.711.1 ............................................................................................ 16
2.1.7 G.729 ............................................................................................... 20
2.1.8 G.729.1 ............................................................................................ 22
2.1.9 G.723.1 ............................................................................................ 23
2.1.10 RTAudio ........................................................................................... 24
2.1.11 SILK ................................................................................................. 24
2.1.12 AMR ................................................................................................. 24
2.1.13 G.722.2 / AMR-WB .......................................................................... 25
2.2 Proceso de digitalizacin de voz en telefona ......................................... 25
3 Introduccin a la codificacin de video ........................................................... 27
4 Digitalizacin y codificacin de video ............................................................. 29
4.1 JPEG ....................................................................................................... 29
4.2 MPEG-x .................................................................................................. 30
4.3 H.264 ...................................................................................................... 33
4.4 Proceso de codificacin de video ............................................................ 36
Referencias ........................................................................................................... 37
Las primeras ideas acerca de la digitalizacin del audio son atribuidas al Ingeniero
Alec Reeves, quien desarroll el primer sistema de audio digital, con fines militares
en 1937. La inminente segunda guerra mundial haca necesario disponer de
sistemas de transmisin telefnicas ms seguros. Si bien la idea fue patentada por
Reeves, su popularizacin debi esperar por varias dcadas al desarrollo de
nuevas tecnologas, (ms especficamente, a la invencin del transistor). La
tecnologa de PCM se populariz sobre fines de la dcada de 1960, momento para
el cual ya no eran reclamables derechos por la patente.
NARIZ
CAVIDAD
EPIGLOTIS NASAL
CAVIDAD CAVIDAD
FARINGEA
ORAL
BOCA
LARINGE
CUERDAS
VOCALES
TRAQUEA
PULMONES
FUERZA MUSCULAR
1
H ( z) = p
1 + ak z k
k =1
Con esto en mente, el modelo de sntesis de voz consiste en encontrar, para cada
perodo corto de tiempo, los mejores valores de los coeficientes ak , de la ganancia
G y del generador de impulsos u(n). Estos valores deben ser tales que minimicen
las diferencias entre una onda de sonido real y la sintetizada, como se muestra en
la siguiente figura (extrada de [1]).
Varios codecs actuales estn basados en estas ideas, como se ver en las
siguientes secciones.
La voz humana puede tener tonos que lleguen hasta los 20 kHz, lo que se
corresponde con el lmite de frecuencias que puede escuchar el odo. Sin
embargo, la mayor parte de la energa de la voz se centra en las frecuencias
bajas, tpicamente por debajo de los 4 kHz. En la siguiente figura se muestra un
segmento de audio de voz, y su corresponde espectro. Se puede ver como, luego
de los 4 kHz, la energa de la seal decrece rpidamente.
2.1 CODECs
2.1.1 G.711
2.1.2 Muestreo
Para establecer cual es sta frecuencia mnima en el codec G.711 se han tenido
en cuenta las siguientes consideraciones de las seales de voz:
Por lo expuesto, podemos pensar en un ancho de banda mnimo para las seales
de los sistemas de telefona de 3.4 kHz. Segn el teorema del muestro, para poder
reconstruir una seal de hasta 3.4 kHz, debe ser muestreada a ms de 6.8 kHz.
Dado que los filtros reales no pueden realizar cortes abruptos, se ha tomado
originalmente en el codec G.711 una frecuencia de muestreo de 8 kHz, es decir,
tomar una muestra de voz cada 125 microsegundos. Si bien esto es adecuado
para reproducir la voz humana, el audio de alta calidad, por ejemplo con
contenido de msica, requiere de frecuencias de muestro mucho mayores, para
que puedan llegar a funcionar con seales de hasta 20 kHz.
Amplitud
Tiempo
T
2.1.3 Cuantificacin
Error
Amplitud
Tiempo
T
Amplitud
Tiempo
Ley A ( de 13 segmentos)
y = log(1+x)/log(1+)
= 255
Cuantificacion ley A / Mu
1
0.9
0.8
0.7
0.6
Nivel
0.5
0.4
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Amplitud
Implementacin de la Ley A
16
subniveles
Nivel 2
Nivel 1
1/16 1/8
1/32 1/4
1/64
1/128
2.1.4 Codificacin
Bit 7 6 5 4 3 2 1 0
.
La funcin del algoritmo VAD es clasificar la seal de entrada en seal vocal
activa y seal vocal inactiva o un ruido de fondo. La clasificacin incorrecta de
seal vocal inactiva como seal vocal activa tiene un efecto adverso en la
eficiencia del sistema, al aumentar innecesariamente la velocidad de transmisin.
En este caso, la calidad vocal no es afectada. Sin embargo, cuando la seal vocal
activa se clasifica indebidamente como inactiva, se recorta la seal vocal y se
degrada la calidad vocal. La mayora de los algoritmos DTX emplean un periodo
de retencin cuando pasan de seal vocal activa a inactiva a fin de evitar recortar
el extremo final de la seal vocal. Durante el periodo de retencin, las tramas de
seal vocal inactiva se reclasifican como seal vocal activa.
2.1.6 G.711.1
Las muestras de entrada son tomadas cada 16 kHz, pero tambien est soportada
la frecuencia de muestreo de 8 kHz. Tomando muestras cada 16 kHz, el ancho de
banda del codec es de 50 a 7000 Hz y el resultado es de 80 o 96 kb/s. El codec
utiliza tramas de 5 ms y tiene un retardo mximo de 11.875 ms.
s LB (n) y otra de alta frecuencia s HB (n) , utilizando un filtro del tipo QMF
(Quadrature Mirror Filterbank). La componente de baja frecuencia es a su vez
separada en las seales que entran en la banda de 300 Hz a 3.4 kHz y las que
quedan fuera de esta banda. Con la primera se implementa una codificacin
G.711, obteniendo 64 kb/s, indicada como I L 0 en el diagrama, o Capa 0 (Layer
0). La seal remanente de baja frecuencia es codificada en 16 kb/s, indicada
como I L1 o Capa 1 (Layer 1).
La seal de banda alta es transformada utilizando MDCT (Modified Discrete
Cosine Transform) y los coeficientes obtenidos son codificados en una seal de 16
kb/s I L 2 o Capa 2 (Layer 2). Las tres capas I L 0 , I L1 y I L 2 son multiplexadas en
un nico flujo de salida, de 64 + 16 + 16 = 96 kb/s.
Wideband Narrowband
input signal input signal
sWB (n) s NB ( n)
( n = 0,..., 79) ( n = 0,...,39)
Pre-processing Pre-processing
filter filter
s%WB (n) s%NB ( n)
Lower-band signal
( n = 0,..., 79) ( n = 0,...,39)
sLB (n) Core bitstream
(n = 0,...,39) Lower-band I L0
embedded
PCM encoders Lower-band
enhancement Multiplexed
bitstream I L1 bitstream
Analysis
MUX
QMF
Higher-band
Higher-band MDCT Higher-band
signal coefficients Higher-band bitstream
MDCT MDCT
sHB (n) S HBm (k ), HB encoder I L2
( n = 0,...,39) ( k = 0,...,39)
Multiplexed
bitstream Lower-band signal
Lower-band Higher-band
Core layer enhancement enhancement
Sampling layer layer Overall
Mode rate (Layer 0, I L 0 ) bit rate
(kHz) (Layer 1, I L1 ) (Layer 2, I L 2 ) (kbit/s)
64 kbit/s 16 kbit/s 16 kbit/s
R1 8 x 64
R2a 8 x x 80
R2b 16 x x 80
R3 16 x x x 96
2.1.7 G.729
Cada 10 ms se extraen los parmetros del modelo CELP: coeficientes del filtro
lineal predictivo (LPC), punteros a la tabla de impulsos adaptativos y fijos
(codebooks) y ganancias). A partir de los coeficientes LPC, se obtienen
parmetros equivalentes, llamados LSP (Line Spectrum Pairs) y se cuantizan
usando vectores predictivos de dos etapas (VQ).
2.1.8 G.729.1
La seal codificada tiene una tasa de bits de 8 a 12 kb/s para seales de banda
angosta (de 50 a 4000 Hz) y de 14 a 32 kb/s para seales de banda ancha (de 50
a 7000 Hz). La trama de salida consiste en 12 capas, cada una correspondiente a
una tasa de bits entre los 8 y los 32 kb/s, como se muestra en la siguiente figura:
Las tramas o cuadros son de 20 ms, y la demora total del algoritmo es de 48.9375
ms, debido a los tiempos necesarios en los filtros utilizados internamente en el
proceso de codificacin.
2.1.9 G.723.1
El retardo total (latencia) del algoritmo es de 37.5 ms, ya que, una vez recibida la
ventana de 30 ms, el algoritmo requiere de 7.5 segundos de muestras adicionales.
2.1.10 RTAudio
RTAudio utiliza tcnicas de codificacin VBR (Variable Bit Rate), lo que significa
que no todas las ventanas o cuadros de voz se codifiquen con la misma cantidad
de bytes.
2.1.11 SILK
SILK es el codec utilizado por Skype. Utiliza un ancho de banda variable, entre 6 a
40 kb/s, trabajando entre las bandas angostas (narrow band), con frecuencias de
muestreo de 8 kHz y las bandas super anchas (superwideband), con frecuencias
de muestreo de 24 kHz.
Desde marzo de 2009 las licencias de uso de SILK son gratuitas. En marzo de
2010 el codec fue enviado como borrador de RFC al IETF.
2.1.12 AMR
Provee una variedad de opciones en cuanto al ancho de banda que utiliza. Puede
trabajar a las siguientes velocidades 12.2, 10.2, 7.95, 7.40, 6.70, 5.90, 5.15 y 4.75
kb/s.
De forma similar a G.729, se basa en el modelo CELP, operando con ventanas de
audio de 20 ms correspondientes a una cantidad de 160 muestras (ya que la
frecuencia de muestreo es de 8.000 muestras por segundo). Cada ventana de 20
ms es a su vez dividida en 4 sub-ventanas, de 5 ms (40 muestras) cada una.
Pora cada ventana se extraen los parmetros LP del modelo CELP (los
coeficientes de los filtros LP), y por cada sub-ventana se obtienen los ndices de
los codebooks fijos y adaptivos y las ganancias. Estos parmetros se cuantizan y
8 kHz
Reloj
Pasabajo
s 3.4 kHz 64kb/s
Conversor Paralelo
A/D /
(Ley A) Serie
Hbrida
64kb/s
Conversor Serie
D/A /
(Ley A) Paralelo
Reloj
8 kHz
Hbrida
Este dispositivo es el encargado de convertir la seal analgica de 2 a 4 hilos.
Separa por canales diferentes el audio entrante del audio saliente, para que sea
posible el proceso de digitalizacin
Pasabajos
El sistema de digitalizacin requiere acotar el ancho de banda de la seal de
entrada a 3.4 kHz, de manera de asegurar el cumplimiento del Teorema del
Muestreo.
Paralelo/Serie Serie/Paralelo
Este proceso obtiene los 8 bits de cada muestra, y los serializa. De esta manera
se obtiene un flujo de 8 bits x 8 kHz = 64 kbits/s, velocidad de transmisin bsica
en Telefona.
Las tcnicas utilizadas para la digitalizacin del video incluyen los siguientes
conceptos:
Prediccin
Mediante este proceso, se trata de predecir el valor de ciertas muestras en
funcin de otras, de manera de poder enviar nicamente como informacin la
diferencia, la que tpicamente requiere menor ancho de banda para ser
transmitida. En el receptor, la misma prediccin es realizada, y se le aplica la
diferencia (o el valor residual) que es enviado por el codificador.
Dada la alta redundancia de informacin que tienen tpicamente las escenas de
video, esta prediccin se puede realizar tanto dentro de un mismo cuadro,
como entre cuadros.
Transformacin
Los valores relacionados a las muestras pueden ser transformados en otro
conjunto de valores equivalentes, que representan la misma informacin de
manera diferente (por ejemplo, una misma seal puede ser representada por
su amplitud en el tiempo o en el dominio de la frecuencia). En video se utiliza
tpicamente la Transformada Discreta del Coseno o DCT por sus siglas en
ingls.
Cuantizacin
Es el proceso mediante el cual se asigna un valor entero a un nmero real.
En funcin de la cantidad de enteros utilizados (o la cantidad de bits necesarios
para su presentacin), el proceso de cuantificacin puede introducir ms o
menos distorsin respecto al valor orignal.
Transmisin
El estndar JPEG 2000 [24] est tambin basado en la idea de utilizar para la
codificacin los coeficientes de una transformacin, pero en este caso se utilizan
transformadas discretas de Wavelets (DWT). Esta transformada permite comprimir
an ms las imgenes que la DCT. Una de las principales diferencias entre JPEG
y JPEG2000 es que en esta ltima no es necesario dividir la imagen original en
bloques. La transformada DWT se aplica a toda la imagen, lo que elimina el
conocido efecto de bloques.
4.2 MPEG-x
MPEG-1 [25] fue originalmente diseado por el Moving Picture Experts Group
(MPEG) de la ISO (International Standards Organization) para el almacenamiento
y reproduccin digital de aplicaciones multimedia desde dispositivos CD-ROM,
hasta velocidades de 1.5 Mb/s. MPEG-2 [26] fue el sucesor de MPEG-1, pensado
para proveer calidad de video desde la obtenida con NTSC/PAL y hasta HDTV,
con velocidades de hasta 19 Mb/s.
4.3 H.264
En 2001, el grupo MPEG de ISO/IEC y el VCEG (Video Coding Expert Group) del
ITU-T decidieron unir esfuerzos en un emprendimiento conjunto para estandarizar
un nuevo codificador de video, mejor que los anteriores, especialmente para
anchos de banda o capacidad de almacenamiento reducidos [29]. El grupo se
llam JVT (Joint Video Team), y culmin con la estandarizacin de la
recomendacin H.264/MPEG-4 Part 10, tambin conocida como JVT/H.26L/AVC
(Advanced Video Coding) o H.264/AVC en 2003. Este nuevo estndar utiliza
compensaciones de movimiento ms flexibles, permitiendo dividir los macro-
bloques en diversas reas rectangulares, y utilizar desplazamientos de hasta un
cuarto de pxel. Agrega adems los cuadros del tipo SP (Switching P) y SI
(Switching I), similares a los P e I, pero con la posibilidad de reconstruir algunos
valores especficos de forma exacta.
Las tcnicas de codificacin entrpica que utiliza utiliza H.264 son las conocidas
como Context-Adaptive Variable-Length Coding (CAVLC) y Context-Adaptive
Binary Arithmetic Coding (CABAC). Esta ltima (CABAC) es ms compleja que la
primera (CAVLC), pero a su vez, ms eficiente.
Con H.264/AVC, para una misma calidad de video, se logran mejoras en el ancho
de banda requerido de aproximadamente un 50% respecto estndares anteriores
[30] [31].
En 2010 fue agregado el Anexo H, llamado Multiview Video Coding o MVC por
sus iniciales. Este agregado est pensado para permitir tener diferentes flujos
representando diferentes visiones de la misma escena, y fue desarrollado para
aplicaciones de video en 3D, donde son necesarios dos flujos de informacin para
generar el efecto estereoscpico de una misma escena.
Por otra parte, los niveles establecen un conjunto de restricciones que se aplican a
cada perfil. Por ejemplo, para cada perfil, un nivel puede determinar la resolucin
mxima de pantalla, el mximo frame rate y el mximo bit rate. Un decodificador
que soporta cierto nivel, debe ser capaz de decodificar cualquier seal que tenga
un nivel igual o inferior.
Referencias
[2] ITU-T Coders for Wideband, Superwideband and Fullband Specch Communication
R. V. Cox, S. Ferraz de Campos Neto, C. Lamblin, M. Hashem Sherif
IEEE Communications Magazine, October 2009, Vol. 47, No. 10
[3] ITU-T G Series: Transmission systems and media, digital systems and networks
http://www.itu.int/net/itu-t/sigdb/speaudio/Gseries.htm
[5] Recommendation G.723.1: Dual Rate speech coder for multimedia communications
transmitting at 5.3 and 6.3 kbit/s
ITU-T, May 2006.
[6] Recommendation G.728: Coding of speech at 16 kbit/s using Low-delay code excited
linear prediction
CCITT, 1992.
[12] Recommendation G.711.1: Wideband embedded extension for G.711 pulse code
modulation
ITU-T, 03/2008.
https://developer.skype.com/silk
[17] Recommendation G.711 Appendix II: A Comfort Noise Payload Definition for ITU-T G.711
Use in Packet-Based Multimedia Communications Systems
ITU-T, 02/2002.
[19] Code-excited linear prediction(CELP): High-quality speech at very low bit rates
Schroeder, M. Atal, B.
Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '85.
April 1985, Volume: 10, On page(s): 937- 940
[23] ISO/IEC IS 10918-1, ITU-T Recommendation T.81 Digital compression and coding of
continuous-tone still images: Requirements and guidelines, 1994
[24] ISO/IEC 15444-1:2004. JPEG2000 Image Coding System: Core coding system
[25] ISO/IEC 11172-2:1993. Information technology Coding of moving pictures and associated
audio for digital storage media at up to about 1.5 Mbit/s
[26] ISO/IEC 13818-2:2000. Information technology generic coding of moving pictures and
associated audio information: Video.
[27] Digital television fundamentals: design and installation of video and audio systems
Michel Robin, Michel Poulin
ISBN 0-07-053168-4, 1998, McGraw-Hill
[29] The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the
Fidelity Range Extension
Gary J. Sullivan, Pankaj Topiwala, and Ajay Luthra
SPIE Conference on Applications of Digital Image Processing XXVII
Special Session on Advances in the New Emerging Standard: H.264/AVC, August, 2004
[31] Report of The Formal Verification Tests on AVC (ISO/IEC 14496-10 | ITU-T Rec. H.264)
ISO/IEC JTC1/SC29/WG11, MPEG2003/N6231
December 2003
[32] ITU-T Recommendation H.264: Advanced video coding for generic audiovisual
services
March 2010