專利名稱:圖像處理裝置和圖像處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及適合圖像的高速處理的裝置和方法。
背景技術(shù):
在以往的機(jī)器視覺和機(jī)器人視覺的大多數(shù)中,使用了以基于人類的視覺特性而決定的視頻幀率( 60fps)為上限的幀率。相對于此,進(jìn)行著使用了大幅超過視頻幀率的、 IOOOfps級的高幀率攝像機(jī)的實(shí)時(shí)視覺(以下,稱為高速視覺)的研究。例如,通過使用高速視覺,能夠進(jìn)行穩(wěn)定的視覺反饋控制,因此,高速視覺應(yīng)用于需要高速的動(dòng)作的機(jī)器人的控制中(下述的非專利文獻(xiàn)1 5)。此外,由于能夠計(jì)測快速的移動(dòng),所以高速視覺還應(yīng)用于生物體觀察(下述的非專利文獻(xiàn)6和7)、動(dòng)作捕捉(下述的非專利文獻(xiàn)8)、流體計(jì)測(下述的非專利文獻(xiàn)9)等。除此之外,跟蹤(下述的非專利文獻(xiàn)10和11)、三維計(jì)測(下述的非專利文獻(xiàn)12 和1 、圖像合成(下述的非專利文獻(xiàn)14和1 、光流場估計(jì)(下述的非專利文獻(xiàn)16)等, 也存在在一般的圖像處理的性能提高中利用了高速視覺的研究。為了實(shí)時(shí)處理這樣的高的幀率的活動(dòng)圖像,需要高的運(yùn)算性能。通過近年來的計(jì)算機(jī)的性能的飛躍提高,在使用了 PC的系統(tǒng)中,雖然能夠發(fā)揮到某種程度的性能,但存在 PC在穩(wěn)定性或可靠性上欠缺的問題。因此,為了實(shí)現(xiàn)實(shí)用的高速視覺,認(rèn)為使用嵌入系統(tǒng)較好。通過使用嵌入系統(tǒng),能夠根據(jù)使用目的而組合硬件結(jié)構(gòu)而最佳化,還將系統(tǒng)小型化。另一方面,與PC的CPU相比,在通常的嵌入系統(tǒng)中使用的CPU更顯乏力,所以需要通過協(xié)同處理器對圖像處理的加速器。在以往開發(fā)的高速視覺系統(tǒng)中,采用SIMD型的超并行處理器(下述的非專利文獻(xiàn)10),或者作為能夠改寫硬件結(jié)構(gòu)的LSI的FPGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列)中安裝專用電路(下述的非專利文獻(xiàn)17 和18),從而實(shí)現(xiàn)運(yùn)算的高速化。SIMD型的超并行處理器在對多個(gè)像素均等地進(jìn)行處理的情況下,能夠?qū)崿F(xiàn)極其高的性能(下述的非專利文獻(xiàn)19 22)。但是,在對圖像的一部分進(jìn)行處理的情況下,不一定能夠有效地活用全部處理元素(PE)。在使用了高速視覺的大多數(shù)應(yīng)用中,與對于圖像整體的處理相比,需要高速地進(jìn)行跟蹤等的對于局部區(qū)域的處理,小區(qū)域的計(jì)算成為中心,所以這個(gè)問題變得深刻。此外,在大多數(shù)情況下,PE之間的數(shù)據(jù)傳送僅能夠在與相鄰PE之間進(jìn)行,難以有效地安裝擴(kuò)大/縮小或旋轉(zhuǎn)等的幾何變換。因此,能夠安裝的算法受到限制。除此之外,可以說在圖像傳感器的攝像面上進(jìn)行運(yùn)算處理的焦平面處理器(focal plane processor)也適合于高的幀率處理,但因?yàn)閷τ陔娐访娣e的制約,大多數(shù)焦平面處理器被特定化為特定的處理而制造。雖然也開發(fā)出進(jìn)行通用的運(yùn)算的處理器(下述的非專利文獻(xiàn)幻 沈),但具有與上述的SIMD型的超并行處理器相同的問題。此外,也考慮將DSP應(yīng)用于圖像處理。近年來,采用了 VLIW(Very Long Instruction Word,超長指令字)或多核等的并行處理技術(shù)的DSP上市,可進(jìn)行高速處理(下述的非專利文獻(xiàn)27和28)。但是,由于在使用了 VLIW的結(jié)構(gòu)中,主要通過編譯程序自動(dòng)地進(jìn)行算法的并行化,所以存在不能預(yù)先預(yù)測命令的執(zhí)行所需的時(shí)間,或者因沒有預(yù)期的理由而使執(zhí)行速度降低的情況。相對于此,由于ASIC或FPGA能夠?qū)⑺惴ň哂械牟⑿行灾苯影惭b到硬件中,所以并行化的效率高,容易將處理最佳化。尤其,作為可改寫硬件結(jié)構(gòu)的LSI的FPGA適于批量型或少量生產(chǎn)。另一方面,使用了 FPGA的系統(tǒng)在每次想要變更算法時(shí),需要基于HDL(Hardware Description Language,硬件描述語言)的電路設(shè)計(jì),存在開發(fā)成本高的問題。相對于此,還提出了使用FPGA的可重構(gòu)性(reconfigurability)而定制通用CPU 的指令集的系統(tǒng)(下述的非專利文獻(xiàn)四)。在這個(gè)系統(tǒng)中,兼顧到CPU具有的軟件開發(fā)的容易性和FPGA的可重構(gòu)性,能夠?qū)⒂脩舻碾娐吩O(shè)計(jì)的負(fù)擔(dān)降低至必要最低限度。但是,在這個(gè)系統(tǒng)中,CPU只能利用預(yù)先準(zhǔn)備好的,不能將商用的開發(fā)工具或中間件、軟件資源等最大限度地活用。根據(jù)本發(fā)明人的見解,若考慮中斷或者多任務(wù)等引起的性能降低,則最好CPU和 FPGA盡可能分離,F(xiàn)PGA自主地動(dòng)作。此外,最好預(yù)先準(zhǔn)備在圖像處理中所需的并行處理或并行數(shù)據(jù)存取、高速數(shù)據(jù)傳送的結(jié)構(gòu)。在先技術(shù)文獻(xiàn)非專利文獻(xiàn)非專利文獻(xiàn)1[1]A. Namiki, Y. Nakabo, I. Ishii, and Μ. Ishikawa, “ Ims sensory-motor fusion system, " IEEE Transactions on Mechatoronics,Vol. 5,No. 3, pp.244-252,2000.非專禾Ij文獻(xiàn) 2[2]Y. Nakamura,K. Kishi, and H. Kawakami, “ Heartbeat synchronization for robotic cardiac surgery, " Proc.IEEE International Conference on Robotics and Automation, pp.2014-2019,2001.非專利文獻(xiàn)3][3]R. Ginhoux, J. Gangloff,M. de Mathelin,L. Soler,M. Sanchez, and J. Marescaux, " Beating heart tracking in robotic surgery using 500Hz visual servoing,model predictive control and an adaptive observer," Proc. IEEE International Conference on Robotics and Automation, pp.274—279,2004.非專利文獻(xiàn)4H4]T· Senoo,A. Namiki,and M. Ishikawa,“ High-speed batting using a multijointed manipulator, " Proc.IEEE International Conference onRobotics and Automation,pp.1191-1196,2004.非專利文獻(xiàn)5[5]N. Furukawa,A. Namiki,T. knoo,and M. Ishikawa,“ Dynamic regrasping using a high-speed multifingered hand and a high-speed vision system, " Proc. IEEE International Conference on Robotics and Automation, pp.181-187,2006.非專利文獻(xiàn)6[6]ROku,N. 0gawa,K. Hashimoto,and M. Ishikawa, “ Two-dimensional tracking of a motile microorganism allowing high-resolution observation with various imaging techniques, " Review of Scientific Instruments, Vol.76, No. 3, 034301,2005.非專利文獻(xiàn)7[7]1.1811付,1附6,1(.¥31113丨0^0,1(.(^計(jì)0,&11(1H. Matsuda,〃 Real-timeand long-time quantification of behavior of laboratory mice scratching,“ Proc. IEEE International Conference on Automation Science and Engineering, pp. 628-633,2007._一|禾1」^_8[8]1(.¥已11^116,1\1(111^(1已,已11(1Y. Nakamura, “ High-precision and high-speed motion capture combining heterogeneous cameras,“ Proc.IEEE/RSJ International Conference on Intelligent Robots andSystems,pp.279—286,2004.非專禾Ij文獻(xiàn)9[9]Y.Watanabe,T.Komuro,and M. Ishikawa, “ A high-speed vision system for moment-based analysis of numerous objects, “ Proc. IEEE International Conference on Image Processing, pp.V177-180,2007.非專利文獻(xiàn)10[10]Y. Nakabo,M. Ishikawa,H. fToyoda, and S.Mizuno,“ Ims column parallel vision system and its application of high speed target tracking, “ Proc.IEEE International Conference on Robotics and Automation, pp.650-655,2000.非專利文獻(xiàn)11[ll]U.Muehlmann,M. Ribo,P. Lang,and A.Pinz,“ A new high speed CMOS camera for real-time tracking applications, “ Proc. IEEE International Conference on Robotics and Automation,pp.5195—5200,2004.非專利文獻(xiàn)12[12]Y.Watanabe,T.Komuro,and Μ· Ishikawa,“ 955-fpsreal-time shape measurement of a moving/deforming object using high-speed vision for numerous-point analysis, “ Proc. IEEE International Conference on Robotics and Automation,pp.3192-3197,2007.非專利文獻(xiàn)13[13]I. Ishii,K. Yamamoto,K.Doi,and T. Tsuji, “ High-speed 3D image acquisition using coded structured light projection, 〃 Proc. IEEE/RSJ International Conference on Intelligent Robots and Systems,pp.925—930,2007.非專利文獻(xiàn)14[14]X. Liu and A.Gamal," Synthesis of high dynamic range motion blur free image from multiple captures,“ IEEE Transactions on Circuits and Systems I !Fundamental Theory and Applications,vol. 50,No. 4,pp. 530—539,2003.非專利文獻(xiàn)15[15]Τ· KomuroiY. WatanabeiM. Ishikawa,and Τ. Narabu, “ High-S/ N imaging of a moving object using a high-frame-rate camera, “ IEEE International Conference on Image Processing, pp.517-520,2008.非專利文獻(xiàn)16[16]S.Lim,J.Apostolopoulos,and A.Gamal,“ Optical flow estimation using temporally oversampled video, “ IEEE Transactions on Image Processing, vol. 14,No. 8,pp. 1074—1087,2005.非專利文獻(xiàn)17[17] I. Ishii,K. Kato, S. Kurozumi, H. Nagai, Α. Numata, and K.Tajima, “ Development of a mega-pixel and milli-second vision system using intelligent pixel selection,〃 Proc. IEEE Technical Exhibition Based Conference on Robotics and Automation, pp.9-10,2004.非專利文獻(xiàn)18[18]K. Shimizu and S.Hirai," CM0S+FPGA vision system for visual feedback of mechanical systems,“ Proc. IEEE International Conference on Robotics and Automation,pp.2060—2065,2006.
非專利文獻(xiàn)19[19]W. Raab, N. Bruels,U. Hachmann, J. Harnisch,U. Ramacher, C.Sauer, and A. Techmer,“ A 100-G0PS programmable processor for vehicle vision systems, “ IEEE Design & Test of Computers, vol. 20, No. 1, pp. 8-15, 2003.非專利文獻(xiàn)20[20]Η· Noda,Μ. Nakajima,K. Dosaka,K. Nakata, Μ. Higashida, 0. Yamamoto, K. Mizumoto,T.Tanizaki, T.Gyohten,Y.Okuno, H.Kondo, Y. Shimazu, K.Arimoto, K. Saito, and T.Shimizu, “ The design and implementation of the massively parallel processor based on the matrix architecture, “ Proc. IEEE Journal of Solid-State Circuits,vol. 42,No. 1,pp.183—192,2007.非專利文獻(xiàn)21[21]A.Abbo,R.Kleihorst,V. Choudhary, L Sevat,P. Wielage, S. Mouy, B.Vermeulen, and M. Heijligers, “ Xetal-II :A 107 G0PS,600mW massively parallel processor for video scene analysis, “ IEEE Journal of Solid-State Circuits, vol. 43,No. 1,pp. 192—201,2008.非專利文獻(xiàn)22[22]S.Kyo,S.0kazaki,and T.Arai,“ An integrated memory array processor architecture for embedded image recognition systems, “ Proc. International Symposium on Computer Architecture,pp.134—145,2005·非專利文獻(xiàn)^3[23] J. Eklund,C. Svensson,and A. A。stro .. m, “ VLSI implementation of a focal plane image processor—a realization of the near-sensor image processing concept, “ IEEE Transactions on Very Large Scale Integrat. (VLSI) Systems, vol. 4,no. 3,pp. 322-335,1996.非專禾O文獻(xiàn)24[24]T. Komuro, S. Kagami, and Μ. Ishikawa, “ A dynamically reconfigurable SIMD processor for a vision chip,〃 IEEE Journal of Solid-State Circuits, Vol. 39,No. 1,pp. 265-268,2004.非專禾Ij文獻(xiàn) 25[25]P. Dudek and P. Hicks, “ A general-purpose processor-per-pixel analog SIMD vision chip, “ IEEE Transactions on Circuits and Systems I :Regular Papers,vol. 52,No. 1,pp. 13-20,2005.非專利文獻(xiàn)26[26]1] 士&0,(3丄士11,121^恥,&11(1N. Wu,〃 A programmable SIMD vision chip for real-time vision applications, 〃 IEEE Journal of Solid-State Circuits, vol. 43,pp.1470—1479,2008.非專利文獻(xiàn)27[27]J. Tanabe,Y.Taniguchi,T.Miyamori,Y.Miyamoto, H. Takeda,M. Tarui, H. Nakayama, N. Takeda,K. Maeda,and M. Matsui, “ Visconti multi-VLIW image recognition processor based on configurable processor, “ Proc. IEEE Custom Integrated Circuits Conference,pp.185-188,2003.非專利文獻(xiàn)28[28]B. KhaiIany, Τ. Williams, J. Lin, E. Long,M. Rygh, D. Tovey, and W. Dally, “ A programmable 512 GOPS stream processor for signal,image,and video processing,〃 IEEE Journal of Solid-State Circuits,vol. 43,pp.202-213, 2008.非專利文獻(xiàn)29[29]M.Wirthlin,B.Hutchings,and K.Gilson,“ The nano processor :a low resource reconfigurable processor, “ Proc.IEEE Workshop on FPGAs for Custom Computing Machines, pp.23-30,1994.
非專利文獻(xiàn)30][30]J. Farrugia,P. Horain,E. Guehenneux,and Y. Alusse, “ GPUCV :a framework for image processing acceleration with graphics processors, " Proc. IEEE International Conference on Multimedia and Expo, pp.585-588,2006.
發(fā)明內(nèi)容
發(fā)明要解決的課題本發(fā)明是鑒于以上的現(xiàn)狀而完成的。本發(fā)明的主要目的在于,通過程序來指定與用于圖像處理的特定的函數(shù)對應(yīng)的多個(gè)圖像處理部并使其動(dòng)作,從而實(shí)現(xiàn)圖像處理的高速化。用于解決課題的手段解決所述課題的手段,可以如以下的項(xiàng)目記載。(項(xiàng)目1)一種圖像處理裝置,包括協(xié)同處理器、幀存儲(chǔ)器以及CPU,所述幀存儲(chǔ)器存儲(chǔ)要處理的圖像數(shù)據(jù),所述協(xié)同處理器包括多個(gè)圖像處理部和多個(gè)并行存儲(chǔ)器,所述并行存儲(chǔ)器接受在所述幀存儲(chǔ)器中存儲(chǔ)的所述圖像數(shù)據(jù)的全部或者一部分, 傳送到所述圖像處理部中的其中一個(gè),多個(gè)所述圖像處理部都具有與用于圖像處理的函數(shù)對應(yīng)的功能,并且,多個(gè)所述圖像處理部根據(jù)來自所述CPU的指令,從所述并行存儲(chǔ)器或者所述幀存儲(chǔ)器接受所述圖像數(shù)據(jù)的全部或者一部分,對所述圖像數(shù)據(jù)的全部或者一部分進(jìn)行基于用于所述圖像處理的函數(shù)的處理。圖像處理部與在圖像處理中使用的特定的函數(shù)對應(yīng)。在進(jìn)行圖像處理的情況下, 通過在專用的圖像處理部中進(jìn)行在處理中需要的函數(shù)的執(zhí)行,從而能夠?qū)⑻幚砀咚倩?。此夕卜,在程序中,能夠?jīng)由CPU來指定特定的函數(shù)或者圖像處理部,使其執(zhí)行處理。(項(xiàng)目2)在項(xiàng)目1所述的圖像處理裝置中,所述協(xié)同處理器由可重構(gòu)的可編程邏輯設(shè)備構(gòu)成??芍貥?gòu)的可編程邏輯設(shè)備是通常被稱為FPGA或者FPLA的集成電路。通過將這樣的設(shè)備作為協(xié)同處理器而使用,從而能夠根據(jù)用戶的需要而改寫圖像處理部的功能。例如, 能夠追加與不足的函數(shù)對應(yīng)的圖像處理部,或者追加與需要的函數(shù)對應(yīng)的圖像處理部。(項(xiàng)目3)在項(xiàng)目1或2所述的圖像處理裝置中,多個(gè)所述并行存儲(chǔ)器是雙端口存儲(chǔ)器。通過使用雙端口存儲(chǔ)器,能夠獨(dú)立地進(jìn)行對于存儲(chǔ)器的讀取和寫入。因此,能夠?qū)⑻幚磉M(jìn)一步高速化。此外,通過使用雙端口存儲(chǔ)器,能夠根據(jù)所述CPU的指令,進(jìn)行將并行存儲(chǔ)器作為緩存的流水線(pipeline)處理。(項(xiàng)目4)在項(xiàng)目1至3的任一項(xiàng)所述的圖像處理裝置中,所述圖像處理部包括直接存儲(chǔ)器存取控制器和處理單元,
8
所述直接存儲(chǔ)器存取控制器控制所述并行存儲(chǔ)器的動(dòng)作,所述處理單元進(jìn)行基于用于所述圖像處理的函數(shù)的處理。(項(xiàng)目5)在項(xiàng)目1至4的任一項(xiàng)所述的圖像處理裝置中,包括多個(gè)所述協(xié)同處理器。(項(xiàng)目6)在項(xiàng)目5所述的圖像處理裝置中,多個(gè)所述協(xié)同處理器連接到共同的協(xié)同處理器總線。(項(xiàng)目7)在項(xiàng)目1至6的任一項(xiàng)所述的圖像處理裝置中,所述協(xié)同處理器還包括描述器 (descriptor),所述CPU在所述描述器中寫入對于所述協(xié)同處理器的命令,所述協(xié)同處理器讀取在所述描述器中寫入的命令,執(zhí)行多個(gè)所述圖像處理部的處理。通過使用描述器,CPU能夠一次對協(xié)同處理器指示多個(gè)處理。因此,具有能夠減少在協(xié)同處理器的動(dòng)作完成時(shí)對于CPU的中斷次數(shù)的優(yōu)點(diǎn)。(項(xiàng)目8)在項(xiàng)目1至7的任一項(xiàng)所述的圖像處理裝置中,多個(gè)所述圖像處理部基于來自所述CPU的指令,獨(dú)立地并行動(dòng)作。通過設(shè)為多個(gè)圖像處理部能夠進(jìn)行并行動(dòng)作,從而能夠根據(jù)來自CPU的指令,進(jìn)行按任務(wù)等級的并行處理。此外,通過在描述器中寫入在處理單元或等待單元中的處理步驟,從而能夠有效地進(jìn)行按任務(wù)等級的并行處理。(項(xiàng)目9)一種圖像處理方法,包括以下步驟(1)幀存儲(chǔ)器存儲(chǔ)要處理的圖像數(shù)據(jù)的步驟;(2)并行存儲(chǔ)器接受在所述幀存儲(chǔ)器中存儲(chǔ)的所述圖像數(shù)據(jù)的全部或者一部分的步驟;(3)多個(gè)所述圖像處理部根據(jù)來自CPU的指令,從所述并行存儲(chǔ)器或者所述幀存儲(chǔ)器接受所述圖像數(shù)據(jù)的全部或者一部分的步驟;以及(4)多個(gè)所述圖像處理部根據(jù)來自所述CPU的指令,對所述圖像數(shù)據(jù)的全部或者一部分分別進(jìn)行基于用于圖像處理的函數(shù)的處理的步驟。(項(xiàng)目10)在項(xiàng)目9所述的圖像處理方法中,作為所述并行存儲(chǔ)器,使用雙端口存儲(chǔ)器,多個(gè)圖像處理部還根據(jù)來自所述CPU的指令,進(jìn)行將所述并行存儲(chǔ)器作為緩存的流水線處理。通過進(jìn)行將并行存儲(chǔ)器作為緩存的流水線處理,從而能夠?qū)D像處理進(jìn)一步高速化。(項(xiàng)目11)在項(xiàng)目9或10所述的圖像處理方法中,多個(gè)所述圖像處理部基于來自所述CPU的指令,獨(dú)立地并行動(dòng)作,
多個(gè)所述圖像處理部還根據(jù)來自所述CPU的指令,進(jìn)行按任務(wù)等級的并行處理。通過進(jìn)行按任務(wù)等級的并行處理,從而能夠?qū)崿F(xiàn)圖像處理的高速化。發(fā)明效果根據(jù)本發(fā)明,能夠提供一種能夠?qū)崿F(xiàn)高速的圖像處理且生成程序上的負(fù)擔(dān)不會(huì)過大的圖像處理裝置及方法。
圖1是本發(fā)明的一實(shí)施方式的圖像處理裝置的概略性的方框圖。圖2是表示使用了圖1的裝置的圖像處理方法的概略的流程圖。圖3是圖1的裝置中的概略性的硬件結(jié)構(gòu)圖。
具體實(shí)施例方式參照
本發(fā)明的一實(shí)施方式的圖像處理裝置。該圖像處理裝置作為主要的
元素,包括P個(gè)協(xié)同處理器11、12........IP ;P個(gè)幀存儲(chǔ)器21、22.......2P ;以及CPU3。
此外,該裝置包括主存儲(chǔ)器4、1/0接口 5、攝像機(jī)接口 6、視頻接口 7、CPU總線8以及協(xié)同處理器間總線9。各個(gè)幀存儲(chǔ)器21......存儲(chǔ)要處理的圖像數(shù)據(jù)。具體地說,在該實(shí)施方式中,
存儲(chǔ)從攝像機(jī)接口 6或者視頻接口 7獲取的圖像數(shù)據(jù)。如圖所示,與各個(gè)協(xié)同處理器 11......對應(yīng)而設(shè)置各個(gè)幀存儲(chǔ)器21.......協(xié)同處理器11......都包括多個(gè)直接存儲(chǔ)器存取控制器(DMAC) 111、
112........IlN ;多個(gè)并行存儲(chǔ)器121、122........12M ;以及多個(gè)處理單元13A、
13B........13X。另外,各個(gè)協(xié)同處理器的基本的內(nèi)部結(jié)構(gòu)在該實(shí)施方式中相同,因此僅詳
細(xì)說明協(xié)同處理器11的內(nèi)部結(jié)構(gòu)。在該實(shí)施方式中,由DMAC111......和處理單元13A......構(gòu)成本發(fā)明的多個(gè)圖
像處理部。另外,DMAC和處理單元并不是1對1對應(yīng)的。在本說明書中,以具有多個(gè)處理
單元為前提,假設(shè)具有多個(gè)圖像處理部。其中,在DMAC111......承擔(dān)圖像處理功能的情況
下,通過具有多個(gè)DMAC的情況,也可以掌握具有多個(gè)圖像處理部。DMACl 11......控制并行存儲(chǔ)器121......的動(dòng)作。其中,在該實(shí)施方式中,進(jìn)一
步,DMACl 11與處理單元13A......分擔(dān)執(zhí)行圖像處理的功能。處理單元13A......成為與用于圖像處理的函數(shù)對應(yīng)的結(jié)構(gòu)。并行存儲(chǔ)器121......接受在幀存儲(chǔ)器21中存儲(chǔ)的圖像數(shù)據(jù)的全部或者一部分,
并經(jīng)由DMAC而傳送到任一個(gè)處理單元13A......中。此外,作為本實(shí)施方式的并行存儲(chǔ)器121......,使用雙端口存儲(chǔ)器。本實(shí)施方式的多個(gè)DMACl 11......和處理單元13A......都具有與用于圖像處理
的函數(shù)對應(yīng)的功能。其中,也可以是只有處理單元13A......具有這個(gè)功能。DMACl 11......和處理單元13A......根據(jù)來自CPU3的指令,從并行存儲(chǔ)器
121......或者幀存儲(chǔ)器21接受圖像數(shù)據(jù)的全部或者一部分。此外,DMAC111......和處
理單元13A......對圖像數(shù)據(jù)的全部或者一部分進(jìn)行基于用于圖像處理的函數(shù)的處理。本實(shí)施方式的協(xié)同處理器11......由可重構(gòu)的可編程邏輯設(shè)備、即所謂的FPGA構(gòu)成。因此,協(xié)同處理器11......中的并行存儲(chǔ)器121......的數(shù)量和容量以及
DMACl 11......和處理單元13A......的數(shù)量和功能,可通過協(xié)同處理器11......的改寫
而變更。I/O接口 5是控制在與外部設(shè)備(未圖示)之間的輸入輸出動(dòng)作的部分。攝像機(jī)接口 6具有用于從攝像機(jī)(未圖示)獲取圖像的功能。視頻接口 7具有用于從視頻(未圖示)獲取圖像的功能。CPU總線8是用于進(jìn)行在CPU3和各個(gè)協(xié)同處理器11......之間的數(shù)據(jù)傳送的總線。協(xié)同處理器間總線9是用于進(jìn)行在各個(gè)協(xié)同處理器11......之間的數(shù)據(jù)傳送的總線。各個(gè)協(xié)同處理器11......還包括描述器141。描述器141是用于根據(jù)來自CPU3
的指令,寫入圖像處理或直接存儲(chǔ)器存取(DMA)的內(nèi)容的寄存器陣列。即,本實(shí)施方式的 CPU3成為將對于協(xié)同處理器11......的命令寫入描述器141的結(jié)構(gòu)。協(xié)同處理器11......讀取在描述器141中寫入的命令,并執(zhí)行基于
DMACl 11......和處理單元13A......的處理(即,基于多個(gè)圖像處理部的處理)。(圖像處理方法)接著,參照圖2,以下說明使用了本實(shí)施方式的圖像處理裝置的圖像處理方法。(圖2的步驟S-1)首先,通過來自CPU3的指示,從攝像機(jī)接口 6或者視頻接口 7獲取成為處理對象的圖像。(圖2的步驟S-2)接著,與處理該圖像的協(xié)同處理器11......對應(yīng)的幀存儲(chǔ)器21......存儲(chǔ)該圖
像或者其一部分。該處理也通過來自CPU3的指示而進(jìn)行。另一方面,CPU3將對于各個(gè)協(xié)同處理器11......的指令寫入各自的描述器141中。具體地說,CPU3在各個(gè)描述器141中寫入以下的信息(指令)。 要使用的處理單元;·要使用的并行存儲(chǔ)器(輸入用和輸出用); 用于處理的參數(shù);·在哪個(gè)處理單元中的處理完成后開始處理(即,等待單元)。(圖2的步驟S-3)接著,各個(gè)協(xié)同處理器11......讀取在描述器141中寫入的指令。S卩,各個(gè)協(xié)同處理器11......讀取在描述器141中寫入的指令,并將處理分配給
各個(gè)圖像處理部(DMAC和處理單元)。各個(gè)DMAC和處理單元獨(dú)立地并行動(dòng)作。例如,還能夠一邊進(jìn)行總和計(jì)算一邊進(jìn)行坐標(biāo)變換。若使用描述器方式,則能夠一次對協(xié)同處理器指示多個(gè)處理,所以能夠減少在協(xié)同處理器的動(dòng)作完成時(shí)對于CPU的中斷的次數(shù)。(圖2的步驟S-4和步驟S-5)接著,圖像處理部從幀存儲(chǔ)器21......或者并行存儲(chǔ)器121......獲取圖像的全部或者一部分而進(jìn)行處理。以下詳細(xì)敘述這個(gè)處理。分配在描述器中寫入的處理的模塊(該模塊例如能夠在描述器內(nèi)構(gòu)筑)如下動(dòng)作。另外,在這里的說明中,處理單元包括DMAC(具有圖像處理功能的情況)。1)讀取下一個(gè)描述器。2)若描述器空閑,則停止處理。3)等待至想要使用的處理單元和等待單元的全部成為可使用。4)對處理單元分配處理。5)返回到所述1)。這里,在本實(shí)施方式中,在不指定等待單元的情況下,在描述器中寫入的處理的內(nèi)容立即傳送到各個(gè)處理單元。在指定等待單元的情況下,直到指定的單元空閑為止(處理完成為止),不進(jìn)行處理的分配。在排列了使用相同的單元的處理的情況下,前一個(gè)處理完成后進(jìn)行下一個(gè)處理。在本實(shí)施方式的結(jié)構(gòu)中,只能夠使用通常的CPU的編程環(huán)境,進(jìn)行算法的安裝。通
過在協(xié)同處理器11......內(nèi)預(yù)先準(zhǔn)備進(jìn)行基本的圖像處理的處理單元13A......或者
DMACl 11......,并將這些組合使用,從而能夠安裝各種算法。在本實(shí)施方式中,由于不需要
在每次想要變更算法時(shí)進(jìn)行電路設(shè)計(jì),所以減輕了用戶的負(fù)擔(dān)。此外,在本實(shí)施方式中,由
于能夠通過處理單元13A......或者DMAC111......高速地執(zhí)行特定的函數(shù),所以能夠高
速地進(jìn)行圖像處理。另外,在本實(shí)施方式中,通過調(diào)用在程序中準(zhǔn)備的API (Application Programming hterface,應(yīng)用編程接口),從而能夠在描述器中寫入命令。例如,在使用協(xié)同處理器11,在處理單元13A和處理單元1 的雙方完成之后在處理單元13A中進(jìn)行處理的情況下,如下進(jìn)行。另外,在以下的例子中,UNIT_A1、UNIT_A2這樣的下標(biāo)表示是具有相同的功能的處理模塊的情況。
權(quán)利要求
1.一種圖像處理裝置,包括協(xié)同處理器、幀存儲(chǔ)器以及CPU, 所述幀存儲(chǔ)器存儲(chǔ)要處理的圖像數(shù)據(jù),所述協(xié)同處理器包括多個(gè)圖像處理部和多個(gè)并行存儲(chǔ)器,所述并行存儲(chǔ)器接受在所述幀存儲(chǔ)器中存儲(chǔ)的所述圖像數(shù)據(jù)的全部或者一部分,傳送到所述圖像處理部中的其中一個(gè),多個(gè)所述圖像處理部都具有與用于圖像處理的函數(shù)對應(yīng)的功能, 并且,多個(gè)所述圖像處理部根據(jù)來自所述CPU的指令,從所述并行存儲(chǔ)器或者所述幀存儲(chǔ)器接受所述圖像數(shù)據(jù)的全部或者一部分,對所述圖像數(shù)據(jù)的全部或者一部分進(jìn)行基于用于所述圖像處理的函數(shù)的處理。
2.如權(quán)利要求1所述的圖像處理裝置,其中,所述協(xié)同處理器由可重構(gòu)的可編程邏輯設(shè)備構(gòu)成。
3.如權(quán)利要求1或2所述的圖像處理裝置,其中, 多個(gè)所述并行存儲(chǔ)器是雙端口存儲(chǔ)器。
4.如權(quán)利要求1至3的任一項(xiàng)所述的圖像處理裝置,其中, 所述圖像處理部包括直接存儲(chǔ)器存取控制器和處理單元, 所述直接存儲(chǔ)器存取控制器控制所述并行存儲(chǔ)器的動(dòng)作, 所述處理單元進(jìn)行基于用于所述圖像處理的函數(shù)的處理。
5.如權(quán)利要求1至4的任一項(xiàng)所述的圖像處理裝置,其中, 包括多個(gè)所述協(xié)同處理器。
6.如權(quán)利要求5所述的圖像處理裝置,其中,多個(gè)所述協(xié)同處理器連接到共同的協(xié)同處理器總線。
7.如權(quán)利要求1至6的任一項(xiàng)所述的圖像處理裝置,其中, 所述協(xié)同處理器還包括描述器,所述CPU在所述描述器中寫入對于所述協(xié)同處理器的命令,所述協(xié)同處理器讀取在所述描述器中寫入的命令,執(zhí)行多個(gè)所述圖像處理部的處理。
8.如權(quán)利要求1至7的任一項(xiàng)所述的圖像處理裝置,其中, 多個(gè)所述圖像處理部基于來自所述CPU的指令,獨(dú)立地并行動(dòng)作。
9.一種圖像處理方法,包括以下步驟(1)幀存儲(chǔ)器存儲(chǔ)要處理的圖像數(shù)據(jù)的步驟;(2)并行存儲(chǔ)器接受在所述幀存儲(chǔ)器中存儲(chǔ)的所述圖像數(shù)據(jù)的全部或者一部分的步驟;(3)多個(gè)所述圖像處理部根據(jù)來自CPU的指令,從所述并行存儲(chǔ)器或者所述幀存儲(chǔ)器接受所述圖像數(shù)據(jù)的全部或者一部分的步驟;以及(4)多個(gè)所述圖像處理部根據(jù)來自所述CPU的指令,對所述圖像數(shù)據(jù)的全部或者一部分分別進(jìn)行基于用于圖像處理的函數(shù)的處理的步驟。
10.如權(quán)利要求9所述的圖像處理方法,其中, 作為所述并行存儲(chǔ)器,使用雙端口存儲(chǔ)器,多個(gè)圖像處理部還根據(jù)來自所述CPU的指令,進(jìn)行以所述并行存儲(chǔ)器作為緩存的流水線處理。
11.如權(quán)利要求9或10所述的圖像處理方法,其中,多個(gè)所述圖像處理部基于來自所述CPU的指令,獨(dú)立地并行動(dòng)作,多個(gè)所述圖像處理部還根據(jù)來自所述CPU的指令,進(jìn)行按任務(wù)等級的并行處理。
全文摘要
本發(fā)明通過程序來指定與用于圖像處理的特定的函數(shù)對應(yīng)的多個(gè)圖像處理部并使其動(dòng)作,從而實(shí)現(xiàn)圖像處理的高速化。幀存儲(chǔ)器(21......)存儲(chǔ)要處理的圖像數(shù)據(jù)。并行存儲(chǔ)器(121......)接受在幀存儲(chǔ)器(21......)中存儲(chǔ)的圖像數(shù)據(jù)的全部或者一部分,傳送到圖像處理用的DMAC(111......)或者處理單元(13A......)的其中一個(gè)。處理單元(13A......)具有與用于圖像處理的函數(shù)對應(yīng)的功能。處理單元(13A......)根據(jù)來自CPU(3)的指令,從并行存儲(chǔ)器(121......)或者幀存儲(chǔ)器(21......)接受圖像數(shù)據(jù)的全部或者一部分,并對圖像數(shù)據(jù)的全部或者一部分進(jìn)行基于用于圖像處理的函數(shù)的處理。
文檔編號(hào)G06T1/20GK102483842SQ20108003796
公開日2012年5月30日 申請日期2010年8月13日 優(yōu)先權(quán)日2009年8月26日
發(fā)明者小室孝, 田畑友啟, 石川正俊 申請人:國立大學(xué)法人東京大學(xué)