嵌入式MPEG-4解碼系統的設計與實(shí)現
音頻數模轉換芯片選用Philips公司的UDAl342TS音頻編解碼芯片,將I2S總線(xiàn)輸出的解碼后的數字音頻信號轉換成左右聲道音頻模擬信號輸出。視頻數模轉換芯片選用Philips公司的SAA7129AH數字視頻編碼器,解碼前要通過(guò)VW2010的I2C控制函數配置其寄存器。 SAA7129AH將VW2010解碼輸出單元輸出的8位數字Y、C-B、C-R視頻數據變成PAL(NTSC)制式的混合電視廣播信號(CVBS)、適用S端子的Y、C信號或者R、G.、B三原色信號輸出以適應不同場(chǎng)合需要。
本文引用地址:http://dyxdggzs.com/article/264095.htm3 系統軟件設計
本系統軟件設計主要分為嵌入式Linux操作系統內核移植、VW2010、PCI橋芯片及網(wǎng)口等系統驅動(dòng)程序編寫(xiě)和解碼應用程序的編寫(xiě),其體系結構及與硬件的關(guān)系如圖4所示。

嵌入式Linux操作系統是用戶(hù)控制系統的硬件平臺,系統驅動(dòng)程序采用模塊化形式,向上為用戶(hù)層的解碼應用程序提供API函數,向下通過(guò)系統硬件API函數控制系統硬件。VW2010驅動(dòng)模塊采用實(shí)時(shí)加載方式,其他如網(wǎng)口、I2C和PCI/IDE接口等驅動(dòng)通用性強,直接編譯入內核。解碼應用程序則實(shí)現系統MPEG-4數據流的傳輸和解碼。
Linux下的驅動(dòng)開(kāi)發(fā)技術(shù)已經(jīng)發(fā)展成熟,嵌入式Linux內核的定制和移植也很普遍,本文不作詳細的闡述,主要介紹解碼應用程序。
以IDE硬盤(pán)文件解碼為例,解碼程序主要由兩部分組成:主程序和解碼線(xiàn)程程序。解碼線(xiàn)程程序主要控制MPEG-4數據流的傳輸,先從數據源 (IDE接口硬盤(pán))獲取MPEG-4數據流文件,再以塊的方式將數據傳送至W2010進(jìn)行數據流的解碼,然后在檢測外部中斷信號同時(shí)不斷地把文件中的數據以塊的方式寫(xiě)入VW2010,直到文件終止或者外部信號中斷解碼過(guò)程。解碼過(guò)程相對獨立。為便于其后臺用使用線(xiàn)程的方式實(shí)現,線(xiàn)程的級別要設為最高 [5]。主程序主要進(jìn)行系統初始化工作,內容包括讀取解碼參數,配置SAA7129的寄存器,啟動(dòng)并檢查MIPS,開(kāi)啟VW2010并加載配置文件等。
如果數據源是從以太網(wǎng)端口輸入,修改相應的配置選項,把對硬盤(pán)文件的操作換成對IP數據包的操作,把數據包解成MPEG-4數據流文件,再寫(xiě)入VW2010。
VW2010提供了十分齊全的API函數供使用,包括I2C配置、輸入輸出控制、解復用和解碼控制等,在VW2010的驅動(dòng)模塊加載后可以在C++語(yǔ)言里直接調用,極大方便了軟件程序的編寫(xiě)。主程序流程圖如圖5所示。

本文介紹了一種嵌入式MPEG-4視頻流解碼系統,該系統采用硬解碼方式實(shí)現IDE接口設備或網(wǎng)絡(luò )端口輸入的MPEG-4碼流(ES、PS和 TS)轉換成PAL/NTSC制式的電視信號輸出。系統采用64位MIPS芯片TM-PR4925XB-200作為主控制器,以VW2010作為 MPEG-4解碼芯片;采用嵌入式Linux作為操作系統和模塊化的VW2010驅動(dòng)程序,解碼應用程序簡(jiǎn)單實(shí)用,可擴展性強。實(shí)驗證明此系統可穩定地對比特率1Mbps~16Mbps的MPEG-4碼流進(jìn)行解碼,在碼流比特率為2Mbps時(shí),圖像的質(zhì)量仍與普通DVD效果相似??蓮V泛用于IP電視、衛星電視、基于MPEG-4標準的數字電視廣播系統中,應用前景十分廣闊。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)linux相關(guān)文章:linux教程
評論