CATEGORII DOCUMENTE |
Aeronautica | Comunicatii | Electronica electricitate | Merceologie | Tehnica mecanica |
Algoritmi de codare rapida utilizati in cuantizarea vectoriala
Cuantizarea vectoriala reprezinta o tehnica eficienta de compresie a semnalelor video. Un factor important pentru reusita utilizarii cuantizarii vectoriale in aplicatiile in timp real o reprezinta timpul necesar algoritmului de codare de a gasi cel mai apropiat vector de cod pentru un vector de intrare dat.
Avand
un vector de cod si un vector de test
, distanta
euclidiana se calculeaza cu relatia:
(3.1)
Din relatia anterioara, fiecare distanta
dintre vectorul si un vector de cod
necesita
multiplicari (M) si
adunari (A). Pentru intreg setul de vectori de
cod este necesar a se calcula
distorsiuni si
comparatii (C). Astfel, pentru un algoritm de
cautare exhaustiv sunt necesare
multiplicari,
adunari si
comparatii. De exemplu, pentru
si
, fiecare
vector de intrare necesita 16384 (M), 31744 (A) si 1023 (C). Acest lucru
inseamna ca, pentru performante bune ale cuantizarii vectoriale, ceea ce
inseamna dimensiuni mari ale vectorilor si seturi mari de vectori de cod,
algoritmul de codare necesita un efort computational consistent. In literatura
exista metode care pot accelera procesul de codare. Aceste metode pot fi
clasificate in cateva categorii.
O
prima strategie consta in proiectarea unui cuantizor
vectorial sub forma de arbore in spatiul .
Cuantizorul vectorial este compus dintr-un set de hyper-plane in spatiul
ortogonale pe una din axele de coordonate.
Procesul de cautare este simplificat, deoarece in fiecare nod din arbore se ia
decizia daca un vector de intrare se afla de o parte sau alta a hyper-planului.
Cautarea poate fi eficienta, dar necesita o procedura complexa de determinare a
hyper-planelor, astfel incat distorsiunea medie sa fie minimizata. Dezavantajul
major al acestei metode este acela ca se ajunge la o solutie suboptimala din
perspectiva raportului rata/distorsiune, comparativ cu algoritmul LBG. Din
aceeasi categorie mai face parte si metoda proiectiilor. De mentionat ca
secventa de cautare este dependenta de setul de vectori de cod.
O
a doua categorie de algoritmi este independenta de
setul de vectori si foloseste inegalitatea triunghiului pentru a rejecta acei
vectori de cod care nu pot fi cei mai apropiati de vectorul de test.
Dezavantajul major al acestei metode este memoria de date necesara stocarii a distante, intre oricare doi vectori de cod.
O
a treia categorie, ce face obiectul proiectarii din
sectiunea aceasta, este independenta de setul de vectori de cod si se bazeaza
pe rejectarea, dupa un anumit criteriu, a vectorilor de cod care nu pot fi cei
mai apropiati vecini ai unui vector de test. Necesarul de memorie pentru
aceasta clasa de algoritmi este redus ( unde
).
O a patra categorie are in vedere gasirea unui vector de cod care este statistic cel mai apropiat de vectorul de test. Astfel vectorul de cod prin care va fi codat vectorul de intrare nu va fi cel mai apropiat, ceea ce inseamna ca algoritmul de cautare va introduce un nou factor de distorsiune in distorsiunea finala a sistemului de compresie. Avantajul metodei este acela ca timpul de cautare poate fi substantial imbunatatit fata de algoritmii rapizi care gasesc, cu probabilitate unu, cel mai apropiat vector de cod.
Un algoritm eficient de gasire a celui mai
apropiat vecin este cel de cautare cu distanta partiala. Algoritmul se bazeaza
pe monotonia distantei euclidiene (distanta creste cu dimensiunea), ceea ce
inseamna ca daca distanta partiala este mai mare decat cea mai mica distanta
atunci vectorul
nu poate fi cel mai apropiat vector de cod si,
evident, va fi eliminat. Performantele algoritmului pot fi imbunatatite daca se
utilizeaza in prealabil o proiectie pe componente principale si daca vectorii
de cod sunt aranjati in ordinea descrescatoare a probabilitatii lor de
aparitie. De mentionat ca algoritmul prezentat mai sus nu necesita stocarea
unor date precalculate si poate oferi o scadere de pana la un sfert din volumul
de calcule necesar cautarii exhaustive.
Rutina pentru algoritmul de cautare cu distanta partiala este urmatoarea
Pentru a gasi o secventa de cautare care
necesita un volum minim de calcule, ideal ar fi sa existe o functie (mapare), astfel incat:
(3.2)
O
astfel de functie ar trebui sa fie bijectiva, lucru ce nu poate fi realizat,
deoarece functia nu este bijectiva. In schimb, se pot defini
mai multe functii:
. (3.3)
in
scopul gasirii unei secvente de cautare care sa reduca domeniul de cautare din la un volum cat mai mic, iar vectorul de cod
care este cel mai apropiat de vectorul de test
sa apartina acelui domeniu. Matematic:
daca
. (3.4)
este definit ca:
,
unde sunt astfel alese incat
.
Functiile trebuie sa respecte urmatoarele proprietati:
(i)
corelatia dintre ele sa fie cat mai mica. Ideal ,
daca
;
(ii)
sa fie cat mai mare;
(iii)
sa se poata calcula usor.
O prima
functie care poate fi utilizata in acest sens este media vectorului :
. (3.5)
Se stie ca pentru orice vector de intrare si orice vector de cod
are loc urmatoarea inegalitate
(3.6)
Daca la
un moment dat , unde
, este
distorsiunea minima curenta, algoritmul ENNS (. Equal average Nearest Neighbor
encoding Search; . cautarea celui mai apropiat vecin prin cea mai apropiata
medie) poate fi formulat astfel:
Daca ,
atunci
si vectorul de cod
va fi eliminat deoarece nu poate fi cel mai
apropiat vector de cod pentru vectorul de intrare
.
Rutina care descrie algoritmul este prezentata mai jos:
Pas 0: Pentru
fiecare vector de cod ,
, se calculeaza
.Vectorii de
cod sunt aranjati in ordine crescatoare a mediei. Acest pas este operat
off-line. Pentru pasii urmatori memoria pentru
,
este disponibila; se trece la Pas 1.
Pentru fiecare vector de intrare se parcurg pasii urmatori:
Pas 1: Se
calculeaza ; se trece
la Pas 2;
Pas 2: Se cauta
vectorul de cod a carui index
Se
calculeaza distanta euclidiana
si se initializeaza
; se trece
la Pas 3;
Pas 3: Daca
sau vectorii de cod
pana la
au fost eliminati se trece la Pas 4; Altfel
se trece la Pas 3.1;
Pas 3.1:
Daca
se
elimina vectorii de cod de la
la
si se trece la Pas 4; Altfel se trece la Pas 3.2;
Pas 3.2:
Se recalculeaza ; Se trece la Pas 4;
Pas 4: Daca
sau vectorii de cod
pana la
au fost eliminati se trece la Pas 5; Altfel
se trece la Pas 5.1;
Pas 4.1:
Daca
se
elimina vectorii de cod de la
la
si se trece la Pas 4; Altfel se trece la Pas
4.2;
Pas 4.2:
Se recalculeaza ; Se trece la Pas 5;
Pas 5: ; Daca
si
sau toti vectorii de cod au fost eliminati se
termina cautarea si se returneaza cel mai apropiat vector de cod; Altfel
se trece la Pas 3.
Daca este o transformata ortonormata de forma:
, (3.7)
se poate deriva o a doua inegalitate:
(3.8)
Algoritmul prezentat anterior poate fi reformulat astfel:
Daca ,
atunci
si vectorul de cod
va fi eliminat.
In
cazul in care este transformata Walsh-Hadamard,
si pentru
se obtine inegalitatea din (3.6).
In
scopul eliminarii a cat mai multi vectori de cod care nu pot fi cei mai
apropiati de vectorul de test , se
utilizeaza a doua functie:
, unde
, (3.9)
iar
urmatoarea inegalitate are loc pentru orice vectori si
:
. (3.10)
Algoritmul poate fi formulat astfel:
Daca , atunci
si
va fi eliminat.
Algoritmul care include si inegalitatea (3.10) pe langa (3.6) poarta numele de EENNS (Equal average Equal variance Nearest Neighbor Search; cautarea celui mai apropiat vecin prin cea mai apropiata medie si cea mai apropiata varianta).
O varianta imbunatatita a algoritmului EENNS consta in gasirea unei noi inegalitati de forma:
(3.11)
Algoritmul
poarta numele de IEENNS. Daca la ENNS necesarul de memorie este de locatii, la EENNS si IEENNS este nevoie de
locatii de memorie pentru stocarea valorilor
precalculate ale lui
si
.
In
figura 3.1a si 3.1b se reprezinta regiunile de cautare ramase, dat fiind un , la fiecare
din metodele expuse anterior. In 3.1b vectorii de cod sunt bidimensionali si
sunt uniform distribuiti in
. In cazul
algoritmului IEENNS numarul vectorilor de cod eliminati este cel mai mare, ceea
ce inseamna ca aceasta metoda va da cele mai bune rezultate.
(a)
(b)
Figura 3.1 Regiunile de cautare pentru fiecare metoda
Algoritmii expusi anterior pot reduce volumul de calcule pana la 10-25 % din volumul de calcul necesar cautarii exhaustive. De mentionat ca performantele acestor algoritmi depind, de asemenea, de statistica vectorilor de cod si de statistica vectorilor din intrare.
In scopul gasirii unei secvente ce poate reduce si mai mult timpul de cautare, ceea ce inseamna a gasi o noua inegalitate care poate elimina vectori de cod care nu pot fi eliminati cu ajutorul inegalitatilor anterioare, se defineste functionala:
, (3.12)
unde ,
iar
este transformata liniara din (3.7). Evident
.
O noua inegalitate este de forma:
. (3.13)
In acest caz algoritmul poate fi formulat astfel:
Daca atunci
si vectorul
va fi eliminat.
Algoritmul prezentat a fost imbunatatit
prin folosirea ca functii a momentelor spatiale ale imaginilor-bloc. In
acest fel se poate dispune si de o informatie ce tine cont de repartitia
spatiala a pixelilor in blocurile-imagine.
Rutina
care descrie algoritmul de cautare este prezentata in cele ce urmeaza pentru
cazul in care , ceea ce
inseamna ca nu pot fi eliminati vectorii de cod dupa medie.
Pas
0: Pentru fiecare
vector de cod ,
, se calculeaza
. Vectorii de cod sunt sortati in ordine
crescatoare dupa
. Acest pas
se realizeaza off-line. In pasii urmatori memoria pentru
,
, este disponibila; se trece la Pas 1;
Pentru fiecare vector de intrare se parcurg urmatorii pasi:
Pas 1: Se
calculeaza ; se trece
la Pas 2;
Pas 2: Se cauta
vectorul de cod a carui index
Se
calculeaza distanta euclidiana
si se initializeaza
; se trece
la Pas 3;
Pas 3: Daca
sau vectorii de cod
pana la
au fost eliminati se trece la Pas 4; Altfel
se trece la Pas 3.1;
Pas 3.1:
Daca
se elimina vectorii de cod de la
pana la
si se trece la Pas 4; Altfel se trece la pas 3.2;
Pas 3.2:
Daca
se elimina vectorul de cod
si se trece la Pas 4; Altfel se trece la Pas 3.3;
Pas 3.3:
Daca
se elimina vectorul de cod
si se trece la Pas 4; Altfel se trece la Pas 3.4;
Pas 3.4:
Daca
se elimina vectorul de cod
si se trece la Pas 4; Altfel se trece la Pas 3.5;
Pas 3.5:
Daca
se elimina vectorul de cod
si se trece la Pas 4; Altfel se utilizeaza PDS
pentru a gasi distanta minima
si se trece la Pas 4;
Pas 4: Daca
sau vectorii de cod
pana la
au fost eliminati se trece la Pas 5; Altfel
se trece la Pas 4.1;
Pas 4.1:
Daca
se elimina vectorii de cod de la
pana la
si se trece la Pas 5; Altfel se trece la Pas 4.2;
Pas 4.2:
Daca
se elimina vectorul de cod
si se trece la Pas 5; Altfel se trece la Pas 4.3;
Pas 4.3:
Daca
se elimina vectorul de cod
si se trece la Pas 5; Altfel se trece la Pas 4.4;
Pas 4.4:
Daca
se elimina vectorul de cod
si se trece la Pas 5; Altfel se trece la Pas 4.5;
Pas 4.5:
Daca
se elimina vectorul de cod
si se trece la Pas 5; Altfel se utilizeaza PDS
pentru a gasi distanta minima
si se trece la Pas 5;
Pas 5: ; Daca
si
sau toti vectorii de cod au fost rejectati se
termina cautarea si se returneaza cel mai apropiat vector de cod; Altfel
se trece la Pas 3.
Performantele algoritmilor propusi au fost
testate prin experimente pe un set de imagini cu niveluri de gri si rezolutie
de 512512 pixeli. Trei imagini standard "boat", "goldhill" si "lena" au fost
utilizate ca imagini de antrenare pentru obtinerea setului de vectori de cod.
Imaginile au fost impartite in blocuri de 44 pixeli iar vectorii de antrenare
au fost obtinuti prin extragerea mediei din blocurile respective. Deoarece, in
multe aplicatii de compresie a imaginilor, media unui bloc-imagine se extrage
din pixelii acelui bloc, tehnica denumita MRVQ (Mean Removal Vector
Quantization), vectorii de antrenare si vectorii de cod vor avea medie nula,
iar algoritmul ENNS nu va putea fi folosit. este transformata Walsh-Hadamard, transformata
separabila, unitara, care exista doar pentru
, unde
este intreg.
Primii 5 vectori de baza ai transformatei Hadamard in ordine descrescatoare a variantei proiectiilor imaginilor-bloc sunt dati in matricea urmatoare:
Matricea are elementele +1 si -1, ceea ce inseamna ca
proiectiile pe primii doi vectori vor fi usor de calculat.
In Tabelul 3.1 se prezinta numarul de multiplicari, adunari si comparatii pe pixel necesare pentru a coda un bloc-imagine pentru doua imagini "peppers" si "baboon". Se observa ca metoda ce utilizeaza inegalitatea (3.13) foloseste cele mai putine operatii. De asemenea, pentru "peppers" numarul de operatii este de aproximativ trei ori mai mic decat numarul de operatii pentru codarea imaginii "baboon". Acest lucru se explica prin statistica diferita a vectorilor din intrare. Cu cat dispersia vectorilor din intrare este mai mare, cu atat timpul de codare a unei imagini creste.
Tabel 3.1 |
Numarul mediu de operatii necesare codarii unui pixel |
||||||
N |
Metoda |
Imagine codata |
|||||
Peppers |
Baboon |
||||||
Mult. |
Add. |
Comp. |
Mult. |
Add. |
Comp. |
||
Cautare exhaustiva | |||||||
PDS | |||||||
IEENNS | |||||||
| |||||||
Cautare exhaustiva |
| ||||||
PDS | |||||||
IEENNS | |||||||
|
In tabelul 3.2 se prezinta numarul mediu de distante calculate pentru a coda o imagine.
Tabel 3.2 |
Numarul mediu de distante calculate pentru a coda un bloc-imagine |
||
N |
Metoda |
Imagine codata |
|
Peppers |
Baboon |
||
Cautare exhaustiva | |||
PDS | |||
IEENNS | |||
| |||
Cautare exhaustiva | |||
PDS | |||
IEENNS | |||
|
Concluzii
Au fost testate diverse metode de cautare
rapida a celui mai apropiat vector de cod prin introducerea unor inegalitati
care permit ca dupa un numar redus de operatii sa elimine cat mai multi vectori
de cod. In relatia (3.13) s-a prezentat o noua inegalitate in scopul eliminarii
a cat mai multi vectori de cod ce nu pot avea statutul de cel mai apropiat vector de cod fata de vectorul din intrare si care
nu pot fi eliminati cu ajutorul algoritmilor prezentati. Rezultatele
experimentale confirma faptul ca metoda propusa este superioara algoritmului
IEENNS. In comparatie cu IEENNS numarul mediu de operatii matematice si numarul
mediu de distorsiuni evaluate scade cu 9-13 %. Algoritmul prezentat a fost
imbunatatit prin folosirea ca functii a momentelor spatiale ale imaginilor-bloc.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1342
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2025 . All rights reserved