相關(guān)申請(qǐng)的交叉引用
2016年3月25日提交的日本專(zhuān)利申請(qǐng)第2016-061868號(hào)的公開(kāi)的全部?jī)?nèi)容通過(guò)引用合并于此,該公開(kāi)包括說(shuō)明書(shū)、附圖和摘要。
背景技術(shù):
本發(fā)明涉及圖像處理裝置、圖像處理方法和車(chē)輛控制裝置。
對(duì)執(zhí)行圖像處理和音頻處理的數(shù)據(jù)處理裝置的高速操作的需求逐年提高。特別地,對(duì)于應(yīng)用于車(chē)輛的圖像處理裝置和圖像識(shí)別裝置,不僅需要高速處理而且需要準(zhǔn)確地檢測(cè)和識(shí)別物體的技術(shù)。
近年來(lái)由于內(nèi)容的豐富和多媒體的發(fā)展,在圖像數(shù)據(jù)增大之后,該趨勢(shì)增長(zhǎng)越來(lái)越多。
特別地,需要巨量的圖像數(shù)據(jù)和巨大數(shù)量的處理次數(shù)來(lái)根據(jù)前方監(jiān)控系統(tǒng)中的高密度像素信息計(jì)算運(yùn)動(dòng)信息和距離信息。因此,可以預(yù)料此后將進(jìn)一步需要高性能。
為了滿足需求,日本未經(jīng)審查的專(zhuān)利申請(qǐng)公開(kāi)第2003-296096號(hào)公開(kāi)了通過(guò)流水線處理執(zhí)行并行處理的算術(shù)裝置。在日本未經(jīng)審查的專(zhuān)利申請(qǐng)公開(kāi)第2003-296096號(hào)中多個(gè)算術(shù)單元串聯(lián)耦合。前級(jí)算術(shù)單元的算術(shù)運(yùn)算數(shù)據(jù)輸出至后級(jí)算術(shù)單元。
日本未經(jīng)審查的專(zhuān)利申請(qǐng)公開(kāi)第2002-182905號(hào)公開(kāi)了通過(guò)多個(gè)算術(shù)元件執(zhí)行算術(shù)指令的裝置。在日本未經(jīng)審查的專(zhuān)利申請(qǐng)公開(kāi)第2002-182905號(hào)中,可以直接從算術(shù)元件中的每一個(gè)算術(shù)元件訪問(wèn)寄存器。寄存器保存每個(gè)算術(shù)元件的算術(shù)運(yùn)算結(jié)果。
技術(shù)實(shí)現(xiàn)要素:
近年來(lái),為了控制復(fù)雜內(nèi)容,需要算術(shù)單元通過(guò)使用另一個(gè)算術(shù)單元的算術(shù)運(yùn)算結(jié)果執(zhí)行算術(shù)運(yùn)算的復(fù)雜控制。每個(gè)算術(shù)單元可以參考在前級(jí)算術(shù)單元之前布置的算術(shù)單元的處理結(jié)果。在該情況下,在日本未經(jīng)審查的專(zhuān)利申請(qǐng)公開(kāi)第2003-296096號(hào)中公開(kāi)的流水線配置中,需要將處理結(jié)果作為輸入再次分配給后級(jí)算術(shù)單元。當(dāng)流水線級(jí)的數(shù)量很大時(shí),指令系統(tǒng)變得復(fù)雜。此外,存在選擇寄存器的控制復(fù)雜化的問(wèn)題。
此外,當(dāng)將日本未經(jīng)審查的專(zhuān)利申請(qǐng)公開(kāi)第2002-182905號(hào)中描述的方法應(yīng)用于在“accurateandefficientstereoprocessingbysemi-globalmatchingandmutualinformation”(因特網(wǎng)搜索:http://www.robotic.dlr.de/fileadmin/robotic/hirschmu/cvpr05hh.pdf)中描述的立體圖像時(shí),出現(xiàn)保存中間生成數(shù)據(jù)的寄存器的數(shù)量增加的問(wèn)題。
在諸如立體處理和光學(xué)流處理的處理中,存在與目標(biāo)圖像比較的比較圖像。在立體處理中,不同相機(jī)處理相同時(shí)間的圖像。在光學(xué)流處理中,相同相機(jī)處理不同時(shí)間的圖像??紤]通過(guò)使用兩個(gè)圖像的像素?cái)?shù)據(jù)執(zhí)行算術(shù)運(yùn)算的情況。由多個(gè)級(jí)對(duì)流水線處理進(jìn)行配置。存在放大和選擇被在每個(gè)級(jí)中重復(fù)的許多算術(shù)運(yùn)算。
放大是計(jì)算許多選擇候選的算術(shù)運(yùn)算。選擇是從多個(gè)選擇候選當(dāng)中選擇最優(yōu)數(shù)據(jù)的算術(shù)運(yùn)算。因此,在諸如立體處理和光學(xué)流處理的處理中,生成中間生成的巨量選擇候選或者用于生成選擇候選的巨量數(shù)據(jù)。因此,當(dāng)采用在一維通路上執(zhí)行應(yīng)用于立體處理和光學(xué)流處理的函數(shù)結(jié)果的優(yōu)化計(jì)算的方法時(shí),出現(xiàn)保存中間生成數(shù)據(jù)的寄存器的數(shù)量增加的問(wèn)題。
其它目的和新穎的特性將通過(guò)附圖和本說(shuō)明書(shū)的描述而變得清楚。
根據(jù)實(shí)施例,圖像處理裝置包括并行布置的多個(gè)流水線。流水線中的每一個(gè)流水線具有多級(jí)處理單元。處理單元中的每一個(gè)處理單元包括基于與第一圖像的目標(biāo)像素相對(duì)應(yīng)的目標(biāo)像素?cái)?shù)據(jù)和第二圖像中與目標(biāo)像素的周邊像素相對(duì)應(yīng)的周邊像素?cái)?shù)據(jù)執(zhí)行第一算術(shù)運(yùn)算的第一運(yùn)算器、基于根據(jù)第一運(yùn)算器的算術(shù)運(yùn)算結(jié)果的第一中間數(shù)據(jù)執(zhí)行第二算術(shù)運(yùn)算以及根據(jù)順序地改變周邊像素時(shí)的第一中間數(shù)據(jù)計(jì)算第二中間數(shù)據(jù)的第二運(yùn)算器、基于第一中間數(shù)據(jù)執(zhí)行第三算術(shù)運(yùn)算以及根據(jù)順序地改變周邊像素時(shí)的第一中間數(shù)據(jù)計(jì)算第三中間數(shù)據(jù)的第三運(yùn)算器、保存順序地改變周邊像素時(shí)的第二中間數(shù)據(jù)的寄存器以及延遲來(lái)自第三運(yùn)算器的第三中間數(shù)據(jù)的延遲元件。
根據(jù)實(shí)施例,可以高效地執(zhí)行圖像處理。
附圖說(shuō)明
圖1是示出安裝有圖像處理裝置的車(chē)輛的配置的框圖。
圖2是示出圖像處理裝置的電路配置的控制框圖。
圖3是示出圖像處理方法的流程圖。
圖4是示出當(dāng)使用通用硬件配置時(shí)圖像處理方法的圖像處理步驟的處理流程。
圖5是用于解釋圖4中的圖像處理中的第一圖像和第二圖像的像素的圖。
圖6是用于解釋圖4中的圖像處理的圖。
圖7是示出圖6中所示的處理中的執(zhí)行流程的圖。
圖8是用于解釋使圖6中的流水線處理并行化的配置的圖。
圖9是示出圖8中所示的處理中的執(zhí)行流程的圖。
圖10是用于解釋實(shí)施例中的目標(biāo)像素和周邊像素的圖。
圖11是用于解釋根據(jù)實(shí)施例的圖像處理裝置中的處理的概念圖。
圖12是示出圖像處理裝置的主要部分的配置的圖。
圖13是示出圖12中所示的處理中的執(zhí)行流程的圖。
圖14是示出圖像中所包括的像素的圖。
圖15是用于解釋像素傳播的數(shù)量和像素傳播方向的圖。
圖16是示出并行化程度與寄存器開(kāi)銷(xiāo)之間的關(guān)系的圖。
圖17是示出行存儲(chǔ)器的配置的圖。
圖18是示意性地示出根據(jù)第二實(shí)施例的圖像處理裝置的處理單元的配置的圖。
圖19是示出圖18中所示的處理中的執(zhí)行流程的圖。
圖20是示出根據(jù)另一個(gè)實(shí)施例的圖像處理裝置的配置的框圖。
具體實(shí)施方式
為了解釋的清楚起見(jiàn),適當(dāng)?shù)厥÷院秃?jiǎn)化下面的說(shuō)明書(shū)和附圖。附圖中被示出為執(zhí)行各種處理的功能塊的組件可以通過(guò)作為硬件的cpu、存儲(chǔ)器和其它電路來(lái)形成,以及通過(guò)作為軟件加載在存儲(chǔ)器中的程序等等來(lái)實(shí)現(xiàn)。因此,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,功能塊可以通過(guò)僅硬件、僅軟件或者這些的組合以各種形式來(lái)實(shí)現(xiàn),以及功能塊不限于硬件、軟件以及這些的組合中的任何一個(gè)。在附圖中,相同組件由相同參考符號(hào)指示,并且適當(dāng)?shù)厥÷匀哂嗝枋觥?/p>
上面描述的程序可以存儲(chǔ)在各種類(lèi)型的非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)中以及被提供給計(jì)算機(jī)。非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)包括各種類(lèi)型的有形存儲(chǔ)介質(zhì)。非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)的示例包括磁記錄介質(zhì)(例如,軟盤(pán)、磁帶和硬盤(pán)驅(qū)動(dòng)器)、磁光記錄介質(zhì)(例如,磁光盤(pán))、cd-rom(只讀存儲(chǔ)器)、cd-r、cd-r/w和半導(dǎo)體存儲(chǔ)器(例如,掩模rom、prom(可編程rom)、eprom(可擦除prom)、閃速rom和ram(隨機(jī)存取存儲(chǔ)器))??梢酝ㄟ^(guò)各種類(lèi)型的暫時(shí)性計(jì)算機(jī)可讀介質(zhì)向計(jì)算機(jī)提供程序。暫時(shí)性計(jì)算機(jī)可讀介質(zhì)的示例包括電信號(hào)、光信號(hào)和電磁波。暫時(shí)性計(jì)算機(jī)可讀介質(zhì)可以通過(guò)有線通信路徑(諸如,電線和光纖)或者無(wú)線通信路徑向計(jì)算機(jī)提供程序。
根據(jù)實(shí)施例的圖像處理裝置是并行地對(duì)兩個(gè)圖像執(zhí)行流水線處理的圖像處理裝置。即,圖像處理裝置包括并行布置的多個(gè)流水線。每個(gè)流水線包括多級(jí)處理單元。由處理單元計(jì)算的數(shù)據(jù)輸出至后級(jí)處理單元。從而,可以執(zhí)行流水線處理。
例如,兩個(gè)圖像是由具有兩個(gè)相機(jī)的立體相機(jī)在左-右方向上同時(shí)捕獲的立體圖像或者由一個(gè)相機(jī)在不同時(shí)刻捕獲的兩個(gè)圖像??梢酝ㄟ^(guò)在立體處理和光學(xué)流處理中執(zhí)行圖案匹配來(lái)獲得圖案的距離信息和運(yùn)動(dòng)信息。作為圖案匹配,可以使用“accurateandefficientstereoprocessingbysemi-globalmatchingandmutualinformation”(因特網(wǎng)搜索:http://www.robotic.dlr.de/fileadmin/robotic/hirschmu/cvpr05hh.pdf)中描述的半全局匹配。
在實(shí)施例中,將描述對(duì)由車(chē)輛上安裝的立體相機(jī)捕獲的立體圖像執(zhí)行圖像處理的示例。此外,圖像處理裝置用于車(chē)輛的前方監(jiān)控系統(tǒng)??梢曰趫D像處理裝置的圖像處理結(jié)果來(lái)執(zhí)行車(chē)輛的自動(dòng)控制。
第一實(shí)施例
(車(chē)輛的配置)
首先,將對(duì)安裝圖像處理裝置的車(chē)輛的配置進(jìn)行描述。圖1是示出車(chē)輛1的控制配置的圖。車(chē)輛1具有相機(jī)2、相機(jī)ecu(電子控制單元)3、euc4、制動(dòng)器ecu5、加速器ecu6和轉(zhuǎn)向ecu7。車(chē)輛1不僅包括普通客車(chē),而且包括公共汽車(chē)、卡車(chē)等等。
車(chē)輛1上安裝了相機(jī)2、相機(jī)ecu3、euc4、制動(dòng)器ecu5、加速器ecu6和轉(zhuǎn)向ecu7。此外,車(chē)輛1設(shè)置有引擎、制動(dòng)器、轉(zhuǎn)向設(shè)備、車(chē)輪等等。控制單元(諸如,相機(jī)ecu3、euc4、制動(dòng)器ecu5、加速器ecu6和轉(zhuǎn)向ecu7)由硬件(諸如,微型計(jì)算機(jī))和軟件(諸如,加載到存儲(chǔ)器中的程序)實(shí)現(xiàn)。
相機(jī)2是具有安裝在車(chē)輛1的左位置和右位置中的兩個(gè)相機(jī)的立體相機(jī)。相機(jī)2捕獲車(chē)輛1前方的圖像。由相機(jī)2的兩個(gè)相機(jī)捕獲的立體圖像輸出至相機(jī)ecu3。相機(jī)ecu3具有圖像處理裝置以及對(duì)立體圖像執(zhí)行圖像處理。隨后,相機(jī)ecu3將圖像處理結(jié)果輸出至ecu4。例如,相機(jī)ecu3基于圖像處理結(jié)果計(jì)算從車(chē)輛1到障礙物的距離。
ecu4具有基于圖像處理結(jié)果控制車(chē)輛1的控制單元。例如,ecu4輸出控制信號(hào)以控制制動(dòng)器ecu5、加速器ecu6和轉(zhuǎn)向ecu7。制動(dòng)器ecu5根據(jù)控制信號(hào)控制車(chē)輛1的制動(dòng)器。加速器ecu6控制車(chē)輛1的加速器。轉(zhuǎn)向ecu7控制車(chē)輛1的轉(zhuǎn)向設(shè)備。ecu4根據(jù)圖像處理結(jié)果輸出控制信號(hào),使得可以借助于系統(tǒng)代替人類(lèi)自動(dòng)地控制車(chē)輛1。
(圖像處理裝置的控制配置)
接著,將參照?qǐng)D2對(duì)作為根據(jù)實(shí)施例的圖像處理裝置的相機(jī)ecu3進(jìn)行描述。圖2是示出相機(jī)ecu3的電路配置的控制框圖。相機(jī)ecu3具有至少一個(gè)cpu(中央處理單元)22、本地存儲(chǔ)器23、外部存儲(chǔ)器接口24、內(nèi)部總線25、至少一個(gè)dsp(數(shù)字信號(hào)處理器)26、專(zhuān)用硬件27、接口28、相機(jī)接口29和相機(jī)接口30。
相機(jī)接口29、30是用于輸入來(lái)自相機(jī)2的圖像的接口。例如,由相機(jī)2的左相機(jī)捕獲的圖像通過(guò)相機(jī)接口29輸入到相機(jī)ecu3中。由相機(jī)2的右相機(jī)捕獲的圖像通過(guò)相機(jī)接口30輸入到相機(jī)ecu3中。在這里,將由相機(jī)2的左相機(jī)捕獲的圖像定義為第一圖像以及將由相機(jī)2的右相機(jī)捕獲的圖像定義為第二圖像。第一圖像中的像素?cái)?shù)量與第二圖像中的像素?cái)?shù)量相同。
內(nèi)部總線25具有使cpu22、本地存儲(chǔ)器23、外部存儲(chǔ)器接口24、dsp26、專(zhuān)用硬件27、相機(jī)接口29和相機(jī)接口30耦合在一起的總線線路。接口28是用于輸入來(lái)自ecu4的數(shù)據(jù)/將數(shù)據(jù)輸出至ecu4的接口。外部存儲(chǔ)器接口24是用于輸入來(lái)自附圖中未示出的外部存儲(chǔ)器的數(shù)據(jù)/將數(shù)據(jù)輸出至附圖中未示出的外部存儲(chǔ)器的接口。
本地存儲(chǔ)器23存儲(chǔ)第一圖像和第二圖像中包括的像素?cái)?shù)據(jù)。cpu22整體地控制本地存儲(chǔ)器23、外部存儲(chǔ)器接口24、內(nèi)部總線25、dsp26、專(zhuān)用硬件27、接口28、相機(jī)接口29和相機(jī)接口30中的每一個(gè)。
cpu22、dsp26和專(zhuān)用硬件27是用于實(shí)現(xiàn)根據(jù)實(shí)施例的圖像處理方法的硬件。即,在cpu22、dsp26和專(zhuān)用硬件27中執(zhí)行圖像處理。dsp26和專(zhuān)用硬件27包括行存儲(chǔ)器,該行存儲(chǔ)器是內(nèi)部存儲(chǔ)器。
(處理流程)
接著,將參照?qǐng)D3對(duì)相機(jī)ecu3中的圖像處理方法進(jìn)行描述。圖3是示出相機(jī)ecu3中的圖像處理方法的流程圖。
首先,相機(jī)ecu3通過(guò)相機(jī)接口29和30接收由相機(jī)2捕獲的相機(jī)圖像(第一圖像和第二圖像)(s31)。隨后,相機(jī)ecu3通過(guò)外部存儲(chǔ)器接口24在外部存儲(chǔ)器中展開(kāi)相機(jī)圖像(s32)。
接著,相機(jī)ecu3在本地存儲(chǔ)器23中展開(kāi)外部存儲(chǔ)器中展開(kāi)的像素?cái)?shù)據(jù)(s33)。
相機(jī)ecu3基于本地存儲(chǔ)器23中存儲(chǔ)的像素?cái)?shù)據(jù)執(zhí)行圖像處理(s34)。具體地,當(dāng)cpu22、dsp26和專(zhuān)用硬件對(duì)像素?cái)?shù)據(jù)執(zhí)行算術(shù)運(yùn)算處理時(shí)執(zhí)行圖像處理。
相機(jī)ecu3將圖像處理結(jié)果輸出至ecu4等等(s35)。例如,相機(jī)ecu3基于步驟s34中由相機(jī)2捕獲的第一圖像和第二圖像生成輸出圖像。輸出圖像由像素?cái)?shù)量與第一圖像和第二圖像的像素?cái)?shù)量相同的圖像數(shù)據(jù)形成。隨后,相機(jī)ecu3將輸出圖像作為圖像處理結(jié)果輸出至ecu4??梢愿鶕?jù)需要使像素?cái)?shù)量稀疏或者刪減像素?cái)?shù)量。
ecu4可以基于圖像處理結(jié)果控制制動(dòng)器ecu5、加速器ecu6和轉(zhuǎn)向ecu7。從而,控制制動(dòng)器、加速器和轉(zhuǎn)向設(shè)備。因此,可以自動(dòng)地控制車(chē)輛1。例如,通過(guò)圖像處理裝置獲得與障礙物的距離。當(dāng)確定附近有障礙物時(shí),加速器ecu6松開(kāi)加速器以及制動(dòng)器ecu5應(yīng)用制動(dòng)器,使得車(chē)輛1減速。替換地,轉(zhuǎn)向ecu7控制轉(zhuǎn)向設(shè)備以便避開(kāi)障礙物。
(通用配置中的處理流程)
接著,將參照?qǐng)D4對(duì)步驟s34中的圖像處理進(jìn)行描述。圖4示出了由通用dsp26和專(zhuān)用硬件27執(zhí)行步驟s34中的圖像處理時(shí)的處理流程。
相機(jī)ecu3在內(nèi)部存儲(chǔ)器中展開(kāi)本地存儲(chǔ)器中展開(kāi)的像素?cái)?shù)據(jù)(s41)。內(nèi)部存儲(chǔ)器是dsp26或者專(zhuān)用硬件27中內(nèi)置的行存儲(chǔ)器。內(nèi)部存儲(chǔ)器存儲(chǔ)圖像處理中使用的圖像數(shù)據(jù)。隨后,相機(jī)ecu3對(duì)行存儲(chǔ)器中存儲(chǔ)的像素?cái)?shù)據(jù)執(zhí)行算術(shù)運(yùn)算1(s42)以及將算術(shù)運(yùn)算1的算術(shù)運(yùn)算結(jié)果內(nèi)部地保存在寄存器中(s43)。
接著,相機(jī)ecu3通過(guò)使用寄存器中保存的算術(shù)運(yùn)算1的算術(shù)運(yùn)算結(jié)果執(zhí)行算術(shù)運(yùn)算2(s44)以及將算術(shù)運(yùn)算2的算術(shù)運(yùn)算結(jié)果內(nèi)部地保存在寄存器中(s45)。相機(jī)ecu3通過(guò)使用寄存器中保存的算術(shù)運(yùn)算2的算術(shù)運(yùn)算結(jié)果執(zhí)行算術(shù)運(yùn)算3(s46)以及將算術(shù)運(yùn)算3的算術(shù)運(yùn)算結(jié)果內(nèi)部地保存在寄存器中(s47)。
圖4示出了將算術(shù)運(yùn)算和內(nèi)部保存重復(fù)三次的流程。然而,重復(fù)次數(shù)不限于三次。算術(shù)運(yùn)算1至3例如是乘法-累加(mac)運(yùn)算。
(單個(gè)流水線)
在這里,將參照?qǐng)D5和圖6對(duì)圖4中所示的處理流程進(jìn)行描述。圖5是用于說(shuō)明第一圖像和第二圖像的像素的圖。圖6是用于說(shuō)明算術(shù)運(yùn)算1至3的圖。具體地,圖6示出了在流水線的一個(gè)級(jí)中執(zhí)行的處理。
如圖5所示,圖像被示出為第一圖像r和第二圖像ref。將第一圖像r和第二圖像ref的水平方向(橫向方向)定義為x方向,以及將第一圖像r和第二圖像ref的垂直方向(縱向方向)定義為y方向。在這里,第一圖像r和第二圖像ref是沿x方向具有總像素?cái)?shù)量d(d是大于或者等于2的整數(shù))以及沿y方向具有總像素?cái)?shù)量h(h是大于或者等于2的整數(shù))的二維圖像。
第一圖像r和第二圖像ref的像素坐標(biāo)被表示為(x,y)。例如,第一圖像r中的像素坐標(biāo)(x,y)的像素被表示為r(x,y)。類(lèi)似地,第二圖像ref中的像素坐標(biāo)(x+1,y)的像素被表示為ref(x+1,y)。在這里,x和y為任意正整數(shù)。第一圖像r和第二圖像ref的每個(gè)像素的像素?cái)?shù)據(jù)存儲(chǔ)在如上所述的內(nèi)部存儲(chǔ)器中。
在這里,將第一圖像r的像素坐標(biāo)(x,y)的像素定義為目標(biāo)像素。此外,將位于像素坐標(biāo)(x,y)周?chē)南袼囟x為周邊像素。例如,周邊像素是ref(x,y)至ref(x+d,y)的l個(gè)像素。在這里,d為任意整數(shù)。它被設(shè)計(jì)為使得周邊像素包括與目標(biāo)像素的像素坐標(biāo)相同的像素坐標(biāo)。
圖6示出了對(duì)r(x,y)的目標(biāo)像素執(zhí)行圖像處理的處理單元250。具體地,圖6示出了用于根據(jù)目標(biāo)像素r(x,y)的像素?cái)?shù)據(jù)計(jì)算輸出像素?cái)?shù)據(jù)v(x,y)的圖像處理。在下面的描述中,將目標(biāo)像素的像素?cái)?shù)據(jù)定義為目標(biāo)像素?cái)?shù)據(jù),以及將周邊像素的像素?cái)?shù)據(jù)定義為周邊像素?cái)?shù)據(jù)。
首先,將對(duì)處理單元250中的處理進(jìn)行描述。第一運(yùn)算器251通過(guò)使用目標(biāo)像素?cái)?shù)據(jù)和周邊像素?cái)?shù)據(jù)執(zhí)行算術(shù)運(yùn)算。目標(biāo)像素?cái)?shù)據(jù)是與第一圖像r的目標(biāo)像素r(x,y)相對(duì)應(yīng)的像素?cái)?shù)據(jù)。周邊像素?cái)?shù)據(jù)是位于第二圖像ref的坐標(biāo)(x,y)周?chē)南袼氐南袼財(cái)?shù)據(jù)。具體地,周邊像素?cái)?shù)據(jù)是與周邊像素ref(x,y)至ref(x+d,y)相對(duì)應(yīng)的像素?cái)?shù)據(jù)。周邊像素的數(shù)量為l,使得設(shè)置了l個(gè)第一運(yùn)算器251。在這里,l=d+1(l和d是任意正整數(shù))。l個(gè)第一運(yùn)算器251中的每一個(gè)基于兩個(gè)像素?cái)?shù)據(jù)執(zhí)行算術(shù)運(yùn)算處理。從而,獲得l個(gè)算術(shù)運(yùn)算結(jié)果。由第一運(yùn)算器251執(zhí)行的算術(shù)運(yùn)算與圖4中的步驟s42相對(duì)應(yīng)。
l個(gè)寄存器252中的每一個(gè)保存算術(shù)運(yùn)算結(jié)果。在這里,將由l個(gè)寄存器252保存的算術(shù)運(yùn)算結(jié)果表示為數(shù)據(jù)陣列sc(x,y)。數(shù)據(jù)陣列sc(x,y)由l個(gè)算術(shù)運(yùn)算結(jié)果形成。將l定義為第一運(yùn)算器251中的放大數(shù)量。具體地,放大數(shù)量l是第一運(yùn)算器251中為一個(gè)目標(biāo)像素r(x,y)生成的數(shù)據(jù)的數(shù)量。例如,將128、256等等用作放大數(shù)量l。由寄存器252進(jìn)行的數(shù)據(jù)保存與圖4中的步驟s43相對(duì)應(yīng)。
具體地,通過(guò)相對(duì)于一個(gè)目標(biāo)像素r(x,y)順序地改變周邊像素來(lái)生成數(shù)據(jù)陣列sc(x,y)。更具體地,將l個(gè)周邊像素的像素?cái)?shù)據(jù)順序地輸入到第一運(yùn)算器251中。隨后,基于由第一運(yùn)算器251生成的放大數(shù)據(jù)生成數(shù)據(jù)陣列sc(x,y)。
隨后,將數(shù)據(jù)陣列sc(x,y)輸入到第二運(yùn)算器253a至253d中。在圖6中,設(shè)置了四個(gè)第二運(yùn)算器253,以及分別將四個(gè)第二運(yùn)算器253標(biāo)識(shí)為第二運(yùn)算器253a至253d。此外,分別將數(shù)據(jù)陣列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)從行存儲(chǔ)器或者流水線處理的另一級(jí)輸入到第二運(yùn)算器253a至253d中。
第二運(yùn)算器253a至253d對(duì)所輸入的兩個(gè)數(shù)據(jù)陣列執(zhí)行第二算術(shù)運(yùn)算。具體地,第二運(yùn)算器253a至253d通過(guò)使用數(shù)據(jù)陣列sc(x,y)更新數(shù)據(jù)陣列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)。由第二運(yùn)算器253a至253d執(zhí)行的算術(shù)運(yùn)算與圖4中的步驟s44相對(duì)應(yīng)。
例如,將數(shù)據(jù)陣列sc(x,y)和數(shù)據(jù)陣列s(x-1,y)輸入到第二運(yùn)算器253a中。隨后,第二運(yùn)算器253a通過(guò)使用數(shù)據(jù)陣列sc(x,y)更新數(shù)據(jù)陣列s(x-1,y)。類(lèi)似地,第二運(yùn)算器253b至253d通過(guò)使用數(shù)據(jù)陣列sc(x,y)更新s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)。將由第二運(yùn)算器253a至253d生成的數(shù)據(jù)陣列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)定義為傳播數(shù)據(jù)。
通過(guò)使用根據(jù)兩個(gè)像素計(jì)算的放大數(shù)據(jù)來(lái)計(jì)算傳播數(shù)據(jù)。具體地,第二運(yùn)算器253a至253d通過(guò)使用基準(zhǔn)像素和目標(biāo)像素的放大數(shù)據(jù)來(lái)執(zhí)行算術(shù)運(yùn)算。例如,第二運(yùn)算器253a的目標(biāo)像素的坐標(biāo)是(x,y)以及基準(zhǔn)像素的坐標(biāo)是(x-1,y)。類(lèi)似地,第二運(yùn)算器253b的目標(biāo)像素的坐標(biāo)是(x,y)以及基準(zhǔn)像素的坐標(biāo)是(x-1,y-1)。
如上所述,一個(gè)放大數(shù)據(jù)由l個(gè)數(shù)據(jù)陣列形成。具體地,第二運(yùn)算器253a至253d通過(guò)使用從目標(biāo)像素沿x方向或者y方向傳播的基準(zhǔn)像素的放大數(shù)據(jù)和目標(biāo)像素的放大數(shù)據(jù)來(lái)計(jì)算傳播數(shù)據(jù)。
由第二運(yùn)算器253a至253d更新的數(shù)據(jù)陣列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)分別被寄存器255a至255d保存。通過(guò)寄存器255a至255d進(jìn)行的數(shù)據(jù)保存與圖4中的步驟s45相對(duì)應(yīng)。隨后,寄存器255a至255d將數(shù)據(jù)陣列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)輸出至第三運(yùn)算器256。
第三運(yùn)算器256對(duì)數(shù)據(jù)陣列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)執(zhí)行第三算術(shù)運(yùn)算。通過(guò)這樣做,第三運(yùn)算器256計(jì)算數(shù)據(jù)陣列ss(x,y)。由第三運(yùn)算器256執(zhí)行的算術(shù)運(yùn)算與圖4中的步驟s46相對(duì)應(yīng)。將由第三運(yùn)算器256生成的數(shù)據(jù)陣列ss(x,y)定義為選擇候選數(shù)據(jù)。
通過(guò)使用根據(jù)多個(gè)像素計(jì)算的傳播數(shù)據(jù)來(lái)計(jì)算選擇候選數(shù)據(jù)。在圖6中,通過(guò)使用根據(jù)四個(gè)像素計(jì)算的傳播數(shù)據(jù)來(lái)計(jì)算目標(biāo)像素r(x,y)的選擇候選數(shù)據(jù)。
第三運(yùn)算器256將數(shù)據(jù)陣列ss(x,y)輸出至寄存器257。寄存器257保存數(shù)據(jù)陣列ss(x,y)。通過(guò)寄存器257保存選擇候選數(shù)據(jù)與步驟s47相對(duì)應(yīng)。
隨后,寄存器257將數(shù)據(jù)陣列ss(x,y)順序地輸出至選擇器258。選擇器258從數(shù)據(jù)陣列ss(x,y)選擇最優(yōu)像素?cái)?shù)據(jù)以及將該像素?cái)?shù)據(jù)輸出為輸出像素?cái)?shù)據(jù)vx(x,y)。隨后,在本地存儲(chǔ)器23中展開(kāi)輸出像素?cái)?shù)據(jù)vx(x,y)。
在這里,作為傳播數(shù)據(jù)的數(shù)據(jù)陣列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)的數(shù)據(jù)容量趨向于很大。例如,將傳播數(shù)據(jù)的容量表示為l*d*h。
圖7示出了圖6中所示的處理中的執(zhí)行流程。在圖7中,rd表示從行存儲(chǔ)器讀取像素?cái)?shù)據(jù),ex表示由運(yùn)算器執(zhí)行的算術(shù)運(yùn)算,以及st表示對(duì)寄存器進(jìn)行寫(xiě)入。每次執(zhí)行兩次ex。然而,可以執(zhí)行一次或者三次或者更多次ex。
水平方向上的一行與流水線的每個(gè)級(jí)中的處理相對(duì)應(yīng)。例如,在流水線的第一級(jí)中,通過(guò)使用r(x+4,y)作為目標(biāo)像素來(lái)執(zhí)行讀取rd、算術(shù)運(yùn)算ex、算術(shù)運(yùn)算ex和寫(xiě)入st,以及在流水線的第二級(jí)中,通過(guò)使用r(x+3,y)作為目標(biāo)像素來(lái)執(zhí)行讀取rd、算術(shù)運(yùn)算ex、算術(shù)運(yùn)算ex和寫(xiě)入st。也就是說(shuō),對(duì)于每個(gè)級(jí)將算術(shù)運(yùn)算ex的執(zhí)行時(shí)序移位。
在完成沿著x方向的一行的流水線處理之后,將流水線處理沿著y方向移位一個(gè)像素以及執(zhí)行下一行的流水線處理。在圖7中,在完成y坐標(biāo)為y的一行的流水線處理之后,執(zhí)行y坐標(biāo)為y+1的一行的流水線處理。
(并行流水線)
接著,將參照?qǐng)D8對(duì)由并行布置的兩個(gè)流水線處理圖6中所示的處理的示例進(jìn)行描述。在圖8中,第一流水線的處理單元250和第二流水線的處理單元350并行地執(zhí)行處理。
處理單元250和處理單元350具有相同的配置。處理單元250的第一運(yùn)算器251、寄存器252、第二運(yùn)算器253、寄存器255、第三運(yùn)算器256、寄存器257和選擇器258分別與處理單元350的第一運(yùn)算器351、寄存器352、第二運(yùn)算器353、寄存器355、第三運(yùn)算器356、寄存器357和選擇器358相對(duì)應(yīng)。處理單元250和處理單元350的處理與圖6中的處理相同,從而省略其描述。
第一流水線的處理單元250將r(x,y)定義為目標(biāo)像素以及第二流水線的處理單元350將r(x,y+1)定義為目標(biāo)像素。換句話說(shuō),第一流水線的處理單元250和第二流水線的處理單元350將沿著y方向相對(duì)彼此移位一個(gè)像素的像素定義為目標(biāo)像素。因此,周邊像素也沿y方向相對(duì)彼此移位一個(gè)像素。
圖9示出了圖8中所示的處理中的執(zhí)行流程。在圖9中,rd表示從行存儲(chǔ)器讀取像素?cái)?shù)據(jù),ex表示由運(yùn)算器執(zhí)行的算術(shù)運(yùn)算,以及st表示對(duì)寄存器進(jìn)行寫(xiě)入。每次執(zhí)行兩次ex。然而,可以執(zhí)行一次或者三次或者更多次ex。
在圖8中,兩個(gè)流水線并行地執(zhí)行流水線處理。具體地,第一流水線的處理單元250和第二流水線的處理單元350同時(shí)執(zhí)行處理。
例如,當(dāng)?shù)谝涣魉€的處理單元250通過(guò)將r(x,y)定義為目標(biāo)像素來(lái)執(zhí)行處理時(shí),第二流水線的處理單元350通過(guò)將r(x,y+1)定義為目標(biāo)像素來(lái)執(zhí)行處理。換句話說(shuō),在圖8中,目標(biāo)像素相對(duì)于彼此移位一個(gè)像素。因此,如圖9中所示,同時(shí)執(zhí)行將r(x,y)定義為目標(biāo)像素的處理和將r(x,y+1)定義為目標(biāo)像素的處理。也就是說(shuō),第一流水線的處理單元250讀取目標(biāo)像素r(x,y)的像素?cái)?shù)據(jù)的時(shí)序(rd)和第二流水線的處理單元350讀取目標(biāo)像素r(x,y+1)的像素?cái)?shù)據(jù)的時(shí)序(rd)是相同的。
因此,圖8中所示的并行流水線配置很難使用其它流水線的算術(shù)運(yùn)算結(jié)果。換句話說(shuō),很難將通過(guò)第一流水線的處理單元250獲得的傳播數(shù)據(jù)用于第二流水線的處理單元350的處理。具體地,目標(biāo)像素是第一流水線的處理單元250中的r(x,y)的處理中的傳播數(shù)據(jù)不能用于目標(biāo)像素是第二流水線的處理單元350中的目標(biāo)像素r(x,y+1)的處理。
(處理單元的示意性配置)
因此,實(shí)施例使用下面描述的圖像處理裝置和圖像處理方法。將參考圖10和圖11對(duì)根據(jù)實(shí)施例的圖像處理裝置的處理單元的配置進(jìn)行描述。圖10是用于解釋并行布置的流水線的兩個(gè)處理單元的目標(biāo)像素和周邊像素的圖。圖11是示出第一流水線的處理單元50和第二流水線的處理單元150的概況的圖。
如上所述,第一流水線和第二流水線并行地執(zhí)行流水線處理。例如,第一流水線和第二流水線通過(guò)使用沿著y方向相對(duì)于彼此移位一個(gè)像素的像素作為目標(biāo)像素執(zhí)行流水線處理。第一流水線具有多級(jí)處理單元以執(zhí)行流水線處理。類(lèi)似地,第二流水線具有多級(jí)處理單元以執(zhí)行流水線處理。第一流水線中包括的處理單元使用y坐標(biāo)為y的像素作為目標(biāo)像素。第二流水線中包括的處理單元使用y坐標(biāo)為y+1的像素作為目標(biāo)像素。
圖11示出了第一流水線中的一個(gè)級(jí)處理單元50和第二流水線中的一個(gè)級(jí)處理單元150。如圖10和圖11中所示,處理單元50的目標(biāo)像素是r(x,y)以及處理單元150的目標(biāo)像素是r(x-1,y+1)。
處理單元50包括第一運(yùn)算器51、寄存器52、第二運(yùn)算器53a、第三運(yùn)算器54b至54d、第四運(yùn)算器56、選擇器58。處理單元150包括第一運(yùn)算器151、寄存器152、第二運(yùn)算器153a、第三運(yùn)算器154b至154d、第四運(yùn)算器156、寄存器157和選擇器158以及延遲元件59b至59d。
首先,將對(duì)處理單元50中的處理進(jìn)行描述。第一運(yùn)算器51通過(guò)使用目標(biāo)像素?cái)?shù)據(jù)和周邊像素?cái)?shù)據(jù)執(zhí)行第一算術(shù)運(yùn)算。目標(biāo)像素?cái)?shù)據(jù)是與第一圖像r的目標(biāo)像素r(x,y)相對(duì)應(yīng)的像素?cái)?shù)據(jù)。周邊像素?cái)?shù)據(jù)是位于第二圖像ref的坐標(biāo)(x,y)周?chē)南袼氐南袼財(cái)?shù)據(jù)。具體地,周邊像素?cái)?shù)據(jù)是與周邊像素ref(x,y)至ref(x+d,y)相對(duì)應(yīng)的像素?cái)?shù)據(jù)。周邊像素的數(shù)量為l,從而設(shè)置l個(gè)第一運(yùn)算器51。l個(gè)第一運(yùn)算器51中的每一個(gè)基于兩個(gè)像素?cái)?shù)據(jù)執(zhí)行算術(shù)運(yùn)算處理。從而,獲得l個(gè)算術(shù)運(yùn)算結(jié)果。
l個(gè)寄存器52中的每一個(gè)保存算術(shù)運(yùn)算結(jié)果。在這里,將由l個(gè)寄存器52保存的算術(shù)運(yùn)算結(jié)果表示為數(shù)據(jù)陣列sc(x,y)。數(shù)據(jù)陣列sc(x,y)由l個(gè)算術(shù)運(yùn)算結(jié)果形成。將l定義為第一運(yùn)算器51中的放大數(shù)量。具體地,放大數(shù)量l是第一運(yùn)算器51中為一個(gè)目標(biāo)像素r(x,y)生成的數(shù)據(jù)的數(shù)量。例如,將128、256等等用作放大數(shù)量l。
具體地,通過(guò)相對(duì)于一個(gè)目標(biāo)像素r(x,y)順序地改變周邊像素來(lái)生成數(shù)據(jù)陣列sc(x,y)。更具體地,將l個(gè)周邊像素的像素?cái)?shù)據(jù)順序地輸入到第一運(yùn)算器51中。隨后,基于由第一運(yùn)算器51生成的放大數(shù)據(jù)生成數(shù)據(jù)陣列sc(x,y)。
隨后,將數(shù)據(jù)陣列sc(x,y)輸入到第二運(yùn)算器53a和第三運(yùn)算器54b至54d中。在圖11中,設(shè)置了三個(gè)第三運(yùn)算器54以及將它們標(biāo)識(shí)為第三運(yùn)算器54b至54d。此外,分別將數(shù)據(jù)陣列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)從行存儲(chǔ)器或者流水線處理的另一個(gè)級(jí)輸入到第二運(yùn)算器53a和第三運(yùn)算器54b至54d中。
第二運(yùn)算器53a和第三運(yùn)算器54b至54d對(duì)所輸入的兩個(gè)數(shù)據(jù)陣列執(zhí)行第二算術(shù)運(yùn)算或者第三算術(shù)運(yùn)算。具體地,第二運(yùn)算器53a和第三運(yùn)算器54b至54d通過(guò)使用數(shù)據(jù)陣列sc(x,y)來(lái)更新數(shù)據(jù)陣列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)。
例如,將數(shù)據(jù)陣列sc(x,y)和數(shù)據(jù)陣列s(x-1,y)輸入到第二運(yùn)算器53a中。隨后,第二運(yùn)算器53a通過(guò)使用數(shù)據(jù)陣列sc(x,y)來(lái)更新數(shù)據(jù)陣列s(x-1,y)。這是第二算術(shù)運(yùn)算。
類(lèi)似地,第三運(yùn)算器54b至54d通過(guò)使用數(shù)據(jù)陣列sc(x,y)來(lái)更新s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)。這是第三算術(shù)運(yùn)算。將由第二運(yùn)算器53a和第三運(yùn)算器54b至54d生成的數(shù)據(jù)陣列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)定義為傳播數(shù)據(jù)。將數(shù)據(jù)陣列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)輸入到第四運(yùn)算器56中。
第三運(yùn)算器54b至54d通過(guò)使用兩個(gè)像素的放大數(shù)據(jù)執(zhí)行第三算術(shù)運(yùn)算。具體地,第三運(yùn)算器54b至54d通過(guò)使用目標(biāo)像素的放大數(shù)據(jù)和基準(zhǔn)像素的放大數(shù)據(jù)執(zhí)行第三算術(shù)運(yùn)算。第三運(yùn)算器54b的目標(biāo)像素是r(x,y)以及第三運(yùn)算器54b的基準(zhǔn)像素是r(x-1,y-1)。第三運(yùn)算器54c的目標(biāo)像素是r(x,y)以及第三運(yùn)算器54c的基準(zhǔn)像素是r(x-2,y-1)。第三運(yùn)算器54d的目標(biāo)像素是r(x,y)以及第三運(yùn)算器54d的基準(zhǔn)像素是r(x+1,y-1)。
第四運(yùn)算器56對(duì)數(shù)據(jù)陣列s(x-1,y)、s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)執(zhí)行第四算術(shù)運(yùn)算。通過(guò)這樣做,第四運(yùn)算器56計(jì)算數(shù)據(jù)陣列ss(x,y)。由第四運(yùn)算器56執(zhí)行的第四算術(shù)運(yùn)算與圖4中的步驟s46相對(duì)應(yīng)。將由第四運(yùn)算器56生成的數(shù)據(jù)陣列ss(x,y)定義為選擇候選數(shù)據(jù)。
通過(guò)使用根據(jù)多個(gè)像素計(jì)算的傳播數(shù)據(jù)來(lái)計(jì)算選擇候選數(shù)據(jù)。在圖6中,通過(guò)使用根據(jù)四個(gè)像素計(jì)算的傳播數(shù)據(jù)來(lái)計(jì)算目標(biāo)像素r(x,y)的選擇數(shù)據(jù)。
第四運(yùn)算器56將數(shù)據(jù)陣列ss(x,y)輸出至寄存器57。寄存器57保存數(shù)據(jù)陣列ss(x,y)。隨后,寄存器57將數(shù)據(jù)陣列ss(x,y)順序地輸出至選擇器58。選擇器58從數(shù)據(jù)陣列ss(x,y)選擇最優(yōu)像素?cái)?shù)據(jù)以及將該像素?cái)?shù)據(jù)輸出為輸出像素?cái)?shù)據(jù)vx(x,y)。具體地,選擇器58從數(shù)據(jù)陣列ss(x,y)中包括的多個(gè)數(shù)據(jù)選擇最低開(kāi)銷(xiāo)數(shù)據(jù)。
接下來(lái),將對(duì)處理單元150中的處理進(jìn)行描述。第一運(yùn)算器151通過(guò)使用目標(biāo)像素?cái)?shù)據(jù)和周邊像素?cái)?shù)據(jù)執(zhí)行第一算術(shù)運(yùn)算。目標(biāo)像素?cái)?shù)據(jù)是與第一圖像r的目標(biāo)像素r(x+1,y+1)相對(duì)應(yīng)的像素?cái)?shù)據(jù)。周邊像素?cái)?shù)據(jù)是位于第二圖像ref的坐標(biāo)(x+1,y+1)周?chē)南袼氐南袼財(cái)?shù)據(jù)。具體地,周邊像素?cái)?shù)據(jù)是與周邊像素ref(x-1,y)至ref(x-1+d,y)相對(duì)應(yīng)的像素?cái)?shù)據(jù)。周邊像素的數(shù)量為l,從而設(shè)置l個(gè)第一運(yùn)算器51。l個(gè)第一運(yùn)算器51中的每一個(gè)基于兩個(gè)像素?cái)?shù)據(jù)執(zhí)行算術(shù)運(yùn)算處理。從而,獲得l個(gè)算術(shù)運(yùn)算結(jié)果。
l個(gè)寄存器152中的每一個(gè)保存算術(shù)運(yùn)算結(jié)果。在這里,將由l個(gè)寄存器152保存的算術(shù)運(yùn)算結(jié)果表示為數(shù)據(jù)陣列sc(x-1,y+1)。數(shù)據(jù)陣列sc(x-1,y+1)由l個(gè)算術(shù)運(yùn)算結(jié)果形成。將l定義為第一運(yùn)算器151中的放大數(shù)量。具體地,放大數(shù)量l是第一運(yùn)算器151中為一個(gè)目標(biāo)像素r(x-1,y+1)生成的數(shù)據(jù)的數(shù)量。例如,放大數(shù)量l具有128、256等等的值。第一運(yùn)算器51的放大數(shù)量與第一運(yùn)算器151的放大數(shù)量相同。
具體地,通過(guò)相對(duì)于一個(gè)目標(biāo)像素r(x-1,y+1)順序地改變周邊像素來(lái)生成數(shù)據(jù)陣列sc(x-1,y+1)。更具體地,將l個(gè)周邊像素的像素?cái)?shù)據(jù)順序地輸入到運(yùn)算器151中。隨后,基于由第一運(yùn)算器151生成的放大數(shù)據(jù)生成數(shù)據(jù)陣列sc(x-1,y+1)。
隨后,將數(shù)據(jù)陣列sc(x-1,y+1)輸入到第二運(yùn)算器153a和第三運(yùn)算器154b至154d中。在圖11中,設(shè)置了三個(gè)第三運(yùn)算器154以及將它們標(biāo)識(shí)為第三運(yùn)算器154b至154d。此外,分別將數(shù)據(jù)陣列s(x-2,y+1)、s(x-2,y)、s(x-3,y)和s(x,y)從行存儲(chǔ)器或者流水線處理的另一個(gè)級(jí)輸入到第二運(yùn)算器153a和第三運(yùn)算器154b至154d中。
第二運(yùn)算器153a和第三運(yùn)算器154b至154d對(duì)所輸入的兩個(gè)數(shù)據(jù)陣列執(zhí)行第二算術(shù)運(yùn)算或者第三算術(shù)運(yùn)算。具體地,第二運(yùn)算器153a和第三運(yùn)算器154b至154d通過(guò)使用數(shù)據(jù)陣列sc(x-1,y+1)來(lái)更新數(shù)據(jù)陣列s(x-2,y+1)、s(x-2,y)、s(x-3,y)和s(x,y)。
例如,將數(shù)據(jù)陣列sc(x-1,y+1)和數(shù)據(jù)陣列s(x-2,y+1)輸入到第二運(yùn)算器153a中。隨后,第二運(yùn)算器153a通過(guò)使用數(shù)據(jù)陣列sc(x-1,y+1)來(lái)更新數(shù)據(jù)陣列s(x-2,y+1)。這是第二算術(shù)運(yùn)算。
類(lèi)似地,第三運(yùn)算器154b至154d通過(guò)使用數(shù)據(jù)陣列sc(x-1,y+1)來(lái)更新s(x-2,y)、s(x-3,y)和s(x,y)。這是第三算術(shù)運(yùn)算。將由第二運(yùn)算器153a和第三運(yùn)算器154b至154d生成的數(shù)據(jù)陣列s(x-2,y+1)、s(x-2,y)、s(x-3,y)和s(x,y)定義為傳播數(shù)據(jù)。將數(shù)據(jù)陣列s(x-2,y)、s(x-2,y)、s(x-3,y)和s(x,y)輸入到第四運(yùn)算器156中。
第三運(yùn)算器154b至154d通過(guò)使用兩個(gè)像素的放大數(shù)據(jù)執(zhí)行第三算術(shù)運(yùn)算。具體地,第三運(yùn)算器154b至154d通過(guò)使用目標(biāo)像素的放大數(shù)據(jù)和基準(zhǔn)像素的放大數(shù)據(jù)執(zhí)行第三算術(shù)運(yùn)算。第三運(yùn)算器154b的目標(biāo)像素是r(x-1,y+1)以及第三運(yùn)算器154b的基準(zhǔn)像素是(x-2,y)。第三運(yùn)算器154c的目標(biāo)像素是r(x-1,y+1)以及第三運(yùn)算器154c的基準(zhǔn)像素是r(x-3,y)。第三運(yùn)算器154d的目標(biāo)像素是r(x-1,y+1)以及第三運(yùn)算器154d的基準(zhǔn)像素是r(x,y)。
此外,在實(shí)施例中,將由處理單元50生成的數(shù)據(jù)陣列s(x-1,y-1)、s(x-2,y-1)和s(x+1,y-1)通過(guò)延遲元件59b至59d輸入到第三運(yùn)算器154b至154d中。具體地,將由第三運(yùn)算器54b生成的s(x-1,y-1)通過(guò)延遲元件59b輸入到第三運(yùn)算器154b中。將由第三運(yùn)算器54c生成的s(x-2,y-1)通過(guò)延遲元件59c輸入到第三運(yùn)算器154c中。將由第三運(yùn)算器54d生成的s(x+1,y-1)通過(guò)延遲元件59d輸入到第三運(yùn)算器154d中。
第四運(yùn)算器156對(duì)s(x-2,y+1)、s(x-2,y)、s(x-3,y)和s(x,y)執(zhí)行第四算術(shù)運(yùn)算。通過(guò)這樣做,第四運(yùn)算器156計(jì)算數(shù)據(jù)陣列ss(x-1,y+1)。將由第四運(yùn)算器156生成的數(shù)據(jù)陣列ss(x-1,y+1)定義為選擇候選數(shù)據(jù)。
第四運(yùn)算器156將所計(jì)算的數(shù)據(jù)陣列ss(x-1,y+1)輸出至寄存器157。寄存器157保存數(shù)據(jù)陣列ss(x-1,y+1)。隨后,寄存器157將數(shù)據(jù)陣列ss順序地輸出至選擇器158。選擇器158從數(shù)據(jù)陣列ss(x-1,y+1)選擇最優(yōu)像素?cái)?shù)據(jù)以及將該像素?cái)?shù)據(jù)輸出為輸出像素?cái)?shù)據(jù)vx(x-1,y+1)。例如,選擇器58從數(shù)據(jù)陣列ss(x-1,y+1)中包括的多個(gè)數(shù)據(jù)選擇最低開(kāi)銷(xiāo)數(shù)據(jù)。
以這種方式,將由第三運(yùn)算器54b至54d生成的傳播數(shù)據(jù)通過(guò)延遲元件59b至59d輸入到第三運(yùn)算器154b至154d中。也就是說(shuō),第三運(yùn)算器154b至154d通過(guò)使用并行布置的第一流水線的處理單元50中的算術(shù)運(yùn)算結(jié)果來(lái)執(zhí)行第三算術(shù)運(yùn)算。在此時(shí),由延遲元件59b至59d調(diào)整將傳播數(shù)據(jù)輸入到第三運(yùn)算器154b至154d中的時(shí)序。通過(guò)這樣做,可以減少保存?zhèn)鞑?shù)據(jù)的寄存器的數(shù)量。
(圖像處理裝置的主要部分的配置)
接下來(lái),將參照?qǐng)D12對(duì)根據(jù)實(shí)施例的圖像處理裝置的詳細(xì)配置進(jìn)行描述。圖12是示出圖像處理裝置的主要部分的配置的圖。
圖像處理裝置700包括行存儲(chǔ)器81、行存儲(chǔ)器控制電路82、延遲調(diào)整控制電路83、處理單元70和處理單元170。處理單元70表示第一流水線中包括的一個(gè)級(jí)處理單元。處理單元170表示第二流水線中包括的一個(gè)級(jí)處理單元。第一流水線和第二流水線并行地執(zhí)行流水線處理。
處理單元70具有第一運(yùn)算器74、第二運(yùn)算器75、第三運(yùn)算器76a和76b、寄存器77以及延遲元件78a和78b。處理單元170具有第一運(yùn)算器174、第二運(yùn)算器175、第三運(yùn)算器176a和176b、寄存器177以及延遲元件178a和178b。
行存儲(chǔ)器81存儲(chǔ)第一圖像和第二圖像的像素?cái)?shù)據(jù)。在行存儲(chǔ)器81中,展開(kāi)第一圖像和第二圖像中包括的像素?cái)?shù)據(jù)。行存儲(chǔ)器控制電路82控制行存儲(chǔ)器81。行存儲(chǔ)器控制電路82控制從本地存儲(chǔ)器23到行存儲(chǔ)器81的數(shù)據(jù)寫(xiě)入。此外,行存儲(chǔ)器控制電路82控制從行存儲(chǔ)器81到處理單元70和170的數(shù)據(jù)讀取。
具體地,行存儲(chǔ)器控制電路82從本地存儲(chǔ)器23讀取對(duì)其執(zhí)行流水線處理的第一圖像和第二圖像中包括的像素?cái)?shù)據(jù),以及將該像素?cái)?shù)據(jù)寫(xiě)入到行存儲(chǔ)器81中。行存儲(chǔ)器控制電路82在合適時(shí)序處從行存儲(chǔ)器81讀取處理單元70和處理單元170的處理所需的像素?cái)?shù)據(jù)。當(dāng)圖像處理裝置執(zhí)行半全局匹配時(shí),行存儲(chǔ)器81存儲(chǔ)第一圖像和第二圖像的一部分的像素?cái)?shù)據(jù)。隨后,行存儲(chǔ)器控制電路82向處理單元70和170供應(yīng)從行存儲(chǔ)器81讀取的像素?cái)?shù)據(jù)。延遲調(diào)整控制電路83控制稍后描述的延遲元件78a、78b、178a和178b的延遲量。
將從行存儲(chǔ)器81讀取的像素?cái)?shù)據(jù)輸入到第一運(yùn)算器74和174中。第一運(yùn)算器74和174對(duì)像素?cái)?shù)據(jù)執(zhí)行算術(shù)運(yùn)算處理。具體地,將目標(biāo)像素的像素?cái)?shù)據(jù)和周邊像素的像素?cái)?shù)據(jù)輸入到第一運(yùn)算器74和174中。第一運(yùn)算器74和174分別與圖11中所示的第一運(yùn)算器51和第一運(yùn)算器151相對(duì)應(yīng)。
將多個(gè)周邊像素的像素?cái)?shù)據(jù)順序地輸入到第一運(yùn)算器74和174中。隨后,第一運(yùn)算器74和174將目標(biāo)像素的像素?cái)?shù)據(jù)和基于目標(biāo)像素的像素?cái)?shù)據(jù)的算術(shù)運(yùn)算結(jié)果輸入至第二運(yùn)算器75以及第三運(yùn)算器76a和76b。第一運(yùn)算器74的算術(shù)運(yùn)算結(jié)果是第一中間數(shù)據(jù)。第一中間數(shù)據(jù)與上面描述的放大數(shù)據(jù)相對(duì)應(yīng)。
第一運(yùn)算器74和174通過(guò)使用順序輸入的周邊像素的像素?cái)?shù)據(jù)順序地執(zhí)行算術(shù)運(yùn)算。即,第一運(yùn)算器74和174順序地輸出與順序輸入的周邊像素的像素?cái)?shù)據(jù)相對(duì)應(yīng)的算術(shù)運(yùn)算結(jié)果。例如,用于第一運(yùn)算器74和174的周邊像素的數(shù)量是l。因此,第一運(yùn)算器74和174輸出時(shí)間序列中的l個(gè)數(shù)據(jù)。第一運(yùn)算器74和174對(duì)順序輸入的像素?cái)?shù)據(jù)執(zhí)行求平均值等等。
第二運(yùn)算器75和175基于順序輸入的l個(gè)數(shù)據(jù)執(zhí)行算術(shù)運(yùn)算處理。將第二運(yùn)算器75和175的算術(shù)運(yùn)算結(jié)果定義為第二中間數(shù)據(jù)。第二中間數(shù)據(jù)與上面描述的傳播數(shù)據(jù)相對(duì)應(yīng)。第二中間數(shù)據(jù)分別由寄存器77和177保存。隨后,第二運(yùn)算器75和175基于由寄存器77和177保存的第二中間數(shù)據(jù)和下一個(gè)要輸入的第一中間數(shù)據(jù)執(zhí)行第二算術(shù)運(yùn)算。換句話說(shuō),第二運(yùn)算器75通過(guò)使用基于已經(jīng)生成的第一中間數(shù)據(jù)的第二中間數(shù)據(jù)和新生成的第一中間數(shù)據(jù)執(zhí)行第二算術(shù)運(yùn)算。例如,第二算術(shù)運(yùn)算是乘法-累加運(yùn)算。
隨后,第二運(yùn)算器75和175的算術(shù)運(yùn)算結(jié)果被寄存器77和177保存為新的第二中間數(shù)據(jù)。第二運(yùn)算器75和175將第二算術(shù)運(yùn)算重復(fù)與第一中間數(shù)據(jù)的數(shù)量(l)相對(duì)應(yīng)的次數(shù)。第二運(yùn)算器75和175分別與圖11中所示的第二運(yùn)算器53a和153a相對(duì)應(yīng)。
類(lèi)似地,將來(lái)自第一運(yùn)算器74的第一中間數(shù)據(jù)順序地輸入到第三運(yùn)算器76a和76b中。此外,將來(lái)自另一個(gè)處理單元的第一中間數(shù)據(jù)順序地輸入到第三運(yùn)算器76a和76b中。隨后,第三運(yùn)算器76a和76b基于兩個(gè)中間數(shù)據(jù)執(zhí)行第三算術(shù)運(yùn)算。第三運(yùn)算器76a和76b對(duì)順序輸入的第一中間數(shù)據(jù)執(zhí)行第三算術(shù)運(yùn)算。在上面的描述中,將來(lái)自另一個(gè)處理單元的第一中間數(shù)據(jù)輸入到第三運(yùn)算器76a和76b中。然而,可以將行存儲(chǔ)器81中的像素?cái)?shù)據(jù)輸入到第三運(yùn)算器76a和76b中。
具體地,第三運(yùn)算器76a和76b通過(guò)使用目標(biāo)像素的第一中間數(shù)據(jù)和周邊像素的中間數(shù)據(jù)執(zhí)行第三算術(shù)運(yùn)算。如上所述,第一中間數(shù)據(jù)中包括l個(gè)數(shù)據(jù)。類(lèi)似地,周邊像素的第一中間數(shù)據(jù)中包括l個(gè)數(shù)據(jù)。第三運(yùn)算器76a和76b對(duì)目標(biāo)像素的第一中間數(shù)據(jù)中包括的數(shù)據(jù)和周邊像素的第一中間數(shù)據(jù)中包括的數(shù)據(jù)順序地執(zhí)行算術(shù)運(yùn)算。
將第三運(yùn)算器76a和76b的算術(shù)運(yùn)算結(jié)果定義為第三中間數(shù)據(jù)。第三中間數(shù)據(jù)與上面描述的傳播數(shù)據(jù)相對(duì)應(yīng)。由第三運(yùn)算器76a計(jì)算的第三中間數(shù)據(jù)被稱為a2,以及由第三運(yùn)算器76b計(jì)算的第三中間數(shù)據(jù)被稱為a3。將第三中間數(shù)據(jù)a2通過(guò)延遲元件78a輸入到第三運(yùn)算器176a中。將第三中間數(shù)據(jù)a3通過(guò)延遲元件78b輸入到第三運(yùn)算器176b中。
第三運(yùn)算器176a和176b以與第三運(yùn)算器76a和76b相同的方式執(zhí)行第三算術(shù)運(yùn)算。具體地,將來(lái)自第一運(yùn)算器174的第一中間數(shù)據(jù)和來(lái)自第三運(yùn)算器76a的第三中間數(shù)據(jù)a2順序地輸入到第三運(yùn)算器176a中。第三運(yùn)算器176a基于順序輸入的兩個(gè)數(shù)據(jù)執(zhí)行第三算術(shù)運(yùn)算。類(lèi)似地,將來(lái)自第一運(yùn)算器174的第一中間數(shù)據(jù)和來(lái)自第三運(yùn)算器76b的第三中間數(shù)據(jù)a3順序地輸入到第三運(yùn)算器176b中。第三運(yùn)算器176b基于順序輸入的兩個(gè)數(shù)據(jù)執(zhí)行第三算術(shù)運(yùn)算。
將由第三運(yùn)算器176a計(jì)算的數(shù)據(jù)定義為第三中間數(shù)據(jù)b2,以及將由第三運(yùn)算器176b計(jì)算的數(shù)據(jù)定義為第三中間數(shù)據(jù)b3。將第三中間數(shù)據(jù)b2和b3通過(guò)延遲元件178a和178b輸出至另一個(gè)流水線的處理單元。
盡管在圖12中未示出,但是處理單元70通過(guò)使用由第二運(yùn)算器75計(jì)算的第二中間數(shù)據(jù)以及由第三運(yùn)算器76a和76b計(jì)算的第三中間數(shù)據(jù)a2和a3生成輸出像素?cái)?shù)據(jù)。類(lèi)似地,處理單元170通過(guò)使用由第二運(yùn)算器175計(jì)算的第二中間數(shù)據(jù)以及由第三運(yùn)算器176a和176b計(jì)算的第三中間數(shù)據(jù)b2和b3生成輸出像素?cái)?shù)據(jù)。生成輸出像素?cái)?shù)據(jù)的處理與圖11中所示的由第四運(yùn)算器56和156以及選擇器58和158執(zhí)行的處理相同,從而省略其描述。
圖13示出了圖12中所示的處理中的執(zhí)行流程。在圖13中,rd表示從行存儲(chǔ)器讀取像素?cái)?shù)據(jù),ex表示由運(yùn)算器執(zhí)行的算術(shù)運(yùn)算,以及st表示對(duì)寄存器進(jìn)行寫(xiě)入。此外,圖13示出了第一流水線p1中的流水線處理和第二流水線p2中的流水線處理。此外,圖13示出了第一流水線p1中包括的五個(gè)級(jí)處理單元70a至70e以及第二流水線p2中包括的五個(gè)級(jí)處理單元170a至170e。
關(guān)于五個(gè)級(jí)處理單元70a到70e,從最前級(jí)側(cè)順序地設(shè)置處理單元70a、處理單元70b、處理單元70c、處理單元70d和處理單元70e。關(guān)于五個(gè)級(jí)處理單元170a到170e,從最前級(jí)側(cè)順序地設(shè)置處理單元170a、處理單元170b、處理單元170c、處理單元170d和處理單元170e。即,流水線p1和p2中的最前級(jí)處理單元是處理單元70a和170a。將中間數(shù)據(jù)從前級(jí)處理單元輸出至后級(jí)處理單元。后級(jí)處理單元通過(guò)使用由前級(jí)處理單元計(jì)算的中間數(shù)據(jù)來(lái)執(zhí)行算術(shù)運(yùn)算。
第一流水線p1中的目標(biāo)像素的y坐標(biāo)是y,以及第二流水線p2中的目標(biāo)像素的y坐標(biāo)是y+1。換句話說(shuō),y坐標(biāo)是并行流水線之間的差。例如,在第一流水線p1的處理單元70a至70e中,目標(biāo)像素的y坐標(biāo)是y,以及在第二流水線p2的處理單元170a至170e中,目標(biāo)像素的y坐標(biāo)是y+1。在一個(gè)流水線中,在多級(jí)處理單元中,目標(biāo)像素的x坐標(biāo)從相鄰目標(biāo)像素的x坐標(biāo)變化1。例如,處理單元70a、70b、70c、70d和70e的x坐標(biāo)是x+4、x+3、x+2、x+1和x+0。
對(duì)處理單元70a的目標(biāo)像素(x+4,y)的處理的時(shí)序與對(duì)處理單元170a的目標(biāo)像素(x+3,y+1)的處理的時(shí)序相同。在第一流水線p1中,處理單元70a至70e的處理時(shí)序相對(duì)于彼此移位一個(gè)單位處理時(shí)段。在這里,一個(gè)單位處理時(shí)段與執(zhí)行圖13中的一個(gè)字段示出的一個(gè)單位處理的時(shí)間段相對(duì)應(yīng)。換句話說(shuō),一個(gè)單位處理時(shí)段與執(zhí)行讀取rd、算術(shù)運(yùn)算ex和寫(xiě)入st中的任何一個(gè)的時(shí)間段相對(duì)應(yīng)。
此外,在每個(gè)處理單元中,最上行與第二中間數(shù)據(jù)相對(duì)應(yīng),以及第二最上行與由第三運(yùn)算器76a或者176a計(jì)算的第三中間數(shù)據(jù)相對(duì)應(yīng)。第三最上行與由第三運(yùn)算器76b或者176b計(jì)算的第三中間數(shù)據(jù)相對(duì)應(yīng)。每個(gè)處理單元由四個(gè)單位處理時(shí)段形成,包括(1)讀取rd、(2)第一算術(shù)運(yùn)算ex、(3)第二算術(shù)運(yùn)算或者第三算術(shù)運(yùn)算ex以及(4)寫(xiě)入st。
如圖13中所示,在一個(gè)處理單元70中,第二運(yùn)算器75與第三運(yùn)算器76a和76b的算術(shù)運(yùn)算ex的時(shí)序相同。在一個(gè)處理單元170中,第二運(yùn)算器175與第三運(yùn)算器176a和176b的算術(shù)運(yùn)算ex的時(shí)序相同。因此,在一個(gè)處理單元中,同時(shí)生成第二中間數(shù)據(jù)和兩個(gè)第三中間數(shù)據(jù)。
在處理單元70b中,執(zhí)行對(duì)目標(biāo)像素r(x+3,y)的處理。將由處理單元70b的第三運(yùn)算器76b生成的第三中間數(shù)據(jù)a3通過(guò)兩個(gè)單位處理時(shí)段的延遲而輸入到處理單元170e的第三運(yùn)算器76b中。
在處理單元70c中,執(zhí)行對(duì)目標(biāo)像素r(x+2,y)的處理。將由處理單元70c的第三運(yùn)算器76a生成的第三中間數(shù)據(jù)a2通過(guò)一個(gè)單位處理時(shí)段的延遲而輸入到處理單元170e的第三運(yùn)算器76a中。處理單元170e執(zhí)行對(duì)目標(biāo)像素r(x-1,y+1)的處理。延遲元件78b的延遲量大于延遲元件78a的延遲量。
以這種方式,將不同延遲給予第三中間數(shù)據(jù)a2和a3,使得可以使用處理單元170e中的第三算術(shù)運(yùn)算中的第三中間數(shù)據(jù)a2和a3。即,第二流水線p2中包括的處理單元170e的第三運(yùn)算器76a和76b可以使用第一流水線p1中生成的第三中間數(shù)據(jù)a2和a3。換句話說(shuō),在流水線之間輸入/輸出第三中間數(shù)據(jù)a2和a3。通過(guò)這樣做,可以減小用于保存第三中間數(shù)據(jù)的寄存器的容量。
盡管圖13僅示出了將第三中間數(shù)據(jù)a2和a3輸入到處理單元170e中的示例,但是可以在延遲調(diào)整控制電路83設(shè)定合適的延遲元件時(shí)在多個(gè)處理單元70和多個(gè)處理單元170之間輸入/輸出第三中間數(shù)據(jù)a2和a3。從而,可以進(jìn)一步減小寄存器的容量。
例如,當(dāng)流水線p1和p2中的每一個(gè)具有處理單元中的六個(gè)級(jí)或者更多個(gè)級(jí)時(shí),可以向處理單元170供應(yīng)由處理單元70d和70e生成的第三中間數(shù)據(jù)a2和a3。此外,當(dāng)并行流水線的數(shù)量增加時(shí),可以增加可以由其它流水線使用的第三中間數(shù)據(jù)a2和a3。例如,在圖12中,當(dāng)除第一流水線p1和第三流水線p3以外還有第三流水線p3時(shí),可以將由第三運(yùn)算器176生成的第三中間數(shù)據(jù)b2和b3輸入到第三流水線的處理單元中。
運(yùn)算器74至76、運(yùn)算器174至176、運(yùn)算器51、53、54和56以及運(yùn)算器151、153、154和156中的一個(gè)或者多個(gè)基于例如“accurateandefficientstereoprocessingbysemi-globalmatchingandmutualinformation”(因特網(wǎng)搜索:http://www.robotic.dlr.de/fileadmin/robotic/hirschmu/cvpr05hh.pdf)中描述的公式(13)和公式(14)執(zhí)行算術(shù)運(yùn)算。例如,第四運(yùn)算器156和第四運(yùn)算器56基于公式(14)執(zhí)行算術(shù)運(yùn)算。此外,第三運(yùn)算器176、第三運(yùn)算器76、第三運(yùn)算器54和第三運(yùn)算器154基于公式(13)執(zhí)行算術(shù)運(yùn)算。
(關(guān)于傳播方向和目標(biāo)像素)
在實(shí)施例中,第一流水線p1的處理單元70將位于沿著與從目標(biāo)像素到周邊像素的傳播方向相反的方向上的像素定義為目標(biāo)像素。將參照?qǐng)D14和圖15對(duì)上述的原因進(jìn)行描述。圖14是用于解釋第一圖像和第二圖像的像素總數(shù)的圖。圖15是用于解釋像素傳播方向和像素傳播數(shù)量的圖。
如圖14中所示,將沿圖像水平方向的像素的總數(shù)定義為d,以及將沿圖像垂直方向的像素的總數(shù)定義為h。即,第一圖像r和第二圖像ref中的每一個(gè)中包括的像素的總數(shù)是d×h。
如圖15中所示,在第三運(yùn)算器中,從目標(biāo)像素r(x,y)到基準(zhǔn)像素的方向是傳播方向。當(dāng)傳播數(shù)量是1時(shí),沒(méi)有傳播。即,目標(biāo)像素的坐標(biāo)與基準(zhǔn)像素的坐標(biāo)相同。具體地,水平像素傳播方向是-x方向,以及水平像素傳播數(shù)量m是2或者4。垂直像素傳播方向是-y方向,以及垂直像素傳播數(shù)量n是2或者4。
在根據(jù)實(shí)施例的圖像處理方法中,將必要的寄存器開(kāi)銷(xiāo)c1表示如下。
c1=l*{(n-1)*m+p}
在這里,p是流水線的并行化程度。并行化程度是并行布置的流水線的數(shù)量。寄存器的容量r2根據(jù)放大數(shù)量、并行化程度、水平像素傳播方向和垂直像素傳播方向而變化。
另一方面,當(dāng)不使用根據(jù)實(shí)施例的圖像處理方法時(shí),將必要的寄存器開(kāi)銷(xiāo)c2表示如下。
c2=l*d*h
如圖14中所示,d是沿圖像水平方向的像素的總數(shù),以及h是沿圖像垂直方向的像素的總數(shù)。在這里,圖16示出了在n=2、m=4、d=640以及h=480的情況下的寄存器開(kāi)銷(xiāo)。在圖16中,輸入像素是一比特。當(dāng)并行化程度p=128時(shí),根據(jù)實(shí)施例的圖像處理裝置的寄存器開(kāi)銷(xiāo)可以是大約1/100。因此,可以阻止寄存器容量的增大。因此,可以高效地執(zhí)行圖像處理。特別地,可以通過(guò)增大并行化流水線的數(shù)量(并行化程度)來(lái)加速處理。
此外,通過(guò)流水線向處理單元170的第三運(yùn)算器176a和176b供應(yīng)由延遲元件78a和78b延遲的第三中間數(shù)據(jù)。具體地,將由第一流水線p1的處理單元70中設(shè)置的延遲元件78a和78b延遲的第三中間數(shù)據(jù)a2和a3輸入到第二流水線p2中包括的處理單元170的第三運(yùn)算器176a和176b中。隨后,第三運(yùn)算器176a和176b基于來(lái)自第一運(yùn)算器174的第一中間數(shù)據(jù)以及來(lái)自延遲元件78a和78b的第三中間數(shù)據(jù)a2和a3執(zhí)行第三算術(shù)運(yùn)算。通過(guò)這樣做,可以在適當(dāng)時(shí)序處使用第三中間數(shù)據(jù)a2和a3。從而,可以防止寄存器開(kāi)銷(xiāo)增大。
此外,通過(guò)選擇目標(biāo)像素來(lái)優(yōu)化第三中間數(shù)據(jù)的時(shí)間軸調(diào)整。通過(guò)這樣做,可以在不增大延遲量的情況下引用第三中間數(shù)據(jù)a2和a3。具體地,通過(guò)適當(dāng)?shù)卦O(shè)置第一流水線p1的目標(biāo)像素和第二流水線p2的目標(biāo)像素的位置,可以將第一流水線p1中的第三中間數(shù)據(jù)用于第二流水線p2中的算術(shù)運(yùn)算。當(dāng)?shù)谌\(yùn)算器76a和76b對(duì)目標(biāo)像素和沿傳播方向從目標(biāo)像素移位的基準(zhǔn)像素執(zhí)行第三算術(shù)運(yùn)算時(shí),從第二流水線p2的處理單元170的目標(biāo)像素到第一流水線p1的處理單元70的目標(biāo)像素的方向與傳播方向相反。例如,如圖10中所示,處理單元170的目標(biāo)像素沿+x方向從處理單元70的目標(biāo)像素移位。在處理單元70中,從目標(biāo)像素到基準(zhǔn)像素的傳播方向是-x方向。從而,可以以少量延遲使用第三中間數(shù)據(jù)a2和a3。
此外,根據(jù)實(shí)施例的圖像處理裝置,可以減小行存儲(chǔ)器的容量。將參考圖17對(duì)行存儲(chǔ)器的減小進(jìn)行描述。圖17是示出了比較示例的行存儲(chǔ)器的配置和根據(jù)實(shí)施例的圖像處理裝置中的行存儲(chǔ)器的配置的圖。在圖17的左側(cè)示出了比較示例的圖像處理裝置中的行存儲(chǔ)器的配置,以及在圖17的右側(cè)示出了根據(jù)實(shí)施例的圖像處理裝置的行存儲(chǔ)器的配置。
在比較示例中,針對(duì)每行存儲(chǔ)原始圖像的圖像數(shù)據(jù),使得每行的容量相同。例如,y+0、y+1和y+2的容量相同。另一方面,在實(shí)施例的配置中,流水線被并行化時(shí)的讀取位置根據(jù)n和m移動(dòng),使得在讀取位置移動(dòng)的范圍中生成不必要的部分。不必要的部分從一開(kāi)始就不被確保為存儲(chǔ)器。
如圖17中所示,比較示例的行存儲(chǔ)器具有x*y的矩形存儲(chǔ)器結(jié)構(gòu)。另一方面,在實(shí)施例中,可以以階梯模式改變基準(zhǔn)像素,使得行存儲(chǔ)器不需要具有矩形形狀。例如,在y+0行中,需要保存像素一直到x+3。另一方面,可以減少要保存的像素的數(shù)量,一直到y(tǒng)+1行中的x+2以及一直到y(tǒng)+2行中的x+1。因此,行存儲(chǔ)器81沒(méi)有與可以減少的像素相對(duì)應(yīng)的部分。
如上所述,根據(jù)實(shí)施例,可以通過(guò)優(yōu)化用于處理單元的處理的存儲(chǔ)器結(jié)構(gòu)來(lái)減小行存儲(chǔ)器的容量。具體地,行存儲(chǔ)器81包括容量彼此不同的多個(gè)行??梢詼p小的部分取決于參數(shù)n、m和p??梢酝ㄟ^(guò)由n、m和p確定的參數(shù)減小行存儲(chǔ)器的容量。行存儲(chǔ)器的具體容量由圖17中所示的公式表示。
當(dāng)確定并行流水線的數(shù)量、每個(gè)流水線中的級(jí)數(shù)、圖像中的像素?cái)?shù)量、放大數(shù)量、傳播數(shù)量等等時(shí),延遲調(diào)整控制電路83可以固定延遲元件78和178的延遲量。換句話說(shuō),當(dāng)算術(shù)運(yùn)算條件固定時(shí),延遲量可以是常量。因此,可以在不提供延遲調(diào)整控制電路83的情況下設(shè)置延遲量固定的延遲元件78和178。要并行化的流水線的數(shù)量可以是三個(gè)或者更多個(gè)。從而,即使在處理被加速時(shí),也可以抑制寄存器容量的增大。因此,可以更平滑地處理復(fù)雜內(nèi)容。當(dāng)并行化程度、傳播數(shù)量等等變化時(shí),延遲調(diào)整控制電路83可以調(diào)整延遲量。
第二實(shí)施例
將參考圖18對(duì)根據(jù)第二實(shí)施例的圖像處理裝置的處理單元的配置進(jìn)行描述。盡管在第一實(shí)施例中傳播的總數(shù)是三個(gè),但是第二實(shí)施例中的傳播總數(shù)是四個(gè)。因此,在處理單元70中設(shè)置第三運(yùn)算器76a至76c以及在處理單元170中設(shè)置第三運(yùn)算器176a至176c。
將第三運(yùn)算器76c的第三中間數(shù)據(jù)a4通過(guò)延遲元件78c輸入到第三運(yùn)算器176c中。在這里,延遲元件78c的延遲量大于延遲元件78a和78b的延遲量。延遲元件78b的延遲量大于延遲元件78a的延遲量。
圖19示出了圖18中所示的配置的處理流程。將處理單元70a的第三中間數(shù)據(jù)a4通過(guò)三個(gè)單位處理時(shí)段的延遲輸入到處理單元170e中。隨后,處理單元170e通過(guò)使用從處理單元70a至70c輸入的第三中間數(shù)據(jù)a2至a4執(zhí)行第三算術(shù)運(yùn)算。即使在這種配置中,也可以獲得與第一實(shí)施例相同的效果。第三中間數(shù)據(jù)a2至a4的延遲量彼此相差一個(gè)單位處理時(shí)段。換句話說(shuō),將來(lái)自三個(gè)處理單元70a至70c的第三中間數(shù)據(jù)a2至a4通過(guò)不同延遲量輸入到一個(gè)處理單元170e中。
其它實(shí)施例
圖20示出了根據(jù)另一個(gè)實(shí)施例的圖像處理裝置的配置。圖像處理裝置800包括存儲(chǔ)第一圖像和第二圖像中包括的像素?cái)?shù)據(jù)的行存儲(chǔ)器81、并行布置以及具有多級(jí)處理單元70a、70b、170a和170b(它們中的每一個(gè)對(duì)像素?cái)?shù)據(jù)執(zhí)行流水線處理)的多個(gè)流水線p1和p2以及控制從行存儲(chǔ)器81到處理單元70a、70b、170a和170b的數(shù)據(jù)讀取的行存儲(chǔ)器控制電路82。處理單元70a包括基于與第一圖像的目標(biāo)像素相對(duì)應(yīng)的目標(biāo)像素?cái)?shù)據(jù)和第二圖像中與目標(biāo)像素的周邊像素相對(duì)應(yīng)的周邊像素?cái)?shù)據(jù)執(zhí)行第一算術(shù)運(yùn)算的第一運(yùn)算器74、基于根據(jù)第一運(yùn)算器74的算術(shù)運(yùn)算結(jié)果的第一中間數(shù)據(jù)執(zhí)行第二算術(shù)運(yùn)算以及根據(jù)順序地改變周邊像素時(shí)的第一中間數(shù)據(jù)計(jì)算第二中間數(shù)據(jù)的第二運(yùn)算器75、基于第一中間數(shù)據(jù)執(zhí)行第三算術(shù)運(yùn)算以及根據(jù)順序地改變周邊像素時(shí)的第一中間數(shù)據(jù)計(jì)算第三中間數(shù)據(jù)的第三運(yùn)算器76、保存順序地改變周邊像素時(shí)的第二中間數(shù)據(jù)的寄存器77以及延遲第三運(yùn)算器的算術(shù)運(yùn)算結(jié)果的延遲元件78。
根據(jù)實(shí)施例的圖像處理方法包括在行存儲(chǔ)器上展開(kāi)第一圖像和第二圖像中包括的像素?cái)?shù)據(jù)的步驟以及通過(guò)使用并行布置的多個(gè)流水線的多級(jí)處理單元對(duì)行存儲(chǔ)器上展開(kāi)的像素?cái)?shù)據(jù)執(zhí)行流水線處理的步驟。
執(zhí)行流水線處理的步驟包括下面描述的步驟(a)至(f)。
(a)第一算術(shù)運(yùn)算步驟,在第一算術(shù)運(yùn)算步驟中,第一運(yùn)算器基于與第一圖像的目標(biāo)像素相對(duì)應(yīng)的目標(biāo)像素?cái)?shù)據(jù)和第二圖像中與目標(biāo)像素的周邊像素相對(duì)應(yīng)的周邊像素?cái)?shù)據(jù)執(zhí)行算術(shù)運(yùn)算,
(b)第二算術(shù)運(yùn)算步驟,在第二算術(shù)運(yùn)算步驟中,第二運(yùn)算器基于根據(jù)第一算術(shù)運(yùn)算步驟中的算術(shù)運(yùn)算結(jié)果的第一中間數(shù)據(jù)執(zhí)行第二算術(shù)運(yùn)算,
(c)寄存器保存根據(jù)第二運(yùn)算器的算術(shù)運(yùn)算結(jié)果的第二中間數(shù)據(jù)的步驟,
(d)第三算術(shù)運(yùn)算步驟,在第三算術(shù)運(yùn)算步驟中,第三運(yùn)算器基于第一中間數(shù)據(jù)執(zhí)行第三算術(shù)運(yùn)算,
(e)延遲元件延遲根據(jù)第三運(yùn)算器的算術(shù)運(yùn)算結(jié)果的第三中間數(shù)據(jù)的步驟,以及
(f)通過(guò)順序地改變周邊像素重復(fù)地執(zhí)行步驟(a)至(e)的步驟。
在上面的描述中,將車(chē)輛的前監(jiān)控系統(tǒng)中的圖像處理作為示例進(jìn)行描述。然而,根據(jù)實(shí)施例的圖像處理裝置和圖像處理方法可以適用于除前監(jiān)控系統(tǒng)以外的系統(tǒng)。根據(jù)實(shí)施例的圖像處理裝置和圖像處理方法可以適用于準(zhǔn)確地執(zhí)行物體識(shí)別的圖像識(shí)別。
盡管已經(jīng)基于實(shí)施例具體地描述了由本發(fā)明人做出的本發(fā)明,但是,不用說(shuō),本發(fā)明不限于實(shí)施例,以及可以在不偏離本發(fā)明范圍的情況下不同地修改本發(fā)明。