Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CODIFICACION
DE
VOZ Y VIDEO
Agosto 2015
Contenido
Contenido ................................................................................................................ 2
1 Introducción a la codificación de voz ................................................................ 3
2 Digitalización y codificación de la voz .............................................................. 7
2.1 CODECs ................................................................................................... 7
2.1.1 G.711 ................................................................................................. 8
2.1.2 Muestreo ............................................................................................ 9
2.1.3 Cuantificación .................................................................................. 10
2.1.4 Codificación ..................................................................................... 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 G.722 ............................................................................................... 24
2.1.11 RTAudio ........................................................................................... 26
2.1.12 AMR ................................................................................................. 26
2.1.13 G.722.2 / AMR-WB .......................................................................... 27
2.1.14 SILK ................................................................................................. 27
2.1.15 OPUS ............................................................................................... 28
2.2 Proceso de digitalización de voz en telefonía ......................................... 28
3 Introducción a la codificación de video ........................................................... 30
4 Digitalización y codificación de video ............................................................. 32
4.1 JPEG ....................................................................................................... 32
4.2 MPEG-x .................................................................................................. 33
4.3 H.264 ...................................................................................................... 36
4.4 Proceso de codificación de video ............................................................ 39
Referencias ........................................................................................................... 40
Las primeras ideas acerca de la digitalización 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 hacía necesario disponer de
sistemas de transmisión telefónicas más seguros. Si bien la idea fue patentada por
Reeves, su popularización debió esperar por varias décadas al desarrollo de
nuevas tecnologías, (más específicamente, a la invención del transistor). La
tecnología de PCM se popularizó sobre fines de la década 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 a k z k
k 1
Con esto en mente, el modelo de síntesis de voz consiste en encontrar, para cada
período 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 (extraída de [1]).
Varios codecs actuales están 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 límite de frecuencias que puede escuchar el oído. Sin
embargo, la mayor parte de la energía de la voz se centra en las frecuencias
bajas, típicamente 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 energía de la señal decrece rápidamente.
2.1 CODECs
La siguiente tabla muestra algunos de los Codecs más conocidos. Varios de ellos
son detallados en las siguientes secciones. Las recomendaciones de los codecs
estandarizados por ITU-T están disponibles en la página de ITU-T [3].
2.1.1 G.711
2.1.2 Muestreo
“La mínima frecuencia a la que puede ser muestreada una señal y luego
reconstruida sin perder información, es el doble de la frecuencia máxima de
dicha señal”
Para establecer cual es ésta frecuencia mínima en el codec G.711 se han tenido
en cuenta las siguientes consideraciones de las señales de voz:
Por lo expuesto, podemos pensar en un ancho de banda mínimo para las señales
de los sistemas de telefonía de 3.4 kHz. Según el teorema del muestro, para poder
reconstruir una señal de hasta 3.4 kHz, debe ser muestreada a más 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 música, requiere de frecuencias de muestro mucho mayores, para
que puedan llegar a funcionar con señales de hasta 20 kHz.
Amplitud
Tiempo
T
2.1.3 Cuantificación
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
Nivel
0.6
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
Implementación 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 Codificación
Bit 7 6 5 4 3 2 1 0
.
La función del algoritmo VAD es clasificar la señal de entrada en “señal vocal
activa” y “señal vocal inactiva” o un “ruido de fondo”. La clasificación incorrecta de
señal vocal inactiva como señal vocal activa tiene un efecto adverso en la
eficiencia del sistema, al aumentar innecesariamente la velocidad de transmisión.
En este caso, la calidad vocal no es afectada. Sin embargo, cuando la señal vocal
activa se clasifica indebidamente como inactiva, se recorta la señal vocal y se
degrada la calidad vocal. La mayoría de los algoritmos DTX emplean un periodo
de retención cuando pasan de señal vocal activa a inactiva a fin de evitar recortar
el extremo final de la señal vocal. Durante el periodo de retención, las tramas de
señal vocal inactiva se reclasifican como señal 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 máximo de 11.875 ms.
Wideband Narrowband
input signal input signal
sWB (n) sNB (n)
(n 0,...,79) (n 0,...,39)
Pre-processing Pre-processing
filter filter
sWB (n) sNB (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 parámetros 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
parámetros equivalentes, llamados LSP (Line Spectrum Pairs) y se cuantizan
usando vectores predictivos de dos etapas (VQ).
2.1.8 G.729.1
La señal codificada tiene una tasa de bits de 8 a 12 kb/s para señales de banda
angosta (de 50 a 4000 Hz) y de 14 a 32 kb/s para señales 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 codificación.
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 G.722
Auxiliary data
channel output,
0, 8 or 16 kbit/s G.722(12)_F01
Test point B
16 kHz
Receive audio part
G.722(12)_F02
+ eL 60 level
xL IL 48 kbit/s
+ adaptive
– quantizer
Delete the
two LSBs
DL Quantizer
ILt
adaptation
15 level inverse
adaptive
quantizer
dLt
sL Adaptive
predictor rLt +
+
+
G.722(12)_F04
+ eH 4 level
xH IH 16 kbit/s
+ adaptive
– quantizer
DH
Quantizer
adaptation
4 level inverse
adaptive
quantizer
dH
sH Adaptive
predictor rH +
+
+
G.722(12)_F05
2.1.11 RTAudio
RTAudio utiliza técnicas de codificación 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.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.
2.1.14 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.
SILK fue reemplazado por el codec OPUS, el que finalmente fue aceptado con el
RFC 6716 en setiembre de 2012
2.1.15 OPUS
OPUS es la evolución de SILK y puede trabajar tanto con CBR (Constant Bit Rate)
como en VBR (Variable Bit Rate). Puede operar en diferentes bandas, llegando a
ser un códec del tipo “full band”.
Ancho de
banda del Bit rate (kb/s)
audio
NB (Narrowband) 4 kHz 8 – 12 kb/s
Es posible utilizar “ventanas” de 2.5, 5, 10, 20, 40, o 60 ms. Típicamente se utiliza
20 ms. Permite combinar múltiples ventanas en paquetes de hasta 120 ms.
8 kHz
Reloj
Pasabajo
s 3.4 kHz 64kb/s
Conversor Paralelo
A/D /
(Ley A) Serie
Híbrida
64kb/s
Conversor Serie
D/A /
(Ley A) Paralelo
Reloj
8 kHz
Híbrida
Este dispositivo es el encargado de convertir la señal analógica de “2 a 4 hilos”.
Separa por canales diferentes el audio entrante del audio saliente, para que sea
posible el proceso de digitalización
Pasabajos
El sistema de digitalización requiere acotar el ancho de banda de la señal 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 transmisión básica
en Telefonía.
Las técnicas utilizadas para la digitalización del video incluyen los siguientes
conceptos:
Predicción
Mediante este proceso, se trata de “predecir” el valor de ciertas muestras en
función de otras, de manera de poder enviar únicamente como información la
diferencia, la que típicamente requiere menor ancho de banda para ser
transmitida. En el receptor, la misma predicción es realizada, y se le aplica la
diferencia (o el valor residual) que es enviado por el codificador.
Dada la alta redundancia de información que tienen típicamente las escenas de
video, esta predicción se puede realizar tanto dentro de un mismo cuadro,
como entre cuadros.
Transformación
Los valores relacionados a las muestras pueden ser transformados en otro
conjunto de valores equivalentes, que representan la misma información de
manera diferente (por ejemplo, una misma señal puede ser representada por
su amplitud en el tiempo o en el dominio de la frecuencia). En video se utiliza
típicamente la “Transformada Discreta del Coseno” o DCT por sus siglas en
inglés.
Cuantización
Es el proceso mediante el cual se asigna un valor “entero” a un número “real”.
En función de la cantidad de enteros utilizados (o la cantidad de bits necesarios
para su presentación), el proceso de cuantificación puede introducir más o
menos distorsión respecto al valor orignal.
Transmisión
El estándar JPEG 2000 24 está también basado en la idea de utilizar para la
codificación los coeficientes de una transformación, pero en este caso se utilizan
transformadas discretas de Wavelets (DWT). Esta transformada permite comprimir
aún más las imágenes 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 diseñado por el “Moving Picture Experts Group”
(MPEG) de la ISO (International Standards Organization) para el almacenamiento
y reproducción 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 estandarización de la
recomendación H.264/MPEG-4 Part 10, también conocida como JVT/H.26L/AVC
(Advanced Video Coding) o H.264/AVC en 2003. Este nuevo estándar utiliza
compensaciones de movimiento más flexibles, permitiendo dividir los macro-
bloques en diversas áreas rectangulares, y utilizar desplazamientos de hasta un
cuarto de píxel. Agrega además 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 específicos de forma exacta.
Las técnicas de codificación entrópica 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 más compleja que la
primera (CAVLC), pero a su vez, más 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 estándares 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 información para
generar el efecto “estereoscópico” 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 resolución
máxima de pantalla, el máximo frame rate y el máximo bit rate. Un decodificador
que soporta cierto nivel, debe ser capaz de decodificar cualquier señal 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