MPEG форматы

Реферат - Компьютеры, программирование

Другие рефераты по предмету Компьютеры, программирование

ммы в компрессированном виде, ведь архивы должны быть огромными. Казалось бы, в таких платных системах рекламы не должно быть, однако некоторые провайдеры таких услуг будут предлагать сниженные расценки в обмен за включение рекламных вставок. В серверной системе с тысячами выходов коммутация потоков, конечно, должна быть в компрессированной форме.
Какой должна быть коммутация потоков данных? По своему внешнему проявлению она должна быть похожа на смену сюжета в рамках одной программы. По своей внутренней сути это, конечно, не просто коммутация, а сращивание потоков данных, при котором полученный поток будет соответствовать синтаксису и семантике MPEG-2. В стандарте такое сращивание называется склейкой потоков (splicing).

Проблемы

Есть три причины, налагающие ограничения на коммутацию потоков данных MPEG-2:

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

Решение этой проблемы требует наличия буфера декодера, в который блоки доступа загружаются за разное время, а выгружаются через равные интервалы. Буфер не должен ни переполняться, ни опустошаться полностью. Опустошение означает отсутствие данных для декодирования, что может быть преодолено замораживанием последнего декодированного кадра. Переполнение приводит к худшим последствиям, поскольку оно означает потерю данных, из-за чего воспроизводимое изображение может быть искажено до пор, пока не придет новый I-кадр. Стандартные кодеры MPEG работают таким образом, что исключается и переполнение, и опустошение буфера. Однако в момент коммутации параметры потока данных меняются скачком, что может привести к нарушению нормальной работы буфера, при которой его емкость заполняется в среднем на 50%.

Возможности MPEG-2

Перечисленные проблемы приводят к тому, что лишь отдельные точки потока данных подходят для склейки без изменения кодированных данных объектов доступа (рис.25). В спецификации MPEG эти точки и называются точками склейки. Коммутация двух потоков и переход от старого потока к новому возможны лишь в том случае, если точки склейки двух потоков совпадают во времени.
Синтаксис MPEG-2 предусматривает средства для обеспечения склейки даже на уровне транспортного потока, отличающиеся высокой фрагментацией. Среди этих средств первое место принадлежит счетчику пакетов до точки склейки. Счетчик представляет собой 8-разрядный счетчик, который декрементируется с каждым пакетом и состояние которого становится равным нулю в ближайшей потенциальной точке склейки. Счетчик располагается в поле адаптации транспортного пакета. Его назначение сообщить коммутационному оборудованию о возможной склейке и указать ее точное положение.



Буфер, бесшовная склейка и стандартизация

Спецификация MPEG-2 определяет вычислительную модель буфера VBV (Video Buffering Verifier), позволяющую оценить степень заполнения буфера декодера в процессе кодирования. Рис.27 иллюстрирует работу модели при декодировании группы изображений из 12 кадров. Блоки доступа поступают в буфер непрерывно, причем скорость заполнения буфера пропорциональна скорости кодированного потока. Блоки доступа загружаются в буфер за разное время, поскольку кодированные изображения имеют разный объем данных. Выгружаются данные из буфера через одинаковые интервалы, равные частоте кадров воспроизводимого изображения, причем выгружаются целиком и моментально (это ведь модель, точные параметры этого процесса зависят от конкретной реализации буфера и декодера, поэтому детали процесса выгрузки данных из буфера декодер должен продумать самостоятельно). Требуется некоторое время (стартовая задержка), чтобы декодер смог декодировать и воспроизвести первое изображение, а после этого допустить выгрузку из буфера первого блока доступа. Спустя некоторое время после загрузки последнего блок доступа декодер сможет воспроизвести по

 

 

 

 

следнее декодированное изображение (финишная задержка). В этот момент буфер полностью опустошается. Желательно, чтобы линия, показывающая заполнение буфера, колебалась вокруг значения в 50% и не подходила к предельным значениям 0 и 100%. Есть и другие соображения, которые надо учитывать при склейке. Если, например, стартовая задержка нового потока значительно больше финишной задержки старого, то после того, как будет воспроизведено и выгружено из буфера последнее изображение старого потока, то придется долго ждать декодирования и воспроизведения первого изображения нового потока (рис.28). Это приведет, например, к замораживанию последнего изображения старого потока и заметной склейке. Если, например, скорость нового потока значительно больше скорости старого, то склейка будет еще более заметной (рис.29), поскольку при этом буфер переполняется и часть данных теряется. Означает ли это, что в общем случае бесшовная и незаметная склейка потоков MPEG-2 невозможна? Конечн