Merge "Make CLPF handle frame widths and heights not divisible by 8." into nextgenv2

This commit is contained in:
Yaowu Xu 2016-10-11 18:40:04 +00:00 коммит произвёл Gerrit Code Review
Родитель b5e73bddb0 34dac00adc
Коммит 4da3ed40a3
2 изменённых файлов: 6 добавлений и 5 удалений

Просмотреть файл

@ -59,12 +59,12 @@ int av1_clpf_frame(const YV12_BUFFER_CONFIG *dst, const YV12_BUFFER_CONFIG *rec,
/* Constrained low-pass filter (CLPF) */
int c, k, l, m, n;
const int bs = MI_SIZE;
int width = cm->mi_cols * bs;
int height = cm->mi_rows * bs;
int width = rec->y_crop_width;
int height = rec->y_crop_height;
int xpos, ypos;
int stride_y = rec->y_stride;
int num_fb_hor = (width + (1 << fb_size_log2) - bs) >> fb_size_log2;
int num_fb_ver = (height + (1 << fb_size_log2) - bs) >> fb_size_log2;
int num_fb_hor = (width + (1 << fb_size_log2) - 1) >> fb_size_log2;
int num_fb_ver = (height + (1 << fb_size_log2) - 1) >> fb_size_log2;
int block_index = 0;
// Iterate over all filter blocks

Просмотреть файл

@ -187,7 +187,8 @@ void SIMD_FUNC(aom_clpf_block)(const uint8_t *src, uint8_t *dst, int stride,
// This will only be used if 4:2:0 and width not a multiple of 16 and along
// the right edge only, so we can fall back to the plain C implementation in
// this case. If not extended to chroma, this test will be redundant.
if (sizex != 8 || width < 16) { // Fallback to C if frame width < 16
if (sizex != 8 || width < 16 || y0 + 8 > height || x0 + 8 > width) {
// Fallback to C for odd sizes
aom_clpf_block_c(src, dst, stride, x0, y0, sizex, sizey, width, height,
strength);
} else {