Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

Схема, сокращающая скорость цифрового потока по этому алгоритму, показана на рисунке 11.7.

 

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

 

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

Надо заметить, что в такой системе необходимо передавать и целые кадры (опорные, кодированные только внутрикадрово), в нашем примере 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. Телескопический метод заключается в том, что, если объект двигался в каком-то направлении с какой-то скоростью, то с высокой степенью вероятности можно предположить, что он будет двигаться дальше в том же направлении и с той же скоростью. За начальное значение вектора движения принимается вектор движения для этого блока из предыдущего кадра, а вокруг получившейся точки образуется небольшая зона поиска.

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

Рис. 11.8 Система компрессии MPEG

 

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

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

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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.