The eternal problem of recording Kinect Pointcloud

I’m posting it just to know if someone faced this issue with a similar or completly different approach and eventually share some idea.

If you ever tried to record the Kinect V2 or Azure pointcloud you faced that this TOPs works on 32bit color mode and you cannot record 32bit in a movie file.

So Derivative gave us the PACK TOP that splits a single 32bit image in 4 8bit images and puts them on a single TOP that cab be recorded in 8 bit.
The recorded file can be “unpacked” to transform the 4 8bit images in a single 32bit image.

Obviously you’ll get a 4x resolution file and, if you want to record also the color source, you’ll get a 5x file size.
Any kind of compression will corrupt your data so you need to record on Animation or EXR codec, but they are very slow and maybe your FPSs will drop after a few seconds, just when TD begins to write data on disk.

This is what happens on all my PCs… Ok, I don’t think I have the fastest computers in the world, but this is what I have, so I have to find a solution.

I just built a new COMP, inspired by the Pack TOP, I started thinking I can get a good approximation with only 16 bit, that means less space and less computation.
This is what I’ve done:

  1. 16bit encoding instead 32 bit.
    It means I will get a 2x output image instead of 4x
  2. RGB or RGBA recording
    If I don’t need the A channel (both on pointcloud and color) I will get an even smaller file
  3. Optional color source incapsulation
  4. Record and Play functions
  5. Auto scale of pointcloud boundaries to take the most of the 16 bit resolution in recording and auto “de-scale” while playing
  6. Incapsulated DAT
    Values of scale and de-scale are stored in a DAT. This DAT is incapsulated on the final file (standard moviefileout mov or whatever) so the patch will automatically recall them and rescale the pointcloud.
    You can merge your own DAT to save any data (numbers and strings) and retrieve it when you load the saved file for playing.
  7. Crop and scale pointcloud functions.

At the moment I get animation files that are at least 1/2 size compared with 32bit packed and a fast encoding with almost no drop frames.

Maybe this solution will get useful for high bit movie recording, even if not related to Kinect or pointclouds.

3 Likes