[FFmpeg-cvslog] r21400 - trunk/libavcodec/h264_loopfilter.c
michael
subversion
Sat Jan 23 16:28:34 CET 2010
Author: michael
Date: Sat Jan 23 16:28:34 2010
New Revision: 21400
Log:
Set edges based on cbp and mv partitioning, not just skiped MBs.
This is faster for videos that have lots of MBs that fall in this category.
Modified:
trunk/libavcodec/h264_loopfilter.c
Modified: trunk/libavcodec/h264_loopfilter.c
==============================================================================
--- trunk/libavcodec/h264_loopfilter.c Sat Jan 23 16:22:48 2010 (r21399)
+++ trunk/libavcodec/h264_loopfilter.c Sat Jan 23 16:28:34 2010 (r21400)
@@ -425,12 +425,12 @@ static av_always_inline void filter_mb_d
const int mbm_xy = dir == 0 ? mb_xy -1 : h->top_mb_xy;
const int mbm_type = s->current_picture.mb_type[mbm_xy];
- const int edges = (mb_type & (MB_TYPE_16x16|MB_TYPE_SKIP))
- == (MB_TYPE_16x16|MB_TYPE_SKIP) ? 1 : 4;
// how often to recheck mv-based bS when iterating between edges
static const uint8_t mask_edge_tab[2][8]={{0,3,3,3,1,1,1,1},
{0,3,1,1,3,3,3,3}};
const int mask_edge = mask_edge_tab[dir][(mb_type>>3)&7];
+ const int edges = mask_edge== 3 && !(h->cbp&15) ? 1 : 4;
+
// how often to recheck mv-based bS when iterating along each edge
const int mask_par0 = mb_type & (MB_TYPE_16x16 | (MB_TYPE_8x16 >> dir));
int start = h->slice_table[mbm_xy] == 0xFFFF
More information about the ffmpeg-cvslog
mailing list