Термин
Субпиксель
Дробная позиция между двумя точками пиксельной сетки; важна для motion estimation (quarter-pel, eighth-pel) и рендеринга шрифтов.
Subpixel – дробная позиция между пикселями, точка, которая не попадает ровно в пиксель сетки, а оказывается где-то между. Концепция важна, потому что реальные вещи не удобно «сидят» на границах пикселей. Движущийся автомобиль смещается между кадрами на 3.25 пикселя, а не на 3 или 4. Напечатанный символ на дисплее высокого разрешения нужно нарисовать в анти-алиасированной субпиксельной позиции, чтобы он выглядел гладко. Кодеки и системы рендеринга работают с дробными позициями через интерполяцию.
В кодировании видео конкретно субпиксели важны для `motion-estimation`. Когда энкодер ищет совпадающий патч в предыдущем кадре, он проверяет не только целые смещения, но и дробные – вроде «3.25 пикселя вправо, 1.75 вниз». Энкодер синтезирует эти дробные позиции через интерполяционные фильтры, находит лучшее совпадение и записывает дробное смещение в motion vector. Результат – драматически более плавное кодирование медленных камерных панорам и мягкого движения. H.264 использует quarter-pixel точность (шаги 1/4 пикселя), HEVC – то же, AV1 для некоторых размеров блоков идёт до eighth-pixel, у VVC точности переключаемые.
Для продуктовой команды subpixel motion estimation – невидимая сантехника, но именно она причина того, что медленные tracking-кадры и плавные панорамы сжимаются намного лучше, чем «должны бы». Без субпиксельной точности любая медленная панорама вынуждала бы энкодер переключаться между целочисленными аппроксимациями от кадра к кадру, давая видимые дрожащие границы и раздутый bitrate. Субпиксельная точность – также то, где живут современные ИИ-видео-upscaler'ы и интерполяторы кадров: они работают в субпиксельных позициях, чтобы синтезировать кадры, которых не было в исходной съёмке.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.