一種圖像編碼方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖像處理領(lǐng)域,尤其涉及一種圖像編碼方法及裝置。
【背景技術(shù)】
[0002]在新一代視頻壓縮標(biāo)準(zhǔn)HEVC(High Efficiency Video Coding)中,圖像幀按照編碼器設(shè)置的最大編碼單元IXU(Largest Coding Unit,最大編碼單元)的尺寸進(jìn)行劃分并以此為單位進(jìn)行編碼處理。IXU的尺寸最大可為:64x64。為了給每一個(gè)LCU確定出一個(gè)合適的編碼模式,編碼過程中將對(duì)IXU向下劃分成不同層級(jí)的⑶(Coding Unit,編碼單元),⑶尺寸范圍為:1XU尺寸?8x8 ;其中⑶ο對(duì)應(yīng)為IXU,CUn對(duì)應(yīng)為8x8 ;通過對(duì)不同層級(jí)的⑶進(jìn)行預(yù)編碼而預(yù)測(cè)出LCU最適合的編碼模式。
[0003]現(xiàn)有技術(shù)中米用了CABAC(Context_adaptivebinary arithmetic coding,基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼)方法來(lái)進(jìn)行模式預(yù)測(cè)和編碼。CABAC存在數(shù)據(jù)依賴性,具體為:對(duì)于任意尺寸的CU,均包含相同的句法元素(變換、預(yù)測(cè)、殘差等相關(guān)的句法元素),所有句法元素均以CU為單位進(jìn)行編碼,在代價(jià)計(jì)算過程中,每個(gè)句法元素均基于前面相應(yīng)句法元素的概率狀態(tài)進(jìn)行壓縮,每個(gè)句法元素的編碼都需要基于前一個(gè)相應(yīng)的句法元素基礎(chǔ)上進(jìn)行,因此每個(gè)⑶的編碼過程均需在其前一個(gè)⑶的基礎(chǔ)上進(jìn)行,CU之間不能同時(shí)并行處理,同時(shí)⑶內(nèi)部的各個(gè)對(duì)應(yīng)的句法元素也無(wú)法并行處理。
[0004]由于現(xiàn)有技術(shù)中CABAC的數(shù)據(jù)依賴特性,在計(jì)算代價(jià)的過程中,每個(gè)CU的編碼過程均需要在對(duì)前一個(gè)CU編碼完成的基礎(chǔ)上進(jìn)行,因此會(huì)影響并行化處理,導(dǎo)致吞吐量瓶頸,無(wú)法滿足日益增長(zhǎng)的吞吐量需求。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種圖像編碼方法及裝置,用以提高圖像編碼的并行化處理能力。
[0006]本發(fā)明實(shí)施例提供一種圖像編碼方法,該方法包括:
[0007]按照以若干個(gè)編碼塊為一組的規(guī)則,將待處理圖像幀中的全部編碼塊進(jìn)行分組;
[0008]對(duì)于第一組內(nèi)的各個(gè)編碼塊,分別對(duì)組內(nèi)的每個(gè)編碼塊執(zhí)行如下操作:確定與各句法元素相對(duì)應(yīng)的上下文,計(jì)算出各句法元素所對(duì)應(yīng)的上下文在相同的第一概率狀態(tài)下的比特開銷;利用計(jì)算出的比特開銷,計(jì)算不同的預(yù)測(cè)模式下的代價(jià),將最小的代價(jià)所對(duì)應(yīng)的預(yù)測(cè)模式作為該編碼塊的預(yù)測(cè)模式;第一概率狀態(tài)為預(yù)設(shè)的初始概率狀態(tài);并利用確定出的預(yù)測(cè)模式進(jìn)行基于上下文的自適應(yīng)二進(jìn)制算術(shù)CABAC編碼處理;
[0009]對(duì)于除第一組編碼塊以外的其余組編碼塊,分別對(duì)組內(nèi)的每個(gè)編碼塊執(zhí)行如下操作:確定與各句法元素相對(duì)應(yīng)的上下文,計(jì)算出各句法元素所對(duì)應(yīng)的各上下文在相同的第二概率狀態(tài)下的比特開銷;利用計(jì)算出的比特開銷,計(jì)算不同的預(yù)測(cè)模式下的代價(jià),將最小的代價(jià)所對(duì)應(yīng)的預(yù)測(cè)模式作為該編碼塊的預(yù)測(cè)模式;第二概率狀態(tài)為前一組編碼塊進(jìn)行CABAC編碼處理后所更新的概率狀態(tài);并利用確定出的預(yù)測(cè)模式進(jìn)行CABAC編碼處理;
[0010]其中,句法元素用于表征該句法元素所屬于的編碼塊的圖像信息。
[0011]本發(fā)明實(shí)施例還提供一種圖像編碼裝置,該裝置包括:
[0012]分組模塊,用于按照以若干個(gè)編碼塊為一組的規(guī)則,將待處理圖像幀中的全部編碼塊進(jìn)行分組;
[0013]選擇模塊,用于對(duì)于第一組內(nèi)的各個(gè)編碼塊,分別對(duì)組內(nèi)的每個(gè)編碼塊執(zhí)行如下操作:確定與各句法元素相對(duì)應(yīng)的上下文,計(jì)算出各句法元素所對(duì)應(yīng)的上下文在相同的第一概率狀態(tài)下的比特開銷;利用計(jì)算出的比特開銷,計(jì)算不同的預(yù)測(cè)模式下的代價(jià),將最小的代價(jià)所對(duì)應(yīng)的預(yù)測(cè)模式作為該編碼塊的預(yù)測(cè)模式;第一概率狀態(tài)為預(yù)設(shè)的初始概率狀態(tài);對(duì)于除第一組編碼塊以外的其余組編碼塊,分別對(duì)組內(nèi)的每個(gè)編碼塊執(zhí)行如下操作:確定與各句法元素相對(duì)應(yīng)的上下文,計(jì)算出各句法元素所對(duì)應(yīng)的各上下文在相同的第二概率狀態(tài)下的比特開銷;利用計(jì)算出的比特開銷,計(jì)算不同的預(yù)測(cè)模式下的代價(jià),將最小的代價(jià)所對(duì)應(yīng)的預(yù)測(cè)模式作為該編碼塊的預(yù)測(cè)模式;第二概率狀態(tài)為前一組編碼塊進(jìn)行基于上下文的自適應(yīng)二進(jìn)制算術(shù)CABAC編碼處理后所更新的概率狀態(tài);
[0014]編碼模塊,用于利用確定出的預(yù)測(cè)模式進(jìn)行CABAC編碼處理;
[0015]其中,句法元素用于表征該句法元素所屬于的編碼塊的圖像信息。
[0016]從上述技術(shù)方案可以看出,本發(fā)明實(shí)施例可以針對(duì)基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼CABAC過程中的預(yù)測(cè)模式的選擇過程進(jìn)行優(yōu)化,能夠在不修改現(xiàn)有CABAC過程的前提下,實(shí)現(xiàn)CABAC的并行化處理。首先,可以將待處理的全部編碼塊劃分為多組;然后,以每個(gè)組為單位,對(duì)組內(nèi)的各編碼塊進(jìn)行預(yù)測(cè)模式的選擇,對(duì)于第一組內(nèi)的各個(gè)編碼塊,分別對(duì)組內(nèi)的每個(gè)編碼塊執(zhí)行如下操作:確定與各句法元素相對(duì)應(yīng)的上下文,計(jì)算出各句法元素所對(duì)應(yīng)的上下文在相同的第一概率狀態(tài)下的比特開銷;利用計(jì)算出的比特開銷,計(jì)算不同的預(yù)測(cè)模式下的代價(jià),將最小的代價(jià)所對(duì)應(yīng)的預(yù)測(cè)模式作為該編碼塊的預(yù)測(cè)模式;其中所述第一概率狀態(tài)為預(yù)設(shè)的初始概率狀態(tài);以此類推,分別選擇該組內(nèi)的全部編碼塊的預(yù)測(cè)模式;同樣的,對(duì)于其余組內(nèi)的全部編碼塊,確定與各句法元素相對(duì)應(yīng)的上下文,計(jì)算出各句法元素所對(duì)應(yīng)的各上下文在相同的第二概率狀態(tài)下的比特開銷;利用計(jì)算出的比特開銷,計(jì)算不同的預(yù)測(cè)模式下的代價(jià),將最小的代價(jià)所對(duì)應(yīng)的預(yù)測(cè)模式作為該編碼塊的預(yù)測(cè)模式;所述第二概率狀態(tài)為前一組編碼塊進(jìn)行CABAC編碼處理后所更新的概率狀態(tài);以此類推,分別確定該組內(nèi)的全部編碼塊的預(yù)測(cè)模式;這樣,可以在不同顆粒度下進(jìn)行概率統(tǒng)計(jì),從而去除了組間的數(shù)據(jù)依賴,進(jìn)而簡(jiǎn)化了 CABAC中的預(yù)測(cè)模式的選擇過程,提高了 CABAC的吞吐量。
【附圖說明】
[0017]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1為本發(fā)明實(shí)施例提供的一種面向CABAC的圖像編碼方法的流程示意圖;
[0019]圖2(a)為本發(fā)明實(shí)施例中的以兩個(gè)LCU為一組進(jìn)行處理的流程示意圖;
[0020]圖2(b)為本發(fā)明實(shí)施例中的以一個(gè)32x32尺寸的⑶為一組進(jìn)行處理的流程示意圖;
[0021]圖2(c)為本發(fā)明實(shí)施例中的以四個(gè)16x16尺寸的⑶為一組進(jìn)行處理的流程示意圖;
[0022]圖2(d)為本發(fā)明實(shí)施例中的以一個(gè)16x16尺寸的⑶為一組進(jìn)行處理的流程示意圖;
[0023]圖3為本發(fā)明實(shí)施例中的一種編碼器進(jìn)行圖像幀編碼的流程示意圖;
[0024]圖4為本發(fā)明實(shí)施例提供的一種圖像編碼裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0025]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0026]本發(fā)明實(shí)施例的整體設(shè)計(jì)原理包括:
[0027]第一,在預(yù)測(cè)模式選擇過程中,基于不同的顆粒度(LCU級(jí)或CU級(jí))進(jìn)行分組后執(zhí)行CABAC概率狀態(tài)統(tǒng)計(jì),獲得比特開銷,其中,組間的各編碼塊串行處理,組內(nèi)的各編碼塊并行處理;
[0028]第二,對(duì)CABAC過程中的各句法元素的上下文選擇過程進(jìn)行簡(jiǎn)化;
[0029]第三,僅對(duì)預(yù)測(cè)模式選擇過程中的CABAC過程進(jìn)行簡(jiǎn)化,不改變CABAC編碼過程,從而保證了解碼端能夠按照現(xiàn)有的解碼方法進(jìn)行解碼。
[0030]基于上述第一?第三,本發(fā)明實(shí)施例可以基于不同的顆粒度(IXU級(jí)或⑶級(jí))進(jìn)行CABAC概率狀態(tài)統(tǒng)計(jì),實(shí)現(xiàn)CABAC過程的并行處理;同時(shí),通過簡(jiǎn)化CABAC過程中各句法元素的上下文選擇過程,提高并行過程中的吞吐量,進(jìn)一步加快預(yù)測(cè)模式選擇過程。本發(fā)明實(shí)施例可以應(yīng)用于各種編碼器端,同時(shí)不需要對(duì)解碼過程進(jìn)行任何修改,與現(xiàn)有技術(shù)相比,顯著提高了圖像編碼效率。
[0031]下面對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。
[0032]為了描述方便,在本發(fā)明實(shí)施例中,以編碼塊作為L(zhǎng)CU和CU的統(tǒng)稱。當(dāng)編碼塊為L(zhǎng)CU的情況下,此時(shí)顆粒度為L(zhǎng)CU,即以N個(gè)LCU為一組進(jìn)行預(yù)測(cè)模式的選擇,從而將CABAC概率的更新周期擴(kuò)大為每N個(gè)LCU更新一次。當(dāng)編碼塊為CU的情況下,此時(shí)顆粒度為CU,即以M個(gè)CU為一組進(jìn)行預(yù)測(cè)模式的選擇,從而將CABAC概率的更新周期擴(kuò)大為每M個(gè)更新一次。這樣,本發(fā)明實(shí)施例可以實(shí)現(xiàn)CABAC過程的并行化處理。其中,N和M均可以為大于或等于I的正整數(shù)。
[0033]本發(fā)明實(shí)施例提供一種圖像編碼方法,圖1示出了本發(fā)明實(shí)施例提供的一種面向CABAC的圖像編碼方法的流程示意圖,如圖1所示,包括:
[0034]步驟100:按照以若干個(gè)編碼塊為一組的規(guī)則,將待處理圖像幀中的全部編碼塊進(jìn)行分組。
[0035]步驟101:對(duì)于第一組內(nèi)的各個(gè)編碼塊,分別對(duì)組內(nèi)的每個(gè)編碼塊執(zhí)行如下操作:確定與各句法元素相對(duì)應(yīng)的上下文,計(jì)算出各句法元素所對(duì)應(yīng)的上下文在相同的第一概率狀態(tài)下的比特開銷;利用計(jì)算出的比特開銷,計(jì)算不同的預(yù)測(cè)模式下的代價(jià),將最小的代價(jià)所對(duì)應(yīng)的預(yù)測(cè)模式作為該編碼塊的預(yù)測(cè)模式;第一概率狀態(tài)為預(yù)設(shè)的初始概率狀態(tài);并利用確定出的預(yù)測(cè)模式進(jìn)行CABAC編碼處理。
[0036]步驟102:對(duì)于除第一組編碼塊以外的其余組編碼塊,分別對(duì)組內(nèi)的每個(gè)編碼塊執(zhí)行如下操作:確定與各句法元素相對(duì)應(yīng)的上下文,計(jì)算出各句法元素所對(duì)應(yīng)的各上下文在相同的第二概率狀態(tài)下的比特開銷;利用計(jì)算出的比特開銷,計(jì)算不同的預(yù)測(cè)模式下的代價(jià),將最小的代價(jià)所對(duì)應(yīng)的預(yù)測(cè)模式作為該編碼塊的預(yù)測(cè)模式;第二概率狀態(tài)為前一組編碼塊進(jìn)行CABAC編碼處理后所更新的概率狀態(tài);并利用確定出的預(yù)測(cè)模式進(jìn)行CABAC編碼處理;
[0037]其中,