[x264-devel] MBAFF: Use both left macroblocks for ref_idx calculation

Simon Horlick git at videolan.org
Thu May 12 08:39:04 CEST 2011


x264 | branch: master | Simon Horlick <simonhorlick at gmail.com> | Tue Mar 15 01:39:49 2011 +0000| [7da52fa0dc8c93fa39bcd391c76d5a6b67684c6b] | committer: Jason Garrett-Glaser

MBAFF: Use both left macroblocks for ref_idx calculation

> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=7da52fa0dc8c93fa39bcd391c76d5a6b67684c6b
---

 common/macroblock.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/common/macroblock.c b/common/macroblock.c
index 95adbea..5230190 100644
--- a/common/macroblock.c
+++ b/common/macroblock.c
@@ -1177,8 +1177,9 @@ void x264_macroblock_cache_load( x264_t *h, int mb_x, int mb_y )
             uint8_t skipbp;
             x264_macroblock_cache_skip( h, 0, 0, 4, 4, 0 );
             skipbp = (h->mb.i_neighbour & MB_LEFT) ? h->mb.skipbp[left[0]] : 0;
-            h->mb.cache.skip[x264_scan8[0] - 1] = skipbp & 0x2;
-            h->mb.cache.skip[x264_scan8[8] - 1] = skipbp & 0x8;
+            h->mb.cache.skip[x264_scan8[0] - 1] = (skipbp >> (1+(left_index_table->mv[0]&~1))) & 1;
+            skipbp = (h->mb.i_neighbour & MB_LEFT) ? h->mb.skipbp[left[1]] : 0;
+            h->mb.cache.skip[x264_scan8[8] - 1] = (skipbp >> (1+(left_index_table->mv[2]&~1))) & 1;
             skipbp = (h->mb.i_neighbour & MB_TOP) ? h->mb.skipbp[top] : 0;
             h->mb.cache.skip[x264_scan8[0] - 8] = skipbp & 0x4;
             h->mb.cache.skip[x264_scan8[4] - 8] = skipbp & 0x8;



More information about the x264-devel mailing list