專利名稱:數(shù)據(jù)處理系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微電子領(lǐng)域,更具體地涉及一種數(shù)據(jù)處理系統(tǒng)及方法。
背景技術(shù):
在軟件開發(fā)中,很多地方都會用到“圖(Map)”的結(jié)構(gòu),用以描述事物之間比較復(fù)雜的互聯(lián)關(guān)系。例如,C model軟件(也稱為Puma)中就用“圖”來描述各個圖像處理算法模塊之間的關(guān)系。
在Puma中,將圖像處理算法模塊稱為box,將box之間的數(shù)據(jù)流通道稱為邊。如圖1所示,Puma軟件對數(shù)據(jù)的處理過程為輸入數(shù)據(jù)依次經(jīng)由不同圖像處理算法模塊的處理而最終得到輸出。
圖2示出了Puma軟件的結(jié)構(gòu)框圖。其中,在Puma運行時,用戶通過用戶界面發(fā)出命令(例如,增添新的算法box、刪除已有的算法box、連接兩個box、或運行當(dāng)前圖結(jié)構(gòu)等的命令),這些命令經(jīng)過用戶命令(GUI command)模塊的解釋發(fā)送給“圖結(jié)構(gòu)管理器”,后者再具體執(zhí)行對算法實體的操作。同時也把當(dāng)前Map的狀態(tài)通過實時刷新顯示(GUI Display)模塊實時顯示在用戶界面上,從而使得用戶能夠看到當(dāng)前的Map狀態(tài)。
下面以圖3所示的實例來說明圖2所示的軟件結(jié)構(gòu)存在的問題。在圖3中,每一個box都代表了對圖像數(shù)據(jù)的一種處理算法。由圖3可見,數(shù)據(jù)從U2的輸入端(Inport)輸入,經(jīng)過諸多處理后從U6、U0的輸出端(Outport)輸出。其中,U0代表使用者添加的第一個圖像處理算法模塊,U1、U2、...、U6表示使用者依次添加的六個圖像處理算法模塊。程序內(nèi)部使用一個鏈表來完成對這些圖像處理算法模塊的存儲,這些圖像處理算法模塊進(jìn)入鏈表的順序和使用者通過用戶界面上添加的順序一致,即軟件使用者首先添加U0,接著添加U1、U2...直到U6。此時,軟件內(nèi)部是按照這個順序以鏈表的方式依次存儲這7種數(shù)據(jù)處理算法模塊的。這種鏈表存儲的順序反映到用戶界面上,就是圖3中的U0至U6的順序。
在通過如圖2所示的軟件結(jié)構(gòu)按照圖3所示的圖結(jié)構(gòu)對數(shù)據(jù)進(jìn)行處理時,需要對圖結(jié)構(gòu)進(jìn)行遍歷,以分別調(diào)用各個圖像算法處理模塊中的處理算法。最直觀的做法就是通過順序搜索鏈表來調(diào)用對應(yīng)的圖像算法處理模塊中的函數(shù),其流程用偽代碼表示如下Main_Process(){While(還有待處理的數(shù)據(jù)可輸入并且還有數(shù)據(jù)沒輸出完){向輸入端口U2Input port輸入待處理數(shù)據(jù);調(diào)用圖遍歷處理函數(shù)Map_Process()進(jìn)行數(shù)據(jù)處理;從輸出端口U6,U0Output port取得處理結(jié)果;}}Map_Process(){獲取總的結(jié)點數(shù)目TotNodeNum;for(i=0;i<TotNodeNum;i++)循環(huán)遍歷每一個結(jié)點{訪問box鏈表,調(diào)用每個結(jié)點的處理函數(shù)。
}}
從上述偽代碼可以看出,在Map_Process()函數(shù)中,我們按照從0到總邊數(shù)(TotNodeNum)的順序來對圖結(jié)構(gòu)進(jìn)行遍歷,具體到圖3的例子,其訪問順序就是U0→U1→U2→U3→U4→U5→U6。每調(diào)用一次Map_Process()函數(shù),就按上面的次序完成一次對圖結(jié)構(gòu)的所有圖像處理算法模塊的遍歷。
仔細(xì)分析一下運行的過程,可知第一次遍歷時,只有U2、U4、U5、和U6有輸入數(shù)據(jù),而其他圖像數(shù)據(jù)算法模塊都沒有輸入數(shù)據(jù),因而除了U2、U4、U5、和U6以外的其他圖像處理算法模塊都是“空載”運行的;第二次遍歷時,U0仍然無法運行,因為它的第二、三個輸入端仍然沒有輸入數(shù)據(jù)到來。后面的遍歷依次類推。
從上面的例子我們看到,這樣的遍歷順序造成了初始和結(jié)束兩個階段都會有圖像處理算法模塊空載運行,因而效率比較低。尤其當(dāng)圖像處理算法模塊增多,圖結(jié)構(gòu)的互聯(lián)關(guān)系更復(fù)雜時,這一現(xiàn)象就更為突出。
發(fā)明內(nèi)容
鑒于以上所述的一個或多個問題,本發(fā)明提供了一種新的數(shù)據(jù)處理系統(tǒng)及方法,以提高數(shù)據(jù)處理效率。
根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)包括數(shù)據(jù)輸入裝置,用于輸入待處理數(shù)據(jù);算法排序裝置,用于對數(shù)據(jù)處理裝置中的至少兩個算法存儲單元的存儲位置進(jìn)行調(diào)整;以及數(shù)據(jù)處理裝置,用于利用經(jīng)過存儲位置調(diào)整的至少兩個算法存儲單元中的算法對待處理數(shù)據(jù)進(jìn)行處理。
根據(jù)本發(fā)明的數(shù)據(jù)處理方法包括以下步驟S802,對數(shù)據(jù)處理裝置中的至少兩個算法存儲單元的存儲位置進(jìn)行調(diào)整;以及S804,利用經(jīng)過存儲位置調(diào)整的至少兩個算法存儲單元中的算法對待處理數(shù)據(jù)進(jìn)行處理。通過本發(fā)明,可以提高數(shù)據(jù)處理效率。
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖1是相關(guān)技術(shù)中的Puma軟件的概念框圖;圖2是相關(guān)技術(shù)中的Puma軟件的結(jié)構(gòu)框圖;圖3是相關(guān)技術(shù)中的Puma軟件的圖結(jié)構(gòu)的一個實例示意圖;圖4是根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的框圖;圖5是根據(jù)本發(fā)明實施例的數(shù)據(jù)處理系統(tǒng)(Puma軟件)的結(jié)構(gòu)圖;圖6是采用圖5所示的Puma軟件進(jìn)行排序后的圖結(jié)構(gòu)的示意圖;圖7是根據(jù)本發(fā)明實施例的圖結(jié)構(gòu)排序器進(jìn)行排序的流程圖;以及圖8是根據(jù)本發(fā)明實施例的數(shù)據(jù)處理方法的流程圖。
具體實施例方式
下面參考附圖,詳細(xì)說明本發(fā)明的具體實施方式
。
參考圖4,說明根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)。如圖4所示,該數(shù)據(jù)處理系統(tǒng)包括數(shù)據(jù)輸入裝置402,用于輸入待處理數(shù)據(jù);算法排序裝置404,用于對數(shù)據(jù)處理裝置中的至少兩個算法存儲單元的存儲位置進(jìn)行調(diào)整;以及數(shù)據(jù)處理裝置406,用于利用經(jīng)過存儲位置調(diào)整的至少兩個算法存儲單元中的算法對待處理數(shù)據(jù)進(jìn)行處理。
其中,算法排序裝置404包括順序比較單元4042,用于對至少兩個算法存儲單元中的互相連接的兩個算法存儲單元的存儲順序進(jìn)行比較;位置交換單元4044,用于在互相連接的兩個算法存儲單元中的數(shù)據(jù)流出的算法存儲單元的存儲順序晚于數(shù)據(jù)流入的算法存儲單元的存儲順序時,對互相連接的兩個算法存儲單元的存儲位置進(jìn)行交換。
其中,數(shù)據(jù)處理裝置406包括算法調(diào)用單元4062,用于調(diào)用至少兩個算法存儲單元中的算法對待處理數(shù)據(jù)進(jìn)行處理;至少兩個算法存儲單元4064,用于存儲用于對待處理數(shù)據(jù)進(jìn)行處理的算法。
根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)還包括算法增減裝置408,用于向數(shù)據(jù)處理裝置中添加一個或多個新算法存儲單元,以及用于從數(shù)據(jù)存儲裝置中刪除至少兩個算法存儲單元中的一個或多個;結(jié)構(gòu)調(diào)整裝置410,用于調(diào)整至少兩個算法存儲單元中的任意兩個算法存儲單元之間的連接關(guān)系;以及結(jié)構(gòu)顯示裝置412,用于實時顯示至少兩個算法存儲單元中的任意兩個算法存儲單元之間的連接結(jié)構(gòu)。
參考圖5,說明根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的具體實施例Puma軟件的結(jié)構(gòu)。如圖5所示,根據(jù)本發(fā)明實施例的Puma軟件在原有結(jié)構(gòu)(如圖2所示)的基礎(chǔ)上,增加了一個“圖結(jié)構(gòu)排序器(即,算法排序裝置)”。其作用是對圖中的圖像處理算法模塊進(jìn)行排序,以使排序后的圖結(jié)構(gòu)能夠消除“空載”運行的現(xiàn)象。
當(dāng)用戶發(fā)送的命令是添加、刪除、連接等對圖結(jié)構(gòu)進(jìn)行修改的命令時,用戶命令模塊(即,算法增減裝置、結(jié)構(gòu)調(diào)整裝置的組合)會直接發(fā)送命令給結(jié)構(gòu)管理器(即,數(shù)據(jù)處理裝置)。如圖5中的用戶命令模塊的右側(cè)分支所示,此時圖5和圖2是沒有區(qū)別的。
當(dāng)用戶發(fā)送的是運行當(dāng)前圖結(jié)構(gòu)的命令時,用戶命令模塊則會走左側(cè)通道,先調(diào)用圖結(jié)構(gòu)排序器對當(dāng)前圖中的圖像處理算法模塊進(jìn)行排序,之后再傳遞命令給圖結(jié)構(gòu)管理器,進(jìn)入運行狀態(tài)。和圖2相比,運行之前加入了排序的環(huán)節(jié),以提高運行效率。
其中,圖5中的用戶界面用作為圖4中的數(shù)據(jù)輸入裝置,并與用戶命令模塊一起組成算法增減裝置和結(jié)構(gòu)調(diào)整裝置。圖5中的實時刷新顯示模塊用作為圖4中的結(jié)構(gòu)顯示裝置。圖5中的圖結(jié)構(gòu)管理器(即,算法調(diào)用單元)和算法實體模塊(即,算法存儲單元)組成了圖4中的數(shù)據(jù)處理裝置。
下面就圖3的例子,說明本發(fā)明實施例中添加的圖結(jié)構(gòu)排序器的作用。圖3中所示的Puma軟件的圖結(jié)構(gòu)經(jīng)過圖結(jié)構(gòu)排序器的調(diào)整后,排列次序變?yōu)槿鐖D6中所示。
在圖6中,U0處理完的數(shù)據(jù)會輸出給U1的輸入,U1處理完的數(shù)據(jù)會輸出給U2、U3、U4的輸入,U2處理完的數(shù)據(jù)會輸出給U5的輸入,U3處理完的數(shù)據(jù)也會輸出給U5的輸入,而U4處理完的數(shù)據(jù)會輸出給U5、U6的輸入,從而在第一次遍歷中,所有的圖像處理算法模塊都能進(jìn)行有效的數(shù)據(jù)處理,進(jìn)而消除了“空載”現(xiàn)象,提高了軟件的運行效率。
參考圖7,說明根據(jù)本發(fā)明實施例的圖結(jié)構(gòu)排序器進(jìn)行排序的流程。其中,圖結(jié)構(gòu)排序器所起的作用對于程序內(nèi)部而言,就是把鏈表的存儲順序由圖3改為圖6。(前面已經(jīng)描述過內(nèi)部鏈表存儲順序和顯示一致,都是以U0開頭,依次遞增)。
在圖3所示的圖結(jié)構(gòu)中,總共存在8條邊,也就是TolEdgeNum=8。這里,采取兩重循環(huán)來完成調(diào)整的過程,每一重循環(huán)的次數(shù)都是TolEdgeNum次,循環(huán)次數(shù)用變量i和j表示。其中,每一重循環(huán)都以圖3中的從上到下、從左到右的順序?qū)D像處理算法模塊進(jìn)行遍歷。用類C語言的偽代碼表示圖6的過程如下for(i=0;i<TolEdgeNum;i++){for(j=0;j<TolEdgeNum;j++){調(diào)換或不調(diào)換第j條邊兩側(cè)的box的位置}}也就是說,例如在i或j=0時,可以得到連接圖3中的U2和U4的邊(在Puma軟件中,數(shù)據(jù)流是單向流動的,在這里把流出單向數(shù)據(jù)流的一端稱為源端,流入單向數(shù)據(jù)流的一端稱為目的端)。接下來比較這條邊兩端的box編號,如果源端的box編號比目的端的box編號小,則不做調(diào)整;如果源端的box編號比目的端的box編號大,則交換源端的box和目的端的box在鏈表中的存儲位置。從而使得源端在運行時先進(jìn)行數(shù)據(jù)處理,以保證目的端的box在運行時已經(jīng)有數(shù)據(jù)可以使用。
為明確起見,我們可以簡單描述一下對于i=0,j=0到4的大致運行過程,其中,初始態(tài)就是圖3所示的狀態(tài)i=0,j=0,U2、U4不交換位置;i=0,j=1,U4、U5不交換位置;
i=0,j=2,U4、U3要交換位置;i=0,j=3,此時這條邊連接的已經(jīng)是U3和U1了,故U3和U1要交換位置;i=7,j=7,最后一次判斷是否需要交換位置,至此運行完畢。
其中,對于n個圖像處理算法模塊的最壞情況是U0處于最后一個位置,在這種情況下,最多需要n-1次對換就能將U0換到第一個位置,而圖7中的外層循環(huán)為n次,故能滿足要求。
綜上所述,在圖5至圖7所示的實施例中,對數(shù)據(jù)進(jìn)行處理的過程包括以下步驟(如圖8所示)S802,對數(shù)據(jù)處理裝置中的至少兩個算法存儲單元進(jìn)行位置調(diào)整;以及S804,利用經(jīng)過位置調(diào)整的至少兩個算法存儲單元中的算法對待處理數(shù)據(jù)進(jìn)行處理。
其中,步驟S802包括以下步驟S8022,對至少兩個算法存儲單元中的互相連接的兩個算法存儲單元的存儲順序進(jìn)行比較;S8024,在互相連接的兩個算法存儲單元中的數(shù)據(jù)流出的算法存儲單元的存儲順序晚于數(shù)據(jù)流入的算法存儲單元的存儲順序時,對互相連接的兩個算法存儲單元的存儲位置進(jìn)行交換。
其中,步驟S804包括以下步驟S8042,調(diào)用經(jīng)過位置調(diào)整的至少兩個算法存儲單元中的算法;S8044,利用所調(diào)用的算法存儲單元中的算法對待處理數(shù)據(jù)進(jìn)行處理。
以上所述僅為本發(fā)明的實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng),其特征在于,包括數(shù)據(jù)輸入裝置,用于輸入待處理數(shù)據(jù);算法排序裝置,用于對數(shù)據(jù)處理裝置中的至少兩個算法存儲單元的存儲位置進(jìn)行調(diào)整;以及所述數(shù)據(jù)處理裝置,用于利用經(jīng)過存儲位置調(diào)整的所述至少兩個算法存儲單元中的算法對所述待處理數(shù)據(jù)進(jìn)行處理。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述算法排序裝置包括順序比較單元,用于對所述至少兩個算法存儲單元中的互相連接的兩個算法存儲單元的存儲順序進(jìn)行比較;位置交換單元,用于在互相連接的兩個算法存儲單元中的數(shù)據(jù)流出的算法存儲單元的存儲順序晚于數(shù)據(jù)流入的算法存儲單元的存儲順序時,對互相連接的兩個算法存儲單元的存儲位置進(jìn)行交換。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述數(shù)據(jù)處理裝置包括算法調(diào)用單元,用于調(diào)用所述至少兩個算法存儲單元中的算法對所述待處理數(shù)據(jù)進(jìn)行處理;所述至少兩個算法存儲單元,用于存儲用于對所述待處理數(shù)據(jù)進(jìn)行處理的算法。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)處理系統(tǒng),其特征在于,還包括算法增減裝置,用于向所述數(shù)據(jù)處理裝置中添加一個或多個新算法存儲單元,以及用于從所述數(shù)據(jù)存儲裝置中刪除所述至少兩個算法存儲單元中的一個或多個。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理系統(tǒng),其特征在于,還包括結(jié)構(gòu)調(diào)整裝置,用于調(diào)整所述至少兩個算法存儲單元中的任意兩個算法存儲單元之間的連接關(guān)系。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)處理系統(tǒng),其特征在于,還包括結(jié)構(gòu)顯示裝置,用于實時顯示所述至少兩個算法存儲單元中的任意兩個算法存儲單元之間的連接結(jié)構(gòu)。
7.一種數(shù)據(jù)處理方法,其特征在于,包括以下步驟S802,對數(shù)據(jù)處理裝置中的至少兩個算法存儲單元的存儲位置進(jìn)行調(diào)整;以及S804,利用經(jīng)過存儲位置調(diào)整的所述至少兩個算法存儲單元中的算法對待處理數(shù)據(jù)進(jìn)行處理。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理方法,其特征在于,所述步驟S802包括以下步驟S8022,對所述至少兩個算法存儲單元中的互相連接的兩個算法存儲單元的存儲順序進(jìn)行比較;S8024,在互相連接的兩個算法存儲單元中的數(shù)據(jù)流出的算法存儲單元的存儲順序晚于數(shù)據(jù)流入的算法存儲單元的存儲順序時,對互相連接的兩個算法存儲單元的存儲位置進(jìn)行交換。
9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)處理方法,其特征在于,所述步驟S804包括以下步驟S8042,調(diào)用經(jīng)過存儲位置調(diào)整的所述至少兩個算法存儲單元中的算法;S8044,利用所述算法對所述待處理數(shù)據(jù)進(jìn)行處理。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)處理系統(tǒng)及方法。其中,該數(shù)據(jù)處理系統(tǒng)包括數(shù)據(jù)輸入裝置,用于輸入待處理數(shù)據(jù);算法排序裝置,用于對數(shù)據(jù)處理裝置中的至少兩個算法存儲單元的存儲位置進(jìn)行調(diào)整;以及數(shù)據(jù)處理裝置,用于利用經(jīng)過存儲位置調(diào)整的至少兩個算法存儲單元中的算法對待處理數(shù)據(jù)進(jìn)行處理。通過本發(fā)明,可以提高數(shù)據(jù)處理效率。
文檔編號G06F9/44GK101075193SQ20071009980
公開日2007年11月21日 申請日期2007年5月30日 優(yōu)先權(quán)日2007年5月30日
發(fā)明者謝韜, 游明琦 申請人:北京中星微電子有限公司