Media (Intel® oneAPI Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools from Intel. This includes Intel® oneAPI Video Processing Library and Intel® Media SDK.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

Does MFX_IMPL_SOFTWARE support colour format conversion?

Kamal_Devanga
Beginner
168 Views

 

Hi,

I've created a decoder with MFX_IMPL_SOFTWARE and have a VPP component that does the following:   

    p.vpp.In.FourCC = MFX_FOURCC_NV12; 
    p.vpp.Out.FourCC = MFX_FOURCC_YUY2;

 

, i.e. it converts the decoder output (which is NV12) to YUY2 before I grab the data and send it off elsewhere.  This conversion happens no problem with MFX_IMPL_HARDWARE with an Intel HD.  Software doesn't appear to perform the conversion (my image is split, green and pink/purple and about 1/4 size).  I replaced my D3D11 allocator with a SysMem one, just in case that was doing something but no dice.  It made no difference.

 

Will MFX_IMPL_SOFTWARE perform these conversions or do we need to do them ourselves?  Btw, I'm diligently examining return codes for errors and everything appears to be working fine (no errors).

 

Note: Something odd about use of libmfxsw32.dll, if your code is debug the dispatcher looks for libmfxsw32_d.dll but this isn't shipped with the SDK and there's no way to build it.  Renaming the existing libmfxsw32.dll to libmfxsw32_d.dll allows you to link however.

0 Kudos
4 Replies
Jiandong_Z_Intel
Employee
168 Views

Hi There,

Are you using the most new graphic driver ?

Can you share log from system_analyzer tool located at (mediasdk/tools/analyzer) ?  This will help provide us your system details. 

I suggest use HW solution if possible. 

 

Thanks,

Zachary

Kamal_Devanga
Beginner
168 Views

Thank you for your reply.  I've attached the analysis. 

We specify equipment to customers, however we want to cover the case where Intel HD isn't present and/or is an older, unsupported version (for us), with a software decoder.  Hence the experiments with MFX_IMPL_SOFTWARE.

Driver version is 20.19.15.4463.  Note the 4600 is enabled in bios and is a secondary adapter.  But as I say, we want our system to "just work" regardless of whether the HD is present/enabled or not.

Jiandong_Z_Intel
Employee
168 Views

From Table 2: Color Conversion Support in VPP* page 7 in Intel® Media SDK Developer Reference, NV12 to YUY2 is not support.

You may also interesting in Intel® IPP Library (https://software.intel.com/en-us/intel-ipp)‎, there are functions can help to do NV12 to YUY2.

Thanks

Zachary

 

Kamal_Devanga
Beginner
168 Views

Jiandong Z. (Intel) wrote:

From Table 2: Color Conversion Support in VPP* page 7 in Intel® Media SDK Developer Reference, NV12 to YUY2 is not support.

Sorry, I'm a bit confused.  Looking at the table there's an X in the NV12/YUY2 element.  Our system works for MFX_IMPL_HARDWARE.  Both YUY2 -> NV12 on encode and NV12 to YUY2 on decode.  That is to say VPP -> Encode and on the other end Decode -> VPP.  We're passing in YUY2 and getting out YUY2.  I checked both the input and output bitmaps with rawpixels.net.  The developer reference doesn't say there's a difference between MFX_IMPL_HARDWARE and MFX_IMPL_SOFTWARE.

Am I misunderstanding something?

Reply