Войти
ПрограммированиеФорумЗвук

Минимальный код mp3 декодера (2 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2
#15
17:22, 1 окт. 2012

Самый маленький, который мне удалось создать из какого-то древнего mpg123. Размер экзешника получился 40 килобайт.
Микро MP3 декодер - в архиве сорцы, экзешник и тестовая эмптришка.
на удивление качественный декодер, кстати. Нормально жуёт все битрейты и VBR, не свистит, не хрипит.
Но для демосценки наверное великоват :)


#16
18:03, 1 окт. 2012
Не, что-то вы про демосцену не в ту сторону думаете, какой минимализм с mp3? Если бы он сам его генерировал, то да.
#17
18:23, 1 окт. 2012

>Размер экзешника получился 40 килобайт.
У меня stb_vorbis (немного переделанный) даёт 22 КБ. И то это не предел, потому что туда вошло много лишнего от моего движка. Если всё почистить, то в 15 КБ можно уместить, думаю.

>Константные таблицы хаффмана в коде ffmpeg и minimp3, занимают порядка 4кб. Существует ли возможность расчитать их программно или же это какая-то внутренняя магия формата?
В stb_vorbis тоже была какая-то таблица. Случайно не Хаффмана? Я при его переделывании вывел формулу и стал считать вручную, избавившись от этой таблицы.

#18
13:03, 2 окт. 2012

XProger
libmad смотрел? Может что оттуда подчеркнешь.

#19
13:30, 2 окт. 2012

Andrey
Спасибо.

Ещё нашёл описание и пример IMA ADPCM енкодера/декодера. 3 мб mp3 может ужать в аналогичного размера 16 bpp 22050 hz mono PCM. Очень шустрый и простой алгоритм, особенно если жалко терять производительность на iOS или Android.

#20
17:37, 2 окт. 2012

libmad мне кстати не понравился. Насколько я помню он плохо работает с VBR, свистит на нестандартных частотах дискертизации, типа 48 килогерц, ну и размер у него существенно больше.

Страницы: 1 2
ПрограммированиеФорумЗвук

Тема в архиве.