[FFmpeg-cvslog] avcodec/vvcdec: do not zero frame msf mmi table

Nuo Mi git at videolan.org
Thu Aug 15 15:44:02 EEST 2024


ffmpeg | branch: master | Nuo Mi <nuomi2021 at gmail.com> | Sun Jul 28 11:18:05 2024 +0800| [ca2caeb21d18c75dd43cfb5111629dc2d8de4c87] | committer: Nuo Mi

avcodec/vvcdec: do not zero frame msf mmi table

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ca2caeb21d18c75dd43cfb5111629dc2d8de4c87
---

 libavcodec/vvc/ctu.c | 8 +++++---
 libavcodec/vvc/dec.c | 4 ++--
 libavcodec/vvc/mvs.c | 1 -
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/libavcodec/vvc/ctu.c b/libavcodec/vvc/ctu.c
index 579337759f..06b57215a4 100644
--- a/libavcodec/vvc/ctu.c
+++ b/libavcodec/vvc/ctu.c
@@ -1234,9 +1234,12 @@ static CodingUnit* add_cu(VVCLocalContext *lc, const int x0, const int y0,
 
 static void set_cu_tabs(const VVCLocalContext *lc, const CodingUnit *cu)
 {
-    const VVCFrameContext *fc   = lc->fc;
-    const TransformUnit *tu     = cu->tus.head;
+    const VVCFrameContext *fc = lc->fc;
+    const PredictionUnit *pu  = &cu->pu;
+    const TransformUnit *tu   = cu->tus.head;
 
+    set_cb_tab(lc, fc->tab.mmi, pu->mi.motion_model_idc);
+    set_cb_tab(lc, fc->tab.msf, pu->merge_subblock_flag);
     if (cu->tree_type != DUAL_TREE_CHROMA)
         set_cb_tab(lc, fc->tab.skip, cu->skip_flag);
 
@@ -1325,7 +1328,6 @@ static void merge_data_subblock(VVCLocalContext *lc)
     PredictionUnit *pu          = &cu->pu;
     int merge_subblock_idx      = 0;
 
-    set_cb_tab(lc, fc->tab.msf, pu->merge_subblock_flag);
     if (ph->max_num_subblock_merge_cand > 1) {
         merge_subblock_idx = ff_vvc_merge_subblock_idx(lc, ph->max_num_subblock_merge_cand);
     }
diff --git a/libavcodec/vvc/dec.c b/libavcodec/vvc/dec.c
index e078f9387b..c688f7d70d 100644
--- a/libavcodec/vvc/dec.c
+++ b/libavcodec/vvc/dec.c
@@ -155,9 +155,7 @@ static void min_pu_tl_init(TabList *l, VVCFrameContext *fc)
 
     tl_init(l, 1, changed);
 
-    TL_ADD(msf, pic_size_in_min_pu);
     TL_ADD(iaf, pic_size_in_min_pu);
-    TL_ADD(mmi, pic_size_in_min_pu);
 }
 
 static void min_pu_nz_tl_init(TabList *l, VVCFrameContext *fc)
@@ -168,6 +166,8 @@ static void min_pu_nz_tl_init(TabList *l, VVCFrameContext *fc)
 
     tl_init(l, 0, changed);
 
+    TL_ADD(msf, pic_size_in_min_pu);
+    TL_ADD(mmi, pic_size_in_min_pu);
     TL_ADD(mvf, pic_size_in_min_pu);
 }
 
diff --git a/libavcodec/vvc/mvs.c b/libavcodec/vvc/mvs.c
index e3f18f1861..86ad310035 100644
--- a/libavcodec/vvc/mvs.c
+++ b/libavcodec/vvc/mvs.c
@@ -399,7 +399,6 @@ static void store_cp_mv(const VVCLocalContext *lc, const MotionInfo *mi, const i
             const int offset = (y_cb * min_cb_width + x_cb) * MAX_CONTROL_POINTS;
 
             memcpy(&fc->tab.cp_mv[lx][offset], mi->mv[lx], sizeof(Mv) * num_cp_mv);
-            SAMPLE_CTB(fc->tab.mmi, x_cb, y_cb) = mi->motion_model_idc;
         }
     }
 }



More information about the ffmpeg-cvslog mailing list