1. 12 Nov, 2019 2 commits
  2. 12 Aug, 2019 6 commits
  3. 05 Aug, 2019 1 commit
  4. 16 Apr, 2019 9 commits
  5. 06 Feb, 2019 1 commit
  6. 05 Feb, 2019 1 commit
    • 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
  7. 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
  8. 31 Oct, 2018 3 commits
  9. 29 Aug, 2018 6 commits
  10. 20 Aug, 2018 7 commits
    • 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
    • Khaled Mammou's avatar
      m42640/attr: lifting scheme for lossy attribute encoding · 5eee0d72
      Khaled Mammou authored and David Flynn's avatar David Flynn committed
      This commit implements a lifting scheme optimized for lossy attribute
      compression, consisting of predict/update operators, and an adaptive
      quantization strategy.
      5eee0d72
    • Khaled Mammou's avatar
      m42642/attr: adaptive distance-based prediction · 85474147
      Khaled Mammou authored and David Flynn's avatar David Flynn committed
      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
      85474147
    • Khaled Mammou's avatar
      m43591/geometry: look-ahead for neighbour occupancy retrieval · 9d11f9fd
      Khaled Mammou authored and David Flynn's avatar David Flynn committed
      9d11f9fd
    • David Flynn's avatar
      style: fix spelling of parent · 06f95885
      David Flynn authored
      06f95885
    • David Flynn's avatar
      m43662/geometry: replace neighb=0 with sibling neighbour constraint · 17e89a3f
      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".
      17e89a3f
    • David Flynn's avatar
      m42522/geometry: code occupancy using a binary arithmetic codec · 7d62e7ca
      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.
      7d62e7ca
  11. 23 Jul, 2018 1 commit
  12. 29 Jun, 2018 1 commit
    • David Flynn's avatar
      m42239/geometry: fix missing neighbourhood check for idcm eligibility · 1cd9938e
      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.
      1cd9938e