- 21 Nov, 2019 5 commits
-
-
This adoption permits prediction of residuals between components of the same attribute, coding the residual resulting from this second prediction.
-
This adoption implements a different context selection method for the isOne syntax element in attribute coding.
-
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
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 Aug, 2019 9 commits
-
-
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.
-
This commit allow individual QP offsets to be specified for each LoD/RAHT layer in attribute coding.
-
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.
-
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.
-
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.
-
- 16 Apr, 2019 10 commits
-
-
This commit introduces prediction by previously coded points within the same level of detail using the predicting attribute coder. The feature is controlled using --intraLodPredictionEnabled=0|1.
-
David Flynn authored
This method has been replaced by an LoD decimation method.
-
This LoD generation (subsampling) method uses the Morton-based ordering of points that is used to determine prediction neighbours. Each LoD level comprises 3/4 of the points of the previous.
-
This commit introduces zero run length coding for attribute residual value along with an eq1 flag which indicates if residual value is equal to 1 based on the current residual coding specification. In zero run length coding, the number of zeros prior to each residual value is counted as zerorun, and then zerorun is encoded instead of encoding sequence of 0s
-
David Flynn authored
This commit permits signalling a per-slice delta QP for luma and chroma attribute components. The delta is relative to the base value derived from the APS. NB: while syntax support and derivation processes are provided, this commit does not contain any method to control the delta QP value at the encoder.
-
This commit introduces control of the quantisation step size using the familiar HEVC | AVC quantisation parameter.
-
-
David Flynn authored
This is part of a series attempting to remove unhelpful typedefs. The old typedefs (PCCVector3D, PCCPoint3D, PCCColor3B) are retained for compatibility, but marked as deprecated.
-
David Flynn authored
This is part of a series that implements a single method of Cartesian to Morton code conversion.
-
David Flynn authored
-
- 06 Feb, 2019 1 commit
-
-
This uses a binary-tree to generate the levels-of-details for the lifting/predicting transforms as an alternative to Euclidean distance thresholding methods.
-
- 05 Feb, 2019 2 commits
-
-
This simplified attribute prediction scheme avoids computing the LoD structure in order to reduce the computational complexity of both the encoder and the decoder. It is activated by setting levelOfDetailCount=0. NB: this is only configured for lossless/near-lossless predictive attribute coding of cat3 sequences.
-
This replaces the previous floating point transform implementation with a fixed-point alternative with essentially identical compression performance.
-
- 01 Nov, 2018 2 commits
-
-
Replace the k-d tree based nearest neighbour search with an approximate search based upon the points in Morton order.
-
This commit provides an ability to vary the number of direct neighbours used in the predicting transform. Mode 0 corresponds to the existing averaging, and mode n selects the n-th nearest neighbour for direct prediction. The provided code has been reworked to: - rewrite unary coding to be a little more obvious - tidy the mode decision path - add configuration for max_num_direct_predictors (renamed from MaxNumPredCand) - now counts the number of single predictors, rather than prediction modes.
-
- 31 Oct, 2018 3 commits
-
-
David Flynn authored
This commit adds an arithmetic codec interface class that allows a compile time choice of arithmetic codec implementation. Context types are renamed to support compile time selection, and existing support functions that were added to the third-party arithmetic codec are moved to the wrapper.
-
This commit replaces the m-ary coding of transform coefficient values with a binary coding using the dual-lut coder. Reworked to include a bug fix where the maximum attribute symbol value used by the dual lut coder is 64 rather than 255
-
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.
-
- 03 Sep, 2018 1 commit
-
-
- 29 Aug, 2018 7 commits
-
-
This commit removes the ability to vary quant_step_size on a per-LoD basis. This greatly simplifies the codec configuration, especially when used in conjunction with dist2 derivation. cfg update: - rename quantizationSteps* -> quantizationStep* - update quantizationStep* to single values: - lossless-geom lossy-attrs: 8, 16, 32, 64, 128, 256 [8bit] - lossless-geom nearlossless-attrs: no change - lossless-geom lossless-attrs: no change - lossy-geom lossy-attrs: 8 [8bit] => 16-bit cat3 sequences are have 8-bit qs values multipled by 255
-
David Flynn authored
This commit maintains consistency with other static AttributeEncoder and AttributeDecoder methods.
-
This commit removes PCCBuildLevelOfDetail2()
-
This commit replaces the hard coded threshold values with APS signalling. The default configuration maintains the hard-coded threshold values based on bitdepth.
-
David Flynn authored
This is an editorial change to improve naming clarity: attr_count represents the number of elements (dimensionality) in an attribute set rather than the total number of attributes.
-
-
This commit fixes a premature determination of the point count, resulting in no predictor weights being calculated.
-