- 21 Nov, 2019 7 commits
-
-
This commit enables the codec to encapsulate more than one frame in the coded bitstream. The number of frames to encode is controlled by the frameCount option. Support is added to encode multiple source frames from separate ply files based on a template input file name. A printf-like "%d" directive acts as a placeholder for the current frame number. Decoding functions in a similar way with a each frame decoded from the bitstream being written to a separate ply file named according to a template pattern. The first frame number used for file I/O may be set using the firstFrameNum option.
-
David Flynn authored
This adds: - a frame_idx syntax element to every geometry slice header. - (decoder) handling of a frame boundary data unit. Frame boundaries are represented by changes in the value of frame_idx or by the presence of a frame boundary data unit.
-
David Flynn authored
This converts an unrolled loop (with special case for the initial iteration) to the rolled up form in order to improve readability.
-
David Flynn authored
For the lifting scheme, some APS parameters are always signalled. However, some syntax elements are not needed depending upon the values of attr_coding_type and lifting_scalability_enabled_flag. This adoption avoids signalling unnecessary syntax elements in these cases.
-
David Flynn authored
-
David Flynn authored
This commit refactors calling the LoD generation routines to pass the aps rather than a long list of syntax variables.
-
This provides a means to achieve spatial scalability for a G-PCC bitstream. For bitstreams encoded with aps_scalable_enabled_flag set, the decoder may partially decode the geometry octree (minGeomNodeSizeLog2) and the corresponding point attributes. The functionality is achieved by constraining the LoD generation process to align with partial geometry decoding.
-
- 12 Nov, 2019 4 commits
-
-
David Flynn authored
This commit extends the operating range of the forward and inverse quantization tables in order to reduce distortion at low bit rates.
-
David Flynn authored
Consider candidates that are tied according to distance with the current worst predictor in order to consistently use the lowest indexed candidate and to prefer neighbours in coarser LoD to neighbours in current LoD.
-
David Flynn authored
This fixes an issue when during predictor construction, when lodIndex == levelOfDetailCount causing the retained set to be empty.
-
David Flynn authored
The clang indent rules used to tidy the code cause undue indentation when used with include guards. This commit switches the only remaining instance to use pgrama once.
-
- 26 Aug, 2019 4 commits
-
-
David Flynn authored
-
David Flynn authored
-
David Flynn authored
-
This commit provides a set of MPEG::PCC perl modules that may be used to parse TMC13 log files. An example script collect-tmc13.pl demonstrates their use.
-
- 14 Aug, 2019 1 commit
-
-
David Flynn authored
-
- 12 Aug, 2019 22 commits
-
-
David Flynn authored
basketball_player_vox11 and dancer_vox11 are reduced to 64 frames.
-
This avoids artefacts during trisoup generation by checking whether the original slice partition interval is an integer multiple of the block size W=2^(trisoup_node_size_log2). If not, the partition interval is rounded up to the nearest integer that is exactly divisible by the block size.
-
This commit adds a process to limit the number of points per slice to be within a hard upper limit and soft lower limit.
-
Adjust the operation sequence of slice partition and geometry quantization. We do geometry quantization first and then do the slice partition, so that the point number of each slice would be kept in the predefined range under lossless/lossy geometry coding conditions.
-
Rather than code bypass bins using a simplified mode of the arithmetic coder, this commit adds the ability to signal bypass bins in a separate byte-reversed sub-stream.
-
In order to implement the reversed bypass stream, it is necessary that the arithmetic encoder outputs an independently decodable stream that does not rely upon bounded read operations that insert 0xff bytes when the entire aec sub-stream input is consumed (since there will be no indication of the sub-stream length).
-
This commit allow individual QP offsets to be specified for each LoD/RAHT layer in attribute coding.
-
David Flynn authored
This placeholder is for any encoder-specific per-attribute parameters that do not belong in the SPS, APS, etc.,
-
This commit implements the recolouring method described in m47800, which notably uses a distance-weighted average rather than the previous unweighted average.
-
This commit exploits the use of fixed quantisation step sizes (due to QP) to perform quantisation using multiplication by the reciprocal step size.
-
David Flynn authored
In order to simplify the introduction of quantisation using the multiplicative inverse, the existing quantiser state is refactored into a Quantizer class that represents the current step size.
-
David Flynn authored
The quantization functions are applied to both fixed-point and unitary precision data using the same QP. This commit moves the implicit conversion adjustment out of the quantiser and into the calling code.
-
-
David Flynn authored
For each 2×2×2 block, a predicted block is produced by upconverting the previous transform level. The prediction is transformed and subtracted from the transformed attributes at the encoder.
-
In order to support transform domain prediction of AC coefficients using upsampled previously reconstructed transform levels, this commit replaces the existing RAHT implementation with a descent based RAHT tree traversal for both encoder and decoder with the transform performed in units of 2×2×2 blocks.
-
-
David Flynn authored
-
This adoption permits removal of an arithmetic coding dependency in the predicting lod scheme when lifting_adaptive_prediction_threshold is equal to 0.
-
This functionality is now handled by the unified generation process.
-
This adoption permits the unification of the single and multi level-of-detail generation processes by always solving ties in sorting predictors with identical weights according to relative buffer position.
-
David Flynn authored
A 64 bit integer can represent a three dimensional 21 bit position with one spare bit. In order te allow the computation of abs(a-b), a signed representation should be used, making use of the full 64 bits.
-
This commit makes all lod layers order points in a consistent, ascending, morton order.
-
- 05 Aug, 2019 2 commits
-
-
This adoption fixes an issue whereby intra lod prediction is not applied to the top layer. By fixing this, intra lod prediction will be used for the single-layer case.
-
-