Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.
3069 Discussions

VPP conversion is not working properly with 720*576 buffer

gparag1983
Beginner
878 Views

Hello,

In my application, I am using VPP  for color conversion (UYVY to NV12)and for scaling during H264 encoding.

If I encode H264 or Mpeg in HD mode (1920*1080), file is recorded properly. (Output image is proper)

But when I encode in SD mode (720*576), output file image is totally distorted,

If my input buffer size is 1920*1080 size and I encode in 720*576 size then also output file is recorded properly.

But when my input buffer is 720*576 size and I encode in 720*576 or 1920*1080 size then also output file is totally distorted.

If I do color conversion from UYVY to YV12 and scaling using third party application then its works fine.

Please find my system configuration and log generated during HD mode recording and SD mode recording. Also image of SD mode recorded file.

Regards

Parag Gandhi

0 Kudos
1 Solution
Brooks_L_
New Contributor I
878 Views

Parag, I eventually got to know what the cause is for my failure. That's a small stupid mistake in the code. When I copy the NV12 data after conversion, for each line, I copied 'width' bytes to the destination buffer, offered by surface, instead of the right number of bytes indicated by 'pitch'. And usually, pitch is more than width for an video frame to encoded. Encoder needs some stuffing to make line data aligned to 16 or more as I understand. So, consequently, in my destination buffer, for each line, the contained data is beyond one line and additionally, part of next line's data fills the gap between pitch and width. At last, my picture after encoding is distorted. That's my story. Little insteresting, uh?

View solution in original post

0 Kudos
6 Replies
Brooks_L_
New Contributor I
878 Views

Hi, Parag

     I encountered the same problem with the resolution 720x576. The output frame image is totally disordered as well. The conversion from YUY2 to NV12 is done by my own code. Only H.264 encoding is via media SDK QSV. So, I guess it is a real bug inside Media SDK on h.264 compression, not VPP.

    I am also seeking the solution for this, hoping anyone give me hands.

0 Kudos
Brooks_L_
New Contributor I
878 Views

Parag, did you ever try the other resolution? I did for 720 x 480. The encoded frame is not that distorted, but there are lots of regular short lines floating on image. So, it seems that the problem that we met is not a corner case.

Does anyone in this forum have the idea?

0 Kudos
gparag1983
Beginner
878 Views

Hello Brooks,

If I do 720*576 size YUY2 buffer to NV12 conversion using VPP then only output image is totally distorted. If I pass converted NV12 (conversion done through thirdparty dll) then output image is proper.

Currently I checked with 720*576 and 1920*1080 resolution only.

Regards

Parag Gandhi

0 Kudos
Brooks_L_
New Contributor I
879 Views

Parag, I eventually got to know what the cause is for my failure. That's a small stupid mistake in the code. When I copy the NV12 data after conversion, for each line, I copied 'width' bytes to the destination buffer, offered by surface, instead of the right number of bytes indicated by 'pitch'. And usually, pitch is more than width for an video frame to encoded. Encoder needs some stuffing to make line data aligned to 16 or more as I understand. So, consequently, in my destination buffer, for each line, the contained data is beyond one line and additionally, part of next line's data fills the gap between pitch and width. At last, my picture after encoding is distorted. That's my story. Little insteresting, uh?

0 Kudos
gparag1983
Beginner
878 Views

 

Thanks Brooks.

Your suggestion works in my case.I set VPP and encoder width 736.

Regards

Parag Gandhi

 

0 Kudos
Brooks_L_
New Contributor I
878 Views

Glad to hear that!

0 Kudos
Reply