4 ms·
> Most GameCube games used their own 8-bit ADPCM format Minor quibble but, at least for music, most GC games used a native 4-bit ADPCM ("DSP", decoded by the D
by hcs 4y ago
> Most GameCube games used their own 8-bit ADPCM format
Minor quibble but, at least for music, most GC games used a native 4-bit ADPCM ("DSP", decoded by the DSP, or the ADP/DTK format, like CD-XA ADPCM and also handled in hardware), and the most common cross-console audio middleware (CRI) also generally used 4-bit ADX ADPCM. In this old list, everything marked ADP, ADX, DSP is using 4-bit (and others are usually just different containers for DSP): http://web.archive.org/web/20080420105759/https://hcs64.com/mboard/gcstreamdb.php http://web.archive.org/web/20080420105759/https://hcs64.com/...
PS1 and PS2 were similar. I've usually only encountered 8-bit DPCM on PC, though the 3DO had a version in hardware.
The old table-driven style of ADPCM might be the poor quality the author has in mind, all of these consoles get much better quality at 4 bits, using the same kind of linear predictor (usually with 2 samples of history) with scales per frame as QOA.
Edit: I hadn't read carefully enough, QOA is doing something more complicated by updating the weights rather than using a fixed set of filters chosen per frame (ADX has only one per sample rate, GC DSP uses 8, XA/PS uses 4 or 5). That seems a little overcomplicated, but maybe needed at 3 bits per sample?
- Jasper_ 4y agoYeah, I don't understand the disparaging of 4-bit ADPCM as being terrible quality when this is effectively a 3-bit ADPCM. Most ADPCM codecs I've seen shipped have a similar table based system with a frame header with coefficients for your two history samples rather than the weight update scheme here, and it works quite well.
- phoboslab 4y agoTraditional ADPCM is not terrible, it's just "meh". Compare: - Original, 4039kb: https://phoboslab.org/files/qoa-samples/adpcm_comp/orig.wav https://phoboslab.org/files/qoa-samples/adpcm_comp/orig.wav - MS ADPCM, 1022kb: https://phoboslab.org/files/qoa-samples/adpcm_comp/ms_adpcm.wav https://phoboslab.org/files/qoa-samples/adpcm_comp/ms_adpcm.... - QOA, 812kb: https://phoboslab.org/files/qoa-samples/adpcm_comp/qoa.wav https://phoboslab.org/files/qoa-samples/adpcm_comp/qoa.wav IMA ADPCM is in the same ballpark as MS ADPCM. ADX (not listed) comes close to QOA, but at 1136kb is also larger than those traditional ADPCM flavors.
- stephc_int13 4y agoI have a fairly decent audio system with a good dac and reasonable headphone. MS ADPCM sounds horrible, a lot of unpleasant high-pitched noise. QOA is much better but still audibly degraded from the source. Not sure I would ship content at this quality.
- deleted 4y ago[deleted]
- hcs 4y agoThis bit > What makes QOA work is 1) a reasonably good predictor and 2) storing the scalefactor for a bunch of samples explicitly instead of guessing the right one from context, like ADPCM does. suggests a comparison with DVI/IMA ADPCM [1] or derivatives, which go out of their way not to have too much state or use multiplies, and they also tend to be used at really low bitrates, so they have a somewhat deserved bad reputation. "Guessing" the scalefactor is overstating it, the scale does dynamically adjust but that's all considered from the encoder. The 2-history-samples style ADPCMs in the BRR [2] family usually have very short frames (at most dozens of samples) and headers specifying scale and predictor/filter index. I know a lot more about what's used on consoles than about the math of audio encoding, though, so I can't say whether QOA is making the wrong tradeoffs. [1] https://wiki.multimedia.cx/index.php/IMA_ADPCM https://wiki.multimedia.cx/index.php/IMA_ADPCM [2] https://en.wikipedia.org/wiki/Bit_Rate_Reduction https://en.wikipedia.org/wiki/Bit_Rate_Reduction