HD video и декодирование H264 с помощью CPU/GPU

прогресс не стоит на месте. растет мощность CPU, GPU и специализированных процессоров, увеличиваются объемы магнитных и оптических дисков, дешевеют TFT панели. эти факторы и стремление к совершенству медленно, но верно приближает HD видео к простым людям.

уже сейчас обладатели 19" мониторов могут почувствовать разницу между HD и SD видео. это как раз тот случай, когда лучше один раз увидеть, чем 100 раз услышать. если у вас есть хороший монитор, то безусловно вы сможете найти хотя бы маленький отрывок видео в HD качестве, чтобы заглянуть в будущее домашнего видео.

техническая справка - основные форматы HD видео:
720p - 1280x720 при 25 кадров
1080i - 1440x1080 при 50 кадров черезстрочно (основной формат HD видеокамер)
1080i (full HD) - 1920x1080 при 50 кадров черезстрочно
1080p (full HD) - 1920x1080 при 25 кадров

характеристики впечатляют. более того, чтобы все это увидеть нужно иметь дорогой широкоформатный монитор или HD телевизор. к примеру, мой 19" монитор за 360 евро полностью готов только к 720p.

чтобы уместить 1.5 часа в таком качестве в разумный объем файла нужны эффективные кодеки. в индустрии используют либо MPEG2 с битрейтами 10-50 Мбит/c, либо MPEG4 AVC (он же MPEG4 Main Profile, он же H264) 5-25 Мбит/c. последний эффективнее MPEG2 и любого MPEG4 ASP вроде DivX, Xvid и т.п. эффективнось сжатия получается через усложнение алгоритма и соответственно значительно возросший объем вычислений, как при кодировании, так и при декодировании.

поговорим подробно о декодировании H264. обычно пишут требования вроде P4 3.6 или P4 2.8 (2 ядра). насколько все это правда? я нашел отрывок видео в качестве 720p 6 Мбит/с из научно-познавательного фильма Microcosmos (http://rapidshare.com/files/12068082/Microcosmos_HDTV_sample.mkv 41 Мб) и попробовал воспроизвести его на своих домашних компьютерах.

PC1 - AMD A64-3000 AM2 (1800@2400MHz) + nVIDIA 7600GS (GPU 450 MHz)
PC2 - Intel Celeron-M 360 1400 MHz + Intel 855GM (встроенная UMA видеокарта)

видеокарты nVIDIA, начиная с 6xxx и ATI с X1xxx имеют аппаратное ускорение декодирования H264, т.ч. PC1 имеет приемущество

используемый софт:

кодеки:
ffdshow (21.8.2006)
CoreAVC 1.2
Cyberlink из PowerDVD 7.2 (поддержка аппаратного ускорения декодирования H264 видеокартой)
проигрыватели:
BSPlayer
Media Player Classic
PowerDVD 7.2
методика:
клип имеет длительность 53 секунды, будем с помощью task manager измерять время CPU, затраченное проигрывателем на воспроизведение клипа. далее нормируем на 53 секунды и получаем среднюю загрузку CPU.

PC1:
Player\CodecffdshowCoreAVCCyberlink
BSPlayer34 (64%)25 (47%)15 (28%)
MPC35 (66%)26 (49%)15 (28%)
PowerDVD15 (28%)


Причем BSPlayer + Cyberlink сначала дает 27 секунд, но после переключения с Overlay на VMR9 в настройках BSPlayer проблема решается.

PC2:
Player\CodecffdshowCoreAVC
BSPlayer50 (94%)41 (77%)


ffdshow работает на пределе, скорее всего на активных сценах идет пропуск кадров, а CoreAVC проигрывает нормально.

какие же будут выводы?
самый первый и главный, аппаратное ускорение со стороны видеокарты значительно снижает нагрузку на процессор. такой помощи со стороны видеокарты не было со времен появления Overlay. второй вывод, CoreAVC явно лучше ffdshow справляется с декодированием. по крайней мере пока.

любопытно, что в статье на ixbt http://www.ixbt.com/video2/video_dec.shtml автор получает, что декодирование с аппаратным ускорением видеокарты оказывается медленнее, чем чисто программный CoreAVC.

теперь займемся подсчетами. попытаемся оценить какой процессор будет достаточен для проигрывания видео. фиксируем среднюю загрузку CPU на 85%, чтобы был запас на динамичных сценах. тогда простые расчеты с использованием полученных данных показывают, что в случае CoreAVC для 720p достаточно процессора C-M (P-M) около 1300 MHz и A64 той же частоты. используя хорошо известный эмпирический коэффициент 1.4 получаем 1800 MHz для P4. т.е. видео 720p можно запустить на почти любом более-менее современном компьютере.

для 1080p и 1080i full HD нагрузка увеличится в 1.5-2 раза и тогда уже нам потребуется A64 с частотой около 2400 MHz или P4 3400, либо многоядерный процессор. очевидно, что не каждый компьютер готов к 1080p. однако, если использовать ускорение видеокарты, то достаточно будет CPU с частотой 1000 MHz для A64 или P4 1400. правда, востребованность видео такого качества будет под вопросом пока не появятся относительно дешевые 21+" мониторы, способные отображать такое разрешение. а там глядишь и апгрейд
Telegram-канал @overclockers_news - это удобный способ следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают