專利名稱:一種在視頻畫面上疊加用戶界面的方法
技術領域:
本發(fā)明屬于數(shù)字多媒體信息處理領域,尤其涉及一種在視頻畫面上疊 加用戶界面的方法。
背景技術:
隨著信息技術的發(fā)展,數(shù)字技術已經(jīng)廣泛應用于多^ 某體處理領域,這些 數(shù)字多媒體設備在功能日益強大的同時也在不斷提高其易用性,在視頻畫面
上疊加用戶界面已經(jīng)成為一個趨勢;數(shù)字多媒體設備通過靈活地配備軟件, 可以實現(xiàn)多種不同的業(yè)務功能,不同的業(yè)務應用在設計上相對獨立,運行時 可能會同時在視頻上疊加各自的用戶界面,且不同應用的界面之間還可能會重疊,容易給用戶的理解和使用造成困難。因此,需要采用一種新的方法同 時將多個應用的用戶界面疊加到視頻畫面上。
中國專利CN02149294 "—種實現(xiàn)圖文混合顯示的方法",是將待顯示 信息組織成多個圖層,疊加在一起得到最終的輸出圖像。而實際應用中,不 同應用的界面通常都在一個圖層內(nèi)部,而該專利并未對此給出解決方案。
中國專利CN200510132415 "—種用于在^L頻信號上疊加多個圖形信 號的控制裝置及其方法",則是通過逐個象素判斷是否需要在視頻上疊加圖 形信號,雖然該方法可以用于多個應用同時在^L頻上疊加界面的場合,但該 專利需要逐個象素進行判斷,運算量較大,且對當前正在操作的應用和未操 作的應用沒有分別進行處理。
外國專利WO2006001506 " IMAGE MIXING APPARATUS AND PIXEL MIXER"是當兩個被疊加的區(qū)域相互重疊時,才艮據(jù)兩個區(qū)域的Z序 來決定重疊部分的內(nèi)容,但該專利同樣對當前正在操作的應用和未操作的應 用沒有分別進行處理。 綜上所述,目前在視頻上疊加界面的解決方案,均未對屬于不同應用的 界面加以區(qū)別對待,還有些方案未考慮同一圖層內(nèi)的界面相互重疊的情況。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術問題,是提供一種在視頻畫面上疊加用戶界面的 方法,從而實現(xiàn)在同一圖層內(nèi)相互重疊的多個用戶界面的疊加處理以及對多 個應用界面的區(qū)分。
為了解決上述問題,本發(fā)明提供了, 一種在視頻畫面上疊加用戶界面的 方法,應用于多個業(yè)務應用的界面同時疊加到浮見頻上的情況,該方法包括以
下步驟
A:對所有業(yè)務應用的界面,均生成與其對應的疊加描述子并保存,其 中疊加描述子中含有業(yè)務應用標識信息;
B:針對多個待疊加的業(yè)務應用的界面,按序依次遍歷其疊加描述子, 并根據(jù)各疊加描述子的業(yè)務應用標識對各疊加描述子分別處理,從而生成疊 加剪裁區(qū);
C-在疊加剪裁區(qū)范圍將多個應用業(yè)務的界面與一見頻疊加。
上述步驟A中,所述業(yè)務應用標識用于區(qū)分待疊加的界面所屬的業(yè)務 應用類別,所述業(yè)務應用類別分為當前活動的業(yè)務應用和非當前活動的業(yè)務 應用。
所述疊加描述子還包括待疊加的多個業(yè)務應用的界面的Z序信息、期望 疊加區(qū)域以及疊加控制參數(shù)。
上述步驟B,具體分為以下步驟
Bl:確定遍歷各疊加描述子的順序;
B2:獲取并保存當前業(yè)務應用標識后,根據(jù)上述遍歷順序確定要遍歷的 第一個疊加描述子,將其作為當前描述子;
B3:計算當前描述子的實際疊加區(qū)域,并確定當前描述子的實際疊加控
制參數(shù);
B4:根據(jù)得到的實際疊加區(qū)域和實際疊加控制參數(shù)修改疊加剪裁區(qū)的內(nèi) 容,然后返回步驟B3,直到遍歷所有的疊加描述子。
當上述步驟B中生成的疊加剪裁區(qū)被組織為各個實際疊加區(qū)域和疊加 控制參數(shù)的集合時,則步驟C為,遍歷所有與待刷新區(qū)域有關的實際疊加 區(qū)域,按照對應的疊加控制參數(shù)將界面和視頻進行疊加;
當上述步驟B中生成的疊加剪裁區(qū)被組織為與界面象素——對應的透 明度緩沖區(qū)的形式時,則步驟C為,遍歷待刷新區(qū)域內(nèi)的每一個界面象素, 根據(jù)其對應的透明度將其與視頻進行疊加。
上述步驟B中具體步驟B1中,按Z序遍歷各疊加描述子。
步驟B3中,才艮據(jù)當前描述子的業(yè)務應用標識,判斷當前描述子所屬當 前業(yè)務應用的類別,并根據(jù)此類別得到當前描述子的實際疊加控制參數(shù)。
所述當前描述子屬于當前業(yè)務應用時,其實際疊加控制參數(shù)的透明度為 不透明,當前描述子屬于非當前業(yè)務應用時,其實際疊加控制參數(shù)的透明度 為半透明。
本發(fā)明具在以下效果
1、 由于本發(fā)明采用應用程序標識來區(qū)分欲疊加用戶界面區(qū)域所屬的應 用,對當前應用和非當前應用的疊加控制參數(shù)分別進行處理,從而使用戶看 到的兩類應用界面在視頻上的疊加效果有明顯區(qū)別;
2、 由于本發(fā)明中疊加剪裁區(qū)內(nèi)的實際疊加區(qū)域采用區(qū)域運算得到,不 必逐個象素判斷,且疊加剪裁區(qū)只在需要時才根據(jù)疊加描述子重新計算生 成,實際進行疊加時只需訪問疊加剪裁區(qū),因此降低了運算量。
綜上所述,采用本發(fā)明方法將界面疊加到視頻上,原理簡單,運算量低, 可以處理同一圖層內(nèi)界面相互重疊的情況,并為當前應用和非當前應用的界 面在視頻上產(chǎn)生不同的疊加效果。與現(xiàn)有技術相比,能夠節(jié)省計算能力,降 低產(chǎn)品成本,美化界面效果,從而提升產(chǎn)品竟爭力,非常適合用于將多個不 同業(yè)務應用的界面同時疊加到視頻上。
圖1為實施例中業(yè)務應用A的界面單獨在圖層上顯示的示意圖; 圖2為實施例中業(yè)務應用B的界面單獨在圖層上顯示的示意圖; 圖3為實施例中業(yè)務應用A、B的界面同時在同一個圖層上顯示的示意
圖4為實施例中業(yè)務應用B的界面被業(yè)務應用A的界面覆蓋之后的實 際疊加區(qū)域示意圖5為實施例中視頻畫面的示意圖6為實施例中業(yè)務應用A、 B的界面同時疊加在^L頻上的示意圖7為實施例中摳除了業(yè)務應用A的界面后覆蓋剪裁區(qū)的形狀示意圖8為實施例中摳除了業(yè)務應用B的界面后覆蓋剪裁區(qū)的形狀示意圖9為實施例的流程圖10為實施例中生成疊加剪裁區(qū)的流^E圖11為實施例中疊加描述子處理模塊的處理流程圖12為實施例中將窗口的內(nèi)容疊加到視頻上的流程圖。
具體實施例方式
本發(fā)明的主要構(gòu)思是,考慮疊加描述子中含有Z序信息,可以用于確定 界面在相互重疊區(qū)域的疊加控制參數(shù);采用應用程序標識來區(qū)分欲疊加界面 區(qū)域所屬的應用,對當前應用和非當前應用的疊加控制參數(shù)分別進行處理, 從而使用戶看到的兩類應用界面在視頻上的疊加效果有明顯區(qū)別;另外疊加 剪裁區(qū)內(nèi)的實際疊加區(qū)域采用區(qū)域運算得到,且只在需要時才根據(jù)疊加描述 子重新計算生成疊加剪裁區(qū),實際進行疊加時只需訪問疊加剪裁區(qū)即可。
其中標識指與某類對象的某個特定實例相關聯(lián)的指針、序號、編號或句 柄等,即一切能在該類對象的所有實例中識別出該特定實例的數(shù)據(jù)或數(shù)據(jù)結(jié) 構(gòu)及其組合;
當前應用指用戶當前正在操作的業(yè)務應用,即當前活動的業(yè)務應用; 非當前應用指用戶當前沒有操作的業(yè)務應用,即當前不活動的業(yè)務應用。
下面結(jié)合附圖對本發(fā)明的技術方案作進一步的詳細描述。
圖9所示為,基于Micro Windows系統(tǒng)應用本發(fā)明技術方案的實施例, Micro Windows是一個開放源代碼的圖形系統(tǒng),提供基本作圖原語、區(qū)域集 合運算、系統(tǒng)消息通訊和簡單窗口管理等功能。本實施例在Linux環(huán)境實施, 使用幀緩沖區(qū)(FrameBuffer)作為容納用戶界面的圖層,以窗口為單位在視 頻上疊加界面,采用Micro Windows的Nano-X接口形式,主要修改服務器 端的代碼,另外本實施例中視頻和界面都采用數(shù)字方式存儲,疊加的結(jié)果也 采用數(shù)字方式輸出。
其在^L頻畫面上疊加用戶界面的過程,包括以下步驟
A、生成疊加描述子
本實施例中疊加描述子包含如下內(nèi)容
1、 期望疊加區(qū)域,也就是業(yè)務應用在視頻上疊加的界面區(qū)域范圍,本 實施例中,業(yè)務應用的界面即為窗口,通過窗口數(shù)據(jù)結(jié)構(gòu)指針訪問窗口數(shù)據(jù) 結(jié)構(gòu)可以得到窗口的尺寸和位置信息,并將其作為該窗口的期望疊加區(qū)域;
當然,也可以通過矩形或者更為復雜的曲線等直接描述出期望疊加區(qū)域 的范圍。
2、 根據(jù)MicroWindows服務器端窗口數(shù)據(jù)結(jié)構(gòu)的組織形式?jīng)Q定了窗口 之間疊加的先后順序,即Z序;
3、 將窗口所屬進程標識PID (process identifier),作為業(yè)務應用標識, 將屬于同一個進程的界面劃歸同 一個業(yè)務應用,以PID來識別;
4、 本實施例中,疊加控制參數(shù)被省略,在生成疊加剪裁區(qū)時采用默認 的策略確定實際的疊加控制參數(shù)。
B、 保存疊加描述子
將上述系統(tǒng)中所有的疊加描述子組織成鏈表加以保存;同時修改原有的 窗口數(shù)據(jù)結(jié)構(gòu),增加一個指針字段指向該窗口對應的疊加描述子,如果該窗
口不需要疊加在視頻上,則將該字段設為空值。
本實施中,將疊加描述子保存在軟件的數(shù)據(jù)結(jié)構(gòu)中,在其它實例中也可 以將疊加描述子保存在硬件寄存器或者閃存FLASH等中。
C、 生成疊加剪裁區(qū)
在Micro Windows服務器端,所有窗口數(shù)據(jù)結(jié)構(gòu)被組織成一個樹的形式, 樹根是根窗口,其它的所有窗口都是根窗口的子窗口,子窗口的Z序位于其 父窗口之上;而在同屬一個窗口的子窗口中,排在前面的窗口的Z序又位于 排在后面的窗口的Z序之上。
根據(jù)上述分析可知,對窗口樹進行后序遍歷(Postorder Traversal)即可
實現(xiàn)按照Z序從上到下對窗口進行遍歷,而在本實施例中,每個疊加描述子
都與一個窗口相對應,故對窗口樹進行后序遍歷等同于按照Z序從上到下遍 歷各疊加描述子。
在遍歷窗口樹的同時,還要維護一個覆蓋剪裁區(qū),對于當前正在被遍歷 處理的窗口來說,覆蓋剪裁區(qū)表示界面圖層被所有Z序在該窗口之上且需要 疊加到視頻上的窗口覆蓋之后剩余的區(qū)域,覆蓋剪裁區(qū)與期望疊加區(qū)域求交 集即可得到該窗口的實際疊加區(qū)域,而處理完某窗口的疊加描述子之后,覆 蓋剪裁區(qū)也隨之縮小,要從中摳除該窗口的期望疊加區(qū)域。
圖1、圖2分別表示業(yè)務應用A及業(yè)務應用B的界面,在本實施例中也 可以稱為窗口 A和B單獨在圖層101、 201上顯示,其中陰影部分為疊加到 視頻上的期望疊加區(qū)域102、 202。圖3中窗口 A及窗口 B同時在圖層301 上顯示,其中窗口 A的Z序在窗口 B之上,此時窗口 A的實際疊加區(qū)域302 與其期望疊加區(qū)域102相同,而窗口 B的實際疊加區(qū)域303則比其期望疊加 區(qū)域202小。圖4在圖層401中單獨顯示窗口 B的實際疊加區(qū)域403,由于 被窗口 A覆蓋,其期望疊加區(qū)域中有一部分402被從實際疊加區(qū)域中摳除。
顯然,遍歷時先處理窗口 A,此時覆蓋剪裁區(qū)為整個圖層,故窗口 A 的實際疊加區(qū)域與其期望疊加區(qū)域相同,此時,要從覆蓋剪裁區(qū)中摳除窗口 A的界面的期望疊加區(qū)域,如圖7所示,整個界面圖層701被摳除了窗口 A 的界面的期望疊加區(qū)域702,剩余的陰影部分703即為新的覆蓋剪裁區(qū)。
然后繼續(xù)遍歷,處理窗口B,將此時的覆蓋剪裁區(qū)703與其期望疊加區(qū) 域202求交集得到其實際疊加區(qū)域403,此時,要從覆蓋剪裁區(qū)中摳除窗口 B的期望疊加區(qū)域,如圖8所示,801為整個界面圖層,從原有的覆蓋剪裁 區(qū)703中摳除窗口 B的期望疊加區(qū)域202,剩余的陰影部分803即為新的覆 蓋剪裁區(qū),而802則為窗口 A和B共同覆蓋的圖層區(qū)域。
上述生成疊加剪裁區(qū)的具體過程,如圖10所示,包括以下步驟
步驟1001:清空疊加剪裁區(qū),將覆蓋剪裁區(qū)初始化為整個圖層,保存 當前應用的PID,即MicroWindows系統(tǒng)內(nèi)任何時刻都有且僅有一個窗口擁 有焦點,該窗口對應的客戶端進程為當前應用;
步驟1002:對根窗口調(diào)用疊加描述子處理模塊;
步驟1003:將覆蓋剪裁區(qū)加以保存。
其中疊加描述子處理模塊的處理流程,如圖ll所示,包括以下步驟
步驟1101:判斷覆蓋剪裁區(qū)是否為空或者本窗口不可見,如果是,結(jié) 束流程,否則轉(zhuǎn)向步驟1102;
步驟1102:判斷本窗口是否擁有子窗口,如果是,轉(zhuǎn)向步驟1103,否 則轉(zhuǎn)向步驟1104;
步驟1103:由于樹的遍歷通常都采用遞歸算法,所以本實施例中對本 窗口的每個子窗口進行遞歸調(diào)用,即依次對每個子窗口調(diào)用疊加描述子處理 模塊,;
步驟1104:判斷本窗口是否需要疊加在視頻上,如果是,轉(zhuǎn)向步驟1105, 否則結(jié)流程;
步驟1105:計算實際疊加區(qū)域,調(diào)用Gd Intersect Region函數(shù)將本窗口 占據(jù)的區(qū)域,也就是期望疊加區(qū)域,與當前的覆蓋剪裁區(qū)求交集,結(jié)果即為
實際疊加區(qū)域;
步驟1106:判斷當前窗口是否為當前業(yè)務應用,如果是,轉(zhuǎn)向步驟1107, 否則轉(zhuǎn)向步驟1109;
步驟1107:確定實際疊加控制參數(shù),本實施例中疊加控制參數(shù)只包含 透明度信息,將疊加描述子的PID與當前應用的PID加以比較,如果相等 即屬于當前應用,將透明度設為不透明,如果比較結(jié)果不相等則將透明度設 為半透明;
步驟1108:將本窗口的實際疊加區(qū)域和疊加透明度添加到疊加剪裁區(qū) 域中;
該步驟中所述的疊加剪裁區(qū)被組織成一個鏈表,鏈表的每個節(jié)點由其所 屬的窗口數(shù)據(jù)結(jié)構(gòu)指針、實際疊加區(qū)域和疊加透明度組成。
步驟1109:從覆蓋剪區(qū)域中摳除本窗口占據(jù)的區(qū)域,本實施例通過調(diào) 用Gd Subtract Region函數(shù)從覆蓋剪裁區(qū)中摳除本窗口占據(jù)的區(qū)域,其結(jié)果 為新的覆蓋剪裁區(qū)。
在實際操作過程中,如果窗口顯示、隱藏、焦點或Z序發(fā)生變動時,都 要重新生成疊加剪裁區(qū),本實施例中通過修改Micro Windows代碼實現(xiàn)這一 步,即在執(zhí)行相應操作的代碼中間插入對疊加剪裁區(qū)生成模塊的調(diào)用,也就 是圖IO所示的流程即可。
D、將界面與4見頻疊加
在本實施例中,依次遍歷疊加剪裁區(qū)內(nèi)的每個節(jié)點,將界面圖層中位于 節(jié)點實際疊加區(qū)域內(nèi)的象素按照相應的透明度疊加到視頻上即可。其中由于 界面和視頻都是動態(tài)變化的,所以針對界面和視頻的變化要分別考慮。
圖5所示為本實施例中視頻畫面501,其上顯示了視頻內(nèi)容502。圖6 所示為窗口 A和B疊加到視頻601上的示意圖,視頻畫面的內(nèi)容604有一 部分^皮窗口覆蓋了,窗口 A的實際疊加區(qū)域602與B的實際疊加區(qū)域603 內(nèi)采用的是不同的疊加控制參數(shù)。
本實施例中界面變化引起的疊加以窗口為單位進行,將窗口的內(nèi)容疊加
到視頻上的過程,如圖12所示,包括以下步驟
步驟1201:應用發(fā)起一個針對某窗口的疊加請求;
步驟1202:在疊加剪裁區(qū)域中搜尋屬于該窗口的節(jié)點;
步驟1203:判斷搜尋是否成功,如果是,轉(zhuǎn)向步驟1204,否則結(jié)束流
程;
步驟1204:將位于該窗口實際疊加區(qū)域內(nèi)的象素按照透明度疊加到視 頻上。
對于,視頻變化引起的疊加較為簡單依次遍歷疊加剪裁區(qū)內(nèi)的每個節(jié) 點,將界面圖層中位于節(jié)點實際疊加區(qū)域內(nèi)的象素按照相應的透明度疊加到 視頻上。
上述實施例中,由于步驟C中生成的疊加剪裁區(qū)被組織為各個實際疊加 區(qū)域和疊加控制參數(shù)的集合,因此步驟D中將界面與視頻疊加過程為,遍 歷所有與待刷新區(qū)域有關的實際疊加區(qū)域,按照對應的疊加控制參數(shù)將界面 和-見頻進4于疊加。
除了本實施例外,在實際操作中,步驟C也可以按照現(xiàn)有技術將生成的 疊加剪裁區(qū)組織為與界面象素——對應的透明度緩沖區(qū)的形式,此時步驟D 中將界面與視頻疊加過程為,遍歷待刷新區(qū)域內(nèi)的每一個界面象素,根據(jù)其 對應的透明度將其與視頻進行疊加。
上述實施例,將界面疊加到視頻上,原理簡單,運算量低,在處理同一 圖層內(nèi)界面相互重疊的情況時,使得當前應用和非當前應用的界面在視頻上 產(chǎn)生不同的疊加效果。與現(xiàn)有技術相比,能夠節(jié)省計算能力,降低產(chǎn)品成本, 美化界面效果,從而提升產(chǎn)品竟爭力,非常適合用于將多個不同業(yè)務應用的 界面同時疊加到一見頻上。
當然,上述具體實施例不是對本發(fā)明技術方案的進一步限定,任何熟悉 本領域的技術人員對本發(fā)明技術特征所作的等同替換或相應改進,仍在本發(fā) 明的保護范圍之內(nèi)。
權(quán)利要求
1、一種在視頻畫面上疊加用戶界面的方法,應用于多個業(yè)務應用的界面同時疊加到視頻上的情況,其特征在于,包括以下步驟A對所有業(yè)務應用的界面,均生成與其對應的疊加描述子并保存,其中疊加描述子中含有業(yè)務應用標識信息;B針對多個待疊加的業(yè)務應用的界面,按序依次遍歷其疊加描述子,并根據(jù)各疊加描述子的業(yè)務應用標識對各疊加描述子分別處理,從而生成疊加剪裁區(qū);C在疊加剪裁區(qū)范圍將多個應用業(yè)務的界面與視頻疊加。
2、 如權(quán)利要求l所述的方法,其特征在于,所述步驟A中,業(yè)務應用 標識用于區(qū)分待疊加的界面所屬的業(yè)務應用類別,所述業(yè)務應用類別分為當 前活動的業(yè)務應用和非當前活動的業(yè)務應用。
3、 如權(quán)利要求1或2所述的方法,其特征在于,所述步驟A中,疊加 描述子還包括待疊加的多個業(yè)務應用的界面的Z序信息、期望疊加區(qū)域以及 疊加控制參數(shù)。
4、 如權(quán)利要求1所述的方法,其特征在于,所述步驟B,具體分為以 下步驟Bl:確定遍歷各疊加描述子的順序;B2:獲取并保存當前業(yè)務應用標識后,根據(jù)上述遍歷順序確定要遍歷的 第一個疊加描述子,將其作為當前描述子;B3:計算當前描述子的實際疊加區(qū)域,并確定當前描述子的實際疊加控 制參數(shù);B4:根據(jù)得到的實際疊加區(qū)域和實際疊加控制參數(shù)修改疊加剪裁區(qū)的內(nèi) 容,然后返回步驟B3,直到遍歷所有的疊加描述子。
5、 如權(quán)利要求1或4所述的方法,其特征在于,所述步驟B中生成的 疊加剪裁區(qū)被組織為各個實際疊加區(qū)域和疊加控制參數(shù)的集合時,則步驟C 為,遍歷所有與待刷新區(qū)域有關的實際疊加區(qū)域,按照對應的疊加控制參數(shù)將界面和視頻進行疊加;所述步驟B中生成的疊加剪裁區(qū)被組織為與界面象素——對應的透明 度緩沖區(qū)的形式時,則步驟C為,遍歷待刷新區(qū)域內(nèi)的每一個界面象素, 根據(jù)其對應的透明度將其與視頻進行疊加。
6、 如權(quán)利要求4所述的方法,其特征在于,所述步驟B1中,按Z序 遍歷各疊加描述子。
7、 如權(quán)利要求4所述的方法,其特征在于,所述步驟B3中,根據(jù)當 前描述子的業(yè)務應用標識,判斷當前描述子所屬當前業(yè)務應用的類別,并根 據(jù)此類別得到當前描述子的實際疊加控制參數(shù)。
8、 如權(quán)利要求4或7所述的方法,其特征在于,所述當前描述子屬于 當前業(yè)務應用時,其實際疊加控制參數(shù)的透明度為不透明,當前描述子屬于 非當前業(yè)務應用時,其實際疊加控制參數(shù)的透明度為半透明。
全文摘要
本發(fā)明公開了一種在視頻畫面上疊加用戶界面的方法,屬于數(shù)字多媒體信息處理領域。該方法應用于多個業(yè)務應用的界面同時疊加到視頻上的情況,包括首先對所有業(yè)務應用的界面,均生成與其對應的疊加描述子并保存,其中疊加描述子中含有業(yè)務應用標識信息;然后針對多個待疊加的業(yè)務應用的界面,按序依次遍歷其疊加描述子,并根據(jù)各疊加描述子的業(yè)務應用標識對各疊加描述子分別處理,從而生成疊加剪裁區(qū);最后在疊加剪裁區(qū)范圍將多個應用業(yè)務的界面與視頻疊加。本發(fā)明方法將界面疊加到視頻上,原理簡單,運算量低,可以處理同一圖層內(nèi)界面相互重疊的情況,并為當前應用和非當前應用的界面在視頻上產(chǎn)生不同的疊加效果。
文檔編號H04N5/445GK101388979SQ20071014744
公開日2009年3月18日 申請日期2007年9月14日 優(yōu)先權(quán)日2007年9月14日
發(fā)明者朱曉斌, 田智平, 董秀蘭 申請人:中興通訊股份有限公司