4

Мне нужно отправить видео с камеры Kinect через сеть. Я видеосъемка из следующих двух источников Kinect:Сжатие видео RGB-D с камеры Kinect

  1. 2D видео цвета (RGB ). 32 бит на пиксель. 640x480 со скоростью 30 кадров в секунду.
  2. Данные глубины (D). 16 бит на пиксель, представляющий расстояние до ближайшего объекта в мм. 640x480 со скоростью 30 кадров в секунду.

Это составляет полосу пропускания не менее примерно 53 МБ/с. Вот почему мне нужно кодировать (сжимать) оба источника видео в начале координат и затем декодировать в цель. Данные RGB-D будут обрабатываться алгоритмом отслеживания объектов в целевом объекте.

До сих пор я нашел много работ обсуждали алгоритмы для выполнения этой задачи, как, например, это одна: RGB and depth intra-frame Cross-Compression for low bandwidth 3D video

Проблема заключается в том, что алгоритмы, описанные в этих работах не имеют реализации общественного доступа. Я знаю, я мог бы реализовать их сам, но они используют многие другие сложные алгоритмы обработки изображений. Я не располагаю достаточными знаниями о (обнаружение краев, характеристика контура ...).

я на самом деле также нашел некоторые C++ библиотеки, основанные на использовании дискретного медианного фильтра, дельта (во избежание отправки избыточных данных), а также сжатие LZ4: http://thebytekitchen.com/2014/03/24/data-compression-for-the-kinect/

Мой вопрос: есть более простой и/или более эффективный способ сжатия данных RGB-D из источника Kinect?

PS: Я кодирую на C++.

ответ

1

В недавнем поиске по проблеме я нашел документ, описывающий сжатие изображений глубины с использованием видеокодека h264. Авторы также обеспечивают базовое программное обеспечение:

Проблема в том, что h264 может ввести артефакты сжатия. Чтобы минимизировать ошибки, введенные кодеком, изображение глубины разбивается на несколько каналов, которые представляют разные диапазоны расстояний.