ipp7.0 supports NV12 to RGB converstion?

ipp7.0 supports NV12 to RGB converstion?

Does ipp7.0 have NV12toRGB converstion?

7 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hello Fremontca,

Seems no exact one if U,V areinterleaved. But it may depends on the storageand the conversion formula. Intel IPP contains color conversion functions list in IPP manaul. You may search them and find the one or two, combine some foryou needed,

Ying H.

As workaround, I guess two ipp function combination may complete it

NV12 to BGR

If NV12 are stored in 2 Plane: Y plan and UV interlaced,
IppStatus ippiYCbCr420ToRGB_8u_P2C3R(const Ipp8u* pSrcY, int srcYStep, const Ipp8u* pSrcCbCr, int srcCbCrStep, Ipp8u* pDst, int dstStep, IppiSize roiSize);

Then change the RGB to BGR byswap channel

IppStatus ippiSwapChannels_(const Ipp* pSrc, int srcStep, Ipp* pDst, int dstStep, IppiSize roiSize, const int dstOrder[3]);

BGR to NV12

IppStatus ippiBGRToYCbCr420_8u_C3P3R(const Ipp8u* pSrc, int srcStep, Ipp8u* pDst[3], int dstStep[3], IppiSize roiSize);


IppStatus ippiYCbCr420_8u_P3P2R(const Ipp8u* pSrc[3], int srcStep[3], Ipp8u* pDstY, int dstYStep, Ipp8u* pDstCbCr, int dstCbCrStep, IppiSize roiSize);


Hi Ying,
Thanks for your time and support I found where I was going wrong it was infact OpenCV2 where my problem was I was doing the following:

cv::Mat RGB32DST(pmfxOutSurface->Info.Height, pmfxOutSurface->Info.Width,CV_8UC3,(Ipp8u *)RGB32Dst);
were I should of had:
cv::Mat RGB24DST(pmfxOutSurface->Info.Height, pmfxOutSurface->Info.Width,CV_8UC4,(Ipp8u *)RGB24Dst);

now I can keep to IPP and without implementing OPENCV to do the same job IPP is doing. ippiSwapChannel(..) works fine now as well.

Always something stilly and stupid that causes errors

One other question regarding IPP 7 dose it implement the second and third generation i7 CPU hardware decoding or should I use the intel media SDK for the decoding as im new to the intel api's


Hi Nigel,

Sorry for the delay. No , IPP 7 don't include hardware decoding. Intel media SDk may help.
You may post your quesiton to http://software.intel.com/en-us/forums/showthread.php?t=107071&o=a&s=lr.


Dear All, 

Just update  if the feature is still interesting? Please feel free to reply in the threads.



Just add some comments:

Available in ippCC
ippiYCbCr420ToBGR_8u_P2C3R   NV12 -> BGR
ippiYCbCr420ToBGR_8u_P2C4R   NV12 -> BGRX

there is no in ippCC
BGR -> NV12

There is in ippCC (YV12<>NV12 )
ippiYCbCr420ToYCrCb420_8u_P2P3R NV12 -> YV12
ippiYCrCb420ToYCbCr420_8u_P3P2R YV12 -> NV12

Best Regards,



Leave a Comment

Please sign in to add a comment. Not a member? Join today