欧美成人黄色网_欧美精品久久_国产在线一区二区三区_免费视频久久久_亚洲二区视频_欧美大片免费高清观看

產品分類

當前位置: 首頁 > 行業(yè)動態(tài)

采用FPGA實現(xiàn)視頻應用中的OSD設計

發(fā)布日期:2022-07-14 點擊率:49

ay: block;">近年來,數字視頻監(jiān)控系統(tǒng)在銀行、高速公路、樓宇等各個領域取得了廣泛的應用。在數字視頻監(jiān)控系統(tǒng)中,OSD(On Screen Display)技術是不可或缺的部分。OSD為用戶提供友好的人機界面,能夠使用戶獲得更多的附加信息。

系統(tǒng)構成

本文介紹的系統(tǒng)是基于TI DSP TMS320DM643與FPGA的完整視頻監(jiān)控系統(tǒng),支持1路視頻的輸入和1路視頻輸出,此外還提供網絡接口。

視頻輸入采用TI的高性價比視頻解碼器TVP5150A來實現(xiàn),TVP5150A可實現(xiàn)兩路復合視頻輸入或一路S-video視頻信號的采集。通過I2C進行寄存器配置,輸出數字視頻信號遵循ITU656標準。

TVP5150A解碼后的數字視頻信號通過DM643的視頻端口1傳送給DSP,由DSP進行必要的視頻處理,由網絡接口輸出給遠端設備。另一方面,DM643把從網絡接收的視頻數據處理后,通過視頻端口2,經過FPGA,由SAA7105顯示輸出,具體結構如圖1所示。

輸出部分采用SAA7105實現(xiàn)。SAA7105是NXP公司的一款高性能視頻編碼器,可提供復合視頻輸出、VGA視頻輸出以及HDTV高清視頻信號的輸出。SAA7105的控制也通過I2C實現(xiàn),接收復合ITU656標準的數字視頻信號。

視頻處理部分采用的是TI的DSP TMS320DM643來實現(xiàn)。DM643主頻可達600MHz,有2個20位的視頻端口,視頻端口支持、Y/C等數字視頻接口,DM643還集成了網絡MAC,可實現(xiàn)網絡接入。

硬件性能的發(fā)展速度總是很難滿足軟件的需求。在視頻處理越來越復雜的應用中,DSP承擔著繁雜的視頻處理任務,資源變得非常緊張,所以在本系統(tǒng)設計中,采用了FPGA實現(xiàn)OSD的設計,可以減輕DSP的負擔。

OSD實現(xiàn)部分選用的是賽靈思公司的XC3S250E。XC3S250E是賽靈思SPARTAN-3E系列的FPGA,有25萬個邏輯門。


圖1:基于TMS320DM643與FPGA的完整視頻監(jiān)控系統(tǒng)架構示意圖。

OSD實現(xiàn)

SAA7105無法實現(xiàn)OSD功能,而由XC3S250E來實現(xiàn)。主控芯片DM643只需要通知FPGA要顯示的內容和位置,具體的工作由FPGA執(zhí)行。OSD的邏輯框圖如圖2所示。


圖2:OSD功能框圖。

OSD FPGA通過EMIFA從DSP DM643接收OSD數據和控制指令,通過DSP的視頻端口1接收視頻數據,并將OSD的信息疊加到視頻數據上,輸出給視頻編碼器SAA7105。OSD的各功能模塊描述如下。

地址譯碼模塊的數據端口與DSP DM643的EMIFA低32位數據接口,接收DM643發(fā)出的數據與控制信息,這些數據和控制信息是DM643發(fā)出的原始32位數據。地址譯碼模塊將接收到的OSD數據,如OSD的內容等,以32位數據格式放入到FPGA的內部FIFO中。而控制信息主要是通過一組控制寄存器對OSD實現(xiàn)控制。

與DSP直接連接的模塊還有視頻接口模塊。視頻接口模塊與DSP的視頻端口2相連,存儲來自DSP視頻端口的數據與控制信息。這些控制信息被直接傳輸給OSD多路控制模塊,同時控制信息也直接控制視頻解碼器SAA7105。

OSD控制邏輯把從控制寄存器組得到的控制信息輸出到OSD的各個功能模塊,實現(xiàn)對OSD的控制。寄存器組主要分為兩個部分:一是異步寄存器組,向OSD發(fā)送如復位、OSD使能和選擇數據寬度的控制信息;另一個是同步寄存器組,主要控制OSD的位置信息。

OSD解碼模塊根據控制邏輯的控制信息,從FIFO中取出要顯示的數據,以與視頻數據同步的方式輸出到OSD CLUT模塊。從FIFO中獲得的數據是原始的DSP 32位數據,而OSD CLUT模塊需要的數據是8/16位的,所以OSD解包模塊需要以一定的規(guī)則將32位數據解包,以視頻端口的頻率將32位數據以8/16的寬度傳輸給OSD CLUT模塊。

FIFO模塊的另外一個功能是向DMA事件發(fā)生器模塊傳遞FIFO的狀態(tài)信息,如FIFO滿或FIFO空。DMA事件發(fā)生器監(jiān)控這些事件,如果發(fā)生,則以中斷的模式發(fā)送給DM643,以實現(xiàn)對FIFO的正確讀寫操作。

OSD CLUT模塊為從OSD解包模塊接收的每個象素的數據查找YCbCr的對應值,并控制這些OSD CLUT數據的輸出順序。這種轉換關系是由DSP通過24位的數據端口傳送過來的。OSD CLUT模塊的數據直接輸出給OSD多路控制器模塊

OSD多路控制模塊根據從OSD CLUT模塊接收到的Alpha控制位確定輸出視頻數據,如果當前為OSD信息,即Alpha控制位有效,則輸出OSD數據給數據轉換模塊。否則,輸出從視頻接口模塊接收的原始視頻數據,以此來實現(xiàn)OSD功能。

OSD多路控制器輸出的數據并沒有直接送給視頻解碼器,而是通過數據轉換模塊,根據具體的應用條件,進行必要的數據格式轉換。由SAA7105的接口時序可知,當SAA7105配置為復合視頻輸出時,其要求的數據為單時鐘沿數據,此時數據轉換模塊不作任何工作,將從OSD多路控制模塊接收的數據原封不動地傳輸給SAA7105;如果SAA7105配置為VGA或HDTV輸出模式時,需要雙時鐘沿數據,此時數據轉換模塊將從OSD控制器接收到的單時鐘沿數據轉換成雙時鐘沿數據,輸出給視頻解碼器SAA7105。

由此可見,FPGA完成了OSD的所有工作。如果要顯示OSD內容,DM643只需要通過EMFIA口向FPGA發(fā)送控制指令即可,這些指令當然包括OSD的內容及位置信息。

OSD控制

由XC3S250E實現(xiàn)的OSD設計根據接收到的OSD位置及內容信息進行OSD顯示,對OSD顯示的內容沒有任何限制,非常靈活方便。下面以OSD漢字顯示為例說明OSD的控制操作。

要正確的顯示漢字,就必須將輸入的漢字內碼轉換成對應的區(qū)位碼。這一功能我們通過函數Uint32 Code_Converse(unsigned char *CodeNPointer),其輸入為指針,指向要轉換漢字。返回值為該漢字對應的區(qū)位碼。OSD的顯示由函數OSDHZ_Display實現(xiàn):

void OSDHZ_ Display

{

Uint8 *pFrame

Uint32 pitch

OSDUTIL_Point* loc

Uint32 CodeQ

OSDHZ_Font *font

Uint8 fgColor

Uint8 bgColor

}

其中,Uint8 *pFrame為OSD輸出的Buffer緩沖區(qū);Uint32 pitch為每行顯示的象素值;OSDUTIL_Point *loc為第一個字符的顯示位置;Uint32 CodeQ為要顯示漢字的區(qū)位碼;OSDHZ_Font *font為顯示漢字所用的字體;Uint8 fgColor顯示漢字的前景色;Uint8 bgColor顯示漢字的背景色。

所以,如果需要顯示漢字,只需要將漢字進行必要的碼制轉換,然后將轉換后的區(qū)位碼,給出顯示的位置,輸出給OSD FPGA即可。當然要顯示漢字,漢字字庫是必不可少的。

作者:

李洪帥

設計工程師

北京合眾達電子技術有限責任公司

下一篇: 選擇性焊接創(chuàng)新者A.C.

上一篇: TSC產品在某汽車生產

主站蜘蛛池模板: 伊人久久成人 | 久久久久国产成人精品亚洲午夜 | 久久天天操 | 精品国产一区二区三区无码 | 播放灌醉水嫩大学生国内精品 | 在线视频第一页 | 国产a久久精品一区二区三区 | 免费看国产曰批40分钟 | 99热在线精品免费播放6 | 久久成人国产精品免费软件 | 99精品国产成人a∨免费看 | 亚在线观看免费视频入口 | 免费观看成人欧美www色 | 四虎 在线播放 | 日本一级毛一级毛片短视频 | 七次郎华人最新线路 | 日韩高清特级特黄毛片 | 国产乱子伦精品免费无码专区 | 国产免费久久精品国产传媒 | 国产精品美女网站在线观看 | 中文字幕精品一二三四五六七八 | 久久无码人妻丰满熟妇区毛片 | 国产高清大尺度一区二区不卡 | 国产成人女人在线视频观看 | 中文字幕在线播放视频 | 我要看免费一级毛片 | 一二三四在线视频观看社区 | 国产suv精品一区二区 | 欧美专区在线播放 | 亚洲精品美女在线观看 | 久久国产影院 | 99婷婷久久精品国产一区二区 | h人成在线看免费视频 | 免费播放美女一级毛片 | 女性一级全黄生活片免费看 | 国产精品久久久久久久久软件 | 国产欧美日韩网站 | 亚洲人成网站在线观看播放动漫 | 国产成人av免费观看 | 国产精品线在线精品 | 国产日韩精品一区二区 |