- 10 May, 2018 9 commits
-
-
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
-
- 27 Feb, 2018 3 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
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
-
- 17 Feb, 2018 1 commit
-
-
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
-
- 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 1 commit
-
-
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 2 commits
-
-
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
-
Khaled Mammou authored
git-svn-id: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/TM/TMC3/trunk@1221 94298a81-5874-47c9-aab8-bfb24faeed7f
-