一种VBIOS中优化图片压缩处理的方法与流程

文档序号:31622733发布日期:2022-09-23 23:45阅读:133来源:国知局
一种VBIOS中优化图片压缩处理的方法与流程
一种vbios中优化图片压缩处理的方法
技术领域
1.本发明涉及图片预处理领域,特别涉及一种vbios中优化图片压缩处理的方法。


背景技术:

2.vbios即video bios,是显示模块启动引导程序(属于bios的一个组成部分),它被存储在一块容量被严格限制的flash rom中,vbios除了做显示模块引导功能,它还可以提供显示厂商logo的方法,由于vbios存储空间和功能限制,内部无法加入图片解码器,因此厂商logo无法实现普通压缩格式图片的解码。当绘制logo图片的时候,需要逐个像素读取其rgb三原色的数值,逐一像素绘制,这种逐一像素存储及读取无论从flash rom有限的空间方面考虑还是从绘制效率方面考虑都是极大的浪费。


技术实现要素:

3.一种vbios中优化图片压缩处理的方法,包括以下步骤:
4.s1:打开图片,对其二进制读取,还原图片的原始数据;
5.s2:按照读取顺序逐个读取原始数据中的像素信息,提取有效像素点,获取位置顺序号,起始位置顺序号标记为索引值,使得索引值加一,判断像素信息的rgb值,其中有效像素点为rgb值非零的像素点;
6.s3:若像素信息的rgb值为非零时则代表有效值,开始记录有效像素点对应的位置顺序号,将位置顺序号排列并标记为一段线段;
7.s4:继续提取有效像素点,返回步骤s2,直至所有像素信息的rgb值为零,文件解析完毕,关闭文件,开始绘制。
8.优选的,步骤s2中,还包括判断读取原始数据中是否直接读完,若直接读到文件结尾,则关闭文件。
9.优选的,步骤s3中,若像素信息的rgb值为零时则代表无效值,则重新回到步骤s2,直至rgb值再为零时,使得索引值减一。
10.优选的,步骤s2中,索引值为自然数。
11.优选的,绘制的步骤为:
12.(1)读取索引信息,判断索引信息是否有效,其中索引信息为一对数值,数值中包括线段的起始点和线段的结束点;
13.(2)如果索引信息为有效,读取线段的起始点,使帧缓冲区偏移到线段的起始点,通过颜色自定义rgb值,并使索引值加一;
14.(3)判断索引值是否大于线段的结束点,如果是则进入(1),读取下一组索引信息,直到读取结束,绘制完毕。
15.优选的,判断索引信息有效的标准是:索引信息中是否为一对数字,且线段的起始点小于线段的结束点。
16.优选的,若索引值小于线段的结束点,则令帧缓冲区偏移到索引值处,通过颜色自
定义rgb值,再设置索引值加一后,重新回到步骤(3)。
17.优选的,所述帧缓冲区为程序的内存区域。
18.本发明的有益效果是:
19.本专利针对厂商logo图片先进行预处理,对不同压缩格式的图片进行解析,然后对像素点逐个读取其rgb值,把连续的有效像素点的起始和结束的索引值记录下来,每组值就是需要绘制线段的起始和结束点,以此达到压缩的目的,最后在绘制的时候根据这些索引值绘制线段,组成需要绘制的logo图片,本方案将需要绘制的图片切割成连续像素组成的线段,存储的信息为线段的起始和结束的索引值,而不是将逐个像素点的信息,这样就可以实现节省存储空间的目的。
附图说明
20.图1为预处理阶段的工作流程图;
21.图2为绘制阶段的工作流程图;
22.图3为24x11的像素矩阵示意图。
具体实施方式
23.本发明提出了一种vbios中优化图片压缩处理的方法,其主要分为预处理阶段和绘图阶段;
24.如图1所示,预处理阶段:
25.对图片文件进行打开操作,进行格式的解析;其中,格式的解析是通过不同压缩格式的图片进行二进制的读取,按照相对应压缩格式进行解压,还原出图片的原始数据,即rgb数据。
26.按照顺序逐个读取像素信息,使索引值+1;索引值为自然数,为1,2,3...
27.判断文件是否读完,若读到文件的结尾,则文件解析完毕,关闭文件,否则判断像素点的rgb值,如果是非0则代表有效值,如果为0则代表为无效值;
28.判断是否开始记录有效索引的flag,如果判断条件为true则认为正在记录有效索引,进入继续寻找有效的像素点,如果判断条件为false进入;其中有效索引为有效像素点对应的位置顺序号,flag是值为true表示已经开始记录有效的牵引,值为false表示记录效索引结束。
29.若判断条件为true,则继续寻找有效的像素点,按照顺序逐个读取像素信息,使索引值+1;
30.若判断条件为false时,把开始记录的flag设置为true并记录开始的索引信息,然后继续寻找有效的像素点,按照顺序逐个读取像素信息,使索引值+1;
31.若开始记录的flag判断条件为false,则代表读到了无效的像素点信息,继续寻找有效的像素点,如果判断条件为true代表这次记录的线段结束;
32.把开始记录的flag设置为false,并记录线段结束的位置,即索引值-1,继续寻找有效的像素信息,直到剩下无效的像素点信息后,文件解析完毕,关闭文件。
33.如图2所示,绘制阶段:
34.读取索引信息,索引信息是一对数值,其中数值包括前数和后数,前数是线段的起
始点,后数是后段的结束点;
35.判断索引信息是否有效,判断的标准为:判断索引信息中数值是否为一对数字,且前数是否小于后数;如果是有效索引则进读取起始点信息;
36.使得帧缓冲区偏移到起始点,根据自定义的颜色设定此处的rgb值,并使索引值+1,帧缓冲区对于程序而言,为一块内存区域,对于用户而言,为屏幕上显示的内容;
37.判断索引值是否大于后数,如果是,读取下一组索引信息,直到读取结束,如果不是,则令帧缓冲区偏移到索引值处,根据自定义的颜色设定此处的rgb值,再设置索引值+1后,再次判断索引值是否大于后数,依次类推,最终绘制完毕。
38.实施例:如图3所示,为一个24x11的像素矩阵;
39.如果每一个格子代表一个像素,其分辨率可视为24x11像素的图片,按照传统方式以rgb格式存储,存储大小应为24x11x3 bytes(r:8bit,g:8bit,b:8bit)=792bytes,如果不考虑颜色以bit格式存储,其存储大小应为24x11x1bit=33bytes。
40.若使用本方法存储,先进行有效数据的查找,第一个有效数据是第一行的第08顺序位,这时需要把08顺序位的序列值记录下来,作为一组数据的开始值,接下来的09~17顺序位所对应的像素点都是有效数据,直到18顺序位所对应像素点的数据为无效数据,这时需要把17顺序位的序列值记录为这组数据的结束值,以此类推,就会得到11组序列值,他们分别是第一行(08,17),第二行(06,19),第三行(04,21),第四行(03,22),第五行(02,23),第六行(01,24),第七行(02,23),第八行(03,22),第九行(04,21),第十行(06,19),第十一行(08,17),接下来再把上面的每行序列值转换成索引值,第一行(08,17)保持不变,第二行(06,19)需要序列值偏移行长度(24)得到索引值(30,43),第三行(04,21)需要序列值偏移两个行长度(24)得到索引值(52,69),第四行(03,22)需要序列值偏移三个行长度(24)得到索引值(75,94),第五行(02,23)需要序列值偏移四个行长度(24)得到索引值(98,119),...以此类推,最终得到11组索引值,绘制的时候就按照起始索引值+结束索引值来绘制线段,这些线段就会拼出上面的图片,所以按照本专利的方法计算存储应为11x2(起始点1byte,结束点1byte)=22bytes(11组开始和结束索引值),可大大节省了存储空间;随着分辨率的提高,本专利的效果率愈加明显。
41.本发明的技术范围不仅仅局限于上述说明中的内容,本领域技术人员在不脱离本发明技术思想的前提下,对上述实施例进行多种变形和修改,而这些变形和修改均应当属于本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1