基于NiosII的視頻采集與DVI成像
Error:錯誤狀態(tài),ITU-RBT656規定Y=[16 235] CBCR=[16 240]范圍內,越此范圍就為錯誤狀態(tài)。如果capture=1,跳轉到Wait state狀態(tài),否則停留在Error狀態(tài)。該系統具有自動(dòng)錯誤恢復能力。
3.2 圖像剪裁處理
PAL-D制式視頻在ITU-RBT.656標準下,輸出像素面為720×576大小,而本設計中要求輸出大小為640×480像素面,所以必須使得行720像素變?yōu)?40個(gè),采用每9個(gè)像素丟棄1個(gè)像素,因為Y/Cb/Cr是交替輸出的,即Cb-Y-Cr-Y傳輸,每個(gè)像素都有亮度數據Y,但是色度Cr和Cb是交替的。如果第1個(gè)像素是Cb和Y數據,則第8個(gè)像素即為Cr和Y數據,第9個(gè)像素為Cb和Y數據,現在丟棄第9個(gè)像素數據,先把第10個(gè)素的Cr數據和第11個(gè)像素的Cb交換,這樣就保持了Cb和Cr的交替。視頻中采取每6行可視像素丟棄1行,對于576行可視像素,實(shí)際丟棄96行,即變?yōu)閷?shí)際可顯示480行。
3.3 圖像交織與存儲處理
視頻信號采集控制處理后產(chǎn)生行、場(chǎng)、幀、視頻有效標志及每場(chǎng)視頻行數、每行像素點(diǎn)數。本設計利用這些信號組合作為存儲地址控制字寫(xiě)入SSRAM,每2個(gè)DATACLK為1個(gè)像素數據,4個(gè)DATACLK為2個(gè)像素數據32 bit,FPGA控制每4個(gè)DATACLK寫(xiě)入一次32 bit數據。
每場(chǎng)視頻可視行為288行,占用2進(jìn)制位9 bit,奇偶場(chǎng)標志1 bit,每行像素有640個(gè),存入SSRAM時(shí)按照每2個(gè)像素寫(xiě)入一次,故每行像素為360個(gè)寫(xiě)入次,設計為9 bit,總共為19 bit,正好占用完19 bit地址線(xiàn)。
奇偶場(chǎng)標志就是上述EAV/SAV狀態(tài)字中的F,電視視頻中,首先傳輸的是偶數場(chǎng),此時(shí)A9=0;其次傳輸的是奇數場(chǎng),此時(shí)A9=1。幀控制位frame定義為1 bit,當完成一幀的傳輸后就使frame=frame+1,這樣幀控制位就是0-1-0-1-0-1序列,完成一幀傳輸就翻轉一次。幀控制位用來(lái)切換存儲體,當幀控制位切換在第一片SSRAM上時(shí),偶數場(chǎng)先存入到SSRAM中,然后奇數場(chǎng)數據嵌入到SSRAM中。
4 圖像處理和DVI編碼顯示
視頻采集的圖像已經(jīng)交替存入SSRAM中,當一幀存儲完畢,該存儲體就可以進(jìn)行處理上傳。圖像處理包括Y/Cb/Cr 4:2:2格式轉化為Y/Cb/Cr 4:4:4,Y/Cb/Cr轉化為RGB格式,可實(shí)時(shí)RGB像素處理,像素處理后按照行、場(chǎng)同步信號依次送入DVI芯片。
4.1 YCrCb轉RGB處理
首先處理的是Y/Cb/Cr 4:2:2格式轉化為Y/Cb/Cr 4:4:4格式,就是對每個(gè)像素擴展其色度數據,使得每個(gè)像素為24 bit。其中8 bit為亮度數據,8 bit為Cr數據,8 bit為Cb數據。
由YCrCb數據轉換為RGB數據可按照下式:
R=1.164×(Y-16)+1.596×(Cr-128)
G=1.164×(Y-16)-0.813×(Cr-128)-0.392×(Cb-128)(1)
B=1.164×(Y-16)+2.017×(Cb-128)
實(shí)際上FPGA片內不能進(jìn)行小數運算,因此把需要運算的數左移9 bit,且運用FPGA片內的乘法器宏單元完成。則式(1)變?yōu)槭?2):
R=596×Y+817×Cr-114 131
G=596×Y-416×Cr-200×Cb+69 370(2)
B=596×Y+1 033×Cb-141 787
這樣得到的RGB信號只需要右移9 bit就可以得到正確的8 bit數據位寬度的RGB信號,對RGB像素的處理受NiosII核控制,掛接在NiosII核上的Avalon從設備有3 bit控制信號,其值從0~7,分別對應灰度處理、像素水平線(xiàn)性放大插值處理、水平縮小處理、原三彩色輸出和無(wú)定義。
若進(jìn)行灰度處理,則按照下式計算:
Y=0.299×R+0.587×G+0.114×B(3)
在計算時(shí)也需要先左移9 bit,采用3路乘法MULT_
ADD宏單元計算,計算結果右移9 bit。如果進(jìn)行水平像素放大,則采取線(xiàn)性插值法,其他圖像處理按照相應算法進(jìn)行。
4.2 視頻數據輸出和DVI配置
DVI輸出刷新頻率為75 Hz,輸出屏幕像素為640×480,查VGA時(shí)序表得到在640×480@75 Hz時(shí),水平像素總共為840,垂直像素總共為500,行頻為37.5 kHz,點(diǎn)時(shí)鐘頻率為31.5 MHz,這個(gè)頻率由FPGA片內PLL倍頻得到。配置DVI芯片引腳,設置IDCK+為像素時(shí)鐘31.5 MHz,IDCK-接地,DE表示有效像素數據使能,其值在有效行和有效列內為高電平,否則為低電平。行、場(chǎng)同步信號由在FPGA片內編寫(xiě)的DVI模塊產(chǎn)生時(shí)序控制。通過(guò)I2C口配置SiI178芯片,設置其為正常工作方式,VSYNC、HSYNC為正常輸入狀態(tài),輸入總線(xiàn)為24 bit寬,IDCK+下降沿將數據打入DVI編碼芯片。
系統采用FPGA為主控芯片,通過(guò)一片FPGA完成視頻解碼數據的采集和圖像處理,并在FPGA片內配置NiosII軟核,作為初始化TVP5146和SiI178使用,在圖像處理模塊中掛接Avalon從設備,YCbCr轉換為RGB后可以通過(guò)NiosII處理器編寫(xiě)C算法處理或者通過(guò)NiosII的標志信號進(jìn)行處理,處理結果直接送DVI編碼器。采用乒乓交織算法,保證了圖像不閃爍和無(wú)鋸齒現象。本文引用地址:http://dyxdggzs.com/article/195400.htm
評論