專利名稱:基于達芬奇平臺的圖像幀處理優化方法
技術領域:
本發明涉及圖像處理的技術領域,具體說是一種省去memcpy操作,具有更高效率的基于達芬奇平臺的圖像幀處理優化方法。
背景技術:
目前,嵌入式智能交通產品的需求和應用越來越廣,不論是高速卡口還是路口,都需要車輛檢測設備。代替傳統的地感線圈方式,純視頻車輛檢測已經越來越多的應用。而純視頻車輛檢測的一個重要方法是基于虛擬線圈的灰度圖像幀差算法。幀差算法是將兩幀或多幀連續圖像逐像素相減,以去除靜止或移動緩慢的物體及背景,它是消除兩幀連續圖像中的靜止物體以及提供運動物體或車輛運動軌跡最直接 的方法。設AB是相鄰(或相差幾幀)兩幀灰度圖像,寬M高N,res是幀差結果圖,幀差算法的公式如下
Res (i,j) = I A(i,j) _B(i,j) I (O 彡 i 彡N,0 彡 j 彡Μ)
現有技術中基于達芬奇平臺的圖像幀處理方法如下
設由EDMA傳來視頻圖像幀在內存的固定地址(假設為0x80000000),圖像為yuV422sp格式,也就是從0x80000000開始連續存儲亮度數據,數據長度是圖片長*寬個字節,后緊隨色度數據。我們這里只處理亮度數據。假設幀率為25幀/s,也就是每隔40ms,從0x80000000開始處的圖像數據更新一次,也就是所有圖像處理操作必須在40ms內完成。圖像幀處理的具體步驟為
1.EDMA傳來視頻第η幀圖像到0x80000000 ;
2.內存拷貝(memcpy)第η幀圖像到另外指定或申請的一塊內存區假設0x81000000;
3.EDMA傳來視頻第η + I幀圖像到0x80000000 ;
4.根據幀差算法公式,將兩幅圖像進行幀差計算得到結果圖像;
5.內存拷貝(memcpy)第η+ I巾貞圖像到0x81000000 ;
6.返回第3步,循環執行。由上述步驟可見,該方法要求4,5兩步在40ms內完成。其中步驟4中幀差算法是可以用一些算法策略和內聯匯編優化的,但步驟5中memcpy操作既費時又無法優化,圖像越大越費時,甚至40ms內無法完成,如果要求相隔2幀甚至多幀幀差,那么memcpy的次數會更多。
發明內容
本發明要解決的技術問題是提供一種省去memcpy操作,具有更高效率的基于達芬奇平臺的圖像幀處理優化方法。本發明為解決公知技術中存在的技術問題所采取的技術方案是
本發明的基于達芬奇平臺的圖像幀處理優化方法,在內存中同時指定三個視頻圖像幀存儲地址,即增強型直接內存存取EDMA的目的地址,記為bufferl、buffer2、buffer3 ;將圖像數據巾貞通過EDMA按bufferl、buffer2、buffer3的順序循環依次存儲在上述多個視頻圖像存儲地址中,EDMA向上述某一視頻圖像幀存儲地址中寫入圖像數據幀時,CPU同時處理另外兩個視頻圖像幀存儲地址中的兩幀圖像數據。本發明的還可以采用以下技術措施
由EDMA存入視頻圖像幀存儲地址的圖像數據幀為相鄰的連續圖像幀。由EDMA存入視頻圖像幀存儲地址的圖像數據幀為彼此間隔的圖像幀。本發明具有的優點和積極效果是
本發明的基于達芬奇平臺的圖像幀處理優化方法中,圖像數據幀通過EDMA按buffer 1>buffer2>buffer3的順序循環依次存儲在上述多個視頻圖像存儲地址中,EDMA向上述某一視頻圖像幀存儲地址中寫入圖像數據幀時,CPU同時處理另外兩個視頻圖像幀存儲地址中的兩巾貞圖像數據,從而使CPU的執行形成pingpong機制。提高了 cpu利用率,而在cpu進行圖像幀處理時,同時讀取兩幀圖像,省去了 memcpy的執行步驟,從而大大提高了執行效率。
圖1是基于達芬奇平臺的圖像幀處理優化方法中圖像數據幀的循環示意圖。
具體實施例方式以下參照附圖及實施例對本發明進行詳細的說明。本發明的基于達芬奇平臺的圖像幀處理優化方法,在內存中同時指定三個視頻圖像幀存儲地址,即增強型直接內存存取EDMA的目的地址,記為bufferl、buffer2、buffer3 ;將圖像數據巾貞通過EDMA按bufferl、buffer2、buffer3的順序循環依次存儲在上述多個視頻圖像存儲地址中,EDMA向上述某一視頻圖像幀存儲地址中寫入圖像數據幀時,CPU同時處理另外兩個視頻圖像幀存儲地址中的兩幀圖像數據。圖1是基于達芬奇平臺的圖像幀處理優化方法中圖像數據幀的循環示意圖。如圖1所示,內存中劃分出三個視頻圖像巾貞存儲地址,記為bufferl、buffer2>buffer3,在EDMA向視頻圖像幀存儲地址內存入圖像數據幀的同時,CPU從視頻圖像幀存儲地址中同時讀取兩幀圖像數據幀進行處理。方便起見,圖1中將一個執行循環分為三個階段進行描述。在圖中第一階段中EDMA將當前幀存入到buffer3中,而CPU讀取處理分別存儲在bufferl中的前幀和buffer2中的后幀,將后幀和前幀利用幀差算法進行運算處理;當有新的圖像數據幀到來時,即進入圖中的第二階段,EDMA向bufferl中存入新的圖像數據幀以替代第一階段中的前幀,使bufferl中存儲第二階段的當前幀,buffer3中原來存儲的第一階段中的當前幀作為第二階段中的后幀,而buffer2中原來存儲的第一階段中的后幀作為第二階段中的前幀,此時CPU同時讀取并處理buffer2和buffer3中新的前幀和新的后幀;再有新的圖像數據幀到來時,即進入圖中的第三階段,EDMA向buffer2中存入新的圖像數據巾貞以替代第二階段中的前巾貞,使buffer2中存儲第三階段的當前巾貞,buffer3中原來存儲的第二階段中的后幀作為第三階段中的前幀,而bufferl中原來存儲的第二階段中的當前幀作為第三階段中的后幀,此時CPU同時讀取并處理bufferl和buffer3中新的前幀和新的后幀。上述三個階段循環執行,使EDMA和CPU的工作同時進行。由EDMA存入視頻圖像幀存儲地址的圖像數據幀為相鄰的連續圖像幀。由EDMA存入視頻圖像幀存儲地址的圖像數據幀為彼此間隔的圖像幀。如果需要隔幀幀差,則可以相應的擴大隊列長度而不增加任何memcpy操作,具有可擴展性。以上所述,僅是本發明的較佳實施例而已,并非對本發明作任何形式上的限制,雖然本發明已以較佳實施例公開如上,然而,并非用以限定本發明,任何熟悉本專業的技術人員,在不脫離本發明技術方案范圍內,當然會利用揭示的技術內容作出些許更動或修飾,成為等同變化的等效實施例,但凡是未脫離本發明技術方案的內容,依據本發明的技術實質對以上實施例所作的任何簡單修改、等同變化與修飾,均屬于本發明技術方案的范圍內。
權利要求
1.一種基于達芬奇平臺的圖像幀處理優化方法,在內存中同時指定三個視頻圖像幀存儲地址,即增強型直接內存存取EDMA的目的地址,記為bufferl、buffer2、buffer3 ;將圖像數據巾貞通過EDMA按bufferl、buffer2、buffer3的順序循環依次存儲在上述多個視頻圖像存儲地址中,EDMA向上述某一視頻圖像幀存儲地址中寫入圖像數據幀時,CPU同時處理另外兩個視頻圖像幀存儲地址中的兩幀圖像數據。
2.根據權利要求1所述的基于達芬奇平臺的圖像幀處理優化方法,其特征在于由EDMA存入視頻圖像幀存儲地址的圖像數據幀為相鄰的連續圖像幀。
3.根據權利要求1所述的基于達芬奇平臺的圖像幀處理優化方法,其特征在于由EDMA存入視頻圖像幀存儲地址的圖像數據幀為彼此間隔的圖像幀。
全文摘要
一種基于達芬奇平臺的圖像幀處理優化方法,在內存中同時指定三個視頻圖像幀存儲地址,即增強型直接內存存取EDMA的目的地址,記為buffer1、buffer2、buffer3;將圖像數據幀通過EDMA按buffer1、buffer2、buffer3的順序循環依次存儲在上述多個視頻圖像存儲地址中,EDMA向上述某一視頻圖像幀存儲地址中寫入圖像數據幀時,CPU同時處理另外兩個視頻圖像幀存儲地址中的兩幀圖像數據,從而使CPU的執行形成pingpong機制。提高了cpu利用率,而在cpu進行圖像幀處理時,同時讀取兩幀圖像,省去了memcpy的執行步驟,從而大大提高了執行效率。
文檔編號G06T1/20GK103020892SQ20121046136
公開日2013年4月3日 申請日期2012年11月16日 優先權日2012年11月16日
發明者謝曉霞, 靳璐 申請人:天津市天祥世聯網絡科技有限公司