- 20 Aug, 2018 28 commits
-
-
David Flynn authored
This commit allows the attribute codec to be parametrised by attribute bitdepth. The attribute bitdepth is signalled in the attribute's sequence parameter set description. The specified bitdepth affects cliping in the attribute prediction and reconstruction process.
-
David Flynn authored
This commit allows individual payloads to be inserted into the decoder rather than the decoder expecting to decode each payload in a fixed order. When an output pointcloud is ready, the decoder will call a user supplied callback with the conforming output pointcloud. The user may choose to rescale this point cloud as necessary.
-
David Flynn authored
This commit removes the "lossless" geometry bypass coding mode that simply skipped coding of geometry and required the decoder to read the geometry from the source video. Bypass coding mode is replaced by octree coding.
-
David Flynn authored
This commit rewrites the codec high-level syntax: - the bitstream is divided into "bricks" (akin to an AVC/HEVC slice/tile). - sequence, geometry and attribute parameter sets describe the coding parameters in use generally and for a specific brick. - marshalling the bitstream payloads to a file format is achieved using a type-length-value encoding scheme. Additionally, the triSoup bitstream scale and translation values have been unified with (replaced by) the octree counterparts. For compatibility, existing command line parameters continue to function as before. NB: this commit does not incorporate flexibility in the decoding order. The decoder requires the bitstream to be presented in a fixed order.
-
Point positions are represented at integer precision. This commit removes the need to perform an epsilon comparison when comparing floating point positions.
-
-
-
David Flynn authored
The IntegerLift name is misleading in light of a separate coding method that uses lifting predict and update operators. This commit renames the method to specify it is a prediction-only scheme.
-
This commit implements a lifting scheme optimized for lossy attribute compression, consisting of predict/update operators, and an adaptive quantization strategy.
-
Adaptively pick the number of neighbours considered during the prediction based on analysis of the reconstructed attribute values of the neighbours. From m42642, this is performed by computing the maximum difference between any two reconstructed attribute values of a points neighbours. If the variability is higher than a threshold, then apply a rate-distortion optimization procedure to choose between using either a single neighbour or all neighbours. The index of the best prediction strategy is arithmetically encoded. This commit: - implements the m42642 method - moves buildPredictors into transform-specific attribute encoding/decoding - adds quantizationStepsChroma - renames quantizationSteps -> quantizationStepsLuma df: fixed incorrect application of quantizationStepsLuma|Chroma df: updated cat3 cfg to specify quantizationStepsChroma df: fixed header encoding if quantizationStepsChroma missing
-
David Flynn authored
This commit removes the searchRange option that was set to 0 by m42538.
-
David Flynn authored
-
David Flynn authored
-
-
David Flynn authored
-
David Flynn authored
In the contextualisation of occupancy coding using neighbour patterns, this commit replaces the case when neighbour contextualisation is disabled with a constraint that restricts neighbour contextualisation only examine the direct siblings of a node. The restriction ensures that at most three neighbours may be present for a node. The configuration option "neighbourContextualisation=1" is replaced with "neighbourContextRestriction=0".
-
David Flynn authored
This commit provides an implementation of m42522 to code occupancy using a binary context model rather than a 255-ary model. A total of 581 binary contexts are used compared to the previous 10 255-ary contexts.
-
David Flynn authored
-
David Flynn authored
-
David Flynn authored
-
David Flynn authored
This commit removes the bundled Intel Threading Building Blocks library from the repository.
-
David Flynn authored
-
David Flynn authored
-
David Flynn authored
-
David Flynn authored
This commit adds support for setting encflags, decflags and pcerrorflags at the top-level of the config which are then applied to all categories. Precedence is such that global enc/dec/pcerror flags are set after all other more-specific definitions.
-
David Flynn authored
The gen-cfg.pl tool permits the merging of yaml input prior to generation of the derived configuration files. This commit permits merging of existing arrays. For example, given the following input (in order): file a: "{ key: [a] }" file b: "{ key: [b] }" The merged structure is { key: [a, b] }.
-
David Flynn authored
The provision of these configuration files causes confusion when they are not kept in sync with the .yaml files -- either due to modification of the .yaml files without regenerating the .cfg files, or due to direct modification of the .cfg files themselves. Please see cfg/README.md for further details on how to generate configuration files for the encoder/decoder.
-
David Flynn authored
-
- 23 Jul, 2018 3 commits
-
-
David Flynn authored
-
David Flynn authored
-
David Flynn authored
-
- 29 Jun, 2018 1 commit
-
-
David Flynn authored
The original integration of IDCM implemented only the parent based eligibility check of m42239 and erroneously omitted the six-neighbour check. This commit adds the six-neighbour check, making use of the neighbour calculation from m42239 neighbour contextualised coding of occupancy.
-
- 12 Jun, 2018 1 commit
-
-
David Flynn authored
This commit fixes a null pointer dereference in cases where no reconstructed point cloud output is specified.
-
- 08 Jun, 2018 2 commits
-
-
David Flynn authored
-
David Flynn authored
This commit makes gen-cfg understand a pcerrorflag value on a per test category basis in the same way as enc|decflags.
-
- 05 Jun, 2018 5 commits
-
-
David Flynn authored
-
David Flynn authored
This commit updates the master configuration files to support: - new test conditions for cat3 tests - existing conditions for cat1 tests (for use by tmc13) - updates enc/decflags to use recommended forms - integrates pcerror flags (per condition / sequence) - adds sequence databases describing source files, and source parameters that may be used by other scripts. The ctc-category-map.csv file has been removed -- a new version can be provided if necessary.
-
David Flynn authored
If there is an issue running one of the tmc1 blocks, terminate the encoding immediately and report the error.
-
David Flynn authored
This commit aims to reduce te amount of copy+paste code used to support the three different geometry coding modes by unifying them into a single flow.
-
David Flynn authored
This commit adds a DecoderParameters struct to reduce the overhead of adding extra parameters.
-