Aaltomuunnos

Aaltomuunnos on tiedon pakkausmuoto, joka soveltuu hyvin kuvan pakkaamiseen (joskus myös videon ja äänen pakkaamiseen). Merkittäviä toteutuksia ovat JPEG 2000, DjVu ja ECW still-kuville, CineForm ja BBC: n Dirac. Tavoitteena on tallentaa kuvadataa mahdollisimman pieneen tilaan tiedostoon. Wavelet-pakkaus voi olla joko häviötön tai häviöllinen. Wavelet-koodaus on muunnos diskreetistä kosinimuunnoksesta (DCT), joka käyttää waveletteja DCT: n lohkopohjaisen algoritmin sijaan.

Aaltomuunnosta käyttäen aaltomuunnospakkausmenetelmät ovat riittäviä kuvaamaan transientteja, kuten lyömäsoitinääniä äänessä, tai suurtaajuuskomponentteja kaksiulotteisissa kuvissa, esimerkiksi kuvaa tähdistä yötaivaalla. Tämä tarkoittaa, että datasignaalin transienttielementtejä voidaan esittää pienemmällä informaatiomäärällä kuin jos olisi käytetty jotakin muuta muunnosta, kuten laajempaa diskreettiä kosinimuunnosta.

diskreetti aaltomuunnos on onnistuneesti sovellettu puristus elektrokardiografia (EKG) signaaleja Tässä työssä, korkea korrelaatio vastaavien aaltomuutoskertoimet signaalien peräkkäisten sydän syklien hyödynnetään käyttäen lineaarinen ennustus.

Aaltokompressio ei ole hyvä kaikenlaisille tiedoille: ohimenevien signaalien ominaisuudet tarkoittavat hyvää aaltokompressiota, kun taas sileät, jaksolliset signaalit ovat paremmin pakattuja muilla menetelmillä, erityisesti perinteisellä harmonisella pakkauksella (taajuusalue, kuten Fourier-muunnoksilla ja niihin liittyvillä).

Katso Diary Of An x264 Developer: the problems with wavelets (2010) for discussion of practical issues of current methods using wavelets for video compression.

MethodEdit

ensin käytetään aaltomuunnosta. Tämä tuottaa yhtä monta kertoimia kuin kuvassa on pikseleitä (eli ei ole vielä pakkausta, koska se on vain muunnos). Nämä kertoimet voidaan sitten pakata helpommin, koska tieto on tilastollisesti keskittynyt vain muutamiin kertoimiin. Tätä periaatetta kutsutaan muunnoskoodaukseksi. Sen jälkeen kertoimet kvantisoidaan ja kvantisoidut arvot entropia koodataan ja / tai juoksun pituus koodataan.

muutamissa 1D-ja 2D-sovelluksissa käytetään tekniikkaa nimeltä ”wavelet footprints”.

EvaluationEdit

requirement for image compressionEdit

For most natural images, the spectrity density of lower frequency is higher. Tämän seurauksena matalataajuisen signaalin (referenssisignaalin) informaatio yleensä säilyy, kun taas yksityissignaalin informaatio hylätään. Kuvan pakkaamisen ja rekonstruktion näkökulmasta aaltolevyn tulisi täyttää seuraavat kriteerit, kun kuvapakkausta suoritetaan:

  • kyky muuttaa alkuperäistä kuvaa referenssisignaaliksi.
  • Viitesignaaliin perustuva korkeimman äänentoiston rekonstruktio.
  • ei saa johtaa artefakteihin kuvassa, joka on rekonstruoitu pelkästä referenssisignaalista.

vaatimus vaihtovarianssista ja soivasta käyttäytymisestä

aaltomaisen kuvan pakkausjärjestelmään kuuluu suodattimet ja desimaatio, joten sitä voidaan kuvata lineaariseksi vaihtovarianssijärjestelmäksi. Tyypillinen wavelet transformation kaavio näkyy alla:

tyypillinen wavelet muunnos kaavio.png

muunnosjärjestelmä sisältää kaksi analyysisuodinta (alipäästösuodatin h 0 (n) {\displaystyle H_{0} (n)}

{\displaystyle h_{0}(n)}

ja ylipäästösuodatin h 1 ( n ) {\displaystyle h_{1}(n)}

h_{1}(n)

), desimaatioprosessi, interpolointiprosessi ja kaksi synteesisuodatinta ( g 0 ( n ) {\displaystyle g_{0} (n)}

{\displaystyle g_{0} (n)}

ja g 1 (n ) {\displaystyle g_{1} (n)}

{\displaystyle g_{1} (n)}

). Pakkaus – ja rekonstruktiojärjestelmässä käytetään yleensä matalataajuisia komponentteja, jotka ovat analyysisuodattimia H 0 (n) {\displaystyle H_{0} (n)}

{\displaystyle h_{0}(n)}

kuvapakkaukselle ja synteesisuodattimille g 0 ( n ) {\displaystyle g_{0} (n)}

{\displaystyle g_{0} (n)}

rekonstruktioon. Tällaisen järjestelmän arvioimiseksi voidaan syöttää impulssi δ (n-n i ) {\displaystyle \delta (n-n_{i})}

{\displaystyle \delta (n-n_{i})}

ja tarkkailla sen rekonstruktiota h (n-n i ) {\displaystyle h (n-n_{i})}

{\displaystyle h(n-n_{i})}

; optimaalisia aaltolukuja ovat ne, jotka tuovat minimisiirtovarianssin ja sideloben arvoon h(n-n i ) {\displaystyle h (n-n_{i})}

{\displaystyle h(n-n_{i})}

. Vaikka wavelet tiukka shift varianssi ei ole realistinen, on mahdollista valita wavelet vain hieman shift varianssi. Voimme esimerkiksi verrata kahden suodattimen vaihtovarianssia:

Biortogonaaliset suodattimet aaltomuotokuvan pakkaamiseen
Pituus Suodatinkertoimet säännöllisyys
Aaltosuodatin 1 H0 9 .852699, .377402, -.110624, -.023849, .037828 1.068
G0 7 .788486, .418092, -.040689, -.064539 1.701
Aaltosuodatin 2 H0 6 .788486, .047699, -.129078 0.701
G0 10 .615051, .133389, -.067237, .006989, .018914 2.068

tarkkailemalla kahden suodattimen impulssivasteita voimme päätellä, että toinen suodatin on vähemmän herkkä syöttöpaikalle (eli se on vähemmän vaihtovariantti).

toinen tärkeä asia kuvan pakkaamisessa ja rekonstruoinnissa on systeemin oskillatorinen käyttäytyminen, joka saattaa johtaa vakaviin ei-toivottuihin artefakteihin rekonstruoidussa kuvassa. Tämän saavuttamiseksi wavelet suodattimet pitäisi olla suuri huippu sidelobe suhde.

tähän mennessä on keskusteltu kuvanpakkausjärjestelmän yksiulotteisesta muutoksesta. Tätä kysymystä voidaan laajentaa kahteen ulottuvuuteen, kun taas ehdotetaan yleisempää termiä – vaihdettavissa oleva multiscale – muunnos.

impulssivasteen derivointi

kuten aiemmin mainittiin, impulssivastetta voidaan käyttää kuvan pakkaus – /rekonstruktiojärjestelmän arviointiin.

input sequence x (n) = δ (n-n i) {\displaystyle x (n)=\delta (n-n_{i})}

{\displaystyle x (n) = \delta (n-n_{i})}

, viitesignaali r 1 (n ) {\displaystyle r_{1} (n)}

{\displaystyle r_{1}(n)}

yhden hajoamistason jälkeen on x ( n ) ∗ H 0 ( n ) {\displaystyle x(n)*H_{0} (n)}

{\displaystyle x(n)*h_{0} (n)}

läpäisee desimaation kertoimella Kaksi, kun taas h 0 (n) {\displaystyle h_{0} (n)}

{\displaystyle h_{0}(n)}

on alipäästösuodatin. Vastaavasti seuraava Referenssisignaali r 2 (n) {\displaystyle r_{2} (n)}

{\displaystyle r_{2} (n)}

saadaan R 1 ( n ) ∗ H 0(n ) {\displaystyle r_{1} (n)*H_{0} (n)}

{\displaystyle r_{1} (n)*h_{0} (n)}

läpäisee desimaation kertoimella Kaksi. L: n hajoamisen (ja desimaation) jälkeen analyysivaste saadaan säilyttämällä yksi jokaisesta 2 L: stä {\displaystyle 2^{L}}

2^{L}

näytteitä: h A (L) (n , n i) = f h 0 ( L) (n − N I / 2 L) {\displaystyle h_{A}^{(L)} (n,n_{i})=f_{H0}^{(L)} (n-n_{I} / 2^{L})}

{\displaystyle h_{A}^{(L)} (n, n_{i})=f_{H0}^{(L)} (n-n_{I}/2^{L})}

.

toisaalta signaalin X(n) rekonstruoimiseksi voidaan pitää referenssisignaalia r L ( n ) = δ ( n − n j ) {\displaystyle r_{l}(n)=\delta (n-n_{j})}

{\displaystyle r_{l} (n) = \delta (n-n_{j})}

. Jos detalji antaa signaalin d i ( n) {\displaystyle D_{i} (n)}

{\displaystyle d_{i}(n)}

ovat yhtä kuin nolla , kun 1 ≤ i ≤ l {\displaystyle 1\leq i\leq l}

{\displaystyle 1\leq i\leq l}

, niin Referenssisignaali edellisessä vaiheessa ( L − 1 {\displaystyle L-1}

L-1

vaihe) on R L − 1 ( n ) = g 0 ( n − 2 n j ) {\displaystyle R_{L-1}(n)=g_{0}(n-2n_{j})}

{\displaystyle r_{L-1} (n)=g_{0}(n-2n_{j})}

, joka saadaan interpoloimalla r L (n) {\displaystyle r_{l} (n)}

{\displaystyle r_{l} (n)}

ja konvolutoituu G 0 (n) {\displaystyle g_{0} (n)}

{\displaystyle g_{0} (n)}

. Vastaavasti iteroidaan menetelmä, jolla saadaan Referenssisignaali r(n) {\displaystyle r(n)}

r (n)

vaiheessa L − 2 , L − 3 , . . . . , 1 {\displaystyle L-2,L-3,….,1}

{\displaystyle L-2, L-3,....,1}

. L-iteraatioiden jälkeen lasketaan synteesi-impulssivaste: h S (L) (n , n i) = f g 0 ( L) (n / 2 L − n j) {\displaystyle h_{S}^{(L)} (n,n_{i})=f_{G0}^{(L)} (n/2^{l} – n_{j})}

{\displaystyle h_{S}^{(L)} (n, n_{i})=f_{G0}^{(L)} (n / 2^{l} - n_{j})}

, joka suhteuttaa viitesignaalin r L (n ) {\displaystyle r_{L} (n)}

{\displaystyle r_{l} (n)}

ja rekonstruoitu signaali.

l-tason kokonaisanalyysi- / synteesijärjestelmän saamiseksi analyysi – ja synteesivasteet yhdistetään seuraavasti:

h ja S ( L ) ( n , n ) = vesi k f h 0 ( L ) ( k − n / 2 L ) F g 0 ( L ) ( n / 2 L − K ) {\displaystyle h_{MP}^{(L)}(n,n_{i})=\sum _{k}f_{H0}^{(L)}(k-n_{I}/2^{l})f_{G0}^{(L)}(n/2^{l}-k)}

{\displaystyle h_{MP}^{(L)} (n,n_{i})=\sum _{k}f_{H0}^{(L)} (k-n_{I}/2^{l}) f_{G0}^{(L)} (n/2^{l}-k)}