一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种编码方法、解码方法及设备

2022-08-17 10:38:01 来源:中国专利 TAG:


1.本技术实施例涉及视频处理领域,尤其涉及一种编码方法、解码方法及设备。


背景技术:

2.视频译码(视频编码和/或解码)广泛用于数字视频应用,例如广播数字电视、互联网和移动网络上的视频传输、视频聊天和视频会议等实时会话应用、数字多功能影音光盘(digital versatile disc,dvd)和蓝光光盘、视频内容采集和编辑系统以及可携式摄像机的安全应用。
3.即使在影片较短的情况下也需要对大量的视频数据进行描述,当数据要在带宽容量受限的网络中发送或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩然后在现代电信网络中传输。由于内存资源可能有限,当在存储设备上存储视频时,视频的大小也可能成为问题。视频压缩设备通常在信源侧使用软件和/或硬件,以在传输或存储之前对视频数据进行编码,从而减少用来表示数字视频图像所需的数据量。然后,压缩的数据在目的地侧由视频解压缩设备接收。在有限的网络资源以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术能够提高压缩率而几乎不影响图像质量。
4.目前业界提出了多种视频译码标准以指导视频编码/解码,例如h.264/avc、高效视频译码标准(high efficiency video coding,hevc)、通用视频译码(versatile video coding,vvc)标准等。这些标准均采用基于块划分与变换量化的混合架构编解码方案,并在块划分、预测、变换、熵编码/熵解码、环路滤波等技术模块做持续迭代,从而不断提升压缩效率。
5.视频编解码中,用于指示图像块预测操作中采用的预测模式的预测模式信息会经熵编码写入码流。当帧内预测模式相关的语法元素包括多项信息时,熵编码对帧内预测模式相关的语法元素依次编码。例如,帧内预测模式相关的语法元素可以包括基于矩阵的帧内预测(matrix-based intra prediction,mip)标志位,mip模式,多行参考索引,帧内子块划分(intra sub-partitions,isp)模式,最有可能模式(most probable modes,mpm)标志位,mpm索引和帧内预测模式索引等,对于该帧内预测模式相关的语法元素进行熵编码时,如图1a所示的vvc帧内预测模式编码方法流程,首先编码mip标志位,若mip标志位为真,则进一步编码mip模式;若mip标志位为假,则进一步依次编码多行参考索引、isp模式以及mpm标志位;若mpm标志位为真,则进一步编码mpm索引;若mpm标志位为假,编码帧内预测模式。但是,熵编码对帧内预测模式相关的语法元素依次编码,硬件实现复杂度高。
6.因此如何降低对帧内预测模式相关的语法元素熵编码的硬件实现复杂度,是实现熵编码或熵解码的关键。


技术实现要素:

7.本技术提供一种编码方法、解码方法及设备,以降低对帧内预测模式相关的语法
元素熵编码或熵解码的硬件实现复杂度。
8.为达到上述目的,本技术采用如下技术方案:
9.第一方面,提供一种编码方法,该方法可以包括:确定当前图像块的帧内预测模式语法元素值集合的索引,该语法元素值集合包括当前图像块的帧内预测模式涉及的多个语法元素的值,该多个语法元素的值包括当前图像块采用的帧内预测模式的索引;然后,通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,该概率分布表示多个候选帧内预测模式语法元素值集合各自的概率值;该输入数据用于表征当前图像块的特征(例如当前图像块的纹理特征);根据多个候选帧内预测模式语法元素值集合的概率分布,对当前图像块的帧内预测模式语法元素值集合的索引相关的概率值进行熵编码,得到码流。应当理解的是,该神经网络为经训练得到的具有概率估计功能的神经网络。
10.通过本技术实施例提供的编码方法,将当前图像块的帧内预测模式相关的多个(例如所有)语法元素的值,作为帧内预测模式语法元素值集合,该帧内预测模式语法元素值集合对应有索引,将帧内预测模式语法元素值集合的索引理解为一个语法元素,相当于将熵编码多个语法元素的值转换为熵编码一个语法元素的值,该语法元素可以表征当前图像块的帧内预测模式状态(例如可以指示当前图像块实际采用的帧内预测模式涉及的多个语法元素的值),熵编码时仅需对帧内预测模式语法元素值集合的索引进行一次熵编码即可替代对许多帧内预测模式相关语法元素值的熵编码,从而降低了硬件实现的复杂性,进而提升了编码性能。
11.在一种可能的实现方式中,当前图像块的帧内预测模式语法元素值集合中包括的多个语法元素的值,是当前图像块实际采用的帧内预测模式相关的多个语法元素的值,多个语法元素的值相互之间有依赖关系,并非离散存在。例如,当前图像块实际采用帧内预测模式a,属于a类帧内预测模式,当前图像块的帧内预测模式语法元素值集合中可以包括a类帧内预测模式标志位为真,帧内预测模式索引为a。
12.在另一种可能的实现方式中,一个帧内预测模式语法元素值集合包括一个帧内预测模式涉及的多个语法元素的值,一个帧内预测模式语法元素值集合可以表示或者反映其包括的多个语法元素之间的依赖关系。多个候选帧内预测模式语法元素值集合中的每个候选帧内预测模式语法元素值集合中包括的多个语法元素的值,指对当前图像块进行帧内预测时,可以采用的帧内预测模式涉及的多个语法元素的值。一个候选帧内预测模式语法元素值集合包括的多个语法元素的值相互之间有依赖关系。当前图像块实际采用的帧内预测模式语法元素值集合,可以是多个候选帧内预测模式语法元素值集合中的一种。
13.示例性的,在将帧内预测模式信息编码流程采用树状图结构表示时,树状图中包括多种从上至下的链式结构示例,某一种链式结构示例对应某一种候选帧内预测模式语法元素值集合,不同链式结构示例对应不同候选帧内预测模式语法元素值集合。应理解的是,每一种链式结构示例表示或者反映多个语法元素之间的依赖关系。
14.在另一种可能的实现方式中,确定当前图像块的帧内预测模式语法元素值集合的索引,包括:根据当前图像块采用的帧内预测模式的索引,确定当前图像块的帧内预测模式语法元素值集合的索引。
15.在另一种可能的实现方式中,根据当前图像块采用的帧内预测模式的索引,确定
当前图像块的帧内预测模式语法元素值集合的索引,包括:确定当前图像块采用的帧内预测模式的索引与第一类帧内预测模式的附加值之和,为当前图像块的帧内预测模式语法元素值集合的索引。其中,当前图像块采用的帧内预测模式属于第一类帧内预测模式;不同类的帧内预测模式的索引最小值与对应的附加值之和与索引最大值与对应的附加值之和构成的区间不存在交集。通过不同类的帧内预测模式与不同附加值的对应关系,且不同类的帧内预测模式的索引最小值与对应的附加值之和与索引最大值与对应的附加值之和构成的区间不存在交集,这样一来,可以合理配置不同类帧内预测模式对应的附加值,使得根据附加值确定的当前图像块的帧内预测模式语法元素值集合的索引熵编码之后,在解码端根据当前图像块的帧内预测模式语法元素值集合的索引的取值范围,就可以快速有效地确定出当前图像块采用的帧内预测模式的索引。
16.例如,a类帧内预测模式中包括5种帧内预测模式,a类帧内预测模式的索引范围为1至5,a类帧内预测模式对应的附加值为x;b类帧内预测模式中包括3种帧内预测模式,b类帧内预测模式的索引范围为1至3,b类帧内预测模式对应的附加值为y,则区间[1 x,5 x],与区间[1 y,3 y]不存在交集。其中,“[”“]”为闭区间符号。
[0017]
在另一种可能的实现方式中,第n类帧内预测模式的附加值包括:预定顺序中下处于第n类帧内预测模式之前的每类帧内预测模式的标签值之和。第n类这内预测模式为任一类帧内预测模式。
[0018]
其中,帧内预测模式的标签值可以是为帧内预测模式配置的一个参数。可选的,可以根据实际需求配置帧内预测模式的标签值的具体取值,不同类帧内预测模式的标签值可以相同也可以不同。
[0019]
在另一种可能的实现方式中,每类帧内预测模式的标签值可以包括:每类帧内预测模式下多个帧内预测模式的总个数。
[0020]
在另一种可能的实现方式中,当前图像块采用的帧内预测模式属于第一类帧内预测模式,帧内预测模式语法元素值集合包括的多个语法元素的值还包括第一类帧内预测模式的标志位为真,第二类帧内预测模式的标志位为假、第三类帧内预测模式的标志位为假;第二类帧内预测模式下多个帧内预测模式的总个数为b,第三类帧内预测模式下多个帧内预测模式的总个数为c;预定顺序为第二类帧内预测模式、第三类帧内预测模式、第一类帧内预测模式,确定当前图像块采用的帧内预测模式的索引与第一类帧内预测模式的附加值之和,为当前图像块的帧内预测模式语法元素值集合的索引,包括:确定当前图像块采用的帧内预测模式的索引、b以及c之和,为当前图像块的帧内预测模式语法元素值集合的索引。
[0021]
在另一种可能的实现方式中,在通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布之前,本技术提供的编码方法还可以包括:根据网络结构区分信息确定适用于当前图像块的神经网络,该网络结构区分信息包括当前图像块的尺寸,或者该网络结构区分信息依赖于所述当前图像块的尺寸。相应的,通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,包括:通过确定的神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布。这样一来,可以针对不同的图像块(例如尺寸不同)设计不同的神经网络,最大限度的提升编码性能。
[0022]
在另一种可能的实现方式中,上述输入数据可以包括当前图像块的邻近图像块的
信息,或者,上述输入数据可以包括预处理后的当前图像块的邻近图像块的信息,邻近图像块包括左上相邻、上相邻以及左侧相邻的图像块;邻近图像块的信息包括邻近图像块的重建值。充分利用当前图像块的邻近图像块与当前图像块的相关性,由于邻近图像块已重建,因此邻近图像块的信息可以表征当前图像块的特征,通过邻近图像块的信息输入神经网络得到的上述概率分布,准确度更高。
[0023]
在另一种可能的实现方式中,上述预处理后的当前图像块的邻近图像块的信息,可以包括:由邻近图像块的信息与当前图像块的信息拼接而成的m通道的数据块;m大于或等于1。
[0024]
例如,m可以小于或等于图像块的信息中包括的信息种类。
[0025]
一种可能的实现方式中,上述预处理后的当前图像块的邻近图像块的信息,可以包括:由邻近图像块的信息与当前图像块的信息转换的向量连接而成的一维向量。
[0026]
其中,图像块的信息转换的向量可以为一维有效one-hot向量。
[0027]
需要说明的是,输入数据中当前图像块的信息可以为填充的默认值,本技术实施例对于默认值的内容不予限定。
[0028]
在另一种可能的实现方式中,邻近图像块的信息还可以包括下述信息中一项或多项:预测值、残差值、帧内预测模式语法元素值集合的索引、划分信息。这样可以充分利用邻近图像块的可用信息,使用多种不同的信息组合作为神经网络的输入,提高神经网络输出的概率分布的准确性,最大限度利用可用编码信息。
[0029]
在另一种可能的实现方式中,上述神经网络可以包括卷积网络、全连接层和归一化指数函数softmax层。该卷积网络包括多个密集连接块以及密集连接块间的池化层,密集连接块包括卷积层、激励relu层和批标准化(batchnormalization,bn)层。相应的,通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,包括:通过卷积网络提取输入数据中的特征信息;通过所述全连接层及所述softmax层对所述卷积网络提取的特征信息进行概率估计,输出多个候选帧内预测模式语法元素值集合的概率分布。
[0030]
示例性的,该神经网络可以用于对4
×
4编码块的输入数据进行概率估计处理,得到4
×
4编码块的多个候选帧内预测模式语法元素值集合的概率分布。
[0031]
在另一种可能的实现方式中,上述神经网络可以包括全连接网络、卷积网络、拼接concat层、第一全连接层和softmax层。全连接网络包括多个第二全连接层及与第二全连接层一一连接的激活prelu层。卷积网络包括多个密集连接块以及密集连接块间的池化层,密集连接块包括卷积层、激励relu层和bn层。相应的,通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,包括:通过卷积网络提取输入数据中第一类信息的特征信息;通过全连接网络提取输入数据中第一类信息之外的信息的特征信息;通过concat层将全连接网络提取的特征信息和卷积网络提取的特征信息进行拼接,并通过第一全连接层及softmax层,对concat层拼接后的特征信息进行概率估计,输出多个候选帧内预测模式语法元素值集合的概率分布。其中,第一类信息为图像块像素级信息。
[0032]
在一种可能的实现方式中,图像块像素级信息可以指图像块像素值相关的信息,例如重建值、预测值和残差值。
[0033]
其中,输入数据中第一类信息可以为拼接得到的多通道数据;输入数据中第一类信息之外的信息可以为转换的向量连接而成的一维向量。
[0034]
示例性的,该神经网络可以用于对4
×
4编码块之外尺寸编码块的输入数据进行概率估计处理,得到4
×
4编码块的多个候选帧内预测模式语法元素值集合的概率分布。
[0035]
示例性的,上述特征信息可以为纹理拓扑信息。
[0036]
在另一种可能的实现方式中,上述神经网络可以为经训练得到的具有概率估计功能的神经网络。
[0037]
在另一种可能的实现方式中,上述神经网络用于接收训练数据集合;以及根据训练数据集合训练得到神经网络。
[0038]
在另一种可能的实现方式中,上述训练数据集合可以为图像块的多个邻近图像块的信息。
[0039]
在另一种可能的实现方式中,当前图像块的帧内预测模式语法元素值集合的索引相关的概率值,可以为根据上述概率分布,按照算术编码构建的多个概率区间中,当前图像块的帧内预测模式语法元素值集合的索引对应的概率区间中任一概率值。
[0040]
在另一种可能的实现方式中,本技术描述的熵编码可以包括:二进制算术编码,或者,多阶算术编码。
[0041]
第二方面,提供一种解码方法,该方法可以包括:通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,该概率分布表示多个候选帧内预测模式语法元素值集合各自的概率值,输入数据用于表征当前图像块的特征(例如当前图像块的纹理特征);根据该概率分布,对接收到的码流进行熵解码,得到当前图像块的帧内预测模式语法元素值集合的索引;根据当前图像块的帧内预测模式语法元素值集合的索引,确定当前图像块的帧内预测模式语法元素值集合,该语法元素值集合包括当前图像块的帧内预测模式涉及的多个语法元素的值,多个语法元素包括当前图像块采用的帧内预测模式的索引;基于该多个语法元素的值,执行帧内预测处理。应当理解的是,该神经网络为经训练得到的具有概率估计功能的神经网络。
[0042]
通过本技术实施例提供的解码方法,将当前图像块的帧内预测模式相关的多个(例如所有)语法元素的值,作为帧内预测模式语法元素值集合,该帧内预测模式语法元素值集合对应有索引,将帧内预测模式语法元素值集合的索引理解为一个语法元素,相当于将熵解码多个语法元素的值转换为熵解码一个语法元素的值,该语法元素可以表征当前图像块的帧内预测模式编码状态(例如可以指示当前图像块实际采用的帧内预测模式涉及的多个语法元素的值),熵解码时仅需对帧内预测模式语法元素值集合的索引进行一次熵解码即可替代对许多帧内预测模式相关语法元素值的熵解码,从而降低了硬件实现的复杂性,进而提升了解码性能。
[0043]
在一种可能的实现方式中,根据当前图像块的帧内预测模式语法元素值集合的索引,确定当前图像块的帧内预测模式语法元素值集合,具体可以实现为:确定当前图像块的帧内预测模式语法元素值集合的索引属于的第一数值区间对应的帧内预测模式语法元素值集合,为当前图像块的帧内预测模式语法元素值集合。其中,第一数值区间的起始值为第一类帧内预测模式的索引最小值与第一类帧内预测模式的附加值之和,第一数值区间的终止值为第一类帧内预测模式的索引最大值与第一类帧内预测模式的附加值之和。当前图像
块采用的帧内预测模式属于第一类帧内预测模式;不同类型的帧内预测模式的索引最小值与对应附加值之和与索引最大值与对应附加值之和构成的区间不存在交集。该实现方式对应于编码端根据当前图像块采用的帧内预测模式的索引,确定当前图像块的帧内预测模式语法元素值集合的索引,解码端根据当前图像块的帧内预测模式语法元素值集合的索引的取值范围,可以简单快速的确定出当前图像块采用的帧内预测模式的索引。
[0044]
在另一种可能的实现方式中,第n类帧内预测模式的附加值包括:预定顺序中下处于第n类帧内预测模式之前的每类帧内预测模式的标签值之和。
[0045]
其中,帧内预测模式的标签值可以是为帧内预测模式配置的一个参数。可选的,可以根据实际需求配置帧内预测模式的标签值的具体取值,不同类帧内预测模式的标签值可以相同也可以不同。
[0046]
在另一种可能的实现方式中,每类帧内预测模式的标签值可以包括:每类帧内预测模式下多个帧内预测模式的总个数。
[0047]
在另一种可能的实现方式中,若预定顺序为第二类帧内预测模式、第三类帧内预测模式、第一类帧内预测模式;第一类帧内预测模式下多个帧内预测模式的总个数为a,第二类帧内预测模式下多个帧内预测模式的总个数为b,第一类帧内预测模式下多个帧内预测模式的总个数为c,确定第一数值区间对应的语法元素值集合,为当前图像块的帧内预测模式语法元素值集合,包括:若第一数值区间为[0,b),当前图像块的帧内预测模式语法元素值集合包括:第二类帧内预测模式的标志位为真,当前图像块采用的帧内预测模式的索引为当前图像块的帧内预测模式语法元素值集合的索引,第一类帧内预测模式的标志位为假,第三类帧内预测模式的标志位为假。若第一数值区间为[b,b c),当前图像块的帧内预测模式语法元素值集合包括:第三类帧内预测模式的标志位为真,当前图像块采用的帧内预测模式的索引为当前图像块的帧内预测模式语法元素值集合的索引减b,第一类帧内预测模式的标志位为假,第二类帧内预测模式的标志位为假。若第一数值区间为[b c,a b c),当前图像块的帧内预测模式语法元素值集合包括:第一类帧内预测模式的标志位为真,当前图像块采用的帧内预测模式的索引为当前图像块的帧内预测模式语法元素值集合的索引减(b c),第二类帧内预测模式的标志位为假,第三类帧内预测模式的标志位为假。
[0048]
在另一种可能的实现方式中,在通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布之前,本技术提供的编码方法还可以包括:根据网络结构区分信息确定适用于当前图像块的神经网络,该网络结构区分信息包括当前图像块的尺寸,或者该网络结构区分信息依赖于所述当前图像块的尺寸。相应的,通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,包括:通过确定的神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布。这样一来,可以针对不同的图像块(例如尺寸不同)设计不同的神经网络,最大限度的提升编码性能。
[0049]
在另一种可能的实现方式中,上述输入数据可以包括当前图像块的邻近图像块的信息,或者,上述输入数据可以包括预处理后的当前图像块的邻近图像块的信息,邻近图像块包括左上相邻、上相邻以及左侧相邻的图像块;邻近图像块的信息包括邻近图像块的重建值。充分利用当前图像块的邻近图像块与当前图像块的相关性,由于邻近图像块已重建,因此邻近图像块可以表征当前图像块的特征,通过邻近图像块的信息输入神经网络得到的
上述概率分布,准确度更高。
[0050]
在另一种可能的实现方式中,上述预处理后的当前图像块的邻近图像块的信息,可以包括:由邻近图像块的信息与当前图像块的信息拼接而成的m通道的数据块;m大于或等于1。
[0051]
例如,m可以小于或等于图像块的信息中包括的信息种类。
[0052]
一种可能的实现方式中,上述预处理后的当前图像块的邻近图像块的信息,可以包括:由邻近图像块的信息与当前图像块的信息转换的向量连接而成的一维向量。
[0053]
其中,图像块的信息转换的向量可以为一维有效one-hot向量。
[0054]
需要说明的是,输入数据中当前图像块的信息可以为填充的默认值,本技术实施例对于默认值的内容不予限定。
[0055]
在另一种可能的实现方式中,邻近图像块的信息还可以包括下述信息中一项或多项:预测值、残差值、帧内预测模式语法元素值集合的索引、划分信息。这样可以充分利用邻近图像块的可用信息,使用多种不同的信息组合作为神经网络的输入,提高神经网络输出的概率分布的准确性,最大限度利用可用编码信息。
[0056]
在另一种可能的实现方式中,上述神经网络可以包括卷积网络、全连接层和归一化指数函数softmax层。该卷积网络包括多个密集连接块以及密集连接块间的池化层,密集连接块包括卷积层、激励relu层和bn层。相应的,通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,包括:通过卷积网络提取输入数据中的特征信息;通过所述全连接层及所述softmax层对所述卷积网络提取的特征信息进行概率估计,输出多个候选帧内预测模式语法元素值集合的概率分布。
[0057]
示例性的,该神经网络可以用于对4
×
4编码块的输入数据进行概率估计处理,得到4
×
4编码块的多个候选帧内预测模式语法元素值集合的概率分布。
[0058]
在另一种可能的实现方式中,上述神经网络可以包括全连接网络、卷积网络、拼接concat层、第一全连接层和softmax层。全连接网络包括多个第二全连接层及与第二全连接层一一连接的激活prelu层。卷积网络包括多个密集连接块以及密集连接块间的池化层,密集连接块包括卷积层、激励relu层和bn层。相应的,通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,包括:通过卷积网络提取输入数据中第一类信息的特征信息;通过全连接网络提取输入数据中第一类信息之外的信息的特征信息;通过concat层将全连接网络提取的特征信息和卷积网络提取的特征信息进行拼接,并通过第一全连接层及softmax层,对concat层拼接后的特征信息进行概率估计,输出多个候选帧内预测模式语法元素值集合的概率分布。其中,第一类信息为图像块像素级信息。
[0059]
在一种可能的实现方式中,图像块像素级信息可以指图像块像素值相关的信息,例如重建值、预测值和残差值。
[0060]
其中,输入数据中第一类信息可以为拼接得到的多通道数据;输入数据中第一类信息之外的信息可以为转换的向量连接而成的一维向量。
[0061]
示例性的,该神经网络可以用于对4
×
4编码块之外尺寸编码块的输入数据进行概率估计处理,得到4
×
4编码块的多个候选帧内预测模式语法元素值集合的概率分布。
[0062]
其中,上述特征信息可以为纹理拓扑信息。
[0063]
在另一种可能的实现方式中,上述神经网络可以为经训练得到的具有概率估计功能的神经网络。
[0064]
在另一种可能的实现方式中,上述神经网络用于接收训练数据集合;以及根据训练数据集合训练得到神经网络。
[0065]
在另一种可能的实现方式中,上述训练数据集合可以为图像块的多个邻近图像块的信息。
[0066]
在另一种可能的实现方式中,本技术描述的熵解码可以包括:二进制算术编码,或者,多阶算术编码。
[0067]
第三方面,提供一种编码器,包括帧内预测模块及熵编码模块。其中:
[0068]
帧内预测模块,用于确定当前图像块的帧内预测模式语法元素值集合的索引,该语法元素值集合包括当前图像块的帧内预测模式涉及的多个语法元素的值,该多个语法元素的值包括所述当前图像块采用的帧内预测模式的索引。
[0069]
熵编码模块,用于通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,该概率分布表示多个候选帧内预测模式语法元素值集合各自的概率值;该输入数据用于表征当前图像块的特征;根据多个候选帧内预测模式语法元素值集合的概率分布,对当前图像块的帧内预测模式语法元素值集合的索引相关的概率值进行熵编码,得到码流。应当理解的是,该神经网络为经训练得到的具有概率估计功能的神经网络。
[0070]
需要说明的是,第三方面提供的编码器,用于执行上述第一方面任一项所述的方法,可以与上述第一方面描述的方案达到相同的效果,其具体实现不再赘述。
[0071]
第四方面,提供一种解码器,包括熵解码模块及帧内预测模块。其中:
[0072]
熵解码模块,用于通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,该概率分布表示多个候选帧内预测模式语法元素值集合各自的概率值,输入数据用于表征当前图像块的特征;根据该概率分布,对接收到的码流进行熵解码,得到当前图像块的帧内预测模式语法元素值集合的索引。应当理解的是,该神经网络为经训练得到的具有概率估计功能的神经网络。
[0073]
帧内预测模块,用于根据当前图像块的帧内预测模式语法元素值集合的索引,确定当前图像块的帧内预测模式语法元素值集合,该语法元素值集合包括当前图像块的帧内预测模式涉及的多个语法元素的值,该多个语法元素包括当前图像块采用的帧内预测模式的索引;基于多个语法元素的值,执行帧内预测处理。
[0074]
需要说明的是,第四方面提供的解码器,用于执行上述第二方面任一项所述的方法,可以与上述第二方面描述的方案达到相同的效果,其具体实现不再赘述。
[0075]
第五方面,本技术提供一种编码器,包括处理电路,用于执行根据上述第一方面任一项所述的方法。
[0076]
第六方面,本技术提供一种解码器,包括处理电路,用于执行上述第二方面任一项所述的方法。
[0077]
第七方面,本技术提供一种计算机程序产品,包括程序代码,当其在计算机或处理器上执行时,用于执行上述第一方面或第二方面任一项所述的方法。
[0078]
第八方面,本技术提供一种编码器,包括:一个或多个处理器;非瞬时性计算机可
读存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处理器执行时,使得所述编码器执行上述第一方面任一项所述的方法。
[0079]
第九方面,本技术提供一种解码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处理器执行时,使得所述解码器执行上述第二方面任一项所述的方法。
[0080]
第十方面,本技术提供一种非瞬时性计算机可读存储介质,包括程序代码,当其由计算机设备执行时,用于执行上述第一方面或第二方面任一项所述的方法。
[0081]
其中,需要说明的是,上述各个方面中的任意一个方面的各种可能的实现方式,在方案不矛盾的前提下,均可以进行组合。
附图说明
[0082]
图1a为本技术实施例提供的一种通用视频译码(versatile video coding,vvc)帧内预测模式编码方法流程示意图;
[0083]
图1b为本技术实施例提供的一种译码系统的示例性框图;
[0084]
图1c为本技术实施例提供的另一种译码系统的示意图;
[0085]
图2为本技术实施例提供的一种编码器的结构示意图;
[0086]
图3为本技术实施例提供的一种解码器的结构示意图;
[0087]
图4为本技术实施例提供的一种视频译码设备的示例性框图;
[0088]
图5为本技术实施例提供的一种视频译码设备的结构示意图;
[0089]
图6为本技术实施例提供的一种卷积神经网络的网络结构示意图;
[0090]
图7为本技术实施例提供的一种视频传输系统架构示意图;
[0091]
图8为本技术实施例提供的一种用于预测或估计多个候选帧内预测模式语法元素值集合的概率分布的神经网络的结构示意图;
[0092]
图9为本技术实施例提供的另一种用于预测或估计多个候选帧内预测模式语法元素值集合的概率分布的神经网络的结构示意图;
[0093]
图10为本技术实施例提供的一种编码方法的流程示意图;
[0094]
图11为本技术实施例提供的另一种编码方法的流程示意图;
[0095]
图12为本技术实施例提供的一种树状结构的示意图;
[0096]
图13为本技术实施例提供的再一种编码方法的流程示意图;
[0097]
图14为本技术实施例提供的一种解码方法的流程示意图;
[0098]
图15为本技术实施例提供的另一种解码方法的流程示意图;
[0099]
图16为本技术实施例提供的一种编码器的结构示意图;
[0100]
图17为本技术实施例提供的一种解码器的结构示意图。
具体实施方式
[0101]
本技术实施例提供一种基于ai的视频压缩技术,尤其是提供一种基于神经网络的视频压缩技术,具体提供一种编解码技术,以改进混合视频编解码系统。
[0102]
视频译码通常是指处理形成视频或视频序列的图像序列。在视频译码领域,术语“图像(picture)”、“帧(frame)”或“图片(image)”可以用作同义词。视频译码(或通常称为
codec)包括视频编码和视频解码两部分。视频编码在源侧执行,通常包括处理(例如,压缩)原始视频图像以减少表示该视频图像所需的数据量(从而更高效存储和/或传输)。视频解码在目的地侧执行,通常包括相对于编码器作逆处理,以重建视频图像。实施例涉及的视频图像(或通常称为图像)的“译码”应理解为视频图像或视频序列的“编码”或“解码”。编码部分和解码部分也合称为编解码(编码和解码,codec)。
[0103]
在无损视频译码情况下,可以重建原始视频图像,即重建的视频图像与原始视频图像具有相同的质量(假设存储或传输期间没有传输损耗或其它数据丢失)。在有损视频编码情况下,通过量化等执行进一步压缩,来减少表示视频图像所需的数据量,而解码器侧无法完全重建视频图像,即重建的视频图像的质量比原始视频图像的质量较低或较差。
[0104]
几个视频译码标准属于“有损混合型视频译码”(即,将像素域中的空间和时间预测与变换域中用于应用量化的2d变换编码结合)。视频序列中的每个图像通常分割成不重叠的块集合,通常在块级上进行编码。换句话说,编码器通常在块(视频块,也可称为图像块,或者编码块)级处理即编码视频,例如,通过空间(帧内)预测和时间(帧间)预测来产生预测块;从当前块(当前处理/待处理的块)中减去预测块,得到残差块;在变换域中变换残差块并量化残差块,以减少待传输(压缩)的数据量,而解码器侧将相对于编码器的逆处理部分应用于编码或压缩的块,以重建用于表示的当前块。另外,编码器需要重复解码器的处理步骤,使得编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建像素,用于处理(即编码)后续块。
[0105]
在以下译码系统10的实施例中,编码器20和解码器30根据图1b至图3进行描述。
[0106]
图1b为本技术实施例的译码系统10的示例性框图,例如可以利用本技术技术的视频译码系统10(或简称为译码系统10)。视频译码系统10中的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)代表可用于根据本技术中描述的各种示例执行各技术的设备等。
[0107]
如图1b所示,译码系统10包括源设备12,源设备12用于将编码图像等编码图像数据21提供给用于对编码图像数据21进行解码的目的设备14。
[0108]
源设备12包括编码器20,另外即可选地,可包括图像源16、图像预处理器等预处理器(或预处理单元)18、通信接口(或通信单元)22。
[0109]
图像源16可包括或可以为任意类型的用于捕获现实世界图像等的图像捕获设备,和/或任意类型的图像生成设备,例如用于生成计算机动画图像的计算机图形处理器或任意类型的用于获取和/或提供现实世界图像、计算机生成图像(例如,屏幕内容、虚拟现实(virtual reality,vr)图像和/或其任意组合(例如增强现实(augmented reality,ar)图像)的设备。所述图像源16可以为存储上述图像中的任意图像的任意类型的内存或存储器。
[0110]
为了区分预处理器(或预处理单元)18执行的处理,图像(或图像数据)17也可称为原始图像(或原始图像数据)17。
[0111]
预处理器18用于接收原始图像数据17,并对原始图像数据17进行预处理,得到预处理图像(或预处理图像数据)19。例如,预处理器18执行的预处理可包括修剪、颜色格式转换(例如从rgb转换为ycbcr)、调色或去噪。可以理解的是,预处理单元18可以为可选组件。
[0112]
视频编码器(或编码器)20用于接收预处理图像数据19并提供编码图像数据21(下面将根据图2等进一步描述)。
[0113]
源设备12中的通信接口22可用于:接收编码图像数据21并通过通信信道13向目的设备14等另一设备或任何其它设备发送编码图像数据21(或其它任意处理后的版本),以便存储或直接重建。
[0114]
目的设备14包括解码器30,另外即可选地,可包括通信接口(或通信单元)28、后处理器(或后处理单元)32和显示设备34。
[0115]
目的设备14中的通信接口28用于直接从源设备12或从存储设备等任意其它源设备接收编码图像数据21(或其它任意处理后的版本),例如,存储设备为编码图像数据存储设备,并将编码图像数据21提供给解码器30。
[0116]
通信接口22和通信接口28可用于通过源设备12与目的设备14之间的直连通信链路,例如直接有线或无线连接等,或者通过任意类型的网络,例如有线网络、无线网络或其任意组合、任意类型的私网和公网或其任意类型的组合,发送或接收编码图像数据(或编码数据)21。
[0117]
例如,通信接口22可用于将编码图像数据21封装为报文等合适的格式,和/或使用任意类型的传输编码或处理来处理所述编码后的图像数据,以便在通信链路或通信网络上进行传输。
[0118]
通信接口28与通信接口22对应,例如,可用于接收传输数据,并使用任意类型的对应传输解码或处理和/或解封装对传输数据进行处理,得到编码图像数据21。
[0119]
通信接口22和通信接口28均可配置为如图1b中从源设备12指向目的设备14的对应通信信道13的箭头所指示的单向通信接口,或双向通信接口,并且可用于发送和接收消息等,以建立连接,确认并交换与通信链路和/或例如编码后的图像数据传输等数据传输相关的任何其它信息,等等。
[0120]
视频解码器(或解码器)30用于接收编码图像数据21并提供解码图像数据(或解码图像数据)31(下面将根据图3等进一步描述)。
[0121]
后处理器32用于对解码后的图像等解码图像数据31(也称为重建后的图像数据)进行后处理,得到后处理后的图像等后处理图像数据33。后处理器32执行的后处理可以包括例如颜色格式转换(例如从ycbcr转换为rgb)、调色、修剪或重采样,或者用于产生供显示设备34等显示的解码图像数据31等任何其它处理。
[0122]
显示设备34用于接收后处理图像数据33,以向用户或观看者等显示图像。显示设备34可以为或包括任意类型的用于表示重建后图像的显示器,例如,集成或外部显示屏或显示器。例如,显示屏可包括液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light emitting diode,oled)显示器、等离子显示器、投影仪、微型led显示器、硅基液晶显示器(liquid crystal on silicon,lcos)、数字光处理器(digitallight processor,dlp)或任意类型的其它显示屏。
[0123]
译码系统10还包括训练引擎25,训练引擎25用于训练编码器20(尤其是编码器20中的熵编码单元中用于预测或估计多个候选帧内预测模式语法元素值集合的概率分布的神经网络,或者熵编码单元调用的用于预测或估计多个候选帧内预测模式语法元素值集合的概率分布的神经网络)或解码器30(尤其是解码器30中熵解码单元中的用于预测或估计多个候选帧内预测模式语法元素值集合的概率分布的神经网络,或者熵解码单元调用的用于预测或估计多个候选帧内预测模式语法元素值集合的概率分布的神经网络),以预测或
估计当前输入图像或当前图像区域或当前图像块的多个候选帧内预测模式语法元素值集合或帧内编码状态的概率分布,从而依据概率分布进行熵编码。其中,帧内编码状态可以用于指示多个候选帧内预测模式语法元素值集合。
[0124]
其中,一个帧内预测模式语法元素值集合包括一个帧内预测模式涉及的多个语法元素的值,一个帧内预测模式语法元素值集合可以表示或者反映其包括的多个语法元素之间的依赖关系。多个候选帧内预测模式语法元素值集合中的每个候选帧内预测模式语法元素值集合中包括的多个语法元素的值,指对当前图像块进行帧内预测时,可以采用的帧内预测模式涉及的多个语法元素的值。一个候选帧内预测模式语法元素值集合包括的多个语法元素的值相互之间有依赖关系。当前图像块实际采用的帧内预测模式语法元素值集合,可以是多个候选帧内预测模式语法元素值集合中的一种。
[0125]
示例性的,在将帧内预测模式信息编码流程采用树状图结构表示时,树状图中包括多种从上至下的链式结构示例,某一种链式结构示例对应某一种候选帧内预测模式语法元素值集合,不同链式结构示例对应不同候选帧内预测模式语法元素值集合。应理解的是,每一种链式结构示例表示或者反映多个语法元素之间的依赖关系。
[0126]
例如,当前图像块实际采用帧内预测模式a,属于a类帧内预测模式,当前图像块的帧内预测模式语法元素值集合中可以包括a类帧内预测模式标志位为真,帧内预测模式索引为a。
[0127]
例如,在vcc中,帧内预测模式相关的语法元素包括mip标志位,mip模式,多行参考索引,isp模式,mpm标志位,mpm索引和帧内预测模式等。对于一个采用帧内预测的图像块,其帧内预测模式相关的语法元素包括mip标志位,mip模式,多行参考索引,isp模式,mpm标志位,mpm索引和帧内预测模式的值,则为该图像块的帧内预测模式语法元素值集合。
[0128]
其中,训练引擎25可以采用训练数据集合训练调用的用于预测或估计多个候选帧内预测模式语法元素值集合的概率分布的神经网络。
[0129]
可选的,本技术实施例中训练数据集合可以包括:邻近图像块的信息,其中邻近图像块的信息包括但不限于下述信息中的一项或多项:邻近已重建图像块各自的重建值、预测值、残差值、帧内预测模式语法元素值集合的索引、划分信息。经训练数据集合训练得到神经网络,该神经网络的输入数据中至少包括当前图像块的邻近图像块的信息,输出数据包括当前图像块采用多个候选帧内预测模式语法元素值集合的概率分布,该概率分布表示多个候选帧内预测模式语法元素值集合各自的概率值。
[0130]
训练引擎25训练神经网络的过程使得输出的当前图像块采用多个候选帧内预测模式语法元素值集合的概率分布中,当前图像块实际采用的帧内预测模式语法元素值集合的概率值尽可能最大。下文将结合图8、图9详细介绍神经网络。
[0131]
本技术实施例中的训练数据集合可以存入数据库(图中未示意)中,训练引擎25基于训练数据集合训练得到目标模型(例如:可以是用于预测或估计多个候选帧内预测模式语法元素值集合的概率分布的神经网络)。需要说明的是,本技术实施例对于训练数据集合的来源不做限定,例如可以是从云端或其他地方获取训练数据集合进行模型训练。
[0132]
训练引擎25训练得到的目标模型可以应用于译码系统10中,例如,应用于图1b所示的源设备12(例如编码器20)或目的设备14(例如解码器30)。训练引擎25可以在云端训练得到目标模型,然后译码系统10从云端下载并使用该目标模型;或者,训练引擎25可以在云
端训练得到目标模型并使用该目标模型,译码系统10从云端直接获取处理结果。例如,训练引擎25训练得到具备预测或估计多个候选帧内预测模式语法元素值集合的概率分布功能的目标模型,译码系统10从云端下载该目标模型,然后编码器20中的熵编码单元270或解码器30中的熵解码单元304可以根据该目标模型的输出结果对输入的图像或图像块的帧内预测语法元素进行熵编码或熵解码。又例如,训练引擎25训练得到具备预测或估计多个候选帧内预测模式语法元素值集合的概率分布功能的目标模型,译码系统10无需从云端下载该目标模型,编码器20或解码器30将图像或图像块传输给云端,由云端通过目标模型对该图像或图像块预测或估计多个候选帧内预测模式语法元素值集合的概率分布,并传输给编码器20或解码器30,然后编码器20中的熵编码单元270或解码器30中的熵解码单元304可以基于概率分布对输入的图像或图像块的帧内预测语法元素进行熵编码或熵解码。
[0133]
尽管图1b示出了源设备12和目的设备14作为独立的设备,但设备实施例也可以同时包括源设备12和目的设备14或同时包括源设备12和目的设备14的功能,即同时包括源设备12或对应功能和目的设备14或对应功能。在这些实施例中,源设备12或对应功能和目的设备14或对应功能可以使用相同硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
[0134]
根据描述,图1b所示的源设备12和/或目的设备14中的不同单元或功能的存在和(准确)划分可能根据实际设备和应用而有所不同,这对技术人员来说是显而易见的。
[0135]
编码器20(例如视频编码器20)或解码器30(例如视频解码器30)或两者都可通过如图1c所示的处理电路实现,例如一个或多个微处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)、离散逻辑、硬件、视频编码专用处理器或其任意组合。编码器20可以通过处理电路46实现,以包含参照图2编码器20论述的各种模块和/或本文描述的任何其它编码器系统或子系统。解码器30可以通过处理电路46实现,以包含参照图3解码器30论述的各种模块和/或本文描述的任何其它解码器系统或子系统。所述处理电路46可用于执行下文论述的各种操作。如图5所示,如果部分技术在软件中实施,则设备可以将软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且使用一个或多个处理器在硬件中执行指令,从而执行本技术技术。视频编码器20和视频解码器30中的其中一个可作为组合编解码器(encoder/decoder,codec)的一部分集成在单个设备中,如图1c所示。
[0136]
源设备12和目的设备14可包括各种设备中的任一种,包括任意类型的手持设备或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板或平板电脑、相机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备(例如,内容业务服务器或内容分发服务器)、广播接收设备、广播发射设备,等等,并可以不使用或使用任意类型的操作系统。在一些情况下,源设备12和目的设备14可配备用于无线通信的组件。因此,源设备12和目的设备14可以是无线通信设备。
[0137]
在一些情况下,图1b所示的视频译码系统10仅仅是示例性的,本技术提供的技术可适用于视频编码设备(例如,视频编码或视频解码),这些设备不一定包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据从本地存储器中检索,通过网络发送,等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以
从存储器中检索数据并对数据进行解码。在一些示例中,编码和解码由相互不通信而只是编码数据到存储器和/或从存储器中检索并解码数据的设备来执行。
[0138]
图1c为本技术实施例的一种视频译码系统40的示例性框图,如图1c所示,视频译码系统40可以包含成像设备41、视频编码器20、视频解码器30(和/或藉由处理电路46实施的视频编/解码器)、天线42、一个或多个处理器43、一个或多个内存存储器44和/或显示设备45。
[0139]
如图1c所示,成像设备41、天线42、处理电路46、视频编码器20、视频解码器30、处理器43、内存存储器44和/或显示设备45能够互相通信。在不同实例中,视频译码系统40可以只包含视频编码器20或只包含视频解码器30。
[0140]
在一些实例中,天线42可以用于传输或接收视频数据的经编码比特流。另外,在一些实例中,显示设备45可以用于呈现视频数据。处理电路46可以包含专用集成电路(application-specific integrated circuit,asic)逻辑、图形处理器、通用处理器等。视频译码系统40也可以包含可选的处理器43,该可选处理器43类似地可以包含专用集成电路(application-specific integrated circuit,asic)逻辑、图形处理器、通用处理器等。另外,内存存储器44可以是任何类型的存储器,例如易失性存储器(例如,静态随机存取存储器(static random access memory,sram)、动态随机存储器(dynamic random access memory,dram)等)或非易失性存储器(例如,闪存等)等。在非限制性实例中,内存存储器44可以由超速缓存内存实施。在其它实例中,处理电路46可以包含存储器(例如,缓存等)用于实施图像缓冲器等。
[0141]
在一些实例中,通过逻辑电路实施的视频编码器20可以包含(例如,通过处理电路46或内存存储器44实施的)图像缓冲器和(例如,通过处理电路46实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过处理电路46实施的视频编码器20,以实施参照图2和/或本文中所描述的任何其它编码器系统或子系统所论述的各种模块。逻辑电路可以用于执行本文所论述的各种操作。
[0142]
在一些实例中,视频解码器30可以以类似方式通过处理电路46实施,以实施参照图3的视频解码器30和/或本文中所描述的任何其它解码器系统或子系统所论述的各种模块。在一些实例中,逻辑电路实施的视频解码器30可以包含(通过处理电路46或内存存储器44实施的)图像缓冲器和(例如,通过处理电路46实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过处理电路46实施的视频解码器30,以实施参照图3和/或本文中所描述的任何其它解码器系统或子系统所论述的各种模块。
[0143]
在一些实例中,天线42可以用于接收视频数据的经编码比特流。如所论述,经编码比特流可以包含本文所论述的图像块的帧内预测模式语法元素值集合的索引。可选的,经编码比特流还可以包含与编码视频帧相关的数据、指示符等。视频译码系统40还可包含耦合至天线42并用于解码经编码比特流的视频解码器30。显示设备45用于呈现视频帧。
[0144]
应理解,本技术实施例中对于参考视频编码器20所描述的实例,视频解码器30可以用于执行相反过程。关于信令语法元素,视频解码器30可以用于接收并解析这种语法元素,相应地解码相关视频数据。在一些例子中,视频编码器20可以将语法元素(例如本文所论述的图像块的帧内预测模式语法元素值集合的索引)熵编码成经编码视频比特流。在此类实例中,视频解码器30可以解析这种语法元素,并相应地解码相关视频数据。
[0145]
为便于描述,参考通用视频编码(versatile video coding,vvc)参考软件或由itu-t视频编码专家组(video coding experts group,vceg)和iso/iec运动图像专家组(motion picture experts group,mpeg)的视频编码联合工作组(joint collaboration team on video coding,jct-vc)开发的高性能视频编码(high-efficiency video coding,hevc)描述本技术实施例。本领域普通技术人员理解本技术实施例不限于hevc或vvc。
[0146]
编码器和编码方法
[0147]
图2为本技术实施例的视频编码器20的示例性框图。如图2所示,视频编码器20包括输入端(或输入接口)201、残差计算单元204、变换处理单元206、量化单元208、反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器(decoded picture buffer,dpb)230、模式选择单元260、熵编码单元270和输出端(或输出接口)272。模式选择单元260可包括帧间预测单元244、帧内预测单元254和分割单元262。帧间预测单元244可包括运动估计单元和运动补偿单元(未示出)。图2所示的视频编码器20也可称为混合型视频编码器或基于混合型视频编解码器的视频编码器。
[0148]
参见图2,帧间预测单元244用于处理输入图像或图像区域或图像块,以生成输入图像块的预测值。例如,帧间预测单元244用于接收输入的图像或图像区域或图像块,并且生成输入的图像或图像区域或图像块的预测值。
[0149]
残差计算单元204、变换处理单元206、量化单元208和模式选择单元260组成编码器20的前向信号路径,而反量化单元210、逆变换处理单元212、重建单元214、缓冲器216、环路滤波器220、解码图像缓冲器(decoded picture buffer,dpb)230、帧间预测单元244和帧内预测单元254组成编码器的后向信号路径,其中编码器20的后向信号路径对应于解码器的信号路径(参见图3中的解码器30)。反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。
[0150]
图像和图像分割(图像和块)
[0151]
编码器20可用于通过输入端201等接收图像(或图像数据)17,例如,形成视频或视频序列的图像序列中的图像。接收的图像或图像数据也可以是预处理后的图像(或预处理后的图像数据)19。为简单起见,以下描述使用图像17。图像17也可称为当前图像或待编码的图像(尤其是在视频编码中将当前图像与其它图像区分开时,其它图像例如同一视频序列,即也包括当前图像的视频序列,中的之前编码后图像和/或解码后图像)。
[0152]
(数字)图像为或可以视为具有强度值的像素点组成的二维阵列或矩阵。阵列中的像素点也可以称为像素(pixel或pel)(图像元素的简称)。阵列或图像在水平方向和垂直方向(或轴线)上的像素点数量决定了图像的大小和/或分辨率。为了表示颜色,通常采用三个颜色分量,即图像可以表示为或包括三个像素点阵列。在rbg格式或颜色空间中,图像包括对应的红色、绿色和蓝色像素点阵列。但是,在视频编码中,每个像素通常以亮度/色度格式或颜色空间表示,例如ycbcr,包括y指示的亮度分量(有时也用l表示)以及cb、cr表示的两个色度分量。亮度(luma)分量y表示亮度或灰度水平强度(例如,在灰度等级图像中两者相同),而两个色度(chrominance,简写为chroma)分量cb和cr表示色度或颜色信息分量。相应地,ycbcr格式的图像包括亮度像素点值(y)的亮度像素点阵列和色度值(cb和cr)的两个色
度像素点阵列。rgb格式的图像可以转换或变换为ycbcr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是黑白的,则该图像可以只包括亮度像素点阵列。相应地,图像可以为例如单色格式的亮度像素点阵列或4:2:0、4:2:2和4:4:4彩色格式的亮度像素点阵列和两个相应的色度像素点阵列。
[0153]
在一个实施例中,视频编码器20的实施例可包括图像分割单元(图2中未示出),用于将图像17分割成多个(通常不重叠)图像块203。这些块在h.265/hevc和vvc标准中也可以称为根块、宏块(h.264/avc)或编码树块(coding tree block,ctb),或编码树单元(coding tree unit,ctu)。分割单元可用于对视频序列中的所有图像使用相同的块大小和使用限定块大小的对应网格,或在图像或图像子集或图像组之间改变块大小,并将每个图像分割成对应块。
[0154]
在其它实施例中,视频编码器可用于直接接收图像17的图像块203,例如,组成所述图像17的一个、几个或所有图像块。图像块203也可以称为当前图像块或待编码图像块。
[0155]
与图像17一样,图像块203同样是或可认为是具有强度值(像素点值)的像素点组成的二维阵列或矩阵,但是图像块203的比图像17的小。换句话说,图像块203可包括一个像素点阵列(例如,单色图像17情况下的亮度阵列或彩色图像情况下的亮度阵列或色度阵列)或三个像素点阵列(例如,彩色图像17情况下的一个亮度阵列和两个色度阵列)或根据所采用的颜色格式的任何其它数量和/或类型的阵列。图像块203的水平方向和垂直方向(或轴线)上的像素点数量限定了图像块203的大小(也可称为尺寸)。相应地,块可以为m
×
n(m列
×
n行)个像素点阵列,或m
×
n个变换系数阵列等。
[0156]
在一个实施例中,图2所示的视频编码器20用于逐块对图像17进行编码,例如,对每个图像块203执行编码和预测。
[0157]
在一个实施例中,图2所示的视频编码器20还可以用于使用片(也称为视频片)分割和/或编码图像,其中图像可以使用一个或多个片(通常为不重叠的)进行分割或编码。每个片可包括一个或多个块(例如,编码树单元ctu)或一个或多个块组(例如h.265/hevc/vvc标准中的编码区块(tile)和vvc标准中的砖(brick)。
[0158]
在一个实施例中,图2所示的视频编码器20还可以用于使用片/编码区块组(也称为视频编码区块组)和/或编码区块(也称为视频编码区块)对图像进行分割和/或编码,其中图像可以使用一个或多个片/编码区块组(通常为不重叠的)进行分割或编码,每个片/编码区块组可包括一个或多个块(例如ctu)或一个或多个编码区块等,其中每个编码区块可以为矩形等形状,可包括一个或多个完整或部分块(例如ctu)。
[0159]
残差计算
[0160]
残差计算单元204用于通过如下方式根据图像块(或原始块)203和预测块265来计算残差块205(后续详细介绍了预测块265):例如,逐个像素点(逐个像素)从图像块203的像素点值中减去预测块265的像素点值,得到像素域中的残差块205。
[0161]
变换
[0162]
变换处理单元206用于对残差块205的像素点值执行离散余弦变换(discrete cosine transform,dct)或离散正弦变换(discrete sine transform,dst)等,得到变换域中的变换系数207。变换系数207也可称为变换残差系数,表示变换域中的残差块205。
[0163]
变换处理单元206可用于应用dct/dst的整数化近似,例如为h.265/hevc指定的变
换。与正交dct变换相比,这种整数化近似通常由某一因子按比例缩放。为了维持经过正变换和逆变换处理的残差块的范数,使用其它比例缩放因子作为变换过程的一部分。比例缩放因子通常是根据某些约束条件来选择的,例如比例缩放因子是用于移位运算的2的幂、变换系数的位深度、准确性与实施成本之间的权衡等。例如,在编码器20侧通过逆变换处理单元212为逆变换(以及在解码器30侧通过例如逆变换处理单元312为对应逆变换)指定具体的比例缩放因子,以及相应地,可以在编码器20侧通过变换处理单元206为正变换指定对应比例缩放因子。
[0164]
在一个实施例中,视频编码器20(对应地,变换处理单元206)可用于输出一种或多种变换的类型等变换参数,例如,直接输出或由熵编码单元270进行编码或压缩后输出,例如使得视频解码器30可接收并使用变换参数进行解码。
[0165]
量化
[0166]
量化单元208用于通过例如标量量化或矢量量化对变换系数207进行量化,得到量化变换系数209。量化变换系数209也可称为量化残差系数209。
[0167]
量化过程可减少与部分或全部变换系数207有关的位深度。例如,可在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m。可通过调整量化参数(quantization parameter,qp)修改量化程度。例如,对于标量量化,可以应用不同程度的比例来实现较细或较粗的量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。可通过量化参数(quantization parameter,qp)指示合适的量化步长。例如,量化参数可以为合适的量化步长的预定义集合的索引。例如,较小的量化参数可对应精细量化(较小量化步长),较大的量化参数可对应粗糙量化(较大量化步长),反之亦然。量化可包括除以量化步长,而反量化单元210等执行的对应或逆解量化可包括乘以量化步长。根据例如hevc一些标准的实施例可用于使用量化参数来确定量化步长。一般而言,可以根据量化参数使用包含除法的等式的定点近似来计算量化步长。可以引入其它比例缩放因子来进行量化和解量化,以恢复可能由于在用于量化步长和量化参数的等式的定点近似中使用的比例而修改的残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化的比例。或者,可以使用自定义量化表并在比特流中等将其从编码器向解码器指示。量化是有损操作,其中量化步长越大,损耗越大。
[0168]
在一个实施例中,视频编码器20(对应地,量化单元208)可用于输出量化参数(quantization parameter,qp),例如,直接输出或由熵编码单元270进行编码或压缩后输出,例如使得视频解码器30可接收并使用量化参数进行解码。
[0169]
反量化
[0170]
反量化单元210用于对量化系数执行量化单元208的反量化,得到解量化系数211,例如,根据或使用与量化单元208相同的量化步长执行与量化单元208所执行的量化方案的反量化方案。解量化系数211也可称为解量化残差系数211,对应于变换系数207,但是由于量化造成损耗,反量化系数211通常与变换系数不完全相同。
[0171]
逆变换
[0172]
逆变换处理单元212用于执行变换处理单元206执行的变换的逆变换,例如,逆离散余弦变换(discrete cosine transform,dct)或逆离散正弦变换(discrete sine transform,dst),以在像素域中得到重建残差块213(或对应的解量化系数213)。重建残差
块213也可称为变换块213。
[0173]
重建
[0174]
重建单元214(例如,求和器214)用于将变换块213(即重建残差块213)添加到预测块265,以在像素域中得到重建块215,例如,将重建残差块213的像素点值和预测块265的像素点值相加。
[0175]
滤波
[0176]
环路滤波器单元220(或简称“环路滤波器”220)用于对重建块215进行滤波,得到滤波块221,或通常用于对重建像素点进行滤波以得到滤波像素点值。例如,环路滤波器单元用于顺利进行像素转变或提高视频质量。环路滤波器单元220可包括一个或多个环路滤波器,例如去块滤波器、像素点自适应偏移(sample-adaptive offset,sao)滤波器或一个或多个其它滤波器,例如自适应环路滤波器(adaptive loop filter,alf)、噪声抑制滤波器(noise suppression filter,nsf)或任意组合。例如,环路滤波器单元220可以包括去块滤波器、sao滤波器和alf滤波器。滤波过程的顺序可以是去块滤波器、sao滤波器和alf滤波器。再例如,增加一个称为具有色度缩放的亮度映射(luma mapping with chroma scaling,lmcs)(即自适应环内整形器)的过程。该过程在去块之前执行。再例如,去块滤波过程也可以应用于内部子块边缘,例如仿射子块边缘、atmvp子块边缘、子块变换(sub-block transform,sbt)边缘和内子部分(intra sub-partition,isp)边缘。尽管环路滤波器单元220在图2中示为环路滤波器,但在其它配置中,环路滤波器单元220可以实现为环后滤波器。滤波块221也可称为滤波重建块221。
[0177]
在一个实施例中,视频编码器20(对应地,环路滤波器单元220)可用于输出环路滤波器参数(例如sao滤波参数、alf滤波参数或lmcs参数),例如,直接输出或由熵编码单元270进行熵编码后输出,例如使得解码器30可接收并使用相同或不同的环路滤波器参数进行解码。
[0178]
解码图像缓冲器
[0179]
解码图像缓冲器(decoded picture buffer,dpb)230可以是存储参考图像数据以供视频编码器20在编码视频数据时使用的参考图像存储器。dpb 230可以由多种存储器设备中的任一种形成,例如动态随机存取存储器(dynamic random access memory,dram),包括同步dram(synchronous dram,sdram)、磁阻ram(magnetoresistive ram,mram)、电阻ram(resistive ram,rram)或其它类型的存储设备。解码图像缓冲器230可用于存储一个或多个滤波块221。解码图像缓冲器230还可用于存储同一当前图像或例如之前的重建图像等不同图像的其它之前的滤波块,例如之前重建和滤波的块221,并可提供完整的之前重建即解码图像(和对应参考块和像素点)和/或部分重建的当前图像(和对应参考块和像素点),例如用于帧间预测。解码图像缓冲器230还可用于存储一个或多个未经滤波的重建块215,或一般存储未经滤波的重建像素点,例如,未被环路滤波单元220滤波的重建块215,或未进行任何其它处理的重建块或重建像素点。
[0180]
模式选择(分割和预测)
[0181]
模式选择单元260包括分割单元262、帧间预测单元244和帧内预测单元254,用于从解码图像缓冲器230或其它缓冲器(例如,列缓冲器,图中未显示)接收或获得原始块203(当前图像17的当前块203)和重建图像数据等原始图像数据,例如,同一(当前)图像和/或
一个或多个之前解码图像的滤波和/或未经滤波的重建像素点或重建块。重建图像数据用作帧间预测或帧内预测等预测所需的参考图像数据,以得到预测块265或预测值265。
[0182]
模式选择单元260可用于为当前块(包括不分割)和预测模式(例如帧内或帧间预测模式)确定或选择一种分割,生成对应的预测块265,以对残差块205进行计算和对重建块215进行重建。
[0183]
在一个实施例中,模式选择单元260可用于选择分割和预测模式(例如,从模式选择单元260支持的或可用的预测模式中),所述预测模式提供最佳匹配或者说最小残差(最小残差是指传输或存储中更好的压缩),或者提供最小信令开销(最小信令开销是指传输或存储中更好的压缩),或者同时考虑或平衡以上两者。模式选择单元260可用于根据码率失真优化(rate distortion optimization,rdo)确定分割和预测模式,即选择提供最小码率失真优化的预测模式。本文“最佳”、“最低”、“最优”等术语不一定指总体上“最佳”、“最低”、“最优”的,但也可以指满足终止或选择标准的情况,例如,超过或低于阈值的值或其他限制可能导致“次优选择”,但会降低复杂度和处理时间。
[0184]
换言之,分割单元262可用于将视频序列中的图像分割为编码树单元(coding tree unit,ctu)序列,ctu 203可进一步被分割成较小的块部分或子块(再次形成块),例如,通过迭代使用四叉树(quad-tree partitioning,qt)分割、二叉树(binary-tree partitioning,bt)分割或三叉树(triple-tree partitioning,tt)分割或其任意组合,并且用于例如对块部分或子块中的每一个执行预测,其中模式选择包括选择分割块203的树结构和选择应用于块部分或子块中的每一个的预测模式。
[0185]
下文将详细地描述由视频编码器20执行的分割(例如,由分割单元262执行)和预测处理(例如,由帧间预测单元244和帧内预测单元254执行)。
[0186]
分割
[0187]
分割单元262可将一个图像块(或ctu)203分割(或划分)为较小的部分,例如正方形或矩形形状的小块。对于具有三个像素点阵列的图像,一个ctu由n
×
n个亮度像素点块和两个对应的色度像素点块组成。ctu中亮度块的最大允许大小在正在开发的通用视频编码(versatile video coding,vvc)标准中被指定为128
×
128,但是将来可指定为不同于128
×
128的值,例如256
×
256。图像的ctu可以集中/分组为片/编码区块组、编码区块或砖。一个编码区块覆盖着一个图像的矩形区域,一个编码区块可以分成一个或多个砖。一个砖由一个编码区块内的多个ctu行组成。没有分割为多个砖的编码区块可以称为砖。但是,砖是编码区块的真正子集,因此不称为编码区块。vvc支持两种编码区块组模式,分别为光栅扫描片/编码区块组模式和矩形片模式。在光栅扫描编码区块组模式,一个片/编码区块组包含一个图像的编码区块光栅扫描中的编码区块序列。在矩形片模式中,片包含一个图像的多个砖,这些砖共同组成图像的矩形区域。矩形片内的砖按照片的砖光栅扫描顺序排列。这些较小块(也可称为子块)可进一步分割为更小的部分。这也称为树分割或分层树分割,其中在根树级别0(层次级别0、深度0)等的根块可以递归地分割为两个或两个以上下一个较低树级别的块,例如树级别1(层次级别1、深度1)的节点。这些块可以又分割为两个或两个以上下一个较低级别的块,例如树级别2(层次级别2、深度2)等,直到分割结束(因为满足结束标准,例如达到最大树深度或最小块大小)。未进一步分割的块也称为树的叶块或叶节点。分割为两个部分的树称为二叉树(binary-tree,bt),分割为三个部分的树称为三叉树
(ternary-tree,tt),分割为四个部分的树称为四叉树(quad-tree,qt)。
[0188]
例如,编码树单元(ctu)可以为或包括亮度像素点的ctb、具有三个像素点阵列的图像的色度像素点的两个对应ctb、或单色图像的像素点的ctb或使用三个独立颜色平面和语法结构(用于编码像素点)编码的图像的像素点的ctb。相应地,编码树块(ctb)可以为n
×
n个像素点块,其中n可以设为某个值使得分量划分为ctb,这就是分割。编码单元(coding unit,cu)可以为或包括亮度像素点的编码块、具有三个像素点阵列的图像的色度像素点的两个对应编码块、或单色图像的像素点的编码块或使用三个独立颜色平面和语法结构(用于编码像素点)编码的图像的像素点的编码块。相应地,编码块(cb)可以为m
×
n个像素点块,其中m和n可以设为某个值使得ctb划分为编码块,这就是分割。
[0189]
例如,在实施例中,根据hevc可通过使用表示为编码树的四叉树结构将编码树单元(ctu)划分为多个cu。在叶cu级作出是否使用帧间(时间)预测或帧内(空间)预测对图像区域进行编码的决定。每个叶cu可以根据pu划分类型进一步划分为一个、两个或四个pu。一个pu内使用相同的预测过程,并以pu为单位向解码器传输相关信息。在根据pu划分类型应用预测过程得到残差块之后,可以根据类似于用于cu的编码树的其它四叉树结构将叶cu分割为变换单元(tu)。
[0190]
例如,在实施例中,根据当前正在开发的最新视频编码标准(称为通用视频编码(vvc),使用嵌套多类型树(例如二叉树和三叉树)的组合四叉树来划分用于分割编码树单元的分段结构。在编码树单元内的编码树结构中,cu可以为正方形或矩形。例如,编码树单元(ctu)首先由四叉树结构进行分割。四叉树叶节点进一步由多类型树结构分割。多类型树形结构有四种划分类型:垂直二叉树划分(split_bt_ver)、水平二叉树划分(split_bt_hor)、垂直三叉树划分(split_tt_ver)和水平三叉树划分(split_tt_hor)。多类型树叶节点称为编码单元(cu),除非cu对于最大变换长度而言太大,这样的分段用于预测和变换处理,无需其它任何分割。在大多数情况下,这表示cu、pu和tu在四叉树嵌套多类型树的编码块结构中的块大小相同。当最大支持变换长度小于cu的彩色分量的宽度或高度时,就会出现该异常。vvc制定了具有四叉树嵌套多类型树的编码结构中的分割划分信息的唯一信令机制。在信令机制中,编码树单元(ctu)作为四叉树的根首先被四叉树结构分割。然后每个四叉树叶节点(当足够大可以被)被进一步分割为一个多类型树结构。在多类型树结构中,通过第一标识(mtt_split_cu_flag)指示节点是否进一步分割,当对节点进一步分割时,先用第二标识(mtt_split_cu_vertical_flag)指示划分方向,再用第三标识(mtt_split_cu_binary_flag)指示划分是二叉树划分或三叉树划分。根据mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag的值,解码器可以基于预定义规则或表格推导出cu的多类型树划分模式(mttsplitmode)。需要说明的是,对于某种设计,例如vvc硬件解码器中的64
×
64的亮度块和32
×
32的色度流水线设计,当亮度编码块的宽度或高度大于64时,不允许进行tt划分。当色度编码块的宽度或高度大于32时,也不允许tt划分。流水线设计将图像分为多个虚拟流水线数据单元(virtual pipeline data unit,vpdu),每个vpdu在图像中定义为互不重叠的单元。在硬件解码器中,连续的vpdu在多个流水线阶段同时处理。在大多数流水线阶段,vpdu大小与缓冲器大小大致成正比,因此需要保持较小的vpdu。在大多数硬件解码器中,vpdu大小可以设置为最大变换块(transform block,tb)大小。但是,在vvc中,三叉树(tt)和二叉树(bt)的分割可能会增加vpdu的大小。
[0191]
另外,需要说明的是,当树节点块的一部分超出底部或图像右边界时,强制对该树节点块进行划分,直到每个编码cu的所有像素点都位于图像边界内。
[0192]
例如,所述帧内子分割(intra sub-partitions,isp)工具可以根据块大小将亮度帧内预测块垂直或水平地分为两个或四个子部分。
[0193]
在一个示例中,视频编码器20的模式选择单元260可以用于执行上文描述的分割技术的任意组合。
[0194]
如上所述,视频编码器20用于从(预定的)预测模式集合中确定或选择最好或最优的预测模式。预测模式集合可包括例如帧内预测模式和/或帧间预测模式。
[0195]
帧内预测
[0196]
帧内预测模式集合可包括35种不同的帧内预测模式,例如,像dc(或均值)模式和平面模式的非方向性模式,或如hevc定义的方向性模式,或者可包括67种不同的帧内预测模式,例如,像dc(或均值)模式和平面模式的非方向性模式,或如vvc中定义的方向性模式。例如,若干传统角度帧内预测模式自适应地替换为vvc中定义的非正方形块的广角帧内预测模式。又例如,为了避免dc预测的除法运算,仅使用较长边来计算非正方形块的平均值。并且,平面模式的帧内预测结果还可以使用位置决定的帧内预测组合(positiondependent intra prediction combination,pdpc)方法修改。
[0197]
帧内预测单元254用于根据帧内预测模式集合中的帧内预测模式使用同一当前图像的相邻块的重建像素点来生成帧内预测块265。
[0198]
帧内预测单元254(或通常为模式选择单元260)还用于输出帧内预测参数(或通常为指示块的选定帧内预测模式的信息,或本技术所述的帧内预测模式语法元素值集合的索引)以语法元素266的形式发送到熵编码单元270,以包含到编码图像数据21中,从而视频解码器30可执行操作,例如接收并使用用于解码的预测参数。
[0199]
其中,帧内预测单元254可以执行本技术提供的方案,确定选定帧内预测模式的信息对应的帧内预测模式语法元素值集合的索引(语法元素266的形式),其具体实现详见本技术方法实施例的介绍。
[0200]
需要说明的是,确定选定帧内预测模式的信息对应的帧内预测模式语法元素值集合的索引可以由帧内预测单元254执行,也可以由与帧内预测单元254分立部署的单元执行,本技术实施例对此不予限定。
[0201]
hevc中的帧内预测模式包括直流预测模式,平面预测模式和33种角度预测模式,共计35个候选预测模式。当前块可以使用左侧和上方已重建图像块的像素作为参考进行帧内预测。当前块的周边区域中用来对当前块进行帧内预测的图像块成为参考块,参考块中的像素称为参考像素。35个候选预测模式中,直流预测模式适用于当前块中纹理平坦的区域,该区域中所有像素均使用参考块中的参考像素的平均值作为预测;平面预测模式适用于纹理平滑变化的图像块,符合该条件的当前块使用参考块中的参考像素进行双线性插值作为当前块中的所有像素的预测;角度预测模式利用当前块的纹理与相邻已重建图像块的纹理高度相关的特性,沿某一角度复制对应的参考块中的参考像素的值作为当前块中的所有像素的预测。
[0202]
hevc编码器给当前块从35个候选预测模式中选择一个最优帧内预测模式,并将该最优帧内预测模式写入视频码流。为提升帧内预测的编码效率,编码器/解码器会从周边区
域中、采用帧内预测的已重建图像块各自的最优帧内预测模式中推导出3个最可能模式,如果给当前块选择的最优帧内预测模式是这3个最可能模式的其中之一,则编码一个第一索引指示所选择的最优帧内预测模式是这3个最可能模式的其中之一;如果选中的最优帧内预测模式不是这3个最可能模式,则编码一个第二索引指示所选择的最优帧内预测模式是其他32个模式(35个候选预测模式中除前述3个最可能模式外的其他模式)的其中之一。hevc标准使用5比特的定长码作为前述第二索引。
[0203]
hevc编码器推导出3个最可能模式的方法包括:选取当前块的左相邻图像块和上相邻图像块的最优帧内预测模式放入集合,如果这两个最优帧内预测模式相同,则集合中只保留一个即可。如果这两个最优帧内预测模式相同且均为角度预测模式,则再选取与该角度方向邻近的两个角度预测模式加入集合;否则,依次选择平面预测模式、直流模式模式和竖直预测模式加入集合,直到集合中的模式数量达到3。
[0204]
hevc解码器对码流做熵解码后,获得当前块的模式信息,该模式信息包括指示当前块的最优帧内预测模式是否在3个最可能模式中的指示标识,以及当前块的最优帧内预测模式在3个最可能模式中的索引或者当前块的最优帧内预测模式在其他32个模式中的索引。
[0205]
帧间预测
[0206]
在可能的实现中,帧间预测模式集合取决于可用参考图像(即,例如前述存储在dbp 230中的至少部分之前解码的图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或只使用参考图像的一部分,例如当前块的区域附近的搜索窗口区域,来搜索最佳匹配参考块,和/或例如取决于是否执行半像素、四分之一像素和/或16分之一内插的像素内插。
[0207]
除上述预测模式外,还可以采用跳过模式和/或直接模式。
[0208]
例如,扩展合并预测,这个模式的合并候选列表由以下五个候选类型按顺序组成:来自空间相邻cu的空间mvp、来自并置cu的时间mvp、来自fifo表的基于历史的mvp、成对平均mvp和零mv。可以使用基于双边匹配的解码器侧运动矢量修正(decoder side motion vector refinement,dmvr)来增加合并模式的mv的准确度。带有mvd的合并模式(merge mode withmvd,mmvd)来自有运动矢量差异的合并模式。在发送跳过标志和合并标志之后立即发送mmvd标志,以指定cu是否使用mmvd模式。可以使用cu级自适应运动矢量分辨率(adaptive motionvector resolution,amvr)方案。amvr支持cu的mvd以不同的精度进行编码。根据当前cu的预测模式,自适应地选择当前cu的mvd。当cu以合并模式进行编码时,可以将合并的帧间/帧内预测(combined inter/intra prediction,ciip)模式应用于当前cu。对帧间和帧内预测信号进行加权平均,得到ciip预测。对于仿射运动补偿预测,通过2个控制点(4参数)或3个控制点(6参数)运动矢量的运动信息来描述块的仿射运动场。基于子块的时间运动矢量预测(subblock-based temporalmotionvector prediction,sbtmvp),与hevc中的时间运动矢量预测(temporal motionvector prediction,tmvp)类似,但预测的是当前cu内的子cu的运动矢量。双向光流(bi-directional optical flow,bdof)以前称为bio,是一种减少计算的简化版本,特别是在乘法次数和乘数大小方面的计算。在三角形分割模式中,cu以对角线划分和反对角线划分两种划分方式被均匀划分为两个三角形部分。此外,双向预测模式在简单平均的基础上进行了扩展,以支持两个预测信号的加权平均。
[0209]
帧间预测单元244可包括运动估计(motionestimation,me)单元和运动补偿(motion compensation,mc)单元(两者在图2中未示出)。运动估计单元可用于接收或获取图像块203(当前图像17的当前图像块203)和解码图像231,或至少一个或多个之前重建块,例如,一个或多个其它/不同之前解码图像231的重建块,来进行运动估计。例如,视频序列可包括当前图像和之前的解码图像231,或换句话说,当前图像和之前的解码图像231可以为形成视频序列的图像序列的一部分或形成该图像序列。
[0210]
例如,编码器20可用于从多个其它图像中的同一或不同图像的多个参考块中选择参考块,并将参考图像(或参考图像索引)和/或参考块的位置(x、y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元。该偏移也称为运动矢量(motion vector,mv)。
[0211]
运动补偿单元用于获取,例如接收,帧间预测参数,并根据或使用该帧间预测参数执行帧间预测,得到帧间预测块246。由运动补偿单元执行的运动补偿可能包含根据通过运动估计确定的运动/块矢量来提取或生成预测块,还可能包括对子像素精度执行内插。内插滤波可从已知像素的像素点中产生其它像素的像素点,从而潜在地增加可用于对图像块进行编码的候选预测块的数量。一旦接收到当前图像块的pu对应的运动矢量时,运动补偿单元可在其中一个参考图像列表中定位运动矢量指向的预测块。
[0212]
运动补偿单元还可以生成与块和视频片相关的语法元素,以供视频解码器30在解码视频片的图像块时使用。此外,或者作为片和相应语法元素的替代,可以生成或使用编码区块组和/或编码区块以及相应语法元素。
[0213]
在获取先进的运动矢量预测(advanced motion vector prediction,amvp)模式中的候选运动矢量列表的过程中,作为备选可以加入候选运动矢量列表的运动矢量(motion vector,mv)包括当前块的空域相邻和时域相邻的图像块的mv,其中空域相邻的图像块的mv又可以包括位于当前块左侧的左方候选图像块的mv和位于当前块上方的上方候选图像块的mv。
[0214]
得到上述候选运动矢量列表后,通过率失真代价(rate distortion cost,rd cost)从候选运动矢量列表中确定最优的mv,将rd cost最小的候选运动矢量作为当前块的运动矢量预测值(motion vector predictor,mvp)。率失真代价由以下公式计算获得:
[0215]
j=sad λr
[0216]
其中,j表示rd cost,sad为使用候选运动矢量进行运动估计后得到的预测块的像素值与当前块的像素值之间的绝对误差和(sum of absolute differences,sad),r表示码率,λ表示拉格朗日乘子。
[0217]
编码端将确定出的mvp在候选运动矢量列表中的索引传递到解码端。进一步地,可以在mvp为中心的邻域内进行运动搜索获得当前块实际的运动矢量,编码端计算mvp与实际的运动矢量之间的运动矢量差值(motion vector difference,mvd),并将mvd也传递到解码端。解码端解析索引,根据该索引在候选运动矢量列表中找到对应的mvp,解析mvd,将mvd与mvp相加得到当前块实际的运动矢量。
[0218]
在获取融合(merge)模式中的候选运动信息列表的过程中,作为备选可以加入候选运动信息列表的运动信息包括当前块的空域相邻或时域相邻的图像块的运动信息,若空域相邻块不可得或者为帧内预测,则其运动信息不加入候选运动信息列表。当前块的时域
的候选运动信息根据参考帧和当前帧的图序计数(picture order count,poc)对参考帧中对应位置块的mv进行缩放后获得,先判断参考帧中位置为t的块是否可得,若不可得则选择位置为c的块。得到上述候选运动信息列表后,通过rd cost从候选运动信息列表中确定最优的运动信息作为当前块的运动信息。编码端将最优的运动信息在候选运动信息列表中位置的索引值(记为merge index)传递到解码端。
[0219]
熵编码
[0220]
熵编码单元270用于将熵编码算法或方案(例如,可变长度编码(variable length coding,vlc)方案、上下文自适应vlc方案(context adaptive vlc,calvc)、算术编码方案、二值化算法、上下文自适应二进制算术编码(context adaptive binary arithmetic coding,cabac)、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,sbac)、概率区间分割熵(probability interval partitioning entropy,pipe)编码或其它熵编码方法或技术)应用于量化残差系数209、帧间预测参数、帧内预测参数(或通常为指示块的选定帧内预测模式的信息,或本技术所述的帧内预测模式语法元素值集合的索引)、环路滤波器参数和/或其它语法元素,得到可以通过输出端272以编码比特流21等形式输出的编码图像数据21,使得视频解码器30等可以接收并使用用于解码的参数。可将编码比特流21传输到视频解码器30,或将其保存在存储器中稍后由视频解码器30传输或检索。
[0221]
示例性的,与上一代国际视频编码标准hevc相比,vvc中引入了一些新的帧内预测技术,包括基于矩阵的帧内预测(matrix-based intra prediction,mip),多参考线(multiple reference line,mrl),以及帧内子块划分(intra sub-partitions,isp)。此外,vvc将帧内预测方向的数目从hevc中的33个扩展到了65个,最有可能模式(most probable modes,mpm)的数目从hevc中的3个扩展到了6个。
[0222]
在vvc中,采用基于上下文自适应的二进制算术编码器(context adaptive binary arithmetic coding,cabac)对多个语法元素值进行熵编码,其编码过程可以分为三步:二值化、上下文建模和算术编码。如果某个语法元素的值不是二值的,则首先对其进行二值化。然后,对于每个比特,存在两种编码模式:常规编码模式和旁路编码模式。在常规编码模式中,每个比特的概率依照它的上下文模型进行估计,然后将比特的值和估计得到的概率分布送入算术编码器中,之后更新该比特的上下文模型。在旁路编码模式中,每个比特按照等概率进行编码以加速编码过程。
[0223]
在vcc中,帧内预测模式相关的语法元素值集合包括mip标志位,mip模式,多行参考索引,isp模式,mpm标志位,mpm索引和帧内预测模式等。图1a展示了一种vvc帧内预测模式编码方法的流程图,对于一个预测块,首先编码其mip标志位(采用常规编码模式)。如果mip标志位为真,则继续编码mip模式(旁路编码模式);否则,依次编码多行参考索引(常规编码模式)、isp模式(常规编码模式)以及mpm标志位(常规编码模式)。如果mpm标志位为真,则继续编码mpm索引(旁路编码模式);否则,编码帧内预测模式(旁路编码模式)。
[0224]
在本技术实施例中,以vvc帧内预测模式编码为例,熵编码单元270可以将帧内预测模式相关的语法元素值集合(包括mip标志位,mip模式,多行参考索引,isp模式,mpm标志位,mpm索引和帧内预测模式等)的索引(由帧内预测单元254提供)进行熵编码。
[0225]
视频编码器20的其它结构变体可用于对视频流进行编码。例如,基于非变换的编
码器20可以在某些块或帧没有变换处理单元206的情况下直接量化残差信号。在另一种实现方式中,编码器20可以具有组合成单个单元的量化单元208和反量化单元210。
[0226]
解码器和解码方法
[0227]
图3为本技术实施例的视频解码器30的示例性框图。视频解码器30用于接收例如由编码器20编码的编码图像数据21(例如编码比特流21),得到解码图像331。编码图像数据或比特流包括用于解码所述编码图像数据的信息,例如表示编码视频片(和/或编码区块组或编码区块)的图像块的数据和相关的语法元素(例如本技术所述的帧内预测模式语法元素值集合的索引)。
[0228]
在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如求和器314)、环路滤波器320、解码图像缓冲器(dbp)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以为或包括运动补偿单元。在一些示例中,视频解码器30可执行大体上与参照图2的视频编码器20描述的编码过程相反的解码过程。
[0229]
参见图3,帧间预测单元344用于处理输入图像或图像区域或图像块,以生成输入图像块的预测值。例如,帧间预测单元344用于接收输入的图像或图像区域或图像块,并且生成输入的图像或图像区域或图像块的预测值。
[0230]
如编码器20所述,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器dpb230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置编码器”,相应地,反量化单元310、逆变换处理单元312、重建单元314、环路滤波器320、解码图像缓冲器330、帧间预测单元344和帧内预测单元354还组成视频解码器30的“内置解码器”。反量化单元310在功能上可与反量化单元110相同,逆变换处理单元312在功能上可与逆变换处理单元212相同,重建单元314在功能上可与重建单元214相同,环路滤波器320在功能上可与环路滤波器220相同,解码图像缓冲器330在功能上可与解码图像缓冲器230相同。因此,视频编码器20的相应单元和功能的解释相应地适用于视频解码器30的相应单元和功能。
[0231]
熵解码
[0232]
熵解码单元304用于解析比特流21(或一般为编码图像数据21)并对编码图像数据21执行熵解码,得到量化系数309和/或解码后的编码参数(图3中未示出)等,例如帧间预测参数(例如参考图像索引和运动矢量)、帧内预测参数(例如帧内预测模式或索引,或本技术所述的帧内预测模式语法元素值集合的索引)、变换参数、量化参数、环路滤波器参数和/或其它语法元素等中的任一个或全部。熵解码单元304可用于应用编码器20的熵编码单元270的编码方案对应的解码算法或方案。熵解码单元304还可用于向模式应用单元360提供帧间预测参数、帧内预测参数(例如本技术所述的帧内预测模式语法元素值集合的索引)和/或其它语法元素,以及向解码器30的其它单元提供其它参数。视频解码器30可以接收视频片和/或视频块级的语法元素。此外,或者作为片和相应语法元素的替代,可以接收或使用编码区块组和/或编码区块以及相应语法元素。
[0233]
进一步的,熵解码单元304向模式应用单元360提供的帧内预测参数(例如本技术所述的帧内预测模式语法元素值集合的索引),可以由帧内预测单元354执行本技术的方案,根据帧内预测模式语法元素值集合的索引,确定帧内预测模式语法元素值集合,进而执
行帧间预测,其具体实现详见本技术方法实施例的介绍。
[0234]
需要说明的是,根据帧内预测模式语法元素值集合的索引,确定帧内预测模式语法元素值集合,可以由帧内预测单元354执行,也可以由与帧内预测单元354分立部署的单元执行,本技术实施例对此不予限定。
[0235]
反量化
[0236]
反量化单元310可用于从编码图像数据21(例如通过熵解码单元304解析和/或解码)接收量化参数(quantization parameter,qp)(或一般为与反量化相关的信息)和量化系数,并基于所述量化参数对所述解码的量化系数309进行反量化以获得反量化系数311,所述反量化系数311也可以称为变换系数311。反量化过程可包括使用视频编码器20为视频片中的每个视频块计算的量化参数来确定量化程度,同样也确定需要执行的反量化的程度。
[0237]
逆变换
[0238]
逆变换处理单元312可用于接收解量化系数311,也称为变换系数311,并对解量化系数311应用变换以得到像素域中的重建残差块213。重建残差块213也可称为变换块313。变换可以为逆变换,例如逆dct、逆dst、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于从编码图像数据21(例如通过熵解码单元304解析和/或解码)接收变换参数或相应信息,以确定应用于解量化系数311的变换。
[0239]
重建
[0240]
重建单元314(例如,求和器314)用于将重建残差块313添加到预测块365,以在像素域中得到重建块315,例如,将重建残差块313的像素点值和预测块365的像素点值相加。
[0241]
滤波
[0242]
环路滤波器单元320(在编码环路中或之后)用于对重建块315进行滤波,得到滤波块321,从而顺利进行像素转变或提高视频质量等。环路滤波器单元320可包括一个或多个环路滤波器,例如去块滤波器、像素点自适应偏移(sample-adaptive offset,sao)滤波器或一个或多个其它滤波器,例如自适应环路滤波器(adaptive loop filter,alf)、噪声抑制滤波器(noise suppression filter,nsf)或任意组合。例如,环路滤波器单元220可以包括去块滤波器、sao滤波器和alf滤波器。滤波过程的顺序可以是去块滤波器、sao滤波器和alf滤波器。再例如,增加一个称为具有色度缩放的亮度映射(luma mapping with chroma scaling,lmcs)(即自适应环内整形器)的过程。该过程在去块之前执行。再例如,去块滤波过程也可以应用于内部子块边缘,例如仿射子块边缘、atmvp子块边缘、子块变换(sub-block transform,sbt)边缘和内子部分(intra sub-partition,isp)边缘。尽管环路滤波器单元320在图3中示为环路滤波器,但在其它配置中,环路滤波器单元320可以实现为环后滤波器。
[0243]
解码图像缓冲器
[0244]
随后将一个图像中的解码视频块321存储在解码图像缓冲器330中,解码图像缓冲器330存储作为参考图像的解码图像331,参考图像用于其它图像和/或分别输出显示的后续运动补偿。
[0245]
解码器30用于通过输出端312等输出解码图像311,向用户显示或供用户查看。
[0246]
预测
[0247]
帧间预测单元344在功能上可与帧间预测单元244(特别是运动补偿单元)相同,帧内预测单元354在功能上可与帧间预测单元254相同,并基于从编码图像数据21(例如通过熵解码单元304解析和/或解码)接收的分割和/或预测参数或相应信息决定划分或分割和执行预测。模式应用单元360可用于根据重建图像、块或相应的像素点(已滤波或未滤波)执行每个块的预测(帧内或帧间预测),得到预测块365。
[0248]
当将视频片编码为帧内编码(intra coded,i)片时,模式应用单元360中的帧内预测单元354用于根据指示的帧内预测模式和来自当前图像的之前解码块的数据生成用于当前视频片的图像块的预测块365。当视频图像编码为帧间编码(即,b或p)片时,模式应用单元360中的帧间预测单元344(例如运动补偿单元)用于根据运动矢量和从熵解码单元304接收的其它语法元素生成用于当前视频片的视频块的预测块365。对于帧间预测,可从其中一个参考图像列表中的其中一个参考图像产生这些预测块。视频解码器30可以根据存储在dpb330中的参考图像,使用默认构建技术来构建参考帧列表0和列表1。除了片(例如视频片)或作为片的替代,相同或类似的过程可应用于编码区块组(例如视频编码区块组)和/或编码区块(例如视频编码区块)的实施例,例如视频可以使用i、p或b编码区块组和/或编码区块进行编码。
[0249]
模式应用单元360用于通过解析运动矢量和其它语法元素,确定用于当前视频片的视频块的预测信息,并使用预测信息产生用于正在解码的当前视频块的预测块。例如,模式应用单元360使用接收到的一些语法元素确定用于编码视频片的视频块的预测模式(例如帧内预测或帧间预测)、帧间预测片类型(例如b片、p片或gpb片)、用于片的一个或多个参考图像列表的构建信息、用于片的每个帧间编码视频块的运动矢量、用于片的每个帧间编码视频块的帧间预测状态、其它信息,以解码当前视频片内的视频块。除了片(例如视频片)或作为片的替代,相同或类似的过程可应用于编码区块组(例如视频编码区块组)和/或编码区块(例如视频编码区块)的实施例,例如视频可以使用i、p或b编码区块组和/或编码区块进行编码。
[0250]
在一个实施例中,图3的视频编码器30还可以用于使用片(也称为视频片)分割和/或解码图像,其中图像可以使用一个或多个片(通常为不重叠的)进行分割或解码。每个片可包括一个或多个块(例如ctu)或一个或多个块组(例如h.265/hevc/vvc标准中的编码区块和vvc标准中的砖。
[0251]
在一个实施例中,图3所示的视频解码器30还可以用于使用片/编码区块组(也称为视频编码区块组)和/或编码区块(也称为视频编码区块)对图像进行分割和/或解码,其中图像可以使用一个或多个片/编码区块组(通常为不重叠的)进行分割或解码,每个片/编码区块组可包括一个或多个块(例如ctu)或一个或多个编码区块等,其中每个编码区块可以为矩形等形状,可包括一个或多个完整或部分块(例如ctu)。
[0252]
视频解码器30的其它变型可用于对编码图像数据21进行解码。例如,解码器30可以在没有环路滤波器单元320的情况下产生输出视频流。例如,基于非变换的解码器30可以在某些块或帧没有逆变换处理单元312的情况下直接反量化残差信号。在另一种实现方式中,视频解码器30可以具有组合成单个单元的反量化单元310和逆变换处理单元312。
[0253]
应理解,在编码器20和解码器30中,可以对当前步骤的处理结果进一步处理,然后输出到下一步骤。例如,在插值滤波、运动矢量推导或环路滤波之后,可以对插值滤波、运动
addressable memory,tcam)和/或静态随机存取存储器(static random-access memory,sram)。
[0261]
图5为本技术实施例的装置500的示例性框图,装置500可用作图1b中的源设备12和目的设备14中的任一个或两个。
[0262]
装置500中的处理器502可以是中央处理器。或者,处理器502可以是现有的或今后将研发出的能够操控或处理信息的任何其它类型设备或多个设备。虽然可以使用如图所示的处理器502等单个处理器来实施已公开的实现方式,但使用一个以上的处理器速度更快和效率更高。
[0263]
在一种实现方式中,装置500中的存储器504可以是只读存储器(rom)设备或随机存取存储器(ram)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可包括操作系统508和应用程序510,应用程序510包括允许处理器502执行本文所述方法的至少一个程序。例如,应用程序510可以包括应用1至n,还包括执行本文所述方法的视频编码应用、视频解码应用。
[0264]
装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与可用于感测触摸输入的触敏元件组合的触敏显示器。显示器518可以通过总线512耦合到处理器502。
[0265]
虽然装置500中的总线512在本文中描述为单个总线,但是总线512可以包括多个总线。此外,辅助储存器可以直接耦合到装置500的其它组件或通过网络访问,并且可以包括存储卡等单个集成单元或多个存储卡等多个单元。因此,装置500可以具有各种各样的配置。
[0266]
由于本技术实施例涉及神经网络的应用,为了便于理解,下面先对本技术实施例所使用到的一些名词或术语进行解释说明,该名词或术语也作为发明内容的一部分。
[0267]
(1)神经网络
[0268]
神经网络(neural network,nn)是机器学习模型,神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
[0269][0270]
其中,s=1、2、
……
n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
[0271]
(2)深度神经网络
[0272]
深度神经网络(deep neural network,dnn),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从dnn按不同层的位置划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任
意一个神经元一定与第i 1层的任意一个神经元相连。虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,输出向量,b是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于dnn层数多,则系数w和偏移向量b的数量也就很多了。这些参数在dnn中的定义如下所述:以系数w为例:假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第l-1层的第k个神经元到第l层的第j个神经元的系数定义为需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。
[0273]
(3)卷积神经网络
[0274]
卷积神经网络(convolutionalneuronnetwork,cnn)是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,cnn是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。卷积神经网络包含了一个由卷积层和池化层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。
[0275]
卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。卷积层可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素
……
这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depthdimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行
×
列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行
×
列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络进行正确的预测。当卷积神经网络有多个卷积层的时候,初始的卷积层往往提取较多的一般
特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络深度的加深,越往后的卷积层提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
[0276]
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
[0277]
在经过卷积层/池化层的处理后,卷积神经网络还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络需要利用神经网络层来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层中可以包括多层隐含层,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
[0278]
可选的,在神经网络层中的多层隐含层之后,还包括整个卷积神经网络的输出层,该输出层具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络的前向传播完成,反向传播就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络的损失,及卷积神经网络通过输出层输出的结果和理想结果之间的误差。
[0279]
(4)损失函数
[0280]
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
[0281]
(5)反向传播算法
[0282]
卷积神经网络可以采用误差反向传播(back propagation,bp)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。
[0283]
本技术涉及前述编解码过程中的熵编码/熵解码过程,目前,业界提供一种基于神经网络的hevc帧内预测模式熵编码方案的流程,该方案中通过卷积神经网络(convolutionalneural network,cnn)模块和多阶算数编码器(multi-level arithmetic codingengine)实现熵编码。cnn模块的输入为当前编码块左上、上和左侧的重建块以及该编码块的3个mpm,输出为当前编码块帧内预测模式的概率分布。其中,帧内预测的模式概率分布为一个35
×
1的向量,里面包含35个概率值,分别表示该编码块取对应数值预测模式的概率。例如,卷积神经网络输出当前编码块帧内预测模式的概率分布为p,其中p(5)=0.3表示当前编码块预测模式为5的概率为0.3。
[0284]
多阶算数编码器的输入为当前编码块的最佳帧内预测模式的语法元素,以及通过卷积神经网络模块估计得到的帧内预测模式的概率分布,多阶算数编码器的输出为当前编码块预测模式的码流。例如,卷积神经网络输出当前编码块帧内预测模式概率分布为p,当前编码块最佳预测模式为5,且当前编码块最佳预测模式为5的概率为0.3,即p(5)=0.3,那么编码该预测模式约需-log2p(5)≈1.73比特。
[0285]
图6示意了一种卷积神经网络的网络结构,该卷积神经网络由2个卷积层,2个池化层(pooling)和2个全连接层组成。将当前编码块左上、上和左侧的重建块组成一个三个通道数据块作为神经网络输入,依次经过2次卷积运算,2次relu计算以及2次池化运算提取相应的纹理拓扑信息,接着通过1次全连接计算对纹理拓扑信息进行统计输出一个919
×
1向量。然后将3个mpm值转换为3个35
×
1的one-hot向量。具体转换方式为,one-hot向量仅在mpm值处取值为1,其它位置取值为0。例如,若当前编码块第1个mpm值为0,那么第一个one-hot向量第一个元素取值为1,其它位置取值为0。该one-hot向量的作用是辅助神经网络对纹理拓扑信息进行分析。之后将卷积层输出和mpm转化的3个one-hot向量拼接成1个1024
×
1的向量,最后通过全连接层对纹理拓扑信息进行整合分析输出35
×
1的向量作为当前编码块的预测模式的概率分布。
[0286]
该方案使用当前编码块邻近重建像素块和mpm信息作为卷积神经网络的输入,以获取当前块预测模式的概率分布,可以得到较为准确的预测模式概率模型,从而减少熵编码所需码字。
[0287]
在该熵编码方案中,当帧内预测模块相关的语法元素为多个时,帧内预测模式相关的语法元素依次编码,增加了硬件实现的复杂度。
[0288]
基于此,本技术提供一种编解码方法,将帧内预测模式相关的多个(例如所有)语法元素的值,作为帧内预测模式语法元素值集合,该帧内预测模式语法元素值集合对应有索引,将帧内预测模式语法元素值集合的索引理解一个语法元素,相当于将熵编码多个语法元素的值转换为熵编码一个语法元素的值,该语法元素可以表征当前图像块的帧内预测模式状态(例如可以指示当前图像块实际采用的帧内预测模式相关的多个语法元素的值),熵编码时仅需对帧内预测模式语法元素值集合的索引进行一次熵编码即可替代对许多帧内预测模式相关语法元素值的熵编码,从而降低了硬件实现的复杂性,进而提升了编码性能。
[0289]
本发明提供的方案可以应用于如图7所示的视频传输系统架构中。在图7示意的系统架构中,编码端使用视频采集设备将视频采集以后,经过前处理,再对处理以后的视频经编码器进行压缩编码,得到编码码流。然后使用发送模块将编码码流经传输网络发送到解
码端。解码端的接收模块接收到编码码流后,经解码器解码以后渲染显示。
[0290]
另一种可能的实现方式中,视频编码以后的码流也可以直接进行存储,解码端在需要时,获取编码码流经解码器解码以后渲染显示。
[0291]
本技术应用场景中的编码器的工作过程可以如上述图2对应编码过程,解码器的工作过程可以如上述图3示意的解码过程,此处不再赘述。需要说明的是,本技术方案主要用于帧内预测编码过程,此过程在编码端和解码端均存在,此过程存在于绝大部分视频编解码器中,例如h.263、h.264、mpeg-2、mpeg-4、vp8、vp9等标准对应的编解码器中。
[0292]
本技术方案可以应用于含有视频编码器和/或解码器功能的装置或者产品中,例如视频处理软硬件产品、芯片、以及含有此类芯片的产品或者装置中,本技术实施例对于具体产品形态不予限定。例如,本技术方案可以应用于手机等媒体类产品。
[0293]
在描述本技术实施例提供的方案之前,下面将结合图8、图9详细地描述熵编码/熵解码中用于预测多个候选帧内预测模式语法元素值集合的概率分布的神经网络。图8、图9为本技术实施例的熵编码/熵解码中用于预测多个候选帧内预测模式语法元素值集合的概率分布的神经网络的几个示例性架构,并不构成具体限定。
[0294]
本技术实施例提供的神经网络的结构主体可以基于计算机视觉领域广泛采用的密集连接网络(densely connected network,densenet)。示例性的针对不同的编码块(例如尺寸不同),本技术实施例提供了相应的神经网络的输入数据形式和对应的神经网络结构,用于预测或估计多个候选帧内预测模式语法元素值集合的概率分布,最大限度的提升编码性能。
[0295]
图8示意了一种神经网络的结构,该神经网络的结构可以应用于4
×
4编码块预测多个候选帧内预测模式语法元素值集合的概率分布。如图8所示,该神经网络包括全连接网络、卷积网络、拼接concat层、第一全连接层和softmax层。其中,该全连接网络包括多个第二全连接层及与第二全连接层一一连接的激活prelu层,该全连接网络用于提取输入数据的特征信息。卷积网络包括多个密集连接块以及密集连接块间的池化层,密集连接块包括卷积层、激励relu层和批标准化bn层,卷积网络用于提取输入数据中的特征信息。concat层用于将全连接网络提取的特征信息和卷积网络提取的特征信息进行拼接,第一全连接层及softmax层对concat层拼接后的特征信息进行概率估计,输出多个候选帧内预测模式语法元素值集合的概率分布。
[0296]
在图8示意的神经网络架构中,输入数据中的第一类信息可以为由邻近图像块的信息与当前图像块的信息拼接而成的m通道的数据块,m为第一类信息的数量。输入数据中的第一类信息之外的信息,可以为由邻近图像块的信息与当前图像块的信息转换的one-hot向量连接的一维向量。
[0297]
其中,第一类信息为图像块像素级信息。图像块像素级信息可以指图像块像素值相关的信息,例如重建值、预测值和残差值。
[0298]
基于图8示意的神经网络,可以实现通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,其具体实现可以为:通过图8示意的神经网络中的卷积网络提取输入数据中第一类信息的特征信息;通过图8示意的神经网络中的全连接网络提取输入数据中第一类信息之外的信息的特征信息;通过图8示意的神经网络中的concat层将全连接网络提取的特征信息和卷积网络提取的特征信息进行拼接,
并通过第一全连接层及softmax层,对concat层拼接后的特征信息进行概率估计,输出多个候选帧内预测模式语法元素值集合的概率分布。
[0299]
一种可能的实现方式中,当前图像块的邻近图像块可以包括左上相邻、上相邻以及左侧相邻的图像块。
[0300]
一种可能的实现方式中,邻近的信息可以包括图像块的重建值。
[0301]
另一种可能的实现方式中,邻近图像块的信息可以包括下述信息中一项或多项:重建值、预测值、残差值、帧内预测模式语法元素值集合的索引、划分信息。
[0302]
示例性的,基于图8示意的神经网络,通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,其具体实现可以为:将当前图像块的邻近图像块的帧内预测模式语法元素值集合的索引和划分信息转化的一维向量输入神经网络中的全连接网络,将邻近图像块的重建值、预测值和残差值与当前图像块的填充默认值拼接的3通道数据块输入神经网络的卷积网络中,之后将全连接网络的输出和卷积网络的输出进行拼接,拼接后的结果通过第一全连接层和softmax层进行概率估计,输出当前图像块采用多个候选帧内预测模式语法元素值集合的概率分布。在该示例中,图8示例的神经网络的架构中,全连接网络包含3层,每层由一个全连接层紧跟着一个prelu层构成,第一全连接层的维度分别是300,300和112;卷积网络基本结构由densenet构成。densenet的整体结构划分为多个密集连接块(dense blocks),在每个密集连接块中,基本层由一个卷积层、一个relu层和批标准化(batchnormalization,bn)层构成。在密集连接块之间,池化层(pooling)用于对特征图进行下采样。在最后一个密集连接块之后,附加一个全连接层用于将特征图转化为多维的向量。
[0303]
在一种可能的实现方式中,4
×
4编码块采用的神经网络中,densenet包含2个密集连接块,每个密集连接块包含12个基本层。多个候选帧内预测模式语法元素值集合的概率分布为1个多维向量,其维度为帧内预测模式语法元素值集合的最大取值加1。示例性的,假设4
×
4编码块帧内预测模式语法元素值集合的索引共有112种取值,4
×
4编码块多个候选帧内预测模式语法元素值集合的概率分布的维度可以为112。
[0304]
图9示意了另一种神经网络的结构,该神经网络的结构可以应用于4
×
4之外的其他尺寸的编码块预测多个候选帧内预测模式语法元素值集合的概率分布。如图9所示,该神经网络可以包括卷积网络、全连接层和softmax层。其中,卷积网络包括多个密集连接块以及密集连接块间的池化层,密集连接块包括卷积层、激励relu层和bn层。卷积网络用于提取输入数据中的特征信息。全连接层及softmax层用于将卷积网络提取的特征信息进行概率估计,输出多个候选帧内预测模式语法元素值集合的概率分布。
[0305]
示例性的,基于图9示意的神经网络,通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,其具体实现可以为:通过卷积网络提取输入数据中的特征信息;通过所述全连接层及所述softmax层对所述卷积网络提取的特征信息进行概率估计,输出多个候选帧内预测模式语法元素值集合的概率分布。
[0306]
在图9示意的神经网络架构中,输入数据可以为由邻近图像块的信息与当前图像块的信息拼接而成的m通道的数据块,m为图像块的信息中信息的种类。
[0307]
示例性的,基于图9示意的神经网络,通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,其具体实现可以为:将邻近图
像块的信息与当前图像块的信息拼接的5通道数据块(重建值、预测值、残差值、帧内预测模式语法元素值集合的索引和划分信息)输入卷积网络中,卷积网络采用与前述图8示意的神经网络中的卷积网络相同的densenet结构,在最后一个密集连接块之后,附加全连接层和softmax层来估计当前图像块采用多个候选帧内预测模式语法元素值集合的概率分布。
[0308]
其中,本技术实施例中构建神经网络的输入数据时,拼接的当前图像块的信息可以为填充默认值,本技术实施例对于填充默认值的内容不予限定。
[0309]
示例性的,对于不同尺寸的编码块,神经网络中包括的卷积网络采用的densenet包含的密集连接块数目,以及多个候选帧内预测模式语法元素值集合的概率分布的维度有所不同,具体可以如表1所示。
[0310]
表1不同尺寸编码块采用的神经网络配置参数
[0311][0312][0313]
需要说明的是,表1只是通过举例的形式,示意了不同尺寸编码块采用的神经网络配置参数,并不是对此的具体限定。
[0314]
进一步的,本技术实施例中可以使用pytorch软件在nvidiagtx1080ti图形处理器(graphical processing units,,gpus)对神经网络进行训练。
[0315]
示例性的,本技术实施例可以使用随机梯度下降(stochastic gradient descent,sgd)算法对神经网络进行训练,采用未压缩彩色图像数据集(uncompressed color image dataset,ucid)和div2k数据集准备训练数据,使用vtm6.0软件对ucid和div2k中的图像进行压缩,提取出神经网络的输入数据和目标数据,神经网络的输入数据为当前图像块的邻近图像块信息,目标数据为当前图像块的帧内预测模式语法元素值集合的索引,以最小化如下的损失函数对神经网络进行训练:
[0316][0317]
其中,θ表示神经网络的参数,ti表示第i个训练目标的one-hot向量,yi表示第i个神经网络的softmax输出,
·
表示内积相乘,m表示批处理的大小。可以看到,当前图像块在帧内预测模式语法元素值集合的索引取值处的概率越大,损失函数值将会越小。
[0318]
一种可能的实现方式中,本技术描述的神经网络可以为经训练得到的具有概率估计功能的神经网络。
[0319]
另一种可能的实现方式中,本技术描述的神经网络用于接收训练数据集合;以及根据训练数据集合训练得到神经网络。
[0320]
一种可能的实现方式中,本技术描述的训练神经网络的训练数据集合可以为图像块的多个邻近图像块的信息。
[0321]
需要说明的是,上述内容举例说明了本技术实施例提供的一种训练神经网络的实现,但并不是具体限定,在实际应用中,可以根据实际需求选取训练神经网络的具体方案,本技术实施例不再赘述。
[0322]
需要说明的是,如图8、图9仅示出了本技术实施例的用于预测多个候选帧内预测模式语法元素值集合的概率分布的神经网络的几种示例性的架构,其并不构成对神经网络架构的限定,该神经网络中包括的层数、层结构、相加、相乘或合并等处理,以及输入和/或输出的矩阵的数量、尺寸等均可以根据实际情况而定,本技术对此不做具体限定。
[0323]
图10意了本技术实施例提供的编码方法的流程示意,该实施例可分为3个步骤:确定当前图像块的帧内预测模式语法元素值集合的索引,获取当前图像块的邻近图像块的信息及帧内预测模式语法元素值集合的索引、通过神经网络获取当前图像块获取当前图像块多个候选帧内预测模式语法元素值集合的概率分布,根据概率分布以及当前图像块的帧内预测模式语法元素值集合的索引,进行算数编码得到码流。
[0324]
图11为本技术实施例提供的编码方法的流程图。该编码方法可以由视频编码器20执行,例如可以由视频编码器20中的帧内预测单元254、熵编码单元270来执行。本技术实施例提供的编码方法描述为一系列的步骤或操作,应当理解的是,该编码方法可以以各种顺序执行和/或同时发生,不限于图11所示的执行顺序。假设具有多个图像帧的视频数据流正在使用视频编码器,执行包括如下步骤的编码方法来对图像或图像块进行编码。
[0325]
如图11所示,本技术实施例提供的编码方法可以包括:
[0326]
s1101、确定当前图像块的帧内预测模式语法元素值集合的索引。
[0327]
其中,当前图像块的帧内预测模式语法元素值集合包括当前图像块的帧内预测模式涉及的多个语法元素的值,该多个语法元素的值包括当前图像块采用的帧内预测模式的索引。
[0328]
具体的,可以从图2示意的编码器20中帧内预测单元254获取当前图像块的帧内预测模式语法元素值集合。
[0329]
其中,当前图像块的帧内预测模式语法元素值集合的索引,用于指示当前图像块的帧内编码状态,与当前图像块的帧内预测模式语法元素值集合相对应。
[0330]
一种可能的实现方式,在s1101中,编码器在获取到当前图像块的帧内预测模式语法元素值集合后,根据当前图像块采用的帧内预测模式的索引,确定当前图像块的帧内预
测模式语法元素值集合的索引。
[0331]
示例性的,根据当前图像块采用的帧内预测模式的索引,确定当前图像块的帧内预测模式语法元素值集合的索引,可以实现为:确定当前图像块采用的帧内预测模式的索引与第一类帧内预测模式的附加值之和,为当前图像块的帧内预测模式语法元素值集合的索引。其中,当前图像块采用的帧内预测模式属于第一类帧内预测模式;不同类的帧内预测模式的索引最小值加附加值与索引最大值加附加值构成的区间不存在交集。
[0332]
其中,帧内预测模式的附加值,用于确定帧内预测模式语法元素值集合的索引,可以根据实际需求配置不同类帧内预测模式的附加值,只要保证不同类的帧内预测模式的索引最小值与对应附加值之和与索引最大值与对应附加值之和构成的区间不存在交集即可。本技术实施例对于每一类帧内预测模式的附加值的选取方法以及取值不予限定。
[0333]
例如,a类帧内预测模式中包括5种帧内预测模式,a类帧内预测模式的索引范围为1至5,a类帧内预测模式对应的附加值为x;b类帧内预测模式中包括3种帧内预测模式,b类帧内预测模式的索引范围为1至3,b类帧内预测模式对应的附加值为y,则区间[1 x,5 x],与区间[1 y,3 y]不存在交集。其中,“[”“]”为闭区间符号。
[0334]
一种可能的实现方式中,第n类帧内预测模式的附加值包括:预定顺序中下处于第n类帧内预测模式之前的每类帧内预测模式的标签值之和。第n类这内预测模式为任一类帧内预测模式。
[0335]
其中,帧内预测模式的标签值可以是为帧内预测模式配置的一个参数,可以预先配置或者根据帧内预测模式的特点得出,或者其他方式获取,本技术实施例对于帧内预测模式的标签值的内容不予限定。
[0336]
可选的,两类不同的帧内预测模式的标签值可以相同,也可以不同。
[0337]
示例性的,每类帧内预测模式的标签值可以包括:每类帧内预测模式下多个帧内预测模式的总个数。换言之,一类帧内预预测模式的标签值可以为该类帧内预测模式下的索引总个数,或者,一类帧内预预测模式的标签值可以为该类帧内预测模式的索引最大值加1。
[0338]
例如,假设当前图像块采用的帧内预测模式属于第一类帧内预测模式,帧内预测模式语法元素值集合包括的多个语法元素的值还包括第一类帧内预测模式的标志位为真,第二类帧内预测模式的标志位为假、第三类帧内预测模式的标志位为假;第二类帧内预测模式下多个帧内预测模式的总个数为b,第三类帧内预测模式下多个帧内预测模式的总个数为c;预定顺序为第二类帧内预测模式、第三类帧内预测模式、第一类帧内预测模式,确定当前图像块采用的帧内预测模式的索引与第一类帧内预测模式的附加值之和,为当前图像块的帧内预测模式语法元素值集合的索引,包括:确定当前图像块采用的帧内预测模式的索引、b以及c之和,为当前图像块的帧内预测模式语法元素值集合的索引。
[0339]
具体的,上述预定顺序可以根据实际需求配置,本技术实施例对此不予限定。
[0340]
示例性的,预定顺序可以编码过程对应的树状图结构中,从左侧分支到右侧分支的顺序。或者,预定顺序可以为编码过程对应的树状图中,优先级从高到低的分支顺序。
[0341]
示例性的,当前图像块的帧内预测模式语法元素值集合的索引,可以为当前图像块的编码过程对应的树状图结构中,所有叶子节点取值范围的和。
[0342]
下面以4
×
4图像块的帧内预测编码过程为例,对s1101的过程进行描述。首先将
vtm6.0中4
×
4图像块的帧内预测模式相关的语法元素的编码过程描述成如图12所示的树状图结构,图像块的帧内预测模式语法元素值集合的索引的取值范围可以为该树状图所有叶子节点取值范围的和。如图12所示,可以看到与4
×
4图像块相关的语法元素有mip标志位、mip模式、多行参考索引、mpm索引以及帧内预测模式。在vvc中4
×
4图像块的mip模式有35种取值,多行参考索引有3种取值,mpm索引有5种取值,预测模式有67种取值,那么4
×
4图像块的帧内预测模式语法元素值集合的索引共有35 5 5 67=112种取值。
[0343]
图12示意的树状图中包括多种从上至下的链式结构示例,某一种链式结构示例对应某一种候选帧内预测模式语法元素值集合,不同链式结构示例对应不同候选帧内预测模式语法元素值集合。应理解的是,每一种链式结构示例表示或者反映多个语法元素之间的依赖关系。
[0344]
在一种示例下,候选帧内预测模式语法元素值集合的个数对应于链式结构示例的个数。例如:如图12所示,候选帧内预测模式语法元素值集合的个数最大可以是112,(或者当前图像块的帧内预测模式语法元素值集合的索引共有112种取值,或者索引的取值范围为(0,111))。
[0345]
具体的,基于图12所示的树状图结构,在s1101中4
×
4的当前图像块的帧内预测模式语法元素值集合的索引,可以由当前图像块的帧内预测模式语法元素值集合和图12树状图结构所述的判断条件推导得出。下面为4
×
4的当前图像块的帧内预测模式语法元素值集合的索引的确定过程对应的伪代码:
[0346][0347][0348]
其中,mip flag表示mip标志位,mipmode表示mip模式,predmode表示当前图像块的帧内预测模式语法元素值集合的索引,multirefidx表示多行参考索引,intradir表示帧内预测模式,mpmidx表示mpm索引。当mip标志位为真时,当前图像块的帧内预测模式语法元素值集合的索引为mip模式的取值。否则,当多行参考索引取值为0时,当前图像块的帧内预测模式语法元素值集合的索引为35 帧内预测模式值。例如,当多行参考索引取值为1时,当前图像块的帧内预测模式语法元素值集合的索引为35 67 mpm索引。当多行参考索引取值为3时,当前图像块的帧内预测模式语法元素值集合的索引为35 67 5 mpm索引。当4
×
4的编码块的最佳预测模式为1,且mip标志位为假,多行参考索引值为0时,当前图像块的帧内预测模式语法元素值集合的索引为35。值得注意的是,对于处于编码树单元(coding tree unit,ctu)第一行的编码块,多参考索引的值默认为0,这时当前图像块的帧内预测模式语
法元素值集合的索引的范围为得到的原始范围减10。
[0349]
需要说明的是,对于其他尺寸图像块,帧内编码树状图结构描述、编码端帧内预测模式语法元素值集合的索引的推导过程,与4
×
4图像块基本相同,具体的细节依据vtm6.0针对不同尺寸编码块的帧内预测编码配置略有不同,本技术实施例不再赘述。
[0350]
s1102、通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布。
[0351]
其中,输入数据用于表征当前图像块的特征(例如当前图像块的纹理特征)。
[0352]
示例性的,输入数据可以包括当前图像块的邻近图像块的信息,或者,上述输入数据可以包括预处理后的当前图像块的邻近图像块的信息,邻近图像块包括左上相邻、上相邻以及左侧相邻的图像块;邻近图像块的信息包括邻近图像块的重建值。
[0353]
一种可能的实现方式中,上述预处理后的当前图像块的邻近图像块的信息,可以包括:由邻近图像块的信息与当前图像块的信息拼接而成的m通道的数据块;m大于或等于1。
[0354]
例如,m可以小于或等于图像块的信息中包括的信息种类。
[0355]
一种可能的实现方式中,上述预处理后的当前图像块的邻近图像块的信息,可以包括:由邻近图像块的信息与当前图像块的信息转换向量连接而成的一维向量。
[0356]
其中,图像块的信息转换的向量可以为一维有效one-hot向量。
[0357]
其中,本技术实施例中构建神经网络的输入数据时,拼接的当前图像块的信息可以为填充默认值,本技术实施例对于填充默认值的内容不予限定。
[0358]
在另一种可能的实现方式中,邻近图像块的信息还可以包括下述信息中一项或多项:预测值、残差值、帧内预测模式语法元素值集合的索引、划分信息。
[0359]
其中,划分信息用于指示图像块的边界情况。示例性的,划分信息可以是边界像素值为1中间像素值为0的数据块。
[0360]
进一步的,上述概率分布表示多个候选帧内预测模式语法元素值集合各自的概率值。换言之,该概率分布表示当前图像块进行帧内预测时得到的帧内模式语法元素值集合,为多个候选帧内预测模式语法元素值集合中每个集合的概率。多个候选帧内预测模式语法元素值集合是指可用(或可选)的所有帧内预测模式语法元素值集合。
[0361]
具体的,在s1102中,编码器先获取当前图像块的邻近图像块的信息。示例性的,编码器可以从图2示意的编码过程中模式选择单元260中获取当前图像块的邻近图像块的信息,以执行s1102的操作。
[0362]
示例性的,对于vvc中尺寸为4
×
4的编码块,可以将与当前图像块大小相同的邻近左上、上和左侧相邻块的重建值、预测值和残差值与当前编图像块填充的默认值进行拼接,得到1个3通道的数据块作为输入数据中第一类信息,输入图8示意的神经网络中的卷积网络。将与当前图像块大小相同的邻近左上、上和左侧相邻块的帧内预测模式语法元素值集合的索引和划分信息分别转化为one-hot向量,得到6个one-hot向量后,将所有one-hot向量连接成一个一维向量。对于帧内预测模式语法元素值集合的索引,转化成的one-hot向量长度为230。对于划分信息,转化成的one-hot向量长度为17,将vvc中支持的17种编码块尺寸进行编号,使得每种尺寸的图像块都对应唯一的一个编号。最终,6个one-hot向量连接后的一维向量长度为741,将其作为输入数据中第一类信息之外的信息,输入图8示意的神经
网络中的全连接网络,得到多个候选帧内预测模式语法元素值集合的概率分布。
[0363]
示例性的,在s1102中编码器可以将与当前图像块大小相同的邻近左上、上和左侧相邻块的重建值、预测值、残差值、帧内预测模式语法元素值集合的索引和划分信息,与当前图像块的默认值进行拼接,得到5通道的数据块作为输入数据,输入图9示意的神经网络中,得到多个候选帧内预测模式语法元素值集合的概率分布。
[0364]
需要说明的是,对于图8、图9示意的神经网络的功能以及训练方法已经在前述内容中进行了详细说明,此处不再赘述。
[0365]
应当理解的是,该神经网络为经训练得到的具有概率估计功能的神经网络。
[0366]
s1103、根据多个候选帧内预测模式语法元素值集合的概率分布,对当前图像块的帧内预测模式语法元素值集合的索引相关的概率值进行熵编码,得到码流。
[0367]
其中,该熵编码可以包括:二进制算术编码,或者,多阶算术编码。当然,s1103中进行的熵编码的类型可以根据实际需求选取,本技术实施例对此不予限定。
[0368]
一种可能的实现方式中,当前图像块的帧内预测模式语法元素值集合的索引相关的概率值,可以为根据算术编码原理,对多个候选帧内预测模式语法元素值集合的概率分布构建的多个概率区间中,算术编码目标帧内预测模式语法元素值集合(当前图像块实际采用的帧内预测模式语法元素值集合)对应的概率区间中任一个概率值。
[0369]
示例性的,假设多个候选帧内预测模式语法元素值集合为3个集合,分别按照顺序记录为集合1、集合2和集合3,s1102中得到的多个候选帧内预测模式语法元素值集合的概率分布为{0.2,0.5、0.3},则说明当前图像块采用集合1的概率为20%,采用集合2的概率为50%,采用集合3的概率为30%,根据算术编码原理,对多个候选帧内预测模式语法元素值集合的概率分布构建的多个概率区间分别为:集合1对应的区间为[0,0.2),集合2对应的区间为[0.2,0.7),集合3对应的区间为[0.7,1)。其中“[”为闭区间边界,“)”为开区间边界。
[0370]
假设当前图像块实际采用的帧内预测模式语法元素值集合为集合2,当前图像块的帧内预测模式语法元素值集合的索引相关的概率值则为[0.2,0.7)中的任一概率值。s1103中则可以选取[0.2,0.7)中的任一概率值进行熵编码,得到码流。
[0371]
通过本技术实施例提供的编码方法,将当前图像块的帧内预测模式涉及的多个(例如所有)语法元素的值,作为帧内预测模式语法元素值集合,该帧内预测模式语法元素值集合对应有索引,将帧内预测模式语法元素值集合的索引理解为一个语法元素,相当于将熵编码多个语法元素的值转换为熵编码一个语法元素的值,该语法元素可以表征当前图像块的帧内预测模式状态(例如可以指示当前图像块实际采用的帧内预测模式涉及的多个语法元素的值),熵编码时仅需对帧内预测模式语法元素值集合的索引进行一次熵编码即可替代对许多帧内预测模式相关语法元素值的熵编码,从而降低了硬件实现的复杂性,进而提升了编码性能。
[0372]
进一步的,本技术实施例提供的获取概率分布的神经网络可以依据当前图像块的邻近图像块的重建值信息、预测值信息、残差值信息、帧内预测模式语法元素值集合的索引和划分信息,获取多个候选帧内预测模式语法元素值集合的概率分布,充分利用当前图像块的邻近图像块与当前图像块的相关性,由于邻近图像块已重建,因此邻近图像块可以表征当前图像块的特征,通过邻近图像块的信息输入神经网络得到的上述概率分布,准确度更高。
[0373]
进一步的,如图13所示,本技术实施例提供的编码方法还可以包括s1104。
[0374]
s1104、根据网络结构区分信息确定适用于当前图像块的神经网络。
[0375]
其中,该网络结构区分信息包括当前图像块的尺寸,或者该网络结构区分信息依赖于所述当前图像块的尺寸。
[0376]
需要说明的是,网络结构区分信息还可以为图像块中可以配置不同神经网络结构的特征,本技术对于指示信息的类型不予限定。
[0377]
相应的,s1102中通过s1104中确定的神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布。
[0378]
这样一来,可以针对不同的图像块(例如尺寸不同)设计不同的神经网络,最大限度的提升编码性能。
[0379]
图14为本技术实施例提供的解码方法的流程图。该解码方法可以由视频解码器30执行,具体的,例如可以由视频解码器30中的熵解码单元304和帧内预测单元354来执行。本技术实施例提供的解码方法描述为一系列的步骤或操作,应当理解的是,该解码方法可以以各种顺序执行和/或同时发生,不限于图14所示的执行顺序。假设具有多个图像帧的视频数据流正在使用视频编解器,执行包括如下步骤的解码方法来对图像或图像块的码流进行解码。
[0380]
如图14所示,本技术实施例提供的解码方法可以包括:
[0381]
s1401、通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布。
[0382]
其中,该概率分布表示多个候选帧内预测模式语法元素值集合各自的概率值。
[0383]
应当理解的是,该神经网络为经训练得到的具有概率估计功能的神经网络。
[0384]
需要说明的是,s1401中解码器的操作与s1102中编码器的操作相同,此处不再赘述。多个候选帧内预测模式语法元素值集合已在前述内容进行了详细描述,此处不再赘述。
[0385]
s1402、根据多个候选帧内预测模式语法元素值集合的概率分布,对接收到的码流进行熵解码,得到当前图像块的帧内预测模式语法元素值集合的索引。
[0386]
具体的,s1402中解码器根据多个候选帧内预测模式语法元素值集合的概率分布,对接收到的码流进行熵解码,得到当前图像块的帧内预测模式语法元素值集合的索引的过程如下:
[0387]
首先,在s1401中获取到多个候选帧内预测模式语法元素值集合的概率分布,即可获取到不同候选帧内预测模式语法元素值集合对应的概率区间。对于获取概率区间的过程,已经在s1103中进行了详细描述,此处不再赘述。不同候选帧内预测模式语法元素值集合有各自的索引值,其确定方法如前述s1101中的描述,此处不再赘述。
[0388]
其次,解码器进行熵解码,获取编码端编入码流的概率值,如s1103所述,编码端将图像块的帧内预测模式语法元素值集合的索引相关的概率值编入码流,解码端熵解码就可以获取到该概率值。需要说明的是,s1402中解码器进行熵解码,所采用的解码方案与编码端进行熵编码的方案相对应。
[0389]
可选的,该熵解码可以为二进制算术解码,或者,多阶算术解码。当然,s1302中进行的熵解码的类型可以根据实际需求选取,本技术实施例对此不予限定。
[0390]
然后,解码端将熵解码得到的概率值,与获取到的不同候选帧内预测模式语法元
素值集合对应的概率区间进行对比,确定熵解码得到的概率值所属的概率区间,这样就可以获取到该概率区间对应的候选帧内预测模式语法元素值集合。获取的该候选帧内预测模式语法元素值集合的索引,则为当前图像块的帧内预测模式语法元素值集合的索引。
[0391]
s1403、根据当前图像块的帧内预测模式语法元素值集合的索引,确定当前图像块的帧内预测模式语法元素值集合。
[0392]
其中,该语法元素值集合包括多个语法元素的值,该多个语法元素包括当前图像块采用的帧内预测模式的索引。
[0393]
具体的,s1403的操作为s1101的操作的反操作。
[0394]
一种可能的实现方式中,解码器根据当前图像块的帧内预测模式语法元素值集合的索引,确定当前图像块的帧内预测模式语法元素值集合,具体可以实现为:确定第一数值区间对应的语法元素值集合,为当前图像块的帧内预测模式语法元素值集合;当前图像块的帧内预测模式语法元素值集合的索引属于第一数值区间。
[0395]
其中,第一数值区间的起始值为第一类帧内预测模式的索引最小值与第一类帧内预测模式的附加值之和,第一数值区间的终止值为第一类帧内预测模式的索引最大值与第一类帧内预测模式的附加值之和。当前图像块采用的帧内预测模式属于第一类帧内预测模式;不同类型的帧内预测模式的索引最小值与对应附加值之和与索引最大值与对应附加值之和构成的区间不存在交集。
[0396]
需要说明的是,对于附加值已经在s1101中进行了详细说明,此处不再赘述。
[0397]
示例性的,若多个帧内预测模式的预定顺序为所述第二类帧内预测模式、第三类帧内预测模式、第一类帧内预测模式,第一类帧内预测模式下多个帧内预测模式的总个数为a,第二类帧内预测模式下多个帧内预测模式的总个数为b,第三类帧内预测模式下多个帧内预测模式的总个数为c,确定第一数值区间对应的语法元素值集合,为当前图像块的帧内预测模式语法元素值集合,具体可以实现为:
[0398]
若第一数值区间为[0,b),当前图像块的帧内预测模式语法元素值集合包括:第二类帧内预测模式的标志位为真,当前图像块采用的帧内预测模式的索引为当前图像块的帧内预测模式语法元素值集合的索引,第一类帧内预测模式的标志位为假,第三类帧内预测模式的标志位为假。
[0399]
若第一数值区间为[b,b c),当前图像块的帧内预测模式语法元素值集合包括:第三类帧内预测模式的标志位为真,当前图像块采用的帧内预测模式的索引为当前图像块的帧内预测模式语法元素值集合的索引减b,第一类帧内预测模式的标志位为假,第二类帧内预测模式的标志位为假。
[0400]
若第一数值区间为[b c,a b c),当前图像块的帧内预测模式语法元素值集合包括:第一类帧内预测模式的标志位为真,当前图像块采用的帧内预测模式的索引为当前图像块的帧内预测模式语法元素值集合的索引减(b c),第二类帧内预测模式的标志位为假,第三类帧内预测模式的标志位为假。
[0401]
下面以4
×
4图像块的帧内预测解码过程为例,对s1403的过程进行描述。在s1403中,当前图像块的帧内预测模式语法元素值集合可以由s1402中解码得到的当前图像块的帧内预测模式语法元素值集合的索引,以及图12示意的树状图中的判断条件推导得出。下面为4
×
4的当前图像块的帧内预测模式语法元素值集合的确定过程对应的伪代码:
[0402][0403]
从图12所示的树状图结构中可以看到,若帧内预测模式语法元素值集合的索引在[0,35)之间,则mip标志位为真,mip模式取值等于帧内预测模式语法元素值集合的索引。若帧内预测模式语法元素值集合的索引在[35,102)之间,则mip标志位为假,多行参考索引取值为0,帧内预测模式取值为帧内预测模式语法元素值集合的索引-35。若帧内预测模式语法元素值集合的索引在[102,107)之间,则mip标志位为假,多行参考索引取值为1,mpm索引值为帧内预测模式语法元素值集合的索引-35-67。若帧内预测模式语法元素值集合的索引在[107,112)之间,则mip标志位为假,多行参考索引取值为3,mpm索引值为帧内预测模式语法元素值集合的索引-35-67-5。例如,当4
×
4的图像块的帧内预测模式语法元素值集合的索引为35时,解码端可以解析出当前图像块的帧内预测模式语法元素值集合包括:mip标志位为假,多行参考索引值为0,该当前图像块的帧内预测模式为0。
[0404]
需要说明的是,对于其他尺寸图像块,帧内编码树状图描述、编码端帧内预测模式语法元素值集合的索引的推导过程,与4
×
4图像块基本相同,具体的细节依据vtm6.0针对不同尺寸编码块的帧内预测编码配置略有不同,本技术实施例不再赘述。
[0405]
s1404、基于当前图像块的帧内预测模式语法元素值集合中多个语法元素的值,执行帧内预测处理。
[0406]
需要说明的是,s1404中执行帧内预测处理的具体过程,可以参照前述图2或图3描述的帧内预测过程,此处不再赘述。
[0407]
通过本技术实施例提供的解码方法,将当前图像块的帧内预测模式涉及的多个(例如所有)语法元素的值,作为帧内预测模式语法元素值集合,该帧内预测模式语法元素值集合对应有索引,将帧内预测模式语法元素值集合的索引理解为一个语法元素,相当于将熵解码多个语法元素的值转换为熵解码一个语法元素的值,该语法元素可以表征当前图像块的帧内预测模式编码状态(例如可以指示当前图像块实际采用的帧内预测模式涉及的多个语法元素的值),熵解码时仅需对帧内预测模式语法元素值集合的索引进行一次熵解
码即可替代对许多帧内预测模式相关语法元素值的熵解码,从而降低了硬件实现的复杂性,进而提升了解码性能。
[0408]
进一步的,本技术实施例提供的获取概率分布的神经网络可以依据当前图像块的邻近图像块的重建值信息、预测值信息、残差值信息、帧内预测模式语法元素值集合的索引和划分信息,获取多个候选帧内预测模式语法元素值集合的概率分布,充分利用当前图像块的邻近图像块与当前图像块的相关性,由于邻近图像块已重建,因此邻近图像块可以表征当前图像块的特征,通过邻近图像块的信息输入神经网络得到的上述概率分布,准确度更高。
[0409]
进一步的,如图15所示,本技术实施例提供的解码方法还可以包括s1405和s1406。
[0410]
s1405、根据网络结构区分信息确定适用于当前图像块的神经网络。
[0411]
其中,该网络结构区分信息包括当前图像块的尺寸,或者该网络结构区分信息依赖于所述当前图像块的尺寸。
[0412]
需要说明的是,网络结构区分信息还可以为图像块中可以配置不同神经网络结构的特征,本技术对于指示信息的类型不予限定。
[0413]
相应的,s1401中通过神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布,包括:通过s405中确定的神经网络对输入数据进行概率估计处理,得到多个候选帧内预测模式语法元素值集合的概率分布。
[0414]
这样一来,可以针对不同的图像块(例如尺寸不同)设计不同的神经网络,最大限度的提升解码性能。
[0415]
示例1,将本技术实施例提供的编解码方法实现在了vtm6.0平台上,并在vvc标准测试条件下测试了all intra模式下所有测试序列编码1帧的bd-rate性能。实验结果如表2所示,对比vtm6.0基线和提出的方案的测试平台为相同的cpu集群。其中y,u,v三列表示本技术实施例提供的编解码方法相对于vtm6.0基线在亮度分量和色度分量上取得的编码性能提升,编码时长和解码时长则表示集成了本技术实施例的vtm6.0相对于vtm6.0基线的编码和解码时间的变化情况。本技术提出的基于神经网络的vvc帧内预测模式编解码方法集成进vtm6.0平台后,在vvc标准测试下相比于vtm6.0基线取得了1.01%的编码性能提升。
[0416]
表2
[0417][0418]
示例2、在示例1的基础上,将所有尺寸编码块采用神经网络中densenet包含的密集连接块数目设置为2,每个密集连接块包含的层数设置为12,进行与示例1相同的实验,得到的实验结果如表3所示。
[0419]
表3
[0420][0421]
示例3、在示例1的基础上,将所有尺寸编码块采用神经网络中densenet包含的密集连接块数目设置为2,每个密集连接块包含的层数设置为6,进行与示例1相同的实验,得到的实验结果如表4所示。
[0422]
表4
[0423][0424]
上述主要从编码器、解码器的工作原理的角度对本发明实施例提供的方案进行了介绍。可以理解的是,编码器、解码器等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0425]
本发明实施例可以根据上述方法示例对编码器、解码器等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0426]
图16示意了本技术实施例提供的一种编码器160,用于实现上述实施例中编码器的功能。如图16所示,编码器160可以包括:帧内预测模块1601、熵编码模块1602。帧内预测模块1601用于执行图11中的过程s1101;熵编码模块1602用于执行图11中的过程s1102及s1103;熵编码模块1602还用于执行图13中的过程s1104及s1105。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。在一种示例下,帧内预测模块1601可以对应于图2中的帧内预测单元254;在一种示例下,熵编码模块1602可以对应于图2中的熵编码单元270。图16的编码器中的帧内预测模块1601的功能的其他细节参见图2中的描述,这里不再赘述。图16的编码器中的熵编码模块1602的功能的其他细节参见图2中的描述,这里不再赘述。
[0427]
如前述,本技术实施例提供的编码器160可以用于实施上述本技术各实施例实现的方法中编码器的功能,为了便于说明,仅示出了与本技术实施例相关的部分,具体技术细节未揭示的,请参照本技术各实施例。
[0428]
图17示意了本技术实施例提供的一种解码器170,用于实现上述实施例中处理设备的功能。如图17所示,解码器170可以包括:熵解码模块1701、帧内预测模块1702。熵解码
模块1701用于执行图14中的过程s1401、s1402;熵解码模块1701用于执行图15中的过程s1405、s1406;帧内预测模块1702用于执行图14中的过程s1403、s1404。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。在一种示例下,帧内预测模块1702可以对应于图3中的帧内预测单元354;在一种示例下,熵解码模块1701可以对应于图3中的熵解码单元304。图17的解码器中的熵解码模块1701的功能的其他细节参见图3中的描述,这里不再赘述。图17的解码器中的帧内预测模块1702的功能的其他细节参见图3中的描述,这里不再赘述。
[0429]
如前述,本技术实施例提供的解码器170可以用于实施上述本技术上述实施例中解码器的功能,为了便于说明,仅示出了与本技术实施例相关的部分,具体技术细节未揭示的,请参照本技术各实施例。
[0430]
本技术实施例还提供一种编解码系统,包括编码器160及解码器170。
[0431]
作为本实施例的另一种形式,提供一种非瞬时性计算机可读存储介质,包括程序代码,该程序代码被执行时执行上述方法实施例中的方法。
[0432]
作为本实施例的另一种形式,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行时执行上述方法实施例中的方法。
[0433]
本技术实施例再提供一种芯片系统,该芯片系统包括处理器,用于实现本发明实施例的技术方法。在一种可能的设计中,该芯片系统还包括存储器,用于保存本发明实施例必要的程序指令和/或数据。在一种可能的设计中,该芯片系统还包括存储器,用于处理器调用存储器中存储的应用程序代码。该芯片系统,可以由一个或多个芯片构成,也可以包含芯片和其他分立器件,本技术实施例对此不作具体限定。
[0434]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0435]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0436]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0437]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0438]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上
或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0439]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献