Acerca de Productos Asistencia Blog

Los detalles de la compresión sin pérdidas DropBox H.264

image

 

  By Olga Krovyakova - modified October 6, 2023, created April 3, 2019.

 

PRUEBA ZOND 265 GRATIS

 

Hace un par de semanas nos topamos con un artículo sobre ingenieros de Dropbox que recreaban el algoritmo Pied Piper de un popular programa de televisión. Dropbox desarrolló un algoritmo de compresión sin pérdidas para archivos H.264 y JPEG, y nuestro equipo se puso a evaluar esta solución y obtener algunos detalles tangibles.

Con medio ojo, nos dimos cuenta de que un archivo H.264 recomprimido dejaba de ser H.264 y solo podía usarse para almacenamiento provisional. Además, este método de compresión podría resultar efectivo bajo dos condiciones: si el archivo utilizó CAVLC como codificador, o si el archivo fue codificado con bloques PU y TU de tamaño máximo. Ambas condiciones sólo se pueden cumplir si el códec H.264 está configurado para codificación de velocidad máxima. 

Acerca del proyecto Pied Piper

El vídeo es uno de los formatos de datos más pesados , por lo que no sorprende que los servicios de procesamiento, transferencia y almacenamiento de vídeo tengan que considerar la compresión como una solución viable. Sin embargo, existen algunas opciones. En agosto de 2015, DropBox reveló su visión del problema: un algoritmo original, aunque incompleto, para archivos de vídeo estándar H.264. El objetivo principal de la empresa es el almacenamiento de los archivos de sus clientes. Al usuario promedio le importa poco cómo se almacenan estos archivos, lo que importa es descargar exactamente los mismos archivos intactos – tal como se cargaron. Por tanto, el algoritmo de DropBox no tiene pérdidas. Además, el resultado de la compresión no es un archivo de vídeo del formato fuente.

Nuestro artículo tiene como objetivo evaluar la eficiencia de este algoritmo en la compresión de diversos formatos de archivos. Para ello utilizaremos el ZOND 265, de Solveig Multimedia, un analizador de archivos de vídeo H.264 y H.265, como herramienta auxiliar.

Puede descargar todos los archivos asociados con este artículo (el ejecutable del compresor compilado para Linux Ubuntu x64 12.04, archivos de video de prueba) mediante el enlace .
image

Estimación de la eficiencia del compresor del proyecto Pied Piper El código

Fuente del compresor y los archivos de prueba están disponibles en GitHub. Para empezar, compilaremos un compresor y estimaremos los archivos de prueba. Luego, mediremos la efectividad con archivos de video de la vida real.

Compresión

Las pautas específicas para la compilación del compresor Pied Piper solo están disponibles para Linux. De hecho, es un único archivo: el script "piedpiper_make". Por lo tanto, necesitamos cargar Linux Ubuntu x64 e ingresar tres comandos:

cD ./lossless264
./piedpiper_make

Después de la compilación, verifique su carpeta actual para ver los archivos del compresor:

  • h264dec – el archivo ejecutable del compresor y descompresor
  • so.0, libopenh264.so – una biblioteca auxiliar dinámica y un enlace a ella.

La compresión si se realiza mediante el comando:

./h264dec ./archivo-fuente.264 ./archivo-destino.pip,

Descompresión:

./h264dec ./archivo-comprimido.pip ./archivo-descomprimido.264.

Tenga en cuenta que la salida comprimida no es un archivo con el mismo formato que el origen, sino una matriz de archivos .pip.
 

Archivos de prueba de Flautista Según el

Repositorio de Git, el equipo de DropBox utilizó estos archivos como material de prueba: "black.264", "tibby.264", "walk.264", 'BA1_FT_C.264", "BAMQ2_JVC_C.264". Los cargamos en Zond 265 y descubrimos que han sido comprimidos con el mismo método (consulte las capturas de pantalla de Zond 265, pestaña Bitstream , imágenes 1 - 3 para el archivo "tibby.264"). Las propiedades principales de los archivos son el uso de CAVLC (PPS, entropy_coding_mode_flag: 0) y ningún marco B (SPS, max_num_reorder_frames: 0). Elegimos los primeros tres archivos para nuestras pruebas de eficiencia.

image

Foto. 1. Bloque de conjunto de parámetros de secuencia (SPS) para el archivo "tibby.264

image

Foto. 2. Bloque de conjunto de parámetros de imagen para el archivo "tibby.264

image

Foto. 3. Estructura de transmisión de video para el archivo "tibby.264

Otros archivos de prueba

Los usuarios pueden emplear una serie de herramientas para obtener archivos de vídeo: grabar un vídeo con una cámara (por ejemplo, en un teléfono móvil), descargarlo de numerosos servicios de vídeo (YouTube, VK, Vimeo, Facebook, etc.) o utilizar software con funcionalidad de grabación.

Seleccionamos el archivo "VID_20150917_131139.264" como un videoclip normal y corriente de teléfono móvil. Al igual que las muestras anteriores, no contiene fotogramas B, pero utiliza CABAC en lugar de CAVLC como codificador aritmético. El compresor devuelve un error para los archivos de YouTube (incluyen fotogramas B y usan CABAC), por lo que los dejamos detrás de nuestro marco de prueba.

Al elegir el software habilitado para grabación, optamos por la utilidad de consola ffmpeg (módulo "libx264"). Más adelante, la compresión sólo es posible con el ajuste preestablecido "ultrarápido", y no revela ningún resultado con el ajuste preestablecido "superrápido". Los archivos de prueba son "tractor-ultrafast.264", "tractor-superfast.264".

Además de los archivos mencionados, la tabla incluye tres ejemplos más. Estos últimos se utilizan para determinar si el algoritmo sugerido mantendrá la eficiencia de las opciones "CABAC" habilitadas y la codificación con bloques PU y TU de tamaño máximo: "black-cabac.264", "tibby-cabac.264" y "tibby-cabac -max-bloques".
 

Resultados de la prueba

Los resultados de la prueba se muestran en las Tablas 1 y 2. Los datos cuantitativos para los bloques PU y TU se recopilaron utilizando el software Zond 265 (pestañaStream Stats ). Foto. 4 muestra una captura de pantalla de los datos del archivo "tibby.264.

image

Foto. 4. PU y TU bloquean datos para el archivo "tibby.264

Tabla 1. Compresor Pied Piper . Resultados de las pruebas de eficiencia.

image

Tabla 2. Compresor Pied Piper . Resultados de las pruebas de eficiencia.

image

 Como implican las tablas anteriores, la versión actual del algoritmo Pied Piper solo funciona en dos escenarios: si un archivo usa CAVLC como codificador, o si el archivo está codificado con bloques PU y TU de tamaño máximo. Estos escenarios requieren codificación de máxima velocidad desde un códec H.264. Al parecer, todo esto se reduce a archivos bastante grandes. Estos son los archivos creados por el códec ffmpeg con libx264, "ultrarápido" preestablecido.

Eso es todo por ahora. Apreciamos el tiempo tomado para realizar esta investigación con nuestro equipo. ¡Esperamos sus comentarios!

 

PRUEBA ZOND 265 GRATIS

 

 

 About the author

imageOlga Krovyakova is the Technical Support Manager in Solveig Multimedia since 2010.

She is the author of many text and video guidelines of company's products: Video Splitter, HyperCam, WMP Trimmer Plugin, AVI Trimmer+ and TriMP4.

She works with programs every day and therefore knows very well how they work. Сontact Olga via support@solveigmm.com if you have any questions. She will gladly assist you!