diff options
author | Xiang, Haihao <haihao.xiang@intel.com> | 2015-01-22 10:59:58 +0800 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2015-03-09 12:51:30 +0800 |
commit | 354251a63e3688fe0fa583adc0450f5e0f2a4051 (patch) | |
tree | 2efad033a247c82a28363806800b404272646cdd | |
parent | 948c5f24bac640d4aeb2d309d28ccd8022912dcc (diff) | |
download | libva-intel-driver-354251a63e3688fe0fa583adc0450f5e0f2a4051.tar.gz libva-intel-driver-354251a63e3688fe0fa583adc0450f5e0f2a4051.tar.bz2 libva-intel-driver-354251a63e3688fe0fa583adc0450f5e0f2a4051.zip |
VC1: No overlap smoothing if the overlap flag is 0
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
(cherry picked from commit 9ba21aee960183f635fc9fcb834d58e8909c927b)
-rwxr-xr-x | src/gen6_mfd.c | 42 | ||||
-rw-r--r-- | src/gen75_mfd.c | 42 | ||||
-rwxr-xr-x | src/gen7_mfd.c | 42 | ||||
-rw-r--r-- | 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; + } + } } } |