|
近年來,我國(guó)的數(shù)字電視業(yè)務(wù)已經(jīng)不僅僅為用戶提供電視節(jié)目,同時(shí)還提供了NVOD、馬賽克電視等多種特色業(yè)務(wù)。 馬賽克業(yè)務(wù)是將屏幕分割成若干個(gè)小區(qū)域,每個(gè)小區(qū)域顯示各個(gè)頻道數(shù)字電視節(jié)目的全動(dòng)態(tài)視頻馬賽克,用戶只需通過遙控器移動(dòng)箭頭,通過小畫面的選擇便可切換到想要收看的節(jié)目頻道,充分體現(xiàn)了馬賽克導(dǎo)航頻道的交互性和友好性,用戶的需求也得到了最大程度的滿足。 在電視臺(tái)業(yè)務(wù)方面,通過EPG信息的播發(fā),可以幫助用戶更好地解播出節(jié)目的信息,這種信息是文字形式的。但是,隨著播出頻道的增多,需要為用戶提供高效的節(jié)目導(dǎo)航手段。相對(duì)文字導(dǎo)航,基于多畫面所謂“Mosaic”的圖像導(dǎo)航方式更具有吸引力,它能夠更直接向用戶展現(xiàn)播出節(jié)目的內(nèi)容。 CCTV-SI就是Mosaic的一次具體應(yīng)用。為體育頻道提供更友好的交互功能、多解度地觀賞畫面,并可以由用戶自由選擇和切換觀賞角度。系統(tǒng)提供方便、靈活的Mosaic設(shè)備,可對(duì)屏幕任務(wù)劃分,多級(jí)Mosaic功能更可助你建立一個(gè)完美、強(qiáng)大Mosaic 體系。 1 馬賽克業(yè)務(wù)基本概念和馬賽克描述子 DVB標(biāo)準(zhǔn)中定義馬賽克組件(Mosaic Component)集合不同的視頻影像,形成一個(gè)MPEG-2編碼的視頻頻流,視頻影響的合成由源端完成。這樣,在顯示端、在屏幕的每個(gè)特定的區(qū)域?qū)@示不同的圖像。 在DVB標(biāo)準(zhǔn)中,將顯示圖像、視頻小畫面所在的區(qū)域定義為邏輯單元。邏輯單元由基本單元組成,馬賽克屏幕最多可以分成8×8個(gè)基本單元,對(duì)每個(gè)基本單元從上至下、從左至右以遞增的方式進(jìn)行編號(hào),基本單元的編號(hào)稱為elementary_cell_id。在圖1 中,屏幕被分為4×4個(gè)基本單元。 DVB標(biāo)準(zhǔn)中規(guī)定,對(duì)相鄰的基本單元進(jìn)行組合,形成邏輯單元,每個(gè)邏輯單元都分配了一個(gè)編號(hào),稱之為 logical_cell_id。對(duì)按圖1劃分的基本單元進(jìn)行邏輯單元的組合。組合的方式有很多,圖2就是其中的一種。在圖2中,基本單元5、6、9、 10組成一個(gè)邏輯單元,其它的每個(gè)基本單元分別組成一個(gè)邏輯單元。 馬賽克業(yè)務(wù)是圖形的電子摜,在每個(gè)邏輯單元中可以呈現(xiàn)的信息包括:視頻、靜止圖像、圖形/文本。邏輯單元對(duì)應(yīng)的視頻是經(jīng)過縮小和重定位的連續(xù)圖像,靜止圖像由一個(gè)僅包含幀內(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ù)的實(shí)現(xiàn)方法 在終端設(shè)備上實(shí)現(xiàn)DVB的馬賽克業(yè)務(wù)必須有前端設(shè)備的支持和配合,前端主要完成兩個(gè)方面的工作: (1)形成馬賽克畫面 在前端將不同的業(yè)務(wù)、業(yè)務(wù)群和事件組成一個(gè)馬賽克畫面,將它作為一個(gè)系統(tǒng)中的業(yè)務(wù),并為它分配 service_id等資源。 (2)添加對(duì)馬賽克業(yè)務(wù)的描述到SI信息中 通過上一步驟形成馬賽克業(yè)務(wù)碼流后,還應(yīng)該生成馬賽克描述子,將馬賽克描述子添加到相慶的SI信息中(SDT、PMT),并與其它的表一起生成業(yè)務(wù)信息碼流。 前端的主要設(shè)備是馬賽克服務(wù)器。馬賽克服務(wù)器的主要功能是從輸入到服務(wù)器的多個(gè)節(jié)目流中按要求提取視頻、靜止圖像以及圖形數(shù)據(jù),然后進(jìn)行縮放、定位等操作將它們合成一個(gè)節(jié)目流,同時(shí)形成相應(yīng)的業(yè)務(wù)信息表。將生成的節(jié)目流、業(yè)務(wù)信息表以及原始節(jié)目流經(jīng)過復(fù)用器后即形成了一路完整的具有馬賽克業(yè)務(wù)的節(jié)目流,如圖3。 機(jī)頂盒實(shí)現(xiàn)馬賽克業(yè)務(wù)的流程: ·檢查當(dāng)前或其它TS流的SDT表。 ·如果存在馬賽克服務(wù),那么: A選擇相應(yīng)的TS流; B處理TS流的PAT、PMT表; C呈現(xiàn)馬賽克業(yè)務(wù); D如果用戶對(duì)某一邏輯單元的內(nèi)容感興趣,則根據(jù)下面的原則進(jìn)行相應(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 利用終端圖像層合成實(shí)現(xiàn)馬賽克業(yè)務(wù) 在第2節(jié)中所介紹的呈現(xiàn)馬賽克業(yè)務(wù)的方法是在前端和終端配合的情況下實(shí)現(xiàn)的,沒有前端提供馬賽克服務(wù),終端無(wú)法呈現(xiàn)。本文提出一種利用終端(機(jī)頂盒)圖形層合成馬賽克畫面的方法,此方法的特點(diǎn)是不需要前端提供馬賽克服務(wù),只要前端發(fā)送視頻節(jié)目流,就可以在終端模塊馬賽克業(yè)務(wù)的效果。 機(jī)頂盒一般都有多個(gè)圖形層,包括:Background層、Vedio層、Still層、OSD層、Cursor層等,如圖4。 Background層:顯示背景色。 Vedio層:顯示從MPEG-2解碼器輸出的運(yùn)動(dòng)圖像。 Still層:顯示一幅表態(tài)的圖像。 OSD層:屏幕顯示,主要用來繪制菜單、界面等。 Cursor層:顯示光標(biāo)。 本文提出的方法主要利用Still層和Vedio層,下面以STi5516為例簡(jiǎn)單介紹此方法。 Vedio層顯示的數(shù)據(jù)是解碼輸出后的數(shù)據(jù),解碼器對(duì)一幀源圖像數(shù)據(jù)解碼完成后,將解碼后的重構(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解碼是以宏塊(macroblock)為單元進(jìn)行的,4:2:0宏塊由六個(gè)塊(block)組成,結(jié)果如圖5所示,每一塊有8行,每行8個(gè)樣點(diǎn)。 重構(gòu)數(shù)據(jù)有45×36個(gè)宏塊。解碼后的重構(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所示的方式進(jìn)行編號(hào),每個(gè)宏塊包含16×16個(gè)像素點(diǎn)的亮度和色差分量數(shù)據(jù)。 (1)重構(gòu)數(shù)據(jù)亮度分量的存放 將圖6中第4個(gè)宏塊編碼一組(宏塊組),如0、1、45、46組成的宏塊組如圖7(a)。每個(gè)這樣的宏塊組描述了32×32個(gè)像素點(diǎn)的亮度和色差信息。由于重構(gòu)數(shù)據(jù)是4:2:0的格式,那么這樣一個(gè)宏塊組中的亮度分量數(shù)據(jù)有32×32=1K字節(jié)。數(shù)據(jù)的存儲(chǔ)按行的次序進(jìn)行。設(shè)LMB(a,1)表示宏塊a亮度數(shù)據(jù)的第一行數(shù)據(jù),如圖7(a),亮度數(shù)據(jù)排列順序如下: LMB(a,1)→LMB(b,1)→LMB(a,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)。 存儲(chǔ)完一個(gè)宏塊組的亮度數(shù)據(jù)后接著存儲(chǔ)下一個(gè)宏塊組的數(shù)據(jù),直至存儲(chǔ)完所有宏塊的亮度數(shù)據(jù)。 [tr] [table][/table] (2)重構(gòu)數(shù)據(jù)色差分量的存放 將圖6中的宏塊每8個(gè)宏塊編成一組(宏塊組),如圖6中的宏塊0、1、2、3、45、46、47、48,組成的宏塊組如圖7(b)。宏塊組中的每個(gè)宏塊的色差分量數(shù)據(jù)有128字節(jié),一個(gè)宏塊組的色差分量數(shù)據(jù)128×8=1K字節(jié),數(shù)據(jù)的存儲(chǔ)也按行的次序進(jìn)行。設(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ù)。實(shí)現(xiàn)的步驟如下: ①為Still層顯示分配一定大小的內(nèi)存區(qū)域 A; ②停止視頻的播放; ③拷貝正在顯示的Video層的視頻數(shù)據(jù)(4:2:0)到內(nèi)存中; ④將拷貝出來的視頻數(shù)據(jù)轉(zhuǎn)換成Still層能夠顯示的數(shù)據(jù)格式; ⑤按照一定的比例縮小尺寸后將數(shù)據(jù)存放在內(nèi)存B; ⑥將內(nèi)存B的數(shù)據(jù)二維拷貝到內(nèi)存B的某一特殊位置; ⑦切換至下一節(jié)目,重復(fù)步驟②。 馬賽克業(yè)務(wù)為有線電視觀眾提供形式新穎、類觀、功能實(shí)用的導(dǎo)視服務(wù),每家每戶都能夠方便快捷地查詢到自己感興趣的節(jié)目,再不用為了找到滿意的節(jié)目而拿著遙控器不停地選臺(tái)了。 馬賽克業(yè)務(wù)定將在數(shù)字電視的發(fā)展中起到重要的作用。 |