嵌入式MPEG-4解碼系統的設計與實(shí)現

發(fā)布時(shí)間:2010-11-17 12:18    發(fā)布者:designer
關(guān)鍵詞: MPEG , 解碼 , 嵌入式
介紹了一種嵌入式高圖像質(zhì)量的MPEC-4視頻流解碼系統。該系統以嵌入式Linux作為操作系統,采用硬解碼方式,把IDE接口設備或網(wǎng)絡(luò )端口輸入的MPEC-4視頻碼流(ES、PS和TS)轉換成PAL/NTSC制式的電視信號輸出。重點(diǎn)討論了系統控制和MPEG-4解碼部分的設計。
 
隨著(zhù)通信和網(wǎng)絡(luò )技術(shù)的飛速發(fā)展,多媒體及其視頻流應用越來(lái)越廣泛,同時(shí)用戶(hù)也對視頻傳輸速率和圖像質(zhì)量有更高的要求,MPEG-4標準適時(shí)地解決了多媒體壓縮存儲和傳輸的問(wèn)題。但是目前多數播放器都是在PC機上運行,應用范圍受到很大限制。研究和開(kāi)發(fā)一種嵌入式的MPEG-4解碼系統終端具有重要的現實(shí)意義和實(shí)用價(jià)值。

MPEG-4標準是由國際運動(dòng)圖像專(zhuān)家組于2000年10月公布的一種面向多媒體應用的視頻壓縮標準。它采用了基于對象的壓縮編碼技術(shù),在編碼前首先對視頻序列進(jìn)行分析,從原始圖像中分割出各個(gè)視頻對象,然后再分別對每個(gè)視頻對象的形狀信息、運動(dòng)信息、紋理信息單獨編碼,并通過(guò)比MPEG-2更優(yōu)的運動(dòng)預測和運動(dòng)補償來(lái)去除連續幀之間的時(shí)間冗余。其核心是基于內容的尺度可變性(Content-based scalability),可以對圖像中各個(gè)對象分配優(yōu)先級,對比較重要的對象用高的空間和時(shí)間分辯率表示,對不甚重要的對象(如監控系統的背景)以較低的分辯率表示,甚至不顯示。因此它具有自適應調配資源能力,可以實(shí)現高質(zhì)量低速率的圖像通信和視頻傳輸。

MPEG-4以其高質(zhì)量、低傳輸速率等優(yōu)點(diǎn)已經(jīng)被廣泛應用到網(wǎng)絡(luò )多媒體、視頻會(huì )議和多媒體監控等圖像傳輸系統中。目前國內外大部分成熟的MPEG-4應用均為基于PC層面的客戶(hù)端和服務(wù)器模式,應用在嵌入式系統上的并不多,且多數嵌入式MPEG-4解碼系統大多使用商業(yè)的嵌入式操作系統,如Windows CE、VxWorks等,成本高、靈活性差。如以嵌入式Linux作為操作系統不僅開(kāi)發(fā)方便,且可以節約成本,并可以根據實(shí)際情況進(jìn)行裁減,占用資源少、靈活性強,網(wǎng)絡(luò )性能好,適用范圍更廣。

下面詳細地介紹此嵌入式MPEG-4解碼系統的設計原理、硬件和軟件組成。

1 系統設計原理

系統設計包括硬件和軟件。硬件主要分控制系統、MPEG-4解碼系統、輸入數據源三部分。數據源可以是IDE接口設備(如硬盤(pán))或網(wǎng)絡(luò )端口?刂葡到y對系統各部分進(jìn)行監測和控制、完成數據流的傳輸等。如圖1所示,它主要由主控芯片、Flash和SRAM組成。主控芯片通過(guò)PCI總線(xiàn)控制系統其他模塊,是控制系統的核心;Flash里固化嵌入式Linux操作系統,存放應用軟件和備份數據;SDRAM作為內存供系統運行使用。MPEG-4硬件解碼系統采用硬解碼方式,負責將輸入的MPEG-4數據流解碼成普通的電視信號,其核心是解碼芯片。為解決數據流不穩定的問(wèn)題,解碼芯片通常使用SDRAM進(jìn)行數據緩沖才可以保證正常解碼過(guò)程,解碼芯片的輸出數字音頻、視頻數據還要經(jīng)數模轉換器(DAC)轉換成模擬電視圖像信號和聲音信號。解碼芯片通過(guò)I2C總線(xiàn)發(fā)送指令配置音、視頻數模轉換器。整個(gè)系統框圖如圖1所示。







軟件主要包括嵌入式Linux移植、解碼驅動(dòng)和應用程序編寫(xiě)。嵌入式Linux移植到由主控芯片Flash控制器控制的Flash里,操作系統程序文件分成五個(gè)主要部分:bootloader、kernel、ramdisk、usr和boot_param,分別放在Flash內的五個(gè)模塊中。根據不同模塊的具體功能采用不同的文件方式:bootloader、kernel、ramdisk和boot param,開(kāi)發(fā)好后不需要動(dòng)態(tài)改變,且容量小,使用節省空間的ROMFS只讀文件系統,usr模塊內容較多并需要進(jìn)行讀寫(xiě)操作,要使用支持動(dòng)態(tài)擦寫(xiě)保存的JFFS文件系統。

2 系統硬件設計

系統的硬件設計主要分三部分:數據源接口設計、控制系統設計和解碼系統設計。數據流先要從數據源經(jīng)數據源接口送至PCI總線(xiàn),此系統數據源接口為PCI總線(xiàn)上的PCI/IDE橋芯片和網(wǎng)絡(luò )控制芯片。這部分采用通用的電路,本文不做詳細介紹。

2.1 控制系統設計

控制系統調配系統資源、控制系統各個(gè)部分以及數據流的傳輸。主控芯片采用東芝公司的TMPR4925XB-200。它是一款64位MIPS,內部集成了NAND Flash控制器(FlashC)、32位PCI總線(xiàn)控制器(PCIC)、4通道DMA控制器、4通道SDRAM控制器(SDRAMC)、外部總線(xiàn)控制器(EBUSC)、外部總線(xiàn)接口(E-BUSI)以及2個(gè)通用串口等,并通過(guò)內部總線(xiàn)對它們分別進(jìn)行控制。其工作主頻200MHz,處理速度快,功能強,性?xún)r(jià)比高,能很好滿(mǎn)足嵌入式Linux系統的需求。

MIPS通過(guò)內部的FlashC和SDRAMC實(shí)現對外圍Flash和SDRAM的控制,其中SDRAM的數據地址線(xiàn)要與外部總線(xiàn)控制接口(EBUSI)連接,Flash的數據地址線(xiàn)連接到對應的FlashC的數據地址端口。MIPS通過(guò)PCI總線(xiàn)控制器(PCIC)控制其他PCI接口設備,其控制原理圖如圖2所示。







2.2 MPEG-4解碼系統設計

解碼系統實(shí)現MPEG-4硬解碼,將PCI總線(xiàn)傳來(lái)的視頻碼流轉換成電視信號輸出。此部分關(guān)鍵是解碼芯片選擇及相關(guān)電路的設計。解碼芯片采用Vweb公司的VW2010 A/V/S編解碼芯片,它可以實(shí)現MPEG-1、MPEG-2、MPEG-4和H.263的視頻編解碼,可以編恒速碼流或變速碼流,碼流速率為22.5kbps~15Mbps,編解碼能同時(shí)進(jìn)行,可實(shí)現Codec、轉碼功能,還可以進(jìn)行MP3、AAC、AC-3和G7xx等多種格式的音頻編解碼。

VW2010有PCI、GPIO、I2S和CDI等多種數據接口,解碼輸入端口有兩個(gè):Host/PCI port和CDI(CompressData Input)port CDI port還分串行和八位并行兩種輸入方式。解碼原理圖如圖3所示。




MPEG-4視頻數據流送至VW2010后,由它內部的PCI接口(Host/PCI Interface)傳送到芯片內部的解復用模塊(Demux);解復用輸出單節目視頻流再經(jīng)過(guò)內部解碼總線(xiàn)和解碼存儲接口單元(DMIU)存儲在解碼緩沖區SDRAM中(SDRAM經(jīng)DMIU連接到內部解碼總線(xiàn)上);再由片內精簡(jiǎn)指令集計算單元(RISC)、數字信號處理器(DSP)和VLD、IQ/IDCT、MCU、dCPU等專(zhuān)用微處理單元通過(guò)內部總線(xiàn)解碼;解碼后視頻、音頻數據分別由視頻輸出單元(VOU)、音頻輸出單元(AOU)輸出,視頻單元輸出8位數字Y、C-R、C-B三者比為4∶2∶2的ITU-R.BT.656格式的數據。音頻輸出單元通過(guò)I2S總線(xiàn)輸出數字音頻信號,兩者經(jīng)過(guò)各自的數模轉換器(DAC)輸出模擬的電視信號。

音頻數模轉換芯片選用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)合需要。

3 系統軟件設計

本系統軟件設計主要分為嵌入式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)程的級別要設為最高。主程序主要進(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標準的數字電視廣播系統中,應用前景十分廣闊。
本文地址:http://selenalain.com/thread-39986-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页