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

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

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

TSBK04 Datakompression. Övningsuppgifter

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

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

TSBK04 Datakompression Övningsuppgifter

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

Föreläsning 8: Konfidensintervall

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.

F13 Regression och problemlösning

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

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

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

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.

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

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

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

Sammanfattning TSBB16

Spektrala Transformer

DIGITAL KOMMUNIKATION

Korrelation och autokorrelation

MVE051/MSG Föreläsning 14

Föreläsning 6, FMSF45 Linjärkombinationer

Signaler och system, IT3

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

Föreläsning 12: Regression

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

Introduktion till statistik för statsvetare

3 Maximum Likelihoodestimering

Matematisk statistik KTH. Formelsamling i matematisk statistik

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

Projekt 1 (P1) Problembeskrivning och uppdragsspecifikation

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).

Kap 2. Sannolikhetsteorins grunder

Kovarians och kriging

Bayesiansk statistik, 732g43, 7.5 hp

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

Finansiell statistik. Multipel regression. 4 maj 2011

Tentamen i Matematisk statistik Kurskod S0001M

Enkel och multipel linjär regression

Föreläsning 7. Felrättande koder

Flerdimensionella signaler och system

SF1901 Sannolikhetsteori och statistik I

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

Konvergens för iterativa metoder

Föreläsning 7: Punktskattningar

TRE TYPER AV SPATIALA DATA

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

Rapportexempel, Datorer och datoranvändning

Interpolation Modellfunktioner som satisfierar givna punkter

Ulrik Söderström 20 Jan Signaler & Signalanalys

Föreläsning 12: Linjär regression

Ulrik Söderström 19 Jan Signalanalys

1 LP-problem på standardform och Simplexmetoden

Lab 3 Kodningsmetoder

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

Krafts olikhet. En momentant avkodbar kod (prefixkod) med kodordslängderna l 1,...,l N existerar om och endast om. 2 l i. 1 i=1

Finansiell Statistik (GN, 7,5 hp,, HT 2008) Föreläsning 3

Lab 1 Analog modulation

Stokastiska processer med diskret tid

LMA522: Statistisk kvalitetsstyrning

Stokastiska vektorer

Regressionsmodellering inom sjukförsäkring

TSBB16 Datorövning A Samplade signaler Faltning

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

Datakompression. Harald Nautsch ISY Bildkodning, Linköpings universitet.

Kursinnehåll. Datakompression. Föreläsningar, preliminärt program. Examination

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

Uppgift 1. f(x) = 2x om 0 x 1

Kapitel 9 Egenskaper hos punktskattare

!"# $ $ $ % & ' $ $ ( ) *( + $', - &! # %. ( % / & ) 0

Spektrala Transformer

Föreläsning 7: Punktskattningar

Föreläsninsanteckningar till föreläsning 3: Entropi

Transkript:

Prediktiv kodning Linjär prediktion 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. 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 = = a i x n i 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. TSBK35 linjär prediktion p. 1/27 TSBK35 linjär prediktion p. 2/27 Linjär prediktion Prediktiv kodare och avkodare 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 = = a iˆx n i x n + d n ˆdn Q + p + n ˆx n P ˆd n + + p n ˆx n P Prediktionsfelet d n kvantiseras och skickas. Både kodaren och avkodaren återskapar ˆd n och ˆx n = p n + ˆd n. Prediktiv kodare Prediktiv avkodare TSBK35 linjär prediktion p. 3/27 TSBK35 linjär prediktion p. 4/27

Optimering av prediktorn 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. Prediktionsfelets varians σd 2 = E{(x n p n ) 2 } = = E{(x n a iˆx n i ) 2 } E{(x 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 a i x n i ) x n j } =0 Matrisbeskrivning TSBK35 linjär prediktion p. 5/27 Matrisbeskrivning TSBK35 linjär prediktion p. 6/27 Detta kan skrivas om som matrisekvationen RA = P Lösningen kan fås som A = R 1 P där R = R xx (0) R xx (1) R xx (N 1) R xx (1) R xx (0) R xx (N 2)..... R xx (N 1) R xx (N 2) R xx (0) a 1 R xx (1) a 2 A =.., P = R xx (2). R xx (N) a N För den optimala prediktorn A får vi σ 2 d = R xx (0) A t P där R xx (k) =E{x n x n+k } är autokorrelationsfunktionen för x n. TSBK35 linjär prediktion p. 7/27 TSBK35 linjär prediktion p. 8/27

Prediktionsvinst Skattning av autokorrelationer 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 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 mean(x(1:end-k).*x(k+1:end)) Skillnaden brukar kallas prediktionsvinst (prediction gain) SNR p SNR o =10 log 10 D o D p 10 log 10 σ 2 x σ 2 d TSBK35 linjär prediktion p. 9/27 TSBK35 linjär prediktion p. 10/27 Signaler med medelvärde Tvådimensionella prediktorer 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 = a i x n i + a 0 Bortsett från kvantiseringen så ger detta samma resultat som alternativ 2. 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{x 2 i,j 1 } E{x i,j 1 x i 1,j } a 1 E{x i,j x i,j 1 } E{x i,j 1 x i 1,j } E{x 2 i 1,j } = E{x ij x i 1,j } eller, uttryckt med autokorrelationsfunktionen [ ][ ] [ R xx (0, 0) R xx (1, 1) a 1 = R xx (1, 1) R xx (0, 0) a 2 a 2 R xx (0, 1) R xx (1, 0) ] ] TSBK35 linjär prediktion p. 11/27 TSBK35 linjär prediktion p. 12/27

Exempel, prediktiv kodning av bild Lloyd-Max-kvantisering, 8 nivåer 768 512 bildpunkter, 8 bitar/bildpunkt Datatakt: R = 3 bitar/bildpunkt Distorsion: D 60.41 PSNR: 30.32 db TSBK35 linjär prediktion p. 13/27 TSBK35 linjär prediktion p. 14/27 Prediktor Prediktionsfel 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. TSBK35 linjär prediktion p. 15/27 TSBK35 linjär prediktion p. 16/27

Avkodad bild Lloyd-Max-kvantisering, 2 nivåer Datatakt: R = 3 bitar/bildpunkt Distorsion: D 6.92 PSNR: 39.73 db (Prediktionsvinst 9.41 db) Datatakt: R = 1 bit/bildpunkt Distorsion: D 779.83 PSNR: 19.21 db TSBK35 linjär prediktion p. 17/27 TSBK35 linjär prediktion p. 18/27 Prediktionsfel Prediktion, kvantisering till 2 nivåer Datatakt: R = 1 bit/bildpunkt Distorsion: D 85.09 PSNR: 28.83 db (Prediktionsvinst 9.62 db) TSBK35 linjär prediktion p. 19/27 TSBK35 linjär prediktion p. 20/27

Exempel: hey04.wav Exempel: hey04.wav 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 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 48 33 32 47 31 46 30 45 29 44 28 27 43 26 42 0 1 2 3 4 5 6 7 8 25 0 1 2 3 4 5 6 7 8 TSBK35 linjär prediktion p. 21/27 TSBK35 linjär prediktion p. 22/27 Exempel: hey04.wav Distorsionsfri kodning 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 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 8 0 1 2 3 4 5 6 7 8 TSBK35 linjär prediktion p. 23/27 TSBK35 linjär prediktion p. 24/27

Distorsionsfri kodning Ljudsignalerna i lab 1 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. Prediktorer av ordning 1 och 2. hey04_8bit.wav nuit04_8bit.wav p n = 0.9820 x n 1 p n = 1.2970 x n 1 0.3207 x n 2 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 TSBK35 linjär prediktion p. 25/27 TSBK35 linjär prediktion p. 26/27 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). http://flac.sourceforge.net/ TSBK35 linjär prediktion p. 27/27