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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.