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

llama / llama_bachelor_MPiTK_2004_VM-1

.pdf
Скачиваний:
15
Добавлен:
16.04.2013
Размер:
475.19 Кб
Скачать

- 21- (в широком смысле) дискретного процесса означает, что отсчёты дискретного сигнала

{Xk } имеют

одинаковые

математические

ожидания M ( Xk ) = mX

 

и

дисперсии

D( Xk ) = σ X2 ,

а корреляция

между отсчетами

Xk , X j зависит только

 

от

расстояния

между моментами наблюдения дискретного процесса, т.е. от величины

 

k - j

 

. Так, для

 

 

марковского процесса первого порядка коэффициент корреляции r (Xk , X j ) = ρ k j , где

ρ – коэффициент

корреляции соседних отсчётов сигнала. Тогда случайный вектор

X = ( X0 ,K, X N −1 )T

выборка

 

из

дискретного сигнала, описываемого моделью

марковского процесса, имеет следующую ковариационную матрицу:

 

 

 

æ

 

1

 

ρ

K ρ N −1

ö

 

 

2

ç

 

ρ

 

1

K ρ N −2

÷

(6)

 

KX (ρ ) = σ X

ç

K

K

1

K

÷ .

 

 

ç

ρ

N −1

ρ

N −2

K

1

÷

 

 

 

è

 

 

ø

 

Модель (6) представляет особый интерес, так как часто используется на практике для описания дискретных сигналов, причём обычно параметр ρ имеет значение,

близкое к единице.

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

Среди

преобразований, имеющих быстрые алгоритмы вычислений (требующих

! N log N

операций умножения вместо ! N 2 ), наибольшую эффективность для

кодирования сигнала, описываемого моделью марковского процесса, показывает

дискретное косинусное преобразование (ДКП), которое определяется следующей формулой:

 

 

 

 

 

 

 

 

 

2

 

 

N −1

æ π k

æ

 

1 öö

 

 

 

 

 

 

 

yk

=

 

 

c(k )åxj

cosç

ç

j +

 

÷÷

,

(7)

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

j=0

 

 

 

 

è N

è

 

2 øø

 

где

 

 

 

 

 

 

 

 

 

 

k = 0,1,K, N −1,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c(k )

= íï

 

 

 

 

 

, при k = 0 .

 

 

 

(8)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

1, при k ¹ 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

î

 

 

 

 

 

 

 

Записав ДКП (7) в матричном виде, Y = WX, получим для структуры матрицы ДКП:

ì

 

 

 

 

 

æ

π k æ

 

 

 

 

üN −1

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

1 ööï

 

 

 

 

 

 

 

 

 

W = íwk , j

=

 

 

c(k )cosç

 

 

ç j +

÷÷ý

.

 

 

 

 

 

 

N

N

 

 

 

 

 

 

ï

 

 

 

 

è

è

 

 

2 øøï

 

 

 

 

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

þk , j=0

 

 

 

 

 

 

- 22-

Важным свойством ДКП является его ортогональность: WT = W−1 . Следовательно, для него выполняется соотношение (5). Обратное ДКП определяется формулой:

 

 

 

2

 

N −1

æ π k æ

 

1 öö

 

 

xj

=

 

 

 

åc(k ) yk

cosç

N

ç

j +

 

÷÷

,

(9)

 

2

 

 

 

N j=0

è

è

 

øø

 

j = 0,1,K, N −1.

Для стационарного марковского процесса первого порядка по сравнению с такими преобразованиями как дискретное преобразование Фурье (ДПФ) в вещественной форме, дискретные преобразования Уолша (ДПУ) и Хаара (ДПХ), ДКП дает наиболее близкие к оптимальному преобразованию Карунена-Лоэва характеристики.

1.5. RD-оптимизация

Пусть x некоторый набор входных данных, которому в результате выполнения процедуры сжатия-восстановления ставится в соответствие выходной набор данных той же природы, y = F (x,u), где u = (u1,...,un ) набор управляющих параметров алгоритма кодирования с потерями; x,y элементы некоторого метрического пространства Ω с

метрикой

D( X ,Y ), U

множество всех возможных значений управляющего вектора

u , т.е.

xΩ, y Ω, u U . Задача

оптимизации алгоритма

F

формулируется

следующим образом:

для заданного

набора входных данных

x

и максимально

допустимой длины выходного двоичного кода Rb найти такие параметры u = (u1 ,...,un )

алгоритма F , чтобы ошибка кодирования данных, т.е. величина D(x,y) = D(x, F (x,u)),

принимала бы минимальное значение. То есть

D(x, F (x,u )) = D(x,u ) = min (D(x,u)),

 

 

u U

,

(10)

R(x,u ) £ Rb ,

 

 

где R(x,u) число бит, необходимое для кодирования набора данных x по алгоритму

F при выбранных параметрах u = (u1,...,un ) . Множество U можно интерпретировать

как некоторое подмножество n-мерного евклидова пространства En . Для простоты положим, что множество U совпадает со всем пространством En (при необходимости,

функции D(x,u), R(x,u) можно доопределить на множестве En \U ). Если,

дополнительно, определенные на множестве U функции D(x,u), R(x,u) также

выпуклы (для любых фиксированных значений x), то (10) представляет собой задачу выпуклого математического программирования.

- 23-

 

Для решения задачи (10) воспользуемся

теоремой Куна-Таккера [2]: пусть

f (x1,..., xn ) ® min, gi (x) £ 0, i = 1,...,m задача

выпуклого программирования с

множеством U , определенным ограничениями, имеющим хотя бы одну внутреннюю точку (т.е. множество U удовлетворяет условию Слейтера). Тогда для того, чтобы точка x ÎU была решением этой задачи, необходимо и достаточно, чтобы существовал вектор множителей Лагранжа λ Î Em с неотрицательными координатами, такой, что

L

(

x

)

x En

(

x

)

;

 

 

= min L

 

 

λi gi (x )

= 0, i = 1,...,m.

,

 

m

 

 

 

 

 

 

 

 

 

где L(x) = f (x) + åλi gi (x)

функция Лагранжа.

i=1

 

 

 

 

 

 

 

 

 

Согласно этой теореме, поиск решения задачи (10) сводится к безусловной

минимизации функции Лагранжа

L(u) = D(u) + λ (R(u) - Rb ) , т.е. L(u ) = min L(u),

u En

где константа λ ³ 0 такова, что λ (R(u) - Rb ) = 0 . Здесь функции D(x,u), R(x,u) для краткости обозначены как D(u), R(u) .

Если u является решением задачи (10), то u является также решением задачи

условной минимизации

D(u ) = min (D(u)),

u U

R(u) = Rb/ ,

где Rb/ = Rb - (Rb - R(u )) = R(u ). Т.е. если известна заранее величина Rb/ , то для случая U = En решение (10) является так же решением задачи безусловной

минимизации по параметрам u функции

L(u) = D(u) + λ (R(u) - Rb/ )

или

 

 

 

 

 

J (u) = D(u) + λR(u) ,

 

 

 

(11)

где множитель Лагранжа λ

определяется некоторым образом по величине R /

. Таким

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

образом, при U = En решению u

исходной задачи (10) соответствует параметр λ , при

котором

(

 

)

 

 

(

 

)

 

ë

(

 

)

 

(

 

)û

(12)

J

u

= min J

u

 

u

+ λR

u

 

 

 

 

= min éD

 

 

 

ù .

 

 

 

 

 

 

u

 

 

 

u

 

 

 

 

 

 

 

 

 

- 24-

Минимизация функции (11) лежит в основе подхода, используемого на практике при оптимизации схем кодирования. Кроме того, вводится дополнительное ограничение:

при любом изменении вектора параметров u величины R(u) и D(u) не могут одновременно уменьшаться или одновременно увеличиваться, и, поскольку всегда

R(u) ³ 0 и D(u) ³ 0 , отсюда следует, что параметр λ в функции (11) устанавливает баланс между качеством и уровнем сжатия данных. Увеличивая значение λ при оптимизации алгоритма по (12), получим меньшую длину кода, но большую ошибку.

Значение

λ = 0 соответствует наименьшей возможной ошибке кодирования, значение

λ = ∞ –

наибольшему сжатию. Это дает возможность настраивать алгоритм на

необходимые характеристики.

Таким образом, определение оптимальных параметров u алгоритма кодирования F может быть сведено к процедуре минимизации, имеющей общий вид (12). Данная процедура называется RD-оптимизацией (Rate – Distortion). Более подробно она описана в монографии [5].

-25-

2.Разработка алгоритма сжатия изображений

2.1.Краткий обзор существующих подходов

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

Векторное квантование можно применять для сжатия изображений в различных схемах. Например, квантование можно проводить как непосредственно в области изображения, так и в области его спектра, полученного в результате ортогонального преобразования изображения. Можно использовать различные преобразования; самыми распространенными являются дискретное косинусное преобразование (ДКП) и дискретное вейвлет-преобразование (ДВП).

Существует достаточно большое число алгоритмов сжатия изображений, использующих векторное квантование, в частности, алгоритмы TSMVQ [17], FS-RVQ [13], и Hybrid VQ [16]. Ни один из них не использует дискретное косинусное преобразование, в том числе и потому, что оно проводится над блоками достаточно больших размеров (минимум 16 элементов), что значительно замедляет работу векторного квантователя (см. п.1.2.7).

В настоящей работе использован способ уменьшения размерности векторов,

подвергаемых квантованию с помощью особого разбиения матрицы ДКП на непересекающиеся подмножества (кластеры). После проведения такого разбиения

появляется возможность использовать векторное квантование для кодирования коэффициентов ДКП.

Алгоритм [4] ранее не был апробирован, поэтому в рамках данной работы было проведено его исследование и тестирование на реальных данных.

2.2.Тестирование алгоритма кластеризации

Спомощью алгоритма [4] была обработана последовательность из нескольких десятков тысяч 64-компонентных векторов поблочных ДКП-спектров нескольких тестовых фотографических изображений. Корреляционная матрица строилась по этим же векторам.

-26-

Втаблице приведена часть корреляционной матрицы для первых пяти НЧ- компонент блока ДКП 8×8 , развернутого в вектор с помощью «зигзаг-сканирования» так, как это выполняется в методе JPEG. Компоненты пронумерованы по столбцам блока.

Таблица 2.1. Корреляционная матрица НЧ-компонент спектра ДКП

№ компоненты

1

2

 

9

 

17

10

 

 

 

 

 

 

 

 

 

 

1

1.0000

0.0048

 

0.0050

 

-0.0963

-0.0130

 

 

 

 

 

 

 

 

 

 

2

0.0048

1.0000

 

0.0410

 

-0.0043

0.0089

 

 

 

 

 

 

 

 

 

 

9

0.0050

0.0410

 

1.0000

 

0.0108

0.0058

 

 

 

 

 

 

 

 

 

 

17

-0.0963

-0.0043

 

0.0108

 

1.0000

0.0278

 

 

 

 

 

 

 

 

 

 

10

-0.0130

0.0089

 

0.0058

 

0.0278

1.0000

 

 

 

 

 

 

 

 

 

 

При изменении

параметра

Hmax были

получены

разбиения

ДКП-спектра на

различное число кластеров, от 2 до 20. Постоянная составляющая не участвовала в кластеризации.

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

Таблица 2.2. Разбиение на 3 кластера Таблица 2.3. Разбиение на 4 кластера

0

3

 

2

3

 

2

 

3

 

2

3

 

 

 

 

 

 

 

 

 

 

 

 

1

3

 

1

3

 

1

 

2

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

2

1

 

2

 

1

 

2

1

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

1

2

 

1

 

2

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2

3

 

2

1

 

2

 

1

 

2

1

 

 

 

 

 

 

 

 

 

 

 

 

1

3

 

1

3

 

1

 

2

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

3

3

 

3

3

 

2

 

1

 

2

1

 

 

 

 

 

 

 

 

 

 

 

 

3

3

 

3

3

 

3

 

3

 

3

3

 

 

 

 

 

 

 

 

 

 

Hmax = 108.95; H1 = 107.28;

 

 

 

H2

= 106.2; H3

= 93.5

 

 

 

 

0

 

3

 

2

 

3

2

 

3

 

2

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

4

 

1

 

4

3

 

4

 

1

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

3

 

2

 

1

2

 

1

 

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

4

 

1

 

4

1

 

4

 

1

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

3

 

2

 

3

2

 

1

 

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

4

 

1

 

4

3

 

4

 

3

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

3

 

4

 

3

4

 

3

 

4

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

4

 

3

 

4

3

 

4

 

3

 

4

 

 

 

 

 

 

 

 

 

 

 

 

Hmax

= 80.95; H1 = 78.4;

H2

= 67.4;

 

H3

= 80.9; H4

= 80.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 27-

Таблица 2.4. Разбиение на 5 кластеров

0

 

1

 

2

 

1

 

2

 

5

 

5

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

4

 

3

 

4

 

3

 

4

 

1

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

1

 

2

 

1

 

2

 

1

 

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

4

 

3

 

4

 

3

 

4

 

1

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

1

 

2

 

1

 

2

 

1

 

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

4

 

3

 

4

 

3

 

4

 

3

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

5

 

5

 

5

 

5

 

5

 

5

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

5

 

5

 

5

 

3

 

5

 

3

 

5

 

 

 

 

 

 

 

 

 

 

 

Hmax

= 65.95; H1 = 65.93;

H2 = 62.4;

 

H3

= 64.9; H4

= 58.1; H5 = 55.7

 

Таблица 2.6. Разбиение на 8 кластеров

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

6

 

3

 

6

 

7

 

8

 

7

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

4

 

1

 

4

 

5

 

2

 

5

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

6

 

3

 

6

 

2

 

5

 

2

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

4

 

1

 

4

 

5

 

2

 

5

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

6

 

3

 

6

 

2

 

6

 

2

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

4

 

1

 

4

 

5

 

2

 

8

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

8

 

7

 

7

 

7

 

8

 

2

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

7

 

8

 

7

 

8

 

7

 

8

 

7

 

 

 

 

 

 

 

 

 

 

 

Hmax

= 52.0; H1 = 43.28; H2

= 39.99;

 

H3

= 37.27; H4 = 36.79; H5

= 34.81;

 

 

H6

= 46.49; H7

= 37.4; H8

= 31.42;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.5. Разбиение на 6 кластеров

0

1

3

 

1

3

 

6

5

 

6

 

 

 

 

 

 

 

 

 

 

 

4

2

4

 

2

4

 

5

1

 

2

 

 

 

 

 

 

 

 

 

 

 

3

1

3

 

1

3

 

1

2

 

1

 

 

 

 

 

 

 

 

 

 

 

4

2

4

 

2

6

 

2

1

 

2

 

 

 

 

 

 

 

 

 

 

 

3

6

3

 

1

3

 

1

3

 

1

 

 

 

 

 

 

 

 

 

 

 

4

2

4

 

2

4

 

5

4

 

5

 

 

 

 

 

 

 

 

 

 

 

5

6

5

 

6

5

 

6

5

 

6

 

 

 

 

 

 

 

 

 

 

 

6

5

6

 

5

6

 

5

6

 

5

 

 

 

 

 

 

 

 

 

 

Hmax

= 60.0; H1 = 59.996;

H2 = 52.2;

 

 

H3 = 57.98; H4

= 55.9; H5

= 37.9; H6

= 43.5

Таблица 2.7. Разбиение на 10 кластеров

0

6

5

6

8

7

10

7

 

 

 

 

 

 

 

 

3

1

3

1

4

2

4

2

 

 

 

 

 

 

 

 

5

6

5

6

2

4

2

4

 

 

 

 

 

 

 

 

3

1

3

1

4

2

4

2

 

 

 

 

 

 

 

 

8

7

8

6

2

7

2

4

 

 

 

 

 

 

 

 

9

1

9

1

4

10

9

10

 

 

 

 

 

 

 

 

8

7

8

7

8

7

2

7

 

 

 

 

 

 

 

 

9

10

9

10

9

10

9

10

 

 

 

 

 

 

 

 

Hmax = 37.0; H1 = 36.79; H2 = 36.6; H3 = 32.38; H4 = 34.81 H5 = 24.6;

H6 = 36.41; H7 = 31.68; H8 = 31.55; H9 = 24.22; H10 =18.54.

- 28-

Таблица 2.8. Разбиение на 12 кластеров

0

6

4

6

10

7

10

11

 

 

 

 

 

 

 

 

2

8

2

5

3

1

3

1

 

 

 

 

 

 

 

 

4

6

4

6

1

3

1

3

 

 

 

 

 

 

 

 

2

8

2

5

3

1

3

1

 

 

 

 

 

 

 

 

11

7

11

6

1

7

1

7

 

 

 

 

 

 

 

 

9

5

9

5

9

12

9

8

 

 

 

 

 

 

 

 

11

7

10

7

10

7

10

7

 

 

 

 

 

 

 

 

11

8

9

8

9

8

9

8

 

 

 

 

 

 

 

 

Hmax = 36.6; H1 = 34.59; H2 = 32.38; H3 = 28.59; H4 = 24.62 H5 = 21.66;

H6 = 36.41; H7 = 30.10; H8 = 25.26; H9 = 24.16; H10 = 20.85; H11 = 25.7; H12 = 3.42.

Таблица 2.9. Разбиение на 14 кластеров

0

8

2

6

11

12

11

12

 

 

 

 

 

 

 

 

3

10

3

5

7

9

4

9

 

 

 

 

 

 

 

 

2

8

2

6

1

4

1

4

 

 

 

 

 

 

 

 

13

10

3

5

13

1

4

9

 

 

 

 

 

 

 

 

14

8

14

6

1

4

1

12

 

 

 

 

 

 

 

 

7

5

7

5

7

9

7

9

 

 

 

 

 

 

 

 

14

12

11

12

11

12

11

12

 

 

 

 

 

 

 

 

13

10

13

10

13

10

13

10

 

 

 

 

 

 

 

 

Hmax = 25.85; H1 = 23.4; H2 = 24.6; H3 = 24.18; H4 = 21.37 H5 = 21.67;

H6 = 18.66; H7 = 23.63; H8 = 23.77; H9 = 16.58; H10 = 23.42; H11 = 20.8; H12 = 23.9 H13 = 24.14; H14 = 17.82.

Для проверки эффективности реализованного алгоритма описанный в п.2.4 метод сжатия изображений был протестирован.с различными разбиениями. Использовалось разбиение на 3 кластера, приведенное в таблице 2.2, а также два «интуитивных» разбиения, показанных в таблицах 2.8 и 2.9.

Таблица 2.10. «Интуитивное» разбиение 1 Таблица 2.11. «Интуитивное» разбиение 2

0

1

1

2

2

2

3

3

 

 

 

 

 

 

 

 

1

1

2

2

2

3

3

3

 

 

 

 

 

 

 

 

1

2

2

2

3

3

3

3

 

 

 

 

 

 

 

 

1

2

2

2

3

3

3

3

 

 

 

 

 

 

 

 

2

2

2

3

3

3

3

3

 

 

 

 

 

 

 

 

2

3

3

3

3

3

3

3

 

 

 

 

 

 

 

 

3

3

3

3

3

3

3

3

 

 

 

 

 

 

 

 

3

3

3

3

3

3

3

3

 

 

 

 

 

 

 

 

0

2

2

2

2

2

2

2

 

 

 

 

 

 

 

 

3

3

1

1

2

2

2

2

 

 

 

 

 

 

 

 

3

1

1

1

1

2

2

2

 

 

 

 

 

 

 

 

3

1

1

1

1

2

2

2

 

 

 

 

 

 

 

 

3

3

1

1

1

1

1

2

 

 

 

 

 

 

 

 

3

3

3

1

1

1

1

1

 

 

 

 

 

 

 

 

3

3

3

3

1

1

1

1

 

 

 

 

 

 

 

 

3

3

3

3

1

1

1

1

 

 

 

 

 

 

 

 

В качестве тестового использовалось изображение Goldhill; по нему же строилась и кодовая книга. Адаптивность алгоритма компрессии изображений на время тестирования была отключена. Таким образом, в данном тесте использовалось исключительно векторное квантование.

Результаты тестирования приведены на рисунке.

 

 

 

 

 

- 29-

 

 

 

 

 

32

 

Goldhill, Clusters=3, L=[16 32 64 96 128 ]

 

 

 

 

 

 

 

 

 

 

 

 

31

 

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

dB

 

 

 

 

 

 

 

 

 

PSNR,

29

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

28

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Algorithm, λ=1.5

 

 

27

 

 

 

 

 

JPEG Huffman

 

 

 

 

 

 

 

 

Intuitive 1, λ=0.92

 

 

26

 

 

 

 

 

Intuitive 2, λ=0.92

 

 

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

 

0.05

 

 

 

 

 

BPP

 

 

 

 

Как видно из графиков, алгоритм [4] дает лучший результат. Преимущество не так

велико из-за хороших декоррелирующих свойств ДКП, однако оно дает до 13%

выигрыша по сравнению с «интуитивными» разбиениями на кластеры.

 

2.3. Задание начальной кодовой книги алгоритма LBG

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

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

Этот способ напоминает обычное «разделение» кодовой книги с двумя отличиями. Во-первых, за одну итерацию разделяются не все векторы, а лишь один из них (перебор идет по очереди), после чего он заносится в текущую кодовую книгу. После разделения вектора запускается алгоритм LBG с текущей кодовой книгой в качестве начальной; в процессе его работы вычисляется суммарное значение J probe = D + λR при кодировании всех векторов обучающей последовательности с помощью новой кодовой книги. После этого полученное значение J probe сравнивается со значением J на предыдущей итерации. Если J probe > J , то только что добавленный вектор удаляется из кодовой книги и алгоритм переходит на следующую итерацию. Таким образом, добавление

- 30-

нового вектора в кодовую книгу происходит только в том случае, если оно обеспечивает уменьшение суммарного значения J .

Во-вторых, при разделении вектора шаг производится в случайном направлении,

т.е.:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x = (x0 , x1

ì

+

= x + δ = (x0

+ δ0 , x1 + δ1,..., xn−1 + δn−1 )

 

 

,..., xn−1 ) Þ íïx

 

,

(13)

 

 

 

 

 

 

 

 

 

 

 

ïx

= x - δ = (x

0

-δ

0

, x -δ

,..., x

n−1

-δ

n−1

)

 

 

 

 

 

 

 

 

 

 

 

 

 

î

 

 

 

1 1

 

 

 

 

 

 

где δ = ε

 

 

 

 

s

 

 

 

 

, sk ~ N (mk k ). Для простоты в программе использовались одинаковые

 

 

 

 

s

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

параметры

 

 

для каждой координаты:

 

m0

 

= m1 = ... = mn−1

и

 

σ0 = σ1 = ... = σn−1 .

Таким

образом, в отличие от стандартного алгоритма «разделения» данный алгоритм не выделяет какое-то фиксированное направление, в котором всегда происходит расщепление вектора, что дополнительно улучшает результат.

Приведем полную схему алгоритма, описанного выше. Пусть в начале работы задана последовательность обучающих векторов {am}Mm=01 , желаемая длина кодовой книги Lmax , а

также максимальное количество итераций qmax (для предотвращения зацикливания в случае, если долгое время не удается провести успешное «разделение» ни одного вектора).

Шаг 0. Инициализация.

 

1

M −1

Задать начальную кодовую книгу C = {c0}, где c0 =

åam ,

 

 

M m=0

установить длину кодовой книги L = 1, установить J1 = +∞ ,

установить номер очередного вектора, подлежащего «разделению» j = 0 .

Шаг 1. Скопировать текущую кодовую книгу: C0 = C .

Положить среднюю ошибку E0 = +¥ , установить счетчик итераций i = 0 , установить счетчик зацикливания q = 0 .

Шаг 2. Провести «разделение» вектора сij на два вектора в соответствии с формулой

(13). Удалить вектор сij из кодовой книги, а векторы cij+ и cijдобавить в ее конец.

Увеличить длину кодовой книги: L = L +1.

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