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

Сжатие данных, звука и изображений

.pdf
Скачиваний:
1692
Добавлен:
01.05.2014
Размер:
7.92 Mб
Скачать

130 Глава 3. Сжатие изобраэюений

я J

(5)

(4)

(3)

Двоичный код Код Грея

Рис. 3.11. (а) Слои 3, 4 и 5 изображения «попугаи».

3.3. Подходы к сэюатию изображений

131

Двоичный код Код Грея

Рис. 3.12. (а) Слои 6, 7 и 8 изображения «попугаи».

Глава 3. Сжатие изобраэюений

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

П1ШкE.ШЙ

щ

1

 

 

 

3

 

 

 

2

 

 

•1

4

 

 

5

 

 

 

7

 

 

6

 

 

•1

8

 

9

 

 

ш

 

 

11

 

 

•1

Н

• •

 

13

 

• •

14

 

• •

16115

• •

•1

ITJ

 

 

 

[lil

 

 

 

pdl

 

 

•1

ш1

 

 

 

,2ll

 

 

221

 

 

2 3 |

P

•1

24l

 

 

25l

P

 

26^1P

 

27l

P

•1

2^1

Г

 

29Ш

 

 

sdlp

 

3 l | IIII •l

Hi^.

7

isliil

(a)

 

1^E bglfei Ы

fo"

 

 

1

 

 

2

 

 

3

 

 

4

• •

 

5

• •

 

6

 

 

7

 

 

8

 

 

9

 

 

10

• •

 

11

• •

 

12

 

 

13

 

 

14

 

 

 

15

 

 

 

16

 

 

 

17

 

 

18

 

 

19

 

 

20

• •

 

21

• •

 

22

 

 

23

 

 

24

 

 

25

 

 

26

• •

 

27

• •

 

28

 

 

29

 

 

30

 

 

 

31

 

 

1б12 3

 

4

8

(b)

 

IkI^Eb\\b(,

fo"

 

 

 

1

 

 

 

•p

3

 

 

 

2

 

 

 

4

 

 

 

5

 

 

• • '

 

 

m

7

 

 

 

6

 

 

 

8

 

 

 

 

• •

•n

109

 

11

 

• • •

12

 

 

13

 

 

• •

14

 

 

 

15

 

 

16

 

 

17

 

Щ• •

1918

1

 

20

• • •

Щ

21

• • •

• •

22

• •

 

 

23

• •

 

 

24

 

 

 

25

 

 

• •

26

 

 

27

 

 

28

 

 

Щ

29

 

 

• •

30

 

 

 

31

2

4

111el

 

1

(c)

Рис. 3.13. Первые 32 двоичных и RGC кода.

3.3. Подходы к сэюатию изобраэюений

Другая особенность кодов Грея состоит в том, что вторая поло­ вина таблицы является зеркальным отображением первой половины, если самый значимый бит установить в 1. Если первая половина таб­ лицы уже вычислена, то вторая легко получается с помощью этого свойства.

На рис. 3.14 показаны круговые диаграммы, представляющие 4-х и б-ти битные коды RGC (а), и обычные двоичные коды (Ь). Слои разрядов показаны в виде колец, причем слой самого значимого бита находится внутри. Видно, что максимальная угловая частота кода RGC в два раза меньше, чему у двоичного кода. Такое цикличе­ ское представление кодов Грея не нарушает их структуру, так как первый и последний код также отличаются ровно в одном бите.

jpiiii Я ' ШЭДШИ

ШШТГШ^^

Рис. 3.14. Круговая диаграмма двоичных и RGC кодов.

Кцветным изображениям также можно применять методы ком­ прессии, разработанные для других типов изображений. Любой ме­ тод сжатия полутоновых образов позволяет сжимать цветные изо­ бражения. В цветном изображении каждый пиксел состоит из трех цветных компонент (например, RGB). Представим себе цветное изо­ бражение, в котором все компоненты состоят из одного байта. Пик­ сел описывается тремя байтами или 24 битами, но эти биты нельзя рассматривать как одно число. Три пиксела 118|206|12 и 117|206|12

Глава 3. Сэюатие изображений

различаются только на единицу в первом компоненте., поэтому они имеют близкие цвета. Если же их рассматривать в виде 24-битных чисел, то они будут сильно различаться, поскольку они разнятся в старшем бите. Любой метод компрессии, который будет основы­ ваться на таком различении пикселов, будет сильно неоптимальным. В этом смысле более подходящим является метод разделения изо­ бражения на цветные компоненты с их последующим независимым сжатием методом полутоновой компрессии.

Метод взвешенных контекстных деревьев изображений (см. [Sa­ lomon 2000. и Ekstrand 96]) является примером использования кодов RGC для сжатия образов.

История кодов Грея

Эти коды названы в честь Франка Грея (Prank Gray), который запатентовал их использование в кодерах в 1953 году [Gray 53]. Однако эта работа была выпол­ нена существенно раньше; он ее подал для патентования уже в 1947 году. Грей работал исследователем в лаборатории Белла. В течение 1930-х и 1940-х годов он получил несколько патентов в области телевидения. Если верить [Heath 72], то эти коды уже применялись Баудотом (J.M.E.Baudot) в телеграфии в 1870-х годах, но только после изобретения компьютеров эти коды стали широко из­ вестны.

Коды Баудота состояли из пяти бит на символ. С их помоиц>ю можно пред­ ставить 32 X 2 — 2 = 62 символа (каждый код имеет два смысла или значения, смысл обозначался LS и FS кодами). Они стали весьма популярными, и в 1950 они были приняты как стандарт N1 международного телеграфа. Они также ис­ пользовались во многих компьютерах первого и второго поколения.

В августе 1972 в журнале Scientific American были опубликованы две инте­ ресные статьи на тему кодов Грея: одна про происхождение двоичных кодов [Heath 72], а другая - [Gardner 72] про некоторые развлекательные аспекты ис­ пользования этих кодов.

3.3.2, Метрики ошибок

Разработчикам методов сжатия изображений с частичной потерей информации необходимы стандартные метрики для измерения рас­ хождения восстановленных изображений и исходных изображений. Чем ближе восстановленный образ к исходному, тем больше должна быть эта метрика (ее удобно называть «метрикой сходства»). Эта метрика должна быть безразмерной и не слишком чувствительной к малым изменениям восстанавливаемого изображения. Общеприня­ той величиной, используемой для этих целей, служит пиковое отно­ шение сигнал/шум (PSNR) (peak signal to noise ratio). Оно известно всем, кто работает в этой области, его легко вычислять, но оно име­ ет достаточно ограниченное, приближенное отношение к расхожде­ ниям, которые обнаруживаются органами зрения человека. Высокое

3.3. Подходы к союатию изображений

значение PSNR означает определенную схожесть реконструирован­ ного и исходного изображений, но оно не дает гарантию того, что зрителю понравится восстановленный образ.

Обозначим через Pi пикселы исходного изображения, а пикселы восстановленного изображения пусть будут Qi (где 1 < г < п). Да­

дим сначала определение среднеквадратической

ошибке (MSE, mean

square error), которая равна

 

1 ""

(3-2)

MSE = -J2{Pi-Qif'

Эта величина равна среднему квадратов ошибок (разностей пиксе­ лов) двух изображений. Число RMSE (корень среднеквадратической ошибки) определяется как квадратный корень числа MSE, а вели­ чина PSNR равна, по определению,

PSNR = 201og,o"^'"^l''^l RMSE *

Абсолютная величина, обычно, бывает не нужна, поскольку пиксе­ лы редко бывают отрицательными. Для двухуровневых изображе­ ний числитель равен 1. Для полутоновых образов, пикселы которых состоят из 8 битов, числитель равен 255. Для изображений исполь­ зуется только компонента цветности.

Чем больше схожесть между образами, тем меньше величина RMSE, а, значит, больше PSNR. Число PNSR безразмерно, поскольку еди­ ницами измерения и числителя, и знаменателя служат величины пикселов. Тем не менее, из-за использования логарифмов говорит­ ся, что число PSNR измеряется в децибелах (дБ, см. § 6.1). Ис­ пользование логарифмов сглаживает RMSE, делает эту величину менее чувствительной. Например, деление RMSE на 10 означает умножение PSNR на 2. Отметим, что PSNR не имеет абсолютного значения. Бессмысленно говорить, что если PSNR равно, скажем, 25, то это хорошо. Величины PSNR используются только для сравне­ ния производительности различных методов сжатия и для изучения влияния разных параметров на производительность того или ино­ го алгоритма. К примеру, комитет MPEG использует субъектив­ ный порог PSNR = 0.5 дБ при включении кодовой оптимизации, поскольку считает, что улучшение на эту величину будет замет­ но глазу.

Обычно, величина PSNR варьируется в пределах от 20 до 40. Ес­ ли значения пикселов находятся в интервале [0,255], то RMSE, рав­ ное 25.5, дает PSNR, равное 20, а при RMSE равном 2.55 величина

Глава 3. Сжатие изобраэюений

PSNR - 40. Значение RMSE равное нулю (совпадение изображений), дает для PSNR результат бесконечность (более точно, неопределен­ ность). При RMSE равном 255 число PSNR равно О, а если RMSE больше, чем 255, то PSNR будет отрицательным.

Читателю будет полезно ответить на следующий вопрос: если максимальное значение пиксела равно 255, может ли RMSE быть больше 255? Ответ будет «нет». Если величины пикселов принад­ лежат интервалу [0,255], то разность {Р{ — Qi) будет не более 255. В наихудшем случае она равна 255. Легко видеть, что тогда RMSE будет равно 255.

Некоторые авторы определяют PSNR следуюп];ей формулой

PSNR = , O b g , . = ^ .

Для того, чтобы эти формулы давали одинаковые результаты, ло­ гарифм умножается на 10 а не на 20, поскольку logjo Л^ = 2 log^g А.

Характеристикой, близкой к этим величинам, является отноше­ ние сигнал/шум (SNR, signal to noise ratio). Оно определяется по формуле (в знаменателе стоит число RMSE исходного образа)

S N R ^ 2 0 1 o g , o - ^ ^ ^ ^ ^ ' RMSE *

На рис. 3.15 приведена функция для системы Matlab, вычисляю­ щая PSNR для двух изображений. Она вызывается как PSNR(A,B), где А и В - два файла изображений. Изображения должны иметь одинаковое разрешение и значения пикселов должны лежать в ин­ тервале [0,1].

Другой родственной величиной для PSNR служит отношение сигнал/шум квантования (SQNR, signal to quantization noise ratio). Эта величина измеряет влияние эффекта квантования на качество сигнала. Она определяется выражением

мощность сигнала SQNR - lOlogio ^Hiii6Ka квантования'

где ошибка квантования равна разности между квантованным и ис­ ходным сигналами.

Другой подход к сравнению оригинального и восстановленного изображения состоит в построении разностного изображения и оце­ нивании его качества визуальным наблюдением. Интуитивно раз­ ностное изображение равно Di — Pi — Qi, однако такой образ труд­ но оценить на глаз, так как значения пикселов Di являются малыми

3.4- Интуитивные методы

числами. Если нулевое значение соответствует белому цвету, то та­ кой разностный образ будет почти невиден. Наоборот, если нуль соответствует черному цвету, то разность будет слишком темной для выработки точного суждения. Лучшие результаты можно полу­ чить, используя формулу

Di = a{Pi - Qi) + Ь,

где а - параметр амплитуды (обычно малое число, например, 2), а 6 - половина максимального значения пиксела (обычно, это 128). Параметр а нужен для увеличения малых разностей, а 6 сдвигает разностный образ из крайне белого в сторону черного в область комфортного для глаза серого цвета.

f u n c t i on PSNR(A,B)

 

 

 

if

А==В

 

 

 

 

 

e r r o r С Images

are

i d e n t i c a l ; PSNR

i s undefined')

end

 

 

 

 

max2_A=max (max (A) ) ;

max2_B=max (max (B));

min2_A=min(min(A)) ; min2-B=min(min(B));

if

max2_A>l | max2_B>l

| min2_A<0 |

min2JB<0

 

e r r o r ( ' p i x e l s

must

be

in [ 0 , 1 ] ' )

 

end

 

 

 

 

differ=A-B;

 

 

 

 

decib=20*logl0(l/(sqrt(mean(mean(differ.~2))))) ; disp(sprintf('PSNR = +%5.2f flE',decib))

Ри с . 3 . 15. Функция Matlab для вычисления PSNR.

3.4.Интуитивные методы

Легко придумать простые интуитивные методы сжатия изображе­ ний. Мы приведем их здесь только с иллюстративными целями. На практике, конечно, используются более изощренные (и эффектив­ ные) методы компрессии изображений.

3.4» i- Под выборка

Подвыборка, возможно, является самым простым методом сжатия изображения. Простейший способ подвыборки - это просто отбро­ сить некоторые пикселы. Кодер может, например, игнорировать каждую вторую строку и каждый второй столбец изображения и записывать оставшиеся пикселы в сжатый файл. Это составит 25%

Глава 3. Сжатие изображений

от исходного. Декодер вводит сжатые данные и использует каждый пиксел для создания четырех одинаковых пикселов реконструиро­ ванного изображения. Это, конечно, приводит к потере многих де­ талей изображения. Такой метод редко приводит к удовлетвори­ тельным результатам. Заметим, что для такого метода коэффици­ ент сжатия известен заранее.

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

Лучшие результаты (но худшее сжатие) получаются, если цвет­ ное представление образа трансформируется из обычного (напри­ мер, RGB) в представление с компонентами светимости и цветно­ сти. Кодер делает подвыборку в двух компонентах цветности, а компоненту яркости оставляет нетронутой. Если считать, что все компоненты используют одно и то же число бит, то две компоненты цветности занимают 2/3 размера исходного файла. Сделав подвы­ борку, сокращаем этот размер до 25% от 2/3, то есть до 1/6. Тогда размер сжатого файла будет складываться из 1/3 (для несжатой компоненты светимости) плюс 1/6 (для двух компонент цветности), что равно 1/2 исходного размера.

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

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

Изображение делится на равные блоки пикселов, которые назы­ ваются векторами, а у кодера имеется список таких же блоков, на­ зываемый кодовой книгой. Каждый блок В изображения сравнива­ ется со всеми блоками из кодовой книги и находится «ближайший» к В блок С. После чего в выходной файл записывается указатель на блок С. Если размер указателя меньше размера блока, то достига­ ется сжатие. На рис. 3.16 показан пример такой деятельности.

Проблемы выбора кодовой книги и поиска в ней ближайшего

3.5. Преобразование изобраэюений I39J

блока обсуждаются в [Salomon 2000] с применением к алгоритму, предложенному в [Linde et al. 80]. Отметим, что в методе векторного квантования коэффициент сжатия известен заранее.

Кодовая киигй

Восстановленный образ

Рис. 3.16. Интуитивное векторное квантование.

3.5. Преобразование изображений

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

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

XCVI X ХП ^ 96 X 12 = 1152 -> МСЫХ.

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