发明内容
本发明实施例提供了一种生成页面点阵数据的方法及装置,以实现降低内存资源的占用量,提高***处理效率的目的。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,本发明实施例提供了一种生成页面点阵数据的方法,包括:
获取页面中各行图元的象素参数;
根据所述各行图元的象素参数,为所述各个行分配游程编码数据单元;
按照所述各行图元的象素参数以及各个象素之间的连续关系,将所述各行图元的象素合并存储到其相应行的游程编码数据单元中。
另一方面,本发明实施例提供了一种生成页面点阵数据的装置,包括:
参数获取模块,用于获取页面中各行图元的象素参数;
数据单元分配模块,用于根据所述各行图元的象素参数,为所述各个行分配游程编码数据单元;
存储模块,用于按照所述各行图元的象素参数以及各个象素之间的连续关系,将所述各行图元的象素合并存储到其相应行的游程编码数据单元中。
本发明实施例提供的一种生成页面点阵数据的方法及装置,通过获取到的页面中各行图元的象素参数,为所述各个行分配游程编码数据单元;并按照所述各行图元的象素参数以及各个象素之间的连续关系,将所述各行图元的象素合并存储到其相应行的游程编码数据单元中。与现有技术相比,本发明实施例通过将所述各行图元的象素合并存储到其相应行的游程编码数据单元中使得页面中各行图元的象素所需要的内存空间大大减少,***需要处理的数据量也大大降低,从而降低了内存资源的占用量,提高了***的处理效率。
具体实施方式
下面结合附图对本发明实施例提供的一种生成页面点阵数据的方法及装置进行详细的说明。
如图1所示,为本发明实施例提供的一种生成页面点阵数据的方法,该方法,具体实现过程如下:
101:获取页面中各行图元的象素参数;
102:根据所述各行图元的象素参数,为所述各个行分配RL(Run Length,游程编码)数据单元;
103:按照所述各行图元的象素参数以及各个象素之间的连续关系,将所述各行图元的象素合并存储到其相应行的RL数据单元中。其中,所述RL数据单元结构如图4(a),其具有的数据结构如下:
typedef struct_RL
{
unsigned short value;
unsigned short length;
_RL*next;
}RL;
其中,Length用于存储页面中某行中象素参数相同且位置连续的象素个数;Value用于存储所述象素参数相同的象素参数值,例如:颜色相同的象素的颜色值;Next RL pointer则用于存储下一个RL数据单元的地址如图4(b),设一个RL数据单元可存储的的象素个数为1000,所述当前页的某独立行需要存储的象素个数为2042,设前2000个象素的象素参数值为100,后42个象素的象素参数值为200;则需要3个RL数据单元对所述需要存储的象素进行存储,即RL数据单元1,RL数据单元2,RL数据单元3;这样RL数据单元1中的Length1为1000;Value1为100;Next RL pointer1为RL数据单元2的地址;RL数据单元2中的Length2为1000;Value2为100;Next RL pointer2为RL数据单元3的地址;RL数据单元3中的Length3为42;Value3为200;Next RL pointer3为NULL,NULL标明本行RL数据结束。
基于以上实施例,如图2所示,为本发明实施例提供的一种生成页面点阵数据的方法具体实现流程图。该方法,具体实现过程如下:
201:RL数据分配管理模块获取页面的参数信息;例如:整个待存储或者待输出页面的幅宽、幅高以及整个页面的行数以及每行的象素个数等等。
202:根据所述页面的参数信息,RL数据分配管理模块为所述页面中各个行分配RL数据单元。具体的讲就是可以根据当前初始页面的行数以及每行的象素个数等页面参数信息,分配相应的RL数据单元;所述RL数据单元用于存储当前页面各个独立行的象素信息。例如:设初始页面参数信息中的行数与每行的象素个数为1000*800,当所述初始页面没有任何图元时,则RL数据分配管理模块将按照一定的设置为所述初始页面的各行分配相应数据量的RL数据单元。其中,所述分配相应数据量的RL数据单元可以由用户预先设置或者由计算机根据其当前内存资源的可用量进行自动设置。
需要注意的是,如果所述分配的RL数据单元不能够满足当前页面中某独立行象素的存储需求,则所述RL数据分配管理模块可以继续按照用户预先设置或者由计算机根据其当前内存资源的可用量进行自动设置为当前页面的当前行分配相应数据量的RL数据单元。也就是说,所述RL数据分配管理模块可以根据页面中行的象素参数进行动态分配RL数据单元。相应的,如果所述当前页面中某独立行象素的存储需求小于RL数据单元的存储量,则可以根据实际情况的需要将多余的RL数据单元回收,以便分配给其他的行进行使用。
203:RL数据分配管理模块获取页面中各行图元的象素参数;
204:根据所述各行图元的象素参数,RL数据分配管理模块为所述各个行分配RL数据单元;例如:当所述RL数据分配管理模块根据所述获取到的各个独立行的图元的象素参数(如颜色值)以及当前行中各个象素的位置关系,可以判断出前1000个像素(:象素)的颜色值为100,中间的500个象素的颜色值为200,最后剩下的象素的颜色值为0,则当前行需要三个RL数据单元来分别存储所述三种颜色值的象素,这样,所述RL数据分配管理模块将根据当前行的RL数据单元情况进行RL数据单元的分配。例如:当所述RL数据分配管理模块在初始分配过程中已经分配够三个RL数据单元时,则无需再进行RL数据单元分配;如果当前行所分配的RL数据单元小于当前需要的RL数据单元,则所述RL数据分配管理模块根据预设值为当前行继续分配RL数据单元。
205:将位置相互连续的象素且象素参数相同的象素合并存储到RL数据单元中;例如:设当前行所需的RL数据单元已经分配够用;其中,RL数据单元1用于存储所述前1000个象素的颜色值为100的象素;RL数据单元2用于存储所述前500个象素的颜色值为200的象素;RL数据单元3用于存储所述最后剩下的象素的颜色值为0的象素。
206:将合并存储后的象素按照其合并象素的位置关系在RL数据单元中相互关联。例如:将所述RL数据单元1中的Next RL pointer1设置为RL数据单元2的地址;将所述RL数据单元2中的Next RL pointer2设置为RL数据单元3的地址;将所述RL数据单元3中的Next RL pointer3设置为NULL。其中,NULL表示当前行结束。
需要注意的是,该方法还包括:
判断所述分配的RL数据单元的存储空间是否小于所述各行图元的象素所需要合并存储的存储空间;
如果所述分配的RL数据单元的存储空间小于所述各行图元的象素所需要合并存储的存储空间,则继续为所述各行图元的象素分配RL数据单元;
如果所述分配的RL数据单元的存储空间大于所述各行图元的象素所需要合并存储的存储空间,则回收大于所述各行图元的象素所需要合并存储的RL数据单元。
还需要注意的是,该方法还包括:
判断所述页面中各个行RL数据单元中的象素是否输出完毕;
如果所述各个行RL数据单元中的象素输出完毕,则将所述各个行RL数据单元的数据释放。
还需要注意的是,以上所述象素参数包括:象素颜色和象素长度;
所述RL数据单元包括:数据参数值Value、数据长度Length和下一数据单元的地址Next RL pointer。
还需要注意的是,当按照所述各行图元的象素参数以及各个象素之间的连续关系,将所述各行图元的象素合并存储到其相应行的RL数据单元中后,为了获得更高的压缩比,更多的减少所述RL数据单元写盘数据,也可以对页面RL数据进行其它附加的二次压缩和编码。
如图3所示,为本发明实施例提供的一种生成页面点阵数据的装置,该装置包括:
参数获取模块301,用于获取页面中各行图元的象素参数;
数据单元分配模块302,用于根据所述各行图元的象素参数,为所述各个行分配RL数据单元;
存储模块303,用于按照所述各行图元的象素参数以及各个象素之间的连续关系,将所述各行图元的象素合并存储到其相应行的RL数据单元中。
其中,所述存储模块303,包括:
合并存储子模块,用于将位置相互连续的象素且象素参数相同的象素合并存储到RL数据单元中;
关联子模块,用于将合并存储后的象素按照其合并象素的位置关系在RL数据单元中相互关联。
需要注意的是,所述装置,还包括:
页面参数获取模块,用于获取页面的参数信息;
所述数据单元分配模块,还用于根据所述页面的参数信息,为所述页面中各个行分配RL数据单元。
还需要注意的是,所述装置,还包括:
存储空间判断模块,用于判断所述分配的RL数据单元的存储空间是否小于所述各行图元的象素所需要合并存储的存储空间;
所述数据单元分配模块,用于如果所述分配的RL数据单元的存储空间小于所述各行图元的象素所需要合并存储的存储空间,则继续为所述各行图元的象素分配RL数据单元;
数据单元回收模块,用于如果所述分配的RL数据单元的存储空间大于所述各行图元的象素所需要合并存储的存储空间,则回收大于所述各行图元的象素所需要合并存储的RL数据单元。
还需要注意的是,所述装置,还包括:
输出判断模块,用于判断所述页面中各个行RL数据单元中的象素是否输出完毕;
数据释放模块,用于如果所述各个行RL数据单元中的象素输出完毕,则将所述各个行RL数据单元的数据释放。
本发明实施例提供的一种生成页面点阵数据的方法及装置,通过获取到的页面中各行图元的象素参数,为所述各个行分配RL数据单元;并按照所述各行图元的象素参数以及各个象素之间的连续关系,将所述各行图元的象素合并存储到其相应行的RL数据单元中。与现有技术相比,本发明实施例通过将所述各行图元的象素参数合并存储到其相应行的RL数据单元中使得页面中各行图元的象素所需要的内存空间大大减少,***需要处理的数据量也大大降低,从而降低了内存资源的占用量,提高了***的处理效率。
通过以上的实施方式的描述,本领域普通技术人员可以理解:实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如上述方法实施例的步骤,所述的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。