图像处理装置、图像处理方法和车辆控制装置与流程

文档序号:11176802阅读:761来源:国知局
图像处理装置、图像处理方法和车辆控制装置与流程

相关申请的交叉引用

2016年3月25日提交的日本专利申请第2016-061868号的公开的全部内容通过引用合并于此,该公开包括说明书、附图和摘要。



背景技术:

本发明涉及图像处理装置、图像处理方法和车辆控制装置。

对执行图像处理和音频处理的数据处理装置的高速操作的需求逐年提高。特别地,对于应用于车辆的图像处理装置和图像识别装置,不仅需要高速处理而且需要准确地检测和识别物体的技术。

近年来由于内容的丰富和多媒体的发展,在图像数据增大之后,该趋势增长越来越多。

特别地,需要巨量的图像数据和巨大数量的处理次数来根据前方监控系统中的高密度像素信息计算运动信息和距离信息。因此,可以预料此后将进一步需要高性能。

为了满足需求,日本未经审查的专利申请公开第2003-296096号公开了通过流水线处理执行并行处理的算术装置。在日本未经审查的专利申请公开第2003-296096号中多个算术单元串联耦合。前级算术单元的算术运算数据输出至后级算术单元。

日本未经审查的专利申请公开第2002-182905号公开了通过多个算术元件执行算术指令的装置。在日本未经审查的专利申请公开第2002-182905号中,可以直接从算术元件中的每一个算术元件访问寄存器。寄存器保存每个算术元件的算术运算结果。



技术实现要素:

近年来,为了控制复杂内容,需要算术单元通过使用另一个算术单元的算术运算结果执行算术运算的复杂控制。每个算术单元可以参考在前级算术单元之前布置的算术单元的处理结果。在该情况下,在日本未经审查的专利申请公开第2003-296096号中公开的流水线配置中,需要将处理结果作为输入再次分配给后级算术单元。当流水线级的数量很大时,指令系统变得复杂。此外,存在选择寄存器的控制复杂化的问题。

此外,当将日本未经审查的专利申请公开第2002-182905号中描述的方法应用于在“accurateandefficientstereoprocessingbysemi-globalmatchingandmutualinformation”(因特网搜索:http://www.robotic.dlr.de/fileadmin/robotic/hirschmu/cvpr05hh.pdf)中描述的立体图像时,出现保存中间生成数据的寄存器的数量增加的问题。

在诸如立体处理和光学流处理的处理中,存在与目标图像比较的比较图像。在立体处理中,不同相机处理相同时间的图像。在光学流处理中,相同相机处理不同时间的图像。考虑通过使用两个图像的像素数据执行算术运算的情况。由多个级对流水线处理进行配置。存在放大和选择被在每个级中重复的许多算术运算。

放大是计算许多选择候选的算术运算。选择是从多个选择候选当中选择最优数据的算术运算。因此,在诸如立体处理和光学流处理的处理中,生成中间生成的巨量选择候选或者用于生成选择候选的巨量数据。因此,当采用在一维通路上执行应用于立体处理和光学流处理的函数结果的优化计算的方法时,出现保存中间生成数据的寄存器的数量增加的问题。

其它目的和新颖的特性将通过附图和本说明书的描述而变得清楚。

根据实施例,图像处理装置包括并行布置的多个流水线。流水线中的每一个流水线具有多级处理单元。处理单元中的每一个处理单元包括基于与第一图像的目标像素相对应的目标像素数据和第二图像中与目标像素的周边像素相对应的周边像素数据执行第一算术运算的第一运算器、基于根据第一运算器的算术运算结果的第一中间数据执行第二算术运算以及根据顺序地改变周边像素时的第一中间数据计算第二中间数据的第二运算器、基于第一中间数据执行第三算术运算以及根据顺序地改变周边像素时的第一中间数据计算第三中间数据的第三运算器、保存顺序地改变周边像素时的第二中间数据的寄存器以及延迟来自第三运算器的第三中间数据的延迟元件。

根据实施例,可以高效地执行图像处理。

附图说明

图1是示出安装有图像处理装置的车辆的配置的框图。

图2是示出图像处理装置的电路配置的控制框图。

图3是示出图像处理方法的流程图。

图4是示出当使用通用硬件配置时图像处理方法的图像处理步骤的处理流程。

图5是用于解释图4中的图像处理中的第一图像和第二图像的像素的图。

图6是用于解释图4中的图像处理的图。

图7是示出图6中所示的处理中的执行流程的图。

图8是用于解释使图6中的流水线处理并行化的配置的图。

图9是示出图8中所示的处理中的执行流程的图。

图10是用于解释实施例中的目标像素和周边像素的图。

图11是用于解释根据实施例的图像处理装置中的处理的概念图。

图12是示出图像处理装置的主要部分的配置的图。

图13是示出图12中所示的处理中的执行流程的图。

图14是示出图像中所包括的像素的图。

图15是用于解释像素传播的数量和像素传播方向的图。

图16是示出并行化程度与寄存器开销之间的关系的图。

图17是示出行存储器的配置的图。

图18是示意性地示出根据第二实施例的图像处理装置的处理单元的配置的图。

图19是示出图18中所示的处理中的执行流程的图。

图20是示出根据另一个实施例的图像处理装置的配置的框图。

具体实施方式

为了解释的清楚起见,适当地省略和简化下面的说明书和附图。附图中被示出为执行各种处理的功能块的组件可以通过作为硬件的cpu、存储器和其它电路来形成,以及通过作为软件加载在存储器中的程序等等来实现。因此,本领域技术人员应当理解,功能块可以通过仅硬件、仅软件或者这些的组合以各种形式来实现,以及功能块不限于硬件、软件以及这些的组合中的任何一个。在附图中,相同组件由相同参考符号指示,并且适当地省略冗余描述。

上面描述的程序可以存储在各种类型的非暂时性计算机可读介质中以及被提供给计算机。非暂时性计算机可读介质包括各种类型的有形存储介质。非暂时性计算机可读介质的示例包括磁记录介质(例如,软盘、磁带和硬盘驱动器)、磁光记录介质(例如,磁光盘)、cd-rom(只读存储器)、cd-r、cd-r/w和半导体存储器(例如,掩模rom、prom(可编程rom)、eprom(可擦除prom)、闪速rom和ram(随机存取存储器))。可以通过各种类型的暂时性计算机可读介质向计算机提供程序。暂时性计算机可读介质的示例包括电信号、光信号和电磁波。暂时性计算机可读介质可以通过有线通信路径(诸如,电线和光纤)或者无线通信路径向计算机提供程序。

根据实施例的图像处理装置是并行地对两个图像执行流水线处理的图像处理装置。即,图像处理装置包括并行布置的多个流水线。每个流水线包括多级处理单元。由处理单元计算的数据输出至后级处理单元。从而,可以执行流水线处理。

例如,两个图像是由具有两个相机的立体相机在左-右方向上同时捕获的立体图像或者由一个相机在不同时刻捕获的两个图像。可以通过在立体处理和光学流处理中执行图案匹配来获得图案的距离信息和运动信息。作为图案匹配,可以使用“accurateandefficientstereoprocessingbysemi-globalmatchingandmutualinformation”(因特网搜索:http://www.robotic.dlr.de/fileadmin/robotic/hirschmu/cvpr05hh.pdf)中描述的半全局匹配。

在实施例中,将描述对由车辆上安装的立体相机捕获的立体图像执行图像处理的示例。此外,图像处理装置用于车辆的前方监控系统。可以基于图像处理装置的图像处理结果来执行车辆的自动控制。

第一实施例

(车辆的配置)

首先,将对安装图像处理装置的车辆的配置进行描述。图1是示出车辆1的控制配置的图。车辆1具有相机2、相机ecu(电子控制单元)3、euc4、制动器ecu5、加速器ecu6和转向ecu7。车辆1不仅包括普通客车,而且包括公共汽车、卡车等等。

车辆1上安装了相机2、相机ecu3、euc4、制动器ecu5、加速器ecu6和转向ecu7。此外,车辆1设置有引擎、制动器、转向设备、车轮等等。控制单元(诸如,相机ecu3、euc4、制动器ecu5、加速器ecu6和转向ecu7)由硬件(诸如,微型计算机)和软件(诸如,加载到存储器中的程序)实现。

相机2是具有安装在车辆1的左位置和右位置中的两个相机的立体相机。相机2捕获车辆1前方的图像。由相机2的两个相机捕获的立体图像输出至相机ecu3。相机ecu3具有图像处理装置以及对立体图像执行图像处理。随后,相机ecu3将图像处理结果输出至ecu4。例如,相机ecu3基于图像处理结果计算从车辆1到障碍物的距离。

ecu4具有基于图像处理结果控制车辆1的控制单元。例如,ecu4输出控制信号以控制制动器ecu5、加速器ecu6和转向ecu7。制动器ecu5根据控制信号控制车辆1的制动器。加速器ecu6控制车辆1的加速器。转向ecu7控制车辆1的转向设备。ecu4根据图像处理结果输出控制信号,使得可以借助于系统代替人类自动地控制车辆1。

(图像处理装置的控制配置)

接着,将参照图2对作为根据实施例的图像处理装置的相机ecu3进行描述。图2是示出相机ecu3的电路配置的控制框图。相机ecu3具有至少一个cpu(中央处理单元)22、本地存储器23、外部存储器接口24、内部总线25、至少一个dsp(数字信号处理器)26、专用硬件27、接口28、相机接口29和相机接口30。

相机接口29、30是用于输入来自相机2的图像的接口。例如,由相机2的左相机捕获的图像通过相机接口29输入到相机ecu3中。由相机2的右相机捕获的图像通过相机接口30输入到相机ecu3中。在这里,将由相机2的左相机捕获的图像定义为第一图像以及将由相机2的右相机捕获的图像定义为第二图像。第一图像中的像素数量与第二图像中的像素数量相同。

内部总线25具有使cpu22、本地存储器23、外部存储器接口24、dsp26、专用硬件27、相机接口29和相机接口30耦合在一起的总线线路。接口28是用于输入来自ecu4的数据/将数据输出至ecu4的接口。外部存储器接口24是用于输入来自附图中未示出的外部存储器的数据/将数据输出至附图中未示出的外部存储器的接口。

本地存储器23存储第一图像和第二图像中包括的像素数据。cpu22整体地控制本地存储器23、外部存储器接口24、内部总线25、dsp26、专用硬件27、接口28、相机接口29和相机接口30中的每一个。

cpu22、dsp26和专用硬件27是用于实现根据实施例的图像处理方法的硬件。即,在cpu22、dsp26和专用硬件27中执行图像处理。dsp26和专用硬件27包括行存储器,该行存储器是内部存储器。

(处理流程)

接着,将参照图3对相机ecu3中的图像处理方法进行描述。图3是示出相机ecu3中的图像处理方法的流程图。

首先,相机ecu3通过相机接口29和30接收由相机2捕获的相机图像(第一图像和第二图像)(s31)。随后,相机ecu3通过外部存储器接口24在外部存储器中展开相机图像(s32)。

接着,相机ecu3在本地存储器23中展开外部存储器中展开的像素数据(s33)。

相机ecu3基于本地存储器23中存储的像素数据执行图像处理(s34)。具体地,当cpu22、dsp26和专用硬件对像素数据执行算术运算处理时执行图像处理。

相机ecu3将图像处理结果输出至ecu4等等(s35)。例如,相机ecu3基于步骤s34中由相机2捕获的第一图像和第二图像生成输出图像。输出图像由像素数量与第一图像和第二图像的像素数量相同的图像数据形成。随后,相机ecu3将输出图像作为图像处理结果输出至ecu4。可以根据需要使像素数量稀疏或者删减像素数量。

ecu4可以基于图像处理结果控制制动器ecu5、加速器ecu6和转向ecu7。从而,控制制动器、加速器和转向设备。因此,可以自动地控制车辆1。例如,通过图像处理装置获得与障碍物的距离。当确定附近有障碍物时,加速器ecu6松开加速器以及制动器ecu5应用制动器,使得车辆1减速。替换地,转向ecu7控制转向设备以便避开障碍物。

(通用配置中的处理流程)

接着,将参照图4对步骤s34中的图像处理进行描述。图4示出了由通用dsp26和专用硬件27执行步骤s34中的图像处理时的处理流程。

相机ecu3在内部存储器中展开本地存储器中展开的像素数据(s41)。内部存储器是dsp26或者专用硬件27中内置的行存储器。内部存储器存储图像处理中使用的图像数据。随后,相机ecu3对行存储器中存储的像素数据执行算术运算1(s42)以及将算术运算1的算术运算结果内部地保存在寄存器中(s43)。

接着,相机ecu3通过使用寄存器中保存的算术运算1的算术运算结果执行算术运算2(s44)以及将算术运算2的算术运算结果内部地保存在寄存器中(s45)。相机ecu3通过使用寄存器中保存的算术运算2的算术运算结果执行算术运算3(s46)以及将算术运算3的算术运算结果内部地保存在寄存器中(s47)。

图4示出了将算术运算和内部保存重复三次的流程。然而,重复次数不限于三次。算术运算1至3例如是乘法-累加(mac)运算。

(单个流水线)

在这里,将参照图5和图6对图4中所示的处理流程进行描述。图5是用于说明第一图像和第二图像的像素的图。图6是用于说明算术运算1至3的图。具体地,图6示出了在流水线的一个级中执行的处理。

如图5所示,图像被示出为第一图像r和第二图像ref。将第一图像r和第二图像ref的水平方向(横向方向)定义为x方向,以及将第一图像r和第二图像ref的垂直方向(纵向方向)定义为y方向。在这里,第一图像r和第二图像ref是沿x方向具有总像素数量d(d是大于或者等于2的整数)以及沿y方向具有总像素数量h(h是大于或者等于2的整数)的二维图像。

第一图像r和第二图像ref的像素坐标被表示为(x,y)。例如,第一图像r中的像素坐标(x,y)的像素被表示为r(x,y)。类似地,第二图像ref中的像素坐标(x+1,y)的像素被表示为ref(x+1,y)。在这里,x和y为任意正整数。第一图像r和第二图像ref的每个像素的像素数据存储在如上所述的内部存储器中。

在这里,将第一图像r的像素坐标(x,y)的像素定义为目标像素。此外,将位于像素坐标(x,y)周围的像素定义为周边像素。例如,周边像素是ref(x,y)至ref(x+d,y)的l个像素。在这里,d为任意整数。它被设计为使得周边像素包括与目标像素的像素坐标相同的像素坐标。

图6示出了对r(x,y)的目标像素执行图像处理的处理单元250。具体地,图6示出了用于根据目标像素r(x,y)的像素数据计算输出像素数据v(x,y)的图像处理。在下面的描述中,将目标像素的像素数据定义为目标像素数据,以及将周边像素的像素数据定义为周边像素数据。

首先,将对处理单元250中的处理进行描述。第一运算器251通过使用目标像素数据和周边像素数据执行算术运算。目标像素数据是与第一图像r的目标像素r(x,y)相对应的像素数据。周边像素数据是位于第二图像ref的坐标(x,y)周围的像素的像素数据。具体地,周边像素数据是与周边像素ref(x,y)至ref(x+d,y)相对应的像素数据。周边像素的数量为l,使得设置了l个第一运算器251。在这里,l=d+1(l和d是任意正整数)。l个第一运算器251中的每一个基于两个像素数据执行算术运算处理。从而,获得l个算术运算结果。由第一运算器251执行的算术运算与图4中的步骤s42相对应。

l个寄存器252中的每一个保存算术运算结果。在这里,将由l个寄存器252保存的算术运算结果表示为数据阵列sc(x,y)。数据阵列sc(x,y)由l个算术运算结果形成。将l定义为第一运算器251中的放大数量。具体地,放大数量l是第一运算器251中为一个目标像素r(x,y)生成的数据的数量。例如,将128、256等等用作放大数量l。由寄存器252进行的数据保存与图4中的步骤s43相对应。

具体地,通过相对于一个目标像素r(x,y)顺序地改变周边像素来生成数据阵列sc(x,y)。更具体地,将l个周边像素的像素数据顺序地输入到第一运算器251中。随后,基于由第一运算器251生成的放大数据生成数据阵列sc(x,y)。

随后,将数据阵列sc(x,y)输入到第二运算器253a至253d中。在图6中,设置了四个第二运算器253,以及分别将四个第二运算器253标识为第二运算器253a至253d。此外,分别将数据阵列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)从行存储器或者流水线处理的另一级输入到第二运算器253a至253d中。

第二运算器253a至253d对所输入的两个数据阵列执行第二算术运算。具体地,第二运算器253a至253d通过使用数据阵列sc(x,y)更新数据阵列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)。由第二运算器253a至253d执行的算术运算与图4中的步骤s44相对应。

例如,将数据阵列sc(x,y)和数据阵列s(x-1,y)输入到第二运算器253a中。随后,第二运算器253a通过使用数据阵列sc(x,y)更新数据阵列s(x-1,y)。类似地,第二运算器253b至253d通过使用数据阵列sc(x,y)更新s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)。将由第二运算器253a至253d生成的数据阵列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)定义为传播数据。

通过使用根据两个像素计算的放大数据来计算传播数据。具体地,第二运算器253a至253d通过使用基准像素和目标像素的放大数据来执行算术运算。例如,第二运算器253a的目标像素的坐标是(x,y)以及基准像素的坐标是(x-1,y)。类似地,第二运算器253b的目标像素的坐标是(x,y)以及基准像素的坐标是(x-1,y-1)。

如上所述,一个放大数据由l个数据阵列形成。具体地,第二运算器253a至253d通过使用从目标像素沿x方向或者y方向传播的基准像素的放大数据和目标像素的放大数据来计算传播数据。

由第二运算器253a至253d更新的数据阵列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)分别被寄存器255a至255d保存。通过寄存器255a至255d进行的数据保存与图4中的步骤s45相对应。随后,寄存器255a至255d将数据阵列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)输出至第三运算器256。

第三运算器256对数据阵列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)执行第三算术运算。通过这样做,第三运算器256计算数据阵列ss(x,y)。由第三运算器256执行的算术运算与图4中的步骤s46相对应。将由第三运算器256生成的数据阵列ss(x,y)定义为选择候选数据。

通过使用根据多个像素计算的传播数据来计算选择候选数据。在图6中,通过使用根据四个像素计算的传播数据来计算目标像素r(x,y)的选择候选数据。

第三运算器256将数据阵列ss(x,y)输出至寄存器257。寄存器257保存数据阵列ss(x,y)。通过寄存器257保存选择候选数据与步骤s47相对应。

随后,寄存器257将数据阵列ss(x,y)顺序地输出至选择器258。选择器258从数据阵列ss(x,y)选择最优像素数据以及将该像素数据输出为输出像素数据vx(x,y)。随后,在本地存储器23中展开输出像素数据vx(x,y)。

在这里,作为传播数据的数据阵列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)的数据容量趋向于很大。例如,将传播数据的容量表示为l*d*h。

图7示出了图6中所示的处理中的执行流程。在图7中,rd表示从行存储器读取像素数据,ex表示由运算器执行的算术运算,以及st表示对寄存器进行写入。每次执行两次ex。然而,可以执行一次或者三次或者更多次ex。

水平方向上的一行与流水线的每个级中的处理相对应。例如,在流水线的第一级中,通过使用r(x+4,y)作为目标像素来执行读取rd、算术运算ex、算术运算ex和写入st,以及在流水线的第二级中,通过使用r(x+3,y)作为目标像素来执行读取rd、算术运算ex、算术运算ex和写入st。也就是说,对于每个级将算术运算ex的执行时序移位。

在完成沿着x方向的一行的流水线处理之后,将流水线处理沿着y方向移位一个像素以及执行下一行的流水线处理。在图7中,在完成y坐标为y的一行的流水线处理之后,执行y坐标为y+1的一行的流水线处理。

(并行流水线)

接着,将参照图8对由并行布置的两个流水线处理图6中所示的处理的示例进行描述。在图8中,第一流水线的处理单元250和第二流水线的处理单元350并行地执行处理。

处理单元250和处理单元350具有相同的配置。处理单元250的第一运算器251、寄存器252、第二运算器253、寄存器255、第三运算器256、寄存器257和选择器258分别与处理单元350的第一运算器351、寄存器352、第二运算器353、寄存器355、第三运算器356、寄存器357和选择器358相对应。处理单元250和处理单元350的处理与图6中的处理相同,从而省略其描述。

第一流水线的处理单元250将r(x,y)定义为目标像素以及第二流水线的处理单元350将r(x,y+1)定义为目标像素。换句话说,第一流水线的处理单元250和第二流水线的处理单元350将沿着y方向相对彼此移位一个像素的像素定义为目标像素。因此,周边像素也沿y方向相对彼此移位一个像素。

图9示出了图8中所示的处理中的执行流程。在图9中,rd表示从行存储器读取像素数据,ex表示由运算器执行的算术运算,以及st表示对寄存器进行写入。每次执行两次ex。然而,可以执行一次或者三次或者更多次ex。

在图8中,两个流水线并行地执行流水线处理。具体地,第一流水线的处理单元250和第二流水线的处理单元350同时执行处理。

例如,当第一流水线的处理单元250通过将r(x,y)定义为目标像素来执行处理时,第二流水线的处理单元350通过将r(x,y+1)定义为目标像素来执行处理。换句话说,在图8中,目标像素相对于彼此移位一个像素。因此,如图9中所示,同时执行将r(x,y)定义为目标像素的处理和将r(x,y+1)定义为目标像素的处理。也就是说,第一流水线的处理单元250读取目标像素r(x,y)的像素数据的时序(rd)和第二流水线的处理单元350读取目标像素r(x,y+1)的像素数据的时序(rd)是相同的。

因此,图8中所示的并行流水线配置很难使用其它流水线的算术运算结果。换句话说,很难将通过第一流水线的处理单元250获得的传播数据用于第二流水线的处理单元350的处理。具体地,目标像素是第一流水线的处理单元250中的r(x,y)的处理中的传播数据不能用于目标像素是第二流水线的处理单元350中的目标像素r(x,y+1)的处理。

(处理单元的示意性配置)

因此,实施例使用下面描述的图像处理装置和图像处理方法。将参考图10和图11对根据实施例的图像处理装置的处理单元的配置进行描述。图10是用于解释并行布置的流水线的两个处理单元的目标像素和周边像素的图。图11是示出第一流水线的处理单元50和第二流水线的处理单元150的概况的图。

如上所述,第一流水线和第二流水线并行地执行流水线处理。例如,第一流水线和第二流水线通过使用沿着y方向相对于彼此移位一个像素的像素作为目标像素执行流水线处理。第一流水线具有多级处理单元以执行流水线处理。类似地,第二流水线具有多级处理单元以执行流水线处理。第一流水线中包括的处理单元使用y坐标为y的像素作为目标像素。第二流水线中包括的处理单元使用y坐标为y+1的像素作为目标像素。

图11示出了第一流水线中的一个级处理单元50和第二流水线中的一个级处理单元150。如图10和图11中所示,处理单元50的目标像素是r(x,y)以及处理单元150的目标像素是r(x-1,y+1)。

处理单元50包括第一运算器51、寄存器52、第二运算器53a、第三运算器54b至54d、第四运算器56、选择器58。处理单元150包括第一运算器151、寄存器152、第二运算器153a、第三运算器154b至154d、第四运算器156、寄存器157和选择器158以及延迟元件59b至59d。

首先,将对处理单元50中的处理进行描述。第一运算器51通过使用目标像素数据和周边像素数据执行第一算术运算。目标像素数据是与第一图像r的目标像素r(x,y)相对应的像素数据。周边像素数据是位于第二图像ref的坐标(x,y)周围的像素的像素数据。具体地,周边像素数据是与周边像素ref(x,y)至ref(x+d,y)相对应的像素数据。周边像素的数量为l,从而设置l个第一运算器51。l个第一运算器51中的每一个基于两个像素数据执行算术运算处理。从而,获得l个算术运算结果。

l个寄存器52中的每一个保存算术运算结果。在这里,将由l个寄存器52保存的算术运算结果表示为数据阵列sc(x,y)。数据阵列sc(x,y)由l个算术运算结果形成。将l定义为第一运算器51中的放大数量。具体地,放大数量l是第一运算器51中为一个目标像素r(x,y)生成的数据的数量。例如,将128、256等等用作放大数量l。

具体地,通过相对于一个目标像素r(x,y)顺序地改变周边像素来生成数据阵列sc(x,y)。更具体地,将l个周边像素的像素数据顺序地输入到第一运算器51中。随后,基于由第一运算器51生成的放大数据生成数据阵列sc(x,y)。

随后,将数据阵列sc(x,y)输入到第二运算器53a和第三运算器54b至54d中。在图11中,设置了三个第三运算器54以及将它们标识为第三运算器54b至54d。此外,分别将数据阵列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)从行存储器或者流水线处理的另一个级输入到第二运算器53a和第三运算器54b至54d中。

第二运算器53a和第三运算器54b至54d对所输入的两个数据阵列执行第二算术运算或者第三算术运算。具体地,第二运算器53a和第三运算器54b至54d通过使用数据阵列sc(x,y)来更新数据阵列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)。

例如,将数据阵列sc(x,y)和数据阵列s(x-1,y)输入到第二运算器53a中。随后,第二运算器53a通过使用数据阵列sc(x,y)来更新数据阵列s(x-1,y)。这是第二算术运算。

类似地,第三运算器54b至54d通过使用数据阵列sc(x,y)来更新s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)。这是第三算术运算。将由第二运算器53a和第三运算器54b至54d生成的数据阵列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)定义为传播数据。将数据阵列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)输入到第四运算器56中。

第三运算器54b至54d通过使用两个像素的放大数据执行第三算术运算。具体地,第三运算器54b至54d通过使用目标像素的放大数据和基准像素的放大数据执行第三算术运算。第三运算器54b的目标像素是r(x,y)以及第三运算器54b的基准像素是r(x-1,y-1)。第三运算器54c的目标像素是r(x,y)以及第三运算器54c的基准像素是r(x-2,y-1)。第三运算器54d的目标像素是r(x,y)以及第三运算器54d的基准像素是r(x+1,y-1)。

第四运算器56对数据阵列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)执行第四算术运算。通过这样做,第四运算器56计算数据阵列ss(x,y)。由第四运算器56执行的第四算术运算与图4中的步骤s46相对应。将由第四运算器56生成的数据阵列ss(x,y)定义为选择候选数据。

通过使用根据多个像素计算的传播数据来计算选择候选数据。在图6中,通过使用根据四个像素计算的传播数据来计算目标像素r(x,y)的选择数据。

第四运算器56将数据阵列ss(x,y)输出至寄存器57。寄存器57保存数据阵列ss(x,y)。随后,寄存器57将数据阵列ss(x,y)顺序地输出至选择器58。选择器58从数据阵列ss(x,y)选择最优像素数据以及将该像素数据输出为输出像素数据vx(x,y)。具体地,选择器58从数据阵列ss(x,y)中包括的多个数据选择最低开销数据。

接下来,将对处理单元150中的处理进行描述。第一运算器151通过使用目标像素数据和周边像素数据执行第一算术运算。目标像素数据是与第一图像r的目标像素r(x+1,y+1)相对应的像素数据。周边像素数据是位于第二图像ref的坐标(x+1,y+1)周围的像素的像素数据。具体地,周边像素数据是与周边像素ref(x-1,y)至ref(x-1+d,y)相对应的像素数据。周边像素的数量为l,从而设置l个第一运算器51。l个第一运算器51中的每一个基于两个像素数据执行算术运算处理。从而,获得l个算术运算结果。

l个寄存器152中的每一个保存算术运算结果。在这里,将由l个寄存器152保存的算术运算结果表示为数据阵列sc(x-1,y+1)。数据阵列sc(x-1,y+1)由l个算术运算结果形成。将l定义为第一运算器151中的放大数量。具体地,放大数量l是第一运算器151中为一个目标像素r(x-1,y+1)生成的数据的数量。例如,放大数量l具有128、256等等的值。第一运算器51的放大数量与第一运算器151的放大数量相同。

具体地,通过相对于一个目标像素r(x-1,y+1)顺序地改变周边像素来生成数据阵列sc(x-1,y+1)。更具体地,将l个周边像素的像素数据顺序地输入到运算器151中。随后,基于由第一运算器151生成的放大数据生成数据阵列sc(x-1,y+1)。

随后,将数据阵列sc(x-1,y+1)输入到第二运算器153a和第三运算器154b至154d中。在图11中,设置了三个第三运算器154以及将它们标识为第三运算器154b至154d。此外,分别将数据阵列s(x-2,y+1)、s(x-2,y)、s(x-3,y)和s(x,y)从行存储器或者流水线处理的另一个级输入到第二运算器153a和第三运算器154b至154d中。

第二运算器153a和第三运算器154b至154d对所输入的两个数据阵列执行第二算术运算或者第三算术运算。具体地,第二运算器153a和第三运算器154b至154d通过使用数据阵列sc(x-1,y+1)来更新数据阵列s(x-2,y+1)、s(x-2,y)、s(x-3,y)和s(x,y)。

例如,将数据阵列sc(x-1,y+1)和数据阵列s(x-2,y+1)输入到第二运算器153a中。随后,第二运算器153a通过使用数据阵列sc(x-1,y+1)来更新数据阵列s(x-2,y+1)。这是第二算术运算。

类似地,第三运算器154b至154d通过使用数据阵列sc(x-1,y+1)来更新s(x-2,y)、s(x-3,y)和s(x,y)。这是第三算术运算。将由第二运算器153a和第三运算器154b至154d生成的数据阵列s(x-2,y+1)、s(x-2,y)、s(x-3,y)和s(x,y)定义为传播数据。将数据阵列s(x-2,y)、s(x-2,y)、s(x-3,y)和s(x,y)输入到第四运算器156中。

第三运算器154b至154d通过使用两个像素的放大数据执行第三算术运算。具体地,第三运算器154b至154d通过使用目标像素的放大数据和基准像素的放大数据执行第三算术运算。第三运算器154b的目标像素是r(x-1,y+1)以及第三运算器154b的基准像素是(x-2,y)。第三运算器154c的目标像素是r(x-1,y+1)以及第三运算器154c的基准像素是r(x-3,y)。第三运算器154d的目标像素是r(x-1,y+1)以及第三运算器154d的基准像素是r(x,y)。

此外,在实施例中,将由处理单元50生成的数据阵列s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)通过延迟元件59b至59d输入到第三运算器154b至154d中。具体地,将由第三运算器54b生成的s(x-1,y-1)通过延迟元件59b输入到第三运算器154b中。将由第三运算器54c生成的s(x-2,y-1)通过延迟元件59c输入到第三运算器154c中。将由第三运算器54d生成的s(x+1,y-1)通过延迟元件59d输入到第三运算器154d中。

第四运算器156对s(x-2,y+1)、s(x-2,y)、s(x-3,y)和s(x,y)执行第四算术运算。通过这样做,第四运算器156计算数据阵列ss(x-1,y+1)。将由第四运算器156生成的数据阵列ss(x-1,y+1)定义为选择候选数据。

第四运算器156将所计算的数据阵列ss(x-1,y+1)输出至寄存器157。寄存器157保存数据阵列ss(x-1,y+1)。随后,寄存器157将数据阵列ss顺序地输出至选择器158。选择器158从数据阵列ss(x-1,y+1)选择最优像素数据以及将该像素数据输出为输出像素数据vx(x-1,y+1)。例如,选择器58从数据阵列ss(x-1,y+1)中包括的多个数据选择最低开销数据。

以这种方式,将由第三运算器54b至54d生成的传播数据通过延迟元件59b至59d输入到第三运算器154b至154d中。也就是说,第三运算器154b至154d通过使用并行布置的第一流水线的处理单元50中的算术运算结果来执行第三算术运算。在此时,由延迟元件59b至59d调整将传播数据输入到第三运算器154b至154d中的时序。通过这样做,可以减少保存传播数据的寄存器的数量。

(图像处理装置的主要部分的配置)

接下来,将参照图12对根据实施例的图像处理装置的详细配置进行描述。图12是示出图像处理装置的主要部分的配置的图。

图像处理装置700包括行存储器81、行存储器控制电路82、延迟调整控制电路83、处理单元70和处理单元170。处理单元70表示第一流水线中包括的一个级处理单元。处理单元170表示第二流水线中包括的一个级处理单元。第一流水线和第二流水线并行地执行流水线处理。

处理单元70具有第一运算器74、第二运算器75、第三运算器76a和76b、寄存器77以及延迟元件78a和78b。处理单元170具有第一运算器174、第二运算器175、第三运算器176a和176b、寄存器177以及延迟元件178a和178b。

行存储器81存储第一图像和第二图像的像素数据。在行存储器81中,展开第一图像和第二图像中包括的像素数据。行存储器控制电路82控制行存储器81。行存储器控制电路82控制从本地存储器23到行存储器81的数据写入。此外,行存储器控制电路82控制从行存储器81到处理单元70和170的数据读取。

具体地,行存储器控制电路82从本地存储器23读取对其执行流水线处理的第一图像和第二图像中包括的像素数据,以及将该像素数据写入到行存储器81中。行存储器控制电路82在合适时序处从行存储器81读取处理单元70和处理单元170的处理所需的像素数据。当图像处理装置执行半全局匹配时,行存储器81存储第一图像和第二图像的一部分的像素数据。随后,行存储器控制电路82向处理单元70和170供应从行存储器81读取的像素数据。延迟调整控制电路83控制稍后描述的延迟元件78a、78b、178a和178b的延迟量。

将从行存储器81读取的像素数据输入到第一运算器74和174中。第一运算器74和174对像素数据执行算术运算处理。具体地,将目标像素的像素数据和周边像素的像素数据输入到第一运算器74和174中。第一运算器74和174分别与图11中所示的第一运算器51和第一运算器151相对应。

将多个周边像素的像素数据顺序地输入到第一运算器74和174中。随后,第一运算器74和174将目标像素的像素数据和基于目标像素的像素数据的算术运算结果输入至第二运算器75以及第三运算器76a和76b。第一运算器74的算术运算结果是第一中间数据。第一中间数据与上面描述的放大数据相对应。

第一运算器74和174通过使用顺序输入的周边像素的像素数据顺序地执行算术运算。即,第一运算器74和174顺序地输出与顺序输入的周边像素的像素数据相对应的算术运算结果。例如,用于第一运算器74和174的周边像素的数量是l。因此,第一运算器74和174输出时间序列中的l个数据。第一运算器74和174对顺序输入的像素数据执行求平均值等等。

第二运算器75和175基于顺序输入的l个数据执行算术运算处理。将第二运算器75和175的算术运算结果定义为第二中间数据。第二中间数据与上面描述的传播数据相对应。第二中间数据分别由寄存器77和177保存。随后,第二运算器75和175基于由寄存器77和177保存的第二中间数据和下一个要输入的第一中间数据执行第二算术运算。换句话说,第二运算器75通过使用基于已经生成的第一中间数据的第二中间数据和新生成的第一中间数据执行第二算术运算。例如,第二算术运算是乘法-累加运算。

随后,第二运算器75和175的算术运算结果被寄存器77和177保存为新的第二中间数据。第二运算器75和175将第二算术运算重复与第一中间数据的数量(l)相对应的次数。第二运算器75和175分别与图11中所示的第二运算器53a和153a相对应。

类似地,将来自第一运算器74的第一中间数据顺序地输入到第三运算器76a和76b中。此外,将来自另一个处理单元的第一中间数据顺序地输入到第三运算器76a和76b中。随后,第三运算器76a和76b基于两个中间数据执行第三算术运算。第三运算器76a和76b对顺序输入的第一中间数据执行第三算术运算。在上面的描述中,将来自另一个处理单元的第一中间数据输入到第三运算器76a和76b中。然而,可以将行存储器81中的像素数据输入到第三运算器76a和76b中。

具体地,第三运算器76a和76b通过使用目标像素的第一中间数据和周边像素的中间数据执行第三算术运算。如上所述,第一中间数据中包括l个数据。类似地,周边像素的第一中间数据中包括l个数据。第三运算器76a和76b对目标像素的第一中间数据中包括的数据和周边像素的第一中间数据中包括的数据顺序地执行算术运算。

将第三运算器76a和76b的算术运算结果定义为第三中间数据。第三中间数据与上面描述的传播数据相对应。由第三运算器76a计算的第三中间数据被称为a2,以及由第三运算器76b计算的第三中间数据被称为a3。将第三中间数据a2通过延迟元件78a输入到第三运算器176a中。将第三中间数据a3通过延迟元件78b输入到第三运算器176b中。

第三运算器176a和176b以与第三运算器76a和76b相同的方式执行第三算术运算。具体地,将来自第一运算器174的第一中间数据和来自第三运算器76a的第三中间数据a2顺序地输入到第三运算器176a中。第三运算器176a基于顺序输入的两个数据执行第三算术运算。类似地,将来自第一运算器174的第一中间数据和来自第三运算器76b的第三中间数据a3顺序地输入到第三运算器176b中。第三运算器176b基于顺序输入的两个数据执行第三算术运算。

将由第三运算器176a计算的数据定义为第三中间数据b2,以及将由第三运算器176b计算的数据定义为第三中间数据b3。将第三中间数据b2和b3通过延迟元件178a和178b输出至另一个流水线的处理单元。

尽管在图12中未示出,但是处理单元70通过使用由第二运算器75计算的第二中间数据以及由第三运算器76a和76b计算的第三中间数据a2和a3生成输出像素数据。类似地,处理单元170通过使用由第二运算器175计算的第二中间数据以及由第三运算器176a和176b计算的第三中间数据b2和b3生成输出像素数据。生成输出像素数据的处理与图11中所示的由第四运算器56和156以及选择器58和158执行的处理相同,从而省略其描述。

图13示出了图12中所示的处理中的执行流程。在图13中,rd表示从行存储器读取像素数据,ex表示由运算器执行的算术运算,以及st表示对寄存器进行写入。此外,图13示出了第一流水线p1中的流水线处理和第二流水线p2中的流水线处理。此外,图13示出了第一流水线p1中包括的五个级处理单元70a至70e以及第二流水线p2中包括的五个级处理单元170a至170e。

关于五个级处理单元70a到70e,从最前级侧顺序地设置处理单元70a、处理单元70b、处理单元70c、处理单元70d和处理单元70e。关于五个级处理单元170a到170e,从最前级侧顺序地设置处理单元170a、处理单元170b、处理单元170c、处理单元170d和处理单元170e。即,流水线p1和p2中的最前级处理单元是处理单元70a和170a。将中间数据从前级处理单元输出至后级处理单元。后级处理单元通过使用由前级处理单元计算的中间数据来执行算术运算。

第一流水线p1中的目标像素的y坐标是y,以及第二流水线p2中的目标像素的y坐标是y+1。换句话说,y坐标是并行流水线之间的差。例如,在第一流水线p1的处理单元70a至70e中,目标像素的y坐标是y,以及在第二流水线p2的处理单元170a至170e中,目标像素的y坐标是y+1。在一个流水线中,在多级处理单元中,目标像素的x坐标从相邻目标像素的x坐标变化1。例如,处理单元70a、70b、70c、70d和70e的x坐标是x+4、x+3、x+2、x+1和x+0。

对处理单元70a的目标像素(x+4,y)的处理的时序与对处理单元170a的目标像素(x+3,y+1)的处理的时序相同。在第一流水线p1中,处理单元70a至70e的处理时序相对于彼此移位一个单位处理时段。在这里,一个单位处理时段与执行图13中的一个字段示出的一个单位处理的时间段相对应。换句话说,一个单位处理时段与执行读取rd、算术运算ex和写入st中的任何一个的时间段相对应。

此外,在每个处理单元中,最上行与第二中间数据相对应,以及第二最上行与由第三运算器76a或者176a计算的第三中间数据相对应。第三最上行与由第三运算器76b或者176b计算的第三中间数据相对应。每个处理单元由四个单位处理时段形成,包括(1)读取rd、(2)第一算术运算ex、(3)第二算术运算或者第三算术运算ex以及(4)写入st。

如图13中所示,在一个处理单元70中,第二运算器75与第三运算器76a和76b的算术运算ex的时序相同。在一个处理单元170中,第二运算器175与第三运算器176a和176b的算术运算ex的时序相同。因此,在一个处理单元中,同时生成第二中间数据和两个第三中间数据。

在处理单元70b中,执行对目标像素r(x+3,y)的处理。将由处理单元70b的第三运算器76b生成的第三中间数据a3通过两个单位处理时段的延迟而输入到处理单元170e的第三运算器76b中。

在处理单元70c中,执行对目标像素r(x+2,y)的处理。将由处理单元70c的第三运算器76a生成的第三中间数据a2通过一个单位处理时段的延迟而输入到处理单元170e的第三运算器76a中。处理单元170e执行对目标像素r(x-1,y+1)的处理。延迟元件78b的延迟量大于延迟元件78a的延迟量。

以这种方式,将不同延迟给予第三中间数据a2和a3,使得可以使用处理单元170e中的第三算术运算中的第三中间数据a2和a3。即,第二流水线p2中包括的处理单元170e的第三运算器76a和76b可以使用第一流水线p1中生成的第三中间数据a2和a3。换句话说,在流水线之间输入/输出第三中间数据a2和a3。通过这样做,可以减小用于保存第三中间数据的寄存器的容量。

尽管图13仅示出了将第三中间数据a2和a3输入到处理单元170e中的示例,但是可以在延迟调整控制电路83设定合适的延迟元件时在多个处理单元70和多个处理单元170之间输入/输出第三中间数据a2和a3。从而,可以进一步减小寄存器的容量。

例如,当流水线p1和p2中的每一个具有处理单元中的六个级或者更多个级时,可以向处理单元170供应由处理单元70d和70e生成的第三中间数据a2和a3。此外,当并行流水线的数量增加时,可以增加可以由其它流水线使用的第三中间数据a2和a3。例如,在图12中,当除第一流水线p1和第三流水线p3以外还有第三流水线p3时,可以将由第三运算器176生成的第三中间数据b2和b3输入到第三流水线的处理单元中。

运算器74至76、运算器174至176、运算器51、53、54和56以及运算器151、153、154和156中的一个或者多个基于例如“accurateandefficientstereoprocessingbysemi-globalmatchingandmutualinformation”(因特网搜索:http://www.robotic.dlr.de/fileadmin/robotic/hirschmu/cvpr05hh.pdf)中描述的公式(13)和公式(14)执行算术运算。例如,第四运算器156和第四运算器56基于公式(14)执行算术运算。此外,第三运算器176、第三运算器76、第三运算器54和第三运算器154基于公式(13)执行算术运算。

(关于传播方向和目标像素)

在实施例中,第一流水线p1的处理单元70将位于沿着与从目标像素到周边像素的传播方向相反的方向上的像素定义为目标像素。将参照图14和图15对上述的原因进行描述。图14是用于解释第一图像和第二图像的像素总数的图。图15是用于解释像素传播方向和像素传播数量的图。

如图14中所示,将沿图像水平方向的像素的总数定义为d,以及将沿图像垂直方向的像素的总数定义为h。即,第一图像r和第二图像ref中的每一个中包括的像素的总数是d×h。

如图15中所示,在第三运算器中,从目标像素r(x,y)到基准像素的方向是传播方向。当传播数量是1时,没有传播。即,目标像素的坐标与基准像素的坐标相同。具体地,水平像素传播方向是-x方向,以及水平像素传播数量m是2或者4。垂直像素传播方向是-y方向,以及垂直像素传播数量n是2或者4。

在根据实施例的图像处理方法中,将必要的寄存器开销c1表示如下。

c1=l*{(n-1)*m+p}

在这里,p是流水线的并行化程度。并行化程度是并行布置的流水线的数量。寄存器的容量r2根据放大数量、并行化程度、水平像素传播方向和垂直像素传播方向而变化。

另一方面,当不使用根据实施例的图像处理方法时,将必要的寄存器开销c2表示如下。

c2=l*d*h

如图14中所示,d是沿图像水平方向的像素的总数,以及h是沿图像垂直方向的像素的总数。在这里,图16示出了在n=2、m=4、d=640以及h=480的情况下的寄存器开销。在图16中,输入像素是一比特。当并行化程度p=128时,根据实施例的图像处理装置的寄存器开销可以是大约1/100。因此,可以阻止寄存器容量的增大。因此,可以高效地执行图像处理。特别地,可以通过增大并行化流水线的数量(并行化程度)来加速处理。

此外,通过流水线向处理单元170的第三运算器176a和176b供应由延迟元件78a和78b延迟的第三中间数据。具体地,将由第一流水线p1的处理单元70中设置的延迟元件78a和78b延迟的第三中间数据a2和a3输入到第二流水线p2中包括的处理单元170的第三运算器176a和176b中。随后,第三运算器176a和176b基于来自第一运算器174的第一中间数据以及来自延迟元件78a和78b的第三中间数据a2和a3执行第三算术运算。通过这样做,可以在适当时序处使用第三中间数据a2和a3。从而,可以防止寄存器开销增大。

此外,通过选择目标像素来优化第三中间数据的时间轴调整。通过这样做,可以在不增大延迟量的情况下引用第三中间数据a2和a3。具体地,通过适当地设置第一流水线p1的目标像素和第二流水线p2的目标像素的位置,可以将第一流水线p1中的第三中间数据用于第二流水线p2中的算术运算。当第三运算器76a和76b对目标像素和沿传播方向从目标像素移位的基准像素执行第三算术运算时,从第二流水线p2的处理单元170的目标像素到第一流水线p1的处理单元70的目标像素的方向与传播方向相反。例如,如图10中所示,处理单元170的目标像素沿+x方向从处理单元70的目标像素移位。在处理单元70中,从目标像素到基准像素的传播方向是-x方向。从而,可以以少量延迟使用第三中间数据a2和a3。

此外,根据实施例的图像处理装置,可以减小行存储器的容量。将参考图17对行存储器的减小进行描述。图17是示出了比较示例的行存储器的配置和根据实施例的图像处理装置中的行存储器的配置的图。在图17的左侧示出了比较示例的图像处理装置中的行存储器的配置,以及在图17的右侧示出了根据实施例的图像处理装置的行存储器的配置。

在比较示例中,针对每行存储原始图像的图像数据,使得每行的容量相同。例如,y+0、y+1和y+2的容量相同。另一方面,在实施例的配置中,流水线被并行化时的读取位置根据n和m移动,使得在读取位置移动的范围中生成不必要的部分。不必要的部分从一开始就不被确保为存储器。

如图17中所示,比较示例的行存储器具有x*y的矩形存储器结构。另一方面,在实施例中,可以以阶梯模式改变基准像素,使得行存储器不需要具有矩形形状。例如,在y+0行中,需要保存像素一直到x+3。另一方面,可以减少要保存的像素的数量,一直到y+1行中的x+2以及一直到y+2行中的x+1。因此,行存储器81没有与可以减少的像素相对应的部分。

如上所述,根据实施例,可以通过优化用于处理单元的处理的存储器结构来减小行存储器的容量。具体地,行存储器81包括容量彼此不同的多个行。可以减小的部分取决于参数n、m和p。可以通过由n、m和p确定的参数减小行存储器的容量。行存储器的具体容量由图17中所示的公式表示。

当确定并行流水线的数量、每个流水线中的级数、图像中的像素数量、放大数量、传播数量等等时,延迟调整控制电路83可以固定延迟元件78和178的延迟量。换句话说,当算术运算条件固定时,延迟量可以是常量。因此,可以在不提供延迟调整控制电路83的情况下设置延迟量固定的延迟元件78和178。要并行化的流水线的数量可以是三个或者更多个。从而,即使在处理被加速时,也可以抑制寄存器容量的增大。因此,可以更平滑地处理复杂内容。当并行化程度、传播数量等等变化时,延迟调整控制电路83可以调整延迟量。

第二实施例

将参考图18对根据第二实施例的图像处理装置的处理单元的配置进行描述。尽管在第一实施例中传播的总数是三个,但是第二实施例中的传播总数是四个。因此,在处理单元70中设置第三运算器76a至76c以及在处理单元170中设置第三运算器176a至176c。

将第三运算器76c的第三中间数据a4通过延迟元件78c输入到第三运算器176c中。在这里,延迟元件78c的延迟量大于延迟元件78a和78b的延迟量。延迟元件78b的延迟量大于延迟元件78a的延迟量。

图19示出了图18中所示的配置的处理流程。将处理单元70a的第三中间数据a4通过三个单位处理时段的延迟输入到处理单元170e中。随后,处理单元170e通过使用从处理单元70a至70c输入的第三中间数据a2至a4执行第三算术运算。即使在这种配置中,也可以获得与第一实施例相同的效果。第三中间数据a2至a4的延迟量彼此相差一个单位处理时段。换句话说,将来自三个处理单元70a至70c的第三中间数据a2至a4通过不同延迟量输入到一个处理单元170e中。

其它实施例

图20示出了根据另一个实施例的图像处理装置的配置。图像处理装置800包括存储第一图像和第二图像中包括的像素数据的行存储器81、并行布置以及具有多级处理单元70a、70b、170a和170b(它们中的每一个对像素数据执行流水线处理)的多个流水线p1和p2以及控制从行存储器81到处理单元70a、70b、170a和170b的数据读取的行存储器控制电路82。处理单元70a包括基于与第一图像的目标像素相对应的目标像素数据和第二图像中与目标像素的周边像素相对应的周边像素数据执行第一算术运算的第一运算器74、基于根据第一运算器74的算术运算结果的第一中间数据执行第二算术运算以及根据顺序地改变周边像素时的第一中间数据计算第二中间数据的第二运算器75、基于第一中间数据执行第三算术运算以及根据顺序地改变周边像素时的第一中间数据计算第三中间数据的第三运算器76、保存顺序地改变周边像素时的第二中间数据的寄存器77以及延迟第三运算器的算术运算结果的延迟元件78。

根据实施例的图像处理方法包括在行存储器上展开第一图像和第二图像中包括的像素数据的步骤以及通过使用并行布置的多个流水线的多级处理单元对行存储器上展开的像素数据执行流水线处理的步骤。

执行流水线处理的步骤包括下面描述的步骤(a)至(f)。

(a)第一算术运算步骤,在第一算术运算步骤中,第一运算器基于与第一图像的目标像素相对应的目标像素数据和第二图像中与目标像素的周边像素相对应的周边像素数据执行算术运算,

(b)第二算术运算步骤,在第二算术运算步骤中,第二运算器基于根据第一算术运算步骤中的算术运算结果的第一中间数据执行第二算术运算,

(c)寄存器保存根据第二运算器的算术运算结果的第二中间数据的步骤,

(d)第三算术运算步骤,在第三算术运算步骤中,第三运算器基于第一中间数据执行第三算术运算,

(e)延迟元件延迟根据第三运算器的算术运算结果的第三中间数据的步骤,以及

(f)通过顺序地改变周边像素重复地执行步骤(a)至(e)的步骤。

在上面的描述中,将车辆的前监控系统中的图像处理作为示例进行描述。然而,根据实施例的图像处理装置和图像处理方法可以适用于除前监控系统以外的系统。根据实施例的图像处理装置和图像处理方法可以适用于准确地执行物体识别的图像识别。

尽管已经基于实施例具体地描述了由本发明人做出的本发明,但是,不用说,本发明不限于实施例,以及可以在不偏离本发明范围的情况下不同地修改本发明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1