StretchDIBits速度测试(HALFTONE)
StretchDIBits速度测试(HALFTONE)
下面实验中显示窗口大小为1024*768,拉伸模式设为HALFTONE.
一、单通道图像
(1) 保持图像高度为1024,宽度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像宽度的关系:
|
图像大小 |
耗时(ms) |
|
24*1024 |
9.796325 |
|
74*1024 |
10.30184 |
|
124*1024 |
11.06231 |
|
174*1024 |
11.52316 |
|
224*1024 |
12.18715 |
|
274*1024 |
12.82155 |
|
324*1024 |
13.90718 |
|
374*1024 |
14.06984 |
|
424*1024 |
15.17017 |
|
474*1024 |
16.04815 |
|
524*1024 |
15.77539 |
|
574*1024 |
16.67529 |
|
624*1024 |
17.4869 |
|
674*1024 |
18.27007 |
|
724*1024 |
19.01788 |
|
774*1024 |
19.91023 |
|
824*1024 |
20.69174 |
|
874*1024 |
21.47563 |
|
924*1024 |
22.23963 |
|
974*1024 |
23.02346 |
|
1024*1024 |
13.38007 |
|
1074*1024 |
17.87468 |
|
1124*1024 |
17.87868 |
|
1174*1024 |
18.00601 |
|
1224*1024 |
18.34404 |
|
1274*1024 |
18.46858 |
|
1324*1024 |
18.66459 |
|
1374*1024 |
18.92393 |
|
1424*1024 |
19.42043 |
|
1474*1024 |
19.15088 |
|
1524*1024 |
19.39751 |
|
1574*1024 |
19.64754 |
|
1624*1024 |
19.66112 |
|
1674*1024 |
19.89338 |
|
1724*1024 |
20.06777 |
|
1774*1024 |
21.01717 |
|
1824*1024 |
20.7319 |
|
1874*1024 |
20.71387 |
|
1924*1024 |
20.94786 |
|
1974*1024 |
21.01869 |
|
2024*1024 |
21.262 |
将其绘成曲线图如下:

可以看出显示耗时与图像宽度近似成分段线性关系,分界点为图像宽度与显示窗口宽度相等处(1024)。
设y=kx+b(x为图像宽度,y为显示耗时),利用matlab拟合函数polyfit可分别获得分界点两侧的拟合参数:
k1=0.0139 b1=9.1524
k2=0.0038 b2=13.7103
另外分界点处耗时有一个陡降。
(2) 保持图像宽度为1024,高度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像高度的关系:
|
图像大小 |
耗时(ms) |
|
1024* 24 |
7.922394 |
|
1024* 74 |
8.323548 |
|
1024* 124 |
8.604275 |
|
1024* 174 |
8.839572 |
|
1024* 224 |
9.096586 |
|
1024* 274 |
9.196709 |
|
1024* 324 |
9.748702 |
|
1024* 374 |
10.32994 |
|
1024* 424 |
9.921846 |
|
1024* 474 |
10.37223 |
|
1024* 524 |
10.82544 |
|
1024* 574 |
11.26785 |
|
1024* 624 |
11.65634 |
|
1024* 674 |
12.15726 |
|
1024* 724 |
12.6009 |
|
1024* 774 |
12.46721 |
|
1024* 824 |
12.63217 |
|
1024* 874 |
12.80108 |
|
1024* 924 |
12.96082 |
|
1024* 974 |
13.11883 |
|
1024*1024 |
13.37327 |
|
1024*1074 |
13.40269 |
|
1024*1124 |
13.56866 |
|
1024*1174 |
13.73107 |
|
1024*1224 |
13.88093 |
|
1024*1274 |
14.00228 |
|
1024*1324 |
14.16945 |
|
1024*1374 |
14.32908 |
|
1024*1424 |
14.59283 |
|
1024*1474 |
14.70967 |
|
1024*1524 |
14.77312 |
|
1024*1574 |
14.92603 |
|
1024*1624 |
15.088 |
|
1024*1674 |
15.25403 |
|
1024*1724 |
15.39717 |
|
1024*1774 |
15.57855 |
|
1024*1824 |
15.70022 |
|
1024*1874 |
15.86984 |
|
1024*1924 |
16.02325 |
|
1024*1974 |
16.19249 |
|
1024*2024 |
16.39066 |
将其绘成曲线图如下:

可以看出显示耗时与图像高度近似成分段线性关系,分界点为图像高度与显示窗口高度相等处(768)。
设y=kx+b(x为图像高度,y为显示耗时),利用matlab拟合函数polyfit可分别获得分界点两侧的拟合参数:
k1=0.0063 b1=7.6820
k2=0.0031 b2=10.0960
二、三通道图像
(1) 保持图像高度为1024,宽度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像宽度的关系:
|
图像大小 |
耗时(ms) |
|
24*1024 |
9.712231 |
|
74*1024 |
10.25534 |
|
124*1024 |
10.96412 |
|
174*1024 |
11.37105 |
|
224*1024 |
12.03373 |
|
274*1024 |
12.59427 |
|
324*1024 |
13.67067 |
|
374*1024 |
13.79808 |
|
424*1024 |
14.90897 |
|
474*1024 |
15.75245 |
|
524*1024 |
15.31296 |
|
574*1024 |
16.38553 |
|
624*1024 |
16.99361 |
|
674*1024 |
17.69326 |
|
724*1024 |
18.42575 |
|
774*1024 |
19.25657 |
|
824*1024 |
20.01591 |
|
874*1024 |
20.79176 |
|
924*1024 |
21.66283 |
|
974*1024 |
22.35087 |
|
1024*1024 |
12.59428 |
|
1074*1024 |
17.07724 |
|
1124*1024 |
17.02248 |
|
1174*1024 |
17.11959 |
|
1224*1024 |
17.45603 |
|
1274*1024 |
17.54791 |
|
1324*1024 |
17.68652 |
|
1374*1024 |
17.86168 |
|
1424*1024 |
18.22364 |
|
1474*1024 |
18.08724 |
|
1524*1024 |
18.31654 |
|
1574*1024 |
18.49236 |
|
1624*1024 |
18.47719 |
|
1674*1024 |
18.68564 |
|
1724*1024 |
18.82272 |
|
1774*1024 |
19.72777 |
|
1824*1024 |
19.5421 |
|
1874*1024 |
19.43485 |
|
1924*1024 |
19.55297 |
|
1974*1024 |
19.59999 |
|
2024*1024 |
19.82148 |
将其绘成曲线图如下:

可以看出显示耗时与图像宽度近似成分段线性关系,分界点为图像宽度与显示窗口宽度相等处(1024)。
设y=kx+b(x为图像宽度,y为显示耗时),利用matlab拟合函数polyfit可分别获得分界点两侧的拟合参数分别为:
k1=0.0131 b1= 9.1398
k2=0.0031 b2=13.5624
另外,在分界点处有一个陡降。
(2) 保持图像宽度为1024,高度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像高度的关系:
|
图像大小 |
耗时(ms) |
|
1024* 24 |
8.026322 |
|
1024* 74 |
8.360508 |
|
1024* 124 |
8.694708 |
|
1024* 174 |
8.887985 |
|
1024* 224 |
8.96708 |
|
1024* 274 |
9.122874 |
|
1024* 324 |
9.685652 |
|
1024* 374 |
10.24135 |
|
1024* 424 |
9.698556 |
|
1024* 474 |
10.12444 |
|
1024* 524 |
10.56098 |
|
1024* 574 |
10.99098 |
|
1024* 624 |
11.34635 |
|
1024* 674 |
11.81408 |
|
1024* 724 |
12.22322 |
|
1024* 774 |
12.04397 |
|
1024* 824 |
12.17597 |
|
1024* 874 |
12.31361 |
|
1024* 924 |
12.44259 |
|
1024* 974 |
12.52316 |
|
1024*1024 |
12.67153 |
|
1024*1074 |
12.79061 |
|
1024*1124 |
12.96766 |
|
1024*1174 |
13.0645 |
|
1024*1224 |
13.19001 |
|
1024*1274 |
13.34681 |
|
1024*1324 |
13.41933 |
|
1024*1374 |
13.54006 |
|
1024*1424 |
13.67576 |
|
1024*1474 |
13.76805 |
|
1024*1524 |
13.86556 |
|
1024*1574 |
13.98719 |
|
1024*1624 |
14.20426 |
|
1024*1674 |
14.33093 |
|
1024*1724 |
14.34395 |
|
1024*1774 |
14.45257 |
|
1024*1824 |
14.52384 |
|
1024*1874 |
14.65117 |
|
1024*1924 |
14.75053 |
|
1024*1974 |
14.90093 |
|
1024*2024 |
15.00206 |
将其绘成曲线图如下:

可以看出显示耗时与图像高度近似成分段线性关系,分界点为图像高度与显示窗口高度相等处(768)。
设y=kx+b(x为图像高度,y为显示耗时),利用matlab拟合函数polyfit可分别获得分界点两侧的拟合参数分别为:
k1=0.0056 b1=7.8175
k2=0.0024 b2=10.2718
三、四通道图像
(1) 保持图像高度为1024,宽度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像宽度的关系:
|
图像大小 |
耗时(ms) |
|
24*1024 |
9.70437 |
|
74*1024 |
10.29571 |
|
124*1024 |
11.08899 |
|
174*1024 |
11.57984 |
|
224*1024 |
12.27431 |
|
274*1024 |
12.95063 |
|
324*1024 |
14.02857 |
|
374*1024 |
14.23232 |
|
424*1024 |
15.31075 |
|
474*1024 |
16.18275 |
|
524*1024 |
15.8119 |
|
574*1024 |
16.73363 |
|
624*1024 |
17.65325 |
|
674*1024 |
18.48042 |
|
724*1024 |
19.21561 |
|
774*1024 |
20.10856 |
|
824*1024 |
21.03733 |
|
874*1024 |
21.66679 |
|
924*1024 |
22.49946 |
|
974*1024 |
23.2506 |
|
1024*1024 |
13.60484 |
|
1074*1024 |
18.15904 |
|
1124*1024 |
18.12392 |
|
1174*1024 |
18.29726 |
|
1224*1024 |
18.6863 |
|
1274*1024 |
18.77742 |
|
1324*1024 |
18.98858 |
|
1374*1024 |
19.23924 |
|
1424*1024 |
19.64915 |
|
1474*1024 |
19.55219 |
|
1524*1024 |
19.78194 |
|
1574*1024 |
20.00765 |
|
1624*1024 |
20.1667 |
|
1674*1024 |
20.42337 |
|
1724*1024 |
20.49683 |
|
1774*1024 |
21.43063 |
|
1824*1024 |
21.11269 |
|
1874*1024 |
21.16554 |
|
1924*1024 |
21.39043 |
|
1974*1024 |
21.48354 |
|
2024*1024 |
21.76705 |
将其绘成曲线图如下:

可以看出显示耗时与图像宽度近似成分段线性关系,分界点为图像宽度与显示窗口宽度相等处(1024)。
设y=kx+b(x为图像宽度,y为显示耗时),利用matlab拟合函数polyfit可分别获得分界点两侧的拟合参数分别为:
K1=0.0142 b1=9.1429
K2=0.0040 b2=13.7226
另外,分界点处有一个陡降。
(2) 保持图像宽度为1024,高度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像高度的关系:
|
图像大小 |
耗时(ms) |
|
1024* 24 |
7.991773 |
|
1024* 74 |
8.330941 |
|
1024* 124 |
8.728022 |
|
1024* 174 |
8.949873 |
|
1024* 224 |
9.212036 |
|
1024* 274 |
9.314224 |
|
1024* 324 |
9.915585 |
|
1024* 374 |
10.48732 |
|
1024* 424 |
10.06826 |
|
1024* 474 |
10.53688 |
|
1024* 524 |
11.00385 |
|
1024* 574 |
11.51198 |
|
1024* 624 |
11.86265 |
|
1024* 674 |
12.37443 |
|
1024* 724 |
12.82756 |
|
1024* 774 |
12.96574 |
|
1024* 824 |
13.07387 |
|
1024* 874 |
13.06449 |
|
1024* 924 |
13.29595 |
|
1024* 974 |
13.50984 |
|
1024*1024 |
13.61576 |
|
1024*1074 |
13.72418 |
|
1024*1124 |
13.89101 |
|
1024*1174 |
14.05147 |
|
1024*1224 |
14.19271 |
|
1024*1274 |
14.35607 |
|
1024*1324 |
14.49231 |
|
1024*1374 |
14.67447 |
|
1024*1424 |
14.8504 |
|
1024*1474 |
15.04389 |
|
1024*1524 |
15.17076 |
|
1024*1574 |
15.34374 |
|
1024*1624 |
15.50715 |
|
1024*1674 |
15.70393 |
|
1024*1724 |
15.8263 |
|
1024*1774 |
16.02004 |
|
1024*1824 |
16.15512 |
|
1024*1874 |
16.3089 |
|
1024*1924 |
16.47101 |
|
1024*1974 |
16.65223 |
|
1024*2024 |
16.85534 |
将其绘成曲线图如下:

可以看出显示耗时与图像高度近似成分段线性关系,分界点为图像高度与显示窗口高度相等处(768)。
设y=kx+b(x为图像高度,y为显示耗时),利用matlab拟合函数polyfit可分别获得分界点两侧的拟合参数分别为:
k1=0.0066 b1=7.7498
k2=0.0032 b2=10.3651
总结:
利用StretchDIBits进行位图数据显示,缩放模式HALFTONE,不管图像是几通道,特征基本一致:
(1) 显示耗时与图像宽度成分段线性关系,分界点为图像宽度与显示窗口宽度相等处,且图像宽度小于窗口宽度时的一次项系数要大于图像宽度大于窗口宽度时的一次项系数。分界点处耗时有一个陡降。
(2) 显示耗时与图像高度成分段线性关系。分界点为图像高度与显示窗口高度相等处,且图像宽度小于窗口高度时的一次项系数要大于图像宽度大于窗口高度时的一次项系数
下面是一个测试程序,源码下载

StretchDIBits速度测试(HALFTONE)的更多相关文章
- StretchDIBits速度测试(COLORONCOLOR)
下面是一个测试程序,源码下载
- snprintf/strncpy/strlcpy速度测试
速度测试代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <un ...
- iOS5系统API和5个开源库的JSON解析速度测试
iOS5系统API和5个开源库的JSON解析速度测试 iOS5新增了JSON解析的API,我们将其和其他五个开源的JSON解析库进行了解析速度的测试,下面是测试的结果和工程代码附件. 我们选择的测试对 ...
- TF卡速度测试对比 Class数越高速度越快
存储卡(TF卡)是手机扩展存储的大杀器,让你多装n部学习资料,多装n个外语听力练习.除了装东西外,存储卡性能不佳也会影响手机的整体性能以及体验的.本文主要针对Android手机,我是懒人,但我讨厌懒人 ...
- 手机闪存速度测试工具,AndroBench
手机闪存速度测试工具,AndroBench
- VPS性能测试(3):磁盘IO读写速度、SSD硬盘速度测试
1.磁盘IO,即输入/输出(Input/Output),这是测试磁盘性能一个重要指标,一些便宜的VPS主机为了降低成本,以大量的低性能的硬盘来充当服务器,导致VPS主机因为IO差而拖了整个主机性能的后 ...
- 在线HTTP速度测试(响应时间测试)及浏览器兼容测试
一.前言 网站的响应时间,是判断一个网站是否是好网站的重要的因素之一.百度首页的响应时间在全国各个省份小于10ms.这个响应时间远远好于竞争对手.根据美丽说的技术负责人分析,美丽说访问速度提升10%, ...
- Linux硬盘速度测试的命令
测试下硬盘的读写速度如何,在linux下可以使用hdparm 对硬盘进行测试或查看硬盘的相关信息. hdparm 命令进行硬盘速度测试.参数: -a 表示是否关闭磁盘预读取功能.对于大文件读取,这个显 ...
- VPS速度测试(4):上传下载速度、服务器带宽、Ping响应时间
1.VPS的速度好坏经常是我们选择某一个VPS商家的重要参考指标,对于国外的VPS主机我们可以执行以下命令来测试VPS入口带宽是多少. wget https://cachefly.cachefly.n ...
随机推荐
- 往android的内核添加驱动及 ueventd.rc 修改【转】
本文转载自:http://blog.csdn.net/lkqboy2599/article/details/8350100 向android的内核添加驱动,其实就是向linux内核添加驱动.主要在两个 ...
- BZOJ 2002 Bounce 弹飞绵羊 —— 分块算法
题目链接:https://vjudge.net/problem/HYSBZ-2002 2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 10 Sec Memory Li ...
- Java 使用POI操作EXCEL及测试框架搭建、测试开发的一些想法
无论是UI自动化测试还是接口自动化测试都需要进行数据驱动,一般很常见的一种方式就是用excel来管理数据,那么就涉及到一些代码对EXCEL的操作,之前我们介绍过用CSV来处理EXCEL,但是它的功能还 ...
- win10环境变量path误删(windows找不到文件‘%windir%\systempropertiesadvanced.exe’)的解决办法
具体步骤如下:1. 首先重新启动电脑,点击开始按钮,选择电源,此时按住键盘上的shift键,再点击“重启”,选择疑难解答->再选择高级选项->再选择启动设置->然后点击重启-> ...
- 51Nod - 1821:最优集合 (求第一个不能被表示为多个数的和的数)(不错的动脑题)
一个集合S的优美值定义为:最大的x,满足对于任意i∈1,x1,x,都存在一个S的子集S',使得S'中元素之和为i. 给定n个集合,对于每一次询问,指定一个集合S1和一个集合S2,以及一个数k,要求选择 ...
- HihoCoder 1640 : 命名的烦恼(预处理)
描述 程序员常常需要给变量命名.给函数命名.给项目命名.给团队命名…… 好的名字可以大大提高程序员的主观能动性,所以很多程序员在起名时都会陷入纠结和烦恼. 小Hi希望给新的项目起个拉风的名字.他希望这 ...
- AutoIT:界面与自动化操作结合来简化日常劳动: .Net Reactor验证License,设置License,创建License,截图AutoIt自动化实现。(七)
版本六中存在一个显著问题是: 当exe文件生存之后,运行的时候,通过consoleWrite函数打印出来的数据是无法展示出来的.这就存在一个问题:当运行失败的时候,我还是看不到任何log信息. 于是, ...
- Winform安装包出现无法访问网络位置
1.原因:安装包的安装路径出现了问题 2.如下图:错误路径 3.如下图:正确路径
- vue全局配置
Vue.config 是一个对象,包含Vue的全局配置.可以在启动应用之前修改下列的属性: Vue.config.slient=true; 取消Vue所有的日志与警告 默认值false ...
- windows: Python安装scipy,scikit-image时提示"no lapack/blas resources found"的解决方法
解决方案: 最后,解决我遇到的这个问题的解决方案是来自以下链接的答案: http://www.voidcn.com/blog/z6491679/article/p-5740396.html. 另外还有 ...