En generell prediktiv kodare utnyttjar signalens utseende N steg tillbaka i tiden för kodningen, dvs vi kodar efter den betingade fördelningen

Relevanta dokument
Linjär prediktion. Prediktiv kodning. Linjär prediktion. Prediktiv kodare och avkodare

Skurlängdskodning. aaaabbbbbbbccbbbbaaaa. Man beskriver alltså sekvensen med ett annat alfabet än det ursprungliga.

FLAC (Free Lossless Audio Coding)

Kodning med distorsion

Analys/syntes-kodning

Transformkodning Idé: 1. Tag datasekvensen och dela in den i block av storlek N (eller N N om signalen är tvνadimensionell). Transformera dessa block

TSBK35 Kompression av ljud och bild

Psykoakustik. Ljudtrycksnivå. Hörselns omfång. Hörnivå(loudness) Människans hörsel är ganska väl studerad och det finns bra modeller för den.

Föreläsning 1: Bild- och ljudkodning

Adaptiv aritmetisk kodning

Ordbokskodning. Enkel variant av kodning med variabelt antal insymboler och fixlängds kodord. (Jfr tunstallkodning)

Exempel, minnesfri binär källa. Ordbokskodning. Lempel-Zivkodning. Lempel-Zivkodning, forts.

Föreläsning 7: Bild- och videokodning

Optimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.

Optimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or.

4/27/12. Fönstring i MDCT. Föreläsning 10: Ljudkodning ( Audio Coding ) 1. Inledning PCM, standardmetoder, MDCT, psykoakustik, ljudtryck

Parameterskattning i linjära dynamiska modeller. Kap 12

Föreläsning 10: Ljudkodning ( Audio Coding )

Källkodning. Egenskaper hos koder. Några exempel

F13 Regression och problemlösning

Kurslitteratur. Kompression av ljud och bild. Föreläsningar, preliminärt program. Laborationer. Khalid Sayood, Introduction to Data Compression

Kodning av ansiktstextur med oberoende komponenter

Aritmetisk kodning. F (0) = 0 Exempel: A = {1, 2, 3} k=1. Källkodning fö 5 p.1/12

TSBK04 Datakompression. Övningsuppgifter

Korrelation kausalitet. ˆ Y =bx +a KAPITEL 6: LINEAR REGRESSION: PREDICTION

Föreläsning 8: Konfidensintervall

TSBK04 Datakompression Övningsuppgifter

Psykoakustik. Ljudtrycksnivå. Hörselns omfång. Hörnivå (loudness) Människans hörsel är ganska väl studerad och det finns bra modeller för den.

Kompression av ljud och bild

Shannon-Fano-Elias-kodning

Människans hörsel är ganska väl studerad och det finns bra modeller för den.

Kurslitteratur. Kompression av ljud och bild. Föreläsningar, preliminärt program. Laborationer

Föreläsning 2: Simplexmetoden. 1. Repetition av geometriska simplexmetoden. 2. Linjärprogrammeringsproblem på standardform.

Föreläsning 5, Matematisk statistik 7.5hp för E Linjärkombinationer

Matematisk statistik 9 hp Föreläsning 6: Linjärkombinationer

Autokorrelation och Durbin-Watson testet. Patrik Zetterberg. 17 december 2012

a) Anpassa en trinomial responsmodell med övriga relevanta variabler som (icketransformerade)

Föreläsning 6, Matematisk statistik Π + E

5B Portföljteori och riskvärdering

Grundläggande matematisk statistik

Videosignalen består av en sekvens av bilder, typiskt 24, 25 eller 30 bilder i sekunden.

F12 Regression. Måns Thulin. Uppsala universitet Statistik för ingenjörer 28/ /24

Sammanfattning TSBB16

Spektrala Transformer

DIGITAL KOMMUNIKATION

Korrelation och autokorrelation

Projekt 1 (P1) Problembeskrivning och uppdragsspecifikation

MVE051/MSG Föreläsning 14

Föreläsning 6, FMSF45 Linjärkombinationer

Signaler och system, IT3

Flerdimensionella signaler och system

Föreläsning 12: Regression

Introduktion till statistik för statsvetare

3 Maximum Likelihoodestimering

Matematisk statistik KTH. Formelsamling i matematisk statistik

Lab 3 Kodningsmetoder

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

Kovarians och kriging

Kap 2. Sannolikhetsteorins grunder

Finansiell statistik. Multipel regression. 4 maj 2011

Lab 1 Analog modulation

Bayesiansk statistik, 732g43, 7.5 hp

Enkel och multipel linjär regression

Föreläsning 7. Felrättande koder

Föreläsning 7: Punktskattningar

SF1901 Sannolikhetsteori och statistik I

SF1544 LABORATION 2 INTEGRATION, MONTE-CARLO OCH BLACK-SCHOLES EKVATION FÖR OPTIONER

Regressionsanalys. - en fråga om balans. Kimmo Sorjonen Sektionen för Psykologi Karolinska Institutet

Föreläsning 7: Punktskattningar

Ulrik Söderström 20 Jan Signaler & Signalanalys

TRE TYPER AV SPATIALA DATA

Föreläsning 12: Linjär regression

Ulrik Söderström 19 Jan Signalanalys

1 LP-problem på standardform och Simplexmetoden

Föreläsning 7: Kvadratisk optimering. 4. Kvadratisk optimering under linjära bivillkor

Laboration 1 i SF1544: Öva på Matlab och konstruera en optimal balk Avsikten med denna laboration är att:

Teori... SME118 - Mätteknik & Signalbehandling SME118. Johan Carlson 2. Teori... Dagens meny

LMA522: Statistisk kvalitetsstyrning

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

TSBB16 Datorövning A Samplade signaler Faltning

Optimal Signalbehandling Datorövning 1 och 2

Regressionsmodellering inom sjukförsäkring

PROGRAMFÖRKLARING I. Statistik för modellval och prediktion. Ett exempel: vågriktning och våghöjd

Tentamen i Matematisk statistik Kurskod S0001M

TENTAMEN MÅNDAGEN DEN 22 OKTOBER 2012 KL a) Bestäm P(ingen av händelserna inträffar). b) Bestäm P(exakt två av händelserna inträffar).

Preliminära lösningar för Tentamen Tillämpad statistik A5 (15hp) Statistiska institutionen, Uppsala universitet

Spektrala Transformer

FÖRELÄSNING 8:

Robust flervariabel reglering

Statistiska metoder för säkerhetsanalys

Matematisk statistik 9 hp, HT-16 Föreläsning 10: Punktskattningar

Föreläsning 8, Matematisk statistik 7.5 hp för E Punktskattningar

Konvergens för iterativa metoder

Prediktera. Statistik för modellval och prediktion. Trend? - Syrehalt beroende på kovariater. Sambands- och trendanalys

Föreläsning 4: Konfidensintervall (forts.)

Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University

Tentamen MVE301 Sannolikhet, statistik och risk

SF1905 Sannolikhetsteori och statistik: Lab 2 ht 2011

Interpolation Modellfunktioner som satisfierar givna punkter

Rättningstiden är i normalfall 15 arbetsdagar, till detta tillkommer upp till 5 arbetsdagar för administration, annars är det detta datum som gäller:

Transkript:

Prediktiv kodning Närliggande sampel i en signal är oftast starkt korrelerade med varandra, det kan därför vara en bra ide att försöka utnyttja denna korrelation (minnet) innan kvantiseringen för att få en effektivare kodning. En generell prediktiv kodare utnyttjar signalens utseende N steg tillbaka i tiden för kodningen, dvs vi kodar efter den betingade fördelningen f (x n x n 1 x n 2... x n N ) Detta är en markovmodell av ordning N. En kontinuerlig markovmodell är komplicerad och är ofta svår att estimera för en given signal. Istället är det enklare att använda en AR-modell för källan, och då får vi en linjär prediktor.

Linjär prediktion Idé: Vi gissar (predikterar) signalens värde i tidpunkten n som en linjärkombination av de N senaste värdena. p n = a 1 x n 1 + a 2 x n 2 +... + a N x n N = N = a i x n i i=1 Skillnaden mellan det riktiga värdet och det predikterade värdet, prediktionsfelet, d n = x n p n kvantiseras och skickas till mottagaren. Mottagaren rekonstruerar d n, beräknar p n och kan sen återskapa x n. Detta fungerar inte i praktiken! Problemet är att mottagaren bara kan återskapa en distorderad version ˆd n av prediktionsfelet och därför bara en distorderad version ˆx n av signalen.

Linjär prediktion För att den prediktiva kodaren ska fungera, måste kodardelen göra samma beräkningar som avkodardelen kan göra. Prediktionen måste göras från den rekonstruerade signalen ˆx n istället för från originalsignalen. p n = a 1ˆx n 1 + a 2ˆx n 2 +... + a N ˆx n N = N = a i ˆx n i i=1 Prediktionsfelet d n kvantiseras och skickas. Både kodaren och avkodaren återskapar ˆd n och ˆx n = p n + ˆd n.

Prediktiv kodare och avkodare x n + d n ˆd n Q + p + n ˆd n + + p n P ˆx n P ˆx n Prediktiv kodare Prediktiv avkodare

Optimering av prediktorn Hur ska man välja prediktorkoefficienterna a i? Givet en datatakt R så vill vi minimera distorsionen D = E{(x n ˆx n ) 2 } = E{(d n ˆd n ) 2 } Kvantiseringen gör att det är svårt att beräkna optimala a i exakt. Om vi antar fin kvantisering, dvs att antalet kvantiseringsnivåer är stort, kan vi göra approximationen ˆx n x n dvs vi räknar som om prediktionen gjordes på originalsignalen. Med fin kvantisering får vi även att D c σ 2 d 2 2R där σd 2 är variansen hos prediktionsfelet och c beror av vilken typ av kvantisering vi gör och vilken fördelning d n har. Vi kan alltså minimera distorsionen genom att minimera prediktionsfelets varians.

Optimering av prediktorn Prediktionsfelets varians σd 2 = E{(x n p n ) 2 } = N = E{(x n a i ˆx n i ) 2 } E{(x n i=1 N a i x n i ) 2 } Derivera m.a.p. a j och sätt lika med 0, vilket ger oss N ekvationer a j σ 2 d = 2 E{(x n i=1 N a i x n i ) x n j } = 0 i=1

Matrisbeskrivning Detta kan skrivas om som matrisekvationen där A = RA = P R xx (0) R xx (1) R xx (N 1) R xx (1) R xx (0) R xx (N 2) R =..... R xx (N 1) R xx (N 2) R xx (0) a 1 R xx (1) a 2 R xx (2). a N, P =. R xx (N) där R xx (k) = E{x n x n+k } är autokorrelationsfunktionen för x n.

Matrisbeskrivning Lösningen kan fås som A = R 1 P För den optimala prediktorn A får vi σ 2 d = R xx (0) A t P

Prediktionsvinst Vid fin kvantisering ges distorsionen och signal-brusförhållandet approximativt av D p c σ 2 d 2 2R, SNR p = 10 log 10 σ 2 x D p där σ 2 x är originalsignalens varians. Om vi istället kvantiserat originalsignalen direkt hade vi fått D o c σ 2 x 2 2R, SNR o = 10 log 10 σ 2 x D o Skillnaden brukar kallas prediktionsvinst (prediction gain) SNR p SNR o = 10 log 10 D o D p 10 log 10 σ 2 x σ 2 d

Skattning av autokorrelationer Givet en lång sekvens x 1, x 2,..., x n av testdata kan man skatta autokorrelationsfunktionen enligt I Matlab kan det skrivas R xx (k) = 1 n k x i x i+k n k i=1 mean(x(1:end-k).*x(k+1:end))

Signaler med medelvärde Vad gör man om signalen har ett medelvärde m 0? 1. Om signalens medelvärde är litet i förhållande till variansen kan man använda linjär prediktion som vanligt. 2. Annars kan man skapa en ny signal y n = x n m, konstruera en linjär prediktor för y n och skicka m som sidoinformation. 3. Alternativt kan man konstruera en affin prediktor p n = N a i x n i + a 0 i=1 Bortsett från kvantiseringen så ger detta samma resultat som alternativ 2.

Tvådimensionella prediktorer Man kan naturligtvis generalisera prediktorbegreppet till att även fungera för tvådimensionella signaler, t.ex. bilder. Till exempel, om vi har en bildsignal x ij och vi vill göra en prediktion från bildpunkten till vänster om och bildpunkten ovanför den aktuella p ij = a 1 x i,j 1 + a 2 x i 1,j Den optimala prediktorn ges då av lösningen till ekvationssystemet [ E{xi,j 1 2 } E{x ] [ ] [ i,j 1 x i 1,j } a1 E{xi,j x E{x i,j 1 x i 1,j } E{x 2 = i,j 1 } E{x ij x i 1,j } i 1,j } a 2 ] eller, uttryckt med autokorrelationsfunktionen [ ] [ ] Rxx (0, 0) R xx (1, 1) a1 = R xx (1, 1) R xx (0, 0) a 2 [ Rxx (0, 1) R xx (1, 0) ]

Exempel, prediktiv kodning av bild 768 512 bildpunkter, 8 bitar/bildpunkt

Lloyd-Max-kvantisering, 8 nivåer Datatakt: R = 3 bitar/bildpunkt Distorsion: D 59.02 PSNR: 30.42 db

Prediktor Skattad akf R xx (0, 0) = σ 2 2580.9 R xx (1, 0) 0.9770 σ 2 R xx (0, 1) 0.9863 σ 2 R xx (1, 1) 0.9703 σ 2 R xx (1, 1) 0.9665 σ 2 Prediktor p ij = 0.8008 ˆx i,j 1 + 0.6493 ˆx i 1,j 0.4525 ˆx i 1,j 1 En åttanivåers Lloyd-Max-kvantiserare optimeras på prediktionsfelet.

Prediktionsfel, 8 nivåer

Kvantiserat prediktionsfel, 8 nivåer

Avkodad bild, 8 nivåer Datatakt: R = 3 bitar/bildpunkt Distorsion: D 5.62 PSNR: 40.63 db (Prediktionsvinst 10.21 db)

Lloyd-Max-kvantisering, 2 nivåer Datatakt: R = 1 bit/bildpunkt Distorsion: D 735.77 PSNR: 19.46 db

Prediktionsfel, 2 nivåer

Kvantiserat prediktionsfel, 2 nivåer

Avkodad bild, 2 nivåer Datatakt: R = 1 bit/bildpunkt Distorsion: D 84.81 PSNR: 28.85 db (Prediktionsvinst 9.39 db)

Exempel: hey04.wav Filen hey04.wav från lab 2 kodas med olika ordning på prediktorn. Likformig kvantisering med 256 nivåer. Diagrammet visar SNR som funktion av antalet prediktorkoefficienter. 49 48 47 46 45 44 43 42 0 1 2 3 4 5 6 7 8

Exempel: hey04.wav Filen hey04.wav från lab 2 kodas med olika ordning på prediktorn. Likformig kvantisering med 32 nivåer. Diagrammet visar SNR som funktion av antalet prediktorkoefficienter. 34 33 32 31 30 29 28 27 26 25 0 1 2 3 4 5 6 7 8

Exempel: hey04.wav Filen hey04.wav från lab 2 kodas med olika ordning på prediktorn. Likformig kvantisering med 4 nivåer. Diagrammet visar SNR som funktion av antalet prediktorkoefficienter. 22 20 18 16 14 12 10 8 0 1 2 3 4 5 6 7 8

Distorsionsfri kodning Linjär prediktiv kodning kan också användas vid distorsionsfri kodning. Om vi antar att insignalen består av heltal, så måste vi se till att vår prediktor också producerar heltal. Som exempel har vi bland annat lossless JPEG, som kan använda prediktorerna 1. p ij = I i 1,j 2. p ij = I i,j 1 3. p ij = I i 1,j 1 4. p ij = I i,j 1 + I i 1,j I i 1,j 1 5. p ij = I i,j 1 + (I i 1,j I i 1,j 1 )/2 6. p ij = I i 1,j + (I i,j 1 I i 1,j 1 )/2 7. p ij = (I i,j 1 + I i 1,j )/2

Distorsionsfri kodning Vi kodar vår papegojbild med prediktorn p ij = I i,j 1 + I i 1,j I i 1,j 1 och huffmankodar sen prediktionsfelet. Datatakten blir då 4.18 bitar/bildpunkt. Om vi istället använder prediktorn p ij = 0.8008 I i,j 1 + 0.6493 I i 1,j 0.4525 I i 1,j 1 följt av huffmankodning blir datatakten 3.93 bitar/bildpunkt.

Ljudsignalerna i lab 1 Prediktorer av ordning 1 och 2. hey04_8bit.wav p n = 0.9820 x n 1 p n = 1.2970 x n 1 0.3207 x n 2 nuit04_8bit.wav p n = 0.9981 x n 1 p n = 1.8434 x n 1 0.8468 x n 2 speech.wav p n = 0.9507 x n 1 p n = 1.7719 x n 1 0.8639 x n 2

FLAC (Free Lossless Audio Coding) Distorsionsfri kodning av ljud Ljudsignalen delas in i block (typiskt några tusen sampel). Koda summa/skillnad av de två stereokanalerna om det ger högre kompression. Linjära prediktorer optimeras inom blocket. Det finns även möjlighet att använda fixa prediktorer (jämför med lossless JPEG). Prediktionsfelet kodas med Ricekoder (ungefär samma sak som Golombkoder). https://xiph.org/flac/