- 11 May, 2018 2 commits
-
-
This commit eliminates the blending of point attribute values during the attribute transfer process used in geometry quantisation by forcing the blending weight to be 0|1 (m42141). m42538 also recommends to disable the bounded search of the closest attribute from the contributing set by setting searchRange=0. This is reflected by a change to the software defaults and configuration.
-
This commit fixes an issue with source sequences that contain 16-bit reflectance data, which may be clipped to 8-bit ranges during attribute transfer (recolouring) following geometry quantisation.
-
- 10 May, 2018 14 commits
-
-
David Flynn authored
-
David Flynn authored
This commit provides an implementation of m42239, permitting early coding termination of sub-trees that contain few points: - the so-called IDCM feature uses an eligibility criteria prior to permitting an encoder mode decision. - the feature may be controlled via the command line / config file using the --inferredDirectCodingMode=1|0 option
-
David Flynn authored
This commit provides an implementation of m42238 to code occupancy: - a node's child occupancy is contextualised based on the adjacent neighbours of the parent node. - when an isolated node is occupied by only a single child, the sub-node address [0,7] is directly coded instead of the 8-bit occupancy word. - collection of neighbour occupancy is performed using a scatter/ gather operation upon the insertion of each child node into the fifo queue. - the feature may be controlled via the command line / config file using the --neighbourContextualisation=1|0 option
-
David Flynn authored
-
David Flynn authored
-
In cases where all point positions are unique (either due to input or due to mergeDuplicatePoints = 1), there is no need to signal the number of points in each leaf node (since it is always 1). This commit adds a header flag to indicate this case, and modifies the encoder and decoder to omit the point count signalling when mergeDuplicatePoints = 1.
-
David Flynn authored
This change avoids enqueueing an additional node for every point in the input for the sole purpose of encoding the position count in a subsequent iteration. At the penultimate level of the geometry octree, a node's children (which cannot be further split) are immediately encoded or decoded.
-
David Flynn authored
This commit eliminates the temporary fifo used in partitioning each node into child nodes. Rather than using independent sorting passes to apply a binary partition to each of the x, y, and z axis, a counting sort permits all eight output positions to be calculated with a single pass, and a further pass to reorder the elements.
-
David Flynn authored
Use of an std::deque can involve a large number of malloc operations as the internal sections of the queue are repeatedly allocated and released during the geometry coding loop. This commit provides a ring buffer implementation that uses the worst-case octree node count (ie, ~number of input points) as a fixed-size buffer.
-
David Flynn authored
This commit replaces the use of size_t (the index type of the input point list) with an explicit uint32_t type on the basis that it is not currently feasible to consider a point cloud with more than 2**32 points. uint32_t is used to follow the STL convention of a vector's size_type being unsigned.
-
David Flynn authored
This optimisation reduces the size of the PCCOctree3Node structure by replacing the per-node bounding box with the node's position (which is the same as the bounding box minimums). The contribution of the bounding box maximums can be deduced from the initial bounding box and the current tree depth. Counters are used to track the transition from one depth to the next during breadth-first traversal.
-
David Flynn authored
This commit fixes a bug where coding certain point clouds may result in points being moved at the edge of the bounding box. One such manifestation is the appearance of duplicate points in a point cloud originally with unique point positions. The maximum should be calculated as the lowest power of two minus one that contains the bounding box.
-
David Flynn authored
-
David Flynn authored
-
- 09 May, 2018 3 commits
-
-
David Flynn authored
This commit refactors the position coding loops in preparation for a subsequent commit that requires the ability to index nodes in the coding loop fifo. The refactoring operation also: - reduces the number of copy construction operations when managing the fifo. - avoids in-loop malloc, since the previous temporary fifo used to split the current node was constructed afresh for each iteration. In the encoder this is factored out of the loop, while the decoder implementation elides the temporary fifo altogether.
-
David Flynn authored
Unused code can get in the way of refactoring. This commit removes the following classes, methods and utility functions: - PCCStaticKdTree3 - PCCMatrix3 - PCCDiagonalize - PCCPointSet3::setPosition(...) - PCCPointSet3::addPoint(...) - PCCPointSet3::computeCentroid(...) - PCCVector3::normalize(...) - PCCVector3::operator^(...) - PCCIncrementalKdTree3::append(...) - PCCDivideRange() - PCCGetNumberOfBitsInFixedLengthRepresentation()
-
David Flynn authored
-
- 06 May, 2018 1 commit
-
-
David Flynn authored
-
- 14 Mar, 2018 1 commit
-
-
David Flynn authored
This commit regenerates the pre-generated config files affected by the earlier fix to positionQuantizationScale that was 10 times the intended value, affecting the r05 data point of citytunnel_q1mm, overpass_q1mm, and tollbooth_q1mm. git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1352 94298a81-5874-47c9-aab8-bfb24faeed7f
-
- 05 Mar, 2018 1 commit
-
-
David Flynn authored
This commit fixes an instance of positionQuantizationScale that is 10 times the intended value, affecting the r05 data point of citytunnel_q1mm, overpass_q1mm, and tollbooth_q1mm. git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1346 94298a81-5874-47c9-aab8-bfb24faeed7f
-
- 27 Feb, 2018 4 commits
-
-
David Flynn authored
git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1341 94298a81-5874-47c9-aab8-bfb24faeed7f
-
David Flynn authored
To aid mapping between the non-descriptive and somewhat fluid CTC category numbers and the provided configuration file names, a simple csv file <cfg/ctc-category-map.csv> is provided that lists the current CTC category number, the older CfP category number, along with sequence configuration name and test sequence. git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1340 94298a81-5874-47c9-aab8-bfb24faeed7f
-
David Flynn authored
git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1339 94298a81-5874-47c9-aab8-bfb24faeed7f
-
David Flynn authored
This avoids an issue with g++-4.8. git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1338 94298a81-5874-47c9-aab8-bfb24faeed7f
-
- 20 Feb, 2018 1 commit
-
-
David Flynn authored
This commit changes the application's reporting of elapsed time to measure user time rather than wall time in order to reduce sources of noise in evaluating runtime. For output is now of the form: ``` Processing time (wall): 123.456 s Processing time (user): 123.456 s ``` git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1329 94298a81-5874-47c9-aab8-bfb24faeed7f
-
- 19 Feb, 2018 1 commit
-
-
David Flynn authored
This commit replaces the rather verbose TMC3v0CfPParameters document with a set of configuration files written according to the MPEG N17351 PCC common test conditions. Unfortunately rate-point configurations are dependent on the sequence and test category, preventing the effective use of composable configuration files. The configuration files are: - lossless-geom-no-attrs: Condition 3.1 - lossless-geom-lossy-texture: Condition 3.2 - lossless-geom-lossy-reflectance: Condition 3.3 - lossy-geom-no-attrs: Condition 3.4 & 3.8 - lossy-geom-lossy-attrs: Condition 3.6 - per-sequence/*.cfg: source data configuration for encoding. Simple usage documentation is added to README.md git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1323 94298a81-5874-47c9-aab8-bfb24faeed7f
-
- 17 Feb, 2018 7 commits
-
-
David Flynn authored
This commit replaces the previous command-line argument parsing with program-options-lite, which additionally serves as a simple config-file parser. A table based configuration of options provides in a single place option naming, help text, and default values. Side effects of this change are to: - adds further error checking for unknown arguments (warning only), parse failures, required options. - replace the default constructor of Parameters, PCCAttributeEncodeParamaters, and PCCAttributeEncodeParamaters with defaults in args handler - updates the type of Parameters::mode & ...::colorTransform to be more more descriptive. git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1318 94298a81-5874-47c9-aab8-bfb24faeed7f
-
David Flynn authored
This commit allows option target storage to be of the form V<T>, where V is a container supporting .push_back(). The default parser tokenises the argument string using commas or white space characters, with adjacent white space characters being merged, and commas are not: "a, b,c,,e" = {T1(a), T1(b), T1(c), T1(), T1(e)} "a b c e" = {T1(a), T1(b), T1(c), T1(e)}. git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1317 94298a81-5874-47c9-aab8-bfb24faeed7f
-
David Flynn authored
This enables use of lambda expressions and bound functions as argument option helpers -- helpful when having to perform some complex action on variables. git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1316 94298a81-5874-47c9-aab8-bfb24faeed7f
-
David Flynn authored
The Options collection already knows the default value for each option. This commit extends the help text to show the default value against the long option name. git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1315 94298a81-5874-47c9-aab8-bfb24faeed7f
-
David Flynn authored
The following cosmetic changes are made: - tidy output of error/warning reporting without location context - help: fix minimum spacing between options and help text - help: add blank line before options whose text collide with help text to improve general readability - help: widen the options column to reduce number of overlaps git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1314 94298a81-5874-47c9-aab8-bfb24faeed7f
-
David Flynn authored
git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1313 94298a81-5874-47c9-aab8-bfb24faeed7f
-
David Flynn authored
In order to facilitate config file handling, this commit imports the program-options-lite module from jctvc-hm. Subsequent versions will update needed functionality. git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1312 94298a81-5874-47c9-aab8-bfb24faeed7f
-
- 19 Jan, 2018 1 commit
-
-
Khaled Mammou authored
git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1265 94298a81-5874-47c9-aab8-bfb24faeed7f
-
- 17 Jan, 2018 1 commit
-
-
Khaled Mammou authored
git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1262 94298a81-5874-47c9-aab8-bfb24faeed7f
-
- 03 Jan, 2018 2 commits
-
-
Khaled Mammou authored
git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1232 94298a81-5874-47c9-aab8-bfb24faeed7f
-
Khaled Mammou authored
git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1231 94298a81-5874-47c9-aab8-bfb24faeed7f
-
- 11 Dec, 2017 1 commit
-
-
Khaled Mammou authored
git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1223 94298a81-5874-47c9-aab8-bfb24faeed7f
-