编码方法以及装置、解码方法以及装置的制作方法

文档序号:7814676阅读:148来源:国知局
专利名称:编码方法以及装置、解码方法以及装置的制作方法
技术领域
本发明涉及数据处理领域,尤其涉及一种编码方法以及装置、解码方法以及装置。
背景技术
在现有视频图像编码过程中,编码端需要对原始图像块数据或预测后的图像块差值数据进行空间变换,并对变换系数进行量化操作,再对量化后的系数进行熵编码。解码端则对熵解码得到的系数进行反量化操作,重建得到变换系数,再进行反变换操作得到原始图像块数据或图像块差值数据。为在解码端进行反量化操作,解码端需获取编码端量化过程中所采用的量化步长(QStep)。因此,编码端需要将所采用的Qstep信息写入码流中。由于不同的Qstep可以使用不同的量化参数(QP,Quantization Parameter)来表示,所以编码端可以对QP进行编 码,并传输到解码端。高效视频编码测试模型(HM,Highefficiency video coding test Model)中将图像划分为等大小的最大编码单元(IXU, Largest Coding Unit),每个IXU中可以包括一个或多个大小不固定的CU。现有技术中的一种图像编码方法中,允许具有独立的QP的最小图像是IXU,也就是说,每个IXU对应一个QP。编码端在进行编码时,QP相关信息在图像参数集(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
}编码端按照上述的方式完成编码后,将编码后的数据发送至解码端,解码端对每一个IXU,采用如下方式计算当前IXU的量化参数QPmi QPlcu = lcu_qp_delta+slice_qp_delta+pic_init_qp_minus26+260解码端得到当前IXU的QPwu后,即可进行解码。从上述现有技术的方案中可以看出 现有技术中,每个IXU对应一个QP,编码端在通过调整QP以进行码率控制时,只能以LCU为最精细粒度进行控制,由于在实际应用中LCU往往会设置的比较大,例如64像素*64像素(为简便描述,后续简称为64*64,其他数据类似),所以现有技术的方案影响了码率控制的精度。现有技术中另外一种图像编码方法中,在各LCU的每个CU中都携带有该CU的qp_delta信息,从而可以提高码率控制的精度。但是,在该现有技术中,由于最小的⑶可以设置为8*8,若在每个⑶中都携带该CU的qp_delta信息,则会增加大量的编码开销,从而影响图像编码的整体压缩效率。

发明内容
本发明实施例提供了一种编码方法及装置、解码方法及装置以及编解码系统,能够有效提高码率控制精度以及压缩效率。本发明实施例提供的编码方法,包括编码端获取待编码数据,所述待编码数据至少为一个最大编码单元LCU ;编码端按照预置的码率控制算法确定所述LCU的量化深度参数,并将所述量化深度参数写入所述待编码数据,所述量化深度参数用于表示所述LCU中具有独立QP的最小图像块尺寸;编码端根据所述最小图像块尺寸与所述LCU中包含的各⑶的尺寸确定各⑶的QP ;编码端根据所述各⑶的QP以及各⑶的QP预测值计算各⑶的QP差;对于每一个满足预置条件的CU,编码端在该CU中携带该CU的QP差;编码端对所述量化深度参数、满足预置条件的CU的QP差、以及各CU进行编码得到码流。本发明实施例提供的解码方法,包括解码端对接收到的码流进行解析得到量化深度参数,所述量化深度参数用于表示LCU中具有独立QP的最小图像块尺寸;解码端按照所述最小图像块尺寸与所述LCU中包含的各CU的尺寸计算各CU的QP预测值;对于每一个满足预置条件的CU,解码端从码流中解析得到其QP差;解码端根据所述各CU的QP预测值以及解析得到的QP差计算各CU的QP ;解码端按照所述各CU的QP对各CU进行解码。本发明实施例提供的编码装置,包括数据获取单元,用于获取待编码数据,所述待编码数据至少为一个最大编码单元LCU;深度参数处理单元,用于按照预置的码率控制算法确定所述LCU的量化深度参数,并将所述量化深度参数写入所述数据获取单元获取到的待编码数据,所述量化深度参数用于表示所述LCU中具有独立QP的最小图像块尺寸;量化参数确定单元,用于根据所述最小图像块尺寸与所述LCU中包含的各CU的尺寸确定各CU的QP ;计算单元,用于根据所述量化参数确定单元确定的各CU的QP以及各CU的QP预测值计算各CU的QP差;填充单元,用于对于每一个满足预置条件的CU,在该CU中携带该CU的QP差;编码单元,用于对所述量化深度参数、满足预置条件的CU的QP差、以及各CU进行编码得到码流。本发明实施例提供的解码装置,包括第一解析单元,用于对接收到的码流进行解析得到量化深度参数,所述量化深度参数用于表示LCU中具有独立QP的最小图像块尺寸;参数预测单元,用于按照所述最小图像块尺寸与所述LCU中包含的各CU的尺寸计算各CU的QP预测值;第二解析单元,用于对每一个满足预置条件的CU,从码流中解析得到其QP差;参数计算单元,用于根据所述参数预测单元获得的各CU的QP预测值以及所述第二解析单元解析得到的QP差计算各⑶的QP ;解码单元,用于按照所述参数计算单元计算得到的各⑶的QP对各⑶进行解码。从以上技术方案可以看出,本发明实施例具有以下优点 本发明实施例中,编码端在编码时可以在待编码数据中写入用于表示具有独立QP的最小图像块尺寸的量化深度参数,并且对每一个满足预置条件的CU中,都携带该CU的QP差,使得每个LCU不仅仅再对应一个QP,而由LCU中满足预置条件的CU对应QP,所以编码端能够以CU为最精细粒度进行码率控制,由于一个LCU中往往包含多个CU,因此能够有效提高LCU的码率控制精度;此外,编码端仅在满足预置条件的CU中才携带该CU的QP差,而并不会在所有的⑶中都携带QP差,所以可以减少编码开销,从而有效提高整体压缩效率。


图I为本发明编码方法一个实施例示意图;图2为本发明解码方法一个实施例示意图;图3为本发明编解码方法一个实施例示意图;图4为本发明⑶与邻近⑶之间的位置关系示意图;图5为本发明IXU结构示意图;图6为本发明编码后的一种码流结构示意图;图7为本发明编解码方法另一实施例示意图;图8为本发明编码后的另一码流结构示意图;图9为本发明编码装置一个实施例示意图;图10为本发明编码装置另一实施例示意图;图11为本发明编码装置另一实施例示意图;图12为本发明解码装置一个实施例示意图;图13为本发明解码装置另一实施例示意图;图14为本发明解码装置另一实施例示意图。
具体实施方式
本发明实施例提供了一种编码方法以及装置、解码方法以及装置,能够有效提高码率控制精度以及压缩效率。请参阅图1,本发明实施例中编码方法一个实施例包括101、编码端获取待编码数据;本实施例中,编码端可以获取到待编码数据,该待编码数据至少为一个LCU,即该待编码数据可以为一个IXU,也可以为多个IXU组成的数据。102、编码端按照预置的码率控制算法确定LCU的量化深度参数,并将量化深度参数写入待编码数据;编码端根据预置的码率控制算法获取LCU的量化深度参数,该量化深度参数用于表示IXU中具有独立QP的最小图像块尺寸。需要说明的是,本实施例以及后续实施例中所描述的尺寸是指边长,例如某CU为 32*32,则定义其尺寸为32。编码端可以采用尝试替代的方式获取LCU的量化深度参数,即不断调整量化深度参数的数值并进行模拟编码,使得编码后的码率符合预期的要求,具体过程此处不作限定。当编码端确定了量化深度参数之后,可以将该量化深度参数写入待编码数据中以准备发送至解码端。103、编码端根据最小图像块尺寸与IXU中包含的各⑶的尺寸确定各⑶的QP ;当编码端获取到LCU的量化深度参数之后,可以获知该量化深度参数所对应的具有独立QP的最小图像块尺寸,并根据最小图像块尺寸与IXU中包含的各⑶的尺寸确定各CU 的 QP。104、编码端根据各⑶的QP以及各⑶的QP预测值计算各⑶的QP差;本实施例中,编码端可以根据步骤103中得到的各⑶的QP计算得到各⑶的QP预测值,再根据该QP预测值,结合QP,计算得到各CU的QP差。本实施例中,某CU的QP差可以定义为该CU的QP与该CU的QP预测值之间的差值。105、对于每一个满足预置条件的⑶,编码端在该⑶中携带该⑶的QP差;当编码端确定了各⑶的QP差之后,可以从各⑶中选取满足预置条件的⑶,并且在这些满足预置条件的⑶中携带其QP差。106、编码端对量化深度参数、满足预置条件的⑶的QP差、以及各⑶进行编码得到码流。本实施例中,编码端将量化深度参数写入待编码数据,且将QP差写入满足预置条件的⑶之后,则可以对整个待编码数据进行编码,即对量化深度参数、满足预置条件的⑶的QP差、以及各CU进行编码,从而得到码流。本实施例中,编码端在编码时可以在待编码数据中写入用于表示具有独立QP的最小图像块尺寸的量化深度参数,并且对每一个满足预置条件的CU中,都携带该CU的QP差,使得每个LCU不仅仅再对应一个QP,而由LCU中满足预置条件的CU对应QP,所以编码端能够以CU为最精细粒度进行码率控制,由于一个LCU中往往包含多个CU,因此能够有效提高LCU的码率控制精度;此外,编码端仅在满足预置条件的CU中才携带该CU的QP差,而并不会在所有的⑶中都携带QP差,所以可以减少编码开销,从而有效提高整体压缩效率。上面从编码端的角度描述了本发明编码的过程,下面从解码端的角度描述本发明解码的过程,请参阅图2,本发明解码方法一个实施例包括201、解码端对接收到的码流进行解析得到量化深度参数;本实施例中,解码端可以从编码端接收到经过编码的码流,由于编码端在编码时,在待编码数据中写入了量化深度参数,所以解码端可以按照预先的约定从码流相应的位置解析出该量化深度参数。该量化深度参数用于表示IXU中具有独立QP的最小图像块尺寸。202、解码端按照最小图像块尺寸与IXU中包含的各⑶的尺寸计算各⑶的QP预测值;

本实施例中,解码端从码流中解析得到量化深度参数之后,可以根据该量化深度参数获知具有独立QP的最小图像块尺寸,并且根据该最小图像块尺寸与LCU中包含的各CU的尺寸计算得到各CU的QP预测值。203、对于每一个满足预置条件的⑶,解码端从码流中解析得到其QP差;本实施例中,解码端还可以对每一个满足预置条件的⑶,从码流中解析得到该⑶的QP差。需要说明的是,解码端得到QP差的过程与解码端计算各CU的QP预测值的过程并无先后顺序的限制,可以先执行得到QP差的过程,也可以先执行计算各CU的QP预测值的过程,或者还可以同时执行两个过程,具体此处不作限定。204、解码端根据各⑶的QP预测值以及解析得到的QP差计算各⑶的QP ;解码端通过步骤202获知了各⑶的QP预测值以及步骤203解析得到QP差之后,可以根据这些参数计算各CU的QP。205、解码端按照各⑶的QP对各⑶进行解码。本实施例中,当解码端获知各⑶的QP之后,则可以对各⑶进行反量化处理以及后续的解码过程,具体此处不作限定。本实施例中,编码端在编码时可以在待编码数据中写入用于表示具有独立QP的最小图像块尺寸的量化深度参数,并且对每一个满足预置条件的CU中,都携带该CU的QP差,使得每个LCU不仅仅再对应一个QP,所以在解码端进行解码时可以针对各CU进行解码,而无需针对一整个LCU进行解码,从而能够提高解码效率。为便于理解,下面从编解码的角度进行描述,请参阅图3,本发明编解码方法一个实施例包括301、编码端获取待编码的序列、图像或条带;本实施例中,编码端获取到的待编码数据为序列或图像或条带,需要说明的是,一个序列中包含若干个图像,一个图像中包含若干个条带,一个条带中包含若干个LCU。也就是说,本实施例中,编码端获取到的待编码数据为多个LCU。302、编码端按照预置的码率控制算法确定IXU的量化深度参数lcu_qp_cbpth ;编码端根据预置的码率控制算法获取对应的lcU_qp_cbpth的数值,具体的,编码端可以采用尝试替代的方式获取lcu_cip_depth的数值,即不断调整lcu_cip_depth的数值并进行模拟编码,使得编码后的码率符合预期的要求,具体过程此处不作限定。
本实施例中的lcu_cip_depth的取值范围可以取O至MaxSymbol内的所有整数,其中,MaxSymbol可以通过如下方式计算MaxSymbol = Iog2 (max_coding_block_size)-Iog2 (min_coding_block_size);其中,max_coding_block_size表不最大的 CU 的尺寸,即 LCU 的尺寸,min_coding_block_size表示最小的⑶的尺寸。需要说明的是,本实施例以及后续实施例中所描述的尺寸是指边长,例如某CU为32*32,则定义其尺寸为32。本实施例中,该lcu_qp_depth用于表示IXU中具有独立QP的最小图像块尺寸,当lcu_qp_depth为O时,表不具有独立QP的最小图像块即为LQJ,当lcu_cip_depth为I时,表示将IXU划分为4个32*32的⑶,最小图像块尺寸为32,以此类推。本实施例中的lcu_qp_depth是指序列、图像或条带中的每一个IXU的具有独立 QP的最小图像块尺寸,也就是说,该序列、图像或条带中的所有LCU均使用相同的lcu_qp_depth。303、编码端将lcU_qp_cbpth写入序列参数集、图像参数集或条带头信息;本实施例中,编码端在获取到lcu_cip_depth的数值之后,可以将该lcu_cip_depth写入待编码数据编码端可以将lcu_qp_depth写入该序列的序列参数集(SPS, Sequence ParameterSet),具体可以如下所示
seq_parameter_set_rbsp() {leu—qp—depth
}或者,编码端可以将lcu_qp_cbpth写入该图像的PPS,具体可以如下所示
Pic_parameter_set_rbsp() {
Icuqpdepth
}或者,编码端可以将lcU_qp_cbpth写入该条带的条带头信息,具体可以如下所
示slice—header() {leu—qp—depth
}可以理解的是,本实施例中仅以几个例子说明了 lcu_qp_depth的写入位置,在实际应用中,该lcu_qp_cbpth还可以写入序列、图像或条带的其他位置,具体此处不作限定。304、编码端计算包含独立QP的最小图像块尺寸QPBlkSize ;编码端获取到lcu_cip_depth之后,可以根据该lcu_cip_depth计算最小图像块QPBlk 的尺寸 QPBlkSize。假设IXU大小为max_coding_block_size,则QPBlkSize可以通过如下的方式计算得到

QPBlkSize = max_coding_block_size/ (2lcu-qp-depth)。例如,当max_coding_block_size 为 64, lcu_qp_depth 为 2 时,则 QPBlkSize 为16,即最小图像块为16*16的⑶。305、编码端根据QPBlkSize、CU的尺寸获取各CU的QP ;本实施例中,编码端可以分以下几种情况获取各CU的QP 对于尺寸大于或等于QPBlkSize的⑶,编码端按照预置的码率控制算法计算该⑶的QP ;对于尺寸小于QPBlkSize的⑶,编码端首先确定该⑶所属的最小图像块,然后按照预置的码率控制算法计算该最小图像块的QP,并将该最小图像块的QP作为该最小图像块中所有⑶的QP。本实施例中,编码端按照预置的码率控制算法计算QP的过程为本领域技术人员的公知常识,具体此处不作限定。306、编码端获取各CU的QP预测值;当编码端获取到各⑶的QP之后,则可以按照编码次序(解码次序与编码次序相同),使用各CU邻近的已编码的CU的QP获取各CU的QP预测值。典型的,该邻近已编码的⑶包括左⑶,上⑶与左上⑶。为便于描述,首先对参考⑶进行定义编码端将每一个尺寸大于或等于QPBlkSize的⑶作为一个参考⑶,且对于尺寸小于QPBlkSize的⑶,编码端确定该⑶所属的最小图像块,并将该最小图像块的左上⑶作为一个参考CU。定义了参考⑶之后,编码端可以根据各参考⑶的该邻近⑶的QP计算各参考⑶的QP预测值,具体的计算方式可以有多种,下面以几个例子进行说明一、采用左⑶、上⑶以及左上⑶进行计算请参阅图4,其中,CU。为某参考⑶,该⑶可以是一个尺寸大于或等于QPBlkSize的⑶,也可以是位于最小图像块的左上角的⑶。CUu为CUc的上CU,CUl为CUc的左CU,CUul为CUc的左上CU,本实施例中,CUc的邻近⑶为左⑶、上⑶以及左上⑶,其中CUc的左上角像素坐标为(X。,y。),则CUl为包含像素点(x「l,yc)的CU, CUu为包含像素点(X。,yc-l)的CU,CUul为包含像素点(Xe-I,Yc-D的⑶。编码端确定了参考⑶的邻近⑶之后,可以根据步骤305计算的结果获取这些⑶的 QP,其中,CUc 的 QP 为 QP。,CUu 的 QP 为 QPu, CUl 的 QP 为 QP^ CUul 的 QP 为 QP皿。需要说明的是,并不是每一个⑶都能获取到其左⑶、上⑶以及左上⑶,例如本身就位于图像或条带最左侧的CU就不会存在左CU,因此,编码端可以按照如下一些具体条件确定各CU的预测值(I)若CU。的邻近⑶均不存在,则根据该CU。所属的条带以及图像确定该CU。的QP预测值QPp ;具体的,QPp= slice_cip_delta+pic_init_cip_minus26+26,其中,slic e_qp_delta为包含在条带头信息中的信息,pic_init_qp_minus26为包含在图像参数集中的信息。 (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很有可能属于图像中的同一个物体,物体边缘出现在CUu和CUm边缘,所以可以采用QPu作为QPp;若I QPfQPm I > = I QPu-QPul |,按照上述的推理,则可以将QP^作为QPP。在实际应用中,可以用下述代码实现上述流程
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可以理解的是,上述的代码仅仅是实现过程中的一个例子,在实际应用中,还可以使用其他类似的代码实现,具体实现方式此处不作限定。
二、采用左⑶、上⑶以及前一被编码⑶进行计算同样请参阅图4,本实施例中,可以使用( 以及CUu作为某参考CUc的邻近CU,CUc可以是一个尺寸大于或等于QPBlkSize的⑶,也可以是位于最小图像块的左上角的⑶。CUc的左上角像素坐标为(X。,y。),则CUl为包含像素点(x「l,yc)的CU, CUu为包含像素点(X。,yc-l)的 CU,CUc 的 QP 为 QPC,CUu 的 QP 为 QPu, CUl 的 QP 为 QP”需要说明的是,并不是每一个CU都能获取到其左CU以及上CU,例如本身就位于图像或条带最左侧的⑶就不会存在左⑶,因此,编码端可以按照如下一些具体条件确定各⑶的预测值(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,可在编解码端预先规定;(4)若CUc的CUl,CUu以及前一被编码CU均不存在,则根据该CUc所属的条带以及图像确定QPp 具体的,QPp= slice_cip_delta+pic_init_cip_minus26+26,其中,slice_qp_delta为包含在条带头信息中的信息,pic_init_qp_minus26为包含在图像参数集中的信息。上述仅以两个例子说明了编码端计算各参考CU的QP预测值的过程,可以理解的是,在实际应用中,编码端还可以采用更多的方式计算各参考CU的QP预测值,具体此处不作限定。307、编码端将满足预置条件的CU的QP差cu_qp_delta写入该CU ;编码端通过步骤305计算得到了各⑶的QP,通过步骤306计算得到了各参考⑶的QP预测值,则编码端可以根据这些参数进一步计算各⑶的QP差cu_qp_delta,具体计算方式可以为对于每一个参考⑶,编码端将该参考⑶的QP与该参考⑶的QP预测值之间的差值作为该参考CU的QP差,即cu_qp_delta = QPc-QPp ;若该参考CU所属的最小图像块中包含其它CU,则编码端将该参考CU的QP差作为该最小图像块内其它⑶的QP差。也就是说,对于⑶的尺寸大于或等于QPBlkSize的⑶,由于这一类⑶本身即是参考CU,所以编码端可以将这些CU的QP与QP预测值之间的差值作为这些CU的cu_qp_delta ;对于⑶的尺寸小于QPBlkSize的⑶,即相当于一个最小图像块中包含若干个⑶,该最小图像块的左上角的⑶为参考⑶,通过步骤306可以获知该参考⑶的QP预测值,再结合步骤305中计算的QP可以得到该参考⑶的cu_qp_delta = QPc-QPp,之后再将该参考CU的cu_qp_delta赋值给该最小图像块内其他的CU,需要说明的是,在实际应用中,除了使用赋值操作之外,还可以采用别的方式处理,例如若判断该最小图像块中某CU满足预置条件,则将该⑶中携带该⑶所属的最小图像块的参考⑶的cu_qp_delta。本实施例中,编码端获取到各⑶的cu_qp_delta之后,可以在满足预置条件的⑶中携带该CU的Cu_qp_delta,具体的满足预置条件的CU可以为在其压缩码流中存在非零量化后变换系数的CU。若某CU采用skip编码模式,则其压缩码流中不会存在非零量化后变换系数,则此类⑶不满足预置条件,若不采用skip编码模式,则⑶在其压缩码流中可能会包含有非零量化后变换系数,这部分CU则满足预置条件。本实施例中,对于满足预置条件的⑶,编码端可以将该⑶的cu_qp_delta写入该⑶的如下位置
Coding—unit( xO, yO, 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是当前QJ对应的码流中是否存在cu_qp_delta的判决条件,若该判决条件为真,则说明当前CU对应的码流中存在cu_qp_delta,若该判决条件为假,则说明当前⑶对应的码流中不存在cu_cip_delta。需要说明的是,对于尺寸小于QPBlkSize的⑶而言,编码端按照编码次序依次判断该CU所属的最小图像块中的CU是否满足预置条件,若一个CU不满足预置条件,则继续判断后续的CU是否满足预置条件,若后续的某个CU满足预置条件,则将该CU的cu_qp_delta写入该⑶中,并且停止判断,即不再为该最小图像块中的其他⑶写入CU_qp_delta,而无论这些⑶是否满足预置条件。
需要说明的是,由于并非所有CU均满足该预置条件,所以编码端除了在满足预置条件的⑶中携带该⑶的cu_qp_delta之外,还可以对不满足预置条件的⑶的QP进行重新设置,具体方式可以为对于每一个不满足预置条件的⑶,编码端通过如下方式设置该⑶的QP :对于尺寸大于或等于QPBlkSize的⑶,编码端将该⑶的QP预测值作为该⑶的QP ;对于尺寸小于QPBlkSize的⑶,若该⑶所属的最小图像块中的其它⑶均不满足预置条件,则编码端将该CU所属的最小图像块中的参考CU的QP预测值作为该CU的QP。通过上述对不满足预置条件的⑶的QP的重新设置,可以保证后续编码⑶在进行QP预测时能够获取与解码端相同的预测值。308、编码端对lcu_cip_depth、cu_qp_delta以及各QJ进行编码得到码流; 编码端在获取到lcu_cip_depth、cu_qp_delta之后可以对各⑶进行编码,本实施例中,编码端对lcu_qp_depth进行编码的过程可以包括编码端采用定长码或变长码对lcU_qp_cbpth进行二值化得到对应的二进制码字;编码端将获得的二进制码字按照定长编码、变长编码或算术熵编码的方法写入步骤302中确定的位置所对应的码流。其中,编码端所采用的变长码可以为无符号的指数哥伦布码,或其他类似的变长码,具体此处不作限定。编码端对cu_cjp_delta进行编码的过程可以包括编码端采用变长码对满足预置条件的⑶的CU_qp_delta进行二值化得到对应的
二进制码字;编码端将获得的二进制码字按照变长编码或算术熵编码的方法写入码流。编码端将获得的二进制码字按照定长编码、变长编码或算术熵编码的方法写入步骤307中确定的位置所对应的码流。其中,编码端所采用的变长码可以为带符号的指数哥伦布码,或其他类似的变长码,具体此处不作限定。本实施例中,编码端对CU的编码过程此处不作限定,当编码完成后即得到码流,编码端可以向解码端发送该码流。309、解码端对接收到的码流进行解码得到lcu_cip_depth ;解码端接收到码流之后,可以根据预先与编码端的约定获知lcU_qp_cbpth在码流中所处的位置为SPS,或PPS,或SH,从而对这部分的内容使用定长解码、变长解码或算术熵解码的方法获取二进制码字;解码端采用定长码或变长码对二进制码字进行逆二值化得到lcu_qp_cbpth。本实施例中的变长码可以为无符号的指数哥伦布码,或者是其他类似的变长码,具体此处不作限定。本实施例中的lcu_qp_depth用于表示序列、或图像、或条带中每一个IXU中具有独立QP的最小图像块尺寸。
310、解码端计算包含独立QP的最小图像块尺寸QPBlkSize ;解码端计算得到lcu_(ip_depth之后,可以根据该lcu_cip_depth计算得到QPBlkSize,具体的计算方式可以与前述步骤304中编码端计算QPBlkSize的方式相同,具体此处不再赘述。311、解码端从满足预置条件的⑶中解析得到该⑶的cu_cip_delta ;本实施例中,对于每一个满足预置条件的CU,解码端可以从该CU的码流中对应的位置使用变长解码或算术熵解码的方法获取二进制码字;解码端采用变长码对二进制码字进行逆二值化得到该⑶的cu_qp_delta。本实施例中的变长码可以为带符号的指数哥伦布码,或者是其他类似的变长码,具体此处不作限定。

需要说明的是,按照前述步骤307中的描述,sig_coeff_num > O是当前⑶对应的码流中是否存在cu_qp_delta的判决条件,所以解码端可以通过校验该判决条件以获知该CU是否满足预置条件,满足预置条件的CU同样可以为在其压缩码流中存在非零量化后变换系数的CU。本实施例中,由于不是所有CU都是满足预置条件的CU,所以解码端可以按照如下方式确定所有⑶的cu_cip_delta 对于每一个尺寸大于或等于QPBlkSize的⑶,解码端判断该⑶是否满足预置条件,若满足,则从该⑶中解析该⑶的cu_qp_delta,若不满足,则将该⑶的cu_qp_delta设置为O ;对于尺寸小于QPBlkSize的⑶,解码端确定该⑶所属的最小图像块,并按照该最小图像块中CU的解码次序,依次判断该最小图像块中每一个CU是否满足预置条件,若满足,则停止判断,并将该⑶的cu_qp_delta作为该最小图像块中所有⑶的cu_qp_delta,若该最小图像块中所有CU均不满足预置条件,则将该最小图像块中所有CU的cu_qp_delta设置为O。312、解码端根据QPBlkSize、CU的尺寸获取各CU的QP预测值;当解码端获取到QPBlkSize之后,则可以根据各CU的尺寸以及该QPBlkSize获取各⑶的QP预测值。本步骤具体过程与前述步骤306中编码端获取各CU的QP预测值的方式相同。按306中描述,邻近区域为已编码或已解码区域,因为编码次序与解码次序相同,所以已编码区域与已解码区域为统一区域。因为该临近区域内CU的QP都可得,所以可按照306中相同的方法获得各CU的QP预测值。当获得各⑶的QP预测值之后,结合步骤311中获取到的各⑶的cu_qp_delta,则可以得到该⑶的QP,即QP = QP预测值+cu_cip_delta。313、解码端根据各CU的QP预测值及cu_cip_delta计算各⑶的QP ;解码端计算得到各⑶的QP预测值之后,则可以根据各⑶的QP预测值及cu_qp_delta计算各⑶的QP,具体方式可以为对于尺寸大于或等于QPBlkSize,且不满足预置条件的⑶,解码端将该⑶的QP预测值作为该⑶的QP ;对于尺寸大于或等于QPBlkSize,且满足预置条件的⑶,解码端将该⑶的QP预测值与该CU的cu_qp_delta之和作为该CU的QP ;对于尺寸小于QPBlkSize的CU,若该⑶满足预置条件,则解码端获取该⑶所属的最小图像块的左上⑶的QP预测值,并将该QP预测值与该cu_qp_delta之和作为该⑶的QP,并将该CU的QP作为该最小图像块中所有CU的QP ;对于尺寸小于QPBlkSize的⑶,若该⑶所属的最小图像块中所有⑶均不满足预置条件,则解码端获取该⑶所属的最小图像块的左上⑶的QP预测值,并将该QP预测值作为该最小图像块中所有⑶的QP。314、解码端按照各⑶的QP对各⑶进行解码。本实施例中,解码端可以使用步骤313中得到各⑶的QP对各⑶进行反量化处理以及后续的解码过程,具体此处不作限定。 为便于理解,下面以一具体实例对本发明编解码方法进行简要描述,请参阅图5,图5为本发明LCU结构不意图,其中,max_coding_block_size为64, QPBlkSize为16。从图5中可以看出,该IXU中包含37个⑶,其中,画叉的⑶为采用skip编码的⑶,即不满足预置条件的⑶,其余的⑶中,假设⑶3和⑶23在其压缩码流中包含量化后变换系数全部为0,则CU3以及CU23也为不满足预置条件的CU,其余的CU为满足预置条件的CU。则按照前述图3实施例中所描述的编码过程,图5所示的IXU经过编码之后得到的码流结构如图6所示,Ml, M2. . . M37等为头信息,Cl,C4. . . C37等为变换系数,DQPl,DQP4. . . DQP37 等为 cu_qp_delta0本实施例中,编码端在编码时可以在待编码数据中写入用于表示具有独立QP的最小图像块尺寸的量化深度参数,并且对每一个满足预置条件的CU中,都携带该CU的QP差,使得每个IXU不仅仅再对应一个QP,而由IXU中满足预置条件的⑶来对应QP,所以编码端能够以CU为最精细粒度进行码率控制,由于一个LCU中往往包含多个CU,因此能够有效提高LCU的码率控制精度;其次,编码端仅在满足预置条件的CU中才携带该CU的QP差,而并不会在所有的CU中都携带QP差,所以可以减少编码开销,从而有效提高整体压缩效率;再次,本实施例中,编码端和解码端计算CU的QP预测值时可以采用多种预测方式,使得计算过程更加灵活,从而能适应多个不同的环境。上面介绍了一种编解码方法,下面介绍另外一种编解码方法,具体请参阅图7,本发明编解码方法另一实施例包括701、编码端获取待编码的IXU ;本实施例中,编码端获取到的待编码数据为一个LCU。702、编码端按照预置的码率控制算法确定LCU的量化深度参数lcu_qp_cbpth ;编码端根据预置的码率控制算法获取对应的lcU_qp_cbpth的数值,具体的,编码端可以采用尝试替代的方式获取lcu_cip_depth的数值,即不断调整lcu_cip_depth的数值并进行模拟编码,使得编码后的码率符合预期的要求,具体过程此处不作限定。本实施例中的lcu_cip_depth的取值范围可以取O至MaxSymbol内的所有整数,其中,MaxSymbol可以通过如下方式计算MaxSymbol = Iog2 (max_coding_block_size)-Iog2 (min_coding_block_size);
其中,max_coding_block_size表示最大的 QJ 的尺寸,即 IXU 的尺寸,min_coding_block_size表示最小的⑶的尺寸。需要说明的是,本实施例以及后续实施例中所描述的尺寸是指边长,例如某CU为32*32,则定义其尺寸为32。本实施例中,该lcu_qp_depth用于表示IXU中具有独立QP的最小图像块尺寸,当lcu_qp_depth为O时,表不具有独立QP的最小图像块即为LQJ,当lcu_cip_depth为I时,表示将IXU划分为4个32*32的⑶,最小图像块尺寸为32,以此类推。本实施例中的lcu_qp_cbpth是指当前的一个IXU的具有独立QP的最小图像块尺寸,也就是说,该序列、图像或条带中的每一个IXU均使用独立的lcu_qp_depth,每一个IXU所使用的lcu_qp_depth均有可能不相同。703、编码端将lcu_qp_cbpth写入当前IXU中按编码次序第一个在其压缩码流中存在非零量化后变换系数的CU中; 本实施例中,编码端在获取到lcu_cip_depth的数值之后,可以将该lcu_cip_depth写入当前LCU中按编码次序第一个在其压缩码流中存在非零量化后变换系数的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变量是为达到仅为在第一个在其压缩码流中存在非零量化后变换系数的CU中传输lcu_qp_depth的目的。当然也可使用其它方法实现同样的码流结构。本实施例中,sig_coeff_num > O是当前⑶码流中是否存在lcu_cip_depth的判决条件。在满足该判决条件时,lcu_qp_depth也可放在当前CU码流中的其它位置,具体此处不作限定。由于并不是每一个⑶都符合携带lcu_qp_depth的条件,所以,本实施例中,编码端在当前IXU中,按照⑶的编码顺序,对每一个⑶检验其是否具备携带lcu_qp_depth的条件,即该CU是否为第一个在其压缩码流中存在非零量化后变换系数的CU。如果当前⑶不具备携带lcu_qp_depth的条件,则编码端继续对当前IXU种后续的CU进行检验。若在某CU中发现其具备携带lCU_qp_depth的条件,则在前述规定的位置将 lcu_cip_depth 写入该 CU。本实施例中,当编码端在某个⑶中写入了 lcu_qp_depth之后,贝U无需在该⑶所属的LQJ的其他QJ中再写入lcu_cip_depth。704 708、与前述图3所示实施例中的步骤304 308相同,此处不再赘述。709、解码端对接收到的码流进行解码得到lcu_cip_depth ;解码端接收到码流之后,可以根据预先与编码端的约定获知lcU_qp_cbpth在码流中所处的位置,从而对这部分的内容使用定长解码、变长解码或算术熵解码的方法获取二进制码字;解码端采用定长码或变长码对二进制码字进行逆二值化得到lcu_qp_cbpth。本实施例中的变长码可以为无符号的指数哥伦布码,或者是其他类似的变长码,具体此处不作限定。本实施例中的lcu_qp_cbpth用于表示当前的IXU中具有独立QP的最小图像块尺寸。710 714、与前述图3所示实施例中描述的步骤310 314相同,此处不再赘述。
为便于理解,下面以一具体实例对本发明编解码方法进行简要描述,同样请参阅图5,图5为本发明IXU结构不意图,其中,max_coding_block_size为64, QPBlkSize为16。从图5中可以看出,该IXU中包含37个⑶,其中,画叉的⑶为采用skip编码的⑶,即不满足预置条件的⑶,其余的⑶中,假设⑶3和⑶23在其压缩码流中包含量化后变换系数全部为0,则CU3以及CU23也为不满足预置条件的CU,其余的CU为满足预置条件的CU。则按照前述图7所示实施例中所描述的编码过程,图5所示的IXU经过编码之后得到的码流结构如图8所示,depth为lcu_cip_depth, Ml, M2. . . M37等为头信息,Cl,C4. · · C37 等为变换系数,DQPl,DQP4. · · DQP37 等为 cu_qp_delta。本实施例中,编码端在编码时可以在待编码数据中写入用于表示具有独立QP的最小图像块尺寸的量化深度参数,并且对每一个满足预置条件的CU中,都携带该CU的QP差,使得每个LCU不仅仅再对应一个QP,而由LCU中满足预置条件的CU对应QP,所以编码 端能够以CU为最精细粒度进行码率控制,由于一个LCU中往往包含多个CU,因此能够有效提高LCU的码率控制精度;其次,编码端仅在满足预置条件的CU中才携带该CU的QP差,而并不会在所有的CU中都携带QP差,所以可以减少编码开销,从而有效提高整体压缩效率;再次,本实施例中,编码端和解码端计算CU的QP预测值时可以采用多种预测方式,使得计算过程更加灵活,从而能适应多个不同的环境;更进一步,本实施例中,lcu_qp_depth用于表示当前的IXU中具有独立QP的最小图像块尺寸,所以每个IXU会携带一个lcu_qp_depth,使得不同的IXU可以使用不同的lcu_cip_depth,从而能够进一步提高IXU的码率控制精度。下面对本发明编码装置实施例进行描述,请参阅图9,本发明编码装置一个实施例包括数据获取单元901,用于获取待编码数据,该待编码数据至少为一个最大编码单元LCU ;深度参数处理单元902,用于按照预置的码率控制算法确定该IXU的量化深度参数,并将该量化深度参数写入该数据获取单元901获取到的待编码数据,该量化深度参数用于表示该LCU中具有独立QP的最小图像块尺寸;量化参数确定单元903,用于根据该最小图像块尺寸与该IXU中包含的各⑶的尺寸确定各⑶的QP ;计算单元904,用于根据该量化参数确定单元903确定的各⑶的QP以及各⑶的QP预测值计算各CU的QP差;填充单元905,用于对于每一个满足预置条件的⑶,在该⑶中携带该⑶的QP差;编码单元906,用于对该量化深度参数、满足预置条件的⑶的QP差、以及各⑶进行编码得到码流。为便于理解,下面对本发明编码装置进行详细描述,具体请参阅图10,本发明编码装置另一实施例包括数据获取单元1001,用于获取待编码数据,该待编码数据至少为一个最大编码单元 LCU ;
深度参数处理单元1002,用于按照预置的码率控制算法确定该IXU的量化深度参数,并将该量化深度参数写入该数据获取单元1001获取到的待编码数据,该量化深度参数用于表示该LCU中具有独立QP的最小图像块尺寸;量化参数确定单元1003,用于根据该最小图像块尺寸与该IXU中包含的各⑶的尺寸确定各⑶的QP ;计算单元1005,用于根据该量化参数确定单元1003确定的各⑶的QP以及各⑶的QP预测值计算各CU的QP差;填充单元1006,用于对于每一个满足预置条件的⑶,在该⑶中携带该⑶的QP差;编码单元1007,用于对该量化深度参数、满足预置条件的⑶的QP差、以及各⑶进行编码得到码流。 本实施例中的编码装置还可以进一步包括预测单元1004,用于根据各参考⑶的邻近⑶的QP计算各参考⑶的QP预测值;对于尺寸大于或等于该最小图像块尺寸的⑶,每一个⑶作为一个参考⑶,对于尺寸小于该最小图像块尺寸的⑶,该⑶所属的最小图像块的左上⑶作为一个参考⑶。本实施例中的预测单元1004包括第一校验模块10041,用于对每一个参考⑶,判断该参考⑶的邻近⑶是否存在,该参考⑶的邻近⑶包括该参考⑶的左⑶,上⑶以及左上⑶;第一预测模块10042,用于当该参考⑶的邻近⑶均不存在时,根据该参考⑶所属的条带以及图像确定该参考CU的QP预测值;第二预测模块10043,用于当该参考⑶只存在左⑶时,将该左⑶的QP作为该参考CU的QP预测值;第三预测模块10044,用于当该参考⑶只存在上⑶时,将该上⑶的QP作为该参考CU的QP预测值;第四预测模块10045,用于当该参考⑶的邻近⑶均存在时,获取左⑶的QP与左上⑶的QP之间的第一差异,以及上⑶的QP与左上⑶的QP之间的第二差异,若该第一差异小于第二差异,则将该上CU的QP作为该参考CU的QP预测值,若该第一差异大于或等于第二差异,则将该左CU的QP作为该参考CU的QP预测值。请参阅图11,本发明编码装置另一实施例包括数据获取单元1101,用于获取待编码数据,该待编码数据至少为一个最大编码单元 LCU ;深度参数处理单元1102,用于按照预置的码率控制算法确定该IXU的量化深度参数,并将该量化深度参数写入该数据获取单元1101获取到的待编码数据,该量化深度参数用于表示该LCU中具有独立QP的最小图像块尺寸;量化参数确定单元1103,用于根据该最小图像块尺寸与该IXU中包含的各⑶的尺寸确定各⑶的QP ;计算单元1105,用于根据该量化参数确定单元1103确定的各⑶的QP以及各⑶的QP预测值计算各CU的QP差;填充单元1106,用于对于每一个满足预置条件的⑶,在该⑶中携带该⑶的QP差;编码单元1107,用于对该量化深度参数、满足预置条件的⑶的QP差、以及各⑶进行编码得到码流。本实施例中的编码装置还可以进一步包括预测单元1104,用于根据各参考⑶的邻近⑶的QP计算各参考⑶的QP预测值;对于尺寸大于或等于该最小图像块尺寸的⑶,每一个⑶作为一个参考⑶,对于尺寸小于该最小图像块尺寸的⑶,该⑶所属的最小图像块的左上⑶作为一个参考⑶。本实施例中的预测单元1104包括第二校验模块11041,用于对每一个参考⑶,判断该参考⑶的左⑶是否存在;

第五预测模块11042,用于当该参考⑶的左⑶存在时,将该左⑶的QP作为该参考CU的QP预测值;第六预测模块11043,用于当该参考⑶的左⑶不存在,且该参考⑶的上⑶或该参考⑶的前一被编码⑶存在时,将该上⑶的QP或前一被编码⑶的QP作为该参考⑶的QP预测值;第七预测模块11044,用于当该参考⑶的左⑶,上⑶以及前一被编码⑶均不存在时,根据该参考CU所属的条带以及图像确定该参考CU的QP预测值。本实施例中,编码端在编码时可以在待编码数据中写入用于表示具有独立QP的最小图像块尺寸的量化深度参数,并且对每一个满足预置条件的CU中,都携带该CU的QP差,使得每个LCU不仅仅再对应一个QP,而由LCU中满足预置条件的CU对应QP,所以编码端能够以CU为最精细粒度进行码率控制,由于一个LCU中往往包含多个CU,因此能够有效提高LCU的码率控制精度;其次,编码端仅在满足预置条件的CU中才携带该CU的QP差,而并不会在所有的⑶中都携带QP差,所以可以减少编码开销,从而有效提高整体压缩效率。下面对本发明编码装置实施例进行描述,请参阅图12,本发明解码装置一个实施例包括第一解析单元1201,用于对接收到的码流进行解析得到量化深度参数,该量化深度参数用于表示LCU中具有独立QP的最小图像块尺寸;参数预测单元1202,用于按照该最小图像块尺寸与该IXU中包含的各⑶的尺寸计算各⑶的QP预测值;第二解析单元1203,用于对每一个满足预置条件的⑶,从码流中解析得到其QP差;参数计算单元1204,用于根据该参数预测单元1202获得的各⑶的QP预测值以及该第二解析单元1203解析得到的QP差计算各CU的QP ;解码单元1205,用于按照该参数计算单元1204计算得到的各⑶的QP对各⑶进行解码。为便于理解,下面对本发明编码装置进行详细描述,具体请参阅图13,本发明解码装置另一实施例包括第一解析单元1301,用于对接收到的码流进行解析得到量化深度参数,该量化深度参数用于表示LCU中具有独立QP的最小图像块尺寸;
参数预测单元1302,用于按照该最小图像块尺寸与该IXU中包含的各⑶的尺寸计算各⑶的QP预测值;第二解析单元1303,用于对每一个满足预置条件的⑶,从码流中解析得到其QP差;参数计算单元1304,用于根据该参数预测单元1302获得的各⑶的QP预测值以及该第二解析单元1303解析得到的QP差计算各CU的QP ;解码单元1305,用于按照该参数计算单元计算得到的各⑶的QP对各⑶进行解码。其中,参数预测单元1302可以进一步包括第一参数校验模块13021,用于对每一个参考⑶,判断该参考⑶的邻近⑶是否存 在,该参考⑶的邻近⑶包括该参考⑶的左⑶,上⑶以及左上⑶,对于尺寸大于或等于该最小图像块尺寸的⑶,每一个⑶作为一个参考⑶,对于尺寸小于该最小图像块尺寸的⑶,该⑶所属的最小图像块的左上⑶作为一个参考⑶;第一参数预测模块13022,用于当该参考⑶的邻近⑶均不存在时,根据该参考⑶所属的条带以及图像确定该参考CU的QP预测值;第二参数预测模块13023,用于当该参考⑶只存在左⑶时,将该左⑶的QP作为该参考CU的QP预测值;第三参数预测模块13024,用于当该参考⑶只存在上⑶时,将该上⑶的QP作为该参考CU的QP预测值;第四参数预测模块13025,用于当该参考⑶的邻近⑶均存在时,获取左⑶的QP与左上⑶的QP之间的第一差异,以及上⑶的QP与左上⑶的QP之间的第二差异,若该第一差异小于第二差异,则将该上CU的QP作为该参考CU的QP预测值,若该第一差异大于或等于第二差异,则将该左CU的QP作为该参考CU的QP预测值。本实施例中的参数计算单元1304可以进一步包括第一计算模块13041,用于对尺寸大于或等于该最小图像块尺寸,且不满足预置条件的CU,将该CU的QP预测值作为该CU的QP ;第二计算模块13042,用于对尺寸大于或等于该最小图像块尺寸,且满足预置条件的CU,将该CU的QP预测值与该CU的QP差之和作为该CU的QP ;第三计算模块13043,用于对尺寸小于该最小图像块单元尺寸的⑶,若该⑶满足预置条件,则获取该CU所属的最小图像块的左上CU的QP预测值,并将该QP预测值与该CU的QP差之和作为该CU的QP,并将该CU的QP作为该最小图像块中所有CU的QP ;第四计算模块13044,用于对尺寸小于该最小图像块单元尺寸的⑶,若该⑶所属的最小图像块中所有CU均不满足预置条件,则获取该CU所属的最小图像块的左上CU的QP预测值,并将该QP预测值作为该最小图像块中所有CU的QP。请参阅图14,本发明解码装置另一实施例包括第一解析单元1401,用于对接收到的码流进行解析得到量化深度参数,该量化深度参数用于表示LCU中具有独立QP的最小图像块尺寸; 参数预测单元1402,用于按照该最小图像块尺寸与该IXU中包含的各⑶的尺寸计算各⑶的QP预测值;
第二解析单元1403,用于对每一个满足预置条件的⑶,从码流中解析得到其QP差;参数计算单元1404,用于根据该参数预测单元1402获得的各⑶的QP预测值以及该第二解析单元1403解析得到的QP差计算各CU的QP ;解码单元1405,用于按照该参数计算单元计算得到的各⑶的QP对各⑶进行解码。其中,参数预测单元1402可以进一步包括第二参数校验模块14021,用于对每一个参考⑶,判断该参考⑶的左⑶是否存在,对于尺寸大于或等于该最小图像块尺寸的CU,每一个CU作为一个参考CU,对于尺寸小于该最小图像块尺寸的⑶,该⑶所属的最小图像块的左上⑶作为一个参考⑶;

第五参数预测模块14022,用于当该参考⑶的左⑶存在时,将该左⑶的QP作为该参考CU的QP预测值;第六参数预测模块14023,用于当该参考⑶的左⑶不存在,且该参考⑶的上⑶或该参考CU的前一被编码CU存在时,将该上CU的QP或前一被编码CU的QP作为该参考CU的QP预测值;第七参数预测模块14024,用于当该参考⑶的左CU,上⑶以及前一被编码⑶均不存在时,根据该参考CU所属的条带以及图像确定该参考CU的QP预测值。本实施例中的参数计算单元1404可以进一步包括 第一计算模块14041,用于对尺寸大于或等于该最小图像块尺寸,且不满足预置条件的CU,将该CU的QP预测值作为该CU的QP ;第二计算模块14042,用于对尺寸大于或等于该最小图像块尺寸,且满足预置条件的CU,将该CU的QP预测值与该CU的QP差之和作为该CU的QP ;第三计算模块14043,用于对尺寸小于该最小图像块单元尺寸的⑶,若该⑶满足预置条件,则获取该CU所属的最小图像块的左上CU的QP预测值,并将该QP预测值与该CU的QP差之和作为该CU的QP,并将该CU的QP作为该最小图像块中所有CU的QP ;第四计算模块14044,用于对尺寸小于该最小图像块单元尺寸的⑶,若该⑶所属的最小图像块中所有CU均不满足预置条件,则获取该CU所属的最小图像块的左上CU的QP预测值,并将该QP预测值作为该最小图像块中所有CU的QP。本实施例中,编码端在编码时可以在待编码数据中写入用于表示具有独立QP的最小图像块尺寸的量化深度参数,并且对每一个满足预置条件的CU中,都携带该CU的QP差,使得每个LCU不仅仅再对应一个QP,所以在解码端进行解码时可以针对各CU进行解码,而无需针对一整个LCU进行解码,从而能够提高解码效率。本发明实施例提供的技术可以应用在数字信号处理领域中,通过编码器,解码器实现。视频编码器,解码器广泛应用于各种通讯设备或电子设备中,例如数字电视、机顶盒、媒体网关,移动电话,无线装置,个人数据助理(PDA),手持式或便携式计算机,GPS接收机/导航器,照相机,视频播放器,摄像机,录像机,监控设备,视频会议和可视电话设备等等。这类设备中包括处理器,存储器,以及传输数据的接口。视频编解码器可以直接由数字电路或芯片例如DSP (digital signal processor)实现,或者由软件代码驱动一处理器执行软件代码中的流程而实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上对本发明所提供的一种编码方法以及装置、解码方法以及装置进行了详细介绍,对于本领域的一般技术人员,依 据本发明实施例的思想,在具体实施方式
及应用范围上均会有改变之处,因此本说明书内容不应理解为对本发明的限制。
权利要求
1.一种解码方法,其特征在于,包括 对接收到的码流进行解析得到量化深度参数,所述量化深度参数用于表示最大编码单元LCU中具有独立量化参数QP的最小图像块尺寸; 按照所述最小图像块尺寸与所述IXU中包含的各编码单元⑶的尺寸计算各⑶的QP预测值; 对于每一个尺寸大于或等于所述最小图像块尺寸的CU,判断该CU是否满足所述预置条件,若满足,则从该CU中解析该CU的QP差,若不满足,则将该CU的QP差设置为O ; 对于尺寸小于所述最小图像块尺寸的CU,确定该CU所属的最小图像块,并按照该最小图像块中CU的解码次序,依次判断该最小图像块中每一个CU是否满足所述预置条件,若满足,则停止判断,并将该CU的QP差作为该最小图像块中所有CU的QP差,若该最小图像块中所有CU均不满足所述预置条件,则将该最小图像块中所有CU的QP差设置为O ; 根据所述各CU的QP预测值以及解析得到的QP差计算各CU的QP ; 按照所述各CU的QP对各CU进行解码。
2.根据权利要求I所述的方法,其特征在于,满足预置条件的CU为在其压缩码流中存在非零量化后变换系数的CU ; 所述根据所述各CU的QP预测值以及解析得到的QP差计算各CU的QP包括 对于尺寸大于或等于所述最小图像块尺寸,且不满足所述预置条件的CU,将该CU的QP预测值作为该⑶的QP ; 对于尺寸大于或等于所述最小图像块尺寸,且满足所述预置条件的CU,将该CU的QP预测值与该CU的QP差之和作为该CU的QP ; 对于尺寸小于所述最小图像块单元尺寸的CU,若该CU满足所述预置条件,则获取该CU所属的最小图像块的左上CU的QP预测值,并将该QP预测值与该QP差之和作为该CU的QP,并将该CU的QP作为该最小图像块中所有CU的QP ; 对于尺寸小于所述最小图像块单元尺寸的CU,若该CU所属的最小图像块中所有CU均不满足所述预置条件,则获取该CU所属的最小图像块的左上CU的QP预测值,并将该QP预测值作为该最小图像块中所有CU的QP。
3.根据权利要求I所述的方法,其特征在于,所述对接收到的码流进行解析得到量化深度参数包括 从对量化深度参数在码流中所处的位置使用定长解码、变长解码或算术熵解码的方法获取二进制码字; 采用定长码或变长码对所述二进制码字进行逆二值化得到所述量化深度参数; 所述从码流中解析得到其QP差包括 从对量化深度参数在码流中所处的位置使用变长解码或算术熵解码的方法获取二进制码字; 采用变长码对所述二进制码字进行逆二值化得到所述QP差。
全文摘要
本发明实施例公开了一种编码方法及装置、解码方法及装置以及编解码系统。本发明实施例方法包括编码端获取待编码数据,待编码数据至少为一个LCU;编码端按照码率控制算法确定LCU的量化深度参数,并将量化深度参数写入待编码数据;编码端根据最小图像块尺寸与LCU中包含的各CU的尺寸确定各CU的QP;编码端根据各CU的QP以及各CU的QP预测值计算各CU的QP差;对于每一个满足预置条件的CU,编码端在该CU中携带该CU的QP差;编码端对量化深度参数、满足预置条件的CU的QP差、以及各CU进行编码得到码流。本发明实施例还提供一种解码方法以及编解码装置。本发明实施例能够有效提高码率控制精度以及压缩效率。
文档编号H04N7/50GK102685484SQ20111045958
公开日2012年9月19日 申请日期2011年3月11日 优先权日2011年3月11日
发明者区子廉, 庞超, 杨海涛 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1