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
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》