图像处理装置、图像处理方法

文档序号:6462629阅读:150来源:国知局
专利名称:图像处理装置、图像处理方法
技术领域
本发明涉及,对图像进行编码或者对已编码的图像进行解码的图 像处理装置、图像处理方法、程序以及存储介质。
背景技术
在将排列输出称之为墙纸或紋理等的相同背景图案的应用程序 所输出的打印数据展开成图像数据并进行打印的情形中,为了减小数 据大小对图像数据进行压缩时,在能够很好地压缩背景图案自身的情 况下,很好地压缩整个图像数据就容易。但是,背景图案其自身不怎 么能很好地压缩的情况也不少,在这样的情况下,很好地压缩整个图 像数据就未必容易。图IO是一例这样的打印数据,如图ll所示,通过排列相同的图 案来构成背景。在现有的压缩才支术中有,例如行程编码(run length encoding )、 或者Delta-law编码那样的编码方法,其利用象素值成为与邻近的象 素同值的倾向强的特点,参照邻近的象素,如果值相同就进行压缩。另外还有如LZ77编码、或者LZ78编码那样的编码方法,其通 过参照大范围的象素来检测值为相同的象素序列,并利用此进行压 缩。利用这些方法,由于能够检测出在相当隔开的位置上的、具有相 同值的象素并利用到压缩中,就能够很好地压缩上述的墙纸等。另外还有如JPEG编码那样,能够很好地压缩背景图案其自身的 编码方法。另外,在日本专利申请公开2000-76424中说明了才企测紋理的周 期来进行压缩的方法。但是,利用上述行程编码、或者Delta-law编码,由于在压缩上 述墙纸等的情况下,该重复周期为例如1024象素那样大的值,就会 有只参照邻近的象素则不能很好地压缩这样的缺点。另外,利用上述LZ77编码、或者LZ78编码,由于在编码时要 参照大范围的象素,就会有计算量大,编码所需时间长的缺点。另外, 利用这些方法,由于在解码时要参照大范围的象素,就会有需要大容 量的緩冲存储器这样的缺点,例如,就成为在使打印机具有解码功能 的情况下成本增加的原因。另外,利用上述JPEG,由于编码时的计算量大,就会有编码所 需时间长的缺点。另外,利用此方法,也会有解码时的计算量大这样 的缺点,例如,就成为在使打印机具有解码功能的情况下成本增加的 原因。另外,利用上述日本专利申请/>开2000-76424,由于通过傅立叶 分析或者自相关系数,就需要使用背景图案的数据进行庞大数量的计 算,故不能高速地进行编码。本发明就是鉴于以上问题而完成的,目的是在对具有周期性的图 像、特别是墙纸等排列有背景图案的图像数据进行编码时,更高速地、 且以更高压缩率来压缩整个图像。另外本发明的其他目的是,减小对已编码的墙纸等排列有背景图 案的图像的编码进行解码的解码电路的电路规模,且进行无需大量的 緩冲存储器的,能够以低成本构成的解码。另外,作为压缩数据的方法还有在与前面的数据序列相一致的情 况下,对一致的数据的长度进行编码,在不一致的情况下,对数据自 身进行编码的方法。例如,在LZ77压缩法中,当与预定大小的移动窗口内的任意位 置的数据相 一 致的情况下,对 一 致的数据序列的位置和 一 致的长度进 行编码,在不一致的情况下对数据自身进行编码。另外,在压缩图像数据的情况下,还有在预先确定的一处或者多 处的位置,例如在与欲进行编码的数据的上方或者左侧的位置的数据 序列相一致的情况下,对一致的长度进行编码,在不一致的情况下对 数据自身进行编码的方法。另一方面,如USP5450562所示,还有将最新出现的数据存储在 高速緩冲存储器中,在高速緩冲存储器命中了的情况下,通过对存储 有已一致的数据的索引进行编码,来编码成与对数据自身进行编码的 情况相比更短的代码的方法。但是在上述的方法中,在数据序列相 一 致的部分少的情况下对数 据自身进行了编码的代码变多,就会有压缩率显著降低这样的缺点。另一方面,在USP5450562所7>开的方法中,即l吏在与前面的数 据序列相一致的情况下也不能将该冗余性利用到压缩中,得到高的压 缩率是困难的。本发明就是鉴于以上问题而完成的,目的是在与前面的图像数据 序列相 一致的情况下利用该冗余性得到高的压缩率,同时即使在图像 数据序列 一 致的部分少的情况下,也极力抑止压缩率的降低。另外,在将输出称之为墙纸或紋理等的背景图案中重复的字符或 图形应用程序所输出的打印数据展开成图像数据并进行打印的情形 中,当为了减小数据大小对图像数据进行压缩时,在能够很好地压缩 背景图案自身的情况下,很好地压缩整个图像数据就容易。但是,背景图案其自身不怎么能很好地压缩的情况也多,在这样 的情况下,很好地压缩整个图像数据就未必容易。作为这样的打印数 据的一例如图10所示。在现有技术中,尽管能够很好地压缩字符部 分的图像数据,但由于背景图案的部分的图像数据有不规则的图案, 与邻近的图像数据的相关性低,所以不怎么能很好地压缩。由于背景 图案一般面积都大,占整个页的比例高,在背景图案不能很好地压缩 的情况下,页整体也不能很好地压缩。本发明就是鉴于以上问题而完成的,其目的在于,提供一种包含 编码方法以及对该编码进行解码的解码方法的图像处理方法,在压缩有背景图案的图像数据时,即使在背景图案与邻近的图像数据的相关 性低的情况下,也能够很好地进行压缩。另外以往,在压缩图像数据时, 一般是利用在水平方向和垂直方 向上持有相同象素值的象素相连续的倾向高的特点,参照与关注位置 的相关性高的,正左侧或者正上方的位置来进行编码。另外,在欲进行压缩的图像数据是施加了利用抖动矩阵(dither matrix)的减色处理的图像数据的情况下,由于在施加减色处理时对 邻接的象素适用不同的运算,与邻近的象素的相关性还不如与仅间隔 了减色处理所使用的抖动矩阵的周期的象素的相关性高。因此在这种 情况中就有,当已知减色处理所使用的抖动矩阵的周期的情况下,参 照从关注位置仅间隔抖动矩阵的周期的、左侧或者上方的位置来进行 编石马的方法。但是,利用上述方法,由于在图像数据的周期和抖动矩阵的周期 不同的情况下,关注位置和参照位置的相关性不怎么高,就会有不能 高效率地进行压缩的缺点。例如,在欲压缩的图像数据是在对分辨率 不同的原图像施加分辨率变换以后施加了减色处理的图像数据的情 况下,就会发生这样的问题。本发明就是鉴于以上问题而完成的,目的是高效率地,特别是以 短的代码对图像进行编码。发明内容为了达到本发明的目的,提供如下的图像处理装置。 即, 一种对图像进行编码的图像处理装置,包括减色装置,对 图像使用预定大小的矩阵来施加减色处理;周期检测装置,检测上述 图像的图案的周期;以及编码装置,使用依照上述周期和/或上述矩阵 的大小的象素的相对位置关系,对施加了上述减色处理的图像进行编 码。为了达到本发明的目的,提供如下的图像处理装置。即, 一种对已编码的图像进行解码的图像处理装置,包括保存装置,保存已解码的象素序列的预定行数;解码装置,对包含在编码 数据中的命令群进行解码;以及解码装置,依照由上述解码装置所解 码的命令从上述保存装置读取象素序列,将所读取的象素序列保存到 上述保存装置,同时将所读取的象素序列依次输出到预定的緩冲器, 进而,在由上述解码装置所解码的命令是关于图像的行方向的命令的 情况下,依照上述图像的图案的周期变更从上述保存装置进行读取的 位置。为了达到本发明的目的,提供如下的图像处理方法。 即, 一种对图像进行编码的图像处理方法,包括减色步骤,对 图像使用预定大小的矩阵施加减色处理;周期检测步骤,检测上述图 像的图案的周期;以及编码步骤,使用依照上述周期和/或上述矩阵的 大小的象素的相对位置关系,对施加了上述减色处理的图像进行编 码。为了达到本发明的目的,提供如下的图像处理方法。 即, 一种对已编码的图像进行解码的图像处理方法,包括解码 步骤,将已解码的象素序列的预定行数保存到预定的保存装置,对包 含在编码数据中的命令群进行解码;解码步骤,依照由上述解码步骤 所解码的命令从上述保存装置读取象素序列,将所读取的象素序列保 存到上述保存装置,同时将所读取的象素序列依次输出到预定的緩沖 器,进而,在由上述解码步骤所解码的命令是关于图像的行方向的命 令的情况下,依照上述图像的图案的周期变更从上述保存装置进行读 取的位置。为了达到本发明的目的,提供如下的图像处理装置。 即, 一种压缩图像的图像处理装置,包括颜色变换装置,对图 像使用抖动显示阵进行颜色变换处理,生成各种颜色的图像数据;以 及命令输出装置,对每种颜色的图像数据,比较压缩对象的象素数据 序列,和与该象素数据序列有预定的位置关系的象素数据序列,在输 出表示相一致的象素数据序列的长度的命令的同时输出表示该比较 内容的命令,生成各种颜色的图像数据的编码数据。为了达到本发明的目的,提供如下的图像处理装置。即, 一种压缩图像的图像处理装置,包括颜色变换装置,对图 像使用抖动显示阵进行颜色变换处理,生成各种颜色的图像数据;编 码装置,压缩上述各种颜色的图像数据并进行编码;以及输出装置, 输出由上述编码装置编码的编码数据;进而上述编码装置备有,第l 命令输出装置,比较压缩对象的列的象素数据序列,和与该列有预定 的位置关系的列的象素数据序列,求得相 一致的象素数据序列的长 度,作为该相一致的象素数据序列,在输出表示上述比较内容的命令 的同时输出表示上述长度的命令;第2命令输出装置,在上述长度为 0的情况下,比较压缩对象的列的象素数据序列,和在该列中有预定 的位置关系的象素数据序列,求得相一致的象素数据序列的长度,作 为该相一致的象素数据序列,在输出表示上述比较内容的命令的同时 输出表示上述长度的命令;保存装置,在由上述第l命令输出装置所 求出的长度和由上述第2命令输出装置所求出的长度同时为0的情况 下,保存压缩对象的列的象素数据序列的一部分或者全部;第3命令 输出装置,在由上述第l命令输出装置所求出的长度和由上述第2命 令输出装置所求出的长度同时为0的情况下,比较压缩对象的象素数 据和保存在上述保存装置中的象素数据序列,作为上述压缩对象的象 素数据,在输出表示相一致的象素数据在上述保存装置中的位置的命 令的同时输出表示上述比较内容的命令;以及第4命令输出装置,在 由上述第l命令输出装置所求出的长度和由上述第2命令输出装置所 求出的长度同时为O的情况下,且在由上述第3命令输出装置输出的 比较结果判断为与压缩对象的象素数据相 一致的象素数据不存在于 上述保存装置的情况下,输出表示压缩对象的象素数据的命令;并生 成包含由上述第1至第4命令输出装置的一部分或者全部输出的命 令的编码数据。为了达到本发明的目的,提供如下的图像处理装置。 即, 一种对编码数据进行解码的图像处理装置,包括第l保存 装置,保存已解码的象素数据序列;第2保存装置,将已解码的象素数据序列移位预定个数进行保存;第3保存装置,保存包含在上述编 码数据中的原始象素数据序列;以及还原装置,确定对在上述编码数 据的生成时所进行的,压缩对象的列的象素数据序列和与该列有预定 的位置关系的列的象素数据序列的比较结果进行表示的各种命令的 内容,依照所确定的内容使用保存在上述第l保存装置或者第2保存 装置或者第3保存装置中的象素数据来还原图像。为了达到本发明的目的,提供如下的图像处理方法。 即, 一种压缩图像的图像处理方法,包括颜色变换步骤,对图 像使用抖动显示阵进行颜色变换处理,生成各种颜色的图像数据;以 及命令输出步骤,对每种颜色的图像数据,比较压缩对象的象素数据 序列,和与该象素数据序列有预定的位置关系的象素数据序列,在输 出表示相一致的象素数据序列的长度的命令的同时输出表示该比较 内容的命令,生成各种颜色的图像数据的编码数据。 为了达到本发明的目的,提供如下的图像处理方法。 即, 一种压缩图像的图像处理方法,包括颜色变换步骤,对图 像使用抖动显示阵进行颜色变换处理,生成各种颜色的图像数据;编 码步骤,压缩上述各种颜色的图像数据并进行编码;以及输出步骤, 输出由上述编码装置编码的编码数据;进而上述编码步骤包括,第1 命令输出步骤,比较压缩对象的列的象素数据序列和与该列有预定的 位置关系的列的象素数据序列,求得相一致的象素数据序列的长度, 作为该相一致的象素数据序列,在输出表示上述比较内容的命令的同 时输出表示上述长度的命令;第2命令输出步骤,在上述长度为0的 情况下,比较压缩对象的列的象素数据序列和在该列中有预定的位置 关系的象素数据序列,求得相一致的象素数据序列的长度,作为该相 一致的象素数据序列,在输出表示上述比较内容的命令的同时输出表 示上述长度的命令;保存步骤,在由上述第1命令输出步骤所求出 的长度和由上述第2命令输出步骤所求出的长度同时为0的情况下, 将压缩对象的列的象素数据序列的 一部分或者全部保存到预定的保 存装置;第3命令输出步骤,在由上述第1命令输出步骤所求出的长度和由上述第2命令输出步骤所求出的长度同时为0的情况下,比 较压缩对象的象素数据和由上述保存步骤所保存的象素数据,作为上 述压缩对象的象素数据,在输出表示相一致的象素数据序列由上述保存步骤所保存的位置的命令的同时输出表示上述比较内容的命令;以 及第4命令输出步骤,在由上述第1命令输出步骤所求出的长度和由 上述第2命令输出步骤所求出的长度同时为0的情况下,且在由上述 第3命令输出步骤输出的比较结果判断为与压缩对象的象素数据相一 致的象素数据没有由上述保存步骤进行保存的情况下,输出表示压缩 对象的象素数据的命令;并生成包含由上述第1至第4命令输出步骤的 一 部分或者全部输出的命令的编码数据。为了达到本发明的目的,提供如下的图像处理方法。 即, 一种对编码数据进行解码的图像处理装置所运行的图像处理 方法,所述图像处理装置备有保存已解码象素数据序列的第l保存装 置;将已解码的象素数据序列移位预定个数进行保存的第2保存装置; 以及保存包含在上述编码数据中的原始的象素数据序列的第3保存 装置;该图像处理方法,确定对在上述编码数据的生成时所进行的, 压缩对象的列的象素数据序列和与该列有预定的位置关系的列的象 素数据序列的比较结果进行表示的各种命令的内容,依照所确定的内 容使用保存在上述第l保存装置或者第2保存装置或者第3保存装置 中的象素数据来还原图像。为了达到本发明的目的,提供如下的图像处理装置。 即, 一种对多个页的图像数据进行编码的图像处理装置,包括 第l存储器,保存欲进行编码的页的图像数据;编码装置,对保存在 上述第1存储器中的图像数据进行编码;以及第2存储器,保存前一 页的图像数据;上述编码装置参照保存在上述第2存储器中的前一页 的图像数据进行编码。为了达到本发明的目的,提供如下的图像处理装置。 即, 一种对已编码的多个页的图像数据进行解码的图像处理装 置,包括解码装置,对编码进行解码;第l存储器,保存由上述解码装置所解码的图像数据;再编码装置,对保存在上述第l存储器中的图像数据进行编码;第2存储器,保存由上述再编码装置所编码的 代码;以及再解码装置,对保存在上述第2存储器中的编码进行解码; 上述解码装置,在对参照前 一 页的图像数据的编码进行了解码情况 下,参照上述再解码装置所解码的图像数据进行解码,同时上述再编 码装置,仅参照欲进行编码的页的图像数据进行编码。 为了达到本发明的目的,提供如下的图像处理方法。 即, 一种对多个页的图像数据进行编码的图像处理装置所运行的 图像处理方法,所述图像处理装置备有保存欲进行编码的页的图像数 据的第l存储器;以及保存前一页的图像数据的第2存储器;该图像 处理方法包括编码步骤,对保存在上述第l存储器中的图像数据进 行编码;上述编码步骤参照保存在上述第2存储器中的前一页的图像 数据进行编码。为了达到本发明的目的,提供如下的图像处理方法。 即, 一种备有第1存储器和第2存储器,对已编码的多个页的图 像数据进行解码的图像处理装置所运行的图像处理方法,包括解码 步骤,对编码进行解码;第l保存步骤,将由上述解码步骤所解码的 图像数据保存到上述第l存储器;再编码步骤,对保存在上述第l存 储器中的图像数据进行编码;第2保存步骤,将由上述再编码步骤所 编码的代码保存到第2存储器;以及再解码步骤,对保存在上述第2 存储器中的编码进行解码;上述解码步骤,在对参照前一页的图像的 编码进行了解码的情况下,参照由上述再解码步骤所解码的图像数据 进行解码,同时上述再编码步骤,仅参照欲进行编码的页的图像数据 进行编码。为了达到本发明的目的,提供如下的图像处理装置。 即, 一种对图像进行编码的图像处理装置,包括编码装置,比 较关注数据后续的数据序列,和参照数据后续的数据序列,将相一致 的长度的该关注数据后续的数据序列,编码成依照该关注数据和该参 照数据的位置关系的编码命令;置换装置,在上述关注数据和上述参考数据为特定的位置关系的情况下,当由上述编码装置编码后,将对 应于该特定的位置关系的编码命令置换成代码的长度更短的编码命 令。为了达到本发明的目的,提供如下的图像处理装置。即, 一种基于由编码命令所组成的编码数据来解码图像的图像处理装置,包括保存装置,保存已解码图像的数据;多个解码装置, 通过读出保存在上述保存装置中,依照编码命令的位置上的数据,将 该数据作为依照该编码命令的解码数据输出到外部;保持装置,保持 依照将要解码的编码命令进行变化的值;由上述多个解码装置中的,依照上述保持装置所保持的值的解码装置,进行解码处理。 为了达到本发明的目的,提供如下的图像处理方法。 即, 一种对图像进行编码的图像处理方法,包括编码步骤,比 较关注数据后续的数据序列,和参照数据后续的数据序列,将相一致 长度的该关注数据后续的数据序列,编码成依照该关注数据和该参照 数据的位置关系的编码命令;置换步骤,在上述关注数据和上述参考 数据为特定的位置关系的情况下,当由上述编码步骤编码后,将对应 于该特定的位置关系的编码命令置换成代码的长度更短的编码命令。 为了达到本发明的目的,提供如下的图像处理方法。 即, 一种基于由编码命令组成的编码数据来解码图像的图像处理 方法,包括保存步骤,将已解码图像的数据保存到预定的保存装置; 多个解码步骤,通过读出保存在上述保存装置中,依照编码命令的位 置上的数据,将该数据作为依照该编码命令的解码数据输出到外部; 保持步骤,将依照要解码的编码命令进行变化的值保持到预定的保持 装置;由上述多个解码步骤中的,依照上述保持装置所保持的值的解 码步骤,进行解码处理。本发明的其他特征以及优点,通过以附图为参照的下面的说明会 弄明白。这里,在附图中,相同或者同样的结构附加相同的参照标号。


附图包含在说明书中,构成其一部分,用于图示本发明的实施形 式,与说明书的记述一起用于说明本发明的原理。图1是表示在打印图像时所使用的软件群和打印机之间关系的概 念图。图2是表示打印机1711的基本构成的框图。图3是表示对一例包含在图1所示的打印机驱动器4所生成的编码数据中的各编码进行说明的表的图。图4是表示对一例计数编码进行说明的表的图。图5是说明图3和图4所示的各编码的使用例的图。图6是打印机驱动器4所进行的主处理的流程图。图7是表示步骤S4中的处理细节的流程图。图8是表示步骤S10中的处理细节的流程图。图9A和图9B是表示步骤S11中的处理细节的流程图。图IO是表示一例打印数据的图。图ll是表示构成图10的打印数据的各图案的图。图12是表示解码电路13的详细的构成的框图。图13是表示编码前或者解码后的图像数据的构成的图。图14是说明图13所示的图像数据是如何保存在行緩冲器31的各个地址上的图。图15是说明图13所示的图像数据在什么样的定时被处理的图。 图16是表示控制电路15所执行的打印控制处理步骤的流程图。 图17是表示本发明的实施形式中图像处理装置的基本构成的图。 图18是表示位图管理表的构成例的图。图19是表示本发明第3实施形式中的打印机1711的基本构成的 框图。图20是表示对一例本发明第3实施形式中的打印机驱动器4所 生成的编码数据中所包含的各编码进行说明的表的图。图21是表示对一例接续在COPY UP命令、COPY LEFT命令后 的、表示长度的编码(<字节数>)进行说明的表的图。图22是说明图像数据、和利用RAW命令以及CACHE命令将此 图像数据保存到高速緩冲存储器的方法的图。图23是说明图像数据、和通过COPY UP命令以及COPY LEFT 命令对此图像数据进行编码的方法的图。图24是本发明第3实施形式中的打印机驱动器4所进行的主处 理的流程图。图25A和图25B是表示步骤S5011中编码处理细节的流程图。 图26是表示解码电路5013的基本构成的框图。 图27是表示高速緩冲存储器5036的详细的构成的框图。 图28是表示本发明第5实施形式中的打印机1711的基本构成的 框图。图29是表示本发明第5实施形式中的打印机驱动器4的处理步 骤的流程图。图30A和图30B是表示图29的步骤S6011的编码步骤细节的流 程图。图31是表示图28所示的解码电路6013的细节的框图。 图32是表示一例本发明第6实施形式中的打印机驱动器4所生 成的编码表的图。图33A是表示编码对象的图像数据的图。 图33B是表示编码对象的图像数据的图。图34A和图34B是在步骤S5011中的本实施形式的编码处理的 流程图。图35是表示图19所示的解码电路513在本发明第6实施形式中 的基本构成的框图。
具体实施方式
现在参照附图对本发明的优选实施形式进行详细说明。 [第1实施形式]在图17中说明本实施形式的图像处理装置的基本构成。在本实施形式中,作为图像处理装置使用 一般的个人计算机和/或工作站。1701是CPU,在使用保存在RAM1702和/或ROM1703中的程序 和/或数据来进行本装置整体的控制的同时,也进行后面说明的图像压 缩处理。1702是RAM,在备有暂时存储从外部存储装置1704和/或 存储介质驱动器1709所装入的程序和/或数据的存储区的同时,还备 有在CPU1701执行各种处理的时候所使用的工作区。1703是ROM, 保存本装置整体的控制程序(例如引导程序)和/或控制数据(例如本 装置的设定数据)。1704是硬盘等的外部存储装置,保持从存储介质 驱动器1709所安装的程序和/或数据等。另外,在RAM1702内不能 设置上述工作区的大小的情况下,也可以作为文件来提供不足部分。 1705、 1706分别是键盘和鼠标,分别作为定点设备来使用,能够向本 装置输入各种指示。1707是显示装置,由CRT和/或液晶画面等构成, 能够显示图像和/或字符等。1708是图像输入装置,由数码相机和/或 扫描器等构成,能够通过摄影和/或扫描等的操作将图像作为数字数据 输入到RAM1702和/或外部存储装置1704。1709是存储介质驱动器,从CD-ROM和/或DVD-ROM等的存储 介质读入程序和/或数据等,将所读入的程序和/或数据输出到 RAM1702和/或外部存储装置1704等。1710是I/F (接口 ),经由因 特网和/或LAN等从外部的设备接收压缩处理对象的图像,或者反之 对外部的设备发送压缩了的图像等,作为与外部的设备之间进行数据 的发送接收时的1/F来工作。1711是打印机,作为扩展已压缩图像并 向纸张等的记录介质进行打印的图像扩展装置来工作。1712是连接上 述各部件的总线。图1是表示在打印图像时所使用的软件群和打印机之间关系的概 念图。在外部存储装置1704内储存着操作系统2 (下面记为OS)、 应用程序3、打印机驱动器4以及端口驱动器5。OS2管理图1所示的各部件(打印机1711除外),以及应用程 序3、打印机驱动器4和端口驱动器5等的软件。应用程序3是,例 如文字处理软件那样的应用软件,按照由操作者使用键盘1705和/或鼠标1706所指示的内容进行文档的生成*打印等。4是打印机驱动器, 经由0S2接收应用程序3所发出的打印指令,并将该打印指令变换成 打印机1711能够解释的打印机命令。5是端口驱动器,经由OS2接 收打印机驱动器4所变换的打印机命令,并经由未图示的并行端口发 送到打印机1711。然后打印机1711,按照从端口驱动器5接收到的 打印机命令进行打印。图2是表示打印机1711的基本构成的框图。图中,ll是并行端 口,接收从端口驱动器5输出的打印机命令。12是FIFO (先入先出) 存储器,存储包含在并行端口 11接收到的打印机命令中的编码数据 (详见后面说明),将所存储的数据按照先入先出的顺序输出到解码 电路13。解码电路13,对FIFO存储器12中所存储的码序列数据进 行解码,并将已复原的图像数据输出到移位寄存器16。打印机引擎 14是激光打印机引擎,根据控制电路15的指示,按照解码电路13 所输出的图像数据进行打印。15是控制电路,例如由单片CPU构成, 进行并行端口 11、 FIFO存4诸器12、解码电路13以及打印机引擎14 的控制。16是移位寄存器,将解码电路13解码了的字节数据分割成 多个象素,按每个象素依次输出到打印机引擎14。下面,就进行打印时,图1、 2所示的各部件的动作进行说明。操作者使用键盘1105和/或鼠标1106来操作应用程序3生成打印 数据,而且,当输入对所生成的打印数据进行打印的指示后,打印指 令经由OS2从应用程序3传给打印机驱动器4。打印机驱动器4基于 从应用程序3所发出的打印指令,生成将成为打印对象的图像数据, 接着对此图像数据使用抖动矩阵进行抖动处理,并进行2值化处理。 此外,这时打印机驱动器4基于后面说明的编码步骤,从施加了2值 化处理的图像数据生成编码数据,同时输出用纸尺寸、指定图像数据 (位图数据)的行的长度和行数等的打印控制命令、指定压缩参数的 压缩参数命令、表示页结束的页结束命令。端口驱动器5将打印机驱 动器4所生成的一系列命令群和上述编码数据发送到打印机1711。控制电路15经由并行端口 ll接收打印机命令。在接收到的打印机命令中,打印控制命令、压缩参数指定命令,为了打印控制被保持 在控制电路15的内部。另外,在接收到的打印机命令中,编码数据被保存到FIFO存储器12。此后,当控制电路15通过页结束命令的 接收等,检测出构成1页的打印机命令的接收已完成时,向打印机引 擎14指示打印开始。当指示了打印开始后,打印机引擎14向移位寄 存器16要求图像数据的输出。移位寄存器16预先从解码电路13读 出解码数据,并保存所读出的解码数据。然后,当接受来自打印机引 擎14的输出要求后,将保存好的解码数据输出到打印机引擎14,同 时当移位寄存器16内有空的緩冲区时,向解码电路13要求后续的解 码数据的输出。这样编码数据依次进行解码并作为图像数据(解码数 据)被输出,当1页的图像数据的输出全部结束后,打印完成。这里, 当背景图案的图像输出指令从应用程序3被发出后,打印机驱动器4 以后面说明的步骤检测出此指令,求得背景图案的周期。另外在打印 机驱动器4检测出背景图案的情况下,当对图像数据进行编码时,按 照后面说明的步骤利用背景图案的周期进行编码。接着,参照图3和图4所示的表,就图1所示的打印机驱动器4 生成的编码进行说明。图3是对一例包含在图1所示的打印机驱动器4所生成的编码数 据中的各编码进行说明的表。在本实施形式中进行说明的编码指定为 以下4种操作中的一个复制预定行上方的行的数据序列的上复制, 复制相同行的预定字节左侧的数据序列的近左复制,复制相同行的预 定字节左侧的数据序列的远左复制,以及直接指定数据的原始数据。 此外,上复制和近左复制所参照的预定位置是依照上述抖动矩阵的周 期的值,远左复制所参照的预定位置是依照背景图案的周期的值。如图3所示,代码(命令码)以"0"开始的情况是RAW命令, 将后续的8位数据(<data8〉)原封不动地作为原始数据进行指定。 代码以"10"开始的情况是COPY UP命令,仅进行后续的计数编码 (<count> )所示的字节数的上复制。代码以"110"开始的情况是COPY NEARLEFT命令,仅进行后续的计lt编码(<count>)所示的字节数的近左复制。代码以"1110"开始的情况是COPY FAR LEFT命令, 仅进行后续的计数编码(<count>)所示的字节数的远左复制。代码 以"11110"开始的情况是COUNT HIGH命令,表示将后续的计数编 码(〈count〉)所示的数的64倍,相加到后续的COPY UP、或者COPY NEAR LEFT、或者COPY FAR LEFT命令中的任何一个命令码中的情 况。代码以"11111"开始的情况是EOB命令,表示码序列的结束。图4是表示对一例计数编码进行说明的表的图。如该图所示,命 令码的位是"111111"的情况表示COUNT0编码,其表示计数为0 的情况。命令码的位以"0"开始的情况表示COUNT1编码,其表示 计数为1的情况。命令码的位以"10"开始的情况表示COUNT2-3 编码,后续1位的数据(<datal〉)为0的情况,作为命令码就成为 "010",作为含义就意味着2字节。另一方面,后续1位的数据 (<datal>)为l的情况,作为命令码就成为"011",作为含义就意 味着3字节。也就是,命令码的位序以"01"开始的情况,就是意味 着2字节或者3字节的长度。另外,命令码的位以"110"开始的情况,表示COUNT4-7编码, 由于成为后续有2位的数据,就意味从4字节到7字节的长度,命令 码的位以"1110"开始的情况,表示COUNT8-15编码,由于成为后 续有2位的数据,就意味从8字节到15字节的长度,命令码的位以 "11110"开始的情况,表示COUNT16-31编码,由于成为后续有2 位的数据,就意味从16字节到31字节的长度,命令码的位以"111110" 开始的情况,表示COUNT32-63编码,由于成为后续有2位的数据, 就意味从32字节到63字节的长度。接着参照图5,就图3和图4所示的编码的使用例进行说明。此 外,该图所示的码序列是从上开始按记载的顺序来进行解释的。在该图中,码序列"0 00000000"如下来进行解释。也就是,由 于开头的"0"是RAW命令,将后续的8位数据"00000000"原封不 动地作为原始数据进行指定。接着,码序列"110 0"如下来进行解释。 开头的"110"是近左复制命令,由于后续的"0"是COUNTl编码,说 故表示i字节的近左复制。接着,码序列"io io r如下来进行解释。也就是,开头的"10"是上复制命令,由于后续的"10"是COUNT2-3编码,故表示将2相加到后续的i位"r上的值,即3字节的上复 制。接着,码序列"iiiio io r如下来进行解释。也就是,"iiiio"是COUNTHIGH命令,由于后续的"10"是COUNT2-3编码,故表 示将2相加到后续的l位"0"上的值的64倍,即将128相加到后续 的命令的计数上。接着,码序列"1110 111111"如下来进行解释。也就是,"1110" 是远左复制命令,由于后续的"111111"是COUNT0编码,故表示0 字节的远左复制。但是,在此情况下,因为COUNT HIGH 2命令在 前,故相加128,表示128字节的远左复制。接着,"11111"是EOB 命令,表示码序列的结束。后续的"0000000"是用于对齐字节边界 的填充编码,没有特别的含义。此外,在编码成上述的编码(图像数 据命令)时,在上复制位置、近左复制位置以及远左复制位置的选定 时,为了提高压缩率需要注意以下情况。例如,在将8位的灰度级原图像减色成1位的2值图像或者4位 以下的灰度级图像的情况下, 一般是使用抖动矩阵对各矩阵内的每个 象素使用不同的阀值进行运算处理来减色的。这种情况下,由于邻接 的象素利用不同的阀值进行运算,又因为即使原图像的象素值相同, 减色后的象素值成为不同值的情况多,相关性低,所以即使参照邻接 的象素提高压缩率也是困难的。因为抖动矩阵是周期性地进行应用的,又因为不是应用与邻接象 素相同的阀值,而是与稍微间隔的象素,通常是仅间隔抖动矩阵周期 的象素相同的阀值,所以与这样的象素间的相关性就高。因此,通过 取代邻接象素来参照符合抖动矩阵的周期的稍微间隔的象素,就能够 提高压缩率。关于上位置,虽然能够原封不动地应用与抖动矩阵的周期相等行 数。但关于近左位置和远左位置,由于编码的单位是字节单位,在图 像不满8位的情况下,有必要更加注意。例如,在象素是1位,抖动矩阵的基本周期是12象素的情况下,就成为1.5字节的周期,由于编码的单位是i字节,以字节单位应用相同阀值的周期就成为3字节,就需要将此周期应用于近左位置。关于远左位置也同样,例如,在象素是1位,背景图案的周期是1024象素即128字节,抖动矩阵的基 本周期是12象素的情况下,由于在背景图案的相差1周期的位置上 应用不同的阀值,故相关性低,提高压缩率就困难。在这种情况下, 就需要将作为128字节与3字节的最小公倍数384字节的间隔位置设 为远左位置。接着,参照图6所示的流程图,对打印机驱动器4的处理细节进 行说明。图6是打印机驱动器4所进行的主处理的流程图。当从操作 系统2调用打印机驱动器4后,首先在步骤Sl判断调用的种类是否 是绘图指令。在调用的种类是绘图指令的情况下,使处理进入步骤 S2进行绘图处理。作为绘图处理具体就是,将经由操作系统2从应 用程序3所指示的字符、图形或者位图等变换成8位灰度级图像,并 记录到RAM1702或者外部存储装置1704。接着,在步骤S3判断调用的种类是否是位图绘制指令。在调用 的种类不是位图绘制指令的情况下结束处理。另一方面,在调用的种 类是位图绘制指令的情况下,在步骤S4进行后面说明的背景图案周 期的检测处理,结束处理。另一方面,在步骤Sl中调用的种类不是绘图指令的情况下,处 理进入步骤S7,判断调用的种类是不是页结束指令。在调用的种类 是页结束指令的情况下,使处理进入步骤S8,进行2值化处理。具 体就是使用抖动矩阵将在步骤2记录到RAM1702或者外部存储装置 1704的8位灰度级的图像变换成黑白1位的图像。接着,在步骤S9输出打印控制命令,具体就是指定用纸尺寸、 供纸盒、分辨率、灰阶数、1行的字节数、1页的行数等打印所需要 的条件的命令。接着,在步骤S10输出编码时所使用的,指定以下参 数的压缩参数指定命令指定上复制时复制源是哪一行上方的位置的 上复制垂直偏移值、指定近左复制时复制源是相同行的哪一字节左侧的位置的近左复制水平偏移值、以及指定远左复制时复制源是相同行 的哪 一 字节左侧的位置的远左复制水平偏移值。这里,上复制垂直偏移值和近左复制水平偏移值,依照步骤S8 中所使用的抖动矩阵,预先通过理论或者试验求出最优值,并使用此 值。另外,远左复制水平偏移值,使用符合步骤S4中所求出的背景 图案的周期值。接着,在步骤Sll按照后面说明的编码步骤对图像数据进行编 码。此时,使用在步骤S10输出的压缩参数指定命令所指定的上复制垂直偏移值、近左复制水平偏移值以及远左复制水平偏移值进行编码。接着在步骤S12输出对在步骤Sll中所编码的图像数据的大小和 行数进行指定的图像数据命令首标。接着在步骤S13输出在步骤Sll 中所编码的图像数据。接着在步骤S15输出指定页结束的命令(页结 束命令)并结束处理。另一方面,在步骤S7中调用的种类不是页结束指令的情况下, 处理进入步骤S16,进行符合调用的种类的其他处理,例如与页开始 指令或者打印能力询问指令等相对应的处理,然后结束。接着,参照图7就上述步骤S4中的处理细节进行如下说明。图 7是表示上述步骤S4中的背景图案的周期检测处理的细节的流程图。当接受到位图绘制命令后,首先在步骤S21判断此位图(下面记 为第l位图)的宽度是否是256象素以上。在该位图的宽度不是256 象素以上的情况下结束处理。这里,背景图案一般都具有,例如1024 象素那样的较大的宽度和高度,另外,由于将较小的宽度或者高度 的位图作为对象进行处理时,管理位图的表(下面记为位图管理表) 的大小将变大,另外检索位图管理表的处理时间也变长,所以在较小 的宽度或者高度的位图的情况下,就不进行背景图案周期的检测处 理。这里位图管理表是对包含在1页内的位图进行管理的预先确定了 固定大小的表,在本实施形式中,仅对满足后面说明的条件的位图, 保存与此位图相关的信息。具体就是如图18示例那样,管理位图的 左上角的X坐标、Y坐标、宽度以及高度。另外,每当开始各页的处理位图管理表就被初始化为空。回到图7,在位图的宽度为256象素以上的情况下,处理进入步 骤S22,判断位图的高度是否是256象素以上。在位图高度不是256 象素以上的情况下结束处理。在位图高度是256象素以上的情况下,处理进入步骤S23,判断 位图管理表的检索是否已结束。在没有结束的情况下处理进入步骤 S24,参照位图管理表中保存的位图的左上角的Y坐标、高度,检索 与第l位图的左上角的Y坐标、高度一致者。然后,在不一致的情况 下返回步骤S23,进行检索直到上述检索的对象到达位图管理表的末 尾。另一方面,在找到一致者(第2位图的左上角的Y坐标、高度) 的情况下,处理进入步骤S25,判断第1位图是否邻接在第2位图的 右侧。具体就是参照位图管理表,如果第2位图的左上角的X坐标十 第2位图的宽度=第1位图的左上角的X坐标的话,第l位图就邻接 在第2位图的右侧。在邻接在右侧的情况下,处理进入步骤S27。另一方面,在不邻接在右侧的情况下,处理进入步骤S26,判断 第l位图是否邻接在第2位图的左侧。具体就是,如果第2位图的左 上角的乂坐标=第l位图的左上角的X坐标+第l位图的宽度的话, 第1位图就邻接在第2位图的左侧。在邻接在左侧的情况下,处理进 入步骤S27,在不邻接在左侧的情况下处理返回步骤S23。在步骤S27中,对第1位图的宽度和通过后面说明的处理所求出 的背景周期进行比较。此外,每当开始各页的处理背景周期就被初始 化为0。在背景周期比第1位图的宽度大的情况下,处理进入步骤S29。 另一方面,在背景周期是第1位图的宽度以下的情况下,处理进入步 骤S28,在步骤S28将第l位图的宽度代入背景周期,处理进入步骤 S29。在步骤S29中,对第2位图的宽度和背景周期进行比较。在背景 周期比第2位图的宽度大的情况下,处理进入步骤S31。另一方面, 在背景周期是表中当前位图的宽度以下的情况下,处理进入步骤S30, 在步骤S30将第2位图的宽度代入背景周期,处理进入步骤S31。这样,迄今为止的背景周期以及左右邻接的两个位图的宽度中的最大的 值就被重新代入背景周期。由于通过在用纸的左端或者右端对背景位 图背景进行修剪,就有成为比周期还要小的宽度的情况,使用最大的 值的理由,就是为了消除此影响。在步骤S31中,判断位图管理表是否已满。在位图管理表已满的情况下,由于没有重新保存(登录)相关位图的信息的空间,不作任 何处理就结束处理。另一方面,在位图管理表没有满的情况下,将第1位图的左上角的X坐标、左上角的Y坐标、宽度以及高度保存到位 图管理表并结束处理。当这样结束l页的处理后,在此页内邻接位图的宽度的最大值就 保存到背景周期中。另外,在邻接位图不存在此页内的情况下,就将 0保存到背景周期中。接着,参照图8,就图6的步骤SIO中的处理细节进行如下说明。 图8是表示步骤S10中的处理细节的流程图。首先在步骤S41判断上 述步骤S4中所求出的背景周期是否为0。在背景周期不是0的情况 下,即检测出背景图案的周期的情况下,处理进入步骤S42,求得背 景周期和1字节的象素数的最小公倍数。例如,在背景周期是1024 象素,1象素由l位构成的情况下(l字节的象素数是8),该最小公 倍数就是1024。另外,在背景周期是511象素,l象素由4位构成的 情况下(l字节的象素数是2),该最小公倍数就是1022。由于编码 的单位是l字节,故此处理是为了将象素单位的周期变换成字节单位 的周期而进行的。接着在步骤S43,将在步骤S42中所求出的最小公倍数变换成字 节单位。具体就是用1字节的象素数除以最小公倍数。接着在步骤 S44求得在步骤S43中所求出的字节单位的背景周期和抖动周期的最 小公倍数。例如,在背景周期是128字节抖动周期是2字节的情况下, 就是128字节。另外,在背景周期是511字节,抖动周期3字节的情 况下,就是1533。由于在背景周期不是抖动周期的整数倍的情况下, 通过在仅间隔背景周期的点中施加不同的抖动处理,就成为不同的象素值,故此处理是为了参照进行相同抖动处理的点而进行的。接着在步骤S45,判断在步骤S44中所求出的最小公倍数是否不 满行长的90%。在不满行长的90%的情况下,处理进入步骤S47, 将符合上述步骤S8的2值处理中所使用的抖动矩阵的上复制和近左 复制的位置,以及在步骤S44所求出的最小公倍数(远左复制位置) 作为指定压缩参数的命令(压缩参数指定命令)进行输出,结束处理。另一方面,在步骤S41中背景周期为0的情况下,以及步骤45、 步骤44中所求出的最小公倍数是行长的90%以上的情况下,处理进 入步骤S46,将背景周期设定为缺省值。由于这些情况是不能检测出 背景周期或者背景周期过大没有对压缩率提高给予大的贡献的情况, 故取而代之设定为缺省值。缺省值被预先确定成与近左复制的位置不 同。例如,在抖动周期为16象素,1字节的象素数是8的情况下,近 左复制的位置就是2字节的左侧。在此情况下将背景周期的缺省值确 定为l字节。如前所述, 一般来说与仅间隔抖动周期的点之间的相关 性高,但在打印数据是象通常的文本或者表那样,以黑白2值来显示 的情况下,就成了与不进行抖动处理的情况相同的结果。另外,由于 与和抖动周期没有关系地进行邻接的点之间的相关性高,故在相关情 况下,间隔1字节位置也比间隔2字节位置相关性高,可以对压缩率 的提高作出贡献。接着在步骤S47,将与上述步骤S8的2值处理中所使用的抖动 矩阵的相符合的上复制和近左复制的位置,以及在步骤S46所设定的 缺省的背景周期(远左复制位置)作为指定压缩参数的命令(压缩参 数指定命令)进行输出,结束处理。接着参照图9A和图9B,就图6的步骤S11中的编码处理的细节 进行说明。图9A和图9B是表示步骤S11中的处理细节的流程图。首先在步骤S51将行编号Y初始化为0。接着在步骤S52将从行 开头的字节偏移X初始化为0。接着在步骤S53,判断上位置是否在有效的图像区域中。具体就 是判断在图8的步骤S47中所输出的表示上复制位置的行数(下面用Z来表示)是否也大于行编号Y。由于表示上复制位置的行数Z为行编号Y以下的情况,就是上位置在有效的图像区域中(存在于编码对 象的位图内的区域)的情况,故在步骤S54,求得从当前位置(X、 Y) 开始的字节序列和从上位置(X、 Y-Z)开始的字节序列连续相一致 的长度。此外这时,在直到行末都连续相一致的情况下,设为在行末 进行中止。另外,在连续相一致的长度,超过作为计数编码的最大值 的4095字节的情况下,设为在4095字节进行中止。接着在步骤S55,判断步骤S54中所求出的长度是否为0。在步 骤S54中所求出的长度不为O的情况下,处理进入步骤S56,判断步 骤S54中所求出的长度(计数)是否比63大。在步骤S54中所求出 的长度比63大的情况下,处理进入步骤S57,将COUNTHIGH命令 输出到RAM1702或者外部存储装置1704,接着在步骤S58,将用64 除以在步骤S54所求出的长度算出的商(计数的高位)输出到 RAM1702或者外部存储装置1704,处理进入步骤S59。另一方面, 在步骤S56中,当在步骤S54所求出的长度是63以下的情况下,处 理进入步骤S59。接着,在步骤S59将COUNT UP命令输出到RAM1702或者外部 存储装置1704,接着在步骤S60,将用64除以在步骤S54所求出的 长度算出的余数(计数的低位)输出到RAM1702或者外部存储装置 1704。另一方面,在步骤S53中表示上复制位置的行数Z比行编号Y 大的情况下,以及当在步骤S55所求出的长度为0的情况下,处理进 入步骤S62,判断近左位置是否在有效的图像区域中。具体就是判断 上述步骤S47中所输出的表示近左复制位置的字节数(下面用W来 表示)是否比从行开头的字节偏移X大。由于表示近左复制位置的字 节数W为从行开头的字节偏移X以下的情况,就是近左位置在有效 的图像区域中的情况,故处理进入步骤S63,求得从当前位置(X、 Y) 开始的字节序列和从近左位置(X-W、 Y)开始的字节序列连续相 一致的长度(计数)。此外这时,在直到行末都连续相一致的情况下,设为在行末进行中止。另外,在连续相一致的长度,超过作为计数编码的最大值的4095字节的情况下,设为在4095字节进行中止。接着在步骤S64,判断步骤S63中所求出的长度是否为0。在步 骤S63中所求出的长度不为0的情况下,处理进入步骤S65,判断步 骤S63中所求出的长度(计数)是否比63大。在步骤S63中所求出 的长度比63大的情况下,处理进入步骤S66,将COUNTHIGH命令 输出到RAM1702或者外部存储装置1704,接着在步骤S67,将计数 的高位,即用64除以在步骤S63所求出的长度算出的商输出到 RAM1702或者外部存储装置1704,处理进入步骤S68。另一方面, 在步骤S65中,当在步骤S63所求出的长度是63以下的情况下,处 理进入步骤S68。接着,在步骤S68将COUNT NEAR LEFT命令输出到RAMI702 或者外部存储装置1704,接着在步骤S60,将计数的低位,即用64 除以在步骤S63所求出的长度算出的余数输出到RAM1702或者外部 存储装置1704。另一方面,在步骤S62中表示近左复制位置的字节数W比从行 开头的字节偏移X大的情况下,以及当在步骤S64所求出的长度为0 的情况下,处理进入步骤S69,判断远左位置是否在有效的图像区域 中。具体就是判断图8的步骤S47中所输出的表示远左复制位置的字 节数(下面用R来表示)是否比从行开头的字节偏移X大。由于表 示远左复制位置的字节数R为从行开头的字节偏移X以下的情况, 就是远左位置在有效的图像区域中的情况,故处理进入步骤S70,求 得从当前位置(X、 Y)开始的字节序列和从远左位置(X-R、 Y) 开始的字节序列连续相一致的长度(计数)。此外这时,在直到行末 都连续相一致的情况下,设为在行末进行中止。另外,在连续相一致 的长度,超过作为计数编码的最大值的4095字节的情况下,设为在 4095字节进行中止。接着在步骤S71,判断步骤S70中所求出的长度 是否为O。在步骤S70中所求出的长度不为O的情况下,处理进入步 骤S72,判断步骤S70中所求出的长度是否比63大。在步骤S70中所求出的长度比63大的情况下,处理进入步骤S73,将COUNT HIGH 命令输出到RAM1702或者外部存储装置1704,接着在步骤S74,将 计数的高位,即用64除以在步骤S70所求出的长度算出的商输出到 RAM1702或者外部存储装置1704,处理进入步骤S75。另一方面, 在步骤S72中,当在步骤S70所求出的长度是63以下的情况下,处 理进入步骤S75。在步骤S75中,将COUNT FAR LEFT命令输出到RAMI 702或 者外部存储装置1704,接着在步骤S60,将计数的低位,即用64除 以在步骤S70所求出的长度算出的余数输出到RAM 1702或者外部存 储装置1704。另一方面,在步骤S69中表示远左复制位置的字节数R比从行开 头的字节偏移X大的情况下,以及当在步骤S71所求出的长度为0 的情况下,处理进入步骤S76,将RAW命令输出到RAM1702或者 外部存储装置1704,接着将当前位置(X、 Y)的数据(1字节部分) 作为原始数据输出到RAM1702或者外部存储装置1704。当上述的处理结束后,处理进入步骤S78,将已处理的字节相加 到X。接着在步骤S79,判断X是否到达行末,即判断X是否等于1 行的字节数。在X比l行的字节数小的情况下,处理返回步骤S53, 继续进行处理。另一方面,在X等于1行的字节数的情况下,处理进 入步骤S80,将1相加到行编号Y,在步骤S81判断图像的处理是否 结束,即判断Y是否和图像的行数相等。在Y比图像的行数小的情 况下,处理返回S52,继续进行处理。另一方面,在Y等于图像的行 数的情况下,处理进入步骤S82,将EOB命令输出到RAMI702或者 外部存储装置1704,接着在步骤S83,仅将为了对齐字节边界所需的 数目(例如通过上述的编码处理以使输出到RAM1702、或者外部存 储装置1704的位序的长度成为8的倍数)的位"0"输出到緩沖器, 结束处理。接着,参照图12,就图2所示的解码电路13的构成详细进行说 明。图12是表示解码电路13的详细的构成的框图。在该图中,输入緩沖器21,保存从FIFO存储器12读出的编码 数据。输入緩冲器21,至少能够保持4字节的数据,在緩冲器中产生 空闲,且FIFO存储器12中有数据的情况下,从FIFO存储器12读 出数据并进行保存。另外,当保持在位计数器23中的处理完的位数 成为8位以上的情况下,输入緩冲器21删除不需要的处理完的数据。选择器22是例如11组的8输入选择器,通过根据位计数器23 所表示的处理完的位数对保存在输入緩冲器21中的编码数据进行选 择,进行命令解码电路24处理所需要的、命令的开始位置的对齐。 由于相对于输入緩冲器21以字节单位来保持数据,命令是位单位的 可变长度数据,所以为了有8处的开始位置这一点是必要的。位计数器23,保存输入緩沖器21所保存的编码数据中的处理完 的位数。另外,位计数器23通过加上从命令解码电路24所输出的命 令的位数,来更新位计数器中所保存的值。另外,位计数器23在输 入緩冲器删除了处理完的数据的情况下,减去已删除的位数。另外, 在命令解码电路24对EOB命令进行解码时,位计数器23从命令解 码电路24接收EOB信号,进行字节边界对齐的处理。具体就是,如 果位计数器的低位3位全部是0就什么也不作,如果不是这样就在加 上8的同时清除低位3位。命令解码电路24由例如只读存储器或者布线逻辑(wired logic) 构成。对由选择器22进行了位置对齐、并保存在输入緩沖器21中的 编码数据进行解码,根据已解码的命令将前面说明的或者后面说明的 各种信号输出到计数器26、上复制输出电路27、远左复制输出电路 28、近左复制输出电路29、原始数据输出电路30以及位计数器23。行长寄存器25保持控制电路15预先输出的、1行的字节数。计数器26保持COPY UP、 COPY NEAR LEFT、或者COPY FAR LEFT命令的处理字节数,每进行1字节的数据输出就进行相减运算。 计数器26能够独立地设定高位6位和低位6位,在命令解码电路24 解码了 COUNT HIGH命令时,将命令解码电路24所输出的处理字节 数的相加值保存到计数器26的高位。另外,在命令解码电路24解码了 COPY UP、 COPY NEAR LEFT、或者COPY FAR LEFT命令时, 将命令解码电路24所输出的处理字节数保存到计数器26的低位。上复制输出电路27,根据计数器26所保持的处理字节数,读取 并输出行緩冲器31所输出的上复制位置的数据。远左复制输出电路 28,根据计数器26所保持的处理字节数,读取并输出行緩冲器31所 输出的远左复制位置的数据。近左复制输出电路29,根据计数器26 所保持的处理字节数,读取并输出可变级移位寄存器38所输出的近 左复制位置的数据。原始数据输出电路30,输出命令解码电路24所 输出的1字节的原始数据。列计数器41保持行緩冲器31的当前的列地址,每向行緩冲器31 进行写入就相加所写入的数据的大小,由此求得计数值。然后在此计 数值达到行长寄存器25所保持的1行的字节数的情况下,复位成0。行緩冲器31保持多行的解码数据,根据减法电路40所输出的地 址,进行解码数据的输入或者输出。行计数器32保持行緩冲器31的当前的行地址,每当上述计数值 复位成0就进行计数增加,在计数的结果达到行数寄存器36所保持 的行数的情况下,复位成0。另外当行数被输出到行数寄存器36时, 行计数器32复位成0。乘法电路33,通过计算行计数器32所保持的当前的行地址和行 长寄存器25所保持的l行的字节数的积,输出行緩冲器31的当前的 4亍的开始地址。加法电路34,通过计算乘法电^各33所^T出的当前的 行的开始地址和列计数器41所保持的当前的列地址的和,输出行緩 冲器31的当前的地址。背景周期寄存器39,保持控制电路15预先输 出的、背景周期字节数。减法电路40,当由远左复制输出电路接收到指示远左复制的读取 的信号时,从加法电路34所输出的当前的地址减去背景周期寄存器 39所保持的背景周期字节数并进行输出,同时当由远左复制输出电路 没有接收到指示远左复制的读取的信号时,原封不动地输出加法电路 34所输出的当前的地址。输出緩沖器35,每当从上复制输出电路27、远左复制输出电路 28、近左复制输出电路29或者原始数据输出电路30输出解码数据, 就保存所输出的解码数据。另外,当从移位寄存器16要求图像数据 的输出时,输出緩冲器35就输出所保存的解码数据。行数寄存器36,保持控制电路15预先输出的、行数(上复制垂 直偏移值)。级数寄存器37,保持控制电路15预先输出的、表示近左位置的 字节偏移值。可变级移位寄存器38,由移位寄存器和选择器构成,构 成与级数寄存器37所保持的表示近左位置的字节偏移值相等的级数 的移位寄存器,输出将所输出的解码数据延迟了比用级数寄存器37 保持的用表示近左位置的字节偏移值所指定的值仅小1的次数的数 据。当命令解码电路24解码COPYUP命令后,就解码与它相连续的 计数并保存到计数器26的低位,同时将指示上复制的读取的信号输 出到上复制输出电路27。在计数器26的高位中,当COUNT HIGH 命令没有在先发出的情况下保存0 ,当其在先发出了的情况下保存表 示COUNT HIGH命令的高位计tL上复制输出电路27,读出在行緩 冲器31中保存在加法电路34、减法电路40输出的地址(换言之就是 当前的位置)上的数据,并输出到行緩冲器31 (因为是覆盖相同数据, 也可以不进行此处理),同时输出到输出緩冲器35。另一方面,将所 读出的解码数据输入到可变级移位寄存器38(下面从开头起)。然后 已经保持在可变级移位寄存器38中的数据一级一级地进行移位,从 可变级移位寄存器38的最终级,输出与当前位置的下一位置相对应 的近左复制位置的1字节。接着,列计数器41进行计数增加,计数 器26进行计数减少。就这样进行解码数据的输出直到计数器26达到 0。当命令解码电路24解码COPY FAR LEFT命令后,就解码后续 的计数并保存到计数器26的低位,同时将指示远左复制的信号输出 到远左复制输出电路28。在计数器26的高位中,当COUNT HIGH命令没有在先发出的情况下保存0 ,当其在先发出了的情况下保存表示COUNT HIGH命令的高位计数。这里,为了输出指示远左位置的 数据读取的信号,远左复制输出电路读取在行緩冲器31中保存在从 加法电路34的输出(当前的地址)减去背景周期寄存器39所保持的 背景周期值的值,即远左位置的地址上的解码数据,并写入到行緩冲 器31的当前位置,同时也输出到输出緩冲器35。另外,将已读出的 解码数据输入到可变级移位寄存器38。然后保持在可变级移位寄存器 38中的数据一级一级地进行移位,从可变级移位寄存器38的最终级, 输出与当前位置的下一位置相对应的近左复制位置的l字节。接着, 列计数器41进行计数增加,计数器26进行计数减少。就这样进行解 码数据的输出直到计数器26达到0。当命令解码电路24解码COPY NEAR LEFT命令后,就解码后续 的计数并保存到计数器26的低位,同时将指示近左复制的信号输出 到近左复制输出电路29。在计数器26的高位中,当COUNT HIGH 命令没有在先发出的情况下保存0 ,当其在先发出了的情况下保存表 示COUNT HIGH命令的高位计数。近左复制输出电路,将可变级移 位寄存器38所输出的近左复制位置的1字节的解码数据输出到输出 緩冲器35,同时写入到行緩冲器31的当前位置。另外,将已读出的 1字节的解码数据输入到可变级移位寄存器38。保持在可变级移位寄 存器38中的数据一级一级地进行移位,从可变级移位寄存器38的最 终级,输出与当前位置的下一位置相对应的近左复制位置的1字节。 接着,列计数器41进行计数增加,计数器26进行计数减少。就这样 进行解码数据的输出直到计数器26达到0。当命令解码电路24解码RAW命令后,就将后续的1字节的原始 数据(解码数据)输出到原始数据输出电路30。原始数据输出电路 30将此解码数据输出到输出緩冲器35,同时写入到行緩冲器31的当 前位置。另外,将此解码数据输入到可变级移位寄存器38。另外保持 在可变级移位寄存器38中的数据一级一级地进行移位,从可变级移 位寄存器38的最终级,输出与当前位置的下一位置相对应的近左复制位置的1字节。当命令解码电路24解码COUNT HIGH命令后,就解码后续的计 数并保存到计数器26的高位。接着,参照图13和图14,就行緩冲器31的数据输入输出的动作 进行说明。图13是说明编码前或者解码后的图像数据的构成,作为 一例说明1行的长度是10字节的情况。如图所示,从起始行的左侧 按00、 01、 ...09的顺序字节(图像数据)进行排列,从下一行的的 左侧按IO、 11、 ...19的顺序字节进行排列。以下的行也同样如此。图14说明在行緩冲器31的各个地址上图13所示的图像数据是 如何来保存的图。作为一例说明1行的长度为IO字节,表示上复制 位置的行数为3行的情况。当最初将行计数器32和列计数器41都设为0后,对行地址0且 列地址O进行最初的数据输入输出。此外,直到最初的3行的图像被 写入之前,从行緩冲器31所输出的数据都是不确定的。当从行緩冲器31的、行地址0且列地址0读取数据,然后当向 相同的地址写入图ll所示的字节OO后,列计数器41进行计数增加, 保持为1。接着从行地址0且列地址1读取数据,然后当向相同的地 址写入的字节01后,列计数器41进行计数增加,保持为2。当这样 写入10字节后,由于列计数器41将保持为10,与行长寄存器25所 保持的1行的字节数相等,列计数器41就保持为0,行计数器32进 行计数增加保持为1。接着从行地址1且列地址0读取数据,然后当 向相同的地址写入的字节10后,列计数器41进行计数增加,保持为 1。由于当这样写入20字节的数据后,列计数器41保持为0,同时行 计数器32进行计数增加保持为3,就与行数寄存器36所保持的行数 相等,行计数器32就保持为0。由于这里行计数器32和列计数器41都为0,就读取最初被写入 的字节OO,然后字节30被写入。这样,在依次读取3行上的数据以 后,当前的行的数据被覆盖,行緩冲器31作为所谓的环形存储器来 进行动作。接着参照图15,来说明行緩冲器31和可变级移位寄存器38的动 作定时。图15说明图13所示的图像数据在什么样的定时被处理的, 作为一例说明l行的长度为IO字节,表示上复制位置的行数为3行, 表示近左复制位置的字节偏移值为2字节的情况。图中,Al是表示开始的3行的处理正好结束的时刻。正如上面 的说明,由于这时行计数器32和列计数器41都复位成0。从行緩冲 器31读取图11所示的字节00。在A1时刻,上复制电路27进行动 作的情况下,当在A2时刻对正从行緩冲器31读取的数据进行确定后, 字节00就被输入到上复制电路27。接着,上复制输出电路27直到 A3时刻都输出解码数据。在A3时刻中,所输出的解码数据作为字节 30被保存到行緩冲器31。这时时钟脉冲被输入到可变级移位寄存器 38,可变级移位寄存器38中所保持的数据一级一级地进行移位,同 时在起始级移位寄存器中保持所输出的解码数据,即数据字节30。另 外,由于可变级移位寄存器38构成级数寄存器37所保持的、比表示 近左位置的字节偏移值小1的级数的移位寄存器,可变级移位寄存器 38的最终级输出比可变级移位寄存器38的起始级延迟1字节的数据, 即字节29。这样每当输出解码数据,就保存到输出緩冲器35,同时 一级一级地移位可变级移位寄存器38所保持的数据。在Cl时刻近左复制输出电路29进行动作的情况下,可变级移位 寄存器38的最终级正输出的近左位置的数据字节,即数据字节30被 输入到近左复制输出电路。接着,上复制输出电路27直到A3时刻都 输出解码数据。在C3时刻中所输出解码数据作为数据字节32被保存 到输出緩沖器35,下面与上述例子同样地进行动作。远左复制输出电路28或者原始数据输出电路30在数据输出的情 况下也同样地进4亍动作。接着参照图16,说明控制电路15所执行的打印控制步骤。图16 是表示控制电路15所执行的打印控制处理步骤的流程图,与数据的 接收等其他的处理(未图示)并行地进行动作。当打印控制步骤起动后,首先在步骤S101判断是否有可打印的页,具体就是判断是否接收到换页命令并存在未打印的页。在没有可 打印的页的情况下,在步骤S101进行待机直到接收到换页命令并产 生可打印的页。在存在可打印的页的情况下,处理进入步骤S102,向打印机引 擎14指示打印的开始。接着,在步骤S103将通过页的打印条件指定 命令所指定的1行的字节数设定到行长寄存器25。接着在步骤S104 将通过页的压缩参数指定命令所指定的表示上复制位置的行数、表示 近左复制位置的字节偏移值以及表示远左位置的字节偏移值分别设 定到行数寄存器36、级数寄存器37以及背景周期寄存器39。接着, 在步骤S105进行等待直到1页的打印结束。当打印开始后,由解码 电路13基于设定到上述寄存器的值进行解码。当1页的打印结束后, 处理返回步骤SIOI,等待可打印的页。这样,由于使用在编码时所使用了的压缩参数进行解码,就总是 能够得到正确的解码数据。根据上面的说明,利用本实施形式,由于检测背景图案的周期, 并参照符合所检测出的周期的位置来进行编码,就能够高效率地压缩 背景图案。另外,由于仅参照符合所检测出的周期的位置以及所限定 的少数的位置来进行编码,就能够高速地进行压缩。另外,由于在检 测背景图案的周期时,不使用背景图案的数据自身,仅利用背景图案 的大小和位置来进行检测,就能够高速地检测周期。另外,由于依照 1字节的象素数以及抖动周期来校正所检出的背景图案的周期,即使 是进行了抖动处理的图像也能够高效率地进行压缩。另外,由于在没 有检测出背景图案的周期的情况下,使用缺省的参照位置来进行编 码,与不进行这样的处理相比就能够高效率地进行压缩。[第2实施形式]此外虽然在上述的实施形式中是,当近左复制位置在图像的左端 附近从图像的左端超出范围的情况下不进行参照这样来构成的,但也 可以取代此是其他的方法,例如向前一行的右侧进行蔓延,或者在左 复制位置从图像的左端超出范围的情况下参照固定值0 。另外,虽然在上述的实施形式中,以图像数据的1字节为单位来 进行编码和解码,^旦也可以取代此是其他的单位,例如以1象素或者 2字节等为单位。另外,虽然在上述的实施形式中,处理的是黑白图像,但也可以 取代此处理彩色图像。另外,虽然在上述的实施形式中,1象素是由l位来构成的,但也可以取代此是其他的值,例如2位、4位或者8位。另外,虽然在上述的实施形式中,是利用硬件来进行解码的,但也可以取代此用软件来进行解码。另外,虽然在上述的实施形式中,进行抖动处理,但也可以进行取代此的别的矩阵处理,或者不进行抖动处理。另外,虽然在上述的实施形式中,利用背景图案的横方向的周期性进行压缩处理,但也可以取代此利用纵方向或者纵横两方的周期性进行压缩。另外,虽然在上述的实施形式中,在检测出不同周期的情况下将 最大值设为周期,但也可以取代此,将不同周期中频率最高的值设为 周期。另外,虽然在上述的实施形式中,编码的处理单位是l页,但也 可以适用于以将多个页设为1个的,Ninl (N = 2、 4等)的图像为 单位进行同样的编码。在此情况下对每N页进行编码。[第3实施形式]由于本实施形式中的图像处理装置的基本构成和第1实施形式相 同,如图17所示那样,故省略该说明。图19是表示本发明第3实施形式中的打印机1711的基本构成的 框图。图中,511是并行端口,接收从端口驱动器5所输出的打印机 命令。512是FIFO (先入先出)存储器,存储包含在并行端口 511接 收到的打印机命令中的编码数据(详见后面说明),并将所存储的数 据按照先入先出的顺序输出到解码电路513。解码电路513,对FIFO 存储器512中所存储的码序列数据进行解码,将已复原的图像数据输出到打印机引擎514。打印机引擎514是激光打印机引擎,根据控制 电路515的指示,按照解码电路513所输出的图像数据进行打印。图 像数据对青、品红、黄和黑的各色以面顺序进行输出。515是控制电 路,例如由单片CPU构成,进4亍并4亍端口 511、 FIFO存储器512、 解码电路513以及打印机引擎514的控制。下面,就进行打印时,图1、 19所示的各部件的动作,进行说明。 由于关于用来将由打印控制命令和编码数据所形成的一 系列打 印机命令发送到打印机1711的处理,和第1实施形式相同,省略该 说明。控制电3各515经由并行端口 511接收打印机命令。在接收到的打 印机命令中,打印控制命令、压缩参数指定命令,为了打印控制被保 持在控制电路515的内部。另外,在接收到的打印机命令中,编码数 据被保存到FIFO存储器512。此后,当通过页结束命令的接收等, 控制电路515检测出构成1页的打印机命令的接收已完成时,向打印 机引擎514指示打印开始。指示打印开始后,打印机引擎514从未图 示的供纸盒供给用纸,当用纸到达预定的位置时,向解码电路513要 求解码数据的输出。解码电路513预先从FIFO存储器512读出编码 数据,将通过解码而被复原的图像数据保持到内部的緩冲器,当从打 印机引擎514要求图像数据的输出时,输出保持在内部的緩冲器中的 图像数据。当保持图像数据的緩冲器中出现空闲时,解码电路513从 FIF0512读出后续的编码数据,进行解码并保持到内部的緩冲器。这 样编码数据依次进行解码并作为图像数据被输出,当1页的图像数据 的输出全部结束后,打印完成。接着,参照图20和图21所示的表,就本实施形式中的打印机驱 动器4所生成的编码进行说明。图20是表示对一例本发明第3实施形式中的打印机驱动器4所 生成的编码数据中所包含的各编码进行说明的表的图。此外,在本实 施形式中进行说明的各编码是以位单位可变长度的,例如以从2位到 18位的位序来进行表示。与哈夫曼(Huffman)编码相同,各编码构成为通过从开始按顺序进行查找就能够识别编码。如图20所示,编码的位序以"1"开始的情况,就是COPY UP命令。此命令指示,从预先确定的预定行上方的位置,复制<字节数> 所表示的长度的字节序列。另外,编码的位序以"01"开始的情况,就是CACHE命令。此 命令指定在高速緩冲存储器(尽管在本实施形式中设置在CPU1701 内,但并不限于此,也可以i殳置在CPU1701的外部)内<3位数据> 所表示的位置的1字节的数据。另外,编码的位序以"001"开始的情况,就是RAW命令。此命 令指定持有<8位数据>的值的1字节的数据。另外,编码的位序以"0001"开始的情况,就是COPYLEFT命 令。此命令指示,从预先确定的预定字节左侧的位置,复制<字节数> 所表示的长度的字节序列。另外,编码的位序以"0000"开始的情况,就是EOB命令。指 示编码数据的结束。图21是对一例接续上述COPY UP命令、COPY LEFT命令后的、 表示长度的编码(<字节数〉)进行说明的表。如图21所示,编码的 位序以"1"开始的情况,指示l字节的长度。另外,编码的位序以"01"开始的情况,就是l位的数据(取值 0或者1 )接续,在接续的1位的数据为0的情况下,作为命令码就 是"010",作为含义就意味着2字节。另一方面,在接续的1位的 数据为1的情况下,作为命令码就是"011",作为含义就意味着3 字节。也就是,编码的位序以"01"开始的情况,就意味着2字节或 者3字节的长度。另外,由于编码的位序以"001"开始的情况,是2位的数据接 续,就意味着从4字节到7字节的长度,由于编码的位序以"0001" 开始的情况,是3位的数据接续,就意味着从8字节到15字节的长 度,由于编码的位序以"00001"开始的情况,是4位的数据接续, 就意味着从16字节到31字节的长度,由于编码的位序以"000001"开始的情况,是5位的数据接续,就意味着从32字节到63字节的长 度,由于编码的位序以"0000001"开始的情况,是6位的数据接续, 就意味着从64字节到127字节的长度,由于编码的位序以"0000000" 开始的情况,是7位的数据接续,就意味着从128字节到255字节的 长度。此外,预先求出这些编码在多数的图像数据中各命令的出现频 率,与哈夫曼(Huffman)编码相同,通过将短的代码分配给出现频 率高的命令,将比较长的代码分配给出现频率低的命令,就能够提高压缩率。接着,参照图22在说明RAW命令和CACHE命令的动作的同时, 就保存在高速緩冲存储器中的数据进行说明。图22是说明图像数据 和利用RAW命令以及CACHE命令将此图像数据保存到高速緩沖存 储器的方法的图。如该图所示,IO字节的图像数据OO、 01、 02、 03、 04、 05、 06、 07、 08和06从左进行排列。高速緩冲存储器是8字节的容量,最初 为空。首先,最初的图傳Jt据00可以编码成编码001 00000000即 RAWOO命令,编码或者解码了此命令的结果,就是将数据OO保存在 为空的高速緩冲存储器的起始位置。下一个图傳4t据01可以编码成编码001 00000001即RAW01命 令,编码或者解码了此命令的结果,就是将数据01保存在为空的高 速緩冲存储器的起始位置,已保存在起始位置的数据00移动到下一 个位置。这样直到图像数据07为止的8字节的数据被编码或者解码 后,高速緩冲存储器就被填满。下一个图像数据08可以编码成编码 001 00010000即RAW08命令,编码或者解码了此命令的结果,就是 将数据08保存在为空的高速緩冲存储器的起始位置,已经保存的从 数据07到数据01的7字节的数据依次移动到下一个位置,保存在高 速緩沖存储器的最后的数据00被丢弃。由于相同的数据保存在高速緩冲存储器的位置2,下一个图像数据06可以编码成编码01 010即CACH2命令,编码或者解码了此命 令的结果,就是将保存在位置2的数据06移动到高速緩冲存储器的 起始位置,保存在位置2以前的数据08和数据07依次移动到下一个 位置,保存在位置2以后的数据不进行变更。此外,在编码或者解码了 COPY UP命令或者COPY LEFT命令 的情况下,保存在高速緩沖存储器的数据不进行变更。接着,参照图23就COPY UP命令和COPY LEFT命令的动作进 行说明。图23是说明图像数据和利用COPY UP命令以及COPY LEFT 命令对此图像数据进行编码的方法的图。如该图所示,在构成图像数 据的象素序列中,10字节的图《象数据01、 23、 45、 67、 89、 AB、 89 和AB在最下行从左侧进行排列,图像数据01、 23、 45、 67、 89、 AB、 00、 00、 00和00在该行上方第4行从左侧进行排列。当前欲编 码或者解码的图像数据是最下行,另外预先设定为COPY UP命令参 照上方第4行,COPY LEFT命令参照2字节左侧。此外,在上述图像数据是使用抖动矩阵施加了抖动处理的图像的 情况下,由于对邻接数据进行不同的处理,就存在仅间隔抖动矩阵的 周期的位置的数据比已邻接的数据的相关性高这样的倾向。由此在施 加了抖动处理的图^f象的情况下,进行确定以使COPY UP命令或者 COPY LEFT命令所参照的位置和关注位置之间的相关性最高。即, 依照在生成欲进行编码的图像数据时所使用的抖动矩阵的周期来进 行确定。这里由于最下行的图像数据中起始的6字节01、 23、 45、 67、 89 和AB和上方第4行的起始6字节是相同排列,就能够编码成编码1 001 10即COPYUP6命令。接着由于下一个的4字节89、 AB、 89和 AB和从相同行的2字节左侧开始的4字节是相同的排列,就能够编 码成编码0001 001 00即COPY LEFT4命令。接着,参照图24所示的流程图来说明本实施形式中的打印机驱 动器4的处理细节。图24是打印机驱动器4所进行的主处理的流程 图。当打印机驱动器4接收来自操作系统2的指令后,判断指令的种类是否是绘图指令(步骤S505 )。在记录的种类是绘图指令的情况 下,处理进入步骤S506,进行绘图处理(步骤S506)。具体就是, 将经由操作系统2从应用程序3所发送的字符、图形或者位图等变换 成使用了红、绿、蓝3种颜色的各色8位的图像,并记录到RAM1702。 另一方面,在上述指令的种类不是绘图指令的情况下,处理进入 步骤S507,进而判断指令的种类是否是页结束指令(步骤S507)。 在指令的种类是页结束指令的情况下,处理进入步骤S508,进行颜色变换处理(步骤S508 )。具体就是,使用预定的抖动矩阵,将步 骤S506中记录到RAM1702的使用了红、绿、蓝3种颜色的各色8 位的图像,变换成由青、品红、黄和黑4种颜色形成的,例如各色4 位的图像。接着,输出打印条件指定命令,具体就是指定用纸尺寸、供纸盒、 分辨率、灰阶数、1行的字节数、1页的行数等打印所需要的条件的 命令(步骤S509)。然后,接着对青、品红、黄和黑的各色反复从步骤S5010到步骤 S5014的处理,输出每种颜色的图像数据命令。作为各步骤中具体的 处理,首先输出符合步骤S508中所使用的抖动矩阵的压缩参数,即 编码时将要使用的、COPY UP命令和COPY LEFT命令将要参照的位 置(步骤S5010)。接着按照后面说明的编码步骤,编码图像数据(步 骤S5011)。此时,使用步骤S5010所输出的压缩参数指定的、COPY UP命令和COPY LEFT命令参照的位置进行编码。接着,输出对步骤 S5011所编码的图像数据的大小和行数进行指定的首标(步骤 S5012)。接着输出步骤S5011所编码的图像数据(步骤S5013)。 接着判断青、品红、黄和黑的各面的处理是否全部结束(步骤S5014)。 在青、品红、黄和黑的各面的处理没有全部结束的情况下,处理返回 步骤S5010,进行下一个面的处理。另一方面,当青、品红、黄和黑 的各面的处理全部结束后,处理进入步骤S5015,输出指定页的结束 的命令(步骤S5015)。另一方面,在步骤S507中的判断,在指令的种类不是页结束指 令的情况下,处理进入步骤S5016,进行符合调用的种类的其他处理, 例如与页开始指令或者打印能力询问指令等相对应的处理(步骤 S5016)。接着,就上述步骤S5011中的编码处理,参照表示对相同处理的 细节进行说明的流程图的图25A和图25B进行说明。首先,将当前位置即进行编码的象素的位置设定到图像的左端上 方(步骤S5020)。接着判断COPY UP的参照位置是否有效(步骤 S5021 )。具体就是,对COPYUP的参照位置为上方第4行的情况, 在当前位置是从起始行开始上方第4行以上的情况下就判断COPY UP的参照位置为有效。在COPYUP的参照位置有效的情况下,处理 进入步骤S5022,对从当前位置开始的字节序列(象素数据序列)和 从COPY UP的参照位置开始的象素数据的字节序列进行比较,求得 值是一致的字节序列的长度(步骤S5022)。此外这时,在到达行末 的情况以及长度达到255字节的情况下,就中止处理。接着判断步骤S5022所求出的长度是否为0 (步骤S5023 )。由 于在不是0的情况下,就判断为能够编码成COPY UP命令,处理进 入步骤S5029,输出COPY UP命令,即编码1和接续在其后的表示 字节数(求出的长度)的编码,处理进入步骤S5032。另一方面,当在步骤S5021判断COPY UP的参照位置为无效的 情况下,或者在步骤S5023判断步骤S5022所求出的长度为0的情况 下,处理进入步骤S5024,判断COPY LEFT的参照位置是否有效(步 骤S5024)。具体就是,对COPY LEFT的参照位置为2字节左侧的 情况,在当前位置是从左端开始间隔2字节以上的情况下就判断 COPY LEFT的参照位置为有效。在COPY LEFT的参照位置有效的情 况下,处理进入步骤S5025,对从当前位置开始的字节序列(象素数 据序列)和从COPY LEFT的参照位置开始的字节序列进行比较,求 得相一致的字节序列的长度(步骤S5025 )。此外这时,在到达行末 的情况以及长度达到255字节的情况下,就中止处理。接着判断步骤S5025所求出的长度是否为0 (步骤S5026)。由 于在不是O的情况下,就判断为能够编码成COPY LEFT命令,处理 进入步骤S5030,输出COPYLEFT命令,即编码0001和接续在其后 的表示字节数(求出的长度)的编码,处理进入步骤S5032。另 一方面,当在步骤S5024判断COPY LEFT的参照位置为无效 的情况下,或者在步骤S5026判断步骤S5025所求出的长度为0的情 况下,处理进入步骤S5027,检索高速緩冲存储器,判断当前位置的 字节(象素数据)是否登录在高速緩沖存储器中(步骤S5027)。由 于在当前位置的字节登录在高速緩冲存储器中的情况下,就判断为能 够编码成CACHE命令,处理进入步骤S5031,输出CACHE命令, 即编码01和接续在其后的表示高速緩沖存储器命中了的高速緩冲存 储器的位置的3位数据(步骤S5031 ),并更新高速緩冲存储器(步 骤S5037)。具体就是,在将当前位置的字节保存在高速緩冲存储器 的起始位置的同时,进行将从高速緩冲存储器的起始位置到高速緩沖 存储器命中了的高速緩冲存储器的位置之前的数据依次移动到高速 緩沖存储器的下一个位置的处理。另一方面,当在步骤S5027判断为当前位置的字节没有登录在高 速緩沖存储器中的情况下,处理进入步骤S5028,输出RAW命令, 即编码0 01和接续在其后的与当前位置的字节相等的8位的原始数据 (步骤S5028),并更新高速緩冲存储器(步骤S5036)。具体就是, 在将当前位置的字节保存在高速緩冲存储器的起始位置的同时,进行 将从高速緩冲存储器的起始位置到高速緩冲存储器最终之前的数据 依次移动到高速緩冲存储器的下一个位置的处理。接着,仅将当前位置前移用COPY UP、 COPY LEFT、 CACHE 或者RAW命令所处理的字节数(步骤S5032)。接着,判断是否处 理了全部的图像数据(步骤S5033 )。在没有处理完全部的图像数据 的情况下,处理返回步骤S5021,进行上述的编码处理。另外,在处 理完全部的图像数据的情况下,处理进入步骤S5034,输出EOB命令, 即编码0000 (步骤S5034),进而,输出位0(直到达到8的整数倍)以使所输出的编码的总位数成为8的整数倍(步骤S5035 )。接着,就解码电路5013进行说明。图26是表示解码电^各5013 的基本构成的框图。在该图中输入緩冲器5021保存从FIFO存储器 512所读出的编码数据。5021至少能够保存4字节的数据,在输入緩 冲器5021中产生空闲,且FIFO存储器512中有数据的情况下,从 FIFO存储器512读出数据进行保存。另外,当保持在位计数器5023 中的处理完的位数成为8位以上的情况下,输入緩冲器5021删除不 需要的处理完的数据。选择器5022,是例如11组的8输入选择器,通过根据位计数器 5023所表示的处理完的位数对保存在输入緩沖器5021中的编码数据 进行选择,进行命令解码电路5024进行处理所需要的、命令的开始 位置的对齐。由于相对于输入緩冲器5021以字节单位来保持数据, 命令是位单位的可变长度数据,所以为了有8处的开始位置这一点是 必要的。位计数器5023,保存输入緩冲器5021所保存的编码数据中的处 理完的位数。另外,位计数器5023计数从命令解码电路24所输出的 命令的位数,并将位计数器5023中所保存的值更新成已计数的值。 另外,位计数器5023在输入緩冲器5021删除了处理完的数据的情况 下,从所保存的值中减去已删除的位数。另外,在命令解码电路5024 对EOB命令进行解码时,位计数器5023从命令解码电路5024接收 EOB信号,进行字节边界对齐的处理。具体就是,如果位计数器的低 位3位全部是0就什么也不作,如果不是这样就进行在将8加到所保 存的值的同时清除低位3位的处理。命令解码电路5024,由例如只读存储器或者布线逻辑(wired logic)构成,对由选择器5022进行了位置对齐、并保存在输入緩冲 器5021中的编码数据进行解码,根据已解码的命令将前面说明的或 者后面说明的各种信号输出到高速緩冲存储器输出电路5025、上复制 输出电路5026、左复制输出电路5027、原始数据输出电路5028以及 位计数器5023。高速緩冲存储器输出电路5025,在命令解码电路5024解码了 CACHE命令时接收表示高速緩冲存储器的位置的3位的数据,从高 速緩冲存储器5036读取并输出该位置的数据。上复制输出电路5026, 在命令解码电路5024解码了 COPY UP命令时接收应复制的字节数, 依照接收到的字节数反复从行緩冲器5035读取数据,并输出所读取 的数据。左复制输出电路5027,在命令解码电路5024解码了 COPY LEFT命令时接收应复制的字节数,依照接收到的字节数反复从可变 级移位寄存器5039读取数据,并输出所读取的数据。原始数据输出 电路5028,在命令解码电路5024解码了 RAW命令时接收表示原始 数据的8位的数据,并输出所接收的数据。行长寄存器5029,保持包含在已接收到的打印控制命令中的1 行的字节数。列计数器5030,保持行緩沖器5035的当前的列地址, 每向行緩冲器5035进行写入就进行计数增加,另外在该结果达到行 长寄存器5029所保持的1行的字节数的情况下,复位成0。行数寄存 器5031,保持包含在已接收到的压缩参数的、表示COPYUP命令进 行参照的位置的行数。行计数器5032,保持行緩冲器5035的当前的 行地址,每当列计数器5030达到行长寄存器5029所保持的1行的字 节数并复位成0就进行计数增加。此外,在达到行数寄存器5031所 保持的行数的情况下,复位成0。另外当行数被输出到行数寄存器5031 时,行计数器5032复位成0。乘法电路5033,通过计算行计数器5032所保持的当前的行地址 和行长寄存器5029所保持的1行的字节数的积,输出行緩冲器5035 的当前的行的开始地址。加法电路5034,通过计算乘法电^各5033所 输出的当前的行的开始地址和列计数器5030所保持的当前的列地址 的和,输出行緩沖器5035的当前的地址。行緩沖器5035,保持多个行的解码数据,根据加法电路5034所 输出的地址,进行解码数据的输入或者输出。行緩冲器5035,构成由 行数寄存器5031保持的行数所指定的大小的环形存储器。高速緩冲存储器5036,在高速緩冲存储器输出电路5025或者原始数据输出电路5028解码了图像数据时存储图像数据,另外输出高 速緩沖存储器输出电路5025将要参照的数据。级数寄存器5038保持 表示COPYLEFT命令要参照的位置的字节偏移值。可变级移位寄存 器5039,由移位寄存器和选择器构成,构成与级数寄存器5038所保 持的表示字节偏移值相等的级数的移位寄存器,输出将已输出的解码 数据延迟了比用级数寄存器5038所保持的字节偏移值指定的值仅小 1的次数的数据。在上面的构成中,当命令解码电路5024解码COPY UP命令后, 就解码与它相连续接续其后的字节数,将解码了的字节数输出到上复 制输出电路5026。然后在行緩沖器5035中,位于从当前行还要靠上 保存在行数寄存器5031中的行数的,且被解码了的字节数部分的解 码数据群从行緩冲器5035被读出到上复制输出电路5026,上复制输 出电^各5026从加法电路5034输出的地址(换言之就是当前位置)开 始按顺序写入所读出的解码数据群。另一方面,将已读出的解码数据 群输入到可变级移位寄存器5039 (下面从开头起)。然后已经保持在 可变级移位寄存器5039中的数据一级一级地进行移位,从可变级移 位寄存器5039的最终级,输出与当前位置的下一位置相对应的COPY LEFT命令所参照的位置的1字节。接着,列计数器5030进行计数增 加。就这样进行解码数据的输出直到所指定的字节数的处理结束。另一方面,当命令解码电路5024解码COPY LEFT命令后,接着 就解码接续其后的后续的字节数,将解码了的字节数输出到左复制输 出电路5027。然后从可变级移位寄存器5039读取此字节数部分的解 码数据,输入到左复制输出电路5027。当左复制输出电路5027输出 此解码数据后,所输出的解码数据被写入到行緩冲器5035的当前位 置(加法电路5034输出的地址),同时被输入到可变级寄存器5039。 另外保持在可变级移位寄存器5039中的数据一级一级地进行移位, 从可变级移位寄存器5039的最终级,输出与当前位置的下一位置相 对应的COPY LEFT命令所参照的位置的1字节。接着,列计数器5030 进行计数增加。就这样进行解码数据的输出直到所指定的字节数的处理结束。当命令解码电路5024解码RAW命令后,就将接续其后的后续的 8位的原始数据输出到原始数据输出电路5028。当原始数据输出电路 5028输出此数据后,所输出的解码数据被写入行緩冲器5035的当前 位置,同时被输入到可变级寄存器5039。另外保持在可变级移位寄存 器5039中的数据一级一级地进行移位,从可变级移位寄存器5039的 最终级,输出与当前位置的下一位置相对应的COPY LEFT命令所参 照的位置的1字节。接着,列计数器5030进行计数增加。另外,将 已输出的解码数据存储到高速緩沖存储器5036的起始位置。当命令解码电路5024解码CACHE命令后,就将表示接续其后 的后续的3位的高速緩冲存储器内的位置的数据输出到高速緩沖存储 器输出电路5025。高速緩冲存储器输出电路5025从高速緩沖存储器 5036读取所指定位置的解码数据并输出该解码数据。所输出的解码数 据被写入行緩冲器5035的当前位置,同时被输入到可变级寄存器 5039。另外保持在可变级移位寄存器5039中的数据一级一级地进行 移位,从可变级移位寄存器5039的最终级,输出与当前位置的下一 位置相对应的COPY LEFT命令所参照的位置的1字节。接着,列计 数器5030进行计数增加。另外,将已输出的解码数据存储到高速緩 冲存储器5036的起始位置。接着参照图27,就高速緩冲存储器5036的构成进行说明。图27 是表示高速缓冲存储器5036的详细的构成的框图。在该图中,5051是第l移位寄存器,由8位8级的移位寄存器构 成。第l移位寄存器5051能够存储直到8个由原始数据输出电路5028 或者高速緩沖存储器输出电路5025所输出的1字节的图像数据。构 成第1移位寄存器5051的各级寄存器在从控制电路5055输入移位脉 沖的情况下,存储前一级寄存器所存储的数据。5052是第1移位寄存器,由1位8级的移位寄存器构成。构成第 2移位寄存器5052的各级寄存器保持表示在第1移位寄存器5051所 对应的寄存器中是否存储着数据的l位的信息。构成第2移位寄存器5052的各级寄存器在从控制电路5055输入移位脉冲的情况下,存储 前 一 级寄存器所存储的数据。5053是选择器,根据所输入的地址,即应参照的高速緩冲存储器 的位置,选择并输出构成第1移位寄存器5051的各级寄存器中的一 个所存储的数据。5054是编码器,当输入指示从高速緩冲存储器读取的读取信号 时,根据所输入的地址,即应参照的高速緩沖存储器的位置,输出对 构成第2移位寄存器5052的各级寄存器中的一个进行清除的信号。5055是控制电路,当输入指示向高速緩冲存储器写入的写入信号 时,根据保持在第2移位寄存器5052中的表示在第1移位寄存器5051 所对应的寄存器中是否存储着数据的信息,对第1移位寄存器5051 和第2移位寄存器5052需要移位的各级输出移位脉冲。当在此之前 的任何级中都没有存储数据的级存在的情况下不输出移位脉冲,在不 是这样的情况下输出。当原始数据输出电路5028输出解码数据后,所输出的解码数据 被输入到第1移位寄存器5051,同时写入信号被输入到控制电路 5055。由于存储着数据的级相连续,故控制电路5055将移位脉冲输 出到起始级和在前一级中存储着数据的级,表示第1移位寄存器5051 的起始级中所输入的解码数据,和第2移位寄存器5052的起始级中 的数据是有效的值1被分别存储,同时前一级的数据被存储到在前一 级中存储着数据的级。当高速緩沖存储器输出电路5025接收表示高速緩冲存储器的位 置的信息后,接收到的表示高速緩冲存储器的位置的信息即地址被输 入到选择器5053和编码器5054,同时读取信号被输入到编码器5054。 选择器5053根据所输入的地址选择并输出存储在第1移位寄存器 5051中的数据。另外,编码器5054根据所输入的地址对输出了数据 的级输出清除信号。此结果就是,输出了第2移位寄存器5052的数 据的级的寄存器被清除。当高速緩冲存储器输出电路5025读取选择器5053所输出的数据,并作为解码数据输出后,所输出的解码数据被输入到第1移位寄存器5051,同时写入信号被输入到控制电路5055。由于第2移位寄 存器5052的进行了高速緩沖存储器的读取的级被清除,存储有数据 的级就不相连续,因此控制电路5055将移位脉冲输出到从起始级到 进行了高速緩冲存储器读取的级为止的级,故表示第1移位寄存器 5051的起始级中所输入的解码数据,和第2移位寄存器5052的起始 级中的数据是有效的值1被分别存储,同时前一级的数据被存储在从 第1移位寄存器5051和第2移位寄存器5052的第2级到进行了高速 緩冲存储器的读取的级为止的级。这样维持高速緩冲存储器5036以使解码了 RAW命令或者 CACHE命令的数据按新的顺序存储。如上面的说明那样,由于本实施形式的图像处理装置,与前面的 数据序列相一致的部分是对相一致的长度进行编码,就能够以高压缩 率来编码如图像数据那样相同的数据序列进行排列的情况多的数据。另外,由于在与前面的数据序列不相 一 致的情况下对高速緩冲存 储器进行检索,在高速緩冲存储器命中了的情况下,对高速緩冲存储 器的位置进行编码,就能够编码成与对数据自身进行编码的情况相比 更短的代码。即使在与前面的数据序列相 一 致的情况少的情况下也能 够尽量防止压缩率的降低。另外,在对数据序列相一致的长度进行了编码的情况下,由于不 更新高速緩冲存储器,故能够防止用长数据序列改写高速緩沖存储器 造成的压缩率的降低。[第4实施形式]虽然在第3实施形式中,用硬件来进行解码处理,但并不限于此, 也可以用软件来进行。另外,虽然在第3实施形式中,用软件来进行 编码(压缩)处理,但也并不限于此,也可以使用专用的硬件来进行。 另外,虽然在第3实施形式中,编码的单位数据的大小是1字节,但 并不限于此,也可以是,例如1象素或者2字节。另外,虽然在第3实施形式中,当在高速緩冲存储器充满时选择要删除的数据的时候,使用对最长间隔中没有被参照过的数据进行删除,所谓的LRU法,但并不限于此,也可以使用例如才莫拟LRU法或 者模拟随机法等。 [第5实施形式]由于表示在打印图像时所使用的软件群和打印机之间关系的概 念图和第1实施形式相同,如图1所示那样,故省略该说明。图28是表示本实施形式中的打印机1711的基本构成的框图。在 图28中,6011是并行端口,从端口驱动器5接收打印机命令。6012 是FIFO(先入先出)存储器,存储并行端口 ll接收到的编码数据(详 见后面说明),将所存储的数据按照先入先出的顺序输出到解码电路 6013。解码电路6013,对FIFO存储器12中所存储的码序列数据进 行解码,并输出到打印机引擎6014和再编码电路6017。打印机引擎 6014是激光打印机引擎,根据控制电路6015的指示,按照解码电路 6013所输出的图像数据进行打印。6015是控制电路,例如由单片CPU构成,进行并行端口 6011、 FIFO存储器6012、解码电路6013、再编码电路6017、页存储器6018、 再解码电路6019以及打印机引擎6014的控制。6017是再编码电路, 编码并输出从解码电路6013所输出的图像数据。6018是页存储器, 保存再编码电路6017所输出的至少1页的编码。6019是再解码电^各, 解码并输出由再编码电路6017编码后保存到页存储器6018的编码。下面,就打印动作进行说明。当操作者在计算机侧操作应用程序3生成打印数据,并指示打印 后,打印指令经由操作系统2从应用程序3被传递到打印机驱动器4。 打印机驱动器4基于从应用程序3所发行的打印指令,变换成图像数 据。然后,打印机驱动器4基于后面说明的编码步骤,从已生成的图 像数据生成编码数据,并与指定用纸尺寸、位图数据的行的长度和行 数等的打印控制命令,指定压缩参数的压缩参数指定命令以及表示页 结束的换页命令同时输出。端口驱动器5将打印机驱动器4所生成的 一 系列打印机命令发送到打印机1711。控制电路6015经由并行端口 6011接收打印机命令。 如果接收到的打印机命令是打印控制命令或者压缩参数指定命令的 话,为了打印控制就保持在控制电路6015的内部。另外,再接收到 的打印机命令是编码数据的情况下,就保存到FIFO存储器6012。此 后,当通过页结束命令的接收等,检测出构成1页的打印机命令的接 收已完成时,向打印机引擎6014指示打印开始。指示打印开始后, 在打印机引擎6014能够接受图像数据时,向解码电路6013要求图像 数据的输出。解码电路6013,在被打印机引擎6014要求图像数据的输出的情 况下,从FIFO存储器6012读出编码数据,并将解码了的图像数据输 出到打印机引擎6014。这样编码数据依次进行解码并作为图像数据被 输出,当图像数据的输出全部结束后,l页的打印完成。再编码电路6017,每当解码电路6013输出图像数据,就编码所 输出的图像数据。如果再编码电路6017所进行的编码处理是不参照 前页的数据仅参照该页的数据进行编码的编码处理,就可以是任何处 理,例如仅参照左邻、仅参照上邻、参照左邻和上邻双方、或者参照 预定的字节数左侧的位置以及预定的行数上方的位置的数据来进行 编码。由再编码电路6017所编码的代码被保存到页存储器6018。这 样当1页的打印结束时,已打印的页的图像数据就被编码并保存到页 存储器6018.接着当构成第2页的打印机命令的接收结束后,同样地开始打印, 图像数据依次输出到打印机引擎6014,同时由再编码电路6017进行 编码并保存到页存储器6018。另外,在再解码电路6019起动第2页 的打印之前,根据控制电路6015的指示来开始动作,读取并解码保 存到页存储器6018的、前一页的图像数据已编码的代码。保存过已 读取的编码的区域就成为空区域。再解码电路6019与解码电路6013输出图像数据一致步调输出已 解码的数据。此数据,在解码电路6013对参照前一页的图像数据的 编码进行了解码的情况下,作为参照数据来使用,在其他的情况下不使用被丟弃。由于本实施形式中打印机驱动器4所生成的编码和第1实施形式相同,如图3、 4所示那样,故省略该说明。另外,由于图3和图4中所表示的编码的实例在图5中进行了说 明,该说明如上述那样,故省略该说明。接着,参照图29所示的流程图,就本实施形式中打印机驱动器4 的处理细节进行说明。当从操作系统2调用打印机驱动器4后,首先在步骤S601判断 调用的种类是否是绘图指令。在调用的种类是绘图指令的情况下,在 步骤S602进行绘图处理。具体就是,将经由操作系统2从应用程序 3所指示的字符、图形或者位图等变换成8位灰度级图像,进行记录 并结束处理。在步骤S601中调用的种类不是绘图指令的情况下,在步骤S7, 判断调用的种类是不是页结束指令。在调用的种类是页结束指令的情 况下,在步骤S8,进行2值化处理。具体就是使用抖动矩阵将在步 骤602所记录的8位灰度级的图像变换成黑白1位的图像。接着,在步骤S609输出打印条件指定命令,具体就是指定用纸 尺寸、供纸盒、分辨率、灰阶数、1行的字节数、1页的行数等打印 所需要的条件的命令。接着,在步骤S610输出编码时所使用的,指定以下参数的压缩 参数指定命令指定上复制时复制源是哪一行上方的位置的上复制垂 直偏移值和指定左复制时复制源是相同行的哪 一 字节左方的位置的 左复制水平偏移值。这里,上复制垂直偏移值和左复制水平偏移值,依照步骤S608 中所使用的抖动矩阵,预先通过理论或者试验求出最优值,并使用此 值。接着,在步骤S6011按照后面说明的编码步骤对图像数据进行编 码。此时,使用在步骤S6010输出了的压缩参数指定命令所指定的上 复制垂直偏移值和左复制水平偏移值进行编码。接着在步骤S6012输出对在步骤S6011中所编码的图像数据的大小和行数进行指定的图 像数据命令首标。接着在步骤S6013输出在步骤S6011中所编码的图 像数据。接着在步骤S6014输出指定页结束的换页命令。接着在步骤 S6015将当前页的图像数据传送到前页存储器并结束处理。在步骤S607中调用的种类不是页结束指令的情况下,在步骤 S6016,进行符合调用的种类的其他处理,例如与页开始指令或者打 印能力询问指令等相对应的处理,然后结束。接着参照图30A和图30B,就图29的步骤S6011中的编码处理 的细节进行说明。首先在步骤S6051将行编号Y初始化为0。接着在步骤S6052将 从行开头的字节偏移X初始化为0。接着在步骤S6053,判断上位置 是否在有效的图像区域中。具体就是判断在图29的步骤S6047中所 输出的表示上复制位置的行数是否也不小于行编号Y。由于表示上复 制位置的行数也不小于行编号Y的情况,就是上位置在有效的图像区 域中的情况,故在步骤S6054,求得从当前位置(X、 Y)和上位置(X、 Y-表示上复制位置的行数)开始的字节序列连续相一致的长度。此 外这时,在直到行末都连续相一致的情况下,设为在行末进行中止。 另外,在连续相一致的长度,超过作为计数编码的最大值的4095字 节的情况下,设为在4095字节进行中止。接着在步骤S6055,判断步骤S6054中所求出的长度是否为0。 在步骤S6054中所求出的长度不为O的情况下,在步骤S6056,判断 步骤S6054中所求出的长度是否比63大。在步骤S6054中所求出的 长度比63大的情况下,在步骤S6057,将COUNT HIGH命令输出到 緩沖器,接着在步骤S6058,对用64除以计数的高位,即在步骤S6054 所求出的长度算出的商进行编码并输出到緩冲器,进入步骤S6059。 在步骤S6056中,当在步骤S6054所求出的长度不比63大的情况下, 直接进入步骤S6059。接着,在步骤S6059将COUNT UP命令输出到緩冲器,接着在 步骤S6060,对用64除以计数的低位,即在步骤S6054所求出的长度算出的余数进行编码并输出到緩冲器。在步骤S6053中表示上复制位置的行数比行编号Y小的情况下, 以及在步骤S6055中的长度为0的情况下,在步骤S6062,判断左位 置是否在有效的图像区域中。具体就是判断图29的步骤S6047中所 输出的表示左复制位置的字节数是否也不小于从行开头的字节偏移 X。由于表示左复制位置的字节数也不小于从行开头的字节偏移X的 情况,就是左位置在有效的图像区域中的情况,故在步骤S6063,求 得从当前位置(X、 Y)和左位置(X-表示左复制位置的字节数、Y) 开始的字节序列连续相一致的长度。此外这时,在直到行末都连续相 一致的情况下,设为在行末进行中止。另外,在连续相一致的长度, 超过作为计数编码的最大值的4095字节的情况下,设为在4095字节 进行中止。接着,在步骤S6064,判断步骤S6063中所求出的长度是否为0。 在步骤S63中所求出的长度不为0的情况下,在步骤S6065,判断步 骤S6063中所求出的长度是否比63大。在步骤S6063中所求出的长 度比63大的情况下,在步骤S6066,将COUNT HIGH命令输出到緩 冲器,接着在步骤S6067,对计数的高位,即用64除以在步骤S6063 所求出的长度算出的商进行编码并输出到緩冲器,进入步骤S6068。 在步骤S6065中,当在步骤S6063所求出的长度比63不大的情况下, 直接进入步骤S6068。接着,在步骤S6068将COUNT LEFT命令输出到緩冲器,接着 在步骤S6060,对计数的低位,即用64除以在步骤S6063所求出的 长度算出的余数进行编码并输出到緩冲器。在步骤S6062中表示左复制位置的字节数比从行开头的字节偏 移X小的情况下,以及在步骤S6064中的长度为0的情况下,在步骤 S6069,判断有效的图像是否保存在前一页存储器中。具体就是判断 页编号是否不为1。由于页编号不为l的情况,就是在步骤S6015没 有将图像数据传送到前页存储器的情况,故在步骤S6070,求得从当 前页的图像数据的当前位置(X、 Y)和保存在前一页存储器中的图像数据的当前位置(X、 Y)开始的字节序列连续相一致的长度(计 数)。此外这时,在直到行末都连续相一致的情况下,设为在行末进 行中止。另外,在连续相一致的长度,超过作为计数编码的最大值的4095字节的情况下,设为在4095字节进行中止。接着在步骤S6071,判断步骤S6070中所求出的长度是否为0。 在步骤S6070中所求出的长度不为0的情况下,在步骤S6072,判断 步骤S6070中所求出的长度是否比63大。在步骤S6070中所求出的 长度比63大的情况下,在步骤S6073,将COUNT HIGH命令输出到 緩冲器,接着在步骤S6074,对计数的高位,即用64除以在步骤S6070 所求出的长度算出的商进行编码并输出到緩冲器,进入步骤S6075。 在步骤S6072中,当在步骤S6070所求出的长度比63不大的情况下, 直接进入步骤S6075。接着在步骤S6075,将COUNT PREVIOUS PAGE命令输出到緩 冲器,接着在步骤S6060,对计数的低位,即用64除以在步骤S6070 所求出的长度算出的余数进行编码并输出到緩沖器。当在步骤S6069中页编号为1的情况下,以及在步骤S6071中长 度为0的情况下,在步骤S6076,将RAW命令输出到緩沖器,接着 将当前位置(X、 Y)的数据1字节作为原始数据输出到緩冲器。在任何情况下,进入步骤S6078,将已处理的字节数相加到X。 接着在步骤S6079,判断X是否到达行末,即判断X是否等于1行的 字节数。在X比1行的字节数小的情况下,返回步骤S6053,继续进 行处理。在X等于1行的字节数的情况下,在步骤S6080,将1相加 到行编号Y,接着在步骤S6081判断图像的处理是否结束,即判断Y 是否和图像的行数相等。在Y比图像的行数小的情况下,返回S6052,继续进行处理。在 Y等于图像的行数的情况下,在步骤S6082,将EOB命令输出到緩冲 器,接着在步骤S6083,仅将为了对齐字节边界所需数目的位"0" 输出到緩冲器,结束处理。接着,参照图31,就图28所示的解码电路6013的细节进行说明。此外,图31是表示图28所示的解码电路6013的细节的框图。在图31中,输入緩沖器6021,保存从FIFO存储器6012读出的 编码数据。输入緩冲器6021,至少能够保持4字节的数据,在緩冲器 中产生空闲,且FIFO存储器6012中有数据的情况下,从FIFO存储 器6012读出数据进行保存。另外,当保持在位计数器6023中的处理 完的位数成为8位以上的情况下,输入缓冲器6021删除不需要的处 理完的数据。选择器6022是例如11组的8输入选择器,通过根据位计数器 6023所表示的处理完的位数对保存在输入緩冲器6021中的编码数据 进行选择,进行命令解码电路6024进行处理所需要的、命令的开始 位置的对齐。由于相对于输入緩冲器6021以字节单位来保持数据, 命令是位单位的可变长度数据,所以为了有8处的开始位置这一点是 必要的。位计数器6023,保存输入緩冲器6021所保存的编码数据中的处 理完的位数。另外,位计数器6023通过加上乂人命令解码电路6024所 输出的命令的位数,来更新位计数器中所保存的值。另外,位计数器 6023在输入緩冲器删除了处理完的数据的情况下,减去已删除的位 数。另外,在命令解码电路6024对EOB命令进行解码时,位计数器 6023从命令解码电路6024接收EOB信号,进行字节边界对齐的处理。 具体就是,如果位计数器的低位3位全部是0就什么也不作,如果不 是这样就在加上8的同时清除低位3位。命令解码电路6024,由例如只读存储器或者布线逻辑(wired logic)构成。对由选择器6022进行了位置对齐、并保存在输入緩冲 器6021中的编码数据进行解码,根据已解码的命令将前面说明的或 者后面说明的各种信号输出到计数器6026、上复制输出电路6027、 前页复制输出电路6028、左复制输出电路6029、原始数据输出电路 6030以及位计数器6023。计数器6026,保持COPY UP、 COPY LEFT、或者COPY PREVIOUS PAGE命令的处理字节数,每进行1字节的数据输出就进行相减运算。计数器6026能够独立地设定高位6位和低位6位,在 命令解码电路6024解码了 COUNT HIGH命令时,将命令解码电路 6024所输出的处理字节数的相加值保存到计数器6026的高位。另夕卜, 在命令解码电路6024解码了 COPY UP、 COPY LEFT、或者COPY PREVIOUS PAGE命令时,将命令解码电路6024所输出的处理字节 数保存到计数器6026的低位。上复制输出电路6027,根据计数器6026所保持的处理字节数, 从行緩冲器6031读取上复制位置的数据并进行输出。相当于上复制位置的行緩沖器6031的地址被保持在内置于上复 制输出电路6027的寄存器中。此寄存器的初始值,由控制电路6015 预先写入相当于上复制位置的值,每当解码电路6013输出1字节的 图像数据就自动地进行加法运算,同时在该结果超过了行緩冲器6031 的最终地址的情况下,自动地再次设定为行緩冲器6031的起始地址。前页复制输出电路6028,根据计数器6026保持的处理字节数, 读取并输出再解码电路6019输出的前一页的相同位置的图像数据。左复制输出电路6029,根据计数器6026所保持的处理字节数, 从行緩冲器6031读取左复制位置的数据并进行输出。相当于左复制位置的行緩冲器6031的地址被保持在内置于左复 制输出电路6029的寄存器中。此寄存器的初始值,由控制电路6015 预先写入相当于左复制位置的值,每当解码电路6013输出1字节的 图像数据就自动地进行加法运算,同时在该结果超过了行緩冲器6031 的最终地址的情况下,自动地再次设定为行緩沖器6031的起始地址。原始数据输出电路6030,输出命令解码电路6024所输出的l字 节的原始数据。行緩冲器6031,保持多个行的解码数据,根据上复制电路6027 或者左复制电路6029输出的地址,进行解码数据的读出,同时将上 复制电3各6027、前页复制电^各6028、左复制电^各6029或者原始^t据 输出电路6030所输出的数据写入到当前位置。相当于当前位置的行緩冲器6031的地址被保持在内置于行缓冲器6031的寄存器中。此寄存器的初始值,由控制电路6015预先写入 行緩冲器6031的起始地址,每当解码电路6013输出1字节的图像数 据就自动地进行加法运算,同时在该结果超过了行緩冲器6031的最 终地址的情况下,自动地再次设定为行緩冲器6031的起始地址。当命令解码电路6024解码COPY UP命令后,解码后续的计数并 保存到计数器6026的低位,同时将信号输出到上复制输出电路6027 。 计数器6026的高位,在没有在先发出COUNT HIGH命令的情况下保 存0,在先发出了的情况下保存表示COUNT HIGH命令的高位计数。 上复制位置的数据被从行緩冲器6031读取并输入到上复制输出电路 6027。当上复制输出电路6027输出此数据后,所输出的解码数据就 被写入到行緩冲器6031的当前位置。就这样进行解码数据的输出直 到计数器6026达到0为止。当命令解码电路6024解码COPY PREVIOUS PAGE命令后,解 码后续的计数并保存到计数器6026的低位,同时将信号输出到前页 复制输出电路6028。计数器6026的高位,在先没有发出COUNT HIGH 命令的情况下保存0,在先发出了的情况下保存表示COUNT HIGH 命令的高位计数。前一页的相同位置的数据被从再解码电路6019输 入到前页复制输出电路6028。当前页复制输出电路6028输出此数据 后,所输出的解码数据就被写入到行緩冲器6031的当前位置。就这 样进行解码数据的输出直到计数器6026达到0为止。当命令解码电路6024解码COPY LEFT命令后,解码后续的计数 并保存到计数器6026的低位,同时将信号输出到左复制输出电路 6029。计数器6026的高位,在先没有COUNT HIGH命令的情况下保左复制位置的数据被从行緩冲器6031读取并输入到左复制输出电路 6029。当左复制输出电路6029输出此数据后,所输出的解码数据就 被写入到行緩冲器6031的当前位置。就这样进行解码数据的输出直 到计数器6026达到O为止。当命令解码电路6024解码RAW命令后,将后续的1字节的原始数据输出到原始数据输出电路6030。当原始数据出电路6030输出此 数据后,所输出的解码数据就被写入到行緩冲器6031的当前位置。当命令解码电路6024解码COUNT HIGH命令后,解码后续的计 数并保存到计数器6026的高位。 [第6实施形式]由于表示在打印图像时所使用的软件群和打印机之间关系的概 念图和第1实施形式相同,如图1所示那样,故省略该说明。另外由于本实施形式中的图像处理装置的基本构成和第1实施形 式相同,如图17所示那样,故省略该说明。另外由于本实施形式中的打印机1711的基本构成和第3实施形 式相同,如图19所示的那样,故省略该说明。另外由于本实施形式中的打印动作由于与第3实施形式相同,故 省略该i兌明。接着,参照图32和图21所示的表,就在本实施形式中的打印机 驱动器4生成的编码进行说明。图32是表示一例在本实施形式中的打印机驱动器4所生成的编 码表的图。在本实施形式中进行说明的各编码是以位单位可变长度 的,例如以从2位到18位的位序来进行表示。与哈夫曼(Huffman) 编码相同,各编码构成为通过从开始4要顺序进行查找就能够识别编 码。此外,本实施形式中设为在编码时参照2处的左参照位置和2处 的上参照位置,符合减色处理时所使用的抖动显示阵的特性,例如, 确定为左参照位置是关注位置的1字节左侧和4字节左侧的位置,另 外上参照位置是关注位置的4行上方和2行上方且2字节左侧的位置。如图32所示,编码的位序以"1"开始的情况就是C0PYUP1命 令。在此命令之后接续表示后面说明的长度的编码,指示从预先确定 的高优先级的上参照位置,复制接续其后的编码所表示的长度的字节 序列。另外,编码的位序以"110"开始的情况就是COPY UP2命令。在此命令之后接续表示后面说明的长度的编码,指示从预先确定的低 优先级的上参照位置,复制接续其后的编码所表示的长度的字节序 列,并且调换高优先级的上参照位置和低优先级的上参照位置。
另外,编码的位序以"001"开始的情况就是RAW命令。在此命 令之后接续表示原始数据的8位数据,指定持有接续其后的8位数据 的值的1字节的数据。
另外,编码的位序以"010"开始的情况就是C0PYLEFT1命令。 在此命令之后接续表示后面说明的长度的编码,指示从预先确定的高 优先级的左参照位置,复制接续其后的编码所表示的长度的字节序 列。
另夕卜,编码的位序以"0001"开始的情况就是COPYLEFT2命令。 在此命令之后接续表示后面说明的长度的编码,指示从预先确定的低 优先级的左参照位置,复制接续其后的编码所表示的长度的字节序 列,并且调换高优先级的左参照位置和低优先级的左参照位置。
另外,编码的位序为"0000"的情况就是EOB命令,指示码块 的结束。
当在低优先级的参照位置上数据相一致的情况下,以后在该参照 位置上数据相一致的可能性就高。从而,在输出识别低优先级的参照 位置的更长的代码时,如果提高该参照位置的优先级以在以后用更短 的代码来进行识别的话,此后当在该参照位置上数据一致的情况下, 将要输出的代码的长度就会变短。所以,通过执行COPYUP2命令、 COPY LEFT2命令,来调换高优先级的参照位置和低优先级的参照位 置,今后所输出的代码的长度就会变短。
接续在图32所示的COPY UP1命令、COPY UP2命令、COPY LEFT1命令或COPY LEFT2命令之后的,表示长度的编码的编码表 的一例如第3实施形式中说明了的图21所示的那样。
接着参照图33A、图33B,就编码处理举出实例来进行说明。图 33A表示编码对象的图像数据,图33B是表示被编码的数据的图,如 图33A所示,10字节的图像数据(关注数据)00、 00、 12、 34、 56、
63接着参照图33A、图33B,就编码处理举出实例来进行说明。图 33A表示编码对象的图像数据,图33B是表示被编码的数据的图,如 图33A所示,10字节的图像数据(关注数据)00、 00、 12、 34、 56、78、 00、 BC、 DE和OO在最下行从左侧进行排列,图像数据12、 34、 56、 78、 9A、 BC、 DE、 00、 00、和00 (参照数据)在比该行高2行 的行从左侧进行排列。当前正要进行编码或者解码的图像数据是最下 行,另外在此时刻,设高优先级的左参照位置为1字节左侧的位置(即 低优先级的左参照位置为4字节左侧的位置)、低优先级的上参照位 置为2行上方且2字节左侧的位置(即高优先级的上参照位置为4行 上方的位置)形成。
这里最下行的起始字节00能够编码为位序001 00000000、即表 示原始数据00的RAW命令。
另外,下一个字节OO,能够编码为位序010 1,即从高优先级的 左参照位置、即1字节左侧的位置复制1字节的长度的COPYLEFTI 命令。
另外,随后的字节序列12、 34、 56、 78能够编码为位序011 001 00,即从低优先级的上参照位置、即2行上方且2字节左侧的位置复 制4字节的长度的COPYUP2命令。此结果,就是上参照位置的优先 级进行调换,以后的COPY UP1命令和COPY UP2命令将分别参照 从低优先级变成高优先级的2行上方且2字节左侧的位置,和从高优 先级变成低优先级的4行上的位置。
下一个字节00能够再次编码为位序001 00000000、即表示原始 数据00的字节的RAW命令。
另外,随后的字节序列BC、 DE、 00能够编码为位序1 01 1,即 从高优先级的上参照位置、即2行上方且2字节左侧的位置开始复制 3字节的长度的COPYUP1命令。
如上面那样,就能够编码图像数据。由于本实施形式中打印机驱 动器4的处理,遵循与第3实施形式相同的图24所示的流程图,故 省略其说明。
接着,就步骤S5011中本实施形式的编码处理,参照表示相同处 理的流程图的图34A以及图34B来进行说明。遵循该此程图的程序 作为上述流程图的子程序被安装到打印机驱动器4。首先在步骤S7019,按照预定的初始值,即按照在上述步骤S5010 中所求出的压缩参数来分别设定高优先级的上参照位置、低优先级的 上参照位置、高优先级的左参照位置以及低优先级的左参照位置。接 着,在步骤S7020,将当前位置、即进行编码的图像的位置设定到图 像的起始行左端。
接着,在步骤S7021,判断对应当前位置的高优先级的上参照位 置是否正参照有效的图像数据。在高优先级的上参照位置正参照有效 的图像数据的情况下,在步骤S7022,比较从当前位置开始的字节序 列和从高优先级的上参照位置开始的字节序列来求得与高优先级的 上参照位置相一致的长度。此外这时,在到达行末的情况下以及长度 达到255字节的情况下,就中止处理。接着,在步骤S7023,判断与 步骤S7022所求出的高优先级的上参照位置相一致的长度是否为0。 在不是0的情况下,由于能够编码成COPY UP1命令,就在步骤S7024 输出表示C0PYUP1命令、即编码1和表示接续在其后的字节数(在 步骤S7022所求出的长度)的编码,处理进入步骤S7040。
另一方面,当在步骤S7021判断为高优先级的上参照位置是无效 的情况下,或是当在步骤S7023,判断为与步骤S7022所求出的高优 先级的上参照位置相一致的长度是O的情况下,都在步骤S7025,判 断对应当前位置的高优先级的左参照位置是否正参照有效的图像数 据。在高优先级的左参照位置正参照有效的图像数据的情况下,在步 骤S7026,比较从当前位置开始的字节序列和从高优先级的左参照位 置开始的字节序列来求得与高优先级的左参照位置相一致的长度。此 外这时,在到达行末的情况下以及长度达到255字节的情况下,就中 止处理。接着在步骤S7027,判断与步骤S7026所求出的高优先级的 左参照位置相一致的长度是否为0。在不是O的情况下,由于能够编 码成COPY LEFTl命令,就在步骤S7028输出表示COPY LEFTl命 令、即编码OIO和表示接续在其后的字节数(在步骤S7026所求出的 长度)的编码,处理进入步骤S7040。
不管是当在步骤S7025判断为高优先级的左参照位置是无效的情况下,还是当在步骤S7027判断为与步骤S7026所求出的高优先级 的左参照位置相一致的长度是O的情况下,都在步骤S7029,判断对 应当前位置的低优先级的上参照位置是否正参照有效的图像数据。在 低优先级的上参照位置正参照有效的图像数据的情况下,在步骤 S7030,比较从当前位置开始的字节序列和从低优先级的上参照位置 开始的字节序列来求得与低优先级的上参照位置相一致的长度。此外 这时,在到达行末的情况下以及长度达到255字节的情况下,就中止 处理。接着在步骤S7031,判断步骤S7030所求出的与低优先级的上 参照位置相一致的长度是否为0。在不是O的情况下,因为能够编码 为C0PYUP2命令,就在步骤S7032输出COPY UP2命令、即编码 011和表示接续在其后的字节数(在步骤S7030所求出的长度)的编 码,接着在步骤S7033调换高优先级的上参照位置和低优先级的上参 照位置,处理进入步骤S7040。
当在步骤S7029判断为低优先级的上参照位置是无效的情况下,
置相一致的长度是O的情况下,都在步骤S7034,判断对应当前位置 的低优先级的左参照位置是否正参照有效的图像数据。在低优先级的 左参照位置正参照有效的图像数据的情况下,在步骤S7035,比较从 当前位置开始的字节序列和从低优先级的左参照位置开始的字节序 列来求得与低优先级的左参照位置相一致的长度。此外这时,在到达 行末的情况下以及长度达到255字节的情况下,就中止处理。接着在 步骤S7036,判断步骤S7035所求出的与低优先级的上参照位置相一 致的长度是否为0。在不是0的情况下,因为能够编码为C0PYLEFT2 命令,就在步骤S7037输出COPYLEFT2命令、即编码0001和表示 接续在其后的字节数(在步骤S7035所求出的长度)的编码,接着在 步骤S7038调换高优先级的左参照位置和低优先级的左参照位置,处 理进入步骤S7040。
不管是当在步骤S7034判断为低优先级的左参照位置是无效的 情况下,还是当在步骤S7036判断为与步骤S7035所求出的低优先级的左参照位置相一致的长度是0的情况下,都在步骤S7039,输出 RAW命令、即编码001和接续在其后的当前位置的1字节的数据, 处理进入步骤S7040。
在步骤S7040中,仅将当前位置前移用C0PYUP1、 C0PYUP2、 C0PYLEFT1、 COPY LEFT2或RAW命令所处理的字节数。接着在 步骤S7041,判断是否处理了全部的图像数据。在没有处理完全部的 图像数据的情况下,返回步骤S7021,继续编码。在处理完全部的图 像数据的情况下,在步骤S7042输出EOB命令、即编码OOOO,接着 在步骤S7043,将编码向字节边界进行对齐。具体就是,在已输出的 编码的总位数不是8的整数倍的情况下,输出位0直到到达8的整数 倍为止。这样,当编码的处理结束后就返回。
接着使用表示图19所示的解码电路513在本实施形式中的构成 的图35,就相同电路的细节进行说明。图35是表示在图19所示的解 码电路513在本实施形式中的基本构成的框图。
在图35中,输入緩冲器7021保存从FIFO存储器512所读出的 编码数据。输入緩冲器7021至少能够保存4字节的数据,在输入緩 冲器5021中产生空闲,且FIFO存储器512中有数据的情况下,从 FIFO存储器512读出数据并进行保存。另外,当保持在位计数器7023 中的处理完的位数成为8位以上的情况下,输入緩沖器7021删除不 需要的处理完的数据。
第一选择器7022是例如11组的8输入选择器,通过根据位计数 器7023所表示的处理完的位数对保存在输入緩沖器7021中的编码数 据进行选择,进行命令解码电路7024处理所需要的、命令的开始位 置的对齐。由于相对于输入緩冲器7021以字节单位来保持数据,命 令是位单位的可变长度数据,所以为了有8处的开始位置这一点是必 要的。
位计数器7023,保存输入緩冲器7021所保存的编码数据中的处 理完的位数。另外,位计数器7023通过加上从命令解码电路7024所 输出的命令的位数来更新保存在位计数器中的值。另外,位计数器7023在输入缓冲器7021删除了处理完的数据的情况下,减去已删除 的位数。另外,在命令解码电^各7024对EOB命令进行解码时,位计 数器7023从命令解码电路7024接收EOB信号,进行字节边界对齐 的处理。具体就是,如果位计数器的低位3位全部是0就什么也不作, 如果不是这样就在加上8的同时清除低位3位。
命令解码电路7024,由例如只读存储器或者布线逻辑(wired logic)构成,对由第一选择器7022进行了位置对齐的、保存在输入 緩冲器7021的编码数据进行解码,在已解码的命令是EOB命令的情 况下,向位计数器7023、上优先FF7029以及左优先FF7030输出信 号,在已解码的命令是COPY UP1命令或COPY UP2命令的情况下 向第二选择器7025以及第三选择器7026输出信号,在已解码的命令 是COPY LEFT1命令或COPY LEFT2命令的情况下,向第四选择器 7027以及第五选择器7028输出信号,在已解码的命令是RAW命令 的情况下向原始数据输出电路7036输出信号。另外,命令解码电路 7024在解码了 COPY UP1、 COPY UP2、 COPY LEFT1或者COPY LEFT2命令的情况下,也解码并输出编码所表示的字节数,同时在解 码了 RAW命令的情况下,也解码并输出编码所表示的8位数据。
7025是第二选择器,在上优先FF7029保持0的情况下,输出命 令解码电路7024在解码COPY UP1命令时输出的信号,另外在上优 先FF7029保持1的情况下,输出命令解码电路7024在解码COPY UP2 命令时输出的信号。
7026是第三选择器,在上优先FF7029保持0的情况下,输出命 令解码电路7024在解码COPY UP2命令时输出的信号,另外在上优 先FF7029保持1的情况下,输出命令解码电路7024在解码COPY UP1 命令时输出的信号。
7027是第四选择器,在左优先FF7030保持0的情况下,输出命 令解码电路7024在解码C0PYLEFT1命令时输出的信号,另外在左 优先FF7030保持1的情况下,输出命令解码电路7024在解码COPY LEFT2命令时输出的信号。7028是第五选择器,在左优先FF7030保持0的情况下,输出命 令解码电路7024在解码C0PYLEFT2命令时输出的信号,另外在左 优先FF7030保持1的情况下,输出命令解码电路7024在解码COPY LEFT1命令时输出的信号。
7029是上优先FF,对表示第一上复制电路7031或第二上复制电 路7032的任意一个被优先使用的值进行保持。另外上优先FF7029在 命令解码电路7024解码了 COPY UP2命令时反转所保持的值。
7030是左优先FF,对表示第一左复制电路7033或第二左复制电 路7034的任意一个被优先使用的值进行保持。另外左优先FF7030在 命令解码电路7024解码了 COPY LEFT2命令时反转保持的值。
7031是第一上复制电路,在从第二选择器7025接收了信号时, 一并接收应复制的字节数,根据所接收的字节数,反复从行緩冲器 7035读取数据并输出已读取的数据。
7032是第二上复制电路,在从第三选择器7026接收了信号时, 一并接收应复制的字节数,根据所接收的字节数,反复从行緩冲器 7035读取数据并输出已读取的数据。
7033是第一左复制电路,在从第四选择器7027接收了信号时, 一并接收应复制的字节数,根据所接收到字节数,反复从行緩冲器 7035读取数据并输出已读取的数据。
7034是第二左复制电路,在从第五选择器7028接收了信号时, 一并接收应复制的字节数,根据所接收的字节数,反复从行緩冲器 7035读取数据并输出已读取的数据。
7035是行緩冲器,作为保持多个行的解码数据的环形存储器来进 行动作,输出保存在第一上复制电路7031、第二上复制电路7032、 第一左复制电路7033或第二左复制电路7034所输出的地址上的数 据,同时将已解码的数据保存在当前地址寄存器7037所输出的地址 上。
7036是原始数据输出电路,接收在命令解码电路7024解码了 RAW命令时,同时被输出的表示原始数据的8位的数据,并输出已接收的数据。7037是当前地址寄存器,输出表示当前将要进行解码的数据位置 的地址,同时每当解码了的数据被保存到行緩冲器7035时就进行计 数增力口。另外,在第一上复制电路7031、第二上复制电路7032、第一左 复制电路7033以及第二左复制电路7034上保持分别表示第一上复制 位置、第二上复制位置、笫一左复制位置以及第二左复制位置的地址, 每当当前地址寄存器7037进行计数增加就同样地进行计数增加。当命令解码电路7024解码COPY UP1命令后,就解码后续的计 数,并将信号输出第二选择器7025和第三选择器7026。然后,根据 上优先FF7029保持的值,从第二选择器7025或第三选择器7026的 任意一方输出信号,根据该信号第一上复制电路7031或第二上复制 电路7032的任意一方进行动作。例如,在上优先FF7029保持的值是0的情况下,当解码COPY UP1命令时第二选择器7025将信号输出到第一复制电路7031,第三 选择器7026不输出信号。第一上复制电路7031将保持在内部的、表 示第 一上复制位置的地址输出到行緩沖器7035,读取保存在行緩冲器 7035中的第 一上复制位置的数据,将所读取的数据作为解码数据输出 到打印引擎514。当前地址寄存器7037输出表示当前位置的地址,行 緩冲器7035在该地址上保存解码数据。接着,分别保持在第一上复 制电路7031、第二上复制电路7032、第一左复制电路7033以及第二 左复制电路7034的内部的,表示第一上复制位置的地址、表示第二 上复制位置的地址、第 一左复制位置的地址和表示第二左复制位置的 地址、以及表示当前地址寄存器7037保持的当前位置的地址进行计 数增加。此动作根据所指定的字节数进行反复。当命令解码电路7024解码COPYUP2命令后,解码后续的计数, 并将信号输出到第二选择器7025和第三选择器7026。然后,根据上 优先FF7029保持的值,从第二选择器7025或第三选择器7026的任 意一方输出信号,根据该信号第一上复制电路7031或第二上复制电路7032的任意一方进行动作。例如,在上优先FF7029保持的值是0情况下,当解码COPY UP2 命令时第三选择器7026将信号输出到第二复制电路7032,第二选择 器7025不输出信号。第二上复制电路7032与上述的第 一上复制电路 7031的动作同样地进行动作,由于上优先FF7029保持的值反转成为 1,故后续的C0PYUP1命令对应于第二上参照位置,另外COPYUP2 命令对应于第一上参照位置。命令解码电路7024在解码了 COPY LEFT 1命令和COPY LEFT2 命令的情况下,也与上述的COPY UP1命令和COPY UP2命令同样 地进行动作。当命令解码电路7024解码RAW命令时,解码后续的8位数据, 并将信号输出到原始数据输出电路7036。原始数据输出电路7036将 接收到的8位数据原封不动地作为解码数据输出到打印引擎514。当 前地址寄存器7037输出表示当前位置的地址,行緩沖器7035将解码 数据保存到该地址。接着,分别保持在第一上复制电路7031、第二上 复制电路7032、第一左复制电路7033以及第二左复制电路7034的内 部的,表示第一上复制位置的地址、表示第二上复制位置的地址、表 示第 一左复制位置的地址和表示第二左复制位置的地址,以及当前地 址寄存器7037保持的表示当前位置的地址进行计数增加。当命令解码电路7024解码EOB命令后,位计数器7023如前所 述进行字节边界对齐的处理,同时将上优先FF7029以及左优先 FF7030详刀^会4匕为^^台值,侈'J^口 0。此外,分别保持在第一上复制电路7031、第二上复制电路7032、 第一左复制电路7033以及第二左复制电路7034的内部的,表示第一 上复制位置的地址、表示第二上复制位置的地址、表示第一左复制位 置的地址和表示第二左复制位置的地址,以及当前地址寄存器7037 保持的表示当前位置的地址,设定为使用基于预先由控制电路515通 过压缩参数指定命令所指定的位置的初始值。另外,由于行緩冲器7035作为环形存储器来进行动作,在分别保持在第一上复制电路7031、第二上复制电路7032、第一左复制电 路7033以及第二左复制电路7034内部的,表示第一上复制位置的地 址、表示第二上复制位置的地址、表示第一左复制位置的地址和表示 第二左复制位置的地址,以及当前地址寄存器7037保持的表示当前 位置的地址为行緩冲器7035的末尾地址的情况下,因计数增加时进 行绕回而保存行緩冲器7035的起始地址。根据以上说明,使用作为本实施形式中的图像编码装置、图像解 码装置来发挥功能的图像处理装置,在参照了编码为较长编码的参照 位置的情况下,由于通过调换参照位置与编码的对应关系,就能够在 以后参照了该参照位置时编码为较短的代码,所以不管数据的周期如 何都能够高效率地进行压缩。另外,在图像数据的周期与抖动显示阵的周期不同的情况下,有 与在关注位置邻近,而且和减色处理时适用于关注位置的演算近似的 演算所适用的位置的相关性高的倾向。由于这样的位置限于少数的位置,另外通过预先检查抖动显示阵、或预先使用各种图像数据来取得 统计就能够进行确定,故通过从这样的位置以及仅间隔抖动显示阵的 周期的位置中作为参照位置预先选择多个位置,不管图像数据的周期 如何都能够有效地进行编码。另外,有图像数据的周期在大范围上是恒定的倾向。因此,在低 优先级的参照位置上数据相一致的情况下,以后在该参照位置的数据 相一致的可能性也高。因此,通过在输出了识别低优先级的参照位置 的较长的代码时,提高该参照位置的优先级今后使用较短的代码来识 别,此后在该参照位置上数据相一致了的情况下输出的编码就变短, 所以与不进行优先级的调换的情况相比,就能够有效地进行编码。另外,虽然在实施实施形式中,调换2个的参照位置的优先级别, 但也可以取代此而调换至少3个的参照位置的优先级别。如以上说明的那样,利用本发明,在对具有周期性的图像、特别 是墙纸等排列有背景图案的图像数据进行编码时,就能够更高速地, 且以更高压缩率来压缩整个图像。另外利用本发明,能够减小对已编码的墙纸等排列有背景图案的 图像的编码进行解码的解码电路的电路规模,且进行无需大量的緩冲 存储器的,就能够以低成本构成的解码。另外如以上详细地进行了说明那样,利用本发明,在与前面的图 像数据序列相 一致的情况下利用该冗余性得到高的压缩率,同时即使 在图像数据序列 一致的部分少的情况下,也能够极力抑止压缩率的降 低。另外如以上详细地进行了说明那样,在本发明中,由于除了关注 位置的左侧以及上方,还参照前一页的相同位置来进行编码,即使是 与左侧以及上方的参照位置的相关性低的图像,在后续的页使用同样 的背景图案的情况等,在编码与前一 页的相关性高的图像时能够高效 率地进行压缩。另外,在本发明中,由于对应该参照的前一页的图像数据进行编 码并保持,与原封不动地保持图像数据的情况相比,就能够用更小容 量的存储器来保持前 一 页的图像数据。另夕卜,根据以上的说明,利用本发明,就能够高效率地特别是以 短的代码来编码图像。
权利要求
1. 一种压缩图像的图像处理装置,其特征在于,包括颜色变换装置,对图像使用抖动矩阵进行颜色变换处理,生成各种颜色的图像数据;以及命令输出装置,对每种颜色的图像数据,比较作为压缩对象的象素数据序列和与该象素数据序列有预定的位置关系的象素数据序列,在输出表示相一致的象素数据序列的长度的命令的同时输出表示该比较内容的命令,生成各种颜色的图像数据的编码数据。
2. —种压缩图像的图像处理装置,其特征在于,包括 颜色变换装置,对图像使用抖动矩阵进行颜色变换处理,生成各种颜色的图像数据;编码装置,压缩上述各种颜色的图像数据并进行编码;以及 输出装置,输出由上述编码装置编码的编码数据; 上述编码装置备有,第l命令输出装置,比4交作为压缩对象的列的象素数据序列,和作 为与该列有预定的位置关系的列的象素数据序列,求得相一致的象素数据序列的长度,作为该相一致的象素数据序列,在输出表示上述比较内 容的命令的同时输出表示上述长度的命令;第2命令输出装置,在上述长度为0的情况下,比较作为压缩对象 的列的象素数据序列,和在该列中有预定的位置关系的象素凝:据序列, 求得相一致的象素数据序列的长度,作为该相一致的象素数据序列,在保存装置,在由上述第l命令输出装置所求出的长度和由上述第2 命令输出装置所求出的长度都为0的情况下,保存作为压缩对象的列的 象素数据序列的 一部分或者全部;第3命令输出装置,在由上述第l命令输出装置所求出的长度和由 上述第2命令输出装置所求出的长度都为0的情况下,比较作为压缩对 象的象素数据和保存在上述保存装置中的象素数据,作为上述作为压缩 对象的象素数据,在输出表示相一致的象素数据在上述保存装置中的位 置的命令的同时输出表示上述比较内容的命令;以及第4命令输出装置,在由上述第l命令输出装置所求出的长度和由 上述第2命令输出装置所求出的长度都为0的情况下,且在由上述第3 命令输出装置输出的比较结果是判断为与作为压缩对象的象素数据相一致的象素数据不存在于上述保存装置的情况下,输出表示作为压缩对象的象素数据的命令;并生成包含由上述第1至第4命令输出装置的一部分或者全部输出 的命令的编码数据。
3. 如权利要求2所述的图像处理装置,其特征在于 上述颜色变换装置,通过对图像使用抖动矩阵,将使用了红、绿、蓝的图像颜色变换成使用了青、品红、黄、黑的图像;上述编码装置,对青、品红、黄、黑各色的图像数据进行编码。
4. 如权利要求2所述的图像处理装置,其特征在于上述第3命令输出装置,在由上述第l命令输出装置所求出的长度 和由上述第2命令输出装置所求出的长度同时为0的情况下,比较作为 压缩对象的象素数据和保存在上述保存装置中的象素数据,作为上述作 为压缩对象的象素数据,在输出表示相一致的象素数据在上述保存装置 中的位置的命令的同时输出表示上述比较内容的命令;将上述相一致的象素数据保存到上述保存装置。
5. 如权利要求2所述的图像处理装置,其特征在于上述第4命令输出装置,在由上述第1命令输出装置所求出的长度 和由上述第2命令输出装置所求出的长度都为0的情况下,且在由上述 第3命令输出装置输出的比较结果是判断为与作为压缩对象的象素数据 相一致的象素数据不存在于上述保存装置的情况下,输出表示作为压缩 对象的象素数据的命令;将作为上述压缩对象的象素数据保存到上述保存装置。
6. 如权利要求2所述的图像处理装置,其特征在于 上述保存装置是高速緩冲存储器,上述第3命令输出装置,作为上述作为压缩对象的象素数据,在输出表示对作为压缩对象的象素数据发 生了高速緩冲存储器命中的上述高速緩冲存储器的位置的命令的同时 输出表示上述比较内容的命令。
7. 如权利要求2所述的图像处理装置,其特征在于 上述输出装置,填补O以使将要输出的编码数据的总位数为8的倍数。
8. 如权利要求2所述的图像处理装置,其特征在于 上述预定的位置关系,是依照上述抖动矩阵的周期的位置关系。
9. 一种对编码数据进行解码的图像处理装置,其特征在于,包括 第1保存装置,保存已解码的象素凄t据序列;第2保存装置,将已解码的象素数据序列移位预定个数进行保存; 第3保存装置,保存包含在上述编码数据中的原始象素数据序列;以及还原装置,确定对在上述编码数据的生成时所进行的、作为压缩对 象的列的象素数据序列和作为与该列有预定的位置关系的列的象素数 据序列的比较结果进行表示的各种命令的内容,依照所确定的内容使用 保存在上述第1保存装置或者第2保存装置或者第3保存装置中的象素 数据来还原图像。
10. 如权利要求9所述的图像处理装置,其特征在于上述第l保存装置是行緩冲器,是具有上述编码数据的生成时的作 为压缩对象的列的象素数据序列和与该列有预定的位置关系的列的象 素序列的间隔部分的大小的环形存储器。
11. 如权利要求9所述的图像处理装置,其特征在于 上述第2保存装置,由移位寄存器和选择器构成,将已解码的象素数据序列移位上述编码数据的生成时的作为压缩对象的列的象素数据 序列和在该列中有预定的位置关系的象素序列的间隔部分。
12. 如权利要求9所述的图像处理装置,其特征在于 上述第3保存装置是高速緩冲存储器。
13. 如权利要求9所述的图像处理装置,其特征在于 上述解码装置,当表示通过在上述编码数据的生成时进行的作为压缩对象的列的象素数据序列和作为与该列有预定的位置关系的列的象 素数据序列的比较所求得的、在各自的象素数据序列中相一致的象素数 据序列的长度以及该比较内容的命令的情况下,读出保存在通过该命 令所确定的上述第l保存装置中的象素数据序列,追加到保存在上述第 1保存装置中的象素数据序列的末尾进行保存,同时保存到上述第2保 存装置的起始位置。
14. 如权利要求9所述的图像处理装置,其特征在于 上述解码装置,当表示通过在上述编码数据的生成时进行的作为压缩对象的列的象素数据序列和在该列中有预定的位置关系的象素数据 序列的比较所求得的、在各自的象素数据序列中相一致的象素数据序列的长度以及该比较内容的命令的情况下,从上述第2保存装置读出通过 该命令所确定的个数的象素数据序列,追加到保存在上述第l保存装置 中的象素数据序列的末尾进行保存,同时保存到上述第2保存装置的起 始位置。
15. 如权利要求9所述的图像处理装置,其特征在于 上述解码装置,当表示通过在上述编码数据的生成时进行的作为压缩对象的列的象素数据序列和保存在预定保存装置中的作为压缩对象 的列的象素数据序列的一部分或者全部的象素数据序列的比较所确定 的、在各自的象素数据序列中相一致的象素数据在上述预定的保存装置 中的位置以及该比较内容的命令的情况下,读出保存在通过该命令所确 定的上述第3保存装置中的象素数据序列,追加到保存在上述第1保存 装置中的象素数据序列的末尾进行保存,同时保存到上述第3保存装置 的起始位置。
16. 如权利要求9所述的图像处理装置,其特征在于 上述解码装置,当表示作为压缩对象的象素数据的命令情况下,将该命令所表示的象素数据追加到保存在上述第1保存装置中的象素数据 序列的末尾进行保存,同时保存到上述第3保存装置的起始位置。
17. —种压缩图像的图像处理方法,其特征在于,包括 颜色变换步骤,对图像使用抖动矩阵进行颜色变换处理,生成各种颜色的图像数据;以及命令输出步骤,对每种颜色的图^象数据,比较作为压缩对象的象素 数据序列和与该象素数据序列有预定的位置关系的象素数据序列,在 输出表示相一致的象素数据序列的长度的命令的同时输出表示该比较 内容的命令,生成各种颜色的图像数据的编码数据。
18. —种压缩图像的图像处理方法,其特征在于,包括 颜色变换步骤,对图像使用抖动矩阵进行颜色变换处理,生成各种颜色的图像数据;编码步骤,压缩上述各种颜色的图像数据并进行编码;以及 输出步骤,输出由上述编码步骤编码的编码数据; 上述编码步骤包括,第l命令输出步骤,比较作为压缩对象的列的象素数据序列和作为 与该列有预定的位置关系的列的象素翁:据序列,求得相一致的象素翁:据序列的长度,作为该相一致的象素数据序列,在输出表示上述比较内容的命令的同时输出表示上述长度的命令;第2命令输出步骤,在上述长度为0的情况下,比较作为压缩对象 的列的象素数据序列和在该列中有预定的位置关系的象素数据序列,求 得相一致的象素数据序列的长度,作为该相一致的象素数据序列,在输 出表示上述比较内容的命令的同时输出表示上述长度的命令;保存步骤,在由上述第l命令输出步骤所求出的长度和由上述第2 命令输出步骤所求出的长度都为0的情况下,将作为压缩对象的列的象 素数据序列的 一部分或者全部保存到预定的保存装置;第3命令输出步骤,在由上述第l命令输出步骤所求出的长度和由 上述第2命令输出步骤所求出的长度都为0的情况下,比较作为压缩对 象的象素数据和由上述保存步骤所保存的象素数据,作为上述作为压缩 对象的象素数据,在输出表示相一致的象素数据序列由上述保存步骤所 保存的位置的命令的同时输出表示上述比较内容的命令;以及第4命令输出步骤,在由上述第l命令输出步骤所求出的长度和由 上述第2命令输出步骤所求出的长度都为0的情况下,且在由上述第3 命令输出步骤输出的比较结果是判断为与作为压缩对象的象素数据相 一致的象素数据没有由上述保存步骤进行保存的情况下,输出表示作为 压缩对象的象素数据的命令;并生成包含由上述第1至第4命令输出步骤的一部分或者全部输出 的命令的编码数据。
19. 一种对编码数据进行解码的图像处理装置所运行的图像处理方 法,所述图像处理装置备有保存已解码的象素数据序列的第1保存装置; 将已解码的象素数据序列移位预定个数进行保存的第2保存装置;以及 保存包含在上述编码数据中的原始的象素数据序列的第3保存装置;其特征在于,确定对在上述编码数据的生成时进行的作为压缩对象 的列的象素数据序列和作为与该列有预定的位置关系的列的象素数据 序列的比较结果进行表示的各种命令的内容,依照所确定的内容使用保 存在上述第l保存装置或者第2保存装置或者第3保存装置中的象素数 据来还原图像。
全文摘要
本发明提供一种压缩图像的图像处理装置和图像处理方法。该图像处理装置包括颜色变换装置,对图像使用抖动矩阵进行颜色变换处理,生成各种颜色的图像数据;以及命令输出装置,对每种颜色的图像数据,比较作为压缩对象的象素数据序列和与该象素数据序列有预定的位置关系的象素数据序列,在输出表示相一致的象素数据序列的长度的命令的同时输出表示该比较内容的命令,生成各种颜色的图像数据的编码数据。能够在对具有周期性的图像、特别是墙纸等排列有背景图案的图像数据进行编码时,就能够更高速地,且以更高压缩率来压缩整个图像。
文档编号G06T9/00GK101282407SQ20081009739
公开日2008年10月8日 申请日期2002年12月5日 优先权日2001年12月6日
发明者坂本阳一 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1