[Перевод] Стерео 44,1 кГц на Nintendo 64 за 4% времени процессора: малоизвестный кодек ULC

habrahabr.ru · world
Full story

A little-known ULC codec has been ported to the Nintendo 64’s RSP vector coprocessor, which has 4 KB of data memory. The port targets stereo 44.1 kHz audio while using about 4% of processor time, according to the article. The motivation is that a five-minute stereo ADPCM track on the console took around 12 MB, while Opus was too slow to use during gameplay. The codec came from a Game Boy Advance demo, and the write-up explains nibble-based coefficient packing and the choice of 16-bit fixed point.

На Nintendo 64 пятиминутный стереотрек в ADPCM занимал около 12 МБ, а Opus на этой консоли слишком медленный для использования во время игры. Автор форматов QOI и QOA Доминик Шаблевски нашёл кодек ULC из демо для Game Boy Advance и перенёс его на векторный сопроцессор RSP с 4 КБ памяти данных. В статье разобраны упаковка коэффициентов по полубайтам, выбор 16-битной фиксированной точки и то, как Codex помогал писать ассемблер. Итог: стерео 44 100 Гц за 4% времени процессора и 5% времени RSP. Читать далее

Read full article → Compare