summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2015-01-22 10:59:58 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2015-03-09 12:51:30 +0800
commit354251a63e3688fe0fa583adc0450f5e0f2a4051 (patch)
tree2efad033a247c82a28363806800b404272646cdd
parent948c5f24bac640d4aeb2d309d28ccd8022912dcc (diff)
downloadlibva-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-xsrc/gen6_mfd.c42
-rw-r--r--src/gen75_mfd.c42
-rwxr-xr-xsrc/gen7_mfd.c42
-rw-r--r--src/gen8_mfd.c42
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;
+ }
+ }
}
}