ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.02.2021
Просмотров: 107
Скачиваний: 1

Рассмотрим
более
подробно
структуру
алгоритма
JPEG .
Название
данного
алгоритма
является
аббревиатурой
Joint Photographic Expert Group,
которой
и
был
утвержден
в
1992
г
.
стандарт
сжатия
цветных
и
нецветных
изображений
.
Необходимость
разработки
данного
стандарта
была
обусловлена
следующими
причинами
.
-
Значение
коэффициента
сжатия
изображений
с
использованием
алгоритмов
без
потерь
(
методом
Хаффмана
,
например
)
крайне
невелико
,
в
особенности
,
когда
гистограмма
распределения
значений
точек
изображений
стремится
к
равномерной
.
Алгоритм
JPEG
использует
спектральные
преобразования
для
кодирования
,
поскольку
:
-
Значительная
часть
изображений
изменяется
относительно
медленно
вдоль
всей
площади
,
т
.
е
.
редко
встречается
случай
,
когда
значение
интенсивности
уменьшается
или
увеличивается
несколько
раз
подряд
в
пределах
небольшой
области
,
скажем
,
размером
8 x
8
точек
.
-
Психофизические
эксперименты
подтверждают
тот
факт
,
что
человеческое
зрение
менее
чувствительно
к
утрате
высокочастотных
компонент
в
спектре
нежели
низкочастотных
.
Структура
алгоритма
JPEG.
Кодирование
осуществляется
по
схеме
приведенной
на
рис
. 3.
Декодирование
выполняется
в
обратной
последовательности
.
YIQ
или
YUV
ДКП
f (i, j)
8 x 8
Квантование
F (u, v)
Таблицы
квантования
F/q(u, v)
ДИКМ
КДС
Кодирование
по
Хаффману
ПС
ГС
Зигзаг
Таблицы
кодирования
Данные
Таблицы
Заголовок
Рис
. 3
.
Структура
алгоритма
кодирования
JPEG.
Как
видно
из
рис
. 3,
кодирование
состоит
из
следующих
шагов
:
1.
ДКП
(
Дискретное
косинусное
преобразование
)
2.
Квантование
3.
Сканирование
методом
"
Зигзага
"

4.
ДИКМ
кодирование
постоянных
составляющих
5.
КДС
кодирование
гармонических
составляющих
6.
Энтропийное
кодирование
по
методу
Хаффмана
.
A
.
Дискретное
косинусное
преобразование
Необходимо
для
перехода
от
пространственного
к
спектральному
представлению
.
f (i,j)
ДКП
F (u, v)
Выполняется
по
следующим
формулам
.
Прямое
преобразование
:
)
,
(
16
)
1
2
(
cos
16
)
1
2
(
cos
4
)
(
)
(
)
,
(
7
0
7
0
j
i
f
v
j
u
i
v
u
v
u
F
i
j
⋅
⋅
⋅
+
⋅
⋅
⋅
+
⋅
Λ
Λ
=
⋅
∑ ∑
= =
π
π
=
=
Λ
иначе
для
1
2
1
0
)
(
ξ
ξ
Обратное
преобразование
:
)
,
(
16
)
1
2
(
cos
16
)
1
2
(
cos
4
)
(
)
(
)
,
(
~
7
0
7
0
v
u
F
v
j
u
i
v
u
j
i
f
u
v
⋅
⋅
⋅
+
⋅
⋅
⋅
+
⋅
Λ
Λ
=
⋅
∑ ∑
= =
π
π
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 ( = 111101
2
)
имело
размер
6
дв
.
разрядов
,
то
после
деления
на
q[u, v]
= 5
с
последующим
округлением
останется
всего
(12
10
= 1100
2
) 4
разряда
.
Очевидно
,
что
возникающая
в
этом
случае
ошибка
квантования
,
объясняет
почему
данный
алгоритм
относится
к
классу
методов
сжатия
с
потерями
.
Существует
два
варианта
квантования
:
a)
все
элементы
матрицы
F[u, v]
делятся
на
одно
и
тоже
значение
N
(
равномерное
квантование
).
b)
используется
таблица
квантования
Ниже
приводятся
примеры
двух
матриц
квантования
для
яркостной
составляющей
(
Y
)
и
для
цветоразностных
составляющих
(
I
,
Q
или
U
,
V
).

Табл
.
квант
-
ия
яркост
.
составл
.
q(u, v)
-----------------------------------
16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
-----------------------------------
Табл
.
квант
-
ия
.
цветоразн
.
составл
. q(u, v)
------------------------------
17 18 24 47 99 99 99 99
18 21 26 66 99 99 99 99
24 26 56 99 99 99 99 99
47 66 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
------------------------------
Очевидно
,
что
значения
низкочастотных
составляющих
в
спектре
(
левый
верхний
угол
)
будут
уменьшены
после
квантования
в
меньшей
степени
,
чем
высокочастотные
(
в
нижнем
правом
углу
).
C
.
Сканирование
методом
"
Зигзага
".
В
результате
формируется
вектор
(1 x 64),
в
начальной
части
которого
размещены
все
низкочастотные
компоненты
спектра
:
D
.
ДИКМ
кодирование
постоянных
составляющих
.
Поскольку
абсолютное
значение
постоянных
составляющих
в
каждом
блоке
8 x 8
велико
,
но
незначительно
изменяется
от
блока
к
блоку
,
имеет
смысл
использовать
кодирование
разности
между
их
значениями
в
смежных
блоках
.
E
.
КДС
(
кодирование
длин
серий
)
кодирование
гармонических
компонент
спектра
.
Поскольку
полученный
вектор
(1 x 64)
содержит
длинные
последовательности
нулей
,
то
может
быть
успешно
использован
алгоритм
кодирования
длин
серий
.
А
именно
,
вместо
кодирования
всей
длинной
серии
из
нулевых
значений
,
кодируется
только
значение
,
указывающее
длину
этой
серии
.
F
.
Энтропийное
кодирование
.
Представленные
таким
образом
спектральные
компоненты
кодируются
методом
Хаффмана
.