編碼和解碼圖像的方法、編碼和解碼裝置、以及與其對(duì)應(yīng)的計(jì)算機(jī)程序的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般涉及處理圖像的領(lǐng)域,并更精確地,涉及編碼和解碼數(shù)字圖像以及數(shù)字圖像的序列。
[0002]本發(fā)明由此可特別應(yīng)用到當(dāng)前視頻編碼器(MPEG、H.264等)或?qū)硪曨l編碼器ITU-T/VCEG(HEVC)或 ISO/MPEG(HVC)中執(zhí)行的視頻編碼。
【背景技術(shù)】
[0003]文獻(xiàn)“Jointcollaborative team on video coding (JCT-VC) of ITU-TSG16WP3and ISO/IEC JTC1/SC29/WG11 10th Meeting:Stockholm, SE, ll_20July, 2012” 中描述的HEVC標(biāo)準(zhǔn)在其可利用視頻序列的框圖表示的方面與先前標(biāo)準(zhǔn)H.264類似。
[0004]如同H.264標(biāo)準(zhǔn)中那樣,上述HEVC標(biāo)準(zhǔn)利用基于屬于同一圖像的(“幀內(nèi)”預(yù)測(cè))或?qū)儆谝呀獯a的序列的一個(gè)或多個(gè)先前圖像的(“幀間”預(yù)測(cè))其他像素、對(duì)于當(dāng)前圖像的像素預(yù)測(cè)。這樣的先前圖像傳統(tǒng)上被稱為“參考”圖像,并且它們被存儲(chǔ)在編碼器和解碼器兩者的存儲(chǔ)器中。幀間預(yù)測(cè)被統(tǒng)稱為“移動(dòng)補(bǔ)償”預(yù)測(cè)。
[0005]為此目的,圖像被分離為宏塊,宏塊然后被子劃分為自己由像素組成的塊。每一塊或宏塊通過圖像之內(nèi)或圖像之間的預(yù)測(cè)來編碼。
[0006]傳統(tǒng)上,在預(yù)測(cè)當(dāng)前塊、傳遞預(yù)測(cè)塊、和與當(dāng)前塊和預(yù)測(cè)塊之間的差對(duì)應(yīng)的預(yù)測(cè)殘差的幫助下,執(zhí)行當(dāng)前塊的編碼。也被稱為殘差塊的該預(yù)測(cè)殘差被傳送到解碼器,解碼器然后通過向預(yù)測(cè)添加殘差塊來重構(gòu)當(dāng)前塊。
[0007]在已重構(gòu)的信息的幫助下,建立當(dāng)前塊的預(yù)測(cè)。利用幀間預(yù)測(cè),這樣的信息具體包括至少一個(gè)預(yù)測(cè)塊,即,已先前編碼并然后解碼的參考圖像的塊。這樣的預(yù)測(cè)塊由以下規(guī)定:
[0008].其屬于的參考圖像;和
[0009].描述當(dāng)前塊和預(yù)測(cè)塊之間的移動(dòng)的運(yùn)動(dòng)向量。
[0010]然后例如通過使用離散余弦變換(DCT)類型的變換,來變換得到的殘差塊。變換的殘差塊的系數(shù)然后被量化,并然后使用熵編碼來編碼。
[0011]逐圖像地執(zhí)行解碼,并且對(duì)于每一圖像,逐塊地或逐宏塊地執(zhí)行解碼。對(duì)于每一(宏)塊,讀取流的對(duì)應(yīng)元素。然后向與(宏)塊關(guān)聯(lián)的(多個(gè))殘差塊的系數(shù)施加逆量化和逆變換。其后,計(jì)算(宏)塊的預(yù)測(cè),并通過向解碼的(多個(gè))殘差塊添加預(yù)測(cè),來重構(gòu)(宏)塊。
[0012]在該壓縮技術(shù)中,所變換、量化、并然后編碼的殘差塊被傳送到解碼器,以便使得其能夠重構(gòu)(多個(gè))解碼的圖像。
[0013]在幀間預(yù)測(cè)期間,能發(fā)生的是,用于編碼或解碼當(dāng)前圖像所使用的參考圖像在紋理或渲染移動(dòng)方面不與當(dāng)前圖像非常相似。當(dāng)前圖像的幀間預(yù)測(cè)的精度然后具有差質(zhì)量,并且使得對(duì)當(dāng)前圖像進(jìn)行幀間編碼的性能降級(jí)。
【發(fā)明內(nèi)容】
[0014]本發(fā)明的目的之一是彌補(bǔ)上述現(xiàn)有技術(shù)的缺陷。
[0015]為此,本發(fā)明提供了一種用于編碼至少一個(gè)當(dāng)前圖像的方法。這樣的編碼方法的特征在于該方法包括以下步驟:
[0016].確定預(yù)定函數(shù)的至少一個(gè)參數(shù),這樣的函數(shù)適于將先前解碼的參考圖像的集合的第一子集變換為所述參考圖像的集合的圖像的第二子集的近似;
[0017].向所述參考圖像的集合的第三子集應(yīng)用具有所確定的參數(shù)的上面指定的函數(shù),所述第三子集不同于所述第一子集,由此獲得先前解碼的參考圖像的另一集合;和
[0018].根據(jù)所得到的參考圖像的集合來編碼該當(dāng)前圖像。
[0019]這樣的規(guī)定具有以下優(yōu)點(diǎn),根據(jù)比編碼時(shí)可用并且用于編碼當(dāng)前圖像所傳統(tǒng)上使用的參考圖像更類似于當(dāng)前圖像的、一個(gè)或多個(gè)參考圖像,來編碼當(dāng)前圖像。這導(dǎo)致預(yù)測(cè)當(dāng)前圖像中的移動(dòng)的更好精度、并由此導(dǎo)致更精細(xì)的圖像的幀間編碼。
[0020]在特定實(shí)現(xiàn)中,通過使得所述參考圖像的第二子集的近似和所述參考圖像的第二子集之間的預(yù)定相似度標(biāo)準(zhǔn)最大化,來執(zhí)行所述確定至少一個(gè)參數(shù)的步驟。
[0021]這樣的規(guī)定使得可能優(yōu)化壓縮當(dāng)前圖像時(shí)的性能,因?yàn)橛纱耸沟毛@得的參數(shù)最適于按照盡可能精確的方式來預(yù)測(cè)將來圖像。
[0022]在另一特定實(shí)現(xiàn)中,所述參考圖像的第三子集包括在時(shí)間上與該當(dāng)前圖像最接近的一個(gè)或多個(gè)參考圖像。
[0023]這樣的規(guī)定使得可能向在紋理和移動(dòng)方面具有和當(dāng)前圖像最可能相似的最大概率的參考圖像應(yīng)用參數(shù)函數(shù)。這造成優(yōu)化當(dāng)前圖像的預(yù)測(cè)的精度以及壓縮當(dāng)前圖像的較好性能。
[0024]在另一特定實(shí)現(xiàn)中,使用除了所確定的參數(shù)之外的參數(shù),來執(zhí)行應(yīng)用上面規(guī)定的函數(shù)的步驟,所述另一參數(shù)根據(jù)確定的參數(shù)預(yù)先計(jì)算。
[0025]這樣的規(guī)定可能使得預(yù)定函數(shù)的(多個(gè))參數(shù)適應(yīng)至少在緊靠當(dāng)前圖像之前的參考圖像和用于編碼的當(dāng)前圖像之間存在的時(shí)間偏移,從而在應(yīng)用所述函數(shù)之后獲得的參考圖像的另一集合包括在紋理和移動(dòng)方面具有較好質(zhì)量、并且在時(shí)間上與用于編碼的當(dāng)前圖像較好對(duì)應(yīng)的至少一個(gè)參考圖像。
[0026]本發(fā)明還提供了一種用于通過執(zhí)行上面規(guī)定的編碼方法來編碼至少一個(gè)當(dāng)前圖像的編碼器裝置。
[0027]這樣的編碼器裝置的特征在于該裝置包括:
[0028].用于確定預(yù)定函數(shù)的至少一個(gè)參數(shù)的部件,所述函數(shù)適于將先前解碼的參考圖像的集合的第一子集變換為所述參考圖像的集合的圖像的第二子集的近似;
[0029].用于向所述參考圖像的集合的第三子集應(yīng)用具有所確定的參數(shù)的上面規(guī)定的函數(shù)的部件,所述第三子集不同于所述第一子集,以便獲得先前解碼的參考圖像的另一集合;和
[0030].用于根據(jù)所得到的參考圖像的集合來編碼該當(dāng)前圖像的部件。
[0031]本發(fā)明還提供一種用于解碼所編碼的當(dāng)前圖像的方法。
[0032]這樣的解碼方法的特征在于該方法包括以下步驟:
[0033].確定預(yù)定函數(shù)的至少一個(gè)參數(shù),上面規(guī)定的函數(shù)適于將先前解碼的參考圖像的集合的第一子集變換為所述參考圖像的集合的圖像的第二子集的近似;
[0034].向所述參考圖像的集合的第三子集應(yīng)用具有所確定的參數(shù)的上面規(guī)定的函數(shù),所述第三子集不同于所述第一子集,由此獲得先前解碼的參考圖像的另一集合;和
[0035].根據(jù)所得到的參考圖像的集合來解碼該當(dāng)前圖像。
[0036]按照與編碼類似的方式,這樣的規(guī)定具有以下優(yōu)點(diǎn),S卩,根據(jù)比解碼時(shí)可用并且傳統(tǒng)上用來解碼當(dāng)前圖像的參考圖像更類似于當(dāng)前圖像的一個(gè)或多個(gè)參考圖像,來解碼當(dāng)前圖像。這導(dǎo)致用于解碼的當(dāng)前圖像中的移動(dòng)的預(yù)測(cè)的較好精度。由此發(fā)現(xiàn)當(dāng)前圖像的重構(gòu)具有較好質(zhì)量。
[0037]在特定實(shí)現(xiàn)中,通過使得所述參考圖像的第二子集的近似和所述參考圖像的第二子集之間的預(yù)定相似度標(biāo)準(zhǔn)最大化,來執(zhí)行所述確定至少一個(gè)參數(shù)的步驟。
[0038]在另一特定實(shí)現(xiàn)中,所述參考圖像的第三子集包括在時(shí)間上與該當(dāng)前圖像最接近的一個(gè)或多個(gè)參考圖像。
[0039]在另一特定實(shí)現(xiàn)中,使用除了所確定的參數(shù)之外的參數(shù),來執(zhí)行所述應(yīng)用上面規(guī)定的函數(shù)的步驟,所述另一參數(shù)根據(jù)所確定的參數(shù)預(yù)先計(jì)算。
[0040]本發(fā)明還提供了一種用于解碼至少一個(gè)當(dāng)前圖像并且用于執(zhí)行上面規(guī)定的解碼方法的裝置。
[0041]這樣的解碼器裝置的特征在于該裝置包括:
[0042].用于確定預(yù)定函數(shù)的至少一個(gè)參數(shù)的部件,上面規(guī)定的函數(shù)適于將先前解碼的參考圖像的集合的第一子集變換為所述參考圖像的集合的圖像的第二子集的近似;
[0043].用于向所述參考圖像的集合的第三子集應(yīng)用具有所確定的參數(shù)的上面規(guī)定的函數(shù)的部件,所述第三子集不同于所述第一子集,以便獲得先前解碼的參考圖像的另一集合;和
[0044].用于根據(jù)所得到的參考圖像的集合來解碼該當(dāng)前圖像的部件。
[0045]本發(fā)明還提供了一種計(jì)算機(jī)程序,包括當(dāng)在計(jì)算機(jī)上運(yùn)行時(shí)、用于執(zhí)行本發(fā)明的編碼方法或解碼方法的指令。
[0046]該程序可使用任何編程語言,并且可具有源代碼、目標(biāo)代碼、或源代碼和目標(biāo)代碼之間的中間代碼(諸如部分編譯的形式或任何其他期望的形式)的形式。
[0047]本發(fā)明還提供了一種承載計(jì)算機(jī)程序的計(jì)算機(jī)可讀數(shù)據(jù)介質(zhì),該程序包括適于執(zhí)行上述本發(fā)明的編碼或解碼方法的指令。
[0048]該數(shù)據(jù)介質(zhì)可以是能夠存儲(chǔ)該程序的任何實(shí)體或裝置。例如,該介質(zhì)可包括諸如只讀存儲(chǔ)器(ROM)的存儲(chǔ)部件,例如致密盤(CD) ROM或微電子電路ROM,或者事實(shí)上其可包括磁記錄部件,例如硬盤或通用串行總線USB)密鑰。
[0049]此外,該數(shù)據(jù)介質(zhì)可以是適于經(jīng)由電纜或光纜、通過無線電、或通過其他部件傳遞的諸如電或光信號(hào)的可傳送介質(zhì)。本發(fā)明的程序可