Спецификация MPEG-2 определяет вычислительную модель буфера VBV (Video Buffering Verifier), позволяющую оценить степень заполнения буфера декодера в процессе кодирования. Рисунок 3.19 иллюстрирует работу модели при декодировании группы изображений из 12 кадров. Блоки доступа поступают в буфер непрерывно, причем скорость заполнения буфера пропорциональна скорости кодированного потока. Блоки доступа загружаются в буфер за разное время, поскольку кодированные изображения имеют разный объем данных. Выгружаются данные из буфера через одинаковые интервалы, равные частоте кадров воспроизводимого изображения, причем выгружаются целиком и моментально (это ведь модель, точные параметры этого процесса зависят от конкретной реализации буфера и декодера, поэтому детали процесса выгрузки данных из буфера декодер должен «продумать» самостоятельно).
Рисунок 3.19 – заполнение буфера декодера
Требуется некоторое время (стартовая задержка), чтобы декодер смог декодировать и воспроизвести первое изображение, а после этого допустить выгрузку из буфера первого блока доступа. Спустя некоторое время после загрузки последнего блок доступа декодер сможет воспроизвести последнее декодированное изображение (финишная задержка). В этот момент буфер полностью опустошается.
|
|
Желательно, чтобы линия, показывающая заполнение буфера, колебалась вокруг значения в 50% и не подходила к предельным значениям 0 и 100%. Есть и другие соображения, которые надо учитывать при склейке. Если, например, стартовая задержка нового потока значительно больше финишной задержки старого, то после того, как будет воспроизведено и выгружено из буфера последнее изображение старого потока, то придется долго ждать декодирования и воспроизведения первого изображения нового потока (рисунок 3.20).
Рисунок 3.20 – Склейка транспортных потоков с заменым переходом (стартовая задержка нового потока значительно больше финишной задержки старого потока)
Это приведет, например, к замораживанию последнего изображения старого потока и заметной склейке. Если, например, скорость нового потока значительно больше скорости старого, то склейка будет еще более заметной (рисунок 3.21), поскольку при этом буфер переполняется и часть данных теряется.
Рисунок 3.21 – Склейка транспортных потоков с заметным переходом (скорость нового потока больше скорости старого потока)
Очевидно, при переключении надо тщательно следить, чтобы коммутируемые потоки данных не вызывали недостаточное или избыточное заполнение буфера.
При безразрывном переключении недостаточное заполнение буфера будет, вероятно, более приемлемо, чем его переполнение. В последнем случае при возможном отсутствии данных в формирователе, будет иметь место лишь задержка в их доставке.