1. 21 Nov, 2019 7 commits
    • David Flynn's avatar
      attr/m49601: add support to signal chroma (secondary) bitdepth · 20d66c65
      David Flynn authored
      Some imput formats and colour spaces have a different bitdepth
      for their chroma (non-primary) component.  This commit adds
      support to signal their bitdepth as described by the codec
      independent code points.
      20d66c65
    • Sehoon Yea's avatar
      attr/m49605: add inter component prediction for predicting coder · 0a90edeb
      Sehoon Yea authored and David Flynn's avatar David Flynn committed
      This adoption permits prediction of residuals between components of
      the same attribute, coding the residual resulting from this second
      prediction.
      0a90edeb
    • Yiting Shao's avatar
      attr/m48894: introduce neighbour bias LoD predictor construction · 9d34012b
      Yiting Shao authored and David Flynn's avatar David Flynn committed
      This adoption allows determining the weights of each point's
      predicting neighbours with a reduced influence of the, for
      instance, z component.
      9d34012b
    • 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
      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
    • David Flynn's avatar
      hls/m50745: avoid signalling variables in meaningless cases · f38332a3
      David Flynn authored
      For the lifting scheme, some APS parameters are always signalled.
      However, some syntax elements are not needed depending upon the values
      of attr_coding_type and lifting_scalability_enabled_flag.  This adoption
      avoids signalling unnecessary syntax elements in these cases.
      f38332a3
    • 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 5 commits
  3. 16 Apr, 2019 7 commits
  4. 06 Feb, 2019 1 commit
  5. 05 Feb, 2019 5 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
      d5d4e366
    • 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. 01 Nov, 2018 2 commits
    • Khaled Mammou's avatar
      attr/m43781: fast lifting for lossy attributes · 441b6b45
      Khaled Mammou authored and David Flynn's avatar David Flynn committed
      Replace the k-d tree based nearest neighbour search with an approximate
      search based upon the points in Morton order.
      441b6b45
    • Toshiyasu Sugio's avatar
      attr/m43665: configurable number of direct neighbour predictors · dce92811
      Toshiyasu Sugio authored and David Flynn's avatar David Flynn committed
      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.
      dce92811
  7. 31 Oct, 2018 3 commits
    • David Flynn's avatar
      geom/m43600: intra geometry occupancy prediction · 89fae502
      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
      89fae502
    • David Flynn's avatar
      geom/m44750: occupancy context maps with on-the-fly update · e9dd9ce0
      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.
      e9dd9ce0
    • Khaled Mammou's avatar
      geom/m43592: use dual lut coder for bytewise occupancy coding · 23ba6f71
      Khaled Mammou authored and David Flynn's avatar David Flynn committed
      This commit allows bytewise encoding of occupancy symbols using the
      dual-lut coder.
      23ba6f71
  8. 29 Aug, 2018 5 commits
  9. 20 Aug, 2018 3 commits
    • David Flynn's avatar
      m43387/hls: encode attribute bitdepth · 8a13140f
      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.
      8a13140f
    • David Flynn's avatar
      m43953/hls: add more flexible decoder process · 9af74b63
      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.
      9af74b63
    • David Flynn's avatar
      m43953/hls: implement sps, gps, aps syntax structures and tlv fileformat · faf569e8
      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.
      faf569e8