專利名稱:一種視頻編碼方法、解碼方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻傳輸技術(shù)領(lǐng)域,具體是涉及一種視頻編碼方法、視頻解碼方法以及相應(yīng)的裝置。
背景技術(shù):
目前,網(wǎng)絡(luò)已經(jīng)成為人們?nèi)粘9ぷ骱蜕钪斜夭豢缮俚囊环N工具。隨著網(wǎng)絡(luò)相關(guān)技術(shù)的日趨成熟,視頻聊天、在線觀看視頻之類的視頻業(yè)務(wù)已經(jīng)得到非常廣泛的使用。
當(dāng)前的主流視頻壓縮標(biāo)準(zhǔn)有MPEG4、H264等。在這些壓縮技術(shù)中,編碼圖像一般分為三種類型幀內(nèi)預(yù)測(cè)幀(I)、幀間預(yù)測(cè)幀(P)和雙向預(yù)測(cè)幀(B)。I幀是利用了空間相關(guān)性,采用與JPEG類似的方式對(duì)靜止的圖像進(jìn)行編碼所產(chǎn)生的;P幀則是利用了時(shí)間相關(guān)性,采用前面的幀作為參考幀進(jìn)行預(yù)測(cè)所產(chǎn)生的;B幀則是同時(shí)利用前面的幀和后面的幀作為參考幀進(jìn)行預(yù)測(cè)所產(chǎn)生的。預(yù)測(cè)之后將產(chǎn)生殘差數(shù)據(jù),對(duì)殘差數(shù)據(jù)進(jìn)行DCT變換和量化,再輸出編碼碼流,從而完成視頻壓縮過(guò)程。
對(duì)于視頻業(yè)務(wù)而言,在傳輸過(guò)程中出現(xiàn)丟包是非常常見(jiàn)的。在網(wǎng)絡(luò)環(huán)境惡劣或帶寬極低的環(huán)境中,丟包會(huì)對(duì)視頻質(zhì)量造成非常大的影響。按照傳統(tǒng)的視頻編碼方式,I幀的數(shù)據(jù)量平均為P幀的4倍,而在低帶寬環(huán)境中,數(shù)據(jù)包越大,就越容易丟失,因此,I幀丟失的可能性更大。而I幀的丟失會(huì)影響后續(xù)一系列的P幀和B幀,導(dǎo)致這些數(shù)據(jù)全部報(bào)廢,直至下一個(gè)I幀到來(lái),這必然會(huì)對(duì)視頻質(zhì)量造成非常大的影響。
為盡量避免因丟包給視頻質(zhì)量造成的影響,目前一般是采用交織編碼的處理方案,即進(jìn)行信道編碼,信道編碼的原理是通過(guò)增大碼流的冗余或增加延時(shí)來(lái)獲得抗誤碼能力。比如,交織編碼方案需要較大的緩沖區(qū),容易引入延時(shí);對(duì)于無(wú)線信道等較容易引入誤碼的信道而言,諸如前向糾錯(cuò)編碼(FEC)之類的信道編碼技術(shù)也是一種常用的方法,但這類方法為了對(duì)抗誤碼,需要引入一些冗余,而在低帶寬環(huán)境中引入冗余無(wú)疑會(huì)對(duì)數(shù)據(jù)傳輸造成比較大的影響。
綜上所述,目前用于低帶寬環(huán)境的壓縮編碼方案都不能在保證數(shù)據(jù)傳輸速率的同時(shí),很好地解決丟包影響視頻質(zhì)量的問(wèn)題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明所要解決的主要問(wèn)題在于提供一種視頻編碼方法,以便在出現(xiàn)丟包時(shí)能夠通過(guò)解碼處理來(lái)避免丟包給視頻質(zhì)量所造成的影響。
本發(fā)明同時(shí)還提供了一種視頻解碼方法,以及視頻編碼裝置和視頻解碼裝置。
為解決上述問(wèn)題,本發(fā)明提供了以下技術(shù)方案本發(fā)明的一種視頻編碼方法,設(shè)置視頻編碼結(jié)構(gòu)包括多個(gè)組幀,每個(gè)組幀中包括一個(gè)I幀,該I幀之后至少包括一個(gè)P幀,該方法進(jìn)一步包括讀取一幀數(shù)據(jù),根據(jù)預(yù)設(shè)的視頻編碼結(jié)構(gòu)確定該幀的類型;在確定該幀為Ii,且i≠0時(shí),通過(guò)分析該Ii幀及其前一組幀,確定Ii幀中包含在前一組幀的背景區(qū)域中的區(qū)域,將該區(qū)域作為Ii幀的背景區(qū)域,直接用相應(yīng)的標(biāo)記表示,并對(duì)其余的前景區(qū)域進(jìn)行編碼;在確定該幀為Pi,且i≠0時(shí),通過(guò)分析該P(yáng)i幀及相應(yīng)的Ii幀,確定Pi幀中包含在該Ii幀的背景區(qū)域中的區(qū)域,將該區(qū)域作為Pi幀的背景區(qū)域,直接用相應(yīng)的標(biāo)記表示,并對(duì)其余的前景區(qū)域進(jìn)行編碼;將得到的幀整合為編碼碼流。
進(jìn)一步,所述通過(guò)分析該Ii幀及其前一組幀來(lái)確定Ii幀中包含在前一組幀的背景區(qū)域中的區(qū)域,包括對(duì)于I1幀,通過(guò)對(duì)0組幀進(jìn)行運(yùn)動(dòng)檢測(cè)測(cè)出該組幀的共同區(qū)域,將其作為0組幀的背景區(qū)域,之后通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出I1幀中包含在0組幀的背景區(qū)域中的區(qū)域;對(duì)于其余i>1的Ii幀,則通過(guò)對(duì)前一組幀進(jìn)行運(yùn)動(dòng)檢測(cè)測(cè)出該組幀中包含在該前一組幀之前的組幀的背景區(qū)域中的區(qū)域,將其作為前一組幀的背景區(qū)域,之后通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出Ii幀中包含在前一組幀的背景區(qū)域中的區(qū)域。
進(jìn)一步,所述通過(guò)分析該P(yáng)i幀及相應(yīng)的Ii幀來(lái)確定Pi幀中包含在該Ii幀的背景區(qū)域中的區(qū)域,包括通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出Pi幀中包含在Ii幀的背景區(qū)域中的區(qū)域。
所述視頻編碼結(jié)構(gòu)進(jìn)一步包括多個(gè)大組,每個(gè)大組包括多個(gè)組幀,且每個(gè)大組中的組幀分別排序。
該方法進(jìn)一步包括在確定該幀為第一個(gè)組幀時(shí),直接對(duì)該組幀進(jìn)行編碼。
本發(fā)明的一種視頻編碼裝置,所述裝置包括接收及轉(zhuǎn)發(fā)模塊、Ii幀編碼模塊、Pi幀編碼模塊以及整合模塊,其中,接收及轉(zhuǎn)發(fā)模塊,用于讀取一幀數(shù)據(jù),并根據(jù)該幀的類型將該幀發(fā)送到相應(yīng)的編碼模塊;Ii幀編碼模塊,用于分析該Ii幀及其前一組幀,確定Ii幀中包含在前一組幀的背景區(qū)域中的區(qū)域,將該區(qū)域作為Ii幀的背景區(qū)域,直接用相應(yīng)的標(biāo)記表示,以及對(duì)其余的前景區(qū)域進(jìn)行編碼,將處理后的Ii幀發(fā)送給整合模塊;Pi幀編碼模塊,用于分析該P(yáng)i幀及相應(yīng)的Ii幀,確定Pi幀中包含在該Ii幀的背景區(qū)域中的區(qū)域,將該區(qū)域作為Pi幀的背景區(qū)域,直接用相應(yīng)的標(biāo)記表示,以及對(duì)其余的前景區(qū)域進(jìn)行編碼,將處理后的Pi幀發(fā)送給整合模塊;整合模塊,用于將收到的各個(gè)幀整合為編碼碼流;進(jìn)一步,所述Ii幀編碼模塊用于通過(guò)對(duì)0組幀進(jìn)行運(yùn)動(dòng)檢測(cè)測(cè)出該組幀的共同區(qū)域,將其作為0組幀的背景區(qū)域,以及通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出I1幀中包含在0組幀的背景區(qū)域中的區(qū)域;還用于通過(guò)對(duì)i>1的前一組幀進(jìn)行運(yùn)動(dòng)檢測(cè)測(cè)出該組幀中包含在該前一組幀之前的組幀的背景區(qū)域中的區(qū)域,將其作為前一組幀的背景區(qū)域,以及通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出Ii幀中包含在前一組幀的背景區(qū)域中的區(qū)域。
進(jìn)一步,所述Pi幀編碼模塊用于通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出Pi幀中包含在Ii幀的背景區(qū)域中的區(qū)域,以及將所述區(qū)域作為Pi幀的背景區(qū)域。
視頻編碼結(jié)構(gòu)進(jìn)一步包括多個(gè)大組,每個(gè)大組包括多個(gè)組幀,且每個(gè)大組中的組幀分別排序。
所述裝置進(jìn)一步包括0組幀編碼模塊,用于直接對(duì)0組幀進(jìn)行編碼,并將編碼后的0組幀發(fā)送給整合模塊。
本發(fā)明的一種視頻解碼方法,收到的視頻碼流中包括多個(gè)組幀,每個(gè)組幀中包括一個(gè)I幀,該I幀之后至少包括一個(gè)P幀,該方法進(jìn)一步包括A.對(duì)收到的0組幀進(jìn)行解碼;B.在收到當(dāng)前組幀中的Ii幀,且i>0時(shí),讀取該Ii幀背景區(qū)域的標(biāo)記,根據(jù)前一組幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定該Ii幀的背景區(qū)域所對(duì)應(yīng)的碼流信息,并對(duì)Ii幀中的前景區(qū)域進(jìn)行解碼;C.在收到當(dāng)前組幀中的Pi幀,且i>0時(shí),讀取該P(yáng)i幀背景區(qū)域的標(biāo)記,根據(jù)當(dāng)前組幀中的Ii幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定該P(yáng)i幀背景區(qū)域所對(duì)應(yīng)的碼流信息,并對(duì)Pi幀中的前景區(qū)域進(jìn)行解碼;D.輸出解碼得到的視頻碼流。
該方法進(jìn)一步包括判斷i>0的組幀中的Ii幀和Pi幀是否收到,如果均收到,則執(zhí)行步驟B或C的相應(yīng)處理;如果是Ii幀未收到,則執(zhí)行步驟A01;如果是Pi幀未收到,則執(zhí)行步驟A02;A01.收到所丟失的Ii幀后續(xù)的Pi幀后,利用該Ii幀之前的組幀及所述Pi幀確定該Ii幀的可恢復(fù)背景區(qū)域并對(duì)其進(jìn)行恢復(fù)處理,并根據(jù)該Ii幀前后的P幀恢復(fù)出該Ii幀的其余區(qū)域,之后再根據(jù)所述步驟C對(duì)所述Pi幀進(jìn)行解碼;A02.利用所丟失的Pi幀之后的Ii+1幀確定該P(yáng)i幀的可恢復(fù)背景區(qū)域并對(duì)其進(jìn)行恢復(fù)處理,并根據(jù)該P(yáng)i幀之前和/或之后的幀恢復(fù)出該P(yáng)i幀的其余區(qū)域,之后再根據(jù)所述步驟B對(duì)所述Pi幀之后的Ii+1幀進(jìn)行解碼。
進(jìn)一步,步驟A01中,所述利用Ii幀之前的組幀及Pi幀確定該Ii幀的可恢復(fù)背景區(qū)域包括確定Ii幀之前的組幀的背景區(qū)域,讀取Pi幀的背景標(biāo)記,將其所對(duì)應(yīng)區(qū)域作為i組幀的背景區(qū)域,并將所述兩個(gè)背景區(qū)域的并集作為所述Ii幀的可恢復(fù)背景區(qū)域;所述根據(jù)Ii幀前后的P幀恢復(fù)出該Ii幀的其余區(qū)域包括將所述其余區(qū)域劃分為至少一個(gè)的待恢復(fù)區(qū)域,如果所述Ii幀前后的P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有運(yùn)動(dòng)矢量信息,則根據(jù)所述運(yùn)動(dòng)矢量信息確定所述Ii幀在所述待恢復(fù)區(qū)域的運(yùn)動(dòng)矢量信息,并以所述Ii幀之前的Pi-1幀作為參考幀恢復(fù)出所述待恢復(fù)區(qū)域;如果最靠近所述Ii幀前后的兩個(gè)P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有幀內(nèi)編碼信息,則根據(jù)所述幀內(nèi)編碼信息恢復(fù)Ii幀中的所述待恢復(fù)區(qū)域。
進(jìn)一步,所述視頻碼流中每個(gè)組幀中的I幀之后包括一個(gè)以上的P幀,步驟A01中,所述Ii幀前后的P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有運(yùn)動(dòng)矢量信息如果是所述Ii幀前后的所有P幀均有運(yùn)動(dòng)矢量信息,則執(zhí)行以所述運(yùn)動(dòng)矢量信息確定Ii幀在所述待恢復(fù)區(qū)域的運(yùn)動(dòng)矢量信息的步驟;如果是所述最靠近Ii幀前后的P幀均有運(yùn)動(dòng)矢量信息,則根據(jù)所述P幀的所述運(yùn)動(dòng)矢量信息執(zhí)行以所述運(yùn)動(dòng)矢量信息確定Ii幀在所述待恢復(fù)區(qū)域的運(yùn)動(dòng)矢量信息的步驟。
所述最靠近所述Ii幀前后的兩個(gè)P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有幀內(nèi)編碼信息,如果是兩個(gè)P幀均有幀內(nèi)編碼信息,則根據(jù)所述幀內(nèi)編碼信息,利用插值算法恢復(fù)出所述待恢復(fù)區(qū)域;如果是兩個(gè)P幀中只有一個(gè)有幀內(nèi)編碼信息,則通過(guò)復(fù)制所述幀內(nèi)編碼信息恢復(fù)所述待恢復(fù)區(qū)域。
進(jìn)一步,步驟A02中,所述利用Pi幀之后的I幀確定該P(yáng)i幀的可恢復(fù)背景區(qū)域包括將所述I幀的背景區(qū)域作為該P(yáng)i幀的可恢復(fù)背景區(qū)域;所述根據(jù)該P(yáng)i幀之前和/或之后的幀恢復(fù)出該P(yáng)i幀的其余區(qū)域包括將所述其余區(qū)域劃分為至少一個(gè)以上的待恢復(fù)區(qū)域,如果i組幀中包括1個(gè)P幀,如果Ii幀在Pi幀的待恢復(fù)區(qū)域有背景標(biāo)記,則認(rèn)為Pi幀的該待恢復(fù)區(qū)域也是背景區(qū)域,根據(jù)所述背景標(biāo)記對(duì)應(yīng)的背景信息恢復(fù)出所述待恢復(fù)區(qū)域;如果Ii幀在Pi幀的待恢復(fù)區(qū)域是幀內(nèi)編碼信息,則利用Ii幀及Ii+1幀插值恢復(fù)Pi幀的所述待恢復(fù)區(qū)域;如果i組幀中包括兩個(gè)或兩個(gè)以上的P幀,且i組幀中靠近所述Pi幀的其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有運(yùn)動(dòng)矢量信息,則利用該運(yùn)動(dòng)矢量信息,并以所述Pi幀之前的幀作為參考幀恢復(fù)出所述待恢復(fù)區(qū)域;如果i組幀中靠近所述Pi幀的其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有幀內(nèi)編碼信息,則根據(jù)Ii幀和該P(yáng)幀插值恢復(fù)Pi幀的待恢復(fù)區(qū)域;如果i組幀中靠近所述Pi幀的其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有背景標(biāo)記,則根據(jù)所述背景標(biāo)記對(duì)應(yīng)的背景信息恢復(fù)出所述待恢復(fù)區(qū)域。
本發(fā)明的一種視頻解碼裝置,所述裝置收到的視頻碼流中包括多個(gè)組幀,每個(gè)組幀中包括一個(gè)I幀,該I幀之后至少包括一個(gè)P幀,所述裝置包括0組幀解碼模塊、Ii幀解碼模塊、Pi幀解碼模塊及輸出模塊,其中,0組幀解碼模塊,用于對(duì)收到的0組幀進(jìn)行解碼,以及將解碼得到的碼流信息發(fā)送給輸出模塊;Ii幀解碼模塊,用于讀取Ii幀背景區(qū)域的標(biāo)記,根據(jù)前一組幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定所述Ii幀背景區(qū)域所對(duì)應(yīng)的碼流信息,以及對(duì)Ii幀中的前景區(qū)域進(jìn)行解碼,還用于將解碼得到的碼流信息發(fā)送給輸出模塊;Pi幀解碼模塊,用于讀取Pi幀背景區(qū)域的標(biāo)記,根據(jù)當(dāng)前組幀中的Ii幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定所述Pi幀背景區(qū)域所對(duì)應(yīng)的碼流信息,以及對(duì)Pi幀中的前景區(qū)域進(jìn)行解碼,還用于將解碼得到的碼流信息發(fā)送給輸出模塊;輸出模塊,用于輸出解碼得到的碼流;其中,i>0。
所述裝置進(jìn)一步包括判斷模塊、Ii幀恢復(fù)模塊和Pi幀恢復(fù)模塊,其中,判斷模塊,用于在確定i>0的組幀中的Ii幀和Pi幀收到時(shí),將所述Ii幀發(fā)送到Ii幀解碼模塊,將所述Pi幀發(fā)送到Pi幀解碼模塊,還用于在確定Ii幀未收到時(shí),通知Ii幀恢復(fù)模塊恢復(fù)所述Ii幀,以及用于在確定Pi幀未收到時(shí),通知Pi幀恢復(fù)模塊恢復(fù)所述Pi幀;Ii幀恢復(fù)模塊,用于利用丟失的Ii幀之前的組幀以及所述Ii幀之后的Pi幀確定該Ii幀的可恢復(fù)背景區(qū)域并對(duì)其進(jìn)行恢復(fù)處理,以及根據(jù)所述Ii幀前后的P幀恢復(fù)出該Ii幀的其余區(qū)域,還用于將所恢復(fù)的碼流信息發(fā)送給輸出模塊;Pi幀恢復(fù)模塊,用于利用丟失的Pi幀之后的Ii+1幀確定該P(yáng)i幀的可恢復(fù)背景區(qū)域并對(duì)其進(jìn)行恢復(fù)處理,以及根據(jù)該P(yáng)i幀之前和/或之后的幀恢復(fù)出該P(yáng)i幀的其余區(qū)域,還用于將所恢復(fù)的碼流信息發(fā)送給輸出模塊。
所述Ii幀恢復(fù)模塊,用于確定Ii幀之前的組幀的背景區(qū)域,讀取Pi幀的背景標(biāo)記,將其所對(duì)應(yīng)的區(qū)域作為i組幀的背景區(qū)域,將所述兩個(gè)背景區(qū)域的并集作為所述Ii幀的可恢復(fù)背景區(qū)域;還用于在Ii幀前后的P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有運(yùn)動(dòng)矢量信息時(shí),根據(jù)所述運(yùn)動(dòng)矢量信息確定所述Ii幀在所述待恢復(fù)區(qū)域的運(yùn)動(dòng)矢量信息,以及以所述Ii幀之前的Pi-1幀作為參考幀恢復(fù)出所述待恢復(fù)區(qū)域;以及用于在Ii幀前后的P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有幀內(nèi)編碼信息時(shí),根據(jù)所述幀內(nèi)編碼信息恢復(fù)Ii幀中的所述待恢復(fù)區(qū)域。
所述Pi幀解碼模塊,用于將所述Ii+1幀的背景區(qū)域作為該P(yáng)i幀的可恢復(fù)背景區(qū)域;以及用于在i組幀中包括1個(gè)P幀,且Ii幀在Pi幀的待恢復(fù)區(qū)域有背景標(biāo)記時(shí),根據(jù)所述背景標(biāo)記恢復(fù)出所述待恢復(fù)區(qū)域,以及在確定Ii幀在Pi幀的待恢復(fù)區(qū)域有幀內(nèi)編碼信息時(shí),利用所述Ii幀及Ii+1幀插值恢復(fù)出所述待恢復(fù)區(qū)域;還用于在i組幀中包括兩個(gè)或兩個(gè)以上P幀,且i組幀中靠近所述Pi幀的其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有運(yùn)動(dòng)矢量信息時(shí),利用所述運(yùn)動(dòng)矢量信息,以所述Pi幀之前的幀作為參考幀恢復(fù)出所述待恢復(fù)區(qū)域,以及在所述其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有幀內(nèi)編碼信息時(shí),根據(jù)Ii幀和所述其他P幀插值恢復(fù)出所述待恢復(fù)區(qū)域,以及在所述其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有背景標(biāo)記時(shí),根據(jù)所述背景標(biāo)記對(duì)應(yīng)的背景信息恢復(fù)出所述待恢復(fù)區(qū)域。
本發(fā)明所提供的視頻編碼及解碼方案,使得在不增加視頻編解碼處理復(fù)雜度的同時(shí),還對(duì)即時(shí)通信之類的視頻作了優(yōu)化處理。本發(fā)明的視頻編碼方案只對(duì)I幀和P幀進(jìn)行編碼,節(jié)省了碼流,尤其適合于低帶寬下的視頻傳輸,而且還考慮到后期丟包時(shí)的解碼處理,使得能夠很方便地恢復(fù)出丟棄的I幀和P幀,在較大程度上對(duì)抗網(wǎng)絡(luò)丟包,從而能夠提高視頻通信之類業(yè)務(wù)的連接成功率,極大地改善了用戶體驗(yàn)。
圖1為本發(fā)明的編碼處理流程圖;圖2為本發(fā)明視頻編碼裝置的結(jié)構(gòu)示意圖;圖3為本發(fā)明的解碼處理流程圖;圖4為本發(fā)明在存在丟包情況下的解碼處理流程圖;圖5為本發(fā)明視頻解碼裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明方案作進(jìn)一步詳細(xì)的描述。
為保證圖像編碼完整性的同時(shí),盡量減少圖像編碼的復(fù)雜度,并且方便圖像解碼,本發(fā)明的視頻編碼方法主要是針對(duì)I幀和P幀進(jìn)行編碼處理。
本發(fā)明的視頻編碼方案是將視頻編碼為多個(gè)組,每個(gè)組包括一個(gè)I幀,該I幀之后至少包括一個(gè)P幀。具體來(lái)說(shuō),可以采取IPIPIP……的編碼方式,也可以采取IPPIPPIPP……的編碼方式,當(dāng)然也可以采取其他的編碼方式。
不管采用哪種具體編碼方式,編碼端的具體實(shí)現(xiàn)基本相同。因此本實(shí)施例僅以IPPIPPIPP……的編碼方式為例進(jìn)行詳細(xì)描述。
本實(shí)施例的編碼方式所對(duì)應(yīng)的編碼結(jié)構(gòu)為I0、P01、P02、I1、P11、P12、I2、P21、P22、I3、P31、P32、I4、P41、P42、I5、P51、P52……。
可以看出,該實(shí)施例中,每組幀包括3個(gè)幀,比如,第一個(gè)組幀,即0組幀包括I0、P01、P02,第二個(gè)組幀,即1組幀則包括I1、P11、P12。當(dāng)然,這里的0、01、02等只是為方便處理做的一個(gè)編號(hào),顯然也可以將其設(shè)置為其它編號(hào),比如,將上述0組幀中的編號(hào)設(shè)置為10。且這里的0組幀也只是表示整個(gè)編碼結(jié)構(gòu)中的第一個(gè)組幀。為方便描述,在第一個(gè)組幀中的編號(hào)為10時(shí),還可以將第一個(gè)組幀稱為10組幀。
該編碼處理如圖1所示,包括以下步驟步驟101、讀取一幀數(shù)據(jù),根據(jù)預(yù)設(shè)的視頻編碼結(jié)構(gòu)確定該幀的類型,如果該幀為Ii,且i≠0,則進(jìn)入步驟102;如果該幀為Pi,且i≠0,則進(jìn)入步驟103。
步驟102、通過(guò)分析本Ii幀及i-1組幀,確定Ii幀中包含在i-1組幀的背景區(qū)域中的區(qū)域,將該區(qū)域作為Ii幀的背景區(qū)域,直接用相應(yīng)的標(biāo)記來(lái)表示,并對(duì)其余的前景區(qū)域進(jìn)行編碼處理,之后進(jìn)入步驟104。
其中,該i-1組幀即為i幀的前一組幀,為方便描述,將i幀的前一組幀稱為i-1組幀。類似地,將i幀的前一組幀之前的組幀稱為i-2組幀。
由步驟102可以看出,需要確定i-1組幀中的背景區(qū)域,在確定該背景區(qū)域后,即可為該背景區(qū)域中的每個(gè)小區(qū)域設(shè)置背景標(biāo)記。從而,在確定Ii幀的背景區(qū)域后,即可為該背景區(qū)域用相應(yīng)的背景標(biāo)記來(lái)表示。
對(duì)于Ii幀來(lái)說(shuō),對(duì)其余的前景區(qū)域進(jìn)行編碼處理,具體是進(jìn)行幀內(nèi)編碼。
步驟103、通過(guò)分析本Pi幀及相應(yīng)的Ii幀,確定Pi幀中包含在該Ii幀的背景區(qū)域中的區(qū)域,將該區(qū)域作為Pi幀的背景區(qū)域,直接用相應(yīng)的標(biāo)記來(lái)表示,并對(duì)其余的前景區(qū)域進(jìn)行編碼處理,之后進(jìn)入步驟104。
本步驟103中,背景標(biāo)記的設(shè)置及標(biāo)記與上述步驟102類似,因此不再贅述。
對(duì)于Pi幀來(lái)說(shuō),對(duì)其余的前景區(qū)域進(jìn)行編碼處理,具體是利用幀間預(yù)測(cè)進(jìn)行編碼,且該編碼具體包括幀間編碼及幀內(nèi)編碼。
步驟104、將步驟102及103得到的幀整合為編碼碼流,并發(fā)送到網(wǎng)絡(luò)中。
當(dāng)然,在編碼時(shí),對(duì)于第一個(gè)組幀來(lái)說(shuō),則可以直接對(duì)其進(jìn)行編碼處理,具體可以用傳統(tǒng)方式對(duì)0組幀進(jìn)行編碼,之后進(jìn)入步驟104。該傳統(tǒng)方式具體可以為對(duì)I0幀進(jìn)行幀內(nèi)編碼,對(duì)P0幀進(jìn)行幀間編碼。當(dāng)然,也可以考慮采用其他的編碼處理方案。
下面以對(duì)第二組幀,即I1、P11和P12進(jìn)行編碼為例,對(duì)上述步驟102~103的處理過(guò)程進(jìn)行詳細(xì)描述。
步驟102中,在對(duì)I1幀進(jìn)行編碼時(shí),首先對(duì)0組幀進(jìn)行運(yùn)動(dòng)檢測(cè),測(cè)出該組幀中的共同區(qū)域A0,將該區(qū)域作為該組幀的背景區(qū)域。具體來(lái)說(shuō),該運(yùn)動(dòng)檢測(cè)即為比較I0、P01和P02中是否存在相同的像素,如果存在,則該像素所對(duì)應(yīng)的區(qū)域即為背景區(qū)域。之后,在對(duì)該I1幀進(jìn)行編碼時(shí),先結(jié)合0組幀進(jìn)行運(yùn)動(dòng)檢測(cè),測(cè)出I1幀中包含在0組幀的背景區(qū)域A0中的區(qū)域B1,將該區(qū)域B1作為I1幀的背景區(qū)域,并直接用相應(yīng)的標(biāo)記來(lái)表示;其余的前景區(qū)域則進(jìn)行幀內(nèi)編碼。
步驟103中,在對(duì)P11和P12幀進(jìn)行編碼時(shí),首先通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出這兩個(gè)P幀中包含在I1幀的背景區(qū)域中的區(qū)域S11和S12,將區(qū)域S11和S12分別作為P11和P12幀的背景區(qū)域,并直接用相應(yīng)的標(biāo)記來(lái)表示。其余的前景區(qū)域,則通過(guò)幀間預(yù)測(cè)進(jìn)行預(yù)測(cè)編碼。
由此可以看出,根據(jù)0組幀確定了該組幀的背景區(qū)域后,后續(xù)與該0組幀相關(guān)的其余組幀中各幀的背景區(qū)域均包含在0組幀的背景區(qū)域中。而0組幀中的P01和P02幀中所有的區(qū)域都是前景區(qū)域,對(duì)其均需通過(guò)幀間編碼進(jìn)行處理。
另外,為方便后續(xù)的解碼處理,本發(fā)明還可以設(shè)定視頻編碼結(jié)構(gòu)為在間隔設(shè)定的組幀數(shù)后,進(jìn)行重新計(jì)數(shù)。比如,可以設(shè)置編碼結(jié)構(gòu)為I0、P01、P02、I1、P11、P12、I2、P21、P22、I3、P31、P32、I4、P41、P42、I0、P01、P02、I1、P11、P12、I2、P21、P22、I3、P31、P32、I4、P41、P42、……。從而相當(dāng)于在碼流中設(shè)置同步點(diǎn)。也就是說(shuō),可以設(shè)定視頻編碼結(jié)構(gòu)包括多個(gè)大組,每個(gè)大組包括多個(gè)組幀,并且每個(gè)大組中的組幀分別排序。
與上述視頻編碼方案對(duì)應(yīng)的視頻編碼裝置如圖2所示,包括的模塊有接收及轉(zhuǎn)發(fā)模塊、Ii幀編碼模塊、Pi幀編碼模塊及整合模塊。
其中,接收及轉(zhuǎn)發(fā)模塊,用于讀取一幀數(shù)據(jù),并根據(jù)該幀的類型將該幀發(fā)送到相應(yīng)的編碼模塊。
Ii幀編碼模塊,用于分析本Ii幀及i-1組幀,確定Ii幀中包含在i-1組幀的背景區(qū)域中的區(qū)域,將該區(qū)域作為Ii幀的背景區(qū)域,直接用相應(yīng)的標(biāo)記來(lái)表示,以及對(duì)其余的前景區(qū)域進(jìn)行編碼,并將處理后的Ii幀發(fā)送給整合模塊。其中,這里所說(shuō)的編碼即為幀內(nèi)編碼處理。
Pi幀編碼模塊,用于分析本Pi幀及相應(yīng)的Ii幀,確定Pi幀中包含在該i幀的背景區(qū)域中的區(qū)域,將該區(qū)域作為Pi幀的背景區(qū)域,直接用相應(yīng)的標(biāo)記來(lái)表示,以及對(duì)其余的前景區(qū)域進(jìn)行編碼處理,并將處理后的Pi幀發(fā)送給整合模塊。這里所說(shuō)的編碼包括幀間編碼和幀內(nèi)編碼處理。
整合模塊,用于將收到的各個(gè)幀整合為編碼碼流,以及將編碼碼流發(fā)送到網(wǎng)絡(luò)。
可以看出,上述Ii幀編碼模塊和Pi幀編碼模塊所處理的均為i>0的幀。
其中,上述的Ii幀編碼模塊中,分析本Ii幀及i-1組幀,確定Ii幀中包含在i-1組幀的背景區(qū)域中的區(qū)域,具體是先對(duì)i-1組幀進(jìn)行運(yùn)動(dòng)檢測(cè),測(cè)出該組幀中的背景區(qū)域Ai-1,顯然,該Ai-1是包括在0組幀的背景區(qū)域A0中的,之后,再結(jié)合該i-1組幀進(jìn)行運(yùn)動(dòng)檢測(cè),測(cè)出Ii幀中包含在i-1組幀的背景區(qū)域Ai-1中的區(qū)域Bi,將該區(qū)域Bi作為Ii幀的背景區(qū)域。
上述的Pi幀編碼模塊中,分析本Pi幀及相應(yīng)的Ii幀,確定Pi幀中包含在該Ii幀的背景區(qū)域中的區(qū)域,具體是通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出這兩個(gè)P幀中包含在Ii幀的背景區(qū)域中的區(qū)域Si1和Si2,并將這兩個(gè)區(qū)域分別作為這兩個(gè)P幀的背景區(qū)域。
對(duì)于0組幀來(lái)說(shuō),則可以通過(guò)設(shè)置0組幀編碼模塊,并用該編碼模塊進(jìn)行編碼處理。該模塊可以用于直接對(duì)0組幀進(jìn)行編碼,并將編碼后的0組幀發(fā)送給整合模塊。
上述對(duì)圖像編碼處理進(jìn)行了詳細(xì)描述,下面再結(jié)合附圖描述圖像解碼處理。
首先,圖像在解碼處理時(shí),會(huì)收到包括多個(gè)組幀的視頻碼流,每個(gè)組幀中包括一個(gè)I幀,該I幀之后至少包括一個(gè)P幀。如前所述,該P(yáng)幀可以為一個(gè),也可以為多個(gè)。
在收到視頻碼流后,圖像解碼處理的實(shí)現(xiàn)流程如圖3所示,對(duì)應(yīng)以下步驟步驟301、對(duì)收到的0組幀進(jìn)行解碼。
具體來(lái)說(shuō),對(duì)0組幀中的I0幀進(jìn)行幀內(nèi)解碼,對(duì)P0幀進(jìn)行幀間解碼。
步驟302、在收到當(dāng)前組幀中的I1幀時(shí),讀取背景部分的標(biāo)記,結(jié)合前一組幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定該I1幀的背景部分所對(duì)應(yīng)的碼流信息,并對(duì)前景區(qū)域的碼流進(jìn)行解碼,最后恢復(fù)出整幀圖像。
本步驟中,前一組幀的背景區(qū)域,就是步驟301中解碼出的0組幀的背景區(qū)域,該背景區(qū)域具體可以通過(guò)分析得出。
本步驟中,對(duì)前景區(qū)域的碼流進(jìn)行解碼,具體是對(duì)其進(jìn)行幀內(nèi)解碼。
步驟303、在收到當(dāng)前組幀中的P1幀時(shí),讀取該P(yáng)1幀背景區(qū)域的標(biāo)記,結(jié)合步驟302中得到的I1幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定該P(yáng)1幀背景區(qū)域所對(duì)應(yīng)的碼流信息,并對(duì)P1幀的前景區(qū)域進(jìn)行解碼,最后恢復(fù)出整幀圖像。
步驟304、對(duì)后續(xù)組幀中的Ii重復(fù)執(zhí)行上述步驟302的處理,對(duì)Pi則重復(fù)執(zhí)行上述步驟303的處理,從而得到解碼后的圖像。
通過(guò)上述處理即實(shí)現(xiàn)了對(duì)組幀的解碼。
上述步驟302至304的解碼處理如果換一種描述方式,即為下述兩個(gè)步驟步驟A、在收到當(dāng)前組幀中的Ii幀,且i>0時(shí),讀取該Ii幀背景區(qū)域的標(biāo)記,根據(jù)前一組幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定該Ii幀的背景區(qū)域所對(duì)應(yīng)的碼流信息,并對(duì)Ii幀中的前景區(qū)域進(jìn)行解碼;步驟B、在收到當(dāng)前組幀中的Pi幀,且i>0時(shí),讀取該P(yáng)i幀背景區(qū)域的標(biāo)記,根據(jù)當(dāng)前組幀中的Ii幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定該P(yáng)i幀背景區(qū)域所對(duì)應(yīng)的碼流信息,并對(duì)Pi幀中的前景區(qū)域進(jìn)行解碼。
之后再將解碼得到的視頻碼流輸出。
假如編碼碼流在傳輸過(guò)程中出現(xiàn)了丟包,則在解碼過(guò)程中,需要通過(guò)一系列的處理盡量恢復(fù)出丟掉的包的內(nèi)容。
本發(fā)明的編碼碼流中只包括I幀和P幀,因此丟包只涉及這兩種幀。因此,在緩存網(wǎng)絡(luò)包時(shí),首先要判斷是否出現(xiàn)丟包,如果沒(méi)有丟包,則采用上述步驟301~304的處理即可;如果出現(xiàn)了丟包,則需要判斷丟失的幀的類型,并對(duì)該類型的幀進(jìn)行恢復(fù)處理。下面結(jié)合圖4對(duì)該具體實(shí)現(xiàn)流程進(jìn)行詳細(xì)描述。
如圖4所示,該實(shí)現(xiàn)流程對(duì)應(yīng)以下步驟步驟401~402、緩存網(wǎng)絡(luò)包,并判斷i>0的組幀中的Ii幀和Pi幀是否收到,如果均收到,則執(zhí)行上述步驟302~304,也即執(zhí)行上述步驟A和B的處理;如果Ii幀未收到,則執(zhí)行步驟403;如果Pi幀未收到,則執(zhí)行步驟404。
步驟403、收到丟失的Ii幀后續(xù)的Pi幀后,利用該Ii幀之前的組幀及所述Pi幀確定該Ii幀的可恢復(fù)背景區(qū)域,對(duì)其進(jìn)行恢復(fù),并根據(jù)該Ii幀前后的P幀恢復(fù)出該Ii幀的其余區(qū)域,之后再按照上述步驟303的處理方式對(duì)該P(yáng)i幀進(jìn)行解碼,也即根據(jù)上述步驟B對(duì)該P(yáng)i幀進(jìn)行解碼,并繼續(xù)執(zhí)行后續(xù)的步驟。
步驟404、利用丟失的Pi幀之后的Ii+1幀確定該P(yáng)i幀的可恢復(fù)背景區(qū)域,對(duì)其進(jìn)行恢復(fù),并根據(jù)該P(yáng)i幀之前和/或之后的幀恢復(fù)出該P(yáng)i幀的其余區(qū)域,之后再根據(jù)上述步驟302的處理方式對(duì)該P(yáng)i幀之后的Ii+1幀進(jìn)行解碼,也即根據(jù)上述步驟A對(duì)Pi幀之后的Ii+1幀進(jìn)行解碼,并繼續(xù)執(zhí)行后續(xù)的步驟。
對(duì)于上述幀恢復(fù)處理來(lái)說(shuō),I0幀無(wú)法恢復(fù),因此,在視頻編碼結(jié)構(gòu)中設(shè)置多個(gè)大組的情況下,如果某個(gè)大組中的I0幀丟失,則需要等待下一個(gè)大組,即在得到下一個(gè)大組中的I0幀后,再進(jìn)行解碼處理。
下面以I2幀和P42幀丟失為例,對(duì)上述步驟403和404的具體處理進(jìn)行詳細(xì)描述。
其中,上述步驟403中,利用該I2幀之前的組幀及之后的Pi幀確定該I2幀的可恢復(fù)背景區(qū)域,是通過(guò)I2幀之前的1組幀,以及I2幀之后的P21和P22確定。具體來(lái)說(shuō),該處理包括通過(guò)分析1組幀來(lái)確定1組幀的背景區(qū)域,將該背景區(qū)域稱為R1,并讀取P21和P22幀中的背景區(qū)域的標(biāo)記,將這兩個(gè)P幀的背景標(biāo)記所對(duì)應(yīng)的區(qū)域之和作為2組幀的背景區(qū)域R2。顯然,在2組幀中,I2的實(shí)際背景區(qū)域RI2包含在1組幀的背景區(qū)域R1中,P21和P22的背景區(qū)域則包含在I2的背景區(qū)域中,P21和P22幀的背景區(qū)域的并集即為I2的背景區(qū)域的一部分,但該并集可能存在重復(fù)的區(qū)域。因此,如果P21和P22幀的背景區(qū)域的并集與1組幀的背景區(qū)域R1存在交集,將該交集稱為R,則該交集R必然包含在I2的實(shí)際背景區(qū)域RI2中。該交集R具體可由公式(1)得出。
R=R1∩(Rp21∪Rp22)(1)因此,可以根據(jù)1組幀中已經(jīng)解碼得到的背景區(qū)域的碼流信息恢復(fù)出I2的大部分實(shí)際背景區(qū)域。
對(duì)于其余未恢復(fù)的區(qū)域,則可以通過(guò)分析I2幀之前和之后的P幀獲得。
為方便檢測(cè),可以將其余區(qū)域劃分為至少一個(gè)的待恢復(fù)區(qū)域。
之后,如果I2幀之前和之后的4個(gè)P幀對(duì)應(yīng)該I2幀的待恢復(fù)區(qū)域存在運(yùn)動(dòng)矢量信息,則可以根據(jù)該運(yùn)動(dòng)矢量信息確定該I2幀的這個(gè)待恢復(fù)區(qū)域的運(yùn)動(dòng)矢量信息,之后再利用該I2幀之前的P12幀作為參考幀恢復(fù)出該待恢復(fù)區(qū)域。
具體來(lái)說(shuō),由于本實(shí)施例中,I2幀之前和之后的P幀包括P11、P12、P21和P12,因此,在恢復(fù)I2中的待恢復(fù)區(qū)域時(shí),可以分析這四個(gè)P幀在相應(yīng)區(qū)域的運(yùn)動(dòng)矢量信息。設(shè)BI2為I2幀中未恢復(fù)出的一塊區(qū)域,Bp11、Bp12、Bp21、Bp22分別代表P11、P12、P21和P12的對(duì)應(yīng)區(qū)域,記錄一個(gè)變量MV,該MV的算法如公式(2)所示。
MV=(MVBp11+MVBp12+MVBp21+MVBp22)/4 (2)則以MV作為B12的運(yùn)動(dòng)矢量,以之前的P12幀作為參考幀恢復(fù)出該BI2塊。
以上僅以I2幀中的BI2塊為例,對(duì)于其它前景區(qū)域,可以用同樣的方式進(jìn)行處理,直至恢復(fù)出整個(gè)I2幀。
當(dāng)然,如果I2幀之前和之后的最靠近的兩個(gè)P幀對(duì)應(yīng)該待恢復(fù)區(qū)域存在運(yùn)動(dòng)矢量信息,本實(shí)施例中這兩個(gè)P幀即為P12幀和P21幀,而其余兩個(gè)較遠(yuǎn)的P幀,即P11幀和P22幀所對(duì)應(yīng)的不全是運(yùn)動(dòng)矢量信息,則只根據(jù)P12幀和P21幀的運(yùn)動(dòng)矢量信息確定該I2幀的待恢復(fù)區(qū)域的運(yùn)動(dòng)矢量信息,之后同樣根據(jù)所得的運(yùn)動(dòng)矢量信息及P12幀作為參考幀恢復(fù)出該待恢復(fù)區(qū)域。
如果I2幀之前和之后的最靠近的兩個(gè)P幀,即P12幀和P21幀對(duì)應(yīng)該待恢復(fù)區(qū)域有幀內(nèi)編碼,則需要根據(jù)幀內(nèi)編碼信息恢復(fù)I2幀中的待恢復(fù)區(qū)域。具體來(lái)說(shuō),如果是兩個(gè)P幀均有幀內(nèi)編碼信息,則根據(jù)該幀內(nèi)編碼信息,并利用插值算法恢復(fù)出該待恢復(fù)區(qū)域;如果是兩個(gè)P幀中只有一個(gè)有幀內(nèi)編碼信息,則通過(guò)復(fù)制幀內(nèi)編碼信息恢復(fù)出該待恢復(fù)區(qū)域。
另外,在恢復(fù)出I2幀的全部待恢復(fù)區(qū)域后,為改善視覺(jué)效果,還可以對(duì)所有的區(qū)域進(jìn)行邊界濾波處理。
上述實(shí)施例中幀的編碼結(jié)構(gòu)為I0、P01、P02、I1、P11、P12、I2、P21、P22、I3、P31、P32、I4、P41、P42、I5、P51、P52……。因此,在恢復(fù)I2幀時(shí),是利用了P11、P12、P21和P22。在編碼結(jié)構(gòu)為其它方式時(shí),同樣是利用該Ii幀前后的P幀進(jìn)行恢復(fù)處理,所不同的只是可以利用的P幀的個(gè)數(shù)不同,因此這里不再贅述。
對(duì)于P42幀丟失的情況來(lái)說(shuō),在根據(jù)上述步驟404進(jìn)行恢復(fù)時(shí),可以先利用該P(yáng)42幀之后的I5幀確定該P(yáng)42幀的可恢復(fù)背景區(qū)域。再利用該P(yáng)42幀之前的P41幀和/或I4幀恢復(fù)出該P(yáng)42幀的前景區(qū)域。
具體來(lái)說(shuō),由于第4組幀的背景區(qū)域一定包括在P42幀的背景區(qū)域中,而I5幀的背景區(qū)域又一定包括在第4組幀的背景區(qū)域中,因此,I5幀的背景區(qū)域必然在P42幀的背景區(qū)域內(nèi)。從而,可以將該區(qū)域作為P42幀的可恢復(fù)背景區(qū)域。
剩下的其余區(qū)域同樣分為待恢復(fù)區(qū)域,可以利用與該P(yáng)42幀相鄰的P41幀進(jìn)行恢復(fù)。具體來(lái)說(shuō),如果P41幀中與待恢復(fù)區(qū)域?qū)?yīng)的區(qū)域有運(yùn)動(dòng)矢量信息,則將該運(yùn)動(dòng)矢量信息作為該待恢復(fù)區(qū)域的運(yùn)動(dòng)矢量信息,并以P41幀作為參考幀進(jìn)行恢復(fù)處理。當(dāng)然,如果P41幀中與待恢復(fù)區(qū)域?qū)?yīng)的區(qū)域有幀內(nèi)編碼,則可以根據(jù)該I4幀及P41幀恢復(fù)出待恢復(fù)區(qū)域;如果P41幀中與待恢復(fù)區(qū)域?qū)?yīng)的區(qū)域有背景標(biāo)記,則根據(jù)所述背景標(biāo)記對(duì)應(yīng)的背景信息恢復(fù)出待恢復(fù)區(qū)域。
另外,在恢復(fù)出P42幀的全部待恢復(fù)區(qū)域后,為改善視覺(jué)效果,還可以對(duì)所有的區(qū)域進(jìn)行邊界濾波處理。
上述實(shí)施例所針對(duì)的編碼結(jié)構(gòu)為I0、P01、P02、I1、P11、P12、I2、P21、P22、I3、P31、P32、I4、P41、P42、I5、P51、P52……。如果I幀之間的P幀為2個(gè)以上,則可以直接采用上述恢復(fù)方案來(lái)恢復(fù)I幀和P幀。如果I幀之間的P幀為1個(gè),則在上述步驟404中,利用該P(yáng)幀前后的I幀恢復(fù)出P幀的其余區(qū)域。且如果I幀在P幀的待恢復(fù)區(qū)域有幀內(nèi)編碼信息,則說(shuō)明該Ii幀在該待恢復(fù)區(qū)域?yàn)榍熬皡^(qū)域,相應(yīng)地,后面的Ii+1幀在該待恢復(fù)區(qū)域必然也是前景區(qū)域,因此可以利用Ii幀與Ii+1幀插值恢復(fù)出該待恢復(fù)區(qū)域。如果不是幀內(nèi)編碼信息,而是背景標(biāo)記,則認(rèn)為所丟失的P幀在該待恢復(fù)區(qū)域也是背景區(qū)域,因此直接根據(jù)所述背景標(biāo)記對(duì)應(yīng)的背景信息恢復(fù)出待恢復(fù)區(qū)域。雖然針對(duì)不同的編碼結(jié)構(gòu),在恢復(fù)其余區(qū)域時(shí)的處理略有不同,但處理原則相同。
本發(fā)明的視頻解碼方案所對(duì)應(yīng)的視頻解碼裝置如圖5所示,包括的模塊有0組幀解碼模塊、Ii幀解碼模塊及Pi幀解碼模塊及輸出模塊。
其中,0組幀解碼模塊,用于對(duì)收到的0組幀進(jìn)行解碼,以及將解碼得到的碼流信息發(fā)送給輸出模塊;Ii幀解碼模塊,用于讀取Ii幀背景區(qū)域的標(biāo)記,根據(jù)前一組幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定所述Ii幀背景區(qū)域所對(duì)應(yīng)的碼流信息,以及對(duì)Ii幀中的前景區(qū)域進(jìn)行解碼,還用于將解碼得到的碼流信息發(fā)送給輸出模塊;Pi幀解碼模塊,用于讀取Pi幀背景區(qū)域的標(biāo)記,根據(jù)當(dāng)前組幀中的Ii幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定該P(yáng)i幀背景區(qū)域所對(duì)應(yīng)的碼流信息,以及對(duì)Pi幀中的前景區(qū)域進(jìn)行解碼,還用于將解碼得到的碼流信息發(fā)送給輸出模塊;輸出模塊,用于輸出解碼得到的碼流。
其中,上述的i>0。
當(dāng)然,針對(duì)丟包的情況來(lái)說(shuō),所述裝置還需要進(jìn)一步包括判斷模塊、Ii幀恢復(fù)模塊和Pi幀恢復(fù)模塊,其中,判斷模塊,用于在確定i>0的組幀中的Ii幀和Pi幀收到時(shí),將所述Ii幀發(fā)送到Ii幀解碼模塊,將所述Pi幀發(fā)送到Pi幀解碼模塊,還用于在確定Ii幀未收到時(shí),通知Ii幀恢復(fù)模塊恢復(fù)所述Ii幀,以及用于在確定Pi幀未收到時(shí),通知Pi幀恢復(fù)模塊恢復(fù)所述Pi幀;Ii幀恢復(fù)模塊,用于利用丟失的Ii幀之前的組幀以及所述Ii幀之后的Pi幀確定該Ii幀的可恢復(fù)背景區(qū)域,并對(duì)其進(jìn)行恢復(fù)處理,以及根據(jù)所述Ii幀前后的P幀恢復(fù)出該Ii幀的其余區(qū)域,還用于將所恢復(fù)的碼流信息發(fā)送給輸出模塊;Pi幀恢復(fù)模塊,用于利用丟失的Pi幀0之后的I幀確定該P(yáng)i幀的可恢復(fù)背景區(qū)域,并對(duì)其進(jìn)行恢復(fù)處理,并根據(jù)該P(yáng)i幀之前和/或之后的幀恢復(fù)出該P(yáng)i幀的其余區(qū)域,還用于將所恢復(fù)的碼流信息發(fā)送給輸出模塊。
具體來(lái)說(shuō),Ii幀恢復(fù)模塊,用于確定Ii幀之前的組幀的背景區(qū)域,讀取Pi幀的背景標(biāo)記,將其所對(duì)應(yīng)的區(qū)域作為i組幀的背景區(qū)域,將所述兩個(gè)背景區(qū)域的并集作為所述Ii幀的可恢復(fù)背景區(qū)域;還用于在Ii幀前后的P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有運(yùn)動(dòng)矢量信息時(shí),根據(jù)所述運(yùn)動(dòng)矢量信息確定所述Ii幀在所述待恢復(fù)區(qū)域的運(yùn)動(dòng)矢量信息,以及以所述Ii幀之前的Pi-1幀作為參考幀恢復(fù)出所述待恢復(fù)區(qū)域;以及用于在Ii幀前后的P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有幀內(nèi)編碼信息時(shí),根據(jù)所述幀內(nèi)編碼信息恢復(fù)Ii幀中的所述待恢復(fù)區(qū)域。
Pi幀解碼模塊,用于將Ii+1幀的背景區(qū)域作為該P(yáng)i幀的可恢復(fù)背景區(qū)域;以及用于在i組幀中包括1個(gè)P幀,且Ii幀在Pi幀的待恢復(fù)區(qū)域有背景標(biāo)記時(shí),根據(jù)所述背景標(biāo)記恢復(fù)出所述待恢復(fù)區(qū)域,以及在確定Ii幀在Pi幀的待恢復(fù)區(qū)域有幀內(nèi)編碼信息時(shí),利用Ii幀及Ii+1幀插值恢復(fù)出所述待恢復(fù)區(qū)域;還用于在i組幀中包括兩個(gè)或兩個(gè)以上P幀,且i組幀中靠近所述Pi幀的其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有運(yùn)動(dòng)矢量信息時(shí),利用所述運(yùn)動(dòng)矢量信息,以所述Pi幀之前的幀作為參考幀恢復(fù)出所述待恢復(fù)區(qū)域,以及在所述其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有幀內(nèi)編碼信息時(shí),根據(jù)Ii幀及該其他P幀恢復(fù)出待恢復(fù)區(qū)域,在所述其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有背景標(biāo)記時(shí),根據(jù)所述背景標(biāo)記對(duì)應(yīng)的背景信息恢復(fù)出所述待恢復(fù)區(qū)域。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種視頻編碼方法,其特征在于,設(shè)置視頻編碼結(jié)構(gòu)包括多個(gè)組幀,每個(gè)組幀中包括一個(gè)I幀,該I幀之后至少包括一個(gè)P幀,該方法進(jìn)一步包括讀取一幀數(shù)據(jù),根據(jù)預(yù)設(shè)的視頻編碼結(jié)構(gòu)確定該幀的類型;在確定該幀為Ii,且i≠0時(shí),通過(guò)分析該Ii幀及其前一組幀,確定Ii幀中包含在前一組幀的背景區(qū)域中的區(qū)域,將該區(qū)域作為Ii幀的背景區(qū)域,直接用相應(yīng)的標(biāo)記表示,并對(duì)其余的前景區(qū)域進(jìn)行編碼;在確定該幀為Pi,且i≠0時(shí),通過(guò)分析該P(yáng)i幀及相應(yīng)的Ii幀,確定Pi幀中包含在該Ii幀的背景區(qū)域中的區(qū)域,將該區(qū)域作為Pi幀的背景區(qū)域,直接用相應(yīng)的標(biāo)記表示,并對(duì)其余的前景區(qū)域進(jìn)行編碼;將得到的幀整合為編碼碼流。
2.根據(jù)權(quán)利要求1所述的一種視頻編碼方法,其特征在于,所述通過(guò)分析該Ii幀及其前一組幀來(lái)確定Ii幀中包含在前一組幀的背景區(qū)域中的區(qū)域,包括對(duì)于I1幀,通過(guò)對(duì)0組幀進(jìn)行運(yùn)動(dòng)檢測(cè)測(cè)出該組幀的共同區(qū)域,將其作為0組幀的背景區(qū)域,之后通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出I1幀中包含在0組幀的背景區(qū)域中的區(qū)域;對(duì)于其余i>1的Ii幀,則通過(guò)對(duì)前一組幀進(jìn)行運(yùn)動(dòng)檢測(cè)測(cè)出該組幀中包含在該前一組幀之前的組幀的背景區(qū)域中的區(qū)域,將其作為前一組幀的背景區(qū)域,之后通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出Ii幀中包含在前一組幀的背景區(qū)域中的區(qū)域。
3.根據(jù)權(quán)利要求1所述的一種視頻編碼方法,其特征在于,所述通過(guò)分析該P(yáng)i幀及相應(yīng)的Ii幀來(lái)確定Pi幀中包含在該Ii幀的背景區(qū)域中的區(qū)域,包括通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出Pi幀中包含在Ii幀的背景區(qū)域中的區(qū)域。
4.根據(jù)權(quán)利要求1所述的一種視頻編碼方法,其特征在于,所述視頻編碼結(jié)構(gòu)進(jìn)一步包括多個(gè)大組,每個(gè)大組包括多個(gè)組幀,且每個(gè)大組中的組幀分別排序。
5.根據(jù)權(quán)利要求1至4中任意一項(xiàng)所述的方法,其特征在于,該方法進(jìn)一步包括在確定該幀為第一個(gè)組幀時(shí),直接對(duì)該組幀進(jìn)行編碼。
6.一種視頻編碼裝置,其特征在于,所述裝置包括接收及轉(zhuǎn)發(fā)模塊、Ii幀編碼模塊、Pi幀編碼模塊以及整合模塊,其中,接收及轉(zhuǎn)發(fā)模塊,用于讀取一幀數(shù)據(jù),并根據(jù)該幀的類型將該幀發(fā)送到相應(yīng)的編碼模塊;Ii幀編碼模塊,用于分析該Ii幀及其前一組幀,確定Ii幀中包含在前一組幀的背景區(qū)域中的區(qū)域,將該區(qū)域作為Ii幀的背景區(qū)域,直接用相應(yīng)的標(biāo)記表示,以及對(duì)其余的前景區(qū)域進(jìn)行編碼,將處理后的Ii幀發(fā)送給整合模塊;Pi幀編碼模塊,用于分析該P(yáng)i幀及相應(yīng)的Ii幀,確定Pi幀中包含在該Ii幀的背景區(qū)域中的區(qū)域,將該區(qū)域作為Pi幀的背景區(qū)域,直接用相應(yīng)的標(biāo)記表示,以及對(duì)其余的前景區(qū)域進(jìn)行編碼,將處理后的Pi幀發(fā)送給整合模塊;整合模塊,用于將收到的各個(gè)幀整合為編碼碼流;其中,i>0。
7.根據(jù)權(quán)利要求6所述的一種視頻編碼裝置,其特征在于,所述Ii幀編碼模塊用于通過(guò)對(duì)0組幀進(jìn)行運(yùn)動(dòng)檢測(cè)測(cè)出該組幀的共同區(qū)域,將其作為0組幀的背景區(qū)域,以及通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出I1幀中包含在0組幀的背景區(qū)域中的區(qū)域;還用于通過(guò)對(duì)i>1的前一組幀進(jìn)行運(yùn)動(dòng)檢測(cè)測(cè)出該組幀中包含在該前一組幀之前的組幀的背景區(qū)域中的區(qū)域,將其作為前一組幀的背景區(qū)域,以及通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出Ii幀中包含在前一組幀的背景區(qū)域中的區(qū)域。
8.根據(jù)權(quán)利要求6所述的一種視頻編碼裝置,其特征在于,所述Pi幀編碼模塊用于通過(guò)運(yùn)動(dòng)檢測(cè)測(cè)出Pi幀中包含在Ii幀的背景區(qū)域中的區(qū)域,以及將所述區(qū)域作為Pi幀的背景區(qū)域。
9.根據(jù)權(quán)利要求6所述的一種視頻編碼裝置,其特征在于,視頻編碼結(jié)構(gòu)進(jìn)一步包括多個(gè)大組,每個(gè)大組包括多個(gè)組幀,且每個(gè)大組中的組幀分別排序。
10.根據(jù)權(quán)利要求6所述的一種視頻編碼裝置,其特征在于,所述裝置進(jìn)一步包括0組幀編碼模塊,用于直接對(duì)0組幀進(jìn)行編碼,并將編碼后的0組幀發(fā)送給整合模塊。
11.一種視頻解碼方法,其特征在于,收到的視頻碼流中包括多個(gè)組幀,每個(gè)組幀中包括一個(gè)I幀,該I幀之后至少包括一個(gè)P幀,該方法進(jìn)一步包括A.對(duì)收到的0組幀進(jìn)行解碼;B.在收到當(dāng)前組幀中的Ii幀,且i>0時(shí),讀取該Ii幀背景區(qū)域的標(biāo)記,根據(jù)前一組幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定該Ii幀的背景區(qū)域所對(duì)應(yīng)的碼流信息,并對(duì)Ii幀中的前景區(qū)域進(jìn)行解碼;C.在收到當(dāng)前組幀中的Pi幀,且i>0時(shí),讀取該P(yáng)i幀背景區(qū)域的標(biāo)記,根據(jù)當(dāng)前組幀中的Ii幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定該P(yáng)i幀背景區(qū)域所對(duì)應(yīng)的碼流信息,并對(duì)Pi幀中的前景區(qū)域進(jìn)行解碼;D.輸出解碼得到的視頻碼流。
12.根據(jù)權(quán)利要求11所述的一種視頻解碼方法,其特征在于,該方法進(jìn)一步包括判斷i>0的組幀中的Ii幀和Pi幀是否收到,如果均收到,則執(zhí)行步驟B或C的相應(yīng)處理;如果是Ii幀未收到,則執(zhí)行步驟A01;如果是Pi幀未收到,則執(zhí)行步驟A02;A01.收到所丟失的Ii幀后續(xù)的Pi幀后,利用該Ii幀之前的組幀及所述Pi幀確定該Ii幀的可恢復(fù)背景區(qū)域并對(duì)其進(jìn)行恢復(fù)處理,并根據(jù)該Ii幀前后的P幀恢復(fù)出該Ii幀的其余區(qū)域,之后再根據(jù)所述步驟C對(duì)所述Pi幀進(jìn)行解碼;A02.利用所丟失的Pi幀之后的Ii+1幀確定該P(yáng)i幀的可恢復(fù)背景區(qū)域并對(duì)其進(jìn)行恢復(fù)處理,并根據(jù)該P(yáng)i幀之前和/或之后的幀恢復(fù)出該P(yáng)i幀的其余區(qū)域,之后再根據(jù)所述步驟B對(duì)所述Pi幀之后的Ii+1幀進(jìn)行解碼。
13.根據(jù)權(quán)利要求12所述的一種視頻解碼方法,其特征在于,步驟A01中,所述利用Ii幀之前的組幀及Pi幀確定該Ii幀的可恢復(fù)背景區(qū)域包括確定Ii幀之前的組幀的背景區(qū)域,讀取Pi幀的背景標(biāo)記,將其所對(duì)應(yīng)區(qū)域作為i組幀的背景區(qū)域,并將所述兩個(gè)背景區(qū)域的并集作為所述Ii幀的可恢復(fù)背景區(qū)域;所述根據(jù)Ii幀前后的P幀恢復(fù)出該Ii幀的其余區(qū)域包括將所述其余區(qū)域劃分為至少一個(gè)的待恢復(fù)區(qū)域,如果所述Ii幀前后的P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有運(yùn)動(dòng)矢量信息,則根據(jù)所述運(yùn)動(dòng)矢量信息確定所述Ii幀在所述待恢復(fù)區(qū)域的運(yùn)動(dòng)矢量信息,并以所述Ii幀之前的Pi-1幀作為參考幀恢復(fù)出所述待恢復(fù)區(qū)域;如果最靠近所述Ii幀前后的兩個(gè)P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有幀內(nèi)編碼信息,則根據(jù)所述幀內(nèi)編碼信息恢復(fù)Ii幀中的所述待恢復(fù)區(qū)域。
14.根據(jù)權(quán)利要求13所述的一種視頻解碼方法,其特征在于,所述視頻碼流中每個(gè)組幀中的I幀之后包括一個(gè)以上的P幀,步驟A01中,所述Ii幀前后的P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有運(yùn)動(dòng)矢量信息如果是所述Ii幀前后的所有P幀均有運(yùn)動(dòng)矢量信息,則執(zhí)行以所述運(yùn)動(dòng)矢量信息確定Ii幀在所述待恢復(fù)區(qū)域的運(yùn)動(dòng)矢量信息的步驟;如果是所述最靠近Ii幀前后的P幀均有運(yùn)動(dòng)矢量信息,則根據(jù)所述P幀的所述運(yùn)動(dòng)矢量信息執(zhí)行以所述運(yùn)動(dòng)矢量信息確定Ii幀在所述待恢復(fù)區(qū)域的運(yùn)動(dòng)矢量信息的步驟。
15.根據(jù)權(quán)利要求13所述的一種視頻解碼方法,其特征在于,所述最靠近所述Ii幀前后的兩個(gè)P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有幀內(nèi)編碼信息,如果是兩個(gè)P幀均有幀內(nèi)編碼信息,則根據(jù)所述幀內(nèi)編碼信息,利用插值算法恢復(fù)出所述待恢復(fù)區(qū)域;如果是兩個(gè)P幀中只有一個(gè)有幀內(nèi)編碼信息,則通過(guò)復(fù)制所述幀內(nèi)編碼信息恢復(fù)所述待恢復(fù)區(qū)域。
16.根據(jù)權(quán)利要求12所述的一種視頻解碼方法,其特征在于,步驟A02中,所述利用Pi幀之后的I幀確定該P(yáng)i幀的可恢復(fù)背景區(qū)域包括將所述I幀的背景區(qū)域作為該P(yáng)i幀的可恢復(fù)背景區(qū)域;所述根據(jù)該P(yáng)i幀之前和/或之后的幀恢復(fù)出該P(yáng)i幀的其余區(qū)域包括將所述其余區(qū)域劃分為至少一個(gè)以上的待恢復(fù)區(qū)域,如果i組幀中包括1個(gè)P幀,如果Ii幀在Pi幀的待恢復(fù)區(qū)域有背景標(biāo)記,則認(rèn)為Pi幀的該待恢復(fù)區(qū)域也是背景區(qū)域,根據(jù)所述背景標(biāo)記對(duì)應(yīng)的背景信息恢復(fù)出所述待恢復(fù)區(qū)域;如果Ii幀在Pi幀的待恢復(fù)區(qū)域是幀內(nèi)編碼信息,則利用Ii幀及Ii+1幀插值恢復(fù)Pi幀的所述待恢復(fù)區(qū)域;如果i組幀中包括兩個(gè)或兩個(gè)以上的P幀,且i組幀中靠近所述Pi幀的其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有運(yùn)動(dòng)矢量信息,則利用該運(yùn)動(dòng)矢量信息,并以所述Pi幀之前的幀作為參考幀恢復(fù)出所述待恢復(fù)區(qū)域;如果i組幀中靠近所述Pi幀的其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有幀內(nèi)編碼信息,則根據(jù)Ii幀和該P(yáng)幀插值恢復(fù)Pi幀的待恢復(fù)區(qū)域;如果i組幀中靠近所述Pi幀的其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有背景標(biāo)記,則根據(jù)所述背景標(biāo)記對(duì)應(yīng)的背景信息恢復(fù)出所述待恢復(fù)區(qū)域。
17.一種視頻解碼裝置,其特征在于,所述裝置收到的視頻碼流中包括多個(gè)組幀,每個(gè)組幀中包括一個(gè)I幀,該I幀之后至少包括一個(gè)P幀,所述裝置包括0組幀解碼模塊、Ii幀解碼模塊、Pi幀解碼模塊及輸出模塊,其中,0組幀解碼模塊,用于對(duì)收到的0組幀進(jìn)行解碼,以及將解碼得到的碼流信息發(fā)送給輸出模塊;Ii幀解碼模塊,用于讀取Ii幀背景區(qū)域的標(biāo)記,根據(jù)前一組幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定所述Ii幀背景區(qū)域所對(duì)應(yīng)的碼流信息,以及對(duì)Ii幀中的前景區(qū)域進(jìn)行解碼,還用于將解碼得到的碼流信息發(fā)送給輸出模塊;Pi幀解碼模塊,用于讀取Pi幀背景區(qū)域的標(biāo)記,根據(jù)當(dāng)前組幀中的Ii幀的背景區(qū)域所對(duì)應(yīng)的標(biāo)記及碼流信息,確定所述Pi幀背景區(qū)域所對(duì)應(yīng)的碼流信息,以及對(duì)Pi幀中的前景區(qū)域進(jìn)行解碼,還用于將解碼得到的碼流信息發(fā)送給輸出模塊;輸出模塊,用于輸出解碼得到的碼流;其中,i>0。
18.根據(jù)權(quán)利要求17所述的一種視頻解碼裝置,其特征在于,所述裝置進(jìn)一步包括判斷模塊、Ii幀恢復(fù)模塊和Pi幀恢復(fù)模塊,其中,判斷模塊,用于在確定i>0的組幀中的Ii幀和Pi幀收到時(shí),將所述Ii幀發(fā)送到Ii幀解碼模塊,將所述Pi幀發(fā)送到Pi幀解碼模塊,還用于在確定Ii幀未收到時(shí),通知Ii幀恢復(fù)模塊恢復(fù)所述Ii幀,以及用于在確定Pi幀未收到時(shí),通知Pi幀恢復(fù)模塊恢復(fù)所述Pi幀;Ii幀恢復(fù)模塊,用于利用丟失的Ii幀之前的組幀以及所述Ii幀之后的Pi幀確定該Ii幀的可恢復(fù)背景區(qū)域并對(duì)其進(jìn)行恢復(fù)處理,以及根據(jù)所述Ii幀前后的P幀恢復(fù)出該Ii幀的其余區(qū)域,還用于將所恢復(fù)的碼流信息發(fā)送給輸出模塊;Pi幀恢復(fù)模塊,用于利用丟失的Pi幀之后的Ii+1幀確定該P(yáng)i幀的可恢復(fù)背景區(qū)域并對(duì)其進(jìn)行恢復(fù)處理,以及根據(jù)該P(yáng)i幀之前和/或之后的幀恢復(fù)出該P(yáng)i幀的其余區(qū)域,還用于將所恢復(fù)的碼流信息發(fā)送給輸出模塊。
19.根據(jù)權(quán)利要求18所述的一種視頻解碼裝置,其特征在于,所述Ii幀恢復(fù)模塊,用于確定Ii幀之前的組幀的背景區(qū)域,讀取Pi幀的背景標(biāo)記,將其所對(duì)應(yīng)的區(qū)域作為i組幀的背景區(qū)域,將所述兩個(gè)背景區(qū)域的并集作為所述Ii幀的可恢復(fù)背景區(qū)域;還用于在Ii幀前后的P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有運(yùn)動(dòng)矢量信息時(shí),根據(jù)所述運(yùn)動(dòng)矢量信息確定所述Ii幀在所述待恢復(fù)區(qū)域的運(yùn)動(dòng)矢量信息,以及以所述Ii幀之前的Pi-1幀作為參考幀恢復(fù)出所述待恢復(fù)區(qū)域;以及用于在Ii幀前后的P幀在待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有幀內(nèi)編碼信息時(shí),根據(jù)所述幀內(nèi)編碼信息恢復(fù)Ii幀中的所述待恢復(fù)區(qū)域。
20.根據(jù)權(quán)利要求18所述的一種視頻解碼裝置,其特征在于,所述Pi幀解碼模塊,用于將所述Ii+1幀的背景區(qū)域作為該P(yáng)i幀的可恢復(fù)背景區(qū)域;以及用于在i組幀中包括1個(gè)P幀,且Ii幀在Pi幀的待恢復(fù)區(qū)域有背景標(biāo)記時(shí),根據(jù)所述背景標(biāo)記恢復(fù)出所述待恢復(fù)區(qū)域,以及在確定Ii幀在Pi幀的待恢復(fù)區(qū)域有幀內(nèi)編碼信息時(shí),利用所述Ii幀及Ii+1幀插值恢復(fù)出所述待恢復(fù)區(qū)域;還用于在i組幀中包括兩個(gè)或兩個(gè)以上P幀,且i組幀中靠近所述Pi幀的其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有運(yùn)動(dòng)矢量信息時(shí),利用所述運(yùn)動(dòng)矢量信息,以所述Pi幀之前的幀作為參考幀恢復(fù)出所述待恢復(fù)區(qū)域,以及在所述其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有幀內(nèi)編碼信息時(shí),根據(jù)Ii幀和所述其他P幀插值恢復(fù)出所述待恢復(fù)區(qū)域,以及在所述其他P幀在Pi幀的待恢復(fù)區(qū)域的對(duì)應(yīng)區(qū)域有背景標(biāo)記時(shí),根據(jù)所述背景標(biāo)記對(duì)應(yīng)的背景信息恢復(fù)出所述待恢復(fù)區(qū)域。
全文摘要
本發(fā)明公開(kāi)了一種視頻編碼方法,該方法設(shè)置視頻編碼結(jié)構(gòu)包括多個(gè)組幀,每個(gè)組幀中包括一個(gè)I幀,該I幀之后至少包括一個(gè)P幀,之后根據(jù)預(yù)設(shè)的視頻編碼結(jié)構(gòu)確定讀取到的幀的類型,對(duì)i>0的I
文檔編號(hào)H04N7/32GK101072344SQ20071007379
公開(kāi)日2007年11月14日 申請(qǐng)日期2007年3月30日 優(yōu)先權(quán)日2007年3月30日
發(fā)明者呂靜, 李世平 申請(qǐng)人:騰訊科技(深圳)有限公司