Кодирование источника стало основной подсистемой в современных системах связи. Высокие требования к полосе частот и возможность запоминания явились мотивом его развития, в то время как интегрированные схемы и методы обработки сигналов предоставили такую возможность. Вторичной причиной широкого внедрения процесса в систему связи является определение общеиндустриальных стандартов, которые позволяют множественным поставщикам проводить рентабельную и конкурентоспособную реализацию процесса кодирования. Существуют стандарты МККТТ для кодирования источника или алгоритмов сжатия речи, аудио, неподвижных образов и движущихся изображений. В этом разделе будет изучено множество алгоритмов кодирования источника, основанных на стандартах, что должно продемонстрировать широкую применимость кодирования источника в системах связи и проиллюстрировать типичные уровни производительности.
13.8.1. Аудиосжатие
Аудиосжатие широко применяется в потребительских и профессиональных цифровых аудиопродуктах, таких как компакт-диски (compact disc — CD), цифровая аудиолента (digital audio type— DAT), мини-диск (mini-disk— MD), цифровая компакт-кассета (digital compact cassette — DCC), универсальный цифровой диск (digital versatile disc — DVD), цифровое аудиовешание (digital audio broadcasting — DAB) и аудиопродукция в формате МРЗ от экспертной группы по вопросам движущегося изображения (Motion Picture Experts Group — (MPEG). К тому же сжатие речи в телефонии, в частности сотовой телефонии, требуемое для экономии полосы частот и сбережения времени жизни батареи, дало начало процессу разработки множества стандартов сжатия речи. Различные алгоритмы применимы к речевым и потребительским сигналам более широкой полосы частот. Аудио- и речевые схемы сжатия можно для удобства разделить согласно приложениям, что отражает некоторую меру приемлемого качества. Рассмотрим параметры, описывающие это деление [24, 25].
Типичные значения параметров для трех классов аудиосигналов
13.8.2. Сжатие изображения
Мы часто слышали старое высказывание: Картина стоит тысячи слов. Верно ли оно? 1 000 слов содержит 6 000 знаков, которые, будучи закодированы как 7-битовые символы ASCII, требуют в общей сложности 42 000 бит. Какого размера образ (или картина) может быть описан с помощью 42 000 бит? Если используется монохромный (т.е. черный и белый) образ со стандартной 8-битовой шкалой оттенков серого, образ будет ограничен 5 250 пикселями (или элементами изображения). Этот образ может иметь размерность 7075 пикселей, и если предположить, что образ среднего качества (разрешение 300 пикселей на дюйм), в результате получаем, что наш образ составляет примерно дюйма на дюйма.
Определенно, требуется какое-то кодирование изображения.
Подойдем к проблеме с другой стороны. Насколько большим является изображение? Выбирая лист бумаги размером 8,511,0 дюймов, содержащий изображение с разрешением 300 пикселей на дюйм, получаем образ, содержащий 8,530011,0300 или 8,4106 элементов изображения. Если это полноцветная картина с тремя цветами на элемент, каждый из которых описывается с помощью 8-битовых слов, находим, что образ содержит 2108 бит, что эквивалентно 4,8106 6-знаковых слов ASCII. Возможно, старое высказывание стоит обновить в соответствии с современным положением дел, сказав, что: Картина стоит порядка пяти миллионов слов. Для сравнения с другими форматами изображения отметим, что отдельный кадр телевизионного изображения высокой четкости содержит примерно 1,8106 пикселей, стандартное телевизионное изображение — это примерно 0,33106 пикселей, а мониторы компьютера высшего класса содержат от 1,2 до 3,1106 элементов изображения. Технология дала нам принтеры низкой стоимости с высокой разрешающей способностью, сканеры, камеры и мониторы, позволяющие схватывать и представлять изображения с коммерческой и развлекательной целью. Хранение и передача этих образов существенно зависит от кодирования источника, призванного снизить требования к полосе частот и памяти. Существует множество стандартов, которые были разработаны для сжатия изображений. В следующем разделе будут изучены элементы двух основных схем сжатия [26, 27].
13.8.2.1. JPEG
JPEG (Joint Photography Experts Group — объединенная группа экспертов в области фотографии) — это общее название, которое дано стандарту ISO/JPEG 10918-1 и стандарту ITU-T Recommendation T.81 "Цифровое сжатие постоянных изображений непрерывного тона". JPEG, в основном, известен как основанная на преобразовании схема сжатия с потерями. Сжатие с потерями допускает ошибки в построении сигнала. Уровни ошибок должны быть ниже порога восприимчивости человеческого глаза. JPEG поддерживает три режима работы, связанных с дискретным косинус-преобразованием (discrete cosine transform — DCT, ДКП): последовательное ДКП, прогрессивное ДКП и иерархическое, а также режим без потерь с использованием дифференциального предсказания и энтропии кодирования ошибки предсказания. ДКП — это численное преобразование, связанное с дискретным преобразованием Фурье (discrete Fourier transform — DFT, ДПФ) и предназначенное для получения спектрального разложения четно-симметричных последовательностей. Если входная последовательность является четно-симметричной, нет необходимости в синусоидальных компонентах преобразования. Следовательно, ДКП может заменить ДПФ.
Начнем с введения двухмерного преобразования ДКП 88. Сначала прокомментируем использование ДКП для образования спектрального описания блока 88 пикселей. Двухмерное ДКП — это сепарабельное преобразование, которое может быть записано в виде двойной суммы по двум размерностям. Сепарабельное ДКП производит восемь 8-точечных ДКП в каждом направлении. Следовательно, основной компоновочный блок представляет собой единичное 8-точечное ДКП. Возникает вопрос, почему используется ДКП, а не какое-либо другое преобразование, например ДПФ. Ответ связан с теоремой о дискретном представлении и преобразованием Фурье. Преобразование в одной области приводит к периодичности в другой. Если преобразуется временной ряд, его спектр становится периодичным. С другой стороны, если преобразуется спектр временного ряда, временной ряд периодически продолжается. Этот процесс известен как периодическое расширение и обозначается результирующей периодограммой. Периодическое расширение исходных данных (рис. 13.40) демонстрирует разрыв на границах, который ограничивает степень спектрального затухания в спектре величиной 1/f Можно образовать четное расширение данных, отображая данные относительно одной из границ. Если данные являются периодически расширенными, как показано на рис. 13.40, разрывность уже свойственна не амплитуде данных, а ее первой производной, так что степень спектрального затухания увеличивается до 1/f2. Более быстрая скорость спектрального затухания приводит к меньшему числу значимых спектральных членов. Еще одним преимуществом ДКП есть то, что поскольку данные четно-симметричные, их преобразование также является действительным и симметричным; следовательно, отсутствует необходимость в нечетно-симметричных базисных членах — функциях синуса.
Поскольку амплитуда образа имеет сильную корреляцию на небольших пространственных интервалах, значение ДКП блока 88 пикселей определяется, в основном, окрестностью постоянной составляющей и относительно небольшим числом иных значимых членов. Типичное множество амплитуд и их преобразование ДКП представлено на рис. 13.41. Отметим, что спектральные члены убывают, по крайней мере, как 1/f2 и большинство членов высокой частоты, в основном, нулевые. Спектр посылается на устройство квантования, которое использует стандартные таблицы квантования для присвоения бит спектральным членам согласно их относительным амплитудам и их психовизуальному значению. Для компонентов яркости и цветности используются различные таблицы квантования.
Рис. 13.41. Пиксели и амплитуды ДКП, описывающие один и тот же блок 88 пикселей
Чтобы использовать преимущество большого числа нулевых позиций в квантованном ДКП, спектральные адреса ДКП сканируются зигзагообразным образом, как изображено на рис. 13.42. Зигзагообразная модель обеспечивает длинную последовательность нулей. Это улучшает эффективность кодирования группового кода Хаффмана, описывающего спектральные выборки. На рис. 13.43 представлена блочная диаграмма кодера JPEG. Сигнал, доставленный на кодер, обычным образом представлен в виде растровой развертки с дискретными основными аддитивными цветами: красным, зеленым и синим (RGB). Цветная плоскость преобразуется в сигнал яркости (Y) и цветности 0,564(В - Y) (обозначено как СB) и 0,713(R - Y) (обозначено как СR), используя преобразование цветового контраста, разработанное для цветного ТВ. Это отображение описывается следующим образом.
Здесь компонент Y образован для отражения чувствительности человеческого глаза к основным цветам.
Рис. 13.42. Зигзагообразное сканирование спектральных составляющих ДКП
Рис. 13.43. Блочная диаграмма кодера JPEG
Глаз человека имеет разную чувствительность к цветным компонентам и компонентам яркости (черное и белое). Эта разница в способности к разрешению является следствием распределения рецепторов цвета (палочек) и рецепторов яркости (колбочек) на сетчатке. Человеческий глаз может различать 1-дюймовые чередующиеся черные и белые полоски со 180 футов (1/40 градуса). Для сравнения, 1-дюймовые сине-красные или сине-зеленые цветные полоски невозможно различить с расстояний, больших 40 футов (1/8 градуса). Следовательно, трехцветные образы требуют примерно на 1/25 (1/5 в каждом направлении) больше данных, чем нужно для получения черно-белого изображения. В далеком прошлом фотографы знали, что глаз требует очень малого числа цветных деталей. Чтобы придать образу цвет, существовала живая индустрия, в которой от руки раскрашивали черно-белые фотографии и почтовые открытки. Большинство аналоговых и цифровых цветных ТВ используют преимущество этой разницы в остроте восприятия для доставки дополнительных цветных компонентов через значительно сокращенную полосу частот. Стандарт NTSС определяет доставку всех трех цветов через полосу частот в 0,5 МГц, а>не 4,2 МГц, действительно требуемую яркостным компонентом. Аналогично JPEG использует преимущество разницы в восприятии и выбирает компоненты цветового контраста с половинной частотой в направлении сканирования (x), но не в направлении поперек линий развертки (у).
Сигналы цветового контраста и сигналы с пониженной частотой дискретизации последовательно представлены как блоки 88 в двухмерном ДКП. Выходы ДКП квантуются с помощью соответствующей таблицы и затем зигзагообразно сканируются для передачи на кодер Хаффмана. JPEG использует кодер Хаффмана для кодирования коэффициентов переменной составляющей сигнала, но поскольку компоненты постоянной составляющей имеют высокую корреляцию между соседними блоками, для них используется дифференциальное кодирование. Разумеется, для формирования образа декодер обращает эти операции.
13.8.2.1.1. Варианты декодирования с помощью JPEG
Во время реконструкции образа декодер может работать последовательно, начиная с верхнего левого угла изображения и образуя блоки 88 пикселей по мере их поступления. Это последовательный режим JPEG. В прогрессивном режиме кодирования образ сначала объединяется в блоки 88, образованные только компонентом постоянной составляющей в каждом блоке. Это очень быстрый процесс, который представляет крупноблочный, но распознаваемый в результате предварительного просмотра образ, — процесс, часто демонстрируемый в Internet при загрузке файлов GIF (Graphic Interchange Format), которые в начале передачи данных доставляют только компоненты постоянной составляющей. Затем изображение обновляется в каждом блоке 88, образованном из компонентов постоянной составляющей и первых двух соседних компонентов, представляющих следующее множество данных, доставленных на декодер. И наконец, образ обновляется при полном разрешении посредством полного множества коэффициентов, связанных с каждым блоком 88.
При иерархическом кодировании образ кодируется и декодируется как перекрывающиеся кадры. Изображение с низким разрешением, выбранное с пониженной частотой (4:1 в каждом направлении), кодируется с использованием ДКП и квантованного коэффициента, образуя первый кадр. Изображение, полученное с помощью этого кадра, выбирается с более высокой частотой и сравнивается с версией исходного изображения большего разрешения (2:1 в каждом направлении), и разность, представляющая ошибку в формировании образа, снова кодируется как изображение MPEG. Два кадра, образованные двумя уровнями кодирования, используются для создания составного образа, который увеличивается и сравнивается с исходным образом. Разность между исходным образом и двумя уровнями реконструкций с более низкой разрешающей способностью формируется с наивысшей доступной разрешающей способностью, и снова применяется кодирование JPEG. Этот процесс полезен при доставке образов с последовательно высоким качеством реконструкции, подобно прогрессивному кодированию. Разница заключается в том, что имеется дополнительная разрешающая способность, но она не может быть послана до тех пор, пока не будет востребована. Пример: сканирование пользователем библиотеки изображений и требование окончательного качества после просмотра множества изображений. Еще одним примером может быть доставка одного уровня качества на дисплей персонального компьютера и более высокого уровня на дисплей рабочей станции с высокой разрешающей способностью.
В заключение отметим, что JPEG-2000 — это предложенный стандарт для определения новой системы кодирования изображения, предназначенной для Internet-приложений и мобильных приложений. В этой системе предлагается узкая полоса частот, множественная разрешающая способность, устойчивость к ошибкам, защищенность изображения и низкая сложность. Она базируется на алгоритмах волнового сжатия, и по отношению к JPEG в ней предлагается улучшенная эффективность сжатия со многими возможностями разрешения [28].
13.8.2.2. MPEG
MPEG (Motion Picture Experts Group — экспертная группа по вопросам движущегося изображения) представляет собой стандарты, созданные для поддержания кодирования движущихся изображений и ассоциированного аудио для среды цифрового запоминания со скоростями до 1,5 Мбит/с. MPEG-1, стандарт ISO 11172, был принят в ноябре 1992 года для разрешения записи полномасштабного видео на CD-плейерах, первоначально созданных для стерео-аудиовоспроизведения. MPEG-2, стандарт ISO 13818 или рекомендация ITU-T H.262, Универсальное кодирование движущихся изображений и ассоциированного аудио, принятый в ноябре 1994 года, дает большую гибкость форматов входа/выхода, большую скорость передачи данных и уделяет больше внимания таким системным требованиям, как передача и синхронизация, темам, не рассмотренным в MPEG-1. MPEG-2 поддерживает разновидности цифрового ТВ, охватывающие оцифрованное видео, которое отображает существующий аналоговый формат с определенным качеством посредством DVD (цифровой видеодиск) и HDTV (телевидение высокой четкости) с различными форматами изображения, частоты развертки, скорости сканирования пикселей, опций обратного сканирования и различными опциями выборки на повышенной частоте для компонентов цветового контраста. Ниже описывается основная теория работы простейшей версии MPEG-2.
MPEG-2. MPEG сжимает последовательность движущихся образов, используя преимущество высокой корреляции между последовательными движущимися изображениями. MPEG создает три типа изображений: интра-изображения (I-изображения), предсказанные (Р-изображения) и изображения двунаправленного предсказания (В-изображения). В MPEG каждое M-е изображение в последовательности может быть полностью сжато с использованием стандартного алгоритма JPEG; это I-изображения. Затем процесс сравнивает последовательные I-изображения и идентифицирует часть образа, которая была перемещена. Части образа, которые не были перемещены, переносятся в промежуточное изображение с помощью памяти декодера. После этого процесс отбирает подмножество промежуточных изображений, а затем предсказывает (посредством линейной интерполяции между I-изображениями) и корректирует расположение частей образа, которые были перемещены. Эти предсказанные и скорректированные образы являются Р-изображениями. Между I - и P-изображениями находятся B-изображения, которые включают стационарные части образа, не охваченные движущимися частями. Относительное расположение этих изображений показано на рис. 13.44. Отметим, что Р- и B-изображения допускаются, но не требуются, и их количество является переменным. Последовательность может быть образована без каких бы то ни было Р- или B-изображений, но последовательность, содержащая только Р-или B-изображения, не может существовать.
Рис. 13.44. Последовательность изображений при сжатии MPEG
I-изображения сжимаются так, как если бы они были изображениями JPEG. Это сжатие применяется к четырем непрерывным блокам 88, называемым макроблоками. Макроблоки могут быть выбраны с пониженной частотой для последовательного сжатия цветных компонентов. Макроблоки и их опции выборки с пониженной частотой изображены на рис. 13.45. Сжатие I-кадра производится независимо от ранних или поздних изображений в последовательности кадров. Расстояние в последовательности, рассчитанное между I-изображениями, является регулируемым, и оно может быть сделано малым порядка 1 либо настолько большим, насколько позволяет память. Редактирование сечений в последовательности изображений и локальная программная вставка могут производиться только с I-изображениями. Поскольку одна вторая секунды — это приемлемая временная точность для производства такого дополнения, расстояние между I-изображениями обычно ограничено примерно 15 изображениями для стандарта NTSC (30 изображений в секунду) или 12 изображениями для Британского стандарта PAL (25 изображений в секунду).
Рис. 13.45. Обработка макроблока для выборки цветности с пониженной частотой
Первым этапом обработки, производимым MPEG, является определение, какой из макроблоков перемещается между I-изображениями. Это выполняется путем переноса каждого макроблока из одного I-кадра вперед к следующему и вычисления двухмерной взаимной корреляции в окрестности его исходного расположения. Для каждого сдвинутого макроблока определяются векторы движения, которые указывают направление и величину перемещения. Макроблоки, которые не сдвигались, являются стационарными в картинах между I-изображениями и могут быть вынесены вперед в промежуточных изображениях.
Следующий этап обработки в MPEG состоит в образовании Р-кадра между I-изображениями. Сначала предположим, что сдвинутые макроблоки перемещались линейно во времени между двумя положениями, определенными на первом этапе обработки. Каждый макроблок помещается на свое предсказанное положение в Р-кадре. Вычисляется взаимная корреляция в окрестности этого блока для определения истинного расположения макроблока в Р-кадре. Разность между предсказанным и истинным положениями макроблока является ошибкой предсказания, и эта ошибка сжимается с помощью ДКП и используется для коррекции Р-кадра. Та же информация передается на декодер, так что он может корректировать свои предсказания. На рис. 13.46 представлен сдвиг макроблока между I-изображениями и промежуточное Р-изображение.
Рис. 13.46. Движение макроблока между I- и Р-изображениями
В-изображения расположены между I- и Р-изображениями. В этих изображениях векторы движения передвигают сдвинутые макроблоки линейно во времени к их двунаправленным интерполированным положениям в каждом последовательном В-кадре в последовательности, I-изображения требуют максимального количества данных для описания их содержания, сжатого с помощью ДКП. Р-изображения требуют меньше данных. Они служат только для описания пикселей, ошибочно предсказанных на основании движения макроблоков в кадре. Остаток пикселей в кадре выносится вперед в память из предшествующего I-кадра. В-изображения являются наиболее эффективными изображениями множества. Они должны только линейно сдвинуть и скорректировать пиксели, охваченные и неохваченные в результате движения макроблоков через кадры.
Реконструкция образов на декодере требует того, чтобы последовательность образов была доставлена в порядке, необходимом для соответствующей обработки. Например, поскольку вычисление В-изображений требует информации от I- и Р-изображений или Р- и Р-изображений с обеих сторон, I- и Р-изображения должны быть доставлены первыми. Рассмотрим следующий пример требуемого порядка кадров на входе и выходе кодера и декодера.
Порядок изображений на входе кодер
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
I0 |
В1 |
В2 |
Р1 |
В3 |
В4 |
Р2 |
В5 |
В6 |
In+1 |
В1 |
В2 |
Р1 |
Порядок закодированных изображений на выходе кодера и входе декодера
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
I0 |
Р1 |
В1 |
В2 |
Р2 |
В3 |
В4 |
In+1 |
В5 |
В6 |
Р1 |
В1 |
В2 |
Порядок изображений на выходе декодера
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
I0 |
В1 |
В2 |
Р1 |
В3 |
В4 |
Р2 |
В5 |
В6 |
In+1 |
В1 |
В2 |
Р1 |
На рис. 13.47 представлена блочная диаграмма кодера MPEG. Отметим, что его структура представляет собой стандартную модель предсказания-коррекции. Отметим интересное соотношение между воспринимаемой глазом мерой качества изображения и мерой его активности. С одной стороны, когда образ содержит значительное движение, глаз воспринимает образы более низкого качества. С другой стороны, когда образ содержит мало движения, глаз чувствителен к помехам изображения. В кодере отсутствие движения влияет на активность кодирования и приводит к тому, что данные доставляются на выход буфера с более низкой скоростью. Буфер считает это индикатором стационарности образов и контролирует образ, допуская квантование ДКП более высокого качества. Скорость на выходе буфера фиксируется согласно требованиям линий связи. Для отображения средней входной скорости в фиксированную выходную применяется текущий контроль. Текущий контроль регистрирует низкую активность кодера, замечая, что его буфер опустошается быстрее, чем наполняется. Простой индикатор разности между входной и выходной скоростями — это расположение выходного адресного указателя. Если указатель движется по направлению к началу памяти буфера, указателю опустошения памяти, система увеличивает входную скорость, выбирая таблицу квантования, которая дает большее число бит на ДКП. Аналогично, если указатель движется по направлению к концу памяти буфера, указателю переполнения, система увеличивает выходную скорость, выбирая таблицу квантования, которая дает меньшее число бит на ДКП. Этот процесс согласовывает качество изображения с порогом качества, воспринимаемым глазом, сохраняя при этом среднюю выходную скорость канала.