CN107710274A - 图像处理装置和图像处理方法 - Google Patents

图像处理装置和图像处理方法 Download PDF

Info

Publication number
CN107710274A
CN107710274A CN201680032971.1A CN201680032971A CN107710274A CN 107710274 A CN107710274 A CN 107710274A CN 201680032971 A CN201680032971 A CN 201680032971A CN 107710274 A CN107710274 A CN 107710274A
Authority
CN
China
Prior art keywords
image processing
processing module
data
image
processing
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.)
Granted
Application number
CN201680032971.1A
Other languages
English (en)
Other versions
CN107710274B (zh
Inventor
中园启介
上野晃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Olympus Corp
Original Assignee
Olympus Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Olympus Corp filed Critical Olympus Corp
Publication of CN107710274A publication Critical patent/CN107710274A/zh
Application granted granted Critical
Publication of CN107710274B publication Critical patent/CN107710274B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4007Interpolation-based scaling, e.g. bilinear interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/60Noise processing, e.g. detecting, correcting, reducing or removing noise
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

一种图像处理装置,其中,图像处理部与数据总线连接,图像处理部中构成有对输入的数据进行预先确定的处理的多个处理模块串联连接而成的流水线,图像处理装置具有进行流水线处理的设定的系统控制部,处理模块各自具有:数据缓冲器,其将数据按处理的单位暂时存储;运算部,其进行与系统控制部对处理内容的设定对应的处理的运算;以及控制部,其根据系统控制部对数据的传送路径的设定来选择处理模块内的数据的传送路径,并且对数据缓冲器的动作进行控制,图像处理部还具有连接切换部,该连接切换部切换与系统控制部对流水线结构的设定对应的处理模块彼此的连接。

Description

图像处理装置和图像处理方法
技术领域
本发明涉及图像处理装置和图像处理方法。
本申请基于2015年6月12日在日本申请的日本特愿2015-119685号主张优先权,这里引用其内容。
背景技术
在搭载于静态图像用照相机、动态图像用照相机、医疗用内窥镜照相机、或者工业用内窥镜照相机等摄像装置上的系统LSI等许多图像处理装置中,在内置的多个处理块共享所连接的一个DRAM(Dynamic Random Access Memory:动态随机存取存储器)。在这样的系统LSI中,内置的多个处理块与系统LSI内部的数据总线连接,各个处理块通过DMA(Direct Memory Access:直接内存访问)来进行对DRAM的访问。
另外,在这样的系统LSI所具备的处理块中具有多个处理模块,也存在通过将各个处理模块串联连接来进行流水线处理的处理块。例如,在摄像装置所具备的系统LSI中,进行图像处理的图像处理部是进行流水线处理的处理块。而且,在图像处理部中,通过将进行各图像处理的多个图像处理模块串联连接的流水线处理,来实现图像处理部中的图像处理的高速化。通常,在进行流水线处理的具有多个处理模块的处理块中,在各个处理模块之间设置有用于进行数据的交接的数据缓冲器,通过该数据缓冲器来吸收各个处理模块中的处理的延迟,从而正常地进行流水线处理。
例如,在专利文献1中公开了在作为处理模块的各个处理阶段之间设置作为数据缓冲器的双缓冲器的流水线结构的图像处理装置的技术。在专利文献1所公开的图像处理装置中,经由双缓冲器进行各个处理阶段之间的数据的交接,由此实现了通过各个处理阶段来依次进行处理的流水线处理。
在专利文献1所公开的图像处理装置中,通过将前级的处理阶段进行了处理的数据暂时存储在双缓冲器中,后级的处理阶段读出存储在双缓冲器中的数据,由此从前级的处理阶段向后级的处理阶段交接数据。即,在专利文献1所公开的图像处理装置中,在从前级的处理阶段向后级的处理阶段交接数据时,必须进行基于前级的处理阶段的数据向双缓冲器的写入和后级的处理阶段从双缓冲器的数据的读出。
现有技术文献
专利文献
专利文献1:日本特开平10-334225号公报
发明内容
发明要解决的课题
可是,在处理模块中,所执行的每个处理所需的数据缓冲器的存储容量是不同的。因此,在进行流水线处理的处理块中,根据各个处理模块所执行的处理、从数据输入给各个处理模块到输出进行了处理后的数据为止的延迟时间、前级和后级的处理模块所具备的缓冲器的存储容量和延迟时间等,来确定各个处理模块所具备的数据缓冲器的存储容量。这是为了使得各个处理模块中的流水线处理不会(暂时)停止即不会成为流水线失速状态。
另外,处理块所具备的处理模块不限于执行一种处理的处理模块,也存在具有执行多种处理的功能的处理模块。在这样的处理模块中,具有数据缓冲器,该数据缓冲器具有考虑到执行的各个处理功能而能够存储需要的最大数量的数据的存储容量。通常,数据缓冲器的存储容量被确定为具有预先确定的余量的存储容量。
然而,在具有多种处理功能的处理模块中,未必始终需要最大数量的存储容量,根据所执行的处理,也有时不使用所具备的数据缓冲器的所有存储容量。在该情况下,具有多种处理功能的处理模块处于在所需之外还具有较多存储容量的状态。
在数据缓冲器中,随着写入或者读出数据的动作而消耗电力。因此,在专利文献1所公开的图像处理装置中,在进行流水线处理的各个处理阶段中,在进行数据向双缓冲器的写入和来自双缓冲器的数据的读出各自的动作时,随着双缓冲器的动作而消耗电力。即,在专利文献1所公开的图像处理装置中,双缓冲器因前级的处理阶段向双缓冲器的写入和后级的处理阶段从双缓冲器的读出而消耗电力。而且,在专利文献1所公开的图像处理装置中,即使在存在具有多种处理功能的处理阶段的情况下,双缓冲器也随着动作而消耗电力,而与该处理阶段所执行的处理无关。
本发明就是基于上述课题的认知而完成的,其目的在于提供能够降低消耗电力而不会使流水线处理的性能降低的图像处理装置和图像处理方法。
用于解决课题的手段
根据本发明的第一方式,图像处理装置中,存储器和图像处理部与数据总线连接,所述图像处理部中构成有对输入的数据进行预先确定的处理的多个处理模块串联连接而成的流水线,所述图像处理部通过各个所述处理模块依次进行所述处理来进行流水线处理,并且所述图像处理装置具有对所述图像处理部所进行的所述流水线处理进行设定的系统控制部,其中,所述处理模块各自具有:数据缓冲器,其将所述数据按所述处理的单位暂时存储;运算部,其根据所述系统控制部对处理内容的设定来进行所述处理的运算;以及控制部,其根据所述系统控制部对数据的传送路径的设定来选择所述处理模块内的将所述数据传送到所述运算部的路径,并且对所述数据缓冲器的动作进行控制,所述图像处理部还具有连接切换部,该连接切换部根据所述系统控制部对流水线结构的设定而切换构成所述流水线的所述处理模块彼此的连接。
根据本发明的第二方式,在上述第一方式的图像处理装置中,也可以是,多个所述处理模块中的至少一个所述处理模块是具有第二运算部的第二处理模块,所述第二运算部是排他地进行预先确定的多个所述处理的运算的所述运算部,所述系统控制部根据所述第二处理模块对所述数据进行的所述处理的内容和与所述第二处理模块相邻连接的所述处理模块所具备的所述数据缓冲器的存储容量,来进行所述传送路径的设定和所述流水线结构的设定。
根据本发明的第三方式,在上述第二方式的图像处理装置中,也可以是,所述系统控制部在所述第二处理模块进行与所述处理内容的设定对应的所述处理的运算时存在多余的所述数据缓冲器的存储容量的情况下,将所述第二运算部和相邻连接的所述处理模块所具备的所述运算部作为一个运算部,在多余的所述存储容量是能够代替相邻连接的所述处理模块所具备的所述数据缓冲器的存储容量来使用的容量的情况下,将相邻连接的所述处理模块的所述传送路径设定为不将所述数据存储到所述数据缓冲器中而跳过所述数据缓冲器传送到所述运算部的路径,并且使相邻连接的所述处理模块所具备的所述数据缓冲器的动作停止,在多余的所述存储容量是不能代替相邻连接的所述处理模块所具备的所述数据缓冲器的存储容量来使用的容量的情况下,将相邻连接的所述处理模块的所述传送路径设定为在将所述数据暂时存储到所述数据缓冲器中之后读出并传送到所述运算部的路径。
根据本发明的第四方式,在上述第三方式的图像处理装置中,所述系统控制部也可以根据所述数据缓冲器整体的存储容量和所述第二处理模块进行与所述处理内容的设定对应的所述处理的运算时所使用的所述数据缓冲器的存储容量,来计算所述第二处理模块所具备的所述数据缓冲器的多余的存储容量。
根据本发明的第五方式,在上述第二方式至上述第四方式中的任意一个方式的图像处理装置中,所述处理模块和所述第二处理模块还可以具有选择器,该选择器选择传送从所述数据缓冲器读出的所述数据的路径和跳过所述数据缓冲器而传送所述数据的路径中的任意一方路径作为传送所述数据的路径。
根据本发明的第六方式,在上述第二方式至上述第五方式中的任意一个方式的图像处理装置中,也可以是,所述数据是与图像中包含的各个像素对应的像素数据,所述第二运算部是如下运算部:通过利用了所述图像中包含的各个像素的坐标的转换功能的图像插值处理而排他地进行多个所述处理的运算,所述系统控制部根据所述数据缓冲器整体的存储容量和所述第二处理模块进行与所述图像插值处理的设定值对应的所述图像插值处理的运算时所使用的所述数据缓冲器的存储容量,来计算所述第二处理模块所具备的所述数据缓冲器的多余的存储容量。
根据本发明的第七方式,在上述第六方式的图像处理装置中,所述图像插值处理也可以至少包含对所述图像的大小进行变更的尺寸调整处理和对包含于所述图像中的畸变像差的畸变进行校正的畸变校正处理。
根据本发明的第八方式,在上述第二方式至上述第七方式中的任意一个方式的图像处理装置中,与所述第二处理模块相邻连接的所述处理模块也可以在所述流水线的结构中连接在所述第二处理模块的后级。
根据本发明的第九方式,提供图像处理装置的图像处理方法,该图像处理装置中,存储器和图像处理部与数据总线连接,所述图像处理部中构成有对输入的数据进行预先确定的处理的多个处理模块串联连接而成的流水线,所述图像处理部通过各个所述处理模块依次进行所述处理来进行流水线处理,并且所述图像处理装置具有对所述图像处理部所进行的所述流水线处理进行设定的系统控制部,其中,该图像处理方法具有由各个所述处理模块执行的运算步骤和控制步骤以及由所述图像处理部执行的连接切换步骤,在所述运算步骤中,根据所述系统控制部对处理内容的设定来进行所述处理的运算;在所述控制步骤中,根据所述系统控制部对数据的传送路径的设定,来选择所述处理模块内的将所述数据传送到进行所述处理的运算的运算部的路径,并且对将所述数据按所述处理的单位暂时存储的数据缓冲器的动作进行控制;在所述连接切换步骤中,根据所述系统控制部对流水线结构的设定而切换构成所述流水线的所述处理模块彼此的连接。
发明效果
根据上述各方式获得了如下效果:可以提供能够降低消耗电力而不会使流水线处理的性能降低的图像处理装置和图像处理方法。
附图说明
图1是示出本发明的实施方式中的图像处理装置的概略结构的框图。
图2是示出本发明的实施方式的图像处理装置所具备的图像处理部中的图像处理模块之间的数据的传送方法的一例的图。
图3是示出本发明的实施方式的图像处理装置所具备的图像处理部中的图像处理模块的概略结构的框图。
图4是示出本发明的实施方式的图像处理装置所具备的图像处理部中的图像处理模块的概略结构的框图。
图5是对本发明的实施方式的图像处理装置所具备的图像处理部中的图像处理模块所具备的输入缓冲器的一例进行说明的图。
图6是示出本发明的实施方式的图像处理装置所具备的图像处理部中的图像处理模块的连接的一例的图。
图7是示出本发明的实施方式的图像处理装置所具备的图像处理部中的图像处理模块的动作的一例的时序图。
图8是示出本发明的实施方式的图像处理装置所具备的图像处理部中的图像处理模块的连接的另外一例的图。
图9是示出本发明的实施方式的图像处理装置所具备的图像处理部中的图像处理模块的动作的另外一例的时序图。
图10是对本发明的实施方式的图像处理装置所具备的图像处理部中的图像处理模块所具备的输入缓冲器的存储容量与图像处理中所使用的输入缓冲器的存储容量之间的关系的一例进行说明的图。
图11是示出在本发明的实施方式的图像处理装置所具备的图像处理部中构成流水线时的处理过程的流程图。
图12是示出在本发明的实施方式的图像处理装置所具备的图像处理部中进行了不同的设定的情况下的图像处理模块的动作的一例的时序图。
具体实施方式
下面,参照附图对本发明的实施方式进行说明。图1是示出本发明的实施方式中的图像处理装置的概略结构的框图。图1所示的图像处理装置1具有DMA总线10、DRAM 20、图像处理部30、CPU(Central Processing Unit:中央处理单元)总线60、CPU 50。另外,图像处理部30具有连接切换部31、输入DMA模块32、五个图像处理模块33-1~图像处理模块33-5、输出DMA模块34。图像处理装置1例如配置在静态图像用照相机等摄像装置中。
另外,在图1中,省略了配置在图像处理装置1中且与DMA总线10和CPU总线60中的任意一方或两方连接的其他构成要素的图示。作为图像处理装置1所具备的其他构成要素,例如存在摄像处理部、记录处理部、显示处理部等,该摄像处理部控制对通过摄像装置所具备的镜头而成像的被摄体的光学像进行光电转换的固体摄像元件,该记录处理部进行用于记录图像处理部30所处理的图像数据的记录处理,该显示处理部用于使图像处理部30所处理的图像数据显示在图像处理装置1所具备的显示部上。
DRAM 20与DMA总线10连接,存储在摄像装置中所处理的各种数据。例如,DRAM 20存储从摄像装置所具备的未图示的固体摄像元件输出的静态图像的数据。在图像处理装置1中,将存储在DRAM 20中的1帧的静态图像的数据分成预先确定的多个小块,图像处理部30按各个块进行图像处理。
CPU 50是与CPU总线60连接,对图像处理装置1所具备的各个构成要素和摄像装置所具备的构成要素进行控制的系统控制部。CPU 50根据用于控制各个构成要素的程序和数据对整个摄像装置进行控制。另外,用于供CPU 50对整个摄像装置进行控制的程序和数据也可以从与DMA总线10连接的DRAM 20经由将DMA总线10和CPU总线60连接起来的未图示的总线连接部读出。
如图1所示,图像处理部30通过输入DMA模块32、图像处理模块33-1~图像处理模块33-5、以及输出DMA模块34串联连接而成的流水线处理来依次进行图像处理装置1中的图像处理。图像处理部30所进行的图像处理的内容和动作由经由CPU总线60连接的CPU 50进行控制(设定)。例如,图像处理部30所进行的图像处理的处理模式、进行图像处理时的滤波系数和畸变系数等值(参数)、图像处理部30内的数据缓冲器的结构和动作等由CPU 50进行设定。
在以下的说明中,将包含于分割了1帧的静态图像的数据而成的各个块中的数据称作“块图像数据”。图像处理部30将包含于块图像数据中的各个像素的数据(下面称作“像素数据”)例如按预先确定的数量的列从DRAM 20读出,并将读出的像素数据作为一个处理单位而进行图像处理。在以下的说明中,在图像处理部30进行图像处理的一个处理单位的像素数据中,将同一列中所包含的连续的多个像素数据称作“单元行”。
图像处理部30具有选择对1帧的静态图像的数据进行的图像处理的功能。更具体而言,图像处理部30也可以通过各个图像处理模块33-1~图像处理模块33-5来依次进行图像处理,但是,可以通过图像处理模块33-1~图像处理模块33-5中的任意一个或多个来进行图像处理、或者变更图像处理模块33-1~图像处理模块33-5的顺序而进行图像处理。在以下的说明中,在将各个图像处理模块33-1~图像处理模块33-5不作区分地进行表示时,称作“图像处理模块33”。
连接切换部31切换图像处理部30所具备的各个构成要素所输出的图像数据的输出目的地、即切换图像处理部30所具备的各个构成要素彼此的连接。例如,在由图像处理部30仅进行图像处理模块33-2的图像处理的情况下,以将输入DMA模块32的输出端子和图像处理模块33-2的输入端子连接起来,将图像处理模块33-2的输出端子和输出DMA模块34的输入端子连接起来的方式切换各个构成要素的连接。另外,例如,在由图像处理部30以图像处理模块33-5、图像处理模块33-1的顺序进行图像处理的情况下,以将输入DMA模块32的输出端子和图像处理模块33-5的输入端子连接起来,将图像处理模块33-5的输出端子和图像处理模块33-1的输入端子连接起来,将图像处理模块33-1的输出端子和输出DMA模块34的输入端子连接起来的方式切换各个构成要素的连接。另外,连接切换部31根据来自经由CPU总线60连接的CPU 50的控制而进行图像处理部30所具备的各个构成要素的连接的切换。
输入DMA模块32是如下处理模块:用于将存储在DRAM 20中的包含于块图像数据中的各个像素数据按单元行读出,并将读出的像素数据经由连接切换部31输出给作为接下来进行图像处理的处理模块的任意一个图像处理模块33。输入DMA模块32根据来自经由CPU总线60连接的CPU 50的控制,经由DMA总线10从DRAM 20读出像素数据,并将读出的像素数据输出给由连接切换部31切换了连接后的连接目的地的图像处理模块33。
输入DMA模块32具有能够暂时存储预先确定的数量的单元行的像素数据的数据缓冲器。因此,输入DMA模块32也可以将经由DMA总线10从DRAM 20读出的像素数据暂时存储在数据缓冲器中,并将暂时存储在数据缓冲器中的像素数据输出给由连接切换部31切换了连接后的连接目的地的图像处理模块33。
图像处理模块33-1~图像处理模块33-5各自是如下的处理模块:对从由连接切换部31切换了连接后的连接目的地的输入DMA模块32或图像处理模块33经由连接切换部31输入的像素数据,进行预先确定的各种数字的图像处理。图像处理模块33-1~图像处理模块33-5各自根据来自经由CPU总线60连接的CPU 50的控制对经由连接切换部31输入的像素数据实施图像处理,并将实施了图像处理后的像素数据输出给由连接切换部31切换了连接后的连接目的地的图像处理模块33或输出DMA模块34。
在图像处理模块33-1~图像处理模块33-5各自所进行的图像处理中存在各种图像处理。在图像处理模块33-1~图像处理模块33-5各自所进行的图像处理中,例如包含生成与各个像素数据对应的Y(亮度)信号和C(颜色)信号的YC处理、降低包含于各个像素数据中的噪声的噪声降低处理、抑制各个像素数据所表示的图像中的高频成分的LPF处理、对图像中的被摄体的轮廓进行强调的边缘强调处理等。另外,在图像处理模块33-1~图像处理模块33-5各自所进行的图像处理中,例如也包含图像插值处理等,该图像插值处理随着包含于块图像数据中的各个像素的位置(坐标)的转换而进行。在该图像插值处理中,例如包含对图像的大小(尺寸)进行变更(放大或缩小)的尺寸调整处理、对包含于图像中的倍率色像差和畸变像差等畸变进行校正的畸变校正处理、进行梯形校正等图像形状的校正的形状校正处理等各种处理。这样,在图像处理模块33中,存在具有预先确定的一个图像处理功能的结构的图像处理模块33,也存在通过利用相同的处理功能(在上述的例子中是坐标的转换功能)来排他地进行多个图像处理的结构的图像处理模块33。
另外,图像处理模块33-1~图像处理模块33-5各自也具有能够暂时存储预先确定的数量的单元行的像素数据的数据缓冲器。而且,在各个图像处理模块33-1~图像处理模块33-5中,由CPU 50控制是否将经由连接切换部31输入的像素数据暂时存储在数据缓冲器中。例如,CPU 50以将任意一个图像处理模块33所具备的数据缓冲器用作与该图像处理模块33的前级或后级连接的其他图像处理模块33的数据缓冲器的方式进行控制。即,CPU 50可以考虑将图像处理模块33自身所具备的数据缓冲器与其他图像处理模块33所具备的数据缓冲器共享而进行控制。另外,与CPU 50对各个图像处理模块33所具备的数据缓冲器的控制方法相关的详细说明在后面说明。
另外,在以下的说明中,在将实施了图像处理后的像素数据与存储在DRAM 20中的要进行图像处理的对象的像素数据区分地进行表示的情况下,称作“处理像素数据”。
输出DMA模块34是如下处理模块:用于将从由连接切换部31切换了连接后的连接目的地的图像处理模块33经由连接切换部31输入的处理像素数据写入(存储)到DRAM 20中。输出DMA模块34根据来自经由CPU总线60连接的CPU 50的控制,将经由连接切换部31输入的处理像素数据经由DMA总线10输出给DRAM 20。
输出DMA模块34也具有能够暂时存储预先确定的数量的单元行的处理像素数据的数据缓冲器。因此,输出DMA模块34也可以将经由连接切换部31输入的处理像素数据暂时存储在数据缓冲器中,并将暂时存储在数据缓冲器中的处理像素数据经由DMA总线10输出给DRAM 20。
这样,在图像处理部30中,各个处理模块将1帧的静态图像的数据分割成块图像数据,对包含于各个块图像数据中的像素数据按单元行依次进行与来自经由CPU总线60连接的CPU 50的控制对应的图像处理,由此进行针对各个块图像数据的一系列的图像处理。
接下来,对图像处理部30所具备的各个处理模块的结构和动作进行说明。首先,对图像处理部30所具备的各个处理模块之间的像素数据的交接方法进行说明。
图2是示出本发明的实施方式的图像处理装置1所具备的图像处理部30中的图像处理模块33之间的数据的传送方法的一例的图。在图2中,示出将图像处理模块33-1进行了图像处理后的处理像素数据输出给图像处理模块33-2的情况下的一例。另外,如上所述,在图像处理部30中,各个处理模块所输出的像素数据经由连接切换部31而被输出给接下来进行处理的处理模块。但是,在图2中,省略连接切换部31的图示,示出从图像处理模块33-1向图像处理模块33-2直接输出处理像素数据的情况。
如上所述,在图像处理部30中,各个处理模块将多个单元行作为一个处理单位而进行图像处理。因此,在图像处理部30中,图像处理部30所具备的各个处理模块之间的像素数据的交接也按一个处理单位进行。在图2中,示出前级的图像处理模块33-1将八个单元行各自的处理像素数据作为一个处理单位而输出给后级的图像处理模块33-2的情况。另外,在一个单元行中包含有实施了图像处理后的包含于同一列中的连续的多个处理像素数据。
在图2中示出了图像处理模块33-1与图像处理模块33-2之间的处理像素数据的交接方法(传送方法)的一例,但输入DMA模块32与图像处理模块33之间的像素数据的交接方法、图像处理模块33与输出DMA模块34之间的处理像素数据的交接方法也与图2相同。另外,在图2中,示出将八个单元行各自的处理像素数据作为一个处理单位而进行交接的一例,在各个处理模块之间进行交接的单元行的数量并不限定于图2所示的数量即八个。
(第一结构)
接下来,对图像处理部30所具备的各个处理模块的第一结构进行说明。第一结构的图像处理模块33是具有预先确定的一个图像处理的运算功能的结构的图像处理模块33。图3是示出本发明的实施方式的图像处理装置1所具备的图像处理部30中的图像处理模块33的概略结构的框图。在图3中,示出第一结构的图像处理模块33的基本结构。图3所示的第一结构的图像处理模块33具有输入缓冲器331、选择器332、运算部333、控制部334。另外,控制部334具有设定寄存器3341。
输入缓冲器331是暂时存储向图像处理模块33输入的输入数据的数据缓冲器。输入缓冲器331例如使用SRAM(Static Random Access Memory:静态随机存取存储器)等存储器构成。输入缓冲器331具有能够将从前级的处理模块输入的预先确定的数量的单元行的像素数据作为输入数据而存储的存储容量。输入缓冲器331根据从控制部334输入的缓冲器控制信号而暂时存储所输入的输入数据。
在图像处理模块33中,所需要的单元行的数量根据要对所输入的输入数据(像素数据)实施的图像处理而不同。各个图像处理模块33所具备的输入缓冲器331暂时存储的单元行数即输入缓冲器331的存储容量是根据各个图像处理模块33所进行的图像处理的内容、从像素数据输入给各个图像处理模块33到输出实施了图像处理后的像素数据为止的延迟时间、连接在前级和后级的处理模块所具备的输入缓冲器331的存储容量和延迟时间等而预先确定的。
另外,输入缓冲器331也可以由所谓的双缓冲器构成,该双缓冲器具有两个存储预先确定的数量的单元行的像素数据(输入数据)的存储容量的组,以通过交替切换像素数据向一个存储容量的组的写入和来自另一个存储容量的组的像素数据的读出而能够同时进行一个处理单位的像素数据的输入输出的方式进行动作。
选择器332是选择向运算部333输出的像素数据的选择部。选择器332根据从控制部334输入的路径选择信号,将暂时存储在输入缓冲器331中的输入数据(像素数据)、或当前输入给图像处理模块33的输入数据(像素数据)中的任意一方的输入数据(像素数据),输出给运算部333。即,选择器332将从前级的处理模块输入而暂时存储在输入缓冲器331中的像素数据、或当前从前级的处理模块输入的像素数据本身中的任意一方的像素数据传送到运算部333。
运算部333对所输入的像素数据进行预先确定的各种数字式的图像处理的运算。运算部333进行与从控制部334输入的模式选择信号对应的图像处理的运算。运算部333将进行图像处理的运算而生成的处理像素数据,作为输出数据而输出到图像处理模块33的外部。即,运算部333将所生成的处理像素数据经由连接切换部31输出给其他图像处理模块33或输出DMA模块34。
控制部334进行图像处理模块33与前级所连接的其他处理模块之间的输入数据(像素数据)和图像处理模块33与后级所连接的其他处理模块之间的输出数据(处理像素数据)的交接的控制。此时,控制部334将表示图像处理模块33的动作状态的状态通知信号输出给前级和后级的处理模块。
另外,控制部334根据通过从CPU 50输入的设定信号而存储在设定寄存器3341中的设定,来控制具有控制部334自身的图像处理模块33内的各个构成要素的动作。进行运算部333所进行的图像处理的运算时的处理模式和参数、经由选择器332选择向运算部333输入的输入数据(像素数据)的参数等通过CPU 50而存储(设定)在设定寄存器3341中。而且,控制部334将用于选择路径的路径选择信号输出给选择器332,该路径是与通过CPU 50而设定在设定寄存器3341中的选择器332的参数对应的输入数据(像素数据)的路径。由此,选择器332以与路径选择信号对应的路径将输入数据(像素数据)传送到运算部333。另外,控制部334将用于进行动作的模式选择信号输出给运算部333,该动作与通过CPU 50而设定在设定寄存器3341中的运算部333的处理模式和参数对应。由此,运算部333对经由选择器332输入的输入数据(像素数据)进行与模式选择信号对应的图像处理的运算。
更具体而言,在通过CPU 50而设定在设定寄存器3341中的选择器332的参数表示暂时存储向图像处理模块33输入的输入数据(像素数据)的情况下,控制部334将用于选择如下路径的路径选择信号输出给选择器332,该路径是将暂时存储在输入缓冲器331中的输入数据(像素数据)输出给运算部333的路径。由此,选择器332在由控制部334读出暂时存储在输入缓冲器331中的像素数据时,将读出的像素数据传送到运算部333。而且,控制部334根据在输入缓冲器331中是否存在空闲的存储容量而对输入缓冲器331的动作进行控制。
在输入缓冲器331中存在空闲的存储容量的情况下,输入缓冲器331处于能够暂时存储向图像处理模块33输入的输入数据(像素数据)的状态。在该情况下,控制部334将请求输入数据(像素数据)的输出的数据请求信号,作为表示处于能够接收来自前级的处理模块的输入数据的状态的状态通知信号输出给前级的处理模块。而且,控制部334在输入表示根据输出的数据请求信号而从前级的处理模块输出输入数据(像素数据)的数据确认信号时,生成用于控制为接收与数据确认信号对应的输入数据(像素数据)并暂时存储(写入)的缓冲器控制信号,并将生成的缓冲器控制信号输出给输入缓冲器331。此时,控制部334根据从前级的处理模块与输入数据(像素数据)一起输入的数据有效信号对当前输入的输入数据(像素数据)是否是有效的数据进行判定。该数据有效信号是表示包含于单元行中的各个像素数据是否是有效的像素数据的信号。而且,控制部334生成仅将有效的输入数据(像素数据)写入到输入缓冲器331中的定时的缓冲器控制信号。由此,运算部333在由控制部334读出暂时存储在输入缓冲器331中的像素数据时,能够对暂时存储在输入缓冲器331中的有效的像素数据进行与模式选择信号对应的图像处理的运算。
另外,控制部334将如下数据确认信号输出给后级的处理模块,该数据确认信号表示根据从后级的处理模块输入的数据请求信号而输出运算部333进行了图像处理的运算后的输出数据(处理像素数据)。此时,控制部334生成用于控制为读出暂时存储在输入缓冲器331中的输入数据(像素数据)的缓冲器控制信号,并将生成的缓冲器控制信号输出给输入缓冲器331。由此,暂时存储在输入缓冲器331中的有效的输入数据(像素数据)经由选择器332而输入给运算部333。而且,运算部333对输入的有效的像素数据进行与模式选择信号对应的图像处理的运算,并将进行了图像处理的运算后的处理像素数据作为输出数据而输出给后级的处理模块。另外,数据有效信号在运算部333进行图像处理的运算时生成并与处理像素数据一起输出,该数据有效信号表示运算部333进行图像处理的运算而生成的包含于单元行中的各个输出数据(处理像素数据)是否是有效的处理像素数据。但是,该数据有效信号也可以是由控制部334根据从像素数据输入给运算部333到输出处理像素数据为止的延迟时间(下面称作“等待时间”)而生成并输出的。
另一方面,在输入缓冲器331中没有空闲的存储容量的情况下,输入缓冲器331无法暂时存储向图像处理模块33输入的输入数据(像素数据)。在该情况下,控制部334将表示不请求输入数据(像素数据)的输出的信号,作为表示处于无法接收来自前级的处理模块的输入数据的状态的状态通知信号而输出给前级的处理模块。此时的状态通知信号也可以以请求输入数据(像素数据)的输出的数据请求信号的逻辑电平表示对前级的处理模块不请求输入数据(像素数据)的输出,例如也可以以表示流水线处理(暂时)停止的流水线停滞信号等与数据请求信号不同的信号表示。而且,控制部334生成用于控制为保持暂时存储在输入缓冲器331中的像素数据的缓冲器控制信号,并将生成的缓冲器控制信号输出给输入缓冲器331。
在通过CPU 50而设定在设定寄存器3341中的选择器332的参数表示不暂时存储向图像处理模块33输入的输入数据(像素数据)的情况下,控制部334将用于选择将从前级的处理模块输入的输入数据(像素数据)不暂时存储在输入缓冲器331中而直接输出给运算部333的路径的路径选择信号输出给选择器332。即,控制部334将用于选择使从前级的处理模块输入的输入数据(像素数据)通过输入缓冲器331而传送给运算部333的路径的路径选择信号输出给选择器332。由此,选择器332将当前输入的输入数据(像素数据)直接传送到运算部333。此时,控制部334根据从前级的处理模块与输入数据(像素数据)一起输入的数据有效信号,对当前输入的输入数据(像素数据)是否是有效的数据进行判定,将表示数据有效信号有效的输入数据(像素数据)的定时通知给运算部333。另外,为了通知有效的输入数据(像素数据)的定时,控制部334也可以将所输入的数据有效信号输出给运算部333。由此,运算部333对直接输入的有效的像素数据进行与模式选择信号对应的图像处理的运算,并将进行了图像处理的运算后的处理像素数据作为输出数据而输出给后级的处理模块。另外,控制部334将与从后级的处理模块输入的数据请求信号对应的数据确认信号输出给后级的处理模块。另外,表示运算部333进行了图像处理的运算后的输出数据(处理像素数据)是否是有效的处理像素数据的数据有效信号的内容,与通过CPU 50而设定在设定寄存器3341中的选择器332的参数表示暂时存储向图像处理模块33输入的输入数据(像素数据)的情况是相同的。
通过这样的结构,图像处理部30所具备的第一结构的图像处理模块33根据来自CPU 50的控制而进行来自前级的处理模块的输入数据(像素数据)的接收、要进行图像处理的运算的像素数据的选择(切换)、运算部333对图像处理的运算。
(第二结构)
接下来,对图像处理部30所具备的各个处理模块的第二结构进行说明。如上所述,在图像处理部30所具备的图像处理模块33中,不仅是具有预先确定的一个图像处理的功能的结构的图像处理模块33,还存在通过利用坐标的转换功能等相同的处理功能来排他地进行多个图像处理的结构的图像处理模块33。第二结构的图像处理模块33是通过利用坐标的转换功能来排他地进行各种图像插值处理的具有多个图像处理的运算功能的结构的图像处理模块33。在以下的说明中,将第二结构的图像处理模块33称作“图像处理模块43”。
图4是示出本发明的实施方式的图像处理装置1所具备的图像处理部30中的图像处理模块43的概略结构的框图。在图4中示出第二结构的图像处理模块43的基本结构。图4所示的第二结构的图像处理模块43具有输入缓冲器431、选择器332、运算部433、控制部434。另外,运算部433具有坐标计算部4331、插值运算部4332。另外,控制部434具有设定寄存器3341、缓冲器读地址生成部4342。
图像处理模块43具有多个图像处理的运算功能,这一点与第一结构的图像处理模块33不同,但图像处理模块43也与第一结构的图像处理模块33同样地是图像处理部30中进行流水线处理的构成要素。因此,在第二结构的图像处理模块43的构成要素中包含与图3所示的第一结构的图像处理模块33所具备的构成要素相同的构成要素。因此,在以下的说明中,在图像处理模块43的构成要素中,对与第一结构的图像处理模块33的构成要素相同的构成要素标注相同的标号,仅对各个构成要素中的不同点进行说明。
输入缓冲器431与第一结构的图像处理模块33所具备的输入缓冲器331同样,是具有能够存储从前级的处理模块输入的预先确定数量的单元行的输入数据(像素数据)的存储容量的数据缓冲器,根据从控制部434输入的缓冲器控制信号(缓冲器写信号)而暂时存储所输入的输入数据。另外,输入缓冲器431与第一结构的图像处理模块33所具备的输入缓冲器331同样,根据从控制部434输入的缓冲器控制信号(缓冲器读信号)而读出暂时存储的像素数据并输出给选择器332。
在图像处理模块43中,也与第一结构的图像处理模块33所具备的输入缓冲器331同样,输入缓冲器431暂时存储的单元行数(输入缓冲器431的存储容量)被预先确定。但是,图像处理模块43通过多个图像处理的运算功能来排他地进行各种图像插值处理。因此,在图像处理模块43中,需要的单元行数即输入缓冲器431的存储容量按照图像处理模块43所执行的各个图像处理(图像插值处理)而不同。另外,即使在图像处理模块43执行相同的图像处理的情况下,需要的单元行数(输入缓冲器431的存储容量)也根据图像处理(图像插值处理)的设定值(参数)而不同。
因此,在图像处理模块43中,由于能够存储图像处理模块43所执行的各个图像处理(图像插值处理)中所使用的单元行数的像素数据,因此与需要的最大单元行数对应的存储容量作为输入缓冲器431的存储容量而被预先确定。
这里,对输入缓冲器431暂时存储的单元行数即输入缓冲器431的存储容量的一例进行说明。图5是对本发明的实施方式的图像处理装置1所具备的图像处理部30中的图像处理模块43所具备的输入缓冲器431的一例进行说明的图。在图5中示意性地示出能够通过利用坐标的转换功能来进行尺寸调整处理、畸变校正处理、形状校正处理等图像插值处理的结构的图像处理模块43所具备的输入缓冲器431的一例。
如上所述,输入缓冲器431具有能够存储预先确定的数量的单元行的像素数据的存储容量。在图5的(a)中示出将单元行存储区域4311在行方向上排列多个的结构的输入缓冲器431,该单元行存储区域4311与将列方向上连续的多个像素数据分别暂时存储的一个单元行对应。另外,图5的(a)所示的输入缓冲器431的结构与第一结构的图像处理模块33所具备的输入缓冲器331是相同的。
如上所述,输入缓冲器431的存储容量被确定为与具有多个图像处理的运算功能的结构的图像处理模块43所执行的各个图像处理中所需的最大单元行数对应的存储容量。但是,在图像处理模块43中,需要的单元行数根据所执行的图像处理而不同。在图5的(b-1)~图5的(b-3)、图5的(c-1)、以及图5的(c-2)中示意性地示出图像处理模块43所执行的图像处理中所需的单元行数的一例。
例如,在图像处理模块43进行畸变像差的畸变校正处理的情况下,为了输出进行了畸变校正处理后的一个单元行的处理像素数据而所需的像素数据的单元行数是根据由CPU 50根据摄像装置所具备的镜头的畸变像差的特性而设定在设定寄存器3341中的畸变系数的值(参数)来确定的。在图像处理模块43进行畸变像差的畸变校正处理的情况下,根据畸变系数的值而使用暂时存储在输入缓冲器431中的像素数据,由此生成进行了畸变像差的畸变校正处理后的一个单元行的像素数据。因此,在图像处理模块43进行畸变像差的畸变校正处理的情况下,如图5的(b-1)~图5的(b-3)所示,使用存储图像处理模块43所具备的输入缓冲器431能够暂时存储的单元行数中的、与畸变系数的值对应的预先确定数量的单元行数的像素数据的单元行存储区域4311。在图5的(b-1)~图5的(b-3)中示意性地示出在图像处理模块43进行畸变像差的畸变校正处理而生成一个单元行的处理像素数据时从输入缓冲器431读出的像素数据在输入缓冲器431内的位置的一例。
在畸变系数的值较小的情况即镜头的畸变较少的情况下,图像处理模块43能够生成通过使用图5的(b-1)所示的位置的像素数据来进行畸变像差的畸变校正处理后的一个单元行的处理像素数据。即,图像处理模块43在镜头的畸变较少的情况下,能够使用较少的单元行数的像素数据来对所输入的输入数据(像素数据)进行畸变像差的畸变校正处理。但是,在畸变像差的畸变校正处理中,随着畸变系数的值变大即随着镜头的畸变变大,畸变像差的畸变校正处理中所使用的单元行数变多。即,如图5的(b-2)、图5的(b-3)所示,由于畸变像差的畸变校正处理中所使用的像素数据的位置的范围随着畸变系数的值变大而变宽,因此需要的单元行数变多。
另外,例如在图像处理模块43进行尺寸调整处理的情况下,为了输出进行了尺寸调整处理后的一个单元行的处理像素数据而所需的像素数据的单元行数是根据通过CPU50而设定在设定寄存器3341中的尺寸调整率的值(参数)来确定的。在图像处理模块43进行尺寸调整处理的情况下,按基于尺寸调整率的参数的间隔使用暂时存储在输入缓冲器431中的像素数据,由此生成进行了尺寸调整处理后的一个单元行的处理像素数据。因此,在图像处理模块43进行尺寸调整处理的情况下,如图5的(c-1)和图5的(c-2)所示,仅使用存储图像处理模块43所具备的输入缓冲器431能够暂时存储的单元行数中的与尺寸调整率对应的预先确定的数量的单元行数的像素数据的单元行存储区域4311。在图5的(c-1)和图5的(c-2)中示意性地示出在图像处理模块43进行尺寸调整处理而生成一个单元行的处理像素数据时从输入缓冲器431读出的像素数据在输入缓冲器431内的位置的一例。
例如,在缩小图像的情况下,在尺寸调整率的值较小的情况即图像的缩小率较小的情况下,图像处理模块43读出图5的(c-1)所示那样的较少的单元行数的范围内的预先确定的位置的像素数据并进行尺寸调整处理,由此能够生成对所输入的输入数据(像素数据)进行了尺寸调整处理后的一个单元行的处理像素数据。另一方面,在尺寸调整率的值较大的情况即图像的缩小率较大的情况下,尺寸调整处理中所使用的单元行数的范围变大。即,如图5的(c-2)所示,图像处理模块43读出更多的单元行数的范围内的预先确定的位置的像素数据,由此生成进行了尺寸调整处理后的一个单元行的处理像素数据。
这样,在具有多个图像处理的运算功能的结构的图像处理模块43中,由于所执行的各个图像处理中所需的单元行数不同,因此能够存储各个图像处理所需的最大的单元行的像素数据的存储容量作为输入缓冲器431的存储容量而被预先确定。
另外,图像处理模块43进行倍率色像差的畸变校正处理的情况、进行梯形校正等形状校正处理的情况、或进行其他滤波处理的情况等的输入缓冲器431的存储容量的确定方法也可以与图5所示的一例同样地进行考虑。
另外,输入缓冲器431也可以与第一结构的图像处理模块33所具备的输入缓冲器331同样地由双缓冲器构成。
选择器332根据从控制部434输入的路径选择信号,将从输入缓冲器431读出的像素数据、或当前从前级的处理模块输入的输入数据(像素数据)本身中的任意一方的像素数据传送给运算部433。
运算部433对所输入的像素数据进行与从控制部434输入的模式选择信号对应的图像处理(图像插值处理)的运算(尺寸调整处理、畸变校正处理、或形状校正处理等图像插值处理的运算)。在运算部433中,运算部433自身确定进行图像处理的运算时所使用的像素数据的位置(坐标)。而且,运算部433根据位于确定的坐标的像素数据来进行图像处理的运算。
更具体而言,坐标计算部4331根据从控制部434输入的模式选择信号即通过CPU50而设定在设定寄存器3341中的图像处理(图像插值处理)的设定值(尺寸调整率的参数、畸变系数的参数等)来计算进行对像素数据进行插值的插值运算时所使用的像素数据的坐标。而且,坐标计算部4331将计算出的坐标的信息(下面称作”坐标信息”)分别输出给插值运算部4332和控制部434。
插值运算部4332根据从坐标计算部4331输出的坐标信息和根据该坐标信息而从输入缓冲器431读出并经由选择器332输入的像素数据来进行插值运算(例如,双线性插值、双三次插值)。将运算部433进行了插值运算而生成的处理像素数据作为输出数据,而经由连接切换部31输出给后级的处理模块。
控制部434与第一结构的图像处理模块33所具备的控制部334同样,进行图像处理模块43与前级和后级所连接的处理模块之间的输入数据(像素数据)和输出数据(处理像素数据)的交接的控制。此时,控制部434输出给前级和后级的处理模块的状态通知信号与第一结构的图像处理模块33所具备的控制部334所输出的状态通知信号是相同的。
另外,控制部434与第一结构的图像处理模块33所具备的控制部334同样,根据通过从CPU 50输入的设定信号而存储在设定寄存器3341中的设定,来控制具有控制部434自身的图像处理模块43内的各个构成要素的动作。在图像处理模块43中,选择器332的参数、进行运算部433所进行的插值运算时的处理模式(尺寸调整处理模式、畸变校正处理模式、形状校正处理模式)、图像处理(图像插值处理)的设定值(尺寸调整率和畸变系数的参数等)通过CPU 50而存储(设定)在设定寄存器3341中。另外,根据设定在设定寄存器3341中的参数和处理模式而输出给选择器332和运算部433的路径选择信号和模式选择信号与第一结构的图像处理模块33所具备的控制部334所输出的各个信号是相同的。
另外,控制部434根据从运算部433输入的坐标信息而读出暂时存储在输入缓冲器431中的像素数据,并将读出的像素数据经由选择器332传送到运算部433。
更具体而言,缓冲器读地址生成部4342生成用于指定输入缓冲器431的存储区域的地址(下面称作“缓冲器读地址”),该输入缓冲器431暂时存储与从运算部433输入的坐标信息所表示的进行插值运算时所使用的像素数据的坐标对应的像素数据。而且,控制部434将包含缓冲器读地址生成部4342所生成的缓冲器读地址在内的缓冲器控制信号(缓冲器读信号)输出给输入缓冲器431。由此,位于运算部433所具备的坐标计算部4331所计算出的坐标的像素数据被从输入缓冲器431读出,并经由选择器332传送到运算部433。另外,关于控制部434中的输入缓冲器431的动作的控制,除了将从运算部433输入的坐标信息所表示的像素数据从输入缓冲器431读出并传送以外,与第一结构的图像处理模块33所具备的控制部334是相同的。
通过这样的结构,图像处理部30所具备的第二结构的图像处理模块33(图像处理模块43)与第一结构的图像处理模块33同样,根据来自CPU 50的控制而进行来自前级的处理模块的输入数据(像素数据)的接收、要进行图像处理的运算的像素数据的选择(切换)、运算部333对图像处理的运算。
而且,在图像处理部30中,流水线连接而成的各个处理模块针对包含于各个块图像数据中的每个单元行的像素数据依次进行图像处理的运算,由此针对各个块图像数据进行一系列的图像处理即流水线处理。
在图像处理装置1中,CPU 50能够根据需要而设定图像处理部30所具备的各个处理模块的流水线结构、图像处理部30通过流水线处理对1帧的静态图像的数据进行的图像处理等。即,在图像处理装置1中,通过图像处理部30所具备的连接切换部31来切换图像处理部30所具备的各个处理模块的连接,从而能够实现各种流水线结构。另外,在图像处理装置1中,能够按图像处理部30中所执行的图像处理设定设定在图像处理模块33所具备的控制部334内的设定寄存器3341中的运算部333的处理模式和滤波系数等参数、设定在图像处理模块43所具备的控制部434内的设定寄存器3341中的运算部433的处理模式和畸变系数等参数。另外,在图像处理装置1中,能够按图像处理部30中所执行的图像处理设定将输入数据传送到图像处理模块33所具备的运算部333的路径的参数、将输入数据传送到图像处理模块43所具备的运算部433的路径的参数。例如,在摄像装置上安装有畸变像差较大的镜头的情况下,可以将图像处理部30内的流水线结构作为进行畸变像差的畸变校正处理的结构,从而使进行畸变像差的畸变校正处理的图像处理模块43中的畸变系数的参数成为与所安装的镜头的畸变像差的特性对应的值。
接下来,对图像处理部30所具备的各个处理模块的动作进行说明。图6是示出本发明的实施方式的图像处理装置1所具备的图像处理部30中的图像处理模块(图像处理模块33和图像处理模块43)的连接的一例的图。在图6中示出通过图像处理模块33-1、图像处理模块43-2、图像处理模块33-3、以及图像处理模块33-4串联连接而成的流水线结构来进行一系列的流水线处理的结构。另外,在图6中,省略图像处理部30所具备的输入DMA模块32和输出DMA模块34的图示。
如上所述,图像处理模块33具有YC处理、噪声降低处理、LPF处理、边缘强调处理等图像处理的功能,图像处理模块43具有尺寸调整处理、畸变校正处理、形状校正处理等多个图像处理的运算功能。图6所示的流水线结构的一例例如是如下的流水线结构:图像处理模块33-1进行YC处理、图像处理模块43-2进行畸变像差的畸变校正处理、图像处理模块33-3进行噪声降低处理、图像处理模块33-4进行边缘强调处理。
如上所述,在图像处理部30中,连接切换部31根据来自CPU 50的控制,切换图像处理部30内的各个处理模块的连接。在图6中,作为连接切换部31为了在各个处理模块之间进行像素数据和处理像素数据的交接而切换连接的输入信号和输出信号,分别示出数据请求信号REQ、数据确认信号ACK、输入数据DAT、输出数据DAT、以及数据有效信号VALID。另外,在图6中,对连接切换部31内的输入信号和输出信号标注对输出该信号的一侧的处理模块赋予的“-”之后的数字部分而示出。例如,将图像处理模块43-2输出且输入给图像处理模块33-1的数据请求信号REQ作为“数据请求信号REQ2”而示出。
更具体而言,在图6的流水线结构的一例中,连接切换部31将图像处理模块33-1的前级的处理模块(例如输入DMA模块32)的数据确认信号ACK、数据有效信号VALID、以及输入数据DAT的输出端子和图像处理模块33-1的数据确认信号ACK、数据有效信号VALID、以及输入数据DAT的输入端子连接起来。另外,连接切换部31将图像处理模块33-1的数据请求信号REQ的输出端子和图像处理模块33-1的前级的处理模块(例如输入DMA模块32)的数据请求信号REQ的输入端子连接起来。由此,图像处理模块33-1的前级的处理模块(例如输入DMA模块32)的输出信号即数据确认信号ACK0、数据有效信号VALID0、以及输入数据DAT0输入给图像处理模块33-1,图像处理模块33-1的输出信号即数据请求信号REQ1输入给前级的处理模块(例如输入DMA模块32)。
另外,同样地,连接切换部31将图像处理模块43-2的前级的图像处理模块33-1的数据确认信号ACK、数据有效信号VALID、以及输入数据DAT的输出端子和图像处理模块43-2的数据确认信号ACK、数据有效信号VALID、以及输入数据DAT的输入端子连接起来。另外,连接切换部31将图像处理模块43-2的数据请求信号REQ的输出端子和图像处理模块43-2的前级的图像处理模块33-1的数据请求信号REQ的输入端子连接起来。由此,图像处理模块43-2的前级的图像处理模块33-1的输出信号即数据确认信号ACK1、数据有效信号VALID1、以及处理像素数据DAT1输入给图像处理模块43-2,图像处理模块43-2的输出信号即数据请求信号REQ2输入给前级的图像处理模块33-1。
同样地,连接切换部31将图像处理模块33-3的前级的图像处理模块43-2的数据确认信号ACK、数据有效信号VALID、以及输入数据DAT的输出端子和图像处理模块33-3的数据确认信号ACK、数据有效信号VALID、以及输入数据DAT的输入端子连接起来。另外,连接切换部31将图像处理模块33-3的数据请求信号REQ的输出端子和图像处理模块33-3的前级的图像处理模块43-2的数据请求信号REQ的输入端子连接起来。由此,图像处理模块33-3的前级的图像处理模块43-2的输出信号即数据确认信号ACK2、数据有效信号VALID2、以及处理像素数据DAT2输入给图像处理模块33-3,图像处理模块33-3的输出信号即数据请求信号REQ3输入给前级的图像处理模块43-2。
同样地,连接切换部31将图像处理模块33-4的前级的图像处理模块33-3的数据确认信号ACK、数据有效信号VALID、以及输入数据DAT的输出端子和图像处理模块33-4的数据确认信号ACK、数据有效信号VALID、以及输入数据DAT的输入端子连接起来。另外,连接切换部31将图像处理模块33-4的数据请求信号REQ的输出端子和图像处理模块33-4的前级的图像处理模块33-3的数据请求信号REQ的输入端子连接起来。由此,图像处理模块33-4的前级的图像处理模块33-3的输出信号即数据确认信号ACK3、数据有效信号VALID3、以及处理像素数据DAT3输入给图像处理模块33-4,图像处理模块33-4的输出信号即数据请求信号REQ4输入给前级的图像处理模块33-3。
同样地,连接切换部31将图像处理模块33-4的后级的处理模块(例如输出DMA模块34)的数据确认信号ACK、数据有效信号VALID、以及输入数据DAT的输入端子和图像处理模块33-4的数据确认信号ACK、数据有效信号VALID、以及输入数据DAT的输出端子连接起来。另外,连接切换部31将图像处理模块33-4的数据请求信号REQ的输入端子和图像处理模块33-4的后级的处理模块(例如输出DMA模块34)的数据请求信号REQ的输出端子连接起来。由此,图像处理模块33-4的输出信号即数据确认信号ACK4、数据有效信号VALID4、以及处理像素数据DAT4输入给图像处理模块33-4的后级的处理模块(例如输出DMA模块34),图像处理模块33-4的后级的处理模块(例如输出DMA模块34)的输出信号即数据请求信号REQ5输入给图像处理模块33-4。
另外,在图6的流水线结构的一例中,CPU 50设定选择器332的参数,该参数表示将所输入的输入数据DAT暂时存储到各个图像处理模块33的控制部334所具备的设定寄存器3341、以及图像处理模块43的控制部434所具备的设定寄存器3341。由此,各个图像处理模块33的控制部334将用于选择将暂时存储在输入缓冲器331中的输入数据DAT输出给运算部333的路径的路径选择信号输出给选择器332,选择器332将控制部334所读出的输入数据DAT传送到运算部333。另外,图像处理模块43的控制部434将用于选择将暂时存储在输入缓冲器431中的输入数据DAT输出给运算部433的路径的路径选择信号输出给选择器332,选择器332将控制部434所读出的输入数据DAT传送到运算部433。
更具体而言,在图像处理模块33-1中,根据从控制部334输出的路径选择信号而选择了将输入的输入数据DAT0暂时存储在输入缓冲器331中,并将读出的输入数据DAT0传送到运算部333的路径。另外,在图像处理模块43-2中,根据从控制部434输出的路径选择信号而选择了将输入的处理像素数据DAT1暂时存储在输入缓冲器431中,并将读出的处理像素数据DAT1传送到运算部433的路径。另外,在图像处理模块33-3中,根据从控制部334输出的路径选择信号而选择了将输入的处理像素数据DAT2暂时存储在输入缓冲器331中,并将读出的处理像素数据DAT2传送到运算部333的路径。另外,在图像处理模块33-4中,根据从控制部334输出的路径选择信号而选择了将输入的处理像素数据DAT3暂时存储在输入缓冲器331中,并将读出的处理像素数据DAT3传送到运算部333的路径。
如图6所示,通过构成将各个处理模块连接起来而成的流水线结构,图像处理部30进行针对各个块图像数据的YC处理、畸变像差的畸变校正处理、噪声降低处理、以及边缘强调处理的一系列的图像处理(流水线处理)。在该流水线处理中,图像处理部30所具备的各个处理模块在将所输入的输入数据DAT或处理像素数据DAT暂时存储在输入缓冲器331或输入缓冲器431中之后读出,并依次输出给后级的处理模块。
图7是示出本发明的实施方式的图像处理装置1所具备的图像处理部30中的图像处理模块(图像处理模块33和图像处理模块43)的动作的一例的时序图。在图7中示出在图像处理部30通过图6所示的流水线结构来进行一系列的流水线处理的情况下从图像处理模块33-1到图像处理模块33-4的处理像素数据的交接的一例。
在图7中示出各个处理模块中的输入数据和输出数据(处理像素数据DAT)中的任意一方或两方、各个处理模块输出给前级的处理模块的数据请求信号REQ。另外,在图7中示出在各个处理模块中表示处理像素数据DAT向输入缓冲器331或输入缓冲器431的写入的缓冲器控制信号(缓冲器写信号)、表示来自输入缓冲器331或输入缓冲器431的处理像素数据DAT的读出的缓冲器控制信号(缓冲器读信号)中的任意一方或两方。
另外,在以下的说明中,为了便于说明,对数据确认信号ACK和数据有效信号VALID的定时是与输出数据(处理像素数据DAT)的定时相同的定时,即从各个处理模块输出的输出数据(处理像素数据DAT)全部是有效的处理像素数据的情况进行说明。因此,在图7中,省略各个处理模块中的数据确认信号ACK和数据有效信号VALID的图示。
另外,在图7的说明中,对将一个单元行作为一个处理单位而进行图像处理的情况进行说明。而且,在图7中,针对输入数据(处理像素数据DAT)、输出了缓冲器写信号的期间、输出了缓冲器读信号的期间、以及输出数据(处理像素数据DAT),分别示出表示位于第几单元行的数字。
另外,对图像处理模块33-1具有能够存储五个单元行的处理像素数据DAT0的存储容量的输入缓冲器331,图像处理模块43-2具有能够存储五个单元行的处理像素数据DAT1的存储容量的输入缓冲器431的结构进行说明。另外,对图像处理模块33-3和图像处理模块33-4各自具有能够存储两个单元行的处理像素数据DAT的存储容量的输入缓冲器331的结构进行说明。即,对图像处理模块33-1所具备的输入缓冲器331具有五个单元行存储区域(下面称作“单元行存储区域3311”),图像处理模块43-2所具备的输入缓冲器431具有五个单元行存储区域4311,图像处理模块33-3和图像处理模块33-4各自所具备的输入缓冲器331具有两个单元行存储区域3311的情况进行说明。而且,在图7中,为了表示是否在各个处理模块所具备的数据缓冲器内的任意一个单元行存储区域中暂时存储处理像素数据DAT,在输出缓冲器写信号和缓冲器读信号的各个期间所示的表示处于第几单元行的数字之后的“():括号”内,示出表示单元行存储区域的数字。
在以下的说明中,为了对各个处理模块所具备的构成要素进行区分,在赋予各个构成要素的标号后面标注赋予各个处理模块的“-”及其之后的数字部分来进行表示。例如,将图像处理模块33-1所具备的输入缓冲器331表示为“输入缓冲器331-1”,将图像处理模块43-2所具备的输入缓冲器431表示为“输入缓冲器431-2”。
另外,在图7的说明中,对在图像处理部30开始流水线处理之后从如下状态起的动作进行说明:从图像处理模块33-1输出的五个单元行的处理像素数据DAT1已经暂时存储在图像处理模块43-2所具备的输入缓冲器431-2中,接下来进行处理的五个单元行的输入数据(像素数据)已经暂时存储在图像处理模块33-1所具备的输入缓冲器331-1中。即,对从如下状态起的动作进行说明:第一~第五单元行的处理像素数据DAT1已经暂时存储在图像处理模块43-2所具备的输入缓冲器431-2的第一~第五单元行存储区域4311-2中,第六~第十单元行的处理像素数据DAT0已经暂时存储在图像处理模块33-1所具备的输入缓冲器331-1的第一~第五单元行存储区域3311-1中。
在处于上述的状态时,在图像处理模块33-4所具备的控制部334-4将请求处理像素数据DAT3的输出的数据请求信号REQ4输出给图像处理模块33-3时,图像处理模块33-3所具备的控制部334-3根据从后级的图像处理模块33-4输入的数据请求信号REQ4而输出数据确认信号ACK3。而且,控制部334-3将请求处理像素数据DAT2的输出的数据请求信号REQ3输出给图像处理模块43-2。
另外,在图7中,数据请求信号REQ为“高”电平的期间表示各个处理模块处于能够接收处理像素数据DAT的状态的请求期间,数据请求信号REQ为“低”电平的期间表示各个处理模块处于无法接收处理像素数据DAT的状态的请求无效期间。
图像处理模块43-2所具备的控制部434-2根据从后级的图像处理模块33-3输入的数据请求信号REQ3而输出数据确认信号ACK2。而且,控制部434-2生成用于读出暂时存储在输入缓冲器431-2中的第一单元行的各个处理像素数据DAT1的缓冲器读信号。由此,在第一单元行的缓冲器读取期间,从输入缓冲器431-2的第一单元行存储区域4311-2读出的各个处理像素数据DAT1经由选择器332-2传送到运算部433-2。而且,将运算部433-2对经由选择器332-2输入的第一单元行的各个处理像素数据DAT1进行与从控制部434-2输出的模式选择信号对应的畸变像差的畸变校正处理的运算而生成的处理像素数据DAT2输出给图像处理模块33-3。另外,从图像处理模块43-2输出的与第一单元行对应的处理像素数据DAT2延迟因运算部433-2进行畸变像差的畸变校正处理的运算而产生的从输入处理像素数据DAT1到输出处理像素数据DAT2为止的延迟时间D2(等待时间D2)而输出。
另外,控制部434-2在暂时存储在输入缓冲器431-2中的第一单元行的各个处理像素数据DAT1的读出结束时,接着依次生成用于从输入缓冲器431-2读出第二及以后的单元行的处理像素数据DAT1的缓冲器读信号。由此,在各个单元行的缓冲器读取期间,从输入缓冲器431-2的各个单元行存储区域4311-2依次读出的各个处理像素数据DAT1经由选择器332-2而依次传送到运算部433-2。而且,将运算部433-2对经由选择器332-2依次输入的各个单元行的各个处理像素数据DAT1进行畸变像差的畸变校正处理的运算而生成的第二及以后的单元行的处理像素数据DAT2依次输出给图像处理模块33-3。
另外,当由控制部434-2结束第一单元行的各个处理像素数据DAT1的读出时,输入缓冲器431-2处于在一个单元行存储区域4311-2(第一单元行存储区域4311-2)中未存储处理像素数据DAT1的(第一单元行存储区域4311-2空闲的)状态。即,图像处理模块43-2处于能够从图像处理模块33-1接收下一个处理像素数据DAT1的状态。因此,控制部434-2为了表示图像处理模块43-2处于能够接收处理像素数据DAT1的状态,使输出给图像处理模块33-1的数据请求信号REQ2为“高”电平。由此,图像处理模块33-1根据数据请求信号REQ2,将对暂时存储在输入缓冲器331中的第六及以后的单元行的各个像素数据进行YC处理的运算而生成的与各个单元行对应的处理像素数据DAT1,从延迟了延迟时间D1(等待时间D1)后的定时依次输出给图像处理模块43-2。
另外,图像处理模块33-1所具备的控制部334-1在暂时存储在输入缓冲器331中的第六单元行的各个像素数据的读出结束时,使输入缓冲器331-1的第一单元行存储区域3311-1处于空闲的状态,从而处于能够从前级的处理模块(例如输入DMA模块32)接收下一个输入数据(像素数据)的状态。因此,控制部334-1也可以与图像处理模块43-2同样,使输出给前级的处理模块(例如输入DMA模块32)的数据请求信号REQ1为“高”电平,来表示处于能够接收输入数据(像素数据)的状态。由此,前级的处理模块(例如输入DMA模块32)根据数据请求信号REQ1将下一单元行的各个输入数据(像素数据)依次输出给图像处理模块33-1。
控制部434-2在从前级的图像处理模块33-1输入与第六及以后的单元行对应的处理像素数据DAT1时,生成用于将所输入的各个单元行的处理像素数据DAT1写入输入缓冲器431-2内的空闲的单元行存储区域4311-2中的缓冲器写信号。由此,在各个单元行的缓冲器写入期间,与第六及以后的单元行对应的各个处理像素数据DAT1依次暂时存储在输入缓冲器431-2中。更具体而言,与第六单元行对应的处理像素数据DAT1写入并暂时存储在最初处于空闲的状态的第一单元行存储区域4311-2中。接着,与第七单元行对应的处理像素数据DAT1写入并暂时存储在接下来处于空闲的状态的第二单元行存储区域4311-2中。以下,同样地,在由控制部434-2读出而处于空闲的状态的输入缓冲器431-2内的各个单元行存储区域4311-2中依次写入并暂时存储与各个单元行对应的处理像素数据DAT1。
这样,图像处理模块43-2在将从前级的图像处理模块33-1输入的处理像素数据DAT1暂时存储在输入缓冲器431-2中之后读出,并将进行了畸变像差的畸变校正处理后的处理像素数据DAT2依次输出给后级的图像处理模块33-3。
图像处理模块33-3所具备的控制部334-3在从前级的图像处理模块43-2输入与第一单元行对应的各个处理像素数据DAT2时,生成用于将所输入的各个处理像素数据DAT2写入到输入缓冲器331-3内的空闲的单元行存储区域3311-3中的缓冲器写信号。另外,在图7中,在图像处理部30开始流水线处理的最初的阶段,在输入缓冲器331-3中未暂时存储处理像素数据DAT2,即,输入缓冲器331-3的所有的单元行存储区域3311-3处于空闲的状态。因此,在图像处理模块33-3中的第一单元行的缓冲器写入期间,从图像处理模块43-2输入的与第一单元行对应的各个处理像素数据DAT2写入并暂时存储在输入缓冲器331-3的第一单元行存储区域3311-3中。
另外,输入缓冲器331-3具有两个单元行存储区域3311-3。即,即使在第一单元行存储区域3311-3中写入处理像素数据DAT2,第二单元行存储区域3311-3也处于空闲的状态。因此,控制部334-3在第一单元行的各个处理像素数据DAT2向输入缓冲器331-3的写入结束时,接着依次生成用于将与第二单元行对应的各个处理像素数据DAT2写入到输入缓冲器331-3中的缓冲器写信号。由此,在输入缓冲器331-3中,在图像处理模块33-3中的第二单元行的缓冲器写入期间,从图像处理模块43-2输入的与第二单元行对应的各个处理像素数据DAT2写入并暂时存储在输入缓冲器331-3的第二单元行存储区域3311-3中。
另外,从后级的图像处理模块33-4将请求处理像素数据DAT3的输出的数据请求信号REQ4输入给图像处理模块33-3。因此,控制部334-3在与第一单元行对应的各个处理像素数据DAT2向输入缓冲器331-3的写入结束时,生成用于读出暂时存储在输入缓冲器331-3中的第一单元行的各个处理像素数据DAT2的缓冲器读信号。由此,在第一单元行的缓冲器读取期间,从输入缓冲器331-3的第一单元行存储区域3311-3读出的各个处理像素数据DAT2经由选择器332-3传送到运算部333-3。而且,运算部333-3将对经由选择器332-3输入的第一单元行的各个处理像素数据DAT2进行与从控制部334-3输出的模式选择信号对应的噪声降低处理的运算而生成的处理像素数据DAT3,从延迟了延迟时间D3(等待时间D3)后的定时起输出给图像处理模块33-4。
另外,控制部334-3在第二单元行的各个处理像素数据DAT2向输入缓冲器331-3的写入结束的情况下,在来自输入缓冲器331-3的第一单元行的各个处理像素数据DAT2的读出之后,进行第二单元行的各个处理像素数据DAT2的读出。由此,运算部333-3将对第二单元行的各个处理像素数据DAT2进行噪声降低处理的运算而生成的处理像素数据DAT3输出给图像处理模块33-4。
另外,在由控制部334-3结束第一单元行的各个处理像素数据DAT2的读出时,输入缓冲器331-3的第一单元行存储区域3311-3处于空闲的状态。因此,控制部334-3在第二单元行的各个处理像素数据DAT2向输入缓冲器331-3的写入之后,在第三单元行的缓冲器写入期间进行与第三单元行对应的各个处理像素数据DAT2向输入缓冲器331-3的第一单元行存储区域3311-3的写入。
这样,在图像处理模块33-3中,对输入缓冲器331-3内的两个单元行存储区域3311-3交替进行处理像素数据DAT2向一个单元行存储区域3311-3的写入和来自另一个单元行存储区域3311-3的处理像素数据DAT2的读出。由此,在图像处理模块33-3中,在各个单元行的缓冲器写入期间,依次写入从前级的图像处理模块43-2依次输入的处理像素数据DAT2,在各个单元行的缓冲器读取期间,依次读出暂时存储在输入缓冲器331-3中的各个单元行的处理像素数据DAT2。而且,在图像处理模块33-3中,将运算部333-3对从输入缓冲器331-3依次读出的处理像素数据DAT2进行噪声降低处理的运算而生成的处理像素数据DAT3依次输出给图像处理模块33-4。
这样,在图像处理模块33-3中,也与图像处理模块43-2同样地在将从前级的图像处理模块43-2依次输入的处理像素数据DAT2暂时存储在输入缓冲器331-3中之后读出,并将对读出的处理像素数据DAT2进行了噪声降低处理后的处理像素数据DAT3依次输出给后级的图像处理模块33-4。
而且,图像处理模块33-4对从前级的图像处理模块33-3依次输入的各个处理像素数据DAT3依次进行边缘强调处理,将生成的处理像素数据DAT4依次输出给后级的处理模块(例如输出DMA模块34)。在图7中说明的图6所示的流水线结构的图像处理部30中,图像处理模块33-4所具备的输入缓冲器331-4具有两个单元行存储区域3311-4。因此,在图像处理模块33-4中,也与图像处理模块33-3同样地交替进行处理像素数据DAT3向输入缓冲器331-4内的一个单元行存储区域3311-4的写入和来自另一个单元行存储区域3311-4的处理像素数据DAT3的读出。而且,在图像处理模块33-4中,运算部333-4对从输入缓冲器331-4依次读出的处理像素数据DAT3进行边缘强调处理的运算。
这样,在图像处理部30中,在构成流水线的各个处理模块所具备的数据缓冲器(输入缓冲器331、输入缓冲器431)中暂时存储输入数据(像素数据、处理像素数据),由此吸收运算部(运算部333、运算部433)中的处理的延迟,从而不会使处理像素数据DAT在各个处理模块之间的流动停滞而顺畅地进行流水线处理。即,图像处理部30构成为能够避免(暂时)停止处理像素数据DAT向后级的处理模块输出、或者(暂时)停止向前级的处理模块请求处理像素数据DAT那样的流水线停滞状态。
可是,在图7所示的图像处理部30中的图像处理模块33和图像处理模块43的动作的一例中,图像处理模块33-3交替进行处理像素数据DAT2向输入缓冲器331-3内的一个单元行存储区域3311-3的写入和来自另一个单元行存储区域3311-3的处理像素数据DAT2的读出。即,在图像处理模块33-3中,在将从前级的图像处理模块43-2依次输入的处理像素数据DAT2暂时存储在输入缓冲器331-3中之后立即读出,运算部333-3对读出的处理像素数据DAT2进行噪声降低处理。因此,也考虑了如下的结构:不进行图像处理模块33-3中的处理像素数据DAT2向输入缓冲器331-3的写入和读出,而是运算部333-3对当前从图像处理模块43-2输入的处理像素数据DAT2直接进行噪声降低处理的运算。即,在图像处理装置1中,也考虑了CPU 50根据在图像处理部30中构成流水线的图像处理模块33-3的控制部334-3所具备的设定寄存器3341中设定的选择器332的参数,而选择将从图像处理模块43-2输入的处理像素数据DAT2不暂时存储在输入缓冲器331-3中而直接输出给运算部333-3的路径。通过该结构,在图像处理部30中,能够控制为停止图像处理模块33-3所具备的输入缓冲器331-3的动作,从而能够减少输入缓冲器331-3的消耗电力。另外,输入缓冲器331-3的动作的停止由CPU 50进行设定。但是,也可以是控制部334-3对输入缓冲器331-3进行控制,以使其停止动作。
接下来,对在图像处理部30中采用不使输入数据暂时存储在数据缓冲器中而直接进行图像处理的运算的结构的情况下的各个处理模块的动作进行说明。图8是示出本发明的实施方式的图像处理装置1所具备的图像处理部30中的图像处理模块(图像处理模块33和图像处理模块43)的连接的另外一例的图。在图8中,与图6所示的图像处理模块的连接的一例同样,示出通过图像处理模块33-1、图像处理模块43-2、图像处理模块33-3、以及图像处理模块33-4串联连接而成的流水线结构来进行一系列的流水线处理的结构。另外,在图8中,也与图6所示的流水线结构的一例同样地省略图像处理部30所具备的输入DMA模块32和输出DMA模块34的图示。
图8所示的流水线结构的一例也与图6所示的流水线结构的一例同样地例如是如下的流水线结构:图像处理模块33-1进行YC处理,图像处理模块43-2进行畸变像差的畸变校正处理,图像处理模块33-3进行噪声降低处理,图像处理模块33-4进行边缘强调处理。
另外,在图8中,为了区分各个处理模块所具备的构成要素,在赋予各个构成要素的标号后面标注赋予各个处理模块的“-”及其之后的数字部分来进行表示,对连接切换部31内的输入信号和输出信号标注赋予输出该信号的一侧的处理模块的“-”之后的数字部分来进行表示。
在图8的流水线结构的一例中,CPU 50将表示不暂时存储输入的输入数据DAT而直接传送到运算部333-3的选择器332-3的参数设定在图像处理模块33-3的控制部334-3所具备的设定寄存器3341-3中。由此,图像处理模块33-3的控制部334-3将用于选择将从前级的图像处理模块43-2输入的处理像素数据DAT2不暂时存储在输入缓冲器331-3中而直接输出给运算部333-3的路径的路径选择信号输出给选择器332-3,选择器332-3将当前从图像处理模块43-2输入的处理像素数据DAT2传送到运算部333。
另外,在图8的流水线结构的一例中,在图像处理模块33-3中,随着选择将输入的处理像素数据DAT2直接传送到运算部333-3的路径,CPU 50变更连接切换部31中的图像处理模块43-2~图像处理模块33-4的数据请求信号REQ与数据确认信号ACK的连接。
更具体而言,在图8的流水线结构的一例中,连接切换部31将图像处理模块43-2的数据请求信号REQ的输入端子和后级的图像处理模块33-4的数据请求信号REQ的输出端子连接起来,将图像处理模块43-2的数据确认信号ACK的输出端子和后级的图像处理模块33-4的数据确认信号ACK的输入端子连接起来。由此,图像处理模块43-2的后级的图像处理模块33-4的输出信号即数据请求信号REQ4被输入给图像处理模块43-2,图像处理模块43-2的输出信号即数据确认信号ACK2被输入给图像处理模块43-2的后级的图像处理模块33-4。即,在图8的流水线结构的一例中,以前级的图像处理模块43-2还接收图像处理模块33-4对前级的图像处理模块33-3请求处理像素数据DAT3的输出的数据请求信号REQ4,图像处理模块43-2还将与所输入的数据请求信号REQ4对应的数据确认信号ACK2输出给后级的图像处理模块33-4的方式进行连接。
这是为了通过做成图像处理模块33-3将从图像处理模块43-2输入的处理像素数据DAT2直接传送到运算部333-3而进行图像处理的运算的结构,使图像处理模块43-2所具备的运算部433-2和图像处理模块33-3所具备的运算部333-3作为一个运算部而发挥功能。
另外,即使在使运算部433-2和运算部333-3作为一个运算部而发挥功能的情况下,进行图像处理的运算的顺序也不变更。因此,连接切换部31将图像处理模块33-3的前级的图像处理模块43-2的数据有效信号VALID以及输入数据DAT的输出端子和图像处理模块33-3的数据有效信号VALID以及输入数据DAT的输入端子连接起来。另外,连接切换部31将图像处理模块33-3的后级的图像处理模块33-4的数据有效信号VALID以及输入数据DAT的输入端子和图像处理模块33-3的数据有效信号VALID以及输入数据DAT的输出端连接起来。由此,图像处理模块43-2的输出信号即数据有效信号VALID2和处理像素数据DAT2输入给后级的图像处理模块33-3,图像处理模块33-3的输出信号即数据有效信号VALID3和处理像素数据DAT3输入给后级的图像处理模块33-4。
另外,其他图像处理模块33的控制部334所具备的设定寄存器3341、以及图像处理模块43的控制部434所具备的设定寄存器3341中的选择器332的参数与图6所示的流水线结构的一例是相同的。因此,图像处理模块33-1和图像处理模块33-4在将所输入的输入数据DAT暂时存储在输入缓冲器331中之后读出,并传送到运算部333。另外,图像处理模块43在将所输入的输入数据DAT暂时存储在输入缓冲器431中之后读出,并传送到运算部433。因此,连接切换部31中的图像处理模块33-1与图像处理模块43-2之间的数据请求信号REQ2、数据确认信号ACK1、输入数据DAT1、以及数据有效信号VALID1各自的连接与图6所示的流水线结构的一例是相同的。
如图8所示,通过构成将各个处理模块连接起来的流水线结构,图像处理部30进行针对各个块图像数据的YC处理、畸变像差的畸变校正处理、噪声降低处理、以及边缘强调处理的一系列的图像处理(流水线处理)。在该流水线处理中,图像处理部30所具备的图像处理模块43-2和图像处理模块33-3作为进行畸变像差的畸变校正处理和噪声降低处理的一个图像处理模块而进行动作,将生成的处理像素数据DAT3依次输出给后级的图像处理模块33-4。即,在图8的流水线结构的一例中,图像处理模块43-2所具备的输入缓冲器431-2以如下方式进行动作:吸收运算部433-2和运算部333-3这两方运算部中的处理的延迟,从而不会使从图像处理模块43-2到图像处理模块33-4之间的处理像素数据DAT的流动停滞而顺畅地进行流水线处理。
图9是示出本发明的实施方式的图像处理装置1所具备的图像处理部30中的图像处理模块(图像处理模块33和图像处理模块43)的动作的另外一例的时序图。在图9中示出了在图像处理部30通过图8所示的流水线结构来进行一系列的流水线处理的情况下从图像处理模块33-1到图像处理模块33-4的处理像素数据的交接的一例。
另外,在图9所示的各个处理模块的动作的一例中,也与利用图6的流水线结构来进行流水线处理的情况下的图7所示的各个处理模块的动作的一例同样,示出各个处理模块中的输入数据和输出数据(处理像素数据DAT)、数据请求信号REQ、以及缓冲器控制信号(缓冲器写信号和缓冲器读信号)。另外,在图9所示的各个处理模块的动作的一例中,数据确认信号ACK和数据有效信号VALID的定时也是与输出数据(处理像素数据DAT)的定时相同的定时,因而省略各个处理模块中的数据确认信号ACK和数据有效信号VALID的图示。
另外,在图9的说明中,也与图7所示的各个处理模块的动作的一例同样,将一个单元行作为一个处理单位而进行图像处理,并在输入数据(处理像素数据DAT)、缓冲器写入期间、缓冲器读取期间、以及输出数据(处理像素数据DAT)上分别示出表示处于第几单元行的数字来进行说明。另外,在图9的说明中,也与图7所示的各个处理模块的动作的一例同样,在缓冲器写入和缓冲器读取各自的期间所示的表示处于第几单元行的数字之后的“():括号”内示出表示是否在输入缓冲器331和输入缓冲器431内的任意一个单元行存储区域4311中暂时存储处理像素数据DAT的数字来进行说明。
另外,在图9的说明中,对各个处理模块所具备的输入缓冲器331或输入缓冲器431的存储容量即单元行存储区域3311或单元行存储区域4311的数量与图7所示的各个处理模块的动作的一例相同的情况进行说明。但是,在图8所示的流水线结构中,由于图像处理模块33-3选择了将所输入的处理像素数据DAT2直接传送到运算部333-3的路径,因此图像处理模块33-3与不具有输入缓冲器331-3的结构是相同的。
另外,在图9的说明中,也与图7所示的各个处理模块的动作的一例同样地对在图像处理部30开始流水线处理之后从如下状态起的动作进行说明:五个单元行的处理像素数据DAT1已经暂时存储在图像处理模块43-2所具备的输入缓冲器431-2中,接下来进行处理的五个单元行的输入数据(像素数据)已经暂时存储在图像处理模块33-1所具备的输入缓冲器331-1中。
另外,在图9中,也与图7所示的各个处理模块的动作的一例同样地,数据请求信号REQ为“高”电平的期间表示各个处理模块处于能够接收处理像素数据DAT的状态的请求期间,数据请求信号REQ为“低”电平的期间表示各个处理模块处于无法接收处理像素数据DAT的状态的请求无效期间。
在处于上述的状态时,当图像处理模块33-4所具备的控制部334-4将请求处理像素数据DAT3的输出的数据请求信号REQ4输出给图像处理模块43-2时,图像处理模块43-2所具备的控制部434-2根据从后级的图像处理模块33-4输入的数据请求信号REQ4而输出数据确认信号ACK2。而且,控制部434-2生成用于读出暂时存储在输入缓冲器431-2中的第一单元行的各个处理像素数据DAT1的缓冲器读信号。由此,在第一单元行的缓冲器读取期间,从输入缓冲器431-2的第一单元行存储区域4311-2读出的各个处理像素数据DAT1经由选择器332-2而传送到运算部433-2。而且,运算部433-2将对经由选择器332-2输入的第一单元行的各个处理像素数据DAT1进行与从控制部434-2输出的模式选择信号对应的畸变像差的畸变校正处理的运算而生成的处理像素数据DAT2,从延迟了延迟时间D2(等待时间D2)后的定时起输出给图像处理模块33-3。
以下的图像处理模块43-2和图像处理模块33-1的动作与图7所示的各个处理模块的动作的一例是相同的。因此,省略与图像处理模块43-2和图像处理模块33-1的动作相关的详细说明。
当图像处理模块33-3被从前级的图像处理模块43-2输入与第一单元行对应的各个处理像素数据DAT2时,图像处理模块33-3所具备的选择器332-3将所输入的各个处理像素数据DAT2直接传送到运算部333-3。而且,运算部333-3将对经由选择器332-3从前级的图像处理模块43-2输入的第一单元行的各个处理像素数据DAT2进行与从控制部334-3输出的模式选择信号对应的噪声降低处理的运算而生成的处理像素数据DAT3,从延迟了延迟时间D3(等待时间D3)后的定时起输出给图像处理模块33-4。
然后,当图像处理模块33-3被从前级的图像处理模块43-2输入第二单元行的各个处理像素数据DAT2时,选择器332-3将所输入的各个处理像素数据DAT2直接传送到运算部333-3。由此,运算部333-3将对第二单元行的各个处理像素数据DAT2进行噪声降低处理的运算而生成的处理像素数据DAT3输出给图像处理模块33-4。
以下同样地,图像处理模块33-3将运算部333-3对从前级的图像处理模块43-2依次输入的各个单元行的处理像素数据DAT2进行噪声降低处理的运算而生成的处理像素数据DAT3,依次输出给图像处理模块33-4。
这样,在图像处理模块33-3中,将对从前级的图像处理模块43-2依次输入的处理像素数据DAT2直接进行噪声降低处理后的处理像素数据DAT3,依次输出给后级的图像处理模块33-4。
而且,图像处理模块33-4对从前级的图像处理模块33-3依次输入的各个处理像素数据DAT3依次进行边缘强调处理,将生成的处理像素数据DAT4依次输出给后级的处理模块(例如输出DMA模块34)。另外,图像处理模块33-4的动作与图7所示的各个处理模块的动作的一例是相同的。因此,省略与图像处理模块33-4的动作相关的详细说明。
这样,在图8所示的流水线结构的图像处理部30中,也与图6所示的流水线结构的图像处理部30同样地能够避免流水线停滞状态从而进行一系列的流水线处理。而且,在图8所示的流水线结构的图像处理部30中,使图像处理模块43-2所具备的运算部433-2和图像处理模块33-3所具备的运算部333-3作为一个运算部而发挥功能,利用图像处理模块43-2所具备的输入缓冲器431-2的存储容量来吸收运算部433-2和运算部333-3这两方运算部中的处理的延迟。即,在图8所示的流水线结构的图像处理部30中,利用随着图像处理模块43-2具有多个图像处理的运算功能(尺寸调整处理、畸变校正处理、形状校正处理等)而输入缓冲器431-2具有多个单元行存储区域4311-2这样的情况,吸收将运算部433-2中的等待时间D2和运算部333-3中的等待时间D3加在一起的延迟时间。换言之,在图8所示的流水线结构的图像处理部30中,将图像处理模块43-2所具备的输入缓冲器431-2作为图像处理模块43-2和图像处理模块33-3这两方处理模块所具备的数据缓冲器(输入缓冲器)来进行处理,由此除了吸收运算部433-2中的等待时间D2之外,还用于吸收运算部333-3中的等待时间D3。即,将输入缓冲器431-2用于图像处理模块33-2所具备的运算部333-3的缓冲,从而代替输入缓冲器331-3来使用。由此,在图8所示的流水线结构的图像处理部30中,能够控制为停止图像处理模块33-3所具备的输入缓冲器331-3的动作,从而能够减少输入缓冲器331-3的消耗电力。另外,输入缓冲器331-3的动作的停止由CPU 50进行设定。但是,也可以是控制部334-3对输入缓冲器331-3进行控制,以使其停止动作。
这里,对用于成为如下结构的思路进行说明:使图像处理部30中构成流水线的多个处理模块所具备的各个运算部作为一个运算部而发挥功能,使任意一个处理模块所具备的数据缓冲器(输入缓冲器)吸收多个运算部中的处理的延迟。图10是对本发明的实施方式的图像处理装置1所具备的图像处理部30中的图像处理模块43所具备的输入缓冲器431的存储容量与图像处理中所使用的输入缓冲器431的存储容量之间的关系的一例进行说明的图。在图10中示意性地示出图像处理模块43所具备的输入缓冲器431的存储容量与图像处理模块43所执行的图像处理中所需的像素数据的单元行数即实际上使用的存储容量之间的关系的一例。
如图5中说明的那样,图像处理模块43中所需的单元行数即单元行存储区域4311的数量根据由CPU 50根据所执行的图像处理而设定的畸变系数的值、尺寸调整率的值等参数而不同。因此,在图像处理模块43-2所具备的输入缓冲器431-2的存储容量中,能够代替图像处理模块33-3所具备的输入缓冲器331-3来使用的存储容量即多余的存储容量根据图像处理模块43-2所执行的图像处理的运算而不同。在图10中示意性地示出表示图像处理模块43-2进行图像处理(图像插值处理)时所使用的输入缓冲器431-2的存储容量的存储区域的范围(下面称作“插值区域”)与表示能够代替图像处理模块33-3所具备的输入缓冲器331-3来使用的存储容量的存储区域的范围(下面称作“缓冲区域”)之间的关系。
例如,在图像处理模块43-2进行畸变像差的畸变校正处理的情况下,畸变校正处理所需的像素数据的单元行数是根据畸变系数的值(参数)来确定的,该畸变系数的值(参数)由CPU 50根据摄像装置所具备的镜头的畸变像差的特性而设定在设定寄存器3341中。因此,如图10的(a-1)~图10的(a-3)所示,在图像处理模块43-2所具备的输入缓冲器431-2中,为了进行畸变像差的畸变校正处理(图像插值处理)而使用的与单元行数对应的插值区域和能够代替图像处理模块33-3所具备的输入缓冲器331-3来使用的缓冲区域按照畸变系数的值而不同。
更具体而言,在畸变系数的值较小的情况下,如图10的(a-1)所示,由于图像处理模块43-2能够使用较少的单元行数的像素数据来进行畸变像差的畸变校正处理,因此输入缓冲器431-2内的插值区域为较窄的范围,从而能够使用较宽的范围的缓冲区域来代替图像处理模块33-3所具备的输入缓冲器331-3。即,能够在输入缓冲器431-2内确保较宽的范围的缓冲区域。因此,在图像处理模块43-2中,只要是在输入缓冲器431-2内确保的缓冲区域的范围内,则即使图像处理模块33-3所具备的输入缓冲器331-3是具有许多单元行存储区域3311-3的数据缓冲器,也能够使用输入缓冲器431-2来代替输入缓冲器331-3。
但是,如图10的(a-2)、图10的(a-3)所示,随着畸变系数的值变大,畸变像差的畸变校正处理中所使用的单元行数变多,输入缓冲器431-2内的插值区域为较宽的范围。即,能够在输入缓冲器431-2内确保的缓冲区域随着畸变系数的值变大反而成为较窄的范围。因此,在图像处理模块43-2中,很难使用输入缓冲器431-2来代替输入缓冲器331-3。
另外,例如在图像处理模块43-2进行尺寸调整处理的情况下,尺寸调整处理中所需的像素数据的单元行数是根据由CPU 50设定在设定寄存器3341中的尺寸调整率的值(参数)来确定的。因此,如图10的(b-1)和图10的(b-2)所示,在图像处理模块43-2所具备的输入缓冲器431-2中,为了进行尺寸调整处理(图像插值处理)而使用的与单元行数对应的插值区域和能够代替图像处理模块33-3所具备的输入缓冲器331-3来使用的缓冲区域按照尺寸调整率的值而不同。
更具体而言,例如在缩小图像的情况下,在尺寸调整率的值较小的情况下,如图10的(b-1)所示,由于图像处理模块43-2能够读出较少的单元行数的范围内的预先确定的位置的像素数据而进行尺寸调整处理,因此输入缓冲器431-2内的插值区域为较窄的范围,从而能够确保较宽范围的缓冲区域。因此,在图像处理模块43-2中,能够使用确保的缓冲区域来代替图像处理模块33-3所具备的输入缓冲器331-3。
另一方面,在尺寸调整率的值较大的情况下,如图10的(b-2)所示,由于图像处理模块43-2通过读出更多单元行数的范围内的预先确定的位置的像素数据来进行尺寸调整处理,因此输入缓冲器431-2内的插值区域为较宽的范围,能够在输入缓冲器431-2内确保的缓冲区域在尺寸调整率的值变大时反而为较窄的范围。因此,在图像处理模块43-2中,很难使用输入缓冲器431-2来代替输入缓冲器331-3。
另外,图像处理模块43进行倍率色像差的畸变校正处理的情况、进行梯形校正等形状校正处理的情况、或进行其他滤波处理的情况等的输入缓冲器431的存储容量的确定方法也可以与图10所示的一例同样地进行考虑。
CPU 50在要确定图像处理部30中所执行的图像处理(流水线处理)时,根据上述那样的思路,在图像处理部30中构成流水线。即,由于当要确定图像处理部30中所执行的流水线处理时,在流水线中串联连接的各个处理模块被确定,因此CPU 50能够把握各个处理模块所具备的数据缓冲器的存储容量和各个处理模块实际上使用的存储容量。此时,CPU 50求出能够在构成流水线的各个处理模块所具备的数据缓冲器内确保的缓冲区域的大小。而且,CPU 50根据所把握的各个存储容量来设定在流水线结构内流动的各个数据的路径。即,CPU 50根据所求出的缓冲区域的大小,按构成流水线的各个处理模块,来确定在将输入数据暂时存储在数据缓冲器中之后读出并传送到运算部还是将输入数据直接传送到运算部。
更具体而言,例如在图6和图8所示的流水线结构的一例中,CPU 50求出能够在图像处理模块43-2所具备的输入缓冲器431-2内确保的缓冲区域的大小即单元行数(单元行存储区域4311-2的数量)。而且,CPU 50根据所求出的输入缓冲器431-2中的缓冲区域(单元行数),来确定在图像处理模块33-3中是选择在将处理像素数据DAT2暂时存储在输入缓冲器331-3中之后读出并传送到运算部333-3的路径还是选择将处理像素数据DAT2直接传送到运算部333-3的路径。而且,CPU 50根据这里确定的路径,而在图像处理模块33-3所具备的控制部334-3内的设定寄存器3341-3中,设定选择将处理像素数据DAT2传送到运算部333-3的路径的选择器332-3的参数。即,CPU 50在所求出的输入缓冲器431-2的缓冲区域(单元行数)比图像处理模块33-3所具备的输入缓冲器331-3暂时存储处理像素数据DAT2的单元行数(单元行存储区域3311-3的数量)大的情况下,设定表示将所输入的处理像素数据DAT2直接传送到运算部333-3的选择器332-3的参数。另一方面,CPU 50在所求出的输入缓冲器431-2的缓冲区域(单元行数)比图像处理模块33-3所具备的输入缓冲器331-3暂时存储处理像素数据DAT2的单元行数小的情况下,设定表示在将所输入的处理像素数据DAT2暂时存储在输入缓冲器331-3中之后读出并传送到运算部333-3的选择器332-3的参数。而且,CPU 50根据这里确定的路径而对连接切换部31进行用于切换图像处理部30内构成流水线的各个处理模块的连接的控制(设定)。
另外,例如也考虑了图像处理模块33-3也是具有多个图像处理的运算功能的结构的情况。在该情况下,输入缓冲器331-3中暂时存储处理像素数据DAT2的单元行数(单元行存储区域3311-3的数量)根据图像处理模块33-3所执行的图像处理的运算而不同。因此,CPU 50将图像处理模块33-3所具备的运算部333-3执行图像处理的运算时的等待时间也包含在内,确定是选择在将处理像素数据DAT2暂时存储在输入缓冲器331-3中后读出并传送到运算部333-3的路径还是选择将处理像素数据DAT2直接传送到运算部333-3的路径。
另外,在图像处理模块43-2中,即使在使用输入缓冲器431-2来代替图像处理模块33-2所具备的输入缓冲器331-3之后,也认为输入缓冲器431-2在缓冲区域中存在富余(多余)。在该情况下,也可以使用存在富余的(多余的)输入缓冲器431-2的缓冲区域来代替流水线结构中还连接在后级的其他处理模块所具备的数据缓冲器。
接下来,对CPU 50在图像处理部30内构成流水线时的处理过程即CPU 50对各个处理模块所具备的数据缓冲器的控制方法进行说明。图11是示出在本发明的实施方式的图像处理装置1所具备的图像处理部30中构成流水线时的处理过程的流程图。另外,在以下的说明中,在图6和图8所示的流水线结构的一例中,对进行使用图像处理模块43-2所具备的输入缓冲器431-2的存储容量的一部分来代替图像处理模块33-3所具备的输入缓冲器331-3的设定的情况进行说明。
当要确定图像处理装置1中执行的图像处理时,CPU 50首先计算在图像处理部30中执行所确定的图像处理时各个处理模块实际上使用的数据缓冲器的存储容量(步骤S100)。在图6和图8所示的流水线结构的一例中,计算构成流水线的图像处理模块43-2实际上使用的输入缓冲器431-2的存储容量(插值区域)和图像处理模块33-3实际上使用的输入缓冲器331-3的存储容量。
另外,在图像处理模块33-3是具有预先确定的一个图像处理功能的结构的处理模块的情况下,在步骤S100中CPU 50计算出的图像处理模块33-3实际上使用的输入缓冲器331-3的存储容量是图像处理模块33-3所具备的输入缓冲器331-3的存储容量。另外,即使在图像处理模块33-3执行一个图像处理的功能的情况下,例如实际上使用的输入缓冲器331-3的存储容量有时也根据滤波系数等参数而改变。在该情况下,CPU 50例如根据滤波系数等参数来计算图像处理模块33-3实际上使用的输入缓冲器331-3的存储容量。另外,在图像处理模块33-3是具有多个图像处理的运算功能的结构的处理模块的情况下,在图像处理模块33-3所执行的图像处理的运算中使用的输入缓冲器331-3的存储容量也是在步骤S100中CPU 50计算出的图像处理模块33-3实际上使用的输入缓冲器331-3的存储容量。
另外,在步骤S100中,CPU 50根据图像处理模块43-2所进行的图像处理(图像插值处理)、该图像处理(图像插值处理)的设定值(参数),来计算图像处理模块43-2实际上使用的输入缓冲器431-2的存储容量(插值区域)。
接着,CPU 50计算能够在提供存储容量的处理模块的数据缓冲器中确保的存储容量(缓冲区域)(步骤S101)。在图6和图8所示的流水线结构的一例中,计算能够在提供存储容量的处理模块即图像处理模块43-2所具备的输入缓冲器431-2中确保的缓冲区域。
另外,在步骤S101中,CPU 50通过取整个输入缓冲器431-2的存储容量与在步骤S100中计算出的图像处理模块43-2实际上使用的输入缓冲器431-2的存储容量(插值区域)的差分,来计算能够在图像处理模块43-2所具备的输入缓冲器431-2中确保的存储容量(缓冲区域)。
接着,CPU 50对计算出的缓冲区域是否满足接受存储容量的提供的处理模块要使用的数据缓冲器的存储容量进行判定(步骤S102)。在图6和图8所示的流水线结构的一例中,对在步骤S101中计算出的缓冲区域是否满足针对图像处理模块33-3在步骤S100中计算出的存储容量进行判定,所述图像处理模块33-3是接受图像处理模块43-2所具备的输入缓冲器431-2的存储容量的提供的处理模块。
在步骤S102中,在判定为计算出的缓冲区域不满足接受存储容量的提供的处理模块所使用的数据缓冲器的存储容量的情况下(步骤S102的“否”),CPU 50选择在将接受存储容量的提供的处理模块的输入数据暂时存储在数据缓冲器中之后读出并传送到运算部的路径(步骤S103)。即,在输入缓冲器431-2中确保的缓冲区域(存储容量)小于图像处理模块33-3执行图像处理时要使用的输入缓冲器331-3的存储容量的情况下,CPU 50选择在将图像处理模块33-3的输入数据(处理像素数据DAT2)暂时存储在输入缓冲器331-3中之后读出并传送到运算部333-3的路径。
另一方面,在步骤S102中,在判定为计算出的缓冲区域满足接受存储容量的提供的处理模块所使用的数据缓冲器的存储容量的情况下(步骤S102的“是”),CPU 50选择将接受存储容量的提供的处理模块的输入数据直接传送到运算部的路径(步骤S104)。即,在输入缓冲器431-2中确保的缓冲区域(存储容量)为图像处理模块33-3执行图像处理时要使用的输入缓冲器331-3的存储容量以上的情况下,CPU 50选择将图像处理模块33-3的输入数据(处理像素数据DAT2)直接传送到运算部333-3的路径。
接着,CPU 50对是否存在接受存储容量的提供的其他处理模块进行判定(步骤S105)。即,CPU 50对是否存在提供在输入缓冲器431-2中确保的缓冲区域(存储容量)的图像处理模块33-3以外的处理模块进行确认。
在步骤S105中,在判定为存在接受存储容量的提供的其他处理模块的情况下(步骤S105是“是”),CPU 50返回到步骤S101,计算在将在输入缓冲器431-2中确保的缓冲区域(存储容量)提供给图像处理模块33-3之后还残留的缓冲区域(存储容量),反复进行步骤S102~步骤S105的处理。
另一方面,在步骤S105中,在判定为没有接受存储容量的提供的其他处理模块的情况下(步骤S105的“否”),CPU 50前进到步骤S106。
接着,CPU 50对构成流水线的各个处理模块设定在步骤S101~步骤S105的处理中选择的输入数据的路径(步骤S106)。更具体而言,在通过步骤S103而选择图像处理模块33-3中的输入数据(处理像素数据DAT2)的路径的情况下,CPU 50在图像处理模块33-3所具备的控制部334-3内的设定寄存器3341-3中,设定表示在将所输入的处理像素数据DAT2暂时存储在输入缓冲器331-3中之后读出并传送到运算部333-3的选择器332-3的参数。另一方面,在通过步骤S104而选择了图像处理模块33-3中的输入数据(处理像素数据DAT2)的路径的情况下,CPU 50设定表示将所输入的处理像素数据DAT2直接传送到运算部333-3的选择器332-3的参数。
接着,CPU 50将构成流水线的各个处理模块的连接的切换设定在连接切换部31中(步骤S107)。更具体而言,在通过步骤S103而选择图像处理模块33-3在将输入数据暂时存储在数据缓冲器中之后传送到运算部的路径的情况下,CPU 50对连接切换部31进行控制,以使其将图像处理模块33-3的数据请求信号REQ的输出端子和图像处理模块43-2的数据请求信号REQ的输入端子连接起来,将图像处理模块43-2的数据确认信号ACK的输出端子和图像处理模块33-3的数据确认信号ACK的输入端子连接起来。另一方面,在通过步骤S104而选择图像处理模块33-3将输入数据直接传送到运算部的路径的情况下,CPU 50对连接切换部31进行控制,以使其将图像处理模块33-3的后级的图像处理模块33-4的数据请求信号REQ的输出端子和图像处理模块43-2的数据请求信号REQ的输入端子连接起来,将图像处理模块43-2的数据确认信号ACK的输出端子和图像处理模块33-4的数据确认信号ACK的输入端子连接起来。
通过该步骤S106和步骤S107的处理,在图像处理部30内构成了图6或图8所示的流水线结构的一例那样的流水线。另外,每当确定图像处理部30中要执行的图像处理(流水线处理)时,CPU 50进行上述的处理。由此,在图像处理装置1中,按照确定的图像处理部30的图像处理(流水线处理)构成最佳的流水线结构。
这样,在图像处理装置1中,使图像处理部30中构成流水线的多个处理模块所具备的各个运算部作为一个运算部而发挥功能,使用在能够暂时存储许多单元行数的像素数据的处理模块所具备的数据缓冲器中在图像处理的运算中不使用而多余的存储容量,来代替其他处理模块所具备的数据缓冲器。
这里,对假设采用能够代替其他处理模块所具备的数据缓冲器来使用的存储容量(多余的存储容量)较少但将输入数据直接传送到运算部的结构的情况下的各个处理模块的动作进行说明。图12是示出在本发明的实施方式的图像处理装置1所具备的图像处理部30中进行不同的设定的情况下的图像处理模块(图像处理模块33和图像处理模块43)的动作的一例的时序图。在图12中示出在图像处理部30通过图8所示的流水线结构来进行一系列的流水线处理的情况下从图像处理模块33-1到图像处理模块33-4的处理像素数据的交接的一例。另外,图12所示的各个处理模块的动作的一例是用于说明本发明的图像处理装置1中的效果的一例,与在本发明的图像处理装置1中所执行的动作不同。
另外,在图12所示的各个处理模块的动作的一例中,也与图9所示的本发明的图像处理装置1中的各个处理模块的动作的一例同样,示出各个处理模块中的输入数据和输出数据(处理像素数据DAT)、数据请求信号REQ、以及缓冲器控制信号(缓冲器写信号和缓冲器读信号)。另外,在图12所示的各个处理模块的动作的一例中,数据确认信号ACK和数据有效信号VALID的定时是与输出数据(处理像素数据DAT)的定时相同的定时,因而省略各个处理模块中的数据确认信号ACK和数据有效信号VALID的图示。
另外,在图12的说明中,也与图9所示的本发明的图像处理装置1中的各个处理模块的动作的一例同样,将一个单元行作为一个处理单位而进行图像处理,并在输入数据(处理像素数据DAT)、缓冲器写入期间、缓冲器读取期间、以及输出数据(处理像素数据DAT)上分别示出表示处于第几单元行的数字来进行说明。另外,在图12的说明中,也与图9所示的本发明的图像处理装置1中的各个处理模块的动作的一例同样,在缓冲器写入和缓冲器读取各自的期间所示的表示处于第几单元行的数字之后的“():括号”内示出表示是否在输入缓冲器331和输入缓冲器431内的任意一个单元行存储区域4311中暂时存储处理像素数据DAT的数字来进行说明。
另外,在图12的说明中,对图像处理模块33-1具有能够存储五个单元行的处理像素数据DAT0的存储容量的输入缓冲器331,图像处理模块33-3和图像处理模块33-4各自是具有能够存储两个单元行的处理像素数据DAT的存储容量的输入缓冲器331的结构的情况进行说明。但是,在图12的说明中,对如下情况进行说明:由于表示能够代替图像处理模块33-3所具备的输入缓冲器331来使用的存储容量(多余的存储容量)较少,因此图像处理模块43-2是具有能够存储两个单元行的处理像素数据DAT1的存储容量的输入缓冲器431的结构。即,对如下情况进行说明:图像处理模块33-1所具备的输入缓冲器331与图9所示的本发明的图像处理装置1中的各个处理模块的动作的一例同样地具有五个单元行存储区域3311,图像处理模块33-3和图像处理模块33-4各自所具备的输入缓冲器331具有两个单元行存储区域3311。而且,对图像处理模块43-2所具备的输入缓冲器431与图9所示的本发明的图像处理装置1中的各个处理模块的动作的一例不同而具有两个单元行存储区域4311的情况进行说明。
另外,在图12的说明中,对在图像处理部30开始流水线处理之后从如下状态起的动作进行说明:两个单元行的处理像素数据DAT1已经暂时存储在图像处理模块43-2所具备的输入缓冲器431-2中,接下来进行处理的五个单元行的输入数据(像素数据)已经暂时存储在图像处理模块33-1所具备的输入缓冲器331-1中。即,对从如下状态起的动作进行说明:第一和第二单元行的处理像素数据DAT1已经暂时存储在图像处理模块43-2所具备的输入缓冲器431-2的第一和第二单元行存储区域4311-2中,第三~第七单元行的处理像素数据DAT0已经暂时存储在图像处理模块33-1所具备的输入缓冲器331-1的第一~第五单元行存储区域3311-1中。
在图12中,也与图9所示的本发明的图像处理装置1中的各个处理模块的动作的一例同样,数据请求信号REQ为“高”电平的期间表示各个处理模块处于能够接收处理像素数据DAT的状态的请求期间,数据请求信号REQ为“低”电平的期间表示各个处理模块处于无法接收处理像素数据DAT的状态的请求无效期间。
在处于上述的状态时,当图像处理模块33-4所具备的控制部334-4将请求处理像素数据DAT3的输出的数据请求信号REQ4输出给图像处理模块43-2时,图像处理模块43-2所具备的控制部434-2根据从后级的图像处理模块33-4输入的数据请求信号REQ4而输出数据确认信号ACK2。而且,控制部434-2生成用于读出暂时存储在输入缓冲器431-2中的第一单元行的各个处理像素数据DAT1的缓冲器读信号。由此,在第一单元行的缓冲器读取期间,从输入缓冲器431-2的第一单元行存储区域4311-2读出的各个处理像素数据DAT1经由选择器332-2而传送到运算部433-2。而且,运算部433-2将对经由选择器332-2输入的第一单元行的各个处理像素数据DAT1进行与从控制部434-2输出的模式选择信号对应的畸变像差的畸变校正处理的运算而生成的处理像素数据DAT2,从延迟了延迟时间D2(等待时间D2)后的定时起输出给图像处理模块33-3。
另外,控制部434-2在暂时存储在输入缓冲器431-2中的第一单元行的各个处理像素数据DAT1的读出结束时,接着依次生成用于从输入缓冲器431-2读出第二单元行的处理像素数据DAT1的缓冲器读信号。由此,运算部433-2将对经由选择器332-2输入的第二单元行的各个处理像素数据DAT1进行畸变像差的畸变校正处理的运算而生成的第二单元行的处理像素数据DAT2输出给图像处理模块33-3。
另外,当由控制部434-2结束第一单元行的各个处理像素数据DAT1的读出时,由于输入缓冲器431-2的第一单元行存储区域4311-2处于空闲的状态,因此控制部434-2使输出给图像处理模块33-1的数据请求信号REQ2为“高”电平。由此,图像处理模块33-1根据数据请求信号REQ2,将对暂时存储在输入缓冲器331中的第三单元行的各个像素数据进行YC处理的运算而生成的与第三单元行对应的处理像素数据DAT1,从延迟了延迟时间D1(等待时间D1)后的定时起输出给图像处理模块43-2。控制部434-2在被从前级的图像处理模块33-1输入与第三单元行对应的处理像素数据DAT1时,生成用于将所输入的第三单元行的处理像素数据DAT1写入到输入缓冲器431-2内的空闲的第一单元行存储区域4311-2中的缓冲器写信号。由此,在第三单元行的缓冲器写入期间,与第三单元行对应的各个处理像素数据DAT1写入并暂时存储在输入缓冲器431-2内的第一单元行存储区域4311-2中。
另外,当由控制部434-2结束第二单元行的各个处理像素数据DAT1的读出时,由于输入缓冲器431-2的第二单元行存储区域4311-2处于空闲的状态,因此控制部434-2将输出给图像处理模块33-1的数据请求信号REQ2维持在“高”电平的状态。由此,图像处理模块33-1根据数据请求信号REQ2,接着将对暂时存储在输入缓冲器331中的第四单元行的各个像素数据进行YC处理的运算而生成的与第四单元行对应的处理像素数据DAT1输出给图像处理模块43-2。控制部434-2在被从前级的图像处理模块33-1输入与第四单元行对应的处理像素数据DAT1时,生成用于将所输入的第四单元行的处理像素数据DAT1写入到输入缓冲器431-2内的空闲的第二单元行存储区域4311-2中的缓冲器写信号。由此,在第四单元行的缓冲器写入期间,与第四单元行对应的各个处理像素数据DAT1写入并暂时存储在输入缓冲器431-2内的第二单元行存储区域4311-2中。
另外,控制部434-2在开始第四单元行的各个处理像素数据DAT1向输入缓冲器431-2内的第二单元行存储区域4311-2的写入时,使输入缓冲器431-2的所有的单元行存储区域4311-2处于不空闲的状态。因此,控制部434-2为了表示图像处理模块43-2处于无法接收处理像素数据DAT1的状态,使输出给图像处理模块33-1的数据请求信号REQ2为“低”电平。由此,图像处理模块33-1根据数据请求信号REQ2,而停止对暂时存储在输入缓冲器331中的第五及以后的单元行的各个像素数据进行YC处理的运算而生成的与各个单元行对应的处理像素数据DAT1向图像处理模块43-2的输出。
然后,同样地,控制部434-2根据输入缓冲器431-2的单元行存储区域4311-2的状态而变更数据请求信号REQ2的电平,由此将图像处理模块43-2是否能够接收处理像素数据DAT1的状态通知给图像处理模块33-1。而且,在各个单元行的缓冲器写入期间,控制部434-2将从前级的图像处理模块33-1输入的与第五及以后的单元行对应的各个处理像素数据DAT1依次暂时存储在输入缓冲器431-2中。
这样,图像处理模块43-2在将从前级的图像处理模块33-1输入的处理像素数据DAT1暂时存储在输入缓冲器431-2中之后读出,并将进行了畸变像差的畸变校正处理后的处理像素数据DAT2依次输出给后级的图像处理模块33-3。
可是,在图像处理模块43-2中,如图12所示,在暂时存储在输入缓冲器431-2中的第二单元行的各个处理像素数据DAT1的读出结束时,第三单元行的处理像素数据DAT1未暂时存储在输入缓冲器431-2中。因此,控制部334-4无法在第二单元行的各个处理像素数据DAT1的读出结束之后,接着从输入缓冲器431-2读出第三单元行的处理像素数据DAT1。由此,与第三单元行对应的各个处理像素数据DAT2从图像处理模块43-2向后级的图像处理模块33-3的输出暂时被停止。而且,来自图像处理模块43-2的第三单元行的各个处理像素数据DAT2的输出在如下的定时再次开始:由控制部434-2在第三单元行的处理像素数据DAT1暂时存储在输入缓冲器431-2中之后读出,运算部433-2进行畸变像差的畸变校正处理的运算而生成第三单元行的处理像素数据DAT2之后。此时,从图像处理模块43-2输出的与第三单元行对应的处理像素数据DAT2也延迟了运算部433-2中的等待时间D2而输出。
图像处理模块33-3在被从前级的图像处理模块43-2输入与第一单元行对应的各个处理像素数据DAT2时,与图9所示的本发明的图像处理装置1中的各个处理模块的动作的一例同样,将所输入的各个处理像素数据DAT2直接传送到运算部333-3。而且,运算部333-3将对传送的第一单元行的各个处理像素数据DAT2进行噪声降低处理的运算而生成的处理像素数据DAT3,从延迟了延迟时间D3(等待时间D3)后的定时起输出给图像处理模块33-4。
此时,在图像处理模块33-3中,也像图12所示那样,随着来自图像处理模块43-2的第三单元行的各个处理像素数据DAT2的输出被暂时停止,与第三单元行对应的各个处理像素数据DAT3从图像处理模块33-3向后级的图像处理模块33-4的输出被暂时停止。而且,在图像处理模块33-3中,第三单元行的各个处理像素数据DAT3的输出也在如下的定时再次开始:来自图像处理模块43-2的第三单元行的各个处理像素数据DAT2的输出再次开始,运算部333-3进行噪声降低处理的运算而生成第三单元行的处理像素数据DAT3之后。此时,从图像处理模块33-3输出的与第三单元行对应的处理像素数据DAT3也延迟了运算部333-3中的等待时间D3而输出。
由此,在图像处理模块33-4中,在第二单元行与第三单元行之间产生了未输入处理像素数据DAT3的期间。在该图像处理模块33-4中未输入处理像素数据DAT3的期间是图12所示的各个处理模块的动作的一例中的流水线停滞状态的期间。
另外,在图12所示的各个处理模块的动作的一例中,由于图像处理模块33-4的动作也与图9所示的本发明的图像处理装置1中的各个处理模块的动作的一例是相同的,因此在图像处理模块33-4中未输入处理像素数据DAT3的流水线停滞状态的期间也传播到图像处理模块33-4的后级的处理模块(例如输出DMA模块34)。
这样,在采用能够代替其他处理模块所具备的数据缓冲器来使用的存储容量(多余的存储容量)较少但将输入数据直接传送到运算部的结构的情况下,在一系列的流水线处理中,产生流水线停滞状态。即,若CPU 50对图像处理部30内构成流水线的各个处理模块未准确地设定将输入数据传送到运算部的路径,则有时在构成的流水线中产生流水线停滞状态。
然而,在本发明的图像处理装置1中,CPU 50通过上述那样的方法而对图像处理部30内构成流水线的各个处理模块准确地设定将输入数据传送到运算部的路径,从而能够避免构成的流水线中的流水线停滞状态而进行一系列的流水线处理。而且,通过使用任意一个处理模块所具备的数据缓冲器来代替其他处理模块所具备的数据缓冲器,CPU 50能够控制为停止其他处理模块所具备的数据缓冲器的动作,从而能够减少停止的数据缓冲器的消耗电力。
根据本实施方式,构成了如下的图像处理装置(图像处理装置1):其中,存储器(DRAM 20)和图像处理部(图像处理部30)与数据总线(DMA总线10)连接,所述图像处理部中构成有对输入的数据(像素数据或处理像素数据)进行预先确定的处理的多个处理模块(图像处理模块33-1~图像处理模块33-5)串联连接而成的流水线,且所述图像处理部通过各个处理模块(图像处理模块33和图像处理模块43)依次进行处理来进行流水线处理,并且图像处理装置具有对图像处理部30所进行的流水线处理进行设定的系统控制部(CPU 50),其中,图像处理模块33和图像处理模块43各自具有将像素数据或处理像素数据按处理的单位暂时存储的数据缓冲器(输入缓冲器331或输入缓冲器431)、根据CPU 50对处理内容的设定(处理模式和参数)来进行处理的运算的运算部(运算部333或运算部433)、以及根据CPU 50对像素数据或处理像素数据的传送路径的设定(参数)来选择将像素数据或处理像素数据传送到运算部333或运算部433的图像处理模块33或图像处理模块43内的路径并且对输入缓冲器331或输入缓冲器431的动作进行控制的控制部(控制部334或控制部434),图像处理部30还具有根据CPU 50对流水线结构的设定来切换构成流水线的处理模块(图像处理模块33和图像处理模块43)彼此的连接的连接切换部(连接切换部31)。
另外,根据本实施方式,构成了如下的图像处理装置1:多个图像处理模块33和图像处理模块43中的至少一个处理模块是具有第二运算部(运算部433)的第二处理模块(图像处理模块43),CPU 50根据图像处理模块43对数据进行的处理的内容、以及与图像处理模块43相邻连接的图像处理模块33和图像处理模块43所具备的输入缓冲器331或输入缓冲器431的存储容量,来进行传送路径的设定和流水线结构的设定,所述第二运算部是排他地进行预先确定的多个处理的运算的运算部。
另外,根据本实施方式,构成了如下的图像处理装置1:CPU 50在图像处理模块43进行与处理内容的设定对应的处理的运算时存在多余的输入缓冲器431的存储容量(缓冲区域)的情况下,将运算部433和相邻连接的图像处理模块33所具备的运算部333作为一个运算部,在多余的存储容量(缓冲区域)是能够代替相邻连接的图像处理模块33所具备的输入缓冲器331的存储容量来使用的容量的情况下,将相邻连接的图像处理模块33的传送路径设定为不将像素数据或处理像素数据存储到输入缓冲器331中而是跳过输入缓冲器331而传送到运算部333的路径,并且停止相邻连接的图像处理模块33所具备的输入缓冲器331的动作,在多余的缓冲区域是不能代替相邻连接的图像处理模块33所具备的输入缓冲器331的存储容量来使用的容量的情况下,将相邻连接的图像处理模块33的传送路径设定为在将像素数据或处理像素数据暂时存储在输入缓冲器331中之后读出并传送到运算部333的路径。
另外,根据本实施方式,构成了如下的图像处理装置1:CPU 50根据整个输入缓冲器431的存储容量和图像处理模块43进行与处理内容的设定对应的处理的运算时所使用的输入缓冲器431的存储容量(插值区域),来计算图像处理模块43所具备的输入缓冲器431的多余的存储容量(缓冲区域)。
另外,根据本实施方式,构成了如下的图像处理装置1:图像处理模块33和图像处理模块43还具有选择器(选择器332),该选择器选择传送从输入缓冲器331或输入缓冲器431读出的像素数据或处理像素数据的路径和跳过输入缓冲器331或输入缓冲器431而传送像素数据或处理像素数据的路径中的任意一方路径,作为传送像素数据或处理像素数据的路径。
另外,根据本实施方式,构成了如下的图像处理装置1:像素数据或处理像素数据是与图像中包含的各个像素对应的像素数据,运算部433是通过利用图像中包含的各个像素的坐标的转换功能的图像插值处理来排他地进行多个处理的运算的运算部,CPU 50根据整个输入缓冲器431的存储容量和图像处理模块43进行与图像插值处理的设定值对应的图像插值处理的运算时所使用的输入缓冲器431的存储容量(插值区域),来计算图像处理模块43所具备的输入缓冲器431的多余的存储容量(缓冲区域)。
另外,根据本实施方式,构成了如下的图像处理装置1:图像插值处理至少包含对图像的大小进行变更的尺寸调整处理和对包含于图像中的畸变像差的畸变进行校正的畸变校正处理。
另外,根据本实施方式,构成了如下的图像处理装置1:与图像处理模块43相邻连接的图像处理模块33在流水线的结构中连接在图像处理模块43的后级。
另外,根据本实施方式,构成了如下的图像处理装置(图像处理装置1)的图像处理方法:图像处理装置中,存储器(DRAM 20)和图像处理部(图像处理部30)与数据总线(DMA总线10)连接,所述图像处理部中构成有对输入的数据(像素数据或处理像素数据)进行预先确定的处理的多个处理模块(图像处理模块33-1~图像处理模块33-5)串联连接而成的流水线,且所述图像处理部通过各个处理模块(图像处理模块33和图像处理模块43)依次进行处理来进行流水线处理,并且图像处理装置具有对图像处理部30所进行的流水线处理进行设定的系统控制部(CPU 50),其中,该图像处理方法具有由图像处理模块33和图像处理模块43各自执行的运算步骤和控制步骤以及由图像处理部30执行的连接切换步骤,在运算步骤中,根据CPU 50对处理内容的设定(处理模式和参数)来进行处理的运算,在控制步骤中,根据CPU50对像素数据或处理像素数据的传送路径的设定(参数)来选择将像素数据或处理像素数据传送到进行处理的运算的运算部(运算部333或运算部433)的图像处理模块33或图像处理模块43内的路径,并且对将像素数据或处理像素数据按处理的单位暂时存储的数据缓冲器(输入缓冲器331或输入缓冲器431)的动作进行控制,在连接切换步骤中,根据CPU50对流水线结构的设定来切换构成流水线的处理模块(图像处理模块33和图像处理模块43)彼此的连接。
如上所述,根据本发明的各实施方式,在图像处理装置所具备的图像处理部中具有切换各个处理模块的连接的连接切换部,即,在图像处理部中具有切换构成的流水线的连接的连接切换部。由此,在本发明的各实施方式中,每当确定了图像处理装置所具备的图像处理部所执行的图像处理(流水线处理)时,能够切换图像处理部内的处理模块的连接,从而变更(切换)在流水线结构内流动的各个数据的路径。
另外,根据本发明的各实施方式,在图像处理装置所具备的图像处理部中,在构成流水线的多个处理模块中分别具有如下结构:选择(切换)在将所输入的输入数据暂时存储在数据缓冲器中之后读出并传送到运算部的路径和跳过数据缓冲器而传送到运算部的路径中任意一方的路径。由此,在本发明的各实施方式中,每当确定了图像处理装置所具备的图像处理部所执行的图像处理(流水线处理)时,能够变更(切换)在各个处理模块内流动的输入数据的路径。此时,在本发明的各实施方式中,根据图像处理部所执行的图像处理(流水线处理),使图像处理部中构成流水线的多个处理模块所具备的各个运算部作为一个运算部而发挥功能。而且,在本发明的各实施方式中,在使多个的运算部作为一个运算部而发挥功能的情况下,在具备具有许多存储容量的数据缓冲器的处理模块中使用在图像处理的运算中不使用而多余的存储容量来,代替作为一个运算部而发挥功能的其他处理模块所具备的数据缓冲器。即,在本发明的各实施方式中,提供在图像处理的运算中不使用而多余的存储容量作为其他处理模块所具备的数据缓冲器的存储容量。并且,在本发明的各实施方式中,控制为按跳过提供数据缓冲器的存储容量的处理模块所具备的数据缓冲器的路径将输入数据传送到运算部,使数据缓冲器的动作停止。由此,在本发明的各实施方式中,能够减少停止了动作的数据缓冲器的消耗电力。由此,在本发明的各实施方式中,即使不像以现有的处理模块构成流水线时那样必须进行数据向数据缓冲器的写入和来自数据缓冲器的数据的读出,也能够进行期望的图像处理,从而能够降低流水线处理的消耗电力而不会使流水线处理的性能降低。即,在本发明的各实施方式中,通过图像处理部所具备的各个处理模块的流水线处理,能够降低流水线处理的消耗电力而不会使进行期望的图像处理时的流水线处理的性能降低。
另外,在本发明的各实施方式中,对如下情况进行了说明:在图像处理部30内的流水线结构中,使具有多个图像处理的运算功能的图像处理模块43所具备的运算部433-2和连接在图像处理模块43的后级的图像处理模块33-3所具备的运算部333-3作为一个运算部而发挥功能。即,在本发明的各实施方式中,对使用图像处理模块43所具备的输入缓冲器431-2来代替图像处理模块33-3所具备的输入缓冲器331-3的情况进行了说明。但是,在图像处理部30内的流水线结构中,能够作为一个运算部而发挥功能的其他处理模块所具备的运算部并不限定于在本发明的各实施方式中进行了说明那样的后级的处理模块所具备的运算部。例如,也可以与前级的处理模块所具备的运算部组合从而作为一个运算部而发挥功能。在该情况下也同样地能够应用本发明的思路。
另外,在本发明的各实施方式中,对如下情况进行了说明:通过停止图像处理部30中构成流水线的连接在图像处理模块43的后级的图像处理模块33-3所具备的输入缓冲器331-3的动作,来减少输入缓冲器331-3的消耗电力。但是,如图5的(a)所示,各个处理模块所具备的数据缓冲器的结构是将多个与一个单元行对应的单元行存储区域4311排列而成的结构。因此,也可以使数据缓冲器的结构为按每个单元行存储区域4311或按预先确定的数量的单元行存储区域4311控制动作的结构。在为该结构的情况下,在数据缓冲器中也可以控制为按控制动作的单位来停止单元行存储区域4311的动作。另外,在本发明的各实施方式中,对图像处理装置所具备的图像处理部中构成流水线的各个图像处理模块具有控制是否跳过图像处理模块自身所具备的数据缓冲器的选择(切换)的功能的结构进行了说明。但是,如上所述,在作为图像处理部中构成流水线的处理模块的输入DMA模块和输出DMA模块中也具有数据缓冲器。因此,输入DMA模块和输出DMA模块也可以与图像处理模块同样,具有控制是否跳过自身所具备的数据缓冲器的选择(切换)的功能。通过具有该功能,从而在输入DMA模块和输出DMA模块中也能够获得与图像处理模块相同的效果。
另外,在本发明的各实施方式中,对在图像处理装置所具备的图像处理部内具有构成流水线的各个处理模块的结构进行了说明。但是,关于通过流水线结构来进行一系列的处理的处理装置,除了图像处理装置之外还可以考虑各种处理装置。因此,能够应用本发明的思路的处理装置并不限定于在本发明的各实施方式中示出的图像处理装置,只要是通过将多个处理模块串联连接来构成流水线从而进行流水线处理的处理装置,就可以同样地应用本发明的思路,能够获得与本发明相同的效果。
以上,对本发明的优选实施方式进行了说明,但本发明并不限定于这些实施方式及其变形例。在不脱离本发明的主旨的范围内,可以对构成进行添加、省略、置换、以及其他变更。
另外,本发明不受上述的说明限定,仅通过附加的权利要求来限定。
工业上的可利用性
根据上述各实施方式,可以提供能够降低消耗电力而不会使流水线处理的性能降低的图像处理装置和图像处理方法。
标号说明
1:图像处理装置;10:DMA总线(数据总线);20:DRAM(存储器);30:图像处理部(图像处理部);31:连接切换部(图像处理部,连接切换部);32:输入DMA模块(图像处理部);33、33-1、33-2、33-3、33-4、33-5:图像处理模块(图像处理部,处理模块);331:输入缓冲器(处理模块,数据缓冲器);3311:单元行存储区域(处理模块,数据缓冲器);332:选择器(处理模块,选择器);333:运算部(处理模块,运算部);334:控制部(处理模块,控制部);3341:设定寄存器(处理模块,控制部);34:输出DMA模块(图像处理部);43、43-2图像处理模块:(图像处理部,处理模块);431:输入缓冲器(处理模块,数据缓冲器);4311:单元行存储区域(处理模块,数据缓冲器)433:运算部(处理模块,运算部);4331:坐标计算部(处理模块,运算部);4332:插值运算部(处理模块,运算部);434:控制部(处理模块,控制部);4342:缓冲器读地址生成部(处理模块,控制部);50:CPU(系统控制部);60:CPU总线。

Claims (9)

1.一种图像处理装置,该图像处理装置中,存储器和图像处理部与数据总线连接,所述图像处理部中构成有对输入的数据进行预先确定的处理的多个处理模块串联连接而成的流水线,所述图像处理部通过各个所述处理模块依次进行所述处理来进行流水线处理,并且所述图像处理装置具有对所述图像处理部所进行的所述流水线处理进行设定的系统控制部,其中,
所述处理模块各自具有:
数据缓冲器,其将所述数据按所述处理的单位暂时存储;
运算部,其根据所述系统控制部对处理内容的设定来进行所述处理的运算;以及
控制部,其根据所述系统控制部对数据的传送路径的设定来选择所述处理模块内的将所述数据传送到所述运算部的路径,并且对所述数据缓冲器的动作进行控制,
所述图像处理部还具有连接切换部,该连接切换部根据所述系统控制部对流水线结构的设定而切换构成所述流水线的所述处理模块彼此的连接。
2.根据权利要求1所述的图像处理装置,其中,
多个所述处理模块中的至少一个所述处理模块是具有第二运算部的第二处理模块,所述第二运算部是排他地进行预先确定的多个所述处理的运算的所述运算部,
所述系统控制部根据所述第二处理模块对所述数据进行的所述处理的内容和与所述第二处理模块相邻连接的所述处理模块所具备的所述数据缓冲器的存储容量,来进行所述传送路径的设定和所述流水线结构的设定。
3.根据权利要求2所述的图像处理装置,其中,
所述系统控制部在所述第二处理模块进行与所述处理内容的设定对应的所述处理的运算时存在多余的所述数据缓冲器的存储容量的情况下,将所述第二运算部和相邻连接的所述处理模块所具备的所述运算部作为一个运算部,
在多余的所述存储容量是能够代替相邻连接的所述处理模块所具备的所述数据缓冲器的存储容量来使用的容量的情况下,将相邻连接的所述处理模块的所述传送路径设定为不将所述数据存储到所述数据缓冲器中而跳过所述数据缓冲器传送到所述运算部的路径,并且使相邻连接的所述处理模块所具备的所述数据缓冲器的动作停止,
在多余的所述存储容量是不能代替相邻连接的所述处理模块所具备的所述数据缓冲器的存储容量来使用的容量的情况下,将相邻连接的所述处理模块的所述传送路径设定为在将所述数据暂时存储到所述数据缓冲器中之后读出并传送到所述运算部的路径。
4.根据权利要求3所述的图像处理装置,其中,
所述系统控制部根据所述数据缓冲器整体的存储容量和所述第二处理模块进行与所述处理内容的设定对应的所述处理的运算时所使用的所述数据缓冲器的存储容量,来计算所述第二处理模块所具备的所述数据缓冲器的多余的存储容量。
5.根据权利要求2至4中的任意一项所述的图像处理装置,其中,
所述处理模块和所述第二处理模块还具有选择器,该选择器选择传送从所述数据缓冲器读出的所述数据的路径和跳过所述数据缓冲器而传送所述数据的路径中的任意一方路径作为传送所述数据的路径。
6.根据权利要求2至5中的任意一项所述的图像处理装置,其中,
所述数据是与图像中包含的各个像素对应的像素数据,
所述第二运算部是如下运算部:通过利用了所述图像中包含的各个像素的坐标的转换功能的图像插值处理,而排他地进行多个所述处理的运算,
所述系统控制部根据所述数据缓冲器整体的存储容量和所述第二处理模块进行与所述图像插值处理的设定值对应的所述图像插值处理的运算时所使用的所述数据缓冲器的存储容量,来计算所述第二处理模块所具备的所述数据缓冲器的多余的存储容量。
7.根据权利要求6所述的图像处理装置,其中,
所述图像插值处理至少包含对所述图像的大小进行变更的尺寸调整处理和对包含于所述图像中的畸变像差的畸变进行校正的畸变校正处理。
8.根据权利要求2至7中的任意一项所述的图像处理装置,其中,
与所述第二处理模块相邻连接的所述处理模块在所述流水线的结构中连接在所述第二处理模块的后级。
9.一种图像处理装置的图像处理方法,该图像处理装置中,存储器和图像处理部与数据总线连接,所述图像处理部中构成有对输入的数据进行预先确定的处理的多个处理模块串联连接而成的流水线,所述图像处理部通过各个所述处理模块依次进行所述处理来进行流水线处理,并且所述图像处理装置具有对所述图像处理部所进行的所述流水线处理进行设定的系统控制部,其中,该图像处理方法具有由各个所述处理模块执行的运算步骤和控制步骤以及由所述图像处理部执行的连接切换步骤,
在所述运算步骤中,根据所述系统控制部对处理内容的设定来进行所述处理的运算;
在所述控制步骤中,根据所述系统控制部对数据的传送路径的设定,来选择所述处理模块内的将所述数据传送到进行所述处理的运算的运算部的路径,并且对将所述数据按所述处理的单位暂时存储的数据缓冲器的动作进行控制;
在所述连接切换步骤中,根据所述系统控制部对流水线结构的设定而切换构成所述流水线的所述处理模块彼此的连接。
CN201680032971.1A 2015-06-12 2016-03-29 图像处理装置和图像处理方法 Active CN107710274B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015119685A JP6580381B2 (ja) 2015-06-12 2015-06-12 画像処理装置および画像処理方法
JP2015-119685 2015-06-12
PCT/JP2016/060147 WO2016199481A1 (ja) 2015-06-12 2016-03-29 画像処理装置および画像処理方法

Publications (2)

Publication Number Publication Date
CN107710274A true CN107710274A (zh) 2018-02-16
CN107710274B CN107710274B (zh) 2021-10-22

Family

ID=57504762

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680032971.1A Active CN107710274B (zh) 2015-06-12 2016-03-29 图像处理装置和图像处理方法

Country Status (5)

Country Link
US (1) US10453166B2 (zh)
JP (1) JP6580381B2 (zh)
CN (1) CN107710274B (zh)
DE (1) DE112016002105T5 (zh)
WO (1) WO2016199481A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7235532B2 (ja) * 2019-02-25 2023-03-08 ソニー・オリンパスメディカルソリューションズ株式会社 医療用画像処理装置、画像処理方法およびプログラム
US10467142B1 (en) * 2019-05-07 2019-11-05 12 Sigma Technologies Enhancement of real-time response to request for detached data analytics

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10334225A (ja) * 1997-06-02 1998-12-18 Fuji Xerox Co Ltd 画像処理装置および画像処理方法
US20050078756A1 (en) * 2003-08-21 2005-04-14 Sony Corporation Encoding apparatus and encoding method
CN1799064A (zh) * 2003-06-02 2006-07-05 奥林巴斯株式会社 图像处理装置
CN1868149A (zh) * 2003-10-17 2006-11-22 奥林巴斯株式会社 信息取得装置、信息提供装置以及信息提供系统
EP1727367A3 (en) * 2005-05-23 2007-01-03 Kabushiki Kaisha Toshiba Electronic apparatus, image control method and image control program
US20120050259A1 (en) * 2010-08-31 2012-03-01 Apple Inc. Systems, methods, and computer-readable media for efficiently processing graphical data
US20120110224A1 (en) * 2010-11-01 2012-05-03 Olympus Corporation Data processing apparatus and image processing apparatus
CN102479332A (zh) * 2010-11-30 2012-05-30 富士施乐株式会社 图像处理装置和图像处理方法
CN102959951A (zh) * 2011-04-07 2013-03-06 松下电器产业株式会社 图像处理装置、图像处理方法,图像处理程序及集成电路
US8719489B2 (en) * 2008-02-05 2014-05-06 Spansion Llc Hardware based wear leveling mechanism for flash memory using a free list

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3083582B2 (ja) * 1991-04-30 2000-09-04 株式会社日立製作所 並列処理装置
JPH07302201A (ja) * 1994-05-10 1995-11-14 Hitachi Ltd パイプライン演算データ診断装置
US9013750B2 (en) * 2009-06-25 2015-04-21 Canon Kabushiki Kaisha Image processing for processing image data in correspondence with each pixel of an image

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10334225A (ja) * 1997-06-02 1998-12-18 Fuji Xerox Co Ltd 画像処理装置および画像処理方法
CN1799064A (zh) * 2003-06-02 2006-07-05 奥林巴斯株式会社 图像处理装置
US20050078756A1 (en) * 2003-08-21 2005-04-14 Sony Corporation Encoding apparatus and encoding method
CN1868149A (zh) * 2003-10-17 2006-11-22 奥林巴斯株式会社 信息取得装置、信息提供装置以及信息提供系统
EP1727367A3 (en) * 2005-05-23 2007-01-03 Kabushiki Kaisha Toshiba Electronic apparatus, image control method and image control program
US8719489B2 (en) * 2008-02-05 2014-05-06 Spansion Llc Hardware based wear leveling mechanism for flash memory using a free list
US20120050259A1 (en) * 2010-08-31 2012-03-01 Apple Inc. Systems, methods, and computer-readable media for efficiently processing graphical data
US20120110224A1 (en) * 2010-11-01 2012-05-03 Olympus Corporation Data processing apparatus and image processing apparatus
CN102479332A (zh) * 2010-11-30 2012-05-30 富士施乐株式会社 图像处理装置和图像处理方法
CN102959951A (zh) * 2011-04-07 2013-03-06 松下电器产业株式会社 图像处理装置、图像处理方法,图像处理程序及集成电路

Also Published As

Publication number Publication date
US10453166B2 (en) 2019-10-22
WO2016199481A1 (ja) 2016-12-15
CN107710274B (zh) 2021-10-22
DE112016002105T5 (de) 2018-03-08
US20180068413A1 (en) 2018-03-08
JP6580381B2 (ja) 2019-09-25
JP2017004387A (ja) 2017-01-05

Similar Documents

Publication Publication Date Title
US10241721B2 (en) Image processing device and image processing method
CN108701029A (zh) 图像处理装置
US20060140498A1 (en) Apparatus and method for processing an image
US8904069B2 (en) Data processing apparatus and image processing apparatus
US9552619B2 (en) Image processing apparatus and image processing interface circuit
CN102263880A (zh) 一种图像缩放的方法和装置
CN107710274A (zh) 图像处理装置和图像处理方法
US10803589B2 (en) Image processing device
JP6210743B2 (ja) データ処理装置およびデータ転送制御装置
JP5815390B2 (ja) 半導体装置及び画像処理方法
WO2010064374A1 (ja) 画像処理装置
JP2012164186A (ja) データ処理装置
JP5583563B2 (ja) データ処理装置
US20100106865A1 (en) Dma transfer device and method
CN102685480B (zh) 一种视频滤波方法及装置
JP4697419B2 (ja) 作業メモリ直接リンクによってフレーム・メモリ・アクセスを減少させる映像符号化システム
KR100447178B1 (ko) 유한 임펄스 응답 필터
JP2011030268A (ja) 画像処理装置
JPH07225710A (ja) 画像処理装置
JP2005210262A (ja) 画像処理装置
JP2012049786A (ja) 映像データ処理装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant