intel / intel/libvpl

AI frame interpolation produces corrupted output

Open
#173 13 comments 1 reaction 0 assignees View on GitHub
bug recommend transfer
Dominant language
C++
Stars
371
Forks
107
PR merge metrics
No merged PRs in 30d

Description

Windows 11, A380 card, latest drivers .6458.

Software works with in-memory frames in YV12, with NV12 output after VPP.

Attached source frame and the one generated by VPL. The image is somehow stretched and squeezed, plus overlaid with something that looks like a mask in a blocks 4x4 (or 8x8?).

I'm pretty sure my code is ok, because it works correctly after replacing mfxExtVPPAIFrameInterpolation with simple mfxExtVPPFrameRateConversion.

![Image](https://github.com/user-attachments/assets/98159b6a-2975-4ec2-b049-fd80f5f1d93e)
![Image](https://github.com/user-attachments/assets/a9d9b775-303c-4cef-8bd3-a3cfda522fad)

My init code:
```
mfxVideoParam VPPParams = {};

_fillFrameInfo(&VPPParams.vpp.In, MFX_FOURCC_YV12, width, height, 24, 1);
_fillFrameInfo(&VPPParams.vpp.Out, MFX_FOURCC_NV12, width, height, 24*mul, div);

VPPParams.IOPattern = MFX_IOPATTERN_IN_SYSTEM_MEMORY | MFX_IOPATTERN_OUT_SYSTEM_MEMORY;

mfxExtVPPAIFrameInterpolation aiFrameInterpolation = {};
aiFrameInterpolation.Header.BufferId = MFX_EXTBUFF_VPP_AI_FRAME_INTERPOLATION;
aiFrameInterpolation.Header.BufferSz = sizeof(mfxExtVPPAIFrameInterpolation);
aiFrameInterpolation.FIMode = MFX_AI_FRAME_INTERPOLATION_MODE_DEFAULT;
aiFrameInterpolation.EnableScd = 1;

mfxExtBuffer *ExtParam[] = { (mfxExtBuffer *)&aiFrameInterpolation };

VPPParams.NumExtParam = 1;
VPPParams.ExtParam = ExtParam;

MFXVideoVPP_Init(session, &VPPParams);
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.