11/09/2011

Compresión y codificadores

Estas dos denominaciones son una parte muy importante de cualquier trabajo de post-producción. Muchas personas no toman en cuenta esto a la hora de finalizar un proyecto, ocurriendo que nuestro trabajo o el de otros, luego de horas de pre-producción, producción y rodaje se vean empobrecidos por algo tan importante cómo lo es la codificación final de un proyecto. Incluso podemos tener las mejores herramientas, las mas sofisticadas, las mas potentes, pero la calidad de nuestro trabajo dependerá en gran medida de la cantidad y calidad de los datos disponibles para trabajar.



Estos códecs de postproducción para definición estándar se popularizaron a principio de la década (Blackmagic, Matrox, Pinnacle, etc), pero la irrupción de la Alta Definición (HD), con el aumento de los datos que conlleva, desvió la mirada hacia otros códecs con compresión. Pero en sus variantes de HD, estos códecs todavía se mantienen como la máxima expresión en fidelidad, con la única desventaja de que necesitan mucho ancho de banda (del orden de 1,25 Gbps) y por tanto consumen mucho espacio, haciendo imprescindibles costosos subsistemas de almacenamiento RAID.

Aunque no podamos manejarnos con los presupuestos de los que dispone la industria cinematográfica, ello no debe ser obstáculo para trabajar con calidad y solvencia. Para ello debemos tener conocimiento de nuestras herramientas. Hoy en día tenemos a nuestra disposición una gran cantidad de códecs, y mantenernos al tanto de sus características es imprescindible, más cuando los códecs de adquisición empiezan a mezclarse con los de edición dificultando nuestro trabajo de postproducción.

Los códecs con compresión siempre se han usado en la adquisición por motivos de coste (HDCam, DVCProHD, HDV, Mpeg-2, AVCIntra, etc), pero también ahora se ha ampliado su uso a la edición, lo que se llama edición “nativa”, impulsada por los nuevos soportes basados en fichero (P2, XDcam EX, MXF, etc). Se dividen en Intraframe y Long GoP. En la compresión Intraframe una imagen entera puede ser reconstruida por la información contenidad en esa imagen (se denomina I-frame). La compresión Long Gop tiene I-frames también, pero genera frames parciales usando compresión temporal, en los cuales se almacena la diferencia entre estos frames y los que están antes y despues. En un GoP (group of pictures) de 15 frames (el más habitual) por cada segundo encontramos dos I-frames.

Para trabajos de postproducción los códecs Long GoP son inaceptables, solo los códecs I-frame garantizan la mínima cantidad de datos y fidelidad necesaria, y de éstos, los basados en Wavelet son preferibles a los basados en DCT (Discrete Cosine Transform).

Los códecs basados en DCT generalmente usan macroblocks de 16×16 o 8×8 píxeles con un algoritmo de compresión basado en la transformada discreta del coseno. La compresión wavelet usa un algoritmo basado en la transformada wavelet, que convierte los píxeles en coeficientes. El resultado es que los defectos que se aprecian en los códecs DCT son la generación de bloques uniformes y borrosos (los famosos blocky artifacts) mientras que en los códecs Wavelet se puede llegar a dar un suavizado en los bordes o filos (y por tanto la eliminación de pequeños detalles), mucho más aceptable para su manipulación y procesado en postproducción que los defectos DCT.

Como códecs de edición basados en DCT tenemos el códec DNxHD de Avid, que ofrece 4:2:2 a 10 bit a 220 Mbps, y el ProRes de Apple, también 220 Mbps a 10 bit en YUV 4:2:2, y que en su nueva versión soporta RGB 4:4:4:4 a 12 bit a 330 Mbps. Son códecs de calidad, pero por su naturaleza DCT adecuados para edición pero para postproducción sólo si no tenemos otra alternativa.

Basados en Wavelet tenemos los códec Jpeg2000, Redcode Raw y Cineform. Jpeg2000 es el códec de elección de la DCI (Digital Cinema Initiatives) para la distribución y proyección del cine digital, también es el códec de adquisición principal de la cámara Infinity de GrassValley. Redcode Raw, basado en Jpeg2000, es el códec de adquisición de la Red One, y si bien es leído por varias aplicaciones, se tiene que exportar siempre a otro códec. El códec Cineform es actualmente el códec de edición e intermediación digital con compresión de mayor calidad y fidelidad del mercado. Como códec ofrece RGBA y RGB 4:4:4, YUV y Raw con hasta 12 bit de precisión, en varios niveles de compresión (hasta 320 Mbps), con soporte de metadatos, y en versiones tanto para Windows como OSX (en contenedor avi o mov). Por supuesto no es perfecto y como contrapartida tiene un elevado precio.

He dejado para el final los códec raw de las nuevas cámaras de cine digital. Actualmente graban en este “formato” ARRI D21, Dalsa Origin, Red One, Silicon Imaging, VR Phantom y Weisscam. Por supuesto no hay ninguna compatibilidad entre ellos y no son códecs adecuados para postproducción. La práctica común es pasar el raw original a secuencias DPX 10 bit log, que es un proceso muy extendido como ya he comentado. Pero empiezan a plantearse algunos problemas con dicho proceso, el más adecuado para material originado en película, pero no para material originado electrónicamente, resultado de sensores de naturaleza linear. Me limito a trasladar una duda de varios profesionales del digital.

Aquí entra en escena el nuevo códec CinemaDNG promovido por Adobe (se presentó en el NAB de 2008) y actualmente en desarrollo por un consorcio de fabricantes de software y hardware. La intención es diseñar un códec raw que sea abierto y ampliamente aceptado por la industria, de forma que contenga los datos sin procesar (raw) de las cámara digitales en un formato unificado, facilitando el entorno de trabajo y el acceso a los datos de estas cámaras por el soft de postproducción. Actualmente solo Iridas ha anunciado su soporte y se espera que en el IBC de este año se presenten sus especificaciones finales. Veremos en que acaba todo.

Vía: digitalfrozen.com

5 comentarios:

Topillo dijo...

Muy interesante y objetivo el artículo que traes aquí. Entrar en las tripas de un códec de compresión es complejo de entender, parece que pasamos a hablar otro lenguaje. Sin embargo la explicación en este caso es más clara y he podido entender, creo yo, lo que has querido decir.

De todas formas he notado que la mirada está puesta en códecs, ediciones y postproducciones profesionales. Es decir, nos hablas de 10bits o 12bits. De 4:2:2 o aún mejor 4:4:4. Sin embargo, la mayoría de los aficionados como bien sabrás no contamos con toda esa información gráfica para procesarla, sino con lo que nos ofrecen códecs más agresivos en compresión nuestras cámaras y/o videocámaras. En concreto yo tengo la 7D y tengo que limitarme a los 8bits de profundidad de color, por ejemplo, además de un 4:2:0 lo cual convierte mis archivos originales en "poco" editables o manipulables, si no quiero obtener resultados demasiado alterados y pronunciados, donde al final la acabes errando. En definitiva, mi pregunta sería ¿editarías y harías postproducción directamente sobre los h.264 que tenemos de origen?¿o bien harías una transcodificación a Cineform (códec que defiende este artículo)?

Conozco perfectamente el refrán: "de dónde no hay, no se puede sacar". Pero en este caso concreto, ¿si pasamos los MOVs nativos a Cineform conseguimos algo extra?¿sacamos algún beneficio a la hora de postproducir?

Saludos y gracias nuevamente por traernos esta información tan valiosa.

mdsavio dijo...

PrimEro que nada, gracias Topillo por tu aporte. Cómo se puede ver siempre intento realizar entradas no muy largas, esta cro era la mas dificil de entender. La mayoría de las personas que entran es buscando respuestas y aprender un poco mas sobre dslr asique ir mas alla en los codecs no era muy necesario de todas maneras hay que tenerlo muy presente.

No solo es cuestion de comprarse una buena cámara, los mejores objetivos y tener un buen soft si no sabemos lo básico en codificadores... porque nos cargamos todo el trabajo anterior.

A tu pregunta de lo que yo hago es muy simple, ultimamente he decidido ir por lo sano, software de toda la vida que hoy día trabaja el h264 de forma nativa... Premiere y After Effects ... Trabajo con el codec h264 de pe a pa... lo que si le doy un tratamiento en post... abro el proyecto en after, le hago las correcciones de color y suelo aplicar en los trabajos mas elavorados "Denoiser" que me limpia las imágenes de forma brutal. Cualquier problema del mismo codec se borra literalmente.

También es verdad que a la velocidad de transferencia el codec trabaja muy bien y también es verdad que al visualizar el contenido en un buen tv full hd se ve de cojones. En este último se pierden muchos detalles y se llega a ver muchisimo mejor que cualquier programa de tv... asi como lo digo. Ya digo y todos saben que la tv está muy, muy comprimida que casi es una bosta al aire comparandolo con lo que trabajamos en post y podemos ver en nuestros monitores a la salida final.

El codec Cineform es la caña, es un buen codec para trabajar también pero no nos dará mas calidad, solamente obtendremos un fichero muy fiable para trabajar en post. Logicamente si venismo de otro codificador o de archivos sin comprimir y queremos bajarlo Cineform es el adecuado, como lo es también ProRes. El H264 quedaría a lo último de la cadena... jejeje... pero da muy buenos resultados que están a la vista en muchos videos por el canal vimeo.

Topillo dijo...

Gracias por responder tan rápido.

No me cabe la menor duda de que H.264 es uno de los mejores códecs para comprimir si lo que nos importa es el peso del archivo y queremos a su vez una calidad ... dejémoslo en "digna".

Yo, al igual que tú, también edito con los archivos nativos que vienen codificados en H.264. En mi caso utilizo Sony Vegas y para limpiar de ruido utilizo el pluggin "Neat" que está más que demostrada su efectividad en estas lides.

Sin embargo, cuando tocamos el color en postproducción (saturación, luz, etc) mi duda, y no se si al final de esta charla quedará resuelta, es que no debe ser lo mismo tratar un video de 8bits de profundidad de color, que de 10bits. Es decir, al grano: si codificaramos a 10bits (ejemplo Cineform) un archivo nativo 8bits... mmmm... ¿podríamos notar una mejoría al toquetear el vídeo en tu caso con After Effects... en el mío con Vegas? ¿más sutileza, más rango de tonos, p.e.? ¿o no, o sea, partimos de 8bits y aunque lo pasemos a 10bits "de dónde no hay, no se puede sacar"?

Perdona por preguntártelo de nuevo porque en tu respuesta anterior no me ha quedado claro este aspecto.

Saludos.

mdsavio dijo...

Al final todo se reproduce en una tv y no se si se notará una diferencia real. Yo no me preocupo de ello. Incluso trabajando para tv, muchas promos van directamente en H264, aunque paresca una locura.

Sigue etalonando asi que seguro vas bien, eso si un plugin muy bueno para ello es el look.

Si nos ponemos a hablar de los codificadores mas pro ya hasta necesitaríamos hablar de buenos monitores y otras cosillas.

No se a que nivel trabajas pero si eres como yo que produce videos a nivel profesional a un ritmo de locos... seguiría con el H264 y si necesitas terminar algo mas pro el trabajo, termina en un codificador sin compresión. Yo uso "animation" para animaciones o para videos "Uncompressed YUV 10 bits 4:2:2" Estos ficheros luego pueden usarlos en MAC o PC, para lo que se quiera y bajandolo sin perder calidad.

Topillo dijo...

Utilizar h264 para televisión, estoy contigo, no tiene por qué parecer una locura. De hecho las nuevas versiones están mejorando mucho el inicial.

Recojo tus Consejos inmediatamente. Hoy precisamente he instalado el software qué me aconsejas de Red Giant, asi qué me toca trastearlo un poco, pues solo lo he empleado anteriormente en contadas ocasiones y en si versión 32bits.

Me alegro que el curro no te falte. Yo si sale algo lo cojo, pero intento disfrutar la afición todo lo qué puedo, aunque llega un momento que te planteas como una necesidad amortizar él costoso material que poco a poco vas adquiriendo .

Muchas gracias por todo. Seguimos en contacto por los foros.

Un saludo.