ipp 实现图像空间的转换
阅读原文时间:2023年07月17日阅读:1

下载:https://software.intel.com/en-us/parallel-studio-xe/choose-download/free-trial-cluster-windows-c-fortran

使用:

https://www.cnblogs.com/programmer-wfq/p/7049821.html

void Rgb2NV12(const unsigned char I[],
const int image_width,
const int image_height,
unsigned char J[])
{
//memcpy(J, I, image_width*image_height*3);

IppStatus ipp\_status;

int srcStep = image\_width\*;  
int dstYStep = image\_width;  
int dstCbCrStep = image\_width;  
IppiSize roiSize = {image\_width, image\_height};

const Ipp8u\* pSrc = (Ipp8u\*)I;

Ipp8u \*pDstY    = (Ipp8u\*)J;                            //Y color plane is the first image\_width\*image\_height pixels of J.  
Ipp8u \*pDstCbCr    = (Ipp8u\*)&J\[image\_width\*image\_height\];    //In NV12 format, UV plane starts below Y.

ipp\_status = ippiRGBToYCbCr420\_8u\_C3P2R(pSrc, srcStep, pDstY, dstYStep, pDstCbCr, dstCbCrStep, roiSize);

if (ipp\_status != ippStsNoErr)  
{  
    memset(J, , image\_width\*image\_height\*/);  
}  

}

IPPAPI(IppStatus, ippiRGBToYCbCr420_8u_C3P2R,( const Ipp8u* pRGB, int rgbStep, Ipp8u* pY, int YStep,Ipp8u* pCbCr, int CbCrStep, IppiSize roiSize ))// RGB24-->NV12
IPPAPI(IppStatus, ippiRGBToYCbCr420_8u_C4P2R,( const Ipp8u* pRGB, int rgbStep, Ipp8u* pY, int YStep,Ipp8u* pCbCr, int CbCrStep, IppiSize roiSize ))// ARGB-->NV12
IPPAPI(IppStatus, ippiBGRToYCbCr420_8u_C3P2R,( const Ipp8u* pRGB, int rgbStep, Ipp8u* pY, int YStep,Ipp8u* pCbCr, int CbCrStep, IppiSize roiSize ))// BGR24-->NV12
IPPAPI(IppStatus, ippiBGRToYCbCr420_8u_AC4P2R,( const Ipp8u* pRGB, int rgbStep, Ipp8u* pY, int YStep,Ipp8u* pCbCr, int CbCrStep, IppiSize roiSize ))// ABGR-->NV12

IppiSize roiSize;
roiSize.width = m_mfxEncParams.mfx.FrameInfo.CropW;
roiSize.height = m_mfxEncParams.mfx.FrameInfo.CropH;
mfxU16 pitch = m_pVPPSurfacesVPPOutEnc[nEncSurfIdx].Data.Pitch;
ippiBGRToYCbCr420_8u_AC4P2R( (Ipp8u*)pInputBuffer, roiSize.width*, (Ipp8u*)m_pVPPSurfacesVPPOutEnc[nEncSurfIdx].Data.Y, pitch, (Ipp8u*)m_pVPPSurfacesVPPOutEnc[nEncSurfIdx].Data.UV,pitch, roiSize);

BGR2I420

        IppiSize roiSize = { w, h };  
        ippiBGRToYCbCr420\_8u\_C3P3R(src.data,\*w,  
        yuv.data,yuv.stride, roiSize);

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章