РЕКЛАМА
ИНФОРМАЦИЯ
ПОЛЕЗНЫЕ ССЫЛКИ
ASRock E-350M1: платформа Brazos от AMD – сначала для десктопов

Rambler's Top100 Рейтинг@Mail.ru

АУДИО И ВИДЕО

Сжатие видео и декодирование: чем и на чём лучше
Краткое содержание статьи: Что лучше аппаратно ускоряет сжатие видео? Не такой простой вопрос, если копнуть глубже. В этом обзоре мы расскажем о сжатии видео и его декодировании при помощи Intel Quick Sync, nVidia CUDA и AMD APP, сравним различные кодеки и декодеры друг с другом, поговорим о качестве, производительности, ресурсах. В одном из предыдущих обзоров мы писали, что при сжатии видео качество на выходе было одинаковым для Intel и AMD, а результат при использованиии nVidia CUDA сильно от них отличался. Настало время разобраться в нюансах.

Сжатие видео и декодирование: чем и на чём лучше


Редакция THG,  24 июня 2011
Назад
Вы читаете страницу 1 из 6
1 2 3 4 5 6
Далее


Сжатие видео и декодирование | Введение

Не так давно мы уже обсуждали качество картинки в обзоре первых мини-ITX Brazos. Если вычитали этот обзор, то помните, что там было несколько неожиданных результатов, полученных при анализе возможностей платформ по кодированию/декодированию видео. Большинство результатов были одинаковыми: качество видео на выходе было одинаковое для продуктов Intel и AMD. При этом результат, полученный при использованиии CUDA от nVidia сильно отличался от предыдущих. Любое видео, которое мы пропускали через него, содержало заметное количество блочных фрагментов в сценах с активным движением. Нас об этом предупреждали, но надо было это увидеть своими глазами, чтобы понять, как плохо обстоят дела.

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

Сжатие видео и декодирование | Кодеки и декодеры

Перед тем, как перейти к серьёзным тестам, надо прояснить несколько простых вещей. Важно различать кодеки и контейнеры файлов. Например, файлы Blu-ray часто появляются с расширением .m2ts. Но формат контейнера BDAV (blu-ray Disc Audio/Video) обычно выступает в качестве обёртки для хранения. При этом можно использовать три кодека – MPEG-2, H.264 и VC-1.

Какая же всё-таки разница между кодеком и контейнером? Вспомните ваш последний отпуск. Ваш чемодан, в данном случае, это "контейнер". Багаж это контент (видео, аудио, субтитры и другая информация), а кодек – это способ, которым вы впихиваете всё (данные) в ваш чемодан, чтобы всё поместилось. Вы можете класть вещи в чемодан аккуратно сворачивая (один кодек), или прессовать их в рулоны и обматывать скотчем, чтобы побольше влезло (другой кодек). Это верно для любого мультимедиа контента. Например, формат Microsoft AVI (Audio Video Interleave) – это контейнер файлов, но видео в нём может кодироваться разными кодеками, от DivX до MPEG-2.

Когда вы проигрываете что-нибудь на видеоплейере, обычно кодированное видео проходит через декодер, преобразуется в YUV-данные (цветовое пространство) и подаётся на экран. Декодер распознает формат и развёртывает сжатые данные в полезную информацию, которая может обрабатываться и просматриваться.

Есть два типа декодеров: программные и аппаратные. До UVD, PureVideo и Intel GMA 4500MHD видео декодировалось с помощью программных декодеров, которые полагались на мощность процессоров. Поэтому многие компании старались что-либо сделать для проигрывания видео. Но сделать по-настоящему хорошо это удалось только двум из них – CyberLink и InterVideo (сейчас Corel), поэтому тогда ATI и лицензировала PowerDVD декодер для своего декодера ATI DVD. Естественно, программные декодеры съедают большое количество процессорного времени, что хоть и не влияет на производительность современных процессоров, но для мобильных устройств заметно сокращает время жизни аккумуляторов.

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

Есть несколько интересных моментов. Поскольку декодер обрабатывает видео, достаточно сложно установить параметры качества его работы или эффективности. Вне зависимости от того, проходит ли видео аппаратный или программный конвейер преобразования, данные сильно меняются перед тем, как оказываются на вашем мониторе. Используя ПО, вы не должны сравнивать системы, используемые при декодировании. Хотя при использовании одной и той же системы различные декодеры могут выдавать различные картинки или изменять качество восприятия изображения. Большинство дисков Blu-ray, которые проигрываются на графических картах nVidia или AMD, будут выглядеть одинаково, если вы отключите ускорение в PowerDVD. В обоих случаях видео обрабатывается с помощью ПО на процессоре, выдавая одинаковый результат.

Когда в процесс добавляется аппаратное декодирование, всё выглядит по-другому. Почему? В современных GPU есть специальный блок, занимающийся декодированием и обработкой видеоданных. Это именно та логика с фиксированной функцией, о которой шла речь чуть выше. Аппаратное ускорение декодирования на процессорах Sandy Bridge конструируется и программируется отлично от того, как это сделано на графических картах AMD и nVidia.

Надо четко понимать: нет GPU-декодеров общего назначения. Нет декодеров, которые могут полностью работать на DirectCompute, APP или CUDA. Стремление реализовать такую поддержку заранее обречено на провал. GPGPU предназначен для обработки сырых данных с высокой степенью параллелизма. Но мы говорим о видео, а не о сырых данных. Для обработки картинок приходится делать многое, причём в последовательном исполнении. Декодеры с фиксированными функциями декодируют и обрабатывают видео; они не делают ничего другого. Перенесения этой функции на компьютерные ресурсы более общего профиля было бы шагом назад по сравнению с переносом их на процессор, поскольку в обоих случаях вам придётся работать с программным декодированием.

Компания Elemental Technologies (которая известна своей разработкой Badaboom) уникальна тем, что разработала декодер MPEG-2 на базе CUDA. И это не чистый декодер GPGPU. Части его конвейера, такие как кодирование энтропии, кодирование синтаксиса, декодирование синтаксиса и декодирование энтропии должны исполняться последовательно. Другие части процесса могут быть сконструированы для параллельного исполнения, такие как оценка движения, компенсация движения, разбиение данных на подгруппы, дискретная косинусоидальная трансформация, фильтрация деблокирования, деблокирование конечных результатов. Именно поэтому декодер MPEG-2 Elemental – это половинчатое решение. Часть процесса выполняется на CPU, часть – на ядрах CUDA.

Сжатие видео и декодирование | История форматов

Декодирование видео на аппаратном уровне у многих экспертов вызывает определённые сомнения. Дело в том, что не каждое решение обеспечивает одинаковую обработку.

Для компании Intel единственной функцией конвейера декодирования видео была компенсация движения, которая существовала в нескольких поколениях графических продуктов (GMA 900, 850, 3000 и 3100). Это означает, что для декодирования потока видео используется программный декодер перед тем, как логические контура Intel выполнят компенсацию движения. Этого не было до последней версии 3100, где мы впервые увидели полное декодирование MPEG-2 на аппаратном уровне. Поддержки VC-1 и Н.264 не было до 4500MHD. GMA 500 не учитывается, поскольку этот продукт для Intel создала компания Imagination Technologies.

Тем временем компания AMD недавно выпустила UVD 3 со своими картами Radeon HD 6000 серии. Изначально UVD 1 поддерживала полное декодирование VC-1 и H.264, в UVD 2 добавлено преобразование частоты и компенсация движения для MPEG-2. В UVD 3 добавлена полная поддержка декодирования для MVC, MPEG-2 и MPEG-4/DivX/Xvid. Отметим, что UVD в картах AMD 5000 серии претерпел ревизию на уровне прошивки. Немало изменений было сделано и на аппаратном уровне, где компания AMD добавила двухпотоковую поддержку декодирования. В Radeon HD 4000-серии уже поддерживалось двухпотоковое декодирование и технология "картинка в картинке", но только в разрешении SD.

nVidia в своих видеокартах GeForce FX начинала с декодирования MPEG-1/MPEG-2 на аппаратном уровне. Первое поколение PureVideo появилось, когда nVidia взяла эти устройства, улучшила деинтерлейсинг и изменение размеров (overlay resizing) и встроила эти технологии в свою серию GeForce 6000. Для большей части таких карт ускорение декодирования ограничено, поскольку исключается преобразование частоты декодирование с переменной длиной. Декодирование Н.264 на аппаратном уровне не было возможным до появления GeForce 6600. Сегодня мы готовы к приходу PureVideo четвертого поколения, где добавляется потоковое декодирование MPEG-4 (Advanced) Simple Profile в сочетании с MVC для контента Blu-ray.

Сжатие видео и декодирование | Поддержка кодирования

До появления технологии Quick Sync, в процессорах не было аппаратного кодирования (для настольных ПК). Практически всё сжатие производилось программно с использованием мощности процессора. Если у вас быстрый компьютер, то вы будете кодировать быстрее. Всё очень просто. В далеком прошлом были времена, когда программные кодеки могли работать только в однопоточном режиме, что очень ограничивало производительность. Времена изменились и теперь сжатие видео можно выполнять несколькими параллельными потоками.

В большинстве случаев мы по-прежнему работаем с программной кодировкой. Отличие в том, что теперь у нас есть кодировщики, которые могут проделывать всю работу с помощью GPU с использованием библиотек GPGPU. В последнее время всё больше звучат голоса о том, что за вычислениями с помощью GPU будущее, из-за гораздо меньших возможностей по обработке параллельных потоков, который может предложить CPU; задачи, о которых мы сегодня говорим, просто не могут выполняться быстро и эффективно (в смысле использования электроэнергии) в процессорах общего назначения. Поэтому пока мы не будем сравнивать кодировщики на базе GPGPU, которые работают с использованием аппаратных возможностей графической карты, с решениями по аппаратному кодированию от Intel.

При кодировании используются аппаратные блоки, которые работает вместе с программируемыми исполняющими элементами (EU – execution unit). Есть ещё один блок обработки медиа-информации, соединённый с EU (Intel называет его сопроцессором), который работает с оценкой движения, подкрепляя программируемую логику. Естественно, то же самое происходит и с задачами декодирования, которые проходят через тот же конвейер, так что дополнительная производительность имеется и там. Запускаем MPEG-2, VC-1 или AVC, а на выходе получаем MPEG-2 или AVC.

В зависимости от используемого приложения каждая компания использует Quick Sync разными способами. Взять хотя бы CyberLink. PowerDVD 10 использует ускорение конвейера декодирования. Проект MediaEspresso вовлечён во всё это гораздо более активно: файл там будет читаться, декодироваться, кодироваться и возвращаться в выходной поток. Затем в PowerDirector, приложении для редактирования видео, вы сможете участвовать в пост-процессинге – накладывании эффектов и композиции кадра, которые делаются перед стадией кодирования.

Сжатие видео и декодирование | Оптимизация транскодирования


Конвейер транскодирования включает в себя чтение файла, декодирование, кодирование видео и вывод. Перед развитием кодирования на базе GPGPU, ПО для транскодирования использовало CPU для копирования данных из видеопамяти (где они находятся после аппаратного декодирования) и пересылки их обратно в системную память, где процессор мог провести стадию кодирования.

Поскольку аппаратный декодер находится на том же чипе, что и GPU, ПО может пропустить копирование данных обратно в системную память (шаг четыре на первой диаграмме). Транскодирование на базе GPU общего профиля позволяет практически весь процесс осуществить на одном кристалле кремния. Но всё это – соображения, касающиеся производительности, а наш фокус сегодня – качество. Вот к нему и перейдём.
Назад
Вы читаете страницу 1 из 6
1 2 3 4 5 6
Далее



СОДЕРЖАНИЕ

Сжатие видео и декодирование - обсуждение в Клубе экспертов THG [ 29 отзывов] Сжатие видео и декодирование - обсуждение в Клубе экспертов THG [ 29 отзывов]


РЕКЛАМА
РЕКОМЕНДУЕМ ПРОЧЕСТЬ!

История мейнфреймов: от Harvard Mark I до System z10 EC
Верите вы или нет, но были времена, когда компьютеры занимали целые комнаты. Сегодня вы работаете за небольшим персональным компьютером, но когда-то о таком можно было только мечтать. Предлагаем окунуться в историю и познакомиться с самыми знаковыми мейнфреймами за последние десятилетия.

Пятнадцать процессоров Intel x86, вошедших в историю
Компания Intel выпустила за годы существования немало процессоров x86, начиная с эпохи расцвета ПК, но не все из них оставили незабываемый след в истории. В нашей первой статье цикла мы рассмотрим пятнадцать наиболее любопытных и памятных процессоров Intel, от 8086 до Core 2 Duo.

ССЫЛКИ
Bet Boom . Мобильное приложение Parimatch.com