Comparación de códecs HEVC de la Universidad Estatal de Moscú. Cómo mejorar los resultados
By Olga Krovyakova - modified October 6, 2023, created April 3, 2019.
En octubre de 2015, el grupo de vídeo Graphics & Media Lab del Departamento de Ciencias de la Computación de la Universidad Estatal de Moscú (CS MSU Graphics & Media Lab) publicó otra revisión comparativa del códec , esta vez incluyendo varios códecs de formato HEVC.
El punto de partida de esta investigación fue que notamos la diferencia en los ajustes preestablecidos para las pruebas AVC y HEVC. Para AVC, se utilizó un perfil rápido no modificado con un solo GOP, mientras que para las pruebas HEVC se empleó un perfil modificado con varios GOP. Además, el codificador x264 mostró mejores resultados que x265 en transcodificación rápida en diagramas de correlación SSIM/tasa de bits independientemente de la velocidad de codificación – para “Apple Tree”, el único archivo descrito en el informe abierto. Inmediatamente surgió una pregunta: ¿y si estas u otras opciones evidentes pudieran cambiar el panorama?
El informe compara los ajustes preestablecidos pero’no recomienda ninguna mejora relacionada. En este artículo, realizamos una revisión similar y desarrollamos recomendaciones para modificar los ajustes preestablecidos del codificador x265. Para la secuencia de video idéntica a la analizada en la versión gratuita del informe, nuestros cambios sugeridos en los parámetros de codificación ayudan a aumentar la eficiencia de la compresión y a rehabilitar el codificador x265 en la creación del diagrama del informe.
Los ajustes preestablecidos modificados no pretenden ser universales, ya que las pruebas en múltiples secuencias de vídeo están fuera del alcance de esta investigación. Sin embargo, se pueden recomendar como punto de partida para buscar oportunidades para mejorar la eficiencia de la codificación x265.
Sobre el proyecto
La tarea de codificación de vídeo en el proceso de procesamiento multimedia, ya sea transmisión, corte, edición o almacenamiento, está omnipresente en el desarrollo y configuración de aplicaciones/servicios durante el curso de la operación. Debido a la gran cantidad de códecs de vídeo disponibles, a menudo del mismo tipo,’no es fácil elegir el mejor y luego aplicar la configuración correcta.’Es muy probable que estas consideraciones hayan alentado el proyecto de comparación de videos en curso iniciado y operado por el Laboratorio de Gráficos por Computadora y Multimedia de CMC MSU en los años 2000. En octubre de 2015, publicaron un informe comparativo de códecs que inscribió varios formatos HEVC. códecs y otros códecs en desarrollo activo. x264 fue elegido como modelo de compresor en su informe. Uno de otros compresores interesantes mencionados allí fue el x265. Es este formato el que constituirá el tema principal de nuestro estudio.
La herramienta de análisis es SolveigMM Zond 265, un analizador HEVC/H.265 y AVC/H.264.
La metodología de comparación de códecs y selección de parámetros
Describamos’la metodología. La comparación se realiza en función de estos criterios: tasa de bits – calidad (SSIM, PSNR) rendimiento – . La metodología para comparar la correlación bitrate/calidad métrica (ver punto C4) es la siguiente.
Seleccionamos varios valores de velocidad de bits (por ejemplo, 7 valores: 1, 2, 4, 6, 8, 10 y 12 Mbps) y calculamos todas las métricas de calidad necesarias para cada códec.
Colocamos los valores de salida en el diagrama: métrica de calidad (eje horizontal) – bitrate (eje vertical).
- Hacemos una interpolación lineal.
- Seleccionamos un rango máximo donde se definen todos los diagramas y detectamos áreas debajo de todos los diagramas allí.
- Como unamedida de calidad de un códec (o preset) específico tomamos la relación de su área con el área del códec modelo. Cuanto menor sea el valor recibido, más eficaz será el códec.
Como modelo seleccionamos x265 con el preset elegido en el informe (tabla 1). El informe utiliza una versión anterior del compresor que se puede encontrar aquí: x265 1.5+460-ac85c775620f. Sin embargo, la última versión’no trae consigo ningún cambio radical.
Los ajustes preestablecidos del compresor utilizados se indican en la tabla 1 (para la plataforma de escritorio).
Excelente | x265 -p muy lento --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Codificación universal | x265 -p medio --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Transcodificación rápida | x265 -p ultrarrápido --ref 3 --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Para sugerir recomendaciones de modificación preestablecidas, realizamos una prueba de todas las configuraciones de configuración preestablecidas para evaluar su impacto individual en la calidad y el rendimiento. Aquí está el plan de acción:
- Codificamos el archivo cambiando todos los parámetros preestablecidos: de la transcodificación rápida a la universal, de la universal a la extracción, ahorrando tiempo de codificación.
- Calculamos la medida de calidad (de la misma manera que el área anterior) y el tiempo de codificación referencial (el valor mínimo de codificación FPS para el archivo "parámetro modificado preestablecido" en relación con todos los valores de velocidad de bits seleccionados).
- De la tabla que consta de un parámetro modificable, una medida de calidad y un FPS mínimo, elegimos los parámetros que se pueden utilizar para mejorar los ajustes preestablecidos.
Nos limitamos a los ajustes preestablecidos para codificación y extracción universal (tabla 2), desbloqueando los parámetros "-p medio" y "-p ultrarrápido". También agregamos dos más que fueron omitidos en el informe: "--keyint -1 --tune ssim". Complementamos los ajustes preestablecidos con los parámetros mencionados para una transcodificación rápida y universal, respectivamente.
Tabla 2. Parámetros – candidatos para la modificación de los ajustes preestablecidos del informe de comparación de códecs de video HEVC de MSU.
Codificación universal | --rc-lookahead 20 --scenecut 40 --ctu 64 --min-cu-size 8 --bframes 4 --b-adapt 2 --subme 1 --me hex --early-skip --sao -- signhide --weightp --rd 3 --aq-strength 1.0 --aq-mode 1 --cutree --no-fast-intra |
"Excelente" | --weightb --amp --rect --rc-lookahead 40 --bframes 8 --tu-inter-profundidad 3 --tu-intra-profundidad 3 --rd 6 --rdoq 2 --psy-rdoq 1.0 - -subme 4 --max-merge 4 --me estrella --ref 5 --b-intra --lookahead-slices 0 |
Pruebas
No hay ningún enlace de descarga disponible para la secuencia de prueba "Apple Tree" (imagen 1) utilizada en la versión gratuita del informe. Nosotros’elegiremos uno similar usando su característica clave – primer plano, una gran cantidad de pequeños detalles. Por ejemplo "big_buck_bunny_1080p_h264.mov", el intervalo de 338 cuadros desde el segundo 24:
ffmpeg -i big_buck_bunny_1080p_h264.mov -ss 00:00:24 -frames:v 338 -c:v rawvideo -pix_fmt yuv420p sample.yuv
Foto. 1. Características de la secuencia "Manzano"
Para realizar tres pasos del plan anterior y ahorrar tiempo al copiar las figuras necesarias de la interfaz Zond 265, es conveniente’utilizar la función de operación de línea de comando (tabla 3):
zond265_x64 %COMPRESSED_FILE% -iref %REFERENCE_420P_FILE% -nowait -report t=calidad,statstream qm=SSIM o=%TARGET_CSV_FILE%
Puede ver la lista de todos los parámetros y su descripción completa en la página Zond 265.
Tabla 3. Parámetros de la línea de comando Zond 265 necesarios para la compilación del script.
Parámetro | Descripción |
---|---|
-iref | Configuración del archivo YUV de referencia |
-informe | Indicar el modo de funcionamiento del Zond 265 en la línea de comando |
t=calidad, flujo de estadísticas | Generación de dos informes seleccionados: calidad y estadísticas de transmisión de video. |
qm=SSIM | Métrica de calidad para el cálculo |
oh | Ruta al archivo del informe en formato CSV |
-no, espera | Sin pausas. Zond 265 navega automáticamente de un archivo a otro sin demora. |
Aquí hay dos scripts para Python 2.7: uno para que codifica 266 archivos (20 configuraciones para el primero, 18 configuraciones para el segundo ajuste preestablecido, para 7 valores de velocidad de bits: 1, 2, 4, 6, 8 , 10, 12 Mbps), el otro para compilar un informe en formato CSV (el archivo – la relación de la codificación FPS con la configuración del modelo – la relación de la métrica SSIM con la configuración del modelo).
Como puede ver en las tablas de informe del fragmento de archivo "big_buck_bunny_1080p_h264.mov" (tablas 5 y 6), las configuraciones se pueden modificar, por ejemplo, como se indica’en la tabla 4. Simplemente un recordatorio, para obtener mejores resultados el valor de "Medida de calidad" debe ser menor que la unidad y el valor de "Tiempo de codificación relativo" – mayor que la unidad.
La prueba se ha realizado utilizando la siguiente configuración de hardware: Intel Core i7-2600@3,4 GHz, 16 GB de RAM. La mayor mejora de calidad para configurar la codificación rápida se obtiene mediante el parámetro "--min-cu-size 8", en caso de codificación universal’es el parámetro "--rdoq-level 2" (sin embargo, ralentiza codificar más).
Tabla 4. Modificación de los ajustes preestablecidos del informe de comparación de códecs de vídeo HEVC de MSU para mejorar la eficiencia de codificación con la misma velocidad de codificación.
Transcodificación rápida | x265 -p ultrarrápido --ref 3 --rc-lookahead 20 --min-cu-size 8 --bframes 4 --early-skip --cutree --tune ssim --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Codificación universal | x265 -p medio --weightb --bframes 8 --tu-intra-profundidad 3 --psy-rdoq 1.0 --b-intra --lookahead-slices 0 --tune ssim --bitrate % BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Tabla 6. Informe sobre la modificación del valor preestablecido de codificación universal.
Configuración | Medida de calidad | Tiempo de codificación relativo |
---|---|---|
Transcodificación rápida (modelo) | 1 | 1 |
Transcodificación rápida (modificada) | 0,69 | 0,97 |
Transcodificación universal (modelo) | 1 | 1 |
Transcodificación universal (modificada) | 0,85 | 0,94 |
Dejemos que’evalúe el impacto de la modificación de opciones – en Zond 265 abrimos el archivo codificado con el preset modificado en modo de transcodificación rápida para la tasa de bits de 8 Mbps y lo comparamos con el archivo codificado con el preajuste no modificado. El tamaño de la unidad de codificación más grande permanece sin cambios y es igual a 32x32 (campo "--ctu 32"). Sin embargo, el tamaño de la unidad mínima disminuye de 16 a 8 (campo "--min-cu-size 8"). Es este parámetro el que produjo la mayor mejora de calidad. El número de fotogramas B aumentó de 3 a 4 (campo "—bframes"), sin embargo, el número máximo de fotogramas de referencia (campo "--ref 4") también aumentó. El campo "SSIM" marca dos valores máximos para los diagramas SSIM/PSNR para tres componentes: brillo (Luma) y dos componentes de color (Cb, Cr). Sus valores aumentaron de 0,9623-0,9966 a 0,9771-0,9991. Los parámetros adicionales restantes (--rc-lookahead 20 --early-skip --cutree) influyen en el algoritmo de codificación pero no en el tipo de vídeo de salida, esto se refleja principalmente en la velocidad de codificación (ver tabla 5).’Vale la pena mencionar que la imagen del cuadro decodificado ha cambiado visualmente. – los artefactos de codificación ya no se muestran.
Foto. 2. Captura de pantalla de un archivo Zond 265 codificado usando la configuración de codificación rápida modificada
También puede verificar los parámetros del archivo codificado con un preajuste de codificación universal modificado y no modificado (imagen 3). El tamaño de las particiones TU mínimas no ha cambiado’y permanece igual a 4x4 (campo "--tu-intra-profundidad 3"), el número de marcos B tampoco ha cambiado y es igual a 3 (campo "--bframes 3"). SSIM aumentó de 0,9789-0,9994 a 0,9811-0,9992. En comparación con la configuración de transcodificación rápida, el tamaño de la unidad máxima ha aumentado y ahora es igual a 64x64 (campo "--ctu 64"), se ha agregado el filtro SAO (campo "--sao").
Foto. 3. Captura de pantalla del archivo Zond 265 codificado usando la configuración de codificación universal modificada
Como resultado de las pruebas realizadas, sugerimos una lista de opciones para mejorar la eficiencia de la codificación (mejora del valor de la métrica SSIM con la misma tasa de bits y velocidad de codificación) para las configuraciones de codificación rápida y universal. Utilizando los cambios sugeridos para el archivo con una gran cantidad de pequeños detalles, el valor de la "medida de calidad" integral del informe de Comparación de códecs de vídeo HEVC de MSU mejoró en un 31 % en la transcodificación rápida y en un 15 % en la transcodificación universal, con un porcentaje insignificante. cambio de velocidad de codificación. Dado que las pruebas se realizaron por separado para cada opción, en la práctica sólo tiene sentido elegir varias opciones convenientes en lugar de toda la lista sugerida.
Referencias
- Comparación de códecs de vídeo HEVC
- Fundación Licuadora | www.blender.org
- Página de inicio de Zond 265
Olga 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!