- 31 Oct, 2018 23 commits
-
-
This commit provides an m-ary entropy coder based on a fixed-size dictionary with periodic updates, a cache of recently used symbols (updated using an LRU eviction policy), and a fallback direct binary coding of any unhandled symbols. NB: the proposed version used a context with a halving period (max_count) of 64 symbols. However, this conflicts with another adoption (512 symbols), and a wholesale replacement of the arithmetic codec and context model. To resolve the conflict, the existing halving period (128) is used.
-
David Flynn authored
This commit provides an encapsulated interface to the fast update option of the o3dgc context models with a statistic halving period of 128 symbols (max_count).
-
David Flynn authored
This commit prepares for the introduction of selectable bitwise and bytewise occupancy coding methods.
-
This commit uses a direct intersection check between the trisoup triangles and point cloud unit vectors. This avoids the need to upsample the triangles with dense sampling and then performing voxelisation.
-
This commit integrates a c++ trisoup codec, replacing the previous matlab implementation. The provided code has been reworked to avoid duplicating code, dead code, and operate with the current HLS.
-
When trisoup was completely independent, trisoup handled lossless geometry coding by using a leaf size of 1 and no triangles. This commit replaces that mode with the better performing octree geometry coder.
-
David Flynn authored
-
David Flynn authored
-
David Flynn authored
-
David Flynn authored
This commit splits the handling of the geometry brick header and octree geometry coding. The encoder/decoder classes now take care of coding the header, while the geometry coder handles the geometry coding itself.
-
David Flynn authored
This commit prepares for the possibility that geometry coding itself is lossy. Instead of performing recolouring just after input quantisation, it is deferred until after geometry processing. The recolouring functions are updated to handle differences in pointcloud scales rather than requiring the target pointcloud to be scaled identically to the source.
-
David Flynn authored
This commit replaces some repetitive code with a loop.
-
David Flynn authored
This commit removes unnecessary include directives.
-
David Flynn authored
This commit moves method definitions out of a header file into a separate compilation unit.
-
David Flynn authored
This commit moves various constants from PCCTMC3Common.h to a new constants.h. Hard coded values of constants have been replaced with their symbolic name.
-
David Flynn authored
This commit moves method definitions out of a header file into a separate compilation unit.
-
David Flynn authored
This commit refactors the storage and passing of entropy contexts in the geometry octree coder. An encapsulating class with all entropy coding methods is used to store the context state.
-
David Flynn authored
The geometry coder is quite large, especially with trisoup and has no benefit to being a header only implementation. This commit moves the geometry octree coder out of the header files and into geometry_octree_{en,de}coder.cpp.
-
David Flynn authored
This reduces confusion when adding a unique_ptr to the node structure.
-
David Flynn authored
Sometimes it is useful to encode geometry without attributes. However, the common test condition configurations all enable attribute coding. In order to avoid rewriting the configuration files, the "disableAttributeCoding" option configures the encoder as if no attributes are specified.
-
David Flynn authored
This commit adds configuration data for new cat1 and cat3 sequences: cat1, voxelised frames: boxer_viewdep_vox12 longdress_viewdep_vox12 loot_viewdep_vox12 redandblack_viewdep_vox12 soldier_viewdep_vox12 thaidancer_viewdep_vox12 cat3, LiDaR sqeuences: qnxadas-junction-approach: 74 frames qnxadas-junction-exit: 74 frames qnxadas-motorway-join: 500 frames qnxadas-navigating-bends: 300 frames
-
David Flynn authored
This commit fixes: - incorrect parsing of uint8 as uint16 - incorrect address-of calculation when parsing uint16
-
David Flynn authored
-
- 20 Oct, 2018 2 commits
-
-
David Flynn authored
gen-cfg.sh processes each ctc yaml file in turn, which was advantageous when the ctc yaml files contained multiple conflicting definitions for a test condition (eg, one defines *-lossy-attrs for colour, and another defines *-lossy-attrs for reflectance). In such cases, merging the two yaml files together is not possible. However, this does prevent having a single yaml file that modifies the parameters for multiple test conditions. (Eg, adding sequences to all ctc test conditions).
-
David Flynn authored
In order to allow extra config files to override those hard-coded in the gen-cfg.sh script, they need to be specified at the end.
-
- 05 Sep, 2018 3 commits
-
-
David Flynn authored
-
David Flynn authored
Reading and writing binary ply files is significantly faster than going via formatted I/O. This commit adds the --outputBinaryPly=1|0 option to select writing either binary or ascii ply files.
-
David Flynn authored
-
- 03 Sep, 2018 12 commits
-
-
David Flynn authored
-
David Flynn authored
-
David Flynn authored
-
Certain test sequences with 16-bit reflectance are actually 8-bit data that has been scaled by 255. This commit adds non-normative support to the encoder and decoder to convert between the two representations through the option "hack.reflectanceScale".
-
David Flynn authored
This commit disables the chroma sub-sampling in RAHT for the common test conditions to permit better comparisons with the lifting transform.
-
David Flynn authored
-
David Flynn authored
For some sequences, the previous scale factors (1/4 -- 1/512) are too large for the size of the sequence. This commit adds a procedural determination of the scale factors from the sequence intrinsic geometry resolution and some rules.
-
David Flynn authored
This configuration unifies the old configuration files and provides greater test coverage. Notable changes are: - configuration sets for octree vs trisoup, and pred/lift vs raht. - cat1 test sequences added to all test configurations - attribute quantization step sizes are aligned between all coding schemes. - levelOfDetailCount is unified where possible (cat3 = 10, mostly) - config dependent dist2 variation for a given sequence is removed
-
David Flynn authored
The dist2 values used by the pred/lift attribute coding schemes is dependent upon the distances between points in the point cloud. Using the --positionQuantizationScale option to scale the input point cloud therefore affects the required dist2 values. This commit adds the --positionQuantizationScaleAdjustsDist2=1|0 option to simplify the configuration of dist2. When enabled, the encoder will automatically scale any dist2 values by the squared position scale factor.
-
David Flynn authored
- perform expression expansion during parameter lookup - a list that starts with a scalar with the tag '!conditional' will be processed if the scalar evals to true - allow evaluated commands to access useful modules (hack)
-
David Flynn authored
This commit aligns the use of colorTransform between encoder and decoder since this option is currently independent of what colour space the encoded point cloud is in.
-
David Flynn authored
-