新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > DVB_C機頂盒中的視頻信號處理

DVB_C機頂盒中的視頻信號處理

作者: 時間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

摘要:機頂盒是交互式電視的關(guān)鍵技術(shù)之一。從MPEG 2解復(fù)用、視頻編解碼、視頻輸出、視頻與音頻的同步等方面介紹了DVB_C STB中的視頻信號處理技術(shù)。

本文引用地址:http://www.butianyuan.cn/article/242290.htm

關(guān)鍵詞:數(shù)字機頂盒 同步 交互式電視(ITV)

隨著信息技術(shù)的高速發(fā)展,通信技術(shù)、計算機技術(shù)、電視技術(shù)已進(jìn)入了相互結(jié)合的新時代。方興未艾的交互式電視(ITV)正是這種結(jié)合的具體體現(xiàn)。所謂交互式電視,是一種受觀眾控制的電視,在節(jié)目間和節(jié)目內(nèi)觀眾能夠作出選擇和決定,是一種非對稱雙工形式的新型電視技術(shù)。數(shù)字機頂盒是其中的關(guān)鍵技術(shù)之一。作為ITV系統(tǒng)中的用戶終端,它是普通電視與寬帶傳輸網(wǎng)絡(luò)之間的橋梁。通過STB,用戶可在普通電視機上收看高清晰度(如MPEG 2標(biāo)準(zhǔn))的圖象;并且足不出戶,就可享受到視頻點播、家庭購物等一系列誘人的服務(wù)。

筆者所設(shè)計的是用于有線電視的機頂盒,主要功能是將數(shù)字電視信號轉(zhuǎn)換成模擬電視信號,使得在模擬電視向數(shù)字電視的過渡期間,模擬電視機能夠接收到數(shù)字電視節(jié)目;并在此基礎(chǔ)上增加了視頻點播、火線接口(IEEE 1394)等功能。機頂盒的內(nèi)部結(jié)構(gòu)主要分為視頻信號處理與音頻信號處理兩大部分。其中,視頻信號處理包括兩部分:(1)視頻信號自身解復(fù)用、解碼和格式轉(zhuǎn)換的處理;(2)視頻信號與音頻信號的同步。

1 系統(tǒng)結(jié)構(gòu)

圖1是筆者所設(shè)計的機頂盒的功能模塊框圖。

系統(tǒng)選用了VLSI公司的開發(fā)平臺:VES2761評估板以及JumpStart ARM 3.3a開發(fā)軟件。

前端部分接收有線電視電纜輸出的信號,進(jìn)行頻率變換、QAM解碼、解交織、解RS碼、解擾等處理后,輸出MPEG 2解復(fù)用前的標(biāo)準(zhǔn)碼流,即傳送碼流。這部分主要由一片VES1820芯片完成。

解復(fù)用和中央處理器(主控CPU)集成在一片芯片VES2700上。MPEG 2傳送碼流被解復(fù)用為系統(tǒng)流、視頻流和音頻流三個部分。VES2700還提供IEEE 1394、IEEE 1284、RS232、Modem、I2C、智能卡和紅外通信等接口。

芯片VES6100需要一片外部的SDRAM(至少2MB),就可以作為一個MPEG 2(MP@ML或者MP@SL)解碼系統(tǒng)工作,并將解碼后的數(shù)據(jù)流分音頻信號和視頻信號輸出。音頻信號再經(jīng)過PCM解碼、放大,可以直接作為揚聲器的輸入信號。經(jīng)機頂盒輸出的信號可以符合各種格式,如:RGB、Svideo、復(fù)合視頻信號等,也可以是各種電視制式:NTSC、PAL、SECAM等。VES6100同時實現(xiàn)OSD(屏幕菜單顯示)功能。

在上行信道,用戶所發(fā)出的信息,例如選擇的電視劇片名信息經(jīng)過調(diào)制——通常是QPSK調(diào)制(QPSK抗干擾能力強)后,發(fā)送到電視臺。

2 解復(fù)用單元

VES2700包括兩個獨立的微處理器:(1)用戶化的RISC微處理器用于解復(fù)用,即傳輸解復(fù)用子系統(tǒng);(2)ARM703_t Host負(fù)責(zé)操作系統(tǒng)和OSD,控制I/O操作等。這兩個處理器并行工作,無資源競爭。ARM703的4K字節(jié)Cache,可以用單指令周期訪問部分代碼。高級的內(nèi)存管理機制保證代碼,如實時操作系統(tǒng),保存在Cache中。

VES2700擁有4條獨立高速總線,以防止瓶頸。4條總線分別為:(1)信道數(shù)據(jù)輸入總線;(2)連接DRAM控制器的總線;(3)ARM703_t Host總線,這條總線與I/O總線及其外設(shè)接口;(4)連接各種外設(shè)的I/O總線。

VES2700提供專用硬件來支持多種軟件功能,例如,CRC校驗、傳輸濾波、IR控制等功能。ARM703_t微處理器提供的庫可實現(xiàn)軟件Modem功能。

傳輸/解復(fù)用子系統(tǒng)采用了用戶化、高性能的RISC處理器,它有自己專用的128B指令SRAM和512B數(shù)據(jù)SRAM,以60Mb/s的速率處理MPEG2傳輸碼流、PES,并解析成MPEG2包,將相應(yīng)的數(shù)據(jù)傳給視頻、音頻、電文、應(yīng)用信息等隊列(位于外部DRAM中),并支持CAS(Conditional Access System)管理、丟失包檢測、PCR恢復(fù)、視頻和音頻的同步等功能。統(tǒng)一的內(nèi)存結(jié)構(gòu)滿足了傳輸/解復(fù)用子系統(tǒng)和ARM703的需要。RISC支持32種不同隊列。內(nèi)存控制器通過隊頭、隊尾指針來管理每個隊列。MPEG 2解碼器(VES6100)從這些隊列中讀取數(shù)據(jù)。

視頻隊列操作模型:為了將視頻數(shù)據(jù)寫入視頻隊列,RISC將“0”隊列號及有效數(shù)據(jù)寫入DRAM 緩存。當(dāng)有相同隊列號時,內(nèi)存控制器將:(1)區(qū)分相關(guān)隊列頭指針;(2)將數(shù)據(jù)寫入頭指針?biāo)傅模模遥粒臀恢?;(3)更新頭指針。

在系統(tǒng)初始化時,ARM703-t從外部存儲器(Flash Memory)下載微碼到片內(nèi)雙口SRAM。RISC以40.5MHz的時鐘速率執(zhí)行SRAM中的微碼。傳輸/解復(fù)用單元可同時處理32 PIds(Packet PIDs),支持運輸包及其凈負(fù)荷數(shù)據(jù)、PES包及其凈負(fù)荷數(shù)據(jù),輸出程序流小包。

傳輸/解復(fù)用處理器和ARM703-t共享2個存儲器,用于存儲代碼和數(shù)據(jù)表。RISC指令RAM(I-RAM)占用起始的1.25KB地址空間,ARM703對I-RAM可讀寫而傳輸/解復(fù)用處理器 RISC對I-RAM只可讀不可寫。RISC數(shù)據(jù)RAM(D-RAM)占512B。D-RAM是雙口訪問存儲器,可被RISC和ARM703讀寫。這2個RAM映射到ARM703和RISC的地址空間。

代碼和數(shù)據(jù)按下列步驟下載:

(1)啟動后,通過設(shè)置RISC控制寄存器停止位暫停運行傳輸/解復(fù)用處理器,代碼寫入RISC SRAM,恢復(fù)停止位;(2)如果RISC在運行,先停止打包器,再停止RISC(設(shè)置停止位),然后將新代碼寫入RISC SRAM。

3 MPEG A/V解碼器接口

VES6100需要外部SDRAM才能工作,最多支持32Mbit SDRAM,其大小決定于分辨率和操作模式的需要,同時支持復(fù)合視頻、S端子、立體聲、模擬和數(shù)字IEC958音頻輸出。VES2700的A/V操作模式中,視頻和音頻可以選擇為串行或并行。

系統(tǒng)中采用了串行視頻串行音頻模式,因為此時與外設(shè)接口最為方便,而OSD的帶寬最大。根據(jù)所選擇的模式,在本設(shè)計中,A/V操作模式寄存器設(shè)置如下:

0x1C=0x1800

0x50=0x0040

0x70=0x0042

VES2700與VES6100的連接如圖2所示。

4 VES6100對視頻信號的處理

VES6100芯片是一種MPEG2解碼器,其內(nèi)部結(jié)構(gòu)框圖如圖3所示。

該芯片包括3個子系統(tǒng):

·MPEG1/2音/視頻解碼器;

·OSD子系統(tǒng);

·NTSC/PAL/SECAM 編碼器。

其中與視頻信號密切相關(guān)的模塊如下:

視/音頻流處理器VASP

VASP解碼視頻和音頻數(shù)據(jù)。在視頻模式,VASP按照MPEG1/2語法,從視頻流中有層次地解出定長碼和變長碼,然后將這些碼翻譯成指令和數(shù)據(jù)(8×8bit DCT數(shù)據(jù)塊),傳送給MSP。VASP也執(zhí)行錯誤檢測和掩蔽以及解碼系數(shù)的反量化。

MPEG信號處理器MSP

作為VASP的從屬單元,MSP接收反量化系數(shù)及VASP的一系列指令,執(zhí)行與MPEG1/2解碼相關(guān)的所有任務(wù),包括:

·IDCT(反DCT變換);

·二維半象素濾波計算;

·塊重建算法和運動補償。

MSP的輸出是4:2:0格式的象素數(shù)據(jù),存儲在外部SDRAM中,供顯示之用。

視頻圖象處理器VGP

VGP對已完成解碼的視頻數(shù)據(jù)進(jìn)行處理,例如4:2:0視頻格式轉(zhuǎn)換成4:2:2視頻格式。它還執(zhí)行圖象重疊、OSD等功能。

VES6100作為微處理器(VES2700)的一個從設(shè)備工作。上電后,VES2700初始化VES6100和可編程寄存器,傳輸壓縮視/音頻數(shù)據(jù)到串口或8位寬并口。然后,VES6100在解碼模式下獨立地處理壓縮視頻流。微處理器控制設(shè)置寄存器以及響應(yīng)中斷,可通過讀取狀態(tài)寄存器獲?。郑牛樱叮保埃暗倪\行狀態(tài)。

4.1 視頻輸入

MCB(內(nèi)存控制器與微控制器接口)將壓縮視頻流從片內(nèi)CDIF(Compressed Data Input FIFO)傳送到VCDB(Compressed Data Buffer,位于SDRAM中)。當(dāng)VCDB到達(dá)上限標(biāo)志時,MCB發(fā)生上限標(biāo)志中斷,微處理器停止數(shù)據(jù)傳輸。MCB將壓縮視頻數(shù)據(jù)傳給VASP。當(dāng)VASP處理壓縮數(shù)據(jù)時,MCB從VCDB中讀入數(shù)據(jù)并將它寫入CDOF(壓縮數(shù)據(jù)輸出隊列)。如果VCDB低于下限標(biāo)志,微控制器恢復(fù)傳輸數(shù)據(jù)。當(dāng)VCDB到達(dá)下限標(biāo)志時,MCB產(chǎn)生下限標(biāo)志中斷。

4.2 PES解析過程

在視頻解碼器提取頭部信息之前,包括PTS(顯示時間標(biāo)簽)、SCR(系統(tǒng)參考時鐘)、壓縮視頻數(shù)據(jù)流,PES層數(shù)據(jù)解析模塊已經(jīng)完成定位。這個塊由微處理器的解碼控制寄存器控制。如果PES層解碼模式無效,壓縮數(shù)據(jù)直接存放到SDRAM。

4.3 起始碼搜索

待匹配的塊起始碼位于VASP的前端,對壓縮數(shù)據(jù)流一字節(jié)一字節(jié)地處理。當(dāng)微處理器要求起始碼匹配時,起始碼匹配邏輯開始搜索起始碼,直到匹配成功。典型的起始碼包括序列起始碼、組起始碼和圖象起始碼。起始碼搜索分為兩種:塊搜索與非塊搜索。在非塊搜索中,即使找到了起始碼,視頻解碼器仍然繼續(xù)解碼;在塊搜索中,一旦發(fā)現(xiàn)起始碼便停止解碼過程。當(dāng)需要快速解碼,例如信道切換模式或靜止圖象捕捉模式時,采用序列起始碼搜索方式。

4.4 視頻解碼

VASP和MSP執(zhí)行MPEG1/2解碼操作,包括VLC解碼、反量化、半象素濾波、塊重建、將重建塊寫入SDRAM幀存中。解碼必須與顯示同步。

VES6100的一般解碼過程如表1所示。處于同一列中的事件同時處理。由表可見,解碼順序與顯示順序并不一致。

表1 VES6100的一般解碼過程

Timet0t1t2t3t4t5t6t7t8t9t10
FieldTBTBTBTBTBT
DecodeP3B1B1B2B2P6P6B4B4B5B5
DisplayI0I0B1B1B2B2P3P3B4B4B5

4.5 視頻輸出

MCB將存儲在SDRAM中的顯示幀傳送到視頻處理器。視頻處理器將4:2:0的解碼格式轉(zhuǎn)換成NTSC/PAL CCIR601格式。

4.6 視頻流錯誤掩蔽

VES6100能檢測出視頻流中的下列錯誤:

·非法語法;

·8×8塊中,系數(shù)數(shù)目大于64;

·數(shù)據(jù)流中的誤碼;

·宏塊序號錯。

VES6100一旦檢測出這些錯誤,便采取掩蔽措施重建宏塊(復(fù)制前一幀的相應(yīng)宏塊),直到檢測到下一個片(slice)起始碼或圖象起始碼。如果壓縮數(shù)據(jù)流中有掩蔽矢量,它將作為重建宏塊的參考,否則利用0值運動矢量。如果宏塊序號錯誤,VES6100丟棄數(shù)據(jù)直至檢測到圖象起始碼,繼續(xù)正常解碼。

5 音頻和視頻的同步

實現(xiàn)視頻和音頻同步的基本思想是從解碼端恢復(fù)出一個與編碼端一致的時鐘。而視頻的PTS和音頻的PTS是基于同一時基的,所以,若視頻PTS與系統(tǒng)時鐘同步,音頻PTS也與時鐘同步的話,則視頻和音頻就同步。

VES6100從碼流中獲?。校茫遥ǔ绦騾⒖紩r鐘)信息,并用它們調(diào)整解碼端的一個27MHz的壓控晶振,得到與編碼端一致的系統(tǒng)時鐘。這個時鐘被300分頻后,作為一個90kHz的局部計數(shù)器的工作頻率,并用得到的第一個PTS值作為這個計數(shù)器的初始值,在輸出圖象和聲音時,這個計數(shù)器的值表示了當(dāng)前幀的實際輸出時間。這個時間可與期望的輸出時間(PTS)相比,判斷是否同步,確定同步措施。

VES6100有兩種音頻和視頻同步模式:自動模式和手動模式。這兩種同步模式都由內(nèi)存控制塊管理。同步算法基于MCB中的SCR(系統(tǒng)參考時鐘)和PTS兩個參量。SCR與PCR類似,也是將比特流本身的時序編碼的時間標(biāo)簽,也可從同一道程序的視頻和音頻PTS值所用的共同時間基點推出。三個相關(guān)的寄存器是:PTS_audio、PTS_video和SCR,每個33位長,其中SCR可作為90kHz下的一個計數(shù)器使用。

自動模式又分為兩種:

(1)以系統(tǒng)流作為同步基準(zhǔn)時,SCR作為標(biāo)準(zhǔn)時鐘,視頻和音頻的PTS和SCR進(jìn)行比較。當(dāng)PTS和SCR的差大于顯示時間時,產(chǎn)生同步信號,跳過或重復(fù)當(dāng)前單元(視頻為1幀,音頻為2×32樣本/通道)。這是機頂盒的默認(rèn)模式。

(2)以音頻流作為同步基準(zhǔn)時,音頻的PTS作為標(biāo)準(zhǔn)時鐘。視頻PTS與音頻PTS作比較,當(dāng)這二個PTS之差超過一幀圖象的顯示時間時,產(chǎn)生視頻同步信號。

手動模式:在這種模式下,音頻和視頻解碼自由運行,直到微處理器發(fā)出skip/repeat命令或提供音頻PTS和視頻PTS以及PCR時,才停止工作。

自動模式和手動模式的不同點在于PTS的來源。在自動模式下,PTS從MPEG 2碼流中提取出來或來自于外部時鐘;在手動模式下,微處理器提供PTS。

6 軟件設(shè)計

軟件的編程用ARM公司的ARM ANSI C語言結(jié)合ARM匯編語言來完成。主要包括VES6100和VES2700中各個寄存器的設(shè)置,VES2700對各個外設(shè)的控制和協(xié)調(diào),OSD的編寫,大部分功能可以利用API函數(shù)來實現(xiàn)。軟件的調(diào)試可以通過JTAG口進(jìn)行,將硬件電路板與計算機連接起來,便可以在屏幕上觀察到存儲器的分配情況,寄存器的當(dāng)前值,以及軟件的執(zhí)行情況。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉