Конвейер изображений или видеоконвейер — это набор компонентов, обычно используемых между источником изображения (например, камерой, сканером или движком рендеринга в компьютерной игре) и рендерером изображений (например, телевизором, экраном компьютера, принтером компьютера или экраном кинотеатра) или для выполнения любой промежуточной цифровой обработки изображений, состоящей из двух или более отдельных блоков обработки. Конвейер изображений/видео может быть реализован в виде компьютерного программного обеспечения , в цифровом сигнальном процессоре , на ПЛИС или в виде фиксированной функции ASIC . Кроме того, для выполнения многих из тех же функций могут использоваться аналоговые схемы .
Типичные компоненты включают в себя коррекцию датчика изображения (включая дебайеризацию или применение фильтра Байера ), шумоподавление , масштабирование изображения , гамма-коррекцию , улучшение изображения, преобразование цветового пространства (между форматами, такими как RGB , YUV или YCbCr ), субдискретизацию цветности , преобразование частоты кадров , сжатие изображения / сжатие видео (например, JPEG ) и хранение / передачу данных на компьютере .
Типичными целями конвейера обработки изображений могут быть получение конечных результатов, приятных на ощупь, колориметрическая точность, высокая степень гибкости, низкая стоимость/низкая загрузка ЦП/длительное время работы от аккумулятора или сокращение пропускной способности / размера файла .
Некоторые функции могут быть алгоритмически линейными. Математически эти элементы могут быть соединены в любом порядке без изменения конечного результата. Поскольку цифровые компьютеры используют конечное приближение к численным вычислениям, на практике это неверно. Другие элементы могут быть нелинейными или зависящими от времени. В обоих случаях часто существует одна или несколько последовательностей компонентов, которые имеют смысл для оптимальной точности и минимальной стоимости оборудования/загрузки ЦП. [1]