两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

對視頻流進行解碼顯示的方法及設備的制作方法

文檔序號:7988119閱讀:276來源:國知局
對視頻流進行解碼顯示的方法及設備的制作方法
【專利摘要】本發(fā)明公開了對視頻流進行解碼顯示的方法及設備,其中,該方法包括:客戶端進程單元接收解碼指令,判斷與客戶端進程單元連接的至少一個解碼顯示進程單元是否存在具有空閑的解碼資源,如果是,則將視頻碼流傳送給具有空閑解碼資源的解碼顯示進程單元;否則,客戶端進程單元啟動一個新的解碼顯示進程單元,將視頻碼流傳送給新啟動的解碼顯示進程單元;解碼顯示進程單元接收視頻碼流,由空閑的解碼資源對視頻碼流進行解碼后顯示。本發(fā)明方案能夠提高對視頻碼流進行解碼顯示的效率。
【專利說明】對視頻流進行解碼顯示的方法及設備
【技術領域】
[0001]本發(fā)明涉及解碼技術,尤其涉及對視頻流進行解碼顯示的方法及設備。
【背景技術】
[0002]目前,多采用單進程方式對視頻流進行解碼顯示,解碼和顯示功能與客戶端功能在一個進程中執(zhí)行;客戶端進程單元既完成客戶端功能,也進行解碼和顯示。
[0003]現(xiàn)有技術中,客戶端進程單元接收用戶通過視頻解碼界面輸入的解碼指令,查詢本單元是否有空閑的解碼資源,如果是,則將視頻碼流傳送給空閑的解碼資源,解碼資源對接收的視頻碼流進行解碼后顯示;如果沒有,則解碼失敗,通過視頻解碼界面向用戶反饋失敗響應。
[0004]對于某指定的操作系統(tǒng),其虛擬內存一部分被內核空間占用;另一部分被用戶空間占用,也就是用于應用程序,且每個進程使用的最大虛擬空間容量為用戶占用的空間容量。對應于本發(fā)明方案,用戶占用的虛擬空間也就是解碼顯示可用的最大虛擬內存空間,在需要進行解碼顯示的情況下,如果判斷出這部分虛擬空間用完,則解碼失敗,降低了解碼顯示的效率。
[0005]以32位操作系統(tǒng)為例,操作系統(tǒng)分配了 4GB的虛擬內存,其中2GB被內核空間占用,2GB被用戶空間占用,應用程序可使用的虛擬內存只有2GB,也就是最大只有2GB用于對視頻流的解碼顯示,這意味著客戶端的其他功能和解碼顯示功能必須共同使用這部分虛擬內存資源,客戶端的其他功能包括界面顯示功能、與用戶的交互功能等。由于計算機的特點,應用程序通常真正能夠使用的虛擬內存遠未達到2GB?,F(xiàn)有的客戶端進程單元包含多個解碼資源,每個解碼資源可進行一路視頻碼流的解碼顯示,一路視頻碼流的解碼顯示過程可能會占用大量的虛擬內存,虛擬內存使用量主要根據(jù)視頻圖像的大小和設置的視頻流暢程度而定。以視頻監(jiān)控為例,視頻數(shù)據(jù)解碼顯示設備需要將來自多路監(jiān)控設備的視頻流進行同時解碼顯示;由于可使用的虛擬內存最大容量有限,這導致了客戶端進程單元同時解碼顯示的路數(shù)受到很大的限制;對于高清IOSOp以上的分辨率碼流,路數(shù)限制會更加明顯,具體表現(xiàn)在一個客戶端可能同時只能看到幾個高清畫面;對于目前H.264碼流的倒放功能,其占用更多的虛擬內存資源,在單進程解碼中,一個客戶端最多只能倒放兩路高清碼流。解碼顯示占用的虛擬內存過多時也會影響到客戶端的其他功能的正常使用。對于單進程解碼顯示的客戶端來說, 如果要解決虛擬內存限制就需要使用64位的操作系統(tǒng)。而使用64位的操作系統(tǒng)對于產品的管理和維護需要付出更大的成本,因此,較少地采用增加虛擬內存的方式。
[0006]綜上,現(xiàn)有對視頻流進行單進程解碼顯示的方案,存在效率低的缺陷。

【發(fā)明內容】

[0007]本發(fā)明提供了一種對視頻流進行解碼顯示的方法,該方法能夠提高對視頻碼流進行解碼顯示的效率。[0008]本發(fā)明提供了一種對視頻流進行解碼顯示的設備,該設備能夠提高對視頻碼流進行解碼顯示的效率。
[0009]一種對視頻流進行解碼顯示的方法,該方法包括:
[0010]客戶端進程單元接收解碼指令,判斷與客戶端進程單元連接的至少一個解碼顯示進程單元是否存在具有空閑的解碼資源,如果是,則將視頻碼流傳送給具有空閑解碼資源的解碼顯示進程單元;否則,客戶端進程單元啟動一個新的解碼顯示進程單元,將視頻碼流傳送給新啟動的解碼顯示進程單元;
[0011]解碼顯示進程單元接收視頻碼流,由空閑的解碼資源對視頻碼流進行解碼后顯示。
[0012]一種對視頻流進行解碼顯示的設備,該設備包括客戶端進程單元和至少一個解碼顯示進程單元;
[0013]所述客戶端進程單元,接收解碼指令,判斷與客戶端進程單元連接的至少一個解碼顯示進程單元是否存在具有空閑的解碼資源,如果是,則將視頻碼流傳送給具有空閑解碼資源的解碼顯示進程單元;否則,客戶端進程單元啟動一個新的解碼顯示進程單元,將視頻碼流傳送給新啟動的解碼顯示進程單元;
[0014]所述解碼顯示進程單元,接收來自客戶端進程單元的視頻碼流,由空閑的解碼資源對視頻碼流進行解碼后顯示。
[0015]從上述方案可以看出,本發(fā)明中,將解碼顯示從客戶端進程單元獨立出來,與客戶端進程單元連接的解碼顯示單元為至少一個,如果與客戶端進程單元連接的解碼顯示單元的解碼資源用完,則啟動新的解碼顯示進程單元;這樣,采用多個解碼顯示進程單元對視頻流進行解碼顯示,相比于現(xiàn)有技術中單進程的解碼實現(xiàn)方案,提高了效率。假設同時有兩個解碼顯示單元進行解碼顯示,解碼路數(shù)將比現(xiàn)有方案增加一倍;對于同時有三個以上解碼顯示單元進行解碼顯示的情況,將進一步提高效率。
【專利附圖】

【附圖說明】
[0016]圖1為本發(fā)明對視頻流進行解碼顯示的方法示意性流程圖;
[0017]圖2為本發(fā)明對視頻流進行解碼顯示的方法流程圖實例;
[0018]圖3為客戶端進程與解碼顯示進程之間的關系示意圖;
[0019]圖4為本發(fā)明對視頻流進行解碼顯示的設備結構示意圖。
【具體實施方式】
[0020]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下面結合實施例和附圖,對本發(fā)明進一步詳細說明。
[0021]本發(fā)明中,將解碼顯示從客戶端進程單元獨立出來,與客戶端進程單元連接的解碼顯示單元為至少一個,如果與客戶端進程單元連接的解碼顯示單元的解碼資源用完,則啟動新的解碼顯示進程單元。參加圖1,為本發(fā)明對視頻流進行解碼顯示的方法,其包括以下步驟:
[0022]步驟101,客戶端進程單元接收解碼指令。
[0023]用戶通過視頻解碼界面向客戶端進程單元輸入解碼指令。以視頻監(jiān)控為例,視頻解碼界面顯示的內容包括需要進行解碼顯示的視頻源標識,當用戶需要顯示關于某監(jiān)控設備的視頻數(shù)據(jù)時,選擇與該監(jiān)控設備對應的視頻源標識,以向客戶端進程單元輸入關于該視頻源標識的解碼指令。
[0024]步驟102,客戶端進程單元判斷與客戶端進程單元連接的至少一個解碼顯示進程單元是否存在具有空閑的解碼資源,如果是,則執(zhí)行步驟103 ;否則執(zhí)行步驟104。
[0025]較優(yōu)地,與客戶端進程單元連接的有一個常駐解碼顯示進程單元,客戶端進程單元啟動后便啟動該常駐解碼顯示進程單元,由該常駐解碼顯示進程單元進行視頻流解碼顯示;如果該常駐解碼顯示進程單元的解碼資源用完,則啟動一個新的解碼顯示進程單元。這樣,與客戶端進程單元連接著至少一個解碼顯示進程單元;各個解碼顯示進程單元互相獨立,分別運行一個進程進行解碼顯示,每個解碼顯示進程單元可占用的最大虛擬內存容量為用戶可占用的空間容量,以32位操作系統(tǒng)為例,每個解碼顯示進程單元可占用的最大虛擬內存容量為2GB,從而,提聞了解碼顯不效率。
[0026]步驟103,客戶端進程單元將視頻碼流傳送給具有空閑解碼資源的解碼顯示進程單元,執(zhí)行步驟105。
[0027]較優(yōu)地,本步驟具體包括:客戶端進程單元與解碼顯示進程單元的空閑解碼資源之間建立碼流管道,將視頻碼流通過建立的碼流管道傳送給解碼資源。
[0028]進行視頻碼流傳送過程中,如果數(shù)據(jù)包過大,可進行拆包傳輸,具體地:客戶端進程單元對視頻碼流進行拆包,為拆分后的數(shù)據(jù)包加上包頭,傳送給具有空閑資源的解碼顯示進程單元;解碼顯示進程單元接收來自客戶端進程單元的數(shù)據(jù)包后,解析出包頭,由包頭組合出原始的視頻碼流;組合時,按照包頭信息的指示,將屬于同一視頻碼流的數(shù)據(jù)包按順序組合成原始的視頻碼流。
[0029]步驟104,客戶端進程單元啟動一個新的解碼顯示進程單元,將視頻碼流傳送給新啟動的解碼顯示進程單元,執(zhí)行步驟105。
[0030]較優(yōu)地,本步驟具體包括:新啟動的解碼顯示進程單元申請空閑資源,客戶端進程單元與申請的空閑解碼資源之間建立碼流管道,將視頻碼流通過建立的碼流管道傳送給解碼資源。新啟動的解碼顯示進程單元可從系統(tǒng)申請空閑資源。
[0031]步驟105,解碼顯示進程單元接收視頻碼流,由空閑的解碼資源對視頻碼流進行解碼后顯示。
[0032]圖1的流程中,可在客戶端進程單元與解碼顯示進程單元之間建立消息管道,以進行除視頻碼流以外的消息、命令的傳輸。具體地,步驟102之前,該方法還包括:客戶端進程單元與解碼顯示進程單元之間協(xié)商消息管道名,客戶端進程單元與解碼顯示進程單元之間建立與消息管道名對應的消息管道;相應地,步驟102包括:客戶端進程單元通過消息管道向解碼顯示進程單元發(fā)送資源請求指令;解碼顯示進程單元接收資源請求指令后判斷是否具有空閑的解碼資源,如果是,則通過消息管道將空閑解碼資源的標識反饋給客戶端進程單元,否則通過消息管道向客戶端進程單元反饋無空閑資源消息。
[0033]步驟105由空閑的解碼資源對視頻碼流進行解碼及顯示的過程中,還可對解碼和顯示進行控制,具體包括:
[0034]客戶端進程單元經通過消息管道向解碼顯示進程單元發(fā)送視頻控制命名;
[0035] 解碼顯示進程單元將接收的視頻控制命令傳送給解碼資源,解碼資源按照視頻控制命令對接收的視頻碼流進行解碼和顯示。
[0036]步驟105由空閑的解碼資源對視頻碼流進行解碼后顯示之后,為了節(jié)省資源,還可進行解碼資源的釋放,具體包括:
[0037]客戶端進程單元經消息管道向解碼顯示進程單元發(fā)送停止命令,所述停止命令包括碼流管道標識;
[0038]解碼顯示進程單元接收停止命令后,通知與碼流管道標識對應的解碼資源停止解碼,釋放解碼資源;解碼顯示進程單元判斷所有解碼資源是否都釋放完畢,如果是,則判斷是否為常駐解碼顯示進程單元,如果不是常駐解碼顯示進程單元,則退出進程。
[0039]本發(fā)明采用多個解碼顯示進程單元對視頻流進行解碼顯示,相比于現(xiàn)有技術中單進程的解碼實現(xiàn)方案,提高了效率。假設同時有兩個解碼顯示單元進行解碼顯示,解碼路數(shù)將比現(xiàn)有方案增加一倍;對于同時有三個以上解碼顯示單元進行解碼顯示的情況,將進一步提聞效率。
[0040]參加圖2,為本發(fā)明對視頻流進行解碼顯示的方法流程圖實例,其包括以下步驟:
[0041]步驟201,客戶端進程單元接收解碼指令。
[0042]以視頻監(jiān)控為例,當用戶需要對來自某監(jiān)控設備的視頻碼流進行預覽或回放時,向客戶端進程單元發(fā)送關于該視頻碼流的解碼指令;預覽,即對該監(jiān)控設備采集的視頻碼流進行實時解碼顯示,回放,即對該監(jiān)控設備之前采集的視頻碼流進行解碼顯示。客戶端進程單元接收解碼指令后,會從該監(jiān)控設備獲取相應的視頻碼流。
[0043]步驟202,客戶端進程單元與解碼顯示進程單元之間協(xié)商消息管道名,客戶端進程單元與解碼顯示進程單元之間建立與消息管道名對應的消息管道。
[0044]本實例中,首先啟動的是常駐解碼顯示進程單元,也就是,本步驟中客戶端進程單元與常駐解碼顯示進程單元之間建立消息管道??蛻舳诉M程單元啟動常駐解碼顯示進程單元的同時,還將客戶端進程名和客戶端進程ID作為啟動參數(shù)傳遞給解碼顯示進程單元,用于建立消息管道。
[0045]客戶端進程單元運行客戶端進程,解碼顯示進程單元運行解碼顯示進程,客戶端進程與解碼顯示進程之間建立消息管道。采用命名管道技術,其特點是整個系統(tǒng)中管道名必須唯一,所以在建立消息管道前客戶端進程和解碼顯示進程需先協(xié)商消息管道名,為了避免重復,本實施例中,命名規(guī)則是用客戶端進程名、客戶端進程ID、解碼顯示進程ID組合成消息管道名,中間用”號連接,其完整形式是“\\\\.\\pipe\\客戶端進程名.客戶端進程ID.解碼顯示進程ID”,“\\\\.\\pipe\\”前綴是固定形式。而后,就在兩個進程間建立消息管道。
[0046]步驟203,客戶端進程單元通過消息管道向解碼顯示進程單元發(fā)送資源請求指令。
[0047]步驟204,解碼顯示進程單元接收資源請求指令后判斷是否具有空閑的解碼資源,如果是,則通過消息管道將空閑解碼資源的標識反饋給客戶端進程單元,執(zhí)行步驟205,否則通過消息管道向客戶端進程單元反饋無空閑資源消息,執(zhí)行步驟206。
[0048]步驟205,客戶端進程單元根據(jù)解碼資源標識,與空閑解碼資源之間建立碼流管道,將視頻碼流通過建立的碼流管道傳送給解碼資源,執(zhí)行步驟207。
[0049]客戶端進程與解碼顯示進程之間先協(xié)商管道名,例如為“\\\\.WpipeW客戶端名.客戶端進程ID.解碼顯示進程ID.解碼資源ID”,而后,兩個進程間建立碼流管道。[0050]建立完通信渠道后,客戶端進程先將發(fā)送的消息和視頻碼流序列化為字節(jié)流傳輸?shù)焦艿乐校艿赖牧硪欢私獯a顯示進程需要將字節(jié)流反序列化為消息和視頻碼流。對于由消息管道傳輸?shù)南?,將消息結構被序列化為可擴展標記語言(XML,Extensible MarkupLanguage)文本進行傳輸,這樣方便對消息進行擴展。對視頻碼流的序列化類似于網(wǎng)絡傳輸時的打包頭,將從前端監(jiān)控設備中傳過來的碼流加上包頭發(fā)送,如果一次傳遞的視頻碼流很大,可以分成多個包發(fā)出去,包頭包含碼流類型、數(shù)據(jù)長度的等信息。
[0051 ] 步驟206,客戶端進程單元啟動一個新的解碼顯示進程單元,新啟動的解碼顯示進程單元申請空閑資源,客戶端進程單元與申請的空閑解碼資源之間建立碼流管道,將視頻碼流通過建立的碼流管道傳送給解碼資源,執(zhí)行步驟207。
[0052]步驟207,解碼顯示進程單元的解碼資源對視頻碼流進行解碼后顯示。
[0053]步驟208,客戶端進程單元經消息管道向解碼顯示進程單元發(fā)送視頻控制命名。
[0054]所述視頻控制命令包括:快放、慢放、暫停、單幀、倒放、同步回放、圖形疊加、字符置加等命令。
[0055] 步驟209,解碼顯示進程單元將接收的視頻控制命令傳送給解碼資源,解碼資源按照視頻控制命令對接收的視頻碼流進行解碼和顯示。
[0056]解碼顯示進程解壓縮碼流并將解碼后的圖像顯示在客戶端窗口上;解碼顯示進程在獲取客戶端進程的解碼指示后開啟解碼功能,等待客戶端進程將視頻碼流發(fā)送過來,一接收到數(shù)據(jù)就開始解碼和顯示圖像。解碼顯示進程實時將解碼狀態(tài)通過消息管道發(fā)送給客戶端進程,以使客戶端進程實時掌握解碼狀態(tài)。
[0057]步驟210,客戶端進程單元經消息管道向解碼顯示進程單元發(fā)送包含碼流管道標識的停止命令。
[0058]步驟211,解碼顯示進程單元接收停止命令后,通知與碼流管道標識對應的解碼資源停止解碼,釋放解碼資源。
[0059]進一步地,釋放解碼資源后,解碼顯示進程單元還可判斷所有解碼資源是否都釋放完畢,如果是,則判斷是否為常駐解碼顯示進程單元,如果不是常駐解碼顯示進程單元,則退出進程。
[0060]該實例中,客戶端進程單元本身不解碼和顯示圖像,而是將視頻碼流發(fā)送給解碼顯示進程單元,由解碼顯示進程單元完成解壓縮碼流和顯示圖像。一個解碼顯示進程單元運行一個進程,可以解若干路碼流,該進程為每一路視頻碼流分配一個解碼資源,每一個解碼顯示進程有一定的解碼路數(shù)上限,該限制主要與視頻碼流的圖像大小和設置的流暢程度相關。當一個解碼顯示進程的資源不足時,客戶端進程單元會主動啟用新的解碼顯示進程。在32位4G物理內存配置的操作系統(tǒng)中,客戶端可以管理3個解碼顯示進程,這樣的解碼能力是單進程解碼客戶端的3倍。
[0061]客戶端進程單元運行一個客戶端進程,該客戶端進程下有多個線程;解碼顯示進程單元運行一個解碼顯示進程,該解碼顯示進程下有多個線程;各線程由主進程根據(jù)需要調用。圖3示出了客戶端進程與解碼顯示進程之間的關系,解碼顯示進程中有若干個解碼資源,默認情況下都保持空閑狀態(tài),客戶端進程在進行預覽或者回放操作時,會讓客戶端進程單元中的資源管理器去尋找具有空閑資源的解碼顯示進程,解碼顯示進程則將空閑的資源返回給資源管理器。客戶端進程通過與解碼顯示進程之間的通信,發(fā)送命令、解碼參數(shù)、窗口句柄和碼流數(shù)據(jù)給解碼顯示進程,由解碼顯示進程完成解碼和顯示圖像;客戶端進程還發(fā)送控制命令給解碼顯示進程,控制解碼和顯示的過程,這些命令包括:開始、停止、快放、慢放、暫停、單幀、倒放、同步回放、圖形疊加、字符疊加等等。
[0062]客戶端進程會對解碼顯示進程和解碼資源做管理,有效提高資源利用率,降低操作系統(tǒng)的負載。客戶端進程通過對解碼顯示進程編號,以管理這些解碼顯示進程和解碼資源。在啟動客戶端進程后,將常駐解碼顯示進程編號為1,客戶端進程在需要播放視頻碼流的時候從常駐解碼顯示進程中申請空閑解碼資源,常駐解碼顯示進程如有空閑資源就將其分配給客戶端進程。當解碼顯示進程的所有資源都分配完后,客戶端進行會啟動一個新的解碼顯示進程,其編號會在上一個解碼顯示進程的編號上加1,即第二個解碼顯示進程的編號為2,并向該進程申請空閑解碼資源。當客戶端播放視頻結束后,通知解碼顯示進程釋放解碼資源,該資源被標記為空閑。以此類推,每次獲取資源時從編號小的進程開始申請。當編號大于I的某解碼進程中所有解碼資源都釋放后客戶端結束這個解碼顯示進程。
[0063]圖3描述了客戶端進程和解碼顯示進程之前是如何進行進程間通信,如何進行消息、視頻碼流傳遞的。圖3僅示出了解一路視頻碼流的情況,對于兩路以上的情況與之類似。客戶端進程與解碼顯示進程采用命名管道的方式建立通信渠道。圖3,客戶端進程和解碼顯示進程建立了兩個通信渠道,每一個通信渠道其兩端分別在兩個進程中,包括消息管道對應的消息循環(huán)線程和管道線程,還包括碼流管道對應的取流回調線程和管道線程,這兩個通信渠道就是兩條命名管道,稱為消息管道和碼流管道。消息管道,負責兩個進程之間雙向的消息數(shù)據(jù)通信,這些數(shù)據(jù)包含除碼流以外的會話協(xié)議、控制命令、狀態(tài)等。一個解碼顯示進程僅有一個消息管道。碼流管道,提供給客戶端進程一種視頻碼流傳輸?shù)耐緩?,能夠讓客戶端進程把碼流數(shù)據(jù)傳輸?shù)浇獯a顯示進程中,這個管道是單向通信的。解碼顯示進程會為每一路解碼資源分配一個碼流管道。
[0064]本發(fā)明方案對于使用者完全是透明的,從使用者的角度上看,區(qū)分不出解碼顯示功能是在客戶端還是在后臺進程中進行。
[0065]參見圖4,為本發(fā)明對視頻流進行解碼顯示的設備結構示意圖,該設備包括客戶端進程單元和至少一個解碼顯示進程單元;
[0066]所述客戶端進程單元,接收解碼指令,判斷與客戶端進程單元連接的至少一個解碼顯示進程單元是否存在具有空閑的解碼資源,如果是,則將視頻碼流傳送給具有空閑解碼資源的解碼顯示進程單元;否則,客戶端進程單元啟動一個新的解碼顯示進程單元,將視頻碼流傳送給新啟動的解碼顯示進程單元;
[0067]所述解碼顯示進程單元,接收來自客戶端進程單元的視頻碼流,由空閑的解碼資源對視頻碼流進行解碼后顯示。
[0068]較優(yōu)地,所述客戶端進程單元包括用戶界面層單元、業(yè)務層單元和資源管理器;
[0069]所述用戶界面層單元,接收解碼指令,傳送給業(yè)務層單元,
[0070]所述業(yè)務層單元,接收來自用戶界面層單元的解碼指令,獲取視頻碼流,將視頻碼流傳送給資源管理器;
[0071]所述資源管理器,接收來自業(yè)務層單元的視頻碼流,判斷與客戶端進程單元連接的至少一個解碼顯示進程單元是否存在具有空閑的解碼資源,如果是,則將視頻碼流傳送給具有空閑解碼資源的解 碼顯示進程單元的資源分配器;否則,啟動一個新的解碼顯示進程單元,將視頻碼流傳送給新啟動的解碼顯示進程單元的資源分配器。
[0072]較優(yōu)地,所述資源管理器,還用于與解碼顯示進程單元的空閑解碼資源之間建立碼流管道,將視頻碼流通過建立的碼流管道傳送給解碼資源。
[0073]較優(yōu)地,所述解碼顯示進程單元包括資源分配器;所述資源管理器,還用于與解碼顯示進程單元的資源分配器之間協(xié)商消息管道名,與資源分配器之間建立與消息管道名對應的消息管道,通過消息管道向資源分配器發(fā)送資源請求指令;
[0074]所述資源分配器,接收來自資源管理器的資源請求指令后判斷是否具有空閑的解碼資源,如果是,則通過消息管道將空閑解碼資源的標識反饋給客戶端進程單元,否則通過消息管道向客戶端進程單元反饋無空閑資源消息。
[0075]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內。
【權利要求】
1.一種對視頻流進行解碼顯示的方法,其特征在于,該方法包括: 客戶端進程單元接收解碼指令,判斷與客戶端進程單元連接的至少一個解碼顯示進程單元是否存在具有空閑的解碼資源,如果是,則將視頻碼流傳送給具有空閑解碼資源的解碼顯示進程單元;否則,客戶端進程單元啟動一個新的解碼顯示進程單元,將視頻碼流傳送給新啟動的解碼顯示進程單元; 解碼顯示進程單元接收視頻碼流,由空閑的解碼資源對視頻碼流進行解碼后顯示。
2.如權利要求1所述的方法,其特征在于,所述將視頻碼流傳送給具有空閑解碼資源的解碼顯示進程單元包括:客戶端進程單元與解碼顯示進程單元的空閑解碼資源之間建立碼流管道,將視頻碼流通過建立的碼流管道傳送給解碼資源; 所述客戶端進程單元將視頻碼流傳送給新啟動的解碼顯示進程單元包括:新啟動的解碼顯示進程單元申請空閑資源,客戶端進程單元與申請的空閑解碼資源之間建立碼流管道,將視頻碼流通過建立的碼流管道傳送給解碼資源。
3.如權利要求1所述的方法,其特征在于,所述判斷與客戶端進程單元連接的至少一個解碼顯示進程單元是否存在具有空閑的解碼資源之前,該方法還包括:客戶端進程單元與解碼顯示進程單元之間協(xié)商消息管道名,客戶端進程單元與解碼顯示進程單元之間建立與消息管道名對應的消息管道; 所述判斷與客戶端進程單元連接的至少一個解碼顯示進程單元是否存在具有空閑的解碼資源包括:客戶端進程單元通過消息管道向解碼顯示進程單元發(fā)送資源請求指令;解碼顯示進程單元接收資源請求指令后判斷是否具有空閑的解碼資源,如果是,則通過消息管道將空閑解碼資源的 標識反饋給客戶端進程單元,否則通過消息管道向客戶端進程單元反饋無空閑資源消息。
4.如權利要求3所述的方法,其特征在于,所述由空閑的解碼資源對視頻碼流進行解碼及顯示的過程中,該方法還包括: 客戶端進程單元經通過消息管道向解碼顯示進程單元發(fā)送視頻控制命令; 解碼顯示進程單元將接收的視頻控制命令傳送給解碼資源,解碼資源按照視頻控制命令對接收的視頻碼流進行解碼和顯示。
5.如權利要求3所述的方法,其特征在于,所述由空閑的解碼資源對視頻碼流進行解碼后顯示之后,該方法還包括: 客戶端進程單元經消息管道向解碼顯示進程單元發(fā)送停止命令,所述停止命令包括碼流管道標識; 解碼顯示進程單元接收停止命令后,通知與碼流管道標識對應的解碼資源停止解碼,釋放解碼資源;解碼顯示進程單元判斷所有解碼資源是否都釋放完畢,如果是,則判斷是否為常駐解碼顯示進程單元,如果不是常駐解碼顯示進程單元,則退出進程。
6.如權利要求1至5中任一項所述的方法,其特征在于,所述客戶端進程單元將視頻碼流傳送給具有空閑解碼資源的解碼顯示進程單元包括: 客戶端進程單元對視頻碼流進行拆包,為拆分后的數(shù)據(jù)包加上包頭,傳送給具有空閑資源的解碼顯示進程單元; 解碼顯示進程單元接收來自客戶端進程單元的數(shù)據(jù)包后,解析出包頭,根據(jù)包頭組合出原始的視頻碼流。
7.—種對視頻流進行解碼顯示的設備,其特征在于,該設備包括客戶端進程單元和至少一個解碼顯示進程單元; 所述客戶端進程單元,接收解碼指令,判斷與客戶端進程單元連接的至少一個解碼顯示進程單元是否存在具有空閑的解碼資源,如果是,則將視頻碼流傳送給具有空閑解碼資源的解碼顯示進程單元;否則,客戶端進程單元啟動一個新的解碼顯示進程單元,將視頻碼流傳送給新啟動的解碼顯示進程單元; 所述解碼顯示進程單元,接收來自客戶端進程單元的視頻碼流,由空閑的解碼資源對視頻碼流進行解碼后顯示。
8.如權利要求7所述的設備,其特征在于,所述客戶端進程單元包括用戶界面層單元、業(yè)務層單元和資源管理器; 所述用戶界面層單元,接收解碼指令,傳送給業(yè)務層單元, 所述業(yè)務層單元,接收來自用戶界面層單元的解碼指令,獲取視頻碼流,將視頻碼流傳送給資源管理器; 所述資源管理器,接收來自業(yè)務層單元的視頻碼流,判斷與客戶端進程單元連接的至少一個解碼顯示進程單元是否存在具有空閑的解碼資源,如果是,則將視頻碼流傳送給具有空閑解碼資源的解碼顯示進程單元的資源分配器;否則,啟動一個新的解碼顯示進程單元,將視頻碼流傳送給新啟動的解碼顯示進程單元的資源分配器。
9.如權利要求8所述的設備,其特征在于,所述資源管理器,還用于與解碼顯示進程單元的空閑解碼資源之間建立碼流管道,將視頻碼流通過建立的碼流管道傳送給解碼資源。
10.如權利要求7、8或9所述的設備,其特征在于,所述解碼顯示進程單元包括資源分配器;所述資源管理器,還用于與解碼顯示進程單元的資源分配器之間協(xié)商消息管道名,與資源分配器之間建立與消息管道名對應的消息管道,通過消息管道向資源分配器發(fā)送資源請求指令; 所述資源分配器,接收來自資源管理器的資源請求指令后判斷是否具有空閑的解碼資源,如果是,則通過消息管道將空閑解碼資源的標識反饋給客戶端進程單元,否則通過消息管道向客戶端進程單元反饋無空閑資源消息。
【文檔編號】H04N21/442GK103905783SQ201210572812
【公開日】2014年7月2日 申請日期:2012年12月25日 優(yōu)先權日:2012年12月25日
【發(fā)明者】楊欣 申請人:杭州??低晹?shù)字技術股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
广汉市| 石林| 斗六市| 桦南县| 双辽市| 佛坪县| 南汇区| 康保县| 海口市| 农安县| 遵义市| 黄冈市| 鄢陵县| 沙田区| 庆元县| 上蔡县| 嫩江县| 黎平县| 尖扎县| 林州市| 太仓市| 阳泉市| 阿合奇县| 西宁市| 东乡县| 泸州市| 寿光市| 白沙| 新安县| 于都县| 宁乡县| 西充县| 合阳县| 永寿县| 长宁县| 澄迈县| 上饶市| 达日县| 怀化市| 大方县| 达尔|