StretchDIBits速度测试(COLORONCOLOR)

来源:互联网 发布:mac 卸载python idle 编辑:程序博客网 时间:2024/05/21 17:49

StretchDIBits速度测试(COLORONCOLOR)

下面实验中显示窗口大小为1024*768,缩放模式设为COLORONCOLOR.

一、单通道图像

(1)保持图像高度为1024,宽度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像宽度的关系:

图像大小

耗时(ms)

  24*1024

0.485881

  74*1024

0.594743

 124*1024

0.571831

 174*1024

0.653185

 224*1024

0.739424

 274*1024

0.797349

 324*1024

0.882883

 374*1024

0.948951

 424*1024

1.052741

 474*1024

1.10279

 524*1024

1.209704

 574*1024

1.291225

 624*1024

1.388616

 674*1024

1.481678

 724*1024

1.546604

 774*1024

1.640871

 824*1024

1.622908

 874*1024

1.755669

 924*1024

1.778222

 974*1024

1.84403

1024*1024

2.290068

1074*1024

2.14334

1124*1024

2.137177

1174*1024

2.165749

1224*1024

2.197622

1274*1024

2.210179

1324*1024

2.241017

1374*1024

2.323646

1424*1024

2.359107

1474*1024

2.40872

1524*1024

2.418016

1574*1024

2.54215

1624*1024

2.549388

1674*1024

2.648694

1724*1024

2.685471

1774*1024

2.763146

1824*1024

2.743719

1874*1024

2.885167

1924*1024

2.860264

1974*1024

3.265519

2024*1024

2.497559

将其绘成曲线图如下:


可以看出显示耗时与图像宽度近似成分段线性关系,分界点为图像宽度与显示窗口宽度相等处(1024)(暂不考虑最后一个陡降的点)

设y=kx+b(x为图像宽度,y为显示耗时),利用matlab拟合函数polyfit可分别获得分界点两侧的拟合参数:

k1=0.0015         b1=0.4179

k2=0.0009         b1=1.0962

关于最后一个陡降的点经过实验发现是的确存在的,原因不明,但后续的耗时恢复正常,所以暂且忽略这个异常的点。

 

(2)保持图像宽度为1024,高度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像高度的关系:

 

图像大小

耗时(ms)

1024*  24

0.361436

1024*  74

0.592388

1024* 124

0.62894

1024* 174

0.691099

1024* 224

0.757364

1024* 274

0.829704

1024* 324

0.912667

1024* 374

0.985629

1024* 424

1.123233

1024* 474

1.127419

1024* 524

1.22558

1024* 574

1.246796

1024* 624

1.314681

1024* 674

1.412767

1024* 724

1.510644

1024* 774

2.289256

1024* 824

2.322529

1024* 874

2.289525

1024* 924

2.308631

1024* 974

2.300291

1024*1024

2.305223

1024*1074

2.313024

1024*1124

2.31014

1024*1174

2.308651

1024*1224

2.319193

1024*1274

2.323176

1024*1324

2.324207

1024*1374

2.325172

1024*1424

2.321219

1024*1474

2.334064

1024*1524

2.316492

1024*1574

2.315742

1024*1624

2.329006

1024*1674

2.321873

1024*1724

2.32554

1024*1774

2.330731

1024*1824

2.331057

1024*1874

2.336948

1024*1924

2.339502

1024*1974

2.33793

1024*2024

2.338746

将其绘成曲线图如下:


可以看出显示耗时与图像高度近似成分段线性关系,分界点为图像高度与显示窗口高度相等处(768)。

设y=kx+b(x为图像高度,y为显示耗时),利用matlab拟合函数polyfit可分别获得分界点两侧的拟合参数:

k1=0.0015    b1=0.4249

k2=0.0000    b2=2.2766

分界点右侧的一次项系数为0,也即图像高度的增加几乎不会导致显示耗时的增加,另外,分界点处的耗时有一个陡增。

二、三通道图像

 (1)保持图像高度为1024,宽度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像宽度的关系:

图像大小

耗时(ms)

  24*1024

0.496943

  74*1024

0.525924

 124*1024

0.56152

 174*1024

0.625716

 224*1024

0.710384

 274*1024

0.759371

 324*1024

0.820918

 374*1024

0.911579

 424*1024

0.946737

 474*1024

1.024288

 524*1024

1.100743

 574*1024

1.171984

 624*1024

1.289861

 674*1024

1.346379

 724*1024

1.485398

 774*1024

1.568699

 824*1024

1.660429

 874*1024

1.747256

 924*1024

1.823535

 974*1024

1.886791

1024*1024

9.406334

1074*1024

9.485967

1124*1024

9.487119

1174*1024

9.617951

1224*1024

9.709512

1274*1024

9.768444

1324*1024

9.798699

1374*1024

9.902748

1424*1024

9.951103

1474*1024

10.00635

1524*1024

9.992558

1574*1024

10.21022

1624*1024

10.20696

1674*1024

10.22107

1724*1024

10.30458

1774*1024

10.34907

1824*1024

10.39685

1874*1024

10.53284

1924*1024

10.56546

1974*1024

10.80934

2024*1024

10.77438

将其绘成曲线图如下:


可以看出显示耗时与图像宽度近似成分段线性关系,分界点为图像宽度与显示窗口宽度相等处(1024)。

设y=kx+b(x为图像宽度,y为显示耗时),利用matlab拟合函数polyfit可分别获得分界点两侧的拟合参数:

k1=0.0015         b1=0.3578

k2=0.0013         b1=8.0543

另外,分界点处的耗时有一个陡增。

 

(2)保持图像宽度为1024,高度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像高度的关系:

图像大小

耗时(ms)

1024*  24

0.453282

1024*  74

0.559841

1024* 124

0.650393

1024* 174

0.713092

1024* 224

0.758881

1024* 274

0.828169

1024* 324

0.907679

1024* 374

0.994082

1024* 424

1.052253

1024* 474

1.150243

1024* 524

1.248796

1024* 574

1.309089

1024* 624

1.328522

1024* 674

1.399326

1024* 724

1.520225

1024* 774

9.382084

1024* 824

9.387245

1024* 874

9.397157

1024* 924

9.3715

1024* 974

9.390076

1024*1024

9.399021

1024*1074

9.388517

1024*1124

9.389165

1024*1174

9.407433

1024*1224

9.413657

1024*1274

9.41129

1024*1324

9.38704

1024*1374

9.427486

1024*1424

9.400938

1024*1474

9.415915

1024*1524

9.431978

1024*1574

9.438745

1024*1624

9.449743

1024*1674

9.446803

1024*1724

9.459638

1024*1774

9.475284

1024*1824

9.42492

1024*1874

9.435004

1024*1924

9.436805

1024*1974

9.441407

1024*2024

9.447217

将其绘成曲线图如下:


可以看出显示耗时与图像高度近似成分段线性关系,分界点为图像高度与显示窗口高度相等处(768)。

设y=kx+b(x为图像高度,y为显示耗时),利用matlab拟合函数polyfit可分别获得分界点两侧的拟合参数:

k1=0.0015         b1=0.4429

k2=0.0001         b1=9.3321

右侧的一次项系数几乎为0,也即高度的增加几乎不会再导致显示耗时的增加,另外,分界点处耗时会有一个陡增。

三、四通道图像

(1)保持图像高度为1024,宽度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像宽度的关系:

 

图像大小

耗时(ms)

  24*1024

0.470315

  74*1024

0.532987

 124*1024

0.571911

 174*1024

0.616933

 224*1024

0.738879

 274*1024

0.801321

 324*1024

0.878483

 374*1024

0.946771

 424*1024

1.025686

 474*1024

1.129047

 524*1024

1.196909

 574*1024

1.271085

 624*1024

1.393661

 674*1024

1.510324

 724*1024

1.612139

 774*1024

1.738257

 824*1024

1.851156

 874*1024

1.935884

 924*1024

2.030643

 974*1024

2.123686

1024*1024

1.397279

1074*1024

1.466479

1124*1024

1.484383

1174*1024

1.551648

1224*1024

1.545651

1274*1024

1.542259

1324*1024

1.558865

1374*1024

1.572882

1424*1024

1.612407

1474*1024

1.606463

1524*1024

1.615305

1574*1024

1.654366

1624*1024

1.657202

1674*1024

1.671559

1724*1024

1.715028

1774*1024

1.732174

1824*1024

1.728852

1874*1024

1.76246

1924*1024

1.766069

1974*1024

1.813662

2024*1024

1.802157

将其绘成曲线图如下:


可以看出显示耗时与图像宽度近似成分段线性关系,分界点为图像宽度与显示窗口宽度相等处(1024)。

设y=kx+b(x为图像宽度,y为显示耗时),利用matlab拟合函数polyfit可分别获得分界点两侧的拟合参数:

k1=0.0018         b1=0.3249

k2=0.0004         b2=1.0767

另外间断点处耗时会有一个陡降。

(2)保持图像宽度为1024,高度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像高度的关系:

图像大小

耗时(ms)

1024*  24

0.520621

1024*  74

0.615822

1024* 124

0.630938

1024* 174

0.694383

1024* 224

0.79024

1024* 274

0.843656

1024* 324

0.950601

1024* 374

1.029676

1024* 424

1.100249

1024* 474

1.232784

1024* 524

1.297848

1024* 574

1.339361

1024* 624

1.442296

1024* 674

1.503715

1024* 724

1.620008

1024* 774

1.368446

1024* 824

1.377501

1024* 874

1.536467

1024* 924

1.379138

1024* 974

1.385147

1024*1024

1.409499

1024*1074

1.403418

1024*1124

1.393499

1024*1174

1.404927

1024*1224

1.428232

1024*1274

1.401241

1024*1324

1.41452

1024*1374

1.440644

1024*1424

1.424837

1024*1474

1.41572

1024*1524

1.415339

1024*1574

1.424607

1024*1624

1.423748

1024*1674

1.421063

1024*1724

1.423177

1024*1774

1.436194

1024*1824

1.427017

1024*1874

1.439402

1024*1924

1.432318

1024*1974

1.443736

1024*2024

1.422492

将其绘成曲线图如下:


可以看出显示耗时与图像高度近似成分段线性关系,分界点为图像高度与显示窗口高度相等处(768)。

设y=kx+b(x为图像宽度,y为显示耗时),利用matlab拟合函数polyfit可分别获得分界点两侧的拟合参数:

k1=0.0016         b1=0.4501

k2=0.0000         b2=1.3835

分界点右侧一次项系数为0,也即图像高度的增加几乎不会导致显示耗时的增加。分界点处耗时会有一个陡降。

 

总结:

利用StretchDIBits进行位图数据显示,缩放模式COLORONCOLOR,总结特征如下:

(1)显示耗时与图像宽度成分段线性关系,分界点为图像宽度与显示窗口宽度相等处,且图像宽度小于窗口宽度时的一次项系数要大于图像宽度大于窗口宽度时的一次项系数。

(2)显示耗时与图像高度成分段线性关系。分界点为图像高度与显示窗口高度相等处,当图像高度大于显示窗口高度时的一次项系数几乎为0,也即显示耗时几乎不再随着图像高度的增加而增加。

(3)对于同样大小的图像,四通道图像显示最快,其次是单通道图像,最后是三通道图像。

(4)单通道与三通道图像显示耗时随着图像大小的提高而增加,但四通道图像在分界点处却有一个陡降。


下面是一个测试程序,源码下载


0 0
原创粉丝点击