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