On Fri, 2015-05-22 at 00:06 -0600, Zhong Li wrote:
> 1. The q_index range of vp8 is different from h264, it's need to be
> mapped to avc qp range.
> 2. For CBR case, qp should be set to CBR calculated value.
> 
> Signed-off-by: Zhong Li <[email protected]>

Good catch. This looks good to me.

Thanks.
    Yakui
> ---
>  src/gen6_mfc_common.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/src/gen6_mfc_common.c b/src/gen6_mfc_common.c
> index 9c1d294..275fa13 100644
> --- a/src/gen6_mfc_common.c
> +++ b/src/gen6_mfc_common.c
> @@ -793,6 +793,7 @@ int intel_format_lutvalue(int value, int max)
>  
> 
>  #define              QP_MAX                  52
> +#define              VP8_QP_MAX              128
>  
> 
>  static float intel_lambda_qp(int qp)
> @@ -932,11 +933,17 @@ void intel_vme_vp8_update_mbmv_cost(VADriverContextP 
> ctx,
>      float   lambda, m_costf;
>  
>      int is_key_frame = !pic_param->pic_flags.bits.frame_type;
> +    int slice_type = (is_key_frame ? SLICE_TYPE_I : SLICE_TYPE_P);
>    
>      if (vme_state_message == NULL)
>       return;
>   
> -    lambda = intel_lambda_qp(q_matrix->quantization_index[0] >> 1);
> +    if (encoder_context->rate_control_mode == VA_RC_CQP)
> +        qp = q_matrix->quantization_index[0];
> +    else
> +        qp = mfc_context->bit_rate_control_context[slice_type].QpPrimeY;
> +
> +    lambda = intel_lambda_qp(qp * QP_MAX / VP8_QP_MAX);
>      if (is_key_frame) {
>       vme_state_message[MODE_INTRA_16X16] = 0;
>       m_cost = lambda * 16; 
> @@ -957,7 +964,7 @@ void intel_vme_vp8_update_mbmv_cost(VADriverContextP ctx,
>              mv_count++;
>       }
>  
> -     if (q_matrix->quantization_index[0] < 32 ) {
> +     if (qp < 32 ) {
>              vme_state_message[MODE_INTRA_16X16] = 0x4a;
>              vme_state_message[MODE_INTRA_4X4] = 0x4a;
>              vme_state_message[MODE_INTRA_NONPRED] = 0x4a;


_______________________________________________
Libva mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libva

Reply via email to