CN102685484A - 编码方法以及装置、解码方法以及装置 - Google Patents
编码方法以及装置、解码方法以及装置 Download PDFInfo
- Publication number
- CN102685484A CN102685484A CN201110459585XA CN201110459585A CN102685484A CN 102685484 A CN102685484 A CN 102685484A CN 201110459585X A CN201110459585X A CN 201110459585XA CN 201110459585 A CN201110459585 A CN 201110459585A CN 102685484 A CN102685484 A CN 102685484A
- Authority
- CN
- China
- Prior art keywords
- lcu
- minimum image
- size
- image piece
- coding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明实施例公开了一种编码方法及装置、解码方法及装置以及编解码系统。本发明实施例方法包括:编码端获取待编码数据,待编码数据至少为一个LCU;编码端按照码率控制算法确定LCU的量化深度参数,并将量化深度参数写入待编码数据;编码端根据最小图像块尺寸与LCU中包含的各CU的尺寸确定各CU的QP;编码端根据各CU的QP以及各CU的QP预测值计算各CU的QP差;对于每一个满足预置条件的CU,编码端在该CU中携带该CU的QP差;编码端对量化深度参数、满足预置条件的CU的QP差、以及各CU进行编码得到码流。本发明实施例还提供一种解码方法以及编解码装置。本发明实施例能够有效提高码率控制精度以及压缩效率。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种编码方法以及装置、解码方法以及装置。
背景技术
在现有视频图像编码过程中,编码端需要对原始图像块数据或预测后的图像块差值数据进行空间变换,并对变换系数进行量化操作,再对量化后的系数进行熵编码。解码端则对熵解码得到的系数进行反量化操作,重建得到变换系数,再进行反变换操作得到原始图像块数据或图像块差值数据。
为在解码端进行反量化操作,解码端需获取编码端量化过程中所采用的量化步长(QStep)。因此,编码端需要将所采用的Qstep信息写入码流中。由于不同的Qstep可以使用不同的量化参数(QP,Quantization Parameter)来表示,所以编码端可以对QP进行编码,并传输到解码端。
高效视频编码测试模型(HM,High efficiency video coding test Model)中将图像划分为等大小的最大编码单元(LCU,Largest Coding Unit),每个LCU中可以包括一个或多个大小不固定的CU。
现有技术中的一种图像编码方法中,允许具有独立的QP的最小图像是LCU,也就是说,每个LCU对应一个QP。
编码端在进行编码时,QP相关信息在图像参数集(PPS,Picture ParameterSet)中的描述为:
在条带头(SH,Slice Header)中的描述为:
在LCU中的描述为:
编码端按照上述的方式完成编码后,将编码后的数据发送至解码端,解码端对每一个LCU,采用如下方式计算当前LCU的量化参数QPLCU:
QPLCU=lcu_qp_delta+slice_qp_delta+pic_init_qp_minus26+26。
解码端得到当前LCU的QPLCU后,即可进行解码。
从上述现有技术的方案中可以看出:
现有技术中,每个LCU对应一个QP,编码端在通过调整QP以进行码率控制时,只能以LCU为最精细粒度进行控制,由于在实际应用中LCU往往会设置的比较大,例如64像素*64像素(为简便描述,后续简称为64*64,其他数据类似),所以现有技术的方案影响了码率控制的精度。
现有技术中另外一种图像编码方法中,在各LCU的每个CU中都携带有该CU的qp_delta信息,从而可以提高码率控制的精度。
但是,在该现有技术中,由于最小的CU可以设置为8*8,若在每个CU中都携带该CU的qp_delta信息,则会增加大量的编码开销,从而影响图像编码的整体压缩效率。
发明内容
本发明实施例提供了一种编码方法及装置、解码方法及装置以及编解码系统,能够有效提高码率控制精度以及压缩效率。
本发明实施例提供的编码方法,包括:编码端获取待编码数据,所述待编码数据至少为一个最大编码单元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差计算各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差计算各CU的QP;解码单元,用于按照所述参数计算单元计算得到的各CU的QP对各CU进行解码。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,编码端在编码时可以在待编码数据中写入用于表示具有独立QP的最小图像块尺寸的量化深度参数,并且对每一个满足预置条件的CU中,都携带该CU的QP差,使得每个LCU不仅仅再对应一个QP,而由LCU中满足预置条件的CU对应QP,所以编码端能够以CU为最精细粒度进行码率控制,由于一个LCU中往往包含多个CU,因此能够有效提高LCU的码率控制精度;
此外,编码端仅在满足预置条件的CU中才携带该CU的QP差,而并不会在所有的CU中都携带QP差,所以可以减少编码开销,从而有效提高整体压缩效率。
附图说明
图1为本发明编码方法一个实施例示意图;
图2为本发明解码方法一个实施例示意图;
图3为本发明编解码方法一个实施例示意图;
图4为本发明CU与邻近CU之间的位置关系示意图;
图5为本发明LCU结构示意图;
图6为本发明编码后的一种码流结构示意图;
图7为本发明编解码方法另一实施例示意图;
图8为本发明编码后的另一码流结构示意图;
图9为本发明编码装置一个实施例示意图;
图10为本发明编码装置另一实施例示意图;
图11为本发明编码装置另一实施例示意图;
图12为本发明解码装置一个实施例示意图;
图13为本发明解码装置另一实施例示意图;
图14为本发明解码装置另一实施例示意图。
具体实施方式
本发明实施例提供了一种编码方法以及装置、解码方法以及装置,能够有效提高码率控制精度以及压缩效率。
请参阅图1,本发明实施例中编码方法一个实施例包括:
101、编码端获取待编码数据;
本实施例中,编码端可以获取到待编码数据,该待编码数据至少为一个LCU,即该待编码数据可以为一个LCU,也可以为多个LCU组成的数据。
102、编码端按照预置的码率控制算法确定LCU的量化深度参数,并将量化深度参数写入待编码数据;
编码端根据预置的码率控制算法获取LCU的量化深度参数,该量化深度参数用于表示LCU中具有独立QP的最小图像块尺寸。
需要说明的是,本实施例以及后续实施例中所描述的尺寸是指边长,例如某CU为32*32,则定义其尺寸为32。
编码端可以采用尝试替代的方式获取LCU的量化深度参数,即不断调整量化深度参数的数值并进行模拟编码,使得编码后的码率符合预期的要求,具体过程此处不作限定。
当编码端确定了量化深度参数之后,可以将该量化深度参数写入待编码数据中以准备发送至解码端。
103、编码端根据最小图像块尺寸与LCU中包含的各CU的尺寸确定各CU的QP;
当编码端获取到LCU的量化深度参数之后,可以获知该量化深度参数所对应的具有独立QP的最小图像块尺寸,并根据最小图像块尺寸与LCU中包含的各CU的尺寸确定各CU的QP。
104、编码端根据各CU的QP以及各CU的QP预测值计算各CU的QP差;
本实施例中,编码端可以根据步骤103中得到的各CU的QP计算得到各CU的QP预测值,再根据该QP预测值,结合QP,计算得到各CU的QP差。
本实施例中,某CU的QP差可以定义为该CU的QP与该CU的QP预测值之间的差值。
105、对于每一个满足预置条件的CU,编码端在该CU中携带该CU的QP差;
当编码端确定了各CU的QP差之后,可以从各CU中选取满足预置条件的CU,并且在这些满足预置条件的CU中携带其QP差。
106、编码端对量化深度参数、满足预置条件的CU的QP差、以及各CU进行编码得到码流。
本实施例中,编码端将量化深度参数写入待编码数据,且将QP差写入满足预置条件的CU之后,则可以对整个待编码数据进行编码,即对量化深度参数、满足预置条件的CU的QP差、以及各CU进行编码,从而得到码流。
本实施例中,编码端在编码时可以在待编码数据中写入用于表示具有独立QP的最小图像块尺寸的量化深度参数,并且对每一个满足预置条件的CU中,都携带该CU的QP差,使得每个LCU不仅仅再对应一个QP,而由LCU中满足预置条件的CU对应QP,所以编码端能够以CU为最精细粒度进行码率控制,由于一个LCU中往往包含多个CU,因此能够有效提高LCU的码率控制精度;
此外,编码端仅在满足预置条件的CU中才携带该CU的QP差,而并不会在所有的CU中都携带QP差,所以可以减少编码开销,从而有效提高整体压缩效率。
上面从编码端的角度描述了本发明编码的过程,下面从解码端的角度描述本发明解码的过程,请参阅图2,本发明解码方法一个实施例包括:
201、解码端对接收到的码流进行解析得到量化深度参数;
本实施例中,解码端可以从编码端接收到经过编码的码流,由于编码端在编码时,在待编码数据中写入了量化深度参数,所以解码端可以按照预先的约定从码流相应的位置解析出该量化深度参数。
该量化深度参数用于表示LCU中具有独立QP的最小图像块尺寸。
202、解码端按照最小图像块尺寸与LCU中包含的各CU的尺寸计算各CU的QP预测值;
本实施例中,解码端从码流中解析得到量化深度参数之后,可以根据该量化深度参数获知具有独立QP的最小图像块尺寸,并且根据该最小图像块尺寸与LCU中包含的各CU的尺寸计算得到各CU的QP预测值。
203、对于每一个满足预置条件的CU,解码端从码流中解析得到其QP差;
本实施例中,解码端还可以对每一个满足预置条件的CU,从码流中解析得到该CU的QP差。
需要说明的是,解码端得到QP差的过程与解码端计算各CU的QP预测值的过程并无先后顺序的限制,可以先执行得到QP差的过程,也可以先执行计算各CU的QP预测值的过程,或者还可以同时执行两个过程,具体此处不作限定。
204、解码端根据各CU的QP预测值以及解析得到的QP差计算各CU的QP;
解码端通过步骤202获知了各CU的QP预测值以及步骤203解析得到QP差之后,可以根据这些参数计算各CU的QP。
205、解码端按照各CU的QP对各CU进行解码。
本实施例中,当解码端获知各CU的QP之后,则可以对各CU进行反量化处理以及后续的解码过程,具体此处不作限定。
本实施例中,编码端在编码时可以在待编码数据中写入用于表示具有独立QP的最小图像块尺寸的量化深度参数,并且对每一个满足预置条件的CU中,都携带该CU的QP差,使得每个LCU不仅仅再对应一个QP,所以在解码端进行解码时可以针对各CU进行解码,而无需针对一整个LCU进行解码,从而能够提高解码效率。
为便于理解,下面从编解码的角度进行描述,请参阅图3,本发明编解码方法一个实施例包括:
301、编码端获取待编码的序列、图像或条带;
本实施例中,编码端获取到的待编码数据为序列或图像或条带,需要说明的是,一个序列中包含若干个图像,一个图像中包含若干个条带,一个条带中包含若干个LCU。
也就是说,本实施例中,编码端获取到的待编码数据为多个LCU。
302、编码端按照预置的码率控制算法确定LCU的量化深度参数lcu_qp_depth;
编码端根据预置的码率控制算法获取对应的lcu_qp_depth的数值,具体的,编码端可以采用尝试替代的方式获取lcu_qp_depth的数值,即不断调整lcu_qp_depth的数值并进行模拟编码,使得编码后的码率符合预期的要求,具体过程此处不作限定。
本实施例中的lcu_qp_depth的取值范围可以取0至MaxSymbol内的所有整数,其中,MaxSymbol可以通过如下方式计算:
MaxSymbol=log2(max_coding_block_size)-log2(min_coding_block_size);
其中,max_coding_block_size表示最大的CU的尺寸,即LCU的尺寸,min_coding_block_size表示最小的CU的尺寸。
需要说明的是,本实施例以及后续实施例中所描述的尺寸是指边长,例如某CU为32*32,则定义其尺寸为32。
本实施例中,该lcu_qp_depth用于表示LCU中具有独立QP的最小图像块尺寸,当lcu_qp_depth为0时,表示具有独立QP的最小图像块即为LCU,当lcu_qp_depth为1时,表示将LCU划分为4个32*32的CU,最小图像块尺寸为32,以此类推。
本实施例中的lcu_qp_depth是指序列、图像或条带中的每一个LCU的具有独立QP的最小图像块尺寸,也就是说,该序列、图像或条带中的所有LCU均使用相同的lcu_qp_depth。
303、编码端将lcu_qp_depth写入序列参数集、图像参数集或条带头信息;
本实施例中,编码端在获取到lcu_qp_depth的数值之后,可以将该lcu_qp_depth写入待编码数据:
编码端可以将lcu_qp_depth写入该序列的序列参数集(SPS,SequenceParameter Set),具体可以如下所示:
或者,编码端可以将lcu_qp_depth写入该图像的PPS,具体可以如下所示:
或者,编码端可以将lcu_qp_depth写入该条带的条带头信息,具体可以如下所示:
可以理解的是,本实施例中仅以几个例子说明了lcu_qp_depth的写入位置,在实际应用中,该lcu_qp_depth还可以写入序列、图像或条带的其他位置,具体此处不作限定。
304、编码端计算包含独立QP的最小图像块尺寸QPBlkSize;
编码端获取到lcu_qp_depth之后,可以根据该lcu_qp_depth计算最小图像块QPBlk的尺寸QPBlkSize。
假设LCU大小为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的CU。
305、编码端根据QPBlkSize、CU的尺寸获取各CU的QP;
本实施例中,编码端可以分以下几种情况获取各CU的QP:
对于尺寸大于或等于QPBlkSize的CU,编码端按照预置的码率控制算法计算该CU的QP;
对于尺寸小于QPBlkSize的CU,编码端首先确定该CU所属的最小图像块,然后按照预置的码率控制算法计算该最小图像块的QP,并将该最小图像块的QP作为该最小图像块中所有CU的QP。
本实施例中,编码端按照预置的码率控制算法计算QP的过程为本领域技术人员的公知常识,具体此处不作限定。
306、编码端获取各CU的QP预测值;
当编码端获取到各CU的QP之后,则可以按照编码次序(解码次序与编码次序相同),使用各CU邻近的已编码的CU的QP获取各CU的QP预测值。典型的,该邻近已编码的CU包括左CU,上CU与左上CU。
为便于描述,首先对参考CU进行定义:
编码端将每一个尺寸大于或等于QPBlkSize的CU作为一个参考CU,且对于尺寸小于QPBlkSize的CU,编码端确定该CU所属的最小图像块,并将该最小图像块的左上CU作为一个参考CU。
定义了参考CU之后,编码端可以根据各参考CU的该邻近CU的QP计算各参考CU的QP预测值,具体的计算方式可以有多种,下面以几个例子进行说明:
一、采用左CU、上CU以及左上CU进行计算:
请参阅图4,其中,CUC为某参考CU,该CU可以是一个尺寸大于或等于QPBlkSize的CU,也可以是位于最小图像块的左上角的CU。
CUU为CUC的上CU,CUL为CUC的左CU,CUUL为CUC的左上CU,本实施例中,CUC的邻近CU为左CU、上CU以及左上CU,其中:
CUC的左上角像素坐标为(xc,yc),则CUL为包含像素点(xc-1,yc)的CU,CUU为包含像素点(xc,yc-1)的CU,CUUL为包含像素点(xc-1,yc-1)的CU。
编码端确定了参考CU的邻近CU之后,可以根据步骤305计算的结果获取这些CU的QP,其中,CUC的QP为QPC,CUU的QP为QPU,CUL的QP为QPL,CUUL的QP为QPUL。
需要说明的是,并不是每一个CU都能获取到其左CU、上CU以及左上CU,例如本身就位于图像或条带最左侧的CU就不会存在左CU,因此,编码端可以按照如下一些具体条件确定各CU的预测值:
(1)若CUC的邻近CU均不存在,则根据该CUC所属的条带以及图像确定该CUC的QP预测值QPP;
具体的,QPP=slice_qp_delta+pic_init_qp_minus26+26,其中,slice_qp_delta为包含在条带头信息中的信息,pic_init_qp_minus26为包含在图像参数集中的信息。
(2)若CUC只存在CUL,则将QPL作为QPP;
(3)若CUC只存在CUU,则将QPU作为QPP;
(4)若CUC的邻近CU均存在,则获取QPL与QPUL之间的第一差异|QPL-QPUL|,以及QPU与QPUL之间的第二差异|QPU-QPUL|。
若|QPL-QPUL|<|QPU-QPUL|,则表示QPL和QPUL的差异小于QPU和QPUL的差异。这种情况下,CUL和CUUL很有可能属于图像中的同一个物体,物体边缘出现在CUU和CUUL边缘,所以可以采用QPU作为QPP;
若|QPL-QPUL|>=|QPU-QPUL|,按照上述的推理,则可以将QPL作为QPP。
在实际应用中,可以用下述代码实现上述流程:
可以理解的是,上述的代码仅仅是实现过程中的一个例子,在实际应用中,还可以使用其他类似的代码实现,具体实现方式此处不作限定。
二、采用左CU、上CU以及前一被编码CU进行计算:
同样请参阅图4,本实施例中,可以使用CUL以及CUU作为某参考CUC的邻近CU,CUC可以是一个尺寸大于或等于QPBlkSize的CU,也可以是位于最小图像块的左上角的CU。
CUC的左上角像素坐标为(xc,yc),则CUL为包含像素点(xc-1,yc)的CU,CUU为包含像素点(xc,yc-1)的CU,CUC的QP为QPC,CUU的QP为QPU,CUL的QP为QPL。
需要说明的是,并不是每一个CU都能获取到其左CU以及上CU,例如本身就位于图像或条带最左侧的CU就不会存在左CU,因此,编码端可以按照如下一些具体条件确定各CU的预测值:
(1)若CUC的CUL存在,则将QPL作为QPP;
(2)若CUC的CUL不存在,且CUC的CUU或该CUC的前一被编码CU存在,则将QPU或前一被编码CU的QP作为QPP;
(3)若CUC的CUL不存在,且CUC的CUU与该CUC的前一被编码CU都存在,则将QPU或前一被编码CU的QP作为QPP,具体使用QPU还是前一被编码CU的QP作为QPP,可在编解码端预先规定;
(4)若CUC的CUL,CUU以及前一被编码CU均不存在,则根据该CUC所属的条带以及图像确定QPP:
具体的,QPP=slice_qp_delta+pic_init_qp_minus26+26,其中,slice_qp_delta为包含在条带头信息中的信息,pic_init_qp_minus26为包含在图像参数集中的信息。
上述仅以两个例子说明了编码端计算各参考CU的QP预测值的过程,可以理解的是,在实际应用中,编码端还可以采用更多的方式计算各参考CU的QP预测值,具体此处不作限定。
307、编码端将满足预置条件的CU的QP差cu_qp_delta写入该CU;
编码端通过步骤305计算得到了各CU的QP,通过步骤306计算得到了各参考CU的QP预测值,则编码端可以根据这些参数进一步计算各CU的QP差cu_qp_delta,具体计算方式可以为:
对于每一个参考CU,编码端将该参考CU的QP与该参考CU的QP预测值之间的差值作为该参考CU的QP差,即cu_qp_delta=QPC-QPP;
若该参考CU所属的最小图像块中包含其它CU,则编码端将该参考CU的QP差作为该最小图像块内其它CU的QP差。
也就是说,对于CU的尺寸大于或等于QPBlkSize的CU,由于这一类CU本身即是参考CU,所以编码端可以将这些CU的QP与QP预测值之间的差值作为这些CU的cu_qp_delta;
对于CU的尺寸小于QPBlkSize的CU,即相当于一个最小图像块中包含若干个CU,该最小图像块的左上角的CU为参考CU,通过步骤306可以获知该参考CU的QP预测值,再结合步骤305中计算的QP可以得到该参考CU的cu_qp_delta=QPC-QPP,之后再将该参考CU的cu_qp_delta赋值给该最小图像块内其他的CU,需要说明的是,在实际应用中,除了使用赋值操作之外,还可以采用别的方式处理,例如若判断该最小图像块中某CU满足预置条件,则将该CU中携带该CU所属的最小图像块的参考CU的cu_qp_delta。
本实施例中,编码端获取到各CU的cu_qp_delta之后,可以在满足预置条件的CU中携带该CU的cu_qp_delta,具体的满足预置条件的CU可以为在其压缩码流中存在非零量化后变换系数的CU。
若某CU采用skip编码模式,则其压缩码流中不会存在非零量化后变换系数,则此类CU不满足预置条件,若不采用skip编码模式,则CU在其压缩码流中可能会包含有非零量化后变换系数,这部分CU则满足预置条件。
本实施例中,对于满足预置条件的CU,编码端可以将该CU的cu_qp_delta写入该CU的如下位置:
其中,sig_coeff_num>0是当前CU对应的码流中是否存在cu_qp_delta的判决条件,若该判决条件为真,则说明当前CU对应的码流中存在cu_qp_delta,若该判决条件为假,则说明当前CU对应的码流中不存在cu_qp_delta。
需要说明的是,对于尺寸小于QPBlkSize的CU而言,编码端按照编码次序依次判断该CU所属的最小图像块中的CU是否满足预置条件,若一个CU不满足预置条件,则继续判断后续的CU是否满足预置条件,若后续的某个CU满足预置条件,则将该CU的cu_qp_delta写入该CU中,并且停止判断,即不再为该最小图像块中的其他CU写入cu_qp_delta,而无论这些CU是否满足预置条件。
需要说明的是,由于并非所有CU均满足该预置条件,所以编码端除了在满足预置条件的CU中携带该CU的cu_qp_delta之外,还可以对不满足预置条件的CU的QP进行重新设置,具体方式可以为:
对于每一个不满足预置条件的CU,编码端通过如下方式设置该CU的QP:
对于尺寸大于或等于QPBlkSize的CU,编码端将该CU的QP预测值作为该CU的QP;
对于尺寸小于QPBlkSize的CU,若该CU所属的最小图像块中的其它CU均不满足预置条件,则编码端将该CU所属的最小图像块中的参考CU的QP预测值作为该CU的QP。
通过上述对不满足预置条件的CU的QP的重新设置,可以保证后续编码CU在进行QP预测时能够获取与解码端相同的预测值。
308、编码端对lcu_qp_depth、cu_qp_delta以及各CU进行编码得到码流;
编码端在获取到lcu_qp_depth、cu_qp_delta之后可以对各CU进行编码,本实施例中,
编码端对lcu_qp_depth进行编码的过程可以包括:
编码端采用定长码或变长码对lcu_qp_depth进行二值化得到对应的二进制码字;
编码端将获得的二进制码字按照定长编码、变长编码或算术熵编码的方法写入步骤302中确定的位置所对应的码流。
其中,编码端所采用的变长码可以为无符号的指数哥伦布码,或其他类似的变长码,具体此处不作限定。
编码端对cu_qp_delta进行编码的过程可以包括:
编码端采用变长码对满足预置条件的CU的cu_qp_delta进行二值化得到对应的二进制码字;
编码端将获得的二进制码字按照变长编码或算术熵编码的方法写入码流。
编码端将获得的二进制码字按照定长编码、变长编码或算术熵编码的方法写入步骤307中确定的位置所对应的码流。
其中,编码端所采用的变长码可以为带符号的指数哥伦布码,或其他类似的变长码,具体此处不作限定。
本实施例中,编码端对CU的编码过程此处不作限定,当编码完成后即得到码流,编码端可以向解码端发送该码流。
309、解码端对接收到的码流进行解码得到lcu_qp_depth;
解码端接收到码流之后,可以根据预先与编码端的约定获知lcu_qp_depth在码流中所处的位置为SPS,或PPS,或SH,从而对这部分的内容使用定长解码、变长解码或算术熵解码的方法获取二进制码字;
解码端采用定长码或变长码对二进制码字进行逆二值化得到lcu_qp_depth。
本实施例中的变长码可以为无符号的指数哥伦布码,或者是其他类似的变长码,具体此处不作限定。
本实施例中的lcu_qp_depth用于表示序列、或图像、或条带中每一个LCU中具有独立QP的最小图像块尺寸。
310、解码端计算包含独立QP的最小图像块尺寸QPBlkSize;
解码端计算得到lcu_qp_depth之后,可以根据该lcu_qp_depth计算得到QPBlkSize,具体的计算方式可以与前述步骤304中编码端计算QPBlkSize的方式相同,具体此处不再赘述。
311、解码端从满足预置条件的CU中解析得到该CU的cu_qp_delta;
本实施例中,对于每一个满足预置条件的CU,解码端可以从该CU的码流中对应的位置使用变长解码或算术熵解码的方法获取二进制码字;
解码端采用变长码对二进制码字进行逆二值化得到该CU的cu_qp_delta。
本实施例中的变长码可以为带符号的指数哥伦布码,或者是其他类似的变长码,具体此处不作限定。
需要说明的是,按照前述步骤307中的描述,sig_coeff_num>0是当前CU对应的码流中是否存在cu_qp_delta的判决条件,所以解码端可以通过校验该判决条件以获知该CU是否满足预置条件,满足预置条件的CU同样可以为在其压缩码流中存在非零量化后变换系数的CU。
本实施例中,由于不是所有CU都是满足预置条件的CU,所以解码端可以按照如下方式确定所有CU的cu_qp_delta:
对于每一个尺寸大于或等于QPBlkSize的CU,解码端判断该CU是否满足预置条件,若满足,则从该CU中解析该CU的cu_qp_delta,若不满足,则将该CU的cu_qp_delta设置为0;
对于尺寸小于QPBlkSize的CU,解码端确定该CU所属的最小图像块,并按照该最小图像块中CU的解码次序,依次判断该最小图像块中每一个CU是否满足预置条件,若满足,则停止判断,并将该CU的cu_qp_delta作为该最小图像块中所有CU的cu_qp_delta,若该最小图像块中所有CU均不满足预置条件,则将该最小图像块中所有CU的cu_qp_delta设置为0。
312、解码端根据QPBlkSize、CU的尺寸获取各CU的QP预测值;
当解码端获取到QPBlkSize之后,则可以根据各CU的尺寸以及该QPBlkSize获取各CU的QP预测值。
本步骤具体过程与前述步骤306中编码端获取各CU的QP预测值的方式相同。按306中描述,邻近区域为已编码或已解码区域,因为编码次序与解码次序相同,所以已编码区域与已解码区域为统一区域。因为该临近区域内CU的QP都可得,所以可按照306中相同的方法获得各CU的QP预测值。
当获得各CU的QP预测值之后,结合步骤311中获取到的各CU的cu_qp_delta,则可以得到该CU的QP,即QP=QP预测值+cu_qp_delta。
313、解码端根据各CU的QP预测值及cu_qp_delta计算各CU的QP;
解码端计算得到各CU的QP预测值之后,则可以根据各CU的QP预测值及cu_qp_delta计算各CU的QP,具体方式可以为:
对于尺寸大于或等于QPBlkSize,且不满足预置条件的CU,解码端将该CU的QP预测值作为该CU的QP;
对于尺寸大于或等于QPBlkSize,且满足预置条件的CU,解码端将该CU的QP预测值与该CU的cu_qp_delta之和作为该CU的QP;
对于尺寸小于QPBlkSize的CU,若该CU满足预置条件,则解码端获取该CU所属的最小图像块的左上CU的QP预测值,并将该QP预测值与该cu_qp_delta之和作为该CU的QP,并将该CU的QP作为该最小图像块中所有CU的QP;
对于尺寸小于QPBlkSize的CU,若该CU所属的最小图像块中所有CU均不满足预置条件,则解码端获取该CU所属的最小图像块的左上CU的QP预测值,并将该QP预测值作为该最小图像块中所有CU的QP。
314、解码端按照各CU的QP对各CU进行解码。
本实施例中,解码端可以使用步骤313中得到各CU的QP对各CU进行反量化处理以及后续的解码过程,具体此处不作限定。
为便于理解,下面以一具体实例对本发明编解码方法进行简要描述,请参阅图5,图5为本发明LCU结构示意图,其中,max_coding_block_size为64,QPBlkSize为16。
从图5中可以看出,该LCU中包含37个CU,其中,画叉的CU为采用skip编码的CU,即不满足预置条件的CU,其余的CU中,假设CU3和CU23在其压缩码流中包含量化后变换系数全部为0,则CU3以及CU23也为不满足预置条件的CU,其余的CU为满足预置条件的CU。
则按照前述图3实施例中所描述的编码过程,图5所示的LCU经过编码之后得到的码流结构如图6所示,M1,M2...M37等为头信息,C1,C4...C37等为变换系数,DQP1,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预测值时可以采用多种预测方式,使得计算过程更加灵活,从而能适应多个不同的环境。
上面介绍了一种编解码方法,下面介绍另外一种编解码方法,具体请参阅图7,本发明编解码方法另一实施例包括:
701、编码端获取待编码的LCU;
本实施例中,编码端获取到的待编码数据为一个LCU。
702、编码端按照预置的码率控制算法确定LCU的量化深度参数lcu_qp_depth;
编码端根据预置的码率控制算法获取对应的lcu_qp_depth的数值,具体的,编码端可以采用尝试替代的方式获取lcu_qp_depth的数值,即不断调整lcu_qp_depth的数值并进行模拟编码,使得编码后的码率符合预期的要求,具体过程此处不作限定。
本实施例中的lcu_qp_depth的取值范围可以取0至MaxSymbol内的所有整数,其中,MaxSymbol可以通过如下方式计算:
MaxSymbol=log2(max_coding_block_size)-log2(min_coding_block_size);
其中,max_coding_block_size表示最大的CU的尺寸,即LCU的尺寸,min_coding_block_size表示最小的CU的尺寸。
需要说明的是,本实施例以及后续实施例中所描述的尺寸是指边长,例如某CU为32*32,则定义其尺寸为32。
本实施例中,该lcu_qp_depth用于表示LCU中具有独立QP的最小图像块尺寸,当lcu_qp_depth为0时,表示具有独立QP的最小图像块即为LCU,当lcu_qp_depth为1时,表示将LCU划分为4个32*32的CU,最小图像块尺寸为32,以此类推。
本实施例中的lcu_qp_depth是指当前的一个LCU的具有独立QP的最小图像块尺寸,也就是说,该序列、图像或条带中的每一个LCU均使用独立的lcu_qp_depth,每一个LCU所使用的lcu_qp_depth均有可能不相同。
703、编码端将lcu_qp_depth写入当前LCU中按编码次序第一个在其压缩码流中存在非零量化后变换系数的CU中;
本实施例中,编码端在获取到lcu_qp_depth的数值之后,可以将该lcu_qp_depth写入当前LCU中按编码次序第一个在其压缩码流中存在非零量化后变换系数的CU中:
其中,引入lcu_qp_depthFlag变量是为达到仅为在第一个在其压缩码流中存在非零量化后变换系数的CU中传输lcu_qp_depth的目的。当然也可使用其它方法实现同样的码流结构。
本实施例中,sig_coeff_num>0是当前CU码流中是否存在lcu_qp_depth的判决条件。在满足该判决条件时,lcu_qp_depth也可放在当前CU码流中的其它位置,具体此处不作限定。
由于并不是每一个CU都符合携带lcu_qp_depth的条件,所以,本实施例中,编码端在当前LCU中,按照CU的编码顺序,对每一个CU检验其是否具备携带lcu_qp_depth的条件,即该CU是否为第一个在其压缩码流中存在非零量化后变换系数的CU。
如果当前CU不具备携带lcu_qp_depth的条件,则编码端继续对当前LCU种后续的CU进行检验。若在某CU中发现其具备携带lcu_qp_depth的条件,则在前述规定的位置将lcu_qp_depth写入该CU。
本实施例中,当编码端在某个CU中写入了lcu_qp_depth之后,则无需在该CU所属的LCU的其他CU中再写入lcu_qp_depth。
704~708、与前述图3所示实施例中的步骤304~308相同,此处不再赘述。
709、解码端对接收到的码流进行解码得到lcu_qp_depth;
解码端接收到码流之后,可以根据预先与编码端的约定获知lcu_qp_depth在码流中所处的位置,从而对这部分的内容使用定长解码、变长解码或算术熵解码的方法获取二进制码字;
解码端采用定长码或变长码对二进制码字进行逆二值化得到lcu_qp_depth。
本实施例中的变长码可以为无符号的指数哥伦布码,或者是其他类似的变长码,具体此处不作限定。
本实施例中的lcu_qp_depth用于表示当前的LCU中具有独立QP的最小图像块尺寸。
710~714、与前述图3所示实施例中描述的步骤310~314相同,此处不再赘述。
为便于理解,下面以一具体实例对本发明编解码方法进行简要描述,同样请参阅图5,图5为本发明LCU结构示意图,其中,max_coding_block_size为64,QPBlkSize为16。
从图5中可以看出,该LCU中包含37个CU,其中,画叉的CU为采用skip编码的CU,即不满足预置条件的CU,其余的CU中,假设CU3和CU23在其压缩码流中包含量化后变换系数全部为0,则CU3以及CU23也为不满足预置条件的CU,其余的CU为满足预置条件的CU。
则按照前述图7所示实施例中所描述的编码过程,图5所示的LCU经过编码之后得到的码流结构如图8所示,depth为lcu_qp_depth,M1,M2...M37等为头信息,C1,C4...C37等为变换系数,DQP1,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用于表示当前的LCU中具有独立QP的最小图像块尺寸,所以每个LCU会携带一个lcu_qp_depth,使得不同的LCU可以使用不同的lcu_qp_depth,从而能够进一步提高LCU的码率控制精度。
下面对本发明编码装置实施例进行描述,请参阅图9,本发明编码装置一个实施例包括:
数据获取单元901,用于获取待编码数据,该待编码数据至少为一个最大编码单元LCU;
深度参数处理单元902,用于按照预置的码率控制算法确定该LCU的量化深度参数,并将该量化深度参数写入该数据获取单元901获取到的待编码数据,该量化深度参数用于表示该LCU中具有独立QP的最小图像块尺寸;
量化参数确定单元903,用于根据该最小图像块尺寸与该LCU中包含的各CU的尺寸确定各CU的QP;
计算单元904,用于根据该量化参数确定单元903确定的各CU的QP以及各CU的QP预测值计算各CU的QP差;
填充单元905,用于对于每一个满足预置条件的CU,在该CU中携带该CU的QP差;
编码单元906,用于对该量化深度参数、满足预置条件的CU的QP差、以及各CU进行编码得到码流。
为便于理解,下面对本发明编码装置进行详细描述,具体请参阅图10,本发明编码装置另一实施例包括:
数据获取单元1001,用于获取待编码数据,该待编码数据至少为一个最大编码单元LCU;
深度参数处理单元1002,用于按照预置的码率控制算法确定该LCU的量化深度参数,并将该量化深度参数写入该数据获取单元1001获取到的待编码数据,该量化深度参数用于表示该LCU中具有独立QP的最小图像块尺寸;
量化参数确定单元1003,用于根据该最小图像块尺寸与该LCU中包含的各CU的尺寸确定各CU的QP;
计算单元1005,用于根据该量化参数确定单元1003确定的各CU的QP以及各CU的QP预测值计算各CU的QP差;
填充单元1006,用于对于每一个满足预置条件的CU,在该CU中携带该CU的QP差;
编码单元1007,用于对该量化深度参数、满足预置条件的CU的QP差、以及各CU进行编码得到码流。
本实施例中的编码装置还可以进一步包括:
预测单元1004,用于根据各参考CU的邻近CU的QP计算各参考CU的QP预测值;
对于尺寸大于或等于该最小图像块尺寸的CU,每一个CU作为一个参考CU,对于尺寸小于该最小图像块尺寸的CU,该CU所属的最小图像块的左上CU作为一个参考CU。
本实施例中的预测单元1004包括:
第一校验模块10041,用于对每一个参考CU,判断该参考CU的邻近CU是否存在,该参考CU的邻近CU包括该参考CU的左CU,上CU以及左上CU;
第一预测模块10042,用于当该参考CU的邻近CU均不存在时,根据该参考CU所属的条带以及图像确定该参考CU的QP预测值;
第二预测模块10043,用于当该参考CU只存在左CU时,将该左CU的QP作为该参考CU的QP预测值;
第三预测模块10044,用于当该参考CU只存在上CU时,将该上CU的QP作为该参考CU的QP预测值;
第四预测模块10045,用于当该参考CU的邻近CU均存在时,获取左CU的QP与左上CU的QP之间的第一差异,以及上CU的QP与左上CU的QP之间的第二差异,若该第一差异小于第二差异,则将该上CU的QP作为该参考CU的QP预测值,若该第一差异大于或等于第二差异,则将该左CU的QP作为该参考CU的QP预测值。
请参阅图11,本发明编码装置另一实施例包括:
数据获取单元1101,用于获取待编码数据,该待编码数据至少为一个最大编码单元LCU;
深度参数处理单元1102,用于按照预置的码率控制算法确定该LCU的量化深度参数,并将该量化深度参数写入该数据获取单元1101获取到的待编码数据,该量化深度参数用于表示该LCU中具有独立QP的最小图像块尺寸;
量化参数确定单元1103,用于根据该最小图像块尺寸与该LCU中包含的各CU的尺寸确定各CU的QP;
计算单元1105,用于根据该量化参数确定单元1103确定的各CU的QP以及各CU的QP预测值计算各CU的QP差;
填充单元1106,用于对于每一个满足预置条件的CU,在该CU中携带该CU的QP差;
编码单元1107,用于对该量化深度参数、满足预置条件的CU的QP差、以及各CU进行编码得到码流。
本实施例中的编码装置还可以进一步包括:
预测单元1104,用于根据各参考CU的邻近CU的QP计算各参考CU的QP预测值;
对于尺寸大于或等于该最小图像块尺寸的CU,每一个CU作为一个参考CU,对于尺寸小于该最小图像块尺寸的CU,该CU所属的最小图像块的左上CU作为一个参考CU。
本实施例中的预测单元1104包括:
第二校验模块11041,用于对每一个参考CU,判断该参考CU的左CU是否存在;
第五预测模块11042,用于当该参考CU的左CU存在时,将该左CU的QP作为该参考CU的QP预测值;
第六预测模块11043,用于当该参考CU的左CU不存在,且该参考CU的上CU或该参考CU的前一被编码CU存在时,将该上CU的QP或前一被编码CU的QP作为该参考CU的QP预测值;
第七预测模块11044,用于当该参考CU的左CU,上CU以及前一被编码CU均不存在时,根据该参考CU所属的条带以及图像确定该参考CU的QP预测值。
本实施例中,编码端在编码时可以在待编码数据中写入用于表示具有独立QP的最小图像块尺寸的量化深度参数,并且对每一个满足预置条件的CU中,都携带该CU的QP差,使得每个LCU不仅仅再对应一个QP,而由LCU中满足预置条件的CU对应QP,所以编码端能够以CU为最精细粒度进行码率控制,由于一个LCU中往往包含多个CU,因此能够有效提高LCU的码率控制精度;
其次,编码端仅在满足预置条件的CU中才携带该CU的QP差,而并不会在所有的CU中都携带QP差,所以可以减少编码开销,从而有效提高整体压缩效率。
下面对本发明编码装置实施例进行描述,请参阅图12,本发明解码装置一个实施例包括:
第一解析单元1201,用于对接收到的码流进行解析得到量化深度参数,该量化深度参数用于表示LCU中具有独立QP的最小图像块尺寸;
参数预测单元1202,用于按照该最小图像块尺寸与该LCU中包含的各CU的尺寸计算各CU的QP预测值;
第二解析单元1203,用于对每一个满足预置条件的CU,从码流中解析得到其QP差;
参数计算单元1204,用于根据该参数预测单元1202获得的各CU的QP预测值以及该第二解析单元1203解析得到的QP差计算各CU的QP;
解码单元1205,用于按照该参数计算单元1204计算得到的各CU的QP对各CU进行解码。
为便于理解,下面对本发明编码装置进行详细描述,具体请参阅图13,本发明解码装置另一实施例包括:
第一解析单元1301,用于对接收到的码流进行解析得到量化深度参数,该量化深度参数用于表示LCU中具有独立QP的最小图像块尺寸;
参数预测单元1302,用于按照该最小图像块尺寸与该LCU中包含的各CU的尺寸计算各CU的QP预测值;
第二解析单元1303,用于对每一个满足预置条件的CU,从码流中解析得到其QP差;
参数计算单元1304,用于根据该参数预测单元1302获得的各CU的QP预测值以及该第二解析单元1303解析得到的QP差计算各CU的QP;
解码单元1305,用于按照该参数计算单元计算得到的各CU的QP对各CU进行解码。
其中,参数预测单元1302可以进一步包括:
第一参数校验模块13021,用于对每一个参考CU,判断该参考CU的邻近CU是否存在,该参考CU的邻近CU包括该参考CU的左CU,上CU以及左上CU,对于尺寸大于或等于该最小图像块尺寸的CU,每一个CU作为一个参考CU,对于尺寸小于该最小图像块尺寸的CU,该CU所属的最小图像块的左上CU作为一个参考CU;
第一参数预测模块13022,用于当该参考CU的邻近CU均不存在时,根据该参考CU所属的条带以及图像确定该参考CU的QP预测值;
第二参数预测模块13023,用于当该参考CU只存在左CU时,将该左CU的QP作为该参考CU的QP预测值;
第三参数预测模块13024,用于当该参考CU只存在上CU时,将该上CU的QP作为该参考CU的QP预测值;
第四参数预测模块13025,用于当该参考CU的邻近CU均存在时,获取左CU的QP与左上CU的QP之间的第一差异,以及上CU的QP与左上CU的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满足预置条件,则获取该CU所属的最小图像块的左上CU的QP预测值,并将该QP预测值与该CU的QP差之和作为该CU的QP,并将该CU的QP作为该最小图像块中所有CU的QP;
第四计算模块13044,用于对尺寸小于该最小图像块单元尺寸的CU,若该CU所属的最小图像块中所有CU均不满足预置条件,则获取该CU所属的最小图像块的左上CU的QP预测值,并将该QP预测值作为该最小图像块中所有CU的QP。
请参阅图14,本发明解码装置另一实施例包括:
第一解析单元1401,用于对接收到的码流进行解析得到量化深度参数,该量化深度参数用于表示LCU中具有独立QP的最小图像块尺寸;
参数预测单元1402,用于按照该最小图像块尺寸与该LCU中包含的各CU的尺寸计算各CU的QP预测值;
第二解析单元1403,用于对每一个满足预置条件的CU,从码流中解析得到其QP差;
参数计算单元1404,用于根据该参数预测单元1402获得的各CU的QP预测值以及该第二解析单元1403解析得到的QP差计算各CU的QP;
解码单元1405,用于按照该参数计算单元计算得到的各CU的QP对各CU进行解码。
其中,参数预测单元1402可以进一步包括:
第二参数校验模块14021,用于对每一个参考CU,判断该参考CU的左CU是否存在,对于尺寸大于或等于该最小图像块尺寸的CU,每一个CU作为一个参考CU,对于尺寸小于该最小图像块尺寸的CU,该CU所属的最小图像块的左上CU作为一个参考CU;
第五参数预测模块14022,用于当该参考CU的左CU存在时,将该左CU的QP作为该参考CU的QP预测值;
第六参数预测模块14023,用于当该参考CU的左CU不存在,且该参考CU的上CU或该参考CU的前一被编码CU存在时,将该上CU的QP或前一被编码CU的QP作为该参考CU的QP预测值;
第七参数预测模块14024,用于当该参考CU的左CU,上CU以及前一被编码CU均不存在时,根据该参考CU所属的条带以及图像确定该参考CU的QP预测值。
本实施例中的参数计算单元1404可以进一步包括:
第一计算模块14041,用于对尺寸大于或等于该最小图像块尺寸,且不满足预置条件的CU,将该CU的QP预测值作为该CU的QP;
第二计算模块14042,用于对尺寸大于或等于该最小图像块尺寸,且满足预置条件的CU,将该CU的QP预测值与该CU的QP差之和作为该CU的QP;
第三计算模块14043,用于对尺寸小于该最小图像块单元尺寸的CU,若该CU满足预置条件,则获取该CU所属的最小图像块的左上CU的QP预测值,并将该QP预测值与该CU的QP差之和作为该CU的QP,并将该CU的QP作为该最小图像块中所有CU的QP;
第四计算模块14044,用于对尺寸小于该最小图像块单元尺寸的CU,若该CU所属的最小图像块中所有CU均不满足预置条件,则获取该CU所属的最小图像块的左上CU的QP预测值,并将该QP预测值作为该最小图像块中所有CU的QP。
本实施例中,编码端在编码时可以在待编码数据中写入用于表示具有独立QP的最小图像块尺寸的量化深度参数,并且对每一个满足预置条件的CU中,都携带该CU的QP差,使得每个LCU不仅仅再对应一个QP,所以在解码端进行解码时可以针对各CU进行解码,而无需针对一整个LCU进行解码,从而能够提高解码效率。
本发明实施例提供的技术可以应用在数字信号处理领域中,通过编码器,解码器实现。视频编码器,解码器广泛应用于各种通讯设备或电子设备中,例如:数字电视、机顶盒、媒体网关,移动电话,无线装置,个人数据助理(PDA),手持式或便携式计算机,GPS接收机/导航器,照相机,视频播放器,摄像机,录像机,监控设备,视频会议和可视电话设备等等。这类设备中包括处理器,存储器,以及传输数据的接口。视频编解码器可以直接由数字电路或芯片例如DSP(digital signal processor)实现,或者由软件代码驱动一处理器执行软件代码中的流程而实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种编码方法以及装置、解码方法以及装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,因此本说明书内容不应理解为对本发明的限制。
Claims (3)
1.一种解码方法,其特征在于,包括:
对接收到的码流进行解析得到量化深度参数,所述量化深度参数用于表示最大编码单元LCU中具有独立量化参数QP的最小图像块尺寸;
按照所述最小图像块尺寸与所述LCU中包含的各编码单元CU的尺寸计算各CU的QP预测值;
对于每一个尺寸大于或等于所述最小图像块尺寸的CU,判断该CU是否满足所述预置条件,若满足,则从该CU中解析该CU的QP差,若不满足,则将该CU的QP差设置为0;
对于尺寸小于所述最小图像块尺寸的CU,确定该CU所属的最小图像块,并按照该最小图像块中CU的解码次序,依次判断该最小图像块中每一个CU是否满足所述预置条件,若满足,则停止判断,并将该CU的QP差作为该最小图像块中所有CU的QP差,若该最小图像块中所有CU均不满足所述预置条件,则将该最小图像块中所有CU的QP差设置为0;
根据所述各CU的QP预测值以及解析得到的QP差计算各CU的QP;
按照所述各CU的QP对各CU进行解码。
2.根据权利要求1所述的方法,其特征在于,满足预置条件的CU为在其压缩码流中存在非零量化后变换系数的CU;
所述根据所述各CU的QP预测值以及解析得到的QP差计算各CU的QP包括:
对于尺寸大于或等于所述最小图像块尺寸,且不满足所述预置条件的CU,将该CU的QP预测值作为该CU的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.根据权利要求1所述的方法,其特征在于,所述对接收到的码流进行解析得到量化深度参数包括:
从对量化深度参数在码流中所处的位置使用定长解码、变长解码或算术熵解码的方法获取二进制码字;
采用定长码或变长码对所述二进制码字进行逆二值化得到所述量化深度参数;
所述从码流中解析得到其QP差包括:
从对量化深度参数在码流中所处的位置使用变长解码或算术熵解码的方法获取二进制码字;
采用变长码对所述二进制码字进行逆二值化得到所述QP差。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110459585.XA CN102685484B (zh) | 2011-03-11 | 2011-03-11 | 编码方法以及装置、解码方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110459585.XA CN102685484B (zh) | 2011-03-11 | 2011-03-11 | 编码方法以及装置、解码方法以及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110059194.9A Division CN102685478B (zh) | 2011-03-11 | 2011-03-11 | 编码方法以及装置、解码方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102685484A true CN102685484A (zh) | 2012-09-19 |
CN102685484B CN102685484B (zh) | 2014-10-08 |
Family
ID=46816775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110459585.XA Active CN102685484B (zh) | 2011-03-11 | 2011-03-11 | 编码方法以及装置、解码方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102685484B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013064095A1 (en) * | 2011-11-04 | 2013-05-10 | LI, Yingjin | Method of deriving quantization parameter |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1212561A (zh) * | 1997-06-20 | 1999-03-31 | 松下电器产业株式会社 | 图象处理方法、图象处理装置、和数据存储媒体 |
CN101888550A (zh) * | 2010-06-28 | 2010-11-17 | 中兴通讯股份有限公司 | 一种slice头信息中量化参数编码方法和装置 |
CN101938657A (zh) * | 2010-10-07 | 2011-01-05 | 西安电子科技大学 | 高效视频编码中编码单元自适应划分方法 |
CN101978697A (zh) * | 2008-01-25 | 2011-02-16 | 惠普开发有限公司 | 针对基于块的编码的编码模式选择 |
-
2011
- 2011-03-11 CN CN201110459585.XA patent/CN102685484B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1212561A (zh) * | 1997-06-20 | 1999-03-31 | 松下电器产业株式会社 | 图象处理方法、图象处理装置、和数据存储媒体 |
CN101978697A (zh) * | 2008-01-25 | 2011-02-16 | 惠普开发有限公司 | 针对基于块的编码的编码模式选择 |
CN101888550A (zh) * | 2010-06-28 | 2010-11-17 | 中兴通讯股份有限公司 | 一种slice头信息中量化参数编码方法和装置 |
CN101938657A (zh) * | 2010-10-07 | 2011-01-05 | 西安电子科技大学 | 高效视频编码中编码单元自适应划分方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013064095A1 (en) * | 2011-11-04 | 2013-05-10 | LI, Yingjin | Method of deriving quantization parameter |
US9204151B2 (en) | 2011-11-04 | 2015-12-01 | Infobridge Pte. Ltd. | Method of deriving quantization parameter with differential and predicted quantization parameters |
US9264723B2 (en) | 2011-11-04 | 2016-02-16 | Infobridge Pte. Ltd. | Method of deriving quantization parameter with differential and predicted quantization parameters |
US9699460B2 (en) | 2011-11-04 | 2017-07-04 | Infobridge Pte. Ltd. | Method of deriving quantization parameter with differential and predicted quantization parameters |
US9712824B2 (en) | 2011-11-04 | 2017-07-18 | Infobridge Pte. Ltd. | Method of deriving quantization parameter with differential and predicted quantization parameters |
US9712825B2 (en) | 2011-11-04 | 2017-07-18 | Infobridge Pte. Ltd. | Method of deriving quantization parameter with differental and predicted quantization parameters |
US9912950B2 (en) | 2011-11-04 | 2018-03-06 | Infobridge Pte. Ltd. | Method of deriving quantization parameter with differential and predicted quantization parameters |
US10313671B2 (en) | 2011-11-04 | 2019-06-04 | Infobridge Pte. Ltd. | Method for generating intra prediction block with most probable mode |
US10742983B2 (en) | 2011-11-04 | 2020-08-11 | Infobridge Pte. Ltd. | Method for generating intra prediction block with most probable mode |
US11290719B2 (en) | 2011-11-04 | 2022-03-29 | Infobridge Pte. Ltd. | Method for generating intra prediction block with most probable mode |
US11825092B2 (en) | 2011-11-04 | 2023-11-21 | Gensquare Llc | Method of deriving quantization parameter with differental and predicted quantization parameters |
Also Published As
Publication number | Publication date |
---|---|
CN102685484B (zh) | 2014-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102685478B (zh) | 编码方法以及装置、解码方法以及装置 | |
US9420279B2 (en) | Rate control method for multi-layered video coding, and video encoding apparatus and video signal processing apparatus using the rate control method | |
US10873763B2 (en) | Video compression techniques for high dynamic range data | |
WO2012042646A1 (ja) | 動画像符号化装置、動画像符号化方法、動画像符号化用コンピュータプログラム、動画像復号装置及び動画像復号方法ならびに動画像復号用コンピュータプログラム | |
CN110650349B (zh) | 一种图像编码方法、解码方法、编码器、解码器及存储介质 | |
TW201725905A (zh) | 用於非4:4:4色度子採樣之顯示串流壓縮(dsc)之熵寫碼技術 | |
CN101755464A (zh) | 基于行的视频码率控制和压缩 | |
US10812832B2 (en) | Efficient still image coding with video compression techniques | |
CN102685483B (zh) | 解码方法 | |
GB2371434A (en) | Encoding and transmitting video data | |
CN103843338A (zh) | 帧内编码图像块的自适应量化 | |
KR101596085B1 (ko) | 적응적인 인트라 예측을 이용한 영상 부호화/복호화 장치 및 방법 | |
KR102513756B1 (ko) | 이미지 인코딩 방법, 디코딩 방법, 인코더, 디코더 및 저장매체 | |
KR101911587B1 (ko) | 적응적인 인트라 예측을 이용한 영상 부호화/복호화 장치 및 방법 | |
US20070165718A1 (en) | Encoding apparatus, encoding method and program | |
KR101362441B1 (ko) | 쿼드트리 기반의 매크로블록을 위한 멀티 레벨의 양자화 파라미터 기록 방법 및 장치 | |
CN102685485B (zh) | 编码方法以及装置、解码方法以及装置 | |
US20210021831A1 (en) | Method and apparatus for adaptive context modeling in video encoding and decoding | |
EP2938074A1 (en) | Methods for encoding and decoding a picture and corresponding devices | |
CN102685484B (zh) | 编码方法以及装置、解码方法以及装置 | |
CN116982262A (zh) | 视频编码中依赖性量化的状态转换 | |
WO2015128222A1 (en) | Method for encoding and decoding a picture and corresponding devices | |
CN115567710A (zh) | 数据编码方法和装置以及解码数据流的方法和装置 | |
EP3096520A1 (en) | A method for encoding/decoding a picture block | |
KR20180081512A (ko) | 인코딩 및 디코딩 방법 및 대응하는 디바이스들 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |