| @@ -784,8 +784,8 @@ static void fill_variance_8x8avg(const uint8_t *s, int sp, const uint8_t *d, · 783 unmodified lines |
| 784 | | 784 | |
| 785 | // Check if most of the superblock is skin content, and if so, force split to | 785 | // Check if most of the superblock is skin content, and if so, force split to |
| 786 | // 32x32, and set x->sb_is_skin for use in mode selection. | 786 | // 32x32, and set x->sb_is_skin for use in mode selection. |
| 787 | static int skin_sb_split(VP9_COMP *cpi, MACROBLOCK *x, const int low_res, | 787 | static int skin_sb_split(VP9_COMP *cpi, const int low_res, int mi_row, |
| 788 | int mi_row, int mi_col, int *force_split) { | 788 | int mi_col, int *force_split) { |
| 789 | VP9_COMMON *const cm = &cpi->common; | 789 | VP9_COMMON *const cm = &cpi->common; |
| 790 | #if CONFIG_VP9_HIGHBITDEPTH | 790 | #if CONFIG_VP9_HIGHBITDEPTH |
| 791 | if (cm->use_highbitdepth) return 0; | 791 | if (cm->use_highbitdepth) return 0; |
| @@ -797,11 +797,6 @@ static int skin_sb_split(VP9_COMP *cpi, MACROBLOCK *x, const int low_res, · 5 unmodified lines |
| 797 | mi_row + 8 < cm->mi_rows)) { | 797 | mi_row + 8 < cm->mi_rows)) { |
| 798 | int num_16x16_skin = 0; | 798 | int num_16x16_skin = 0; |
| 799 | int num_16x16_nonskin = 0; | 799 | int num_16x16_nonskin = 0; |
| 800 | uint8_t *ysignal = x->plane[0].src.buf; | | |
| 801 | uint8_t *usignal = x->plane[1].src.buf; | | |
| 802 | uint8_t *vsignal = x->plane[2].src.buf; | | |
| 803 | int sp = x->plane[0].src.stride; | | |
| 804 | int spuv = x->plane[1].src.stride; | | |
| 805 | const int block_index = mi_row * cm->mi_cols + mi_col; | 800 | const int block_index = mi_row * cm->mi_cols + mi_col; |
| 806 | const int bw = num_8x8_blocks_wide_lookup[BLOCK_64X64]; | 801 | const int bw = num_8x8_blocks_wide_lookup[BLOCK_64X64]; |
| 807 | const int bh = num_8x8_blocks_high_lookup[BLOCK_64X64]; | 802 | const int bh = num_8x8_blocks_high_lookup[BLOCK_64X64]; |
| @@ -820,13 +815,7 @@ static int skin_sb_split(VP9_COMP *cpi, MACROBLOCK *x, const int low_res, · 12 unmodified lines |
| 820 | i = ymis; | 815 | i = ymis; |
| 821 | break; | 816 | break; |
| 822 | } | 817 | } |
| 823 | ysignal += 16; | | |
| 824 | usignal += 8; | | |
| 825 | vsignal += 8; | | |
| 826 | } | 818 | } |
| 827 | ysignal += (sp << 4) - 64; | | |
| 828 | usignal += (spuv << 3) - 32; | | |
| 829 | vsignal += (spuv << 3) - 32; | | |
| 830 | } | 819 | } |
| 831 | if (num_16x16_skin > 12) { | 820 | if (num_16x16_skin > 12) { |
| 832 | *force_split = 1; | 821 | *force_split = 1; |
| @@ -1503,8 +1492,7 @@ static int choose_partitioning(VP9_COMP *cpi, const TileInfo *const tile, · 670 unmodified lines |
| 1503 | vp9_build_inter_predictors_sb(xd, mi_row, mi_col, BLOCK_64X64); | 1492 | vp9_build_inter_predictors_sb(xd, mi_row, mi_col, BLOCK_64X64); |
| 1504 | | 1493 | |
| 1505 | if (cpi->use_skin_detection) | 1494 | if (cpi->use_skin_detection) |
| 1506 | x->sb_is_skin = | 1495 | x->sb_is_skin = skin_sb_split(cpi, low_res, mi_row, mi_col, force_split); |
| 1507 | skin_sb_split(cpi, x, low_res, mi_row, mi_col, force_split); | | |
| 1508 | | 1496 | |
| 1509 | d = xd->plane[0].dst.buf; | 1497 | d = xd->plane[0].dst.buf; |
| 1510 | dp = xd->plane[0].dst.stride; | 1498 | dp = xd->plane[0].dst.stride; |