Автофреймрейт

Автофреймрейт

🇺🇦ⓚⓤⓩⓩ〽️ⓐⓝ🇺🇦

Системный автофреймрейт. Может быть реализован как через отдельные библиотеки StageFright и MediaCodec с выводом в SurfaceView, так и для двух сразу. Например, в MX Player (HW). С любым контентом, даже с HLS (HTTP Live Streaming). По сути это универсальный костыль. Программы даже не в курсе, что такое автофреймрейт, и что меняется режим вывода. Т.к. это универсальное решение, то это вид автофреймрейта может вызывать проблемы в некоторых случаях. Например, в некоторых программах может происходить промежуточное переключение при перемотке, в IPTV-менеджерах могут происходить лишние переключения при переключении каналов и пр.


Современный автофреймрейт (полноценно реализован через API Android 6+) для работы в Kodi 17+, ViMu (с ViMu Engine), Archos, Plex и пр.

Т.е. программы (видеоплееры) самостоятельно управляют переключением разрешений и частотой развёртки дисплея так, как нужно именно им, и как задумано в их логике. При этом всё, что они делают, не выходит за пределы программ (т.е. свернули программу, а система сама всё восстановили до штатных параметров). Это самая идеальная реализация автофреймрейта и это будущее. Проблема в том, что единицы производителей боксов реализуют функции необходимые для современного автофреймрейта: Nvidia Shield TV, Minix Neo U9-H, Ugoos AM3 (нормально работает только в 2.0+), часть Fire TV и ещё парочка.


Возьмём для примера контент 24p (видео 24 к/с). Большинство устройств воспроизведения, чтобы вывести 24 к/с на устройство вывода с развёрткой 60 Гц, делает преобразование 3:2 pull down. Вот как это выглядит:



Первый кадр преобразуется в 2, второй в 3, третий в 2, четвёртый в 3 и т.д. Таким образом из 24 кадров получается 60 кадров. Всё просто, но это приводит к возникновению judder эффекта — неравномерность — одни кадры отображаются 1/30 секунды, а другие 1/20 секунды. Чтобы избавиться от judder эффекта частота развёртки дисплея должна соответствовать частоте кадров в видео (утрированно). Т.е. для видео 24p нужна частота 24 Гц. В этом случае каждый кадр будет отображаться равное количество времени и равномерность будет идеальная.


В правильных телевизорах есть функциональность по перестроению входной последовательности кадров. Например, на боксе выставлено для выхода 60 Гц. Проигрывается видео 23,976p/24p, бокс делает стандартную конвертацию 3:2 pull down и выводит 60p. Телевизор на входе определяет эту последовательность и пересобирает её обратно в исходные 23,976p/24p. С таким ТВ по сути безразлично, есть ли у бокса поддержка автофреймрейта или нет - равномерность при проигрывании 23,976p/24p всегда будет идеальной.

© Юрий Юрьев


Report Page