1. 16 Apr, 2019 19 commits
  2. 15 Apr, 2019 1 commit
  3. 25 Feb, 2019 2 commits
  4. 11 Feb, 2019 1 commit
  5. 08 Feb, 2019 1 commit
  6. 06 Feb, 2019 7 commits
    • David Flynn's avatar
      release: update version to 5.0-rc1 · 551d2a84
      David Flynn authored
      551d2a84
    • Yiting Shao's avatar
      slice/m44910: add octree slice partitioning scheme · 08a4a4e9
      Yiting Shao authored and David Flynn's avatar David Flynn committed
      This partitioning method (--partitionMethod=3) decomposes the input
      pointcloud into an octree of depth --partitionOctreeDepth=d, with
      each leaf node corresponding to a slice.
      08a4a4e9
    • Yiting Shao's avatar
      slice/m44910: add longest-edge slice partitioning scheme · 81bde409
      Yiting Shao authored and David Flynn's avatar David Flynn committed
      This partitioning method (--partitionMethod=2) finds the longest edge of
      the point cloud and divides it into --partitionNumUniformGeom=n slices
      along the longest edge.
      
      If n = 0, the ratio of longest edge to shortest edge determines
      the number of slices.
      81bde409
    • David Flynn's avatar
      hls: initial slice and partitioning framework · 693f8517
      David Flynn authored
      This commit provides a basic frame work for partitioning a frame into
      multiple slices, with the continued assumption of single-frame
      sequences.
      
      The decoder is modified to independently decode each slice and
      accumulate decoded points in a buffer for output.
      
      The encoder is updated to support partitioning the input point cloud
      into slices and to independently code each slice.  Points from
      reconstructed slices are accumulated and output at the end of the
      frame period.
      
      The partitioning process (partitioning methods are defined in
      partitioning.cpp) proceeds as follows:
      
       - quantise the input point cloud without duplicate point removal
         or reordering points.
      
       - apply the partitioning function to produce a list of tiles
         and slices, each slice having an origin, id, and list of point
         indexes that identify points in the input point cloud.
      
       - producing a source point cloud for each partition as a subset
         of the input point cloud.
      
       - compressing each partition (slice) as normal by quantising
         the partitioned input.  Recolouring is necessarily performed
         against the partitioned input since the recolouring method
         cannot correctly handle recolouring a partition from a complete
         point cloud.
      
      NB: this commit does not provide any partitioning methods.
      693f8517
    • David Flynn's avatar
      hls: preparation to encode per-slice geometry origin · 0d955732
      David Flynn authored
      This commit provides support for each slice to have an origin
      specified relative to the sequence bounding box.
      
      Reconstructed points are offset by the slice origin prior to inverse
      scaling and translation.
      0d955732
    • David Flynn's avatar
      pointcloud: concatenation of two point clouds via append() · 58279a83
      David Flynn authored
      With slice/tile-based coding, it is necessary to build an output
      point cloud from independent slice/tiles.  An append operation allows
      the points of two point clouds to be concatenated.
      58279a83
    • Vladyslav Zakharchenko's avatar
      attr/m44940: add binary tree based level-of-detail generator · 29ab50ed
      Vladyslav Zakharchenko authored and David Flynn's avatar David Flynn committed
      This uses a binary-tree to generate the levels-of-details for the
      lifting/predicting transforms as an alternative to Euclidean distance
      thresholding methods.
      29ab50ed
  7. 05 Feb, 2019 9 commits
    • Jungsun Kim's avatar
      attr/m44899: add attribute prediction without LoD · 81b3c8b8
      Jungsun Kim authored and David Flynn's avatar David Flynn committed
      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.
      81b3c8b8
    • Danillo Bracco Graziosi's avatar
      raht/m44486: fixed-point implementation · 2e60eef8
      Danillo Bracco Graziosi authored and David Flynn's avatar David Flynn committed
      This replaces the previous floating point transform implementation with
      a fixed-point alternative with essentially identical compression
      performance.
      2e60eef8
    • Ohji Nakagami's avatar
      trisoup/m46036: fixed-point atan2 implementation · cecfbf46
      Ohji Nakagami authored and David Flynn's avatar David Flynn committed
      This commit provides an integer approximation of atan2().
      cecfbf46
    • Ohji Nakagami's avatar
      trisoup/m46036: fixed-point voxelisation of decoded triangles · 21987aef
      Ohji Nakagami authored and David Flynn's avatar David Flynn committed
      This replaces the previous floating point version.  The number of
      fractional bits is set to 8, allowing 24bit (unsigned) geometry
      to be represented in 32bit calculations with negligible effects
      on the reconstruction.
      21987aef
    • David Flynn's avatar
      encoder/m43953: signal bounding box using SPS · 01394738
      David Flynn authored
       - calculates the sequence bounding box at the start of encoding
         (in original coordinates as a decoder may reconstruct it)
       - signals bounding box in SPS
       - disables signalling of geometry box origin (always 0)
      01394738
    • David Flynn's avatar
      encoder: allow external configuration of geometry bounding box · 8dbb5a7f
      David Flynn authored
      The configuration parameters seq_bounding_box_xyz0 and
      seq_bounding_box_whd allow overriding the automatic derivation of
      frame (sequence) bounding box, forcing the depth of the geometry
      tree.
      
      NB: seq_bounding_box_xyz0 and seq_bounding_box_whd are specified
          using unscaled co-ordinates.
      
      NB: this patch does not signal these parameters in the SPS.
      8dbb5a7f
    • David Flynn's avatar
      cli: support for PCCVector3<T> types · 2ca8bfa8
      David Flynn authored
      Define po-lite option traits to handle PCCVector3<T> as a container
      to permit using PCCVector3<T> types as command / config parameters.
      2ca8bfa8
    • David Flynn's avatar
      po-lite: handle container options via traits · 6c14cb8b
      David Flynn authored
      The generic option handling for containers assumes that the container
      type provides clear(), push_back() and iterator methods.  Beyond being
      insufficiently general, the template matches any template template
      type, preventing use of the non template template template.
      
      This commit provides a traits-based method to (a) conditionally
      apply the template template Option definition, and (b) to provide
      methods appropriate for a particular container.
      6c14cb8b
    • David Flynn's avatar
      hls/m45867: add tile inventory writer/parser · d2892504
      David Flynn authored
      d2892504