Медиаплееры и проблема замерзшего кадра

«Да был ли мальчик-то, может, мальчика-то и не было?»
(Максим Горький, «Жизнь Клима Самгина»)

 

Данная статья посвящена рассмотрению вопроса о так называемых «фризах» (от английского freeze — замерзать, застывать) — кратковременных «залипаниях» и подергиваниях видео при воспроизведении его некоторыми медиаплеерами. Рассказы о наличии этих фризов вперемешку с неопровержимыми доказательствами их существования в течение прошедшего года активно муссировались в источниках, широко известных узкому кругу лиц. Одним из основоположников теории предположительно является некий участник одного из англоязычных форумов, который обнаружил и доказал наличие фризов в некоторых моделях медиаплееров (а может быть, и в одной — но это неважно). Имеется подозрение, что данный гражданин — поклонник «Звездных войн» Лукаса, причем его излюбленным местом в этой киносаге являются титры, медленно уплывающие в космическую даль.

Согласно аксиоме, выведенной участниками словесных форумных баталий, фризы могут происходить в случаях, когда частота кадров видео не совпадает с частотой сигнала, поступающего на телевизор. Дополнительное условие: процессор медиаплеера, занятый выводом сигнала, неверно компенсирует микроскопическую разницу между частотами 23,976 Гц и 24 Гц.

В качестве лирического отступления, которое поможет несведущему читателю вникнуть в суть: откуда взялась эта странная частота кадров — 23,976 (и похожая на нее 59,94)? Все оттуда же, откуда происходит весь сегодняшний жизненный негатив. Из телевидения. Точнее, из ограничений, имевшихся в системе передачи аналогового телевизионного сигнала, которая была разработана в середине прошлого века. Отчего спустя более полувека мы продолжаем пользоваться этой системой? Зачем она нужна в современных стандартах, например Blu-ray? Ведь одно дело — телевидение, где местами все еще работают эти устаревшие технологии передачи видеоданных. Но совсем другое дело — медиаконтент, предназначенный для просмотра «на месте», без предварительной его передачи по узким каналам радиосвязи. Впрочем, это риторический вопрос.

Все-таки — вернувшись к теме — почему фризы не происходят, а «могут» происходить? Да потому, что одного лишь несовпадения частот, как оказалось, вовсе не достаточно для получения дергания. Существует еще несколько «требований», как аппаратных, так и программных. Например, плеер должен иметь особые режимы воспроизведения, которые должны быть активированы (а что делать, если такого режима в плеере попросту нет?). Телевизор: он должен иметь… Увы, доподлинно неизвестно, что именно должен иметь телевизор. Да и вообще — каким он должен быть, этот телевизор, умеющий отображать дерганое видео. Одно несомненно: телевизор должен уметь переключаться в тот режим, который ближе всего соответствует входному сигналу (например, если на вход поступает видео с частотой кадров 23,976, то телевизор должен переключиться в близкие 24 Гц). Но вряд ли кто-то серьезно изучал этот вопрос, ведь на одном энтузиазме невозможно протестировать все существующие типы телевизоров, не говоря уже о десятках брендов и сотнях моделей. (Заявиться с плеерами в М-Видео и приняться подключать их ко всем выставленным в зале телевизорам? Не вариант. Впрочем, если кто-то желает узнать способы работы дежурной метлы охранника — милости просим.) А если прибавить к телевизорам еще и десятки медиаплееров различных брендов, умножить на десятки моделей каждого бренда, да вдобавок еще и вспомнить, что каждый плеер может иметь несколько вариантов прошивок, включая альтернативные… Кто помнит школьный курс возведения чисел в степень?

Похоже, писатели аксиом данный курс позабыли, ограничившись имеющимся у них одним-единственным телевизором с единственным же медиаплеером на па́ру. А между тем, имеется предположение, которое нетрудно проверить: плеер, «выдающий фризы» на современной ЖК-панели, абсолютно ровно и гладко воспроизводит это же самое видео на древнем кинескопе стандартного разрешения. Да и вообще на любом другом телевизоре, попавшем под руку.

Наконец, еще один аспект, крайне важный: параметры воспроизводимого плеером видео. Один и тот же фильм, но закодированный разными способами, разными кодеками и запакованный в разные контейнеры, будет воспроизводиться по-разному. С дерганием или без такового.

Именно по всем перечисленным выше причинам исследуемые фризы не происходят, а могут происходить. Будем об этом помнить.

***

Обязанность любой редакции — тем или иным образом реагировать на события, происходящие в виртуальном мире конференций. Речь идет всего лишь об одной теме Конференции iXBT.com. Эта тема носит будоражащее душу название «Некорректное воспроизведение видео с частотой кадров 23,976fps на медиаплеерах». Звучит грозно и многообещающе.

Изучив повторно (точнее, в n-цатый раз) материалы, опубликованные участниками означенной темы, мы пришли к следующему выводу. Возникновение фризов может зависеть от одного или нескольких факторов, а также различных вариантов их сочетания. Вот эти факторы:

  • параметры видеофайла (кодек и контейнер, их параметры, программа-кодировщик)
  • модель плеера, модель процессора в плеере, версия прошивки плеера
  • наличие в плеере режима 1080p 24 Гц, факт включения этого режима
  • модель телевизора (иного устройства отображения)
  • наличие в телевизоре режима, совместимого с медиаплеерным 1080p 24 Гц
  • текущий режим подключения к телевизору либо иному устройству отображения

Как утверждается, чаще всего фризы можно наблюдать в случаях, когда имеется следующее сочетание факторов:

  • медиаплеер, работающий на процессоре Realtek RTD1073 (или 1273, или 1186)
  • телевизор с поддержкой режима 24 Гц
  • нужный видеофайл

Помимо этого, в указанной теме конференции имеется список причин, в силу которых пользователь никогда не заметит обсуждаемые фризы. Особенно умиляет последняя причина, цитируем:

Вы относитесь к категории людей, которые не предъявляют к качеству изображения каких либо требований и, соответственно, не обращают внимания на мелкие артефакты.

Каково? Хорошо хоть на «вы». Все остальные причины выглядят довольно убедительно, хотя и носят характер неопределенности, будучи разбавлены изрядной долей скептицизма самих же авторов. Впрочем, каждый может ознакомиться с этим перечнем и сделать собственные выводы.

Памятуя о редакционных обязанностях, мы должны что-то предпринять. Вариант: изучить и проверить данную теорию. Разумеется, на истину в последней инстанции мы претендовать не вправе. По той простой причине, что изучаемое явление возникает по большей части случайно, в силу многих факторов либо их сочетаний. Удастся ли нам выявить хотя бы намек на пресловутые фризы? Здесь могут помочь только реальные опыты.

Для постановки опытов необходимо иметь оборудование, это очевидно. Не менее очевиден тот факт, что редакция не является дистрибутором медиаплееров и телевизоров. К несчастью или нет — но это бесспорно. Во время подготовки данной статьи в нашем распоряжении имелись только три медиаплеера (из тех, которые имеет смысл рассматривать, то есть подходящих под «требования»), их мы и станем использовать в тестировании. Вот они, эти плееры:

С телевизорами сложнее. Принцип работы метлы охранника торгового зала М-Видео нам уже известен (жизненным опытом не обделены), туда мы не пойдем. А посему ограничимся имеющимися экземплярами телевизионной техники. Правда, выбор нельзя назвать богатым. Из четырех телевизоров, оказавшихся в пределах досягаемости, три не представляют интереса в качестве тестовых стендов. Причина? Они слишком «просты». Два ЖК Toshiba пяти- и трехлетней «свежести», да типично кухонный брутальный BBK, хоть и новенький. Забегая вперед, скажем: ни на одном из этих телевизоров мы не смогли увидеть никаких фризов. Да это и неудивительно, ведь в данных телевизорах отсутствует функция переключения в режим 24 Гц.

Вот четвертый телевизор уже представляет интерес. Это довольно современный 3D-аппарат Samsung UE55D8000, в котором имеется требуемый 24-герцовый режим. Хорошо, пусть этот аппарат и будет главным героем в кадре видеокамеры. Причем тут видеокамера? Каким же еще способом можно донести до читателя (зрителя?) отсутствие либо наличие фризов? Разумеется, только одним: сняв видеокамерой экран работающего телевизора. Да, это не высокотехнологично, ведь для получения снимка или видеозаписи экрана следует воспользоваться специальными картами захвата. Их у нас… В общем, имеются. Но беда в том, что эти карты захвата не являются телевизором и, соответственно, не имеют режима 24 Гц (смайлик). И — да! — фризы с их помощью не увидишь ни за какие коврижки.

Итак, видеокамера. Она снимает в прогрессивном режиме с размером кадра 1920×1080 и частотой 50 кадров в секунду. Такая частота соответствует PAL. В нынешней градации систем NTSC/PAL последние различаются только частотой кадров, при этом размер кадра в обоих случаях одинаков (история происхождения такой градации берет свои корни от различающихся частот в электрических сетях США+Японии и почти всего остального мира, за редкими исключениями).

В связи с тем, что основная часть имеющегося на торрентах в распоряжении домашнего зрителя видеоконтента имеет частоту, соответствующую NTSC, а наша видеокамера предназначена для съемки в «родном» PAL, каждый плеер перед тестированием был переведен в режим 1080 50p. Это было сделано с целью предотвратить любые случайные несовпадения частот, буде таковые проявятся, а также ради устранения мерцания экрана, когда телевизор работает не в киношном 24-герцовом режиме. Конечно, во время воспроизведения тестовых роликов частота экрана изменится на 24 Гц, и мерцание обязательно появится вновь, но будет уже незаметным. Зато полученная видеозапись даст возможность покадрово просмотреть участки, в которых проявятся вожделенные фризы. Перед записью видеокамера была переведена в режим приоритета выдержки, значение последней равняется 100.

Осталось выполнить последнее условие: видеофайл. Какой материал следует выбрать в качестве образца для испытаний? В упоминавшейся теме конференции предлагается немало тестовых материалов, с помощью которых любой желающий может приступить к ловле фризов на своем оборудовании. Проверять подряд все ролики? Неправильно. Часть видео, которое можно отыскать в качестве предлагаемого к тестированию, не выдерживает никакой критики. Что можно сказать о видеофайле 1920×1080 23,976fps, закодированном в H.264 с использованием профайла High@L5.1? А о файле, также закодированном в AVC, но запакованном в контейнер AVI? О самом файле, пожалуй, ничего не скажешь, его уже не вернешь к жизни. А вот об авторе такого файла сказать можно, и даже нужно. Однако, в силу воспитания, ограничимся молчанием. Но все же, дабы не смущать приверженцев идеи вездесущих фризов, мы не станем воспроизводить файлы собственного авторства, в происхождении которых уверены. Воспользуемся файлами, предположительно изготовленными упоминавшимся участником англоязычного форума, откуда есть пошла теория фризов. Первоисточник, как-никак. Поскольку тестовых файлов довольно-таки немало, в данной статье будут приведены ролики с участием лишь одного файла, как наиболее подходящего к теме статьи.

Отлично, все готово, и можно начинать. Следуя алфавитному порядку, начнем мы с медиаплеера 3Q F370HW, работающего на процессоре Realtek RTD1186 и прошитого «родной» заводской прошивкой.

Подсказка: начиная с 69-й секунды следует смотреть более внимательно.
А нетерпеливые могут перейти сразу к следующему ролику.

Вот она, первая удача! И вот он, «коварный тип гражданской наружности», наследник «кривого» SDK Realtek — самый настоящий фриз, проскочивший на 1412-м (3483-м) кадре видео! Мы намеренно замедлили в 20 раз следующий ролик, а точнее, смонтировали замедленный в 20 раз повтор и обвели красной рамочкой место кадра, на которое следует обратить взгляд. Заодно, для большей наглядности, поверх оригинального видео «подвешен» счетчик кадров самой видеокамеры (белые цифры в красном поле):

Кто-то сумел заметить этот фриз в видео, замедленном в двадцать раз? Если сумели — честь и хвала вашей внимательности. Какова длительность этого фриза? Благодаря имеющейся видеосъемке можно не гадать: картинка замерла на 2-4 кадра. Даже если взять максимум, четыре кадра, и вспомнить, что видео имеет частоту 50 кадров в секунду, несложно подсчитать результат: длительность фриза составляет менее одной десятой секунды (0,08). Для справки: время, затрачиваемое человеческим глазом на процесс моргания, составляет 0,3-0,4 секунды. Впятеро дольше, чем наблюдаемый фриз. А моргнув 30 раз в минуту, человек не видит пятую часть происходящего. Но это так, просто для информации, без далеко идущих выводов. А также в качестве пожелания составителям правил ловли фризов: думаем, есть необходимость внести в список условий еще одно, дополнительное. А именно — «не моргать».

Нужно отметить следующий факт: данный плеер эксплуатируется довольно длительное время. С его помощью было просмотрено, пожалуй, несколько десятков фильмов. Надо полагать, в их числе найдется немалая часть материала, имеющего частоту 23,976 (так называемые рипы). Однако все это время ни владелец, ни его домочадцы даже не предполагали, что их медиаплеер имеет столь уродливый изъян. Может, моргают часто?

Так что же делать? Смириться с невозможностью нормального просмотра тестовых файлов? Неужели нет выхода, решения проблемы? На интернет-просторах нашлась информация, что для данного плеера подходит прошивка от совсем, казалось бы, другого аппарата, носящего имя другого бренда: iconBIT XDS8003D. Странно, что прошивки их взаимозаменяемы, ведь iconBIT XDS8003D конструктивно отличается, хоть и построен на том же процессоре. Отличается хотя бы отсутствием встроенного жесткого диска. Ну да ладно, в этих аппаратно-программных хитросплетениях пусть разбираются инженеры, а нам, обычным потребителям, всего лишь интересно: будет ли плеер «фризить», если его прошивку подменить на созданную инженерами другого бренда?

Все в порядке, никаких фризов! Если, конечно, автор не проморгал. Похоже, начинает подтверждаться предположение, что исследуемая проблема кроется всего лишь в программной части, а следовательно, легко решаема.

Ну а что нам скажет следующий в очереди плеер, Fantec 3DFHDL? Процессор, на котором работает этот аппарат, отлично подходит для наших опытов — все тот же Realtek RTD1186. Повторим воспроизведение и на этом плеере, подключив его к тому же телевизору.

Ни единого намека на фризы. Кто виноват в их отсутствии? Снова наблюдаем работу доведенной до ума прошивки? Непорядок.

Наконец, подключим Gmini MagicBox HDR1100H. Этот плеер имеет уже другой процессор — Realtek RTD1283DDC+. Однако человеческая память устроена так, что после ознакомления с недостатками, к примеру, процессора Realtek RTD1186, она автоматически перенесет эти недостатки на все процессоры данного производителя. Таким образом, использование указанного плеера в наших опытах поможет пресечь зарождение мифа «Realtek = фризы».

Что ж, надеемся, теперь у читателя имя Realtek не будет ассоциироваться с фризами в воспроизведении видео. Данный плеер (процессор) воспроизводит тестовый контент плавно. В чем тут дело — в процессоре ли, в прошивке ли… Но факт: фризов нет.

Попытаемся резюмировать увиденное: вряд ли стоит бояться появления фризов при воспроизведении видеоконтента, имеющего частоту 23,976 кадров в секунду. Бояться, скорее всего, следует другого: постоянного мелкого противного дрожания, к которому большинство обывателей давным-давно привыкло. Так, например, выглядит на телевизоре тот самый тестовый ролик, когда его воспроизводишь с обыкновенного Android-телефона, имеющего HDMI-выход:

Что характерно: при просмотре этого самого же ролика непосредственно на экране телефона никаких подергиваний или фризов вы не увидите. Почему? Вряд ли кто-то сможет отрицать, что в процессе отображения видео, помимо плеера, участвует и ТВ либо проектор. В последних имеются свои собственные процессоры со своими алгоритмами обработки изображений, и в связи с этим существует вероятность, что в реальности картинка выводится на экран с заметно большей частотой, чем ≈24 fps. А уж каким образом ТВ или проектор создают дополнительные кадры — это отдельный вопрос. Который, напомним, никто не изучал.

Наконец, самое важное. Касающееся исключительно тех читателей, которые впервые услышали о фризах. Заметить эти фризы очень непросто. Даже если вы соблюли все необходимые условия для их, казалось бы, гарантированного получения. Замирания могут наблюдаться преимущественно в долгих и плавных сценах, например при медленном панорамировании либо изменении фокусного расстояния камеры, при плавных и длительных передвижениях по экрану статичных объектов (титры, слайдшоу и т. д.). В качестве примера давайте взглянем на процесс воспроизведения панорамы, полноцветной и красивой, плеером, который в процессе наших опытов зарекомендовал себя как склонный к фризам — 3Q F370HW с заводской прошивкой:

Вопрос: по какой причине в этой красивой панораме мы не наблюдаем задержек, замираний, фризов? Они просто обязаны присутствовать, ведь при воспроизведении тестового файла с белыми полосочками они есть! Плеер — тот же, процессор — тот же, прошивка — та же, телевизор, способ подключения, видеорежимы — все то же самое, что и в опыте с бегающими полосками. Почему же здесь фризов не наблюдается? Подумав, ответим: по всей видимости, момент появления фриза не совпал со временем демонстрации панорамы (сомнительный вариант), либо длительность панорамы не позволила отметить факт фриза (а кто хоть раз наблюдал в фильмах панорамы длительностью хотя бы полминуты?). Хуже того: периоды появления фризов абсолютно случайны, хотя многие и пытаются вывести некую формулу дискретности. Моменты появления замираний также не поддаются прогнозированию: при повторном запуске одного и того же файла очередное замирание обязательно появится в другом месте, если вообще появится.

Впрочем, все может быть иначе: фриз мог присутствовать, но мы его не заметили. Период появления фризов равняется 41,6 секунды (имеются сведения, что данная цифра получена не только методом подсчета, но и в результате проверки специальным прибором). Таким образом, велик риск, что мы этот момент элементарно прозевали. Моргнули, например, или бросили взгляд на наручные часы. А может, засмотрелись на крыши домов в панораме, либо были заняты подсчетом количества этажей в одном из зданий — это все-таки интереснее, чем разглядывать снующие по экрану прямоугольники.

Впрочем, главное — это захотеть. Если однажды у вас получится увидеть вожделенное подергивание, знайте: с этого момента вы станете наблюдать его всегда. Одно утешает: в своем окне вы никогда не увидите фризов. У жизни неподходящая для этого частота кадров.

Своевременная подсказка одного из уважаемых коллег заставила проверить «на стойкость к фризам»… обычный компьютер. Для этого один из мониторов был заменен на телевизор, подключение к которому производилось по HDMI (видеокарта Nvidia GeForce GTX460). «Прогнав» на телевизоре тот самый тестовый видеофайл, мы, почему-то без удивления, стали наблюдать все те же те самые фризы. Выбор видеоплеера не играл никакой роли, были испробованы несколько программ: Windows Media Player, KMPlayer, Daum PotPlayer. Все они отчетливо продемонстрировали знакомые нам кратковременные замирания бегающих прямоугольников, но лишь на телевизоре. Обычный же монитор почему-то упорно отказывается «замерзать». Вполне возможно, проблема фризов, ежели таковая и существует, кроется гораздо глубже, и никоим образом не касается лишь одного разнесчастного процессора c именем Realtek. Однако углубленно исследовать эту проблему мы все же хотим предложить в первую очередь адептам теории. Мы же ею планируем заняться не раньше, чем в глазах перестанут бегать палочки.

25 февраля 2013 Г.

: 23,976

« -, , - ?»
( , « »)

 

«» ( freeze — , ) — «» . , . , ( , — ). , — « » , , .

, , , , . : , , 23,976 24 .

, : — 23,976 ( 59,94)? , . . , , , . ? , Blu-ray? — , . — , « », . , .

- — — , «» ? , , , . «», , . , , ( , ?). : … , , . — , , . : , (, 23,976, 24 ). - , , . ( - ? . , - — .) , , , , … ?

, , - ́. , , : , « » -, . , .

, , : . , , , -. .

, . .

***

— , . iXBT.com. « 23,976fps ». .

(, n- ) , , . , . :

  • ( , , -)
  • , ,
  • 1080p 24 ,
  • ( )
  • , 1080p 24

, , :

  • , Realtek RTD1073 ( 1273, 1186)
  • 24

, , . , :

, , , .

? «». , , . , .

, - . : . , . , , . ? .

, . , . — . ( , , «»), . , :

. - ( ), . . , . , , . ? «». Toshiba - «», BBK, . , : . , 24 .

. 3D- Samsung UE55D8000, 24- . , . ? (?) ? , : . , , . … , . , , , 24 (). — ! — .

, . 1920×1080 50 . PAL. NTSC/PAL , ( + , ).

, , NTSC, «» PAL, 1080 50p. , , , 24- . , 24 , , . , . , 100.

: . ? , . ? . , , . 1920×1080 23,976fps, H.264 High@L5.1? , AVC, AVI? , , , . , . , , . , , , . , , . , -. - , , .

, , . , 3Q F370HW, Realtek RTD1186 «» .

: 69- .
.

, ! , « », «» SDK Realtek — , 1412- (3483-) ! 20 , , 20 , . , , «» ( ):

- , ? — . ? : 2-4 . , , , 50 , : (0,08). : , , 0,3-0,4 . , . 30 , . , , . : , , . — « ».

: . , , . , , 23,976 ( ). , , . , ?

? ? , ? - , , , , : iconBIT XDS8003D. , , iconBIT XDS8003D , . . , - , , , : «», ?

, ! , , . , , , , .

, Fantec 3DFHDL? , , — Realtek RTD1186. , .

. ? ? .

, Gmini MagicBox HDR1100H. — Realtek RTD1283DDC+. , , , Realtek RTD1186, . , «Realtek = ».

, , Realtek . () . — , … : .

: , 23,976 . , , : , - . , , , Android-, HDMI-:

: . ? - , , , . , , , ≈24 fps. — . , , .

, . , . . , , . , , (, . .). , , , — 3Q F370HW :

: , , ? , ! — , — , — , , , — , . ? , : , ( ), ( ?). : , . : , .

, : , . 41,6 ( , , ). , , . , , . , , — - , .

, — . , : . : . .

« »… . , HDMI ( Nvidia GeForce GTX460). «» , , - , . , : Windows Media Player, KMPlayer, Daum PotPlayer. , . - «». , , , , c Realtek. . , .