激光打印系统的图像编解码装置及方法

文档序号:2674739阅读:380来源:国知局
专利名称:激光打印系统的图像编解码装置及方法
技术领域
本发明涉及激光打印系统,具体地说,涉及其中的图像数据处理方法。
背景技术
一般的激光打印系统包括一个包含打印驱动程序的计算机、通讯接口和一台具有CPU、SDRAM和打印语言仿真器或解释器的激光打印机。而传统的黑白激光打印机,由于PC机本身的CPU数据处理能力低下,配置内存小,使得打印任务只能通过描述语言的方式(如PCL、PostScript、ESC/Page等)传送给打印机控制器,由打印机控制器处理几乎所有的打印数据,实现一页数据展开的工作,因此一般黑白激光打印机的标准配置内存为4-8MB。
近期的彩色激光打印机,一般具有高性能的CPU和大容量的SDRAM,由于数据量的激增,对打印机控制器的复杂度、性能以及内存配置的要求不断提高,使得打印机控制器的成本高昂,开发周期长,但是却性能不佳,不能充分满足日益提速的引擎机械装置的速度要求。
另一方面,计算机CPU的性能突飞猛进,数据处理能力极高,有能力承担一部分打印作业中的数据处理工作,这就是GDI方式打印机,主要集中在黑白激光打印的低端市场。由于GDI方式打印机在画质和数据压缩、解压缩、打印速度等方面的限制,无法满足黑白激光打印的高端市场或彩色激光打印市场的需求。
彩色激光打印系统要求能够实现高画质、低成本和高速打印,而目前造成其成本高和性能差的主要瓶颈在于巨大的全彩色图像的数据量,比如A4、600dpi、RGB格式的数据量为100MB,CMYK格式的数据量为130MB,巨大的数据量对内存消耗、通讯带宽等各方面,都提出了极高的要求。于是,如何在不损失打印质量的前提下降低通讯数据量则成为首要解决的问题。对此,各打印机厂商纷纷开发能够有效压缩RGB格式的数据编码方法,如基于对相邻点差值的哈夫曼编码方法,但这种编码方法对于大部分复杂图像样本,若考虑无损压缩,则压缩率很小,一般在50%以内。若采用有损压缩,则会造成RIP处理前的原始数据失真,很难保证真实的打印效果。
另外,也有一些厂商开始采用基于算术编码的JBIG压缩技术,但是由于JBIG压缩技术主要面向低于4位深度的位图压缩算法,针对RGB格式的数据并不适用,并且由于JBIG编码标准是基于输入位流的串行处理过程,因此对于芯片解码速度也是必须解决的难题。

发明内容
本发明所要解决的技术问题在于提供用于激光打印系统的编解码装置及其方法,克服了现有技术中存在的解码速度较慢、不能满足不同引擎的速度要求等缺点。
本发明所述用于激光打印系统的图像编码装置,包括图像数据处理单元和图像编码压缩单元;所述图像数据处理单元用于对原始的彩色图像或黑白图像数据,进行色空间变换处理和位深缩减及随机抖动处理;所述图像编码压缩单元用于将经过预处理的图像数据进行JBIG编码压缩,并把压缩后的数据输出给激光打印控制器。
本发明所述用于激光打印系统的图像解码器,具有n个解码通道,且每个解码通道的结构和所占用的资源完全相同,每个解码通道均至少包括参考点寄存器、索引寄存器、高概率预测值寄存器、解码存储器、解码运算单元以及解码用寄存器组;所述参考点寄存器是一个10位宽的寄存器,用于寄存解码过程所需的10个参考点;所述索引寄存器用于存储所述解码存储器中的概率预测表空间的地址偏移量;所述高概率预测值寄存器是一个1位宽的寄存器,用于存储对应当前参考点寄存器的二进制序列值的预测值;所述解码存储器包括存储空间和概率预测表空间,所述存储空间存储所述参考点寄存器与所述索引寄存器、高概率预测值寄存器的对应关系,所述概率预测表空间存储所述索引寄存器与所述解码用寄存器组的对应关系;所述解码运算单元根据所述解码存储器的输出进行解码运算,并将所得的二进制序列以及相关寄存器的值返回给所述参考点寄存器和所述存储空间。
本发明所述图像编码方法,包括以下步骤一、对原始图像数据进行色空间变换处理,将其由RGB空间转换到CMYK空间;二、将步骤一所得的CMYK数据进行位深缩减随机抖动处理;三、将整幅打印图像纵向平均分割成n个小图像,形成n个图像数据块;四、将每个图像的像素点的位深描述展开,获得每个图像的二进制序列值排列;五、将n个图像数据块依次进行JBIG编码,得到n个压缩数据块。
本发明所述图像解码方法,包括以下步骤一、对当前待求二进制序列值进行解码,获得当前待求二进制序列值和对应的索引寄存器、高概率预测值寄存器的值STnew、MPSnew;二、在当前待求二进制序列值等于0和等于1两种情况下,获取下一待求二进制序列值的参考点寄存器的值CX0、CX1,以及对应的索引寄存器ST0、ST1和高概率预测值寄存器的值MPS0、MPS1;三、判断当前待求二进制序列值对应的参考点寄存器的值与下一待求二进制序列值对应的参考点寄存器的值CX0、CX1是否相同,如果相同,则下一待求二进制序列值对应的索引寄存器和高概率预测值寄存器的值采用STnew、MPSnew,转至步骤五;如果不相同,则转至步骤四;四、判断当前待求二进制序列值是否等于0,如果等于0,则下一待求二进制序列值对应的索引寄存器和高概率预测值寄存器的值采用ST0和MPS0;如果不等于0,则采用ST1和MPS1;五、将上述下一待求二进制序列值作为当前待求二进制序列值,重复步骤一至步骤四,直至完成所有二进制序列值的解码;其中,所述步骤一和步骤二是同时进行的。
本发明所述激光打印控制器,包括接口控制器、CPU、数据存储器、DMA控制器、第一数据缓冲器、图像解码器、图像数据位深控制单元、第二数据缓冲器、印前处理器、第三数据缓冲器、引擎控制器、脉宽调制波发生器和打印消耗量统计单元;所述接口控制器,作为所述激光打印控制器与图像编码装置的接口;所述CPU,用于控制所述激光打印控制器与所述图像编码装置的数据通讯,以及控制打印过程;所述数据存储器,用于存储来自所述图像编码装置的图像压缩数据;所述DMA控制器,用于控制建立DMA通道,实现图像压缩数据的传输;所述第一数据缓冲器,用于缓存打印开始时,所述数据存储器输出的数据;所述图像解码器,用于对图像压缩数据进行解码;所述图像数据位深控制单元,用于将经过解码后的图像数据由二进制序列描述转化成像素描述;所述第二数据缓冲器,用于缓存所述图像数据位深控制单元输出的像素描述;所述印前处理器,用于将分解的小图像拼接成原始的图像和给每个像素加入打印位置信息,形成打印图像数据;
所述第三数据缓冲器,用于缓存所述印前处理器输出的打印图像数据;所述引擎控制器,用于建立所述CPU与激光打印单元之间的通讯,和控制图像数据的输出打印;所述脉宽调制波发生器,通过打印图像的每个像素数据调整脉宽调制波的脉宽,通过像素位置信息调整脉宽出现的位置,产生激光打印单元所需要的脉宽调制波,输出到所述激光打印单元;所述打印消耗量统计单元,位于所述第三数据缓冲器和所述引擎控制器之间,用于根据所述第三数据缓冲器输出的图像数据计算墨粉的消耗量。
本发明所述激光打印系统,包括激光打印单元,其特征在于,还包括如前所述的图像编码装置和激光打印控制器。
本发明结合打印引擎本身的成像特征,在保证高品质印刷质量的前提下,通过对打印数据的预处理,降低各颜色分量的位深,大大缩减了需要激光打印控制器所要收发和处理的数据量,并采用多通道分割技术对数据进行分块无损JBIG编码,从而进一步降低了数据量;同时为适应愈来愈快的高速打印引擎,本发明采用了多通道并行的方式进行JBIG解码,实现了高速的JBIG解码以及打印控制功能,使得打印系统在处理小于4MB的数据时,计算机的通讯速度不再成为高速印刷的瓶颈,并且打印引擎也不用配置大容量的内存,最高只需4MB的缓冲存储器,即可实现彩色/黑白的高速连续打印,从而使得整个系统能够较理想地实现高画质、低成本、高速三个看似相互矛盾的指标。


图1是本发明图像编码装置10的结构示意图;图2是采用二维线性插值算法的色空间变换示意图;
图3是位深缩减处理的流程图;图4是本发明图像编码压缩单元102进行编码的示意图;图5是本发明图像解码器20的结构示意图;图6是图5中CX寄存器201的结构示意图;图7是一种图像解码方法的流程图;图8是获取CX寄存器内容的原理图;图9是本发明所采用的获取CX寄存器201内容步骤的示意图;图10是本发明并行图像解码方法的流程图;图11是本发明激光打印控制器40的结构示意图;图12是图11中图像数据位深控制单元406的工作流程图;图13是本发明激光打印系统的示意图。
具体实施例方式
下面结合附图和实施例,对本发明的技术方案作进一步的详细描述。
如图1所示的图像编码装置10,装有激光打印系统的驱动软件,包括图像数据处理单元101和图像编码压缩单元102。图像编码装置10一般置于上位机中。
图像数据处理单元101对原始的彩色图像或黑白图像的数据,进行两方面的处理,首先进行色空间变换处理,然后进行位深缩减及随机抖动处理。相应的,图像数据处理单元包括色空间变换单元1011和位深缩减随机抖动处理单元1012。
色空间变换单元1011的作用是将图像数据由RGB空间转换成CMYK空间。在图像编码装置10中,图像的显示和成像均是以RGB格式存在的,而激光打印系统的成像格式是CMYK格式,所以需要将图像数据在这两个空间进行转换。RGB空间的点与CMYK空间的点是一一对应的、非线性的关系。如果可以建立这两个空间之间的关系,就可以在不失真的情况下完成空间转换。但是,要将所有RGB空间中不同灰阶的点在CMYK空间中找到与之对应的点是很困难的,即使这种关系建立起来,在转换过程中也会占用很大的内存空间,并且处理速度会很慢。为了在保证转换不失真且精度高的同时,减少内存空间和提高处理速度,一般有相应的算法来实现空间转换,例如插值算法。常用的色空间转换插值算法有四面体插值算法、三维线性插值算法和二维线性插值算法等,本发明采用的是二维线性插值算法。色空间变换插值算法的基本原理是通过待求点周边的特殊参考点的对应关系,通过插值的方法,求出这个点的空间对应关系。可以看出,上述几种插值算法只是选用特殊参考点的方法不同。
色空间变换二维线性插值算法中,像素点与基本参考点的空间关系示意图如图2所示。由于是基于查找表的插值算法,表数据是必不可少的,表1是RGB空间到CMYK空间的色空间变换表,表中所存储的只是基本参考点的空间对应关系。
表1

根据每个像素点的值,在这个变换表里找到4个基本参考点,以及它们的空间对应关系,再利用插值算法将这个像素点的空间对应关系求出。
像素点的值由R、G、B组成,形成一个三维空间。在色空间变换过程中,色空间变换表与其中一个色空间能够建立一一对应的关系,而与其他两个色空间只是在基本参考点上建立了转换关系,具体这两个色空间的变换关系是通过线性插值运算来求得,这就是所谓的二维线性插值算法。在表1中,R的空间变换是一一对应的,G和B只是参考点的空间对应关系。可以看出,基本参考点的间隔常数是16,因此,可以建立线性插值公式,如下所示y-y1x-x1=y2-y1x2-x1=y2-y116---(1)]]>其中y表示待求的对应关系,x表示待求空间的点值,x1、x2表示待求空间的基本参考点的值,y1、y2表示基本参考点的对应关系。
由像素点(R,G0,B0)的值在表1中找到相应的参考点(R,G1,B1)、(R,G1,B2)、(R,G2,B1)、(R,G2,B2)及其对应关系Y(R,G1,B1)、Y(R,G1,B2)、Y(R,G2,B1)、Y(R,G2,B2),建立图2所示的二维空间关系,再根据公式(1)进行如下步骤1.利用参考点(R,G1,B1)和(R,G1,B2)的线性插值运算,计算(R,G1,B0)的对应关系Y(R,G1,B0);2.利用参考点(R,G2,B1)和(R,G2,B2)的线性插值运算,计算(R,G2,B0)的对应关系Y(R,G2,B0);3.利用步骤1和2所求得的点(R,G1,B0)和Y(R,G2,B0)的线性插值运算,计算(R,G0,B0)的对应关系Y(R,G0,B0);4.计算RGB空间的像素点(R,G0,B0)在CMYK空间的对应关系Y(R,G0,B0)。
然后依次完成整幅图像的所有像素的色空间变换。采用二维线性插值算法完成色空间变换,运算简便,速度快且精度高。
通过色空间变换单元1011得到的CMYK数据,其每个色面(C、M、Y、K四个色面)的每个像素均是以一个字节的位深来描述的,因此每个色面的点均有256种灰阶变化。但是,目前的激光打印引擎很难达到这种精度,致使最终的打印效果严重失真,因此在图像数据进行编码前,还需要经过随机抖动处理;同时,由于激光打印引擎很难达到256种灰阶的精度,因此还要在保证不失真的前提下,根据打印引擎的特点降低像素点的位深描述。上述功能都可以通过位深缩减随机抖动处理单元1012来完成。
随机抖动处理是打印系统中一个必要的过程,它根据具体打印引擎的特点设计抖动矩阵,在抖动矩阵的每个位置上都包含一个链接关系表,根据链接关系表中的对应关系可以改变像素描述的整体疏密程度;位深缩减处理是本发明的一个特点,它也是根据具体打印引擎的特点设计位深缩减矩阵,以适当地缩减像素的位宽,达到在不失真的情况下,满足打印引擎的打印精度。
随机抖动处理是根据每个像素点的位置,找到在抖动矩阵中的相应位置,再根据像素点的CMYK值作为索引,在抖动矩阵中相应位置上的链接关系表中找到与之对应的新的CMYK值。在抖动矩阵中,链接关系表的排列方式使得最终得到的CMYK图像点,按照一定的疏密规律排列以加强或减弱局部效果,使其对应的打印引擎能够在打印效果上不失真地再现图像。
位深缩减的处理过程如图3所示。位深缩减的规律记录在位深缩减矩阵中,每个像素的位深缩减都要根据该矩阵的规定来进行。为了达到位深缩减而画质不变的效果,位深缩减矩阵是根据具体激光打印引擎描述打印点的特点来设计,从而可以达到互补的效果。不同的激光打印引擎,位深缩减矩阵的内容以及结构也不同。
位深缩减矩阵是一个p×q的矩阵(p、q均是不小于1的整数),在矩阵的每个点上,均标有对应这个位置的像素,在描述时所需位深的宽度。这样,根据图像中各个位置上的像素点,在位深缩减矩阵中对应的位置,找到描述此像素的位深,进行数据转化,完成图像数据的位深缩减。
此种处理方式并不影响最终的打印画质,而且可以大大降低图像数据量,提高数据传输的速度,缩小图像数据存储的空间,有利于提高系统性能和降低系统成本。由于本发明采用JBIG压缩和解压缩算法,对于二值图像其压缩比很高,但一旦图像位深超过4位,其压缩效果会大大降低,因此将图像数据进行位深缩减是非常必要的。位深缩减随机抖动处理单元1012的处理方法基本固定,但其中所用的矩阵模型是针对实际使用的激光打印引擎的特点而设计的,该矩阵模型的特征与打印引擎的特点紧密相关,因此,位深缩减随机抖动处理单元1012虽然降低了图像点描述的位深,但是从最终的打印画质上并没有造成图像失真。
本发明为了在进行随机抖动处理的同时能够进行位深缩减,采用了带有位深缩减功能的随机抖动矩阵,在重新排列像素点疏密程度的同时,将描述像素的CMYK数据的位深缩小,以降低数据量,也就是说,将像素描述由原有的8位缩减成低于8位(如1位、2位、3位或4位)。其中,带有位深缩减功能的随机抖动矩阵,由于每个位置上的位深描述规律的不同,其对应的链接关系表的结构也有所不同。因此,要根据实际的需要来设计这个抖动矩阵,以同时达到两种处理功能的作用。
图像通过位深缩减和随机抖动处理后,其灰阶变化依然比较明显,即灰阶变化存在较为明显的阶跃性。为了使图像的灰阶变化趋势更加趋于平滑,使得视觉效果不失真,在位深缩减的抖动处理基础上,还可以加入噪声处理单元1013来改善灰阶变化的平滑性。在噪声处理单元3013中存在一个噪声增量矩阵,与前述带有位深缩减功能的抖动矩阵具有相同的形式,且与每个像素的位置关系的建立方式是一样的,只是噪声增量矩阵的不同位置上是不同的增量。在进行噪声处理时,首先用噪声增量矩阵去寻找对应在不同位置上的像素,然后将矩阵中的噪声增量直接加入到对应的像素值中,得到新的像素值,其目的是在CMYK数据进行位深缩减抖动处理之前,将每个像素加入一个增量,使其在进行位深缩减抖动处理后,在改变了整体图像像素排列的疏密程度的同时,增强图像的平滑性,尽量在视觉上淡化色彩变化的阶跃性。如果先进行位深缩减抖动处理,再进行噪声处理,则在处理方式上是一样的,不同的是两种情况下噪声增量矩阵的设计不同,如果先进行噪声处理,则噪声增量矩阵是针对像素值的变化;如果后进行噪声处理,则噪声增量矩阵是针对位深缩减随机抖动处理的规律。与此同时,这两种情况下的位深缩减随机抖动处理矩阵也根据针对的处理对象不同而有所不同。
经过图像预处理后的数据,进入图像编码压缩单元102中进行数据编码压缩,然后输出到激光打印控制器40中进行处理。
图像编码压缩单元102,包括图像数据分割单元1021和JBIG编码单元1022,图像数据分割单元1021将收到的整幅打印图像纵向平均分割成n块(n≥1),即将一幅图像纵向平均分割成n个小图像,依次送入JBIG编码单元1022中,由JBIG编码单元1022进行数据编码压缩。JBIG编码单元1022采用的是JBIG无损压缩算法,该算法是ITU-T的标准协议,其特点是压缩比高,属于无损压缩。图像数据经过编码后,其图像数据量将大大降低,并且不会影响最终的打印画质。将整幅打印图像分成n个小图像是为了适应激光打印控制器40中图像解码器20的多通道工作方式。
图4是图1所示的图像编码压缩单元102进行编码的工作示意图。如上所述,图像分割单元1021的作用就是为了适应图像解码器20的多通道工作,而在图像编码前所做的对应的处理工作。由于JBIG编码算法处理的数据是二进制序列,是一位接一位的二进制数据流,而不是以多位的数据(例如一个或多个字节)为单位进行处理的,因此需将编码前的图像的每个像素点的位深描述展开,将图像上每个点都看成是二进制序列值,这样,编码前的图像就是由二进制序列值排列而成,而不再看成是像素的集合。
首先,图像分割单元1021将图像以纵向的方式,平均分割成n(n≥1)块,形成n个图像数据块,即图像数据块1、图像数据块2、......图像数据块n。这些图像数据块可以看成是一个个独立的小图像,而这些小图像依然是由二进制序列值排列而成的。
其次,对上述n个图像数据块进行编码,即将上述n个小图像的数据分别传入JBIG编码单元1022中,进行数据编码压缩。JBIG编码单元1022的压缩过程是一个无损的压缩过程,图像的原始数据不会被减少,图像的画质也不会受到影响,它的压缩结果描述了输入的二进制序列值的变化规律。
最后,独立的n个图像数据块分别进行编码压缩后,得到相对独立的n个压缩数据块,即压缩数据块1、压缩数据块2、......压缩数据块n。由于每个图像数据块经过JBIG编码单元1022压缩的压缩比不同,因此得到的压缩数据块的数据量也是不同的。
图5是图像解码器20的结构示意图,图像解码器20具有n个解码通道,分别对应进行编码后的n个压缩数据块,且每个解码通道的结构和所占用的资源完全相同。每个解码通道均至少包括参考点寄存器201、索引寄存器202、高概率预测值寄存器203、解码存储器204、解码运算单元205以及解码用寄存器组;其中参考点寄存器(也称作CX寄存器)201,是一个10位宽的寄存器,用于寄存解码过程所需的10个参考点,CX是标准JBIG算法中“Context”的缩写;索引寄存器(也称作ST寄存器)202用于存储解码存储器204中概率预测表空间2042的地址偏移量,ST是标准JBIG算法中“State”的缩写;高概率预测值(也称作MPS寄存器)203是一个1位宽的寄存器,用于存储对应当前CX寄存器201的二进制序列值的预测值,MPS是标准JBIG算法中“More probable symbol”的缩写;解码存储器204包括存储空间2041和概率预测表空间2042,存储空间2041建立了CX寄存器201与ST寄存器202、MPS寄存器203的对应关系;概率预测表空间2042建立了ST寄存器202与解码运算用寄存器组的对应关系;解码运算单元205用于进行解码运算,并将所得的二进制序列以及相关寄存器的值返回给CX寄存器201和解码存储器204中的存储空间2041。
上述n个解码通道的处理过程是完全独立的,相互之间是并行的关系,因此,对n个压缩数据块的解码过程可以同时进行,这是本发明提高数据处理速度的一个关键因素。但是,每个解码通道的解码速度是不同的,这主要是因为虽然每个图像数据块的数据量相同,但是其压缩比不同,压缩比越高,压缩数据量越少,解码速度比较快;反之,则压缩数据量大,解码速度比较慢。然而,由于JBIG解码过程也是无损的处理过程,因此每个解码通道的解码结果可以与编码前的图像数据块完全对应起来。
如图6所示,CX寄存器201可以进一步包括第一移位寄存器2011、第二移位寄存器2012和行序列缓冲存储器2013;其中第一移位寄存器2011用于寄存位置在5到9的参考点;第二移位寄存器2012用于寄存位置在0到3的参考点;行序列缓冲存储器2013则用于提供位置在4的参考点以及存储已获得的二进制序列。
图7描述了一种图像解码方法的流程图。首先根据当前待求二进制序列值的位置获取对应CX寄存器201的内容(步骤701),同时将所需的已求二进制序列值存入行序列缓冲存储器2013中,此步骤要对行序列缓冲存储器2013进行读写操作。
其次,以CX寄存器201的值作为寻址地址,获取对应的ST寄存器202和MPS寄存器203的值(步骤702)。ST寄存器202和MPS寄存器203的值均存放在存储空间2041中,该存储空间2041是以CX为寻址空间的表数据,且是动态变化的。由于每个二进制序列值被解码后,ST寄存器202和MPS寄存器203都会产生相应的新值,从而与当前的CX寄存器201建立新的对应关系,这种新的对应关系需要重新写入这个动态的存储空间2041中,以覆盖原有的对应关系。
然后,再以ST寄存器202的值作为寻址地址,获取解码用寄存器的值(步骤703)。上述寄存器值是存放在表数据空间2042中的,该表空间2042的对应关系是固定的,存储的都是一些经验数据。
最后,根据上述提取的相关寄存器值,进行JBIG解码(步骤704)。解码后所得的结果中不仅包括当前待求的二进制序列值,而且还包括ST寄存器202和MPS寄存器203的新值,从而与当前的CX寄存器201建立新的对应关系,并写入存储空间2041中。返回步骤701,对下一待求二进制序列值进行解码,直到完成所有二进制序列值的解码。
在上述解码过程中,涉及了对行序列缓冲存储器2013和解码存储器204中两个存储空间2041、2042的读写操作,它们共同组成了图像解码器20中各个解码通道的解码空间。在解码过程中,上述解码空间的读写操作是相互关联的,操作顺序是固定的,并且占据了大部分的解码时间。
图8给出了获取CX寄存器201内容的原理示意图。如前所述,在JBIG编码单元1022中进行编码处理的是二进制序列值;相应的,经过图像解码器20解码后的结果也是二进制序列值。
假设当前待求二进制序列值为X0,在CX寄存器201中存放的二进制序列值0至9称为参考点,参考点与X0的位置关系如图8。参考点4到9在X0的上一行,而参考点0到3则与X0同一行,且是X0的前4位二进制序列值。按照解码的顺序,这10个参考点是已求的二进制序列值,而在JBIG解码过程中,需要用到已求结果作为参考点,求解当前待求二进制序列值。
参考点与X0的相对位置是固定的,但是,随着JBIG解码过程的进行,参考点会随着X0的位置变化而变化。因此,需要一个存储空间将这些已求的二进制序列存储起来,待必要的时候为X0提供所需的参考点。如果采用一个存储空间,其大小至少需要能够存储两行的二进制序列值,然而,每一次提取10个参考点的时候,都需要对存储空间先后进行10次操作才能够获得。这样大大影响了解码的速度。
考虑到硬件设计的特点,采取并行处理的方式会大大提高参考点的获取速度。为了让这10个参考点经过一次存储器操作就可以同时获得,则需要10个空间大小相同、存储内容相同的存储器,同时提供不同位置上的参考点。这样虽然可以提高解码速度,但是过多地采用存储器,又增加了系统的成本。
为了降低系统成本,并且使得解码速度达到一定的快速性,本发明对如何获取CX寄存器201内容采用了以下的方法。
如图9所示,在CX寄存器201中的行序列缓冲存储器2013至少能够存储一行已求二进制序列值,当求解当前待求二进制序列值X0时,行序列缓冲存储器2013提供的是上一行参考点。为了减少对行序列缓冲存储器2013的操作次数,在第一移位寄存器2011中寄存着上一行参考点中位置在5到9的参考点。这样,在每一次求解X0的时候,行序列缓冲存储器2013只需进行一次操作,提供位置在4的参考点即可,而5到9的参考点由第一移位寄存器2011来提供。当得到X0的解码结果后,第一移位寄存器2011向左移一位,并将位置在4的参考点移入到第一移位寄存器2011的最低位,即图9中5的位置;而位置9上的参考点就被移出第一移位寄存器2011,不再作为参考点。移位后得到的第一移位寄存器2011中的参考点,将作为下一个待求二进制序列值的参考点。这样,通过第一移位寄存器2011的这种操作方式,不仅可以节省存储空间,而且可以避免对存储空间的多次操作。
同理,针对与X0同一行的参考点,第二移位寄存器2012用来寄存位置在0到3的参考点。当得到X0的解码结果后,第二移位寄存器2012同样向左移一位,并且将X0的解码结果移入第二移位寄存器2012的最低位,即图9中0的位置;而位置3的参考点被移出第二移位寄存器2012,在同一行的解码过程中,不再作为参考点。
但是,作为位置在0到3的参考点,除了作为X0的同行参考点外,还要在解码下一行待求二进制序列时,作为下一行待求二进制序列值的上一行参考点。所以,从第二移位寄存器2012移出的参考点,虽然在同一行的解码中不再起作用,但是在解码下一行时,仍然要作为参考点。基于这个考虑,从第二移位寄存器2012移出的参考点还必须暂时存入存储器中。
图9中所示虚线的参考点9是从第一移位寄存器2011中左移出来的,这个点由于不再作为参考点,因此不必进行存储。而虚线的参考点3是从第二移位寄存器2012中左移出来的,通过上面分析,该点需要存入存储器中,为了不另外扩大存储空间,本发明充分利用了行序列缓冲存储器2013。由于第一移位寄存器2011的存在,使得在解码过程中行序列缓冲存储器2013只提供参考点4。基于10个参考点和当前待求二进制序列值X0的特殊位置关系,虚线的参考点9之前的二进制序列值,包括其本身,随着解码过程的推移,将不再作为参考点。因此,对应这些二进制序列值的行序列缓冲存储器2013空间可以被再利用。如果虚线的参考点3存入行序列缓冲存储器2013中,其对应的存储空间恰恰是不再作为参考点的二进制序列值所占用的空间。因此,在行序列缓冲存储器2013提供参考点的同时,将新的参考点写入,实现了存储器空间的重复利用。
本发明由于采用了上述方法,大大节省了存储器空间,提高了JBIG解码速度,这是提高整体系统性能,降低系统成本的重要因素之一。
为了进一步提高解码速度,本发明在解码过程中采用了并行处理的方式。下面先介绍其原理。
假设当前待求二进制序列值为X0,下一待求二进制序列值为X1。当X0在没有解码结果前,X1所对应的CX寄存器201的值是无法确定的,但是根据CX寄存器201的结构特点,由于其中的行序列缓冲存储器2013能够提供上一行的所有参考点,所以这个无法确定的因素是唯一的,即X1在CX寄存器201中位置0的参考点,就是X0的值。
在X0尚未解码出的情况下,X1对应的CX寄存器201的值有两种情况,而延伸到其与ST寄存器202和MPS寄存器203的关系,也只存在三种情况第一种情况是当X0等于“0”时,X1对应的CX寄存器201的值为CX0,而CX0对应的ST寄存器202和MPS寄存器203的值分别是ST0和MPS0。
第二种情况是当X0等于“1”时,X1对应的CX寄存器201的值为CX1,而CX1对应的ST寄存器202和MPS寄存器203的值分别是ST1和MPS1。
而第三种情况则比较特殊。前面已经介绍过,在JBIG解码过程中,ST寄存器202和MPS寄存器203与CX寄存器201之间的对应关系是不断变化的,当X0得到解码结果的同时,X0所对应的CX寄存器201与ST寄存器202和MPS寄存器203之间新的对应关系就已经建立。因此,如果X0的解码结果,使得X0对应的CX寄存器201的值与X1所对应的CX寄存器201的值相等,那么X1在解码前最终对应的ST寄存器202和MPS寄存器203就应该是X0的解码结果STnew和MPSnew。
根据以上的分析结果,本发明对JBIG解码方法进行了改进,使得处理过程实现并行处理,提高了JBIG解码的速度,如图10所示。
对于当前待求二进制序列值X0,以ST寄存器的值作为寻址地址,查找相应的解码用寄存器值(步骤809),并进行JBIG解码,获得当前待求二进制序列值X0和对应的ST寄存器202、MPS寄存器203的值STnew、MPSnew(步骤801)。
与此同时,获取下一待求二进制序列值X1的CX寄存器201的值以及对应的ST寄存器202和MPS寄存器203的值,分两种情况同时进行,一种是X0等于“0”时,一种是X0等于“1”时。步骤802和803是对应行序列缓冲存储器2013和以CX值为寻址的表空间2041进行的操作,具体的操作步骤与步骤701、702相同,所得到的CX寄存器201的值分别是CX0和CX1,ST寄存器202的值是ST0和ST1,MPS寄存器203的值是MPS0和MPS1。
当取得了X0的解码结果后,再通过步骤804到步骤808的判断过程,最终确定X1对应的ST和MPS的值。首先判断X0对应的CX寄存器的值与X1对应的CX寄存器的值CX0、CX1是否相同(步骤804),如果相同,则X1对应的ST寄存器和MPS寄存器的值采用X0的解码结果STnew、MPSnew(步骤805);如果不相同,则进一步判断X0是否等于0(步骤806),如果等于0,则X1对应的ST寄存器和MPS寄存器的值采用ST0和MPS0(步骤807),如果不等于0,则采用ST1和MPS1(步骤808)。在获得X1对应的ST寄存器和MPS寄存器的值后,以ST寄存器的值作为寻址地址,查找相应的解码用寄存器值(步骤809),进行X1的JBIG解码运算,同时获取下一个待求二进制序列值对应的有关寄存器的值。以此循环,完成所有二进制序列值的解码。
对当前二进制序列值进行解码的步骤801、809,与获取下一待求二进制序列值对应的有关寄存器值的步骤802、803是相对独立的,互相没有直接或先后的关系,因此,完全可以同步进行,互不影响。通过这样的处理,实现了在同一时间段完成多步处理的功能,特别是对行序列缓冲存储器2013和以CX为寻址的存储空间2041进行的操作。
在上述解码过程中,虽然加入了步骤804到步骤808这一判断过程,但是在硬件实现上,该项操作比两个相互关联的存储器操作要快得多,因此,这种解码方法可以节省行序列缓冲存储器2013和以CX为寻址的存储空间2041操作所占用的时间,大大提高解码速度。
图11是采用了如图5所示的图像解码器20的激光打印控制器40的结构示意图,包括接口控制器401、CPU402、数据存储器403、DMA控制器404、第一数据缓冲器405、图像解码器20、图像数据位深控制单元406、第二数据缓冲器407、印前处理器408、第三数据缓冲器409、引擎控制器410和脉宽调制波发生器411;其中除CPU402和数据存储器403外,其他器件可以集成为一个ASIC芯片,CPU402、数据存储器403和ASIC芯片通过总线连接,这样整个激光打印控制器40就形成一个高集成度的单片打印控制器,大大降低了系统成本,提高了系统的性能。
CPU402中的控制软件控制激光打印控制器40通过接口控制器401与图像编码装置10建立连接,实现数据通讯。接口控制器401可对应多种接口标准,例如打印机并口、USB接口、PCI接口以及网络接口等。当激光打印控制器40接收到图像编码装置10传送的图像压缩数据时,通过DMA控制器404建立DMA通道,将图像压缩数据存入数据存储器403中。
当CPU402的控制软件发出打印命令时,DMA控制器404从数据存储器403中取出图像压缩数据,通过第一数据缓冲器405,送入图像解码器20中进行解码。
如前所述,图像解码器20的结构设计,考虑到硬件实现的特点,充分利用硬件并行的处理方式,实现了图像解压缩过程的并行化,大大提高解码速度。在图像编码装置10中,图像数据分割单元1021的处理过程,满足了图像解码器20实现多通道处理的必要条件,如果图像被分割成n(n大于等于1)块,那么图像解码器20就具有n个解码通道与之对应。由于n个解码通道是并行处理过程,n个图像数据块的解码过程是同时进行的,所以提高了整体图像数据的解压缩速度。由于JBIG解码过程是无损的,因此通过图像解码器20解码后得到的图像数据与进行JBIG编码前的完全一样。
由于图像解码器20解码后的解码结果是二进制序列,因此需要有图像数据位深控制单元406将这些二进制序列重新形成像素数据。图像数据位深控制单元406的工作流程图如图12所示。图像数据位深控制单元406是与图像编码装置10中的相对应的功能单元,记录了与位深缩减随机抖动处理单元3012相同的图像位深缩减规律,用于将图像数据由二进制序列描述重新转化成像素描述。图像位深缩减规律存放在图像位深控制表中。
首先,根据图像中各个位置上的像素点,在图像位深控制表中对应的位置,找到描述此像素的位深,然后提取相应位数的二进制序列,再经过数据转化,形成原来的经过位深缩减后的像素描述,存入第二数据缓冲器407中。
印前处理器408是完成图像数据处理的最后一步,包括打印行拼接单元4081和打印点位置控制单元4082。由于来自第二数据缓冲器407的数据是经过分解的若干个小图像的数据,因此需要通过打印行拼接单元4081将这些小图像重新拼接成原始的图像;与此同时,打印点位置控制单元4082给每个像素加入打印位置信息。然后将形成的打印图像数据送入第三数据缓冲器409。
引擎控制器410不仅用于建立CPU402中的控制软件与激光打印单元(打印引擎)之间的通讯,而且要完成图像数据的输出打印功能。引擎控制器410将打印图像数据从第三数据缓冲器409中取出,通过脉宽调制(PWM)波发生器411,产生激光打印单元所需要的PWM波。在这一过程中,脉宽调制(PWM)波发生器411通过每个像素数据调整PWM波的脉宽;通过像素位置信息调整脉宽出现的位置。
另外,在激光打印控制器40中还可以包括打印消耗量统计单元412,位于第三数据缓冲器409与引擎控制器410之间,用于根据第三数据缓冲器409输出的图像数据计算墨粉的消耗量。
图13是本发明激光打印系统的示意图,包括图像编码装置10、激光打印控制器40和激光打印单元(打印引擎);图像编码装置10与激光打印控制器40之间通过PACS打印语言进行通讯,该打印语言集打印控制、打印数据传输、基于双工通讯的打印监视等功能于一体,控制语言简洁、实用、高效,应用灵活,并具有良好的可扩展性。需要进行打印处理的图像数据,经过图像编码装置10的图像预处理以及压缩编码后,在激光打印控制器40中进行解码,并转换成激光打印单元所需的数据,输出到激光打印单元中进行打印。在PC主机方首先由PC机打印驱动程序通过带有叠代噪声的随机抖动处理将原始数据降低至4位以下(具体位数的选择取决于引擎的灰阶再现能力特征),再通过JBIG编码技术进行压缩,从而使得原本100MB以上的原始数据量缩减至小于4MB。并在打印机方开发了多通道并行JBIG解码器,以实现快速地解码并直接将解码结果调制为PWM控制信号实现打印。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.用于激光打印系统的图像编码装置(10),其特征在于,包括图像数据处理单元(101)和图像编码压缩单元(102);所述图像数据处理单元(101)用于对原始的图像数据进行色空间变换处理、位深缩减处理以及随机抖动处理;所述图像编码压缩单元(102)用于将经过预处理的图像数据进行JBIG编码压缩,并把压缩后的数据输出给激光打印控制器(40)。
2.根据权利要求1所述的图像编码装置(10),其特征在于,所述图像数据处理单元(101)还包括色空间变换单元(1011)和位深缩减随机抖动处理单元(1012);所述色空间变换单元(1011)用于将原始的图像数据由RGB空间转换成CMYK空间的数据,并输出给所述位深缩减随机抖动处理单元(1012);所述位深缩减随机抖动处理单元(1012)用于降低CMYK数据的像素位深,并重新排列像素点的疏密程度,再输出给所述图像编码压缩单元(102)。
3.根据权利要求2所述的图像编码装置(10),其特征在于,所述图像数据处理单元(101)还包括噪声处理单元(1013),所述噪声处理单元(1013)用于进行图像灰阶变化的平滑处理,可以位于所述色空间变换单元(1011)和所述位深缩减随机抖动处理单元(1012)之间,也可以位于所述位深缩减随机抖动处理单元(1012)之后。
4.根据权利要求1至3任一所述的图像编码装置(10),其特征在于,所述图像编码压缩单元(102)进一步包括图像数据分割单元(1021)和JBIG编码单元(1022);所述图像数据分割单元(1021)将整幅打印图像纵向平均分割成n块,其中n≥1,依次送入所述JBIG编码单元(1022)中,由所述JBIG编码单元(1022)进行数据编码压缩。
5.用于激光打印系统的图像解码器(20),其特征在于,具有n个解码通道,且每个解码通道的结构和所占用的资源完全相同,每个解码通道均至少包括参考点寄存器(201)、索引寄存器(202)、高概率预测值寄存器(203)、解码存储器(204)、解码运算单元(205)以及解码用寄存器组;所述参考点寄存器(201)是一个10位宽的寄存器,用于寄存解码过程所需的10个参考点;所述索引寄存器(202)用于存储所述解码存储器(204)中概率预测表空间(2042)的地址偏移量;所述高概率预测值寄存器(203)是一个1位宽的寄存器,用于存储对应当前参考点寄存器(201)的二进制序列值的预测值;所述解码存储器(204)包括存储空间(2041)和概率预测表空间(2042),所述存储空间(2041)存储所述参考点寄存器(201)与所述索引寄存器(202)、高概率预测值寄存器(203)的对应关系,所述概率预测表空间(2042)存储所述索引寄存器(202)与所述解码用寄存器组的对应关系;所述解码运算单元(205)根据所述解码存储器(204)的输出进行解码运算,并将所得的二进制序列以及相关寄存器的值返回给所述参考点寄存器(201)和所述存储空间(2041)。
6.根据权利要求5所述的图像解码器(20),其特征在于,所述参考点寄存器(201)进一步包括第一移位寄存器(2011)、第二移位寄存器(2012)和行序列缓冲存储器(2013);所述第一移位寄存器(2011)用于寄存位置在5到9的参考点;第二移位寄存器(2012)用于寄存位置在0到3的参考点;行序列缓冲存储器(2013)用于提供位置在4的参考点和存储已获得的二进制序列。
7.一种激光打印控制器,包括接口控制器(401)、CPU(402)、数据存储器(403)、DMA控制器(404)、第一数据缓冲器(405)、第二数据缓冲器(407)、第三数据缓冲器(409)、引擎控制器(410)、脉宽调制波发生器(411)、打印消耗量统计单元(412),其特征在于,还包括权利要求5或6所述的图像解码器(20)、图像数据位深控制单元(406)、印前处理器(408);其中所述接口控制器(401),作为所述激光打印控制器(40)与图像编码装置(10)的接口;所述CPU(402),用于控制所述激光打印控制器(40)与所述图像编码装置(10)的数据通讯,以及控制打印过程;所述数据存储器(403),用于存储来自所述图像编码装置(10)的图像压缩数据;所述DMA控制器(404),用于控制建立DMA通道,实现图像压缩数据的传输;所述第一数据缓冲器(405),用于缓存打印开始时,所述数据存储器(404)输出的数据;所述图像解码器(20),用于对图像压缩数据进行解码;所述图像数据位深控制单元(406),用于将经过解码后的图像数据由二进制序列描述转化成像素描述;所述第二数据缓冲器(407),用于缓存所述图像数据位深控制单元(406)输出的像素描述;所述印前处理器(408),用于将分解的小图像拼接成原始的图像和给每个像素加入打印位置信息,形成打印图像数据;所述第三数据缓冲器(409),用于缓存所述印前处理器(408)输出的打印图像数据;所述引擎控制器(410),用于建立所述CPU(402)与激光打印单元之间的通讯,和控制图像数据的输出打印;所述脉宽调制波发生器(411),通过每个像素数据调整脉宽调制波的脉宽,通过像素位置信息调整脉宽出现的位置,产生所述激光打印单元所需要的脉宽调制波,输出到所述激光打印单元;所述打印消耗量统计单元(412),位于所述第三数据缓冲器(409)与所述引擎控制器(410)之间,用于根据所述第三数据缓冲器(409)输出的图像数据计算墨粉的消耗量。
8.根据权利要求7所述的激光打印控制器(40),其特征在于,所述印前处理器(408)进一步包括打印行拼接单元(4081)和打印点位置控制单元(4082);所述打印行拼接单元(4081)将来自所述第二数据缓冲器(407)的小图像的数据重新拼接成原始的图像数据;同时所述打印点位置控制单元(4082)给每个像素加入打印位置信息,然后将形成的打印图像数据送入所述第三数据缓冲器(409)。
9.一种激光打印系统,包括激光打印单元,其特征在于,还包括权利要求1至4任一所述的图像编码装置(10)和权利要求7或8所述的激光打印控制器(40);所述图像编码装置(10)与所述激光打印控制器(40)之间通过PACS打印语言通讯;原始图像数据经过所述图像编码装置(10)的图像预处理以及压缩编码后,在所述激光打印控制器(40)中进行解码,并转换成激光打印单元所需的数据,输出到激光打印单元进行打印。
10.一种图像编码方法,其特征在于,包括以下步骤一、对原始图像数据进行色空间变换处理,将其由RGB空间转换到CMYK空间;二、将步骤一所得的CMYK数据进行位深缩减随机抖动处理;三、将整幅打印图像纵向平均分割成n个小图像,形成n个图像数据块;四、将n个图像数据块的像素点的位深描述展开,获得每个图像数据块的二进制序列值排列;五、将n个图像数据块依次进行JBIG编码,得到n个压缩数据块。
11.根据权利要求10所述的图像编码方法,其特征在于,所述步骤一采用的色空间变换方法是插值算法。
12.根据权利要求11所述的图像编码方法,其特征在于,所述插值算法是二维线性插值算法;所述二维线性插值算法包括以下步骤1)根据RGB空间到CMYK空间的色空间变换表,查找像素点(R,G0,B0)相应的4个基本参考点(R,G1,B1)、(R,G1,B2)、(R,G2,B1)、(R,G2,B2)及其对应关系Y(R,G1,B1)、Y(R,G1,B2)、Y(R,G2,B1)、Y(R,G2,B2);2)对基本参考点(R,G1,B1)和(R,G1,B2)进行线性插值运算,计算(R,G1,B0)的对应关系Y(R,G1,B0);3)对基本参考点(R,G2,B1)和(R,G2,B2)进行线性插值运算,计算(R,G2,B0)的对应关系Y(R,G2,B0);4)对通过步骤2和3所求得的点(R,G1,B0)和Y(R,G2,B0)进行线性插值运算,计算像素点(R,G0,B0)的对应关系Y(R,G0,B0);5)计算RGB空间的像素点(R,G0,B0)在CMYK空间的对应关系Y(R,G0,B0)。
13.根据权利要求10至12任一所述的图像编码方法,其特征在于,所述步骤二位深缩减随机抖动处理进一步包括1)建立位深缩减随机抖动矩阵;2)根据图像中各个位置上的像素点,查找位深缩减随机抖动矩阵中的对应位置,找到对应该像素点的链接关系表和描述此像素的位深;3)根据每个像素点的CMYK值,在链接关系表中找到该像素点的新的CMYK值,同时减小其位深。
14.根据权利要求13所述的图像编码方法,其特征在于,在所述步骤二之前或在所述步骤二之后,还包括对CMYK数据进行噪声处理的步骤,具体是将所有CMYK数据与噪声增量矩阵中相应位置的增量进行相加,得到新的CMYK数据。
15.一种并行的图像解码方法,其特征在于,包括以下步骤一、对当前待求二进制序列值进行解码,获得当前待求二进制序列值和对应的索引寄存器、高概率预测值寄存器的值STnew、MPSnew;二、在当前待求二进制序列值等于0和等于1两种情况下,获取下一待求二进制序列值的参考点寄存器的值CX0、CX1,以及对应的索引寄存器的值ST0、ST1和高概率预测值寄存器的值MPS0、MPS1;三、判断当前待求二进制序列值对应的参考点寄存器的值与下一待求二进制序列值对应的参考点寄存器的值CX0、CX1是否相同,如果相同,则下一待求二进制序列值对应的索引寄存器和高概率预测值寄存器的值采用当前待求二进制序列值的解码结果STnew、MPSnew,转至步骤五;如果不相同,则转至步骤四;四、判断当前待求二进制序列值是否等于0,如果等于0,则下一待求二进制序列值对应的索引寄存器和高概率预测值寄存器的值采用ST0和MPS0;如果不等于0,则采用ST1和MPS1;五、将上述下一待求二进制序列值作为当前待求二进制序列值,重复步骤一至步骤四,直至完成所有二进制序列值的解码;其中,所述步骤一和步骤二是同时进行的。
16.根据权利要求15所述的图像解码方法,其特征在于,所述对二进制序列值的解码进一步包括1)根据当前待求二进制序列值的位置获取对应参考点寄存器的内容;2)以步骤1)获得的参考点寄存器的值作为寻址地址,根据参考点寄存器与索引寄存器和高概率预测值寄存器的对应关系,荻取对应索引寄存器和高概率预测值寄存器的值;3)以索引寄存器的值作为寻址地址,获取解码用寄存器的值;4)根据上述相关寄存器的值,进行JBIG解码,获得当前待求二进制序列值以及对应索引寄存器和高概率预测值寄存器的新值。
全文摘要
本发明提供用于激光打印系统的图像编码装置10,包括图像数据处理单元101和图像编码压缩单元102;所述图像数据处理单元101用于对原始的彩色图像或黑白图像数据,进行色空间变换处理和位深缩减及随机抖动处理;所述图像编码压缩单元102用于将经过预处理的图像数据进行JBIG编码压缩,并把压缩后的数据输出给激光打印控制器40;本发明还给出了图像解码装置以及由所述编解码装置构成的激光打印系统;本发明结合打印引擎本身的成像特征,在保证高品质印刷质量的前提下,通过对打印数据的预处理,降低各颜色分量的位深,大大缩减了数据量,并采用多通道分割技术对数据进行分块JBIG编码,从而进一步降低数据量。
文档编号G03G15/01GK1538248SQ03121830
公开日2004年10月20日 申请日期2003年4月14日 优先权日2003年4月14日
发明者彭辉, 彭 辉 申请人:北京启迪时代科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1