基于SAA6752的MPEG-2編碼系統(tǒng)
數(shù)字電視在世界范圍內(nèi)得到了非常迅速的發(fā)展,電視廣播的全部流程,即從節(jié)目的拍攝、制作、傳輸?shù)讲コ龅日谥鸩綄崿F(xiàn)數(shù)字化。MPEG視頻/音頻壓縮標(biāo)準(zhǔn)的出現(xiàn),解決了電視信號數(shù)字化后信息量過大而信道帶寬有限的問題;數(shù)字視頻硬件產(chǎn)品的不斷進(jìn)步,促進(jìn)了各種數(shù)字視頻產(chǎn)品的推出,給觀眾帶來了高品質(zhì)的畫面和音響效果。這一切,都預(yù)示著電視廣播全面步入了數(shù)字化的時代。
本文引用地址:http://butianyuan.cn/article/165408.htm目前世界上的數(shù)字電視系統(tǒng)標(biāo)準(zhǔn)有歐洲的DVB系統(tǒng)、美國的ATSC系統(tǒng)和日本的ISDB系統(tǒng)。這幾種系統(tǒng)在視頻壓縮上都采用MPEG-2標(biāo)準(zhǔn)[2],我國也正在積極地制定自己的數(shù)字電視標(biāo)準(zhǔn)。本文將介紹PHILIPS公司生產(chǎn)的芯片SAA6752,它能在開發(fā)歐洲D(zhuǎn)VB標(biāo)準(zhǔn)常規(guī)數(shù)字電視和DVD的前端系統(tǒng)的產(chǎn)品過程中,實現(xiàn)MPEG-2編碼。
1 SAA6752的主要特點
SAA6752又稱為EMPRESS, 是PHILIPS公司第二代實時MPEG-2編碼芯片。它將音頻、視頻編碼和復(fù)用集成在一個芯片中,具有很強的功能,外部只需加入簡單的相關(guān)芯片就能實現(xiàn)整個編碼系統(tǒng),從而降低系統(tǒng)成本。同時,所有的視頻、音頻壓縮算法都運行在EMPRESS的內(nèi)部MIPS處理器上,編碼軟件都已固化在芯片中,無需額外的軟件開發(fā),系統(tǒng)主控芯片通過I2C總線就可以設(shè)定必要的編碼參數(shù)。此外,由于它較好地解決了視頻編碼中的主要問題——噪音過濾和運動預(yù)測,所以可以在低碼率情況下實現(xiàn)高品質(zhì)視頻編碼,從而達(dá)到在存儲介質(zhì)上可以存儲更多視頻和音頻信息的目的。
該芯片主要提供以下功能[1]:
(1)視頻壓縮
•實時MPEG-2編碼 (符合MP@ML)
•支持分辨率: D1、2/3D1、1/2D1和SIF
•在所有模式下支持IPB、IP和I幀編碼
•支持的碼率: 1.5~25Mbps(對于只有I幀編碼)
1.5~15Mbps(對于只有IP幀編碼)
1.5~15Mbps(對于只有IPB幀編碼)
•支持CBR(Constant Bit Rate)和VBR(Variable Bit Rate)
•具有可編程的GOP(Group of Picture)結(jié)構(gòu)
(2)音頻壓縮
•AC-3音頻編碼:碼率為256kbps或384kbps
•MPEG-1 Layer 2音頻編碼(16或20位):碼率為256kbps或384kbps
(3)系統(tǒng)復(fù)用
•符合MPEG系統(tǒng)標(biāo)準(zhǔn)(ISO 13818-1)的視頻和音頻流的復(fù)用
•產(chǎn)生和輸出符合DVD、D-VHS和DVB標(biāo)準(zhǔn)的MPEG-2傳輸流(TS)、 MPEG-2節(jié)目流(PS)、打包的基本流(PES)和基本流(ES)
•產(chǎn)生和插入MPEG時間標(biāo)記(PTS/DTS/SCR/PCR)
2 基于SAA6752的MPEG-2編碼系統(tǒng)
2.1 系統(tǒng)框圖
因為SAA6752沒有片內(nèi)CPU,為了實現(xiàn)編碼功能,所以必須由一個片外CPU對其進(jìn)行控制。而對SAA6752的所有控制(例如碼率控制、PS流和TS流輸出等)均是通過I2C總線[3]完成的,因而非常簡單。圖1給出了基于SAA6752的MPEG-2編碼系統(tǒng)的方框圖。
該編碼系統(tǒng)主要分為視頻輸入部分、音頻輸入/輸出部分、EMPRESS部分、復(fù)位部分、輸出接口、電源部分以及I2C和UART接口。
2.1.1 視頻輸入部分
視頻輸入部分提供兩路模擬輸入接口,一路為CVBS信號,另一路為YC信號。該部分可以由PHILIPS SAA7114完成,對其所有的控制均通過I2C總線完成。
2.1.2 音頻輸入/輸出部分
由于EMPRESS 提供了音頻I2S接口,該部分主要完成模擬音頻轉(zhuǎn)換為數(shù)字音頻I2S信號的功能。
2.1.3 EMPRESS部分
由于SAA6752采用多個處理器模塊,各個處理器和控制模塊之間相互獨立,所以模塊之間的數(shù)據(jù)傳送主要通過FIFO存儲器或外部SDRAM來實現(xiàn)。該系統(tǒng)采用16Mbit或64Mbit SDRAM。EMPRESS SAA6752可以產(chǎn)生打包的基本流,其碼流可以根據(jù)不同的應(yīng)用進(jìn)行設(shè)定,一種是對應(yīng)于DVD格式的PES流,其碼率是可變的;另一種是對應(yīng)于TS的PES流,其碼率是恒定的。
2.1.4 復(fù)位部分
該系統(tǒng)提供兩種復(fù)位方式:一種是硬復(fù)位;另一種是利用I2C控制軟件實現(xiàn)軟復(fù)位。
2.1.5 輸出接口部分
該系統(tǒng)提供兩種TS并行輸出接口:一種是TTL接口;另一種是標(biāo)準(zhǔn)LVDS接口。
2.2 軟件編程
為了控制EMPRESS的編碼,I2C接口線被用來將該系統(tǒng)與計算機相連以實現(xiàn)計算機控制EMPRESS芯片的目的,同時初始化SAA7114。所有的相關(guān)操作均是通過I2C總線訪問寄存器實現(xiàn)的。在I2C控制軟件中,需要確定EMPRESS和SAA7114的I2C讀寫地址。
EMPRESS的I2C讀寫地址:
(1)當(dāng)EMPRESS的I2C選擇信號為低時,其I2C寫地址為40H,讀地址為41H。
(2)當(dāng)EMPRESS的I2C選擇信號為高時,其I2C寫地址為42H,讀地址為43H。
SAA7114的I2C讀寫地址:
(1)當(dāng)SAA7114的I2C選擇信號為低時,其I2C寫地址為40H,讀地址為41H。
(2)當(dāng)SAA7114的I2C選擇信號為高時,其I2C寫地址為42H,讀地址為43H。
為了防止EMPRESS和SAA7114的I2C地址發(fā)生沖突,將EMPRESS的I2C選擇信號設(shè)置為低電平,則EMPRESS的I2C寫地址定義為40H;將SAA7114的I2C選擇信號設(shè)置為高電平,則SAA7114的I2C寫地址定義為42H。
控制軟件應(yīng)實現(xiàn)以下的I2C接口函數(shù):
(1)Void I2C_Read_One_Byte(int address,int subaddress,int value)
該函數(shù)主要實現(xiàn)對給定寄存器一個字節(jié)的讀取,address 確定需要訪問的芯片,subaddress確定需要訪問的寄存器, value為返回寄存器值。
(2)I2C_Write_One_Byte(int address,int subaddress,int value )
該函數(shù)主要實現(xiàn)對給定寄存器一個字節(jié)的寫入,address確定需要訪問的芯片,subaddress確定需要訪問的寄存器,value為要寫入寄存器值。
(3)I2C_Read_Muiti_Bytes(int address,int subaddress, int count, int *buffer)
該函數(shù)主要實現(xiàn)對給定寄存器多個字節(jié)的讀取,address 確定需要訪問的芯片,subaddress確定需要訪問的寄存器,buffer為返回多個寄存器值。
評論