摘 要: 數(shù)字電視為用戶提供了許多模擬電視無法提供的服務(wù),,馬賽克業(yè)務(wù)就是其中一種有特色的業(yè)務(wù)。簡要介紹了馬賽克業(yè)務(wù)的原理以及DVB規(guī)范中馬賽克業(yè)務(wù)的實現(xiàn),,并提出了一種利用機頂盒圖形層合成馬賽克畫面來模擬馬賽克業(yè)務(wù)的方法,。
關(guān)鍵詞: 數(shù)字電視 馬賽克 DVB 圖形合成
近年來,,我國的數(shù)字電視業(yè)務(wù)已經(jīng)不僅僅為用戶提供電視節(jié)目,同時還提供了NVOD,、馬賽克電視等多種特色業(yè)務(wù),。
馬賽克業(yè)務(wù)是將屏幕分割成若干個小區(qū)域,每個小區(qū)域顯示各個頻道數(shù)字電視節(jié)目的全動態(tài)視頻馬賽克,,用戶只需通過遙控器移動箭頭,,通過小畫面的選擇便可切換到想要收看的節(jié)目頻道,充分體現(xiàn)了馬賽克導(dǎo)航頻道的交互性和友好性,,用戶的需求也得到了最大程度的滿足,。
在電視臺業(yè)務(wù)方面,通過EPG信息的播發(fā),,可以幫助用戶更好地了解播出節(jié)目的信息,,這種信息是文字形式的。但是,隨著播出頻道的增多,,需要為用戶提供高效的節(jié)目導(dǎo)航手段,。相對文字導(dǎo)航,基于多畫面所謂“Mosaic”的圖像導(dǎo)航方式更具有吸引力,,它能夠更直接向用戶展現(xiàn)播出節(jié)目的內(nèi)容,。
CCTV-SI就是Mosaic的一次具體應(yīng)用。為體育頻道提供更友好的交互功能,、多角度地觀賞畫面,,并可以由用戶自由選擇和切換觀賞角度。系統(tǒng)提供方便,、靈活的Mosaic設(shè)置,,可對屏幕任意劃分,多級Mosaic功能更可助你建立一個完美,、強大Mosaic體系,。
1 馬賽克業(yè)務(wù)基本概念和馬賽克描述子
DVB標(biāo)準(zhǔn)中定義馬賽克組件(Mosaic Component)集合不同的視頻影像,形成一個MPEG-2編碼的視頻流,,視頻影像的合成由源端完成,。這樣,在顯示端,、在屏幕的每個特定的區(qū)域?qū)@示不同的圖像,。
在DVB標(biāo)準(zhǔn)中,將顯示圖像,、視頻小畫面所在的區(qū)域定義為邏輯單元" title="邏輯單元">邏輯單元,。邏輯單元由基本單元組成,馬賽克屏幕最多可以分成8×8個基本單元,,對每個基本單元從上至下,、從左至右以遞增的方式進行編號,基本單元的編號稱為elementary_cell_id,。在圖1中,,屏幕被分為4×4個基本單元。
DVB標(biāo)準(zhǔn)中規(guī)定,,對相鄰的基本單元進行組合,,形成邏輯單元,每個邏輯單元都分配了一個編號,,稱之為logical_cell_id,。對按圖1劃分的基本單元進行邏輯單元的組合。組合的方式有很多,,圖2就是其中的一種,。在圖2中,,基本單元5、6,、9,、10組成一個邏輯單元,其它的每個基本單元分別組成一個邏輯單元,。
馬賽克業(yè)務(wù)是圖形化的電子指南,,在每個邏輯單元中可以呈現(xiàn)的信息包括:視頻、靜止圖像,、圖形/文本,。邏輯單元對應(yīng)的視頻是經(jīng)過縮小和重定位的連續(xù)圖像,靜止圖像由一個僅包含幀內(nèi)編碼的視頻序列組成,。
馬賽克描述子存在于SDT表或PMT表中,也可能在兩表中都有馬賽克描述子,,馬賽克描述子是為屏幕上的馬賽克畫面所顯示的內(nèi)容和DVB-SI信息建立聯(lián)系,。在馬賽克描述子中描述了以下內(nèi)容:
·基本單元的排列方式;
·將基本單元組合成邏輯單元,;
·邏輯單元所鏈接的內(nèi)容,、信息。邏輯單元可以指向業(yè)務(wù),、業(yè)務(wù)群,、事件或者其它的馬賽克業(yè)務(wù),指向其它的馬賽克業(yè)務(wù)就形成了馬賽克業(yè)務(wù)的嵌套,。
2 馬賽克業(yè)務(wù)的實現(xiàn)方法
在終端設(shè)備上實現(xiàn)DVB的馬賽克業(yè)務(wù)必須有前端設(shè)備的支持和配合,,前端主要完成兩個方面的工作:
(1) 形成馬賽克畫面
在前端將不同的業(yè)務(wù)、業(yè)務(wù)群和事件組成一個馬賽克畫面,,將它作為一個系統(tǒng)中的業(yè)務(wù),,并為它分配service_id等資源。
(2) 添加對馬賽克業(yè)務(wù)的描述到SI信息中
通過上一步驟形成馬賽克業(yè)務(wù)碼流后,,還應(yīng)該生成馬賽克描述子,,將馬賽克描述子添加到相應(yīng)的SI信息中(SDT、PMT),,并與其它的表一起生成業(yè)務(wù)信息碼流,。
前端的主要設(shè)備是馬賽克服務(wù)器。馬賽克服務(wù)器的主要功能是從輸入到服務(wù)器的多" title="的多">的多個節(jié)目流中按要求提取視頻,、靜止圖像以及圖形數(shù)據(jù),,然后進行縮放、定位等操作將它們合成一個節(jié)目流,,同時形成相應(yīng)的業(yè)務(wù)信息表,。將生成的節(jié)目流,、業(yè)務(wù)信息表以及原始節(jié)目流經(jīng)過復(fù)用器后即形成了一路完整的具有馬賽克業(yè)務(wù)的節(jié)目流,如圖3,。
機頂盒實現(xiàn)馬賽克業(yè)務(wù)的流程:
·檢查當(dāng)前或其它TS流的SDT表,。
·如果存在馬賽克服務(wù),那么:
A. 選擇相應(yīng)的TS流,;
B. 處理TS流的PAT,、PMT表;
C. 呈現(xiàn)馬賽克業(yè)務(wù),;
D. 如果用戶對某一邏輯單元的內(nèi)容感興趣,,則根據(jù)下面的原則進行相應(yīng)的處理:
① 邏輯單元與業(yè)務(wù)群相關(guān):顯示BAT表的信息,;
?、?邏輯單元與業(yè)務(wù)相關(guān):顯示SDT表的信息,處理PAT和PMT表并顯示選中的業(yè)務(wù),;
?、?邏輯單元與事件相關(guān):顯示EIT表的信息,處理PAT和PMT表并顯示選中的事件,;
?、?邏輯單元與馬賽克業(yè)務(wù)相關(guān):顯示SDT表相關(guān)信息,處理PAT和PMT,,呈現(xiàn)選中的馬賽克業(yè)務(wù)并轉(zhuǎn)到D,,重復(fù)以上步驟處理選中的馬賽克業(yè)務(wù)。
3 利用終端圖形層合成實現(xiàn)馬賽克業(yè)務(wù)
在第2節(jié)中所介紹的呈現(xiàn)馬賽克業(yè)務(wù)的方法是在前端和終端配合的情況下實現(xiàn)的,,沒有前端提供馬賽克服務(wù),,終端無法呈現(xiàn)。本文提出一種利用終端(機頂盒)圖形層合成馬賽克畫面的方法,,此方法的特點是不需要前端提供馬賽克服務(wù),,只要前端發(fā)送視頻節(jié)目流,就可以在終端模擬馬賽克業(yè)務(wù)的效果,。
機頂盒一般都有多個圖形層,,包括:Background層、Vedio層,、Still層,、OSD層、Cursor層等,,如圖4,。
Background層:顯示背景色。
Vedio層:顯示從MPEG-2解碼器輸出的運動圖像,。
Still層:顯示一幅靜態(tài)的圖像,。
OSD層:屏幕顯示,,主要用來繪制菜單、界面等,。
Cursor層:顯示光標(biāo),。
本文提出的方法主要利用Still層和Vedio層,下面以STi5516為例簡單介紹此方法,。
Vedio層顯示的數(shù)據(jù)是解碼輸出后的數(shù)據(jù),,解碼器對一幀源圖像數(shù)據(jù)解碼完成后,將解碼后的重構(gòu)" title="重構(gòu)">重構(gòu)數(shù)據(jù)保存在內(nèi)存中,。在PAL制式下,,一幀畫面的大小為720×576,而解碼后的重構(gòu)數(shù)據(jù)的格式為YCbCr4:2:0,。因此解碼一幀畫面必須分配720×576×1.5字節(jié)的緩沖用來保存重構(gòu)數(shù)據(jù),,其中720×576字節(jié)保存亮度分量的數(shù)據(jù),720×576×0.5用來保存色差分量的數(shù)據(jù),,亮度分量的數(shù)據(jù)和色差分量的數(shù)據(jù)是分開存放的,。MPEG-2解碼是以宏塊" title="宏塊">宏塊(macroblock)為單位進行的,4:2:0宏塊由六個塊(block)組成,,結(jié)構(gòu)如圖5所示,每一塊有8行,,每行8個樣點,。
重構(gòu)數(shù)據(jù)有45×36個宏塊。解碼后的重構(gòu)數(shù)據(jù)在內(nèi)存中的排放次序遵從一定的規(guī)則,,STi5516解碼完成后的重構(gòu)數(shù)據(jù)是以宏塊的順序存放的,。在其它芯片中,重構(gòu)數(shù)據(jù)的存放方式可能有所不同,,如LSI的SC2000,,它解碼后的重構(gòu)數(shù)據(jù)是按照行的次序存放的。
將重構(gòu)圖像幀的宏塊按照如圖6所示的方式進行編號,,每個宏塊包含16×16個像素點的亮度和色差分量數(shù)據(jù),。
(1) 重構(gòu)數(shù)據(jù)亮度分量的存放
將圖6中每4個宏塊編成一組(宏塊組),如0,、1,、45、46組成的宏塊組如圖7(a),。每個這樣的宏塊組描述了32×32個像素點的亮度和色差信息,。由于重構(gòu)數(shù)據(jù)是4:2:0的格式,那么這樣一個宏塊組中的亮度分量數(shù)據(jù)有32×32=1K字節(jié),。數(shù)據(jù)的存儲按行的次序進行,。設(shè)LMB(a,1)表示宏塊a亮度數(shù)據(jù)的第一行數(shù)據(jù),,如圖7(a),亮度數(shù)據(jù)排列順序如下:
LMB(a,1)→LMB(b,1)→LMB(a,2)→LMB(b,2)→…→LMB(a,16)→LMB(b,16)→LMB(c,1)→LMB(d,1)→LMB(c,2)→LMB(d,2)→…→LMB(c,16)→LMB(d,16),。
存儲完一個宏塊組的亮度數(shù)據(jù)后接著存儲下一個宏塊組的數(shù)據(jù),,直到存儲完所有宏塊的亮度數(shù)據(jù)。
(2) 重構(gòu)數(shù)據(jù)色差分量的存放
將圖6中的宏塊每8個宏塊編成一組(宏塊組),,如圖6中的宏塊0,、1、2,、3,、45、46,、47,、48,組成的宏塊組如圖7(b),。宏塊組中的每個宏塊的色差分量數(shù)據(jù)有128字節(jié),,一個宏塊組的色差分量數(shù)據(jù)128×8=1K字節(jié),數(shù)據(jù)的存儲也按行的次序進行,。設(shè)CMB(a,1)表示宏塊a色差數(shù)據(jù)的第一行數(shù)據(jù),,如圖7(b),色差數(shù)據(jù)排列順序如下:
CMB(a,1)→CMB(b,1)→…→CMB(a,8)→CMB(b,8)→CMB(c,1)→CMB(d,1)→…→CMB(c,8)→CMB(d,8)→CMB(e,1)→CMB(f,1)→…→CMB(e,8)→CMB(f,8)→CMB(g,1)→CMB(h,1)→…→CMB(g,8)→CMB(h,8),。
Still層顯示的幀數(shù)據(jù)格式為4:2:2,。Still層的數(shù)據(jù)在內(nèi)存中的存放方式與Video層的數(shù)據(jù)在內(nèi)存中的存放方式有所不同,Still層的數(shù)據(jù)是按照行的順序存放的,。Still層的數(shù)據(jù)在內(nèi)存中存放的方式如圖8所示,。
知道了圖形層顯示的數(shù)據(jù)在內(nèi)存中的排列方式,就可以將Video層的數(shù)據(jù)拷貝出來,。然后通過適當(dāng)?shù)霓D(zhuǎn)換后在Still層顯示出來,,通過這樣的方式,可以用圖形層模擬馬賽克業(yè)務(wù),。實現(xiàn)的步驟如下:
?、贋镾till層顯示分配一定大小的內(nèi)存區(qū)域A;
?、谕V挂曨l的播放,;
③拷貝正在顯示的Video層的視頻數(shù)據(jù)(4:2:0)到內(nèi)存中,;
?、軐⒖截惓鰜淼囊曨l數(shù)據(jù)轉(zhuǎn)換成Still層能夠顯示的數(shù)據(jù)格式;
?、莅凑找欢ǖ谋壤s小尺寸后將數(shù)據(jù)存放在內(nèi)存B,;
?、迣?nèi)存B的數(shù)據(jù)二維拷貝到內(nèi)存B的某一特定位置;
?、咔袚Q至下一節(jié)目,,重復(fù)步驟②。
馬賽克業(yè)務(wù)為有線電視觀眾提供形式新穎,、美觀,、功能實用的導(dǎo)視服務(wù),每家每戶都能夠方便快捷地查詢到自己感興趣的節(jié)目,,再不用為了找到滿意的節(jié)目而拿著遙控器不停地選臺了,。
馬賽克業(yè)務(wù)定將在數(shù)字電視的發(fā)展中起到重要的作用。
參考文獻
1 朱勤偉. 馬賽克業(yè)務(wù)的原理與實現(xiàn). 電視技術(shù)" title="電視技術(shù)">電視技術(shù),2004;6
2 Specification For Service Information(SI) in DVB Systems.EN300 468 v1.3.1, European Telecommunications Standards Institute, 1998,;2
3 Guidelines on Implementation and Usage of Service Information(SI). ETR 211. European Telecommunications Standards Institute, August,1997
4 STI5516B Low-cost set-top box decoder datasheet. STMi-croelectronics Group of Companies.2003