一種基于云桌面的視頻流處理方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種基于云桌面的視頻流處理方法及裝置。該方法包括:監(jiān)控云桌面服務(wù)器和終端之間的網(wǎng)絡(luò)狀態(tài)以確定網(wǎng)絡(luò)參數(shù);接收終端運行的性能參數(shù)并確定終端運行狀態(tài);根據(jù)所述終端的運行狀態(tài)和網(wǎng)絡(luò)參數(shù)調(diào)整視頻幀壓縮率和幀率;基于所述視頻幀壓縮率和幀率對視頻數(shù)據(jù)進行壓縮處理,以得到與當(dāng)前終端運行狀態(tài)和網(wǎng)絡(luò)狀態(tài)相匹配的視頻流。本發(fā)明可根據(jù)當(dāng)前網(wǎng)絡(luò)的負載情況實時調(diào)整視頻幀壓縮率,并結(jié)合終端的運行狀態(tài)調(diào)整視頻幀的幀率,從而優(yōu)化云桌面視頻傳輸?shù)膲嚎s方法,降低云桌面系統(tǒng)對帶寬的要求。
【專利說明】—種基于云桌面的視頻流處理方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云計算【技術(shù)領(lǐng)域】,具體地說,涉及一種基于云桌面的視頻流處理方法及裝置。
【背景技術(shù)】
[0002]隨著云計算的不斷發(fā)展,虛擬桌面解決方案日益成熟,桌面虛擬化成為典型的云計算應(yīng)用。云桌面是一種基于中心服務(wù)器的計算模型,建立在服務(wù)器虛擬化的基礎(chǔ)之上。所有的桌面虛擬機在數(shù)據(jù)中心進行托管并統(tǒng)一管理,同時,用戶能夠獲得完整的PC使用體驗,可以根據(jù)自己的需求使用虛擬桌面服務(wù)。
[0003]在云桌面模式下,桌面服務(wù)器和用戶終端之間可以完成圖形、圖像和音頻的傳輸。桌面服務(wù)器需要實時地將桌面圖像傳輸?shù)接脩艚K端,同時還要處理用戶終端接收的鼠標、鍵盤和其他外設(shè)的輸入信息。這些應(yīng)用對網(wǎng)絡(luò)性能提出了很高的要求。
[0004]特別地,在用戶使用云桌面的過程中,視頻播放是一種必不可少的重要應(yīng)用。現(xiàn)有的云桌面視頻播放技術(shù)并不能根據(jù)網(wǎng)絡(luò)環(huán)境狀態(tài)來動態(tài)調(diào)整視頻的傳輸效率。這導(dǎo)致在低帶寬的網(wǎng)絡(luò)環(huán)境下不能提供流暢的視頻數(shù)據(jù),而在網(wǎng)絡(luò)環(huán)境較好的情況下,又不能充分利用帶寬資源來提供高清晰度的視頻。
[0005]因此,如何提高云桌面的視頻播放性能,使用戶獲得普通PC的視頻播放體驗,是擺在云桌面提供商面前的一種技術(shù)難題。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所解決的技術(shù)問題之一在于,現(xiàn)有的云桌面視頻播放技術(shù)存在不能根據(jù)網(wǎng)絡(luò)狀態(tài)動態(tài)調(diào)整視頻傳輸效率的技術(shù)缺陷。
[0007]本發(fā)明提供一種基于云桌面的視頻流處理方法,包括以下步驟:
[0008]監(jiān)控云桌面服務(wù)器和終端之間的網(wǎng)絡(luò)狀態(tài)以確定網(wǎng)絡(luò)參數(shù);
[0009]接收終端運行的性能參數(shù)并確定終端運行狀態(tài);
[0010]根據(jù)所述終端的運行狀態(tài)和網(wǎng)絡(luò)參數(shù)調(diào)整視頻幀壓縮率和幀率;
[0011]基于所述視頻幀壓縮率和幀率對視頻數(shù)據(jù)進行壓縮處理,以得到與當(dāng)前終端運行狀態(tài)和網(wǎng)絡(luò)狀態(tài)相匹配的視頻流。
[0012]在一個實施例中,在根據(jù)所述終端的運行狀態(tài)和網(wǎng)絡(luò)狀態(tài)調(diào)整視頻幀壓縮率和幀率的步驟中包括:
[0013]由第一預(yù)設(shè)網(wǎng)絡(luò)參數(shù)和監(jiān)控得到的網(wǎng)絡(luò)參數(shù)判斷網(wǎng)絡(luò)的負載情況,進而根據(jù)網(wǎng)絡(luò)的負載情況調(diào)整視頻幀壓縮率;
[0014]根據(jù)所述視頻幀壓縮率和終端的運行狀態(tài)調(diào)整幀率。
[0015]在一個實施例中,在根據(jù)網(wǎng)絡(luò)的負載情況調(diào)整視頻幀壓縮率的步驟中,
[0016]在網(wǎng)絡(luò)為重負載的情況下,若當(dāng)前視頻幀壓縮率大于第一預(yù)設(shè)壓縮率,則增大視頻幀壓縮率以使得視頻幀數(shù)據(jù)量減小,若當(dāng)前視頻幀壓縮率小于第一預(yù)設(shè)壓縮率,則將視頻幀壓縮率設(shè)定為第一預(yù)設(shè)壓縮率;
[0017]在網(wǎng)絡(luò)為輕負載的情況下,若當(dāng)前視頻幀壓縮率大于第一預(yù)設(shè)壓縮率,則減小視頻幀壓縮率以使得視頻幀數(shù)據(jù)量增大。
[0018]在一個實施例中,在根據(jù)所述視頻幀壓縮率和終端的運行狀態(tài)調(diào)整幀率的步驟中,
[0019]在終端處于繁忙狀態(tài)時,則在所述視頻幀壓縮率大于第一預(yù)設(shè)壓縮率的情況下,將幀率設(shè)定為預(yù)設(shè)的繁忙狀態(tài)幀率;
[0020]在終端處于空閑狀態(tài)時,則在監(jiān)控得到的網(wǎng)絡(luò)參數(shù)小于第二預(yù)設(shè)網(wǎng)絡(luò)參數(shù)的情況下,將幀率設(shè)定為預(yù)設(shè)的空閑狀態(tài)幀率,其中所述空閑狀態(tài)幀率大于繁忙狀態(tài)幀率。
[0021]在一個實施例中,在終端處于繁忙狀態(tài)時,根據(jù)終端運行的性能參數(shù)將終端的繁忙狀態(tài)劃分為不同等級,并分別設(shè)定相應(yīng)的繁忙狀態(tài)幀率。
[0022]在一個實施例中,在網(wǎng)絡(luò)為輕負載的情況下,若當(dāng)前視頻幀壓縮率小于第一預(yù)設(shè)壓縮率,則判斷最后一個視頻幀的大小是否小于平均幀大小,
[0023]若是,則將當(dāng)前視頻幀壓縮率設(shè)定為第二預(yù)設(shè)壓縮率,以增大視頻幀的數(shù)據(jù)量,其中,第一預(yù)設(shè)壓縮率大于第二預(yù)設(shè)壓縮率;
[0024]若否,則對將當(dāng)前視頻幀壓縮率不做調(diào)整。
[0025]本發(fā)明還提供一種基于云桌面的視頻流處理裝置,包括:
[0026]監(jiān)控單元,用于監(jiān)控云桌面服務(wù)器和終端之間的網(wǎng)絡(luò)狀態(tài)以確定網(wǎng)絡(luò)參數(shù);
[0027]接收單元,用于接收終端運行的性能參數(shù)并確定終端運行狀態(tài);
[0028]調(diào)整單元,用于根據(jù)所述終端的運行狀態(tài)和網(wǎng)絡(luò)參數(shù)調(diào)整視頻幀壓縮率和幀率;
[0029]處理單元,用于基于所述視頻幀壓縮率和幀率對視頻數(shù)據(jù)進行壓縮處理,以得到與當(dāng)前終端運行狀態(tài)和網(wǎng)絡(luò)狀態(tài)相匹配的視頻流。
[0030]在一個實施例中,所述調(diào)整單元進一步包括:
[0031]壓縮率調(diào)整模塊,其用于由第一預(yù)設(shè)網(wǎng)絡(luò)參數(shù)和監(jiān)控得到的網(wǎng)絡(luò)參數(shù)判斷網(wǎng)絡(luò)的負載情況,進而根據(jù)網(wǎng)絡(luò)的負載情況調(diào)整視頻幀壓縮率;
[0032]幀率調(diào)整模塊,其用于根據(jù)所述視頻幀壓縮率和終端的運行狀態(tài)調(diào)整幀率。
[0033]在一個實施例中,所述壓縮率調(diào)整模塊還包括:
[0034]重載調(diào)整子模塊,用于在網(wǎng)絡(luò)為重負載的情況下,若當(dāng)前視頻幀壓縮率大于第一預(yù)設(shè)壓縮率,則增大視頻幀壓縮率以使得視頻幀數(shù)據(jù)量減小,若當(dāng)前視頻幀壓縮率小于第一預(yù)設(shè)壓縮率,則將視頻幀壓縮率設(shè)定為第一預(yù)設(shè)壓縮率;
[0035]輕載調(diào)整子模塊,其用于在網(wǎng)絡(luò)為輕負載的情況下,若當(dāng)前視頻幀壓縮率大于第一預(yù)設(shè)壓縮率,則減小視頻幀壓縮率以使得視頻幀數(shù)據(jù)量增大。
[0036]在一個實施例中,所述幀率調(diào)整模塊還包括:
[0037]繁忙狀態(tài)調(diào)整子模塊,其用于在終端處于繁忙狀態(tài)時,在所述視頻幀壓縮率大于第一預(yù)設(shè)壓縮率的情況下,將幀率設(shè)定為預(yù)設(shè)的繁忙狀態(tài)幀率;
[0038]空閑狀態(tài)調(diào)整子模塊,其用于在終端處于空閑狀態(tài)時,在監(jiān)控得到的網(wǎng)絡(luò)參數(shù)小于第二預(yù)設(shè)網(wǎng)絡(luò)參數(shù)的情況下,將幀率設(shè)定為預(yù)設(shè)的空閑狀態(tài)幀率,其中所述空閑狀態(tài)幀率大于繁忙狀態(tài)幀率。
[0039]本發(fā)明的有益效果在于,可根據(jù)當(dāng)前網(wǎng)絡(luò)的負載情況實時調(diào)整視頻幀壓縮率,并結(jié)合終端的運行狀態(tài)調(diào)整視頻幀的幀率,從而優(yōu)化云桌面視頻傳輸?shù)膲嚎s方法,降低云桌面系統(tǒng)對帶寬的要求。
[0040]與常規(guī)的視頻壓縮方法相比,本發(fā)明實施例不僅可針對視頻幀內(nèi)部的冗余進行壓縮,還能通過調(diào)整幀率壓縮幀與幀之間的發(fā)送間隔,從而實現(xiàn)幀間壓縮。
[0041]此外,本發(fā)明實施例通過云桌面服務(wù)器完成視頻幀內(nèi)部壓縮和幀間壓縮,在不增加客戶終端附加功能的前提之下提高壓縮效果。
[0042]本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
【專利附圖】
【附圖說明】
[0043]附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例共同用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0044]圖1是本發(fā)明實施例的云桌面服務(wù)器和終端設(shè)備的網(wǎng)絡(luò)架構(gòu)示意圖;
[0045]圖2是本發(fā)明實施例的基于云桌面的視頻流處理方法的步驟流程圖;
[0046]圖3為本發(fā)明實施例中云桌面服務(wù)器確定終端運行狀態(tài)的步驟流程圖;
[0047]圖4為本發(fā)明實施例中云桌面服務(wù)器調(diào)整視頻壓縮率的步驟流程圖;
[0048]圖5為本發(fā)明實施例中云桌面服務(wù)器調(diào)整視頻幀率的步驟流程圖;
[0049]圖6為本發(fā)明實施例中基于云桌面的視頻流處理裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0050]以下將結(jié)合附圖及實施例來詳細說明本發(fā)明的實施方式,借此對本發(fā)明如何應(yīng)用技術(shù)手段來解決技術(shù)問題,并達成技術(shù)效果的實現(xiàn)過程能充分理解并據(jù)以實施。在不相沖突的前提下,本發(fā)明的實施例以及各實施例中的技術(shù)特征可以相互組合。
[0051]本發(fā)明的實施例提供一種基于云桌面的視頻流數(shù)據(jù)處理方法,特別是提供一種基于簡單協(xié)議獨立計算環(huán)境(Simple Protocol for Independent Computing Environment,SPICE)的云桌面視頻播放性能優(yōu)化方法。本發(fā)明的實施例采用靈活的自適應(yīng)機制提高云桌面視頻的傳輸效率,以動態(tài)適應(yīng)不同的網(wǎng)絡(luò)環(huán)境和終端的運行狀態(tài),從而解決用戶終端在使用云桌面進行視頻播放的過程中出現(xiàn)的性能不佳問題。
[0052]在本發(fā)明的實施例中,云桌面是由云桌面服務(wù)器向終端設(shè)備提供的一種靈活的虛擬化桌面環(huán)境,終端設(shè)備通過SPICE協(xié)議訪問云桌面服務(wù)器從而獲得視頻服務(wù)。圖1為本發(fā)明實施例中云桌面服務(wù)器和終端設(shè)備的網(wǎng)絡(luò)架構(gòu)示意圖。云桌面服務(wù)器11和若干終端設(shè)備12之間通過通信網(wǎng)絡(luò)連接,云桌面服務(wù)器11中存儲大量視頻數(shù)據(jù),基于SPICE協(xié)議可響應(yīng)于終端設(shè)備12的請求并將相應(yīng)的視頻流傳輸給終端設(shè)備。其中,終端設(shè)備12可采用PC (臺式機或者筆記本電腦)、瘦客戶機設(shè)備或者移動終端設(shè)備等。
[0053]實施例一
[0054]圖2為本實施例中基于云桌面的視頻流處理方法的步驟流程圖。以下參照圖2對本實施例中的方法做詳細說明。
[0055]在步驟S210中,云桌面服務(wù)器監(jiān)控云桌面服務(wù)器和終端之間的網(wǎng)絡(luò)狀態(tài)以確定網(wǎng)絡(luò)參數(shù)。其中,網(wǎng)絡(luò)參數(shù)包括但不限于網(wǎng)絡(luò)延遲時間、丟包率和吞吐量等。通過實時監(jiān)控網(wǎng)絡(luò)狀態(tài),可根據(jù)網(wǎng)絡(luò)參數(shù)來判斷網(wǎng)絡(luò)的負載情況。
[0056]例如,如果出現(xiàn)網(wǎng)絡(luò)延遲時間過大、丟包率增加或者吞吐量降低,則表明當(dāng)前的網(wǎng)絡(luò)傳輸狀態(tài)不佳,需要對視頻幀做較大程度的壓縮以適應(yīng)當(dāng)前的網(wǎng)絡(luò)狀況。如果網(wǎng)絡(luò)延遲時間較小、丟包率很小或者吞吐量較高,則表明當(dāng)前的網(wǎng)絡(luò)傳輸狀態(tài)較佳,能夠支撐清晰度較高的視頻流,可以降低對視頻幀的壓縮程度。
[0057]在步驟S220中,云桌面服務(wù)器接收終端運行的性能參數(shù)并確定終端運行狀態(tài)。其中,終端運行的性能參數(shù)包括但不限于CPU使用率和內(nèi)存使用率等,可用于判斷終端當(dāng)前運行的繁忙程度。
[0058]在終端運行的繁忙程度較高時,則不能處理較高幀率的視頻流,需要相應(yīng)減小視頻幀的幀率來使用戶所觀看的視頻流更加流暢。相反地,在終端處于空閑狀態(tài)時,則可相應(yīng)提聞視頻巾貞的巾貞率,來減少視頻圖像的跳動,使視頻圖像較穩(wěn)定。
[0059]隨后,在步驟S230中,云桌面服務(wù)器根據(jù)終端的運行狀態(tài)和網(wǎng)絡(luò)參數(shù)調(diào)整視頻幀壓縮率和幀率。具體來說,由第一預(yù)設(shè)網(wǎng)絡(luò)參數(shù)和監(jiān)控得到的網(wǎng)絡(luò)參數(shù)判斷網(wǎng)絡(luò)的負載情況,進而根據(jù)網(wǎng)絡(luò)的負載情況調(diào)整視頻幀壓縮率,隨后根據(jù)視頻幀壓縮率和終端的運行狀態(tài)調(diào)整幀率。其中,第一預(yù)設(shè)網(wǎng)絡(luò)參數(shù)可以是上文所述的網(wǎng)絡(luò)延遲時間、丟包率和吞吐量等參數(shù)中的一種或者幾種。
[0060]在本示例中,SPICE的視頻傳輸采用MJPEG運動靜止圖像(或逐幀)壓縮技術(shù)來完成視頻幀壓縮。MJPEG壓縮處理前與處理后的最小獨立單元都是幀,可以對每一幀進行壓縮。這樣,利用MJPEG對視頻圖像進行編輯時,可以方便地定位到某一幀。
[0061]但是,MJPEG壓縮方法并未考慮到視頻流中不同幀之間的變化,只針對單獨的某一幀進行壓縮。其壓縮倍數(shù)為20-80倍,分辨率可從352*288到704*576,但是其壓縮效率較低。由于MJPEG壓縮算法是根據(jù)每一幀圖像的內(nèi)容進行壓縮,而不是根據(jù)相鄰幀圖像之間的差異進行壓縮,因此造成大量冗余信息被重復(fù)存儲。如果采用更高的壓縮率則會導(dǎo)致視頻圖像更加模糊,圖像質(zhì)量嚴重降低。
[0062]為此,本示例中在調(diào)整壓縮率時,同時調(diào)整視頻幀的幀率,來靈活控制在單位時間內(nèi)傳輸?shù)囊曨l幀的幀數(shù)。這樣既能夠保證每個視頻幀內(nèi)較優(yōu)的壓縮程度,又能控制幀與幀之間合理的傳送時間,使得用戶在終端觀看視頻時,視頻清晰度更高并且流暢。
[0063]接下來,在步驟S240中,云桌面服務(wù)器基于調(diào)整之后的視頻幀壓縮率和幀率對視頻數(shù)據(jù)進行壓縮處理,以得到與當(dāng)前終端運行狀態(tài)和網(wǎng)絡(luò)狀態(tài)相匹配的視頻流。這樣通過云桌面服務(wù)器通過監(jiān)測用戶終端的運行狀態(tài)和網(wǎng)絡(luò)負載狀態(tài),實時調(diào)整對視頻幀的壓縮程度,完成視頻幀內(nèi)部壓縮和幀間壓縮,得到與用戶終端實際使用情況匹配的視頻流。
[0064]優(yōu)選地,本實施例還包括發(fā)送步驟,發(fā)送與當(dāng)前終端運行狀態(tài)和網(wǎng)絡(luò)狀態(tài)相匹配的視頻流。具體來說,將經(jīng)過壓縮處理的視頻流送入發(fā)送隊列,依次發(fā)送至用戶終端。
[0065]以下對步驟S220中云桌面服務(wù)器根據(jù)接收終端運行的性能參數(shù)來確定終端運行狀態(tài)的過程進行詳細說明。圖3為本實施例中確定終端運行狀態(tài)的步驟流程圖。在本示例中優(yōu)選終端的CPU使用率和內(nèi)存使用率做為終端運行的性能參數(shù),并設(shè)定性能參數(shù)的閾值。通過終端實時運行的性能參數(shù)與預(yù)設(shè)的閾值比較,來確定終端處在空閑或者繁忙的狀態(tài)。
[0066]優(yōu)選的,可預(yù)設(shè)多個性能參數(shù)閾值來將終端的繁忙狀態(tài)劃分為不同等級,從而在后續(xù)調(diào)整幀率的步驟中,根據(jù)繁忙狀態(tài)的不同等級設(shè)定相應(yīng)的幀率。
[0067]在圖3中,云桌面服務(wù)器首先獲取終端的CPU使用率(步驟S310),并獲取終端的內(nèi)存使用率(步驟S320)。將終端的CPU使用率和內(nèi)存使用率與第一閾值比較(步驟S330),若CPU使用率或者內(nèi)存使用率小于第一閾值,則將終端的CPU使用率和內(nèi)存使用率與第二閾值比較(步驟S350),若CPU使用率或者內(nèi)存使用率小于第二閾值,則返回終端的狀態(tài)為空閑狀態(tài)(步驟S370)。為了便于說明,此處將空閑狀態(tài)記為第一狀態(tài)。終端處于空閑狀態(tài)說明可以處理高清視頻流。
[0068]在一個優(yōu)選方案中,第一閾值設(shè)定為80%,第二閾值設(shè)定為60%。容易理解,根據(jù)不同的終端類型可以為第一和第二閾值設(shè)定不同的數(shù)值。
[0069]在步驟S330中,如果CPU使用率和內(nèi)存使用率均大于第一閾值,則返回終端的狀態(tài)為第二狀態(tài)(步驟S340)。在步驟S350中,如果CPU使用率和內(nèi)存使用率均大于第一閾值,則返回終端的狀態(tài)為第三狀態(tài)(步驟S360)。
[0070]其中,在第二狀態(tài)和第三狀態(tài)下,終端均處于繁忙狀態(tài),不適合處理清晰度較高且?guī)瘦^高的視頻流。且第二狀態(tài)的繁忙程度較第三狀態(tài)更高,需要將幀率減小。
[0071]需要說明的是,雖然在圖3的示例中將終端的運行狀態(tài)劃分為上述三種,但可設(shè)定更多個性能參數(shù)閾值來劃分終端繁忙程度的等級。例如,針對筆記本電腦一類的終端,用戶對終端播放的視頻質(zhì)量要求較高,可以對其繁忙程度更細致地分為不同等級,進而設(shè)定不同的幀率。
[0072]以下對步驟S230中,云桌面服務(wù)器由第一預(yù)設(shè)網(wǎng)絡(luò)參數(shù)和監(jiān)控得到的網(wǎng)絡(luò)參數(shù)判斷網(wǎng)絡(luò)的負載情況,進而根據(jù)網(wǎng)絡(luò)的負載情況調(diào)整視頻幀壓縮率的過程進行詳細說明。
[0073]圖4為本實施例中云桌面服務(wù)器調(diào)整視頻壓縮率的步驟流程圖。首先獲取最后一個視頻幀的大小(步驟S410),然后獲取當(dāng)前網(wǎng)絡(luò)狀態(tài)所對應(yīng)的網(wǎng)絡(luò)參數(shù)(步驟S420),判斷當(dāng)前的網(wǎng)絡(luò)參數(shù)是否大于第一預(yù)設(shè)網(wǎng)絡(luò)參數(shù)值(步驟S430)。在一個優(yōu)選的示例中,可以將網(wǎng)絡(luò)傳輸?shù)耐禃r延(Round-Trip Time, RTT)作為網(wǎng)絡(luò)參數(shù),相應(yīng)地將云桌面系統(tǒng)所允許的最大往返時延作為第一預(yù)設(shè)網(wǎng)絡(luò)參數(shù)值。
[0074]若當(dāng)前的網(wǎng)絡(luò)參數(shù)大于第一預(yù)設(shè)網(wǎng)絡(luò)參數(shù)值,說明當(dāng)前的網(wǎng)絡(luò)的工作狀態(tài)為重負載,不適合傳輸高清視頻數(shù)據(jù),那么需要增大壓縮率來使視頻幀數(shù)據(jù)量減小以減輕網(wǎng)絡(luò)負載。在這種情況下,判斷當(dāng)前壓縮率是否小于第一預(yù)設(shè)壓縮率(步驟S440),若是,則將視頻幀壓縮率設(shè)定為第一預(yù)設(shè)壓縮率(S441),若否,則以預(yù)設(shè)步長增加壓縮率直到設(shè)定的壓縮率最大值(S442),來使得視頻幀數(shù)據(jù)量減小,減輕網(wǎng)絡(luò)負載。
[0075]在一個優(yōu)選方案中,第一預(yù)設(shè)壓縮率設(shè)定為60。這樣經(jīng)過步驟S441的調(diào)整,可保證視頻幀保持在按照壓縮率為60進行處理后所對應(yīng)的清晰度,避免過度壓縮導(dǎo)致圖像模糊。
[0076]在步驟S442中壓縮率的增加步長優(yōu)選為10,并設(shè)定的壓縮率最大值為100。不限于此,可針對視頻圖像的不同類型和終端的型號來設(shè)定步長值,保證在壓縮率調(diào)整過程中在終端上展示給用戶的視頻圖像不會產(chǎn)生過大的清晰度差距,以提高用戶體驗。
[0077]若當(dāng)前的網(wǎng)絡(luò)參數(shù)小于第一預(yù)設(shè)網(wǎng)絡(luò)參數(shù)值,說明當(dāng)前的網(wǎng)絡(luò)的工作狀態(tài)為輕負載,能夠傳輸高清視頻,可以減小視頻的壓縮比,甚至可以達到無損壓縮的效果。
[0078]在這種情況下,判斷當(dāng)前壓縮率是否大于第一預(yù)設(shè)壓縮率(步驟S450),若是,則預(yù)設(shè)步長減小壓縮率直到設(shè)定的壓縮率最小值(步驟S451),來使得視頻幀數(shù)據(jù)量增大,提高圖像清晰度。
[0079]在一個優(yōu)選方案中,在步驟S451中壓縮率的減小步長優(yōu)選為10,并設(shè)定的壓縮率最小值為20。本領(lǐng)域技術(shù)人員容易理解,減小步長值和壓縮率最小值可根據(jù)實際的視頻種類和終端類型進行設(shè)置。
[0080]若在步驟S450中判斷當(dāng)前壓縮率小于第一預(yù)設(shè)壓縮率,隨后判斷最后一個視頻幀的大小是否小于平均幀大小(步驟S452)。若是,則說明當(dāng)前視頻幀為短幀,可將當(dāng)前的視頻幀壓縮率設(shè)定為第二預(yù)設(shè)壓縮率值(步驟S453),若否,則當(dāng)前視頻幀壓縮率不做調(diào)難
iF.0
[0081]其中,在步驟S453中,第二預(yù)設(shè)壓縮率優(yōu)選設(shè)定為20,這樣在當(dāng)前視頻幀為短幀,且網(wǎng)絡(luò)負載較輕的情況下可以向終端提供高清圖像。在應(yīng)用中,將第一預(yù)設(shè)壓縮率設(shè)置為大于第二預(yù)設(shè)壓縮率即可。
[0082]至此為止,云服務(wù)器完成對視頻幀壓縮率的調(diào)整,可根據(jù)當(dāng)前網(wǎng)絡(luò)的負載情況實時調(diào)整壓縮率。在網(wǎng)絡(luò)帶寬無法負擔(dān)當(dāng)前的視頻傳輸時,增大視頻的壓縮比;而當(dāng)網(wǎng)絡(luò)帶寬好轉(zhuǎn)時,減小視頻的壓縮比,提高圖像清晰度。
[0083]以下對步驟S230中,云桌面服務(wù)器根據(jù)所述視頻幀壓縮率和終端的運行狀態(tài)調(diào)整幀率的過程進行詳細說明。
[0084]圖5為本實施例中云桌面服務(wù)器調(diào)整視頻調(diào)整幀率的步驟流程圖。首先獲取上文中設(shè)定的視頻幀壓縮率(步驟S510),并獲得終端當(dāng)前的運行狀態(tài)(步驟S520)。判斷終端處于哪一狀態(tài)(步驟S530),若終端處于第一狀態(tài),說明終端處于空閑狀態(tài),可以處理高清晰度的視頻流,則云桌面服務(wù)器實時獲取網(wǎng)絡(luò)參數(shù)(步驟S540)來判斷當(dāng)前的網(wǎng)絡(luò)負載狀態(tài)。
[0085]判斷實時獲取的網(wǎng)絡(luò)參數(shù)是否小于第二預(yù)設(shè)網(wǎng)絡(luò)參數(shù)值(步驟S541),若是,說明當(dāng)前網(wǎng)絡(luò)處于輕負載狀態(tài),則將視頻幀率設(shè)置為第一幀率(步驟S542),從而依照較高的幀率發(fā)送視頻流。這樣能夠配合終端的空閑狀態(tài)和網(wǎng)絡(luò)的輕負載狀態(tài)來提供高碼率的視頻流,在終端上顯示的視頻圖像更穩(wěn)定。
[0086]若實時獲取的網(wǎng)絡(luò)參數(shù)大于第二預(yù)設(shè)網(wǎng)絡(luò)參數(shù)值,說明當(dāng)前網(wǎng)絡(luò)的帶寬狀態(tài)并非最優(yōu),則對視頻幀的幀率不做調(diào)整。在這種狀態(tài)下,盡管終端處于空閑狀態(tài),但是網(wǎng)絡(luò)不適合發(fā)送高碼率視頻,因此對碼率不做調(diào)整。
[0087]在一個優(yōu)選的示例中,可以將網(wǎng)絡(luò)傳輸?shù)耐禃r延RTT作為網(wǎng)絡(luò)參數(shù),相應(yīng)地將云桌面系統(tǒng)預(yù)設(shè)的最小往返時延作為第二預(yù)設(shè)網(wǎng)絡(luò)參數(shù)值。在本示例中可將第一幀率設(shè)定為30,容易理解,針對不同的終端類型和視頻種類可以將第一幀率設(shè)定為不同的數(shù)值。
[0088]若在步驟S530中判斷終端處于第二狀態(tài),即處于繁忙程度較高的狀態(tài),則判斷視頻幀壓縮率是否大于第一預(yù)設(shè)壓縮率(步驟S550)。若是,則說明終端的處理能力不能匹配當(dāng)前的視頻流碼率,將視頻幀率設(shè)置為第二幀率(步驟S551)來降低視頻流的數(shù)據(jù)量,以使終端減輕顯示負擔(dān)。
[0089]若在步驟S530中判斷終端處于第三狀態(tài),即處于繁忙程度較低的狀態(tài),則判斷視頻幀壓縮率是否大于第一預(yù)設(shè)壓縮率(步驟S560)。若是,則說明終端的處理能力不能匹配當(dāng)前的視頻流碼率,將視頻幀率設(shè)置為第三幀率(步驟S561)來降低視頻流的數(shù)據(jù)量,以使終端減輕顯示負擔(dān)。
[0090]為了便于說明,上文中的第一幀率可稱為空閑狀態(tài)幀率,第二和第三幀率可稱為繁忙狀態(tài)幀率。其中,空閑狀態(tài)幀率設(shè)定為大于繁忙狀態(tài)幀率,以向終端提供更流暢的視頻流。
[0091]在一個優(yōu)選的示例中,第二幀率設(shè)定為20,第三幀率設(shè)定為24,以使得當(dāng)終端處于繁忙程度較高的情況下,云桌面服務(wù)器以較低的幀率向終端發(fā)送視頻流。相應(yīng)的,若終端當(dāng)前運行狀態(tài)的繁忙程度降低,可相應(yīng)增大視頻幀的幀率。
[0092]綜上所述,本實施例中提供的方法可根據(jù)當(dāng)前網(wǎng)絡(luò)的負載情況實時調(diào)整視頻幀壓縮率,并結(jié)合終端的運行狀態(tài)調(diào)整視頻幀的幀率,從而優(yōu)化云桌面視頻傳輸?shù)膲嚎s方法,降低云桌面系統(tǒng)對帶寬的要求。
[0093]與常規(guī)的視頻壓縮方法相比,本發(fā)明實施例不僅可針對視頻幀內(nèi)部的冗余進行壓縮,還能通過調(diào)整幀率壓縮幀與幀之間的發(fā)送間隔,從而實現(xiàn)幀間壓縮。
[0094]此外,本發(fā)明實施例通過云桌面服務(wù)器完成視頻幀內(nèi)部壓縮和幀間壓縮,在不增加客戶終端附加功能的前提之下提高壓縮效果。
[0095]實施例二
[0096]本實施例提供一種基于云桌面的視頻流處理裝置,其結(jié)構(gòu)如圖6所示。該裝置600包括監(jiān)控單元610、接收單元620、調(diào)整單元630和處理單元640。
[0097]監(jiān)控單元610用于監(jiān)控云桌面服務(wù)器和終端之間的網(wǎng)絡(luò)狀態(tài)以確定網(wǎng)絡(luò)參數(shù)。接收單元620用于接收終端運行的性能參數(shù)并確定終端運行狀態(tài)。調(diào)整單元630分別與監(jiān)控單元610和接收單元620連接,用于根據(jù)所述終端的運行狀態(tài)和網(wǎng)絡(luò)參數(shù)調(diào)整視頻幀壓縮率和巾貞率。
[0098]處理單元640連接至調(diào)整單元630,用于基于所述視頻幀壓縮率和幀率對視頻數(shù)據(jù)進行壓縮處理,以得到與當(dāng)前終端運行狀態(tài)和網(wǎng)絡(luò)狀態(tài)相匹配的視頻流。
[0099]在一個優(yōu)選示例中,該裝置600還包括發(fā)送單元(圖中未示出),其連接至處理單元640,用于發(fā)送所述與當(dāng)前終端運行狀態(tài)和網(wǎng)絡(luò)狀態(tài)相匹配的視頻流。
[0100]其中,調(diào)整單元630進一步包括壓縮率調(diào)整模塊631和幀率調(diào)整模塊632。壓縮率調(diào)整模塊631用于由第一預(yù)設(shè)網(wǎng)絡(luò)參數(shù)和監(jiān)控得到的網(wǎng)絡(luò)參數(shù)判斷網(wǎng)絡(luò)的負載情況,進而根據(jù)網(wǎng)絡(luò)的負載情況調(diào)整視頻幀壓縮率。幀率調(diào)整模塊632用于根據(jù)所述視頻幀壓縮率和終端的運行狀態(tài)調(diào)整幀率。
[0101]進一步而言,壓縮率調(diào)整模塊631還包括重載調(diào)整子模塊和輕載調(diào)整子模塊(圖中未示出)。其中,重載調(diào)整子模塊用于在網(wǎng)絡(luò)為重負載的情況下,若當(dāng)前視頻幀壓縮率大于第一預(yù)設(shè)壓縮率,則增大視頻幀壓縮率以使得視頻幀數(shù)據(jù)量減小,若當(dāng)前視頻幀壓縮率小于第一預(yù)設(shè)壓縮率,則將視頻幀壓縮率設(shè)定為第一預(yù)設(shè)壓縮率;輕載調(diào)整子模塊用于在網(wǎng)絡(luò)為輕負載的情況下,若當(dāng)前視頻幀壓縮率大于第一預(yù)設(shè)壓縮率,則減小視頻幀壓縮率以使得視頻幀數(shù)據(jù)量增大。
[0102]并且,輕載調(diào)整子模塊還用于在網(wǎng)絡(luò)為輕負載的情況下,若當(dāng)前視頻幀壓縮率小于第一預(yù)設(shè)壓縮率,則判斷最后一個視頻幀的大小是否小于平均幀大小,若是,則將當(dāng)前視頻幀壓縮率設(shè)定為第二預(yù)設(shè)壓縮率,以增大視頻幀的數(shù)據(jù)量;若否,則對將當(dāng)前視頻幀壓縮率不做調(diào)整。
[0103]進一步而言,幀率調(diào)整模塊632還包括繁忙狀態(tài)調(diào)整子模塊和空閑狀態(tài)調(diào)整子模塊(圖中未示出)。繁忙狀態(tài)調(diào)整子模塊用于在終端處于繁忙狀態(tài)時,在所述視頻幀壓縮率大于第一預(yù)設(shè)壓縮率的情況下,將幀率設(shè)定為預(yù)設(shè)的繁忙狀態(tài)幀率;空閑狀態(tài)調(diào)整子模塊用于在終端處于空閑狀態(tài)時,在監(jiān)控得到的網(wǎng)絡(luò)參數(shù)小于第二預(yù)設(shè)網(wǎng)絡(luò)參數(shù)的情況下,將幀率設(shè)定為預(yù)設(shè)的空閑狀態(tài)幀率,其中所述空閑狀態(tài)幀率大于繁忙狀態(tài)幀率。
[0104]目前的云桌面視頻播放技術(shù)并不能根據(jù)網(wǎng)絡(luò)環(huán)境狀態(tài)來動態(tài)調(diào)整視頻的傳輸效率。本發(fā)明的實施例可根據(jù)當(dāng)前網(wǎng)絡(luò)的負載情況實時調(diào)整視頻幀壓縮率,并結(jié)合終端的運行狀態(tài)調(diào)整視頻幀的幀率,從而優(yōu)化云桌面視頻傳輸?shù)膲嚎s方法,降低云桌面系統(tǒng)對帶寬的要求。
[0105]雖然本發(fā)明所公開的實施方式如上,但所述的內(nèi)容只是為了便于理解本發(fā)明而采用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬【技術(shù)領(lǐng)域】內(nèi)的技術(shù)人員,在不脫離本發(fā)明所公開的精神和范圍的前提下,可以在實施的形式上及細節(jié)上作任何的修改與變化,但本發(fā)明的專利保護范圍,仍須以所附的權(quán)利要求書所界定的范圍為準。
【權(quán)利要求】
1.一種基于云桌面的視頻流處理方法,其特征在于,包括以下步驟: 監(jiān)控云桌面服務(wù)器和終端之間的網(wǎng)絡(luò)狀態(tài)以確定網(wǎng)絡(luò)參數(shù); 接收終端運行的性能參數(shù)并確定終端運行狀態(tài); 根據(jù)所述終端的運行狀態(tài)和網(wǎng)絡(luò)參數(shù)調(diào)整視頻幀壓縮率和幀率; 基于所述視頻幀壓縮率和幀率對視頻數(shù)據(jù)進行壓縮處理,以得到與當(dāng)前終端運行狀態(tài)和網(wǎng)絡(luò)狀態(tài)相匹配的視頻流。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在根據(jù)所述終端的運行狀態(tài)和網(wǎng)絡(luò)狀態(tài)調(diào)整視頻幀壓縮率和幀率的步驟中包括: 由第一預(yù)設(shè)網(wǎng)絡(luò)參數(shù)和監(jiān)控得到的網(wǎng)絡(luò)參數(shù)判斷網(wǎng)絡(luò)的負載情況,進而根據(jù)網(wǎng)絡(luò)的負載情況調(diào)整視頻幀壓縮率; 根據(jù)所述視頻幀壓縮率和終端的運行狀態(tài)調(diào)整幀率。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在根據(jù)網(wǎng)絡(luò)的負載情況調(diào)整視頻幀壓縮率的步驟中, 在網(wǎng)絡(luò)為重負載的情況下,若當(dāng)前視頻幀壓縮率大于第一預(yù)設(shè)壓縮率,則增大視頻幀壓縮率以使得視頻幀數(shù)據(jù)量減小,若當(dāng)前視頻幀壓縮率小于第一預(yù)設(shè)壓縮率,則將視頻幀壓縮率設(shè)定為第一預(yù)設(shè)壓縮率; 在網(wǎng)絡(luò)為輕負載的情況下,若當(dāng)前視頻幀壓縮率大于第一預(yù)設(shè)壓縮率,則減小視頻幀壓縮率以使得視頻幀數(shù)據(jù)量增大。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,在根據(jù)所述視頻幀壓縮率和終端的運行狀態(tài)調(diào)整幀率的步驟中, 在終端處于繁忙狀態(tài)時,則在所述視頻幀壓縮率大于第一預(yù)設(shè)壓縮率的情況下,將幀率設(shè)定為預(yù)設(shè)的繁忙狀態(tài)幀率; 在終端處于空閑狀態(tài)時,則在監(jiān)控得到的網(wǎng)絡(luò)參數(shù)小于第二預(yù)設(shè)網(wǎng)絡(luò)參數(shù)的情況下,將幀率設(shè)定為預(yù)設(shè)的空閑狀態(tài)幀率,其中所述空閑狀態(tài)幀率大于繁忙狀態(tài)幀率。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在終端處于繁忙狀態(tài)時,根據(jù)終端運行的性能參數(shù)將終端的繁忙狀態(tài)劃分為不同等級,并分別設(shè)定相應(yīng)的繁忙狀態(tài)幀率。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,在網(wǎng)絡(luò)為輕負載的情況下,若當(dāng)前視頻幀壓縮率小于第一預(yù)設(shè)壓縮率,則判斷最后一個視頻幀的大小是否小于平均幀大小, 若是,則將當(dāng)前視頻幀壓縮率設(shè)定為第二預(yù)設(shè)壓縮率,以增大視頻幀的數(shù)據(jù)量,其中,第一預(yù)設(shè)壓縮率大于第二預(yù)設(shè)壓縮率; 若否,則對將當(dāng)前視頻幀壓縮率不做調(diào)整。
7.一種基于云桌面的視頻流處理裝置,其特征在于,包括: 監(jiān)控單元,用于監(jiān)控云桌面服務(wù)器和終端之間的網(wǎng)絡(luò)狀態(tài)以確定網(wǎng)絡(luò)參數(shù); 接收單元,用于接收終端運行的性能參數(shù)并確定終端運行狀態(tài); 調(diào)整單元,用于根據(jù)所述終端的運行狀態(tài)和網(wǎng)絡(luò)參數(shù)調(diào)整視頻幀壓縮率和幀率; 處理單元,用于基于所述視頻幀壓縮率和幀率對視頻數(shù)據(jù)進行壓縮處理,以得到與當(dāng)前終端運行狀態(tài)和網(wǎng)絡(luò)狀態(tài)相匹配的視頻流。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述調(diào)整單元進一步包括: 壓縮率調(diào)整模塊,其用于由第一預(yù)設(shè)網(wǎng)絡(luò)參數(shù)和監(jiān)控得到的網(wǎng)絡(luò)參數(shù)判斷網(wǎng)絡(luò)的負載情況,進而根據(jù)網(wǎng)絡(luò)的負載情況調(diào)整視頻幀壓縮率; 幀率調(diào)整模塊,其用于根據(jù)所述視頻幀壓縮率和終端的運行狀態(tài)調(diào)整幀率。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述壓縮率調(diào)整模塊還包括: 重載調(diào)整子模塊,用于在網(wǎng)絡(luò)為重負載的情況下,若當(dāng)前視頻幀壓縮率大于第一預(yù)設(shè)壓縮率,則增大視頻幀壓縮率以使得視頻幀數(shù)據(jù)量減小,若當(dāng)前視頻幀壓縮率小于第一預(yù)設(shè)壓縮率,則將視頻幀壓縮率設(shè)定為第一預(yù)設(shè)壓縮率; 輕載調(diào)整子模塊,其用于在網(wǎng)絡(luò)為輕負載的情況下,若當(dāng)前視頻幀壓縮率大于第一預(yù)設(shè)壓縮率,則減小視頻幀壓縮率以使得視頻幀數(shù)據(jù)量增大。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述幀率調(diào)整模塊還包括: 繁忙狀態(tài)調(diào)整子模塊,其用于在終端處于繁忙狀態(tài)時,在所述視頻幀壓縮率大于第一預(yù)設(shè)壓縮率的情況下,將幀率設(shè)定為預(yù)設(shè)的繁忙狀態(tài)幀率; 空閑狀態(tài)調(diào)整子模塊,其用于在終端處于空閑狀態(tài)時,在監(jiān)控得到的網(wǎng)絡(luò)參數(shù)小于第二預(yù)設(shè)網(wǎng)絡(luò)參數(shù)的情況下,將幀率設(shè)定為預(yù)設(shè)的空閑狀態(tài)幀率,其中所述空閑狀態(tài)幀率大于繁忙狀態(tài)幀率。
【文檔編號】H04N21/238GK104394486SQ201410696432
【公開日】2015年3月4日 申請日期:2014年11月26日 優(yōu)先權(quán)日:2014年11月26日
【發(fā)明者】徐浩, 羅飛, 趙峰, 喬詠, 宋瀟豫, 張永軍 申請人:中標軟件有限公司