本發(fā)明涉及視頻編碼技術(shù)領(lǐng)域,尤其涉及一種視頻編碼方法及裝置。
背景技術(shù):
高效率視頻編碼(High Efficiency Video Coding,HEVC)是國(guó)際電信聯(lián)盟(International Telecommunication Union,ITU)制定的一項(xiàng)視頻壓縮標(biāo)準(zhǔn)。在使用HEVC標(biāo)準(zhǔn)的過(guò)程中需要遍歷各種編碼模式,通過(guò)對(duì)各編碼模式下編碼單元(Coding Unit,CU)尺寸、預(yù)測(cè)模式(Prediction Mode,PM)、預(yù)測(cè)單元(Prediction Unit,PU)劃分、變換單元(Transform Unit,TU)尺寸等進(jìn)行比較,選擇最優(yōu)的編碼模式。
在片上系統(tǒng)中,訪問(wèn)芯片外部存儲(chǔ)空間數(shù)據(jù)的代價(jià)是很大的。為了減少對(duì)芯片外部存儲(chǔ)空間數(shù)據(jù)的訪問(wèn)次數(shù),一般都會(huì)將芯片內(nèi)部的一些運(yùn)算結(jié)果保存下來(lái)。在做CU尺寸判決時(shí),不同CU尺寸的殘差系數(shù)都保存下來(lái),在判決完成后,將選中的CU尺寸對(duì)應(yīng)的殘差系數(shù)進(jìn)行保存。
在遍歷各種編碼模式并選擇最優(yōu)的編碼模式之后,對(duì)所選擇的最優(yōu)的編碼模式和殘差系數(shù)進(jìn)行熵編碼,然后將經(jīng)過(guò)熵編碼后的視頻碼流傳輸至解碼端。
在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下技術(shù)問(wèn)題:
在對(duì)所選擇的最優(yōu)的編碼模式和殘差系數(shù)進(jìn)行熵編碼之前,需要將各種編碼模式下的編碼方式和殘差系數(shù)的完整信息都保存下來(lái),占用了大量的存儲(chǔ)空間。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供的視頻編碼方法及裝置,能夠減少存儲(chǔ)空間的占用。
一方面,本發(fā)明提供一種視頻編碼方法,包括:
獲取各編碼模式下編碼參數(shù)的二值化結(jié)果;
對(duì)所述各編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行存儲(chǔ);
從所述各編碼模式中選擇最優(yōu)的編碼模式;
使用所選擇的最優(yōu)的編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行熵編碼。
另一方面,本發(fā)明提供一種視頻編碼裝置,包括:
第一獲取單元,用于獲取各編碼模式下編碼參數(shù)的二值化結(jié)果;
存儲(chǔ)單元,用于對(duì)所述各編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行存儲(chǔ);
選擇單元,用于從所述各編碼模式中選擇最優(yōu)的編碼模式;
編碼單元,用于使用所選擇的最優(yōu)的編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行熵編碼。
本發(fā)明提供的視頻編碼方法及裝置,獲取各編碼模式下編碼參數(shù)的二值化結(jié)果并進(jìn)行存儲(chǔ),在從各編碼模式中選擇出最優(yōu)的編碼模式之后,使用所選擇的最優(yōu)的編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行熵編碼。與現(xiàn)有技術(shù)相比,本發(fā)明僅需要保存各編碼模式下編碼參數(shù)的二值化結(jié)果,而不需要將各編碼模式下的編碼參數(shù)的完整信息都保存下來(lái),由于保存編碼參數(shù)的二值化結(jié)果需要的存儲(chǔ)空間,比保存編碼參數(shù)的完整信息所需要的存儲(chǔ)空間要小很多,因此可以減少存儲(chǔ)空間的占用。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明實(shí)施例1提供的視頻編碼方法的流程圖;
圖2為本發(fā)明實(shí)施例2提供的視頻編碼方法的流程圖;
圖3為本發(fā)明實(shí)施例2中CU尺寸判決的流程圖;
圖4為本發(fā)明實(shí)施例3提供的一種視頻編碼裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例3提供的另一種視頻編碼裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例1
本發(fā)明實(shí)施例提供一種視頻編碼方法,如圖1所示,所述視頻編碼方法包括:
S11、獲取各編碼模式下編碼參數(shù)的二值化結(jié)果;
S12、對(duì)所述各編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行存儲(chǔ);
S13、從所述各編碼模式中選擇最優(yōu)的編碼模式;
S14、使用所選擇的最優(yōu)的編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行熵編碼。
由于熵編碼是要對(duì)二進(jìn)制數(shù)值進(jìn)行編碼,因此,要先對(duì)進(jìn)行編碼的參數(shù)進(jìn)行二值化處理,得到二進(jìn)制數(shù)值,然后再進(jìn)行熵編碼。
本發(fā)明實(shí)施例提供的視頻編碼方法,獲取各編碼模式下編碼參數(shù)的二值化結(jié)果并進(jìn)行存儲(chǔ),在從各編碼模式中選擇出最優(yōu)的編碼模式之后,使用所選擇的最優(yōu)的編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行熵編碼。與現(xiàn)有技術(shù)相比,本發(fā)明僅需要保存各編碼模式下編碼參數(shù)的二值化結(jié)果,而不需要將各編碼模式下的編碼參數(shù)的完整信息都保存下來(lái),由于保存編碼參數(shù)的二值化結(jié)果需要的 存儲(chǔ)空間,比保存編碼參數(shù)的完整信息所需要的存儲(chǔ)空間要小很多,因此可以減少存儲(chǔ)空間的占用。
實(shí)施例2
本發(fā)明實(shí)施例提供一種視頻編碼方法,如圖2所示,所述視頻編碼方法包括:
S21、獲取各編碼模式下編碼參數(shù)的碼流代價(jià)和失真程度。
其中,在獲取各編碼模式下編碼參數(shù)的碼流代價(jià)的過(guò)程中,對(duì)各編碼模式下的編碼參數(shù)進(jìn)行二值化,得到二值化結(jié)果。
S22、獲取上述步驟S21中在獲取各編碼模式下編碼參數(shù)的碼流代價(jià)的過(guò)程得到的所述二值化結(jié)果。
S23、對(duì)所述各編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行存儲(chǔ)。
S24、根據(jù)所述各編碼模式下編碼參數(shù)的碼流代價(jià)和失真程度,選擇最優(yōu)的編碼模式。
S25、使用所選擇的最優(yōu)的編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行熵編碼。
在本實(shí)施例中,所述編碼參數(shù)包括編碼方式和殘差系數(shù),但不僅限于此。
其中,所述編碼方式包括編碼單元尺寸、預(yù)測(cè)模式、預(yù)測(cè)單元?jiǎng)澐?、變換單元尺寸等,但不僅限于此;
所述殘差系數(shù)為編碼預(yù)測(cè)值與編碼原像素值的差值,經(jīng)過(guò)DCT變換、量化后的系數(shù)。
如圖3所示,下面以由三種CU尺寸:8×8、16×16、32×32的CU中選擇最優(yōu)的CU尺寸為例,對(duì)所述視頻編碼方式進(jìn)行說(shuō)明。
首先,對(duì)于尺寸為8×8的CU,判斷選擇采用幀內(nèi)預(yù)測(cè)或是幀間預(yù)測(cè);
然后進(jìn)行變換量化,獲取4個(gè)8×8的CU重構(gòu)形成的16×16的CU相對(duì)于 一個(gè)原始的16×16的CU的失真程度(distortion),以及8×8的CU的碼流代價(jià)(bit_cost),其中,失真程度可以采用sum of absolute difference來(lái)表達(dá),碼流代價(jià)是指編碼同一個(gè)CU/PU/TU所用的碼流的長(zhǎng)度;
在獲取8×8的CU的碼流代價(jià)的過(guò)程中,對(duì)8×8的CU的編碼單元尺寸進(jìn)行二值化,得到二值化結(jié)果bin-stream并保存;
接著,根據(jù)所獲得的碼流代價(jià)和失真程度,計(jì)算8×8的CU的代價(jià)(cost8);
具體地,可以采用如下公式計(jì)算CU的代價(jià):
cost=distortion+lambda*bit_cost。
其中,lambda是一個(gè)與量化參數(shù)(quantization parameter)有關(guān)的值,用量化參數(shù)的值(范圍是0~51)查對(duì)應(yīng)的表格可以得到lambda的值。
類似地,對(duì)于尺寸為16×16的CU,重復(fù)執(zhí)行上述步驟,得到16×16的CU的編碼單元尺寸的二值化結(jié)果,以及16×16的CU的代價(jià)(cost16),并將16×16的CU的編碼單元尺寸的二值化結(jié)果進(jìn)行保存;
將cost8與cost16進(jìn)行比較,選擇最優(yōu)的CU,確定選擇后的最優(yōu)的CU的編碼單元尺寸的二值化結(jié)果bin-stream;
類似地,對(duì)于尺寸為32×32的CU,重復(fù)執(zhí)行上述步驟,得到32×32的CU的編碼單元尺寸的二值化結(jié)果,以及32×32的CU的代價(jià)(cost32),并將32×32的CU的編碼單元尺寸的二值化結(jié)果進(jìn)行保存;
將cost32與上述選擇的最優(yōu)CU的cost進(jìn)行比較,進(jìn)一步選擇最優(yōu)的CU,確定進(jìn)一步選擇后的最優(yōu)的CU的編碼單元尺寸的二值化結(jié)果bin-stream;
最后,使用進(jìn)一步選擇后的最優(yōu)的CU的編碼單元尺寸的二值化結(jié)果bin-stream進(jìn)行熵編碼。
由于在進(jìn)行熵編碼之前,僅保存了8×8的CU的編碼單元尺寸的二值化結(jié) 果,而保存8×8的CU的編碼單元尺寸的二值化結(jié)果所占用的存儲(chǔ)空間,相比保存編碼單元尺寸的完整信息所需要的存儲(chǔ)空間要小很多,因此可以減少存儲(chǔ)空間的占用。
實(shí)施例3
本實(shí)施例提供一種視頻編碼裝置,如圖4所示,所述視頻編碼裝置包括:
第一獲取單元11,用于獲取各編碼模式下編碼參數(shù)的二值化結(jié)果;
存儲(chǔ)單元12,用于對(duì)所述各編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行存儲(chǔ);
選擇單元13,用于從所述各編碼模式中選擇最優(yōu)的編碼模式;
編碼單元14,用于使用所選擇的最優(yōu)的編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行熵編碼。
本發(fā)明提供的視頻編碼裝置,獲取各編碼模式下編碼參數(shù)的二值化結(jié)果并進(jìn)行存儲(chǔ),在從各編碼模式中選擇出最優(yōu)的編碼模式之后,使用所選擇的最優(yōu)的編碼模式下編碼參數(shù)的二值化結(jié)果進(jìn)行熵編碼。與現(xiàn)有技術(shù)相比,本發(fā)明僅需要保存各編碼模式下編碼參數(shù)的二值化結(jié)果,而不需要將各編碼模式下的編碼參數(shù)的完整信息都保存下來(lái),由于保存編碼參數(shù)的二值化結(jié)果需要的存儲(chǔ)空間,比保存編碼參數(shù)的完整信息所需要的存儲(chǔ)空間要小很多,因此可以減少存儲(chǔ)空間的占用。
進(jìn)一步地,如圖5所示,所述視頻編碼裝置還可以包括:
第二獲取單元15,用于獲取各編碼模式下編碼參數(shù)的碼流代價(jià)和失真程度;
則所述選擇單元13,用于根據(jù)所述第二獲取單元15獲取的各編碼模式下編碼參數(shù)的碼流代價(jià)和失真程度,選擇最優(yōu)的編碼模式。
進(jìn)一步地,所述第二獲取單元15,用于在獲取各編碼模式下編碼參數(shù)的碼流代價(jià)的過(guò)程中,對(duì)各編碼模式下的編碼參數(shù)進(jìn)行二值化,得到二值化結(jié)果;
所述第一獲取單元11,用于獲取所述第二獲取單元15在獲取各編碼模式下編碼參數(shù)的碼流代價(jià)的過(guò)程得到的所述二值化結(jié)果。
在本實(shí)施例中,所述編碼參數(shù)包括編碼方式和殘差系數(shù),但不僅限于此。
其中,所述編碼方式包括編碼單元尺寸、預(yù)測(cè)模式、預(yù)測(cè)單元?jiǎng)澐?、變換單元尺寸等,但不僅限于此;
所述殘差系數(shù)為編碼預(yù)測(cè)值與編碼原像素值的差值,經(jīng)過(guò)DCT變換、量化后的系數(shù)。
本發(fā)明實(shí)施例視頻編碼方法及裝置,可以適用于在HEVC下進(jìn)行視頻編碼,但不僅限于此。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。
以上所述,僅為本發(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)。