專利名稱:編碼方法以及裝置、解碼方法以及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種編碼方法以及裝置、解碼方法以及裝置。
背景技術(shù):
在現(xiàn)有視頻圖像編碼過程中,編碼端需要對(duì)原始圖像塊數(shù)據(jù)或預(yù)測(cè)后的圖像塊差值數(shù)據(jù)進(jìn)行空間變換,并對(duì)變換系數(shù)進(jìn)行量化操作,再對(duì)量化后的系數(shù)進(jìn)行熵編碼。解碼端則對(duì)熵解碼得到的系數(shù)進(jìn)行反量化操作,重建得到變換系數(shù),再進(jìn)行反變換操作得到原始圖像塊數(shù)據(jù)或圖像塊差值數(shù)據(jù)。為在解碼端進(jìn)行反量化操作,解碼端需獲取編碼端量化過程中所采用的量化步長(QStep)。因此,編碼端需要將所采用的Qstep信息寫入碼流中。由于不同的Qstep可以使 用不同的量化參數(shù)(QP,Quantization Parameter)來表示,所以編碼端可以對(duì)QP進(jìn)行編碼,并傳輸?shù)浇獯a端。高效視頻編碼測(cè)試模型(HM,Highefficiency video coding test Model)中將圖像劃分為等大小的最大編碼單元(IXU, Largest Coding Unit),每個(gè)IXU中可以包括一個(gè)或多個(gè)大小不固定的CU?,F(xiàn)有技術(shù)中的一種圖像編碼方法中,允許具有獨(dú)立的QP的最小圖像是IXU,也就是說,每個(gè)IXU對(duì)應(yīng)一個(gè)QP。編碼端在進(jìn)行編碼時(shí),QP相關(guān)信息在圖像參數(shù)集(PPS, Picture Parameter Set)
中的描述為
pic_parameter_set_rbsp() { pic_init_qp_minus26 /* relative to 26 */
}在條帶頭(SH,Slice Header)中的描述為
slice—header() {
slice—qp_delta
}在IXU中的描述為coding—tree( xO, yO, log2CUSize ) {
if( !skip—flag[ xO ][ yO ]) lcuqpdelta
}編碼端按照上述的方式完成編碼后,將編碼后的數(shù)據(jù)發(fā)送至解碼端,解碼端對(duì)每一個(gè)IXU,采用如下方式計(jì)算當(dāng)前IXU的量化參數(shù)QPmi QPlcu = lcu_qp_delta+slice_qp_delta+pic_init_qp_minus26+260解碼端得到當(dāng)前IXU的QPwu后,即可進(jìn)行解碼。從上述現(xiàn)有技術(shù)的方案中可以看出 現(xiàn)有技術(shù)中,每個(gè)IXU對(duì)應(yīng)一個(gè)QP,編碼端在通過調(diào)整QP以進(jìn)行碼率控制時(shí),只能以LCU為最精細(xì)粒度進(jìn)行控制,由于在實(shí)際應(yīng)用中LCU往往會(huì)設(shè)置的比較大,例如64像素*64像素(為簡便描述,后續(xù)簡稱為64*64,其他數(shù)據(jù)類似),所以現(xiàn)有技術(shù)的方案影響了碼率控制的精度?,F(xiàn)有技術(shù)中另外一種圖像編碼方法中,在各LCU的每個(gè)CU中都攜帶有該CU的qp_delta信息,從而可以提高碼率控制的精度。但是,在該現(xiàn)有技術(shù)中,由于最小的⑶可以設(shè)置為8*8,若在每個(gè)⑶中都攜帶該CU的qp_delta信息,則會(huì)增加大量的編碼開銷,從而影響圖像編碼的整體壓縮效率。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種編碼方法及裝置、解碼方法及裝置以及編解碼系統(tǒng),能夠有效提高碼率控制精度以及壓縮效率。本發(fā)明實(shí)施例提供的編碼方法,包括編碼端獲取待編碼數(shù)據(jù),所述待編碼數(shù)據(jù)至少為一個(gè)最大編碼單元LCU ;編碼端按照預(yù)置的碼率控制算法確定所述LCU的量化深度參數(shù),并將所述量化深度參數(shù)寫入所述待編碼數(shù)據(jù),所述量化深度參數(shù)用于表示所述LCU中具有獨(dú)立QP的最小圖像塊尺寸;編碼端根據(jù)所述最小圖像塊尺寸與所述LCU中包含的各⑶的尺寸確定各⑶的QP ;編碼端根據(jù)所述各⑶的QP以及各⑶的QP預(yù)測(cè)值計(jì)算各⑶的QP差;對(duì)于每一個(gè)滿足預(yù)置條件的CU,編碼端在該CU中攜帶該CU的QP差;編碼端對(duì)所述量化深度參數(shù)、滿足預(yù)置條件的CU的QP差、以及各CU進(jìn)行編碼得到碼流。本發(fā)明實(shí)施例提供的解碼方法,包括解碼端對(duì)接收到的碼流進(jìn)行解析得到量化深度參數(shù),所述量化深度參數(shù)用于表示LCU中具有獨(dú)立QP的最小圖像塊尺寸;解碼端按照所述最小圖像塊尺寸與所述LCU中包含的各CU的尺寸計(jì)算各CU的QP預(yù)測(cè)值;對(duì)于每一個(gè)滿足預(yù)置條件的CU,解碼端從碼流中解析得到其QP差;解碼端根據(jù)所述各CU的QP預(yù)測(cè)值以及解析得到的QP差計(jì)算各CU的QP ;解碼端按照所述各CU的QP對(duì)各CU進(jìn)行解碼。本發(fā)明實(shí)施例提供的編碼裝置,包括數(shù)據(jù)獲取單元,用于獲取待編碼數(shù)據(jù),所述待編碼數(shù)據(jù)至少為一個(gè)最大編碼單元LCU;深度參數(shù)處理單元,用于按照預(yù)置的碼率控制算法確定所述LCU的量化深度參數(shù),并將所述量化深度參數(shù)寫入所述數(shù)據(jù)獲取單元獲取到的待編碼數(shù)據(jù),所述量化深度參數(shù)用于表示所述LCU中具有獨(dú)立QP的最小圖像塊尺寸;量化參數(shù)確定單元,用于根據(jù)所述最小圖像塊尺寸與所述LCU中包含的各CU的尺寸確定各CU的QP ;計(jì)算單元,用于根據(jù)所述量化參數(shù)確定單元確定的各CU的QP以及各CU的QP預(yù)測(cè)值計(jì)算各CU的QP差;填充單元,用于對(duì)于每一個(gè)滿足預(yù)置條件的CU,在該CU中攜帶該CU的QP差;編碼單元,用于對(duì)所述量化深度參數(shù)、滿足預(yù)置條件的CU的QP差、以及各CU進(jìn)行編碼得到碼流。本發(fā)明實(shí)施例提供的解碼裝置,包括第一解析單元,用于對(duì)接收到的碼流進(jìn)行解析得到量化深度參數(shù),所述量化深度參數(shù)用于表示LCU中具有獨(dú)立QP的最小圖像塊尺寸;參數(shù)預(yù)測(cè)單元,用于按照所述最小圖像塊尺寸與所述LCU中包含的各CU的尺寸計(jì)算各CU的QP預(yù)測(cè)值;第二解析單元,用于對(duì)每一個(gè)滿足預(yù)置條件的CU,從碼流中解析得到其QP差;參數(shù)計(jì)算單元,用于根據(jù)所述參數(shù)預(yù)測(cè)單元獲得的各CU的QP預(yù)測(cè)值以及所述第二解析單元解析得到的QP差計(jì)算各⑶的QP ;解碼單元,用于按照所述參數(shù)計(jì)算單元計(jì)算得到的各⑶的QP對(duì)各⑶進(jìn)行解碼。 從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn)本發(fā)明實(shí)施例中,編碼端在編碼時(shí)可以在待編碼數(shù)據(jù)中寫入用于表示具有獨(dú)立QP的最小圖像塊尺寸的量化深度參數(shù),并且對(duì)每一個(gè)滿足預(yù)置條件的CU中,都攜帶該CU的QP差,使得每個(gè)LCU不僅僅再對(duì)應(yīng)一個(gè)QP,而由LCU中滿足預(yù)置條件的CU對(duì)應(yīng)QP,所以編碼端能夠以CU為最精細(xì)粒度進(jìn)行碼率控制,由于一個(gè)LCU中往往包含多個(gè)CU,因此能夠有效提高LCU的碼率控制精度;此外,編碼端僅在滿足預(yù)置條件的CU中才攜帶該CU的QP差,而并不會(huì)在所有的⑶中都攜帶QP差,所以可以減少編碼開銷,從而有效提高整體壓縮效率。
圖I為本發(fā)明編碼方法一個(gè)實(shí)施例示意圖;圖2為本發(fā)明解碼方法一個(gè)實(shí)施例示意圖;圖3為本發(fā)明編解碼方法一個(gè)實(shí)施例示意圖;圖4為本發(fā)明⑶與鄰近⑶之間的位置關(guān)系示意圖;圖5為本發(fā)明IXU結(jié)構(gòu)示意圖;圖6為本發(fā)明編碼后的一種碼流結(jié)構(gòu)示意圖;圖7為本發(fā)明編解碼方法另一實(shí)施例示意圖;圖8為本發(fā)明編碼后的另一碼流結(jié)構(gòu)示意圖;圖9為本發(fā)明編碼裝置一個(gè)實(shí)施例示意圖;圖10為本發(fā)明編碼裝置另一實(shí)施例示意圖;圖11為本發(fā)明編碼裝置另一實(shí)施例示意圖;圖12為本發(fā)明解碼裝置一個(gè)實(shí)施例示意圖;圖13為本發(fā)明解碼裝置另一實(shí)施例示意圖;圖14為本發(fā)明解碼裝置另一實(shí)施例示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供了一種編碼方法以及裝置、解碼方法以及裝置,能夠有效提高碼率控制精度以及壓縮效率。請(qǐng)參閱圖1,本發(fā)明實(shí)施例中編碼方法一個(gè)實(shí)施例包括101、編碼端獲取待編碼數(shù)據(jù);本實(shí)施例中,編碼端可以獲取到待編碼數(shù)據(jù),該待編碼數(shù)據(jù)至少為一個(gè)LCU,即該待編碼數(shù)據(jù)可以為一個(gè)IXU,也可以為多個(gè)IXU組成的數(shù)據(jù)。102、編碼端按照預(yù)置的碼率控制算法確定LCU的量化深度參數(shù),并將量化深度參數(shù)寫入待編碼數(shù)據(jù);編碼端根據(jù)預(yù)置的碼率控制算法獲取LCU的量化深度參數(shù),該量化深度參數(shù)用于表示IXU中具有獨(dú)立QP的最小圖像塊尺寸。 需要說明的是,本實(shí)施例以及后續(xù)實(shí)施例中所描述的尺寸是指邊長,例如某CU為32*32,則定義其尺寸為32。編碼端可以采用嘗試替代的方式獲取LCU的量化深度參數(shù),即不斷調(diào)整量化深度參數(shù)的數(shù)值并進(jìn)行模擬編碼,使得編碼后的碼率符合預(yù)期的要求,具體過程此處不作限定。當(dāng)編碼端確定了量化深度參數(shù)之后,可以將該量化深度參數(shù)寫入待編碼數(shù)據(jù)中以準(zhǔn)備發(fā)送至解碼端。103、編碼端根據(jù)最小圖像塊尺寸與IXU中包含的各⑶的尺寸確定各⑶的QP ;當(dāng)編碼端獲取到LCU的量化深度參數(shù)之后,可以獲知該量化深度參數(shù)所對(duì)應(yīng)的具有獨(dú)立QP的最小圖像塊尺寸,并根據(jù)最小圖像塊尺寸與IXU中包含的各⑶的尺寸確定各CU 的 QP。104、編碼端根據(jù)各⑶的QP以及各⑶的QP預(yù)測(cè)值計(jì)算各⑶的QP差;本實(shí)施例中,編碼端可以根據(jù)步驟103中得到的各⑶的QP計(jì)算得到各⑶的QP預(yù)測(cè)值,再根據(jù)該QP預(yù)測(cè)值,結(jié)合QP,計(jì)算得到各CU的QP差。本實(shí)施例中,某CU的QP差可以定義為該CU的QP與該CU的QP預(yù)測(cè)值之間的差值。105、對(duì)于每一個(gè)滿足預(yù)置條件的⑶,編碼端在該⑶中攜帶該⑶的QP差;當(dāng)編碼端確定了各⑶的QP差之后,可以從各⑶中選取滿足預(yù)置條件的⑶,并且在這些滿足預(yù)置條件的⑶中攜帶其QP差。106、編碼端對(duì)量化深度參數(shù)、滿足預(yù)置條件的⑶的QP差、以及各⑶進(jìn)行編碼得到碼流。本實(shí)施例中,編碼端將量化深度參數(shù)寫入待編碼數(shù)據(jù),且將QP差寫入滿足預(yù)置條件的⑶之后,則可以對(duì)整個(gè)待編碼數(shù)據(jù)進(jìn)行編碼,即對(duì)量化深度參數(shù)、滿足預(yù)置條件的⑶的QP差、以及各CU進(jìn)行編碼,從而得到碼流。本實(shí)施例中,編碼端在編碼時(shí)可以在待編碼數(shù)據(jù)中寫入用于表示具有獨(dú)立QP的最小圖像塊尺寸的量化深度參數(shù),并且對(duì)每一個(gè)滿足預(yù)置條件的CU中,都攜帶該CU的QP差,使得每個(gè)LCU不僅僅再對(duì)應(yīng)一個(gè)QP,而由LCU中滿足預(yù)置條件的CU對(duì)應(yīng)QP,所以編碼端能夠以CU為最精細(xì)粒度進(jìn)行碼率控制,由于一個(gè)LCU中往往包含多個(gè)CU,因此能夠有效提高LCU的碼率控制精度;此外,編碼端僅在滿足預(yù)置條件的CU中才攜帶該CU的QP差,而并不會(huì)在所有的⑶中都攜帶QP差,所以可以減少編碼開銷,從而有效提高整體壓縮效率。上面從編碼端的角度描述了本發(fā)明編碼的過程,下面從解碼端的角度描述本發(fā)明解碼的過程,請(qǐng)參閱圖2,本發(fā)明解碼方法一個(gè)實(shí)施例包括201、解碼端對(duì)接收到的碼流進(jìn)行解析得到量化深度參數(shù);本實(shí)施例中,解碼端可以從編碼端接收到經(jīng)過編碼的碼流,由于編碼端在編碼時(shí),在待編碼數(shù)據(jù)中寫入了量化深度參數(shù),所以解碼端可以按照預(yù)先的約定從碼流相應(yīng)的位置解析出該量化深度參數(shù)。該量化深度參數(shù)用于表示IXU中具有獨(dú)立QP的最小圖像塊尺寸。202、解碼端按照最小圖像塊尺寸與IXU中包含的各⑶的尺寸計(jì)算各⑶的QP預(yù)測(cè)值;
本實(shí)施例中,解碼端從碼流中解析得到量化深度參數(shù)之后,可以根據(jù)該量化深度參數(shù)獲知具有獨(dú)立QP的最小圖像塊尺寸,并且根據(jù)該最小圖像塊尺寸與LCU中包含的各CU的尺寸計(jì)算得到各CU的QP預(yù)測(cè)值。203、對(duì)于每一個(gè)滿足預(yù)置條件的⑶,解碼端從碼流中解析得到其QP差;本實(shí)施例中,解碼端還可以對(duì)每一個(gè)滿足預(yù)置條件的⑶,從碼流中解析得到該⑶的QP差。需要說明的是,解碼端得到QP差的過程與解碼端計(jì)算各CU的QP預(yù)測(cè)值的過程并無先后順序的限制,可以先執(zhí)行得到QP差的過程,也可以先執(zhí)行計(jì)算各CU的QP預(yù)測(cè)值的過程,或者還可以同時(shí)執(zhí)行兩個(gè)過程,具體此處不作限定。204、解碼端根據(jù)各⑶的QP預(yù)測(cè)值以及解析得到的QP差計(jì)算各⑶的QP ;解碼端通過步驟202獲知了各⑶的QP預(yù)測(cè)值以及步驟203解析得到QP差之后,可以根據(jù)這些參數(shù)計(jì)算各CU的QP。205、解碼端按照各⑶的QP對(duì)各⑶進(jìn)行解碼。本實(shí)施例中,當(dāng)解碼端獲知各⑶的QP之后,則可以對(duì)各⑶進(jìn)行反量化處理以及后續(xù)的解碼過程,具體此處不作限定。本實(shí)施例中,編碼端在編碼時(shí)可以在待編碼數(shù)據(jù)中寫入用于表示具有獨(dú)立QP的最小圖像塊尺寸的量化深度參數(shù),并且對(duì)每一個(gè)滿足預(yù)置條件的CU中,都攜帶該CU的QP差,使得每個(gè)LCU不僅僅再對(duì)應(yīng)一個(gè)QP,所以在解碼端進(jìn)行解碼時(shí)可以針對(duì)各CU進(jìn)行解碼,而無需針對(duì)一整個(gè)LCU進(jìn)行解碼,從而能夠提高解碼效率。為便于理解,下面從編解碼的角度進(jìn)行描述,請(qǐng)參閱圖3,本發(fā)明編解碼方法一個(gè)實(shí)施例包括301、編碼端獲取待編碼的序列、圖像或條帶;本實(shí)施例中,編碼端獲取到的待編碼數(shù)據(jù)為序列或圖像或條帶,需要說明的是,一個(gè)序列中包含若干個(gè)圖像,一個(gè)圖像中包含若干個(gè)條帶,一個(gè)條帶中包含若干個(gè)LCU。也就是說,本實(shí)施例中,編碼端獲取到的待編碼數(shù)據(jù)為多個(gè)LCU。302、編碼端按照預(yù)置的碼率控制算法確定IXU的量化深度參數(shù)lcu_qp_cbpth ;編碼端根據(jù)預(yù)置的碼率控制算法獲取對(duì)應(yīng)的lcU_qp_cbpth的數(shù)值,具體的,編碼端可以采用嘗試替代的方式獲取lcu_cip_depth的數(shù)值,即不斷調(diào)整lcu_cip_depth的數(shù)值并進(jìn)行模擬編碼,使得編碼后的碼率符合預(yù)期的要求,具體過程此處不作限定。
本實(shí)施例中的lcu_cip_depth的取值范圍可以取O至MaxSymbol內(nèi)的所有整數(shù),其中,MaxSymbol可以通過如下方式計(jì)算MaxSymbol = Iog2 (max_coding_block_size)-Iog2 (min_coding_block_size);其中,max_coding_block_size表不最大的 CU 的尺寸,即 LCU 的尺寸,min_coding_block_size表示最小的⑶的尺寸。需要說明的是,本實(shí)施例以及后續(xù)實(shí)施例中所描述的尺寸是指邊長,例如某CU為32*32,則定義其尺寸為32。本實(shí)施例中,該lcu_qp_depth用于表示IXU中具有獨(dú)立QP的最小圖像塊尺寸,當(dāng)lcu_qp_depth為O時(shí),表不具有獨(dú)立QP的最小圖像塊即為LQJ,當(dāng)lcu_cip_depth為I時(shí),表示將IXU劃分為4個(gè)32*32的⑶,最小圖像塊尺寸為32,以此類推。 本實(shí)施例中的lcu_qp_depth是指序列、圖像或條帶中的每一個(gè)IXU的具有獨(dú)立QP的最小圖像塊尺寸,也就是說,該序列、圖像或條帶中的所有LCU均使用相同的lcu_qp_depth。303、編碼端將lcU_qp_cbpth寫入序列參數(shù)集、圖像參數(shù)集或條帶頭信息;本實(shí)施例中,編碼端在獲取到lcu_cip_depth的數(shù)值之后,可以將該lcu_cip_depth寫入待編碼數(shù)據(jù)編碼端可以將lcu_qp_depth寫入該序列的序列參數(shù)集(SPS, Sequence ParameterSet),具體可以如下所示
seq_parameter_set_rb sp() { leu—qp—depth
}或者,編碼端可以將lcu_qp_cbpth寫入該圖像的PPS,具體可以如下所示
Pic_parameter_set_rbsp() {
Icuqpdepth
}或者,編碼端可以將lcU_qp_cbpth寫入該條帶的條帶頭信息,具體可以如下所
示slice—header() {leu—qp—depth
}可以理解的是,本實(shí)施例中僅以幾個(gè)例子說明了 lcu_qp_depth的寫入位置,在實(shí)際應(yīng)用中,該lcu_qp_cbpth還可以寫入序列、圖像或條帶的其他位置,具體此處不作限定。304、編碼端計(jì)算包含獨(dú)立QP的最小圖像塊尺寸QPBlkSize ;編碼端獲取到lcu_cip_depth之后,可以根據(jù)該lcu_cip_depth計(jì)算最小圖像塊QPBlk 的尺寸 QPBlkSize。假設(shè)IXU大小為max_coding_block_size,則QPBlkSize可以通過如下的方式計(jì)算得到 QPBlkSize = max_coding_block_size/ (2lcu-qp-depth)。例如,當(dāng)max_coding_block_size 為 64, lcu_qp_depth 為 2 時(shí),則 QPBlkSize 為16,即最小圖像塊為16*16的⑶。305、編碼端根據(jù)QPBlkSize、CU的尺寸獲取各CU的QP ;本實(shí)施例中,編碼端可以分以下幾種情況獲取各CU的QP 對(duì)于尺寸大于或等于QPBlkSize的⑶,編碼端按照預(yù)置的碼率控制算法計(jì)算該⑶的QP ;對(duì)于尺寸小于QPBlkSize的⑶,編碼端首先確定該⑶所屬的最小圖像塊,然后按照預(yù)置的碼率控制算法計(jì)算該最小圖像塊的QP,并將該最小圖像塊的QP作為該最小圖像塊中所有⑶的QP。本實(shí)施例中,編碼端按照預(yù)置的碼率控制算法計(jì)算QP的過程為本領(lǐng)域技術(shù)人員的公知常識(shí),具體此處不作限定。306、編碼端獲取各CU的QP預(yù)測(cè)值;當(dāng)編碼端獲取到各⑶的QP之后,則可以按照編碼次序(解碼次序與編碼次序相同),使用各CU鄰近的已編碼的CU的QP獲取各CU的QP預(yù)測(cè)值。典型的,該鄰近已編碼的⑶包括左⑶,上⑶與左上⑶。為便于描述,首先對(duì)參考⑶進(jìn)行定義編碼端將每一個(gè)尺寸大于或等于QPBlkSize的⑶作為一個(gè)參考⑶,且對(duì)于尺寸小于QPBlkSize的⑶,編碼端確定該⑶所屬的最小圖像塊,并將該最小圖像塊的左上⑶作為一個(gè)參考CU。定義了參考⑶之后,編碼端可以根據(jù)各參考⑶的該鄰近⑶的QP計(jì)算各參考⑶的QP預(yù)測(cè)值,具體的計(jì)算方式可以有多種,下面以幾個(gè)例子進(jìn)行說明一、采用左⑶、上⑶以及左上⑶進(jìn)行計(jì)算請(qǐng)參閱圖4,其中,CU。為某參考⑶,該⑶可以是一個(gè)尺寸大于或等于QPBlkSize的⑶,也可以是位于最小圖像塊的左上角的⑶。CUu為CUc的上CU,CUl為CUc的左CU,CUul為CUc的左上CU,本實(shí)施例中,CUc的鄰近⑶為左⑶、上⑶以及左上⑶,其中CUc的左上角像素坐標(biāo)為(X。,y。),則CUl為包含像素點(diǎn)(x「l,yc)的CU, CUu為包含像素點(diǎn)(X。,yc-l)的CU,CUul為包含像素點(diǎn)(Xe-I,Yc-D的⑶。編碼端確定了參考⑶的鄰近⑶之后,可以根據(jù)步驟305計(jì)算的結(jié)果獲取這些⑶的 QP,其中,CUc 的 QP 為 QP。,CUu 的 QP 為 QPu, CUl 的 QP 為 QP^ CUul 的 QP 為 QP皿。需要說明的是,并不是每一個(gè)⑶都能獲取到其左⑶、上⑶以及左上⑶,例如本身就位于圖像或條帶最左側(cè)的CU就不會(huì)存在左CU,因此,編碼端可以按照如下一些具體條件確定各CU的預(yù)測(cè)值(I)若CU。的鄰近⑶均不存在,則根據(jù)該CU。所屬的條帶以及圖像確定該CU。的QP預(yù)測(cè)值QPP ;具體的,QPp= slice_cip_delta+pic_init_cip_minus26+26,其中,slice _qp_delta為包含在條帶頭信息中的信息,pic_init_qp_minus26為包含在圖像參數(shù)集中的信息。 (2)若CUc只存在CUL,則將QPl作為QPp ;(3)若CUc只存在CUu,則將QPu作為QPp ;(4)若CUc的鄰近⑶均存在,則獲取QPl與QPm之間的第一差異I QPl-QPiJ,以及QPu與QPul之間的第二差異I QPu-QPm I。若I QPl-QPul I < I QPfQP肌I,則表示QPl和QPul的差異小于QPu和QPul的差異。這種情況下,( 和CUm很有可能屬于圖像中的同一個(gè)物體,物體邊緣出現(xiàn)在CUu和CUm邊緣,所以可以采用QPu作為QPp;若I QPfQPm I > = I QPu-QPul |,按照上述的推理,則可以將QP^作為QPP。在實(shí)際應(yīng)用中,可以用下述代碼實(shí)現(xiàn)上述流程
if((QPL exists) && (QPul exists) && (QPu exists) &&(|QPL - QPulI < IQPu -QPulI))
QPp =QPu;
else if ((QPl exists) && (QPul exists) && (QPu exists) &&|QPL - QPulI >
IQPu-QPulD)
QPp = QPl;
else if (QPl exists)
QPp = QPl; else if (QPu exists)
QPp = QPu;
else
QPp = slice—qp_delta + pic_init_qp_minus26 + 26可以理解的是,上述的代碼僅僅是實(shí)現(xiàn)過程中的一個(gè)例子,在實(shí)際應(yīng)用中,還可以使用其他類似的代碼實(shí)現(xiàn),具體實(shí)現(xiàn)方式此處不作限定。
二、采用左⑶、上⑶以及前一被編碼⑶進(jìn)行計(jì)算同樣請(qǐng)參閱圖4,本實(shí)施例中,可以使用( 以及CUu作為某參考CUc的鄰近CU,CUc可以是一個(gè)尺寸大于或等于QPBlkSize的⑶,也可以是位于最小圖像塊的左上角的⑶。CUc的左上角像素坐標(biāo)為(X。,y。),則CUl為包含像素點(diǎn)(x「l,yc)的CU, CUu為包含像素點(diǎn)(X。,yc-l)的 CU,CUc 的 QP 為 QPC,CUu 的 QP 為 QPu, CUl 的 QP 為 QP”需要說明的是,并不是每一個(gè)CU都能獲取到其左CU以及上CU,例如本身就位于圖像或條帶最左側(cè)的⑶就不會(huì)存在左⑶,因此,編碼端可以按照如下一些具體條件確定各⑶的預(yù)測(cè)值(I)若CUc的CUl存在,則將QPl作為QPp ;(2)若CU。的( 不存在,且CU。的CUu或該CU。的前一被編碼CU存在,則將QPu或 前一被編碼⑶的QP作為QPp ;(3)若CUc的CUl不存在,且CUc的CUu與該CUc的前一被編碼CU都存在,則將QPu或前一被編碼⑶的QP作為QPP,具體使用QPu還是前一被編碼⑶的QP作為QPP,可在編解碼端預(yù)先規(guī)定;(4)若CUc的CUl,CUu以及前一被編碼CU均不存在,則根據(jù)該CUc所屬的條帶以及圖像確定QPp 具體的,QPp= slice_cip_delta+pic_init_cip_minus26+26,其中,slice_qp_delta為包含在條帶頭信息中的信息,pic_init_qp_minus26為包含在圖像參數(shù)集中的信息。上述僅以兩個(gè)例子說明了編碼端計(jì)算各參考CU的QP預(yù)測(cè)值的過程,可以理解的是,在實(shí)際應(yīng)用中,編碼端還可以采用更多的方式計(jì)算各參考CU的QP預(yù)測(cè)值,具體此處不作限定。307、編碼端將滿足預(yù)置條件的CU的QP差cu_qp_delta寫入該CU ;編碼端通過步驟305計(jì)算得到了各⑶的QP,通過步驟306計(jì)算得到了各參考⑶的QP預(yù)測(cè)值,則編碼端可以根據(jù)這些參數(shù)進(jìn)一步計(jì)算各⑶的QP差cu_qp_delta,具體計(jì)算方式可以為對(duì)于每一個(gè)參考⑶,編碼端將該參考⑶的QP與該參考⑶的QP預(yù)測(cè)值之間的差值作為該參考CU的QP差,即cu_qp_delta = QPc-QPp ;若該參考CU所屬的最小圖像塊中包含其它CU,則編碼端將該參考CU的QP差作為該最小圖像塊內(nèi)其它⑶的QP差。也就是說,對(duì)于⑶的尺寸大于或等于QPBlkSize的⑶,由于這一類⑶本身即是參考CU,所以編碼端可以將這些CU的QP與QP預(yù)測(cè)值之間的差值作為這些CU的cu_qp_delta ;對(duì)于⑶的尺寸小于QPBlkSize的⑶,即相當(dāng)于一個(gè)最小圖像塊中包含若干個(gè)⑶,該最小圖像塊的左上角的⑶為參考⑶,通過步驟306可以獲知該參考⑶的QP預(yù)測(cè)值,再結(jié)合步驟305中計(jì)算的QP可以得到該參考⑶的cu_qp_delta = QPc-QPp,之后再將該參考CU的cu_qp_delta賦值給該最小圖像塊內(nèi)其他的CU,需要說明的是,在實(shí)際應(yīng)用中,除了使用賦值操作之外,還可以采用別的方式處理,例如若判斷該最小圖像塊中某CU滿足預(yù)置條件,則將該⑶中攜帶該⑶所屬的最小圖像塊的參考⑶的cu_qp_delta。本實(shí)施例中,編碼端獲取到各⑶的cu_qp_delta之后,可以在滿足預(yù)置條件的⑶中攜帶該CU的Cu_qp_delta,具體的滿足預(yù)置條件的CU可以為在其壓縮碼流中存在非零量化后變換系數(shù)的CU。若某CU采用skip編碼模式,則其壓縮碼流中不會(huì)存在非零量化后變換系數(shù),則此類⑶不滿足預(yù)置條件,若不采用skip編碼模式,則⑶在其壓縮碼流中可能會(huì)包含有非零量化后變換系數(shù),這部分CU則滿足預(yù)置條件。本實(shí)施例中,對(duì)于滿足預(yù)置條件的⑶,編碼端可以將該⑶的cu_qp_delta寫入該⑶的如下位置
Coding—unit( x0, y0, log2CUSize ) { if( slice—type != I) Skip—flag [ xO ] [ yO ] if( skip—flag[ xO ] [ yO ])
prediction—unit( xO, yO, Iog2CUSize, Iog2CUSize ) else {
Prediction—unit( xO, yO, Iog2CUSize, Iog2CUSize )
Transform—tree( xO, yO, Iog2CUSize, 0, O ){
if (sig—coeff—num > 0) {
cu—qp—delta
transform—coeff( xO, yO, Iog2TrafoSize, trafoDepth, cldx )
}
}
}其中,sig_coeff_num > O是當(dāng)前QJ對(duì)應(yīng)的碼流中是否存在cu_qp_delta的判決條件,若該判決條件為真,則說明當(dāng)前CU對(duì)應(yīng)的碼流中存在cu_qp_delta,若該判決條件為假,則說明當(dāng)前⑶對(duì)應(yīng)的碼流中不存在cu_cip_delta。需要說明的是,對(duì)于尺寸小于QPBlkSize的⑶而言,編碼端按照編碼次序依次判斷該CU所屬的最小圖像塊中的CU是否滿足預(yù)置條件,若一個(gè)CU不滿足預(yù)置條件,則繼續(xù)判斷后續(xù)的CU是否滿足預(yù)置條件,若后續(xù)的某個(gè)CU滿足預(yù)置條件,則將該CU的cu_qp_delta寫入該⑶中,并且停止判斷,即不再為該最小圖像塊中的其他⑶寫入CU_qp_delta,而無論這些⑶是否滿足預(yù)置條件。
需要說明的是,由于并非所有CU均滿足該預(yù)置條件,所以編碼端除了在滿足預(yù)置條件的⑶中攜帶該⑶的cu_qp_delta之外,還可以對(duì)不滿足預(yù)置條件的⑶的QP進(jìn)行重新設(shè)置,具體方式可以為對(duì)于每一個(gè)不滿足預(yù)置條件的⑶,編碼端通過如下方式設(shè)置該⑶的QP :對(duì)于尺寸大于或等于QPBlkSize的⑶,編碼端將該⑶的QP預(yù)測(cè)值作為該⑶的QP ;對(duì)于尺寸小于QPBlkSize的⑶,若該⑶所屬的最小圖像塊中的其它⑶均不滿足預(yù)置條件,則編碼端將該CU所屬的最小圖像塊中的參考CU的QP預(yù)測(cè)值作為該CU的QP。通過上述對(duì)不滿足預(yù)置條件的⑶的QP的重新設(shè)置,可以保證后續(xù)編碼⑶在進(jìn)行QP預(yù)測(cè)時(shí)能夠獲取與解碼端相同的預(yù)測(cè)值。
308、編碼端對(duì)lcu_cip_depth、cu_qp_delta以及各QJ進(jìn)行編碼得到碼流;編碼端在獲取到lcu_cip_depth、cu_qp_delta之后可以對(duì)各⑶進(jìn)行編碼,本實(shí)施例中,編碼端對(duì)lcu_qp_depth進(jìn)行編碼的過程可以包括編碼端采用定長碼或變長碼對(duì)lcU_qp_cbpth進(jìn)行二值化得到對(duì)應(yīng)的二進(jìn)制碼字;編碼端將獲得的二進(jìn)制碼字按照定長編碼、變長編碼或算術(shù)熵編碼的方法寫入步驟302中確定的位置所對(duì)應(yīng)的碼流。其中,編碼端所采用的變長碼可以為無符號(hào)的指數(shù)哥倫布碼,或其他類似的變長碼,具體此處不作限定。編碼端對(duì)cu_cjp_delta進(jìn)行編碼的過程可以包括編碼端采用變長碼對(duì)滿足預(yù)置條件的⑶的CU_qp_delta進(jìn)行二值化得到對(duì)應(yīng)的
二進(jìn)制碼字;編碼端將獲得的二進(jìn)制碼字按照變長編碼或算術(shù)熵編碼的方法寫入碼流。編碼端將獲得的二進(jìn)制碼字按照定長編碼、變長編碼或算術(shù)熵編碼的方法寫入步驟307中確定的位置所對(duì)應(yīng)的碼流。其中,編碼端所采用的變長碼可以為帶符號(hào)的指數(shù)哥倫布碼,或其他類似的變長碼,具體此處不作限定。本實(shí)施例中,編碼端對(duì)CU的編碼過程此處不作限定,當(dāng)編碼完成后即得到碼流,編碼端可以向解碼端發(fā)送該碼流。309、解碼端對(duì)接收到的碼流進(jìn)行解碼得到lcu_cip_depth ;解碼端接收到碼流之后,可以根據(jù)預(yù)先與編碼端的約定獲知lcU_qp_cbpth在碼流中所處的位置為SPS,或PPS,或SH,從而對(duì)這部分的內(nèi)容使用定長解碼、變長解碼或算術(shù)熵解碼的方法獲取二進(jìn)制碼字;解碼端采用定長碼或變長碼對(duì)二進(jìn)制碼字進(jìn)行逆二值化得到lcu_qp_cbpth。本實(shí)施例中的變長碼可以為無符號(hào)的指數(shù)哥倫布碼,或者是其他類似的變長碼,具體此處不作限定。本實(shí)施例中的lcu_qp_depth用于表示序列、或圖像、或條帶中每一個(gè)IXU中具有獨(dú)立QP的最小圖像塊尺寸。
310、解碼端計(jì)算包含獨(dú)立QP的最小圖像塊尺寸QPBlkSize ;解碼端計(jì)算得到lcu_(ip_depth之后,可以根據(jù)該lcu_cip_depth計(jì)算得到QPBlkSize,具體的計(jì)算方式可以與前述步驟304中編碼端計(jì)算QPBlkSize的方式相同,具體此處不再贅述。311、解碼端從滿足預(yù)置條件的⑶中解析得到該⑶的cu_cip_delta ;本實(shí)施例中,對(duì)于每一個(gè)滿足預(yù)置條件的CU,解碼端可以從該CU的碼流中對(duì)應(yīng)的位置使用變長解碼或算術(shù)熵解碼的方法獲取二進(jìn)制碼字;解碼端采用變長碼對(duì)二進(jìn)制碼字進(jìn)行逆二值化得到該⑶的cu_qp_delta。本實(shí)施例中的變長碼可以為帶符號(hào)的指數(shù)哥倫布碼,或者是其他類似的變長碼,具體此處不作限定。 需要說明的是,按照前述步驟307中的描述,sig_coeff_num > O是當(dāng)前⑶對(duì)應(yīng)的碼流中是否存在cu_qp_delta的判決條件,所以解碼端可以通過校驗(yàn)該判決條件以獲知該CU是否滿足預(yù)置條件,滿足預(yù)置條件的CU同樣可以為在其壓縮碼流中存在非零量化后變換系數(shù)的CU。本實(shí)施例中,由于不是所有CU都是滿足預(yù)置條件的CU,所以解碼端可以按照如下方式確定所有⑶的cu_cip_delta 對(duì)于每一個(gè)尺寸大于或等于QPBlkSize的⑶,解碼端判斷該⑶是否滿足預(yù)置條件,若滿足,則從該⑶中解析該⑶的cu_qp_delta,若不滿足,則將該⑶的cu_qp_delta設(shè)置為O ;對(duì)于尺寸小于QPBlkSize的⑶,解碼端確定該⑶所屬的最小圖像塊,并按照該最小圖像塊中CU的解碼次序,依次判斷該最小圖像塊中每一個(gè)CU是否滿足預(yù)置條件,若滿足,則停止判斷,并將該⑶的cu_qp_delta作為該最小圖像塊中所有⑶的cu_qp_delta,若該最小圖像塊中所有CU均不滿足預(yù)置條件,則將該最小圖像塊中所有CU的cu_qp_delta設(shè)置為O。312、解碼端根據(jù)QPBlkSize、CU的尺寸獲取各CU的QP預(yù)測(cè)值;當(dāng)解碼端獲取到QPBlkSize之后,則可以根據(jù)各CU的尺寸以及該QPBlkSize獲取各⑶的QP預(yù)測(cè)值。本步驟具體過程與前述步驟306中編碼端獲取各CU的QP預(yù)測(cè)值的方式相同。按306中描述,鄰近區(qū)域?yàn)橐丫幋a或已解碼區(qū)域,因?yàn)榫幋a次序與解碼次序相同,所以已編碼區(qū)域與已解碼區(qū)域?yàn)榻y(tǒng)一區(qū)域。因?yàn)樵撆R近區(qū)域內(nèi)CU的QP都可得,所以可按照306中相同的方法獲得各CU的QP預(yù)測(cè)值。當(dāng)獲得各⑶的QP預(yù)測(cè)值之后,結(jié)合步驟311中獲取到的各⑶的cu_qp_delta,則可以得到該⑶的QP,即QP = QP預(yù)測(cè)值+cu_cip_delta。313、解碼端根據(jù)各CU的QP預(yù)測(cè)值及cu_cip_delta計(jì)算各⑶的QP ;解碼端計(jì)算得到各⑶的QP預(yù)測(cè)值之后,則可以根據(jù)各⑶的QP預(yù)測(cè)值及cu_qp_delta計(jì)算各⑶的QP,具體方式可以為對(duì)于尺寸大于或等于QPBlkSize,且不滿足預(yù)置條件的⑶,解碼端將該⑶的QP預(yù)測(cè)值作為該⑶的QP ;對(duì)于尺寸大于或等于QPBlkSize,且滿足預(yù)置條件的⑶,解碼端將該⑶的QP預(yù)測(cè)值與該CU的cu_qp_delta之和作為該CU的QP ;對(duì)于尺寸小于QPBlkSize的CU,若該⑶滿足預(yù)置條件,則解碼端獲取該⑶所屬的最小圖像塊的左上⑶的QP預(yù)測(cè)值,并將該QP預(yù)測(cè)值與該cu_qp_delta之和作為該⑶的QP,并將該CU的QP作為該最小圖像塊中所有CU的QP ;對(duì)于尺寸小于QPBlkSize的⑶,若該⑶所屬的最小圖像塊中所有⑶均不滿足預(yù)置條件,則解碼端獲取該⑶所屬的最小圖像塊的左上⑶的QP預(yù)測(cè)值,并將該QP預(yù)測(cè)值作為該最小圖像塊中所有⑶的QP。314、解碼端按照各⑶的QP對(duì)各⑶進(jìn)行解碼。本實(shí)施例中,解碼端可以使用步驟313中得到各⑶的QP對(duì)各⑶進(jìn)行反量化處理以及后續(xù)的解碼過程,具體此處不作限定。
為便于理解,下面以一具體實(shí)例對(duì)本發(fā)明編解碼方法進(jìn)行簡要描述,請(qǐng)參閱圖5,圖5為本發(fā)明LCU結(jié)構(gòu)不意圖,其中,max_coding_block_size為64, QPBlkSize為16。從圖5中可以看出,該IXU中包含37個(gè)⑶,其中,畫叉的⑶為采用skip編碼的⑶,即不滿足預(yù)置條件的⑶,其余的⑶中,假設(shè)⑶3和⑶23在其壓縮碼流中包含量化后變換系數(shù)全部為0,則CU3以及CU23也為不滿足預(yù)置條件的CU,其余的CU為滿足預(yù)置條件的CU。則按照前述圖3實(shí)施例中所描述的編碼過程,圖5所示的IXU經(jīng)過編碼之后得到的碼流結(jié)構(gòu)如圖6所示,Ml, M2. . . M37等為頭信息,Cl,C4. . . C37等為變換系數(shù),DQPl,DQP4. . . DQP37 等為 cu_qp_delta0本實(shí)施例中,編碼端在編碼時(shí)可以在待編碼數(shù)據(jù)中寫入用于表示具有獨(dú)立QP的最小圖像塊尺寸的量化深度參數(shù),并且對(duì)每一個(gè)滿足預(yù)置條件的CU中,都攜帶該CU的QP差,使得每個(gè)IXU不僅僅再對(duì)應(yīng)一個(gè)QP,而由IXU中滿足預(yù)置條件的⑶來對(duì)應(yīng)QP,所以編碼端能夠以CU為最精細(xì)粒度進(jìn)行碼率控制,由于一個(gè)LCU中往往包含多個(gè)CU,因此能夠有效提高LCU的碼率控制精度;其次,編碼端僅在滿足預(yù)置條件的CU中才攜帶該CU的QP差,而并不會(huì)在所有的CU中都攜帶QP差,所以可以減少編碼開銷,從而有效提高整體壓縮效率;再次,本實(shí)施例中,編碼端和解碼端計(jì)算CU的QP預(yù)測(cè)值時(shí)可以采用多種預(yù)測(cè)方式,使得計(jì)算過程更加靈活,從而能適應(yīng)多個(gè)不同的環(huán)境。上面介紹了一種編解碼方法,下面介紹另外一種編解碼方法,具體請(qǐng)參閱圖7,本發(fā)明編解碼方法另一實(shí)施例包括701、編碼端獲取待編碼的IXU ;本實(shí)施例中,編碼端獲取到的待編碼數(shù)據(jù)為一個(gè)LCU。702、編碼端按照預(yù)置的碼率控制算法確定LCU的量化深度參數(shù)lcu_qp_cbpth ;編碼端根據(jù)預(yù)置的碼率控制算法獲取對(duì)應(yīng)的lcU_qp_cbpth的數(shù)值,具體的,編碼端可以采用嘗試替代的方式獲取lcu_cip_depth的數(shù)值,即不斷調(diào)整lcu_cip_depth的數(shù)值并進(jìn)行模擬編碼,使得編碼后的碼率符合預(yù)期的要求,具體過程此處不作限定。本實(shí)施例中的lcu_cip_depth的取值范圍可以取O至MaxSymbol內(nèi)的所有整數(shù),其中,MaxSymbol可以通過如下方式計(jì)算MaxSymbol = Iog2 (max_coding_block_size)-Iog2 (min_coding_block_size);
其中,max_coding_block_size表示最大的 QJ 的尺寸,即 IXU 的尺寸,min_coding_block_size表示最小的⑶的尺寸。需要說明的是,本實(shí)施例以及后續(xù)實(shí)施例中所描述的尺寸是指邊長,例如某CU為32*32,則定義其尺寸為32。本實(shí)施例中,該lcu_qp_depth用于表示IXU中具有獨(dú)立QP的最小圖像塊尺寸,當(dāng)lcu_qp_depth為O時(shí),表不具有獨(dú)立QP的最小圖像塊即為LQJ,當(dāng)lcu_cip_depth為I時(shí),表示將IXU劃分為4個(gè)32*32的⑶,最小圖像塊尺寸為32,以此類推。本實(shí)施例中的lcu_qp_cbpth是指當(dāng)前的一個(gè)IXU的具有獨(dú)立QP的最小圖像塊尺寸,也就是說,該序列、圖像或條帶中的每一個(gè)IXU均使用獨(dú)立的lcu_qp_depth,每一個(gè)IXU所使用的lcu_qp_depth均有可能不相同。703、編碼端將lcu_qp_cbpth寫入當(dāng)前IXU中按編碼次序第一個(gè)在其壓縮碼流中 存在非零量化后變換系數(shù)的CU中;本實(shí)施例中,編碼端在獲取到lcu_cip_depth的數(shù)值之后,可以將該lcu_cip_depth寫入當(dāng)前LCU中按編碼次序第一個(gè)在其壓縮碼流中存在非零量化后變換系數(shù)的CU中
slice—data() {
CurrTbAddr = first—tb—in_slice moreDataFlag = I do {
xCU = HorLumaLocation( CurrTbAddr) yCU = VerLumaLocation( CurrTbAddr)
IcuqpdepthFlag = I coding—tree( xCU, yCU, Log2TbSize ){
coding—unit( xO, yO, log2CUSize ) { if( slice—type ! = I) skip—flag[ xO ] [ yO ] if(! skip—flag [ xO ] [ yO ] && Icu qp depthFlag) { if (sig—coeff—num > 0) {leu—qp—depth IcuqpdepthFlag = O
}
}
}
}
} while( moreDataFlag )
} 其中,引入lcu_qp_cbpthFlag變量是為達(dá)到僅為在第一個(gè)在其壓縮碼流中存在非零量化后變換系數(shù)的CU中傳輸lcu_qp_depth的目的。當(dāng)然也可使用其它方法實(shí)現(xiàn)同樣的碼流結(jié)構(gòu)。本實(shí)施例中,sig_coeff_num > O是當(dāng)前⑶碼流中是否存在lcu_cip_depth的判決條件。在滿足該判決條件時(shí),lcu_qp_depth也可放在當(dāng)前CU碼流中的其它位置,具體此處不作限定。由于并不是每一個(gè)⑶都符合攜帶lcu_qp_depth的條件,所以,本實(shí)施例中,編碼端在當(dāng)前IXU中,按照⑶的編碼順序,對(duì)每一個(gè)⑶檢驗(yàn)其是否具備攜帶lcu_qp_depth的條件,即該CU是否為第一個(gè)在其壓縮碼流中存在非零量化后變換系數(shù)的CU。如果當(dāng)前⑶不具備攜帶lcu_qp_depth的條件,則編碼端繼續(xù)對(duì)當(dāng)前IXU種后續(xù)的CU進(jìn)行檢驗(yàn)。若在某CU中發(fā)現(xiàn)其具備攜帶lCU_qp_depth的條件,則在前述規(guī)定的位置將 lcu_cip_depth 寫入該 CU。本實(shí)施例中,當(dāng)編碼端在某個(gè)⑶中寫入了 lcu_qp_depth之后,貝U無需在該⑶所屬的LQJ的其他QJ中再寫入lcu_cip_depth。704 708、與前述圖3所示實(shí)施例中的步驟304 308相同,此處不再贅述。709、解碼端對(duì)接收到的碼流進(jìn)行解碼得到lcu_cip_depth ;解碼端接收到碼流之后,可以根據(jù)預(yù)先與編碼端的約定獲知lcU_qp_cbpth在碼流中所處的位置,從而對(duì)這部分的內(nèi)容使用定長解碼、變長解碼或算術(shù)熵解碼的方法獲取二進(jìn)制碼字;解碼端采用定長碼或變長碼對(duì)二進(jìn)制碼字進(jìn)行逆二值化得到lcu_qp_cbpth。本實(shí)施例中的變長碼可以為無符號(hào)的指數(shù)哥倫布碼,或者是其他類似的變長碼,具體此處不作限定。本實(shí)施例中的lcu_qp_cbpth用于表示當(dāng)前的IXU中具有獨(dú)立QP的最小圖像塊尺寸。710 714、與前述圖3所示實(shí)施例中描述的步驟310 314相同,此處不再贅述。
為便于理解,下面以一具體實(shí)例對(duì)本發(fā)明編解碼方法進(jìn)行簡要描述,同樣請(qǐng)參閱圖5,圖5為本發(fā)明IXU結(jié)構(gòu)不意圖,其中,max_coding_block_size為64, QPBlkSize為16。從圖5中可以看出,該IXU中包含37個(gè)⑶,其中,畫叉的⑶為采用skip編碼的⑶,即不滿足預(yù)置條件的⑶,其余的⑶中,假設(shè)⑶3和⑶23在其壓縮碼流中包含量化后變換系數(shù)全部為0,則CU3以及CU23也為不滿足預(yù)置條件的CU,其余的CU為滿足預(yù)置條件的CU。則按照前述圖7所示實(shí)施例中所描述的編碼過程,圖5所示的IXU經(jīng)過編碼之后得到的碼流結(jié)構(gòu)如圖8所示,depth為lcu_cip_depth, Ml, M2. . . M37等為頭信息,Cl,C4. · · C37 等為變換系數(shù),DQPl,DQP4. · · DQP37 等為 cu_qp_delta。本實(shí)施例中,編碼端在編碼時(shí)可以在待編碼數(shù)據(jù)中寫入用于表示具有獨(dú)立QP的最小圖像塊尺寸的量化深度參數(shù),并且對(duì)每一個(gè)滿足預(yù)置條件的CU中,都攜帶該CU的QP 差,使得每個(gè)LCU不僅僅再對(duì)應(yīng)一個(gè)QP,而由LCU中滿足預(yù)置條件的CU對(duì)應(yīng)QP,所以編碼端能夠以CU為最精細(xì)粒度進(jìn)行碼率控制,由于一個(gè)LCU中往往包含多個(gè)CU,因此能夠有效提高LCU的碼率控制精度;其次,編碼端僅在滿足預(yù)置條件的CU中才攜帶該CU的QP差,而并不會(huì)在所有的CU中都攜帶QP差,所以可以減少編碼開銷,從而有效提高整體壓縮效率;再次,本實(shí)施例中,編碼端和解碼端計(jì)算CU的QP預(yù)測(cè)值時(shí)可以采用多種預(yù)測(cè)方式,使得計(jì)算過程更加靈活,從而能適應(yīng)多個(gè)不同的環(huán)境;更進(jìn)一步,本實(shí)施例中,lcu_qp_depth用于表示當(dāng)前的IXU中具有獨(dú)立QP的最小圖像塊尺寸,所以每個(gè)IXU會(huì)攜帶一個(gè)lcu_qp_depth,使得不同的IXU可以使用不同的lcu_cip_depth,從而能夠進(jìn)一步提高IXU的碼率控制精度。下面對(duì)本發(fā)明編碼裝置實(shí)施例進(jìn)行描述,請(qǐng)參閱圖9,本發(fā)明編碼裝置一個(gè)實(shí)施例包括數(shù)據(jù)獲取單元901,用于獲取待編碼數(shù)據(jù),該待編碼數(shù)據(jù)至少為一個(gè)最大編碼單元LCU ;深度參數(shù)處理單元902,用于按照預(yù)置的碼率控制算法確定該IXU的量化深度參數(shù),并將該量化深度參數(shù)寫入該數(shù)據(jù)獲取單元901獲取到的待編碼數(shù)據(jù),該量化深度參數(shù)用于表示該LCU中具有獨(dú)立QP的最小圖像塊尺寸;量化參數(shù)確定單元903,用于根據(jù)該最小圖像塊尺寸與該IXU中包含的各⑶的尺寸確定各⑶的QP ;計(jì)算單元904,用于根據(jù)該量化參數(shù)確定單元903確定的各⑶的QP以及各⑶的QP預(yù)測(cè)值計(jì)算各CU的QP差;填充單元905,用于對(duì)于每一個(gè)滿足預(yù)置條件的⑶,在該⑶中攜帶該⑶的QP差;編碼單元906,用于對(duì)該量化深度參數(shù)、滿足預(yù)置條件的⑶的QP差、以及各⑶進(jìn)行編碼得到碼流。為便于理解,下面對(duì)本發(fā)明編碼裝置進(jìn)行詳細(xì)描述,具體請(qǐng)參閱圖10,本發(fā)明編碼裝置另一實(shí)施例包括數(shù)據(jù)獲取單元1001,用于獲取待編碼數(shù)據(jù),該待編碼數(shù)據(jù)至少為一個(gè)最大編碼單元 LCU ;
深度參數(shù)處理單元1002,用于按照預(yù)置的碼率控制算法確定該IXU的量化深度參數(shù),并將該量化深度參數(shù)寫入該數(shù)據(jù)獲取單元1001獲取到的待編碼數(shù)據(jù),該量化深度參數(shù)用于表示該LCU中具有獨(dú)立QP的最小圖像塊尺寸;量化參數(shù)確定單元1003,用于根據(jù)該最小圖像塊尺寸與該IXU中包含的各⑶的尺寸確定各⑶的QP ;計(jì)算單元1005,用于根據(jù)該量化參數(shù)確定單元1003確定的各⑶的QP以及各⑶的QP預(yù)測(cè)值計(jì)算各CU的QP差;填充單元1006,用于對(duì)于每一個(gè)滿足預(yù)置條件的⑶,在該⑶中攜帶該⑶的QP差;編碼單元1007,用于對(duì)該量化深度參數(shù)、滿足預(yù)置條件的⑶的QP差、以及各⑶進(jìn)行編碼得到碼流。 本實(shí)施例中的編碼裝置還可以進(jìn)一步包括預(yù)測(cè)單元1004,用于根據(jù)各參考⑶的鄰近⑶的QP計(jì)算各參考⑶的QP預(yù)測(cè)值;對(duì)于尺寸大于或等于該最小圖像塊尺寸的⑶,每一個(gè)⑶作為一個(gè)參考⑶,對(duì)于尺寸小于該最小圖像塊尺寸的⑶,該⑶所屬的最小圖像塊的左上⑶作為一個(gè)參考⑶。本實(shí)施例中的預(yù)測(cè)單元1004包括第一校驗(yàn)?zāi)K10041,用于對(duì)每一個(gè)參考⑶,判斷該參考⑶的鄰近⑶是否存在,該參考⑶的鄰近⑶包括該參考⑶的左⑶,上⑶以及左上⑶;第一預(yù)測(cè)模塊10042,用于當(dāng)該參考⑶的鄰近⑶均不存在時(shí),根據(jù)該參考⑶所屬的條帶以及圖像確定該參考CU的QP預(yù)測(cè)值;第二預(yù)測(cè)模塊10043,用于當(dāng)該參考⑶只存在左⑶時(shí),將該左⑶的QP作為該參考CU的QP預(yù)測(cè)值;第三預(yù)測(cè)模塊10044,用于當(dāng)該參考⑶只存在上⑶時(shí),將該上⑶的QP作為該參考CU的QP預(yù)測(cè)值;第四預(yù)測(cè)模塊10045,用于當(dāng)該參考⑶的鄰近⑶均存在時(shí),獲取左⑶的QP與左上⑶的QP之間的第一差異,以及上⑶的QP與左上⑶的QP之間的第二差異,若該第一差異小于第二差異,則將該上CU的QP作為該參考CU的QP預(yù)測(cè)值,若該第一差異大于或等于第二差異,則將該左CU的QP作為該參考CU的QP預(yù)測(cè)值。請(qǐng)參閱圖11,本發(fā)明編碼裝置另一實(shí)施例包括數(shù)據(jù)獲取單元1101,用于獲取待編碼數(shù)據(jù),該待編碼數(shù)據(jù)至少為一個(gè)最大編碼單元 LCU ;深度參數(shù)處理單元1102,用于按照預(yù)置的碼率控制算法確定該IXU的量化深度參數(shù),并將該量化深度參數(shù)寫入該數(shù)據(jù)獲取單元1101獲取到的待編碼數(shù)據(jù),該量化深度參數(shù)用于表示該LCU中具有獨(dú)立QP的最小圖像塊尺寸;量化參數(shù)確定單元1103,用于根據(jù)該最小圖像塊尺寸與該IXU中包含的各⑶的尺寸確定各⑶的QP ;計(jì)算單元1105,用于根據(jù)該量化參數(shù)確定單元1103確定的各⑶的QP以及各⑶的QP預(yù)測(cè)值計(jì)算各CU的QP差;填充單元1106,用于對(duì)于每一個(gè)滿足預(yù)置條件的⑶,在該⑶中攜帶該⑶的QP差;編碼單元1107,用于對(duì)該量化深度參數(shù)、滿足預(yù)置條件的⑶的QP差、以及各⑶進(jìn)行編碼得到碼流。本實(shí)施例中的編碼裝置還可以進(jìn)一步包括預(yù)測(cè)單元1104,用于根據(jù)各參考⑶的鄰近⑶的QP計(jì)算各參考⑶的QP預(yù)測(cè)值;對(duì)于尺寸大于或等于該最小圖像塊尺寸的⑶,每一個(gè)⑶作為一個(gè)參考⑶,對(duì)于尺寸小于該最小圖像塊尺寸的⑶,該⑶所屬的最小圖像塊的左上⑶作為一個(gè)參考⑶。本實(shí)施例中的預(yù)測(cè)單元1104包括第二校驗(yàn)?zāi)K11041,用于對(duì)每一個(gè)參考⑶,判斷該參考⑶的左⑶是否存在;
第五預(yù)測(cè)模塊11042,用于當(dāng)該參考⑶的左⑶存在時(shí),將該左⑶的QP作為該參考CU的QP預(yù)測(cè)值;第六預(yù)測(cè)模塊11043,用于當(dāng)該參考⑶的左⑶不存在,且該參考⑶的上⑶或該參考⑶的前一被編碼⑶存在時(shí),將該上⑶的QP或前一被編碼⑶的QP作為該參考⑶的QP預(yù)測(cè)值;第七預(yù)測(cè)模塊11044,用于當(dāng)該參考⑶的左⑶,上⑶以及前一被編碼⑶均不存在時(shí),根據(jù)該參考CU所屬的條帶以及圖像確定該參考CU的QP預(yù)測(cè)值。本實(shí)施例中,編碼端在編碼時(shí)可以在待編碼數(shù)據(jù)中寫入用于表示具有獨(dú)立QP的最小圖像塊尺寸的量化深度參數(shù),并且對(duì)每一個(gè)滿足預(yù)置條件的CU中,都攜帶該CU的QP差,使得每個(gè)LCU不僅僅再對(duì)應(yīng)一個(gè)QP,而由LCU中滿足預(yù)置條件的CU對(duì)應(yīng)QP,所以編碼端能夠以CU為最精細(xì)粒度進(jìn)行碼率控制,由于一個(gè)LCU中往往包含多個(gè)CU,因此能夠有效提高LCU的碼率控制精度;其次,編碼端僅在滿足預(yù)置條件的CU中才攜帶該CU的QP差,而并不會(huì)在所有的⑶中都攜帶QP差,所以可以減少編碼開銷,從而有效提高整體壓縮效率。下面對(duì)本發(fā)明編碼裝置實(shí)施例進(jìn)行描述,請(qǐng)參閱圖12,本發(fā)明解碼裝置一個(gè)實(shí)施例包括第一解析單元1201,用于對(duì)接收到的碼流進(jìn)行解析得到量化深度參數(shù),該量化深度參數(shù)用于表示LCU中具有獨(dú)立QP的最小圖像塊尺寸;參數(shù)預(yù)測(cè)單元1202,用于按照該最小圖像塊尺寸與該IXU中包含的各⑶的尺寸計(jì)算各⑶的QP預(yù)測(cè)值;第二解析單元1203,用于對(duì)每一個(gè)滿足預(yù)置條件的⑶,從碼流中解析得到其QP差;參數(shù)計(jì)算單元1204,用于根據(jù)該參數(shù)預(yù)測(cè)單元1202獲得的各⑶的QP預(yù)測(cè)值以及該第二解析單元1203解析得到的QP差計(jì)算各CU的QP ;解碼單元1205,用于按照該參數(shù)計(jì)算單元1204計(jì)算得到的各⑶的QP對(duì)各⑶進(jìn)行解碼。為便于理解,下面對(duì)本發(fā)明編碼裝置進(jìn)行詳細(xì)描述,具體請(qǐng)參閱圖13,本發(fā)明解碼裝置另一實(shí)施例包括第一解析單元1301,用于對(duì)接收到的碼流進(jìn)行解析得到量化深度參數(shù),該量化深度參數(shù)用于表示LCU中具有獨(dú)立QP的最小圖像塊尺寸;
參數(shù)預(yù)測(cè)單元1302,用于按照該最小圖像塊尺寸與該IXU中包含的各⑶的尺寸計(jì)算各⑶的QP預(yù)測(cè)值;第二解析單元1303,用于對(duì)每一個(gè)滿足預(yù)置條件的⑶,從碼流中解析得到其QP差;參數(shù)計(jì)算單元1304,用于根據(jù)該參數(shù)預(yù)測(cè)單元1302獲得的各⑶的QP預(yù)測(cè)值以及該第二解析單元1303解析得到的QP差計(jì)算各CU的QP ;解碼單元1305,用于按照該參數(shù)計(jì)算單元計(jì)算得到的各⑶的QP對(duì)各⑶進(jìn)行解碼。其中,參數(shù)預(yù)測(cè)單元1302可以進(jìn)一步包括
第一參數(shù)校驗(yàn)?zāi)K13021,用于對(duì)每一個(gè)參考⑶,判斷該參考⑶的鄰近⑶是否存在,該參考⑶的鄰近⑶包括該參考⑶的左⑶,上⑶以及左上⑶,對(duì)于尺寸大于或等于該最小圖像塊尺寸的⑶,每一個(gè)⑶作為一個(gè)參考⑶,對(duì)于尺寸小于該最小圖像塊尺寸的⑶,該⑶所屬的最小圖像塊的左上⑶作為一個(gè)參考⑶;第一參數(shù)預(yù)測(cè)模塊13022,用于當(dāng)該參考⑶的鄰近⑶均不存在時(shí),根據(jù)該參考⑶所屬的條帶以及圖像確定該參考CU的QP預(yù)測(cè)值;第二參數(shù)預(yù)測(cè)模塊13023,用于當(dāng)該參考⑶只存在左⑶時(shí),將該左⑶的QP作為該參考CU的QP預(yù)測(cè)值;第三參數(shù)預(yù)測(cè)模塊13024,用于當(dāng)該參考⑶只存在上⑶時(shí),將該上⑶的QP作為該參考CU的QP預(yù)測(cè)值;第四參數(shù)預(yù)測(cè)模塊13025,用于當(dāng)該參考⑶的鄰近⑶均存在時(shí),獲取左⑶的QP與左上⑶的QP之間的第一差異,以及上⑶的QP與左上⑶的QP之間的第二差異,若該第一差異小于第二差異,則將該上CU的QP作為該參考CU的QP預(yù)測(cè)值,若該第一差異大于或等于第二差異,則將該左CU的QP作為該參考CU的QP預(yù)測(cè)值。本實(shí)施例中的參數(shù)計(jì)算單元1304可以進(jìn)一步包括第一計(jì)算模塊13041,用于對(duì)尺寸大于或等于該最小圖像塊尺寸,且不滿足預(yù)置條件的CU,將該CU的QP預(yù)測(cè)值作為該CU的QP ;第二計(jì)算模塊13042,用于對(duì)尺寸大于或等于該最小圖像塊尺寸,且滿足預(yù)置條件的CU,將該CU的QP預(yù)測(cè)值與該CU的QP差之和作為該CU的QP ;第三計(jì)算模塊13043,用于對(duì)尺寸小于該最小圖像塊單元尺寸的⑶,若該⑶滿足預(yù)置條件,則獲取該CU所屬的最小圖像塊的左上CU的QP預(yù)測(cè)值,并將該QP預(yù)測(cè)值與該CU的QP差之和作為該CU的QP,并將該CU的QP作為該最小圖像塊中所有CU的QP ;第四計(jì)算模塊13044,用于對(duì)尺寸小于該最小圖像塊單元尺寸的⑶,若該⑶所屬的最小圖像塊中所有CU均不滿足預(yù)置條件,則獲取該CU所屬的最小圖像塊的左上CU的QP預(yù)測(cè)值,并將該QP預(yù)測(cè)值作為該最小圖像塊中所有CU的QP。請(qǐng)參閱圖14,本發(fā)明解碼裝置另一實(shí)施例包括第一解析單元1401,用于對(duì)接收到的碼流進(jìn)行解析得到量化深度參數(shù),該量化深度參數(shù)用于表示LCU中具有獨(dú)立QP的最小圖像塊尺寸; 參數(shù)預(yù)測(cè)單元1402,用于按照該最小圖像塊尺寸與該IXU中包含的各⑶的尺寸計(jì)算各⑶的QP預(yù)測(cè)值;
第二解析單元1403,用于對(duì)每一個(gè)滿足預(yù)置條件的⑶,從碼流中解析得到其QP差;參數(shù)計(jì)算單元1404,用于根據(jù)該參數(shù)預(yù)測(cè)單元1402獲得的各⑶的QP預(yù)測(cè)值以及該第二解析單元1403解析得到的QP差計(jì)算各CU的QP ;解碼單元1405,用于按照該參數(shù)計(jì)算單元計(jì)算得到的各⑶的QP對(duì)各⑶進(jìn)行解碼。其中,參數(shù)預(yù)測(cè)單元1402可以進(jìn)一步包括第二參數(shù)校驗(yàn)?zāi)K14021,用于對(duì)每一個(gè)參考⑶,判斷該參考⑶的左⑶是否存在,對(duì)于尺寸大于或等于該最小圖像塊尺寸的CU,每一個(gè)CU作為一個(gè)參考CU,對(duì)于尺寸小于該最小圖像塊尺寸的⑶,該⑶所屬的最小圖像塊的左上⑶作為一個(gè)參考⑶;
第五參數(shù)預(yù)測(cè)模塊14022,用于當(dāng)該參考⑶的左⑶存在時(shí),將該左⑶的QP作為該參考CU的QP預(yù)測(cè)值;第六參數(shù)預(yù)測(cè)模塊14023,用于當(dāng)該參考⑶的左⑶不存在,且該參考⑶的上⑶或該參考CU的前一被編碼CU存在時(shí),將該上CU的QP或前一被編碼CU的QP作為該參考CU的QP預(yù)測(cè)值;第七參數(shù)預(yù)測(cè)模塊14024,用于當(dāng)該參考⑶的左CU,上⑶以及前一被編碼⑶均不存在時(shí),根據(jù)該參考CU所屬的條帶以及圖像確定該參考CU的QP預(yù)測(cè)值。本實(shí)施例中的參數(shù)計(jì)算單元1404可以進(jìn)一步包括 第一計(jì)算模塊14041,用于對(duì)尺寸大于或等于該最小圖像塊尺寸,且不滿足預(yù)置條件的CU,將該CU的QP預(yù)測(cè)值作為該CU的QP ;第二計(jì)算模塊14042,用于對(duì)尺寸大于或等于該最小圖像塊尺寸,且滿足預(yù)置條件的CU,將該CU的QP預(yù)測(cè)值與該CU的QP差之和作為該CU的QP ;第三計(jì)算模塊14043,用于對(duì)尺寸小于該最小圖像塊單元尺寸的⑶,若該⑶滿足預(yù)置條件,則獲取該CU所屬的最小圖像塊的左上CU的QP預(yù)測(cè)值,并將該QP預(yù)測(cè)值與該CU的QP差之和作為該CU的QP,并將該CU的QP作為該最小圖像塊中所有CU的QP ;第四計(jì)算模塊14044,用于對(duì)尺寸小于該最小圖像塊單元尺寸的⑶,若該⑶所屬的最小圖像塊中所有CU均不滿足預(yù)置條件,則獲取該CU所屬的最小圖像塊的左上CU的QP預(yù)測(cè)值,并將該QP預(yù)測(cè)值作為該最小圖像塊中所有CU的QP。本實(shí)施例中,編碼端在編碼時(shí)可以在待編碼數(shù)據(jù)中寫入用于表示具有獨(dú)立QP的最小圖像塊尺寸的量化深度參數(shù),并且對(duì)每一個(gè)滿足預(yù)置條件的CU中,都攜帶該CU的QP差,使得每個(gè)LCU不僅僅再對(duì)應(yīng)一個(gè)QP,所以在解碼端進(jìn)行解碼時(shí)可以針對(duì)各CU進(jìn)行解碼,而無需針對(duì)一整個(gè)LCU進(jìn)行解碼,從而能夠提高解碼效率。本發(fā)明實(shí)施例提供的技術(shù)可以應(yīng)用在數(shù)字信號(hào)處理領(lǐng)域中,通過編碼器,解碼器實(shí)現(xiàn)。視頻編碼器,解碼器廣泛應(yīng)用于各種通訊設(shè)備或電子設(shè)備中,例如數(shù)字電視、機(jī)頂盒、媒體網(wǎng)關(guān),移動(dòng)電話,無線裝置,個(gè)人數(shù)據(jù)助理(PDA),手持式或便攜式計(jì)算機(jī),GPS接收機(jī)/導(dǎo)航器,照相機(jī),視頻播放器,攝像機(jī),錄像機(jī),監(jiān)控設(shè)備,視頻會(huì)議和可視電話設(shè)備等等。這類設(shè)備中包括處理器,存儲(chǔ)器,以及傳輸數(shù)據(jù)的接口。視頻編解碼器可以直接由數(shù)字電路或芯片例如DSP (digital signal processor)實(shí)現(xiàn),或者由軟件代碼驅(qū)動(dòng)一處理器執(zhí)行軟件代碼中的流程而實(shí)現(xiàn)。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,該程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。以上對(duì)本發(fā)明所提供的一種編碼方法以及裝置、解碼方法以及裝置進(jìn)行了詳細(xì)介紹,對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,因此本說明書內(nèi)容不應(yīng)理解為 對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種解碼方法,其特征在于,包括 對(duì)接收到的碼流進(jìn)行解析得到量化深度參數(shù),所述量化深度參數(shù)用于表示最大編碼單元LCU中具有獨(dú)立量化參數(shù)QP的最小圖像塊尺寸; 將每一個(gè)尺寸大于或等于所述最小圖像塊尺寸的編碼單元CU作為一個(gè)參考CU ; 對(duì)于每一個(gè)參考CU,判斷該參考CU的左CU是否存在,若存在,則將該左CU的QP作為該參考CU的QP預(yù)測(cè)值; 若該參考⑶的左⑶不存在,且該參考⑶的上⑶或該參考⑶的前一被解碼⑶存在,則將該上CU的QP或前一被解碼CU的QP作為該參考CU的QP預(yù)測(cè)值; 若該參考CU的左CU,上CU以及前一被解碼CU均不存在,則根據(jù)該參考CU所屬的條帶以及圖像確定該參考⑶的QP預(yù)測(cè)值; 對(duì)于每一個(gè)滿足預(yù)置條件的CU,從碼流中解析得到其QP差; 根據(jù)所述各CU的QP預(yù)測(cè)值以及解析得到的QP差計(jì)算各CU的QP ; 按照所述各CU的QP對(duì)各CU進(jìn)行解碼。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述對(duì)接收到的碼流進(jìn)行解析得到量化深度參數(shù)包括 從序列的序列參數(shù)集中,或圖像的圖像參數(shù)集中,或條帶的條帶頭信息中解析得到所述量化深度參數(shù); 所述量化深度參數(shù)用于表示所述序列、或圖像、或條帶中每一個(gè)LCU中具有獨(dú)立QP的最小圖像塊尺寸。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述對(duì)接收到的碼流進(jìn)行解析得到量化深度參數(shù)包括 對(duì)于每一個(gè)LCU,解碼端從按解碼次序第一個(gè)在其壓縮碼流中存在非零量化后變換系數(shù)的CU中解析得到所述量化深度參數(shù); 所述量化深度參數(shù)用于表示所述在其壓縮碼流中存在非零量化后變換系數(shù)的CU所屬的IXU中具有獨(dú)立QP的最小圖像塊尺寸。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括 對(duì)于尺寸小于所述最小圖像塊尺寸的CU,確定該CU所屬的最小圖像塊,并將該最小圖像塊的左上⑶作為一個(gè)參考⑶。
全文摘要
本發(fā)明實(shí)施例公開了一種編碼方法及裝置、解碼方法及裝置以及編解碼系統(tǒng)。本發(fā)明實(shí)施例方法包括編碼端獲取待編碼數(shù)據(jù),待編碼數(shù)據(jù)至少為一個(gè)LCU;編碼端按照碼率控制算法確定LCU的量化深度參數(shù),并將量化深度參數(shù)寫入待編碼數(shù)據(jù);編碼端根據(jù)最小圖像塊尺寸與LCU中包含的各CU的尺寸確定各CU的QP;編碼端根據(jù)各CU的QP以及各CU的QP預(yù)測(cè)值計(jì)算各CU的QP差;對(duì)于每一個(gè)滿足預(yù)置條件的CU,編碼端在該CU中攜帶該CU的QP差;編碼端對(duì)量化深度參數(shù)、滿足預(yù)置條件的CU的QP差、以及各CU進(jìn)行編碼得到碼流。本發(fā)明實(shí)施例還提供一種解碼方法以及編解碼裝置。本發(fā)明實(shí)施例能夠有效提高碼率控制精度以及壓縮效率。
文檔編號(hào)H04N7/50GK102685485SQ20111045981
公開日2012年9月19日 申請(qǐng)日期2011年3月11日 優(yōu)先權(quán)日2011年3月11日
發(fā)明者區(qū)子廉, 龐超, 楊海濤 申請(qǐng)人:華為技術(shù)有限公司