编码方法、解码方法、装置及电子设备的制造方法

文档序号:9671208阅读:255来源:国知局
编码方法、解码方法、装置及电子设备的制造方法
【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及一种编码方法、解码方法、装置及电子设备。
【背景技术】
[0002]正在制定的基于高性能视频编码(H.265/High Efficiency Video Coding, HE VC)标准扩展的屏幕内容编码(Screen Content Coding, SCC)标准中,采用了巾贞内块复制(Intra Block Copying, IBC)模式。与传统的使用当前图像内当前块边界处相邻块已恢复像素预测当前块内像素值的方法不同,IBC允许使用当前图像内已经恢复出的一个二维像素块作为当前块的预测块,同时,IBC使用预测块与当前块之间的相对偏移量来定位预测参考块,该偏移量称之为块复制矢量(Block copying Vector,BV)。与传统的帧内预测模式相同,BV指向的预测块中的像素点采样值没有经过去方块滤波(Deblocking Filtering, DF)处理。
[0003]在Η.265/HEVC标准中,环路滤波过程(包含去方块滤波器(Deblocking Filter,DF)和采样点自适应加性偏移量滤波器(Sample Adaptive Offset, SA0))是以图像为单位进行滤波处理的,即环路滤波过程是在图像完成重建后、放置进入解码图像缓冲区(Decoded Picture Buffer, DPB)之前执行的。尽管如此,在实际的产品实现上,通常在块层即执行环路滤波而无需等待整幅图像完成重建后再执行环路滤波操作。这样,可以通过在块层合理安排处理流水的方法,提高包含环路滤波模块的编码器和解码器的数据处理效率。例如,对于DF,在当前块中包含的像素点不用作相邻块帧内预测参考像素点、且相邻块像素点已可用(Available)的情况下,即可对当前块使用DF ;对于SA0,在当前块中包含的像素点不用作相邻块帧内预测参考像素点时,即可对当前块使用SA0。由于SA0是串联在DF之后的滤波器,因此,可以统一使用DF的判断条件作为对当前块使用环路滤波的判断条件。由于帧内预测的块划分方式相对规则、并且所使用的参考像素点位置固定,因此,在编码器和解码器中,可通过环路滤波处理流水在块重建流水之后延迟固定数量个编码单元块(保证满足DF条件)再执行的方式,实现块层环路滤波的操作。
[0004]作为H.265/HEVC标准的扩展,SCC沿用了 H.265/HEVC标准中的环路滤波器,同时引入了 IBC等新的编码工具提高了针对屏幕内容视频的编码效率。尽管如此,IBC的引入使得块层环路滤波的设计和实施变得困难。SCC现有结构存在的主要问题如下所述:
[0005]IBC采用当前图像中已经恢复但未经环路滤波处理的像素点构造当前块的预测块,因此,除前述块层DF和SA0的判断条件外,环路滤波流水还必须确定目标块内像素点不再被当前图像中其他IBC模式块用作构造预测块时才能对目标块内像素点进行环路滤波。IBC使用BV指示预测参考块,这就使得当前图像中任何一个目标块中的像素点可能作为后续任何一个IBC块的预测参考块,没有像前述帧内预测模式那样可以通过延迟环路滤波流水这样的简单方法判断、执行块层环路滤波。
[0006]具体而言,对于编码器,由于无法确定当前编码块中的像素点是否用作后续编码块的IBC参考,编码器需要在完成整个图像块重建后,在确定环路滤波参数,对重建图像进行环路滤波,将滤波输出图像放入DPB,在数据处理流程上增加了一幅图像的延迟。对于解码器,一种方式是等待图像重建后再执行环路滤波操作,这就将在数据处理流程上增加一幅图像的延迟;另一种方式是事先对码流进行分析,确定各IBC块BV指向参考块的位置,然后再安排环路滤波流水执行块层环路滤波操作,但这种方式打乱了码流解析流水与块层重建流水之间的结构,并且由于BV大小不一而使得环路滤波流水不能按照固定的时序间隔执行,这都增加了解码器的复杂度。
[0007]最坏情况下,按照编码顺序(或解码顺序),当图像中最后一个编码块(或解码块)的IBC预测参考块包含第一个编码块(或解码块)中的像素点时,环路滤波流水需要等待整幅图像完成重建后再执行,即在块层重建和环路滤波两个处理流水之间需要等待一个图像的延迟,极大降低了编码器(或解码器)的数据处理效率。
[0008]上述问题同样出现在SCC的串匹配方法(String Matching)。串匹配方法可以视为预测块划分大小为Nxl或ΙχΝ的IBC,其中,N为预测块的宽度或高度。
[0009]针对相关技术中引用IBC后无法确定BV范围,使得数据处理效率降低的问题,目前尚未提出有效的解决方案。

【发明内容】

[0010]本发明提供了一种编码方法、解码方法、装置及电子设备,以至少解决相关技术中引用IBC后无法确定BV范围,使得数据处理效率降低的问题。
[0011]根据本发明的一个实施例,提供了一种编码方法,包括:确定帧内块复制IBC模式的块复制矢量BV的限制范围信息;将所述限制范围信息写入码流。
[0012]本实施例中,在将所述限制范围信息写入码流之前或之后,还包括:根据所述限制范围信息对重建块进行环路滤波。
[0013]本实施例中,确定帧内块复制IBC模式的块复制矢量BV的限制范围信息包括以下至少之一:根据其所使用的档次Profile、等级tier、级别level确定BV的第一限制范围;根据对图像的瓦片Tile、分片Slice边界,确定BV的第二限制范围;根据与解码器能力协商情况,确定BV的第三限制范围;将所述第一限制范围、所述第二限制范围和所述第三限制范围的交集,作为编码过程中使用的IBC模式的BV的第四限制范围。
[0014]本实施例中,将所述限制范围信息写入码流包括:将BV的第一限制范围的信息写入以下数据单元至少之一:视频参数集VPS中的档次、等级、级别信息,序列参数集SPS中的档次、等级、级别;和/或,将BV的第四限制范围的信息写入以下数据单元至少之一:VPS中除档次、等级、级别信息之外的数据单元,SPS中除档次、等级、级别信息之外的数据单元,图像参数集PPS,分片划分头信息Slice Segment Header,补充增强信息SEI,用户自定义数据单元。
[0015]本实施例中,根据所述限制范围信息对重建块进行环路滤波,包括:根据所述限制范围信息确定块层重建过程与环路滤波过程之间的等待时长。
[0016]本实施例中,在根据所述限制范围信息确定块层重建过程与环路滤波过程之间的等待时长之后,还包括:在块层重建过程开始执行后,经过所述等待时长,环路滤波过程开始执行。
[0017]本实施例中,根据所述限制范围信息,确定使用当前的第一块单元中像素点作为参考的IBC块所在的最后一个块单元,作为第二块单元;按照编码顺序,确定所述第一块单元与第二块单元及二者之间的块单元作为第八范围;将所述第八范围与传统帧内预测模式中使用的块单元范围的并集作为第九范围;将所述第一块单元至第九范围的最后一个块单元之间包含的块单元的数量,作为所述等待时长。
[0018]本实施例中,所述传统帧内预测模式直接使用当前编码块的相邻像素点作为参考像素点构造预测块,其中,所述传统帧内预测模式的相邻像素点的位置是预先设定的,不使用位置偏移矢量指示。
[0019]本实施例中,还包括:根据当前图像的瓦片划分信息和/或所述第一块单元所在分片的起始位置,将所述第九范围限制在所述第一块单元所在的Tile和/或分片范围内。
[0020]本实施例中,所述传统帧内预测模式中使用的块单元范围包括以下范围至少之一或以下范围至少之二的并集:按照块单元的编码顺序,根据块单元的大小和帧内预测过程中所需要使用的相邻参考像素点的最大数量,确定使用可能使用块单元的右边界和下边界像素点作为帧内预测参考的块单元范围,作为第五范围;确定对块单元进行去方块滤波DF所使用的相邻块单元,对于右相邻的块单元,确定其下边界上的像素点用作帧内预测参考的块单元范围,作为第六范围;对于下相邻的块单元,确定其右边界上的像素点用作帧内预测参考的块单元范围,作为第七范围。
[0021]本实施例中,根据所述限制范围信息对重建块进行环路滤波,包括:根据所述限制范围信息确定是否可对已有本地重建块进行环路滤波处理。
[0022]本实施例中,根据所述限制范围信息确定是否可对已有本地重建块进行环路滤波处理包括:在对当前块单元完成本地重建后,按照编码顺序判断当前块单元之前已重建、未进行环路滤波处理的块单元是否满足如下条件:条件一:待判定的本地重建块单元的右边界和下边界像素点已经不用作当前本地重建块单元之后的块单元中像素点的帧内预测参考;条件二:待判定的本地重建块单元的右边界相邻块单元中的下边界像素点不用作当前本地重建块单元之后块单元的块单元中像素点的帧内预测参考;条件三:待判定的本地重建块单元的下边界相邻块单元中的右边界像素点不用作当前本地重建块单元之后的块单元中像素点的帧内预测参考;根据待判定的本地重建块单元对所述条件的满足情况,进行环路滤波处理。
[0023]本实施例中,根据待判定的本地重建块单元对所述条件的满足情况,进行环路滤波处理包括以下至少之一:当所述条件一、条件二和条件三同时满足时,对所述待判定的本地重建块单元完成未进行的水平方向和/或垂直方向的DF处理,并对于所述本地重建块单元相邻编码块的本地重建块,标记其已经进行滤波的边界的位置以及滤波操作的属性;对DF处理输出的本地重建块使用采样点自适应加性偏移量滤波器SA0进行滤波处理;当满足所述条件一和条件二时,对所述待判定的本地重建块单元中的未进行水平方向DF的待滤波像素点,环路滤波模块中的DF模块对其进行水平方向DF,标记其已经进行滤波的边界的位置以及滤波操作的属性;判断DF处理输出的本地重建块是否在垂直方向和水平方向均已进行了 DF滤波,如果是,则使用SA0进行滤波处理;当满足所述条件一和条件三时,对所述待判定的本地重建块单元中的未进行垂直方向DF的待滤波像素点,环路滤波模块中的DF模块对其进行垂直方向DF,标记其已经进行滤波的边界的位置以及滤波操作的属性;判断DF处理输出的本地重建块是否在垂直方向和水平方向均已进行了 DF滤波,如果是,则使用SAO进行滤波处理;否则,不对所述待判定的本地重建块单元使用DF和SA0进行滤波处理。
[0024]本实施例中,根据所述限制范围信息对重建块进行块层环路滤波,包括:根据所述限制范围信息确定对当前本地重建块单元进行环路滤波的等待时长。
[0025]本实施例中,根据所述限制范围信息确定对当前本地重建块单元进行环路滤波的等待时长,包括:确定在当前本地重建块单元同时满足下述条件:条件一:待判定的本地重建块单元的右边界和下边界像素点已经不用作当前本地重建块单元之后的块单元中像素点的帧内预测参考;条件二:待判定的本地重建块单元的右边界相邻块单元中的下边界像素点不用作当前本地重建块单元之后的块单元中像素点的帧内预测参考;条件三:待判定的本地重建块单元的下边界相邻块单元中的右边界像素点不用作当前本地重建块单元之后的块单元中像素点的帧内预测参考。
[0026]本实施例中,还包括:在当前本地重建块单元之后,按照编码顺序,等待本地重建模块输出了 Μ个块单元所覆盖的像素点重建值后,对所述当前本地重建块单元进行环路滤波处理。
[0027]本实施例中,Μ为当前本地重建块单元与对应块单元之间所包含的最小块单元的数量。
[0028]本实施例中,对所述当前本地重建块单元进行环路滤波处理包括:对所述本地重建块单元完成未进行的水平方向和/或垂直方向的DF处理,对于所述本地重建块单元相邻编码块的本地重建块,标记其已经进行滤波的边界的位置以及滤波操作的属性;对DF处理输出的本地重建块使用SA0进行滤波处理。
[0029]本实施例中,根据所述限制范围信息确定对当前本地重建块单元进行环路滤波的等待时长包括:在当前本地重建块单元同时满足以下条件一和条件二时,当前本地重建块单元与对应块单元之间所包含的块单元的数量eM,在当前本地重建块单元同时满足以下条件一和条件三时,当前本地重建块单元与对应块单元之间所包含的块单元的数量vM,其中:条件一:待判定的本地重建块单元的右边界和下边界像素点已经不用作当前本地重建块单元之后的块单元中像素点的帧内预测参考;条件二:待判定的本地重建块单元的右边界相邻块单元中的下边界像素点不用作当前本地重建块单元之后的块单元中像素点的帧内预测参考;条件三:待判定的本地重建块单元的下边界相邻块单元中的右边界像素点不用作当前本地重建块单元之后的块单元中像素点的帧内预测参考;根据eM与vM的关系,对所述当前本地重建块单元进行环路滤波处理。
[0030]本实施例中,根据eM与vM的关系,对所述当前本地重建块单元进行环路滤波处理包括以下情况至少之一:情况一:eM的值等于vM ;在这种情况下,在当前本地重建块单元之后,按照编码顺序,等待输出了 eM或vM个块单元所覆盖的像素点本地重建值后,对所述当前本地重建块单元进行环路滤波处理;对所述当前本地重建块单元完成未进行的水平方向和/或垂直方向的DF处理,对于所述当前本地重建块单元相邻编码块的本地重建块,标记其已经进行滤波的边界的位置以及滤波操作的属性;对0?处理输出的本地重建块使用SA0进行滤波处理;情况二:eM的值小于vM ;在这种情况下,在当前本地重建块单元之后,按照编码顺序,等待输出了 eM个块单元所覆盖的像素点本地重建值后,对所述当前本地重建块单元进行垂直方向的DF滤波,并标记已进行DF的垂直方向滤波,继续等待本地重建模块输出vM - eM个块单元所覆盖的像素点重建值后,对所述当前重建块单元进行水平方向的DF滤波,并标记已进行DF的水平方向滤波;对DF处理输出的本地重建块使用SAO进行滤波处理;情况三:eM的值大于vM ;在这种情况下,在当前本地重建块单元之后,按照编码顺序,等待输出了 vM个块单元所覆盖的像素点本地重建值后,对所述当前本地重建块单元进行水平方向的DF滤波,并标记已进行DF的水平方向滤波,继续等待本地重建模块输出eM - vM个块单元所覆盖的像素点本地重建值后,对所述当前重建块单元进行垂直方向的DF滤波,并标记已进行DF的垂直方向滤波;对DF处理输出的本地重建块使用SAO进行滤波处理。
[0031]根据本发明的另一实施例,提供了一种解码方法,包括:从码流中获取帧内块复制IBC模式的块复制矢量BV的限制范围信息;根据所述限制范围信息确定IBC模式的BV的限制范围。
[0032]本实施例中,在根据所述限制范围信息确定IBC模式的BV的限制范围之后,还包括:根据所述限制范围对重建块进行环路滤波。
[0033]本实施例中,根据所述限制范围信息对重建块进行环路滤波,包括:根据所述限制范围信息确定块层重建过程与环路滤波过程之间的等待时长。
[0034]本实施例中,在根据所述限制范围信息确定块层重建过程与环路滤波过程之间的等待时长之后,还包括:在块层重建过程开始执行后,经过所述等待时长,环路滤波过程开始执行。
[0035]本实施例中,根据所述限制范围信息,确定使用当前的第一块单元中像素点作为参考的IBC块所在的最后一个块单元,作为第二块单元;按照解码顺序,确定所述第一块单元与第二块单元及二者之间的块单元作为第四范围;将所述第四范围与传统帧内预测模式中使用的块单元范围的并集作为第五范围;将所述第一块单元至第五范围的最后一个块单元之间包含的块单元的数量,作为所述等待时长。
[0036]本实施例中,所述传统帧内预测模式直接使用当前解码块的相邻像素点作为参考像素点构造预测块,其中,所述传统帧内预测模式的相邻像素点的位置是预先设定的,不使用位置偏移矢量指示。
[0037]本实施例中,还包括:根据当前图像的瓦片划分信息和/或所述第一块单元所在分片的起始位置,将所述第五范围限制在所述第一块单元所在的Tile和/或分片范围内。
[0038]本实施例中,所述传统帧内预测模式中使用的块单元范围包括以下范围至少之一或以下范围至少之二的并集:按照块单元的解码顺序,根据块单元的大小和帧内预测过程中所需要使用的相邻参考像素点的最大数量,确定使用可能使用块单元的右边界和下边界像素点作为帧内预测参考的块单元范围,作为第一范围;确定对块单元进行去方块滤波DF所使用的相邻块单元,对于右相邻的块单元,确定其下边界上的像素点用作帧内预测参考的块单元范围,作为第二范围;对于下相邻的块单元,确定其右边界上的像素点用作帧内预测参考的块单元范围,作为第三范围。
[0039]本实施例中,根据所述限制范围信息对重建块进行环路滤波包括:根据所述限制范围信息确定是否可对已有本地重建块进行环路滤波处理。
[0040]本实施例中,根据所述限制范围信息确定是否可对已有本地重建块进行环路滤波处理包括:在对当前块单元完成本地重建后,按照解码顺序判断当前块单元之前已重建、未进行环路滤波处理的块单元是否满足如下条件:条件一:待判定的本地重建块单元的右边界和下边界像素点已经不用作当前本地重建块单元之后的块单元中像素点的帧内预测参考;条件二:待判定的本地重建块单元的右边界相邻块单元中的下边界像素点不用作当前本地重建块单元之后块单元的块单元中像素点的帧内预测参考;条件三:待判定的本地重建块单元的下边界相邻块单元中的右边界像素点不用作当前本地重建块单元之后的块单元中像素点的帧内预测参考;根据待判定的本地重建块单元对所述条件的满足情况,进行环路滤波处理。
[0041]本实施例中,根据待判定的本地重建块单元对所述条件的满足情况,进行环路滤波处理包括以下至少之一:当所述条件一、条件二和条件三同时满足时,对所述待判定的本地重建块单元完成未进行的水平方向和/或垂直方向的DF处理,并对于所述本地重建块单元相邻解码
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1