- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于SSE4的电子相册问题概述利用SSE4技术实现图片的淡入淡出效果,设计出一个电子相册。问题分析根据题目要求,首先利用VC++中的MFC框架构建电子相框,初步完成图片的显示功能。利用加权平均公式:,(1)在fade因子从1渐变为0的过程中,产生一系列A、B的中间图像,实现A图像到B图像的淡入淡出效果,计算过程使用SSE4技术嵌入汇编完成。详细设计3.1设计概述首先在Visual Studio2010中创建一个MFC工程,本设计主要用到的类是MFC框架中的CXXView类(其中XX是工程名,本设计创建的工程名为:SSE4),在该类构造函数CSSE4View::CSSE4View()中实现本地4张图片的加载,得到图片的副本。然后在CSSE4View::OnDraw(CDC* pDC)中完成图片的显示,利用上述公式,将两张图片的渐变过程分为128帧,具体令fade因子从128/128渐变为0,分子每减一次1,便调用CSSE4View::HANDLE(int factor,int k1,int k2)函数,利用嵌入SSE4技术的汇编程序计算出中间图像,返回主调函数在界面上显示这一帧的图像,128帧的逐一显示即可完成第一张图片到第二张图片的彻底转变,重复上述行为显示第二张到第三张图片以及剩余图片的渐变即可设计出一个电子相册。3.2设计过程本文结合具体代码论述该电子相册的实现过程。首先在‘SSE4View.h’文件的SSE4View类中声明以下变量(SIZE为#define宏定义,在这里=4):变量说明CBITMAP m_bitmap[SIZE]加载本地四张图片的存储变量BYTE* m_newptr[SIZE]四张图片的副本存储变量BYTE* m_tarptr合成的中间图像存储变量并声明类方法:BYTE HANDLE(int factor,int k1,int k2),该方法具体实现合成中间图像的计算过程。在CSSE4View::CSSE4View()中,用loadImage()打开4张图片,存储到hBitmap[SIZE],将其加载到m_bitmap[SIZE]中,再创建结构体数组变量bm[SIZE]获得图片的基本信息,具体包括图片存储的首地址、图片的宽度、高度等信息。为了防止破换原图片,保险起见,本设计将图片拷贝到m_newptr[SIZE]中,由于loadImage只能打开.bmp格式的图片,所以本设计具有一定的局限性,只能实现图片为24位.bmp格式的电子相册。每个像素点占24位,即3个字节,利用memcpy()函数每次实现一个像素的拷贝,根据bm[]中图像的首地址、宽度和高度信息实现所有像素的拷贝即可得到图片的副本。在void CSSE4View::OnDraw(CDC* pDC)中,循环SIZE次依次实现每两张图片的淡入淡出,本设计将图片的渐变过程设置成128帧,即fade因子从128/128渐变到0,调用HANDLE()函数根据上述公式得到中间图像m_tarptr,调用函数pDC-SetPixel()以RGB格式显示此中间图像。在BYTE CSSE4View::HANDLE(int factor,int k1,int k2)中利用SSE4汇编指令具体计算上述公式生成中间图像。SSE4指令能对多组数据进行并行处理,含有多个128位的寄存器,考虑到计算过程中可能存在溢出,本设计具体实现时采用的是8组并行,即一次处理可8个字节的数据,利用SSE4指令中的扩展命令对其进行扩展,每个数据占16位来保证数据的正确性,在不考虑其他因素的情况下,性能可提高8倍。在开始两张图像的中间合成前要做好下面几个数据准备:(1)得到两张原图和合成图的首地址;(2)将当前渐变因子复制存储到容量为8的数组fade[8]中,来支持8个数据的并行运算。(3)计算公式迭代次数,利用图片的宽度和高度得到像素个数,每个像素占3个字节,得到整张图片的字节数all,由于一次计算可以处理8个字节的数据,all/8即可求出迭代次数。接下来嵌入SSE4指令的汇编来具体合成图片,将地址、迭代次数、渐变因子送入寄存器中,将渐变因子扩展到128位,以每次处理8个字节为基准来处理整幅图的像素,进入循环后,扩展原图数据到128位,利用前面提到的公式(1),根据SSE4提供的指令对原数据进行计算,由于这里我们将渐变因子的浮点形式写成了除法形式:fade/128(其中渐变因子fade为分子),在乘完fade后我们要将结果右移8位来做除法运算。将合成后的结果赋值给目的地址所指向的内存单元。在经历了多次迭代后得到整张中间图片。结果展示 附录代码实现// SSE4View.cpp : CSSE4View 类的实现//#include stdafx.h// SHARED_HANDLERS
您可能关注的文档
- 《咬文嚼字》薛丽丽.ppt
- 《医疗器械生产质量管理规范》(现场检查指导).doc
- 《应用计算方法教程》matlab作业一.docx
- 《优美的汉字》上课.ppt
- ⑩必修三 第一章区域地理环境与人类活动(认识大洲与地区).ppt
- 《有理数的加法》第二课时.ppt
- SNS柔性防护2015.3.22修改.doc
- socket多人聊天程序C语言版.doc
- 《原子核外电子的排布》.ppt
- 《圆锥的体积》公式(动画版).ppt
- 实验室危废随意倾倒查处规范.ppt
- 实验室危废废液处理设施规范.ppt
- 实验室危废处置应急管理规范.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第20课时 中国的地理差异.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第21课时 北方地区.ppt
- 危险废物处置人员防护培训办法.ppt
- 危险废物处置隐患排查技术指南.ppt
- 2026部编版小学数学二年级下册期末综合学业能力测试试卷(3套含答案解析).docx
- 危险废物处置违法案例分析汇编.ppt
- 2026部编版小学数学一年级下册期末综合学业能力测试试卷3套精选(含答案解析).docx
最近下载
- GB50854-2013 房屋建筑与装饰工程工程量计算规范.docx VIP
- 加油站的法律法规与合规要求.pptx VIP
- 统编版六年级阅读理解第25课 寓言童话故事阅读重点 课件.pptx VIP
- 2025年【直接打印】人教版八年级上册地理期末复习核心考点提纲.pdf VIP
- 妊娠期与产后女性运动专家共识(2025版).pptx VIP
- (高清版)DB31∕T 1487-2024 国际医疗服务规范.docx VIP
- 七年级数学试题及评分标准(2)七年级上册数学期末试卷免费.pdf VIP
- 精品解析:北京市西城区2024-2025学年高二上学期期末考试英语试题(解析版).docx VIP
- 泰国光伏市场发展与前景分析报告.pdf
- 2026人教版小学语文三年级上册期末综合试卷3套(打印版含答案解析).docx
原创力文档


文档评论(0)