Build
cmake http://cmake.org/ is required to build the project across platforms.
create build directory
mkdir build
cd build
cmake
make file
cmake ../source -DCMAKE_BUILD_TYPE=Release
VS2019
cmake ../source -G "Visual Studio 16 2019" -A x64
VS2017
cmake ../source -G "Visual Studio 15 2017 Win64"
VS2015
cmake ../source -G "Visual Studio 14 2015 Win64"
VS2013
cmake ../source -G "Visual Studio 12 2013 Win64"
make
Linux
make
Windows
open the generated visual studio solution and build it
Run
Windows
To run encoder, the following command can be used:
avs-pcc-encoder.exe -c ../cfg/.../encode.cfg (-option)
To run decoder in Windows, the following commmand can be used:
avs-pcc-decoder.exe -c ../cfg/.../decode.cfg (-option)
Documentation of options is provided via the --help command line option
Linux
To run encoder, the following command can be used:
avs-pcc-encoder -c ../cfg/.../encode.cfg (-option)
To run decoder in Windows, the following commmand can be used:
avs-pcc-decoder -c ../cfg/.../decode.cfg (-option)
Documentation of options is provided via the --help command line option
sample configuration file
Comfiguration files
All command line parameters may be specified in a configuration file.
A set of configuration file templates compliant with the current Common Test Conditions
is provided in the cfg/directory.
To generate the configuration files, run the gen_cfg.py script:
avs-pcc-pcem/cfg/script$ python ./gen_cfg.py
encoder configuration
geom_only_flag : 0 # geometry-only coding mode. 1: code geometry without attributes, 0: code geometry and attributes
ascii_write_flag : 1 # recon ply write mode. 1: ascii, 0: binary
color_transform_flag : 1 # apply color transform method. 1: on, 0: off
geom_remove_dup_flag : 1 # manipulating duplicate points. 1: remove, 0: keep
geom_quant_step : 1 # geometry quantization step (>0)
attr_quant_step : 1 # attribute quantization step (>0, integer)
transform: : 1 # method to code attribute. 1: transform, 0: predict
axis_bias : 16 # axis bias parameter for reflectance (>0, integer)
metrics_enable : 1 # calculate metrics flag. 1: on, 0: off
symmetry : 1 # if calculate symmetry metrics
cal_lossless : 1 # if calculate lossless metrics. 1: on, 0 : off
cal_color : 1 # if calculate color metrics. 1: on, 0 : off
cal_reflectance : 1 # if calculate reflectance metrics. 1: on, 0 : off
duplicate_mode : 1 # process duplicated points. 1: average 0 : no process
multineighbour_mode : 1 # process same distance neighbours. 1: average 0 : no process
show_hausdorff : 1 # if show hausdorff and hausdorffPSNR. 1: on, 0: off
peakvalue : 2047 # peak value of Geometry PSNR(default = 0)
decoder configuration
ascii_write_flag : 1 # recon ply write mode. 1: ascii, 0: binary
transform_color : 0 # apply color transfor. 1: yes 2: no
Note that:
When PCL-PCRM is supposed to encode/decode multi-frames, the file name of input ply for encoder and bitstream file for decoder should be set in the following format
input : basename_input + start_number + ".ply"
In order to facilitate getting the file number, the last character of the basename_input should not be the number among '0'~'9'.
Moreover, the only requirement is that the start_number should be the first frame number wanted to be encoded or decoded.
The reconstructed files will be named as follow:
-1) Single frame (frames_to_be_coded <= 1):
recon :"xxx.ply" --> "xxx.ply"
bitstream :"yyy.bin" --> "yyy.bin"
-2) Multi-frames (frames_to_be_coded > 1):
recon :"xxx.ply" --> "xxx" + "-" + frame_number + ".ply"
bitstream :"yyy.bin" --> "yyy" + "-" + frame_number + ".bin"
where
frame_number = start_number + iteration_index,
with 0 <= iteration_index < frames_to_be_coded
Example
The following example encodes and decodes the point cloud data named 'pcl_sofa_vox10.ply',
making use of the configuration file cfg\cfg_predict\C4-losslessG-losslessA-ai\pcl_sofa_vox10\encoder(decoder).cfg,
and storing the intermediate results in the output directory output\.
Encode:
demo\pcl-avs-pcc-encoder.exe -c cfg\cfg_predict\C4-losslessG-losslessA-ai\pcl_sofa_vox10\encoder.cfg -i dataset\pcl_sofa_vox10.ply -b output\pcl_sofa_vox10.bin -r output\C4-losslessG-losslessA-ai_pcl_sofa_vox10_enc.ply -ftbc 1 -mdf output\pcl_sofa_vox10.txt >output\C4-losslessG-losslessA-ai_pcl_room_vox14_enc.log
Decode:
demo\pcl-avs-pcc-decoder.exe -c cfg\cfg_predict\C4-losslessG-losslessA-ai\pcl_sofa_vox10\decoder.cfg -b output\pcl_sofa_vox10.bin -r output\C4-losslessG-losslessA-ai_pcl_sofa_vox10_dec.ply -ftbc 1 -mdf output\pcl_sofa_vox10.txt >output\C4-losslessG-losslessA-ai_pcl_room_vox14_dec.log