一種終端處理視頻流的方法及終端的制作方法
【專利摘要】本發(fā)明提供一種終端處理視頻流的方法及終端,該方法包括:終端請求并接受視頻流;所述終端解碼所述視頻流時,查詢硬解碼器的狀態(tài),如硬解碼器為忙狀態(tài),則采用軟解碼器進行解碼。通過本發(fā)明可以有效利用硬解碼的高效率,同時使用軟解碼的方法處理并顯示更多的視頻流。
【專利說明】一種終端處理視頻流的方法及終端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通訊領(lǐng)域,特別是涉及一種終端處理視頻流的方法及終端。
【背景技術(shù)】
[0002]在云計算系統(tǒng)中,瘦終端最重要的一個功能就是對從云服務(wù)端傳輸過來視頻流進行解碼并顯示。目前主要有兩種解碼顯示方式,一是通過軟件方式對視頻流進行解碼并顯示,即軟解方式;另外一種是通過硬件芯片對視頻流進行解碼顯示,即硬解方式。
[0003]一般來說,硬解碼比軟解碼方式具有更高的效率,但是硬解碼有一個不足,大部分的硬件芯片只能對一路視頻流進行解碼顯示。而現(xiàn)在的云計算系統(tǒng)由于應(yīng)用場景的復(fù)雜性,往往會存在多路視頻流需要終端進行解碼顯示。由于采用硬解碼的瘦終端無法支持多路視頻流的顯示,因此這種瘦終端就無法滿足當(dāng)前云計算系統(tǒng)的需求。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是提供一種終端處理視頻流的方法及終端,以實現(xiàn)對多路視頻流進行解碼顯示。
[0005]為了解決上述技術(shù)問題,本發(fā)明提供了一種終端處理視頻流的方法,包括:
[0006]終端請求并接受視頻流;
[0007]所述終端解碼所述視頻流時,查詢硬解碼器的狀態(tài),如硬解碼器為忙狀態(tài),則采用軟解碼器進行解碼。
[0008]進一步地,上述方法還具有下面特點:所述終端接受視頻流后,還包括:
[0009]所述終端為所述視頻流創(chuàng)建一個視頻對象,并為該視頻對象設(shè)置唯一的標(biāo)識,然后將所述視頻對象放入一視頻流管理池。
[0010]進一步地,上述方法還具有下面特點:所述采用軟解碼器進行解碼后,還包括:
[0011]所述終端將所有軟解碼器解碼后的視頻幀數(shù)據(jù)組合到顯示畫布上,等待窗口刷新顯示,將硬解碼器解碼后的視頻幀直接上屏,等待窗口刷新顯示;
[0012]所述終端在刷新時間到達后,發(fā)起屏幕刷新消息,將所有軟解碼器解碼和硬解碼器解碼的視頻流圖像顯示到屏幕上。
[0013]進一步地,上述方法還具有下面特點:所述終端將所有軟解碼器解碼和硬解碼器解碼的視頻流圖像顯示到屏幕上后,還包括:
[0014]所述終端接收到播放視頻流完成消息后,刪除對應(yīng)的視頻流,如該視頻流采用硬解碼器解碼的,則釋放硬解碼器,同時將所述硬解碼器的狀態(tài)設(shè)置為空閑。
[0015]為了解決上述問題,本發(fā)明還提供了一種終端,其中,包括:
[0016]第一模塊,用于請求并接受視頻流;
[0017]第二模塊,用于解碼所述視頻流時,查詢硬解碼器的狀態(tài),如硬解碼器為忙狀態(tài),則采用軟解碼器進行解碼。
[0018]進一步地,上述終端還具有下面特點:
[0019]所述第一模塊,還用于為所述視頻流創(chuàng)建一個視頻對象,并為該視頻對象設(shè)置唯一的標(biāo)識,然后將所述視頻對象放入一視頻流管理池。
[0020]進一步地,上述終端還具有下面特點:所述終端還包括:
[0021]第三模塊,用于將所有軟解碼器解碼后的視頻幀數(shù)據(jù)組合到顯示畫布上,等待窗口刷新顯示,將硬解碼器解碼后的視頻幀直接上屏,等待窗口刷新顯示;
[0022]第四模塊,用于在刷新時間到達后,發(fā)起屏幕刷新消息,將所有軟解碼器解碼和硬解碼器解碼的視頻流圖像顯示到屏幕上。
[0023]進一步地,上述終端還具有下面特點:所述終端還包括:
[0024]第五模塊,用于接收到播放視頻流完成消息后,刪除對應(yīng)的視頻流,如該視頻流采用硬解碼器解碼的,則釋放硬解碼器,同時將所述硬解碼器的狀態(tài)設(shè)置為空閑。
[0025]綜上,本發(fā)明提供一種終端處理視頻流的方法及終端,可以有效利用硬解碼的高效率,同時使用軟解碼的方法處理并顯示更多的視頻流。
【專利附圖】
【附圖說明】
[0026]圖1為本發(fā)明實施例的一種終端處理視頻流的方法的流程圖;
[0027]圖2為本發(fā)明實施例的終端的示意圖。
【具體實施方式】
[0028]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
[0029]圖1為本發(fā)明實施例的一種終端處理視頻流的方法的流程圖,如圖1所示,本實施例的方法包括以下步驟:
[0030]SI 1、終端請求并接受視頻流;
[0031]S12、終端解碼所述視頻流時,查詢硬解碼器的狀態(tài),如硬解碼器為忙狀態(tài),則采用軟解碼器進行解碼。
[0032]本實施例中,包括視頻流預(yù)處理,可以預(yù)先創(chuàng)建視頻流管理池,當(dāng)云服務(wù)端有一個MJPEG視頻流需要終端顯示的時候,瘦終端會為該視頻流設(shè)置一個唯一的標(biāo)識(ID),并將該視頻流放入視頻流管理池,視頻流管理池用于對視頻流對象進行管理,以便軟件程序能夠方便的操作視頻對象,提高效率。
[0033]當(dāng)瘦終端接收到MJPEG (Mot1n-Join Photographic Experts Group,運動靜止圖像(或逐幀)壓縮)視頻數(shù)據(jù)的時候,首先根據(jù)當(dāng)前視頻數(shù)據(jù)的ID,找到其對應(yīng)的視頻流對象,并將數(shù)據(jù)保存至對應(yīng)的視頻流對象中。
[0034]進行多路MJPEG流解碼處理的過程如下:
[0035]當(dāng)有一個MJPEG視頻流解碼請求時,首先去查詢解碼器的狀態(tài),本實施例采用優(yōu)先查詢硬解碼器的狀態(tài),如果硬解碼器的狀態(tài)為空閑,則該路視頻流使用硬解碼器進行解碼;否則使用軟解碼器進行解碼。
[0036]由于硬解碼是一個獨占資源,因此如果硬解碼器正在被使用,需要給硬解碼器設(shè)置一個忙的標(biāo)示符,同時綁定該路視頻流的ID,此時硬解碼資源不可再分配,如果硬解碼的視頻流被釋放,則要將標(biāo)示符設(shè)置為空閑。
[0037]當(dāng)收到MJPEG視頻數(shù)據(jù)的后,瘦終端根據(jù)當(dāng)前數(shù)據(jù)視頻的ID分配到對應(yīng)的解碼器進行解碼。
[0038]瘦終端進行多路MJPEG流顯示包括:
[0039]創(chuàng)建顯示畫布,將所有軟解碼器解碼后的視頻幀數(shù)據(jù)組合到顯示畫布上,等待窗口刷新顯示;硬解碼后的視頻幀直接上屏,等待窗口刷新顯示。
[0040]當(dāng)?shù)竭_刷新時間后,瘦終端發(fā)起窗口刷新消息,顯示畫布會將視頻幀數(shù)據(jù)顯示出來,硬解碼后的數(shù)據(jù)也將直接在屏上刷新顯示。
[0041]當(dāng)云服務(wù)端有一個視頻流需要釋放時,會通知瘦終端,瘦終端收到該消息后,會將管理池中對應(yīng)的視頻流對象刪除。
[0042]本發(fā)明實施例采用硬解碼和軟解碼結(jié)合的方法,使得瘦終端具備顯示多路MJPEG視頻流的功能。本方法使用硬解碼優(yōu)先的原則,可以有效利用硬解的高效率,同時使用軟解碼的方法處理并顯示更多的視頻流。采用本發(fā)明實施例的方法的瘦終端能夠滿足當(dāng)前云計算系統(tǒng)多視頻流顯示的需求。
[0043]下面為本發(fā)明一應(yīng)用示例的視頻流業(yè)務(wù)處理流程,如下:
[0044]步驟101:用戶(即瘦終端)向云服務(wù)端發(fā)起播放視頻請求,云服務(wù)端收到瘦終端請求并且鑒權(quán)成功后,往瘦終端回應(yīng)請求應(yīng)答。
[0045]步驟102:瘦終端收應(yīng)答后,創(chuàng)建視頻流管理池,并等待來自云服務(wù)端的視頻流數(shù)據(jù)。
[0046]步驟103:瘦終端接收到來自云服務(wù)端的一路MJPEG視頻流時,會為該路視頻流創(chuàng)建一個視頻對象,并為該對象設(shè)置一個唯一的ID號,最后將該視頻對象放入視頻流管理池。
[0047]步驟104:當(dāng)瘦終端發(fā)現(xiàn)視頻流管理池中有視頻對象A需要解碼時,查詢瘦終端解碼器的狀態(tài)。
[0048]本實施例中,采用硬解碼優(yōu)先的原則,首先查詢硬解碼器的狀態(tài),如果硬解碼器當(dāng)前為空閑狀態(tài),則視頻對象A采用硬解碼,并將硬解碼器設(shè)置為忙狀態(tài),同時硬解碼將綁定ID為A視頻對象;否則采用軟解碼。
[0049]步驟105:如果瘦終端接收到ID為A的MJPEG視頻數(shù)據(jù)時,根據(jù)當(dāng)前視頻數(shù)據(jù)的ID找到其對應(yīng)的視頻對象A,并將視頻數(shù)據(jù)保存至視頻對象A中。終端上對應(yīng)的解碼器對視頻對象A中的視頻數(shù)據(jù)進行解碼。
[0050]步驟106:瘦終端組合多路MJPEG視頻解碼后的數(shù)據(jù),如果視頻對象A采用硬解碼,則解碼后的數(shù)據(jù)直接上屏,等待窗口刷新顯示;其他采用軟解碼的視頻對象B和視頻對象C需要將解碼后的數(shù)據(jù)組合到畫布上,才能等待窗口刷新顯示。
[0051]步驟107:當(dāng)刷新時間到達后,瘦終端會發(fā)起屏幕刷新消息,將多路視頻流圖像顯示到屏幕上,實現(xiàn)多路播放。
[0052]步驟108:云服務(wù)器發(fā)起視頻A播放完成消息,瘦終端接收到該消息,并根據(jù)視頻流的ID號找到對應(yīng)的視頻對象A。將對象A從視頻管理池中刪除,如果A采用硬解碼,還需要將硬解碼的資源釋放,同時設(shè)置硬解碼的狀態(tài)為空閑。
[0053]圖2為本發(fā)明實施例的終端的示意圖,如圖2所示,本實施例的終端可以包括:
[0054]第一模塊,用于請求并接受視頻流;
[0055]第二模塊,用于解碼所述視頻流時,查詢硬解碼器的狀態(tài),如硬解碼器為忙狀態(tài),則采用軟解碼器進行解碼。
[0056]在一優(yōu)選實施例中,所述第一模塊還可用于為所述視頻流創(chuàng)建一個視頻對象,并為該視頻對象設(shè)置唯一的標(biāo)識,然后將所述視頻對象放入一視頻流管理池。
[0057]在一優(yōu)選實施例中,所述終端還可以包括:
[0058]第三模塊,用于將所有軟解碼器解碼后的視頻幀數(shù)據(jù)組合到顯示畫布上,等待窗口刷新顯示,將硬解碼器解碼后的視頻幀直接上屏,等待窗口刷新顯示;
[0059]第四模塊,用于在刷新時間到達后,發(fā)起屏幕刷新消息,將所有軟解碼器解碼和硬解碼器解碼的視頻流圖像顯示到屏幕上。
[0060]在一優(yōu)選實施例中,所述終端還可以包括:
[0061]第五模塊,用于接收到播放視頻流完成消息后,刪除對應(yīng)的視頻流,如該視頻流采用硬解碼器解碼的,則釋放硬解碼器,同時將所述硬解碼器的狀態(tài)設(shè)置為空閑。
[0062]本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,所述程序可以存儲于計算機可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現(xiàn)。相應(yīng)地,上述實施例中的各模塊/單元可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
[0063]以上僅為本發(fā)明的優(yōu)選實施例,當(dāng)然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。
【權(quán)利要求】
1.一種終端處理視頻流的方法,包括: 終端請求并接受視頻流; 所述終端解碼所述視頻流時,查詢硬解碼器的狀態(tài),如硬解碼器為忙狀態(tài),則采用軟解碼器進行解碼。
2.如權(quán)利要求1所述的方法,其特征在于:所述終端接受視頻流后,還包括: 所述終端為所述視頻流創(chuàng)建一個視頻對象,并為該視頻對象設(shè)置唯一的標(biāo)識,然后將所述視頻對象放入一視頻流管理池。
3.如權(quán)利要求1或2所述的方法,其特征在于:所述采用軟解碼器進行解碼后,還包括: 所述終端將所有軟解碼器解碼后的視頻幀數(shù)據(jù)組合到顯示畫布上,等待窗口刷新顯示,將硬解碼器解碼后的視頻幀直接上屏,等待窗口刷新顯示; 所述終端在刷新時間到達后,發(fā)起屏幕刷新消息,將所有軟解碼器解碼和硬解碼器解碼的視頻流圖像顯示到屏幕上。
4.如權(quán)利要求3所述的方法,其特征在于:所述終端將所有軟解碼器解碼和硬解碼器解碼的視頻流圖像顯示到屏幕上后,還包括: 所述終端接收到播放視頻流完成消息后,刪除對應(yīng)的視頻流,如該視頻流采用硬解碼器解碼的,則釋放硬解碼器,同時將所述硬解碼器的狀態(tài)設(shè)置為空閑。
5.一種終端,其特征在于,包括: 第一模塊,用于請求并接受視頻流; 第二模塊,用于解碼所述視頻流時,查詢硬解碼器的狀態(tài),如硬解碼器為忙狀態(tài),則采用軟解碼器進行解碼。
6.如權(quán)利要求5所述的終端,其特征在于: 所述第一模塊,還用于為所述視頻流創(chuàng)建一個視頻對象,并為該視頻對象設(shè)置唯一的標(biāo)識,然后將所述視頻對象放入一視頻流管理池。
7.如權(quán)利要求5或6所述的終端,其特征在于:所述終端還包括: 第三模塊,用于將所有軟解碼器解碼后的視頻幀數(shù)據(jù)組合到顯示畫布上,等待窗口刷新顯示,將硬解碼器解碼后的視頻幀直接上屏,等待窗口刷新顯示; 第四模塊,用于在刷新時間到達后,發(fā)起屏幕刷新消息,將所有軟解碼器解碼和硬解碼器解碼的視頻流圖像顯示到屏幕上。
8.如權(quán)利要求7所述的終端,其特征在于:所述終端還包括: 第五模塊,用于接收到播放視頻流完成消息后,刪除對應(yīng)的視頻流,如該視頻流采用硬解碼器解碼的,則釋放硬解碼器,同時將所述硬解碼器的狀態(tài)設(shè)置為空閑。
【文檔編號】H04N21/431GK104185062SQ201310203097
【公開日】2014年12月3日 申請日期:2013年5月27日 優(yōu)先權(quán)日:2013年5月27日
【發(fā)明者】熊愛平, 郭熱思 申請人:中興通訊股份有限公司