Merge "Add non420 code in multi-threaded loopfilter"

This commit is contained in:
Yunqing Wang 2015-01-20 11:45:03 -08:00 committed by Gerrit Code Review
commit 79b88cc2a5

View File

@ -91,6 +91,8 @@ void thread_loop_filter_rows(const YV12_BUFFER_CONFIG *const frame_buffer,
int start, int stop, int y_only,
VP9LfSync *const lf_sync) {
const int num_planes = y_only ? 1 : MAX_MB_PLANE;
const int use_420 = y_only || (planes[1].subsampling_y == 1 &&
planes[1].subsampling_x == 1);
const int sb_cols = mi_cols_aligned_to_sb(cm->mi_cols) >> MI_BLOCK_SIZE_LOG2;
int mi_row, mi_col;
@ -107,10 +109,18 @@ void thread_loop_filter_rows(const YV12_BUFFER_CONFIG *const frame_buffer,
sync_read(lf_sync, r, c);
vp9_setup_dst_planes(planes, frame_buffer, mi_row, mi_col);
vp9_setup_mask(cm, mi_row, mi_col, mi + mi_col, cm->mi_stride, &lfm);
// TODO(JBB): Make setup_mask work for non 420.
if (use_420)
vp9_setup_mask(cm, mi_row, mi_col, mi + mi_col, cm->mi_stride,
&lfm);
for (plane = 0; plane < num_planes; ++plane) {
vp9_filter_block_plane(cm, &planes[plane], mi_row, &lfm);
if (use_420)
vp9_filter_block_plane(cm, &planes[plane], mi_row, &lfm);
else
vp9_filter_block_plane_non420(cm, &planes[plane], mi + mi_col,
mi_row, mi_col);
}
sync_write(lf_sync, r, c, sb_cols);