[发明专利]面向多核平台的超大照片并行合成方法有效
申请号: | 201410020282.1 | 申请日: | 2014-01-16 |
公开(公告)号: | CN103778596A | 公开(公告)日: | 2014-05-07 |
发明(设计)人: | 孙钦东;贺毅;贾怀玉;王健;张景鹏 | 申请(专利权)人: | 西安理工大学 |
主分类号: | G06T3/40 | 分类号: | G06T3/40 |
代理公司: | 西安弘理专利事务所 61214 | 代理人: | 李娜 |
地址: | 710048*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种面向多核平台的超大照片并行合成方法,步骤包括:步骤1、设置版面信息;步骤2、选择待绘制的照片,并对这些照片在版面上的位置进行坐标定位;步骤3、对版面按照一定规则进行分块,确定每块的宽、高;步骤4、开启多任务机制来并行绘制每块;步骤5、主线程阻塞,直到所有块都保存到内存流中;步骤6、将所有的流组成一个完整流写入到磁盘文件中,即将容器C中所有的元素拼接成一个完整的JPEG流,保存到外部磁盘文件上,即成。本发明的方法,充分利用了多核计算机的资源,减少了合成一张大图所需时间,具有很好的效果。 | ||
搜索关键词: | 面向 多核 平台 超大 照片 并行 合成 方法 | ||
【主权项】:
1.一种面向多核平台的超大照片并行合成方法,其特点在于,按照以下步骤实施:步骤1、设置版面信息设定生成版面的宽和高、以及水平和垂直分辨率,并新建一个全局变量关联容器C,容器的Key表示块的编号,Value值表示该编号的块所保存成的二进制流;步骤2、选择待绘制的照片,并对这些照片在版面上的位置进行坐标定位建立一个列表L,该列表包含所有待排版照片名字,以及由某一排版算法确定各个照片在版面中的坐标位置,还有照片的宽和高;步骤3、对版面按照一定规则进行分块,确定每块的宽、高对版面进行分块,对于JPEG格式的照片,按照以MCU为单元进行分块,并对分的块按照0,1,2,3…进行编号,将每块的宽、高设定为相同;步骤4、开启多任务机制来并行绘制每块根据块数创建T个任务,然后传递块参数并开启每个任务,块参数包括:块的编号、块的宽和高,每个任务的具体步骤是:4.1)计算该块的上限和下限:设定块的上限为BT,下限为BB,块号为BN,块高度为BH,则有:BT = BN × BH BB = ( BN + 1 ) × BH ; ]]> 4.2)创建一个与该块的宽和高一样的画板;4.3)循环遍历列表L,计算每张照片的上限和下限设定照片在版面中的上限为PT,下限为PB,纵坐标为PY,照片的高度为PH,则有:PT = PY PB = PT + PH ; ]]> 然后由每张照片与该块的关系,调用Windows的DrawImage函数在画板上进行绘画;4.4)将绘制好的画板保存为JPEG流并根据不同的块修改流的值若是第一块,应将流中表示宽高的值修改为整个版面的宽高;若是其他块,应该去除JPEG流的头文件只保存数据流,然后将修改后的流加入容器C中;步骤5、主线程阻塞,直到所有块都保存到内存流中主线程中加入阻塞语句,直到所有的任务都执行完毕并全部加入容器C中,才唤醒;步骤6、将所有的流组成一个完整流写入到磁盘文件中,即将容器C中所有的元素拼接成一个完整的JPEG流,保存到外部磁盘文件上,即成。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安理工大学,未经西安理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410020282.1/,转载请声明来源钻瓜专利网。