summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2016-08-03 16:43:31 +0800
committerSean V Kelley <seanvk@posteo.de>2016-08-04 15:53:53 -0700
commite32ac14feacff2d1b2a082ad54c0a91e9a8735a5 (patch)
tree37749955fb06a54e226062871dbb9ecc38cb49b7
parent1cd67951974c944b060e2d5d88a76abb34c0c99b (diff)
Set cost for modes used for VP8 encoding
This is similar to what commit 1cd6795 does Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Tested-by: Wang, Fei W <fei.w.wang@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de>
-rw-r--r--src/gen6_mfc_common.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gen6_mfc_common.c b/src/gen6_mfc_common.c
index c3e4d80..59f7785 100644
--- a/src/gen6_mfc_common.c
+++ b/src/gen6_mfc_common.c
@@ -906,10 +906,16 @@ void intel_vme_vp8_update_mbmv_cost(VADriverContextP ctx,
qp = mfc_context->bit_rate_control_context[slice_type].QpPrimeY;
lambda = intel_lambda_qp(qp * QP_MAX / VP8_QP_MAX);
+
+ m_cost = lambda;
+ vme_state_message[MODE_CHROMA_INTRA] = intel_format_lutvalue(m_cost, 0x8f);
+
if (is_key_frame) {
vme_state_message[MODE_INTRA_16X16] = 0;
m_cost = lambda * 16;
vme_state_message[MODE_INTRA_4X4] = intel_format_lutvalue(m_cost, 0x8f);
+ m_cost = lambda * 3;
+ vme_state_message[MODE_INTRA_NONPRED] = intel_format_lutvalue(m_cost, 0x6f);
} else {
m_cost = 0;
vme_state_message[MODE_INTER_MV0] = intel_format_lutvalue(m_cost, 0x6f);
@@ -934,6 +940,7 @@ void intel_vme_vp8_update_mbmv_cost(VADriverContextP ctx,
vme_state_message[MODE_INTER_16X8] = 0x4a;
vme_state_message[MODE_INTER_8X8] = 0x4a;
vme_state_message[MODE_INTER_4X4] = 0x4a;
+ vme_state_message[MODE_INTER_BWD] = 0;
return;
}
m_costf = lambda * 10;
@@ -941,6 +948,10 @@ void intel_vme_vp8_update_mbmv_cost(VADriverContextP ctx,
m_cost = lambda * 24;
vme_state_message[MODE_INTRA_4X4] = intel_format_lutvalue(m_cost, 0x8f);
+ m_costf = lambda * 3.5;
+ m_cost = m_costf;
+ vme_state_message[MODE_INTRA_NONPRED] = intel_format_lutvalue(m_cost, 0x6f);
+
m_costf = lambda * 2.5;
m_cost = m_costf;
vme_state_message[MODE_INTER_16X16] = intel_format_lutvalue(m_cost, 0x8f);