发明内容
本发明提供一种页面点阵压缩方法及装置,本发明所提供的方法和装置用于解决现有技术中跨页重用的页面点阵数据存在重复存储,浪费存储空间的问题。
本发明提供一种页面点阵压缩方法,包括:
将一个包括多个印刷页的可变数据印刷作业经过RIP光栅化处理,得到每个印刷页分解后的多个分色页面点阵;
将当前印刷页的每一个分色页面点阵与上一印刷页对应的分色页面点阵进行顺序比较,记录当前印刷页与上一印刷页页面内容相同的字节数LI和页面内容存在差异的字节数LD以及对应的差异化字节序列;
对相同内容的字节数LI和页面内容存在差异的字节数LD进行压缩编码。
本发明还提供一种页面点阵解压缩方法,针对上述压缩文件的生成方法,该解压缩方法包括:
获取上一印刷页的页面点阵数据作为当前印刷页的页面点阵数据的基础页面点阵数据;
扫描当前印刷页的压缩数据,根据压缩编码规则,提取当前印刷业和上一印刷页页面内容相同的字节数LI和页面内容存在差异的字节数LD以及对应的差异化字节序列;
若当前解压缩字节属于页面内容相同的字节,则保持基础页面点阵数据中的对应区段内容不变;
若当前解压缩字节属于差异化字节序列,则复制所述对应的差异化字节序列复制到基础页面点阵数据中的对应区段。
本发明还提供一种页面点阵压缩装置,包括:
光栅化模块,用于将一个包括多个印刷页的可变数据印刷作业经过RIP光栅化处理,得到每个印刷页分解后的多个分色页面点阵;
差异信息确定模块,用于将当前印刷页的每一个分色页面点阵与上一印刷页对应的分色页面点阵进行顺序比较,记录当前印刷页与上一印刷页页面内容相同的字节数LI和页面内容存在差异的字节数LD以及对应的差异化字节序列;
压缩编码模块,用于对相同内容的字节数LI和页面内容存在差异的字节数LD进行压缩编码。
上述技术方案中的一个或两个,至少具有如下技术效果:
本发明实施例所提供的方法和装置,每一页的压缩效果只取决于当前页与上一页的相似度,对于基于多个模板页面的可变数据印刷作业的页面点阵数据能自动适应。
具体实施方式
本发明实施例提供一种页面点阵压缩方法,包括:将一个包括多个印刷页的可变数据印刷作业经过RIP光栅化处理,得到每个印刷页分解后的多个分色页面点阵;将当前印刷页的每一个分色页面点阵与上一印刷页对应的分色页面点阵进行顺序比较,记录当前印刷页与上一印刷页页面内容相同的字节数LI和页面内容存在差异的字节数LD以及对应的差异化字节序列;对相同内容的字节数LI和页面内容存在差异的字节数LD进行压缩编码。
在实际生产应用中商品包装袋或标签等是比较典型的可变数据作业,不同标签的唯一区别就是标签中的序列号不一样,除了序列号以外,不同页面的对应位置的点阵数据是完全一样的,也就是说不同页面之间页面点阵数据的相似度非常高。序列号就是可变数据页面点阵块,其它的是不同页面之间重复使用的重用数据页面点阵块。
可变内容的重用页面点阵块和可变页面点阵块相互之间允许重叠,后作用到页面的页面点阵块总是取代已有的背景。一个典型的例子就是可变数据作业中的所有页面共用一个页面背景,在页面背景的基础上再叠加可变数据内容,页面背景就是一个重用页面点阵块。
通常排版软件(如典型的标签设计软件)通过排版生成可变数据作业的模板,再结合数据库来生成海量可变数据印刷作业的不同页面。一个可变数据印刷作业对应的一个页面点阵可以看成由一系列的被不同页重用(甚至在同一页中的不同位置被重用,页面点阵块和不同页可变的页面点阵块组成。显然在存储可变数据印刷作业对应的页面点阵数据时,可重用的页面点阵块数据只需要存储一次,可以有效减少需要存储的数据量,提高页面点阵数据的压缩存储效率。如何快速地区分出一个可变数据作业中不同页面中哪些数据是重复使用的,哪些数据是可变的,是解决这种可变数据印刷作业页面点阵数据压缩问题的关键。
如图1所示,本发明实施例提供一种页面点阵压缩方法,下面结合说明书附图对本发明的具体实施方式进行详细说明:
步骤101,将一个包括多个印刷页的可变数据印刷作业经过RIP光栅化处理,得到每个印刷页分解后的多个分色页面点阵;
一个包括多个印刷页的可变数据印刷作业经过RIP光栅化后,可以分解为一系列的分色页面点阵,典型地,每一个印刷页的页面点阵由青(Cyan)、品红(Magenta)、黄(Yellow)、黑(blacK)四个色面的页面点阵组成。
在具体的应用中每个色面的页面点阵数据都是需要进行对应的压缩处理,因为相同色系的页面点阵压缩方法相同,则通过以下一个色系页面点阵数据的压缩对印刷业压缩方法进行说明:
步骤102,将当前印刷页的每一个分色页面点阵与上一印刷页对应的分色页面点阵进行顺序比较,记录当前印刷页与上一印刷页页面内容相同的字节数LI和页面内容存在差异的字节数LD以及对应的差异化字节序列;
在该步骤中,当前印刷页的每个分色页面都要与前一页对应颜色的分色页面进行比较包括:
按照印刷内容的顺序,将当前印刷页的第一分色页面点阵的字节内容与上一印刷页相同颜色的分色页面点阵中的字节内容进行比较;
因为在两个分色页面进行比较的过程中,会交替的才出现相同和不相同的字节,则以第一次出现相同或不相同字节为例,确定相同和不相同的字节序列的方法包括:
如果确定当前比较的两个字节不相同,则获取当前比较字节与前一次出现字节不相同之间的多个字节的第一字节数,并确定所述第一字节数是否大于等于设定的第二阈值(在本发明实施例中,该第二阈值的取值可以任意一个整数,最优实施例为4字节),如果是,则确定所述多个字节为相同内容LI1,如果小于第二阈值,则确定当前比较字节与所述多个字节为差异化字节序列LD,将所述差异化字节序列和差异化字节序列的字节数LD1存入LD区段中。
因为前后两个印刷页相同颜色的分色页面点阵进行比较时,会交替的出现字节内容相同与字节内容不相同。所以在根据上述“当前印刷页的每个分色页面都要与前一页对应颜色的分色页面进行比较”的方法交替地出现相同内容LI和差异化字节序列LD直到这个页面内容比较结束。
另外,相同颜色的两个分色页面进行比较后,按照分色页面点阵的颜色将比较结果分别存储。记录当前印刷页与上一印刷页页面内容相同的字节数LI1和页面内容存在差异的字节数LD以及对应的差异化字节序列,可以是通过以下两种具体方式实现:
(1)差异化字节序列与差异字节数一起保存;
根据页面内容的排列顺序记录所述LI1与LD区段,其中所述LD区段包括字节数LD和与LD对应的差异化字节序列,其中,LI1与LD区段交替排列;
(2)将差异区段的字节序列存放在可变缓冲区;
根据分色页面点阵中各字节的排列顺序交替排列所述LI1和LD1,并按照分色页面点阵中各字节的排列顺序将差异化字节序列存放到可变数据缓冲区中。
步骤103,确定LD与当前印刷页内容的字节数的比值是否大于设定的第一阈值,如果是,则进行下一印刷页的压缩处理;否则,转入步骤104。
步骤104,对相同内容的字节数LI和页面内容存在差异的字节数LD进行压缩编码。
为了便于需要快速还原指定页N(N>=0)的页面点阵数据,该方法还包括当印刷业的页数大于指定页数M(M>0),则将当前印刷页的上一页重置为空白页。
在第M页的前一印刷业被设置为空白页后,页面点阵还原程序还原第N页的内容只需从[N/M]*M页开始还原前(N%M)的页面点阵数据后即可得到第N页的页面点阵数据,无需总是从第一页开始还原页面点阵数据。
对于当前印刷业的其他分色页面点阵压缩时候,则重复步骤102,103和104,直至当前页的页面点阵数据比较结束。
把当前页作为上一页,跳转至下一页,把下一页作为当前页,继续上述步骤,直至可变数据印刷作业所有页处理结束。
上述压缩算法中对当前页的页面点阵数据与上一页的页面点阵数据进行比较时可以基于字节BYTE进行比较,也可以基于字WORD或双字DWORD进行比较。
如图2所示,将上述页面点阵压缩方法应用到实际环境中后,具体的实现流程步骤为:
步骤201,将第一印刷页的上一页设定为空白页面,空白页面即所有的页面点阵数据全为0,当前页压缩后数据长度计数器LE清零。
步骤202,把当前页的页面点阵数据与上一页的页面点阵数据进行顺序的字节比较,记录完全一样的字节数LI和不完全一样的字节数LD,以及对应的不完全一样的字节序列(或称为可变数据)。
步骤203,根据产生的LI和LD的取值范围,对LI和LD进行压缩编码,编码为1-4个字节,编码后的LI和LD分别构成LI区段和LD区段;
其中,对LI的编码方法如下:
若0<LI<64(如表1所示),编码结果为1个字节,表中每一格代表一个二进制位,X代表二进制位0或1,下同。
表1
64<=LI<8192(如表2所示),编码结果为2个字节:
0 |
1 |
0 |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
表2
8192<=LI<(2的20次方)(如表3所示),编码结果为3个字节:
0 |
1 |
1 |
0 |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
表3
(2的20次方)<=LI<(2的28方)(如表4所示),编码结果为4个字节:
0 |
1 |
1 |
1 |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
表4
对LD的编码方法如下:
若0<LD<64(如表5所示),编码结果为1个字节:
表5
64<=LD<8192(如表6所示),编码结果为2个字节:
1 |
1 |
0 |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
表6
8192<=LD<(2的20次方)(如表7所示),编码结果为3个字节:
1 |
1 |
1 |
0 |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
表7
(2的20次方)<=LD<(2的28方)(如表8所示),编码结果为4个字节:
1 |
1 |
1 |
1 |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
表8
另外,字节0x00为当前页编码结束标志。
步骤204,产生的LI和LD编码后长度(1-4个字节),以及步骤202中产生的可变数据长度累加到计数器LE(该计数器中包括两个相同颜色分色页面不同字节的字节数)中。若(LE/页面点阵数据中的字节数)>=压缩率阈值R(R>=90%,即第一阈值),说明前后两页的页面点阵相似度不高,压缩效果不好,终止当前压缩算法,对当前页施行其它传统的压缩算法,跳转至步骤206,直至当前印刷页的页面点阵数据比较结束;否则继续步骤205;
步骤205,长度为LD字节的可变数据字节序列复制到LD的编码区段后。
步骤206,把当前印刷页作为上一页,跳转至下一页,把下一页作为当前页,转入步骤202直至所有页处理结束。
如图3所示,进一步,针对上述方法生成的压缩文件,本发明实施例还提供一种页面点阵解压缩方法,该方法具体包括:
步骤301,获取上一印刷页的页面点阵数据作为当前印刷页的页面点阵数据的基础页面点阵数据;
步骤302,扫描当前印刷页的压缩数据,根据压缩编码规则,提取当前印刷业和上一印刷页页面内容相同的字节数LI和页面内容存在差异的字节数LD以及对应的差异化字节序列;
步骤303,若当前解压缩字节属于页面内容相同的字节,则保持基础页面点阵数据中的对应区段内容不变;
步骤304,若当前解压缩字节属于差异化字节序列,则复制所述对应的差异化字节序列复制到基础页面点阵数据中的对应区段。
如图4所示,根据实施例所提供的方法,本发明实施例还提供一种页面点阵压缩装置,包括:
光栅化模块401,用于将一个包括多个印刷页的可变数据印刷作业经过RIP光栅化处理,得到每个印刷页分解后的多个分色页面点阵;
差异信息确定模块402,用于将当前印刷页的每一个分色页面点阵与上一印刷页对应的分色页面点阵进行顺序比较,记录当前印刷页与上一印刷页页面内容相同的字节数LI和页面内容存在差异的字节数LD以及对应的差异化字节序列;
压缩编码模块403,用于对相同内容的字节数LI和页面内容存在差异的字节数LD进行压缩编码。
如图5所示,为了进一步的确定相同颜色的两个分色页面的具体差异字节,所述差异信息确定模块402包括:
比较单元501,用于按照印刷内容的顺序,将当前印刷页的第一分色页面点阵的字节内容与上一印刷页相同颜色的分色页面点阵中的字节内容进行比较;如果确定当前比较的两个字节不相同,则获取当前比较字节与前一次出现字节不相同之间的多个字节的第一字节数,并确定所述第一字节数是否大于等于设定的第二阈值,如果是,则确定所述多个字节为相同内容LI1,如果小于第二阈值,则确定当前比较字节与所述多个字节为差异化字节序列,将所述差异化字节序列和差异化字节序列的字节数LD1存入LD区段中;
记录单元502,用于根据页面内容的排列顺序记录所述LI1与LD区段,其中,LI1与LD区段交替排列;或者根据分色页面点阵中各字节的排列顺序交替排列所述LI1和LD1,并按照分色页面点阵中各字节的排列顺序将差异化字节序列存放到可变数据缓冲区中。
进一步,为了达到每一页的压缩效果只取决于当前页与上一页的相似度,对于基于多个模板页面的可变数据印刷作业的页面点阵数据能自动适应,该装置还包括:
差异率确定模块404,用于将当前确定的LD1与已出现的差异化字节序列总字节数进行求和,确定所述求和结果与当前分色页面点阵的总字节数的比值是否大于设定的第一阈值,如果是,则结束比较,将当前印刷页进行独立压缩。
另外,为了便于需要快速还原指定页N(N>=0)的页面点阵数据,页面点阵还原程序只需从[N/M]*M页开始还原前(N%M)的页面点阵数据后即可得到第N页的页面点阵数据,无需总是从第一页开始还原页面点阵数据。本发明实施装置还包括:
初始值重置模块405,用于当印刷业的页数大于指定页数M(M>0),则将当前印刷页的上一页重置为空白页。
本申请实施例中的上述一个或多个技术方案,至少具有如下的技术效果:
本发明实施例所提供的方法和装置使得可变数据压缩和还原的速度非常快。该压缩方法是对当前页相对于上一页的增量进行游程压缩。
另外,本发明实施所提供的压缩方法和装置是一种自适应的压缩方法,每一页的压缩效果只取决于当前页与上一页的相似度,对于基于多个模板页面的可变数据印刷作业的页面点阵数据能自动适应。例如,若第N页是基于模板页面A生成的,而第N+1页开始的后续若干页面是基于模板页面B生成的,那么该压缩方法只会对第N+1页的页面点阵数据的压缩率产生影响,对N+2页开始的后续页面的压缩率又会恢复到正常水平。
本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。