基于DM642的嵌入式網(wǎng)絡(luò)視頻服務(wù)器的設(shè)計(jì)
(10) 視頻編碼器端口 。本系統(tǒng)設(shè)計(jì)視頻端口2被用來(lái)驅(qū)動(dòng)視頻編碼器。它通過(guò)FPGA U8發(fā)送,以實(shí)現(xiàn)高級(jí)功能,例如OSD。但它在默認(rèn)方式下是直接通過(guò)視頻,連接到SAA7105視頻編碼器。這個(gè)編碼器可以進(jìn)行RGB、HD合成視頻,NTSC/PAL復(fù)合視頻的編碼,也可對(duì)依靠SAA7105內(nèi)部寄存器進(jìn)行編程的S-Video進(jìn)行編碼。SAA7105的內(nèi)部編程寄存器通過(guò) DM642的I2C總線進(jìn)行配置。 編碼器連接到合成的或RGB顯示單元。通過(guò)標(biāo)準(zhǔn)的RCA插座J2、J3和J4提供RGB圖像。J3的綠色輸出也可以被用于接口到合成顯示單元。4針的低噪聲S-VideoJ1也可用。15針的高密度DB接口允許系統(tǒng)驅(qū)動(dòng)VGA種類的監(jiān)視器。本系統(tǒng)設(shè)計(jì)高清晰TV輸出,但要求更換一些支持HDTV的特殊過(guò)濾器。
(11)FPGA視頻功能 。本系統(tǒng)設(shè)計(jì)使用Xilinx XC2S300E系列FPGA來(lái)實(shí)現(xiàn)增強(qiáng)視頻功能和其他的一些連帶功能。默認(rèn)模式下,F(xiàn)PGA通過(guò)DM642的視頻端口2輸出視頻到Phillips SAA7105視頻編碼器。對(duì)于HDTV,F(xiàn)PGA提供增強(qiáng)的時(shí)鐘;對(duì)于OSD功能,F(xiàn)PGA提供了FIFOs,將視頻端口2的數(shù)據(jù)與FIFOs端口的數(shù)據(jù)進(jìn)行混合。FPGA的FIFOs在通過(guò)CE3空間的同步模式下,通過(guò)DM642的EMIF進(jìn)行存取。
(12)以太網(wǎng)端口。在獨(dú)立的模式下,DM642的以太網(wǎng)MAC被自動(dòng)選擇,并通過(guò)CBT發(fā)送給PHY。本系統(tǒng)設(shè)計(jì)使用的是Intel LXT971 PHY。10/100Mbit的端口被隔離,輸出至RJ-45標(biāo)準(zhǔn)的以太網(wǎng)接口,J8。PHY直接連接到DM642。在制作過(guò)程中,以太網(wǎng)的地址存儲(chǔ)在 I2C的連續(xù)ROM中。 RJ-45接口具有2個(gè)指示燈,使它成為一個(gè)完整的端口。2個(gè)指示燈分別是綠燈和黃燈,用來(lái)指示以太網(wǎng)的連接狀態(tài)。綠燈亮,指示已連接,綠燈一閃一閃,指示連接正在活動(dòng);黃燈亮,指示滿雙方模式。
二.系統(tǒng)的軟件設(shè)計(jì)。
1.數(shù)據(jù)流程。(1)輸入設(shè)備提供的一幀圖象被采集到輸入緩存,由YUV 4:2:2 格式進(jìn)行重抽樣變?yōu)閅UV 4:2:0 格式。
(2)圖象數(shù)據(jù)由輸入任務(wù)模塊通過(guò)一個(gè)SCOM序列提供給處理模塊。
(3)提供圖象數(shù)據(jù)給JPEG 編碼庫(kù)程序,動(dòng)態(tài)檢測(cè)即與以前圖象作比較,動(dòng)態(tài)部分被壓縮成JPEG 圖象并通過(guò)SCOM 消息發(fā)送到網(wǎng)絡(luò)任務(wù)模塊。
(4)網(wǎng)絡(luò)任務(wù)模塊建立JPEG 副本,當(dāng)網(wǎng)上有一個(gè)對(duì)等端點(diǎn)連接到網(wǎng)絡(luò)并申請(qǐng)“記錄”,網(wǎng)絡(luò)任務(wù)模塊發(fā)送這些圖象到對(duì)等端點(diǎn)。
(5)如果網(wǎng)上有一個(gè)對(duì)等端點(diǎn)請(qǐng)求“回放”連接,網(wǎng)絡(luò)任務(wù)模塊將從那個(gè)對(duì)等端點(diǎn)接收新的JPEG 圖象,并發(fā)送原始和更新的圖象到處理任務(wù)模塊,消息通過(guò)SCOM 序列發(fā)送。解碼產(chǎn)生的YUV 4:2:0 格式的圖象被重新采樣成YUV 4:2:2 格式的圖象。
(6)JPEG 圖象被作為解碼器的輸入,解碼的圖象通過(guò)SCOM 序列進(jìn)行傳輸?shù)捷敵鋈蝿?wù)模塊。
(7)輸出任務(wù)模塊轉(zhuǎn)換YUV 4:2:0 格式的解碼圖象成YUV 4:2:2 格式圖象并送交顯示。顯示設(shè)備顯示輸出的圖象。
2.數(shù)據(jù)流圖。
3.程序流程。
(1)實(shí)驗(yàn)程序采用RF-5來(lái)整合JPEG 的編碼、解碼庫(kù)。程序使用了6 個(gè)任務(wù)模塊結(jié)構(gòu)。其中4 個(gè)任務(wù)上圖中已描述。第5 個(gè)任務(wù)是一個(gè)控制任務(wù),它使用一個(gè)郵箱發(fā)送消息給處理任務(wù)模塊。處理任務(wù)模塊從郵箱接收消息,并根據(jù)消息中指定的圖象質(zhì)量調(diào)節(jié)圖象幀率。第6 個(gè)任務(wù)模塊是網(wǎng)絡(luò)初始化模塊,它由CDB 文件定義處理網(wǎng)絡(luò)環(huán)境的初始化。當(dāng)網(wǎng)絡(luò)準(zhǔn)備好后,上圖中的網(wǎng)絡(luò)任務(wù)模塊就被建立。在進(jìn)入DSP/BIOS 的調(diào)度程序之前,程序初始化了多個(gè)要使用的模塊。包括:
①處理器和系統(tǒng)板的初始化:初始化BIOS 環(huán)境和CSL,設(shè)置使用128K 的二級(jí)高速緩存,設(shè)置二級(jí)高速緩存可映射到EMIF 的CE0 和CE1 空間,設(shè)置DMA 優(yōu)先級(jí)序列長(zhǎng)度取最大值,設(shè)置二級(jí)高速緩存的請(qǐng)求優(yōu)先級(jí)最高,DMA 管理器用內(nèi)部的和擴(kuò)展堆初始化。
②RF-5 模塊的初始化:系統(tǒng)初始化RF-5 的通道模塊,系統(tǒng)初始化RF-5 框架中用于內(nèi)部單元通訊和傳遞消息的ICC 和SCOM 模塊,各通道建立在內(nèi)部的和擴(kuò)展的堆上。
③建立攝入和顯示通道:建立和啟動(dòng)一個(gè)攝入通道的實(shí)例。
(2)在完成初始化工作之后,系統(tǒng)進(jìn)入DSP/BIOS 調(diào)度程序管理下的6 個(gè)任務(wù)系統(tǒng)。6 個(gè)任務(wù)通過(guò)RF-5 的SCOM 模塊互相發(fā)送消息。以下是這6 個(gè)任務(wù):(A)輸入任務(wù)。輸入任務(wù)從輸入設(shè)備驅(qū)動(dòng)程序獲得視頻圖象。它使用驅(qū)動(dòng)程序提供的FVID_exchange調(diào)用從輸入設(shè)備獲得一幀最新視頻圖象。獲得的圖象是YUV 4:2:2 格式的,它被重采樣成YUV 4:2:0。輸入任務(wù)接著發(fā)送消息到處理任務(wù),消息中包含圖象數(shù)據(jù)指針。接著等待處理任務(wù)發(fā)送來(lái)的消息以繼續(xù)處理。
(B)處理任務(wù)。處理任務(wù)包含兩個(gè)單元。第一個(gè)單元是一個(gè)JPEG 編碼單元,它接受YUV 4:2:0 格式的圖象,產(chǎn)生用戶定制壓縮質(zhì)量的JPEG 圖象。第二個(gè)單元是一個(gè)JPEG 解碼單元,它接收J(rèn)PEG 壓縮圖象并生成解壓縮圖象。解碼的圖象格式是YUV 4:2:0 的。首先,如果激活標(biāo)注,則處理任務(wù)模塊在輸入的圖象上加注時(shí)間碼。然后圖象被傳輸給編碼算法單元。當(dāng)JPEG 圖象生成后,原始圖象將進(jìn)行動(dòng)態(tài)檢測(cè),方法是在固定網(wǎng)格點(diǎn)上進(jìn)行象素比較。JPEG 圖象同動(dòng)態(tài)檢測(cè)結(jié)果都傳輸給網(wǎng)絡(luò)任務(wù)模塊供后續(xù)處理。當(dāng)網(wǎng)絡(luò)任務(wù)模塊完成處理后,它將返回一個(gè)JPEG 圖象給處理任務(wù)模塊供解碼顯示。此圖可以是剛才傳輸給網(wǎng)絡(luò)任務(wù)模塊的圖象或是剛從網(wǎng)絡(luò)上得到的圖象。解碼完成后,如果設(shè)置標(biāo)注網(wǎng)格,處理任務(wù)模塊在圖象上標(biāo)注網(wǎng)格。通過(guò)發(fā)送一個(gè)SCOM 消息,輸出的圖象接著發(fā)送給輸出任務(wù)。
(C)輸出任務(wù)。輸出任務(wù)將圖象顯示在顯示設(shè)備上。它使用輸出驅(qū)動(dòng)程序提供的FVID_exchange 調(diào)用實(shí)現(xiàn)圖象的顯示。它得到的圖象的格式是YUV 4:2:0 的,需要重新采樣成YUV 4:2:2 格式。然后等待處理任務(wù)發(fā)來(lái)的消息以繼續(xù)運(yùn)行。
(D)控制任務(wù)??刂迫蝿?wù)管理可選參數(shù),可以控制JPEG 圖象幀率和壓縮質(zhì)量??刂迫蝿?wù)檢測(cè)參數(shù)的改變,這些參數(shù)定義在一個(gè)全局結(jié)構(gòu)“External Control”,同時(shí)將更新的參數(shù)復(fù)制到任務(wù)自定義的結(jié)構(gòu)“External Control_prev”中,并向處理任務(wù)模塊的郵箱中發(fā)送消息。處理任務(wù)模塊定時(shí)檢測(cè)這些消息并調(diào)用相應(yīng)單元的控制函數(shù)。
評(píng)論