Multimedier Modul 4 8.1:1 KOMPRESSION af LYD Pulse code modulation (PCM) og differential PCM (DPCM) Adaptiv DPCM (ADPCM) Adaptiv prediktiv kodning (APC) og Lineær prediktiv kodning (LPC) Code-exited LP (CELP) Frekvensmaskering og temporal maskering MPEG audio kodere (MP1,2,3) Dolby audio kodere (Dolby AC1,2,3)
Multimedier Modul 4 8.1:2 PCM Sampling af signal med frekvens på mindst 2*båndbredde. Hvis lille båndbredde kræves indledende lavpas-filtrering. Eksempel: I PCM-tale benyttes en båndbredde på 4 khz (8 ksps). Med 8 bit/sampel fås en bitrate på 64 kbps. I differential PCM (DPCM) udnyttes at naboværdier er omtrentlig ens. Hver sampelværdi erstattes af differensen mellem værdien og den forrige værdi: I t = = I t I t 1. DPCM sparer typisk 1 bit/sampel ift. PCM.
Multimedier Modul 4 8.1:3 Prediktiv DPCM I en n te ordens PDPCM kodes: I t = I t Pred(I t 1, I t 2,..., I t n ), hvor Pred( ) er en (typisk lineær) prediktion af værdien ud fra de n forrige værdier. En 3. ordens PDPCM sparer typisk 2 bit/sampel ift. PCM.
Multimedier Modul 4 8.1:4 Eksempel Nummerer sampels så f 0 er sidste værdi, f 1 forrige værdi, f 2 værdien tidligere etc. Lad f pred være prediktionen af næste værdi. 1 te ordens PDCM: f pred = f 0 2 te ordens PDCM: f pred = a f 0 + b f 1 3 te ordens PDCM: f pred = a f 0 + b f 1 + c f 2 Hvordan skal vi vælge koefficienterne a, b, etc.
Multimedier Modul 4 8.1:5 En mulighed er at bestemme koefficienterne sådan at f pred stemmer overens med en (n-1) te ordens polynomiel model: f(x) = α + β x + γ x 2 + Antag 2 nd ordens polynomiel model: f(x) = α + β x + γ x 2. For de 3 sidste værdier har vi: f(0) = f 0 = α f( 1) = f 1 = α β + γ f( 2) = f 2 = α 2β + 4γ
Multimedier Modul 4 8.1:6 Vi kan løse de 3 ligninger mht. α, β, γ: α = f 0 Prediktionen bliver: β = f 2 4 f 1 + 3 f 0 2 γ = f 2 2 v 1 + f 0 2 f pred = f 1 = α + β + γ Dvs. benyt (a,b,c) = (3, -3, 1). = [1]f 2 + [ 3]f 1 + [3]f 0
Multimedier Modul 4 8.1:7 For de polynomielle modeller gælder: orden f pred (a,b,c) 1 f 0 (1,-,-) 2 2 f 0 f 1 (2,-1,-) 3 3 f 0 3 f 1 + f 2 (3,-3,1) 4 ekstraopgave Problemet ved (høj-ordens) polynomielle modeller er, at de er meget følsomme over for støj (og høje frekvenser) i signalet.
Multimedier Modul 4 8.1:8 Adaptiv prediktiv kodning APC Tilpasse prediktionskoefficienter til data. Dvs. koefficienter ændrer sig under analysen. Opdele sampels i blokke af fast længde og analysere hver blok. Beregne optimale koefficienter. Gevinsten er at prediktionsfejlen (i gennemsnit) bliver mindre og derfor kan repræsenteres på færre bit (især hvis variabel længde kodeord benyttes til repræsentation).
Multimedier Modul 4 8.1:9 For 3 ie ordens prediktor kan vi bestemme de optimale koefficienter (a,b,c) ved de værdier der minimerer fejlmålet: E(a, b, c) = 1 2 N i=0 [f i (a f i 1 +b f i 2 +c f i 3 )] 2 Det er let at beregne de optimale (a,b,c) ved at differentiere E mht. a, b og c og sætte resultatet lig nul. For at lette udregningerne opskrives ovenstående som en matrix-ligning.
Multimedier Modul 4 8.1:10 Lad f k = (f k, f k+1,..., f k+n 4 ) t hvor N er antallet af data, og k [0:3]. Lad f = f 0 og lad A = ( f 1, f 2, f 3 ) være matricen med søjler med forskubbede data. Lad endvidere y = (a, b, c) t. Vi kan nu skrive fejlmålet E ved: E( y) = 1 2 f A y 2 = 1 2 ( f A y) t ( f A y)
Multimedier Modul 4 8.1:11 Man kan vise at: de d y = At ( f A y) Mindste kvadraters løsning til ligningen: de d y direkte udregning: = 0 fås ved A t A y = A t f og dermed y = (A t A) 1 A t f
Multimedier Modul 4 8.1:12 Lad os nu definere: γ = α = f 2 i β = f i f i+2 δ = f i f i+1 f i f i+3 Ved udregning kan det let vises at: A t f = (β, γ, δ) t og A t A = α β γ β α β γ β α
Multimedier Modul 4 8.1:13 De optimale prediktionskoefficienter kan altså let findes ved: Beregning af α, β, γ, og δ. Invertering af 3 3 -matricen A t A, og multiplikation af denne med vektoren (β, γ, δ) t. Løsning kan opskrives direkte som fkt. af α, β, γ, og δ. Hvis det(a t A) == 0 er modellen for kompliceret ift. struktur i data. En simplere model (med færre parametre) må benyttes.
Multimedier Modul 4 8.1:14 Eksempel: (fejl i opstilling af A): Find optimale 2-odenes prdiktions-coefficienter for signal: f = [ 0 0 1 2 3 4 4 3 4 5 3 4 4 3 2 3] ; A = 0 0 1 0 2 1 3 2.. 2 3
Multimedier Modul 4 8.1:15 A A = [ 150 141 141 146 ] A f = (A A) 1 = 1 2019 [ 147 139 ] [ 146 141 141 150 ] og dermed mindste kvadraters løsning : a = (A A) 1 A f = [ 0.9227 0.0609 ]
Multimedier Modul 4 8.1:16 Opgave: Skriv MATLAB-program til at finde optimale koeff. for k te ordens prediktion baseret på sampels i vektor f: [coeff rms] = function getapccoeff(k, f); n = length(f); if (k >= n/2) error( order too high ); end f0 = f(k+1:n); for y = 1:k A(:,y) = f(k-y+1:n-y); end coeff = A\f0; pred = A*coeff; err = f0 - pred; E = err *err; rms = sqrt(e/(n-k));
Multimedier Modul 4 8.1:17 rms-fejl som fuktion af prediktionsorden k: 1 0.9 0.8 0.7 0.6 0.5 0.4 0 2 4 6 8 10 12 14
Multimedier Modul 4 8.1:18 Adaptiv DPCM I ADPCM (Adaptiv Differential PCM) [Standard G.721] benyttes en 8-ordens prediktion og antal bit/sampel kan være enten 5 eller 6. ADPCM [Standard G.722] er rettet mod højkvalitets tale. Frekvensbåndet er 50 Hz til 7 khz. Der benyttes Subband Coding hvor signalet indledende opdeles i 2 bånd: De lave hhv. de høje frekvenser. Dette sker ved et delefilter ( en lavpas hhv. højpas filtrering). Delefrekvensen er 3.5 khz. Det lave frekvensbånd samples sjældent (fx. 8 ksps) men med fin kvantificering. Det høje frekvensbånd samples tæt (fx. 16 ksps) men med grov kvantificering.
Multimedier Modul 4 8.1:19 SIGNAL DFT/DCT FILTER SUBBANDS AFTER IDFT/IDCT AFTER DPCM FREQUENCY REPRESENTATION
Multimedier Modul 4 8.1:20 Lineær Prediktiv kodning: LPC Benyttes til syntetiseret tale, hvor kvalitetskravet er lavt og kravet om lav bitrate er højt (1-3 kbps). Opdele signal i blokke (ideelt fonemer) og karaktereisere hver blok ved et antal perceptuelle features, f.eks. pitch, periode, amplitude, samt parametre der karakterisere brugen af vokaltrakten, f.eks. stemte lyde og hvislelyde. Syntese af tale dannes på basis af features fra en blok, en model af vokaltrakten, samt en linearkombination af blokkoefficienterne for de sidste n blokke (n 5-10).
Multimedier Modul 4 8.1:21 Code-exited LPC (CELP) CELP har lav bit-rate, bedre kvalitet end LPC, på bekostning af en tidsforsinkelse der skyldes et beregningsmæssigt overhead. Metode benytter Vektorkvantificering. Hver blok matches til et antal prototyper, i en kodebog som er estimeret på forhånd og kendt af både afsender og modtager. Kodes indeks til den prototype, der passer bedst. I analysen medtages blokke både før og efter blokken under kodning. Herved sikres kontinuitet i rekonstruktionen.
Multimedier Modul 4 8.1:22 Vektorkvantificering Prototype Prototype Prototype Prototype
Multimedier Modul 4 8.1:23 Da CELP (bedre end LPC) benytter kontekst-information er rekonstruktionen bedre end for LPC. Kvaliteten af rekonstruktionen afhænger af prototyperne i kodebogen. Hvis disse er godt valgt kan der opnås en god rekonstruktion. Desuden kan kodebogen specialiseres til bestemte anvendelser. Standarder: ITU-T G.728, 729, 723.1 med bit-rater fra 5.3 til 16 kbps og med tidsforsinkelse fra 0.6 til 68 ms.
Multimedier Modul 4 8.1:24 Perceptuel kodning af lyd I perceptuel kodning udnyttes viden om hørelsen, herunder: At øret er mest følsomt i frekvensbåndet 2-5 khz, og ret ufølsomt for frekvenser under 500 Hz og over 15khz. At øret efter en høj lyd har svært ved at registrere svagere lyde i et kritisk frekvensbånd omkring den høje lyd: Frekvensmaskering. At øret efter en høj lyd har svært ved at registrere svagere lyde i et vist tidsrum efter lyden: Temporal maskering. Perceptuelle kodere undlader kodning af lyde der ikke kan høres.
Multimedier Modul 4 8.1:25 Psykoakustisk model - frekvensmaskering Frekvensmaskering er meget effektiv til at reducere antallet af koefficienter der skal kodes. Læs afsnit II (side 3-10) i artikel af Painter og Spanias (se kursets hjemmeside). Første trin er opdeling af signalet f(x) i disjunkte eller overlappende blokke og transformation til koefficienter c i ved en Fouier-transformation DFT, en Cosinus-transformation DCT, eller en Modificeret cosinus-transformation MDCT. Dernæst transformeres koefficienterne c i i hver blok til styrke s i ved: c i s i = 20 log 10 ( c i ) + offset db
Multimedier Modul 4 8.1:26 Signal opdelt i overlappende blokke Signal i blok og vindue Signal med påganget vindue Koefficienter db Signal markør Koefficientstyrke
Multimedier Modul 4 8.1:27 Signalmarkører Efter transformation til styke s i detekteres særligt høje og markante styrkeværdier (Signalmarkører eller tonale markører). Ved (logaritmisk) addition af høre-maske-funktioner for hver signalmarkør til den Den absolutte høregrænse ATH fås Den globale høregrænsefunktion T H i. Koefficienter c i med styrke s i > T H i skal kodes. De resterende kodes ikke. I kvantificeringen af c i kan der benyttes flere kvanter for frekvens-koefficienter hvor høreevnen er bedst. Der kan også benyttes ulineær kavtificering (som ved companding).
Multimedier Modul 4 8.1:28 Kritiske frekvensbånd Ud over detektion af signalmarkører kan der også detekteres støjmarkører. Frekvensområdet opdeles ulineært i ca. 25 kritiske frekvensbånd (enheden kaldes bark). Relationen mellem frekvens og bark er: bark(f) = 13 arctan(0.00076 f)+3.5 arctan((f/7500) 2 ) og relationen mellem koefficientindex i of frekvens givet ved f = 0.5 44100 i/n. Hvis der ingen signalmarkør er i båndet bestemmes en støjmarkør. Til hver støjmarkør bestemmes (som for signalmarkører) en høre-maske-funktion som også adderes til Den globale høregrænsefunktion T H i.
Multimedier Modul 4 8.1:29 Signalmarkør Styrke for signal i kritiske frekvensbånd Støjmarkør Beregnet global høregrænse
Multimedier Modul 4 8.1:30 Høre-maske funktioner Høre-maske-funktionerne Tm(i) er bestemt ud fra markørværdien P i markørpunktet j og ud fra det kritiske bånd bark(j) som markøren befinder sig i. T m(i) = [P a b bark(i)] + Mask(bark(i) bark(j)) Mask(x) = 15.81 + 7.5(x + 0.474) 17.5 1 + (x + 0.474) 2 Kodningseffektiviteten afhænger af valget af konstanterne a og b.i praksis vælges b lille, f.eks. 0.1, og a mellem 2 (stor kompression) og 10 (lille kompression). Sædvanligvis vælges a større for signal-markører end for støj-markører.
Multimedier Modul 4 8.1:31 160 140 120 100 80 60 40 20 0 20 0 5 10 15 20 25
Multimedier Modul 4 8.1:32 160 140 120 100 80 60 40 20 0 20 0 50 100 150 200 250 300
Multimedier Modul 4 8.1:33 160 db 140 ATH 120 Signalmarkør Støjmarkør 100 80 60 Global høregrænse 40 20 Kodede koefficienter 0 bark 20 0 5 10 15 20 25
Multimedier Modul 4 8.1:34 MDCT Den Modificerede Diskrete Cosinus Transformation benyttes i flere moderne lydkodere (f.eks. Dolby AC3). Det antages at hver blok overlapper 50 % med den foregående blok. MDCT transformerer 2N sampels x(k) til N koefficienter c(k). c(k) = 2N 1 n=0 h(n) x(n) cos( π(2k + 1)(2n + 1 + N) 4N ) for k = 0, 1,..., N-1.
Multimedier Modul 4 8.1:35 Vinduesfunktion Vinduet h(n) skal vælges omhyggeligt således at alle sampels (der jo hver deltager i 2 blokke) ialt bidrager med vægten 1. Et (ikke optimalt), men brugbart vindue er: for k = 0, 1,..., 2N 1. π(n 0.5) h(n) = sin( ) 2N Efter rekonstruktion af en dekodet blok påganges vinduet igen. Herefter adderes blokken til de rekonstruerede sampels. Da sinus-vinduet translateret en blok (1/2 periode) bliver til en cosinus vil hver koefficient indgå i rekonstruktionen med vægten cos 2 ( ) + sin 2 ( ) = 1.
Multimedier Modul 4 8.1:36 Andre teknikker Temporal maskering Pre-ekko detektion Effektiv kvantificering og indkodning Detektion af transienter og brug af alternativ filterbank i stedet for MDCT.
Multimedier Modul 4 8.1:37 MP1-3 lyd-kodere MPEG = Motion Pictures Expert Group. Gruppe under ISO for standardisering af multimedieapplikationer for video med lyd. Eksempel: Stereo lyd i CD-kvalitet kræver mindst 2*2*20 ksps. I praksis benyttes 2*44.1 ksps. Med 16 bit/sampel fås en bitrate på ca. 1.41 Mbps. 3 niveauer af stigende beregningskompleksitet og kompression. MP1 er grundniveau. MP2 og MP3 udnytter temporal maskering, og mere avanceret kvantificering etc. Kompressionsrater mellem 2 og 22 (ca. 11 for MP3).
Multimedier Modul 4 8.1:38 MPEG niveauer niveau MP1 MP2 MP3 anvendelse hjemmebrug transmision lyd over net bit rate 32-448 kbps 32-192 kbps 64 kbps kvalitet HiFi nær CD-kalitet CD-kvalitet v. 192 kbps/kanal v. 128 kbps/kanal v. 64 kbps/kanal forsinkelse 20 ms 40 ms 60 ms
Multimedier Modul 4 8.1:39 MP principper MP benytter Subband coding med 32 frekvensbånd. For CD-kvalitet (44.1 ksps) svarer dette til en bredde af hver bånd på 689 Hz. Sampels opdeles i blokke a 32. Disse transformeres til 32 fvekvenskoefficienter ved den diskrete cosinustransformation DCT eller den diskrete fouriertransformation DFT.
Multimedier Modul 4 8.1:40 12 blokke (svarende til 12*32 = 384 sampels = 1 segment) analyseres sammen for at udnytte frekvens- og temporal maskering. Maksimum, kaldet skalafaktoren af de 12 koefficienter bestemmes for hver af de 32 frekvensbånd. For hvert frekvensbånd bestemmes kvantificeringsgraden ud fra høre-følsomheden og skalafaktoren.
Multimedier Modul 4 8.1:41 12 blokke tid Skala frekvens koefficienter MAX 32
Multimedier Modul 4 8.1:42 Ved division af en koefficient med skalafaktoren fås et tal [-1:1]. Dette interval opdeles i et antal intervaller afhængig af kvantificeringsgraden. Der kvantifices fint i de frekvensbånd hvor øret er mest følsomt, dvs i intervallet 2-5 khz. Desuden bestemmes Signal-to-mask-ratioen SMR (a la ATH) der angiver om grænsen for om enkelte koefficienter ligger under høregrænsen. I modsat fald kodes indeks for det interval som koefficienten falder i. I MP1 bestemmes SMR ud fra den absolutte følsomhedskurve. I MP2 og MP3 benyttes desuden temporal- og frekvens-maskering.
Multimedier Modul 4 8.1:43 MP kvantificering Et segment med 12 sampels i 32 frekvensbånd kodes ved 12 kvantificerede skalafaktorer og 12*32 kvantificerede koefficienter. Hver skalafaktor kodes ved 6 bit. Hver koefficient kodes ved 2-15 bit relativ til skalafaktoren for den pågældende frekvensbånd. Bitallokeringen bestemmes ved en iterativ procedure hvor rekonstruktionskvaliteten maksimeres under bibetingelse af et maksimalt antal bit til rådighed for kodningen af segmentet. Antal bit/koefficient angives i en 4-bit header. Hvis denne er 0000 angives at ingen sampels transmiteres (masking).
Multimedier Modul 4 8.1:44 MP frame format Formatet består af: Header, CRC, Data og Extra. Headeren (32 bit) angiver: antal bit/koeff (4 bit), synkroniseringsinformation (12 bit), niveau 1-2-3 (2 bit), mode (2 bit) [mono, stereo, joint stereo, dual], sampling frekvens standard (2 bit) [48, 44.1 eller 32 ksps] mv. CRC er på 16 bit. Data rummer de 12 32 kvantificerede koefficienter samt 12 skalafaktorer.
Multimedier Modul 4 8.1:45 Bemærk Den psykoakustiske model benyttes kun ved indkodning. Dette gør modtager-apparater simplere og billigere. Data kodet med forskellige psykoakustiske modeller kan dekodes ved samme apparat. I joint-stereo-mode udnyttes korrelation mellem venstre (L) og højre (R) kanal, ved at kode (L+R)/2 og (L-R) i stedet for L og R selv.
Multimedier Modul 4 8.1:46 Næste gang Næste gang vil vi afslutte lydkodning med kort at se på MP2 og MP3, samt på Dolby-lydkoderne AC1, AC2 og AC3. Dernæst vil vi starte på videokodning.