[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