FFmpeg Assembly Language Lessons 🔥 Горячее
FFmpeg/asm-lessons — репозиторий с уроками по ассемблеру для FFmpeg.
Цель: научиться писать высокопроизводительные рутины на x86-64, ARM и других архитектурах, ориентированные на мультимедиа-задачи.
Содержание (кратко):
- Уроки: от базовых инструкций до векторных расширений (SSE/AVX, NEON).
- Примеры: реализация IDCT, фильтров, цветового преобразования.
- Тесты: юнит-тесты и бенчмарки для сравнения C vs asm.
- CI: автоматическая проверка на x86-64 и ARM через GitHub Actions.
Как начать:
- Клонируйте репо.
- Установите
nasm
,yasm
илиllvm-mingw
. - Соберите пример:
make lesson01
.
Полезные ссылки:
Комментарии (82)
- Участники восхищаются масштабом FFmpeg и экономией вычислений даже от малейших улучшений.
- Некоторые ждали более глубокой связи с FFmpeg, а не «общего введения в ассемблер».
- Обсуждаются инструменты поиска узких мест (vtune, uprof) и целесообразность писать LLVM IR вручную — большинство считает, что нет.
- Поднимается вопрос переносимости: для каждой архитектуры пишут отдельную ручную реализацию, универсального кода нет.
- Просят добавить математические уроки прямо в репозиторий и критикуют чрезмерное использование макросов NASM.