- 05 Jun, 2018 3 commits
-
-
David Flynn authored
In order to support multiple different attribute compression schemes, this commit moves the existing attribute compression code into a self-contained class.
-
David Flynn authored
-
David Flynn authored
-
- 23 May, 2018 5 commits
-
-
David Flynn authored
Since the generated config files include a reference to the source file, this commit also regenerates the config.
-
David Flynn authored
In order to avoid obscure broken builds when switching branches or otherwise adding/removing files, this commit removes the use of wild cards for source files in the tmc3 directory. To add files to or remove from the build, the tmc3/CMakeLists.txt must be modified, thereby permitting the build system to detect changes in the file list.
-
David Flynn authored
scripts/Makefile.tmc13-step provides example usage on how to run the codec to encode an input ply file.
-
David Flynn authored
-
David Flynn authored
To update the generated config files, run the following: $ cd cfg $ ../scripts/gen-cfg.sh
-
- 17 May, 2018 1 commit
-
-
When coding attribute prediction deltas, this commit implements a scheme to code the first and subsequent attribute components using each: - one 65-ary contexts to code a delta prefix - one binary context to code remainder values This replaces the previous scheme using: - one n-ary (max 2048) context to code a delta prefix (first comp.) - one binary context to code remainder values (first comp.) - 512 n-ary (max 2048) contexts to code a delta prefix (subsequent comp.) - 512 binary contexts to code remainder values (subsequent comp.) Extracted-from: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/CE/CE0/CE0.1/trunk@1357 Reintegrated-by:
<dflynn@blackberry.com>
-
- 16 May, 2018 4 commits
-
-
This commit uses a constant (per attribute) number of neighbours in point attribute prediction, replacing a method where the encoder searches for an optimal number and signals this on a per point basis. Extracted-from: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/CE/CE0/CE0.1/trunk@1357 Reintegrated-by:
<dflynn@blackberry.com>
-
This commit reduces the number of nearest neighbours used in attribute prediction to 4 from 8 in order to reduce memory usage. Extracted-from: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/CE/CE0/CE0.1/trunk@1357 Reintegrated-by:
<dflynn@blackberry.com>
-
This commit removes the ability to control the quantization dead-zone parameters since they have always been identical to the step size. Rather than hard-coding the dead-zone size parameter to be the same as the step size, this commit: - Sets the dead-zone to be ±(2 * stepsize / 3) rather than ±stepsize - Does not narrow the interval following the dead-zone. Extracted-from: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/CE/CE0/CE0.1/trunk@1357 Reintegrated-by:
<dflynn@blackberry.com>
-
This commit fixes a syntax issue where attribute quantisation step sizes greater than 2^{16}-1 could not be correctly represented. Extracted-from: http://wg11.sc29.org/svn/repos/MPEG-I/Part5-PointCloudCompression/CE/CE0/CE0.1/trunk@1357 Reintegrated-by:
<dflynn@blackberry.com>
-
- 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
-