70 likes | 214 Views
Komprimierung PCM-Daten. Speicherplatz für 3 min Sound CD-Qualität, stereo: 3*60*176400 = 31,5 MB 176.400 Byte/s Radio-Qualität, mono 3*60*22050*2= 7,9 MB 44.100 Byte/s Sprachqualität, mono 3*60*11025 = 2 MB 11.025 Byte/s. Komprimierungsverfahren wie Hufmann, LZW wenig brauchbar.
E N D
Komprimierung PCM-Daten Speicherplatz für 3 min Sound CD-Qualität, stereo: 3*60*176400 = 31,5 MB 176.400 Byte/s Radio-Qualität, mono 3*60*22050*2= 7,9 MB 44.100 Byte/s Sprachqualität, mono 3*60*11025 = 2 MB 11.025 Byte/s Komprimierungsverfahren wie Hufmann, LZW wenig brauchbar Predictive Coding: DPCMDelta / Differential Pulse Code Modulation ADPCM Adaptive PCM
6-Bit-Delta 32 32 32 21 -10 -27 -32 -32 32 64 96 127 117 90 58 26 0 Komprimierung DPCM Idee: die Differenzen zwischen den Pulswerten speichern.In der Regel kleine Zahlen, z.B. mit 4 Bit zu kodieren 48 90 117 127 117 90 48 0 0 Differenzenbrauchen 7 Bit Delta 48 42 27 10 -10 -27 -42 -48 Konstante Differenzen führen zu mäßigen ErgebnissenEntweder wenig Komprimierung oder wenig Approximation
Arbeitsweise: repeat until Ende; Komprimierung Predicitve Coding QuantisierterVorhersage-Fehler Vorhersage-Fehler Abtastwerte VorhergesagteWerte n-1 ADPCMvariables Deltavorhersagen Vorhersagewert+quantisierter Fehler
Komprimierung IMA ADPCM Interactive Multimedia Assocation 4:1 Komprimierung: 16Bit-Wert durch 4 Bit darstellen 4-Bit Delta-„Nibble“ Altes Delta=Tabelle[index] Vor-zeichen bit3 bit2 bit0 Nibble berechnen ausx(n)-xp(n-1) und altem Delta Nibble ausgeben Status des Quantisierersxp(n-1)index Neuen Index berechnenaus altem Index und Nibble Neue Vorhersagexp(n) berechnen Stepsize-Tabelle 0 71 82 9. . 88 32767
Komprimierung IMA ADPCM 4-Bit Delta-„Nibble“ Vor-zeichen bit3 bit2 bit0 Hilfs-variable: Sample :=x(n)-xp(n-1) Stepsize :=StepsizeTabelle[index] Neue Vorhersage
ADPCM-Beispiele http://www.ece.orst.edu/~poplin
Predictive Coding x(n) echter Signalwert xp(n) vorhergesagter Wert ep(n) Vorhersagefehler epq(n) Quantisierung von ep(n) y(n) rekonstruierter Signalwert = epq(n)+xp(n) q(n) Quantisierungsfehler = ep(n)-epq(n) Rekonstruktionsfehler = x(n)-y(n) = xp(n)+ep(n)-(epq(n)+xp(n)) = ep(n)-epq(n) = q(n) = Quantisierungsfehler Prinzip: Sample x(n) aus (vorhergesagten) Vorgängern vorhersagen. Vorhersage = xp(n) Vorhersagefehler ep(n)=x(n)-xp(n) kann besser komprimiert werden.