RGB转YUV的小优化是什么


本篇文章为大家展示了RGB转YUV的小优化是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。搞音视频,相信RGB与YUV之间的转换,大家都不陌生。不过呢,由于这个转换的公式是浮点运算,再加上大量像素的 香港云主机密集型运算,导致对资源的消耗比较大,进而效率需要进一步的提升。
首先我们来看看,RGB转YUV的公式:观察一下,都是浮点型的运算,我们都知道浮点型的乘法运算,在计算机内部要经过阶码和尾数的运算,相对耗时。如果我们能将浮点运算去掉,就可以实现这个目标了。于是,我们可以通过数学上的一些变换,将浮点运算变换为整数运算。变换过程如下:经过如此转换,浮点运算就变成了整数乘法和位移运算,而位移运算,效率很高,整数乘法的运算也会较浮点运算的效率高些,所以,此方法是可取的。由于音视频数据的处理,是典型的密集型运算。即针对每一个像素,我们的算法和处理方式都是一样的,这也为我们做进一步优化提供了可能。
比较原始的方式,我们遍历每一个像素,针对每一个像素做转换处理,这样实现功能没有问题,但效率相对来说会比较低下。由于算法是相同的,所以我们可以一次处理多个像素,这样就会大大提升效率。假设原来一次处理一个像素,现在我们一次处理16个像素,这样我们的效率理论上就会提到16倍,当然这只是理论值,实际上10倍是有把握的,也相当可观了。而要实现这样的操作,我们可以借助多媒体指令集,如MMX,SSE等,如此这般,便可实现效率的提升。不过呢,要注意一个对齐的问题,如果我们一次处理16个像素,那么图片的宽就必须是16的倍数,否则就需要做一些容错的处理,比如填充。下面是部分代码,估计不可以直接使用哦,要根据机器自身CPU支持的指令集做相应的调整哦

总结一下,RGB转YUV是音视频中常见的一个处理过程,针对其也有一定的优化空间。优化主要分为两个方向,一个是对转换公式本身做一些变换,从而避免浮点运算;另外一个就是借助指令集,实现从单一处理到批量处理。上述内容就是RGB转YUV的小优化是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注开发云行业资讯频道。

相关推荐: win7怎么设置“关闭网络发现”

本文小编为大家详细介绍“win7怎么设置“关闭网络发现””,内容详细,步骤清晰,细节处理妥当,希望这篇“win7怎么设置“关闭网络发现””文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.首先登录到系统桌面,点击开始菜单打开控制面板,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/13 16:34
下一篇 08/13 16:34

相关推荐