ATI Stream — быстрое кодирование видео силами видеокарты

В этом посте я постараюсь рассказать, что такое ATI Stream и с чем её едят. Сам я о нем узнал совсем недавно, хотя технология не новая. Правда раньше у меня не было видеокарты поддерживающей её, да и сама ATI сильно тормозила с развитием ATI Stream, первые ласточки появились года 2 назад, что-то более менее путевое — год назад. Итак:

ATI Stream – это расширенный набор аппаратных и программных технологий, использующих графический процессор AMD совместно с центральным процессором, ускоряя работу большинства различных приложений (не только графических). Такой подход позволяет повысить общую производительность системы по сравнению с системами, использующими для вычислений только центральный процессор.
На официальном сайте ATI заявляет о 19-ти кратном ускорении кодирования видео по сравнению с процессором (серия видеокарт 48xx против Intel Core 2 Duo E8500 3.16 GHz).
ATI Stream является частью драйвера видеокарты производства ATI и отдельно его скачивать не нужно, но для функционирования некоторого стороннего софта может все-таки понадобиться установка AVIVO Video Converter, скачать который можно с официального сайта ATI-AMD (www.amd.com).
Я до конца не понял, какие видеокарточки поддерживают аппаратное ускорение кодирования, возможно вся HD серия, а может и нет, на форумах ответы какие то не очень ясные. Сегодня мы попробуем в деле существующий софт с поддержкой ATI Stream, сравним скорость и функционал. В ликбезе участвует видеокарта Radeon 4850 (700MHz/1200MHz) производства Sapphire и процессор Intel Celeron E3300 (2500@4200MHz).

Итак, поехали.

Первой программой, попавшей ко мне в руки, естественно, стала AVIVO Video Converter, производства самой ATI, которая интегрируется при уставновке в ATI Control Center. Что я могу сказать… Мне не удалось ее протестировать, программа упорно писала, что файлы, которые я ей подсовываю, неправильного формата и поделать с ними она ничего не может. Самое неприятное было то, что она эти файлы тут же приватизировала и я не мог их удалить без перезагрузки Нахмуренный На форумах я прочитал, что такая проблема встречается в Windows 7 и в Windows XP её нет. Танцы с бубном и установка кодеков в систему не помогла и я благополучно перешел ко второй программе.

Ей стала ATI oder из комплекта ATI Tray Tools. На странице автора я прочитал, что основное отличие ATI XCoder от AVIVO в расширеных настройках кодирования. В AVIVO судя по всему настроить невозможно совсем ничего, можно выбрать только готовый профиль, далеко не самый оптимальный.
Для первого теста выбирем формат H.264. Настройки битрейта я оставил по умолчанию, GOP Sequence выставил в Auto, Audio Format в Auto.
В качестве тестового файла выступит фильм Я-легенда.2007.DUAL.BDRip.XviD.AC3.avi (720x304, MPEG-4 Visual XviD, 2157 Кбит/сек, 24 fps, звук — 2 дорожки AC3 5.1 384 и 448 kps соответственно). Почему для теста выбран именно XviD я напишу чуть позже, в пока приступаем к кодированию.

Вот так выглядит сама программа:

ATI-XCoder

На кодирование в H.264 ATI XCoder показал результат 9 минут 27 секунд и скорость 263,96 FPS, суммарная загрузка процессора колебалась около 60%. Размер выходного файла нас не особо интересует, нам важна общая скорость кодирования.
Самое большое разочарование, которое нас ожидает при открытии файла — отсутствие звука. Программа закодировала туда 2 канала mp3 битрейтом 160 kbps, но услышать ничего не удается, видимо AC3 оказался ей не по зубам.
Следующим тестом попробуем закодировать тот же фильм в Divx MPEG4. Настройки опять по умолчанию, GOP Sequence и Audio Format в Auto.
На кодировании в Divx ATI XCoder показал результат 6 минут 11 секунд и скорость 403,45 FPS, суммарная нагрузка на процессор была около 85%. Звук в полученом файле так же не воспроизводится.
Так же программа не смогла открыть VOB файлы с DVD (возможно проблема кроется в Windows 7) и файлы mkv кодированные x.264 кодеком, она их даже не отображает в окне выбора исходного файла, видимо данный контейнер ей не знаком. Вот почему в качестве исходного файла пришлось выбрать avi закодированный кодеком XviD, иначе бы наш эксперимент не прошли бы уже как минимум две программы.
К достоинствам ATI XCoder стоит отнести наличие каких-никаких настроек и отсутствие принудительного изменения размера под ранее придуманые профили — размер можно оставить равным исходному.

Переходим к следующему испытуемому, это у нас будет программа CyberLink MediaShow Espresso.

Программа предназначена для непритязательного пользователя, которому не важны настройки кодера, он в них ничего не понимает, но ему нужно кодировать видео для своего iPod, КПК или PlayStation. Красивый анимированный интерфейс, минимум кнопок, закинул видео, нажал на нужный профиль и запустил кодирование. Впрочем есть тут и ручные настройки, а в них можно создать Custom Profiles, но у них есть одно важное и неприятное ограничение — разрешение можно выбрать только из списка предустановленых. Обрезать черные полосы у видео не получится!
Вот так выглядит стандартный профиль AVC MP4, предлагаемый программой:

CyberLink-MediaShow-Espresso

А вот этот профиль я создал сам, именно в него мы и будем кодировать наше тестовое видео:

CyberLink-MediaShow-Espresso-custom

Результат программы CyberLink MediaShow Espresso — 18 минут 53 секунды. Скажем так, отвратительный результат. Звук правда есть, правда стерео, а не 5.1, но хоть так. Изображение получило черные полосы сверху и снизу. Эта процедура вероятно существенно замедлила процесс компрессии. Стоит отметить, что в качестве декодировщика MediaShow использовала установленый в системе кодек ffdshow. Так же своими силами понимает VOB и mkv, что все же стоит отнести к плюсам. И, кстати, программа платная, кажется что-то около 40$… Пожалуй дороговато за столь горький кофе Смеётся

CyberLink-MediaShow-Espresso-coding

Следующий участник нашего теста, поддерживающий аппаратное кодирование — CyberLink Power Director 8.

Вот так выглядит окно программы. На выбор предлагается несколько предустановленых профилей для каждого формата. Есть возможность создать свой, но как и в MediaShow Espresso выбрать можно только стандартное разрешение. Для звука есть вариант 5.1, но выбор битрейтов скуден, впрочем как и общие настройки программы.

CyberLink-Power-Director

Аппаратное кодирование поддерживается только для формата AVC H.264 и MPEG2, поэтому тестировать будем только AVC H.264:

CyberLink-Power-Director-work-done

Итак, результат программы 23 минуты 8 секунд, средняя нагрузка на процессор 80%, для раскодирования источника использовался ffdshow. Звук получился 5.1, а вот картинка стала интерлейсной! Вот это уже совсем не понятный поворот событий. Пожалуй такая программа подойдет не всем… Тем более, что стоимость софтины от 70 до 100 баксов, в зависимости от варианта.

Едем дальше. A’s Video Converter — японская компактная софтина, весит всего 93 килобайта, посмотрим на нее в деле.

Здесь доступны ряд готовых профилей и присутствует возможность сделать любой свой, используя ряд опций:

As-Video-Converter-options

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

As-Video-Converter-work

Проверим, как программа закодирует наш тестовый фильм в формат H.264.

На кодирование было затрачено 9 минут 20 секунд, средняя загрузка процессора 55%.

As-Video-Converter-work-done

Файл правда получился без звука, как и в случае с ATI XCoder, но это не большая проблема, поскольку звук можно «приклеять» отдельно без особых проблем. Зато. в отличие от ATI XCoder, программа A’s Video Converter поддерживает любые входные форматы и создание собственных профилей, а так же пакетную обработку видео, при этом не уступая в скорости.

Теперь закодируем тестовый фильм с помощью A’s Video Converter в формат MPEG-4 (DivX Compatible).

Результат программы — 6 минут 13 секунд, средняя загрузка процессора 80%.

Так же существует плагин для Adobe Premiere CS4 ускоряющий кодирование с помощью технологии ATI Stream, но к сожалению под Windows 7 он не работает и протестировать его я не смог Нахмуренный Если у вас Windows XP, то возможно вы оцените его прелести.


Могу подвести некоторый итог. Для меня самой оптимальной программой для аппаратного кодирования видео на данный момент является несомненно A’s Video Converter. Она единственная быстро работает со всеми типами видео файлов и всеми кодеками при этом не ограничивая желаемый результат убогими профилями, вшитыми производителем других программ. Девизом A’s Video Converter я бы сделал — «Максимум свободы в 93-ёх килобайтах кода» Смеётся

За сим прощаюсь с вами, до новых обзоров на этом сайте Подмигивающий