Does ipp7.0 have NV12toRGB converstion?
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, likeippiYUV420ToRGB_8u_P3ippiYCbCr420ToRGB_8u_P2C3RippiYCbCr420ToBGR_709CSCippiYCbCr420ToBGR_709HDTVippiYCbCr411ToYCbCr420_8u_P3P2R
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);
BGR to NV12
IppStatus ippiBGRToYCbCr420_8u_C3P3R(const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize);
IppStatus ippiYCbCr420_8u_P3P2R(const Ipp8u* pSrc, int srcStep, 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
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.
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