Компрессия видеоданных
Телевизионный сигнал, как известно, избыточен, что обусловлено значительной избыточностью изображений, типичных для телевизионного вещания. В общем случае большая часть изображения любого телевизионного кадра обычно приходится на участки; имеющие постоянную или мало меняющуюся в пространстве яр* кость, а резкие световые переходы и детали малых размеров занимают небольшую долю площади изображения. Коэффициент корреляции соседних элементов изображения, описывающий статистическую связь между яркостями этих элементов, близок к 1. Зная яркость одного элемента, можно с высокой степенью вероятности предсказать яркость соседнего, например, полагая их просто равными. Такого рода избыточность можно назвать пространственной избыточностью изображения.
Изображения соседних кадров в телевидении обычно очень похожи друг на Друга, даже при показе движущихся объектов. Переходы от сюжета к сюжету встречаются редко. Межкадровая разность на значительной части площади изображения обычно близка к нулю. Зная распределение яркости в одном кадре, можно с высокой степенью уверенности предсказать распределение яркости следующего кадра. Эта предсказуемость указывает на временную избыточность изображения.
Пространственная и временная формы избыточности связаны со статистическими свойствами телевизионных изображений.
Таким образом, в телевидении различают статистическую избыточность, избыточность по восприятию, структурную и спектральную избыточность. По теории вероятностей избыточность является следствием определенных корреляционных связей. Корреляция означает, что некоторый элемент изображения более или менее существенно зависит от соседей в пространстве и во времени. Под статистической избыточностью понимают корреляционные связи между соседними (по вертикали и горизонтали) отсчетами телевизионного сигнала. Необходимо подчеркнуть, что снижение избыточности в этом случае до определенных пределов обратимо, т.е. без потерь информации. Примером такого «беспроигрышного» кодирования служит предсказание на основе ДКП. Можно назвать и другие разностные методы.
Избыточность по восприятию связана с особенностями зрения человека. Например, цветовое разрешение нашего зрения ниже яркостного. Эта особенность учтена во всех стандартных аналоговых системах цветового кодирования. В совместимых системах вещательного телевидения NTSC, PAL и SECAM цветовое разрешение существенно понижено по отношению к яркостному. То же самое зафиксировано в цифровом стандарте 4:2:2, где, по определению, две цветоразностные компоненты представлены таким же по объему информационным массивом, что и один яркостный сигнал.
Учитывая эту особенность нашего зрения по восприятию мелких деталей цветного изображения, можно в несколько раз сократить полосу частот при передаче и кодировании сигналов цветности.
Структурная избыточность - итог особенностей стандарта разложения или, по иному, преобразования изображения в телевизионный сигнал. В нем, например, периодически передаются неизменные по форме элементы сигнала: гасящие импульсы строк и полей. В цифровом телевизионном сигнале нет необходимости передавать эти импульсы по каналу связи, так как они могут быть восстановлены в декодере по опорным сигналам синхронизации. В цифровом телевидении достаточно передавать только активную часть изображения. В цифровом стандарте 4:2:2 при 10 битах на отсчет устранение из состава цифрового телевизионного сигнала гасящих импульсов строк и полей сокращает скорость передачи данных с 270 Мбит/с до 207 Мбит/с, т.е. примерно на 23%. Естественно, эта особенность сигнала учтена в стандарте MPEG-2.
Спектральная избыточность проявляется как результат излишка высокой частоты дискретизации. В частности, принятая ортогональная структура дискретизации телевизионного изображения в общем случае не является оптимальной в частотном пространстве. Можно сократить передаваемый цифровой поток, если преобразовать используемую структуру дискретизации в другую, которая характеризуется меньшим числом отсчетов в кадре, например, от формата 4:2:2 перейти к формату 4:2:0 или 4:2:1. Используя интерполяцию и передискретизацию определенным образом выбранных групп отсчетов телевизионного сигнала, можно, в принципе, видоизменить спектральный состав и снизить частоту дискретизации. Такая обработка обычно необратима и, как правило, ведет к некоторому снижению качества восстановленного телевизионного изображения за счет уменьшения его разрешения. В стандарте MPEG-2 этот вид избыточности не устраняется.
Итак, в MPEG-2 применены известные, давно апробированные методы сокращения избыточности. Вместе с ними использованы и новые подходы. В особенности это относится к совокупности согласованных алгоритмов сокращения статистической избыточности. Здесь особо эффективными оказались два метода: кодирование телевизионных отсчетов с предсказанием и ДКП.
Кодирование с предсказанием реализуется с помощью дифференциальной импульсно-кодовой модуляции (ДИКМ). При кодировании с предсказанием вычисляется разность между истинным и предсказанным значением отсчета. Затем разность квантуется по уровню. От точности предсказания зависит среднее число бит, необходимых для передачи разностной информации. Предсказание может быть экстраполяционным. В этом случае (его часто называют предсказанием вперед) по предшествующим значениям отсчетов телевизионного сигнала оцениваются последующие отсчеты. Интерполяционное (двунаправленное) предсказание означает, что оценка среднего по положению отсчета телевизионного сигнала выполняется по известным значениям предшествующих и последующих отсчетов. Такое предсказание наиболее точно оценивает текущие отсчеты. Однако за точность приходится расплачиваться возросшим объемом вычислений и соответственно памяти, необходимой при реализации. При этом эффект не окупает затраты.
Как уже отмечалось, предсказание выполняется по соседним с предсказываемым отсчетам, причем под соседними надо понимать отсчеты, расположенные «до» и «за» рассматриваемым. К ним надо добавить соседей в предшествующей и последующей строках, полях и кадрах. Таким образом, возможно построчное, межстрочное, внутриполевое, внутрикадровое, межполевое, межкадровое предсказание. Это полный набор возможных направлений корреляций. Но уже подчеркивалось, что предсказание вдоль отдельной строки по предшествующему и последующему элементу не эффективно. Поэтому же критерию можно отсеять и некоторые другие возможные направления.
При простейшем внутриполевом предсказании вперед предшествующий отсчет телевизионной строки принимается как ожидаемый уровень последующего отсчета. Фактически это означает вычеркивание постоянной составляющей или, что то же самое, выделение разностной информации. Такой метод предсказания особенно эффективен, когда передаются крупные, не содержащие мелких деталей, фрагменты изображения, где яркость постоянна или изменяется медленно.
Другой способ - межкадровое предсказание вперед. В этом случае текущий отсчет оценивается по отсчету с теми же координатами, но предыдущего кадра. Это очень эффективный метод предсказания для неподвижных изображений. Ситуация усложняется, когда изображение содержит движущиеся объекты или изменяющиеся в целом. В этом случае отсчеты, принадлежащие однозначным элементам изображения, от кадра к кадру будут смещаться. Возникает разностная информация, даже если в остальном никаких изменений не происходит. Это можно ослабить, если ввести компенсацию движения. Для этого необходимо определить векторы перемещения движущихся частей изображения при последовательном переходе от кадра к кадру. Векторы движения позволяют определить положение кодируемого отсчета в новом кадре (скомпенсировать его перемещение) и, таким образом, сохранить высокую точность предсказания.
Таким образом, стандарт MPEG-2 фактически не регламентирует методы сжатия видеосигнала, а только определяет структуру битового потока кодируемого видеосигнала. Поэтому конкретно используемые алгоритмы зависят от собственных разработок фирм-производителей оборудования. При этом ярко выражены общие принципы построения стандарта MPEG-2, в соответствии с которыми процесс сжатия цифрового видеосигнала может быть разбит на ряд последовательных операций: преобразование аналогового сигнала в цифровую форму, предварительная обработка, ДКП, квантование, кодирование (рис. 6.14).
После АЦП производится предварительная обработка сигнала, которая включает в себя следующие преобразования.
1. Удаление избыточной информации. Например, если фон изображения состоит из идентичных символов (пикселей), то совершенно не обязательно их все передавать. Достаточно описать один пиксель и послать его с сообщением о том, как часто и где он повторяется в изображении.
2. Если исходное изображение передается в виде чересстрочных полей, то они преобразуются в кадры с прогрессивной разверткой.
3. Цветоделенные сигналы ER, ЕG, ЕB преобразуются в цветоразностные сигналы U и V и сигнал яркости Y.
4. Изображение достраивается до кратного 16 количества пикселей по строкам и столбцам, чтобы обеспечить разбиение изображения на целое число макроблоков.
5. Производится преобразование стандарта цифрового представления телевизионного сигнала 4:4:4 в стандарт 4:2:2 (горизонтальная передискретизация цветоразностных компонентов) или 4:2:0 (горизонтальная и вертикальная передискретизации цветоразностных компонентов).
6. Изображение разбивается на последовательность макроблоков, каждый из которых, в свою очередь, состоит из нескольких блоков размером 8x8 пикселей. (Исследования проводились по разбиению на блоки размером 4x4, 8x8, 16x16 пикселей, которые показали, что разбиение 8x8 является наилучшим компромиссом между точностью преобразования, т.е. минимальной среднеквадратической ошибкой, и необходимым объемом вычислений.) В этом случае каждый блок представляет собой квадратную матрицу, содержащую 64 отсчета телевизионного сигнала и называемую сигнальной.
Рис. 6.14. Функциональная схема устройства кодирования с информационным сжатием по стандарту MPEG-2
Рис. 6.15. Схема разбивки изображения на блоки при реализации формата цветности 4:2:0
Следовательно, макроблок несет информацию о компонентах яркости определенного участка изображения и пространственно соответствующих им компонентах цветности. Поэтому любой макроблок состоит из трех прямоугольных матриц, содержащих восьмибитовые отсчеты, а именно: матрицы яркости YD и двух матриц цветности Сr и Сb. Цифровые отсчеты матриц YD, Сr и Сb непосредственно связаны с первичными значениями красного, зеленого и синего (R, G, В) соответствующих точек изображения. Значения первичных цветов гамма-предкорректированы. Причем величина гамма-коэффициента стандартом не определяется, но обычно находится в диапазоне 2,2...2,8.
Стандартами цифрового кодирования предусматриваются три формата цветности, каждому из которых соответствует свой порядок следования блоков в макроблоке:
4:2:0 - макроблок состоит из шести блоков. Четыре блока, несущие информацию о яркости, образуют матрицу YD размером 16x16 пикселей. Два блока цветности, определяющие цветоразностные компоненты U и V, соответствуют матрицам Сr и Сb с размерами 8x8 пикселей. Причем матрицы цветности Сr и Сb соответствуют области изображения, покрываемой матрицей яркости YD. Матрицы Сr и Сb в два раза меньше (как по горизонтали, так и по вертикали), чем матрица YD. Матрица YD должна иметь четное число строк и столбцов (если изображение передается по полям, то количество строк в изображении должно быть кратно четырем). Каждой паре отсчетов цветности Сr и Сb соответствует матрица из четырех отсчетов яркости (два по вертикали, два по горизонтали) (рис. 6.15). Порядок следования блоков в макроблоке формата цветности 4:2:0 следующий:
YD | Сr | Сb | |
4:2:2 - макроблок состоит из восьми блоков. Четыре блока яркости образуют матрицу YD. Четыре блока цветности соответствуют матрицам Сr и Сb, каждая из которых содержит по два блока. Порядок следования блоков в макроблоке в данном случае следующий:
YD | Сr | Сb | |
Матрицы цветности Сr и Сb в два раза меньше матрицы яркости YD по горизонтали и равны по вертикали. Матрица YD должна иметь четное число строк и столбцов (если изображение передается по полям, то количество строк в изображении должно быть кратно двум). Каждой паре отсчетов яркости по горизонтали соответствует по одному отсчету из матриц цветности Сr и Сb.
4:4:4 - макроблок состоит из двенадцати блоков. Он содержит четыре блока яркости и восемь блоков цветности в следующем порядке:
YD | Сr | Сb | |||
Матрицы цветности Сr и Сb равны по размеру матрице яркости YD. Каждому отсчету яркости соответствуют по одному отсчету из матриц цветности Сr и Сb. Если изображение передается полями с чересстрочной разверткой, то количество строк в изображении должно быть кратно двум.
Внутренняя организация макроблоков различна при кодировании полей и кадров. Пары полей могут кодироваться как раздельно, так и вместе как единый кадр. При кодировании полей блоки яркости группируются по полям: верхний - из первого полукадра, нижние - из второго. Блоки цветности располагаются в порядке следования кадров для обоих типов кодирования. Два полукадра, составляющие один кадр, всегда следуют один за другим в битовом потоке. При кодировании кадрами чересстрочных изображений каждый кадр набирается из двух полукадров (через строку) и кодируется как единое изображение.
Следующие друг за другом макроблоки объединяют в независимые друг от друга серии (Slice - слайсы). Серия является основным элементом синхронизации для восстановления данных, составляющих изображение, и обычно состоит из всех блоков в горизонтальном направлении изображения с интервалом 16 строк, т.е. имеет толщину в один макроблок. Порядок макроблоков в серии тот же, что и в обычном сканировании растра в телевидении: слева направо и сверху вниз. Представление информации сериями удобно для коррекции ошибок. Когда появляется ошибка в потоке данных, декодер может обратиться к началу следующей серии. Соответственно число таких серий влияет на эффективность передачи. Каждая серия (слайс) должна содержать, по крайней мере, один макроблок. Первый и последний макроблоки в серии не должны быть пропущенными. Серии не должны перекрываться и не должно быть интервалов между сериями. Положение серий (слайсов) может меняться от изображения к изображению. Первая серия начинается с первого макроблока, а последняя серия заканчивается последним макроблоком изображения. Кадр делится на несколько смежных серий.
1. Производится разбиение потока кадров изображения по типам, для них находятся векторы движения, которые необходимь для повышения предсказуемости величин элементов изображения Векторы движения обеспечивают компенсацию перемещений в прошедших и последующих кадрах.
2. Для блоков с использованием компенсации движения находятся разностные ошибки предсказания движения.
В соответствии со стандартом MPEG-2 в декодере выполняются декодирование кодов переменной длины, деквантование, обратное ДКП, компенсация движения и восстанавливается исходная последовательность кадров (рис. 6.16).
Декодер содержит буферное запоминающее устройство (БЗУ), демультиплексор (ДМп), декодеры кодов с переменной длиной кодовых слов (ДКПДС), а также деквантователь (ДКв), блок обратного дискретного косинусного преобразования (ОДКП), предсказатель (Пред) и ЗУ, аналогичные соответствующим блокам кодера. Тактовая частота 27 МГц восстанавливается с использованием данных из декодируемого потока.
БЗУ на входе декодера выполняет функцию согласования постоянной скорости передачи двоичных символов во входном потоке данных с процессами в декодере, при которых данные из БЗУ считываются неравномерно во времени. С выходов демультиплексора кодированные данные изображения и значения параметра квантования поступают на ДКПДС и далее на деквантователь, а векторы движения поступают на ДКПДС и далее на предсказатель.
Рис. 6.16. Структурная схема видеодекодера MPEG-2
Так же, как и в кодере, в декодере имеются два режима работы. При приеме I-кадров и передаваемых с внутрикадровым кодированием макроблоков Р-кадров и В-кадров на выходе блока обратного ДКП формируются блоки изображения. Переключатель на структурной схеме при этом находится в положении 1, и сигнал с блока обратного ДКП направляется на выход. При приеме макроблоков Р-кадров и В-кадров, кодируемых в межкадровом режиме, переключатель находится в положении 2. В этом случае формирование выходного сигнала происходит путем поэлементного сложения поступающих с блока обратного ДКП значений разностей с предсказанным макроблоком, формируемым из элементов ранее декодированных изображений с использованием декодированных векторов движения.
Реализация декодера аппаратными, программными или аппаратно-программными средствами существенно проще, чем реализация кодера, так как в декодере не надо выполнять поиск соответствующих областей в опорных изображениях, а именно этот поиск требует наибольшего количества вычислений.
Кодируемые кадры
Базовым объектом кодирования в стандарте MPEG-2 является кадр телевизионного изображения. При этом очевидно, что для телевизионных сигналов, в которых смешаны различные сюжеты с разными типами движений «от ничего до много» простое предсказание, в принципе, не обеспечит высокую эффективность. По этой причине в стандарте MPEG-2 используются три вида предсказаний: внутрикадровое и межкадровое предсказание вперед с компенсацией движения, межкадровое двунаправленное предсказание также с компенсацией движения.
Формат видеоинформации в стандарте MPEG-2 содержит три типа кадров (I, Р, В) [16].
Основные, так называемые I-кадры (IntraFrames) обрабатываются только с применением внутрикадрового предсказания. Они кодируются независимо от других кадров, так как обрабатываются с использованием собственной информации, т.е. по принципу случайного доступа к сжатым видеоданным. Они применяют кодовое преобразование блоков элементов изображения и обеспечивают умеренное сжатие. Это первый этап сжатия видеоданных. Зато при восстановлении телевизионного изображения по I-кадрам оно менее всего деградирует и зависит от ошибок кодирования и передачи видеоданных по каналу связи I-кадры служат опорными при межкадровом предсказании Р и В кадров.
Р-кадры (Predicted Frames), т.е. кадры с предсказанием, с компенсацией движения. Кодирование осуществляется с учетом ближайших предшествующих I или Р-кадров. Этот способ называется с предсказанием вперед, так как используется «разностная» схема сжатия, при которой сохраняются только отличия от предшествующего кадра. В Р-кадрах, если сравнивать их с I-кадрами, в три раза выше достижимая степень сжатия видеоданных.
Обработка видеоданных в Р-кадре выполняется по макроблокам. Каждый макроблок обрабатывается с использованием алгоритмов компенсации движения и предсказания вперед, пока в блоке не появится новый объект. С этого момента процесс кодирования переключается на алгоритмы, используемые в I-кадрах, т.е. на внутрикадровое предсказание. Р-кадры являются опорными для последующих Р или B-кадров. Отметим, что необходима высокая точность восстановления исходного изображения при декодировании опорных Р-кадров. Дело в том, что ошибки опорного кадра распределяются по всем кадрам, связанным с опорным.
При компенсации движения, применяемой к макроблокам Р-кадров, вырабатывается два вида информации: векторы движения (разница между базовыми и кодированными макроблоками) и значения ошибок (разница между предсказанными величинами и действительными результатами). Если макроблок в Р-кадре не может быть описан с использованием компенсации движения, что случается при появлении некоторого неизвестного объекта, то он кодируется тем же способом, что и макроблок в I-кадре.
В-кадры (Bi-Directional Frames), т.е. кадры с двунаправленным предсказанием, с компенсацией движения. Для формирования В-кадров также используется «разностная» схема сжатия аналогично Р-кадрам, однако, в качестве «базовых» кадров используются оба соседних кадра: предыдущий и последующий. Этот способ называется двунаправленным предсказанием.
Алгоритмы кодирования В-кадров зависят от характера телевизионного изображения. Предусмотрено четыре способа кодирования. В одном применяется компенсация движения и предсказание вперед по ближайшим предшествующим опорным I или Р-кадрам, в другом - компенсация движения и обратное предсказание по ближайшим последующим I или Р-кадрам. Обратное предсказание используется в тех случаях, когда-в кодируемом В-кадре появляются новые объекты изображения. Третий алгоритм - компенсация движения и двунаправленное предсказание, при котором опорными являются предшествующий или последующий I или Р-кадры. И, наконец; это внутрикадровое предсказание без компенсации движения. Такое кодирование нужно при резкой смене передаваемых сюжетов, а также при больших скоростях перемещения объектов телевизионного изображения. С В-кадрами связано наиболее глубокое сжатие видеоданных. Поскольку высокая степень сжатия снижает точность восстановления исходного телевизионного изображения, В-кадры не используются в качестве опорных. Ошибки при их декодировании не распределяются по другим кадрам.
Очевидно, что точность кодирования должна быть максимальной для I-кадров, ниже для Р-кадров и минимальной для В-кадров.
В стандарте MPEG-2 порядок записи информации о телевизионных кадрах не совпадает с порядком кодирования и декодирования. Так, для декодирования текущего В-кадра требуется обработать следующий кадр, поэтому необходимо иметь дополнительный буферный блок памяти в декодирующем устройстве для хранения информации об очередном кадре. Рассмотренное усложнение декодирующего устройства компенсируется улучшением субъективного качества воспроизводимого изображения за счет В-кадров на 20%.
Изображения различных типов объединяются в повторяющиеся серии, называемые группами видеокадров (ГВК). Порядок кодирования, декодирования и воспроизведения видеокадров указанных трех типов может быть различным. Для примера на рис. 6.17 изображен один из вариантов сочетания видеокадров, обеспечивающих минимизацию энтропии, т.е. количества битов на элемент изображения. Группа начинается с изображения типа I, образующего опорный сигнал для предсказания при кодировании изображений других типов. Группа изображений должна быть достаточно большой, если необходимо добиться высокой степени компрессии. ГВК заканчивается непосредственно перед появлением следующего I-кадра. ГВК определяет границы межкадрового кодирования. Многочисленные исследования эффективности различных сочетаний Р и В-кадров в ГВК показали, что последовательности длинных ГВК целесообразно использовать только для высококачественных незашумленных изображений. Однако большое число В-кадров означает значительную задержку, так как I или Р-кадры, окружающие кадры В-типа, уже должны быть в декодере к моменту декодирования В-кадра.
В начале каждого сюжета должен стоять I -кадр, в конце - Р-кадр. Увеличивать долю В-кадров можно только в рамках одного сюжета, иначе возникнут большие ошибки предсказания и компенсации движения. Поскольку типичная длительность группы кадров (во временном представлении - примерно 0,5 с) значительно меньше характерного расстояния между границами сюжетов, то в большинстве случаев жесткое задание структуры ГВК не приводит к существенным визуальным ошибкам из-за того, что смена сюжета попадает внутрь группы кадров [17].
Рис. 6.17. Цикл кодирования и декодирования по стандарту MPEG:
а - порядок кодирования и декодирования изображений;
б - порядок воспроизведения изображений
При передаче по каналу связи порядок следования I, Р и B-кадров меняется.
Дата добавления: 2016-03-15; просмотров: 2553;