具体实施方式
下面,将说明实现本发明的实施例。
图1A和图1B是图示出图像处理装置的示例的外观示图。图1A图示出了数字相机100的示例,并且图1B图示出了装配有相机的移动电话200的示例。数字相机100和装配有相机的移动电话200分别包括成像单元110、210。成像单元110、210捕捉图像并生成图像数据。数字相机100和装配有相机的移动电话200可以对由成像单元110、210生成的图像数据执行图像处理。在本实施例中,将说明图像处理装置是数字相机100的示例。
(图像处理装置的配置示例)
图2是图示出作为图像处理装置的示例的数字相机100的配置示例的示图。数字相机100包括成像电路10和图像处理电路20。
成像电路10(或成像单元110)是以图像数据的形式输出所捕捉图像的成像元件,例如,CCD(电荷耦合器件)或CMOS(互补金属氧化物半导体)。
图像处理电路20例如对图像数据执行各种类型的图像处理。图像处理电路20包括CPU 21和图像处理计算电路30。图像处理计算电路30包括图像数据输入控制电路31、图像计算电路32、存储器33、地址解码器电路34和调度电路35。
在上电之后,例如,CPU(中央处理单元)21向地址解码器电路34输出各种命令。下面将说明这些各种命令。
图像数据输入控制电路(或图像数据输入控制单元)31接收由成像电路10输出的图像数据的输入,并且基于由调度电路35输出的“下一帧输入之前的等待行的数目”(以下称为等待行数)输出下一帧的图像数据。例如,等待行数可以是多个等待行的像素数目,在该情况中,等待行数是针对一个等待行中包括的像素数目的“等待像素数目”。
图3是图示出图像数据输入控制电路31的配置示例的示图。图像数据输入控制电路31包括存储器311和控制单元312。
存储器311存储由成像电路10输出的图像数据,并且向图像计算电路32输出在控制单元312的控制下存储的图像数据。
例如,控制单元312以如下方式控制存储器311:在从存储器311输出前一帧的最后一行之后,存储在存储器311中的下一帧的引导行(leading line)的图像数据在被延迟与等待行数相对应的行数后(或者在与等待行相对应的时间过去之后)被输出。后面将进一步详细说明该操作。
返回图2,图像计算电路(图像计算单元、图像计算装置)32是用于对图像数据执行各种类型的图像处理的电路。在图2的示例中,图像计算电路32包括增益处理电路321、RGB/YUV转换电路322、平滑电路323、颜色校正处理电路324和带通滤波器电路325。
增益处理电路321例如是放大器,其将输入图像数据的像素值增大到给定值或更高,从而维持将被输出的图像数据的给定像素值(或灰度值)。例如,由数字相机100在暗处捕捉的图像的图像数据具有等于或低于给定值的像素值。因此,增益处理电路321允许获取具有不低于给定像素值的像素值的图像数据。
RGB/YUV转换电路322在增益处理之后,执行从RGB图像数据到YUV图像数据的颜色转换。RGB/YUV转换电路322例如支持用于转换的公式,从而使得向YUV图像数据的颜色转换通过向所输入的RGB图像数据应用这些公式来实现。例如,可以通过转换为YUV图像数据而将图像数据显示在显示单元(未示出)上。
平滑电路323在颜色转换之后,通过将感兴趣的像素周围的像素的像素值与某系数(例如,平滑系数)或给定公式相乘来对与其它像素的像素值明显不同的像素值进行平均化或将其去除。
颜色校正处理电路324例如通过利用颜色校正处理电路324所支持的公式或各种系数(例如,颜色校正系数)提升或降低感兴趣的像素的每个相邻像素的像素值来调节所捕捉图像的色度(hue)。
例如由电阻器或线圈组成的带通滤波器电路325让颜色校正后的图像数据中的特定波长频带的图像数据通过,从而允许显示用户可以更容易看到的图像。
在本实施例中,图像计算电路32的各种图像处理块321至325执行矩阵处理。图4A和图4B是图示出矩阵处理的示例的示图。在矩阵处理中,例如,利用跨越多行的多个像素的像素值来执行计算。在矩阵处理中,例如,执行利用矩阵区域内的像素值的处理。矩阵在这里是在图像帧的水平和垂直方向上由正方形表示的多个像素的区域。例如,当第一方向上的像素数目与第二方向上的像素数目相等时,矩阵表示第一方向上的多个像素和与第一方向正交的第二方向上的多个像素。替代地,例如,矩阵可以表示横跨多行布置的多个像素的区域、针对每行布置的多个像素的区域,或者每个区域中的像素数目相同的多个区域。
在图4A和图4B的示例中,3个像素×3个像素是矩阵区域,从而使得 中心像素(b,2)的像素值被作为矩阵处理的结果输出。除了矩阵处理以外,还可以执行任何其它处理,只要该处理可以横跨多行被执行。
例如,增益处理电路321通过例如将矩阵区域中的九个像素的像素值平均化或与系数相乘来对中心像素的像素值执行增益处理。RGB/YUV转换电路322例如将九个像素的像素值代入一公式,从而对中心像素的像素值执行到YUV像素值的转换。平滑电路323、颜色校正处理电路324和带通滤波器电路325利用矩阵区域中的多个像素类似地执行处理。矩阵处理本身可以是图像处理块321至325中的图像处理的实例。替代地,矩阵处理可以在每个图像处理块321至325中被执行,然后各个图像处理被实现。图像处理例如包括矩阵处理。
除了3个像素×3个像素以外,矩阵处理中的矩阵区域还可以是7×7、9×9、11×11等,只要像素数目的区域使得中心像素被布置在该区域中即可。后面将进一步详细描述矩阵处理。
返回图2,存储器33存储由带通滤波器电路325输出的图像数据。存储器33可以在给定时间段期间存储图像数据,或者可以存储图像数据直到从CPU 21等输入删除指令为止。存储器33可被设置为可附接到数字相机100/可从数字相机100移除。当在数字相机100的显示单元上显示图像时,例如,显示单元被控制为使得图像数据被从存储器33读取并被显示在显示单元上。
响应于来自CPU 21的命令,地址解码器电路34例如将该命令中包含的数据存储在地址解码器电路34中的存储器的某地址处,并且将所存储的数据输出给调度电路35和/或图像计算电路32。
图5是图示出命令的示例的示图。由CPU 21输出的一个命令是“地址”和“数据”的集合。例如,“地址”指示地址解码器电路34的存储器中的地址,并且预先建立的命令的“数据”被存储在该地址处。命令中的“数据”表示命令的值。在图5所示的示例中,地址“0001”表示矩阵大小值被保存在地址解码器电路34中的地址。矩阵大小值(例如,在3×3像素矩阵的情况中,“3”被存储)被存储在该地址处。命令可以是指示边缘处理存在与否的命令。边缘处理是在矩阵处理执行期间,在一些实例 中被执行,而在一些实例中不被执行的处理。因此,指定边缘处理的命令包括表示边缘处理存在与否的数据形式的值(例如,如果值为“1”则边缘处理存在,如果值为“0”则边缘处理不存在)。后面将进一步说明边缘处理。在数字相机100上电之后,例如,CPU 21将各种命令输出给地址解码器电路34,如上所述。
返回图2,地址解码器电路34接收由CPU 21输出的命令的输入,针对每种类型的命令将命令中包含的数据存储在某地址处,并且根据命令的类型输出包含在命令中的数据。例如,地址解码器电路34将矩阵大小值和边缘处理存在与否输出给调度电路35,将平滑系数输出给平滑电路323,并且将颜色校正系数输出给颜色校正处理电路324。
调度电路(调度单元、调度装置)35基于矩阵大小值和边缘处理存在与否来计算等待行数,并且将计算出的等待行数输出给图像数据输入控制电路31。
图6是图示出调度电路35的配置示例的示图。调度电路35包括删除行数计算单元351、扩展行数计算单元352和等待行数计算单元353。
删除行数计算单元351基于矩阵大小值和边缘处理存在与否来计算删除行的数目,并且将计算出的删除行的数目输出给等待行数计算单元353。
(矩阵处理)
将描述矩阵处理来说明删除行数。图7A至图11D是图示出矩阵处理的示例的示图。在这些附图中,图7A至图7D是用于说明在边缘处理被执行的情况中3×3像素矩阵处理的操作示例的示图。
执行矩阵处理的图像处理块321至325例如不可以利用未经修改的、所输入图像数据的第一行中的像素(a,1)作为中心像素来创建针对该像素的3×3像素矩阵(例如,图7B)。因此,图像处理块321至325通过复制图像帧的第一行和最后一行以及第一列和最后一列中的像素的像素值来执行内插,从而扩展该图像帧(例如,如图7C所示)。即,该图像帧的边缘处的像素通过复制被扩展。通过以像素(a,1)作为中心像素,可以创建九像素矩阵((a,1)至(a,3)、(a,1)至(a,3)以及(b,1)至(b,3))。类似 地,通过以最后一行中的像素(h,8)作为中心像素,可以创建九像素矩阵((g,7)至(g,8)、(h,7)至(h,8)以及(h,7)至(h,8))。
在矩阵创建之后,图像处理块321至325利用所创建的矩阵来计算中心像素的像素值。
当输出输出图像数据时,图像处理块321至325通过以像素的数目与输入图像数据中的像素数目相等的方式执行处理来输出图像数据(例如,图7D)。
因此,边缘处理是利用所复制(拷贝)的像素值发起矩阵处理的处理。替代地,边缘处理是这样的处理,其通过复制帧边缘(周边)处的像素进行内插来发起矩阵处理,从而使得此后的输出图像数据具有与输入图像数据相同数目的像素。
图8A至图8G图示出了在边缘处理存在的情况中由图像处理块321至325执行的3×3像素矩阵处理中的波形示图的示例。图8A图示出了一行的图像数据被输入从而使得该图像数据在“高电平”(HIGH)被输入的定时。图像处理块321至325中的每个都设置有例如输入缓冲器和两个行缓冲器(LB-1和LB-2)。图8B至图8D图示出了其行被输入给输入缓冲器和两个行缓冲器的图像数据。图8E图示出了一行的图像数据被输出从而使得该图像数据在“高电平”(HIGH)被输入的定时。
与行“a”的图像数据的输入(图8D)同时,图像处理块321至325例如将图像数据写入输入缓冲器,然后将图像数据写入行缓冲器LB-1(图8C),如图8C和图8D所示。结果,第一行“a”中的图像数据被复制,并且该图像帧被扩展(例如,图7C)。对于最后一行“h”,图像数据在下一写入输入缓冲器的定时处被写入行缓冲器LB-1。
当输入第二行“b”的图像数据时,例如,行“a”的图像数据被存储在两个行缓冲器LB-1、LB-2中,并且行“b”的图像数据被存储在输入缓冲器中。因此,可以利用每行“a”、“a”和“b”来创建矩阵。因此,矩阵处理针对第一行“a”被执行,并且第一行的输出数据“a”可被输出(例如,图8E)。此后,按行的顺序重复上面的处理。
图8F和图8G与图8A和图8E相同,但是以更形象化的方式图示出 了输入-输出关系。关注具有边缘处理的3×3像素矩阵处理中的引导行,在输入定时和输出定时处,图像数据在一行被删除的情况下被输出,如图8F和图8G所示。在输出定时处,图像数据基于矩阵处理关系在相对于输入定时被延迟一行之后被输出。因此取决于矩阵处理的处理时间的影响,存在这样的实例,其中,在矩阵处理中,引导行的输出波形在相对于输入波形某一行被删除(或延迟)之后被输出。相差的行数例如被称为删除行数。在3×3像素矩阵处理中,例如,在边缘处理被执行的情况中,删除行数为“1”。
关注最后一行的波形,图8F和图8G是在输入了最后一行“h”的图像数据之后的一行的输出波形。在此情况中,同样,在输入了最后一行的图像数据之后,矩阵被创建(例如,图8C和图8D)。因此,在输出图像数据的输出定时处相对于输入图像数据发生了一行的延迟。取决于矩阵处理的处理时间的影响,存在这样的实例,其中,在该矩阵处理中,最后一行的输出波形在相对于输入波形被扩展(或延迟)一定行数之后被输出。相差的行数例如被称为扩展行数。在3×3像素矩阵处理中,例如,在边缘处理被执行的情况中,扩展行数为“1”。
接下来将说明在不执行边缘处理的情况中的3×3像素矩阵处理。图9A至图9G是图示出没有边缘处理的矩阵处理的示例。
图像处理块321至325例如不可以在将被处理的像素位于图像帧的边缘的情况中(例如,像素(a,1))创建矩阵。在此情况中,处理像素是从图像帧的边缘向内一个像素的像素(例如,像素(b,2))。不存在边缘处理在此表示这样的处理,其中,例如,图像帧的边缘附近的像素被擦除,并且基于图像帧的边缘处的像素不被处理并且从该边缘向内一个像素的像素被处理的关系来输出结果。如图9C所示,在没有边缘处理时,阴影区域中的像素被擦除,并且向内一个像素的像素的像素值作为输出数据被输出。在不执行边缘处理的实例中利用多个像素获得中心像素的像素值的特征与执行边缘处理的实例中相同(例如,图9D至图9G)。
图10A至图10G是图示出没有边缘处理的矩阵处理的波形示图的示例的示图。图10A图示出了一行图像数据被输入从而使得该图像数据在“高 电平”(HIGH)被输入给图像处理块321至325的定时。图10B至图10D图示出了图像数据的哪一行被输入。图10E图示出了一行图像数据被输出从而使得图像数据在“高电平”(HIGH)被输出的定时。
例如,行“a”的图像数据在图像帧的初始行“a”被输入的定时处被存储在输入缓冲器中。接下来,在下一行“b”的图像数据被输入的定时处,存储在输入缓冲器中的行“a”的图像数据被存储在行缓冲器LB-1中,并且所输入的行“b”的图像数据被存储在输入缓冲器中。接下来,在行“c”的图像数据被输入的定时处,行“c”的图像数据被存储在输入缓冲器中,行“b”的图像数据被存储在行缓冲器LB-1中,并且行“a”的图像数据被存储在行缓冲器LB-2中。三行图像数据由此被放在一起,从而使得图像处理块321至325可以创建矩阵(在图9D和图9F中)。例如,可以在行“c”的图像数据被输入的定时处输出初始行“b”。此后按照行的顺序重复以上处理。
图10F和图10G与图10A和图10E相同,但是以更形象化的方式图示出了输入-输出关系。关注引导行,如图10F和图10G所示,在输入-输出关系中,输出波形相对于输入波形被延迟了两行。因此,在没有边缘处理的3×3像素矩阵处理中,删除行数为“2”。关注输出行数,输入波形和输出波形在同一定时处结束。因此,在此情况中扩展行数为“0”。
总之,在3×3像素矩阵处理中,如果执行边缘处理,则删除行数为“1”并且扩展行数为“1”。在3×3像素矩阵处理中,如果不执行边缘处理,则删除行数为“2”并且扩展行数为“0”。
因此,对于相同的矩阵大小,删除行数和扩展行数可以取决于边缘处理是否存在而取不同的值。删除行数和扩展行数可以根据矩阵大小而取不同的值。图11A和图11B是图示出在5×5像素矩阵处理中执行边缘处理的情况中输入波形和输出波形的示例的示图。图11C和图11D是图示出在没有边缘处理的情况中5×5像素矩阵处理中的输入波形和输出波形的示例的示图。
在5×5像素矩阵处理中执行边缘处理的情况中,例如,通过对初始一行的输入执行复制两次来创建两行图像数据,并且当第三行图像数据输入 时,针对该初始的第一行创建矩阵。如图11B所示,删除行数为“2”。在最后一行中,同样,通过在最后一行输入之后执行复制两次来创建两行图像数据。因此,扩展行数为“2”。
图11C和图11D是图示出没有边缘处理的5×5像素矩阵处理中的输入波形和输出波形之间的关系的示图。将省略对该情况的详细说明,但是删除行数为“4”并且扩展行数为“0”。
因此,删除行数和扩展行数取决于矩阵大小和边缘处理存在与否而不同。返回图6,删除行数计算单元351基于所输入的矩阵大小值和边缘处理存在与否来计算上述删除行数。后面将进一步详细说明该计算处理。
扩展行数计算单元352基于由地址解码器电路34输出的矩阵大小值和边缘处理存在与否来计算上述扩展行数。后面将进一步详细说明该计算处理。
等待行数计算单元353基于计算出的删除行数和扩展行数来计算等待行数,并且将结果输出给图像数据输入控制电路31。后面将进一步详细说明该等待行数计算处理。
(图像处理装置的操作示例)
接下来说明操作示例。图12是图示出调度电路35中的等待行数计算处理的操作示例的流程图。
等待行数计算处理例如在上电时被执行,因为CPU 21在那时输出命令。等待行数计算处理与图像数据处理(由图像计算电路32执行的图像处理)相独立地被执行。在对图像数据执行图像处理之前执行等待行数计算处理。等待行数被输出给图像数据输入控制电路31。
在等待行数计算处理中,基于图像处理块321至325的矩阵处理中的删除行数和扩展行数,针对执行图像处理的图像计算电路32的每个图像处理块321至325执行计算。
图14是图示出等待行计算处理中的处理对象的示例的示图。在该等待行数计算处理中,根据图像计算电路32中的图像处理块的数目来执行多次循环(S13至S18)。在通过重复循环累积等待行数的同时在每次循环中计算等待行数,以便在最后一次循环完成时计算出最终的行数。例 如,调度电路35在初始循环中计算RGB/YUV转换电路322与增益处理电路321的间隔(处理I)中的等待行数。调度电路35在下一循环中计算RGB/YUV转换电路322与平滑电路323的间隔(处II)中的等待行数。调度电路35以处理I至处理IV为处理对象,基于等待行数计算处理来计算等待行数。
图15是图示出等待行数计算处理的示例的示图,其中,用于计算等待行数的处理取决于从处理I到处理IV的部分而被执行。如图15所示,在等待行计算处理的处理I中,计算是基于增益处理电路321的矩阵处理(图15中的“处理A”)中的删除行数以及作为下一处理块的RGB/YUV转换电路322中的矩阵处理(图15中的“处理B”)中的扩展行数来执行的。在处理II中,等待行数是基于RGB/YUV转换电路322中的矩阵处理(“处理B”)中的删除行数以及平滑电路323中的矩阵处理(图15中的“处理C”)中的扩展行数来计算的。在处理III和处理IV中,等待行数计算处理是利用如图15所示的删除行数和扩展行数作为处理对象被执行的。后面将进一步说明在不参考同一块而参考下一矩阵处理块的同时来执行计算的原因。
在图15所示的示例中,增益处理电路321执行没有边缘处理的3×3像素矩阵处理的矩阵处理(“处理A”)。RGB/YUV转换电路322执行具有边缘处理的9×9矩阵处理(“处理B”)。平滑电路323执行具有边缘处理的5×5矩阵处理(“处理C”),颜色校正处理电路324处理具有边缘处理的11×11像素矩阵处理(“处理D”),并且带通滤波器电路325处理没有边缘处理的5×5像素矩阵处理(“处理E”)。
作为下面描述的删除行计算处理和扩展行计算处理的结果,“处理A”中的删除行数被计算为“2”,并且扩展行数被计算为“0”。“处理B”中计算出的删除行数为“4”,并且计算出的扩展行数为“4”。图15图示出了在每个计算处理中计算出的结果。
接下来返回图12说明等待行数计算处理。为了更容易理解,图像处理块321至325中的矩阵处理将是上面描述的示例(其中,处理A是没有边缘处理的3×3像素处理,处理B是具有边缘处理的9×9像素处理,等 等)。如图15所示的删除行数和扩展行数是根据下面描述的计算处理来计算的。
当等待行数计算处理开始时(S10),调度电路35将下一帧输入之前的等待行数设为“0”(S11)。例如,等待行数计算单元353将作为初始值的等待行数设为“0”。
接下来,调度电路35将循环计数k设为(n-1),其中,n是每个执行处理的循环次数(S12)。例如,该设置由等待行数计算单元353执行。例如,对于初始循环,等待行数计算单元353中的处理对象是处理I。
接下来,调度电路35执行删除行数计算处理(S13)。该处理例如由删除行数计算单元351执行。
图13A是图示出删除行数计算处理的操作示例的流程图。当处理开始时(S131),删除行数计算单元351检查如由地址解码器电路34输出的边缘处理是否存在(S132)。
如果存在边缘处理,则删除行数计算单元351计算(矩阵大小值/2(在小数点处向下舍入))作为删除行数(S132中为“是”、S133)。
如果不存在边缘处理,则删除行数计算单元351计算(矩阵大小值/2+1(在小数点处向下舍入))作为删除行数(S132中为“否”、S134)。
在图15所示的示例中,例如,处理I的“处理A”(增益处理电路321)中没有边缘处理,并且矩阵大小值为“3”(表示3×3个像素)。因此,在S132中获得否,并且S134的处理被执行。在此情况中,删除行数被计算为“3/2+1”,在小数点处向下舍入成“2”。
一旦删除行数计算单元351计算出删除行数(S133、S134),删除行计算处理就结束(S135)。
返回图12,调度电路35接下来执行紧邻此后的矩阵处理块的扩展行数计算处理(S14)。紧邻此后的矩阵处理块例如表示相对于作为删除行数计算处理(S13)所计算的删除行数的对象的图像处理块来在其处执行下一矩阵处理的图像处理块。在删除行数在增益处理电路321中被计算出 的情况中(S13),紧邻的后续矩阵处理块是RGB/YUV转换电路322。
图13B是图示出扩展行数计算处理的操作示例的流程图。当处理开始时(S141),扩展行数计算单元352检查如由地址解码器电路34输出的边缘处理是否存在(S142)。
如果存在边缘处理,则扩展行数计算单元352计算(矩阵大小值/2(在小数点处向下舍入))作为扩展行数(S142中为“是”、S143)。
如果不存在边缘处理,则扩展行数计算单元352将0计算作为扩展行数(S142中为“否”、S144)。如果不存在边缘处理,如图10G和图11D所示,可以在最后一行输入中创建矩阵,并且矩阵处理可以终止。因此,扩展行数为“0”。
在图15的示例中,“处理B”(RGB/YUV转换电路322)中的矩阵处理是具有边缘处理的9×9矩阵处理。因此,在S142中获得“是”,并且在S133中计算出扩展行数“4”。
返回图12,接下来,等待行数计算单元353将在前一循环(S17)中计算出的等待行数与删除行数相加(S15)。在初始循环(处理I)中,“0”被设置为等待行数的初始值(S11)。因此,等待行数计算单元353将“0”与删除行数“2”相加。
接下来,等待行数计算单元353从在S15中计算出的(删除行数+等待行数=X)中减去在S14中计算出的扩展行数,以判断相减值是否等于或小于“0”(S16)。
如下面详细说明的,可能存在这样的部分,例如,其中,当相减值等于或小于“0”时,在每个处理块中,第一帧的最后一行的输出定时与第二帧的引导行的输入定时重叠。反之,会出现这样的实例,其中,例如,当相减值等于或大于“1”时,第二帧的引导行在第一帧的最后一行的输出定时之后被输入。
基于S16的处理,调度电路35例如判断在各帧之间是否存在一定行数的延迟,或者判断等待行数是否将被计算出来。
当相减值等于或小于“0”时(S16中为是),调度电路35计算相减值作为等待行数(S17)。例如,该计算由等待行数计算单元353执行, 以使得当相减值为“-2”时“2”被计算为等待行数,并且当相减值为“-5”时“5”被计算为等待行数。
在图15的示例中,在处理I中增益处理电路321的矩阵处理中的删除行数为“2”(S13),RGB/YUV转换电路322中的矩阵处理的扩展行数为“4”(S14),则相减值为“-2”,并且“2”被计算作为等待行数(S17)。等待行数计算单元353将计算出的等待行数与直到前一循环时计算出的等待行数相加。在处理I的示例中,计算出的等待行数“2”被与由于初始循环而在S11中设置的“0”相加。
如果相减值等于或小于“0”(S16中为否),则调度电路35不计算等待行数,而执行S18的处理。在帧之间,如果相减值等于或小于“0”,则如上所述,下一帧的引导行在前一帧的最后一行输出之后被输入。因此,调度电路35可以省略等待行数的计算(维持直到前一循环时计算出的等待行数)。
调度电路35将等待行数相加(S17),或者如果相减值不是“0”(S16中为否),则将下一k设为(k-1),以从循环计数中减去一次循环,并且判断所设置的k是否为“0”(S17)。在图15的示例中,判断从处理I到处理IV的循环是否结束。
一旦所有处理结束(当k=0,S18中为是),调度电路35就将通过直到该时刻时的循环而累积的等待行数建立为等待行数(S19),将等待行数输出给图像数据输入控制电路31,并且终止等待行数计算处理(S20)。
如果处理并未完全结束(当k不为0,S18中为否),则处理再次移到S13,并且等待行数计算单元353重复上述处理。
在图15的示例中,在处理I完成之后,从S13到S18的循环再次被重复。在第二次循环中,计算处理II的等待行数。在此情况中,X是删除行数“4”+等待行数“2”=“6”,并且减去扩展行数“2”的结果不等于或小于“0”(S16中为否)。因此,不计算等待行数。在此情况中,等待行数的累积值保持为“2”。
在第三次循环中,计算处理III的等待行数。这里,X=删除行数“2” +等待行数“2”=“4”,并且当减去扩展行数“5”时获得“-1”(S16中为是)。在此情况中,等待行数计算单元353计算出等待行数为“1”,并且作为与到此为止计算出的等待行数“2”相加的结果,将等待行数取为“3”。
在第四次循环中,计算处理IV的等待行数。这里,X=删除行数“5”+等待行数“3”=“8”。减去扩展行数“0”时得到不等于或小于“0”的“8”(S16中为否)。在此情况中,等待行数计算单元353计算处理对象的等待行数(k=0,S18中为是),并且等待行数“3”是最终的等待行数(S19)。
等待行数计算单元353将等待行数“3”作为“下一帧输入之前的等待行数”输出给图像数据输入控制电路31。在所输入的图像数据的该帧的最后一行输出之后,图像数据输入控制电路31在下一定时处不输出第二帧的引导行,而是执行“3”行的延迟,并且将第二帧的引导行输出给增益处理电路321。结果,这使得能够在前一帧的图像数据输出之后输入下一帧的图像数据,同时在图像计算电路32的所有图像处理块(增益处理电路321至带通滤波器电路325)中维持图像数据的一致性。按照输入帧顺序依次被执行各个图像处理的图像数据被存储在存储器33中。
图16A至图16G是图示出当等待行数为“3”时图像处理块中的波形的示例的示图。如图16A至图16G中的圆圈内的箭头所指示的,在图像处理块中不存在第一帧的输出与第二帧的输入相重叠的定时。例如,在处理D(颜色校正处理电路324)中,第一帧的图像数据的最后一行被输出,然后,在下一定时处,第二帧的图像数据的引导行被输入,如图16E所示。图16A至图16G所示的波形图指示出在本实施例中数据一致性得到维持。
在本图像处理装置中,不执行判断输入图像数据的所有帧中的所有像素的处理。替代地,例如仅执行计算删除行数并且比较相减值的处理。因此,与判断所有像素的情况相比,可以减少处理时间和功耗。
(计算相减值的原因等)
接下来将说明在其它考虑因素中基于在等待行数计算处理(例如,在 图12中)中计算出的相减值来计算(S16,S17)等待行数的原因。
图17A至图18E是图示出图像处理块321至324中的波形示例的示图。图17A图示出了在没有等待行时以连续的定时将帧输入给增益处理电路321(“处理A”)的情况中的帧之间的波形示图的示例。图15的示例将被用作图像处理块321至324中的矩阵处理的示例。
当图像数据输入控制电路31在连续的定时处输出每帧而不延迟多个等待行时,图像数据在诸如图17A所示的定时之类的定时处被输入给增益处理电路321。如图17A所示,增益处理电路321在已向其输入了第一帧的最后一行之后,在下一定时处输入第二帧的引导行。
在此情况中,增益处理电路321中的删除行数为“2”,并且由增益处理电路321输出的第一帧与第二帧之间的帧间波形图例如为图17B所示的波形图。在输入-输出关系中,第二帧的引导行以“两行”被删除的方式被输出。
例如,该波形被原样输入给RGB/YUV转换电路322。在RGB/YUV转换电路322(“处理B”)中,此时的扩展行数为“4”。因此,由RGB/YUV转换电路322输出的波形图例如为图17C所示的波形图。
关注图17B和图17C,第二帧的图像数据在第一帧的图像数据的输出完全结束之前(图17C)被输入给(图17B)RGB/YUV转换电路322。RGB/YUV转换电路322在第一帧的最后两行与第二帧的初始两行彼此重叠的定时处执行处理。在这样的情况中,该处理是在帧之间缺乏图像数据一致性的状态中被执行的。
在等待行数计算处理中(例如,图12),判断相减值(X-扩展行数)是否等于或小于“0”(S16)。在该示例的情况中,删除行数为“4”,扩展行数为“2”并且相减值为“-2”。该值“-2”指示重叠行数为“2”行。
因此,调度电路35设置等待行数=2并且将等待行数输出给图像数据输入控制电路31。图像数据输入控制电路31将下一帧的输出定时延迟“2”行,并且输出下一帧。在增益处理电路321中,同样,下一帧被延迟两行输出。图17D是图示出增益处理电路321中第一帧和第二帧的输出 波形(或RGB/YUV转换电路322的输入波形)的示例的示图。图17C与图17D之间的比较揭示出在RGB/YUV转换电路322中,第二帧的引导行在第一帧的最后一行输出(图17C)之后被输入(图17D)。由此使得帧之间的图像数据一致性得到维持。
图18A和图18B图示出了在等待行数=2的情况中在平滑电路323(“处理C”)中第一帧和第二帧之间的帧间波形图的示例。
如图18A所示,平滑电路323中的输入波形是按原样输入的、RGB/YUV转换电路322的输出波形。在平滑电路323中扩展行数被计算为“2”(例如,图13B,图15)。因此,平滑电路323的输出波形变为例如图18B所示的波形图。
图18A与图18B之间的比较指示出在平滑电路323中,第二帧的引导行在第一帧的最后一行输出(图18B)之后被输入(图18A)。从而,维持了帧一致性。等待行数计算处理中的相减值为“4”,其不等于或小于“0”。因此不必计算等待行数(图12的S16中为否)。如图18A和图18B所示,相减值“4”例如指示出在输出一帧的最后一行之后在输入下一帧的引导行之前平滑电路323中的延迟的延迟行数。
图18C和图18D图示出了在等待行数=2的情况中在颜色校正处理电路324(“处理D”)中第一帧和第二帧之间的帧间波形图的示例。
如图18C所示,平滑电路323的输出被按原样输入给颜色校正处理电路324。在颜色校正处理电路324中扩展行数被计算为“5”(例如,图13B,图15)。因此,颜色校正处理电路324的输出波形例如变为如图18D所示的波形。
图18C与图18D之间的比较指示出在颜色校正处理电路324中,在第一帧的最后一行被输出时(图18D),第二帧的引导行被输出(图18C)。在此示例中,出现了一行重叠时段。在等待行数计算处理中,相减值被计算为“-1”,其等于或小于“0”(图12的S16中为是)。
因此,调度电路35将相减值的“1”与等待行数相加,并且计算将总和“3”作为等待行数。如图18E所示,作为颜色校正处理电路324中的结果维持了一致性,这是因为第二帧的引导行在第一帧的最后一行输出 (图18D)之后被输入(图18E)。
因此,在等待行计算处理中,相减值的计算例如涉及检查(S16)帧之间前一帧的最后一行与下一帧的引导行是否彼此重叠,并且如果是,则计算重叠行数作为等待行数(S17)。
(其它示例)
在上述示例中,作为图像处理装置的示例已说明了数字相机100。诸如移动电话或PDA(个人数字助理)之类的信息便携终端也可被用作图像处理装置。上面说明的示例涉及被配置为捕捉图像的数字相机100或装配有相机的移动电话200,然而这些示例也适用于经由无线通信接收图像数据的诸如移动电话或PDA之类的信息便携终端。
图19是图示出PDA 300的配置示例的示图。PDA 300还包括通信单元60。通信单元60经由无线通信从诸如基站之类的外部装置接收图像数据,并且将图像数据输出给图像处理电路20。通信单元60还可以不通过无线通信而通过有线通信从外部装置接收图像数据。在此情况中,图19所示的图像处理装置可以是个人计算机,而非PDA。
在图19或图2所示的图像处理装置中,存储器33可以具有随机可存取盘类记录介质形式的存储单元,例如,硬盘、DVD(数字视频盘)等。在此情况中,图像处理装置可以是具有内置硬盘或DVD的记录和再现装置。本实施例可被用在任何装置中,只要后者包括图像处理电路20即可。替代地,本实施例可被用在任何装置中,只要该装置包括图像处理电路20或图像处理计算电路30形式的图像处理装置即可。
本发明成功提供了能够维持图像数据一致性的图像处理装置、图像处理方法和调度装置。同样,本发明成功提供了能够改善处理时间和功耗的图像处理装置、图像处理方法和调度装置。
在此所阐述的所有示例和条件语言希望用于教导的目的,以辅助读者理解本发明和由发明人为了深化技术所贡献的概念,并且被构造为既不限于这些具体阐述的示例和条件,也不限于与显示本发明的优势和劣势有关的说明书中的这些示例的组织。虽然已详细描述了本发明的一个或多个实施例,但是应当明白,可以在不脱离本发明的精神和范围的情况下对其作出各种改变、替代和变更。