Wavelet transform

wavelet-komprimering är en form av datakomprimering som är väl lämpad för bildkomprimering (ibland även videokomprimering och ljudkomprimering). Anmärkningsvärda implementeringar är JPEG 2000, DjVu och ECW för stillbilder, Cineformoch BBC: s Dirac. Målet är att lagra bilddata i så lite utrymme som möjligt i en fil. Wavelet-komprimering kan vara antingen förlustfri eller förlustfri. Wavelet-kodning är en variant av diskret cosinus-transformation (DCT) – kodning som använder wavelets istället för DCT: s blockbaserade algoritm.

med hjälp av en wavelet-transformation är wavelet-komprimeringsmetoderna tillräckliga för att representera transienter, såsom slagverksljud i ljud, eller högfrekventa komponenter i tvådimensionella bilder, till exempel en bild av stjärnor på en natthimmel. Detta innebär att de övergående elementen i en datasignal kan representeras av en mindre mängd information än vad som skulle vara fallet om någon annan transformation, såsom den mer utbredda diskreta cosinus-transformen, hade använts.

diskret wavelet-transformation har framgångsrikt tillämpats för komprimering av elektrokardiograf (EKG) – signaler i detta arbete används den höga korrelationen mellan motsvarande wavelet-koefficienter för signaler av successiva hjärtcykler med linjär förutsägelse.

wavelet-komprimering är inte bra för alla typer av data: transienta signalegenskaper betyder bra wavelet-komprimering, medan släta, periodiska signaler komprimeras bättre med andra metoder, särskilt traditionell harmonisk komprimering (frekvensdomän, som genom Fouriertransformationer och relaterade).

se dagbok för en X264-Utvecklare: problemen med wavelets (2010) för diskussion om praktiska frågor om aktuella metoder med wavelets för videokomprimering.

MethodEdit

först appliceras en wavelet-transformation. Detta ger så många koefficienter som det finns pixlar i bilden (dvs det finns ingen komprimering ännu eftersom det bara är en transformation). Dessa koefficienter kan sedan komprimeras lättare eftersom informationen är statistiskt koncentrerad till bara några koefficienter. Denna princip kallas transformeringskodning. Därefter kvantiseras koefficienterna och de kvantiserade värdena kodas entropi och/eller körlängd kodad.

några 1D-och 2D-tillämpningar av wavelet-komprimering använder en teknik som kallas ”wavelet footprints”.

EvaluationEdit

krav för bildkompressionedit

för de flesta naturliga bilder är spektrumtätheten för lägre frekvens högre. Som ett resultat bevaras information om lågfrekvenssignalen (Referenssignal) i allmänhet, medan informationen i detaljsignalen kasseras. Ur bildkomprimering och rekonstruktion bör en wavelet uppfylla följande kriterier när du utför bildkomprimering:

  • att kunna omvandla mer originalbild till referenssignalen.
  • rekonstruktion av högsta trohet baserat på referenssignalen.
  • bör inte leda till artefakter i bilden rekonstrueras från referenssignalen ensam.

krav för skiftvarians och ringbeteende

Wavelet-bildkomprimeringssystem innefattar filter och decimering, så det kan beskrivas som ett linjärt skiftvariantsystem. Ett typiskt wavelet-transformationsdiagram visas nedan:

typiskt wavelet-transformdiagram.PNG

transformationssystemet innehåller två analysfilter (ett lågpassfilter h 0 ( n ) {\displaystyle H_{0} (n)}

{\displaystyle h_{0} (n)}

och ett högpassfilter h 1 (n) {\displaystyle H_{1} (n)}

H_{1} (n)

), en decimeringsprocess, en interpoleringsprocess och två syntesfilter (g 0 (n) {\displaystyle g_{0}(n)}

{\displaystyle g_{0} (n)}

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

{\displaystyle g_{1} (n)}

). Komprimerings – och rekonstruktionssystemet innefattar i allmänhet lågfrekventa komponenter, vilket är analysfiltret h 0 (n ) {\displaystyle H_{0} (n)}

{\displaystyle h_{0} (n)}

för bildkomprimering och syntesfiltren g 0 (n) {\displaystyle g_{0}(n)}

{\displaystyle g_{0} (n)}

för rekonstruktion. För att utvärdera ett sådant system, kan vi mata in en impuls Bisexuell (n − n i ) {\displaystyle \delta (n-n_{i})}

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

och observera dess rekonstruktion h (n-n i ) {\displaystyle h (n-n_{i})}

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

; den optimala wavelet är de som tar minsta skiftvarians och sidelobe till h (n − n i ) {\displaystyle h (n-n_{i})}

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

. Även om wavelet med strikt skiftvarians inte är realistiskt är det möjligt att välja wavelet med endast liten skiftvarians. Till exempel kan vi jämföra skiftvariansen för två filter:

Biortogonala filter för wavelet-bildkomprimering
längd Filterkoefficienter regelbundenhet
Wavelet filter 1 H0 9 .852699, .377402, -.110624, -.023849, .037828 1.068
G0 7 .788486, .418092, -.040689, -.064539 1.701
Wavelet filter 2 H0 6 .788486, .047699, -.129078 0.701
G0 10 .615051, .133389, -.067237, .006989, .018914 2.068

genom att observera impulsresponserna hos de två filtren kan vi dra slutsatsen att det andra filtret är mindre känsligt för ingångsplatsen (dvs det är mindre skiftvariant).

en annan viktig fråga för bildkomprimering och rekonstruktion är systemets oscillerande beteende, vilket kan leda till allvarliga oönskade artefakter i den rekonstruerade bilden. För att uppnå detta bör wavelet-filtren ha ett stort topp-till-sidelobe-förhållande.

hittills har vi diskuterat om endimensionell transformation av bildkomprimeringssystemet. Denna fråga kan utvidgas till två dimensioner, medan en mer allmän term – skiftbar multiscale Transformer – föreslås.

härledning av impulsresponseedit

som tidigare nämnts kan impulsrespons användas för att utvärdera bildkomprimerings – /rekonstruktionssystemet.

för inmatningssekvensen x (n) = 2xbl (n-n i) {\displaystyle x (n)= \ delta (n-n_{i})}

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

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

{\displaystyle r_{1} (n)}

efter en nedbrytningsnivå är x (n) 6xbl h 0 (n) {\displaystyle X (n) * H_{0}(n)}

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

går igenom decimering med en faktor två, medan h 0 (n) {\displaystyle H_{0}(n)}

{\displaystyle H_{0} (n)}

är ett lågpassfilter. På samma sätt nästa Referenssignal r 2 (n) {\displaystyle r_{2} (n)}

{\displaystyle r_{2} (n)}

erhålles genom r 1 (n) 6xbl h 0 (n) {\displaystyle r_{1} (n) * H_{0}(n)}

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

går igenom decimering med en faktor två. Efter L-nivåer av sönderdelning (och decimering) erhålls analyssvaret genom att behålla en av varje 2 L {\displaystyle 2^{L}}

2^{L}

prover: 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})}

.

å andra sidan, för att rekonstruera signalen x (n), kan vi överväga en Referenssignal r L ( n ) = 2BL ( n − nj ) {\displaystyle r_{l}(n)=\delta (n-n_{j})}

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

. Om detaljsignalerna d i (n) {\displaystyle d_{i}(n)}

{\displaystyle d_{i}(n)}

är lika med noll för 1 kg i kg l {\displaystyle 1\leq i\leq l}

{\displaystyle 1\leq i\leq l}

, sedan referenssignalen i föregående steg ( L − 1 {\displaystyle L-1}

L-1

steg) är R L − 1 ( n ) = g 0 ( N − 2 nj ) {\displaystyle r_{l-1}(n)=g_{0}(n-2n_{j})}

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

, som erhålls genom interpolering av r L (n ) {\displaystyle r_{L} (n)}

{\displaystyle r_{l} (n)}

och convoluting med g 0 (n) {\displaystyle g_{0}(n)}

{\displaystyle g_{0} (n)}

. På liknande sätt upprepas proceduren för att erhålla referenssignalen r(n ) {\displaystyle r(n)}

r (n)

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

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

. Efter l-iterationer beräknas syntesimpulsresponsen: 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})}

, som relaterar referenssignalen r L (n ) {\displaystyle r_{L} (n)}

{\displaystyle r_{L} (n)}

och den rekonstruerade signalen.

för att erhålla det övergripande l-nivåanalysen / syntessystemet kombineras analys-och syntessvaren enligt nedan:

H och S ( L ) ( n , n ) = vatten k f h 0 ( L ) ( k − n / 2 L ) f g 0 ( L ) ( n / 2 L − k ) {\displaystyle h_{MP}^{(L)}(n,n_{i})=\summa _{k}f_{h0}^{(L)}(k-n_{i}/2^{l})f_{g0}^{(L)}(n/2^{l}-k)}

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