[FFmpeg-cvslog] hevc: further reduce code duplication in hls_prediction_unit()

Anton Khirnov git at videolan.org
Mon Nov 17 12:06:35 CET 2014


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sun Nov 16 08:06:27 2014 +0100| [84c0ece5fd9569c0f31804f02a199ecd0e7d13d8] | committer: Anton Khirnov

hevc: further reduce code duplication in hls_prediction_unit()

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

 libavcodec/hevc.c |   18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index 674d64c..2cbb35f 100644
--- a/libavcodec/hevc.c
+++ b/libavcodec/hevc.c
@@ -1665,12 +1665,6 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0,
 
         ff_hevc_luma_mv_merge_mode(s, x0, y0, nPbW, nPbH, log2_cb_size,
                                    partIdx, merge_idx, &current_mv);
-        x_pu = x0 >> s->sps->log2_min_pu_size;
-        y_pu = y0 >> s->sps->log2_min_pu_size;
-
-        for (j = 0; j < nPbH >> s->sps->log2_min_pu_size; j++)
-            for (i = 0; i < nPbW >> s->sps->log2_min_pu_size; i++)
-                tab_mvf[(y_pu + j) * min_pu_width + x_pu + i] = current_mv;
     } else {
         enum InterPredIdc inter_pred_idc = PRED_L0;
         ff_hevc_set_neighbour_available(s, x0, y0, nPbW, nPbH);
@@ -1712,14 +1706,14 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0,
             current_mv.mv[1].x += lc->pu.mvd.x;
             current_mv.mv[1].y += lc->pu.mvd.y;
         }
+    }
 
-        x_pu = x0 >> s->sps->log2_min_pu_size;
-        y_pu = y0 >> s->sps->log2_min_pu_size;
+    x_pu = x0 >> s->sps->log2_min_pu_size;
+    y_pu = y0 >> s->sps->log2_min_pu_size;
 
-        for(j = 0; j < nPbH >> s->sps->log2_min_pu_size; j++)
-            for (i = 0; i < nPbW >> s->sps->log2_min_pu_size; i++)
-                tab_mvf[(y_pu + j) * min_pu_width + x_pu + i] = current_mv;
-    }
+    for (j = 0; j < nPbH >> s->sps->log2_min_pu_size; j++)
+        for (i = 0; i < nPbW >> s->sps->log2_min_pu_size; i++)
+            tab_mvf[(y_pu + j) * min_pu_width + x_pu + i] = current_mv;
 
     if (current_mv.pred_flag[0]) {
         ref0 = refPicList[0].ref[current_mv.ref_idx[0]];



More information about the ffmpeg-cvslog mailing list