本發(fā)明涉及視頻處理技術(shù)領(lǐng)域,具體而言,涉及一種視頻解碼方法及裝置。
背景技術(shù):
隨著智能移動終端的迅速普及,移動終端的功能越來越豐富,移動終端可以完成的工作也越來越多。在某些場景下,用戶可能需要通過移動終端進(jìn)行一些視頻的編輯剪輯操作。但是現(xiàn)有技術(shù)使用在移動終端上的視頻處理方法中,因?yàn)椴僮髌脚_的一些限制對視頻編輯處理造成各種不便。例如,因?yàn)橐苿咏K端操作系統(tǒng)的限制,視頻的剪輯預(yù)覽定位時間點(diǎn)不準(zhǔn)確,會造成視頻剪輯切分片段不精準(zhǔn),影響剪輯質(zhì)量。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)中的上述不足,本發(fā)明的目的在于提供一種視頻解碼方法,應(yīng)用于數(shù)據(jù)處理終端,所述方法包括:
加載視頻源,所述視頻源包括片段起始時間點(diǎn)及片段結(jié)束時間點(diǎn);
針對每個所述視頻源,從所述片段起始時間點(diǎn)之前最近的關(guān)鍵幀開始進(jìn)行解碼得解碼數(shù)據(jù),其中,所述關(guān)鍵幀為壓縮視頻文件中只需要本幀數(shù)據(jù)就可以解碼生成完整圖像的幀;
舍棄所述關(guān)鍵幀至所述片段起始時間點(diǎn)之間的解碼數(shù)據(jù),得到所述片段起始時間點(diǎn)至所述片段結(jié)束時間點(diǎn)之間的解碼數(shù)據(jù)對應(yīng)的視頻片段。
可選地,在上述方法中,所述數(shù)據(jù)處理終端開啟至少兩個并行的視頻處理線程;所述加載視頻源的步驟,包括:
獲取視頻源序列,所述視頻源序列包括多個視頻源;
使用所述至少兩個并行的視頻處理線程對所述視頻源序列中的視頻源進(jìn)行依次交替加載。
可選地,在上述方法中,使用所述至少兩個并行的視頻處理線程對所述視頻源序列中的視頻源進(jìn)行依次交替加載的步驟,包括:
針對每個視頻處理線程,在當(dāng)前視頻源處理完成后,從視頻源序列獲取排序最靠前的未處理的視頻源進(jìn)行加載。
可選地,在上述方法中,所述方法應(yīng)用于具有android操作系統(tǒng)的視頻處理設(shè)備;所述針對每個所述視頻源,從所述片段起始時間點(diǎn)之前最近的關(guān)鍵幀開始進(jìn)行解碼得解碼數(shù)據(jù)的步驟,包括:
根據(jù)所述片段起始時間點(diǎn),通過android操作系統(tǒng)中的mediaextractor方法里的seekto函數(shù)的seek_to_previous_sync模式確定所述視頻源中該片段起始時間點(diǎn)之前最近的一個關(guān)鍵幀;
將從所述關(guān)鍵幀起的視頻源數(shù)據(jù)傳遞給mediacodec方法進(jìn)行解碼。
可選地,在上述方法中,所述方法還包括:
對多個解碼后的所述視頻片段依次進(jìn)行渲染,使多個所述視頻片段進(jìn)行連續(xù)播放。
本發(fā)明的另一目的在于提供一種視頻解碼裝置,應(yīng)用于數(shù)據(jù)處理終端,所述裝置包括:
加載模塊,用于加載視頻源,所述視頻源包括片段起始時間點(diǎn)及片段結(jié)束時間點(diǎn);
時間定位模塊,用于針對每個所述視頻源,從所述片段起始時間點(diǎn)之前最近的關(guān)鍵幀開始進(jìn)行解碼得解碼數(shù)據(jù),其中,所述關(guān)鍵幀為壓縮視頻文件中只需要本幀數(shù)據(jù)就可以解碼生成完整圖像的幀;
解碼模塊,用于舍棄所述關(guān)鍵幀至所述片段起始時間點(diǎn)之間的解碼數(shù)據(jù),得到所述片段起始時間點(diǎn)至所述片段結(jié)束時間點(diǎn)之間的解碼數(shù)據(jù)對應(yīng)的視頻片段。
可選地,在上述裝置中,所述數(shù)據(jù)處理終端開啟至少兩個并行的視頻處理線程;所述加載模塊加載視頻源的方式,包括:
獲取視頻源序列,所述視頻源序列包括多個視頻源;
使用所述至少兩個并行的視頻處理線程對所述視頻源序列中的視頻源進(jìn)行依次交替加載。
可選地,在上述裝置中,所述加載模塊使用所述至少兩個并行的視頻處理線程對所述視頻源序列中的視頻源進(jìn)行依次交替加載的方式,包括:
針對每個視頻處理線程,在當(dāng)前視頻源處理完成后,從視頻源序列獲取排序最靠前的未處理的視頻源進(jìn)行加載。
可選地,在上述裝置中,所述裝置應(yīng)用于具有android操作系統(tǒng)的視頻處理設(shè)備;所述時間定位模塊進(jìn)行定位解碼的方式,包括:
根據(jù)所述片段起始時間點(diǎn),通過android操作系統(tǒng)中的mediaextractor方法里的seekto函數(shù)的seek_to_previous_sync模式確定所述視頻源中該片段起始時間點(diǎn)之前最近的一個關(guān)鍵幀;
將從所述關(guān)鍵幀起的視頻源數(shù)據(jù)傳遞給mediacodec方法進(jìn)行解碼。
可選地,在上述裝置中,所述裝置還包括:
渲染模塊,用于對多個解碼后的所述視頻片段依次進(jìn)行渲染,使多個所述視頻片段進(jìn)行連續(xù)播放。
相對于現(xiàn)有技術(shù)而言,本發(fā)明具有以下有益效果:
本發(fā)明提供的視頻解碼方法及裝置,針對視頻源在預(yù)覽時不能精準(zhǔn)定位的問題,通過定位至根據(jù)片段起始時間點(diǎn)前一關(guān)鍵幀開始解碼,舍棄所述關(guān)鍵幀至所述片段起始時間點(diǎn)之間的解碼數(shù)據(jù),得到所述片段起始時間點(diǎn)至所述片段結(jié)束時間點(diǎn)之間的解碼數(shù)據(jù)對應(yīng)的視頻片段。如此,實(shí)現(xiàn)了視頻的精準(zhǔn)定位解碼預(yù)覽??蛇x地,采用多個并行視頻處理線程配合處理,可以連續(xù)準(zhǔn)確地順序輸出解碼的數(shù)據(jù),使拼接出的視頻可以流暢播放。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理終端的示意圖;
圖2為本發(fā)明實(shí)施例提供的視頻解碼方法的步驟流程示意圖;
圖3為本發(fā)明實(shí)施例提供的并行視頻處理線程的示意圖;
圖4為本發(fā)明實(shí)施例提供的視頻解碼裝置的示意圖。
圖標(biāo):100-數(shù)據(jù)處理終端;110-視頻解碼裝置;111-加載模塊;112-時間定位模塊;113-解碼模塊;114-渲染模塊;120-存儲器;130-處理器;140-顯示單元。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計(jì)。
因此,以下對在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋。
在本發(fā)明的描述中,需要說明的是,術(shù)語“第一”、“第二”、“第三”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。
在本發(fā)明的描述中,還需要說明的是,除非另有明確的規(guī)定和限定,術(shù)語“設(shè)置”、“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。
請參照圖1,圖1是本發(fā)明較佳實(shí)施例提供的數(shù)據(jù)處理終端100的方框示意圖。所述數(shù)據(jù)處理終端100包括視頻解碼裝置110、存儲器120、處理器130及顯示單元140。
本實(shí)施例中,所述數(shù)據(jù)處理終端100可以是,但不限于,智能手機(jī)、個人電腦(personalcomputer,pc)、平板電腦、個人數(shù)字助理(personaldigitalassistant,pda)、移動上網(wǎng)設(shè)備(mobileinternetdevice,mid)等。
優(yōu)選地,本實(shí)施例中,所述數(shù)據(jù)處理終端100的操作系統(tǒng)為安卓(android)系統(tǒng)。
所述存儲器120、處理器130及顯示單元140各元件相互之間直接或間接地電性連接,以實(shí)現(xiàn)數(shù)據(jù)的傳輸或交互。例如,這些元件相互之間可通過一條或多條通訊總線或信號線實(shí)現(xiàn)電性連接。
所述視頻解碼裝置110包括至少一個可以軟件或固件(firmware)的形式存儲于所述存儲器120中或固化在所述數(shù)據(jù)處理終端100的操作系統(tǒng)(operatingsystem,os)中的軟件功能模塊。所述處理器130用于執(zhí)行所述存儲器120中存儲的可執(zhí)行模塊,例如所述視頻解碼裝置110所包括的軟件功能模塊及計(jì)算機(jī)程序等。
其中,所述存儲器120可以是,但不限于,隨機(jī)存取存儲器(randomaccessmemory,ram),只讀存儲器(readonlymemory,rom),可編程只讀存儲器(programmableread-onlymemory,prom),可擦除只讀存儲器(erasableprogrammableread-onlymemory,eprom),電可擦除只讀存儲器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存儲器120用于存儲程序,處理器130在接收到執(zhí)行指令后,執(zhí)行所述程序。
所述處理器130可能是一種集成電路芯片,具有信號的處理能力。上述的處理器可以是通用處理器,包括中央處理器(centralprocessingunit,cpu)、網(wǎng)絡(luò)處理器(networkprocessor,np)等;還可以是數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫?shí)現(xiàn)或者執(zhí)行本發(fā)明實(shí)施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
所述顯示單元140在所述數(shù)據(jù)處理終端100與用戶之間提供一個交互界面(例如用戶操作界面)或用于顯示圖像數(shù)據(jù)。在本實(shí)施例中,所述顯示單元140可以是液晶顯示器或觸控顯示器。若為觸控顯示器,其可為支持單點(diǎn)和多點(diǎn)觸控操作的電容式觸控屏或電阻式觸控屏等。支持單點(diǎn)和多點(diǎn)觸控操作是指觸控顯示器能感應(yīng)到來自該觸控顯示器上一個或多個位置處產(chǎn)生的觸控操作,并將該感應(yīng)到的觸控操作交由處理器進(jìn)行計(jì)算和處理。
請參照圖2,圖2為應(yīng)用于圖1所示的數(shù)據(jù)處理終端100的一種應(yīng)用信息獲取方法的流程圖,以下將對所述方法包括各個步驟進(jìn)行詳細(xì)闡述。
步驟s110,加載視頻源,所述視頻源包括片段起始時間點(diǎn)及片段結(jié)束時間點(diǎn)。
可選地,在視頻剪輯預(yù)覽過程中,可能涉及對多個視頻源的剪輯拼接,故在本實(shí)施例中,所述數(shù)據(jù)處理終端100開啟至少兩個并行的視頻處理線程進(jìn)行視頻處理。
所述視頻終端先獲取視頻源序列,所述視頻源序列包括多個視頻源,其中,每個所述視頻源有對應(yīng)的片段起始時間點(diǎn)及片段結(jié)束時間點(diǎn),所述片段起始時間點(diǎn)及片段結(jié)束時間點(diǎn)的視頻數(shù)據(jù)即為用戶需要的視頻片段數(shù)據(jù)。
然后,所述視頻終端使用所述至少兩個并行的視頻處理線程對所述視頻源序列中的視頻源進(jìn)行依次交替加載。請參照圖3,以所述視頻處理終端包括兩個并行的數(shù)據(jù)處理線程prc1和prc2為例,在處理從視頻源a起的視頻源序列時,在prc1和prc2中交替依次交替進(jìn)行視頻源的加載處理工作。
可選地,在本實(shí)施例中,以android系統(tǒng)為例,所述視頻源序列中可以包括個視頻源的存儲路徑,在所述數(shù)據(jù)處理終端100定義一mediadecoder接收所述視頻源序列,然后生成兩個medialoader運(yùn)行在相對并行的線程上。
步驟s120,針對每個所述視頻源,從所述片段起始時間點(diǎn)之前最近的關(guān)鍵幀開始進(jìn)行解碼得解碼數(shù)據(jù),其中,所述關(guān)鍵幀為壓縮視頻文件中只需要本幀數(shù)據(jù)就可以解碼生成完整圖像的幀。
經(jīng)發(fā)明人大量研究發(fā)現(xiàn),視頻源數(shù)據(jù)壓縮的過程中,會對視頻畫面幀進(jìn)行處理,例如有的畫面幀記錄該幀的所有數(shù)據(jù),僅依靠本幀數(shù)據(jù)就可以解碼生成完整圖像,這類畫面幀稱為關(guān)鍵幀;而有的畫面幀僅記錄該幀與之前幀之間的區(qū)別(例如一組動態(tài)畫面中,僅記錄動態(tài)部分與上一幀的區(qū)別,不記錄靜態(tài)畫面部分),以減小數(shù)據(jù)量,這類幀在解碼時需要結(jié)合之前畫面的數(shù)據(jù)才能解碼出完整的畫面。
在對上述壓縮過的視頻源處理或剪輯時,一些操作系統(tǒng)平臺(例如android系統(tǒng))僅能定位到關(guān)鍵幀的時間點(diǎn),不能定位到非關(guān)鍵幀的時間點(diǎn),如此造成了在截取視頻片段時,截取時間點(diǎn)不能精確定位。
故在本實(shí)施例中,medialoader中包括mediaextractor(媒體抽取)方法及mediacodec(媒體解碼)方法。
根據(jù)所述片段起始時間點(diǎn),通過android操作系統(tǒng)中的mediaextractor方法里的seekto函數(shù)的seek_to_previous_sync模式確定所述視頻源中該片段起始時間點(diǎn)之前最近的一個關(guān)鍵幀。
將從所述關(guān)鍵幀起的視頻源數(shù)據(jù)傳遞給mediacodec方法進(jìn)行解碼。
步驟s130,舍棄所述關(guān)鍵幀至所述片段起始時間點(diǎn)之間的解碼數(shù)據(jù),得到所述片段起始時間點(diǎn)至所述片段結(jié)束時間點(diǎn)之間的解碼數(shù)據(jù)對應(yīng)的視頻片段。
在本實(shí)施例中,從所述關(guān)鍵幀開始解碼后,可以保證所有幀都能解碼出完整的畫面,然后舍棄所述關(guān)鍵幀至所述片段起始時間點(diǎn)之間的解碼數(shù)據(jù),直到解碼出的圖像幀時間戳與所述片段起始時間點(diǎn)一致。如此,實(shí)現(xiàn)了解碼得到的視頻片段的起始時間與預(yù)設(shè)的片段起始時間點(diǎn)是精準(zhǔn)一致的。
可選地,在本實(shí)施例中,可以對解碼后的多個視頻片段依次進(jìn)行渲染,使多個所述視頻片段進(jìn)行連續(xù)播放。
基于上述設(shè)計(jì),本實(shí)施例提供的視頻解碼方法,在進(jìn)行多個視頻剪輯預(yù)覽的時候,可以實(shí)現(xiàn)視頻片段的精準(zhǔn)定位解碼預(yù)覽,并且至少兩個視頻處理線程交替進(jìn)行解碼,保證了片段之間處理延時間隙,如此,就能連續(xù)準(zhǔn)確地順序輸出解碼的數(shù)據(jù),使拼接出的視頻可以流暢播放。
請參照圖4,本實(shí)施例還提供一種應(yīng)用于圖1所示數(shù)據(jù)處理終端100的視頻解碼裝置110。所述裝置包括加載模塊111、時間定位模塊112及解碼模塊113。
所述加載模塊111,用于加載視頻源,所述視頻源包括片段起始時間點(diǎn)及片段結(jié)束時間點(diǎn)。
本實(shí)施例中,所述加載模塊111可用于執(zhí)行圖2所示的步驟s110,關(guān)于所述加載模塊111的具體描述可參對所述步驟s110的描述。
可選地,在本實(shí)施例中,所述數(shù)據(jù)處理終端100開啟至少兩個并行的視頻處理線程;所述加載模塊111加載視頻源的方式,包括:
獲取視頻源序列,所述視頻源序列包括多個視頻源;
使用所述至少兩個并行的視頻處理線程對所述視頻源序列中的視頻源進(jìn)行依次交替加載。
可選地,在本實(shí)施例中,所述加載模塊111使用所述至少兩個并行的視頻處理線程對所述視頻源序列中的視頻源進(jìn)行依次交替加載的方式,包括:
針對每個視頻處理線程,在當(dāng)前視頻源處理完成后,從視頻源序列獲取排序最靠前的未處理的視頻源進(jìn)行加載。
所述時間定位模塊112,用于針對每個所述視頻源,從所述片段起始時間點(diǎn)之前最近的關(guān)鍵幀開始進(jìn)行解碼得解碼數(shù)據(jù),其中,所述關(guān)鍵幀為壓縮視頻文件中只需要本幀數(shù)據(jù)就可以解碼生成完整圖像的幀。
本實(shí)施例中,所述時間定位模塊112可用于執(zhí)行圖2所示的步驟s120,關(guān)于所述時間定位模塊112的具體描述可參對所述步驟s120的描述。
可選地,在本實(shí)施例中,所述裝置應(yīng)用于具有android操作系統(tǒng)的視頻處理設(shè)備;所述時間定位模塊112進(jìn)行定位解碼的方式,包括:
根據(jù)所述片段起始時間點(diǎn),通過android操作系統(tǒng)中的mediaextractor方法里的seekto函數(shù)的seek_to_previous_sync模式確定所述視頻源中該片段起始時間點(diǎn)之前最近的一個關(guān)鍵幀;
將從所述關(guān)鍵幀起的視頻源數(shù)據(jù)傳遞給mediacodec方法進(jìn)行解碼。
所述解碼模塊113,用于舍棄所述關(guān)鍵幀至所述片段起始時間點(diǎn)之間的解碼數(shù)據(jù),得到所述片段起始時間點(diǎn)至所述片段結(jié)束時間點(diǎn)之間的解碼數(shù)據(jù)對應(yīng)的視頻片段。
本實(shí)施例中,所述解碼模塊113可用于執(zhí)行圖2所示的步驟s130,關(guān)于所述解碼模塊113的具體描述可參對所述步驟s130的描述。
可選地,請?jiān)俅螀⒄請D4,在本實(shí)施例中,所述裝置還包括渲染模塊114。
所述渲染模塊114,用于對多個解碼后的所述視頻片段依次進(jìn)行渲染,使多個所述視頻片段進(jìn)行連續(xù)播放。
綜上所述,本發(fā)明提供的視頻解碼方法及裝置,針對視頻源在預(yù)覽時不能精準(zhǔn)定位的問題,通過定位至根據(jù)片段起始時間點(diǎn)前一關(guān)鍵幀開始解碼,舍棄所述關(guān)鍵幀至所述片段起始時間點(diǎn)之間的解碼數(shù)據(jù),得到所述片段起始時間點(diǎn)至所述片段結(jié)束時間點(diǎn)之間的解碼數(shù)據(jù)對應(yīng)的視頻片段。如此,實(shí)現(xiàn)了視頻的精準(zhǔn)定位解碼預(yù)覽??蛇x地,采用多個并行視頻處理線程配合處理,可以連續(xù)準(zhǔn)確地順序輸出解碼的數(shù)據(jù),使拼接出的視頻可以流暢播放。
在本申請所提供的實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實(shí)現(xiàn)。以上所描述的裝置實(shí)施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實(shí)施例的裝置、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
另外,在本發(fā)明各個實(shí)施例中的各功能模塊可以集成在一起形成一個獨(dú)立的部分,也可以是各個模塊單獨(dú)存在,也可以兩個或兩個以上模塊集成形成一個獨(dú)立的部分。
所述功能如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計(jì)算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。