Как стать автором
Обновить

В FFmpeg ускорили декодинг HEVC на Apple M1 на 60 %

Время на прочтение3 мин
Количество просмотров7.6K
Представители FFmpeg отчитались, что в результате задействования функций AArch64 NEON скорость декодинга HEVC на Apple M1 выросла с 402 до 649 кадров в секунду для разрешения 1080p. Это улучшение — ещё одна мелкая и инкрементальная оптимизация в масштабе проекта.

FFmpeg — проект открытого программного обеспечения, который включает в себя набор разнообразных библиотек и программ для работы с мультимедийными файлами. Говоря проще, FFmpeg используют по всей планете везде, где нужно транскодировать форматы, отмасштабировать видеоролик или добавить простые видеоэффекты.

Впрочем, дело не ограничивается Землёй. FFmpeg — популярный выбор в том числе для Марса. В дополнение к богатому арсеналу научного оборудования на запущенном в 2020 году марсоходе «Персеверанс» для различных целей установлены 19 камер и 2 микрофона. Данные с этих датчиков передаются на Землю по каналу Deep Space Network с относительно небольшой скоростью до 2 мегабит в секунду. Желательно не забивать узкий межпланетный канал «сырыми» файлами.

Обработкой данных на Марсе занимаются устройства Data Storage Unit. Один DSU есть в марсоходе, ещё один отработал своё в модуле мягкой посадки. DSU — не специализированная плата, а коммерчески доступный компьютер производства CompuLab Ltd. В его «сердце» поставили Intel Atom E3845 (Bay Trail), четырёхъядерный процессор с частотой работы 1,91 ГГц, и оснастили 8 ГиБ ОЗУ, 8 ГБ промышленной флэш-памяти PSS4A111-8G и твердотельным накопителем на 480 ГБ. Всё это космическое богатство подключено к материнской плате Compulab COMEX-IE38.


Модуль COMEX-IE38. Compulab

DSU работают под управлением Linux с нужными драйверами для общения с устройствами, а собственно обработкой данных занимается FFmpeg и другие пакеты открытого программного обеспечения. Насовцы лишь дописали около 20 тыс. строчек кода для управления этим софтом.

О полёте FFmpeg на Марс НАСА рассказывает в научных докладах. Другие факт использования этого программного пакета иногда замалчивают. Как утверждают представители FFmpeg, есть тысячи случаев, когда на основе проекта выстраивается приложение или целый стартап без указания технологии «под капотом» и с различными степенями нарушения условий лицензирования.


hieudinh_

К примеру, в начале марта Хьеу Динь [Hieu Dinh] показал своё приложение CompressX. Если судить по сайту приложения, оно предназначено для офлайнового сжатия видео и картинок. В твите Динь представил транскодинг с потерями как сжатие, чем рассмешил других микроблогеров (1, 2, 3). Позднее Хьеу признался, что это всего лишь очередная программа-обёртка вокруг FFmpeg, и добавил (нет в более ранней версии) упоминание пакета на сайт.

FFmpeg продолжает активно развиваться. Приложения проекта написаны на C и языке ассемблера. Конечно, речи о переписывании на C++ или Rust не идёт, но стандарты языка обновляют. В феврале этого года в списке рассылки сообщалось, что проект переходит на C11 с перспективой в ближайшем будущем переехать на C17. Впрочем, публичные заголовки останутся совместимыми с C99.

Ход оптимизаций для различных архитектур тоже не останавливается. Иногда эффективность улучшений особенно велика́. К примеру, 26 марта проект сообщил о значительном росте эффективности декодирования HEVC на Apple M1.

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

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

Результат — повышение скорости декодинга клипа в HEVC разрешением 1080p с 402 до 649 кадров в секунду на Apple M1. Конкретное устройство, на котором замеряли такой прирост, не названо. Также неизвестно, когда этот патч войдёт в новую версию FFmpeg.

Apple больше не продаёт устройства с M1, лишь в торговых сетях могли остаться старые запасы. Это далеко не самая пожилая архитектура, которую поддерживает FFmpeg. Среди прочих до сих пор поддерживается SuperH, RISC-архитектура начала девяностых, на которой был построен процессор игровой приставки Sega Dreamcast.
Теги:
Хабы:
Всего голосов 16: ↑16 и ↓0+16
Комментарии10

Другие новости