CN100438564C - 点数据处理装置、图像处理系统和图像数据处理装置 - Google Patents
点数据处理装置、图像处理系统和图像数据处理装置 Download PDFInfo
- Publication number
- CN100438564C CN100438564C CNB2005800160758A CN200580016075A CN100438564C CN 100438564 C CN100438564 C CN 100438564C CN B2005800160758 A CNB2005800160758 A CN B2005800160758A CN 200580016075 A CN200580016075 A CN 200580016075A CN 100438564 C CN100438564 C CN 100438564C
- Authority
- CN
- China
- Prior art keywords
- pixel group
- point
- data
- value
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
分别把多个像素汇总为各像素群,决定代表该像素群的像素群灰度值。接着,参照把像素群灰度值和代码值按分配给像素群的各标识符(分类编号)排列的对应关系(编码用表),把像素群灰度值代码化。然后,通过参照把代码值、关于像素群内的各像素的点形成的有无与各分类编号对应的译码用表,从各像素群的代码值,关于各像素,决定点形成的有无后,根据决定的点形成的有无,形成点。使用数据量小的代码值,能迅速进行数据的生成和交换。能从代码值立刻决定点形成的有无,所以能迅速输出高图像质量的图像。
Description
技术领域
本发明涉及根据图像数据处理图像的技术,具体而言,涉及通过把由多个像素构成的像素群作为单位进行处理,处理应该在打印介质上形成的点的数据的技术。
背景技术
在打印介质或液晶画面等各种输出介质上形成点,输出图像的图像输出装置作为各种图像仪器的输出装置广泛应用。在这些图像输出装置中,以细分为称作像素的小的区域的状态处理图像,在这些像素中形成点。在像素中形成点时,当然如果关于像素一个一个观察,就只能取得是否形成点的任意状态。可是,如果以具有某程度的宽度的区域观察,在形成的点的密度上就能产生疏密,通过改变点的形成密度,能输出多灰度的图像。
例如,在打印用纸上形成黑墨水的点时,密密地形成点的区域看起来暗,相反,稀疏形成点的区域看起来明亮。此外,在液晶画面上形成亮点的点时,密密地形成点的区域看起来明亮,稀疏形成点的区域看起来暗。因此,如果恰当控制点的形成密度,就能输出多灰度的图像。对要输出的图像进行给定的图像处理,产生用于取得适当的形成密度地控制点的形成的数据。
近年,对这些图像输出装置要求输出图像的高图像质量和大图像化。对于高图像质量的要求,把图像分割为更细的像素是有效的。如果减小像素,则像素上形成的点变得不明显,所以能提高图像质量。此外,对于大图像化的要求,通过增加像素数,对应。当然,通过增大各像素,也能增大输出图像,但是这引起图像质量的下降,所以对于大图像化的要求,增加像素数是有效的。
如果构成图像的像素数增加,图像处理就花费时间,难以迅速输出图像。因此,提出通常能迅速执行图像处理的技术(特开2002-185789号公报)。
可是,即使迅速进行图像处理,在图像数据的转送或处理完毕的图像数据的转送上也要花费时间,所以在把图像输出迅速化的效果上自身就存在界限。
此外,近年,还存在想用数码相机拍摄的图像的数据对打印装置等图像输出装置直接供给,立刻输出图像的要求。这时,无法使用个人电脑等具有高处理能力的图像处理装置,进行图像处理。因此,有必要进行简单的图像处理,以便能用数码相机等图像摄影装置或图像输出装置的任意一个或两者分担执行。
发明内容
本发明是为了解决以往技术中的上述的课题而提出的,其目的在于,提供维持充分的输出图像质量的同时,能以高速执行图像处理和数据转送的简单的图像处理技术。
为了解决上述的课题的至少一部分,本发明的图像处理系统采用以下的结构。
即一种图像处理系统,具有关于表示由给定灰度数表现的图像的图像数据以由多个像素构成的像素群作为单位进行处理的图像数据处理装置、接收该处理的结果并且变换为应该在打印介质上形成的点的数据的点数据处理装置,其中:
所述图像数据处理装置包括:
按照分配给所述像素群的标识符的种类准备代表所述像素群的灰度值即像素群灰度值和给定的代码值的对应关系的代码值准备部件;
从表示所述图像的图像数据取出相当于所述像素群的像素的汇总,按各像素群决定所述像素群灰度值的像素群灰度值决定部件;
按所述各像素群,根据所述决定的像素群灰度值,参照基于分配给该像素群的标识符而决定的所述对应关系,取得所述代码值的编码部件;
输出按所述各像素群取得的代码值的代码值输出部件;
所述点数据处理装置包括:
准备把表示关于所述像素群内的各像素的点形成的有无的输出点配置和取给定范围的值的代码值与所述标识符对应排列的译码用表的译码准备部件;
接收所述各像素群的所述代码值的代码值接收部件;
根据接收的代码值和分配给所述像素群的标识符,参照所述译码用表,取得所述输出点配置的译码部件;
按照该取得的输出点配置,输出表示应该在打印介质上形成的点的配置的点数据的点数据输出部件。
此外,与所述图像处理系统对应的本发明的图像处理方法,关于表示由给定灰度数表现的图像的图像数据,以由多个像素构成的像素群作为单位进行处理后,接收该处理的结果,变换为应该在打印介质上形成的点的数据的点数据,其中:
按照分配给所述像素群的标识符的种类准备代表所述像素群的灰度值即像素群灰度值和给定的代码值的对应关系;
准备把表示关于所述像素群内的各像素的点形成的有无的输出点配置和取给定范围的值的代码值与所述标识符对应排列的译码用表;
从表示所述图像的图像数据取出相当于所述像素群的像素的汇总,按各像素群决定所述像素群灰度值;
按所述像素群,根据所述决定的像素群灰度值,参照基于分配给该像素群的标识符而决定的所述对应关系,取得所述代码值;
根据接收的代码值和分配给所述像素群的标识符,参照所述译码用表,取得所述输出点配置;
按照该取得的输出点配置,输出表示应该在打印介质上形成的点的配置的点数据。
在有关的本发明的图像处理系统和图像处理方法中,对构成图像的像素按给定的多个汇总的各像素群,决定代表该像素群的灰度值即像素群灰度值后,把取得的像素群灰度值代码化。这里,作为像素群,可以是汇总相同数量的像素,但是例如,也可以按照给定的图案或给定的规则,把不同的个数的像素分别汇总。此外,构成像素群的多个像素可以连续,也可以包含分离的像素。在决定像素群灰度值时,能根据像素群内包含的各像素的图像数据决定。接着,通过参照预先决定的对应关系,按各像素群进行像素群灰度值的代码化。这时参照的对应关系中,像素群灰度值和把该像素群灰度值代码化而作为结果取得的代码值对应,按照分配给像素群的标识符的数准备。须指出的是,作为对应关系,如果像素群灰度值和像素群决定,如果与它对应的代码值决定1个,就能取各种形式,例如能取对应表或关系式等形式。或者,如后所述,代码值是通过把像素群灰度值多值化而取得的多值化结果值时,能采取存储为了决定多值化结果值而使用的阈值的形式。从这样为各像素群取得的代码值,参照预先准备的译码用表,能决定表示关于像素群内的各像素的点形成的有无的输出点配置。须指出的是,作为译码用表,如果代码值和分配给像素群的标识符决定,如果按照它,像素群的输出点配置决定,就能采用各种形式,例如能采用对应表或函数式的形式。须指出的是,输出点配置可以不规定为一个,决定多个输出点配置,使用其中任意一个,或采用使用随机数的模糊函数,用适当决定的结构,也没有问题。然后,为了按照取得的输出点配置形成点,输出点数据。点数据可以在处理中使用,在实际在打印介质上形成点时使用,输出图像。例如,如果在打印介质或液晶面等介质上形成点,就对这些介质上输出图像。形成的点可以是一种,可以形成单点的灰度值不同的多个种类的点。
后面描述细节,但是如果与关于图像的全部像素,表示点形成的有无的数据相比,能用非常少的数据量表现代码值。因此,能快速交换数据,能迅速输出图像。在把像素群的像素群灰度值代码化时,通过参照预先准备的对应关系,进行代码化,能迅速把像素群灰度值代码化。
在把像素群灰度值代码化时参照的对应关系中,按分配给像素群的各标识符准备像素群灰度值和代码值。因此,与只把像素群灰度值和代码值对应时相比,能减少代码值能取的个数。如果能取的个数减少,就能减少为了表现代码值所需的数据量,所以能迅速进行数据的收发,能迅速输出图像。
此外,通过从像素群的代码值参照译码用表,能立刻决定关于的输出点配置。因此,能极迅速地决定点形成的有无,能迅速输出图像。后面描述详细的理由,但是如果和代码值决定,就能适当决定关于像素群的输出点配置。因此,能迅速输出高图像质量的图像。
从像素群灰度值取得代码值的处理、决定关于像素群的输出点配置的处理成为参照预先设定的对应关系的简单处理。因此,为了多值化,不需要进行多个比较复杂的分支处理的计算机等具有高级的处理能力的仪器。在无法以高速进行条件判断的仪器中,也能以充分实用的速度处理。因此,不通过计算机,直接把图像数据提供给图像输出装置,在图像输出装置的内部对图像数据进行这些图像处理,能恰当输出图像。
从这样的观点,能把本发明作为图像数据处理装置和点数据处理装置一体化的把握。即能考虑把图像数据处理装置和点数据处理装置作为单一的装置构成,一体构成代码值输出部件和所述代码值接收部件的装置。
采用把图像数据处理装置和点数据处理装置收藏在不同的筐体中,通过有线或无线,直接或经由网络连接两装置之间的结构,也没有问题。
如上所述,像素群的代码值是比按各像素表示点形成的有无的数据小很多的数据,所以如果是代码值,就能迅速交换数据,能迅速输出图像。此外,只通过参照把像素群灰度值和代码值与各像素群对应的第一对应关系,就能求出代码值。通过参照第二对应关系,能从像素群的代码值立刻求出关于像素群的输出点配置。能迅速进行把像素群灰度值代码化的处理、从取得的代码值决定像素群的输出点配置的处理,所以能迅速输出图像。
在上述的图像处理系统和图像处理方法中,作为像素群的代码值,使用把像素群灰度值多值化而取得的多值化结果值,进行各处理。即在为了把像素群灰度值代码化而参照的第一对应关系中,把像素群灰度值和对于该像素群灰度值的多值化结果值与各像素群对应设定。此外,在为了决定像素群的输出点配置而参照的第二对应关系中,把像素群的输出点配置和多值化结果值与各像素群对应设定。而且,通过参照第一对应关系,把像素群灰度值变换为多值化结果值,接着参照第二对应关,从取得的多值化结果值决定关于像素群的输出点配置。
如果是像素群灰度值的多值化,就能适应把像素群灰度值与给定的阈值比较等众所周知的方法,简便地执行。此外,取得的多值化结果值具有随着像素群灰度值增加,多值化结果值也增加的性质,所以对于像素群灰度值,选择适当的多值化结果值,在第一对应关系中设定,或者对于多值化结果值,适当决定像素群的输出点配置,在进行设定为译码用表的作业时,没有混乱。因此,能简便并且恰当地进行译码用表的设定作业。
本发明不仅能作为上述的图像处理系统把握,还能作为点数据处理装置把握。即本发明的点数据处理装置生成应该在打印介质上形成的点数据,包括:
准备关于分别汇总多个成为形成点的单位的像素的像素群,把表示关于像素群内的各像素的点形成的有无的和取给定范围的值的代码值对应,仅按分配给像素群的标识符的数量配置排列的译码用表的译码准备部件;
接收把以给定灰度数表现图像的图像数据以所述像素群为单位进行代码化而取得的代码值的代码值接收部件;
根据接收的代码值和分配给该像素群的标识符,参照所述译码用表,取得所述输出点配置的译码部件;
按照该取得的输出点配置,输出表示应该在打印介质上形成的点的配置的点数据的点数据输出部件。
此外,与所述点数据处理装置对应的本发明的点数据处理方法生成应该在打印介质上形成的点数据,其中:
准备关于分别汇总多个成为形成点的单位的像素的像素群,把表示关于像素群内的各像素的点形成的有无的和取给定范围的值的代码值对应,仅按分配给像素群的标识符的数量配置排列的译码用表;
接收把以给定灰度数表现图像的图像数据以所述像素群为单位进行代码化而取得的代码值;
根据接收的代码值和分配给该像素群的标识符,参照所述译码用表,取得所述输出点配置;
按照该取得的输出点配置,输出表示应该在打印介质上形成的点的配置的点数据。
在有关的点数据处理装置及其方法中,如果收到像素群的代码值,就通过从代码值参照译码用表,决定关于该像素群的输出点配置,根据决定结果,生成控制数据,输出。
代码值的数据量小,能迅速接收。因此,如果从代码值决定关于像素群的输出点配置,就能迅速生成数据。此外,通过参照译码用表,能从代码值立刻决定点形成的有无。因此,与能迅速接收代码值相辅相成,能迅速输出控制数据。
这样的点数据处理装置的译码用表能作为把代码值和标识符作为参数存储的二维的表构成。根据有关的结构,能容易取得输出点配置。
此外,译码用表从按照给定的特性配置值不同的阈值的抖动矩阵中,一边依次变更取出的位置,一边与像素群中包含的像素对应,选择多个阈值,对按照取出该阈值的位置所对应的像素群所分配的各标识符,按照所述选择的阈值的配置,把代码值和输出点配置对应。根据有关的结构,输出的点的配置发现抖动矩阵的特性,所以能容易设计输出点配置。须指出的是,作为这样的抖动矩阵,能采用包含的阈值的个数比的灰度数大的大区的抖动矩阵。此外,作为抖动矩阵,也容易采用具有蓝噪声屏蔽或绿噪声屏蔽等特性的抖动矩阵。
作为根据这样输出的点数据,进行直到实际形成点的处理的结构例如打印机,能实现本发明的点数据处理装置。
在本发明的点数据处理装置及其方法中,能把排列输出点配置和代码值的标识符作为与图像的像素群的位置对应的分类编号定义。译码部件可以按照接收代码值的像素群的图像中的位置,判别分类编号,参照译码用表,没必要从外部接收标识符。译码部件如果收到代码值,就根据对像素群赋予的分类编号和收到的代码值,关于像素群内的各像素,决定表示点形成的有无的输出点配置,适当决定点形成的有无。因此,能输出高图像质量的图像。须指出的是,像素群的分类编号可以预先对像素群赋予。
在决定像素群的输出点配置时,根据代码值和分类编号决定,所以不怕跨多个像素群,以一定的图案形成。即跨多个像素群,相同的代码值重复,或者跨多个像素群,代码值以相同的图案重复,如果分类编号不同,在各像素群取得的输出点配置也不同。因此,以一定图案形成点,图像质量也不会恶化,总能以稳定的图像质量输出图像。
在这样的图像输出装置中,对像素群赋予的分类编号为100种以上。
如果分类编号只有数个,则即使对像素群赋予从这几个分类编号中选择的编号,分类编号的排列的组合也决不会十分多。因此,即使按照分类编号把像素群的代码值代码化,根据情况,在点的发生图案中有可能表现一定的规则性。为了避免这样的危险,希望分类编号的种类多,但是在经验上,分类编号的种类如果有100种以上,就能把点的发生中出现一定图案的事实抑制在实用上的问题不发生的程度。
或者在这样的图像输出装置中,汇总为像素群的像素数和赋予该像素群的分类编号的种类数的相乘值设定在1000以上。
如果像素群中包含的像素数多,则在1个像素群内,点的发生图案能取多个图案。因此,分类编号的种类不十分多时,如果像素群中包含的像素数多,就能补充它,抑制在点的发生图案中表现一定的规则性。根据经验,如果它们的相乘值变为1000以上地选择分类编号的种类和像素群中包含的像素数,就能抑制在点的发生出现一定的图案,能避免发生实用上的问题。
此外,在这样的点数据处理装置中,作为译码用表,存储以下的对应关系。即表示各像素的点形成的有无的值存储以与像素群内的像素位置对应的给定顺序排列的数据、代码值与各像素群关联的对应关系。
如果以这样的形式存储译码用表,就能根据表示点形成的有无的值的排列,表示关于内的各像素的点形成的有无。译码用表把像素群的输出点配置和代码值关联,所以通过采用这样的形式,能简化译码用表。因此,不仅能迅速参照对应关系,还能减少存储译码用表所必要的数据量。
译码用表能以可判别的形式准备使用对各标识符公共决定的点发生的步骤决定所述输出点配置的第一种代码值、与所述步骤无关地决定输出点配置的第二种代码值。这时,译码部件根据收到的代码值,判别代码值是第一种代码还是第二种代码值,按照代码值的种类,决定输出点配置。据此,能提高收益译码用表的点配置的自由度。
此外,根据该代码值和给定阈值的大小,判断收到的代码值是第一种代码值还是第二种代码值时,适合简化结构。
在这样的点数据处理装置中,译码准备部件通过能表现所述像素群内形成的点数的组合的种类数的位数的数据表现所述第一种代码值,能把第二种代码值与所述给定位数的数据能表现的第一种代码值对于所述种类的数,变为剩余的部分对应。据此,能高效利用表示代码值的给定位数的数据。假如第一种代码值由8位的数据表示,如果点的组合是165,则不增加数据就能准备256~165即90个第二种代码值。
译码准备部件准备的所述第一种代码值被规定为表示按照所述像素群内对所述各标识符决定的顺序,应该形成的点的个数的值,所述第二种代码值能规定为与所述像素群内应该形成的点的位置对应的代码值。
此外,在这样的点数据处理装置中,按以下决定像素群的输出点配置。首先,判断收到的代码值是否第一种代码。然后,在代码值判读为第一种代码时,从代码值生成以下的中间数据。即像素群中包含的像素数为N,像素群中形成的点的个数为M时,生成由意味着形成点的M个连续的数据、意味着不形成点的(N-M)个连续的数据构成的中间数据。接着,从取得的中间数据中读出与像素的顺序对应的位置的数据,决定关于像素群的输出点配置。
代码值表示像素群内应该形成的点的个数时,如果这样把代码值变换为中间数据,则只提高从取得的中间数据中读出相应的位置数据,就能简便并且迅速地决定关于像素群的输出点配置。
此外,在有关的点数据处理装置中,如果着眼于能减少为了决定点形成的有无而应该存储的信息,本发明代替接收各像素群的代码值,也能作为根据图像数据,输出图像的图像输出装置把握。即根据图像数据,决定像素群的像素群灰度值,把取得的像素群灰度值代码化。接着,通过比较代码值和给定的阈值,判断该代码值是否表示在所述像素群内应该形成的点的个数。然后,在代码值表示在所述像素群内应该形成的点的个数时,决定该像素群内在各像素形成点的像素的顺序,根据该点的个数和确定的顺序,决定关于像素群的输出点配置。通过按照这样决定的输出点配置形成点,能作为输出图像的图像输出装置把握。
根据这样的图像输出装置,从很少信息能决定像素群的输出点配置,所以能降低图像输出装置中应该搭载的存储容量,所以是希望的。
在本发明的点数据处理装置及其方法中,通过参照译码用表,决定关于各种点的输出点配置,能输出高图像质量的图像。此外,能形成多个种类的点时,按点的各种表示关于各像素的点形成的有无的数据无论怎样,数据量都增大,所以数据交换花费时间。存在点的种类越多,判断点形成的有无所需的时间变长的倾向,难以迅速输出图像。而如果供给各像素群的代码值,在点的种类增多时,能迅速供给数据,通过从代码值参照译码用表,能立刻决定关于各种点的输出点配置,能迅速输出图像。
关于构成上述的图像处理系统的图像数据处理装置,通过考虑以下的结构,能作为本发明的一个形式把握。即本发明的图像数据处理装置把由给定灰度数表现的图像的图像数据以由多个像素构成的像素群作为单位进行处理,包括:
准备把代表所述像素群的灰度值即像素群灰度值和用于确定打印介质上形成的点的配置的代码值的对应关系仅按分配给所述像素群的标识符的数量配置排列的编码用表的代码值准备部件;
从表示所述图像的图像数据取出相当于所述像素群的像素的汇总,按各像素群决定所述像素群灰度值的像素群灰度值决定部件;
对所述各像素群,根据所述决定的像素群灰度值和分配给该像素群的标识符,参照所述编码用表,取得所述代码值的编码部件;
输出按所述各像素群取得的编码代码值的代码值输出部件。
有关的结构与本发明的点数据处理装置对应,具有从像素群灰度值和标识符直接取得代码值的编码用表。因此,能极容易并且迅速地取得代码值。须指出的是,作为编码用表中排列的给定的代码值,可以准备按各标识符预先决定的点的发生步骤所对应的第一种代码值、像素群灰度值为给定值的范围时与该步骤无关地决定的输出点配置所对应的第二种代码值。据此,并不一定局限于一个步骤,能产生适当设定点的配置代码值。图像数据处理装置的发明能作为对应的图像数据处理方法把握。
本发明还能作为使计算机读入用于实现上述的图像处理方法、点数据处理方法或图像数据处理方法的程序,使用计算机实现的程序产品把握。
附图说明
下面简要说明附图。
图1是以打印系统为例,用于说明本发明的概要的说明程图。
图2是表示作为本实施例的图像处理装置的计算机的构成的说明图。
图3是表示本实施例的彩色打印机的概略结构的说明图。
图4是表示墨水喷出头的喷墨喷嘴的排列的说明图。
图5a和图5b是表示通过控制墨滴的喷出,形成尺寸不同的点的原理的说明图。
图6是表示实施例1的图像打印处理的全体流程的程序流程图。
图7表示由实施例1的图像打印处理进行的多值化结果值生成处理的流程的程序流程图。
图8a和图8b是表示决定像素群的分类编号的方法的说明图。
图9是在概念上表示实施例1的多值化结果值生成处理中参照的编码用多值化表的说明图。
图10是表示随着像素群灰度值增加,多值化结果值阶段性增加的样子的说明图。
图11是表示实施例1的点形成的有无决定处理的流程的程序流程图。
图12是在概念上表示实施例1的点形成的有无决定处理中参照的译码用变换表的说明图。
图13是表示代码化的个数数据和各代码数据表示的各种点的个数的对应关系的说明图。
图14a~图14c是表示实施例1的点形成的有无决定处理中参照的顺序值矩阵的说明图。
图15是在概念上表示一边参照顺序值矩阵,一边根据点个数的数据,决定在像素群内形成各种点的像素位置的样子的说明图。
图16是在概念上表示抖动矩阵(dither matrix)的一部分的说明图。
图17是在概念上表示一边参照抖动矩阵,一边判断关于各像素的点形成的有无的样子的说明图。
图18a~18c是表示用于决定各像素群的分类编号的考虑方法的说明图。
图19a~19d是表示计算像素群的分类编号的方法的说明图。
图20是表示从着眼像素群的坐标值的2进制显示求出分类编号的方法的说明图。
图21是表示发展抖动法,按各像素,能决定大中小各点的形成的有无的半色处理的流程的程序流程图。
图22是在概念上表示把图像数据的灰度值变换为关于大中小各点的密度数据时参照的点密度变换表的说明图。
图23是在概念上表示关于像素群内的各像素,判断大中小各点形成的有无的样子的说明图。
图24是表示设定多值化表的处理流程的程序流程图。
图25是表示设定变换表的处理流程的程序流程图。
图26a~图26c是表示设定顺序值矩阵的方法的说明图。
图27是在概念上表示在实施例1的点形成的有无决定处理中,从多值化结果值决定大中小各点形成的有无的处理的大致流程的程序流程图。
图28是在概念上表示蓝噪声屏蔽、绿噪声屏蔽中设定的阈值的空间频率特性的说明图。
图29a~图29c是表示从图像上的像素群的位置决定分类编号的方法的说明图。
图30是表示为了决定分类编号,从像素群的坐标值(i,j)求出抖动矩阵上的位置的方法的说明图。
图31是在概念上表示变形例的多值化结果值生成处理中参照的阈值表的说明图。
图32是表示变形例的点形成的有无处理的流程的程序流程图。
图33是表示把表示点个数的代码数据和中间数据对应的对应表的说明图。
图34是表示通过从中间数据中读出与顺序值对应的地方的数据,决定点形成的有无的样子的说明图。
图35是在概念上表示实施例2的点形成的有无决定处理中参照的变换表的说明图。
图36a和图36b是表示实施例2的变换表中设定的点数据的数据构造的说明图。
图37是表示实施例2的点形成的有无决定处理的流程的程序流程图。
图38a~图38c是在概念上表示根据抖动矩阵产生点时受到的制约的说明图。
图39是在概念上表示实施例3中用于使不受基于抖动矩阵的制约的点发生成为可能的数据变换方法的说明图。
图40是在概念上表示通过8位的个数数据,表示点个数的组合与点数据的样子的说明图。
图41是在概念上表示实施例3中,为了从个数数据取得点数据而参照的点图案表的说明图。
图42是在概念上表示实施例3的把多值化结果值变换为表示点个数的个数数据和表示点数据的个数数据的样子的说明图。
图43是表示通过更换个数数据的一部分,能不受抖动矩阵的制约地产生点的样子的说明图。
图44是表示实施例3的点形成的有无决定处理的流程的程序流程图。
图45是在概念上表示实施例3的点形成的有无决定处理中参照的变换表的说明图。
图46是表示实施例3的变形例中增加像素群多值化级数的样子的说明图。
图47是在概念上表示实施例3的变形例中修正多值化结果值和个数数据的对应关系的样子的说明图。
图48是表示通过增加像素群的多值化级数,能不受抖动矩阵的制约地产生点的理由。
图49是在概念上表示实施例4中,不受抖动矩阵的制约地产生点改善图像质量的说明图。
图50是表示实施例4中,设定像素群灰度值和多值化结果值的对应关系的样子的说明图。
图51是在概念上表示实施例4中,为了把像素群灰度值代码化而参照的编码用表的说明图。
图52是表示实施例4的译码处理中参照的译码用表的说明图。
图53是在概念上表示实施例4的译码处理中参照的译码表的说明图。
具体实施方式
以下,为了更明确地说明本发明的作用和效果,按照以下的顺序,说明本发明的实施例。
A.实施例的概要:
B.装置结构:
C.实施例1的图像打印处理的概要:
C-1.多值化结果值生成处理的概要:
C-2.点形成的有无决定处理的概要:
C-3.抖动法的概要:
C-4.用于决定分类编号的考虑方法
C-5.多值化表的设定方法
C-6.变换表的设定方法
C-7.顺序值矩阵的设定方法
C-8.从多值化结果值能适当决定点形成的有无的原理
C-9.从像素群的位置决定分类编号的方法
C-10.从像素群的位置决定分类编号的方法
D.实施例2:
D-1.实施例2的点形成的有无决定处理的原理
D-2.实施例2的点形成的有无决定处理
E.实施例3
E-1.改善图像质量的原理
E-2.实施例3的点形成的有无决定处理
E-3.实施例3的变形例
F.实施例4
F-1.改善图像质量的原理
F-2.实施例4的图像打印处理
A.实施例的概要:
在进入实施例的详细说明之前,一边参照图1,一边说明实施例的概要。图1是以打印系统为例,说明本发明的概要的说明图。本打印系统由作为图像处理装置的计算机10、作为图像输出装置的打印机20等构成,如果对计算机10加载给定的程序,执行,则计算机10和打印机20等作为全体,能作为一体的图像输出系统起作用。打印机20在打印介质上形成点,打印图像。计算机10通过对要打印的图像的图像数据实施给定的图像处理,打印机20生成用于按各像素控制点的形成的数据,提供给该打印机20。
在一般的打印系统中,如下打印图像。首先,用计算机进行给定的图像处理,把图像数据变换为按各像素表示点形成的有无的数据。接着,把取得的数据提供给打印机,在打印机,按照提供的数据,形成点,从而打印图像。这里,如果要打印的图像的像素数多,则伴随着它,图像处理所需的时间增加,难以迅速打印图像。此外,伴随着像素数增多,按各像素表示点形成的有无的数据的数据量增加,所以用于从计算机向打印机输出的时间变长,这就造成打印所需的时间相应地增加。
鉴于这样的点,在图1所示的打印系统中,按以下那样打印图像。首先,在计算机10中,把多个构成图像的像素汇总,构成像素群,关于各像素群,决定代表像素群的灰度值即像素群灰度值。接着,通过把像素群灰度值代码化,生成代码值。在代码化时,取得对各像素群赋予的分类编号,参照按各标识符(以下称作分类编号)把像素群灰度值和代码值对应的对应关系(以下,在实施例中称作“第一对应关系”),进行。须指出的是,作为代码化的一个形式,通过把像素群灰度值多值化,取得多值化结果值。如果是多值化,就能使用众所周知的各种方法,简便实施。
在打印机20,如果收到关于各像素群的点值,就决定关于像素群内的各像素的点形成的有无的数据(像素群的输出点配置)。一边参照译码用表(以下,在实施例2中称作第二对应关系),一边根据点形成的有无决定模块,进行点形成的有无。根据这样取得的点形成的有无的决定结果,点形成模块形成点,从而打印图像。
这里,如果与按各像素表示点形成的有无的数据相比,各像素群的代码值能是十分小的数据量。因此,代替从计算机10对打印机20供给按各像素表示点形成的有无的数据,如果供给各像素的代码值,就能迅速转送数据。
此外,代码值在计算机10内按如下生成。首先,在像素群灰度值决定模块中决定像素群灰度值。在决定像素群灰度值时,例如可以根据像素群内的各像素的图像数据决定。而在第一对应关系存储模块中,按像素群的各分类编号存储把像素群灰度值和代码值对应的第一对应关系。这里,像素群的分类编号可以按照图像中的位置把各像素群分类为多种,设定,此外,图像总是分割为相同时,对各像素群预先赋予适当的分类编号。也能简便地使用随机数随机赋予分类编号。代码化模块如果收到像素群的像素群灰度值,就从第一对应关系存储模块中,参照与像素群对应的对应关系,把像素群灰度值变换为代码值。
一边参照对应关系,一边生成代码值,所以能极迅速把像素群灰度值代码化。因此,与能迅速向打印机20供给生成的代码值相辅相成,即使是像素多的图像,也能迅速打印图像。此外,如果参照对应关系,把像素群灰度值代码化,就能用极简单的处理生成代码值。因此,为了把像素群灰度值代码化,即使不使用计算机10那样的具有高级处理能力的仪器,也能在打印机20或数码相机的内部取得代码值。通过参照第二对应关系,从代码值立刻能取得像素群的输出点配置,所以能迅速决定点形成的有无。在参照对应关系的简单处理中,能决定输出点配置,所以即使不使用计算机10那样的具有高级处理能力的仪器,也能迅速决定像素群的输出点配置即各像素的点形成的有无。以下,通过在例子中使用这样的打印系统,详细说明本发明的各种实施例。
B.装置结构:
图2是表示作为本实施例的图像处理装置的计算机100的结构的说明图。计算机100是以CPU102为中心,用总线116相互连接ROM114或RAM106等,构成的众所周知的计算机。
在计算机100上连接用于读入软盘124或光盘126等的数据的盘控制器DDC109、用于与外围设备进行数据接受的外围设备接口PIF108、用于驱动CRT114的视频接口VIF112。在PIF108连接后面描述的彩色打印机200、硬盘118等。此外,如果在PIF108连接数码相机120、彩色扫描仪122等,就能打印由数码相机120、彩色扫描仪122取得的图像。此外,如果安装网络接口卡NIC110,就能把计算机100与通信线路300连接,取得通信线路上连接的存储装置310中存储的数据。
图3是表示本实施例的彩色打印机200的概略结构的说明图。彩色打印机200是能形成青色、洋红色、黄色、黑色等4色墨水的点的喷墨打印机。当然,还能使用能形成加上这4色墨水,还包含染料或颜料浓度低的青色墨水(淡青色)、染料或颜料浓度低的洋红色(淡洋红色)墨水的合计6色的墨点的喷墨打印机。须指出的是,以下根据情况,有时把青色墨水、洋红色墨水、黄色墨水、黑色墨水、淡青色墨水、淡洋红色墨水分别称作C墨水、M墨水、Y墨水、K墨水、LC墨水、LM墨水。
彩色打印机200如图所示,由驱动滑架240上搭载的打印头241并且进行墨水的喷出和点形成的机构、通过滑架电机230使滑架240在滚筒236的轴向往返移动的机构、由纸输送电机235输送打印用纸P的机构、控制点的形成或滑架240的移动以及打印用纸的输送的控制电路260等构成。
在滑架240上安装收藏K墨水的墨盒242、收藏C墨水、M墨水、Y墨水等各种墨水的墨盒243。如果在滑架240上安装墨盒242、243,墨盒内的各墨水就通过未图示的导入管,提供给打印头241的下表面上设置的各色的墨水喷出头244~247。
图4是表示墨水喷出头244~247的喷墨嘴Nz的排列的说明图。如图所示,在墨水喷出头的底面形成喷出C、M、Y、K的各色墨水的4组喷嘴列,1组喷嘴列的48个喷嘴Nz以一定的喷嘴间隔k排列。
用总线相互连接CPU、ROM、RAM、PIM(外围设备接口),构成控制电路260。控制电路260通过控制滑架电机230和纸输送电机235的动作,控制滑架240的主扫描动作和副扫描动作,并且根据从计算机100供给的打印数据,进行从各喷嘴在适当的定时喷出墨滴的控制。在控制电路260的控制下,通过在打印介质上的适当位置形成各色的墨点,彩色打印机200能打印彩色图像。
此外,本实施例的彩色打印机200通过控制喷出的墨滴的尺寸,能控制墨点的尺寸。以下说明彩色打印机200形成尺寸不同的墨点的方法,但是作为准备,首先说明喷出各色墨水的喷嘴的内部构造。
图5a是表示喷出墨水的喷嘴的内部构造的说明图。在各色的墨水喷出头244~247上设置多个这样的喷嘴。如图所示,在各喷嘴设置墨水通路255、墨室256、墨室上的压电元件PE。如果在控制滑架240上安装墨盒242、243,墨盒内的墨水就经由墨通道257提供给墨室256。压电元件PE如众所周知那样,是如果作用电压,结晶构造就变形,能极高速地进行电-机械能量的变换的元件。在本实施例中,在压电元件PE的两端设置的电极之间作用给定波形的电压,使墨室256的侧壁变形。结果,墨室256的容积减少,相当于容积的减少部分的墨水成为墨滴lp,从喷嘴Nz喷出。墨滴lp在滚筒236上安装的打印用纸P上渗透,在打印用纸上形成墨点。
图5b是表示通过控制压电元件PE上作用的电压波形,变更喷出的墨滴的尺寸的原理的说明图。为了从喷嘴喷出墨滴lp,在压电元件PE上作用负电压,从墨通道257把墨水吸入墨室256内,然后在压电元件PE上作用正电压,减少墨室容积,使墨滴lp喷出。这里,如果墨水的喷出速度适当,就吸入相当于墨室容积的变化量的墨水,但是如果吸引速度过快,在墨通道257和墨室256之间存在通路阻力,来自墨通道257的墨水的流入来不及。结果,墨水通路255的墨水倒流到墨室内,变为喷嘴附近的墨水界面大幅度后退的状态。图5中用实线表示的电压波形a表示以适当的速度吸引墨水的波形,用虚线表示的电压波形b表示用比适当的速度大的速度吸引的波形的一个例子。
在对墨室256内供给充分的墨水的状态下,如果对压电元件PE外加正电压,相当于墨室256的容积减少的体积的墨滴lp就从喷嘴Nz喷出。而如果在墨水的供给量不足,墨水界面大幅度后退的状态下作用正电压,喷出的墨滴就变为小的墨滴。在本实施例的打印机200中,控制墨滴的喷出前作用的负电压波形,变更墨水的吸引速度,就能控制喷出的墨滴的尺寸,能形成大点、中点、小点等3种墨点。
当然,并不局限于3种,也能形成其他种类的点。可以使用一次喷出多个微细的墨滴,控制喷出的墨滴数的方法,控制打印用纸上形成的墨点的尺寸。如果这样控制墨滴的尺寸,按照要打印的图像的区域,分开使用不同尺寸的墨点,能打印更高图像质量的图像。
须指出的是,对从各色的喷墨头喷出墨滴的方法能应用各种方法。即能使用应用压电元件喷出墨滴的方式、用墨水通路中配置的加热器在墨水通路内产生气泡,喷出墨滴的方法。此外,代替喷出墨滴,还能使用:利用热转写等的现象,在打印用纸上形成墨点的方式或利用静电使各色的粉末附着在打印介质上的方式的打印机。
具有以上的硬件结构的彩色打印机200提供驱动滑架电机230,使各色的墨水喷出头244~247相对打印用纸P在主扫描方向移动,此外通过驱动纸输送电机235,使打印用纸P在副扫描方向移动。控制电路260一边使滑架240的主扫描以及副扫描的移动同步,一边在适当的定时驱动喷嘴,喷出墨滴,彩色打印机200在打印用纸上打印彩色图像。
须指出的是,在彩色打印机200,在控制电路260内搭载CPU、RAM、ROM等,所以能在彩色打印机200内进行计算机100进行的处理。这时,把由数码相机120等拍摄的图像的图像数据直接提供给彩色打印机200,在控制电路260进行必要的图像处理,从而能从彩色打印机200直接打印图像。
C.实施例1的图像打印处理的概要:
以下,说明所述的计算机100和彩色打印机200为了打印图像,在各自的内部进行的图像处理(图像打印处理)。这里,为了便于理解,首先说明图像打印处理的概要,接着说明通过进行这样的图像打印处理,能不降低图像质量地迅速打印图像的理由。
须指出的是,以下说明图像打印处理的前半部分由计算机100实施,后半部分由彩色打印机200实施,但是计算机100进行的处理可以在彩色打印机200的内部实施,或者在数码相机120等生成图像数据的仪器的内部也能实施。即根据实施例1的图像打印处理,如后所述,能使前半部分为非常简单,所以使用不具有高处理能力的CPU时,也能迅速实施。因此,在彩色打印机200或数码相机等中嵌入图像打印处理的前半部分时,也能构成足够实用的打印系统。
图6是表示实施例1的图像打印处理的全体流程的程序流程图。如图所示,如果开始图像打印处理,则首先,计算机100开始读入图像数据(步骤S100)。这里,说明图像数据是RGB彩色图像数据,但是并不局限于彩色图像数据,关于黑白图像数据,也同样能应用。此外,并不局限于彩色打印机,关于单色打印机,也同样能应用。
接着彩色图像数据的读入,进行色变换处理(步骤S102)。色变换处理是把由R、G、B的灰度值的组合表现的RGB彩色图像数据变换为由关于用于打印的墨水各色的灰度值的组合表现的图像数据的处理。如上所述,彩色打印机200使用C、M、Y、K等4色墨水,打印图像。因此,在色变换处理中,把由RGB各色表现的图像数据变换为由C、M、Y、K等各色的灰度值表现的数据。参照称作色变换表(LUT)的3维的数表,进行色变换处理。在LUT中预先存储,对于RGB彩色图像数据由色变换取得的C、M、Y、K各色的灰度值。在步骤S102的处理中,通过参照LUT,能迅速把RGB彩色图像数据色变换为C、M、Y、K各色的图像数据。
如果色变换处理结束,就开始析像度变换处理(步骤S104)。析像度变换处理是把图像数据的析像度变换为打印机200打印图像的析像度(打印析像度)的处理。图像数据的析像度比打印析像度低时,进行插补计算,在像素间生成新的图像数据,相反,图像数据的析像度比打印析像度高时,通过以一定比例减少数据,进行使图像数据的析像度与打印析像度一致的处理。
如果把析像度变换为打印析像度,计算机100就开始多值化结果值生成处理(步骤S106)。后面详细描述开始多值化结果值生成处理的详细内容,这里只说明概要。在多值化结果值生成处理中,通过相邻的给定个数的像素汇总为像素群,把一个图像分割为多个像素群。汇总为像素群的像素数没必要全部像素群为相同数量,例如规则地切换多个像素数,或者能按照图像中的位置,切换汇总为像素群的像素数,但是这里,为了便于理解,作为最单纯的情况,说明全部像素群具有相同的像素数。把多个像素汇总为像素群,求出代表各像素群的灰度数即像素群灰度数后,继续像素群灰度值的多值化。结果,各像素群的像素群灰度值变换为多值化结果值。
这里,在本实施例的多值化结果值生成处理中,作为多值化结果能取得的状态数在各像素群不同。即在一般进行的多值化中,在一个图像中,2值化和3值化不切换,但是在本实施例的多值化结果值生成处理中,在各像素群,多值化的级数不同。而且,把像素群灰度值按各像素群以个数的级数多值化而取得的结果值向彩色打印机200输出。如果以各像素群固有的级数把像素群灰度值多值化,输出取得的结果,就能大幅度减少应该对彩色打印机200输出的数据量。此外,如后所述,各像素群的多值化结果值迅速生成,所以与数据量减少相辅相成,能极迅速对彩色打印机200输出多值化结果值。后面描述这样的多值化结果值生成处理的细节。
彩色打印机200的控制电路260中内置的CPU,如果从计算机100收到对各像素群供给的多值化结果值的数据,就开始点形成的有无决定处理(步骤S108)。如上所述,多值化结果值是把像素群灰度值多值化取得的值,不是表示在像素群内的哪个像素形成点的值。作为从像素群多值化结果值决定形成点的像素位置的手法,知道所谓的浓度图法的手法,但是本实施例的多值化结果值以各像素群固有的级数多值化,无法原封不动应用浓度图法。因此,在实施例1的点形成的有无决定处理中,通过使用后面描述的特殊的方法,从为各像素群取得的多值化结果值决定形成点的像素位置。
此外,在所谓的浓度图法中,实质的析像度下降到进行多值化的像素群的析像度,存在容易引起图像质量的恶化的倾向。而根据实施例1的点形成的有无决定处理,如后所述,没有依存于像素群的尺寸,图像质量恶化。能打印通过使用称作蓝噪声屏蔽或绿噪声屏蔽的抖动矩阵实现的点良好地分散的高图像质量的图像。后面详细说明应用实施例1的点形成的有无决定处理的详细内容和有关的处理,决定点形成的有无,能取得这样的特性的理由。
如果按以上那样决定应该形成点的像素位置,就进行在决定的像素位置形成点的处理(步骤S110)。即如使用图3说明的那样,一边重复滑架240的主扫描和副扫描,一边驱动墨水喷出头,喷出墨滴,在打印用纸上形成墨水的点。通过这样形成点,能打印与图像数据对应的图像。
C-1.多值化结果值生成处理的概要:
图7是表示由上述的实施例1的图像打印处理进行的多值化结果值生成处理的流程的程序流程图。这里,说明多值化结果值生成处理由计算机100实施,但是如后所述,多值化结果值生成处理能为极简单的处理,所以,能在彩色打印机200或数码相机内实施。以下说明程序流程图。
如果开始本实施例的多值化结果值生成处理,则首先汇总给定彼此相邻的个数的像素,生成像素群(步骤S130)。这里,把在主扫描方向4像素、在副扫描方向2像素的合计8个像素汇总为像素群。须指出的是,汇总为像素群的像素没必要是纵横的位置与矩形对齐的像素,如果是彼此相邻,并且位于给定的位置关系,就可以把任意的像素汇总为像素群。
接着,决定像素群灰度值和像素群的分类编号(步骤S132)。像素群灰度值是代表像素群的灰度值,能如下简单地求出。求出分配给像素群内的各像素的图像数据的平均值,作为像素群灰度值。或者能把分配给像素群中最多的像素的图像数据、像素群内位于特定的位置的像素的图像数据作为像素群灰度值。
此外,像素群的分类编号能按以下极简便地决定。图8是表示决定像素群的分类编号的方法的说明图。图8a是表示在图像中把8个像素汇总为1个像素群。以下,说明决定关于该像素群的分类编号的方法。须指出的是,把图8所示的为了决定分类编号而着眼的像素群称作着眼像素群。
现在,把图像的最左上角取为原点,通过从原点开始的向主扫描方向和副扫描方向的像素数,表示像素位置。此外,像素群的位置由位于像素群的左上角的像素的像素位置表示。在图8a中,对表示着眼像素群的位置的像素赋予黑圈,表示。该像素的像素位置是(X,Y)。二进制表示X、Y,只读出存储在给定位中的数据,就能极容易地决定着眼像素群的分类编号。例如如图8b所示,表示着眼像素群的位置的X、Y分别是10位数据。而且,读出从X的最上级的第4位到第8位的数据而取得的值为N,把读出从Y的最上级的第4位到第8位的数据而取得的值为M。在本实施例时,通过计算
N+(M-1)×32…(1)
能简单决定像素群的分类编号。后面描述能这样决定像素群的分类编号的理由。
如果这样决定像素群的分类编号和像素群灰度值,则通过参照多值化表,把像素群灰度值多值化(步骤S134)。图9是在概念上表示多值化时参照的编码用多值化表的说明图。该表是用于把像素群灰度值代码化,为了编码而参照。如图所示,在多值化表中,按像素群的各分类编号对应存储相对像素群灰度值的多值化结果值,多值化结果值随着像素群灰度值增加,阶段性增加。
图10是表示随着像素群灰度值增加,多值化结果值阶段性增加的样子的说明图。在图中,使用横轴取像素群灰度值,纵轴取多值化结果值的折线图,表示相对像素群灰度值的多值化结果值。须指出的是,在图中,表示关于具有不同的分类编号N1~N5的5个像素群的多值化结果,但是为了避免这些像素群的折线重叠,难以判别,在纵轴方向把多值化结果值的原点的位置稍微错开表示。
作为一个例子,如果说明在图中用实线表示的分类编号N1的像素群,在像素群灰度值0~4的范围中,多值化结果值为“0”,但是在像素群灰度值为5~20的范围中,多值化结果值增加到“1”。接着,在像素群灰度值为21~42的范围中,多值化结果值增加到“2”,在像素群灰度值为43~69的范围中,多值化结果值增加到“3”。随着像素群灰度值增加,多值化结果值阶段性增加,最终多值化结果值增加到“15”。即关于分类编号N1的像素群,能取灰度值0~255的范围的像素群灰度值多值化为灰度值0~15的16阶段(16值化)。
同样,关于图中用粗虚线表示的分类编号N2的像素群、用粗单点划线表示的分类编号N3的像素群,把能取灰度值0~255的范围的像素群灰度值多值化为灰度值0~17的18阶段(18值化)。关于用细实线表示的分类编号N4的像素群、用细单点划线表示的分类编号N5的像素群,把像素群灰度值多值化为灰度值0~20的21阶段(21值化)。在本实施例的多值化结果值生成处理中,各像素群的多值化的级数(作为多值化的结果能取得的状态数)不同,按照像素群的分类编号,以固有的级数多值化。结果,把相同的像素群灰度值多值化时,像素群的分类编号不同,因此,如果多值化的级数不同,则多值化为不同的结果。
此外,即使多值化的级数相同,也不会取得相同的多值化结果。例如,如果比较图10所示的分类编号N2的像素群和分类编号N3的像素群,关于这些像素群的多值化的级数都为18级,多值化结果值切换的像素群灰度值在很多时候不一致。关于分类编号N4的像素群和分类编号N5的像素群,也同样,这些像素群的多值化的级数都为21级,但是多值化结果值切换的像素群灰度值常常不一致。因此,即使像素群的多值化的级数相同,如果分类编号不同,就取得不同的多值化结果值。
在图9所示的多值化表中,按像素群的各分类编号,存储相对应像素群灰度值的多值化结果值。而且,像素群灰度值和多值化结果值的对应关系如图10所示,成为各分类编号固有的对应关系。在图7所示的多值化结果值生成处理的步骤S134中,参照这样的多值化表,把像素群灰度值多值化,进行按各像素群生成多值化结果值的处理。须指出的是,后面详细描述图9所示的多值化表的设定方法。
如上所述,如果把多个像素汇总为像素群,生成像素群的多值化结果值,关于全部像素,判断是否结束处理(步骤S136)。然后,在剩下未处理的像素时(步骤S136:no),回到步骤S130,生成新的像素群,进行后面描述的一系列处理,生成关于该像素群的多值化结果值。重复这样的操作,如果判断为关于全部像素的处理结束(步骤S136:yes),就把关于各像素群取得的多值化结果值对彩色打印机200输出后(步骤S138),结束图7的多值化结果值生成处理。
由此,如果按各像素群输出多值化结果值,则与输出按各像素表示点形成的有无的数据时相比,能大幅度减少应该提供给彩色打印机200的数据量。以下说明该点。
在本实施例中,能形成大点、中点、小点等3种点,所以如果也包含不形成点的情况,在各像素能取4个状态,因此,为了表示点形成的有无,一个像素需要2位的数据量。此外,在本实施例中,一个像素群由8个像素构成,所以如果要按各像素表示点形成的有无,则1个像素群需要16位(=2位×8像素)的数据量。
而在图7所示的多值化结果值生成处理中,根据像素群的发分类编号而不同,多值化的级数变为15~21(参照图9、图10)。后面描述按各像素群决定多值化的级数的方法,但是认为多值化的级数即使多估计,也不超过30。因此,如果是像素群的多值化结果值,则1个像素群如果有5位的数据量,就能充分表现。如上所述,按各像素表示点形成的有无时,1个像素群需要16位的数据量,所以如果生成把像素群灰度值多值化取得的结果值,就能把应该对彩色打印机200输出的数据量减少到1/3以下。在本实施例的图像打印处理中,输出像素群的多值化结果值,所以能大幅度减少数据量,能对彩色打印机200迅速输出数据。
彩色打印机200如果从计算机100收到多值化结果值,就进行以下说明的点形成的有无决定处理,关于像素群内的各像素,决定点形成的有无。
C-2.点形成的有无决定处理的概要:
图11是表示所述的实施例1的图像打印处理中进行的点形成的有无决定处理的流程的程序流程图。有关的处理是从计算机100按各像素群收到多值化结果值后,由彩色打印机200执行的成立。以下按照图11的程序流程图说明。
如果开始实施例1的点形成的有无决定处理,就首先选择一个作为处理对象的像素群,取得选择的像素群的多值化结果值(步骤S160、S162)。接着,把像素群的多值化结果值变换为表示在该像素群形成的点个数的数据(步骤S164)。这里,如图9和图10所示,如果像素群的分类编号不同,则即使像素群灰度值相同,多值化结果值也取不同的值。从该事实可知,像素群的多值化结果值成为只在与相同分类编号的像素群之间比较结果值的大小,关于分类编号不同的像素群,无法比较多值化结果值的数据。
因此,考虑把依存于像素群的分类编号的多值化结果值变换为不依存于像素群的分类编号的多值化结果值。如果把多值化结果值变换为变换为不依存于像素群的分类编号的值,就能比较关于全部像素群的多值化结果值的大小,所以能按照各变换值的序列,把表示大点、中点、小点的适当的形成数即点个数的数据对应。
在图11的步骤S164中,根据这样的考虑方法,把依存于像素群的分类编号的多值化结果值变换为表示像素群中应该形成的点的个数的数据。只通过参照对像素群的分类编号与多值化结果值的组合预先设定适当的点个数的数据的变换表,就能极迅速进行实际的变换。
图12是在概念上表示把像素群的分类编号与多值化结果值的组合变换为表示点个数的数据时参照的变换表的说明图。该表是从分配给像素群的分类编号和多值化结果值求出点个数的译码用表。须指出的是,如后所述,在本实施例中,根据参照该表求出的点个数的数据和对各分类编号决定的顺序值,决定形成点的像素,但是按各分类编号决定顺序值,所以只通过参照该表,就能求出表示点形成的配置的输出点配置。后面描述这样的直接译码的手法。
如图12所示,在变换表中,对各分类编号设定与多值化结果值对应的点个数的数据。作为一个例子,如果说明分类编号1的像素群,则对于多值化结果值0,作为点个数数据,设定“0”。点个数数据“0”是表示大点、中点、小点的形成个数都为0的代码数据。此外,对于多值化结果值1,作为点个数的数据,设定“1”。点个数数据“1”是表示大点、中点的形成个数为0个,小点的形成个数为1个的代码数据。对于多值化结果值15,设定点个数数据“164”。点个数数据“164”是表示大点形成8个,中点和小点不形成的代码数据。
如上所述,在变换表中,表示点个数的数据作为代码化的数据设定。即个数数据即使不直接表示点个数,如果用任意的方法能确定点个数,就能采用任意形式的数据。此外,关于分类编号1的像素群,对于比“16”大的多值化结果值,未设定表示点个数的数据。这与分类编号1的像素群的多值化级数为16级,多值化结果值只能取0~15的值对应。因此,关于如分类编号2的像素群那样,多值化级数为18级,只对0~17的多值化结果值,设定表示点个数的数据。对于比“18”大的多值化结果值,不设定表示点个数的数据。
图13是表示代码化的个数数据与各代码数据表示的大点、中点、小点的个数组合的对应关系的说明图。之所以把各种点的个数代码化处理是基于以下的理由。
这里,把8个像素汇总,构成一个像素群,所以大点、中点、小点的形成个数分别能取0~8个。因此,如果不把点的个数代码化,原封不动地表现,则为了表示大点的个数、中点的个数、小点的个数,分别为4位,合计需要12位的数据量。
而一个像素群由8个像素构成,所以像素群中能形成的点个数的合计最大为8个。例如,大点为4个,中点为3个,小点为2个的点个数的组合,点个数的合计为9个,超过8个,所以现实中不会发生。如果着眼于这样的点,则现实中能发生的点个数的组合没有这么多种。如果实际计算,就变为如下。在像素群中包换8个像素,如果就各像素而言,就能取得“形成大点”、“形成中点”、“形成小点”、“不形成点”等4个状态。因此,像素群中能形成的点个数的组合因为等于允许重复选择8次这4个状态时的组合的数,所以由
4H8(=4+8-1C8)
求出,结果最多只出现165个组合。这里,nHr是求出从n个物体中允许重复地选择r次时的重复组合数的运算符。此外,nCr是求出从n个物体中不允许重复地选择r次时的重复组合数的运算符。如果是165个组合,就能用8位表现。因此,如果对现实中能发生的点个数的组合设定代码编号,就能用8位的数据表示在像素群中应该形成的点个数的组合。结果,通过把点个数的组合代码化,与按点的各种类表示形成个数时相比,能减少必要的数据量。因为这样的理由,所以把个数数据象图13所示那样代码化,表现,在图12所示的变换表中,对于各分类编号的多值化结果值,设定代码化的点个数的数据。须指出的是,关于设定图12所示的变换表的方法,后面使用其它图详细说明。
在图11所示的点形成的有无决定处理中,通过参照图12所示的变换表,进行把像素群的多值化结果值变换为表示点个数的代码数据的处理。须指出的是,为了参照图12所示的变换表,除了多值化结果值,像素群的分类编号成为必要。这里,如使用图8所述,在本实施例中,根据图像中的像素群的位置,决定像素群的分类编号。为各像素群供给多值化结果值,所以根据多值化结果值供给的顺序,能知道要处理的多值化结果值的像素群位于图像上的哪个位置,据此,能简单决定分类编号。后面描述按照图像上的像素群的位置,决定分类编号的方法。须指出的是,当然可以把多值化结果值与分类编号一起从计算机100向彩色打印机200输出。
接着进行读入与像素群对应的顺序值矩阵的处理(步骤S166)。这里,顺序值矩阵是关于像素群内的各像素,设定点形成的顺序的矩阵。图14是表示顺序值矩阵的说明图。如图所示,顺序值矩阵也按像素群的各分类编号设定不同的矩阵。作为一个例子,说明图14a所示的分类编号1的顺序值矩阵。分类编号1的像素群在构成像素群的8个像素中,位于左上角的像素是最容易形成点的像素。把顺序值矩阵的左上角的像素设定数值“1”是表示该像素是第一个形成点的像素。须指出的是,顺序值矩阵中设定的这样的表示顺序的数值称作顺序值。此外,对像素群的右下角的像素设定顺序值“2”表示该像素在像素群中第二个形成点。在顺序值矩阵中,关于像素群中包含的8个像素,设定表示点形成的顺序的顺序值。
这样的顺序值矩阵成为根据像素群的分类编号而不同的矩阵。例如,在图14b所示的分类编号2的顺序值矩阵中,第一个形成点的像素(顺序值“1”的像素)是从下级的左开始第二个像素,第二个形成点的像素(顺序值“2”的像素)是右下角的像素。在图14c所示的分类编号3的顺序值矩阵中,第一个形成点的像素(顺序值“1”的像素)是上级的左开始第二个像素,第二个形成点的像素(顺序值“2”的像素)是左下角的像素。
在实施例1的彩色打印机200中搭载的ROM中,按像素群的各分类编号,预先存储图14所示的顺序值矩阵。然后,在图11的步骤S166中,进行从ROM读出于像素群的分类编号对应的顺序值矩阵的处理。须指出的是,关于按像素群的各分类编号,设定顺序值矩阵的方法,使用其它图,详细说明。
如果读入与像素群对应的顺序值矩阵,就从构成像素群的8个像素中决定首先决定形成大点的像素(步骤S168)。因为,大点比其它点更醒目,所以比其它点优先决定,从而尽可能分散形成点。因此,首先决定形成大点的像素。在决定形成点的像素时,使用变换像素群的多值化结果值取得的点个数的数据、与像素群对应的顺序值矩阵。
图15是在概念上表示使用点个数的数据、顺序值矩阵,决定在像素群内形成各种点的像素的样子的说明图。例如,表示像素群中应该形成的代码数据表示大点1个、中点2个、小点1个的组合。如上所述,在顺序值矩阵中设定在像素群的各像素形成点的顺序,此外,首先从形成大点的像素决定,所以在设定顺序值“1”的像素形成大点。当然,如果大点的形成个数为2个,则除了顺序值“1”的像素,在顺序值“2”的像素也形成大点。在图15中,对形成大点的像素赋予细斜线表示。在图11的步骤S168中,根据点个数的数据和顺序值矩阵,进行决定形成大点的像素的处理。
如果决定形成大点的像素,就接着形成中点的像素(图11的步骤S170)。在图15所示的例子中,应该形成中点的个数是2个。在顺序值“1”的像素中已经形成大点,所以在顺序值“2”的像素和顺序值“3”的像素中形成中点。在图15中,对形成中点的像素赋予稍粗的斜线,表示。在图11的步骤S170中,进行从不形成大点的像素中决定形成中点的像素的处理。
如果决定形成中点的像素,就决定形成小点的像素(图11的步骤S172)。在图15所示的例子中,应该形成小点的个数是1个,在顺序值“1”~顺序值“3”的像素中已经形成大点和中点,所以在顺序值“4”的像素中形成小点。在图15中,对形成小点的像素赋予粗的斜线,表示。
如果这样决定形成大点、中点、小点的像素,就可以决定像素群中剩下的像素是不形成点的像素(图11的步骤S174)。如果完全进行以上的处理,则关于像素群内的全部像素,决定了点形成的有无。
接着,关于全部像素群,进行上述的处理,判断是否决定了点形成的有无(步骤S176),如果剩下未处理的像素群(步骤S176:no),就回到步骤S160,选择新的像素群,关于该像素群,进行一系列的处理。重复这样的操作,如果最终判断为关于全部像素群的处理结束(步骤S176:yes),就结束图11所示的点形成的有无决定处理,回到图16所示的图像打印处理。如上所述,在图像打印处理中,按照点形成的有无的决定结果,形成点,在打印用纸上打印图像。
如上所述,在实施例的图像打印处理中,汇总多个像素,构成像素群,按各像素群进行多值化,把取得的多值化结果值对彩色打印机200输出。在像素群的多值化时,求出像素群的分类编号和像素群灰度值,通过只参照图9所示的多值化表,就能立刻取得多值化结果值。如上所述,能极简单地求出像素群的分类编号、像素群灰度值,所以能通过极简单的处理,极迅速求出像素群的多值化结果值。
并且,多值化结果值由各像素群的很少位数(在本实施例中5位)表现,所以与按各像素表示点形成的有无的数据相比,能大幅度减少数据量。因此,如果代替按各像素表示点形成的有无的数据,对彩色打印机200输出各像素群的多值化结果值,数据量减少的部分就能供给数据。
此外,在彩色打印机200中,如果收到各像素群的多值化结果值,就把它变换为表示在像素群内应该形成的点的个数的数据。只通过参照图12所示的变换表,就能迅速进行有关的变换。接着,根据变换取得的表示点个数的数据、顺序值矩阵,觉得大点、中点、小点的形成的有无后,形成点,打印图像。如果参照顺序值矩阵,就能比较简单决定形成大点、中点、小点的像素。因此,在彩色打印机200中,如果收到各像素群的多值化结果值,用比较简单的处理,就能迅速决定点形成的有无,能迅速打印图像。
并且,在实施例1的图像打印处理中,不仅能迅速打印图像,还能以充分的图像质量打印图像。按照像素群的分类编号,适当设定多值化表、变换表、顺序值矩阵,从而能打印使用称作蓝噪声屏蔽或绿噪声屏蔽的抖动矩阵实现的点良好地分散的高图像质量的图像。以下,依次说明能这样做的理由、决定像素群的分类编号的考虑方法、多值化表、变换表、顺序值矩阵。
C-3.抖动法的概要:
上述的实施例1的图像打印处理是把所谓的抖动法发展改良而来的。因此,作为说明决定像素群的分类编号的考虑方法、多值化表、变换表、顺序值矩阵的准备,首先简单说明抖动法的概要。
抖动法是把图像数据变换为按各像素表示点形成的有无的数据时使用的代表的手法。在该手法中,在称作抖动矩阵的矩阵中设定阈值,按各像素比较图像数据的灰度值和抖动矩阵的矩阵中设定的阈值,关于图像数据的灰度值大的像素,判断为形成点,关于不是这样的像素,判断为不形成点。如果关于图像中的全部像素,进行这样的判断,就能把图像数据变换为按各像素表示点形成的有无的数据。
图16是放大表示抖动矩阵的一部分的说明图。在图示的抖动矩阵中,随机存储对横向(主扫描方向)128像素,纵向(副扫描方向)64像素,合计8192像素,从灰度值1~255的范围到处选择的阈值。这里,阈值的灰度值从1~255的范围选择是基于在本实施例中,图像数据能取0~255的值的1字节数据,在图像数据的灰度值与阈值相等时,判断为在该像素形成点。
即形成点的限于图像数据的灰度值比阈值大的像素(即在灰度值与阈值相等的像素不形成点)时,在具有与图像数据能取的最大灰度值相同值的阈值的像素绝对不形成点。为了避免这样的情况,阈值能取的范围是从图像数据能取的范围除去最大灰度值的范围。相反,在图像数据的灰度值与阈值相等的像素也形成点时,在具有与图像数据能取的最小灰度值相同值的阈值的像素总形成点。为了避免这样的情况,阈值能取的范围是从图像数据能取的范围除去最小灰度值的范围。在本实施例中,图像数据能取的灰度值是0~255,在图像数据与阈值相等的像素形成点,所以阈值能取的范围是1~255。须指出的是,抖动矩阵的尺寸并不局限于图16所示的尺寸,包含纵和横的像素数相同的矩阵,能为各种尺寸。
图17是在概念上表示一边参照抖动矩阵,一边判断关于各像素的点形成的有无的样子的说明图。在判断点形成的有无时,首先选择要判断的像素,比较关于该像素的图像数据的灰度值、抖动矩阵中在对应的位置存储的阈值。图17中所示的虚线的箭头模式地表示按各像素比较图像数据的灰度值、抖动矩阵中存储的阈值。例如,关于图像数据的左上角的像素,图像数据的灰度值为97,抖动矩阵的阈值为1,所以判断为在该像素形成点。图17中用实线表示的箭头模式地表示判断为在该像素形成点,把判断结果写入存储器的样子。而关于像素的右邻的像素,图像数据的灰度值为97,抖动矩阵的阈值为177,阈值更大,所以关于该像素,判断为不形成点。在抖动法中,一边参照抖动矩阵,一边对各像素判断是否形成点,把图像数据变换为按各像素表示点形成的有无的数据。
按照以上说明的内容,以下说明决定像素群的分类编号的考虑方法、多值化表、变换表、顺序值矩阵等的设定方法。
C-4.用于决定分类编号的考虑方法
以下,说明赋予像素群的分类编号的考虑方法。接着,说明通过使用图8描述的简便方法,能求出像素群的分类编号的理由。
图18a~图18c是表示用于决定各像素群的分类编号的考虑方法的说明图。图18a是在概念上表示在图像的最左上角的地方,通过汇总横向4像素、纵向2像素的合计8像素,生成一个像素群的样子。
如上所述,在抖动法中,比较分配给像素的图像数据的灰度值、在抖动矩阵的对应的位置设定的阈值,对各像素判断点形成的有无。而在本实施例中,相邻的给定数量的像素汇总为像素群,所以关于抖动矩阵中设定的阈值,汇总与像素群对应的给定数量,生成块。图18b表示把图16所示的抖动矩阵分别在横向4个、纵向2个汇总,生成多个块的样子。图16所示的抖动矩阵设定横向(主扫描方向)128像素、纵向(副扫描方向)64像素的合计8192像素的阈值,所以如果把这些阈值分别在横向4个、纵向2个,汇总为块,抖动矩阵就分割为纵横各32个、合计1024个块。
现在如图18b所示,对这些块赋予1~1024的连续编号。在对图像数据应用抖动矩阵时,根据对各像素群的位置应用的块的连续编号,把像素群分类。例如如图18b所示,对位于图像的最左上角的像素群应用图18b中的连续编号1的块,所以该像素群分类为分类编号1的像素群。以上是用于决定像素群的分类编号的基本考虑方法。
接着说明根据使用图8描述的方法,能计算像素群的分类编号的理由。图19a~图19d是表示计算像素群的分类编号的方法的说明图。图19a表示图像中生成的1个像素群。以下,说明把该像素群作为着眼像素群,计算分类编号的方法。如上所述,着眼像素群的位置由位于像素群的左上角的像素的像素位置表示。在图19a中,对表示像素群的位置的像素赋予黑圈,表示。该像素的像素位置为(X,Y)。各像素群的尺寸为主扫描方向4像素,副扫描方向2像素,所以存在
X=4n+1、Y=2m+1的n、m(这里,n、m为0以上的正整数)。换言之,在着眼像素群的左侧排列n个像素群,在着眼像素群的上侧排列m个像素群。
这里,如上所述,把抖动矩阵应用于图像数据时,像素群根据对着眼像素群应用的块的连续编号分类(参照图18),所以根据一边使抖动矩阵移动,一边对图像数据应用的方法,即使相同的像素群,也分类为不同的分类编号。实际上一边使抖动矩阵移动,一边对图像数据应用的方法可以是任意的方法,但是这里为了便于说明,说明为最简单的方法即让抖动矩阵在横向移动。图19b在概念上表示一边使抖动矩阵在横向移动,一边反复对图像数据应用的样子。
图19c在概念上表示一边如图19b所示那样重复使用抖动矩阵,一边对图19a所示的着眼像素群应用抖动矩阵的样子。如果这样使抖动矩阵移动,则抖动矩阵中的任意的块应用到抖动矩阵中。这里,对着眼像素群应用抖动矩阵中第M行第N列的块。如图19a所示,在着眼像素群的左侧存在n个像素群,在上侧存在m个像素群,所以在N和n、M和m之间,
N=n-int(n/32)×32+1
M=m-int(m/32)×32+1
的关系成立。这里,int是表示去掉小数点以下,整数化的演算符。即int(n/32)表示对n/32的计算结果,去掉小数点以下的数值,取得的整数值。如果知道着眼像素群的位置,就从图19d所示的上述的关系式求出数值M和N,把抖动矩阵中位于第M行第N列的块的块编号作为该着眼像素群的分类编号。实际上如使用图8所述,从用2进制表示着眼像素群的坐标值X、Y的数据,只抽出给定位数的数据,就能极简单地求出。以下说明其理由。
图20是表示从着眼像素群的坐标值的2进制表示求出分类编号的方法的说明图。着眼像素群的坐标值为(X,Y),X、Y由10位表现。图20(a)在概念上表示代表数值X的10位2进制数据。在图中,为了识别各位,从最高位向最低位,赋予1~10的连续编号,表示。
如使用图19所述,从数值X减去1,除以4,就能取得位于着眼像素群的左侧的像素群的个数n。这里,能通过仅右移2位,实施用4的除法,所以从数值X减去1,把取得的2进制数据右移2位。数值X不是取任意的值,只能取用4n+1的形式能表现的数值,所以不减1,只把2进制数据右移2位,就能取得像素群的个数n。图20(b)在概念上表示这样把数值X移位取得的个数n的2进制数据。
接着计算int(n/32)。即进行个数n除以32,去掉小数点以下的数值的操作。能通过把2进制数据向右移5位,进行基于32的除法,此外,如果以整数形式处理数据,就自动去掉小数点以下的数值。结果,能通过把个数n的2进制数据只向右移动5位,就能取得int(n/32)的2进制数据。图20(c)在概念上表示把个数n移位取得的int(n/32)的2进制数据。
把这样取得的int(n/32)乘以32。能通过把2进制数据向左移5位,实施基于32的乘法。图20(d)在概念上表示把个数n移位取得的int(n/32)×32的2进制数据。
接着,如果从个数n减去int(n/32)×32,就能取得所述的数值N。如果比较个数n的2进制数据(参照图20(b))和int(n/32)×32的2进制数据(参照图20(d)),就可知这些2进制数据中,高5位公共,减法一侧的数值的低5位全部为“0”。因此,如果原封不动抽出减法一侧的数值(个数n)的低5位,就能取得求出的数值M。即对于图20(b)所示的2进制数据,只作用图20(f)所示的屏蔽数据,就能极简便地取得数值N。或者在表示图20(a)所示的着眼像素群的位置的数值X的2进制数据作用图20(g)的屏蔽数据,直接抽出第4~第8位数据,就能取得数值N。
在图20中,说明从表示着眼像素群的位置的坐标值(X,Y)的数值X求出表示抖动矩阵中的块位置的数值N的情况,但是完全同样能从数值Y求出表示块位置的数值M。结果,如果知道着眼像素群的位置,就从2进制数据抽出特定位位置的数据,就能知道着眼像素群与抖动矩阵中哪行哪列的块对应,如果计算该块的连续编号,就能取得着眼像素群的分类编号。使用图8描述的分类编号的计算方法是这样引导的方法。
C-5:多值化表的设定方法:
下面说明设定图9所示的多值化表的方法。如上所述,在多值化表中,按各像素群的各分类编号设定对于像素群灰度值的多值化结果值,一边参照多值化表,一边进行多值化,像素群灰度值象图10所示那样,以与像素群的分类编号对应的固有形式多值化。
根据发展所述的抖动法的手法,设定本实施例的多值化表,从而关于尺寸步特定多个种类的点,能按各像素判断点形成的有无。有关的手法的详细内容在专利3292104号中描述。在说明多值化表的设定方法之前,作为准备,简单说明所述的专利公报中描述的技术概要。
图21是表示发展抖动法,能按各像素决定大点、中点、小点形成的有无的半色处理的流程的程序流程图。如果开始半色处理,就首先选择要判断点形成的有无的像素,去掉该像素的图像数据(步骤S200)。接着,把取得的图像数据变换为关于大中小的各点的密度数据。这里,密度数据是表示以怎样程度的密度形成点的数据。密度数据表示灰度值越大,越能以高密度形成点。例如,密度数据的灰度值“255”表示点的形成密度为100%,即在全部像素形成点,密度数据的灰度值“0”表示点的形成密度为0%,即在全部像素不形成点。通过参照称作点密度变换表的数表,能进行这样的向密度数据的变换。
图22是在概念上表示把图像数据的灰度值向关于大中小的各点的密度数据变换时参照的点密度变换表的说明图。如图所示,在点密度变换表中,对于图像数据的灰度值,设定关于大点、中点、小点的各点的密度数据。图像数据在灰度值为“0”附近的区域中,大点、中点的密度数据都设定为灰度值“0”。小点的密度数据伴随着图像数据的灰度值增加,增加,但是,如果图像数据达到某灰度值,就开始减少,而中点的灰度值开始增加。图像数据的灰度值进一步增加,如果达到某灰度值,小点的密度数据就变为灰度值“0”,中点的密度数据开始减少,而大点的密度数据逐渐增加。在图21的步骤S202中,进行一边参照点密度变换表,一边把图像数据的灰度值变换为大点的密度数据、中点的密度数据、小点的密度数据的处理。
关于作为处理对象的像素,如果取得大中小点的密度数据,就首先判断关于大点的形成的有无(图21的步骤S204)。通过比较大点的密度数据和作为处理对象的像素的对应位置设定的抖动矩阵的阈值,进行有关的判断。当大点的密度数据大于阈值时,判断为在处理对象的像素形成大点,相反密度数据小时,判断为不形成大点。
接着,判定是否判断为在处理对象的像素形成大点(步骤S206),在判断为形成大点时,(步骤S206:yes),省略关于中点和小点的判断,判断是否结束全部像素(步骤S218)。而且,剩下未判断点形成的有无的像素时(步骤S218:no),回到步骤S200,选择新的像素,进行一系列处理。
而如果判断为在处理对象的像素不形成大点(步骤S206:no),为了判断关于中点的形成的有无,把大点的密度数据与中点的密度数据相加,计算中点用的中间数据(步骤S208)。比较这样取得的中点用的中间数据和抖动矩阵的阈值。如果中点用的中间数据大于阈值,就判断为形成中点,相反如果抖动矩阵的阈值大于中间数据,就判断为不形成中点(步骤S210)。
接着判定是否判断为在处理对象的像素形成中点(步骤S212),判断为形成中点时(步骤S212:yes),省略关于小点的判断,判断是否结束全部像素(步骤S218)。
在未判断为在处理对象的像素形成中点时(步骤S212:no),为了判断关于小点的形成的有无,把中点的密度数据与小点的密度数据相加,计算小点用的中间数据(步骤S214)。然后,比较去掉的小点用的中间数据和抖动矩阵的阈值。如果小点用的中间数据大于阈值,就判断为形成小点,相反如果抖动矩阵的阈值大于中间数据,就判断为不形成任何点(步骤S216)。
即关于抖动矩阵中设定的阈值大于大点的密度数据的像素(不形成大点的像素),把大点的密度数据与中点的密度数据相加,比较取得的中间数据和阈值,如果中间数据大,就判断为形成中点。而关于阈值大于中间数据的像素,把中间数据与小点的密度数据相加,计算新的中间数据。然后比较该中间数据和阈值,如果新的中间数据大,就判断为形成小点,关于阈值大的像素,判定为不形成任何点。
通过进行以上的处理,关于处理对象的像素,能判断形成大点、中点、小点的哪个点,或者不形成任何点。因此,判断是否结束关于全部像素的处理(步骤S218),在剩下未判断的像素时(步骤S218:no),回到步骤S200,选择新的像素,进行一系列的处理。关于选择为处理对象的像素,一个一个判断是否形成大中小的哪个点。如果,关于全部像素,判断为结束处理(步骤S218:yes),就结束图21所示的半色处理。
以上说明使用抖动矩阵,判断关于大中小各点的形成有无的方法。以下,根据以上的说明,说明图9所示的多值化表的设定方法。
如上所述,在多值化结果值生成处理中,用像素群灰度值代表像素群内包含的各像素的图像数据,汇总像素群,多值化。因此,考虑在设定多值化表时,首先像素群内的全部像素是具有与像素群灰度值相同值的图像数据,关于各像素,判定关于大中小各点的形成有无。使用图21描述的半色处理,进行关于各种点的形成有无的判断。
图23是在概念上表示关于像素群内的各像素,判断大中小各点形成的有无的样子的说明图。在图中,用粗实线包围表示为了进行半色处理而着眼的像素群。像素群由8个像素构成,各像素的图像数据都具有与像素群灰度值相同的值(在图示的例子中,灰度值97)。为了判断大中小各种点的形成的有无,把图像数据变换为关于各点的密度数据。通过参照图22所示的点密度变换表,进行向密度数据的变换。这里,像素群内的全部像素具有相同的图像数据,所以关于各种点,密度数据关于全部像素成为相同的值。在图示的例子中,表示大点的密度数据的灰度值为“2”,中点的密度数据的灰度值为“95”,小点的密度数据的灰度值为“30”。
接着,如使用图21所述,通过把大点的密度数据、中点用的中间数据或小点用的中间数据与抖动矩阵中设定的阈值比较,对各像素判断各种点形成的有无。这里,比较中使用的抖动矩阵的阈值从抖动矩阵中使用着眼的像素群所对应的地方设定的阈值。例如,在图23所示的例子中,像素群位于图像的左上角,所以关于阈值,使用抖动矩阵中的左上角的像素群中设定的阈值。
然后,在像素群中设定的8个阈值中,关于设定比大点的密度数据还小的阈值的像素,判定为形成大点。这里,大点的密度数据为灰度值“2”,所以形成大点的像素只是设定阈值“1”的像素。在图23中,对判断为形成大点的像素赋予细的斜线,表示。判断为在设定比大点的密度数据“2”还大,并且比大点的密度数据和中点的密度数据相加取得的中点用的中间数据“97”还小的阈值的像素形成中点。这样的像素只是设定阈值“42”的像素、阈值“58”的像素等2个像素。图23中,对判断为形成中点的像素赋予稍粗的斜线,表示。最后,判断为在设定比中点用的中间数据“97”还大,并且比中点用的中间数据小和点的密度数据相加取得的中点用的中间数据“127”还小的阈值的像素形成小点。这样的像素只是设定阈值“109”的像素。图23中,对判断为形成小点的像素赋予粗的斜线,表示。这样判断大点、中点、小点形成的有无的结果是着眼的像素群的像素群灰度值为“97”时,形成大点1个、中点个2、小点1个。
如果像素群灰度值大幅度不同,则像素群内形成的大点、中点、小点的个数也不同。此外,像素群灰度值从“0”变化到“255”,伴随着此,大点、中点、小点的个数变化几个阶段。如果像素群的分类编号不同,则抖动矩阵的阈值也不同,所以点个数的变化方法不同。通过按各分类编号调查像素群灰度值从“0”变化到“255”时的各种点的个数阶段性变化的举动,能设定图9所示的多值化表。
图24是表示实际设定多值化表的处理流程的程序流程图。以下按照程序流程图说明。如果开始多值化表的设定处理,则首先选择一个像素群的分类编号(步骤S300)。例如这里选择分类编号1。
接着,从抖动矩阵读出于选择的分类编号的像素群对应的阈值(步骤S302)。例如,这里选择分类编号1,所以从图16所示的抖动矩阵中读出在图18b中表示为第1的块位置上设定的8个阈值。
这里,把多值化结果值RV和像素群灰度值BD设定为“0”(步骤S304),把大点、中点、小点的形成个数都设定为0(步骤S306)。
接着,通过参照图22所示的点密度变换表,把像素群灰度值变换为关于大点、中点、小点的密度数据后(步骤S308),根据这些密度数据和刚才读入的阈值,决定关于大中小各种点的形成个数(步骤S310)。即如使用图21或图23说明的那样,求出比大点的密度数据还小的阈值的个数,把取得的个数作为大点的形成个数。此外,求出比大点的大并且比中点用的中间数据小的阈值的个数,把它作为中点的形成个数。求出比中点用的中间数据并且比小点用的中间数据还小的阈值的个数,把它作为小点的形成个数。
判断这样求出的各种点的形成个数对于刚才设定的形成个数是否变更(步骤S312)。然后,如果判断为变更了(步骤S312:yes),就把多值化结果值RV增加“1”(步骤S314),把取得的多值化结果值RV与像素群灰度值BD对应存储(步骤S316)。而判断为形成个数未变更时(步骤S312:no),不把多值化结果值RV增加,把该值与像素群灰度值BD对应存储(步骤S316)。
如果存储对于某像素群灰度值的多值化结果值,就判断像素群灰度值BD是否到达灰度值255(步骤S318)。如果未到达灰度值255(步骤S318:no),就把多值化结果值RV增加“1”(步骤S320),回到步骤S308,再度把像素群灰度值BD变换为密度数据后,进行接着的一系列处理,与新的像素群灰度值BD对应存储多值化结果值RV(步骤S316)。重复这样的操作,直到像素群灰度值BD达到灰度值255(步骤S316:yes),关于选择的分类编号,设定全部多值化结果值。
因此,判断关于全部分类编号,是否进行了以上的处理(步骤S322),在剩下未处理的分类编号时(步骤S322:no),就回到步骤S300,再度进行以上的处理。复这样的处理,如果判断关于全部分类编号,设定了全部多值化结果值(步骤S322:yes),就结束图24所示的多值化表设定处理。
从以上的说明可知,根据把像素群灰度值变换取得的大中小各点的密度数据、抖动矩阵中与像素群对应的位置存储的阈值,决定多值化结果值。这里,图22所示的点密度变换表即使像素群的分类编号不同,也参照相同的表,所以对于像素群灰度值的各点的密度数据也不根据分类编号,取得相同的密度数据。可是,从抖动矩阵读出的阈值的组按分类编号不同。这是因为抖动矩阵为了没有由于在图像上以一定的图案产生点或者聚集在接近的位置发生而使图像质量恶化,阈值尽可能分散并且尽可能随机设定。因此,把像素群中包含的多个阈值作为组观察时,变为完全相同的组合的可能性极低。因为这样的理由,所以本实施里的多值化结果值生成处理中参照的多值化表中,像素群灰度值和多值化结果值的对应关系按各分类编号变为不同,此外,多值化结果值变化的次数(图10所示的多值化的级数)也按照分类编号而不同。
C-6.变换表的设定方法:
下面说明使用图12描述的变换表的设定方法。有关的变换表是在图11所示的点形成的有无决定处理中,把多值化结果值与分类编号组合,变换为表示像素群中形成的点个数的数据时参照的表。
从使用图24描述的多值化表的设定方法可知,根据像素群中形成的大中小各点的个数,决定多值化表中设定的多值化结果值。本来多值化结果值与像素群中形成的点个数的组合不对应,通过组合多值化结果值和像素群的分类编号,能与具体的点个数的组合对应。这是因为把像素群灰度值从灰度值0增加到灰度值255时,抽出大中小各点的形成个数是否变化,在省略的状态下设定表示各点个数的组合怎样变化的信息。
如果知道像素群的分类编号,就能从相当于该像素群中第几次的变化即多值化结果值,确定关于各种点的具体的个数的组合。因此,按各分类编号,求出成为设定多值化结果值的根据的各种点的具体的个数,把取得的点个数的组合所对应的代码数据与多值化结果值对应存储。通过关于全部分类编号,进行这样的操作,设定图12所示的变换表。
图25是表示设定变换表的具体的处理流程的程序流程图。以下按照程序流程图说明。如果开始变换表设定处理,则首先选择一个作为设定对象的分类编号(步骤S350),把多值化结果值RV设定为0(步骤S352)。
接着,取得与多值化结果值RV对应的大中小各点的个数(步骤S354)。如果多值化结果值为”N”,则关于该分类编号的像素群,一边使像素群灰度值从“0”变化到“255”,一边判断大中小各点形成的有无,取得点的形成个数变化第N个时的大点、中点、小点的个数。
把这样取得的各点的个数组合变换为代码数据(步骤S356)。通过参照图13所示的对应表,进行从点个数组合向代码数据的变换。接着,把取得的代码数据与多值化结果值对应存储后(步骤S358),判断是否达到关于作为对象的分类编号的最大多值化结果值(步骤S360)。即如使用图9说明的那样,多值化结果值的最大值根据像素群的分类编号而不同,所以判断是否达到关于作为对象的分类编号的多值化结果的最大值。
然后当未达到多值化结果的最大值时(步骤S360:no),使多值化结果值RV增加“1”(步骤S362)。然后,回到步骤S354,取得与新的多值化结果值RV对应的各点的个数后,重复接着的一系列处理。重复这样的操作,如果判断为达到作为对象的分类编号的最大多值化结果值(步骤S360:yes),则关于该分类编号,在变换表中设定了全部数据。
因此,判断关于全部分类编号,是否进行了同样的处理(步骤S364)。然后,还剩下未处理的分类编号时,回到步骤S350,选择新的分类编号,关于分类编号,进行上述的一系列处理。如果关于全部分类编号,判定为结束处理(步骤S364:yes),就设定了变换表的全部数据,所以结束图25所示的处理。
实施例1的彩色打印机200把这样设定的变换表预先存储到控制电路260中内置的ROM中。而且,在图11所示的点形成的有无决定处理中,通过参照该变换表,把多值化结果值变换为个数数据。
C-7.顺序值矩阵的设定方法:
下面说明设定图14所示的顺序值矩阵的方法。如上所述,顺序值矩阵是关于像素群内的各像素,设定点形成的顺序的矩阵。在图11所示的点形成的有无决定处理中,读入与像素群对应的顺序值矩阵,按照矩阵中设定的顺序,决定形成大点、中点、小点的像素。
顺序值矩阵与所述的多值化表同样,根据专利3292104号中描述的手法(发展抖动法,能判断尺寸不同地多个种类的点形成的有无的手法)设定。即设定多值化表时,如上所述,像素群内的全部像素具有相同的图像数据(像素群灰度值),一边决定像素群内形成的大中小点的个数,一边使像素群灰度值从“0”变化到255,这时着眼于形成各点的个数变化,设定多值化结果值。此外,如图12所示,如果组合多值化结果值和分类编号,就能复原到像素群内形成的大中小各点的个数。可是,省略关于各种点在像素群内哪个像素形成的信息,从多值化结果值或分类编号无法知道。认为顺序值矩阵能存储关于像素群内各种点形成的像素位置的信息。即如果把专利3292104号中描述的手法应用于像素群,则如使用图21~图23所述,不仅各种点的形成个数,连像素群内点形成的像素位置都能决定,在本实施例中把该手法分解为2个要素,关于与各种点的形成个数有关的信息,反映到多值化结果值(正确来说,多值化结果值和分类编号的组合),关于与点形成的像素位置有关的信息,反映到顺序值矩阵。这样的顺序值矩阵实际上能比较简单地设定。
图26a~图26c是具体表示设定顺序值矩阵的方法的说明图。以下参照图说明。在设定顺序值矩阵时,首先把抖动矩阵分割为具有与像素群相同尺寸的多个块,对各块赋予连续编号。如图18所述,该连续编号原封不动成为的分类编号。图26a是在概念上表示把抖动矩阵分割为多个块的样子的说明图。如果抖动矩阵具有图16所示的尺寸(即主扫描方向128像素,副扫描方向64像素),一个像素群具有在主扫描方向4像素、副扫描方向2像素的尺寸,所以如图26a所示,抖动矩阵分割为在主扫描方向和副扫描方向分别为32块,全体为赋予1~1024的分类编号的1024个块。
如果把抖动矩阵分割为多块,就从各块1次1组地生成顺序值矩阵。图26b是作为一个例子,表示从分类编号1的块生成顺序值矩阵的样子的说明图。在图26b的左侧一半,表示分类编号1的块中包含的抖动矩阵的阈值。如图23所述,从设定小阈值的像素按顺序形成点。因此,能认为图26b所示的第1块中第一个形成点的像素为设定阈值“1”的像素。因此,对该像素,设定顺序值“1”。同样,第二个形成点的像素是设定第二小的阈值“42”的像素。因此,对该像素,设定顺序值“2”。如果从块内设定的阈值小的像素按顺序决定顺序值“1”~“8”,就能取得图26b的右侧一半所示的分类编号1的顺序值矩阵。
图26c表示从块内设定小阈值的像素按顺序设定顺序值“1”~“8”,取得分类编号2的顺序值矩阵的样子。关于图26a所示的分类编号1到“1024”的全部块,进行以上的操作,能取得从分类编号“1”~“1024”的顺序值矩阵。
实施例1的彩色打印机200把这样设定的顺序值矩阵与像素群的分类编号对应,预先存储在控制电路260中内置的ROM内。而且,在实施图11所示的点形成的有无决定处理时,从存储的顺序值矩阵中读出与像素群的分类编号对应的矩阵。
C-8.从多值化结果值能适当决定点形成的有无的原理:
如上所述,在实施例1的图像打印处理中,把多个像素汇总为像素群,参照图9所示的多值化表,为各像素群决定多值化结果值。接着,一边参照图12所示的变换表、图14所示的顺序值矩阵,根据多值化结果值决定像素群内形成各种点的像素位置。这样决定形成点的像素位置时,能输出点恰当分散的高图像质量的图像。尽管汇总比较少数(在本实施例中,分别为8个)的像素群,进行处理,能取得通过使用以所谓的蓝噪声屏蔽或绿噪声屏蔽为代表的像素数超过千个的大规模抖动矩阵实现的良好的点分布。以下说明这样的事实成为可能的原理。
如果使用所述的专利3292104号中描述的技术,则如使用图21和图22所述,把图像数据变换为大点的密度数据、中点用的中间数据、小点用的中间数据,与抖动矩阵中设定的阈值比较,能判断关于大中小各点形成的有无。如果这时参照的抖动矩阵为所谓的蓝噪声屏蔽或绿噪声屏蔽为代表的考虑了分散性的矩阵,就能取得点良好分散的高图像质量的图像。
此外,图像数据一般有在相邻的像素间分配近似(或相同)的灰度值的倾向。近年,由于高图像质量化的要求,存在图像数据的析像度日益变高的倾向,但是图像数据的析像度越高,在相邻的像素间分配近似或相同的灰度值的倾向越显著。因此,如图23所述,把多个像素汇总为像素群,像素群内的像素全部具有相同的图像数据,判断大中小各点的形成的有无时,实际上很少在图像质量上产生差异。
这里,在所述的本实施例的多值化结果值生成处理中,把像素群灰度值多值化,生成依存于像素群的分类编号的多值化结果值。这样生成的多值化结果值通过与像素群的分类编号组合,成为表示像素群内形成的各种点的个数的数据。关于图23所示的像素群,通过与像素群的分类编号组合,生成表示大点、中点、小点的形成个数分别为1个、2个、1个的多值化结果值。
在所述的实施例1的点形成的有无决定处理中,如果收到这样的多值化结果值,就关于像素群内的各像素,决定关于大中小各点的形成的有无。图27是在概念上总结在所述点形成的有无决定处理中,接收多值化结果值,关于像素群内的各像素,判断大中小各点的形成的有无的大致处理流程的说明图。如图所示,如果收到多值化结果值,就在求出该结果值表示的像素群的分类编号后,根据多值化结果值和分类编号,取得大中小各点的形成个数。此外,从预先存储的顺序值矩阵中读出与分类编号对应存储的矩阵。须指出的是,后面描述求出分类编号的具体方法。
如果一边假定图23所示的像素群,一边说明,像素群位于图像的左上角,所以分类编号为1。通过把像素群的多值化结果值与求出的分类编号组合,知道在该像素群中分别形成大点1个、中点2个、小点1个。为了决定各点在像素群内的哪个像素形成,参照分类编号1的顺序值矩阵。该顺序值矩阵是在图23中,从点形成的有无的判断中使用的抖动矩阵的相应部分即关于像素群内的各像素判断点形成的有无时使用的相应部分生成的顺序值矩阵。
根据这样取得的大中小各点的个数、顺序值矩阵,决定在像素群内形成点的像素位置。决定像素位置的具体方法使用图15已经说明,所以如果这里省略说明,只表示结果,则大点在顺序值1的像素形成,中点在顺序值2和3的像素形成,小点在顺序值4的像素形成。在图27中,按照图15,对形成大点的像素赋予细的阴影线,对形成中点的像素赋予稍粗的阴影线,对形成小点的像素赋予粗的阴影线,表示。如果比较这样取得的点的分布、图23所示的按各像素判断点形成的有无而取得的点的分布,就知道两者的点分布完全一致。
只收到依存于分类编号的多值化结果值时,如果使用上述的方法,决定点形成的有无,就能取得与应用所述专利3292104号,一边参照抖动法,一边对各像素判断大中小各点形成的有无时完全相同的分布。因此,能取得点良好分散的高图像质量的图像。
为了生成多值化结果值而参照的多值化表根据抖动矩阵设定(参照图25)。从多值化结果值决定点形成的有无的过程中参照的变换表或者顺序值矩阵也根据抖动矩阵设定(参照图25、图26)。因此,作为这些表类的设定中使用的抖动矩阵,如果使用所谓的蓝噪声屏蔽或绿噪声屏蔽,就能取得通过使用这些屏蔽才取得的高图像质量的图像。
须指出的是,在本说明书中所说的蓝噪声屏蔽是不规则地产生点的抖动矩阵,是设定的阈值的空间频率在2像素以下为1周期的高频区域中具有最大成分的矩阵。可以是明亮的(亮度高)的图像等在特定的亮度附近以规则的图案形成点的情况。此外,本说明书中所说的蓝噪声特性是指蓝噪声屏蔽具有的特性。本说明书中所说的绿噪声屏蔽是不规则地产生点的抖动矩阵,是设定的阈值的空间频率在2像素~10几像素为1周期的中间频率区中具有最大成分的矩阵。关于绿噪声屏蔽,如果是特定的亮度附近,就可以是以规则的图案形成点的情况。此外,绿噪声特性是指绿噪声屏蔽具有的特性。
图28是在概念上表示蓝噪声屏蔽、绿噪声屏蔽中设定的阈值的空间频率特性的说明图。在图28中,因为显示的方便,在横轴,代替空间频率,取周期显示。当然周期越短,空间频率越高。此外,图28的纵轴表示各周期的空间频率成分。须指出的是,在某程度变化变平滑地平滑化的状态下表示图示的频率成分。
图中的实线在概念上表示蓝噪声屏蔽的空间频率成分。如图所示,蓝噪声屏蔽在1周期长度为2像素以下的高频区域中具有最大的频率成分。蓝噪声屏蔽的阈值设定为具有这样的空间频率特性,所以根据蓝噪声屏蔽,判断点形成的有无时,处于以彼此分离的状态形成点的倾向。此外,图中的虚线在概念上表示绿噪声屏蔽的空间频率成分。如图所示,绿噪声屏蔽在1周期长度为2像素到十几像素的中间频率区中具有最大的频率成分。绿噪声屏蔽的阈值设定为具有这样的空间频率特性,所以根据绿噪声屏蔽,判断点形成的有无时,一边以数点单位相邻形成点,一边作为全体,在点的聚集分散的状态下形成。
因此,如果根据这样的蓝噪声屏蔽或绿噪声屏蔽,决定像素群内的点形成的有无,则尽管以像素群单位处理,还是变为反映蓝噪声特性或绿噪声特性的分布地产生点,能输出高图像质量的图像。
C-9.从像素群的位置决定分类编号的方法:
这里,简单说明从图像上的像素群的位置求出像素群的分类编号的方法。
图29a~图29c是表示根据图像上的像素群的位置,求出分类编号的方法的说明图。作为对象的像素群如图29a所示,位于以图像的最左上角为基准,在主扫描方向第i个像素群、在副扫描方向第j个像素群的位置。此外,这样的像素群的位置由坐标值(i,j)表示。此外,抖动矩阵的尺寸通常没有图像那么大,所以如使用图19b所述那样,一边使抖动矩阵在主扫描方向移动,一边反复使用。
在一个抖动矩阵,在主扫描方向和副扫描方向分别包含32个块(参照图18b),所以在抖动矩阵中,如果存在对象的像素群的位置为I行J列,则I、J分别能由以下表达式求出。
I=i-int(i/32)×32
J=J-int(j/32)×32
这里,int是表示去掉小数点以下,整数化的演算符。因此,把以上表达式应用到像素群的坐标值(i,j),求出I、J,就知道该像素群在抖动矩阵中位于I行J列。据此,分类编号能通过
I+(J-1)×32…(2)
求出。
此外,不执行上述的计算,从i、j的2进制表示抽出给定位的数据,就能极简单地求出表示像素群在抖动矩阵中的位置的值I、J。图30是具体表示从像素群的坐标值(i,j)求出像素群在抖动矩阵中的位置的方法的说明图。图30(a)在概念上表示代表数值i的10位的用2进制表示的数据。须指出的是,在图30(a)中,为了识别各位,从最高位到最低位,赋予1~10的连续编号,表示。
在求出表示像素群的位置的值I时,首先计算int(i/32)。通过使i的2进制数据向右移5位,能执行该计算(参照图30(b))。接着,计算int(i/32)×32。能通过使int(i/32)的2进制数据向左移5位,这些该计算(参照图30(c))。最后,如果从i减去int(i/32)×32,就能取得作为目的的数值I。该操作结果变为从数值I的2进制数据只抽出低5位,所以能极简单地取得数值I。同样,通过从数值J的2进制数据只抽出低5位,所以能极简单地取得数值J。如果求出这样的数值I和J,就能使用上述的表达式(2)计算分类编号。
以上,详细说明了实施例1的图像打印处理中进行的多值化结果值生成处理(图6的步骤S106)、点形成的有无决定处理(图6的步骤S108)的内容。在上述的多值化结果值生成处理中,汇总给定数的像素,生成像素群,生成把该像素群的像素群灰度值多值化取得的结果值。在生成多值化结果值时,通过参照多值化表,能极迅速地生成。这样取得的多值化结果值是依存于像素群的分类编号的结果值,但是与按各像素表示点形成的有无的数据相比,数据量小很多,能从计算机100向彩色打印机200极迅速地输出数据。即在上述的多值化结果值生成处理中,能高速执行多值化结果值的生成和输出,靠这部分就能迅速打印图像。
生成多值化结果值的处理不过是参照多值化表的处理,能用极简便的处理求出为了参照多值化表而使用的分类编号和像素群灰度值,所以使用不具有计算机100那样高的处理能力的仪器时,也能以足够实用的速度处理。
处理内容的大部分是参照表的极简单的处理,所以不使用CPU在软件上执行,也容易使用嵌入专用的逻辑电路的IC芯片,在硬件上执行,据此,能高速处理。因此,直接连接数码相机120等生成图像数据的仪器、彩色打印机200时,在数码相机120或彩色打印机200的内部执行多值化结果值生成处理,能迅速打印图像。
而在实施例1的图像打印处理中执行的点形成的有无决定处理中,如果收到多值化结果值,就根据像素群内的各像素,决定点形成的有无。在决定点形成的有无时,通过参照变换表,把多值化结果值变换为点个数的组合。然后,通过参照顺序值矩阵,决定各种点的形成位置。即通过参照变换表和顺序值矩阵,能极迅速决定形成各种点的像素位置。
通常,如果能形成的点的种类增加,决定形成各种点的像素位置的处理加速度地变复杂。而在上述的实施例1的点形成的有无决定处理中,点的种类增加时,参照变换表和顺序值矩阵等基本的处理内容相同,处理内容不复杂化。根据实施例1的点形成的有无决定处理,可以说能进行简单、迅速的处理。与上述的多值化结果值生成处理同样,在本实施例的点形成的有无决定处理中,处理内容的大部分是只参照表的极简单的处理,所以不使用CPU在软件上执行,也容易使用嵌入专用的逻辑电路的IC芯片,在硬件上执行,据此,能高速处理。
C-10.变形例
C-10-1.变形例1
在上述的实施例1的多值化结果值生成处理中,参照按照从灰度值0~灰度值255的各像素群灰度值存储对应的多值化结果值的多值化表。可是,多值化结果值随着像素群灰度值增加,阶段性地增加,所以如果只存储多值化结果值切换的像素群灰度值,就能求出对于像素群灰度值的多值化结果值。在以下说明的实施例1的变形例的图像打印处理中,继续这样的变形例的多值化结果值生成处理。
图31是在概念上表示变形例的多值化结果值生成处理中参照的阈值表的说明图。如图所示,在阈值表中,对各分类编号设定与多值化结果值对应的阈值。该阈值表示像素群灰度值从灰度值0~灰度值255时,多值化结果值变为最大的像素群灰度值。作为一个例子,说明分类编号1的像素群。关于分类编号1,对于多值化结果值“1”,设定阈值“2”。它表示关于分类编号1的像素群,如果像素群灰度值位于“0”~“2”的范围,多值化结果值就变为“0”。此外,对于多值化结果值“1”,设定阈值“15”。它表示关于分类编号1的像素群,如果像素群灰度值位于“3”~“15”的范围,多值化结果值就变为“1”。同样,对于多值化结果值“14”,设定阈值“243”,对于多值化结果值“15”,设定阈值“255”。它表示如果像素群灰度值位于“244”~“255”的范围,多值化结果值就变为“15”,关于分类编号1的像素群,多值化结果值的最大值为“15”。
须指出的是,在图31中,各分类编号的阈值分别与多值化结果值对应设置。可是,可以不与多值化结果值对应,按照各分类编号存储阈值的组。这时,通过计算比像素群灰度值还小的阈值的个数,能求出多值化结果值。再在例子中使用分类编号1的像素群,说明。像素群灰度值为“20”。在为分类编号1设定的阈值的组中,比阈值20还小的阈值为“2”、“15”、“18”等3个。因此,求出对于像素群灰度值20的多值化结果值是“3”。
在以上说明的变形例的多值化结果值生成处理中,求出关于像素群的像素群灰度值和分类编号后,通过参照图31所示的阈值表,生成多值化结果值。阈值表能以比所述实施例1的多值化结果值生成处理中参照的多值化表(参照图9)更少的数据量存储。因此,变形例的多值化结果值生成处理与实施例1的处理相比,能节约存储器使用量。而实施例1的多值化结果值生成处理从分类编号和像素群灰度值参照多值化表,就能立刻求出多值化结果值。即没必要象变形例的处理那样比较像素群灰度值和阈值,所以能迅速多值化。
C-10-2.变形例2
在上述的实施例1的点形成的有无决定处理中,如果收到像素群的分类编号和多值化结果值,就把它变换为表示像素群内形成的各种点的个数的数据。而且,在判断点形成的有无时,按点的种类,决定关于像素群内的各像素,是否形成点。例如,在图11所示的程序流程图中,按点的各种类判断点形成的有无,从而首先判断关于大点的点形成的有无,接着进行关于中点的判断,最后关于小点,进行判断。可是,判断点形成的有无的方法并不局限于这样的方法。例如,从像素群内1次选择1个像素,关于各像素,判断形成大中小的哪个点,或不形成点。在以下说明的变形例2的图像打印处理中,进行这样的变形例的点形成的有无决定处理。
图32是部署变形例的点形成的有无决定处理的流程的程序流程图。以下按照程序流程图,说明变形例的点形成的有无决定处理。
在变形例的点形成的有无决定处理中,也与所述的实施例1的处理同样,如果开始处理,就首先选择一个作为处理对象的像素群(步骤S400)。接着,取得选择的像素群的多值化结果值(步骤S402),根据像素群的分类编号和多值化结果值,取得表示该像素群中形成的点个数的数据(步骤S404)。从分类编号和多值化结果值的组合,参照图12所示的变换表,能迅速取得点个数的数据。
在变形例的点形成的有无决定处理中,把这样取得的点个数的数据变换为16位长度的中间数据(步骤S406)。即在图12的变换表中,为了减少数据量,把点个数的数据表示为8位长度的代码数据,但是在变形例的点形成的有无决定处理中,变换为能以更简便决定的形式表现点形成的有无的中间数据。这里,中间数据的数据长度为16位是基于如果像素群内包含的像素数是8个,关于各像素的点形成的有无为2位,就能表现。换言之,中间数据是把每2位作为1组,使用相当于像素数的8组数据,表示点个数的数据。如果以这样的形式表现像素群中形成的点个数,则如后面所述,能容易取得与像素的对应,所以能简便决定点形成的有无。在变形例的点形成的有无决定处理中,预先存储表示点个数的代码数据和中间数据的对应关系,在步骤S406的处理中,通过参照有关的对应关系,取得中间数据。
图33是表示把表示点个数的代码数据和中间数据对应的对应表的说明图。如上所述,代码数据与关于各种点的个数的组合对应(参照图13),所以把2位作为1组,表示点的种类,如果把位的组变换为按相当于点个数的数量排列的表现形式,就能取得16位的数据。16位长度的中间数据成为把代码数据的表现形式这样变换取得的数据。
例如,代码数据“1”表示大点0个、中点0个、小点1个的组合。须指出的是,作为参考,在图33的右侧,表示各代码数据表示的位数的组合。如果表示小点的2位数据为“01”,则与代码数据“1”对应的16位数据成为只包含1组“01”,其他7组2位数据为“00”的数据。须指出的是,2位数据“00”是表示不形成点的数据。
同样,代码数据“163”表示大点7个、中点1个、小点0个的组合。如果表示大点的2位数据为“11”,表示中点的2位数据为“10”,则与代码数据“163”对应的16位数据成为包含7组“11”的2位数据,包含“10”的2位数据的数据。
须指出的是,这些2位数据按大点、中点、小点的顺序,在右侧调整设定。例如点个数的组合如果是大点1个、中点2个、小点3个,在8组的2位数据中,表示大点的2位数据“11”在右端只设定1组,接着在其左邻,设定2组表示中点的2位数据“10”,在其左邻,设定3组表示小点的2位数据“01”,在剩下的2组设定表示不形成点的2位数据“00”。也可以在左侧调整设定这些2位数据。即以大点、中点、小点的顺序从左按顺序设定。
在图32所示的变形例的点形成的有无决定处理的S406中,通过参照图33所示的对应关系,进行把表示点个数的数据变换为中间数据的处理。须指出的是,在以上的说明中,通过参照图12所示的变换表,把分类编号以及像素群灰度值的组合变换为表示点个数的8位代码数据后,根据图33所示的对应关系,变换为16位的中间数据。代码数据和中间数据为1对1对应,所以在图12所示的变换表中,不是8位的代码数据中间数据,而设定16位的中间数据,从像素群的分类编号以及像素群灰度值的组合能立刻取得中间数据。如果这样,变换表的数据量虽然增多,但是能迅速取得中间数据。
如果取得中间数据,在读入与像素群对应的顺序值矩阵后(步骤S408),从像素群中选择一个要决定点形成的有无的像素(步骤S410),取得在顺序值矩阵中选择的像素位置设定的顺序值(步骤S412)。
接着,从刚才取得的中间数据读出在与顺序值对应的地方设定的2位数据,决定关于选择的像素的点形成的有无(步骤S414)。图34是表示从中间数据读出与顺序值对应的地方的数据,决定点形成的有无的样子的说明图。图34(a)表示变换某像素群中形成的点个数的数据而取得的中间数据。如上所述,中间数据是16位长度的数据,由分别2位的8组数据构成。此外,在图34(a)所示的中间数据中包含1组表示大点的2位数据“11”、2组表示中点的2位数据“10”、3组表示小点的2位数据“01”、2组表示不形成点的2位数据“00”,这些2位数据按大点、中点、小点的顺序在右侧调整设定。
要决定点形成的有无的像素的顺序值为“3”。这时,如果在中间数据中,读出从右开始第3组设定的2位数据,就能决定在顺序值3的像素应该形成的点的种类。图34(b)在概念上表示读出位于从中间数据的右端第3组的2位数据的样子。在图示的例子中,读出2位数据是“10”,所以决定在该像素中形成中点。如果顺序值为“1”,就读出中间数据的右端设定的2位数据,形成大点。
在变形例的点形成的有无决定处理中,通过从中间数据读出在相当于顺序值的地方设定的2位数据的极简单的操作,能决定点形成的有无。这基于以下的理由。首先,在中间数据,以右侧调整设定表示大点、中点、小点的2位数据。而如图21或图23所示,在使用抖动法判断大中小各点的形成的有无的处理中,按大点、中点、小点的顺序决定点形成的有无。
因此,如果从右端按顺序读出中间数据中设定的2位数据,就能以与使用图21或图23描述的手法决定形成各种点的像素位置的顺序相同的顺序,取得表示大点、中点、小点的2位数据的排列。
此外,在使用图21或图23描述的手法中,从抖动矩阵中设定小的阈值的像素按顺序形成点。而顺序值矩阵中设定的顺序值表示抖动矩阵中设定的阈值小的顺序。因此,顺序值在使用图21或图23描述的手法判断点形成的有无时,与形成点的顺序一致。
因此,如果知道作为对象的像素的顺序值,则在应用图21或图23的手法时,能知道该像素是像素群中第几个形成点的像素,如果从右端数中间数据,读出第顺序值组的2位数据,就能知道应用图21或图23的手法时取得的点形成的有无的判断结果。
须指出的是,以上说明在中间数据中,按照顺序值变更读出2位数据的地方。可是,可以不改变中间数据中读出的地方,读出数据的地方固定,使中间数据只移动相当于顺序值的组数。这样也能决定点形成的有无。图34(c)是在概念上表示通过使中间数据移动,决定点形成的有无的样子的说明图。在图示的例子中,读出位于中间数据的右端的2位数据,把中间数据向右移动与像素的顺序值对应的组数(具体而言,从顺序值少1的组数)。如果比较图34(b)和图34(c),可知,无论进行哪个操作,结果都读出中间数据中的相同地方设定的2位数据。使数据移动给定的位数的处理能比较高速地实施,所以如果这样移动中间数据,就能迅速读出与顺序值对应的地方的2位数据,能迅速决定关于着眼的像素的点形成的有无。
如上所述,通过从中间数据读出相当于顺序值的地方设定的2位数据,如果决定了关于着眼的像素的点形成的有无(图32的步骤S412),就判断关于作为处理对象的像素群内的全部像素,是否决定了点形成的有无(步骤S414)。然后,在像素群内还剩下未决定点形成的有无的像素时(步骤S414:no),回到步骤S410,选择一个新的像素,关于选择的像素,进行上述的一系列处理后,再次判断关于像素群内的全部像素,是否决定了点形成的有无(步骤S416)。重复这样的操作,直到关于像素群内的全部像素,决定了点形成的有无(步骤S416:yes),关于图像中的全部像素群,进行上述的处理,判断是否决定了点形成的有无(步骤S418)。然后,如果剩下未处理的像素群(步骤S418:no),就回到步骤S400,选择新的像素群,关于该像素群,进行接着的一系列处理。重复这样的操作,最终如果判断为关于全部像素群的处理结束(步骤S418:yes),就结束图32所示的变形例的点形成的有无决定处理。
如上所述,在变形例的点形成的有无决定处理中,从中间数据读出在与序值对应的适当的地方设定的2位数据,就能简便地决定点形成的有无。在变形例2的图像打印处理中,能这样迅速决定点形成的有无,所以只此就能迅速打印图像。
D.实施例2:
在以上说明的实施例1的点形成的有无决定处理中,如果收到各像素群的多值化结果值,就通过参照图12所示的变换表,变换为表示点个数的数据后,一边参照顺序值矩阵,一边决定在像素群内形成点的像素位置。可是,如果收到各像素群的多值化结果值,也能立刻决定形成各种数据的像素位置。以下,说明这样的实施例2的点形成的有无决定处理。
D-1.实施例2的点形成的有无决定处理的原理:
如图27所示,在实施例1的点形成的有无决定处理中,如果按各像素群收到多值化结果值,求出像素群的分类编号后,从多值化结果值和分类编号的组合决定像素群内形成的各种点的个数。然后关于形成点的像素位置,通过参照与分类编号对应的顺序值矩阵,决定。即如果像素群的多值化结果值和分类编号决定,就能决定像素群内的各像素中形成的点的种类。因此,如果预先按多值化结果值和分类编号的各组合,求出像素群内的各像素中形成的点的种类,存储到对应表中,则只通过参照有关的对应表,就能立刻决定点形成的有无。实施例2的点形成的有无决定处理根据这样对考虑方法,从像素群的多值化结果值迅速决定关于各像素的点形成的有无。
图35是在概念上表示实施例2的点形成的有无决定处理中参照的变换表的说明图。如图所示,在实施例2变换表中,与多值化结果值和分类编号的组合对应,设定表示像素群内的各像素形成的点种类的数据。以下,把这样的数据称作点数据。如果参照图35所示的变换表,就能从像素群的分类编号和像素群灰度值的组合立刻读出对应的点数据。例如,如果分类编号i、像素群灰度值j,点数据就变为DD(i,j)。在这样读出的点数据中,关于像素群内的各像素,记述点形成的有无。
图36a和图36b是表示实施例2的变换表中设定的点数据的数据构造的说明图。如图36a所示,点数据成为由分别2位的8组数据构成的16位长度的数据。这里,一个点数据由8组数据构成是与本实施例的图像打印处理中,在一个像素群中包含8个像素对应。因此,一个像素群由4个像素构成时,1个点数据由4组数据构成。此外,1组数据为2位是与本实施例的彩色打印机200在一个像素能表现“形成大点”、“形成中点”、“形成小点”“不形成点”等4个状态对应。如果1个像素只能取得4个状态,就能用2位表现。因此,与一个像素对应的1组数据为2位的数据长度。
如图36所示,构成点数据的8组数据分别与像素群内的给定位置的像素对应。例如,位于图36a所示的点数据的开始的第1组数据如图36b所示,在像素群内与左上角的像素对应。此外,从点数据的开始第2组数据在像素群内与上级的左开始第二个像素对应。构成点数据的8组数据分别预先与像素群内的给定位置的像素对应。
而且,各组数据的内容表示对应的像素中形成的点的种类。即2位的数据“11”意味着形成大点。2位的数据“10”意味着形成中点,“01”意味着形成小点。从以上的说明可知,图36a所示的点数据成为表示在像素群的左上角形成大点,在上级的从左第三个像素形成中点,在下级的从左第二个像素形成小点,在像素群的右下角的像素形成中点,在其他像素不形成点的数据。
如果参照这样的变换表,就根据像素群的分类编号和多值化结果值,快速决定关于各像素的点形成的有无。
D-2.实施例2的点形成的有无决定处理:
下面说明在实施例2的点形成的有无决定处理中,从多值化结果值,关于像素群内的各像素,决定点形成的有无的具体处理。
图37是表示实施例2的点形成的有无决定处理的流程的程序流程图。以下按照程序流程图简单说明。如果开始实施例2的点形成的有无决定处理,就选择作为处理对象的一个像素群(步骤S500)。接着,取得选择的像素群的多值化结果值(步骤S502)。这时,如果不提供像素群的多值化结果值,就计算分类编号。然后,根据分类编号和多值化结果值的组合,通过参照图35所示的变换表,关于像素群内的各像素,读出表示点形成的有无的点数据(步骤S504)。在实施例2的点形成的有无决定处理中,只通过从变换表读出对应的位置中存储的点数据,就能关于像素群内的各像素,决定点形成的有无。
接着,关于全部像素群,判断是否决定点形成的有无(步骤S506),如果剩下未处理的像素群(步骤S506:no),就回到步骤S500,选择新的像素群,关于该像素群,进行接着的一系列处理。重复这样的操作,如果关于全部像素群,判断处理结束(步骤S506:yes),就结束图37所示的实施例2的点形成的有无决定处理。
如上所述,在实施例2的点形成的有无决定处理中,只参照1次变换表,就能立刻从多值化结果值决定关于像素群内的各像素的点形成的有无。因此,对于图11所示的实施例1的点形成的有无决定处理,能更快速决定点形成的有无,能极迅速地输出图像。
E.实施例3
在以上说明的各种实施例的点形成的有无决定处理中,在从按各像素群取得的多值化结果值,决定关于各像素的点形成的有无时,使用以抖动矩阵为基础的手法,决定点形成的有无。即着眼于能认为抖动矩阵中设定的阈值表示点的形成容易程度的点,在实施例1中,使用根据抖动矩阵设定的顺序值矩阵,按各像素群决定各像素的点形成的有无。此外,在实施例2中,在变换表中设定根据抖动矩阵设定的点数据,通过参照变换表,从多值化结果值,为各像素决定点形成的有无。因此,由上述的各种实施例的点形成的有无决定处理取得的点的分布能取得与使用抖动矩阵产生的点分布同等的点分布。这意味着能取得根据蓝噪声屏蔽或绿噪声屏蔽产生点,使用这些屏蔽才实现的点分布,但是,也意味着产生点的像素位置受到抖动矩阵的制约。换言之,在上述的各种实施例中,能迅速输出高图像质量的图像,但是取得的图像质量无法超过使用抖动法能实现的水平,为了实现进一步的高图像质量化,有必要下功夫不受抖动矩阵的制约地产生点。在以下说明的实施例3中,能不受抖动矩阵的制约地产生点,从而能迅速输出高图像质量的图像。
E-1.改善图像质量的原理:
以下,首先说明“基于抖动矩阵的制约”的意思,并且说明不受抖动矩阵的制约地产生点,从而能改善图像质量的原理。
图38a~图38c是在概念上表示根据抖动矩阵产生点时受到的制约的说明图。一般为了取得高图像质量的图像,希望点尽可能地到处分散,所以如果考虑理想的点的分布状态,则相邻的点之间的距离在全部点中一定,因此,点之间的距离和点的形成密度的关系规定为一个。即对于点的形成密度,最佳的点之间的距离存在一个。图38a和图38b是在概念上表示点的形成密度与最佳的点之间的距离的关系的说明图。须指出的是,点在二维平面上形成,但是为了能直观地理解,在图38中表示在一维直线上形成点。关于点在二维平面上形成的情况,如果在一维上发生的现象在正交的方向也发生,就能理解大致的状况。
图38a是表示在一维上以20%的密度形成点时的理想的分布的说明图。这时,如图所示,以5个像素1个的比例形成点。把该状态扩展到二维时,可以考虑在纵横分别以5个像素1个的比例形成点的情况,所以可以认为相当于以25个像素1个的比例即4%的密度形成点的状态。此外,为了使用抖动矩阵产生这样的点分布,有必要对形成点的像素设定小的阈值。
图38b是表示在一维上以33%的密度形成点时的理想的分布的说明图。如图所示,这时,以3像素1个的比例形成点。把该状态扩展到二维时,相当于以9个像素1个的比例即11%的密度形成点的状态。
这里,在一维上的点形成密度为20%时,图38a的点分布是理想的,所以为了取得这样的点分布,在图中,有必要在形成点的像素位置使用设定小的阈值的抖动矩阵。关于图38a的16个像素位置,可以在形成点的4个像素位置设定小的阈值。而一维上的点形成密度从20%增加到33%时,在16个像素位置中,如图38b所示,形成6个点。可是,在点形成密度20%时,为了取得理想的点分布,对4个像素位置已经设定小的阈值,所以从除了它们之中,在2个像素位置设定小的阈值。
图38c表示这样以密度33%形成点的状态。图中赋予斜线的点是为了以20%取得理想的点分布而形成的点,涂黑的点是为了使点形成密度变为33%而追加形成的点。如果把图38c的点分布与理想的点分布即图38b的分布相比,可知,图38c的点分布不是理想的分布。这是因为为了以密度20%取得理想的点分布,在抖动矩阵以5像素间隔设定小的阈值,所以以更高的密度形成点时,以该状态为前提,追加点。
在使用抖动矩阵产生点时,点的产生方法必须是以更低的密度下的点分布为前提,在那里追加新的点的点的产生方法。如果如下考虑,就能更明快地理解。即如上所述,能认为抖动矩阵中设定的阈值表示点的发生的容易程度,所以使用相同的抖动矩阵,如果以某密度形成点,则在更高的密度下,在该像素中一定形成点。换言之,在抖动矩阵中设定小的阈值的像素,以大部分密度总能形成点,在设定大的阈值的像素,以大部分密度不形成点。
“基于抖动矩阵的制约”是指点的产生方法受以低密度产生的点分布约束。因此,只要受基于抖动矩阵的制约,就无法在全部密度实现理想的点分布,必须变为以某程度的水平妥协的点分布。相反,如果能不受基于抖动矩阵的制约地产生点,就能变为更接近理想的点分布,从而能实现图像质量的改善。
图39是在概念上表示不受基于抖动矩阵的制约的点产生成为可能的数据变换方法的说明图。在实施例3中,与所述实施例1同样,从图像数据按各像素群生成像素群灰度值,把像素群灰度值变换为多值化结果值。接着,通过参照变换表,把取得的多值化结果值变换为表示像素群内应该形成的点的个数的个数数据或表示像素群内的点图案的点数据中的任意数据。像素群由8个像素构成,如果能形成的点的种类为3种,则如图13所述,点个数的组合只能取165种,所以能用8位数据表现。因此,如果使用不作为点个数的组合使用的91种的个数数据,就能表现91个点数据。
图40是在概念上表示使用8位的个数数据,表示165个点个数的组合、91个点数据的样子的说明图。如图所示,个数数据0~164的范围分配给表示大中小的点个数的组合,个数数据165~255的范围分配给表示点数据。因此,把多值化结果值变换取得的个数数据如果是第一种代码值(这里,灰度值0~164)的范围的数据,就是表示点个数的组合的本来意思下的个数数据,相反是第二种代码值(这里,比灰度值165大的数据)时,可以判断该个数数据实际上表示点数据。而且,由变换取得的个数数据表示点个数的组合时,与所述实施例1同样,参照顺序值矩阵,决定关于像素群内的各像素的点形成的有无。而个数数据实际上表示点数据时,把该个数数据变换为点数据,决定关于像素群内的各像素的点形成的有无。
图41是在概念上表示为了从个数数据取得点数据而参照的点图案表的说明图。如图所示,在点图案表,对于为了表示点数据而分配的个数数据,设定点数据。这里,点数据是通过图36所述的方法,表示像素群内的点分布(点图案)的数据。须指出的是,在图41中,为了参考,表示各点数据表示的点分布(点图案)。如果参照这样的点图案表,就能从分配给点数据的个数数据立刻决定像素群内的点分布。此外,在点图案表中,对于各个数数据,能设定自由的点数据,所以能不受抖动矩阵的制约地产生点。因此,认为如果并用在个数数据的一部分分配点个数的组合,对剩下的部分分配点数据,从个数数据参照顺序值矩阵,决定关于像素群内的各像素的点形成的有无的情况;参照点图案表,从个数数据立刻取得像素群内的点分布的情况;则作为全体,能不受抖动矩阵的制约地产生点。更具体地就此点加以说明。
图42是在概念上表示把关于某像素群的多值化结果值变换为表示点个数的个数数据和表示点数据的个数数据的样子的说明图。在使某像素群的像素群灰度值从灰度值0~255变化时,多值化结果值从0变化到18。即关于该像素群,像素群灰度值19值化。接着,参照图12所示的变换表,把多值化结果值变换为个数数据。图42中用实线案阶段表现的棒图在概念上表示从灰度值0到灰度值18的多值化结果值变换为个数数据的样子。如实施例1中所述,这样取得的个数数据从灰度值0到灰度值164的范围选择,成为表示关于大中小各点的个数的数据。
接着,把这样取得的个数数据变更为分配给点数据的个数数据。例如,对于多值化结果值2,变换为灰度值7的个数数据,但是把该个数数据变更为表示点数据的个数数据。对表示点数据的个数数据分配大于灰度值165的值。结果,关于该像素群,对于多值化结果值,代替灰度值7的个数数据,变换为灰度值168的个数数据。图42所示的虚线表示这样变更个数数据。须指出的是,图中表示的单点划线表示代表点的个数的个数数据的区域与表示点数据的个数数据的区域的边界。此外,对于多值化结果值,灰度值48的个数数据变更为灰度值178的个数数据。关于多值化结果值,也同样变更个数数据。如果把表示点个数的个数数据的一部分变更为表示点数据的个数数据,就如以下说明的那样,能不受抖动矩阵的制约地产生点。
图43是表示通过更换个数数据的一部分,能不受抖动矩阵的制约地产生点的样子的说明图。图43(a)表示作为对象的像素群的顺序值矩阵。此外,关于该像素群,多值化结果值0变换为个数数据“0”,多值化结果值1变换为个数数据“1”,多值化结果值2变换为个数数据“3”,多值化结果值3变换为个数数据“10”,多值化结果值4变换为个数数据“12”。这些个数数据都比灰度值164小,所以是表示各种点的个数的数据,根据图13所示的对应关系,个数数据“1”表示只形成一个小点。此外个数数据“3”表示只形成3个小点,个数数据“10”表示形成中点和小点各一个,个数数据“12”表示形成中点和小点各3个。这些点按照图43(a)所示的顺序值矩阵形成,所以结果关于该像素群,随着多值化结果值从0增加到4,如图43(b)~图43(f)所示那样,产生点。
这样的点的产生方法受抖动矩阵的制约。即关于像素群中,从上级的左开始第2个像素,最早形成点,然后伴随着像素群灰度值增加,有时小点变更为中点,但是总形成点。此外,关于像素群中,位于下级的最右端的像素,在比较早的阶段形成点,然后除了对顺序值1的像素只形成一个点的情况,关于该像素,总形成点。如果按照形成点,则小点置换到大点的情况另说,总对现在的点分布,追加新的点,产生点,成为受抖动矩阵的制约的点的产生。
而对于多值化结果值2的个数数据“3”变更为个数数据“181”。从个数数据“181”比灰度值165大可知,不是点的个数,而表示点数据,根据图41所示的点图案表,表示图43(g)所示的点分布。因此,通过把个数数据3变更为个数数据181,点的分布变化为图43(b)、图43(c)、图43(g)、图43(e)、图43(f)。
这样的点产生方法不受抖动矩阵的制约。即如果比较图43(c)和图43(g),可知,图43(g)的点分布不是以图43(c)的点分布为前提,追加新的点而取得的分布。此外,关于图43(g)和图43(e),图43(e)所示的点分布不是以图43(g)的点分布为前提,追加了新的点。如果变更的个数数据不是灰度值181,为其他个数数据,能变更为避图43(g)所示的点分布更适当的点分布。
如果这样把表示点个数的个数数据的一部分变更为表示点数据的个数数据,就能不受抖动矩阵的制约地产生点。如果能取得适当的点数据地选择变更的个数数据,就不仅不受抖动矩阵的制约,还能积极地控制点分布,从而以更希望的图案产生点。以上是不受抖动矩阵的制约地产生点,从而能改善图像质量的基本原理。以下,说明用于取得根据这样的原理,改善图像质量的图像的具体的处理内容。
E-2.实施例3的点形成的有无决定处理
图44是表示实施例3的点形成的有无决定处理的流程的程序流程图。有关的处理与图11所述的实施例1的点形成的有无决定处理同样,是接收按各像素群生成的多值化结果值,关于像素群内的各像素,决定点形成的有无的处理。
关于生成各像素群的多值化结果值的处理,与图7所述的实施例1的多值化结果值生成处理同样,所以这里只说明概要。首先,汇总给定个数的像素,生成像素群(相当于步骤S130),关于各像素群,求出像素群灰度值和分类编号后(相当于步骤S132),如果参照图9所示的多值化表,就能取得各像素群的多值化结果值(相当于步骤S134)。对于为各像素群取得的多值化结果值,进行以下说明的处理,关于像素群内的各像素,决定点形成的有无。
如果开始实施例3的点形成的有无决定处理,首先选择一个作为处理对象的像素群(步骤S600),取得关于选择的像素群的多值化结果值(步骤S602)。接着,通过参照变换表,取得根据像素群的分类编号和多值化结果值决定的个数数据(步骤S604)。在实施例3的点形成的有无决定处理中参照的变换表中,与实施例1的点形成的有无决定处理中参照的图12所示的变换表同样,按像素群的分类编号和多值化结果值的各组合,预先设定对应的个数数据。可是,实施例1的变换表中设定的个数数据的全部数据为表示点的个数的数据(灰度值为0~164的范围的数据),而在实施例3的变换表中,以表示点的个数的数据(灰度值为0~164的范围的数据)和表示点数据的个数数据(灰度值为165以上的数据)混合存在的状态设定。
图45是在概念上表示实施例3的点形成的有无决定处理中参照的变换表的说明图。如果与图12所示的变换表比较,可知,在实施例3参照的变换表中,个数数据变更为灰度值为165以上的个数数据(表示点数据的个数数据)。须指出的是,在图45中,对变更个数数据的地方赋予下划线,表示。此外,对于灰度值165~255的91个个数数据,如图41的点图案表所示,在表示适当的点图案的点数据对应的状态下预先设定。在点图案表中设定的点数据能任意选择认为对改善图像质量有效的91种点数据。图45所示的变换表成为混合设定表示点数据的个数数据、表示点个数的个数数据。然后,在实施例3的点形成的有无决定处理中,参照这样的变换表的结果、把像素群的多值化结果值变换为个数数据的结果是变换为表示点个数的个数数据和表示点数据的个数数据混合存在的状态的数据。
接着判断取得的个数数据是否灰度值165以上的数据(步骤S606)。然后,个数数据是低于灰度值165的数据时(步骤S606:no),认为该个数数据与实施例1同样表示点的个数,所以能与实施例1同样决定关于像素群内的各像素的点形成的有无。即如图11所示,从像素群中按大点、中点、小点的顺序决定形成点的像素位置,或者如图32所示,把个数数据变换为中间数据,关于像素群内的各像素,根据中间数据决定应该形成大点、中点、小点的哪个点。
在图44所示的程序流程图中,与图32所述的方法同样,把个数数据变换为中间数据,关于各像素,决定应该形成哪个点。即把取得的个数数据变换为中间数据(步骤S608),接着读入与像素群对应的顺序值矩阵(步骤S610)。然后,按照顺序值矩阵中设定的顺序值,从中间数据读出在相应的位位置设定的2位数据,关于像素群内的各像素,决定形成哪个点或不形成任何点(步骤S612)。
而参照变换表取得的个数数据为灰度值165以上的数据时(步骤S606:yes),认为取得的个数数据不是点的个数,是表示点数据的个数数据。因此,这时参照图41所示的点图案表,把个数数据变化为点数据(步骤S614)。如图36所述,在点数据设定关于像素群内的各像素的点形成的有无,所以如果把个数数据变换为点数据,就能取得关于像素群内的各像素的点形成的有无。
按照个数数据是否大于灰度值165,用各自的方法从个数数据决定关于像素群内的各像素的点形成的有无,关于全体像素群,判断上述的处理是否结束(步骤S616)。然后,如果剩下未处理的像素群(步骤S616:no),就回到处理的开始,选择新的像素群(步骤S600),进行接着的一系列处理。重复这样的处理,如果判断关于全部像素群,处理结束(步骤S616:yes),就结束图44所示的实施例3的点形成的有无决定处理。
根据以上说明的实施例3的点形成的有无决定处理,关于低于灰度值165的个数数据,为表示点个数的个数数据,按照顺序值矩阵决定点形成的有无,关于灰度值165以上的个数数据,把个数数据变换为点数据,决定关于各像素的点形成的有无。关于灰度值165以上的个数数据,能不受抖动矩阵的制约地设定任意的点数据,所以如果使按照决定点形成的有无的个数数据、通过变换为点数据而能立刻决定点形成的有无的个数数据混合存在,就如图43所述,作为全体,能不受抖动矩阵的制约地产生点。
能把灰度值165以上的个数数据与任意的点数据对应,所以能选择能取得更高图像质量的改善效果的点数据,与各个数数据对应。这样的个数数据能按像素群的分类编号与多值化结果值的各组合设定,所以这意味着确定像素群的分类编号和像素群灰度值(多值化结果值)的组合,能积极控制用怎样的分布产生点。
此外,一般想取得高图像质量的图像时,在判断点形成的有无时,常常使用声称能取得比抖动法更好的图像质量的误差扩散法,但是在误差扩散法中,是否形成点由其它像素扩散而来的误差左右,所以关于各像素,难以细致地控制点的产生状况。而在上述的实施例3的点形成的有无决定处理中,关于各像素,能细致地控制点的产生状况,因此,与使用误差扩散法时相比,能取得更高图像质量的图像。
此外,在实施例3的点形成的有无决定处理中,对于图11或图32所示的实施例1的各种点形成的有无决定处理,除了需要判断个数数据的灰度值是否为165以上的处理,处理的步骤不特别增加。在判断为个数数据的灰度值是165以上时,通过参照图41所示的点图案表,能从个数数据立刻决定点形成的有无,所以关于该方面,当然能说处理变得迅速。结果,根据实施例3的点形成的有无决定处理,不会使处理速度下降,能大幅度改善图像质量。
须指出的是,在以上的说明中,大中小各点的个数的组合存在165个组合。可是,165的数是像素群由8个像素构成,能形成的点的种类为3种时能取的全部组合的数,实际上不会使用165个的全部组合。例如,在形成多个小点的状况下,也形成中点,所以认为光小点就形成7个或8个的组合实际上不使用。同样,认为光中点就形成7个或8个的组合实际上不使用。认为只包含小点和大点并且不包含中点的组合等几个组合实际上不使用。如果考虑存在这样的不使用的组合,就认为实际使用的点个数的组合比165个少,因此,只这部分,很多个数数据能分配给点数据。
此外,在以上的说明中,说明了个数数据表示点数据时,如果是相同的个数数据,就不根据像素群,不是相同的点数据。可是,即使是相同的个数数据,按照分类编号,也能表示不同的点数据。例如,如果按各分类编号存储图41所示的点图案表,就能实现这样的事实。据此,按照像素群的分类编号,能设定适当的点数据,所以能进一步改善图像质量。
E-3.实施例3的变形例
在实施例3中,把各像素群的多值化结果值变换为个数数据时,关于一部分的个数数据,变换为更换为表示点数据的个数数据的状态。因此,关于各像素群,局部修正多值化结果值与个数数据的对应关系,但是多值化的级数不改变。而使各像素群的多值化的级数增加,对增加的多值化结果值分配表示点数据的个数数据。以下说明实施例3的变形例。
图46是表示增加像素群多值化级数的样子的说明图。根据以抖动矩阵为基础的图24所示的方法,某像素群的像素群灰度值变换为图中用实线表示的多值化结果值。例如,灰度值0~4的像素群灰度值变换为多值化结果值0,灰度值5~21的像素群灰度值变换为多值化结果值1,灰度值22~43的像素群灰度值变换为多值化结果值2。
这里,考虑把变换为多值化结果值2的像素群灰度值22~43的范围分割为灰度值22~32和灰度值33~43的2个范围。结果,对于像素群灰度值22~32的多值化结果值保持“2”,但是对于像素群灰度值33~43的多值化结果值从“2”变更为“3”。伴随着此,以往的多值化结果值为“3”的像素群灰度值44~67的多值化结果值变更为“4”,以往的多值化结果值为“4”的像素群灰度值68~72的多值化结果值变更为“5”,以后的多值化结果值的值分别增加“1”。在图46中,用虚线表示伴随着分割变更的多值化结果值。此外,中间白的小箭头表示多值化结果值的值从以往的多值化结果值增加“1”。如果把具有一个多值化结果值的灰度范围分割为2个,则在以后的灰度范围中,多值化结果值的值增加“1”,结果关于该像素群,多值化级数增加1个。当然,灰度范围分割为3个时,多值化级数增加2。
此外,这样的灰度范围的分割能在多个灰度范围进行。在图46所示的例子中,除了像素群灰度值22~43的灰度范围,在像素群灰度值93~132的灰度范围中,也进行灰度范围的分割。如图中用细实线所示,灰度值93~132的像素群灰度值以往变换为多值化结果值6,但是在灰度范围22~43进行分割A,如虚线所示,变换为多值化结果值7。把该灰度范围分割为变换为多值化结果值7的区域和变换为多值化结果值8的区域。结果在以后的区域中,多值化结果值增加1。图中表示的涂黑的小箭头表示伴随着分割B,以后的多值化结果值增加1。此外,在图中用单点划线表示作为结果取得的多值化结果值。结果,在以上的2处分割灰度范围,变更为用粗实线、粗虚线、粗单点划线表示的对应关系。
接着,与这样的多值化结果值的变更对应,修正多值化结果值和个数数据的对应关系。图47是在概念上表示实施例3的变形例中修正多值化结果值和个数数据的对应关系的样子的说明图。如图46所述,以往变换为多值化结果值2的灰度值22~43的像素群灰度值分割为灰度值22~32和灰度值33~43的2个区域,各区域的像素群灰度值变换为多值化结果值2以及多值化结果值3等2个多值化结果值。因此,对于一方的多值化结果值,把与以往相同的个数数据对应,对于另一方的多值化结果值,与表示点数据的新的个数数据对应。在图47所示的例子中,表示对于多值化结果值2,把与以往相同的个数数据“8”对应,对于多值化结果值3,与表示点数据的个数数据“174”对应。
此外,作为把多值化结果值3与新的个数数据对应的结果,以往的与多值化结果值3对应的个数数据调换为多值化结果值4,以往的与多值化结果值4对应的个数数据调换为多值化结果值5,以往的与多值化结果值5对应的个数数据调换为多值化结果值6。由此,以往例随着将变换为多值化结果值2的像素群灰度值22~43的区域分割为2个,而对应于多值化结果值3以下的个数数据调换为“1”个个大的多值化结果值。图47所示的中间白的箭头表示个数数据调换为大“1”的多值化结果值的样子。此外,调换个数数据的结果是多值化结果值和个数数据的对应关系修正为图中由虚线表示的对应关系。
此外,如图46所示,像素群灰度值93~132的区域也分割为2个。该区域以往变换为多值化结果值6,但是伴随着像素群灰度值22~43的区域分割为2个,是变更为多值化结果值7的区域。而且,通过分割该区域而取得的2个区域分别变换为多值化结果值7和多值化结果值8。因此,把这些多值化结果值的一方与以往的个数数据“48”对应,把另一方的多值化结果值与表示点数据的新的个数数据对应。在图47所示的例子中,表示以往的个数数据“48”与多值化结果值8对应,新的个数数据“191”与多值化结果值7对应。此外把像素群灰度值93~132的区域分割为2个的结果是此前与多值化结果值8对应的个数数据替换为多值化结果值9,与多值化结果值9对应的个数数据替换为多值化结果值10,替换为大1个的多值化结果值。图47所示的涂黑的箭头表示个数数据替换为大“1”的多值化结果值的样子。此外,替换个数数据的结果是多值化结果值和个数数据的对应关系修正为图中由单点划线表示的对应关系。
在实施例3的变形例中,如上所述,分别修正图9所示的多值化表、图12所示的变换表。然后通过进行与图44所述的实施例3的点形成的有无决定处理同样的处理,决定关于像素群内的各像素的点形成的有无。这样使像素群的多值化级数增加,把一个多值化结果值分割为多个多值化结果值,把取得的多值化结果值与表示点数据的新的个数数据对应,从而能不受抖动矩阵的制约地产生点。以下说明该点。
图48是表示通过增加像素群的多值化级数,能不受抖动矩阵的制约地产生点的理由的说明图。图48(a)表示为作为对象的像素群设定的顺序值矩阵。此外,把该像素群的多值化结果值变换为个数数据,参照图48(a)所示的顺序值矩阵,判断点形成的有无,就按图48(b)、图48(c)、图48(d)、图48(e)的顺序产生点。如果用与多值化结果值的对应关系说这些点的发生状态,就把图48(b)的状态与多值化结果值0对应,把图48(c)的状态与多值化结果值1对应,把图48(d)的状态与多值化结果值2对应,把图48(e)的状态与多值化结果值3对应。而且,按照顺序值矩阵产生的点的分布如图43所述,受到抖动矩阵的制约。即除了小点置换为大点的情况,成为对于现在的点分布,追加新点的点的产生状态。
而把多值化结果值1分割为新的多值化结果值1和新的多值化结果值2等2个,对于新的多值化结果值2,把表示点数据的个数数据“173”对应。或者,把多值化结果值2分割为新的多值化结果值和新的多值化结果值3等2个,对于新的多值化结果值2,把表示点数据的个数数据“173”对应。根据图41所示的点图案表,个数数据“173”表示图48(f)所示的点分布。因此,在从图48(c)所示的点分布变化为图48(d)所示的点分布之前,经过图48(f)所示的点分布。
这样的点产生方法不是受抖动矩阵的制约而产生的。即图48(f)所示的点分布不是以图48(c)的点分布为前提,追加新的点的分布,此外,关于图48(d)所示的点分布,也不是对图48(d)的点分布追加新的点的分布。追加的个数数据“173”也能是其他个数数据,所以能选择适当的个数数据,从而点产生方法变为更适合的。如上所述,在抖动矩阵的制约下,成为把已经形成的点的分布作为前提,追加新的点的点产生方法,所以难以取得最佳的点分布。而在实施例3的变形例中,能积极控制点的发生状态,所以能取得更高图像质量的图像。
当然,在这样的实施例3的变形例中,与所述的实施例3同样,在点形成的有无决定处理中,除了个数数据是表示点个数的数据还是表示点数据的数据的判断成为必要以外,没增加处理的步骤。判断为个数数据表示点数据时,通过参照图41所示的点图案表,能立刻决定关于像素群内的各像素的点形成的有无,在该方面,处理迅速化。因此,在实施例3的变形例中,处理速度不下降,能大幅度改善图像质量。
须指出的是,以上把通过变更个数数据的一部分,改善图像质量的形式作为实施例3说明,把增加多值化级数,追加新的个数数据,改善图像质量的形式作为实施例3的变形例说明。当然,通过组合这些形式,能进一步改善图像质量。例如,对于某灰度区的像素群灰度值,变更与多值化结果值对应的个数数据,在其他灰度区中,把区域分割为多个区域,把与分割有关的多值化结果值与新的个数数据对应。或者,变更对于某多值化结果值的个数数据后,把该多值化结果值的区域分割为多个区域,把与分割有关的多值化结果值与新的个数数据对应。
F.实施例4
能认为以上说明的实施例3的点形成的有无决定处理是以所述实施例1的点形成的有无决定处理为基础的手法。即在实施例1中,把各像素群的多值化结果值变换为个数数据后,参照顺序值矩阵,决定各像素的点形成的有无,在实施例3中,是把多值化结果值变换为表示点个数的个数数据和表示点数据的个数数据,关于表示点数据的个数数据,不参照顺序值矩阵,直接决定像素群内的点分布的手法。因此,在实施例3的点形成的有无决定处理中,参照顺序值矩阵决定关于各像素的点形成的有无的像素群、不参照决定点形成的有无的像素群混合存在。
而在所述的实施例2中,能不参照顺序值矩阵,决定关于像素群内的各像素的点形成的有无。因此,认为不是实施例1,如果以实施例2的点形成的有无决定处理为基础,关于全部像素群,不参照顺序值矩阵,就决定点形成的有无,能不受抖动矩阵的制约地产生点。以下,说明这样的实施例4。
F-1.改善图像质量的原理
首先,在实施例4中,说明不受抖动矩阵的制约地产生点,改善图像质量的原理。图49是用实施例2的图像打印处理把图像数据变换为点数据的处理概要、在实施例4中改善图像质量的基本考虑方法的说明图。如上所述,在实施例2的图像打印处理中,从图像数据求出各像素群的像素群灰度值,接着通过参照多值化表,把像素群灰度值变换为多值化结果值。然后,通过参照变换表,读出于像素群的分类编号和多值化结果值的组合对应设定的点数据,决定像素群内的点分布。在实施例2中从图像数据取得点数据的处理流程在图49中由赋予斜线的箭头表示。
这里,像素群由8个像素构成,如果能形成的点的种类为3种,则如上所述,各像素群能取的多值化结果值的个数通常为16~22个左右。为了表现这样的多值化结果值,多值化结果值用4位数据长度不够,5位数据长度成为必要。可是,如果是5位,就能表现32种状态,所以存在各像素群中不使用的多值化结果值。例如,某像素群能取的多值化结果值如果为18个,则在用5位能表现的多值化结果值0~31中,使用的多值化结果值只是0~17,不使用18~31的多值化结果值。因此,关于给定的灰度范围的像素群灰度值,变换为未使用的多值化结果值,把变换的多值化结果值预先与适当的点数据对应。与不使用的多值化结果值对应的点数据能与抖动矩阵无关地设定,所以如果这样把多值化结果值变换为点数据,作为图像全体,能不受抖动矩阵的制约地产生点。在图49中,这样决定点数据的处理流程由虚线的箭头表示。
图50是表示根据以上的考虑方法,设定关于某像素群的像素群灰度值和多值化结果值的对应关系的样子的说明图。图中用实线表示的折线表示图9所示的多值化表中设定的像素群灰度值和多值化结果值的对应关系。此外,关于该像素群,能取0~18的范围的多值化结果值。这时,19~31的范围的多值化结果值变为未使用的状态。
这里,为了不受抖动矩阵的制约地产生点,考虑修正这样的对应关系。例如,如图中实线所示,关于该像素群,把像素群灰度值32~42与多值化结果值3对应,但是把该多值化结果值变更为未使用的多值化结果值19。在图50中,把多值化结果值变更为未使用的多值化结果值的事实由虚线表示。此外,根据由实线表示的修正前的对应关系,把像素群灰度值101~130与一个多值化结果值8对应,但是分割该灰度范围,对于像素群灰度值101~108,把多值化结果值20对应,对于像素群灰度值121~130,把多值化结果值26对应。结果,如图中虚线所示,对于像素群灰度值101~130,把多值化结果值20、多值化结果值8、多值化结果值26等3个多值化结果值对应。为了选择这样修正多值化结果值的像素群灰度值,输出实际的图像,选择判断为需要图像质量的改善的像素群灰度值。
须指出的是,如上所述,在修正的新的多值化结果值设定以往的多值化结果值中不使用的大的多值化结果值。因此,修正前的多值化结果值在像素群灰度值增加的同时,一点一点增加(参照图50中的实线),但是修正后的多值化结果值不会随着像素群灰度值的增加而增加(参照图50中的虚线)。换言之,修正后的多值化结果值的序列与对应的像素群灰度值的序列不对应。认为对于像素群灰度值,把处于这样的关系的值称作“多值化”结果值是不恰当的,所以以下代替“多值化结果值”,称作“代码值”。即在实施例4中,不是把像素群灰度值多值化,取得多值化结果值,而把像素群灰度值代码化,取得代码值。
能通过参照编码表,能迅速进行这样的像素群灰度值的代码化。图51是在概念上表示实施例4中,为了把像素群灰度值代码化而参照的编码用表的说明图。如图所示,在编码表中,与图9所示的多值化表同样,设定与像素群的分类编号和像素群灰度值的各组合对应的代码值。此外,设定的代码值与图9所示的多值化结果值几乎相同,但是代码值置换为未使用的多值化结果值。例如,关于分类编号1的像素群,把对于像素群灰度值3和像素群灰度值4的代码值置换为未使用的多值化结果值16。这里代码值置换为“16”是考虑到修正前的编码表(即图9所示的多值化表)中,关于分类编号1的像素群,对于像素群灰度值255,设定多值化结果值15,所以不使用16以上的多值化结果值。须指出的是,在图51中,对从图9所示的多值化表的多值化结果值修正的代码值赋予下划线,表示。
参照这样的编码表,把像素群灰度值变换为代码值,如果把取得的代码值参照图35所示的变换表变换为点数据,就能不受抖动矩阵的制约地适当产生点。须指出的是,如上所述,在实施例4中,与认为把像素群灰度值代码化对应,认为从代码值向点数据的变换是代码值的译码。伴随着此,在把代码值译码时参照的表称作译码表。以下,说明进行像素群灰度值的代码化和译码,为了打印图像而进行的处理内容。
F-2.实施例4的图像打印处理
图52是表示实施例4的译码处理中参照的译码用表的说明图。有关的处理与图6所述的实施例2的图像打印处理几乎同样,但是,不同点在于,实施例2的多值化结果值生成处理在实施例4中置换为代码值生成处理,实施例2的点形成的有无决定处理在实施例4中置换为译码处理。以下,以这些不同点为中心,说明实施例4的图像打印处理。须指出的是,实施例4的图像打印处理也与所述的各实施例的图像打印处理同样,在计算机100内进行到代码值生成处理,译码处理以下在彩色打印机200内进行,或者全部处理在彩色打印机200内进行。
在实施例4的图像打印处理中,与实施例2的图像打印处理同样,如果开始处理,就首先读入图像数据(步骤S700),进行读入的图像数据的色变换处理后(步骤S702),对色变换后的图像数据进行析像度变换处理,把图像数据的析像度变换为打印析像度(步骤S704)。
如果这样把析像度变换为打印析像度,就开始代码值生成处理(步骤S706)。如上所述,该处理是与实施例2的多值化结果值生成处理对应的处理,不同点在于,在多值化结果值生成处理中,参照图9所示的多值化表,取得多值化结果值,在实施例4的代码值生成处理中,参照图51所示的编码表,取得代码值。因此,以下使用多值化结果值生成处理的说明中使用的图7,说明代码值生成处理的内容。
如果开始代码值生成处理,就首先汇总彼此相邻的给定个数的像素,生成像素群(相当于图7的步骤S130)。这里,把在主扫描方向4像素、副扫描方向2像素的合计8个像素汇总为像素群。
接着,决定像素群灰度值、像素群的分类编号(相当于图7的步骤S132)。像素群灰度值能根据像素群像素群内的各像素的图像数据决定,此外,如图8所述,能根据图像中的像素群的位置,极简便地决定像素群的分类编号。
如果这样决定像素群的分类编号和像素群灰度值,就参照图51所示的编码表,取得与分类编号和像素群灰度值对应设定的代码值(相当于图7的步骤S134)。由实施例2的多值化结果值生成处理取得的多值化结果值如图10所示,随着像素群灰度值增加而逐渐增加,但是由实施例4的代码值生成处理取得的代码值如图50所示,不是与像素群灰度值的增加同时增加的值。即多个代码值间的大小不具有物理的意思。换言之,如果能通过与分类编号组合,确定点数据,则代码值可以任意设定。因此,在图49~图51中,说明能不受抖动矩阵的制约地自由设定点数据的代码孩值取大的值,但是这是为了便于理解,实际没必要设置这样的制约。
如果把多个像素汇总为像素群,生成该像素群的代码值,就关于全部像素,判断是否结束处理(相当于图7的步骤S136)。然后,在剩下未处理的像素时(相当于图7的步骤S136:no),回到处理的开始,生成新的像素群,进行后面描述的一系列处理,生成关于该像素群的代码值。重复这样的操作,如果判断为关于全部像素的处理结束(相当于图7的步骤S136:yes),全部像素群的像素群灰度值变换为代码值。而且,用计算机100进行到代码值生成处理,用彩色打印机200进行以后的处理时,把取得的值对彩色打印机200输出(相当于图7的步骤S110)。而在彩色打印机200内进行全部的处理时,把取得的代码值提供给进行接着的处理的模块(相当于图7的步骤S110),结束代码值生成处理,回到图52所示的实施例4的图像打印处理。
接着,开始把这样为各像素群取得的代码值译码的处理(相当于图52的步骤S708)。如上所述,译码处理是与实施例2的点形成的有无决定处理对应的处理,不同点在于,在实施例2的点形成的有无决定处理中,参照图35所示的变换表,把多值化结果值变换为点数据,而在实施例4的译码处理中,参照图53所示的译码表,把代码值变换为点数据。因此,以下使用实施例2的点形成的有无决定处理的说明中使用的图37,说明译码处理的内容。
如果开始实施例4的译码处理,就首先选择作为处理对象的像素群(相当于图37的步骤S500),取得选择的像素群的代码值(相当于图37的步骤S502)。这时,也计算像素群的分类编号。能通过图29和图30所述的方法,简便地计算像素群的分类编号。然后,通过参照译码表,读出为分类编号和多值化结果值的组合设定的点数据(相当于图37的步骤S504)。
图53是在概念上表示实施例4的译码处理中参照的译码表的说明图。实施例2的点形成的有无决定处理中参照的变换表如图35所示,与分类编号和多值化结果值的组合对应设定点数据,但是不同点在于,在实施例4的译码处理中参照的译码表中,与分类编号和代码值的组合对应,设定点数据。如图36所述,点数据直接表现关于像素群内的各像素的点形成的有无,所以如果参照译码表,把代码值变换为点数据,就能立刻关于像素群内的各像素,决定点形成的有无。此外,译码表中设定的点数据设定图像质量的观点上最佳的点数据,所以能不受抖动矩阵的制约,适当产生点。
如果决定了关于选择的像素群的点形成的有无,就关于全部像素群,判断是否决定了点形成的有无(相当于图37的步骤S506),如果剩下未处理的像素群(相当于图37的步骤S506:no),就回到处理的开始,选择新的像素群,关于该像素群,进行接着的一系列处理。重复这样的操作,如果关于全部像素群,判断为结束处理(相当于图37的步骤S506:yes),就结束实施例4的译码处理,回到图52的图像打印处理。在图像打印处理中,根据这样取得的点数据,在各像素形成点(图52的步骤S710)。结果,在打印介质上打印与图像数据对应的图像。
如上所述,在实施例4的图像打印处理中,参照编码表,生成编码表,接着只参照1次译码表,从各像素群的代码能立刻决定关于像素群内的各像素的点形成的有无。因此,通过极简单的处理,能从图像数据迅速决定关于各像素的点形成的有无。与分类编号和代码值的组合对应,在译码表中设定的点数据能设定图像质量的观点上最佳的点数据。因此,能迅速打印高图像质量的图像。
以上说明各种实施例,但是本发明并不局限于所述全部实施例,在不脱离其宗旨的范围中,能以各种形式实施。例如在以上的实施例中,说明在打印用纸上形成点,打印图像的情况,但是本发明的应用范围并不局限于打印图像。例如,本发明还能应用于在液晶显示画面上以适当的密度使亮点分散,表现灰度连续变化的图像的液晶显示装置。
Claims (29)
1.一种点数据处理装置,生成在打印介质上应形成的点的数据,
包括:
译码准备部件,准备译码用表,该译码用表关于分别汇总多个成为形成点的单位的像素的像素群,将表示关于该像素群内的各像素的点形成的有无的输出点配置和取给定范围的值的代码值相关联,并仅按分配给像素群的标识符的数量配置排列;
代码值接收部件,接收把以给定灰度数表现图像的图像数据以所述像素群为单位进行代码化而取得的代码值;
译码部件,根据所接收的代码值和分配给该像素群的标识符,参照所述译码用表,而取得所述输出点配置;和
点数据输出部件,按照所取得的输出点配置,输出表示应在打印介质上形成的点的配置的点数据。
2.根据权利要求1所述的点数据处理装置,其中:
所述译码用表构成为把所述代码值和所述标识符作为参数,存储所述输出点配置的二维表。
3.根据权利要求1所述的点数据处理装置,其中:
所述译码用表,从按照给定的特性配置不同阈值的抖动矩阵,一边依次变更取出的位置,一边与所述像素群中包含的像素对应,选择多个阈值,对按照取出该阈值的位置所对应的像素群所分配的标识符的每一个,按照所述已选择的阈值的配置,把所述代码值和所述输出点配置相关联。
4.根据权利要求3所述的点数据处理装置,其中:
所述抖动矩阵是所包含的阈值的个数比所述图像的灰度数大的广域抖动矩阵。
5.根据权利要求1所述的点数据处理装置,其中:
所述译码准备部件,准备如下对应关系作为所述译码用表,即按每个所述标识符将使所述像素群的灰度值多值化而取得的多值化结果值和应在所述像素群形成的点的配置即输出点配置相关联;
所述代码值接收部件是接收多值化结果值作为所述代码值的部件。
6.根据权利要求1所述的点数据处理装置,其中:
所述译码准备部件,把排列所述输出点配置和所述代码值的所述标识符定义为与所述图像的所述像素群的位置对应的分类编号;
所述译码部件,按照收到所述代码值所对应的像素群在所述图像中的位置,判别所述分类编号,参照所述译码用表。
7.根据权利要求6所述的点数据处理装置,其中:
在所述分类编号中存在100种以上的编号。
8.根据权利要求6所述的点数据处理装置,其中:
汇总在像素群中的像素数、和赋予该像素群的分类编号的种类数的相乘值在1000以上。
9.根据权利要求1所述的点数据处理装置,其中:
所述译码准备部件在所述译码用表中,把所述输出点配置作为表示各像素的点形成的有无的值以与所述像素群内的像素位置对应的给定顺序排列的数据而准备。
10.根据权利要求1所述的点数据处理装置,其中:
所述译码准备部件在所述译码用表中,在可判别的状态下准备使用对各标识符公共决定的点发生的顺序决定所述输出点配置的第一种代码值、和与所述顺序无关地决定输出点配置的第二种代码值;
所述译码部件根据所接收到的代码值,判别该代码值是第一种代码还是第二种代码值,按照该代码值的种类,决定所述输出点配置。
11.根据权利要求10所述的点数据处理装置,其中:
所述译码部件根据所述收到的代码值和给定的阈值的大小,判别该代码值是第一种代码值还是第二种代码值。
12.根据权利要求11所述的点数据处理装置,其中:
所述译码准备部件,通过能表现所述像素群内形成的点数的组合的种类数的位数的数据来表现所述第一种代码值,把所述第二种代码值与所述位数的数据所表现的所述第一种代码值相对所述种类数而成为剩余的部分对应。
13.根据权利要求10所述的点数据处理装置,其中:
所述译码准备部件准备的所述第一种代码值被规定为表示应按照所述像素群内对所述各标识符所决定的顺序形成的点的个数的值,所述第二种代码值被规定为与应在所述像素群内形成的点的位置对应的代码值。
14.根据权利要求13所述的点数据处理装置,其中:
把对所述各标识符所决定的点形成的顺序被规定为:从根据不同值的多个阈值的配置定义所产生的点特性的抖动矩阵中与所述像素群中包含的多个像素对应汇集的所述多个阈值的大小的排列的顺序。
15.根据权利要求13所述的点数据处理装置,其中:
所述译码部件包括:
中间数据生成部件,判别所述收到的代码值为所述第一种代码值时,设所述像素群中包含的像素数为N,该像素群中形成的点的个数为M时,根据所述收到的代码值,生成由表示形成点的意思的M个连续的数据、和表示不形成点的意思的N-M个连续的数据构成的中间数据;和
决定部件,根据所述标识符,确定应在该像素群内的N个像素形成点的顺序,从所述中间数据读出与该顺序对应的位置的数据,而决定关于所述像素群的输出点配置。
16.根据权利要求1所述的点数据处理装置,其中:
具有在所述打印介质上能形成1种以上的点的点形成部件;
所述点数据输出部件,通过输出所述点数据,控制所述点形成部件,在与所述图像的所述像素群的位置对应的所述打印介质上的位置,按照所述点数据形成点。
17.根据权利要求1所述的点数据处理装置,其中:
所述译码准备部件,把与每个单点能表现的灰度值不同的多个种类的点有关的所述输出点配置、和所述代码值对应而排列作为所述译码用表;
所述点数据输出部件输出所述点数据,作为表示应形成所述多个种类的点的位置的数据。
18.根据权利要求17所述的点数据处理装置,其中:
具有在打印介质上能形成所述多个种类的点的点形成机构;
所述点数据输出部件,通过输出所述点数据,控制所述点形成机构,在与所述图像的所述像素群的位置对应的所述打印介质上的位置,按照所述点数据形成多个种类的点。
19.一种图像处理系统,具有:关于表示由给定灰度数表现的图像的图像数据,以由多个像素构成的像素群作为单位进行处理的图像数据处理装置;接收该处理的结果,并且变换为应在打印介质上形成的点的数据的点数据处理装置;
所述图像数据处理装置包括:
代码值准备部件,按分配给所述像素群的标识符的种类准备代表所述像素群的灰度值即像素群灰度值和给定的代码值之间的对应关系;
像素群灰度值决定部件,从表示所述图像的图像数据取出相当于所述像素群的像素的汇总,对该各像素群决定所述像素群灰度值;
编码部件,根据已决定的像素群灰度值,参照对所述各像素群根据分配给该像素群的标识符而决定的所述对应关系,从而取得所述代码值;和
代码值输出部件,输出按所述各像素群取得的代码值;
所述点数据处理装置包括:
译码准备部件,准备把表示关于所述像素群内的各像素的点形成的有无的输出点配置和取得给定范围的值的代码值与所述标识符对应排列的译码用表;
代码值接收部件,接收所述各像素群的所述代码值;
译码部件,根据所收到的代码值和分配给所述像素群的标识符,参照所述译码用表,取得所述输出点配置;和
按照所取得的输出点配置,输出表示应在打印介质上形成的点的配置的点数据的点数据输出部件。
20.根据权利要求19所述的图像处理系统,其中:
所述点数据处理装置具有能在打印介质上形成一种以上的点的点形成机构;
所述点数据输出部件,通过输出所述点数据,控制所述点形成机构,在与所述图像的所述像素群的位置对应的所述打印介质上的位置,按照所述点数据形成点。
21.根据权利要求19所述的图像处理系统,其中:
所述图像数据处理装置和所述点数据处理装置收藏在不同的筐体中,两装置之间通过有线或无线,直接或经由网络连接。
22.根据权利要求19所述的图像处理系统,其中:
所述图像数据处理装置和所述点数据处理装置构成为单一的装置,所述代码值输出部件和所述代码值接收部件一体构成。
23.根据权利要求19所述的图像处理系统,其中:
所述图像数据处理装置中,
所述代码值准备部件具有把所述像素群灰度值和所述代码值的所述对应关系仅按所述标识符的数量配置排列的编码用表;
所述编码部件根据关于所述像素群的所述像素群灰度值和所述标识符,参照所述编码用表,取得所述代码值。
24.根据权利要求19所述的图像处理系统,其中:
所述图像数据处理装置中,
作为与所述像素群灰度值对应的所述给定的代码值,所述代码值准备部件对所述各标识符准备预先决定的点的发生顺序所对应的第一种代码值,并且在所述像素群灰度值是给定的值的范围时,准备与所述顺序无关地决定的输出点配置所对应的第二种代码值;
所述点数据处理装置中,
所述译码准备部件以能判别所述第一种代码值和所述第二种代码值的形式下准备所述译码用表;
所述译码部件根据所述收到的代码值,判别该代码值是第一种代码值还是第二种代码值,按照该代码值的种类,决定所述输出点配置。
25.一种图像数据处理装置,把由给定灰度数表现的图像的图像数据以由多个像素构成的像素群为单位进行处理,
包括:
代码值准备部件,准备把代表所述像素群的灰度值即像素群灰度值和用于确定打印介质上形成的点的配置的代码值的对应关系仅按分配给所述像素群的标识符的数量配置排列的编码用表;
像素群灰度值决定部件,从表示所述图像的图像数据取出相当于所述像素群的像素的汇总,对该各像素群决定所述像素群灰度值;
编码部件,对所述各像素群,根据所述已决定的像素群灰度值和分配给该像素群的标识符,参照所述编码用表,取得所述代码值;和
代码值输出部件,输出按所述各像素群取得的代码值。
26.根据权利要求25所述的图像数据处理装置,其中:
作为所述编码用表中排列的给定代码值,所述代码值准备部件对所述各标识符准备预先决定的点的发生顺序所对应的第一种代码值,并且在所述像素群灰度值是给定的范围时,准备与所述顺序无关地决定的输出点配置所对应的第二种代码值。
27.一种点数据处理方法,生成应在打印介质上形成的点数据,其中:
准备译码用表,该译码用表关于分别汇总多个成为形成点的单位的像素的像素群,把表示关于该像素群内的各像素的点形成的有无的输出点配置和取得给定范围的值的代码值相关联,仅按分配给像素群的标识符的数量配置排列;
接收把以给定灰度数表现图像的图像数据以所述像素群为单位进行代码化而取得的代码值;
根据所收到的代码值和分配给该像素群的标识符,参照所述译码用表,而取得所述输出点配置;
按照所取得的输出点配置,输出表示应在打印介质上形成的点的配置的点数据。
28.一种图像处理方法,关于表示由给定灰度数表现的图像的图像数据,以由多个像素构成的像素群为单位进行处理后,接收该处理的结果,变换为应在打印介质上形成的点的数据,
按照分配给所述像素群的标识符的种类准备代表所述像素群的灰度值即像素群灰度值和给定的代码值的对应关系;
准备把表示关于所述像素群内的各像素的点形成的有无的输出点配置和取得给定范围的值的代码值,与所述标识符对应排列的译码用表;
从表示所述图像的图像数据取出相当于所述像素群的像素的汇总,按各像素群决定所述像素群灰度值;
对所述各像素群,根据已决定的像素群灰度值参照基于分配给该像素群的标识符而决定的所述对应关系,而取得所述代码值;
根据该代码值和分配给所述像素群的标识符,参照所述译码用表,而取得所述输出点配置;
按照该取得的输出点配置,输出表示应在打印介质上形成的点的配置的点数据。
29.一种图像数据处理方法,把由给定灰度数表现的图像的图像数据以由多个像素构成的像素群为单位进行处理,
准备:把代表所述像素群的灰度值即像素群灰度值和用于确定打印介质上形成的点的配置的代码值的对应关系仅按分配给所述像素群的标识符的数量配置排列的编码用表;
从表示所述图像的图像数据取出相当于所述像素群的像素的汇总,对各像素群决定所述像素群灰度值;
对所述各像素群,根据已决定的像素群灰度值和分配给该像素群的标识符,参照所述编码用表,而取得所述代码值;
输出按所述各像素群取得的代码值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP150466/2004 | 2004-05-20 | ||
JP2004150466 | 2004-05-20 | ||
JP008687/2005 | 2005-01-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1957595A CN1957595A (zh) | 2007-05-02 |
CN100438564C true CN100438564C (zh) | 2008-11-26 |
Family
ID=38063785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800160758A Expired - Fee Related CN100438564C (zh) | 2004-05-20 | 2005-05-19 | 点数据处理装置、图像处理系统和图像数据处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100438564C (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4578713A (en) * | 1984-07-20 | 1986-03-25 | The Mead Corporation | Multiple mode binary image processing |
JPS62176371A (ja) * | 1986-01-30 | 1987-08-03 | Toshiba Corp | デイザ中間調伝送方式 |
JPH0865511A (ja) * | 1994-08-22 | 1996-03-08 | Murata Mach Ltd | 中間調画像データの伝送方法 |
JPH08116440A (ja) * | 1994-10-17 | 1996-05-07 | Fuji Xerox Co Ltd | 階調画像2値化装置 |
US6191868B1 (en) * | 1997-09-08 | 2001-02-20 | Hitachi, Ltd. | Distributed PWM halftoning unit and printer |
US6266449B1 (en) * | 1995-11-22 | 2001-07-24 | Canon Kabushiki Kaisha | Information processing apparatus and method which selectively controls data encoding by monitoring amount of encoded data |
JP2002101307A (ja) * | 2000-08-01 | 2002-04-05 | Minolta Co Ltd | ハーフトーン出力画像の生成方法及びシステム |
CN1349346A (zh) * | 2000-10-06 | 2002-05-15 | 精工爱普生株式会社 | 图像处理装置、印刷控制装置、图像处理方法和记录媒体 |
-
2005
- 2005-05-19 CN CNB2005800160758A patent/CN100438564C/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4578713A (en) * | 1984-07-20 | 1986-03-25 | The Mead Corporation | Multiple mode binary image processing |
JPS62176371A (ja) * | 1986-01-30 | 1987-08-03 | Toshiba Corp | デイザ中間調伝送方式 |
JPH0865511A (ja) * | 1994-08-22 | 1996-03-08 | Murata Mach Ltd | 中間調画像データの伝送方法 |
JPH08116440A (ja) * | 1994-10-17 | 1996-05-07 | Fuji Xerox Co Ltd | 階調画像2値化装置 |
US6266449B1 (en) * | 1995-11-22 | 2001-07-24 | Canon Kabushiki Kaisha | Information processing apparatus and method which selectively controls data encoding by monitoring amount of encoded data |
US6191868B1 (en) * | 1997-09-08 | 2001-02-20 | Hitachi, Ltd. | Distributed PWM halftoning unit and printer |
JP2002101307A (ja) * | 2000-08-01 | 2002-04-05 | Minolta Co Ltd | ハーフトーン出力画像の生成方法及びシステム |
CN1349346A (zh) * | 2000-10-06 | 2002-05-15 | 精工爱普生株式会社 | 图像处理装置、印刷控制装置、图像处理方法和记录媒体 |
Also Published As
Publication number | Publication date |
---|---|
CN1957595A (zh) | 2007-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4375235B2 (ja) | 複数画素ずつコード化しながら画像を出力する画像出力システム | |
JP4534963B2 (ja) | 画像形成方法、画像形成装置、画像形成システム、印刷方法、印刷物の生成方法および画像形成装置を制御するためのコンピュータプログラム | |
CN100417178C (zh) | 点数据处理装置、图像输出系统及其方法 | |
JP4506652B2 (ja) | 高画質ハーフトーン処理 | |
US7764402B2 (en) | Fast generation of dither matrix | |
JP4375398B2 (ja) | 複数画素ずつ多値化を行う画像処理装置 | |
US7742195B2 (en) | Image processing device, image processing method, and program product for the same | |
US7387355B2 (en) | High-image-quality halftone process | |
JP4534964B2 (ja) | 画像形成方法、画像形成装置、画像形成システム、印刷物の生成方法および画像形成装置を制御するためのコンピュータプログラム | |
CN108025557A (zh) | 打印产品、图像处理装置、图像处理方法和程序 | |
US7656558B2 (en) | Image processing system, image processing device, image output device, and method and program product therefor | |
US7796303B2 (en) | Image processing system, image processing device, dot data processing device, and method and program product therefor | |
CN100438564C (zh) | 点数据处理装置、图像处理系统和图像数据处理装置 | |
JP2006229810A (ja) | 複数画素ずつコード化しながら画像を出力する画像出力システム | |
JP2007068202A (ja) | 印刷装置、印刷プログラム、印刷方法、および画像処理装置、画像処理プログラム、画像処理方法、ならびに前記プログラムを記録した記録媒体 | |
JP4274030B2 (ja) | 画像出力システム、画像処理装置、画像出力装置およびそれらの方法 | |
JP2007188219A (ja) | 印刷制御装置、印刷制御方法および印刷制御プログラム | |
CN104662885B (zh) | 颜色变换装置、图像形成装置以及颜色变换方法 | |
JP3883056B2 (ja) | 画像処理装置、画像処理方法、印刷装置、画像処理プログラムおよび画像処理プログラムを記録した媒体 | |
EP1507404B1 (en) | Tone-dependent halftoning with optimized lookup tables | |
JP2007245347A (ja) | 高画質ハーフトーン処理 | |
CN101299796B (zh) | 图象输出控制系统和图象输出装置 | |
CN103856685A (zh) | 图像处理装置及图像处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081126 Termination date: 20200519 |