History

avcodec/vvcdec: remove unnecessary perframe initializations

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

Nuo Mi committed 2 years ago

Commit 4f609611 parent 210bf1b1 file · +46 −17Browse files

Unified · Split

libavcodec/vvc/dec.c+46−17
@@ -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
139static 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
146static void min_pu_tl_init(TabList *l, VVCFrameContext *fc)160static 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
196static 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,

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t