Анализ причин задержки обработки звука в Linux и Android

20 апреля 2015 года

Разработчики звукового движка Superpowered подробно проанализировали (Архивная копия от 8 ноября 2020 на Wayback Machine) причины возникновения десятимиллисекундной задержки при прохождении звуковых данных от оборудования до приложения на платформе Android. Оказалось, что причиной задержки является дискретный характер работы подсистемы ALSA, из-за чего половина (5.3 мс) из наблюдаемой 13 мс задержки возникает в драйвере ALSA, а остальную половину вносит медиасервер Audio Flinger, который вынужден обрабатывать данные порциями. На оцифровку и передачу данных тратится по 1 миллисекунде.

Задержка в ALSA и Audio Flinger вызвана тем, что данные компоненты оперируют фиксированными блоками, включающими данные о 480 звуковых выборках (48000 Hz/100). Информация обрабатывается порциями и передаётся только после заполнения блока, на который тратится примерно 10 мс. В то время как драйвером заполняется очередной блок, ранее заполненный блок целиком обрабатывается звуковым стеком. Для обычных пользователей задержка в приблизительно десять миллисекунд незаметна, но она может представлять проблему для профессиональных звуковых приложений и VOIP-систем, а также при наложении звуковых эффектов в играх и 3D-шлемах.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Анализ причин задержки обработки звука в Linux и Android», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.