LINUX.ORG.RU

Как правильно смотреть кино в линуксе?

 


0

1

Идеальный modeline
Screenshot
(Касается исключително x11 , а ваших вейландах это автоматически кажется и там просто включаете режим 23.976 в gui)

23.976 сопоставлено с кинематографическим восприятием мозга, и существует уже сотню лет в неизменном виде для всех художественых фильмов, естестнвенно снятых на плёнку иначе это трудно назвать КИНО, а большая частота покажется «мыльной» оперой.

(Цифры из моего Sony TV kdl-32ex402 1080p , так как там заявлено только 24Hz попытаюсь создать идеальный modeline для 23.976)

Определяю путь и считываю edid через пакет edid-decode (в репах есть):
(смотрю что подключено)

user-pc1@my-pc:~$ xrandr | grep " connected"
eDP-1 connected (normal left inverted right x axis y axis)
HDMI-2 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 1600mm x 900mm
user-pc1@my-pc:~$

(Смотрю как ядро назвывает выход)

user-pc1@my-pc:~$ ls /sys/class/drm/
card0  card0-DP-1  card0-DP-2  card0-eDP-1  card0-HDMI-A-1  card0-HDMI-A-2  renderD128  version
user-pc1@my-pc:~$ 

(Считываю сам edid подставляя правильный путь)

user-pc1@my-pc:~$ edid-decode /sys/class/drm/card0-HDMI-A-2/edid

Смотрю значения и рсчитываю: Modeline «Имя_Режима» [Pixel_Clock] [H_Act] [H_Start] [H_End] [H_Total] [V_Act] [V_Start] [V_End] [V_Total] [Флаги]
(Смотрю «VIC 32» он для 24Hz и параграф «Detailed Timing Descriptors: 1920x1080@60Hz» там есть цифры котрые не изменны и в 23.976 Hz)
«Имя_Режима» - назыаем например «Sony_1920x1080_23.976»
Вертикаль говорят всегда одинаковая в edid и совпадает и для 23.976Hz
у меня в Detailed Timing Descriptors вот так:

[V_Act] - это сколько пикселей по вертикали , у меня 1080  
[V_Start] = V_Act + Vfront , у меня 1080 + 4 = 1084  
[V_End] = V_Start + Vsync , у меня 1084 + 5 = 1089  
[V_Total] = V_End + Vback , у меня 1089 + 36 = 1125

Горизонтальные импульсы (Hsync и Hback) — они тоже неизменны

Hsync у меня = 44
Hback у меня = 148
H_Act это сколько пикселей по горизонтали , у меня 1920

Беру VIC 32: 1920x1080 24.000000 Hz 16:9 27.000 kHz 74.250000 MHz и считаю полную ширину кадра она будет такой же и в 23.976 [H_Total]

  1. Заводской Pixel Clock = 74 250 000 Гц (74.25 MHz)
  2. Заводская строчная развёртка = 27 000 Гц (27.000 kHz)
  3. Заводская частота кадров = 24.000000 Гц
74250000/27000=2750

Беру общую ширину кадра 2750, которую выдали частоты телевизора, и вычитаю из неё неизменные импульсы матрицы (Hback 148 и Hsync 44):

[H_Total] = 2750
[H_End] = 2750 - 148 = 2602
[H_Start] = 2602 - 44 = 2558
[H_Act] = 1920

Для частоты пикселей беру родную киноскорость телевизора 74 250 000 Гц и делю её на коэффициент 1.001, который является физическим законом для получения дробного кадра 23.976

74250000/1.001 ~74175824.17582417582417582418 (~74.176 МГц) X-сервер поддерживает ровно 6 знаков после запятой и строго в мегагерцах 74.175824 МГц
[Pixel_Clock] = 74.175824

Hpol P Vpol P флаги полярности из edid = +hsync +vsync

Получился такой modeline:

Modeline "Sony_1920x1080_23.976"  74.175824  1920 2558 2602 2750  1080 1084 1089 1125 +hsync +vsync

P.S. google AI помог в создании



Последнее исправление: Dimez (всего исправлений: 2)
Ответ на: комментарий от endspiel

Попробуй, он сам себе графический сервер, запускай из tty. Когда запускаешь из другого графического сервера, на kodi будут наложены его ограничения.

anonymous
()

Набрать xrandr --verbose, взять оттуда текущие настройки и просто снизить им пиксельную частоту до нужной - не годится? Я не проверял такие низкие частоты, но это было бы намного проще чем эта длинная инструкция.

23.976 сопоставлено с кинематографическим восприятием мозга

24 от 23.976 ты не отличишь никак. И никакого сакрального смысла в 23.976 нет, все эти дробные частоты (и 29.97 например) появились как технический костыль к некоторым проблемам впихивания телевизионного сигнала в радиоканал при переходе от чёрнобелого к цветному формату (см. историю NTSC) - там просто чуть изменили опорную частоту чтобы она с чем-то там меньше конфликтовала.

на коэффициент 1.001, который является физическим законом для получения дробного кадра

Ты это сам писал? Что это за бредовая фраза?

-----

Смысл в 23.976 может быть вот какой: если видео снято в 23.976, то идеально смотреться оно будет на мониторе, у которого частота кадров кратна этой величине (т.е. 23.976 или 47.952 или 71.928 или 95.904 - все варианты будут одинаково хороши). Причина тут исключительно в том, чтобы смена кадров просматриваемого видео могла совпадать со сменой кадров, рисующихся на экране, иначе начинаются те или иные эффекты неточности отображения.

Точно то же самое касается частот 29.97, 30, 59.94 и 60 Гц. Впрочем, для частот 30 и 60 обычно всё и так хорошо (обычная частота мониторов или 60 или 120, то есть они годятся для таких видео без артефактов), а для 29.97 и 59.94 кто-то может захотеть что-то скорректировать.

Но большинству пофиг т.к. если не приглядываться усиленно то нигде ничего не заметишь. Масштаб проблемы вот какой: если смотреть 23.976 Гц видео на 24 Гц мониторе, то один раз в 40 секунд будет вставляться лишняя 40-миллисекундная (1 кадр) задержка. Я даже не уверен что это возможно заметить.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 3)
Ответ на: комментарий от firkax

я не проверял откуда xrandr берёт цифры, а я доверился edid-decode он считывает edid напрямую
Изменили 24 на 23.976 что бы впихнуть звук когда он появился в индустрии, и коэфицент 1.001 как раз от туда и взялся.
Дело в том что плеер будет коректировать накопившееся отставание и чем больше разница в герцовке видео и монитора тем чаще будут микрорывки.

endspiel
() автор топика
Ответ на: комментарий от endspiel

я не проверял откуда xrandr берёт цифры, а я доверился edid-decode

xrandr показывает что используется сейчас. Откуда иксы эту настройку взяли - не важно, важно что она уже работает (ты ж видишь картинку), а больше ничего не требуется. Но если у тебя рабочий EDID то и иксы скорее всего взяли настройку оттуда, но повторюсь это не важно.

Изменили 24 на 23.976 что бы впихнуть звук

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

Дело в том что плеер будет коректировать накопившееся отставание ... микрорывки

Не отставание и не микрорывки, а убегание (на экране кадры идут быстрее чем в видео) и микропаузы. Разница в 1/1000, пауза на 1 кадр (40 миллисекунд) каждые 40 секунд. Думаю это крайне сложно заметить.

И не думаю что видео, снятое в 23.976, сейчас часто встрачается, всё-таки это старое всё и, насколько я посмотрел, в основном в Штатах использовалось, а в Европе другие стандарты.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария