Даступны Sound Open Firmware 2.2, набор адкрытых прашывак да DSP-чыпаў

Апублікаваны выпуск праекта Sound Open Firmware 2.2 (SOF), першапачаткова створанага кампаніяй Intel для сыходу ад практыкі пастаўкі зачыненых прашывак для DSP-чыпаў, звязаных з апрацоўкай гуку. Пасля праект быў пераведзены пад крыло арганізацыі Linux Foundation і зараз распрацоўваецца з прыцягненнем супольнасці і пры ўдзеле кампаній AMD, Google і NXP. Праектам развіваецца SDK для спрашчэння распрацоўкі прашывак, гукавы драйвер для ядра Linux і набор гатовых прашывак для розных DSP-чыпаў, для якіх у тым ліку фармуюцца бінарныя зборкі, завераныя лічбавым подпісам. Код прашывак напісаны на мове Сі з асэмблернымі ўстаўкамі і распаўсюджваецца пад ліцэнзіяй BSD.

Дзякуючы модульнай структуры Sound Open Firmware можа быць партаваны на розныя архітэктуры DSP і апаратныя платформы. Напрыклад, сярод падтрымоўваных платформаў заяўлена падтрымка розных чыпаў Intel (Broadwell, Icelake, Tigerlake, Alderlake і да т.п.), Mediatek (mt8195), NXP (i.MX8*) і AMD (Renoir), камплектаваных DSP на базе архітэктур Xtensa HiFi 2, 3 і 4. У працэсе распрацоўкі можа прымяняцца спецыяльны эмулятар або QEMU. Выкарыстанне адкрытых прашывак для DSP дазваляе больш аператыўна выпраўляць і дыягнаставаць праблемы ў прашыўцы, а таксама дае карыстальнікам магчымасць самастойна адаптаваць прашыўкі для сваіх патрэб, уносіць спецыфічныя аптымізацыі і ствараць легкаважныя варыянты прашывак, якія змяшчаюць толькі неабходную ў прадукце функцыянальнасць.

Праектам прадастаўляецца фрэймворк для распрацоўкі, аптымізацыі і тэсціравання рашэнняў, звязаных з апрацоўкай гуку, а таксама са стварэннем драйвераў і праграм для ўзаемадзеяння з DSP. У склад уваходзяць рэалізацыі прашывак, інструментарый для тэсціравання прашывак, утыліты для пераўтварэння ELF-файлаў у вобразы прашывак, прыдатныя для ўстаноўкі на абсталяванне, адладкавыя інструменты, эмулятар DSP, эмулятар хост-платформы (на базе QEMU), інструменты для трасіроўкі прашывак, скрыпты на MATLAB/Octave для тонкай налады каэфіцыентаў для гукавых кампанентаў, прыкладанні для арганізацыі ўзаемадзеяння і абмену дадзенымі з прашыўкай, гатовыя прыклады тапалогій апрацоўкі гуку.

Даступны Sound Open Firmware 2.2, набор адкрытых прашывак да DSP-чыпаў
Даступны Sound Open Firmware 2.2, набор адкрытых прашывак да DSP-чыпаў

Праектам таксама развіваецца ўніверсальны драйвер, які можа прымяняцца з прыладамі, якія выкарыстоўваюць прашыўкі на базе Sound Open Firmware. Драйвер ужо ўваходзіць у асноўны склад ядра Linux, пачынальна з выпуску 5.2, і пастаўляецца пад падвойнай ліцэнзіяй – BSD і GPLv2. Драйвер адказвае за загрузку прашыўкі ў памяць DSP, загрузку гукавых тапалогій у DSP, арганізацыю працы гукавога прылады (адказвае за зварот да функцый DSP з прыкладанняў) і прадастаўленне кропак доступу прыкладанняў да гукавых дадзеных. Драйвер таксама дае механізм IPC для ўзаемадзеяння паміж хост-сістэмай і DSP, і пласт для звароту да апаратных магчымасцяў DSP праз тыпавы API. DSP c прашыўкай Sound Open Firmware выглядае для прыкладанняў як звычайная прылада ALSA, для кіравання якім можна выкарыстоўваць штатны праграмны інтэрфейс.

Даступны Sound Open Firmware 2.2, набор адкрытых прашывак да DSP-чыпаў

Ключавыя навіны ў Sound Open Firmware 2.2:

  • Кампанент для працы з вонкавымі бібліятэкамі кодэкаў перайменаваны з codec_adapter у module_adapter і прыведзены да адпаведнасці API модуляў апрацоўкі сігналаў, што дазволіць выкарыстоўваць код з Windows-апрацоўшчыкаў без яго змены.
  • Абвешчаны састарэлым API Frag, адмова ад якога дазволіў павысіць прадукцыйнасць кожнага кампанента прыкладна на 1 MCPS (мільён тактаў у секунду).
  • Дададзены API Frame, які выконвае папераджальнае вылічэнне памераў блокаў для апрацоўшчыкаў на базе інструкцый SIMD і без іх. Аптымізацыя дазволіла павялічыць прадукцыйнасць прыкладна на 0.25 MCPS.
  • Дададзены новы модуль змешвання з падтрымкай HiFi4 для скарачэння ці павелічэнні ліку гукавых каналаў у струмені.
  • Пашыраны магчымасці выкарыстання ў якасці асновы прашыўкі асяроддзя Zephyr RTOS замест XTOS. Ужыванне Zephyr дазваляе значна спрасціць і скараціць код прыкладанняў Sound Open Firmware. У новай версіі дададзена падтрымка родных для Zephyr API для вядзення логаў і занясенні затрымак. У наступным выпуску чакаецца поўная убудаваная падтрымка Zephyr.
  • Пашыраная магчымасць выкарыстання пратаколу IPC4 для захопу і прайграванні гуку на прыладах з АС Windows (падтрымка IPC4 дазваляе з Windows узаемадзейнічаць з DSP на базе прашывак Sound Open Firmware без ужывання спецыфічнага драйвера).

Крыніца: opennet.ru

Дадаць каментар