octree-liftt-ctc-lossy-geom-lossy-attrs.yaml 6.48 KB
Newer Older
1
# Test conditions for N17995 CTC C2 using TMC13 octree
2
3
4
5
6
7
8
9
10
# octree lossy-geom  --  lossy-attrs liftt
---
categories:
  lossy-geom-lossy-attrs:
    encflags:
     - mode: 0

     ##
     # geometry parameters (octree)
11
     - trisoup_node_size_log2: 0
12
     - mergeDuplicatedPoints: 1
13
     - ctxOccupancyReductionFactor: 3
14
15
     - neighbourAvailBoundaryLog2: 8
     - intra_pred_max_node_size_log2: 6
16
     - positionQuantizationScale:
17
18
19
20
21
22
         r01: '$eval{ $rp = 5; $gp = ${src-geometry-precision}; $p_min = max(gp - 9, 7); $start = min(1, $gp - ($p_min + 6)); $step = max(1, (min($gp - 1, $p_min + 7) - $p_min) / 5); $y = $start + round($rp * $step); $div = 1 << (abs($y) + 1); ((1 - 2*signbit($y)) % $div) / $div }'
         r02: '$eval{ $rp = 4; $gp = ${src-geometry-precision}; $p_min = max(gp - 9, 7); $start = min(1, $gp - ($p_min + 6)); $step = max(1, (min($gp - 1, $p_min + 7) - $p_min) / 5); $y = $start + round($rp * $step); $div = 1 << (abs($y) + 1); ((1 - 2*signbit($y)) % $div) / $div }'
         r03: '$eval{ $rp = 3; $gp = ${src-geometry-precision}; $p_min = max(gp - 9, 7); $start = min(1, $gp - ($p_min + 6)); $step = max(1, (min($gp - 1, $p_min + 7) - $p_min) / 5); $y = $start + round($rp * $step); $div = 1 << (abs($y) + 1); ((1 - 2*signbit($y)) % $div) / $div }'
         r04: '$eval{ $rp = 2; $gp = ${src-geometry-precision}; $p_min = max(gp - 9, 7); $start = min(1, $gp - ($p_min + 6)); $step = max(1, (min($gp - 1, $p_min + 7) - $p_min) / 5); $y = $start + round($rp * $step); $div = 1 << (abs($y) + 1); ((1 - 2*signbit($y)) % $div) / $div }'
         r05: '$eval{ $rp = 1; $gp = ${src-geometry-precision}; $p_min = max(gp - 9, 7); $start = min(1, $gp - ($p_min + 6)); $step = max(1, (min($gp - 1, $p_min + 7) - $p_min) / 5); $y = $start + round($rp * $step); $div = 1 << (abs($y) + 1); ((1 - 2*signbit($y)) % $div) / $div }'
         r06: '$eval{ $rp = 0; $gp = ${src-geometry-precision}; $p_min = max(gp - 9, 7); $start = min(1, $gp - ($p_min + 6)); $step = max(1, (min($gp - 1, $p_min + 7) - $p_min) / 5); $y = $start + round($rp * $step); $div = 1 << (abs($y) + 1); ((1 - 2*signbit($y)) % $div) / $div }'
23
24
25

     ####
     # attribute coding (common options -- relies on option ordering)
26
27
     #  - skip attribute coding if dist2 parameters are not defined
     #     -- this may seem odd, but is required for lossy-geom data
28
     #  - scale 16bit reflectance data to 8bit
29
30
31
32
33
     #  - use lifting transform for lossy conditions
     #  - automatically derive dist2 based on single initial value by the encoder:
     #    - the initial dist2 is scaled by positionQuantisationScale
     #    - generates dist2 per lod
     -
34
35
       - !conditional 'defined ${seq_lod} && defined ${seq_dist2}'
       - colorTransform: 1
36
37
38
       -
         - !conditional '${reflectance8b16b_scale_factor}'
         - hack.reflectanceScale: ${reflectance8b16b_scale_factor}
39
40
41
42
43
       - transformType: 2
       - numberOfNearestNeighborsInPrediction: 3
       - levelOfDetailCount: ${seq_lod}
       - positionQuantizationScaleAdjustsDist2: 1
       - dist2: ${seq_dist2}
44
       - lodBinaryTree: 0
45
       - lodDecimation: 0
46
47
       -
         - !conditional '"${group}" =~ m{^cat3}'
48
         - lodDecimation: 1
49

50
51
52
53
       ##
       # attribute coding -- reflectance
       -
         - !conditional '${has_refl}'
54
         - adaptivePredictionThreshold: '$eval{ 1 << (8 - 2) }'
55
56
57
58
59
60
61
         - qp:
             r01: 52
             r02: 46
             r03: 40
             r04: 34
             r05: 28
             r06: 22
62
         - bitdepth: 8
63
64
65
66
67
68
         - attribute: reflectance

       ##
       # attribute coding -- colour
       -
         - !conditional '${has_colour}'
69
         - adaptivePredictionThreshold: '$eval{ 1 << (8 - 2) }'
70
71
72
73
74
75
76
77
         - qp:
             r01: 52
             r02: 46
             r03: 40
             r04: 34
             r05: 28
             r06: 22
         - qpChromaOffset: 0
78
         - bitdepth: 8
79
         - attribute: color
80
81
82
83

    decflags:
     - mode: 1
     - colorTransform: 1
84
85
86
     -
       - !conditional '${reflectance8b16b_scale_factor}'
       - hack.reflectanceScale: ${reflectance8b16b_scale_factor}
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110

    pcerrorflags:
     - dropdups: 2
     - neighborsProc: 1

    sequences:
      # cat3
      citytunnel_q1mm:
      tollbooth_q1mm:
      overpass_q1mm:

      ford_01_q1mm:
        # todo(??): it would be nice if the encoder could make this adjustment
        # override dist2 at particular rate points (lossy geometry only)
        seq_lod: { r01: 8, r02: 9 }

      ford_02_q1mm:
        # override dist2 at particular rate points (lossy geometry only)
        seq_lod: { r01: 8, r02: 9 }

      ford_03_q1mm:
        # override dist2 at particular rate points (lossy geometry only)
        seq_lod: { r01: 8, r02: 9 }

111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
      qnxadas-junction-approach:
        # override dist2 at particular rate points (lossy geometry only)
        seq_lod: { r01: 8, r02: 9 }

      qnxadas-junction-exit:
        # override dist2 at particular rate points (lossy geometry only)
        seq_lod: { r01: 8, r02: 9 }

      qnxadas-motorway-join:
        # override dist2 at particular rate points (lossy geometry only)
        seq_lod: { r01: 8, r02: 9 }

      qnxadas-navigating-bends:
        # override dist2 at particular rate points (lossy geometry only)
        seq_lod: { r01: 8, r02: 9 }
126
127

      # cat1
128
129
      arco_valentino_dense_vox12:
      arco_valentino_dense_vox20:
130
      basketball_player_vox11_00000200:
131
      boxer_viewdep_vox12:
132
      dancer_vox11_00000001:
133
      egyptian_mask_vox12:
134
      egyptian_mask_vox20:
135
      facade_00009_vox12:
136
      facade_00009_vox20:
137
      facade_00015_vox14:
138
      facade_00015_vox20:
139
      facade_00064_vox11:
140
141
      facade_00064_vox14:
      facade_00064_vox20:
142
      frog_00067_vox12:
143
      frog_00067_vox20:
144
      head_00039_vox12:
145
      head_00039_vox20:
146
      house_without_roof_00057_vox12:
147
148
149
      house_without_roof_00057_vox20:
      landscape_00014_vox14:
      landscape_00014_vox20:
150
      longdress_viewdep_vox12:
151
      longdress_vox10_1300:
152
      loot_viewdep_vox12:
153
      loot_vox10_1200:
154
155
      palazzo_carignano_dense_vox14:
      palazzo_carignano_dense_vox20:
156
      queen_0200:
157
      redandblack_viewdep_vox12:
158
159
      redandblack_vox10_1550:
      shiva_00035_vox12:
160
      shiva_00035_vox20:
161
      soldier_viewdep_vox12:
162
      soldier_vox10_0690:
163
164
165
166
167
168
      stanford_area_2_vox16:
      stanford_area_2_vox20:
      stanford_area_4_vox16:
      stanford_area_4_vox20:
      staue_klimt_vox12:
      staue_klimt_vox20:
169
      thaidancer_viewdep_vox12:
170
171
      ulb_unicorn_hires_vox15:
      ulb_unicorn_hires_vox20:
172
      ulb_unicorn_vox13:
173
      ulb_unicorn_vox20: