В. Столлингс - Современные компьютерные сети (2-е издание, 2003) (1114681), страница 158
Текст из файла (страница 158)
Основная работа по сжатию осушегхвляется путем дискретного волнового преобразования (П)зсгеге 1Чаче1ег Тгапз(огш, 1)ЪтТ). Чтобы оптимально представить ! сигнал с помощью элементарных волн, все изображение сканируется в поисках материнской волны, ошптмально соответствуюшей данному изображению. Однако материнскую волну требуется передавать вместе с данными изображения, что увеличило бы размер сжатого файла Вместо этого используется универсальная материнская волна. Стандарт ПРЕС 2000 позволяет достичь коэффициента сжатия до 200:1 для сжатия с потерями и 2:1 для сжатия без потерь. Рис. 21.
16. Блок-схема алгоритма ЗРЕБ 2000 Затем полученные в результате волнового преобразования коэффициенты квантуются. Как и при любом процессе квантования, качество воспроизведения тем выше, чем больше количество уровней квантования. После квантования каждый полдиапазон разделяется на прямоугольные области, называемые кодовыми блоками (сог1е Ыоскз), как правило, 64 х 64 или 32 х 32- Каждый кодовый блок кодируется независимо без потерь данных при помошп одной из разновидностей арифметического кодирования (см. раздел 20.3). Лрифь~е тическое кодирование выполняется таким образом, что младшие входные биты легко отбросить. Это эквивалентно большему шагу квантования. На последнем этапе кодирования сжатые данные всех кодовых блоков организуются в уровни путем распределения частоты.
Последовательнгяе уровни содержат дополнительные сжатые данные от некоторых или от всех кодовых блоков- Если декодируются только некоторые уровни, то получается изображение с более низким качеством. Как правило, качество означает меру искажения или разреше ния, однородную по всему изображению, но оно может быть различным для Раз ных областей изображения.
692 Глава 21. Сжатие с потерями 21.4. Стандарт кЛРЕ6 693 ется от соответствующей части соседнего кадра. В алгоритме МРЕС используются две формы компенсации движения: предсказание и интерполяция. Предсказание В алгоритме МРЕС для компенсации движения используются блоки по 16 х 16 пикселов, называемые макпоблокани (в отличие от меньших по размеру блоков 8 х 8 пикселов, используемых при дискрепюм косинуспом преобразовании) Обрабатываемый в режиме предсказания кадр разделяется на макроблоки, каждый из которых кодируется отдельно.
Коли)ювание выполняется при помощи ссылки на так называемый якорный каЗР (апсЬог 1гаше), предвпествующий текущему, Каждый макроблок текущего кадра должен быть представлен указателем, называемым вектором движения (тонов уесгог), на хпп. макроблок в якорном кадре, наиболее близко совпадающий с данным макроблоком. Вектор движения содержит информацию о располоякении макроблока в текущем кадре относительно соответствующего макроблока в якорном кадре. В примере, показанном парис. 21,18, каждый видеокадр состоит из 64 х 64 пикселов, сгруппированных в 16 макроблоков.
Затененная часть текущего кадра представляет собой макроблок,чей левый верхний пиксел находится в позиции (16, 8). Этому блоку соответствует блок в предыдугцем кадре с координатами (24, 4). Короткая стрелка в левом кадре изображает вектор движения, который в данном случае равен (8, — 4). Распакованный предыдущий каор Рис. 21.18. Компенсация движения опека Ключевые аспекты прогностического кодирования перечислены далее: + Соответствующий макроблок в предыдущем кадре не обязан находиться на 16-пиксельной границе макроблоков.
+ Совпадающие макроблоки ищутся не в оригинальном видеопотоке, а в кадрах, улке подвергшихся сжатию и распаковке, так как у распаковываюшего модуля нет доступа к исходным видеокадрам. Найдя совпадающий блок в предыдущем кадре, алгоритм МРЕС записывает вектор движения и ошибку предсказания, представляющую собой матрицу 16 х 16 разностей между текущим макроблоком в кадре с и опорным макроблоком и Е,(х,у) =1,(х,у) — Ц(х,у)+ М ). Здесь Е„(х, у) представляет собой окпибку предсказания, А(х, у) — значение пиксела, расположенного в позиции (х, у) в кадре к, а ̄— вектор движения для кадра к относительно кадра 6 Таким образом, текущий кадр преобразуется в матрицу ошибок предсказания, каждое аначение которой соответствует одному пикселу, и векторы движения, по одному для каждого макроблока.
В матрице предсказаний будет много нулевых значений. Эта матрица кодируется путем дискретного косинусного преобразования, в результате чего должен достигаться более высокий уровень сжатия, чем при применении этого преобразования напрямую к оригинальному кадру. Стандартом МРЕО не определяется способ поиска соответствий. Как правило, вектор движения макроблока получается прн минимизации оценочной функции, измеряющей разность между макроблоком и каждым кандидатом из предыдущего кадра. Эти вычисления могут быть представлены формулой ппп '„к С(У,(х,у) — Е,((х,у)+ т)1 . к нв Здесь: + В; — макроблок в текущем кадре 1;, + т — вектор перемепгения относительно опорного кадра 1,; + М вЂ” диапазон поиска в опорном кадре; + С вЂ” оценочная функция.
Значение т, минимизирующее предыдущее выражение, используется в качестве вектора движения М для этого блока. Диапазон поиска может распространяться на весь кадр, а может быть ограничен небольшим смещением. Интерполяция Хотя метод предсказания позволяет получить более высокие коэффициенты сжатия, чем простое покадровое сжатие, алгоритм 1РЕС позволяет достичь большего. В частности, можно кодировать некоторые кадры с помощью двух опорных кадров, предыдущего и последующего.
Такой подход, называемый двунаправленной интерполяцией (Ьип йгесбопэ1 )пгегро1абоп), дает возможность получать более высокие коэффициенты сжатия, чем при использовании всего одного опорного кадра. Чтобы понять, как двунаправленная интерполяция позволяет добиться лучших результатов, рассмотрим сцену, двигающуюся относительно кадра со скоростью пол-пиксела за кадр. Мы не сможем найти соответствующий макроблок в текущем кадре на основе предыдущего кадра.
Однако среднее значение из предыдувцего н последующего кадров обеспечивает точное совпадение, причем матрица ошибок будет вся состоять из нулей. Рисунок 21.19 иллюстрирует метод, используемый при двунаправленной интерполяции. Текущий кадр, называемый В-кадром, обрабатывается по двум опорным кадрам: предшествующему н последующему. Каждый макроблок может кодиро ваться на основании предыдущего кадра (предсказание вперед), следукяпего кадра (предсказание назад) или обоих кадров (усреднение) в зависимости от того какой метод дает минимальную матрицу ошибок. В табл.
21Л приведены форму 694 Глава 21. Сжатие с потерями 21.4. Стандарт)у)РЕО 696 Предсказание вперед Двунаправленное предсказание Очередность передачи 1 4 2 3 8 5' 8 7 1РВВРВ 1В Группа изображений Режим Предсказание Стандарты М РЕЯ Предсказание вперед Предсказание назад Усреднение л(2) = й(2+ Ми) 142) )т(2+ Мн) Чк) = ()о(2+ Ми) + )г(2+ Ми))/2 лы для каждого варианта, при атом цифрой 1 обозначается текущий кадр, Π— пред шествующий опорный кадр, 2 — последующий опорный кадр, а 2 — вектор (х„у) Рис. 21.19.
Пример двунаправленной интерполяции Таблица 21.1. Режимы предсказания макроблоков в В-кадре В случае двунаправленной интерполяции должно быть закодировано большее количество информации. Как и для кадров, ссылающихся на один опорный кадр, формируется разцостная матрица, которая затем кодируется путем дискретного косинусного преобразования.
Кроме того, в каждом макроблоке указываются режим предсказания (вперед, назад, усреднение) н один или два вектора движения. Упорядочивание кадров Стандартом МРЕС определены три типа кадров: + 1-кадр (пйга1гаше — внутренний кадр). Независимое неподвижное изобра жение, закодированное алгоритмом 1РЕС. + Р-кадр (ргегйсгей 1гаше — предсказанный кадр). Кадр, закодированный с учетом предыдуп(его якорного кадра. + В-кадр (Ъ(г)(гесг)опа! (птегро!асей 1гаше — кадр после двунаправленной интерполяции).
Кадр, закодированный с учетом предыдущего и следу7ашего якорных кадров. Относительную частоту, с которой эти типы кадров встречаются в видеопатоке, можно настраивать. Это требуется, во-первых, чтобы предоставить возможность цронзвольного доступа н быстрой перемотки вперед и назад, что накладывает н7окнюю границу на долю 1-кадров в кодированном потоке.
Во-вторых, существует компромисс между сложностью вычислений и количеством В-кадров: чем больше Б-кадров, тем больше потребуется вычислений. Наконец, В-кадры могут обрабатываться только относительно 1-кадров и Р-кадров, то есть один В-кадр це может служить о77арнь)м кадром для другого В-кадра. Поэтому чем выше доля В-кадров, тем больше среднее расстояние между В-кадром и его опорными кадрами и тем меньше корреляция между В-кадром и его опорными кадрами.
Правила кодирования выглядят следуюгцим образом. Каждый 1-кадр кодируется только при помощи внутрикадрового четода ПРЕС). Кажлый Р-кадр кодируется на основе ближайшего предыдущего 1-кадра нли Р-кадра. Каждый В-кадр кодируется на основе двух ближайших 1-кадров или Р-кадров. Кадры МРЕС организуются в группы. Каждая группа состоит из одного 1-кадра, за которым следует несколько Р-кадров или В-кадров. Поскольку В-кадр не может быть декодирован, пока не будут декодированы оба опорных кадра, члены труппы реорганизуются таким образом, что оба опорных кадра передаются перед В-кадрам, В примере на рис.
21.19 первые шесть кадров образуют группу. После кадра 1 сохраняется кадр 4, так как он используется в качестве опорного для В-кадров 2 и 3. Кадры 5 и 8 меняются местами по тай же причине. В-кадр 7 записывается как часть следующей группы, потому чта он кодируется на основе опорного 1-кадра 8.
Работа над стандартом М РЕС началась в 1988 г. С тех пор было вьшущено несколько стандартов МРЕС. + МРЕС-1. Это первый интегрированный стандарт кодирования аудио- и видеоданных. Он позволяет кодировать движущееся изображение вместе со звуком. Полученные данные могут храниться на любом цифровом носителе достаточной емкости кли передаваться по каналу со скоростью до 1,5 Мбит/с. Этот стандарт получил широкое распространение. Он включает подраздел Ацд)о 1.ауег 3, также известный как МР3, касающийся кодиро вания стереозвука. + МРЕС-2. В стандарте МРЕС-1 недоставало методов, необходимых для поддержания стандартного телевещания с чересстрочной разверткой и хорошим сжатием Эти средства были добавлены в стандарт МРЕС-2. В настоян(ее время этот стандарт широко применяется в цифровом телевидении и 17 т~().