一种图像编码方法、解码方法、编码器、解码器及存储介质与流程

文档序号:19605566发布日期:2020-01-03 13:30阅读:295来源:国知局
一种图像编码方法、解码方法、编码器、解码器及存储介质与流程

本发明涉及通讯技术领域,尤其涉及一种图像编码方法、解码方法、编码器、解码器及存储介质。



背景技术:

数字视频和图像的压缩编码技术利用视频和图像中像素点样值之间的相关性来去除视频和图像中存在的冗余。其中,压缩编码技术包括帧内预测(intraprediction)和帧间预测(interprediction)。具体的,帧内预测是利用图像中相邻像素点样值之间的空间域相关性,通过使用相邻已编码像素点预测待编码像素点,从而降低了空间域相邻像素点之间的冗余。帧间预测不但利用单帧图像中空间域相邻像素点之间相关性,还利用了时域相邻图像之间的相关性,例如,使用运动估计(motionestimation,me)和运动补偿(motioncompensation,mc),使用已编码图像作为参考对当前编码图像进行预测。

目前,现有的视频和图像编码标准使用的帧内预测方法是使用当前编码块的左相邻和上相邻位置上已编码像素点(即参考像素点)来构造当前编码块中像素点的预测值。帧内预测模式指示了使用编码块相邻像素点构造编码块像素点预测值的方法,例如,直流(dc)模式、帧内预测方向等。为进一步提高压缩效率,现有技术使用增加更多的帧内预测方向、使用更多的空间域相邻像素作为参考、对空间域相邻像素进行复杂的滤波处理等方法。

然而,现有的视频和图像编码方法增加了编码器为编码块确定帧内预测过程的计算复杂度、存储复杂度和存储开销、增加了编解码过程中的数据处理时延。



技术实现要素:

为解决上述技术问题,本发明期望提供一种编码方法、解码方法、编码器、解码器及存储介质,能够减少编码器在帧内预测过程的计算复杂度、存储复杂度和存储开销、并减少编解码过程中的数据处理时延。

本发明的技术方案是这样实现的:

第一方面,本发明实施例提供了一种图像编码方法,包括:

确定编码块的帧内预测模式,根据帧内预测模式构造编码块的第一预测值;

根据编码块的原始值和第一预测值确定滤波参数,滤波参数包括滤波指示参数;

若滤波指示参数指示对第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;

根据编码块的原始值与帧内预测值的差值计算预测差参数;

对帧内预测模式、滤波参数和预测差参数进行编码,将编码比特写入码流。

可选的,滤波参数还包括滤波器参数,滤波器参数用于指示所使用的滤波器的滤波器系数,对第一预测值进行滤波处理得到帧内预测值,包括:

利用滤波器参数指示的至少一种滤波器,对第一预测值进行滤波处理,并得到帧内预测值。

可选的,方法还包括:

若滤波指示参数指示不对第一预测值进行滤波处理,则使用第一预测值设置帧内预测值。

可选的,根据编码块的原始值和第一预测值确定滤波参数,具体包括:

使用率失真优化的方法,根据编码块的原始值和第一预测值确定滤波参数。

可选的,使用率失真优化的方法确定滤波参数,具体包括:

通过减少编码块的原始值与第一预测值之间的误差,确定滤波参数。

可选的,编码块的原始值与第一预测值之间的误差所采用的误差准则,至少包括:

数值误差准则、人眼视觉系统感知误差准则。

可选的,滤波器参数指示的至少一种滤波器,至少包括:

固定系数的滤波器、可自适应调整系数的滤波器。

可选的,固定系数的滤波器包括以下滤波器的至少之一:

一维滤波器、二维滤波器、多级神经网络滤波器。

可选的,可自适应调整系数的滤波器包括以下滤波器的至少之一:

一维滤波器、二维滤波器、多级神经网络滤波器。

可选的,滤波器参数指示的至少一种滤波器,包括:

编码块的相邻已编码块使用的滤波器。

可选的,利用滤波器参数指示的至少一种滤波器对第一预测值进行滤波处理,具体包括:

使用编码块的相邻已编码块使用的滤波器对编码块的第一预测值进行滤波处理。

可选的,利用滤波器参数指示的至少一种滤波器,对第一预测值进行滤波处理,包括:

根据滤波器参数确定对应的滤波器,并对滤波器的系数进行设置;

利用滤波器对第一预测值进行滤波处理。

可选的,根据编码块的原始值与帧内预测值的差值计算预测差参数,包括:

计算编码块的原始值与帧内预测值的差值,得到解码块的预测差值;

对预测差值进行变换和量化处理,得到预测差参数。

可选的,滤波指示参数包括以下至少之一:

序列层滤波控制参数、图像层滤波控制参数、分片层滤波控制参数和块层滤波控制参数。

可选的,序列层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否需要对视频序列中使用帧内预测模式的编码块的第一预测值进行滤波处理;

一个或多个编码块大小的第一预设取值,第一预设取值指示了需要对视频序列中大小等于第一预设取值的编码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第二预设取值,第二预设取值指示了需要对视频序列中使用第二预设取值指示的帧内预测模式的编码块的第一预测值进行滤波处理。

可选的,图像层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否需要对图像中使用帧内预测模式的编码块的第一预测值进行滤波处理;

一个或多个编码块大小的第三预设取值,第三预设取值指示了需要对图像中大小等于第三预设取值的编码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第四预设取值,第四预设取值指示了需要对图像中使用第四预设取值指示的帧内预测模式的编码块的第一预测值进行滤波处理。

可选的,分片层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否需要对分片中使用帧内预测模式的编码块的第一预测值进行滤波处理;

一个或多个编码块大小的第五预设取值,第五预设取值指示了需要对分片中大小等于第五预设取值的编码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第六预设取值,第六预设取值指示了需要对分片中使用第六预设取值指示的帧内预测模式的编码块的第一预测值进行滤波处理。

可选的,块层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否对编码块的第一预测值进行滤波处理;

一个或多个编码块大小的第七预设取值,用于指示当编码块的大小等于第七预设取值时对编码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第八预设取值,用于指示当编码块的帧内预测模式与第八预设取值指示的帧内预测模式相同时,对编码块的第一预测值进行滤波处理。

可选的,对滤波参数进行编码,包括:

对滤波参数进行编码获得滤波参数的编码比特;

将编码比特写入码流中的数据单元,其中,码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。

第二方面,本发明实施例提供了一种图像解码方法,包括:

解析码流,获得解码块的帧内预测模式、滤波参数和预测差参数,滤波参数包括滤波指示参数;

根据帧内预测模式构造解码块的第一预测值;

若滤波指示参数指示对第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;

根据预测差参数计算解码块的预测差;

计算帧内预测值和预测差的和值,获得解码块的第一解码值;

根据第一解码值获得解码块的解码恢复值。

可选的,解析码流获得解码块的滤波参数,包括:

解析码流中的一个或多个数据单元,获得滤波参数,其中,数据单元包括以下至少之一:一个或多个参数集,分片头,块层数据单元。

可选的,滤波参数包括滤波器参数,对第一预测值进行滤波处理得到帧内预测值,包括:

使用滤波器参数指示的滤波器对第一预测值进行滤波处理,得到帧内预测值。

可选的,滤波器参数指示的滤波器包括以下至少之一:

固定系数的滤波器、可自适应调整系数的滤波器。

可选的,固定系数的滤波器包括以下至少之一:

一维滤波器、二维滤波器、多级神经网络滤波器。

可选的,可自适应调整系数的滤波器包括以下至少之一:

一维滤波器、二维滤波器、多级神经网络滤波器。

可选的,滤波器参数指示的滤波器包括:

解码块的相邻已解码块的滤波器。

可选的,对第一预测值进行滤波处理得到帧内预测值包括:

使用解码块的相邻已解码块的滤波器对解码块的第一预测值进行滤波处理得到帧内预测值。

可选的,使用滤波器参数指示的滤波器对第一预测值进行滤波处理,包括:

根据滤波器参数确定对应的滤波器,并对滤波器进行系数设置;

使用滤波器对第一预测值进行滤波处理。

可选的,在根据帧内预测模式构造解码块的第一预测值之后,方法还包括:

若滤波指示参数指示不对第一预测值进行滤波处理,使用第一预测值设置帧内预测值。

可选的,根据预测差参数计算解码块的预测差,包括:

对预测差参数进行伸缩和变换处理,得到解码块的预测差。

可选的,根据第一解码值获得解码块的解码恢复值,包括:

对第一解码值进行环路滤波处理,得到解码块的解码恢复值。

可选的,滤波指示参数包括以下至少之一:

序列层滤波控制参数、图像层滤波控制参数、分片层滤波控制参数和块层滤波控制参数。

可选的,序列层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否需要对视频序列中使用帧内预测模式的解码块的第一预测值进行滤波处理;

一个或多个解码块大小的第一预设取值,第一预设取值指示了需要对视频序列中大小等于第一预设取值的解码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第二预设取值,第二预设取值指示了需要对视频序列中使用第二预设取值指示的帧内预测模式的解码块的第一预测值进行滤波处理。

可选的,图像层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否需要对图像中使用帧内预测模式的解码块的第一预测值进行滤波处理;

一个或多个解码块大小的第三预设取值,第三预设取值指示了需要对图像中大小等于第三预设取值的解码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第四预设取值,第四预设取值指示了需要对图像中使用第四预设取值指示的帧内预测模式的解码块的第一预测值进行滤波处理。

可选的,分片层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否需要对分片中使用帧内预测模式的解码块的第一预测值进行滤波处理;

一个或多个解码块大小的第五预设取值,第五预设取值指示了需要对分片中大小等于第五预设取值的解码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第六预设取值,第六预设取值指示了需要对分片中使用第六预设取值指示的帧内预测模式的解码块的第一预测值进行滤波处理。

可选的,块层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否对解码块的第一预测值进行滤波处理;

一个或多个解码块大小的第七预设取值,用于指示当解码块的大小等于第七预设取值时对解码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第八预设取值,用于指示当解码块的帧内预测模式与第八预设取值指示的帧内预测模式相同时,对解码块的第一预测值进行滤波处理。

第三方面,本发明实施例提供了一种图像编码装置,包括第一预测值构造单元、滤波参数确定单元、帧内预测值确定单元、预测差参数计算单元和编码单元,其中:

第一预测值构造单元,用于确定编码块的帧内预测模式,根据帧内预测模式构造编码块的第一预测值;

滤波参数确定单元,用于根据编码块的原始值和第一预测值构造单元构造的第一预测值确定滤波参数,滤波参数包括滤波指示参数;

帧内预测值确定单元,用于若滤波参数确定单元确定的滤波指示参数指示对第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;

预测差参数计算单元,用于根据编码块的原始值与帧内预测值确定单元得到的帧内预测值的差值计算预测差参数;

编码单元,用于对帧内预测模式、滤波参数确定单元确定的滤波参数和预测差参数计算单元计算的预测差参数进行编码,将编码比特写入码流。

可选的,滤波参数还包括滤波器参数,滤波器参数用于指示所使用的滤波器的滤波器系数,帧内预测值确定单元,具体用于:

利用滤波器参数指示的至少一种滤波器,对第一预测值进行滤波处理,得到帧内预测值。

可选的,帧内预测值确定单元还用于:

若滤波指示参数指示不对第一预测值进行滤波处理,则使用第一预测值设置帧内预测值。

可选的,滤波参数确定单元,具体用于:

使用率失真优化的方法,根据编码块的原始值和第一预测值确定滤波参数。

可选的,滤波器参数指示的至少一种滤波器,至少包括:

固定系数的滤波器、可自适应调整系数的滤波器。

可选的,滤波器参数指示的至少一种滤波器,包括:

编码块的相邻已编码块使用的滤波器。

可选的,预测差参数计算单元,具体用于:

计算编码块的原始值与帧内预测值的差值,得到解码块的预测差值;

对预测差值进行变换和量化处理,得到预测差参数。

可选的,滤波指示参数包括以下至少之一:

序列层滤波控制参数、图像层滤波控制参数、分片层滤波控制参数和块层滤波控制参数。

可选的,编码单元,具体用于:

对滤波参数进行编码获得滤波参数的编码比特;

将编码比特写入码流中的数据单元,其中,码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。

第四方面,本发明实施例提供了一种图像解码装置,包括解析单元、第一预测值构造单元、帧内预测值获得单元、预测差计算单元、第一解码值获得单元和解码恢复值获得单元:

解析单元,用于解析码流,获得解码块的帧内预测模式、滤波参数和预测差参数,滤波参数包括滤波指示参数;

第一预测值构造单元,用于根据解析单元解析的帧内预测模式构造解码块的第一预测值;

帧内预测值获得单元,用于若滤波指示参数指示对第一预测值构造单元构造的第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;

预测差计算单元,用于根据解析单元解析的预测差参数计算解码块的预测差;

第一解码值获得单元,用于计算帧内预测值获得单元获得的帧内预测值和预测差计算单元计算的预测差的和值,获得解码块的第一解码值;

解码恢复值获得单元,用于根据第一解码值获得单元获得的第一解码值获得解码块的解码恢复值。

可选的,具体用于:

解析码流中的一个或多个数据单元,获得滤波参数,其中,数据单元包括以下至少之一:一个或多个参数集,分片头,块层数据单元。

可选的,滤波参数包括滤波器参数,帧内预测值获得单元,具体用于:

使用滤波器参数指示的滤波器对第一预测值进行滤波处理,得到帧内预测值。

可选的,滤波器参数指示的滤波器包括以下至少之一:

固定系数的滤波器、可自适应调整系数的滤波器。

可选的,滤波器参数指示的滤波器包括:

解码块的相邻已解码块的滤波器。

可选的,帧内预测值获得单元,还用于:

若滤波指示参数指示不对第一预测值进行滤波处理,使用第一预测值设置帧内预测值。

可选的,预测差计算单元,具体用于:

对预测差参数进行伸缩和变换处理,得到解码块的预测差。

可选的,解码恢复值获得单元,具体用于:

对第一解码值进行环路滤波处理,得到解码块的解码恢复值。

可选的,滤波指示参数包括以下至少之一:

序列层滤波控制参数、图像层滤波控制参数、分片层滤波控制参数和块层滤波控制参数。

第五方面,本发明实施例提供了一种编码器,包括:第一处理器、第一存储介质、第一通信总线,第一处理器和第一存储介质通过第一通信总线连接;第一处理器,调用第一存储介质存储的图像编码相关程序,并执行如下步骤:

确定编码块的帧内预测模式,根据帧内预测模式构造编码块的第一预测值;

根据编码块的原始值和第一预测值确定滤波参数,滤波参数包括滤波指示参数;

若滤波指示参数指示对第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;

根据编码块的原始值与帧内预测值的差值计算预测差参数;

对帧内预测模式、滤波参数和预测差参数进行编码,将编码比特写入码流。

第六方面,本发明实施例提供了一种解码器,包括:第二处理器、第二存储介质、第二通信总线,第二处理器和第二存储介质通过第二通信总线连接;第二处理器,调用第二存储介质存储的图像解码相关程序,并执行如下步骤:

解析码流,获得解码块的帧内预测模式、滤波参数和预测差参数,滤波参数包括滤波指示参数;

根据帧内预测模式构造解码块的第一预测值;

若滤波指示参数指示对第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;

根据预测差参数计算解码块的预测差;

计算帧内预测值和预测差的和值,获得解码块的第一解码值;

根据第一解码值获得解码块的解码恢复值。

第七方面,本发明实施例提供了一种计算机存储介质,应用于编码器中,计算机可读处处介质存储有一个或多个编码相关程序,一个或者多个图像编码相关程序可被一个或者多个第一处理器执行,以实现如上述图像编码方法。

第八方面,本发明实施例提供了一种计算机存储介质,应用于解码器中,计算机可读处处介质存储有一个或多个解码相关程序,一个或者多个图像解码相关程序可被一个或者多个第二处理器执行,以实现如上述图像解码方法。

本发明实施例提供了一种图像编码方法、解码方法、编码器、解码器及存储介质,方法包括:确定编码块的帧内预测模式,根据帧内预测模式构造编码块的第一预测值;根据编码块的原始值和第一预测值确定滤波参数,滤波参数包括滤波指示参数;若滤波指示参数指示对第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;根据编码块的原始值与帧内预测值的差值计算预测差参数;对帧内预测模式、滤波参数和预测差参数进行编码,将编码比特写入码流。由于对根据帧内预测模式计算的预测值进行滤波可以更加有效地补偿预测值与原始值之间的偏差,并且滤波过程中使用的输入数据是预测值而不涉及其他,因此,使用上述方法可以有效减少帧内预测方向的数量、降低了帧内预测模式的开销;并减少作为帧内预测参考的相邻像素数量,降低了缓冲区的存储开销,使得在编解码过程中可以有效使用并行或准并行的方法提高数据处理效率;避免使用对参考像素的滤波过程或使用简单的滤波器对参考像素进行滤波,降低了数据访问量,降低了编解码器设计中的存储复杂度。

附图说明

图1为本发明实施例提供的一种图像编码方法的流程示意图;

图2为本发明实施例提供的一种图像解码方法的流程示意图;

图3为本发明实施例提供的一种编码装置的结构示意图;

图4为本发明实施例提供的一种解码装置的结构示意图;

图5为本发明实施例提供的一种编码器的系统架构示意图;

图6为本发明实施例提供的一种解码器的系统架构示意图;

图7为本发明实施例提供的一种编码器的帧内预测单元的结构示意图;

图8为本发明实施例提供的编码器中熵编码单元对帧内预测单元输出参数进行编码的数据处理的流程示意图;

图9为本发明实施例提供的一种解码器的帧内预测单元的结构示意图;

图10为本发明实施例提供的解码器中解析单元对解码块码流中的帧内预测模式和滤波参数进行解析的数据处理的流程示意图;

图11为本发明实施例提供的包含编码器的电子设备的结构示意图;

图12为本发明实施例提供的包含解码器的电子设备的结构示意图;

图13为本发明实施例提供的电子系统的系统架构示意图。

具体实施方式

现有技术中,视频和图像编码标准使用的帧内预测方法是使用当前编码块的左相邻和上相邻位置上已编码像素点来构造当前编码块中像素点的预测值。现有标准设计了多种帧内预测模式。帧内预测模式指示了使用编码块相邻像素点构造编码块像素点预测值的方法,例如,直流(dc)模式、帧内预测方向等。为提高帧内预测的效率,可以使用更多的帧内预测方向。例如,h.264/avc标准使用9种帧内预测模式,包括dc模式和8个不同帧内预测方向的预测模式;h.265/hevc标准使用平面模式、dc模式和33个不同帧内预测方向的预测模式,获得了比h.264/avc更好的帧内压缩效率。为进一步提高压缩效率,现有技术使用增加更多的帧内预测方向、使用更多的空间域相邻像素作为参考、对空间域相邻像素进行复杂的滤波处理等方法。

在实际应用中,现有方法虽然可以提高使用帧内预测方法的编解码器的压缩编码效率,但存在如下主要缺陷:

(1)增加帧内预测方向的方法增加了帧内预测模式的数量,对应地增加了视频码流中帧内预测模式指示信息的编码比特开销,也增加了编码器为编码块确定帧内预测过程的计算复杂度和存储复杂度。

(2)增加空间域相邻像素作为参考的方法增加了存储器的开销,同时,由于确定当前块的帧内预测值需要等待这些参考像素均已经完成编码(对于编码器)和解码(对于解码器),使得编解码过程中无法有效使用并行或准并行的方法提高处理效率,增加了编解码过程中的数据处理时延和计算复杂度。

(3)对空间域相邻像素进行滤波的方法需要使用额外的存储器存储滤波过程的相关参数,同时,复杂的滤波过程增加数据的访问量,这些都增加了编解码器设计过程中的存储开销。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

下述实施例中,视频指的是由图像组成的图像序列。码流指的是视频编码器对视频进行编码产生的码流,也指对视频编码器编码视频产生的码流经过系统层处理后得到的包含视频编码器编码视频产生的码流的传输流和/或媒体文件,对码流进行解码可以获得视频。系统层处理是对视频码流进行的封装操作,例如,将视频码流作为数据载荷封装成传输流,或将视频码流作为载荷封装成媒体文件。系统层处理也包括将包含视频码流的传输流或媒体文件作为数据载荷封装成用于传输的流或者用于存储的文件。系统层处理生成的数据单元也称为系统层数据单元,在系统层处理封装数据载荷过程中在系统层数据单元中添加的信息(例如系统层数据单元的头信息等)称为系统层信息。子码流指的是从码流中进行抽取操作得到的部分码流,对子码流进行解码可以获得视频图像,该视频图像可以是比解码码流获得的视频图像的分辨率低的图像,也可以是比解码码流获得视频的帧率低的图像,该视频图像包含的可以是解码码流获得的视频图像中的部分内容。

实施例一

参见图1,本公开的实施例提出了一种图像编码方法,包括:

步骤101:确定编码块的帧内预测模式,根据帧内预测模式构造编码块的第一预测值;

步骤102:根据编码块的原始值和第一预测值确定滤波参数,滤波参数包括滤波指示参数;

其中,滤波指示参数包括以下至少之一:序列层滤波控制参数、图像层滤波控制参数、分片层滤波控制参数和块层滤波控制参数。

示例性的,序列层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否需要对视频序列中使用帧内预测模式的编码块的第一预测值进行滤波处理;

一个或多个编码块大小的第一预设取值,第一预设取值指示了需要对视频序列中大小等于第一预设取值的编码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第二预设取值,第二预设取值指示了需要对视频序列中使用第二预设取值指示的帧内预测模式的编码块的第一预测值进行滤波处理。

示例性的,图像层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否需要对图像中使用帧内预测模式的编码块的第一预测值进行滤波处理;

一个或多个编码块大小的第三预设取值,第三预设取值指示了需要对图像中大小等于第三预设取值的编码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第四预设取值,第四预设取值指示了需要对图像中使用第四预设取值指示的帧内预测模式的编码块的第一预测值进行滤波处理。

示例性的,分片层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否需要对分片中使用帧内预测模式的编码块的第一预测值进行滤波处理;

一个或多个编码块大小的第五预设取值,第五预设取值指示了需要对分片中大小等于第五预设取值的编码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第六预设取值,第六预设取值指示了需要对分片中使用第六预设取值指示的帧内预测模式的编码块的第一预测值进行滤波处理。

示例性的,块层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否对编码块的第一预测值进行滤波处理;

一个或多个编码块大小的第七预设取值,用于指示当编码块的大小等于第七预设取值时对编码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第八预设取值,用于指示当编码块的帧内预测模式与第八预设取值指示的帧内预测模式相同时,对编码块的第一预测值进行滤波处理。

可选的,步骤102具体包括:使用率失真优化的方法,根据编码块的原始值和第一预测值确定滤波参数。

实际应用中,使用率失真优化的方法确定滤波参数,具体包括:通过减少编码块的原始值与第一预测值之间的误差,确定滤波参数。

示例性的,确定编码块的原始值与第一预测值之间的误差所采用的误差准则,至少包括:数值误差准则、人眼视觉系统感知误差准则。

步骤103:若滤波指示参数指示对第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;

可选的,滤波参数还包括滤波器参数,滤波器参数用于指示所使用的滤波器的滤波器系数,对第一预测值进行滤波处理得到帧内预测值,包括:利用滤波器参数指示的至少一种滤波器,对第一预测值进行滤波处理,并得到帧内预测值。

另外,若滤波指示参数指示不对第一预测值进行滤波处理,则使用第一预测值设置帧内预测值。

示例性的,滤波器参数指示的至少一种滤波器,至少包括:固定系数的滤波器、可自适应调整系数的滤波器。

实际中,固定系数的滤波器包括以下至少之一:一维滤波器、二维滤波器、多级神经网络滤波器。

可自适应调整系数的滤波器包括以下至少之一:一维滤波器、二维滤波器、多级神经网络滤波器。

示例性的,滤波器参数指示的至少一种滤波器,包括:编码块的相邻已编码块使用的滤波器。

进一步的,利用滤波器参数指示的至少一种滤波器对第一预测值进行滤波处理,具体包括:使用编码块的相邻已编码块使用的滤波器对编码块的第一预测值进行滤波处理。

可选的,利用滤波器参数指示的至少一种滤波器,对第一预测值进行滤波处理,包括:根据滤波器参数确定对应的滤波器,并对滤波器的系数进行设置;利用滤波器对第一预测值进行滤波处理。

步骤104:根据编码块的原始值与帧内预测值的差值计算预测差参数;

可选的,步骤104包括:计算编码块的原始值与帧内预测值的差值,得到解码块的预测差值;对预测差值进行变换和量化处理,得到预测差参数。

步骤105:对帧内预测模式、滤波参数和预测差参数进行编码,将编码比特写入码流。

可选的,对滤波参数进行编码,包括:对滤波参数进行编码获得滤波参数的编码比特;将编码比特写入码流中的数据单元,其中,码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。

实施例二

参见图2,本公开的实施例提出了一种图像解码方法,包括:

步骤201:解析码流,获得解码块的帧内预测模式、滤波参数和预测差参数,滤波参数包括滤波指示参数;

其中,解析码流获得解码块的滤波参数包括:解析码流中的一个或多个数据单元,获得滤波参数,其中,数据单元包括以下至少之一:一个或多个参数集,分片头,块层数据单元。

其中,滤波指示参数包括以下至少之一:序列层滤波控制参数、图像层滤波控制参数、分片层滤波控制参数和块层滤波控制参数。

示例性的,序列层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否需要对视频序列中使用帧内预测模式的解码块的第一预测值进行滤波处理;

一个或多个解码块大小的第一预设取值,第一预设取值指示了需要对视频序列中大小等于第一预设取值的解码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第二预设取值,第二预设取值指示了需要对视频序列中使用第二预设取值指示的帧内预测模式的解码块的第一预测值进行滤波处理。

示例性的,图像层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否需要对图像中使用帧内预测模式的解码块的第一预测值进行滤波处理;

一个或多个解码块大小的第三预设取值,第三预设取值指示了需要对图像中大小等于第三预设取值的解码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第四预设取值,第四预设取值指示了需要对图像中使用第四预设取值指示的帧内预测模式的解码块的第一预测值进行滤波处理。

示例性的,分片层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否需要对分片中使用帧内预测模式的解码块的第一预测值进行滤波处理;

一个或多个解码块大小的第五预设取值,第五预设取值指示了需要对分片中大小等于第五预设取值的解码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第六预设取值,第六预设取值指示了需要对分片中使用第六预设取值指示的帧内预测模式的解码块的第一预测值进行滤波处理。

示例性的,块层滤波控制参数包括以下至少之一:

一个或多个标志位,标志位指示是否对解码块的第一预测值进行滤波处理;

一个或多个解码块大小的第七预设取值,用于指示当解码块的大小等于第七预设取值时对解码块的第一预测值进行滤波处理;

一个或多个帧内预测模式的第八预设取值,用于指示当解码块的帧内预测模式与第八预设取值指示的帧内预测模式相同时,对解码块的第一预测值进行滤波处理。

步骤202:根据帧内预测模式构造解码块的第一预测值;

步骤203:若滤波指示参数指示对第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;

可选的,滤波参数包括滤波器参数,对第一预测值进行滤波处理得到帧内预测值,包括:使用滤波器参数指示的滤波器对第一预测值进行滤波处理,得到帧内预测值。

其中,滤波器参数指示的滤波器包括以下至少之一:固定系数的滤波器、可自适应调整系数的滤波器。

实际应用中,固定系数的滤波器包括以下至少之一:一维滤波器、二维滤波器、多级神经网络滤波器。

可自适应调整系数的滤波器包括以下至少之一:一维滤波器、二维滤波器、多级神经网络滤波器。

另外,滤波器参数指示的滤波器还包括:解码块的相邻已解码块的滤波器。

进一步的,对第一预测值进行滤波处理得到帧内预测值包括:使用解码块的相邻已解码块的滤波器对解码块的第一预测值进行滤波处理得到帧内预测值。

可选的,使用滤波器参数指示的滤波器对第一预测值进行滤波处理,包括:根据滤波器参数确定对应的滤波器,并对滤波器进行系数设置;使用滤波器对第一预测值进行滤波处理。

可选的,若滤波指示参数指示不对第一预测值进行滤波处理,使用第一预测值设置帧内预测值。

步骤204:根据预测差参数计算解码块的预测差;

可选的,步骤204包括:对预测差参数进行伸缩和变换处理,得到解码块的预测差。

步骤205:计算帧内预测值和预测差的和值,获得解码块的第一解码值;

步骤206:根据第一解码值获得解码块的解码恢复值。

可选的,步骤206包括:对第一解码值进行环路滤波处理,得到解码块的解码恢复值。

实施例三

参见图3,本公开的实施例提出了一种图像编码装置,包括第一预测值构造单元3001、滤波参数确定单元3002、帧内预测值确定单元3003、预测差参数计算单元3004和编码单元3005,其中:

第一预测值构造单元3001,用于确定编码块的帧内预测模式,根据帧内预测模式构造编码块的第一预测值;

滤波参数确定单元3002,用于根据编码块的原始值和第一预测值构造单元3001构造的第一预测值确定滤波参数,滤波参数包括滤波指示参数;

帧内预测值确定单元3003,用于若滤波参数确定单元3002确定的滤波指示参数指示对第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;

预测差参数计算单元3004,用于根据编码块的原始值与帧内预测值确定单元3003得到的帧内预测值的差值计算预测差参数;

编码单元3005,用于对帧内预测模式、滤波参数确定单元3002确定的滤波参数和预测差参数计算单元3004计算的预测差参数进行编码,将编码比特写入码流。

可选的,滤波参数还包括滤波器参数,滤波器参数用于指示所使用的滤波器的滤波器系数,帧内预测值确定单元3003,具体用于:利用滤波器参数指示的至少一种滤波器,对第一预测值进行滤波处理,并得到帧内预测值。

可选的,帧内预测值确定单元3003还用于:若滤波指示参数指示不对第一预测值进行滤波处理,则使用第一预测值设置帧内预测值。

可选的,滤波参数确定单元3002,具体用于:使用率失真优化的方法,根据编码块的原始值和第一预测值确定滤波参数。

可选的,滤波器参数指示的至少一种滤波器,至少包括:固定系数的滤波器、可自适应调整系数的滤波器。

可选的,滤波器参数指示的至少一种滤波器,包括:编码块的相邻已编码块使用的滤波器。

可选的,预测差参数计算单元3004,具体用于:计算编码块的原始值与帧内预测值的差值,得到解码块的预测差值;对预测差值进行变换和量化处理,得到预测差参数。

可选的,滤波指示参数包括以下至少之一:序列层滤波控制参数、图像层滤波控制参数、分片层滤波控制参数和块层滤波控制参数。

可选的,编码单元3005,具体用于:对滤波参数进行编码获得滤波参数的编码比特;将编码比特写入码流中的数据单元,其中,码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。

实施例四

参见图4,本公开的实施例提出了一种图像解码装置,包括解析单元4001、第一预测值构造单元4002、帧内预测值获得单元4003、预测差计算单元4004、第一解码值获得单元4005和解码恢复值获得单元4006:

解析单元4001,用于解析码流,获得解码块的帧内预测模式、滤波参数和预测差参数,滤波参数包括滤波指示参数;

第一预测值构造单元4002,用于根据解析单元4001解析的帧内预测模式构造解码块的第一预测值;

帧内预测值获得单元4003,用于若滤波指示参数指示对第一预测值构造单元4002构造的第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;

预测差计算单元4004,用于根据解析单元4001解析的预测差参数计算解码块的预测差;

第一解码值获得单元4005,用于计算帧内预测值获得单元4003获得的帧内预测值和预测差计算单元4004计算的预测差的和值,获得解码块的第一解码值;

解码恢复值获得单元4006,用于根据第一解码值获得单元4005获得的第一解码值获得解码块的解码恢复值。

可选的,解析单元4001,具体用于:解析码流中的一个或多个数据单元,获得滤波参数,其中,数据单元包括以下至少之一:一个或多个参数集,分片头,块层数据单元。

可选的,滤波参数包括滤波器参数,帧内预测值获得单元4003,具体用于:使用滤波器参数指示的滤波器对第一预测值进行滤波处理,得到帧内预测值。

可选的,滤波器参数指示的滤波器包括以下至少之一:固定系数的滤波器、可自适应调整系数的滤波器。

可选的,滤波器参数指示的滤波器包括:解码块的相邻已解码块的滤波器。

可选的,帧内预测值获得单元4003,还用于:若滤波指示参数指示不对第一预测值进行滤波处理,使用第一预测值设置帧内预测值。

可选的,预测差计算单元4004,具体用于:对预测差参数进行伸缩和变换处理,得到解码块的预测差。

可选的,解码恢复值获得单元4006,具体用于:对第一解码值进行环路滤波处理,得到解码块的解码恢复值。

可选的,滤波指示参数包括以下至少之一:序列层滤波控制参数、图像层滤波控制参数、分片层滤波控制参数和块层滤波控制参数。

实施例五

参见图5,为本发明实施例提供的一种编码器的系统架构示意图。编码器的输入是视频,编码器的输出是对输入视频进行编码后产生的码流。由于视频是由图像组成的图像序列,因此编码器的编码过程是对输入视频中的图像按照编码顺序依次进行编码。其中,编码顺序由编码器配置文件中设置的预测结构等参数来决定。需要说明的是,视频中图像的编码顺序(对应于解码端的解码顺序)与图像的播放顺序可以是相同的,也可以是不同的。

划分单元201对输入视频中的图像按照编码器的配置进行划分。通常,图像可以划分成多个最大编码单元。最大编码单元是一个正方形的图像区域。图像可以划分成一个或多个分片,每个分片中可以包含整数个最大编码单元,也可以包含非整数个最大编码单元。可选择地,图像还可以划分成一个或多个瓦片(tile),每个瓦片中可以包含整数个最大编码单元,也可以包含非整数个最大编码单元。划分单元201可以被配置为按照固定的方式对图像进行划分,也可以被配置为动态调整图像的划分方式。例如,为了适配网络的最大传输单元(maximumtransmissionunit,mtu),采用动态分片划分的方法,保证每个分片的编码比特数不超过mtu的限制。

预测单元202确定编码块的预测值,包括块划分单元203、运动估计单元204、运动补偿单元205和帧内预测单元206。预测单元202的输入是块划分单元输出的最大编码单元,以及与该最大编码单元相关的属性,例如最大编码单元在图像中的位置、在分片、瓦片中的位置等。预测单元202将最大编码单元划分为一个或多个编码块,划分得到的编码块可以进一步进行划分成更多的编码块。划分方式可以采用四叉树划分、二叉树划分、三叉树划分中的一种或多种。预测单元202对划分得到的编码块确定预测值。可选择地,预测单元202还可以进一步将编码块划分成一个或多个预测块来确定预测值。预测单元202使用解码图像缓冲区214中的已解码图像作为参考,确定编码块的帧间预测值,或者使用加法器212输出的当前编码图像中已恢复部分(未经过滤波单元213处理)作为参考,确定编码块的帧内预测值。预测单元202可以使用常用的rdo的方法,确定编码块的预测值以及得到该预测值使用的帧间预测、帧内预测相关的输出参数。

预测单元202中的块划分单元203确定编码块的块划分方式。块划分单元203可以将编码块划分成一个或多个编码块,划分得到的编码块可以进一步进行划分成更多的编码块。划分方式可以采用四叉树划分、二叉树划分、三叉树划分中的一种或多种。可选择地,对于编码块,块划分单元203还可以将编码块划分成一个或多个预测块。块划分单元203可以使用rdo方法,确定编码块的划分方式。块划分单元输出参数包括编码块的划分方式参数,这些参数用于指示编码块的划分方式。

运动估计单元204和运动补偿单元205使用来自于解码图像缓冲区214中的一个或多个已解码图像作为参考图像,确定编码块的帧间预测值。运动预测单元204使用参考图像,构造一个或多个参考图像列表,每个参考图像列表中包含一个或多个参考图像,确定编码块在参考图像中的匹配块。运动补偿单元205使用匹配块构造编码块的预测值,并且计算编码块与预测值之间的差值。运动预测单元204的输出用于指示匹配块位置的参数,包括参考图像列表指示、参考图像索引、运动矢量(motionvector,mv)等,其中,参考图像列表指示用于指示包含匹配块的参考图像所在的参考图像列表,参考图像索引用于指示参考图像列表中包含匹配块的参考图像,mv用于指示编码块与匹配块在同一个图像像素点坐标系下相互之间的相对位置偏移量。运动补偿单元205的输出还包括构造编码块预测值的参数,例如对匹配块的加权值、对匹配块进行滤波处理的滤波器类型和参数等。运动估计单元204和运动补偿单元205联合使用常用的rdo方法,为编码块确定率失真性能最优的匹配块以及两个单元的输出参数。

特殊地,可选择地,运动估计单元204和运动补偿单元205可以使用编码块所在的当前编码图像作为参考图像,获得编码块的帧内预测值。这里,帧内预测指的是仅使用编码块所在图像中的数据作为参考得到的预测值。在这种情况下,运动估计单元204和运动补偿单元205使用的是当前编码图像中已经部分恢复的部分(未经过滤波单元213处理),输入数据可以来自于加法器212的输出,例如使用一个图像缓冲区存储加法器212的输出数据,可选择地,这个图像缓冲区是解码图像缓冲区214中的一个特殊的图像缓冲区。

帧内预测单元206使用编码块所在图像中已经部分恢复的部分(未经过滤波单元213处理)确定编码块的预测值。帧内预测单元206以编码块相邻的已恢复像素作为滤波器的输入值来计算编码块的第一预测值。这里的滤波器可以是插值滤波器,也可以是低通滤波器(例如用于计算dc值的滤波器)。特殊地,帧内预测单元206在编码块所在图像中已经部分恢复的部分中搜索编码块的匹配块,将匹配块作为编码块的第一预测值。帧内预测单元206使用rdo的方法确定用于计算编码块第一预测值的方法(即帧内预测模式)以及第一预测值。

在计算得到第一预测值后,帧内预测单元206以编码块和第一预测值为自适应滤波器的输入,以最小化编码块与第一预测值之间的误差为目标,使用rdo的方法计算自适应滤波器的滤波参数,包括滤波器参数和滤波指示参数,其中,滤波指示参数用于指示是否需要对第一预测值执行滤波操作,滤波器参数指示了所使用的滤波器的滤波器系数。误差可以是数值误差准则,例如均方误差(meansquareerror,mse),也可以是与人眼视觉系统(humanvisualsystem,hvs)相关的感知误差准则。可选择地,如果自适应滤波器有多种的滤波器候选(例如一维滤波器、二维滤波器、不同阶数的一维滤波器、不同形状的二维滤波器等),滤波器参数还指示了对第一预测值进行滤波所使用的滤波器候选。可选择地,自适应滤波器可以是多级神经网络。

当滤波指示参数的取值指示对第一预测值进行滤波处理时,帧内预测单元206使用滤波器参数指示的滤波器对第一预测值进行滤波处理,得到帧内预测值,反之,将帧内预测值设置为第一预测值。

帧内预测单元206的输出参数包括用于指示帧内预测模式的参数和滤波参数。

加法器207用于计算编码块的原始值与预测值之间的预测差值。预测差值是变换单元208的输入值,变换单元208可以使用一种或多种变换方法对预测差值进行变换。从信号处理的角度,每一种变换方法都可以用一个变换矩阵来表示。变换单元208可以使用与编码块大小和形状相同的矩形块(这里,正方形是矩形的特种特例)作为预测差值的变换块,也可以将预测差值划分成多个矩形块(包括高度为一个像素情况)并分别对矩形块依次进行变换处理。可选择地,变换单元208可以对预测差值进行多次变换。在可以使用多种变换方法、对预测差值划分成多个矩形块进行变换、对预测差进行多次变换的情况下,变换单元208使用rdo的方法确定对预测差值的变换参数,变换参数与用于指示变换过程的执行方式。变换单元208将变换参数作为输出参数。变换单元208输出的是预测差值进行变换后得到的变换系数。

量化单元209用于对变换单元208输出的是预测差值进行变换后得到的变换系数进行量化处理。量化单元可以使用的量化器包括标量量化器和矢量量化器。通常,在视频编码器中,量化单元209使用标量量化器对变换系数进行量化,量化器的量化参数(quantizationparameter,qp)由编码器控制单元确定。例如,编码器控制单元可以使用已有的码率控制方法,确定量化器的量化步长,并根据编码器中量化步长与qp的对应关系确定qp。量化单元209的相关参数是qp。量化单元209输出的是变换系数的量化值。

反量化单元210使用与量化单元209相同的qp,对变换系数的量化值进行缩放(scaling)操作,得到变换系数的恢复值。反变换单元211使用与变换单元208中使用的变换的逆变换对变换系数的恢复值进行处理,得到预测差的恢复值。加法器212以预测差的恢复值和预测单元202输出的编码块的预测值为输入,计算编码块的恢复值,并将编码块的恢复值存储至图像缓冲区。图像缓冲区可以是对图像编码过程中单独分配的一段存储空间,也可以是解码图像缓冲区214中的一个的图像缓冲区。

滤波单元213对图像缓冲区中的数据进行滤波处理,得到图像的解码图像。滤波单元213可以是一种或多种滤波器级联构成。例如,在h.265/hevc标准中,滤波单元213由去方块滤波和采样值自适应加性偏移量补偿滤波器(sampleadaptiveoffset,sao)两个滤波器级联构成。滤波单元213也可以包括神经网络滤波器。可选择地,滤波单元213对图像缓冲区中的数据进行滤波的操作可以在图像层进行操作,即等待图像中的全部编码块的恢复值均写入了图像缓冲区后,对图像缓冲区中的数据进行滤波处理。可选择地,滤波单元213对图像缓冲区中的数据进行滤波的操作可以在块层进行操作,即当某个编码块的恢复数据不再用做后续编码块的参考数据时,对该编码块的恢复数据进行滤波处理。滤波单元213使用现有rdo方法确定滤波器参数,并将其作为滤波单元213的输出参数。滤波器参数包括所使用的滤波器的指示信息、滤波器系数、滤波器的控制参数。

编码器将滤波单元213输出的解码图像存储在解码图像缓冲区214中。编码器可以为解码图像缓冲区214确定解码图像管理相关的参数指令,用于控制解码图像在解码图像缓冲区214中的存储时长和输出等操作。在本实施例中,这些参数指令可作为解码图像缓冲区214的输出参数。

熵编码单元215对图像的编码数据进行二值化和熵编码,将参数转换为符合标准的由一个或多个“0”、“1”比特组成的字段,并根据标准中码流语法结构将字段组织成码流。的编码数据包括图像的纹理数据和非纹理数据。其中,纹理数据主要是编码块的变换系数的量化值;非纹理数据包括除纹理数据外的其他所有数据,包括前述编码器中各单元的输出参数、以及参数集、头信息、辅助信息等参数。熵编码单元215根据视频编码标准的码流组织形式生成码流。

实施例六:

参见图6,为本发明实施例提供的一种解码器的系统架构示意图,用于解码前述编码器所产生的码流。解码器的输入是码流,输出是对输入码流进行解码后产生的解码视频。

解码器中的解析单元301对输入码流进行解析,使用标准中规定的熵解码方法和二值化方法,将码流中各字段对应的一个或多个“0”、“1”比特串转换成对应参数的取值。解析单元301根据参数的取值,推导得到其他参数的取值,例如,当码流中的标志位取值指示解码块是图像中的第一个解码块时,将用于指示解码块所在分片中第一个解码块在图像中的地址参数设置为0。

解析单元301将用于构造解码块预测值的参数传递给预测单元302。这里,用于构造解码块预测值的参数包括前述编码器中划分单元201、预测单元202的输出参数。

解析单元301将用于构造解码块预测差恢复值的参数传递给反量化单元305、反变换单元306。这里,用于构造解码块预测差恢复值的参数包括前述编码器中变换单元208、量化单元209的输出参数,以及前述编码器中量化参数209输出的变换系数的量化值。

预测单元302根据用于构造解码块预测值的参数构造解码块的预测值。预测单元302包括运动补偿单元303和帧内预测单元304。预测单元的输入还包括加法器307输出的当前解码图像中已经部分恢复的部分(未经过滤波单元308处理)、解码图像缓冲区309中存储的已解码图像。

当参数指示解码块使用帧间预测时,预测单元302使用与前述编码器中运动预测单元204相同的方法,构造一个或多个参考图像列表,每个参考图像列表中包含一个或多个参考图像,参考图像来自于解码图像缓冲区309。运动补偿单元303根据解析单元301所传递的参考图像列表指示、参考图像索引、运动矢量,在参考图像中确定解码块的一个或多个匹配块,使用与前述编码器中运动补偿单元205相同的方法确定帧间预测值。预测单元302将运动补偿单元303输出的帧间预测值作为解码块的预测值。

特殊地,可选择地,运动补偿单元303可以使用解码块所在的当前解码图像作为参考图像,获得解码块的帧内预测值。这里,帧内预测指的是仅使用解码块所在图像中的数据作为参考得到的预测值。在这种情况下,运动补偿单元303使用的是当前解码图像中已经部分恢复的部分(未经过滤波单元308处理),输入数据可以来自于加法器307的输出,例如使用一个图像缓冲区存储加法器307的输出数据,可选择地,这个图像缓冲区是解码图像缓冲区309中的一个特殊的图像缓冲区。

当参数指示解码块使用帧内预测时,预测单元302使用与前述编码器中帧内预测单元206相同的方法确定解码块的相邻已恢复像素点,用做帧内预测单元304的参考像素点。帧内预测单元306根据用于构造解码块预测值的参数,确定帧内预测模式,使用与前述编码器中帧内预测单元206相同的方法计算解码块的第一预测值。特殊地,用于构造解码块预测值的参数指示了解码块的匹配块在当前部分解码图像中的位置时,将匹配块作为解码块的第一预测值。当用于构造解码块预测值的参数中包含滤波参数时,在滤波参数中的滤波指示参数的取值指示对第一预测值进行滤波处理时,帧内预测单元206使用滤波参数中的滤波器参数指示的滤波器对第一预测值进行滤波处理,得到帧内预测值,反之,将帧内预测值设置为第一预测值。预测单元302将帧内预测单元304输出的帧内预测值作为解码块的预测值。

解码器将用于构造解码块预测差恢复值的参数中qp和变换系数的量化值作为反量化单元305的输入。反量化单元305使用qp,对变换系数的量化值进行缩放操作,得到变换系数的恢复值。因此,解码器中的反量化单元也可以称为缩放(scaling)单元。

解码器将反量化单元305输出的变换系数的恢复值、用于构造解码块预测差恢复值的参数中前述编码器中变换单元208所输出的变换参数作为反变换单元306的输入值。反变换单元306使用与前述编码器中反变换单元211相同的方法计算得到解码块的预测差的恢复值。这里需要说明的是,这里的“反变换”是相对于编码器中的“变换”来说的。在视频编码标准中,规定的是反变换单元306所使用的变换方法,即解码器将变换系数的恢复值转换为预测差的恢复值所使用的变换方法。

加法器307以反变换单元306输出的预测差的恢复值和预测单元302输出的解码块的预测值为输入,计算解码块的恢复值,并将解码块的恢复值存储至图像缓冲区。图像缓冲区可以是对图像解码过程中单独分配的一段存储空间,也可以是解码图像缓冲区309中的一个的图像缓冲区。

解码器将解析单元301输出的滤波器参数传递给滤波单元308。滤波器参数是前述编码器中滤波单元213的输出参数,包括所使用的滤波器的指示信息、滤波器系数、滤波器的控制参数。滤波单元308使用滤波器参数对图像缓冲区中的数据进行滤波处理,得到图像的解码图像。滤波单元308可以是一种或多种滤波器级联构成。例如,在h.265/hevc标准中,滤波单元308由去方块滤波和采样值自适应加性偏移量补偿滤波器(sampleadaptiveoffset,sao)两个滤波器级联构成。滤波单元308也可以包括神经网络滤波器。可选择地,滤波单元308对图像缓冲区中的数据进行滤波的操作可以在图像层进行操作,即等待图像中的全部解码块的恢复值均写入了图像缓冲区后,对图像缓冲区中的数据进行滤波处理。可选择地,滤波单元308对图像缓冲区中的数据进行滤波的操作可以在块层进行操作,即当某个解码块的恢复数据不再用做后续解码块的参考数据时,对该解码块的恢复数据进行滤波处理。

解码器将滤波单元308输出的解码图像存储在解码图像缓冲区309中。进一步地,解码器使用解析单元301输出的解码图像管理相关的参数指令(即前述编码器中解码图像缓冲区214的输出参数),控制解码图像在解码图像缓冲区309中的存储时长和输出等操作。

实施例七:

参见图7,为本发明实施例提供的一种编码器的帧内预测单元的结构示意图。帧内预测单元206包含第一预测值计算单元401和自适应滤波单元402。

需要说明的是,数据流指的是软件实现上函数的入口参数和返回参数,硬件实现上总线上传递的数据、存储单元之间共享的数据(包括寄存器共享数据)等。

第一预测值计算单元401的输入数据包括数据流40和数据流41,输出数据是数据流42。数据流40是前述编码器中块划分单元201输出数据,是编码块的原始值。数据流41是前述编码器在编码该编码块之前,加法器212输出数据,是当前编码图像中已经部分恢复的部分数据(未经过前述编码器中滤波单元213处理)。数据流42是第一预测值计算单元401的输出数据,是编码块的第一预测值。

自适应滤波单元402的输入数据是数据流40、数据流42和数据流43,输出数据是数据流43。数据流43是对数据流42进行自适应滤波处理后的输出值,是编码块的帧内预测值。在确定自适应滤波单元402的滤波参数(包括滤波器参数和滤波指示参数)的过程中,数据流43作为反馈数据重新输入自适应滤波单元402。特殊地,自适应滤波单元402不对数据流42进行滤波的情况下,帧内预测单元206直接将数据流42作为自适应滤波单元402的输出数据流43。

具体的,第一预测值计算单元401可使用帧内预测方法1和帧内预测方法2计算第一预测值,输出数据流42。

图7所示的帧内预测方法1中,“curr”表示的是编码块,其相邻已解码像素点使用灰色表示。图7中,示例性地标示出编码块的上相邻和左相邻已解码像素点。在多种不同的编码顺序下,编码块的右相邻或下相邻也可能存在已解码像素点。帧内预测方法1包含一种或多种帧内预测模式,例如,直流预测模式、平面预测模式、方向性插值预测模式等。在使用帧内预测方法1时,第一预测计算单元401输出的是指示所使用的帧内预测模式的参数。

图7所示的帧内预测方法2中,“curr”表示的是编码块,灰色区域表示对编码块进行编码前,编码块所在图像中已经部分恢复的部分数据,“ref”表示编码块的匹配块。在使用帧内预测方法2时,第一预测值计算单元401输出的是指示构造匹配块的参数,例如,匹配块在图像中的位置参数。帧内预测方法2也可以包含一种或多种帧内预测模式,例如,块匹配模式、串匹配模式等。

通常情况下,第一预测计算单元401使用帧内预测方法1。在允许第一预测计算单元401使用帧内预测方法2的编码器中,第一预测计算单元401需要输出帧内预测方法的指示信息,用于标识使用帧内预测方法1还是帧内预测方法2计算编码块的第一预测值。

实际应用中,第一预测值计算单元401使用已有rdo的方法为编码块选择帧内预测模式,计算第一预测值,并将其作为数据流42输出给自适应环路滤波单元402。第一预测值计算单元401的输出参数是编码块的帧内预测模式指示信息。

需要说明的是,自适应滤波单元402中,可以包含有一种或多种候选滤波器,包括固定系数的候选滤波器和可自适应调整系数的候选滤波器。候选滤波器可包括一维滤波器、二维滤波器、不同阶数的一维滤波器、不同形状的二维滤波器、多级神经网络等。

其中,若自适应滤波单元402包含固定系数的候选滤波器,自适应滤波单元402使用该候选滤波器对输入数据流42进行滤波处理得到数据流43,计算数据流43与数据流40之间的误差以及编码该候选滤波器参数信息所需的比特开销。若存在多个固定系数的候选滤波器,自适应滤波单元402使用已有的rdo方法,从多个候选滤波器中选择能够使得rdo的代价函数值达到最优的固定系数的候选滤波器,并将使用该滤波器对数据流42的滤波结果作为数据流43。

若自适应滤波单元402包含可自适应调整系数的候选滤波器,自适应滤波单元402初始化滤波器,使用该候选滤波器对输入数据流42进行滤波处理得到数据流43,计算数据流43与数据流40之间的误差,根据误差调整滤波器参数。误差可以是数值误差准则,例如,mse,也可以是与hvs相关的感知误差准则。自适应滤波单元402可以使用调整后的滤波器参数对数据流42再次进行滤波并计算数据流42与数据流43之间的误差以调整滤波器参数。自适应滤波单元402可迭代地执行上述过程,直到达到指定的迭代次数或误差不再明显减小(例如误差值小于阈值,或经过一次迭代后误差值的下降量小于阈值)。这是一种以最小化滤波误差为目标的迭代滤波过程。

可选择地,自适应滤波单元402在误差计算后可进一步计算编码该候选滤波器参数信息所需的比特开销,计算已有rdo方法的代价函数,以最小化代价函数为目标执行上述迭代滤波过程。若存在多个不同的可自适应调整系数的候选滤波器,自适应滤波单元在确定了候选滤波器的滤波参数和滤波误差后,自适应滤波单元402使用已有的rdo方法,从多个候选滤波器中选择能够使得rdo的代价函数值达到最优的滤波器及滤波器参数,并将使用该滤波器对数据流42的滤波结果作为数据流43。

可选择地,为降低计算复杂度,如果编码块的相邻块使用帧内预测模式进行编码、并且使用了自适应滤波对第一预测值进行滤波,自适应滤波单元402在确定编码块的滤波参数的过程中,可以直接将使用相邻块的滤波参数初始化滤波器,并将使用相邻块的滤波参数的滤波器作为一个候选滤波器。若使用相邻块的滤波参数所获得的rdo方法下的代价函数值最小,自适应滤波单元402的输出参数可以是指示“使用相邻块滤波参数”。

可以理解的是,在固定系数的候选滤波器和可自适应调整系数的候选滤波器均可以使用的情况下,自适应滤波单元402使用已有的rdo方法,从两类候选滤波器中选择能够使得rdo的代价函数值达到最优的滤波器及滤波器参数。自适应滤波单元402将使用最优滤波器对数据流42的滤波结果作为数据流43。

自适应滤波单元402的输出参数是滤波参数,包括滤波器参数和滤波指示参数。其中,滤波指示参数用于指示是否需要对第一预测值执行滤波操作,滤波器参数指示了所使用的滤波器的滤波器系数。

帧内预测单元206将数据流43作为编码块的帧内预测值。帧内预测单元206将第一预测值计算单元401的输出参数和自适应滤波单元402的输出参数。

需要说明的是,前述帧内预测单元206的实施方法中,对第一预测值计算单元401和自适应滤波单元402分别使用已有rdo方法,确定最优的帧内预测模式和滤波参数。可选择地,帧内预测单元206也可以使用已有的全局最优化的方法,同时对第一预测值计算单元401和自适应滤波单元402使用已有rdo方法,确定联合最优的帧内预测模式和滤波参数。

实施例八

参见图8,为本发明实施例提供的编码器中熵编码单元对帧内预测单元输出参数进行编码的数据处理的流程示意图。具体为,前述编码器中熵编码单元215在编码块使用帧内预测模式时,对帧内预测单元206输出参数进行编码。处理流程的输入是帧内预测单元206输出参数,处理流程的输出是帧内预测模式和自适应滤波器的滤波参数对应的码流。

步骤501,编码帧内预测模式;

实际应用中,熵编码单元215对编码块的帧内预测模式进行编码。具体方便包括以下两种情况:

情况1:编码器仅使用帧内预测单元206的第一预测值计算单元401中帧内预测方法1。

熵编码单元215首先根据编码块相邻已编码块的帧内预测模式,推导编码块可能使用的一种或多种最可能使用的帧内预测模式。

如果编码块使用的帧内预测模式是最可能使用的帧内预测模式中的一种帧内预测模式,熵编码单元215编码标志位,标志位的取值设置为指示“编码块使用的帧内预测模式是最可能使用的帧内预测模式中的模式”;如果最可能使用的帧内预测模式中包含的模式多于一种,熵编码单元215编码编码块使用的帧内预测模式在最可能使用的帧内预测模式中的索引序号。

如果编码块使用的帧内预测模式是最可能使用的帧内预测模式中的一种帧内预测模式,编码编码块使用的帧内预测模式在除最可能使用的帧内预测模式中的帧内预测模式外的其他帧内预测模式中的索引序号。

情况2:编码器使用帧内预测单元206的第一预测值计算单元401中帧内预测方法1和帧内预测方法2。

编码用于指示编码块的帧内预测模式属于帧内预测方法1还是帧内预测方法2的标识信息。一种可选择的使用方法是,熵编码单元215编码一个标志位指示上述信息。一种可选择使用的方法是,编码块的帧内预测标记仅用于指示编码块使用的是帧内预测方法1中的帧内预测模式;当编码块使用帧内预测方法2时,熵编码单元215将编码块的帧内预测标记编码为“否”,将编码块的参考图像索引编码为指示“编码块使用的参考图像是编码块所在图像”对应的取值。可选择地,熵编码单元215可进一步编码与帧内预测方法2相关的字段,用于指示编码块使用的帧内预测模式,帧内预测方法2中可包括的帧内预测模式有块匹配模式、串匹配模式等,熵编码单元215继续编码用于确定匹配块、匹配串相关的参数,参数用于确定匹配块、匹配串在编码块所在图像中的位置。

步骤502,编码滤波指示参数。

其中,滤波指示参数用于指示是否需要对第一预测值执行滤波操作。滤波指示参数包括以下至少之一的控制参数:序列层滤波控制参数,图像层滤波控制参数,分片层滤波控制参数,块层滤波控制参数。

需要说明的是,序列层滤波控制参数用于指示是否需要对整个视频中的图像使用自适应滤波。当序列层滤波控制参数的取值指示为“是”时,自适应滤波单元402可以对编码块的第一预测值进行滤波(也可以不对编码块进行滤波);反之,当序列层滤波控制参数的取值指示为“否”时,自适应滤波单元402不对编码块的第一预测值进行滤波。熵编码单元215在有效范围可以是整个视频的参数集中编码序列层滤波控制参数。序列层滤波控制参数包含的滤波控制信息包括以下至少之一:

-所述序列层滤波控制参数包含一个或多个标志位,所述标志位指示是否需要对视频序列中使用帧内预测模式的编码块的第一预测值进行滤波处理;

-所述序列层滤波控制参数包含一个或多个编码块大小的第一预设取值,所述第一预设取值指示了需要对视频序列中大小等于所述第一预设取值的编码块的第一预测值进行滤波处理;

-所述序列层滤波控制参数包含一个或多个帧内预测模式的第二预设取值,所述第二预设取值指示了需要对视频序列中使用所述第二预设取值指示的帧内预测模式的编码块的第一预测值进行滤波处理。

图像层滤波控制参数用于指示是否需要对一个图像使用自适应滤波。当图像层滤波控制参数的取值指示为“是”时,自适应滤波单元402可以对编码块的第一预测值进行滤波(也可以不对编码块进行滤波);反之,当序列层滤波控制参数的取值指示为“否”时,自适应滤波单元402不对编码块的第一预测值进行滤波。熵编码单元215在有效范围可以是一个图像的参数集中编码图像层滤波控制参数。图像层滤波控制参数包含的滤波控制信息包括以下至少之一:

-所述图像层滤波控制参数包含一个或多个标志位,所述标志位指示是否需要对图像中使用帧内预测模式的编码块的第一预测值进行滤波处理;

-所述图像层滤波控制参数包含一个或多个编码块大小的第三预设取值,所述第三预设取值指示了需要对图像中大小等于所述第三预设取值的编码块的第一预测值进行滤波处理;

-所述图像层滤波控制参数包含一个或多个帧内预测模式的第四预设取值,所述第四预设取值指示了需要对图像中使用所述第四预设取值指示的帧内预测模式的编码块的第一预测值进行滤波处理。

分片层滤波控制参数用于指示是否需要对一个分片使用自适应滤波。当分片层滤波控制参数的取值指示为“是”时,自适应滤波单元402可以对编码块的第一预测值进行滤波(也可以不对编码块进行滤波);反之,当分片层滤波控制参数的取值指示为“否”时,自适应滤波单元402不对编码块的第一预测值进行滤波。熵编码单元215在分片头中编码分片层滤波控制参数。分片层滤波控制参数包含的滤波控制信息包括以下至少之一:

-所述分片层滤波控制参数包含一个或多个标志位,所述标志位指示是否需要对分片中使用帧内预测模式的编码块的第一预测值进行滤波处理;

-所述分片层滤波控制参数包含一个或多个编码块大小的第五预设取值,所述第五预设取值指示了需要对分片中大小等于所述第五预设取值的编码块的第一预测值进行滤波处理;

-所述分片层滤波控制参数包含一个或多个帧内预测模式的第六预设取值,所述第六预设取值指示了需要对分片中使用所述第六预设取值指示的帧内预测模式的编码块的第一预测值进行滤波处理。

块层滤波控制参数用于指示是否需要对一个块使用自适应滤波。当块层滤波控制参数的取值指示为“是”时,自适应滤波单元402对编码块的第一预测值进行滤波;反之,当分片层滤波控制参数的取值指示为“否”时,自适应滤波单元402不对编码块的第一预测值进行滤波。熵编码单元215在编码块的数据单元中编码块层滤波控制参数。块层滤波控制参数包含的滤波控制信息包括以下至少之一:

-所述块层滤波控制参数包含一个或多个标志位,所述标志位指示是否对所述编码块的第一预测值进行滤波处理;

-所述块层滤波控制参数包含一个或多个编码块大小的第七预设取值,用于指示当所述编码块的大小等于所述第七预设取值时对所述编码块的第一预测值进行滤波处理;

-所述块层滤波控制参数包含一个或多个帧内预测模式的第八预设取值,用于指示当所述编码块的帧内预测模式与所述第八预设取值指示的帧内预测模式相同时,对所述编码块的第一预测值进行滤波处理。

需要说明的是,熵编码单元215执行步骤502完成的是对块层滤波控制参数的编码。如果编码器使用了序列层滤波控制参数、图像层滤波控制参数、分片层滤波控制参数中的一种或多种,熵编码单元215需要在生成对应参数集的过程中编码序列层滤波控制参数、图像层滤波控制参数,熵编码单元215需要在编码分片头的过程中编码分片层滤波控制参数。编码器可以根据配置文件来设置序列层、图像层、分片层滤波控制参数,也可以使用rdo方法动态确定上述控制参数的取值。其中,配置文件中记载的是用于对编码器进行初始化过程中的参数设置。

需要说明的是,从控制的范围来说,序列层的范围大于图像层,图像层的范围大于分片层,分片层的范围大于块层。通常情况下,控制参数的控制机制是:控制范围大的控制参数指示“可以使用”时,编码控制范围小的控制参数,用于在这个较小的控制范围内指示“是否可以使用”。特别地,对于块层滤波控制参数,如果一个编码块划分成了多个子块,那么这个编码块的块层滤波控制参数的控制范围大于子块,即当这个编码块的块层滤波控制参数指示“不使用”的时候,子块不使用自适应滤波,熵编码单元215不需要编码子块的块层滤波控制参数。

可选择地,编码器可以配置为仅对使用指定的帧内预测模式得到的第一预测值进行滤波处理。例如,仅对使用帧内预测方法2的编码块的第一预测值进行滤波处理;或者仅对使用帧内预测方法1中的一个或多个帧内预测模式进行滤波处理,例如dc模式、平面模式。在这种情况下,在块层,只有当编码块使用这些帧内预测模式时,熵编码单元215才编码块层滤波控制参数。或者,在控制范围大于块层的滤波控制参数指示“可以使用”的情况下,当编码块使用这些帧内预测模式时,编码器对编码块的第一预测值进行滤波,熵编码单元215无需编码块层滤波控制参数。

步骤503,熵编码单元215判断编码块的块层滤波控制参数是否指示需要对编码块的第一预测值进行滤波。若判断结果为“是”,则执行步骤504;反之,若判断结果为“否”,则执行步骤507。

步骤504,熵编码单元215判断编码块的滤波器参数是否指示了“使用相邻块编码块的滤波器参数”。若判断结果为“是”,则执行步骤505;反之,若判断结果为“否”,则执行步骤506。

步骤505,熵编码单元215编码该编码块的滤波器参数指示的编码块的位置信息。

其中,位置信息可以是编码块所在图像中的已编码块的位置,例如,编码块的左相邻编码块、上相邻编码块,编码块与其滤波器参数指示的编码块之间在同一坐标系下的位置偏移量等。

可选择地,位置信息还可以是编码块的时域相邻块的位置。时域相邻块是与编码块不在同一个图像中的编码块。时域相邻块可以是固定位置的块,例如其他已编码图像中与编码块位于同位置的块,也可以是使用位置偏移量指示的编码块。

步骤506,熵编码单元215编码该编码块的滤波器参数。

步骤507,熵编码单元215对编码块的帧内预测模式及滤波参数的编码过程结束。

熵编码单元215将该编码过程中生成的码流写入输出码流。

实施例九

参见图9,为本发明实施例提供的一种解码器的帧内预测单元的结构示意图。可以用于在对视频图像码流进行解码的过程中构造解码块的帧内预测值,对解码块进行解码。帧内预测单元304包含第一预测值计算单元601和自适应滤波单元602。

第一预测值计算单元601的输入数据包括数据流60和数据流61,输出数据是数据流62。数据流60是前述解码器中解析单元301输出数据,指示了解码块的帧内预测模式。数据流61是前述解码器在解码该解码块之前,加法器307的输出数据,是当前解码图像中已经部分恢复的部分数据(未经过前述解码器中滤波单元308处理)。数据流62是第一预测值计算单元601的输出数据,是解码块的第一预测值。

自适应滤波单元602的输入数据是数据流62和数据流63,输出数据是数据流64。数据流64是对数据流62进行自适应滤波处理后的输出值,是解码块的帧内预测值。数据流63是解析单元301输出数据,是自适应滤波单元602使用的滤波参数,包括滤波器参数和滤波指示参数,其中,滤波指示参数用于指示是否需要对第一预测值执行滤波操作,滤波器参数指示了所使用的滤波器的滤波器系数。特殊地,自适应滤波单元602不对数据流62进行滤波的情况下,帧内预测单元304直接将数据流62作为自适应滤波单元602的输出数据流64。

需要说明的是,前述解码器中帧内预测单元304的第一预测值计算单元601可使用帧内预测方法1和帧内预测方法2计算第一预测值,输出数据流62。

图9所示的帧内预测方法1中,“curr”表示的是解码块,其相邻已解码像素点使用灰色表示。图9中,示例性地标示出解码块的上相邻和左相邻已解码像素点。在多种不同的解码顺序下,解码块的右相邻或下相邻也可能存在已解码像素点。帧内预测方法1包含一种或多种帧内预测模式,例如,直流预测模式、平面预测模式、方向性插值预测模式等。在使用帧内预测方法1时,第一预测计算单元601输出的是使用数据流60指示的帧内预测模式获得的解码块的第一预测值。

图9所示的帧内预测方法2中,“curr”表示的是解码块,灰色区域表示对解码块进行解码前,解码块所在图像中已经部分恢复的部分数据,“ref”表示解码块的匹配块。在使用帧内预测方法2时,第一预测值计算单元601输出的是使用数据流60指示的匹配参数获得的解码块的第一预测值。匹配参数包括了构造匹配块的参数,例如匹配块在图像中的位置参数。第一预测值计算单元601使用匹配块构造解码块的第一预测值。例如,将匹配块作为第一预测值,或者,对匹配块进行加权处理。帧内预测方法2也可以包含一种或多种帧内预测模式,例如,块匹配模式、串匹配模式等。

通常情况下,第一预测计算单元601使用帧内预测方法1。在允许第一预测计算单元601使用帧内预测方法2的解码器中,第一预测计算单元601根据数据流60中的帧内预测方法的指示信息,确定在解码该解码块的过程中使用帧内预测方法1还是帧内预测方法2计算解码块的第一预测值。第一预测值计算单元601将得到的第一预测值作为数据流62输出给自适应环路滤波单元602。

实际应用中,自适应滤波单元602中,可以包含有一种或多种候选滤波器,包括固定系数的候选滤波器和可自适应调整系数的候选滤波器。候选滤波器可包括一维滤波器、二维滤波器、不同阶数的一维滤波器、不同形状的二维滤波器、多级神经网络等。自适应滤波单元602使用数据流63中的滤波参数,对数据流62进行滤波处理,得到数据流64。帧内预测单元304将数据流64作为解码块的帧内预测值。

实施例十

参见图10,为本发明实施例提供的解码器中解析单元对解码块码流中的帧内预测模式和滤波参数进行解析的数据处理的流程示意图。处理流程的输入是输入码流中帧内预测模式和自适应滤波器的滤波参数对应的码流,输出是帧内预测模式和滤波参数。前述解码器将帧内预测模式是作为帧内预测单元304中第一预测值计算单元601的输入数据流60,前述解码器将滤波参数设置为帧内预测单元304中自适应滤波单元602的输入数据流63。

步骤701,解析单元301解析码流,获得解码块的帧内预测模式。

情况1:解码器仅使用帧内预测单元304的第一预测值计算单元601中帧内预测方法1。

解析单元301首先根据解码块相邻已解码块的帧内预测模式,推导解码块可能使用的一种或多种最可能使用的帧内预测模式。

解析单元301解析标志位,标志位的取值指示“解码块使用的帧内预测模式是否是最可能使用的帧内预测模式中的模式”。若“是”,如果最可能使用的帧内预测模式中只包含一种帧内预测模式,解析单元301将该帧内预测模式设置为解码块的帧内预测模式;如果最可能使用的帧内预测模式中只包含多种帧内预测模式,解析单元301解析索引序号,将最可能使用的帧内预测模式中对应于该索引序号的帧内预测模式设置为解码块的帧内预测模式。反之,若标志位的取值指示为“否”,解析单元301解析索引序号,将解码块使用的帧内预测模式设置为在除最可能使用的帧内预测模式中的帧内预测模式外的其他帧内预测模式中该索引序号对应的帧内预测模式。

情况2:解码器使用帧内预测单元304的第一预测值计算单元601中帧内预测方法1和帧内预测方法2。

解析单元301解析用于指示解码块的帧内预测模式属于帧内预测方法1还是帧内预测方法2的标识信息。一种可选择的使用方法是,解析单元301解析一个指示上述信息的标志位。一种可选择使用的方法是,解析单元301解析解码块的帧内预测标记为“否”且解码块的参考图像索引指示“解码块使用的参考图像是解码块所在图像”时,将解码块的帧内预测模式设置为帧内预测方法2。可选择地,解析单元301可进一步解析码流中与帧内预测方法2相关的字段,确定解码块使用的帧内预测模式,帧内预测方法2中可包括的帧内预测模式有块匹配模式、串匹配模式等,解析单元301继续解析码流,获得确定匹配块、匹配串相关的参数用于确定匹配块、匹配串在解码块所在图像中的位置。

步骤702,解码滤波指示参数。

滤波指示参数用于指示是否需要对第一预测值执行滤波操作。滤波指示参数包括以下至少之一的控制参数:序列层滤波控制参数,图像层滤波控制参数,分片层滤波控制参数,块层滤波控制参数。

序列层滤波控制参数用于指示是否需要对整个视频中的图像使用自适应滤波。当序列层滤波控制参数的取值指示为“是”时,自适应滤波单元602可以对解码块的第一预测值进行滤波(也可以不对解码块进行滤波);反之,当序列层滤波控制参数的取值指示为“否”时,自适应滤波单元602不对解码块的第一预测值进行滤波。解析单元301解析有效范围是整个视频的参数集获得序列层滤波控制参数。序列层滤波控制参数包含的滤波控制信息包括以下至少之一:

-所述序列层滤波控制参数包含一个或多个标志位,所述标志位指示是否需要对视频序列中使用帧内预测模式的解码块的第一预测值进行滤波处理;

-所述序列层滤波控制参数包含一个或多个解码块大小的第一预设取值,所述第一预设取值指示了需要对视频序列中大小等于所述第一预设取值的解码块的第一预测值进行滤波处理;

-所述序列层滤波控制参数包含一个或多个帧内预测模式的第二预设取值,所述第二预设取值指示了需要对视频序列中使用所述第二预设取值指示的帧内预测模式的解码块的第一预测值进行滤波处理。

图像层滤波控制参数用于指示是否需要对一个图像使用自适应滤波。当图像层滤波控制参数的取值指示为“是”时,自适应滤波单元602可以对解码块的第一预测值进行滤波(也可以不对解码块进行滤波);反之,当序列层滤波控制参数的取值指示为“否”时,自适应滤波单元602不对解码块的第一预测值进行滤波。解析单元301解析有效范围是一个图像的参数集获得图像层滤波控制参数。图像层滤波控制参数包含的滤波控制信息包括以下至少之一:

-所述图像层滤波控制参数包含一个或多个标志位,所述标志位指示是否需要对图像中使用帧内预测模式的解码块的第一预测值进行滤波处理;

-所述图像层滤波控制参数包含一个或多个解码块大小的第三预设取值,所述第三预设取值指示了需要对图像中大小等于所述第三预设取值的解码块的第一预测值进行滤波处理;

-所述图像层滤波控制参数包含一个或多个帧内预测模式的第四预设取值,所述第四预设取值指示了需要对图像中使用所述第四预设取值指示的帧内预测模式的解码块的第一预测值进行滤波处理。

分片层滤波控制参数用于指示是否需要对一个分片使用自适应滤波。当分片层滤波控制参数的取值指示为“是”时,自适应滤波单元602可以对解码块的第一预测值进行滤波(也可以不对解码块进行滤波);反之,当分片层滤波控制参数的取值指示为“否”时,自适应滤波单元602不对解码块的第一预测值进行滤波。解析单元301解析分片头获得分片层滤波控制参数。分片层滤波控制参数包含的滤波控制信息包括以下至少之一:

-所述分片层滤波控制参数包含一个或多个标志位,所述标志位指示是否需要对分片中使用帧内预测模式的解码块的第一预测值进行滤波处理;

-所述分片层滤波控制参数包含一个或多个解码块大小的第五预设取值,所述第五预设取值指示了需要对分片中大小等于所述第五预设取值的解码块的第一预测值进行滤波处理;

-所述分片层滤波控制参数包含一个或多个帧内预测模式的第六预设取值,所述第六预设取值指示了需要对分片中使用所述第六预设取值指示的帧内预测模式的解码块的第一预测值进行滤波处理。

块层滤波控制参数用于指示是否需要对一个块使用自适应滤波。当块层滤波控制参数的取值指示为“是”时,自适应滤波单元602对解码块的第一预测值进行滤波;反之,当分片层滤波控制参数的取值指示为“否”时,自适应滤波单元602不对解码块的第一预测值进行滤波。解析单元301解析解码块的数据单元获得块层滤波控制参数。块层滤波控制参数包含的滤波控制信息包括以下至少之一:

-所述块层滤波控制参数包含一个或多个标志位,所述标志位指示是否对所述解码块的第一预测值进行滤波处理;

-所述块层滤波控制参数包含一个或多个解码块大小的第七预设取值,用于指示当所述解码块的大小等于所述第七预设取值时对所述解码块的第一预测值进行滤波处理;

-所述块层滤波控制参数包含一个或多个帧内预测模式的第八预设取值,用于指示当所述解码块的帧内预测模式与所述第八预设取值指示的帧内预测模式相同时,对所述解码块的第一预测值进行滤波处理。

需要说明的是,解析单元301执行步骤702获得的是块层滤波控制参数。如果解析单元301通过解析码流获得了序列层滤波控制参数、图像层滤波控制参数、分片层滤波控制参数中的一种或多种,需要说明的是,从控制的范围来说,序列层的范围大于图像层,图像层的范围大于分片层,分片层的范围大于块层。通常情况下,控制参数的控制机制是:控制范围大的控制参数指示“可以使用”时,需要进一步解析控制范围小的控制参数,用于在这个较小的控制范围内指示“是否可以使用”。特别地,对于块层滤波控制参数,如果一个解码块划分成了多个子块,那么这个解码块的块层滤波控制参数的控制范围大于子块,即当这个解码块的块层滤波控制参数指示“不使用”的时候,子块不使用自适应滤波,解析单元301不需要解析子块的块层滤波控制参数。

可选择地,解码器可以配置为仅对使用指定的帧内预测模式得到的第一预测值进行滤波处理。例如,仅对使用帧内预测方法2的解码块的第一预测值进行滤波处理;或者仅对使用帧内预测方法1中的一个或多个帧内预测模式进行滤波处理,例如dc模式、平面模式。在这种情况下,在块层,只有当解码块使用这些帧内预测模式时,解析单元301才解析块层滤波控制参数。或者,在控制范围大于块层的滤波控制参数指示“可以使用”的情况下,当解码块使用这些帧内预测模式时,解码器对解码块的第一预测值进行滤波,解析单元301无需解析解码块的块层滤波控制参数。

步骤703,解析单元301判断解码块的块层滤波控制参数是否指示需要对解码块的第一预测值进行滤波。若判断结果为“是”,则执行步骤704;反之,若判断结果为“否”,则执行步骤707。

步骤704,解析单元301判断解码块的滤波器参数是否指示了“使用相邻块解码块的滤波器参数”。若判断结果为“是”,则执行步骤705;反之,若判断结果为“否”,则执行步骤706。

步骤705,解析单元301解析解码块的滤波器参数指示的解码块的位置信息,将所滤波器参数指示的解码块所使用的滤波器参数设置为解码块的滤波器参数。

位置信息指示的可以是解码块所在图像中的已解码块的位置,例如,解码块的左相邻解码块、上相邻解码块,解码块与其滤波器参数指示的解码块之间在同一坐标系下的位置偏移量等。

可选择地,位置信息指示的可以是解码块的时域相邻块的位置。时域相邻块是与解码块不在同一个图像中的解码块。时域相邻块可以是固定位置的块,例如其他已解码图像中与解码块位于同位置的块,也可以是使用位置偏移量指示的解码块。

步骤506,解析单元301解析解码块的滤波器参数。

步骤507,解析单元301解析解码块的帧内预测模式及滤波参数的过程结束。

前述解码器将帧内预测模式是作为帧内预测单元304中第一预测值计算单元601的输入数据流60,前述解码器将滤波参数设置为帧内预测单元304中自适应滤波单元602的输入数据流63。

实施例十一

参见图11,为本发明实施例提供的包含编码器的电子设备的结构示意图。

采集单元801采集视频或图像。采集单元801可以是包含至少一个摄像头用于采集自然视频或自然图像;可选择地,采集单元801还可以配置用于采集深度视频或深度图像的摄像头;可选择地,采集单元还可以配置红外摄像头;可选择地,采集单元还可以配置遥感摄像头。采集单元801可以是包含通过放射线透射或扫描产生视频或图像的装置或设备。

可选择地,采集单元801中可以对输入视频或图像进行前处理,例如,自动聚焦、自动白平衡、自动曝光、背光补偿、降噪、锐化、拼接、提升或降低图像分辨率、提升或降低视频帧率、虚拟视图合成等。

采集单元801也可以接收其它设备或单元输出的视频或图像,例如,采集单元801可以是转码器中的一个组成单元,转码器将部分解码的图像输入采集单元801。例如,采集单元801接收通过数据连接从其他设备传递过来的视频或图像。

需要说明的是,除视频或图像外,采集单元801也可以采集其他媒体信息,例如音频。采集单元801也可以接收人工产生的信息,例如文字、字幕、计算机产生的图片或视频等。

编码器802是图5所示的编码器。编码器802的输入是采集单元801输出的视频或图像。编码器802对视频或图像进行编码,输出视频或图像码流。

存储或发送单元803接收编码器802输出的视频或图像码流,对其进行系统层处理,例如,按照传输协议、媒体文件格式等标准进行打包。存储或发送单元803将系统层处理后的得到的传输流或媒体文件存储至电子设备的存储器中,或者通过有线、无线网络进行发送。

需要说明的是,除编码器802输出的视频或图像码流外,存储或发送单元803的输入还可以包括音频码流、文字、字幕、图片等。存储或发送单元803按照媒体文件格式、传输协议等标准将这些输入与编码器802输出的码流打包在传输流或媒体文件中。

本实施例的电子设备可以是视频通信应用中能够生成或处理视频或图像码流的设备,例如,手机、计算机、媒体服务器、便携式移动终端、数字摄像机、数字照相机、电视广播系统设备、内容分发网络设备、监控摄像头、会议电视系统设备等。

实施例十二

参见图12,为本发明实施例提供的包含解码器的电子设备的结构示意图。

接收单元901接收视频或图像码流。接收单元901从有线、无线网络接收视频或图像码流,或者读取电子设备存储器获得视频或图像码流,或者接收通过数据连接从其他设备传递过来的视频或图像码流。

接收单元901的输入还可以是包含视频或图像码流的传输流或媒体文件。接收单元901根据传输协议、媒体文件格式等标准从接收到的传输流或媒体文件中提取视频或图像码流。

接收单元901将视频或图像码流输出给解码器902。

需要说明的是,除视频或图像码流外,接收单元901的输出还可以包括音频码流、文字、字幕、图片等。接收单元901将这些输出传递给电子设备中对应的处理单元。例如,接收单元901将音频码流输出给电子设备中包含的音频解码器。

解码器902是图6所示的解码器。解码器902的输入是接收单元901输出的视频或图像码流。解码器902对视频或图像码流进行解码,输出解码恢复的视频或图像。

呈现单元903接收解码器902输出的解码恢复的视频或图像。呈现单元903将解码恢复的视频或图像呈现给观看者。呈现单元903可以是电子设备的一个组成部分,例如显示屏;也可以是通过数据连接与电子设备连接的独立设备,例如投影机、显示器等。可选择地,呈现单元903可以对解码恢复的视频或图像进行后处理,例如自动调焦、自动白平衡、自动曝光调整、背光补偿、降噪、锐化、拼接、提升或降低图像分辨率、提升或降低视频帧率、虚拟视图合成等。

需要说明的是,除解码恢复的视频或图像外,呈现单元903的输入还可以包括来自电子设备其他单元输出的媒体数据,例如音频、文字、字幕、图片,等。呈现单元903的输入还包括人工产生的数据,例如远程教育应用中本地授课者对重点内容的划线等标注数据。呈现单元903将输入的媒体数据进行叠合后显示给观看者。

本实施例的电子设备可以是视频通信应用中能够解码或处理视频或图像码流的设备,例如,手机、计算机、机顶盒、电视机、播放器、媒体服务器、便携式移动终端、数字摄像机、数字照相机、电视广播系统设备、内容分发网络设备、会议电视系统设备等。

实施例十三

参见图13,为本发明实施例提供的电子系统的系统架构示意图。

信源设备1001是图11所示的包含编码器的电子设备。

存储或传输网络1002可以包括设备或电子系统的存储器、通过数据连接进行数据读写操作的外部存储器;也可以包括有线网络、无线网络组成的数据传输网络。存储或传输网络1002为信源设备1001中存储或发送单元803提供了存储器或数据传输网络。

信宿设备1003是图12所示的包含解码器的电子设备。信宿设备1003中接收单元901接收存储或传输网络1002提供视频或图像码流、包含视频或图像码流的传输流或者包含视频或图像码流的媒体文件。

本实施例的电子系统可以是视频通信应用中能够生成、存储或传输和解码视频或图像码流的系统或设备,例如,手机、计算机、iptv系统、ott系统、互联网多媒体系统、数字电视广播系统、监控系统、便携式移动终端、数字摄像机、数字照相机、会议电视系统设备等。

实施例十四

本申请实施例公开了一种编码器,包括:第一处理器、第一存储介质、第一通信总线,第一处理器和第一存储介质通过第一通信总线连接;第一处理器,调用第一存储介质存储的图像编码相关程序,并执行如下步骤:

确定编码块的帧内预测模式,根据帧内预测模式构造编码块的第一预测值;

根据编码块的原始值和第一预测值确定滤波参数,滤波参数包括滤波指示参数;

若滤波指示参数指示对第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;

根据编码块的原始值与帧内预测值的差值计算预测差参数;

对帧内预测模式、滤波参数和预测差参数进行编码,将编码比特写入码流。

实施例十五

本申请实施例公开了一种解码器,包括:第二处理器、第二存储介质、第二通信总线,第二处理器和第二存储介质通过第二通信总线连接;第二处理器,调用第二存储介质存储的图像解码相关程序,并执行如下步骤:

解析码流,获得解码块的帧内预测模式、滤波参数和预测差参数,滤波参数包括滤波指示参数;

根据帧内预测模式构造解码块的第一预测值;

若滤波指示参数指示对第一预测值进行滤波处理,则对第一预测值进行滤波处理得到帧内预测值;

根据预测差参数计算解码块的预测差;

计算帧内预测值和预测差的和值,获得解码块的第一解码值;

根据第一解码值获得解码块的解码恢复值。

另外,本申请实施例还公开了一种计算机存储介质,应用于编码器中,计算机可读处处介质存储有一个或多个编码相关程序,一个或者多个图像编码相关程序可被一个或者多个第一处理器执行,以实现如上述实施例的图像编码方法。

本申请实施例还公开了一种计算机存储介质,应用于解码器中,计算机可读处处介质存储有一个或多个解码相关程序,一个或者多个图像解码相关程序可被一个或者多个第二处理器执行,以实现如上述实施例的图像解码方法。

本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都属于本发明所附的权利要求的保护范围。

本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1