1. 12 Jan, 2020 1 commit
  2. 21 Nov, 2019 6 commits
    • David Flynn's avatar
      pointcloud/m42611: change geometry representation from double to int32_t · e36bbaee
      David Flynn authored
      Since the codec can only code integer positions, using Vec3<double> for
      position data requires repeated inefficient format conversions.  This
      commit changes the internal representation to Vec3<int32_t>.
      e36bbaee
    • David Flynn's avatar
      trisoup: convert internal positions to int32_t · cc9fc8e4
      David Flynn authored
      For consistency with the upcoming change to the pointcloud position
      data type, this commit changes the trisoup coding to internally
      use int32_t rather than uint32_t.
      cc9fc8e4
    • David Flynn's avatar
      maths: allow the usual numeric conversions between Vec3<T> and Vec3<U> · 52848dbf
      David Flynn authored
      This makes Vec3<T> perform more like the usual arithmetic types, in
      order to avoid having to explicitly perform element wise conversions
      when two Vec3<>s have different numeric types.
      
      For instance:
        _i = int16_t() + int()                // typeof(_i) == int
        vi = Vec3<int16_t>() + Vec3<int>()    // typeof(vi) == Vec3<int>
      
        _d = 1 + 2.0                          // typeof(_d) == double
        vd = Vec3<int>(1) + Vec3<double>(2.0) // typeof(vd) == Vec3<double>
      
        vi = Vec3<int>(Vec3<double>())        // typeof(vi) == Vec3<int>
        vd = Vec3<double>(Vec3<int>())        // typeof(vd) == Vec3<double>
      
      Be aware, however, that the usual implicit conversions can result
      in a loss of precision:
      
              int _i = 1 + 1.5                          // _i == 2;
        Vec3<int> vi = Vec3<int>(1) + Vec3<double>(1.5) // vi == Vec3<int>(2)
      52848dbf
    • Xiang Zhang's avatar
      geom/m49231: add support for non-cubic nodes with implicit qtbt · 667f9209
      Xiang Zhang authored and David Flynn's avatar David Flynn committed
      This adoption permits coding geometry with non-cubic bounding boxes.
      Since the depth of the tree remains constant for cubic and non-cubic
      bounding boxes with identical largest dimensions, quad-tree and
      binary-tree partitions are introduced to avoid coding 'fractional'
      positions.
      
      The following configuration options control the placement of non-octree
      partitions within the coding tree:
      
       --max_num_implicit_qtbt_before_ot
       --min_implicit_qtbt_size_log2
      667f9209
    • David Flynn's avatar
      refactor: move pointset processing functions to compilation unit · d0e2ec04
      David Flynn authored
      None of these methods need to be inlined.
      d0e2ec04
    • 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
  3. 16 Apr, 2019 2 commits
  4. 08 Feb, 2019 1 commit
  5. 05 Feb, 2019 3 commits
    • 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
      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 3 commits