记录I420转NV21如何自己把自己坑死的

近期遇到的绝大多数问题都不是问题,最大的问题是自己太坑。

码代码码的挺开心,结果后期简化代码差点把自己硬生生坑死,几乎怀疑自己不适合做这行。


先前做的I420转NV21和NV12,为了试验YUV分量是否真的转换成功了使用了如下的数组:

    char exe[] = {10,11,12,13,14,15,16,17,        //y
                          20,21,22,23,24,25,26,27,        //y
                          30,31,32,33,34,35,36,37,        //y
                          40,41,42,43,44,45,46,47,        //y
                          50,51,52,53,54,55,56,57,        //u
                          60,61,62,63,64,65,66,67};        //v

以Y分量的宽width、高height和数组头指针tmp作为已知量(工程中可获取到的)。

初始代码中使用了指针从tmp开始偏移拷贝,优化代码的时候转成了用不同的指针分别指向U、V分量的第一个元素,而后进行偏移拷贝,然后作死地把样例代码中的V指针头偏了一行。。。

样例代码中Y分量height为4,UV分量各占1,的确是偏一行就可以的,但实际情况下一张图片的分量排布并不是UV只间隔一行的,所以要修改。实际上要偏1/4height哈,不然图片输出是有颜色偏差的。

完了上传上去的代码如果我没记错的话貌似NV21和NV12分量排布反掉了。。。我的错。自己传的自己下载还不能评论,时间过了又不能改。但愿不会坑到别人吧。。。

仍需努力啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值