Commit 4da3ed40 authored by Yaowu Xu's avatar Yaowu Xu Committed by Gerrit Code Review
Browse files

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

parents b5e73bdd 34dac00a
...@@ -59,12 +59,12 @@ int av1_clpf_frame(const YV12_BUFFER_CONFIG *dst, const YV12_BUFFER_CONFIG *rec, ...@@ -59,12 +59,12 @@ int av1_clpf_frame(const YV12_BUFFER_CONFIG *dst, const YV12_BUFFER_CONFIG *rec,
/* Constrained low-pass filter (CLPF) */ /* Constrained low-pass filter (CLPF) */
int c, k, l, m, n; int c, k, l, m, n;
const int bs = MI_SIZE; const int bs = MI_SIZE;
int width = cm->mi_cols * bs; int width = rec->y_crop_width;
int height = cm->mi_rows * bs; int height = rec->y_crop_height;
int xpos, ypos; int xpos, ypos;
int stride_y = rec->y_stride; int stride_y = rec->y_stride;
int num_fb_hor = (width + (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) - bs) >> fb_size_log2; int num_fb_ver = (height + (1 << fb_size_log2) - 1) >> fb_size_log2;
int block_index = 0; int block_index = 0;
// Iterate over all filter blocks // Iterate over all filter blocks
......
...@@ -187,7 +187,8 @@ void SIMD_FUNC(aom_clpf_block)(const uint8_t *src, uint8_t *dst, int stride, ...@@ -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 // 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 // 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. // 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, aom_clpf_block_c(src, dst, stride, x0, y0, sizex, sizey, width, height,
strength); strength);
} else { } else {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment