Ru-Board.club
← Вернуться в раздел «Программы»

» Media Player Classic - Homecinema (MPC-HC)

Автор: Bladru
Дата сообщения: 11.11.2009 14:58
rodrigo2

Цитата:
1. Правильно ли я понимаю, что настройка определяет, в какой разрядности будет выходить цвет из рендерера "по дороге" в драйвер?

Да.

Цитата:
2. Почему выбор возможен только для EVR custom?
3. Правильно ли я понимаю, что во всех прочих рендерерах жестко установлен выход "0-255"?

Важен не только выходной диапазон, но и входной. Наиболее надёжный способ избежать проблем с цветовыми пространствами и левелами — использовать ffdshow для преобразования в RGB или Haali renderer.


Цитата:
Значит ли это, что реализация шейдера "ВТ.601 -> BT.709" - неверна?

Не значит. Какая разница, что на входе: 0-1, 16-235 или 0-255 — всё равно на выходе получим тот же диапазон.
Автор: rodrigo2
Дата сообщения: 11.11.2009 22:40
Bladru

Цитата:
Важен не только выходной диапазон, но и входной

Да, безусловно.

Цитата:
Наиболее надёжный способ избежать проблем с цветовыми пространствами и левелами — использовать ffdshow для преобразования в RGB или Haali renderer.

Я пользуюсь встроенными декодерами МРС-НС, иногда подключаю декодер Cyberlink H264 - вроде как в данных декодерах не происходит искажения цвета?
Или же другие рендереры, доступные из МРС-НС, грешат в конверте YCbCr -> RGB ?

Насчет ffdshow - это мощный и опасный инструмент.
Мне не хочется подключать этот фильтр, потому что из-за него не будет DXVA.
А если и подключить его, пожертвовав DXVA, - надо знать, как его настраивать.
Я не понимаю, что произойдет, если ffdshow поручить преобразование YCbCr в RGB.
Как он затем будет стыковаться с любым рендерером?
Разве рендерер не ждет в качестве входного YCbCr-поток?

Насчет Haali Renderer. В чем его преимущества в сравнении с, допустим, VMR9 renderless? Смогу ли я отображать сабы? Не сломается ли DXVA?


Цитата:
Не значит. Какая разница, что на входе: 0-1, 16-235 или 0-255 — всё равно на выходе получим тот же диапазон.

Нет, не понимаю.
Даже если не вдаваться в физ. смысл, видно, что выходной результат шейдера определяется коэфф-тами.
А если коэфф-ты подобраны именно исходя из предположения, что входной цвет - суть ЦЕЛОЕ число в базисе 16-235, значит, текущая реализация шейдера заточена именно на данный формат.
А это никак не вяжется со структурой шейдеров перевода "16-235 <-> 0-255", вкоторые на вход подается вещественный цвет 0..1.
Апдейт.
Да, Вы правы, с матем. точки зрения разницы нет.

Я пересчитал по правильным коэфф-там, на выходе получится одно и тоже:
Было:
Код:     // RGB [16,235] to YUV: 601 mode (128 is not added to Cb and Cr)
    float y=0.299*c0[0] + 0.587*c0[1] + 0.114*c0[2];
    float Cb=-0.172*c0[0] -0.339*c0[1] +0.511*c0[2];
    float Cr=0.511*c0[0] -0.428*c0[1] -0.083*c0[2];

    // YUV to RGB [16,235]: 709 mode (Cb and Cr are 128 less)
    float r=y+1.540*Cr;
    float g=y-0.459*Cr-0.183*Cb;
    float b=y+1.816*Cb;
Автор: Antonij72
Дата сообщения: 12.11.2009 00:30

Цитата:
Antonij72, семпл можешь выложить?

Как сделать семпл? Чем разрезать файл?
Автор: Aleksoid1978
Дата сообщения: 12.11.2009 01:23
Antonij72

VirtualDUB - только без перекодировки
Автор: Bladru
Дата сообщения: 12.11.2009 03:10
rodrigo2

Цитата:
Или же другие рендереры, доступные из МРС-НС, грешат в конверте YCbCr -> RGB ?

Угу. Основная проблема в том, что на разных комбинациях ОС+рендерер+видеокарта+разрешение видео выплывают проблемы с диапазоном. Легко заметить, т.к. чёрный становится серым и все остальные цвета тускнеют. В добавок к этому VMR7 и VMR9 используют коэффициенты BT.709 только для видео >=720p. Т.е. если в HD рипе обрезали чёрные полосы сверху и снизу, цвета будут отображаться немного неверно. Это менее заметно.

Цитата:
Насчет Haali Renderer. В чем его преимущества в сравнении с, допустим, VMR9 renderless? Смогу ли я отображать сабы? Не сломается ли DXVA?

Тема на doom9. Субтитры работать будут, DXVA — нет. Преимущества перед VMR9 в несколько более быстром алгоритме ресайза (bicubic), удобных настройках и, как следствие, в отсутствии проблем с цветами. Плюс, с Haali renderer'ом отлично работает CoreAVC.

Цитата:
Я не понимаю, что произойдет, если ffdshow поручить преобразование YCbCr в RGB.
Как он затем будет стыковаться с любым рендерером?
Разве рендерер не ждет в качестве входного YCbCr-поток?

Рендереры большое количество форматов поддерживают, RGB в их числе. Преобразование в RGB через ffdshow позволяет контролировать этот процесс (в отличие от VMR9 и ниже). Если позволяют ресурсы процессора, можно включить High qulity mod и Dithering. Это улучшает качество chroma upsampling.
Лично я преобразование через ffdshow включаю, в основном, в тестовых целях. А для воспроизведения видео использую Haali. На Athlon 64 3000+ и Nvidia 5900XT видео 720p H.264 воспроизводится без тормозов через декодеры ffdshow.

Цитата:
А если и подключить его, пожертвовав DXVA, - надо знать, как его настраивать.

Там не так много настроек, да и с дефолтными значениями всё хорошо работает.

Цитата:
А если коэфф-ты подобраны именно исходя из предположения, что входной цвет - суть ЦЕЛОЕ число в базисе 16-235, значит, текущая реализация шейдера заточена именно на данный формат.
А это никак не вяжется со структурой шейдеров перевода "16-235 <-> 0-255", вкоторые на вход подается вещественный цвет 0..1.

Понял о чём ты. Насколько я вижу, скрипт использует значения 0-1 (R'G'B'). Просто комментарии вводят в заблуждение.

Добавлено:
Увидел исправленный вариант поста. С математической точки зрения совпадает только для 0-255. Для 16-235 — нет. Но на основе чего ты коэффициенты-то пересчитывал?
Автор: rodrigo2
Дата сообщения: 12.11.2009 04:15
Bladru
Все-таки - насчет "Renderer settings", выбор разрядности выходного RGB - у меня остались вопросы:
1. Почему выбор возможен только для EVR custom?
2. Правильно ли я понимаю, что во всех прочих рендерерах жестко установлен выход "0-255"?


Цитата:
В добавок к этому VMR7 и VMR9 используют коэффициенты BT.709 только для видео >=720p. Т.е. если в HD рипе обрезали чёрные полосы сверху и снизу, цвета будут отображаться немного неверно.
Блин, а про обрезку полос я и не подумал.
Тогда, вестимо, для обрезанного рипа будет ошибочно задействоваться ВТ.601.
ОК, в wiki на ffdshow приведен алгоритм выбора между ВТ.601 и ВТ.709, в котором анализируется не только высота кадра, но и ширина:
Код: width > 1024 or height >= 600: BT.709
width <=1024 and height < 600: BT.601
Автор: Antonij72
Дата сообщения: 12.11.2009 04:21

Цитата:
Запустил один avi-файл. MPC-HC (b.1323) ругнулся на декодер и начал показывать черный экран. Сменил у этого файла расширение на mp4 - видео начало проигрываться без проблем.


Цитата:
Antonij72, семпл можешь выложить?

Засунул в ДАБ, выбрал "Прямопотоковое копирование", отрезал, чтобы осталось 2 первых минуты видео, выбрал "Файл" - "Сохранить как AVI".
Полученный файл прекрасно проигрывается программой - и как AVI, и как MP4....
Автор: vitsat
Дата сообщения: 12.11.2009 05:07
Antonij72, наверное кто-то криво в AVI замуксил (перед тобой), поэтому не игрался.
Автор: Antonij72
Дата сообщения: 12.11.2009 06:09
Скорее всего. Плохо, что MPC-HC не понимает этого. Понимает только когда носом ткнёшь, сменив расширение (а файл был на раздаче в торренте - пришлось уйти с раздачи, а это нехорошо).
Автор: qwertyop
Дата сообщения: 12.11.2009 10:33
Antonij72, тогда стоило бы привести информацию MediaInfo из раздела "General", где и пишется формат контейнера "Format : MPEG-4" или "Format : AVI".

Хотя сведения из раздела "Video", тоже, вроде, подтверждают, что это был AVI переименованный в MP4. "Format : MPEG-4 Visual", как-раз характерен для AVI, для MP4 было бы "Format : MPEG-4".

У меня, если переименовать MP4 файл в AVI, а AVI в MP4, они всё-равно, прекрасно открываются. Т.е. MPC-HC распознаёт форматы не привязываясь расширению.
Автор: Antonij72
Дата сообщения: 12.11.2009 11:51
qwertyop, дык, как avi файл и не воспроизводится. Воспроизводится только при смене расширения на mp4.


Цитата:
Antonij72, тогда стоило бы привести информацию MediaInfo из раздела "General", где и пишется формат контейнера "Format : MPEG-4" или "Format : AVI".



Код: General
Complete name : K:\Films\Pirates 2 part 1.mp4
Format : AVI
Format/Info : Audio Video Interleave
File size : 965 MiB
Duration : 2h 14mn
Overall bit rate : 1 005 Kbps
Автор: Leo1000
Дата сообщения: 12.11.2009 12:36
Antonij72

Цитата:
Воспроизводится только при смене расширения на mp4

Возможно, при этом используется иной фильтр.
Автор: Antonij72
Дата сообщения: 12.11.2009 12:50

Цитата:
Цитата:Воспроизводится только при смене расширения на mp4

Возможно, при этом используется иной фильтр.


По-моему, если программа видит, что с данным фильтром видео не воспроизводится, она должна попробовать другой (фильтр). И, только перепробовав все фильтры, ругаться, что видео некорректно. А то как-то неправильно: с расширением AVI файл не воспроизводится, а с расширением mp4 этот же файл воспроизводится без проблем... Причем видеокодек XVID.
Автор: Leo1000
Дата сообщения: 12.11.2009 12:54
Antonij72
Я не кодек имею в виду, а именно фильтр. Возможно, при смене расширения на mp4 файл открывается, допустим, через Haali Media Splitter, а не внутренним.
Автор: qwertyop
Дата сообщения: 12.11.2009 13:03
Antonij72
Цитата:
По-моему, если программа видит, что с данным фильтром видео не воспроизводится, она должна попробовать другой (фильтр). И, только перепробовав все фильтры, ругаться
Так в том-то и оно, что это 100% AVI, программа определила его правильно, и то что он открылся для прямопотокового копирования в VirtualDub, лишний раз это подтверждает. С настоящими MP4 этот фокус не пройдёт.

Форматов десятки, если не сотни, их всех перебирать? На каком-нибудь программа просто зависнет и уже ничего не покажет и ругаться не будет.

Leo1000
Цитата:
Я не кодек имею в виду, а именно фильтр. Возможно, при смене расширения на mp4 файл открывается, допустим, через Haali Media Splitter, а не внутренним.
Кстати да, можно указать Haali взять на себя и AVI файлы, а встроенный фильтр отключить, возможно тогда, будет открываться нормально и как AVI. Хотя встроенный то же должён открывать.
Автор: vladislavovich
Дата сообщения: 12.11.2009 13:53
кто нибудь знает горячую клавишу для переключения дорог ?
Автор: Antonij72
Дата сообщения: 12.11.2009 14:14
vladislavovich
Настройки -> Проигрыватель -> Клавиши. Можно назначить какие хотите.
Автор: Bladru
Дата сообщения: 12.11.2009 19:57
rodrigo2
Про коэффициенты отписал в теме на doom9. Мне как-то не приходило в голову, что они могут быть посчитаны неверно.

Цитата:
Честно говоря, я не понимаю, что ты подразумеваешь под "только для 0-255. Для 16-235 — нет".

Я имел в виду, что если мы на вход этого кода дадим [0-255], а не [0-1], то на выходе всё равно получим правильные значения. Но если на входе будет [16-235], то значения на выходе будут неверными.

Цитата:
Все-таки - насчет "Renderer settings", выбор разрядности выходного RGB - у меня остались вопросы:
Почему выбор возможен только для EVR custom?

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

Цитата:
2. Правильно ли я понимаю, что во всех прочих рендерерах жестко установлен выход "0-255"?

Нет. Ну, то есть, "выход" то может установлен жёстко, а глючит "вход". Но в итоге мы часто имеем неправильный диапазон на выходе рендерера (16-235 вместо 0-255).

Цитата:
А если использовать дубовый подход - шейдер "ВТ.601 -> ВТ.709" с раскомментированным условием

С другой стороны, ничто не мешает дописать условие:

Код: #define height (p0[1])
#define width (p0[0])

if (height < 600 && width < 1025) {return c0;}
if (height > 719) {return c0;}
Автор: rodrigo2
Дата сообщения: 12.11.2009 21:57
Bladru

Цитата:
Нет. Ну, то есть, "выход" то может установлен жёстко, а глючит "вход". Но в итоге мы часто имеем неправильный диапазон на выходе рендерера (16-235 вместо 0-255).
Ну да, но мне кажется, что это будет в том случае, если декодер выдает YCbCr в некорр. виде.
К примеру, CoreAVC имеет настройку Output levels (0-255 или 16-235), при этом речь явно идет о YCbCr. Считал, что рендерер ожидает YCbCr с luma=16-235, посему смысл этой настройки для МРС-НС мне был непонятен.
Встроенные декодеры МРС-НС (а также декодеры Cyberlink) настроек выходных уровней не имеют - тогда предположу, что они всегда выдают YCbCr c luma=16-235.
Из-за чего еще может исказиться вход? Из-за глюков самого рендерера?
Цитата:
Если делаешь RGB преобразование через ffdshow, то любой кроме Overlay (он только YUV на вход принимает). Если нет, тогда вообще любой
Если глючит "вход" рендерера, тогда поможет только замена рендерера.

Попробую обобщить:
- предполагаемый недостаток VMR9 и его собратов - это задействование ВТ.601 на ХД-рипах; проблема устраняется коррекцией шейдера "ВТ.601 -> BT.709"
- другой предполагаемый недостаток VMR9 и его собратов - искажение входных данных; проблема лечится переходом на Хаали-рендерер
- предполагаемый недостаток декодеров - неправильные уровни отдаваемых YCbCr; так вроде в декодерах (кроме ffdshoq & CoreAVC) невозможно менять настройки выходной разрядности RGB.

Непонятно мне насчет "входа" рендерера.
Как рендерер определит, что декодер уже сделал преобразование YCbCr -> RGB и что уже не стоит пытаться его декодировать?
Автор: Bladru
Дата сообщения: 13.11.2009 00:50
rodrigo2

Цитата:
предполагаемый недостаток декодеров - неправильные уровни отдаваемых YCbCr; так вроде в декодерах (кроме ffdshoq & CoreAVC) невозможно менять настройки выходной разрядности RGB.

Учитывая, что VMR9 ожидает разные уровни на входе не только в зависимости от разрешения видео, но и в зависимости от видеокарты и ОС, сложновато списать это на проблемы декодера. К тому же в обоих декодерах выходные уровни как раз таки меняются. Но в ffdshow только если преобразование в RGB делается через него.

Цитата:
проблема лечится переходом на Хаали-рендерер

Или использованием шейдера "16-235 -> 0-255 [SD]". Только его стоит отключать при воспроизведении форматов с полным диапазоном (Fraps, M-JPEG, DV).

Цитата:
Как рендерер определит, что декодер уже сделал преобразование YCbCr -> RGB и что уже не стоит пытаться его декодировать?

Эм, RGB и YCbCr это два семейства принципиально различающихся форматов потока. Когда декодер подключается к рендереру он сообщает ему формат данных, которые будет передавать. И если рендерер от него отказывается, то декодер меняет либо формат, либо рендерер.
Автор: rodrigo2
Дата сообщения: 13.11.2009 01:48
Bladru
Большое спасибо за терпеливые ответы .
Собственно, цель моих вопросов - рекомендации по получению максимально достоверной цветности.
Сейчас слегка приболел, голова не варит; чуть позже попытаюсь все обобщить и Вам показать .
Автор: RussianNeuroMancer
Дата сообщения: 13.11.2009 03:11
sola
Ответ на сообщение:
Цитата:
да, я и раньше замечал что черестрочку хреново плеер обрабатывет, но такой экземпляр попался впервые - тут просто из рук вон плохо играет...
если вырубить декодер DXVA, то вообще черный экран и время не двигается... ffdshow тоже дергается по полной, но он хоть как-то играет
 
з.ы. в общем, после экспериментов удалось добиться нормального проигрывания со след. настройками: хаали сплиттер, встроенный декодер неDXVA и рендерер по умолчанию (для ХР это кажется WMR7 windowed)
все как бы хорошо, вот только этот рендерер не позволяет перетянуть плеер на телевизор просто черный экран
В 1330 пофиксили воспроизведение в режиме DXVA - семпл теперь показывает, но видео дёргается.
Автор: sola
Дата сообщения: 13.11.2009 09:54
RussianNeuroMancer
спасибо за информацию, попробую обновиться

з.ы. не-а, у меня без изменений, все точно так же осталось на VMR9 (renderless)
Автор: Talon
Дата сообщения: 14.11.2009 03:53
Aleksoid1978

Цитата:
Сам давно биндю некоторые кнопки(типа перемотки вперед назад меняю с Ctrl+left/right на просто left/right) - не разу не слетали, если только не юзать всякие твикеры/чистильщики реестра(типа Jv16 или Vista Manager) - вот после их работы слетают свои настройки для клавиш.

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


Цитата:
Еще можеш попробовать хранить настройки в реестре, а не в .ini

но ведь именно эта настройка влияет на возможность запоминания местоположения прервавшегося фильмя (remember DVD position и Remember File Position) - мне они важны - часто прерываюсь....
Автор: Aleksoid1978
Дата сообщения: 14.11.2009 10:30
Talon

Цитата:
я много кнопок биндю под пульт.... еслиб пару биндов как у тебя то е дотставало бы...


А я написал свою прогу для пульта от тюнера Beholder ... и ниче биндить не надо ))
Автор: iRevenge
Дата сообщения: 14.11.2009 10:37
Aleksoid1978

а потестить вашу программу можно?
Автор: dmkov9
Дата сообщения: 14.11.2009 11:39
Подскажите. Не могу настроить нормально пульт от ноутбука Pavilion dv-5. Winlirc вообще не видит ИК. Подскажите какой есть выход.
Автор: melnikover
Дата сообщения: 14.11.2009 14:36
У меня было две проблемы.
1. Изображение шло не ровно а рывками. Устранил с помощью проги ReClock и выставлением монитора на 50Гц.
2. Tearing. Если навести пример, то в фильме "Хулиганы" 2005г. на 2мин. 40сек. камера снимает дом с низу вверх и все в этом доме дребезжит (надпись над дверью, подоконник, края балкона...). Переустановил виндовс ХР, поставил последние драйвера к карте (radeon 4670) после драйверов (мамка, карта и директ) поставил MPC-HC и больше ничего не ставил. Пробовал разные рендереры, менял настройки, пробовал разные вертикальные синхронизации, но ничего не помогает((((. Что это может бить??? Кстати такое не только с использованием Dxva а и без него и даже на простых двдрипах!!


Автор: qwertyop
Дата сообщения: 14.11.2009 15:09
melnikover, во-первых, MPC-HC у вас не самый свежий, во вторых в VMR9, как на скрине в XP и будет всё дёргаться, так как заставить в этом режиме работать вертикальную синхронизацию на Родионах ещё никому не удавалось и не только для MPC-HC. Вибирайте либо VMR7 (windowed) для лучшей скорости, либо EVR (какой больше понравится) для большей функциональности, там VSync работает.

Для EVR под XP требуется .NET Framework 3 или (лучше) выше.

До кучи, если нехотите такую полосатость:

на равномерных участках видео в режиме DXVA, то в CCC - Avivo Video - All settings - снимаем галочку с Enable Dynamic Contrast.
Автор: melnikover
Дата сообщения: 14.11.2009 15:42
qwertyop
Спасибо за ответ!!)
1. В шапке этой темы пишет что мой MPC-HC " Последняя стабильная версия", или лучше какую то другую скачать??
2. В VMR7 (windowed) у меня все ровно дергает(((
3. В EVR(VISTA\Net3) у меня полный тормоз (дерганые не пропало), а EVR польз. вообще выбивает.


Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: Babylon v8.0.0 r18-ZWT


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.