Аудиокодек без потерь для встроенных устройств - PullRequest
4 голосов
/ 18 июля 2011

Я хочу передать стереофонический аудиопоток со скоростью 48K (что соответствует 768 Кбит на канал при 16-битных выборках) по радиоканалу и передать его в ЦАП с помощью микроконтроллера Cortex-M3.Хотя канал технически работает на 2 Мбит, диапазон быстро уменьшается со скоростью, и я хочу до некоторой степени оптимизировать его.

Существует ли какой-либо аудиокодек без потерь, который может работать на микроконтроллере с ~ 8 КБ ОЗУок.20 MIPS вычислительной мощности, 32-битный аппаратный множитель и без аппаратного делителя?Мне не нужна большая степень сжатия, но он должен обрабатывать потоковые ошибки правильно и без долгих пауз в воспроизведении.

Ответы [ 4 ]

3 голосов
/ 20 июля 2011

Xiph.org FLAC может быть встраиваемым - см. Раздел «Встроенный разработчик» в нижней части этой страницы .Это фиксированная точка, быстрая .с открытым исходным кодом, и довольно широко поддерживается.Я не пробовал, но я использовал встроенную версию их декодера Ogg Vorbis ( Tremor ) и обнаружил, что его довольно легко запустить и запустить.

1 голос
/ 18 июля 2011

Вместо или, может быть, а также с использованием сжатия звука, вам также следует рассмотреть возможность понижающей дискретизации до более низкой частоты дискретизации.

Вам также необходимо учитывать надежность вашего беспроводного соединения.Это также повлияет на общую пропускную способность беспроводной сети, так как вы можете взглянуть на методы исправления ошибок.

Обе эти проблемы зависят от качества требуемого звука.

Linux JACKПрограмма , я думаю, использует CELT Audio Codec (Lossy), на который вы можете захотеть посмотреть.

0 голосов
/ 13 октября 2016

просто выполните DPCM (для потерь) или ADPCM (для потерь).

около 25% степени сжатия (1 МБ PCM, сжатый в 250 КБ ADPCM).

0 голосов
/ 19 июля 2011

Взгляните на apt-x . Я предполагаю, что он предназначен именно для того, что вы создаете, и в соответствии с этот может быть запущен на Cortex M3.

...