本发明涉及一种使得能够在多个渲染处理单元中并行地执行渲染处理的技术。
背景技术:
传统上,诸如位图数据的光栅数据被分割成适合于诸如旋转处理的图像处理的、各个具有(例如,32像素×32像素的)矩形形状的光栅数据。矩形形状(瓦片)光栅数据也称作瓦片数据。
PTL 1公开了以下处理。(1)渲染器根据以页面描述语言(PDL)描述的单个页的图像数据(打印数据)来生成具有等于瓦片的高度(例如,32像素)的高度的带的光栅数据;以及(2)瓦片分割单元将所生成的带光栅数据分割成适合于诸如旋转处理的图像处理的瓦片数据。换言之,该技术利用一个瓦片分割单元来将由一个渲染器生成的具有与瓦片的高度相等的高度的带的光栅数据分割成多个瓦片数据。
然而,PTL 1未考虑为了光栅数据生成处理(渲染处理)的更高的速度而使用多个渲染器。
在瓦片分割结束之前,多个渲染器对各个具有比瓦片高度大的高度的带的光栅数据的并行生成可能需要用于存储多个带的所生成的光栅数据的存储器。换言之,要被分割成多个瓦片数据的、具有与瓦片高度相等的高度的一个带的光栅数据包含由一个渲染器生成的光栅数据而不包含由另一渲染器生成的光栅数据。
[引用列表]
[专利文献]
[PTL 1]
日本专利特开第2014-53822号
技术实现要素:
本发明提供了一种图像处理装置,其对具有预定宽度及预定高度的区域的光栅图像进行分割,所述图像处理装置包括:获取单元,其被构造成获取打印数据;多个渲染单元,各个渲染单元被构造成基于所述打印数据而在各个具有预定宽度及比预定高度小的高度的区域中进行渲染以生成具有预定宽度及预定高度的区域的光栅图像,所述渲染由所述多个渲染单元并行地进行;以及分割单元,其被构造成将所生成的具有预定宽度及预定高度的区域的光栅图像分割成各个具有比所述预定宽度小的宽度及所述预定高度的多个分割区域的光栅图像。
通过以下参照附图对示例性实施例的描述,本发明的其他特征将变得清楚。
附图说明
图1例示了图像形成装置的构造。
图2例示了图像形成装置中PDL打印处理的数据流。
图3A例示了要由图像形成装置处理的页内的矩形区域的坐标系的示例。
图3B例示了要由图像形成装置处理的页内的矩形区域的坐标系的另一示例。
图4A例示了与渲染处理相关联的构造。
图4B例示了与渲染处理相关联的构造。
图5例示了与渲染处理相关联的部分部件终止的状态。
图6是例示PDL打印处理的流程图。
图7是例示根据示例性实施例的渲染处理的设定的流程图。
图8是例示根据示例性实施例的渲染处理的设定的流程图。
图9是例示并行渲染处理的流程图。
图10A例示了对按带写入及按块读取的访问控制。
图10B例示了对按带写入及按块读取的访问控制。
图10C例示了对按带写入及按块读取的访问控制。
图10D例示了对按带写入及按块读取的访问控制。
图10E例示了对按带写入及按块读取的访问控制。
图11A例示了矩形区域中的按带的矩形区域与按块的矩形区域之间的位置关系。
图11B例示了矩形区域中的按带的矩形区域与按块的矩形区域之间的位置关系。
图11C例示了矩形区域中的按带的矩形区域与按块的矩形区域之间的位置关系。
图11D例示了矩形区域中的按带的矩形区域与按块的矩形区域之间的位置关系。
图11E例示了矩形区域中的按带的矩形区域与按块的矩形区域之间的位置关系。
图12A例示了显示列表中所包含的渲染对象的坐标的更新。
图12B例示了显示列表中所包含的渲染对象的坐标的更新。
具体实施方式
下面将参照附图来描述本发明的实施例。
图1例示了根据本发明示例性实施例的图像形成装置的构造示例。如图1所例示的,图像形成装置100包括控制器101、网络102、操作单元103、读取单元104及打印单元105。网络102是例如可以由LAN或WAN(公共网络)来实现的通信单元,并且可以与诸如主计算机和服务器的外部装置及图像形成装置100交换图像数据及设备信息。操作单元103是被构造成获取用户操作作为图像处理的控制信息并且向用户显示图像处理的控制信息的处理单元。读取单元(扫描器引擎)104是作为被构造成通过使用光学传感器来将图像数据拍摄到图像形成装置100中的处理单元的图像输入设备。打印单元(打印机引擎)105是作为被构造成将图像形成装置100内的图像数据打印在打印介质上并且将其输出的处理单元的图像输出设备。
控制器101是连接到网络102、操作单元103、读取单元104及打印单元105的,用于对图像形成装置100的总体控制的控制单元。控制器101包括系统总线106、通信单元I/F 107、CPU 108、RAM 109、ROM 110、HDD 111、操作单元I/F 112、读取单元I/F 113、绘制处理单元(渲染处理单元)114、块RAM 115、压缩处理单元116、解压缩处理单元117及打印单元I/F 118。
系统总线106是连接控制器101的那些部件、用于使图像数据及控制信息在所述部件之间交换的通信路径。通信单元I/F 107是例如可以由LAN卡来实现的接口,并且可以在网络102上与诸如主计算机和服务器的外部装置及图像形成装置100交换图像数据及设备信息。
CPU 108是被构造成总体上控制图像形成装置100的处理单元。特别是在PDL打印处理中,CPU 108可以解译在网络102上从外部装置接收到的PDL数据(作为打印数据的示例),并且将它们转换成称作DL(display list,显示列表)的中间数据。RAM(随机存储存储器)109是可用作CPU 108通过其而在系统上运行的工作区、以及用于临时地存储图像数据的缓冲区的易失性存储器。ROM(只读存储器)110是作为被构造成存储使得CPU 108启动系统的程序的临时存储单元的非易失性存储器。在图像形成装置100启动时,该程序在RAM 109中被解压缩,并且由CPU 108来执行。HDD(硬盘驱动器)111是被构造成存储图像形成装置100内的图像数据的大容量存储单元。
操作单元I/F 112是被构造成获取用户操作作为图像处理的控制信息、并且向用户显示图像处理的控制信息的接口。读取单元I/F(扫描图像处理单元)113是连接到读取单元(扫描器引擎)104、并且被构造成基于读取单元104的设备特性来对从读取单元104输入的图像数据进行用于校正的图像处理的图像处理单元。
绘制处理单元114基于由CPU 108根据PDL数据而生成的矢量中间数据(DL)来进行绘制处理(渲染处理),并且将光栅图像数据(光栅数据)输出给块RAM 115。绘制处理单元114内部地包括寄存器(称作内部寄存器)以及多个绘制处理单元(包括第一绘制处理单元401及第二绘制处理单元402)。内部寄存器存储关于绘制处理的信息。所述多个绘制处理单元能够并行地进行绘制处理。在启动时,绘制处理单元通过参照内部寄存器中相互不同的预定地址来获取它们的识别信息(ID)。块RAM 115包括被构造成临时地保持光栅数据的存储器及访问检测设备。块RAM 115能够检测光栅数据到存储器中的特定地址的写入以及从存储器中的特定地址的读取。压缩处理单元116被构造成从临时地保持在块RAM 115中的光栅数据中提取形状为矩形(瓦片形状)的光栅数据(瓦片数据)(下文将描述),并且对所提取的瓦片数据进行压缩处理以生成经压缩的图像数据。换言之,压缩处理单元116将带提取(分割)成光栅数据的块,并且对光栅数据块进行压缩处理。压缩处理单元116被构造成进行压缩处理,作为要对瓦片数据进行的图像处理的示例,但是本发明的图像处理并不限于这种压缩处理。
将参照图4A及图4B来详细地描述要由与PDL打印的绘制处理相关联的绘制处理单元114、块RAM 115及压缩处理单元116进行的操作。
解压缩处理单元117被构造成对在压缩处理单元116中已经受压缩处理的经压缩的图像数据进行解压缩处理,以生成经解压缩的图像数据。
打印单元I/F(打印图像处理单元)118连接到打印单元(打印机引擎)105。打印单元I/F(打印图像处理单元)118被构造成基于打印单元105的设备特性来对已经受解压缩处理的经解压缩的图像数据进行用于校正的图像处理(例如,伽马校正处理),并且然后将经校正的图像数据输出到打印单元105。
接下来,参照图2、图3A及图3B,将描述图像形成装置100中的PDL打印处理的数据流及图像数据单元之间的关系。图2例示了图像形成装置100中的PDL打印处理的数据流。图3A及图3B例示了要在图像形成装置100中处理的页内的瓦片数据的示例坐标系。该页由PDL数据表示。在图像形成装置100启动时,CPU 108将存储在HDD 111中的程序解压缩到RAM 109中。当执行该程序时,总体地控制图1所例示的部件以实现图2中的数据流。
如图2所例示的,图像形成装置100中的通信单元I/F 107被构造成从主计算机接收PDL数据,并且将它们作为PDL数据201按页存储到RAM 109中。接下来,CPU 108解译所接收到的PDL数据201,按页生成中间数据(DL)202,并且将它们再次存储在RAM 109中。图12A例示了所生成的一页单位中的中间数据(DL)202的示例。图12A中示例性地例示的中间数据(DL)包括表示数据的末尾的信息(页的末尾)以及1至5五个绘制对象(渲染对象)。绘制对象1至5中的各个绘制对象保持关于要在哪里绘制它的位置的信息,并且中间数据中包含按副扫描方向上的坐标位置顺序(Y坐标的升序)分类的绘制对象1至5。
在生成中间数据之后,CPU 108将存储有中间数据的RAM 109中的地址中的第一地址设定为绘制处理单元114中的内部寄存器中的并行绘制处理设定信息(下文中,也简称作绘制处理设定信息)203。在这种情况下,CPU 108还将关于要在绘制处理单元114中进行的并行操作的信息(例如,要使得其并行地操作的绘制处理单元的数量(或者并行操作的数量)以及要由绘制处理单元绘制的带上的副扫描方向上的像素的数量(高度))包含在绘制处理设定信息203中。
图3A及图3B示例性地例示了带单位。换言之,本文中带单位是指通过按副扫描方向划分单个页而获取的、副扫描方向(也称作高度方向)上的像素的数量(高度)小于主扫描方向(也称作扫描线方向或宽度方向)上的像素的数量(宽度)的条带状矩形区域。另一方面,本文中块单位(也称作瓦片单位)是指图像形成装置100中预定主扫描方向上的像素的数量(宽度)等于副扫描方向上的像素的数量(高度)的正方形瓦片状的矩形区域,如图3A及图3B所例示的。换言之,带单位的宽度等于页单位的宽度,并且等于或大于块单位(或瓦片)的宽度。
图3A及图3B在是否存在块单位的矩形区域包含在带单位的矩形区域中的位置关系方面是不同的。参照图3A,块单位包含在带单位中,并且单个带单位包含多个块。另一方面,图3B所例示的带单位适合于并行绘制处理。本文中,多个块不包含在一个带中,并且一个块包含至少多个带的数据。换言之,相邻带的数据是一个块的不同部分的数据。图3B中各个带的副扫描方向上的像素的数量(高度)等于通过将块的副扫描方向上的像素的数量(高度)除以并行操作的数量而获取的数。更具体地说,如图3B所例示的,单个页1中带11或带12的高度是通过将单个块11的高度除以并行操作的数量“2”而获取的。
根据本示例性实施例,如图3B所例示的,由一个绘制处理单元绘制的带对应于由按副扫描方向对页的精细划分而产生的带。将描述该原因。页被划分成用于并行绘制处理的多个区域。将单个绘制对象划分成多个不同的矩形区域通常会增加绘制处理的开销,尽管这还取决于诸如页中所包含的字符、照片及图形等的绘制对象的复杂性。为了减少这种绘制处理的开销,本示例性实施例考虑绘制处理算法的特性。例如,假定根据本示例性实施例的绘制处理单元要采用的绘制处理算法是扫描线方法(其沿扫描线顺序地绘制像素)。在这种情况下,按副扫描方向分割页(而不是按主扫描方向划分页)可以将绘制处理的开销最小化。换言之,在根据扫描线方法来进行绘制处理的多个绘制处理单元用于并行绘制处理的情况下,可以有效地对带进行并行绘制处理。
将按在图3B中限定的页内的带和块来描述以下示例性实施例。
绘制处理单元(光栅图像处理器或RIP)114参照存储在RAM 109中的中间数据(DL)202,并且对作为单个页内的多个带的矩形区域并行地执行绘制处理。绘制处理单元114通过进行并行绘制处理生成多个带的光栅图像数据(光栅数据)204,并且将光栅数据临时地保持在块RAM 115中。
接下来,压缩处理单元116将临时地保持在块RAM 115中的多个带的光栅数据结合,并且从结合的多个带的光栅数据中读出块的光栅数据。单个块的光栅数据包括多个带的光栅数据。压缩处理单元116对所读取的块的光栅数据进行JPEG压缩处理以生成经压缩的图像数据,并且将经压缩的图像数据再次存储在RAM 109中。
此外,解压缩处理单元117对存储在RAM 109中的、单个页中所包含的所有块的经压缩的图像数据进行JPEG解压缩处理,以生成页的光栅数据,并且将它们再次临时地存储在RAM 109中。
其后,打印单元I/F 118读出临时地保持在RAM 109中的页的光栅数据,并且基于打印单元105的设备特性来进行用于校正的图像处理。然后,打印单元I/F 118将经校正的图像数据输出到打印单元105。响应于此,打印单元(打印机引擎)105基于从打印单元I/F 118传送来的图像数据来进行打印。
接下来,参照图4A及图4B,将描述根据本示例性实施例的用于PDL打印的绘制处理中的操作。图4A及图4B例示了内部操作,内部操作包括对临时地保持在RAM 109中的中间数据(DL)202的带并行地执行绘制处理,并且然后将经压缩的图像数据205按块再次存储在RAM 109中。
图4A例示了块的矩形区域包含在带的矩形区域中的情况下(如图3A所例示的)的示例。参照图4A,图像形成装置100使用绘制处理单元114中所包括的第一绘制处理单元401及第二绘制处理单元402来并行地绘制单个页内的多个带。例如,第一绘制处理单元401可以对单个页内的奇数编号的带进行绘制处理并且更新绘制对象的轮廓的各个扫描线的坐标,而不对偶数编号的带进行绘制处理。例如,第二绘制处理单元402可以对单个页内偶数编号的带进行绘制处理,并且仅更新绘制对象的轮廓的各个扫描线的坐标,而不对奇数编号的带进行绘制处理。
按这种方式,第一绘制处理单元401及第二绘制处理单元402获取要按带绘制的绘制对象。根据本示例性实施例,按页处理临时地存储在RAM 109中的中间数据(DL)202。然而,为了易于按带获取绘制对象,可以预先将中间数据(DL)划分成带。
接下来,第一绘制处理单元401将图3A所例示的带1及带3的图像数据顺序地输出到块RAM 115中所包含的第一块RAM 411。另一方面,第二绘制处理单元402将图3B所例示的带2及带4的图像数据顺序地输出到RAM 115中所包含的第二块RAM 412。
接下来,压缩处理单元116中所包含的第一压缩处理单元421从图3A所例示的带1中按块顺序地读出临时地存储在第一块RAM 411中的图像数据,对其执行压缩处理,并且将结果传送到RAM 109。另一方面,压缩处理单元116中所包含的第二压缩处理单元422从图3A所例示的带2中按块顺序地读出临时地存储在第二块RAM 412中的图像数据,对其执行压缩处理,并且将结果传送到RAM 109。
这里,第一块RAM 411包括双缓存器,可同时地执行要由第一绘制处理单元401进行的对该双缓存器的写入、以及要由压缩处理单元116进行的从该双缓存器的读取。例如,这使得能够同时执行由第一绘制处理单元401进行的对带3的写入处理、以及由第一压缩处理单元421进行的对带1内的块11至块14的读取处理。如上所述地构造第二块RAM 412。
如上所述,从图4A中的示例可以理解,不仅需要资源来用于绘制处理单元114中的并行处理,而且也可能根据绘制处理单元114中的并行操作的数量而在块RAM 115及压缩处理单元116中需要多个资源。换言之,可能需要第一块RAM 411、第二块RAM 412、第一压缩处理单元421及第二压缩处理单元422。
图4B例示了,如图3B所例示的、块的矩形区域无法包括在带单位的矩形区域中,基于绘制处理单元114中的并行操作的数量而将块的副扫描方向上的像素的数量按多个带的高度来划分的情况下的示例。参照图4B,图像形成装置100通过使用绘制处理单元114中所包括的第一绘制处理单元401及第二绘制处理单元402来并行地绘制单个页内的多个带。换言之,绘制处理设定信息203中的并行操作的数量是“2”。第一绘制处理单元401对单个页内的奇数编号的带进行绘制处理,并且更新绘制对象的各个扫描线的坐标,而不对偶数编号的带进行绘制处理。第二绘制处理单元402对单个页内的偶数编号的带进行绘制处理,并且更新绘制对象的各个扫描线的坐标,而不对奇数编号的带进行绘制处理。
因此,第一绘制处理单元401及第二绘制处理单元402中的各个按带获取要绘制的绘制对象。根据本示例性实施例,按页处理临时地存储在RAM 109中的中间数据(DL)202。然而,为了易于按带获取绘制对象,可以预先将中间数据(DL)划分成带。
接下来,第一绘制处理单元401将图3B所例示的带11及带21的图像数据顺序地输出到块RAM 115中所包含的第一块RAM 411。另一方面,第二绘制处理单元402将图3B所例示的带12及带22的图像数据顺序地输出到RAM 115中所包含的第一块RAM 411。
接下来,压缩处理单元116中的第一压缩处理单元421从临时地存储在第一块RAM 411中的、图3B所例示的将带11与带12相结合的带中按块读出图像数据。第一压缩处理单元421按块对所读出的图像数据执行压缩处理,并且然后将经压缩的图像数据传送到RAM 109。
并且在这种情况下,第一块RAM 411及第二块RAM 412中的各个包含双缓存器,可同时地执行要由绘制处理单元401及绘制处理单元402进行的对其的写入、以及要由压缩处理单元116进行的从其的读取。
如上所述,从图4B中的示例应当理解,可能仅需要用于绘制处理单元114中的并行处理的资源来用于绘制处理单元114中的并行处理,而块RAM 115及压缩处理单元116中的资源无需任何改变。
图5例示了通过停止图4B中的第二绘制处理单元402而仅操作第一绘制处理单元401的示例。在这种情况下,因为绘制处理单元114中的并行操作的数量等于1,所以如在图3A中,块的矩形区域包含在带的矩形区域中的位置关系得到满足。
参照图5,图像形成装置100可以仅使用绘制处理单元114中所包括的第一绘制处理单元401以顺序地绘制单个页内的带。换言之,绘制处理设定信息203中的并行操作的数量是“1”。接下来,第一绘制处理单元401将图3A所例示的带1及带2的图像数据顺序地输出到块RAM 115中所包含的第一块RAM 411。接下来,压缩处理单元116中所包含的第一压缩处理单元421从临时地存储在第一块RAM 411中的、与图3A所例示的带1相对应的带中按块读取图像数据,对其执行压缩处理,并且将它们传送到RAM 109。并且在这种情况下,第一块RAM 411包含双缓存器,可同时地执行要由绘制处理单元401进行的对该双缓存器的写入、以及要由压缩处理单元116进行的从该双缓存器的读取。
如上所述,参照图5中的示例,即使在绘制处理单元114的绘制处理设定被改变成停止多个绘制处理单元中的一部分时,也可以通过将绘制处理中的并行操作的数量与带的高度关联地改变来实现该同样的绘制处理。
图6是例示PDL打印处理的流程图。该流程图由CPU 108通过执行存储在ROM 110中的、用于对图1所例示的部件的总体控制的程序来实现。
首先,CPU 108通过通信单元I/F 107接收从主计算机发送来的PDL数据,并且将它们作为PDL数据201按页存储在RAM 109中(S601)(下文中“S”代表“步骤”)。
接下来,CPU 108解译所接收到的PDL数据201(S602),并且基于经解译的信息而生成中间数据(DL)202(S603)。图12A中示例性地例示了中间数据(DL)。
接下来,CPU 108限定绘制处理单元114的并行绘制处理设定(S604)。更具体地说,对要由绘制处理单元114绘制的带的高度的设定进行限定。将参照图7中的流程图来详细地描述S604。
接下来,CPU 108控制绘制处理单元114以执行绘制处理,并且由此生成光栅图像数据(光栅数据)204(S605)。将参照图9中的流程图来详细地描述S605。
接下来,CPU 108控制压缩处理单元116以对其执行压缩处理,并且然后将经压缩的图像数据205存储在RAM 109中(S606)。将参照图10A至图10E来详细地描述S606。
接下来,CPU 108控制解压缩处理单元117以对存储在RAM 109中的、经压缩的图像数据205执行解压缩处理,并且然后将图像数据206再次存储在RAM 109中(S607)。
接下来,CPU 108控制打印单元I/F 118以将图像数据206从RAM 109传送到打印单元105。然后,CPU 108基于打印单元105的设备特性来对图像数据206进行校正图像处理,并且然后将经处理的图像数据传送到打印单元105(S608)。
其后,打印单元105将从打印单元I/F 118传送来的图像数据打印并输出到打印介质(S609)。
图7是例示S604中的绘制处理的设定的流程图。
首先,CPU 108从ROM 110中获取块的高度,块的高度是要在图像形成装置100内处理的图像数据单位。根据本示例性实施例,块高度是预先确定的,但是也可以根据图像形成装置的由用户设定的操作模式来动态地确定。为了易于描述,将块单位假定为8像素×8像素正方形瓦片。
接下来,CPU 108从绘制处理单元114内的寄存器中获取绘制处理单元114中用于按带进行绘制处理的资源中的并行操作的数量(S702)。对于并行操作的数量,在S702中的处理之前,CPU 108在内部寄存器中设定根据图像形成装置的由用户设定的操作模式的不同的值。例如,在用户指定省电打印模式作为操作模式的情况下,如图5所例示的,在内部寄存器中将绘制处理单元114中并行操作的数量设定为“1”。例如,在用户未指定省电打印模式作为操作模式的情况下,如图4B所例示的,在内部寄存器中将绘制处理单元114中的并行操作的数量设定为“2”。例如,在用户指定高速打印模式作为操作模式的情况下,在内部寄存器中将绘制处理单元114中并行操作的数量设定为“4”(或2或更大)。
接下来,CPU 108判断在S702中所获取的并行操作的数量是否等于或大于2(S703)。如果在S703中确定该数量等于或大于2(是),则处理移动到S705。如果在S703中该数量是1(否),则处理移动到S704。
在S704中,CPU 108将在S701中在内部寄存器中的绘制处理设定信息203中所获取的块高度设定为是绘制处理单元114中的处理单位的带的高度。例如,因为对于8像素×8像素块单位的并行操作的数量是1,所以在绘制处理单元114的内部寄存器中将带高度设定为8像素。
另一方面,在S705中,CPU 108通过将在S701中所获取的块高度除以在S702中在内部寄存器中的绘制处理设定信息203中获取的并行操作的数量来设定带高度(S706)。例如,因为对于8像素×8像素块单位的并行操作的数量是2,所以在绘制处理单元114中的内部寄存器中将带高度设定为4像素。
以上描述了用于限定绘制处理设定的处理流程。
图9是例示并行绘制处理的流程图。假定绘制处理单元114在CPU108的控制下操作。
首先,在绘制处理单元114中操作的多个绘制处理单元中的各个绘制处理单元中的读取处理单元(参见图4B及图5)获取由CPU 108设定为绘制处理单元114的内部寄存器中的绘制处理设定信息203的中间数据(DL)中的第一地址(S901)。
接下来,绘制处理单元114从内部寄存器中获取由CPU 108在S604中设定的带高度(S902)。
接下来,绘制处理单元114中的多个绘制处理单元中的各个绘制处理单元从内部寄存器中获取绘制处理单元114内用于按带执行绘制处理的并行操作的数量及其ID(S903)。例如,图4B所例示的绘制处理单元114中的第一绘制处理单元401可以获取作为并行操作的数量的“2”以及作为其ID的“1”。第二绘制处理单元402可以获取作为并行操作的数量的“2”以及作为其ID的“2”。
对从中间数据(DL)中所包含的第一带至最后带的带中的各个带反复进行从S904至S909的处理。作为当前处理目标的带称作带。
绘制处理单元114中的多个绘制处理单元中的各个绘制处理单元从中间数据(DL)获取带区域中所包含的绘制对象(S904)。根据本示例性实施例,绘制处理单元401及绘制处理单元402中的各个通过从在S901中所获取的第一地址至最后地址按页顺序地访问中间数据(DL)来获取绘制对象。图12A例示了根据本示例性实施例的中间数据(DL)的概要。换言之,各个页中的中间数据(DL)202由CPU 108生成,按照从第一带至最后带的顺序存储有各个具有关于要绘制它的位置的信息(X坐标及Y坐标)的绘制对象。因此,通过从中间数据(DL)的开头起检查绘制对象的坐标(Y坐标),可以容易地获取带的X坐标及Y坐标的范围内所包含的绘制对象。
接下来,绘制处理单元114中的多个绘制处理单元中的各个绘制处理单元判断带是否与在S903中所获取的ID相对应(S905)。例如,判断可以包括判断通过将从第一带起的带的位置除以并行操作的数量而获取的余数的值是否与ID编号相匹配。判断方法并不限于此,本质上要求该判断用以判断绘制处理单元是否通过其自身来对带进行绘制处理。
例如,因为第一绘制处理单元401的ID是1,所以图4B所例示的第一绘制处理单元401判断带11(按图3B所例示的顺序的第一带)是绘制目标。另一方面,因为第二绘制处理单元402的ID是2,所以图4B所例示的第二绘制处理单元402判断图3B所例示的带11不是绘制目标。
例如,因为第一绘制处理单元401的ID是1,所以图4B所例示的第一绘制处理单元401判断带12(按图3B所例示的顺序的第二带)不是绘制目标。另一方面,因为第二绘制处理单元402的ID是2,所以图4B所例示的第二绘制处理单元402判断图3B所例示的带12是绘制目标。
如果在S905中判断为绘制目标(是),则处理移动到S906。如果在S905中不是(否),则处理移动到S908。
接下来,在S906中,绘制处理单元114中的多个绘制处理单元中的各个绘制处理单元判断块RAM 115是否有任何空的区域可用。对于是否有任何空的区域可用的这个判断是基于来自块RAM 115的通知而进行的。在S906中,如果不是(否),则绘制处理单元等待,直到有空的区域变得可用为止。如果是这样(是),则处理移动到S907。下面将参照图10A至图10E来描述对于是否有任何空的区域可用的判断(或者由压缩处理单元116进行的对光栅数据从块RAM 115的读取与通过绘制处理单元对光栅数据到块RAM 115的写入之间的关系)。
在S907中,绘制处理单元114中的多个绘制处理单元中的各个绘制处理单元从显示列表上的信息中获取带区域中所包含的绘制对象的轮廓与当前扫描线(Y坐标)之间的交叉点的坐标(X坐标)。绘制处理单元基于所获取的位置信息来绘制包含绘制对象的当前扫描线。通过反复地生成光栅数据并且将所生成的光栅数据输出(写入)到块RAM 115中的空的区域来实现该绘制。绘制处理单元获取绘制对象的轮廓在下一扫描线上的坐标(X坐标),并且按上述方式在该扫描线上进行绘制。下面将参照图10A至图10E来描述由多个绘制处理单元中的各个绘制处理单元对光栅数据到块RAM 115的写入与由压缩处理单元116对光栅数据从块RAM 115的读取之间的关系。
可以基于在当前扫描线上获取的绘制对象的轮廓的位置信息以及轮廓的梯度(针对扫描线(Y坐标)的各个前进的X坐标的移动量)来获取绘制对象的轮廓在下一扫描线上的坐标。
在S908中,另一方面,绘制处理单元114中的多个绘制处理单元中的各个绘制处理单元从显示列表上的信息中获取带区域中所包含的绘制对象的轮廓与扫描线(Y坐标)之间的交叉点的坐标(X坐标)。根据绘制对象的轮廓在紧接的前一扫描线上的位置信息及轮廓的梯度(针对扫描线(Y坐标)的各个前进的X坐标的移动量)来获取绘制对象的轮廓在下一扫描线的位置信息。绘制处理单元利用针对各个扫描线而新获取的坐标来顺序地更新绘制对象的轮廓的坐标。因为这种情况下的带不是针对绘制处理单元的绘制目标,所以绘制处理单元不进行绘制处理(或者不生成光栅数据)。
即使在绘制对象包含在作为绘制目标的下一带中的情况下,通过获取不是绘制目标的带中的绘制对象的坐标的更新也用于在正确的位置处绘制绘制对象。图12A及图12B中示例性地例示了这种情况。首先,扫描线各次前进时,第二绘制处理单元402将中间数据(DL)202中描述的三角形绘制对象4的左边的梯度ls4加到绘制对象的轮廓的坐标。因此,可以获取绘制对象4的左边的正确位置。接下来,第二绘制处理单元402获取绘制对象4的轮廓在不是绘制目标的带31的最终扫描线上的X坐标,以使得可以获取绘制对象4的轮廓的正确位置用于绘制带32的第一扫描线。
在S909中,绘制处理单元114中的多个绘制处理单元中的各个绘制处理单元判断存储在RAM 109中的中间数据(DL)是否包含作为绘制目标的下一带。如果是这样(是),则反复进行绘制处理。如果不是(否),则绘制处理结束。如果中间数据(DL)已读取到末尾(页的末尾),则确定不存在下一带。如果中间数据(DL)未读取到末尾,则判断存在下一带。
图10A至图10E例示了对按带写入及按块读取的访问控制。图10A例示了要按带并行地写入到包含在块RAM 115中的存储器(下文中,称作第一块RAM 411)的图像数据。图10B例示了要按块从块RAM 115读取的图像数据。
如图10A所例示的,绘制处理单元114中的第一绘制处理单元401将带11的光栅数据写入到第一块RAM 411。绘制处理单元114中的第二绘制处理单元402将带12的光栅数据写入到第一块RAM 411。这里,块RAM 115通过访问检测设备而检测到光栅数据被写入到了由图10A中的“检测到写入访问”表示的多个地址中的所有的地址。具体地说,块RAM 115检测到光栅数据被写入到了第一块RAM 411中的地址1011及地址1012。因为,根据本示例性实施例,按照扫描线的像素的顺序来将光栅数据写入到第一块RAM 411,所以可以通过检测对要对其写入各个带的光栅数据的最后地址的写入来判断各个带的绘制完成。
如果检测到对所有的地址的光栅数据的写入,则块RAM 115将通知准备好按块读取的信息,通知给压缩处理单元116。压缩处理单元116(第一压缩处理单元421)响应于该通知而开始从第一块RAM 411中按块(例如,各个是8像素×8像素)读取光栅数据。换言之,压缩处理单元116从块11至块14依次读取光栅数据,如图10B所例示的。响应于该读取,块RAM 115通过访问检测设备而检测到从图10B中表示为“检测到读取访问”的多个地址(像素位置)1011及1012读取了光栅数据。这是因为从第一块RAM 411中的地址1011及地址1012中对光栅数据的读取意味着读取了被划分成块的各个带的所有光栅数据。换言之,这是因为可以判断在第一块RAM 411中有空的区域可用。
在检测到从地址1011及地址1012二者对光栅数据的读取时,块RAM 115向绘制处理单元114中的多个绘制处理单元中的各个绘制处理单元通知描述在块RAM 115中有空的区域可用的信息。基于该通知,进行S906中的判断。换言之,响应于该通知,绘制处理单元114中的多个绘制处理单元中的各个绘制处理单元开始按带写入,如图10A所例示的。
如上所述,根据本示例性实施例,可以仅以硬件资源的最小扩展用于并行绘制处理来增加绘制处理的速度,而无需增加成本。换言之,在无需扩展块RAM 115中所包含的第一块RAM 411及压缩处理单元116中所包含的第一压缩处理单元421的硬件资源的情况下,使得能够进行绘制处理单元114中所包括的第一绘制处理单元401及第二绘制处理单元402的并行操作。
[第一变型示例]
图8是例示根据本示例性实施例的变型示例的对绘制处理的设定的流程图。因为图8是图7所例示的流程图的变型示例,所以将描述与图7中的流程图的不同之处,而将省略与图7中相同部分的描述。因为图8中的S801至S804中的处理与S701至S704中的处理相同,所以将省略描述。
接下来,在S805中CPU 108从内部寄存器中获取描述绘制处理单元114中并行地操作的绘制处理单元之间的性能规格差异(绘制处理能力的差异)的信息。CPU 108将该信息预先存储在内部寄存器中。本文中,术语“性能规格差异”例如是指第二绘制处理单元402的操作频率与第一绘制处理单元401的操作频率的比率。术语“性能规格差异”例如还是指第二绘制处理单元402中所包含的处理器核的数量或硬件模块核的数量与第一绘制处理单元401中所包含的处理器核的数量或硬件模块核的数量的比率。
接下来,在S806中CPU 108基于在S805中获取的性能规格差异比率来判断性能规格差异的存在/不存在。这里,如果性能规格差异比率是1:1从而判断不存在性能规格差异(S806中的“否”),则处理移动到S807,并且按照与图7中的S705至S706中相同的方式来执行S807至S808中的处理。
另一方面,例如,如果性能规格差异比率是3:1,从而判断存在性能规格差异(即,第一绘制处理单元401的绘制处理能力是第二绘制处理单元402的绘制处理能力的三倍)(S807中的“是”),则处理移动到S809。
在S809中,CPU 108基于描述并行地操作的绘制处理单元之间的性能规格差异的信息来将单个块的高度加权并分割。换言之,例如,如上所述,例如如果性能规格差异比率是3:1,从而判断存在性能规格差异,则根据性能规格差异比率而将单个块的高度加权并分割,如同图10C中的带11及带12。换言之,CPU 108确定针对绘制处理能力较高的绘制处理单元设定较高的带高度。例如,在单个块的高度等于8像素的情况下,对于分割,CPU 108可以针对第一绘制处理单元401而设定等于6像素的高度作为绘制区域的高度,并且针对第二绘制处理单元402而设定等于2像素的高度作为绘制区域的高度。
如上所述,根据本变型示例,鉴于绘制处理单元114中并行地操作的多个绘制处理单元之间的性能差异,为了并行操作的更高效率,可以以使得绘制处理单元114中并行地操作的多个绘制处理单元之间的绘制速度的差异最小化的方式来分割绘制区域。换言之,在按带并行地进行绘制处理的情况下,可以使由于基于第一绘制处理单元401及第二绘制处理单元402中较慢的一个的速率限制而导致的等待时间缩短。
[第二变型示例]
为了用并行操作的数量来均等地分割图10A所例示的单个块的高度,可以采用并行操作的数量的整数倍,如图10D或图10E所例示的。换言之,因为可以实现较小的带高度,所以可以实现较小的带单位。例如,在图10D所例示的情况下,用等于作为用于绘制8像素×8像素块单位的绘制处理单元的并行操作的数量的2的两倍的4来均等地分割高度。在这种情况下,进行控制,使得第一绘制处理单元401可以绘制带11和带13,并且第二绘制处理单元402可以绘制带12和带14。作为另一种选择,例如,在图10E中的情况下,用等于作为用于绘制8像素×8像素块单位的绘制处理单元的并行操作的数量的2的四倍的8来均等地分割高度。在这种情况下,进行控制,使得第一绘制处理单元401可以绘制带11、带13、带15和带17,并且第二绘制处理单元402可以绘制带12、带14、带16和带18。换言之,多个绘制处理单元沿高度方向依次反复地(交替地)生成带的光栅数据。
如上所述,根据本变型示例,为了并行操作的效率更高,以使得绘制处理单元114中并行地操作的多个绘制处理单元之间的计算量的差异最小化的方式来分割绘制区域。换言之,在按带并行地执行绘制处理的情况下,减小的带高度可以缓和各个带中所包含的对象的数量的变化。这可以实现由第一绘制处理单元401及第二绘制处理单元402进行的绘制处理中所涉及的计算量的均一,并且可以使由于基于第一绘制处理单元401及第二绘制处理单元402中较慢的一个的速率限制而导致的等待时间缩短。
[第三变型示例]
图11A至图11E例示了根据示例性实施例的第三变型示例而限定的一页内的块与带之间的关系的示例。如上所述,块是指作为图像形成装置内页单位中的图像数据的分割、并且例如具有32像素×32像素正方形瓦片形状的单位矩形区域。另一方面,带是指主扫描方向上的像素的数量比块的主扫描方向上的像素的数量多、而副扫描方向上的像素的数量比块的副扫描方向上的像素的数量少的矩形区域,例如,如图11B及图11D所例示的。这里,图11A所例示的关系是块包含在带中的位置关系。根据本变型示例,图11A、图11B及图11D中的关系可以根据针对图像形成装置的绘制处理设定而改变。图11A、图11B及图11D所例示的所有的带的宽度等于与打印数据相对应的页的宽度。
根据本发明,要绘制的带的带宽并不限于页的宽度,并且带宽可以小于页宽度。换言之,如图11C及图11E所例示的,这样的带单位可以按主扫描方向分割。在这种情况下,在块RAM 115中可以绘制按主扫描方向划分的带的多个左侧的带(如图11C及图11E所例示的),并且压缩处理单元116可以对多个左侧的带的光栅数据进行块分割。在块分割完成之后,可以在块RAM 115中绘制多个右侧的带,并且可以按相同的方式进行块分割。按这种方式,按主扫描方向分割要绘制的带单位可以进一步减少块RAM 115中所需的存储器容量。
其他实施例
还可以通过读出并执行记录在存储介质(也可以更完整地称为“非临时性计算机可读存储介质”)上的计算机可执行指令(例如,一个或更多个程序)以进行上述实施例中的一个或更多个实施例的功能、并且/或者包括用于进行上述实施例中的一个或更多个实施例的功能的一个或更多个电路(例如,专用集成电路(ASIC))的系统或装置的计算机,来实现本发明的实施例,并且,可以利用通过由所述系统或装置的所述计算机例如读出并执行来自所述存储介质的所述计算机可执行指令以进行上述实施例中的一个或更多个实施例的功能、并且/或者控制所述一个或更多个电路以进行上述实施例中的一个或更多个实施例的功能从而进行的方法,来实现本发明的实施例。所述计算机可以包括一个或更多个处理器(例如,中央处理单元(CPU)、微处理单元(MPU)),并且可以包括分开的计算机或分开的处理器的网络,以读出并执行所述计算机可执行指令。所述计算机可执行指令可以例如从网络或所述存储介质被提供给所述计算机。所述存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算系统的存储器、光盘(例如,压缩光盘(CD)、数字通用光盘(DVD)或蓝光光盘(BD)TM)、闪存设备及存储卡等中的一个或更多个。
虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明并不限于所公开的示例性实施例。应当对下列权利要求的范围给予最宽的解释,以使其涵盖所有这些变型例以及等同的结构和功能。
本申请要求于2014年9月29日提交的日本专利申请第2014-199178号的优先权,该申请的全部内容通过引用并入本文。