For luma, qp can only change at the CU level, so the qp tab size is related to the CU. For chroma, considering the joint CbCr, the QP tab size is related to the TU.
Showing the changes to libavcodec (1 of 1 file). Show all
Unified · Split
| @@ -145,6 +145,8 @@ static void min_cb_nz_tl_init(TabList *l, VVCFrameContext *fc) · 144 unmodified lines | ||
| 145 | 145 | TL_ADD(cp_mv[i], pic_size_in_min_cb * MAX_CONTROL_POINTS); |
| 146 | 146 | TL_ADD(cpm[i], pic_size_in_min_cb); |
| 147 | 147 | } |
| 148 | + // For luma, qp can only change at the CU level, so the qp tab size is related to the CU. | |
| 149 | + TL_ADD(qp[LUMA], pic_size_in_min_cb); | |
| 148 | 150 | } |
| 149 | 151 | |
| 150 | 152 | static void min_pu_tl_init(TabList *l, VVCFrameContext *fc) |
| @@ -186,7 +188,6 @@ static void min_tu_tl_init(TabList *l, VVCFrameContext *fc) · 35 unmodified lines | ||
| 186 | 188 | |
| 187 | 189 | for (int i = 0; i < VVC_MAX_SAMPLE_ARRAYS; i++) { |
| 188 | 190 | TL_ADD(tu_coded_flag[i], pic_size_in_min_tu); |
| 189 | − TL_ADD(qp[i], pic_size_in_min_tu); | |
| 190 | 191 | |
| 191 | 192 | for (int vertical = 0; vertical < 2; vertical++) |
| 192 | 193 | TL_ADD(bs[vertical][i], pic_size_in_min_tu); |
| @@ -212,6 +213,10 @@ static void min_tu_nz_tl_init(TabList *l, VVCFrameContext *fc) · 19 unmodified lines | ||
| 212 | 213 | TL_ADD(max_len_p[vertical], pic_size_in_min_tu); |
| 213 | 214 | TL_ADD(max_len_q[vertical], pic_size_in_min_tu); |
| 214 | 215 | } |
| 216 | + | |
| 217 | + // For chroma, considering the joint CbCr, the QP tab size is related to the TU. | |
| 218 | + for (int i = CB; i < VVC_MAX_SAMPLE_ARRAYS; i++) | |
| 219 | + TL_ADD(qp[i], pic_size_in_min_tu); | |
| 215 | 220 | } |
| 216 | 221 | |
| 217 | 222 | static void pixel_buffer_nz_tl_init(TabList *l, VVCFrameContext *fc) |