Computadores profesionales y sistemas de muy alta calidad
han podido manipular audio digital con facilidad desde hace casi quince años.
Sólo hace cinco años que un computador decente ha podido
trabajar con formatos de vídeo sin necesitar equipo adicional.
Pero hoy, aún los computadores más baratos tienen el poder de procesamiento
y la capacidad de almacenamiento necesaria para editar formatos de video
sin mucho esfuerzo.
Ahora que todo el mundo tiene estos equipos modernos
hay mas personas que, sin duda, desean hacer proyectos
más interesantes en áreas de multimedia digital, especialmente vídeo.
YouTube fue el primer gran éxito, y ahora todo el mundo quiere entrar.
Y, pues, ¡que bueno! ¡Este campo es de lo mejor!
No es difícil encontrar consumidores de media digital.
Pero aquí me interesa hablarle a los ingenieros, a los matemáticos,
a los “hackers” y la gente a quien le interesa descubrir
y crear cosas y construir tecnologías.
Son las personas que van tras de mi propio corazón.
La media digital, especialmente la compresión, se percibe como elitista,
y mucho más difícil que cualquier otra cosa en las ciencias de computación.
A los grandes de la industria no les molesta esta percepción;
les ayuda a justificar la gran cantidad de patentes que mantienen.
A ellos les gusta la imagen de que sus investigadores son de lo mejor,
tan más inteligentes que el resto del mundo, que sus ideas
no las podemos entender nosotros, los meros mortales.
Esto son patrañas.
La compresión y streaming de audio y video digital
ofrecen retos mentales profundos y muy estimulantes
como cualquier otra disciplina.
Parece elitista porque tan poca gente se ha envuelto.
Muy poca gente se ha envuelto tal vez porque muy pocos
podían pagar por el equipo tan costoso que solía ser necesario.
Pero ahora, casi cualquier persona viendo este video tiene un computador
barato y de uso básico capaz de compararse con los chicos grandes.
Hay batallas librándose hoy mismo sobre HTML-5 y navegadores web
y video y codigo libre o no-libre.
Es un momento ideal para envolverse en todo esto.
La forma más facil para empezar es entendiendo
la tecnología que tenemos al momento.
Esta es una introducción.
Como es una introducción, hay muchos detalles que no se incluyen
sino que es un resumen más general sobre el tema.
Muchos de ustedes ya conocerán mucho
de lo que estaré hablando, al menos por ahora.
Por otro lado, es posible que para otros voy a ir muy rápido,;
si eres totalmente nuevo a este tema: relájate.
Lo importante es escuchar las ideas que capturen tu imaginación.
Pon atención al vocabulario que se use sobre esas ideas
porque luego puedes buscar en Google y Wikipedia,
y así investigar tanto como te interese.
Así que, sin más preámbulos,
bienvenido a la nueva afición de tu vida.
Un sonido es una propagación de ondas de presión de aire,
expandiéndose desde un orígen, como cuando lanzas una piedra a un lago.
Un micrófono, y también el oído humano,
convierten estas ondas de presión en señales eléctricas.
Esto es ciencia básica y puede que ya lo sepas.
Continuemos.
Esa señal de audio es una uni-dimensional – un valor único que varía con el tiempo.
Si reducimos la velocidad un poco...
puedes ver la función más claramente.
Ciertos otros aspectos de la señal son importantes.
La señal es continua tanto en valor como en tiempo;
o sea, en todo momento va a tener cualquier valor real,
y ese valor varía sólo levemente de momento a momento.
No importa cuánto nos acerquemos,
no hay descontinuidades, ni singularidades, ni saltos instantáneos
o puntos en los que la señal deja de existir.
Está bien definida en todo lugar. Estas señales se definen en términos básicos de la matemática continua.
Una señal digital, por otra parte, es discreta tanto en valor como en tiempo.
En el sistema más simple y más común, llamado modulación de códigos de impulso (PCM en inglés),
uno de entre varios posibles valores representa la amplitud de señal
en puntos de tiempo separados a distancias fijas. El resultado es una serie de dígitos.
Esto se ve muy parecido a lo que ves aquí.
Parecería que deberíamos poder convertir de una señal a otra con precisón,
y, de hecho, el Teorema de Sampling confirma y explica cómo hacer esto.
Publicado por Claude Shannon en 1949
y compuesto en la obra de Nyquist y Hartley, entre otros,
el teorema de sampling ice que podemos alternar entre señales análogas y
señales digitales, y también muestra condiciones con las cuales la conversión
ocurrirá sin pérdida y las dos representaciones serán equivalentes e intercambiables.
Cuando las condiciones sin pérdida no se cumplen, el teorema nos dice
cómo y cuál información se pierde o se corrompe.
Hasta muy recientemente, la tecnología análoga era la base para prácticamente todo audio,
y eso no era porque la mayoría del audio proviene de una fuente análoga.
Tal vez piensas que como los computadores son relativamente recientes,
la tecnología se señales análogas debió haber llegado primero.
Nop. La digital es más antigua.
El telégrafo es más antiguo que el teléfono por medio siglo,
y ya estaba completamente automatizado para los 1860s, enviando señales
codificadas y multifacéticas a través de largas distancias.
Harry Nyquist de los Laboratorios Bell investigaba transmisiónes de telegráfo
cuando publicó su descripción de lo que se vino a conocer como
la frequencia Nyquist, el concepto clave del teorema de sampling.
Ahora, es cierto que el telégrafo transmitía información simbólica (texto)
y no una señal de audio digitalizada, pero con la llegada del teléfono y la radio
las tecnologías análogas y digitales progresaron rápidamente y a la par una con otra.
El audio siempre se ha manipulado como una señal análoga ya que, pues, era la forma más fácil..
Un filtro sencillo de pasabajo, por ejemplo, requiere dos componentes pasivos.
Un transformador análogo Fourier requiere varios cientos de componentes.
O tal vez varios miles si quieres construir algo de calidad.
Procesar señales digitalmente require millones o billones de transistores
operando a frequencias de microondas, mas equipo de apoyo al menos para digitalizar
y reconstruir las señales análogas, un ecosistema de software
para programar y controlar ese monstruo de billones de transistores
y almacenamiento digital en caso de que quieras guardar esos bits para otro día...
Podemos concluir entonces que análogo es la manera más practica de trabajar con audio...
a menos que tengas un billón de transistores y todo lo demás a tu disposición.
Y como nosotros sí lo tenemos, el procesamiento digital sí resulta más atractivo.
Por un lado, los equipos análogos no tienen la flexibilidad que tiene un computador.
Añadir una nueva función a esta bestia...
mmm, no. No vamos a poder.
Pero en un procesador digital...
...sólo hace falta escribir un programa nuevo. No es súper fácil, pero es mucho más fácil.
Lo que es tal vez más importante es que todo componente análogo es una aproximación.
No hay tal cosa como un transistor perfecto, o un inductor perfecto, o un capacitador perfecto...
En análogo, todo componente añade sonido y distorsión – no mucho en general, pero se acumula.
Sólo transmitir una señal análoga, especialmente a través de distancias largas,
corrompe la señal progresivamente e irreparablemente.
Además, todos esos componentes análogos ocupan mucho espacio.
Dos líneas de código en los billones de transistores aquí atrás
pueden implementar un filtro que requeriría un inductor del tamaño de un refrigerador.
Los sistemas digitales no tienen estas desventajas.
Las señales digitales se pueden almacenar, copiar, manipular y transmitir sin añadir ruido o distorsión.
Sí usamos algoritmos con pérdida de tiempo en tiempo,
pero los únicos pasos no-ideales e inevadibles son la digitalización y la reconstrucción,
en la cual lo digital debe interactuar con toda esa complicación análoga.
Complicado o no, los métodos modernos de conversión son muy, muy buenos.
Para los estándares de nuestros oídos, los podemos considerar prácticamente sin pérdidas.
Con un poco de equipo adicional, pues, mucho del cual es ahora pequeño y bajo en costo,
dada nuestra tecnología moderna, el audio digital triunfa fácilmente sobre el audio análogo.
Así que aprendamos ahora cómo almacenarlo, copiarlo, manipularlo, y transmitirlo.
La modulación de códigos de impulsos (PCM) es la representación más común de audio puro.
Existen otras representaciones prácticas, por ejemplo el codigo Sigma-Delta usado por el SACD,
que es una forma de modulación por densidad de impulsos.
Dicho esto, el PCM es el método dominante
mayormente porque es conveniente matemáticamente.
Un ingeniero de audio puede dedicar una carrera entera trabajando sólo con esta modulación.
La codificación PCM se puede caracterizar en tres parámetros;
esto hace fácil distinguir entre toda variante posible de PCM sin mucha dificultad.
El primer parámetro es la tasa de sampling (sampling rate).
La frecuencia más alta que puede representar un código se llama la Frecuencia Nyquist.
La frecuencia Nyquist de un PCM es exactamente la mitad de su sampling rate.
Por eso, el sampling rate determina la frecuencia más alta posible de la señal digital.
Los sistemas de teléfonos análogos limitaban los canales de voz a sólo 4kHz,
así que la telefonía digital y muchas de las aplicaciones de voz clásicas usan un sampling rate de 8kHz,
que es el sampling rate mínimo necesario para capturar el ancho de banda de un canal de 4kHz.
Así es como suena un sampling rate de 8kHz – un poco fogoso pero perfectamente entendible para voz.
Este es el sampling rate más bajo que se ha usado ampliamente.
A partir de ahí, mientras la capacidad, memoria y almacenamiento aumentaron, los computadores
ofrecieron samplings de 11, luego 16, luego 22, y luego 32kHz.
Con cada aumenteo en el sampling rate y la frecuencia Nyquist,
es obvio que el sonido se vuelve más claro y más natural.
Un Disco Compacto (CD) usa un sampling rate de 44.1kHz, el cual es un poco mejor que 32kHz,
pero las ventajas se notan menos a estos niveles.
44.1kHz es un valor inusual, especialmente porque no se había usado nunca anteriormente
antes del disco compacto, pero el éxito rotundo del CD lo ha hecho un sampling rate común.
El otro sampling rate común de alta fidelidad es 48kHz.
No hay casi ninguna diferencia notable al oído humano entre estos dos niveles.
Este video, o al menos la versión original, se filmó y produjo con audio a 48kHz,
que es el estándar original para audio con vídeo de alta fidelidad.
También existen sampling rates de super alta fidelidad de 88, 96, y 192kHz.
La razón para niveles por encima de 48kHz no es extender las frequencias aún más.
La razón es otra.
Veamos: El matemático francés Jean Baptiste Joseph Fourier mostró que
podemos pensar en señales de audio como un conjunto de frequencias de componentes.
Esta representación de dominios de frequencia es equivalente a una representación de tiempo;
la señal es exactamente la misma, sólo que la estamos viendo de un punto de vista diferente.
Aquí vemos la representación de dominios de frequencia de una señal análoga que queremos convertir a digital.
El teorema de sampling nos dice dos cosas esenciales sobre el proceso de muestreo.
Primero, que una señal digital no puede representar ninguna frecuencia sobre la frequencia Nyquist.
Segundo – y esto es lo nuevo – si no removemos esas frecuencias con un filtro de pasabajo antes de muestrear,
el proceso de muestreo las va a tratar de representar bajo una frecuencia aceptable, como distorsión dentada.
Esta distorsión, en resumen, suena muy, muy mal,
así que es esencial remover frecuencias sobre la frecuencia Nyquist antes de convertir una señal.
La percepción humana de frequencias se extiende hasta más o menos 20kHz.
En samplings de 44.1 o 48kHz, el pasabajo antes de la etapa de sampling tiene que ser muy preciso
para que no corte ninguna frecuencia audible por debajo de 20kHz
y a la vez evite que frecuencias por encima de la Nyquist se infiltren en el proceso de sampling.
Este es un filtro difícil de construir y ningún filtro en particular lo logra totalmente.
Si el sampling rate es de 96kHz o de 192kHz, por otro lado,
el pasabajo tiene una o dos octavas adicionales para su banda de transición. Este es un filtro más fácil de construir.
Sampling rates mayores de 48kHz son más que nada un compromiso inexacto entre análogo y digital.
El segundo parámetro importante del PCM es el formato del sample, es decir, el formato de cada número digital.
Un número es un número, pero se puede representar en bits en varias formas.
Los PCM antiguos eran de ocho bits lineares, codificados usando un byte no-firmado.
El alcance dinámico está limitado a 50dB y el sonido de cuantificación, como puedes oir, es severo.
El audio de ocho bits está desapareciendo actualmente.
La telefonía digital usa una de dos codificaciones no lineares de ocho bits, llamadas A-law y mu-law.
Estos formatos codifican un registro de 14 bits a uno de ocho bits
expandiendo los valores de mayor amplitud a mayor distancia.
A-law y mu-law aumentan el sonido de cuantificación comparado con el 8-bit linear
y armonías de voces esconden bien el resto del sonido de cuantificación.
Todos estas codificaciones de 8-bits: linear, A-law y mu-law típicamente se parean
con un sampling rate de 8kHz, aunque aquí lo estoy demostrando a 48kHz.
La mayoría de los PCM modernos usan íntegros de 16 ó 24-bits para codificar
el registro desde infinidad negativa hasta cero decibeles a 16 ó 24 bits de precisión.
El valor absoluto máximo corresponde a zero decibeles.
Como con todos los formatos de sample hasta ahora, las señales por encima de cero decibeles
y por tanto fuera del registro máximo se eliminan.
Al mezclar y masterizar, no es inusual usar puntos flotantes para PCM en vez de números íntegros.
Un punto flotante IEEE754 de 32 bits, que es el punto típico que encuentras en computadores modernos
tiene 24 bits de resolución, pero un punto flotante exponente de 7 bits aumenta el registro representable.
Un punto flotante por lo general representa cero decibeles como +/-1.0,
y ya que flota, se puede representar considerablemente por encima o por debajo de ese número;
así, excedir cero decibeles temporeramente durante el proceso de mezcla no causa recortes de audio (clipping).
PCM con puntos flotantes toma más espacio para almacenar, por lo que sólo se debe usar durante la producción.
Por último, la mayoría de los computadores todavía leen y escriben data en bytes octetos,
así que es importante recordar que samples mayores de 8-bits
pueden estar en un extremo (endianidad) grande o pequeño, y ambos son comunes.
Por ejemplo, archivos Microsoft WAV son de menor endianidad y archivos Apple AIFC son de mayor endianidad.
Ten esto en cuenta.
El tercer parámetro de PCM es el número de canales.
Lo común en PCM puros es codificar muchos canales entrelazando los samples
de cada canal y volviéndolos uno. Simple y repetible.
Y eso es todo! Esto describe toda representacion de PCM que existe.
Y así terminamos. El audio digital es _muy facil_!
Hay mucho más que hacer, por supuesto, pero en este punto tenemos suficiente data de audio,
así que veamos algo de vídeo también.
Se podría ver a un video como si fuera audio pero con dos dimensiones: X y Y,
además de la dimensión de tiempo. Esto tiene sentido matemáticamente.
El Teorema de Sampling aplica a las tres dimensiones de un video así como a la única dimensión del audio.
El audio y el video son obviamente diferentes en práctica. Para empezar, comparado con el audio, un video es enorme.
Audio puro de CD usa cerca de 1.4 megabits por segundo.
Video puro de alta definición 1080i usa sobre 700 megabits por segundo.
Es más de 500 veces más data para capturar, procesar, y almacenar cada segunto.
Según la ley de Moore, eso es... veamos... cerca de ocho duplicaciones, por dos años,
sí, un computador requeriría unos quince años extra para procesar video puro
luego de terminar de procesar audio puro.
Un video puro básico es también más complejo que un audio puro básico.
La gran cantidad de data necesita una representación
más eficiente que el PCM linear que usamos para el audio.
Además, el video electrónico viene casi enteramente de transmisiones por televisión,
y los comités de estándares para la televisión siempre se han preocupados por mantener compatibilidad.
Hasta hace sólo casi un año en los EEUU, un televisor blanco y negro de sesenta años
todavía podía mostrar una transmisión normal análoga de televisión.
Eso era sin duda algo muy útil para la industria.
Lo malo de la compatibilidad retroactiva es que una ves un detalle se convierte en estándar,
no se puede eliminar fácilmente.
El vídeo electrónico nunca se ha recomenzado desde cero en la forma en que el audio sí se ha reconstruido.
Sesenta años de cambios necesitados por una tecnología obsoleta de una era antigua
se han acumulado en grande, y ya que los estándares digitales también provienen de la industria de televisión,
todos estos cambios se han transferido a los estándares digitales también.
Para resumir, hay muchos más detalles envueltos en un video digital que los que hay con audio.
No hay manera de cubrirlos todos aquí, así que hablaremos de los fundamentos principales.
El parámetro más obvio del video puro es el ancho y la altura de la imagen en pixeles.
Por tan simple como suene, las dimenciones solas en realidad no especifican
el ancho y alto absoluto de una imagen, ya que la mayoría de los videos no usan pixeles cuadrados.
El número de trazos por linea en una imagen de video para transmisión se hizo fija,
pero el número de pixeles horizontales dependía de la banda de ancho del canal de TV.
La resolución horizontal podía resultar en pixeles que eran más estrechos
o más anchos que el espacio entre las líneas de trazo en el televisor.
Varios estándares han especificado que los videos convertidos digitalmente
deben reflejar la resolución de la fuente análoga original,
por lo que una gran cantidad de video digital también usa pixeles que no son cuadrados.
Por ejemplo, un DVD normal NTSC con aspecto 4:3 está codificado típicamente
con una resolució de 704 por 480, que es un aspecto mayor que 4:3.
En este caso, a los pixeles se les asigna un aspecto de 10:11,
haciéndolos más altos que anchos y reduciento la imagen horizontalmente hasta el aspecto correcto.
Esa imagen debe ser re-muestreada (re-sampled) para adaptarse a una proyección digital con pixeles cuadrados.
El segundo parámetro obvio de video es el frame rate: la cantidad de imágenes por segundo.
Varios frame rates estándares se usan comúnmente. El video digital, por lo general,
los puede usar todos. O cualquier frame rate. O hasta frecuencias variables,
en las que el frame rate cambia durante el video.
Mientras mayor es el frame rate, mejor es el flujo del video; con esto llegamos al entrelazamiento (interlacing).
En los primeros días de transmisión de video, muchos ingenieros buscaban el frame rate más rapido posible
para mejorar el flujo de video y minimizar el “parpadeo” en televisores de tubo (CRTs).
Estaban bajo presión para usar el menor ancho de banda posible
para la mayor resolución y el frame rate más veloz.
Su solución fue el entrelazar el video para que las líneas pares se enviaran en un paso
y las línes impares se enviaran en el próximo paso.
Cada paso se llama un campo y dos campos más o menos producen una imagen completa.
“Más o menos” porque los campos no son en realidad parte de la misma imagen original.
En una imagen de 60 campos/segundo, el frame rate de la imagen original es 60 imágenes por segundo,
y la mitad de cada imagen – una de cada dos líneas – simplemente se descarta.
Por esta razón no se puede desenlazar un video combinando dos campos en uno;
ya que no provienen de la misma imagen de por sí.
El tubo de rayos catódicos (CRT) era la única tecnología disponible durante la mayoría de la historia del video.
La salida de un CRT es no-linear, aproximadamente igual al
voltaje de entrada elevado a la 2.5va potencia.
Este exponente, 2.5, es un gamma designado, y se le llama comúnmente el gamma de exposición.
Las cámaras, sin embargo, son lineares, y si alimentas a un CRT con una señal linear de entrada, se verá algo así.
Ya que originalmente habían muy pocas cámaras, y muy costosas,
y se esperaba con suerte que surgieran muchos equipos de televisión bajos en costo,
los ingenieros decidieron añadir correción de gamma a las cámaras y no a los televisores.
Así, un video transmitido por ondas de aire tendría una intensidad no-linear igual al inverso
del exponente de gamma del televisor, y una vez que la señal de una cámara se expusiera en el TV,
la comunicación del sistema desde la cámara hacia el televisor volvería a ser linear.
Casi.
También hubo otras alteraciones.
Una cámara de televisión usa un exponente de gamma que es en realidad 2.2 en vez de 2.5.
Esto es una correción para ver televisión en un ambiente opaco.
Además, la curva exponencial se transiciona a una rampa linear cerca del color negro.
Esto es una alteración antigua para suprimir el sonido del sensor de la cámara.
La corrección de gamma tambien tuvo un beneficio afortunado.
Sucede que el ojo humano tiene una percepción de gamma de alrededor de 3.0.
Esto es relativamente cerca de la gamma de un CRT, 2.5.
Una imagen con corrección de gamma dedica una mayor resolución a las intensidades más bajas
para las cuales el ojo tiene una más fina discriminación de intensidad
y puede usar la resolución disponible más eficientemente.
Aunque los CRTs están desapareciendo actualmente, el monitor de una computadora RGB estándar
todavía usa una curva de intensidad no-linear como la de un televisor, con una rampa linear cerca del color negro,
seguida por una curva exponencial con un exponente de gamma de 2.4.
Esto convierte un registro linear de 16-bits a uno de 8-bits.
El ojo humano tiene tres canales aparentes de color: rojo, verde, y azul,
y la mayoría de los monitores usan estos tres colores como aditivos primarios para producir un registro completo de color.
Los pigmentos primarios de impresión son cyan, magenta, y amarillo por la misma razón;
los pigmentos son substractivos, y cada pigmento substrae (remueve) un color puro al reflejarse en la luz.
El cyan remueve rojo, el magente remueve verde, y el amarillo remueve azul.
El video se puede y se suele representar con canales rojo, verde, y azul,
pero el video RGB (red, green, blue) no es típico. El ojo humano es más sensitivo a la luminosidad que a un color,
y el RGB tiende a distribuir la energia de una imagen a través de los tres canales de color.
En otras palabras, el plano rojo se ve como una versión roja de la imagen original,
y el plano verde se ve como una versió verde de la imagen original,
y el plano azul se ve como una versión azul de la imagen original.
Blanco y negro multiplicado por tres. No es eficiente.
Por esas razones y por que, bueno, la televisión comenzó en blanco y negro después de todo,
el video se representa usualmente como un canal luma de alta resolución,
uno de blanco y negro, y otros canales croma adicionales de baja resolución.
El canal luma, “Y”, se produce al medir y luego añadir las señales rojas, verdes y azules.
Los canales croma “U” y “V” se producen al restar la señal luma de la señal azul
y la señal luma de la señal roja.
Cuando se escala el YUV, adaptado para video digital, es usualmente más correcto llamarlo Y'CbCr,
ya que el término generico YUV se usa para describir
todas las variantes análogas y digitales de este modelo de color.
Los canales croma “U” y “V” pueden tener la misma resolución que el canal Y,
pero ya que el ojo humano tiene menos resolución espacial de color que resolución espacial de luminosidad,
la resolución baja por lo general se reduce a la mitad o a un cuarto en la dirección horizontal, vertical,
o en ambas, usualmente sin impactar la calidad visual de la imagen significativamente.
Prácticamente toda variante posible de subsampling se ha usado en algún momento u otro,
pero las opciones comunes actualmente son
el video 4:4:4, que en realidad no es sub-muestreado (sub-sampled),
el video 4:2:2 en el que las resoluciones croma “U” y “V” se reducen a la mitad,
y el más comun, el video 4:2:0, en el que las resoluciones horizontales y verticales
de los canales bajos se reducen a la mitad, resultando en planos U y V que son un cuarto del tamaño de Y.
Los términos 4:2:2, 4:2:0 y 4:1:1, no son descripciones completas de un subsampling croma.
Hay muchas maneras de posicionar los pixeles croma relativos al luma.
y de nuevo, muchas variantes se usan activamente para cada subsampling.
Por ejemplo, los formatos de video Motion JPEG, MPEG-1, MPEG-2, DV, Theora, y WebM usan
o pueden usar subsampling de 4:2:0, pero posicionan los pixeles en maneras distintas.
Los formatos Motion JPEG, MPEG1, Theora y el WebM posicionan los pixeles croma
entre los pixeles luma tanto horizontal como verticalmente.
El MPEG2 los posiciona entre lineas, pero alineados horizontalmente con cada dos pixeles luma.
Formatos entrelazados complican las cosas un poco, resultando en un posicionamiento que es un poco extraño.
Y finalmente, el video PAL-DV, que siempre es entrelazado, posiciona los pixeles croma
en la misma posición que cada segundo pixel luma en la dirección horizontal,
y verticalmente alterna el canal croma en cada línea.
Y esto es solamente video 4:2:0. Dejaré los otros subsamplings como tarea para tí.
Ya tienes la idea básica; continuemos con algo nuevo.
En el audio, siempre representamos múltiples canales en un stream PCM entrelazando los samples
de cada canal en orden. El video usa ambos formatos que entrelazan los canales de color
así como formatos planares que mantienen los pixeles de cada canal juntos en líneas separadas,
acumuladas en orden dentro de la imagen. Hay al menos 50 formatos en estas dos categorías
con al menos diez o quince en uso común. Cada subsampling croma y profundidad de bit requieren
un arreglo de formato diferente, y por tanto un formato de pixel direrente. Para cada subsampling,
hay por lo general varios formatos equivalentes que consisten de ordenes triviales
de arreglos de canales debidos a costumbres antiguas o a algún tipo de equipo en particular
o algunas veces simplemente a un buen antojo.
Los formatos de pixeles se describen con un nombre único en código “fourcc”.
Hay muchos de estos nombres y no tiene sentido ir por cada uno de ellos ahora mismo.
Google es tu amigo. Ten en mente que los códigos “fourcc” para video puro especifican el arreglo de pixeles
y el subsampling croma, pero en general no especifican nada en específico sobre posicionamiento de colores.
El formato de video YV12, por ejemplo, puede usar posicionamientos de JPEG, MPEG-2 o DV,
y una de muchas posibles definiciones de espacio de color YUV.
Esto concluye nuestro recorrido no muy corto y aún así muy incompleto sobre video.
Las buenas noticias es que ya podemos hacer un poco de trabajo con lo que hemos aprendido.
En muchas situaciones, una imagen de data de video es simplemente eso, una imagen de data de video.
Los detalles importan, de gran manera, cuando toca escribir programas de software,
pero por ahora estoy satisfecho de que tú ya estás informado sobre los asuntos relevantes.
Entonces. Tenemos data de audio. Tenemos data de video.
Lo que falta es incluir data tradicional y algo de ingeniería simple
a la que los desarrolladores de software se han acosumbrado.
Trozos de data de audio y de video no tienen una estructura visible externa,
pero su tamaño es uniforme. Podemos simplemente “amarrarlos”
en un orden rígido y predeterminado para uso en streaming y almacenamiento,
y algunos programas simples hacen precisamente esto.
Las imágenes comprimidas, sin embargo, no tienen necesariamente un tamaño predecible,
y usualmente queremos algo de flexibilidad para usar una variedad de formatos de data en nuestros proyectos.
Si amarramos data al azar, podemos perder los límites que separan a las imágenes
y no poder saber cuál data pertenece a cuál proyecto.
Un proyecto necesita una estructura generalizada para ser útíl generalmente.
Además de nuestra data de señal, también tenemos parámetros de PCM y de video.
También probablemente hay mucha metadata con la que trabajar,
como etiquetas de capítulos y subtítulos de audio y video, componentes esenciales de multimedia.
Tiene sentido colocar esta metadata – o sea, data sobre la data – en el proyecto mismo de multimedia.
El trabajo de un contenedor es almacenar y estructurar data que no tiene forma específica.
Los contenedores proveen la estructura para los cuerpos de data,
entrelazan e identifican mútiples fuentes de data,
proveen imformación sobre tiempo, y almacenan la metadata necesaria
para evaluar, navegar, manipular, y presentar la data.
En general, cualquier contenedor puede contener cualquier tipo de data.
Y la data se puede poner en cualquier contenedor.
En los pasados treinta minutos, hemos aprendido sobre audio digital, video,
algo de historia, algo de matemática, y un poco de ingeniería.
Solamente hemos tocado la superficie de estos temas, pero es tiempo de un buen merecido descanso.
Hay mucho más de qué hablar, así que espero que me acompañes de nuevo en nuestro próximo episodio.
Hasta entonces, ¡buena suerte!