TWI495330B - 有效地串流數位視訊的系統及方法 - Google Patents
有效地串流數位視訊的系統及方法 Download PDFInfo
- Publication number
- TWI495330B TWI495330B TW100127456A TW100127456A TWI495330B TW I495330 B TWI495330 B TW I495330B TW 100127456 A TW100127456 A TW 100127456A TW 100127456 A TW100127456 A TW 100127456A TW I495330 B TWI495330 B TW I495330B
- Authority
- TW
- Taiwan
- Prior art keywords
- video
- frame
- device driver
- area
- stream
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2350/00—Solving problems of bandwidth in display systems
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Description
本發明係關於視訊處理之領域。特定言之,但並非作為限制,本發明揭示用於有效地串流數位視訊之技術。
本申請案根據35 U.S.C. §119指定主張2010年8月2日申請的且題為「有效地串流數位視訊的系統及方法(SYSTEM AND METHOD FOR EFFICIENTLY STREAMING DIGITAL VIDEO)」之美國臨時專利申請案第61,369,879號的優先權,該申請案以全文引用的方式併入本文中。
電腦系統被分派以經由網際網路及其他網路遞送不斷增加之量的視訊及其他媒體的任務。此增加部分地源於將視訊及其他媒體串流至使用者之線上網站的顯露及接受。然而,經由網路傳輸視訊及媒體資料可消耗大量網路頻寬且不利地影響網路效能。在串流視訊及媒體風行的情況下,變得難以在不需要極高頻寬通信頻道之情況下有效地串流視訊及媒體資料。
在諸圖式中,該等圖式未必按比例繪製,相似數字貫穿若干視圖描述實質上類似組件。具有不同字母字尾之相似數字表示實質上類似組件之不同例子。該等圖式作為實例而非作為限制大體上說明本文件中所論述之各種實施例。
以下詳細描述包括對形成[實施方式]之一部分之隨附圖式的參考。諸圖式根據實例實施例展示說明。足夠詳細地描述此等實施例(其在本文中亦被稱作「實例」)以使得熟習此項技術者能夠實踐本發明。熟習此項技術者顯而易見,實踐本發明不需要實例實施例中之特定細節。舉例而言,儘管主要參考精簡型用戶端系統揭示實例實施例,但本發明之教示可用於處理或串流數位視訊資訊之其他環境中。可組合實例實施例,可利用其他實施例,或可在不脫離所主張之範疇的情況下作出結構、邏輯及電改變。因此,以下詳細描述不應以限制性意義來理解,且藉由所附申請專利範圍及其等效者來定義範疇。
電腦系統
本發明係關於電腦系統。圖1說明呈電腦系統100之實例形式之機器的圖解表示,電腦系統100可用以實施本發明之部分。在電腦系統100內,存在指令集124,指令集124可經執行以用於使該機器執行本文中所論述之方法中的任何一或多者。在網路部署中,機器可作為主從式網路環境中之伺服器機器或用戶端機器操作,或作為同級間(或分散式)網路環境中之同級機器操作。該機器可為個人電腦(PC)、平板PC、機上盒(STB)、個人數位助理(PDA)、蜂巢式電話、網路器具、網路路由器、開關或橋接器,或能夠執行指定由彼機器採取之動作之一電腦指令集(順序地或以其他方式)的任何機器。此外,雖然僅說明單一機器,但術語「機器」亦應被理解為包括個別地或聯合地執行一指令集(或多個指令集)以執行本文中所論述之方法中之任何一或多者的機器之任何集合。
實例電腦系統100包括處理器102(例如,中央處理單元(CPU)、圖形處理單元(GPU),或中央處理單元(CPU)與圖形處理單元(GPU)兩者),及經由匯流排108而彼此通信之主記憶體104。電腦系統100可進一步包括驅動諸如液晶顯示器(LCD)或陰極射線管(CRT)之視訊顯示器系統115的視訊顯示器配接器110。電腦系統100亦包括:文數字輸入裝置112(例如,鍵盤)、游標控制裝置114(例如,滑鼠或軌跡球)、磁碟驅動單元116、信號產生裝置118(例如,揚聲器)及網路介面裝置120。
磁碟驅動單元116包括機器可讀媒體122,藉由本文中所描述之方法或功能中之任何一或多者體現或利用的電腦指令及資料結構(例如,亦被稱為「軟體」之指令124)之一或多個集合儲存於機器可讀媒體122上。指令124亦可在其由電腦系統100執行期間完全地或至少部分地駐留於主記憶體104內及/或處理器102內,主記憶體104及處理器102亦構成機器可讀媒體。
指令124可進一步經電腦網路126經由網路介面裝置120而傳輸或接收。此等傳輸可利用諸如熟知傳輸控制協定及網際網路協定(TCP/IP)、網際網路協定套件或檔案輸送協定(FTP)之若干熟知傳送協定中之任一者發生。
雖然機器可讀媒體122在實例實施例中經展示為單一媒體,但術語「機器可讀媒體」應被理解為包括儲存該一或多個指令集之單一媒體或多個媒體(例如,集中式或分散式資料庫,及/或相關聯之快取記憶體及伺服器)。術語「機器可讀媒體」亦應被理解為包括能夠進行以下操作之任何媒體:能夠儲存、編碼或載運用於供機器執行且使機器執行本文中所描述之方法中之任何一或多者的一指令集,或能夠儲存、編碼或載運供此指令集利用或與此指令集相關聯之資料結構。術語「機器可讀媒體」應相應地被理解為包括但不限於固態記憶體、光學媒體及磁性媒體。
為了達成此說明書之目的,術語「模組」包括程式碼、計算或可執行指令、資料或計算物件之可識別部分以達成特定功能、操作、處理或程序。模組無需以軟體來實施;模組可以軟體、硬體/電路或軟體與硬體之組合來實施。
終
端
系統之再現
在便宜的個人電腦到來之前,計算工業大量使用耦接至許多「啞」終端機之大型電腦或迷你電腦。此等終端機被稱作「啞」終端機,此係由於計算能力駐留於大型電腦或迷你電腦內且終端機僅顯示一輸出且接受文數字輸入。無使用者應用程式執行於終端系統內之處理器上。電腦操作員與多個個別使用者共用大型電腦,該等使用者各自使用耦接至大型電腦之終端機。此等終端系統大體上具有極其有限之圖形能力且大部分僅使文數字字元視覺化於終端機之顯示螢幕上。
隨著現代個人電腦系統之引入,啞終端及大型電腦之使用變得更不風行,此係由於個人電腦系統提供更具成本效益之解決方案。若需要將啞終端機之服務與基於舊式終端機之電腦系統介接,則個人電腦可容易地執行終端仿真應用程式,該終端仿真應用程式將允許個人電腦系統以極其類似於專用啞終端機之成本的成本仿真啞終端機之操作。
在個人電腦革命期間,個人電腦向個人電腦使用者引入高解析度圖形。相比於傳統唯文字顯示器而言,此等高解析度圖形考慮到更加直觀之電腦使用者介面。舉例而言,所有現代個人電腦作業系統提供使用在高解析度圖形中實施之多個不同視窗、圖示及下拉選單之使用者介面。此外,高解析度圖形考慮到使用像片、視訊及圖形影像之應用程式。
近年來,隨著人類重新發現基於終端機之電腦系統之優點中的一些優點,已將新一代終端系統引入至電腦市場中。舉例而言,電腦終端機考慮到較大安全性及減少之維護成本,此係由於電腦終端系統之使用者無法藉由下載或安裝新軟體而容易地引入電腦病毒。在基於終端機之電腦系統中,僅需要緊密監視主電腦伺服器系統。此新一代電腦終端系統包括個人電腦使用者已變得習慣之高解析度圖形能力、音訊輸出及游標控制系統(滑鼠、軌跡板、軌跡球等)輸入。因此,現代終端系統能夠提供個人電腦系統使用者預期之相同特徵。
現代的基於終端機之電腦系統允許在個別高解析度終端系統處之多個使用者共用單一個人電腦系統及安裝於彼單一個人電腦系統上的所有應用軟體。以此方式,現代高解析度終端系統能夠幾乎將個人電腦系統之全功能性遞送至每一終端系統使用者,而無針對每一使用者之個別個人電腦系統的成本及維護要求。
一類此等現代終端系統被稱為「精簡型用戶端」系統,此係由於該等終端系統經設計為極其簡單及有限的(因此為「精簡型」)且取決於用於應用程式處理活動之伺服器系統(因此其為彼伺服器系統之「用戶端」)。精簡型用戶端終端系統因此主要僅集中於將來自使用者之輸入傳達給集中式伺服器系統且將來自集中式伺服器系統之輸出顯示給終端使用者。注意,儘管將參考精簡型用戶端終端系統來揭示此文件所闡述之技術,但本文中所描述之技術可適用於串流或處理數位視訊之其他領域。舉例而言,需要有效地串流數位視訊資訊之任何系統可使用此文件中所揭示之教示。
圖2A說明精簡型用戶端環境之概念圖。參看圖2A,單一精簡型用戶端伺服器電腦系統220將電腦處理資源提供至許多精簡型用戶端終端系統240。在圖2A之實施例中,個別精簡型用戶端終端系統240中之每一者使用作為雙向通信頻道之區域網路230而耦接至精簡型用戶端伺服器電腦系統220。個別精簡型用戶端終端系統240跨越區域網路230將使用者輸入(諸如,鍵擊及滑鼠移動)傳輸至精簡型用戶端伺服器系統220,且精簡型用戶端伺服器系統220跨越區域網路230將輸出資訊(諸如,視訊及音訊)傳輸至個別精簡型用戶端終端系統240。
圖2B說明如描繪為一系列抽象層之精簡型用戶端伺服器電腦系統220之一實施例的階層圖。儘管未展示,但精簡型用戶端伺服器電腦系統220經由網路而連接至一(可能許多)精簡型用戶端終端系統240。當檢視為一系列抽象層時,精簡型用戶端伺服器電腦系統220包括:硬體層202、駐留於硬體層202上方且與硬體層202介接之核心層204、作業系統層206、駐留於作業系統層206上方之使用者空間層208,及駐留於使用者空間層208上方之應用程式層210。儘管單獨地展示,但核心204可為作業系統層206之核心組件。
可將作業系統206檢視為促進精簡型用戶端伺服器系統220之應用程式210與基礎硬體202之間的介接的一組軟體程式。核心204大體上被視為作業系統206之中心或核心組件。核心204之主要目的為:管理精簡型用戶端伺服器系統220之資源並允許其他程式執行及使用此等資源。核心204之任務中之若干任務可包括程序管理、記憶體管理及裝置管理。程序管理可包括核心204定義允許每一應用程式存取以便執行該應用程式的記憶體之一部分。記憶體管理可包括核心204調節對記憶體之存取且確定待供執行程序使用之記憶體的區域。裝置管理可包括核心204經由裝置驅動程式之使用控制對連接至電腦之裝置(諸如,周邊裝置)的存取。對應於應用程式之執行程序經由系統呼叫與核心204介接,其中該等程序試圖使用由核心提供之功能性及服務。
作業系統206通常所支援之一功能性為多媒體(例如,視訊)之處理及顯現。作業系統206促進應用程式與儲存於記憶體中以顯現及/或處理視訊資料之視訊裝置驅動程式212之間的介接。對於遠端桌面環境,虛擬裝置驅動程式可仿真圖形裝置驅動程式,以使得用戶端系統(未圖示)在存取實際圖形裝置驅動程式之幻覺下操作以顯現視訊資料。
作業系統之視訊顯現及處理能力之非限制性說明藉由Microsoft Windows作業系統來展示。Microsoft Windows作業系統提供用於處置多媒體任務之應用程式設計介面(API)的一集合。此等API通常被稱為Microsoft DirectX。處置多媒體播放及串流媒體的被稱為DirectShow之媒體子系統組件包括於DirectX中。DirectShow藉由將多媒體任務劃分成一序列處理步驟(被稱為篩選器驅動程式216)而操作。每一篩選器驅動程式216具有可用以將該篩選器驅動程式216連接至其他篩選器驅動程式216之輸入及/或輸出插腳。藉由建立所需之篩選器驅動程式的執行個體且接著將該等篩選器驅動程式連接在一起而建置篩選圖形,以處理視訊播放或視訊串流。用於視訊播放之樣本篩選圖形可實施一或多個功能,諸如檔案剖析、視訊及音訊解多工、視訊解碼及視訊顯現。在DirectShow之最基本層級下,DirectShow操作以自一檔案讀取視訊資料且將資料顯現為待置放於圖框緩衝器中之視訊圖框,圖框緩衝器為能夠儲存資料之完整圖框的記憶體緩衝器。DirectShow進一步支援用於解碼特定媒體檔案格式之有限數目個篩選器驅動程式。執行用於視訊播放或串流之DirectShow篩選圖形的結果可為一系列經解碼視訊圖框。依賴用於視訊播放之DirectShow的缺點為:僅通常經由網路而串流之視訊的一小百分比能夠使用DirectShow來處理。舉例而言,符合不同多媒體框架(諸如,Apple之QuickTime、Adobe之Flash及RealNetworks之RealVideo)之視訊可能不能夠藉由DirectShow來串流。
儘管上文參考Microsoft Windows作業系統描述作業系統之視訊顯現及處理能力,但本申請案之實施例可同等地解決處置多媒體任務的其他作業系統(諸如,Linux作業系統)之API的限制。舉例而言,本申請案之實施例可解決Linux作業系統(包括X11)所支援之X視窗系統(包括X11)的限制。在另一實例中,本申請案之實施例可解決各種伺服器所支援之X視訊擴展(XV)X伺服器API的限制。如同上文所描述之Microsoft Windows作業系統,Linux作業系統及支援XV API之伺服器亦可使用已連接之篩選器驅動程式之篩選圖形來處置多媒體任務,且因此亦可能遭受上文關於Windows作業系統所提及之相同限制及缺點。此外,用於處置多媒體任務之篩選圖形及篩選器驅動程式技術具有針對專屬及/或高效能計算產品之嚴格限制。
參看圖3,精簡型用戶端伺服器系統220可實施一替代路徑以用於將視訊串流至精簡型用戶端終端系統314。在精簡型用戶端伺服器系統220之作業系統中,可建立虛擬化裝置驅動程式以處置用於終端系統之不同輸入及輸出任務。一用以實施該替代路徑之虛擬裝置驅動程式可為控制視訊輸入及輸出之虛擬視訊裝置驅動程式(諸如,核心視訊驅動程式304)。在一些實施例中,視訊裝置驅動程式可為實體視訊裝置驅動程式。
虛擬視訊裝置驅動程式可緊接於核心中之相同層級上的視訊裝置驅動程式駐留。虛擬或實體視訊裝置驅動程式可包括視訊驅動程式引擎306及直接媒體引擎308。視訊驅動程式引擎306可處理圖形更新且將圖形更新傳遞至視訊槽輸送頻道310以用於傳輸至遠端用戶端314。圖形更新可包括待顯示於遠端用戶端314之顯示裝置上的位元映射圖形。直接媒體引擎308可處置不能夠藉由DirectShow處理之串流視訊且可經由媒體槽輸送頻道312發送串流視訊。視訊槽輸送頻道310及媒體槽輸送頻道312可為能夠將多種類型之經編碼視訊圖框發送至遠端用戶端的非相依於編碼格式之資料輸送多工頻道。在一些實施例中,視訊槽輸送頻道310為專用於諸如圖形更新之桌面表示資料的頻道。在一些實施例中,媒體槽輸送頻道312為專用於串流視訊或電影有關之桌面或視窗資料的頻道。舉例而言,媒體槽輸送頻道312可發送DirectShow視訊、以YUV色空間編碼之視訊(例如,全螢幕視訊)及經編碼視訊圖框(諸如,經JPEG編碼視訊圖框),而視訊槽輸送頻道310可傳輸對應於螢幕更新之RGB資料。
為了使效率最大化,核心視訊驅動程式304可充分利用由作業系統提供之現有視訊顯現系統。換言之,在一些實施例中,除了由作業系統提供之顯現系統之外,無顯現系統添加至精簡型用戶端伺服器系統220。另外,在一些實施例中,不需要特殊軟體或編碼解碼器。實情為,核心視訊驅動程式304利用作業系統之視訊顯現功能性及遠端用戶端314之解碼能力來處置串流媒體。
舉例而言,在涉及Windows作業系統之一些實施例中,為了處置視訊或圖形更新,Windows視訊驅動程式可存取被稱為SURFOBJ之物件或資料結構以獲得關於位元映射或裝置表面之資訊。在一些實施例中,Windows視訊驅動程式特別地存取SURFOBJ資料結構之iUniq參數以判定經更新之位元映射或裝置表面之區為視訊區域抑或捲動區域。iUniq參數可指定特定表面之當前狀態。每次表面改變時,iUniq參數之值便遞增。若經更新之區為捲動區域,則SURFOBJ iUniq參數可在時間上迅速地改變。
在一些實施例中,虛擬或實體視訊裝置驅動程式可檢查熟知應用程式以判定其是否為視訊圖框及篩選器圖框之來源。在一些實施例中,虛擬或實體視訊裝置驅動程式可基於一應用程式之名稱而判定該應用程式是否為視訊圖框及篩選器圖框之來源。基於該應用程式名稱,虛擬或實體視訊裝置驅動程式可判定該應用程式之視訊及圖形能力。舉例而言,虛擬或實體視訊裝置驅動程式可知道Explorer.exe為用於Windows Explorer檔案管理系統之可執行檔案且Explorer.exe決不串流視訊內容。在另一實例中,虛擬或實體視訊裝置驅動程式可知道Microsoft命令行解譯器Cmd.exe決不串流視訊內容。在另一實例中,虛擬或實體視訊裝置驅動程式可知道用於VLC媒體播放器之可執行檔案Vlc.exe決不捲動。此等應用程式之列表可由使用者及/或虛擬或實體顯示器驅動程式提供者來定義。
直接媒體引擎308藉由監視含有資料之視訊圖框之圖框緩衝器來處理串流視訊。若圖框緩衝器中之資料看似為移動視訊,則核心視訊驅動程式304複製該圖框緩衝器且將該複本發送至直接媒體引擎308。移動視訊之判定可能需要判定是否迅速地且有規則地更新螢幕之特定區。在一實例實施例中,螢幕區之迅速更新可包含每秒大於12次之更新。在一實例實施例中,螢幕之特定區的規則更新可包含查核螢幕之區以判定在至少半秒或半秒以上時間內是否發生圖框緩衝器更新。可在針對移動視訊監視圖框緩衝器時實施延遲,以補償錯誤串流判定問題。在特定環境中,直接媒體引擎308可能錯誤地判定視訊圖框中之運動指示移動視訊。錯誤判定之事故原因可為:應用程式視窗之快速捲動以致捲動模擬視訊。為了補償快速捲動,若應用程式具有捲軸,則可實施延遲以允許直接媒體引擎308判定視訊圖框中之運動是捲動之結果抑或實際視訊串流之結果。
返回參考核心視訊驅動程式304之操作,在一實例實施例中,複製圖框緩衝器之內容之一目的為:確保由直接媒體引擎308操作的視訊圖框之大小匹配圖框緩衝器之大小。就此而言,避免了在由直接媒體引擎308處理之後的對視訊圖框之額外後處理(例如,重新設定大小、修剪、移動)的需要,此係因為由直接媒體引擎308輸出之視訊圖框將匹配儲存於圖框緩衝器中之視訊圖框的大小。
直接媒體引擎308接收自圖框緩衝器複製之視訊圖框且根據遠端用戶端中之解碼器所支援的格式編碼該圖框。在一實例實施例中,直接媒體引擎308可以JPEG編碼格式編碼視訊圖框。所得經JPEG編碼視訊圖框可置放於視訊串流中以待經由媒體槽輸送頻道312而傳輸至用戶端。因此,直接媒體引擎308可輸出一系列經編碼視訊圖框以用於串流至遠端用戶端。在JPEG編碼器用以編碼視訊圖框之實例中,來自直接媒體引擎308之所得輸出可為簡單JPEG影像之串流。JPEG影像係經由媒體槽輸送頻道而發送至遠端用戶端。
直接媒體引擎308經進一步組態以傳輸發送至遠端用戶端的經編碼視訊圖框之集合當中的發信號圖框。發信號圖框可為特定色調或色彩之圖框,諸如藍色區塊圖框。發信號圖框可觸發用戶端裝置中之特定獨特屬性或動作。舉例而言,發信號圖框可通知遠端用戶端314對經編碼視訊圖框使用其自己的定標器。遠端用戶端314可接收諸如JPEG影像之經壓縮圖框,且可使用其定標器來增加所接收圖框之大小。一個可能的應用為使用發信號圖框及定標器來顯示全螢幕視訊。由於頻寬消耗問題,將全螢幕視訊自伺服器系統220傳輸至遠端用戶端314可能為不合需要的。因此,可壓縮全螢幕視訊圖框並將其與發信號圖框一起發送至遠端用戶端314,該發信號圖框通知遠端用戶端314使用其定標器來增加所接收圖框之大小以佔據全顯示螢幕。
在一實例實施例中,增強(理想上最大化)處理串流視訊之效率之目標的一部分導致直接媒體引擎308不對每個視訊圖框操作。舉例而言,可將能夠由作業系統所提供之現有顯現系統處理之串流視訊傳輸至用戶端,而不經由直接媒體引擎308來投送。在Microsoft Windows作業系統之狀況下,若串流視訊可由DirectShow媒體子系統處理,則不調用直接媒體引擎308。實情為,經由媒體槽輸送頻道312將視訊串流直接發送至遠端用戶端。另外,如藉由stretchblt
函數呼叫之存在指示的全螢幕視訊可與直接媒體引擎308分開來處置。詳言之,可藉由在YUV色空間中以特殊全螢幕模式編碼視訊來處理全螢幕視訊。另外,若含有移動視訊之視訊圖框之區小於預定大小,則可跳過該視訊圖框的編碼,且可將視訊圖框直接傳輸至遠端用戶端。用於繞過此視訊圖框之編碼之基本原理為:含有較小區之移動視訊的視訊圖框不會佔據網路上之過多頻寬且不需要用戶端側上的過度解碼或處理。在一實例實施例中,保證由直接媒體引擎308進行之處理的視訊圖框中之移動視訊的最小大小為320像素乘以240像素。移動視訊之最小大小無關於顯示視訊之顯示裝置的解析度。
因此,在一實例實施例中,直接媒體引擎308增強精簡型用戶端伺服器系統220進行以下操作之能力:在不使精簡型用戶端伺服器系統220負擔額外特殊軟體、視訊顯現器或編碼解碼器的情況下,處理串流視訊。此外,因為直接媒體引擎308對視訊圖框操作(每次一圖框),所以極少記憶體分配於伺服器上。
另外,由於供直接媒體引擎308使用以輸出一系列經編碼視訊圖框之編碼方案,故視訊及音訊同步問題得以最小化。每一經編碼視訊圖框將伴隨視訊資料之音訊資料囊封於該圖框中。與音訊及視訊同步有關之時序資訊亦藉由該圖框囊封。因此,視訊圖框將決不針對一個以上圖框非同步。本文中所揭示的用於串流視訊之替代路徑並不藉由所傳輸視訊圖框來提供時間或時戳資訊。另外,不提供關於開始及停止狀態之資訊。實情為,執行視訊播放之應用程式被分派以判定何時開始及停止視訊播放之任務。與此對比,串流視訊之其他系統可能需要使用獨特媒體播放器來判定開始及停止狀態。其他系統亦可依賴用戶端以重編單獨視訊及音訊資料串流。此情形可能易受更嚴重之同步問題。
儘管前述及後續實施例係關於虛擬視訊裝置驅動程式而描述,但本文中之揭示內容的全部內容可同等地適用於能夠自實體裝置有效地串流視訊之實體視訊裝置驅動程式。對虛擬視訊裝置驅動程式之參考在一些實施例中可關於遠端桌面作業階段。然而,本申請案中所揭示之技術可同等地應用於連接至電腦系統之遠端終端機的一對一或一對多環境中。
參看圖4,展示說明用於串流視訊資料之實例資料流的方塊圖。虛擬或實體視訊裝置驅動程式402可包括直接媒體引擎404及核心視訊驅動程式406。參看圖2B,就作業系統206與核心204隔離之程度而言,虛擬或實體視訊驅動程式402可駐留於作業系統抽象層級206或核心抽象層級204中。在一實例實施例中,虛擬或實體視訊裝置驅動程式402可操作及載入於虛擬或實體記憶體之核心空間中。虛擬或實體視訊裝置驅動程式402可結合視訊裝置驅動程式(未圖示)及結合由作業系統提供之任何視訊驅動程式或視訊處理子系統或機構而操作。如先前所註釋,虛擬或實體視訊裝置驅動程式402可結合Microsoft Windows作業系統、Linux作業系統及其他已知作業系統操作且由該等作業系統支援。
諸如精簡型用戶端終端系統240之用戶端裝置可請求應用程式之執行。在精簡型用戶端環境中,精簡型用戶端伺服器系統220可代表用戶端執行應用程式且接收來自終端系統240的用以與應用程式互動之各種輸入請求。該伺服器系統可處理該等請求且向使用者提供一輸出。該輸出可包括應用程式之圖形顯示。由於精簡型用戶端終端系統240在實例實施例中可能具有有限圖形處理能力,故伺服器系統可產生及處理待顯示於終端系統240之顯示螢幕上的圖形。圖形能力可與呈(例如)具備作業系統之裝置驅動程式及API形式的功能性一起由整合式圖形晶片組或單獨圖形卡來處置。舉例而言,在Microsoft Windows作業系統族中,使用圖形驅動程式介面(GDI)來繪製圖形物件以用於顯示。
如本文中所論述之實例實施例中所揭示,並非每種音訊格式能夠由Microsoft之DirectShow處理。因此,本文中所揭示之實例實施例論述提供用於處理及串流視訊資料之替代路徑的虛擬或實體視訊裝置驅動程式。當調用替代路徑時,作業系統(OS)GDI藉由繪圖操作(例如,經由OS直接GDI回叫介面436)呼叫虛擬或實體視訊裝置驅動程式402。在一實例實施例中,OS GDI針對每一繪圖操作呼叫虛擬或實體視訊裝置驅動程式402。回應於GDI呼叫,虛擬或實體視訊裝置驅動程式可呼叫位於直接媒體視訊驅動程式子系統404中之「直接媒體」快速更新區註冊器410,以向快速更新區註冊器410通知顯示螢幕之一些區已更新。回應於該通知,將已更新之顯示螢幕之區儲存於快速更新區資料庫412中。
可回應於發出至虛擬或實體視訊裝置驅動程式402且經由內部集區介面418所接收之輪詢呼叫而由直接媒體快速更新區分析器414來分析該等區。對顯示器之更新區的分析(如在一實例實施例中在一時刻由儲存於圖框緩衝器中之一視訊圖框表示的)可包含針對可能對應於用於移動視訊之更新區之區查核視訊圖框。可藉由以下各者來表示移動視訊:連續視訊圖框之快速改變速率、持續歷時預定時間之規則更新週期,及懷疑移動視訊之區的最小大小。在一實例實施例中,直接媒體快速更新區分析器414可尋找每秒12次之改變速率。在一實例實施例中,分析器414可尋找持續至少半秒之規則更新週期。另外,在一實例實施例中,分析器414可尋找至少320像素乘以240像素之移動視訊區。任何較小區可能不保證由虛擬或實體視訊裝置驅動程式402進行之處理,此係因為傳輸具有較小移動視訊區之視訊圖框的網路頻寬成本可能並非禁止的。
若分析器414在視訊圖框中發現含有移動視訊之區,則可將該(等)區標記為「串流」以指示該區含有串流視訊。接著排除由用以顯現視訊圖框之虛擬或實體視訊裝置驅動程式協定來處理標記為「串流」之區。可取決於虛擬或實體視訊裝置驅動程式協定是否使用對準而對準標記為「串流」之區。取決於用戶端裝置是否使用或辨識基色,具有標記為「串流」之區的視訊圖框亦可使其背景填充以基色(諸如,藍色)。
可經由媒體槽輸送介面420將由分析器分析之區資料儲存於媒體槽輸送緩衝器422中。可在緩衝器422中將區資料標記為「串流」以指示區資料含有串流視訊。媒體槽輸送-擷取器/壓縮器424可針對資料檢查緩衝器422。若資料存在於緩衝器422中,則擷取器/壓縮器424可根據壓縮協定壓縮資料。在一實例實施例中,擷取器/壓縮器424可使用JPEG影像格式壓縮區資料。擷取器/壓縮器424接著經由TCP/IP鏈路426或其他輸送協定鏈路將經壓縮資料發送至遠端用戶端。
若標記為「串流」之區或經更新區未能滿足供分析器414使用以識別串流視訊區之條件,則分析器可經由UXP引擎內部介面428將對應於此等區之資料傳輸至圖4中加標籤為UXP引擎之虛擬或實體視訊裝置驅動程式協定引擎430。由於此等區對應於視訊顯示螢幕資料而非串流視訊資料,故可再新此等區且經由TCP/IP鏈路434將此等區發送至遠端用戶端。
參看圖5,展示說明用於串流視訊資料之實例方法的流程圖。在操作502處,回應於來自諸如遠端用戶端314之精簡型用戶端終端系統之請求,應用程式可執行於精簡型用戶端伺服器系統220上。舉例而言,瀏覽器應用程式可執行於精簡型用戶端伺服器系統220上。該應用程式可存取視訊檔案且調用圖形顯示器驅動程式或虛擬或實體視訊裝置驅動程式304以顯現來自視訊檔案之視訊圖框。其間,含有直接媒體引擎308之虛擬或實體視訊裝置驅動程式304可駐留於作業系統中。
在操作504處,可置放對虛擬或實體視訊裝置驅動程式之輪詢呼叫以開始分析圖框緩衝器之內容。輪詢呼叫可與應用程式在伺服器系統中執行視訊播放同時發生。若圖框緩衝器之內容滿足用於移動視訊之指定條件(例如,快速及規則更新,至少最小像素大小),則可調用直接媒體引擎308以編碼儲存於圖框緩衝器中之視訊圖框的複本。
在操作506處,虛擬或實體視訊裝置驅動程式304可檢查圖框緩衝器之內容以判定新資料是否存在於圖框緩衝器中。若新資料存在於圖框緩衝器中,則建立圖框緩衝器之複本且將其發送至直接媒體引擎308。直接媒體引擎308根據用戶端系統所支援之預定編碼格式編碼視訊圖框。將經編碼視訊圖框發送至媒體槽輸送頻道312以用於經由TCP/IP或另一已知輸送協定傳輸至遠端用戶端。可將視訊圖框標記為已發送。在一實例實施例中,可同時執行操作502、504及506。
參看圖6,流程圖說明用於串流視訊資訊之實例方法。在操作602處,當GDI需要執行繪圖操作時,駐留於電腦系統(諸如,精簡型用戶端伺服器系統220)之作業系統或核心空間中之虛擬或實體視訊裝置驅動程式可接收作業系統圖形驅動程式介面(GDI)呼叫。在操作604處,虛擬或實體視訊裝置驅動程式可呼叫虛擬或實體視訊裝置驅動程式之直接媒體引擎子系統的直接媒體快速更新區註冊器。可由GDI呼叫或由虛擬或實體視訊裝置驅動程式來告知該註冊器圖框緩衝器中之區已更新。在操作606處,將據稱更新之區儲存於快速更新區資料庫中。
在操作608處,可藉由輪詢呼叫來呼叫直接媒體快速更新區分析器。在操作610處,分析器可查核所儲存之區資料以識別區資料是否含有串流視訊。可藉由識別是否迅速地(例如,每秒12次)及規則地(例如,歷時至少半秒之持續時間)更新區資料來作出此判定。進一步查核區資料以判定快速及規則更新之大小。若大小足夠大(例如,320像素乘以240像素),則判定該區含有應由直接媒體引擎子系統來處理之串流視訊。
在操作612處,若判定經分析之區資料含有串流視訊,則將該等區標記為「串流」以指示串流視訊之存在。在操作614處,排除由UXP引擎來處理標記為「串流」之區,UXP引擎執行內部虛擬或實體視訊裝置協定以用於顯現圖形。在操作616處,將標記為「串流」之區傳輸至媒體槽輸送緩衝器以用於儲存。在操作618處,媒體槽輸送壓縮器/擷取器可自媒體槽輸送緩衝器中擷取資料且使用預定壓縮方案壓縮區資料。可藉由識別遠端用戶端支援哪些方案將向誰發送顯示及圖形資料來判定壓縮方案。在一實例實施例中,可使用JPEG影像壓縮方案來壓縮區資料。在操作620處,可將經壓縮區資料發送至遠端用戶端。
若判定經分析之區資料不含有串流視訊,則在操作622處,可將區資料傳回至UXP引擎以用於顯現。在操作624處,可經由視訊槽輸送頻道將顯現之區資料傳輸至遠端用戶端以用於顯示。
前述技術揭示內容意欲為說明性的,而非限制性的。舉例而言,上文所描述之實施例(或其一或多個態樣)可彼此結合而使用。在審視上述描述後,熟習此項技術者便將顯而易見其他實施例。因此,應參考所附申請專利範圍來判定申請專利範圍之範疇,以及由此等申請專利範圍給予權利之等效物的全範疇。在所附申請專利範圍中,術語「包括(including)」及「其中(in which)」用作各別術語「包含(comprising)」及「其中(wherein)」之易懂英語的等效物。又,在以下申請專利範圍中,術語「包括」及「包含」為開端式,亦即,除包括請求項中之此術語之後所列元件之外亦包括其他元件的系統、裝置、物品或程序仍被視為屬於彼請求項之範疇內。此外,在以下申請專利範圍中,術語「第一」、「第二」及「第三」等僅用作標籤,而不意欲將數字要求強加於其物件上。
在此文件中,使用術語「一」(如同專利文件中常見的)以包括一個或一個以上。在此文件中,除非另外指示,否則術語「或」用以指代非排他性或,以使得「A或B」包括「A而非B」、「B而非A」及「A與B」。此外,此文件中所參考之所有公開案、專利及專利文件以全文引用的方式併入本文中,好像以引用之方式個別地併入本文中一般。若存在此文件與以引用之方式如此併入的彼等文件之間的不一致用法,則應將併入之參照案中之用法視為對此文件之用法的補充;對於不相容之不一致性,此文件中之用法佔支配地位。
提供[發明摘要]以遵守37 C.F.R. §1.72(b),[發明摘要]要求允許讀者迅速地確定本技術揭示內容之性質。在[發明摘要]將不用以解譯或限制申請專利範圍之範疇或意義之理解下提交[發明摘要]。又,在上述[實施方式]中,可能將各種特徵分群在一起以使本發明簡化並更有效率。不應將此情形解譯為意欲達成未主張之揭示特徵為任一請求項所必要的。實情為,本發明標的物可在於特定揭示實施例之少於全部之特徵。因此,以下申請專利範圍藉此併入至[實施方式]中,其中每一請求項堅持其自身作為一單獨實施例。
100...電腦系統
102...處理器
104...主記憶體
108...匯流排
110...視訊顯示器配接器
112...文數字輸入裝置
114...游標控制裝置
115...視訊顯示器系統
116...磁碟驅動單元
118...信號產生裝置
120...網路介面裝置
122...機器可讀媒體
124...指令集
126...電腦網路
202...硬體層
204...核心層
206...作業系統層
208...使用者空間層
210...應用程式層
212...視訊裝置驅動程式
216...篩選器驅動程式
220...精簡型用戶端伺服器電腦系統
230...區域網路
240...精簡型用戶端終端系統
297...伺服器網路軟體
304...核心視訊驅動程式
306...視訊驅動程式引擎
308...直接媒體引擎
310...視訊槽輸送頻道
312...媒體槽輸送頻道
314...精簡型用戶端終端系統
402...虛擬或實體視訊裝置驅動程式
404...直接媒體引擎/直接媒體視訊驅動程式子系統
406...核心視訊驅動程式
410...直接媒體快速更新區註冊器
412...快速更新區資料庫
414...直接媒體快速更新區分析器
418...內部集區介面
420...媒體槽輸送介面
422...媒體槽輸送緩衝器
424...媒體槽輸送-擷取器/壓縮器
426...傳輸控制協定及網際網路協定(TCP/IP)鏈路
428...UXP引擎內部介面
430...虛擬或實體視訊裝置驅動程式協定引擎
432...v空間視訊驅動程式(視訊槽)
434...傳輸控制協定及網際網路協定(TCP/IP)鏈路
436...作業系統(OS)直接圖形驅動程式介面(GDI)回叫介面
圖1說明呈電腦系統之實例形式之機器的圖解表示,在該電腦系統內可執行用於使機器執行本文中所論述之方法中之任何一或多者的指令集。
圖2A說明使用區域網路支援多個個別精簡型用戶端終端系統之實例單一精簡型用戶端伺服器電腦系統的高階方塊圖。
圖2B說明如描繪為一系列抽象層之精簡型用戶端伺服器電腦系統之一實施例的階層圖。
圖3說明經組態以串流視訊資訊之實例視訊裝置驅動程式的方塊圖。
圖4說明用於串流視訊資訊之實例方法的方塊圖。
圖5說明用於串流視訊資訊之實例方法的流程圖。
圖6說明用於串流視訊資訊之實例方法的流程圖。
402...虛擬或實體視訊裝置驅動程式
404...直接媒體引擎/直接媒體視訊驅動程式子系統
406...核心視訊驅動程式
410...直接媒體快速更新區註冊器
412...快速更新區資料庫
414...直接媒體快速更新區分析器
418...內部集區介面
420...媒體槽輸送介面
422...媒體槽輸送緩衝器
424...媒體槽輸送-擷取器/壓縮器
426...傳輸控制協定及網際網路協定(TCP/IP)鏈路
428...UXP引擎內部介面
430...虛擬或實體視訊裝置驅動程式協定引擎
432...v空間視訊驅動程式(視訊槽)
434...傳輸控制協定及網際網路協定(TCP/IP)鏈路
436...作業系統(OS)直接圖形驅動程式介面(GDI)回叫介面
Claims (19)
- 一種串流視訊(streaming video)資訊之方法,該方法包含:使用一視訊裝置驅動程式(driver)分析儲存於一圖框(frame)緩衝器中之視訊圖框以識別一視訊串流,其中該分析包含:識別經更新之該等視訊圖框之一區;識別該等視訊圖框之該更新之一持續時間;判定該等視訊圖框之該區之一大小(size),其中在以下情況下識別該視訊串流:該等視訊圖框之該區係以大於每秒一預定數目之次數更新;該等視訊圖框之更新之該持續時間大於一預定持續時間;該等視訊圖框之該區並非一捲動區域(scroll area);該等視訊圖框之該區並非一經判定不串流(not stream)視訊之應用程式之部分;及該等視訊圖框之該區之該大小大於一預定像素解析度大小;排除由該視訊裝置驅動程式顯現(rendered)一含有該視訊串流之視訊圖框;根據請求該視訊串流之一用戶端裝置(client device)所支援的一編碼格式編碼含有該視訊串流之該已排除視訊 圖框的一複本;及在一與編碼格式無關(encoding formate-independent)之傳輸頻道中將該經編碼視訊圖框傳輸至該用戶端裝置。
- 如請求項1之方法,其中該視訊裝置驅動程式為一虛擬視訊裝置驅動程式及一實體視訊裝置驅動程式中之一者。
- 如請求項1之方法,其進一步包含將該視訊裝置驅動程式插入於一作業系統記憶體中。
- 如請求項1之方法,其進一步包含標記含有該視訊串流之該視訊圖框以指示該視訊串流之一存在。
- 如請求項1之方法,其進一步包含顯現並不含有該視訊串流之該等視訊圖框之一子集。
- 如請求項1之方法,其中該編碼格式為JPEG。
- 如請求項1之方法,其進一步包含將一發信號圖框傳輸至該用戶端裝置,該發信號圖框包含一色彩區塊,該發信號圖框指示該用戶端裝置對該經編碼視訊圖框複本執行一預定操作。
- 如請求項7之方法,其中該預定操作包含按比例調整該經編碼視訊圖框複本之該大小。
- 一種用於串流視訊資訊之系統,其包含:至少一處理器;一第一記憶體,其經組態以儲存視訊圖框;一視訊裝置驅動程式,其由該至少一處理器來實施且經組態以分析該等視訊圖框以識別一視訊串流並排除具 有含有該視訊串流之一區的一視訊圖框,該視訊裝置驅動程式包含:一快速更新區註冊器(fast updataed regions registor),其經組態以註冊含有更新區之該等視訊圖框之一第二子集;一快速更新區資料庫,其經組態以儲存該等視訊圖框之該第二子集;及一快速更新區分析器,其經組態以分析該等視訊圖框之該所儲存之第二子集以識別含有該視訊串流的該視訊圖框,及經組態以分析該等視訊圖框之該所儲存之第二子集,其係藉由判定以一預定速率及持續時間更新的該等視訊圖框之該所儲存之第二子集的一預定大小的一區,藉由判定該等視訊圖框之該區並非一捲動區域,及藉由判定該等視訊圖框之該區並非一經判定不串流視訊之應用程式之部分;及一第一與編碼格式無關之一媒體輸送(media transport),其經組態以:編碼具有含有該視訊串流之該區之該已排除視訊圖框的一複本,該編碼對應於請求該視訊串流之一用戶端裝置所支援的一編碼格式;及將該經編碼視訊圖框複本傳輸至該用戶端裝置。
- 如請求項9之系統,其中該視訊裝置驅動程式為一虛擬視訊裝置驅動程式及一實體視訊裝置驅動程式中之一者。
- 如請求項9之系統,其中該處理器實施之視訊裝置驅動程式進一步包含一處理器實施之視訊驅動程式引擎,該處理器實施之視訊驅動程式引擎經組態以經由一非相依於編碼格式之視訊輸送接收圖形更新且將圖形更新輸出至該用戶端裝置。
- 如請求項9之系統,其中該編碼格式為JPEG。
- 如請求項9之系統,其中該處理器實施之視訊裝置驅動程式進一步包含經組態以將一發信號圖框輸出至該用戶端裝置的一直接媒體引擎,該發信號圖框包含一色彩區塊,該發信號圖框指導該用戶端裝置對該經編碼視訊圖框複本執行一預定操作。
- 如請求項9之系統,其中該預定操作包含按比例調整該經編碼視訊圖框複本之該大小。
- 一種儲存一指令集之非暫態電腦可讀儲存媒體,該指令集在由至少一處理器執行時使該至少一處理器執行包含以下操作之操作:使用一視訊裝置驅動程式分析儲存於一圖框緩衝器中之視訊圖框以識別一視訊串流,其中該分析包含:識別經更新之該等視訊圖框之一區;識別該等視訊圖框之該更新之一持續時間;判定該等視訊圖框之該區之一大小,其中在以下情況下識別該視訊串流:該等視訊圖框之該區係以大於每秒一預定數目之次數更新; 該等視訊圖框之更新之該持續時間大於一預定持續時間;該等視訊圖框之該區並非一捲動區域;該等視訊圖框之該區並非一經判定不串流視訊之應用程式之部分;及該等視訊圖框之該區之該大小大於一預定像素解析度大小;排除由該視訊裝置驅動程式顯現一含有該視訊串流之視訊圖框;根據請求該視訊串流之一用戶端裝置所支援的一編碼格式編碼含有該視訊串流之該視訊圖框的一複本;及在一與編碼格式無關之傳輸頻道中將該經編碼之每一視訊圖框傳輸至該用戶端裝置。
- 如請求項15之非暫態電腦可讀儲存媒體,其中該視訊裝置驅動程式為一虛擬視訊裝置驅動程式及一實體視訊裝置驅動程式中之一者。
- 如請求項15之非暫態電腦可讀儲存媒體,其進一步包含將該視訊裝置驅動程式插入於一作業系統記憶體中。
- 如請求項15之非暫態電腦可讀儲存媒體,其進一步包含:標記含有該視訊串流之該視訊圖框以指示該視訊串流之一存在;及顯現並不含有該視訊串流之該等視訊圖框之一子集。
- 如請求項15之非暫態電腦可讀儲存媒體,其中該編碼格式為JPEG。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US36987910P | 2010-08-02 | 2010-08-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201212632A TW201212632A (en) | 2012-03-16 |
TWI495330B true TWI495330B (zh) | 2015-08-01 |
Family
ID=45559789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100127456A TWI495330B (zh) | 2010-08-02 | 2011-08-02 | 有效地串流數位視訊的系統及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8799405B2 (zh) |
TW (1) | TWI495330B (zh) |
WO (1) | WO2012018786A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI495330B (zh) | 2010-08-02 | 2015-08-01 | Ncomputing Inc | 有效地串流數位視訊的系統及方法 |
US20120154678A1 (en) * | 2010-12-20 | 2012-06-21 | Kuo-Lung Chang | Receiving device, screen frame transmission system and method |
EP2692131A4 (en) * | 2011-03-29 | 2015-10-07 | Lyrical Labs LLC | SYSTEM AND METHOD FOR VIDEO ENCODING |
US9167020B2 (en) * | 2011-06-10 | 2015-10-20 | Microsoft Technology Licensing, Llc | Web-browser based desktop and application remoting solution |
CN103716691B (zh) * | 2012-09-29 | 2017-10-27 | 腾讯科技(深圳)有限公司 | 一种视频采集方法和装置 |
US9553925B2 (en) | 2014-02-21 | 2017-01-24 | Dell Products L.P. | Front-end high availability proxy |
US9936002B2 (en) * | 2014-02-21 | 2018-04-03 | Dell Products L.P. | Video compose function |
CN110351592B (zh) * | 2019-07-17 | 2021-09-10 | 深圳市蓝鲸数据科技有限公司 | 动画呈现方法、装置、计算机设备和存储介质 |
CN111447444A (zh) * | 2020-03-13 | 2020-07-24 | 西安万像电子科技有限公司 | 图像处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040228365A1 (en) * | 2003-05-01 | 2004-11-18 | Genesis Microchip Inc. | Minimizing buffer requirements in a digital video system |
US20090303156A1 (en) * | 2008-02-27 | 2009-12-10 | Subir Ghosh | System and method for low bandwidth display information transport |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5793980A (en) * | 1994-11-30 | 1998-08-11 | Realnetworks, Inc. | Audio-on-demand communication system |
US6278645B1 (en) * | 1997-04-11 | 2001-08-21 | 3Dlabs Inc., Ltd. | High speed video frame buffer |
GB2334860B (en) * | 1997-10-15 | 2002-08-21 | Sony Corp | Video data multiplexing device, video data multiplexing control method, encoded data stream multiplexing device and method and encoding device and method |
US8965898B2 (en) * | 1998-11-20 | 2015-02-24 | Intheplay, Inc. | Optimizations for live event, real-time, 3D object tracking |
US6496873B1 (en) * | 1999-05-21 | 2002-12-17 | International Business Machines Corporation | Real time device driver interface apparatus and method therefor |
US7339993B1 (en) * | 1999-10-01 | 2008-03-04 | Vidiator Enterprises Inc. | Methods for transforming streaming video data |
US7143432B1 (en) * | 1999-10-01 | 2006-11-28 | Vidiator Enterprises Inc. | System for transforming streaming video data |
FI109393B (fi) * | 2000-07-14 | 2002-07-15 | Nokia Corp | Menetelmä mediavirran enkoodaamiseksi skaalautuvasti, skaalautuva enkooderi ja päätelaite |
US7404001B2 (en) * | 2002-03-27 | 2008-07-22 | Ericsson Ab | Videophone and method for a video call |
US20040052258A1 (en) * | 2002-07-08 | 2004-03-18 | Clement Robertson | Method and system for prioritizing UTOPIA CLAV status polling |
US7359438B2 (en) * | 2002-11-27 | 2008-04-15 | Clifton Labs, Inc. | Optical communications imager |
US7792190B2 (en) * | 2004-09-09 | 2010-09-07 | Media Tek Singapore Pte Ltd. | Inserting a high resolution still image into a lower resolution video stream |
US8606949B2 (en) * | 2005-04-20 | 2013-12-10 | Jupiter Systems | Interconnection mechanism for multiple data streams |
US20060282855A1 (en) | 2005-05-05 | 2006-12-14 | Digital Display Innovations, Llc | Multiple remote display system |
US7725593B2 (en) * | 2005-07-15 | 2010-05-25 | Sony Corporation | Scalable video coding (SVC) file format |
US20070153713A1 (en) * | 2005-12-29 | 2007-07-05 | Akseli Anttila | Transmission of media content stream |
US7929599B2 (en) * | 2006-02-24 | 2011-04-19 | Microsoft Corporation | Accelerated video encoding |
EP2105019A2 (en) * | 2006-09-29 | 2009-09-30 | Avinity Systems B.V. | Method for streaming parallel user sessions, system and computer software |
US8233527B2 (en) * | 2007-05-11 | 2012-07-31 | Advanced Micro Devices, Inc. | Software video transcoder with GPU acceleration |
US7962640B2 (en) * | 2007-06-29 | 2011-06-14 | The Chinese University Of Hong Kong | Systems and methods for universal real-time media transcoding |
TWI495330B (zh) | 2010-08-02 | 2015-08-01 | Ncomputing Inc | 有效地串流數位視訊的系統及方法 |
KR101917174B1 (ko) * | 2012-02-24 | 2018-11-09 | 삼성전자주식회사 | 전자 장치 사이의 스트림 전송 방법 및 그 방법을 처리하는 전자 장치 |
-
2011
- 2011-08-02 TW TW100127456A patent/TWI495330B/zh not_active IP Right Cessation
- 2011-08-02 WO PCT/US2011/046227 patent/WO2012018786A1/en active Application Filing
- 2011-08-02 US US13/196,143 patent/US8799405B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040228365A1 (en) * | 2003-05-01 | 2004-11-18 | Genesis Microchip Inc. | Minimizing buffer requirements in a digital video system |
US20090303156A1 (en) * | 2008-02-27 | 2009-12-10 | Subir Ghosh | System and method for low bandwidth display information transport |
Also Published As
Publication number | Publication date |
---|---|
TW201212632A (en) | 2012-03-16 |
WO2012018786A1 (en) | 2012-02-09 |
US8799405B2 (en) | 2014-08-05 |
US20120143983A1 (en) | 2012-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI495330B (zh) | 有效地串流數位視訊的系統及方法 | |
US10721282B2 (en) | Media acceleration for virtual computing services | |
JP5451397B2 (ja) | リモートインターラクションに応答してビデオコンテンツを配信するためのアーキテクチャー | |
KR101413130B1 (ko) | 상태기반 브라우징 | |
US7899864B2 (en) | Multi-user terminal services accelerator | |
US8166107B2 (en) | Measuring client interactive performance using a display channel | |
US8112513B2 (en) | Multi-user display proxy server | |
US11537777B2 (en) | Server for providing a graphical user interface to a client and a client | |
TWI521939B (zh) | 用於低頻寬顯示資訊傳輸之系統及方法 | |
US9426476B2 (en) | Video stream | |
US20140285502A1 (en) | Gpu and encoding apparatus for virtual machine environments | |
US20140074911A1 (en) | Method and apparatus for managing multi-session | |
WO2022096017A1 (zh) | 内容显示方法及装置 | |
CN110968395B (zh) | 一种在模拟器中处理渲染指令的方法及移动终端 | |
US20120218292A1 (en) | System and method for multistage optimized jpeg output | |
CN114302176A (zh) | 视频播放方法及装置 | |
US20120300127A1 (en) | System for managing detection of advertisements in an electronic device, for example in a digital tv decoder | |
KR101630638B1 (ko) | 화면 가상화 기반 어플리케이션 실행 시스템 및 방법 | |
CN115297357A (zh) | 跨系统投屏方法、装置以及系统 | |
EP1821490A1 (en) | Method for transmitting graphical data to a thin client |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |