1. 21 Nov, 2019 4 commits
    • David Flynn's avatar
      hls/m51027: signal geometry axis order · d96e5851
      David Flynn authored
      This adoption permits encoding the geometry positions in an order other
      than {x,y,z}.  The --geometry_axis_order option causes the encoder to
      load data from the ply file in a different order.  The order is
      signalled in the SPS and the decoder will label the output axis as
      appropriate.
      d96e5851
    • David Flynn's avatar
      cli: add support for encoding pointcloud sequences · ef9b47b9
      David Flynn authored and David Flynn's avatar David Flynn committed
      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.
      ef9b47b9
    • David Flynn's avatar
      hls/m51025: support multi-frame sequences · 105120bd
      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.
      105120bd
    • Satoru KUMA's avatar
      attr/m47352: permit partial geometry and attribute reconstruction · 10a4eb36
      Satoru KUMA authored and David Flynn's avatar David Flynn committed
      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.
      10a4eb36
  2. 12 Aug, 2019 1 commit
  3. 16 Apr, 2019 1 commit
  4. 06 Feb, 2019 2 commits
    • 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
  5. 05 Feb, 2019 4 commits
    • 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
      hls/m45867: add tile inventory writer/parser · d2892504
      David Flynn authored
      d2892504
    • David Flynn's avatar
      hls/m43953: signal geom_slice_id / attr_geom_slice_id · 70c904ff
      David Flynn authored
       - signal geom_slice_id / attr_geom_slice_id in geometry / attribute
         header.
      
       - attr_geom_slice_id set to current geom_slice_id to maintain
         relationship between attribute and geometry.
      
       - increment geom_slice_id after each round of encoding.
      
       - decoder checks that the attribute payload's attr_geom_slice_id
         corresponds to the most recently decoded geometry payload.
      70c904ff
    • David Flynn's avatar
      trisoup/m46530: replace trisoup hls with trisoup_node_size_log2 · 0d8f1119
      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)
      0d8f1119
  6. 31 Oct, 2018 4 commits