Hacker News Digest

Тег: #multimedia

Постов: 1

FFmpeg Assembly Language Lessons (github.com)

FFmpeg/asm-lessons — репозиторий с уроками по ассемблеру для FFmpeg.
Цель: научиться писать высокопроизводительные рутины на x86-64, ARM и других архитектурах, ориентированные на мультимедиа-задачи.

Содержание (кратко):

  • Уроки: от базовых инструкций до векторных расширений (SSE/AVX, NEON).
  • Примеры: реализация IDCT, фильтров, цветового преобразования.
  • Тесты: юнит-тесты и бенчмарки для сравнения C vs asm.
  • CI: автоматическая проверка на x86-64 и ARM через GitHub Actions.

Как начать:

  1. Клонируйте репо.
  2. Установите nasm, yasm или llvm-mingw.
  3. Соберите пример: make lesson01.

Полезные ссылки:

by flykespice • 18 августа 2025 г. в 13:39 • 228 points

ОригиналHN

#ffmpeg#assembly#x86-64#arm#nasm#simd#vectorization#performance-optimization#multimedia#github

Комментарии (65)

  • Пользователи восхищаются масштабом FFmpeg и экономией вычислений даже от малейших улучшений.
  • Основной материал воспринимается как базовый курс по ассемблеру, а не как конкретные «перлы» оптимизации FFmpeg.
  • Спрашивают, как находить узкие места и стоит ли писать LLVM-IR вручную; большинство отвечает «нет», лучше использовать встроенные вектор-прагмы или писать ассемблер под каждую архитектуру.
  • Отмечают, что уроки не содержат нужной математики и не показывают, как запустить примеры в NASM, что затрудняет старт.
  • NASM-версии привязаны к x86-64 и активно используют макросы, что затрудняет перенос на другие ассемблеры.