CN103809922B - 图像形成系统 - Google Patents
图像形成系统 Download PDFInfo
- Publication number
- CN103809922B CN103809922B CN201310401292.5A CN201310401292A CN103809922B CN 103809922 B CN103809922 B CN 103809922B CN 201310401292 A CN201310401292 A CN 201310401292A CN 103809922 B CN103809922 B CN 103809922B
- Authority
- CN
- China
- Prior art keywords
- lpage
- logical page
- cached
- page
- cache
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1245—Job translation or job parsing, e.g. page banding by conversion to intermediate or common format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
- G06F3/1215—Improving printing performance achieving increased printing speed, i.e. reducing the time between printing start and printing end
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1247—Job translation or job parsing, e.g. page banding by conversion to printer ready format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
- G06F3/1288—Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1297—Printer code translation, conversion, emulation, compression; Configuration of printer parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Record Information Processing For Printing (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
包含确定单元和控制器的图像形成系统。确定单元确定硬件计算资源量,以确定能实现的解释单元的数量。控制器执行控制,以确定使第一印刷数据处理装置或第二印刷数据处理装置进行操作。第一印刷数据处理装置包含:两个或更多第一逻辑页面解释单元,其并行地解释印刷数据中的不同逻辑页面,并输出解释结果;以及一个高速缓存解释单元,其对印刷数据中的每个逻辑页面包含的将要缓存的元素进行解释,将解释结果存储在高速缓存单元中。第二印刷数据处理装置包含第二逻辑页面解释单元,其对印刷数据的每个逻辑页面进行解释,并输出解释结果。将获得的解释结果提供给印刷图像数据生成装置,以对解释结果进行处理,生成各逻辑页面的印刷图像数据。
Description
技术领域
本发明涉及图像形成系统。
背景技术
一般来说,从个人计算机发送到印刷机的印刷文档数据以诸如PostScript(注册商标)或可移植数据格式(PDF)(ISO 32000-1)之类的页面描述语言(PDL)书写。在印刷机中,通过使用被称为光栅图像处理器(RIP)的数据处理装置来将印刷文档数据转换为位图(也被称为光栅)图像数据,并且通过印刷引擎来印刷该图像数据。除了将PDL数据直接转换为光栅图像的类型的印刷机之外,还存在执行两步转换的可利用的印刷机,其中,将PDL数据转换为比PDL命令具有更细粒度的中间语言数据(例如显示列表),并且中间语言数据被缓冲并被转换为位图格式。
在相关技术的其他系统中,通过多个并行的数据处理装置,以预定单位(例如页)来执行PDL数据到位图或中间语言图像数据的转换。
此外,在相关技术中,特定数据处理装置将印刷数据中的PDL文档元素(对象)转换为位图格式或中间语言格式,并且将得到的数据与识别该文档元素的信息关联地存储在高速缓冲存储器中,从而,当同一数据处理装置或不同的数据处理装置稍后转换相同的文档元素时,该数据处理装置可以使用缓存的数据,以省略转换处理。
日本未审查专利申请公开No.2011-70337公开了一种系统,其中,通过多个解释单元按页并行地将PDL数据转换为中间数据。每个解释单元所生成的每页中间数据被后端装置转换为光栅图像数据,并被提供给印刷机。日本未审查专利申请公开No.2011-70337还公开了一种系统配置,其中,对窗体(form)(在多页中重复使用的图像元素)的图像数据进行缓存,针对曾经缓存的窗体循环再利用缓存的图像数据。在所公开的系统中,当将一个逻辑页的PDL数据转换为中间数据时,每个解释单元还生成包含于该页中的窗体的中间数据。
日本未审查专利申请公开No.2011-67993公开了一种设备,其中多个RIP处理单元按页并行地执行RIP处理。所公开的设备包含高速缓冲存储器。每个RIP处理单元所生成的窗体的光栅图像数据被保存在高速缓冲存储器中供再利用。所公开的设备包含RIP处理确定单元,其执行控制以防止相同窗体的RIP处理的冗余执行。RIP处理确定单元确定分配给每个RIP处理单元的页面数据是否包含窗体数据。如果包含窗体数据,则RIP处理确定单元基于窗体ID来确定该窗体数据是否与任意RIP处理单元事先已对其执行了RIP处理的窗体数据或另一RIP处理单元当前正对其执行RIP处理的窗体数据相匹配。如果该窗体数据不与它们中的任意一项相匹配,则RIP处理确定单元存储该窗体数据的窗体ID,并指示将对该页面数据执行RIP处理的RIP处理单元将该窗体数据的光栅图像数据存储在高速缓冲存储器中。如果该窗体数据与任意RIP处理单元事先已对其执行了RIP处理的窗体数据相匹配,则RIP处理确定单元指示将对该页面数据执行RIP处理的RIP处理单元对图像数据而非该窗体数据执行RIP处理,以获取并使用存储在高速缓冲存储器中的该窗体数据的光栅图像数据。如果该窗体数据与另一RIP处理单元当前正对其执行RIP处理的窗体数据相匹配,则RIP处理确定单元指示将对该页面数据执行RIP处理的RIP处理单元对图像数据而非该窗体数据执行RIP处理,以等待另一RIP处理单元正执行的RIP处理的完成。另一RIP处理单元正执行的RIP处理完成之后,RIP处理确定单元指示将对该页面数据执行RIP处理的RIP处理单元获取并使用存储在高速缓冲存储器中的该窗体数据的光栅图像数据。
日本未审查专利申请公开No.2000-335022和日本未审查专利申请公开No.10-97396也是相关技术的示例。
发明内容
因此,本发明的目的是提供一种图像形成系统,其中,将印刷数据处理装置配置为,即使印刷数据处理装置中包含的并行操作的多个解释单元不检查将要解释的将被缓存的元素的解释结果是否存在于共享的高速缓存单元中而执行处理,也能防止将被缓存的相同元素的冗余解释,以及其中,还将印刷数据处理装置配置为,即使构成印刷数据处理装置的硬件计算资源量不足以执行多个解释单元,也能正确地操作。
根据本发明的第一方面,提供一种包含确定单元和控制器的图像形成系统。确定单元确定硬件计算资源量,以确定所确定的硬件计算资源量能够实现的解释单元的数量。控制器执行控制,以根据确定单元所确定的数量来确定使第一印刷数据处理装置和第二印刷数据处理装置中的哪个印刷数据处理装置进行操作。第一印刷数据处理装置包含两个或更多第一逻辑页面解释单元、以及一个高速缓存解释单元。两个或更多第一逻辑页面解释单元并行地解释印刷数据中的不同逻辑页面,并输出解释结果。高速缓存解释单元对印刷数据中的每个逻辑页面所包含的将要缓存的元素进行解释,并将解释结果存储在高速缓存单元中。一旦从印刷数据中检测到其解释结果还没有存储于高速缓存单元中的将要缓存的元素,则高速缓存解释单元解释所检测到的将要缓存的元素,并将该解释结果与根据预定生成规则从将要缓存的元素的数据生成的缓存识别信息关联地存储在高速缓存单元中。两个或更多第一逻辑页面解释单元中的每一个针对正被处理的逻辑页面中所包含的将要缓存的元素,生成包含根据生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,而不是解释将要缓存的元素,并且将所生成的缓存参照命令并入该逻辑页面的解释结果中,作为将要缓存的元素的解释结果。第二印刷数据处理装置包含第二逻辑页面解释单元。第二逻辑页面解释单元对印刷数据的每个逻辑页面进行解释,并输出解释结果。第二逻辑页面解释单元针对逻辑页面中其解释结果还没有存储在高速缓存单元中的将要缓存的元素,解释该将要缓存的元素,并将解释结果与根据生成规则从将要缓存的元素的数据生成的缓存识别信息关联地存储在高速缓存单元中。第二逻辑页面解释单元针对逻辑页面中其解释结果已存储在高速缓存单元中的将要缓存的元素,生成包含根据生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,而不是解释将要缓存的元素,并且将所生成的缓存参照命令并入该逻辑页面的解释结果中,作为将要缓存的元素的解释结果。第一印刷数据处理装置和第二印刷数据处理装置将通过第一逻辑页面解释单元或第二逻辑页面解释单元获得的印刷数据的各逻辑页面的解释结果提供给印刷图像数据生成装置。印刷图像数据生成装置是这样的装置,其对从第一印刷数据处理装置或第二印刷数据处理装置提供的各逻辑页面的解释结果进行处理,以生成各逻辑页面的印刷图像数据。一旦在逻辑页面的解释结果中检测到缓存参照命令,印刷图像数据生成装置就从高速缓存单元获取与该缓存参照命令中所包含的缓存识别信息相对应的解释结果,使用所获取的解释结果来生成与该缓存识别信息相对应的将要缓存的元素的印刷图像数据,并且将该印刷图像数据与逻辑页面的印刷图像数据组合。
根据本发明的第二方面,如果确定单元所确定的数量大于或等于1并且小于N(N为大于1的预定整数),则控制器使第二印刷数据处理装置进行操作,以及,如果确定单元所确定的数量大于或等于N,则控制器使第一印刷数据处理装置进行操作。
根据本发明的第三方面,控制器执行控制以根据确定单元的确定结果来确定使第一印刷数据处理装置、第二印刷数据处理装置、和第三印刷数据处理装置中的哪个印刷数据处理装置进行操作。第三印刷数据处理装置包含两个或更多第三逻辑页面解释单元。两个或更多第三逻辑页面解释单元并行地对印刷数据中的不同逻辑页面进行解释,并输出解释结果。在正被处理的逻辑页面包含将要缓存的元素的情况下,两个或更多第三逻辑页面解释单元还对将要缓存的元素进行解释,并且将解释结果并入该逻辑页面的解释结果中。如果确定单元所确定的数量等于1,则控制器使第二印刷数据处理装置进行操作,以及,如果确定单元所确定的数量大于或等于2并且小于N,则控制器使第三印刷数据处理装置进行操作。
根据本发明的第四方面,两个或更多第一逻辑页面解释单元中的每一个具有第一操作模式和第二操作模式。在第一操作模式中,两个或更多第一逻辑页面解释单元中的每一个针对正被处理的逻辑页面中所包含的将要缓存的元素,生成包含根据生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,而不是解释将要缓存的元素,并且将所生成的缓存参照命令并入该逻辑页面的解释结果中,作为将要缓存的元素的解释结果。在第二操作模式中,两个或更多第一逻辑页面解释单元中的每一个针对正被处理的逻辑页面中所包含的将要缓存的元素,执行询问通信,以询问将要缓存的元素的解释结果是否已存储在高速缓存单元中。在将要缓存的元素的解释结果已存储在高速缓存单元中被确定为询问通信的结果的情况下,两个或更多第一逻辑页面解释单元中的每一个生成包含根据生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,并且将所生成的缓存参照命令并入逻辑页面的解释结果中,作为将要缓存的元素的解释结果。在将要缓存的元素的解释结果还没有被存储在高速缓存单元中被确定为询问通信的结果的情况下,两个或更多第一逻辑页面解释单元中的每一个解释该将要缓存的元素,并且将解释结果并入逻辑页面的解释结果中。图像形成系统还包含模式控制器,其执行控制以在第一操作模式和第二操作模式之间切换两个或更多第一逻辑页面解释单元的操作模式。
根据本发明的第五方面,模式控制器使两个或更多第一逻辑页面解释单元在第二操作模式中进行操作,直到两个或更多第一逻辑页面解释单元完成印刷数据中预定数量的初始页面的解释为止,并且,在两个或更多第一逻辑页面解释单元完成印刷数据中预定数量的初始页面的解释时,模式控制器将两个或更多第一逻辑页面解释单元的操作模式切换为第一操作模式。
根据本发明的第六方面,模式控制器监视高速缓存单元的可用容量,并且在高速缓存单元的可用容量低于预定阈值同时两个或更多第一逻辑页面解释单元正在第一模式中进行操作的情况下,模式控制器将两个或更多第一逻辑页面解释单元的操作模式切换为第二操作模式。
根据本发明的第七方面,图像形成系统还包含批删除单元。批删除单元根据两个或更多第一逻辑页面解释单元所执行的询问通信来监视高速缓存单元的命中率以及高速缓存单元中所存储的将要缓存的每个元素的中间数据的使用状态。高速缓存单元的命中率表示高速缓存单元中所存储的将要缓存的元素的解释结果与关于询问通信的将要缓存的元素的解释结果之比。在命中率低于预定阈值同时两个或更多第一逻辑页面解释单元正在第二操作模式中进行操作的情况下,批删除单元根据使用状态来指定其中间数据的近期使用频率低于预定阈值的将要缓存的元素组,并且从高速缓存单元中成批地删除所指定的将要缓存的元素组的中间数据。
根据本发明的第八方面,模式控制器根据批删除单元所执行的删除将两个或更多第一逻辑页面解释单元的操作模式从第二操作模式切换为第一操作模式。
根据本发明的第九方面,提供一种包含确定单元和控制器的图像形成系统。确定单元确定硬件计算资源量,以确定所确定的硬件计算资源量能够实现的解释单元的数量。控制器执行控制以根据确定单元所确定的数量来确定使第一印刷数据处理装置和第二印刷数据处理装置中的哪个印刷数据处理装置进行操作。第一印刷数据处理装置包含两个或更多第一逻辑页面解释单元、以及一个高速缓存解释单元。两个或更多第一逻辑页面解释单元并行地解释印刷数据中不同的逻辑页面,并且输出解释结果。高速缓存解释单元对印刷数据中的每个逻辑页面中所包含的将要缓存的元素进行解释,并且将解释结果存储在高速缓存单元中。一旦从印刷数据中检测到其解释结果还没有存储在高速缓存单元中的将要缓存的元素,则高速缓存解释单元对所检测到的将要缓存的元素进行解释,并且将解释结果与根据预定生成规则从将要缓存的元素的数据生成的缓存识别信息关联地存储在高速缓存单元中。两个或更多第一逻辑页面解释单元中的每一个针对正被处理的逻辑页面中所包含的将要缓存的元素,生成包含根据生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,而不是解释将要缓存的元素,并且将所生成的缓存参照命令并入逻辑页面的解释结果中,作为将要缓存的元素的解释结果。第二印刷数据处理装置包含两个或更多第二逻辑页面解释单元。两个或更多第二逻辑页面解释单元并行地对印刷数据中不同的逻辑页面进行解释,并输出解释结果。在正被处理的逻辑页面包含将要缓存的元素的情况下,两个或更多第二逻辑页面解释单元还解释该将要缓存的元素,并且将解释结果并入逻辑页面的解释结果中。第一印刷数据处理装置和第二印刷数据处理装置将通过第一逻辑页面解释单元或第二逻辑页面解释单元获得的印刷数据的各逻辑页面的解释结果提供给印刷图像数据生成装置。印刷图像数据生成装置是这样的装置,其对从第一印刷数据处理装置或第二印刷数据处理装置提供的各逻辑页面的解释结果进行处理,以生成各逻辑页面的印刷图像数据。一旦在逻辑页面的解释结果中检测到缓存参照命令,印刷图像数据生成装置就从高速缓存单元获取与该缓存参照命令中所包含的缓存识别信息相对应的解释结果,使用所获取的解释结果来生成与该缓存识别信息相对应的将要缓存的元素的印刷图像数据,并且将该印刷图像数据与逻辑页面的印刷图像数据组合。
根据本发明的第十方面,如果确定单元所确定的数量小于N(N为大于1的预定整数),则控制器使第二印刷数据处理装置进行操作,以及,如果确定单元所确定的数量大于或等于N,则控制器使第一印刷数据处理装置进行操作。
根据本发明的第一方面,印刷数据处理装置可以被配置为,即使包含于印刷数据处理装置中的且并行地操作的多个解释单元不检查将要解释的将要缓存的元素的解释结果是否存在于共享的高速缓存单元中而执行处理,也能够防止对将要缓存的相同元素的冗余解释。印刷数据处理装置还可以被配置为,即使构成印刷数据处理装置的硬件计算资源量不足以执行多个解释单元,也能够正确地操作。
根据本发明的第二方面,可以使得第二印刷数据处理装置进行操作,以解决硬件计算资源量不足以执行多个解释单元的问题。
根据本发明的第三方面,可以使第三印刷数据处理装置进行操作,以通过使逻辑页面解释单元利用硬件计算资源进行操作而不是通过将硬件计算资源分配给高速缓存解释单元来实现更高速的处理。
根据本发明的第四方面,在使第一印刷数据处理装置进行操作的情况下,即使第一逻辑页面解释单元以低处理效率来进行操作(在第一操作模式中),也可以使用第二操作模式。
根据本发明的第五方面,在使第一印刷数据处理装置进行操作的情况下,可以使用第二操作模式来改进在第一操作模式中印刷作业的初始页面组的低处理效率。可以在对初始页面组进行处理之后将操作模式切换为第一操作模式,从而提高处理速度。
根据本发明的第六方面,在使第一印刷数据处理装置进行操作的情况下,即使在高速缓存单元的可用容量小时删除了高速缓存单元中存在的数据,也可以精确地解释并渲染每个逻辑页面。
根据本发明的第七方面,在使第一印刷数据处理装置进行操作的情况下,在高速缓存单元的命中率低时,成批地删除高速缓存单元中使用频率较小的将要缓存的元素的中间数据,以便于将使用频率较高的将要缓存的元素的中间数据存储在高速缓存单元中。
根据本发明的第八方面,在使第一印刷数据处理装置进行操作的情况下,在成批地删除高速缓存单元中使用频率较小的将要缓存的元素的中间数据以增大高速缓存单元的可用容量时,可以通过将操作模式切换为第一操作模式来提高处理速度。
根据本发明的第九方面,印刷数据处理装置可以被配置为,即使包含于印刷数据处理装置中的并且并行地操作的多个解释单元不检查将要解释的将要缓存的元素的解释结果是否存在于共享的高速缓存单元中而执行处理,也能够防止对将要缓存的相同元素的冗余解释。印刷数据处理装置还可以被配置为,如果构成印刷数据处理装置的硬件计算资源由于提供高速缓存解释单元而处理速度降低,则能够不使用高速缓存单元而正确地操作。
根据本发明的第十方面,如果提供高速缓存解释单元,则在硬件计算资源量足够以两个或更多第一逻辑页面解释单元所执行的并行处理来实现足够的处理速度的情况下,可以使第一印刷数据处理装置进行操作。另外,可以使第三印刷数据处理装置进行操作,以通过使逻辑页面解释单元利用硬件计算资源进行操作而不是通过将硬件计算资源分配给高速缓存解释单元来实现较高速的处理。
附图说明
将基于以下附图来详细地描述本发明的示例实施例,附图中:
图1是示出图像处理系统的配置示例的框图;
图2是示出印刷控制器的内部配置示例的框图;
图3是示出根据示例实施例的印刷控制器的第一配置的框图;
图4示出了逻辑页面解释器和窗体解释器的整个处理过程的示例;
图5示出了逻辑页面解释器(类型1)的按命令的处理过程的示例;
图6示出了窗体解释器的按命令的处理过程的示例;
图7示出了渲染器的整个处理过程的示例;
图8示出了渲染器的按命令的渲染处理过程的示例;
图9是示出根据示例实施例的印刷控制器的第二配置的框图;
图10示出了逻辑页面解释器(类型2)的按命令的处理过程的示例;
图11示出了根据示例实施例的解释系统的配置处理的处理过程示例;
图12是示出根据第一示例修改例的印刷控制器的第三配置的框图;
图13示出了逻辑页面解释器(类型3)的按命令的处理过程的示例;
图14示出了根据第一示例修改例的解释系统的配置处理的处理过程示例;
图15是示出根据第二示例修改例的具有第一配置的印刷控制器的内部配置示例的框图;
图16是示出根据第二示例修改例的高速缓存管理单元的内部配置示例的框图;
图17示出了高速缓存表中的数据内容的示例;
图18示出了操作模式的切换控制的过程示例;
图19示出了操作模式的切换控制的另一过程示例;
图20示出了操作模式的切换控制的另一过程示例;
图21示出了操作模式的切换控制的另一过程示例;
图22示出了高速缓存表中的数据内容的另一示例;
图23示出了根据第二示例修改例的第一配置中的窗体解释器的整个处理过程的示例;
图24示出了根据第二示例修改例的第一配置中的页面同步处理的过程示例;
图25示出了根据第二示例修改例的逻辑页面解释器(类型1)的按命令的处理过程的示例;以及
图26示出了根据第二示例修改例的第一配置中的窗体解释器的按命令的处理过程的示例。
具体实施方式
系统的硬件配置
图1是示出图像处理系统的配置示例的框图。根据本发明的以下示例实施例的示例的图像处理系统可以具有图1中示例所示的配置。图1所示示例中的系统包含终端装置10、印刷控制器20、和印刷机50。印刷控制器20包含前端装置30和后端装置40。终端装置10经由通信单元60连接至前端装置30,并根据用户指令将包含文档印刷指令的印刷作业发送到前端装置30。前端装置30经由通信单元62连接至后端装置40,并且后端装置40经由通信单元64连接至印刷机50。
通信单元60、62和64可以为诸如局域网(LAN)之类的网络。通信单元60、62和64可以为共同的通信单元或不同的通信单元。例如,连接终端装置10和前端装置30的通信单元60可以为LAN,而连接前端装置30和后端装置40的通信单元62、以及连接后端装置40和印刷机50的通信单元64可以为不同于LAN的专用通信单元。
在图1所示示例中的系统中,从终端装置10发送的印刷作业被前端装置30进行处理,作为处理结果而获得的数据被传递到后端装置40。后端装置40生成渲染数据(也被称为“光栅数据”),以及印刷机50根据所生成的渲染数据执行印刷。
在图1所示的示例中,终端装置10、前端装置30、和后端装置40可以通过例如通用计算机来实现。计算机具有诸如中央处理单元(CPU)、存储器(主存储器)、各种输入/输出(I/O)接口、和通信接口之类的各硬件组件经由总线连接的电路配置。计算机经由通信接口与其他装置交换数据。包含键盘和鼠标的输入装置、以及诸如阴极射线管(CRT)或液晶显示器之类的显示器经由例如I/O接口进一步连接至总线。用于读取硬盘驱动器(HDD)以及诸如压缩盘(CD)、数字通用盘(DVD)、和闪速存储器之类的与各种标准兼容的便携式非易失性记录介质的盘驱动器经由I/O接口进一步连接至总线。这种驱动器相对于存储器来说作为外部存储器。描述以下示例实施例中的处理内容的程序经由诸如CD或DVD之类的记录介质或经由网络存储在永久存储器中,并且被安装至计算机中。永久存储器中所存储的程序被读入存储器中,并被CPU执行,从而允许以下示例实施例中的处理被执行。
在以下示例实施例的示例中,后端装置40的一些功能可以通过硬件处理实现而不是通过响应于程序的执行的软件处理实现。可以使用例如在处理的执行期间能够动态地重配置电路的处理器(被称为动态可重配置的处理器,DRP)来执行硬件处理。作为替换,可以使用诸如专用集成电路(ASIC)之类的电路来执行硬件处理。例如,诸如DRP或ASIC之类的执行后端装置40的一些功能的硬件元件可以被事先配置,并且可以被连接到通用计算机的总线,从而实现后端装置40。
作为硬件实现前端装置30和后端装置40的具体示例,可以使用在单个外壳中包含各自用作服务器的多个信息处理装置的刀片(blade)服务器。刀片服务器是这样的服务器装置,其中在一个外壳中包含多个底板(或刀片),每个底板上安装有包含CPU和存储器的通用计算机。例如,包含于刀片服务器中的一个刀片可以用作前端装置30,而另一个刀片可以用作后端装置40。作为替换,例如,前端装置30和后端装置40中的每一个可以通过包含于刀片服务器中的多个刀片来实现。
印刷机50是在诸如纸张之类的介质上执行印刷的装置,其可以为例如连续进给印刷机。作为示例,将在印刷机50为连续进给印刷机的情况下描述以下示例实施例的示例。印刷机50可以被配置为执行电子照相印刷、喷墨印刷、或使用任何其他类型的印刷引擎进行的印刷。
示例实施例
图2示出了根据示例实施例的印刷控制器20的前端装置30和后端装置40的基本功能配置的示例。前端装置30包含印刷作业接收器32、页面分配器34、和多个解释器36。后端装置40包含中间数据缓冲器42、渲染器44、和输出缓冲器46。
前端装置30的印刷作业接收器32从终端装置10接收印刷作业。在以下示例中,印刷作业包含印刷文档的指令、以及以页面描述语言书写的将要印刷的文档的数据。页面描述语言(PDL)是用于使信息处理装置执行诸如显示处理和印刷处理之类的处理的计算机编程语言。页面描述语言的示例包括PostScript(注册商标)和可移植文档格式(PDF)。以页面描述语言书写的数据包含将要印刷的文档中所包含的诸如文本、图形、和图像(位图图像)之类的对象相关的位置信息、格式信息、颜色信息等。在以下的描述中,将以页面描述语言书写的将要印刷的文档的数据称为“PDL数据”。印刷作业接收器32将接收到的印刷作业中所包含的PDL数据传递到页面分配器34。
页面分配器34确定从印刷作业接收器32获取的PDL数据中所包含的哪些页面将被处理,以及通过哪个解释器36对其进行处理。这里所使用的术语“页面”是指PDL数据中指定的页面,即,逻辑页面。根据印刷设置,将一个或多个逻辑页面印刷在纸张的一侧上或一个物理页面上。在以下的描述中,除非另外说明,否则,如从上下文来看显然的那样,术语“页面”是指逻辑页面。
页面分配器34根据解释器36的操作状态为每个解释器36分配页面。页面分配器34给例如不正在执行处理的解释器36或正以比其他解释器36的负荷低的负荷执行处理的解释器36赋予高优先权,并且从PDL数据中的第一页开始按顺序将页面分配给解释器36。页面分配器36向每个解释器36通知所分配的页面,还将从印刷作业接收器32获取的PDL数据传递到解释器36。在所示的示例中,不仅将PDL数据中所分配的页面传递给解释器36,还将整个PDL数据传递给解释器36。在该示例中,例如,使用页面相关的PDL(即,页面图像的生成取决于该页面之前的PDL数据的解释结果的类型的PDL)。在另一示例中,可以使用独立于页面的PDL(页面图像的准确生成仅使用各页面的PDL数据的类型的PDL)。该情况下,页面分配器34可以向每个解释器36分配PDL数据的页,并且根据分配将已按页分割的PDL数据传递给相应的解释器36。
每个解释器36对从页面分配器34获取的PDL数据进行解释,并且针对页面分配器34通知的所分配的页面来生成和输出包含用于生成渲染数据的过程相关的指令的中间数据。
更具体地,每个解释器36对PDL数据进行解释,并且针对所分配的页面生成中间数据。中间数据是在数据被最终转换为将要输出到印刷机50的数据之前的阶段中所获得的数据。中间数据的示例包括显示列表和分段数据格式(参见例如本申请的申请人所提交的日本未审查专利申请公开No.2011-150535)。这里,每个解释器36可以生成针对印刷机50执行的印刷中所使用的每个原色(例如,黄色(Y)、品红(M)、青色(C)、和黑色(B)四种颜色)分割的中间数据。但是,这仅仅是示例。
针对作为形成将要印刷的文档的元素的每个对象,中间数据包含用于对文档的印刷图像中的对象进行渲染的过程相关的渲染指令。渲染指令可以以这样的语言进行书写,即,与页面描述语言相比,该语言允许表达更详细的过程。例如,如果以页面描述语言来定义表示印刷图像中特定对象的位置、形状和尺寸的信息,则中间数据中用于该对象的渲染指令可以为以印刷图像中的扫描线为单位来书写用于渲染该对象的过程的指令。下述后端装置40根据中间数据来生成将要输出到印刷机50的渲染数据。
以下是分段数据格式(也被称为“运行列表(run list)”格式)中所使用的命令的示例。
(1)线,ym,x1,xr,c
在y轴坐标ym处的扫描线中,从x轴坐标x1到x轴坐标xr-1以灰度c执行渲染。
(2)复制
以与之前渲染扫描线的方式相同的方式(x坐标,灰度)来执行渲染。
(3)窗口,x1,xr
从x轴坐标x1到x轴坐标xr-1,以与之前渲染扫描线的灰度相同的灰度执行渲染。
特定页面的中间数据可以被看作用于渲染形成页面的每个对象的过程相关的一组指令。表示页面的中间数据的量小于包含页面中所包含的像素值的光栅数据的量。
分段数据格式仅仅是中间数据格式的示例。该示例实施例可以应用于将要使用的任意中间数据格式。在后端装置通过执行硬件处理来生成渲染数据的情况下,可以使用表示使得能够利用硬件处理生成渲染数据的渲染过程的任意中间数据格式,也可以使用与上述作为示例给出的分段数据格式不同的格式。
每个解释器36所生成的中间数据被输出到后端装置40。所输出的中间数据被写入后端装置40的中间数据缓冲器42中。渲染器44读取中间数据缓冲器42中所存储的每个页面的中间数据,并根据所读取的页面的中间数据来生成渲染数据(光栅数据)。所生成的各页面的渲染数据被存储在输出缓冲器46中,并且随后被印刷机50读取。印刷机50在纸张上对从输出缓冲器46读取的各页面的渲染数据进行印刷。
接下来,将参照图3来描述根据该示例实施例的印刷控制器20的配置示例(被称为“第一配置”)。
在图2中作为示例示出的配置中,前端装置30包含多个解释器36,多个解释器36并行地执行用于对所分配的页面进行解释并生成中间数据的处理。在图3中作为示例示出的第一配置中,前端装置30中的解释系统35包含两个逻辑页面解释器36-pa1和36-pa2(下文中,除非对其进行单独区分,否则将其统称为“逻辑页面解释器36-pa”)、以及一个窗体解释器36-f,其中,每个逻辑页面解释器36-pa被配置为生成页面(逻辑页面)的中间数据,窗体解释器36-f被配置为针对窗体生成中间数据。逻辑页面解释器36-pa1和36-pa2类似于图2中所示的解释器36。尽管图3中所示的示例使用了两个逻辑页面解释器36-pa,但是可以使用多于两个的逻辑页面解释器36-pa。
术语“窗体”是指期望在多页中重复使用的图像。窗体包含一个或多个对象。在PDL数据中,窗体通常被分配有唯一地识别PDL数据中的窗体的识别信息(被称为“窗体ID”)。如果PDL数据包含指定相同窗体ID的各命令,则各命令表示使用相同窗体的图像。
在第一配置中,对所生成的窗体的中间数据进行缓存和再利用的机构(窗体高速缓存器48)可以防止多次生成相同窗体的中间数据而使得中间数据的生成效率低下。窗体高速缓存器48是用于对将要缓存的窗体的中间数据进行临时存储的高速缓存器。
逻辑页面解释器36-pa1和36-pa2中的每一个生成页面分配器34为其分配的页面的PDL数据的中间数据。在一个示例中,每个逻辑页面解释器36-pa对分配页面中的一组对象而不是窗体进行处理。针对页面中所包含的窗体,通过用于参照对窗体高速缓存器48中所缓存的窗体的中间数据进行识别的识别信息(被称为“缓存ID”)的中间数据命令来代替形成该窗体的一组PDL命令(对象)的中间数据。逻辑页面解释器36-pa所生成的各页面的中间数据被发送至后端装置40的中间数据缓冲器42。
窗体解释器36-f对PDL数据中窗体的一组PDL命令进行解释,并生成表示该窗体的中间数据。窗体解释器36-f将所生成的窗体的中间数据登记在后端装置40的窗体高速缓存器48中。窗体解释器36-f将至少在该印刷作业中为唯一的缓存ID分配给表示将要登记在窗体高速缓存器48中的窗体的中间数据,并且将该中间数据与该缓存ID关联地登记在窗体高速缓存器48中。
逻辑页面解释器36-pa仅对印刷作业的PDL数据中的分配页面进行处理(即,对这些页面进行解释并生成中间数据),而窗体解释器36-f对印刷作业的PDL数据中的所有页面进行处理。注意,窗体解释器36-f仅对页面中的窗体进行处理,而不对窗体中不包含的一般对象进行处理。
逻辑页面解释器36-pa1和36-pa2以及窗体解释器36-f通常被实现为在CPU上执行的处理。例如,在包含多核CPU的系统配置中,可以将单个核配置为执行单个解释器36的处理。
高速缓存管理单元38保存针对在窗体高速缓存器48中保存的缓存数据(即,窗体的中间数据)的管理信息。高速缓存管理单元38针对每个缓存数据存储一个缓存ID和表示该缓存数据在窗体高速缓存器48的存储空间中的存储位置的信息(例如,起始地址和数据大小的组合)。在对PDL数据中的窗体进行处理时,窗体解释器36-f参照高速缓存管理单元38,并确定该窗体的缓存数据是否已登记在窗体高速缓存器48中。如果已登记了该窗体的缓存数据,则窗体解释器36-f不生成该窗体的缓存数据。仅当还没有登记该窗体的缓存数据时,窗体解释器36-f才生成该缓存数据。
解释器启动数量确定单元37和配置控制器39是用于控制前端装置30的功能配置(具体地为对印刷数据进行解释的解释系统35的内部配置)的功能模块。解释器启动数量确定单元37和配置控制器39确定图3所示的包含三个解释器36(两个逻辑页面解释器36-pa和一个窗体解释器36-f)的解释系统35是否能够在包含前端装置30的计算机(例如,刀片服务器上的一个或多个刀片)上执行。该确定被执行为例如用于启动计算机上的前端装置30的系统配置处理的部分。该确定基于解释器启动数量确定单元37针对计算机上前端装置30能够使用的硬件计算资源(例如,存储器容量或CPU核数)的量。如果确定解释系统35“可执行”,则配置控制器39启动包含三个解释器36的解释系统35。这是图3中作为示例示出的前端装置30的“第一配置”。如果确定解释系统35“不能执行”,则配置控制器39启动图9所示的包含单个逻辑页面解释器36-pb的解释系统35(其细节在下文中描述)(“第二配置”)。针对第一配置中的逻辑页面解释器36-pa和图9所示的逻辑页面解释器36-pb所执行的处理过程部分不同(其细节将在下文中描述)。在以下的描述中,第一配置中的逻辑页面解释器36-pa是被称为“类型1”的类型,第二配置中的逻辑页面解释器36-pb是被称为“类型2”的类型,以对它们彼此进行区分。
继续参照图3,后端装置40的渲染器44按例如页面顺序来读取存储在中间数据缓冲器42中的各页面的中间数据,并根据针对所读取的各页面的中间数据的命令来生成渲染数据。如果所读取的各页面的中间数据包含用于参照缓存ID的命令,则渲染器44从窗体高速缓存器48中读取与该缓存ID相对应的中间数据(即,窗体的中间数据),并对所读取的中间数据进行处理以生成该窗体的渲染数据。将所生成的渲染数据与页面的渲染数据组合。
在前面的描述中,为了描述简单起见,缓存任何窗体。但是,在实际设备中,不是必须缓存所有窗体。缓存的使用会产生处理开销,例如在高速缓存器中登记、以及询问是否存在必要的缓存数据等。小的或具有简单结构的窗体需要较短的时间来生成中间数据。考虑到这些处理开销,在不使用缓存的情况下可以加速处理。因此,在第一配置中,仅缓存为了提供高处理效率而将要缓存的窗体。为此,定义用于确定为了提供高处理效率而将要缓存的窗体(被称为“将要缓存的窗体”)和其他形式的窗体的规则。以下给出用于该确定的规则示例。
(规则1)如果窗体的边框的像素数量大于预定值(被称为“阈值像素数量”),则确定该窗体为将要缓存的窗体,否则,确定该窗体不是将要缓存的窗体。窗体的边框是允许该窗体在物理页面中被围绕的最小矩形大小。
(规则2)如果窗体中所包含的对象数量大于预定值(被称为“阈值对象数量”),则确定该窗体为将要缓存的窗体,否则,确定该窗体不是将要缓存的窗体。
(规则3)如果窗体包含其尺寸大于预定尺寸(被称为“阈值图像尺寸”)的图像(位图),则确定该窗体为将要缓存的窗体,否则,确定该窗体不是将要缓存的窗体。
可以使用例如上述作为示例描述的规则1至规则3中的一个、或者组合使用规则1至规则3中的两个或更多个来执行确定。在组合使用两个或更多个规则来执行确定的情况下,可以将根据至少一个规则被确定为“将要缓存”的窗体的窗体确定为将要缓存的窗体,而不考虑根据其他规则的确定结果。
上述阈值像素数量、阈值对象数量、和阈值图像尺寸是根据前端装置30或后端装置40的系统配置或性能确定的值,并且其可以根据实验、仿真等确定。
在第一配置中,逻辑页面解释器36-pa1和36-pa2以及窗体解释器36-f通过使用统一公共确定规则来确定窗体是否为将要缓存的窗体。因此,例如被逻辑页面解释器36-pa1确定为将要缓存的窗体的窗体也被逻辑页面解释器36-pa2和窗体解释器36-f确定为将要缓存的窗体。
此外,在第一配置中,逻辑页面解释器36-pa1和36-pa2以及窗体解释器36-f使用统一公共ID分配规则来为窗体的缓存数据(中间数据)分配缓存ID。在公共ID分配规则中,除了分配给PDL数据中窗体的窗体ID之外,通过考虑定义该窗体的最终渲染图像状态的各种参数,来确定将要分配给窗体的缓存数据的缓存ID。即使在使用具有相同窗体ID的窗体时,渲染和印刷窗体所利用的各参数的差异也会导致最后在印刷品上呈现窗体的不同图像。为此,具有不同参数的窗体的缓存数据被看作是不同的。定义缓存ID的用于渲染等的参数示例包括坐标变换矩阵(表示围绕坐标的旋转角度和缩放比率的矩阵)、渲染属性信息(例如,线宽、线帽、线连接、斜接限制、线形状、笔划设置、渲染方法、逻辑操作模式、和图案信息)、修剪信息、和颜色信息。在一个示例中,上述窗体ID和各参数的组合被表示为二进制数据,并且使用诸如(在rfc1321中定义的)MD5哈希函数之类的哈希函数来根据所生成的二进制数据生成缓存ID。被用作缓存ID的资料的上述窗体ID和各参数被称为“关键字数据”。
更准确地,由于各哈希函数的冲突,上述方法可以使得不同缓存数据的缓存ID(哈希值)具有相同的值。为了避免各哈希的冲突,可以将关键字数据用作缓存ID。
由于关键字数据相当长,因此可能需要一段时间来使一个关键字数据与另一个关键字数据相匹配,以确定是否存在可用的缓存数据。针对高速缓存管理单元38中的所有缓存条目,可能需要花费相当长的时间来对照一个关键字数据与另一个关键字数据。因此,在以下的示例中,将关键字数据与关键字数据的哈希值的组合用作缓存ID。该示例中,通过首先利用哈希值来使缓存条目的一个关键字数据与另一个关键字数据相匹配以减少缓存条目的数量从而缩小缓存条目的范围,来确定是否存在可用的缓存数据。
从而,在第一配置中,逻辑页面解释器36-pa1和36-pa2以及窗体解释器36-f使用公共ID分配规则。因此,例如,当逻辑页面解释器36-pa1针对某一窗体生成某一缓存ID时(其中逻辑页面解释器36-pa1不生成该窗体的中间数据),窗体解释器36-f生成相同的缓存ID,并且将所生成的窗体的中间数据与该缓存ID关联地登记在窗体高速缓存器48中。
接下来,参照图4至图6,其作为示例示出了在第一配置中逻辑页面解释器36-pa(类型1)和窗体解释器36-f所执行的处理过程。
图4示出了逻辑页面解释器36-pa(类型1)和窗体解释器36-f的公共的处理过程。在所示的示例中,以页面相关的PDL书写的PDL数据被处理。在以下的描述中,除非对其进行单独区分,否则包含类型1的逻辑页面解释器36-pa的各种类型的逻辑页面解释器和窗体解释器36-f被统称为“解释器36”。在第一配置中,解释器36独立且异步地进行操作。
在图4所示的过程中,每个解释器36从印刷作业接收器32获取印刷作业的整个PDL数据(S10)。然后,通过页面分配器34为解释器36分配将要处理的页面(S12)。这里,页面分配器34将PDL数据中的一些页面分配给逻辑页面解释器36-pa1和36-pa2中的每一个,而将所有页面分配给窗体解释器36-f。每个解释器36对所分配页面的PDL数据进行解释(S14)。一旦完成对页面的解释,解释器36确定是否已完成了对整个印刷作业的解释(S16)。如果确定还没有完成解释,则解释器36返回到S12,并且向页面分配器34通知已完成对当前页的解释,以及为解释器36分配下一页。重复执行上述处理,直到完成对整个印刷作业的解释为止。
在页面解释处理(S14)中,每个解释器36从页面的开端开始逐一提取PDL数据的命令(S20),并且对所提取的命令进行解释以生成中间数据对象(S22)。重复执行S20和S22的处理,直到已完成对页面的最后一条命令的处理为止(S24)。
在将要对页面相关的PDL数据进行处理的情况下,每个逻辑页面解释器36-pa对所有页面的命令进行解释,而不考虑每个页面是否为分配页面,并且根据解释结果来引起其内部状态的转变。针对分配页,每个逻辑页面解释器36-pa不仅对该页面进行解释,还生成中间数据。这允许从起始页开始反应解释结果的正确中间数据的生成。类似地,窗体解释器36-f对包含用于渲染对象而非窗体的命令的PDL数据的所有命令进行解释,并且还生成用于渲染窗体的命令的中间数据。
中间数据生成处理(S22)的内容在逻辑页面解释器36-pa与窗体解释器36-f之间是不同的。
图5示出了类型1的每个逻辑页面解释器36-pa所执行的中间数据生成处理(S22)的处理过程的示例。在所示的示例中,每个逻辑页面解释器36-pa确定正被处理的命令(在S20中提取的命令)是否为指示生成窗体对象的命令(S30)。例如,在PostScript(注册商标)的情况下,如果正被处理的命令具有命令名称“窗体”,则该命令为指示生成窗体对象的命令。指示生成窗体的命令伴随有窗体ID作为参数。
如果S30的确定结果是否定的(否:不同于窗体生成命令的命令),则逻辑页面解释器36-pa对该命令进行解释以生成中间数据(S32),并且输出该中间数据作为页面的中间数据(S34)。
如果S30的确定结果为肯定的(是:窗体生成命令),则逻辑页面解释器36-pa根据上述统一确定规则来确定是否要缓存与该命令相对应的窗体的中间数据(S36)。
如果在S36中确定不对该命令进行缓存(S36的确定结果为否定的(否)),则逻辑页面解释器36-pa提取伴随该命令的窗体ID,获取对应于该窗体ID的窗体的PDL数据,并且将该PDL数据扩展到存储器(S38)。例如,可以仅呈现窗体ID,但是表示窗体的整体的PDL数据可能不是写在PDL数据中第二次及随后使用窗体的位置处。即使在该情况下,逻辑页面解释器36-pa也将从印刷作业的PDL数据中第一次使用窗体的位置处读取的窗体的PDL数据与窗体ID关联地管理。因此,所管理的PDL数据被读取并用于第二次及随后使用窗体的位置。对窗体的PDL数据进行扩展后,逻辑页面解释器36-pa对所扩展的PDL数据进行解释以生成中间数据(S32),并且输出该中间数据(S34)。
如果在S36中确定将对正被确定的命令进行缓存(S36的确定结果为肯定的(是)),则逻辑页面解释器36-pa根据上述统一ID分配规则来生成与该命令相对应的缓存ID(S40)。在S40中,逻辑页面解释器36-pa使用诸如窗体ID之类的伴随该命令的一组参数、以及与逻辑页面解释器36-pa的内部状态有关的信息来提取关键字数据中所包含的项的值,组合所提取的值以生成关键字数据,并且计算关键字数据的哈希值。哈希值和关键字数据构成被用作缓存ID的一对。
然后,逻辑页面解释器36-pa生成指示参照缓存ID所识别的缓存数据的中间数据命令,并且输出所生成的中间数据命令(S42)。以此方式,针对缓存的窗体,每个逻辑页面解释器36-pa生成缓存数据参照命令而不是生成表示窗体整体(图像)的中间数据。
图6示出了窗体解释器36-f所执行的中间数据生成处理(S22)的处理过程的示例。在所示的示例中,窗体解释器36-f使用类似于S30中的方法来确定正被处理的命令(在S20中提取的命令)是否为指示生成窗体对象的命令(S50)。如果S50的确定结果为否定的(否),则窗体解释器36-f终止图6中所示的处理而不对该命令执行任何处理。
如果S50的确定结果为肯定的(是),则窗体解释器36-f以类似于S36中的方法根据上述统一确定规则来确定接下来是否对与该命令相对应的窗体的中间数据进行缓存(S52)。
如果在S52中确定不对该命令进行缓存(S52的确定结果为否定的(否)),则窗体解释器36-f终止图6中所示的处理而不对该命令执行任何处理。
如果在S52中确定将对正被确定的命令进行缓存(S52的确定结果为肯定的(是)),则窗体解释器36-f根据上述统一ID分配规则使用类似于S40中的方法来生成与该命令相对应的缓存ID(S54)。然后,窗体解释器36-f对该命令进行解释以生成缓存数据(窗体的中间数据)(S56),并且与缓存ID关联地输出所生成的缓存数据(S58)。所输出的缓存ID和缓存数据构成一对,其被登记在窗体高速缓存器48中。
在S56和S58中,可以避免相同缓存数据的冗余生成和登记。为此,窗体解释器36-f在生成缓存数据之前可以询问高速缓存管理单元38,与在S54中生成的缓存ID相对应的缓存数据是否存在于窗体高速缓存器48中,可以仅在接收到表示该缓存数据不存在的响应时,才生成缓存数据。如果缓存数据被生成并登记在窗体高速缓存器48中,则窗体解释器36-f将该缓存数据的缓存ID登记在高速缓存管理单元38中,从而将该缓存数据记录为已被登记。
接下来,将参照图7和图8来描述用于后端装置40的渲染器44的处理过程的示例。
如图7所示,在所示的过程中,渲染器44首先接收指定的将要处理的印刷作业(S100)。然后,渲染器44从例如印刷作业的起始页开始按顺序逐页从中间数据缓冲器42中获取各页的中间数据(S102),并且对所获取的页面的中间数据进行解释(S104)。按页重复执行S102和S104的处理,直到印刷作业结束为止(S106)。
在对页面的中间数据进行解释的处理(S104)中,渲染器44从页面的开端开始逐一地提取中间数据的命令(S110),并且对每个所提取的命令进行解释,以在存储器上渲染命令所表示的光栅图像(S112)。重复执行S110和S112的处理,直到已完成对页面的最后一条中间数据命令的处理为止(S114)。
在对页面的中间数据进行解释的处理(S112)中,如图8所示,渲染器44从页面的开端开始按顺序读取页面的中间数据的命令,并且确定所读取的命令是否为指示参照缓存数据的命令(被称为“缓存参照命令”)(S120)。
如果S120的确定结果为肯定的(是),则渲染器44从缓存参照命令中提取缓存ID(S122),并且从窗体高速缓存器48中检索得到与该缓存ID相对应的缓存数据(中间数据)(S124)。然后,渲染器44对检索得到的缓存数据进行解释,以渲染光栅图像(或“执行光栅化”)(S126)。
如果S120的确定结果为否定的(否),则渲染器44对命令进行解释,以执行光栅化(S126)。
上述描述已给出了包含具有第一配置的前端装置30的印刷控制器20的示例。如上所述,在第一配置中,逻辑页面解释器36-pa和窗体解释器36-f使用统一ID分配规则,并且根据相同的资料(即,窗体ID和对作为窗体的印刷结果而获得的图像进行定义的其他参数)来分配缓存ID。因此,解释器36能够不执行相互通信而将相同的缓存ID分配给相同的缓存数据。因此,必须立即或稍后由窗体解释器36-f生成包含于逻辑页面解释器36-pa1和36-pa2所生成的页面的中间数据中的缓存参照命令的缓存ID所识别的缓存数据,并将其与相同的缓存ID关联地登记在窗体高速缓存器48中。在渲染器44将要处理页面中的缓存参照命令时,即使该命令所指定的缓存数据不存在于窗体高速缓存器48中,也允许渲染器44等待片刻后从窗体高速缓存器48中获取该缓存数据。由于窗体解释器36-f生成窗体的缓存数据的处理所用的时间不足以对印刷作业的初始部分进行处理,因此某种程度上很可能需要渲染器44等待(等待完成缓存数据的生成)。尽管逻辑页面被多个逻辑页面解释器36-pa并行地进行处理,但是窗体由单个窗体解释器36-f按页的顺序进行处理。为此,对窗体的处理可能很难赶上对逻辑页面的处理进度。但是,由于即使出现具有相同关键字数据的多个窗体,窗体解释器36-f也仅生成一次缓存数据,因此,某种程度上,随着处理向前推进而在窗体高速缓存器48中积累了相当数量的缓存数据时,需要生成新的缓存数据的频率通常较低。因此,页面处理速度可以增大,并且对窗体的处理能够赶上逻辑页面解释器36-pa的并行处理进度。如上所述,这可以避免渲染器44等待缓存数据生成的完成。
如上所述,即使逻辑页面解释器36-pa1和36-pa2以及窗体解释器36-f不执行进程间通信而独立且异步地进行操作,第一配置也允许对窗体的中间数据进行缓存并再利用。由于没有进程间通信的开销,因此,与执行进程间通信的系统相比,该示例实施例能够提供更高速的处理。
上述具有第一配置的前端装置30提供有窗体专用解释器(即,窗体解释器36-f),这避免了每个逻辑页面解释器36-pa大量地对窗体进行解释,从而得到了期望的高速操作。特别地,执行并行操作的逻辑页面解释器36-pa的数量越大,提供专用于对窗体进行解释的窗体解释器36-f越有效。
相反的观点是多个解释器36并行地操作的第一配置可能需要前端装置30所基于的计算机具有足够的硬件计算资源(例如,足够的存储器容量和足够的处理器数量)。将前端装置30安装于具有少量硬件计算资源的计算机上可能比不是并行执行操作的配置提供更低的处理速度,或者可能妨碍这种并行处理的执行。例如,在解释器36被以分时方式实现在单个CPU上的情况下,在将要实现的各解释器36之间进行切换所需的开销可能会减小处理速度。另外,尽管每个解释器36可以要求足够的存储器空间来对一个页面的数据进行处理,但是对于具有较小存储器容量的计算机来说,可能很难为多个解释器36保留所需的存储空间。对于这种计算机来说,可能很难实现具有第一配置的前端装置30。
在用于使计算机用作前端装置30的程序被创建的情况下,有利的是,该程序可灵活地支持安装有该程序的计算机的性能(硬件计算资源)。因此,在该示例实施例中,用于前端装置30的程序包含用于实现上述第一配置之外的第二配置的描述,以解决安装有该程序的计算机不具有足够的硬件计算资源来享有以第一配置并行处理的优点的情况。
将参照图9来描述第二配置。在图9所示的第二配置中,与图3所示的第一配置不同的是,解释系统35包括单个逻辑页面解释器36-pb(类型2)。类型2的逻辑页面解释器36-pb被配置为执行以下两种处理,即,用于创建逻辑页面的中间数据的处理和用于将逻辑页面中所包含的将要缓存的窗体的中间数据登记在窗体高速缓存器48中的处理。图9所示的解释系统35之外的配置类似于图3的配置。
图10示出了逻辑页面解释器36-pb(类型2)所执行的解释处理过程的示例。在图10所示的过程中,为与用于图5中所示的每个逻辑页面解释器36-pa(类型1)的过程中的步骤相同的步骤分配相同的参考标号,并且省略其详细描述。
在图10所示的过程中,在对将要缓存的窗体进行处理时,如果逻辑页面解释器36-pb在S36中确定将要缓存正被确定的窗体(S36的确定结果为肯定的(是)),则逻辑页面解释器36-pb生成与命令相对应的缓存ID(S40)。缓存ID可以根据例如统一ID分配规则(其实质上与第一配置中的相同)来生成。然后,逻辑页面解释器36-pb询问高速缓存管理单元38,与在S40中生成的缓存ID相对应的缓存数据是否存在于窗体高速缓存器48中(S44)。如果响应于该询问而从高速缓存管理单元38接收到表示“不存在”的响应(S44的确定结果为否定的(否)),则逻辑页面解释器36-pb对该窗体的PDL数据进行扩展并对其进行解释,以生成该窗体的中间数据(S46),并且将所生成的中间数据与在S40中生成的缓存ID关联地登记在窗体高速缓存器48中(S47)。然后,解释器36将在S46中生成的窗体的中间数据输出到中间数据缓冲器42作为逻辑页面的解释结果的部分(S48)。如果在S44中从高速缓存管理单元38接收到表示“存在”的响应,则逻辑页面解释器36-pb生成指示参照由缓存ID所识别的缓存数据的中间数据命令,并且将所生成的中间数据命令输出到中间数据缓冲器42作为逻辑页面的解释结果的部分(S42)。
在S47的处理之后,可以执行S42的处理来代替S48的处理。
例如,如果窗体高速缓存器48的可用容量小于逻辑页面解释器36-pb要新登记的窗体的中间数据的大小,则高速缓存管理单元38删除窗体高速缓存器48中不经常使用的缓存数据,以增大可用容量,然后登记窗体的中间数据。
图9所示配置中渲染器44的操作实质上与第一配置(图3)中渲染器44的操作相同。
在图9所示的第二配置中,使用单个解释器36(即,逻辑页面解释器36-pb)。因此,即使在计算机的性能不适用于并行处理时,第二配置也能适当地实现在该计算机上。
如上所述,在根据该示例实施例的印刷控制器20中,解释器启动数量确定单元37和配置控制器39根据将要安装程序的计算机的硬件计算资源来在第一配置和第二配置之间切换前端装置30的配置。图11示出了用于切换控制的过程示例。
图11所示的过程通常在用于启动计算机上的前端装置30的系统配置处理中执行。在所示的过程中,首先,解释器启动数量确定单元37从计算机的操作系统(OS)等处获取可以分配给解释系统35的硬件计算资源(在所示的示例中为存储器容量和CPU核数)相关的信息(S1002,S1004)。如果执行用于在计算机上实现除了前端装置30的功能之外的功能的程序,则在S1002和S1004中获取的存储器容量和CPU核数分别小于计算机中所包含的存储器的容量和计算机中所包含的CPU的核数。解释器启动数量确定单元37根据在S1002和S1004中获取的信息来计算计算机上能够启动的解释器36的数量(下文中将称其为“解释器启动数量”)(S1006)。
在S1006的处理中,首先,解释器启动数量确定单元37将在S1002中确定的存储器容量除以单个解释器36执行处理所需的存储器容量(小数被舍入),以确定临时“解释器启动数量”(S1008)。事先确定单个解释器36执行处理所需的存储器容量。如果要在计算机上实现超出临时解释器启动数量的多个解释器36,则每个单独的解释器36具有的存储器容量小于该解释器36执行其处理所需的存储器容量,从而解释器36可能不正确地进行操作。
然后,解释器启动数量确定单元37确定在S1008中确定的临时解释器启动数量是否大于在S1004中获取的CPU核数(S1010)。如果临时解释器启动数量大于CPU核数,则将CPU核数设置为授权解释器启动数量(S1012)。在使用单个CPU核来实现多个解释器36时,存在这样的问题,即,在将要实现的各解释器36之间进行切换会造成时间损耗,因此不能启动超出CPU核数的多个解释器36。如果在S1010中确定临时解释器启动数量小于或等于CPU核数,则解释器启动数量确定单元37跳过S1012的处理,并且将临时解释器启动数量设置为授权解释器启动数量。以上述方式确定的解释器启动数量被传送至配置控制器39。
配置控制器39确定所传送的解释器启动数量是否等于1(S1014)。如果确定解释器启动数量大于或等于2,则采用图3中所示的第一配置,在解释系统35中启动一个窗体解释器36-f和其数量等于“解释器启动数量减去1”的逻辑页面解释器36-pa(S1016)。该情况下,通过单独的核来实现窗体解释器36-f和各逻辑页面解释器36-pa。如果在S1014中确定解释器启动数量等于1,则采用图9所示的第二配置,在解释系统35中启动单个逻辑页面解释器36-pb(S1018)。
从而,在图11所示的过程在用于启动前端装置30的系统配置处理中执行的情况下,解释器启动数量确定单元37和配置控制器39可以在系统配置处理的执行期间被实现在计算机上,以及可以在系统配置处理完成后被删除。
前端装置30启动之后,分配给前端装置30的硬件计算资源量可以在操作期间变化(例如,在可分配给前端装置30的存储器容量可以由于执行具有更高优先权的另一程序而减少的情况下)。为了处理该情况,解释器启动数量确定单元37和配置控制器39可以驻留在计算机上,并且其可以被配置为周期性地执行图11所示的处理(同样应用于以下描述的示例修改例)。
第一示例修改例
在上述示例实施例中,在包含前端装置30的计算机的硬件计算资源能够启动的解释器36的数量为1的情况下,采用第二配置(图9),以及在能够启动的解释器36的数量大于1的情况下,采用第一配置(图3)。
但是,在第一配置中,如果能够并行实现的逻辑页面解释器36-pa的数量较小,则专用于对窗体进行解释的窗体解释器36-f的益处可能较少。在极端的示例中,在解释器启动数量等于2而启动一个窗体解释器36-f和一个逻辑页面解释器36-pa的配置中,仅对窗体进行处理的前一种处理比后一种处理(即,对逻辑页面进行处理的逻辑页面处理)前进得快得多,解释系统35的整体处理速度受限于逻辑页面解释器36-pa的速度。该情况下,使用两个解释器36并行地执行对逻辑页面的解释能够提供较高的处理速度。以此方式,为了使得包含专用于对窗体进行解释的窗体解释器36-f的第一配置有效,有利的是,并行地实现多于特定数量的逻辑页面解释器36-pa。根据实验等来确定使得第一配置有效所需的并行操作的逻辑页面解释器36-pa的数量的下限N。
因此,在第一示例修改例中,如果使用计算机的硬件计算资源确定的解释器启动数量(图11中的S1006)处于不小于2且不大于使得第一配置有效的并行操作的逻辑页面解释器36-pa的数量的下限N的范围内,则使用与上述第一配置和第二配置不同的第三配置。
图12示出了包含具有第三配置的前端装置30的印刷控制器20的配置。在图12中,对与图3中所示的元件类似的元件分配相同的参考标号。
在图12中作为示例示出的第三配置中,解释系统35包含多个类型3的逻辑页面解释器36-pc(在所示的示例中为两个逻辑页面解释器36-pc1和36-pc2)。解释系统35不包含窗体解释器36-f。
每个类型3的逻辑页面解释器36-pc是假设不使用窗体高速缓存器48的解释器,其被配置为对所分配的逻辑页面的印刷数据进行解释,以生成中间数据并输出中间数据。即,与类型1的逻辑页面解释器36-pa(图3)等不同,逻辑页面解释器36-pc不使用缓存参照命令来代替用于对将要缓存的窗体进行渲染的命令。
图13示出了每个类型3的逻辑页面解释器36-pc所执行的按命令的解释处理的过程示例(可以使用图4所示的过程来执行用于对印刷作业进行处理的整个过程)。在所示的过程中,每个逻辑页面解释器36-pc对所分配页面的所有命令进行解释,而不考虑每个命令是用于对窗体之外的对象进行渲染的命令还是用于对窗体进行渲染的命令,并且生成表示所有命令的解释结果的中间数据(S32)。然后,逻辑页面解释器36-pc输出中间数据作为页面的中间数据(S34)。因此,每个类型3的逻辑页面解释器36-pc所生成的页面的中间数据还包含表示该页面中所包含的窗体的图像的中间数据。
如可以从以上描述中推导出的,在第三配置中不使用窗体高速缓存器48。用于渲染器44的处理过程可以类似于图7和图8中作为示例示出的过程,或者可以采用从图7和图8所示的过程中移除参照缓存的步骤而获得的过程。
因此,在第三配置中,由于不包含专用于对窗体进行解释的窗体解释器36-f,因此所有可用的硬件计算资源都被分配给对逻辑页面的并行处理。
在第三配置中,不对窗体的中间数据进行缓存。其原因是,与对窗体的中间数据进行缓存的情况相比,不对窗体的中间数据进行缓存更有可能获得较高的处理速度。如果每个逻辑页面解释器36-pc执行假设使用窗体高速缓存器48的操作,可能还需要执行以下操作,例如检查期望的缓存数据是否存在于窗体高速缓存器48中、以及确保已登记的缓存数据不被冗余处理。为了执行这种操作,每个逻辑页面解释器36-pc需要访问高速缓存管理单元38以进行询问(参见图3等:图12所示的配置中不包含高速缓存管理单元38),并且由于用于询问的通信的开销,可能花费大量时间来处理印刷作业。考虑这种通信的开销,如果并行操作的逻辑页面解释器36-pc的数量小于或等于特定值,则可以不使用缓存而提高处理速度。该情况下,还考虑上述情况来确定上述并行操作的逻辑页面解释器36-pa的数量的下限N。
这仅仅是示例,第三配置中所使用的多个逻辑页面解释器36-pc可以被配置为假设使用缓存。该情况下,每个逻辑页面解释器36-pc以类似于类型2的逻辑页面解释器36-pb的方式来执行图10所示的处理过程。但是,该情况下,通过某一CPU核来实现的逻辑页面解释器36-pc所执行的图10中S44中的询问是到高速缓存管理单元38的进程间通信(参见图3),高速缓存管理单元38伴随有通过另一CPU核来实现的另一逻辑页面解释器36-pc。
接下来,将参照图14来描述根据第一示例修改例的用于解释器启动数量确定单元37和配置控制器39的处理过程的示例。在图14中,类似于图11中所示步骤的步骤被分配有相同的参考标号。
在图14所示的过程中,S1002至S1014以及S1018的处理实质上与图11所示的过程中的相应处理相同。如果在S1014中确定解释器启动数量不等于1,则在图14所示的过程中,配置控制器39确定解释器启动数量是否小于上述使得第一配置有效的并行操作的逻辑页面解释器36-pa的数量的下限N(S1020)。下限N的值根据实验等确定,并且被事先设置。如果在S1020中确定解释器启动数量小于下限值N,则配置控制器39在解释系统35中启动数量等于解释器启动数量的类型3的多个逻辑页面解释器36-pc(S1022:图12所示的第三配置)。如果在S1020中确定解释器启动数量大于或等于下限值N,则配置控制器39启动一个窗体解释器36-f以及数量等于“解释器启动数量减去1”的多个逻辑页面解释器36-pa(S1016:图3所示的第一配置)。
第二示例修改例
接下来,将描述第二示例修改例。
在根据上述示例实施例的具有第一配置(图3)的前端装置30中,逻辑页面解释器36-pa1和36-pa2以及窗体解释器36-f不执行用于缓存的进程间通信。相比之下,根据第二示例修改例的前端装置30具有两种操作模式,即,如上述示例实施例中的不执行进程间通信的模式(被称为“非进程间通信模式”)、以及逻辑页面解释器36-pa1和36-pa2以及窗体解释器36-f执行用于缓存的进程间通信的模式(被称为“进程间通信模式”)。操作模式按照实现更准确的缓存控制的情形来进行切换。下述第一配置(图3)的示例修改例可以与上述示例实施例中的第二配置(图9)组合使用,或者可以将下述第一配置的示例修改例与第二配置(图9)以及上述第一示例修改例中的第三配置(图12)组合使用。
图15示出了根据第二示例修改例的具有第一配置的印刷控制器20的示例配置。图15中与图3作为示例示出的元件相类似的元件被分配有相同的参考标号。
图15中作为示例示出的配置不同于图3所示配置之处在于,逻辑页面解释器36-pa1和36-pa2在进程间通信模式中与高速缓存管理单元38进行通信(以及在于根据该通信来切换处理过程)。
图16示出了根据图15中所示的第二示例修改例的高速缓存管理单元38的内部配置的示例。高速缓存管理单元38可以为窗体解释器36-f的部分,或者可以被实现为与窗体解释器36-f分离的处理。在以下的描述中,作为示例,高速缓存管理单元38是窗体解释器36-f的部分。
在所示的示例中,高速缓存管理单元38包含通信控制器382、缓存控制器384、和缓存表386。通信控制器382控制与多个解释器36的通信。通信控制器382从解释器36接收诸如缓存询问之类的请求,对请求进行裁定,并且将请求传递给缓存控制器384。缓存控制器384根据经由通信控制器382所接收到的请求来执行针对缓存表386的操作。缓存表386是保存登记在窗体高速缓存器48中的缓存数据相关的管理信息的表格。
如图17所示,缓存表386中登记有针对每个缓存数据的缓存ID(这里为上述关键字数据的哈希值)、关键字数据、以及缓存数据项在窗体高速缓存器48中的存储位置相关的信息。在所示的示例中,缓存数据作为示例存储在存储器中,并且存储位置相关的信息由存储位置的起始地址及大小表示。从而,可以将缓存数据保存为文件并对其进行管理,而不是将缓存数据存储于存储器中。该情况下,可以将存储缓存数据的文件的文件名而不是地址和大小的集合记录为“存储位置”。
在所示的示例中,在从窗体高速缓存器48中删除缓存数据项的情况下,将缓存表386中缓存数据的存储位置的值改变为预定的无效地址和大小(例如,空值)。因此,如果对应于缓存ID的项(哈希值和关键字数据的集合)存在于缓存表386中,并且该项的存储位置被设置为非空值,则对应于缓存ID的数据项(缓存数据)存在于窗体高速缓存器48中。
此外,在图17所示的示例中,针对缓存表386中的每个缓存项还记录访问计数值和参照计数值,作为用于缓存管理的数值信息。
访问计数值是表示对相关项的缓存数据进行使用的累计频率的值,并且在解释器36每次参照该项的缓存ID时,访问计数值加1。如这里所使用的,当中间数据中包含表示参照相关缓存ID的缓存参照命令时,使用术语“参照”。如果作为要对窗体进行处理而进行缓存ID相关的询问的结果,逻辑页面解释器36-pa创建表示窗体项的中间数据而不是缓存参照命令,则用于缓存ID的访问计数值不递增。具有较大访问计数值的缓存数据在之前的印刷作业处理中被更频繁地使用(即,该缓存数据被印刷较多次),缓存的使用对处理速度的增大的贡献更大。
参照计数值是表示对中间数据缓冲器42中的页面的中间数据(即,还没有被渲染器44处理的中间数据)中相关项的缓存数据的参照次数的值。每次解释器36参照该项的缓存ID时,参照计数值加1,每次渲染器44参照该项的缓存ID(即,该项的缓存数据被渲染)时,参照计数值减1。如果特定项的参照计数值大于或等于1,则中间数据缓冲器42包含缓存数据项被参照了的页,因此,很难从窗体高速缓存器48中删除该缓存数据。如果特定项的参照计数值等于0,则此时可以删除该项缓存数据。
在进程间通信模式中,访问计数值和参照计数值根据来自逻辑页面解释器36-pa的参照来递增(加1),而不是根据来自窗体解释器36-f的参照来递增。逻辑页面解释器36-pa以共享的方式对印刷作业中的一组页面进行处理,窗体解释器36-f对印刷作业中的所有页面进行处理。对来自逻辑页面解释器36-pa和窗体解释器36-f的参照进行计数可能导致双重计数。为了避免这种双重计数,作为示例,仅对来自逻辑页面解释器36-pa的参照进行计数。对来自逻辑页面解释器36-pa而不是窗体解释器36-f的参照进行计数的原因是来自逻辑页面解释器36-pa的参照的数量更直接地反映缓存数据被实际参照来生成逻辑页面的印刷图像的次数。但是,这仅仅是示例,在进程间通信模式中也可以对来自窗体解释器36-f的参照进行计数。
在非进程间通信模式中,访问计数值和参照计数值根据来自窗体解释器36-f的参照来递增(加1)。在非进程间通信模式中,使得没有来自逻辑页面解释器36-pa的参照。
缓存控制器384监视缓存表386(以及窗体高速缓存器48)来确定已登记或删除的缓存数据的大小,并且根据监视处理来更新并管理窗体高速缓存器48的可用容量(即,“窗体高速缓存器48的容量”减去“窗体高速缓存器48中缓存数据的总大小”)。
从解释器36发送至高速缓存控制器384的请求的示例包括询问请求、区域保留请求、以及登记请求。
询问请求是用于询问缓存数据是否存在于窗体高速缓存器48中的请求,使用识别缓存数据的缓存ID(哈希值与关键字数据的集合)作为变元(argument)。一旦接收到询问请求,高速缓存控制器384在缓存表386中搜索与作为该请求的变元的缓存ID相对应的项。如果找到这种项并且该项的存储位置的值有效,则高速缓存控制器384确定“相应的缓存数据存在”,否则,确定“相应的缓存数据不存在”。高速缓存控制器384经由通信控制器382将确定结果发送至请求解释器36。
区域保留请求是用于请求保留容量来存储解释器36所生成的缓存数据的请求,例如,使用识别缓存数据的缓存ID(哈希值与关键字数据的集合)和缓存数据的大小作为变元。一旦接收到区域保留请求,高速缓存控制器384就确定作为变元的缓存数据的大小是否小于或等于窗体高速缓存器48的可用容量。如果该大小小于或等于所述可用容量,则高速缓存控制器384保留对应于该大小的存储位置,并且返回包含表示存储位置的信息(例如,起始地址和大小)的“区域保留”响应。如果作为变元的缓存数据的大小超出了窗体高速缓存器48的可用容量,则高速缓存控制器384确定是否通过删除存储在窗体高速缓存器48中的缓存数据来保留对应于该大小的区域。这里,高速缓存控制器384可以确定是否通过在缓存表386中搜索其参照计数值等于0的项并且删除作为搜索结果而找到的项的实际数据来保留能够容纳将新登记的缓存数据大小的容量。可以不删除其参照计数值等于0的所有缓存数据,而可以删除最小数量的缓存数据来保留能够容纳将要登记的缓存数据大小的容量。该情况下,可以优先从具有最低访问计数值的缓存数据(即,使用频率最小的缓存数据)开始来选择将要删除的缓存数据。
如果通过删除其参照计数值等于0的缓存数据的方式而获得满足区域保留请求的可用容量,则高速缓存控制器384从窗体高速缓存器48中删除被选择为将要删除的数据的各缓存数据,并且在可用容量中保留与请求大小相对应的大小的存储位置。然后,高速缓存控制器384向请求解释器36返回表示“成功的区域保留”的响应。该响应包含缓存ID和表示所保留的存储位置的信息(例如,起始地址和大小的集合)。高速缓存控制器384将缓存表386中该缓存项的“存储位置”中的数据改变为表示“无效”的预定值。已接收到表示“成功的区域保留”的响应的解释器36向高速缓存管理单元38发送缓存数据登记请求。
如果即使删除其参照计数值等于0的所有缓存数据也很难获得满足区域保留请求的可用容量,则高速缓存控制器384向请求解释器36返回表示“区域保留失败”的响应。已接收到表示“区域保留失败”的响应的解释器36丢弃所生成的缓存数据而不将其登记在高速缓存器中。
在所示的示例中,窗体解释器36-f创建窗体的缓存数据,没有逻辑页面解释器36-pa创建缓存数据(即,逻辑页面解释器36-pa可以创建窗体的中间数据但是不对其进行缓存)。因此,仅从窗体解释器36-f发出区域保留请求和登记请求。
接下来,将描述操作模式的特征。
非进程间通信模式由于没有用于通信的开销而提供高速处理。但是,由于逻辑页面解释器36-pa所生成的缓存参照命令必须被立即解决(缓存参照命令可以不被立即解决,而缓存参照命令所指定的缓存数据将存在于窗体高速缓存器48中),因此很难从窗体高速缓存器48中删除缓存数据。如果从窗体高速缓存器48中删除了缓存数据,则没有认识到该删除的逻辑页面解释器36-pa所生成的缓存参照命令不能被解决。
此外,在非进程间通信模式中,如上所述,渲染器44可以等待针对印刷作业的初始部分而生成的必要缓存数据。可能不期望并行处理加速。
由于用于通信的开销,进程间通信模式比非进程间通信模式提供的处理速度较低。然而,还可以通过从窗体高速缓存器48中删除缓存数据来防止基于缓存的系统的崩溃。具体地,每个逻辑页面解释器36-pa被配置为通过使用进程间通信来检查逻辑页面解释器36-pa希望参照的窗体的缓存数据是否存在于窗体高速缓存器48中,以及如果该缓存数据不存在,则生成该窗体的中间数据。
每个逻辑页面解释器36-pa还可以被配置为通过在对印刷作业的初始部分进行处理的同时执行进程间通信来检查逻辑页面解释器36-pa希望参照的窗体的缓存数据是否存在于窗体高速缓存器48中,以及如果该缓存数据不存在,则生成该窗体的中间数据。这与渲染器44等待窗体解释器36-f生成缓存数据的方法相比,能够提供较高速的处理,像非进程间通信模式那样。
前端装置30的操作模式的切换有两个方向:(a)从进程间通信模式切换为非进程间通信模式;以及(b)从非进程间通信模式切换为进程间通信模式。现在将描述各切换方向。
(a)从进程间通信模式切换为非进程间通信模式
该方向表示当满足特定条件时,从进程间通信模式中的操作状态转换为非进程间通信模式。该方向的切换例如在印刷作业的初始部分中执行。该示例中,在印刷作业开始时,使得前端装置30在进程间通信模式中进行操作。当前端装置30完成直到印刷作业的预定比例的处理时,将前端装置30的操作模式切换为非进程间通信模式。执行该切换的阈值(即,上述“预定比例”)被表示为例如逻辑页面的数量。例如,从印刷作业的开端开始使用进程间通信模式直到第n(n为大于1的预定整数)页为止,并且在完成直到第n页的处理后使用非进程间通信模式。
这里,例如,n可以被定义为:n=“并行操作的逻辑页面解释器36-pa的数量”。在对印刷作业的初始部分中等于“并行操作的逻辑页面解释器36-pa的数量”的页数进行处理期间没有积累足够量的缓存数据,渲染器44很可能在非进程间通信模式中等待缓存数据的生成。
例如,如果并行操作的逻辑页面解释器36-pa的数量为4,则通过四个逻辑页面解释器36-pa并行地对印刷作业的初始部分中的4页(即,第一页至第四页)进行处理。如果4页的处理负荷相等,则基本同时完成4页的中间数据的生成,并且将所生成的中间数据发送到后端装置40。同时,单个窗体解释器36-f从第一页开始顺序地生成窗体缓存数据。因此,如果在第四页中第一次出现窗体,则在印刷作业的处理开始之后经过一定量的时间后完成窗体缓存数据的生成并将其发送至后端装置40。为此,当渲染器44对要并行处理的4页中的最后页进行处理时,在最后页中使用的窗体的缓存数据的生成可能赶不上渲染器44的处理。该问题在第四页的情况下尤其严重。该问题在第五页或随后页的情况下没有在第四页的情况下严重,因为第五页或随后页是第二轮及随后各轮的并行处理,具有足够的前置时间。另外,首次出现的窗体的出现频率减小(在第五和随后页中使用的相当多的窗体与在第一至第四页中使用的相同)。
如从上述示例可以看出的,如果采用非进程间通信模式,印刷控制器20的整体处理速度很可能受限于从印刷作业的开端开始到第n(n=“并行操作的逻辑页面解释器36-pa的数量”)页期间窗体解释器36-f的处理速度,在从印刷作业的开端开始到第n页期间缓存数据的生成可能赶不上对逻辑页面的处理。相比之下,如果在从印刷作业的开端开始到第n页期间采用进程间通信模式,例如,被分配了第四页的逻辑页面解释器36-pa可以通过使用进程间通信来确定将要缓存的窗体的缓存数据是否可获得。如果该缓存数据不可获得,则该逻辑页面解释器36-pa生成该窗体的中间数据,并且将该中间数据包含于第四页的处理结果中。该情况下,即使在渲染器44对第四页的中间数据进行处理时窗体解释器36-f还没有完成第四页中窗体的缓存数据的生成,渲染器44也可以根据第四页的中间数据来生成该窗体的光栅数据。
(b)从非进程间通信模式切换为进程间通信模式
该方向表示当满足特定条件时从非进程间通信模式中的操作状态转换为进程间通信模式。该方向的切换在例如窗体高速缓存器48中的缓存数据的总量接近窗体高速缓存器48的容量(即,高速缓存器几乎变满)的阶段执行。
当缓存数据的总量接近窗体高速缓存器48的容量时,窗体高速缓存器48的可用容量对于将要登记的新的缓存数据来说可能不足。该情况下,有利的是,通过删除窗体高速缓存器48中的现有缓存数据来增大可用容量,从而可以将新数据登记在窗体高速缓存器48中。如上所述,在非进程间通信模式中从窗体高速缓存器48中删除一些缓存数据可能使得不能对页面进行渲染,因为对该页面进行渲染以其缓存数据存在为前提。另一方面,在进程间通信模式中,每个逻辑页面解释器36-pa不断地检查必要窗体的缓存数据是否可获得,如果该缓存数据可获得,则生成用于参照该缓存数据的中间数据命令,或者如果该缓存数据不可获得,则生成表示该窗体项的中间数据。这可以避免诸如由于缺少期望的缓存数据而不能进行渲染之类的情况。
相反,在窗体高速缓存器48中的缓存数据的总量没有这么大并且可用容量足够大能够存储新生成的缓存数据的情况下,采用具有高处理速度的非进程间通信模式可以提供较高的处理效率。
因此,可以执行控制以使得在缓存数据的总量接近窗体高速缓存器48的容量之前使用非进程间通信模式,而在缓存数据的总量接近窗体高速缓存器48的容量时切换为进程间通信模式。
可以通过例如将窗体高速缓存器48中缓存数据的总量与阈值进行比较来确定是否是“缓存数据的总量接近窗体高速缓存器48的容量”的情况。该示例中,例如,基于分配给窗体高速缓存器48的存储器容量(=缓存数据的总量的上限值)来确定阈值(使用例如将存储器容量的90%设置为阈值的方法),并且当窗体高速缓存器48中缓存数据的总量接近该阈值时,确定“缓存数据的总量接近窗体高速缓存器48的容量”。
接下来,将描述根据第二示例修改例的用于操作模式的切换控制的过程示例。在以下的描述中,作为示例,通过页面分配器34执行用于切换控制的过程。这仅仅是示例。以下过程可以由例如高速缓存管理单元38执行或者通过使用用于执行该过程的专用功能模块来执行。
图18示出了用于操作模式的切换控制的过程的第一示例。在所示的示例中,当印刷作业处理启动时,页面分配器34将前端装置30的操作模式设置为进程间通信模式(S200)。这可以防止在作业开始时等待缓存数据的生成,并且可以抑制处理速度的减小。之后,每次为逻辑页面解释器36-pa分配了页面时,页面分配器34对所分配页数中最后的页码进行记录,如果所记录的最后的页码小于或等于预定阈值(S202的确定结果为否定的(否)),则保持进程间通信模式。如果所记录的最后的页码超出了预定阈值(S202的确定结果为肯定的(是)),则页面分配器34将前端装置30的操作模式切换为非进程间通信模式(S204)。这可以增大处理速度。如果窗体高速缓存器48的容量大于印刷作业中使用的将要缓存的窗体的中间数据的总量,则图18所示的过程没有任何问题地工作。
图19示出了用于操作模式的切换控制的过程的第二示例。在所示的示例中,当印刷作业处理启动时,页面分配器34将前端装置30的操作模式设置为非进程间通信模式(S210)。之后,页面分配器34监视窗体高速缓存器48的可用容量(可以通过询问高速缓存管理单元38来确定该可用容量)。如果可用容量大于或等于预定阈值(S212的确定结果为否定的(否)),则页面分配器34保持非进程间通信模式。如果可用容量小于预定阈值(S212的确定结果为肯定的(是)),则页面分配器34将前端装置30的操作模式切换为进程间通信模式(S14)。这使得能够将窗体高速缓存器48中的现有缓存数据删除,并且能够记录新的必要的缓存数据。在作业启动时的处理速度方面,所示的过程可能低于上述第一示例,但是所示的过程即使在窗体高速缓存器48的容量低于印刷作业中使用的将要缓存的窗体的中间数据的总量时也能适当地工作。
图20示出了用于操作模式的切换控制的过程的第三示例。所示的示例是上述第一和第二示例的组合。在所示的示例中,当印刷作业处理启动时,页面分配器34将前端装置30的操作模式设置为进程间通信模式(S220)。之后,每次为逻辑页面解释器36-pa分配了页面时,页面分配器34将所分配页数中最后的页码与阈值进行比较(S222)。如果最后的页码小于或等于该阈值(S222的确定结果为否定的(否)),则页面分配器34保持进程间通信模式。如果最后的页码超出了该阈值(S222的确定结果为肯定的(是)),则页面分配器34将前端装置30的操作模式切换为非进程间通信模式(S224)。之后,将窗体高速缓存器48的可用容量与预定阈值进行比较(S226)。如果可用容量大于或等于预定阈值(S226的确定结果为否定的(否)),则页面分配器34保持非进程间通信模式。如果可用容量小于预定阈值(S226的确定结果为肯定的(是)),则页面分配器34将前端装置30的操作模式切换为进程间通信模式(S228)。在操作模式被切换为进程间通信模式之后,使用以下的处理流程:当生成了新的要缓存的缓存数据时,如果窗体高速缓存器48的可用容量短缺,则从窗体高速缓存器48中删除现有缓存数据以增大可用容量,并且在增大了的可用容量中存储新的缓存数据。由于窗体高速缓存器48的可用容量在上述处理中通常不会大大增加,因此保持进程间通信模式直到完成印刷作业为止。但是,考虑到窗体高速缓存器48的可用容量可能由于某些原因而大大增加的可能性,还可以在S228的处理之后监视窗体高速缓存器48的可用容量,并且如果可用容量超出预定阈值(该阈值可以等于S226中的阈值,但是更有利的是,大于S226中的阈值)则可以将前端装置30的操作模式切换为非进程间通信模式。
图21示出了用于操作模式的切换控制的过程的第四示例。所示的示例是第三示例的改进。在图21中,对与图20中所示的步骤相类似的步骤分配相同的参考标号,并且省略其描述。
该处理以高速缓存管理单元38管理窗体高速缓存器48的命中率为前提。例如,高速缓存管理单元38具有从逻辑页面解释器36-pa接收到的关于缓存数据是否存在的询问请求的总数的记录、以及相对于询问请求的总数而言表示“相应的缓存数据存在”(即,“缓存命中”)的响应数量。高速缓存管理单元38不断地根据所记录的值确定并保存最新的命中率(命中数量÷询问的总数)。
在图21所示的过程中,在S228中转换为进程间通信模式之后,例如,页面分配器34周期性地向高速缓存管理单元38询问命中率(S230)。如果命中率大于或等于预定阈值(S232的确定结果为否定的(否)),则页面分配器34保持进程间通信模式。即,如果命中率大于或等于预定阈值,则页面分配器34将窗体高速缓存器48看作被有效利用,并且保持当前的状态。
如果命中率低于该阈值(S232的确定结果是肯定的(是)),则表示存储在窗体高速缓存器48中的缓存数据不经常被使用。这种情况在例如在印刷作业的中间用不同的窗体代替正被使用的窗体时可能发生。即,在替换窗体之前存储在窗体高速缓存器48中的缓存数据在窗体被替换后不被经常使用,而窗体被替换后的新的窗体由于可用容量的短缺而可能很难登记在窗体高速缓存器48中,从而导致命中率的下降。该情况下,页面分配器34指示高速缓存管理单元38从窗体高速缓存器48中成批地删除不被有效利用的缓存数据(S234)。
响应于该指令,高速缓存管理单元38根据缓存表386中的信息来指定当前不被有效利用的缓存数据。例如,可以计算每个缓存数据的使用频率的索引值,该索引值通过“访问计数值÷当前分配的页的总数”给出。如果该索引值大于或等于预定阈值,则可以将该缓存数据确定为“当前被有效利用”,如果该索引值小于所述阈值,则可以将该缓存数据确定为不是“当前被有效利用”的。然后,从窗体高速缓存器48中成批地删除在被确定为不是“当前被有效利用”的指定的缓存数据中其参照计数值等于0的缓存数据(即,当前还没有被参照的缓存数据)。
对于例如在作业的初始部分中利用而稍后不利用的缓存数据,或者对于在最近的页中开始利用的缓存数据,通过“访问计数值÷当前分配的页的总数”给出的值较低。由于后者的缓存数据被最近利用,因此后者的缓存数据被成批地删除的可能性较小,这是因为其参照计数值大于或等于1。
作为替换,如图22作为示例示出的那样,缓存表386可以在累计访问计数值之外管理最近访问计数值,可以在S234中成批地删除具有较小最近访问计数值(例如,小于预定阈值的最近访问计数值)的缓存数据。“最近访问计数值”的示例可以包括从目前开始对最近页面的访问计数值的总和,最近页面的数量等于预定值。
图23示出了根据第二示例修改例的用于窗体解释器36-f的整个处理过程。在所示的过程中,可以用于切换操作模式的S17和S18的处理被添加到用于图4中作为示例示出的逻辑页面解释器36-pa和窗体解释器36-f的整个处理过程中。
在图23所示的过程中,一旦从页面分配器34分配了新的页面(S12),窗体解释器36-f确定是否进行操作模式的切换(S17)。如果“不正在进行操作模式的切换”,则处理前进到S14。从而,执行实质上与图4中所示的相同的处理。如果“正在进行操作模式的切换”,则执行页面同步处理(S18)。
“正在进行操作模式的切换”的状态是前端装置30的操作模式正在被从当前操作模式切换为指定操作模式的状态(转换阶段)。该状态下,前端装置30中的窗体解释器36-f和逻辑页面解释器36-pa执行下述页面同步处理。在页面同步处理期间,窗体解释器36-f或逻辑页面解释器36-pa中止处理并进入等待状态,其他解释器进行处理,从而允许窗体解释器36-f和逻辑页面解释器36-pa正处理的页面的同步。在“正在进行操作模式的切换”的状态下,不对操作模式进行切换,直到“正在进行操作模式的切换”的状态被释放为止才进行切换。
在所示的示例中,一旦接收到用于切换操作模式的指令,前端装置30就进入“正在进行操作模式的切换”的状态。该状态下,前端装置30准备进行操作模式的切换,但是不对操作模式进行切换。之后,“正在进行操作模式的切换”的状态继续,直到完成页面同步处理为止。当完成页面同步处理时,“正在进行操作模式的切换”的状态被释放,操作模式被切换。在所示的示例中,页面分配器34根据与逻辑页面解释器36-pa和窗体解释器36-f已被分配到哪页相关的信息以及由与高速缓存管理单元38管理的当前正被缓存的缓存数据的总量相关的信息,来确定是否需要上述在项(a)和(b)中给出的在各个方向上切换操作模式。如果需要操作模式的切换,则页面分配器34指示窗体解释器36-f切换操作模式。根据该指令,窗体解释器36-f进入“正在进行操作模式的切换”的状态,并且执行页面同步处理(S18)。
页面同步处理是用于使并行操作的逻辑页面解释器36-pa和窗体解释器36-f所执行的页面处理的进度相匹配(即,使得并行操作的逻辑页面解释器36-pa和窗体解释器36-f正处理的页码相一致)的处理。
图24示出了页面同步处理(S18)的处理过程的示例。在所示的示例中,窗体解释器36-f确定窗体解释器36-f当前正处理的页的页码Nf是否等于多个逻辑页面解释器36-pa当前正处理的页数中的最大页码Np(S130)。值Nf和Np可以通过询问页分配器34来获得。如果值Nf和Np不相等,则对窗体的处理和对逻辑页面的处理不同步。该情况下,窗体解释器36-f进一步比较值Nf和Np,以确定值Nf是否大于值Np(S132)。
如果确定结果为否定的(否),则表示用于解释逻辑页面的处理超前于用于解释窗体的处理。因此,窗体解释器36-f指示每个逻辑页面解释器36-pa中断处理(S134)。一旦接收到该指示,每个逻辑页面解释器36-pa在例如完成当前正处理的页面的中间数据的生成之后立即中止处理,并进入等待状态而不请求页面分配器34分配后续页。处理中止继续,直到接收到处理恢复指令为止。在S134的处理之后,窗体解释器36-f前进到S14(图23),并执行用于对当前页面中的窗体进行解释以及生成中间数据的处理。一旦分配了后续页(图23中的S12),窗体解释器36-f执行图24所示的页面同步处理,这是因为其仍然处于“正在进行操作模式的切换”的状态中。以此方式,按顺序重复执行S130、S132、S134、S14、S12、S17和S130的处理循环,直到窗体解释器36-f的处理赶上已中止的逻辑页面解释器36-pa的处理进度为止。
当窗体解释器36-f的处理进度赶上逻辑页面解释器36-pa的处理进度时,S130的确定结果为肯定的(是)。该情况下,窗体解释器36-f退出“正在进行操作模式的切换”的状态,并且切换其操作模式。窗体解释器36-f进一步确定是否已向逻辑页面解释器36-pa发出处理中断指令(S136)。如果已发出处理中断指令,则窗体解释器36-f向逻辑页面解释器36-pa发出处理恢复指令(S138)。响应于该处理恢复指令,每个逻辑页面解释器36-pa切换其操作模式,并恢复处理。
如果S132的确定结果为肯定的(是),则窗体解释器36-f进入等待状态而不对在S12中分配的页面进行处理(S133),然后返回到S130。以此方式,按顺序重复执行S130、S132、S133、S12、S17和S130的处理循环,直到逻辑页面解释器36-pa的处理赶上处于等待状态的窗体解释器36-f的处理进度为止。当逻辑页面解释器36-pa的处理进度赶上窗体解释器36-f的处理进度时,S130的确定结果为肯定的(是)。然后,窗体解释器36-f切换其操作模式,并指示每个逻辑页面解释器36-pa切换逻辑页面解释器36-pa的操作模式。
上述页面同步处理是示例。当切换操作模式时,执行页面同步处理,从而允许切换后的操作模式中的处理以窗体解释器36-f的处理进度与逻辑页面解释器36-pa的处理进度相匹配的状态开始。
例如,在非进程间通信模式中,逻辑页面解释器36-pa正处理其页码大于窗体解释器36-f当前正处理的页码的页面。此时,包含用于参照还没有创建的缓存数据的缓存参照命令的页面的中间数据有可能存在于中间数据缓冲器42中。假设此时操作模式由于缓存数据的总量已接近窗体高速缓存器48的容量而从非进程间通信模式切换到进程间通信模式。该情况下,可以根据到进程间通信模式的切换来从窗体高速缓存器48中删除现有的缓存数据,以将新生成的缓存数据存储在窗体高速缓存器48中。因此,可能从窗体高速缓存器48中删除存储在中间数据缓冲器42中的页面所参照的、还没有被渲染器44处理的缓存数据,从而导致不能生成该页面的图像的可能性。
另外,在进程间通信模式中,逻辑页面解释器36-pa正处理其页码大于窗体解释器36-f当前正处理的页码的页面。该情形下,响应于来自一个逻辑页面解释器36-pa的关于新出现的窗体的缓存数据是否存在的询问,高速缓存管理单元38返回表示“无缓存数据”的响应,并且相应的逻辑页面解释器36-pa创建不参照缓存的中间数据(包含窗体的中间数据)。之后,在窗体解释器36-f对窗体进行处理时,该窗体的缓存数据可以被登记在窗体高速缓存器48中。但是,很难确定所登记的缓存数据是否会用于随后的页面。以此方式,有可能登记不会被参照的缓存数据。
作为示例,上述不便可以通过在操作模式的切换期间执行页面同步处理来解决。
在图24所示的示例中,执行页面同步处理,以使得逻辑页面解释器36-pa和窗体解释器36-f正处理的页面具有相同的页码。这仅仅是示例。作为替换,可以执行同步处理以使得窗体解释器36-f正处理的页面的页码稍微大于逻辑页面解释器36-pa正处理的页面的页面。即,如果窗体解释器36-f正处理的页面稍微超前于逻辑页面解释器36-pa正处理的页面,则逻辑页面解释器36-pa正处理的页面中所包含的窗体的缓存数据实质上总是存在于窗体高速缓存器48中,无论处于非进程间通信模式还是处于进程间通信模式。这使得使用并行处理以及利用缓存的效果最有效,能够实现高速处理。如果窗体解释器36-f正处理的页面远远超前于逻辑页面解释器36-pa正处理的页面,则可能在使用缓存数据来渲染逻辑页面之前由于高速缓存器的可用容量的严重短缺等而删除窗体解释器36-f所创建的缓存数据。这种不便可以通过在操作模式的切换期间执行同步处理来解决,从而使得窗体解释器36-f正处理的页面稍微超前于逻辑页面解释器36-pa正处理的页面,并且可以提供高速处理。
作为替换,可以在某一范围内执行页面同步处理,以使得窗体解释器36-f正处理的页面的页码与逻辑页面解释器36-pa正处理的页面的页码相同,或者使得窗体解释器36-f正处理的页面的页码稍微大于逻辑页面解释器36-pa正处理的页面的页码。
在图23和图24所示的示例中,窗体解释器36-f执行页面同步处理。作为代替,页面分配器34可以执行页面同步处理,或者可以提供专用于页面同步处理的功能模块。
窗体高速缓存器48和高速缓存管理单元38在从进程间通信模式切换为非进程间通信模式时可以不必被重置(或清零)。切换后,每次窗体解释器36-f从PDL数据中找到一个将要缓存的窗体时,窗体解释器36-f可以向高速缓存管理单元38询问对应于该窗体的缓存项是否存在。
另外,每个缓存项的访问计数值在从进程间通信模式切换为非进程间通信模式时可以被重置。这对于图21所示的操作模式切换方法来说可能尤其有效。当在S224中将操作模式切换为非进程间通信模式时,响应于S232中检测到的缓存的命中率的下降而重置访问计数值允许清除已进行的访问次数相关的信息。访问计数值可以反映出缓存的较近的使用状态,从而增大缓存使用效率。
另外,窗体高速缓存器48和高速缓存管理单元38在从非进程间通信模式切换为进程间通信模式时可以不必被重置(或清零)。切换后,窗体解释器36-f可以通知高速缓存管理单元38是否要缓存窗体的中间数据。
已参照图23和图24描述了用于窗体解释器36-f的整个处理过程的示例。用于每个逻辑页面解释器36-pa的整个处理过程可以类似于图4中所示的过程。
接下来,将参照图25来描述用于每个逻辑页面解释器36-pa的按命令的处理过程(图4中的S22的详细过程)的示例。在图25所示的过程中,根据图5中作为示例示出的示例实施例在过程中添加了S41和S44的处理。
在图25所示的过程中,每个逻辑页面解释器36-pa生成对应于窗体的缓存ID(S40),然后确定当前操作模式是否为进程间通信模式(S41)。
如果当前操作模式为进程间通信模式,则逻辑页面解释器36-pa执行进程间通信,并且使用缓存ID作为变元向高速缓存管理单元38发送询问请求,从而询问对应于该缓存ID的缓存数据是否存在于窗体高速缓存器48中(S44)。如果响应于该询问而从高速缓存管理单元38发送表示“相应的缓存数据存在”的响应(S44的确定结果为肯定的(是)),则逻辑页面解释器36-pa前进至S42,生成并输出用于参照该缓存ID的参照命令。如果响应于该询问而返回了表示“相应的缓存数据不存在”的响应,逻辑页面解释器36-pa将该窗体的PDL数据扩展至存储器(S38),对该PDL数据进行解释以生成该窗体的中间数据(S32),并输出所生成的中间数据(S34)。因此,在进程间通信模式中,检查缓存数据是否存在于窗体高速缓存器48中,并且仅当确认缓存数据存在时才创建参照该缓存数据的命令。
如果当前操作模式为非进程间通信模式(S41的确定结果为否定的(否)),则逻辑页面解释器36-pa前进至S42,在S42中,逻辑页面解释器36-pa生成用于参照缓存ID的参照命令,并输出该参照命令。在非进程间通信模式中,由于确保了必要的缓存数据可获得,因此不询问高速缓存管理单元38而创建参照缓存数据的命令。该处理实质上与图5所示的示例实施例中的处理相同。
接下来,将参照图26来描述用于窗体解释器36-f的按命令的处理过程(图23中S22的详细过程)的示例。在图26所示的过程中,在图6中作为示例示出的示例实施例中的过程中添加了S55、S57、以及S60至S66的处理。
在图26所示的过程中,窗体解释器36-f生成对应于窗体的缓存ID(S54),然后确定当前操作模式是否为进程间通信模式(S55)。
如果当前操作模式为非进程间通信模式(S55的确定结果为否定的(否)),则窗体解释器36-f生成该窗体的中间数据(S56),并且向高速缓存管理单元38发送登记请求,以将该中间数据登记在窗体高速缓存器48中作为缓存数据(S57)。响应于该登记请求,高速缓存管理单元38将该缓存数据相关的信息登记在高速缓存管理单元38中。然后,窗体解释器36-f将所创建的中间数据与相应的缓存ID关联地发送给窗体高速缓存器48,从而登记该缓存数据(S58)。在S57和S58的处理中,如在上述示例实施例中的那样,窗体解释器36-f向高速缓存管理单元38询问是否已登记了该窗体的缓存数据,如果已登记了该缓存数据,则不对该缓存数据进行冗余登记。以此方式,非进程间通信模式中的处理基本上与根据图6所示的上述示例实施例的处理相同。
如果当前操作模式为进程间通信模式(S55的确定结果为肯定的(是)),则窗体解释器36-f使用缓存ID作为变元向高速缓存管理单元38发送询问请求,以询问对应于该缓存ID的缓存数据是否存在于窗体高速缓存器48中(S60)。如果响应于该询问而从高速缓存管理单元38发送表示“相应的缓存数据存在”的响应(S60的确定结果为肯定的(是)),则窗体解释器36-f结束处理,以避免相同缓存数据的冗余生成和登记。
如果响应于S60中的询问而从高速缓存管理单元38发送表示“相应的缓存数据不存在”的响应,则窗体解释器36-f生成该窗体的中间数据(S62),并且向高速缓存管理单元38发送包含所生成的中间数据的大小和缓存ID的区域保留请求。如果响应于该请求而返回表示“成功的区域保留”的响应,则窗体解释器36-f向高速缓存管理单元38发送登记请求以登记该中间数据(S64)。由于可以将所创建的窗体的中间数据登记在窗体高速缓存器48中(S66的确定结果为肯定的(是)),因此窗体解释器36-f将该中间数据与缓存ID关联地发送给窗体高速缓存器48(S58)。如果响应于该区域保留请求而从高速缓存管理单元38发送了表示“区域保留失败”的响应,则S66的确定结果为否定的(否),窗体解释器36-f结束处理而不将所生成的窗体的中间数据登记在高速缓存管理单元38和窗体高速缓存器48中。
已描述了根据第二示例修改例的用于前端装置30的处理过程的示例。根据第二示例修改例的用于后端装置40(具体地为渲染器44)的处理过程类似于上述示例实施例中的处理过程(参见图7和图8)。
已描述了本发明的示例实施例和示例修改例。上述示例实施例和示例修改例仅仅是示例,以帮助理解本发明,本发明的范围不限于上述示例实施例和示例修改例。例如,在上述示例实施例和示例修改例中,在后端装置40中提供窗体高速缓存器48,这仅仅是示例。窗体高速缓存器48可以位于任意位置,只要可以从每个解释器36和渲染器44访问窗体高速缓存器48即可。尽管在上述示例实施例和示例修改例中,使用了一个渲染器44,但是也可以使用多个渲染器44。
在另一示例修改例中,配置控制器39可以在包含专用于窗体解释的窗体解释器36-f的第一配置(参见图3)与不使用窗体高速缓存器48的第三配置(参见图12)之间切换前端装置30的配置。在该示例修改例中,不采用使用逻辑页面解释器36-pb(其对逻辑页面进行解释以及对窗体进行缓存)的第二配置(参见图9)。在该示例修改例中,如果解释器启动数量确定单元37所确定的解释器36的启动数量小于或等于预定阈值N,则利用第三配置来实现前端装置30,如果解释器36的启动数量大于阈值N,则前端装置30被实现为第一配置。
本发明的上述示例实施例的描述为了示出和描述的目的而提供。其不旨在穷尽或将本发明限制为所公开的精确形式。显然,许多修改例和变型例对于本领域技术人员而言是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理及其实际应用,从而使得本领域其他技术人员能够针对各种实施例以及利用适用于特定用途的各种修改例来理解本发明。本发明的保护范围由所附的权利要求及其等价物限定。
Claims (19)
1.一种图像形成系统,包含:
确定单元,其确定硬件计算资源量,以确定所确定的硬件计算资源量能够实现的解释单元的数量;以及
控制器,其执行控制,以根据确定单元所确定的数量来确定使第一印刷数据处理装置和第二印刷数据处理装置中的哪个印刷数据处理装置进行操作,
其中,第一印刷数据处理装置包含:
两个或更多第一逻辑页面解释单元,其并行地解释印刷数据中的不同逻辑页面,并输出解释结果,和
一个高速缓存解释单元,其对印刷数据中的每个逻辑页面所包含的将要缓存的元素进行解释,并将解释结果存储在高速缓存单元中,
一旦从印刷数据中检测到其解释结果还没有存储于高速缓存单元中的将要缓存的元素,则高速缓存解释单元解释所检测到的将要缓存的元素,并将该解释结果与根据预定生成规则从将要缓存的元素的数据生成的缓存识别信息关联地存储在高速缓存单元中,
两个或更多第一逻辑页面解释单元中的每一个针对正被处理的逻辑页面中所包含的将要缓存的元素,生成包含根据所述生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,而不是解释将要缓存的元素,并且将所生成的缓存参照命令并入逻辑页面的解释结果中,作为将要缓存的元素的解释结果,
其中,第二印刷数据处理装置包含:
第二逻辑页面解释单元,其对印刷数据的每个逻辑页面进行解释,并输出解释结果,
第二逻辑页面解释单元针对逻辑页面中其解释结果还没有存储在高速缓存单元中的将要缓存的元素,解释该将要缓存的元素,并将解释结果与根据所述生成规则从将要缓存的元素的数据生成的缓存识别信息关联地存储在高速缓存单元中,
第二逻辑页面解释单元针对逻辑页面中其解释结果已存储在高速缓存单元中的将要缓存的元素,生成包含根据所述生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,而不是解释将要缓存的元素,并且将所生成的缓存参照命令并入逻辑页面的解释结果中,作为将要缓存的元素的解释结果,
其中,第一印刷数据处理装置和第二印刷数据处理装置将通过第一逻辑页面解释单元或第二逻辑页面解释单元获得的印刷数据的各逻辑页面的解释结果提供给印刷图像数据生成装置,
其中,印刷图像数据生成装置是这样的装置,其对从第一印刷数据处理装置或第二印刷数据处理装置提供的各逻辑页面的解释结果进行处理,以生成各逻辑页面的印刷图像数据,以及
其中,一旦在逻辑页面的解释结果中检测到缓存参照命令,印刷图像数据生成装置就从高速缓存单元获取与该缓存参照命令中所包含的缓存识别信息相对应的解释结果,使用所获取的解释结果来生成与该缓存识别信息相对应的将要缓存的元素的印刷图像数据,并且将该印刷图像数据与逻辑页面的印刷图像数据组合。
2.根据权利要求1所述的图像形成系统,其中,如果确定单元所确定的数量大于或等于1并且小于N,其中N为大于1的预定整数,则控制器使第二印刷数据处理装置进行操作,以及,如果确定单元所确定的数量大于或等于N,则控制器使第一印刷数据处理装置进行操作。
3.根据权利要求2所述的图像形成系统,其中,控制器执行控制以根据确定单元的确定结果来确定使第一印刷数据处理装置、第二印刷数据处理装置、和第三印刷数据处理装置中的哪个印刷数据处理装置进行操作,
其中,第三印刷数据处理装置包含:
两个或更多第三逻辑页面解释单元,其并行地对印刷数据中的不同逻辑页面进行解释,并输出解释结果,
在正被处理的逻辑页面包含将要缓存的元素的情况下,两个或更多第三逻辑页面解释单元还对将要缓存的元素进行解释,并且将解释结果并入逻辑页面的解释结果中,以及
其中,如果确定单元所确定的数量等于1,则控制器使第二印刷数据处理装置进行操作,以及,如果确定单元所确定的数量大于或等于2并且小于N,则控制器使第三印刷数据处理装置进行操作。
4.根据权利要求1所述的图像形成系统,其中,两个或更多第一逻辑页面解释单元中的每一个具有第一操作模式和第二操作模式,
其中,在第一操作模式中,两个或更多第一逻辑页面解释单元中的每一个针对正被处理的逻辑页面中所包含的将要缓存的元素,生成包含根据所述生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,而不是解释将要缓存的元素,并且将所生成的缓存参照命令并入逻辑页面的解释结果中,作为将要缓存的元素的解释结果,
其中,在第二操作模式中,两个或更多第一逻辑页面解释单元中的每一个针对正被处理的逻辑页面中所包含的将要缓存的元素,执行询问通信,以询问将要缓存的元素的解释结果是否已存储在高速缓存单元中,
在将要缓存的元素的解释结果已存储在高速缓存单元中被确定为询问通信的结果的情况下,两个或更多第一逻辑页面解释单元中的每一个生成包含根据所述生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,并且将所生成的缓存参照命令并入逻辑页面的解释结果中,作为将要缓存的元素的解释结果,以及
在将要缓存的元素的解释结果还没有被存储在高速缓存单元中被确定为询问通信的结果的情况下,两个或更多第一逻辑页面解释单元中的每一个解释该将要缓存的元素,并且将解释结果并入逻辑页面的解释结果中,以及
其中,图像形成系统还包含模式控制器,其执行控制以在第一操作模式和第二操作模式之间切换两个或更多第一逻辑页面解释单元的操作模式。
5.根据权利要求2所述的图像形成系统,其中,两个或更多第一逻辑页面解释单元中的每一个具有第一操作模式和第二操作模式,
其中,在第一操作模式中,两个或更多第一逻辑页面解释单元中的每一个针对正被处理的逻辑页面中所包含的将要缓存的元素,生成包含根据所述生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,而不是解释将要缓存的元素,并且将所生成的缓存参照命令并入逻辑页面的解释结果中,作为将要缓存的元素的解释结果,
其中,在第二操作模式中,两个或更多第一逻辑页面解释单元中的每一个针对正被处理的逻辑页面中所包含的将要缓存的元素,执行询问通信,以询问将要缓存的元素的解释结果是否已存储在高速缓存单元中,
在将要缓存的元素的解释结果已存储在高速缓存单元中被确定为询问通信的结果的情况下,两个或更多第一逻辑页面解释单元中的每一个生成包含根据所述生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,并且将所生成的缓存参照命令并入逻辑页面的解释结果中,作为将要缓存的元素的解释结果,以及
在将要缓存的元素的解释结果还没有被存储在高速缓存单元中被确定为询问通信的结果的情况下,两个或更多第一逻辑页面解释单元中的每一个解释该将要缓存的元素,并且将解释结果并入逻辑页面的解释结果中,以及
其中,图像形成系统还包含模式控制器,其执行控制以在第一操作模式和第二操作模式之间切换两个或更多第一逻辑页面解释单元的操作模式。
6.根据权利要求3所述的图像形成系统,其中,两个或更多第一逻辑页面解释单元中的每一个具有第一操作模式和第二操作模式,
其中,在第一操作模式中,两个或更多第一逻辑页面解释单元中的每一个针对正被处理的逻辑页面中所包含的将要缓存的元素,生成包含根据所述生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,而不是解释将要缓存的元素,并且将所生成的缓存参照命令并入逻辑页面的解释结果中,作为将要缓存的元素的解释结果,
其中,在第二操作模式中,两个或更多第一逻辑页面解释单元中的每一个针对正被处理的逻辑页面中所包含的将要缓存的元素,执行询问通信,以询问将要缓存的元素的解释结果是否已存储在高速缓存单元中,
在将要缓存的元素的解释结果已存储在高速缓存单元中被确定为询问通信的结果的情况下,两个或更多第一逻辑页面解释单元中的每一个生成包含根据所述生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,并且将所生成的缓存参照命令并入逻辑页面的解释结果中,作为将要缓存的元素的解释结果,以及
在将要缓存的元素的解释结果还没有被存储在高速缓存单元中被确定为询问通信的结果的情况下,两个或更多第一逻辑页面解释单元中的每一个解释该将要缓存的元素,并且将解释结果并入逻辑页面的解释结果中,以及
其中,图像形成系统还包含模式控制器,其执行控制以在第一操作模式和第二操作模式之间切换两个或更多第一逻辑页面解释单元的操作模式。
7.根据权利要求4所述的图像形成系统,其中,模式控制器使两个或更多第一逻辑页面解释单元在第二操作模式中进行操作,直到两个或更多第一逻辑页面解释单元完成印刷数据中预定数量的初始页面的解释为止,并且,在两个或更多第一逻辑页面解释单元完成印刷数据中预定数量的初始页面的解释时,模式控制器将两个或更多第一逻辑页面解释单元的操作模式切换为第一操作模式。
8.根据权利要求5所述的图像形成系统,其中,模式控制器使两个或更多第一逻辑页面解释单元在第二操作模式中进行操作,直到两个或更多第一逻辑页面解释单元完成印刷数据中预定数量的初始页面的解释为止,并且,在两个或更多第一逻辑页面解释单元完成印刷数据中预定数量的初始页面的解释时,模式控制器将两个或更多第一逻辑页面解释单元的操作模式切换为第一操作模式。
9.根据权利要求6所述的图像形成系统,其中,模式控制器使两个或更多第一逻辑页面解释单元在第二操作模式中进行操作,直到两个或更多第一逻辑页面解释单元完成印刷数据中预定数量的初始页面的解释为止,并且,在两个或更多第一逻辑页面解释单元完成印刷数据中预定数量的初始页面的解释时,模式控制器将两个或更多第一逻辑页面解释单元的操作模式切换为第一操作模式。
10.根据权利要求4所述的图像形成系统,其中,模式控制器监视高速缓存单元的可用容量,并且在高速缓存单元的可用容量低于预定阈值同时两个或更多第一逻辑页面解释单元正在第一操作模式中进行操作的情况下,模式控制器将两个或更多第一逻辑页面解释单元的操作模式切换为第二操作模式。
11.根据权利要求5所述的图像形成系统,其中,模式控制器监视高速缓存单元的可用容量,并且在高速缓存单元的可用容量低于预定阈值同时两个或更多第一逻辑页面解释单元正在第一操作模式中进行操作的情况下,模式控制器将两个或更多第一逻辑页面解释单元的操作模式切换为第二操作模式。
12.根据权利要求6所述的图像形成系统,其中,模式控制器监视高速缓存单元的可用容量,并且在高速缓存单元的可用容量低于预定阈值同时两个或更多第一逻辑页面解释单元正在第一操作模式中进行操作的情况下,模式控制器将两个或更多第一逻辑页面解释单元的操作模式切换为第二操作模式。
13.根据权利要求7所述的图像形成系统,其中,模式控制器监视高速缓存单元的可用容量,并且在高速缓存单元的可用容量低于预定阈值同时两个或更多第一逻辑页面解释单元正在第一操作模式中进行操作的情况下,模式控制器将两个或更多第一逻辑页面解释单元的操作模式切换为第二操作模式。
14.根据权利要求8所述的图像形成系统,其中,模式控制器监视高速缓存单元的可用容量,并且在高速缓存单元的可用容量低于预定阈值同时两个或更多第一逻辑页面解释单元正在第一操作模式中进行操作的情况下,模式控制器将两个或更多第一逻辑页面解释单元的操作模式切换为第二操作模式。
15.根据权利要求9所述的图像形成系统,其中,模式控制器监视高速缓存单元的可用容量,并且在高速缓存单元的可用容量低于预定阈值同时两个或更多第一逻辑页面解释单元正在第一操作模式中进行操作的情况下,模式控制器将两个或更多第一逻辑页面解释单元的操作模式切换为第二操作模式。
16.根据权利要求4至15中任一项所述的图像形成系统,还包含批删除单元,其根据两个或更多第一逻辑页面解释单元所执行的询问通信来监视高速缓存单元的命中率以及高速缓存单元中所存储的将要缓存的每个元素的中间数据的使用状态,高速缓存单元的命中率表示高速缓存单元中所存储的将要缓存的元素的解释结果与关于询问通信的将要缓存的元素的解释结果之比,在命中率低于预定阈值同时两个或更多第一逻辑页面解释单元正在第二操作模式中进行操作的情况下,批删除单元根据使用状态来指定其中间数据的近期使用频率低于预定阈值的将要缓存的元素组,并且从高速缓存单元中成批地删除所指定的将要缓存的元素组的中间数据。
17.根据权利要求16所述的图像形成系统,其中,模式控制器根据批删除单元所执行的删除将两个或更多第一逻辑页面解释单元的操作模式从第二操作模式切换为第一操作模式。
18.一种图像形成系统,包含:
确定单元,其确定硬件计算资源量,以确定所确定的硬件计算资源量能够实现的解释单元的数量;以及
控制器,其执行控制,以根据确定单元所确定的数量来确定使第一印刷数据处理装置和第二印刷数据处理装置中的哪个印刷数据处理装置进行操作,
其中,第一印刷数据处理装置包含:
两个或更多第一逻辑页面解释单元,其并行地解释印刷数据中不同的逻辑页面,并且输出解释结果,和
一个高速缓存解释单元,其对印刷数据中每个逻辑页面中所包含的将要缓存的元素进行解释,并且将解释结果存储在高速缓存单元中,
一旦从印刷数据中检测到其解释结果还没有存储在高速缓存单元中的将要缓存的元素,则高速缓存解释单元对所检测到的将要缓存的元素进行解释,并且将解释结果与根据预定生成规则从将要缓存的元素的数据生成的缓存识别信息关联地存储在高速缓存单元中,
两个或更多第一逻辑页面解释单元中的每一个针对正被处理的逻辑页面中所包含的将要缓存的元素,生成包含根据所述生成规则从将要缓存的元素的数据生成的缓存识别信息的缓存参照命令,而不是解释将要缓存的元素,并且将所生成的缓存参照命令并入逻辑页面的解释结果中,作为将要缓存的元素的解释结果,
其中,第二印刷数据处理装置包含:
两个或更多第二逻辑页面解释单元,其并行地对印刷数据中不同的逻辑页面进行解释,并输出解释结果,
在正被处理的逻辑页面包含将要缓存的元素的情况下,两个或更多第二逻辑页面解释单元还解释该将要缓存的元素,并且将解释结果并入逻辑页面的解释结果中,
其中,第一印刷数据处理装置和第二印刷数据处理装置将通过第一逻辑页面解释单元或第二逻辑页面解释单元获得的印刷数据的各逻辑页面的解释结果提供给印刷图像数据生成装置,
其中,印刷图像数据生成装置是这样的装置,其对从第一印刷数据处理装置或第二印刷数据处理装置提供的各逻辑页面的解释结果进行处理,以生成各逻辑页面的印刷图像数据,以及
其中,一旦在逻辑页面的解释结果中检测到缓存参照命令,印刷图像数据生成装置就从高速缓存单元获取与该缓存参照命令中所包含的缓存识别信息相对应的解释结果,使用所获取的解释结果来生成与该缓存识别信息相对应的将要缓存的元素的印刷图像数据,并且将该印刷图像数据与逻辑页面的印刷图像数据组合。
19.根据权利要求18所述的图像形成系统,其中,如果确定单元所确定的数量小于N,其中N为大于1的预定整数,则控制器使第二印刷数据处理装置进行操作,以及,如果确定单元所确定的数量大于或等于N,则控制器使第一印刷数据处理装置进行操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012-244744 | 2012-11-06 | ||
JP2012244744A JP5288039B1 (ja) | 2012-11-06 | 2012-11-06 | 印刷画像処理システムおよびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103809922A CN103809922A (zh) | 2014-05-21 |
CN103809922B true CN103809922B (zh) | 2018-03-16 |
Family
ID=49274079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310401292.5A Expired - Fee Related CN103809922B (zh) | 2012-11-06 | 2013-09-05 | 图像形成系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8705108B1 (zh) |
JP (1) | JP5288039B1 (zh) |
CN (1) | CN103809922B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5408323B1 (ja) * | 2012-10-11 | 2014-02-05 | 富士ゼロックス株式会社 | 印刷画像処理システムおよびプログラム |
JP5344075B1 (ja) * | 2012-10-11 | 2013-11-20 | 富士ゼロックス株式会社 | 印刷画像処理システムおよびプログラム |
JP6381187B2 (ja) * | 2013-08-09 | 2018-08-29 | キヤノン株式会社 | 情報処理装置、情報処理方法、及びプログラム |
US9875249B1 (en) * | 2015-03-31 | 2018-01-23 | Maginatics Llc | Reducing database fragmentation |
JP6432438B2 (ja) * | 2015-04-28 | 2018-12-05 | 富士ゼロックス株式会社 | データ処理装置及びプログラム |
US9892346B2 (en) * | 2015-12-18 | 2018-02-13 | Océ-Technologies B.V. | Method of converting image data from source format into target format |
JP6827798B2 (ja) * | 2016-12-21 | 2021-02-10 | キヤノン株式会社 | 画像形成装置、画像形成装置の制御方法、プログラム。 |
WO2020222900A1 (en) * | 2019-04-30 | 2020-11-05 | Hewlett-Packard Development Company, L.P. | Storage device decoupling determination |
JP2021071811A (ja) * | 2019-10-29 | 2021-05-06 | 富士ゼロックス株式会社 | 印刷制御装置、印刷システム、及び印刷制御プログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236531A (zh) * | 2010-04-30 | 2011-11-09 | 富士施乐株式会社 | 打印文档转换设备和打印文档转换方法 |
CN102681804A (zh) * | 2011-03-04 | 2012-09-19 | 佳能株式会社 | 图像处理装置及图像处理方法 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5333246A (en) * | 1990-04-05 | 1994-07-26 | Seiko Epson Corporation | Page-description language interpreter for a parallel-processing system |
US5269013A (en) * | 1991-03-20 | 1993-12-07 | Digital Equipment Corporation | Adaptive memory management method for coupled memory multiprocessor systems |
JP3611003B2 (ja) | 1996-09-24 | 2005-01-19 | 富士ゼロックス株式会社 | 画像処理装置 |
US6429949B1 (en) * | 1998-10-15 | 2002-08-06 | Electronics For Imaging, Inc. | Low memory printer controller |
JP2000211210A (ja) * | 1999-01-25 | 2000-08-02 | Canon Inc | 複合機器の制御装置及び方法 |
JP2000335022A (ja) * | 1999-05-31 | 2000-12-05 | Toshiba Corp | プリンタ制御装置 |
JP4199519B2 (ja) * | 2002-11-05 | 2008-12-17 | パナソニック株式会社 | メモリ管理装置及びメモリ管理方法 |
US20040174570A1 (en) * | 2002-12-02 | 2004-09-09 | Plunkett Richard Thomas | Variable size dither matrix usage |
US7103723B2 (en) * | 2003-02-25 | 2006-09-05 | Intel Corporation | Priority-based code cache management |
US8619310B2 (en) * | 2007-05-25 | 2013-12-31 | Kyocera Document Solutions, Inc. | Image forming apparatus |
JP4501593B2 (ja) * | 2004-08-25 | 2010-07-14 | セイコーエプソン株式会社 | 画像処理を並列処理で実行する際の負荷の割り付け |
US7403945B2 (en) * | 2004-11-01 | 2008-07-22 | Sybase, Inc. | Distributed database system providing data and space management methodology |
JP4543340B2 (ja) * | 2007-12-17 | 2010-09-15 | 富士ゼロックス株式会社 | 画像処理装置および画像形成システムとプログラム |
JP5247603B2 (ja) * | 2008-09-04 | 2013-07-24 | キヤノン株式会社 | 情報処理装置、制御方法、制御プログラム |
JP2010109967A (ja) * | 2008-10-01 | 2010-05-13 | Canon Inc | 画像処理装置、方法、及び、プログラム |
JP5183444B2 (ja) * | 2008-11-28 | 2013-04-17 | キヤノン株式会社 | 印刷制御装置、印刷制御方法、及びコンピュータプログラム |
JP5333763B2 (ja) * | 2009-07-22 | 2013-11-06 | 富士ゼロックス株式会社 | 画像処理装置、画像処理システムおよび画像処理プログラム |
JP5370044B2 (ja) | 2009-09-24 | 2013-12-18 | 富士ゼロックス株式会社 | 画像処理装置、画像形成装置、およびプログラム |
JP5531531B2 (ja) | 2009-09-25 | 2014-06-25 | 富士ゼロックス株式会社 | 画像処理システム及び画像処理プログラム |
JP5446916B2 (ja) | 2010-01-21 | 2014-03-19 | 富士ゼロックス株式会社 | 印刷画像処理システム |
JP5482528B2 (ja) * | 2010-07-14 | 2014-05-07 | 富士ゼロックス株式会社 | 印刷文書変換装置及びプログラム |
JP5482529B2 (ja) * | 2010-07-14 | 2014-05-07 | 富士ゼロックス株式会社 | 印刷文書変換装置及びプログラム |
JP5747489B2 (ja) * | 2010-11-30 | 2015-07-15 | 富士ゼロックス株式会社 | 印刷文書処理システム、キャッシュ装置及びプログラム |
JP5648449B2 (ja) * | 2010-11-30 | 2015-01-07 | 富士ゼロックス株式会社 | 印刷文書処理システム、キャッシュ装置及びプログラム |
JP5691448B2 (ja) | 2010-11-30 | 2015-04-01 | 富士ゼロックス株式会社 | 印刷文書処理システム、キャッシュ装置、データ処理装置及びプログラム |
JP4905604B1 (ja) | 2011-09-26 | 2012-03-28 | 富士ゼロックス株式会社 | 印刷データ処理システム及びプログラム |
-
2012
- 2012-11-06 JP JP2012244744A patent/JP5288039B1/ja not_active Expired - Fee Related
-
2013
- 2013-07-26 US US13/952,021 patent/US8705108B1/en not_active Expired - Fee Related
- 2013-09-05 CN CN201310401292.5A patent/CN103809922B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236531A (zh) * | 2010-04-30 | 2011-11-09 | 富士施乐株式会社 | 打印文档转换设备和打印文档转换方法 |
CN102681804A (zh) * | 2011-03-04 | 2012-09-19 | 佳能株式会社 | 图像处理装置及图像处理方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5288039B1 (ja) | 2013-09-11 |
CN103809922A (zh) | 2014-05-21 |
JP2014093045A (ja) | 2014-05-19 |
US20140126008A1 (en) | 2014-05-08 |
US8705108B1 (en) | 2014-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103809922B (zh) | 图像形成系统 | |
AU2011202617B2 (en) | Print document processing system, cache apparatus, data processing apparatus, program, and print document processing method | |
JP5747489B2 (ja) | 印刷文書処理システム、キャッシュ装置及びプログラム | |
US7167260B2 (en) | Control of distributed printers using virtual printer driver execute module | |
JP5663941B2 (ja) | 印刷文書変換装置およびプログラム | |
CN101221488B (zh) | 信息处理装置及其控制方法 | |
EP1465054A2 (en) | Parallel printing system | |
CN100389385C (zh) | 打印信息处理装置、打印信息处理方法 | |
US8782371B2 (en) | Systems and methods for memory management for rasterization | |
JP2011025422A (ja) | 画像処理装置、画像処理システムおよび画像処理プログラム | |
US8861011B2 (en) | Print image processing system and non-transitory computer readable medium | |
JP2012118746A (ja) | 印刷文書処理システム、キャッシュ装置及びプログラム | |
US8976396B2 (en) | Print image processing system and non-transitory computer readable medium | |
JP2011167857A (ja) | 画像形成装置、画像形成方法、および画像形成プログラム | |
JP5614266B2 (ja) | 印刷文書処理システム、キャッシュ装置、データ処理装置及びプログラム | |
JP3620154B2 (ja) | 印刷システム及び印刷制御方法 | |
US8934121B2 (en) | Coordinated, distributed, reusable document component respository | |
CN100373323C (zh) | 打印控制器、打印系统及其操作方法 | |
JP3384223B2 (ja) | 印刷処理システム | |
JPH08101752A (ja) | プリンタシステムおよびプリンタシステムの印字ジョブ処理方法 | |
US20080212110A1 (en) | Pdf direct printing method utilizing page printing order information for efficient handling of data | |
JP3907484B2 (ja) | 情報処理装置、その制御方法及びプログラム | |
JP3923697B2 (ja) | 印刷制御方法、画像形成システム及び記憶媒体 | |
JP3700367B2 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180316 Termination date: 20210905 |
|
CF01 | Termination of patent right due to non-payment of annual fee |