TWI527445B - 於x視窗系統上顯示硬體加速之視頻的技術 - Google Patents

於x視窗系統上顯示硬體加速之視頻的技術 Download PDF

Info

Publication number
TWI527445B
TWI527445B TW101118004A TW101118004A TWI527445B TW I527445 B TWI527445 B TW I527445B TW 101118004 A TW101118004 A TW 101118004A TW 101118004 A TW101118004 A TW 101118004A TW I527445 B TWI527445 B TW I527445B
Authority
TW
Taiwan
Prior art keywords
video
plane
window
transparency
area
Prior art date
Application number
TW101118004A
Other languages
English (en)
Other versions
TW201316754A (zh
Inventor
趙娟
托瑪斯 福卓奇
龍瑞
謝丹銘
Original Assignee
英特爾股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from PCT/CN2011/001660 external-priority patent/WO2013044417A1/en
Application filed by 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201316754A publication Critical patent/TW201316754A/zh
Application granted granted Critical
Publication of TWI527445B publication Critical patent/TWI527445B/zh

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/022Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed using memory planes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/026Control of mixing and/or overlay of colours in general
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Description

於X視窗系統上顯示硬體加速之視頻的技術
本發明係大致有關控制電腦系統中之資訊之顯示的視訊顯示控制器。
在某些嵌入式系統中,為了得到較佳的效能而使用一個以上的平面。視訊及視窗系統在個別的平面上運行。因此,使用者需要穿過一平面才能看到下層的視訊。例如,對於硬體加速的Flash/HTML5播放而言,係在後平面上繪製視訊。一般而言,需要將視訊複製到現行平面。但是該操作在迅速地改變視訊框時是高成本的。
請參閱第1圖,在一實施例中,一電腦系統可以是諸如機上盒、行動網際網路裝置、行動電話、平板電腦、簡易筆記本電腦、膝上型電腦、個人電腦、或藍光光碟播放器(只舉一些例子)等的一嵌入式或非嵌入式系統。
在某些實施例中,可利用一X視窗系統。該X視窗系統可提供用於連網電腦之圖形使用者介面。可使用一般化命令集撰寫軟體,因而可在其他的X視窗系統電腦上重複使用各程式。該X視窗系統遵循一修改的主從式模型,其中X伺服器與用戶端層級的程式通訊。此外,該X視窗系統將顯示及/或輸入/輸出服務提供給應用程式。一 視窗管理器控制應用程式視窗的構成。X.ORG是X視窗系統之一實施例。請參閱由X.ORG基金會(X.ORG Foundation)提供的X11R7.6(Dec.20,2010)。可在一瀏覽器以及各種類型的媒體中心用戶端軟體中支援Flash及HTML5視訊。然而,最好是可在X視窗系統上顯示硬體加速視訊。
根據一實施例,可以在不需要將視訊自一後平面複製到現行平面之情形下,在X視窗系統上顯示硬體加速視訊。通常是在具有指定原點及尺寸之較低平面上繪製該視訊。在較高平面上,繪製X桌面及視窗。具體而言,用於視訊播放之視窗需要將視訊之原點及尺寸告知視訊繪製器。因此,最好是在視窗的框緩衝器上切一個洞,以便能夠看到視訊。
X視窗系統不支援多個平面的情況。"平面"("plane")是一種可自記憶體緩衝器讀取像素資料且對該像素資料執行轉換之硬體單元。圖形及視訊都可被輸出到各平面。硬體加速視訊處理管線可直接繪製到一平面。在一硬體混合器中將多個平面混合。不同的平面可具有不同的能力,且可支援不同的像素格式。一般而言,將需要平面灰階透明度(level transparency),以便支援X視窗系統中之硬體加速視訊。
X伺服器的確在ARGB_32格式平面上運行。ARGB_32也被稱為使用RGB彩色模型之紅綠藍阿爾法通道32位元(Red Green Blue Alpha 32 bit)。在該格式平 面中,可將一阿爾法通道(alpha channel)用來實現平面灰階透明度。然而,X伺服器在預設上並不處理阿爾法通道。
另一問題在於:X視窗系統上的每一物件對桌面都是透明的。因此,縱使產生了一32位元視窗,阿爾法通道也被用於視窗合成,因而所有的視窗最後將與桌面混合。該視窗管理器的預設行為是:將所有的視窗與背景混合,不論該視訊是否為透明的都是如此。背景永遠是不透明的,因而沒有平面灰階透明度。
因此,這些問題的解決方案可涉及:界定所有X系統元件之阿爾法混合(alpha blending),而使用ARGB_32格式。一般而言,滑鼠游標沒有例外,且預設的Xfont游標不界定一阿爾法值,而使滑鼠游標區域是透明的。可以一不透明的游標主題取代該透明的滑鼠游標,而克服該問題。
首先,將一視窗管理器用來管理阿爾法通道。例如,可在X.ORG中啟用ARGB_32平面。然而,半透明之行為係取決於X應用程式是否使用32位元像素格式以及該視窗管理器如何合成該等視窗。
如果正在執行一複合視窗管理器,則該視窗管理器重新計算該視窗之阿爾法值,且以1.0取代該阿爾法值,因而不論該視窗具有的阿爾法值為何,都將導致一不透明的繪製。因此,該視窗管理器將所有的24位元視窗視為完全不透明的視窗,此即意指該等視窗之阿爾法值是255。 對於32位元視窗而言,需要將該等視窗中之某些視窗與桌面混合,且需要將該等視窗中之某些視窗與較低平面混合。在含有硬體加速視訊的視窗之情形中,一複合視窗管理器可保留上層視窗之阿爾法通道,以便使該平面為透明的。
此外,可增強該複合視窗管理器,而支援平面灰階透明度。一種類型的平面灰階透明度是每一像素透明度,此即意指每一像素可以有其本身的值。另一種類型的平面灰階透明度是強制透明(forced transparency),其中一長方形中之每一像素有一零或透明阿爾法值。
對於X用戶端應用程式而言,該視窗管理器提供用來與該視窗管理器通訊之建議。該等X應用程式使用視窗管理器建議而將其預期之行為、每一像素透明度或強制透明、以及該視窗的哪一區域將是透明的訊息告知該視窗管理器。
最後,使用游標主題,使游標有一非零阿爾法值,而使該視窗將是可看見的。
使用每一像素透明度時,可使目標區域的視訊看起來是半透明的。阿爾法值可根據被繪製到該目標區域的視窗之阿爾法值而在零至255之間變動。可在一32位元視窗中繪製該等內容。該視窗中之阿爾法值被用來與視訊混合。一種典型的應用是:視訊播放器在視訊上繪製某些透明的控制按鈕。
在強制透明中,X平面中之目標區域對視訊平面是透 明的。不理會該區域中之所有內容,且將零阿爾法值指定給所有內容。因此,看起來是該X平面中有一個洞。
請參閱第1圖,可以隨機存取記憶體(Random Access Memory;簡稱RAM)實施一框緩衝器12。該框緩衝器12可與一系統匯流排16通訊,該系統匯流排16可包含多個平面,其中包括一些色指數-阿爾法值平面(Index-Alpha Plane;簡稱IAP)22以及一些通用像素平面(Universal Pixel Plane;簡稱UPP)24。該系統匯流排可與一視訊顯示控制器18通訊,該視訊顯示控制器18包含一硬體混合器26及管線28。
在一實施例中,一專用媒體處理器實施硬體加速視訊。該顯示控制器提供用於視訊顯示器之一輸出20。該視訊顯示器可以是一監視器、一電視螢幕、或一觸控式螢幕(只舉一些例子)。
該應用程式也將在何處實施平面灰階透明度之訊息告知該視窗管理器。在一實施例中,有兩種選擇,也就是完整視窗、或視窗中之被稱為一裁剪區域的某一長方形區域,其中該裁剪區域是透明的。在一完整視窗中,整個視窗除了一裝飾區域之外都是透明的。可以係為寬度及高度之x及y座標界定該裁剪區域。在一實施例中,該等x,y座標可被參照到該視窗之左上座標。
請參閱第2圖,圖中示出根據一實施例的一多個平面視訊之平面。在第2a圖中,示出了含有視訊30之平面。視訊通常是在兩個平面中之一較低平面上。第2b圖所示 之一較高平面被用於X應用程式之螢幕32。然後,在第2c圖中,在一較高平面中提供了一繪製視窗34。在第2d圖中,於繪製視窗34中形成了一裁剪區域或視窗36。最後,如第2e圖所示,示出了裁剪區域36、繪製視窗34、及螢幕32之堆疊,因而裁剪區域36可讓下層視訊30被觀看。
請參閱第3圖,可使用硬體、軟體、及/或韌體實施用來在X視窗系統中實施硬體加速視訊的一序列的一實施例之一流程圖。在軟體實施例中,可將一序列的指令儲存在諸如光學、磁性、或半導體記憶體等的一非暫時性電腦可讀取的媒體。在一實施例中,可將該指令的序列儲存在第1圖所示之視訊顯示控制器18內。然而,亦可將該等指令儲存在其他位置。在某些實施例中,混合器26是自該系統的中央處理單元卸載混合工作之一處理器。
如方塊40所示,游標主題將游標設定為不透明的,使該游標可被看見。
然後,如方塊42所示,視窗管理器可取得裁剪區域之位置及尺寸。一般而言,X應用程式控制要在何處實施平面灰階透明度,且指示要利用完整視窗或裁剪區域。然後,在方塊44中,繪製該裁剪區域,以便經由強制透明而可使該裁剪區域為透明的,或使用每一像素半透明。在此種情形中,該視窗管理器支援平面灰階透明度,且實施每一像素半透明或強制透明。然後,在方塊46中,實際地繪製該視窗。
在並非限制之情形下,說明了使用MeeGo電視之一實施例。MeeGo是一種基於Linux的開放原始碼行動裝置作業系統。請參閱meego.com於2011年四月提供的釋出版本1.1.4/7。可強化MeeGo縱向區隔中之複合視窗管理器Mutter,以便支援多個平面。Mutter是被稱為Clutter的Metacitygraphics程式庫的視窗管理器之簡短形式。請參閱git.gnome.org/browse/mutter網站上的GNOME GIT原始碼儲存庫。其為一作業系統的最上層上運行的GNU網路物件模型環境(GNU Network Object Model Environment;簡稱GNOME3)圖形使用者介面之預設視窗管理器。請參閱gnome.org上提供之GNOME3。Mutter係基於圖形程式庫Clutter,且亦由Clutter支援OpenGL。可以外掛程式(plug-in)延伸Mutter。
當外掛程式mutter MeeGotelevision接收到該繪製信號時,該外掛程式在X.ORG的平面中裁剪出視訊區域。透明行為肇因於在繪製目標視窗之前或之後的一清除操作。"清除"意指將零阿爾法值繪製到將與較低平面混合的該目標區域。先清除及後清除將導致不同的透明效果。
Mutter告知應用程式將視窗重定向到像素圖,且使用來自像素圖技術的一紋理(texture)將該等視窗轉換為紋理。該mutter外掛程式使用其接收到的建議而將該裁剪區域與紋理混合。
在較低平面中,於適當的位置上繪製視訊框,以供硬體混合。在較高平面中,桌面及某些其他視窗可能已被繪 製。然後繪製含有視訊播放器之視窗。
在執行繪製工作之前,先清除,以便實現每一像素半透明。在先清除時,業已繪製了一桌面背景及某些視窗。以零阿爾法值清除目標區域,然後繪製該視窗。現行視窗的值被完全保留。如果該值有半透明阿爾法值,則也保留該值。
如果在繪製之後進行清除,則桌面背景及某些視窗業已被繪製。此時先繪製該視窗。然後將該視窗與桌面中之其他視窗混合。然後,以零阿爾法值零清除目標的某些區域,因而那些區域將是透明的。
可利用傳統的應用程式撰寫多個平面應用程式。如果該等應用程式並未設定建議,則視窗管理器採取預設的行為。24位元視窗是不透明的,且32位元視窗是具有X元件但不具有較低平面之複合視窗。對於多個平面應用程式而言,可指定一裁剪區域,或者全螢幕可以是透明的。此外,該等應用程式將正在使用每一像素半透明或強制透明之訊息告知該視窗管理器。最後,應供應游標主題,以便支援不透明的游標。因而下文中提供了一建議的一例子。
該圖表示出了四種建議之一組合。第一行指定一裁剪區域。不理會該圖表的第二及第四列中之裁剪區域,這是因為界定了全螢幕。第二行界定該裁剪區域是否為每一像素半透明,且第三行界定平面灰階透明度是否將適用於全螢幕。下列程式碼可被用於Xlib應用程式而設定該等建議。
property=XinternAtom(dpy“_MUTTER_HINTS”,0), data=“meego-tv-cutout-x=140:meego-tv-cutout-y=40:meego-tv- cutout=width=100:meego-tv-cutout- height=100:meego-tv-half-trans-0:meego-tv-full-window=0”; XChangeProperty(dpy,win,property,XA_STRING,8,PropMadeReplace,(unsigned char *)data,strlen(data));
重點將是:界定用於強制透明及每一像素半透明之目標區域,且於使用每一像素半透明時繪製阿爾法值。因此,直接重繪阿爾法值。舉例而言,可由OpenGL(請參閱由OpenGL.org提供之OpenGL 4.1)或X.ORG之X繪製器延伸處理該重繪操作。
可以各種硬體架構實施本發明述及的該等圖形處理技術。例如,可將圖形功能整合在一晶片組內。在替代實施例中,可使用一分立式圖形處理器。作為又一實施例,可以其中包括多核心處理器之一般用途處理器實施該等圖形功能。
在本說明書中提及"一個實施例"或"一實施"時,意指參照該實施例而述及的一特定特徵、結構、或特性被包含在本發明內包含的至少一實施例中。因此,出現詞語"一實施"或"在一實施例中"時,不必然都參照到相同的實施例。此外,可以所示特定實施例以外的其他適當形式實施該等特定特徵、結構、或特性,且本申請案之申請專利範圍內可包含所有此類形式。
雖然已以與有限數目的實施例有關之方式說明了本發明,但是熟悉此項技術者將可了解本發明的許多修改及變化。後附的申請專利範圍將涵蓋在本發明的真實精神及範圍內之所有此類修改及變化。
12‧‧‧框緩衝器
16‧‧‧系統匯流排
22‧‧‧色指數-阿爾法值平面
24‧‧‧通用像素平面
18‧‧‧視訊顯示控制器
26‧‧‧混合器
28‧‧‧管線
20‧‧‧輸出
30‧‧‧視訊
32‧‧‧螢幕
34‧‧‧繪製視窗
36‧‧‧裁剪區域
第1圖是本發明的一實施例之一示意圖; 第2a-2e圖示出在一多個平面硬體加速視訊系統的一實施例中之各平面的堆疊;以及第3圖是本發明的一實施例之一流程圖。
12‧‧‧框緩衝器
16‧‧‧系統匯流排
22‧‧‧色指數-阿爾法值平面
24‧‧‧通用像素平面
18‧‧‧視訊顯示控制器
26‧‧‧混合器
28‧‧‧管線
20‧‧‧輸出

Claims (8)

  1. 一種用以顯示硬體加速之視頻的方法,包含:實施能夠在X視窗系統中啟用硬體加速視訊之多個平面;指定使用平面灰階透明度之一區域;將平面灰階透明度應用於一裁剪區域;在一較低平面中播放一視訊,可經由該裁剪區域而看見該視訊;及使用該較低平面之上的一第二平面作為一X應用程式之螢幕。
  2. 如申請專利範圍第1項之方法,包含:提供該第二平面之上的一繪製視窗。
  3. 如申請專利範圍第2項之方法,包含:提供該第繪製視窗之上的一裁剪區域。
  4. 如申請專利範圍第1項之方法,包含:將一游標設定為不透明的。
  5. 如申請專利範圍第1項之方法,包含:使視訊可經由一平面的一透明區域而被看見。
  6. 一種儲存指令的非暫時性電腦可讀取之媒體,該等指令被一電腦執行時將執行一序列,包含:實施能夠在X視窗系統中啟用硬體加速視訊之多個平面;指定使用平面灰階透明度之一區域;將平面灰階透明度應用於一裁剪區域; 在一較低平面中播放一視訊,可經由該裁剪區域而看見該視訊;及使用該較低平面之上的一第二平面作為一X應用程式之螢幕。
  7. 如申請專利範圍第6項之媒體,儲存了用來執行一序列之指令,包含:提供該第二平面之上的一繪製視窗。
  8. 一種X視窗系統,包含:用來加速該系統上的視訊之多個平面;被耦合到該等平面之一記憶體緩衝器;以及一處理器,用以:指定使用平面灰階透明度之一區域;在一平面中播放一視訊,且可經由另一平面中之一透明區域而看見該視訊;將一游標設定為不透明的;及使用強制透明或每一像素透明而形成該透明區域。
TW101118004A 2011-05-24 2012-05-21 於x視窗系統上顯示硬體加速之視頻的技術 TWI527445B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161489337P 2011-05-24 2011-05-24
PCT/CN2011/001660 WO2013044417A1 (en) 2011-09-30 2011-09-30 Displaying hardware accelerated video on x window systems

Publications (2)

Publication Number Publication Date
TW201316754A TW201316754A (zh) 2013-04-16
TWI527445B true TWI527445B (zh) 2016-03-21

Family

ID=48803192

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101118004A TWI527445B (zh) 2011-05-24 2012-05-21 於x視窗系統上顯示硬體加速之視頻的技術

Country Status (2)

Country Link
US (1) US20150310833A1 (zh)
TW (1) TWI527445B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9449585B2 (en) * 2013-11-15 2016-09-20 Ncomputing, Inc. Systems and methods for compositing a display image from display planes using enhanced blending hardware
GB201410314D0 (en) * 2014-06-10 2014-07-23 Advanced Risc Mach Ltd Display controller
CN107025100A (zh) 2016-02-01 2017-08-08 阿里巴巴集团控股有限公司 播放多媒体数据的方法、界面渲染方法及装置、设备
CN108205398B (zh) * 2016-12-16 2021-06-11 腾讯科技(深圳)有限公司 网页动画适配屏幕的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278645B1 (en) * 1997-04-11 2001-08-21 3Dlabs Inc., Ltd. High speed video frame buffer
US8358314B2 (en) * 2008-02-08 2013-01-22 Apple Inc. Method for reducing framebuffer memory accesses
US8159505B2 (en) * 2008-10-01 2012-04-17 Ati Technologies Ulc System and method for efficient digital video composition

Also Published As

Publication number Publication date
TW201316754A (zh) 2013-04-16
US20150310833A1 (en) 2015-10-29

Similar Documents

Publication Publication Date Title
JP6062438B2 (ja) タイル単位レンダラーを用いてレイヤリングするシステムおよび方法
US9373308B2 (en) Multi-viewport display of multi-resolution hierarchical image
JP5763195B2 (ja) ディスプレイ上でのピクセルレンダリング
EP2245598B1 (en) Multi-buffer support for off-screen surfaces in a graphics processing system
US20120246554A1 (en) Performing binary composition of images onto an html canvas element
CN110989878B (zh) 小程序中的动画展示方法、装置、电子设备及存储介质
AU2013225479B2 (en) Application display method and terminal
CN105518742A (zh) 用于图形处理的任意控制点处的容错抢占机制
US9235911B2 (en) Rendering an image on a display screen
KR20160120343A (ko) 크로스 플랫폼 렌더링 엔진
US20110193858A1 (en) Method for displaying images using an electronic device
TWI527445B (zh) 於x視窗系統上顯示硬體加速之視頻的技術
KR102499397B1 (ko) 그래픽스 파이프라인을 수행하는 방법 및 장치
CN112541960A (zh) 三维场景的渲染方法、装置及电子设备
CN116821040B (zh) 基于gpu直接存储器访问的显示加速方法、装置及介质
CN107077375A (zh) 用于多操作系统的显示方法、装置和电子设备
US20170192731A1 (en) Control redistribution among multiple devices
CN102147923B (zh) 一种动画图像的遮挡显示方法
KR102174264B1 (ko) 그림자 렌더링 방법 및 그림자 렌더링 장치
WO2013044417A1 (en) Displaying hardware accelerated video on x window systems
CN105700887A (zh) 一种基于Directx11视口的内容共享系统及方法
CN112700519A (zh) 动画展示方法、装置、电子设备及计算机可读存储介质
CN109214977B (zh) 图像处理装置及其控制方法
CN112740278A (zh) 混合邻近分格
JP7352032B2 (ja) 動画生成方法、装置、電子デバイス及びコンピュータ読取可能記憶媒体

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees