图像形成装置及其方法

文档序号:2732471阅读:122来源:国知局

专利名称::图像形成装置及其方法
技术领域
:本发明涉及一种通过使用图像数据修正在图像形成期间出现的扫描行弯曲来形成图像的图像形成装置和方法。
背景技术
:近年来,经常使用串联系统并利用电子照相法来提高彩色图像形成装置(激光打印机)的图像形成速度。该系统设置多种类型的染色材料(调色剂)、相等数量的显影器和一个感光鼓,通过将不同颜色的图像依次转印到传送带或记录纸上来形成彩色图像。在利用该串联系统的彩色图像形成装置中,多种因素会导致不同颜色的图像之间的配准误差,因为这些图像利用对应于各种颜色的不同图4象形成单元形成。用于对此进行修正的各种方法被提出。一个导致因素被认为是偏转/扫描激光光束的偏转扫描仪的透镜之间的不均匀性、安装透镜时的位置偏移或向图像形成装置安装偏转扫描仪时的位置偏移。当这种情况发生时,激光光束的扫描行会倾斜或弯曲。由于扫描行的倾斜或弯曲程度对于每种颜色不同,因此以配准误差的形式出现。关于处理配准误差的方法,在日本专利公开No.2002-116394(文献1)中,在组装偏转扫描仪期间使用光学传感器来测量偏转扫描仪中的扫描行弯曲量。然后,在通过根据测量结果机械转动透镜来调节扫描行弯曲之后,利用粘接剂将透镜固定。在日本专利公开No.2003-241131(文献2)中,在向彩色图像形成装置安装偏转扫描仪时,使用光学传感器来测量扫描行倾斜量,通过根据所测量的倾斜机械地倾斜偏转扫描仪来调节扫描行倾斜。在进行了调节后,将偏转扫描仪安装到彩色图像形成装置上并固定到位。另外,日本专利公开No.2004-170755(文献3)中公开了使用光学传感器测量偏转扫描仪中的扫描行倾斜和弯曲量,修正位图数据以消除该倾斜和弯曲,并基于该修正后的图像数据来形成图像。由于通过处理图像数据来修正配准误差,文献3的方法不需要机械调节或组装期间的调节。因此,与文献l和2中公开的方法相比可以更为低成本地处理配准误差。但是,如果使用文献3中公开的方法,则因为执行混合操作来以不同的灰度等级记录当前行的上面或下面的相邻行的数据,因此需要用于存储多个扫描的位图数据的行緩沖器。行緩冲器的数量取决于扫描行弯曲的宽度。例如,如果扫描行弯曲跨图像数据的N行,则要求有足够的行緩冲器以便能够存储图像数据的N行。由于彩色图像形成装置之间的差异,N的值必须适应超过该差异的最大值的行数。当这样确保了大量的行緩冲器时,存储容量同等增加,用于修正位像数据的电路也增加,从而导致成本增加。
发明内容本发明的目的在于解决现有技术的上述问题。本发明的目的在于提供一种使用图像数据修正扫描行弯曲的低成本、结构简单、不需要用于修正扫描行弯曲的行緩沖器的图像形成装置及其方法。根据本发明的第一方面,提供一种用于形成图像的图像形成装置,包括存储单元,用于存储至少多行的图像数据;数据读出单元,用于根据读出开始地址沿行方向从所述存储单元中读出图像数据;设定单元,用于设定行方向上的行切换地址,所述行切换地址用于把将要由所述数据读出单元读出的图像数据的行从第一行切换到第二行;产生单元,用于在所述数据读出单元将图像数据的行从第一行切换到第二行的情况下,产生第二行的读出开始地址,从而使笫一行在行方向上的读出地址与第二行在行方向上的读出地址重叠;控制单元,用于在读出第一行的图像数据时的行方向上的读出地址与行切换地址相同的情况下,根据所述产生单元产生的读出开始地址,控制所述数据读出单元读出第二行的图像数据;半色调处理单元,用于根据所述数据读出单元读出的第一行的图像数据和第二行的图像数据来执行半色调处理;以及图像形成单元,用于根据由半色调处理单元执行了半色调处理后的图像数据来形成图像。根据本发明的第二方面,提供一种用于形成图像的图像形成方法,包括数据读出步骤,根据读出开始地址沿行方向从存储至少多行的图像数据的存储器中读出图像数据;设定步骤,设定行方向上的行切换地址,所述行切换地址用于把将要在所述数据读出步骤中读出的图像数据的行从第一行切换到第二行;产生步骤,在所述数据读出步骤将图像数据的行从第一行切换到第二行的情况下,产生第二行的读出开始地址,从而使第一行在行方向上的读出地址与第二行在行方向上的读出地址重叠;控制步骤,在读出第一行的图像数据时的行方向上的读出地址与行切换地址相同的情况下,根据在所述产生步骤中产生的读出开始地址,控制所述数据读出步骤读出第二行的图4象数据;半色调处理步骤,根据在所述数据读出步骤中读出的第一行的图像数据和第二行的图像数据来执行半色调处理;以及图像形成步骤,根据在半色调处理步骤中执行了半色调处理后的图像数据来形成图像。根据本发明的第三方面,提供一种图像形成装置,包括输入单元,用于按页来接收图像数据;图像数据存储单元,用于存储由所述输入单元接收的图像数据;读出单元,用于根据读出开始地址和读出数据长度读出存储在所述图像数据存储单元中的图像数据,作为读出数据长度的数据段;图像形成单元,用于根据由所述读出单元读出的多个数据段构成的图像数据的扫描行来扫描图像承载体,并且按扫描行在图像承栽体上形成图像;修正信息存储单元,用于存储修正信息,该修正信息用于修正图像承栽体上的扫描行的弯曲;和产生单元,用于根据存储在所述修正信息存储单元中的修正信息,产生多个读出开始地址,其中,所述读出单元一边切换由产生单元产生的多个读出开始地址,一边从图像数据存储单元中读出多个数据段。从以下结合附图对示例性实施例的说明中可以明确本发明的进一步的特征。结合在说明书中并且构成说明书一部分的附图示出了本发明的实施例,并且与说明一起用于解释本发明的原理。图1是示出本发明一个实施例的彩色图像形成装置(多功能外围设备)的结构的框图。图2是表示本发明实施例的打印机控制器的详细结构的框图。图3是表示本发明实施例的打印控制器的DMA控制器的详细结构的框图。图4A和4B描绘出示出本发明实施例的配准误差及其修正的图。图5A5D描绘出示出本发明实施例的配准误差及其修正的图。图6描绘出说明本发明第一实施例的DMA控制器中的指定扫描行弯曲的方法的图。图7A和7B是说明本发明第一实施例的DMA控制器中的地址产生单元的操作的流程图。图8描绘出说明本发明第二实施例的DMA控制器中的指定扫描行弯曲的方法的图。图9A和9B是说明本发明第二实施例的DMA控制器中的地址产生单元的操作的流程图。图10A描绘出说明本发明笫三实施例的DMA控制器中的指定扫描行弯曲的方法的图。图IOB描绘出示出被存储为表的信息(UpDown[i)的图。图ll是示出本发明第三实施例的DMA控制器的结构的框图。图12A和12B是说明本发明第三实施例的DMA控制器中的地址产生单元的操作的流程图。图13A和13B描绘出说明本发明第四实施例的DMA控制器中的指定扫描行弯曲的方法的图。图14A和14B是说明本发明第四实施例的DMA控制器中的地址产生单元的操作的流程图。图15描绘出说明本发明第五实施例的DMA控制器中的指定有效图像区域的存储器地址的方法的图。图16是说明本发明第五实施例的DMA控制器中的地址产生单元的操作的流程图。图17是详细说明在图16的步骤S513中更新状态和地址的处理的流程图。图18描绘出说明本发明第六实施例的DMA控制器中的利用存储器中的地址指定有效图像区域的方法的图。图19是说明本发明第六实施例的DMA控制器中的地址产生单元的操作的流程图。图20是表示本发明第七实施例的打印机控制器的详细结构的框图。图21是表示本发明第七实施例的打印机控制器的DMA控制器的详细结构的框图。图22A和22B描绘出说明本发明第七实施例的DMA控制器中的指定扫描行弯曲的方法的图。图23A23C描绘出说明本发明第七实施例的DMA控制器中的指定环形緩冲器区域的方法的图.图24是说明本发明第七实施例的DMA控制器中的地址产生单元的操作的流程图。图25是说明图24的流程图中的一行处理操作的流程图。图26描绘出说明图像数据被记录在记录介质上的特定记录位置上的状态的图。图27描绘出示出图像数据被记录在记录介质上的、已经从特定记录位置移开的位置上的状态的图。具体实施例方式以下将参照附图详细说明本发明的实施例。以下实施例不用于限制本发明的权利要求,并且,并非在实施例中描述的特征的所有组合都是本发明所必须的。图像形成装置图1是示出本发明一个实施例的彩色图像形成装置(多功能外围设备)100的结构的框图。该图像形成装置100例如由实现多个功能的多功能外围设备(MFP)来实现。图像形成装置100经由网络接口108与网络连接,可以使用网络与连接到网络的外部设备交换图像数据和各种信息。在图1中,包括平台和自动文档馈送器(ADF)的图像读取器105利用光源照射平台上的一张或一堆原稿,在具有透镜的固体图像传感器(未示出)上形成原稿的反面像。图像读取器105由此可以根据来自固体图像传感器的光栅图像信号,以规定的密度(例如600dpi)获得光栅图像页。注意,尽管在各实施例中给出纸文档作为由图像读取器105读取的原稿的一个例子,但也可以读取纸之外的打印物,例如记录介质(例如OHP薄片或胶片等透明原稿或纤维等)。图像形成装置100具有利用打印单元107在记录介质上打印对应于由图像读取器105读取的图像信号的图像的拷贝功能。特别是当制作原稿的一份拷贝时,由数据处理器101对图像信号执行图像处理,产生打印数据,然后该打印数据被输出到打印单元107并被打印在记录介质上。另一方面,当制作原稿的多份拷贝时,打印数据最初被存储在硬盘(HD)等存储单元106中,然后被重复地输出到打印单元107用于指定数量的拷贝,然后打印到打印介质上。注意,使用打印单元107的各种打印控制是通过打印机控制器103实现的。在本实施例中,打印单元107例如包括应用串联系统的激光打印机的打印机引擎。从安装在图像形成装置100中的控制台单元104给出从操作者向图像形成装置IOO发出的指令,这一系列的操作由数据处理器101中的控制器(图2中的CPU308)来控制。控制台单元104的输入状态和当前正处理的图像数据的显示在显示单元102上执行。注意,向用户提供用于执行各种处理(下述)的各种操作和显示的用户接口由显示单元102和控制台单元104在图像形成装置100中实现。以下参照图2说明打印机控制器103的详细结构。图2是表示本实施例的打印机控制器103的详细结构的框图。打印机控制器103具有主机接口302。主机接口302配置有输入緩冲器(未示出),用于输入从数据处理器IOI发送的打印数据和指示图像形成装置100的操作的设定。主机接口302还配置有输出緩冲器(未示出),用于临时保持包括钥发送给数据处理器101的信号和设备信息的输出数据。主机接口302构成用于发送到数据处理器101和从数据处理器101发送来的信号和通信分组的输入/输出单元,并且利用数据处理器101来控制通信。经由主机接口302输入的打印数据被提供给图像数据产生器303。在此,所输入的打印数据例如由页描述语言(PDL)数据构成。图像数据产生器303利用预定的分析单元来分析所输入的打印数据(例如PDL分析)。图像数据产生器303然后从分析结果产生中间语言,进而产生打印单元(打印机引擎)107能够处理的位图数据。具体地,在分析打印数据和利用分析结果创建中间语言数据的同时,图像数据产生器303与中间语言数据的创建并行地执行光栅化。该光栅化包括从包含在打印数据中的显示颜色RGB(加法处理)到打印单元107能够处理的YMCK(减法处理)的转换。该处理还包括从包含在打印数据中的字符代码到预先存储的位模式或轮廓字体等字体数据的转换处理。光栅化接着包括创建位图数据的页或组(band),使用抖动模式对该位图数据执行伪半色调处理,以及产生可以由打印单元107打印的位图数据.由此创建的位图数据被存储在图像存储器304中。对存储在图像存储器304中的位图数据的读出由直接存储器存取(DMA)控制器305控制。对DMA控制器305从图像存储器304读取位图数据的控制基于来自CPU308的指令来执行。从图像存储器304读出的位图数据由执行混合处理(后述)的混合处理器306处理,并经由引擎接口307作为视频信号传送到打印单元107。引擎接口307配置有临时保持将要传送到打印单元107的打印数据(视频数据)的输出緩沖器(未示出)和临时保持从打印单元107发送的信号的输入緩冲器(未示出)。引擎接口307构成发送到打印单元107和从打印单元107发送来的信号的输入/输出单元,同时管理与打印单元107的通信控制。例如作为用户对控制台单元104进行的操作输入的结果的、与模式设定有关的各种指令经由控制台单元接口301输入。控制台单元接口301构成控制台单元104与CPU308之间的接口。CPU308根据从控制台单元104或数据处理器101指示的模式来控制上述单元。这些控制基于存储在ROM309中的控制程序来执行。存储在ROM309中的控制程序包括利用系统时钟按照被称为任务的负载模块执行时分控制的操作系统。该控制程序还包括多个负载模块,这些负载模块的执行由操作系统按功能进行控制。RAM310被CPU308用作运算处理的工作区。包括CPU308在内的这些单元被连接到系统总线311。该系统总线311具有地址总线、数据总线和控制信号总线。以下参照图3说明DMA控制器305的详细结构。图3是示出本实施例的打印机控制器103中的DMA控制器305的详细结构的框图。寄存器单元501由多个寄存器(未示出)构成。作为CPU308向寄存器单元501中的寄存器写入适当值的结果,CPU308向DMA控制器305发出指令。地址产生器502参照寄存器单元501中的寄存器的内容产生用于读出存储在图像存储器304中的位图数据的地址。地址产生器502向总线接口503输出地址信号(addr)和表示将从这些地址读出的数据长度(数据量)的长度信号(length)。这些地址信号和长度(读出数据长度)信号与请求信号(req)—起被输出到总线接口503。当输入了来自地址产生器502的地址信号和长度信号时,总线接口503向系统总线311发出用于图像存储器304的读出事务(transaction)。例如,如果系统总线311的数据总线宽度为32位,则总线接口503按32位访问来分析读出请求,并发出读出事务。当完成了与地址和长度信号组成的对有关的读出时,总线接口503利用确认信号(ack)将读出完成情况发送到地址产生器502。接收到该确认信号的地址产生器502可以通过向总线接口503输出下一对地址和长度信号来发出从图像存储器304读出数据的下一请求。从图像存储器304读出的位图数据被临时存储在FIFO(先进先出緩冲器)504中。即使在混合处理器306暂时不能接收数据的期间,DMA控制器305也从图像存储器304中读出位图数据,并将所读出的位图数据存储在FIFO504中。从而当混合处理器306再次能够接收数据时,可以立即将位图数据从FIFO504提供给混合处理器306,总线接口503监视从FIFO504输出的、表示没有向FIFO504写入数据的空闲空间的FIFO满信号(full)。如果这样输出了表示FIFO504已满的满信号,则总线接口503不发出读出事务,而是等待满状态被取消。混合处理器接口505将蓄积在FIFO504中的位图数据发送到混合处理器306。混合处理器接口505监视从FIFO504输出的、表示没有数据蓄积在FIFO504中的FIFO空信号(empty)。如果FIFO504不为空且混合处理器306能够接收数据,则混合处理器接口505从FIFO504读出位图数据,并将该数据发送到混合处理器306。配准误差修正的原理以下参照图4A、4B和图5A5D说明配准误差修正的原理。图4A、4B和图5A5D是说明本实施例的配准误差修正原理的图。图4A描绘出表示导致配准误差的扫描行弯曲的例子的图。在图4A中,水平轴表示扫描行的主扫描方向,垂直轴表示副扫描方向。图4B示出在切换对应于每个扫描行的行数据以与扫描行弯曲相匹配时,被发送到打印单元107的位图数据的例子。在此,n行表示本来应打印的扫描行。在图4B中,阴影部分表示在打印n行时被发送到打印单元107的图像数据。通过切换输出到打印单元107的图像数据的行以与图4A中所示的扫描行弯曲相匹配,即使弯曲发生在膝光扫描行中,也可以在图像承载体(例如感光鼓)上产生不失真的静电潜影。图5A示出导致配准误差的弯曲扫描行的放大部分。图5B示出在切换图像数据以与扫描行中的弯曲相匹配时被发送到打印单元107的位图数据。但如图5A中所示,当在简单切换行数据后将位图数据发送到打印单元107时,在进行切换的位置产生不自然的台阶。因此,通过改变进行切换的位置处的点尺寸来形成点,使得两行如图5C所示重叠,则可以消除图像的这一不自然的台阶,从而实现图像的平滑。在进行切换的位置附近向两个相邻行的图像数据增加半色调(混合处理),使得该台阶更不明显。注意,该混合处理由混合处理器306执行。为了使行緩冲器变得不必要,本实施例的DMA控制器305根据扫描行弯曲产生地址来切换行数据。而且,考虑到仅在切换行的时刻前后才需要该混合处理的事实,除了图5D中的涂黑部分510,还将阴影部分511的位图数据发送到打印单元107。从而使得混合处理器306可以执行混合处理,行緩冲器也变得不必要。第一实施例以下将参照图6、7A和7B来说明本发明笫一实施例的DMA控制器305的操作。图6描绘出说明本发明第一实施例的DMA控制器305中的指定扫描行弯曲的方法的图。注意,在此将位图数据的一行平均地分割。以下将分割行的一部分称为段。注意,在以下的说明中,表示段长度、相邻段之间的行切换的存在、用于行切换前后的混合处理的读出数据长度、各种地址以及数据长度的名称表示包括在寄存器单元501中的寄存器的名称。如上所述,CPU308通过向寄存器单元501中的这些寄存器写入值,指示DMA控制器305执行操作。在DMA控制器305的寄存器单元501中设有用于设定段的长度的寄存器RegSegLen。设有要求数量的寄存器RegUpDown[i,用于指示相邻段之间的行的切换,以与扫描行弯曲相匹配。注意,变量i表示段边界的编号。在此,每个寄存器可以取3个值,因为寄存器指定不切换行、或者切换到上面的行或下面的行。在此,在不切换行时分配"00"或"01",在切换到上面的行时分配"10",在切换到下面的行时分配"ll"。当在相邻段之间切换行时,指定进行切换的位置附近的要读出的图像数据的长度(混合长度)的寄存器被设置在DMA控制器305的寄存器单元501中。该寄存器由RegOverlapLen定义。注意,在第一实施例中,一个扫描行中的段长度(RegSegLen)和混合长度(RegOverlapLen)被固定。DMA控制器305的寄存器单元501还包括指定存储在图像存储器304中的位图数据的基础地址的寄存器RegStartAddr、以及表示位图数据的行长度的寄存器RegLineLen。而且,寄存器单元501包括位图数据中的相邻行地址的偏移(RegLineOffset)、以及指定要发送到混合处理器306的行数的RegBeams。除了上述寄存器,DMA控制器305的寄存器单元501还包括用于在CPU308设定了上述寄存器后开始DMA操作的开始寄存器(未示出)。图7A和7B是说明本发明第一实施例的DMA控制器305中的地址产生器502的操作的流程图。注意,在以下说明中,为了方便说明,数据等的名称由对应的寄存器名称代替。首先,在步骤S100中,当通过来自CPU308的指令开始了DMA操作时,每个扫描行的开始地址(line一start一addr)被初始化为位图数据的基础地址(RegStartAddr)。已被发送到混合处理器306的行的行数(line_cnt)被初始化为"0"。接着,处理前进到步骤S101,在此对每个扫描行执行初始化。在此,段开始地址(seg一addr)被初始化为扫描行的开始地址(line—start_addr)。扫描行的已处理数据量(line_data_cnt)被初始化为"0"。表示是否在段的前边界有行切换的up_down_front被初始化为"00"。这表示在行的第一段的前边界没有行切换。要参照的寄存器RegUpDown[iI的变量i(索引)被初始化为"0"。接着,在步骤S102,对每一段执行初始化。在此,将向总线接口503请求的地址和长度信号(addr、len)被分别初始化为段开始地址(seg_addr)和段长度(RegSegLen)。这些信号可能在后续步骤中改变。表示是否在段的后边界有行切换的up一downjback被设定为寄存器RegUpDown[il的值。从而设定是否在段的后边界有行切换。接着,处理前进到步骤S103,在此根据up一down一front的值确定是否在当前段的前边界有行切换。如果在段的前边界有行切换,则处理前进到步骤S104,在此从地址(addr)中减去混合长度(RegOverlapLen)。该混合长度(RegOverlapLen)还被加到要读出的数据长度(length)上。结果,正切换的行的读出开始地址被向前移动了RegOverlapLen的值(在图6中向左),从而数据的该部分被额外读出。从而实现了段的前边界的行数据的重叠(要被读出的重叠两行的数据长度)。注意,如果在步骤S103中确定在段的前边界没有行切换,则处理前进到步骤S105,否则继续步骤S104。接着,在步骤S105,根据在步骤S102中设定的up_down_back的值确定是否在段的后边界有行切换。如果在段的后边界没有行切换,则处理前进到步骤S107。如果有行切换,则处理前进到步骤S106,在此将混合长度(RegOverlapLen)加到数据长度(length)上。结果,在段的后边界,等于混合长度(RegOverlapLen)的额外的数据量被作为当前行的数据读出(例如图6中的n行的阴影部分)。从而实现了行数据在后边界的重叠,处理前进到步骤S107。接着,在步骤S107,地址产生器502通过向总线接口503输出地址(addr)和数据长度(length),请求从图像存储器304读出位图数据。接着,处理前进到步骤S108,在此,为了将段开始地址(seg一addr)更新为下一段的开始地址,确定表示是否在当前段的后边界有行切换的up_down_back的值。如果在段的后边界没有行切换,则处理前进到步骤Slll。另一方面,在切换到上面的行的情况下,处理前进到步骤S109,而在切换到下面的行的情况下,处理分支到步骤SllO。在步骤S109中,将段开始地址(seg_addr)切换到上面的行的地址。即,从段开始地址(seg—addr)中减去位图数据中的相邻行地址的偏移(RegLineOffset)。注意,尽管需要将段长度(RegSegLen)加到该值上以得到下一段的开始地址,但这在步骤Slll中执行。在步骤SllO中,将段开始地址(seg一addr)切换到下面行的地址。这里,将偏移(RegLineOffset)加到开始地址(seg_addr)上。注意,尽管需要将段长度(RegSegLen)加到该值上以得到下一段的开始地址,但这在步骤Slll中执行。在步骤S111中,为了处理下一段而将值更新。在此,将段长度(RegSegLen)加到段开始地址(seg_addr)上。段长度(RegSegLen)还被加到当前行的已处理数据量(line_data—cnt)上。表示在当前段的后边界是否有行切换的up_down_back变成表示是否在下一段的前边界有行切换的数据。因而,下一段的up_down_front被i殳定为当前段的up_down—back的值。进而,为了使要参照的寄存器RegUpDown[i加1而使变量"i"加"l"。接着,处理前进到步骤S112,在此从行长度(RegLineLen)中减去已处理数据量(line—data—cnt),并将结果与段长度(RegSegLen)进行比较。这里,如果剩余的数据长度大于段长度(RegSegLen),则因为在当前行中还有两个以上的段要处理,因此处理返回步骤S102,重复对段的上述处理。否则,为了处理当前行的最后段,处理前进到下一步骤S113(图7B)。在步骤S113,地址产生器502开始处理当前行的最后段。首先,输出要向总线接口503请求的地址和数据长度(addr、len)。在此,将地址(addr)设定为段开始地址(seg_addr),并将数据长度(length)设定为通过从行长度(RegLineLen)中减去已处理数据量(line_data—cnt)而得到的值。接着,处理前进到步骤S114,在此根据up_down_front的值确定是否在段的前边界有行切换。如果没有行切换,则处理前进到步骤S116,如果有行切换,则前进到步骤S115。注意,对于当前行的最后段,地址产生器502仅参照表示是否在当前段的前边界有行切换的up_down_front。在步骤S115中,由于在当前段的前边界有行切换,因此从地址(addr)中减去混合长度(RegOverlapLen)。混合长度(RegOverlapLen)还被加到数据长度(length)上。从而实现行数据在当前段的前边界上的重叠。接着,处理前进到步骤S116,在此利用在步骤S115中更新的地址(addr)和数据长度(length)向总线接口503发出从图像存储器304读出图像数据的请求。然后,在步骤S117中,为了处理下一行数据而更新数据。在此,将位图数据中的相邻行地址的偏移(RegLineOffset)加到每行的开始地址(line—start_addr)上,以设定下一行的基础地址。向输出到混合处理器306的行的行数(line—cnt)加"1"。接着,在步骤S118中,将输出行数(line_cnt)与要发送到混合处理器306的行的行数(RegBeams)进行比较。在此,如果输出行数(line—cnt)小于总行数(RegBeams),则由于还有要处理的行数据,因此处理返回步骤SIOI,重复对行的上述处理。否则,由于已经处理了一页的图像数据,因此结束DMA操作。注意,当DMA操作结束时,DMA控制器305利用中断信号(未示出)将该情况传送给CPU308。CPU308通过检测该中断来检测DMA传送的结束。如上所述,DMA控制器305从图像存储器304中读出由多个数据段构成的一个扫描行的图像数据,并将该图像数据传送到打印单元107。打印单元107然后根据一个扫描行的图像数据并利用激光光束扫描感光鼓(图像承载体),并且在感光鼓上形成一个扫描行的静电潜影。在此,静电潜影是具有电位差的图像,该电位差取决于通过在被充电到规定电位的感光鼓上照射(扫描)激光光束而在感光鼓上产生的图像数据。打印单元107然后通过向静电潜影上附着调色剂,而在感光鼓上形成取决于电位差的调色剂像,并通过将该调色剂像转印到纸张上而在纸张上形成图像。注意,尽管上述说明了由DMA控制器305实现本实施例的数据转印控制的例子,但如果CPU308具有空闲处理时间,则可以由CPU308来执行控制。替代地,这些控制可以由CPU308之外的另一CPU、或者由数字信号处理器(DSP)来实现。另外,如果彩色图像处理装置具有与多种颜色(CYMK)—一对应的图像形成单元,则通过在每种颜色的图像形成单元中实施本实施例的数据转印方法,就可以防止由每种颜色的配准误差导致的颜色偏差。这同样也可以适用于下述的实施例。根据上述的第一实施例,即使每种颜色都发生扫描行弯曲,在没有提供在数量上对应于这些颜色的配准偏差量的行緩沖器的情况下,也可以防止由于每种颜色的配准误差导致的颜色偏差。不提供行緩冲器也可以实现在切换行时使起因于行切换的台阶变得不明显的混合处理。第二实施例以下将参照图8~9B来说明第二实施例的DMA控制器305的操作。注意,由于该第二实施例的图像处理装置的硬件结构与上述第一实施例相似,因此省略其说明。第二实施例与第一实施例的不同在于,一个扫描行中的段长度(RegSegLen)和混合长度(RegOverlapLen)是可变的。图8描绘出说明本发明第二实施例的DMA控制器中的指定扫描行弯曲的方法的图。在此,由于段长度是可变的,因此设置根据扫描行弯曲指定到行上的切换位置为止的长度(段长度)的寄存器RegSegLen[i。而且,在DMA控制器305的寄存器单元501中设置有用于为每个段边界指定是切换到上面的行还是下面的行的要求数量的寄存器RegUpDown[i。这里,由于每个寄存器RegUpDown[i可以取上和下的两个值,因此在切换到上面的行时分配"O",在切换到下面的行时分配"1"。在进行行切换的位置附近要读出的图像数据的(混合)长度(RegOverlapLen)被设定在DMA控制器305的寄存器单元501中。存储在图像存储器304中的位图数据的基础地址(RegStartAddr)以及位图数据的扫描行长度(RegLineLen)被进一步设定在DMA控制器305的寄存器单元501中。位图数据中的相邻行数据地址的偏移(RegLineOffset)以及要发送到混合处理器306的行的行数(RegBeams)也被设定在寄存器单元501中。而且,DMA控制器305的寄存器单元501还包括用于在CPU308设定了上述寄存器的值后开始DMA操作的开始寄存器(未示出)。图9A和9B是说明本发明第二实施例的DMA控制器305中的地址产生器502的操作的流程图。首先,在步骤S200中,当通过来自CPU308的指令开始了DMA操作时,每个扫描行的开始地址(line一start一addr)被初始化为图像存储器304中的位图数据的基础地址(RegStartAddr)。已被发送到混合处理器306的行的行数(line一cnt)被初始化为"O"。接着,在步骤S201中,对每个扫描行执行初始化。段开始地址(seg—addr)被初始化为扫描行的开始地址(line—start—addr)。行的已处理数据量(line—data_cnt)被初始化为"O"。表示要参照的寄存器RegSegLen川和RegUpDown[i的索引的变量i被初始化为"O"。接着,处理前进到步骤S202,对每一段执行初始化。要向总线接口503请求的地址(addr)和数据长度(length)^皮分别初始化为段开始地址(seg—addr)和段长度(RegSegLen[i)。这些信号可能在后续步骤中改变。表示是否在段的后边界有行切换的up—down—back被设定为寄存器RegUpDown[i的值。从而设定是否在段的后边界有行切换。接着,处理前进到步骤S203,在此确定变量i是否为"O",即,该段是否是当前行的第一段。如果变量i是"0",则处理前进到步骤S204,否则前进到步骤S205。在步骤S204,由于这是第一段,数据被读出以便仅在段的后边界重叠,因此将混合长度(RegOverlapLen)加到数据长度(length)上。相反,如果变量i不是"0",则处理前进到步骤S205。在这种情况下,由于在段的前边界和后边界执行混合处理,因此,从地址(addr)中减去混合长度(RegOverlapLen),并将该混合长度(RegOverlapLen)的2倍加到数据长度(length)上。一旦这样执行了步骤S204或S205,则处理前进到步骤S206。在步骤S206,利用地址(addr)和数据长度(length)向总线接口503发出从图像存储器304读出位图数据的请求。接着,处理前进到步骤S207,在此,为了将段开始地址(seg一addr)更新为下一段的开始地址,确定表示是否在当前段的后边界有行切换的up一down一back的值。在当前段的后边界切换到上面的行的情况下,处理前进到步骤S208,而在切换到下面的行的情况下,处理分支到步骤S209。在步骤S208中,为了将下一段的开始地址切换到上面的行,从开始地址(seg_addr)中减去偏移(RegLineOffset)。尽管需要将当前段长度(RegSegLen[i)加到该值上以得到下一段的开始地址,但这在步骤S210中执行。在步骤S209中,为了将段的开始地址切换到下面的行,将偏移(RegLineOffset)加到开始地址(seg_addr)上。尽管需要将当前段长度(RegSegLen[i)加到该值上以得到下一段的开始地址,但这在步骤S210中执行。在执行了步骤S208或S209后,或者在步骤S207中确定没有行切换时,处理前进到步骤S210,并且为了处理下一段而更新数据。即,将当前段长度(RegSegLen[i])加到段开始地址(seg_addr)上。段长度(RegSegLen[i)还被加到当前行的已处理数据量(line_data_cnt)上。进而,为了使表示每段的边界上的行切换的寄存器RegUpDown[il和要参照的当前段长度(RegSegLen[i)加1,而使变量"i"加"l"。接着,处理前进到步骤S211,在此将通过从扫描行长度(RegLineLen)中减去已处理数据量(linedatacnt)而得到的差与下一段长度(RegSegLen[i)进行比较。如果该差大于下一段长度(RegSegLen[i),则因为在该扫描行中还有两个以上的段要处理,因此处理返回步骤S202,重复上述处理。如果当前扫描行中仅剩下一段,则为了处理当前行中的最后段,处理前进到下一步骤S212(图9B)。在步骤S212,地址产生器502开始处理当前行的最后段。将图像存储器304中的读出开始地址(addr)设定为通过从段开始地址(seg_addr)中减去混合长度(RegOverlapLen)而得到的值。从扫描行长度(RegLineLen)中减去已处理数据量(line_data_cnt),通过将混合长度(RegOverlapLen)加到该差上得到的值被设定为数据长度(length)。接着,处理前进到步骤S213,在此根据在步骤S212中得到的地址(addr)和数据长度(length)向总线接口503发出从图像存储器304读出图像数据的请求。从而读出对应于当前行的最后段的图像数据。然后,处理前进到步骤S214,在此,为了处理下一行而更新数据。在此,通过将相邻行之间的偏移(RegLineOffset)加到下一行的开始地址(line_start—addr)上,得到下一个扫描行的基础地址。向已发送到混合处理器306的行的行数(line—cnt)加"1"。接着,在步骤S215中,将已发送到混合处理器306的行的行数(line一cnt)与将要发送到混合处理器306的行的行数(RegBeams)进行比较。在此,如果已处理的4亍数(line_cnt)小于RegBeams的值,则由于还没有结束一页的处理,因此处理返回步骤S201,重复对行的上述处理。否则,地址产生器502判断已经结束了对当前页的处理,并且结束DMA操作。当DMA操作结束时,DMA控制器305向CPU308发送中断信号(未示出)。通过该中断信号,CPU308检测出从图像存储器304的DMA数据读出已经结束。除了第一实施例的效果外,上述第二实施例通过根据扫描行弯曲来改变段长度,可以防止由于每种颜色的配准误差所导致的颜色偏差。由于根据扫描行弯曲来改变段长度,因此第二实施例还使得配准误差可以被准确修正。第三实施例以下将参照图10A、10B、11、12A和12B来说明本发明第三实施例的DMA控制器305的操作。注意,除了DMA控制器305外,该第三实施例的图像处理装置的硬件结构与上述第一实施例相似,因此省略其说明。图10A描绘出说明本发明第三实施例的DMA控制器305中的指定扫描行弯曲的方法的图。在此,与第一实施例相同,位图数据的一行被均等地分割。段长度(RegSegLen)被设定在DMA控制器305的寄存器单元501中。在此,与第一实施例不同的是,使用根据扫描行的弯曲量指定不在相邻段之间切换行、或者切换到上面的行或下面的行的信息(UpDown[il)。这里,变量i表示段边界的顺序。图10B描绘出与段边界相关联地作为表存储在图像存储器304或RAM310中的信息(UpDown[i)的例子的图。该表的基础地址(RegTableStartAddr)被设定在DMA控制器305的寄存器单元501中。在相邻段之间切换行的情况下,在进行切换的位置附近要读出的数据(混合)长度(RegOverlapLen)被设定在DMA控制器305的寄存器单元501中。存储在图像存储器304中的位图数据的基础地址(RegStartAddr)以及位图数据的行长度(RegLineLen)被进一步设定在DMA控制器305的寄存器单元501中。而且,寄存器单元501包括位图数据中的相邻行地址的偏移(RegLineOffset)以及要发送到混合处理器306的行的行数(RegBeams)。DMA控制器305的寄存器单元501还包括用于在CPU308设定了上述寄存器的值后开始DMA操作的开始寄存器(未示出)。图11是示出本发明第三实施例的DMA控制器305的结构的框图。与图3共同的部分用相同的附图标记示出。寄存器单元501由多个寄存器(未示出)构成。通过向寄存器单元501中的寄存器写入适当值,CPU308向DMA控制器305发出指令。地址产生器502,参照寄存器单元501中的寄存器的内容产生用于读出存储在图像存储器304中的位图数据的地址。地址产生器502'还产生用于读出图像存储器304中的行切换信息的表的地址。地址产生器502'利用地址(addr)和表示将从该地址读出的数据量的数据长度(length)向总线接口503请求从图像存储器304读出图像数据。在从图像存储器304读出位图数据的情况下,该请求利用请求信号(req)作出,而在从表中读出数据的情况下,利用请求信号(req_table)作出。总线接口503,从地址产生器502,接收地址和数据长度,并向系统总线311发出图像存储器304的读出事务。例如,如果系统总线311的数据总线宽度为32位,则按32位访问来分析地址和数据长度,并发出读出事务。当完成了对地址和数据长度组成的对的处理时,总线接口503,利用确认信号(ack)将完成情况发送到地址产生器502'。接收到该确认信号(ack)后,地址产生器502,可以向总线接口503'请求下一地址和数据长度。总线接口503,接收从图像存储器304读出的数据,并且如果该数据是位图数据,则将该数据写入FIFO504。另一方面,如果数据是表,则将所读出的表数据发送给地址产生器502'。所读出的位图数据被临时存储在FIFO504中。即使在混合处理器306暂时不能接收数据的期间,DMA控制器305也能将位图数据存储在FIFO504中。从而当混合处理器306再次能够接收数据时,可以立即将位图数据从FIFO504提供给混合处理器306。总线接口503,监视从FIFO504输出的、表示没有向FIFO504写入数据的空闲空间的FIFO满信号(full),如果FIFO504显示出满状态,则总线接口503'不发出读出事务,而是等待满状态被取消。混合处理器接口505将蓄积在FIFO504中的位图数据发送到混合处理器306。混合处理器接口505监视从FIFO504输出的、表示FIFO504中没有数据的FIFO空信号(empty)。如果FIFO504不为空且混合处理器306能够接收数据,则混合处理器接口505从FIFO504读出位图数据,并将该数据发送到混合处理器306。图12A和12B是说明本发明第三实施例的DMA控制器305中的地址产生器502,的操作的流程图。首先,在步骤S300中,当通过来自CPU308的指令开始了DMA操作时,每行的开始地址(line_start_addr)被初始化为位图数据的基础地址(RegStartAddr)。已发送到混合处理器306的行的行数(line—cnt)被初始化为"0"。接着,在步骤S301,对每行执行初始化,在此,段开始地址(seg一addr)被初始化为行的开始地址(line—start—addr)。4亍的已处理数据量(line—data—cnt)被初始化为"0"。表示在段的前边界的行切换的叩一down一front被初始化为"OO"。这表示在当前行的第一段的前边界没有行切换。并且,要参照的行切换信息(UpDown[i)的表的地址(table_addr)被初始化为表的基础地址(RegTableStartAdd)。接着,在步骤S302,对每一段执行初始化。要向总线接口503,请求的地址(addr)和数据长度(length)被分别初始化为段开始地址(seg—addr)和段长度(RegSegLen)。这些数据可能在后续步骤中改变。接着,处理前进到步骤S303,为了读出图IOB所示的表数据,利用表地址(table_addr)向总线接口503'发出请求。所读出的表数据被设定在表示是否在当前段的后边界有行切换的up一down一back中。从而设定是否在该当前段的后边界有行切换。接着,在步骤S304,根据up_down_front的值确定是否在当前段的前边界有行切换。在此,如果有行切换,则处理前进到步骤S305,否则前进到步骤S306。在步骤S305中,从地址(addr)中减去混合长度(RegOverlapLen)。通过加上混合长度(RegOverlapLen)来更新数据长度(length)。从而实现为了执行混合处理而在当前段的前边界的数据读出的重叠。接着,在步骤S306,根据up_down_back的值确定是否在当前段的后边界有行切换。如果在后边界有行切换,则处理前进到步骤S307,否则前进到步骤S308。在步骤S307中,将混合长度(RegOverlapLen)加到数据长度(length)上。从而实现为了在当前段的后边界执行混合处理而对读出的图像数据的重叠。接着,在步骤S308,利用在上述步骤中设定的地址(addr)和数据长度(length),经由总线接口503,从图像存储器304中读出位图数据。然后,在步骤S309,为了将段开始地址(seg—addr)更新为下一段的开始地址,地址产生器502'确定表示是否在当前段的后边界有行切换的up一down一back的值。如果在当前段的后边界没有行切换,则处理前进到步骤S312。在切换到上面的行的情况下,处理分支到步骤S310,而在切换到下面的行的情况下,处理分支到步骤S311。在步骤S310中,从段开始地址(seg一addr)中减去相邻行地址的偏移(RegLineOffset)。尽管需要将段长度(RegSegLen)加到该值上以得到下一段的开始地址,但这在步骤S312中执行。在步骤S311中,为了寻址下面的行,将偏移(RegLineOffset)加到段开始地址(seg_addr)上。尽管需要将段长度(RegSegLen)加到该值上以得到下一段的开始地址,但这在步骤S312中执行。处理从而前进到步骤S312,在此为了处理下一段而更新数据。在此,将段长度(RegSegLen)加到段开始地址(seg_addr)上。段长度(RegSegLen)还被加到当前行的已处理数据量(line一data一cnt)上。由于表示在当前段的后边界是否有行切换的up—down—back变成下一段的前边界的切换数据,因jibup—down—back的值被i殳定为下一段的up—down_front。进而,为了使要参照的行切换信息(UpDown[i)的表(参见图IOB)加"1"而在表地址(table_addr)上加"4"。接着,在步骤S313中,从位图数据的行长度(RegLineLen)中减去当前行的已处理数据量(line_data_cnt),并将该值与段长度(RegSegLen)进行比较,如果差大于段长度(RegSegLen),则因为在当前行中还有两个以上的段要处理,因此处理返回步骤S302,重复对段的上述处理。否则,为了处理当前行的最后段,处理前进到下一步骤S314(图12B)。在图12B的步骤S314,地址产生器502'开始处理当前行的最后段。将要向总线接口503'请求的地址(addr)设定为段开始地址(seg_addr)。将数据长度(length)设定为通过从位图数据的行长度(RegLineLen)中减去已处理数据量(line_data—cnt)而得到的值。接着,处理前进到步骤S315,在此根据up—down—front的值确定是否在当前段的前边界有行数据切换。如果在当前段的前边界不切换行数据,则处理前进到步骤S317。注意,对于当前行的最后段,仅参照表示是否在段的前边界切换行数据的up—down_front。在切换行的情况下,处理前进到步骤S316,从地址(addr)中减去混合长度(RegOveiiapLen)。混合长度(RegOverlapLen)还被加到数据长度(length)上。从而实现为了在段的前边界执行混合处理而对所读出的图像数据的重叠。接着,处理前进到步骤S317,在此利用地址(addr)和数据长度(length)向总线接口503'发出读出请求。从而将指定数据长度的位图数据从图像存储器304的指定地址读出。然后,处理前进到步骤S318,为了处理下一行数据而更新数据。在此,将偏移(RegLineOffset)加到每行的开始地址(line—start—addr)上,以i殳定下一4亍的基础地址。向已发送到混合处理器306的行的行数(line_cnt)加"1"。在步骤S319中,将已发送到混合处理器306的行的行数(line_cnt)与将要发送到混合处理器306的行的行数(RegBeams)进行比较,确定是否结束了一页的图像数据处理。在此,如果行数(line_cnt)小于RegBeams的值,则由于还有要处理的行,因此处理返回步骤S301,对下一行重复处理。否则,结束DMA操作。当DMA操作结束时,DMA控制器305向CPU308发送中断信号。CPU308通过检测该中断信号检测出DMA传送已经结束。除了笫一实施例的效果外,根据上述笫三实施例,可以在固定段长度的情况下,根据扫描行弯曲来对每个段指定不切换行或者切换到上面行或下面行。即使在固定段长度的情况下,也可以防止由取决于扫描行弯曲的配准误差导致的颜色偏差。第四实施例以下将参照图13A、13B、14A和14B来说明本发明第四实施例的DMA控制器305的操作。注意,由于该第四实施例的图像处理装置的硬件结构与上述第三实施例相似,因此省略其说明。图13A和13B说明了本发明第四实施例的DMA控制器305中的指定扫描行弯曲的方法。在此,行中的段长度是可变的,并且可以针对每个段设定是向上面的行切换还是向下面的行切换。这里,与第二和第三实施例不同,改变到行切换位置为止的(段)长度(SegLen[i)和表示行数据切换的信息(UpDown[i)以与扫描行弯曲相匹配。图13B示出存储了段长度(SegLen[il)和表示是切换到上面的行还是下面的行的信息(UpDown[i)的表的数据结构的例子。该表被存储在图像存储器304或RAM310中。当读出该表时,该表的读出开始地址(RegTableStartAddr)被设定在DMA控制器305的寄存器单元501中。由于UpDown[i可以取两个值,因此在段边界处切换到上面的行时分配"O",在切换到下面的行时分配"l"。在第四实施例中还设定混合长度(RegOverlapLen)、位图数据的基础地址(RegStartAddr)以及位图数据的行长度(RegLineLen)。位图数据中的相邻行地址的偏移(RegLineOffset)以及要发送到混合处理器306的行的行数(RegBeams)被设定在寄存器单元501中。而且,DMA控制器305的寄存器单元501还包括用于在CPU308设定了上述寄存器的值后开始DMA操作的开始寄存器(未示出)。图14A和14B是说明本发明第四实施例的DMA控制器305中的地址产生器502'(图11)的操作的流程图。首先,在步骤S400中,当通过来自CPU308的指令开始了DMA操作时,每行的开始地址(line—start—addr)被初始化为位图数据的基础地址(RegStartAddr)。已发送到混合处理器306的行的行数(line一ent)被初始化为"O"。接着,在步骤S401,对每行执行初始化。在此,段开始地址(seg一addr)被初始化为行的开始地址(line一start一addr)。行的已处理数据量(line一data一cnt)被初始化为"0"。要参照的段长度(SegLen[i)和行切换信息(UpDowni)的表的地址(table—addr),皮初始化为表的基础地址(RegTableStartAddr)。变量i纟皮i殳定为"O"。接着,在步骤S402,为了从地址(table_addr)中读出图13B所示的表数据,向总线接口503,发出读出数据的请求。根据从表中读出的数据来设定第一段的长度(SegLen)和表示是否在段的后边界有行数据切换的up_down—back.接着,在步骤S403中,对每一段执行初始化。在此,要向总线接口503'请求的地址(addr)被初始化为段的段开始地址(seg一addr)。数据长度(length)被初始化为所读出的表中的段的数据长度(Segjen[i)。这些信号在后续步骤中改变。接着,在步骤S404中确定变量i是否为"O",即,该段是否是行的第一段。如果变量i是"0"(第一段),则处理前进到步骤S405,否则前进到步骤S406。在步骤S405,由于这是第一段,仅在段的后边界需要进行混合处理,因此将混合长度(RegOverlapLen)加到数据长度(length)上。另一方面,如果该段不是笫一段,则处理前进到步骤S406。在这种情况下,由于在当前段的前边界和后边界都要求进行混合处理,因此,从地址(addr)中减去混合长度(RegOverlapLen)。并且将该混合长度(RegOverlapLen)的2倍加到数据长度(length)上。在步骤S405或S406之后,处理前进到步骤S407。在步骤S407,根据地址(addr)和数据长度(length)向总线接口503,发出读出请求。从而从图像存储器304的地址(addr)中读出指定数据长度(length)的位图数据。接着,处理前进到步骤S408,将段开始地址(seg一addr)更新为下一段的开始地址。在此,根据up_down_back的值确定是否在当前段的后边界有数据行切换。如果在当前段的后边界切换到上面的行,则处理前进到步骤S409,而如果切换到下面的行,则处理分支到步骤S410。在步骤S409中,从段开始地址(seg—addr)中减去相邻行地址的偏移(RegLineOffset)。注意,尽管需要将段长度(Seg一len)加到该值上以得到下一段的开始地址,但这在步骤S411中执行。在步骤S410中,将偏移(RegLineOffset)加到段开始地址(seg一addr)上以得到下面的行的地址。尽管需要将段长度(Seg一len)加到该值上以得到下一段的开始地址,但这在步骤S411中执行。在步骤S409或S410之后,或者在步骤S408中确定没有行切换时,处理前进到步骤S411,将段长度(Segjen)加到段开始地址(seg_addr)上。段长度(Segjen)还被加到当前行的已处理数据量(line一data一cnt)上。进而,为了使要参照的段长度(SegLeni)和行切换信息(UpDownil)的表加"r,而将"8,,加到表地址(table—addr)上。接着,处理前进到步骤S412,为了从表地址(table—addr)中读出表数据,向总线接口503,发出请求。根据从表中读出的数据来设定段长度(Segjen)和表示是否在当前段的后边界有行切换的up_down_back。接着,在步骤S"3中,从位图数据的行长度(RegLineLen)中减去当前行的已处理数据量(line_data_cnt),并将该差与段长度(Seg一len)进行比较。在此,如果该差大于段长度(Segjen),则因为在当前行中还有两个以上的段要处理,因此处理返回步骤S403,重复上述对段的处理。否则,即,如果是当前行的最后段,则为了处理当前行的最后段,处理前进到下一步骤S414。在步骤S414,地址产生器502,开始处理当前行的最后段。首先,将通过从段开始地址(seg—addr)中减去混合长度(RegOverlapLen)而得到的值设定为将要向总线接口503'请求的地址(addr)。将通过从位图数据的行长度(RegLineLen)中减去行的已处理数据量(line_data_cnt)并加上混合长度(RegOverlapLen)而得到的值i殳定为将要向总线接口503'请求的数据长度(length)。然后,处理前进到步骤S415,在此根据地址(addr)和数据长度(length)向总线接口503,发出从图像存储器304读出图像数据的请求,并且读出对应于最后段的位图数据。然后,处理前进到步骤S416,在此,为了处理下一行而更新数据。在此,将相邻行地址的偏移(RegLineOffset)加到每行的开始地址(Hne_start—addr)上,以得到下一行的基础地址,向已发送到混合处理器306的行的行数(lme_cnt)加"1"。接着,在步骤S417中,将已发送到混合处理器306的行的行数(line_cnt)与将要发送到混合处理器306的行的行数(RegBeams)进行比较。在此,如果已处理的行数(line—cnt)小于RegBeams的值,则由于还有行要处理,因此处理返回步骤S401,重复上述处理。否则,地址产生器502'判断已经结束了一页的数据处理,并结束DMA操作。当DMA操作结束时,DMA控制器305向CPU308发送中断(未示出)CPU308通过检测该中断来检测出DMA传送已经结束。除了第一实施例的效果外,根据上述第四实施例,可以在使段长度可变的情况下,根据扫描行弯曲来对每个段指定不切换行、或者切换到上面行或下面行。从而可以防止由取决于扫描行弯曲的配准误差导致的颜色偏差。第五实施例以下将参照图15、16和17来说明本发明的DMA控制器305的操作。注意,由于该第五实施例的图像处理装置的硬件结构与上述第三实施例相似,因此省略其说明。图15描绘出说明本发明第五实施例的DMA控制器305中的利用存储器地址指定有效图像区域的方法的图。相当于给定扫描行的数据的读出开始位置(RegBeamStartAddr)和有效图像区域的基础地址(RegLowerAddr)被设定在DMA控制器305的寄存器单元501中。而且,可以设定紧接有效图像区域的底边之后的地址(RegUpperAddr)、一页中的所有扫描行的扫描行数(RegBeamLines)、相邻行地址的偏移(RegLineOffset)以及打印有效区域外的数据(RegFillData)(未示出)。图16是说明本发明第五实施例的DMA控制器305中的地址产生器502,的操作的流程图。首先,在步骤S501中,执行一页的DMA处理的初始化。行开始地址(line_start_addr)被设定为相当于扫描行的数据的读出开始地址(RegBeamStartAddr),并且该页的已处理行数(line—cnt)被设定为"O"。接着,在步骤S502中,确定DMA开始地址是否在图像的有效区域内。如果地址在有效区域外,则处理前进到步骤S503,将表示地址在有效区域外的值输出到行开始位置状态(line—start_state)。另一方面,如果在步骤S502中确定地址在有效区域内,则处理前进到步骤S504,将表示地址在有效区域内的值输出到line_start—state,在步骤S503或S504之后,处理前进到步骤S505,对每行执行初始化。将步骤S505之后的处理重复进行该页的行数。在步骤S505中,在地址(addr)中设定行开始地址(line_start—addr)。在状态(st)中设定行开始位置状态(line_start_state),并且在表地址(table—addr)中设定表的基础地址(RegTableStartAddr)。接着,处理前进到步骤S506,由总线接口503'根据表地址从表中读出弯曲信息。然后,处理前进到步骤S507,根据所读出的弯曲信息设定数据长度(length)和表示在边界部分切换到上面行还是下面行的信息(UpDown[i)。接着,处理前进到步骤S508,根据状态(line_start_state)确定地址(addr)是否在有效区域内。在此,如果地址在有效区域内,则处理前进到步骤S509,向总线接口503'发出读出请求。另一方面,如果地址在有效区域外,则处理前进到步骤S510,将有效区域外的等于数据长度(length)的数据量(RegFillData,即空数据或黑数据)传送到下游的图像处理块。在执行了步骤S509或S510之后,处理前进到步骤S511,更新当前地址(addr)。在此,将数据长度(length)加到地址(addr)上,并将"8,,加到表地址(table_addr)上。处理前进到步骤S512,确定是否结束了一行的处理。如果此时还没有结束一行的处理,则处理前进到步骤S513,在返回到步骤S506之前更新状态(st)、地址(addr)和表示切换到上面行还是下面行的信息(UpDown)。如果在S512中确定已经结束了一行的处理,则处理前进到步骤S514。图17是详细说明在图16的步骤S513中更新状态(st)和地址(addr)的流程图。首先,在步骤S512中,地址产生器502,检查表示切换到上面行还是下面行的信息(UpDown)。在此,如果弯曲信息表示上面行,则处理前进到步骤S522,从地址(addr)中减去相邻行地址的偏移(RegLineOffset)。另一方面,如果弯曲信息表示下面行,则处理前进到步骤S528,将偏移(RegLineOffset)加到地址(addr)上。在切换到上面行的情况下,处理从步骤S522前进到步骤S523,确定状态(st)表示地址在有效区域内、有效区域上方、还是有效区域下方。如果状态表示地址在有效区域上方,则由于上面的行也会在有效区域外,因此结束处理。如果状态表示地址在有效区域内,则处理前进到步骤S524,将有效图像区域的基础地址(RegLowerAddr)与上面行的更新后的地址(addr)进行比较。如果有效图像区域的基础地址(RegLowerAddr)大于更新后的地址(addr),则由于上面行的更新后的地址在有效区域外,因此处理前进到步骤S525,并将表示地址在有效区域外的值设定在状态(st)中。另一方面,在步骤S524中,如果基础地址(RegLowerAddr)小于或等于更新后的地址(addr),则由于上面行的更新后的地址仍在有效区域内,因此不改变状态(st)而结束处理。如果在步骤S523中确定状态(st)表示地址在有效区域下方,则处理前进到步骤S526,将紧接有效图像区域的底边之后的地址(RegUpperAddr)与更新后的地址(addr)进行比较。如果紧接底边之后的地址(RegUpperAddr)大于或等于更新后的地址(addr),则由于上面的行在有效区域内,因此处理前进到步骤S527,并将状态(st)设定为表示地址在有效区域内的值。另一方面,如果紧接底边之后的地址(RegUpperAddr)小于地址(addr),则由于这下面的行仍在有效区域下方,因此不改变状态(st)而结束处理。另一方面,在切换到下面行的情况下,处理从步骤S521前进到步骤S528、S529,在步骤S529中确定状态(st)表示地址在有效区域内、有效区域上方、还是有效区域下方。如果状态(st)表示地址在有效区域下方,则由于这下面的行会无条件地在有效区域外,因此不改变状态(st)而结束处理。另一方面,如果状态(st)表示地址在有效区域上方,则处理从步骤S529前进到步骤S532,将有效图像区域的基础地址(RegLowerAddr)与下面行的更新后的地址(addr)进行比较。如果基础地址(RegLowerAddr)大于更新后的地址(addr),则由于下面行的更新后的地址在有效区域外,因此不改变状态(St)而结束处理。如果在步骤S532中确定基础地址(RegLowerAddr)小于或等于地址(addr),则处理前进到步骤S533,将表示地址在有效区域内的值设定在状态(st)中。如果在步骤S529中确定状态(st)表示地址在有效区域内,则处理前进到步骤S530,将紧接底边之后的地址(RegUpperAddr)与更新后的地址(addr)进行比较。如果紧接底边之后的地址(RegUpperAddr)大于或等于更新后的地址(addr),则不改变状态(st)而结束处理。另一方面,如果紧接底边之后的地址(RegUpperAddr)小于更新后的地址(addr),则将表示地址在有效区域下方的值设定在状态(st)中。在更新了状态(st)后,处理返回到图16的步骤S506。重新返回图16,在步骤S514中,更新行开始位置状态(line—start_state)和行开始地址(line—start_addr),作为移动到下一行处理的处理。然后,处理前进到步骤S515,将"l"加到该页的已处理行数line—cnt上。然后,在步骤S516中,确定是否结束了一页的处理。在此,如果已经结束了一页的所有处理,则结束处理,否则,处理返回步骤S505并执行上述处理。除了第一实施例的效果外,根据上述第五实施例,DMA控制器读出图像数据以便消除被设为图像有效区域内的区域的扫描行弯曲,从而可以修正扫描行弯曲。在有效区域外,可以输出特定数据(例如空数据或黑数据等)。从而,即使使用在打印机引擎不具有屏蔽功能等时在扫描行中产生弯曲的小的打印单元,也可以形成高质量的图像。第六实施例以下将参照图18和19来说明本发明笫六实施例的DMA控制器305的操作。注意,由于该第六实施例的图像处理装置的硬件结构与上述第三实施例相似,因此省略其说明。图18描绘出说明本发明第六实施例的DMA控制器305中的利用存储器中的地址指定有效图像区域的方法的图。存储弯曲信息的表的基础地址用RegTableStartAddr表示,存储图像数据的存储器的基础地址用RegStartAddr表示。表示光束的开始位置的索引被设定为RegStartLinelndex(以上下两行的弯曲为例,在第六实施例中被设定为"-2","0,,对应于有效区域的第一行)。而且,可以将一页的扫描行数设定为RegBeamLines,将行之间的地址偏移设定为RegLineOffset,并将打印有效区域外的数据设定为RegFillData。图19是说明本发明第六实施例的DMA控制器305中的地址产生器502'的操作的流程图。首先,在步骤S601中,对该处理执行初始化。在此,存储图像数据的存储器中的基础地址(RegStartAddr)被设定在行开始地址(line_start—addr)中。表示一页的开始位置的索引(RegStartLinelndex)被设定在开始行索引(start—line_index)中,并将"O"代入该页的已处理行数(line一cnt)。接着,处理前进到步骤S602,对每行执行初始化。在此,将行开始地址(line_start_addr)设定在地址(addr)中,将开始行索引(startjine—index)设定在行数(linejndex)中,并将存储了弯曲信息的表的基础地址(RegTableStartAddr)设定在表地址(table_addr)中。接着,处理前进到步骤S603,向总线接口503'发出读出表数据的请求。接着,处理前进到步骤S604,根据在步骤S603中读出的表数据设定数据长度(length)和表示切换到上面行还是下面行的信息(up—down—info)。接着,处理前进到步骤S605,检查行数(line—index)。这里,如果当前行的行数是0到N(打印有效区域的行数),则由于当前行在打印有效区域内,则处理前进到步骤S606,并向总线接口503'发出读出图像数据的请求。另一方面,如果在步骤S605中确定当前行在打印有效区域外,则处理前进到步骤S607,将等于数据长度(length)的数据量(RegFillData)传送到下游的图像处理块。这样,如果当前行在有效区域外,则输出特定数据(RegFillData),因此不需要下游的屏蔽处理等。在执行了步骤S606或S607之后,处理前进到步骤S608,将数据长度(length)加到地址(addr)上,并将"8"加到表地址(table_addr)上。然后在步骤S609中,确定表示切换到上面行还是下面行的信息(up—down—info)。在此,当切换到下面行时,处理前进到步骤S610,从行数(line—index)中减去"1"。如果在步骤S611中确定相减结果大于等于"0",则处理前进到步骤S612,在前进到步骤S603之前从地址(addr)中减去行之间的地址偏移(RegLineOffset)。如果在步骤S611中确定行数(line一index)小于"0",则处理返回步骤S603。另一方面,如果在步骤S609中确定切换到上面行,则处理前进到步骤S613,将"l,,加到行数(line—index)上。然后,处理前进到步骤S614,如果相加结果小于等于打印有效区域的行数N,则由于当前行在有效区域内,因此处理前进到步骤S615,在前进到步骤S603之前将行之间的地址偏移(RegLineOffset)加到地址(addr)上。如果在步骤S614中确定行数(line一index)大于N,则由于当前行在有效区域外,因此处理返回步骤S603。如果在步骤S609中确定不向上面行或下面行切换,则处理前进到步骤S616,确定图像数据的读出开始行索引(startjine一index)是否在有效区域内,即start_line_index是否在0和总行数N之间,0和N也包括在内。如果是,则处理前进到步骤S617,在前进到步骤S618之前,将行之间的地址偏移(RegLineOffset)加到每行的行开始地址(line_start_addr)上。如果在步骤S616中确定当前行在有效区域外,则处理前进到步骤S618,将"l"加到图像数据的读出开始行索引(start一linejiidex)和已处理行数(line_cnt)上。然后,处理前进到步骤S619,根据已处理行数(line_cnt)是否大于一页的行数(RegBeamLines),确定是否结束了一页的处理。如果确定没有结束一页的处理,则处理返回步骤S602,如果确定一页的处理已经结束,则结束该处理。除了第一实施例的效果外,根据上迷第六实施例,DMA控制器读出图像数据以便修正有效区域内的扫描行弯曲,并且在有效区域外可以产生特定数据。从而,即使使用在打印机引擎不具有屏蔽功能等时在扫描行中产生弯曲的小的打印单元,也可以获得高质量的输出。第七实施例以下将参照图20、21、22A、22B、23A23C、24和25来说明本发明第七实施例的DMA控制器305a的操作。图20是表示本发明第七实施例的打印机控制器103a的详细结构的框图。与上述图2的框图共同的部分用相同的附图标记表示,并省略其说明。图21是表示本发明第七实施例的打印机控制器103a中的DMA控制器305a的详细结构的框图。与上述图3的框图共同的部分用相同的附图标记表示,并省略其说明。注意,该DMA控制器305a与图2中的DMA控制器305的区别仅在于,地址产生器502a还指示环形緩冲器计数器320的计数值的递增和递减。关于图20的打印机控制器103a,将DMA控制器321和322、图像处理器323和环形緩沖器计数器320添加到图2的打印机控制器103中。这里,DMA控制器322将存储在图像存储器304中的位图数据读出到图像处理器323。DMA控制器321将图像处理器323处理后的图像数据写入图像存储器304。由图像处理器323进行的处理具体包括旋转处理和变倍处理。根据来自CPU308的指示来执行对DMA控制器321和322的这些控制。另外,将环形緩冲器计数器320连接在DMA控制器321与DMA控制器305a之间。通过由DMA控制器305a和321控制和参照环形緩冲器计数器320的状态,可以利用环形緩冲器来进行向图像存储器304的数据传送和从图像存储器304的数据传送。环形緩沖器计数器320在接收到来自向环形緩冲器写入数据的DMA控制器321的递增指示时,使内部计数器(未示出)递增。同样,环形緩冲器计数器320在接收到来自从环形緩冲器读出数据的DMA控制器305a的递减指示时,使内部计数器递减。通过由DMA控制器305a和321根据环形緩冲器计数器320的计数值进行操作,可以使用环形緩冲器向图像存储器304发送小于一页的图像数据,并且可以在不读出图像存储器304的没有图像数据的区域的情况下,从DMA控制器321向DMA控制器305a传送图像数据。从图像存储器304经由环形緩冲器读出的位图数据由混合处理器306处理,并经由引擎接口307作为视频信号传送到打印单元107。注意,尽管说明的是使用环形緩冲器来进行第七实施例的DMA控制器305a与DMA控制器321之间的数据传送的情况下的结构,但也可以使用环形緩冲器与CPU308之间进行数据传送。图22A描绘出说明本发明第七实施例的DMA控制器305a中的指定扫描行弯曲的方法的图。在图22A中,n行表示作为图像形成的最初对象的扫描行,这里,一个扫描行(其长度为RegLineLen)被分割成多个段以与扫描行弯曲相匹配。这里,将段长度设定为SegLeni。变量i对应于扫描行中的段的顺序。表示扫描行弯曲向上还是向下的UpDowni被设定在行切换位置处。同样,变量i对应于扫描行中的段的顺序,UpDown[i〗-0表示向上切换,UpDown[iI-l表示向下切换。图22B描绘出存储了到行切换位置为止的(段)长度SegLenn和表示向上面行切换还是向下面行切换以与扫描行弯曲相匹配的UpDown[i的表。该表被存储在图像存储器304或RAM310中。该表的基础地址(RegTableStartAddr)被设定在DMA控制器305a的寄存器单元501中。这里,由于UpDown[i可以取上或下的两个值,因此在切换到上面的行时分配"O",在切换到下面的行时分配DMA控制器305a的寄存器单元501还包括位图数据的行长度(RegLineLen)和用于在CPU308设定了上迷寄存器的值后开始DMA操作的开始寄存器(未示出)。图23A~23C描绘出说明本发明第七实施例的DMA控制器305a中指定环形緩冲器区域的方法的图。图23A描绘出M行环形緩冲器。存储在环形緩冲器中的位图数据中的相邻行地址的偏移(RegLineOffset)被设定在寄存器单元501中。并且设定了环形緩冲器区域的下限(RegRingBufferLowerAddr)和上限(RegRingBufferUpperAddr)。在图像存储器304中确保的环形緩冲器区域的基础地址(RegStartAddr)以及环形緩沖器区域的行数(RegLines)被设定在寄存器单元501中。图23B描绘出扫描行弯曲的一个例子。在此,指定用于从读出行的开始沿向上方向进行切换的最大行数(RegUpMax)和用于从读出行的开始沿向下方向进行切换的最大行数(RegDownMax)。这些值被设定在寄存器单元501中。在图23B的例子中,RegUpMax-2,RegDownMax=3。图23C描绘出说明在图23B所示的扫描行弯曲的情况下判断扫描行是否在打印有效区域内的图。这里,将表示环形緩沖器的基础地址处的给定行的读出开始位置的RegStartLinelndex设定在寄存器单元501中。另外还设定将要发送到混合处理器306的行的行数(RegBeamLines)和当输出打印有效区域外的数据时使用的伪数据(RegFiUData)。在图23B中,由于RegUpMax为"2"、RegDownMax为"3",因此读出开始行(RegStartLinelndex)是从打印有效区域的第一行向下的第三行。读出结束行是从打印有效区域的最后行向上的第二行。图24和25是说明第七实施例的DMA控制器305a中的地址产生器502a的操作的流程图。该处理与DMA控制器321将图像处理器323处理后的位图数据存储到图像存储器304的环形緩冲器、以及使环形緩冲器计数器320递增并行地进行。首先,在步骤S701中,当通过来自CPU308的指令开始了DMA操作时,每行的开始地址(line_start_addr)被初始化为环形緩冲器区域的基础地址(RegStartAddr)。已发送到混合处理器306的行的已处理行数(Hne_cnt)被初始化为"0",图像数据的读出开始行(startjine一index)被初始化为读出开始行(RegStartLinelndex)(在图23B的例子中为向下第3行)。接着,处理前进到步骤S702,对每行执行初始化。这里,将段开始地址(seg_addr)初始化为行开始地址(Hne一start一addr)。行的已处理数据量(line一data一cnt)被初始化为"0",当前行位置(line—index)被初始化为图4象数据的读出开始行(start_line—index)。要参照段的长度(SegLeni)和表示行切换信息(UpDown[i)的表中的地址的table一addr被初始化为表的基础地址(RegTableStartAddr)。接着,处理前进到步骤S703,地址产生器502a确定图像数据的读出开始行(start一line—index)相对于图23C所示的打印有效区域在哪里。如果在步骤S703中确定读出开始行(startjine—index)在有效区域上方,例如在图23C中的-3行到2行之间,则处理前进到步骤S704,地址产生器502a等待将图23C中的-3行到2行的数据存储在环形緩冲器中。具体地说,将环形緩冲器计数器(RBC)的值与通过使BH(-RegUpMax+RegDownMax+1)+1(在第七实施例中BH=6)与(start_line_index-l)相加而得到的值进行比较。当这样将-3行到2行的数据存储在环形緩冲器中时,处理前进到步骤S705,在前进到步骤S711之前,执行一行的处理。这一行的处理将在后面参照图25进行说明。在此,步骤S704和S705的处理相当于图23C的区域A所示的行的数据处理。如果在步骤S703中确定图像数据的读出开始行(start_line_index)在图23C所示的打印有效区域内,则处理前进到步骤S706,在前进到步骤S707之前,地址产生器502a等待将考虑到扫描行弯曲的图像数据的6(BH)行存储在环形緩冲器中。在步骤S707中,在前进到步骤S708之前,执行一行的处理(后述),并在前进到步骤S711之前,从环形緩沖器计数器(RBC)中减去"1"。这里,步骤S706和S707的处理相当于如图23C的区域B所示的、其行数据全部包含在打印有效区域中的行的数据处理。如果在步骤S703中确定图像数据的读出开始行(start—line—index)在图23C所示的打印有效区域下方,在N-3行到N+l行之间,则处理前进到步骤S709,在前进到步骤S710之前,执行一行的处理(后述)。在步骤S710中从环形緩冲器计数器(RBC)中减去"l"后,处理前进到步骤S711。这里,步骤S709的处理相当于图23C的区域C所示的行的数据处理。以下参照图25的流程图说明步骤S705、S707和S709的一行处理。图25是说明第七实施例的一行处理的流程图。在步骤S801中,根据表地址得到(start—line—index所示的)行的弯曲信息。接着,处理前进到步骤S802,将段长度(length)和行的切换信息(up_down_info)设定在寄存器中。接着,处理前进到步骤S803,确定当前行位置(line_index)是否在打印有效区域内。如果在步骤S803中确定当前行位置(line_index)在打印有效区域内,则处理前进到步骤S804,读出该行中的相关段的图像数据。如果在步骤S803中确定当前行位置(line一index)不在打印有效区域内,则处理前进到步骤S805,读出长度等于该行中的相关段的伪数据(RegFilIData)。在这样执行了步骤S804或S805之后,处理前进到步骤S806,更新图像数据的读出地址(addr)和表地址(table_addr)。这里,将读出地址(addr)更新为通过将已处理段长度加到读出地址上而得到的地址,并将"8,,加到表地址上,以得到下一段的弯曲信息。接着,处理前进到步骤S807,地址产生器502a检查表示是向上面行切换还是向下面行切换的信息(up—down一info)。这里,如果切换信息为"O",即如果没有向上或向下的切换,则由于在读出行数据之前不必切换行,因此结束处理。即使在行中有弯曲,由于切换信息(up—down一info)将为"O",因此在最后段结束处理。另一方面,如果在步骤S807中确定有向上的弯曲,则处理前进到步骤S808,从当前行位置(line—index)减去"1",然后在步骤S809中,地址产生器502a检查相减结果是否为负值。如果不是负值,则处理前进到步骤S810,从读出地址(addr)中减去环形緩冲器中的一行的地址偏移(RegLineOffset),以将读出地址更新为前一行的地址,然后在步骤S811中,确定更新后的地址是否小于或等于环形緩冲器的基础地址(RegRingBufferLowerAddr),即,该地址是否在环形緩冲器中。如果地址在环形緩冲器中,则处理返回步骤S801,执行上迷处理,否则,处理前进到步骤S812,将环形緩冲器的存储器区域(RegRingBufferUpperAddr-RegRingBufferLowerAddr)加到读出地址(addr)上,以将读出地址更新为环形緩冲器中的地址。然后处理返回步骤S801。另一方面,如果在步骤S807中确定扫描行向下弯曲,则处理前进到步骤S813,将"l,,加到当前行位置(linejndex)上,然后在步骤S814中,地址产生器502a确定相加结果是否超过环形緩沖器的行数N。如果相加结果没有超过环形緩冲器的行数N,则处理前进到步骤S815,将环形緩冲器中的一行的地址偏移(RegLineOffset)加到读出地址(addr)上,以将读出地址更新为下一行的地址。在步骤S816中,确定更新后的地址是否小于或等于环形緩冲器的最后地址(RegRingBufferUpperAddr),即,该地址是否在环形緩冲器中.如果地址在环形緩沖器中,则处理返回步骤S801,执行上述处理,否则,处理前进到步骤S817,从读出地址(addr)中减去环形緩冲器的存储器区域(RegRingBufferUpperAddr-RegRingBufferLowerAddr)。从而将读出地址更新为环形緩冲器中的地址。然后处理返回步躁S801。注意,如果在步骤S809或S814中计算结果为负或大于N,则处理返回801。这样,利用该一行处理,可以按照存储在环形緩冲器中的打印有效区域中包含的行的段来读出图像数据。针对不在打印有效区域内的段读出伪数据(RegFHlData)。接着返回图24,在执行了步骤S705、S708和710之一后,处理前进到步骤S711,确定读出开始行(start一line一index)是否在打印有效区域内。如果读出行在打印有效区域内,则处理前进到步骤S712,将环形緩冲器中的一行的地址偏移(RegLineOffset)加到addr上,以将读出开始位置更新为下一行的地址。然后,在步骤S713中,确定更新后的地址是否小于或等于环形緩冲器的最后地址(RegRingBufferUpperAddr),即,更新后的地址是否在环形緩冲器内。这里,如果更新后的地址在环形緩沖器内,则处理前进到步骤S715,否则,在步骤S714中将地址初始化为环形緩冲器的基础地址,并且处理前进到步骤S715。如果在步骤S711中确定读出开始行(start—Hne_index)不在打印有效区域内,则处理前进到步骤S715。在步骤S715中,将"l"加到读出开始行(start—linejndex)和已处理行数(line_cnt)上。然后在步骤S716中,地址产生器502a检查已处理行数是否等于一页的行数(RegBeamLine),即,是否已经处理了一页的图像数据。如果已经处理了一页的图像数据,则结束DMA处理,否则处理前进到步骤S702,对下一扫描行执行处理。这里,当DMA操作结束时,DMA控制器305a向CPU308发送中断(未示出)。CPU308通过检测该中断来检测出DMA传送已经结束。根据上述第七实施例,DMA控制器可以使用环形緩冲器一边在行间改变一边读出弯曲的图像数据,从而修正扫描行弯曲。这样,通过使用具有小于一页图像数据的容量的緩沖器来修正激光光束的弯曲。第八实施例以下将参照图26和27来说明本发明第八实施例的DMA控制器305的操作。第八实施例的特征是将由打印单元107打印到记录介质上的图像数据在记录介质上的任意定位。图26描绘出图像数据被记录在记录介质上的特定记录位置上的状态的例子。图27描绘出图像数据被记录在记录介质上的、已经从特定记录位置移开的位置上的状态的例子。如上所述,导致配准误差的扫描行弯曲根据扫描行在主扫描方向上的位置而不同。这样,从图26中的记录位置沿主扫描方向移动规定数量的移动象素(shiftx)会要求取决于被移动的位置的调整。注意,假设移动象素数(shiftx)由CPU308针对DMA控制器305中的寄存器单元501设定。然后,CPU308根据设定在寄存器单元501中的shiftx,如下在重写RegSegLen的同时计算RegStartAddr。(i)计算满足下式的值Y,并确定为读出开始段Y。shiftx2RegSegLen[il(i=l,2,…Y)(ii)开始段的段长度由于移动而改变,因此开始段的段长度(RegSegLen[Z)根据下式被重写。RegSegLen[ZI=SRegSegLen[i(i=1,2,…Y)-shiftx(iii)开始段由于移动而改变,因此根据下式计算开始行(Line),Line=2:RegUpDowni-l(i-l,2,…Y)根据下式从行移动量和图像数据中相邻行的地址偏移(RegLineOffset)来计算开始地址(RegStartAddr)。RegStartAddr=Line*RegLineOffset然后,通过根据上述计算的值执行第一实施例中的图7A和7B的操作,可以把将要由打印单元107打印到记录介质上的图像数据在记录介质上任意定位。注意,可以通过直接或间接地将实现上述实施例的功能的软件程序提供给系统或装置,并且在系统或装置中使用计算机以读出和执行所提供的程序代码,来实现本发明。在这种情况下,只要系统或装置具有程序的功能,则实施方式不必为程序。因此,为了通过计算机实现本发明的功能而安装到计算机上的实际的程序代码也实现本发明。换言之,本发明的权利要求还覆盖用于实现本发明的功能的实际的计算机程序。在这种情况下,只要系统或装置具有程序的功能,则程序可以以任何形式来执行,例如目标码、由解释器执行的程序或提供给操作系统的脚本数据。可以用于提供程序的记录介质的例子包括软盘(floppy:注册商标)、硬盘、光盘、磁光盘、MO、CD-ROM、CD-R、CD-RW、磁带、非易失性存储卡、ROM和DVD(DVD-ROM、DVD-R)。替代地,也可以通过使用客户机的浏览器连接到互联网上的站点并将程序从站点下载到硬盘等记录介质来提供程序。这种情况下,可以下载本发明的实际程序或包括自动安装功能的压缩文件。而且,可以通过将构成程序的程序代码分割成多个文件并从不同的站点下栽各个文件来实现本发明的程序。换言之,允许多个用户利用计算机下栽用于执行本发明的功能的程序文件的万维网(WWW)服务器也被本发明的权利要求覆盖。本发明的程序还可以以存储在CD-ROM等存储介质上的加密形式来分发给用户。这种情况下,满足规定要求的用户被允许经由互联网从站点下载解密密钥信息,并且将利用该密钥信息解密后的程序以可执行的形式安装在计算机上。通过由计算机执行所读出的程序,各实施例的功能可以以不同于上述的形式来实现。例如,在计算机上运行的操作系统等可以根据程序中的指令执行实际处理的一部分或全部,并且通过该处理实现上述实施例的功能。而且,还可以将从记录介质读出的程序写入插入到计算机中的功能扩展板或连接到计算机上的功能扩展单元中设置的存储器中。这种情况下,设置在功能扩展板或功能扩展单元中的CPU等根据程序中的指令执行实际处理的一部分或全部,并且通过该处理实现上述实施例的功能。尽管参照示例性实施例说明了本发明,但可以理解,本发明不限于所公开的示例性实施例。下述权利要求的范围应当进行最宽泛的解释,以包括所有这样的修改和等同结构及功能。权利要求1.一种用于形成图像的图像形成装置,包括存储单元,用于存储至少多行的图像数据;数据读出单元,用于根据读出开始地址沿行方向从所述存储单元中读出图像数据;设定单元,用于设定行方向上的行切换地址,所述行切换地址用于把将要由所述数据读出单元读出的图像数据的行从第一行切换到第二行;产生单元,用于在所述数据读出单元将图像数据的行从第一行切换到第二行的情况下,产生第二行的读出开始地址,从而使第一行在行方向上的读出地址与第二行在行方向上的读出地址重叠;控制单元,用于在读出第一行的图像数据时的行方向上的读出地址与行切换地址相同的情况下,根据所述产生单元产生的读出开始地址,控制所述数据读出单元读出第二行的图像数据;半色调处理单元,用于根据所述数据读出单元读出的第一行的图像数据和第二行的图像数据来执行半色调处理;以及图像形成单元,用于根据由半色调处理单元执行了半色调处理后的图像数据来形成图像。2.如权利要求1所述的图像形成装置,其中,第二行与第一行相邻。3.如权利要求2所述的图像形成装置,其中,所述设定单元根据在将一行的图像数据分割成多个段的情况下每段的长度来设定行切换地址。4.如权利要求3所述的图像形成装置,其中,所述多个段中的每个段的长度是可变的。5.如权利要求3所述的图像形成装置,其中读出开始地址相当于要读出的段的基础地址。6.如权利要求1所述的图像形成装置,其中,所述数据读出单元经由环形緩冲器从存储单元中读出图像数据。7.—种用于形成图像的图像形成方法,包括数据读出步骤,根据读出开始地址沿行方向从存储至少多行的图像数据的存储器中读出图像数据;设定步骤,设定行方向上的行切换地址,所述行切换地址用于把将要在所述数据读出步骤中读出的图像数据的行从第一行切换到第二行;产生步骤,在所述数据读出步骤将图像数据的行从第一行切换到第二行的情况下,产生第二行的读出开始地址,从而使第一行在行方向上的读出地址与第二行在行方向上的读出地址重叠;控制步骤,在读出第一行的图像数据时的行方向上的读出地址与行切换地址相同的情况下,根据在所述产生步骤中产生的读出开始地址,控制所述数据读出步骤读出第二行的图像数据;半色调处理步骤,根据在所述数据读出步骤中读出的第一行的图像数据和第二行的图像数据来执行半色调处理;以及图像形成步骤,根据在半色调处理步骤中执行了半色调处理后的图像数据来形成图像。8.如权利要求7所述的图像形成方法,其中,第二行与第一行相邻。9.如权利要求7所述的图像形成方法,其中,所述设定步骤根据在将一行的图像数据分割成多个段的情况下每段的长度来设定行切换地址。10.如权利要求9所述的图像形成方法,其中,所述多个段中的每个段的长度是可变的。11.如权利要求9所述的图像形成方法,其中,读出开始地址相当于要读出的段的基础地址。12.如权利要求7所述的图像形成方法,其中,在所述数据读出步骤中,经由环形緩沖器从存储器中读出图像数据。13.—种图像形成装置,包括输入单元,用于按页来接收图像数据;图像数据存储单元,用于存储由所述输入单元接收的图像数据;读出单元,用于根据读出开始地址和读出数据长度读出存储在所述图像数据存储单元中的图像数据,作为读出数据长度的数据段;图像形成单元,用于根据由所述读出单元读出的多个数据段构成的图像数据的扫描行来扫描图像承载体,并且按扫描行在图像承栽体上形成图像;修正信息存储单元,用于存储修正信息,该修正信息用于修正图像承载体上的扫描行的弯曲;和产生单元,用于根据存储在所述修正信息存储单元中的修正信息,产生多个读出开始地址,其中,所述读出单元一边切换由产生单元产生的多个读出开始地址,一边从图像数据存储单元中读出多个数据段。14.如权利要求13所述的图像形成装置,其中,所述图像形成单元具有多个图像承栽体;所述修正信息存储单元存储与多个图像承栽体一一对应的多个l务正信息;所述产生单元根据与存储在所述图像数据存储单元中的图像数据的多个颜色中的每个颜色相对应的修正信息,产生多个读出开始地址。15.如权利要求14所述的图像形成装置,其中,所述读出单元根据读出数据长度和由所述产生单元产生的多个读出开始地址,执行从所述图像数据存储单元向图像形成单元的数据段的DMA传送。全文摘要本发明提供一种图像形成装置及其方法。在逐行图像形成装置中,在寄存器中设定取决于扫描行弯曲的行切换信息、以及跨行切换信息指示的切换位置之前和之后的多行而重叠的、要读出的重叠数据长度。如果行切换信息指示向上面行或下面行切换,则当从图像存储器中读出图像数据时,地址产生单元根据行切换信息和重叠数据长度,产生图像存储器的读出地址和读出数据长度,并且根据所产生的数据读出与当前行和当前行上面或下面的行对应的图像数据。文档编号G03G15/00GK101183227SQ20071017009公开日2008年5月21日申请日期2007年11月13日优先权日2006年11月13日发明者小仓圭吾,森田靖二郎,横山登,黑沢秀德申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1