Опубликовано 23 мая 2007, 00:33

High Definition сегодня: технологии ATI Avivo HD

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

За последние годы персональные компьютеры очень заметно стали ориентироваться не на профессиональное или игровое применение, а на мультимедийное содержимое. Раньше просмотр видео на экране монитора был сопряжён с определёнными неудобствами: необходимостью находиться вблизи от клавиатуры или мыши, мириться с артефактами сжатия (особенно на ЖК-мониторах), малыми диагоналями мониторов и так далее. Однако за последние два года очень широко распространилось видео и телевидение высокого разрешения (HD Video и HDTV), представляющие собой дальнейшее развитие стандартов MPEG-2 (ATSC) и MPEG-4 (VC-1 и H.264). Причём развитие этой области мультимедиа проходит настолько стремительно и затрагивает такое количество смежных отраслей IT, что мы просто не успеваем удивляться новинкам, как они уже устаревают. Появляются новые мониторы с большими диагоналями и высоким разрешением, разработан специальный интерфейс для упрощения их подключения, внедрена технология защиты контента от незаконного копирования и многое-многое другое – всё подчинено одной идее: сделать компьютер ближе к домашнему пользователю, превратить его в центр развлечений с огромным количеством возможностей.

Для иллюстрации проникновения HD-Video в сферу информационных технологий приведём следующие, совсем свежие примеры. Международный консорциум телекоммуникационных компаний США и Юго-Восточной Азии на прошлой неделе сообщил о прокладке новой магистральной оптоволоконной линии по дну Тихого океана. Канал соединит запад США и Гавайи с Сингапуром, Таиландом, Малайзией, Гонконгом и другими странами Тихоокеанского бассейна. Так вот, в заявлении консорциума приводятся данные о проектной пропускной способности линии: 1,92 терабита в секунду, или 130 тысяч каналов цифрового HD-телевещания. Другой факт: одним из основных требований к производительности UMPC-устройств и платформы Montevina, которая придёт на смену Santa Rosa в следующем году, озвученных Intel на IDF China, является способность воспроизводить HD-Video в стандарте 720p для UMPC и с более высоким разрешением в ноутбуках, при этом не теряя во времени автономной работы. Как видите, «высокое разрешение» везде и уже становится мерилом производительности.

Однако темой нашей статьи является не проникновение этого нового, но очень приятного явления на рынок и в нашу с вами жизнь, а новые возможности по работе с видеосодержимым высокого разрешения, заложенные в новое поколение графических процессоров AMD-ATI Radeon HD 2000.

Проблемой просмотра видео непосредственно на персональном компьютере, кроме большой вычислительной нагрузки, является отсутствие или чрезвычайная дороговизна компьютерных мониторов с большими диагоналями и высоким разрешением, подходящих для HD. Кроме того, подавляющее большинство пользователей компьютеров предпочитают мониторы с соотношением сторон 4:3, а TrueHD-видео кодируется в 16:9. Поэтому лучшим вариантом на сегодня является вывод видео с компьютера на подходящие плазменные или ЖК-панели, которых за последние полгода было представлено достаточное количество. Таким образом, мы убиваем двух зайцев. Во-первых, получаем возможность просматривать видео практически в любых форматах (HDTV, IPTV высокой чёткости, Internet-TV, а также в ближайшем будущем Blu-ray и HD-DVD). Во-вторых, с комфортом смотрим видео на экране с большой диагональю, например – на диване с любимым напитком/человеком/подушкой. Не зря большинство ведущих производителей ноутбуков пристально смотрят на возможность оборудования своей продукции разъёмом HDMI, а наличие пульта ДУ понемногу становится стандартом для мультимедийных ноутбуков.

Технологии видео высокого разрешения

Напомним, каким образом формируется изображение и достигается сжатие в кодеках, используемых в HD-video. Есть несколько методик – в зависимости от того, какой формат, MPEG-2 или MPEG-4, принят за базовый. Во-первых, любой кодек использует ключевые кадры в качестве опорных. Чаще всего это каждый 15-й кадр в потоке. На основе этого кадра формируются предсказанные кадры (P и B-фреймы), получаемые с помощью наложения так называемого вектора смещения на ключевой кадр. В исходном MPEG-2, например, ключевой кадр делится на блоки 16x16 пикселей, и каждому такому блоку присваивается вектор смещения. Благодаря такой реализации заметно снижается общий размер файла и количество обрабатываемой информации в момент времени (поток). Минусом данной реализации является то, что для воспроизведения такого видео необходимо произвести обратные операции. Ключевые кадры декодируются методом обратного преобразования Фурье (в стандарте оно указано как iDCT, inverse discrete cosine transform). Одновременно к каждому следующему предсказанному кадру применяется смещение, что требует как способности декодера быстро выполнять математические вычисления с цветовыми координатами, так и обеспечивать хорошие показатели потока (битрейт). Недостаток такой реализации кодирования и воспроизведения видео выплывает из самого принципа его работы: в случае если исходный кадр имеет невысокое разрешение, разбиение его на довольно большие блоки 16x16 приводит к сильному падению качества сжатого изображения.

Самым распространённым на сегодня форматом является MPEG-2 ATSC. Именно в нём закодировано подавляющее большинство видео высокого разрешения, доступного для скачивания в Сети. Формат существует уже много лет, однако отказываться от него не собираются, так как ATSC предоставляет возможность сжать видео в разрешении 1280х720 с прогрессивной развёрткой при 60 кадрах в секунду (720p) или 1920x1080 с чересстрочной развёрткой при 30 кадрах в секунду (1080i).

Все остальные стандарты HD в своей основе имеют стандарт MPEG-4.

MPEG-4 ASP основан на спецификации MPEG-4 part 2 и представлен на сегодняшний день такими популярными кодеками, как DivX (профиль High Def), XviD, 3ivx и Quicktime. Достоинством этой плеяды кодеков является то, что они обеспечивают хорошее качество изображения при довольно небольшом потоке, что позволяет передавать файлы через каналы Интернета. Также введена технология quarter-sample motion compensation, состоящая в том, что при просчёте векторов смещения точность составляет не 1/2, а 1/4 пикселя, а кадр разбивается на блоки переменного размера. Минимальный размер блока 8х8 пикселей заметно повышает качество на насыщенных сценах, при этом позволяя увеличить степень сжатия. Максимальное качество, обеспечиваемое этим стандартом, составляет 1080p при 25 кадрах в секунду в случае XviD и 720p 30fps для DivX.

Для новейших стандартов HD-видео, которое будет распространяться на HD-DVD и Blu-ray, используются кодеки AVC/H.264 и VC-1.

H.264 отличается увеличенной до 1/8 пикселя точностью предсказания смещений, уменьшенным размером минимального блока, большими изменениями в плане использования ключевых кадров и их количества. Особо отметим возможность применения энтропийного кодирования Context-Adaptive Variable Length Coding (CAVLC) и Context-Adaptive Binary Arithmetic Coding (CABAC), требующих высокой вычислительной мощи декодера. На самом деле, несмотря на то что кодек относится к семейству MPEG-4 part 10, при его разработке внедрено такое количество новшеств, что их описание просто не вместится в данную статью. Обеспечивается разрешение до 1080p при 30 кадрах в секунду и потоке около 40 Мбит/с.

VC-1 является развитием кодека Microsoft Windows Media Video 9, основное достижение которого – возможность кодировать в одном и том же разрешении как при прогрессивной развёртке, так и при чересстрочной. Различие составляет только частота смены кадров: VC-1 L3 позволяет кодировать в 1080p при 24 fps и 1080i при 30 fps.

Особенности и возможности H.264/AVC и VC-1 привели к тому, что они выбраны в качестве основных для HD-DVD и Blu-ray. В следующей таблице AMD приводит сравнение применяемых в этих стандартах и традиционном MPEG-2 DVD-технологий и алгоритмов:

Сравнение ведущих HD-кодеков

Сравнение ведущих HD-кодеков

Однако такие способности, особенно если их задействовать в полной мере, очень сильно загружают декодер. Кроме того, использование алгоритмов CABAC и CAVLC приводит к сильной загрузке центрального процессора в связи с тем, что они «недружественны» к алгоритмам предсказания ветвлений, применяемых в CPU, и при этом не получат выгоды от обработки средствами GPU из-за невозможности параллелизации.

Сложности при обработке алгоритма CABAC

Сложности при обработке алгоритма CABAC

Итак, ATI внедрила в свои новые графические процессоры новую логику, состоящую из двух специализированных процессоров, работающих в связке с программным комплексом Avivo HD. В самом ядре выделено определённое число транзисторов, которые не занимаются ничем, кроме воспроизведения и обработки видеопотока. Кроме продвинутых возможностей, касающихся собственно воспроизведения видео, производитель заявляет о таких приятных особенностях, как малое энергопотребление при нагрузке и наличие встроенной поддержки HDMI и HDCP. Естественно, заявление насчёт энергопотребления мало касается Radeon HD 2900XT, но, судя по предварительным данным, его можно в полной мере отнести к Radeon HD 2400/2600 и их мобильным версиям. Подчеркнём, что Avivo HD в полной мере поддерживается абсолютно всей линейкой Radeon HD 2000. Ограничения младших версий состоят только в меньших частотах и, следовательно, несколько более слабых способностях в плане обработки видео с высоким битрейтом. Однако только в теории, на практике же это нужно будет проверить.

В ядре процессора внедрён выделенный блок, названный UVD – Unified Video Decoder. Он занимается декодированием HD-видео на всех стадиях, убирая нагрузку с центрального процессора, при этом сохраняя все временные данные внутри кэша ядра, не прибегая к обращениям и передаче данных из/в оперативную память.

Путь обработки VC-1 и H.264 в UVD

Путь обработки VC-1 и H.264 в UVD

Avivo HD, как уже упоминалось, производит обработку видеопотока силами GPU на всех этапах, начиная от декодирования потока и энтропийного декодирования и заканчивая постобработкой и выводом. Конкурирующая технология NVIDIA Purevideo HD в GeForce 7/8 обрабатывает силами видеокарты только попиксельное предсказание и деблокинг, а предыдущее поколение Avivo ещё осуществляло частотное преобразование.

Сравнение стадий декодирования G7/G80 и HD 2000

Сравнение стадий декодирования G7/G80 и HD 2000

В новых ядрах G84/G86 NVIDIA применила более продвинутую версию PureVideo HD, которая «научилась» полностью обрабатывать H.264/AVC средствами графического процессора. С VC-1 всё не так радужно, Bitstream Processing и энтропическое декодирование сжатого этим кодеком видео осуществляет центральный процессор. AMD UVD, как уже упоминалось, работает самостоятельно на всех стадиях.

Сравнение стадий декодирования G84/G86 и HD 2000

Сравнение стадий декодирования G84/G86 и HD 2000

В итоге перенос обработки видео на плечи графического процессора позволяет снизить нагрузку на CPU при проигрывании HD-DVD с 65 до 12%, то есть примерно до уровня загрузки, наблюдавшегося ранее при воспроизведении обычного DVD. Это даёт больше возможностей в плане работы с интерактивным содержимым дисков, многозадачной работы, фоновой записи видео и так далее. Естественно, поскольку нагрузка настолько снижена, заметно увеличивается время работы ноутбуков с мобильными чипами семейства Radeon HD 2000 от батареи.

Загрузка центрального процессора

Загрузка центрального процессора

Энергопотребление

Энергопотребление

Кроме «голого» декодирования видео не мешало бы подвергнуть его некоторой обработке для улучшения качества изображения. Абсолютно везде эти действия – post-processing, постобработка, – выполнялись силами центрального процессора. AMD внедрила в ядра Radeon HD 2400 и HD 2600 специализированные процессоры – AVP, Advanced Video Processor.

Функции Advanced Video Processor

Функции Advanced Video Processor

AVP предназначен для устранения артефактов чересстрочной развёртки (deinterlacing) с возможностью улучшения качества краёв, быстрого и качественного горизонтального и вертикального масштабирования, коррекции цветов. При этом для осуществления этих операций AVP производит вычитку данных из памяти, а затем снова выгружает их в память.

Пока неясно, с чем связан тот факт, что в HD 2900 этого процессора нет. Один вариант состоит в том, что ядра HD 2600 и HD 2400 разрабатывались несколько позже, чем «старшая» версия, и к тому времени инженеры ATI успели спроектировать новую логику. В пользу этой версии говорит тот факт, что эти ядра производятся по 65-нанометровому техпроцессу, а «старшее» – по 90-нанометровому; следовательно, R600 разрабатывалось раньше. Второй вариант – AVP внедрён в младшие ядра с той целью, чтобы обеспечить хорошее качество и скорость обработки HD-DVD и Blu-ray даже в условиях малой производительности бюджетных видеокарт. В таком случае, должно быть, «старшее» ядро справляется с задачей силами своих SIMD-массивов. В любом случае, один из этих вариантов подтвердится с выходом или хотя бы публикацией подробностей о 65-нанометровой версии R600 (или R650, пока непонятно).

Тем не менее даже без AVP Radeon HD 2900XT смог набрать 128 очков из 130 в специализированном тесте HQV, что делает его самым производительным графическим процессором в задачах обработки видео высокого разрешения на сегодняшний день.

Важной частью характеристик, которыми должно обладать устройство, для того чтобы носить гордую надпись о полном соответствии с HD-DVD, Blu-ray и OCUR (кабельные трансляции HD-Video), является защита потока на каждом этапе обработки. Radeon HD 2000 этим требованиям соответствует. В процессе считывания и декодирования поток защищается по стандарту AACS (Advanced Access Content System), после декодирования и выгрузки в память данные передаются на вывод с защитой HDCP. Кодирование HDCP обеспечивается и при передаче данных на устройство отображения (монитор или телевизор), при этом поддерживается и DVI Dual-Link, и специализированный разъём HDMI. Собственно вывод через HDMI на нынешнем поколении видеокарт, по крайней мере эталонных, обеспечивается через переходник DVI->HDMI.

Защита данных на всех стадиях

Защита данных на всех стадиях

Отметим, что коды HDCP заложены в самом ядре, в отличие от существовавших до сегодняшнего дня видеокарт, которые требовали установки дополнительного чипа памяти CryptoROM с таблицами шифрования HDCP. Ранее установка таких чипов оставалась на совести конкретных производителей видеокарт, поэтому для поиска видеокарты, способной работать в связке с HD-телевизором или панелью, приходилось прилагать немало усилий и искать по сайтам производителей.

Наконец, для просмотра HD-видео, естественно, кроме изображения, хотелось бы и звук получить. AMD-ATI озаботилась этой задачей и решила её радикальным образом. В ядро графического процессора интегрирована логика звукового контроллера, судя по всему, разработанная одним из лидеров в области аппаратных звуковых кодеков – Realtek Corp. Прямым текстом о том, что в ядро встроен контроллер Realtek, никто не говорит, однако в Сети уже доступны драйверы, называющиеся Realtek ATI HDMI Audio Device Driver.

Переходник DVI-HDMI

Переходник DVI-HDMI

Контроллер позволяет организовать вывод звука через тот же разъём, что и видео. На данный момент, как уже упоминалось, вывод HDMI реализован с помощью переходника DVI-^gt;HDMI. Нет нужды в дополнительных звуковых картах, подключении отдельными кабелями внутри корпуса и так далее. Таким образом, мультимедийная система на базе ATI Radeon HD 2000 автоматически получает право носить метку «Windows Vista Premium Logo», которая даётся только тем системам, которые могут обеспечить вывод и видео, и звука через один выход HDMI. До недавнего времени варианты организации такого выхода требовали или установки дополнительной звуковой карты, или передачи звука с встроенного кодека по S/PDIF, но с потерей возможности вывода по S/PDIF через обычный выход.

Передача звука в HDMI через S/PDIF

Передача звука в HDMI через S/PDIF

Передача звука в HDMI через дополнительный контроллер

Передача звука в HDMI через дополнительный контроллер

Вывод звука в HDMI в Radeon HD 2000

Вывод звука в HDMI в Radeon HD 2000

Поддерживается вывод звукового сигнала в форматах 32, 44.1, 48 кГц 16 бит PCM стерео, имеется поддержка Dolby Digital и Dolby DTS.

Вывод

С выходом Radeon HD 2000 мы получили возможность смотреть видео в новейших форматах с отличным качеством, не нуждаясь в сверхпроизводительных комплектующих. Особенно новинка должна понравиться тем, кто хочет создать мультимедиацентр из малошумных (и, как правило, малопроизводительных) комплектующих в небольшом корпусе.

К сожалению, этот обзор получился теоретическим, так как на данный момент мы не располагаем ни HD-DVD/Blu-ray приводами и дисками, ни видеокартами среднего и нижнего ценового уровня (именно они нас интересуют в первую очередь). Однако постараемся дополнить сегодняшнюю статью практическим испытанием качества и производительности при воспроизведении видео высокого разрешения на современных графических акселераторах.