ref: b87ebd7af8fefd3f4ecfafd424046ea27d32503c
parent: 2d12a52ff09ff47cd69659b6d2f862af1913c779
parent: afc8c4836fa711501f81a6d54cf0ffa49a2fb99f
author: Jerome Jiang <jianj@google.com>
date: Fri Jan 6 16:57:27 EST 2017
Merge "vp9: Compute source sad for every superblock when partition copy is on."
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -3133,7 +3133,7 @@
if (cpi->oxcf.pass == 0 && cpi->oxcf.mode == REALTIME &&
cpi->oxcf.speed >= 5 && cpi->resize_state == 0 &&
(cpi->oxcf.content == VP9E_CONTENT_SCREEN ||
- cpi->oxcf.rc_mode == VPX_VBR) &&
+ cpi->oxcf.rc_mode == VPX_VBR || cpi->sf.copy_partition_flag) &&
cm->show_frame)
vp9_avg_source_sad(cpi);
--- a/vp9/encoder/vp9_ratectrl.c
+++ b/vp9/encoder/vp9_ratectrl.c
@@ -2251,10 +2251,12 @@
for (sbi_row = 0; sbi_row < sb_rows; ++sbi_row) {
for (sbi_col = 0; sbi_col < sb_cols; ++sbi_col) {
// Checker-board pattern, ignore boundary.
- if ((sbi_row > 0 && sbi_col > 0) &&
- (sbi_row < sb_rows - 1 && sbi_col < sb_cols - 1) &&
- ((sbi_row % 2 == 0 && sbi_col % 2 == 0) ||
- (sbi_row % 2 != 0 && sbi_col % 2 != 0))) {
+ // If the partition copy is on, compute for every superblock.
+ if (cpi->sf.copy_partition_flag ||
+ ((sbi_row > 0 && sbi_col > 0) &&
+ (sbi_row < sb_rows - 1 && sbi_col < sb_cols - 1) &&
+ ((sbi_row % 2 == 0 && sbi_col % 2 == 0) ||
+ (sbi_row % 2 != 0 && sbi_col % 2 != 0)))) {
num_samples++;
avg_sad += cpi->fn_ptr[bsize].sdf(src_y, src_ystride, last_src_y,
last_src_ystride);