ulc-codec Demonstration 20200523

Low-complexity MDCT audio codec

  1. Rebuild with latest tools; major quality improvements; encoder compatibility fixes

    The old version only had an AVX-based encoder/decoder. This new version provides SSE and x87 versions alongside the AVX one.
  2. New zero-runs syntax, improved transient coding, encoder/decoder binaries, source code

    For this release, I decided to bundle the GBA executable's source code and the encoding/decoding executables (Windows only, sorry).
    Although the source code has always been available on GitHub, it may be less annoying for users to have the source code all in one file, and including the pre-built conversion tools should also make it a lot easier to test your own files.
  3. Further transients improvements

    Transients were improved fairly dramatically over the old version, based on a research paper regarding the exact thing this codec tries to accomplish.
  4. Rebuild with latest tools; quality improvements

    Transients are coded a bit better, and the quantizer selections are more optimal, leading to overall increases in quality.
  5. New and updated format

    Many milestones were surpassed between this posting and the last, and quality has improved on all fronts. Higher bitrate (96kbps, 128kbps) demos of this song and others are available on GitHub.
    Sterophonick likes this.
  6. Re-equalized track

    Because of the GBA's 8bit audio DAC, I had to perform a lot of equalization to get the track to sound right. After listening to it a lot more and comparing to the original, I realized I wasn't doing it justice and started the equalization process from scratch; sounds a lot closer to the original now. May have gone overboard on the bass, though...
  7. Latest build

    Hadn't intended to update on here any further, but made a major breakthrough in quality. Additionally, new interface should look more slick.
  8. Rebuild with latest source/tools

    Quality improvements from new a quantizer selection strategy. Not all /that/ noticeable in this demo (especially from an integer DCT), but more high-frequency bands are kept now, making things sound 'clearer'.
  9. Rebuild with latest source/tools

    • Fixed a bug that might've caused audio glitching when Timer1 interrupt was interrupted by VBlank interrupt
    • Minor improvements to quantizer optimization in encoder
    • Micro-optimizations in DCT-II/DCT-IV routines