[发明专利]一种位图文件的快速解压方法有效
申请号: | 200910033607.9 | 申请日: | 2009-06-24 |
公开(公告)号: | CN101635141A | 公开(公告)日: | 2010-01-27 |
发明(设计)人: | 慕安臻 | 申请(专利权)人: | 青岛海信电器股份有限公司 |
主分类号: | G09G5/373 | 分类号: | G09G5/373 |
代理公司: | 苏州广正知识产权代理有限公司 | 代理人: | 宋凌林;田兴中 |
地址: | 266004山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 位图 文件 快速 解压 方法 | ||
技术领域
本发明涉及一种文件解压方法,更具体地,涉及一种基于抽丝、多缓存、多任务技术的大分辨率位图文件(bitmap)的快速解压方法。
背景技术
目前的电视机以及视频显示装置大多提供图片显示功能,但因为绝大多数电视机中的电视信号视频处理芯片采用的嵌入式CPU性能限制(一般主频在400MHz以下),所以无法提供大分辨率的位图(bitmap)文件显示功能。而部分可以实现此功能的,也采用的是单任务、单缓存的图片解压方式。
单任务、单缓存的图片解压方式就是显示和解压都是一个线程实现的,解压完成之后,才能进行图片显示,解压和显示两项工作之前有先后次序关系,必须串行,同时因为串行进行,所以只需要采用单缓存即可。但是,当在当前显示的图像与上一幅或者下一幅图像之间进行切换时,以1幅4000*3000分辨率的位图文件为例,在CPU主频为400MHz的情况下,其解压时间在20秒左右,如果采用单缓存、单任务机制,两幅图片显示时间间隔至少为20秒。可见,这种解压方式解压效率低,解压时间过长,形成方案实用性不强。
因此,需要一种位图(bitmap)文件的快速解压方法,能够适用于数字电视机等视频显示系统,能够使数字电视机提供更具实用性的位图(bitmap)文件显示功能。
发明内容
为了解决上述技术问题,本发明提供了一种位图文件的快速解压方法,该方法基于抽丝、多缓存、多任务的图片解压技术,能够快速实现大分辨率位图(bitmap)文件的快速解压。
本发明的技术方案如下:
一种位图文件的快速解压方法,包括:
步骤1,将比屏幕大的位图等比压缩到屏幕的大小;
步骤2,设置三个缓冲区,其中所述三个缓冲区分别用于保存压缩后的当前位图、当前位图的前一幅位图以及当前位图的后一幅位图;
步骤3,同时执行前台显示任务和后台解压任务;其中所述前台显示任务将保存当前位图的缓冲区的数据拷贝到显示层的缓冲区,所述后台解压任务用于解压压缩后的位图,并根据当前位图的显示方式将数据写入保存前一幅位图的缓冲区或保存后一幅位图的缓冲区。
其中,步骤1采用“抽丝”算法来压缩位图。所述“抽丝”算法包括以下步骤:对比位图和屏幕的宽、高比例,确定要按位图高度进行压缩还是要按照位图宽度进行压缩,确定压缩比例;根据压缩比例,计算出压缩后位图的高度和宽度;如果按位图高度进行压缩,则根据压缩前、后的位图高度,使被抽取的行均匀分布,对每一列位图抽取不用的行;如果按位图宽度进行压缩,则根据压缩前、后的位图宽度,使被抽取的列均匀分布,对每一行位图抽取不用的列。
其中,如果位图高度比例大于宽度比例的情况下,要按照位图高度进行压缩;位图宽度比例大于高度比例的情况下,要按照位图宽度进行压缩。
其中,步骤2进一步包括:设置位置变量curPictureIndex以及多缓冲接口函数,其中所述位置变量curPictureIndex指示保存当前位图的数据的缓冲区位置;所述多缓冲接口函数用于根据当前位图显示方式切换缓冲区。
所述多缓冲接口函数包括函数SwitchBuf、GetDecodeBuf和GetShowBuf;其中所述函数SwitchBuf用于根据当前的位图显示方式更新位置变量curPictureIndex;所述函数GetDecodeBuf用于根据当前位图显示方式获得下一次解压将使用的缓冲区,函数GetShowBuf用于获得当前显示位图的缓冲区。
其中,步骤3进一步包括:设置位图显示回调函数DMPAL_ShowPicture和解压任务回调函数DMPAL_DecodePicture;其中,所述位图显示回调函数DMPAL_ShowPicture用于将保存当前位图的缓冲区的数据拷贝到显示层的缓冲区;解压任务回调函数DMPAL_DecodePicture用于将解压的位图数据写入保存前一幅位图的缓冲区或保存后一幅位图的缓冲区。
其中,位图显示回调函数DMPAL_ShowPicture通过调用所述函数GetShowBuf获得当前位图的缓冲区;解压任务回调函数DMPAL_DecodePicture通过调用所述函数GetDecodeBuf获得解压的位图数据写入的缓冲区。
更进一步地,在步骤3中,所述后台解压任务在位图解压完成后,向前台显示任务释放解压完成信号量;
所述前台显示任务在当前位图显示完成后,切换所述缓冲区,并向后台解压任务释放开始解压信号。具体地,设置一定时器,当前位图显示完成一定时间后由定时器发出开始显示信号量,启动切换所述缓冲区。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛海信电器股份有限公司,未经青岛海信电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910033607.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:鼓结构
- 下一篇:净化工作台操作面板的显示系统