本申請(qǐng)涉及計(jì)算機(jī)信息處理技術(shù)領(lǐng)域,特別涉及一種調(diào)整編碼的方法及裝置。
背景技術(shù):
視頻聊天記錄在多種應(yīng)用中都被使用。在實(shí)時(shí)的視頻聊天過程中,由于可用的網(wǎng)絡(luò)帶寬不穩(wěn)定,為了保證視頻聊天能正常進(jìn)行,需要及時(shí)調(diào)整編碼情況,設(shè)定編碼碼率適合當(dāng)前的帶寬。
現(xiàn)有的調(diào)整編碼的方法通常包括:檢測(cè)可用帶寬的值,當(dāng)檢測(cè)到可用帶寬變化時(shí),根據(jù)變化后的帶寬立即對(duì)編碼進(jìn)行調(diào)整,使得調(diào)整后的編碼碼率適應(yīng)當(dāng)前帶寬。
在實(shí)現(xiàn)本申請(qǐng)過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:現(xiàn)有的調(diào)整編碼的方法在每次檢測(cè)到帶寬變化時(shí)都進(jìn)行編碼碼率的調(diào)整,當(dāng)帶寬經(jīng)常出現(xiàn)較小幅度的波動(dòng)時(shí),會(huì)需要頻繁地調(diào)整編碼,降低了帶寬利用效率和編碼效率。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例的目的是提供一種編碼調(diào)整方法及裝置,以提高帶寬利用效率和編碼效率。
為解決上述技術(shù)問題,本申請(qǐng)實(shí)施例提供一種調(diào)整編碼的方法及裝置是這樣實(shí)現(xiàn)的:
一種調(diào)整編碼的方法,包括:
接收第一帶寬數(shù)據(jù),存儲(chǔ)第一帶寬數(shù)據(jù)至預(yù)設(shè)寬度的計(jì)算窗口;
根據(jù)所述計(jì)算窗口中的帶寬數(shù)據(jù),計(jì)算用于表示所述計(jì)算窗口中帶寬數(shù)據(jù)的波動(dòng)大小的第一參數(shù);
比較第一參數(shù)與預(yù)設(shè)的第一閾值,若第一參數(shù)大于第一閾值,調(diào)整編碼碼率。
優(yōu)選方案中,所述方法還包括:清除所述計(jì)算窗口中最新存儲(chǔ)的第一帶寬數(shù)據(jù)以外的其他帶寬數(shù)據(jù)。
優(yōu)選方案中,第一帶寬數(shù)據(jù)包括根據(jù)當(dāng)前網(wǎng)絡(luò)傳輸中的丟包率、延遲計(jì)算得到的可用帶寬數(shù)據(jù)。
優(yōu)選方案中,所述預(yù)設(shè)寬度的計(jì)算窗口中包括:按時(shí)間順序排列的預(yù)設(shè)個(gè)數(shù)的帶寬數(shù)據(jù), 后存儲(chǔ)的帶寬數(shù)據(jù)存儲(chǔ)在隊(duì)列后端。
優(yōu)選方案中,所述存儲(chǔ)第一帶寬數(shù)據(jù)至預(yù)設(shè)寬度的計(jì)算窗口包括:將所述計(jì)算窗口中的隊(duì)列數(shù)據(jù)向前端移動(dòng)一個(gè)數(shù)據(jù),刪除最前端的數(shù)據(jù),將第一帶寬數(shù)據(jù)存儲(chǔ)至隊(duì)列尾端。
優(yōu)選方案中,所述根據(jù)計(jì)算窗口中的帶寬數(shù)據(jù)計(jì)算用于表示所述計(jì)算窗口中帶寬數(shù)據(jù)的波動(dòng)大小的第一參數(shù),具體包括:
計(jì)算所述計(jì)算窗口中的均方差和均值;
將所述均方差和均值的比值作為第一參數(shù)。
優(yōu)選方案中,所述第一閾值的取值范圍包括:0~10%。
優(yōu)選方案中,所述計(jì)算窗口的預(yù)設(shè)寬度根據(jù)響應(yīng)速度進(jìn)行設(shè)置;所述響應(yīng)速度用于表示判斷是否需要調(diào)整編碼的速度。
優(yōu)選方案中,所述計(jì)算窗口的預(yù)設(shè)寬度根據(jù)響應(yīng)速度進(jìn)行設(shè)置包括:所述響應(yīng)速度越快,所述計(jì)算窗口的預(yù)設(shè)寬度越小。
一種調(diào)整編碼的裝置,包括:計(jì)算窗口數(shù)據(jù)確定模塊、第一參數(shù)模塊和比較模塊;其中,
所述計(jì)算窗口數(shù)據(jù)確定模塊,用于接收第一帶寬數(shù)據(jù),存儲(chǔ)第一帶寬數(shù)據(jù)至預(yù)設(shè)寬度的計(jì)算窗口;
所述第一參數(shù)模塊,用于根據(jù)所述計(jì)算窗口中的帶寬數(shù)據(jù),計(jì)算用于表示所述計(jì)算窗口中帶寬數(shù)據(jù)的波動(dòng)大小的第一參數(shù);
所述比較模塊,用于比較第一參數(shù)與預(yù)設(shè)的第一閾值,若第一參數(shù)大于第一閾值,調(diào)整編碼碼率。
優(yōu)選方案中,所述裝置還包括:計(jì)算窗口數(shù)據(jù)更新模塊,用于清除所述計(jì)算窗口中最新存儲(chǔ)的第一帶寬數(shù)據(jù)以外的其他帶寬數(shù)據(jù)。
由以上本申請(qǐng)實(shí)施例提供的技術(shù)方案可見,本申請(qǐng)實(shí)施例提供的調(diào)整編的方法及裝置,通過設(shè)定一個(gè)用于存儲(chǔ)帶寬數(shù)據(jù)的計(jì)算窗口,存儲(chǔ)調(diào)整編碼前的預(yù)設(shè)個(gè)數(shù)的帶寬數(shù)據(jù),通過比較第一閾值和計(jì)算得到用于表示帶寬波動(dòng)范圍的第一數(shù)據(jù),判定當(dāng)前帶寬數(shù)據(jù)的波動(dòng)范圍時(shí)否需要調(diào)整編碼碼率,若需要,可以及時(shí)調(diào)整碼率為與當(dāng)前實(shí)時(shí)帶寬數(shù)據(jù)對(duì)應(yīng)的編碼碼率,若不需要,可以暫時(shí)不調(diào)整編碼碼率。本申請(qǐng)實(shí)施例提供的調(diào)整編的方法及裝置,可以過濾掉較小的帶寬變化,使得中帶寬變化達(dá)到一定程度時(shí)才相應(yīng)改變編碼碼率,在保證帶寬利用效率的同時(shí)可以提高編碼效率。
附圖說明
為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù) 描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本申請(qǐng)一種調(diào)整編碼的方法實(shí)施例的流程圖;
圖2是本申請(qǐng)計(jì)算窗口的一個(gè)示意圖;
圖3是本申請(qǐng)一種調(diào)整編碼的裝置實(shí)施例的模塊圖。
具體實(shí)施方式
本申請(qǐng)實(shí)施例提供一種調(diào)整編碼的方法及裝置。
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)中的技術(shù)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
圖1是本申請(qǐng)一種調(diào)整編碼的方法實(shí)施例的流程圖。如圖1所示,所述調(diào)整編碼的方法可以包括:
S101:接收第一帶寬數(shù)據(jù),存儲(chǔ)第一帶寬數(shù)據(jù)至預(yù)設(shè)寬度的計(jì)算窗口。
調(diào)整編碼的裝置可以接收第一帶寬數(shù)據(jù)。所述第一帶寬數(shù)據(jù)可以為當(dāng)前實(shí)時(shí)可用帶寬數(shù)據(jù)。所述實(shí)時(shí)可用帶寬數(shù)據(jù)可以采用現(xiàn)有的帶寬估計(jì)計(jì)算方法計(jì)算得到。例如,可以根據(jù)當(dāng)前網(wǎng)絡(luò)傳輸中的丟包率、延遲等信息,估算當(dāng)前情況下的實(shí)時(shí)可用帶寬。
所述預(yù)設(shè)寬度的計(jì)算窗口可以用于存儲(chǔ)預(yù)設(shè)個(gè)數(shù)的可用帶寬數(shù)據(jù)。所述計(jì)算窗口中的預(yù)設(shè)個(gè)數(shù)的帶寬數(shù)據(jù)可以按照時(shí)間順序進(jìn)行排列。具體地,在后存儲(chǔ)的帶寬數(shù)據(jù)可以存儲(chǔ)在隊(duì)列后端。
所述調(diào)整編碼的裝置接收第一帶寬數(shù)據(jù)后可以存儲(chǔ)第一帶寬數(shù)據(jù)至預(yù)設(shè)寬度的計(jì)算窗口。所述存儲(chǔ)第一帶寬數(shù)據(jù)至預(yù)設(shè)寬度的計(jì)算窗口,具體可以包括:將所述計(jì)算窗口中的隊(duì)列數(shù)據(jù)向前端移動(dòng)一個(gè)數(shù)據(jù),刪除最前端的數(shù)據(jù),將當(dāng)前得到的第一帶寬數(shù)據(jù)存儲(chǔ)至隊(duì)列尾端。
所述計(jì)算窗口的預(yù)設(shè)寬度可以根據(jù)響應(yīng)速度進(jìn)行設(shè)置;所述響應(yīng)速度可以用于表示判斷是否需要調(diào)整編碼的速度。
所述窗口的預(yù)設(shè)寬度與所述響應(yīng)速度成反比。具體地,所述響應(yīng)速度越快,所述計(jì)算窗口的預(yù)設(shè)寬度可以越小。
圖2是本申請(qǐng)計(jì)算窗口的一個(gè)示意圖。如圖2所示,所述預(yù)設(shè)窗口中可以存儲(chǔ)有6個(gè)可 用帶寬數(shù)據(jù),分別存儲(chǔ)在Bitrate0~Bitrate5的位置中,其中,Bitrate5中為最先存儲(chǔ)的可用帶寬數(shù)據(jù),Bitrate0中為最后存儲(chǔ)的可用帶寬數(shù)據(jù)。
當(dāng)有新的可用帶寬數(shù)據(jù)進(jìn)入時(shí),新的可用帶寬數(shù)據(jù)存儲(chǔ)中Bitrate0的位置,原來(lái)位置中的數(shù)據(jù)異地向前移動(dòng)一位,即將原來(lái)Bitrate0中的數(shù)據(jù)存儲(chǔ)到Bitrate1的位置,將原來(lái)Bitrate1中的數(shù)據(jù)存儲(chǔ)到Bitrate2的位置,以此類推。原來(lái)Bitrate5中的數(shù)據(jù)則移出窗口。
上述步驟可以保證計(jì)算窗口中存儲(chǔ)的數(shù)據(jù)為最新的一段帶寬數(shù)據(jù)。
S102:根據(jù)所述計(jì)算窗口中的帶寬數(shù)據(jù),計(jì)算第一參數(shù)。
所述調(diào)整編碼的裝置根據(jù)所述計(jì)算窗口中的帶寬數(shù)據(jù),可以計(jì)算第一參數(shù)。所述第一參數(shù)用于表示計(jì)算窗口中帶寬數(shù)據(jù)的波動(dòng)大小。第一參數(shù)的值越大,可以表示所述計(jì)算窗口中帶寬數(shù)據(jù)的波動(dòng)越明顯。
所述根據(jù)計(jì)算窗口中的帶寬數(shù)據(jù)計(jì)算第一參數(shù),具體可以包括:計(jì)算所述計(jì)算窗口中的均方差和均值;將所述均方差和均值的比值作為第一參數(shù)。
通過上述方法可以計(jì)算得到與所述計(jì)算窗口中的帶寬數(shù)據(jù)對(duì)應(yīng)的第一參數(shù),所述第一參數(shù)可以表示可用帶寬的波動(dòng)大小情況。若第一參數(shù)的值較大,可以認(rèn)為可用帶寬的波動(dòng)較大,可能需要調(diào)整編碼的碼率。若第一參數(shù)的值較小,可以認(rèn)為可以帶寬的波動(dòng)較小,可以暫時(shí)不調(diào)整編碼碼率。
S103:比較第一參數(shù)與預(yù)設(shè)的第一閾值,若第一參數(shù)大于第一閾值,調(diào)整編碼碼率。
所述調(diào)整編碼的裝置可以比較第一參數(shù)與第一閾值。所述第一閾值可以是預(yù)先設(shè)定的。所述第一閾值可以根據(jù)實(shí)際要求進(jìn)行設(shè)定。例如第一閾值可以取值0~10%。
通過比較第一參數(shù)與預(yù)設(shè)的第一閾值,可以判定是否需要調(diào)整編碼碼率。
具體地,若第一參數(shù)大于第一閾值,可以調(diào)整編碼碼率;若第一參數(shù)小于或等于第一閾值,可以不調(diào)整編碼碼率。
所述調(diào)整編碼碼率可以包括:調(diào)整編碼碼率為與第一帶寬數(shù)據(jù)的值相對(duì)應(yīng)的碼率。所述調(diào)整編碼碼率的具體方法可以采用現(xiàn)有的調(diào)整編碼碼率的方法。本申請(qǐng)?jiān)诖瞬辉儋樖觥?/p>
在另一個(gè)實(shí)施例中,所述調(diào)整編碼的方法還可以包括:清除所述計(jì)算窗口中第一帶寬數(shù)據(jù)以外的帶寬數(shù)據(jù)。
所述調(diào)整編碼的裝置若調(diào)整了編碼碼率后,可以清除計(jì)算窗口中除了最新存儲(chǔ)到的第一帶寬數(shù)據(jù)以外的其他帶寬數(shù)據(jù)。
通過清除其他數(shù)據(jù),可以避免調(diào)整編碼前的帶寬數(shù)據(jù)影響后面對(duì)帶寬波動(dòng)范圍的計(jì)算。通過保留最新存儲(chǔ)到的第一帶寬數(shù)據(jù),可以保證帶寬數(shù)據(jù)分析的前后連貫性,同時(shí)在下一次帶寬數(shù)據(jù)的波動(dòng)范圍較大時(shí),可以及時(shí)檢測(cè)出來(lái)。
上述實(shí)施例提供的調(diào)整編的方法,通過設(shè)定一個(gè)用于存儲(chǔ)帶寬數(shù)據(jù)的計(jì)算窗口,存儲(chǔ)調(diào)整編碼前的預(yù)設(shè)個(gè)數(shù)的帶寬數(shù)據(jù),通過比較第一閾值和計(jì)算得到用于表示帶寬波動(dòng)范圍的第一數(shù)據(jù),判定當(dāng)前帶寬數(shù)據(jù)的波動(dòng)范圍時(shí)否需要調(diào)整編碼碼率,若需要,可以及時(shí)調(diào)整碼率為與當(dāng)前實(shí)時(shí)帶寬數(shù)據(jù)對(duì)應(yīng)的編碼碼率,若不需要,可以暫時(shí)不調(diào)整編碼碼率。通過上述方法,可以過濾掉較小的帶寬變化,使得中帶寬變化達(dá)到一定程度時(shí)才相應(yīng)改變編碼碼率,在保證帶寬利用效率的同時(shí)可以提高編碼效率。
圖3是本申請(qǐng)一種調(diào)整編碼的裝置實(shí)施例的模塊圖。如圖3所示,所示調(diào)整編碼的裝置可以包括:計(jì)算窗口數(shù)據(jù)確定模塊301、第一參數(shù)模塊302和比較模塊303;其中,
所述計(jì)算窗口數(shù)據(jù)確定模塊301,可以用于接收第一帶寬數(shù)據(jù),存儲(chǔ)第一帶寬數(shù)據(jù)至預(yù)設(shè)寬度的計(jì)算窗口;
所述第一參數(shù)模塊302,可以用于根據(jù)所述計(jì)算窗口中的帶寬數(shù)據(jù),計(jì)算用于表示所述計(jì)算窗口中帶寬數(shù)據(jù)的波動(dòng)大小的第一參數(shù);
所述比較模塊303,可以用于比較第一參數(shù)與預(yù)設(shè)的第一閾值,若第一參數(shù)大于第一閾值,調(diào)整編碼碼率。
在另一個(gè)實(shí)施例中,所述調(diào)整編碼的裝置,還可以包括:計(jì)算窗口數(shù)據(jù)更新模塊。所述計(jì)算窗口數(shù)據(jù)更新模塊,可以用于清除所述計(jì)算窗口中最新存儲(chǔ)的第一帶寬數(shù)據(jù)以外的其他帶寬數(shù)據(jù)。
上述實(shí)施例提供的調(diào)整編碼的裝置與本申請(qǐng)調(diào)整編碼的方法實(shí)施例相對(duì)應(yīng),可以實(shí)現(xiàn)本申請(qǐng)調(diào)整編碼的方法,達(dá)到方法實(shí)施例的技術(shù)效果。
在20世紀(jì)90年代,對(duì)于一個(gè)技術(shù)的改進(jìn)可以很明顯地區(qū)分是硬件上的改進(jìn)(例如,對(duì)二極管、晶體管、開關(guān)等電路結(jié)構(gòu)的改進(jìn))還是軟件上的改進(jìn)(對(duì)于方法流程的改進(jìn))。然而,隨著技術(shù)的發(fā)展,當(dāng)今的很多方法流程的改進(jìn)已經(jīng)可以視為硬件電路結(jié)構(gòu)的直接改進(jìn)。設(shè)計(jì)人員幾乎都通過將改進(jìn)的方法流程編程到硬件電路中來(lái)得到相應(yīng)的硬件電路結(jié)構(gòu)。因此,不能說一個(gè)方法流程的改進(jìn)就不能用硬件實(shí)體模塊來(lái)實(shí)現(xiàn)。例如,可編程邏輯器件 (Programmable Logic Device,PLD)(例如現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA))就是這樣一種集成電路,其邏輯功能由用戶對(duì)器件編程來(lái)確定。由設(shè)計(jì)人員自行編程來(lái)把一個(gè)數(shù)字系統(tǒng)“集成”在一片PLD上,而不需要請(qǐng)芯片制造廠商來(lái)設(shè)計(jì)和制作專用的集成電路芯片2。而且,如今,取代手工地制作集成電路芯片,這種編程也多半改用“邏輯編譯器(logic compiler)”軟件來(lái)實(shí)現(xiàn),它與程序開發(fā)撰寫時(shí)所用的軟件編譯器相類似,而要編譯之前的原始代碼也得用特定的編程語(yǔ)言來(lái)撰寫,此稱之為硬件描述語(yǔ)言(Hardware Description Language,HDL),而HDL也并非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)與Verilog2。本領(lǐng)域技術(shù)人員也應(yīng)該清楚,只需要將方法流程用上述幾種硬件描述語(yǔ)言稍作邏輯編程并編程到集成電路中,就可以很容易得到實(shí)現(xiàn)該邏輯方法流程的硬件電路。
控制器可以按任何適當(dāng)?shù)姆绞綄?shí)現(xiàn),例如,控制器可以采取例如微處理器或處理器以及存儲(chǔ)可由該(微)處理器執(zhí)行的計(jì)算機(jī)可讀程序代碼(例如軟件或固件)的計(jì)算機(jī)可讀介質(zhì)、邏輯門、開關(guān)、專用集成電路(Application Specific Integrated Circuit,ASIC)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存儲(chǔ)器控制器還可以被實(shí)現(xiàn)為存儲(chǔ)器的控制邏輯的一部分。
本領(lǐng)域技術(shù)人員也知道,除了以純計(jì)算機(jī)可讀程序代碼方式實(shí)現(xiàn)控制器以外,完全可以通過將方法步驟進(jìn)行邏輯編程來(lái)使得控制器以邏輯門、開關(guān)、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來(lái)實(shí)現(xiàn)相同功能。因此這種控制器可以被認(rèn)為是一種硬件部件,而對(duì)其內(nèi)包括的用于實(shí)現(xiàn)各種功能的裝置也可以視為硬件部件內(nèi)的結(jié)構(gòu)?;蛘呱踔?,可以將用于實(shí)現(xiàn)各種功能的裝置視為既可以是實(shí)現(xiàn)方法的軟件模塊又可以是硬件部件內(nèi)的結(jié)構(gòu)。
上述實(shí)施例闡明的系統(tǒng)、裝置、模塊或單元,具體可以由計(jì)算機(jī)芯片或?qū)嶓w實(shí)現(xiàn),或者由具有某種功能的產(chǎn)品來(lái)實(shí)現(xiàn)。
為了描述的方便,描述以上裝置時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。
通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可借助軟 件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)。基于這樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。該計(jì)算機(jī)軟件產(chǎn)品可以包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在內(nèi)存中,內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括短暫電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算機(jī)系統(tǒng)環(huán)境或配置中。例如:個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
雖然通過實(shí)施例描繪了本申請(qǐng),本領(lǐng)域普通技術(shù)人員知道,本申請(qǐng)有許多變形和變化而不脫離本申請(qǐng)的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本申請(qǐng)的精神。