- 16 Apr, 2019 3 commits
-
-
David Flynn authored
-
David Flynn authored
This is part of a series attempting to remove unhelpful typedefs.
-
David Flynn authored
The commit adds a flag to conditionally enable/disable the feature.
-
- 25 Feb, 2019 2 commits
-
-
David Flynn authored
This commit fixes the ability to code with neighbourAvailBoundaryLog2=0, which correctly disabled the contextualisation based on externally adjacent child neighbours, but failed to disable the atlas update.
-
David Flynn authored
This commit fixes an issue with the bytewise occupancy coder caused by a mismatch (swapping) of the method arguments resulting in a corrupt bitstream.
-
- 05 Feb, 2019 4 commits
-
-
David Flynn authored
Each occupancy bit is contextualised based on the number of occupied (directly) adjacent child nodes in the (x-1), (y-1), and (z-1) neighbour nodes used to generate the neighbour pattern. Three contextualisation states are added: - no adjacent neighbours - one adjacent neigbour (=adjacencyGt0) - two adjacent neighoburs (=adjacencyGt1)
-
David Flynn authored
The neighbour pattern for a node indicates occupied neighbouring nodes. This commit updates the definition of occupancy for the (x-1), (y-1), and (z-1) neighbours to be occupied if the neighbour's adjoining children (ie sharing a face with the current node) are occupied. In the 1-D figure below, at a depth d, the node 'X' has two occupied neighbours 'R' and 'L'. When determining the neighbour pattern of X, the (x-1) state of the neighbour's adjoining child ('r') is used instead. For completeness, nodes marked with '?' are not causally available. d+0: R|X|L d+1: Rr|??|??
-
David Flynn authored
This commit provides trisoup_node_size_log2 as a replacement for the following HLS syntax variables: - geom_codec_type (redundant wrt. triangle node size derivation) - trisoup_depth (redundant wrt. bounding box) - trisoup_triangle_level (semantics simplified) The following config options have been removed: - geometryCodec (redundant wrt. trisoup_node_size_log2) - triSoupLevel (replaced by trisoup_node_size_log2) - triSoupDepth (unnecessary) - triSoupIntToOrigScale (redundant wrt. positionQuantizationScale)
-
David Flynn authored
A leaf node by definition contains at least one point. Therefore the single point flag indicates if there are one or two points in the leaf. The remainder should be signalled as numpoints - 2 as per the working draft text.
-
- 31 Oct, 2018 12 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.
-
David Flynn authored
This commit provides a method to predict the child occupancy bits of a node based on the node's 26 neighbours. The prediction is used to contextualise coding of each occupancy bit. This tool requires the use of the occupancyAtlas for neighbour lookup. NB: a restriction in the current implementation requires that the atlas size is at most 8³. intra_pred_max_node_size_log2: 6
-
David Flynn authored
This commit provides the ability to contextualise occupancy bits using a prediction. Three context sets cover the not predicted, predicted unoccupied and predicted occupied cases.
-
When restricted neighbour contextualisation is used, this modification introduces an alternative neighbour reduction table. NB: the integrated table has been updated to remove the need to add additional remapping tables. This is a non-normative change.
-
David Flynn authored
Bitwise geometry occupancy coding uses a mapping table to select entropy contexts. This commit employs a dynamic mapping which is updated after each coding operation, replacing the previous static mapping tables. NB: the proposed version used a context with a halving period (max_count) of 64 symbols. However, this conflicts with another adoption (512 symbols), and a wholesale replacement of the arithmetic codec and context model. To resolve the conflict, the existing halving period (128) is used.
-
This commit allows bytewise encoding of occupancy symbols using the dual-lut coder.
-
David Flynn authored
This commit prepares for the introduction of selectable bitwise and bytewise occupancy coding methods.
-
This commit integrates a c++ trisoup codec, replacing the previous matlab implementation. The provided code has been reworked to avoid duplicating code, dead code, and operate with the current HLS.
-
David Flynn authored
This commit splits the handling of the geometry brick header and octree geometry coding. The encoder/decoder classes now take care of coding the header, while the geometry coder handles the geometry coding itself.
-
David Flynn authored
This commit replaces some repetitive code with a loop.
-
David Flynn authored
This commit refactors the storage and passing of entropy contexts in the geometry octree coder. An encapsulating class with all entropy coding methods is used to store the context state.
-
David Flynn authored
The geometry coder is quite large, especially with trisoup and has no benefit to being a header only implementation. This commit moves the geometry octree coder out of the header files and into geometry_octree_{en,de}coder.cpp.
-