基于ADSP―BF561的圖像平移系統的設計與實現
2.2 關鍵技術問題的解決途徑
在平移算法中由于每40 ms采集1幀數據,為了保證能夠使人眼實時的看到平移后的視頻流,必須要保證能夠實時的完成數據搬移工作。為此本設計中采用如下關鍵技術來解決。
(1)由于圖像輸入后,要經過平移算法對圖像進行上、下、左、右平移后,圖像才能輸出到電視上。因此該系統將圖像的輸入存儲區域和圖像的輸出存儲區域分別設為2塊獨立的區域,使得在數據輸入的同時還可進行數據的搬移及輸出顯示工作。每個輸入/輸出區域又可以分為4個區域,用來存儲順次進入的輸入/輸出圖像。其中sFrame0~sFrame3用來存儲輸入的視頻圖像,sFrame4~sFrame7用來存儲搬移后的視頻圖像。當啟動ADV7181B采集完1幀圖像存入后sFrame0,BF561啟動數據搬移工作,將視頻圖像搬移到sFrame4中,并通過PPI1送給視頻編碼器ADV7171,最后由電視屏幕顯示輸出,同時PPI0將數據繼續采集到sFramel。圖像存儲在SDRAM中,sFrame0~sFrame7各存儲區域的首地址分別為0x0000C400,0x1000000,0x1500000,0x01A00000,0x01F00000,0x02400000,0x02900000,0x03000000。
(2)為了提高系統的實時處理能力,將數據在不同存儲空間的轉移任務交給DMA來完成,從而使CPU只專注于數據的計算。為保證連續采集不斷幀,DMA采用描述子方式,并將最后一個描述子指向首塊的頭地址。CCD采集到的視頻圖像首先送到PPI0,經過2維DMA方式依次送到由描述子描述的圖像輸入存儲區域。
(3)由于圖像的平移,輸出后的圖像會有一些邊框,為提高系統的實時性,將邊框數據預先存放在SDRAM中,然后再采用MDMA方式將邊框數據傳送到相應的視頻輸出區域中。存放邊框數據的SDRAM定義為sFrame8,其首地址為0x03600000。其中sFrame8的大小為1440*288,即為ITU-656格式中一場數據的大小。本算法中上、下、左、右平移后的邊界填充為黑色,按UYVY格式即應該填充為0x80,0x10,0x80,0x10。邊框數據的MDMA方式傳輸在有效數據傳輸之前進行,每次MDMA傳輸也是只傳遞1場數據,1幀數據同樣需要2次MDMA傳輸完成。邊框數據的填充見圖2。圖2(b)為圖像右移后左邊填充為黑色邊框數據的示意圖。本文引用地址:http://www.104case.com/article/161958.htm
(4)從輸入區域到輸出區域只搬移有效的數據(Active Field),ITU-656格式的文件頭在輸出區域初始化時已設置完成。且有效的數據傳輸方式采用MDMA方式,每次傳輸1幀圖像數據中的1場圖像,搬完奇場數據后再搬偶場數據。
(5)平移后的圖像存儲在圖像輸出存儲區域(sFrame4~sFrame7)中,平移后的圖像由PPI1通過按描述子的指示輸出到電視上顯示出來。整個系統的工作框圖如圖3所示。
評論