mic-rud / RABBIT-Transcoding

RABBIT: Live Transcoding of V-PCC Point Cloud Streams
Other
1 stars 2 forks source link

RABBIT: Live Transcoding of V-PCC Point Cloud Streams

Accompaning repository to the paper RABBIT: Live Transcoding of V-PCC Point Cloud Streams, presented at MMSys'23: 14th Conference on ACM Multimedia Systems.

The modification of the V-PCC codec in this repository allows to transcode bitstreams, encoded with V-PCC in the V3C bitstream format.

This repository is based on mpeg-tmc2. You can find detailed documentation on the V-PCC codec here. Configurations are designed for the 8i VFB v2 dataset.

Building

The repository was built and tested on Ubuntu 22.04 using gcc/g++-9.

Install libav dependencies:

    sudo apt-get install libavcodec-dev libavdevice-dev

You can run the installation script directly using

    ./build.sh

Verify installation

Verify the correctness of the build by running a full loop for transcoding. This will encode a pointcloud, transcode it, decode the output and compute the metrics of the bitstream.

    ./transcode.sh

Running

For running the transcoder, follow the steps described in transcode.sh.

Video Codec options

The following video codecs are currently implemented:

HM test model is used for Baseline comparison. This is the same codec as used for the Baseline comparison in the paper, using the full Decoder-Encoder loop. For usage, supply the

    --transcodeBaseline

flag. A sample can be found in transcode_HM.sh

Using libx265 is used as a faster software codec implementation. Use by not adding any additional flags to PCCAppTranscoder. A sample is found in transcode.sh.

Performing GPU-accelerated transcoding can be done using the

    --useCuda

flag. A sample is found in transcode_gpu.sh.