專利名稱:一種視頻位流解碼方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及音視頻技術(shù),特別涉及一種視頻位流解碼方法和裝置。
背景技術(shù):
越來越多的視頻監(jiān)控以及會議系統(tǒng)廣泛用于安全和通信領(lǐng)域。例如,類似英國倫敦這樣的大型城市,部署了的監(jiān)控攝像頭都超過了 50萬臺,如果所有這些攝像頭都是高清晰度的并采取H.264/AVC編解碼器的常規(guī)設(shè)置,整個系統(tǒng)每小時就會產(chǎn)生至少2000TB的數(shù)據(jù)量,對受到網(wǎng)絡(luò)帶寬壓力極大,存儲成本高昂。為了使得人們利用任何移動設(shè)備通過低網(wǎng)絡(luò)帶寬在任何地方隨意接入在線會議成為可能,可以有效的降低帶寬和存儲成本的監(jiān)控會議視頻編碼效率成為研究的關(guān)鍵。由于安防監(jiān)控視頻以及在線視頻會議數(shù)據(jù)在一定的時間段內(nèi)是具有場景不變特性,近年來,隨著背景建模技術(shù)的發(fā)展和進(jìn)步,背景建模技術(shù)被越來越多的應(yīng)用于安防監(jiān)控以及在線會議視頻編碼中,合理地利用建模生成的背景,可以進(jìn)一步消除視頻中的信息冗余,從而獲得更好的壓縮性能。然而現(xiàn)有技術(shù)存在多種基于背景圖像的編碼技術(shù),使得對應(yīng)的解碼技術(shù)千差萬另IJ,為此,急需一種高效率,低復(fù)雜度的視頻編解碼器適用于安防監(jiān)視和會議視頻。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例提供一種視頻位流解碼方法和裝置,以定義一種適用于安防監(jiān)視和會議視頻的高效率、低復(fù)雜度的視頻編碼標(biāo)準(zhǔn)的解碼方法和解碼裝置。為此,本發(fā)明實施例提供的一種視頻位流解碼方法,用于解碼包含至少一幀背景圖像的視頻位流,所述解碼方法包括:接收被解碼的視頻幀,其中所述視頻幀中包含了至少一個語法標(biāo)志,所述語法標(biāo)志包括用于標(biāo)示當(dāng)前幀是否為背景圖像的第一標(biāo)志、用于標(biāo)示當(dāng)前幀是否存在利用背景圖像進(jìn)行差分編碼的第二標(biāo)志、用于標(biāo)示當(dāng)前宏塊是否采取差分編碼模式的第三標(biāo)志中的一個或多個;解析所述視頻幀并判斷判斷是否包含第一標(biāo)志;當(dāng)不包含第一標(biāo)志時,解析所述第二標(biāo)志;當(dāng)所述第二標(biāo)志標(biāo)示當(dāng)前幀存在利用背景圖像進(jìn)行差分編碼時,將當(dāng)前幀之前出現(xiàn)的背景圖像加入到參考圖像隊列中;依次遍歷當(dāng)前幀內(nèi)所有的宏塊,解析位于每個宏塊頭中的第三標(biāo)志,當(dāng)所述第三標(biāo)志標(biāo)示當(dāng)前宏塊采取差分編碼模式編碼時,以參考圖像隊列中的圖像作為參考,利用差分編碼模式對當(dāng)前宏塊進(jìn)行解碼,直至完成當(dāng)前幀中所有宏塊的解碼。其中,所述視頻幀中的至少一個語法標(biāo)志進(jìn)一步包括用于標(biāo)示當(dāng)前背景圖像是否應(yīng)被輸出的第四標(biāo)志;當(dāng)所述至少一個語法標(biāo)志中包含第一標(biāo)志時,所述方法進(jìn)一步包括:
解析所述第一標(biāo)志;當(dāng)所述第一標(biāo)志標(biāo)示當(dāng)前幀為背景圖像時,解析所述第四標(biāo)志;當(dāng)所述第四標(biāo)志標(biāo)示當(dāng)前背景圖像不被輸出時,解碼所述當(dāng)前背景圖像,不輸出顯示所述解碼后的背景圖像,等待后續(xù)調(diào)用。其中,所述至少一個語法標(biāo)志中進(jìn)一步包括標(biāo)示當(dāng)前幀幀為何種幀間解碼圖像的第五標(biāo)志;所述方法進(jìn)一步包括:解析所述第五標(biāo)志,獲取幀間解碼圖像的類型;根據(jù)所述幀間解碼圖像的類型,解碼當(dāng)前幀。其中,所述幀間解碼圖像為前向幀間解碼圖像、背景參考前向幀間解碼圖像或雙向幀間解碼圖像。其中,所述解碼所述當(dāng)前背景圖像,不輸出顯示所述解碼后的背景圖像,等待后續(xù)調(diào)用包括:將所述背景圖像解碼圖像放入背景幀緩沖區(qū),當(dāng)后續(xù)的一個幀間解碼圖像需要將所述背景圖像放入?yún)⒖紟斜頃r,將所述幀間解碼圖像的參考幀緩沖區(qū)的對應(yīng)背景圖像緩存指向背景幀緩沖區(qū)。其中,解碼后的當(dāng)前幀依次移入到位流解碼緩沖區(qū),而后依次將解碼后的當(dāng)前幀從緩沖區(qū)移出。其中,當(dāng)所述當(dāng)前背景圖像為一幀不會被輸出的背景圖像時,將所述當(dāng)前背景圖像與其下一幀位流同時移入解碼位流緩沖區(qū),并檢測解碼位流緩沖區(qū)是否溢出。其中,所述語法標(biāo)志由I位或多位二進(jìn)制數(shù)表示,或I位或多位多進(jìn)制數(shù)表示。其中,對于第一標(biāo)志,用值為“I”標(biāo)示當(dāng)前幀是背景圖像幀;值為“O”標(biāo)示當(dāng)前幀是中貞內(nèi)解碼圖像;對于第二標(biāo)志,可以用“O”標(biāo)示不存在利用背景圖像進(jìn)行差分編碼,用“I”標(biāo)示存在利用背景圖像進(jìn)行差分編碼;或?qū)τ诘谌龢?biāo)志,用值為“I”標(biāo)示當(dāng)前宏塊使用差分編碼模式編碼;值為“O”標(biāo)示當(dāng)前宏塊不使用差分編碼模式編碼。為此,本發(fā)明實施例提供的一種視頻位流解碼裝置,用于解碼包含至少一幀背景圖像的視頻位流,所述裝置包括: 接收模塊,用于接收被解碼的視頻幀,其中所述視頻幀中包含了至少一個語法標(biāo)志,所述語法標(biāo)志包括用于標(biāo)示當(dāng)前幀是否為背景圖像的第一標(biāo)志、用于標(biāo)示當(dāng)前幀是否存在利用背景圖像進(jìn)行差分編碼的第二標(biāo)志、用于標(biāo)示當(dāng)前宏塊是否采取差分編碼模式的第三標(biāo)志中的一個或多個;背景圖像標(biāo)志判斷模塊,用于解析并判斷是否包含第一標(biāo)志;差分編碼模式啟動標(biāo)志判斷模塊,用于不包含第一標(biāo)志時,解析所述第二標(biāo)志;參考幀隊列更新模塊,用于當(dāng)所述第二標(biāo)志標(biāo)示當(dāng)前幀存在利用背景圖像進(jìn)行差分編碼時,將當(dāng)前幀之前出現(xiàn)的背景圖像加入到參考圖像隊列中;宏塊解碼模塊,用于依次遍歷當(dāng)前幀內(nèi)所有的宏塊,解析位于每個宏塊頭中的第三標(biāo)志,當(dāng)所述第三標(biāo)志標(biāo)示當(dāng)前宏塊采取差分編碼模式編碼時,以參考圖像隊列中的圖像作為參考,利用差分編碼模式對當(dāng)前宏塊進(jìn)行解碼,直至完成當(dāng)前幀中所有宏塊的解碼。
利用本發(fā)明實施例提供的視頻位流解碼方法和裝置,解碼端僅關(guān)注視頻位流中的語法標(biāo)志,而不再關(guān)注編碼端的具體實施手段,對于編碼器實現(xiàn)來說,極為簡單;這種方法依然考慮了背景圖像在冗余編碼的作用,因此解碼效率高。
圖1是本發(fā)明實施例提供的一種視頻解碼方法的流程示意圖。圖2是本發(fā)明實施例提供的一種視頻解碼方法的流程示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)描述。本發(fā)明實施例的提供的一種解碼方法和裝置,用于解碼包含至少一幀背景圖像的視頻位流,其中,背景圖像巾貞(Intra decoded backgr ound picture, G巾貞)既可以反映視頻中的場景信息,也可以用于對后續(xù)圖像進(jìn)行預(yù)測編碼;該視頻位流還可以進(jìn)一步包括如下一種或多種類型圖像幀的:巾貞內(nèi)編碼圖像(intradecoded picture, I巾貞),只使用巾貞內(nèi)預(yù)測解碼的圖像;巾貞間編碼圖像(interdecoded picture),利用其他巾貞作為參考進(jìn)行解碼的圖像,其中巾貞間編碼圖像又分為:前向巾貞間解碼圖像(Forward inter decoded picture, P巾貞),也可以是背景參考前向巾貞間解碼圖像(Background predictive forward inter decodedpicture, S 巾貞),還可以是雙向巾貞間解碼圖像(Bidirectional inter decoded picture, B幀)。本發(fā)明實施例提供的一種視頻解碼方法包括:步驟101:接收被解碼的視頻幀,其中所述視頻幀中包含了至少一個語法標(biāo)志,所述語法標(biāo)志包括背景圖像標(biāo)志、差分編碼模式啟用標(biāo)志、宏塊編碼模式標(biāo)志中的一個或多個;其中,所述背景圖像標(biāo)志標(biāo)示當(dāng)前幀幀是否為背景圖像;所述差分編碼模式啟用標(biāo)志標(biāo)示是否存在利用背景圖像進(jìn)行差分編碼模式;所述宏塊編碼模式標(biāo)志標(biāo)示當(dāng)前宏塊是否米取差分編碼模式編碼;步驟102:解析所述視頻幀中包含的語法標(biāo)志,判斷是否包含背景圖像標(biāo)志;如果不包含背景圖像標(biāo)志,則執(zhí)行步驟103 ;步驟103:解析所述差分編碼模式啟用標(biāo)志;如果差分編碼模式啟動標(biāo)志標(biāo)示該幀利用背景圖像進(jìn)行差分編碼模式,則執(zhí)行步驟104 ;步驟104:將當(dāng)前幀之前出現(xiàn)的G幀加入到參考隊列中;步驟105:依次遍歷當(dāng)前幀內(nèi)所有的宏塊,判斷每個宏塊頭中宏塊編碼模式標(biāo)志的值,如果該宏塊編碼模式標(biāo)志標(biāo)示為差分編碼模式編碼,則以參考隊列中的圖像幀作為參考,利用差分編碼模式對當(dāng)前宏塊進(jìn)行解碼,直至完成當(dāng)前幀中所有宏塊的解碼。在本發(fā)明一實施例中,所述視頻幀中的語法標(biāo)志進(jìn)一步包括背景圖像輸出標(biāo)志,該標(biāo)志位通常只有在背景圖像標(biāo)志標(biāo)示當(dāng)前巾貞為G巾貞時才有意義。該標(biāo)志位標(biāo)示當(dāng)前G中貞是否應(yīng)被輸出。在本發(fā)明一實施例中,如果上述實施例步驟102中判斷所述語法標(biāo)志中包含有背景圖像標(biāo)志,則所述解碼方法進(jìn)一步包括:步驟201:解析所述背景圖像標(biāo)志,如果所述背景圖像標(biāo)志標(biāo)示當(dāng)前幀為G幀,則執(zhí)行步驟202 ;否則執(zhí)行步驟203 ;步驟202:解析背景圖像輸出標(biāo)志,如果該背景圖像輸出標(biāo)志位標(biāo)示當(dāng)前G幀應(yīng)被輸出,則表明當(dāng)前G幀用于反映視頻中的場景信息,其解碼過程可看成是I幀,此時執(zhí)行步驟203 ;如果該值標(biāo)示當(dāng)前G幀不被輸出,則表明當(dāng)前用于對后續(xù)圖像進(jìn)行預(yù)測編碼,此時執(zhí)行步驟204 ;步驟203:解碼I幀,并顯示輸出,當(dāng)前幀解碼結(jié)束;步驟204:解碼當(dāng)前G幀,等待后續(xù)調(diào)用,而不再輸出顯示該幀。在本發(fā)明一實施例中,若所述視頻幀的語法標(biāo)志中不包含背景圖像標(biāo)志,則所述語法標(biāo)志中可能進(jìn)一步包括幀間解碼圖像標(biāo)志,該標(biāo)志位標(biāo)示當(dāng)前幀幀為何種幀間解碼圖像,如為B幀、P幀或S幀。在本發(fā)明一實施例中,幀間解碼圖像標(biāo)志可以是PB圖像起始碼(pb_picture_start_code)。在這種情況下,所述解碼方法進(jìn)一步包括:解析所述幀間解碼圖像標(biāo)志,獲取幀間解碼圖像的類型;根據(jù)所述幀間解碼圖像的類型,解碼當(dāng)前幀。即不同的幀間解碼圖像,其對后續(xù)背景圖像的參考方式處理各有不同。比如P幀或B幀最多可有兩幀參考圖像。非視間預(yù)測的P幀可參考前向的兩幀參考圖像;視間預(yù)測的P幀可有參考前向的一幀參考圖像和一巾貞視間預(yù)測參考圖像。B巾貞可參考一前一后的兩巾貞。S巾貞最多可有一巾貞參考圖像,S中貞的參考圖像通常是同一視點最近解碼的G幀。在本發(fā)明一實施例中,背景圖像標(biāo)志和幀間解碼圖像標(biāo)志通常位于圖像幀頭部分,對于一個幀而言,背景圖像標(biāo)志和幀間解碼圖像標(biāo)志可以不共存,即一個幀頭內(nèi)只具有背景圖像標(biāo)志和幀間解碼圖像標(biāo)志中的一個。如果當(dāng)前幀的圖像頭中既不存在背景圖像標(biāo)志,而不存在幀間解碼圖像標(biāo)志,則標(biāo)示該當(dāng)前幀為I幀。在本發(fā)明一實施例中,可以用I位二進(jìn)制數(shù)來代表背景圖像標(biāo)志,比如用值為“I”標(biāo)示當(dāng)前幀是G幀;值為“O”標(biāo)示當(dāng)前幀是I幀;在本發(fā)明一實施例中,可以利用background_picture_flag表示背景圖像標(biāo)志,當(dāng)然本領(lǐng)域技術(shù)人員可以利用任何字符來表示,并不在本發(fā)明限定的范圍內(nèi)。在本發(fā)明一實施例中,可以用I位二進(jìn)制數(shù)來代表差分編碼模式啟用標(biāo)志,比如對于P幀內(nèi)的一個差分編碼模式啟用標(biāo)志,可以用O標(biāo)示參考前向的兩幀P幀,用I來標(biāo)示參考前向一 P巾貞和一 G巾貞;在本發(fā)明一實施例中,可以用difference_mode_enable來表示該差分編碼模式啟用標(biāo)志,當(dāng)然本領(lǐng)域技術(shù)人員可以利用任何字符來表示,并不在本發(fā)明限定的范圍內(nèi)。在本發(fā)明一實施例中,可以用I位二進(jìn)制數(shù)來代表宏塊編碼模式標(biāo)志。比如值為“I”標(biāo)示當(dāng)前宏塊使用差分編碼模式編碼;值為“O”標(biāo)示當(dāng)前宏塊不使用差分編碼模式編碼;在本發(fā)明一實施例中,可以用mb_coding_type來表示該宏塊編碼模式標(biāo)志。在本發(fā)明一實施例中,可以用I位二進(jìn)制數(shù)來代表背景圖像輸出標(biāo)志。比如可以用值為“I”標(biāo)示當(dāng)前幀是應(yīng)被輸出的G幀;值為“O”標(biāo)示當(dāng)前幀是不應(yīng)被輸出的G幀。在本發(fā)明一實施例中,可以用background_picture_output_flag表示背景圖像輸出標(biāo)志。在本發(fā)明一實施例中,也可以用非二進(jìn)制來表示上述語法標(biāo)志,或者可以采取多比特位的二進(jìn)制數(shù)來表示語法標(biāo)志。本領(lǐng)域技術(shù)人員還可以理解,可以比特數(shù)值與語義之間的關(guān)系可以更換,如對于背景圖像標(biāo)志來說,可以定義值為“O”標(biāo)示當(dāng)前幀是G幀;值為“I”標(biāo)示當(dāng)前巾貞是I中貞。以下舉例說明本發(fā)明實施例的視頻解碼方法,假設(shè)一個視頻位流包含若干視頻幀。首先判斷第一幀是否包含背景圖像標(biāo)志,假設(shè)第一幀包含背景圖像標(biāo)志并且背景圖像輸出標(biāo)志標(biāo)示不輸出,則可以認(rèn)定第一幀為G幀,利用解碼I幀的方法解碼該G幀,但不輸出該幀。繼續(xù)判斷第二個幀是否包含背景圖像標(biāo)志,如果不包含背景圖像標(biāo)志,則該幀定然包括幀間解碼圖像標(biāo)志,假設(shè)該幀幀間解碼圖像標(biāo)志標(biāo)示該幀為P巾貞,則繼續(xù)判斷該P(yáng)幀的差分編碼模式啟用標(biāo)志,如果該差分編碼模式啟用標(biāo)志顯示利用前一 G幀進(jìn)行了差分編碼,則將前一 G幀加入到參考幀隊列中,繼續(xù)依次遍歷該幀的每個宏塊,判斷位于宏塊頭中的宏塊編碼模式標(biāo)志是否指示利用參考幀隊列中的圖像幀(可能不僅包含前一 G幀)作為差分編碼的基礎(chǔ),如果是,則利用參考隊列中幀作為差分編碼的基礎(chǔ),解碼當(dāng)前宏塊,一旦該幀中所有宏塊內(nèi)容被解碼排序后,即輸出該幀視頻。然后再按照同樣的方法判斷解碼下一幀,直至解碼輸出該視頻位流的每一幀。在本發(fā)明一實施例中,當(dāng)對視頻位流進(jìn)行解碼時,利用位流解碼緩沖區(qū)依次將位流從緩沖區(qū)移入移出;當(dāng)解碼一個不需要輸出的G幀時,將G幀解碼圖像放入背景幀緩沖區(qū),當(dāng)后續(xù)的一個幀間解碼圖像需要將該G幀放入?yún)⒖紟斜頃r,將該幀間解碼圖像的參考幀緩沖區(qū)的對應(yīng)G幀的緩存指向背景幀緩沖區(qū)即可。在本發(fā)明一實施例中,可以按照“兩幀時間間隔=幀率的倒數(shù)的倍數(shù)”的速率依次將位流從位流解碼緩沖區(qū)移入移出以解碼輸出視頻幀。通過上述的例子可以看出,視頻位流中可能會出現(xiàn)在兩個正常輸出幀,如I幀、P幀、B幀或S幀中間可能會出現(xiàn)一個不輸出的G中貞,在這種情況下,如果依然按照“兩幀時間間隔=幀率的倒數(shù)的倍數(shù)”將位流從緩沖區(qū)移入移出,就會使得位流中存在若干幅原來不存在的G幀圖像,造成以后視頻的延時。為此,在本發(fā)明一實施例中,當(dāng)發(fā)現(xiàn)當(dāng)前要解碼的圖像是一幀不會被輸出的G幀,同時將G幀與其下一幀位流同時移入解碼位流緩沖區(qū),并檢測解碼位流緩沖區(qū)是否溢出。本發(fā)明實施例還提供了一種視頻位流解碼裝置,所述視頻位流解碼裝置包括如下模塊:接收模塊,用于接收被解碼的視頻幀,其中所述視頻幀中包含了至少一個語法標(biāo)志,所述語法標(biāo)志包括背景圖像標(biāo)志、差分編碼模式啟用標(biāo)志、宏塊編碼模式標(biāo)志中的一個或多個;其中,所述背景圖像標(biāo)志標(biāo)示當(dāng)前幀是G幀還是I幀;所述差分編碼模式啟用標(biāo)志標(biāo)示是否存在利用背景圖像進(jìn)行差分編碼模式;所述宏塊編碼模式標(biāo)志標(biāo)示當(dāng)前宏塊是否米取差分編碼模式編碼;背景圖像標(biāo)志判斷模塊,用于解析所述視頻幀并是否包含背景圖像標(biāo)志;如果不包含背景圖像標(biāo)志,則通知差分編碼模式啟動標(biāo)志判斷模塊;差分編碼模式啟動標(biāo)志判斷模塊,用于當(dāng)所述語法標(biāo)志中不包含背景圖像標(biāo)志時,解析所述差分編碼模式啟用標(biāo)志;如果差分編碼模式啟動標(biāo)志標(biāo)示該幀利用背景圖像進(jìn)行差分編碼模式,則通知參考幀隊列更新模塊;參考幀隊列更新模塊,用于當(dāng)差分編碼模式啟動標(biāo)志標(biāo)示該幀利用背景圖像進(jìn)行差分編碼模式時,將當(dāng)前幀之前出現(xiàn)的G幀加入到參考幀隊列中;
宏塊解碼模塊,用于依次遍歷當(dāng)前幀內(nèi)所有的宏塊,判斷每個宏塊頭中宏塊編碼模式標(biāo)志的值,如果該宏塊編碼模式標(biāo)志標(biāo)示為差分編碼模式編碼,則以參考隊列中的圖像幀作為參考,利用差分編碼模式對當(dāng)前宏塊進(jìn)行解碼,直至完成當(dāng)前幀中所有宏塊的解碼。本領(lǐng)域技術(shù)人員可以理解,在實際應(yīng)用中,可能利用計算機(jī)程序來實現(xiàn)所述視頻位流解碼方法和裝置,也可能利用硬件或硬件電路來實現(xiàn)所述視頻位流解碼方法和裝置,也有可能由計算機(jī)軟件和硬件結(jié)合來實現(xiàn),具體的實現(xiàn)方法并不能用于限定本發(fā)明的范圍。在本發(fā)明一實施例,利用計算機(jī)程序來實現(xiàn)上述實施例提供的視頻位流解碼方法,該計算機(jī)程序安裝在一個包括至少一個處理單元和存儲器的硬件環(huán)境中。其中,在一個多處理器系統(tǒng)中,多個處理單元共同執(zhí)行計算機(jī)可執(zhí)行程序來提供處理能力。存儲器可以是易失性存儲器(例如寄存器、高速緩存、RAM)、非易失性存儲器(例如ROM、EEPR0M、閃速存儲器等),或兩者的組合。該存儲器存儲有用于計算機(jī)程序。該處理器通過執(zhí)行存儲器中存儲的計算機(jī)程序,即可以實現(xiàn)本發(fā)明實施例所述的視頻位流解碼方法。其中,該硬件環(huán)境還可以進(jìn)一步包括輸入設(shè)備、輸出設(shè)備、與外界進(jìn)行連接的通信設(shè)備。本發(fā)明一實施例還進(jìn)一步提供了一個非易失性存儲介質(zhì),該介質(zhì)用于存儲計算機(jī)可執(zhí)行程序模塊,該計算機(jī)可執(zhí)行指令一旦通過一個真實或虛擬處理器進(jìn)行處理,可以實現(xiàn)本發(fā)明實施例所述的視頻位流解碼方法。一般而言,程序模塊包括例程,程序,庫,對象,類,組件,數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。在各種實施例中,各程序模塊之間的功能可被組合或分割。在本發(fā)明一實施例中,可以在本地或分布式計算環(huán)境中執(zhí)行程序模塊的計算機(jī)可執(zhí)行指令。在本發(fā)明上述實施例中,出現(xiàn)了圖像、幀、圖像幀等多種技術(shù)詞匯,本領(lǐng)域技術(shù)人員可以理解,這三者在本發(fā)明的描述來說并不給予嚴(yán)格區(qū)分。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種視頻位流解碼方法,用于解碼包含至少一幀背景圖像的視頻位流,其特征在于,所述解碼方法包括: 接收被解碼的視頻幀,其中所述視頻幀中至少包含了下述三個標(biāo)志中的一個:用于標(biāo)示當(dāng)前幀是否為背景圖像的第一標(biāo)志、用于標(biāo)示當(dāng)前幀是否存在利用背景圖像進(jìn)行差分編碼的第二標(biāo)志、用于標(biāo)示當(dāng)前宏塊是否采取差分編碼模式的第三標(biāo)志中的一個或多個; 解析所述視頻幀是否包含第一標(biāo)志; 當(dāng)不包含第一標(biāo)志時,解析所述第二標(biāo)志; 當(dāng)所述第二標(biāo)志標(biāo)示當(dāng)前幀存在利用背景圖像進(jìn)行差分編碼時,將當(dāng)前幀之前出現(xiàn)的背景圖像加入到參考圖像隊列中; 依次遍歷當(dāng)前幀內(nèi)所有的宏塊,解析位于每個宏塊頭中的第三標(biāo)志,當(dāng)所述第三標(biāo)志標(biāo)示當(dāng)前宏塊采取差分編碼模式編碼時,以參考圖像隊列中的圖像作為參考,利用差分編碼模式對當(dāng)前宏塊進(jìn)行解碼,直至完成當(dāng)前幀中所有宏塊的解碼。
2.如權(quán)利要求1所述的方法,其特征在于,所述視頻幀中的至少一個語法標(biāo)志進(jìn)一步包括用于標(biāo)示當(dāng)前背景圖像是否應(yīng)被輸出的第四標(biāo)志; 當(dāng)所述至少一個語法標(biāo)志中包含第一標(biāo)志時,所述方法進(jìn)一步包括: 解析所述第一標(biāo)志; 當(dāng)所述第一標(biāo)志標(biāo)示當(dāng)前幀為背景圖像時,解析所述第四標(biāo)志; 當(dāng)所述第四標(biāo)志標(biāo)示當(dāng)前背景圖像不被輸出時,解碼所述當(dāng)前背景圖像,不輸出顯示所述解碼后的背景圖像,等待后續(xù)調(diào)用。
3.如權(quán)利要求1所述的方法,其特征在于,所述至少一個語法標(biāo)志中進(jìn)一步包括標(biāo)示當(dāng)前幀幀為何種幀間解碼圖像的第五標(biāo)志;所述方法進(jìn)一步包括: 解析所述第五標(biāo)志,獲取幀間解碼圖像的類型; 根據(jù)所述幀間解碼圖像的類型,解碼當(dāng)前幀。
4.如權(quán)利要求3所述的方法,其特征在于,所述幀間解碼圖像為前向幀間解碼圖像、背景參考解碼圖像或雙向巾貞間解碼圖像。
5.如權(quán)利要求2所述的方法,其特征在于,所述解碼所述當(dāng)前背景圖像,不輸出顯示所述解碼后的背景圖像,等待后續(xù)調(diào)用包括: 將所述背景圖像解碼圖像放入背景幀緩沖區(qū),當(dāng)后續(xù)的一個幀間解碼圖像需要將所述背景圖像放入?yún)⒖紟斜頃r,將所述幀間解碼圖像的參考幀緩沖區(qū)的對應(yīng)背景圖像緩存指向背景幀緩沖區(qū)。
6.如權(quán)利要求2所述的方法,其特征在于,解碼后的當(dāng)前幀依次移入到位流解碼緩沖區(qū),而后依次將解碼后的當(dāng)前幀從緩沖區(qū)移出。
7.如權(quán)利要求1至6任一所述的方法,其特征在于,當(dāng)所述當(dāng)前背景圖像為一幀不會被輸出的背景圖像時,將所述當(dāng)前背景圖像與其下一幀位流同時移入解碼位流緩沖區(qū),并檢測解碼位流緩沖區(qū)是否溢出。
8.如權(quán)利要求1所述的方法,其特征在于,所述語法標(biāo)志由I位或多位二進(jìn)制數(shù)表示,或I位或多位多進(jìn)制數(shù)表示。
9.如權(quán)利要求1所述的方法,其特征在于,對于第一標(biāo)志,用值為“I”標(biāo)示當(dāng)前幀是背景圖像巾貞;值為“O”標(biāo)不當(dāng)如巾貞是巾貞內(nèi)解碼圖像;對于第二標(biāo)志,可以用“O”標(biāo)示不存在利用背景圖像進(jìn)行差分編碼,用“I”標(biāo)示存在利用背景圖像進(jìn)行差分編碼;或 對于第三標(biāo)志,用值為“I”標(biāo)示當(dāng)前宏塊使用差分編碼模式編碼;值為“O”標(biāo)示當(dāng)前宏塊不使用差分編碼模式編碼。
10.一種視頻位流解碼裝置,用于解碼包含至少一幀背景圖像的視頻位流,其特征在于,所述裝置包括: 接收模塊,用于接收被解碼的視頻幀,其中所述視頻幀中包含了至少一個語法標(biāo)志,所述語法標(biāo)志包括用標(biāo)示當(dāng)前幀是否為背景圖像的第一標(biāo)志、用于標(biāo)示當(dāng)前幀是否存在利用背景圖像進(jìn)行差分編碼的第二標(biāo)志、用于標(biāo)示當(dāng)前宏塊是否采取差分編碼模式的第三標(biāo)志中的一個或多個; 背景圖像標(biāo)志判斷模塊,用于解析判斷是否包含第一標(biāo)志; 差分編碼模式啟動標(biāo)志判斷模塊,用于不包含第一標(biāo)志時,解析所述第二標(biāo)志; 參考幀隊列更新模塊,用于當(dāng)所述第二標(biāo)志標(biāo)示當(dāng)前幀存在利用背景圖像進(jìn)行差分編碼時,將當(dāng)前幀之前出現(xiàn)的背景圖像加入到參考圖像隊列中; 宏塊解碼模塊,用于依次遍歷當(dāng)前幀內(nèi)所有的宏塊,解析位于每個宏塊頭中的第三標(biāo)志,當(dāng)所述第三標(biāo)志標(biāo)示當(dāng)前宏塊采取差分編碼模式編碼時,以參考圖像隊列中的圖像作為參考,利用差分編碼模 式對當(dāng)前宏塊進(jìn)行解碼,直至完成當(dāng)前幀中所有宏塊的解碼。
全文摘要
本發(fā)明實施例提供了一種視頻位流解碼方法和裝置,用于解碼包含至少一幀背景圖像的視頻位流。其中,所述視頻位流解碼方法包括接收被解碼的視頻幀,其中所述視頻幀中包含了至少一個語法標(biāo)志,解析所述視頻幀中是否包含第一標(biāo)志(標(biāo)志當(dāng)前幀是否為背景幀);若不包含第一標(biāo)志,解析所述第二標(biāo)志;當(dāng)所述第二標(biāo)志標(biāo)示當(dāng)前幀存在利用背景圖像進(jìn)行差分編碼時,將當(dāng)前幀之前出現(xiàn)的背景圖像加入到參考圖像隊列中;依次遍歷當(dāng)前幀內(nèi)所有宏塊,解析位于每個宏塊頭中的第三標(biāo)志,當(dāng)所述第三標(biāo)志標(biāo)示當(dāng)前宏塊采取差分編碼模式編碼時,以參考圖像隊列中的圖像作為參考,利用差分編碼模式對當(dāng)前宏塊進(jìn)行解碼,直至完成當(dāng)前幀中所有宏塊的解碼。
文檔編號H04N7/15GK103152570SQ201310066518
公開日2013年6月12日 申請日期2013年3月1日 優(yōu)先權(quán)日2013年3月1日
發(fā)明者黃鐵軍, 張賢國, 馬思偉, 田永鴻, 高文 申請人:北京大學(xué)