Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по теории информации.doc / Пособие по теории информации.doc
Скачиваний:
413
Добавлен:
30.03.2015
Размер:
4.68 Mб
Скачать

Прямое дкп

,

Обратное ДКП

, (8.10)

.

В способе вычисления коэффициентов прямого ДКП имеется один небольшой изъян – выделен частный случай для вычисления . Избавиться от этого недостатка можно, если незначительно модифицировать расчет элементов матрицыFN.

Будем вычислять как и ранее по формуле (8.8) дляs = 1, 2,…, N-1 и k = 0, 1, . . .N-1. Это все элементы матрицы FN , кроме первой строки (с индексом 0). Элементы же первой строки будут вычисляться по формуле:

, при k = 0, 1, . . . N-1.

Если матрицу FN вычислять так, как это только что сказано, формулы для прямого и обратного ДКП приобретают такой окончательный вид:

, для 0, 1, . . . N-1 , (8.11)

, для a0, a1, . . . aN-1. (8.12)

Формулы ДКП получены для одномерного сигнала, за значения которого принимаются значения какой либо из компонент красного R, зеленного G или синего B элементов строки из N пикселов (рис. 8.1а). На практике рассматривают блок пикселов размером NN, где принимают N=8 (рис.8.1б).

В этом случае блок пикселов моделируется отсчетами двухмерного сигнала:

, k = 0, 1, … N-1, l = 0, 1, … N-1.

Приемы, примененные для одномерного случая, аналогично переносятся и на двухмерный сигнал. Приведем окончательный результат.

В результате ДКП над сигналом получается матрица коэффициентов разложения по базисным функциям:

, s = 0, 1, … N-1, r = 0, 1, … N-1.

Формулы в матричной форме для выполнения прямого и обратного ДКП имеют вид:

, (8.13)

. (8.14)

Элементы матрицы FN, как и ранее, находится по формулам:

, при k = 0, 1, . . . N-1,

, при s = 1, 2, . . . N-1 и k = 0, 1, . . .N-1.

Ранее говорилось, что замена описания сигнала, заданного его значениями, на описание коэффициентами преобразования Фурье может привести к сокращению объема данных. Однако количество элементов матриц прямого и обратного ДКП одинаково. Где же сжатие?

Чтобы ответить на этот вопрос, рассмотрим на численном примере последовательность действий, выполняемых при компрессии и декомпрессии.

Матрица FN зависит только от N и может быть просчитана заранее. Ниже приводится ее значение при N = 8.

За значения атрибута пиксельного блока примем значения, приведенные в матрице a. Это может быть яркость какой-либо из компонент цвета R, G, B или яркость серого.

Шаг 1. Все данные смещаются на 128. Новое значение матрицы данных aСМ = a – 128. Это делается в соответствии с процедурой, установленной в методике сжатия JPEG.

Шаг 2. Выполняются ДКП над смещенными данными: . Результаты округляются до целых значений.

Шаг 3. Выполняется загрубение коэффициентов разложения. Этот вопрос требует особого пояснения. Обратимся к одномерному случаю. Коэффициент разложения s характеризует вклад s-й гармоники в формирование сигнала, в нашем случае изображения. Увеличение индекса s соответствует переходу к базисной функции следующей, большей частоты. С другой стороны, гармонические составляющие с большими частотами переносят все более мелкие подробности изображения. Идея сжатия – мелкие, малозначащие подробности изображения не учитывать. Это значит, что некоторые коэффициенты s ДКП могут быть отброшены и за счет этого уменьшен объем данных, если их хранить или передавать не как отсчеты сигнала, а как результаты ДКП. Весь вопрос в том, какими формальными правилами руководствоваться, отбрасывая некоторые коэффициенты преобразования? Подход здесь такой – коэффициентам s с большими индексами s устанавливать больший порог значимости. Существует множество алгоритмов решения такой задачи. Приведем один из них на конкретном примере.

Пусть

 = {286, -6, 22, -3, -5, -10, 2, 7 }.

Поделим с точностью до ближайшего целого все s на делитель qs=(1+(1+s)Q) при Q = 4. Т.е. :

1 = (57, -1, 2, 0, 0, 0, 0, 0).

Полученный результат помножим на qs, таким образом :

загр = (285, -9, 26, 0, 0, 0, 0, 0).

Как видно малозначащие коэффициенты разложения здесь приняли нулевые значения. Теперь, если восстановить сигнал по коэффициентам и загр, то они будут мало отличаться. Параметр Q здесь следует понимать как задающий степень сжатия. При Q = 0 сжатия не будет, при увеличении Q порог значимости увеличивается и все большее число коэффициентов обнуляется.

Аналогично одномерному случаю, загрубение осуществляется и для двухмерного случая. Не повторяя всех рассуждений, примем ,Q = 4 и найдем элементы матрицы .

Шаг 4. кодирование данных. Данные из матрицы 1 формируют в линейную последовательность. Выстраивают в линейку их в таком порядке, как это показано на матрице стрелками (этот порядок соответствует возрастанию частоты базисных функций):

18 0 –4 –7 –4 –1 0 1 4 –3 –4 –2 0 1 0 0 0 –1 0 –2 –3 –1 2 2 0 0 0 0 0 0 0 0 0 0 0 –2 1 –1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

К полученным данным применяют метод кодирования RLE и, в сочетании с кодированием, например, по Хаффману, достигается существенное сжатие данных. Действительно, в приведенной последовательности одна серия из 3 нулей, одна серия из 11 нулей и одна серия из 26 нулей!

Шаг 5. Это первый шаг декомпрессии. Из закодированной на шаге 4 последовательности восстанавливают сначала саму последовательность, а затем матрицу 1.

Шаг 6. Восстанавливают :

Шаг 7. Восстанавливают исходные данные . В результате операциибудут восстановлены данные матрицыaСМ. Прибавление к каждому элементу этой матрицы величины 128 приведет к восстановлению исходных данных матрицы a.

На этом завершена декомпрессия сжатых данных. Матрица a это исходные данные до компрессии, кодированная методом RLE последовательность данных, полученная на шаге 4, – это сжатые данные, матрица aВОСТ – восстановленные исходные данные.

Если сравнить исходные и восстановленные данные, то можно увидеть, что они нигде не совпадают, но везде отклонение меньше 10%. Такая разница во многих случаях может быть незаметна на глаз. Установив параметр Q = 0 можно получить 100% восстановление, но и ни какого сжатия при этом не будет достигнуто. Увеличение Q приводит к увеличению степени сжатия и, соответственно, к увеличению потерь при восстановлении.

Сжатие методом ДКП не может быть применено к палитровым изображениям, поскольку данные там указывают на регистр палитры. Даже соседние регистры палитры могут существенно отличаться по цвету. Поэтому погрешность при восстановлении данных может привести к значительным искажениям изображения. К палитровым изображениям могут быть применены только методы сжатия без потерь.

Изложенный метод служит основой сжатия данных по стандарту JPEG. Он также является основой метода сжатия видео сюжетов MPEG, который становится видеостандартом для персональных компьютеров.