本發(fā)明涉及視聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種視頻數(shù)據(jù)解碼的方法,以及,一種視頻數(shù)據(jù)解碼的裝置。
背景技術(shù):
隨著即時(shí)通信的普及和網(wǎng)絡(luò)帶寬的提升,越來越多的網(wǎng)絡(luò)用戶利用攝像頭進(jìn)行視頻聊天,但由于網(wǎng)絡(luò)帶寬及傳輸質(zhì)量的不穩(wěn)定,造成了即時(shí)通信中視頻聊天的質(zhì)量難以保證,其中由于亂序和丟包造成的視頻出現(xiàn)花屏和馬賽克現(xiàn)象是目前視頻通信質(zhì)量的瓶頸之一。
在現(xiàn)有技術(shù)中,接收端在接收到視頻數(shù)據(jù)包后,將數(shù)據(jù)包進(jìn)行排序,以解決數(shù)據(jù)包出現(xiàn)亂序的問題,但仍然沒有解決丟包的問題,如果視頻出現(xiàn)了丟包仍然會(huì)導(dǎo)致花屏或馬賽克的現(xiàn)象。
例如,發(fā)送端根據(jù)H.264編碼技術(shù)編碼后的視頻序列為IPPPPP IPPP,若在視頻數(shù)據(jù)傳輸過程中第二個(gè)I幀出現(xiàn)丟包,在這種情況下,接收端接收到的視頻序列為IPPPPP PPP,傳送至解碼器進(jìn)行解碼的序列也是IPPPPP PPP,此時(shí),由于失去了I幀參考幀,使得后面的P幀只能從第一個(gè)I幀作為參考,從而造成馬賽克或花屏現(xiàn)象。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明實(shí)施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種視頻數(shù)據(jù)解碼的方法和相應(yīng)的一種視頻數(shù)據(jù)解碼的裝置。
為了解決上述問題,本發(fā)明實(shí)施例公開了一種視頻數(shù)據(jù)解碼的方法,所述方法應(yīng)用于視聯(lián)網(wǎng)中,所述方法包括:
接收節(jié)點(diǎn)服務(wù)器發(fā)送的視頻序列,所述視頻序列包括幀內(nèi)編碼幀;
判斷所述幀內(nèi)編碼幀是否丟包;
若是,則丟棄所述視頻序列;
若否,則對(duì)所述幀內(nèi)編碼幀進(jìn)行解碼。
優(yōu)選地,所述視頻序列還包括參照所述幀內(nèi)編碼幀進(jìn)行編碼的一個(gè)或多個(gè)幀間預(yù)測幀;所述方法還包括:
在判定所述幀內(nèi)編碼幀沒有丟包時(shí),分別判斷所述幀間預(yù)測幀是否丟包;
若是,則丟棄對(duì)應(yīng)的幀間預(yù)測幀;
若否,則對(duì)所述幀間預(yù)測幀進(jìn)行解碼。
優(yōu)選地,所述丟棄所述視頻序列的步驟包括:
丟棄所述幀內(nèi)編碼幀以及與所述幀內(nèi)編碼幀對(duì)應(yīng)的幀間預(yù)測幀。
優(yōu)選地,在所述判斷所述幀內(nèi)編碼幀是否丟包的步驟之前,還包括:
若所述視頻序列為亂序序列,則將所述視頻序列進(jìn)行排序。
優(yōu)選地,所述幀內(nèi)編碼幀包括多個(gè)第一數(shù)據(jù)包,所述每個(gè)第一數(shù)據(jù)包包括如下信息:所述幀內(nèi)編碼幀所包含的第一數(shù)據(jù)包總數(shù)、所述第一數(shù)據(jù)包的編號(hào);
所述判斷所述幀內(nèi)編碼幀是否丟包的步驟包括:
子步驟S11,從所述視頻序列中編號(hào)最小的第一數(shù)據(jù)包開始,依次判斷所述第一數(shù)據(jù)包是否為幀內(nèi)編碼幀首包,若是,則執(zhí)行子步驟S12;若否,則執(zhí)行子步驟S13;
子步驟S12,清空當(dāng)前緩存隊(duì)列,并將所述第一數(shù)據(jù)包存儲(chǔ)在所述緩存隊(duì)列的首位;
子步驟S13,將所述第一數(shù)據(jù)包存儲(chǔ)在當(dāng)前緩存隊(duì)列中與所述第一數(shù)據(jù)包的編號(hào)對(duì)應(yīng)的位置;
子步驟S14,重復(fù)執(zhí)行所述子步驟S11-子步驟S13,直到所述視頻序列中所有第一數(shù)據(jù)包判斷完畢,繼續(xù)執(zhí)行子步驟S15;
子步驟S15,在所述緩存隊(duì)列中,判斷所述第一數(shù)據(jù)包的數(shù)量是否與所述幀內(nèi)編碼幀所包含的第一數(shù)據(jù)包總數(shù)相等,若是,則執(zhí)行子步驟S16,若否,則執(zhí)行子步驟S17;
子步驟S16,判定所述幀內(nèi)編碼幀沒有丟包;
子步驟S17,判定所述幀內(nèi)編碼幀丟包。
優(yōu)選地,所述對(duì)所述幀內(nèi)編碼幀進(jìn)行解碼的步驟包括:
從所述緩存隊(duì)列中讀取所述幀內(nèi)編碼幀所包含的多個(gè)第一數(shù)據(jù)包;
將所述多個(gè)第一數(shù)據(jù)包發(fā)送至解碼器,促使所述解碼器進(jìn)行解碼;
刪除所述緩存隊(duì)列中所述多個(gè)第一數(shù)據(jù)包。
優(yōu)選地,所述幀間預(yù)測幀包括多個(gè)第二數(shù)據(jù)包,所述每個(gè)第二數(shù)據(jù)包包括如下信息:所述幀間預(yù)測幀所包含的第二數(shù)據(jù)包總數(shù)、所述第二數(shù)據(jù)包的編號(hào);
所述在判定所述幀內(nèi)編碼幀沒有丟包時(shí),分別判斷所述幀間預(yù)測幀是否丟包的步驟包括:
依次將所述第二數(shù)據(jù)包存儲(chǔ)在當(dāng)前緩存隊(duì)列中與所述第二數(shù)據(jù)包的編號(hào)對(duì)應(yīng)的位置;
在判定所述幀內(nèi)編碼幀沒有丟包時(shí),針對(duì)每一個(gè)幀間預(yù)測幀,分別判斷在所述緩存隊(duì)列中其對(duì)應(yīng)的多個(gè)第二數(shù)據(jù)包的數(shù)量是否與所述幀間預(yù)測幀所包含的第二數(shù)據(jù)包總數(shù)相等;
若是,則判定所述幀間預(yù)測幀沒有丟包;
若否,則判定所述幀間預(yù)測幀丟包。
優(yōu)選地,所述對(duì)所述幀間預(yù)測幀進(jìn)行解碼的步驟包括:
從所述緩存隊(duì)列中讀取所述幀間預(yù)測幀所包含的多個(gè)第二數(shù)據(jù)包;
將所述多個(gè)第二數(shù)據(jù)包發(fā)送至解碼器,促使所述解碼器進(jìn)行解碼;
刪除所述緩存隊(duì)列中所述多個(gè)第二數(shù)據(jù)包。
優(yōu)選地,所述方法還包括:
當(dāng)在所述緩存隊(duì)列中刪除所述多個(gè)第一數(shù)據(jù)包和/或多個(gè)第二數(shù)據(jù)包時(shí),將所述緩存隊(duì)列中剩下的其他數(shù)據(jù)包的位置前移。
本發(fā)明實(shí)施例還公開了一種視頻數(shù)據(jù)解碼的裝置,所述裝置應(yīng)用于視聯(lián)網(wǎng)中,所述裝置包括:
視頻接收模塊,用于接收節(jié)點(diǎn)服務(wù)器發(fā)送的視頻序列,所述視頻序列包括幀內(nèi)編碼幀;
第一判斷模塊,用于判斷所述幀內(nèi)編碼幀是否丟包;
第一丟棄模塊,用于在判定所述幀內(nèi)編碼幀丟包時(shí),丟棄所述視頻序列;
第一解碼模塊,用于在判定所述幀內(nèi)編碼幀沒有丟包時(shí),對(duì)所述幀內(nèi)編碼幀進(jìn)行解碼。
本發(fā)明實(shí)施例包括以下優(yōu)點(diǎn):
在本發(fā)明實(shí)施例中,當(dāng)接收到節(jié)點(diǎn)服務(wù)器發(fā)送的包含幀內(nèi)編碼幀的視頻序列時(shí),判斷該幀內(nèi)編碼幀是否出現(xiàn)丟包,如果是,則丟棄該視頻序列,否則,對(duì)該幀內(nèi)編碼幀進(jìn)行解碼播放。通過本發(fā)明實(shí)施例,可以保證視頻序列的完整性,避免視頻播放時(shí)出現(xiàn)花屏或馬賽克的現(xiàn)象。
其次,在本發(fā)明實(shí)施例中,由于判斷數(shù)據(jù)包為I幀首包后會(huì)對(duì)緩存隊(duì)列進(jìn)行清空,以此隔離了與該I幀不相關(guān)的其他數(shù)據(jù)包,保證了I幀與其幀間預(yù)測幀的完整性,避免了花屏或馬賽克的出現(xiàn)。
另外,本發(fā)明實(shí)施例對(duì)當(dāng)前幀間預(yù)測幀判定沒有丟包時(shí),立即將該幀間預(yù)測幀發(fā)送給解碼器解碼,繼而開始下一幀間預(yù)測幀的判斷,以這種邊判斷解碼邊解碼的方式進(jìn)行多個(gè)幀間預(yù)測幀的判斷,可以有效的提高了解碼的實(shí)時(shí)性。
進(jìn)一步的,在本發(fā)明實(shí)施例中,對(duì)于每個(gè)數(shù)據(jù)包,只是進(jìn)行一次的I幀首包的判斷,判斷次數(shù)少,算法復(fù)雜度較低,計(jì)算效率高。
附圖說明
圖1是本發(fā)明的一種視聯(lián)網(wǎng)的組網(wǎng)示意圖;
圖2是本發(fā)明的一種節(jié)點(diǎn)服務(wù)器的硬件結(jié)構(gòu)示意圖;
圖3是本發(fā)明的一種接入交換機(jī)的硬件結(jié)構(gòu)示意圖;
圖4是本發(fā)明的一種以太網(wǎng)協(xié)轉(zhuǎn)網(wǎng)關(guān)的硬件結(jié)構(gòu)示意圖;
圖5是本發(fā)明的一種視頻數(shù)據(jù)解碼的方法實(shí)施例一的步驟流程圖;
圖6是本發(fā)明的一種視頻數(shù)據(jù)解碼的方法實(shí)施例二的步驟流程圖;
圖7是本發(fā)明的一種視頻數(shù)據(jù)解碼的裝置實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
視聯(lián)網(wǎng)是網(wǎng)絡(luò)發(fā)展的重要里程碑,是一個(gè)實(shí)時(shí)網(wǎng)絡(luò),能夠?qū)崿F(xiàn)高清視頻實(shí)時(shí)傳輸,將眾多互聯(lián)網(wǎng)應(yīng)用推向高清視頻化,高清面對(duì)面。
視聯(lián)網(wǎng)采用實(shí)時(shí)高清視頻交換技術(shù),可以在一個(gè)網(wǎng)絡(luò)平臺(tái)上將所需的服務(wù),如高清視頻會(huì)議、視頻監(jiān)控、智能化監(jiān)控分析、應(yīng)急指揮、數(shù)字廣播電視、延時(shí)電視、網(wǎng)絡(luò)教學(xué)、現(xiàn)場直播、VOD點(diǎn)播、電視郵件、個(gè)性錄制(PVR)、內(nèi)網(wǎng)(自辦)頻道、智能化視頻播控、信息發(fā)布等數(shù)十種視頻、語音、圖片、文字、通訊、數(shù)據(jù)等服務(wù)全部整合在一個(gè)系統(tǒng)平臺(tái),通過電視或電腦實(shí)現(xiàn)高清品質(zhì)視頻播放。
視聯(lián)網(wǎng)的組網(wǎng)如下所述:
視聯(lián)網(wǎng)是一種集中控制的網(wǎng)絡(luò)結(jié)構(gòu),該網(wǎng)絡(luò)可以是樹型網(wǎng)、星型網(wǎng)、環(huán)狀網(wǎng)等等類型,但在此基礎(chǔ)上網(wǎng)絡(luò)中需要有集中控制節(jié)點(diǎn)來控制整個(gè)網(wǎng)絡(luò)。
如圖1所示,視聯(lián)網(wǎng)分為接入網(wǎng)和城域網(wǎng)兩部分。
接入網(wǎng)部分的設(shè)備主要可以分為3類:節(jié)點(diǎn)服務(wù)器,接入交換機(jī),終端(包括各種機(jī)頂盒、編碼板、存儲(chǔ)器等)。節(jié)點(diǎn)服務(wù)器與接入交換機(jī)相連,接入交換機(jī)可以與多個(gè)終端相連,并可以連接以太網(wǎng)。
其中,節(jié)點(diǎn)服務(wù)器是接入網(wǎng)中起集中控制功能的節(jié)點(diǎn),可控制接入交換機(jī)和終端。節(jié)點(diǎn)服務(wù)器可直接與接入交換機(jī)相連,也可以直接與終端相連。
類似的,城域網(wǎng)部分的設(shè)備也可以分為3類:城域服務(wù)器,節(jié)點(diǎn)交換機(jī),節(jié)點(diǎn)服務(wù)器。城域服務(wù)器與節(jié)點(diǎn)交換機(jī)相連,節(jié)點(diǎn)交換機(jī)可以與多個(gè)節(jié)點(diǎn)服務(wù)器相連。
其中,節(jié)點(diǎn)服務(wù)器即為接入網(wǎng)部分的節(jié)點(diǎn)服務(wù)器,即節(jié)點(diǎn)服務(wù)器既屬于接入網(wǎng)部分,又屬于城域網(wǎng)部分。
城域服務(wù)器是城域網(wǎng)中起集中控制功能的節(jié)點(diǎn),可控制節(jié)點(diǎn)交換機(jī)和節(jié)點(diǎn)服務(wù)器。城域服務(wù)器可直接連接節(jié)點(diǎn)交換機(jī),也可直接連接節(jié)點(diǎn)服務(wù)器。
由此可見,整個(gè)視聯(lián)網(wǎng)絡(luò)是一種分層集中控制的網(wǎng)絡(luò)結(jié)構(gòu),而節(jié)點(diǎn)服務(wù)器和城域服務(wù)器下控制的網(wǎng)絡(luò)可以是樹型、星型、環(huán)狀等各種結(jié)構(gòu)。
形象地稱,接入網(wǎng)部分可以組成統(tǒng)一視頻平臺(tái)(虛線圈中部分),多個(gè)統(tǒng)一視頻平臺(tái)可以組成視聯(lián)網(wǎng);每個(gè)統(tǒng)一視頻平臺(tái)可以通過城域以及廣域視聯(lián)網(wǎng)互聯(lián)互通。
視聯(lián)網(wǎng)設(shè)備分類
1.1本發(fā)明實(shí)施例的視聯(lián)網(wǎng)中的設(shè)備主要可以分為3類:服務(wù)器,交換機(jī)(包括以太網(wǎng)網(wǎng)關(guān)),終端(包括各種機(jī)頂盒,編碼板,存儲(chǔ)器等)。視聯(lián)網(wǎng)整體上可以分為城域網(wǎng)(或者國家網(wǎng)、全球網(wǎng)等)和接入網(wǎng)。
1.2其中接入網(wǎng)部分的設(shè)備主要可以分為3類:節(jié)點(diǎn)服務(wù)器,接入交換機(jī)(包括以太網(wǎng)網(wǎng)關(guān)),終端(包括各種機(jī)頂盒,編碼板,存儲(chǔ)器等)。
各接入網(wǎng)設(shè)備的具體硬件結(jié)構(gòu)為:
節(jié)點(diǎn)服務(wù)器:
如圖2所示,主要包括網(wǎng)絡(luò)接口模塊201、交換引擎模塊202、CPU模塊203、磁盤陣列模塊204;
其中,網(wǎng)絡(luò)接口模塊201,CPU模塊203、磁盤陣列模塊204進(jìn)來的包均進(jìn)入交換引擎模塊202;交換引擎模塊202對(duì)進(jìn)來的包進(jìn)行查地址表205的操作,從而獲得包的導(dǎo)向信息;并根據(jù)包的導(dǎo)向信息把該包存入對(duì)應(yīng)的包緩存器206的隊(duì)列;如果包緩存器206的隊(duì)列接近滿,則丟棄;交換引擎模塊202輪詢所有包緩存器隊(duì)列,如果滿足以下條件進(jìn)行轉(zhuǎn)發(fā):1)該端口發(fā)送緩存未滿;2)該隊(duì)列包計(jì)數(shù)器大于零。磁盤陣列模塊204 主要實(shí)現(xiàn)對(duì)硬盤的控制,包括對(duì)硬盤的初始化、讀寫等操作;CPU模塊203主要負(fù)責(zé)與接入交換機(jī)、終端(圖中未示出)之間的協(xié)議處理,對(duì)地址表205(包括下行協(xié)議包地址表、上行協(xié)議包地址表、數(shù)據(jù)包地址表)的配置,以及,對(duì)磁盤陣列模塊204的配置。
接入交換機(jī):
如圖3所示,主要包括網(wǎng)絡(luò)接口模塊(下行網(wǎng)絡(luò)接口模塊301、上行網(wǎng)絡(luò)接口模塊302)、交換引擎模塊303和CPU模塊304;
其中,下行網(wǎng)絡(luò)接口模塊301進(jìn)來的包(上行數(shù)據(jù))進(jìn)入包檢測模塊305;包檢測模塊305檢測包的目地地址(DA)、源地址(SA)、數(shù)據(jù)包類型及包長度是否符合要求,如果符合,則分配相應(yīng)的流標(biāo)識(shí)符(stream-id),并進(jìn)入交換引擎模塊303,否則丟棄;上行網(wǎng)絡(luò)接口模塊302進(jìn)來的包(下行數(shù)據(jù))進(jìn)入交換引擎模塊303;CPU模塊204進(jìn)來的數(shù)據(jù)包進(jìn)入交換引擎模塊303;交換引擎模塊303對(duì)進(jìn)來的包進(jìn)行查地址表306的操作,從而獲得包的導(dǎo)向信息;如果進(jìn)入交換引擎模塊303的包是下行網(wǎng)絡(luò)接口往上行網(wǎng)絡(luò)接口去的,則結(jié)合流標(biāo)識(shí)符(stream-id)把該包存入對(duì)應(yīng)的包緩存器307的隊(duì)列;如果該包緩存器307的隊(duì)列接近滿,則丟棄;如果進(jìn)入交換引擎模塊303的包不是下行網(wǎng)絡(luò)接口往上行網(wǎng)絡(luò)接口去的,則根據(jù)包的導(dǎo)向信息,把該數(shù)據(jù)包存入對(duì)應(yīng)的包緩存器307的隊(duì)列;如果該包緩存器307的隊(duì)列接近滿,則丟棄。
交換引擎模塊303輪詢所有包緩存器隊(duì)列,在本發(fā)明實(shí)施例中分兩種情形:
如果該隊(duì)列是下行網(wǎng)絡(luò)接口往上行網(wǎng)絡(luò)接口去的,則滿足以下條件進(jìn)行轉(zhuǎn)發(fā):1)該端口發(fā)送緩存未滿;2)該隊(duì)列包計(jì)數(shù)器大于零;3)獲得碼率控制模塊產(chǎn)生的令牌;
如果該隊(duì)列不是下行網(wǎng)絡(luò)接口往上行網(wǎng)絡(luò)接口去的,則滿足以下條件進(jìn)行轉(zhuǎn)發(fā):1)該端口發(fā)送緩存未滿;2)該隊(duì)列包計(jì)數(shù)器大于零。
碼率控制模塊208是由CPU模塊204來配置的,在可編程的間隔內(nèi)對(duì)所有下行網(wǎng)絡(luò)接口往上行網(wǎng)絡(luò)接口去的包緩存器隊(duì)列產(chǎn)生令牌,用以 控制上行轉(zhuǎn)發(fā)的碼率。
CPU模塊304主要負(fù)責(zé)與節(jié)點(diǎn)服務(wù)器之間的協(xié)議處理,對(duì)地址表306的配置,以及,對(duì)碼率控制模塊308的配置。
以太網(wǎng)協(xié)轉(zhuǎn)網(wǎng)關(guān):
如圖4所示,主要包括網(wǎng)絡(luò)接口模塊(下行網(wǎng)絡(luò)接口模塊401、上行網(wǎng)絡(luò)接口模塊402)、交換引擎模塊403、CPU模塊404、包檢測模塊405、碼率控制模塊408、地址表406、包緩存器407和MAC添加模塊409、MAC刪除模塊410。
其中,下行網(wǎng)絡(luò)接口模塊401進(jìn)來的數(shù)據(jù)包進(jìn)入包檢測模塊405;包檢測模塊405檢測數(shù)據(jù)包的以太網(wǎng)MAC DA、以太網(wǎng)MAC SA、以太網(wǎng)length or frame type、視聯(lián)網(wǎng)目地地址DA、視聯(lián)網(wǎng)源地址SA、視聯(lián)網(wǎng)數(shù)據(jù)包類型及包長度是否符合要求,如果符合則分配相應(yīng)的流標(biāo)識(shí)符(stream-id);然后,由MAC刪除模塊410減去MAC DA、MAC SA、length or frame type(2byte),并進(jìn)入相應(yīng)的接收緩存,否則丟棄;
下行網(wǎng)絡(luò)接口模塊401檢測該端口的發(fā)送緩存,如果有包則根據(jù)包的視聯(lián)網(wǎng)目地地址DA獲知對(duì)應(yīng)的終端的以太網(wǎng)MAC DA,添加終端的以太網(wǎng)MAC DA、以太網(wǎng)協(xié)轉(zhuǎn)網(wǎng)關(guān)的MAC SA、以太網(wǎng)length or frame type,并發(fā)送。
以太網(wǎng)協(xié)轉(zhuǎn)網(wǎng)關(guān)中其他模塊的功能與接入交換機(jī)類似。
終端:
主要包括網(wǎng)絡(luò)接口模塊、業(yè)務(wù)處理模塊和CPU模塊;例如,機(jī)頂盒主要包括網(wǎng)絡(luò)接口模塊、視音頻編解碼引擎模塊、CPU模塊;編碼板主要包括網(wǎng)絡(luò)接口模塊、視音頻編碼引擎模塊、CPU模塊;存儲(chǔ)器主要包括網(wǎng)絡(luò)接口模塊、CPU模塊和磁盤陣列模塊。
1.3城域網(wǎng)部分的設(shè)備主要可以分為2類:節(jié)點(diǎn)服務(wù)器,節(jié)點(diǎn)交換機(jī),城域服務(wù)器。其中,節(jié)點(diǎn)交換機(jī)主要包括網(wǎng)絡(luò)接口模塊、交換引擎模塊和CPU模塊;城域服務(wù)器主要包括網(wǎng)絡(luò)接口模塊、交換引擎模塊和CPU 模塊構(gòu)成。
2.終端的入網(wǎng)過程:
首先每臺(tái)允許入網(wǎng)的終端都必須在節(jié)點(diǎn)服務(wù)器中注冊,沒有注冊的終端無法入網(wǎng)。所述終端入網(wǎng)的過程涉及以下步驟:
S1、節(jié)點(diǎn)服務(wù)器向每個(gè)端口發(fā)送查詢包,終端收到查詢包后發(fā)送應(yīng)答包,該應(yīng)答包中包含終端的注冊信息;
S2、節(jié)點(diǎn)服務(wù)器收到終端發(fā)出的應(yīng)答包后就知道哪個(gè)端口下接了哪種終端(機(jī)頂盒,編碼板還是存儲(chǔ)器),然后在節(jié)點(diǎn)服務(wù)器內(nèi)部的注冊信息表里找到該終端的信息,向該終端發(fā)送入網(wǎng)命令(告訴終端的接入網(wǎng)地址),終端收到入網(wǎng)命令后就入網(wǎng)了,同時(shí)向節(jié)點(diǎn)服務(wù)器發(fā)送入網(wǎng)命令應(yīng)答;
S3、節(jié)點(diǎn)服務(wù)器收到終端發(fā)出的入網(wǎng)命令應(yīng)答就知道本終端已經(jīng)入網(wǎng)了,以后定時(shí)向這個(gè)端口發(fā)送狀態(tài)查詢包,檢查終端是否正常工作。如果終端正常工作,收到狀態(tài)查詢包后會(huì)發(fā)送狀態(tài)查詢應(yīng)答給節(jié)點(diǎn)服務(wù)器。當(dāng)節(jié)點(diǎn)服務(wù)器一段時(shí)間之內(nèi)沒有收到狀態(tài)查詢應(yīng)答,就認(rèn)為本終端已經(jīng)被移出網(wǎng)絡(luò),不再發(fā)送狀態(tài)查詢包,繼續(xù)向本端口發(fā)送查詢包。
為使本領(lǐng)域技術(shù)人員更好地理解視聯(lián)網(wǎng),以下提供幾種應(yīng)用視聯(lián)網(wǎng)進(jìn)行服務(wù)通信的示例:
3.1可視通信交互流程
開始可視通信:
主叫機(jī)頂盒發(fā)出申請(qǐng)命令,命令中有被叫機(jī)頂盒的號(hào)碼。
節(jié)點(diǎn)服務(wù)器收到機(jī)頂盒的申請(qǐng)命令后先去查詢被叫機(jī)頂盒是否入網(wǎng),未入網(wǎng)則告知主叫機(jī)頂盒申請(qǐng)失敗。
若是被叫機(jī)頂盒已入網(wǎng)則查詢被叫機(jī)頂盒是否空閑,若是不空閑告知主叫機(jī)頂盒申請(qǐng)失敗。
若是被叫機(jī)頂盒已入網(wǎng)并且處于空閑狀態(tài),節(jié)點(diǎn)服務(wù)器發(fā)送呼叫菜單給被叫機(jī)頂盒,等待被叫機(jī)頂盒應(yīng)答。被叫機(jī)頂盒可以選擇接受或者拒接,應(yīng)答發(fā)送給節(jié)點(diǎn)服務(wù)器。
節(jié)點(diǎn)服務(wù)器收到被叫機(jī)頂盒的應(yīng)答。如果是拒接,告知主叫機(jī)頂盒申請(qǐng)失敗。
如果是接受,節(jié)點(diǎn)服務(wù)器發(fā)送編解碼命令給雙方機(jī)頂盒??梢曂ㄐ乓?,雙方機(jī)頂盒要同時(shí)編解碼。數(shù)據(jù)是單播數(shù)據(jù),編碼地址是對(duì)方地址,解碼地址是自己的地址
節(jié)點(diǎn)服務(wù)器將被叫機(jī)頂盒和主叫機(jī)頂盒之間的的所有交換機(jī)的針對(duì)這2路單播數(shù)據(jù)的通路打開。
停止可視通信
被叫機(jī)頂盒和主叫機(jī)頂盒都可以提出停止申請(qǐng)。節(jié)點(diǎn)服務(wù)器收到機(jī)頂盒的停止命令后將被叫機(jī)頂盒和主叫機(jī)頂盒之間的的所有交換機(jī)的針對(duì)這2路單播數(shù)據(jù)的通路關(guān)閉。然后給被叫機(jī)頂盒和主叫機(jī)頂盒分別發(fā)送停止編解碼的命令,發(fā)送上一頁菜單,讓機(jī)頂盒返回到菜單。
3.2、視頻聊天,網(wǎng)上教室,市民熱線:
參與方終端進(jìn)入聊天室后,根據(jù)HLP鍵顯示OSD內(nèi)容,可申請(qǐng)視頻上傳,向主持送花。
主持方用戶代理服務(wù)器,記錄用戶申請(qǐng),并向直播終端發(fā)送OSD提示。
直播方終端,可能顯示多條視頻上傳申請(qǐng)OSD,遙控器選擇一路上傳,并自動(dòng)關(guān)閉上一路。
用戶代理服務(wù)器,在關(guān)閉視頻上傳時(shí),向計(jì)費(fèi)流水帳發(fā)送特別計(jì)費(fèi)包。
用戶代理服務(wù)器,記錄該用戶送花值,通知直播方,并向計(jì)費(fèi)流水帳發(fā)送特別計(jì)費(fèi)包。
用戶進(jìn)入聊天室,送花,參與音頻,開通視頻對(duì)話所付費(fèi)用,自動(dòng)安比例存入個(gè)人郵箱。
視頻聊天:主持人在家(現(xiàn)場)播出影像可達(dá)全網(wǎng),主持人可看到觀眾申請(qǐng),聽到許多觀眾聲音,但只能選擇地看到1路觀眾影像。
觀眾通過節(jié)目表得知聊天室撥號(hào)加入,可向主持人鮮花(額外收費(fèi)),可申請(qǐng)通話或視頻。
3.3、會(huì)議(多路現(xiàn)場直播捆綁):(組播業(yè)務(wù))
會(huì)議發(fā)起方終端或相連的MPC,編輯和維護(hù)會(huì)議操作表,實(shí)現(xiàn)多路進(jìn)程捆綁。
1)大會(huì)發(fā)言:
發(fā)起方終端直接控制指定參與方的終端,并關(guān)閉參與方的遙控操作,強(qiáng)制被動(dòng)參會(huì)。
強(qiáng)制實(shí)現(xiàn)發(fā)起方發(fā)言,參與收看。
發(fā)起方終端可在參與方不知情的前提下,收看任一參與方,或者指定其發(fā)言。
大會(huì)發(fā)言:適合上級(jí)領(lǐng)導(dǎo)報(bào)告,工程事件指揮,企業(yè)總部與遠(yuǎn)程分支間的例行調(diào)度會(huì)議。
2)課堂教學(xué):
任意參與方終端,可向發(fā)起方終端提出發(fā)言申請(qǐng),獲得發(fā)起方批準(zhǔn)后,即可發(fā)言。
課堂教學(xué):實(shí)現(xiàn)會(huì)議聊天室,與直播聊天室的差別是直播觀眾永遠(yuǎn)看支持人,會(huì)議聊天觀眾看發(fā)言方,或者通過多屏終端同時(shí)看支持人和發(fā)言方。
3)圓桌討論:
任意參與方終端,按單個(gè)ENTER鍵,即可打斷別人而爭搶發(fā)言(至少10秒不被打斷)。
圓桌討論:實(shí)現(xiàn)會(huì)議聊天室,與直播聊天室的差別是直播觀眾永遠(yuǎn)看支持人,會(huì)議聊天觀眾看發(fā)言方,或者通過多屏終端同時(shí)看支持人和發(fā)言方。
4)多屏?xí)h:
用戶代理服務(wù)器,可插入VOD。
必須使用PBOX終端,可同時(shí)顯示發(fā)起方(主席)、發(fā)言方、本地會(huì)場、VOD或PC屏幕。
可選擇大會(huì)發(fā)言,課堂教學(xué),圓桌討論等會(huì)議模式。
5)電視墻:
可同時(shí)顯示發(fā)起方(主席)、發(fā)言方、多分路會(huì)場、VOD或PC屏幕。
可選擇大會(huì)發(fā)言,課堂教學(xué),圓桌討論等會(huì)議模式。
3.4、電視電話:(單播業(yè)務(wù))
6)普通可視電話:
用戶代理服務(wù)器,維護(hù)電話號(hào)碼簿,支持普通撥號(hào)和強(qiáng)制撥號(hào)。
用戶終端進(jìn)入通話后,根據(jù)HLP鍵顯示OSD菜單,可將通信內(nèi)容存入郵箱,可選擇或調(diào)整對(duì)方攝像頭角度。
7)被叫方付費(fèi)可視電話(Video 800):
此類號(hào)碼以800開頭,用戶免費(fèi),其他與普通可視電話相同。
被叫方付費(fèi)可視電話:適用于廣告、客戶服務(wù)、公益服務(wù)等。
8)視訊服務(wù)電話(Video 900):
此類號(hào)碼以900開頭,主叫方為普通用戶終端,服務(wù)費(fèi)中除了通信費(fèi)外,還包含較高的內(nèi)容費(fèi)(按秒計(jì)),其他與普通可視電話相同。
被叫方為內(nèi)容提供商(內(nèi)容包括實(shí)時(shí)通訊、VOD、電視雜志)。
9)家庭監(jiān)控:
用戶代理服務(wù)器,單向通信,只要視頻發(fā)送資源不沖突,可與其他服務(wù)同時(shí)進(jìn)行。
用戶終端撥號(hào)進(jìn)入監(jiān)控后,根據(jù)HLP鍵顯示OSD菜單,可將監(jiān)控內(nèi)容存入郵箱,可選擇多路攝像頭或調(diào)整對(duì)方攝像頭角度。
被監(jiān)控終端,可設(shè)定監(jiān)控權(quán)限(指定一組可監(jiān)控號(hào)碼,開放所有號(hào)碼,或禁止所有號(hào)碼)。
家庭監(jiān)控:適用于家庭、小商店、銀行分理所等。
基于視聯(lián)網(wǎng)的上述特性,提出了本發(fā)明實(shí)施例的核心構(gòu)思之一,在視聯(lián)網(wǎng)中將糾錯(cuò)排序算法與H264編碼的特性結(jié)合起來,視頻接收終端在接收到視頻序列以后,首先按照糾錯(cuò)算法對(duì)視頻序列進(jìn)行按序排序,讓后基于H264編碼的特性判斷視頻序列中的幀內(nèi)編碼幀是否出現(xiàn)丟包,若出現(xiàn)丟包,則丟棄整個(gè)視頻序列,否則,將該幀內(nèi)編碼幀進(jìn)行解碼播放,隨后判斷參考幀內(nèi)編碼幀的每個(gè)幀間預(yù)測幀是否出現(xiàn)丟包,若是,則丟棄該幀間預(yù)測幀,否則,將該幀間預(yù)測幀進(jìn)行解碼播放,以此避免視頻出現(xiàn)花屏或馬賽克的現(xiàn)象。
參照?qǐng)D5,示出了本發(fā)明的一種視頻數(shù)據(jù)解碼的方法實(shí)施例一的步驟流程圖,該方法可以應(yīng)用于視聯(lián)網(wǎng)中,本發(fā)明實(shí)施例具體可以包括如下步驟:
步驟501,接收節(jié)點(diǎn)服務(wù)器發(fā)送的視頻序列,所述視頻序列包括幀內(nèi)編碼幀;
步驟502,判斷所述幀內(nèi)編碼幀是否丟包,若是,則執(zhí)行步驟503;若否,則執(zhí)行步驟504;
步驟503,丟棄所述視頻序列;
步驟504,對(duì)所述幀內(nèi)編碼幀進(jìn)行解碼。
在本發(fā)明實(shí)施例中,當(dāng)接收到節(jié)點(diǎn)服務(wù)器發(fā)送的包含幀內(nèi)編碼幀的視頻序列時(shí),判斷該幀內(nèi)編碼幀是否出現(xiàn)丟包,如果是,則丟棄該視頻序列,否則,對(duì)該幀內(nèi)編碼幀進(jìn)行解碼播放。例如,視頻序列為IPPPPP,若判定I幀沒有丟包,則將I幀解碼播放;若判定I幀出現(xiàn)丟包,則丟棄該視頻序列IPPPPP。通過本發(fā)明實(shí)施例,可以保證視頻序列的完整性,避免視頻播放時(shí)出現(xiàn)花屏或馬賽克的現(xiàn)象。
參照?qǐng)D6,示出了本發(fā)明的一種視頻數(shù)據(jù)解碼的方法實(shí)施例二的步驟流程圖,該方法可以應(yīng)用于視聯(lián)網(wǎng)中,本發(fā)明實(shí)施例具體可以包括如下步驟:
步驟601,接收節(jié)點(diǎn)服務(wù)器發(fā)送的視頻序列,所述視頻序列包括幀內(nèi)編碼幀以及參照所述幀內(nèi)編碼幀進(jìn)行編碼的一個(gè)或多個(gè)幀間預(yù)測幀;
本發(fā)明實(shí)施例可以應(yīng)用于上述視聯(lián)網(wǎng)中會(huì)議、視頻聊天、可視通信交互等場景,節(jié)點(diǎn)服務(wù)器的作用是從視頻發(fā)送終端中接收視頻序列,并將該視頻序列發(fā)送至視頻接收終端中。其中,視頻發(fā)送終端是指對(duì)視頻數(shù)據(jù)進(jìn)行編碼,并將編碼后的視頻數(shù)據(jù)以視頻序列的形式發(fā)送至節(jié)點(diǎn)服務(wù)器的終端,視頻接收終端是指從節(jié)點(diǎn)服務(wù)器中接收視頻序列的終端。
在具體實(shí)現(xiàn)中,視頻發(fā)送終端可以采用H.264(即H264)編碼技術(shù)對(duì)視頻數(shù)據(jù)進(jìn)行編碼,H264編碼格式是一種壓縮編碼格式,它被廣泛的使用在高精度視頻的錄制、壓縮和發(fā)布。H264編碼格式能夠在更低帶寬下提供優(yōu) 質(zhì)視頻。在H264協(xié)議里定義了幀內(nèi)編碼幀以及幀間預(yù)測幀兩種格式,其中,幀內(nèi)編碼幀也稱為I幀,是經(jīng)過完整編碼的幀;幀間預(yù)測幀進(jìn)一步可以分為單向幀間預(yù)測幀P幀以及雙向幀間預(yù)測幀B幀,P幀為參考之前的I幀生成的只包含差異部分編碼的幀,B幀為參考前后的幀編碼的幀。在實(shí)際中,I幀、B幀、P幀等可以通過幀號(hào)進(jìn)行區(qū)別。
由于每個(gè)視頻幀(幀內(nèi)編碼幀和/或幀間預(yù)測幀)的幀大小是不固定的,因此,視頻發(fā)送終端在發(fā)送視頻幀時(shí)可以將視頻幀拆分成多個(gè)數(shù)據(jù)包進(jìn)行發(fā)送,并對(duì)每個(gè)數(shù)據(jù)包進(jìn)行編號(hào)。每個(gè)數(shù)據(jù)包的頭部信息都承載相關(guān)的信息,如當(dāng)前視頻幀號(hào)、視頻幀拆分的數(shù)據(jù)包總數(shù)、當(dāng)前視頻分包編號(hào)、校驗(yàn)碼,等等。
具體的,視頻發(fā)送終端將幀內(nèi)編碼幀拆分成多個(gè)第一數(shù)據(jù)包,每個(gè)第一數(shù)據(jù)包包括如下信息:幀內(nèi)編碼幀所包含的第一數(shù)據(jù)包總數(shù)、該第一數(shù)據(jù)包的編號(hào),為幀內(nèi)編碼幀的第幾個(gè)數(shù)據(jù)包等,例如,視頻發(fā)送終端將I幀拆分成I1、I2、I3三個(gè)第一數(shù)據(jù)包,則I1數(shù)據(jù)包頭包括的信息可以為:I幀拆分的數(shù)據(jù)包總數(shù)為3,當(dāng)前第一數(shù)據(jù)包編號(hào)為1,為當(dāng)前幀的第一個(gè)數(shù)據(jù)包。在實(shí)際中,數(shù)據(jù)包的編號(hào)可以直接表示該數(shù)據(jù)包為當(dāng)前視頻幀的第幾個(gè)分包,例如,I1的編號(hào)為1,表示I1為I幀的第一個(gè)數(shù)據(jù)包。
與上述幀內(nèi)編碼幀類似,視頻發(fā)送終端將幀間預(yù)測幀拆分成多個(gè)第二數(shù)據(jù)包,該第二數(shù)據(jù)包可以包括如下信息:該幀間預(yù)測幀所包含的第二數(shù)據(jù)包總數(shù)、該第二數(shù)據(jù)包的編號(hào),該第二數(shù)據(jù)包為幀間預(yù)測幀的第幾個(gè)數(shù)據(jù)包,等等。例如,視頻發(fā)送終端將P幀拆分成P4、P5、P6三個(gè)第二數(shù)據(jù)包,則P4數(shù)據(jù)包頭包括的信息可以為:P幀拆分的數(shù)據(jù)包總數(shù)為3,當(dāng)前第一數(shù)據(jù)包編號(hào)為4,P4為P幀的第一個(gè)分包。
在實(shí)際中,第二數(shù)據(jù)包的編號(hào)與第一數(shù)據(jù)包的編號(hào)為連續(xù)的編號(hào),計(jì)算該第二數(shù)據(jù)包為幀間預(yù)測幀的第幾個(gè)分包時(shí),可以將該第二數(shù)據(jù)包的編號(hào)減去幀內(nèi)編碼幀的總數(shù)獲得,例如,上例中的P4,由于I幀有三個(gè)分包,則P4為P幀的第(4-3=1)個(gè)分包。當(dāng)然,第二數(shù)據(jù)包的編號(hào)跟第一數(shù)據(jù)包的編號(hào)也可以不連續(xù),例如,第二數(shù)據(jù)包的編號(hào)也是從“1”開始,本發(fā)明實(shí) 施例對(duì)此無需加以限制。
本發(fā)明實(shí)施例中的視頻序列是指,幀內(nèi)編碼幀和/或與所述幀內(nèi)編碼幀對(duì)應(yīng)的幀間預(yù)測幀所組成的數(shù)據(jù)包序列,也即,視頻序列包括一個(gè)I幀,和/或,一個(gè)或多個(gè)參考I幀的P幀或B幀所組成的數(shù)據(jù)包序列。例如,“IPPPPP”為一個(gè)視頻序列;“IPPPPP IPPP”則為兩個(gè)視頻序列,分別為:“IPPPPP”及“IPPP”。
步驟602,若所述視頻序列為亂序序列,則將所述視頻序列進(jìn)行排序;
在具體實(shí)現(xiàn)中,由于網(wǎng)絡(luò)的不穩(wěn)定,視頻接收終端接收到的視頻序列可能是無序或者亂序的數(shù)據(jù)包(包括多個(gè)第一數(shù)據(jù)包和/或多個(gè)第二數(shù)據(jù)包),此時(shí)視頻接收終端可以將該無序或亂序的數(shù)據(jù)包進(jìn)行重新排序。
為了便于觀察以及便于數(shù)據(jù)的處理,視頻接收終端可以根據(jù)每個(gè)數(shù)據(jù)包的編號(hào)將多個(gè)數(shù)據(jù)包以增序的形式進(jìn)行排序,使得數(shù)據(jù)包以增大模式輸出。例如,視頻接收終端依次接收到的視頻序列為:I1,I3,I2,P4,P6,P5;排序后的視頻序列為:I1,I2,I3,P4,P5,P6。
步驟603,判斷所述幀內(nèi)編碼幀是否丟包;若是,則執(zhí)行步驟604,若否,則執(zhí)行步驟605;
視頻接收終端對(duì)視頻序列進(jìn)行重新排序后,進(jìn)一步對(duì)該視頻序列按照H264的編碼特性進(jìn)行組幀,以判斷該視頻序列是否出現(xiàn)丟包現(xiàn)象。
由于I幀是完整編碼的幀,P幀或B幀是參照I幀編碼的幀,因此在解碼時(shí),I幀只需要本幀數(shù)據(jù)就可以完成解碼,P幀需要用之前緩存的畫面疊加上本幀定義的差別,生成最終畫面;B幀需要通過前后畫面的與本幀數(shù)據(jù)的疊加取得最終的畫面。因此,本發(fā)明實(shí)施例首先判斷基礎(chǔ)幀I幀是否出現(xiàn)丟包。
在本發(fā)明的一種優(yōu)選實(shí)施例中,步驟603進(jìn)一步可以包括如下子步驟:
子步驟S11,從所述視頻序列中編號(hào)最小的第一數(shù)據(jù)包開始,依次判斷所述第一數(shù)據(jù)包是否為幀內(nèi)編碼幀首包,若是,則執(zhí)行子步驟S12;若否,則執(zhí)行子步驟S13;
具體而言,若以增序的形式進(jìn)行視頻序列中數(shù)據(jù)包的排序,則排序在視 頻序列中的編號(hào)最小的數(shù)據(jù)包為視頻序列中的第一個(gè)數(shù)據(jù)包,由于I幀為基礎(chǔ)幀,其數(shù)據(jù)包通常排列在視頻序列的前面,因此,視頻序列的第一個(gè)數(shù)據(jù)包為第一數(shù)據(jù)包中的一個(gè)。
在本發(fā)明實(shí)施例中,依次判斷視頻序列中的每個(gè)數(shù)據(jù)包是否為I幀首包,在具體實(shí)現(xiàn)中,由于數(shù)據(jù)包的包頭信息包括該數(shù)據(jù)包屬于哪個(gè)幀的第幾個(gè)數(shù)據(jù)包等信息,因此可以根據(jù)每個(gè)數(shù)據(jù)包的包頭所攜帶的信息來判斷該數(shù)據(jù)包是否為I幀首包。
子步驟S12,清空當(dāng)前緩存隊(duì)列,并將所述第一數(shù)據(jù)包存儲(chǔ)在所述緩存隊(duì)列的首位;
若判斷視頻序列中的某一數(shù)據(jù)包為I幀首包,則可以清空預(yù)先設(shè)置的緩存隊(duì)列,并將該I幀首包放置在緩存隊(duì)列的第一個(gè)位置中,以保證緩存隊(duì)列都是從I幀首包開始的,從而保證了后續(xù)關(guān)于I幀及其幀間預(yù)測幀的連續(xù)性和完整性判斷。
子步驟S13,將所述第一數(shù)據(jù)包存儲(chǔ)在當(dāng)前緩存隊(duì)列中與所述第一數(shù)據(jù)包的編號(hào)對(duì)應(yīng)的位置;
若判斷視頻序列中的某一數(shù)據(jù)包不為I幀首包,則將該數(shù)據(jù)包插入緩存隊(duì)列中與該數(shù)據(jù)包的編號(hào)對(duì)應(yīng)的位置。
子步驟S14,重復(fù)執(zhí)行所述子步驟S11-子步驟S13,直到所述視頻序列中所有第一數(shù)據(jù)包判斷完畢,繼續(xù)執(zhí)行子步驟S15;
對(duì)緩存隊(duì)列中每個(gè)數(shù)據(jù)包都執(zhí)行子步驟S11-子步驟S13的操作,直到視頻序列中每個(gè)第一數(shù)據(jù)包都判斷完畢。
例如,對(duì)于上述視頻序列I1,I2,I3,P4,P5,P6,執(zhí)行如下判斷過程:
(1)對(duì)I1進(jìn)行判斷,判斷I1為I幀首包,則清空緩存隊(duì)列,將I1放置在緩存隊(duì)列的第一位置中,得到的隊(duì)列為:I1;
(2)對(duì)I2進(jìn)行判斷,判定I2不是I幀首包,則將I2插入緩存隊(duì)列I1的后一位置中,得到的隊(duì)列為I1,I2;
(3)對(duì)I3進(jìn)行判斷,判定I3不是I幀首包,則將I3插入緩存隊(duì)列I2的后一位置中,得到的隊(duì)列為I1,I2,I3。
子步驟S15,在所述緩存隊(duì)列中,判斷所述第一數(shù)據(jù)包的數(shù)量是否與所述幀內(nèi)編碼幀所包含的第一數(shù)據(jù)包總數(shù)相等,若是,則執(zhí)行子步驟S16,若否,則執(zhí)行子步驟S17;
子步驟S16,判定所述幀內(nèi)編碼幀沒有丟包;
子步驟S17,判定所述幀內(nèi)編碼幀丟包。
當(dāng)視頻序列中的所有第一數(shù)據(jù)包都判斷完畢后,此時(shí)判斷緩存隊(duì)列中的第一數(shù)據(jù)包的數(shù)量是否與第一數(shù)據(jù)包包頭中示出的I幀所包含的第一數(shù)據(jù)包總數(shù)相等,如果相等,說明該I幀并沒有丟包;否則,說明該I幀出現(xiàn)了丟包。
在實(shí)際中,可以查看緩存隊(duì)列中是否存在連續(xù)數(shù)據(jù)來輔助判斷是否出現(xiàn)丟包,例如,在上述子步驟S14中得到的緩存隊(duì)列I1,I2,I3中,存在連續(xù)數(shù)據(jù)I1,I2,I3,共有三個(gè)數(shù)據(jù)包,而數(shù)據(jù)包包頭表示的I幀的分包總數(shù)為3個(gè),分別為I1、I2、I3,則可以得出該I幀并沒有出現(xiàn)丟包的結(jié)論。又如,若緩存隊(duì)列I1,I2,I3中,存在連續(xù)數(shù)據(jù)I1,I2,I3,共有三個(gè)數(shù)據(jù)包,而每個(gè)數(shù)據(jù)包包頭表示的I幀的分包總數(shù)為4個(gè),分別為I1、I2、I3、I4,則可以得出該I幀出現(xiàn)丟包(I4出現(xiàn)丟包)的結(jié)論。
步驟604,丟棄所述視頻序列,流程結(jié)束;
如果I幀出現(xiàn)丟包,則丟棄整個(gè)視頻序列,以防止花屏或馬賽克的現(xiàn)象出現(xiàn),例如,IPPP這個(gè)視頻序列中,如果I幀出現(xiàn)丟包,則將整個(gè)IPPP序列丟棄。
步驟605,對(duì)所述幀內(nèi)編碼幀進(jìn)行解碼,并執(zhí)行步驟606;
如果I幀沒有出現(xiàn)丟包,則可以將該I幀解碼播放。在本發(fā)明的一種優(yōu)選實(shí)施例中,步驟605可以包括如下子步驟:
子步驟S21,從所述緩存隊(duì)列中讀取所述幀內(nèi)編碼幀所包含的多個(gè)第一數(shù)據(jù)包;
子步驟S22,將所述多個(gè)第一數(shù)據(jù)包發(fā)送至解碼器,促使所述解碼器進(jìn)行解碼;
子步驟S23,刪除所述緩存隊(duì)列中所述多個(gè)第一數(shù)據(jù)包。
具體來說,如果I幀沒有出現(xiàn)丟包,即I幀完整的接收,則可以將緩存隊(duì)列中該I幀的所有第一數(shù)據(jù)包發(fā)送至解碼器進(jìn)行解碼。為了節(jié)省緩存隊(duì)列的存儲(chǔ)空間,在將I幀的所有第一數(shù)據(jù)包發(fā)送至解碼器后,可以將緩存隊(duì)列中的該I幀的所有數(shù)據(jù)包刪除,以歸還該多個(gè)第一數(shù)據(jù)包所占的存儲(chǔ)空間,此時(shí),緩存隊(duì)列中剩下的其他數(shù)據(jù)包的位置可以前移。
為了提高數(shù)據(jù)校驗(yàn)的準(zhǔn)確性以及保證數(shù)據(jù)的連續(xù)性,在將I幀數(shù)據(jù)發(fā)送至解碼器后,可以記錄該I幀的最后一個(gè)第一數(shù)據(jù)包的編號(hào),以確保下一次進(jìn)行丟包判斷以及發(fā)送至解碼器的數(shù)據(jù)包的編號(hào)是該編號(hào)之后的連續(xù)編號(hào)。例如,將I1,I2,I3發(fā)送至解碼器后,記錄最后一個(gè)編號(hào)為“3”,則下一次進(jìn)行丟包判斷以及發(fā)送至解碼器的編號(hào)從“4”開始。
步驟606,分別判斷所述幀間預(yù)測幀是否丟包,若是,則執(zhí)行步驟607;若否,則執(zhí)行步驟608;
在判定I幀沒有出現(xiàn)丟包,并將I幀的數(shù)據(jù)發(fā)送至解碼器以后,本發(fā)明實(shí)施例進(jìn)一步判斷參考I幀的每個(gè)幀間預(yù)測幀是否出現(xiàn)丟包。
在本發(fā)明的一種優(yōu)選實(shí)施例中,步驟606可以包括如下子步驟:
子步驟S31,依次將所述第二數(shù)據(jù)包存儲(chǔ)在當(dāng)前緩存隊(duì)列中與所述第二數(shù)據(jù)包的編號(hào)對(duì)應(yīng)的位置;
在對(duì)每個(gè)第二數(shù)據(jù)包進(jìn)行判斷時(shí),由于可以肯定其不是I幀首包,因此參照上述子步驟S13的邏輯,直接將其插入緩存隊(duì)列與該編號(hào)對(duì)應(yīng)的位置中。
例如,對(duì)于上述視頻序列I1,I2,I3,P4,P5,P6,在判定I幀沒有丟包的情況下,還可以執(zhí)行如下判斷過程:
(4)由于上述記錄的是編號(hào)“3”,則從編號(hào)“4”開始判斷,對(duì)P4進(jìn)行判斷,由于將I1-I3發(fā)送至解碼器后,I1-I3在解碼器中的數(shù)據(jù)會(huì)刪除,判定P4不是I幀首包,則將P4前移到緩存隊(duì)列首位,得到的隊(duì)列為:P4;
(5)對(duì)P5進(jìn)行判斷,判定P5不是I幀首包,則將P5插入緩存隊(duì)列P4的后一位置中,得到的隊(duì)列為:P4,P5;
(6)對(duì)P6進(jìn)行判斷,判定P6不是I幀首包,則將P6插入緩存隊(duì)列 P5的后一位置中,得到的隊(duì)列為:P4,P5,P6。
子步驟S32,在判定所述幀內(nèi)編碼幀沒有丟包時(shí),針對(duì)每一個(gè)幀間預(yù)測幀,分別判斷在所述緩存隊(duì)列中其對(duì)應(yīng)的多個(gè)第二數(shù)據(jù)包的數(shù)量是否與所述幀間預(yù)測幀所包含的第二數(shù)據(jù)包總數(shù)相等,若是,則執(zhí)行子步驟S33,若否,則執(zhí)行子步驟S34。
子步驟S33,判定所述幀間預(yù)測幀沒有丟包;
子步驟S34,判定所述幀間預(yù)測幀丟包。
當(dāng)視頻序列中的第一個(gè)幀間預(yù)測幀的所有第二數(shù)據(jù)包都判斷完畢后,此時(shí)判斷緩存隊(duì)列中的第二數(shù)據(jù)包的數(shù)量是否與第二數(shù)據(jù)包包頭中示出的幀間預(yù)測幀所包含的第二數(shù)據(jù)包總數(shù)相等,如果相等,說明該幀間預(yù)測幀并沒有丟包;否則,說明該幀間預(yù)測幀出現(xiàn)了丟包。在實(shí)際中,可以查看緩存隊(duì)列中是否存在連續(xù)數(shù)據(jù)來輔助判斷是否出現(xiàn)丟包,例如,存在連續(xù)數(shù)據(jù)P4、P5、P6共有三個(gè)第二數(shù)據(jù)包,而第二數(shù)據(jù)包包頭表示的幀間預(yù)測幀的分包總數(shù)為3個(gè),分別為P4、P5、P6,此時(shí)則可以得出該幀間預(yù)測幀并沒有出現(xiàn)丟包的結(jié)論。
步驟607,丟棄對(duì)應(yīng)的幀間預(yù)測幀;
如果當(dāng)前幀間預(yù)測幀出現(xiàn)丟包,則丟棄該幀間預(yù)測幀,并進(jìn)行下一幀間預(yù)測幀的判斷,例如,IPPP這個(gè)視頻序列中,如果I幀沒有丟包,第一個(gè)P幀丟包了,則丟棄該第一個(gè)P幀,并開始第二個(gè)P幀的判斷。
步驟608,對(duì)所述幀間預(yù)測幀進(jìn)行解碼。
在本發(fā)明的一種優(yōu)選實(shí)施例中,步驟608可以包括如下子步驟:
子步驟S41,從所述緩存隊(duì)列中讀取所述幀間預(yù)測幀所包含的多個(gè)第二數(shù)據(jù)包;
子步驟S42,將所述多個(gè)第二數(shù)據(jù)包發(fā)送至解碼器,促使所述解碼器進(jìn)行解碼;
子步驟S43,刪除所述緩存隊(duì)列中所述多個(gè)第二數(shù)據(jù)包。
具體來說,如果當(dāng)前幀間預(yù)測幀沒有出現(xiàn)丟包,則可以將該幀間預(yù)測幀的所有第二數(shù)據(jù)包發(fā)送至解碼器進(jìn)行解碼,并開始下一幀間預(yù)測幀的判斷。
為了節(jié)省緩存隊(duì)列的存儲(chǔ)空間,在將當(dāng)前幀間預(yù)測幀的所有第二數(shù)據(jù)包發(fā)送至解碼器后,可以將緩存隊(duì)列中的該幀間預(yù)測幀的所有第二數(shù)據(jù)包刪除,以歸還該多個(gè)第二數(shù)據(jù)包所占的存儲(chǔ)空間,此時(shí),緩存隊(duì)列中剩下的數(shù)據(jù)包的位置可以前移。
為了提高數(shù)據(jù)校驗(yàn)的準(zhǔn)確性和保證數(shù)據(jù)的連續(xù)性,在將當(dāng)前幀間預(yù)測幀的數(shù)據(jù)包發(fā)送至解碼器后,可以記錄最后一個(gè)第二數(shù)據(jù)包的編號(hào),以確保下一次進(jìn)行丟包判斷以及發(fā)送至解碼器的數(shù)據(jù)包的編號(hào)是該編號(hào)之后的連續(xù)編號(hào)。
為了使本領(lǐng)域技術(shù)人員更好的理解本發(fā)明實(shí)施例,以下以一個(gè)具體實(shí)例加以說明:
1)接收節(jié)點(diǎn)服務(wù)器發(fā)送的兩個(gè)視頻序列:IPPPPP IPPP;
2)判斷第一個(gè)視頻序列“IPPPPP”中的I幀是否出現(xiàn)丟包,過程可以表示如下:分別對(duì)組成該I幀的多個(gè)第一數(shù)據(jù)包判斷是否為I幀首包,若是,則清空緩存隊(duì)列,將清空緩存隊(duì)列,并將該I幀首包放置在緩存隊(duì)列的首位;否則,將該第一數(shù)據(jù)包放置在緩存隊(duì)列與該數(shù)據(jù)包編號(hào)對(duì)應(yīng)的位置中;進(jìn)一步判斷緩存隊(duì)列中是否存在連續(xù)編號(hào)的第一數(shù)據(jù)包,若存在,則判斷該連續(xù)編號(hào)的第一數(shù)據(jù)包的數(shù)量是否為I幀的分包總數(shù),編號(hào)是否為I幀的分包的編號(hào),如果兩者都是肯定的,則判定該幀沒有丟包。
3)如果I幀沒有丟包,則將該I幀發(fā)送至解碼器,由解碼器進(jìn)行解碼顯示,繼續(xù)執(zhí)行步驟5);
4)如果I幀出現(xiàn)丟包,則將視頻序列“IPPPPP”丟棄,繼續(xù)執(zhí)行步驟7);
5)判斷視頻序列“IPPPPP”中第一個(gè)P幀是否出現(xiàn)丟包,判斷過程與上述步驟2)中I幀的判斷過程類似,此處不再贅述;
6)若第一個(gè)P幀出現(xiàn)丟包,則丟棄該P(yáng)幀;否則,則將該P(yáng)幀發(fā)送至解碼器進(jìn)行解碼,并進(jìn)一步判斷第二個(gè)P幀是否出現(xiàn)丟包。重復(fù)上述步驟5)和步驟6),直到視頻序列“IPPPPP”中所有的P幀判斷完畢,繼續(xù)執(zhí)行步驟7);
7)判斷第二個(gè)視頻序列“IPPP”中的I幀是否出現(xiàn)丟包,判斷過程與 上述步驟2)中I幀的判斷過程類似,此處不再贅述;
8)如果I幀沒有丟包,則將該I幀發(fā)送至解碼器,由解碼器進(jìn)行解碼顯示,繼續(xù)執(zhí)行步驟10);
9)如果I幀出現(xiàn)丟包,則將視頻序列“IPPP”丟棄,結(jié)束流程;
10)判斷視頻序列“IPPP”中第一個(gè)P幀是否出現(xiàn)丟包,判斷過程與上述步驟2)中I幀的判斷過程類似,此處不再贅述;
11)若第一個(gè)P幀出現(xiàn)丟包,則丟棄該P(yáng)幀;否則,則將該P(yáng)幀發(fā)送至解碼器進(jìn)行解碼,并進(jìn)一步判斷第二個(gè)P幀是否出現(xiàn)丟包。重復(fù)上述步驟10)和步驟11),直到視頻序列“IPPP”中所有的P幀判斷完畢,結(jié)束流程。
在本實(shí)例中,如果“IPPPPP”中出現(xiàn)丟包,則其對(duì)應(yīng)的數(shù)據(jù)包留在緩存隊(duì)列中,當(dāng)下一I幀的I幀首包到來時(shí),清空緩存隊(duì)列,相當(dāng)于丟棄該丟包的數(shù)據(jù)包,這樣該數(shù)據(jù)包就不會(huì)送到解碼器進(jìn)行解碼,因此不會(huì)出現(xiàn)花屏或馬賽克現(xiàn)象。
本發(fā)明實(shí)施例對(duì)當(dāng)前幀間預(yù)測幀判定沒有丟包時(shí),立即將該幀間預(yù)測幀發(fā)送給解碼器解碼,繼而開始下一幀間預(yù)測幀的判斷,以這種邊判斷解碼邊解碼的方式進(jìn)行多個(gè)幀間預(yù)測幀的判斷,可以有效的提高了解碼的實(shí)時(shí)性。
另外,在本發(fā)明實(shí)施例中,對(duì)于每個(gè)數(shù)據(jù)包,只是進(jìn)行一次的I幀首包的判斷,判斷次數(shù)少,算法復(fù)雜度較低,計(jì)算效率高。
在本發(fā)明實(shí)施例中,由于判斷數(shù)據(jù)包為I幀首包后會(huì)對(duì)緩存隊(duì)列進(jìn)行清空,以此隔離了與該I幀不相關(guān)的其他數(shù)據(jù)包,保證了I幀與其幀間預(yù)測幀的完整性,避免了花屏或馬賽克的出現(xiàn)。
需要說明的是,對(duì)于方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明實(shí)施例所必須的。
參照?qǐng)D7,示出了本發(fā)明的一種視頻數(shù)據(jù)解碼的裝置實(shí)施例的結(jié)構(gòu)框圖,該裝置可以應(yīng)用于視聯(lián)網(wǎng)中,可以包括如下模塊:
視頻接收模塊701,用于接收節(jié)點(diǎn)服務(wù)器發(fā)送的視頻序列,所述視頻序列包括幀內(nèi)編碼幀;
第一判斷模塊702,用于判斷所述幀內(nèi)編碼幀是否丟包;
第一丟棄模塊703,用于在判定所述幀內(nèi)編碼幀丟包時(shí),丟棄所述視頻序列;
第一解碼模塊704,用于在判定所述幀內(nèi)編碼幀沒有丟包時(shí),對(duì)所述幀內(nèi)編碼幀進(jìn)行解碼。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述視頻序列還包括參照所述幀內(nèi)編碼幀進(jìn)行編碼的一個(gè)或多個(gè)幀間預(yù)測幀;所述裝置還包括:
第二判斷模塊,用于在判定所述幀內(nèi)編碼幀沒有丟包時(shí),分別判斷所述幀間預(yù)測幀是否丟包;
第二丟棄模塊,用于在判定所述幀間預(yù)測幀丟包時(shí),丟棄對(duì)應(yīng)的幀間預(yù)測幀;
第二解碼模塊,用于在判定所述幀間預(yù)測幀沒有丟包時(shí),對(duì)所述幀間預(yù)測幀進(jìn)行解碼。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述第一丟棄模塊包括:
丟棄子模塊,用于丟棄所述幀內(nèi)編碼幀以及與所述幀內(nèi)編碼幀對(duì)應(yīng)的幀間預(yù)測幀。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述裝置還包括:
排序模塊,用于在所述視頻序列為亂序序列時(shí),將所述視頻序列進(jìn)行排序。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述幀內(nèi)編碼幀包括多個(gè)第一數(shù)據(jù)包,所述每個(gè)第一數(shù)據(jù)包包括如下信息:所述幀內(nèi)編碼幀所包含的第一數(shù)據(jù)包總數(shù)、所述第一數(shù)據(jù)包的編號(hào);
所述第一判斷模塊702包括:
首包判斷子模塊,用于從所述視頻序列中編號(hào)最小的第一數(shù)據(jù)包開始,依次判斷所述第一數(shù)據(jù)包是否為幀內(nèi)編碼幀首包;
隊(duì)列清空子模塊,用于在判定所述第一數(shù)據(jù)包為幀內(nèi)編碼幀首包時(shí),清空當(dāng)前緩存隊(duì)列,并將所述第一數(shù)據(jù)包存儲(chǔ)在所述緩存隊(duì)列的首位;
數(shù)據(jù)插入子模塊,用于在判定所述第一數(shù)據(jù)包不為幀內(nèi)編碼幀首包時(shí),將所述第一數(shù)據(jù)包存儲(chǔ)在當(dāng)前緩存隊(duì)列中與所述第一數(shù)據(jù)包的編號(hào)對(duì)應(yīng)的位置;
第一組幀判斷子模塊,用于在所述緩存隊(duì)列中,判斷所述第一數(shù)據(jù)包的數(shù)量是否與所述幀內(nèi)編碼幀所包含的第一數(shù)據(jù)包總數(shù)相等;
第一判定子模塊,用于在判定所述第一數(shù)據(jù)包的數(shù)量與所述幀內(nèi)編碼幀所包含的第一數(shù)據(jù)包總數(shù)相等時(shí),判定所述幀內(nèi)編碼幀沒有丟包;
第二判定子模塊,用于在判定所述第一數(shù)據(jù)包的數(shù)量與所述幀內(nèi)編碼幀所包含的第一數(shù)據(jù)包總數(shù)不相等時(shí),判定所述幀內(nèi)編碼幀丟包。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述第一解碼模塊704包括:
第一讀取子模塊,用于從所述緩存隊(duì)列中讀取所述幀內(nèi)編碼幀所包含的多個(gè)第一數(shù)據(jù)包;
第一數(shù)據(jù)發(fā)送子模塊,用于將所述多個(gè)第一數(shù)據(jù)包發(fā)送至解碼器,促使所述解碼器進(jìn)行解碼;
第一數(shù)據(jù)刪除子模塊,用于刪除所述緩存隊(duì)列中所述多個(gè)第一數(shù)據(jù)包。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述幀間預(yù)測幀包括多個(gè)第二數(shù)據(jù)包,所述每個(gè)第二數(shù)據(jù)包包括如下信息:所述幀間預(yù)測幀所包含的第二數(shù)據(jù)包總數(shù)、所述第二數(shù)據(jù)包的編號(hào);
所述第二判斷模塊包括:
數(shù)據(jù)存儲(chǔ)子模塊,用于依次將所述第二數(shù)據(jù)包存儲(chǔ)在當(dāng)前緩存隊(duì)列中與所述第二數(shù)據(jù)包的編號(hào)對(duì)應(yīng)的位置;
第二組幀判斷子模塊,用于在判定所述幀內(nèi)編碼幀沒有丟包時(shí),針對(duì)每一個(gè)幀間預(yù)測幀,分別判斷在所述緩存隊(duì)列中其對(duì)應(yīng)的多個(gè)第二數(shù)據(jù)包的數(shù)量是否與所述幀間預(yù)測幀所包含的第二數(shù)據(jù)包總數(shù)相等;
第三判定子模塊,用于在判定所述緩存隊(duì)列中所述幀間預(yù)測幀對(duì)應(yīng)的多個(gè)第二數(shù)據(jù)包的數(shù)量與所述幀間預(yù)測幀所包含的第二數(shù)據(jù)包總數(shù)相等時(shí),判定所述幀間預(yù)測幀沒有丟包;
第四判定子模塊,用于在判定所述緩存隊(duì)列中所述幀間預(yù)測幀對(duì)應(yīng)的多個(gè)第二數(shù)據(jù)包的數(shù)量與所述幀間預(yù)測幀所包含的第二數(shù)據(jù)包總數(shù)不相等時(shí),判定所述幀間預(yù)測幀丟包。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述第二解碼模塊包括:
第二讀取子模塊,用于從所述緩存隊(duì)列中讀取所述幀間預(yù)測幀所包含的多個(gè)第二數(shù)據(jù)包;
第二數(shù)據(jù)發(fā)送子模塊,用于將所述多個(gè)第二數(shù)據(jù)包發(fā)送至解碼器,促使所述解碼器進(jìn)行解碼;
第二數(shù)據(jù)刪除子模塊,用于刪除所述緩存隊(duì)列中所述多個(gè)第二數(shù)據(jù)包。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述裝置還包括:
數(shù)據(jù)前移模塊,用于在所述緩存隊(duì)列中刪除所述多個(gè)第一數(shù)據(jù)包和/或多個(gè)第二數(shù)據(jù)包時(shí),將所述緩存隊(duì)列中剩下的其他數(shù)據(jù)包的位置前移。
對(duì)于裝置實(shí)施例而言,由于其與上述的方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實(shí)施例的實(shí)施例可提供為方法、裝置、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明實(shí)施例是參照根據(jù)本發(fā)明實(shí)施例的方法、終端設(shè)備(系統(tǒng))、和計(jì) 算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本發(fā)明實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明實(shí)施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終 端設(shè)備中還存在另外的相同要素。
以上對(duì)本發(fā)明所提供的一種視頻數(shù)據(jù)解碼的方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。