Сжатие JPEG2000 без потерь для 12-бит кадров на Jetson Orin со скоростью 650 МПикс/сАвтор: Серженко Фёдор
Аппаратное решение Jetson Orin AGX от NVIDIA является весьма перспективным для обработки и сжатия изображений. Мы применяли это высокопроизводительное решение в различных автономных системах во множестве проектов в следующих областях: Приложения для кодирования JPEG2000 в реальном времени на Jetson Orin
Стоит отметить, что для таких приложений часто необходим именно алгоритм кодирования изображений без потерь. Обычно нам требуется сжимать 12-битные RAW (необработанные) кадры с монохромных, инфракрасных камер или камер Bayer. Окончательное преобразование RAW в RGB или RAW в оттенки серого может быть выполнено позже; самое главное - захватить и сжать входные необработанные кадры, используя алгоритм без потерь, причём это должно быть сделано в режиме реального времени. По данным ссылкам можно найти более подробную информацию о нашем подходе к тестированию и последних бенчмарках кодека JPEG2000 для кодирования и декодирования на видеокартах NVIDIA. Схема тестирования для NVIDIA Jetson Orin используется точно такая же.
![]()
Параметры сжатия JPEG2000 без потерь для RAW кадров
Эти тесты кодирования без потерь для этого конкретного изображения нужны, чтобы продемонстрировать уровень производительности, который может быть достигнут с помощью Jetson Orin AGX и нашей реализации на видеокарте алгоритма кодирования JPEG2000 без потерь. Поскольку степень сжатия изображений зависит от их содержимого, можно получить немного другие результаты для других изображений. Тем не менее, уровень производительности кодирования должен оставаться аналогичным. Коэффициент сжатия при кодировании с потерями (или визуально без потерь) для алгоритма JPEG2000 может быть намного выше, чем при точном сжатии без потерь. Поэтому мы рекомендуем протестировать различные параметры для достижения наилучшего коэффициента сжатия при приемлемом качестве изображения. Уменьшение коэффициента качества не только улучшает сжатие, но и повышает производительность как при кодировании, так и при декодировании. Наши тесты показывают результаты производительности для вышеуказанных изображений и параметров. Софт и железо для тестирования
Бннчмарки кодера JPEG2000 на NVIDIA Jetson Orin AGX для 12-бит 24-МПикс RAW кадра
Как видно, мы достигли производительности кодирования в формате JPEG2000 без потерь порядка 650 МПикс/сек для этого конкретного 12-битного изображения RAW в двухпоточном приложении. Это намного превышает требования к производительности сжатия без потерь в аналогичных проектах. Стоит отметить, что мы таким же образом можем использовать кодирование RAW кадров и по алгоритму JPEG2000 с потерями на Jetson Orin. Это решение является в некотором смысле более сложным, поскольку оно требует некоторой дополнительной предварительной обработки, но оно также имеет очень высокую производительность и значительно лучшую степень сжатия, хотя и за счёт некоторого ухудшения качества изображения из-за процесса кодирования с потерями. Этот компромисс следует рассматривать для каждой задачи отдельно. Для приложений, требующих сверхвысокой производительности в плане захвата и кодирования необработанных изображений, у нас также есть 12-битный алгоритм JPEG на CUDA, который примерно более чем в десять раз быстрее, чем кодировщик JPEG2000 на аналогичном желез. Для нашего тестового изображения в формате RAW мы добились частоты кадров около 230 кадров в секунду для 12-битного JPEG-кодирования на Jetson Orin AGX с качеством jpg 100 (что означает незначительное искажение качества). В этом случае степень сжатия примерно на 15% ниже, чем у JPEG2000, но она по-прежнему очень интересна. Перед применением этого алгоритма также есть возможность разделить каналы Bayer на четыре разные плоскости и кодировать их по отдельности. Это улучшает степень сжатия за счет небольшого снижения производительности. Существуют различные приложения, требующие высокой степени сжатия 12-битных изображений RAW с сенсоров машинного зрения SONY, Onsemi, Gpixel и др. Всё это можно сделать с помощью нашего кодека RawZipper на CUDA, который создан для эффективного и быстрого байеровского сжатия RAW с минимальными визуальными искажениями изображения. Присылайте нам ваши тестовые изображения с описанием задачи и мы пришлём наши варианты сжатия. |