LINUX.ORG.RU

Теоретический вопрос по ALSA и ресемплингу.


0

3

Моя внешняя китайская USB-звуковуха поддерживает железно максимум 44100, но написанная на C++ ALSA-программка неожиданно смогла «открыть» звуковуху на 96000 и пропихнуть туда данные, взятые из .wav - файлика 96khz/16bit и я даже услышал песенку.

При этом 1core ЦП почти целиком нагружено и проводит всё время в ядре (вызовы ядра). Это, я так понимаю, ALSA открыла звуковуху на 44100/16 и втихую ресемплит данные? И делает она это «в пространстве» ядра, будучи модулем ядра? Так примерно всё?

Alsa состоит из нескольких частей. Ресемплинг делает alsa-lib, а значит программный ресемплинг делается в пространстве пользователя. В остальном все верно.

anonymous
()

Что-то загрузка подозрительно великовата, хотя все зависит от алгоритма ресэмплинга и какой-нибудь SINC может нагрузить прилично.

m0rph ★★★★★
()
Ответ на: комментарий от kiverattes

Ресемплинг звука не загрузит современный процессор на 100%. Это относительно легкая задача. У тебя либо ошибка в методе измерения и анализа загрузки системы, либо железо неэффективно работает.

fopen ★★
()
Ответ на: комментарий от fopen

Не правда ваша, вменяемый ресемплинг загрузит одно ведро какого-нибудь 2ггцового коре2, в моём случае у меня жрёт 41.1->192k почти 60%ведра, у меня 3.7ггц коре2+топпамять для этой платформы.

superhackkiller1997
()
Ответ на: комментарий от superhackkiller1997

41.1->192k
1997

Поди ещё из mp3 в лосслесс конвертишь?

anonymous
()
Ответ на: комментарий от superhackkiller1997

Не правда ваша, вменяемый ресемплинг загрузит одно ведро какого-нибудь 2ггцового коре2,

бредятина.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

Оббас Нуй (лидер африканскава гассу-дарства).

kiverattes ★☆
() автор топика
Ответ на: комментарий от dikiy

Ога, ради тебя снял разгон со своего 1.86ггцового соре2, ибо апгрейдил ведро - мёртваяговядина с рессемлингом грузит мне 80-90% ведра.

Сокс работает раз в 6-8быстрее, но это не реалтайм, да и отдельная тулза.

superhackkiller1997
()
Ответ на: комментарий от kiverattes

Я видел, как ты собаку ел на ресемплинге, да, ты знаешь толк в извращениях, но сейчас идет речь об альсе и загрузке ядра. Еще раз. Ресемплинг ядро не нагрузит, его в ядре нет. Определи, что грузит ядро. Посмотри количество прерываний в обоих случаях и сравни.

fopen ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.