[Libva] [PATCH] VP8 HWEnc: Fix vp8 mv incorrectly stored issue

lizhong zhong.li at intel.com
Sun May 3 22:14:23 PDT 2015


Sorry, I forgot to add 'Libva' in the patch subject.
Please ignore this patch, I've sent it again.

On 05/04/2015 01:09 PM, Zhong Li wrote:
> As vp8 spec, all luma motion vectors are doubled stored.
> This patch has much benefit to P frame qualtity.
>
> Signed-off-by: Zhong Li <zhong.li at intel.com>
> ---
>   src/gen8_mfc.c | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/src/gen8_mfc.c b/src/gen8_mfc.c
> index 35d6084..0398323 100644
> --- a/src/gen8_mfc.c
> +++ b/src/gen8_mfc.c
> @@ -4202,8 +4202,11 @@ gen8_mfc_vp8_pak_object_inter(VADriverContextP ctx,
>       /* only support inter_16x16 now */
>       assert((msg[AVC_INTER_MSG_OFFSET] & INTER_MODE_MASK) == INTER_16X16);
>       /* for inter_16x16, all 16 MVs should be same,
> -     * and move mv to the vme mb start address to make sure offset is 64 bytes aligned */
> -    msg[0] = (msg[AVC_INTER_MV_OFFSET/4] & 0xfffefffe);
> +     * and move mv to the vme mb start address to make sure offset is 64 bytes aligned
> +     * as vp8 spec, all vp8 luma motion vectors are doulbled stored
> +     */
> +    msg[0] = (((msg[AVC_INTER_MV_OFFSET/4] & 0xffff0000) << 1) | ((msg[AVC_INTER_MV_OFFSET/4] << 1) & 0xffff));
> +
>       for (i = 1; i < 16; i++) {
>           msg[i] = msg[0];
>       }



More information about the Libva mailing list