相關(guān)申請(qǐng)案的交叉參考
本申請(qǐng)案要求2015年11月11日提交的第62/254,053號(hào)美國臨時(shí)專利申請(qǐng)案的權(quán)益,所述申請(qǐng)案以全文引用的方式并入本文中。
本發(fā)明的實(shí)施例大體上涉及計(jì)算機(jī)視覺系統(tǒng),且更確切地說涉及在計(jì)算機(jī)視覺系統(tǒng)中按比例縮小圖像
背景技術(shù):
稱作高級(jí)輔助駕駛系統(tǒng)(adas)的新等級(jí)的嵌式安全系統(tǒng)已引入到汽車中以減小人類操作失誤。此等系統(tǒng)可提供功能性,例如后視照相機(jī)、電子穩(wěn)定性控制和基于視覺式行人檢測(cè)系統(tǒng)。這些系統(tǒng)中的許多依賴于計(jì)算機(jī)視覺處理以檢測(cè)一或多個(gè)照相機(jī)的視野中的物體。圖像的多分辨率分解,即,以不同分辨率按比例縮小圖像以產(chǎn)生具有不同分辨率的圖像金字塔為計(jì)算機(jī)視覺應(yīng)用中的基本操作。圖像金字塔使得能夠分析在原始圖像中在不同「大小」下,例如,在不同距離上方所俘獲的場(chǎng)景。由于對(duì)于軟件方法的大存儲(chǔ)器要求和對(duì)于硬件方法的大硅區(qū)域要求,用以縮放圖像的當(dāng)前方法對(duì)于嵌式adas應(yīng)用可能非所需的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的實(shí)施例涉及用于按比例縮小計(jì)算機(jī)視覺系統(tǒng)中的圖像的方法和設(shè)備。在一個(gè)方面中,提供一種用于縮放圖像的設(shè)備,所述設(shè)備包含:至少兩個(gè)輸入端口;耦合到所述至少兩個(gè)輸入端口的縮放組件,所述縮放組件包含多個(gè)縮放器,所述縮放組件可配置以將任何縮放器映射到所述至少兩個(gè)輸入端口中的任何輸入端口,且可配置以將多個(gè)縮放器映射到任何輸入端口;以及耦合到所述至少兩個(gè)輸入端口和所述多個(gè)縮放器的輸出的存儲(chǔ)器,所述存儲(chǔ)器經(jīng)配置以存儲(chǔ)每一輸入端口的圖像數(shù)據(jù)和由所述多個(gè)縮放器輸出的經(jīng)縮放圖像數(shù)據(jù)。
在一個(gè)方面中,提供一種用于縮放圖像的設(shè)備,所述設(shè)備包含:至少一個(gè)輸入端口;耦合到所述至少一個(gè)輸入端口的縮放組件,所述縮放組件包含多個(gè)縮放器,其中所述多個(gè)縮放器中的每一縮放器包含垂直縮放濾波器和水平縮放濾波器,每一縮放器經(jīng)配置使得所述垂直縮放濾波器應(yīng)用于輸入圖像數(shù)據(jù),且所述水平縮放濾波器應(yīng)用于所述垂直縮放濾波器的輸出圖像數(shù)據(jù);以及耦合到所述至少一個(gè)輸入端口和所述多個(gè)縮放器的輸出的存儲(chǔ)器,所述存儲(chǔ)器經(jīng)配置以存儲(chǔ)所述至少一個(gè)輸入端口的圖像數(shù)據(jù)和由所述多個(gè)縮放器輸出的經(jīng)縮放圖像數(shù)據(jù)。
在一個(gè)方面中,提供一種用于在圖像縮放器中縮放圖像的方法,所述方法包含:配置所述圖像縮放器中的第一多個(gè)縮放器,使得所述第一多個(gè)縮放器中的一縮放器基于輸入基礎(chǔ)圖像而產(chǎn)生圖像金字塔的初始倍頻程,且所述第一多個(gè)縮放器中的其余縮放器基于所述輸入基礎(chǔ)圖像而在所述初始倍頻程與所述基礎(chǔ)圖像之間各自產(chǎn)生相應(yīng)內(nèi)倍頻程經(jīng)縮放圖像;在所述第一多個(gè)縮放器中的每一縮放器中縮放所述輸入基礎(chǔ)圖像以產(chǎn)生所述初始倍頻程和所述相應(yīng)內(nèi)倍頻程經(jīng)縮放圖像;以及存儲(chǔ)下一倍頻程和所述相應(yīng)內(nèi)倍頻程經(jīng)縮放圖像。
附圖說明
現(xiàn)將僅借助于實(shí)例且參考附圖來描述具體實(shí)施例:
圖1為圖像金字塔的實(shí)例;
圖2為說明用以產(chǎn)生圖像金字塔的方法的實(shí)例;
圖3為具有單個(gè)輸入線程的多個(gè)獨(dú)立縮放器的現(xiàn)有技術(shù)實(shí)例;
圖4為說明用以產(chǎn)生圖像金字塔的方法的實(shí)例;
圖5為具有多個(gè)縮放器的實(shí)例多線程圖像縮放器的框圖;
圖6和7為具有多個(gè)縮放器的多線程圖像縮放器的實(shí)例架構(gòu)的框圖;
圖8a和8b為用于產(chǎn)生圖像金字塔的圖6和7的架構(gòu)的實(shí)例配置;
圖9為說明用以產(chǎn)生圖像金字塔的方法的實(shí)例;
圖10為用于在具有多個(gè)縮放器的多線程圖像縮放器中縮放輸入圖像的方法的流程圖;
圖11為用于使用來自先前倍頻程的縮放產(chǎn)生圖像金字塔的方法的流程圖;
圖12為包含具有多個(gè)縮放器的多線程圖像縮放器的實(shí)例多處理器芯片上系統(tǒng)(soc)的高水平框圖;且
圖13為說明縮放濾波器之間的系數(shù)組的共享的實(shí)例。
具體實(shí)施方式
現(xiàn)在將參考附圖詳細(xì)描述本發(fā)明的特定實(shí)施例。出于一致性,在各個(gè)圖中的類似元件由類似的參考數(shù)字表示。
如先前所提及,在基于照相機(jī)的嵌式安全系統(tǒng)中所執(zhí)行的計(jì)算機(jī)視覺處理需要圖像金字塔的產(chǎn)生,即,從高分辨率輸入所產(chǎn)生的減小分辨率下采樣圖像的層級(jí)??苫谒褂锰囟ㄒ曈X算法而為圖像產(chǎn)生一或多個(gè)圖像金字塔。舉例來說,圖像金字塔可為一組圖像,其中相對(duì)于金字塔中的具有下一較高分辨率的圖像而通過二的因數(shù)水平地和垂直地兩者對(duì)每一圖像進(jìn)行下采樣。在此金字塔中,每一圖像稱作倍頻程。圖1為此金字塔的實(shí)例。
對(duì)于一些算法,經(jīng)下采樣圖像也產(chǎn)生于金字塔的每一倍頻程之間。用以在倍頻程(即,內(nèi)倍頻程經(jīng)縮放圖像)之間產(chǎn)生經(jīng)下采樣圖像的縮放比率可為任意的。舉例來說,對(duì)于汽車安全系統(tǒng)中的行人檢測(cè)和物體檢測(cè),用于倍頻程縮放之間的比率可為1與2之間,例如,1.1、1.12、等,且每一倍頻程之間的經(jīng)縮放圖像的數(shù)目可為八個(gè)。假定具有六個(gè)倍頻程的圖像金字塔,對(duì)于單個(gè)輸入圖像產(chǎn)生5×8=40個(gè)經(jīng)縮放輸出。
通用的圖像縮放軟件方法包含于opencv(開源計(jì)算機(jī)視覺庫)中。opencv為廣泛使用的包含對(duì)實(shí)時(shí)計(jì)算機(jī)視覺處理的支持的開源計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫。在opencv中,例如圖1的金字塔的金字塔的產(chǎn)生針對(duì)每一圖像層包含以高斯內(nèi)核卷積前一層和從結(jié)果去除每一偶數(shù)行和列。通過調(diào)用具有輸入的先前較高分辨路層的單個(gè)下采樣函數(shù)來依序地產(chǎn)生每一圖像層(倍頻程)。此外,在opencv中,通過依序地調(diào)用單個(gè)調(diào)整大小函數(shù)來執(zhí)行對(duì)圖像的一般縮放(例如需要產(chǎn)生內(nèi)倍頻程經(jīng)縮放圖像的一般縮放)。對(duì)于一般縮放的下采樣可使用雙線性、雙三次、樣條或lancoz濾波。圖2為說明使用opencv的典型金字塔產(chǎn)生的實(shí)例。如本實(shí)例展示,所有倍頻程(例如金字塔的倍頻程202、204)和所有內(nèi)倍頻程經(jīng)縮放圖像(例如,經(jīng)縮放圖像206、208)依序地從基礎(chǔ)圖像200產(chǎn)生。
用以支持所需圖像縮放的通用硬件方法為通過單個(gè)輸入線程實(shí)施數(shù)個(gè)獨(dú)立圖像調(diào)整大小器或縮放器。包含于系統(tǒng)中的硬件的數(shù)目可變化,且可基于例如吞吐量要求和成本的因素而加以選擇。圖3為說明此現(xiàn)有技術(shù)方法的實(shí)例。縮放器中的每一者可具有相同輸入,且可獨(dú)立地經(jīng)編程以產(chǎn)生處在不同分辨率的經(jīng)按比例縮小輸出。替代地,可依序地(即,以級(jí)聯(lián)方式)操作縮放器,使得縮放器的經(jīng)按比例縮小輸出為序列中的下一縮放器的輸入。在任一情況下,若縮放器的數(shù)目小于所要經(jīng)縮放圖像的數(shù)目,則可使用穿過縮放器的多個(gè)遍次。圖4為說明將多個(gè)縮放器用作級(jí)聯(lián)的典型金字塔產(chǎn)生的實(shí)例。如本實(shí)例展示,具有最高分辨率的內(nèi)倍頻程經(jīng)縮放圖像從基礎(chǔ)圖像400產(chǎn)生,且每一倍頻程(例如倍頻程402、404)和每一內(nèi)倍頻程經(jīng)縮放圖像(例如,經(jīng)縮放圖像406、408)從下一較高分辨率經(jīng)縮放圖像產(chǎn)生。
如圖3的實(shí)例中所說明,每一縮放器對(duì)某一數(shù)目個(gè)連續(xù)圖像行執(zhí)行水平縮放,且將結(jié)果存儲(chǔ)于線緩沖器中。經(jīng)處理連續(xù)行的數(shù)目和線緩沖器的數(shù)目取決于用于垂直縮放的濾波器的抽頭的數(shù)目。接著對(duì)線緩沖器的內(nèi)容執(zhí)行垂直縮放。重復(fù)水平縮放和垂直縮放,直到已處理輸入圖像的所有行。
本發(fā)明的實(shí)施例提供使用可在多個(gè)線程之間共享的多個(gè)縮放器的多線程圖像縮放。更確切地說,所有縮放器可逐線程使用,或縮放器可分割于輸入線程中的兩者或更多者之間。此外,在一些實(shí)施例中,每一縮放器在水平縮放之前執(zhí)行垂直縮放,從而消除對(duì)于每一縮放器中的線緩沖器的需要。此外,在一些實(shí)施例中,提供統(tǒng)一多相濾波,其中可調(diào)諧相位的濾波器抽頭,以實(shí)現(xiàn)按整數(shù)比率的倍頻程縮放以及按任意分?jǐn)?shù)的一般縮放。也就是說,可模擬任何種類的內(nèi)插,例如,高斯、雙線性、雙三次、lancoz等。而且,在一些實(shí)施例中,針對(duì)按比例縮小比率而提供雙精確度模式(例如,1/64和1/32),以處理等同水平和垂直比率的典型情況,而不改變高寬比且不隨高寬比的改變而改變縮放。
圖5為說明具有多個(gè)縮放器的多線程圖像縮放器的一實(shí)施例的實(shí)例。在此實(shí)例中,假定輸入線程的數(shù)目為兩個(gè)。所屬領(lǐng)域的技術(shù)人員將理解存在更多輸入線程的實(shí)施例。n個(gè)縮放器的組共享于兩個(gè)輸入線程之間。對(duì)于任何給定處理周期,可將所有n個(gè)縮放器指派到輸入線程中的一者,或可將縮放器的子集指派到每一輸入線程。舉例來說,可在縮放器1到5中處理輸入1線程,且可在縮放器n中處理輸入2線程。此外,n個(gè)縮放器中的每一者在水平縮放之前執(zhí)行垂直縮放。應(yīng)注意,在垂直縮放組件與水平組件之間不存在線緩沖器。
圖6和7為具有多個(gè)縮放器的多線程圖像縮放器的實(shí)例架構(gòu)的框圖。所描繪特定架構(gòu)為可包含于來自德州儀器公司(texasinstruments,inc.)的adas集成電路(ic)中的視覺預(yù)處理加速器(vpac)的多縮放器(msc)硬件加速器600的一實(shí)施例。本文中提供vpac_msc600的方面的高水平描述。vpac_msc600在m.mody和b.chae于2015年7月13日在德州儀器「vpacmulti-scaler(msc)hwamodulespecification」v0.8.0中更詳細(xì)地加以描述,其以引用的方式并入本文中。
在此實(shí)例架構(gòu)中,輸入線程的數(shù)目為兩個(gè),且縮放器的數(shù)目為十個(gè)。所屬領(lǐng)域的普通技術(shù)人員將理解存在更多輸入線程和/或更多或更少縮放器的實(shí)施例。所述組十個(gè)縮放器共享于兩個(gè)輸入線程之間,例如,一個(gè)輸入線程可映射n個(gè)縮放器,且另一輸入線程可映射到m個(gè)縮放器,其中n+m≤10。也就是說,可同時(shí)處理兩個(gè)輸入線程,其中每一線程使用十個(gè)縮放器的子集或一個(gè)輸入線程可使用一些或所有十個(gè)縮放器。此外,可異步地處理輸入線程。從存儲(chǔ)于msc600外部的存儲(chǔ)器中的共享圓形線緩沖器讀取每一處理線程的輸入平面數(shù)據(jù)。縮放操作的結(jié)果存儲(chǔ)于外部存儲(chǔ)器中的共享圓形線緩沖器中。到和從存儲(chǔ)器的數(shù)據(jù)傳送由vpac中的dma控制器處理,其中傳送請(qǐng)求事件來自vpac中的硬件線程調(diào)度程序。
如圖6中所展示,msc600包含負(fù)載存儲(chǔ)引擎(msc_lse)602、配置管理組件(msc_cfg)606和縮放組件(msc_core)604。配置管理組件606提供用于編程負(fù)載存儲(chǔ)引擎602和縮放組件604兩者的配置寄存器的接口。負(fù)載存儲(chǔ)引擎602的配置寄存器(msc_lse_cfg)為負(fù)載存儲(chǔ)引擎的部分,且縮放組件604的配置寄存器為配置管理組件606的部分。
縮放組件604的配置寄存器存儲(chǔ)十個(gè)縮放器中的每一者的一組配置參數(shù)。每一縮放器的配置參數(shù)包含:指示應(yīng)使用單相還是多相濾波的濾波模式標(biāo)志、指示指示應(yīng)使用32相位還是64相位的相模標(biāo)志、用于選擇多相垂直和水平濾波器系數(shù)的標(biāo)志、用于選擇單相垂直和水平濾波器系數(shù)的標(biāo)志、縮放因數(shù)、和垂直和水平濾波器的初始相位偏移值。負(fù)載存儲(chǔ)引擎602的配置寄存器存儲(chǔ)兩個(gè)輸入信道中的每一者和十個(gè)輸出信道中的每一者的參數(shù)。每一輸入信道的參數(shù)包含輸入信道的圓形輸入緩沖器的大小、緩沖器的基礎(chǔ)基礎(chǔ)地址、緩沖器中的線的數(shù)目、和線中的像素的數(shù)目。每一輸出信道的參數(shù)包含指示信道到兩個(gè)輸入線程中的一者的映射的標(biāo)志、輸出循環(huán)緩沖器的大小、和輸出循環(huán)緩沖器的基礎(chǔ)地址。
負(fù)載存儲(chǔ)引擎602管理輸入數(shù)據(jù)從兩個(gè)處理線程的輸入圓形線緩沖器到縮放組件604的負(fù)荷、和輸出數(shù)據(jù)從縮放組件604到存儲(chǔ)器中的輸出圓形線緩沖器中的存儲(chǔ)。更確切地說,負(fù)載存儲(chǔ)引擎602包含用以管理縮放組件604的兩個(gè)輸入信道的功能性,針對(duì)兩個(gè)輸入線程中的每一者管理一個(gè)輸入信道。輸入信道可多達(dá)一幀五個(gè)線,取決于用于縮放的濾波器核。負(fù)載存儲(chǔ)引擎602還包含用以管理十個(gè)輸出信道的功能性,針對(duì)縮放組件604中的十個(gè)縮放器中的每一者管理一個(gè)輸入信道。此外,負(fù)載存儲(chǔ)引擎602包含輸出信道中的每一者的可編程線程映射,即,每一輸出信道可經(jīng)編程以映射到處理線程中的一者。負(fù)載存儲(chǔ)引擎602還包含用以與硬件線程調(diào)度程序同步的功能性。
縮放組件604可配置以執(zhí)行來自兩個(gè)獨(dú)立輸入源的兩組異步一對(duì)多縮放操作。圖7為縮放組件604的框圖。縮放組件604可經(jīng)由輸入端口vp_in_0和vp_in_1從負(fù)載存儲(chǔ)引擎602接收一個(gè)或兩個(gè)獨(dú)立輸入。負(fù)載存儲(chǔ)引擎602的每一輸出信道的輸出線程映射參數(shù)通過控制耦合到縮放器的數(shù)據(jù)選擇多路復(fù)用器712、714、716、718來將縮放器702、704、706、708中的每一者映射到輸入端口中的一者。
縮放器702、704、706、708中的每一者包含相應(yīng)垂直縮放濾波器720、722、724、726和水平縮放濾波器728、730、732、734??s放濾波器中的每一者為支持具有64個(gè)或32個(gè)相位的最大5抽頭內(nèi)核的可編程多相濾波器。每一5抽頭濾波器可經(jīng)編程以執(zhí)行5抽頭、4抽頭或3抽頭濾波。舉例來說,5抽頭濾波器可經(jīng)編程為用于倍頻程產(chǎn)生的5抽頭高斯濾波器或用于內(nèi)倍頻程經(jīng)縮放圖像產(chǎn)生的4抽頭雙三次按比例縮小濾波器。垂直輸入邊填充由負(fù)載存儲(chǔ)引擎602執(zhí)行,且水平輸入邊填充在水平縮放濾波器中的每一者中予以執(zhí)行。
縮放濾波器的共享系數(shù)組存儲(chǔ)于由縮放濾波器共享的系數(shù)緩沖器710中。任何系數(shù)組可由任何縮放濾波器使用。為了使得能夠有效率地共享系數(shù)組,將緩沖器710實(shí)施為msc_core604中的寄存器。在本文中參考圖13更詳細(xì)地論述系數(shù)組的共享。每一系數(shù)組由存儲(chǔ)于兩個(gè)寄存器中的五個(gè)系數(shù)值構(gòu)成。存在兩個(gè)專用組5抽頭單相濾波器系數(shù)用于倍頻程產(chǎn)生和整數(shù)調(diào)整大小應(yīng)用——金字塔coefcfg0和金字塔coefcfg1。此外,存在四個(gè)組多相系數(shù)用于一般非整數(shù)調(diào)整大小、g縮放器coef0、1和g縮放器coef2、3。多相系數(shù)可經(jīng)配置成四組5抽頭×32相位系數(shù)、1組5抽頭×64相位系數(shù)和兩組5抽頭×32相位系數(shù)、或2組5抽頭×64相位系數(shù)32相位配置選項(xiàng)允許使用垂直和水平縮放的單獨(dú)系數(shù)組,以在縮放期間達(dá)成高寬比改變。用于縮放濾波器的系數(shù)組的選擇由縮放濾波器的系數(shù)選擇參數(shù)控制。
縮放器702、704、706、708中的每一者還包含耦合到由負(fù)載存儲(chǔ)引擎602管理的相應(yīng)輸出信道的相應(yīng)輸出端口vp_out_0…vp_out_9。在縮放器702、704、706、708中的每一者中,將來自經(jīng)映射輸入端口的輸入提供到垂直縮放濾波器,且將垂直縮放濾波器的輸出提供到水平縮放濾波器。將水平縮放濾波器的輸出提供到輸出端口。
圖8a和8b展示用于產(chǎn)生圖像金字塔的msc600的實(shí)例配置。在這些實(shí)例中,幀緩沖器800存儲(chǔ)輸入圖像,即,待經(jīng)縮放的圖像和由msc600輸出的經(jīng)縮放圖像。內(nèi)部隨機(jī)存取存儲(chǔ)器802存儲(chǔ)每一處理線程(即,thread_0和thread_1)的輸入和輸出循環(huán)緩沖器。在這兩個(gè)實(shí)例中,將五個(gè)縮放器指派到每一輸入線程。因此,將五個(gè)輸出緩沖器output_cbuf_x指派到每一輸入線程。
首先參考圖8a,每一輸入線程具有相應(yīng)輸入循環(huán)緩沖器,耦合到幀緩沖器800以接收?qǐng)D像數(shù)據(jù)的input_cbuf_0和input_cbuf_1??墒褂么伺渲靡?例如)按倍頻程與輸入圖像之間的分辨率產(chǎn)生一倍頻程和四個(gè)內(nèi)倍頻程經(jīng)縮放圖像。輸入圖像數(shù)據(jù)可來自相同圖像或來自不同圖像。若輸入圖像數(shù)據(jù)來自不同圖像,則多個(gè)縮放遍次可用以產(chǎn)生連續(xù)倍頻程和對(duì)應(yīng)內(nèi)倍頻程經(jīng)縮放圖像。在每一縮放遍次中,可視需要改變縮放器的參數(shù)。
可使用此配置以(例如)產(chǎn)生圖像金字塔,其中金字塔的所有倍頻程和對(duì)應(yīng)內(nèi)倍頻程經(jīng)縮放圖像是從基礎(chǔ)圖像產(chǎn)生,如圖2的實(shí)例中所說明。對(duì)于每一縮放遍次,幀緩沖器800中的基礎(chǔ)圖像將為輸入圖像。
還可使用此配置以(例如)執(zhí)行用于產(chǎn)生具有內(nèi)倍頻程經(jīng)縮放圖像的圖像金字塔的新穎過程。在此過程中,使用倍頻程圖像以在兩個(gè)倍頻程之間產(chǎn)生下一較低分辨率倍頻程圖像和內(nèi)倍頻程經(jīng)縮放圖像。圖9為說明此過程的實(shí)例?;A(chǔ)圖像900用以產(chǎn)生下一較小倍頻程902和內(nèi)倍頻程經(jīng)縮放圖像906。倍頻程902接著用以產(chǎn)生下一較小倍頻程904和內(nèi)倍頻程經(jīng)縮放圖像908。對(duì)于此過程,每一縮放遍次的除了初始圖像之外的輸入圖像將為由先前縮放遍次產(chǎn)生的倍頻程。
現(xiàn)參考圖8b,說明輸入線程的級(jí)聯(lián)配置,其中一個(gè)輸入線程的輸出緩沖器中的一者還充當(dāng)另一輸入線程的輸入緩沖器。在此實(shí)例配置中,輸入線程thread_0具有耦合到幀緩沖器800以接收?qǐng)D像數(shù)據(jù)的輸入循環(huán)緩沖器input_cbuf_0,和耦合到thread_0的輸出循環(huán)緩沖器output_cbuf_4以從thread_1接收經(jīng)縮放圖像數(shù)據(jù)作為輸入的輸入線程thread_1。在此配置中,輸出緩沖器還充當(dāng)可經(jīng)配置以保持由指派到thread_1的縮放器需要的輸入線的數(shù)目的輸入緩沖器,例如,在指派到thread_1的縮放器經(jīng)配置以使用5抽頭濾波器時(shí)可經(jīng)配置以保持五個(gè)線的緩沖器。
此配置可用以(例如)執(zhí)行來自在圖9中所說明的先前倍頻程過程的縮放。舉例來說,output_cbuf_4中的經(jīng)縮放數(shù)據(jù)可為從input_cbuf_0中的圖像數(shù)據(jù)產(chǎn)生的倍頻程數(shù)據(jù),且thread_1的縮放器可經(jīng)配置以產(chǎn)生金字塔中的下一倍頻程和對(duì)應(yīng)內(nèi)倍頻程經(jīng)縮放圖像。若需要兩個(gè)以上倍頻程,則可使用多個(gè)縮放遍次,其中由thread_2的處理輸出的倍頻程用作到thread_0的輸入。
圖10為用于在具有多個(gè)縮放器的多線程圖像縮放器(例如,圖6和7的多線程圖像縮放器)中縮放輸入圖像的方法的流程圖。流程圖闡述使用單個(gè)線程的縮放。所屬領(lǐng)域的普通技術(shù)人員將理解,可異步地處理到多線程圖像縮放器的輸入線程,且可基于縮放器的可用性而針對(duì)額外輸入線程重復(fù)所述方法。
最初,執(zhí)行配置以供線程處理(1000)。此配置可視需要包含編程系數(shù)寄存器、將n個(gè)縮放器指派到線程,其中n為用于處理輸入圖像的縮放器的所要數(shù)目、對(duì)n個(gè)所指派縮放器中的每一者中的濾波器的參數(shù)進(jìn)行配置、和對(duì)輸入和輸出循環(huán)緩沖器的參數(shù)進(jìn)行配置。一旦完成配置1000,則經(jīng)配置縮放器根據(jù)經(jīng)配置過濾器參數(shù)和系數(shù)而縮放輸入圖像的每一輸入線(1002),直到輸入圖像的縮放完成(1006)。當(dāng)所有n個(gè)縮放器完成對(duì)輸入圖像的線的處理時(shí),對(duì)輸入圖像的縮放完成。
采用了圖6和7的多線程圖像縮放器,在每一經(jīng)配置縮放器中,每一輸入線由垂直縮放濾波器垂直地縮放。若經(jīng)垂直地縮放輸出線有效,則垂直地經(jīng)縮放輸出線接著在水平縮放濾波器中經(jīng)水平地縮放。若所得經(jīng)縮放線有效,則將水平縮放濾波器的輸出像素存儲(chǔ)于對(duì)應(yīng)輸出緩沖器中(1004)。所屬領(lǐng)域的普通技術(shù)人員將理解,圖像中的某些像素可能作為按比例縮小的部分而下降,從而導(dǎo)致無效輸出線。當(dāng)所有n個(gè)縮放器完成對(duì)輸入線的處理且縮放的任何有效輸出寫入到相應(yīng)縮放器輸出緩沖器時(shí),對(duì)輸入線的縮放完成。
圖11為用于使用來自如圖9的實(shí)例中所說明的先前倍頻程的縮放的產(chǎn)生圖像金字塔的方法的流程圖。方法假定使用具有多個(gè)縮放器的多線程圖像縮放器(例如,圖6和7的多線程圖像縮放器)。所屬領(lǐng)域的普通技術(shù)人員將理解具有多個(gè)縮放器的單個(gè)線程圖像縮放器的實(shí)施例。所述方法假定具有含有7個(gè)內(nèi)倍頻程經(jīng)縮放圖像的六個(gè)或七個(gè)倍頻程的典型圖像金字塔。所屬領(lǐng)域的普通技術(shù)人員將理解具有更多或極少倍頻程和/或內(nèi)倍頻程經(jīng)縮放圖像的實(shí)施例。方法還假定存在至少八個(gè)縮放器。
最初,執(zhí)行配置以供線程處理(1100),使得縮放的所得輸出為圖像金字塔的倍頻程和對(duì)應(yīng)內(nèi)倍頻程經(jīng)縮放圖像。此配置可視需要包含編程系數(shù)寄存器、將八個(gè)縮放器指派到線程、對(duì)八個(gè)所指派縮放器中的每一者中的濾波器的參數(shù)進(jìn)行配置、和對(duì)輸入循環(huán)緩沖器和八個(gè)輸出循環(huán)緩沖器的參數(shù)進(jìn)行配置。對(duì)于初始縮放遍次,輸入圖像為基礎(chǔ)圖像且輸出倍頻程為圖像金字塔中的下一倍頻程。
一旦完成配置1100,則八個(gè)經(jīng)配置縮放器根據(jù)經(jīng)配置過濾器參數(shù)和系數(shù)而縮放輸入圖像的每一輸入線(1102),直到輸入圖像的縮放完成(1106)。當(dāng)所有八個(gè)縮放器完成對(duì)輸入圖像的線的處理時(shí),對(duì)輸入圖像的縮放完成。當(dāng)所有八個(gè)縮放器完成對(duì)輸入線的處理且縮放的任何有效輸出寫入到相應(yīng)縮放器輸出緩沖器時(shí),對(duì)輸入線的縮放完成。
如果所有所要倍頻程已產(chǎn)生(1108),那么處理終止。否則,下一倍頻程連同對(duì)應(yīng)內(nèi)倍頻程經(jīng)縮放圖像1100到1106產(chǎn)生。用于產(chǎn)生每一連續(xù)倍頻程和對(duì)應(yīng)內(nèi)倍頻程經(jīng)縮放圖像的輸入圖像為先前倍頻程。
應(yīng)注意,如果上述方法用于圖6和7的多線程圖像縮放器中,那么第二輸入線程和兩個(gè)縮放器保持可供用于其它圖像處理。舉例來說,第二輸入線程和其余縮放器可用以針對(duì)其它輸入數(shù)據(jù)實(shí)現(xiàn)金字塔產(chǎn)生,或針對(duì)彩度數(shù)據(jù)實(shí)現(xiàn)金字塔產(chǎn)生,只要由兩個(gè)線程需要的縮放的總數(shù)目為十個(gè)或更小。
圖12為包含經(jīng)配置供用于基于照相機(jī)的adas中的具有多個(gè)縮放器的多線程圖像縮放器(msc)1212的實(shí)例多處理器芯片上系統(tǒng)(soc)1200的高水平框圖。本文中提供對(duì)soc1200的組件的高級(jí)描述。可在m.mody等人于2015年12月16日到19日在印度·班加羅爾的proceedingsof2015ieee22ndinternationalconferenceonhighperformancecomputing的「highperformancefrontcameraadasapplicationsonti'stda3xplatform」中發(fā)現(xiàn)對(duì)實(shí)例組件(除了msc1212之外)的更詳細(xì)描述,其以引用的方式并入本文中。
soc1200包含經(jīng)由高速互連件1222耦合的雙通用處理器(gpp)1202、雙數(shù)字信號(hào)處理器(dsp)1204和視覺處理器1206。soc1200進(jìn)一步包含直接存儲(chǔ)器存取(dma)組件1208、照相機(jī)俘獲組件1210、顯示管理組件1214、芯片上隨機(jī)存取(ram)存儲(chǔ)器1216、和經(jīng)由互連件1222全部耦合到處理器的每一種輸入/輸出(i/o)周邊裝置1220。此外,soc1200包含包括安全相關(guān)功能性以實(shí)現(xiàn)遵從汽車安全要求的安全組件1218。此等功能性可包含對(duì)于數(shù)據(jù)的crc(循環(huán)冗余檢查)的支持、漂移檢測(cè)的時(shí)鐘比較器、錯(cuò)誤傳信、加窗看門狗定時(shí)器和soc對(duì)于損壞和故障的自測(cè)試。
msc1212具有多個(gè)線程輸入和可分割于輸入線程之間的多個(gè)縮放器。本文中已在前文描述此msc的硬件架構(gòu)的實(shí)例。在一些實(shí)施例中,msc1212可為獨(dú)立硬件加速器。在一些實(shí)施例中,msc1212可為視覺預(yù)處理硬件加速器(例如圖6和7的msc600)的部分。在一些實(shí)施例中,msc1212可為在gpp1202、dsp1204和視覺處理器1206中的一或多者上執(zhí)行的軟件??稍趕oc1200的任何可編程處理器上執(zhí)行控制msc1212的操作的軟件。
如先前所提及,兩個(gè)單相系數(shù)組和四個(gè)多相系數(shù)組由圖7中所說明的縮放組件604的十個(gè)縮放器共享??s放組件的典型用途為產(chǎn)生具有多達(dá)八個(gè)層級(jí)的圖像金字塔,其中用以產(chǎn)生內(nèi)倍頻程經(jīng)縮放圖像的按比例縮小比率在1×與0.5×之間。因?yàn)榘幢壤s小比率或多或少地彼此不同,即,為大約1.09x的倍數(shù),所以各自支持這些比率內(nèi)的子范圍的通用系數(shù)值的共享組對(duì)于計(jì)算機(jī)視覺應(yīng)用足以產(chǎn)生圖像金字塔。當(dāng)處理單個(gè)輸入線程時(shí)或當(dāng)處理兩個(gè)輸入線程時(shí),系數(shù)組可由縮放器共享。
圖13為說明縮放組件604中的兩個(gè)輸入線程之間的系數(shù)組的共享的實(shí)例。在此實(shí)例中,coef_0、coef_1、coef_2和coef_3為多相系數(shù)的四個(gè)共享組,且sp_coef_0和sp_coef_1為單相系數(shù)的兩個(gè)共享組。每一多相系數(shù)組經(jīng)編程以支持不同縮放比。舉例來說,coef_0可支援1×到0.75×的縮放比,coef_1可支援0.75×到0.5×的縮放比,coef_2可支援0.5×到0.35×的縮放比,且coef_3可支援0.35×到0.25×的縮放比。
scaler_0、scaler_1、scaler_2、scaler_3和scaler_4指派到一個(gè)輸入線程且其余縮放器指派到另一輸入線程。如表中所說明,scaler_0、scaler_1、scaler_2和scaler_3各自經(jīng)配置以使用多相系數(shù)組中的一者產(chǎn)生內(nèi)倍頻程經(jīng)縮放圖像,且scaler_4經(jīng)配置以使用單相系數(shù)組中的一者產(chǎn)生倍頻程。類似地,scaler_5、scaler_6、scaler_7和scaler_8各自經(jīng)配置以使用多相系數(shù)組中的一者產(chǎn)生內(nèi)倍頻程經(jīng)縮放圖像,且scaler_9經(jīng)配置以使用單相系數(shù)組中的一者產(chǎn)生倍頻程。應(yīng)注意,scaler_0、scaler_1和scaler_5經(jīng)配置以使用相同多相系數(shù)組coef_0,且scaler_2、scaler_3和scaler_6經(jīng)配置以使用相同多相系數(shù)組coef_1。
其它實(shí)施例
雖然已關(guān)于有限數(shù)目的實(shí)施例描述本發(fā)明,但具有本發(fā)明權(quán)益的所屬領(lǐng)域的普通技術(shù)人員應(yīng)理解,可設(shè)計(jì)不脫離如本文所揭示的本發(fā)明范圍的其它實(shí)施例。
舉例來說,已在本文中描述使用多相濾波器執(zhí)行垂直和水平縮放的實(shí)施例。所屬領(lǐng)域的普通技術(shù)人員將理解使用其它適合的濾波的實(shí)施例,例如(例如)雙線性濾波、雙三次濾波、lancoz濾波、高斯濾波等。此外,所屬領(lǐng)域的普通技術(shù)人員將理解使用多個(gè)濾波技術(shù)的實(shí)施例。
在另一個(gè)實(shí)例中,已在本文中描述在縮放器之間共享系數(shù)組的實(shí)施例。所屬領(lǐng)域的普通技術(shù)人員將理解每一縮放器具有單獨(dú)專用系數(shù)存儲(chǔ)的實(shí)施例。此外,所屬領(lǐng)域的普通技術(shù)人員將理解具有更多或更少共享系數(shù)組的實(shí)施例。
在另一個(gè)實(shí)例中,已在本文中描述每一縮放器在水平濾波之前執(zhí)行垂直濾波的實(shí)施例。所屬領(lǐng)域的普通技術(shù)人員將理解濾波次序逆轉(zhuǎn)的實(shí)施例。
在另一個(gè)實(shí)例中,已在本文中描述聚焦于圖像的按比例縮小的實(shí)施例。所屬領(lǐng)域的普通技術(shù)人員將理解縮放器也可用于圖像的按比例放大、透視變換、噪聲過濾等的實(shí)施例。
在另一個(gè)實(shí)例中,已在本文中參考adas描述實(shí)施例。所屬領(lǐng)域的普通技術(shù)人員將理解除adas以外的計(jì)算機(jī)視覺應(yīng)用的實(shí)施例,例如(例如)工業(yè)應(yīng)用、機(jī)器人技術(shù)和無人機(jī)。
盡管可在本文中以依序方式呈現(xiàn)且描述方法步驟,但是在圖中所展示且在本文中所描述的步驟中的一或多者可并行地予以執(zhí)行、可組合、和/或可按不同于在圖中所展示且在本文中所描述的次序的次序予以執(zhí)行。因此,實(shí)施例應(yīng)被視為限于在圖中所展示且在本文中所描述的步驟的特定次序。
某些術(shù)語在整個(gè)描述和權(quán)利要求書中被用來指代特定系統(tǒng)組件。如所屬領(lǐng)域的普通技術(shù)人員應(yīng)理解,系統(tǒng)中的組件可以在不脫離所描述的功能的情況下通過不同名稱來提及和/或可以按本文中未展示的方式組合。此文檔并不既定區(qū)分開在名稱而非功能上不同的組件。在描述中和在權(quán)利要求中,術(shù)語“包含”和“包括”是以開放式方式使用,并且因此應(yīng)該解釋為意指“包含(但不限于)……”。而且,術(shù)語“耦合”和其派生詞既定意味著間接、直接、光學(xué)和/或無線電連接。因此,如果第一個(gè)裝置耦合到第二個(gè)裝置,那么舉例來說,那個(gè)連接可通過直接電連接、通過其它裝置和連接的間接電連接、通過光學(xué)電連接和/或通過無線電連接。
因此,預(yù)期所附權(quán)利要求書將覆蓋屬于本發(fā)明的真正范圍的實(shí)施例的任何此類修改。