- •Основы теории цифровой связи Часть 1 кодирование информации
- •1. Введение
- •1.1. Модель радиотехнической системы связи
- •Контрольные вопросы
- •1.2. Статистическая трактовка процесса передачи информации
- •Контрольные вопросы
- •1.3. Основные понятия и элементы математического аппарата теории связи
- •1.3.1. Сигналы и помехи
- •1.3.2. Разложение сигнала по системе ортогональных функций. Спектр сигнала
- •1.3.3. Cвойства преобразования Фурье
- •1.3.4. Корреляционная функция сигнала
- •1.3.5. Связь между корреляционной функцией и спектром сигнала
- •1.3.6. Случайные сигналы и их характеристики
- •Контрольные вопросы
- •1.4. Источники информации
- •1.5. Теорема дискретизации
- •1.6. Дискретизация изображений
- •Контрольные вопросы
- •1.7. Квантование. Ошибки квантования
- •Контрольные вопросы
- •1.8. Количество информации, содержащейся в сообщении
- •1.8.1. Энтропия сложных сообщений, избыточность источника
- •Контрольные вопросы и задачи
- •2. Основы экономного кодирования информации
- •2.1. Способы представления кодов
- •Контрольные вопросы и задачи
- •2.2. Типы систем сжатия
- •X Квантователь Xq Кодер без потерь информации b (Xq) Декодер X*
- •Методы кодирования без потерь
- •2.3.1. Понятие префиксного множества
- •2.3.2. Алгоритм кодирования Хаффмена
- •2.3.3. Алгоритм Шеннона–Фано
- •2.3.4. Блочные коды
- •2.3.5. Арифметическое кодирование
- •2.3.6. Словарное кодирование. Метод Зива–Лемпеля
- •2.3.7. Кодирование длин повторений (rle)
- •2.3.8. Дифференциальное кодирование
- •Контрольные вопросы и задачи
- •2.4. Методы сжатия с потерей информации
- •2.4.1. Функции “скорость–искажение” и “искажение–скорость”
- •2.5. Сжатие речевых сигналов
- •2.5.1. Кодирование формы сигнала, икм
- •2.5.2. Дифференциальная икм
- •2.5.3. Адаптивная дифференциальная икм (адикм)
- •2.5.4. Дельта-модуляция
- •2.5.5. Другие методы кодирования формы сигнала
- •2.5.6. Кодирование источника
- •2.5.7. Гибридные методы кодирования речи
- •2.5.8. Полноскоростной кодер rpe-ltp (стандарт gsm 06.10)
- •2.5.9. Кодер vselp (стандарт d-amps)
- •Контрольные вопросы и задачи
- •2.6. Кодирование изображений. Стандарт сжатия jpeg
- •Процедуру дкп можно записать в матричной форме:
- •2.6.1. Рекурсивный (вэйвлет) алгоритм
- •2.7. Сжатие подвижных изображений (видео)
- •3. Основы помехоустойчивого кодирования
- •3.1. Основные принципы. Типы кодов
- •3.2. Линейные блочные коды
- •3.2.1. Код с проверкой на четность
- •3.2.2. Итеративный код
- •3.2.3. Порождающая матрица линейного блочного кода
- •3.2.4. Проверочная матрица
- •3.2.5. Дуальные коды
- •3.2.6. Синдром и обнаружение ошибок
- •3.2.7. Синдромное декодирование линейных блочных кодов
- •3.2.8. Мажоритарное декодирование линейных блочных кодов
- •3.2.9. Декодирование методом максимального правдоподобия
- •Поскольку
- •Если принятый сигнал дискретизован и Si – I-й отсчет принятого сигнала.
- •3.2.10. Вес и расстояние Хемминга. Способность кодов обнаруживать и исправлять ошибки
- •Контрольные вопросы и задачи
- •3.3. Полиномиальные коды
- •3.3.1. Циклические коды
- •3.3.2. Кодирование с использованием циклических кодов
- •3.3.3. Вычисление синдрома и исправление ошибок в циклических кодах
- •3.3.4. Неалгебраические методы декодирования циклических кодов
- •3.4. Сверточные коды
- •3.4.1. Кодирование с использованием сверточных кодов
- •3.4.2. Синдромное декодирование сверточных кодов
- •3.4.3. Кодовое дерево и решетчатая диаграмма
- •3.4.4. Декодирование сверточных кодов. Алгоритм Витерби
- •3.4.5. Алгоритмы поиска по решетке
- •Контрольные вопросы и задачи
- •3.5. Применение корректирующего кодирования в системах связи
- •3.5.1. Каскадные коды
- •3.5.2. Кодирование с перемежением
- •Библиографический список
- •Часть 1 1
2.7. Сжатие подвижных изображений (видео)
Основной проблемой в работе с подвижными изображениями являются большие объемы данных, с которыми приходится иметь дело. Например, при записи на компакт-диск в среднем качестве на него можно поместить несколько тысяч фотографий, более 10 часов музыки и всего полчаса видео. Видео телевизионного формата – 720 х 576 точек и 25 кадров в секунду в системе RGB – требует потока данных примерно 240 Мбит/с (1,8 Гбит/мин). При этом обычные методы сжатия, ориентированные на кодирование отдельных кадров (в том числе и JPEG), не спасают положения, поскольку даже при уменьшении битового потока в 10–20 раз он остается чересчур большим для практического использования.
При сжатии подвижных изображений учитывается наличие в них нескольких типов избыточности:
– когерентность (одноцветность) областей изображения – незначительное изменение цвета изображения в его соседних пикселах; это свойство изображения используется при его разрушающем сжатии всеми известными методами;
– избыточность в цветовых плоскостях, отражающая высокую степень связи интенсивностей различных цветовых компонент изображения и важность его яркостной компоненты;
– подобие между кадрами – использование того факта, что при скорости 25 кадров в секунду (а это минимальная их частота, при которой незаметно мелькание изображения, связанное со сменой кадров) различие в соседних кадрах очень незначительно.
С середины 80-х годов многие западные университеты и лаборатории фирм работали над созданием алгоритма компрессии цифрового видеосигнала. Появилось достаточно большое число внутрифирменных стандартов. Область эта очень специфична и динамична – международные стандарты появляются буквально через 2–3 года после создания алгоритма. Рассмотрим существующие стандарты в области цифрового видео.
В 1988 году в рамках Международной организации по стандартизации (ISO) начала работу группа MPEG (Moving Pictures Experts Group) – группа экспертов в области цифрового видео. В сентябре 1990 года был представлен предварительный стандарт кодирования MPEG-I. В январе 1992 года работа над MPEG-I была завершена. Работа эта была начата не на пустом месте, и как алгоритм MPEG имеет несколько предшественников. Это прежде всего JPEG – универсальный алгоритм, предназначенный для сжатия статических полноцветных изображений. Его универсальность означает, что алгоритм дает неплохие результаты на широком классе изображений. Алгоритм использует конвейер из нескольких преобразований. Ключевым является дискретное косинусное преобразование (ДКП), позволяющее в широких пределах менять степень сжатия без заметной потери качества изображения. Последняя фраза означает, что различить на глаз восстановленное и исходное изображения практически невозможно. Идея алгоритма состоит в том, что в реальных изображениях малы амплитуды высоких частот при разложении матрицы изображения в двойной ряд по косинусам. Можно достаточно свободно огрублять их представление, не сильно ухудшая изображение. Кроме того, используется перевод в другое цветовое проcтранство (YUV), групповое кодирование и кодирование Хаффмана.
Алгоритм сжатия
Технология сжатия видео в MPEG распадается на две части: уменьшение избыточности видеоинформации во временном измерении, основанное на том, что соседние кадры, как правило, отличаются не сильно, и сжатие отдельных изображений.
Уменьшение избыточности во временном измерении
Чтобы удовлетворить противоречивым требованиям и увеличить гибкость алгоритма, в последовательности кадров, составляющих подвижное изображение, выделяют четыре типа кадров:
I-кадры – независимо сжатые (I – Intrapictures);
Р-кадры – сжатые с использованием ссылки на одно изображение (P – Predicted);
В-кадры – сжатые с использованием ссылки на два изображения (В – Bidirection);
ВС-кадры – независимо сжатые с большой потерей качества (используются только при быстром поиске).
I-кадры обеспечивают возможность произвольного доступа к любому кадру, являясь своеобразными входными точками в поток данных для декодера.
Р-кадры используют при архивации ссылку на один I- или Р-кадр, повышая тем самым степень сжатия фильма в целом.
В-кадры, используя ссылки на два кадра, находящихся впереди и позади, обеспечивают наивысшую степень сжатия; сами в качестве ссылки использоваться не могут.
Последовательность кадров в фильме может быть, например, такой: I B B P B B P B B P B B P B B I B B P ... или I P B P B P B I P B P B ... и т.д.
Частоту I-кадра выбирают исходя из требований на время произвольного доступа и надежности потока при передаче по каналу с помехами, соотношение между P и B-кадрами – исходя из необходимой степени сжатия и сложности декодера, поскольку, для того чтобы распаковать B-кадр, нужно уже иметь как предшествующий, так и следующий за ним кадры.
Одно из основных понятий при сжатии нескольких изображений – макроблок, представляющий собой матрицу пикселов 16 х 16 элементов (размер изображения должен быть кратен 16). Такая величина выбрана не случайно – ДКП работает с матрицами размером 8 х 8 элементов. При сжатии каждый макроблок из цветового пространства RGB переводится в цветовое пространство YUV (одна яркостная и две цветоразностные компоненты).
Матрица, соответствующая Y (яркостному компоненту), превращается в четыре исходные матрицы для ДКП, а матрицы, соответствующие компонентам U и V, прореживаются на все четные строки и столбцы, превращаясь в одну матрицу для ДКП.
Таким образом, сразу получается сжатие в два раза, поскольку глаз человека хуже различает цвет отдельной точки изображения, чем ее яркость.
Сжатие отдельных кадров
Существует достаточно много алгоритмов, сжимающих статические изображения. Из них чаще всего используются алгоритмы на базе дискретного косинусного преобразования. Алгоритм сжатия отдельных кадров в MPEG похож на соответствующий алгоритм для статических изображений JPEG. Напомним, как выглядит процедура JPEG-кодирования.
К макроблокам, которые подготовил алгоритм уменьшения избыточности во временном измерении, применяется ДКП. Само преобразование заключается в разложении значений дискретной функции двух переменных в двойной ряд по косинусам некоторых частот. Дискретное косинусное преобразование переводит матрицу значений яркостей в матрицу амплитуд спектральных компонент, при этом амплитуды, соответствующие более низким частотам, записываются в левый верхний угол матрицы, а те, которые соответствуют более высоким, – в правый нижний. Поскольку в реалистичных изображениях высокочастотная составляющая очень мала по амплитуде, в результирующей матрице значения под побочной диагональю либо близки, либо равны нулю.
К полученной матрице амплитуд применяется операция квантования. Именно на этапе квантования (группового кодирования) в основном и происходит адаптивное сжатие, и здесь же возникают основные потери качества фильма. Квантование – это целочисленное поэлементное деление матрицы амплитуд на матрицу квантования (МК). Подбор значений МК позволяет увеличивать или уменьшать потери по определенным частотам и регулировать качество изображения и степень сжатия. Заметим, что для различных компонентов изображения могут быть свои МК.
Следующий шаг алгоритма заключается в преобразовании полученной матрицы 8 х 8 в вектор из 64 элементов. Этот этап называется зигзаг-сканированием, т.к. элементы из матрицы выбираются, начиная с левого верхнего, зигзагом по диагоналям, параллельным побочной диагонали. В результате получается вектор, в начальных позициях которого находятся элементы матрицы, соответствующие низким частотам, а в конечных – высоким. Следовательно, в конце вектора будет очень много нулевых элементов.
Далее повторяются все действия, соответствующие стандартному алгоритму сжатия неподвижных изображений JPEG.
Использование векторов смещений блоков
Простейшим способом учета подобия соседних кадров было бы вычитание каждого блока текущего кадра из каждого блока предыдущего (по аналогии с ДИКМ при сжатии речи). Однако гораздо более эффективным является алгоритм поиска векторов, на которые сдвинулись блоки текущего кадра по отношению к предыдущему.
Алгоритм состоит в том, что для каждого блока изображения находится блок, близкий к нему в некоторой метрике (например, по минимуму суммы квадратов разностей пикселов) в предыдущем кадре в некоторой окрестности текущего положения блока. Если минимальное расстояние между блоками в этой метрике меньше некоторого порога, то в выходном потоке сохраняется разность блоков и вектор смещения – координаты смещения максимально похожего блока в предыдущем I- или P-кадре. Если различия больше этого порога, блок сжимается независимо.
В результате учета цветовой, пространственной и временной избыточности подвижных видеоизображений, а также использования межкадрового предсказания с использованием векторов смещения результирующая скорость кода водвижного видеоизображения может быть уменьшена от 50 до 100 раз в сравнении с исходным. Это означает, к примеру, что можно сохранить видеофильм на одном компакт-диске, вместо 50 дисков без сжатия, а для ведения спутникового телевещания можно запустить в космос в 50 раз меньшее количество спутников. Эти примеры убедительно иллюстрируют важность и необходимость применения экономного кодирования в системах передачи информации и связи.
На этом краткое ознакомление с методами сжатия информации, используемыми в системах связи, завершено, далее будут изучаться методы помехоустойчивого кодирования данных.
