Суть оптимизации
В репозиторий FFmpeg (Git) 17 августа 2026 года был принят патч, значительно ускоряющий путь кодирования H.265/HEVC с использованием Vulkan. До этого момента HEVC-кодирование через Vulkan работало медленнее, чем H.264, из-за более «тяжелой» конфигурации кодировщика. Разработчики применили те же настройки тонкой подстройки (tuning), что и для H.264, чтобы выровнять производительность.
Технические детали
Ключевые изменения коснулись управления параметрами сессии кодирования. Основные исправления включали:
- Установку флага
ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS. - Принудительное задание минимального размера CU (Coding Unit) равным 16x16 при условии, что размер CTB (Coding Tree Block) >= 32. Ранее использовалось значение 8x8, что создавало лишнюю нагрузку.
- Исправление присвоения
max_transform_hierarchy_depth_inter. - Синхронизацию переопределенных полей при получении обратной связи SPS (Sequence Parameter Set), включая размеры CU/TB и иерархию трансформаций.
Результаты бенчмарков
Тестирование проводилось на тестовой последовательности testsrc2 в разрешении 1080p, качестве 1, с кодированием 1000 кадров. Сравнение производительности до и после слияния патча демонстрирует полное выравнивание скоростей HEVC и H.264:
| Кодек | Статус | Скорость (fps) |
|---|---|---|
| H.264 (HEVC Vulkan) | До оптимизации | ~200–317 |
| H.264 (H.264 Vulkan) | До оптимизации | Выше, чем у HEVC |
| H.265 (HEVC Vulkan) | После оптимизации | 289 / 325 / 358 |
| H.264 (H.264 Vulkan) | После оптимизации | 288 / 317 / 359 |
Почему это важно
Достижение паритета (parity) между H.265 и H.264 в Vulkan-пути кодирования устраняет одно из главных препятствий для массового использования HEVC в реальном времени. Теперь пользователи могут кодировать видео в более эффективном формате H.265 без потери производительности по сравнению с устаревающим H.264, что критично для стриминга, записи игр и обработки видео на GPU-ускоренных системах.
Источник: Phoronix ↗
