Mercury Playback Engine
Mercury Playback Engine (также известный как Adobe Mercury Playback Engine) — это программно-аппаратный движок рендеринга и воспроизведения видео, разработанный компанией Adobe Inc. (организация признана иностранным агентом в РФ) и впервые представленный в 2010 году в составе пакета Adobe Creative Suite 5 (CS5). Движок предназначен для ускорения обработки видеоматериалов в программах Adobe Premiere Pro, Adobe After Effects, Adobe Media Encoder и других продуктах линейки Adobe Video. Основная функция Mercury Playback Engine — обеспечение плавного воспроизведения, редактирования и экспорта видео в реальном времени без необходимости предварительного рендеринга, что достигается за счёт использования вычислительных мощностей центрального процессора (CPU) и графического процессора (GPU).
История
Разработка Mercury Playback Engine началась в середине 2000-х годов как ответ на растущие требования к производительности при работе с видео высокого разрешения (HD, 2K, 4K). До появления этого движка пользователи Adobe Premiere Pro сталкивались с необходимостью длительного предварительного рендеринга для воспроизведения сложных проектов, что замедляло рабочий процесс.
Версия Mercury Playback Engine была впервые представлена 12 апреля 2010 года вместе с выпуском Adobe Creative Suite 5. На момент запуска движок поддерживал только 64-разрядные операционные системы Windows и macOS, что позволяло использовать более 4 ГБ оперативной памяти, недоступной для 32-разрядных приложений. Первоначально Mercury Playback Engine работал исключительно на CPU, но уже в 2011 году с выходом Adobe Creative Suite 5.5 была добавлена поддержка GPU-ускорения через технологии CUDA (NVIDIA) и OpenCL (AMD и Intel).
В последующих версиях Adobe Premiere Pro и After Effects Mercury Playback Engine постоянно совершенствовался. В 2013 году с выходом Creative Cloud движок получил поддержку аппаратного декодирования и кодирования видео H.264 и H.265 (HEVC) с использованием встроенных в GPU блоков (NVENC/NVDEC у NVIDIA, VCE/VCN у AMD, Quick Sync у Intel). В 2017 году была добавлена поддержка технологии Metal от Apple для macOS, что повысило производительность на устройствах с процессорами Apple Silicon. В 2020 году Mercury Playback Engine начал использовать машинное обучение для оптимизации обработки эффектов, а в 2023 году — для автоматического выбора оптимального профиля рендеринга в зависимости от типа проекта.
Архитектура и принцип работы
Mercury Playback Engine представляет собой многопоточный движок, который распределяет задачи между ядрами CPU и ядрами GPU. Архитектура включает несколько ключевых компонентов:
Планировщик задач (Task Scheduler)
Планировщик анализирует текущий кадр видео, определяет последовательность операций (декодирование, цветокоррекция, наложение эффектов, композитинг, кодирование) и распределяет их между доступными вычислительными ресурсами. Приоритет отдаётся задачам, которые могут быть выполнены параллельно, например, обработка разных частей одного кадра или нескольких кадров одновременно.
Декодировщик и кодировщик
Mercury Playback Engine использует аппаратные декодеры и кодеры, встроенные в GPU, для работы с популярными кодеками (H.264, H.265, ProRes, DNxHD, RED RAW). При отсутствии аппаратной поддержки движок переключается на программное декодирование через CPU. В версии 2022 года была добавлена поддержка декодирования AV1 на GPU, поддерживающих этот кодек (например, NVIDIA GeForce RTX 40-й серии).
Рендеринг эффектов
Большинство видеоэффектов (размытие, цветокоррекция, наложение текста, стабилизация) обрабатываются на GPU, что позволяет добиться производительности в десятки раз выше по сравнению с CPU-рендерингом. Для эффектов, не поддерживающих GPU-ускорение (например, некоторых сторонних плагинов), используется CPU.
Управление памятью
Движок использует собственную систему управления памятью, которая кэширует обработанные кадры в оперативной памяти и на диске (кэш-файлы). Это позволяет при повторном воспроизведении того же участка временной шкалы не пересчитывать эффекты заново. Размер кэша настраивается пользователем в параметрах программы.
Режимы работы
Mercury Playback Engine может работать в двух основных режимах, которые выбираются в настройках Adobe Premiere Pro или After Effects:
Режим Mercury Playback Engine (CPU)
Используется только центральный процессор для всех вычислений. Этот режим рекомендуется для систем без дискретного GPU или с устаревшими видеокартами, не поддерживающими CUDA, OpenCL или Metal. Производительность в этом режиме ограничена тактовой частотой и количеством ядер CPU.
Режим Mercury Playback Engine (GPU Accelerated)
Включает ускорение через графический процессор. Поддерживаются технологии:
- CUDA (NVIDIA) — используется на видеокартах NVIDIA GeForce, Quadro и RTX. Обеспечивает наилучшую производительность в большинстве сценариев.
- OpenCL (AMD, Intel) — применяется на видеокартах AMD Radeon и встроенной графике Intel.
- Metal (Apple) — используется на устройствах macOS, включая компьютеры с процессорами Apple Silicon (M1, M2, M3 и их модификации).
В этом режиме движок автоматически определяет, какие задачи можно выполнить на GPU, а какие — на CPU. При недостатке видеопамяти (VRAM) движок может переключить часть задач на CPU, что снижает производительность, но предотвращает сбои.
Поддерживаемые форматы и кодеки
Mercury Playback Engine поддерживает широкий спектр видеоформатов и кодеков, включая:
- Стандартные форматы: MP4, MOV, AVI, MXF, MTS, M2TS.
- Кодеки: H.264 (AVC), H.265 (HEVC), ProRes (Apple), DNxHD/DNxHR (Avid), CineForm, RED RAW, Blackmagic RAW, ARRIRAW, Sony XAVC, Panasonic AVC-Intra, Canon Cinema RAW Light.
- Аудиоформаты: WAV, MP3, AAC, FLAC, AIFF.
- Изображения: JPEG, PNG, TIFF, BMP, OpenEXR, DPX.
Движок поддерживает аппаратное ускорение для декодирования и кодирования H.264 и H.265 на GPU, а также для ProRes на устройствах Apple Silicon. Для RED RAW и Blackmagic RAW используется частичное аппаратное ускорение на GPU.
Применение
Mercury Playback Engine используется в следующих программах Adobe:
- Adobe Premiere Pro — основной продукт для нелинейного видеомонтажа. Движок обеспечивает воспроизведение многодорожечных проектов с эффектами, переходами и цветокоррекцией в реальном времени.
- Adobe After Effects — программа для создания анимации, визуальных эффектов и композитинга. Mercury Playback Engine ускоряет предварительный просмотр и рендеринг композиций.
- Adobe Media Encoder — утилита для пакетного экспорта видео. Движок позволяет использовать GPU-ускорение при кодировании в финальный формат.
- Adobe Audition — аудиоредактор, в котором Mercury Playback Engine используется для обработки многодорожечных аудиопроектов (с версии 2021 года).
Критика и ограничения
Несмотря на широкое распространение, Mercury Playback Engine имеет ряд недостатков:
- Зависимость от оборудования: для полноценной работы требуется мощный GPU с достаточным объёмом видеопамяти (рекомендуется от 4 ГБ VRAM для 4K-проектов, от 8 ГБ для 6K/8K). На слабых видеокартах производительность может быть ниже, чем в режиме CPU, из-за накладных расходов на передачу данных между CPU и GPU.
- Совместимость с кодеками: не все кодеки поддерживают аппаратное ускорение. Например, декодирование AV1 на GPU доступно только на видеокартах NVIDIA GeForce RTX 40-й серии и AMD Radeon RX 7000-й серии. На старых GPU AV1 декодируется программно, что снижает производительность.
- Проблемы с памятью: при работе с проектами высокой чёткости (8K, 12K) или большим количеством слоёв может возникнуть нехватка видеопамяти, что приводит к снижению производительности или ошибкам. Adobe рекомендует использовать GPU с 8 ГБ VRAM для 4K и 16 ГБ для 8K.
- Ограничения в многопоточности: хотя движок использует многопоточность, некоторые задачи (например, последовательная обработка кадров в некоторых эффектах) не могут быть распараллелены, что ограничивает прирост производительности на многоядерных CPU.
- Закрытость технологии: Mercury Playback Engine является проприетарным решением Adobe, что ограничивает возможности сторонних разработчиков по оптимизации своих плагинов под его архитектуру.
Интересные факты
- Название «Mercury» (Меркурий) было выбрано в честь римского бога торговли, путешествий и скорости, что отражает основную цель движка — ускорение рабочего процесса.
- Первая версия Mercury Playback Engine поддерживала только 64-разрядные системы, что стало прорывом для индустрии видеомонтажа, где до этого доминировали 32-разрядные приложения с ограничением памяти в 4 ГБ.
- В 2011 году компания Adobe выпустила обновление, которое позволило Mercury Playback Engine работать на GPU с поддержкой OpenCL, что сделало ускорение доступным для пользователей AMD и Intel.
- В 2023 году в Mercury Playback Engine была добавлена функция автоматического выбора профиля рендеринга на основе анализа содержимого проекта: для простых проектов (например, монтаж интервью) используется более быстрый профиль, для сложных (многослойный композитинг) — более точный.
- Движок используется не только в настольных версиях Adobe Premiere Pro, но и в облачных сервисах Adobe, таких как Adobe Premiere Rush и Adobe Express, где он работает на серверах с GPU NVIDIA Tesla.
Источники
- Adobe Inc. «Adobe Mercury Playback Engine: Technical Overview». Adobe Developer Documentation, 2023.
- Adobe Inc. «System requirements for Adobe Premiere Pro». Adobe Help Center, 2024.
- Adobe Inc. «GPU acceleration in Adobe Premiere Pro and After Effects». Adobe Support, 2023.
- Adobe Inc. «Mercury Playback Engine: Performance and Optimization Guide». Adobe Creative Cloud, 2022.
- Adobe Inc. «What’s new in Adobe Premiere Pro 2023». Adobe Blog, 2023.
- Adobe Inc. «Mercury Playback Engine: History and Evolution». Adobe Video Blog, 2021.
- NVIDIA Corporation. «CUDA-accelerated Adobe Mercury Playback Engine». NVIDIA Developer Zone, 2022.
- AMD Inc. «OpenCL support in Adobe Mercury Playback Engine». AMD Developer Resources, 2021.
- Apple Inc. «Metal support in Adobe Mercury Playback Engine». Apple Developer Documentation, 2023.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →