本發(fā)明涉及視頻編解碼技術(shù),尤其涉及一種視頻解碼方法及裝置。
背景技術(shù):
在視頻壓縮編碼技術(shù)的發(fā)展過程中,基于塊的混合視頻編碼框架日趨成熟,得到了普遍的應(yīng)用并成為主流的視頻編碼框架。
編碼塊是基于塊的混合視頻編碼框架中信息存儲的基本單位,保存了圖像上的若干個最小子塊所組成的圖像區(qū)域的解碼信息。視頻的解碼過程就是從被壓縮的視頻文件中,解碼出這些編碼塊的信息,然后根據(jù)這些信息重建編碼塊所在圖像區(qū)域的像素值。由于在解碼一個編碼塊時,需要參考相鄰編碼塊的已解碼信息,因此獲得編碼塊的解碼信息后,需要在該編碼塊中的各個最小子塊中保存解碼信息,供其后解碼的相鄰編碼塊參考。當(dāng)圖像中全部編碼塊解碼完成時,便獲得整幅圖像的像素值,然后由顯示設(shè)備顯示出來。
現(xiàn)有技術(shù)的不足之處在于,在視頻解碼的整個過程中,解碼占用的內(nèi)存空間較大,消耗的時間較多,解碼速度較慢。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種視頻解碼方法及裝置,用以解決現(xiàn)有技術(shù)中解碼過程占用的內(nèi)存空間較大以及消耗的時間過多的技術(shù)問題。
本發(fā)明提供一種視頻解碼方法,包括:
獲取當(dāng)前編碼塊的解碼信息;
在所述當(dāng)前編碼塊中保存所述解碼信息;
在所述當(dāng)前編碼塊中的每個最小子塊中保存指針信息,所述指針信息指向所述解碼信息。
進(jìn)一步地,在所述當(dāng)前編碼塊中的每個最小子塊中保存指針信息之前, 還包括:
確定待解碼視頻中各編碼塊的形狀信息和尺寸信息;
根據(jù)所述待解碼視頻中各編碼塊的形狀信息和尺寸信息,確定所述待解碼視頻的最小子塊的尺寸信息;
根據(jù)所述最小子塊的尺寸信息,將所述當(dāng)前編碼塊以最小子塊為單位進(jìn)行劃分。
進(jìn)一步地,所述獲取編碼塊的解碼信息,具體包括:
獲取所述當(dāng)前編碼塊對應(yīng)的待參考編碼塊的位置信息,所述待參考編碼塊為所述當(dāng)前編碼塊在獲取解碼信息時需要參考的編碼塊;
根據(jù)所述位置信息,查找所述待參考編碼塊中的最小子塊中保存的指針信息;
根據(jù)所述指針信息,查找所述待參考編碼塊的解碼信息;
根據(jù)所述待參考編碼塊的解碼信息,確定所述當(dāng)前編碼塊的解碼信息。
進(jìn)一步地,所述當(dāng)前編碼塊所在的圖像中包括n行m列最小子塊;
所述當(dāng)前編碼塊中包括h行w列最小子塊;
所述當(dāng)前編碼塊中左上角的最小子塊的序號為i。
進(jìn)一步地,根據(jù)所述位置信息,查找所述待參考編碼塊中的最小子塊中保存的指針信息,包括:
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的上方,則查找序號為i-m的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左側(cè),則查找序號為i-1的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右側(cè),則查找序號為i+w的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的下方,則查找序號為i+h*m的最小子塊中保存的指針信息。
進(jìn)一步地,根據(jù)所述位置信息,查找所述待參考編碼塊中的最小子塊中保存的指針信息,包括:
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左側(cè)上方,則查找序號為i-1的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左側(cè)下方,則查找序號為i+(h-1)*m-1的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右側(cè)上方,則查找序號為i+w的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右側(cè)下方,則查找序號為i+(h-1)*m+w的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的上方左側(cè),則查找序號為i-m的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的上方右側(cè),則查找序號為i-m+w-1的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的下方左側(cè),則查找序號為i+h*m的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的下方右側(cè),則查找序號為i+h*m+w-1的最小子塊中保存的指針信息。
進(jìn)一步地,根據(jù)所述位置信息,查找所述待參考編碼塊中的最小子塊中保存的指針信息,包括:
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左上角,則查找序號為i-m-1的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右上角,則查找序號為i-m+w的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左下角,則查找序號為i+h*m-1的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右下角,則查找序號為i+h*m+w的最小子塊中保存的指針信息。
本發(fā)明還提供一種視頻解碼裝置,包括:
獲取模塊,用于獲取當(dāng)前編碼塊的解碼信息;
解碼信息保存模塊,用于在所述當(dāng)前編碼塊中保存所述解碼信息;
指針信息保存模塊,用于在所述當(dāng)前編碼塊中的每個最小子塊中保存指針信息,所述指針信息指向所述解碼信息。
進(jìn)一步地,所述指針信息保存模塊,還用于:
在所述當(dāng)前編碼塊中的每個最小子塊中保存指針信息之前,確定待解碼視頻中各編碼塊的形狀信息和尺寸信息;
根據(jù)所述待解碼視頻中各編碼塊的形狀信息和尺寸信息,確定所述待解碼視頻的最小子塊的尺寸信息;
根據(jù)所述最小子塊的尺寸信息,將所述當(dāng)前編碼塊以最小子塊為單位進(jìn)行劃分。
進(jìn)一步地,所述獲取模塊,具體用于:
獲取所述當(dāng)前編碼塊對應(yīng)的待參考編碼塊的位置信息,所述待參考編碼塊為所述當(dāng)前編碼塊在獲取解碼信息時需要參考的編碼塊;
根據(jù)所述位置信息,查找所述待參考編碼塊中的最小子塊中保存的指針信息;
根據(jù)所述指針信息,查找所述待參考編碼塊的解碼信息;
根據(jù)所述待參考編碼塊的解碼信息,確定所述當(dāng)前編碼塊的解碼信息。
本發(fā)明提供的視頻解碼方法及裝置,通過獲取當(dāng)前編碼塊的解碼信息,在所述當(dāng)前編碼塊中保存所述解碼信息,并在所述當(dāng)前編碼塊中的每個最小子塊中保存指針信息,所述指針信息指向所述解碼信息,最小子塊中不再保存它所在編碼塊中的所有解碼信息,只保存指針信息,能夠有效節(jié)省解碼時的存儲空間和存儲時間,提高解碼速度,有助于實現(xiàn)高分辨率視頻的實時解碼,促進(jìn)高效視頻編碼標(biāo)準(zhǔn)的應(yīng)用與普及,高效視頻編碼標(biāo)準(zhǔn)可以在達(dá)到同等質(zhì)量的情況下節(jié)省大量的存儲空間,進(jìn)而節(jié)省網(wǎng)絡(luò)傳輸帶寬,提升用戶觀影體驗。
附圖說明
圖1為本發(fā)明實施例一提供的視頻解碼方法的流程圖;
圖2為本發(fā)明實施例一提供的視頻解碼方法中編碼塊與最小子塊的示意圖;
圖3為本發(fā)明實施例二提供的視頻解碼方法的流程圖;
圖4為本發(fā)明實施例二提供的視頻解碼方法中編碼塊之間的位置示意圖一;
圖5為本發(fā)明實施例二提供的視頻解碼方法中編碼塊之間的位置示意圖 二;
圖6為本發(fā)明實施例三提供的視頻解碼裝置的結(jié)構(gòu)框圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
實施例一
本發(fā)明實施例一提供一種視頻解碼方法。圖1為本發(fā)明實施例一提供的視頻解碼方法的流程圖。一個視頻文件可以包括多幀圖像,每一幀圖像又可以分割為多個編碼塊,對于每個編碼塊,都可以采用步驟101至步驟103來獲取并存儲所述編碼塊的解碼信息。下面進(jìn)行詳細(xì)說明。
如圖1所示,本實施例中的視頻解碼方法,可以包括:
步驟101、獲取當(dāng)前編碼塊的解碼信息。
具體地,在對當(dāng)前編碼塊進(jìn)行解碼時,可以按照編碼標(biāo)準(zhǔn)規(guī)定來獲取其解碼信息。所述編碼標(biāo)準(zhǔn)可以是現(xiàn)有技術(shù)中的任意一種編碼標(biāo)準(zhǔn),例如h.265/hevc編碼標(biāo)準(zhǔn)、avs2-p2編碼標(biāo)準(zhǔn)等,本實施例對此不作限制。
因為在對一個編碼塊解碼時,需要參考相鄰編碼塊的信息,因此,每解碼完一個編碼塊,都需要保存相應(yīng)的解碼信息,供后續(xù)的編碼塊解碼時參考。由于編碼塊可以視為若干個最小子塊組成的數(shù)據(jù)結(jié)構(gòu),所以通常以最小子塊為單位存儲解碼信息。
圖2為本發(fā)明實施例一提供的視頻解碼方法中編碼塊與最小子塊的示意圖。如圖2所示,粗實線框住的為一個編碼塊對應(yīng)的圖像區(qū)域,細(xì)實線框住的為一個最小子塊對應(yīng)的圖像區(qū)域,一個編碼塊可以包括一個或多個最小子塊,圖2示出的編碼塊中包括16個最小子塊,該編碼塊左側(cè)和下方的最小子塊可以屬于其它編碼塊。
編碼塊的形狀和尺寸是在對視頻進(jìn)行編碼的過程中確定的,在解碼時直接獲取即可。最小子塊的尺寸可以在解碼視頻時確定。例如,可以首先確定 待解碼視頻中各編碼塊的形狀信息和尺寸信息,根據(jù)所述待解碼視頻中各編碼塊的形狀信息和尺寸信息,確定所述待解碼視頻的最小子塊的尺寸信息。
具體地,可以在若干個能完美覆蓋視頻中所有編碼塊(完美覆蓋是指能夠完全覆蓋各編碼塊且不會重疊)的尺寸中,選取最大尺寸作為所述最小子塊的尺寸。也可以理解為,在所有編碼塊的尺寸中,取最大公約數(shù)作為所述最小子塊的尺寸,具體地,可以以所有編碼塊的長度值的最大公約數(shù)作為所述最小子塊的長度,以所有編碼塊的寬度值的最大公約數(shù)作為所述最小子塊的寬度。
例如,若所述視頻在解碼過程中存在三種編碼塊,尺寸分別為16x16、8x8、4x8、8x4,則可以以4x4作為最小子塊的尺寸。若所述視頻在解碼過程中存在兩種編碼塊,尺寸分別為16x16和16x12,則16x4作為最小子塊的尺寸。
或者,所述最小子塊的尺寸信息也可以通過其它方式獲取,本實施例中不作限制。
在確定最小子塊的尺寸信息后,可以將各編碼塊以最小子塊為單位進(jìn)行劃分。
現(xiàn)有技術(shù)中,在獲取當(dāng)前編碼塊的解碼信息后,可以在所述當(dāng)前編碼塊中的各個最小子塊中存儲所述當(dāng)前編碼塊的解碼信息,以供后續(xù)編碼塊參考。以圖2為例,粗黑線框出的編碼塊中包括16個最小子塊,每個最小子塊中都要存儲一份所述當(dāng)前編碼塊的解碼信息。
假設(shè)所述解碼信息所占的空間為8b,則在所述當(dāng)前編碼塊的16個最小子塊中存儲這些信息占用的總存儲空間為:8×16=128b。
假設(shè)存儲一次所述解碼信息需要的時間為4單位時間,則在所述當(dāng)前編碼塊的16個最小子塊中存儲這些信息所需的總存儲時間為:4×16=64單位時間。
相對于現(xiàn)有技術(shù),本實施例提供的視頻解碼方法可以有效減少保存解碼信息所用的存儲空間和存儲時間,下面通過步驟102和步驟103進(jìn)行詳細(xì)說明。
步驟102、在所述當(dāng)前編碼塊中保存所述解碼信息。
具體地,在所述當(dāng)前編碼塊中保存所述解碼信息,可以包括:為所述當(dāng) 前編碼塊開辟存儲空間,并將解碼信息存在其中。按照前述假設(shè),存儲所述解碼信息需要8b的存儲空間和4單位時間。
步驟103、在所述當(dāng)前編碼塊中的每個最小子塊中保存指針信息,所述指針信息指向所述解碼信息。
具體地,可以為每個最小子塊開辟存儲空間,并在其中保存所述指針信息。
如圖2所示,粗黑線框出的編碼塊中包含16個最小子塊,每個指針?biāo)璧拇鎯臻g為4b,記錄所述當(dāng)前編碼塊的解碼信息占用的總存儲空間為:4*16+8=72b,為簡化前的72/128=56.25%。
每個指針的存儲時間為1單位時間,記錄所述當(dāng)前編碼塊的解碼信息所需的總存儲時間為:1*16+4=20,為簡化前的20/64=31.25%。
由此可見,本實施例提供的視頻解碼方法相比于現(xiàn)有技術(shù),能夠顯著減小存儲空間和存儲時間,并且,編碼塊的尺寸越大時,其中存儲的信息越多,本實施例相比于現(xiàn)有技術(shù)的優(yōu)勢就越明顯,提升的解碼效率也更高。
本實施例提供的視頻解碼方法中,所述當(dāng)前編碼塊可以是pu(predictionunit,預(yù)測單元)編碼塊、pb(predictionblock,預(yù)測塊)編碼塊或者tb(transformblock,變換塊)編碼塊,或是其它類型的編碼塊。
pu編碼塊的解碼信息包括前向運(yùn)動矢量(fwdmv)信息和后向運(yùn)動矢量(bckmv)信息,fwdmv信息占用4b+4b,bckmv信息占用4b+4b,存儲fwdmv信息需要2單位時間,存儲bckmv信息需要2單位時間。pb編碼塊的解碼信息包括幀內(nèi)預(yù)測模式(intrapredmode)信息,intrapredmode信息占用4b的存儲空間和1單位時間的存儲時間。tb編碼塊的解碼信息包括非零系數(shù)標(biāo)志(nonzerocoeff)信息,nonzerocoeff信息占用4b的存儲空間和1單位時間的存儲時間。
在實際應(yīng)用過程中,對于視頻中的一幀圖像來說,可以基于編碼標(biāo)準(zhǔn)進(jìn)行劃分,最大的編碼塊為最大編碼單元,大小可設(shè)為64×64、32×32、16×16等;最大編碼單元可以以四叉樹的形式遞歸劃分出編碼單元,大小可為8×8、16×16、32×32、64×64等,但不超過最大編碼單元的大?。痪幋a單元可進(jìn)一步劃分出pu、pb、tb等編碼塊。當(dāng)對某一編碼塊進(jìn)行解碼時,可 以按照步驟101至步驟103提供的方法來保存當(dāng)前編碼塊的編碼信息,對于包含多個最小子塊的編碼塊,只需要存儲一份解碼信息即可,既可以節(jié)省存儲空間又可以減少存儲耗時。當(dāng)需要這些解碼信息時,通過最小子塊上的指針信息即可獲得。
下面通過實驗測試數(shù)據(jù)說明本發(fā)明實施例一相對于現(xiàn)有技術(shù)的優(yōu)勢。以avs2-p2編碼標(biāo)準(zhǔn)為例,本實施例中的方法與現(xiàn)有技術(shù)的對比如表1和表2所示。
表1本實施例與現(xiàn)有技術(shù)的解碼速度比較(單線程)
(i7-47903.60ghzx4,8gb,win8.1prox64)
表2本實施例與現(xiàn)有技術(shù)的內(nèi)存占用比較(單線程)
(i7-47903.60ghzx4,8gb,win8.1prox64)
通過上述測試數(shù)據(jù)可以看出,本實施例中的方法在單線程時與現(xiàn)有技術(shù)相比,內(nèi)存占用少50%以上,解碼速度達(dá)3倍左右。
本實施例提供的視頻解碼方法,通過獲取當(dāng)前編碼塊的解碼信息,在所述當(dāng)前編碼塊中保存所述解碼信息,并在所述當(dāng)前編碼塊中的每個最小子塊中保存指針信息,所述指針信息指向所述解碼信息,能夠有效節(jié)省解碼時的存儲空間和存儲時間,提高解碼速度,有助于實現(xiàn)高分辨率視頻的實時解碼,促進(jìn)高效視頻編碼標(biāo)準(zhǔn)的應(yīng)用與普及,高效視頻編碼標(biāo)準(zhǔn)可以在達(dá)到同等質(zhì)量的情況下節(jié)省大量的存儲空間,進(jìn)而節(jié)省網(wǎng)絡(luò)傳輸帶寬,提升用戶觀影體驗。
實施例二
本發(fā)明實施例二提供一種視頻解碼方法。本實施例是在實施例一提供的技術(shù)方案的基礎(chǔ)上,給出了參考周圍其它編碼塊獲取解碼信息的方法。圖3為本發(fā)明實施例二提供的視頻解碼方法的流程圖。如圖3所示,本實施例中的視頻解碼方法,可以包括:
步驟201、獲取當(dāng)前編碼塊對應(yīng)的待參考編碼塊的位置信息,所述待參考編碼塊為所述當(dāng)前編碼塊在獲取解碼信息時需要參考的編碼塊。
具體地,在解碼一個編碼塊時,獲取該編碼塊對應(yīng)的待參考編碼塊的位置信息屬于現(xiàn)有技術(shù),此處不再詳述。所述當(dāng)前編碼塊與所述待參考編碼塊之間的位置關(guān)系可以有如下幾種:所述待參考編碼塊在所述當(dāng)前編碼塊的上方、下方、左側(cè)、右側(cè),左上角、右上角、左下角、右下角、左側(cè)上方、左側(cè)下方、右側(cè)上方、右側(cè)下方、上方左側(cè)、上方右側(cè)、下方左側(cè)和下方右側(cè)。
圖4為本發(fā)明實施例二提供的視頻解碼方法中編碼塊之間的位置示意圖一。圖5為本發(fā)明實施例二提供的視頻解碼方法中編碼塊之間的位置示意圖二。
如圖4所示,數(shù)字11、12、13、14、16、17、18、19對應(yīng)的編碼塊分別位于數(shù)字15對應(yīng)的編碼塊的左上角、上方、右上角、左側(cè)、右側(cè)、左下角、下方、右下角。
如圖5所示,數(shù)字21、22、23、24、25、26、27、28對應(yīng)的編碼塊分別位于數(shù)字29對應(yīng)的編碼塊的上方左側(cè)、上方右側(cè)、左側(cè)上方、左側(cè)下方、右側(cè)上方、右側(cè)下方、下方左側(cè)和下方右側(cè)。
步驟202、根據(jù)所述位置信息,查找所述待參考編碼塊中的最小子塊中保存的指針信息。
所述位置信息只表明了所述待參考編碼塊與所述當(dāng)前編碼塊之間的位置關(guān)系,并沒有給出所述待參考編碼塊的形狀和尺寸。本實施例提供的方法,不需要知道所述待參考編碼塊的形狀和尺寸。
具體地,所述當(dāng)前編碼塊所在的圖像中可以包括n行m列最小子塊,所述當(dāng)前編碼塊中可以包括h行w列最小子塊,假設(shè)所述當(dāng)前編碼塊中左上角的最小子塊的序號為i,則可以采用下述方法確定所述待參考編碼塊中的最 小子塊中保存的信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的上方,則查找序號為i-m的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左側(cè),則查找序號為i-1的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右側(cè),則查找序號為i+w的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的下方,則查找序號為i+h*m的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左側(cè)上方,則查找序號為i-1的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左側(cè)下方,則查找序號為i+(h-1)*m-1的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右側(cè)上方,則查找序號為i+w的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右側(cè)下方,則查找序號為i+(h-1)*m+w的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的上方左側(cè),則查找序號為i-m的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的上方右側(cè),則查找序號為i-m+w-1的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的下方左側(cè),則查找序號為i+h*m的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的下方右側(cè),則查找序號為i+h*m+w-1的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左上角,則查找序號為i-m-1的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右上角,則查找序號為i-m+w的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左下角,則 查找序號為i+h*m-1的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右下角,則查找序號為i+h*m+w的最小子塊中保存的指針信息。
按照本步驟提供的上述方法,查找到的最小子塊的指針信息指向的一定是所述待參考編碼塊。
步驟203、根據(jù)所述指針信息,查找所述待參考編碼塊的解碼信息。
根據(jù)前文所述,每個編碼塊中的各個最小子塊中均保存了指向該編碼塊的指針信息。因此,只要根據(jù)步驟203查找到的最小子塊中保存的指針信息,就可以獲取所述待參考編碼塊中保存的解碼信息。
步驟204、根據(jù)所述待參考編碼塊的解碼信息,確定所述當(dāng)前編碼塊的解碼信息。
根據(jù)所述待參考編碼塊的解碼信息來確定當(dāng)前編碼塊的解碼信息屬于現(xiàn)有技術(shù),此處不再詳述。
步驟205、在所述當(dāng)前編碼塊中保存所述解碼信息。
步驟206、在所述當(dāng)前編碼塊中的每個最小子塊中保存指針信息,所述指針信息指向所述解碼信息。
其中,步驟205和步驟206與實施例一中的步驟102和步驟103類似,此處不再贅述。
本實施例提供的視頻解碼方法,通過獲取所述當(dāng)前編碼塊對應(yīng)的待參考編碼塊的位置信息,根據(jù)所述位置信息,查找所述待參考編碼塊中的最小子塊中保存的指針信息,根據(jù)所述指針信息,查找所述待參考編碼塊的解碼信息,并根據(jù)所述待參考編碼塊的解碼信息,確定所述當(dāng)前編碼塊的解碼信息,能夠在不知道待參考編碼塊的形狀和尺寸的情況下,快速得到所需的解碼信息,進(jìn)一步提高了解碼效率。
上述實施例中,步驟201至步驟204可以用來獲取當(dāng)前編碼塊的解碼信息。在某些情況下,也可以不通過步驟201至步驟204來獲取當(dāng)前編碼的解碼信息,例如,可能當(dāng)前編碼塊不需要參考其它編碼塊的解碼信息,直接利用某些規(guī)則確定自身的解碼信息即可。
實施例三
本發(fā)明實施例三提供一種視頻解碼裝置。圖6為本發(fā)明實施例三提供的 視頻解碼裝置的結(jié)構(gòu)框圖。如圖6所示,本實施例中的視頻解碼裝置,可以包括:
獲取模塊301,用于獲取當(dāng)前編碼塊的解碼信息;
解碼信息保存模塊302,用于在所述當(dāng)前編碼塊中保存所述解碼信息;
指針信息保存模塊303,用于在所述當(dāng)前編碼塊中的每個最小子塊中保存指針信息,所述指針信息指向所述解碼信息。
本實施例中的視頻解碼裝置,可以用于執(zhí)行實施例一所述的視頻解碼方法,其具體實現(xiàn)原理與實施例一類似,此處不再贅述。
本實施例提供的視頻解碼裝置,通過獲取當(dāng)前編碼塊的解碼信息,在所述當(dāng)前編碼塊中保存所述解碼信息,并在所述當(dāng)前編碼塊中的每個最小子塊中保存指針信息,所述指針信息指向所述解碼信息,能夠有效節(jié)省解碼時的存儲空間和存儲時間,提高解碼速度,有助于實現(xiàn)高分辨率視頻的實時解碼,促進(jìn)高效視頻編碼標(biāo)準(zhǔn)的應(yīng)用與普及,高效視頻編碼標(biāo)準(zhǔn)可以在達(dá)到同等質(zhì)量的情況下節(jié)省大量的存儲空間,進(jìn)而節(jié)省網(wǎng)絡(luò)傳輸帶寬,提升用戶觀影體驗。
在上述實施例提供的技術(shù)方案的基礎(chǔ)上,優(yōu)選的是,所述指針信息保存模塊303,還用于:
在所述當(dāng)前編碼塊中的每個最小子塊中保存指針信息之前,確定待解碼視頻中各編碼塊的形狀信息和尺寸信息;
根據(jù)所述待解碼視頻中各編碼塊的形狀信息和尺寸信息,確定所述待解碼視頻的最小子塊的尺寸信息;
根據(jù)所述最小子塊的尺寸信息,將所述當(dāng)前編碼塊以最小子塊為單位進(jìn)行劃分。
在上述實施例提供的技術(shù)方案的基礎(chǔ)上,優(yōu)選的是,所述獲取模塊301,具體用于:
獲取所述當(dāng)前編碼塊對應(yīng)的待參考編碼塊的位置信息,所述待參考編碼塊為所述當(dāng)前編碼塊在獲取解碼信息時需要參考的編碼塊;
根據(jù)所述位置信息,查找所述待參考編碼塊中的最小子塊中保存的指針信息;
根據(jù)所述指針信息,查找所述待參考編碼塊的解碼信息;
根據(jù)所述待參考編碼塊的解碼信息,確定所述當(dāng)前編碼塊的解碼信息。
在上述實施例提供的技術(shù)方案的基礎(chǔ)上,優(yōu)選的是,所述當(dāng)前編碼塊所在的圖像中包括n行m列最小子塊;
所述當(dāng)前編碼塊中包括h行w列最小子塊;
所述當(dāng)前編碼塊中左上角的最小子塊的序號為i。
在上述實施例提供的技術(shù)方案的基礎(chǔ)上,優(yōu)選的是,根據(jù)所述位置信息,查找所述待參考編碼塊中的最小子塊中保存的指針信息,包括:
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的上方,則查找序號為i-m的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左側(cè),則查找序號為i-1的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右側(cè),則查找序號為i+w的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的下方,則查找序號為i+h*m的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左側(cè)上方,則查找序號為i-1的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左側(cè)下方,則查找序號為i+(h-1)*m-1的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右側(cè)上方,則查找序號為i+w的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右側(cè)下方,則查找序號為i+(h-1)*m+w的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的上方左側(cè),則查找序號為i-m的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的上方右側(cè),則查找序號為i-m+w-1的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的下方左側(cè),則查找序號為i+h*m的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的下方右側(cè), 則查找序號為i+h*m+w-1的最小子塊中保存的指針信息。
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左上角,則查找序號為i-m-1的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右上角,則查找序號為i-m+w的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的左下角,則查找序號為i+h*m-1的最小子塊中保存的指針信息;
若所述位置信息為所述待參考編碼塊位于所述當(dāng)前編碼塊的右下角,則查找序號為i+h*m+w的最小子塊中保存的指針信息。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。