Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Garbage / Информатика / 3.1.4 - Структура алгоритма JPEG

.pdf
Скачиваний:
36
Добавлен:
21.05.2015
Размер:
190.92 Кб
Скачать

Рассмотрим более подробно структуру алгоритма JPEG .

Название данного алгоритма является аббревиатурой Joint Photographic Expert Group, которой и был утвержден в 1992 г. стандарт сжатия цветных и нецветных изображений. Необходимость разработки данного стандарта была обусловлена следующими причинами.

-Значение коэффициента сжатия изображений с использованием алгоритмов без потерь (методом Хаффмана, например) крайне невелико, в особенности, когда гистограмма распределения значений точек изображений стремится к равномерной.

Алгоритм JPEG использует спектральные преобразования для кодирования, поскольку:

-Значительная часть изображений изменяется относительно медленно вдоль всей площади, т.е. редко встречается случай, когда значение интенсивности уменьшается или увеличивается несколько раз подряд в пределах небольшой области, скажем, размером 8 x 8 точек.

-Психофизические эксперименты подтверждают тот факт, что человеческое зрение менее чувствительно к утрате высокочастотных компонент в спектре нежели низкочастотных.

Структура алгоритма JPEG.

Кодирование осуществляется по схеме приведенной на рис. 3. Декодирование выполняется в обратной последовательности.

YIQ или YUV f (i, j)

F (u, v)

F/q(u, v)

 

ДКП

Квантование

8 x 8

 

Таблицы

 

 

Заголовок

Таблицы

квантования

Таблицы

кодирования

 

Данные

 

ПС

ДИКМ

 

 

 

Кодирование

 

по Хаффману

Зигзаг

 

КДС

 

ГС

 

 

Рис. 3. Структура алгоритма кодирования JPEG.

Как видно из рис. 3, кодирование состоит из следующих шагов:

1.ДКП (Дискретное косинусное преобразование)

2.Квантование

3.Сканирование методом "Зигзага"

4.ДИКМ кодирование постоянных составляющих

5.КДС кодирование гармонических составляющих

6.Энтропийное кодирование по методу Хаффмана.

A. Дискретное косинусное преобразование

Необходимо для перехода от пространственного к спектральному представлению.

f (i,j)

 

 

 

 

 

 

 

 

ДКП

 

 

 

 

 

 

 

 

F (u, v)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выполняется по следующим формулам.

Прямое преобразование:

F

(u,v) =

Λ(u)Λ(v)

7 7

(2 i +1) u π

cos

(2 j +1) v π

f (i, j)

4

 

∑∑cos

 

 

16

 

 

 

 

16

 

 

 

 

 

 

i=0 j=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

дляξ =0

 

 

 

 

 

 

 

 

 

 

 

 

 

Λ(ξ) =

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

иначе

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обратное преобразование:

 

 

 

 

 

 

 

 

 

~

(i, j) =

7 7

 

 

 

i +1) u π

cos (2

 

j

+

1)

 

v

π

F (u,v)

f

∑∑Λ(u)Λ(v) cos (2

 

 

 

 

 

u=0v=0

4

 

 

16

 

 

 

 

 

16

 

 

 

 

F[0,0] называется постоянной составляющей спектра.

Для спектрального разложения используется базис из 64 (8 x 8) функций:

B. Квантование.

Полученная матрица спектральных коэффициентов F[u, v] поэлементно делится на матрицу квантования q[u, v] с последующим округлением:

F'[u, v] = округление ( F[u, v] / q[u, v] ).

В результате, если исходное значение, например F[u, v] = 62 ( = 1111012) имело размер 6 дв. разрядов, то после деления на q[u, v] = 5 с последующим округлением останется всего (1210

= 11002) 4 разряда.

Очевидно, что возникающая в этом случае ошибка квантования, объясняет почему данный алгоритм относится к классу методов сжатия с потерями.

Существует два варианта квантования:

a)все элементы матрицы F[u, v] делятся на одно и тоже значение N (равномерное квантование).

b)используется таблица квантования

Ниже приводятся примеры двух матриц квантования для яркостной составляющей (Y) и для цветоразностных составляющих (I, Q или U, V).

 

Табл. квант-ия яркост. составл. q(u, v)

 

Табл. квант-ия. цветоразн. составл. q(u, v)

16-----------------------------------

11

10

16

24

40

51

61

------------------------------

17

18

24

47

99

99

99

99

12

12

14

19

26

58

60

55

18

21

26

66

99

99

99

99

14

13

16

24

40

57

69

56

24

26

56

99

99

99

99

99

14

17

22

29

51

87

80

62

47

66

99

99

99

99

99

99

18

22

37

56

68

109

103

77

99

99

99

99

99

99

99

99

24

35

55

64

81

104

113

92

99

99

99

99

99

99

99

99

49

64

78

87

103

121

120

101

99

99

99

99

99

99

99

99

72

92

95

98

112

100

103

99

99

99

99

99

99

99

99

99

-----------------------------------

 

 

 

 

 

 

 

------------------------------

Очевидно, что значения низкочастотных составляющих в спектре (левый верхний угол) будут уменьшены после квантования в меньшей степени, чем высокочастотные (в нижнем правом углу).

C. Сканирование методом "Зигзага".

В результате формируется вектор (1 x 64), в начальной части которого размещены все низкочастотные компоненты спектра:

D. ДИКМ кодирование постоянных составляющих.

Поскольку абсолютное значение постоянных составляющих в каждом блоке 8 x 8 велико, но незначительно изменяется от блока к блоку, имеет смысл использовать кодирование разности между их значениями в смежных блоках.

E. КДС (кодирование длин серий) кодирование гармонических компонент спектра.

Поскольку полученный вектор (1 x 64) содержит длинные последовательности нулей, то может быть успешно использован алгоритм кодирования длин серий. А именно, вместо кодирования всей длинной серии из нулевых значений, кодируется только значение, указывающее длину этой серии.

 

F. Энтропийное кодирование.

Представленные таким

образом спектральные компоненты кодируются методом

Хаффмана.