首页> 中国专利> 一种视频数据的残差系数编解码方法、装置及电子设备

一种视频数据的残差系数编解码方法、装置及电子设备

摘要

本公开关于一种视频数据的残差系数编解码方法、装置及电子设备,该方法包括:从接收的残差图像码流中残差系数的码流进行多轮解码;在解码到第一指定语法元素时,确定解码采用指定的一组码字,或者根据所述残差图像对应的指定编码信息,确定解码采用的一组码字,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素;根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的码流对应的编码值。本公开改变了对第一指定语法元素编解码时对邻近位置的依赖性,不需要额外的复杂的逻辑确定相应的码字,提高了编解码效率。

著录项

  • 公开/公告号CN113225567A

    专利类型发明专利

  • 公开/公告日2021-08-06

    原文格式PDF

  • 申请/专利权人 北京达佳互联信息技术有限公司;

    申请/专利号CN202011546358.6

  • 申请日2020-12-24

  • 分类号H04N19/50(20140101);H04N19/176(20140101);H04N19/124(20140101);

  • 代理机构11291 北京同达信恒知识产权代理有限公司;

  • 代理人常晓

  • 地址 100085 北京市海淀区上地西路6号1幢1层101D1-7

  • 入库时间 2023-06-19 12:07:15

说明书

本申请要求在2019年12月27日提交美国专利局、申请号为62/954,402、申请名称为“Residual and Coefficients Coding for Video Coding”的美国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

本公开涉及视频编解码技术领域,特别涉及一种视频数据的残差系数编解码方法、装置及电子设备。

背景技术

在对视频数据进行处理时可以使用各种视频编码技术来压缩视频数据。视频编码是根据一个或多个视频编码标准来执行的。例如,视频编码标准包括多功能视频编码(Versatile Video Coding,VVC)、联合勘探测试模型(JEM)、高效率视频编码(HEVC)、高级视频编码(AVC)、运动图像专家组(MPEG)编码等。视频编码通常利用视频图像或视频序列中存在冗余的预测方法,例如,帧间预测、帧内预测等。视频编码技术的一个重要目标是将视频数据压缩为使用较低比特率的形式,同时避免或最小化对视频质量的下降。

在视频编解码中,编码端采用帧内/帧间预测进行编码后得到预测块,从当前视频块减去预测块得到残差块,对残差块中残差系数进行变换和量化后,对量化后的残差系数进行编码传输到解码端;解码端对编码后的残差系数的编码流进行解码,对解码后的残差系数进行逆量化和逆变换得到残差块,利用残差块和解码得到的预测块重构视频块。

目前对残差系数进行编解码的方案,针对残差块中的不同残差系数按照划分的残差子块进行编解码,在对残差子块中的残差系数进行编解码过程中,满足一定条件时,根据相应的级别映射方案将当前残差系数映射为对应的绝对级别等级。

在对残差子块的残差系数进行编解码时,采用多轮编码方式进行编解码,在每一轮编解码中对残差系数相应的语法元素进行编解码。对语法元素的编解码包括两种类型:一种是依赖于概率模型选择的上下文编解码方式,一种是不依赖于概率模型的旁路编解码方式。

在旁路编解码方式中,对残差系数的某些语法元素进行编解码时,需要根据编解码的残差系数所在像素位置的相邻位置相关信息确定查表参数,根据确定查表参数采用相应的查表方式确定采用的编解码方式,及利用对应的编解码方式确定一组码字,根据所述一组码字序列中的不同码字对应的码值,得到该语法元素的码值。

上述查表确定查表参数的方式,需要针对每个像素点进行相邻位置相关信息的计算,经过复杂的逻辑推导过程计算出查表参数,并根据查表参数查表确定采用的编码方式,因此其需要额外的逻辑来处理用于残差系数编码的码字适应性,这样算法的步骤较为复杂,算法的运算量较大。

发明内容

本公开提供一种视频数据的残差系数编解码方法、装置及电子设备,以至少解决相关技术中编解码存在额外的逻辑和推导过程导致编解码效率低的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种视频数据的残差系数编解码方法,包括:

从接收的残差图像码流中,提取所述残差图像中残差子块的码流,所述残差子块包括多个残差系数;

对各残差系数的码流进行多轮解码,每一轮采用该轮的解码方式解码对应的语法元素的码流;

在解码到第一指定语法元素时,确定解码采用指定的一组码字,或者根据所述残差图像对应的指定编码信息,确定解码采用的一组码字,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素;

根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的码流对应的编码值。

在一种可能的实现方式中,所述残差系数为规则变换系数时,所述第一指定语法元素为第二轮解码中需要解码的残差剩余绝对值abs_remainder或等级绝对值dec_abs_level;

所述残差系数为跳跃变换系数时,所述第一指定语法元素为第三轮解码中需要解码的残差剩余绝对值abs_remainder;

所述残差系数为调色板模式下的残差系数时,所述第一指定语法元素为残余值palette_escape_val;

其中,所述abs_remainder为残差系数减去设定的第一基本等级后的差值绝对值;所述dec_abs_level为残差系数减去设定的第二基本等级后的差值绝对值;所述palette_escape_val为未利用调色板中索引值映射的残差系数。

在一种可能的实现方式中,所述第一基本等级的取值为4,第二基本等级的取值为0;或者所述第一基本等级和第二基本等级的取值相同,取值为0或取值为4。

在一种可能的实现方式中,该方法还包括:

对于非调色板模式的残差系数,从预定义的不同查表参数rice对应的多组码字关系中,选择一个rice对应的码字作为所述指定的一组码字,或者选择多个rice对应的码字作为与不同指定编码信息对应的码字;或者

对于非调色板模式的残差系数,从预定义的不同查表参数rice对应的多组码字关系中,选择一个rice对应的码字并将其调整为预设长度,作为所述指定的一组码字,或者选择多个rice对应的码字并分别调整为预设长度,作为与不同指定编码信息对应的码字;或者

对于非调色板模式的残差系数,从预先义的不同查表参数rice对应的多组码字关系中,确定小于预设阈值的rice对应的多组码字,并从中选择一个rice对应的码字作为所述指定的一组码字,或者从中选择多个rice对应的码字作为与不同指定编码信息对应的码字;

对于调色板模式的残差系数,从预先义的不同Exp-Golomb参数对应的多组码字关系中,选择一个Exp-Golomb参数对应的码字作为所述指定的一组码字,或者选择多个Exp-Golomb参数对应的码字作为与不同指定编码信息对应的码字;或者

对于调色板模式的残差系数,从预定义的不同Exp-Golomb参数对应的多组码字关系中,选择一个Exp-Golomb参数对应的码字并将其调整为预设长度作为所述指定的一组码字,或者选择多个Exp-Golomb参数对应的码字并将其调整为预设长度,作为与不同指定编码信息对应的码字;

其中,所述预设长度为所述多组码字中最长的一组码字的长度,或者为所述最长的一组码字的长度减去预设值之后的长度。

在一种可能的实现方式中,该方法还包括:

在解码到第二指定语法元素时,确定解码采用指定的一个概率模型,所述第二指定元素为依赖于概率模型的上下文编码方式的语法元素;

利用所述指定的一个概率模型对所述第二指定语法元素进行解码,得到所述第二指定语法元素的二进值码流对应的编码值。

在一种可能的实现方式中,所述残差系数包括亮度残差系数和色度残差系数,其中:

对所述亮度残差系数和色度残差系数,指定不同的一组码字;或者

对所述亮度残差系数和色度残差系数,分别指定与不同指定编码信息对应的多组码字,且所述亮度残差系数对应的多组码字与色度残差系数对应的多组码字不完全相同。

在一种可能的实现方式中,所述指定编码信息包括如下至少一个编码参数:

与变换块TB或编码块CB或片段相关联的量化参数QP;

编码单元CU的预测模式;

片段类型,所述片段类型包括I片段、P片段或B片段。

在一种可能的实现方式中,该方法还包括:

建立指定编码信息中的不同阈值范围的编码参数与不同组码字的映射关系。

在一种可能的实现方式中,该方法还包括:

接收编码端采用不同级别比特流发送的信号通知,确定所通知的指定编码信息的编码参数及对应的阈值;

所述不同级别包括序列级别、图片级别、片段级别、编码树单元CTU级别或编码单元CU级别。

在一种可能的实现方式中,该方法还包括:

接收编码端采用不同级别的比特流发送的信号通知,确定所通知的查表参数rice或Exp-Golomb参数;

所述不同级别包括序列级别、图片级别、片段级别、编码树单元CTU级别或编码单元CU级别。

在一种可能的实现方式中,所述序列级别的比特流为序列参数集的比特流;

所述图片级别的比特流为图片参数集的比特流,和/或图片头的比特流;

所述片段级别的比特流为片段头的比特流。

在一种可能的实现方式中,该方法还包括:

确定所述残差系数为级别映射后的规则变换系数时,按照第一映射级别规则确定级别映射前的残差系数绝对级别等级;

确定所述残差系数为级别映射后的跳跃变换系数时,按照第二映射级别规则确定级别映射前的残差系数绝对级别等级;

所述第一映射级别规则或所述第二级别映射规则,用于按照推导方法推导出映射位置,并利用映射函数基于推导出的映射位置对残差系数进行级别映射;

所述第一映射级别规则和第二映射级别规则相同,或者所述第一映射级别规则和第二映射级别规则中映射位置的推导方法相同,或者所述第一映射级别规则和第二映射级别规则中映射函数相同。

在一种可能的实现方式中,所述第一映射级别规则或所述第二级别映射规则,用于在残差系数满足设定级别映射条件时,按照推导方法推导出映射位置,并利用映射函数基于推导出的映射位置对残差系数进行级别映射。

根据本公开实施例的第二方面,提供一种视频数据的残差系数编解码方法,包括:

从接收的残差图像码流中,提取所述残差图像中残差子块的码流,所述残差子块包括多个残差系数;

对各残差系数的码流进行多轮解码,其中,每一轮采用该轮的解码方式解码对应的语法元素的码流;

确定解码到第一指定语法元素时,按照第二逻辑规则根据所述残差系数相邻位置的残差系数的绝对级别等级AbsLevel得到查表参数rice;

从预定义的不同rice对应的多组码字关系中,确定计算出的rice对应的一组码字,根据所述一组码字中的不同码字对应的编码值,得到所述第一指定语法元素的码流对应的编码值;

其中,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素,所述第二逻辑规则为改变第一逻辑规则中计算rice使用的参数和/逻辑计算方式得到的规则。

在一种可能的实现方式中,所述按照第二逻辑规则根据所述残差系数相邻位置的残差系数的AbsLevel得到rice,包括如下任一步骤:

根据所述相邻位置的残差系数的AbsLevel确定等级参数locSumAbs,将确定的locSumAbs采用逻辑推导方式得到rice,所述n为非零正整数;

根据N个相邻位置的残差系数的AbsLevel确定locSumAbs,根据确定的locSumAbs得到查表参数rice,所述N为小于5的正整数;

将所述相邻位置的残差系数的AbsLevel求和并减去m*baseLevel,将得到的数值乘以设定系数alpha后,再偏移设定偏移量beta后确定locSumAbs,根据确定的locSumAbs得到查表参数rice;

所述baseLevel为残差系数的基本级别,m为查找到相邻位置的数量。

在一种可能的实现方式中,所述按照第二逻辑规则根据所述残差系数相邻位置的残差系数的AbsLevel得到查表参数rice,包括:

将所述相邻位置的残差系数的AbsLevel求和并减去m*baseLevel,所述baseLevel为残差系数的基本级别,m为查找到相邻位置的数量;

将得到的数值作为locSumAbs,或仅限制得到的数值中最小值为下限值得到locSumAbs;或仅限制得到的数值中的最大值为上限值得到locSumAbs。

在一种可能的实现方式中,所述按照第二逻辑规则根据所述残差系数相邻位置的残差系数的AbsLevel得到查表参数rice,包括:

初始locSumAbs为非零值,查找残差系数的相邻位置;

查找到一个相邻位置时,将相邻位置的残差系数的AbsLevel加上当前locSumAbs得到更新后的当前locSumAbs;

查找相邻位置结束时,将当前locSumAbs减去m*baseLevel进行locSumAbs更新,m为查找到相邻位置的数量;

根据当前locSumAbs得到查表参数rice。

在一种可能的实现方式中,所述按照第二逻辑规则根据所述残差系数相邻位置的残差系数的AbsLevel得到查表参数rice,包括:

初始化locSumAbs,并查找残差系数的相邻位置;

确定根据查找到的相邻位置中,最大的残差系数绝对级别等级确定等级参数locSumAbs;

根据确定的locSumAbs得到查表参数rice。

在一种可能的实现方式中,所述按照改进逻辑规则根据所述残差系数相邻位置的残差系数绝对级别等级得到查表参数rice,包括:

初始化locSumAbs,并查找残差系数相邻位置;

根据查找到的相邻位置的残差系数的AbsLevel相对于所述残差系数的基本级别baseLevel的相对幅度,确定等级参数locSumAbs;

根据确定的locSumAbs得到查表参数rice。

在一种可能的实现方式中,所述根据查找到的相邻位置的残差系数的AbsLevel相对于所述残差系数的基本级别baseLevel的相对幅度,确定等级参数locSumAbs,包括:

将查找到的相邻位置的残差系数的AbsLevel减去所述残差系数的baseLevel并求和,确定等级参数locSumAbs;或者

根据残差系数的AbsLevel大于baseLevel的相邻位置的数量,确定等级参数locSumAbs;或者

确定AbsLevel大于baseLevel的残差系数的相邻位置,并将确定的相邻位置的残差系数的AbsLevel减去所述残差系数的baseLevel并求和,确定等级参数locSumAbs。

在一种可能的实现方式中,确定所述残差系数的AbsLevel级别映射后绝对级别等级时,还包括:

将所述查表参数rice直接向左位移,得到所述残差系数对应的映射位置,根据所述映射位置利用映射函数确定级别映射前的AbsLevel;或者

根据locSumAbs确定所述残差系数对应的映射位置,根据所述映射位置利用映射函数确定级别映射前的AbsLevel,所述locSumAbs为根据所述相邻位置的残差系数的AbsLevel确定的等级参数;或者

根据所述相邻位置的残差系数的AbsLevel,确定所述残差系数对应的映射位置,根据所述映射位置利用映射函数确定级别映射前的AbsLevel;或者。

在一种可能的实现方式中,根据所述相邻位置的残差系数的AbsLevel,确定所述残差系数对应的映射位置,包括:

确定相邻位置的残差系数的最大AbsLevel,将最大的AbsLevel向右移位预设比特位后,确定移位后的数值为映射位置的位置数据;

确定相邻位置的残差系数的最大AbsLevel,将最大的AbsLevel向右移位预设比特位后,将移位后的数值乘以设定系数再加上预设偏移量,得到映射位置的位置数据。

根据本公开实施例的第三方面,提供一种视频数据的残差参数的编解码方法,包括:

对待传输的图像进行预测编码,根据编码后图像与待传输图像的差值得到残差图像;

对所述残差图像进行残差块中划分,对所述残差块中的残差系数进行多轮编码,每一轮采用该轮的编码方式对该轮对应的语法元素编码得到码流;

在对第一指定语法元素进行编码时,确定编码采用指定的一组码字,或者根据所述残差图像对应的指定编码信息,确定编码采用的一组码字,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素;

根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的编码值对应的码流。

根据本公开实施例的第四方面,提供一种视频数据的残差参数的编解码方法,包括:

对待传输的图像进行预测编码,根据编码后图像与待传输图像的差值得到残差图像;

对所述残差图像进行残差块中划分,对所述残差块中的残差系数进行多轮编码,每一轮采用该轮的编码方式对该轮对应的语法元素编码得到码流;

在对第一指定语法元素进行编码时,按照第二逻辑规则根据所述残差系数相邻位置的残差系数的绝对级别等级AbsLevel得到查表参数rice;

从预定义的不同rice对应的多组码字关系中,确定计算出的rice对应的一组码字,根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的编码值对应的码流;

其中,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素,所述第二逻辑规则为改变第一逻辑规则中计算rice使用的参数和/逻辑计算方式得到的规则。

根据本公开实施例的第五方面,提供一种视频数据的残差系数的编解码装置,包括:

码流接收单元,被配置为执行从接收的残差图像码流中,提取所述残差图像中残差子块的码流,所述残差子块包括多个残差系数;

多轮解码单元,被配置为执行对各残差系数的码流进行多轮解码,每一轮采用该轮的解码方式解码对应的语法元素的码流;

码字确定单元,被配置为执行在解码到第一指定语法元素时,确定解码采用指定的一组码字,或者根据所述残差图像对应的指定编码信息,确定解码采用的一组码字,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素;

码值确定单元,被配置为执行第二根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的码流对应的编码值。

根据本公开实施例的第六方面,提供一种视频数据的残差系数的编解码装置,包括:

码流接收单元,被配置执行从接收的残差图像码流中,提取所述残差图像中残差子块的码流,所述残差子块包括多个残差系数;

多轮解码单元,被配置为执行对各残差系数的码流进行多轮解码,其中,每一轮采用该轮的解码方式解码对应的语法元素的码流;

查表参数确定单元,被配置为执行确定解码到第一指定语法元素时,按照第二逻辑规则根据所述残差系数相邻位置的残差系数的绝对级别等级AbsLevel得到查表参数rice;

码值确定单元,被配置为执行从预定义的不同rice对应的多组码字关系中,确定计算出的rice对应的一组码字,根据所述一组码字中的不同码字对应的编码值,得到所述第一指定语法元素的码流对应的编码值;

其中,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素,所述第二逻辑规则为改变第一逻辑规则中计算rice使用的参数和/逻辑计算方式得到的规则。

根据本公开实施例的第七方面,提供一种视频数据的残差系数的编解码装置,包括:

残差图像确定单元,被配置为执行对待传输的图像进行预测编码,根据编码后图像与待传输图像的差值得到残差图像;

多轮编码单元,被配置为执行对所述残差图像进行残差块中划分,对所述残差块中的残差系数进行多轮编码,每一轮采用该轮的编码方式对该轮对应的语法元素编码得到码流;

码字确定单元,被配置为执行在对第一指定语法元素进行编码时,确定编码采用指定的一组码字,或者根据所述残差图像对应的指定编码信息,确定编码采用的一组码字,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素;

码流确定单元,被配置为执行根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的编码值对应的码流。

根据本公开实施例的第八方面,提供一种视频数据的残差参数的编解码装置,包括:

残差图像确定单元,被配置为执行对待传输的图像进行预测编码,根据编码后图像与待传输图像的差值得到残差图像;

多轮编码单元,对所述残差图像进行残差块中划分,对所述残差块中的残差系数进行多轮编码,每一轮采用该轮的编码方式对该轮对应的语法元素编码得到码流;

查表参数确定单元,被配置为执行在对第一指定语法元素进行编码时,按照第二逻辑规则根据所述残差系数相邻位置的残差系数的绝对级别等级AbsLevel得到查表参数rice;

码流确定单元,被配置为执行从预定义的不同rice对应的多组码字关系中,确定计算出的rice对应的一组码字,根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的编码值对应的码流;

其中,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素,所述第二逻辑规则为改变第一逻辑规则中计算rice使用的参数和/逻辑计算方式得到的规则。

根据本公开实施例的第九方面,提供一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现如上述任一方面所述的视频数据的残差参数的编解码方法。

根据本公开实施例的第十方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一方面所述的视频数据的残差参数的编解码方法。

根据本公开实施例的第十一方面,提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述任一方面所述的视频数据的残差参数的编解码方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

本公开实施例提供的视频数据的残差参数的编解码方法,改变了对相应语法元素编解码时复杂的逻辑推导过程,提出了新的编解码方式,提高了编解码效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的相关技术中采用规则变换系数编解码的方法流程示意图。

图2是根据一示例性实施例示出的相关技术中采用跳跃变换系数编解码的方法流程示意图。

图3是根据一示例性实施例示出的一种应用于解码端的视频数据的残差系数编解码方法流程图;

图4是根据一示例性实施例示出的一种应用于编码端的视频数据的残差系数编解码方法流程图;

图5是根据一示例性实施例示出的另一种应用于解码端的视频数据的残差系数编解码方法流程图;

图6是根据一示例性实施例示出的另一种应用于编码端的视频数据的残差系数编解码方法流程图;

图7是根据一示例性实施例示出的一种作为解码端的视频数据的残差系数编解码装置的框图;

图8是根据一示例性实施例示出的一种作为编码端的视频数据的残差系数编解码装置的框图;

图9是根据一示例性实施例示出的一种作为解码端的视频数据的残差系数编解码装置的框图;

图10是根据一示例性实施例示出的一种作为编码端的视频数据的残差系数编解码装置的框图;

图11是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在视频编解码中,编码端采用帧内/帧间预测进行编码后得到预测块,从当前视频块减去预测块得到残差块,对残差块中的残差系数进行编码主要包括以下两种类型:

1)非调色板模式的残差系数编解码

该类型的残差系数编解码不需要借助于调色板,按照是否对残差块中得到残差系数进行变换分为以下两种类型:

1.1)规则变换模式下的规则变换系数编解码

编码端采用帧内/帧间预测进行编码后得到预测块,从当前视频块减去预测块得到残差块,由于残差块中非零的残差系数分布比较离散,为了使非零的残差系数集中分布在某一区域,对残差系数进行变换改变其位置,然后对残差系数进行量化将其取值范围限定到某一范围,具体判定是否进行变换的条件和变换的方式为现有技术,具体的对残差系数进行量化的过程为现有技术,这里不再详述。

对残差系数进行变换后,非零残差系数集中分布在某一区域,然后按照现有方式将残差块划分为残差子块,本公开实施例也称系数组CG。按照编码标准的不同,残差子块的划分方式不同,在HEVC中,每个CG都具有固定尺寸4x4,在VVC中,CG尺寸变得依赖于编码时变换块TB尺寸。

在残差子块的基础上,根据预定的扫描顺序扫描残差块的CG以及CG内的残差系数,本公开实施例中上述残差块可以理解为一帧图像。

如图1所示为VVC中规则变换系数进行编码的具体过程示意图,主要采用如下方式进行规则变换系数编解码:

利用TB的面积和视频分量类型(如亮度分量或色度分量)推导出TB的上下文编码箱CCB的最大数量。

在VVC中的变换系数编码中,变量参数remBinsPass1首先被设置成所允许的上下文编码箱MCCB的最大数量,针对每个TB重置remBinsPass1。在编解码过程中,采用多轮编解码方式对残差子块中的残差系数C的相应语法元素进行编解码,执行某个残差系数的第一轮中的残差系数相应语法元素的编解码,该remBinsPass1减1。

具体地,在第一轮残差系数编码中,当remBinsPass1大于等于4时,对残差子块中的每个残差系数C的语法元素sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag使用依赖于概率模型的上下文编码方式进行编码,依赖于概率模型的上下文编码方式为根据该残差系数的上下文(相邻像素位置残差系数)信息,从多种概率模型中选择一种概率,利用选择的概率模型进行编解码的方式。所选的概率模型依赖于局部邻域中绝对级别(或者部分重构的绝对级别)的总和以及局部邻域中大于0的绝对级别的数量。sig_coeff_flag代表该残差系数的显著性,abs_level_gt1代表该残差系数是否大于1,par_level_flag代表该残差系数的奇偶校验结果,abs_level_gt3_flag代表该残差系数是否大于3。上述语法元素内容确定方式为现有技术,这里不再详述。每完成一个残差系数的上述第一轮语法元素的编解码后,remBinsPass1的数量减1。当remBinsPass1小于4时,不执行第一轮的语法元素的编解码,直接进行第二轮的语法元素的编解码。

在第二轮残差系数编解码中,当remBinsPass1大于等于4时,对残差子块中的每个残差系数C的语法元素abs_remainder使用不依赖于概率模型的旁路编码方式,当remBinsPass1小于4时,对残差子块中的每个残差系数C的语法元素dec_abs_level使用不依赖于概率模型的旁路编码方式。

需要说明书的是,残差系数具有残差系数绝对级别等级AbsLevel,初始时残差系数的AbsLevel为量化后的残差系数的绝对值,在编码过程中,残差系数在满足级别映射条件时,残差系数的绝对级别等级AbsLevel按照设定级别映射方案,按照推导方法推导出映射位置,并利用映射函数基于推导出的映射位置对残差系数进行级别映射,得到级别映射后的AbsLevel。

另外,残差系数具有残差系数的基本等级baseLevel,其中,在第二轮中对语法元素abs_remainder进行编码的残差系数C的基本等级为baseLevel为4,在第二轮中对语法元素dec_abs_level进行编码的残差系数C的基本等级为baseLevel为0。abs_remainder为残差剩余绝对值,例如量化后的残差系数为10时,对是否等于1、是否大于3的部分进行编码后,剩余的残差值abs_remainder取值7。dec_abs_level为等级绝对值,例如,量化后的残差系数为3,dec_abs_level的取值为3。

1.2)跳跃变换模式下的跳跃变换系数编解码

跳跃变换模式与规则变换模式的区别在于,编码端采用帧内/帧间预测进行编码后得到预测块,从当前视频块减去预测块得到残差块,得到残差块后不执行对残差系数的变换而直接进行量化。

如图2所示为VVC中跳跃变换系数编码的具体过程示意图,变量参数remBinsPass1首先被设置成所允许的上下文编码箱(MCCB)的最大数量,针对每个TB重置remBinsPass1。在编解码过程中,采用多轮编解码方式对残差子块中的残差系数C依次进行编解码,每完成一个残差系数的上述第一轮语法元素的编解码后,remBinsPass1的数量减1,且完成第二轮中采用上下文编码方式的编解码后,remBinsPass1的数量减1。

具体地,在第一轮残差系数编码中,对残差子块中的每个残差系数C的语法元素sig_coeff_flag,coeff_sign_flag,abs_level_gt1_flag,par_level_flag,使用依赖于概率模型的上下文编码方式,依赖于概率模型的上下文编码方式为根据该残差系数的上下文信息,从多种概率模型中选择一种概率,利用选择的概率模型进行编解码的方式。

在第二轮残差系数编码中,remBinsPass1未减少到设定阈值时,对残差子块中的每个残差系数C的语法元素abs_level_gtx_flag[1]、abs_level_gtx_flag[2]、abs_level_gtx_flag[3]、abs_level_gtx_flag[4],采用使用依赖于概率模型的上下文编码方式进行编码,在减少到设定阈值时,使用不依赖于概率模型的旁路编码方式进行编码。

在第三轮残差系数编码中,对语法元素abs_remainder使用不依赖于概率模型的旁路编码方式进行编码。

2)调色板模式的残差系数编解码

调色板模式的基本思路是通过调色板中的分量值来表示残差块中的残差系数。调色板包括不同的残差系数值及其对应的索引值,则残差块中出现在调色板中残差系数可以直接用调色板中对应的索引值进行编码,对于未出现在调色板中残差系数(残余样本)利用相应的编解码过程进行编解码。编解码过程与上述残差系数编解码基本思路一致,不同的是采用旁路编码的第一语法元素为palette_escape_val。

相关技术中对abs_remainder或dec_abs_level进行编码时,目前的编码方式为基于残差系数所在像素位置相邻的5个残差系数的绝对级别等级的总和,和残差系数的基本等级baseLevel,确定查表参数rice(RicePara):

RicePara=RiceParTable[max(min(31,sumAbs–5*baseLevel),0)]

上述sumAbs代表残差系数所在像素位置相邻的5个残差系数的绝对级别等级AbsLevel的总和,RiceParTable代表查表操作。目前VVC中定义了并定义了对利用[max(min(31,sumAbs–5*baseLevel),0)]得到的数值进行查表得到rice的表格,具体为协议中定义的表4,针对查找得到的rice参数,定义了不同编码方式的多组码字对应的rice参数。

上述过程为VVC的残差系数编码过程,HEVC的编码方式的基本过程与VVC基本相同,这里不再重述。

相关技术中对palette_escape_val进行编码时,给出了Exp-Golomb参数的推导方法,根据推导出的Exp-Golomb参数,根据协议中定义了不同Exp-Golomb参数对应的多组码字,确定对应的一组二进制码字。在Exp-Golomb参数的过程中需要针对每个像素点进行相邻位置点相关信息的计算,经过复杂的逻辑推导过程计算出Exp-Golomb参数。

上述编码过程中,对abs_remainder或dec_abs_level进行编码时,rice参数的推导过程基本相同,不同的仅在于abs_remainder的baselevel为4,dec_abs_level的baselevel为0,在确定rice时,需要针对每个像素点进行相邻位置点相关信息的计算,经过复杂的逻辑推导过程计算出查表参数,并根据查表参数查表确定采用的编码方式。同样,Exp-Golomb参数也需要邻近像素位置信息经过复杂的逻辑推导过程进行推导。因此其需要额外的逻辑来处理用于残差系数编码的码字适应性,这样算法的步骤较为复杂,算法的运算量较大。

实施例1

图3是根据一示例性实施例示出的一种视频数据的残差参数的编解码方法的流程图,如图3所示,该方法应用于解码端时,包括以下步骤:

在步骤S301中,从接收的残差图像码流中,提取所述残差图像中残差子块的码流,所述残差子块包括多个残差系数;

编码端从解码端接收视频流,该视频流包括多帧图像的残差系数的码流,本公开实施例的残差图像码流,是按图像帧提取,提取到一帧残差图像的码流后,可以进一步提取残差子块的码流,码流的提取方式为现有技术,这里不再重述,提取的残差子块的码流包括多个残差系数的编码后的码流。

在步骤S302中,对各残差系数的码流进行多轮解码,每一轮采用该轮的解码方式解码对应的语法元素的码流;

根据编码端采用的编码方式的不同,确定对残差系数进行多轮解码及每一轮解码需要解码的语法元素,例如对于VVC中的规则变换系数解码方式,按照图1所示的方式确定每轮解码的语法元素,具体方式参见上述描述,这里不再重述。对于VVC中的跳跃变换系数解码方式,按照图2所示的方式确定每轮解码的语法元素,具体方式参见上述描述,这里不再重述。

在步骤S303中,在解码到第一指定语法元素时,确定解码采用指定的一组码字,或者根据所述残差图像对应的指定编码信息,确定解码采用的一组码字,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素;

如前所述,对残差系数的多轮编解码中,包括采用上下文编码方式的语法元素和采用旁路编码方式的语法元素,由于采用旁路编码方式的语法元素,需要参考邻近像素位置的残差系数的绝对级别等级AbsLevel得到查表参数rice,根据rice确定采用的一组码字,因此需要复杂的逻辑和推导,Exp-Golomb参数的推导也存在相同的问题,本公开实施例改变了rice参数或Exp-Golomb参数的确定方式。

作为一种可能的实施方式,可以直接指定一组码字,在解码过程中解码到第一指定语法元素时,统一采用该组码字对应的二进制码对第一指定语法元素进行解码。

作为另一种可选的实施方式,可以直接指定多组码字,并预先建立多组码字与不同指定编码信息的映射关系,在解码过程中,解码到第一指定语法元素时,进一步获取所述残差图像对应的指定编码信息,根据获取的指定编码信息对应的一组码字,利用该组码字对应的二进制码对第一指定语法元素进行解码。

在步骤S304中,根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的码流对应的编码值。

上述编码值具体指残差图像中的残差系数对应的第一指定语法元素进行编码前的原始残差系数值,根据所述一组码字中不同码字对应的编码值,及第一指定语法元素的码流中的码字,可以解码得到对应的编码值。这样,在完成多轮解码时,可以得到残差系数的编码值,完成残差图像中各残差子块的残差系数解码后,得到解码后的残差图像,利用对视频流解码得到的预测图像,重构原始图像,具体过程为现有技术,这里不再详述。

图4是根据一示例性实施例示出的一种视频数据的残差参数的编解码方法的流程图,如图4所示,该方法应用于编码端时,包括以下步骤:

在步骤S401中,对待传输的图像进行预测编码,根据编码后图像与待传输图像的差值得到残差图像;

在步骤S402中,对所述残差图像进行残差块中划分,对所述残差块中的残差系数进行多轮编码,每一轮采用该轮的编码方式对该轮对应的语法元素编码得到码流;

在步骤403中,在对第一指定语法元素进行编码时,确定编码采用指定的一组码字,或者根据所述残差图像对应的指定编码信息,确定编码采用的一组码字,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素;

在步骤S404中,根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的编码值对应的码流。

编码端的具体实施过程与编码端基本相同,不同的是实现对残差系数的编码,同样,本公开实施例改变了rice参数或Exp-Golomb参数的确定方式,具体两种实施方式参见解码端的描述,这里不再重述。

下面结合编码的第一指定语法元素的不同,给出本公开实施例对第一指定语法元素编解码可能的实施方式。

实施方式1

本实施方式中,残差系数为非调色板模式下的跳跃变换系数,则第一指定语法元素为第三轮解码中需要解码的残差剩余绝对值abs_remainder。其中,abs_remainder为残差系数减去设定的第一基本等级baseLevel后的差值绝对值。设定的第一基本等级baseLevel的取值为4。

对于abs_remainder,具体可以采用如下任一方式生成对应码组:

1)从预定义的不同查表参数rice对应的多组码字关系中,选择一个rice对应的码字作为所述指定的一组码字;

目前协议中定义了不同查表参数rice对应的多组码字,可以从不同rice对应的多组码字关系中,直接选择一个rice对应的码字作为指定的一组码字。即使与当前VVC中所使用的用于确定abs_remainder的码字相同的程序,只是一直选择固定的rice参数,例如可以但不限于固定为rice取值为1或2或3对应的一组码字。

2)从预定义的不同查表参数rice对应的多组码字关系中,选择一个rice对应的码字并将其调整为最大长度,作为所述指定的一组码字;

根据目前定义的不同rice对应的多组码字,rice越大,对应的一组码字中码字的长度越长,本公开实施例可以选择一个rice对应的码字并将其调整为最大长度作为指定的一组码字,最大长度为多组rice对应的一组码字中码字的最大长度。

3)从预先义的不同查表参数rice对应的多组码字关系中,确定小于预设阈值的rice对应的多组码字,并从中选择一个rice对应的码字作为所述指定的一组码字;

根据目前定义的不同rice对应的多组码字,rice越大,对应的一组码字中码字的长度越长,本公开实施例可以限制rice的阈值,从小于阈值的rice对应的多组码字中,选择一个rice对应的码字作为所述指定的一组码字。

4)从预定义的不同查表参数rice对应的多组码字关系中,选择一个rice对应的码字并将其调整为小于最大长度的固定长度,作为指定的一组码字;

根据目前定义的不同rice对应的多组码字,rice越大,对应的一组码字中码字的长度越长,本公开实施例可以选择一个rice对应的码字并将其调整为小于最大长度的固定长度。

本实施方式中,残差系数还可以为调色板模式下跳跃变换后的残差系数,现有协议中定义了不同Exp-Golomb参数对应的多组码字,针对调色板模式的残差系数中的第一指定语法元素palette_escape_val进行编解码时,给出了Exp-Golomb参数的推导方法,根据推导出的Exp-Golomb参数确定对应的一组二进制码字。本公开实施例省去了Exp-Golomb参数的推导过程,具体可以采用如下任一方式确定采用的码字:

1)直接从预先义的不同Exp-Golomb参数对应的多组码字关系中,选择一个Exp-Golomb参数对应的码字作为指定的一组码字;

2)从预定义的不同Exp-Golomb参数对应的多组码字关系中,选择一个Exp-Golomb参数对应的码字并将其调整为预设长度作为指定的一组码字;

根据目前定义的不同Exp-Golomb参数对应的多组码字,Exp-Golomb参数越大,对应的一组码字中码字的长度越长,本公开实施例可以选择一个Exp-Golomb对应的码字并将其调整为最大长度作为指定的一组码字,最大长度为多个Exp-Golomb对应的码字中码字的最大长度。或者,可以选择一个Exp-Golomb参数对应的一组码字并将其调整为小于最大长度的固定长度。

作为一种可选的实施方式,解码端还可以接收编码端采用不同级别的比特流发送的信号通知,确定所通知的查表参数rice参数或Exp-Golomb参数;

所述不同级别包括序列级别、图片级别、片段级别、编码树单元CTU级别或编码单元CU级别。

上述图片级别是针对一帧图像的比特流,序列级别是针对一帧以上图像的比特流。

片段指的是包含一个以上编码树单元(Coding unit tree,CTU)的内容。在视频数据压缩中,每张图被切割成多个CTU进行编解码。每个CTU可以包含一个编码单元CU或递归地划分成更小的CU直到达到预定义的最小CU大小。每一个CU则可以选择进行帧内(intraprediction)或者帧间预测进行压缩。

在一个示例中,用于确定变换跳跃残差编码中用于编码abs_remainder语法的码字的rice参数在片段头、图片头、图片参数集(PPS)、和/或序列参数集(SPS)中用信号通知。当CU被编码为跳跃变换模式以及CU与上述片段头、图片头、PPS和/或SPS等相关联时,所通知的rice参数被用于确定用于编码语法abs_remainder的码字。

实施方式2

本实施方式中残差系数为非调色板模式下的规则变换系数,则第一指定语法元素为第二轮解码中需要解码的残差剩余绝对值abs_remainder或等级绝对值dec_abs_level。

其中,abs_remainder为残差系数减去设定的第一基本等级后的差值绝对值;dec_abs_level为残差系数减去设定的第二基本等级后的差值绝对值。

作为一种可选的实施方式,第一基本等级baseLevel的取值为4,第二基本等级baseLevel的取值为0。

作为另一种可选的实施方式,第一基本等级baseLevel和第二基本等级baseLevel的取值相同,取值为0或取值为4。

对于abs_remainder或dec_abs_level,具体可以采用实施方式1中给出的1)~4)任一方式,生成对应的一组码字。

本实施方式中,残差系数还可以为调色板模式下规则变换后的残差系数,则第一指定语法元素为palette_escape_val,现有协议中定义了不同Exp-Golomb参数对应的多组码字,针对调色板模式的残差系数中的第一指定语法元素palette_escape_val进行编解码时,给出了Exp-Golomb参数的推导方法,根据推导出的Exp-Golomb参数确定对应的一组二进制码字。本公开实施例省去了Exp-Golomb参数的推导过程,具体可以实施方式1中给出的1)~2)任一方式,生成对应的一组码字。

实施方式3

目前对于采用上下文编码方式的语法元素(例如,abs_level_gtx_flag)进行编解码时,需要从多个概率模型中选择一个概率模型,目前概率模型的选择依赖于相邻像素位置的残差系数级别的级别信息,其需要额外的逻辑和额外的上下文模型。

本实施方式在解码到第二指定语法元素时,确定解码采用指定的一个概率模型,可以去除基于相邻解码的级别信息的上下文选择,所述第二指定元素为依赖于概率模型的上下文编码方式的语法元素;

利用所述指定的一个概率模型对所述第二指定语法元素进行解码,得到所述第二指定语法元素的二进值码流对应的编码值。

需要说明的是,本实施方式可以单独实施,具体的解码过程为:从接收的残差图像码流中,提取所述残差图像中残差子块的码流,所述残差子块包括多个残差系数;对各残差系数的码流进行多轮解码,每一轮采用该轮的解码方式解码对应的语法元素的码流;在解码到第二指定语法元素时,利用指定的一个概率模型对所述第二指定语法元素进行解码,得到所述第二指定语法元素的二进值对应的码流。具体的编码过程为:从接收的残差图像码流中,提取所述残差图像中残差子块的码流,所述残差子块包括多个残差系数;对各残差系数的码流进行多轮解码,其中,每一轮采用该轮的解码方式解码对应的语法元素的码流;确定编码到第一指定语法元素时,利用指定的一个概率模型对所述第二指定语法元素进行编码,得到第二指定语法元素对应的码流。

实施方式4

本实施方式中,残差系数为非调色板模式下的跳跃变换系数,则第一指定语法元素为第三轮解码中需要解码的残差剩余绝对值abs_remainder。其中,abs_remainder为残差系数减去设定的第一基本等级baseLevel后的差值绝对值。设定的第一基本等级baseLevel的取值为4。

对于abs_remainder,具体可以采用如下任一方式生成对应码组:

1)从预定义的不同查表参数rice对应的多组码字关系中,选择多个rice对应的码字作为所述指定的一组码字,根据残差图像对应的指定编码信息,确定解码采用的一组码字;

上述指定编码信息包括如下至少一个编码参数:

与变换块TB或编码块CB或片段相关联的量化参数QP;

编码单元CU的预测模式例如,例如IBC模式或帧内预测模式或帧间预测模式;

片段类型,所述片段类型包括I片段、P片段或B片段。

这里的变换块是指对残差图像进行系数变换的变换块的大小,编码块CB可以是针对残差图像,也可以是针对预测图像的。

片段指的是包含一个以上编码树单元CTU的内容。在视频数据压缩中,每张图被切割成多个CTU进行编解码。每个CTU可以包含一个编码单元(CU)或递归地划分成更小的CU直到达到预定义的最小CU大小。每一个编码单元(CU)可以选择不同的预测模式。

每一个CU则可以选择进行帧内或者帧间预测进行压缩。

其中帧间预测又可分为单向预测编码或双向预测编码。I片指的是所包含片段里的编码单元只使用帧内预测。P片指的是所包含片段里的编码单元只使用帧内预测或者单向预测编码。B片指的是所包含片段里的编码单元使用帧内预测、单向预测或双向预测编码。

2)从预定义的不同查表参数rice对应的多组码字关系中,选择多个rice对应的码字并将其调整为最大长度,根据残差图像对应的指定编码信息,确定解码采用的一组码字;

3)从预先义的不同查表参数rice对应的多组码字关系中,确定小于预设阈值的rice对应的多组码字,并从中选择多个rice对应的码字,根据残差图像对应的指定编码信息,确定解码采用的一组码字;

4)从预定义的不同查表参数rice对应的多组码字关系中,选择多个rice对应的码字并将其调整为小于最大长度的固定长度,根据残差图像对应的指定编码信息,确定解码采用的一组码字。

本实施方式中,残差系数还可以为调色板模式下跳跃变换后的残差系数,则第一指定语法元素为palette_escape_val,现有协议中定义了不同Exp-Golomb参数对应的多组码字,针对调色板模式的残差系数中的第一指定语法元素palette_escape_val进行编解码时,给出了Exp-Golomb参数的推导方法,根据推导出的Exp-Golomb参数确定对应的一组二进制码字。本公开实施例省去了Exp-Golomb参数的推导过程,具体可以采用如下任一方式确定采用的码字:

1)直接从预先义的不同Exp-Golomb参数对应的多组码字关系中,选择多个Exp-Golomb对应的码字作为与不同指定编码信息对应的码字,根据残差图像对应的指定编码信息,确定解码采用的一组码字;

2)从预定义的不同Exp-Golomb参数对应的多组码字关系中,选择多个Exp-Golomb参数对应的码字并将其调整为预设长度,根据残差图像对应的指定编码信息,确定解码采用的一组码字。

作为一种可选的实施方式,建立指定编码信息中的不同阈值范围的编码参数与不同组码字的映射关系。一个具体示例如表1所示,其中TH1至TH4是满足TH1

表1.基于QP值确定rice参数

编码端采用不同级别比特流发送信号通知,通知解码端所采用的指定编码信息的编码参数及对应的阈值,解码端还进一步接收编码端采用不同级别比特流发送的信号通知,确定所通知的指定编码信息的编码参数及对应的阈值。

上述不同级别包括序列级别(例如序列、参数集)、图片级别(例如图片参数集、和/或图片头)、片段级别(例如片段头)、编码树单元CTU级别或编码单元CU级别。

其中图片参数及可以但不限与包括:是不是GDR或是IRAP图片;是不是可以作为参考图片;是不是可以使用帧间预测的片段;图片级别参考集合的号码;图片顺序的号码等。

需要说明的是,该指定编码信息的编码参数及对应的阈值可以是全集,或者是所有与用于语法元素的码字确定相关联的编码参数和阈值的子集。可以在视频比特流中的不同级别上用信号通知该组参数和/或阈值。

实施方式5

本实施方式中残差系数为非调色板模式下的规则变换系数,则第一指定语法元素为第二轮解码中需要解码的残差剩余绝对值abs_remainder或等级绝对值dec_abs_level。

对于规则变换系数的语法元素abs_remainder或dec_abs_level,可以采用如实施方式4中示例的1)~4)任一方式进行编码。

本实施方式中,残差系数还可以为调色板模式下规则变换后的残差系数,则第一指定语法元素为palette_escape_val,现有协议中定义了不同Exp-Golomb参数对应的多组码字,针对调色板模式的残差系数中的第一指定语法元素palette_escape_val进行编解码时,给出了Exp-Golomb参数的推导方法,根据推导出的Exp-Golomb参数确定对应的一组二进制码字。本公开实施例省去了Exp-Golomb参数的推导过程,具体可以采用实施方式4中1)~2)中针对Exp-Golomb参数确定码字的方式。

作为一种可选的实施方式,建立指定编码信息中的不同阈值范围的编码参数与不同组码字的映射关系,编码端采用不同级别比特流发送信号通知,通知解码端所采用的指定编码信息的编码参数及对应的阈值,解码端还进一步接收编码端采用不同级别比特流发送的信号通知,确定所通知的指定编码信息的编码参数及对应的阈值。上述序列级别的比特流为序列参数集的比特流;图片级别的比特流为图片参数集的比特流,和/或图片头的比特流;片段级别的比特流为片段头的比特流。

需要说明的是,该指定编码信息的编码参数及对应的阈值可以是全集,或者是所有与用于语法元素的码字确定相关联的编码参数和阈值的子集。可以在视频比特流中的不同级别上用信号通知该组参数和/或阈值。

实施方式6

本实施方式中残差系数包括亮度残差系数和色度残差系数,针对亮度残差系数和色度残差系数进行区分,使用不同的码组,具体可以采用如下任一方式:

1)对所述亮度残差系数和色度残差系数,指定不同的一组码字;

2)对所述亮度残差系数和色度残差系数,分别指定与不同指定编码信息对应的多组码字,且所述亮度残差系数对应的多组码字与色度残差系数对应的多组码字不完全相同。

在一个示例中,当前VVC中所使用的与变换残差编码相关联的用于abs_remainder的码字被用于亮度块和色度块二者,但是亮度块和色度块分别使用不同的固定rice参数(例如,K1用于亮度块,K2用于色度块,其中K1和K2是整数)。

实施方式7

本公开实施方式在实施方式6基础上,接收编码端采用不同级别比特流发送的信号通知,确定所通知的指定编码信息的编码参数及对应的阈值,并且针对亮度块和色度块用信号通知不同的组。当通过熵编码器、例如算数编码来编码语法元素时,所确定的码字被用作二值化码字。

上述方法同样也适用于调色板模式中的残余值编码,例如palette_escape_val。

实施方式8

本公开实施例使用不同的第k级Exp-Golomb二值化来推导出调色板模式中用于编码残余值的不同组的二进制码字。在一个示例中,针对残余样本的给定块,根据用QPCU表示的块的QP值来确定所使用的Exp-Golomb参数,即k的值。表1中所示的示例同样可用于基于块的给定QP值来推导出参数k的值。尽管在该示例中,列出了四个不同的阈值(从TH1到TH4),并且基于这些阈值和QPCU可以推导出五个不同的k值(从K0到K4),但是值得一提的是,阈值的数量仅用于说明目的。实施中,不同数量的阈值可用于将整个QP值范围分割成不同数量的QP值分段,针对每个QP值分段,不同的k值可用于推导出用于编码以调色板模式编码的块的残余值的相应的二进制码字。

实施方式9

本实施方式在实施方式8的基础上,在比特流中用信号通知与用于残余样本的语法元素的码字确定相关联的一组参数和/或阈值。当通过熵编码器、例如算数编码来编码残余样本的语法元素时,所确定的码字被用作二值化码字。

需要说明的是,该组参数和/或阈值可以是全集,或者是所有与用于语法元素的码字确定相关联的参数和阈值的子集。可以在视频比特流中的不同级别上用信号通知该组参数和/或阈值。例如,可以在序列级别(例如,序列参数集)、图片级别(例如,图片参数集、和/或图片头)、片段级别(例如,片段头)、编码树单元(CTU)级别、或者编码单元(CU)级别上用信号通知这些参数和/或阈值。

在一个示例中,第k级Exp-Golomb二值化被用于确定调色板模式中用于编码palette_escape_val语法的码字,以及在比特流中将k的值用信号通知给解码器。k的值可以在不同的级别上用信号通知,例如可以在片段头、图片头、PPS、和/或SPS等中用信号通知k的值。当CU被编码为调色板模式以及CU与上述片段头、图片头、PPS和/或SPS等相关联时,所通知的Exp-Golomb参数被用于确定用于编码语法palette_escape_val的码字。

实施方式10

如前所述,残差系数具有残差系数绝对级别等级AbsLevel,初始时残差系数的AbsLevel为量化后的残差系数的取值,在编码过程中,残差系数在满足级别映射条件时,按照残差系数的绝对级别等级AbsLevel按照设定级别映射方案,按照推导方法推导出映射位置,并利用映射函数基于推导出的映射位置对残差系数进行级别映射,得到级别映射后的AbsLevel。级别映射的目的是预测概率较高且需要被二值化的残差系数值,让此残差系数值经过级别映射在二值化后所需位元数较少。

本实施方式中,确定所述残差系数为级别映射后的规则变换系数时,按照第一映射级别规则确定级别映射前的残差系数绝对级别等级;确定所述残差系数为级别映射后的跳跃变换系数时,按照第二映射级别规则确定级别映射前的残差系数绝对级别等级。

第一映射级别规则或所述第二级别映射规则,用于按照推导方法推导出映射位置,并利用映射函数基于推导出的映射位置对残差系数进行级别映射。

本公开实施例中,第一映射级别规则和第二映射级别规则相同,不再限制上下文编码箱(CCB)超过限值之后应用级别映射。在一个示例中,提出了针对跳跃变换模式和规则变换模式二者,在上下文编码箱(CCB)超过限值之前应用级别映射。

实施方式11

本实施方式中,确定所述残差系数为级别映射后的规则变换系数时,按照第一映射级别规则确定级别映射前的残差系数绝对级别等级;确定所述残差系数为级别映射后的跳跃变换系数时,按照第二映射级别规则确定级别映射前的残差系数绝对级别等级,第一映射级别规则和第二映射级别规则中映射位置的推导方法相同。

本实施方式提出针对跳跃变换模式和规则变换模式二者使用相同的用于推导出级别映射中的映射位置的方法。在一个示例中,提出了将在跳跃变换模式下所使用的级别映射中映射位置的推导方法也应用到规则变换模式。在另一个示例中,提出了将在规则变换模式下所使用的级别映射中映射位置的推导方法也应用到跳跃变换模式。

实施方式12

本实施方式中,确定所述残差系数为级别映射后的规则变换系数时,按照第一映射级别规则确定级别映射前的残差系数绝对级别等级;确定所述残差系数为级别映射后的跳跃变换系数时,按照第二映射级别规则确定级别映射前的残差系数绝对级别等级,其中,第一映射级别规则和第二映射级别规则中映射函数相同。

该实施方式将同样的级别映射方法应用于跳跃变换模式和规则变换模式。在一个示例中,提出了将在跳跃变换模式下所使用的级别映射函数也应用到规则变换模式。在另一个示例中,提出了将在规则变换模式下所使用的级别映射函数也应用到跳跃变换模式。

实施例2

图5是根据一示例性实施例示出的另一种视频数据的残差参数的编解码方法的流程图,如图5所示,该方法应用于编码端时,包括以下步骤:

在步骤S501中,从接收的残差图像码流中,提取所述残差图像中残差子块的码流,所述残差子块包括多个残差系数;

编码端从解码端接收视频流,该视频流包括多帧图像的残差系数的码流,本公开实施例的残差图像码流,是按图像帧提取,提取到一帧残差图像的码流后,可以进一步提取残差子块的码流,码流的提取方式为现有技术,这里不再重述,提起的残差子块的码流包括多个残差系数的编码后的码流。

在步骤S502中,对各残差系数的码流进行多轮解码,其中,每一轮采用该轮的解码方式解码对应的语法元素的码流;

根据编码端采用的编码方式的不同,确定对残差系数进行多轮解码及每一轮解码需要解码的语法元素,例如对于VVC中的规则变换系数解码方式,按照图1所示的方式确定每轮解码的语法元素,具体方式参见上述描述,这里不再重述。对于VVC中的跳跃变换系数解码方式,按照图2所示的方式确定每轮解码的语法元素,具体方式参见上述描述,这里不再重述。

在步骤S503中,确定解码到第一指定语法元素时,按照第二逻辑规则根据所述残差系数相邻位置的残差系数的绝对级别等级AbsLevel得到查表参数rice,其中,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素,所述第二逻辑规则为改变第一逻辑规则中计算rice使用的参数和/逻辑计算方式得到的规则;

上述第一逻辑规则为相关技术中定义的计算rice的规则,本公开实施例中的第二逻辑规则为改变第一逻辑规则中计算rice使用的参数和/逻辑计算方式得到的规则,通过该方式简化或精确rice参数的推导过程。

在步骤S504中,从预定义的不同rice对应的多组码字关系中,确定计算出的rice对应的一组码字,根据所述一组码字中的不同码字对应的编码值,得到所述第一指定语法元素的码流对应的编码值;

不同rice对应的多组码字,可以采用现有定义的对应关系,根据rice查找对应的一组码字,根据所述一组码字中的不同码字对应的编码值,得到所述第一指定语法元素的码流对应的编码值。这样,在完成多轮解码时,可以得到残差系数的编码值,完成残差图像中各残差子块的残差系数解码后,得到解码后的残差图像,利用对视频流解码得到的预测图像,重构原始图像,具体过程为现有技术,这里不再详述。

图6是根据一示例性实施例示出的另一种视频数据的残差参数的编解码方法的流程图,如图6所示,该方法应用于解码端时,包括以下步骤:

在步骤S601中,对待传输的图像进行预测编码,根据编码后图像与待传输图像的差值得到残差图像;

在步骤S602中,对所述残差图像进行残差块中划分,对所述残差块中的残差系数进行多轮编码,每一轮采用该轮的编码方式对该轮对应的语法元素编码得到码流;

在步骤S603中,在对第一指定语法元素进行编码时,按照第二逻辑规则根据所述残差系数相邻位置的残差系数的绝对级别等级AbsLevel得到查表参数rice;

在步骤S604中,从预定义的不同rice对应的多组码字关系中,确定计算出的rice对应的一组码字,根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的编码值对应的码流;

其中,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素,所述第二逻辑规则为改变第一逻辑规则中计算rice使用的参数和/逻辑计算方式得到的规则。

在一种可能的实施方式中,所述残差系数为规则变换系数时,上述第一指定语法元素为第二轮解码中需要解码的残差剩余绝对值abs_remainder或等级绝对值dec_abs_level;

上述残差系数为跳跃变换系数时,所述第一指定语法元素为第三轮解码中需要解码的残差剩余绝对值abs_remainder;

其中,上述abs_remainder为残差系数减去设定的第一基本等级后的差值绝对值;dec_abs_level为残差系数减去设定的第二基本等级后的差值绝对值。

上述第一逻辑规则为相关技术中定义的计算rice的规则,假定当前系数扫描位置(xC,yC),具体采用如下规则输出查表参数rice(cRiceParam):

locSumAbs=0

if(xC<(1<

locSumAbs+=AbsLevel[xC+1][yC]

if(xC<(1<

locSumAbs+=AbsLevel[xC+2][yC]

if(yC<(1<

locSumAbs+=AbsLevel[xC+1][yC+1]

}

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+1]

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+2]

}

locSumAbs=Clip3(0,31,locSumAbs-baseLevel*5)

给定变量locSumAbs,Rice参数cRiceParam推导采用现有协议定义的表4所示。

其中:baseLevel为当前残差系数的基本级别,log2TbWidth为变换块宽度的以2为底的对数,log2TbHeight为变换块高度的以2为底的对数。

即上述第一逻辑规则可以描述为:

初始locSumAbs为零值,依次查找残差系数的5个相邻位置;

每查找到一个相邻位置时,将相邻位置的残差系数的AbsLevel加上当前locSumAbs得到更新后的当前locSumAbs;

查找5个相邻位置结束时,将当前locSumAbs减去5*baseLevel进行locSumAbs更新,并将更新后的locSumAbs的最小值限制为取0,将更新后的locSumAbs的最大值限制为取31;给定变量locSumAbs,通过现有协议定义的表4,查找得出Rice参数cRiceParam。

本公开实施例通过改变上述过程中的相关参数或逻辑推导过程,来简化rice的推导或精确rice推导,具体可以采用如下任一实施方式。

实施方式1

根据相邻位置的残差系数的AbsLevel确定等级参数locSumAbs,将确定的locSumAbs采用逻辑推导方式得到rice,所述n为非零正整数,该方式提出了基于locSumAbs采用逻辑推导方式推导出rice,而替代现有的查表操作,例如可以采用移位或除法操作,取代查找操作,从而去除基于locSumAbs在表4查找rice的操作。在一个示例中,Rice参数cRiceParam采用如下方式被推导出:

cRiceParam=(locSumAbs>>n),其中n为正数,例如3。

具体实施可以采用其他不同的逻辑来实现相同的结果,例如用除以2的n次方的除法操作。以下示出基于VVC草稿的相应解码过程输出Rice参数cRiceParam的示例。

locSumAbs=0

if(xC<(1<

locSumAbs+=AbsLevel[xC+1][yC]

if(xC<(1<

locSumAbs+=AbsLevel[xC+2][yC]

if(yC<(1<

locSumAbs+=AbsLevel[xC+1][yC+1]

}

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+1]

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+2]

}

locSumAbs=Clip3(0,31,locSumAbs-baseLevel*5)

给定变量locSumAbs,Rice参数cRiceParam推导如下:

相比现有的逻辑推导过程,省去了查表操作(上述删除线表示的部分),采用将locSumAbs右移3个比特位的移位操作(上述下划线表示的部分)得到rice参数。

实施方式2

根据N个相邻位置的残差系数的AbsLevel确定locSumAbs,根据确定的locSumAbs得到查表参数rice,所述N为小于5的正整数。该方式利用更少的相邻位置的残差系数的AbsLevel来确定locSumAbs,根据确定的locSumAbs得到查表参数rice。

下面示例给出在编解码语法元素dec_abs_level/dec_abs_level时,仅使用2个相邻位置推导rice参数的具体过程:

locSumAbs=0

if(xC<(1<

locSumAbs+=AbsLevel[xC+1][yC]

}

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+1]

}

locSumAbs=Clip3(0,31,locSumAbs-baseLevel*52)

specified in错误!未找到引用源。。

相比现有技术,减少了3个相邻位置的残差系数的AbsLevel的计算(上述删除线表示部分),并将baseLevel的系数修改为2。

在另一个示例中,给出在编解码语法元素dec_abs_level/dec_abs_level时,仅使用1个相邻位置推导rice参数的具体过程:

locSumAbs=0

if(xC<(1<

locSumAbs+=AbsLevel[xC+1][yC]

}

locSumAbs=Clip3(0,31,locSumAbs-baseLevel

specified in错误!未找到引用源。。

相比现有技术,减少了4个相邻位置的残差系数的AbsLevel的计算(上述删除线表示部分),并将baseLevel的系数修改为1。

实施方式3

将相邻位置的残差系数的AbsLevel求和并减去m*baseLevel,将得到的数值乘以设定系数alpha后,再偏移设定偏移量beta后确定locSumAbs,根据确定的locSumAbs得到查表参数rice,baseLevel为残差系数的基本级别,m为查找到相邻位置的数量。

下面以alpha取值为1.5,且beta取值为1为例,给出推导rice参数的具体过程:

locSumAbs=0

if(xC<(1<

locSumAbs+=AbsLevel[xC+1][yC]

if(xC<(1<

locSumAbs+=AbsLevel[xC+2][yC]

if(yC<(1<

locSumAbs+=AbsLevel[xC+1][yC+1]

}

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+1]

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+2]

}

locSumAbs=Clip3(0,31,(locSumAbs-baseLevel*5)*1.5+1)

specified in错误!未找到引用源。。

实施方式4

将相邻位置的残差系数的AbsLevel求和并减去m*baseLevel,所述baseLevel为残差系数的基本级别,m为查找到相邻位置的数量;将得到的数值直接作为locSumAbs,根据确定的locSumAbs得到查表参数rice。该方式在对语法元素abs_remainder/dec_abs_leve的编解码过程中,推导rice参数时去除修剪操作Clip3。

进一步地,该实施方式还可以与实施方式1进行结合实施。

在下面一个示例中,给出在编解码语法元素dec_abs_level/dec_abs_level时,推导rice参数的具体过程:

locSumAbs=0

if(xC<(1<

locSumAbs+=AbsLevel[xC+1][yC]

if(xC<(1<

locSumAbs+=AbsLevel[xC+2][yC]

if(yC<(1<

locSumAbs+=AbsLevel[xC+1][yC+1]

}

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+1]

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+2]

}

locSumAbs=

给定变量locSumAbs,Rice参数cRiceParam推导如下:

cRiceParam=(locSumAbs>>3)

现有推导过程,上述Clip3用于将locSumAbs-baseLevel*5的取值最小值限定为0,取值最大值限定为31,本公开实施例删除了上述Clip3的操作,直接将locSumAbs-baseLevel*5作为最终的locSumAbs取值。

在另一个示例中,将相邻位置的残差系数的AbsLevel求和并减去m*baseLevel,所述baseLevel为残差系数的基本级别,m为查找到相邻位置的数量;仅限制得到的数值中最小值为下限值得到locSumAbs,或仅限制得到的数值中的最大值为上限值得到locSumAbs。

下面示例给出在编解码语法元素dec_abs_level/dec_abs_level时,推导rice参数的具体过程:

locSumAbs=0

if(xC<(1<

locSumAbs+=AbsLevel[xC+1][yC]

if(xC<(1<

locSumAbs+=AbsLevel[xC+2][yC]

if(yC<(1<

locSumAbs+=AbsLevel[xC+1][yC+1]

}

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+1]

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+2]

}

locSumAbs=

specified in错误!未找到引用源。。

实施方式5

本实施方式中,按照第二逻辑规则根据所述残差系数相邻位置的残差系数的AbsLevel得到查表参数rice,包括:

初始locSumAbs为非零值,查找残差系数的相邻位置;

查找到一个相邻位置时,将相邻位置的残差系数的AbsLevel加上当前locSumAbs得到更新后的当前locSumAbs;

查找相邻位置结束时,将当前locSumAbs减去m*baseLevel进行locSumAbs更新,m为查找到相邻位置的数量;

根据当前locSumAbs得到查表参数rice。

本公开实施例提出对语法元素abs_remainder/dec_abs_leve的编解码过程中,推导rice参数时将locSumAbs的初始值从0改变为非零整数。下面示例给出locSumAbs初始值为1时,推导rice参数的具体过程:

locSumAbs=01

if(xC<(1<

locSumAbs+=AbsLevel[xC+1][yC]

if(xC<(1<

locSumAbs+=AbsLevel[xC+2][yC]

if(yC<(1<

locSumAbs+=AbsLevel[xC+1][yC+1]

}

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+1]

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+2]

}

locSumAbs=Clip3(0,31,locSumAbs-baseLevel*5)

specified in错误!未找到引用源。。

locSumAbs被初始为其他非零值的具体推导过程同上,这里不再重述。

实施方式6

本实施方式中,按照第二逻辑规则根据所述残差系数相邻位置的残差系数的AbsLevel得到查表参数rice,包括:

初始化locSumAbs,并查找残差系数的相邻位置;

确定根据查找到的相邻位置中,最大的残差系数绝对级别等级确定等级参数locSumAbs;

根据确定的locSumAbs得到查表参数rice。

作为一种可能的实施方式,可以利用查找到的相邻位置中,最大的残差系数绝对级别等级确定等级参数locSumAbs,代替现有的相邻位置绝对级别等级总和值,下面示例给出推导rice参数的具体过程:

locSumAbs=0

if(xC<(1<

if(xC<(1<

if(yC<(1<

}

if(yC<(1<

if(yC<(1<

}

locSumAbs=Clip3(0,31,locSumAbs-baseLevel

specified in错误!未找到引用源。。

上述推导过程中,初始化locSumAbs,然后查找相邻位置,每查找到一个相邻位置,确定相邻位置的残差系数绝对级别等级大于locSumAbs时,将locSumAbs更新为相邻位置的残差系数绝对级别等级,否则,保持locSumAbs的取值不变,查找相邻位置位置结束后,将当前locSumAbs减去残差系数的baseLevel,并将其取值范围限定到0~31,得到最终的locSumAbs。

实施方式7

本实施方式按照改进逻辑规则根据所述残差系数相邻位置的残差系数绝对级别等级得到查表参数rice,包括:

初始化locSumAbs,并查找残差系数相邻位置;

根据查找到的相邻位置的残差系数的AbsLevel相对于所述残差系数的基本级别baseLevel的相对幅度,根据该相对幅度和残差系数的基本级别,确定等级参数locSumAbs;

根据确定的locSumAbs得到查表参数rice。

在一个示例中,根据残差系数的AbsLevel大于baseLevel的相邻位置的数量,确定等级参数locSumAbs,即基于有多少相邻位置处的AbsLevel值大于基本级别baseLevel来推导rice参数,下面示例给出推导rice参数的具体过程:

locSumAbs=0

if(xC<(1<

locSumAbs+=(AbsLevel[xC+1][yC]>baseLevel?1:0)

if(xC<(1<

locSumAbs+=(AbsLevel[xC+2][yC]>baseLevel?1:0)

if(yC<(1<

locSumAbs+=(AbsLevel[xC+1][yC+1]>baseLevel?1:0)

}

if(yC<(1<

locSumAbs+=(AbsLevel[xC][yC+1]>baseLevel?1:0)

if(yC<(1<

locSumAbs+=(AbsLevel[xC][yC+2]>baseLevel?1:0)

}

给定变量locSumAbs,Rice参数cRiceParam推导如下:

cRiceParam=locSumAbs

在上述推导过程中,初始化locSumAbs,然后查找相邻位置,每查找到一个相邻位置,判断相邻位置的残差系数绝对级别等级是否大于baseLevel,若是,将locSumAbs的加1,否则,保持locSumAbs的取值不变,查找相邻位置位置结束后,得到最终的locSumAbs,可以直接将该locSumAbs作为cRiceParam。

在另一个示例中,确定AbsLevel大于baseLevel的残差系数的相邻位置,并将确定的相邻位置的残差系数的AbsLevel减去所述残差系数的baseLevel并求和,确定等级参数locSumAbs。下面示例给出推导rice参数的具体过程:

locSumAbs=0

if(xC<(1<

locSumAbs+=Max(0,AbsLevel[xC+1][yC]-baseLevel)

if(xC<(1<

locSumAbs+=Max(0,AbsLevel[xC+2][yC]-baseLevel)

if(yC<(1<

locSumAbs+=Max(0,AbsLevel[xC+1][yC+1]-baseLevel)

}

if(yC<(1<

locSumAbs+=Max(0,AbsLevel[xC][yC+1]-baseLevel)

if(yC<(1<

locSumAbs+=Max(0,AbsLevel[xC][yC+2]-baseLevel)

}

locSumAbs=

specified in错误!未找到引用源。。

在上述推导过程中,初始化locSumAbs,然后查找相邻位置,每查找到一个相邻位置,将相邻位置的残差系数绝对级别等级减去baseLevel,并判断差值是否大于0,若是,将locSumAbs加上差值进行更新,否则,保持locSumAbs的取值不变,查找相邻位置位置结束后,得到最终的locSumAbs,将其最大值限定到31,然后利用查表操作得到对应rice参数。

在另一个示例中,将查找到的相邻位置的残差系数的AbsLevel减去所述残差系数的baseLevel并求和,确定等级参数locSumAbs。下面示例给出推导rice参数的具体过程:

locSumAbs=0

if(xC<(1<

locSumAbs+=AbsLevel[xC+1][yC]–baseLevel

if(xC<(1<

locSumAbs+=AbsLevel[xC+2][yC]–baseLevel

if(yC<(1<

locSumAbs+=AbsLevel[xC+1][yC+1]–baseLevel

}

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+1]–baseLevel

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+2]–baseLevel

}

locSumAbs=Clip3(0,31,locSumAbs

specified in错误!未找到引用源。。

在上述推导过程中,初始化locSumAbs,然后查找相邻位置,每查找到一个相邻位置,将相邻位置的残差系数绝对级别等级减去baseLevel,将locSumAbs加上差值进行更新,查找相邻位置位置结束后,得到最终的locSumAbs,将其最大值限定到31,最小值限定到0,然后利用查表操作得到对应rice参数。

实施例3

残差系数具有残差系数绝对级别等级AbsLevel,初始时残差系数的AbsLevel为量化后的残差系数的取值,在编码过程中,残差系数在满足级别映射条件时,按照残差系数的绝对级别等级AbsLevel按照设定级别映射方案,按照推导方法推导出映射位置,并利用映射函数基于推导出的映射位置对残差系数进行级别映射,得到级别映射后的AbsLevel。

按照相关现有技术,当残差系数的baseLevel等于0时,用于确定映射位置的变量ZeroPos[n]推导如下:

ZeroPos[n]=(QState<2?1:2)<

上式表示量化器的状态参数是否小于2,如果小于2,则将1向左移位cRiceParam个比特位得到ZeroPos[n],否则,将2向左移位cRiceParam个比特位得到ZeroPos[n]。现有协议定义多个状态参数的量化状态,得到ZeroPos[n]之后,基于ZeroPos[n]推导出映射位置的过程为现有技术,这里不再重述。

作为一种可能的实施方式,本公开实施例还改变了ZeroPos[n]的确定方式,具体地,确定所述残差系数的AbsLevel级别映射后绝对级别等级时,可以采用如下任一方式确定ZeroPos[n]:

1)对于解码端,将查表参数rice直接向左位移,得到所述残差系数对应的映射位置,根据所述映射位置利用映射函数确定级别映射前的AbsLevel;

对于编码端,将查表参数rice直接向左位移,得到所述残差系数对应的映射位置,根据所述映射位置利用映射函数确定级别映射后的AbsLevel。

该方式提出了从ZeroPos[n]的推导中去除QState操作,使得仅从cRiceParam来推导ZeroPos[n],具体为如下过程:

当baseLevel等于0时,变量ZeroPos[n]推导如下:

ZeroPos[n]=2

上述删除线表示去除了QState操作。

需要说明的是,这里的cRiceParam可以采用现有方式确定,也可以采用本公开实施例1或实施例2提出的方式确定。

2)对于解码端,根据locSumAbs确定所述残差系数对应的映射位置,根据所述映射位置利用映射函数确定级别映射前的AbsLevel,所述locSumAbs为根据所述相邻位置的残差系数的AbsLevel确定的等级参数;

对于编码端,根据locSumAbs确定所述残差系数对应的映射位置,根据所述映射位置利用映射函数确定级别映射后的AbsLevel。

该方式提出了基于locSumAbs的值推导ZeroPos[n],具体为如下过程:

当baseLevel等于0时,变量ZeroPos[n]推导如下:

ZeroPos[n]=locSumAbs

上述删除了表示不再利用cRiceParam推导变量ZeroPos[n],直接将locSumAbs的值作为ZeroPos[n]。

3)在解码端,根据相邻位置的残差系数的AbsLevel,确定所述残差系数对应的映射位置,根据所述映射位置利用映射函数确定级别映射前的AbsLevel;

在编码端,根据相邻位置的残差系数的AbsLevel,确定所述残差系数对应的映射位置,根据所述映射位置利用映射函数确定级别映射后的AbsLevel。

该方式提出了基于相邻位置的AbsLevel的值来推导ZeroPos[n],其中一种可能的实施方式为,确定相邻位置的残差系数的最大AbsLevel,将最大的AbsLevel向右移位预设比特位后,确定移位后的数值为映射位置的位置数据,具体为如下过程:在一个示例中,基于AbsLevel[xC+1][yC]和AbsLevel[xC][yC+1]中的最大值来推导ZeroPos[n]。

locSumAbs=0

ZeroPos[n]=1

if(xC<(1<

locSumAbs+=AbsLevel[xC+1][yC]

ZeroPos[n]=Max(AbsLevel[xC+1][yC],ZeroPos[n])

if(xC<(1<

locSumAbs+=AbsLevel[xC+2][yC]

if(yC<(1<

locSumAbs+=AbsLevel[xC+1][yC+1](1494)

}

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+1]

ZeroPos[n]=Max(AbsLevel[xC][yC+1],ZeroPos[n])

if(yC<(1<

locSumAbs+=AbsLevel[xC][yC+2]

}

locSumAbs=Clip3(0,31,locSumAbs-baseLevel*5)

给定变量locSumAbs,Rice参数cRiceParam推导如表4所示。

当baseLevel等于0时,变量ZeroPos[n]推导如下:

ZeroPos[n]=ZeroPos[n]*1.25+1

另一种可能的实施方式为,确定相邻位置的残差系数的最大AbsLevel,将最大的AbsLevel向右移位预设比特位后,将移位后的数值乘以设定系数再加上预设偏移量,得到映射位置的位置数据。提出了基于相邻位置的所有AbsLevel值的最大值来推导cRiceParam和ZeroPos[n],具体为如下过程:

locSumAbs=0

if(xC<(1<

locSumAbs=Max(AbsLevel[xC+1][yC],locSumAbs)

if(xC<(1<

locSumAbs=Max(AbsLevel[xC+2][yC],locSumAbs)

if(yC<(1<

locSumAbs=Max(AbsLevel[xC+1][yC+1],locSumAbs)(1494)

}

if(yC<(1<

locSumAbs=Max(AbsLevel[xC][yC+1],locSumAbs)

if(yC<(1<

locSumAbs=Max(AbsLevel[xC][yC+2],locSumAbs)

}

locSumAbs=

给定变量locSumAbs,Rice参数cRiceParam推导如下:

cRiceParam=Min((locSumAbs>>2),3)

当baseLevel等于0时,变量ZeroPos[n]推导如下:

ZeroPos[n]=locSumAbs

在以上方面中描述的方法同样适用于针对变换跳跃模式的残差编码中的预测残差系数predCoeff的推导。在一个可能的实施方式为,取相邻位置的残差系数(absLeftCoeff,absAboveCoeff)的最大值,再加上预设偏移量,得到预测的残差系数。具体为如下过程:

predCoeff=Max(absLeftCoeff,absAboveCoeff)

相比现有的逻辑推导过程,增加将predCoeff加上1的加法操作(上述下划线表示的部分)。

实施例4

图7是根据一示例性实施例示出的一种视频数据的残差系数的编解码装置框图。参照图7,该装置包括码流接收单元701,多轮解码单元702和码字确定单元703、码值确定单元704,其中:

码流接收单元,被配置为执行从接收的残差图像码流中,提取所述残差图像中残差子块的码流,所述残差子块包括多个残差系数;

多轮解码单元,被配置为执行对各残差系数的码流进行多轮解码,每一轮采用该轮的解码方式解码对应的语法元素的码流;

码字确定单元,被配置为执行在解码到第一指定语法元素时,确定解码采用指定的一组码字,或者根据所述残差图像对应的指定编码信息,确定解码采用的一组码字,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素;

码值确定单元,被配置为执行第二根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的码流对应的编码值。

所述残差系数为规则变换系数时,所述第一指定语法元素为第二轮解码中需要解码的残差剩余绝对值abs_remainder或等级绝对值dec_abs_level;

所述残差系数为跳跃变换系数时,所述第一指定语法元素为第三轮解码中需要解码的残差剩余绝对值abs_remainder;

所述残差系数为调色板模式下的残差系数时,所述第一指定语法元素为残余值palette_escape_val;

其中,所述abs_remainder为残差系数减去设定的第一基本等级后的差值绝对值;所述dec_abs_level为残差系数减去设定的第二基本等级后的差值绝对值;所述palette_escape_val为未利用调色板中索引值映射的残差系数。

在一种可能的实施方式中,所述第一基本等级的取值为4,第二基本等级的取值为0;或者

所述第一基本等级和第二基本等级的取值相同,取值为0或取值为4。

在一种可能的实施方式中,该装置还包括:

第一码字选择单元,被配置为执行对于非调色板模式的残差系数,从预定义的不同查表参数rice对应的多组码字关系中,选择一个rice对应的码字作为所述指定的一组码字,或者选择多个rice对应的码字作为与不同指定编码信息对应的码字;或者

第二码字选择单元,被配置为执行对于非调色板模式的残差系数,从预定义的不同查表参数rice对应的多组码字关系中,选择一个rice对应的码字并将其调整为预设长度,作为所述指定的一组码字,或者选择多个rice对应的码字并分别调整为预设长度,作为与不同指定编码信息对应的码字;或者

第三码字选择单元,被配置为执行对于非调色板模式的残差系数,从预先义的不同查表参数rice对应的多组码字关系中,确定小于预设阈值的rice对应的多组码字,并从中选择一个rice对应的码字作为所述指定的一组码字,或者从中选择多个rice对应的码字作为与不同指定编码信息对应的码字;

第四码字选择单元,被配置为执行对于调色板模式的残差系数,从预先义的不同Exp-Golomb参数对应的多组码字关系中,选择一个Exp-Golomb参数对应的码字作为所述指定的一组码字,或者选择多个Exp-Golomb参数对应的码字作为与不同指定编码信息对应的码字;或者

第四码字选择单元,被配置为执行对于调色板模式的残差系数,从预定义的不同Exp-Golomb参数对应的多组码字关系中,选择一个Exp-Golomb参数对应的码字并将其调整为预设长度作为所述指定的一组码字,或者选择多个Exp-Golomb参数对应的码字并将其调整为预设长度,作为与不同指定编码信息对应的码字;

其中,所述预设长度为所述多组码字中最长的一组码字的长度,或者为所述最长的一组码字的长度减去预设值之后的长度。

在一种可能的实施方式中,该装置还包括:

概率模型确定单元,被配置为执行在解码到第二指定语法元素时,确定解码采用指定的一个概率模型,所述第二指定元素为依赖于概率模型的上下文编码方式的语法元素;

所述码值确定单元还被配置为执行利用所述指定的一个概率模型对所述第二指定语法元素进行解码,得到所述第二指定语法元素的二进值码流对应的编码值。

在一种可能的实施方式中,所述残差系数包括亮度残差系数和色度残差系数,所述码字确定单元具体被配置为执行:

对所述亮度残差系数和色度残差系数,指定不同的一组码字;或者

对所述亮度残差系数和色度残差系数,分别指定与不同指定编码信息对应的多组码字,且所述亮度残差系数对应的多组码字与色度残差系数对应的多组码字不完全相同。

在一种可能的实施方式中,所述指定编码信息包括如下至少一个编码参数:

与变换块TB或编码块CB或片段相关联的量化参数QP;

编码单元CU的预测模式;

片段类型,所述片段类型包括I片段、P片段或B片段。

在一种可能的实施方式中,该装置还包括:

映射关系建立单元,被配置为执行建立指定编码信息中的不同阈值范围的编码参数与不同组码字的映射关系。

在一种可能的实施方式中,该装置还包括:

第一通知接收单元,被配置为执行接收编码端采用不同级别比特流发送的信号通知,确定所通知的指定编码信息的编码参数及对应的阈值;

所述不同级别包括序列级别、图片级别、片段级别、编码树单元CTU级别或编码单元CU级别。

在一种可能的实施方式中,该装置还包括:

第二通知接收单元,被配置为执行接收编码端采用不同级别的比特流发送的信号通知,确定所通知的查表参数rice或Exp-Golomb参数;

所述不同级别包括序列级别、图片级别、片段级别、编码树单元CTU级别或编码单元CU级别。

在一种可能的实施方式中,所述序列级别的比特流为序列参数集的比特流;

所述图片级别的比特流为图片参数集的比特流,和/或图片头的比特流;

所述片段级别的比特流为片段头的比特流。

在一种可能的实施方式中,还包括:

第一级别映射单元,被配置为执行确定所述残差系数为级别映射后的规则变换系数时,按照第一映射级别规则确定级别映射前的残差系数绝对级别等级;

第二级别映射单元,被配置为执行确定所述残差系数为级别映射后的跳跃变换系数时,按照第二映射级别规则确定级别映射前的残差系数绝对级别等级;

所述第一映射级别规则或所述第二级别映射规则,用于按照推导方法推导出映射位置,并利用映射函数基于推导出的映射位置对残差系数进行级别映射;

所述第一映射级别规则和第二映射级别规则相同,或者所述第一映射级别规则和第二映射级别规则中映射位置的推导方法相同,或者所述第一映射级别规则和第二映射级别规则中映射函数相同。

在一种可能的实施方式中,所述第一映射级别规则或所述第二级别映射规则,用于在残差系数满足设定级别映射条件时,按照推导方法推导出映射位置,并利用映射函数基于推导出的映射位置对残差系数进行级别映射。

图8是根据一示例性实施例示出的一种视频数据的残差系数的编解码装置框图。参照图8,该装置包括码流接收单元801,多轮解码单元802,查表参数确定单元803和码值确定单元804,其中:

码流接收单元,被配置执行从接收的残差图像码流中,提取所述残差图像中残差子块的码流,所述残差子块包括多个残差系数;

多轮解码单元,被配置为执行对各残差系数的码流进行多轮解码,其中,每一轮采用该轮的解码方式解码对应的语法元素的码流;

查表参数确定单元,被配置为执行确定解码到第一指定语法元素时,按照第二逻辑规则根据所述残差系数相邻位置的残差系数的绝对级别等级AbsLevel得到查表参数rice;

码值确定单元,被配置为执行从预定义的不同rice对应的多组码字关系中,确定计算出的rice对应的一组码字,根据所述一组码字中的不同码字对应的编码值,得到所述第一指定语法元素的码流对应的编码值;

其中,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素,所述第二逻辑规则为改变第一逻辑规则中计算rice使用的参数和/逻辑计算方式得到的规则。

在一种可能的实施方式中,所述查表参数确定单元按照第二逻辑规则根据所述残差系数相邻位置的残差系数的AbsLevel得到rice,包括如下任一步骤:

根据所述相邻位置的残差系数的AbsLevel确定等级参数locSumAbs,将确定的locSumAbs采用逻辑推导方式得到rice,所述n为非零正整数;

根据N个相邻位置的残差系数的AbsLevel确定locSumAbs,根据确定的locSumAbs得到查表参数rice,所述N为小于5的正整数;

将所述相邻位置的残差系数的AbsLevel求和并减去m*baseLevel,将得到的数值乘以设定系数alpha后,再偏移设定偏移量beta后确定locSumAbs,根据确定的locSumAbs得到查表参数rice;

所述baseLevel为残差系数的基本级别,m为查找到相邻位置的数量。

在一种可能的实施方式中,所述查表参数确定单元按照第二逻辑规则根据所述残差系数相邻位置的残差系数的AbsLevel得到查表参数rice,包括:

将所述相邻位置的残差系数的AbsLevel求和并减去m*baseLevel,所述baseLevel为残差系数的基本级别,m为查找到相邻位置的数量;

将得到的数值作为locSumAbs,或仅限制得到的数值中最小值为下限值得到locSumAbs;或仅限制得到的数值中的最大值为上限值得到locSumAbs。

在一种可能的实施方式中,所述查表参数确定单元按照第二逻辑规则根据所述残差系数相邻位置的残差系数的AbsLevel得到查表参数rice,包括:

初始locSumAbs为非零值,查找残差系数的相邻位置;

查找到一个相邻位置时,将相邻位置的残差系数的AbsLevel加上当前locSumAbs得到更新后的当前locSumAbs;

查找相邻位置结束时,将当前locSumAbs减去m*baseLevel进行locSumAbs更新,m为查找到相邻位置的数量;

根据当前locSumAbs得到查表参数rice。

在一种可能的实施方式中,所述查表参数确定单元按照第二逻辑规则根据所述残差系数相邻位置的残差系数的AbsLevel得到查表参数rice,包括:

初始化locSumAbs,并查找残差系数的相邻位置;

确定根据查找到的相邻位置中,最大的残差系数绝对级别等级确定等级参数locSumAbs;

根据确定的locSumAbs得到查表参数rice。

在一种可能的实施方式中,所述查表参数确定单元按照改进逻辑规则根据所述残差系数相邻位置的残差系数绝对级别等级得到查表参数rice,包括:

初始化locSumAbs,并查找残差系数相邻位置;

根据查找到的相邻位置的残差系数的AbsLevel相对于所述残差系数的基本级别baseLevel的相对幅度,确定等级参数locSumAbs;

根据确定的locSumAbs得到查表参数rice。

在一种可能的实施方式中,所述查表参数确定单元根据查找到的相邻位置的残差系数的AbsLevel相对于所述残差系数的基本级别baseLevel的相对幅度,确定等级参数locSumAbs,包括:

将查找到的相邻位置的残差系数的AbsLevel减去所述残差系数的baseLevel并求和,确定等级参数locSumAbs;或者

根据残差系数的AbsLevel大于baseLevel的相邻位置的数量,确定等级参数locSumAbs;或者

确定AbsLevel大于baseLevel的残差系数的相邻位置,并将确定的相邻位置的残差系数的AbsLevel减去所述残差系数的baseLevel并求和,确定等级参数locSumAbs。

在一种可能的实施方式中,该装置还包括:

级别映射单元,被配置为用于确定所述残差系数的AbsLevel级别映射后绝对级别等级时,将所述查表参数rice直接向左位移,得到所述残差系数对应的映射位置,根据所述映射位置利用映射函数确定级别映射前的AbsLevel;或者

根据locSumAbs确定所述残差系数对应的映射位置,根据所述映射位置利用映射函数确定级别映射前的AbsLevel,所述locSumAbs为根据所述相邻位置的残差系数的AbsLevel确定的等级参数;或者

根据所述相邻位置的残差系数的AbsLevel,确定所述残差系数对应的映射位置,根据所述映射位置利用映射函数确定级别映射前的AbsLevel;或者。

在一种可能的实施方式中,所述级别映射单元根据所述相邻位置的残差系数的AbsLevel,确定所述残差系数对应的映射位置,包括:

确定相邻位置的残差系数的最大AbsLevel,将最大的AbsLevel向右移位预设比特位后,确定移位后的数值为映射位置的位置数据;

确定相邻位置的残差系数的最大AbsLevel,将最大的AbsLevel向右移位预设比特位后,将移位后的数值乘以设定系数再加上预设偏移量,得到映射位置的位置数据。

图9是根据一示例性实施例示出的一种视频数据的残差系数的编解码装置框图。参照图9,该装置包括残差图像确定单元901,多轮编码单元902,码字确定单元903和码流确定单元904,其中:

残差图像确定单元,被配置为执行对待传输的图像进行预测编码,根据编码后图像与待传输图像的差值得到残差图像;

多轮编码单元,被配置为执行对所述残差图像进行残差块中划分,对所述残差块中的残差系数进行多轮编码,每一轮采用该轮的编码方式对该轮对应的语法元素编码得到码流;

码字确定单元,被配置为执行在对第一指定语法元素进行编码时,确定编码采用指定的一组码字,或者根据所述残差图像对应的指定编码信息,确定编码采用的一组码字,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素;

码流确定单元,被配置为执行根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的编码值对应的码流。

图10是根据一示例性实施例示出的一种视频数据的残差系数的编解码装置框图。参照图10,该装置包括残差图像确定单元1001,多轮编码单元1002,查表参数确定单元1003和码流确定单元1004,其中:

残差图像确定单元,被配置为执行对待传输的图像进行预测编码,根据编码后图像与待传输图像的差值得到残差图像;

多轮编码单元,对所述残差图像进行残差块中划分,对所述残差块中的残差系数进行多轮编码,每一轮采用该轮的编码方式对该轮对应的语法元素编码得到码流;

查表参数确定单元,被配置为执行在对第一指定语法元素进行编码时,按照第二逻辑规则根据所述残差系数相邻位置的残差系数的绝对级别等级AbsLevel得到查表参数rice;

码流确定单元,被配置为执行从预定义的不同rice对应的多组码字关系中,确定计算出的rice对应的一组码字,根据所述一组码字中不同码字对应的编码值,得到所述第一指定语法元素的编码值对应的码流;

其中,所述第一指定语法元素为不依赖于概率模型的旁路编码方式的语法元素,所述第二逻辑规则为改变第一逻辑规则中计算rice使用的参数和/逻辑计算方式得到的规则。

关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图11是根据一示例性实施例示出的的电子设备130的框图,图11仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图11所示,电子设备130以通用电子设备的形式表现。电子设备130的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同系统组件(包括存储器132和处理器131)的总线133。存储器中存储所述处理器可执行指令,处理器被配置为执行所述指令,以实现上述任一实施例提供的视频数据的残差参数的编解码方法。

总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。

存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(ROM)1323。

存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

电子设备130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备130交互的设备通信,和/或与使得该电子设备130能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口135进行。并且,电子设备130还可以通过网络适配器136与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于电子设备130的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

在一些可能的实施方式中,本申请提供的一种视频数据的残差系数编解码方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种视频数据的残差系数编解码方法的步骤。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

本申请的实施方式的用于监控的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务端上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号