четверг, 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-плате.