Термин

Motion estimation

Англ.: ME
Короткое определение

Поиск энкодером наилучше совпадающего блока в reference-кадре. Самый дорогой по вычислениям этап кодирования.

Motion estimation – поиск, который энкодер делает, чтобы выяснить где каждая часть текущего кадра "была" в предыдущем кадре. Для каждого блока пикселей (обычно от 4×4 до 64×64) энкодер прочёсывает близкие позиции в reference-кадре, находит наиболее похожий патч и записывает смещение как `motion-vector`. Это самый вычислительно дорогой этап кодирования – часто 50–80 % всего процессорного времени – и главный рычаг качества сжатия.

Почему этот этап сложный: качественный энкодер не просто проверяет пару очевидных позиций; он пробует десятки или сотни кандидатных смещений на каждый блок, иногда с sub-pixel-точностью (четверть или восьмая пикселя), чтобы найти лучшее совпадение. Для 1080p-кадра при 30 fps это миллионы сравнений в секунду. Быстрый preset в x264 может сделать quick diamond search вокруг начальной догадки; медленный – исчерпывающий поиск в широком радиусе. Медленный находит лучшие совпадения и уменьшает файл на 10–20 % ценой того, что кодирование занимает в 5–10 раз больше времени.

Практический вывод: motion estimation – это место, где «обналичивается» encoder preset (`x264 -preset slow`, `x265 -preset slower`, `SVT-AV1 -preset 4`). Медленные пресеты покупают качество и экономию полосы за счёт более тщательного поиска; быстрые пресеты экономят время кодирования, сворачивая его. Для VOD, где кодируете один раз, а раздаёте миллионам, медленные пресеты окупаются с лихвой. Для live-стримов, где каждый кадр должен закодироваться в realtime, обязательны быстрые пресеты, и в дело вступают аппаратные энкодеры.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.