Как проверить потоки HEVC с помощью Zond 265
Автор: Ольга Кровякова - изменено 9 октября 2023 г., создано 2 апреля 2019 г.
Создание отчетов через интерфейс командной строки
Что проверить
При разработке, настройке и тестировании компонентов кодека High Efficiency Video Coding (HEVC) исследователи сталкиваются с задачей проверки видеопотока. Чтобы корректно воспроизвести файл или поток в любом плеере, недостаточно просто проверить, правильно ли он декодируется специальным справочным инструментом. Дополнительно необходимо определить, соответствует ли тестируемый видеопоток спецификации HEVC [1].
Для HEVC существует специальный документ ISO, в котором описано, как проверять видеопотоки и декодеры:
Информационные технологии. Высокоэффективное кодирование и доставка мультимедиа в гетерогенных средах. Часть 5. Тестирование на соответствие HEVC и эталонное программное обеспечение [2].
Процесс проверки можно разделить на несколько этапов. Отрицательный результат теста одного из условий приведет к ошибке. Виды условий можно разделить на три группы:
- ограничения, описанные в спецификации HEVC
- декодировать поток утилитой HEVC Test Model (HM) проекта [3], выписать все предупреждения
- допустимость и изменение основных параметров видео: разрешения кадра и частоты кадров
Ограничения, описанные в спецификации HEVC, следующие:
– максимальные и минимальные значения параметров блока Network Abstraction Layer (NAL)
– совместимость каждого параметра с другими
– достоверность порядка блоков NAL, достоверность структуры потока
– ограничения указанного уровня и профиля
– наличие параметров декодирования видеопоследовательности — набора параметров видео (VPS), набора параметров последовательности (SPS), набора параметров изображения (PPS) и кадров, необходимых для реконструкции
– параметры гипотетического эталонного декодера (HRD), влияющие на воспроизведение потока в реальном времени
Как проверить Зондом 265
Например, файл «tractor_1920x1080p_25fps.yuv» [5] кодируется HM компрессором, а затем в сжатом файле в HEX-редакторе настраиваются некоторые параметры блоков NAL, чтобы с помощью подсветки часть покрыть часть потенциальных ошибок. особенность Zond 265. Затем результат проверяется. Невозможно изменить параметры файла так, чтобы были нарушены все ограничения. Поэтому выбрано только несколько ограничений.
Для детального анализа найденных ошибок лучше использовать содержимое вкладки Bitstream. После открытия файла все блоки NAL со всеми параметрами должны быть перечислены на вкладке Bitstream. При расшифровке Zond 265
1) проверяет ограничения, описанные в спецификации;
2) собирает все возникшие предупреждения в утилите декодирования HM.
Если что-то пойдет не так, возле соответствующего блока NAL появится уведомление. Уведомление включает имя блока NAL, его смещение в потоке, битовое смещение параметра’, где обнаружена ошибка, а также ссылку на страницу спецификации (она откроется в новом окне браузера), где можно найти детали.
Вы можете развернуть один за другим ряд списков ошибок Slice B (кадр 0), SPS, Slice B (кадр 4), щелкнув красный значок с восклицательным знаком.
На рисунке 1 показан список всех ошибок, обнаруженных в SPS.
Рисунок 1. Окно со списком ошибок вкладки Bitstream
Затем вы можете расширить список SPS и изучить значения параметров и ошибки (рис. 2).
Рисунок 2. Сообщение об ошибке для одного параметра SPS
Результат проверки параметров СПС описан ниже.
Сообщение | Описание |
---|---|
Значение sps_max_sub_layers_minus1 должно находиться в диапазоне от 0 до 6 включительно. Оно равно 7 | Это ограничение спецификации. Тип проверяет максимальное значение |
Если vps_temporal_id_nesting_flag равен 1, sps_temporal_id_nesting_flag должен быть равен 1 | Это ограничение спецификации. Тип проверяет совместимость каждого параметра с другими |
Значение pic_width_in_luma_samples должно быть меньше или равно Sqrt(MaxLumaPs * 8), указанному для General_level_idc. Согласно спецификации, значение pic_width_in_luma_samples не должно быть больше 1402 для уровня 2.1 | Это ограничение спецификации. Тип — проверка ограничений, указанных для данного профиля и уровня |
Затем вы расширяете фрагмент первого кадра (рис. 3).
Рисунок 3. Список ошибок для фрагмента кадра 0
Ошибки недоступности параметра декодирования представлены в списке ошибок первого кадра.
Сообщение | Описание |
---|---|
Нет доступных активных VPS Нет доступных активных SPS |
Это ограничение спецификации. Тип проверяет доступность параметров декодирования |
Разворачиваете список ошибок кадра 4 (рисунок 4).
Рисунок 5. Список всех ошибок файла с контекстным меню
Результат проверки кадра 4 описан ниже.
Сообщение | Описание |
---|---|
Кратковременное опорное изображение с POC = 2 потеряно или неправильно декодировано | Это ограничение спецификации. Тип проверяет наличие кадров, необходимых для реконструкции |
декодировать CTU#46: исключение декодировать CTU#49: исключение декодировать CTU#50: исключение |
Это сообщение, полученное от декодера. Реконструкция блоков не прошла. Они будут отображаться неправильно на конечном изображении |
Содержимое вкладки «Ошибки» лучше использовать, когда нужно найти все ошибки в файле и отсортировать их по типам. Сообщения об ошибках накапливаются как для текущего кадра, так и для всего потока в списках на вкладке (рисунок 5).
Рисунок 6. График наполненности CPB, построенный на основе данных HRD, доступных в сообщениях SEI
Рисунок 7. График наполненности CPB, построенный на основе данных, установленных вручную
Графики наполненности буфера кодированных изображений (CPB), доступные на гипотетическом эталонном декодере (HRD), необходимы для выявления проблем (например, задержек) при воспроизведении видеопотоков по сети с небольшой пропускной способностью. В качестве источника информации могут использоваться данные, записанные в сообщениях дополнительной информации расширения (SEI) (начальная задержка, скорость передачи данных и т. д.), или эти данные могут быть установлены вручную. Области переполнения или недолива (выделены красным) указывают на проблему в интервале (рис. 6, рис. 7). В случае возникновения проблем при построении графиков соответствующее сообщение об ошибке будет отображаться на вкладках «Битовый поток» и «Ошибки».
Рисунок 8. Отчет об ошибках, импортированный в таблицы Google
Создание отчетов через интерфейс командной строки
Создание отчетов через интерфейс командной строки полезно, когда видеопоток должен проверяться автоматически. Для создания отчета вам необходимо запустить Zond 265 с указанными ниже параметрами.
Параметр | Описание |
---|---|
-отчет | Указывает, что Zond 265 должен работать в режиме генерации отчетов |
т=ошибки | Устанавливает тип отчета |
о= | Устанавливает путь к выходному файлу CSV. По умолчанию он равен “out.csv” Например, чтобы |
Проанализировать файл «tractor.265» на наличие ошибок и сохранить их в файл «tractor-errors.csv», нужно выполнить команду:
zond265.exe трактор.265 -report t=ошибки o=”трактор-errors.csv”
В результате вы получаете файл CSV, который можно импортировать в программное обеспечение табличного процессора. На рис. 8 показан файл “трактор-ошибки.csv” , импортированный в таблицы Google.
Рекомендации
1. Спецификация HEVC – http://www.itu.int/rec/T-REC-H.265
2. «Информационные технологии. Высокоэффективное кодирование и доставка мультимедиа в гетерогенной среде. Часть 5. Тестирование на соответствие HEVC и справочное программное обеспечение.» – http://mpeg.chiariglione.org/standards/mpeg-h/hevc-conformance- тестирование/рабочий проект-соответствие HEVC
3. Домашняя страница проекта HM – https://hevc.hhi.fraunhofer.de/
4. Проект дома Zond 265 – https://www.solveigmm.com/en/products/zond/
5. URL-адрес тестовой последовательности – https://media.xiph.org/ldv/pub/test_sequences/1080p/tractor.yuv
- https://www.solveigmm.com/en/howto/netflix-vmaf-how-to-measure-video-quality-with-vmaf-in-zond-265/
- https://www.solveigmm.com/en/howto/zond-265-tutorial/
Ольга Кровякова - менеджер технической поддержки в комании Solveig Multimedia с 2010 года.
Она является автором многих текстовых и видео инструкций по программным продуктам компании: Video Splitter, HyperCam, WMP Trimmer Plugin, AVI Trimmer+ и TriMP4.
Посколько она работает с программами каждый день, то хорошо знает как они работают. Свяжитесь с Ольгой по почте support@solveigmm.com, если у вас возникнут вопросы и она с радостью вам поможет!