Forum: Projekte & Code 2/3-bit ADPCM Decoder auf ATTinyx5


von Patrick R. (prosendahl)


Angehängte Dateien:

Lesenswert?

Hallo,

anbei eine ADPCM-Variante für den ATTinyx5, basierend auf der Appnote 
"AN643" von Microchip (16byte-Sound mit 4bit ADPCM).

1) Der Algorithmus wurde geändert auf 8bit Sound.
2) Der Sound wird kodiert als <3-bit-ADPCM , 3-bit-ADPCM , 2-bit-ADPCM>, 
also ein Byte erzeugt 3 Samples. Qualität ist OK.

Verschiedene Encoder (für PC) sind dabei:
- normaler ADPCM-Encoder, kodiere immer nur einen Schritt
- suche-optimales-Byte Encoder
- suche-optimales-Byte Encoder (bis zu ein Byte vorausschauend)
Die Encoder sind jeweils immer komplexer/langsamer, bieten aber eine 
bessere Approximation des Sounds (mittlere Differenz zum Original ist 
kleiner).

Der Encoder kodiert von 16-bit-unsigned-RAW nach ADPCM332. Die RAW am 
besten mit "sox" erzeugen. Befehlsscript anbei.

Decoder für PC anbei.

Für den Tiny gibt es einen Decoder-Inthandler, der <100 Zyklen braucht 
(bietet also viel Zeit zum Oversamplen). Einigermaßen modular 
geschrieben.

zur Info: der 4bit ADPCM (wie in der Appnote beschrieben) klingt richtig 
gut.

Gruß,
PRosendahl

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.