Cómo validar transmisiones HEVC con Zond 265
By Olga Krovyakova - modified October 9, 2023, created April 2, 2019.
Análisis del tamaño del buffer CPB
Generar informes a través de la interfaz de línea de comando
Que comprobar
Al desarrollar, ajustar y probar componentes del códec de codificación de vídeo de alta eficiencia (HEVC), los investigadores se enfrentan a la tarea de validar la transmisión de vídeo. Para reproducir correctamente un archivo o una secuencia en cualquier reproductor, no basta con comprobar si está correctamente decodificado mediante una herramienta de referencia especial. Además, debe determinar si la transmisión de video probada cumple con la especificación HEVC [1].
Para HEVC, existe un documento ISO especial que describe cómo verificar transmisiones de video y decodificadores:
Tecnología de la información. Codificación de alta eficiencia y entrega de medios en entornos heterogéneos. Parte 5: Software de referencia y pruebas de conformidad HEVC [2].
El proceso de validación se puede dividir en varias etapas. Un resultado negativo de la prueba de una de las condiciones dará como resultado un error. Los tipos de condiciones se pueden dividir en tres grupos:
- restricciones descritas en la especificación HEVC
- decodificar la transmisión mediante la utilidad del proyecto del modelo de prueba HEVC (HM) [3], para escribir todas las advertencias
- admisibilidad y cambio de parámetros básicos del video: resolución de cuadros y velocidad de cuadros
Las restricciones descritas en la especificación HEVC son las siguientes:
– valores máximos y mínimos de los parámetros unitarios de la capa de abstracción de red (NAL)
– compatibilidad de cada parámetro con otros
– validez del orden de unidades NAL, validez de la estructura de la secuencia
– restricciones de nivel y perfil especificados
– disponibilidad de parámetros de decodificación de una secuencia de vídeo: conjunto de parámetros de vídeo (VPS), conjunto de parámetros de secuencia (SPS), conjunto de parámetros de imagen (PPS) y fotogramas necesarios para la reconstrucción
– parámetros del decodificador de referencia hipotético (HRD), que afectan la reproducción de la transmisión en tiempo real
Cómo comprobar por Zond 265
Por ejemplo, el archivo «tractor_1920x1080p_25fps.yuv» [5] está codificado por el compresor HM y luego, en un archivo comprimido, algunos parámetros de las unidades NAL se ajustan en un editor HEX para cubrir parte de los errores potenciales con la ayuda de resaltado. característica de Zond 265. Luego se valida el resultado. Es imposible modificar los parámetros del archivo para que se violen todas las restricciones. Por tanto, sólo se seleccionan varias restricciones.
Es mejor utilizar el contenido de la pestaña Bitstream para un análisis detallado de los errores encontrados. Una vez que se ha abierto un archivo, todas las unidades NAL con todos los parámetros deben aparecer en la pestaña Bitstream. Al decodificar, Zond 265
1) verifica las restricciones descritas en la especificación;
2) recopila todas las advertencias que han surgido en la utilidad de decodificación HM.
Si algo sale mal, aparecerá una notificación cerca de la unidad NAL correspondiente. La notificación incluye el nombre de la unidad NAL, su desplazamiento en la secuencia, el desplazamiento de bits del parámetro’donde se encuentra un error y un enlace a la página de especificaciones (se abrirá en una nueva ventana del navegador) donde puede encontrar los detalles.
Puede expandir una tras otra una serie de listas de errores de Slice B (cuadro 0), SPS, Slice B (cuadro 4) haciendo clic en el icono rojo con el signo de exclamación.
La Figura 1 muestra la lista de todos los errores encontrados en el SPS.
Figura 1. Ventana con lista de errores de la pestaña Bitstream
Luego puede expandir la lista SPS y explorar los valores y errores de los parámetros (figura 2).
Figura 2. Mensaje de error para un solo parámetro de SPS
El resultado de la verificación de los parámetros SPS se describe a continuación.
Mensaje | Descripción |
---|---|
El valor de sps_max_sub_layers_minus1 estará en el rango de 0 a 6, inclusive. es igual a 7 | Es una restricción de la especificación. El tipo está comprobando el valor máximo |
Cuando vps_temporal_id_nesting_flag es igual a 1, sps_temporal_id_nesting_flag será igual a 1 | Es una restricción de la especificación. El tipo está comprobando la compatibilidad de cada parámetro con otros |
El valor de pic_width_in_luma_samples deberá ser menor o igual a Sqrt( MaxLumaPs * 8 ), especificado para general_level_idc. Según la especificación, el valor de pic_width_in_luma_samples no debe ser mayor que 1402 para el nivel 2.1 | Es una restricción de la especificación. El tipo verifica las restricciones especificadas para un perfil y nivel determinados |
Luego expandes una porción del primer fotograma (figura 3).
Figura 3. Lista de errores para una porción del fotograma 0
Los errores de inaccesibilidad del parámetro de decodificación se presentan en una lista de errores del primer cuadro.
Mensaje | Descripción |
---|---|
No hay ningún VPS activo disponible No hay ningún SPS activo disponible |
Es una restricción de la especificación. El tipo está comprobando la accesibilidad de los parámetros de decodificación |
Expande una lista de errores del cuadro 4 (figura 4).
Figura 5. Lista de todos los errores de un archivo con un menú contextual
El resultado de la validación del cuadro 4 se describe a continuación.
Mensaje | Descripción |
---|---|
La imagen de referencia de corta duración con POC = 2 se pierde o no se decodifica correctamente | Es una restricción de la especificación. El tipo está comprobando la disponibilidad de marcos necesarios para la reconstrucción |
decodificar CTU#46: excepción decodificar CTU#49: excepción decodificar CTU#50: excepción |
Es un mensaje recibido del decodificador. La reconstrucción de los bloques no ha sido aprobada. Se mostrarán incorrectamente en una imagen final |
Es mejor utilizar el contenido de la pestaña Errores cuando es necesario encontrar todos los errores en un archivo y ordenarlos por tipos. Los mensajes de error se acumulan tanto para el fotograma actual como para toda la secuencia en listas en la pestaña (figura 5).
Figura 6. Gráfico de plenitud del CPB elaborado con base en los datos de HRD disponibles en los mensajes del SEI
Figura 7. Gráfico de plenitud de la BPC elaborado a partir de datos establecidos manualmente
Análisis del tamaño del buffer CPB
Los gráficos de plenitud del búfer de imagen codificada (CPB) que están disponibles en el decodificador de referencia hipotético (HRD) son necesarios para identificar problemas (por ejemplo, retrasos) al reproducir transmisiones de video a través de una red con un ancho de banda pequeño. Como fuente de información, se pueden utilizar los datos registrados en los mensajes de información de mejora suplementaria (SEI) (retardo inicial, velocidad de bits, etc.), o estos datos se pueden configurar manualmente. Las áreas de desbordamiento o desbordamiento (resaltadas en rojo) indican un problema en el intervalo (figura 6, figura 7). En caso de problemas al dibujar gráficos, el mensaje de error correspondiente se mostrará en las pestañas Bitstream y Errores.
Figura 8. Informe de errores importado a Hojas de cálculo de Google
Generar informes a través de la interfaz de línea de comando
Generar informes a través de la interfaz de línea de comandos es útil cuando una transmisión de video debe validarse automáticamente. Para generar un informe debe iniciar Zond 265 con los parámetros siguientes.
Parámetro | Descripción |
---|---|
-informe | Afirma que Zond 265 debería funcionar en modo de generación de informes |
t=errores | Establece el tipo de informe |
o= | Establece la ruta del archivo CSV de salida. Es igual a “out.csv” por defecto |
Por ejemplo, para analizar el archivo «tractor.265» en busca de errores y guardarlos en el archivo «tractor-errors.csv», necesita ejecutar el comando:
zond265.exe tractor.265 -report t=errores o=”tractor-errors.csv”
Como resultado, obtiene un archivo CSV que se puede importar al software del procesador de mesa. La Figura 8 muestra el archivo “tractor-errors.csv” importado a Google Spreadsheets.
Referencias
1. Especificación HEVC – http://www.itu.int/rec/T-REC-H.265
2. «Tecnología de la información - Codificación de alta eficiencia y entrega de medios en un entorno heterogéneo - Parte 5: Software de referencia y pruebas de conformidad HEVC» – http://mpeg.chiariglione.org/standards/mpeg-h/hevc-conformance- pruebas/borrador-de-trabajo-de-conformidad-hevc
3. Página de inicio del proyecto HM – https://hevc.hhi.fraunhofer.de/
4. Proyecto de vivienda Zond 265 – https://www.solveigmm.com/en/products/zond/
5. URL de la secuencia de prueba – https://media.xiph.org/ldv/pub/test_sequences/1080p/tractor.yuv
- https://www.solveigmm.com/es/howto/netflix-vmaf-cómo-medir-la-calidad-de-video-con-vmaf-en-zond-265/
- https://www.solveigmm.com/es/howto/zond-265-tutorial/
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!