Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 212
Текст из файла (страница 212)
В теории дискретное косинусное преобразование является преобразованием без потерь (обратимым), но на практике использование чисел с плавающей точкой и трансцендентных функций приводит к ошибкам округления, в результате чего часть информации теряется. Обычно элементы матрицы ДКП-коэффициентов быстро убывают с расстоянием от элемента (О, 0), как показано на рис. 7.39. Мультимедиа 78д (:) и с ы от х рх Рио. 7.39.
Один блок матрицы У (а), 'ДКП-коэффициенты (б) По завершении дискретного косинусного преобразования алгоритм ) РЕС переходит к этапу 3, называемому квантованием, в котором наименее важные ДКП-коэффициенты удаляются. Это преобразование (с потерями) выполняется делением всех коэффициентов ДКП-матрицы на табличные весовые коэффициенты. Если все весовые коэффициенты равны 1, то это преобразование ничего не меняет. Однако при резком росте весовых коэффициентов по мере удаления от элемента матрицы (О, О) более высокие пространственные частоты быстро теряются. ДКП-коэффициенты Квантованныв коэффициенты таблица квантования Рио.
7.40. Квантование ДКП-коэффициентов Пример этого этапа работы алгоритма показан на рис. 7АО. Здесь мы видим исходную ДКП-матрицу, таблицу квантования и результат деления каждого 790 Глава 7. Прикладной уровень ДК~-элемента иа соответствующий элемент таблицы квантования. Значения в таблице квантования пе являются частью стандарта 1РЕб. Каждое приложение должно содержать свою таблицу весовых коэффициентов, что позволяет ему контролировать соотношение потерь и коэффициеита сжатия.
На четвертом этапе значение, содержащееся в элементе (О, 0) каждого блока (в левом верхнем углу квадрата), заменяется его отклонением относительно зиачеиия в предыдущем блоке. Так как зти значения представляют собой усредненные величины своих блоков, оии должцы меняться медленво, следовательно, полученные в результате разности должны быть иевелики. Для остальных зиачеиий разности ие вычисляются. Значения элементов (О, О) называются РС-компоиеитами, а остальные элементы — АС-компоиеитами. На пятом этапе 64 элемента блока выстраиваются в ряд, к которому примеияется кодирование длин серий.
Чтобы сконцентрировать нули в конце ряда, сканирование блока выполняется зигзагом, как показано иа рис. 7.41, В нашем примере в конце блока группируется 38 нулей. Эта строка нулей заменяется просто числом 38. В этой замене и состоит результат работы метода, называемого кодироваиием длин серий. Рис. 7.41. Порядок передачи каантоаанных значений Теперь у иас есть список чисел, представляющий изображение (в траисфор мироваииом виде). На шестом этапе применяется код Хаффмана (Нцпшап), присваивающий часто встречающимся последовательностям короткие кодьц а редко встречающимся — более длинные коды.
Алгоритм )РЕО может показаться сложным, ио это только потому, что ои и в самом деле является таковым. Тем не менее, ои широко применяется, так как позволяет сжимать фотографии в 20 и более раз. Для декодирования сжатого изображения нужно выполнить все те же операции в обратном порядке. Алгоритм ПРЕС почти симметричен: декодирование занимает столько же времени, сколько и кодирование. Это справедливо далеко ие для всех алгоритмов, как мы увидим позже.
Мультимедиа 791 Стандарт МРЕО Наконец мы подходим к ключевому вопросу мультимедиа — стандартам МРЕС (Мойоп Р1сгпгез Ехреггз Сгопр — экспертная группа по вопросам движущегося изобрюкения). Эти стандарты, ставшие международными в 1993 голу, описыва|о| основные алгоритмы, используемые зшя сжатия видеофильмов.
Поскольку фильмы содержат как изображение, так и звук, алгоритмы МРЕС занимаются сжатием и того, и другого. Принципы сжатия аудиоданных и неподвижных изображений мы рассмотрели ранее, поэтому этот раздел мы посвятим обсуждению алгоритмов сжатия видео. Первым законченным стандартом стал стандарт МРЕС-1 (Международный Стандарт 11172).
Его целью было создание выходного потока данных качества бытового видеомагнитофона (352х240 для ХТ5С) на скорости 1,2 Мбит/с. Мы уже видели ранее, что несжатый поток видеоинформации может составлять 472 Мбит/с (для экрана размером 1024к768). Для экрана 352х240 потребуется в 9,3 раза меньший поток данных, то есть 50,7 Мбит/с. Тем не менее и это значение намного превышает 1,2 Мбит/с, так что данную задачу никак нельзя назвать тривиальной. Видеофильм в формате МРЕС-1 можно передавать по витой паре на умеренные расстояния.
Кроме того, фильмы в этом формате можно хранить на компакт-дисках. Следом появился стандарт МРЕС-2 (Международный стандарт 13818), разрабатывавшийся для сжатия видеофильмов качества широковещания до скорости потока от 4 до 6 Мбит/с, что позволяло передавать этот фильм в цифровом виде по стандартному телевизионному каналу ХТБС или РА)..
Позднее стандарт МРЕС-2 был расширен для поддержки видеосигнала более высокого разрешения, включая НОТЧ, Сейчас он очень популярен, поскольку составляет основу Г)Ч1) и цифрового спутникового телевидения. Основные принципы стандартов МРЕС-1 и МРЕС-2 одинаковы. В первом приближении станларт МРЕС-2 является расширением стандарта МРЕС-1 с дополнительными возможностями, форматами кадров и вариантами кодирования. Сначала мы рассмотрим МРЕС-1, а затем МРЕС-2. Алгоритм МРЕС-1 состоит из трех частей: аудио- и видеошифраторов и системы, объединяющей эти два потока данных, как показано на рис. 7А2.
Системы кодирования аудио и видео работают независимо, в результате чего возникает проблема синхронизации этих потоков в приемнике. Для решения этой проблемы используются системные часы, работающие на частоте 90 кГц. Показания этих часов хранятся в 33-битных счетчиках, что позволяет указывать время в интервале 24 часов. Эти отметки времени вносятся в закодированный результат и передаются получателю, который может использовать их для синхронизации изображения и звука. Перейдем к рассмотрению сжатия видеоинформации с помощью алгоритма МРЕС-1. В видеофильмах имеется избыточность двух типов: пространственная и временная.
Алгоритм сжатия МРЕС-1 использует оба типа. Чтобы использовать пространственную избыточность, можно просто кодировать каждый кадр отдельно алгоритмом )РЕС. Иногда такой подход применяется, особенно если нужен прямой доступ к каждому кадру, например, при редактировании видеоизображе- 792 Глава 7. Прикладной уровень ния, Этот режим сжатия позволяет снизить поток данных до скорости от 8 до 10 Мбит/с. Рио. 7.42. Синхронизация аудио- и аидаолотокоа а МРЕС-1 Дополнительного сжатия можно достичь, используя преимущество того факта, что идущие подряд кадры часто бывают почти идентичны.
Может показаться, что этот эффект не столь уж велик, так как в большинстве фильмов сцены часто меняются — в среднем каждые 3-4 с.. Тем не менее даже последовательность в 75 очень близких кадров позволяет применить значительно большее сжатие, нежели с помощью компрессии отдельных кадров алгоритмом )РЕС.
В сценах, в которых камера и задний план неподвижны и один или два актера медленно двигаются, почти все пикселы в соседних кадрах будут идентичны. В этом случае простое вычитание каждого кадра из предыдущего и обработка разности алгоритмом ) РЕС даст достаточно хороший результат. Однако этот метод плохо подходит к сценам, в которых камера поворачивается или наезжает на снимаемый объект.
Для таких сцен необходим какой-то способ компенсировать это движение камеры. В этом и состоит основное отличие МРЕС от ) РЕС. Выходной поток МРЕС-1 состоит из кадров четырех следующих типов: 1. 1 (1пггасот(ед — автономные) — независимые неподвижные изображения, ко- дированные алгоритмом )РЕС. 2. Р (Ргеп1ст(уе — предсказывающие) — содержат разностную информацию от- носительно предыдущего кадра. 3.
В (Впйгесйопа1 — двунаправленные) — содержат изменения относительно пре- дыдущего и последующего кадров. 4. 0 (1)С-содец — усредненные) — содержат усредненное по блоку значение, ис- пользуемые для быстрой перемотки вперед. 1-кэдры представляют собой обычные неподвижные изображения, кодированные алгоритмом )РЕС с использованием полного разрешения яркости и половинного разрешения для обоих сигналов цветности. 1-кадры должны периодически появляться в выходном потоке по трем причинам.
Во-первых, должна быть возможность просмотра фильма не с самого начала. Зритель, пропустивший первый кадр, не сможет декодировать все последующие кадры, если все кадры булут зависеть от предыдущих и 1-кэдры не будут время от времени включаться в поток. Во-вторых, дальнейшее декодирование фильма станет невозможным в слу- Мультимедиа 798 чае ошибки при передаче какого-либо кадра. В-третьих, наличие таких кадров существенно упростит индикацию во время быстрой перемотки вперед или назад. По этим причинам 1-кадры включаются в выходной поток примерно одиндва раза в секунду.
Р-кадры, напротив, представляют собой разность между соседними кадрами. Они основаны на идее макроблоков, покрывающих 16х16 пикселов в пространстве яркости и 8х8 пикселов в пространстве цветностн. При кодировании макро- блока в предыдущем кадре ищется наиболее близкий к нему макроблок. Пример использования макроблоков показан на рис. 7АЗ. Здесь мы видим три последовательных кадра с одинаковым задним планом, различающихся только положением человека. Макроблоки, содержащие задний план, будут полностью совпадать друг с другом, но макроблоки, содержащие человека, будут смещаться на некоторую величину.
Именно для этих макроблоков алгоритм должен найти максимально похожие макроблоки из предыдущего кадра. Рис. 7.43. Трн послвдоэатвльнмх хадра Стандарт МРЕС-1 не указывает, как искать, насколько далеко искать или насколько хорошо должен подходить похожий макроблок. Все эти вопросы оставлены на усмотрение разработчика программы, реализующей стандарт МРЕС-1. Например, макроблок можно искать в предыдущем кадре в текущей позиции с заданными смещениями по горизонтали и вертикали.
Для каждой позиции может вычисляться количество совпадений матрицы яркости. Позиция с наибольшим значением совпадений будет объявляться победительницей при условии, что это значение превосходит некое пороговое значение. В противном случае макроблок будет считаться не найденным. Возможны, конечно, и значительно более сложные алгоритмы. Макроблок, для которого найден похожий на него макроблок в предыдущем кадре, кодируется в виде разности значений яркости и цветности. Затем матрицы разностей подвергаются дискретному косинусному преобразованию, квантованию, кодированию длин серий и кодированию Хаффмана так же, как это делает алгоритм 1РЕС. В выходном потоке макроблок представляется в виде вектора сдвига (насколько далеко сдвинулся макроблок по горизонтали и вертикали от положения в предыдущем кадре), за которым следует список чисел, кодированных по Хаффману.
Если же в предыдущем кадре не нашлось подходящего макроблока, текущее значение кодируется алгоритмом ПРЕС, как в 1-кадре. 794 Глава 7. Прикладной уровень Очевидно, что этот алгоритм обладает сильной асилзметричностью, В принципе, программа может искать соответствие макроблоку в любой позиции предыдущего кадра. Такой подход позволит минимизировать выходной поток МРЕС-1 за счет очень медленного кодирования.