Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Derevo_PZOZ_Lab / обр_изо_№6.doc
Скачиваний:
17
Добавлен:
23.03.2015
Размер:
310.78 Кб
Скачать

Лабораторная работа №6

Формат JPEG

Цель работы: изучение структуры формата графических файловJPEG.

В алгоритме JPEG исходное изображение представляется двумерной матрицей размера N*N, элементами которой являются цвет пиксела. Упаковка значений матрицы выполняется за три этапа:

• дискретное косинус преобразование,

• квантование,

• вторичное сжатие.

Высокая эффективность сжатия, которую дает этот алгоритм, основана на том факте, что в матрице частотных коэффициентов, образующейся из исходной матрицы после дискретного косинусного преобразования, низкочастотные компоненты расположены ближе к левому верхнему углу, а высокочастотные - внизу справа. Это важно потому, что большинство графических образов на экране компьютера состоит из низкочастотной информации, так что высокочастотные компоненты матрицы можно безболезненно выбросить, что выполняется путем округления частотных коэффициентов. После округления отличные от нуля значения низкочастотных компонент остаются, главным образом, в левом верхнем углу матрицы. Округленная матрица значений кодируется с учетом повторов нулей. В результате графический образ сжимается, теряя немного в качестве изображения только на этапе округления.

Шаги jpeg

1) Преобразование цветового пространства: [RGB] -> [Y Cb Cr]

(R,G,B - 8-битовые величины без знака)

Y 0.299 0.587 0.114 R 0

Cb = -0.1687 -0.3313 0.5 * G + 128

Cr 0.5 -0.4187 -0.0813 В 128

Новая величина Y = 0.299*R + 0.587*G + 0.114*В является яркостью. Эта величина используется монохромными мониторами, чтобы представить цвет в RGB модели и физиологически пе­редает интенсивность цвета, воспринятого глазом. Формула для Y, подобно средневзвешенному значению с разным весом для каждого спектрального компонента: глаз наиболее чувствителен на Зеленый цвет, затем следует Красный компонент и в последнюю очередь - Синий.

Величины Cb=0.1687*R-0.3313*G+0.5*В+128 и Cr=0.5*R-0.4187*G-0.0813*B+128 названы цветовыми величинами и представляют 2 координаты в системе, которая измеряет оттенок и насыщение цвета, эти величины указывают количество синего и красного в этом цвете). Эти 2 координаты названы цветоразностью.

Преобразование [Y.Cb.Cr] в [R.G.B] (обратно предыдущему преобразованию)

RGB-цвет может быть определен непосредственно из YCbCr (8-битовые величины без знака) следующим образом:

R = Y+1.402*(Сг-128)

G = Y-0.34414*(СЬ-128)-0.71414*(Сг-128)

В = Y+1.772*(Cb-128)

2) Дискретизация

JPEG Стандарт принимает во внимание то, что глаз более чувствителен к яркости цвета, чем к оттенку этого цвета.

Поэтому для JPEG, яркость взята для каждого пикселя, тогда как цветоразность - как средняя величина для блока 2х2 пикселей. При этом достигаются хорошие результаты сжатия, с незначительным потерями в ви­зуальном восприятии нового изображения, полученного в результате применения JPEG.

Примечание: JPEG стандарт определяет, что для каждого компонента образа (подобно, например Y) должно быть определено 2 коэффициента дискретизации: один для горизонтальной дискретизации и один для вертикальной дискретизации. Эти коэффициенты дискретизации определяются в файле JPEG относительно максимального коэффициента дискретизации.

3) Сдвиг Уровня

Все 8-битовые величины без знака (Y,Cb,Cr) в изображении "смещенны по уровню": они преобразовываются в 8-битовое знаковое представление вычитанием 128 из их значения.

4) 8Х8 Дискретное Косинусоидальное Преобразование (dct)

Изображение делится на блоки 8х8 пикселов, затем для каждого блока 8х8 применяется DCT (если размер Х исходного образа не делится на 8, шифратор должен сделать его делимым, дополняя правые столбцы). Аналогично, если размер по Y не делится на 8, шифратор должен дополнить стро­ки. Блоки 8х8 обрабатываются слева направо и сверху вниз.

Примечание: Поскольку каждый пиксел в блоке 8х8 имеет 3 компонента (Y,Cb,Cr), DCT применяется отдельно к трем блоках 8х8: Первый блок 8х8 является блоком, который содержит яркость пикселов в исходном блоке изображения; второй блок 8х8 является блоком, который содержит величины СЬ; и, аналогично, третий блок 8х8 содержит величины Сг.

Цель DCT в том, что для обработки исходных изображений перейти в пространство частот изменения яркости и цвета. Эти частоты связаны с уровнем детализации изображения (высокие значения частоты соответствуют высокому уровню детализации).

DCT похоже на 2-мерное преобразование Фурье, которое получает из временного интервала (исходный блок 8х8) частотный интервал (новые коэффициенты 8х8=64, которые представляют амплитуды частотной характеристики сигнала)

Математическое определение прямого DCT (FDCT) и обратного DCT (IDCT):

c(u,v)=l/2, когда u=v=0;

c(u,v)= 1 - в остальных случаях.

IDCT:

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

Таким образом, основным этапом работы алгоритма является DCT, представляющее собой разновидность преобразования Фурье. Оно позволяет переходить от пространственного представления изображения к его спектральному представлению и обратно. Поэтому следует создать DCT матрицу, используя формулу:

DCT == l/sqr(N), если i=0

DCT = sqr(2/N)*cos[(2j+l)*i*3.14/2N], если i > 0

iJ N = 8, 0<i<7,0<j<7

в результате имеем:

.353553 .353553 .353553 .353553 .353553 .353553 .353553 .353553

. 490393 .415818 .277992 .097887 -.097106 -.277329 -.415375 -.490246

.461978 .191618 -.190882 -.461673-.462282 -.192353 .190145 .461366

DCT= .414818 -.097106 -.490246 -.278653 .276667 .490710 .099448 .414486

.353694 -.353131 -.354256 .352567 .354819 -.352001 -.355378 .351435

.277992 -.490246 .096324 .416700 -.414486 -.100228 .491013 -.274673

.191618 -.462282 .461366 .189409 -.193822 .463187 -.460440 .187195

.097887 -.278653 .416700 -.490862 .489771 -.413593 .274008 -.092414

например, нам нужно сжать следующий фрагмент изображения:

95

88

88

87

95

88

95

95

143

144

151

151

153

170

183

181

153

151

162

166

162

151

126

117

143

144

133

130

143

153

159

175

123

112

116

130

143

147

162

189

133

151

162

166

170

188

166

128

160

168

166

159

135

101

93

98

154

155

153

144

126

106

118

133

-33

-40

-40

-41

-33

-40

-33

-33

15

16

23

23

25

42

55

53

25

23

34

38

34

23

-2

-11

15

16

5

2

15

25

31

47

-5

-16

-12

2

15

19

34

61

5

23

34

38

42

60

38

0

32

40

38

31

7

-27

-35

-30

26

27

25

16

-2

-22

-10

5

Т

формула, по которой производится DCT: RES*IMG*DCT

-103

-3

1

2

4

0

-1

5

89

-40

12

-2

-7

5

1

0

57

31

-30

6

2

0

5

0

55

-28

24

1

0

-8

0

0

32

-60

18

-1

14

0

-8

1

84

-11

-37

17

-24

4

0

-4

19

81

-16

-20

8

-3

4

0

22

40

11

-22

8

0

-3

2

для начала нужно посчитать промежуточную матрицу: ТМР = IMG*DCT

умножаем ее на DCT матрицу: RES = TMP*DCT и получаем

! 91

3

-5

-6

2

0

1

[-38

-57

9

17

-2

2

2

!-80

58

0

-18

4

3

4

1-52

-36

-11

13

-9

3

0

-86

-40

44

-7

17

-6

4

•-62

64

-13

-1

3

-8

0

-16

14

-35

17

-11

2

-1

-53

32

-9

-8

22

0

2

Соседние файлы в папке Derevo_PZOZ_Lab