Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement intensity compensation for VC-1 decoding for Ivybridge and better #234

Merged
merged 3 commits into from Jul 28, 2017

Conversation

@carpalis
Copy link
Contributor

commented Jul 25, 2017

VC1-decoder: implement intensity compensation for VC-1

Intensity compensation was not present for B-frames, but only for P-frames. When a P-frame flags intensity compensation for its forward reference frame, all subsequent B-frames that use this reference frame as well, need to do intensity compensation as well.

Fixes: #13 [IVB/BYT/BSW] Macroblocking artifact seen on a VC1 video file

Signed-off-by: Jerome Borsboom jerome.borsboom@carpalis.nl

implement intensity compensation for VC-1 decoding
Intensity compensation was not present for B-frames, but only for P-frames. When a P-frame flags intensity compensation for its forward reference frame, all subsequent B-frames that use this reference frame as well, need to do intensity compensation as well.
@xhaihao

This comment has been minimized.

Copy link
Contributor

commented Jul 26, 2017

Could you please add a line of 'Fixes #xxx' to the commit message so that others know which issue is resolved by this commit?

intensitycomp_single_fwd = gen7_vc1_surface->intensity_compensation;
luma_scale1 = gen7_vc1_surface->luma_scale;
luma_shift1 = gen7_vc1_surface->luma_shift;
}

This comment has been minimized.

Copy link
@xhaihao

xhaihao Jul 26, 2017

Contributor

Does P frame also use the parameters from the reference frame? the commit message only says all subsequent B-frames need to do intensity compensation.

This comment has been minimized.

Copy link
@carpalis

carpalis Jul 26, 2017

Author Contributor

The commit message only referenced the changes in intensity compensation. For P-frames intensity compensation was already working.

It is the P-frame that sets the parameters for its reference frame. Subsequently, the P-frame also uses this intensity compensated reference frame. Any B-frames that follow this P-frame and that reference that same reference frame also use the intensity compensation on the reference frame. (See 8.3.8 in VC-1 spec).

The patch stores the intensity compensation status with each surface. When such a surface is used as a reference, the stored intensity compensation status is used to program the graphics hardware.

This comment has been minimized.

Copy link
@xhaihao

xhaihao Jul 27, 2017

Contributor

thanks for the explanation in detail

carpalis and others added 2 commits Jul 26, 2017

@xhaihao xhaihao merged commit c4df0f4 into intel:master Jul 28, 2017

7 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
intel/ci/fedora/24/pr Build intel-vaapi-driver-4b2fe0b864bd finished with status SUCCESSFUL
Details
intel/ci/fedora/25/pr Build intel-vaapi-driver-4b2fe0b864bd finished with status SUCCESSFUL
Details
intel/ci/fedora/26/pr Build intel-vaapi-driver-4b2fe0b864bd finished with status SUCCESSFUL
Details
intel/ci/ubuntu/trusty/pr Build intel-vaapi-driver-4b2fe0b864bd finished with status SUCCESSFUL
Details
intel/ci/ubuntu/xenial/pr Build intel-vaapi-driver-4b2fe0b864bd finished with status SUCCESSFUL
Details
intel/ci/ubuntu/zesty/pr Build intel-vaapi-driver-4b2fe0b864bd finished with status SUCCESSFUL
Details
MilhouseVH referenced this pull request Aug 30, 2017
implement intensity compensation for VC-1 decoding
Intensity compensation was not present for B-frames, but only for P-frames. When a P-frame flags intensity compensation for its forward reference frame, all subsequent B-frames that use this reference frame as well, need to do intensity compensation as well.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.