deblock, sao, alf skip, imtf, ipm, cqt_depth, cb_pos_x, cb_pos_y, cb_height, cp_mv, tb_pos_x0, tb_pos_y0, tb_width, tb_height
Unified · Split
| @@ -99,9 +99,6 @@ static void ctu_tl_init(TabList *l, VVCFrameContext *fc) · 98 unmodified lines | |||
| 99 | 99 | ||
| 100 | tl_init(l, 1, changed); | 100 | tl_init(l, 1, changed); |
| 101 | 101 | ||
| 102 | TL_ADD(deblock, ctu_count); | ||
| 103 | TL_ADD(sao, ctu_count); | ||
| 104 | TL_ADD(alf, ctu_count); | ||
| 105 | TL_ADD(ctus, ctu_count); | 102 | TL_ADD(ctus, ctu_count); |
| 106 | } | 103 | } |
| 107 | 104 | ||
| @@ -114,6 +111,10 @@ static void ctu_nz_tl_init(TabList *l, VVCFrameContext *fc) · 6 unmodified lines | |||
| 114 | const int changed = fc->tab.sz.ctu_count != ctu_count || fc->tab.sz.ctu_size != ctu_size; | 111 | const int changed = fc->tab.sz.ctu_count != ctu_count || fc->tab.sz.ctu_size != ctu_size; |
| 115 | 112 | ||
| 116 | tl_init(l, 0, changed); | 113 | tl_init(l, 0, changed); |
| 114 | |||
| 115 | TL_ADD(deblock, ctu_count); | ||
| 116 | TL_ADD(sao, ctu_count); | ||
| 117 | TL_ADD(alf, ctu_count); | ||
| 117 | TL_ADD(slice_idx, ctu_count); | 118 | TL_ADD(slice_idx, ctu_count); |
| 118 | TL_ADD(coeffs, ctu_count * ctu_size * VVC_MAX_SAMPLE_ARRAYS); | 119 | TL_ADD(coeffs, ctu_count * ctu_size * VVC_MAX_SAMPLE_ARRAYS); |
| 119 | } | 120 | } |
| @@ -126,21 +127,34 @@ static void min_cb_tl_init(TabList *l, VVCFrameContext *fc) · 6 unmodified lines | |||
| 126 | 127 | ||
| 127 | tl_init(l, 1, changed); | 128 | tl_init(l, 1, changed); |
| 128 | 129 | ||
| 129 | TL_ADD(skip, pic_size_in_min_cb); | ||
| 130 | TL_ADD(imf, pic_size_in_min_cb); | 130 | TL_ADD(imf, pic_size_in_min_cb); |
| 131 | TL_ADD(imtf, pic_size_in_min_cb); | ||
| 132 | TL_ADD(imm, pic_size_in_min_cb); | 131 | TL_ADD(imm, pic_size_in_min_cb); |
| 132 | |||
| 133 | for (int i = LUMA; i <= CHROMA; i++) { | ||
| 134 | TL_ADD(cb_width[i], pic_size_in_min_cb); //is_a0_available requires this | ||
| 135 | TL_ADD(cpm[i], pic_size_in_min_cb); | ||
| 136 | }; | ||
| 137 | } | ||
| 138 | |||
| 139 | static void min_cb_nz_tl_init(TabList *l, VVCFrameContext *fc) | ||
| 140 | { | ||
| 141 | const VVCPPS *pps = fc->ps.pps; | ||
| 142 | const int pic_size_in_min_cb = pps ? pps->min_cb_width * pps->min_cb_height : 0; | ||
| 143 | const int changed = fc->tab.sz.pic_size_in_min_cb != pic_size_in_min_cb; | ||
| 144 | |||
| 145 | tl_init(l, 0, changed); | ||
| 146 | |||
| 147 | TL_ADD(skip, pic_size_in_min_cb); | ||
| 148 | TL_ADD(imtf, pic_size_in_min_cb); | ||
| 133 | TL_ADD(ipm, pic_size_in_min_cb); | 149 | TL_ADD(ipm, pic_size_in_min_cb); |
| 134 | 150 | ||
| 135 | for (int i = LUMA; i <= CHROMA; i++) { | 151 | for (int i = LUMA; i <= CHROMA; i++) { |
| 152 | TL_ADD(cqt_depth[i], pic_size_in_min_cb); | ||
| 136 | TL_ADD(cb_pos_x[i], pic_size_in_min_cb); | 153 | TL_ADD(cb_pos_x[i], pic_size_in_min_cb); |
| 137 | TL_ADD(cb_pos_y[i], pic_size_in_min_cb); | 154 | TL_ADD(cb_pos_y[i], pic_size_in_min_cb); |
| 138 | TL_ADD(cb_width[i], pic_size_in_min_cb); | ||
| 139 | TL_ADD(cb_height[i], pic_size_in_min_cb); | 155 | TL_ADD(cb_height[i], pic_size_in_min_cb); |
| 140 | TL_ADD(cqt_depth[i], pic_size_in_min_cb); | ||
| 141 | TL_ADD(cpm[i], pic_size_in_min_cb); | ||
| 142 | TL_ADD(cp_mv[i], pic_size_in_min_cb * MAX_CONTROL_POINTS); | 156 | TL_ADD(cp_mv[i], pic_size_in_min_cb * MAX_CONTROL_POINTS); |
| 143 | }; | 157 | } |
| 144 | } | 158 | } |
| 145 | 159 | ||
| 146 | static void min_pu_tl_init(TabList *l, VVCFrameContext *fc) | 160 | static void min_pu_tl_init(TabList *l, VVCFrameContext *fc) |
| @@ -166,22 +180,35 @@ static void min_tu_tl_init(TabList *l, VVCFrameContext *fc) · 19 unmodified lines | |||
| 166 | tl_init(l, 1, changed); | 180 | tl_init(l, 1, changed); |
| 167 | 181 | ||
| 168 | TL_ADD(tu_joint_cbcr_residual_flag, pic_size_in_min_tu); | 182 | TL_ADD(tu_joint_cbcr_residual_flag, pic_size_in_min_tu); |
| 183 | |||
| 184 | for (int i = LUMA; i <= CHROMA; i++) | ||
| 185 | TL_ADD(pcmf[i], pic_size_in_min_tu); | ||
| 186 | |||
| 187 | for (int i = 0; i < VVC_MAX_SAMPLE_ARRAYS; i++) { | ||
| 188 | TL_ADD(tu_coded_flag[i], pic_size_in_min_tu); | ||
| 189 | TL_ADD(qp[i], pic_size_in_min_tu); | ||
| 190 | |||
| 191 | for (int vertical = 0; vertical < 2; vertical++) | ||
| 192 | TL_ADD(bs[vertical][i], pic_size_in_min_tu); | ||
| 193 | } | ||
| 194 | } | ||
| 195 | |||
| 196 | static void min_tu_nz_tl_init(TabList *l, VVCFrameContext *fc) | ||
| 197 | { | ||
| 198 | const VVCPPS *pps = fc->ps.pps; | ||
| 199 | const int pic_size_in_min_tu = pps ? pps->min_tu_width * pps->min_tu_height : 0; | ||
| 200 | const int changed = fc->tab.sz.pic_size_in_min_tu != pic_size_in_min_tu; | ||
| 201 | |||
| 202 | tl_init(l, 0, changed); | ||
| 203 | |||
| 169 | for (int i = LUMA; i <= CHROMA; i++) { | 204 | for (int i = LUMA; i <= CHROMA; i++) { |
| 170 | TL_ADD(tb_pos_x0[i], pic_size_in_min_tu); | 205 | TL_ADD(tb_pos_x0[i], pic_size_in_min_tu); |
| 171 | TL_ADD(tb_pos_y0[i], pic_size_in_min_tu); | 206 | TL_ADD(tb_pos_y0[i], pic_size_in_min_tu); |
| 172 | TL_ADD(tb_width[i], pic_size_in_min_tu); | 207 | TL_ADD(tb_width[i], pic_size_in_min_tu); |
| 173 | TL_ADD(tb_height[i], pic_size_in_min_tu); | 208 | TL_ADD(tb_height[i], pic_size_in_min_tu); |
| 174 | TL_ADD(pcmf[i], pic_size_in_min_tu); | ||
| 175 | } | ||
| 176 | |||
| 177 | for (int i = 0; i < VVC_MAX_SAMPLE_ARRAYS; i++) { | ||
| 178 | TL_ADD(tu_coded_flag[i], pic_size_in_min_tu); | ||
| 179 | TL_ADD(qp[i], pic_size_in_min_tu); | ||
| 180 | } | 209 | } |
| 181 | 210 | ||
| 182 | for (int vertical = 0; vertical < 2; vertical++) { | 211 | for (int vertical = 0; vertical < 2; vertical++) { |
| 183 | for (int j = 0; j < VVC_MAX_SAMPLE_ARRAYS; j++) | ||
| 184 | TL_ADD(bs[vertical][j], pic_size_in_min_tu); | ||
| 185 | TL_ADD(max_len_p[vertical], pic_size_in_min_tu); | 212 | TL_ADD(max_len_p[vertical], pic_size_in_min_tu); |
| 186 | TL_ADD(max_len_q[vertical], pic_size_in_min_tu); | 213 | TL_ADD(max_len_q[vertical], pic_size_in_min_tu); |
| 187 | } | 214 | } |
| @@ -283,8 +310,10 @@ static int frame_context_for_each_tl(VVCFrameContext *fc, int (*unary_fn)(TabLis · 95 unmodified lines | |||
| 283 | ctu_tl_init, | 310 | ctu_tl_init, |
| 284 | ctu_nz_tl_init, | 311 | ctu_nz_tl_init, |
| 285 | min_cb_tl_init, | 312 | min_cb_tl_init, |
| 313 | min_cb_nz_tl_init, | ||
| 286 | min_pu_tl_init, | 314 | min_pu_tl_init, |
| 287 | min_tu_tl_init, | 315 | min_tu_tl_init, |
| 316 | min_tu_nz_tl_init, | ||
| 288 | pixel_buffer_nz_tl_init, | 317 | pixel_buffer_nz_tl_init, |
| 289 | msm_tl_init, | 318 | msm_tl_init, |
| 290 | ispmf_tl_init, | 319 | ispmf_tl_init, |