Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 2007.04.09继续优化
【标  题】:2007.04.09继续优化
【关键字】:2007.04.09
【来  源】:http://blog.csdn.net/fire_woods/archive/2007/04/09/1557866.aspx

2007.04.09继续优化

Your Ad Here

今天优化的部分是缩放, 也就是一个2倍放大的模块.

 

转换成数学表示就是:

有一个序列p1, p2, p3, p4, p5....以数组的方式存放, 每个存储为一个字节.

现在要把这个序列转换成另外一个序列.
(p1*3+p2)/4, (p2*3+p)/41, (p2*3+p3)/4, (p3*3+p2)/4, (p3*3+p4)/4, (p4*3+p3)/4, (p4*3+p5)/4....

每个结果也存到一个字节中.


可以看出来结果序列长度是原始序列长度的2倍.
我今天想出来的办法是一次计算出4个点来,也就是(p1*3+p2)/4, (p2*3+p)/41, (p2*3+p3)/4, (p3*3+p2)/4, 正在想更快的办法中. 

我是这样做的,先算好2个DWORD,分别是
T1 = Xp1Xp2;
T2 = Xp2Xp3;

这里X表示8个0的位,就是把p1和p2分开来
然后计算
((((T1*3+T2)>>2)&0xFF00FF)<<8) + ((((T1+T2*3)>>2))&0xFF00FF)

一次把4个点全算好了.
然后继续来做
T3 = (T2<<16) + p4
T4 = (T3<<16) + p5
然后再计算2个点,其中*3cup会自己优化成加法的.

今天看了专门介绍ARM指令集的文档,感觉收获不少,优化无止境啊.


STL的迭代器--Iterator:【上一篇】
Template模板入门:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • apache和mysql安装后无法自动启动
  • 将中英文混合的字符串换行 (续)
  • base64算法通用组件服务
  • 内核_几个重要的RedHat Linux内核文件介绍[ZT]
  • 关注AJAX(6):ASP.NET AJAX是怎么实现重新定向的?
  • 一次 WEBDAVX 溢出的成功入侵测试
  • 关于如何在.net下使用XP Style界面
  • 我的 昨天 今天 明天
  • 一些页面背景素材(透明FLASH)及背景音乐链接方法
  • 在VC中使用FileSystemObject
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.