Podręcznik

5. Metody kompresji sygnałów

5.4. Alokacja bitów

Niech di(bi) oznacza lokalną wartość błędu średniokwadratowego kwantyzacji zmiennej Xi, za pomocą bi  bitów. Wtedy wartość błędu globalnego kwantyzacji bloku wyniesie:

 

  D=D\left(b\right)=\sum_{i=1}^{K}{d_i\left(b_i\right)} (5.16)

 

Zadanie optymalnej alokacji bitów polega na określeniu wszystkich wartości bi minimalizujących wartość globalnej miary błędu D tak, aby spełniały nierówność:

 

  \sum_{i=1}^{K}b_i\le\ B (5.17)

 

Teoretyczne rozważania dotyczące problemu alokacji bitów są tematem szeregu publikacji, w większości których przyjmuje się coraz bardziej rygorystyczne założenia co do parametrów statystycznych sygnału. Zdaniem autorów najprostszym sposobem jest realizacja alokacji bitów w sposób przyrostowy - opcjonalnego dodawania jednego bitu w każdym kroku spośród B iteracji (rys.5.4).

 

Krok 1:  Założenia początkowe

Krok 2: Określenie pozycji bloku w największej potrzebie

Krok 3: Przydzielenie dodatkowych bitów pozycji wybranej w kroku 2

Krok 4: Sprawdzenie czy są jeszcze wolne bity

 

Rys. 5.4 Algorytm alokacji bitów na potrzeby kwantyzacji wektorowej

Przyjęcie założenia o dużej rozdzielczości kwantyzacji jak zwykle ułatwia obliczenia - wtedy bowiem bieżąca wartość błędu di(m) jest proporcjonalna do wariancji sygnału na i-tej pozycji ze współczynnikiem 2-2b. Wynika stąd, że każdy dodatkowy bit redukuje błąd czterokrotnie.

Praktyczna realizacja algorytmu, szczęśliwie, może być dokonana z użyciem blokowej sekwencji treningowej. Każdy krok iteracji wymaga wówczas wyznaczania wartości globalnego błędu kwantyzacji (dla całej sekwencji). Błędy przechowywane w tablicy determinują funkcję błędu di(m).