本發(fā)明屬于視頻預(yù)覽領(lǐng)域,尤其涉及一種視頻預(yù)覽方法、裝置及設(shè)備。
背景技術(shù):
nvr(networkvideorecorder)是一種網(wǎng)絡(luò)存儲設(shè)備,其主要的功能是通過網(wǎng)絡(luò)接收ipc(ipcamera)設(shè)備傳輸過來的數(shù)字視頻碼流,并提供對多路碼流存儲、管理、回放和預(yù)覽等功能。在高清網(wǎng)絡(luò)視頻監(jiān)控平臺中,由于數(shù)據(jù)量大且解碼受到硬件資源限制等因素,而帶寬占用量又取決于每路視頻圖像的壓縮水平、幀大小(即幀對應(yīng)的分辨率大小)、幀速率和碼率,其中幀大小又會影響到解碼資源的分配,因此,在有限的帶寬以及硬件解碼資源下,過大的幀大小以及幀速率都會導(dǎo)致預(yù)覽體驗差的問題出現(xiàn)。
ipc端視頻的運動狀態(tài)越劇烈會導(dǎo)致該ipc單位時間內(nèi)的視頻數(shù)據(jù)量越大,反之則越小。在有限的帶寬資源下,如果不調(diào)整其碼率可能會造成網(wǎng)絡(luò)擁塞而導(dǎo)致網(wǎng)絡(luò)延遲增大,從而導(dǎo)致預(yù)覽功能異常。
為了避免預(yù)覽功能異常,目前的一種做法是依據(jù)經(jīng)驗預(yù)設(shè)一個運動狀態(tài)優(yōu)先級與通道最大碼率的對應(yīng)關(guān)系,然后實時地檢測各通道路碼流的運動狀態(tài)計算出其運動狀態(tài)優(yōu)先級,最后依據(jù)該優(yōu)先級來調(diào)整為相對應(yīng)的碼率值,從而實現(xiàn)帶寬資源的動態(tài)分配,減小網(wǎng)絡(luò)延遲。但是,受到解碼資源的限制,在nvr端解碼資源不足時,仍然會導(dǎo)致嚴(yán)重的解碼延遲。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供了一種視頻預(yù)覽方法、裝置及設(shè)備,以解決現(xiàn)有技術(shù)中視頻預(yù)覽時,由于解碼資源的限制,導(dǎo)致解碼延遲的問題。
本發(fā)明實施例的第一方面提供了一種視頻預(yù)覽方法,所述視頻預(yù)覽方法包括:
獲取視頻預(yù)覽通道的碼流的分辨率;
根據(jù)視頻預(yù)覽通道的碼流的分辨率,計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量;
在對視頻預(yù)覽通道的碼流進(jìn)行解碼時,判斷所述碼流對應(yīng)的解碼資源消耗量是否大于系統(tǒng)剩余資源量;
如果所述碼流對應(yīng)的解碼資源消耗量大于系統(tǒng)剩余資源量,則根據(jù)當(dāng)前視頻預(yù)覽通道的碼流的下一碼流進(jìn)行判斷。
結(jié)合第一方面,在第一方面的第一種可能實現(xiàn)方式中,所述根據(jù)視頻預(yù)覽通道的碼流的分辨率,計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量的步驟包括:
根據(jù)公式m=a*f+b計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量,其中m為解碼資源消耗量,a為與解碼芯片相關(guān)的消耗基數(shù),f為幀大小,b為與解碼的幀大小無關(guān)的輔助結(jié)構(gòu)所消耗的資源。
結(jié)合第一方面,在第一方面的第二種可能實現(xiàn)方式中,所述獲取視頻預(yù)覽通道的碼流的分辨率的步驟為:
獲取視頻預(yù)覽通道的碼流的初始條件下的參數(shù)幀,根據(jù)所述參數(shù)幀讀取碼流的分辨率。
結(jié)合第一方面,在第一方面的第三種可能實現(xiàn)方式中,在所述判斷所述碼流對應(yīng)的解碼資源消耗量是否大于系統(tǒng)剩余資源量的步驟之前,所述方法還包括:
判斷所述視頻預(yù)覽通道的碼流的分辨率或系統(tǒng)剩余資源量是否發(fā)生變化,如果發(fā)生變化,則判斷所述碼流對應(yīng)的解碼資源消耗量是否大于系統(tǒng)剩余資源量。
結(jié)合第一方面,在第一方面的第四種可能實現(xiàn)方式中,所述根據(jù)視頻預(yù)覽通道的碼流的分辨率,計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量的步驟包括:
查找視頻預(yù)覽通道的碼流的分辨率所屬的分辨率區(qū)間;
根據(jù)預(yù)設(shè)的分辨率區(qū)間與解碼資源消耗量的對應(yīng)關(guān)系,查找所述視頻預(yù)覽通道的碼流的分辨率所對應(yīng)的解碼資源消耗量。
結(jié)合第一方面,在第一方面的第五種可能實現(xiàn)方式中,所述根據(jù)視頻預(yù)覽通道的碼流的分辨率,計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量的步驟包括:
根據(jù)預(yù)設(shè)的分辨率與解碼資源消耗量或解碼資源消耗值的對應(yīng)表,在所述對應(yīng)表中查找所述視頻預(yù)覽通道的碼流的分辨率所對應(yīng)的解碼資源消耗量或解碼資源消耗值。
結(jié)合第一方面,在第一方面的第六種可能實現(xiàn)方式中,所述視頻預(yù)覽通道包括多個通道,所述選擇當(dāng)前視頻預(yù)覽通道的碼流的下一碼流進(jìn)行判斷的步驟包括:
根據(jù)預(yù)先設(shè)定的多通道的碼流的優(yōu)先級順序,選擇各個視頻預(yù)覽通道的碼流的下一個優(yōu)先級碼流進(jìn)行播放。
結(jié)合第一方面,在第一方面的第七種可能實現(xiàn)方式中,所述判斷所述碼流對應(yīng)的解碼資源消耗量是否大于系統(tǒng)剩余資源量的步驟包括:
將碼流對應(yīng)的解碼資源消耗量通過轉(zhuǎn)換公式轉(zhuǎn)換為碼流消耗值,以及將所述系統(tǒng)剩余資源量通過轉(zhuǎn)換公式轉(zhuǎn)換為系統(tǒng)剩余資源值,再比較所述解碼資源消耗值和系統(tǒng)剩余資源值的大小,其中,所述轉(zhuǎn)換公式為:|(x+m/2)/m|=y(tǒng),x為資源量,x為資源值,m為換算倍數(shù)。
本發(fā)明實施例的第二方面提供了一種視頻預(yù)覽裝置,所述視頻預(yù)覽裝置包括:
分辨率獲取單元,用于獲取視頻預(yù)覽通道的碼流的分辨率;
解碼資源消耗量計算單元,用于根據(jù)視頻預(yù)覽通道的碼流的分辨率,計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量;
判斷單元,用于在對視頻預(yù)覽通道的碼流進(jìn)行解碼時,判斷所述碼流對應(yīng)的解碼資源消耗量是否大于系統(tǒng)剩余資源量;
碼流選擇單元,用于如果所述碼流對應(yīng)的解碼資源消耗量大于系統(tǒng)剩余資源量,則根據(jù)當(dāng)前視頻預(yù)覽通道的碼流的下一碼流進(jìn)行判斷。
結(jié)合第二方面,在第二方面的第一種可能實現(xiàn)方式中,所述解碼資源消耗量計算單元用于:
根據(jù)公式m=a*f+b計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量,其中m為解碼資源消耗量,a為與解碼芯片相關(guān)的消耗基數(shù),f為幀大小,b為與解碼的幀大小無關(guān)的輔助結(jié)構(gòu)所消耗的資源。
結(jié)合第二方面,在第二方面的第二種可能實現(xiàn)方式中,所述分辨率獲取單元用于:
獲取視頻預(yù)覽通道的碼流的初始條件下的參數(shù)幀,根據(jù)所述參數(shù)幀讀取碼流的分辨率。
本發(fā)明實施例的第三方面提供了一種視頻預(yù)覽設(shè)備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如第一方面任一項所述視頻預(yù)覽方法的步驟。
本發(fā)明實施例的第四方面提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如第一方面的任一項所述視頻預(yù)覽方法的步驟。
本發(fā)明實施例與現(xiàn)有技術(shù)相比存在的有益效果是:通過獲取視頻預(yù)覽通道的碼流的分辨率,并根據(jù)視頻預(yù)覽通道的碼流的分辨率,計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量,將碼流所需要的解碼資源消耗量與系統(tǒng)剩余資源量比較,在不能滿足解碼需要時選擇下一碼流進(jìn)行解碼,從而可以使得有限的解碼資源得到合理的分配,避免因出現(xiàn)碼流的分辨率過大而導(dǎo)致底層解碼資源分配失敗而出現(xiàn)預(yù)覽延遲過大。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的nvr網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu)示意圖;
圖2是本發(fā)明實施例提供的視頻預(yù)覽方法的實現(xiàn)流程示意圖;
圖3是本發(fā)明實施例提供的又一視頻預(yù)覽方法的交互流程示意圖;
圖4是本發(fā)明實施例提供的視頻預(yù)覽裝置的示意圖;
圖5是本發(fā)明實施例提供的視頻預(yù)覽設(shè)備的示意圖。
具體實施方式
以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、技術(shù)之類的具體細(xì)節(jié),以便透徹理解本發(fā)明實施例。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,在沒有這些具體細(xì)節(jié)的其它實施例中也可以實現(xiàn)本發(fā)明。在其它情況中,省略對眾所周知的系統(tǒng)、裝置、電路以及方法的詳細(xì)說明,以免不必要的細(xì)節(jié)妨礙本發(fā)明的描述。
為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進(jìn)行說明。
如圖1所示為nvr(英文全稱為networkvideorecorder,中文全稱為網(wǎng)絡(luò)硬盤錄像機)網(wǎng)絡(luò)系統(tǒng)的結(jié)構(gòu)示意圖,造成nvr網(wǎng)絡(luò)延遲的因素包括:成像延遲(ccd成像性能)、視頻編碼延遲(編碼芯片性能)、網(wǎng)絡(luò)延遲(數(shù)據(jù)量大)、緩沖區(qū)延遲(軟件資源限制)以及解碼延遲(硬件資源限制)。ipc(英文全稱為ipcamera,中文全稱為ip網(wǎng)絡(luò)攝像頭)端視頻的運動狀態(tài)越劇烈會導(dǎo)致該ipc單位時間內(nèi)的視頻數(shù)據(jù)量越大,反之則越小。其中,rtsps的英文全稱為timestreamingprotocolserver,中文全稱為實時傳輸協(xié)議服務(wù)器。在現(xiàn)有技術(shù)解決網(wǎng)絡(luò)延遲的基礎(chǔ)上,為了避免多通道視頻預(yù)覽出現(xiàn)延遲,需要進(jìn)一步對解碼延遲提出相應(yīng)的解決方案。
圖2為本發(fā)明實施例提供的一種視頻預(yù)覽方法的實現(xiàn)流程,詳述如下:
在步驟s201中,獲取視頻預(yù)覽通道的碼流的分辨率。
具體的,所述視頻預(yù)覽通道可以為單個視頻預(yù)覽通道,也可包括多個視頻預(yù)覽通道。多個通道中的每個視頻預(yù)覽通道的碼流的分辨率的獲取,可以在視頻預(yù)覽的同時,實時的獲取。在多通道的視頻預(yù)覽時,根據(jù)用戶的需要,可以設(shè)定不同的布局信息,可以包括四路、八路、九路、十六路、二十五路或三十六路視頻預(yù)覽布局信息等。每個通道上包括主碼流和子碼流。
獲取分辨率的方式,可以通過獲取視頻預(yù)覽通道的碼流的初始條件下的參數(shù)幀,根據(jù)所述參數(shù)幀讀取碼流的分辨率。比如,在h.264、h.265格式下,碼流中初始情況下會有一個sps(英文全稱為sequenceparameterset,中文全稱為序列參數(shù)集)、pps(英文全稱為pictureparameterset,中文全稱為圖像參數(shù)集)參數(shù)幀,該幀中記錄了后續(xù)數(shù)據(jù)幀中的圖像的分辨率信息。具體實現(xiàn)上,可以將該信息寫入到碼流的管理數(shù)據(jù)中。本步驟在實現(xiàn)上只需要在獲取到碼流數(shù)據(jù)時,將查詢到的該碼流當(dāng)前的分辨率信息記錄下來,將當(dāng)前記錄的分辨率與之前記錄的分辨率比較,可以判斷分辨率是否發(fā)生變化。
在步驟s202中,根據(jù)視頻預(yù)覽通道的碼流的分辨率,計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量。
具體的,根據(jù)視頻預(yù)覽通道的碼流的分辨率,計算各個通道所對應(yīng)的解碼資源的消耗量,可以包括三種方式,分別為:
方式一:
根據(jù)公式m=a*f+b計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量,其中m為解碼資源消耗量,a為與解碼芯片相關(guān)的消耗基數(shù),f為幀大小,b為與解碼的幀大小無關(guān)的輔助結(jié)構(gòu)所消耗的資源。其中,參數(shù)b的數(shù)值與解碼芯片有關(guān),可以在沒有視頻解碼時,讀取當(dāng)前由視頻解碼模塊所消耗的資源即為參數(shù)b的大小,可以在設(shè)備出廠時預(yù)先測試和設(shè)置好。所述參數(shù)a可以根據(jù)多次的統(tǒng)計測試,計算得到參數(shù)a的數(shù)值,也可在出廠前測試和設(shè)置好。nvr設(shè)備的底層解碼器的解碼資源有限,在實時預(yù)覽方式下,如果解碼后的數(shù)據(jù)幀信息需要消耗的資源大到底層無法滿足的情形下,上層不做相應(yīng)的處理,會造成底層資源的浪費,同時也會造成數(shù)據(jù)幀的丟失,從而預(yù)覽功能出現(xiàn)異常。
為了避免解碼資源不足,本步驟對不同幀大小所消耗的底層資源的內(nèi)存的大小,并依據(jù)采樣點,計算出解碼資源消耗量m=a*f+b。其中,幀大小消耗基數(shù)nvr解碼芯片以及網(wǎng)絡(luò)攝像頭ipc的采樣率相關(guān),輔助結(jié)構(gòu)消耗的資源b與nvr的實現(xiàn)方式相關(guān)。同時,我們將底層解碼芯片所擁有的最大內(nèi)存數(shù)當(dāng)做芯片的解碼資源最大值。
為了進(jìn)一步提高比較效率,避免按位進(jìn)行比較時消耗較多的硬件資源的總理,本發(fā)明所述判斷所述碼流對應(yīng)的解碼資源消耗量是否大于系統(tǒng)剩余資源量的步驟可以為:
將碼流對應(yīng)的解碼資源消耗量通過轉(zhuǎn)換公式轉(zhuǎn)換為碼流消耗值,以及將所述系統(tǒng)剩余資源量通過轉(zhuǎn)換公式轉(zhuǎn)換為系統(tǒng)剩余資源值,再比較所述解碼資源消耗值和系統(tǒng)剩余資源值的大小,其中,所述轉(zhuǎn)換公式為:|(x+m/2)/m|=y(tǒng),x為資源量,x為資源值,m為換算倍數(shù),比如m可以為10等,“||”為取整運算。
通過將消耗量換算為資源值,可以大大的減少對資源量大小的比較的復(fù)雜度,通過資源值可以更為有效的進(jìn)行比較,有利于提高比較效率。
方式二:
根據(jù)預(yù)設(shè)的分辨率與解碼資源消耗量或解碼資源消耗值的對應(yīng)表,在所述對應(yīng)表中查找所述視頻預(yù)覽通道的碼流的分辨率所對應(yīng)的解碼資源消耗量或解碼資源消耗值。所述對應(yīng)表中的分辨率,可以選用常見的分辨率。所述對應(yīng)表可以預(yù)先由工作人員統(tǒng)計或者計算得到。通過查表,可以更為快速的查找到分辨率所對應(yīng)的資源消耗量或資源消耗值,便于后續(xù)的比較。
方式三:
在方式二的對應(yīng)表的基礎(chǔ)上,進(jìn)一步對分辨率進(jìn)行范圍的劃分,使得對應(yīng)關(guān)系更加簡單化,具體的解碼資源消耗量的查找可以包括以下步驟:
2.1查找視頻預(yù)覽通道的碼流的分辨率所屬的分辨率區(qū)間;
2.2根據(jù)預(yù)設(shè)的分辨率區(qū)間與解碼資源消耗量的對應(yīng)關(guān)系,查找所述視頻預(yù)覽通道的碼流的分辨率所對應(yīng)的解碼資源消耗量。
通過預(yù)先設(shè)定不同的分辨率區(qū)間與解碼資源消耗量的對應(yīng)關(guān)系,該對應(yīng)關(guān)系可以根據(jù)統(tǒng)計數(shù)據(jù)建立。另外,根據(jù)ipc端常見的碼流的分辨率的統(tǒng)計,可以設(shè)定常見的分辨率所對應(yīng)的解碼資源消耗量,從而可以快速的查找ipc端的視頻所對應(yīng)的解碼資源消耗量。
在步驟s203中,在對視頻預(yù)覽通道的碼流進(jìn)行解碼時,判斷所述碼流對應(yīng)的解碼資源消耗量是否大于系統(tǒng)剩余資源量。
在對視頻預(yù)覽通道的碼流進(jìn)行解碼時,實時的獲取碼流的分辨率,并根據(jù)所述分辨率查找對應(yīng)的解碼資源消耗量,并且同時獲取當(dāng)前的系統(tǒng)剩余資源量,將兩者進(jìn)行比較,得到系統(tǒng)當(dāng)前是否可以滿足對當(dāng)前通道的碼流進(jìn)行解碼的資源要求。
在步驟s204中,如果所述碼流對應(yīng)的解碼資源消耗量大于系統(tǒng)剩余資源量,則根據(jù)當(dāng)前視頻預(yù)覽通道的碼流的下一碼流進(jìn)行判斷。
如果系統(tǒng)的解碼資源不能滿足當(dāng)前的通道的碼流的解碼要求,則根據(jù)視頻預(yù)覽通道的碼流的下一碼流進(jìn)行判斷。如果下一碼流的分辨率所對應(yīng)的解碼資源仍然大于系統(tǒng)剩余資源量,則再獲取下一碼流的下一碼流進(jìn)行判斷,直到判斷得到碼流的分辨率對應(yīng)的解碼資源小于系統(tǒng)剩余資源量,則對該碼流進(jìn)行解碼操作。
可選的實施方式中,還可以預(yù)先設(shè)定碼流的優(yōu)先級順序,在當(dāng)前碼流不符合要求(系統(tǒng)的解碼資源不能滿足當(dāng)前的通道的碼流的解碼要求)時,選擇下一個優(yōu)先級的碼流,對下一個優(yōu)先級的碼流進(jìn)行解碼。
其中,對下一個優(yōu)先級的碼流進(jìn)行解碼時,同樣可以獲取下一個優(yōu)先級的碼流的分辨率,并查找該分辨率所對應(yīng)的解碼資源消耗值,如果系統(tǒng)能滿足其解碼要求,則將所述碼流直接送到底層解碼器。如果系統(tǒng)仍然不能夠滿足其解碼要求,則繼續(xù)查找所述下一個優(yōu)先級的碼流所對應(yīng)的下一個優(yōu)先級的碼流,直到查找到滿足要求的碼流。
如圖3為本發(fā)明實施例提供的又一視頻預(yù)覽方法的實現(xiàn)流程,詳述如下:
在步驟s301中,獲取視頻預(yù)覽通道的碼流的分辨率。
在步驟s302中,根據(jù)視頻預(yù)覽通道的碼流的分辨率,計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量。
在步驟s303中,判斷所述視頻預(yù)覽通道的碼流的分辨率或系統(tǒng)剩余資源量是否發(fā)生變化。
具體的,所述視頻預(yù)覽通道的碼流的分辨率值如果發(fā)生變化,由碼流的分辨的變化,必然會相應(yīng)的改變解碼資源消耗值的變化。另外,系統(tǒng)剩余資源量的變化,可以包括視頻的布局信息和碼流屬性是否發(fā)生變化來判斷。對于視頻的布局信息的變化,比如預(yù)覽畫面上設(shè)置為4畫面、8畫面、9畫面、16畫面、25畫面或36畫面的布局信息的更改;碼流屬性是否發(fā)生變化同樣會造成系統(tǒng)剩余資源值的改變,比如設(shè)定各個布局下視頻預(yù)覽通道的碼流的屬性為主碼流或者子碼流等。可以根據(jù)用戶的配置以及布局信息調(diào)整當(dāng)前通道上的碼流的順序,并且用戶的配置的碼流順序的優(yōu)先級高于布局信息的優(yōu)先級。
在步驟s304中,如果發(fā)生變化,則在對視頻預(yù)覽通道的碼流進(jìn)行解碼時,判斷所述碼流對應(yīng)的解碼資源消耗量是否大于系統(tǒng)剩余資源量。
在步驟s305中,如果所述碼流對應(yīng)的解碼資源消耗量大于系統(tǒng)剩余資源量,則根據(jù)當(dāng)前視頻預(yù)覽通道的碼流的下一碼流進(jìn)行判斷。
圖3所述視頻預(yù)覽方法,在圖2的基礎(chǔ)上進(jìn)一步對解碼消耗的資源是否發(fā)生變化進(jìn)行判斷,從而可以減少對系統(tǒng)剩余資源的計算次數(shù)。只有在解碼資源消耗量發(fā)生變化時,比如布局信息發(fā)生變化或者碼流屬性發(fā)生變化時,并可對解碼資源消耗量與之前的解碼資源消耗量比較,如果大于之前的解碼資源消耗量,才獲取系統(tǒng)剩余的資源,從而可以減少對系統(tǒng)剩余的資源的計算次數(shù)。
應(yīng)理解,上述實施例中各步驟的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實施例的實施過程構(gòu)成任何限定。
圖4為本發(fā)明實施例提供的多通知的視頻預(yù)覽裝置的結(jié)構(gòu)示意圖,詳述如下:
所述多通知的視頻預(yù)覽裝置包括:
分辨率獲取單元401,用于獲取視頻預(yù)覽通道的碼流的分辨率;
解碼資源消耗量計算單元402,用于根據(jù)視頻預(yù)覽通道的碼流的分辨率,計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量;
判斷單元403,用于在對視頻預(yù)覽通道的碼流進(jìn)行解碼時,判斷所述碼流對應(yīng)的解碼資源消耗量是否大于系統(tǒng)剩余資源量;
碼流選擇單元404,用于如果所述碼流對應(yīng)的解碼資源消耗量大于系統(tǒng)剩余資源量,則根據(jù)當(dāng)前視頻預(yù)覽通道的碼流的下一碼流進(jìn)行判斷。
優(yōu)選的,所述解碼資源消耗量計算單元用于:
根據(jù)公式m=a*f+b計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量,其中m為解碼資源消耗量,a為與解碼芯片相關(guān)的消耗基數(shù),f為幀大小,b為與解碼的幀大小無關(guān)的輔助結(jié)構(gòu)所消耗的資源。
優(yōu)選的,所述分辨率獲取單元用于:
獲取視頻預(yù)覽通道的碼流的初始條件下的參數(shù)幀,根據(jù)所述參數(shù)幀讀取碼流的分辨率。
本發(fā)明實施例所述視頻預(yù)覽裝置,與圖2-3所述的視頻預(yù)覽方法對應(yīng)。
圖5是本發(fā)明一實施例提供的視頻預(yù)覽設(shè)備的示意圖。如圖5所示,該實施例的視頻預(yù)覽設(shè)備5包括:處理器50、存儲器51以及存儲在所述存儲器51中并可在所述處理器50上運行的計算機程序52,例如視頻預(yù)覽程序。所述處理器50執(zhí)行所述計算機程序52時實現(xiàn)上述各個視頻預(yù)覽方法實施例中的步驟,例如圖2所示的步驟201至204?;蛘?,所述處理器50執(zhí)行所述計算機程序52時實現(xiàn)上述各裝置實施例中各模塊/單元的功能,例如圖4所示模塊401至404的功能。
示例性的,所述計算機程序52可以被分割成一個或多個模塊/單元,所述一個或者多個模塊/單元被存儲在所述存儲器51中,并由所述處理器50執(zhí)行,以完成本發(fā)明。所述一個或多個模塊/單元可以是能夠完成特定功能的一系列計算機程序指令段,該指令段用于描述所述計算機程序52在所述視頻預(yù)覽設(shè)備5中的執(zhí)行過程。例如,所述計算機程序52可以被分割成分辨率獲取單元、解碼資源消耗量計算單元、判斷單元、碼流選擇單元,各模塊具體功能如下:
分辨率獲取單元,用于獲取視頻預(yù)覽通道的碼流的分辨率;
解碼資源消耗量計算單元,用于根據(jù)視頻預(yù)覽通道的碼流的分辨率,計算視頻預(yù)覽通道所對應(yīng)的解碼資源消耗量;
判斷單元,用于在對視頻預(yù)覽通道的碼流進(jìn)行解碼時,判斷所述碼流對應(yīng)的解碼資源消耗量是否大于系統(tǒng)剩余資源量;
碼流選擇單元,用于如果所述碼流對應(yīng)的解碼資源消耗量大于系統(tǒng)剩余資源量,則根據(jù)當(dāng)前視頻預(yù)覽通道的碼流的下一碼流進(jìn)行判斷。
所述視頻預(yù)覽設(shè)備5可以是桌上型計算機、筆記本、掌上電腦及云端服務(wù)器等計算設(shè)備。所述視頻預(yù)覽設(shè)備可包括,但不僅限于,處理器50、存儲器51。本領(lǐng)域技術(shù)人員可以理解,圖5僅僅是視頻預(yù)覽設(shè)備5的示例,并不構(gòu)成對視頻預(yù)覽設(shè)備5的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件,例如所述視頻預(yù)覽設(shè)備還可以包括輸入輸出設(shè)備、網(wǎng)絡(luò)接入設(shè)備、總線等。
所稱處理器50可以是中央處理單元(centralprocessingunit,cpu),還可以是其他通用處理器、數(shù)字信號處理器(digitalsignalprocessor,dsp)、專用集成電路(applicationspecificintegratedcircuit,asic)、現(xiàn)成可編程門陣列(field-programmablegatearray,fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
所述存儲器51可以是所述視頻預(yù)覽設(shè)備5的內(nèi)部存儲單元,例如視頻預(yù)覽設(shè)備5的硬盤或內(nèi)存。所述存儲器51也可以是所述視頻預(yù)覽設(shè)備5的外部存儲設(shè)備,例如所視頻預(yù)覽設(shè)備5上配備的插接式硬盤,智能存儲卡(smartmediacard,smc),安全數(shù)字(securedigital,sd)卡,閃存卡(flashcard)等。進(jìn)一步地,所述存儲器51還可以既包括所述視頻預(yù)覽設(shè)備5的內(nèi)部存儲單元也包括外部存儲設(shè)備。所述存儲器51用于存儲所述計算機程序以及所述視頻預(yù)覽設(shè)備所需的其他程序和數(shù)據(jù)。所述存儲器51還可以用于暫時地存儲已經(jīng)輸出或者將要輸出的數(shù)據(jù)。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡潔,僅以上述各功能單元、模塊的劃分進(jìn)行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能單元、模塊完成,即將所述裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能單元或模塊,以完成以上描述的全部或者部分功能。實施例中的各功能單元、模塊可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中,上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。另外,各功能單元、模塊的具體名稱也只是為了便于相互區(qū)分,并不用于限制本申請的保護(hù)范圍。上述系統(tǒng)中單元、模塊的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述或記載的部分,可以參見其它實施例的相關(guān)描述。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
在本發(fā)明所提供的實施例中,應(yīng)該理解到,所揭露的裝置/終端設(shè)備和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置/終端設(shè)備實施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過一些接口,裝置或單元的間接耦合或通訊連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的模塊/單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明實現(xiàn)上述實施例方法中的全部或部分流程,也可以通過計算機程序來指令相關(guān)的硬件來完成,所述的計算機程序可存儲于一計算機可讀存儲介質(zhì)中,該計算機程序在被處理器執(zhí)行時,可實現(xiàn)上述各個方法實施例的步驟。。其中,所述計算機程序包括計算機程序代碼,所述計算機程序代碼可以為源代碼形式、對象代碼形式、可執(zhí)行文件或某些中間形式等。所述計算機可讀介質(zhì)可以包括:能夠攜帶所述計算機程序代碼的任何實體或裝置、記錄介質(zhì)、u盤、移動硬盤、磁碟、光盤、計算機存儲器、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、電載波信號、電信信號以及軟件分發(fā)介質(zhì)等。需要說明的是,所述計算機可讀介質(zhì)包含的內(nèi)容可以根據(jù)司法管轄區(qū)內(nèi)立法和專利實踐的要求進(jìn)行適當(dāng)?shù)脑鰷p,例如在某些司法管轄區(qū),根據(jù)立法和專利實踐,計算機可讀介質(zhì)不包括電載波信號和電信信號。
以上所述實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。