Todas las Noticias en Películas, Avances de Películas y Reseñas.

Cómo funcionan realmente los algoritmos modernos de compresión de video

Los algoritmos de compresión de video modernos no son los mismos que los algoritmos de compresión de imágenes con los que puede estar familiarizado. La dimensión y el tiempo adicionales significan que se aplican varias técnicas matemáticas y lógicas al archivo de video para reducir el tamaño y mantener la calidad del video.

En esta publicación, usamos H.264 como el estándar de compresión arquetípico. Aunque ya no es el último formato de compresión de video, aún proporciona un ejemplo suficientemente detallado para explicar conceptos con imágenes grandes sobre la compresión de video.

¿Qué es la compresión de vídeo?

Los algoritmos de compresión de video buscan redundancias espaciales y temporales. Al codificar datos redundantes un número mínimo de veces, se puede reducir el tamaño del archivo. Por ejemplo, imagine una imagen de un minuto de la cara de un personaje que cambia lentamente de expresión. No tiene sentido codificar la imagen de fondo para cada cuadro: en su lugar, puede codificarla una vez y luego volver hasta que sepa que el video está cambiando. Esta codificación de predicción entre cuadros es la responsable de los artefactos nerviosos de la compresión de video digital: partes de una imagen antigua que se mueven con una acción incorrecta porque algo en la codificación se ha vuelto confuso.

Cuadros I, cuadros P y cuadros B

Los I-frames son imágenes totalmente codificadas. Cada I-frame contiene todos los datos que necesita para representar una imagen. Los marcos de estacionamiento son sidpredicho en función de cómo cambia la imagen desde el último I-frame. Los fotogramas B son Bi-direction predicha, usando datos tanto del último cuadro P como del siguiente cuadro I. Los marcos P solo necesitan almacenar la información visual que es exclusiva del marco P. En el ejemplo anterior, debe realizar un seguimiento de cómo se mueven los puntos por el marco, pero Pac-Man puede quedarse donde está.

El cuadro B mira el cuadro P y el siguiente cuadro I y “promedia” el movimiento sobre estos cuadros. El algoritmo tiene una idea de dónde “comienza” la imagen (el primer cuadro I) y dónde “termina” la imagen (el segundo cuadro I), y utiliza datos parciales para codificar una suposición correcta, omitiendo todo lo superfluo. píxeles estáticos como los que no son necesarios para crear la imagen.

Recomendado:  Nuevas batallas de Lego Star Wars llegan en 2020

Codificación Intraframe (I-frames)

Cómo funciona la compresión de video IP y cuadros B

Los I-frames se comprimen de forma independiente, al igual que se guardan las imágenes fijas. Dado que los fotogramas I no utilizan datos predictivos, la imagen comprimida contiene todos los datos utilizados para mostrar fotogramas I. Todavía están comprimidos por un algoritmo de compresión de imágenes como JPEG. Esta codificación a menudo tiene lugar en el espacio de color YCbCr, que separa los datos de brillo de los datos de color, lo que permite codificar por separado los cambios de movimiento y color.

Para códecs no predictivos como DV y Motion JPEG, aquí es donde terminamos. Dado que no hay cuadros predictivos, la única compresión que se puede lograr es comprimiendo la imagen dentro de un solo cuadro. Es menos eficiente pero proporciona un archivo de imagen sin procesar de mayor calidad.

.ue8ffed2ba4a144b65f3b293b4d504ef6, .ue8ffed2ba4a144b65f3b293b4d504ef6 .postImageUrl, .ue8ffed2ba4a144b65f3b293b4d504ef6 .centered-text-area {min-height: posición: relativa; } .ue8ffed2ba4a144b65f3b293b4d504ef6, .ue8ffed2ba4a144b65f3b293b4d504ef6: pasar el mouse, .ue8ffed2ba4a144b65f3b293b4d504ef6: visitado, .ue8ffed2ba4a44b444! } .ue8ffed2ba4a144b65f3b293b4d504ef6 .clearfix: después de {contenido: “”; pantalla: mesa; Limpia los dos; } .ue8ffed2ba4a144b65f3b293b4d504ef6 {pantalla: bloque; transición: color de fondo 250ms; transición de webkit: color de fondo 250ms; ancho: 100%; opacidad: 0,95; transición: opacidad 250ms; webkit-transition: opacidad 250ms; color de fondo: # 9B59B6; sombra de caja: 0 1px 2px rgba (0, 0, 0, 0.17); -moz-box-shadow: 0 1px 2px rgba (0, 0, 0, 0.17); -o-caja-sombra: 0 1px 2px rgba (0, 0, 0, 0.17); -webkit-caja-sombra: 0 1px 2px rgba (0, 0, 0, 0.17); } .ue8ffed2ba4a144b65f3b293b4d504ef6: activo, .ue8ffed2ba4a144b65f3b293b4d504ef6: hover {opacidad: 1; transición: opacidad 250ms; webkit-transition: opacidad 250ms; color de fondo: # 8E44AD; } .ue8ffed2ba4a144b65f3b293b4d504ef6 .centered-text-area {ancho: 100%; posición: relativa; } .ue8ffed2ba4a144b65f3b293b4d504ef6 .ctaText {borde inferior: 0 sólido #fff; color: #FFFFFF; tamaño de fuente: 16px; fuente-peso: negrita; margen: 0; relleno: 0; decoración de texto: subrayado; } .ue8ffed2ba4a144b65f3b293b4d504ef6 .postTitle {color: #FFFFFF; tamaño de fuente: 16px; peso de fuente: 600; margen: 0; relleno: 0; ancho: 100%; } .ue8ffed2ba4a144b65f3b293b4d504ef6 .ctaButton {color de fondo: # 8E44AD! importante; color: #FFFFFF; borde: ninguno; borde-radio: 3px; sombra de caja: ninguna; tamaño de fuente: 14px; fuente-peso: negrita; altura de línea: 26px; moz-border-radio: 3px; alineación de texto: centro; texto-decoración: ninguno; sombra de texto: ninguno; ancho: 80px; altura mínima: 80px; fondo: url (https://se.moyens.net/wp-content/plugins/intelly-related-posts/assets/images/simple-arrow.png) sin repetición; posición: absoluta; derecha: 0; superior: 0; } .ue8ffed2ba4a144b65f3b293b4d504ef6: hover .ctaButton {color de fondo: # 9B59B6! importante; } .ue8ffed2ba4a144b65f3b293b4d504ef6 .centered-text {display: table; altura: 80px; relleno-izquierda: 18px; superior: 0; } .ue8ffed2ba4a144b65f3b293b4d504ef6 .ue8ffed2ba4a144b65f3b293b4d504ef6-content {display: table-cell; margen: 0; relleno: 0; relleno derecho: 108px; posición: relativa; alineación vertical: medio; ancho: 100%; } .ue8ffed2ba4a144b65f3b293b4d504ef6: después de {contenido: “”; bloqueo de pantalla; Limpia los dos; }

Recomendado:  El CEO de Disney, Bob Iger, dice que la prioridad para Star Wars radica en la televisión y se burla de los spin-offs de Mandalorian

En los códecs que usan tramas predictivas como H.264, las tramas I se muestran periódicamente para “actualizar” el flujo de datos mediante la configuración de una nueva trama de referencia. Cuanto más separados estén los fotogramas I, más pequeño puede ser el archivo de vídeo. Pero si los fotogramas I están demasiado separados, la precisión de los fotogramas predictivos del video se deteriorará lentamente hasta volverse incomprensible. Una aplicación optimizada para el ancho de banda insertaría fotogramas I con la menor frecuencia posible sin interrumpir la transmisión de video. Para los consumidores, la frecuencia de los I-frames suele estar determinada indirectamente por la configuración de “calidad” en el software de codificación. El software de compresión de video profesional como ffmpeg permite un control explícito.

Predicción entre fotogramas (fotogramas P y fotogramas B)

Los codificadores de video intentan “predecir” el cambio de un cuadro al siguiente. Cuanto más cercanas sean sus predicciones, más eficiente es el algoritmo de compresión. Esto es lo que crea los fotogramas P y los fotogramas B. La cantidad exacta, la frecuencia y el orden de los fotogramas predictivos, así como el algoritmo específico utilizado para codificarlos y reproducirlos, están determinados por el algoritmo específico que utilice.

Cómo funciona la compresión de video Blockpartition

Consideremos cómo funciona H.264, como un ejemplo generalizado. El cuadro se divide en secciones denominadas macrobloques, que normalmente constan de 16 x 16 muestras. El algoritmo no codifica los valores de píxeles sin procesar para cada bloque. En cambio, el codificador busca un bloque similar en un marco más antiguo, llamado marco de referencia. Si se encuentra un marco de referencia válido, el bloque se codificará mediante una expresión matemática llamada vector de movimiento, que describe la naturaleza exacta del cambio del bloque de referencia al bloque actual. Cuando se reproduce el video, el reproductor de video interpretará estos vectores de movimiento correctamente para “volver a traducir” el video. Si el bloque no cambia en absoluto, no se necesita ningún vector.

Recomendado:  Undelete para Android: recupere archivos eliminados en su teléfono Android

Conclusión: compresión de datos

Una vez que los datos se han clasificado en sus marcos, se codifican en una expresión matemática con el codificador de transformación. H.264 utiliza una DCT (transformada de coseno discreta) para cambiar los datos visuales en expresiones matemáticas (específicamente la suma de las funciones de coseno que oscilan a diferentes frecuencias). El algoritmo de compresión seleccionado determina el codificador de transformación. Luego, el cuantificador “redondea” los datos. Finalmente, los bits se ejecutan a través de un algoritmo de compresión sin pérdidas para reducir el tamaño del archivo nuevamente. Esto no cambia los datos: simplemente los organiza de la forma más compacta posible. Luego, el video se comprime, es más pequeño que antes y está listo para verlo.

Crédito de la imagen: demostración de VC, itu delft

Nunca olvides

Recibe actualizaciones sobre nuestros últimos tutoriales.

Regístrese para recibir todos los boletines.

Me gustaría recibir boletines por correo electrónico. No compartiremos su información y puede cancelar su suscripción en cualquier momento.

Suscribir