嵌入式MPEG-4解碼系統的設計與實(shí)現
介紹了一種嵌入式高圖像質(zhì)量的MPEC-4視頻流解碼系統。該系統以嵌入式Linux作為操作系統,采用硬解碼方式,把IDE接口設備或網(wǎng)絡(luò )端口輸入的MPEC-4視頻碼流(ES、PS和TS)轉換成PAL/NTSC制式的電視信號輸出。重點(diǎn)討論了系統控制和MPEG-4解碼部分的設計。
本文引用地址:http://dyxdggzs.com/article/264095.htm隨著(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)輸出模擬的電視信號。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)linux相關(guān)文章:linux教程
評論