четверг, 19 сентября 2019 г.

Проблемы при использовании процессоров с низкой тактовой частотой


О проблемах показа HD-ролика на SD-выходе на процессорах с низкой частотой.



Процесс воспроизведения ролика включает следующие этапы:




  1. Чтение данных с диска

  2. Декодирование (демультиплексирование, декодирование видео и звука)

  3. Преобразование формата (из формата декодера в формат платы)

  4. Масштабирование

  5. Обработка пикселей

  6. Копирование в буфер платы






Для современных роликов типа MP4 с кодированием HEVC или AVC этапы 1-2 выполняются независимо от остальных этапов. Этапы 3-4-5-6 выполняются последовательно на одном ядре процессора.

Если размер кадра ролика совпадает с размером кадра платы, то масштабирование не производится.

Обработка пикселей обычно не выполняется (за исключением специфических форматов типа Full Range Color, или при включении коррекции цвета в настройках SLIni).



Таким образом, в нормальной ситуации выполняются только этапы 3-6. Однако при показе HD-роликов на SD-выходе выполняются этапы 3-4-6. Причем все эти этапы выполняются последовательно на одном ядре процессора. Частоты 2 гигагерца явно недостаточно для выполнения этих этапов. То есть при наличии большого числа свободных ресурсов процессора программа OnAir будет не успевать показывать HD-ролик на SD-выходе.



Мы планируем в обозримом будущем решить эту проблему, распараллелив часть этапов. Однако прямо сейчас есть только один способ решить эту проблему – увеличить тактовую частоту процессора. Или не воспроизводить видео HD-разрешения на SD-плате.