PUBLICIDAD

Welcome to videoedicion.org (v8.3). Please login or sign up.

28 de Marzo de 2024, 17:24:36

Login with username, password and session length

Temas Recientes

523 Visitantes, 0 Usuarios

Compra y colabora

Si usas estos banners para hacer tus compras, recibiremos una pequeña comisión. ¡Gracias por colaborar!


 




Código VID15 para
un 15% en planes anuales


La compresión del vídeo digital

Iniciado por Ramón Cutanda, 09 de Noviembre de 2003, 21:59:52

Tema anterior - Siguiente tema

Ramón Cutanda

    Este artículo se publicó en noviembre de 2003 y se conserva por motivos de archivo histórico

    [caption align=alignnone,1620] Imagen por Wikipedia[/caption]

    La compresión de vídeo
    Si tenemos en cuenta que para poder registrar TODA la información de un vídeo PAL a pantalla completa (720x576) necesitamos un CBR (Fujo de Datos Constante) de 32.768 KB/s  entendemos pronto el porqué de la compresión a la hora de trabajar con vídeo. Una hora de vídeo a pantalla completa sin comprimir son 115.200 MB. Incluso aunque capturemos a resolución 352x288 necesitaremos 8 MB/s  una cantidad considerable teniendo en cuenta que nos harían falta 28 GB por cada hora de captura, más el espacio necesario para realizar la edición del vídeo capturado. Así pués, se hace necesaria la intervención de formatos de compresión.


    RGB
    Este formato es el equivalente a un .wav en audio o un .bmp en fotografía, es decir, capturamos con el 100% de calidad y sin compresión alguna. Las siglas RGB provienen del inglés, Red (rojo), Green (verde) y Blue (azul) haciendo referencia a la característica del ojo humano de percibir tan sólo estos tres colores básicos y, el resto de la gama de color, se crea a partir de la combinación de estos tres. Aunque con este formato obtenemos la máxima calidad, los altos requerimientos de espacio y de ancho de banda para no perder cuadros (frames) en la captura harán que lo desestimemos en la mayor parte de las ocasiones.

    Cuando nos referimos al formato RGB se suele especificar también la profundidad de color, que se expresa en bits. Así, al decir RGB24 indicamos que el vídeo tiene una profundidad de color de 24bits (16.777.216 colores) Los valores posibles son RGB32, RGB24, RGB16 y RGB15


    YUV
    Otra característica del ojo humano, es que es más sensible a la luminosidad (cantidad de luz por pixel) que al color. Si centramos la compresión en el color preservando la luminosidad, conseguiremos un primer paso en la reducción del tamaño de la captura sin afectar demasiado la calidad. "Y" hace referencia a la luminosidad, mientras que "U" y "V"  a la crominancia, o color. Este sistema de compresión suele venir por defecto en un buen número de tarjetas capturadoras sin necesidad de instalar ningún códec (Ver Capturadoras con chips Brooktree/Conexant BT8x8) y la mayor parte de los códecs de compresión también lo utilizan como base para compresiones mayores.

    Hay una gran variedad de formatos YUV, algunos presentan diferencias muy sutiles y otras más importantes. El principal aspecto a tener en cuenta cuando comprimimos en YUV es el "subsampling" (ver a continuación)


    Subsampling
    El "Subsampling" (submuestreo) consiste en reducir la información de color preservando intacta la luminosidad. Eso se expresa de la siguiente manera:

    - 4:4:4 mantiene intacta tanto la información de la luminosidad (primer "4") como la del color (los otros dos "4"'s)
    - 4:2:2 reduce el muestreo del color a la mitad
    - 4:1:1 reduce el muestreo de color a la cuarta parte
    - 4:2:0 elimina uno de los valores de color dejando el otro valor en la mitad.
    (Los valores empleados en la compresión JPG y MPEG son 4:1:1 y 4:2:0)

    Para saber el porqué se le llama "sub-muestreo" hay que recordar que en un televisor la imágen se forma de forma entrelazada entre 625 líneas HORIZONTALES (525 para NTSC). Por tanto, el "submuestreo" hace referencia a que para comprimir la imágen tan sólo se utiliza el muestreo vertical, puesto que las líneas son horizontales y se cuentan de "arriba a abajo".


    Formatos YUV más comunes
    - YUV2: Es el más utilizado y equivale al 4:2:2. Se obtiene la luminosidad de cada píxel y el color de cada dos. Se obtiene una calidad muy cercana a la RGB24 con una compresión bastante buena.
    - YUV8: Se elimina por completo la información de color dejando tan sólo la luminosidad. Es la famosa escala de grises de 8 bits por píxel y 256 tonos.
    - YUV9: La luminosidad se toma de cada píxel, mientras que para el color se obtiene un valor medio de un matriz de 3x3 píxels
    - BTYUV: Es equivalente a 4:1:1. La luminosidad de cada píxel se conserva. Para el color, se agrupan 4 píxeles por cada línea y se obtiene la media.
    - YUV12: Este formato es muy empleado en compresión MPEG y explica el porqué de la frecuente pixelación con flujos de datos bajos, ya que se obtiene un valor medio de luminosidad y color por cada matriz de 2x2 píxeles

    Hay muchas, muchas más variedades y en numerosas ocasiones un mismo tipo de YUV recibe nombres distintos. De hecho,  la compresión YUV puede llamarse YCC, YCbCr, YPbPr o YIQ atendiendo a diversas consideraciones en el tratamiento del color. Consultad los siguientes enlaces (en inglés) para más información:

    http://www.crs4.it/~luigi/MPEG/mpeggloss-y.html
    http://www.techwellinc.com/Designsupport/YUV_YPbPr_YCbCr.pdf


    Capturadoras con chips Brooktree/Conexant BT8x8 y el formato YUV
    Si tu tarjeta capturadora posee el chip Brooktree/Conexant BT8x8 (la mayoría de tajetas sintonizadoras, mira la documentación de tu tarjeta) deberás usar YUV2 (ver 1.2 YUV) puesto que dicho chip tan sólo procesa el vídeo como YUV2 y cualquier otro formato, incluído el RGB24, se consigue partiendo de un original YUV2, o sea comprimido

    Esta información la leí por primera vez en la página web de Virtual Dub (http://www.virtualdub.org) y me sorprendió tanto que inmediamtamente me puse manos a la obra para comporbar si era cierto y, efectivamente, pude comprobar que se obtiene PEOR caldiad capturando en RGB 24 que en YUV. El motivo es, como digo, que el chip trabaja en forma YUV, lo que quiere decir que cualquier otro formato es una "traducción" del YUV2. Como YUV2 es un formato CON pérdida, si le pedimos que nos de un formato SIN pérdida es evidente que le falta información así que... se la inventa. Es como si la tarjeta capturara sólo a 352x288 y nos ofreciera la posibilidad de capturar a 720x576. Lo haría, pero para ello tendría que "inventarse" toda la información que no captura en realidad. Del mismo modo, si capturamos en RGB24 las capturadoras con


    Eligiendo códec
    Todos queremos un coche que sea barato, rápido, potente, que gaste poco y que no se rompa, ¿verdad? Pues bien, en el mundo de la edición de vídeo no-lineal todos queremos un códec que sea barato (gratis, vamos), que comprima mucho, que no pierda calidad y que consuma pocos recursos del ordenador (que sea rápido), además de que sea fácil de configurar, porque todos llevan un montón de opciones que no entendemos y por mucho que las trasteamos sale siempre una calidad horrible.

    Si tenemos un buen montón de horas libres, podemos empezar a buscar códecs en internet, bajarlos, y luego meter las zarpas en las opciones de configuración para hacer mil capturas de prueba, guardando los resultados para compararlos posteriormente con los resultados de otras configuraciones y otros códecs, y así poder elegir el "códec y la configuración perfectas". Si no tenemos ese "montón de horas libres" no nos queda más remedio que fiarnos de lo que nos diga un amigo o compañero o lo que leamos en un artículo escrito en una página de VIDEOEDICIÓN, o cualquier otro sitio.

    Está claro que yo no los he probado todos, pero sí los suficientes como para haber llegado a unos resultados que, para mí, son perfectamente satisfactorios. Esto es algo que quiero dejar bien claro. No creo que haya una biblia en cuanto a la compresión se refiere. Cada uno puede encontrar adecuados a sus necesidades distintos códecs y distintas compresiones. Mis "circunstancias personales" son:

    - Trabajar con resolución 352x288 capturando desde Video 8 y VHS hacia VHS y DVD en el siguiente equipo (ya lo he actualizado, pero lo que aquí digo sigue siendo válido):

    - CPU: AMD Duron 700 Mhz overclockeado a 750 Mhz
    - PLACA BASE: Soltek SL75-KAV
    - RAM: 384 Mb PC133 (aunque obtengo los mismos resultados en la captura que con 128)
    - DISCOS DUROS: Quantum Fireball AS 20.5 UDMA/100 7.200 rpm para vídeo y Seagate ST34321A UDMA/33 4.2 GB para audio (sólo en la edición)
    - TARJETA DE VÍDEO: ATI Rage Pro AGP 2X 8Mb
    - TARJETA DE SONIDO:  Sound Blaster PCI64
    -  TARJETA CAPTURADORA: Pinnacle PCTV con el chip Conexant BT878
    - Grabadora de CD's TEAC CD-W54E
    - Grabadora de DVD's Pioneer DVR-A03

    Antes de analizar los códecs quiero comentar ciertas características importantes en los códecs:


    Compresión con pérdida (lossy) o sin pérdida (lossless)
    Es evidente que si queremos preservar el 100% de la calidad del original elegiremos un códec sin pérdida, pero no le pidamos peras al olmo: o tenemos una cosa o tenemos otra. Quiero decir que con los códecs sin pérdida se obtienen valores de compresión muy discretos, aunque eso sí, la calidad es EXACTAMENTE la misma que si no hubiéramos comprimido el vídeo, así que no hay razón para capturar en RGB pudiendo conservar la calidad y reducir un poco el espacio necesario.


    Compresión en tiempo real o en diferido.
    Pasar el vídeo de una cinta al ordenador requiere, como ya he comentado, un flujo de datos bastante elevado que en la inmensa mayoría de las ocasiones nos interesa reducir. El problema es el tiempo. Puesto que el flujo de datos es constante, el ordenador apenas sí tiene tiempo de comprimir (0.04 segundos por fotograma) y ahí se presenta el eterno dilema ¿Calidad o tamaño? Como cualquier códec que se utilice para capturar en tiempo real podrá ser usado posteriormente para la post-producción, habrá que tener en cuenta las opciones de configuración para sacar el máximo partido posible al códec y obtener los mejores resultados tanto en la captura como en la edición final, ya que en la post-producción prima la calidad antes que el tiempo y, con más tiempo para el códec, se obtienen compresiones de menor tamaño y más calidad.

    Hay programas específicos para la compresión en tiempo no-real como TMGPEnc,  Panasonic MPEG1 Encoder o LSX-MPEG (Ver Exportación) que ofrecen unos resultados EXCELENTES partiendo de vídeo *NO* comprimido RGB


    Keyframes
    La palabra "Keyframe" (cuadro clave) se emplea para designar a un cuadro (fotograma) que ha sido tomado como referencia para analizar los cambios posteriores que se producen en una secuencia de imágenes. Para mejorar la calidad de la captura, si la secuencia que estamos capturando no tiene mucho movimiento, el códec podrá centrar su atención en lo que cambia entre la imagen elegida como "keyframe" y un número "x" de cuadros posteriores al cuadro clave, pudiendo comprimir lo que cambia  con mejor calidad, ya que lo que no cambia se mantiene constante y el códec se centra en guardar tan sólo las diferencias entre keyframe y keyframe.

    Los keyframes sirven ,además, como puntos de refencia en la reproducción de vídeo. Si realizamos una captura de larga duración (toda una película, por ejemplo) y NO usamos cuadros clave, si queremos empezar a ver la captura desde un punto concreto, el ordenador tendrá que leer el archivo de vídeo desde el principio cuadro a cuadro hasta llegar al punto seleccionado, empleando un tiempo cosiderable. Esto no sucede si usamos cuadros clave, puesto que el ordenador no lee cuadro a cuadro, sino de keyframe a keyframe.

    Muchos códecs de captura permiten elegir cada cuantos fotogramas queremos que haya un keyframe. Normalmente yo suelo usar un cuadro clave cada 15-50 fotogramas. Eso no quiere decir que sea lo mejor, es simplemente lo que YO he encontrado mejor.


    Códecs de compresión
    ******************************************************************************************

    Las pruebas de captura para todos los códecs han sido realizas capturando, desde una cámara de vídeo a una resolución de 352x288 en RGB24, a una partición vacía de 10 GB. El audio también ha sido incluído en la captura en calidad CD (44.100 KHz, 16 bits, estéreo) Los tiempos indicados de captura son sólo una aproximación meramente orientativa y pueden variar muy notablemente dependiendo del tipo de vídeo a capturar******************************************************************************************


    huffyuv
     (http://www.math.berkeley.edu/~benrg/huffyuv.html)

    Este códec es realmente sencillo y efectivo, de gran calidad y una buena compresión. Ofrece dos tipos de compresión, sin pérdida (RGB) o con una mínima pérdida de color (YUV2) (Ver 1.2.2 Formatos YUV más comunes) En cada uno de los apartados tenemos tres opciones."Best" ofrece la mejor compresión y. "Fast"  una compresión más rápida para equipos menos potentes. La opción restante se queda a medio camino entre rapidez y compresión. Para poder usar la compresión YUV2 deberemos seleccionar "Convert to YUV2" (convertir a YUV2) en el menú RGB

    Capturando con RGB en la opción "Best", se pueden capturar unos 50 minutos de vídeo, mientras que con YUV2, también en la opción "Best" se pueden capturar unos 65 minutos.




    LEAD
     (http://www.leadtools.com/codec.htm)

    Ofrece compresión sin pérdida (Lossless JPEG y JPEG 4:4:4) y 4:1:1. (Ver 1.2.2 Formatos YUV más comunes)  También ofrece una compresión exlusiva de LEAD Technologies, que ofrece una calidad de imágen y una tasa de compresión excelentes, pero que, al menos en mi equipo, los archivos resultantes son imposibles de ver a pantalla completa ya que tanto en el Reproductor de Windows Media 6.4 como en Adobe Premiere el sistema se cuelga al tratar de ver el vídeo a pantalla completa. Aunque he usado una instalación "limpia" de Windows 2.000 (sin otros programas ni códecs que hagan interferencias) el problema siempre se presenta.

    Dejando aparte ese problema, lo que sí ofrece a las mil maravillas es una gran variedad de opciones de calidad, así que si nuestro equipo no es muy potente o queremos apurar al máximo nuestro disco duro podemos ir jugando con el ratio de compresión hasta encontrar un término medio entre rapidez y calidad. Podemos elegir entre una serie de calidades predeterminadas, o podemos seleccionarla de forma manual mediante la opción "Custom Quality". Si acercamos la selección a "Better Quality" tendremos mejor calidad, mientras que con "Smaller Size" tendremos un menor tamaño. Si elegimos una de las opciones predetermindas hemos tener en cuenta que la calidad va de "arriba a abajo", es decir, las opciones más arriba en la lista ofrecen más calidad, mientra que las últimas de abajo ofrecen un menor tamaño.





    Si capturamos con una resolución vertical mayor o igual a 288 deberemos dejar seleccionada la opción "Interleave" (entrelazado) que viene por defecto, aunque también podemos seleccionar "Always" (siempre) o "Never" (nunca). ¡Ojo! No desactivar la casilla "Enable" (habilitada) en el apartado "Decompression" (descompresión) o no podremos reproducir las capturas.



    Aunque la peor calidad se consigue con 255, no creo que nadie quiera usar una calidad superior a 75, dónde obtenemos valores muy altos de compresión y una calidad, mala, pero todavía aceptable si la calidad no es nuestra prioridad. Dependiendo de la opción utilizada podremos capturar:

    - Lossless JPEG:  30 minutos
    - 4:1:1, Custom Quality (2): 1 hora, 40 minutos
    - 4:1:1, Custom Quality (75): 7 horas, 30 minutos
    - 4:2:2, Custom Quality (2): 1 hora, 15 minutos
    - 4:2:2, Custom Quality (75): 7 horas,
    - 4:4:4, Custom Quality (2): 70 minutos
    - 4:4:4, Custom Quality (75): 6 horas, 45 minutos
    - LEAD Propietary, Custom Quality (2): 2 horas
    - LEAD Propietary, Custom Quality (75): 8 horas, 30 minutos


    Ligos Indeo 5.11
     (http://www.ligos.com/indeo/)

    En el archivo de instalación del códec de Ligos podemos encontrar, además del códec Indeo 5.11, códecs anteriores (4 y 3.2) así como el formato Video Raw R1.2 basado en la compresión YUV9 (ver 1.2.2 Formatos YUV más comunes). Para instalar estos códecs adicionales hemos de seleccionar, o bien la opción "Developer" (desarrollador) con la que los instalaremos todos, o bien la opción "Custom" (personalizada) y seleccionar nosotros los que queramos.

    Por varios motivos, éste es mi códec favorito. En primer lugar, ofrece una compresión rápida (Quick Compress) muy adecuada para la captura. Pero si necesitamos comprimir la captura para dejar "hueco" deseleccionamos esa casilla y, aunque se toma su tiempo, obtendremos un archivo con una calidad tan cercana al 100% que no notaremos la diferencia.

    Si vamos a comprimir a AVI como formato final éste es CON DIFERENCIA, el mejor códec de todos. El resto de opciones no son especialmente interesantes auque vienen muy bien explicadas (en inglés) en la ayuda.



    Las opciones que sí tendremos en cuenta son las que aparecen al seleccionar el códec en cualquier aplicación. Son las referentes a la calidad, el flujo de datos y los keyframes. (Ver 2. Flujo de datos y 1.3.3. Keyframes)



    - Con calidad 100 y keyframe cada 50 cuadros se puede capturar 2 horas, 30 minutos
    - Con calidad 75 (todavía buena) y keyframe cada 50 cuadros, 4 horas, 30 minutos.
    - Con el Ligos Indeo Video Raw R1.2 (sin parámetros de configuración) se pueden capturar unos 55 minutos.

    Los tiempos de captura se han tomado con la opción "Quick compress" puesto que sin ella en mi equipo se pierden cuadros. No obstante, vuelvo a repetir que para la compresión en tiempo no-real el Ligos Indeo es, en mi opinión, el mejor códec con diferencia.


    PICVideo
     (http://www.jpg.com/video/index.html)

    El PICVideo es también un códec fantástico que ofrece multitud de opciones de configuración y calidad. Hay tres versiones, una sin pérdida de calidad (lossless), una con pérdida (lossy) y otra especial para web que no trataré.

    - El PICVideo Lossless JPEG codec tan sólo cuenta con una ventana de configuración en la que seleccionar el tratamiento de color como YUV o como psudo YCbCr y la cantidad de bits de baja resolución a descartar (0-7)



    Usemos la opción que usemos, la diferencia en los resultados es imperceptible, pudiendo capturar unos 25 minutos (sin pérdida de calidad) Personalmente, si quiero el 100% de calidad, prefiero usar el huffyuv RGB que ofrece mejor tasa de compresión.

    - El PICVideo MJPEG por el contrario, captura con pérdida, pero ofrece una relación compresión/calidad realmente buena. Podemos modificar la calidad de 0 (mínima) a 20 (máxima) de manera automática si nos quedamos en el menú básico, pero si entramos en las opciones avanzadas podremos elegir los niveles de calidad de luminosidad y crominancia (color) de manera individual, así como el submuestreo (Ver 1.2 YUV). Como sucedía con el códec de LEAD, deberemos dejar marcada la casilla "Codec Enabled" para no tener problemas de reproducción.



    La cantidad de vídeo que podremos capturar con una calidad EXCELENTE en todos los casos es:

    - Calidad 20 y submuestreo 1:1:1 -> 45 minutos
    - Calidad 20 y submuestreo 4:2:2 -> 60 minutos
    - Calidad 20 y submuestreo 4:1.1 -> 70 minutos
    - Calidad 20, Luminancia 0, Crominancia 10, Submuestreo 4:1:1: 1 hora, 20 minutos


    DivX
     (www.divx.com) (gratuíto)

    Aunque puede usarse para comprimir en tiempo real (captura) con MUY BUENOS resutlados de calidad y compresión (sobre todo en los equipos actuales que pasan del Ghz) es un formato muy utilzado para comprimir películas en un sólo CD y para transportar vídeos por internet. Consulta el apartado DivX en Compresión en tiempo no-real MPEG


    miroVIDEO-XL 2.20
    Es una lástima que, ofreciendo una compresión y calidad excelente, este códec no sea compatible con Adobe Premiere. Además, tampoco se puede conseguir en ningún sítio(por más que he buscado), tan sólo al instalar los drivers de la tarjeta Pinnacle PCTV. Si alguien sabe algo más de este códec agradecería muchísimo cualquier información.

     

    Autor Videoed]MPEG-4 (DivX, Xvid, etc)
    [/list]

    Respuesta rápida

    Advertencia: No se ha publicado ninguna respuesta a este tema desde hace 365 días como mínimo.
    A menos que estés seguro de que quieres responder, por favor, considera el empezar un nuevo tema.

    Nombre:
    Correo electrónico:
    Atajos: ALT+S para publicar/enviar o ALT+P para previsualizar

    PUBLICIDAD

    El spam de este foro está controlado por CleanTalk