Потоки MPEG-2 и проблема ширины полосы пропускания шины PCI


 

Вступление

Устройства чтения Цифровых Видео Дисков (Digital Video Disk, так же известные, как Digital Versite Disk или DVD), являются новым стандартом для проигрывания высококачественного видео с высоким разрешением. Однако, применение DVD в PC порождает много новых дополнительных требований к подсистеме Ввода/Вывода. Существует много инженерных решений и предложений, которые необходимо учитывать при разработке адаптеров декодирования DVD. Эта статья поможет разобраться в особенностях различных технологических решений, здесь Вы сможете прочитать следующее:

  • Описание типичного примера движения потоков DVD данных в системе
  • Определения требований к ширине полосы пропускания системы с DVD
  • Описание трех потенциально возможных вариантов реализации систем декодирования данных DVD
  • Обсуждение за и против всех трех предлагаемых решений

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

Движение потоков данных DVD в системе

На Рис. 1 изображены наиболее важные составляющие DVD системы для PC

Picture N1

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

В качестве минимальных рекомендаций, можно выделить следующие:

  1. Устройство DVD должно подключаться через шину PCI с поддержкой Bus Mastering (т. е. с возможностью захвата устройством управления шины) через адаптер, реализующий подключение через интерфейс ATAPI/EIDE, SCSI или IEEE 1394 (FireWire).
  2. Определение структуры потока и предварительное декодирование осуществляется программным способом за счет CPU.
  3. Графический контроллер подключен через шину PCI или AGP и должен иметь входной буфер, позволяющий прини-мать пакет данных, проходящий за четыре такта шины PCI (AGP) или соответствующий размеру 16 байт, без введения дополнительных временных задержек или потери соединения.
  4. Распакованные звуковые данные конвертируются в аналоговый вид и передаются в звуковую карту через кабель, аналогичный тому, который используется для передачи звука с 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, является главной темой дискуссии о преимуществах той или иной архитектуры и рассматривается ниже.  

Архитектуры систем

Предлагаемых к обсуждению архитектур всего три:

  1. MPEG-2/AC-3 декодер тесно интегрирован в графиче-ский контроллер.
  2. Управляющий порт MPEG-2/AC-3 декодера расположен на шине PCI, при этом распакованные видеоданные напрямую передаются в графический контроллер.
  3. Управление декодером MPEG-2/AC-3 и видеоданными осуществляется через шину PCI.
 

Декодер MPEG-2/AC-3, интегрированный в графический контроллер

Архитектурное решение, показанное на Рис 2., представляет из себя соединение, сделанное напрямую через ши-ну GPIO (General Purpose I/O — основного Ввода/Вывода) и видеопорт, когда декодер MPEG-2/AC-3 интегрирован в гра-фический контроллер.

Picture N2

В случае такой реализации, сжатые MPEG-2 и AC-3 данные передаются в графический контроллер через шину PCI. Далее, графический адаптер передает данные через свой GPIO порт в управляющий порт декодера. Распакованные ви-деоданные напрямую передаются в видеопорт графического контроллера и хранятся в его буфере кадров. Физически такая реализация обычно представляет собой интегрированный декодер в графический процессор или подключенную через специальный коннектор дочернюю плату с декодером на ней.  

Шина PCI как управляющий контроллер декодера

В архитектуре, показанной на Рис.3 порт управляющего контроллера декодера MPEG-2 и AC-3 напрямую подключен к шине PCI, при этом распакованные видеоданные все еще передаются в графический контроллер через вход видеопорта, минуя шину PCI.

Picture N3

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

Главное преимущество этого решения — более удобное подключение через шину PCI, однако при этом теряется некоторая гибкость в использовании, т. к. возникает необходимость поиска универсального способа подключения к видеопорту графического контроллера. И кроме того, эта реализация требует наличия в системе свободного слота PCI.  

Декодер DVD на шине PCI в качестве контроллера управляющих и видео данных

В архитектуре, показанной на рис. 4, сжатые управляющие данные и распакованные видеоданные передаются через шину PCI.

Picture N4

Использование отдельной 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).

Таблица 1. Операции записи данных в буфер кадров.
 
Задержка для инициализации шины = 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.

Таблица 2. Операции чтения данных с DVD-ROM.
 
Задержка для инициализации шины = 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.

Picture N5

Временные задержки на чтение данных с DVD-ROM и запись данных в управляющий контроллер равны 1.53 ms и 3.06 ms соответственно, в результате чего мы имеем пропускную способность, равную 2.61 Mbytes/s и 5.22 Mbytes/s, что удовлетворяет требуемой ширине полосы пропускания для каждого устройства.

Из последовательности на шине, показанной выше, видно, что полный DVD видеопоток может проходить через PCI шину при следующихограничениях:

  1. В плату DVD декодера должно быть включено устройство для последовательного управления потоками, проходящими через PCI шину.
  2. Обновление изображения на экране или другие процессы в шине могут прерывать видеопоток и являться причиной пропуска видеокадров из-за задержки, превышающей максимально допустимое значение в 200 ns.
  3. Допустимая тактовая частота шины 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»





Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.