Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Заочка 2004.doc
Скачиваний:
7
Добавлен:
20.09.2019
Размер:
3.26 Mб
Скачать

Приложение г Видеокомпрессия

Виды избыточности

Как видно из предыдущей главы, перевод аналогового сигнала в цифровую форму обуславливает увеличение необходимой полосы пропускания канала связи. Необходимо передавать цифровой поток, скорость которого, как минимум, в 2*n раза больше, чем fв аналогового сигнала, где n – разрядность кодирования. По критерию Найквиста полоса частот, необходимая для передачи такого сигнала будет в n раз больше, чем для аналогового (скорость цифрового сигнала, который может быть передан по каналу связи с известной полосой пропускания, определяется как 2бит/с на 1 Гц полосы пропускания). Т.е. в одном Герце полосы частот можно передать цифровой сигнал со скоростью 2бит/с. Таким образом, один цифровой сигнал будет занимать n каналов соответствующего ему аналогового сигнала. Как же в цифровом вещании в полосе частот одного аналогового сигнала передают несколько цифровых?

Дело в том, что в вещательных сигналах есть избыточность, т.е. та информация, которую человек не способен воспринять, или та, которая передается несколько раз. Цифровая обработка позволяет изъять эту информацию из передаваемого сигнала, а на приемном конце, при необходимости, восстановить.

Избыточности, связанные с передачей телевизионного сигнала подразделяются на следующие:

  1. Избыточность телевизионного изображения (пространственная и временная);

  2. Избыточность телевизионного сигнала;

  3. Психофизическая избыточность.

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

Избыточность телевизионного сигнала – это строчные и кадровые гасящие импульсы, в течение которых не передается информация об изображении. К примеру, при исключении строчных и кадровых гасящих интервалов из сигнала стандарта 4:2:2 при десятиразрядном кодировании, скорость цифрового потока уменьшится с 270 до 207 Мбит/с. На приемном конце их, конечно, необходимо восстановить.

Психофизическая избыточность связана со свойствами зрения. Можно привести три примера этой избыточности:

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

  • цветовая разрешающая способность зрения меньше яркостной, поэтому сигналы цветности можно передавать с меньшей четкостью, т.е. кодировать с меньшей частотой дискретизации (эта избыточность устраняется в форматах разложения 4:2:2, 4:2:0 и 4:1:1 и даже в аналоговых системах цветного телевидения, где сигналы цветности передаются в меньшей полосе частот, чем яркостный сигнал);

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

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

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

Внутрикадровое кодирование

Первоначальной целью внутрикадрового кодирования является устранение пространственной избыточности телевизионного изображения. В его основе лежит ортогональное преобразование. Вспомним: пространственная избыточность вызвана тем, что соседние элементы изображения коррелированны, т.е. похожи друг на друга. Если заменить отсчеты изображения коэффициентами, несущими информацию о величине гармонических составляющих телевизионного сигнала, то этого можно избежать. Если в сигнале гармоника есть, то ее коэффициент будет ненулевым, если нет – нулевым. Нулевые коэффициенты не передаются, чем и достигается сокращение цифрового потока. Ортогональное преобразование подразумевает разбиение всего изображения (кадра) на блоки изображений, которые и пересчитываются в матрицы коэффициентов.

В качестве ортогонального преобразования используется дискретно-косинусное преобразование ДКП. ДКП работает с блоками изображений 8*8 элементов (рисунок 22).

Рисунок 22 - Формирование блоков изображения

В результате ДКП блоку изображения ставится в соответствие матрица коэффициентов базисных косинусоидальных функций. Эта матрица тоже имеет размер 8*8 коэффициентов (рисунок 23).

Рисунок 23 - Дискретно-косинусное преобразование

Дискретно-косинусное преобразование можно сравнить с преобразованием Фурье, при котором сигнал раскладывается на гармоники, но оно одномерно, т.к. сигнал меняется только во времени. ДКП преобразует двумерный блок изображения (вертикаль и горизонталь), поэтому коэффициенты ДКП тоже расположены в двухмерной матрице.

По каналу связи будут передаваться именно коэффициенты ДКП, а на приемной стороне происходит обратное преобразование матрицы коэффициентов в блок изображения, при этом никаких искажений не происходит, кроме шумов квантования, возникших при расчете коэффициентов ДКП. Но в чем же сокращение цифрового потока? Ведь вместо блока из 64 элементов изображения надо передать матрицу из 64 коэффициентов.

Местоположение коэффициента в матрице говорит о частоте и направлении изменения яркости по блоку изображения. Например, коэффициент, расположенный в верхнем левом углу – уровень постоянной составляющей, несет информацию о средней яркости блока изображения. Коэффициенты в районе постоянной составляющей – низкочастотные, а чем дальше они расположены от левого верхнего угла, тем о гармонике большей частоты они несут информацию. Это обстоятельство используется для сокращения психофизической избыточности: ведь высокочастотные коэффициенты можно квантовать на малое количество уровней.

Если яркость по блоку изображения меняется по горизонтали (вертикальные полосы), то в матрице будут присутствовать коэффициенты, расположенные в верхней строке. Если яркость меняется по вертикали (горизонтальные полосы) – в левом столбце. Все остальные коэффициенты будут равны нулю и передаваться не будут.

Еще привлекательней пример с однотонным изображением. При этом изменения яркости по блоку изображения не будет и в матрице ДКП появится только один ненулевой коэффициент. По каналу связи вместо 64 (8*8) элементов изображения будет передаваться только один коэффициент.

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

Выше говорилось только о блоках яркости. С сигналами цветности производится такое же преобразование, причем все блоки изображения в области 16*16 элементов изображения формируют макроблок. В создании одного макроблока будут участвовать 4 яркостных блока изображения (2*2), а количество блоков цветности зависит от структуры дискретизации кодируемого сигнала (рисунок 24).

Рисунок 24 - Макроблок при структуре дискретизации 4:2:2

При структуре дискретизации 4:2:2 в один макроблок входят, кроме четырех яркостных, еще четыре блока цветности – два R-Y и два B-Y, при структуре 4:2:0 – по одному блоку цветности, а 4:4:4 – по четыре.

Существует два вида внутренней организации макроблока:

1. С кадровым кодированием, где в один блок изображения входят строки обоих полей (рассмотрен выше).

2. С полевым кодированием (рисунок 25), где верхние блоки макроблоков сформированы нечетными строками, а нижние – четными строками.

Рисунок 25 - Организация блоков при полевом кодировании

Как отмечалось выше, ДКП производит разделение телевизионного сигнала на частотные составляющие, что очень удобно для сокращения психофизической избыточности. Низкочастотные коэффициенты можно квантовать на большое количество уровней, а высокочастотные - на малое. Для этого матрице коэффициентов соответствует матрица квантования с такими же размерами (8*8), в которой прописано количество разрешенных уровней квантования для каждого коэффициента. Причем значения в матрице квантования могут меняться в процессе передачи в режиме работы кодера «с постоянной скоростью и переменным качеством» (см. ниже).

Для вывода коэффициентов из матрицы используется зигзагообразное сканирование (рисунок 26).

Рисунок 26 - Порядок вывода коэффициентов из блока изображения

Дело в том, что в подавляющем большинстве блоков изображения будет большое количество нулевых коэффициентов, которые обычно расположены в высокочастотной части матрицы ДКП. Такая последовательность вывода коэффициентов позволяет сформировать наибольший массив нулей. Каждому ненулевому коэффициенту ставится в соответствие пара чисел. Первое – количество нулевых коэффициентов до ненулевого, а второе – само значение коэффициента. К примеру, представим, что в результате ДКП была получена матрица коэффициентов (рисунок 26), неотмеченные коэффициенты - нулевые. Для ее описания по каналу связи будет передана следующая информация:

(0,5)(0,1)(0,6)(3,3)(0,8)(1,2)(6,4)(1,1)(12,3)ЕОВ

Символ ЕОВ (конец блока) заменяет оставшийся массив нулей. Как видно, объем передаваемой информации намного меньше, чем при передаче 64 элементов изображения.

При передаче коэффициентов используется энтропийное кодирование – кодирование с переменной длиной слова (наиболее часто встречающимся значениям даются более короткие кодовые слова). Как декодер узнает, кодовое слово какой длины было передано? Энтропийное кодирование подразумевает передачу разделителей между кодовыми словами, которые являются сигналом для декодера об окончании предыдущего и начале следующего кодовых слов. Но разделители – техническая информация, необходимая для правильной работы системы, полезной информации они не несут и приводят к увеличению скорости цифрового потока. Использование этого в системах компрессии как минимум не прилично. Вместо этого используется код Хаффмана. Он префиксный, т.е. ни одно более длинное слово не начинается с другого, менее длинного; при этом не надо разделителей между словами. К примеру, представим, что самое короткое слово – 101. Ни одно другое кодовое слово, входящее в алфавит кода, не начинается с этой комбинации. Т.е. при приеме этого сигнала декодер определит, что продолжения быть не может, и кодовое слово закончено.

На рисунке 27 показана структурная схема кодера, реализующая вышеперечисленные методы уменьшения скорости цифрового потока.

Рисунок 27 - Внутрикадровое кодирование. Схема структурная

Входные видеоданные разбиваются на блоки изображений и пересчитываются в матрицы коэффициентов в блоки ДКП. Полученные коэффициенты квантуются на разное количество уровней в квантователе Кв. Количество уровней квантования определяется матрицей квантования МК. Затем данные кодируются в кодере с переменной длиной слова КПДС. Все разрешенные кодовые слова образуют алфавит кода АК, который есть в памяти КПДС. В декодере происходят обратные операции.

На этой схеме удобно объяснить режимы работы системы компрессии:

  1. С постоянной скоростью и переменным качеством;

  2. С переменной скоростью и постоянным качеством.

Начнем со второго. Ясно, что количество данных, необходимых для описания изображения, а, соответственно, и скорость цифрового потока на выходе кодера будут зависеть от самого изображения. Если изображение насыщено мелкими деталями, яркостными и цветовыми переходами, нулевых коэффициентов в матрицах ДКП будет мало, и скорость вырастет. И наоборот, если в изображении нет яркостных и цветовых переходов (однотонное поле), то большинство коэффициентов будут нулевыми – скорость данных упадет. Этот режим будет использован там, где нет ограничений на скорость и объем данных.

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

Вспомним, что мы ознакомились только с внутрикадровым кодированием, и эта схема способна кодировать только отдельные изображения (картинки, фотографии). Этот способ уменьшения объема видеоданных широко используется в компьютерной технике, а файлы, «сжатые» по этому алгоритму, имеют расширение .jpg, по названию стандарта сжатия JPEG (Joint Photographic Experts Group). При кодировании телевизионного сигнала, каждый кадр последовательности кодируется как отдельная картинка. Это широко используется в профессиональной технике (например, форматы записи семейства DV), т.к. возможен монтаж с точностью в один кадр без декодирования сигнала, при этом к названию стандарта добавляется буква М JPEG (движущийся JPEG).

Итак, подведем итог. Какие избыточности устраняет стандарт JPEG?

  1. Внутрикадровую, т.к. коэффициенты ДКП не коррелированы между собой.

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

  3. Избыточность телевизионного сигнала, т.к. не передаются кадровые и строчные гасящие интервалы.

Межкадровое кодирование

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

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

Рисунок 28 - Дифференциальная импульсно-кодовая модуляция

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

Надо заметить, что в такой системе необходимо передавать и целые кадры (опорные, кодированные только внутрикадрово), в нашем примере I0. Сигналы, действующие на блоках схем во время интервала времени кадра I0, указаны в скобках, а во время следующего кадра I1 – без скобок.

И так, во время передачи опорного кадра I0 предсказатель выключается, на выходе вычитателя действует I0=I0-0. Он внутрикадрово кодируется и передается по каналу связи. Здесь же он проходит операции декодирования (деквантование и инверсное дискретно-косинусное преобразование) и поступает в предсказатель (I0+0=I0). В это время в приемнике предсказатель также отключается, и на выходе сумматора действует кадр I0=I0+0. Во время действия кадра I1 на выходе предсказателя появляется кадр I0, и внутрикадровому кодированию подвергается разностный кадр I1-I0. Он передается по каналу связи, а на приемном конце складывается с предыдущим кадром, формируя текущий I1=I1-I0+I0. То же самое происходит и на передающем конце. К моменту времени кадра I2 кадр I1 перейдет на выход предсказателя. Как видно, на приемном конце получаются исходные кадры, а количество передаваемой информации намного меньше.

Недостатком систем с передачей разностных изображений является накопление ошибок. Если в передаваемых изображениях I0 и I1-I0 произошло по N ошибок, то в полученном кадре I1 ошибок будет в два раза больше: I1-I0+N+I0+N=I1+2N. Именно поэтому для получения разностного кадра в кодере используется обратное ДКП, хотя его можно было бы взять прямо с вычитателя. Но при этом предыдущие кадры в кодере и декодере отличались бы шумами квантования, появившимися при вычислении коэффициентов ДКП. А эти кадры должны быть совершенно одинаковые для правильного декодирования текущего кадра в декодере. Также накопление ошибок является причиной необходимости регулярной передачи по каналу связи опорных кадров (см. группы изображений).

Рассмотренная система эффективна при движении объекта на неподвижном фоне (камера неподвижна). В случае, если камера двигается, следит за объектом, передвигающимся на неоднородном фоне, все элементы изображения в соседних кадрах будут сдвинуты. Разностный кадр будет содержать большое количество информации. Вернемся к нашему примеру с бильярдом. Можно передать только два числа, характеризующих передвижение шара по вертикали и горизонтали. Эти числа X и Y называются вектором движения. Конечно, вместе с вектором движения необходимо передать и разностный кадр, т.к. в противном случае появится эффект скольжения, но он будет минимален по объему информации.

Есть три метода расчета векторов движения:

  1. Метод согласования блоков – макроблок текущего изображения проецируется на макроблоки предыдущего в некоторой зоне поиска. Макроблок, наименее отличающийся от текущего, принимается за опорный.

  2. Логарифмический метод происходит за несколько этапов. На каждом из этапов макроблок текущего изображения проецируется на макроблоки предыдущего в девяти контрольных точках. Вокруг точки, в которой макроблоки наименее отличаются друг от друга, организуется следующий, более точный этап поиска. Например, логарифмический метод 4:2:1. Первый этап с точностью в 4 элемента изображения, второй – в 2 и третий – в 1 элемент изображения. Этот метод позволяет найти вектор движения на площади изображения 15*15 элементов изображения с помощью всего 27 расчетов 3*9=27.

  3. Телескопический метод заключается в том, что, если объект двигался в каком-то направлении с какой-то скоростью, то с высокой степенью вероятности можно предположить, что он будет двигаться дальше в том же направлении и с той же скоростью. За начальное значение вектора движения принимается вектор движения для этого блока из предыдущего кадра, а вокруг получившейся точки образуется небольшая зона поиска.

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

Рисунок 29 - Система компрессии MPEG

Схема кодера отличается от предыдущей наличием определителя вектора движения ОВД, компенсатора вектора движения КВД, еще одного кодера с переменной длинной слова КПДС и мультиплексора М. Во время передачи опорного кадра I0 КВД отключен, и на выходе вычитателя действует I0. Во время передачи I1 в ОВД сравниваются текущий I1 и предыдущий I0 кадры, и рассчитываются вектора движения для каждого макроблока. В КВД все блоки изображения в предыдущем кадре I0 переставляются согласно рассчитанным векторам движения, формируется кадр I0+ВД. Теперь сравним I1 и I0+ВД: они очень похожи, т.к. все элементы изображения в кадре I0+ВД находятся там же, где и в кадре I1 (движение скомпенсировано). Разностный кадр I1-I0-ВД имеет большое количество нулевых зон и при внутрикадровом кодировании будет описан минимумом информации. Вектора движения так же кодируются с переменной длинной слова и в мультиплексоре замешиваются в единый цифровой поток. В декодере вектора движения выделяются из общего потока в демультиплексоре Дм. В КВД блоки предыдущего изображения переставляются, согласно им формируется I0+ВД, а в сумматоре складывается с I1-I0-ВД (формируется кадр I1). Передаваемое изображение сформировано при минимуме переданной информации.

Стандарты с сокращением временной избыточности носят название MPEG (Moving Picture Experts Group). MPEG – общее название стандартов, определяющих компрессию последовательностей динамических изображений.

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

Группы изображений

В системах видеокомпрессии используются три вида изображений I, P и В типа (рисунок 30).

Рисунок 30 Виды компрессированных изображений

Изображения типа I кодируются внутрикадрово (опорные). Изображения типа Р кодируются на основе предыдущих изображений типа I или Р. Используется межкадровое кодирование, поэтому они по объему информации в 3 раза меньше, чем I изображения. Изображения типа В двунаправленные, кодируются на основе предыдущих и последующих изображений I или Р типа и поэтому их объем в 1,5 раза меньше, чем у Р-изображений.

Изображения различных типов объединяются в группы изображений. Любая группа начинается с изображения I типа и описывается двумя числами N и M. N показывает количество изображений в группе, М – интервал между соседними изображениями типа Р. На рисунке 31 показана типичная группа изображений, описываемая числами (12, 3). Здесь изображение I0 – опорное, изображение Р3 кодируется на основе I0, изображения Р6 и Р9 на основе предыдущих Р изображений Р3 и Р6 соответственно. Изображения В1 и В2 - на основе предыдущего I0 и последующего Р3, изображения В4 и В5, В7 и В8 - на основе предыдущих и последующих изображений Р-типа, Р3 и Р6, Р6 и Р9 соответственно, а изображения В10 и В11 на основе предыдущего Р9 и последующего I0, входящего в состав другой группы изображений.

Рисунок 31 - Открытая группа изображений (12,3)

Ясно, что чем больше группа изображений и чем больше в ней изображений типа В, тем большего уменьшения скорости данных можно достигнуть. Но здесь есть и ряд недостатков. Представим, что в кадре I0 произошла ошибка. Эта ошибка будет присутствовать во всех изображениях группы, т.к. они все предсказаны на его основе (по стрелочкам можно дойти до любого изображения в группе). В нашем примере не один, а 12 кадров будут поражены (12*0,04=0,48с телевизионного изображения). И с увеличением группы изображений это время будет расти. Большое количество изображений В-типа приведет к необходимости наличия в декодере огромных массивов памяти, ведь для декодирования В изображений необходимо наличие в декодере последующего изображения Р или I типа. Поэтому при передаче меняется порядок следования изображений. Они передаются в порядке декодирования (рисунок 32).

Рисунок 32 - Порядок передачи изображений в группе

Группы изображений бывают открытые и закрытые. Открытые группы изображений (рисунок 31) заканчиваются на В-изображениях и связаны между собой. Нет возможности монтажа без декодирования сигнала. А перекодирование сигнала приведет к появлению дополнительных искажений, если вторичное кодирование не произведено по тем же параметрам, что и первичное. Широко используются закрытые группы изображений (рисунок 33).

Рисунок 33 - Закрытая группа изображений 10,3

Как видно из рисунка 33, закрытые группы заканчиваются на Р - изображениях, и они не связаны между собой. После Р9 можно поставить любую другую группу изображений (произвести монтажный переход).

На рисунке 34 показаны примеры групп изображений стандарта MJPEG (формат DV) и MPEG-2 в соответствии с профилем 422 (формат записи Betacam-SX). Ясно, что по объему информации (скорости данных) при прочих равных условиях, стандарт MPEG предпочтительней. Но здесь возникают проблемы при осуществлении монтажных переходов. Последнее изображение типа В, оставшееся от предыдущего сюжета, необходимо перекодировать в однонаправленное. Это ведет к усложнению аппаратуры.

Рисунок 34 - Группы изображений в стандартах M JPEG и MPEG – 2

Стандарты видеокомпрессии

Кодеры, работающие по стандартам MPEG, устраняют пространственную и временную избыточности телевизионного изображения, избыточность телевизионного сигнала и психофизическую избыточность. Методы сокращения пространственной и психофизической избыточностей совпадают с методами стандарта JPEG – это дискретно-косинусное преобразование, квантование на разное количество уровней и кодирование с переменной длинной слова. Временная избыточность сокращается использованием дифференциальной импульсно-кодовой модуляции и компенсации движения при предсказании.

Разработаны несколько стандартов компрессии MPEG. Наиболее известные из них: MPEG-1, MPEG-2, MPEG-4.

MPEG-1 – кодирование изображения и звука при скоростях данных до 1,5Мбит/с. Такой скорости потока не достичь без уменьшения четкости телевизионного изображения. Поэтому четкость изображения в стандарте MPEG-1 в два раза меньше и по вертикали и по горизонтали, чем в вещательном телевидении 288 строк, 352 строки.

MPEG-2 – обобщенное кодирование изображения и звука с вещательным качеством и качеством телевидения высокой четкости (ТВЧ). Для ТВЧ разрабатывался отдельный стандарт MPEG-3, но на каком-то этапе развития он был объединен со стандартом MPEG-2 и как самостоятельный не существует.

MPEG-4 – кодирование аудиовизуальных объектов. Разрабатывался для организации телеконференций по низкоскоростным линиям связи. По методу компрессии, MPEG-4 стоит на ступень выше первых двух стандартов, т.к. работает не с блоками изображений, а с объектами, т.е. с участками изображений одинаковой яркости и цветности. Ясно, что здесь форма блоков изображений будет произвольной и выбираться самим кодером исходя из условий оптимального кодирования. При этом на приемный конец необходимо передавать информацию о форме блока изображения (при внутрикадровом кодировании) и о изменении этой формы (при межкадровом кодировании). Но количество информации, необходимое для описания яркости (цветности) блока, будет минимальным.

MPEG-2

Наиболее известный из проектов группы MPEG – стандарт MPEG-2. Он определяет кодирование, охватывающее требования широкого круга приложений сферы производства и распределения телевизионных программ и насчитывает уже более 10 спецификаций. Из них можно выделить три:

  1. Systems;

  2. Video;

  3. Audio.

Системная спецификация описывает правила объединения данных видео и звука и объединения данных нескольких программ в единый поток.

Спецификация Видео описывает кодовое представление и процесс декодирования компрессированных изображений (основные методы кодирования описаны в главе Видеокомпрессия).

Спецификация Аудио определяет кодовое представление сигналов звукового сопровождения.

Спецификация Video

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

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

Низкий уровень (Low) – телевидение ограниченной четкости: в кадре 288 активных строк, и по 352 отсчета сигнала яркости в каждой строке. Основной уровень (Main) – телевидение обычной четкости: 576 активных строк и по 720 отсчетов в строке. Высокий-1920 (High) и высокий-1440(High-1440) – телевидение высокой четкости: 1152 активных строк и по 1440 отсчетов в строке (формат изображения 4/3) или 1920 отсчетов в строке (формат изображения 16/9). Высокие уровни определяют прогрессивное разложение изображения.

Шесть профилей задают шесть наборов функциональных операций по обработке видеоданных. Профиль, в котором используется наименьшее число возможных операций по обработке данных называется простым (Simple): используются ДКП и ДИКМ с компенсацией движения (только I и Р изображения). Следующий профиль – основной (Main), добавилась еще одна операция – предсказание по направлению (двунаправленное предсказание), используются кадры I, P и В.

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

Таблица 6 - Профили и уровни стандарта MPEG-2

Профиль

Simple

Main

SNR

Spatial

High

422

Уровень

Изображения

I и P

I, P и B

I, P и B

I, P и B

I, P и B

I, P и B

Формат

4:2:0

4:2:0

4:2:0

4:2:0

4:2:0

4:2:2

4:2:2

High

Отсчётов в строке

1920

1920

Строк в кадре

1152

1152

Кадров в секунду

60

60

Макс. скорость потока, Мбит/с

80

100

High-1440

Отсчётов в строке

1440

1440

1440

Строк в кадре

1152

1152

1152

Кадров в секунду

60

60

60

Макс. скорость потока, Мбит/с

60

60

80

Main

Отсчётов в строке

720

720

720

720

720

Строк в кадре

576

576

576

576

608

Кадров в секунду

30

30

30

30

30

Макс. скорость потока, Мбит/с

15

15

15

20

50

Low

Отсчётов в строке

352

352

Строк в кадре

288

288

Кадров в секунду

30

30

Макс. скорость потока, Мбит/с

4

4

SNR – профиль с масштабируемым коэффициентом сигнал-шум. Цифровой поток в этом случае состоит из двух слоев: нижнего (базового) и верхнего. При неблагоприятных условиях приема (комнатная антенна или приемник находится на подвижном объекте), принимается базовый слой, который мощно защищен от помех. Он несет основную информацию. Верхний слой в этом случае просто отключится, он несет информацию об ошибках квантования в базовом слое и менее защищен от помех. Это приведет к увеличению уровня шума, но система останется работоспособной. При благоприятных условиях приема верхний слой дополнит базовый и уровень шума будет низким.

Следующий профиль – специально масштабируемый (Spatial). Кроме используемых операций в предыдущем профиле, добавлена еще одна - разделение потока видеоданных по четкости. Весь поток состоит из трех слоев. Первый несет информацию о телевидении обычной четкости, второй дополняет ее до ТВЧ, а третий доводит уровень шумов на приемном конце до необходимого уровня. Здесь, как и в предыдущем профиле, слои по разному кодируются от ошибок. И, в зависимости от условий приема будут использованы один, два, или все три слоя.

Четыре первых профиля работают с сигналами, представленными в формате 4:2:0. Пятый профиль (High) работает с сигналами в формате 4:2:2.

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

Четыре профиля и шесть уровней дают 24 возможных комбинации, в таблице 6 указаны те из них, которые уже нашли применение в современной технике. Для них показаны максимальные скорости данных, при которых изображение на приемном конце будет свободно от каких-либо дефектов.

В настоящее время большинство кодеров, выпускаемых промышленностью, работают в основном профиле и основном уровне (MP@ML).

Спецификация Systems

Как уже отмечалось, системная спецификация определяет правила объединения потоков видео, звука и данных в один программный поток, и объединение нескольких программных в один транспортный. Первый шаг для получения программного и транспортного потоков – формирование пакетного элементарного потока PES (Packetised Elementary Stream).

Рисунок 35 Формирование пакетного элементарного потока

Он состоит из PES-пакетов (рисунок 35)

Длина PES пакета может быть произвольной, фиксированной или переменной. Каждый PES пакет начинается с заголовка, который состоит из стартового префикса, и идентификатора потока, который позволяет выделить PES пакеты, принадлежащие одному элементарному потоку. Возможно определение пакетов из 32 потоков звука и 16 потоков видео. Здесь же передается информация о длине PES пакета и о длине его заголовка, могут передаваться метки времени представления PTS и метки времени декодирования DTS

Программный поток объединяет несколько элементарных потоков, образующих одну программу и имеющих общую временную базу (рисунок 36).

Рисунок 36 Формирование программного потока

Образуются блоки из PES пакетов разных элементарных потоков. В начале блока идет заголовок блока и системный заголовок (необязательный). На длину блока нет никаких ограничений, кроме того, что заголовки блока должны появляться не реже, чем через 0,7 секунд, т.к. в них передается опорное системное время, необходимое для подстройки «часов» декодера. Системный заголовок несет информацию о характеристиках программного потока: скорость данных, количество элементарных потоков. Декодер по этой информации определяет, сможет ли он декодировать этот программный поток.

К недостатку программного потока следует отнести то, что он предназначен для использования в среде без помех, т.к. используются сравнительно большие блоки переменной длины.

Транспортный поток предназначен для объединения элементарных потоков нескольких программ, имеющих разные временные базы. Он состоит из коротких пакетов по 188 байт, четыре из которых - заголовок пакета, а 184 байта – полезная нагрузка. Формирование пакетов (рисунок 37) производится по следующим правилам:

  • Первый байт PES пакета должен быть первым байтом полезной нагрузки транспортного пакета;

  • Транспортный пакет должен содержать информацию одного PES пакета;

  • Если PES пакет имеет объем не кратный 184 байтам, то один из транспортных пакетов, переносящих этот PES пакет, дополняется полем адаптации, которое переносит дополнительную информацию об использовании этого потока, например, опорное время программы PCR;

  • Транспортные пакеты от различных элементарных потоков могут идти в произвольном порядке, но транспортные пакеты одного элементарного потока должны передаваться в порядке нарезания.

Рисунок 37 Формирование транспортного потока

Первый байт заголовка транспортного пакета – синхробайт (число 47 в шестнадцатеричной системе исчисления). 13 бит – идентификатор транспортного пакета PID (для распознавания принадлежности пакетов элементарным потокам). Из 8192=213 возможных значений 17 отведено для специальных целей (например, транспортный пакет с PID=0 передает таблицу соединения программ). Таким образом, транспортный поток может переносить данные 8175 элементарных потоков. Четыре бита заголовка отведено на счетчик непрерывности, который считает транспортные пакеты одного элементарного потока. Это удобно при больших уровнях шума в канале связи, например, при потере одного транспортного пакета, декодер определит его отсутствие и примет меры по маскированию ошибок.

Транспортный поток адаптирован к работе в неблагоприятном окружении (в присутствии шумов). Это видно по сравнительно малой и фиксированной длине транспортных пакетов. Благодаря этому же транспортный поток может переносить элементарные потоки нескольких программ, но за это приходится платить более сложной схемой мультиплексирования, чем в программном потоке.

В системе MPEG-2 существуют четыре вида таблиц с программной информацией:

  1. таблица соединения программ PAT (Program Association Table), сообщает список всех программ, передаваемых в транспортном потоке и PID транспортных пакетов с таблицами планов программ;

  2. таблица плана программы PMT (Program Map Table), сообщает об элементарных потоках, из которых складывается программа и PID транспортных пакетов, несущих информацию этих потоков;

  3. таблица сетевой информации NIT (Network Information Table) сообщает о характеристиках используемых каналов;

  4. таблица условного доступа CAT (Conditional Access Table)

Все таблицы передаются в качестве полезной нагрузки транспортных пакетов. Таблица PAT единственная в потоке и передается в пакете с PID=0. Количество таблиц PMT равно количеству передаваемых программ в транспортном потоке.

Рассмотрим принцип мультиплексирования (рисунок 38) и демультиплексирования (рисунок 39) программ.

Рисунок 38 Формирование многопрограммного транспортного потока

В первом мультиплексоре (назовем его программным) формируется программный транспортный поток (рисунок 37), с добавлением транспортного пакета с таблицей плана программы PMT (таблица 7).

Она передается (в нашем случае) в транспортных пакетах с идентификатором PID=20. В нашем примере в таблице PMT будет четыре значения, определяющих идентификаторы транспортных пакетов, переносящих элементарные потоки этой программы. Четвертый – PID пакета, переносящего метки опорного времени программы. Обычно PID пакетов, переносящих опорное время, совпадает с PID пакетов видео. Во втором мультиплексоре происходит сложение транспортных потоков нескольких программ, с добавлением таблицы соединения программ PAT, таблица 8. Она передается в транспортном пакете с PID=0. И несет информацию о значениях идентификаторов транспортных пакетов с таблицами плана соответствующих программ.

Таблица 7 Таблица плана программы PMT

Элементарный поток

Значение PID

Видео

100

Звук

101

Данные

102

Опорное время

100

Таблица 8 Таблица соединения программ PAT

Номер программы

Значение PID пакетов с PMT

0

16

1

20

2

30

Номер программы 0 отведен для обозначения PID транспортных пакетов с таблицей сетевой информации NIT, в нашем случае 16.

Рассмотрим процесс выделения элементарных потоков одной программы из многопрограммного транспортного потока, рисунок 39.

Рисунок 39 Выделение элементарных потоков

При декодировании транспортного потока, сначала выделяется транспортный пакет с таблицей соединения программ PAT, она передается в пакете с PID=0. По этой таблице определяется PID транспортного пакета с таблицей плана необходимой программы PMT. По этой таблице определяются PID транспортных пакетов элементарных потоков, составляющих данную программу.

Таким образом, иерархический механизм, образованный всеми таблицами с системной информацией позволяет легко объединять и разделять элементарные потоки различных программ.

Синхронизация

В эпоху аналоговых сигналов только телевизионный сигнал отличался наличием сигналов синхронизации, в цифровых системах, при передаче любого первичного сигнала необходима синхронизация. Цель синхронизации – восстановление тактовой частоты, восстановления частоты пакетов данных, а в системах компрессии – и определение времени воспроизведения принимаемых данных.

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

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

Рисунок 40 Укрупненная схема системы MPEG-2

Скорость данных на выходе кодера компрессии зависит от передаваемого изображения, а скорость данных, передаваемых по каналу связи, должна быть постоянной. Этот вопрос решается за счет использования буфера кодера (см. главу Видеокомпрессия). На приемный конец компрессированные изображения поступают с переменной частотой (изображения I,P и B имеют разные объемы данных), а должны воспроизводится с постоянной частотой. Этот вопрос решается за счет буфера декодера.

Правильное время задержки обеспечивают метки времени, которые ставятся в соответствие блокам доступа (передаваемым изображениям). Метки времени несут информацию о том, когда блок доступа должен быть извлечен из буфера и декодирован.

Для правильной интерпретации меток времени в декодере, в нем должно быть собственное системное время, причем необходимо обеспечить подстройку «часов» декодера с «часами» кодера. Для этого системное время кодера регулярно передается на приемный конец. Системное время программы отсчитывается в периодах частоты 27МГц. Эта информация передается в программном потоке в заголовке блока программного пакета, а в транспортном потоке в поле адаптации транспортного пакета с соответствующим идентификатором PID. Отсчеты системного времени в программном потоке называются SCR (System Clock Reference), они должны появляться не реже, чем через 0,7 секунды, отсчеты программного времени в транспортном потоке называются PCR (Program Clock Reference), они должны появляться не реже, чем через 0,1 секунды. Транспортный поток несет информацию о нескольких программах, с разными временными базами, поэтому для каждой программы передается свое системное время. Идентификатор пакета, в котором передаются отсчеты программного времени, обычно такой же, как у пакетов видео этой программы.

Итак, в системе MPEG-2 передаются два вида отсчетов системного времени SCR и PCR, назначение у них одно - подстройка «часов» декодера.

Вернемся к меткам времени, сопровождающим блоки доступа. Существует два вида этих меток. PTS – метки времени представления и DTS – метки времени декодирования. Каждый блок доступа может сопровождаться этими метками, и значения их будут различными. Это объясняется тем, что для декодирования В изображения в декодере должно уже находится последующее Р изображение. Метки PTS определяют момент времени, в который декодированное изображение должно быть подано на выход декодера, а метки DPS – момент времени, в который блок доступа извлекается из буфера декодера и декодируется.