Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : DPCM-Codierung - Hä?



mrsuicide
26-02-2007, 10:51
Hallo!

Ich versuche seit ein Paar Tagen hinter das "Geheimnis" der DPCM-Codierung zu kommen. Bisher bin ich jedoch nicht sehr erfolgreich, weshalb ich gerne mal die Profis hier befragen möchte.

Also:

Nehmen wir an, ich habe 2 Blöcke:


int a[8] = { 6, -12, 4, 5, 0, -68, -3, 50 };
int b[8] = { 9, 30, -40, 3, 100, -100, 0, 0};
float quant = 2.0f;
unsigned int n;
unsigned int size = 8;
Wenn ich das nun encoden will, mache ich etwa folgendes:


for(n = 0; n < size;n++) {
diff = a[n] - b[n];
differences[n] = roundf( (float)diff / quant );
predicted_value = a[n] - roundf((float)differences[n] * quant);
prediction_error = b[n] - predicted_value;
}
Nun weiß ich leider nicht, was ich mit dem prediction_error, also dem Fehler, der durch die Quantisierung entsteht, anfangen soll...

Wie decodiere ich das ganze?
Ohne mit irgendeinem prediction_error rumzuspielen mach ich das so:


for( n = 0; n < size;n++) {
b[n] = a[n] - roundf( (float)differences[n] * quant);
}
Ich wäre sehr froh über Tipps und Ratschläge! :) :o