移位避免浮点运算

在视频编解码的时候,由于传输显示等不同过程中所采用的数据格式不同,因此我们通常需要在RGB,YUV之间进行相互转换。看看这些公式,在视频图像处理的时候,我们就要进行大量的而且是浮点型的秘籍运算,随着用户对于图像质量的追求不断提升,图像的分辨率也越来越大,我们cpu的计算负荷越来越重,效率越来越低下。基于此,小编今天给大家带来了一个小小的技巧,单独计算没有太大优势,大量并发时还是可以提高效率的哦。


采取移位运算代替浮点运算:
就以计算Y的值为例:
Y = 0.299R + 0.587G + 0.114*B,


稍稍变通一下哦:
0.299 = (0.299 128) >> 7 = 38.272 >>7
0.587 = (0.587
128) >> 7 = 75.136 >>7
0.114 = (0.114 128) >> 7 = 14.592 >>7
于是Y = (38
R + 75 G + 15 B) >> 7.

如此一来,我们通过移位运算而避免了大量的浮点运算,而如果你懂得使用汇编语言,并发时的效率优化还是值得考虑的哦!有兴趣试试吧!

转载于:https://blog.51cto.com/7335580/2056505

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值