10.08.2011Ультра быстрое сжатие серий изображений от высокоскоростных камер в JPEG на процессорах NVIDIAКомпания Фаствидео (Дубна, Моск. обл.), разработчик оборудования и программного обеспечения для скоростной видеосъёмки, представляет свою последнюю разработку - систему длительной видеозаписи на базе технологии CUDA для высокоскоростных камер Fastvideo. Данная задача возникла в контексте приложений для скоростных видеокамер, выпускаемых нашей компанией. Все наши скоростные видеокамеры работают по принципу онлайн передачи всего регистрируемого потока несжатых данных от камеры в кольцевой буфер оперативной памяти компьютера. Таким образом, в компьютер поступает очень большой поток данных, которые нужно быстро обработать и записать. Обычно такие потоки данных записывают либо в оперативную память компьютера, либо на RAID-массив или SSD. К сожалению, софт для CPU с обработкой таких потоков данных не справляется в принципе, поэтому для решения задач этого класса мы использовали видеокарты NVIDIA с технологией CUDA. В системах скоростной съёмки обычно используются монохромные видеокамеры, поскольку их чувствительность значительно выше, чем у цветных, поэтому мы решали задачу онлайн сжатия видеопотока именно от монохромных камер. Наша цель состояла в том, чтобы в онлайне успеть сделать сжатие, а полученный выходной поток записать на жёсткий диск компьютера. Мы выбрали алгоритм сжатия JPEG с потерями, потому что он может обеспечить быстроту и минимальные искажения при значительном коэффициенте сжатия, а также может быть эффективно распараллелен. Вопрос быстрого декодирования задач скоростной съёмки не критичен, поэтому декодирование можно делать на CPU стандартным образом. Конфигурация компьютера, видеокамеры, ОС и источника данныхДля тестирования программного обеспечения использовалась такую конфигурация компьютера:
Результаты для производительности алгоритма сжатия с потерямиМы реализовали возможность программного сжатия потока монохромных изображений в формат JPEG на графических картах NVIDIA с помощью технологии CUDA. В качестве источника входных данных использовались скоростные видеокамеры Fastvideo. Для всех используемых в тесте видеокамер мы смогли в онлайне сжать видеопотоки и записать их на жёсткий диск при использовании видеокарты GeForce GTX 580. Были получены следующие результаты для средней пропускной способности используемого алгоритма на разных видеокартах (сжатие по алгоритму Baseline JPEG с потерями, коэффициент сжатия 20, сжимаются отдельные кадры независимо друг от друга, время загрузки изображений и их выгрузки после сжатия включено в представленные результаты):
Таким образом, показана принципиальная возможность онлайн сжатия входного потока данных от скоростных видеокамер, причём для довольно широкого класса графических карт, в том числе бюджетных и мобильных. Такие решения позволят значительно увеличить длительность скоростной съёмки и дадут возможность записывать сжатый поток данных на жёсткий диск даже без использования RAID или SSD. Полученные на видеокарте GeForce GTX 580 результаты значительно превосходят пропускную способность скоростных видеокамер, использовавшихся в тестах. Это говорит о том, что есть широкие возможности для применения более сложных алгоритмов обработки данных от таких видеокамер. Стоит отметить, что полученный результат 1500 МБайт в секунду для видеокарты GeForce 580 GTX для сжатия монохромных изображений по алгоритму JPEG с потерями, превосходит по производительности все известные нам аппаратные решения по сжатию изображений на ПЛИС (FPGA). Сравнивая наше решение с аппаратными кодерами на ПЛИС, стоит отметить, что кроме более высокой производительности полученного нами решения, по сравнению с Verilog/VHDL, код на Си для CUDA намного более понятный и приспособленный для модификации и создания на его базе новых, более сложных систем обработки и сжатия изображений. Приложения скоростной съёмки для технологии CUDA
Как достичь лучших результатовСуществует ряд методов, с помощью которых мы расчитываем в дальнейшем получить увеличение производительности подобных систем:
Более подробные описания кодера JPEG для CUDA, программного обеспечения Fastvideo Lab и программно-аппаратных комплексов на базе технологии CUDA для систем высокоскоростной съёмки можно посмотреть на сайте www.fastvideo.ru |