Быстрое кодирование и декодирование изображений в формате JPEG имеет широкий спектр применений в приложениях, где требуется компрессия больших объёмов данных в реальном времени, или при работе с профессиональным оборудованием, которое способно генерировать огромные потоки изображений. Эта технология находит применение в системах видеосъёмки с высокой частотой кадров или с высоким разрешением, а также в задачах визуализации, включая работу с изображениями 4K и 8K в режиме реального времени. Поскольку формат JPEG по-прежнему очень распространён в Сети, то задачи быстрого кодирования, декодирования и обработки таких изображений очень важны для разнообразных веб-приложений, включая высоконагруженные социальные сети и каталоги фотографий.
Разработанный компанией «Фаствидео» сверхбыстрый кодек JPEG использует технологию CUDA компании NVIDIA для ускорения компрессии и декомпрессии изображений с помощью параллельных вычислений. При создании кодека была реализована и оптимизирована схема, в которой распараллелены абсолютно все стадии алгоритма JPEG, включая энтропийное кодирование и декодирование. А с помощью графических процессоров NVIDIA такое решение позволило добиться исключительно высокой производительности кодека, оставив позади существующие конкурентные продукты. Использование возможностей GPU привело к освобождению ресурсов центрального процессора для других задач и позволило добиться беспрецедентной производительности при компрессии и декомпрессии изображений.
В частности, на графическом процессоре NVIDIA GeForce GTX Titan, кодек JPEG позволяет получить скорость кодирования до 6 Гб в секунду для изображений, находящихся в оперативной памяти компьютера, что намного превышает пиковую производительность всех существующих многопоточных кодеков JPEG на базе стандартных процессоров, в том числе многоядерных. Такие значения скорости компрессии и декомпрессии пока недоступны и для аппаратных решений на базе ПЛИС (FPGA). Кодек JPEG от «Фаствидео» может сжать в 10 раз цветное изображение 4K с разрешением 3840×2160 пикселей всего за 6 миллисекунд.
Кроме задач кодирования и декодирования изображений, кодек JPEG может применяться и в смежных областях. Его можно использовать для решения задачи быстрого изменения размеров уже сжатых изображений. Для этого нужно сделать декомпрессию картинки, изменить размер и снова сжать изображение. На графическом процессоре это можно сделать очень быстро, поэтому такое решение является привлекательным для веб-приложений, активно работающих с фотографиями, которые обычно хранятся именно в формате JPEG. В этом случае не нужно заранее создавать и хранить несколько копий одной фотографии с разными разрешениями, а по запросу пользователя можно быстро создавать картинку требуемого размера из исходного изображения.
Комплект разработчика JPEG SDK для кодирования и декодирования изображений в формате JPEG предлагается для ОС Windows 7/8 и видеокарт NVIDIA серий 400, 500, 600 и 700. Этому критерию соответствуют видеокарты с архитектурой Fermi, Kepler и Titan. Демонстрационную версию кодека JPEG для видеокарт NVIDIA можно получить на сайте компании «Фаствидео». В ближайшее время ожидается релиз кодека JPEG и для Linux.