Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Media Player Classic - HomeCinema (MPC-HC)

Модерирует : gyra, Maz

Widok (17-05-2010 12:16): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

arestarh1986



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Речь пойдет о Media Player Classic-Home Cinema Mod(MPC-HC) и его особенности - поддержке DXVA.
 
Немного о такой спецификации, как DXVA:
DXVA - Microsoft API спецификация для Microsoft Windows и  Xbox 360 платформ, позволяющая процессу декодирования видео быть аппаратно усиленным. Т.е., дает возможность видеоадаптеру расгрузить процессор при декодировании видео, что актуально при нынешнем широком распространении High Definition(HD) видеоконтента.
Существует два вида DXVA:  
1. Hardware assisted decoding(процесс декодирования совместно GPU(графический процессор) видеоадаптера и software декодером(CPU), т.е. видеоадаптер берет на себя лишь часть работы). На практике, данные технологии были реализованы ведущими производителями видеокарт и известны как ATI Avivo и NVIDIA Purevideo.
2. Full bitstream decoding(когда видеоадаптер выполняет все части процесса декодирования, плеер должен только отдавать/принимать потоки информации). На практике, данные технологии были реализованы ведущими производителями видеокарт и известны как ATI Avivo HD и NVIDIA Purevideo HD.

DXVA 1.0, которая была введена как стандартный API с Windows 2000 и Windows 98 или выше, может использовать метод вывода overlay или VMR 7/9. DXVA 2.0, доступна только для Windows Vista или более новых ОС, интегрируется с Media Foundation (MF) и использует Enhanced Video Renderer (EVR), которые есть в MF и позволяет делать больше операций, включая захват видео и его обработку, с аппаратным усилением.
Чем же нам поможет MPC-HC ? HD-видео может быть сжатым кодеками семейства H.264(а именно библиотекой x.264) и VC1) в форматах mkv, mp4 и т.д., потоками стандарта MPEG-2 (например, записи со спутника или HD-камкордера) в форматах ts, m2ts и т.д.  
Важно: MPC-HC поддерживает лишь второй вид акселерации(Full bitstream decoding) и может декодировать контент, сжатый кодеками x.264 и VC1, а также MPEG-2*.
 
Как же узнать, поддерживает(все пункты по своему подходят) или будет ли поддерживать(пункты 1 и 3 подходят) моя видеокарта DXVA ? Не стоит забывать о полной и неполной поддержке DXVA(пункт Важно). Я считаю, можно пойти двумя путями(может и тремя):
1. разработчики данного плеера говорят о поддерживаемых видеоадаптерах так: ATI Radeon™ HD, ATI HD (2400/2600 - возможно, но не точно)/3850/3870/4850/4870, AMD Hybrid CrossFireX™ 780G серии для H.264 & VC-1 или nVidia GeForce 8500, 8600, 9600 или лучше/старше, а также, от недавнего времени, ввели поддержку интегрированного GPU от Intel - на чипсете G45(пока в стадии отладки).
2. использовать утилиту DXVAChecker(для запуска необходимо наличие в Windows XP - Visual C++ 2005 SP1 Runtime и .NET Framework 2.0, а  в Windows Vista - Visual C++ 2005 SP1 Runtime), где нас будут интересовать подчеркнутые строки, сигнализирующие о поддержке DXVA(записи вида: *ModeVC1_MoComp* или *ModeVC1_PostProc* и т.д. говорят о частичной поддержке DXVA, т.е. ускоряются через GPU видеоадаптера в данном случае не самые ресурсоемкие подпроцессы декодирования)

Процедура декодирования HD контента разбита на четыре этапа, выполняющихся в следующем порядке:
1) VLD (Variable-Length Decode) или Bitstream processing.
Графический процессор осуществляет восстановление описывающей изображение матрицы коэффициентов из исходного видеопотока. В большинстве случаев извлеченный из носителя видеопоток отправляется прямиком в графический процессор, осуществляющий все дальнейшие функции по его декодированию и выводу.
2) IDCT (Inverse Discrete Cosine Transform) или Frequency Transform.
Графический процессор осуществляет восстановление элементов изображения из описывающей их матрицы коэффициентов. В одних API поддержка IDCT означает выполнение графическим процессором и компенсации движения, в других API эти функции разделены.
3) MoComp (Motion Compensation) или Pixel Prediction.
Графический процессор осуществляет компенсацию движения — обработку векторов, описывающих перемещения блоков изображения между кадрами.
4) PostProc (Post Processing) или Deblocking.
Наиболее трудоемкими являются первый и второй этапы. VLD, в зависимости от кодека, до 50% вычислений по декодированию HD-видео, IDCT, в зависимости от размера элемента и разрешения исходного изображения, до 40% вычислений. Дальнейшие операции MoComp и PostProc - менее трудоемкие. Не более 10-15% вычислительных операций по декодированию HD-видео, в зависимости от контента (статичная или динамическая сцена).
3. для видеоадаптеров NVidia глянуть среди детальных технических характеристик на сайте Мир NVIDIA
4. использовать сравнительную таблицу A Basic Overview of GPU HD Video Processing. Вас будут интересовать соответственно колонки *VC-1  
decode ability*, *H.264 decode ability* и *MPEG-2 decode ability*, где для задействования акселерации через MPC-HC необходимы записи *full*. Таблица актуальна на 13 февраля 2010 г.
 
Я приобрёл видеокарту, соответствующую требованиям, данным выше. Как мне воспроизвести HD-контент с помощью MPC-HC ? Необходимо соблюдать следующие правила:
1. использование операционной системы Windows XP или Vista, или Windows 7;
2. для Windows XP, нужно выбрать в настройках на вкладке *Вывод* Системный, Overlay Mixer, VMR9 или VMR9 Renderless;
3. для Windows Vista и Windows 7, нужно выбрать в настройках на вкладке *Вывод* EVR или EVR Custom(пользовательский);
4. для поддержки режимов DXVA и вывода субтитров нужно выбрать в настройках на вкладке *Вывод* VMR9 Renderless или EVR Custom(пользовательский);

5. видеодекодер должен быть подсоединен непосредственно к рендереру(в цепочке декодирования). Это означает, что никаких посторонних(внешних) фильтров(декодеров)[например, DirectVobSub или ffdshow] не должно быть между декодером и рендерером
примерный вид верной цепочки фильтров при задействованной DXVA

6. DXVA совместимые файлы, сжатые(закодированные) x264|VC1;
7. Самые новые/последние: драйвера(стабильной сборки) для видеокарты и DirectX.
Замечания(как увидеть ускоряет ли): 1. на вкладке *Форматы* нужно соответствующие форматы выбрать(Matroska, mp4...) и на вкладке *Встроенные фильтры* не забыть поставить галки на фильтрах для Matroska, mp4... и декодерах с DXVA отметкой в названии

2. задействован ли режим DXVA при воспроизведении можно проверять: а) сочетанием клавиш Ctrl+J(но это лишь справедливо, если в пунктах 2-4 выбраны VMR9 Renderless или EVR Custom(пользовательский)). Графики, отображающиеся по Ctrl+J, это джиттер-кривые(jitter curve), показывающие временной интервал между моментами, когда кадр должен(ожидается) к отображению, и когда реально отображается на экране. Самая длинная ось, которую зависимость пересекает, служит нулем отсчета, маленькие короткие - 10 мс, а более длинные - 40 мс. По нему хорошо ориентироваться на плавность(smoothless) вывода картинки, дрожание - достаточно, хотя бы в ОС Windows XP, сравнить графики в оконном режиме и в Direct 3D режиме(как в играх).

б) зайдя в меню *Воспроизведение/Фильтры* и выбрав MPC Video Decoder

в) в самом низу окна в статусной строке должна отображатся запись вида

 
Сделал все как сказано, а не вижу результата для HD-видео(идет только звук(без видео), или по Ctrl+J DXVA задействована, а видео некорректно воспроизводится, или плеер вообще с ошибкой вылетает), что делать? Возможный ход решения и причина(ы):
1. идет воспроизведение, а DXVA не задействована->возможно вы воспроизводите MPEG-2 контент в соответствующих контейнерах (ts, m2ts и т.д.) -> *тут ситуация неоднозначна: для видеокарт производства NVidia, если поддержка аппаратного ускорения заявлена для MPEG-2, то контент как положено и ускоряется, а вот для видеоадаптеров от ATI\AMD ревизий 4550 и выше, не смотря на заявленную поддержку "full" DXVA, MPEG-2 контент аппаратно не ускоряется из-за ограничений текущих драйверов(подробно можно глянуть в топике avsforum DxVA Profiles Support limitations in ATi 5xxx series UVD2). В остальных случаях смотрите ниже пункты *Всё равно не выходит задействовать DXVA в MPC-HC....* и *У моей видеокарты нет поддержки DXVA...*;
1.1 идет воспроизведение, а DXVA не задействована->не соответствие пункту 5(т.е., возможно, вы используете распространенные сейчас кодек-паки, как-то CCCP, klcodecpack, XP-Codec-Pack и др.)->посмотрите цепочку фильтров при воспроизведении, нет ли там чего лишнего, и вид её(при задействованной DXVA) должен быть примерно как в пункте 5 выше(примерный вид верной цепочки фильтров при задействованной DXVA). Можно, либо удалить кодек-пак, либо правильно настроить *мешающий* декодер(ы)->если в системе нет других декодеров h264, кроме, например, ffdshow(один декодер мешает), то достаточно снять галки с  соответствующий форматов в Настройках ffdshow(мешающего декодера); если в системе есть другие декодеры h264, то на вкладке *Внешние фильтры* добавить их и поставить запрет.
2. идет только звук(без видео)->возможно видео сжато VC1 и при этом interlaced(так называемая *гребенка*)->MPC-HC пока с таким контентом не справляется;
3. идет только звук(без видео) или плеер вообще с ошибкой вылетает->проблема может быть в драйверах->поэтому при обновлении драйверов лучше позаботится о том, чтоб у вас в запасе всегда была последняя рабочая сборка!;
4. идет воспроизведение, а DXVA не задействована, или DXVA задействована, а видео некорректно воспроизводится->не соответствие пункту 6->часто видео сжимается заведомо без учета задействования DXVA в будущем или просто ещё не опытен человек(необходимо для DXVA, чтоб при сжатии, в настройках кодера выставлялся параметр *Level*, например, как 4.1, и не превышалось определённое количество ссылочных кадров(reference frames)[параметр *ref*] для него, в зависимости от размера кадра будущего(сжатого) видео (подробнее о особенностях стандарта H.264 можно глянуть в википедии):
Level4.1
1920x1088: (--ref 4)  
1920x864: (--ref 5)  
1920x720: (--ref 6)  
 
Level4.1
1280x720: (--ref 9)  
1280x648: (--ref 10)  
1280x588: (--ref 11)
1280x540: (--ref 12)  
1280x498: (--ref 13)  
1280x462: (--ref 14)  
1280x432: (--ref 15)  
1280x405: (--ref 16)
причем, если разрешение не точно такое как выше указанное, то по рекомендациям форумов doom9 и avs на "промежуточных" разрешениях лучше использовать ближайшее МЕНЬШЕЕ кол-во ref. frames)->смотрим на количество reference frames с помощью Mediainfo

если вы видите превышение, то DXVA может не задействоваться на данном файле(в зависимости от ОС, драйверов и чипсета) и можно помочь: а) полностью пересжав фильм(без пересжатия можно обойтись, если, по каким-то причинам  *Level* изменен(не 4.1), хотя видео сжималось со значением 4.1, тогда можно помочь, используя программы MKVtoolnix(+оболочку MKVExtractGUI), AVInaptic, H264info и подробнее описано процедуру сдесь);
б) переключившись на вкладке *Вывод* на Системный рендерер.
в) S3 и Intel - нет ограничений, но при использовании ОС Vista/7; ATI: ограничение размером level 4.1, и жесткий лимит в 11 ref кадров для всех ОС; Nvidia: ограничение размером level 4.1 для старых драйверов, и 5.1 - для новых, для XP жесткий лимит в 11 ref кадров, для Vista/7 лимит в 14.  
г) можно попробовать менять настройки совместимости DXVA:

5. идет воспроизведение, DXVA задействована, а пропорции видео искажены->MPC-HC некорректно определил AR из заголовка файла(соотношение сторон видео)->можно попробовать *заставить* MPC-HC читать AR из видеопотока, и задействовать эту настройку можно сдесь

6. идет воспроизведение, DXVA задействована, а картинка выглядит осветлённой, не совсем естественно

->при просмотре на ПК (где уровень яркости 0-255) материала с уровнем яркости 16-235 (любой фильм) происходит искажение вывода черного и белого, и в итоге получаем картинку менее насыщенную и более контрастную->можно использовать шейдеры 16-235 -> 0-255 [SD](предназначен для работы с видео файлами, у которых ширина кадра до 720 пикселей) и 16-235 -> 0-255 [SD] [HD](работает с видео файлами у которых ширина кадра любая), которые позволяют в MPС-HС получить правильный уровень черного и белого

в текущих билдах можно обойтись настройками рендеринга(почему-то для ХР неактивен выбор диапазонов)

но нужно заметить, что необходимо субъективно оценить эффект после применения этих шейдеров! Очень хорошо о уровнях яркости и их корректировке при просмотре видеоматериала рассказано в этом FAQ с форума Doom9.
7. идет воспроизведение, DXVA задействована, но внизу картинки есть расплывчатая(blur) область(наблюдается не для всех файлов и с рендерером VMR9 Renderless(возможно и с EVR Custom), Системным)

->вот что главный разработчик говорит на этот счет(на примере видео 1920 x 1080) - *1080 не является верным размером для DXVA DirectX поверхности(не делится нацело на 16), поэтому mpc-hc(думаю, речь о декодере) дополняет его до корректного(до 1088) и 'сообщает' рендереру о обрезке последних 8 линий, но VMR9 Renderless(возможно и EVR Custom), если он не в режиме Mixer, не реагирует на это*->нужно использовать Mixer mode рендерера: или VMR9 Renderless, или Overlay Mixer->включил режим Mixer у VMR9 Renderless, но видео как-то подтормаживает(идет небольшими рывками)->посмотрите при проигрывании в меню *Воспроизведение/Фильтры* свойства VMR9 Renderless(или, возможно, EVR Custom)

видно много пропущенных(drop) кадров->можно попробовать сменить встроенный сплитер для Matroska(и/или для mp4, в соответствии с вашим файлом(и)) на Haali Media Spliter(который более корректно(пока) распаковывает mkv и mp4 контейнеры), затем на вкладке *Форматы* поставьте галочки напротив Matroska и mp4(если вдруг после установки Haali Media Spliter это необходимо) и на вкладке *Встроенные фильтры* снимите галку с Matroska(и/или с mp4)->видео воспроизводится теперь без рывков, но не вижу где выбрать субтитры и дополнительные аудиодорожки->это делается или через меню *Навигация* mpc-hc, или через меню самого Haali Media Spliter по иконке в трее
 
Примечание: вполне вероятно, что подтормаживание видео при воспроизведении, когда используется Mixer mode рендерера и внутренний сплиттер для .mkv, связано с используемыми драйверами, т.к., с версиями драйверов для видеокарт ATI <=8.12 приходилось использовать сплиттер от Haali, а с использованем линейки 9.х - 10.х все нормализовалось.
 
Всё равно не выходит задействовать DXVA в MPC-HC, а производитель видеоадаптера говорит о поддержке DXVA у своего продукта и хочется очень смотреть HD-видео, что делать ? Возможно у вашего адаптера неполная поддержка DXVA. Оба вида DXVA поддерживают продукты/плееры  PowerDVD и WinDVD, декодер из пакета утилит Nero(они являются коммерческими продуктами!), бесплатный плеер корейского пошиба Daum PotPlayer(будет полезен пользователям, у которых видеоадаптеры с неполной поддержкой DXVA - не самые новые). Стоит упомянуть о введении поддержки DXVA для декодеров H.264|VC1 ОС Windows 7 - по отзывам достаточно всеядные. А также, начиная со сборки 3185, поддержкой DXVA обзавелся проект ffdshow(код портировался из MPC-HC, поэтому чудес *всеядности* ожидать не стоит, но на стороне ffdshow постобработка с DXVA).  
 
У моей видеокарты нет поддержки DXVA, как комфортно просматривать HD-видео ?
Если у вас многоядерный процессор, то можно использовать декодеры, поддерживающие многопоточность, т.е. могут дать возможность задействовать все ядра вашего CPU, как-то тот-же Cyberlink Power Decoder, CoreAVC Professional Edition(тоже являются коммерческими продуктами) и, с 14 февраля 2009 года, ffdshow.
 
P.S. Данный материал может быть где-то неточен/неграмотен и, по возможности, укажите на ошибки.
P.S.S. Большое спасибо данной ветке ru-board и форуму Doom9 за детальное обсуждение работы MPC-HС, форуму AVSforum, сайтам prof-tuners.com и nvworld.ru, разработчикам -  за создание данной модификации MPC!!!!

Всего записей: 241 | Зарегистр. 23-06-2008 | Отправлено: 00:04 25-02-2010
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Media Player Classic - HomeCinema (MPC-HC)
Widok (17-05-2010 12:16): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru