- Вступление
- Движение потоков данных DVD в системе
- Требования к ширине полосы пропускания шины
- Варианты архитектурных решений систем
- Поддержка MPEG-2/AC-3 реализована в графическом контроллере
- Шина PCI в качестве управляющего порта для декодера
- Декодер DVD подключен полностью через шину PCI
- Рекомендации
- Источник информации
Вступление
Устройства чтения Цифровых Видео Дисков (Digital Video Disk, так же известные, как Digital Versite Disk или DVD), являются новым стандартом для проигрывания высококачественного видео с высоким разрешением. Однако, применение DVD в PC порождает много новых дополнительных требований к подсистеме Ввода/Вывода. Существует много инженерных решений и предложений, которые необходимо учитывать при разработке адаптеров декодирования DVD. Эта статья поможет разобраться в особенностях различных технологических решений, здесь Вы сможете прочитать следующее:
- Описание типичного примера движения потоков DVD данных в системе
- Определения требований к ширине полосы пропускания системы с DVD
- Описание трех потенциально возможных вариантов реализации систем декодирования данных DVD
- Обсуждение за и против всех трех предлагаемых решений
Предполагается, что данная статья может быть интересна разработчикам систем, производителям компьютеров и обычным пользователям, имеющим базовые знания о графической подсистеме PC и немного знакомых со сжатием звука и видео.
Движение потоков данных DVD в системе
На Рис. 1 изображены наиболее важные составляющие DVD системы для PC
Способ реализации и месторасположение каждого из изображенных блоков, а так же путь, по которому данные передаются из одного блока в другой — основные факторы, влияющие на производительность и стоимость инженерно-технической реализации аппаратуры.
В качестве минимальных рекомендаций, можно выделить следующие:
- Устройство DVD должно подключаться через шину PCI с поддержкой Bus Mastering (т. е. с возможностью захвата устройством управления шины) через адаптер, реализующий подключение через интерфейс ATAPI/EIDE, SCSI или IEEE 1394 (FireWire).
- Определение структуры потока и предварительное декодирование осуществляется программным способом за счет CPU.
- Графический контроллер подключен через шину PCI или AGP и должен иметь входной буфер, позволяющий прини-мать пакет данных, проходящий за четыре такта шины PCI (AGP) или соответствующий размеру 16 байт, без введения дополнительных временных задержек или потери соединения.
- Распакованные звуковые данные конвертируются в аналоговый вид и передаются в звуковую карту через кабель, аналогичный тому, который используется для передачи звука с CD-ROM устройства.
Исходя из этого вступления, далее, большая часть этой статьи будет посвящена описанию того, как сжатые MPEG-2/AC-3 данные и распакованные видео данные управляются при перемещении и какая ширина полосы пропускания требуется для этого. Другие потенциальные проблемы, свя-занные с использованием технологии DVD, такие, как под-держка линейной PCM (Pulse Code Modulation — передача данных импульсным кодом, метод, с помощью которого звуко-вой сигнал представляется в виде цифровых данных), авторское право, интерактивные области применения, находятся за рамками данной статьи, и рассматриваться не будут.
Требования к ширине полосы пропускания
Назначив значения каждому из блоков, изображенных на Рис. 1, получим следующую картину:
Сжатые данные (10 Mbits/s)
- Максимальная скорость передачи данных с устройства DVD-ROM: 10 Mbits/s
- Алгоритм обработки предварительных изображений (RLE — run-length encoding) может обрабатывать данные со скоростью: 100 Kbits/s
- Видеоданные в формате MPEG-2 могут передаваться со скоростью: 15 Mbits/s
- Звуковые данные в формате MPEG могут передаваться со скоростью: 640 Kbits/s
- Звуковые данные в формате AC-3 могут передаваться со скоростью: 450 Kbits/s
Распакованные данные (20 Mbytes/s)
- Видеоданные в формате YUV* могут передаваться со скоростью: 20- Mbytes/s
* В данном случае имеется в виду группа упакованных форматов, где литеры Y, U и V являются элементами изображения, запакованными вместе в виде макропикселов, хранящихся в одном массиве. Цифровые индексы, назначаемые каждой из литер, обозначают положение каждого из элементов на линиях, из которых состоит изображение. Например, V0 показывает крайнее левое положение элемента V, а Yn показывает, что этот элемент находится на позиции (n+1) пикселов слева.
Из выше указанного списка значений скоростей, ясно видно, что наибольшие требования к системе Ввода/Вывода предъявляют распакованные YUV видеоданные. То, как управ-ляется поток данных, движущийся со скоростью 20 Mbytes/s, является главной темой дискуссии о преимуществах той или иной архитектуры и рассматривается ниже.
Архитектуры систем
Предлагаемых к обсуждению архитектур всего три:
- MPEG-2/AC-3 декодер тесно интегрирован в графиче-ский контроллер.
- Управляющий порт MPEG-2/AC-3 декодера расположен на шине PCI, при этом распакованные видеоданные напрямую передаются в графический контроллер.
- Управление декодером MPEG-2/AC-3 и видеоданными осуществляется через шину PCI.
Декодер MPEG-2/AC-3, интегрированный в графический контроллер
Архитектурное решение, показанное на Рис 2., представляет из себя соединение, сделанное напрямую через ши-ну GPIO (General Purpose I/O — основного Ввода/Вывода) и видеопорт, когда декодер MPEG-2/AC-3 интегрирован в гра-фический контроллер.
В случае такой реализации, сжатые MPEG-2 и AC-3 данные передаются в графический контроллер через шину PCI. Далее, графический адаптер передает данные через свой GPIO порт в управляющий порт декодера. Распакованные ви-деоданные напрямую передаются в видеопорт графического контроллера и хранятся в его буфере кадров. Физически такая реализация обычно представляет собой интегрированный декодер в графический процессор или подключенную через специальный коннектор дочернюю плату с декодером на ней.
Шина PCI как управляющий контроллер декодера
В архитектуре, показанной на Рис.3 порт управляющего контроллера декодера MPEG-2 и AC-3 напрямую подключен к шине PCI, при этом распакованные видеоданные все еще передаются в графический контроллер через вход видеопорта, минуя шину PCI.
С точки зрения ширины полосы пропускания шины, эта архитектура аналогична той, что была представлена в первом примере. Сжатые видео и звуковые данные также передаются через шину PCI, но, минуя графический контроллер, напрямую попадают в декодер.
Главное преимущество этого решения — более удобное подключение через шину PCI, однако при этом теряется некоторая гибкость в использовании, т. к. возникает необходимость поиска универсального способа подключения к видеопорту графического контроллера. И кроме того, эта реализация требует наличия в системе свободного слота PCI.
Декодер DVD на шине PCI в качестве контроллера управляющих и видео данных
В архитектуре, показанной на рис. 4, сжатые управляющие данные и распакованные видеоданные передаются через шину PCI.
Использование отдельной PCI платы обеспечивает наибольшую гибкость, потому что карта DVD декодера может передавать видеоданные в любой графический контроллер вне зависимости от типа его соединения с управляющим или видеопортом. К сожалению, эта гибкость не дается даром — подсистема ввода/вывода должна быть тщательно настроена так, чтобы 20-Mbyte/s видеопоток не прерывался задержками шины и не застревал в многочисленных «ловушках», проходя через шину PCI.
Основные факторы влияющие на загрузку шины:
- операции чтения данных с DVD-ROM
- операции записи данных из управляющего контроллера в декодер
- операции записи данных в графический буфер кадров (16-ти битные пакеты)
Проверьте загрузку шины как показано в Таблице 1. Передача 20 Mbyte/s потока данных в графический контроллер, который содержит 16-ти битный буфер ввода, требует в общей сложности временных затрат, соответствующих 300 ns.
Таким образом, приемлемая пропускная способность равна 18.75 ns/byte или 53.3 Mbyte/s. По этой оценке данных, максимальная задержка системы, которая может быть допущена при прохождении 20 Mbyte/s равна 200 ns.
Это значит, что распакованные данные должны быть отправлены из платы DVD декодера в графический контроллер последовательно через шину PCI, имеющей поддержку захвата управлением (Bus Mastering).
Задержка для инициализации шины = 3 такта PCI по 30ns = 90 ns |
Состояние ожидания окончания цикла передачи пакета данных = 4 такта PCI по 30ns = 120 ns |
Время отсоединения PCI = 2 такта PCI по 30ns = 60 ns |
Возврат данных = 1 такт PCI по 30ns = 30 ns |
Общее количество тактов для пакета в 16 bytes = 10 тактов PCI по 30ns = 300 ns |
---|
А теперь посмотрите на другие параметры работы шины, показанные в Таблице 2. Оптимальная величина скорости чтения данных с DVD-ROM = 19 Mbyte/s.
Задержка для инициализации шины = 3 такта PCI по 30ns = 90 ns |
Состояние ожидания окончания цикла чтения пакета данных = 1 такт PCI по 30ns = 30 ns |
Время отсоединения PCI = 2 такта PCI по 30ns = 60 ns |
Возврат данных = 1 такт PCI по 30ns = 30 ns |
Общее количество тактов для пакета в 16 bytes = 7 тактов PCI по 30ns = 210 ns |
---|
Операции записи сжатых данных в декодер описываются исходя из предположения, что на плате DVD декодера имеется буфер ввода емкостью 16 байт, производим вычисления, также, как и для операций записи в графический буфер кадров: 1 PCI clks = 300 ns = 53.3 Mbytes/s — значение оптимальной пропускной способности.
Исходя из результатов, полученных в Таблицах 1 и 2, на рис. 5 представлена модель использования ресурсов шины. На рисунке изображена последовательность, которая предпочтительна для управления потоком данных DVD, процессом записи управляющего контроллера в декодер, который, в свою очередь, осуществляет последовательную запись в буфер кадров. Необходимо учитывать время, требуемое системе для осуществления функций общего назначения, поэтому учитываются такты шины ISA.
Временные задержки на чтение данных с DVD-ROM и запись данных в управляющий контроллер равны 1.53 ms и 3.06 ms соответственно, в результате чего мы имеем пропускную способность, равную 2.61 Mbytes/s и 5.22 Mbytes/s, что удовлетворяет требуемой ширине полосы пропускания для каждого устройства.
Из последовательности на шине, показанной выше, видно, что полный DVD видеопоток может проходить через PCI шину при следующихограничениях:
- В плату DVD декодера должно быть включено устройство для последовательного управления потоками, проходящими через PCI шину.
- Обновление изображения на экране или другие процессы в шине могут прерывать видеопоток и являться причиной пропуска видеокадров из-за задержки, превышающей максимально допустимое значение в 200 ns.
- Допустимая тактовая частота шины PCI должна соответствовать 33 MHz или выше. Так как тактовая частота системной шины и шины PCI взаимосвязанны, минимально допустимые характеристики системы должны быть следующими: тактовая частота системной шины — 66 MHz, а частота центрального процессора класса не ниже Pentium — 100 Mz.
Рекомендации
Так как ни одно из решений не является универсальным, любая из рассмотренных выше архитектур может быть использована для работы в предлагаемом виде. Однако, имейте в виду, что предпочтительным является вариант не использующий большой части ширины полосы пропускания шины PCI. Увеличение емкости буфера ввода в графических контроллерах нового поколения свыше 16 байт вполне решит проблему пропускной способности, но и увеличит стоимость конечного продукта.
С точки зрения самой ширины полосы пропускания шины, как таковой, передача распакованных видеоданных непосредственно в графический контроллер сделает возможным параллельное использование других устройств, интенсивно задействующих шины, таких, как 3D-акселлераторы и сетевые карты, одновременно с обработкой DVD видеопотока. Тем не менее, проблема совместимости должна быть решена, в итоге, подключение шины управляющего контроллера через PCI шину может быть хорошим компромиссом.
С точки зрения перспектив развития операционной системы, вышеизложенный подход поддерживается компанией Microsoft. Приводим цитату из спецификации PC'97 на аппаратное обеспечение.
Поддержка ускоренной обработки потоков MPEG-1 обеспечивается применением интерфейса ActiveMovie. Если система, сделаннная в соответствии со спецификацией PC'97 разработана для поддержки проигрывания высококачественного видео, то в нее должна быть включена поддержка на аппаратном уровне обработка потоков MPEG-2. Такая аппаратная поддержка может представлять из себя реализацию встроенного в системную плату устройства, интегрированного в графический контроллер или поставлятся в виде отдельно устанвливаемой платы-адаптера. Рекомендуемое решение таково: MPEG-2 декодер должен быть расположен на графическом адаптере — таким образом распакованные видеокадры не нужно передавать через шину PCI или шину памяти, декодированные данные напрямую передаются в графический контроллер.
Следующая цитата взята из раздела о развлекательных системах (Entertainment PC'97):
Наличие аппаратной реализации декодера MPEG-2 необходимо, если компьютер, предназначенный для развлечений, имеет устройство DVD-ROM или Direct Satellite Tuner (DSS — приемник прямого сигнала со спуттника), так как поток MPEG-2 является звуковым/видео форматом, в котором информация передается с этих систем. Если быть точным, то аппаратный декодер должен поддерживать:
- Основной формат и уровень скорости передачи данных MPEG-2 (720×480×4:2:2, 15 megabits/s).
- Захват управления шиной (Bus Mastering) при передачи данных из системной памяти (2 Mbytes/s).
- Прямую передачу распакованных данных в буфер кадров графического контроллера (YUV).
- Управление должно осуществляться драйвером DirectMPEG.
cайт компании LSI Logic — LSI Logic
«MPEG-2 PCI Bus Bandwidth Issues: A White Paper»