来自 Kinect 相机的 RGB-D 视频压缩
Compression of RGB-D video from a Kinect camera
我需要通过网络从 Kinect 摄像头发送视频。我正在从以下两个 Kinect 源捕获视频:
- 2D 彩色视频 (RGB)。每像素 32 位。 640x480 30fps。
- 深度数据(D)。每像素 16 位,表示到最近物体的距离(以毫米为单位)。 640x480 30fps。
这相当于至少大约 53 MB/s 的带宽。
这就是为什么我需要在原始位置对两个视频源进行编码(压缩),然后在目标位置进行解码。 RGB-D 数据将由目标跟踪算法处理。
到目前为止,我发现许多论文都在讨论实现此任务的算法,例如,这篇论文:
低带宽 3D 视频的 RGB 和深度帧内交叉压缩
问题在于此类论文中描述的算法没有 public 访问实现。我知道,我可以自己实现它们,但它们使用了许多其他复杂的图像处理算法,我对这些算法(边缘检测、轮廓特征等)了解不足。
实际上我还找到了一些基于使用离散中值滤波器、delta(避免发送冗余数据)和 LZ4 压缩的 C++ 库:
http://thebytekitchen.com/2014/03/24/data-compression-for-the-kinect/
我的问题是:是否有更简单and/or更有效的压缩来自 Kinect 源的 RGB-D 数据的方法?
PS: 我正在用 C++ 编写代码。
在最近对该问题的搜索中,我发现了一篇描述使用 h264 视频编解码器压缩深度图像的论文。作者还提供基础软件:
- 论文:http://www2.informatik.uni-freiburg.de/~stachnis/pdf/nenci14iros.pdf
- 软件:http://www.ipb.uni-bonn.de/data-software/depth-streaming-using-h-264/
一个问题是 h264 会引入压缩瑕疵。为了最大限度地减少编解码器引入的错误,深度图像被分成多个通道,代表不同的距离范围。
我需要通过网络从 Kinect 摄像头发送视频。我正在从以下两个 Kinect 源捕获视频:
- 2D 彩色视频 (RGB)。每像素 32 位。 640x480 30fps。
- 深度数据(D)。每像素 16 位,表示到最近物体的距离(以毫米为单位)。 640x480 30fps。
这相当于至少大约 53 MB/s 的带宽。 这就是为什么我需要在原始位置对两个视频源进行编码(压缩),然后在目标位置进行解码。 RGB-D 数据将由目标跟踪算法处理。
到目前为止,我发现许多论文都在讨论实现此任务的算法,例如,这篇论文: 低带宽 3D 视频的 RGB 和深度帧内交叉压缩
问题在于此类论文中描述的算法没有 public 访问实现。我知道,我可以自己实现它们,但它们使用了许多其他复杂的图像处理算法,我对这些算法(边缘检测、轮廓特征等)了解不足。
实际上我还找到了一些基于使用离散中值滤波器、delta(避免发送冗余数据)和 LZ4 压缩的 C++ 库: http://thebytekitchen.com/2014/03/24/data-compression-for-the-kinect/
我的问题是:是否有更简单and/or更有效的压缩来自 Kinect 源的 RGB-D 数据的方法?
PS: 我正在用 C++ 编写代码。
在最近对该问题的搜索中,我发现了一篇描述使用 h264 视频编解码器压缩深度图像的论文。作者还提供基础软件:
- 论文:http://www2.informatik.uni-freiburg.de/~stachnis/pdf/nenci14iros.pdf
- 软件:http://www.ipb.uni-bonn.de/data-software/depth-streaming-using-h-264/
一个问题是 h264 会引入压缩瑕疵。为了最大限度地减少编解码器引入的错误,深度图像被分成多个通道,代表不同的距离范围。