Bbabo NET

Наука & Технологии Новини

FFmpeg ускорява HEVC декодирането на Apple M1 с 60%

Представители на FFmpeg съобщиха, че в резултат на активирането на функциите AArch64 NEON, скоростта на декодиране на HEVC на Apple M1 се е увеличила от 402 на 649 кадъра в секунда при резолюция 1080p. Това подобрение е друга малка и постепенна оптимизация в мащаб на проекта.

FFmpeg е отворен софтуерен проект, който включва набор от различни библиотеки и програми за работа с мултимедийни файлове. Просто казано, FFmpeg се използва по цялата планета, където трябва да прекодирате формати, да мащабирате видео или да добавите прости видео ефекти.

Материята обаче не се ограничава само до Земята. FFmpeg е популярен избор и за Марс. В допълнение към богатия арсенал от научно оборудване, марсоходът Perseverance, изстрелян през 2020 г., носи 19 камери и 2 микрофона за различни цели. Данните от тези сензори се предават на Земята чрез Deep Space Network със сравнително ниска скорост до 2 мегабита в секунда. Препоръчително е да не запушвате тесния междупланетен канал с „сурови“ файлове.

Обработката на данни на Марс се извършва от устройства Data Storage Unit. Има един DSU в марсохода, друг служи за предназначението си в модула за меко кацане. DSU не е персонализирана платка, а наличен в търговската мрежа компютър, произведен от CompuLab Ltd. В „сърцето“ му инсталираха Intel Atom E3845 (Bay Trail), четириядрен процесор с честота 1,91 GHz и го оборудваха с 8 GiB RAM, 8 GB индустриална флаш памет PSS4A111-8G и 480 GB твърдотелно устройство. Цялото това космическо богатство е свързано с дънната платка Compulab COMEX-IE38.

COMEX-IE38 модул. Compulab

DSU работят с Linux с необходимите драйвери за комуникация с устройства, а действителната обработка на данни се управлява от FFmpeg и други софтуерни пакети с отворен код. Nasovites добавиха само около 20 хиляди реда код за управление на този софтуер.

НАСА говори за полета на FFmpeg до Марс в научни доклади. Други понякога пренебрегват факта, че използват този софтуерен пакет. Според представители на FFmpeg има хиляди случаи, когато приложение или цял стартъп е изграден на базата на проект, без да се уточнява технологията „под капака“ и с различна степен на нарушение на лицензионните условия.

Hieudinh_

Например в началото на март Hieu Dinh показа приложението си CompressX. Съдейки по уебсайта на приложението, то е предназначено за офлайн компресиране на видеоклипове и снимки. В туит Дин въвежда транскодиране със загуба като компресия, което накара други микроблогъри да се смеят (1, 2, 3). Hieu по-късно призна, че това е просто още една обвиваща програма около FFmpeg и добави (не в по-ранната версия) споменаване на пакета на сайта.

FFmpeg продължава да се развива активно. Приложенията на проекта са написани на C и асемблер. Разбира се, не се говори за пренаписване на C++ или Rust, но езиковите стандарти се актуализират. През февруари тази година пощенският списък съобщи, че проектът се премества към C11 с перспектива да се премести към C17 в близко бъдеще. Публичните заглавки обаче ще останат съвместими с C99.

Прогресът на оптимизациите за различни архитектури също не спира. Понякога ефективността на оптимизациите е особено голяма. Например на 26 март проектът отчете значително увеличение на ефективността на HEVC декодиране на Apple M1.

Както е посочено в публикация в пощенски списък, липсващите инструкции AArch64 NEON са добавени към декодера за видео формат HEVC (известен също като H.265).

Някои от тези функции преди това изискваха инструкции от I8MM. Разширението I8MM е задължителна част от микроархитектурата Armv8.6-A, която захранва устройства като Apple M2 и AWS Graviton3. Няма поддръжка за I8MM, например в Apple M1 и Ampere Altra. Част от функционалността на декодера изискваше I8MM, а корекцията добави използването на подходящ заместител от голото разширение NEON.

Резултатът е увеличение на скоростта на декодиране на 1080p HEVC клип от 402 на 649 кадъра в секунда на Apple M1. Конкретното устройство, на което е измерено това увеличение, не е наименувано. Също така не е известно кога тази корекция ще бъде включена в новата версия на FFmpeg.

Apple вече не продава устройства с M1; само в търговските вериги може да има останали стари наличности. Това не е най-старата архитектура, която FFmpeg поддържа. Между другото все още се поддържа SuperH, RISC архитектурата от началото на деветдесетте години, върху която е изграден процесорът на игровата конзола Sega Dreamcast.

FFmpeg ускорява HEVC декодирането на Apple M1 с 60%