Vektorkvantálás

A VIK Wikiből
(InfElmTetel22 szócikkből átirányítva)

Ez az oldal a korábbi SCH wikiről lett áthozva.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.


Legyen X_ egy d elemű forrásvektor f(x_) sűrűségfüggvénnyel. A d-dimenziós vektorkvantáló a Q(x_) függvény, x_d bemenetet az x1_,x2_,,xN_d vektorok egyikébe képzi le. A 𝔹1,,𝔹N tartományok diszjunktak és lefedik d-t.


Négyzetes torzítás

D(Q)=1dEX_Q(X_)2=1di=1Nx𝔹i\limits x_x_i2f(x_)dx_

Optimális a kör/gömb/hipergömb lenne, ezzel viszont nem lehet hézagmentesen lefedni a teret.

Voronoi tartományok

A voronoi tartományok egy tetszőleges dimenziós metrikus (ahol a pontok távolsága értelmezve van) tér partícionálását adják a tér egy W diszkrét részhalmaza alapján. A részhalmaz minden w pontjához egy tartományt rendelünk úgy, hogy ebbe a tartományba a tér azon pontjai tartozzanak, amelyekhez W egyik másik pontja sincs közelebb, mint w.

Voronoi diagram

Optimális vektorkvantáló

Optimális vektorkvantáló kielégíti a következő feltételeket:

  • d partíciója Dirichlet partíció, azaz tartományai Voronoi-tartományok:
    • 𝔹i={x_:x_xi_x_xj_,ji}
  • A kimeneti vektorok a tartományok súlypontjai:
xi_=argminy_𝔹ix_y_2f(x_)dx_

A Linde-Buzo-Gray algoritmus:

Megjegyzés: a következő algotimus a LLoyd-Max algoritmushoz nagyon hasonló, annak sokdimenziós kiterjesztése.

  • Vegyünk fel közelítést a kvantálási vektorokra.
  • Optimalizáljuk a kvantálót a kvantálási vektorok szerint: határozzuk meg a tartományokat a Voronoi-tartományokra vonatkozó feltételnek megfelelően.
  • Számítsuk ki a torzítást, ha az egy küszöbértéknél jobb, készen vagyunk.
  • Optimalizáljuk a kvantálót az így kapott tartományokhoz, a súlypont feltétel szerint, és ugorjunk a 2. pontra.

Fa struktúrájú vektorkvantáló

L=Kd kimeneti vektor körül a közel optimálisat egy d mélységű K-adfokú fával határozzuk meg. Így Kd helyett dlogK összehasonlítás szükséges.

Megjegyzés by zslevi:

Gyakorlatilag kiválasztunk egy dimenziót, amelyikhez egy kvantálót csinálunk, majd a kapott kvantálási intervallumokhoz külön-külön kvantálókat csinálunk a következő dimenzió szerint, és így tovább, amíg el nem fogynak a dimenziók. (A könyv ábráját érdemes megnézni, abból talán megvilágosodsz: 87. oldal)

Osztott vektorkvantálás

A forrásvektorokat független osztályokba soroljuk, és ezekhez külön vektorkvantálót tervezünk. (pl. képtömörítésnél az éleket tartalmazó ill. nem tartlamzó képpontok külön osztályt alkotnak.)

Többszintű vektorkvantálás

Több menet. Először egy durva közelítést állítunk elő, majd mindig az eredeti és az aktuális közti különbséget (a kvantálási hibát) kvantáljuk.