CN101299796B - 图象输出控制系统和图象输出装置 - Google Patents
图象输出控制系统和图象输出装置 Download PDFInfo
- Publication number
- CN101299796B CN101299796B CN2008101082484A CN200810108248A CN101299796B CN 101299796 B CN101299796 B CN 101299796B CN 2008101082484 A CN2008101082484 A CN 2008101082484A CN 200810108248 A CN200810108248 A CN 200810108248A CN 101299796 B CN101299796 B CN 101299796B
- Authority
- CN
- China
- Prior art keywords
- pixels
- image point
- group
- image
- data
- 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
本发明是申请号为2004800080570(申请日:2004年3月29日;发明名称:图象输出控制系统、图象输出装置及图象处理装置)的分案申请。
技术领域
本发明涉及对图象数据实施所定的图象处理后输出图象的技术,详细地说,涉及将经过图象处理的图象数据迅速向图象输出装置传输,从而使图象的输出迅速化的技术。
背景技术
在印刷媒体及液晶画面等各种输出媒体上形成象点,从而表现图象的图象输出装置,作为各种图象机器的输出装置,得到广泛使用。在这些图象输出装置中,图象被细分成称作“象素”的小区域的状态处理,在这些象素上形成象点。在象素上形成象点时,毫无疑问,对每一个象素而言,只能成为形成象点或不形成象点中的某一个状态。可是,从整个图象上看,却有可能产生象点稠密形成的区域和稀疏形成的区域。这样,通过改变象点的形成密度,就可以输出图象。例如,在印刷用纸上形成黑墨水的象点时,象点稠密形成的区域显得暗,反之,稀疏形成的区域则显得亮。另外,在液晶画面上形成光点的象点时,象点稠密形成的区域显得亮,稀疏形成的区域则显得暗。所以,如果适当控制象点的形成密度,就能输出多灰度的图象。
旨在控制象点的形成密度的数据,通过对要输出的图象的数据,实施所定的图象处理后产生。得到的数据,被供给图象处理装置。在图象处理装置中,按照供给的数据,在各象素上形成象点。其结果,就可以在输出媒体上,以适当的密度形成象点,输出图象。
近几年来,对这些图象输出装置,提出了输出图象的高质量化及大图 象化的要求。对于高质量化的要求,将图象分割成更细的象素,是个有效的途径。这样,将象素变小后,在象素上形成的象点就不醒目,可以使图象质量得到提高(例如,特开2000-115716号公报)。另外,对于大图象化的要求,也可以通过增加象素数量的方法实现。毫无疑问,使每一个象素变大,也能加大输出图象,但这样会带来图象质量的下降,所以对于大型化的要求,增加象素数量是行之有效的。
可是,满足输出图象的高质量化及大图象化的要求后,势必会出现难以迅速输出图象的问题,就是说,为了大图象化而增加象素数量的情况就不必说了,为了图象的高质量化而将一个个象素变小时,结果也使1个图象包含的象素数量增加。如前所述,由于图象输出装置是接收供给的控制象点的形成的数据后输出图象的,所以1个图象包含的象素数量增加后,供给数据所需的时间就要增加,迅速输出图象就成为一件困难的事情。
发明内容
本发明针对现有技术的上述课题,目的在于将控制象点的形成的数据,迅速供给图象输出装置,从而可以使图象的输出迅速化。
为了达到上述目的,本发明的第1图象输出控制系统采用下述结构。即其特征在于:
是包括对图象数据实施所定的图象处理的图象处理装置和根据该图象处理的结果形成象点、从而输出图象的图象输出装置的图象输出控制系统,
所述图象处理装置,具有:
对于构成所述图象的多个象素被按照所定多个归纳的象素组,根据所述图象数据,决定该象素组内形成的象点的个数的象点个数决定单元;
将按照所述各象素组决定的象点个数的数据,供给所述图象输出装置的个数数据供给单元;
所述图象输出装置,包括:
接受关于所述各象素组的象点个数的数据的个数数据接受单元;
给每个所述象素组特定在所述象素组内各象素中形成有象点的象素的序列的序列选择单元;
根据所述象点个数的数据和所述选择的序列,对在所述象素组内形成 象点的象素位置按照该象素组的每一个进行决定的象素位置决定单元;
根据所述决定的象素位置形成象点的象点形成单元。
另外,与上述图象输出控制系统对应的本发明的第1图象输出控制方法,其特征在于:
是对图象数据实施所定的图象处理,根据该图象处理的结果形成象点,从而输出图象的图象输出控制方法,
对于构成所述图象的多个象素被按照所定多个归纳的象素组,根据所述图象数据,决定该象素组内形成的象点的个数的第1工序;
给该每个象素组特定在所述象素组内各象素中形成有象点的象素的序列的第2工序;
根据所述决定的象点的个数和所述选择的序列,对在所述象素组内形成象点的象素位置按照该象素组的每一个进行决定的第3工序;
根据所述决定的象素位置形成象点的第4工序。
在本发明的这种图象输出控制系统及图象输出控制方法中,给每一个由多个象素构成的象素组,生成该象素组内应该形成的象点的个数的数据。另外,特定象素组内各象素中形成有象点的象素的序列。而且,在形成象点之际,根据特定的序列和象素组的象点的个数的数据,决定该象素组内形成象点的象素位置。根据这样决定的象素位置,形成象点。
象素组内形成的象点的个数,可以用比表示象素组内的各象素有无象点的数据少得多的数据量表示。所以,一旦将图象数据变换成象素组的象点个数的数据后,就能够减少数据的传输量,进行迅速的传输。因此,例如即使是象素数甚多的图象,也能用很短的时间完成数据输送,从而迅速地输出图象。
另外,象素组内的象素位置,取决于象点个数的数据和象素的序列——表示该象素组内各象素以什么样的顺序形成象点的序列。在这里,在决定象素位置之际,使用每个象素组特定的序列决定象素位置。因此,例如,即使形成相同个数的象点的象素组连续时,也能使每个象素组在不同的象素位置上形成象点。这样,用有规则的图案形成的象点就不醒目,就能避免使图象质量恶化的危险。
此外,在供给象点个数的数据之际,还可以采用编码化的状态供给。 而且,还可以将该数据译码成象素组内应该形成的象点个数后决定象素位置。将象点个数的数据编码化后,就能压缩数据量,有效地传输数据,进而能够迅速地输出图象。
在这种第1图象处理系统及图象处理方法中,还可以采用下述方法。首先,在决定象点个数之际,根据给二维排列的每一个象素对应附加的临界值的抖动矩阵,决定所述象素组内应该形成的象点的个数。接着,在决定象素位置之际,将决定所述象点个数使用的抖动矩阵,分割成多个象素组,根据给该象素组内的各象素对应附加的临界值的大小关系,特定每个象素组决定的象素的序列。然后,从多个存储的该序列中,选择与在图象上的象素组的位置对应的1个序列,根据选择的序列和象点个数,决定象素位置。
采用抖动矩阵后,能够迅速决定象点个数。另外,如果根据和决定象点个数使用的抖动矩阵相同的矩阵,设定为了由象点个数决定象素位置而使用的序列后,决定象点个数的处理和决定象素位置的处理就亲自整合,所以能够适当决定象素位置,进而还能够以很高的图象质量输出图象,作为抖动矩阵,分散型及密集型的就不必说了,还可以使用蓝噪声矩阵或梯度噪声矩阵等各种矩阵。使用这样的抖动矩阵后,形成的象点,就成为集各种矩阵的特点于一身的象点。
为了达到上述目的,本发明的第2图象输出控制系统,其特征在于:
是包括对图象数据实施所定的图象处理的图象处理装置和根据该图象处理的结果形成象点、从而输出图象的图象输出装置的图象输出控制系统,
所述图象处理装置,具有:
将构成所述图象的多个象素多个地归纳,生成象素组的象素组生成单元;
至少对于多个该象素组来说,以使与所述象素组对应的图象数据和该象素组内应当形成的象点的个数的对应关系在该象素组的每一个中都互不同的状态,决定该象点的个数的象点个数决定单元;
将按照所述各象素组决定的象点个数的数据,作为控制数据,供给所述图象输出装置的个数数据供给单元;
所述图象输出装置,包括:
接受关于所述各象素组的象点个数的数据的个数数据接受单元;
根据所述象点个数的数据,对在所述象素组内形成象点的象素位置按照该象素组的每一个进行决定的象素位置决定单元;
根据所述决定的象素位置,形成象点的象点形成单元;和
序列选择单元,预先预备用于确定在所述象素组内的象素中形成象点的顺序的多种序列,当取得所述象点个数时,从所述多种序列中,给所述各象素组选择1个序列,
所述象素位置决定单元,是根据所述象点个数的数据和所述序列,确定所述象点的形成位置的单元。
采用这种图象输出控制系统后,在图象处理装置中,因为至少对于多个象素组来说,以使象素组的每一个都互不同的状态,决定象点的个数,所以可以降低以规则的图案形成的象点的可能性。还能构成与该第2图象输出控制系统对应的第2图象输出控制方法,这时也能够获得同样的作用效果。
另外,为了达到本发明的目的,本发明的图象输出装置,采用下述结构。即其特征在于:
是接收经过所定的图象处理的图象数据,根据该图象数据,形成象点,从而输出图象的图象输出装置,包括:
作为所述图象数据,在将构成所述图象的多个象素按照所定的多个作为象素组归纳的状态,接受该象素组内应该形成的象点个数的数据的个数数据接受单元;
给每个所述象素组特定在所述象素组内各象素中形成有象点的象素的序列的序列特定单元;
根据所述接受的象点个数的数据和所述特定的序列,对在所述象素组内形成象点的象素位置按照该象素组的每一个进行决定的象素位置决定单元;
根据所述决定的象素位置,形成象点的象点形成单元。
另外,与上述图象输出装置对应的本发明的图象输出方法,其特征在于:
是接收经过所定的图象处理的图象数据,根据该图象数据,形成象点,从而输出图象的图象输出方法,包括:
作为所述图象数据,在将构成所述图象的多个象素按照所定的多个作为象素组归纳的状态,接受该象素组内应该形成的象点个数的数据的工序A;
给每个接受所述象点个数的数据的象素组特定在所述象素组内各象素中形成有象点的象素的序列的工序B;
根据所述接受的象点个数的数据和所述特定的序列,对在所述象素组内形成象点的象素位置按照该象素组的每一个进行决定的工序C;
根据所述决定的象素位置,形成象点的工序D。
在本发明的这种图象输出装置及图象输出方法中,接受象素组内应该形成的象点个数的数据,根据该图象数据,决定在象素组内形成象点的象素位置,在决定的象素位置上形成象点,从而输出图象。
如前所述,象素组内形成的象点的个数,可以用比表示象素组内的各象素有无象点的数据少得多的数据量表示。所以,如上所述地输出图象后,例如即使是象素数甚多的图象,也能迅速地接受数据,所以能够迅速地输出图象。
另外,象素组内为了决定象素位置而使用的象素的序列,给每个象素组特定,因此,例如,即使形成相同个数的象点的象素组连续时,也能给每个象素组决定不同的象素位置。这样,用有规则的图案形成的象点就不醒目,就没有使图象质量恶化的危险。
此外,在接受象点个数的数据之际,还可以采用接受编码化状态的数据,再将该数据译码成表示象素组内应该形成的象点的个数的数据后,决定象素位置。将象点个数的数据编码化后,就能压缩数据量,所以能够有效地接受象点个数的数据,能够更加迅速地输出图象。
在这种图象输出装置及图象输出方法中,可以将相互邻接、而且具有所定位置关系的多个象素,作为所述象素组归纳。
作为象素组归纳的象素,未必需要相互邻接,但是如果将相互邻接、而且具有所定位置关系的象素,作为所述象素组归纳,就使决定象点个数或决定象素组内的象素位置的处理变得容易,所以是理想的。
进而,在这种图象输出装置及图象输出方法中,可以预先以该序列被以所定的顺序二维排列的序列矩阵的形态,存储所述多个序列,在决定象素位置之际,从该序列矩阵存储的多个序列中,选择1个与在图象上的象素组的位置对应的序列,决定象素位置。
这时,以适当的顺序排列序列矩阵存储的多个序列,可以涉及多个象素组,得到适当的象素位置。其结果,可以改善形成的象点的分布,以很 高的图象质量输出图象。
在这种序列矩阵中,可以采用下述方法,根据抖动矩阵,进行设定。首先,将抖动矩阵分割成多个象素组。这样得到的象素组,包含多个象素,给各象素对应附加抖动矩阵的临界值。根据这些临界值的大小关系,给每个象素组设定象素组内的各象素的序列。
抖动矩阵的临界值,设定成使形成的象点成为适当的分布,所以使用根据抖动矩阵设定的序列矩阵,就可以输出象点适当分布的图象质量很高的图象。
另外,在决定象素组内形成象点的象素位置之际,还可以采用如下方法。即:根据选择的序列,给每个象素决定象素组内的各象素中形成有象点的顺序的顺序值。然后,比较象素组的象点个数的数据和决定的顺序值,从而检出该象素组内形成象点的象素位置。
这样,只比较某个象素的顺序值和象点个数,就能立即判断该象素是否形成象点。例如,假使某象素组形成N个象点,顺序值越小,越容易形成象点,就可以认为顺序值从第1到第N的象素形成象点。所以,这时,检出顺序值在象点个数以下的象素,就能迅速决定形成象点的象素位置。
或者,还可以采用如下方法决定象素位置。首先,设象素组包含的象素数为N、该象素组形成的象点个数为M时,生成由意味着形成象点的M个连续的数据和意味着不形成象点的N-M个连续的数据构成的中间数据。这些中间数据,可以由象素组形成的象点个数的数据很容易地生成。接着,根据选择的序列,给每个象素决定该象素组内的各象素中形成有象点的顺序的顺序值。然后,根据该顺序值,从所述中间数据读出符合的数据,从而检出该象素组内形成象点的象素位置。
这样,只要从中间数据读出符合于顺序值的部分的数据,就能迅速判断该象素是否形成象点,所以能够迅速决定形成象点的象素位置。
另外,从中间数据读出符合的数据之际,还可以采用下述方法。首先,将中间数据,向意味着形成象点的数据被分配的方向,位移相当于所述顺序值的个数的数据。然后,作为符合的数据,读出位于该移动侧的端部的数据。
这样,使中间数据位移后,只要始终读出位于中间数据的端部的数据 就行,所以可以简便地读出符合的数据,是很合适的。
进而,为了达到本发明的目的,本发明的第1图象处理装置采用下述结构。即其特征在于:
是形成象点后输出图象的图象输出装置对表示该图象的图象数据,实施所定的图象处理,生成为了控制该象点的形成而使用的控制数据的图象处理装置,
具有:
将构成所述图象的多个象素多个地归纳,生成象素组的象素组生成单元;
至少对于多个该象素组来说,以使与所述象素组对应的图象数据和该象素组内应当形成的象点的个数的对应关系在该象素组的每一个中都互不相同的状态,决定该象点的个数的象点个数决定单元;
将按照所述各象素组决定的象点个数的数据,作为所述控制数据,供给所述图象输出装置的个数数据供给单元。
另外,与上述图象处理装置对应的本发明的第1图象处理方法,其特征在于:
是形成象点后输出图象的图象输出装置对表示该图象的图象数据,实施所定的图象处理,生成为了控制该象点的形成而使用的控制数据的图象处理方法,
具有:
将构成所述图象的多个象素多个地归纳,生成象素组的工序(a);
至少对于多个该象素组来说,以使与所述象素组对应的图象数据和该象素组内应当形成的象点的个数的对应关系在该象素组的每一个中都互不相同的状态,决定该象点的个数的工序(b);
将按照所述各象素组决定的象点个数的数据,作为所述控制数据,供给所述图象输出装置的工序(c)。
在本发明的第1图象处理装置及第1图象处理方法中,即使相同的图象数据在多个象素组中连续出现时,也能输出不同的个数数据。因此:在图象输出装置中,可以避免多个象素组在相同的位置形成象点,所以能够切实避免以有规则的图案形成象点而导致图象质量恶化的现象。
另外,象素组内形成的象点的个数,可以用比表示象素组内的各象素有无象点的数据少得多的数据量表示。所以,即使是象素数甚多的图象,也能迅速地将数据供给图象输出装置,迅速地输出图象。
另外,在决定象点个数之际,还可以通过比较被象素组归纳的象素的图象数据,和相当于被该象素组归纳的象素数的图象数据的多个临界值,从而决定象点的个数。在这里,多个临界值,既可以作为和构成象素组的象素同样排列的临界值的矩阵,也可以作为只由多个临界值构成的临界值的集合或数列。
这样,预先设定多组临界值,可以简便且适当地决定象素组内应当形成的象点的个数。
此外,在供给控制数据之际,还可以先将象点个数的数据编码化后供给。将象点个数的数据编码化后,就能压缩数据量,所以能够有效地供给控制数据。
在这种图象处理装置及图象处理方法中,还可以按照所定的多个归纳象素,从而生成分割所述象素的多个象素组,同时根据该象素组归纳的象素的图象数据,给每个象素组决定该象素组应该形成的象点的个数。
在决定象素组的象点的个数之际,还可以首先预先对各象素判断是否形成象点后存储,接着根据判断结果,给每个象素组决定象点的个数。可是,如果先将图象分割成多个象素组,再根据各象素组的图象数据,给每个象素组决定象点的个数,就不需要预先存储多个象素的判断结果,所以是理想的方法。
在第1图象处理装置及第1图象处理方法中,作为使象素组归纳的图象数据和象素组的象点个数的对应关系,在各象素组中互不相同的样态,可以采用各种样态。但采用下述方式较好。即:决定象素组应该形成的象点的个数后,使对象素组归纳的图象数据产生的灰度误差,至少在所定范围内的象素组间相互抵消。这样,可以采用各种方法,例如给图象数据附加杂波等。但如前所述,根据抖动矩阵,可以通过决定象点个数来实现。
这样,如果在象素组中产生的灰度误差,至少在所定范围内的象素组间相互抵消,那么因为能够减少误差,所以可以改善输出图象的质量。
另外,为了达到本发明的目的,本发明的第2图象处理装置采用下述 结构。即其特征在于:
是形成象点后输出图象的图象输出装置对表示该图象的图象数据,实施所定的图象处理,生成为了控制该象点的形成而使用的控制数据的图象处理装置,
具有:
预先存储给二维排列的每个象素设定了临界值的抖动矩阵的抖动矩阵存储单元;将构成所述图象的多个象素按照所定的多个地归纳,生成象素组的象素组生成单元;
通过比较所述象素组归纳的各象素组的象素数据和所述抖动矩阵中对应的象素设定的所述临界值,从而决定该象素组内应当形成的象点的个数的象点个数决定单元;
将按照所述各象素组决定的象点个数的数据,作为所述控制数据,供给所述图象输出装置的个数数据供给单元。
这样,通过和抖动矩阵的临界值进行比较,决定各象素组的象点个数后,就能够按照图象数据适当决定象点个数,进而能够以很高的图象质量输出图象,所以是很理想的。
进而,本发明还可以作为由计算机实施、旨在实现上述图象输出控制方法、图象输出方法及图象处理方法的程序把握。因此,本发明还包含下述程序,或作为记录了该程序的记录媒体的样态。就是说,与上述图象输出控制方法对应的本发明的程序,即其特征在于:
是由计算机实施、根据对图象数据实施所定的图象处理得到的结果形成象点、从而输出图象的程序,具有:
对于构成所述图象的多个象素被按照所定多个归纳的象素组,根据所述图象数据,决定该象素组内形成的象点的个数的第1功能;
给每个所述象素组特定在所述象素组内各象素中形成有象点的象素的序列的第2功能;
根据所述决定的象点个数和所述选择的序列,对在所述象素组内形成象点的象素位置按照该象素组的每一个进行决定的第3功能;
根据所述决定的象素位置形成象点的第4功能。
这种程序实现的所述第1功能及所述第2功能,还可以作为如下的功 能。即该第1功能,是根据给二维排列的每一个象素对应附加的临界值的抖动矩阵,决定所述象素组内应该形成的象点的个数的功能。另外,该第2功能,可以作为实现将决定所述象点个数使用的抖动矩阵,分割成多个象素组,根据给该象素组内的各象素对应附加的临界值的大小关系,特定每个象素组决定的象素的序列的功能,和从被所述抖动矩阵的各象素组存储的序列中,选择与在所述图象上的象素组的位置对应的1个序列的功能的功能。
或者,本发明程序,还可以作为如下的样态把握。即还可以作为实现下述功能的程序把握:
是由计算机实施、接收经过所定的图象处理的图象数据,根据该图象数据,形成象点,从而输出图象的程序,包括:
作为所述图象数据,在将构成所述图象的多个象素按照所定的多个作为象素组归纳的状态,接受该象素组内应该形成的象点个数的数据的功能(A);
给接受了所述象点个数的数据每个所述象素组特定在所述象素组内各象素中形成有象点的象素的序列的功能(B);
根据所述接受的象点个数的数据和所述特定的序列,对在所述象素组内形成象点的象素位置按照该象素组的每一个进行决定的功能(C);
根据所述决定的象素位置,形成象点的功能(D)。
进而,与上述图象处理方法对应的本发明的程序,其特征在于:
是由计算机实施、形成象点后输出图象的图象输出装置对表示该图象的图象数据,实施所定的图象处理,生成为了控制该象点的形成而使用的控制数据的程序,
实现下述功能:
将构成所述图象的多个象素多个地归纳,生成象素组的功能(a);
至少对于多个该象素组来说,以使与所述象素组对应的图象数据和该象素组内应当形成的象点的个数的对应关系在该象素组的每一个中都互不相同的状态,决定该象点的个数的功能(b);
将按照所述各象素组决定的象点个数的数据,作为所述控制数据,供给所述图象输出装置的功能(c)。
再加上,本发明还可以作为这些各种程序可以被计算机读取地记录的记录媒体把握。
如果使计算机读入这些程序或被记录媒体记录的程序,使用该计算机实现上述的各种功能后,即使是象素甚多的图象,也能迅速输出图象。
附图说明
图1是以印刷系统为例,讲述发明的概要的说明图。
图2是表示作为本实施方式的图象处理装置的计算机的结构的说明图。
图3是表示本实施方式的打印机的简要结构的说明图。
图4是表示墨水喷出头中墨水喷嘴Nz的排列的说明图。
图5是表示第1实施方式的图象处理装置中进行的图象印刷处理的流程的流程图。
图6(a)、图6(b)是表示进行析象度变换的情况的说明图。
图7是表示第1实施方式的个数数据生成处理的流程的流程图。
图8是放大例示抖动矩阵的一部分的说明图。
图9是表示参照抖动矩阵,判断各象素是否形成象点的情况的说明图。
图10(a)、图10(b)是表示按照象素组求出象点个数的数据的情况的说明图。
图11是表示第1实施方式的象素位置决定处理的流程的流程图。
图12(a)~图12(d)是表示在第1实施方式的象素位置决定处理中求出象点个数根据象点个数的数据决定象素位置处理的情况的说明图。
图13(a)~图13(c)是表示在第1变形例中的个数数据生成处理中的求出象点个数的情况的说明图。
图14(a)~图14(c)是表示在第2变形例的个数数据生成处理中的求出象点个数的情况的说明图。
图15是表示第2变形例的象素位置决定处理的流程的流程图。
图16是表示第2实施方式的个数数据生成处理的流程的流程图。
图17(a)、图17(b)是表示按照象素组内有无边缘,用平均灰度值置换象素组内各象素的灰度值的情况的说明图。
图18(a)~图18(c)是表示第2实施方式中,由计算机输出的数据 的形式的说明图。
图19是表示第2实施方式中,由计算机输出的数据形式的其它样态的说明图。
图20是表示第2实施方式的象素位置决定处理的流程的流程图。
图21是表示第3实施方式的图象印刷处理的流程的流程图。
图22是表示第3实施方式的大中小象点数据变换处理中参照的变换表的示意图。
图23(a)、图23(b)是表示在第3实施方式的个数数据生成处理中,由象点数据生成象点个数数据的情况的说明图。
图24是表示第3实施方式的个数数据生成处理的流程的流程图。
图25是表示参照抖动矩阵,决定形成各种象点的象素位置的情况的说明图。
图26是为了将各种象点的个数数据编码化而参照的变换表的示意图。
图27是表示以在第3实施方式的个数数据生成处理中,不特定象素位置地求出象点个数的情况的说明图。
图28是表示第3实施方式的象素位置决定处理的流程的流程图。
图29是表示在第3实施方式的象素位置决定处理中,根据象点个数的数据决定象素位置的情况的说明图。
图30是表示在第3实施方式的第1变形例的象素位置决定处理中参照的译码化表的示意图。
图31是表示第3实施方式中的第1变形例的象素位置决定处理的流程的流程图。
图32是表示第3实施方式中的第2变形例的象素位置决定处理的流程的流程图。
图33是表示第3实施方式中的第2变形例的象素位置决定处理的流程的流程图。
图34(a)~图34(c)是表示在第3实施方式的第2变形例的象素位置决定处理中,使用中间数据决定象点的种类的情况的示意图。
图35是表示在第1变形例的图象印刷处理中进行的个数数据生成处理的流程的流程图。
图36是表示根据象素组内的平均灰度值,根本性地求出象点个数的情况的示意图。
图37是表示在第2变形例的图象印刷处理中进行的个数数据生成处理的流程的流程图。
图38是表示在第3变形例的图象印刷处理中进行的象素位置决定处理的流程的流程图。
图39是表示存储多个象素组内的象素的序列的示意图。
具体实施方式
为了更明确地讲述本发明的作用、效果,下面,按照如下顺序讲述本发明的实施方式。
A、实施方式的概要:
B、第1实施方式:
B-1、装置构成:
B-2、图象印刷处理的概要:
B-3、第1实施方式的个数数据生成处理:
B-4、第1实施方式的象素位置决定处理:
B-5、变形例:
C、第2实施方式:
C-1、第2实施方式的个数数据生成处理:
C-2、第2实施方式的象素位置决定处理:
D、第3实施方式:
D-1、第3实施方式的图象印刷处理概要:
D-2、第3实施方式的个数数据生成处理:
D-3、第3实施方式的象素位置决定处理:
D-4、变形例:
E、其它变形例:
A、实施方式的概要:
在详细讲述实施方式之前,参照图1,讲述本发明的实施方式的概要。图1是以印刷系统为例,讲述实施方式的概要的说明图。作为图象输出控 制系统的印刷系统,由作为图象处理装置的计算机10和作为图象输出装置的打印机20等构成,将所定的程序,装入计算机10,并使其执行后,计算机10及打印机20等就作为整体,作为一个印刷系统发挥作用。打印机20通过在印刷媒体上形成象点,从而印刷图象。计算机10对要印刷的图象的象素数据实施所定的图象处理,生成旨在控制打印机20在每个象素上形成象点的数据,供给该打印机20。
在这里,在通常的印刷系统中,计算机将图象数据变换成表示构成图象的每个象素是否形成象点的的数据后,供给打印机,根据该数据形成象点,从而印刷图象。在这里,要印刷的图象的象素数增多后,伴随着它,表示每个象素是否形成象点的的数据的数据量也要增多,所以由计算机向打印机供给数据就需要较长的时间,印刷所需的时间也要增加。考虑到这一点,就在图1所示的计算机10中,设置象点个数决定模块和个数数据生成模块,进行如下的处理。
象点个数决定模块,对于构成图象的多个象素被按照所定多个归纳的象素组,根据图象数据,决定该象素组内形成的象点个数。在这里,每个象素组的个数数据,可以将图象数据归纳成象素组后,通过判断每个象素组是否形成象点后生成。或者先将图象变换成的是否形成象点的表现形式后,将象素归纳为所定的多个,生成象素组,决定各象素组内形成的象点个数。此外,作为象素组归纳的多个象素,不是相互邻接的象素也行。另外,个数数据生成模块,将每个象素组决定的象点个数的数据,向打印机20供给。
在图1所示的打印机20中,设置着序列存储模块、象素位置决定模块和象点形成模块。在序列存储模块中,存储着多个在象素组内各象素中形成有象点的象素的序列。象素位置决定模块,一边参照序列存储模块,一边按照下述方式决定每个象素组中应当形成象点的象素位置。首先,接收一个象素组的个数数据后,从序列存储模块存储的多个序列中选择1个序列。然后,按照选择的序列,从构成象素组的多个象素中,将个数数据指定的个数的象素,作为应该形成象点的象素选择。这样,象素位置决定模块接收个数数据后,给各象素组选择序列,决定形成象点的象素位置。象点形成模块,在这样决定的象素上形成象点。其结果,就在印刷媒体上形 成图象。
这样,在图1所示的印刷系统中,在由计算机10向打印机20供给表示是否形成象点的数据之际,不是供给每个象素的数据,而是供给表示每个象素组形成的象点的个数的数据。这样,与向每个象素供给是否形成象点的情况相比,可以减少供给的数据量。因此,例如,在象素包含的象素数增加时,也能由计算机10向打印机20迅速供给数据,迅速印刷图象。下面,以这种印刷系统为例,详细讲述各种实施方式。
B、第1实施方式:
B-1、装置构成:
图2是表示作为本实施方式的图象处理装置的计算机100的结构的说明图。计算机100,是以CPU102为中心,用总线116将ROM104及RAM106等连接而成的众所周知的计算机。
计算机100,与旨在读取软盘124及小型盘126等中的数据的盘控制器DDC109、旨在与外围设备进行数据交换的外围设备接口PIF108以及旨在驱动CRT114的视频接口VIF112等连接。外围设备接口PIF108,与后叙的彩色打印机200以及硬盘118等连接。另外,如果将数码相机120及彩色扫描器122等与PIF108连接,还可以印刷数码相机120及彩色扫描器122获得的图象。而如果安装网络接口卡NIC110,就将计算机100与通信线路300连接,还可以取得与通信线路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组喷嘴列,每组的喷嘴列,以一定的喷嘴间距K摆列着48个喷嘴Nz。
控制电路260,成为由总线将CPU及ROM、RAM等相互连接的结构。控制电路260,通过控制托架电动机230及给纸电动机235的动作,从而控制托架240的主扫描动作及副扫描动作,同时还根据由计算机100供给的印刷数据,控制各喷嘴在适当的时刻喷出墨滴。这样,在控制电路260的控制下,在印刷媒体上的适当位置上就形成各种颜色的墨点,从而可以使彩色打印机200印刷彩色图象。
此外,从各色的墨水喷出头喷出墨滴的方法,可以采用各种方法。即:可以采用使用压电元件喷出墨水的方式,以及用配置在墨水通路上的加热器使墨水通路内起泡(泡沫)后喷出墨滴的方法等。另外,还可以取代喷出墨水,使用利用热复制等的现象在印刷用纸上形成墨点的方式,以及利用静电使各色的墨粉附着在印刷媒体上的方式的打印机。
具有上述硬件结构的彩色打印机200,通过驱动托架电动机230,使喷出各种颜色的墨水喷出头244~247对印刷用纸P而言,沿着主扫描方向移动;还通过驱动给纸电动机235,使印刷用纸P沿着副扫描方向移动。控制电路260按照印刷数据,一边使托架240反复进行主扫描及副扫描,一边在适当的时候驱动喷嘴喷出墨水,这样彩色打印机200就在印刷用纸上印刷彩色图象。
B-2、图象印刷处理的概要
图5是表示本实施方式的计算机100及彩色打印机200对图象数据实施所定的图象处理后,在印刷媒体上印刷图象的处理的流程的流程图。该图象印刷处理,正如后文所述,前半部分利用计算机100内置的CPU的功能,后半部分利用彩色打印机200的控制电路260内置的CPU的功能实施。 下面,参照图5讲述本实施方式的图象印刷处理。
计算机100开始图象印刷处理后,首先,开始读入应当变换的图象数据(步骤S100)。在这里,图象数据是作为RGB彩色图象数据进行讲述。但并不局限于,对单色的图象数据也能同样运用。
继读入彩色图象数据后,进行颜色变换处理(步骤S102)。所谓颜色变换处理,是将由R、G、B的灰度值的组合表现的RGB彩色图象数据,变换成印刷使用的由各色的灰度值的组合表现的图象数据的处理。如前所述,彩色打印机200使用C、M、Y、K的4色墨水印刷图象。因此,在本实施方式的中的颜色变换处理,是将由R、G、B各色表现的图象数据,变换成由C、M、Y、K各色的灰度值表现的数据。图象数据的处理,参照被称作颜色变换表(LUT)的三维数表进行。在LUT中,预先存储着对RGB彩色图象数据,经过颜色变换得到的C、M、Y、K各色的灰度值,所以如果参照该LUT进行变换,就能够迅速地进行颜色变换。
结束颜色变换处理后,开始析象度变换处理(步骤S104)。所谓“析象度变换处理”,是将图象数据的析象度,变换成打印机200进行印刷的析象度(印刷析象度)的处理。如前所述,为了提高印刷图象质量,将象素变小,以更高的析象度印刷是非常有效的。可是,在提高印刷析象度的时候,未必需要提高原来的图象数据的析象度。因为形成象点、印刷图象时,每个象素只能在是否形成象点上二者择一,即使改变了象点的大小等,每个象素所能表现的灰度数也顶多不过几灰度。与此不同,读入的图象数据,即使是1个字节的数据,每个象素也能表现256灰度。这样,每个象素能表现的灰度就存在很大的差异,所以将印刷析象度设定成比读入的图象数据的析象度高的析象度,就能提高印刷图象质量。基于这一理由,在图5的步骤S104中,进行将图象数据的析象度变换成更高的析象度——印刷析象度的处理。
图6(a)、图6(b)是表示第1实施方式中进行的析象度变换的情况的说明图。此外,如前所述,经过颜色变换,可以获得及C、M、Y、K各种颜色的每一个的图象数据,但在以后讲述的处理中,对这些各种颜色的图象数据的哪一个,都是同样进行的。所以,为了避免繁琐讲述,以下的讲述就不特定颜色。
图6(a)是将颜色变换后的图象数据中的一部分扩大后的示意图。如图所示,图象数据是将灰度值分配给晶格状排列的象素的每一个的数据。图6(a)中示出的多个矩形,分别示意性地表示象素,矩形中示出的数值,表示分配给各象素的灰度值。为了将这些图象数据的析象度,变换成更高的析象度,可以在象素间进行插补运算,从而生成新的象素。但在本实施方式中,作为最简便的方法,采用将象素分割成更小的象素的方法,进行析象度变换。
图6(b)是表示分割象素进行析象度变换的情况的说明图。在图示的例子中,将每个象素,在主扫描方向(在图中为左右方向)分割成4分,在副扫描方向(在图中为上下方向)分割成2分,从而将1个象素分割成8个象素。图6(b)中的虚线,表示象素被分割的情况。给这样生成的小象素,分配与分割前的原来的象素的灰度值相同的灰度值。实施以上的处理后,图象数据的析象度,就在主扫描方向上被变换成为4倍的析象度、在副扫描方向上被变换成为2倍的析象度。毫无疑问,析象度的增加比例,可以根据需要设定成各种比例。
如上所述,将析象度变换成印刷析象度后,计算机100(步骤S100)就开始个数数据生成处理(步骤S106)。在这里,进行如下处理。颜色变换后的图象数据,是灰度值被分配给每个象素的灰度数据。对此,打印机200以适当的密度在象素位置形成象点,从而印刷图象。这样,将灰度数据变换成由每个象素是否形成象点的形式表现的数据后,需要向打印机200传输。另外,将表示是否形成象点的数据,以象素单位向打印机200传输,由于随着象素数增多,传输需要的时间就要增加,所以难以迅速印刷图象。于是,在本实施方式的图象印刷处理中,将象素按照所定的多个,作为象素组归纳,将象素组内形成的象点个数的数据,向打印机200传输。在这里,象素组内形成的象点个数的数据,可以预先将图象数据变换成表示各象素是否形成象点的数据后,将多个象素,作为象素组归纳。或者如后文所述,可以先将多个象素归纳为象素组,然后决定象素组内各象素形成的象点的个数。在步骤S106的个数数据生成处理中,就这样生成象素组内形成的象点的个数后,进行向打印机200传输的处理。关于个数数据生成处理的详细内容,后文再述。
打印机200的控制电路260内置的CPU,接受由计算机100供给的象点个数的数据后,开始象素位置决定处理(步骤S108)。在这里,进行如下处理。如前所述,计算机100取代表示各象素是否形成象点的数据,供给表示象素组内形成的象点的个数的数据。因此,在象素位置决定处理中,根据各象素组接受的象点个数的数据,进行决定象素组内形成象点的象素位置的处理。关于象素位置决定处理的详细过程,将在后文讲述。
这样,在决定应当形成象点的象素位置后,就在决定的象素位置进行形成象点的处理(步骤S110)。就是说,如使用图3进行的讲述那样,一边使托架240反复进行主扫描和副扫描,一边驱动喷墨头喷出墨滴,从而在印刷用纸上形成墨点。这样,通过形成象点,就印刷出与图象数据对应的图象。
B-3、第1实施方式的个数数据生成处理:
图7是表示第1实施方式的个数数据生成处理的流程的流程图。下面,参照流程图,详细讲述个数数据生成处理的内容。
开始个数数据生成处理后,首先,归纳所定的多个象素,生成象素组(步骤S200)。在这里,由于在析象度变换处理中将1个象素分割成8个象素,所以就将分割同一象素后得到的8个象素作为象素组归纳。例如,在图6(a)中左上角的象素,在图6(b)中,被分割成位于左上方的纵2列、横4列的8个象素,所以归纳这些象素,生成象素组。此外,作为象素组归纳的象素,不必是互相邻接的象素,只要具有所定的位置关系,无论什么样的象素,都可以作为象素组归纳。
另外,这样将同一象素分割的象素作为象素组归纳时,还可以省略图5的析象度变换处理。这时,在以下的讲述中,将有“象素组”的部分,改读作“进行析象度变换前的象素”后,就能进行大致相同的处理。
接着,从作为象素组归纳的象素中,设定一个为了判断是否形成象点而着眼的象素(着眼象素)(步骤S202)。然后,比较分配给着眼象素的灰度值和抖动矩阵的临界值,从而判断着眼象素是否形成象点(步骤S204)。所谓抖动矩阵,是多个临界值被晶格状存储的二维的数表。关于使用抖动矩阵判断是否形成象点的处理,可以按照图8及图9进行讲述。图8是例示抖动矩阵的一部分的说明图。在图示的抖动矩阵中,给纵横分别为64个 象素、合计4096个象素,随机存储着从灰度值1~255的范围中没有遗漏地选择的临界值。在这里,临界值的灰度值,从1~255的范围中选择,因为在本实施方式中图象数据是1字节数据,分配给象素的灰度值,是与可以取得0~255的值对应的值。此外,抖动矩阵的大小,并不局限于图8例示的纵横为64个象素,包含纵和横的象素数不同的情况在内,可以采用各种各样的大小。
图9是参照抖动矩阵,判断着眼象素是否形成象点的情况的概念性的说明图。在判断着眼象素是否形成象点之际,首先,比较着眼象素的灰度值和抖动矩阵中的对应位置存储的临界值。图中示出的细虚线的箭头,示意性地表示出比较着眼象素的灰度值和抖动矩阵中的对应位置存储的临界值的情况。而且,在着眼象素的灰度值大于抖动矩阵的临界值时,就判断该象素形成象点。反之,在抖动矩阵的临界值大于着眼象素的灰度值时,就判断该象素不形成象点。如果再根据图9进行说明,关于图象数据的左上角的象素,由于该图象数据的灰度值是97,抖动矩阵的临界值是1,所以判断该象素形成象点。在图9中,用实线所示的箭头,是表示判断该象素形成象点后,将判断结果写入存储器的情况。另一方面,关于该象素的右邻的象素,由于其图象数据的灰度值是97,抖动矩阵的临界值是117,临界值的一方大,所以判断该象素不形成象点。在图7的步骤S204中,就这样进行一面参照抖动矩阵,一面判断着眼象素是否形成象点的处理。
接着,判断对象素组内所有的象素,是否进行了以上的处理(步骤S206),象素组中还有未处理的象素时(步骤S206:no),返回步骤S202,继续进行这一系列的处理。这样,对象素组内所有的象素,是否形成象点的判断完毕后(步骤S206:yes),检出象素组内形成的象点的个数,以与象素组对应附加的状态存储到存储器中(步骤S208)。在图9的示例中,因为对图象的左上角的象素组,判断在3个象素中形成象点,所以对该象素组,存储象点的个数是“3”。
这样,对一个象素组的处理结束后,判断对所有的象素是否结束了处理(步骤S210),如果还有未处理的象素,就返回步骤S200,生成新的象素组后,继续进行这一系列的处理,存储该象素组形成的象点的个数。这样,对图象中的所有的象素的处理结束后(步骤S210:yes),检出各象素 组内存储的象点的个数,向打印机200输出(步骤S212),结束图7所示的个数数据生成处理。
图10(a)是对图象数据实施上述个数数据生成处理后得到的数据的概念性的说明图。图中示出的多个矩阵,分别表示象素组,象素组内表示的数值,表示存储该象素组内形成的象点个数的情况。在本实施方式中,计算机100将颜色变换后的图象数据变换成图10(a)所示的那种数据后,只将各象素组存储的个数的数据向打印机200输出。这样,只输出个数的数据后,与输出表示各象素是否形成象点的数据相比,数据量减少,所以能够迅速输出。关于这一点,再予以补充说明。
图10(b)是表示对象素组内的各象素判断是否形成象点的情况的说明图。图10(b)中的细虚线,表示象素组由多个象素构成的情况,带斜线的象素,表示判断该象素形成象点。
现在,假设由计算机100向打印机200输出图10(b)所示的状态的数据,即输出表示各象素是否形成象点的数据。象点的种类,假设是1种,各象素只能成为形成或不形成象点中的某一种状态,所以每个象素的数据量,用1比特就足够。由于象素组用8个象素构成,所以应该向打印机200输出的数据量,每个象素组就成为8比特。
与此不同,象本实施方式这样,输出各象素组形成的象点的个数时,由于1个象素组内形成的象点的个数,只能成为0~8的值,所以每个象素组只要有4比特,就能够表现象点的个数。就是说,与输出表示每个象素是否形成象点的数据时相比,可以使数据量减少一半。因此,通过输出各象素组形成的象点的个数,就可以将数据迅速向打印机200输出。这样由计算机100传输的数据,在打印机200中,经过下文讲述的象素位置决定处理,变换成表示每个象素是否形成象点的数据。下面,讲述象素位置决定处理。
B-4、第1实施方式的象素位置决定处理:
图11是表示第1实施方式的在图象印刷处理中进行的象素位置决定处理的流程的流程图。该处理,打印机200的控制电路260内置的CPU,接受由计算机100传输来的表示各象素组的象点个数的数据后实施。另外,图12是概念性地示出表示各象素组的象点个数的数据经过象素位置决定处 理后变换成表示每个象素是否形成象点的数据的情况的说明图。下面,参照图11及图12,讲述象素位置决定处理的内容。
开始象素位置决定处理后,首先,选择1个作为处理对象的象素组(图11的步骤S300),取得该象素组形成的象点个数(步骤S302)。在图12(a)中,概念性地示出由计算机100给各象素组传输来的表示象点个数的数据。作为决定象素位置的象素组,在这里,选择图中左上角的象素组。在图11的步骤S302中,作为选择的象素组形成的象点个数,取得“3”。
下面,参照流程图,详细讲述个数数据生成处理的内容。在图象印刷处理中进行的
接着,参照象素组内各象素中形成有象点的序列,从而进行决定形成象点的象素处理(步骤S304)。在这里,将抖动矩阵,作为形成象点的序列改读后利用。正如使用图8讲述的那样,在抖动矩阵的各象素上设置着临界值。另外,在判断某象素是否形成象点之际,比较图象数据的灰度值和抖动矩阵的临界值,如果灰度值大,就断定该象素形成象点。就是说,由于抖动矩阵的临界值小的象素,容易形成象点,所以可以考虑用抖动矩阵表示形成象点的象素序列。在本实施方式中,着眼于抖动矩阵具有的这一性质,将抖动矩阵作为象素组内的各象素的序列加以利用。
再参照图12,进行详细讲述。在这里,作为对象的象素组,是图12(a)中的左上角的象素组,所以在抖动矩阵上,取得与该象素组的各象素对应的位置存储的临界值。图12(b)是从图8所示的抖动矩阵中读出对应的象素位置存储的临界值的情况的示意图。这样读出的临界值从最小的象素开始,依次形成象点。由于如图12(a)所示,处理中的象素组形成象点的个数是3个,所以可以如图12(c)所示,根据各象素中形成有象点的序列,决定象素位置。就是说,在图12(c)中,可以将用实线围住后表示的临界值最小的象素、用虚线围住的第2小的象素、用点划线围住的第3小的象素等3个象素,作为形成象点的象素决定。
通过以上操作,对作为处理对象选择的象素组决定了象素位置后,判断对所有的象素组的处理是否结束(图11的步骤S306),还有未处理的象素组时(步骤S306:no),返回步骤S300,选择新的象素组,继续进行这一系列的处理。反复进行这些处理后,图12(a)例示的各象素组表示象点 个数的数据,就一个个变换成图12(d)所示的表示各象素是否形成象点的数据,此外,在图12(d)中带斜线的象素,表示形成象点的象素。然后,对所有的象素组的处理结束后(步骤S306:),就结束图11所示的象素位置决定处理,返回图5的图象印刷处理。
以上,详细讲述了第1实施方式的图象印刷处理及在该处理中进行的个数数据生成处理、象素位置决定处理。这样,在第1实施方式的图象印刷处理中,将经过图象处理的数据,由计算机100向打印机200传输之际,取代表示各象素是否形成象点的数据,传输表示象素组形成的象点个数。这样,因为能够大幅度减少数据的传输量,所以即使图象包含的象素数增加了,也能迅速完成数据的传输,迅速印刷图象。
另外,如上所述,如果将计算机100一侧的个数数据生成处理中参照的抖动矩阵,作为和打印机200一侧的象素位置决定处理中参照的抖动矩阵相同的矩阵,那么由计算机100向打印机200只压缩传输象点个数的信息时,也能完全使象素位置复原。实际上,比较图10(b)和图12(d),就可以知道:在计算机100一侧判断各象素后得到的象素位置,和在打印机200一侧决定的象素位置一致,表示象素位置完全复原。这样,一边由计算机100迅速传输象点个数的数据,一边在打印机200一侧适当决定形成象点的象素位置,从而迅速印刷高质量的图象。
B-5、变形例:
在上述第1实施方式中,存在各种变形。下面,简单讲述这些变形。
(1)第1变形例:
正如使用图7~图10讲述的那样,在第1实施方式的个数数据生成处理中,先将图象数据变换成表示各象素是否形成象点的数据后,再将得到的数据,变换成表示各象素组的象点个数的数据后向打印机200传输。就是说,尽管在计算机100内,以特定象素位置的状态,判断是否形成象点,但在向打印机200传输的阶段,却省略掉有关象素位置的信息,只传输各象素组形成象点个数的信息。针对这一点,在第1变形例的个数数据生成处理中,在不特定象素位置,只生成象素组内形成的象点个数。
图13是表示第1变形例中进行的个数数据生成处理的概要的说明图。图13(a)是例示第1变形例的个数数据生成处理中参照的简易抖动矩阵的 说明图。在第1实施方式中参照的这种通常使用的抖动矩阵,给每个象素设定临界值(参照图8)。与此不同,在第1变形例中参照的简易抖动矩阵,不给每个象素设定临界值,而是以归纳到一起的状态使各象素组存储,换言之,以将多个临界值归纳成1组后,与各象素组对应附加的状态存储。另外,各象素组存储的临界值的个数,与构成象素组的象素的数量是相同的数字。在图13(a)的示例中,概念性地示出在简易抖动矩阵的左上角的象素组中,被对应附加存储由{255、212、177、170、109、58、42、1}8个值构成的临界值的组的情况。同样,在其右邻的象素组中,存储着由{242、223、186、161、79、70、48、5}8个值构成的临界值的组。
在第1变形例中进行的个数数据生成处理中,通过将象素组的图象数据,与这种临界值的组进行比较,从而不是特定象素位置,而是决定象素组内应该形成的象点个数。在这里,为了便于讲述,设要处理的图象数据,和在第1实施方式的讲述中使用的图象数据相同(参照图6(b))。观察图象数据的左上角的象素组后,可知该象素组内所有的象素的灰度值都成为97。另一方面,在简易抖动矩阵上对应位置的象素组中,存储着8个临界值{255、212、177、170、109、58、42、1}在这8个临界值中,比象素组的灰度值97小的值,有{58、42、1}3个,所以判断该象素组形成3个象点。在图13(b)中。用虚线围住一部分临界值,是表示这些临界值小于象素组的灰度值。这样,如果预先按照各象素组存储临界值的组,与象素组的灰度值比较后,就可以不特定象素组内的象素位置地决定象点个数。对所有的象素组,进行以上的操作后,就能够如图13(c)所示,给各象素组决定象点个数。
另外,在第1变形例中参照的简易抖动矩阵,成为与在第1实施方式的讲述中使用的通常的抖动矩阵对应的矩阵。就是说,在图13的简易抖动矩阵中按各象素组存储的临界值的组,成为将图8的抖动矩阵的各象素存储的临界值,按象素组归纳成一组。这样,如果将简易抖动矩阵作为与通常的抖动矩阵对应的矩阵,那么使用简易抖动矩阵,不特定象素组内的象素位置地决定象点个数时,也可以得到和使用通常的抖动矩阵一面特定象素组内的象素位置一面决定象点个数完全相同的结果。实际上,对于相同的图象数据,使用通常的抖动矩阵得到的象点个数的数据(参照图10(a)), 和使用简易抖动矩阵得到的数据(参照图13(c))完全一致。
综上所述,在第1变形例中,只比较按象素存储的临界值的组,和图象数据的灰度值,就可以求出象素组应该形成的象点个数。就是说,因为不需要按照象素组内的象素逐一比较临界值和图象数据的灰度值,所以能够迅速得到表示各象素组的象点个数的数据。
另外,在第1变形例中,因为只要求出小于图象数据的灰度值的临界值的个数即可,所以如果在各自的组内将临界值按照大小的顺序排列存储,就可以进一步提高处理速度。现在,再参照图13的例示进行讲述。左上角的象素组,图象数据的灰度值是97,按照大小顺序存储着{255、212、177、170、109、58、42、1}临界值的组。此外,这些临界值,既可以从大的临界值开始存储,也可以反之,从小的临界值开始存储。因为可以取得0~255的值,所以灰度值97,可以说是比较小的值。因此,将该灰度值,从小的临界值开始,依次比较大小。就是说,首先,和最小的临界值“1”比较。当然,灰度值“97”大,所以再与相邻存储的一个较大的临界值“42”比较。这次也因为灰度值“97”大,所以再与相邻的临界值“58”比较。这样,将灰度值从小的一侧的临界值依次比较下去。然后,在和临界值“109”比较时,才判断灰度值“97”小。因为组内的临界值是按照大小顺序存储的,所以一旦判断灰度值小后,就可以知道以后的临界值都比灰度值大,没有必要再一一比较。因此,尽管各象素组存储着8个临界值,但对该象素组只比较4个临界值,就能够决定象点个数。
毫无疑问,图象数据的灰度值是比较大的值时,从较大一侧的临界值开始比较好。例如,在上述的说明中,假设临界值是“200”,从最大的临界值“255”开始,只要再和其相邻的临界值“212”,进而再和其相邻的临界值“177”等3个临界值比较,就能决定该象素组应该形成的象点个数。这样,如果按照大小顺序存储与象素组对应附加的临界值,就能迅速决定象素组内应该形成的象点个数。
(2)第2变形例:
在前文讲述的第1实施方式的象素位置决定处理中,接收按照象素组表示的象点个数的数据后,参照抖动矩阵,决定在各象素组内形成象点的象素位置(参照图12)。可是,因为根据象点个数决定形成象点的象素位置, 所以未必需要知道每个象素的临界值,只要知道象素组内的各象素的形成象点的象素的序列就行。鉴于这一点,在第2变形例的象素位置决定处理中,取代抖动矩阵,参照存储了象素的序列的矩阵(以下将这种矩阵称作“序列矩阵”)决定象素位置。
图14是表示在第2变形例的象素位置决定处理中,参照序列矩阵决定象素位置的情况的示意图。图14(a)是序列矩阵的示意图。图中用粗实线围住的矩形,表示象素组,各象素组如用细虚线所示,划分为8个象素。另外,各象素中显示的数字,表示象素组内形成象点的序列(换言之,是形成象点的顺序号)。
使用这种序列矩阵后,能够根据象点个数简便地决定象素位置。在这里,以象点个数的数据是图12(a)所示的数据为例,具体讲述。此外,该数据与前文讲述过的第1实施方式的象素位置决定处理中使用的数据相同。采用图12(a)所示的数据后,左上角的象素组形成的象点个数就成为“3”。因此,从图14(a)所示的序列矩阵的左上角的象素组中,选择序列为1号~3号的3个象素,决定象素位置。图14(b)是表示这样选择3个象素决定象素位置的情况的示意图,围住象素中的数字的实线,表示选择了该象素。对所有的象素组反复进行以上的操作后,可以如图14(c)所示,决定所有的形成象点的象素位置。此外,在图14(c)中带斜线的象素,表示形成象点。
图15是表示上述第2变形例的象素位置决定处理、即参照序列矩阵决定象素位置的处理的流程的流程图。下面,按照流程图简单讲述。使用序列矩阵决定象素位置时,也首先选择1个要决定象素位置的象素组(步骤S350)。
接着,取得选择的象素组的象点个数的数据(步骤S352)。在这里,仿照图14的讲述,选择左上角的象素组,作为象素组形成的象点个数,取得“3”。
接着,从象素组中选择1个作为判断对象的象素后(步骤S354),参照序列矩阵,从而取得判断对象的象素中形成象点的顺序号(步骤S356)。例如,在这里,因为选择的象素组在图象中是左上角的象素组,所以作为判断对象的象素如果是象素组中左上角的象素,那么参照图14(a)所示的序 列矩阵,就可以知道判断对象的象素在象素组中第1个形成象点。就是说,该象素的顺序号成为“1”号。另外,其右邻的象素,顺序号成为“6”号。在图15的步骤S356中,就这样参照序列矩阵,取得作为判断对象的象素的顺序号
接着,比较取得的象素的顺序号和象素组的象点个数(步骤S358)。然后,判断象点个数大于象素的顺序号时(步骤S358:yes),就断定在作为判断对象的象素中形成象点(步骤S360)。反之,判断象点个数小于象素的顺序号时(步骤S358:no),则断定在该象素中不形成象点(步骤S362)。
这样,对一个象素判断是否形成象点后,判断对选择的象素组内的所有的象素是否结束了处理(步骤S364)。然后,象素组内还有未处理的象素时(步骤S364:no),就返回步骤S354,选择新的象素后,进行上述一系列的处理。反复进行这样的处理,判断象素组内的所有的象素是否形成象点后(步骤S364:yes),就决定了该象素组形成象点的象素位置。于是,再判断对所有的象素组是否决定了形成象点的象素位置(步骤S366)。然后,还有未处理的象素组时(步骤S364:no),就返回步骤S350,选择新的象素组,进行上述一系列的处理。反复进行这样的处理,判断对象素组的处理结束后(步骤S366:yes),就结束图15所示的第2变形例的象素位置决定处理。
这样,根据象素组内各象素中形成有象点的序列,决定象素位置后,比较象素的顺序号和象点个数,只要选择象素的顺序号小于象点个数的象素,就能决定形成象点的象素位置。就是说,不需要一面计算选择的象素的个数,一面选择象点个数表示的数的象素,所以能够简便地决定象素位置。
另外,序列矩阵存储的数值(即象素的顺序号)顶多只能获得1个象素组包含的象素的数量,是比抖动矩阵存储的临界值小的数值。因此,序列矩阵能够以比抖动矩阵小得多的容量存储。由于进行象素位置决定处理的打印机,往往没有搭载足够大的存储容量,所以如果使用序列矩阵决定象素位置,还可以得到能够节约打印机的存储容量的优点。
此外,图14(a)所示的序列矩阵,成为与在个数数据生成处理中为了判断各象素是否形成象点而参照的抖动矩阵对应的矩阵。就是说,在对第1 实施方式的象素位置决定处理的讲述中说过,在抖动矩阵中设定的临界值,可以认为表示象点形成的序列。而在图14(a)的序列矩阵中设定的序列,对于象素组内的各象素来说,成为与取决于抖动矩阵的序列相同的序列。这样,如果将序列矩阵,作为与在个数数据生成处理中参照的抖动矩阵对应的矩阵,那么即使使用序列矩阵时,也能适当决定象素位置。实际上,比较图14(c)和图10(b)后可知:参照序列矩阵决定的象素位置,和判断各象素是否形成象点后求出的象素位置一致,象素位置被适当地决定。
关于这一点,有若干补充。在前文讲述的个数数据生成处理中,只要知道象素组内形成的象点个数即可,象素位置的信息、即有关各象点在象素组内的哪个象素中形成的信息,是不需要的信息。与此对应,在个数数据生成处理中,可以取代抖动矩阵,使用简易抖动矩阵求出象点个数。换言之,如果使用抖动矩阵,不仅能决定象素组内形成的象点个数,而且连形成各象点的象素位置也能决定,但是由于在个数数据生成处理中,象素位置的信息是不需要的信息,所以可以使用从抖动矩阵中省略决定象素位置的信息后的简略化的简易抖动矩阵。
另一方面,在象素位置决定处理中,将提供象素组形成的象点个数的信息作为前提,只要能够决定应该形成这些象点的象素位置即可。与此对应,在象素位置决定处理中,可以取代抖动矩阵,使用序列矩阵决定象素位置。换言之,可以使用从抖动矩阵中省略决定象素组内形成的象点个数的信息后的简略化的序列矩阵。
而且,这些简易抖动矩阵及序列矩阵,虽然各自包含的信息少于抖动矩阵,但将它们合在一起后,却成为能够获得和抖动矩阵同等信息的矩阵。所以,无论哪种特性的抖动矩阵,都能生成对应的简易抖动矩阵及序列矩阵,使用简易抖动矩阵生成个数数据后,再使用序列矩阵决定象素位置,从而成为和使用原来的抖动矩阵时完全相同的特性,可以产生象点。
C、第2实施方式:
在以上讲述的第1实施方式中,对将1个象素分割成多个象素,并将同一个象素分割成的那些象素作为象素组归纳的情况进行了讲述。将1个象素分割成多个象素,例如,在要用比输入的图象数据高的析象度印刷图象等时容易发生。在这种第1实施方式中,作为象素组归纳的各象素,具 有相同的灰度值。可是,本发明还能适用于象素组内的各象素,具有不同的灰度值时。例如,将印刷析象度设定成和输入的图象数据相同的析象度,在1个象素组中,包含图象数据的多个象素时,容易产生象素组内的各象素灰度值不同的情况。另外,为了用比输入的图象数据高的析象度印刷图象而生成新的象素时,通过插补运算决定新生成的象素的灰度值时,象素组内的各象素,灰度值成为不同的值。进而,印刷析象度只比图象数据的析象度略高一点时,即使分割1个象素,生成多个新的象素,也可以认为在1个象素组内包含由不同的象素生成的象素。这时,象素组内的各象素也不局限于具有相同的灰度值。下面,作为第2实施方式,对在这种情况下应用本发明的实施方式进行讲述。
C-1、第2实施方式的个数数据生成处理:
图16是表示第2实施方式的个数数据生成处理的流程的流程图。该处理也和前文讲过的第1实施方式的个数数据生成处理一样,是在图5所示图象印刷处理中由计算机100的CPU实施的处理。
在第2实施方式的个数数据生成处理中,也首先归纳所定的多个象素,生成象素组(步骤S400)。在这里,仿照第1实施方式,归纳纵2列、横4列的8个象素,生成象素组。毫无疑问,作为象素组的归纳方法,并不局限于这种归纳方法。可以采用各种方法归纳。
接着,判断象素组内是否包含边缘(步骤S402)。在本实施方式中,在象素组包含的多个象素中,最大的灰度值和最小的灰度值的灰度差为所定值以上时,就断定是该象素组内包含边缘。毫无疑问,边缘的检出方法,不限于这种方法,可以采用各种方法。
然后,断定象素组不包含边缘(步骤S402:no)时,计算出象素组的平均灰度值,用平均灰度值置换各象素的灰度值(步骤S404)。其结果,象素组内的各象素成为相同的灰度值,所以可以使用和前文讲过的第1实施方式同样的方法,决定象素组内形成的象点个数。
图17是表示判断象素组内有无边缘、断定没有边缘时,用平均灰度值置换象素组内各象素的灰度值的情况的说明图。在图17(a)中,示出象素组内各象素的灰度值。在图中左上角的象素组,最大灰度值和最小灰度值分别是灰度值100和灰度值97,其灰度差是3,成为比较小的值。与此不 同,位于该象素组的右下方的象素组,最大灰度值是32,最小灰度值是99,灰度差高达33。于是,设定适当的临界值(例如灰度值20),象素组内的灰度差大于临界值时,就断定包含边缘。反之,象素组内的灰度差小于临界值时,则断定不包含边缘,计算出象素组内的平均灰度值,用平均灰度值置换所有的象素的灰度值。
图17(b)是表示这样判断象素组不包含边缘时,用平均灰度值置换象素组内各象素的灰度值的情况。在图示的例子中,左上角的象素组及其右邻或下方的象素组,灰度差都很小,所以象素组内所有的象素,被分别用平均灰度值99、103、94置换。这种象素的灰度值被用平均灰度值置换的象素组,因为象素组内的各象素成为完全相同的灰度值,所以可以和前文讲过的第1实施方式一样,决定象素组内应该形成的象点个数(图16的步骤S406)。
与此不同,右下方的象素组,灰度差高达33,被认为包含边缘,所以不进行这种灰度值置换。对于这种象素组,一边比较象素的灰度值和抖动矩阵的临界值,以便判断各象素是否形成象点(参照图9),存储对各象素的判断结果(图16的步骤S408)。
这样,对一个象素组的处理结束后,判断图象数据中的所有的象素的处理是否结束(步骤S410)。还有未处理的象素时(步骤S410:no),就返回步骤S400,生成新的象素组,继续反复进行一系列的处理。这样,将所有的象素,作为象素组归纳,结束上述处理后步骤S410:yes),对不包含边缘的象素组将步骤S406存储的象点个数,对包含边缘的象素组则将步骤S408存储的各象素是否形成象点向打印机200输出(步骤S412)。其结果,象素组的象点个数的数据,和表示象素组内各象素是否形成象点的数据,就以混在一起的状态向打印机200输出。在第2实施方式的个数数据生成处理中,为了一边区别象点个数的数据和表示各象素是否形成象点的数据一边输出,所以用下述形态输出这些数据。
图18是表示第2实施方式中,由计算机100向打印机200输出的数据的形成的说明图。输出象素组形成的象点个数时,如图18(a)所示,平均每个象素组输出4比特的数据。在这里,由于1个象素组采用8个象素构成,所以象点个数只能取0~8的值,有4比特就能表现象点个数。另一方 面,不是输出象点个数,而是输出各象素是否形成象点时,就用图18(b)所示的形成输出数据。就是说,在起初的4比特中,设定9~15中的某一个值(在图18(b)的例示中,设定为“9”),在随后的8比特的数据中,设定各象素是否形成象点。因为象点个数只能取0~8的值,所以前头的4比特的数据成为9以上的值时,随后的8比特的数据就可以解释为不是表示象点个数,而是表示各象素是否形成象点。然后,如果将各比特例如按照图18(c)所示的那种顺序号与各象素一一对应,就能输出表示象素组内是否形成象点的数据。用这种图18所示的形式输出数据时,对于不包含边缘的象素组,作为4比特的数据向打印机200传输;对于包含边缘的象素组,则作为12比特的数据传输。
毫无疑问,将象点个数的数据和表示各象素是否形成象点的数据混在一起后输出方法,并不局限于这种方法,例如,还可以附加识别用的比特。例如,就象图19中的符号(a)所示,识别用的比特为“0”时,断定随后的4比特的数据是表示象点个数的数据。另外,就象图19中的符号(b)所示,识别用的比特为“1”时,可以断定随后的8比特的数据是表示各象素是否形成象点的数据。这样输出数据时,对于不包含边缘的象素组,就作为5比特的数据向打印机200传输;对于包含边缘的象素组,则作为9比特的数据传输。
比较图18的传输方法和图19的传输方法的数据传输量,可知:对于不包含边缘的象素组,采用图18的方法,数据传输量比采用图19的方法减少。可是,对于包含边缘的象素组,却反而是采用图19的方法能够减少数据传输量。因此,象素组中包含边缘的比例大时,可以采用使用识别用比特的图19的方法传输数据;反之,包含边缘的比例小时,则可以采用图18的方法传输数据。通常,象素组中包含边缘的比例不那么大,所以采用图18的方法可以迅速传输数据。
在图16的步骤S412中,如上所述,象素组的象点个数的数据,和表示各象素是否形成象点的数据,以混在一起的状态向打印机200输出。这样,输出所有的象素组的数据后,就结束图16所示的第2实施方式的个数数据生成处理,返回图象印刷处理。
C-2、第2实施方式的象素位置决定处理:
如前所述,在第2实施方式中,象点个数的数据和表示每个象素是否形成象点的数据,同时由计算机100发送过来,所以在打印机200中,就按照下述方式决定形成象点的象素位置。此外,在以下的讲述中,采用图18所示的方法传输数据。
图20是表示在第2实施方式中决定形成象点的象素位置的处理流程的流程图。开始处理后,首先读入前4比特的数据(步骤S500)。然后,判断读入的数据是不是9以上(步骤S502)。如前所述,在这里,象素组包含的象素数是8个,象点个数只能取0~8的值。因此,如果读入的数据是9以上的值,就可以认为该数据不表示象点个数,而是表示后面的数据是表示各象素是否形成象点的数据。反之,如果读入的数据是0~8的值,就可以认为该数据是表示象素组形成的象点个数的数据。
因此,判断读入的数据是不是9以上,不是9以上时(步骤S502:no),将读入的数据理解为象点个数的数据,和上述第1实施方式一样,决定象素组内形成象点的象素位置(步骤S504)。
另一方面,读入的数据是9以上时(步骤S502:yes),读入随后的8比特的数据,将该数据理解为表示各象素是否形成象点的数据,从而决定形成象点的象素位置(步骤S506)。
这样,对一个象素组决定形成象点的象素位置后,判断所有的象素组的处理是否结束(步骤S508)。还有未处理的象素组时,就返回步骤S500,继续进行一系列的处理。这样,反复进行上述处理,直到对所有的象素组决定象素位置为止,对所有的象素组的处理结束后,就结束图20所示的第2实施方式的象素位置决定处理,返回图象印刷处理。
采用进行图16~图19所示的个数数据生成处理及图20所示的象素位置决定处理的第2实施方式的图象印刷处理后,在象素组内各象素的灰度值不是相同值时,也能对不包含边缘的象素组传输表示象点个数的数据,所以能够迅速地向打印机200传输数据,迅速印刷图象。
另外,在第2实施方式的图象印刷处理中,因为对包含边缘的象素组传输表示各象素是否形成象点的数据,所以包含边缘的象素组的比例越大,向打印机200传输数据所需的时间就越长。因此,提高检出有无边缘的判定基准后,就不容易检出边缘,从而使向打印机200传输数据所需的时间 变短,进而可以迅速印刷图象。然而,另一方面,对于没有检出边缘的象素组,由于象素组内的各象素的灰度值被平均灰度值置换,所以为了缩短数据传输时间而将边缘判定基准提得过于高后(不容易检出边缘后),就有可能使印刷图象质量下降。
可是,印刷图象质量要求高的图象,通常将印刷析象度设定成高于输入的图象数据的析象度。因为变换成高析象度,所以在析象度变换处理中(图5的步骤S104)分割象素、生成新的象素时,或者进行插补运算生成新的象素时,在大多数象素组中,灰度值都是稍微变化。因此,对于印刷图象质量要求高的图象,在大多数情况下,不提高边缘判定基准也能在大部分的象素组中检测不到边缘,可以在维持高图象质量的前题下迅速传输数据。
另一方面,印刷析象度和输入的图象数据的析象度是相同程度的低析象度时,象素组中检出边缘的比例就增大。所以,为了缩短向打印机200传输数据所需的时间,就需要提高判定基准,使边缘不容易检测到。可是,在这种将印刷析象度设定成比较低的值时,往往重视图象质量,而不要求迅速的印刷,所以即使提高边缘的判定基准,也不会出现图象质量下降的问题。
D、第3实施方式:
以上讲述各种实施方式,对一个个象素只能表现与形成象点的状态或不形成象点的状态对应的2个灰度值的情况进行了讲述。可是,在打印机中,有的打印机,可以通过改变形成的象点的大小,或改变为了形成象点而使用的墨水的浓度,从而使一个个象素能够单独表现更多的灰度值。本发明对这种所谓多值打印机也能够有效地适用。下面,讲述将本发明用于多值打印机的第3实施方式。
D-1、第3实施方式的图象印刷处理的概要:
图21是表示第3实施方式的图象印刷处理的流程的流程图。第3实施方式的图象印刷处理,与使用图5讲述的第1实施方式的图象印刷处理的最大的不同之处是:将颜色变换处理后的数据,变换成大中小象点的数据。下面,以此差异为中心,讲述第3实施方式的图象印刷处理。此外,在这里。对打印机200是可以改变象点大小的多值打印机的情况进行讲述。但 毫无疑问,以下的讲述,对于不改变象点大小,而改变墨水的浓度的打印机,以及可以同时改变象点大小和墨水的浓度的打印机,也能够同样适用。
在第3实施方式的图象印刷处理中,也和第1实施方式的图象印刷处理一样,首先,读入应该变换的图象数据(步骤S600),对读入的图象数据进行颜色变换处理(步骤S602)。经过颜色变换处理后,图象数据变换成由C、M、Y、K各种颜色的灰度值表现的灰度值数据。
在这里,在前文讲述的第1实施方式的打印机200中,不能改变象点的大小,只能成为按照各种颜色形成象点或不形成象点中的某一个状态。因此,根据颜色变换处理后的数据,立即判断各象素是否形成象点。与此不同,在第3实施方式的打印机200中,可以改变象点的大小,形成大象点、中象点、小象点等三种象点。因此,将颜色变换处理后获得的灰度数据,先按照各种颜色变换成大象点用的数据、中象点用的数据和小象点用的数据(步骤S604)。
由灰度数据向大象点、中象点、小象点的各个象点数据的变换,参照图22所示的变换表进行。如图所示,在变换表中,与灰度数据对应,存储着大象点数据、中象点数据和小象点数据,参照该变换表,变换颜色变换后的灰度数据。
接着,对大象点数据、中象点数据和小象点数据的每一个数据进行析象度变换处理(步骤S606)。析象度变换可以采用各种方法,但为了使讲述简便,在这里,和第1实施方式一样,采用分割象素变换析象度的方法。在分割后形成的新的象素中,设定和原来的象素的灰度值相同的灰度值。
这样,将析象度变换成印刷析象度后,进行个数数据生成处理(步骤S608)。在第3实施方式中,打印机200可以形成大象点、中象点、小象点等三种象点。与此对应,在个数数据生成处理中,生成这些各种象点的象点个数的数据,将得到的象点个数数据向打印机200输出。
图23是表示在第3实施方式的个数数据生成处理中,由象点数据生成象点个数数据的情况的说明图。图23(a)是给作为象素组归纳的各象素,设定大中小的各种象点的象点数据的情况的示意图。图中示出的实线矩阵,分别表示象素组。象素组由多个象素构成,对各象素设定象点数据,但为使图示简化,在图23中,省略了一个个象素的显示,取而代之的是作为给 象素组设定象点数据的显示。例如,图23(a)的左上角的象素组,显示Data(L、M、S)=(2,90,32),表示给该象素组的各象素设定大象点的象点数据“2”、中象点的象点数据“90”、小象点的象点数据“32”。毫无疑问,正如在第1实施方式中也讲述的那样,构成象素组的所有象素具有相同的灰度值时,也可以不进行析象度变换处理,在个数数据生成处理中,实质地进行析象度变换。
在第3实施方式的个数数据生成处理中,对这些各种象点的象点数据,通过后文讲述的处理,生成图23(b)所示的象点个数数据。在图23(b)中,也和图23(a)一样,实线的矩阵形表示象素组。
象素组由多个象素构成,但省略了一个个象素的显示,显示给象素组生成象点个数的数据。例如,图23(b)的左上角的象素组中,显示Dot(L、M、S)=(1,2,1),表示对构成该象素组的各象素,作为大象点、中象点、小象点的象点个数,分别生成“1”、“2”、“1”。关于第3实施方式的个数数据生成处理的内容,后文再述。
打印机200接受计算机100输出的象点个数的数据后,进行象素位置决定处理(步骤S610)。在第3实施方式中,因为形成大象点、中象点、小象点等3种象点,所以在象素位置决定处理中,决定形成这些各种象点的象素位置。关于第3实施方式的象素位置决定处理的内容,后文再述。
这样决定象素位置后,打印机200一边使托架240反复进行主扫描和副扫描,一边驱动喷墨头,从而在印刷用纸上形成大中小的各象点(步骤S612)。其结果,就印刷出与图象数据对应的图象。
D-2、第3实施方式的个数数据生成处理:
下面,讲述第3实施方式的个数数据生成处理的内容。图24是表示第3实施方式的个数数据生成处理的流程的流程图。该处理也由计算机100内置的CPU实施
开始第3实施方式的个数数据生成处理后,CPU首先从图象数据中归纳所定的多个象素,生成象素组(步骤S700)。在个数数据生成处理之前进行的析象度变换处理(图21的步骤S606)中,和第1实施方式一样,分割象素后生成新的象素,所以在这里也将分割同一象素后得到的多个象素作为象素组归纳。
接着,对象素组内的各象素,读入大象点、中象点、小象点的象点数据(步骤S702)。此外,在这里,构成象素组的象素,都由相同的象素分割后具有相同的灰度值,所以也可以不必对每个象素一一读入象点数据,而对每个象素组读入一个象素的值即可。
这样,读入各种象点的象点数据后,参照抖动矩阵,判断是否形成大象点、中象点、小象点(步骤S704)。图25是表示参照抖动矩阵,判断着眼象素应该形成大象点、中象点、小象点中的哪一个象点的方法的说明图。此外,在图25中,作为象点数据,使用图23(a)所示的数据,作为抖动矩阵,使用图8所示的矩阵。
图25表示对图象左上角的象素组,判断是否形成各种象点的情况。图中,粗实线的矩形表示象素组,象素组被用细虚线划分,表示象素组由多个象素构成。另外,象素中示出的数值,表示在抖动矩阵的对应位置上设定的临界值的值。
开始判断是否形成象点后,首先,比较大象点的象点数据和抖动矩阵设定的临界值,对象点数据大的象素,判断形成大象点。图25的符号(a),表示这样对象素组内的各象素,判断是否形成大象点的情况。具体地说,因为大象点的象点数据是“2”,所以只有最左上角的灰度值是“1”的象素,象点数据的值大,其余的象素都是抖动矩阵的临界值的值大。因此,在该象素组中,只形成1个大象点。在图25的符号(a)中,给抖动矩阵的临界值是“1”的象素附加细斜线,表示判断该象素形成大象点。
判断了是否形成大象点后,接着判断是否形成中象点。在对中象点进行判断之际,将大象点的象点数据与中象点的象点数据相加,计算出中象点用的中间数据。比较该中间数据和抖动矩阵设定的临界值。然后,将中间数据大于临界值的象素,断定为形成中象点的象素。这时,对已经断定形成大象点的象素,不进行是否形成中象点的判断。如果使用图25的符号(b)具体讲述的话,因为大象点的象点数据是“2”,中象点的象点数据是“90”,所以计算出中象点用的中间数据是“92”。但是,因为象素组中最左上角的象素,已经断定形成大象点,所以不进行这一比较。然后,对于抖动矩阵的临界值是“42”的象素和“58”的象素来说,由于中间数据大,所以断定形成中象点。在图25的符号(b)中,给这些象素附加斜线,表 示判断该象素形成中象点。
判断了是否形成中象点后,最后判断是否形成小象点。在对小象点进行判断之际,将中象点用的中间数据与小象点的象点数据相加,计算出小象点用的中间数据。对还没有断定形成象点的象素,比较该中间数据和抖动矩阵设定的临界值。然后,将中间数据大的象素,断定为形成小象点的象素。如果使用图25的符号(c)具体讲述的话,因为中象点用的中间数据是“92”,中象点的象点数据是“90”,所以加上小象点的象点数据是“32”,计算出小象点用的中间数据是“124”。比较该中间数据和抖动矩阵设定的临界值。然后,对于抖动矩阵的临界值是“109”的象素来说,由于中间数据大,所以断定该象素形成小象点。在图25的符号(c)中,给这些象素附加粗斜线,表示判断该象素形成中象点。在图24的步骤S704中,就这样对象素组内的各象素判断是否形成大象点、中象点、小象点。
判断是否形成各种象点后,存储该象素组应该形成的各种象点的个数(步骤S706)。在图25的示例中,作为大象点、中象点、小象点的个数,分别存储1个、2个、1个。
这样,将多个象素归纳为象素组,存储该象素组内应该形成的各种象点的个数后,判断图象数据包含的所有的象素的处理是否结束(步骤S708),还有未处理的象素时(步骤S708:no),就返回步骤S700,生成新的象素组后,继续进行一系列的处理。这样,对所有的象素组的处理结束后(步骤S708:yes),就将每个象素组存储该的各种象点的个数向打印机200输出(步骤S710)。
在这里,为了进一步减少向打印机200输出的数据量,对各种象点的个数数据,以下述编码化状态输出。
图26是为了将各种象点的个数数据编码化而参照的变换表的示意图。在变换表中,按照大象点、中象点、小象点的各种象点个数的组合,一个一个地设定编码号。例如,大象点、中象点、小象点的任何一种的个数都是0的组合,设定编码号为“0”。另外,大象点和中象点的个数是0个,小象点的个数是“1”个的组合,设定编码号为“1”。
这样,将各种象点的个数变换成编码号后,向打印机200输出,就可以减少数据量。关于其理由,下面讲述几个。在这里,因为将象素组作为 由8个象素构成的,所以可以取得各种象点的最大个数是8个。这样,象点个数的数据,对每种象点的种类来说,有4比特就足够。由于象点的种类是3种,所以每个象素组必要的数据量就成为12比特。
与此不同,如图26所示,由于编码号只能取得0~164的值,所以编码化后,每个象素组只要有8比特就足够。就是说,仅仅这样就可以使数据量减少三分之一。
进而,在各种象点个数的组合中,还包含许多在实际印刷中不出现的组合,对这些组合当然不需要设定编码号。这样,如果只给必要的组合设定编码号,哪么每个象素组必要的数据量就会比8比特还少,所以可以使数据量进一步减少。
在图24的步骤S710中,基于上述理由,将各种象点的个数的数据编码化后向打印机200输出。这样,按照象素组以编码化的状态将各种象点的个数向打印机200输出后,就结束第3实施方式的个数数据生成处理,返回图21的图象印刷处理。
此外,在以上讲述的第3实施方式的个数数据生成处理中,一边特点象素一边判断是否形成各种象点。但向打印机200供给的信息,其只是象点个数的信息,没有供给象素位置的信息。因此,可以和前文讲述的第1实施方式的第1变形例一样(参照图13),不特定象素位置地求出象点个数。图27是这种不特定象素位置地求出各种象点的象点个数的情况的示意图。
图27是表示以在图25的讲述中使用的象素组为例,不特定象素位置地求出各种象点的象点个数的方法的说明图。对多种象点计算象点个数时,也和计算单一的象点的象点个数一样,使用简易抖动矩阵。如前所述,所谓简易抖动矩阵,是在抖动矩阵中与象素组内的各象素对应的临界值,被作为不与各象素对应地按象素组归纳的临界值的组存储的矩阵。
例如,在图25所示的象素组中,与象素组内的各象素对应,设定抖动矩阵的临界值。与此不同,在使用简易抖动矩阵的图27中,在象素组上设定着这些临界值的组{255、212、177、170、109、58、42、1}。下面,按照图27,对不特定象素位置地求出各种象点的象点个数的方法进行讲述。
象点个数,按照先求出大象点的象点个数,再求出中象点的象点个数,最后求出小象点的象点个数的顺序进行计算。图27的符号(a)表示求出 大象点的象点个数的情况,图27的符号(b)表示求出中象点的象点个数的情况,图27的符号(c)表示求出小象点的象点个数的情况,为了求出大象点的象点个数,比较大象点的象点数据和给象素组设定的临界值的组。然后,判断只有小于象点数据的临界值的个数形成大象点。在图27的符号(a)所示的例子中,因为大象点的象点数据是“2”,所以小于象点数据的临界值只有1个,这样,可以求出大象点的象点个数是1个。在图27的符号(a)中,给临界值“1”加上细斜线,就是表示断定该临界值形成大象点。
求出大象点的象点个数后,再将大象点的象点数据和中象点的象点数据相加,求出中象点用的中间数据。然后,比较该中间数据和临界值的组,判断只有小于中间数据的临界值的个数形成中象点。但是,不和已经判断形成大象点的临界值比较。在图27的符号(b)所示的例子中,因为大象点的象点数据是“2”,中象点的象点数据是“90”,所以求出中象点用的象点数据是“92”。除了已经判断形成大象点的临界值“1”之外,小于该中间数据“92”的临界值有2个。这样,可以求出该象素组形成的中象点的个数是2个。在图27的符号(b)中,给临界值“42”和临界值“58”加上斜线,就是表示断定这些临界值形成中象点。
求出中象点的象点个数后,再将中象点用的中间数据和小象点的象点数据相加,求出小象点用的中间数据。然后,比较该中间数据和临界值的组,从而求出小象点的象点个数。在图27的符号(c)所示的例子中,因为中象点用的中间数据是“92”,小象点的象点数据是“32”,所以求出小象点用的象点数据是“124”。在没有形成任何象点的临界值中,小于该中间数据的临界值只有1个,所以可以判断该象素组形成的小象点的个数是1个。在图27的符号(c)中,给临界值“109”加上斜线,就是表示断定该临界值形成小象点。
这样,如果一面参照简易抖动矩阵,一面计算各种象点的象点个数,就能够不特定象素位置地计算象点个数。这样,只要将象点数据或中间数据与临界值的组比较就能计算象点个数,而不需要与各元素设定的临界值比较,所以可以迅速计算各种象点的象点个数的数据。
D-3、第3实施方式的象素位置决定处理:
如前所述,在第3实施方式的象素位置决定处理中,按各象素组求出各种象点的象点个数后,将表示象点个数的数据向打印机200传输。
在打印机200中,接收传输来的数据,决定形成各种象点的象素位置后,按照决定,在印刷用纸上形成各种象点,从而印刷图象。下面,讲述根据表示象点个数的数据决定形成各种象点的象素位置的处理。
图28是表示第3实施方式的象素位置决定处理的流程的流程图。该处理由打印机200的控制电路260内置的CPU实施。
开始第3实施方式的象素位置决定处理后,首先,选择要决定象素位置的象素组(步骤S800),接着,从传输来的数据中取得选择的象素组的数据(步骤S802)。在这里,如用图26讲述的那样,将象点个数的数据以编码化的状态传输。因此,将编码化的数据译码成表示各种象点的象点个数的数据(步骤S804)。
数据的译码化,从编码号的一侧起,参照图26所示的变换表进行。例如,如果编码化的数据是“126”,那么就可以由变换表中与编码号“162”对应的象点个数,译码成大象点7个、中象点0个、小象点1个的象点个数的数据。
这样得到各种象点的象点个数后,通过参照抖动矩阵,从而决定形成各种象点的象素位置(步骤S806)。关于该处理,参照图29加以讲述。
图29是表示对某个象素组,给予各种象点的象点个数时,一边参照抖动矩阵,一边决定形成这些象点的象素位置的情况的说明图。图中示出的粗实线的矩线,表示象素组。划分象素组的细虚线,表示象素组由多个象素构成。另外,象素中示出的数值,表示在与抖动矩阵对应位置上设定的临界值。
此外,抖动矩阵使用和为了计算象点个数而使用的矩阵一样的矩阵。
现在,假设该象素组形成的各种象点的个数是大象点1个、中象点2个、小象点1个后,首先决定形成大象点的象素位置。如前所述,抖动矩阵的临界值,可以认为表示象点形成的难易,所以如果只形成1个大象点,那就在设定的临界值最小的象素上形成。决定了大象点的象素位置后,接着决定形成中象点的象素位置。中象点形成2个,而且临界值最小的象素已经形成大象点,所以就判断在临界值第2小的象素和第3小的象素的2 个象素中形成中象点。继中象点之后,决定小象点的象素位置。小象点只形成1个,而且从临界值最小的象素到第3小的象素已经形成大象点或中象点,所以就判断临界值第4小的象素形成小象点。
图29表示这样按照大象点、中象点、小象点的顺序,决定形成象点的象素的情况。在图中,带细斜线的象素,表示判断形成大象点的象素;带中等斜线的象素,表示判断形成中象点的象素;带粗斜线的象素,表示判断形成小象点的象素。在图28的步骤S806中,就这样一边参照抖动矩阵,一边决定形成各种象点的象素位置。
这样,对一个象素组决定形成各种象点的象素位置后,判断对计算机100供给的所有的象素组的数据是否结束决定象素位置的处理(步骤S808)。还有未处理的象素组时(步骤S808:no),就返回步骤S800,对新的象素组继续反复进行一系列的处理。这样,判断对所有的象素组决定了象素位置后(步骤S808:yes),就结束图28所示的象素位置决定处理,返回图象印刷处理。在印刷纸上形成各种象点。其结果,就印刷出与图象数据对应的图象。
打印机200是所谓多值打印机时,通过上述第3实施方式的图象印刷处理,可以一边由计算机100向打印机200传输各种象点的象点个数,一边印刷图象。这样,可以比供给表示各象素是否形成象点的数据更迅速地供给,所以即使是象素数甚多的图象,也能迅速印刷图象。
D-4、变形例:
在上述第3实施方式的象素位置决定处理中,也存在各种变形例。下面,讲述这些变形例。
(1)第1变形例:
在上述第3实施方式的象素位置决定处理中,讲述了将编码化的数据译码化之际,译码成各种象点的象点个数的数据的情况。可是,如上所述,因为按照大象点、中象点,小象点的顺序,决定象素位置,所以也可以不是译码成各种象点的象点个数,而是译码成大象点的个数、大象点和中象点的合计个数、大象点、中象点和小象点的合计个数。例如,在图29的例示中,取代译码为{大象点:1个、中象点:2个、小象点:1个},而译码为{大象点:1个、大象点+中象点:3个、大象点+中象点+小象点:4 个}。
图30是表示为了进行这种译码而参照的译码化表的示意图。按照这种形态译码后,可以迅速决定形成象点的象素位置。下面,讲述这种第1变形例的象素位置决定处理。
图31是表示第3实施方式中的第1变形例的象素位置决定处理的流程的流程图。下面,按照流程图进行讲述。开始第1变形例的象素位置决定处理后,首先选择要决定象素位置的象素组,取得该象素组的个数数据(步骤S830)。该个数数据,在前文讲述的个数数据生成处理中以编码化的状态供给。
接着,参照图30所示的译码化表,将编码化的个数数据变换成大象点的个数、大象点及中象点的个数的合计值、大象点和中象点及小象点的个数的合计值。然后,将得到的大象点的个数作为大象点的临界值THL,大象点及中象点的个数的合计值作为中象点的临界值THm,大象点和中象点及小象点的个数的合计值作为小象点的临界值THs(步骤S832)。
取得各种象点的临界值后,从象素组中选择1个象素(步骤S834),接着,参照序列矩阵,取得选择的象素的顺序号N(步骤S836)。然后,判断象素的顺序号N和各种象点的临界值THL、THm、THs的大小关系(步骤S838)。其结果,如果象素的顺序号N小于大象点的临界值THL,就判断该象素形成大象点(步骤S840)。象素的顺序号N虽然大于大象点的临界值THL但是小于中象点的临界值THm时,就判断该象素形成中象点(步骤S842)。象素的顺序号N虽然大于中象点的临界值THm但是小于小象点的临界值THs时,就判断该象素形成小象点(步骤S844)。另外,象素的顺序号N大于小象点的临界值THs时,就判断该象素不形成象点(步骤S846)。
假如列举具体例子进行讲述的话,现在设大象点的临界值THL是2,中象点的临界值THm是3,小象点的临界值THs是5。在该象素组中,由于大象点只形成2个,所以大象点在最容易形成象点的象素(即象素的顺序号为1号的象素)和仅次于它的容易形成象点的象素(即象素的顺序号为2号的象素)中形成。这样,可以判断在象素的顺序号N小于大象点的临界值THL的象素中形成大象点。另外,由于大象点的临界值THL是2、 中象点的临界值THm是3,所以在该象素组中,只形成1个中象点。在这里,象素的顺序号为1号和2号的象素,已经形成大象点,所以中象点就在为第3个的象素中形成。因此,可以判断在象素的顺序号N大于大象点的临界值THL、小于中象点的临界值THm的象素中形成中象点。同样,由于在该象素组中,只形成2个小象点。所以,可以判断在象素的顺序号N大于中象点的临界值THm小于小象点的临界值THs的象素中形成小象点。然后,可以判断在象素的顺序号N大于小象点的临界值THs的象素中不形成象点。
这样,对一个象素决定应该形成的象点的种类后,判断对选择的象素组内的所有的象素是否决定了象点种类(步骤S848)。还有未处理的象素时(步骤S848:no),就返回步骤S834,选择1个新象素,继续进行上述一系列的处理。反复进行这种处理,对象素组内的所有的象素决定了象点种类后(步骤S848:yes),就对该象素组决定形成各种象点的象素位置。于是,判断对所有的象素组是否决定了象素位置(步骤S850)。还有未处理的象素组时(步骤S850:no),就返回步骤S830,反复进行一系列的处理。反复进行这种操作后,判断对所有的象素组决定了象素位置(步骤S850:yes),就结束图31所示的第1变形例的象素位置决定处理。
在以上讲述的第1变形例的象素位置决定处理中,在将编码化的数据译码化之际,如图30所示,译码化成大象点的个数、大象点及中象点的个数的合计值、大象点和中象点及小象点的个数的合计值。然后,将它们作为临界值使用,判断象素的顺序与这些临界值的大小关系,从而可以立即决定该象素应该形成的象点的种类。
(2)第2变形例:
另外,如果在将编码化的数据译码化的形态上下功夫,不判断大小关系,也能决定象素组内形成象点的象素位置。下面,讲述这种第2变形例。
图32是表示第3实施方式中的第2变形例的象素位置决定处理的流程的流程图。在第2变形例的象素位置决定处理中,也在开始处理后,首先选择要决定象素位置的象素组,取得该象素组的编码化的个数数据(步骤S860)。
接着,参照图33所示的译码化表,将编码化的个数数据译码化成中间 数据。如图33所示,中间数据是8位的数字串,从低位一侧的位数起,依次设定表示大象点的数字(在这里是“3”)、表示中象点的数字(在这里是“2”)、表示小象点的数字(在这里是“1”)、表示不形成象点的数字(在这里是“0”)。例如,大象点是1个、中象点是2个、小象点是3个时,最低位的位数的数字就设定成表示大象点的数字“3”,从低位起的第2及第3的位数上设定表示中象点的数的“2”,从低位起的第4~第6的位数上设定表示小象点的数的“1”,在剩下的位数上设定表示不形成象点的数字“0”。结果,这时的中间数据成为图34(a)所示的8位数的数字“00111223”。反言之,这个中间数据成为表示大象点是1个、中象点是2个、小象点是3个的组合。在图33中,设定着编码化的个数数据和这种中间数据的对应关系。在图32的步骤S862中,参照这种对应关系,进行将编码化的个数数据变换成中间数据的处理。此外,在这里,中间数据成为8位数的数据,是对应于象素组包含的象素数是8个。所以,1个象素组包含的象素数是K个时,中间数据就成为K位数的数据。
接着,从要决定象素位置的象素组中,选择1个作为对象的象素(步骤S864),参照序列矩阵,取得选择的象素的顺序号N(步骤S866)。然后,从刚才取得的中间数据的低位起,求出第N位数上设定的数字,与得到的数字对应的象点,就在该象素上形成(步骤S868)。例如,假设象素组的中间数据是如图34(a)所示的数据,象素的顺序是第3,那么因为从低位数起的第三位上设定的数字是“2”,所以判断在该象素上形成中象点。图34(b),是读出从低位数起的第三位上设定的数字后,决定在该象素上形成中象点的情况的示意图。
这样,对从象素组内选择的一个象素决定象点的种类后,判断对象素组内的所有的象素是否决定了象点种类(步骤S870)。还有未处理的象素时(步骤S870:no),就返回步骤S864,从象素组中选择1个新象素,进行上述一系列的处理。反复进行这种处理,判断对象素组内的所有的象素决定了象点种类后(步骤S870:yes),就对该象素组决定形成各种象点的象素位置。于是,判断对所有的象素组是否决定了象素位置(步骤S872)。还有未处理的象素组时(步骤S872:no),就返回步骤S860,选择新的象素组,继续进行一系列的处理。反复进行这种操作后,判断对所有的象素组 决定了象素位置(步骤S872:yes),就结束图32所示的第2变形例的象素位置决定处理。
在以上讲述的第2变形例的象素位置决定处理中,将编码化的个数数据译码化之际,变换成图33所示的那种表示象点的个数的中间数据,读出相当于象素的顺序的位数上的数字,从而决定象点的种类。这样,采用从中间数据读出相应位置设定的值这一极其简单的操作,就可以迅速决定象点的种类。
另外,在第2变形例的象素位置决定处理中,和上述各种实施方式不同,可以不进行条件判断地决定象点的种类。近几年来的计算机中,为了实现处理的高速化,正在利用所谓流水线处理的技术。但另一方面,我们知道:对于包含条件分岔的处理,即使采用流水线处理的技术,也还有未能提高处理速度,反而使处理速度下降的情况。在上述的第2变形例的象素位置决定处理中,因为能够不进行条件判断地决定象点的种类,所以可以使流水线处理的效果得到充分发挥,从这一观点上,可以说是适合高速处理的处理。
此外,在以上的讲述中,讲述了从中间数据中,读出与象素的顺序对应的位置设定的数字的情况。但也可以固定读出位置地使中间数据位移,从而读出与象素的顺序对应的位置设定的数字。下面,使用图34的示例,讲述这种方法。现在,设作为对象的象素的顺序是3号,那么该象素形成的象点种类,就设定在从中间数据的低位起的第3位数上(参照图34(b))。于是,将中间数据向右位移2位数,生成图34(c)所示的数据,读出最低位的位数上设定的数字。如果作为对象的象素的顺序是N,那么将中间数据向右位移N-1位数后,读出最低位的位数上的数字即可。这样,如果使中间数据位移,就可以使读出数字的位置始终固定在相同的位置上。由于使中间数据的位数位移的操作能够极其迅速地实施,所以固定读出数字的位置后,就能更简便而且迅速地决定象点种类。
E、其它变形例:
本发明除了上述的实施方式外,还存在各种变形例。下面,简单讲述这些变形例。
(1)第1变形例:
在上述的各种实施方式的个数数据生成处理中,使用所谓抖动法判断是否形成象点。可是,只要按照图象数据的灰度值,就能成为适当密度地求出象点个数,所以使用哪种手法也行。
例如,可以象图35所示的变形例的个数数据生成处理那样,计算出象素组内的各象素的平均灰度值,根据该平均灰度值,根本性地求出象素组内形成的象点个数。下面,按照图35的流程图,简单讲述。
开始个数数据生成处理后,首先将所定的多个象素作为象素组归纳(步骤S900),计算出象素组内的各象素的平均灰度值(步骤S902),根据该平均灰度值,根本性地求出象素组内形成的象点个数。就是说,如图36所示,与平均灰度值对应,预先决定象素组内形成的象点个数,按照这种对应关系,根据象素组的平均灰度值,决定象点个数。此外,在图36中,示出象点种类为3种的情况,但象点种类不局限于3种。
接着,各象素组存储这样决定的象点个数后(步骤S906),判断对所有的象素的处理是否结束(步骤S908)。然后,如果还有未处理的象素时,返回步骤S900,继续反复进行一系列的处理。判断结束了所有的象素的处理后,使用存储象点个数的图30,采用讲述的方法编码化后,将编码化的象点个数的数据向打印机200输出(步骤S910)。
在打印机200中,接受由计算机100输出的象点个数的数据后,进行前文讲述的象素位置决定处理,印刷图象。这样,因为能够简便地求出各象素组的象点个数的数据,所以能够迅速输出象点个数的数据,进而能够更迅速地印刷图象。
(2)第2变形例:
在上述的各种实施方式的个数数据生成处理中,首先将多个象素作为象素组归纳后,决定象素组内形成的象点个数。可是,还可以首先判断各象素是否形成象点,然后将多个象素作为象素组归纳。
例如,在图37所示的变形例中,首先对图象数据采用所谓误差扩散法,对所有的象素,判断是否形成象点(步骤S950)。然后,将所定的多个象素作为象素组归纳(步骤S952),按象素组数着存储形成的象点个数(步骤S954)。
各象素组存储这样决定的象点个数后,判断对所有的象素的处理是否 结束(步骤S956),还有未处理的象素时,返回步骤S900,继续反复进行一系列的处理。判断结束了所有的象素的处理后,将各象素组存储的象点个数向打印机200输出(步骤S958)。
在打印机200中,接受由计算机100输出的象点个数的数据后,进行前文讲述的象素位置决定处理,按象素组决定形成象点的象素位置。此外,在图37所示的变形例中,根据误差扩散法求出象点个数,但这时也可以如前所述,参照抖动矩阵决定象素位置。
另外,我们知道,一般地说,使用误差扩散法判断是否形成象点时,在象点的形成密度低的区域,可以获得杂波少的良好的图象质量。因此,例如在印刷象点一个也不形成的许多象素组中形成象点的象素组稀疏分布的那种象点密度低的图象时,根据误差扩散法,求出象素组的象点个数,就可以使象点适当分布,得到高质量的图象。
(3)第3变形例:
在以上讲述的各种实施方式中,讲述了根据抖动矩阵决定象素位置的情况。一边参照前文讲述的序列矩阵一边决定象素位置时,虽然不是直接参照抖动矩阵,但因为序列矩阵是根据抖动矩阵生成的,所以可以认为是间接性地根据抖动矩阵决定象素位置。可是,如果能够使用不同的序列给每个象素组决定象素位置,就未必需要根据抖动矩阵决定。
例如,可以如图38的流程图所示,存储多个序列,从中给各象素选择适当的序列,决定象素位置。下面,按照图38的流程图简单讲述。
打印机200的控制电路260内置的CPU,开始变形例的象素位置决定处理后,首先选择要决定象素位置的象素组,取得该象素组的象点个数的数据(步骤S970)。接着,从预先存储的多个序列中,任意选择一个序列(步骤S972)。在控制电路260的ROM中,对象素组内的各象素,预先存储着多个序列。图39是ROM存储的多个序列的示意图。在步骤S972中,从这些序列中选择1个序列。
然后,参照选择的序列,决定象素组内形成象点的象素位置(步骤S974)。这样,对一个象素组决定象素位置后,判断对所有的象素组的处理是否结束(步骤S976),还有未处理的象素组时,就返回步骤S970,继续进行一系列的处理,决定象素位置。然后,直到结束对所有的象素组的处 理为止,反复进行上述处理。
这样做,也能根据各象素组的象点个数的数据,决定形成象点的象素位置。另外,为了决定象素位置而参照的序列,几乎按照象素组选择不同的序列,所以不存在用一个模式形成象点而引起图象质量恶化的危险。
以上,对各种实施方式进行了讲述。但本发明并不局限于以上那些实施方式。在不违背其宗旨的范围内,可以用各种样态实施。
例如,可以将实现上述功能的软件程序(应用程序),通过通信线路,供给计算机系统的主存储器或外部存储装置后实施。毫无疑问,还可以读入CD-ROM及软盘存储的软件程序后实施。
另外,在以上的实施方式中,讲述了将本发明应用于在印刷用纸上形成象点、印刷图象的打印机。但本发明的应用范围并不局限于打印机。例如,在液晶显示画面上,以适当的密度使光亮点分散,从而表现灰度连续变化的图象的液晶显示装置等中,也能恰当地使用本发明。
Claims (10)
1.一种图象输出控制系统,其特征在于:
是包括对图象数据实施所定的图象处理的图象处理装置和根据该图象处理的结果形成象点、从而输出图象的图象输出装置的图象输出控制系统,
所述图象处理装置,具有:
将构成所述图象的多个象素多个地归纳,生成象素组的象素组生成单元;
至少对于多个该象素组来说,以使与所述象素组对应的图象数据和该象素组内应当形成的象点的个数的对应关系在该象素组的每一个中都互不同的状态,决定该象点的个数的象点个数决定单元;
将按照所述各象素组决定的象点个数的数据,作为所述控制数据,供给所述图象输出装置的个数数据供给单元;
所述图象输出装置,包括:
接受关于所述各象素组的象点个数的数据的个数数据接受单元;
根据所述象点个数的数据,对在所述象素组内形成象点的象素位置按照该象素组的每一个进行决定的象素位置决定单元;
根据所述决定的象素位置,形成象点的象点形成单元;和
序列选择单元,预先预备用于确定在所述象素组内的象素中形成象点的顺序的多种序列,当取得所述象点个数时,从所述多种序列中,给所述各象素组选择1个序列,
所述象素位置决定单元,是根据所述象点个数的数据和所述序列,确定所述象点的形成位置的单元。
2.如权利要求1所述的图象输出控制系统,其特征在于:
所述个数数据供给单元,具有以编码化的状态供给所述象点个数的数据的单元;
所述个数数据接受单元,具有接受所述被编码化的象点个数的数据,再译码成所述象素组内应该形成的象点的个数的单元;
所述象素位置决定单元,是根据所述译码的象点个数的数据和所述选择的序列,决定所述象素位置的单元。
3.如权利要求1所述的图象输出控制系统,其特征在于:
所述象点个数决定单元,是根据给二维排列的每一个象素对应附加临界值的抖动矩阵,决定所述象素组内应该形成的象点的个数的单元;
所述序列选择单元,
是在将决定所述象点个数使用的抖动矩阵,分割到多个象素组,根据给该象素组内的各象素对应附加的临界值的大小关系,将给每个象素组决定的象素的序列,作为所述多个序列进行存储的同时,
还从根据抖动矩阵决定的多个序列中,选择与在所述图象上的象素组的位置对应的1个序列的单元。
4.一种图象输出控制方法,是对图象数据实施所定的图象处理,根据得到的结果形成象点,从而输出图象的图象输出控制方法,其特征在于:具有:
将构成所述图象的多个象素多个地归纳,生成象素组的第1工序;
至少对于多个该象素组来说,以使与所述象素组对应的图象数据和该象素组内应当形成的象点的个数的对应关系在该象素组的每一个中都互不同的状态,决定该象点的个数的第2工序;
根据该决定的象点的个数,对在所述象素组内形成象点的象素位置按照该象素组的每一个进行决定的第3工序;
根据所述决定的象素位置,形成象点的第4工序,
所述第3工序中,预先预备用于确定在所述象素组内的象素中形成象点的顺序的多种序列,当取得所述象点个数时,从所述多种序列中,给所述各象素组选择1个序列,
所述第3工序是根据所述象点个数的数据和所述序列,确定所述象点的形成位置的工序。
5.如权利要求4所述的图象输出方法,其特征在于:
所述第2工序中,包含以编码化的状态输出所述决定的所述象点个数的数据的工序,
所述第3工序中,包含:
工序A,取得所述以编码化的状态输出的象点个数的数据;
工序B,根据取得的数据,译码成所述象素组内应该形成的象点的个数;
工序C,根据所述译码的象点个数和所述选择的序列,决定所述象素位置。
6.如权利要求5所述的图象输出控制方法,其特征在于:所述第3工序中的工序A,是接受由相互邻接、而且具有所定位置关系的多个象素构成的象素组的所述象点个数的数据的工序。
7.如权利要求4所述的图象输出控制方法,其特征在于:
所述第3工序中,
将所述多种序列,以该序列被以所定的顺序二维排列的序列矩阵的形态存储,
还从所述序列矩阵存储的多个序列中,选择1个与在所述图象上的象素组的位置对应的序列。
8.如权利要求7所述的图象输出控制方法,其特征在于:
所述多种序列,将在给二维排列的每一个象素对应附加了临界值的抖动矩阵,分割成多个所述象素组,根据给该象素组内的各象素对应附加的临界值的大小关系,将给每个象素组决定的象素的序列,作为所述序列矩阵存储。
9.如权利要求4所述的图象输出控制方法,其特征在于:
所述第3工序,具有:
设所述象素组包含的象素数为N、该象素组形成的象点个数为M时,根据所述象素组的象点个数的数据,生成由意味着形成象点的M个连续的数据和意味着不形成象点的N-M个连续的数据构成的中间数据的工序;
预先预备用于确定在所述象素组内的象素中形成象点的顺序的多种序列,从所述多种序列中,给所述各象素组选择1个序列的工序;和
根据所述选择的序列,给每个象素决定所述象素组内的各象素中形成有象点的顺序的顺序值的顺序值,再根据该顺序值,从所述中间数据中读出符合的数据,从而检出该象素组内形成象点的象素位置的工序。
10.如权利要求9所述的图象输出控制方法,其特征在于:
检出所述象素位置的工序中,将所述中间数据,向意味着形成象点的数据被分配的方向,只位移相当于所述顺序值的个数的数据后,通过读出位于该移动侧的端部的数据,从而检出所述象素位置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003-087176 | 2003-03-27 | ||
JP2003087176 | 2003-03-27 | ||
JP2004071021 | 2004-03-12 | ||
JP2004-071021 | 2004-03-12 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800080570A Division CN100440920C (zh) | 2003-03-27 | 2004-03-29 | 图象输出控制系统、图象输出装置及图象处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101299796A CN101299796A (zh) | 2008-11-05 |
CN101299796B true CN101299796B (zh) | 2010-12-29 |
Family
ID=36748360
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800080570A Expired - Fee Related CN100440920C (zh) | 2003-03-27 | 2004-03-29 | 图象输出控制系统、图象输出装置及图象处理装置 |
CN2008101082484A Expired - Fee Related CN101299796B (zh) | 2003-03-27 | 2004-03-29 | 图象输出控制系统和图象输出装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800080570A Expired - Fee Related CN100440920C (zh) | 2003-03-27 | 2004-03-29 | 图象输出控制系统、图象输出装置及图象处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN100440920C (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359430A (en) * | 1992-05-15 | 1994-10-25 | Microsoft Corporation | Block-halftoning method and system with compressed error image |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0865511A (ja) * | 1994-08-22 | 1996-03-08 | Murata Mach Ltd | 中間調画像データの伝送方法 |
JPH08116440A (ja) * | 1994-10-17 | 1996-05-07 | Fuji Xerox Co Ltd | 階調画像2値化装置 |
JP4034061B2 (ja) * | 2000-12-26 | 2008-01-16 | シャープ株式会社 | 画像処理方法、画像処理装置、画像形成装置、画像処理プログラムおよびコンピュータ読み取り可能な記録媒体 |
-
2004
- 2004-03-29 CN CNB2004800080570A patent/CN100440920C/zh not_active Expired - Fee Related
- 2004-03-29 CN CN2008101082484A patent/CN101299796B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359430A (en) * | 1992-05-15 | 1994-10-25 | Microsoft Corporation | Block-halftoning method and system with compressed error image |
Non-Patent Citations (4)
Title |
---|
JP特开2002-262084A 2002.09.13 |
JP特开平8-116440A 1996.05.07 |
JP特开平8-65511A 1996.03.08 |
JP特开昭63-182973A 1988.07.28 |
Also Published As
Publication number | Publication date |
---|---|
CN1765117A (zh) | 2006-04-26 |
CN101299796A (zh) | 2008-11-05 |
CN100440920C (zh) | 2008-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1059803B1 (en) | Image recording apparatus and image recording method | |
JP4375235B2 (ja) | 複数画素ずつコード化しながら画像を出力する画像出力システム | |
US7556343B2 (en) | Ink-jet printing method, printing system, ink-jet printing apparatus, print data generating method, program and printer driver | |
JP4534963B2 (ja) | 画像形成方法、画像形成装置、画像形成システム、印刷方法、印刷物の生成方法および画像形成装置を制御するためのコンピュータプログラム | |
US7580156B2 (en) | Image processing system, image processing device, dot data processing device, and method and program product therefor | |
CN100417178C (zh) | 点数据处理装置、图像输出系统及其方法 | |
CN100379250C (zh) | 进行彩色图像数据转换的图像处理装置和图像处理方法 | |
US7796303B2 (en) | Image processing system, image processing device, dot data processing device, and method and program product therefor | |
JP4534964B2 (ja) | 画像形成方法、画像形成装置、画像形成システム、印刷物の生成方法および画像形成装置を制御するためのコンピュータプログラム | |
US7656558B2 (en) | Image processing system, image processing device, image output device, and method and program product therefor | |
JPWO2005104525A1 (ja) | 複数画素ずつ多値化を行う画像処理装置 | |
JP4412169B2 (ja) | 画像処理装置、画像処理方法、プログラム、および記録媒体 | |
JP6252003B2 (ja) | 印刷装置、印刷方法、画像処理装置およびプログラム | |
JP2004350257A (ja) | 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム | |
JP4225319B2 (ja) | 画像出力制御システム、画像処理装置およびその方法 | |
JP4297033B2 (ja) | 複数画素ずつ多値化を行う画像処理装置 | |
JP4375050B2 (ja) | 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム | |
CN101299796B (zh) | 图象输出控制系统和图象输出装置 | |
JP2000101837A (ja) | 画像処理装置および方法並びに印刷装置 | |
JP2005224983A (ja) | 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム | |
JP4059121B2 (ja) | 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム | |
JP4561049B2 (ja) | 所定領域内に形成されるドット個数の情報に基づいて画像を印刷する印刷システム | |
JP4225320B2 (ja) | 画像出力制御システム、画像出力装置、画像処理装置およびそれらの方法 | |
CN1726455B (zh) | 打印系统及其打印方法 | |
JP2003025553A (ja) | 画像記録方法及びそれを適用した画像記録装置、並びにその画像記録装置に適用される画像記録処理用プログラム |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101229 Termination date: 20120329 |