一种编解码方法、装置、设备及存储介质转让专利

申请号 : CN202110688030.6

文献号 : CN113382252B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐丽英

申请人 : 杭州海康威视数字技术股份有限公司

摘要 :

本申请实施例公开了一种编解码方法、装置、设备及存储介质,属于图像处理技术领域。所述方法包括:在确定进行第一ISP指示信息的编码或解码时,基于一个上下文模型,对第一ISP指示信息进行基于上下文的自适应二进制算术编码或基于上下文的自适应二进制算术解码,第一ISP指示信息用于指示是否启动帧内子块预测模式;在确定进行第二ISP指示信息的编码或解码时,对第二ISP指示信息进行基于旁路的二进制算术编码或解码,第二ISP指示信息用于指示帧内子块预测模式的子块划分方式,如此,可以减少编解码过程中所需的上下文模型的数量,降低了编解码过程的复杂度,减少了内存开销。

权利要求 :

1.一种解码方法,其特征在于,所述方法包括:对JCCR指示信息进行解码,所述JCCR指示信息用于指示当前处理单元是否支持JCCR模式;其中,所述JCCR指示信息为SPS级使能标记位,所述当前处理单元是否支持JCCR模式是指所述当前处理单元是否使能JCCR模式;

根据所述JCCR指示信息,确定所述当前处理单元是否支持JCCR模式;

其中,所述根据所述JCCR指示信息,确定所述当前处理单元是否支持JCCR模式,包括:当所述JCCR指示信息的标识值为第一取值时,确定所述当前处理单元支持JCCR模式;

当所述JCCR指示信息的标识值为第二取值时,确定所述当前处理单元不支持JCCR模式。

2.如权利要求1所述的方法,其特征在于,所述JCCR指示信息存在于序列参数集中。

3.如权利要求1所述的方法,其特征在于,所述JCCR指示信息为sps_jccr_enable_flag。

4.如权利要求1所述的方法,其特征在于,所述方法还包括:若根据所述JCCR指示信息确定所述当前处理单元支持JCCR模式,且所述当前处理单元启动JCCR模式,则按照所述当前处理单元的蓝色色度CB分量和红色色度CR分量的相关性对所述当前处理单元进行解码,得到所述当前处理单元的色度残差系数。

5.如权利要求4所述的方法,其特征在于,所述若根据所述JCCR指示信息确定所述当前处理单元支持JCCR模式,且所述当前处理单元启动JCCR模式,则按照所述当前处理单元的CB分量和CR分量的相关性对所述当前处理单元进行解码,得到所述当前处理单元的色度残差系数,包括:

若根据所述JCCR指示信息确定所述当前处理单元支持JCCR模式,则确定所述当前处理单元的CB分量和CR分量的CBF值;

若所述当前处理单元的CB分量和CR分量的CBF值均为真,则解析所述当前处理单元是否启动JCCR模式;

若所述当前处理单元启动JCCR模式,则按照所述当前处理单元的CB分量和CR分量的相关性对所述当前处理单元进行解码,得到所述当前处理单元的色度残差系数。

6.一种编码方法,其特征在于,所述方法包括:对JCCR指示信息进行编码,所述JCCR指示信息用于指示当前处理单元是否支持JCCR模式;其中,所述JCCR指示信息为SPS级使能标记位,所述当前处理单元是否支持JCCR模式是指所述当前处理单元是否使能JCCR模式;

当所述JCCR指示信息的标识值为第一取值时,所述JCCR指示信息用于指示所述当前处理单元支持JCCR模式;

当所述JCCR指示信息的标识值为第二取值时,所述JCCR指示信息用于指示所述当前处理单元不支持JCCR模式。

7.如权利要求6所述的方法,其特征在于,所述JCCR指示信息存在于序列参数集中。

8.如权利要求6所述的方法,其特征在于,所述JCCR指示信息为sps_jccr_enable_flag。

9.如权利要求6所述的方法,其特征在于,若所述当前处理单元支持JCCR模式,则在确定启动JCCR模式之前,所述方法还包括:确定所述当前处理单元的CB分量和CR分量的CBF值;

若所述当前处理单元的CB分量和CR分量的CBF值均为真,则确定满足启动JCCR模式的条件。

10.如权利要求6所述的方法,其特征在于,在确定满足启动JCCR模式的条件之后,所述方法还包括:

通过率失真优化RDO决策,确定是否启动JCCR模式。

11.一种电子设备,其特征在于,所述电子设备包括:处理器;用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行下述解码方法:对JCCR指示信息进行解码,所述JCCR指示信息用于指示当前处理单元是否支持JCCR模式;其中,所述JCCR指示信息为SPS级使能标记位,所述当前处理单元是否支持JCCR模式是指所述当前处理单元是否使能JCCR模式;

根据所述JCCR指示信息,确定所述当前处理单元是否支持JCCR模式;

其中,所述根据所述JCCR指示信息,确定所述当前处理单元是否支持JCCR模式,包括:当所述JCCR指示信息的标识值为第一取值时,确定所述当前处理单元支持JCCR模式;

当所述JCCR指示信息的标识值为第二取值时,确定所述当前处理单元不支持JCCR模式。

12.一种电子设备,其特征在于,所述电子设备包括:处理器;用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行下述编码方法:对JCCR指示信息进行编码,所述JCCR指示信息用于指示当前处理单元是否支持JCCR模式;其中,所述JCCR指示信息为SPS级使能标记位,所述当前处理单元是否支持JCCR模式是指所述当前处理单元是否使能JCCR模式;

当所述JCCR指示信息的标识值为第一取值时,所述JCCR指示信息用于指示所述当前处理单元支持JCCR模式;

当所述JCCR指示信息的标识值为第二取值时,所述JCCR指示信息用于指示所述当前处理单元不支持JCCR模式。

13.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现下述解码方法:对JCCR指示信息进行解码,所述JCCR指示信息用于指示当前处理单元是否支持JCCR模式;其中,所述JCCR指示信息为SPS级使能标记位,所述当前处理单元是否支持JCCR模式是指所述当前处理单元是否使能JCCR模式;

根据所述JCCR指示信息,确定所述当前处理单元是否支持JCCR模式;

其中,所述根据所述JCCR指示信息,确定所述当前处理单元是否支持JCCR模式,包括:当所述JCCR指示信息的标识值为第一取值时,确定所述当前处理单元支持JCCR模式;

当所述JCCR指示信息的标识值为第二取值时,确定所述当前处理单元不支持JCCR模式。

14.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现下述编码方法:对JCCR指示信息进行编码,所述JCCR指示信息用于指示当前处理单元是否支持JCCR模式;其中,所述JCCR指示信息为SPS级使能标记位,所述当前处理单元是否支持JCCR模式是指所述当前处理单元是否使能JCCR模式;

当所述JCCR指示信息的标识值为第一取值时,所述JCCR指示信息用于指示所述当前处理单元支持JCCR模式;

当所述JCCR指示信息的标识值为第二取值时,所述JCCR指示信息用于指示所述当前处理单元不支持JCCR模式。

说明书 :

一种编解码方法、装置、设备及存储介质

[0001] 本申请是申请日为2019年06月21日、申请号为201910545251.0、发明名称为“一种编解码方法、装置及存储介质”的发明专利申请的分案申请。

技术领域

[0002] 本申请实施例涉及图像处理技术领域,特别涉及一种编解码方法、装置、设备及存储介质。

背景技术

[0003] 目前,在图像编解码技术领域中,编码端对图像块进行编码时,通常需要利用上下文模型对一些语法元素进行编码,以将这些语法元素携带在图像块的编码流中发送给解码
端。解码接收到图像块的编码流后,需要按照与编码端相同的上下文模型对这些语法元素
进行解析,以基于这些语法元素重构图像。这些语法元素可以为各种指示信息,比如可以为
第一ISP指示信息和第二ISP指示信息,第一ISP指示信息用于指示是否启动帧内子块预测
模式,第二ISP指示信息用于指示帧内子块预测模式的子块划分方式。
[0004] 但是,不同的语法元素可能需要基于不同的上下文模型进行基于上下文的自适应二进制算术编解码,同一语法元素在不同情况下,可能也需要基于不同的上下文模型进行
基于上下文的自适应二进制算术编解码,这样将导致编解过程中需要用到较多的上下文模
型,编解码过程复杂程度高,内存开销较大。

发明内容

[0005] 本申请实施例提供了一种编解码方法、装置、设备及存储介质,可以用于解决相关技术中存在的编解码过程中所需上下文模型较多,内存开销较大的问题。所述技术方案如
下:
[0006] 一方面,提供了一种编解码方法,所述方法包括:
[0007] 在确定进行第一ISP指示信息的编码或解码时,基于一个上下文模型,对所述第一ISP指示信息进行基于上下文的自适应二进制算术编码或基于上下文的自适应二进制算术
解码,所述第一ISP指示信息用于指示是否启动帧内子块预测模式;
[0008] 在确定进行第二ISP指示信息的编码或解码时,对所述第二ISP指示信息进行基于旁路的二进制算术编码或解码,所述第二ISP指示信息用于指示帧内子块预测模式的子块
划分方式。
[0009] 一方面,提供了一种编解码方法,所述方法包括:
[0010] 在确定进行第一ISP指示信息的编码或解码时,对第一ISP指示信息进行基于旁路的二进制算术编码或解码,所述第一ISP指示信息用于指示是否启动帧内子块预测模式;
[0011] 在确定进行第二ISP指示信息的编码或解码时,对第二ISP指示信息进行基于旁路的二进制算术编码或解码,所述第二ISP指示信息用于指示帧内子块预测模式的子块划分
类型。
[0012] 一方面,提供了一种编解码方法,所述方法包括:
[0013] 若当前块的宽高尺寸为M*N,所述M小于64且所述N小于64,则所述当前块不支持多行预测模式。
[0014] 在本申请实施例一种可能的实现方式中,若当前块的宽高尺寸为4*4,则所述当前块不支持多行预测模式。
[0015] 一方面,提供了一种编解码方法,若确定当前块支持多行预测模式,且所述多行预测模式对应的候选参考行行数为3,多行预测模式对应的参考行指示信息至多占用2个比特
位,所述参考行指示信息用于指示基于多行预测模式进行当前块的预测时所使用的目标参
考行的索引信息,所述方法包括:
[0016] 基于一个上下文模型,对所述参考行指示信息的第1个比特位进行基于上下文的自适应二进制算术编码或自适应二进制算术解码;
[0017] 当需要对所述参考行指示信息的第2个比特位进行编码或解码时,对所述参考行指示信息的第2个比特位进行基于旁路的二进制算术编码或解码。
[0018] 一方面,提供了一种编解码方法,若确定当前块支持多行预测模式,且所述多行预测模式对应的候选参考行行数为4,多行预测模式对应的参考行指示信息至多占用3个比特
位,所述参考行指示信息用于指示基于多行预测模式进行当前块的预测时所使用的目标参
考行的索引信息,所述方法包括:
[0019] 基于一个上下文模型,对所述参考行指示信息的第1个比特位进行基于上下文的自适应二进制算术编码或自适应二进制算术解码;
[0020] 当需要对所述参考行指示信息的第2个比特位进行编码或解码时,对所述参考行指示信息的第2个比特位进行基于旁路的二进制算术编码或解码;
[0021] 当需要对所述参考行指示信息的第3个比特位进行编码或解码时,对所述参考行指示信息的第3个比特位进行基于旁路的二进制算术编码或解码。
[0022] 一方面,提供了一种编解码方法,若确定当前块支持多行预测模式,且多行预测模式对应的候选参考行行数为3,其中,索引信息为0的候选参考行为第0行,所述第0行是与所
述当前块边界相邻的行;索引信息为1的候选参考行为第1行,所述第1行是与所述当前块边
界次相邻的行;索引信息为2的候选参考行为第2行,所述第2行是所述第1行相邻的行;所述
方法包括:
[0023] 在根据多行预测模式对当前块进行预测时,根据目标参考行对当前块进行预测;
[0024] 其中,所述目标参考行根据参考行指示信息确定;
[0025] 若参考行指示信息所指示的索引信息为0,则所述目标参考行为第0行;
[0026] 若所述参考行指示信息所指示的索引信息为1,则所述目标参考行是第1行;
[0027] 若所述参考行指示信息所指示的索引信息为2,则所述目标参考行是第2行。
[0028] 一方面,提供了一种编解码方法,若确定当前块启动多行预测模式,且多行预测模式对应的候选参考行行数为3,其中,索引信息为0的候选参考行为第0行,所述第0行是与所
述当前块边界相邻的行;索引信息为1的候选参考行为第1行,所述第1行是与所述当前块边
界次相邻的行;索引信息为2的候选参考行为第2行,所述第2行是所述第1行相邻的行;索引
信息为3的候选参考行为第3行,所述第3行是所述第2行相邻的行;所述方法包括:
[0029] 在根据多行预测模式对当前块进行预测时,根据目标参考行对当前块进行预测;
[0030] 其中,所述目标参考行根据参考行指示信息确定;
[0031] 若参考行指示信息所指示的索引信息为0,则所述目标参考行为第0行;
[0032] 若所述参考行指示信息所指示的索引信息为1,则所述目标参考行是第2行;
[0033] 若所述参考行指示信息所指示的索引信息为2,则所述目标参考行是第3行。
[0034] 一方面,提供了一种解码方法,若确定当前块支持多行预测模式,所述方法包括:
[0035] 在根据多行预测模式对当前块进行预测之前,对行数指示信息进行解码,所述行数指示信息用于指示多行预测模式对应的候选参考行行数;
[0036] 根据行数指示信息确定多行预测模式对应的候选参考行行数;
[0037] 根据多行预测模式对应的候选参考行行数和参考行指示信息确定目标参考行,所述参考行指示信息用于指示基于多行预测模式进行当前块的预测时所使用的目标参考行
的索引信息;
[0038] 根据目标参考行对当前块进行预测。
[0039] 在本申请实施例一种可能的实现方式中,所述行数指示信息存在于序列参数集、图像参数级、slice级或Tile级中。
[0040] 一方面,提供了一种解码方法,若当前块支持BDPCM模式,所述方法包括:
[0041] 在对当前块进行基于块的量化后残差的差分PCM解码之前,对第一BDPCM指示信息进行解码,所述第一BDPCM指示信息用于指示当前处理单元是否支持BDPCM模式;
[0042] 根据所述第一BDPCM指示信息,对所述当前块进行解码。
[0043] 在本申请实施例一种可能的实现方式中,所述第一BDPCM指示信息存在于序列参数集、图像参数级、slice级或Tile级中。
[0044] 一方面,提供了一种编解码方法,若当前块支持BDPCM模式,所述方法包括:
[0045] 在对当前块进行基于块的量化后残差的差分PCM编码或解码之前,对第二BDPCM指示信息进行编码或解码,所述第二BDPCM指示信息用于指示支持BDPCM模式的图像块的尺寸
范围;
[0046] 基于所述第二BDPCM指示信息和所述当前块的尺寸,确定所述当前块是否能够进行基于块的量化后残差的差分PCM编码或解码。
[0047] 在本申请实施例一种可能的实现方式中,所述第二BDPCM指示信息存在于序列参数集、图像参数级、slice级或Tile级中。
[0048] 一方面,提供了一种解码方法,若当前块支持BDPCM模式,所述方法包括:
[0049] 在对当前块进行基于块的量化后残差的差分PCM解码之前,基于一个上下文模型,对第三BDPCM指示信息进行基于上下文的自适应二进制算术解码,所述第三BDPCM指示信息
用于指示当前块是否启动BDPCM模式;
[0050] 当所述第三BDPCM指示信息指示当前块启动BDPCM模式,对第四BDPCM指示信息进行基于旁路的二进制算术解码,所述第四BDPCM指示信息用于指示BDPCM模式的预测方向的
索引信息;
[0051] 按照所述第四BDPCM指示信息指示的预测方向,对当前块进行基于块的量化后残差的差分PCM处理。
[0052] 一方面,提供了一种解码方法,若当前块支持BDPCM模式,所述方法包括:
[0053] 在对当前块进行基于块的量化后残差的差分PCM解码之前,对第三BDPCM指示信息进行基于旁路的二进制算术解码,所述第三BDPCM指示信息用于指示当前块是否启动BDPCM
模式;
[0054] 当所述第三BDPCM指示信息指示当前块启动BDPCM模式,对第四BDPCM指示信息进行基于旁路的二进制算术解码,所述第四BDPCM指示信息用于指示BDPCM模式的预测方向的
索引信息;
[0055] 按照所述第四BDPCM指示信息指示的预测方向,对当前块进行基于块的量化后残差的差分PCM处理。
[0056] 一方面,提供了一种编解码方法,所述方法包括:
[0057] 若当前块启动帧内子块预测,则确定进行CBF指示信息的编码或解码时,基于目标上下文模型,对CBF指示信息进行基于上下文的自适应二进制算术编码或基于上下文的自
适应二进制算术解码;其中,所述CBF指示信息用于指示所述当前块的变换块是否具有非零
变换系数,所述目标上下文模型是根据所述当前块的前一个变换块是否具有非零变换系数
从第一上下文模型集合包括的2个不同的上下文模型中选择的一个上下文模型;或者,
[0058] 若当前块启动常规帧内预测或启动BDPCM模式,则在确定进行CBF指示信息的编码或解码时,基于目标上下文模型,对CBF指示信息进行基于上下文的自适应二进制算术编码
或基于上下文的自适应二进制算术解码;其中,所述目标上下文模型是根据所述当前块的
变换块的划分深度从第二上下文模型集合包括的2个不同的上下文模型中选择的一个上下
文模型,所述第二上下文模型集合包括的2个上下文模型集合与所述第一上下文模型集合
包括的2个上下文模型不同。
[0059] 一方面,提供了一种编解码方法,所述方法包括:
[0060] 若当前块启动帧内子块预测,或者启动常规帧内预测,或者启动BDPCM模式,则在确定进行CBF指示信息的编码或解码时,基于目标上下文模型,对CBF指示信息进行基于上
下文的自适应二进制算术编码或基于上下文的自适应二进制算术解码;其中,所述CBF指示
信息用于指示所述当前块的变换块是否具有非零变换系数,所述目标上下文模型是根据所
述当前块的变换块的划分深度从2个不同的上下文模型中选择的一个上下文模型。
[0061] 一方面,提供了一种编解码方法,所述方法包括:
[0062] 若当前块启动帧内子块预测或启动常规帧内预测,则在确定进行CBF指示信息的编码或解码时,基于目标上下文模型,对所述CBF指示信息进行基于上下文的自适应二进制
算术编码或基于上下文的自适应二进制算术解码;其中,所述目标上下文模型是根据所述
当前块的变换块的划分深度从第一上下文模型集合包括的2个不同的上下文模型中选择的
一个上下文模型;或者,
[0063] 若当前块启动BDPCM模式,则在确定进行CBF指示信息的编码或解码时,基于目标上下文模型,对所述CBF指示信息进行基于上下文的自适应二进制算术编码或基于上下文
的自适应二进制算术解码;其中,所述目标上下文模型是所述第一上下文模型集合中的一
个上下文模型。
[0064] 一方面,提供了一种编解码方法,所述方法包括:
[0065] 在根据JCCR模式对当前块进行解码之前,对JCCR指示信息进行解码,所述JCCR指示信息用于指示当前处理单元是否支持JCCR模式;
[0066] 若根据所述JCCR指示信息确定所述当前块支持JCCR模式,且所述当前块启动JCCR模式,则按照所述当前块的CB和CR的相关性对所述当前块进行解码,得到所述当前块的色
度残差系数。
[0067] 在本申请实施例一种可能的实现方式中,所述JCCR指示信息存在于序列参数集、图像参数级、slice级或Tile级中。
[0068] 一方面,提供了一种编解码装置,其特征在于,所述装置包括:
[0069] 处理器;
[0070] 用于存储处理器可执行指令的存储器;
[0071] 其中,所述处理器被配置为执行上述任一种编解码方法或解码方法。
[0072] 一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述任一种编解码方法或解码方法。
[0073] 本申请实施例提供的技术方案带来的有益效果是:
[0074] 本申请实施例中,通过在确定进行第一ISP指示信息的编码或解码时,基于一个上下文模型,对第一ISP指示信息进行基于上下文的自适应二进制算术编码或基于上下文的
自适应二进制算术解码,在确定进行第二ISP指示信息的编码或解码时,对第二ISP指示信
息进行基于旁路的二进制算术编码或解码,如此,可以减少编解码过程中所需的上下文模
型的数量,降低了编解码过程的复杂度,减少了内存开销。

附图说明

[0075] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图。
[0076] 图1是本申请实施例提供的一种编解码系统的结构示意图;
[0077] 图2是本申请实施例提供的一种编解码的流程示意图;
[0078] 图3是本申请实施例提供的一种图像块的划分示意图;
[0079] 图4是本申请实施例提供的一种编码方法的流程图;
[0080] 图5是本申请实施例提供的一种解码方法的流程图;
[0081] 图6是本申请实施例提供的一种编码方法的流程图;
[0082] 图7是本申请实施例提供的一种解码方法的流程图;
[0083] 图8是本申请实施例提供的一种编解码方法的流程图;
[0084] 图9是本申请实施例提供的一种编码方法的流程图;
[0085] 图10是本申请实施例提供的一种解码方法的流程图;
[0086] 图11是本申请实施例提供的一种编码方法的流程图;
[0087] 图12是本申请实施例提供的一种解码方法的流程图;
[0088] 图13是本申请实施例提供的一种编解码方法的流程图;
[0089] 图14是本申请实施例提供的一种编解码方法的流程图;
[0090] 图15是本申请实施例提供的一种编码方法的流程图;
[0091] 图16是本申请实施例提供的一种解码方法的流程图;
[0092] 图17是本申请实施例提供的一种编码方法的流程图;
[0093] 图18是本申请实施例提供的一种解码方法的流程图;
[0094] 图19是本申请实施例提供的一种编码方法的流程图;
[0095] 图20是本申请实施例提供的一种解码方法的流程图;
[0096] 图21是本申请实施例提供的一种编码方法的流程图;
[0097] 图22是本申请实施例提供的一种解码方法的流程图;
[0098] 图23是本申请实施例提供的一种编码方法的流程图;
[0099] 图24是本申请实施例提供的一种解码方法的流程图;
[0100] 图25是本申请实施例提供的一种编码方法的流程图;
[0101] 图26是本申请实施例提供的一种解码方法的流程图;
[0102] 图27是本申请实施例提供的一种编码方法的流程图;
[0103] 图28是本申请实施例提供的一种解码方法的流程图;
[0104] 图29是本申请实施例提供的一种编码方法的流程图;
[0105] 图30是本申请实施例提供的一种解码方法的流程图;
[0106] 图31是本申请实施例提供的一种编码方法的流程图;
[0107] 图32是本申请实施例提供的一种编码方法的流程图;
[0108] 图33是本申请实施例提供的一种编码端的结构示意图;
[0109] 图34是本申请实施例提供的一种解码端的结构示意图。

具体实施方式

[0110] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0111] 在对本申请实施例进行详细地解释说明之前,先对本申请实施例的应用场景予以说明。
[0112] 图1是本申请实施例提供的一种编解码系统的结构示意图。如图1所示,编解码系统包括编码器01、解码器02、存储装置03和链路04。编码器01与存储装置03可以进行通信,
编码器01还可以通过链路04与解码器02进行通信。解码器02还可以与存储装置03进行通
信。
[0113] 编码器01用于获取数据源,对数据源进行编码,并将编码后的码流传输至存储装置03进行存储,或者直接通过链路04传输至解码器02。解码器02可以从存储装置03中获取
码流,并进行解码得到数据源,或者在接收到编码器01通过链路04传输的码流后进行解码,
得到数据源。其中,数据源可以为拍摄到的图像,也可以为拍摄到的视频。编码器01和解码
器02均可以单独作为一个电子设备。存储装置03可包括多种分布式或本地存取式的数据存
储媒体中的任一者。例如,硬盘驱动器、蓝光光盘、只读光盘、快闪存储器,或用于存储经编
码的数据的其它合适数字存储媒体。链路04可包括至少一个通信媒体,该至少一个通信媒
体可以包括无线和/或有线通信媒体,例如射频(radio frequency,RF)频谱或一根或多根
物理传输线。
[0114] 请参考图2,图2是根据一示例性实施例示出的一种编解码的流程示意图,编码包括预测、变换、量化、熵编码几个过程,解码包括解码、反变换、反量化、预测几个过程。目前,
通常采用二进制算术编解码技术来对当前语法元素进行编解码。编码和解码中的预测一般
包括帧内预测、多行预测、跨分量预测和基于矩阵的帧内预测等,另外,编码和解码中还将
用到帧内亮度候选者列表、自适应环路滤波器、自适应运动矢量精度编解码技术和基于块
的量化后残差的差分PCM(Pulse Code Modulation,脉冲编码调制)编解码技术等,接下来
对这些预测方式和编解码技术进行简单介绍。
[0115] 二进制算术编码
[0116] 二进制算术编码是指对当前语法元素二进制化后的每一个bin(比特位)根据其概率模型参数进行算术编码,得到最后的码流。它包括两种编码方式:基于上下文的自适应算
术编码和基于旁路的二进制算术编码。
[0117] 基于上下文的自适应二进制算术编码(CABAC)是一种将自适应的二进制算术编码和一个设计精良的上下文模型结合起来得到的方法。在编码中,每一个符号的编码都与以
前编码的结果有关,根据符号流的统计特性来自适应的为每个符号分配码字,尤其是适用
于出现概率为非等概率的符号,能够进一步压缩码率。语法元素的各个比特位顺序的进入
上下文模型器,编码器根据之前编码过的语法元素或者比特位,为每一个输入的比特位分
配合适的概率模型,该过程称为上下文建模。将比特位和分配给它的概率模型一起送到二
元算术编码器进行编码。编码器要根据比特位值更新上下文模型,这就是编码的自适应。
[0118] 基于旁路的二进制算术编码(Bypass)是一种基于等概率的二进制算术编码模式(也称为旁路编码模式),相比于CABAC,Bypass少了概率更新的过程,也无需对概率状态进
行自适应更新,而是采用0和1概率各50%的固定概率进行编码,此编码方法更加简单,并且
编码复杂度低,内存消耗小,适用于等概率的符号。
[0119] ISP(Intra sub‑block‑partitions,帧内子块预测)
[0120] ISP技术中帧内预测采用的方法是将图像块划分成多个子块进行预测,对于支持ISP技术的图像块来说能够支持的划分方式包括水平划分和垂直划分。对于解码端来说,在
当前块启动ISP模式的情况下,如果当前块的尺寸默认仅支持一种划分方式,则按照默认划
分方向对当前块进行划分,以及对其进行预测,反变换,反量化等处理,如果当前块的尺寸
支持两种划分方式,则还需进一步解析其划分方向,再按照确定的划分方向对当前块进行
划分,以及对其进行预测,反变换,反量化等处理。
[0121] MRL(Multi‑reference Line,多行预测)
[0122] MRL技术中采用的方法是基于当前块的参考像素进行预测,参考像素可以来自当前块的邻近行。譬如,参考像素可以来自如图3所示的Reference line0(第0行),Reference 
line1(第1行),Reference line2(第2行)和Reference line3(第3行)。其中,第0行是与当
前块边界相邻的行,第1行是与当前块边界次相邻的行,第2行是第1行相邻的行,第3行是第
2行相邻的行。目前在新一代编解码标准VVC中,参考像素来自Reference line0,Reference 
line1和Reference line3,Reference line2没有被使用。其中,所述line可以是当前块上
侧的行,也可以是当前块左侧的列。
[0123] BDPCM(Block‑based quantized residual domain Differential PCM,基于块的量化后残差的差分PCM)
[0124] BDPCM是指在预测环节预测像素时是直接垂直方向拷贝对应参考像素的像素值,或者水平方向拷贝对应参考像素的像素值,类似于垂直预测和水平预测。然后将预测残差
和原始像素的残差值进行量化,并对量化后的残差进行差分编码。
[0125] JCCR(Joint Coding of Chrominance Residuals,色度残差的联合编码)
[0126] JCCR是一种CB(蓝色色度分量)和CR(红色色度分量)联合编码的方式,通过观察色度残差的分布,不难发现,CB和CR总是呈现出负相关的趋势,因此JCCR利用这种现象,提出
CB和CR联合编码的方式,例如只需要编码(CB‑CR)/2,也就是CB和‑CR分量的均值。
[0127] 相关技术中,在不同预测模式或编解码技术下,解码端需要向编码端传输不同的语法元素,而且传输语法元素所需的上下文模型较多,编解码过程复杂程度高,内存开销较
大。基于此,本申请实施例提供了一种能够减少所需上下文模型的数量,进而减小编解码过
程复杂程度高和内存开销的编解码方法。接下来,将分别针对上述几种预测模式和编解码
技术,对本申请实施例编解码方法进行介绍。
[0128] ISP模式
[0129] 在ISP模式下,解码端和编码端之间需要传输的语法元素可以包括第一ISP指示信息和第二ISP指示信息,第一ISP指示信息用于指示是否启动帧内子块预测模式,第二ISP指
示信息用于指示帧内子块预测模式的子块划分方式。示例的,第一指示信息为intra_
subpartitions_mode_flag,第二指示信息为intra_subpartitions_split_flag。
[0130] 而且,在确定进行第一ISP指示信息的编码或解码时,需要基于一个上下文模型,对第一ISP指示信息进行基于上下文的自适应二进制算术编码或基于上下文的自适应二进
制算术解码;在确定进行第二ISP指示信息的编码或解码时,需要基于另一个不同的上下文
模型,对第二ISP指示信息进行基于上下文的自适应二进制算术编码或基于上下文的自适
应二进制算术解码。也即是,需要用到两个上下文模型,来对第一ISP指示信息和第二ISP指
示信息进行编解码,如下表1所示。
[0131] 表1
[0132]
[0133]
[0134] ISP模式的第一种实现方式
[0135] 图4是本申请实施例提供的一种编码方法的流程图,该方法应用于编码端,如图4所示,该方法包括:
[0136] 步骤601:在确定进行第一ISP指示信息的编码时,基于一个上下文模型,对第一ISP指示信息进行基于上下文的自适应二进制算术编码,第一ISP指示信息用于指示是否启
动帧内子块预测模式。
[0137] 作为一个示例,若当前块满足支持子块划分技术的条件,则当前块可尝试使用子块划分技术,编码端可通过RDO(Rate Distortion Optimization,率失真优化)决策最终是
否使用子块划分技术,并进行第一ISP指示信息的编码,通过第一ISP指示信息来表示当前
块是否启动帧内子块预测模式。其中,支持子块划分技术的条件包含:当前块为亮度块,当
前块未启动多行预测模式,以及当前块的尺寸符合一定的限制条件。当然,支持子块划分技
术的条件也不仅限定于上述三个条件,还可以包括其他条件。
[0138] 示例的,第一ISP指示信息为intra_subpartitions_mode_flag,intra_subpartitions_mode_flag为表示当前块是否启动帧内子块预测模式的标志位。若intra_
subpartitions_mode_flag为0,则表示当前块未启动帧内子块预测模式,若intra_
subpartitions_mode_flag为1,则表示当前块启动帧内子块预测模式。
[0139] 步骤602:在确定进行第二ISP指示信息的编码时,对第二ISP指示信息进行基于旁路的二进制算术编码,第二ISP指示信息用于指示帧内子块预测模式的子块划分方式。
[0140] 其中,子块划分方式包括水平划分方向和垂直划分方向。当当前块支持两种划分方向时,则需要确定最终使用的划分方向,并基于使用的划分方向,继续进行第二ISP指示
信息的编码。当当前块仅支持一种划分方向时,则不需要继续进行第二ISP指示信息的编
码。
[0141] 其中,第二ISP指示信息可以为intra_subpartitions_split_flag,intra_subpartitions_split_flag为表示当前块的ISP模式的子块划分方式的标志位。示例的,
intra_subpartitions_split_flag为0时,表示当前块的ISP模式的子块划分方式为水平划
分,intra_subpartitions_split_flag为1时,表示当前块的ISP模式的子块划分方式为垂
直划分。
[0142] 作为一个示例,ISP模式下的语法元素的编码方式如下表2所示:
[0143] 表2
[0144]
[0145] 也即是,对相关技术中的第二ISP指示信息的编码方式进行了修改,使用旁路编码方式替换复杂的CABAC编码方式,如此,可以减少内存开销,降低编码复杂度,而且,从编码
性能出发,性能基本保持不变。
[0146] 图5是本申请实施例提供的一种解码方法的流程图,该方法应用于解码端,是与图4实施例提供的编码方法对应的解码方法,如图5所示,该方法包括:
[0147] 步骤701:在确定进行第一ISP指示信息的解码时,基于一个上下文模型,对第一ISP指示信息进行基于上下文的自适应二进制算术解码,第一ISP指示信息用于指示是否启
动帧内子块预测模式。
[0148] 作为一个示例,可以先接收当前块的编码流,若当前块满足解析条件,则对编码流中的第一ISP指示信息进行解码,以解析出当前块是否启动帧内子块预测模式。其中,解析
条件包括:当前块为亮度块,当前块未启动多行预测模式,以及当前块的尺寸符合一定限制
条件。当然,该解析条件不限定于上述三个条件,还可以包括其他条件。
[0149] 示例的,第一ISP指示信息为intra_subpartitions_mode_flag。若intra_subpartitions_mode_flag为0,则表示当前块未启动帧内子块预测模式,若intra_
subpartitions_mode_flag为1,则表示当前块启动帧内子块预测模式。
[0150] 步骤702:在确定进行第二ISP指示信息的解码时,对第二ISP指示信息进行基于旁路的二进制算术解码,第二ISP指示信息用于指示帧内子块预测模式的子块划分方式。
[0151] 示例的,当第一ISP指示信息指示当前块启动帧内子块预测模式,且当前块支持两个划分方向时,确定需要进行第二ISP指示信息的解码。若第一ISP指示信息指示当前块未
启动帧内子块预测模式,或第一ISP指示信息指示当前块启动帧内子块预测模式,且当前块
仅支持一个划分方向时,确定不需要进行第二ISP指示信息的解码。
[0152] 例如,若intra_subpartitions_mode_flag为1,且当前块支持两个划分方向时,则需要进一步解析划分方向的标志位intra_subpartitions_split_flag。若intra_
subpartitions_mode_flag为0,或intra_subpartitions_mode_flag为1,但当前块仅支持
某一个固定方向的划分方向时,则不需要解析表示划分方向的标志位。
[0153] 根据以上两个ISP指示信息,解码端可以确定当前块是否启动ISP模式及对应的划分方向,从而基于确定的划分方向对当前块进行预测,得到当前块的预测值,用于后续的重
建过程。
[0154] ISP模式的第二种实现方式
[0155] 图6是本申请实施例提供的一种编码方法的流程图,该方法应用于编码端,如图6所示,该方法包括:
[0156] 步骤801:在确定进行第一ISP指示信息的编码时,对第一ISP指示信息进行基于旁路的二进制算术编码,第一ISP指示信息用于指示是否启动帧内子块预测模式。
[0157] 作为一个示例,若当前块满足支持子块划分技术的条件,则当前块可尝试使用子块划分技术,编码端可通过RDO决策最终是否使用子块划分技术,并进行第一ISP指示信息
的编码,通过第一ISP指示信息来表示当前块是否启动帧内子块预测模式。其中,支持子块
划分技术的条件包含:当前块为亮度块,当前块未启动多行预测模式,以及当前块的尺寸符
合一定的限制条件。当然,支持子块划分技术的条件也不仅限定于上述三个条件,还可以包
括其他条件。
[0158] 示例的,第一ISP指示信息为intra_subpartitions_mode_flag,intra_subpartitions_mode_flag为表示当前块是否启动帧内子块预测模式的标志位。若intra_
subpartitions_mode_flag为0,则表示当前块未启动帧内子块预测模式,若intra_
subpartitions_mode_flag为1,则表示当前块启动帧内子块预测模式。
[0159] 步骤802:在确定进行第二ISP指示信息的编码时,对第二ISP指示信息进行基于旁路的二进制算术编码,第二ISP指示信息用于指示帧内子块预测模式的子块划分方式。
[0160] 其中,子块划分方式包括水平划分方向和垂直划分方向。当当前块支持两种划分方向时,则需要确定最终使用的划分方向,并基于使用的划分方向,继续进行第二ISP指示
信息的编码。当当前块仅支持一种划分方向时,则不需要继续进行第二ISP指示信息的编
码。
[0161] 其中,第二ISP指示信息可以为intra_subpartitions_split_flag,intra_subpartitions_split_flag为表示当前块的ISP模式的子块划分方式的标志位。示例的,
intra_subpartitions_split_flag为0时,表示当前块的ISP模式的子块划分方式为水平划
分,intra_subpartitions_split_flag为1时,表示当前块的ISP模式的子块划分方式为垂
直划分。
[0162] 作为一个示例,ISP模式下的语法元素的编码方式如下表3所示:
[0163] 表3
[0164]
[0165] 也即是,对相关技术中的intra_subpartitions_mode_flag的标志位,以及intra_subpartitions_split_flag的标志位的编码方式均进行了修改,均使用旁路编码方式替换
原来复杂的CABAC编码方式,如此,可以进一步减少内存开销,降低编码复杂度,而且,从编
码性能出发,性能基本保持不变。
[0166] 图7是本申请实施例提供的一种解码方法的流程图,该方法应用于解码端,是与图6实施例提供的编码方法对应的解码方法,如图7所示,该方法包括:
[0167] 步骤901:在确定进行第一ISP指示信息的解码时,对第一ISP指示信息进行基于旁路的二进制算术解码,第一ISP指示信息用于指示是否启动帧内子块预测模式。
[0168] 作为一个示例,可以先接收当前块的编码流,若当前块满足解析条件,则对编码流中的第一ISP指示信息进行解码,以解析出当前块是否启动帧内子块预测模式。其中,解析
条件包括:当前块为亮度块,当前块未启动多行预测模式,以及当前块的尺寸符合一定限制
条件。当然,该解析条件不限定于上述三个条件,还可以包括其他条件。
[0169] 示例的,第一ISP指示信息为intra_subpartitions_mode_flag。若intra_subpartitions_mode_flag为0,则表示当前块未启动帧内子块预测模式,若intra_
subpartitions_mode_flag为1,则表示当前块启动帧内子块预测模式。
[0170] 步骤902:在确定进行第二ISP指示信息的解码时,对第二ISP指示信息进行基于旁路的二进制算术解码,第二ISP指示信息用于指示帧内子块预测模式的子块划分方式。
[0171] 示例的,当第一ISP指示信息指示当前块启动帧内子块预测模式,且当前块支持两个划分方向时,确定需要进行第二ISP指示信息的解码。若第一ISP指示信息指示当前块未
启动帧内子块预测模式,或第一ISP指示信息指示当前块启动帧内子块预测模式,且当前块
仅支持一个划分方向时,确定不需要进行第二ISP指示信息的解码。
[0172] 例如,若intra_subpartitions_mode_flag为1,且当前块支持两个划分方向时,则需要进一步解析划分方向的标志位intra_subpartitions_split_flag。若intra_
subpartitions_mode_flag为0,或intra_subpartitions_mode_flag为1,但当前块仅支持
某一个固定方向的划分方向时,则不需要解析表示划分方向的标志位。
[0173] 根据以上两个ISP指示信息,解码端可以确定当前块是否启动ISP模式及对应的划分方向,从而基于确定的划分方向对当前块进行预测,得到当前块的预测值,用于后续的重
建过程。
[0174] MRL模式
[0175] MRL模式的第一种实现方式
[0176] 图8是本申请实施例提供的一种编解码方法的流程图,该方法应用于编码端或解码端,如图8所示,该方法包括如下步骤:
[0177] 步骤1001:若当前块的宽高尺寸为M*N,M小于64且N小于64,则当前块不支持多行预测模式。
[0178] 示例的,若当前块的宽高尺寸为4*4,则当前块不支持多行预测模式。
[0179] MRL模式的第二种实现方式
[0180] 在MRL模式下,解码端和编码端之间需要传输的语法元素可以包括参考行指示信息,参考行指示信息用于指示基于多行预测模式进行当前块的预测时所使用的目标参考行
的索引信息。示例的,参考行指示信息为intra_luma_ref_idx。
[0181] 相关技术中,若确定当前块支持多行预测模式,且多行预测模式对应的候选参考行行数为3,多行预测模式对应的参考行指示信息至多占用2个比特位,且这2个比特位需要
使用2个不同的上下文模型进行编解码,如下表4和表5所示:
[0182] 表4
[0183] 第一个bin(比特位) 第二个bin(比特位)MultiRefLineIdx(0)即第一个上下文模型 MultiRefLineIdx(1)即第二个上下文模型
[0184] 其中,第一个bin是指参考行指示信息的第一个比特位,需要基于第一个上下文模型进行编解码,第二个bin是指参考行指示信息的第二个比特位,需要基于第二个上下文模
型进行编解码,且第一个上下文模型与第二个上下文模型不同。
[0185] 表5
[0186]
[0187] 而且,目标参考行的索引信息与目标参考行的行号的对应关系如表6所示:
[0188] 表6
[0189]
[0190] 由表6可知,若参考行指示信息所指示的索引信息为0,则目标参考行为第0行;若参考行指示信息所指示的索引信息为1,则目标参考行是第1行;若参考行指示信息所指示
的索引信息为2,则目标参考行是第3行。
[0191] 图9是本申请实施例提供的一种编码方法的流程图,该方法应用于编码端,如图9所示,若确定当前块支持多行预测模式,且多行预测模式对应的候选参考行行数为3,多行
预测模式对应的参考行指示信息至多占用2个比特位,则该方法包括:
[0192] 步骤1101:基于一个上下文模型,对参考行指示信息的第1个比特位进行基于上下文的自适应二进制算术编码。
[0193] 作为一个示例,可以确定当前块是否满足支持多行预测技术的条件,若当前块满足支持多行预测技术的条件,则确定当前块可尝试使用各个参考行进行编码。编码端可通
过RDO决策最终参考像素来源,并编码参考行索引信息到编码流中。其中,支持多行预测技
术的条件包含:当前块为亮度帧内块,并且当前块的尺寸符合一定的限制条件,当前块不包
含编码树单元的第一行。当然,支持多行预测技术的条件不限定于上述三个条件,还可以包
括其他条件。
[0194] 作为一个示例,若可以使用多行预测技术,则遍历所有参考行,通过RDO决定最终的目标参考行,并编码参考行指示信息。在编码流中可以根据具体情况编码参考行指示信
息。作为一个示例,参考行指示信息可以为intra_luma_ref_idx。
[0195] 需要说明的是,本申请实施例所述的行可以是当前块上侧的行,也可以是当前块左侧的列。
[0196] 步骤1102:当需要对参考行指示信息的第2个比特位进行编码时,对参考行指示信息的第2个比特位进行基于旁路的二进制算术编码。
[0197] 本申请实施例中,若确定当前块支持多行预测模式,且多行预测模式对应的候选参考行行数为3,多行预测模式对应的参考行指示信息至多占用2个比特位,则这2个比特位
的第一个比特位可以使用一个上下文模型进行编码,第二个比特位可以基于旁路编码模式
进行编码,如此,只需要使用一个上下文模型即可实现对参考行指示信息的所有比特位的
编码,减少了所使用的上下文模型的数量,进而减小了编码的复杂度和内存消耗,而且编码
性能也没有很大改变。
[0198] 例如,参考行指示信息使用的上下文模型可以下表7和表8所示:
[0199] 表7
[0200]第一个bin 第二个bin
MultiRefLineIdx(0)即第一个上下文模型 不用上下文模型,用Bypass进行编码
[0201] 表8
[0202]
[0203] 图10是本申请实施例提供的一种解码方法的流程图,该方法应用于解码端,该方法是与图9所示的编码方法对应的解码方法,如图10所示,若确定当前块支持多行预测模
式,且多行预测模式对应的候选参考行行数为3,多行预测模式对应的参考行指示信息至多
占用2个比特位,则该方法包括:
[0204] 步骤1201:基于一个上下文模型,对参考行指示信息的第1个比特位进行基于上下文的自适应二进制算术解码。
[0205] 步骤1202:当需要对参考行指示信息的第2个比特位进行解码时,对参考行指示信息的第2个比特位进行基于旁路的二进制算术解码。
[0206] 通过对参考行指示信息进行解码,可以基于参考行指示信息确定基于多行预测模式进行当前块的预测时所使用的目标参考行,然后利用目标参考行对当前块进行预测。
[0207] 作为一个示例,可以先接收当前块的编码流,若当前块满足解析条件,则对参考行指示信息进行解码,以确定当前块的参考像素的来源。解析条件包括:当前块为亮度帧内
块,当前块的尺寸符合一定条件,当前块不是编码树单元的第一行。当然,该解析条件不限
定于上述3种条件,还可以包括其他条件。
[0208] 作为一个示例,若当前块可以使用多行预测的情况下,需要解析intra_luma_ref_idx,以便根据intra_luma_ref_idx的值,确定当前块的参考像素,从而得到当前块的预测
值,用于后续的重建过程。
[0209] MRL模式的第三种实现方式
[0210] 相关技术中,若确定当前块支持多行预测模式,且多行预测模式对应的候选参考行行数为4,多行预测模式对应的参考行指示信息至多占用3个比特位,且这3个比特位需要
使用3个不同的上下文模型进行编解码,如下表9和表10所示:
[0211] 表9
[0212]
[0213] 表10
[0214]
[0215] 其中,第一个bin是指参考行指示信息的第一个比特位,需要基于第一个上下文模型进行编解码,第二个bin是指参考行指示信息的第二个比特位,需要基于第二个上下文模
型进行编解码,第三个bin是指参考行指示信息的第三个比特位,需要基于第三个上下文模
型进行编解码,且这3个上下文模型均不同。
[0216] 而且,目标参考行的索引信息与对应的目标参考行的行号如表11所示:
[0217] 表11
[0218]
[0219] 由表12可知,若参考行指示信息所指示的索引信息为0,则目标参考行为第0行;若参考行指示信息所指示的索引信息为1,则目标参考行是第1行;若参考行指示信息所指示
的索引信息为2,则目标参考行是第2行;若参考行指示信息所指示的索引信息为3,则目标
参考行是第3行。
[0220] 图11是本申请实施例提供的一种编码方法的流程图,应用于编码端,如图11所示,若确定当前块支持多行预测模式,且多行预测模式对应的候选参考行行数为4,多行预测模
式对应的参考行指示信息至多占用3个比特位,所述方法包括:
[0221] 步骤1301:基于一个上下文模型,对参考行指示信息的第1个比特位进行基于上下文的自适应二进制算术编码。
[0222] 作为一个示例,可以确定当前块是否满足支持多行预测技术的条件,若当前块满足支持多行预测技术的条件,则确定当前块可尝试使用各个参考行进行编码。编码端可通
过RDO决策最终参考像素来源,并编码参考行索引信息到编码流中。其中,支持多行预测技
术的条件包含:当前块为亮度帧内块,并且当前块的尺寸符合一定的限制条件,当前块不是
编码树单元的第一行。当然,支持多行预测技术的条件不限定于上述三个条件,还可以包括
其他条件。
[0223] 作为一个示例,若可以使用多行预测技术,则遍历所有参考行,通过RDO决定最终的目标参考行,并编码参考行指示信息。在编码流中可以根据具体情况编码参考行指示信
息。作为一个示例,参考行指示信息可以为intra_luma_ref_idx。
[0224] 步骤1302:当需要对参考行指示信息的第2个比特位进行编码时,对参考行指示信息的第2个比特位进行基于旁路的二进制算术编码。
[0225] 步骤1303:当需要对参考行指示信息的第3个比特位进行编码时,对参考行指示信息的第3个比特位进行基于旁路的二进制算术编码。
[0226] 本申请实施例中,若确定当前块支持多行预测模式,且多行预测模式对应的候选参考行行数为4,多行预测模式对应的参考行指示信息至多占用3个比特位,则这3个比特位
的第一个比特位可以使用一个上下文模型进行编码,第二个比特位和第三个比特位可以基
于旁路编码模式进行编码,如此,只需要使用一个上下文模型即可实现对参考行指示信息
的所有比特位的编码,减少了所使用的上下文模型的数量,进而减小了编码的复杂度和内
存消耗,而且编码性能也没有很大改变。
[0227] 例如,参考行指示信息使用的上下文模型可以下表12和表13所示:
[0228] 表12
[0229]
[0230] 表13
[0231]
[0232] 图12是本申请实施例提供的一种解码方法的流程图,应用于解码端,是与图11实施例所述的编码方法对应的解码方法,如图12所示,若确定当前块支持多行预测模式,且多
行预测模式对应的候选参考行行数为4,多行预测模式对应的参考行指示信息至多占用3个
比特位,所述方法包括:
[0233] 步骤1401:基于一个上下文模型,对参考行指示信息的第1个比特位进行基于上下文的自适应二进制算术解码。
[0234] 步骤1402:当需要对参考行指示信息的第2个比特位进行解码时,对参考行指示信息的第2个比特位进行基于旁路的二进制算术解码。
[0235] 步骤1403:当需要对参考行指示信息的第3个比特位进行解码时,对参考行指示信息的第3个比特位进行基于旁路的二进制算术解码。
[0236] 作为一个示例,可以先接收当前块的编码流,若当前块满足解析条件,则对参考行指示信息进行解码,以确定当前块的参考像素的来源。解析条件包括:当前块为亮度帧内
块,当前块的尺寸符合一定条件,当前块不是编码树单元的第一行。当然,该解析条件不限
定于上述3种条件,还可以包括其他条件。
[0237] 作为一个示例,若当前块可以使用多行预测的情况下,需要解析intra_luma_ref_idx,以便根据intra_luma_ref_idx的值,确定当前块的参考像素,从而得到当前块的预测
值,用于后续的重建过程。
[0238] MRL模式的第三种实现方式
[0239] 图13是本申请实施例提供的一种编解码方法的流程图,该方法应用于编码端或解码端,如图13所示,若确定当前块支持多行预测模式,且多行预测模式对应的候选参考行行
数为3,其中,索引信息为0的候选参考行为第0行,索引信息为1的候选参考行为第1行,索引
信息为2的候选参考行为第2行,该方法包括:
[0240] 步骤1501:在根据多行预测模式对当前块进行预测时,根据目标参考行对当前块进行预测,目标参考行根据参考行指示信息确定。
[0241] 其中,若参考行指示信息所指示的索引信息为0,则目标参考行为第0行;
[0242] 若参考行指示信息所指示的索引信息为1,则目标参考行是第1行;
[0243] 若参考行指示信息所指示的索引信息为2,则目标参考行是第2行。
[0244] 示例的,参考行指示信息所指示的索引信息与对应的目标参考行可以如下表14所示:
[0245] 表14
[0246]
[0247]
[0248] 本申请实施例中,可以选择最近的三行三列作为目标参考行的候选者。
[0249] MRL模式的第四种实现方式
[0250] 图14是本申请实施例提供的一种编解码方法的流程图,该方法应用于编码端或解码端,如图14所示,若确定当前块支持多行预测模式,且多行预测模式对应的候选参考行行
数为3,其中,索引信息为0的候选参考行为第0行,索引信息为1的候选参考行为第1行,索引
信息为2的候选参考行为第2行,所述方法包括:
[0251] 步骤1601:在根据多行预测模式对当前块进行预测时,根据目标参考行对当前块进行预测,目标参考行根据参考行指示信息确定。
[0252] 其中,若参考行指示信息所指示的索引信息为0,则目标参考行为第0行;
[0253] 若参考行指示信息所指示的索引信息为1,则目标参考行是第2行;
[0254] 若参考行指示信息所指示的索引信息为2,则目标参考行是第3行。
[0255] 示例的,参考行指示信息所指示的索引信息与对应的目标参考行可以如下表15所示:
[0256] 表15
[0257]
[0258] 本申请实施例中,可以选择第0行、第2行和第3行作为目标参考行的候选者。
[0259] MRL模式的第五种实现方式
[0260] 图15是本申请实施例提供的一种编码方法的流程图,该方法应用于编码端,如图15所示,若确定当前块支持多行预测模式,该方法包括:
[0261] 步骤1701:在根据多行预测模式对当前块进行预测之前,根据多行预测模式对应的候选参考行行数,对行数指示信息进行编码,行数指示信息用于指示多行预测模式对应
的候选参考行行数。
[0262] 步骤1702:基于多行预测模式进行当前块的预测时所使用的目标参考行,对参考行指示信息进行编码,参考行指示信息用于指示基于多行预测模式进行当前块的预测时所
使用的目标参考行的索引信息。
[0263] 步骤1703:根据目标参考行对当前块进行预测。
[0264] 本申请实施例中,增加了一个可以指示多行预测模式对应的候选参考行行数的行数指示信息,使得多行预测模式可以选择参考的行数。
[0265] 作为一个示例,行数指示信息可以存在于序列参数集(SPS)、图像参数级、slice级或Tile级中。优选地,行数指示信息存在于序列参数集,也即是,可以在SPS级增加一个用于
指示多行预测模式对应的候选参考行行数的语法。
[0266] 图16是本申请实施例提供的一种解码方法的流程图,该方法应用于解码端,如图16所示,若确定当前块支持多行预测模式,该方法包括:
[0267] 步骤1801:在根据多行预测模式对当前块进行预测之前,对行数指示信息进行解码,行数指示信息用于指示多行预测模式对应的候选参考行行数。
[0268] 步骤1802:根据行数指示信息确定多行预测模式对应的候选参考行行数。
[0269] 步骤1803:根据多行预测模式对应的候选参考行行数和参考行指示信息确定目标参考行,参考行指示信息用于指示基于多行预测模式进行当前块的预测时所使用的目标参
考行的索引信息。
[0270] 步骤1804:根据目标参考行对当前块进行预测。
[0271] 本申请实施例中,增加了一个可以指示多行预测模式对应的候选参考行行数的行数指示信息,使得多行预测模式可以选择参考的行数。
[0272] 作为一个示例,行数指示信息可以存在于序列参数集(SPS)、图像参数级、slice级或Tile级中。优选地,行数指示信息存在于序列参数集,也即是,可以在SPS级增加一个用于
指示多行预测模式对应的候选参考行行数的语法。
[0273] BDPCM模式
[0274] 相关技术中,BDPCM技术缺少SPS级语法来开启或者关闭BDPCM模式,也缺少SPS级语法来控制可以启用BDPCM模式的最大编码块的尺寸的开关,灵活性较低。
[0275] BDPCM模式下的第一种实现方式
[0276] 图17是本申请实施例提供的一种编码方法的流程图,该方法应用于编码端,如图17所示,若当前块支持BDPCM模式,该方法包括如下步骤:
[0277] 步骤7101:在对当前块进行基于块的量化后残差的差分PCM编码之前,根据当前是否开启BDPCM模式,对第一BDPCM指示信息进行编码,第一BDPCM指示信息用于指示当前处理
单元是否支持BDPCM模式。
[0278] 作为一个示例,第一BDPCM指示信息可以存在于序列参数集、图像参数级、slice级或Tile级中。优选地,第一BDPCM指示信息存在于序列参数集,也即是,第一BDPCM指示信息
为SPS级语法。
[0279] 在另一实施例中,编码端还可以编码范围指示信息,该范围指示信息用于指示支持BDPCM模式的处理单元的范围。该范围指示信息可以存在于序列参数集、图像参数级、
slice级或Tile级中。
[0280] 图18是本申请实施例提供的一种解码方法的流程图,该方法应用于解码端,该方法是与上述图17所示的编码方法对应的解码方法,如图18所示,若当前块支持BDPCM模式,
该方法包括如下步骤:
[0281] 步骤7201:在对当前块进行基于块的量化后残差的差分PCM解码之前,对第一BDPCM指示信息进行解码,第一BDPCM指示信息用于指示当前处理单元是否支持BDPCM模式。
[0282] 步骤7202:根据第一BDPCM指示信息,对当前处理单元进行解码。
[0283] 作为一个示例,若第一BDPCM指示信息指示当前处理单元支持BDPCM模式,则基于BDPCM模式对当前处理单元进行处理。
[0284] 作为一个示例,第一BDPCM指示信息可以存在于序列参数集、图像参数级、slice级或Tile级中。优选地,第一BDPCM指示信息存在于序列参数集,也即是,第一BDPCM指示信息
为SPS级语法。
[0285] 在另一实施例中,解码端还可以对范围指示信息进行解码,该范围指示信息用于指示支持BDPCM模式的处理单元的范围。该范围指示信息可以存在于序列参数集、图像参数
级、slice级或Tile级中。
[0286] 本申请实施例中,增加了一个语法来开启或者关闭BDPCM模式,提高了编解码过程的灵活性。另外,还增加了一个语法用于指示支持BDPCM模式的处理单元的范围。
[0287] BDPCM模式下的第二种实现方式
[0288] 图19是本申请实施例提供的一种编码方法的流程图,该方法应用于编码端,如图19所示,若当前块支持BDPCM模式,该方法包括如下步骤:
[0289] 步骤7301:在对当前块进行基于块的量化后残差的差分PCM处理之前,对第二BDPCM指示信息进行编码,第二BDPCM指示信息用于指示支持BDPCM模式的图像块的尺寸范
围。
[0290] 示例的,该尺寸范围可以为小于32*32的尺寸范围。
[0291] 作为一个示例,第二BDPCM指示信息用于指示能够支持BDPCM模式的图像块的最大尺寸,即可以使用BDPCM模式的图像块的最大尺寸。示例的,所述最大尺寸为32*32。
[0292] 作为一个示例,第二BDPCM指示信息可以存在于序列参数集(SPS)、图像参数级、slice级或Tile级中。优选地,第二BDPCM指示信息存在于序列参数集,也即是,第二BDPCM指
示信息是在SPS级增加的一个语法。
[0293] 图20是本申请实施例提供的一种解码方法的流程图,该方法应用于解码端,该方法是与上述图19所示的编码方法对应的解码方法,如图20所示,若当前块支持BDPCM模式,
该方法包括如下步骤:
[0294] 步骤7401:在对当前块进行基于块的量化后残差的差分PCM处理之前,对第二BDPCM指示信息进行解码,第二BDPCM指示信息用于指示支持BDPCM模式的图像块的尺寸范
围。
[0295] 步骤7402:基于第二BDPCM指示信息和当前块的尺寸,确定当前块是否能够进行基于块的量化后残差的差分PCM处理。
[0296] 作为一个示例,若当前块的尺寸在第二BDPCM指示信息指示的支持BDPCM模式的图像块的尺寸范围内,则确定当前块能够进行基于块的量化后残差的差分PCM处理。若当前块
的尺寸不在第二BDPCM指示信息指示的支持BDPCM模式的图像块的尺寸范围内,则确定当前
块不能进行基于块的量化后残差的差分PCM处理。
[0297] 作为一个示例,第二BDPCM指示信息用于指示能够支持BDPCM模式的图像块的最大尺寸,则若当前块的尺寸小于或等于第二BDPCM指示信息指示的最大尺寸,则确定当前块能
够进行基于块的量化后残差的差分PCM处理。若当前块的尺寸大于第二BDPCM指示信息指示
的最大尺寸,则确定当前块不能进行基于块的量化后残差的差分PCM处理。
[0298] 作为一个示例,第二BDPCM指示信息可以存在于序列参数集(SPS)、图像参数级、slice级或Tile级中。优选地,第二BDPCM指示信息存在于序列参数集,也即是,第二BDPCM指
示信息是在SPS级增加的一个语法。
[0299] 本申请实施例中,增加了一个语法来控制可以使用BDPCM模式的尺寸范围,提高了编解码过程的灵活性。
[0300] BDPCM模式下的第三种实现方式
[0301] 在BDPCM模式下,编码端与解码端之间传输的语法元素还可以包括第三BDPCM指示信息和第四BDPCM指示信息。第三BDPCM指示信息用于指示当前块是否启动BDPCM模式,第四
BDPCM指示信息用于指示BDPCM模式的预测方向的索引信息。示例的,第三BDPCM指示信息为
Intra_bdpcm_flag,第四BDPCM指示信息为Intra_bdpcm_dir_flag。
[0302] 相关技术中,若当前块支持BDPCM模式,在确定进行第三BDPCM指示信息的编码或解码时,需要基于一个上下文模型,对第三BDPCM指示信息进行基于上下文的自适应二进制
算术编码或基于上下文的自适应二进制算术解码;在确定进行第四BDPCM指示信息进行编
码或解码时,需要基于另一个不同的上下文模型,对第四BDPCM指示信息进行基于上下文的
自适应二进制算术编码或基于上下文的自适应二进制算术解码。也即是,需要用到两个上
下文模型,来对第三BDPCM指示信息和第四BDPCM指示信息进行编解码,如下表16所示。
[0303] 表16
[0304]
[0305] 图21是本申请实施例提供的一种编码方法的流程图,该方法应用于编码端,如图21所示,若当前块支持BDPCM模式,该方法包括如下步骤:
[0306] 步骤7501:在对当前块进行基于块的量化后残差的差分PCM编码之前,根据当前块是否启动BDPCM模式,基于一个上下文模型,对第三BDPCM指示信息进行基于上下文的自适
应二进制算术编码。
[0307] 作为一个示例,若当前块满足基于块的量化后残差的差分PCM编码的条件,可以通过RDO决策是否启动BDPCM模式,即要不要使用量化后残差的差分PCM编码方法,并在编码流
中编码第三BDPCM指示信息,来表示当前块是否启动BDPCM模式。
[0308] 步骤7502:若确定当前块启动BDPCM模式,则根据BDPCM模式的预测方向的索引信息,对第四BDPCM指示信息进行基于旁路的二进制算术编码。
[0309] 其中,BDPCM模式的预测方向包括水平预测方向和垂直预测方向。
[0310] 作为一个示例,编码端可以通过RDO决策预测方向,基于选择的预测方向,在编码流中编码第四BDPCM指示信息,来表示BDPCM模式的预测方向。
[0311] 图22是本申请实施例提供的一种解码方法的流程图,该方法应用于解码端,该方法为上述图21所示的编码方法对应的解码方法,如图22所示,若当前块支持BDPCM模式,该
方法包括如下步骤:
[0312] 步骤7601:在对当前块进行基于块的量化后残差的差分PCM解码之前,基于一个上下文模型,对第三BDPCM指示信息进行基于上下文的自适应二进制算术解码。
[0313] 作为一个示例,解码端可以接收当前块的编码流,若当前块满足解析条件,则解析出第三BDPCM指示信息,来确定当前块是否启动BDPCM模式。
[0314] 其中,解析条件包括:当前块尺寸满足一定尺寸条件。当然,该解析条件不限定于上述条件,还可以包括其他条件。
[0315] 步骤7602:当第三BDPCM指示信息指示当前块启动BDPCM模式,对第四BDPCM指示信息进行基于旁路的二进制算术解码,第四BDPCM指示信息用于指示BDPCM模式的预测方向的
索引信息。
[0316] 当当前块启动BDPCM模式的情况下,需要进一步解析第四BDPCM指示信息,以确定预测方向。
[0317] 步骤7603:按照第四BDPCM指示信息指示的预测方向,对当前块进行基于块的量化后残差的差分PCM处理。
[0318] 作为一个示例,解码端可以逆向累加过程得到量化后的残差数据,再进行反量化并且与预测值相加得到重构像素值。
[0319] 作为一个示例,第三BDPCM指示信息和第四BDPCM指示信息的编解码方式可以如下表17所示:
[0320] 表17
[0321]
[0322] 本申请实施例中,第三BDPCM指示信息使用1个上下文模型,而第四BDPCM指示信息采用基于旁路的二进制算术编解码方式,如此,可以将第三BDPCM指示信息和第四BDPCM指
示信息所需的上下文模型的数量降至1,从而减小了编解码的复杂度,减小了内存开销。
[0323] BDPCM模式下的第四种实现方式
[0324] 图23是本申请实施例提供的一种编码方法的流程图,该方法应用于编码端,如图23所示,若当前块支持BDPCM模式,该方法包括如下步骤:
[0325] 步骤7701:在对当前块进行基于块的量化后残差的差分PCM编码之前,根据当前块是否启动BDPCM模式,对第三BDPCM指示信息进行基于旁路的二进制算术编码。
[0326] 作为一个示例,若当前块满足基于块的量化后残差的差分PCM编码的条件,可以通过率失真抉择当前块要不要使用量化后残差的差分PCM编码方法,并在编码流中编码第三
BDPCM指示信息,来表示当前块是否启动BDPCM模式。
[0327] 步骤7702:若确定当前块启动BDPCM模式,则根据BDPCM模式的预测方向的索引信息,对第四BDPCM指示信息进行基于旁路的二进制算术解码。
[0328] 其中,BDPCM模式的预测方向包括水平预测方向和垂直预测方向。
[0329] 作为一个示例,编码端可以通过率失真抉择预测方向,基于选择的预测方向,在编码流中编码第四BDPCM指示信息,来表示BDPCM模式的预测方向。
[0330] 图24是本申请实施例提供的一种解码方法的流程图,该方法应用于解码端,该方法为上述图23所示的编码方法对应的解码方法,如图24所示,若当前块支持BDPCM模式,该
方法包括如下步骤:
[0331] 步骤7801:在对当前块进行基于块的量化后残差的差分PCM解码之前,对第三BDPCM指示信息进行基于旁路的二进制算术解码。
[0332] 作为一个示例,解码端可以接收当前块的编码流,若当前块满足解析条件,则解析出第三BDPCM指示信息,来确定当前块是否启动BDPCM模式。
[0333] 其中,解析条件包括:当前块尺寸满足一定尺寸条件。当然,该解析条件不限定于上述条件,还可以包括其他条件。
[0334] 步骤7802:当第三BDPCM指示信息指示当前块启动BDPCM模式,对第四BDPCM指示信息进行基于旁路的二进制算术解码,第四BDPCM指示信息用于指示BDPCM模式的预测方向的
索引信息。
[0335] 当当前块启动BDPCM模式的情况下,需要进一步解析第四BDPCM指示信息,以确定预测方向。
[0336] 步骤7803:按照第四BDPCM指示信息指示的预测方向,对当前块进行基于块的量化后残差的差分PCM处理。
[0337] 作为一个示例,解码端可以逆向累加过程得到量化后的残差数据,再进行反量化并且与预测值相加得到重构像素值。
[0338] 作为一个示例,第三BDPCM指示信息和第四BDPCM指示信息的编解码方式可以如下表18所示:
[0339] 表18
[0340]
[0341] 本申请实施例中,第三BDPCM指示信息和第四BDPCM指示信息均采用基于旁路的二进制算术编解码方式,如此,可以将第三BDPCM指示信息和第四BDPCM指示信息所需的上下
文模型的数量降至0,从而减小了编解码的复杂度,减小了内存开销。
[0342] BDPCM模式下的第五种实现方式
[0343] 在BDPCM模式下,编码端与解码端之间传输的语法元素还包括CBF指示信息,CBF指示信息用于指示当前块的变换块是否具有非零变换系数。示例的,CBF指示信息为cbf 
flag,或者Tu_cbf_luma。
[0344] 相关技术中,在根据帧内子块预测对当前块进行预测之前,可以基于目标上下文模型,对CBF指示信息进行基于上下文的自适应二进制算术编码或基于上下文的自适应二
进制算术解码。其中,目标上下文模型是根据当前块是否启动帧内子块预测,当前块的前一
个变换块是否具有非零变换系数,当前块的变换块的划分深度,以及当前块是否启动BDPCM
模式这些条件,从5个不同的上下文模型中选择的一个上下文模型。
[0345] 具体地,假设这5种不同的上下文模型包括第一上下文模型、第二上下文模型、第三上下文模型、第四上下文模型和第五上下文模型。若当前块启动帧内子块预测,则目标上
下文模型是根据当前块的前一个变换块是否具有非零变换系数,从第一上下文模型和第二
上下文模型中选择的一个上下文模型。示例的,若当前块的前一个变换块具有非零变换系
数,则目标上下文模型为第一上下文模型;若当前块的前一个变换块不具有非零变换系数,
则目标上下文模型为第二上下文模型。若当前块未启动帧内子块预测,即当前块启动常规
帧内预测,则目标上下文模型是根据当前块的变换块的划分深度,从第三上下文模型、第四
上下文模型中选择的一个上下文模型。示例的,若当前块的变换块的划分深度大于预设划
分深度,则目标上下文模型为第三上下文模型,若当前块的变换块的划分深度小于或等于
预设划分深度,则目标上下文模型为第四上下文模型。若当前块启动BDPCM模式,则目标上
下文模型为第五上下文模型。
[0346] 由于在相关技术中,CBF指示信息需要用到5个上下文模型,所需的上下文模型的数量较多,因此编解码的复杂度高,内存开销较大。
[0347] 图25是本申请实施例提供的一种编码方法的流程图,该方法应用于编码端,如图25所示,该方法包括如下步骤:
[0348] 步骤7901:若当前块启动帧内子块预测,则在确定进行CBF指示信息的编码时,基于目标上下文模型,对CBF指示信息进行基于上下文的自适应二进制算术编码;其中,目标
上下文模型是根据当前块的前一个变换块是否具有非零变换系数从第一上下文模型集合
包括的2个不同的上下文模型中选择的一个上下文模型。
[0349] 作为一个示例,假设第一上下文模型集合包括第一上下文模型和第二上下文模型,则若当前块的前一个变换块具有非零变换系数,则目标上下文模型为第一上下文模型;
若当前块的前一个变换块不具有非零变换系数,则目标上下文模型为第二上下文模型。
[0350] 步骤7902:若当前块启动常规帧内预测或启动BDPCM模式,则在确定进行CBF指示信息的编码时,基于目标上下文模型,对CBF指示信息进行基于上下文的自适应二进制算术
编码;其中,目标上下文模型是根据当前块的变换块的划分深度从第二上下文模型集合包
括的2个不同的上下文模型中选择的一个上下文模型,第二上下文模型集合包括的2个上下
文模型集合与第一上下文模型集合包括的2个上下文模型不同。
[0351] 作为一个示例,假设第二上下文模型集合中包括第三上下文模型和第四上下文模型,则若当前块的变换块的划分深度大于预设划分深度,则目标上下文模型为第三上下文
模型,若当前块的变换块的划分深度小于或等于预设划分深度,则目标上下文模型为第四
上下文模型。
[0352] 图26是本申请实施例提供的一种解码方法的流程图,该方法应用于解码端,该方法为与上述图25所示的编码方法对应的解码方法,如图26所示,该方法包括如下步骤:
[0353] 步骤8001:若当前块启动帧内子块预测,则在确定进行CBF指示信息的解码时,基于目标上下文模型,对CBF指示信息进行基于上下文的自适应二进制算术解码;其中,目标
上下文模型是根据当前块的前一个变换块是否具有非零变换系数从第一上下文模型集合
包括的2个不同的上下文模型中选择的一个上下文模型。
[0354] 作为一个示例,假设第一上下文模型集合包括第一上下文模型和第二上下文模型,则若当前块的前一个变换块具有非零变换系数,则目标上下文模型为第一上下文模型;
若当前块的前一个变换块不具有非零变换系数,则目标上下文模型为第二上下文模型。
[0355] 步骤8002:若当前块启动常规帧内预测或启动BDPCM模式,则在确定进行CBF指示信息的解码时,基于目标上下文模型,对CBF指示信息进行基于上下文的自适应二进制算术
解码;其中,目标上下文模型是根据当前块的变换块的划分深度从第二上下文模型集合包
括的2个不同的上下文模型中选择的一个上下文模型,第二上下文模型集合包括的2个上下
文模型集合与第一上下文模型集合包括的2个上下文模型不同。
[0356] 作为一个示例,假设第二上下文模型集合中包括第三上下文模型和第四上下文模型,则若当前块的变换块的划分深度大于预设划分深度,则目标上下文模型为第三上下文
模型,若当前块的变换块的划分深度小于或等于预设划分深度,则目标上下文模型为第四
上下文模型。
[0357] 本申请实施例中,若当前块启动BDPCM模式,CBF指示信息的编解码的上下文模型的选择也取决于当前块的变换块的划分深度,使得当前块启动BDPCM模式与启动常规帧内
预测时,共用2个上下文模型,如此,可以将CBF指示信息所需的上下文模型的数量降至4,从
而减小了编解码的复杂度,减小了内存开销。
[0358] BDPCM模式下的第六种实现方式
[0359] 图27是本申请实施例提供的一种编码方法的流程图,该方法应用于编码端,如图27所示,该方法包括如下步骤:
[0360] 步骤8101:若当前块启动帧内子块预测,或启动常规帧内预测,或启动BDPCM模式,则在确定进行CBF指示信息的编码时,基于目标上下文模型,对CBF指示信息进行基于上下
文的自适应二进制算术编码;其中,目标上下文模型是根据当前块的变换块的划分深度从2
个不同的上下文模型中选择的一个上下文模型。
[0361] 作为一个示例,假设这2个不同的上下文模型为第一上下文模型和第二上下文模型,则若当前块的变换块的划分深度大于预设划分深度,则目标上下文模型为第一上下文
模型,若当前块的变换块的划分深度小于或等于预设划分深度,则目标上下文模型为第二
上下文模型。
[0362] 图28是本申请实施例提供的一种解码方法的流程图,该方法应用于解码端,该方法为与上述图27所示的编码方法对应的解码方法,如图28所示,该方法包括如下步骤:
[0363] 步骤8201:若当前块启动帧内子块预测,或启动常规帧内预测,或启动BDPCM模式,则在确定进行CBF指示信息的解码时,基于目标上下文模型,对CBF指示信息进行基于上下
文的自适应二进制算术解码;其中,目标上下文模型是根据当前块的变换块的划分深度从2
个不同的上下文模型中选择的一个上下文模型。
[0364] 作为一个示例,假设这2个不同的上下文模型为第一上下文模型和第二上下文模型,则若当前块的变换块的划分深度大于预设划分深度,则目标上下文模型为第一上下文
模型,若当前块的变换块的划分深度小于或等于预设划分深度,则目标上下文模型为第二
上下文模型。
[0365] 本申请实施例中,若当前块启动BDPCM模式或启动帧内子块预测模式,CBF指示信息的编解码的上下文模型的选择也取决于当前块的变换块的划分深度,使得当前块启动
BDPCM模式、启动常规帧内预测以及启动帧内子块划分模式时,均共用2个上下文模型,如
此,可以将CBF指示信息所需的上下文模型的数量降至2,从而减小了编解码的复杂度,减小
了内存开销。
[0366] BDPCM模式下的第七种实现方式
[0367] 图29是本申请实施例提供的一种编码方法的流程图,该方法应用于编码端,如图29所示,该方法包括如下步骤:
[0368] 步骤8301:若当前块启动帧内子块预测或启动常规帧内预测,则在确定进行CBF指示信息的编码时,基于目标上下文模型,对CBF指示信息进行基于上下文的自适应二进制算
术编码;其中,目标上下文模型是根据当前块的变换块的划分深度从第一上下文模型集合
包括的2个不同的上下文模型中选择的一个上下文模型。
[0369] 作为一个示例,假设第一上下文模型集合包括第一上下文模型和第二上下文模型,则若当前块的变换块的划分深度大于预设划分深度,则目标上下文模型为第一上下文
模型,若当前块的变换块的划分深度小于或等于预设划分深度,则目标上下文模型为第二
上下文模型。
[0370] 步骤8302:若当前块启动BDPCM模式,则在确定进行CBF指示信息的编码时,基于目标上下文模型,对CBF指示信息进行基于上下文的自适应二进制算术编码;其中,目标上下
文模型是第一上下文模型集合中的一个上下文模型。
[0371] 图30是本申请实施例提供的一种解码方法的流程图,该方法应用于解码端,该方法为与上述图29实施例所述的编码方法对应的解码方法,如图30所示,该方法包括如下步
骤:
[0372] 步骤8401:若当前块启动帧内子块预测或启动常规帧内预测,则在根据帧内子块预测对当前块进行预测之前,确定进行CBF指示信息的解码时,基于目标上下文模型,对CBF
指示信息进行基于上下文的自适应二进制算术解码;其中,目标上下文模型是根据当前块
的变换块的划分深度从第一上下文模型集合包括的2个不同的上下文模型中选择的一个上
下文模型。
[0373] 作为一个示例,假设第一上下文模型集合包括第一上下文模型和第二上下文模型,则若当前块的变换块的划分深度大于预设划分深度,则目标上下文模型为第一上下文
模型,若当前块的变换块的划分深度小于或等于预设划分深度,则标上下文模型为第二上
下文模型。
[0374] 步骤8402:若当前块启动BDPCM模式,则在确定进行CBF指示信息的解码时,基于目标上下文模型,对CBF指示信息进行基于上下文的自适应二进制算术解码;其中,目标上下
文模型是第一上下文模型集合中的一个上下文模型。
[0375] 本申请实施例中,在帧内子块预测和启动常规帧内预测下,CBF指示信息根据当前块的变换块的划分深度公用2个上下文模型,在BDPCM模式下,CBF指示信息的编解码的上下
文模型可以从常规帧内预测和帧内子块预测模式使用的2个上下文模型中选择1个,如此,
可以将CBF指示信息所需的上下文模型的数量降至2,从而减小了编解码的复杂度,减小了
内存开销。
[0376] JCCR模式
[0377] 图31是本申请实施例提供的一种编码方法的流程图,该方法应用于编码端,如图31所示,该方法包括如下步骤:
[0378] 步骤8501:在根据JCCR模式对当前块进行解码之前,根据当前块是否支持JCCR模式,对JCCR指示信息进行编码,JCCR指示信息用于指示当前处理单元是否支持JCCR模式。
[0379] 其中,当前处理单元中的单元的范围可以是序列级,图像参数级或块级等。
[0380] 其中,当前处理单元是否支持JCCR模式是指是否使能JCCR模式,也即是,是否开启JCCR模式。示例的,JCCR指示信息为sps_jccr_enable_flag,其为JCCR的使能标识位。作为
一个示例,sps_jccr_enable_flag为真时,表示当前块支持JCCR模式。作为一个示例,当前
块可以为色度残差块。
[0381] 作为一个示例,JCCR指示信息可以存在于序列参数集(SPS)、图像参数级、slice级或Tile级中。优选地,JCCR指示信息存在于序列参数集,也即是,JCCR指示信息是在SPS级增
加的一个语法。
[0382] 作为一个示例,编码端还可以编码范围指示信息,该范围指示信息用于指示支持JCCR模式的处理单元的范围。作为一个示例,该范围指示信息可以存在于序列参数集
(SPS)、图像参数级、slice级或Tile级中。
[0383] 之后,编码端可以根据JCCR指示信息,确定当前块是否启动JCCR模式。
[0384] 作为一个示例,若JCCR模式指示当前块支持JCCR模式,可以继续确定当前块的CBF值,若当前块的CB分量和CR分量的CBF值均为真,即当前块的CB分量和CR分量的残差系数均
不为0,则编码端可以考虑启动JCCR模式。示例的,当前块是否启动JCCR模式可以由编码端
通过RDO决策得出的。
[0385] 图32是本申请实施例提供的一种解码方法的流程图,该方法应用于解码端,该方法是与上述图31所示的编码方法对应的解码方法,如图32所示,该方法包括如下步骤:
[0386] 步骤8601:在根据JCCR模式对当前块进行解码之前,对JCCR指示信息进行解码,JCCR指示信息用于指示当前处理单元是否支持JCCR模式。
[0387] 步骤8602:若根据JCCR指示信息确定当前块支持JCCR模式,且当前块启动JCCR模式,则按照当前块的CB分量和CR分量的相关性对当前块进行解码,得到当前块的色度残差
系数。
[0388] 作为一个示例,若根据JCCR指示信息确定当前块支持JCCR模式,则可以继续确定当前块的CBF值,若当前块的CB分量和CR分量的CBF值均为真,即当前块的CB分量和CR分量
的残差系数均不为0,则继续解析当前块是否启动JCCR模式。若确定当前块启动JCCR模式,
则按照当前块的CB分量和CR分量的相关性对当前块进行解码,得到当前块的色度残差系
数。
[0389] 作为一个示例,JCCR指示信息可以存在于序列参数集(SPS)、图像参数级、slice级或Tile级中。优选地,JCCR指示信息存在于序列参数集,也即是,JCCR指示信息是在SPS级增
加的一个语法
[0390] 在另一实施例中,解码端还可以对范围指示信息进行解码,该范围指示信息用于指示支持JCCR模式的处理单元的范围。该范围指示信息可以为可以存在于序列参数集
(SPS)、图像参数级、slice级或Tile级中。
[0391] 本申请实施例中,增加了一个用于指示是否支持JCCR模式的语法,提高了编解码过程的灵活性。另外,还增加了一个语法用于指示支持JCCR模式的处理单元的范围。
[0392] 图33是本申请实施例提供的一种编码端8700的结构示意图,该编码端8700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central 
processing units,CPU)8701和一个或一个以上的存储器8702,其中,所述存储器8702中存
储有至少一条指令,所述至少一条指令由所述处理器8701加载并执行以实现上述各个方法
实施例提供的编码方法。当然,该编码端8700还可以具有有线或无线网络接口、键盘以及输
入输出接口等部件,以便进行输入输出,该编码端8700还可以包括其他用于实现设备功能
的部件,在此不做赘述。
[0393] 图34是本申请实施例提供的一种解码端8800的结构示意图,该解码端8800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central 
processing units,CPU)8801和一个或一个以上的存储器8802,其中,所述存储器8802中存
储有至少一条指令,所述至少一条指令由所述处理器8801加载并执行以实现上述各个方法
实施例提供的解码方法。当然,该解码端8800还可以具有有线或无线网络接口、键盘以及输
入输出接口等部件,以便进行输入输出,该解码端8800还可以包括其他用于实现设备功能
的部件,在此不做赘述。
[0394] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读
存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0395] 以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。