[Libva] [libva][libva-intel-driver PATCH] VC1: No overlap smoothing if the overlap flag is 0

Zhao, Yakui yakui.zhao at intel.com
Mon Feb 2 17:08:56 PST 2015


On Mon, 2015-02-02 at 01:16 -0700, Xiang, Haihao wrote:
> Signed-off-by: Xiang, Haihao <haihao.xiang at intel.com>

LGTM.

Add: Reviewed-by: Zhao Yakui <yakui.zhao at intel.com>
> ---
>  src/gen6_mfd.c  | 42 +++++++++++++++++++++++-------------------
>  src/gen75_mfd.c | 42 +++++++++++++++++++++++-------------------
>  src/gen7_mfd.c  | 42 +++++++++++++++++++++++-------------------
>  src/gen8_mfd.c  | 42 +++++++++++++++++++++++-------------------
>  4 files changed, 92 insertions(+), 76 deletions(-)
> 
> diff --git a/src/gen6_mfd.c b/src/gen6_mfd.c
> index ea13e4f..95a8e92 100755
> --- a/src/gen6_mfd.c
> +++ b/src/gen6_mfd.c
> @@ -1469,25 +1469,29 @@ gen6_mfd_vc1_pic_state(VADriverContextP ctx,
>              brfd = 0;
>      }
>  
> -    overlap = 0;
> -    if (profile != GEN6_VC1_ADVANCED_PROFILE){
> -        if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9 &&
> -            pic_param->picture_fields.bits.picture_type != GEN6_VC1_B_PICTURE) {
> -            overlap = 1; 
> -        }
> -    }else {
> -        if (pic_param->picture_fields.bits.picture_type == GEN6_VC1_P_PICTURE &&
> -             pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> -              overlap = 1; 
> -        }
> -        if (pic_param->picture_fields.bits.picture_type == GEN6_VC1_I_PICTURE ||
> -            pic_param->picture_fields.bits.picture_type == GEN6_VC1_BI_PICTURE){
> -             if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> -                overlap = 1; 
> -             } else if (va_to_gen6_vc1_condover[pic_param->conditional_overlap_flag] == 2 ||
> -                        va_to_gen6_vc1_condover[pic_param->conditional_overlap_flag] == 3) {
> -                 overlap = 1;
> -             }
> +    overlap = pic_param->sequence_fields.bits.overlap;
> +
> +    if (overlap) {
> +        overlap = 0;
> +        if (profile != GEN6_VC1_ADVANCED_PROFILE){
> +            if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9 &&
> +                pic_param->picture_fields.bits.picture_type != GEN6_VC1_B_PICTURE) {
> +                overlap = 1;
> +            }
> +        }else {
> +            if (pic_param->picture_fields.bits.picture_type == GEN6_VC1_P_PICTURE &&
> +                pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> +                overlap = 1;
> +            }
> +            if (pic_param->picture_fields.bits.picture_type == GEN6_VC1_I_PICTURE ||
> +                pic_param->picture_fields.bits.picture_type == GEN6_VC1_BI_PICTURE){
> +                if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> +                    overlap = 1;
> +                } else if (va_to_gen6_vc1_condover[pic_param->conditional_overlap_flag] == 2 ||
> +                           va_to_gen6_vc1_condover[pic_param->conditional_overlap_flag] == 3) {
> +                    overlap = 1;
> +                }
> +            }
>          }
>      } 
>  
> diff --git a/src/gen75_mfd.c b/src/gen75_mfd.c
> index 1847d2c..971dcb0 100644
> --- a/src/gen75_mfd.c
> +++ b/src/gen75_mfd.c
> @@ -1799,25 +1799,29 @@ gen75_mfd_vc1_pic_state(VADriverContextP ctx,
>              brfd = 0;
>      }
>  
> -    overlap = 0;
> -    if (profile != GEN7_VC1_ADVANCED_PROFILE){
> -        if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9 &&
> -            pic_param->picture_fields.bits.picture_type != GEN7_VC1_B_PICTURE) {
> -            overlap = 1; 
> -        }
> -    }else {
> -        if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_P_PICTURE &&
> -             pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> -              overlap = 1; 
> -        }
> -        if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_I_PICTURE ||
> -            pic_param->picture_fields.bits.picture_type == GEN7_VC1_BI_PICTURE){
> -             if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> -                overlap = 1; 
> -             } else if (va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 2 ||
> -                        va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 3) {
> -                 overlap = 1;
> -             }
> +    overlap = pic_param->sequence_fields.bits.overlap;
> +
> +    if (overlap) {
> +        overlap = 0;
> +        if (profile != GEN7_VC1_ADVANCED_PROFILE){
> +            if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9 &&
> +                pic_param->picture_fields.bits.picture_type != GEN7_VC1_B_PICTURE) {
> +                overlap = 1;
> +            }
> +        }else {
> +            if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_P_PICTURE &&
> +                pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> +                overlap = 1;
> +            }
> +            if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_I_PICTURE ||
> +                pic_param->picture_fields.bits.picture_type == GEN7_VC1_BI_PICTURE){
> +                if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> +                    overlap = 1;
> +                } else if (va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 2 ||
> +                           va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 3) {
> +                    overlap = 1;
> +                }
> +            }
>          }
>      } 
>  
> diff --git a/src/gen7_mfd.c b/src/gen7_mfd.c
> index 376eeb6..d166052 100755
> --- a/src/gen7_mfd.c
> +++ b/src/gen7_mfd.c
> @@ -1526,25 +1526,29 @@ gen7_mfd_vc1_pic_state(VADriverContextP ctx,
>              brfd = 0;
>      }
>  
> -    overlap = 0;
> -    if (profile != GEN7_VC1_ADVANCED_PROFILE){
> -        if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9 &&
> -            pic_param->picture_fields.bits.picture_type != GEN7_VC1_B_PICTURE) {
> -            overlap = 1; 
> -        }
> -    }else {
> -        if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_P_PICTURE &&
> -             pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> -              overlap = 1; 
> -        }
> -        if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_I_PICTURE ||
> -            pic_param->picture_fields.bits.picture_type == GEN7_VC1_BI_PICTURE){
> -             if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> -                overlap = 1; 
> -             } else if (va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 2 ||
> -                        va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 3) {
> -                 overlap = 1;
> -             }
> +    overlap = pic_param->sequence_fields.bits.overlap;
> +
> +    if (overlap) {
> +        overlap = 0;
> +        if (profile != GEN7_VC1_ADVANCED_PROFILE) {
> +            if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9 &&
> +                pic_param->picture_fields.bits.picture_type != GEN7_VC1_B_PICTURE) {
> +                overlap = 1;
> +            }
> +        }else {
> +            if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_P_PICTURE &&
> +                pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> +                overlap = 1;
> +            }
> +            if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_I_PICTURE ||
> +                pic_param->picture_fields.bits.picture_type == GEN7_VC1_BI_PICTURE){
> +                if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> +                    overlap = 1;
> +                } else if (va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 2 ||
> +                           va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 3) {
> +                    overlap = 1;
> +                }
> +            }
>          }
>      } 
>  
> diff --git a/src/gen8_mfd.c b/src/gen8_mfd.c
> index a5cedd6..398dd33 100644
> --- a/src/gen8_mfd.c
> +++ b/src/gen8_mfd.c
> @@ -1562,25 +1562,29 @@ gen8_mfd_vc1_pic_state(VADriverContextP ctx,
>              brfd = 0;
>      }
>  
> -    overlap = 0;
> -    if (profile != GEN7_VC1_ADVANCED_PROFILE){
> -        if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9 &&
> -            pic_param->picture_fields.bits.picture_type != GEN7_VC1_B_PICTURE) {
> -            overlap = 1; 
> -        }
> -    }else {
> -        if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_P_PICTURE &&
> -             pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> -              overlap = 1; 
> -        }
> -        if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_I_PICTURE ||
> -            pic_param->picture_fields.bits.picture_type == GEN7_VC1_BI_PICTURE){
> -             if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> -                overlap = 1; 
> -             } else if (va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 2 ||
> -                        va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 3) {
> -                 overlap = 1;
> -             }
> +    overlap = pic_param->sequence_fields.bits.overlap;
> +
> +    if (overlap) {
> +        overlap = 0;
> +        if (profile != GEN7_VC1_ADVANCED_PROFILE){
> +            if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9 &&
> +                pic_param->picture_fields.bits.picture_type != GEN7_VC1_B_PICTURE) {
> +                overlap = 1;
> +            }
> +        }else {
> +            if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_P_PICTURE &&
> +                pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> +                overlap = 1;
> +            }
> +            if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_I_PICTURE ||
> +                pic_param->picture_fields.bits.picture_type == GEN7_VC1_BI_PICTURE){
> +                if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){
> +                    overlap = 1;
> +                } else if (va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 2 ||
> +                           va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 3) {
> +                    overlap = 1;
> +                }
> +            }
>          }
>      } 
>  




More information about the Libva mailing list