Resource icon

ADPCM-2 Codec Demo 2019-10-15

I've been working on some programming involving linear prediction, and came up with this as a side-project.

The idea is to use linear prediction to 'whiten' the signal, and then pack the residuals into 32-bit 'frames' of 12 samples. It turns out that as long as you provide residuals with a coded quantization step, a simple sinusoidal predictor is enough to give decent quality of around 20-25dB PSNR for unpredictable signals (eg. synth leads), and approaching 40dB PSNR for highly predictable signals (eg. orchestral, sine waves).

This codec uses 16 prediction sets, providing a coding rate of 2.667bits/sample (16.667% of 16bit PCM, or 87.38kbps/channel @ 32.768kHz), and the stereo decoder takes under 6% CPU according to my testing.

Full source code is included for the player and encoder. Feel free to do whatever you want with it, and it is released unlicensed. If placing your own music in, be sure to update the playback rate ("adpcmplayer.s", line 463) before re-building.

As with ulc-codec, special thanks to No!ze Freakz for permission to use their track 'Freedom' for this demo.
  • Like
Reactions: IC_
Author
Aikku
Downloads
841
Views
1,200
First release
Last update
Rating
5.00 star(s) 1 ratings

More resources from Aikku

Latest updates

  1. Fixed mono playback, higher precision encoding filter

    Mono playback was broken but is now working. The encoding filter now also computes in .8fxp...
  2. New LPC coefficients, mild psychoacoustic opto

    New LPC coefficients to go with a slight psychoacoustic optimization in the encoder (emphasizes...
General chit-chat
Help Users
  • No one is chatting at the moment.
  • K3Nv2 @ K3Nv2:
    Crazy people actually spend $50 on that stuff
  • BigOnYa @ BigOnYa:
    Towelie runs my farm, he's awesome.
  • SylverReZ @ SylverReZ:
    @K3Nv2, Polly is still around from what I've heard.
  • K3Nv2 @ K3Nv2:
    @SylverReZ, is Pollys alt I knew it
  • BigOnYa @ BigOnYa:
    Yea I see him every once whi!e , incognito
  • SylverReZ @ SylverReZ:
    @K3Nv2, I'm not him. Keep looking.
    +1
  • K3Nv2 @ K3Nv2:
    Still don't know why he left unless someone really hurt his feelings
  • K3Nv2 @ K3Nv2:
    Don't know why people get so emotional online just get over it ffs
    +2
  • BigOnYa @ BigOnYa:
    He was the ass of gbatemp, everyone knocked on him, I honestly felt bad, even though I was guilty myself, but he egged it all on himself,
  • BigOnYa @ BigOnYa:
    But he still here, but under dif name, he pm me sometimes still even.
  • K3Nv2 @ K3Nv2:
    It's like they think we'll be in their bed pissing on it the next day
  • BigOnYa @ BigOnYa:
    I feel like gbatemp should make t-shirts or memorabilia to remember the lost ones. I bet the Polly shirts would sell out quick.
  • K3Nv2 @ K3Nv2:
    Nah that could actually bring lawsuits
  • K3Nv2 @ K3Nv2:
    Tempsuits
  • BigOnYa @ BigOnYa:
    PollySuits
  • BigOnYa @ BigOnYa:
    Your correct, Somebody would be guilty and there would be riots, then they storm the gbatemp capitol,
  • K3Nv2 @ K3Nv2:
    Online or not there are still certain rights that judges would have no issue handing out a warrant over
  • K3Nv2 @ K3Nv2:
    Just look at Kim dotcom
  • BigOnYa @ BigOnYa:
    Honestly I'm scared to, from you, but ok, lemme turn on vpn, virtual machine, private browser first
  • K3Nv2 @ K3Nv2:
    Remember that Alexa robot I gifted you
  • K3Nv2 @ K3Nv2:
    And that laptop Webcam you never tapped up
  • BigOnYa @ BigOnYa:
    That robot is here somewhere, I hear it moving around at night, but I haven't seen it for months.
  • BigOnYa @ BigOnYa:
    Oh that laptop I give to ancientboi, so you been watching him for months, and he's been watching you
  • K3Nv2 @ K3Nv2:
    Oh good more than enough material for the fbi
    +1
  • BigOnYa @ BigOnYa:
    Damn its 5 in morn, I gotta Go wake your mum and send her to work. Check ya later.
    BigOnYa @ BigOnYa: Damn its 5 in morn, I gotta Go wake your mum and send her to work. Check ya later.