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.

Does VPP support blending RGBA on NV12?

zhou_i_
Beginner
820 Views

Hi,

      I want to do osd(on ) by vpp ,that is blending a RGBA picture on another picture,but only pixels that alpha channel value is not zero will display on screen,and I've found that PixelAlphaEnable will make this ok! But the problem is

       blending a RGBA to a RGBA is right

      blending a RGBA to YUV is wrong.

       So does vpp support blending RGBA to NV12 when in PixelAlphaEnable  mode?

 

 

 

stream=./out_1920x1080.nv12
width=1920
height=1080
cropx=0
cropy=0
cropw=1920
croph=1080
dstx=0
dsty=0
dstw=1920
dsth=1080
fourcc=nv12

stream=./osd_alpha.rgb4
width=1024
height=576
cropx=0
cropy=0
cropw=1024
croph=576
dstx=0
dsty=0
dstw=1024
dsth=576
fourcc=rgb4
PixelAlphaEnable=1

     

0 Kudos
8 Replies
Anna_B_Intel
Employee
820 Views

Hi Zhou,

Yes, VPP supports blending RGBA to NV12 only in case of per pixel alpha blending. Each RGB input surface can be blended with underling surfaces by using PixelAlphaEnable value.

Best wishes,

Anna

0 Kudos
zhou_i_
Beginner
820 Views

But the problem is when using PixelAlphaEnable value,only blend RGBA to RGBA is right,blend RGBA to YUV is abnormal.

0 Kudos
Anna_B_Intel
Employee
820 Views

I checked the problem by myself - the result of blending RGBA to YUV is incorrect. Thank you for reporting the bug. I notified dev team about it. 

0 Kudos
Hamza_U_1
Beginner
820 Views

Hi Anna,

I have similar use case and i'm also facing this issue.

We are using E3-1245 v5, with centos-release-7-2.1511.el7 64-bit, with latest MediaSDK and MediaSamples_Linux_2016.

Blending RGBA on RGBA is fine. RGBA on NV12 gives bad output. Do you have a fix for this issue ?

0 Kudos
Anna_B_Intel
Employee
820 Views

Hi Hamza,

Could you please provide me the following to reproduce the problem:

1. Bottom stream.

2. Top stream.

3. Parameters file (.par) that you use.

Best wishes,

Anna

0 Kudos
Hamza_U_1
Beginner
820 Views

Hi Anna,

On using add "-vaapi" to command line options of sample_vpp blending of RGBA file worked. On adding second file to par.txt, blending of one RGBA is bad. I've attached the following:

a. Par file - par.txt
b. Bottom stream - HD_1frame.yuv (NV12)
c. Top stream      - cadbury_rgba.rgb
d. Output stream - out.yuv (NV12)
e. Command - sudo -E ./_bin/sample_vpp -lib hw -vaapi -composite par.txt -o out.yuv

0 Kudos
Anna_B_Intel
Employee
820 Views

Hamza,

Thank you for providing attachments! It isn't a MSS bug. It's samples' constraint. Sample_vpp doesn't support blending more than two surfaces (rgb to nv12). But you can implement this feature in your own code with MSS. How critical for you to see blending multiple rgb streams to nv12 in our code samples?

Best wishes, Anna 

0 Kudos
Hamza_U_1
Beginner
820 Views

Thanks Anna,

I'll try implementing this in our code.

I was able to make some changes in sample_vpp and blend multiple surfaces with nv12+rgb4.

0 Kudos
Reply