图像处理算法大全(基于libyuv或IPP)----YV12转NV12

《周星星教你学ffmpeg》技巧

ipp源码:

static void YV12ToNV12(BYTE* pYV12, BYTE* pNV12_Y,BYTE* pNV12_UV, int width,int height)//yuv420 //3/2:1+1/4+1/4----YU12
{
DWORD dwTime=::GetTickCount();
IppiSize imgSize;
imgSize.width=width;
imgSize.height=height;
const Ipp8u* pSource[3]={pYV12,pYV12+height*width*5/4,pYV12+height*width};
Ipp8u* pDesY=pNV12_Y;
Ipp8u* pDesUV=pNV12_UV;
int SourceStep[3]={width,width*1/2,width*1/2};//YUV420->1,1/4,1/4
int dstYStep=width;
int dstCbCrStep=width;
 
IppStatus is =ippiYCrCb420ToYCbCr420_8u_P3P2R(pSource,SourceStep,pDesY,dstYStep,pDesUV,dstCbCrStep,imgSize);
if(is != ippStsNoErr)
{
return;
//convert error
}
//TRACE("YV12ToNV12所需时间:%dms\n",::GetTickCount()-dwTime);

}


调用源码:YV12ToNV12(pYV12, pNV12_Y,pNV12_UV, 1280,720);//将YV12转成NV12,适用于硬件编码

有问题联系作者QQ:35744025

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周星星的星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值