Comparación de códecs HEVC de MSU. ¿Cómo mejorar los resultados?
En octubre de 2015, se publicó otro informe de comparación de códecs en el VMiK de la Universidad Estatal de Moscú, esta vez que incluía varios códecs HEVC.El punto de partida para el estudio fue que notamos una diferencia en los ajustes preestablecidos en las pruebas para AVC y HEVC: para AVC, se utilizó un perfil rápido no modificado con un GOP, y para HEVC, se utilizó uno modificado con varios GOP. Al mismo tiempo, para el único archivo "Apple Tree" descrito en el informe abierto, el codificador x264 resultó ser mejor que x265 cuando se transcodificó rápidamente en los gráficos de la dependencia de SSIM de la velocidad de bits sin importar la velocidad de codificación. La pregunta surgió de inmediato: tal vez estas opciones u otras obvias pueden cambiar esta imagen.El informe compara los ajustes preestablecidos, pero no proporciona recomendaciones para corregirlos. En este artículo, hicimos una comparación similar e hicimos recomendaciones para modificar los preajustes del codificador x265. Para una secuencia de video similar a la estudiada en la versión gratuita del informe, los cambios propuestos a los parámetros de codificación pueden mejorar la eficiencia de la compresión, mientras rehabilitan el codificador x265 al trazar el informe.Los presets modificados no reclaman universalidad, las pruebas en una gran cantidad de secuencias de video están más allá del alcance de este estudio. Sin embargo, pueden recomendarse como punto de partida cuando se buscan oportunidades para aumentar la eficiencia de codificación de x265.Sobre el proyecto
La tarea de la codificación de video en el procesamiento multimedia, ya sea transmisión, edición o edición, almacenamiento, surge constantemente al desarrollar aplicaciones y servicios, y al configurarlos en el momento del uso. Debido a la gran cantidad de códecs de video populares, incluso a menudo del mismo tipo, no es fácil elegir el óptimo de ellos y luego establecer la configuración correcta. Probablemente, guiado por tales consideraciones, en el laboratorio de gráficos por computadora y multimedia en la facultad de matemática computacional y cibernética (VMiK) de la Universidad Estatal de Moscú desde la década de 2000, se ha trabajado en un proyecto para comparar códecs de video.En octubre de 2015, se publicó un informe de comparación de códecs que incluía algunos códecs en el formato HEVC, así como varios otros que están actualmente en desarrollo activo. Como "referencia" adoptó el compresor x264. Uno de los interesantes en el informe es el compresor x265, y lo estudiaremos.Como herramienta de análisis, utilizaremos SolveigMM Zond 265, el analizador de archivos HEVC / H.265 y AVC / H.264.
Métodos para comparar códecs y seleccionar parámetros
Describimos la técnica. La comparación en el informe se lleva a cabo según los criterios de velocidad de velocidad de bits (SSIM, PSNR). El procedimiento descrito en el informe para comparar la relación de velocidad de bits / métrica de calidad (párrafo C.4) es el siguiente.Seleccionamos varios valores de velocidad de bits (por ejemplo, 7 valores: 1, 2, 4, 6, 8, 10 y 12 Mbps), para ellos consideramos las métricas de calidad necesarias para cada códec.Marcamos los valores obtenidos en el gráfico: métrica de calidad (eje de abscisas) - velocidad de bits (eje de ordenadas).- Interpolar linealmente.
- Seleccionamos el rango más amplio en el que se definen todos los gráficos, y encontramos el área debajo de todos los gráficos en él.
- Como medida de la calidad de un códec particular (o preajuste), tomamos la relación de su área al área para el códec de referencia. Cuanto más bajo es el número, más eficiente es el códec.
Para la referencia, seleccione x265 con el preajuste seleccionado en el informe (tabla 1). El informe no utiliza la última versión del compresor, se puede encontrar aquí: x265 1.5 + 460-ac85c775620f . Sin embargo, cuando se usa la última versión, nada cambia fundamentalmente.Los ajustes predeterminados del compresor utilizados se muestran en la tabla 1 (para la plataforma de escritorio).Rasgadura
| x265 -p veryslow --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%
|
Recodificación rápida
| x265 -p ultrarrápido --ref 3 --bitrate% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --input-res% WIDTH% x% HEIGHT% --fps% FPS%
|
Tabla 1. Configuración del compresor x265 del informe "Comparación de códec de video HEVC de MSU".Para obtener recomendaciones para modificar los ajustes preestablecidos, probamos todas las configuraciones en las que consisten: qué contribución hace cada componente a la calidad y la velocidad. El plan aquí es el siguiente.- Codificamos el archivo, cambiando cada parámetro del preajuste: de transcodificación rápida a universal, de universal a "extracción". Al mismo tiempo, guardamos el tiempo de codificación.
- Calculamos la medida de calidad (como el área indicada anteriormente) y el tiempo de codificación relativo (el valor mínimo de codificación FPS para el archivo de "parámetro modificado previamente" en relación con todos los valores de velocidad de bits seleccionados).
- De la tabla que consiste en un parámetro variable, medida de calidad, FPS mínimo, seleccionamos los parámetros que se pueden usar para mejorar los ajustes preestablecidos.
Nos restringimos a los parámetros de los ajustes preestablecidos para la codificación universal y para "extraer" (Tabla 2), revelando los parámetros "-p medio" y "-p ultrarrápido". Agregue a ellos dos más que faltan en el informe: "--keyint -1 --tune ssim". Complementaremos los parámetros enumerados con ajustes preestablecidos para una transcodificación rápida y universal, respectivamente.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
|
Rasgadura
| --weightb --amp --rect --rc-lookahead 40 --bframes 8 --tu-inter-depth 3 --tu-intra-depth 3 --rd 6 --rdoq 2 --psy-rdoq 1.0 - -subme 4 --max-merge 4 --me star --ref 5 --b-intra --lookahead-slices 0
|
Tabla 2. Parámetros candidatos para modificar los ajustes preestablecidos del informe de comparación de códec de video HEVC de MSUPrueba
No se especifica el enlace de descarga para la secuencia de prueba de Apple Tree (Fig. 1), utilizado en la versión gratuita del informe. Elegiremos uno similar, utilizando su función clave: un primer plano, una gran cantidad de pequeños detalles. Por ejemplo, " big_buck_bunny_1080p_h264.mov ", un intervalo de 338 fotogramas desde 24 segundos:ffmpeg -i big_buck_bunny_1080p_h264.mov -ss 00:00:24 -frames: v 338 -c: v rawvideo -pix_fmt yuv420p sample.yuv
Figura 1. Características de la secuencia de la muestra .uvv . Apple Tree "Para no perder mucho tiempo escribiendo los números necesarios de la interfaz Zond 265 al implementar los tres pasos del plan indicado anteriormente, es conveniente usar su capacidad para trabajar en la línea de comando (tabla 3):zond265_x64% COMPRESSED_FILE% -iref% REFERENCE_420P_FILE% -nowait -report t = quality, statstream qm = SSIM o =% TARGET_CSV_FILE% Puede encontraruna lista de todos los parámetros y su descripción detallada en la página de documentación de Zond 265 .Parámetro
| Descripción
|
-iref
| Establecer el archivo YUV de referencia
|
-informe
| Especificación del modo operativo Zond 265 en la línea de comando
|
t = calidad, flujo de datos
| Aquí, se selecciona la generación de dos informes: calidad y estadísticas en la transmisión de video
|
qm = SSIM
| Métrica de calidad para el cálculo
|
o
| Ruta al archivo de informe CSV
|
-ahora
| Sin pausas, el Zond 265 debe ir de archivo en archivo sin demora
|
Tabla 3. Parámetros de la línea de comandos de Zond 265 necesarios para compilar un scriptAquí hay dos scripts para Python 2.7: uno para codificar 266 archivos (20 configuraciones para el primero, 18 configuraciones para el segundo preset, para 7 bitrates: 1, 2, 4, 6, 8, 10, 12 Mbps), el segundo para informar en formato CSV (archivo - la relación de codificación FPS a la configuración de referencia - la relación de la métrica SSIM a la configuración de referencia).Como se puede ver en las tablas de informes para el fragmento de archivo " big_buck_bunny_1080p_h264.mov " (tablas 5 y 6), puede modificar la configuración, por ejemplo, como se muestra en la tabla 4. Recupere para mejorar la eficienciael valor de la medida de calidad debe ser menor que uno y el valor del tiempo de codificación relativo debe ser más de uno.La prueba se realizó en una computadora con la siguiente configuración: Intel Core i7-2600@3.4 GHz, 16 GB de RAM. El parámetro "--min-cu-size 8" proporciona una gran mejora en la calidad para configuraciones de codificación rápida, para codificación universal: el parámetro "--rdoq-nivel 2" (pero también ralentiza la codificación sobre todo).Recodificació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-depth 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 4. Modificación de preajustes de informe de comparación de códec de video HEVC de MSU para aumentar la eficiencia de codificación a la misma velocidad de codificaciónTabla 5. Informe sobre la modificación del preajuste de recodificación rápida
5.
Tabla 6. Informe sobre la modificación del preajuste de codificación universal
6.
La elección correcta de opciones es fácil de verificar ejecutando el script de codificación con los presets modificados (tabla 7).Configuracion
| Medida de calidad
| Tiempo de codificación relativo
|
Transcodificación rápida (referencia)
| 1
| 1
|
Transcodificación rápida, modificada
| 0,69
| 0,97
|
Transcodificación universal (referencia)
| 1
| 1
|
Transcodificación universal, modificada
| 0,85
| 0,94
|
Tabla 7. Eficiencia de codificación usando preajustes modificados en relación con los preajustes del informe “Comparación de códec de video HEVC de MSU”Intentemos ver en qué influyó el cambio en las opciones: abra el archivo codificado en el Zond 265 con el preajuste modificado cuando transcodifique rápidamente para la tasa de bits de 8 Mbps y compárelo con el archivo, preestablecido codificado sin cambios. El tamaño de la unidad de codificación máxima sigue siendo el mismo y es 32x32 (área "--ctu 32"). Pero el tamaño del bloque mínimo disminuyó de 16 a 8 (el área “--min-cu-size 8”), fue este parámetro el que mejoró la calidad. El número de cuadros B aumentó de 3 a 4 (área "- cuadros 4"), pero el número máximo de cuadros "de referencia" aumentó (área "--ref 4"). El área SSIM muestra los gráficos máximos de SSIM / PSNR para tres componentes: brillo (Luma) y dos componentes de color (Cb, Cr). Aumentaron de 0.9623-0.9966 a 0.9771-0.9991. Los parámetros adicionales restantes (--rc-lookahead 20 --early-skip --cutree) afectan el algoritmo de codificación, y no el tipo de video resultante, esto se refleja principalmente en la velocidad de codificación (ver Tabla 5). Debe tenerse en cuentavisualmente, la imagen del cuadro decodificado ha cambiado: los artefactos de codificación ahora no son visibles.
Figura 2. Captura de pantalla del archivo Zond 265 codificado utilizando la configuración corregida de codificación rápida.Demanera similar, puede verificar los parámetros del archivo codificado con el preajuste de codificación universal modificado y sin cambios (Figura 3). El tamaño de las particiones TU mínimas no cambió y permaneció igual a 4x4 (área “--tu-intra-profundidad 3”), el número de tramas B permaneció sin cambios e igual a 3 (área “--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 máximo de bloque aumentado, llegó a ser igual a 64x64 (área "--ctu 64"), se agregó un filtro SAO (área "--sao").
Figura 3. Captura de pantalla del archivo Zond 265 codificado utilizando la configuración de codificación universal corregida.Por lo tanto, en base a las pruebas, se propone una lista de opciones para mejorar la eficiencia de codificación (mejorando la métrica SSIM con la misma velocidad de bits y velocidad de codificación) para configuraciones de codificación rápidas y universales. Utilizando los cambios propuestos para un archivo con una gran cantidad de pequeños detalles, el valor de la "medida de calidad" integral del informe "Comparación de códec de video HEVC de MSU" mejoró en un 31% para la conversión rápida, y en un 15% con la conversión universal, y la velocidad de codificación no cambió significativamente. Porque Dado que las pruebas se llevaron a cabo para cada opción por separado, en la práctica, puede seleccionar y usar solo algunas opciones convenientes, y no toda la lista propuesta.Referencias
- HEVC Video Codecs Comparison
- Blender Foundation | www.blender.org
- Zond 265 home page
Source: https://habr.com/ru/post/es388423/
All Articles