I'm trying to encode color images and the only color format supports is NV12 (am I right about it?) and I cant find any reference about "how can I convert from RGB24 or RGB32 to NV12 using IMSDK", the only reference to an example is:
but the only option there is using IPP, which I don't want to use this time....
There is in fact a Media SDK tutorial sample for this use case (RGB32). Check out the sample named "simple_6_encode - d3d - vpp_preproc".
Note that RGB24 is not a supported format by Media SDK. It's was deprecated a long time ago.
Yes. The Media SDK encoder only supports NV12 surface input.
I assume by RGB3 mean RGB24? Both essentially referring to a RGB 8 bit per channel color space without alpha. The SDK does not support conversion from that color space format to NV12.
If you need such conversion you have to rely on Intel IPP, other color space conversion packages or implement your own routine.
Yes, you can convert from NV12 to YUY2 using VPP in Media SDK. Please refer to sample_vpp code in the sample package which is configured to convert the color format.
In general for a new query please start a new post so that we can track the questions separately and provide support sooner. Hope that helps!
I am new to Intel Media SDK. I am doing some PoC with the SDK where I need to decode H.264 video into YUV422 (UYVY). I checked both the sample "simple_6_decode_vpp_postproc" and change few VPP o/p parameters ( VPPParams.vpp.Out.FourCC = MFX_FOURCC_YUY2, VPPParams.vpp.Out.FourCC = MFX_FOURCC_YUY2, VPPParams.vpp.Out.CropW = VPPParams.vpp.In.CropW, VPPParams.vpp.Out.CropH = VPPParams.vpp.In.CropH, and bitsPerPixel = 16) but still the generated YUV file is NV12 only.
Resize is working very well but color conversion is not working with above change. Am I doing in mistake in the configurations?