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

用于视频编码的系统和方法与流程

2022-05-08 08:39:28 来源:中国专利 TAG:


1.本公开涉及视频编码,并且尤其涉及视频编码和解码系统、视频编码和解码中的组件和方法,例如用于执行ccalf(交叉分量自适应环路滤波)过程。


背景技术:

2.随着视频编码技术的进步,从h.261和mpeg-1到h.264/avc(高级视频编码)、mpeg-la、h.265/hevc(高效视频编码)和h.266/vvc(多功能视频编解码器),仍然需要不断改进和优化视频编码技术,以在各种应用中处理不断增加的数字视频数据量。本公开涉及视频编码中的进一步进步、改进和优化,特别是在ccalf(交叉分量自适应环路滤波)过程中的进一步进步、改进和优化。


技术实现要素:

3.根据一个方面,提供了一种编码器,其包括电路和耦合到该电路的存储器。该电路在操作中通过对亮度分量的第一重构图像样本应用ccalf(交叉分量自适应环路滤波)过程来生成第一系数值,并剪裁第一系数值。该电路通过对色度分量的第二重构图像样本应用alf(自适应环路滤波)过程来生成第二系数值,并且剪裁(clip)第二系数值。该电路通过将剪裁后的第一系数值与剪裁后的第二系数值相加产生第三系数值,并使用第三系数值对色度分量的第三重构图像样本进行编码。
4.根据另一方面,第一重构图像样本位于与第二重构图像样本相邻处。
5.根据另一方面,该电路在操作中响应于第一系数值小于64而将第一系数值设置为零。
6.根据另一方面,提供了一种编码器,其包括:块分割器,其在操作中将第一图像分割成多个块;帧内预测器,其在操作中使用被包括在所述第一图像中的参考块来预测被包括在所述第一图像中的块;帧间预测器,其在操作中使用包括在不同于所述第一图像的第二图像中的参考块来预测被包括在所述第一图像中的块;环路滤波器,其在操作中对被包括在所述第一图像中的块进行滤波;变换器,在操作中变换原始信号与由所述帧内预测器或所述帧间预测器产生的预测信号之间的预测误差,以产生变换系数;量化器,其在操作中对所述变换系数进行量化以产生经量化的系数;以及熵编码器,其在操作中对所述经量化的系数可变地编码以生成包括编码的经量化的系数和控制信息的编码比特流。环路滤波器执行以下操作:
7.通过对亮度分量的第一重构图像样本应用ccalf(交叉分量自适应环路滤波)过程来生成第一系数值;
8.剪裁第一系数值;
9.通过对色度分量的第二重构图像样本应用alf(自适应环路滤波)过程来生成第二系数值;
10.剪裁所述第二系数值;
11.通过将剪裁后的第一系数值与剪裁后的第二系数值相加,产生第三系数值;以及
12.使用第三系数值对所述色度分量的第三重构图像样本进行编码。
13.根据另一方面,提供了一种解码器,其包括电路和耦合到该电路的存储器。该电路在操作中通过对亮度分量的第一重构图像样本应用ccalf(交叉分量自适应环路滤波)过程来生成第一系数值,并剪裁第一系数值。该电路通过对色度分量的第二重构图像样本应用alf(自适应环路滤波)过程来生成第二系数值,并且剪裁第二系数值。该电路通过将剪裁后的第一系数值与剪裁后的第二系数值相加产生第三系数值,并使用第三系数值对色度分量的第三重构图像样本进行解码。
14.根据另一方面,提供了一种解码装置,其包括:解码器,其在操作中对编码比特流进行解码以输出经量化的系数;逆量化器,在操作中,对所述经量化的系数进行逆量化以输出变换系数;逆变换器,其在操作中对所述变换系数进行逆变换以输出预测误差;帧内预测器,其在操作中使用被包括在所述第一图像中的参考块来预测被包括在所述第一图像中的块;帧间预测器,其在操作中使用包括在不同于所述第一图像的第二图像中的参考块来预测包括在所述第一图像中的块;环路滤波器,其在操作中对被包括在所述第一图像中的块进行滤波;以及输出端,其在操作中输出包括所述第一图像的图片。环路滤波器执行以下操作:
15.通过对亮度分量的第一重构图像样本应用ccalf(交叉分量自适应环路滤波)过程来生成第一系数值;
16.剪裁第一系数值;
17.通过对色度分量的第二重构图像样本应用alf(自适应环路滤波)过程来生成第二系数值;
18.剪裁所述第二系数值;
19.通过将剪裁后的第一系数值与剪裁后的第二系数值相加产生第三系数值;以及
20.使用第三系数值,对色度分量的第三重构图像样本进行解码。
21.根据另一方面,提供了一种编码方法,包括:
22.通过对亮度分量的第一重构图像样本应用ccalf(交叉分量自适应环路滤波)过程来生成第一系数值;
23.剪裁第一系数值;
24.通过对色度分量的第二重构图像样本应用alf(自适应环路滤波)过程来生成第二系数值;
25.剪裁所述第二系数值;
26.通过将剪裁后的第一系数值与剪裁后的第二系数值相加产生第三系数值;以及
27.使用第三系数值对色度分量的第三重构图像样本进行编码。
28.根据另一方面,提供了一种解码方法,包括:
29.通过对亮度分量的第一重构图像样本应用ccalf(交叉分量自适应环路滤波)过程来生成第一系数值;
30.剪裁第一系数值;
31.通过对色度分量的第二重构图像样本应用alf(自适应环路滤波)过程来生成第二系数值;
32.剪裁所述第二系数值;
33.通过将剪裁后的第一系数值与剪裁后的第二系数值相加产生第三系数值;以及
34.使用第三系数值对色度分量的第三重构图像样本进行解码。
35.根据另一方面,提供了一种编码器,其包括电路和耦合到该电路的存储器。该电路在操作中通过将ccalf(交叉分量自适应环路滤波)过程应用于亮度分量的第一重构图像样本来生成第一系数值。该电路通过对色度分量的第二重构图像样本应用alf(自适应环路滤波)过程来生成第二系数值。该电路通过将第一系数值与第二系数值相加来生成第三系数值,并使用第三系数值对色度分量的第三重构图像样本进行编码。该电路确定对于色度分量的cb分量和cr分量具有相同值的第一参数。该电路使用第一参数从多个模型中确定熵编码模型。该电路使用该模型对ccalf过程的第二参数执行熵编码。
36.根据另一方面,提供了一种解码器,其包括电路和耦合到该电路的存储器。该电路在操作中确定对于色度分量的cb分量和cr分量具有相同值的第一参数。该电路使用第一参数从多个模型中确定熵编码模型。该电路使用该模型对ccalf过程的第二参数执行熵编码。该电路通过对亮度分量的第一重构图像样本应用ccalf(交叉分量自适应环路滤波)过程来生成第一系数值。该电路通过对色度分量的第二重构图像样本应用alf(自适应环路滤波)过程来生成第二系数值。该电路通过将第一系数值与第二系数值相加来生成第三系数值,并使用第三系数值对色度分量的第三重构图像样本进行解码。
37.根据另一方面,提供了一种编码器,其包括电路和存储器。该电路在操作中通过将ccalf(交叉分量自适应环路滤波)过程应用于亮度分量的第一重构图像样本来生成第一系数值。该电路通过对色度分量的第二重构图像样本应用alf(自适应环路滤波)过程来生成第二系数值。该电路通过将第一系数值与第二系数值相加来生成第三系数值,并使用第三系数值对色度分量的第三重构图像样本进行编码。在ccalf过程中,响应第二重构图像样本的坐标为(x,y),第一重构图像样本的坐标为(2x,2y-1)、(2x-1,2y)、(2x,2y)、(2x 1,2y)、(2x-1,2y 1)、(2x,2y 1)、(2x 1,2y 1)和(2x,2y 2)。
38.根据另一方面,提供了一种解码器,其包括电路和存储器。该电路在操作中通过将ccalf(交叉分量自适应环路滤波)过程应用于亮度分量的第一重构图像样本来生成第一系数值。该电路通过将alf(自适应环路滤波)过程应用于色度分量的第二重构图像样本来生成第二系数值。该电路通过将第一系数值与第二系数值相加来生成第三系数值,并使用第三系数值对色度分量的第三重构图像样本进行编码。在ccalf过程中,响应于第二重构图像样本的坐标为(x,y),第一重构图像样本的坐标为(2x,2y-1)、(2x-1,2y)、(2x,2y)、(2x 1,2y)、(2x-1,2y 1)、(2x,2y 1)、(2x 1,2y 1)和(2x,2y 2)。
39.根据另一方面,提供了一种编码器,其包括电路和存储器。该电路在操作中对当前块执行ccalf过程。该电路设置第一标志,其指示是否为第一块启用了ccalf过程,第一块与当前块的左侧相邻。该电路设置第二标志,其指示是否为第二块启用了ccalf过程,第二块与当前块的上侧相邻。该电路设置第三标志,其指示为当前块启用了ccalf过程。该电路确定与当前块的颜色分量相关联的第一索引。该电路使用第一标志、第二标志和第一索引导出指示上下文模型的第二索引,并且使用由第二索引指示的上下文模型对指示是否为当前块启用了ccalf过程的第三标志执行熵编码。
40.根据另一方面,提供了一种解码器,其包括电路,在操作中,解析指示是否为第一
块启用了ccalf过程的第一标志,第一块与当前块的左侧相邻。该电路解析指示是否为第二块启用了ccalf过程的第二标志,第二块与当前块的上侧相邻。该电路确定与当前块的颜色分量相关联的第一索引。该电路使用第一标志、第二标志和第一索引导出指示上下文模型的第二索引。该电路使用由第二索引指示的上下文模型对指示是否为当前块启用了ccalf过程的第三标志执行熵解码,并响应于第三标志指示为当前块启用了ccalf过程,对当前块执行ccalf过程。
41.在视频编码技术中,需要提出新的方法以提高编码效率,增强图像质量并减小电路规模。本公开的实施例的一些实现方式,包括单独或以各种组合考虑的本公开的实施例的构成元素,可以促进以下一项或多项:编码效率的提高、图像质量的增强、与编码/解码相关联的处理资源利用率的降低、电路规模的减小、编码/解码处理速度的提高等。
42.另外,本公开的实施例的一些实现方式,包括单独或以各种组合考虑的本公开的实施例的构成元素,可以在编码和解码中促进一个或多个元素的适当选择,例如滤波器、块、尺寸、运动向量、参考图片、参考块或操作。注意,本公开包括关于可以提供除上述优点之外的优点的配置和方法的公开。这种配置和方法的示例包括用于提高编码效率同时减少处理资源使用的增加的配置或方法。
43.根据说明书和附图,所公开的实施例的附加益处和优点将变得显而易见。益处和/或优点可以通过说明书和附图的各种实施例和特征单独获得,不需要提供所有实施例和特征以获得这样的益处和/或优点中的一个或多个。
44.应注意,一般或特定实施例可被实现为系统、方法、集成电路、计算机程序、存储介质或其任何选择性组合。
附图说明
45.[图1]图1是示出根据实施例的传输系统的功能配置的一个示例的示意图。
[0046]
[图2]图2是用于示出流中数据的分层结构的一个示例的概念图。
[0047]
[图3]图3是用于示出切片(slice)配置的一个示例的概念图。
[0048]
[图4]图4是用于示出分片(tile)配置的一个示例的概念图。
[0049]
[图5]图5是用于示出可缩放编码中的编码结构的一个示例的概念图。
[0050]
[图6]图6是用于示出可缩放编码中的编码结构的一个示例的概念图。
[0051]
[图7]图7是示出根据实施例的编码器的功能配置的框图。
[0052]
[图8]图8是示出编码器的安装示例的功能框图。
[0053]
[图9]图9是指示由编码器执行的整体编码过程的一个示例的流程图。
[0054]
[图10]图10是示出块分割的一个示例的概念图。
[0055]
[图11]图11是示出根据实施例的分割器的功能配置的一个示例的框图。
[0056]
[图12]图12是用于示出分割模式(splitting pattern)的示例的概念图。
[0057]
[图13a]图13a是用于示出分割模式的句法树的一个示例的概念图。
[0058]
[图13b]图13b是用于示出分割模式的句法树的另一示例的概念图。
[0059]
[图14]图14是指示用于各种变换类型的示例变换基函数的图表。
[0060]
[图15]图15是用于示出示例空间变化变换(svt)的概念图。
[0061]
[图16]图16是示出由变换器执行的过程的一个示例的流程图。
[0062]
[图17]图17是示出由变换器执行的过程的另一示例的流程图。
[0063]
[图18]图18是示出根据实施例的量化器的功能配置的一个示例的框图。
[0064]
[图19]图19是示出由量化器执行的量化过程的一个示例的流程图。
[0065]
[图20]图20是示出根据实施例的熵编码器的功能配置的一个示例的框图。
[0066]
[图21]图21是用于说明熵编码器中的基于上下文的自适应二进制算术编码(cabac)过程的示例流程的概念图。
[0067]
[图22]图22是示出根据实施例的环路滤波器的功能配置的一个示例的框图。
[0068]
[图23a]图23a是用于示出在自适应环路滤波器(alf)中使用的滤波器形状的一个示例的概念图。
[0069]
[图23b]图23b是用于示出在alf中使用的滤波器形状的另一示例的概念图。
[0070]
[图23c]图23c是用于示出在alf中使用的滤波器形状的另一示例的概念图。
[0071]
[图23d]图23d是用于示出交叉分量alf(cc-alf)的示例流程的概念图。
[0072]
[图23e]图23e是用于示出cc-alf中使用的滤波器形状的示例的概念图。
[0073]
[图23f]图23f是用于示出联合色度ccalf(jc-ccalf)的示例流程的概念图。
[0074]
[图23g]图23g是示出可以在jc-ccalf中采用的示例权重指数候选的表格。
[0075]
[图24]图24是表示用作解块滤波器(dbf)的环路滤波器的具体配置的一个示例的框图。
[0076]
[图25]图25是用于示出具有关于块边界的对称滤波特性的解块滤波器的示例的概念图。
[0077]
[图26]图26是用于示出执行解块滤波过程的块边界的概念图。
[0078]
[图27]图27是用于示出边界强度(bs)值的示例的概念图。
[0079]
[图28]图28是示出由编码器的预测器执行的过程的一个示例的流程图。
[0080]
[图29]图29是示出由编码器的预测器执行的过程的另一示例的流程图。
[0081]
[图30]图30是示出由编码器的预测器执行的过程的另一示例的流程图。
[0082]
[图31]图31是用于示出在实施例中的帧内预测中使用的六十七个帧内预测模式的概念图。
[0083]
[图32]图32是示出由帧内预测器执行的过程的一个示例的流程图。
[0084]
[图33]图33是用于示出参考图片的示例的概念图。
[0085]
[图34]图34是用于示出参考图片列表的示例的概念图。
[0086]
[图35]图35是示出帧间预测的示例基本过程流程的流程图。
[0087]
[图36]图36是示出运动向量的推导过程的一个示例的流程图。
[0088]
[图37]图37是示出运动向量的推导过程的另一示例的流程图。
[0089]
[图38a]图38a是用于示出用于mv推导的模式的示例表征的概念图。
[0090]
[图38b]图38b是用于示出用于mv推导的模式的示例表征的概念图。
[0091]
[图39]图39是示出常规帧间模式中的帧间预测过程的示例的流程图。
[0092]
[图40]图40是示出常规合并模式中的帧间预测过程的示例的流程图。
[0093]
[图41]图41是用于示出合并模式中的运动向量推导过程的一个示例的概念图。
[0094]
[图42]图42是用于示出通过hmvp合并模式针对当前图片的mv推导过程的一个示例的概念图。
[0095]
[图43]图43是示出帧速率上转换(fruc)过程的一个示例的流程图。
[0096]
[图44]图44是用于示出沿着运动轨迹的两个块之间的模式匹配(双边匹配)的一个示例的概念图。
[0097]
[图45]图45是用于示出当前图片中的模板与参考图片中的块之间的模式匹配(模板匹配)的一个示例的概念图。
[0098]
[图46a]图46a是用于示出基于多个相邻块的运动向量推导出每一子块的运动向量的一个示例的概念图。
[0099]
[图46b]图46b是用于示出在其中使用三个控制点的仿射模式中推导出每个子块的运动向量的一个示例的概念图。
[0100]
[图47a]图47a是用于示出仿射模式中控制点处的示例mv推导的概念图。
[0101]
[图47b]图47b是用于示出仿射模式中控制点处的示例mv推导的概念图。
[0102]
[图47c]图47c是用于示出仿射模式中控制点处的示例mv推导的概念图。
[0103]
[图48a]图48a是用于示出其中使用两个控制点的仿射模式的概念图。
[0104]
[图48b]图48b是用于示出其中使用三个控制点的仿射模式的概念图。
[0105]
[图49a]图49a是用于示出当用于编码块的控制点的数量和用于当前块的控制点的数量彼此不同时在控制点处的mv推导的方法的一个示例的概念图。
[0106]
[图49b]图49b是用于示出当用于编码块的控制点的数量和用于当前块的控制点的数量彼此不同时在控制点处的mv推导的方法的另一示例的概念图。
[0107]
[图50]图50是示出仿射合并模式中的过程的一个示例的流程图。
[0108]
[图51]图51是示出仿射帧间模式中的过程的一个示例的流程图。
[0109]
[图52a]图52a是用于示出两个三角形预测图像的生成的概念图。
[0110]
[图52b]图52b是用于示出与第二分区重叠的第一分区的第一部分以及可作为校正过程的一部分被加权的第一样本集和第二样本集的示例的概念图。
[0111]
[图52c]图52c是用于示出第一分区的第一部分的概念图,该第一部分是第一分区的与相邻分区的一部分重叠的部分。
[0112]
[图53]图53是示出三角形模式中的过程的一个示例的流程图。
[0113]
[图54]图54是用于示出其中以子块为单位推导出mv的高级时间运动向量预测(advanced temporal motion vector prediction,atmvp)模式的一个示例的概念图。
[0114]
[图55]图55是示出合并模式和动态运动向量刷新(dmvr)之间的关系的流程图。
[0115]
[图56]图56是用于示出dmvr的一个示例的概念图。
[0116]
[图57]图57是用于示出用于确定mv的dmvr的另一示例的概念图。
[0117]
[图58a]图58a是用于示出dmvr中的运动估计的一个示例的概念图。
[0118]
[图58b]图58b是示出dmvr中的运动估计过程的一个示例的流程图。
[0119]
[图59]图59是示出预测图像的生成过程的一个示例的流程图。
[0120]
[图60]图60是示出预测图像的生成过程的另一示例的流程图。
[0121]
[图61]图61是示出通过重叠块运动补偿(obmc)的预测图像的校正过程的一个示例的流程图。
[0122]
[图62]图62是用于示出通过obmc的预测图像校正过程的一个示例的概念图。
[0123]
[图63]图63是用于示出假设匀速直线运动的模型的概念图。
[0124]
[图64]图64是示出根据bio的帧间预测过程的一个示例的流程图。
[0125]
[图65]图65是示出可以根据bio执行帧间预测的帧间预测器的功能配置的一个示例的功能框图。
[0126]
[图66a]图66a是用于示出使用由lic执行的亮度校正过程的预测图像生成方法的过程的一个示例的概念图。
[0127]
[图66b]图66b是示出使用lic的预测图像生成方法的过程的一个示例的流程图。
[0128]
[图67]图67是示出根据实施例的解码器的功能配置的框图。
[0129]
[图68]图68是示出解码器的安装示例的功能框图。
[0130]
[图69]图69是示出由解码器执行的整体解码过程的一个示例的流程图。
[0131]
[图70]图70是用于示出分割确定器与其他构成元素之间的关系的概念图。
[0132]
[图71]图71是示出熵解码器的功能配置的一个示例的框图。
[0133]
[图72]图72是用于示出熵解码器中的cabac过程的示例流程的概念图。
[0134]
[图73]图73是示出逆量化器的功能配置的一个示例的框图。
[0135]
[图74]图74是示出由逆量化器执行的逆量化过程的一个示例的流程图。
[0136]
[图75]图75是示出由逆变换器执行的过程的一个示例的流程图。
[0137]
[图76]图76是示出由逆变换器执行的过程的另一示例的流程图。
[0138]
[图77]图77是示出环路滤波器的功能配置的一个示例的框图。
[0139]
[图78]图78是示出由解码器的预测器执行的过程的一个示例的流程图。
[0140]
[图79]图79是示出由解码器的预测器执行的过程的另一示例的流程图。
[0141]
[图80a]图80a是示出由解码器的预测器执行的过程的另一示例的流程图。
[0142]
[图80b]图80b是示出由解码器的预测器执行的过程的另一示例的流程图。
[0143]
[图80c]图80c是示出由解码器的预测器执行的过程的另一示例的流程图。
[0144]
[图81]图81是示出由解码器的帧内预测器执行的过程的一个示例的图。
[0145]
[图82]图82是示出解码器中mv推导过程的一个示例的流程图。
[0146]
[图83]图83是示出解码器中mv推导过程的另一示例的流程图。
[0147]
[图84]图84是示出解码器中通过常规帧间模式进行帧间预测的过程的示例的流程图。
[0148]
[图85]图85是示出解码器中通过常规合并模式进行帧间预测的过程的示例的流程图。
[0149]
[图86]图86是示出解码器中通过fruc模式进行帧间预测的过程的示例的流程图。
[0150]
[图87]图87是示出解码器中通过仿射合并模式进行帧间预测的过程的示例的流程图。
[0151]
[图88]图88是示出解码器中通过仿射帧间模式进行帧间预测的过程的示例的流程图。
[0152]
[图89]图89是示出解码器中通过三角形模式进行帧间预测的过程的示例的流程图。
[0153]
[图90]图90是示出解码器中通过dmvr进行运动估计的过程的示例的流程图。
[0154]
[图91]图91是示出解码器中通过dmvr进行的运动估计的一个示例过程的流程图。
[0155]
[图92]图92是示出在解码器中生成预测图像的过程的一个示例的流程图。
[0156]
[图93]图93是示出在解码器中生成预测图像的过程的另一示例的流程图。
[0157]
[图94]图94是示出解码器中通过obmc对预测图像的校正过程的示例的流程图。
[0158]
[图95]图95是示出解码器中通过bio对预测图像的校正过程的示例的流程图。
[0159]
[图96]图96是示出解码器中通过lic对预测图像的校正过程的示例的流程图。
[0160]
[图97]图97是根据第一方面的通过应用ccalf(交叉分量自适应环路滤波)过程对图像进行解码的样本过程流程的流程图。
[0161]
[图98]图98是示出根据实施例的编码器和解码器的功能配置的框图。
[0162]
[图99]图99是示出根据实施例的编码器和解码器的功能配置的框图。
[0163]
[图100]图100是示出根据实施例的编码器和解码器的功能配置的框图。
[0164]
[图101]图101是示出根据实施例的编码器和解码器的功能配置的框图。
[0165]
[图102]图102是根据第二方面的应用ccalf过程对图像进行解码的样本过程流程的流程图。
[0166]
[图103a]图103a图示了要从例如比特流的vps、aps、sps、pps、切片报头、ctu或tu解析的剪裁参数的样本位置。
[0167]
[图103b]图103b图示了要从例如比特流的vps、aps、sps、pps、切片报头、ctu或tu解析的剪裁参数的样本位置。
[0168]
[图103c]图103c图示了要从例如比特流的vps、aps、sps、pps、切片报头、ctu或tu解析的剪裁参数的样本位置。
[0169]
[图103d]图103d图示了要从例如比特流的vps、aps、sps、pps、切片报头、ctu或tu解析的剪裁参数的样本位置。
[0170]
[图103e]图103e图示了要从例如比特流的vps、aps、sps、pps、切片报头、ctu或tu解析的剪裁参数的样本位置。
[0171]
[图103f]图103f图示了要从例如比特流的vps、aps、sps、pps、切片报头、ctu或tu解析的剪裁参数的样本位置。
[0172]
[图104]图104(i)-(iii)图示了剪裁参数的示例。
[0173]
[图105]图105是根据第三方面的使用滤波器系数应用ccalf过程对图像进行解码的样本过程流程的流程图。
[0174]
[图106a]图106a是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0175]
[图106b]图106b是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0176]
[图106c]图106c是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0177]
[图106d]图106d是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0178]
[图106e]图106e是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0179]
[图106f]图106f是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0180]
[图106g]图106g是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0181]
[图106h]图106h是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0182]
[图107a]图107a是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0183]
[图107b]图107b是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0184]
[图107c]图107c是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0185]
[图107d]图107d是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0186]
[图107e]图107e是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0187]
[图107f]图107f是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0188]
[图107g]图107g是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0189]
[图107h]图107h是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0190]
[图108a]图108a是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0191]
[图108b]图108b是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0192]
[图108c]图108c是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0193]
[图108d]图108d是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0194]
[图108e]图108e是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0195]
[图108f]图108f是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0196]
[图108g]图108g是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0197]
[图108h]图108h是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0198]
[图109a]图109a是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0199]
[图109b]图109b是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念
图。
[0200]
[图109c]图109c是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0201]
[图109d]图109d是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0202]
[图110a]图110a是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0203]
[图110b]图110b是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0204]
[图110c]图110c是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0205]
[图110d]图110d是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。
[0206]
[图111]图111是指示将在ccalf过程中使用的滤波器系数的位置的进一步示例的概念图。
[0207]
[图112]图112是指示将在ccalf过程中使用的滤波器系数的位置的进一步示例的概念图。
[0208]
[图113]图113是示出根据实施例的由编码器和解码器执行的ccalf过程的功能配置的框图。
[0209]
[图114]图114是根据第四方面的通过使用从多个滤波器中选择的滤波器应用ccalf过程来对图像进行解码的样本过程流程的流程图。
[0210]
[图115]图115图示了选择滤波器的过程流程的示例。
[0211]
[图116-1a]图116-1a图示了滤波器的示例。
[0212]
[图116-1b]图116-1b图示了滤波器的示例。
[0213]
[图116-1c]图116-1c图示了滤波器的示例。
[0214]
[图116-1d]图116-1d图示了滤波器的示例。
[0215]
[图116-1e]图116-1e图示了滤波器的示例。
[0216]
[图116-1f]图116-1f图示了滤波器的示例。
[0217]
[图116-1g]图116-1g图示了滤波器的示例。
[0218]
[图116-1h]图116-1h图示了滤波器的示例。
[0219]
[图116-1i]图116-1i图示了滤波器的示例。
[0220]
[图117-2a]图117-2a图示了滤波器的示例。
[0221]
[图117-2b]图117-2b图示了滤波器的示例。
[0222]
[图117-2c]图117-2c图示了滤波器的示例。
[0223]
[图117-2d]图117-2d图示了滤波器的示例。
[0224]
[图117-2e]图117-2e图示了滤波器的示例。
[0225]
[图117-2f]图117-2f图示了滤波器的示例。
[0226]
[图117-2g]图117-2g图示了滤波器的示例。
[0227]
[图117-2h]图117-2h图示了滤波器的示例。
[0228]
[图117-2i]图117-2i图示了滤波器的示例。[图118]图118是根据第五方面的通过使用参数应用ccalf过程来对图像进行解码的样本过程流程的流程图。
[0229]
[图119]图119(i)-(iv)图示了要从比特流解析的系数的数量(numcoeff)的示例。
[0230]
[图120]图120是根据第六方面的通过使用参数应用ccalf过程来对图像进行解码的样本过程流程的流程图。
[0231]
[图121]图121是示出通过计算相邻样本的加权平均值来产生当前色度样本的亮度分量的ccalf值的示例的概念图。
[0232]
[图122]图122是示出通过计算相邻样本的加权平均值来产生当前色度样本的亮度分量的ccalf值的示例的概念图。
[0233]
[图123]图123是示出通过计算相邻样本的加权平均值来产生当前色度样本的亮度分量的ccalf值的示例的概念图。
[0234]
[图124]图124是示出通过计算相邻样本的加权平均值来产生当前样本的亮度分量的ccalf值的示例的概念图,其中相邻样本的位置被自适应地确定为色度类型。
[0235]
[图125]图125是示出通过计算相邻样本的加权平均值来产生当前样本的亮度分量的ccalf值的示例的概念图,其中相邻样本的位置自适应于色度类型地被确定。
[0236]
[图126]图126是示出通过将位移位应用于加权计算的输出值来产生亮度分量的ccalf值的示例的概念图。
[0237]
[图127]图127是示出通过将位移位应用于加权计算的输出值来生成亮度分量的ccalf值的示例的概念图。
[0238]
[图128]图128是根据第七方面的通过使用参数应用ccalf过程来对图像进行解码的样本过程流程的流程图。
[0239]
[图129a]图129a说明了要从比特流解析的一个或多个参数的样本位置,该一个或多个参数可包括第一参数、第二参数或两者。
[0240]
[图129b]图129b说明了要从比特流解析的一个或多个参数的样本位置,该一个或多个参数可包括第一参数、第二参数或两者。
[0241]
[图129c]图129c说明了要从比特流解析的一个或多个参数的样本位置,该一个或多个参数可包括第一参数、第二参数或两者。
[0242]
[图129d]图129d说明了要从比特流解析的一个或多个参数的样本位置,该一个或多个参数可包括第一参数、第二参数或两者。
[0243]
[图129e]图129e说明了要从比特流解析的一个或多个参数的样本位置,该一个或多个参数可包括第一参数、第二参数或两者。
[0244]
[图130a]图130a示出了取回一个或多个参数的样本过程,该一个或多个参数可以包括第一参数、第二参数或两者。
[0245]
[图130b]图130b示出了取回一个或多个参数的样本过程,该一个或多个参数可以包括第一参数、第二参数或两者。
[0246]
[图130c]图130c示出了取回一个或多个参数的样本过程,该一个或多个参数可以包括第一参数、第二参数或两者。
[0247]
[图130d]图130d示出了取回一个或多个参数的样本过程,该一个或多个参数可以包括第一参数、第二参数或两者。
[0248]
[图131a]图131a示出了第二参数的样本值。
[0249]
[图131b]图131b示出了第二参数的样本值。
[0250]
[图131c]图131c示出了第二参数的样本值。
[0251]
[图132]图132示出了使用算术编码解析第二参数的示例。
[0252]
[图133]图133是应用于矩形分区和非矩形分区(例如三角形分区)的本实施例的变型的概念图。
[0253]
[图134]图134是根据第八方面的通过使用参数应用ccalf过程来对图像进行解码的示例过程流程的流程图。
[0254]
[图135]图135是根据第八方面的通过使用参数应用ccalf过程来对图像进行解码的样本过程流程的流程图。
[0255]
[图136]图136示出了色度样本类型0到5的示例位置。
[0256]
[图137a]图137a是示出样本对称填充的概念图。
[0257]
[图137b]图137b是示出样本对称填充的概念图。
[0258]
[图137c]图137c是示出样本对称填充的概念图。
[0259]
[图137d]图137d是示出样本对称填充的概念图。
[0260]
[图138]图138是示出样本对称填充的概念图。
[0261]
[图139]图139是示出样本对称填充的概念图。
[0262]
[图140a]图140a是示出样本非对称填充的概念图。
[0263]
[图140b]图140b是示出样本非对称填充的概念图。
[0264]
[图140c]图140c是示出样本非对称填充的概念图。
[0265]
[图140d]图140d是示出样本非对称填充的概念图。
[0266]
[图141]图141是示出样本非对称填充的概念图。
[0267]
[图142]图142是示出样本非对称填充的概念图。
[0268]
[图143]图143是示出样本非对称填充的概念图。
[0269]
[图144a]图144a是示出进一步样本非对称填充的概念图。
[0270]
[图144b]图144b是示出进一步样本非对称填充的概念图。
[0271]
[图144c]图144c是示出进一步样本非对称填充的概念图。
[0272]
[图144d]图144d是示出进一步样本非对称填充的概念图。
[0273]
[图145]图145是示出进一步样本非对称填充的概念图。
[0274]
[图146]图146是示出进一步样本非对称填充的概念图。
[0275]
[图147]图147是示出进一步样本非对称填充的概念图。
[0276]
[图148a]图148a是示出进一步样本对称填充的概念图。
[0277]
[图148b]图148b是示出进一步样本对称填充的概念图。
[0278]
[图148c]图148c是示出进一步样本对称填充的概念图。
[0279]
[图148d]图148d是示出进一步样本对称填充的概念图。
[0280]
[图149]图149是示出进一步样本对称填充的概念图。
[0281]
[图150]图150是示出进一步样本对称填充的概念图。
[0282]
[图151a]图151a是示出进一步样本非对称填充的概念图。
[0283]
[图151b]图151b是示出进一步样本非对称填充的概念图。
[0284]
[图151c]图151c是示出进一步样本非对称填充的概念图。
[0285]
[图152]图152是示出进一步样本非对称填充的概念图。
[0286]
[图153]图153是示出进一步样本非对称填充的概念图。
[0287]
[图154]图154是示出进一步样本非对称填充的概念图。
[0288]
[图155a]图155a图示了具有水平和垂直虚拟边界的填充的进一步示例。
[0289]
[图155b]图155b图示了具有水平和垂直虚拟边界的填充的进一步示例。
[0290]
[图155c]图155c图示了具有水平和垂直虚拟边界的填充的进一步示例。
[0291]
[图155d]图155d图示了具有水平和垂直虚拟边界的填充的进一步示例。
[0292]
[图155e]图155e图示了具有水平和垂直虚拟边界的填充的进一步示例。
[0293]
[图155f]图155f图示了具有水平和垂直虚拟边界的填充的进一步示例。
[0294]
[图155g]图155g图示了具有水平和垂直虚拟边界的填充的进一步示例。
[0295]
[图155h]图155h图示了具有水平和垂直虚拟边界的填充的进一步示例。
[0296]
[图155i]图155i图示了具有水平和垂直虚拟边界的填充的进一步示例。
[0297]
[图155j]图155j图示了具有水平和垂直虚拟边界的填充的进一步示例。
[0298]
[图155k]图155k图示了具有水平和垂直虚拟边界的填充的进一步示例。
[0299]
[图155l]图155l图示了具有水平和垂直虚拟边界的填充的进一步示例。
[0300]
[图156]图156是示出根据示例的编码器和解码器的功能配置的框图,其中对称填充用于alf的虚拟边界位置上并且对称或非对称填充用于cc-alf的虚拟边界位置上。
[0301]
[图157]图157是示出根据另一示例的编码器和解码器的功能配置的框图,其中对称填充用于alf的虚拟边界位置上并且单边填充用于cc-alf的虚拟边界位置上。
[0302]
[图158a]图158a是示出具有水平或垂直虚拟边界的单边填充的示例的概念图。
[0303]
[图158b]图158b是示出具有水平或垂直虚拟边界的单边填充的示例的概念图。
[0304]
[图158c]图158c是示出具有水平或垂直虚拟边界的单边填充的示例的概念图。
[0305]
[图158d]图158d是示出具有水平或垂直虚拟边界的单边填充的示例的概念图。
[0306]
[图158e]图158e是示出具有水平或垂直虚拟边界的单边填充的示例的概念图。
[0307]
[图158f]图158f是示出具有水平或垂直虚拟边界的单边填充的示例的概念图。
[0308]
[图158g]图158g是示出具有水平或垂直虚拟边界的单边填充的示例的概念图。
[0309]
[图158h]图158h是示出具有水平或垂直虚拟边界的单边填充的示例的概念图。
[0310]
[图159a]图159a是示出具有水平和垂直虚拟边界的单边填充的示例的概念图。
[0311]
[图159b]图159b是示出具有水平和垂直虚拟边界的单边填充的示例的概念图。
[0312]
[图159c]图159c是示出具有水平和垂直虚拟边界的单边填充的示例的概念图。
[0313]
[图160]图160是根据第九方面的使用参数对应用ccalf过程的图像进行解码的样本过程流程的流程图。
[0314]
[图161]图161是要在ccalf过程中应用的滤波器的示例的概念图。
[0315]
[图162]图162描述了滤波过程的样本等式。
[0316]
[图163]图163是关于ccalf的句法的示例的概念图。
[0317]
[图164]图164是使用具有固定阶数k(表示为egk)的指数-哥伦布码(exponential-golomb code)来用信号通知滤波器系数值的示例的概念图。
[0318]
[图165a]图165a是应用于滤波器系数的egk的示例的概念图。
[0319]
[图165b]图165b是应用于滤波器系数的egk的示例的概念图。
[0320]
[图165c]图165c是应用于滤波器系数的egk的示例的概念图。
[0321]
[图165d]图165d是应用于滤波器系数的egk的示例的概念图。
[0322]
[图166a]图166a是应用于滤波器系数的egk的示例的概念图。
[0323]
[图166b]图166b是应用于滤波器系数的egk的示例的概念图。
[0324]
[图167a]图167a是应用于滤波器系数的egk的示例的概念图。
[0325]
[图167b]图167b是应用于滤波器系数的egk的示例的概念图。
[0326]
[图168a]图168a是应用于滤波器系数的egk的示例的概念图。
[0327]
[图168b]图168b是应用于滤波器系数的egk的示例的概念图。
[0328]
[图169]图169是在alf过程中使用的参数的句法的示例的概念图。
[0329]
[图170]图170是ccalf过程中使用的参数的句法的示例的概念图。
[0330]
[图171]图171是使用一组系数对应用ccalf过程的图像进行解码的过程流程的示例的流程图。
[0331]
[图172a]图172a是滤波器系数组的形状的示例的概念图。
[0332]
[图172b]图172b是滤波器系数组的形状的示例的概念图。
[0333]
[图172c]图172c是滤波器系数组的形状的示例的概念图。
[0334]
[图172d]图172d是滤波器系数组的形状的示例的概念图。
[0335]
[图173a]图173a是第一分量和第二分量的重构样本的位置的示例的概念图。
[0336]
[图173b]图173b是第一分量和第二分量的重构样本的位置的示例的概念图。
[0337]
[图173c]图173c是第一分量和第二分量的重构样本的位置的示例的概念图。
[0338]
[图173d]图173d是第一分量和第二分量的重构样本的位置的示例的概念图。
[0339]
[图174]图174是使用基于其他块选择的上下文模型对应用ccalf过程的图像进行解码的过程流程的示例的流程图。
[0340]
[图175a]图175a是第一块和第二块的位置的示例的概念图。
[0341]
[图175b]图175b是第一块和第二块的位置的示例的概念图。
[0342]
[图175c]图175c是第一块和第二块的位置的示例的概念图。
[0343]
[图175d]图175d是第一块和第二块的位置的示例的概念图。
[0344]
[图176]图176是第一块和第二块的位置的另一示例的概念图。
[0345]
[图177]图177是计算ctxidx的等式的示例的表格。
[0346]
[图178]图178是第三标志的ctxidx的initvalue和shiftidx的示例的表格。
[0347]
[图179]图179是计算出的ctxidx的示例的表格。
[0348]
[图180]图180是第三标志的ctxidx的initvalue和shiftidx的另一个示例的表格。
[0349]
[图181]图181是计算ctxidx的另一个示例的表格。
[0350]
[图182]图182是示出用于实现内容分发服务的内容提供系统的示例整体配置的图。
[0351]
[图183]图183是用于示出网页的显示屏幕的示例的概念图。
[0352]
[图184]图184是用于示出网页的显示屏幕的示例的概念图。
[0353]
[图185]图185是示出智能手机的一个示例的框图。
[0354]
[图186]图186是示出智能手机的功能配置的示例的框图。
具体实施方式
[0355]
在附图中,除非上下文另有指示,否则相同的附图标记表示相似的元素。图中元素的大小和相对位置不一定按比例绘制。
[0356]
以下,将参照附图描述实施例。注意,以下描述的实施例各自示出一般或特定示例。以下实施例中所指示的数值、形状、材料、组件、组件的布置和连接、步骤、步骤的关系和次序等仅为示例,并不旨在限制权利要求的范围。
[0357]
下面将描述编码器和解码器的实施例。实施例是编码器和解码器的示例,在本公开的方面的描述中呈现的过程和/或配置可应用于所述编码器和解码器。过程和/或配置也可以在与根据实施例的编码器和解码器不同的编码器和解码器中实现。例如,关于应用于实施例的过程和/或配置,可以实现以下任一项:
[0358]
(1)根据在本公开的方面的描述中呈现的实施例的编码器或解码器的任何组件可以用本公开的方面的描述中的任何地方呈现的另一组件替换或与其结合。
[0359]
(2)在根据实施例的编码器或解码器中,可以对由编码器或解码器的一个或多个组件执行的功能或过程进行任意改变,例如对功能或过程的添加、替换、移除等。例如,任何功能或过程可以用在本公开的方面的描述中的任何地方呈现的另一功能或过程替代或与其结合。
[0360]
(3)在根据实施例的由编码器或解码器实现的方法中,可以进行任意变化,例如添加、替换和移除方法中包括的一个或多个过程。例如,该方法中的任何过程可以被本公开的各方面的描述中的任何地方呈现的另一过程替代或与其结合。
[0361]
(4)被包括在根据实施例的编码器或解码器中的一个或多个组件可与在本公开内容的各方面的描述的任何地方呈现的组件结合,可以与包括在本公开的方面的描述的任何地方呈现的一个或多个功能的组件结合,并且可以与实现由本公开的方面的描述中呈现的组件实现的一个或多个过程的组件结合。
[0362]
(5)包括根据实施例的编码器或解码器的一个或多个功能的组件,或者实现根据实施例的编码器或解码器的一个或多个过程的组件,可以与在本公开的方面的描述中的任何地方呈现的组件结合或用其替代,与包括在本公开的方面的描述中的任何地方呈现的一个或多个功能的组件结合或用其替代,或者与实现在本公开的方面的描述中的任何地方呈现的一个或多个过程的组件结合或用其替代。
[0363]
(6)在由根据实施例的编码器或解码器实现的方法中,该方法中包括的任何过程可以用在本公开的方面的描述中的任何地方呈现的过程或与任何对应或等同的过程替代或与其结合。
[0364]
(7)被包括在由根据实施例的所述编码器或解码器实现的方法的一个或多个过程可以与在本公开内容的各方面的描述的任何地方呈现的过程相结合。
[0365]
(8)在本公开的方面的描述中呈现的过程和/或配置的实现方式不限于根据实施例的编码器或解码器。例如,过程和/或配置可以在用于与实施例中公开的运动图像编码器或运动图像解码器不同的目的的设备中实现。
[0366]
(术语定义)
[0367]
相应术语可以如下作为示例所指示的那样进行定义。
[0368]
图像是配置有一组像素的数据单元,是图片,或者包括小于像素的块。除了视频之外,图像还包括静止图像。
[0369]
图片是配置有一组像素的图像处理单元,并且也可以称为帧或场。例如,图片可以采用单色格式的亮度样本数组(array)或亮度样本数组和两个对应的4:2:0、4:2:2和4:4:4色格式的色度样本数组的形式。
[0370]
块是一个处理单元,它是一组确定数量的像素。块可以具有任意数量的不同形状。例如,块可以具有m
×
n(m列
×
n行)像素的矩形、m
×
m像素的方形、三角形、圆形等。块的示例包括切片、分片、砖块(brick)、ctu、超级块、基本分割单元、vpdu、用于硬件的处理分割单元、cu、处理块单元、预测块单元(pu)、正交变换块单元(tu)、单元和子块。块可以采用m
×
n样本数组或m
×
n变换系数数组的形式。例如,块可以是包括一个亮度矩阵和两个色度矩阵的方形或矩形像素区域。
[0371]
像素或样本是图像的最小点。像素或样本包括整数位置处的像素,以及子像素位置处的像素,例如基于整数位置处的像素生成的。
[0372]
像素值或样本值是像素的特征值。像素值或样本值可以包括亮度值、色度值、rgb灰度等级、深度值、零或1的二进制值等中的一个或多个。
[0373]
色度(chroma)或彩度(chrominance)是颜色的强度,通常由符号cb和cr表示,它们指定样本数组的值或单个样本值表示与原色相关的两个色差信号之一的值。
[0374]
亮度(luma)或照度(luminance)是图像的明亮度,通常由符号或下标y或l表示,它们指定样本数组的值或单个样本值表示与原色相关的单色信号的值。
[0375]
标志(flag)包括指示例如参数或索引的值的一个或多个位。标志可以是二进制标志,其指示标志的二进制值,其也可以指示参数的非二进制值。
[0376]
信号传达信息,该信息由信号符号化或编码到信号中。信号包括离散数字信号和连续模拟信号。
[0377]
流或比特流是数字数据流的数字数据串。流或比特流可以是一个流或者可以配置有具有多个分层层(hierarchical layer)的多个流。流或比特流可以使用单个传输路径以串行通信方式传输,或者可以使用多个传输路径以分组通信方式传输。
[0378]
差是指各种数学上的差,例如简单差(x-y)、差的绝对值(|x-y|)、平方差(x^2-y^2)、差的平方根(√(x

y))、加权差(ax-by:a和b是常数)、偏移差(x-y a:a是偏移)等。在标量的情况下,简单差就足够了,并且差计算被包括。
[0379]
和是指各种数学和,例如简单和(x y)、和的绝对值(|x y|)、平方和(x^2 y^2)、和的平方根(√(x y))、加权差(ax by:a和b是常数)、偏移和(x y a:a是偏移)等。在标量的情况下,简单和就足够了,并且和计算被包括。
[0380]
帧是顶场和底场的组合,其中采样行0、2、4、...源自顶场,并且采样行1、3、5、...源自底场。
[0381]
切片是被包含在一个独立切片段和同一访问单元内的下一个独立切片段(如果有)之前的所有后续从属切片段(如果有)中的整数个编码树单元。
[0382]
分片是图片中特定分片列和特定分片行内的编码树块的矩形区域。分片可以是旨在能够独立解码和编码的帧的矩形区域,尽管仍然可以应用跨分片边缘的环路滤波。
[0383]
编码树单元(ctu)可以是具有三个样本数组的图片的亮度样本的编码树块,或色度样本的两个对应编码树块。替代地,ctu可以是单色图片和使用三个单独的色彩平面和用于编码样本的语法结构编码的图片中的一个的样本的编码树块。超级块可以是由1个或2个模式信息块组成的64
×
64像素的方形块,或者递归地划分为四个32
×
32块,这些块本身可以进一步划分。
[0384]
(系统配置)
[0385]
首先,将描述根据实施例的传输系统。图1是示出根据实施例的传输系统400的配置的一个示例的示意图。
[0386]
传输系统400是传输通过对图像编码生成的流并对传输的流进行解码的系统。如图所示,传输系统400包括如图1所示的编码器100、网络300和解码器200。
[0387]
图像被输入到编码器100。编码器100通过对输入图像进行编码来生成流,并且将流输出到网络300。流包括例如经编码的图像和用于对经编码的图像进行解码的控制信息。图像通过编码压缩。
[0388]
需要说明的是,通过编码器100编码前的图像也称为原始图像、原始信号或原始样本。图像可以是视频或静止图像。图像是序列、图片和块的通用概念,因此除非另有说明,否则不限于具有特定大小的空间区域和具有特定大小的时间区域。图像是像素或像素值的数组,并且表示图像或像素值的信号也称为样本。该流可以被称为比特流、编码比特流、压缩比特流或编码信号。此外,编码器100可被称为图像编码器或视频编码器。由编码器100执行的编码方法可以被称为编码方法、图像编码方法或视频编码方法。
[0389]
网络300将编码器100生成的流传输到解码器200。网络200可以是因特网、广域网(wan)、局域网(lan)或网络的任何组合。网络300不限于双向通信网络,并且可以是发送数字地面广播、卫星广播等的广播波的单向通信网络。替代地,网络300可以由诸如数字多功能盘(dvd)和蓝光光盘(bd)等的记录介质代替,在该记录介质上记录流。
[0390]
解码器200例如通过对由网络300传输的流进行解码来生成作为未压缩图像的解码图像。例如,解码器根据与由编码器100采用的编码方法相对应的解码方法对流进行解码。
[0391]
需要说明的是,解码器200也可以称为图像解码器或视频解码器,并且由解码器200执行的解码方法也可以称为解码方法、图像解码方法或视频解码方法。
[0392]
(数据结构)
[0393]
图2是用于示出流中数据的分层结构的一个示例的概念图。为方便起见,将参考图1的传输系统400来描述图2。流包括例如视频序列。如图2的(a)所示,视频序列包括一个或多个视频参数集(vps)、一个或多个序列参数集(sps)、一个或多个图片参数集(pps)、补充增强信息(sei)和多个图片。
[0394]
在具有多个层的视频中,vps可以包括在多个层中的一些层之间共用的编码参数,以及与视频中包括的多个层中的一些层或与单个层相关的编码参数。
[0395]
sps包括用于序列的参数,即解码器200为了解码序列而参考的编码参数。例如,编码参数可以指示图片的宽度或高度。应当注意,可以存在多个sps。
[0396]
pps包括用于图片的参数,即,解码器200为了解码序列中的每个图片而参考的编码参数。例如,编码参数可以包括用于对图片进行解码的量化宽度的参考值和指示加权预
测的应用的标志。应当注意,可以存在多个pps。sps和pps中的每一个可以简称为参数集。
[0397]
如图2的(b)所示,图片可以包括图片报头和一个或多个切片。图片报头包括解码器200为了解码一个或多个切片而参考的编码参数。
[0398]
如图2的(c)所示,切片包括切片报头和一个或多个砖块。切片报头包括解码器200为了解码一个或多个砖块而参考的编码参数。
[0399]
如图2的(d)所示,砖块包括一个或多个编码树单元(ctu)。
[0400]
要注意,图片可以不包括任何切片并且可以包括分片组而不是切片。在这种情况下,分片组包括至少一个分片。此外,砖块可以包括切片。
[0401]
ctu也称为超级块或基分割单元(basis splitting unit)。如图2的(e)所示,ctu包括ctu报头和至少一个编码单元(cu)。如图所示,ctu包括四个编码单元cu(10)、cu(11)、cu(12)和cu(13)。ctu报头包括解码器200为了对至少一个cu解码而参考的编码参数。
[0402]
cu可以被分割成多个较小的cu。如图所示,cu(10)没有被分割成更小的编码单元;cu(11)被分成四个较小的编码单元cu(110)、cu(111)、cu(112)和cu(113);cu(12)没有被分割成更小的编码单元;并且cu(13)被分割成七个较小的编码单元cu(1310)、cu(1311)、cu(1312)、cu(1313)、cu(132)、cu(133)和cu(134)。如图2的(f)所示,cu包括cu报头、预测信息和残差系数信息。预测信息是用于预测cu的信息,并且残差系数信息是表示稍后描述的预测残差的信息。尽管cu与预测单元(pu)和变换单元(tu)基本相同,但是需要注意的是,例如,将稍后描述的子块变换(sbt)可以包括多个小于cu的tu。此外,可以针对被包括在cu中的每个虚拟流水线解码单元(vpdu)来处理cu。vpdu例如是固定单元,在硬件中执行流水线处理时可以在一个阶段对该固定单元进行处理。
[0403]
应当注意,流可以不包括图2所示的所有分层层。分层层的次序可以交换,或者任何分层层可以被另一个分层层替换。这里,作为将要由诸如编码器100或解码器200之类的设备执行的过程的目标的图片被称为当前图片。当过程为编码过程时,当前图片表示待编码的当前图片,并且当过程为解码过程时,当前图片表示待解码的当前图片。同样地,例如,作为将要由诸如编码器100或解码器200之类的设备执行的过程的目标的cu或cu块被称为当前块。当过程为编码过程时,当前块表示待编码的当前块,并且当过程为解码过程时,当前块表示待解码的当前块。
[0404]
(图片结构:切片/分片)
[0405]
图片可配置有一个或多个切片单元或一个或多个分片单元以促进图片的并行编码/解码。
[0406]
切片是被包括在图片中的基本编码单元。图片可以包括例如一个或多个切片。此外,切片包括一个或多个编码树单元(ctu)。
[0407]
图3是用于示出切片配置的一个示例的概念图。例如,在图3中,图片包括11
×
8个ctu,并被分割成四个切片(切片1到4)。切片1包括16个ctu,切片2包括21个ctu,切片3包括二十九个ctu,并且切片4包括二十二个ctu。这里,图片中的每个ctu都属于切片之一。每个切片的形状是通过水平分割图片获得的形状。每个切片的边界不需要与图像端重合,并且可以与图像中ctu之间的任何边界重合。切片中ctu的处理次序(编码次序或解码次序)例如是光栅扫描次序。切片包括切片报头和编码数据。切片的特征可以写入切片报头中。特征可以包括切片中顶部ctu的ctu地址、切片类型等。
[0408]
分片是被包括在图片中的矩形区域的单位。图片的分片可以按光栅扫描次序被指派有称为tileid的数字。
[0409]
图4是用于示出分片配置的一个示例的概念图。例如,在图4中,图片包括11
×
8个ctu,并被分割成矩形区域的四个分片(分片1到4)。在使用分片时,ctu的处理次序可能与不使用分片的情况下的处理次序不同。当不使用分片时,通常以光栅扫描次序处理图片中的多个ctu。当使用多个分片时,以光栅扫描次序处理多个分片中的每一个中的至少一个ctu。例如,如图4所示,分片1中包括的ctu的处理次序是从分片1的第一列的左端到分片1的第一列的右端,并且然后继续从分片1的第二列的左端到分片1的第二列的右端。
[0410]
需要说明的是,一个分片可以包括一个或多个切片,并且一个切片可以包括一个或多个分片。需要注意的是,图片可以配置有一个或多个分片集。分片集可以包括一个或多个分片组,或者一个或多个分片。图片可以配置有分片集、分片组和分片中的一个。例如,假设以光栅扫描次序针对每个分片集扫描多个分片的次序是分片的基本编码次序。假设在每个分片集中以基本编码次序连续的一个或多个分片的集合是分片组。这样的图片可以由稍后描述的分割器102(参见图7)来配置。
[0411]
(可缩放编码)
[0412]
图5和图6是示出可缩放流结构的示例的概念图,并且为了方便将参考图1进行描述。
[0413]
如图5所示,编码器100可以通过将多个图片中的每一个划分为多个层中的任何层并且在层中对图片进行编码来生成时间/空间上可缩放的流。例如,编码器100针对每一层对图片进行编码,从而在增强层存在于基础层之上的情况下实现可缩放性。每个图片的这种编码也称为可缩放编码。以这种方式,解码器200能够切换通过解码流来显示的图像的图像质量。换言之,解码器200可以基于诸如解码器200的处理能力之类的内部因素和诸如通信带宽状态之类的外部因素来确定要解码哪一层。结果,解码器200能够在低分辨率和高分辨率之间自由切换的同时解码内容。例如,流的用户在回家的路上使用智能手机观看流的视频到一半,并在家中在设备(例如,连接到因特网的tv)上继续观看视频。需要注意的是,上述智能手机和设备中的每一个都包括具有相同或不同性能的解码器200。在这种情况下,当设备将层解码到流中的更高层时,用户可以在家中观看高质量的视频。以这种方式,编码器100不需要生成具有相同内容的不同图像质量的多个流,并且因此可以减少处理负荷。
[0414]
此外,增强层可以包括基于关于图像的统计信息的元信息。解码器200可以基于元数据通过对基层中的图片执行超分辨率成像来生成其图像质量已经被增强的视频。超分辨率成像可以包括例如在相同分辨率下sn比的提高、分辨率的增加等。元数据可以包括例如用于识别如在超分辨率过程中使用的线性或非线性滤波器系数的信息,或滤波过程、机器学习或最小二乘法(在超分辨率处理中使用的)等中识别参数值的信息。
[0415]
在实施例中,可以提供一种配置,其中根据例如图片中的对象的含义将图片划分为例如分片。在这种情况下,解码器200可以通过选择要解码的分片来仅对图片中的部分区域进行解码。此外,对象(人、汽车、球等)的属性和对象在图片中的位置(相同图像中的坐标)可以被存储为元数据。在这种情况下,解码器200能够基于元数据识别期望对象的位置,并确定包括该对象的分片。例如,如图6所示,可以使用不同于图像数据的数据存储结构来存储元数据,例如hevc中的sei(补充增强信息)消息。该元数据指示例如主要对象的位置、
大小或颜色。
[0416]
元数据可以以多个图片(例如,流、序列或随机访问单元)为单位进行存储。以这种方式,解码器200能够获得例如特定人出现在视频中的时间,并且通过将时间信息与图片单元信息进行拟合,能够识别其中对象(人)出现的图片并确定对象在图片中的位置。
[0417]
(编码器)
[0418]
将描述根据实施例的编码器。图7是示出根据实施例的编码器100的功能配置的框图。编码器100是以块为单位对视频进行编码的视频编码器。
[0419]
如图7所示,编码器100是以块为单位对图像进行编码的装置,并且包括分割器102、减法器104、变换器106、量化器108、熵编码器110、逆量化器112、逆变换器114、加法器116、块存储器118、环路滤波器120、帧存储器122、帧内预测器124、帧间预测器126、预测控制器128和预测参数生成器130。如图所示,帧内预测器124和帧间预测器126是预测控制器的一部分。
[0420]
编码器100被实现为例如通用处理器和存储器。在这种情况下,当存储在存储器中的软件程序由处理器执行时,处理器充当分割器102、减法器104、变换器106、量化器108、熵编码器110、逆量化器112、逆变换器114、加法器116、环路滤波器120、帧内预测器124、帧间预测器126和预测控制器128。替代地,编码器100可以实现为与分割器102、减法器104、变换器106、量化器108、熵编码器110、逆量化器112、逆变换器114、加法器116、环路滤波器120、帧内预测器124、帧间预测器126和预测控制器128相对应的一个或多个专用电子电路。
[0421]
(编码器的安装示例)
[0422]
图8是示出编码器100的安装示例的功能框图。编码器100包括处理器a1和存储器a2。例如,图7所示的编码器100的多个构成元素安装在图8所示的处理器a1和存储器a2上。
[0423]
处理器a1是执行信息处理并耦合到存储器a2的电路。例如,处理器a1是对图像进行编码的专用或通用电子电路。处理器a1可以是诸如cpu之类的处理器。此外,处理器a1可以是多个电子电路的集合体。另外,例如,处理器a1可以承担图7所示的编码器100等的多个构成元素中的两个或更多个构成元素的角色。
[0424]
存储器a2是用于存储处理器a1用来编码图像的信息的专用或通用存储器。存储器a2可以是电子电路,并且可以连接到处理器a1。此外,存储器a2可以被包括在处理器a1中。此外,存储器a2可以是多个电子电路的集合体。另外,存储器a2可以是磁盘、光盘等,或者可以表示为存储装置、记录介质等。此外,存储器a2可以是非易失性存储器或易失性存储器。
[0425]
例如,存储器a2可以存储待编码图像或与经编码的图像相对应的比特流。此外,存储器a2可以存储用于使处理器a1对图像进行编码的程序。
[0426]
此外,例如,存储器a2可以充当图7所示的编码器100等的多个构成元素中的用于存储信息的两个或更多个构成元素的角色。例如,存储器a2可以充当图7所示的块存储器118和帧存储器122的角色。更具体地说,存储器a2可以存储重构块、重构图片等。
[0427]
应当注意,在编码器100中,可以不实施图7所示的多个构成元素等的全部,并且可以不执行这里描述的所有过程。图7所示的构成元素等的一部分可以被包括在另一个设备中,或者这里描述的过程的一部分可以由另一个设备执行。
[0428]
在下文中,描述了由编码器100执行的过程的整体流程,并且然后将描述编码器100中包括的每个构成元素。
[0429]
(编码过程的整体流程)
[0430]
图9是表示由编码器100执行的整体编码过程的一个示例的流程图,并且为了方便将参考图7进行描述。
[0431]
首先,编码器100的分割器102将输入图像中包含的每个图片分割成具有固定尺寸(例如,128
×
128像素)的多个块(步骤sa_1)。分割器102然后为固定大小的块(也称为块形状)选择分割模式(步骤sa_2)。换句话说,分割器102进一步将固定大小的块分割成形成选定分割模式的多个块。编码器100针对多个块中的每一个,针对该块(即要编码的当前块)执行步骤sa_3至sa_9。
[0432]
预测控制器128和预测执行器(其包括帧内预测器124和帧间预测器126)生成当前块的预测图像(步骤sa-3)。预测图像也可以称为预测信号、预测块或预测样本。
[0433]
接着,减法器104生成当前块和预测图像之间的差作为预测残差(步骤sa_4)。预测残差也可称为预测误差。
[0434]
接着,变换器106对预测图像进行变换,并且量化器108对结果进行量化,以生成多个经量化的系数(步骤sa_5)。多个经量化的系数有时可被称为系数块。
[0435]
接着,熵编码器110对多个经量化的系数和与预测图像的生成相关的预测参数进行编码(具体而言,熵编码),以生成流(步骤sa_6)。该流有时可称为经编码的位流或经压缩的位流。
[0436]
接着,逆量化器112执行对多个经量化的系数的逆量化,并且逆变换器114执行对结果的逆变换,以恢复预测残差(步骤sa_7)。
[0437]
接下来,加法器116将预测图像与恢复的预测残差相加以重构当前块(步骤sa_8)。这样,生成了重构图像。重构图像也可以称为重构块或经解码的图像块。
[0438]
当生成了重构图像时,环路滤波器120根据需要执行对重构图像的滤波(步骤sa_9)。
[0439]
编码器100然后确定整个图片的编码是否已经完成(步骤sa_10)。当确定编码还没有完成时(步骤sa_10中的否),则对图像的下一个块重复执行从步骤sa_2开始的处理。
[0440]
尽管在上述示例中编码器100为固定大小的块选择一个分割模式,并根据分割模式对每个块进行编码,但是要注意的是,每个块可以根据多个分割模式中的对应分割模式进行编码。在这种情况下,编码器100可以评估多个分割模式中的每一个的成本,并且例如可以选择可通过根据产生最小成本的分割模式进行编码而获得的流作为被输出的流。
[0441]
如图所示,步骤sa_1到sa_10中的过程由编码器100顺序执行。替代地,两个或更多个过程可以并行地执行,过程可以重新排序,等等。
[0442]
编码器100所采用的编码过程是使用预测编码和变换编码的混合编码。此外,预测编码由配置有减法器104、变换器106、量化器108、逆量化器112、逆变换器114、加法器116、环路滤波器120、块存储器118、帧存储器122、帧内预测器124、帧间预测器126和预测控制器128的编码环路执行。换言之,配置有帧内预测器124和帧间预测器126的预测执行器是编码环路的一部分。
[0443]
(分割器)
[0444]
分割器102将原始图像中包含的每个图片分割成多个块,并将每个块输出到减法器104。例如,分割器102首先将图片分割成固定大小(例如,128
×
128像素)的块。可以采用
其他固定块大小。固定大小的块也称为编码树单元(ctu)。分割器102然后基于递归四叉树和/或二叉树块分割将每个固定大小的块分割为可变大小(例如,64
×
64像素或更小)的块。换言之,分割器102选择分割模式。可变大小块也可以被称为编码单元(cu)、预测单元(pu)或变换单元(tu)。要注意的是,在各种处理示例中,无需区分cu、pu和tu;可以以cu、pu或tu为单位处理图片中的全部或部分块。
[0445]
图10是用于示出根据实施例的块分割的一个示例的概念图。在图10中,实线表示通过四叉树块分割来分割的块的块边界,并且虚线表示通过二叉树块分割来分割的块的块边界。
[0446]
这里,块10是具有128
×
128个像素的方形块(128
×
128块)。这个128
×
128块10首先被分割成四个方形的64
×
64像素块(四叉树块分割)。
[0447]
将左上角的64
×
64像素块进一步垂直分割为两个矩形的32
×
64像素块,并且将左侧的32
×
64像素块进一步垂直分割为两个矩形的16
×
64像素块(二叉树块分割)。结果,左上角的64
×
64像素块被分割成两个16
×
64像素块11和12和一个32
×
64像素块13。
[0448]
右上方的64
×
64像素块被水平分割为两个矩形64
×
32像素块14和15(二叉树块分割)。
[0449]
左下角的64
×
64像素块首先被分割成四个方形32
×
32像素块(四叉树块分割)。四个方形32
×
32像素块中的左上块和右下块被进一步分割。将左上角的方形32
×
32像素块垂直分割为两个矩形16
×
32像素块,并且将右侧16
×
32像素块进一步水平分割为两个16
×
16像素块(二叉树块分割)。右下角的32
×
32像素块被水平分割为两个32
×
16像素块(二叉树块分割)。将右上角的方形32
×
32像素块水平分割为两个矩形32
×
16像素块(二叉树块分割)。结果,左下角的方形64
×
64像素块被分割为矩形16
×
32像素块16、两个方形16
×
16像素块17和18、两个方形32
×
32像素块19和20、以及两个矩形32
×
16像素块21和22。
[0450]
右下角的64
×
64像素块23没有被分割。
[0451]
如上所述,在图10中,基于递归四叉树和二叉树块分割,块10被分割成13个可变大小块11至23。这种类型的分割也称为四叉树加二叉树(qtbt)分割。
[0452]
需要注意的是,在图10中,一个块被分割成四个或两个块(四叉树或二叉树块分割),但分割不限于这些示例。例如,可以将一个块分割为三个块(三元块分割)。包括这种三元块分割的分割也被称为多类型树(mbt)分割。
[0453]
图11是示出根据一个实施例的分割器102的功能配置的一个示例的框图。如图11所示,分割器102可以包括块分割确定器102a。作为示例,块分割确定器102a可以执行以下过程。
[0454]
例如,块分割确定器102a可以从块存储器118和/或帧存储器122获得或取回块信息,并基于块信息确定分割模式(例如,上述分割模式)。分割器102根据分割模式对原始图像进行分割,并将通过分割得到的至少一个块输出到减法器104。
[0455]
此外,例如,块分割确定器102a将指示所确定的分割模式(例如,上述分割模式)的一个或多个参数输出到变换器106、逆变换器114、帧内预测器124、帧间预测器126和熵编码器110。变换器106可以基于一个或多个参数变换预测残差。帧内预测器124和帧间预测器126可以基于一个或多个参数生成预测图像。此外,熵编码器110可以对一个或多个参数进行熵编码。
[0456]
与分割模式相关的参数可以写在流中,作为一个示例,如下所示。
[0457]
图12是用于示出分割模式的示例的概念图。分割模式的示例包括:分割成四个区域(qt),其中一个块在水平和垂直方向上都被分割成两个区域;分割为三个区域(ht或vt),其中一个块以1:2:1的比例在同一方向上被分割;分割成两个区域(hb或vb),其中一个块以1:1的比例在同一方向被分割;以及没有分割(ns)。
[0458]
需要说明的是,分割模式在分割为四个区域和不分割的情况下不具有块分割方向,并且分割模式在分割为两个区域或三个区域的情况下具有分割方向信息。
[0459]
图13a是用于示出分割模式的句法树的一个示例的概念图。
[0460]
图13b是用于示出分割模式的句法树的另一示例的概念图。
[0461]
图13a和图13b是用于示出分割模式的句法树的示例的概念图。在图13a的示例中,首先,存在表示是否执行分割的信息(s:分割标志),并且接下来存在表示是否执行分割成4个区域的信息(qt:qt标志)。接下来存在表示要执行分割成三个区域和两个区域中的哪一个的信息(tt:tt标志或bt:bt标志),并且然后存在指示划分方向的信息(ver:垂直标志,或hor:水平标志)。需要说明的是,通过按照这样的分割模式分割得到的至少一个块中的每一个都可以在类似的过程中进一步重复分割。换句话说,作为一个示例,是否执行分割,是否执行分割成四个区域,水平方向和垂直方向中的哪一个是要执行分割方法的方向,要执行分割为三个区域以及分割为两个区域中的哪一个可以递归地确定,并且可以根据图13a所示的语法树所公开的编码次序将确定结果编码在流中。
[0462]
另外,虽然分别指示s、qt、tt和ver的信息项在图13a所示的句法树中以列出的次序排列,分别指示s、qt、ver和bt的信息项也可以按列出的次序排列。换句话说,在图13b的示例中,首先,存在指示是否执行分割的信息(s:分割标志),并且接下来存在指示是否执行分割成4个区域的信息(qt:qt标志)。接下来存在指示分割方向的信息(ver:垂直标志,或hor:水平标志),并且接下来存在指示要执行分割为两个区域和分割为三个区域中的哪一个的信息(bt:bt标志或tt:tt标志)。
[0463]
需要说明的是,上述的分割模式是示例,并且可以使用所描述的分割模式以外的分割模式,或者可以使用所描述的分割模式的一部分。
[0464]
(减法器)
[0465]
减法器104从以块为单位的原始图像中减去预测图像(从下面指示的预测控制器128输入的预测样本),所述原始图像是从分割器102输入的并被分割器102分割。换言之,减法器104计算当前块的预测残差(也称为作为误差)。减法器104然后将计算的预测残差输出到变换器106。
[0466]
原始图像可以是作为表示被包括在视频中的每个图片的图像的信号(例如,亮度信号和两个色度信号)已经输入到编码器100的图像。表示图像的信号也可以称为样本。
[0467]
(变换器)
[0468]
变换器106将空间域中的预测残差变换为频域中的变换系数,并将变换系数输出到量化器108。更具体地,变换器106将例如定义的离散余弦变换(dct)或离散正弦变换(dst)应用于空间域中的预测残差。定义的dct或dst可以是预定义的。
[0469]
应注意,变换器106可从多个变换类型中自适应地选择变换类型,并通过使用与所选变换类型相对应的变换基函数来将预测残差变换为变换系数。这种变换也称为显式多核
变换(emt)或自适应多核变换(amt)。变换基函数也可称为基。
[0470]
变换类型包括例如dct-ii、dct-v、dct-viii、dst-i和dst-vii。注意,这些变换类型可以表示为dct2、dct5、dct8、dst1和dst7。图14是指示示例变换类型的示例变换基函数的图表。在图14中,n表示输入像素的数量。例如,从多个变换类型中选择变换类型可以取决于预测类型(帧内预测和帧间预测之一),并且可以取决于帧内预测模式。
[0471]
指示是否应用这种emt或者amt的信息(例如被称为emt标志或amt标志)和指示所选择的变换类型的信息通常在cu级别用信号通知。需要说明的是,此类信息的信令不一定需要在cu级别执行,并且也可以在另一级别(例如序列级别、图片级别、切片级别、分片级别或ctu级别)执行。
[0472]
此外,变换器106可以对变换系数(它们是变换结果)进行再变换。这种再变换也称为自适应二次变换(ast)或不可分离二次变换(nsst)。例如,变换器106以被包括在与帧内预测残差相对应的变换系数块中的子块(例如,4
×
4像素子块)为单位执行再变换。指示是否应用nsst的信息以及与用于nsst中的变换矩阵有关的信息通常在cu级别用信号通知。需要说明的是,此类信息的信令不一定需要在cu级别执行,并且也可以在另一级别(例如序列级别、图片级别、切片级别、分片级别或ctu级别)执行。
[0473]
变换器106可以采用可分离变换和不可分离变换。可分离变换是这样一种方法,其中通过根据输入的维数对多个方向中的每个方向单独执行变换来多次执行变换。不可分离变换是一种执行集体变换(collective transform)的方法,其中多维输入中的两个或更多个维度被集体地视为单个维度。
[0474]
在不可分离变换的一个示例中,当输入是4
×
4像素块时,4
×
4像素块被认为是包含16个元素的单个数组,并且变换将16
×
16变换矩阵应用于该数组。
[0475]
在不可分离变换的另一个示例中,将4
×
4像素的输入块视为包含16个元素的单个数组,并且然后可以执行对该数组进行多次给定旋转的变换(超立方体给定变换)。
[0476]
在变换器106中的变换中,可以根据cu中的区域切换要变换到频域中的变换基函数的变换类型。示例包括空间变化变换(spatially varying transform,svt)。
[0477]
图15是用于示出svt的一个示例的概念图。
[0478]
在svt中,如图15所示,cu被水平或垂直地分割成两个相等的区域,并且只有其中一个区域被变换到频域。可以为每个区域设置变换基类型。例如,使用dst7和dst8。例如,在通过将cu垂直分割成两个相等的区域所得到的两个区域中,dst7和dct8可以用于位置0处的区域。替代地,在两个区域中,dst7可以用于位置1处的区域。同样,在通过将cu水平分割成两个相等的区域所得到的两个区域中,dst7和dct8用于位置0处的区域。替代地,在两个区域中,dst7用于位置1处的区域。虽然在图15所示的示例中,cu中的两个区域中的一个区域被变换而另一个区域没有被变换,但两个区域中的每一个都可以被变换。另外,分割方法可以不仅包括分割为两个区域,而且包括分割为四个区域。此外,分割方法可以更加灵活。例如,指示分割方法的信息可以被编码并且可以以与cu分割相同的方式用信号通知。要注意的是,svt也可以被称为子块变换(sbt)。
[0479]
上面描述的amt和emt可以被称为mts(多变换选择)。当应用mts时,可以选择dst7、dct8等变换类型,并且可以将指示所选择的变换类型的信息编码为每个cu的索引信息。存在被称为imts(隐式mts)的另一个过程作为用于选择要用于在没有编码索引信息的情况下
执行的正交变换的变换类型的过程。当应用imts时,例如,当cu具有矩形形状时,矩形形状的正交变换可以使用dst7(针对短边)和dst2(针对长边)来执行。另外,例如,当cu具有方形形状时,可以通过当mts在序列中有效时使用dct2并且当mts在序列中无效时使用dst7,来执行矩形形状的正交变换。dct2和dst7仅是示例。可以使用其他变换类型,并且也可以将使用的变换类型的组合改变为不同的变换类型组合。imts可以仅用于帧内预测块,或者可以用于帧内预测块和帧间预测块两者。
[0480]
上面已经将mts、sbt和imts这三个过程描述为用于选择性地切换用于正交变换的变换类型的选择过程。然而,可以采用所有三个选择过程,或者可以选择性地仅采用部分选择过程。例如,可以基于诸如sps之类的报头中的标志信息等来识别是否采用一个或多个选择过程。例如,当所有三个选择过程都可用时,为每个cu选择三个选择过程之一并且执行cu的正交变换。需要说明的是,用于选择性地切换变换类型的选择过程可以是与上述三个选择过程不同的选择过程,或者这三个选择过程中的每一个都可以被另一个过程代替。通常,执行以下四个传递函数[1]至[4]中的至少一个。函数[1]是用于执行整个cu的正交变换和指示在变换中使用的变换类型的编码信息的函数。函数[2]是用于执行整个cu的正交变换并基于确定的规则确定变换类型而无需对指示变换类型的信息进行编码的函数。函数[3]是用于执行cu的部分区域的正交变换和对指示在变换中使用的变换类型的信息进行编码的函数。函数[4]是用于执行cu的部分区域的正交变换并基于确定的规则来确定变换类型而无需对指示在变换中使用的变换类型的信息进行编码的函数。确定的规则可以是预先确定的。
[0481]
需要注意的是,可以为每个处理单元确定是否应用mts、imts和/或sbt。例如,可以为每个序列、图片、砖块、切片、ctu或cu确定是否应用mts、imts和/或sbt。
[0482]
需要说明的是,本发明中的选择性切换变换类型的工具可以描述为用于选择性地选择变换过程中使用的基的方法、选择过程或用于选择基的过程。另外,用于选择性切换变换类型的工具可以描述为用于自适应选择变换类型的模式。
[0483]
图16是示出由变换器106执行的过程的一个示例的流程图,并且为了方便将参考图7进行描述。
[0484]
例如,变换器106确定是否执行正交变换(步骤st_1)。这里,当确定执行正交变换时(步骤st_1中的是),变换器106从多个变换类型中选择用于正交变换的变换类型(步骤st_2)。接下来,变换器106通过将选择的变换类型应用于当前块的预测残差来执行正交变换(步骤st_3)。变换器106然后将指示所选择的变换类型的信息输出到熵编码器110,以便允许熵编码器110对该信息进行编码(步骤st_4)。另一方面,当确定不执行正交变换时(步骤st_1中的否),变换器106输出指示不执行正交变换的信息,以便允许熵编码器110对该信息进行编码(步骤st_5)。需要说明的是,在步骤st_1中是否执行正交变换可以基于例如变换块的大小、应用于cu的预测模式等来确定。替代地,也可以使用定义的变换类型来执行正交变换,而不对指示用于正交变换中的变换类型的信息进行编码。定义的变换类型可以是预定义的。
[0485]
图17是示出由变换器106执行的过程的一个示例的流程图,并且为了方便将参考图7进行描述。应注意,图17中所示的示例是在正交变换中使用的变换类型被选择性地切换的情况下(如在图16所示的示例的情况下)的正交变换的示例。
[0486]
作为一个示例,第一变换类型组可以包括dct2、dst7和dct8。作为另一示例,第二变换类型组可以包括dct2。第一变换类型组中包括的变换类型和第二变换类型组中包括的变换类型可以部分彼此重叠,或者可以彼此完全不同。
[0487]
变换器106确定变换大小是否小于或等于确定值(步骤su_1)。这里,当确定变换大小小于或等于确定值时(步骤su_1中的是),变换器106使用第一变换类型组中包括的变换类型对当前块的预测残差执行正交变换(步骤su_2)。接下来,变换器106向熵编码器110输出指示第一变换类型组中包括的至少一个变换类型中的要使用的变换类型的信息,以便允许熵编码器110对该信息进行编码(步骤su_3)。另一方面,当确定变换尺寸不小于或等于预先确定的值时(步骤su_1中的否),变换器106使用第二变换类型组对当前块的预测残差执行正交变换(步骤su_4)。确定值可以是阈值,并且可以是预先确定的值。
[0488]
在步骤su_3中,指示在正交变换中使用的变换类型的信息可以是指示要在当前块中垂直应用的变换类型和要在当前块中水平应用的变换类型的组合的信息。第一类型组可以仅包括一种变换类型,并且可以不对指示用于正交变换的变换类型的信息进行编码。第二变换类型组可以包括多种变换类型,并且可以对指示包括在第二变换类型组中的一种或多种变换类型之中的用于正交变换的变换类型的信息进行编码。
[0489]
替代地,可以基于变换大小来指示变换类型,而无需对指示变换类型的信息进行编码。需要说明的是,这样的确定不限于关于变换大小是否小于或等于所确定的值的确定,并且用于基于变换大小来确定正交变换中使用的变换类型的其他过程也是可能的。
[0490]
(量化器)
[0491]
量化器108量化从变换器106输出的变换系数。更具体地,量化器108以确定的扫描次序扫描当前块的变换系数,并基于与变换系数对应的量化参数(qp)对扫描的变换系数进行量化。量化器108然后将当前块的量化的变换系数(以下也称为经量化的系数)输出到熵编码器110和逆量化器112。所确定的扫描次序可以是预先确定的。
[0492]
确定的扫描次序是用于量化/逆量化变换系数的次序。例如,确定的扫描次序可以定义为频率的升序(从低频到高频)或频率的降序(从高频到低频)。
[0493]
量化参数(qp)是定义量化步长(量化宽度)的参数。例如,当量化参数的值增加时,量化步长也增加。换言之,当量化参数的值增加时,经量化的系数的误差(量化误差)增加。
[0494]
此外,量化矩阵可用于量化。例如,可以与频率变换大小(例如,4
×
4、8
×
8)、预测模式(例如,帧内预测、帧间预测)以及像素分量(例如,亮度、色度像素分量)相对应地使用多种量化矩阵。应当注意,量化意味着数字化以与确定的水平相对应地确定的间隔进行采样的值。在本技术领域中,量化可以使用其他表达方式来指代,例如舍入和缩放,并且可以采用舍入和缩放。确定的间隔和确定的水平可以是预先确定的。
[0495]
使用量化矩阵的方法可以包括:使用在编码器100侧直接设置的量化矩阵的方法,以及使用已设置为默认的量化矩阵(默认矩阵)的方法。在编码器100侧,可以通过直接设置量化矩阵来设置适合图像特征的量化矩阵。然而,这种情况可能具有增加用于对量化矩阵编码的编码量的缺点。需要说明的是,可以基于默认量化矩阵或编码量化矩阵来生成用于对当前块进行量化的量化矩阵,而不是直接使用默认量化矩阵或编码量化矩阵。
[0496]
存在一种用于量化高频系数和低频系数而不使用量化矩阵的方法。应注意,该方法可被视为等同于使用其系数具有相同值的量化矩阵(扁平矩阵(flat matrix))的方法。
[0497]
量化矩阵可以例如在序列级别、图片级别、切片级别、砖块级别或ctu级别被编码。可以使用例如序列参数集(sps)或图片参数集(pps)来指定量化矩阵。sps包括用于序列的参数,并且pps包括用于图片的参数。sps和pps中的每一个可以简称为参数集。
[0498]
当使用量化矩阵时,量化器108使用量化矩阵的值针对每个变换系数缩放例如可以基于量化参数等计算的量化宽度。不使用量化矩阵执行的量化过程可以是用于根据基于量化参数等计算出的量化宽度对变换系数进行量化的过程。需要说明的是,在不使用任何量化矩阵来执行的量化过程中,量化宽度可以乘以对于块中的所有变换系数通用的确定值。确定的值可以是预先确定的。
[0499]
图18是示出根据实施例的量化器的功能配置的一个示例的框图。例如,量化器108包括差量化参数生成器108a、预测量化参数生成器108b、量化参数生成器108c、量化参数存储装置108d和量化执行器108e。
[0500]
图19是示出由量化器108执行的量化过程的一个示例的流程图,并且为了方便将参考图7和18进行描述。
[0501]
作为一个示例,量化器108可以基于图19所示的流程图对每个cu执行量化。更具体地,量化参数生成器108c确定是否执行量化(步骤sv_1)。这里,当确定执行量化时(步骤sv_1中的是),量化参数生成器108c生成当前块的量化参数(步骤sv_2),并将量化参数存储到量化参数存储装置108d(步骤sv_3)。
[0502]
接下来,量化执行器108e使用在步骤sv_2中生成的量化参数来量化当前块的变换系数(步骤sv_4)。预测量化参数生成器108b然后从量化参数存储装置108d获得与当前块不同的处理单元的量化参数(步骤sv_5)。预测量化参数生成器108b基于获得的量化参数生成当前块的预测量化参数(步骤sv_6)。差量化参数生成器108a计算由量化参数生成器108c生成的当前块的量化参数与由预测量化参数生成器108b生成的当前块的预测量化参数之间的差(步骤sv_7)。差量化参数可以通过计算差来产生。差量化参数产生器108a将差量化参数输出到熵编码器110,以便允许熵编码器110对差量化参数进行编码(步骤sv_8)。
[0503]
应当注意,可以在例如序列级别、图片级别、切片级别、砖块级别或ctu级别对差量化参数进行编码。此外,量化参数的初始值可以在序列级别、图片级别、切片级别、砖块级别或ctu级别进行编码。在初始化时,可以使用量化参数的初始值和差量化参数来生成量化参数。
[0504]
应当注意,量化器108可以包括多个量化器,并且可以应用相关量化(dependent quantization),其中使用从多个量化方法中选择的量化方法来量化变换系数。
[0505]
(熵编码器)
[0506]
图20是示出根据实施例的熵编码器110的功能配置的一个示例的框图,并且为了方便将参照图7进行描述。熵编码器110通过对从量化器108输入的经量化的系数和从预测参数生成器130输入的预测参数进行熵编码来生成流。例如,使用基于上下文的自适应二进制算术编码(cabac)作为熵编码。更具体地,如图所示的熵编码器110包括二值化器(binarizer)110a、上下文控制器110b和二进制算术编码器110c。二值化器110a执行二值化,其中将诸如经量化的系数和预测参数之类的多级信号变换为二进制信号。二值化方法的示例包括截断莱斯二值化、指数哥伦布码和固定长度二值化。上下文控制器110b根据句法元素的特征或周围状态(即,二进制信号的出现概率),推导出上下文值。用于推导出上下
文值的方法的示例包括绕过、参考句法元素、参考上和左相邻块、参考分层信息等。二进制算术编码器110c使用推导出的上下文对二进制信号进行算术编码。
[0507]
图21是用于说明熵编码器110中的cabac过程的示例流程的概念图。首先,在熵编码器110中以cabac执行初始化。在初始化中,执行二进制算术编码器110c中的初始化和初始上下文值的设置。例如,二值化器110a和二进制算术编码器110c可以在ctu中顺序地执行多个量化系数的二值化和算术编码。每次执行算术编码时,上下文控制器110b可以更新上下文值。上下文控制器110b然后可以保存上下文值作为后处理。例如,可以使用保存的上下文值来初始化下一个ctu的上下文值。
[0508]
(逆量化器)
[0509]
逆量化器112对从量化器108输入的经量化的系数进行逆量化。更具体地,逆量化器112以确定的扫描次序对当前块的经量化的系数进行逆量化。逆量化器112然后将当前块的逆量化的变换系数输出到逆变换器114。所确定的扫描次序可以是预先确定的。
[0510]
(逆变换器)
[0511]
逆变换器114通过对从逆量化器112输入的变换系数进行逆变换来恢复预测残差。更具体地,逆变换器114通过执行与通过变换器106应用到变换系数的变换相对应的逆变换来恢复当前块的预测残差。逆变换器114然后将恢复的预测残差输出到加法器116。
[0512]
应注意,由于通常在量化中丢失信息,所以恢复的预测残差与减法器104所计算的预测残差不匹配。换言之,恢复的预测残差通常包括量化误差。
[0513]
(加法器)
[0514]
加法器116通过将从逆变换器114输入的预测残差和从预测控制器128输入的预测图像相加来重构当前块。随后,生成了重构图像。加法器116然后将重构图像输出到块存储器118和环路滤波器120。重构块也可以被称为局部解码块(local decoded block)。
[0515]
(块存储器)
[0516]
块存储器118是用于存储例如用于帧内预测的当前图片中的块的存储装置。更具体地,块存储器118存储从加法器116输出的重构图像。
[0517]
(帧存储器)
[0518]
帧存储器122是例如用于存储帧间预测中使用的参考图片的存储装置,并且也被称为帧缓冲器。更具体地,帧存储器122存储由环路滤波器120滤波的重构图像。
[0519]
(环路滤波器)
[0520]
环路滤波器120将环路滤波器应用于加法器116所输出的重构图像,并将滤波的重构图像输出到帧存储器122。环路滤波器是在编码环路中使用的滤波器(环路内滤波器)。环路滤波器的示例包括例如自适应环路滤波器(alf)、解块滤波器(db或dbf)、样本自适应偏移(sao)滤波器等。
[0521]
图22是示出根据实施例的环路滤波器120的功能配置的一个示例的框图。例如,如图22所示,环路滤波器120包括解块滤波执行器120a、sao执行器120b和alf执行器120c。解块滤波执行器120a对重构图像执行解块滤波过程。sao执行器120b对经过解块滤波过程之后的重构图像执行sao过程。alf执行器120c对经过sao过程之后的重构图像执行alf过程。alf和解块滤波器将在后面详细描述。sao过程是用于通过减少振铃(像素值在边缘周围像波浪一样失真的现象)和校正像素值的偏差来提高图像质量的过程。sao过程的示例包括边
缘偏移过程和带偏移过程(band offset process)。应当注意,在一些实施例中,环路滤波器120可能不包括图22中公开的所有构成元素,并且可以包括一些构成元素,并且可以包括附加元素。此外,环路滤波器120可以被配置为以与图22中公开的处理次序不同的处理次序来执行上述过程,并且可能不执行所有的过程,等等。
[0522]
(环路滤波器》自适应环路滤波器)
[0523]
在alf中,应用了用于去除压缩伪影的最小二乘误差滤波器。例如,针对当前块中的每个2
×
2像素子块应用基于局部梯度的方向和活动(activity)从多个滤波器中选择的一个滤波器。
[0524]
更具体地,首先,每个子块(例如,每个2
×
2像素子块)被分类为多个类(例如,十五或二十五个类)中的一个。子块的分类可以基于例如梯度方向性和活动。在示例中,基于梯度方向性d(例如0到2或0到4)和梯度活动a(例如0到4)计算或确定类别指数c(例如,c=5d a)。然后,基于分类索引c,每个子块被分类为多个类别中的一个。
[0525]
例如,通过比较多个方向(例如,水平、垂直和两个对角线方向)的梯度来计算梯度方向性d。此外,例如,通过将多个方向的梯度相加并对相加结果进行量化来计算梯度活动a。
[0526]
可以基于这样的分类结果从多个滤波器中确定要用于每个子块的滤波器。
[0527]
要在alf中使用的滤波器形状例如是圆对称的滤波器形状。图23a至图23c是用于示出在alf中使用的滤波器形状的示例的概念图。图23a图示了5
×
5菱形滤波器,图23b图示了7
×
7菱形滤波器,并且图23c图示了9
×
9菱形滤波器。指示滤波器形状的信息通常在图片级别用信号通知。需要说明的是,这种指示滤波器形状的信息的信令并不一定需要在图片级别执行,并且可以在另一级别(例如,在序列级别、切片级别、分片级别、ctu级别或cu级别)执行。
[0528]
例如,可以在图片级别或cu级别确定alf的开启或关闭。例如,可以在cu级别做出是否对亮度应用alf的决定,并且可以在图片级别做出是否对色度应用alf的决定。指示alf开启或关闭的信息通常在图像级或cu级用信号通知。需要说明的是,指示alf开启或关闭的信息的信令不一定需要在图片级别或cu级别执行,并且可以在另一级别(例如,在序列级别、切片级别、分片级别或ctu级别)执行。
[0529]
此外,如上所述,从多个滤波器中选择一个滤波器,并执行子块的alf过程。将用于多个滤波器中的每一个(例如,直到第十五或第二十五滤波器)的系数的系数集通常在图片级别用信号通知。需要说明的是,系数集的信令不一定需要在图片级别执行,并且可以在另一级别(例如,序列级别、切片级别、分片级别、ctu级别、cu级别或子块级别)执行。
[0530]
(环路滤波器》交叉分量自适应环路滤波器)
[0531]
图23d是用于示出交叉分量alf(cc-alf)的示例流程的概念图。图23e是用于示出在cc-alf中使用的滤波器形状的示例的概念图,例如图23d的cc-alf。图23d和图23e的示例cc-alf通过将线性菱形滤波器应用于每个色度分量的亮度通道来操作。例如,滤波器系数可以在aps中传输,按2^10的因子进行缩放,并针对定点表示进行舍入。例如,在图23d中,y个样本(第一分量)用于cb的ccalf和cr的ccalf(不同于第一分量的分量)。
[0532]
滤波器的应用可以在可变块大小上控制并且通过针对每个样本块接收的上下文编码的标志用信号通知。块大小连同cc-alf使能标志可以在切片级别针对每个色度分量被
接收。cc-alf可以支持各种块大小,例如(在色度样本中)16
×
16像素、32
×
32像素、64
×
64像素、128
×
128像素。
[0533]
(环路滤波器》联合色度交叉分量自适应环路滤波器)
[0534]
联合色度-ccalf的一个示例在图23f和图23g中示出。图23f是用于示出联合色度ccalf的示例流程的概念图。图23g是示出示例权重指数候选的表格。如所示,一个ccalf滤波器用于生成一个ccalf滤波输出作为一个颜色分量的色度细化信号,同时将相同色度细化信号的加权版本应用于另一颜色分量。这样,现有ccalf的复杂度大约降低了一半。权重值可以被编码为符号标志和权重指数。权重指数(表示为weight_index)可以编码成3个比特,并且指定jc-ccalf权重jcccweight的大小,其为非零大小。例如,jcccweight的大小可以如下确定:
[0535]
如果weight_index小于或等于4,则jcccweight等于weight_index》》2;
[0536]
否则,jcccweight等于4/(weight_index

4)。
[0537]
cb和cr的alf滤波的块级别开/关控制可以是分开的。这与ccalf中的相同,并且可以对两个单独组的块级别开/关控制标志进行编码。与ccalf不同的是,这里的cb、cr开/关控制块大小是相同的,因此可以只编码一个块大小变量。
[0538]
(环路滤波器》解块滤波器)
[0539]
在解块滤波过程中,环路滤波器120对重构图像中的块边界执行滤波过程以便减少在块边界处发生的失真。
[0540]
图24是示出充当解块滤波器的环路滤波器120(见图7和图22)的解块滤波执行器120a的具体配置的一个示例的框图。
[0541]
解块滤波执行器120a包括:边界确定器1201;滤波器确定器1203;滤波执行器1205;过程确定器1208;滤波器特性确定器1207;以及开关1202、1204和1206。
[0542]
边界确定器1201确定要被解块滤波的像素(即,当前像素)是否存在于块边界周围。边界确定器1201然后将确定结果输出到开关1202和处理确定器1208。
[0543]
在边界确定器1201确定当前像素存在于块边界周围的情况下,开关1202将未滤波的图像输出到开关1204。在相反的情况下(其中,边界确定器1201确定在块边界周围不存在当前像素),开关1202向开关1206输出未滤波的图像。要注意,未滤波的图像是配置有当前像素和位于当前像素周围的至少一个周围像素的图像。
[0544]
滤波器确定器1203基于位于当前像素周围的至少一个周围像素的像素值来确定是否对当前像素执行解块滤波。滤波器确定器1203然后将确定结果输出到开关1204和过程确定器1208。
[0545]
在滤波器确定器1203已经确定对当前像素执行解块滤波的情况下,开关1204将通过开关1202获得的未滤波的图像输出到滤波执行器1205。在相反的情况下(其中,滤波器确定器1203已确定不对当前像素执行解块滤波),开关1204将通过开关1202获得的未滤波的图像输出到开关1206。
[0546]
当通过开关1202和1204获得未滤波的图像时,滤波执行器1205对当前像素执行具有由滤波特性确定器1207确定的滤波特性的解块滤波。滤波执行器1205然后将经滤波的像素输出到开关1206。
[0547]
在处理确定器1208的控制下,开关1206选择性地输出尚未被解块滤波的像素和已
经被滤波执行器1205解块滤波的像素中的一个。
[0548]
处理确定器1208基于由边界确定器1201和滤波器确定器1203做出的确定的结果来控制开关1206。换言之,当边界确定器1201已确定当前像素存在于块边界周围并且当滤波器确定器1203已确定执行当前像素的解块滤波时,处理确定器1208使开关1207输出已经进行了解块滤波的像素。此外,除了上述情况之外,处理确定器1208使开关1206输出未进行解块滤波的像素。通过以这种方式重复像素的输出,从开关1206输出滤波后的图像。应当注意,图24中所示的配置是解块滤波执行器120a中的配置的一个示例。解块滤波执行器120a可以具有各种配置。
[0549]
图25是用于示出具有相对于块边界的对称滤波特性的解块滤波器的示例的概念图。
[0550]
在解块滤波过程中,可以使用像素值和量化参数来选择具有不同特性的两个解块滤波器(即强滤波器和弱滤波器)之一。在强滤波器的情况下,当像素p0到p2和像素q0到q2跨块边界存在时,如图25所示,通过例如根据以下表达式执行计算,相应像素q0至q2的像素值被改变为像素值q’0至q’2。
[0551]
q’0=(p1 2
×
p0 2
×
q0 2
×
q1 q2 4)/8
[0552]
q’1=(p0 q0 q1 q2 2)/4
[0553]
q’2=(p0 q0 q1 3
×
q2 2
×
q3 4)/8
[0554]
需要说明的是,在以上表达式中,p0至p2和q0至q2是相应像素p0至p2和像素q0至q2的像素值。另外,q3是相对于块边界位于像素q2的相对侧的相邻像素q3的像素值。另外,在每个表达式的右侧,与要用于解块滤波的像素的相应像素值相乘的系数是滤波器系数。
[0555]
此外,在解块滤波中,可以执行剪裁(clipping)以使得计算的像素值的变化不超过阈值。例如,在剪裁过程中,可以将根据上述表达式计算的像素值剪裁为根据“计算像素值
±2×
阈值”(使用基于量化参数确定的阈值)获得的值。这样,可以防止过度平滑。
[0556]
图26是用于示出对其执行解块滤波过程的块边界的概念图。图27是用于示出边界强度(bs)值的示例的概念图。
[0557]
对其执行解块滤波过程的块边界是例如具有8
×
8个像素块的cu、pu或tu之间的边界,如图26所示。可以例如以四行或四列为单位执行解块滤波过程。首先,如图27所示对于块p以及块q(图26所示的)确定边界强度(bs)值。
[0558]
根据图27中的bs值,可以确定是否使用不同强度对属于同一图像的块边界执行解块滤波过程。当bs值为2时执行针对色度信号的解块滤波过程。当bs值为1或更大并且满足确定的条件时,执行针对亮度信号的解块滤波过程。确定的条件可以是预先确定的。注意,用于确定bs值的条件不限于图27中所示的那些,并且可以基于另一个参数来确定bs值。
[0559]
(预测器(帧内预测器、帧间预测器、预测控制器))
[0560]
图28是示出由编码器100的预测器执行的过程的一个示例的流程图。要注意,预测器包括以下构成元素的全部或部分:帧内预测器124;帧间预测器126;和预测控制器128。预测执行器包括例如帧内预测器124和帧间预测器126。
[0561]
预测器生成当前块的预测图像(步骤sb_1)。该预测图像也可以称为预测信号或预测块。应注意,预测信号例如是帧内预测图像(图像预测信号)或帧间预测图像(帧间预测信号)。预测器使用已经通过另一块通过预测图像的生成、预测残差的生成、经量化的系数的
生成、预测残差的恢复以及与预测图像的相加而获得的重构图像,来生成当前块的预测图像。
[0562]
重构图像例如可以是参考图片中的图像,或者当前图片中的编码块(即,上述的其他块)的图像,当前图片是包括当前块的图片。当前图片中的编码块例如是当前块的相邻块。
[0563]
图29是示出由编码器100的预测器执行的过程的另一示例的流程图。
[0564]
预测器使用第一方法生成预测图像(步骤sc_1a),使用第二方法生成预测图像(步骤sc_1b),并使用第三方法生成预测图像(步骤sc_1c)。第一方法、第二方法和第三方法可以是相互不同的用于生成预测图像的方法。第一至第三方法中的每一个可以是帧间预测方法、帧内预测方法或另一种预测方法。在这些预测方法中可以使用上述重构图像。
[0565]
接下来,预测处理器评估在步骤sc_1a、sc_1b和sc_1c中生成的预测图像(步骤sc_2)。例如,预测器针对在步骤sc_1a、sc_1b和sc_1中生成的预测图像计算成本c,并通过比较预测图像的成本c来评估预测图像。需要说明的是,成本c例如可以根据r-d优化模型的表达式计算,例如c=d λ
×
r。在该表达式中,d表示预测图像的压缩伪影,并且被表示为例如当前块的像素值与预测图像的像素值之间的绝对差之和。另外,r表示流的比特率。另外,λ表示例如根据拉格朗日方法乘数的乘数。
[0566]
然后,预测器选择在步骤sc_1a、sc_1b和sc_1c中生成的预测图像之一(步骤sc_3)。换言之,预测器选择用于获得最终预测图像的方法或模式。例如,预测器基于为预测图像计算的成本c选择具有最小成本c的预测图像。替代地,步骤sc_2中的评估和步骤sc_3中预测图像的选择可以基于在编码过程中使用的参数进行。编码器100可以将用于识别所选择的预测图像、方法或模式的信息变换成流。该信息可以是例如标志等。以此方式,解码器200能够基于该信息根据由编码器100选择的方法或模式生成预测图像。需要说明的是,在图29所示的示例中,在使用相应方法生成预测图像之后,预测器选择任何预测图像。然而,预测器可以在生成预测图像之前基于在上述编码过程中使用的参数来选择方法或模式,并且可以根据所选择的方法或模式来生成预测图像。
[0567]
例如,第一方法和第二方法可以分别是帧内预测和帧间预测,并且预测器可以从根据预测方法生成的预测图像中选择当前块的最终预测图像。
[0568]
图30是示出由编码器100的预测器执行的过程的另一示例的流程图。
[0569]
首先,预测器使用帧内预测生成预测图像(步骤sd_1a),并使用帧间预测生成预测图像(步骤sd_1b)。需要说明的是,由帧内预测生成的预测图像也称为帧内预测图像,并且由帧间预测生成的预测图像也称为帧间预测图像。
[0570]
接下来,预测器评估帧内预测图像和帧间预测图像中的每一个(步骤sd_2)。可以在评估中使用上述成本c。预测器然后可以在帧内预测图像和帧间预测图像中选择已经针对其计算最小成本c的预测图像,作为当前块的最终预测图像(步骤sd_3)。换言之,选择了用于生成当前块的预测图像的预测方法或模式。
[0571]
预测处理器然后在帧内预测图像和帧间预测图像中选择已经针对其计算最小成本c的预测图像,作为当前块的最终预测图像(步骤sd_3)。换言之,选择了用于生成当前块的预测图像的预测方法或模式。
[0572]
(帧内预测器)
[0573]
通过参考当前图片中的并且存储在块存储器118中的一个或多个块来执行当前块的帧内预测(也称为帧内的预测),帧内预测器124生成预测信号(即,帧内预测图像)。更具体地,通过参考与当前块相邻的一个或多个块的像素值(例如,亮度和/或色度值)i执行帧内预测,帧内预测器124生成帧内预测图像,并且然后将帧内预测图像输出到预测控制器128。
[0574]
例如,帧内预测器124通过使用已定义的多个帧内预测模式中的一个模式来执行帧内预测。帧内预测模式通常包括一种或多种非定向预测模式和多种定向预测模式。定义的模式可以是预定义的。
[0575]
一种或多种非定向预测模式包括例如h.265/高效视频编码(hevc)标准中定义的平面预测模式和dc预测模式。
[0576]
多个定向预测模式包括例如h.265/hevc标准中定义的三十三种定向预测模式。需要说明的是,除了三十三个定向预测模式之外,多个定向预测模式还可以包括三十二个定向预测模式(总共六十五个定向预测模式)。图31是用于示出可以在帧内预测中使用的总共六十七个帧内预测模式(两种非定向预测模式和六十五种定向预测模式)的概念图。实线箭头表示h.265/hevc标准中定义的三十三个方向,并且虚线箭头表示附加的三十二个方向(图31中未示出两种非定向预测模式)。
[0577]
在各种处理示例中,在色度块的帧内预测中可以参考亮度块。换言之,可以基于当前块的亮度分量来预测当前块的色度分量。这种帧内预测也称为交叉分量线性模型(cclm)预测。可以添加其中引用这种亮度块的色度块的帧内预测模式(也称为例如cclm模式),作为色度块的帧内预测模式之一。
[0578]
帧内预测器124可以基于水平/垂直参考像素梯度来校正帧内预测的像素值。伴随这种校正的帧内预测也称为位置依赖的帧内预测组合(pdpc)。指示是否应用pdpc的信息(例如,称为pdpc标志)通常在cu级别用信号通知。需要说明的是,此类信息的信令不一定需要在cu级别执行,并且可以在另一级别(例如序列级别、图片级别、切片级别、分片级别或ctu级别)执行。
[0579]
图32是示出由帧内预测器124执行的过程的一个示例的流程图。
[0580]
帧内预测器124从多个帧内预测模式中选择一个帧内预测模式(步骤sw_1)。帧内预测器124然后根据选择的帧内预测模式生成预测图像(步骤sw_2)。接下来,帧内预测器124确定最可能的模式(mpm)(步骤sw_3)。mpm包括例如六个帧内预测模式。例如,六个帧内预测模式中的两个模式可以是平面模式和dc预测模式,并且其他四个模式可以是定向预测模式。帧内预测器124确定在步骤sw_1中选择的帧内预测模式是否包括在mpm中(步骤sw_4)。
[0581]
这里,当确定在步骤sw_1中选择的帧内预测模式被包括在mpm中时(步骤sw_4中的是),帧内预测器124将mpm标志设置为1(步骤sw_5),并生成指示在这些mpm中选择的帧内预测模式的信息(步骤sw_6)。应注意,设置为1的mpm标志和指示帧内预测模式的信息可以由熵编码器110编码为预测参数。
[0582]
当确定所选择的帧内预测模式不被包括在mpm中时(步骤sw_4中的否),帧内预测器124将mpm标志设置为0(步骤sw_7)。替代地,帧内预测器124不设置任何mpm标志。帧内预测器124然后生成指示在mpm中不包括的至少一个帧内预测模式中选择的帧内预测模式的
信息(步骤sw_8)。需要注意的是,设置为0的mpm标志和指示帧内预测模式的信息可以被熵编码器110编码为预测参数。指示帧内预测模式的信息指示例如0到60中的任何一个。
[0583]
(帧间预测器)
[0584]
通过参考参考图片中的一个或多个块来执行当前块的帧间预测(也称为帧间的预测),帧间预测器126生成预测图像(帧间预测图像),所述参考图片与当前图片不同并且存储在帧存储器122中。以当前块或当前块中的当前子块(例如,4
×
4块)为单位执行帧间预测。子块被包括在块中,并且是比块小的单位。子块的大小可以是切片、砖块、图片等形式。
[0585]
例如,帧间预测器126在当前块或当前子块的参考图片中执行运动估计,并找到与当前块或当前子块最佳匹配的参考块或参考子块。帧间预测器126然后获得补偿从参考块或参考子块到当前块或子块的运动或变化的运动信息(例如,运动向量)。帧间预测器126通过基于运动信息执行运动补偿(或运动预测)来生成当前块或子块的帧间预测图像。帧间预测器126将生成的帧间预测图像输出到预测控制器128。
[0586]
在运动补偿中使用的运动信息可以以各种形式作为帧间预测信号用信号通知。例如,可以用信号通知运动向量。作为另一示例,可以用信号通知运动向量和运动向量预测器(motion vector predictor)之间的差。
[0587]
(参考图片列表)
[0588]
图33是用于示出参考图片的示例的概念图。图34是用于示出参考图片列表的示例的概念图。参考图片列表是指示存储在帧存储器122中的至少一个参考图片的列表。值得注意的是,在图33中,每个矩形表示一个图片,每个箭头表示一个图片参考关系,横轴表示时间,矩形中的i、p和b分别表示帧内预测图片、单预测图片和双预测图片,并且矩形中的数字表示解码次序。如图33所示,图片的解码次序为i0、p1、b2、b3、b4的次序,并且图片的显示次序为i0、b3、b2、b4、p1的次序。如图34所示,参考图片列表是表示参考图片候选的列表。例如,一个图片(或切片)可以包括至少一个参考图片列表。例如,当当前图片为单预测图片时使用一个参考图片列表,并且当当前图片为双预测图片时使用两个参考图片列表。在图33和图34的示例中,作为当前图片currpic的图片b3具有两个参考图片列表,即l0列表和l1列表。当当前图片currpic为图片b3时,当前图片currpic的参考图片候选为i0、p1、b2,并且参考图片列表(即l0列表和l1列表)指示这些图片。帧间预测器126或预测控制器128指定要以参考图片索引refidxlx的形式实际参考每个参考图片列表中的哪个图片。在图34中,参考图片p1和b2由参考图片索引refidxl0和refidxl1指定。
[0589]
可以为诸如序列、图片、切片、块、ctu或cu之类的每个单元生成这样的参考图片列表。另外,在参考图片列表中指示的参考图片之中,指示将在帧间预测中参考的参考图片的参考图片索引可以在序列级别、图片级别、切片级别、砖块级别、ctu级别或cu级别用信号通知。此外,可以在多个帧间预测模式中使用公共参考图片列表。
[0590]
(帧间预测的基本流程)
[0591]
图35是示出帧间预测处理的示例基本处理流程的流程图。
[0592]
首先,帧间预测器126生成预测信号(步骤se_1至se_3)。接着,减法器104生成当前块和预测图像之间的差作为预测残差(步骤se_4)。
[0593]
这里,在预测图像的生成中,帧间预测器126通过当前块的运动向量(mv)的确定(步骤se_1和se_2)和运动补偿(步骤se_3)来生成预测图像。此外,在mv的确定中,帧间预测
器126通过运动向量候选(mv候选)的选择(步骤se_1)和mv的推导(步骤se_2)来确定mv。mv候选的选择是通过例如帧间预测器126生成mv候选列表并从mv候选列表中选择至少一个mv候选来进行的。应当注意,可以将过去推导的mv添加到mv候选列表中。替代地,在mv的推导中,帧间预测器126还可从至少一个mv候选中选择至少一个mv候选,并将所选择的至少一个mv候选确定为当前块的mv。替代地,帧间预测器126可以通过在由所选的至少一个mv候选中的每一个指定的参考图片区域中执行估计,来确定当前块的mv。需要说明的是,参考图片区域中的估计可以被称为运动估计。
[0594]
另外,尽管在上述示例中步骤se_1至se_3由帧间预测器126执行,但是例如步骤se_1、步骤se_2等的过程可以由编码器100中包括的另一构成元素执行。
[0595]
需要说明的是,可以在帧间预测模式下为每个过程生成mv候选列表,或者可以在多个帧间预测模式中使用公共mv候选列表。步骤se_3和se_4中的过程分别对应于图9中所示的步骤sa_3和sa_4。步骤se_3中的过程对应于图30中的步骤sd_1b中的过程。
[0596]
(运动向量推导流程)
[0597]
图36是示出了运动向量的推导过程的一个示例的流程图。
[0598]
帧间预测器126可以在用于编码运动信息(例如,mv)的模式中推导出当前块的mv。在这种情况下,例如,运动信息可以被编码为预测参数,并且可以被用信号通知。换言之,编码的运动信息被包括在流中。
[0599]
替代地,帧间预测器126可以在运动信息未被编码的模式中推导出mv。在这种情况下,流中不包括运动信息。
[0600]
这里,mv推导模式可以包括稍后描述的常规帧间模式、常规合并模式、fruc模式、仿射模式等。模式中对运动信息进行编码的模式包括常规帧间模式、常规合并模式、仿射模式(具体地,仿射帧间模式和仿射合并模式)等。需要说明的是,运动信息可以不仅包括mv,而且包括稍后描述的运动向量预测器选择信息。不编码运动信息的模式包括fruc模式等。帧间预测器126从多个模式中选择用于推导出当前块的mv的模式,并使用所选择的模式推导出当前块的mv。
[0601]
图37是示出运动向量的推导的另一示例的流程图。
[0602]
帧间预测器126可以在对mv差进行编码的模式中推导出当前块的mv。在这种情况下,例如,mv差可以被编码为预测参数,并且可以用信号通知。换句话说,编码后的mv差被包括在流中。mv差是当前块的mv与mv预测器之间的差。需要说明的是,mv预测器是运动向量预测器。
[0603]
替代地,帧间预测器126可以在没有对mv差进行编码的模式中推导出mv。在这种情况下,流中不包括编码的mv差。
[0604]
这里,如上所述,mv推导模式包括后面描述的常规帧间模式、常规合并模式、fruc模式、仿射模式等。模式中对mv差进行编码的模式包括常规帧间模式、仿射模式(具体而言,仿射帧间模式)等。没有对mv差进行编码的模式包括fruc模式、常规合并模式、仿射模式(具体地,仿射合并模式)等。帧间预测器126从多个模式中选择用于推导出当前块的mv的模式,并使用所选择的模式推导出当前块的mv。
[0605]
(运动向量推导模式)
[0606]
图38a和图38b是用于示出用于mv推导的模式的示例分类的概念图。例如,如图38a
所示,根据是否编码运动信息和是否编码mv差,mv推导模式大致分类为三个模式。三个模式是帧间模式、合并模式和帧速率上转换(fruc)模式。帧间模式是执行运动估计并且对运动信息和mv差进行编码的模式。例如,如图38b所示,帧间模式包括仿射帧间模式和常规帧间模式。合并模式是不执行运动估计并且从编码的周围块中选择mv并且使用该mv推导出当前块的mv的模式。合并模式是基本上对运动信息进行编码而不对mv差进行编码的模式。例如,如图38b所示,合并模式包括常规合并模式(也称为常规合并模式或正常合并模式)、具有运动向量差的合并(merge with motion vector difference,mmvd)模式、组合帧间合并/帧内预测(ciip)模式、三角模式、atmvp模式和仿射合并模式。这里,在合并模式中包括的模式中的mmvd模式中,mv差被例外地编码。要注意的是,仿射合并模式和仿射帧间模式是包括在仿射模式中的模式。仿射模式是在假设仿射变换的情况下用于推导出当前块中包括的多个子块中的每一个的mv作为当前块的mv的模式。fruc模式是这样的模式:其用于通过在编码区域之间执行估计来推导出当前块的mv,并且既不对运动信息编码,也不对任何mv差编码。要注意的是,稍后将更详细地描述相应模式。
[0607]
应当注意,图38a和图38b中所示的模式的分类是示例,并且分类不限于此。例如,当以ciip模式编码mv差时,ciip模式被归类为帧间模式。
[0608]
(mv推导》常规帧间模式)
[0609]
常规帧间模式是一种帧间预测模式,其用于基于与当前块的图像相似的块从由mv候选指定的参考图片区域中推导出当前块的mv。在此常规帧间模式中,对mv差进行编码。
[0610]
图39是示出常规帧间模式中的帧间预测过程的示例的流程图。
[0611]
首先,帧间预测器126基于诸如时间上或空间上围绕当前块的多个编码块的mv之类的信息来获得当前块的多个mv候选(步骤sg_1)。换言之,帧间预测器126生成mv候选列表。
[0612]
接下来,帧间预测器126根据确定的优先级次序从在步骤sg_1中获得的多个mv候选中提取n(2或更大的整数)个mv候选作为运动向量预测器候选(也称为mv预测器候选)(步骤sg_2)。需要说明的是,可以为n个mv候选中的每一个预先确定优先级次序。
[0613]
接下来,帧间预测器126从n个运动向量预测器候选中选择一个运动向量预测器候选,作为当前块的运动向量预测器(也称为mv预测器)(步骤sg_3)。此时,帧间预测器126在流中编码用于识别所选择的运动向量预测器的运动向量预测器选择信息。换言之,帧间预测器126通过预测参数生成器130将mv预测器选择信息作为预测参数输出到熵编码器110。
[0614]
接下来,帧间预测器126通过参考编码的参考图片来推导出当前块的mv(步骤sg_4)。此时,帧间预测器126还在流中将推导出的mv和运动向量预测器之间的差值编码为mv差。换言之,帧间预测器126通过预测参数生成器130将mv差作为预测参数输出到熵编码器110。要注意的是,编码参考图片是包括在被编码之后已经被重构的多个块的图片。
[0615]
最后,通过使用推导出的mv和编码的参考图片执行当前块的运动补偿,帧间预测器126生成当前块的预测图像(步骤sg_5)。对每个块执行步骤sg_1到sg_5中的过程。例如,当对切片中的所有块执行步骤sg_1至sg_5中的过程时,使用常规帧间模式的切片的帧间预测结束。例如,当对图片中的所有块执行步骤sg_1至sg_5中的过程时,使用常规帧间模式的图片的帧间预测结束。需要说明的是,在步骤sg_1至sg_5中,并不是所有被包括在切片中的块都可以经历这些过程,并且当部分块经历过程时,使用常规帧间模式的切片的帧间预测
可以结束。这也适用于步骤sg_1到sg_5中的过程。当对图片中的部分块执行过程时,使用常规帧间模式的图片的帧间预测可以结束。
[0616]
应注意,预测图像是如上所述的帧间预测信号。另外,表示用于生成预测图像的帧间预测模式(在上述示例中的常规帧间模式)的信息例如被编码为编码信号中的预测参数。
[0617]
需要注意的是,mv候选列表也可以用作另一模式中使用的列表。此外,与mv候选列表相关的过程可以被应用于与列表相关的过程以在另一模式中使用。与mv候选列表相关的过程包括例如从mv候选列表中提取或选择mv候选、mv候选的重新排序或mv候选的删除。
[0618]
(mv推导》常规合并模式)
[0619]
常规合并模式是用于从mv候选列表中选择mv候选作为当前块的mv从而推导出mv的帧间预测模式。需要说明的是,常规合并模式是一种类型的合并模式,并且可以简称为合并模式。在本实施例中,区分了常规合并模式和合并模式,并且合并模式以更广的含义使用。
[0620]
图40是示出常规合并模式中的帧间预测的示例的流程图。
[0621]
首先,帧间预测器126基于诸如时间上或空间上围绕当前块的多个编码块的mv之类的信息来获得当前块的多个mv候选(步骤sh_1)。换言之,帧间预测器126生成mv候选列表。
[0622]
接下来,帧间预测器126从在步骤sh_1中获得的多个mv候选中选择一个mv候选,从而推导出当前块的mv(步骤sh_2)。此时,帧间预测器126在流中编码用于识别所选择的mv候选的mv选择信息。换言之,帧间预测器126通过预测参数生成器130将mv选择信息作为预测参数输出到熵编码器110。
[0623]
最后,通过使用推导出的mv和编码的参考图片来执行当前块的运动补偿,帧间预测器126生成当前块的预测图像(步骤sh_3)。例如,对每个块执行步骤sh_1到sh_3中的过程。例如,当对切片中的所有块执行步骤sh_1至sh_3中的过程时,使用常规合并模式的切片的帧间预测结束。另外,当对图片中的所有块执行步骤sh_1至sh_3中的过程时,使用常规合并模式的图片的帧间预测结束。需要说明的是,并不是所有被包括在切片中的块都可以经历步骤sh_1至sh_3的过程,并且当部分块经历过程时,使用常规合并模式的切片的帧间预测可以结束。这也适用于步骤sh_1到sh_3中的过程。当对图片中的部分块执行过程时,使用常规合并模式的图片的帧间预测可以完成。
[0624]
另外,编码的信号中包含的并且用于生成预测图像的表示帧间预测模式(在上述示例中为常规合并模式)的信息例如被编码为流中的预测参数。
[0625]
图41是用于示出通过常规合并模式的当前图片的运动向量推导过程的一个示例的概念图。首先,帧间预测器126生成mv候选登记在其中的mv候选列表。mv候选的示例包括:空间相邻mv候选,它们是位于空间上围绕当前块的多个编码块的mv;时间上相邻的mv候选,它们是周围块的mv,编码的参考图片中当前块的位置被投影到这些周围块上;组合的mv候选,它们是通过组合空间上相邻mv预测器的mv值和时间上相邻mv预测器的mv值生成的mv;以及零mv候选,其为具有零值的mv。
[0626]
接下来,帧间预测器126从登记在mv候选列表中的多个mv候选中选择一个mv候选,并将该mv候选确定为当前块的mv。
[0627]
此外,熵编码器110在流中写入并编码merge_idx,merge_idx是指示已选择哪个mv
候选的信号。
[0628]
应注意的是,登记在图41中描述的mv候选列表中的mv候选是示例。mv候选的数量可以与图中的mv候选的数量不同,mv候选列表可以以这样的方式配置,即可以不包括图中的一些种类的mv候选,或者包括除了图中的mv候选的种类之外的一种或多种mv候选。
[0629]
通过使用由常规合并模式推导出的当前块的mv来执行稍后要描述的动态运动向量刷新(dmvr),可以确定最终mv。需要注意的是,在常规合并模式下,运动信息被编码并且没有mv差被编码。在mmvd模式中,从mv候选列表中选择一个mv候选,就像在常规合并模式的情况下一样,对mv差进行编码。如图38b所示,mmvd可以与常规合并模式一起分类为合并模式。应当注意,mmvd模式中的mv差并不总是需要与用于帧间模式的mv差相同。例如,mmvd模式下的mv差推导可以是需要比帧间模式下的mv差推导所需的处理量更小的处理量的过程。
[0630]
此外,可以执行组合的帧间合并/帧内预测(ciip)模式。该模式用于重叠在帧间预测中生成的预测图像和在帧内预测中生成的预测图像以生成当前块的预测图像。
[0631]
需要注意的是,mv候选列表可以被称为候选列表。另外,merge_idx是mv选择信息。
[0632]
(mv推导》hmvp模式)
[0633]
图42是用于示出使用hmvp合并模式用于当前图片的mv推导过程的一个示例的概念图。在常规合并模式中,通过从参考编码块(例如,cu)生成的mv列表中选择一个mv候选,确定例如作为当前块的cu的mv。这里,可以在mv候选列表中登记另一个mv候选。注册这种另一mv候选的模式被称为hmvp模式。
[0634]
在hmvp模式中,使用hmvp的先进先出(fifo)服务器来管理mv候选,与常规合并模式的mv候选列表分开。
[0635]
在fifo缓冲器中,首先最新存储诸如过去处理的块的mv之类的运动信息。在管理fifo缓冲器中,每次处理一个块时,就在fifo缓冲器中存储最新块(即,紧接在前处理的cu)的mv,并将最旧的cu(即,最早处理的cu)的mv从fifo缓冲器中删除。在图42所示的示例中,hmvp1是最新块的mv,并且hmvp5是最旧mv的mv。
[0636]
然后,例如,帧间预测器126检查在fifo缓冲器中管理的每个mv是否是与从hmvp1开始的常规合并模式的mv候选列表中已经登记的所有mv候选不同的mv。当确定该mv不同于所有mv候选时,帧间预测器126可以将在fifo缓冲器中管理的mv添加到用于常规合并模式的mv候选列表中作为mv候选。此时,在fifo缓冲器中的一个或多个mv候选可以被登记(添加到mv候选列表)。
[0637]
通过以这种方式使用hmvp模式,不仅可以添加在空间或时间上与当前块相邻的块的mv,而且可以添加过去处理过的块的mv。结果,扩大了常规合并模式的mv候选的变化,这增加了可以提高编码效率的可能性。
[0638]
注意,mv可以是运动信息。换句话说,存储在mv候选列表和fifo缓冲器中的信息不仅可以包括mv值,而且可以包括参考图片信息、参考方向、图片数量等。另外,块可以是例如cu。
[0639]
注意,图42中所示的mv候选列表和fifo缓冲器是示例。mv候选列表和fifo缓冲器的大小可以与图42中的不同,或者可以被配置为以与图42中的次序不同的次序登记mv候选。此外,这里描述的过程在编码器100和解码器200之间可以是共同的。
[0640]
注意,hmvp模式可以应用于常规合并模式以外的模式。例如,也可以将诸如过去以
仿射模式处理的块的mv之类的运动信息最新存储,并可以将其用作mv候选,这可以促进更好的效率。通过将hmvp模式应用于仿射模式而获得的模式可以被称为历史仿射模式。
[0641]
(mv推导》fruc模式)
[0642]
运动信息可以在解码器侧推导而不从编码器侧用信号通知。例如,可以通过在解码器200侧执行运动估计来推导运动信息。在实施例中,在解码器侧,在不使用当前块中的任何像素值的情况下执行运动估计。用于在解码器200侧执行运动估计而不使用当前块中的任何像素值的模式包括帧速率上转换(fruc)模式、模式匹配运动向量推导(pmmvd)模式等。
[0643]
图43中示出了流程图形式的fruc过程的一个示例。首先,通过参考mv来指示其中的每一个都在空间或时间上与当前块相邻的编码块的mv,作为mv候选的列表(该列表可以是mv候选列表,并且也可以用作常规合并模式的mv候选列表)(步骤si_1)。
[0644]
接下来,从在mv候选列表中登记的多个mv候选中选择最佳mv候选(步骤si_2)。例如,计算mv候选列表中包括的相应mv候选的评估值,并基于评估值选择一个mv候选。基于所选运动向量候选,然后推导当前块的运动向量(步骤si_4)。更具体地,例如,所选运动向量候选(最佳mv候选)被直接推导为当前块的运动向量。另外,例如,可以使用在参考图片中的位置的周围区域中模式匹配来推导当前块的运动向量,其中在参考图片中的位置对应于所选运动向量候选。换句话说,使用模式匹配和评估值的估计可以在最佳mv候选的周围区域中执行,并且当存在产生更好评估值的mv时,可以将最佳mv候选更新为产生更好评估值的mv,并且更新后的mv可以被确定为当前块的最终mv。在一些实施例中,可以不执行产生更好评估值的运动向量的更新。
[0645]
最后,通过使用推导的mv和编码的参考图片执行当前块的运动补偿,帧间预测器126生成当前块的预测图像(步骤si_5)。例如,对每个块执行步骤si_1至si_5中的过程。例如,当对切片中的所有块执行步骤si_1至si_5中的过程时,使用fruc模式的切片的帧间预测结束。例如,当对图片中的所有块执行步骤si_1至si_5中的过程时,使用fruc模式的图片的帧间预测结束。注意,并不是包含于切片中的所有块都经历步骤si_1至si_5中的过程,并且当部分块经历过程时,使用fruc模式的切片的帧间预测可以结束。当以类似方式对图片中包括的部分块执行步骤si_1至si_5中的过程时,使用fruc模式的图片的帧间预测可以结束。
[0646]
可以以子块为单位执行类似的过程。
[0647]
可以根据各种方法计算评估值。例如,在与运动向量相对应的参考图片中的区域中的重构图像与确定的区域(该区域例如可以是另一参考图片中的区域或当前图片的相邻块中的区域,如下所示)中的重构图像之间进行比较。确定的区域可以是预先确定的。
[0648]
在两个重构图像的像素值之间的差可用于运动向量的评估值。注意,可以使用除差值之外的信息来计算评估值。
[0649]
接下来,详细描述模式匹配的示例。首先,通过模式匹配选择包含于mv候选列表(例如,合并列表)中的一个mv候选作为估计的起点。例如,作为模式匹配,可以使用第一模式匹配或第二模式匹配。第一模式匹配和第二模式匹配可以分别称为双边匹配和模板匹配。
[0650]
(mv推导》fruc》双边匹配)
[0651]
在第一模式匹配中,在沿着当前块的运动轨迹定位且包含于两个不同参考图片中的两个块之间执行模式匹配。因此,在第一模式匹配中,沿着当前块的运动轨迹的另一参考图片中的区域被用作计算上述候选的评估值的确定的区域。该确定的区域可以是预先确定的。
[0652]
图44是用于示出沿着运动轨迹的两个参考图片中的两个块之间的第一模式匹配(双边匹配)的一个示例的概念图。如图44所示,在第一模式匹配中,通过估计被包括在两个不同参考图片(ref0,ref1)中且沿着当前块(cur块)的运动轨迹定位的两个块中的对之中的最佳匹配的对来推导两个运动向量(mv0,mv1)。更具体地,针对当前块推导在由mv候选指定的第一编码参考图片(ref0)中指定位置处的重构图像与由通过以显示时间间隔缩放mv候选获得的对称mv指定的第二编码参考图片(ref1)中指定位置处的重构图像之间的差,并使用获得的差值计算评估值。可以在多个mv候选中选择产生最佳评估值并且可能产生良好结果的mv候选作为最终mv。
[0653]
在连续运动轨迹的假设下,指定两个参考块的运动向量(mv0,mv1)与当前图片(cur pic)和两个参考图片(ref0,ref1)之间的时间距离(td0,td1)成比例。例如,在当前图片在时间上位于两个参考图片之间并且当前图片到相应两个参考图片的时间距离彼此相等时,在第一模式匹配中推导镜像对称的双向运动向量。
[0654]
(mv推导》fruc》模板匹配)
[0655]
在第二模式匹配(模板匹配)中,在参考图片中的块和当前图片中的模板(模板为当前图片中与当前块相邻的块(相邻块为例如上部和/或左侧相邻块))之间执行模式匹配。因此,在第二模式匹配中,将当前图片中的当前块的相邻块用作用于计算上述mv候选的评估值的确定的区域。
[0656]
图45是用于示出当前图片中的模板与参考图片中的块之间的模式匹配(模板匹配)的一个示例的概念图。如图45所示,在第二模式匹配中,通过在参考图片(ref0)中估计与当前图片(cur pic)中的当前块的相邻块最佳匹配的块来推导当前块(cur块)的运动向量。更具体地,推导出在与左侧且上方或者左侧或上方相邻的编码区域中的重构图像与在编码参考图片(ref0)中的对应区域中并由mv候选指定的重构图像之间的差,并使用获得的差计算评估值。可以选择多个mv候选中产生最佳评估值的mv候选作为最佳mv候选。
[0657]
这种指示是否应用fruc模式的信息(例如被称为fruc标志)可以在cu级别用信号通知。此外,当应用fruc模式时(例如,当fruc标志为真时),可以在cu级别用信号通知指示适用的模式匹配方法(例如,第一模式匹配或第二模式匹配)的信息。需要说明的是,此类信息的信令不一定需要在cu级别执行,并且可以在另一级别(例如,序列级别、图片级别、切片级别、分片级别、ctu级别或子块级别)执行。
[0658]
(mv推导》仿射模式)
[0659]
仿射模式是使用仿射变换生成mv的模式。例如,可以基于多个相邻块的运动向量以子块为单位推导mv。该模式也称为仿射运动补偿预测模式。
[0660]
图46a是用于示出基于多个相邻块的运动向量以子块为单位的mv推导的一个示例的概念图。在图46a中,当前块包括例如十六个4
×
4子块。这里,当前块的左上角控制点处的运动向量v0是基于相邻块的运动向量推导的,并且同样地,基于相邻子块的运动向量推导当前块中的右上角控制点处的运动向量v1。可以根据下面指示的表达式(1a)来投影两个运
动向量v0和v1,并且可以推导当前块中相应子块的运动向量(v
x
,vy)。
[0661]
[数学表达式1]
[0662][0663]
这里,x和y分别表示子块的水平位置和垂直位置,并且w表示确定的加权系数。确定的加权系数可以是预先确定的。
[0664]
这种指示仿射模式的信息(例如,称为仿射标志)可以在cu级别用信号通知。注意,指示仿射模式的信息的信令不一定需要在cu级别执行,并且可以在另一级别(例如,在序列级别、图片级别、切片级别、分片级别、ctu级别或子块级别)执行。
[0665]
此外,仿射模式可以包括用于推导左上角和右上角控制点处的运动向量的不同方法的几个模式。例如,仿射模式包括仿射帧间模式(也称为仿射常规帧间模式)和仿射合并模式两个模式。
[0666]
(mv推导》仿射模式)
[0667]
图46b是用于示出在其中使用三个控制点的仿射模式中以子块为单位的mv推导的一个示例的概念图。在图46b中,当前块包括例如十六个4
×
4块。这里,当前块中左上角控制点处的运动向量v0是基于相邻块的运动向量推导的。这里,当前块中的右上角控制点处的运动向量v1是基于相邻块的运动向量推导的,并且同样地,基于相邻块的运动向量推导当前块的左下角控制点处的运动向量v2。可以根据下面指示的表达式(1b)投影三个运动向量v0、v1和v2,并且可以推导当前块中的相应子块的运动向量(v
x
,vy)。
[0668]
[数学表达式2]
[0669]
这里,x和y分别表示子块的水平位置和垂直位置,并且w和h可以是加权系数,其可以是预先确
[0670][0671]
定的加权系数。在实施例中,w可以表示当前块的宽度,并且h可以表示当前块的高度。
[0672]
可以在cu级别切换和用信号通知使用不同数量的控制点(例如,两个和三个控制点)的仿射模式。注意,指示在cu级别使用的仿射模式中的控制点数量的信息可以在另一级别(例如,序列级别、图片级别、切片级别、分片级别、ctu级别或子块级别)用信号通知。
[0673]
此外,这种使用三个控制点的仿射模式可以包括用于推导左上角、右上角和左下角控制点处的运动向量的不同方法。例如,与使用两个控制点的仿射模式的情况一样,使用三个控制点的仿射模式可以包括仿射帧间模式和仿射合并模式这两个模式。
[0674]
注意,在仿射模式下,包含于当前块中的每个子块的尺寸可以不限于4
×
4个像素,并且可以是其他尺寸。例如,每个子块的尺寸可以是8
×
8个像素。
[0675]
(mv推导》仿射模式》控制点)
[0676]
图47a、图47b和图47c是用于示出仿射模式中控制点处的mv推导的示例的概念图。
[0677]
如图47a所示,在仿射模式中,例如,基于与当前块相邻的编码的块a(左)、块b(上)、块c(右上)、块d(左下)和块e(左上)之中的根据仿射模式编码的块所对应的多个运动向量,计算当前块的相应控制点处的运动向量预测器。更具体地,按照列出次序检查编码的块a(左)、块b(上)、块c(右上)、块d(左下)和块e(左上),并且识别根据仿射模式编码的第一有效块。当前块的控制点处的运动向量预测器是基于与识别出的块相对应的多个运动向量来计算的。
[0678]
例如,如图47b所示,在与当前块左侧相邻的块a已经根据使用两个控制点的仿射模式进行编码时,推导在包括块a的编码块的左上角位置和右上角位置处投影的运动向量v3和v4。然后,根据推导的运动向量v3和v4,来计算当前块的左上角控制点处的运动向量v0和当前块的右上角控制点处的运动向量v1。
[0679]
例如,如图47c所示,在与当前块左侧相邻的块a已经根据使用三个控制点的仿射模式进行编码时,推导在包括块a的编码块的左上角位置、右上角位置和左下角位置处投影的运动向量v3、v4和v5。然后,根据推导出的运动向量v3、v4和v5,计算当前块的左上角控制点处的运动向量v0、当前块的右上角控制点处的运动向量v1以及当前块的左下角控制点处的运动向量v2。
[0680]
图47a至47c所示的mv推导方法可以在图50所示的步骤sk_1中的当前块的每个控制点处的mv推导中使用,或者可以用于稍后描述的图51所示的步骤sj_1中当前块的每个控制点处的mv预测器推导。
[0681]
图48a和图48b是用于示出仿射模式中控制点处的mv推导的示例的概念图。
[0682]
图48a是用于示出使用两个控制点的示例性仿射模式的概念图。
[0683]
在仿射模式中,如图48a所示,从与当前块相邻的编码的块a、块b和块c处的mv中选择的mv用作当前块的左上角控制点处的运动向量v0。同样,从与当前块相邻的编码的块d和块e的mv中选择的mv用作当前块的右上角控制点处的运动向量v1。
[0684]
图48b是用于示出使用三个控制点的示例性仿射模式的概念图。
[0685]
在仿射模式中,如图48b所示,从与当前块相邻的编码的块a、块b和块c处的mv中选择的mv用作当前块的左上角控制点处的运动向量v0。同样,从与当前块相邻的编码块d和块e的mv中选择的mv用作当前块的右上角控制点处的运动向量v1。此外,从与当前块相邻的编码的块f和块g的mv中选择的mv用作当前块的左下角控制点处的运动向量v2。
[0686]
注意,图48a和图48b所示的mv推导方法可以用于稍后描述的图50中示出的步骤sk_1中的当前块的每个控制点处的mv推导中,或者可以用于稍后描述的图51中所示的步骤sj_1中的当前块的每个控制点处的mv预测器推导。
[0687]
这里,当使用不同数量的控制点(例如,两个和三个控制点)的仿射模式可以在cu级别切换和用信号通知时,编码块的控制点数量和当前块的控制点的数量可以彼此不同。
[0688]
图49a和图49b是用于示出当编码块的控制点的数量和当前块的控制点的数量彼此不同时在控制点处的mv推导的方法的示例的概念图。
[0689]
例如,如图49a所示,当前块在左上角、右上角和左下角处具有三个控制点,并且与当前块左侧相邻的块a已经根据使用两个控制点的仿射模式进行了编码。在这种情况下,推导在包括块a的编码块中的左上角位置和右上角位置处投影的运动向量v3和v4。然后,根据
推导出的运动向量v3和v4来计算当前块的左上角控制点处的运动向量v0和右上角控制点处的运动向量v1。此外,根据推导出的运动向量v0和v1计算左下角控制点处的运动向量v2。
[0690]
例如,如图49b所示,当前块在左上角和右上角处具有两个控制点,并且与当前块左侧相邻的块a已经根据其中使用三个控制点的仿射模式进行了编码。在这种情况下,推导在包括块a的编码块中的左上角位置、编码块中的右上角位置和编码块中的左下角位置处投影的运动向量v3、v4和v5。然后,根据推导出的运动向量v3、v4和v5计算当前块的左上角控制点处的运动向量v0和当前块的右上角控制点处的运动向量v1。
[0691]
注意,图49a和图49b所示的mv推导方法可用于在稍后描述的图50中所示的步骤sk_1中的当前块的每个控制点处的mv推导中,或者可以用于稍后描述的图51所示的步骤sj_1中的当前块的每个控制点处的mv预测器推导。
[0692]
(mv推导》仿射模式》仿射合并模式)
[0693]
图50是示出仿射合并模式中的过程的一个示例的流程图。
[0694]
在如图所示的仿射合并模式中,首先,帧间预测器126推导当前块的相应控制点处的mv(步骤sk_1)。如图46a所示,控制点是当前块的左上角点和当前块的右上角点,或者如图46b所示为当前块的左上角点、当前块的右上角点和当前块的左下角点。帧间预测器126可以编码mv选择信息以用于识别流中的两个或三个推导的mv。
[0695]
例如,当使用图47a至图47c所示的mv推导方法时,如图47a所示,帧间预测器126以列出的次序检查编码的块a(左)、块b(上)、块c(右上)、块d(左下)和块e(左上),并识别根据仿射模式编码的第一有效块。
[0696]
帧间预测器126使用根据识别出的仿射模式编码的识别出的第一有效块来推导控制点处的mv。例如,当块a被识别并且块a具有两个控制点时,如图47b所示,帧间预测器126根据包括块a的编码块的左上角以及编码块的右上角处的运动向量v3和v4,计算在当前块的左上角控制点处的运动向量v0和在当前块的右上角控制点处的运动向量v1。例如,帧间预测器126通过将编码块的左上角和右上角的运动向量v3和v4投影到当前块,来计算当前块的左上角控制点处的运动向量v0和当前块的右上角控制点处的运动向量v1。
[0697]
替代地,当块a被识别并且块a具有三个控制点时,如图47c所示,帧间预测器126根据包括块a的编码块的左上角、编码块的右上角和编码块的左下角处的运动向量v3、v4和v5,来计算当前块的左上角控制点处的运动向量v0、当前块的右上角控制点处的运动向量v1和当前块的左下角控制点处的运动向量v2。例如,帧间预测器126通过将编码块的左上角、右上角和左下角处的运动向量v3、v4和v5投影到当前块上,来计算当前块的左上角控制点处的运动向量v0、当前块的右上角控制点处的运动向量v1和当前块的左下角控制点处的运动向量v2。
[0698]
注意,如上所述在图49a中所示,当块a被识别并且块a具有两个控制点时,可以计算三个控制点处的mv,并且如上所述在图49b中所示,当块a被识别并且块a具有三个控制点时,可以计算两个控制点处的mv。
[0699]
接下来,帧间预测器126对当前块中包括的多个子块中的每一个执行运动补偿。换句话说,帧间预测器126例如使用两个运动向量v0和v1以及上述表达式(1a)或者三个运动向量v0、v1和v2以及上述表达式(1b),计算多个子块中的每一个的mv作为仿射mv(步骤sk_2)。帧间预测器126然后使用这些仿射mv和编码的参考图片来执行子块的运动补偿(步骤sk_
3)。当针对包含于当前块中的所有子块中的每一个执行步骤sk_2和sk_3中的过程时,使用当前块的仿射合并模式生成预测图像的过程结束。换句话说,执行当前块的运动补偿以生成当前块的预测图像。
[0700]
注意,上述mv候选列表可以在步骤sk_1中生成。mv候选列表可以是例如包括使用用于每个控制点的多种mv推导方法推导的mv候选的列表。多个mv推导方法可以是例如图47a至47c中所示的mv推导方法、图48a和图48b所示的mv推导方法、图49a和图49b中所示的mv推导方法以及其他mv推导方法的任意组合。
[0701]
注意,除了仿射模式之外,mv候选列表可以在以子块为单位执行预测的模式中包括mv候选。
[0702]
注意,例如,可以生成mv候选列表(其包括使用两个控制点的仿射合并模式和使用三个控制点的仿射合并模式中的mv候选)作为mv候选列表。替代地,可以单独地生成包括使用两个控制点的仿射合并模式中的mv候选的mv候选列表和包括使用三个控制点的仿射合并模式中的mv候选的mv候选列表。替代地,可以生成包括在使用两个控制点的仿射合并模式和使用三个控制点的仿射合并模式之一中的mv候选的mv候选列表。mv候选可以是例如用于编码的块a(左)、块b(上)、块c(右上)、块d(左下)和块e(左上)的mv,或者块中有效块的mv。
[0703]
注意,指示mv候选列表中的mv之一的索引可以作为mv选择信息被传输。
[0704]
(mv推导》仿射模式》仿射帧间模式)
[0705]
图51是示出仿射帧间模式中的过程的一个示例的流程图。
[0706]
在仿射帧间模式中,首先,帧间预测器126推导当前块的相应两个或三个控制点的mv预测器(v0,v1)或(v0,v1,v2)(步骤sj_1)。控制点例如可以是当前块的左上角点、当前块的右上角点和当前块的右上角点,如图46a或图46b所示。
[0707]
例如,当使用图48a和图48b所示的mv推导方法时,帧间预测器126通过选择图48a或图48b中示出的当前块的相应控制点附近的编码块中的任何块的mv,来推导当前块的相应两个或三个控制点处的mv预测器(v0,v1)或(v0,v1,v2)。此时,帧间预测器126在流中编码用于识别所选两个或三个mv预测器的mv预测器选择信息。
[0708]
例如,帧间预测器126可以使用成本评估等从与当前块相邻的编码块中确定从其选择作为控制点处的mv预测器的mv的块,并且可以在比特流中写入指示已选择哪个mv预测器的标志。换句话说,帧间预测器126通过预测参数生成器130将诸如标志之类的mv预测器选择信息作为预测参数输出到熵编码器110。
[0709]
接下来,帧间预测器126执行运动估计(步骤sj_3和sj_4),同时更新在步骤sj_1中选择或推导的mv预测器(步骤sj_2)。换句话说,帧间预测器126使用上述表达式(1a)或表达式(1b)计算与更新的mv预测器相对应的每个子块的mv作为仿射mv(步骤sj_3)。帧间预测器126然后使用这些仿射mv和编码的参考图片执行子块的运动补偿(步骤sj_4)。当在步骤sj_2中更新mv预测器时,对当前块中的所有块执行步骤sj_3和sj_4中的过程。结果,例如,帧间预测器126将产生最小成本的mv预测器确定为运动估计循环中控制点处的mv(步骤sj_5)。此时,帧间预测器126还在流中将确定的mv和mv预测器之间的差值编码为mv差。换句话说,帧间预测器126通过预测参数生成器130将mv差作为预测参数输出到熵编码器110。
[0710]
最后,帧间预测器126通过使用确定的mv和编码的参考图片执行当前块的运动补
偿,来生成当前块的预测图像(步骤sj_6)。
[0711]
注意,上述mv候选列表可以在步骤sj_1中生成。mv候选列表可以是例如包括使用用于每个控制点的多种mv推导方法推导的mv候选的列表。多个mv推导方法可以是例如图47a至47c中所示的mv推导方法、图48a和图48b所示的mv推导方法、图49a和图49b中所示的mv推导方法以及其他mv推导方法的任意组合。
[0712]
注意,除了仿射模式之外,mv候选列表可以包括在以子块为单位执行预测的模式中的mv候选。
[0713]
注意,例如,可以生成包括使用两个控制点的仿射帧间模式和使用三个控制点的仿射帧间模式中的mv候选的mv候选列表作为mv候选列表。替代地,可以单独地生成包括使用两个控制点的仿射帧间模式中的mv候选的mv候选列表以及包括使用三个控制点的仿射帧间模式中的mv候选的mv候选列表。替代地,可以生成包括在使用两个控制点的仿射帧间模式和使用三个控制点的仿射帧间模式之一中的mv候选的mv候选列表。mv候选可以是例如用于编码的块a(左)、块b(上)、块c(右上)、块d(左下)和块e(左上)的mv,或者块中有效块的mv。
[0714]
注意,指示mv候选列表中的mv候选之一的索引可以作为mv预测器选择信息被传输。
[0715]
(mv推导》三角形模式)
[0716]
在上述示例中,帧间预测器126为当前矩形块生成一个矩形预测图像。然而,帧间预测器126可以生成多个预测图像,每个预测图像的形状与当前矩形块的矩形不同,并且可以组合多个预测图像以生成最终的矩形预测图像。不同于矩形的形状可以是例如三角形。
[0717]
图52a是用于示出生成两个三角形预测图像的概念图。
[0718]
帧间预测器126通过使用第一分区的第一mv对当前块中具有三角形形状的第一分区执行运动补偿来生成三角形预测图像,以生成三角形预测图像。同样地,帧间预测器126通过使用第二分区的第二mv对当前块中具有三角形形状的第二分区执行运动补偿来生成三角形预测图像,以生成三角形预测图像。然后,帧间预测器126通过组合这些预测图像来生成具有与当前块的矩形形状相同的矩形形状的预测图像。
[0719]
注意,可以使用第一mv生成具有与当前块相对应的矩形形状的第一预测图像作为用于第一分区的预测图像。此外,可以使用第二mv生成具有与当前块相对应的矩形形状的第二预测图像作为用于第二分区的预测图像。可以通过执行第一预测图像和第二预测图像的加权相加来生成当前块的预测图像。注意,进行加权相加的部分可以是跨第一分区和第二分区之间的边界的部分区域。
[0720]
图52b是用于示出第一分区的与第二分区重叠的第一部分以及可作为校正过程的一部分被加权的第一和第二样本集合的示例的概念图。第一部分可以是例如第一分区的宽度或高度的四分之一。在另一示例中,第一部分可以具有与第一分区的边缘相邻的n个样本所对应的宽度,其中n是大于零的整数,例如,n可以是整数2。如图所示,图52b的左侧示例示出了具有矩形部分的矩形分区,其宽度是第一分区宽度的四分之一,其中第一样本集合包括在第一部分外部的样本和在第一部分内部的样本,以及第二样本集合包括第一部分内的样本。图52b的中心示例示出了具有矩形部分的矩形分区,其高度是第一分区的高度的四分之一,其中第一样本集合包括在第一部分外部的样本和在第一部分内部的样本,以及第二
样本集合包括第一部分内的样本。图52b的右侧示例示出了具有多边形部分的三角形分区,其高度对应于两个样本,其中第一样本集合包括在第一部分外部的样本和在第一部分内部的样本,以及第二样本集合包括第一部分内的样本。
[0721]
第一部分可以是第一分区的与相邻分区重叠的部分。图52c是用于示出第一分区的第一部分的概念图,该第一部分是第一分区的与相邻分区的一部分重叠的部分。为了便于说明,示出了具有与空间相邻的矩形分区重叠部分的矩形分区。可以采用具有其他形状的分区,例如三角形分区,并且重叠部分可以与空间或时间上相邻的分区重叠。
[0722]
此外,虽然给出了使用帧间预测为两个分区中的每个分区生成预测图像的示例,但是可以使用帧内预测为至少一个分区生成预测图像。
[0723]
图53是示出三角形模式中的过程的一个示例的流程图。
[0724]
在三角形模式中,首先,帧间预测器126将当前块分割成第一分区和第二分区(步骤sx_1)。此时,帧间预测器126可以在流中将分区信息(其为与分割成分区相关的信息)编码为预测参数。换句话说,帧间预测器126可以通过预测参数生成器130将分区信息作为预测参数输出到熵编码器110。
[0725]
首先,帧间预测器126基于诸如时间上或空间上围绕当前块的多个编码块的mv之类的信息来获得当前块的多个mv候选(步骤sx_2)。换句话说,帧间预测器126生成mv候选列表。
[0726]
帧间预测器126然后从在步骤sx_1中获得的多个mv候选中分别选择第一分区的mv候选和第二分区的mv候选作为第一mv和第二mv(步骤sx_3)。此时,帧间预测器126在流中编码用于识别所选mv候选的mv选择信息作为预测参数。换句话说,帧间预测器126通过预测参数生成器130将mv选择信息作为预测参数输出到熵编码器110。
[0727]
接下来,帧间预测器126通过使用所选第一mv和编码的参考图片执行运动补偿来生成第一预测图像(步骤sx_4)。同样,帧间预测器126通过使用所选第二mv和编码的参考图片执行运动补偿来生成第二预测图像(步骤sx_5)。
[0728]
最后,帧间预测器126通过执行第一预测图像和第二预测图像的加权相加来生成当前块的预测图像(步骤sx_6)。
[0729]
注意,虽然在图52a所示的示例中第一分区和第二分区为三角形,但第一分区和第二分区可以是梯形,或者彼此不同的其他形状。此外,虽然当前块在图52a和图52c所示的示例中包括两个分区,但当前块可以包括三个或更多个分区。
[0730]
此外,第一分区和第二分区可以彼此重叠。换句话说,第一分区和第二分区可以包括相同的像素区域。在这种情况下,可以使用第一分区中的预测图像和第二分区中的预测图像来生成当前块的预测图像。
[0731]
此外,虽然已经示出了使用帧间预测为两个分区中的每个分区生成预测图像的示例,但是可以使用帧内预测为至少一个分区生成预测图像。
[0732]
注意,用于选择第一mv的mv候选列表和用于选择第二mv的mv候选列表可以彼此不同,或者也可以将用于选择第一mv的mv候选列表作为用于选择第二mv的mv候选列表。
[0733]
注意,分区信息可以包括指示至少当前块被分割成多个分区的分割方向的索引。mv选择信息可以包括指示所选第一mv的索引和指示所选第二mv的索引。一个索引可以指示多条信息。例如,可以对共同指示分区信息的一部分或全部以及mv选择信息的一部分或全
部的一个索引进行编码。
[0734]
(mv推导》atmvp模式)
[0735]
图54是用于示出以子块为单位推导mv的高级时间运动向量预测(atmvp)模式的一个示例的概念图。
[0736]
atmvp模式是被分类为合并模式的模式。例如,在atmvp模式中,每个子块的mv候选被登记在mv候选列表中以用于常规合并模式。
[0737]
更具体地,在atmvp模式中,首先,如图54所示,在由相对于当前块位于左下位置的相邻块的mv(mv0)指定的编码参考图片中识别与当前块相关联的时间mv参考块。接下来,在当前块中的每个子块中,识别用于对时间mv参考块中的子块相对应的区域进行编码的mv。以这种方式识别的mv作为当前块中的子块的mv候选被包括在mv候选列表中。当从mv候选列表中选择每个子块的mv候选时,子块经历运动补偿,其中mv候选被用作子块的mv。以这种方式,生成了每个子块的预测图像。
[0738]
虽然在图54所示的示例中,相对于当前块位于左下位置处的块被用作周围mv参考块,但应注意可以使用另一块。另外,子块的尺寸可以是4
×
4像素、8
×
8像素或其他尺寸。子块的尺寸可以针对诸如切片、砖块、图片等的单位进行切换。
[0739]
(mv推导》dmvr)
[0740]
图55是示出在合并模式和解码器运动向量细化dmvr之间的关系的流程图。
[0741]
帧间预测器126根据合并模式推导当前块的运动向量(步骤s1_1)。接下来,帧间预测器126确定是否执行运动向量的估计,即运动估计(步骤s1_2)。这里,当确定不执行运动估计时(步骤s1_2中的否),帧间预测器126确定在步骤s1_1中推导的运动向量作为当前块的最终运动向量(步骤s1_4)。换句话说,在这种情况下,当前块的运动向量是根据合并模式确定的。
[0742]
当在步骤s1_1中确定执行运动估计时(步骤s1_2中的是),帧间预测器126通过估计由在步骤s1_1中推导的运动向量指定的参考图片的周围区域来推导当前块的最终运动向量(步骤s1_3)。换句话说,在这种情况下,当前块的运动向量是根据dmvr确定的。
[0743]
图56是用于示出用于确定mv的dmvr过程的一个示例的概念图。
[0744]
首先,例如在合并模式中,为当前块选择mv候选(l0和l1)。根据mv候选(l0)从作为l0列表中的编码图片的第一参考图片(l0)识别参考像素。同样地,根据mv候选(l1)从作为l1列表中的编码图片的第二参考图片(l1)中识别参考像素。通过计算这些参考像素的平均值来生成模板。
[0745]
接下来,使用模板估计第一参考图片(l0)和第二参考图片(l1)的mv候选的周围区域中的每一个,并且将产生最小成本的mv确定为最终mv。注意,可以例如使用在模板中的每个像素值与估计区域中的像素值中的对应像素值之间的差值、mv候选的值等来计算成本。
[0746]
并不总是需要执行此处描述的完全相同的过程。可以使用用于通过在mv候选的周围区域中的估计来实现最终mv的推导的其他过程。
[0747]
图57是用于示出确定mv的dmvr的另一示例的概念图。不同于图56中所示的dmvr的示例,在图57所示的示例中,成本被计算而不生成模板。
[0748]
首先,帧间预测器126基于作为从每个mv候选列表获得的mv候选的初始mv来估计包含于l0列表和l1列表中的每个参考图片中的参考块的周围区域。例如,如图57所示,与l0
表中参考块相对应的初始mv为initmv_l0,并且与l1列表中的参考块相对应的初始mv为initmv_l1。在运动估计中,帧间预测器126首先为l0列表中的参考图片设置搜索位置。基于由指示待设置的搜索位置的向量差所指示的位置(具体地,初始mv(即initmv_l0)),与搜索位置的向量差为mvd_l0。帧间预测器126然后确定l1列表中参考图片中的估计位置。该搜索位置由从初始mv所指示的位置(即initmv_l1)到搜索位置的向量差指示。更具体地,帧间预测器126通过镜像mvd_l0来确定向量差为mvd_l1。换句话说,帧间预测器126将相对于由初始mv指示的位置对称的位置确定为l0列表和l1列表中每个参考图片中的搜索位置。帧间预测器126为每个搜索位置计算在块中搜索位置处的像素值之间的绝对差(sad)的总和作为成本,并找出产生最小成本的搜索位置。
[0749]
图58a是用于示出dmvr中的运动估计的一个示例的概念图,并且图58b是示出运动估计的过程的一个示例的流程图。
[0750]
首先,在步骤1中,帧间预测器126计算在由初始mv指示的搜索位置(也称为起点)与八个周围搜索位置之间的成本。帧间预测器126然后确定除起点之外的每个搜索位置处的成本是否最小。这里,当确定除起点以外的搜索位置处的成本最小时,帧间预测器126将目标改变为获得最小成本的搜索位置,并执行步骤2中的过程。当起点处的成本最小时,帧间预测器126跳过步骤2中的过程并执行步骤3中的过程。
[0751]
在步骤2中,帧间预测器126执行与步骤1中的过程类似的搜索,根据步骤1中的过程的结果,将目标改变后的搜索位置视为新起点。然后帧间预测器126确定在除了起点之外的每个搜索位置处的成本是否最小。这里,当确定除起点之外的搜索位置处的成本最小时,帧间预测器126执行步骤4中的过程。当起点处的成本最小时,帧间预测器126执行步骤3中的过程。
[0752]
在步骤4中,帧间预测器126将起点处的搜索位置视为最终搜索位置,并将由初始mv指示的位置与最终搜索位置之间的差确定为向量差。
[0753]
在步骤3中,帧间预测器126基于相对于步骤1或步骤2中的起点位于上、下、左和右位置的四个点处的成本,来确定获得最小成本的子像素精度的像素位置,并将该像素位置视为最终搜索位置。通过使用四个搜索位置中的对应搜索位置处的成本作为权重,对上、下、左、右四个向量((0,1)、(0,-1)、(-1,0)、(1,0))中的每个向量执行加权相加,来确定子像素精度处的像素位置。帧间预测器126然后将在由初始mv指示的位置与最终搜索位置之间的差确定为向量差。
[0754]
(运动补偿》bio/obmc/lic)
[0755]
运动补偿涉及用于生成预测图像和校正预测图像的模式。模式例如是稍后描述的双向光流(bio)、重叠块运动补偿(obmc)、局部光照补偿(lic)等。
[0756]
图59是示出预测图像的生成过程的一个示例的流程图。
[0757]
帧间预测器126生成预测图像(步骤sm_1),并且例如根据例如上述模式中的任一个来校正预测图像(步骤sm_2)。
[0758]
图60是示出预测图像的生成过程的另一示例的流程图。
[0759]
帧间预测器126确定当前块的运动向量(步骤sn_1)。接下来,帧间预测器126使用运动向量生成预测图像(步骤sn_2),并确定是否执行校正过程(步骤sn_3)。这里,当确定执行校正过程时(步骤sn_3中的是),帧间预测器126通过校正预测图像来生成最终预测图像
(步骤sn_4)。注意,在后述的lic中,可以在步骤sn_4中校正亮度和色度。当确定不执行校正过程时(步骤sn_3中的否),帧间预测器126输出预测图像作为最终预测图像而不校正预测图像(步骤sn_5)。
[0760]
(运动补偿》obmc)
[0761]
注意,除了通过运动估计获得的当前块的运动信息之外,还可以使用相邻块的运动信息来生成帧间预测图像。更具体地,通过执行基于通过运动估计获得的运动信息的预测图像(在参考图片中)和基于相邻块的运动信息的预测图像(在当前图片中)的加权相加,可以为当前块中的每个子块生成帧间预测图像。这种帧间预测(运动补偿)也称为重叠块运动补偿(obmc)或obmc模式。
[0762]
在obmc模式中,可以在序列级别用信号通知指示obmc的子块尺寸的信息(例如,被称为obmc块尺寸)。此外,可以在cu级别用信号通知指示是否应用obmc模式的信息(例如,称为obmc标志)。注意,此类信息的信令并不一定需要在序列级别和cu级别执行,并且可以在另一级别(例如图片级别、切片级别、砖块级别、ctu级别或子块级别)执行。
[0763]
将更详细地描述obmc模式。图61和图62是用于示出由obmc执行的预测图像校正过程的概要的流程图和概念图。
[0764]
首先,如图62所示,使用指派给当前块的mv获得通过常规运动补偿的预测图像(pred)。在图62中,箭头“mv”指向参考图片,并指示当前图片的当前块为了获得预测图像而参考什么。
[0765]
接下来,通过将已经为当前块左侧相邻的编码块推导的运动向量(mv_l)应用于当前块(重新使用当前块的运动向量)来获得预测图像(pred_l)。运动向量(mv_l)由箭头“mv_l”指示,该箭头指示来自当前块的参考图片。通过重叠两个预测图像pred和pred_l来执行预测图像的第一校正。这提供了混合相邻块之间的边界的效果。
[0766]
同样地,通过将已经为与当前块上方相邻的编码块推导的mv(mv_u)应用于当前块(重新使用当前块的mv)来获得预测图像(pred_u)。mv(mv_u)由箭头“mv_u”指示,该箭头指示来自当前块的参考图片。通过将预测图像pred_u与已经执行了第一校正的预测图像(例如,pred和pred_l)重叠来执行预测图像的第二校正。这提供了混合相邻块之间的边界的效果。通过第二校正获得的预测图像是其中相邻块之间的边界已被混合(平滑)的图像,并且因此是当前块的最终预测图像。
[0767]
虽然上述示例是使用左侧和上部相邻块的双路校正方法,但注意,校正方法也可以是还使用右侧相邻块和/或下方相邻块的三路或更多路径校正方法。
[0768]
注意,执行这种重叠的区域可以只是块边界附近区域的一部分,而不是整个块的像素区域。
[0769]
注意,上面已经描述了根据obmc的用于通过重叠附加预测图像pred_l和pred_u从一个参考图片获得一个预测图像pred的预测图像校正过程。然而,当基于多个参考图像校正预测图像时,可以对多个参考图片中的每一个应用类似过程。在这种情况下,通过基于多个参考图片执行obmc图像校正,从相应参考图片获得校正后的预测图像之后,将获得的校正后的预测图像进一步重叠,以获得最终的预测图像。
[0770]
注意,在obmc中,当前块单元可以是pu,或者通过进一步分割pu获得的子块单元。
[0771]
用于确定是否应用obmc的方法的一个示例是用于使用指示是否应用obmc的信号
obmc_flag的方法。作为一个具体示例,编码器100可以确定当前块是否属于具有复杂运动的区域。编码器100在块属于具有复杂运动的区域时将obmc_flag设置为值“1”并在编码时应用obmc,并且在块不属于具有复杂运动的区域时将obmc_flag设置为值“0”并在不应用obmc的情况下对块进行编码。解码器200通过解码写入流中的obmc_flag而在obmc的应用和非应用之间切换。
[0772]
(运动补偿》bio)
[0773]
接下来,描述mv推导方法。首先,描述基于假设匀速直线运动的模型来推导mv的模式。这个模式也称为双向光流(bio)模式。另外,这个双向光流可以写成bdof而不是bio。
[0774]
图63是用于示出假设匀速直线运动的模型的概念图。在图63中,(v
x
,vy)表示速度向量,并且τ0和τ1表示在当前图片(cur pic)和两个参考图片(ref0,ref1)之间的时间距离。(mv
x0
,mv
y0
)表示与参考图片ref0相对应的mv,并且(mv
x1
,mv
y1
)表示与参考图片ref1相对应的mv。
[0775]
这里,在由速度向量(v
x
,vy)表现出匀速直线运动的假设下,(mv
x0
,mv
y0
)和(mv
x1
,mv
y1
)分别表示为(v
xτ0
,v
yτ0
)和(-v
xτ1
,-v
yτ1
),并给出以下光流等式(2)。
[0776]
[数学表达式3]
[0777]
这里,i(k)表示在运动补偿之后的参考图片k(k=0、1)的运动补偿的亮度值。该光流等式表
[0778][0779]
明以下各项之和为零:(i)亮度值的时间导数,(ii)水平速度与参考图像的空间梯度的水平分量的乘积,以及(iii)垂直速度与参考图像的空间梯度的垂直分量的乘积。基于光流等式和hermite插值的组合,可以以像素为单位校正从例如mv候选列表获得的每个块的运动向量。
[0780]
注意,可以在解码器侧200使用不同于基于假设均匀线性运动的模型来推导运动向量的方法来推导运动向量。例如,可以基于多个相邻块的运动向量以子块为单位推导运动向量。
[0781]
图64是示出根据bio的帧间预测过程的一个示例的流程图。图65是示出可根据bio执行帧间预测的帧间预测器126的功能配置的一个示例的功能框图。
[0782]
如图65所示,帧间预测器126包括例如存储器126a、内插图像推导器126b、梯度图像推导器126c、光流推导器126d、校正值推导器126e和预测图像校正器126f。注意,存储器126a可以是帧存储器122。
[0783]
帧间预测器126使用与包括当前块的图片(cur pic)不同的两个参考图片(ref0、ref1)推导两个运动向量(m0,m1)。然后,帧间预测器126使用两个运动向量(m0,m1)推导当前块的预测图像(步骤sy_1)。注意,运动向量m0是与参考图片ref0相对应的运动向量(mv
x0
,mv
y0
),并且运动向量m1是与参考图片ref1相对应的运动向量(mv
x1
,mv
y1
)。
[0784]
接下来,内插图像推导器126b通过参考存储器126a使用运动向量m0和参考图片l0推导当前块的内插图像i0。接下来,内插图像推导器126b通过参考存储器126a使用运动向量m1和参考图片l1推导当前块的内插图像i1(步骤sy_2)。这里,内插图像i0是包含于参考图片ref0中并且要针对当前块推导的图像,而内插图像i1是包含于参考图片ref1中并要针对当前块推导的图像。内插图像i0和内插图像i1中的每一个在尺寸上可以与当前块相同。替代
地,内插图像i0和内插图像i1中的每一个可以是大于当前块的图像。此外,内插图像i0和内插图像i1可以包括通过使用运动向量(m0,m1)和参考图片(l0,l1)并应用运动补偿滤波器而获得的预测图像。
[0785]
此外,梯度图像推导器126c从内插图像i0和内插图像i1推导当前块的梯度图像(ix0,ix1,iy0,iy1)(步骤sy_3)。注意,水平方向的梯度图像为(ix0,ix1),并且垂直方向的梯度图像为(iy0,iy1)。梯度图像推导器126c可以通过例如将梯度滤波器应用于内插图像来推导每个梯度图像。梯度图像可以指示像素值沿水平方向、沿垂直方向或两者的空间变化量。
[0786]
接下来,光流推导器126d使用内插图像(i0,i1)和梯度图像(ix0,ix1,iy0,iy1)为当前块的每个子块推导作为速度向量的光流(vx,vy)(步骤sy_4)。光流指示用于校正空间像素移动量的系数,并且可以称为局部运动估计值、校正运动向量或校正加权向量。作为一个示例,子块可以是4
×
4像素子cu。注意,光流推导可以针对每个像素单元等执行,而不是针对每个子块执行。
[0787]
接下来,帧间预测器126使用光流(vx,vy)校正当前块的预测图像。例如,校正值推导器126e使用光流(vx,vy)推导当前块中包括的像素值的校正值(步骤sy_5)。预测图像校正器126f然后使用校正值来校正当前块的预测图像(步骤sy_6)。注意,校正值可以以像素为单位推导,或者可以以多个像素为单位或以子块为单位推导。
[0788]
注意,bio过程流程不限于图64中公开的过程。例如,可以只执行图64中公开的过程的一部分,或者可以添加不同过程或使用不同过程作为替代,或者可以以不同的处理次序执行过程等。
[0789]
(运动补偿》lic)
[0790]
接下来,描述用于使用局部照明补偿(lic)过程生成预测图像(预测)的模式的一个示例。
[0791]
图66a是用于示出使用由lic执行的亮度校正过程的预测图像生成方法的过程的一个示例的概念图。图66b是示出使用lic的预测图像生成方法的过程的一个示例的流程图。
[0792]
首先,帧间预测器126从编码的参考图片推导mv,并获得对应于当前块的参考图像(步骤sz_1)。
[0793]
接下来,帧间预测器126针对当前块提取表示在当前块和参考图片之间亮度值如何改变的信息(步骤sz_2)。基于当前图片中编码的左相邻参考区域(周围参考区域)和编码的上相邻参考区域(周围参考区域)的亮度像素值,以及由推导出的mv指定的参考图片中的对应位置处的亮度像素值,来执行该提取。帧间预测器126使用指示亮度值如何改变的信息来计算亮度校正参数(步骤sz_3)。
[0794]
帧间预测器126通过执行亮度校正过程来生成当前块的预测图像,在该亮度校正过程中将亮度校正参数应用于由mv指定的参考图片中的参考图像(步骤sz_4)。换句话说,基于亮度校正参数对作为由mv指定的参考图片中的参考图像的预测图像进行校正。在该校正中,可以校正亮度,或者可以校正色度,或者两者。换句话说,可以使用指示色度如何改变的信息来计算色度校正参数,并且可以执行色度校正过程。
[0795]
注意,图66a中所示的周围参考区域的形状是一个示例;可以使用另一种形状。
[0796]
此外,虽然这里描述了根据单个参考图片生成预测图像的过程,但是可以以相同
方式描述根据多个参考图片生成预测图像的情况。可以在以与上述相同的方式对从参考图片获得的参考图像执行亮度校正过程之后生成预测图像。
[0797]
用于确定是否应用lic的方法的一个示例是使用作为指示是否应用lic的信号的lic_flag的方法。作为一个具体示例,编码器100确定当前块是否属于具有亮度变化的区域。当块属于具有亮度变化的区域时编码器100将lic_flag设置为值“1”并在编码时应用lic,并且当块不属于具有亮度变化的区域时将lic_flag设置为值“0”并在不应用lic的情况下执行编码。解码器200可通过根据标志值在lic的应用和非应用之间切换来解码写入流中的lic_flag并解码当前块。
[0798]
确定是否应用lic过程的不同方法的一个示例是根据是否已对周围块应用了lic过程的确定方法。作为一个特定示例,在当前块已经在合并模式中被处理时,帧间预测器126确定在合并模式下的mv推导中选择的编码的周围块是否已经使用lic进行了编码。帧间预测器126通过根据结果在lic的应用和非应用之间切换来执行编码。注意,也在该示例中,在解码器200侧的过程中应用相同的过程。
[0799]
亮度校正(lic)过程已经参考图66a和图66b进行了描述,并在下面进一步描述。
[0800]
首先,帧间预测器126从作为编码的图片的参考图片推导用于获得与待编码的当前块相对应的参考图像的mv。
[0801]
接下来,帧间预测器126使用与当前块的左侧和上方相邻的编码的周围参考区域的亮度像素值和在由mv指定的参考图片的对应位置中的亮度值,来提取指示参考图片的亮度值如何改变为当前图片的亮度值的信息,并计算亮度校正参数。例如,假设当前图片中周围参考区域中给定像素的亮度像素值为p0,并且参考图片中周围参考区域中给定像素所对应的像素的亮度像素值是p1。帧间预测器126计算用于优化a
×
p1 b=p0的系数a和b,作为周围参考区域中的多个像素的亮度校正参数。
[0802]
接下来,帧间预测器126使用由mv指定的参考图片中的参考图像的亮度校正参数执行亮度校正过程,以生成当前块的预测图像。例如,假设参考图像中的亮度像素值为p2,并且预测图像的亮度校正后的亮度像素值为p3。帧间预测器126通过针对参考图像中的每个像素计算a
×
p2 b=p3,在经历亮度校正过程之后生成预测图像。
[0803]
例如,具有从上部相邻像素和左侧相邻像素中的每一个提取的确定数量的像素的区域可以用作周围参考区域。另外,周围参考区域不限于与当前块相邻的区域,并且可以是不与当前块相邻的区域。在图66a所示的示例中,参考图片中的周围参考区域可以是从当前图片中的周围参考区域中由当前图片中的另一mv指定的区域。例如,另一mv可以是当前图片中的周围参考区域中的mv。
[0804]
虽然这里已经描述了由编码器100执行的操作,但是要注意解码器200执行类似的操作。
[0805]
注意,lic不仅可以应用于亮度,还可以应用于色度。此时,可以针对y、cb和cr中的每一个单独推导校正参数,或者可以对y、cb和cr中的任何一个使用共同的校正参数。
[0806]
此外,可以以子块为单位应用lic过程。例如,可以使用当前子块中的周围参考区域和由当前子块的mv指定的参考图片中的参考子块中的周围参考区域来推导校正参数。
[0807]
(预测控制器)
[0808]
预测控制器128选择帧内预测信号(从帧内预测器124输出的图像或信号)和帧间
预测信号(从帧间预测器126输出的图像或信号)之一,并将所选的预测图像输出到减法器104和加法器116作为预测信号。
[0809]
(预测参数生成器)
[0810]
预测参数生成器130可以将与帧内预测、帧间预测、预测控制器128中预测图像的选择等相关的信息作为预测参数输出到熵编码器110。熵编码器110可以基于从预测参数生成器130输入的预测参数和从量化器108输入的经量化的系数来生成流。预测参数可以在解码器200中使用。解码器200可以接收和解码流,并且执行与由帧内预测器124、帧间预测器126和预测控制器128执行的预测过程相同的过程。预测参数可以包括,例如,(i)选择预测信号(例如,由帧内预测器124或帧间预测器126使用的mv、预测类型或预测模式),或(ii)基于在帧内预测器124、帧间预测器126和预测控制器128的每一个中执行的预测过程或指示预测过程的可选索引、标志或值。
[0811]
(解码器)
[0812]
接下来,描述能够对从上述编码器100输出的流进行解码的解码器200。图67是示出根据本实施例的解码器200的功能结构的框图。解码器200是以块为单位对作为编码的图像的流进行解码的装置。
[0813]
如图67所示,解码器200包括熵解码器202、逆量化器204、逆变换器206、加法器208、块存储器210、环路滤波器212、帧存储器214、帧内预测器216、帧间预测器218、预测控制器220、预测参数生成器222和分割确定器224。注意,帧内预测器216和帧间预测器218被配置为预测执行器的一部分。
[0814]
(解码器的安装示例)
[0815]
图68是示出解码器200的安装示例的功能框图。解码器200包括处理器b1和存储器b2。例如,图67所示的解码器200的多个构成元素安装在图68所示的处理器b1和存储器b2上。
[0816]
处理器b1是执行信息处理并耦合到存储器b2的电路。例如,处理器b1是对流进行解码的专用或通用电子电路。处理器b1可以是诸如cpu之类的处理器。此外,处理器b1可以是多个电子电路的集合体。另外,例如,处理器b1可以承担图67所示的解码器200的多个构成元素中除了用于存储信息的构成元素以外的两个或更多个构成元素的角色等。
[0817]
存储器b2是用于存储由处理器b1用来解码流的信息的专用或通用存储器。存储器b2可以是电子电路,并且可以连接到处理器b1。此外,存储器b2可以包含于处理器b1中。此外,存储器b2可以是多个电子电路的集合体。另外,存储器b2可以是磁盘、光盘等,或者可以表示为存储装置、记录介质等。此外,存储器b2可以是非易失性存储器或易失性存储器。
[0818]
例如,存储器b2可以存储图像或流。另外,存储器b2可以存储用于使处理器b1对流进行解码的程序。
[0819]
此外,例如,存储器b2可以充当图67等中所示的解码器200的多个构成元素中用于存储信息的两个或更多个构成元素的角色。更具体地,存储器b2可以充当图67所示的块存储器210和帧存储器214的角色。更具体地,存储器b2可以存储重构图像(具体地,重构块、重构图片等)。
[0820]
注意,在解码器200中,并非图67中所示的多个构成元素的所有元素都可以被实现,并且并非本文描述的所有过程都可以被执行。图67所示的构成元素的一部分等可以包
含于另一设备中,或者本文描述的部分过程可以由另一设备执行。
[0821]
在下文中,描述了由解码器200执行的过程的整体流程,然后将描述解码器200中包括的每个构成元素。注意,解码器200中包括的一些构成元素执行与编码器100中的一些所执行的过程相同的过程,因此相同的过程不再重复详细描述。例如,解码器200中包括的逆量化器204、逆变换器206、加法器208、块存储器210、帧存储器214、帧内预测器216、帧间预测器218、预测控制器220和环路滤波器212分别执行与解码器200中包括的逆量化器112、逆变换器114、加法器116、块存储器118、帧存储器122、帧内预测器124、帧间预测器126、预测控制器128和环路滤波器120所执行的过程类似的过程。
[0822]
(解码过程的整体流程)
[0823]
图69是示出由解码器200执行的整体解码过程的一个示例的流程图。
[0824]
首先,解码器200中的分割确定器224基于从熵解码器202输入的参数来确定图片中包括的多个固定尺寸块(例如,128
×
128像素)中的每一个的分割模式(步骤sp_1)。该分割模式是由编码器100选择的分割模式。解码器200然后针对分割模式的多个块中的每个块执行步骤sp_2至sp_6的过程。
[0825]
熵解码器202解码(具体地,熵解码)编码的经量化的系数和当前块的预测参数(步骤sp_2)。
[0826]
接下来,逆量化器204对多个经量化的系数执行逆量化,并且逆变换器206对结果执行逆变换,以恢复预测残差(即,差块)(步骤sp_3)。
[0827]
接下来,包括帧内预测器216、帧间预测器218和预测控制器220中的所有或部分的预测执行器生成当前块的预测信号(步骤sp_4)。
[0828]
接下来,加法器208将预测图像与预测残差相加以生成当前块的重构图像(也称为解码的图像块)(步骤sp_5)。
[0829]
当生成重构图像时,环路滤波器212执行重构图像的滤波(步骤sp_6)。
[0830]
解码器200然后确定整个图片的解码是否已经结束(步骤sp_7)。当确定解码尚未结束时(步骤sp_7中的否),解码器200重复从步骤sp_1开始的过程。
[0831]
注意,这些步骤sp_1至sp_7的过程可以由解码器200顺序执行,或者可以并行执行两个或更多个过程。可以修改两个或更多个过程的处理次序。
[0832]
(分割确定器)
[0833]
图70是用于示出实施例中在分割确定器224和其他构成元素之间的关系的概念图。作为示例,分割确定器224可以执行以下过程。
[0834]
例如,分割确定器224从块存储器210或帧存储器214收集块信息,并且进一步从熵解码器202获得参数。然后分割确定器224可以基于块信息和参数来确定固定尺寸块的分割模式。分割确定器224然后可以将指示确定的分割模式的信息输出到逆变换器206、帧内预测器216和帧间预测器218。逆变换器206可以基于由来自分割确定器224的信息指示的分割模式来执行变换系数的逆变换。帧内预测器216和帧间预测器218可以基于来自分割确定器224的信息所指示的分割模式来生成预测图像。
[0835]
(熵解码器)
[0836]
图71是示出熵解码器202的功能配置的一个示例的框图。
[0837]
熵解码器202通过对流进行熵解码来生成经量化的系数、预测参数以及与分割模
式相关的参数。例如,cabac用于熵解码。更具体地,熵解码202包括例如二进制算术解码器202a、上下文控制器202b和去二值化器202c。二进制算术解码器202a使用由上下文控制器202b推导的上下文值将流算术地解码为二进制信号。上下文控制器202b以与编码器100的上下文控制器110b所执行的相同方式,根据句法元素的特征或周围状态(即,二进制信号的出现概率)来推导上下文值。去二值化器202c执行去二值化以将从二进制算术解码器202a输出的二进制信号变换为指示经量化的系数的多级信号,如上所述。该二值化可以根据上述二值化方法执行。
[0838]
这样,熵解码器202将每个块的经量化的系数输出到逆量化器204。熵解码器202可以将流(见图1)中包括的预测参数输出到帧内预测器216、帧间预测器218和预测控制器220。帧内预测器216、帧间预测器218和预测控制器220能够执行与由编码器100侧的帧内预测器124、帧间预测器126和预测控制器128执行的预测过程相同的预测过程。
[0839]
图72是用于示出熵解码器202中的示例性cabac过程的流程的概念图。
[0840]
首先,在熵解码器202中的cabac中执行初始化。在初始化中,执行二进制算术解码器202a中的初始化和初始上下文值的设置。二进制算术解码器202a和去二值化器202c然后执行例如ctu的编码数据的算术解码和去二值化。此时,上下文控制器202b在每次执行算术解码时更新上下文值。上下文控制器202b然后保存上下文值作为后处理。例如,保存的上下文值用于初始化下一ctu的上下文值。
[0841]
(逆量化器)
[0842]
逆量化器204逆量化从熵解码器202输入的当前块的经量化的系数。更具体地,逆量化器204基于与经量化的系数相对应的量化参数来逆量化当前块的经量化的系数。逆量化器204然后将当前块的逆量化变换系数(即变换系数)输出到逆变换器206。
[0843]
图73是示出逆量化器204的功能配置的一个示例的框图。
[0844]
逆量化器204包括例如量化参数生成器204a、预测的量化参数生成器204b、量化参数存储装置204d和逆量化执行器204e。
[0845]
图74是示出由逆量化器204执行的逆量化过程的一个示例的流程图。
[0846]
逆量化器204可以基于图74所示的流程为每个cu执行逆量化过程作为一个示例。更具体地,量化参数生成器204a确定是否执行逆量化(步骤sv_11)。这里,当确定执行逆量化时(步骤sv_11中的是),量化参数生成器204a从熵解码器202获得当前块的差量化参数(步骤sv_12)。
[0847]
接下来,预测量化参数生成器204b从量化参数存储装置204d获得与当前块不同的处理单位的量化参数(步骤sv_13)。预测量化参数生成器204b基于获得的量化参数来生成当前块的预测量化参数(步骤sv_14)。
[0848]
量化参数生成器204a然后基于从熵解码器202获得的当前块的差量化参数和由预测量化参数生成器204b生成的当前块的预测量化参数,来生成当前块的量化参数(步骤sv_15)。例如,可以将从熵解码器202获得的当前块的差量化参数和由预测量化参数生成器204b生成的当前块的预测量化参数相加在一起以生成当前块的量化参数。此外,量化参数生成器204a将当前块的量化参数存储在量化参数存储装置204d中(步骤sv_16)。
[0849]
接下来,逆量化执行器204e使用在步骤sv_15中生成的量化参数,将当前块的经量化的系数逆量化为变换系数(步骤sv_17)。
[0850]
注意,差量化参数可以在比特序列级别、图片级别、切片级别、砖块级别或ctu级别进行解码。另外,量化参数的初始值可以在序列级别、图片级别、切片级别、砖块级别或ctu级别进行解码。此时,可以使用量化参数的初始值和差量化参数来生成量化参数。
[0851]
注意,逆量化器204可以包括多个逆量化器,并且可以使用从多个逆量化方法中选择的逆量化方法来逆量化经量化的系数。
[0852]
(逆变换器)
[0853]
逆变换器206通过逆变换作为来自逆量化器204的输入的变换系数来恢复预测残差。
[0854]
例如,当从流解析的信息指示将应用emt或amt时(例如,当amt标志为真时),逆变换器206基于指示解析的变换类型的信息对当前块的变换系数进行逆变换。
[0855]
此外,例如,当从流解析的信息指示要应用nsst时,逆变换器206对变换系数应用二次逆变换(secondary inverse transform)。
[0856]
图75是示出由逆变换器206执行的过程的一个示例的流程图。
[0857]
例如,逆变换器206确定流中是否存在指示没有执行正交变换的信息(步骤st_11)。这里,当确定不存在这样的信息时(步骤st_11中的否)(例如:不存在关于是否执行正交变换的任何指示;存在将执行正交变换的指示);逆变换器206获得指示由熵解码器202解码的变换类型的信息(步骤st_12)。接下来,基于该信息,逆变换器206确定用于编码器100中的正交变换的变换类型(步骤st_13)。逆变换器206然后使用确定的变换类型执行逆正交变换(步骤st_14)。如图75所示,当确定存在指示没有执行正交变换的信息时(步骤st_11中的是)(例如,没有执行正交变换的明确指示;不存在执行正交变换的指示),不执行正交变换。
[0858]
图76是示出由逆变换器206执行的过程的一个示例的流程图。
[0859]
例如,逆变换器206确定变换尺寸是否小于或等于确定值(步骤su_11)。确定值可以是预先确定的。这里,当确定变换尺寸小于或等于确定值时(步骤su_11中的是),逆变换器206从熵解码器202获得指示编码器100在包含于第一变换类型组中的至少一个变换类型之中使用了哪种变换类型的信息(步骤su_12)。注意,这样的信息由熵解码器202解码并输出到逆变换器206。
[0860]
基于该信息,逆变换器206确定用于编码器100中的正交变换的变换类型(步骤su_13)。逆变换器206然后使用确定的变换类型对当前块的变换系数执行逆正交变换(步骤su_14)。当确定变换尺寸不小于或等于确定值时(步骤su_11中的否),逆变换器206使用第二变换类型组对当前块的变换系数执行逆变换(步骤su_15)。
[0861]
注意,作为一个示例,逆变换器206的逆正交变换可以根据图75或图76所示的流程针对每个tu来执行。此外,可以通过使用定义的变换类型而不解码指示用于正交变换的变换类型的信息来执行逆正交变换。定义的变换类型可以是预定义的变换类型或默认的变换类型。另外,变换类型具体可以是dst7、dct8等。在逆正交变换中,使用对应于变换类型的逆变换基函数。
[0862]
(加法器)
[0863]
加法器208通过将作为来自逆变换器206的输入的预测残差和作为来自预测控制器220的输入的预测残差相加来重构当前块。换句话说,生成当前块的重构图像。加法器208
然后将当前块的重构图像输出到块存储器210和环路滤波器212。
[0864]
(块存储器)
[0865]
块存储器210是用于存储包含于当前图片中并且可以在帧内预测中参考的块的存储装置。更具体地,块存储器210存储从加法器208输出的重构图像。
[0866]
(环路滤波器)
[0867]
环路滤波器212将环路滤波器应用于由加法器208生成的重构图像,并将滤波的重构图像输出到帧存储器214,并提供解码器200的输出,例如,并输出到显示设备等。
[0868]
当从流中解析出的指示alf的开启或关闭的信息指示alf开启时,可以例如基于局部梯度的方向和活动从多个滤波器中选择一个滤波器,并且所选滤波器被应用于重构图像。
[0869]
图77是示出环路滤波器212的功能配置的一个示例的框图。注意,环路滤波器212的配置类似于编码器100的环路滤波器120的配置。
[0870]
例如,如图77所示,环路滤波器212包括解块滤波执行器212a、sao执行器212b和alf执行器212c。解块滤波执行器212a对重构图像执行解块滤波过程。sao执行器212b在经过解块滤波过程之后对重构图像执行sao过程。alf执行器212c在经过sao过程之后对重构图像执行alf过程。注意,环路滤波器212并不总是需要包括图77中公开的所有构成元素,并且可以仅包括构成元素的一部分。此外,环路滤波器212可以被配置为以与图77中公开的处理次序不同的处理次序来执行上述过程,可以不执行图77中所示的所有过程,等等。
[0871]
(帧存储器)
[0872]
帧存储器214例如是用于存储用于帧间预测中的参考图片的存储装置,并且也可以被称为帧缓冲器。更具体地,帧存储器214存储由环路滤波器212滤波的重构图像。
[0873]
(预测器(帧内预测器、帧间预测器、预测控制器))
[0874]
图78是示出由解码器200的预测器执行的过程的一个示例的流程图。注意,预测执行器可以包括以下构成元素的全部或部分:帧内预测器216;帧间预测器218;以及预测控制器220。预测执行器包括例如帧内预测器216和帧间预测器218。
[0875]
预测器生成当前块的预测图像(步骤sq_1)。该预测图像也称为预测信号或预测块。注意,预测信号例如是帧内预测信号或帧间预测信号。更具体地,预测器使用已经通过预测图像的生成、预测残差的恢复和预测图像的相加针对另一块获得的重构图像来生成当前块的预测图像。解码器200的预测器生成与编码器100的预测器生成的预测图像相同的预测图像。换句话说,根据预测器之间共同的方法或相互对应的方法生成预测图像。
[0876]
重构图像例如可以是参考图片中的图像,或者是作为包括当前块的图片的当前图片中的解码块(即,上述其他块)的图像。当前图片中的解码块例如是当前块的相邻块。
[0877]
图79是示出由解码器200的预测器执行的过程的另一示例的流程图。
[0878]
预测器确定用于生成预测图像的方法或模式(步骤sr_1)。例如,可以基于例如预测参数等来确定方法或模式。
[0879]
当确定第一方法作为用于生成预测图像的模式时,预测器根据第一方法生成预测图像(步骤sr_2a)。当确定第二方法作为用于生成预测图像的模式时,预测器根据第二方法生成预测图像(步骤sr_2b)。当确定第三方法作为用于生成预测图像的模式时,预测器根据第三方法生成预测图像(步骤sr_2c)。
[0880]
第一方法、第二方法和第三方法可以是相互不同的用于生成预测图像的方法。第一方法至第三方法中的每一种方法可以是帧间预测方法、帧内预测方法或另一种预测方法。在这些预测方法中可以使用上述重构图像。
[0881]
图80a到图80c(统称为图80)是示出由解码器200的预测器执行的过程的另一示例的流程图。
[0882]
预测器可以根据图80所示的流程执行预测过程,作为一个示例。注意,图80所示的帧内块复制是属于帧间预测的一个模式,并且其中包含于当前图片中的块被称为参考图像或参考块。换句话说,在帧内块复制中不参考与当前图片不同的图片。另外,图80所示的pcm模式是属于帧内预测的一个模式,并且其中不执行变换和量化。
[0883]
(帧内预测器)
[0884]
帧内预测器216通过参考存储在块存储器210中的当前图片中的块,基于从流中解析出的帧内预测模式来执行帧内预测,以生成当前块(即,帧内预测块)的预测图像。更具体地,帧内预测器216通过参考与当前块相邻的一个或多个块的像素值(例如,亮度和/或色度值)来执行帧内预测以生成帧内预测图像,然后将帧内预测图像输出到预测控制器220。
[0885]
注意,当选择其中在色度块的帧内预测中参考亮度块的帧内预测模式时,帧内预测器216可以基于当前块的亮度分量来预测当前块的色度分量。
[0886]
此外,当从流解析的信息指示将应用pdpc时,帧内预测器216基于水平/垂直参考像素梯度来校正帧内预测的像素值。
[0887]
图81是示出由解码器200的帧内预测器216执行的过程的一个示例的图。
[0888]
帧内预测器216首先确定是否要采用mpm。如图81所示,帧内预测器216确定指示1的mpm标志是否存在于流中(步骤sw_11)。这里,当确定存在指示1的mpm标志时(步骤sw_11中的是),帧内预测器216从熵解码器202获得指示mpm之中在编码器100中选择的帧内预测模式的信息。注意,这种信息由熵解码器202解码并被输出到帧内预测器216。接下来,帧内预测器216确定mpm(步骤sw_13)。mpm包括例如六个帧内预测模式。帧内预测器216然后确定帧内预测模式(步骤sw_14),所述帧内预测模式包含于mpm中包括的多个帧内预测模式中并由在步骤sw_12中获得的信息指示。
[0889]
当确定不存在指示1的mpm标志时(步骤sw_11中的否),帧内预测器216获得指示在编码器100中选择的帧内预测模式的信息(步骤sw_15)。换句话说,帧内预测器216从熵解码器202获得指示在编码器100中从未包含于mpm中的至少一个帧内预测模式中选择的帧内预测模式的信息。注意,这种信息由熵解码器202解码并被输出到帧内预测器216。然后,帧内预测器216确定帧内预测模式(步骤sw_17),所述帧内预测模式不包含于mpm中包括的多个帧内预测模式中并且由在步骤sw_15中获得的信息指示。
[0890]
帧内预测器216根据在步骤sw_14或步骤sw_17中确定的帧内预测模式生成预测图像(步骤sw_18)。
[0891]
(帧间预测器)
[0892]
帧间预测器218通过参考存储在帧存储器214中的参考图片来预测当前块。以当前块或当前块中的当前子块为单位执行预测。注意,子块被包括在块中,并且是比块小的单位。子块的尺寸可以是4
×
4像素、8
×
8像素或其他尺寸。子块的尺寸可以以诸如切片、砖块、图片等为单位进行切换。
[0893]
例如,帧间预测器218通过使用从流(例如,从熵解码器202输出的预测参数)解析的运动信息(例如,mv)执行运动补偿来生成当前块或当前子块的帧间预测图像,并将帧间预测图像输出到预测控制器220。
[0894]
当从流解析的信息指示要应用obmc模式时,除了通过运动估计获得的当前块的运动信息之外,帧间预测器218还使用相邻块的运动信息来生成帧间预测图像。
[0895]
此外,当从流解析的信息指示要应用fruc模式时,帧间预测器218通过根据从流解析的模式匹配方法(例如,双边匹配或模板匹配)执行运动估计来推导运动信息。帧间预测器218然后使用推导出的运动信息执行运动补偿(预测)。
[0896]
此外,当要应用bio模式时,帧间预测器218基于假设均匀线性运动的模型来推导mv。此外,当从流解析的信息指示要应用仿射模式时,帧间预测器218基于多个相邻块的mv来推导每个子块的mv。
[0897]
(mv推导流程)
[0898]
图82是示出解码器200中mv推导过程的一个示例的流程图。
[0899]
例如,帧间预测器218确定是否解码运动信息(例如,mv)。例如,帧间预测器218可以根据流中包括的预测模式进行确定,或者可以基于流中包括的其他信息进行确定。这里,当确定解码运动信息时,帧间预测器218在对运动信息进行解码的模式中推导当前块的mv。当确定不解码运动信息时,帧间预测器218在不对运动信息进行解码的模式中推导mv。
[0900]
这里,mv推导模式包括稍后描述的常规帧间模式、常规合并模式、fruc模式、仿射模式等。模式中对运动信息进行解码的模式包括常规帧间模式、常规合并模式、仿射模式(具体为仿射帧间模式和仿射合并模式)等。注意,运动信息可以不仅包括mv,还包括后面描述的mv预测器选择信息。不解码运动信息的模式包括fruc模式等。帧间预测器218从多个模式中选择用于推导当前块的mv的模式,并使用所选模式推导当前块的mv。
[0901]
图83是示出解码器200中mv推导的过程的一个示例的流程图。
[0902]
例如,帧间预测器218可以确定是否对mv差进行解码,即例如可以根据包含于流中的预测模式来做出确定,或者可以基于包含于流中的其他信息来做出确定。这里,当确定对mv差进行解码时,帧间预测器218可以在对mv差进行解码的模式中推导当前块的mv。在这种情况下,例如,包含于流中的mv差被解码为预测参数。
[0903]
当确定不对任何mv差进行解码时,帧间预测器218在不对mv差进行解码的模式下推导mv。在这种情况下,流中不包括编码的mv差。
[0904]
这里,如上所述,mv推导模式包括后面描述的常规帧间模式、常规合并模式、fruc模式、仿射模式等。模式中对mv差进行编码的模式包括常规帧间模式和仿射模式(具体为仿射帧间模式)等。不对mv差进行编码的模式包括fruc模式、常规合并模式、仿射模式(具体为仿射合并模式)等。帧间预测器218从多个模式中选择用于推导当前块的mv的模式,并使用所选模式推导当前块的mv。
[0905]
(mv推导》常规帧间模式)
[0906]
例如,当从流解析的信息指示要应用常规帧间模式时,帧间预测器218基于从流解析的信息推导mv并使用mv执行运动补偿(预测)。
[0907]
图84是示出在解码器200中通过常规帧间模式进行帧间预测的过程的示例的流程图。
[0908]
解码器200的帧间预测器218为每个块执行运动补偿。首先,帧间预测器218基于诸如时间上或空间上围绕当前块的多个解码块的mv之类的信息来获得当前块的多个mv候选(步骤sg_11)。换句话说,帧间预测器218生成mv候选列表。
[0909]
接下来,帧间预测器218根据优先级次序中的所确定的排名从在步骤sg_11中获得的多个mv候选中提取n个(2或更大的整数)mv候选作为运动向量预测器候选(也称为mv预测器候选)(步骤sg_12)。注意,可以针对相应的n个mv预测器候选提前确定优先级次序中的排名,并且该排名可以是预先确定的。
[0910]
接下来,帧间预测器218从输入流中解码mv预测器选择信息,并使用解码后的mv预测器选择信息从n个mv预测器候选中选择一个mv预测器候选作为当前块的mv预测器(步骤sg_13)。
[0911]
接下来,帧间预测器218从输入流解码mv差,并且通过将作为解码的mv差的差值与所选的mv预测器相加来推导当前块的mv(步骤sg_14)。
[0912]
最后,帧间预测器218通过使用推导的mv和解码的参考图片执行当前块的运动补偿来生成当前块的预测图像(步骤sg_15)。对每个块执行步骤sg_11至sg_15中的过程。例如,当对切片中的所有块中的每个块执行步骤sg_11至sg_15中的过程时,使用常规帧间模式的切片的帧间预测结束。例如,当对图片中的所有块中的每个块执行步骤sg_11至sg_15中的过程时,使用常规帧间模式的图片的帧间预测结束。注意,并不是切片中包括的所有块都经历步骤sg_11至sg_15中的过程,并且当部分块经历过程时,使用常规帧间模式的切片的帧间预测可以结束。这也适用于步骤sg_11至sg_15中的图片。当对图片中的部分块执行过程时,使用常规帧间模式的图片的帧间预测可以结束。
[0913]
(mv推导》常规合并模式)
[0914]
例如,当从流解析的信息指示要应用常规合并模式时,帧间预测器218推导mv并使用mv执行运动补偿(预测)。
[0915]
图85是示出解码器200中通过常规合并模式进行帧间预测的过程的示例的流程图。
[0916]
首先,帧间预测器218基于诸如时间上或空间上围绕当前块的多个解码块的mv之类的信息来获得当前块的多个mv候选(步骤sh_11)。换句话说,帧间预测器218生成mv候选列表。
[0917]
接下来,帧间预测器218从在步骤sh_11中获得的多个mv候选中选择一个mv候选,推导当前块的mv(步骤sh_12)。更具体地,帧间预测器218获得作为预测参数包括在流中的mv选择信息,并且选择由mv选择信息识别的mv候选作为当前块的mv。
[0918]
最后,帧间预测器218通过使用推导的mv和解码的参考图片执行当前块的运动补偿来生成当前块的预测图像(步骤sh_13)。例如,对每个块执行步骤sh_11至sh_13中的过程。例如,当对切片中的所有块中的每个块执行步骤sh_11至sh_13中的过程时,使用常规合并模式的切片的帧间预测结束。另外,当对图片中的所有块中的每个块执行步骤sh_11至sh_13中的过程时,使用常规合并模式的图片的帧间预测结束。注意,并不是所有被包括在切片中的块都经历步骤sh_11至sh_13的过程,并且当部分块经历过程时,使用常规合并模式的切片的帧间预测可以结束。这也适用于步骤sh_11至sh_13中的图片。当对图片中的部分块执行过程时,使用常规合并模式的图片的帧间预测可以结束。
[0919]
(mv推导》fruc模式)
[0920]
例如,当从流解析的信息指示将应用fruc模式时,帧间预测器218在fruc模式中推导mv并使用mv执行运动补偿(预测)。在这种情况下,运动信息是在解码器200侧推导的,而没有从编码器100侧用信号通知。例如,解码器200可以通过执行运动估计来推导运动信息。在这种情况下,解码器200在不使用当前块中的任何像素值的情况下执行运动估计。
[0921]
图86是示出在解码器200中通过fruc模式进行帧间预测的过程的示例的流程图。
[0922]
首先,帧间预测器218通过参考mv来生成指示空间或时间上与当前块相邻的解码块的mv的列表作为mv候选(该列表是mv候选列表,并且例如也可以用作常规合并模式的mv候选列表(步骤si_11)。接下来,从mv候选列表中登记的多个mv候选中选择最佳mv候选(步骤si_12)。例如,帧间预测器218计算mv候选列表中包括的每个mv候选的评估值,并基于评估值选择mv候选之一作为最佳mv候选。基于所选的最佳mv候选,帧间预测器218然后推导当前块的mv(步骤si_14)。更具体地,例如,直接推导所选的最佳候选mv作为当前块的mv。另外,例如,使用包含于参考图片中并与所选最佳mv候选相对应的位置的周围区域中的模式匹配来推导当前块的mv。换句话说,可以在最佳mv候选的周围区域中执行使用参考图片中的模式匹配和评估值的估计,并且当存在产生更好评估值的mv时,可以将最佳mv候选更新为产生更好评估值的mv,并且更新后的mv可以被确定为当前块的最终mv。在实施例中,可以不执行对产生更好评估值的mv的更新。
[0923]
最后,帧间预测器218通过使用推导的mv和解码的参考图片执行当前块的运动补偿来生成当前块的预测图像(步骤si_15)。例如,对每个块执行步骤si_11至si_15中的过程。例如,当对切片中的所有块中的每个块执行步骤si_11至si_15中的过程时,使用fruc模式的切片的帧间预测结束。例如,当对图片中的所有块中的每个块执行步骤si_11至si_15中的过程时,使用fruc模式的图片的帧间预测结束。可以类似于每个块的情况来处理每个子块。
[0924]
(mv推导》fruc模式)
[0925]
例如,当从流解析的信息指示要应用仿射合并模式时,帧间预测器218在仿射合并模式中推导mv并使用mv执行运动补偿(预测)。
[0926]
图87是示出在解码器200中通过仿射合并模式的帧间预测的过程的示例的流程图。
[0927]
在仿射合并模式中,首先,帧间预测器218推导当前块的相应控制点处的mv(步骤sk_11)。如图46a所示,控制点是当前块的左上角点和当前块的右上角点,或者如图46b所示,是当前块的左上角点、当前块的右上角点和当前块的左下角点。
[0928]
例如,当使用图47a至47c所示的mv推导方法时,如图47a所示,帧间预测器218按该次序检查解码的块a(左)、块b(上)、块c(右上)、块d(左下)和块e(左上),并识别根据仿射模式解码的第一有效块。帧间预测器218使用根据仿射模式解码的识别出的第一有效块来推导控制点处的mv。例如,当块a被识别并且块a具有两个控制点时,如图47b所示,帧间预测器218根据包括块a的解码块的左上角和右上角处的运动向量v3和v4来计算当前块的左上角控制点处的运动向量v0和当前块的右上角控制点处的运动向量v1。以这种方式,推导出每个控制点处的mv。
[0929]
注意,如图49a所示,当块a被识别并且块a具有两个控制点时,可以计算三个控制
点处的mv,并且如图49b所示,当块a被识别并且当块a具有三个控制点时,可以计算两个控制点处的mv。
[0930]
此外,当mv选择信息作为预测参数包含于流中时,帧间预测器218可以使用mv选择信息来推导当前块的每个控制点处的mv。
[0931]
接下来,帧间预测器218对当前块中包括的多个子块中的每个块执行运动补偿。换句话说,帧间预测器218使用两个运动向量v0和v1以及上述表达式(1a)或者三个运动向量v0、v1和v2以及上述表达式(1b)来计算多个子块中的每一个的mv作为仿射mv(步骤sk_12)。帧间预测器218然后使用这些仿射mv和解码的参考图片来执行子块的运动补偿(步骤sk_13)。当针对包含于当前块中的所有子块中的每一个执行步骤sk_12和sk_13中的过程时,使用当前块的仿射合并模式的帧间预测结束。换句话说,执行当前块的运动补偿以生成当前块的预测图像。
[0932]
注意,上述mv候选列表可以在步骤sk_11中生成。mv候选列表可以是例如包括使用用于每个控制点的多个mv推导方法推导的mv候选的列表。多个mv推导方法可以是例如图47a至图47c中所示的mv推导方法、图48a和图48b所示的mv推导方法、图49a和图49b中所示的mv推导方法以及其他mv推导方法的任意组合。
[0933]
注意,除了仿射模式之外,mv候选列表可以包括以子块为单位执行预测的模式中的mv候选。
[0934]
注意,例如,可以生成包括使用两个控制点的仿射合并模式和使用三个控制点的仿射合并模式中的mv候选的mv候选列表,作为mv候选列表。替代地,可以单独地生成包括使用两个控制点的仿射合并模式中的mv候选的mv候选列表和包括使用三个控制点的仿射合并模式中的mv候选的mv候选列表。替代地,可以生成包括使用两个控制点的仿射合并模式和使用三个控制点的仿射合并模式之一中的mv候选的mv候选列表。
[0935]
(mv推导》仿射帧间模式)
[0936]
例如,当从流解析的信息指示将应用仿射帧间模式时,帧间预测器218在仿射帧间模式中推导mv并使用mv执行运动补偿(预测)。
[0937]
图88是示出在解码器200中通过仿射帧间模式的帧间预测的过程的示例的流程图。
[0938]
在仿射帧间模式中,首先,帧间预测器218推导当前块的相应两个或三个控制点的mv预测器(v0,v1)或(v0,v1,v2)(步骤sj_11)。控制点是当前块的左上角点、当前块的右上角点和当前块的左下角点,如图46a或图46b所示。
[0939]
帧间预测器218获得作为预测参数被包括在流中的mv预测器选择信息,并使用由mv预测器选择信息识别出的mv来推导当前块的每个控制点处的mv预测器。例如,当使用图48a和图48b所示的mv推导方法时,帧间预测器218通过选择图48a或图48b中示出的当前块的相应控制点附近的编码块中的mv预测器选择信息所识别出的块的mv,来推导当前块的控制点处的运动向量预测器(v0,v1)或(v0,v1,v2)。
[0940]
接下来,帧间预测器218获得作为预测参数被包括在流中的每个mv差,并且将当前块的每个控制点处的mv预测器和与mv预测器相对应的mv差相加(步骤sj_12)。以这种方式,推导出当前块的每个控制点处的mv。
[0941]
接下来,帧间预测器218对当前块中包括的多个子块中的每一个执行运动补偿。换
句话说,帧间预测器218使用两个运动向量v0和v1以及上述表达式(1a)或者三个运动向量v0、v1和v2以及上述表达式(1b)计算多个子块中的每一个的mv作为仿射mv(步骤sj_13)。帧间预测器218然后使用这些仿射mv和解码的参考图片来执行子块的运动补偿(步骤sj_14)。当针对被包括在当前块中的每个子块执行步骤sj_13和sj_14中的过程时,使用当前块的仿射合并模式的帧间预测结束。换句话说,执行当前块的运动补偿以生成当前块的预测图像。
[0942]
注意,上述mv候选列表可以如步骤sk_11那样在步骤sj_11中生成。
[0943]
(mv推导》三角形模式)
[0944]
例如,当从流解析的信息指示将应用三角形模式时,帧间预测器218在三角形模式中推导mv并使用mv执行运动补偿(预测)。
[0945]
图89是示出在解码器200中通过三角形模式的帧间预测的过程的示例的流程图。
[0946]
在三角形模式中,首先,帧间预测器218将当前块分割成第一分区和第二分区(步骤sx_11)。例如,帧间预测器218可以从流中获得分区信息作为预测参数,该分区信息是与分割相关的信息。帧间预测器218然后可以根据分区信息将当前块分割成第一分区和第二分区。
[0947]
接下来,帧间预测器218基于诸如时间上或空间上围绕当前块的多个解码块的mv之类的信息来获得当前块的多个mv候选(步骤sx_12)。换句话说,帧间预测器218生成mv候选列表。
[0948]
帧间预测器218然后从在步骤sx_11中获得的多个mv候选中分别选择第一分区的mv候选和第二分区的mv候选作为第一mv和第二mv(步骤sx_13)。此时,帧间预测器218可以从流获得用于将每个所选mv候选识别为预测参数的mv选择信息。帧间预测器218然后可以根据mv选择信息来选择第一mv和第二mv。
[0949]
接下来,帧间预测器218通过使用所选的第一mv和解码的参考图片执行运动补偿,来生成第一预测图像(步骤sx_14)。同样地,帧间预测器218通过使用所选的第二mv和解码的参考图片执行运动补偿,来生成第二预测图像(步骤sx_15)。
[0950]
最后,帧间预测器218通过执行第一预测图像和第二预测图像的加权相加,来生成当前块的预测图像(步骤sx_16)。
[0951]
(mv估计》dmvr)
[0952]
例如,从流解析的信息指示将应用dmvr,帧间预测器218使用dmvr执行运动估计。
[0953]
图90是示出在解码器200中通过dmvr执行的运动估计的过程的示例的流程图。
[0954]
帧间预测器218根据合并模式推导当前块的mv(步骤s1_11)。接下来,帧间预测器218通过搜索由在s1_11中推导的mv指示的参考图片周围的区域,来推导当前块的最终mv(步骤s1_12)。换句话说,在这种情况下,当前块的mv是根据dmvr确定的。
[0955]
图91是示出在解码器200中通过dmvr执行的运动估计过程的示例的流程图,并且与图58b相同。
[0956]
首先,在图58a所示的步骤1中,帧间预测器218计算在由初始mv指示的搜索位置(也称为起点)与八个周围搜索位置之间的成本。帧间预测器218然后确定除起点之外的每个搜索位置处的成本是否最小。这里,当确定除起点之外的搜索位置之一处的成本最小时,帧间预测器218将目标改变为获得最小成本的搜索位置,并执行图58中所示的步骤2中的过程。当起点处的成本最小时,帧间预测器218跳过图58a中示出的步骤2中的过程并执行步骤
3中的过程。
[0957]
在如图58a所示的步骤2中,帧间预测器218执行与步骤1中的过程类似的搜索,根据步骤1中的过程的结果,将目标改变后的搜索位置视为新起点。然后,帧间预测器218确定在除了起点之外的每个搜索位置处的成本是否最小。这里,当确定除起点之外的搜索位置之一处的成本最小时,帧间预测器218执行步骤4中的过程。当起点处的成本最小时,帧间预测器218执行步骤3中的过程。
[0958]
在步骤4中,帧间预测器218将起点处的搜索位置视为最终搜索位置,并将由初始mv指示的位置与最终搜索位置之间的差确定为向量差。
[0959]
在图58a所示的步骤3中,帧间预测器218基于相对于步骤1或步骤2中的起点位于上、下、左和右位置处的四个点处的成本,来确定获得最小成本的子像素精度下的像素位置,并将像素位置视为最终搜索位置。
[0960]
通过使用四个搜索位置中对应搜索位置处的成本作为权重,对上、下、左、右四个向量((0,1)、(0,-1)、(-1,0)、(1,0))中的每一个执行加权相加,来确定子像素精度下的像素位置。帧间预测器218然后将在由初始mv指示的位置与最终搜索位置之间的差确定为向量差。
[0961]
(运动补偿》bio/obmc/lic)
[0962]
例如,当从流解析的信息指示要执行预测图像的校正时,在生成了预测图像时,帧间预测器218基于校正模式来校正预测图像。该模式例如是上述bio、obmc和lic之一。
[0963]
图92是示出在解码器200中生成预测图像的过程的一个示例的流程图。
[0964]
帧间预测器218生成预测图像(步骤sm_11),并根据上述模式中的任何模式来校正预测图像(步骤sm_12)。
[0965]
图93是示出在解码器200中生成预测图像的过程的另一示例的流程图。
[0966]
帧间预测器218推导当前块的mv(步骤sn_11)。接下来,帧间预测器218使用mv生成预测图像(步骤sn_12),并确定是否执行校正过程(步骤sn_13)。例如,帧间预测器218获得包含于流中的预测参数,并基于该预测参数确定是否执行校正过程。例如,该预测参数是指示是否要应用一种或多种上述模式的标志。这里,当确定执行校正过程时(步骤sn_13中的是),帧间预测器218通过校正预测图像来生成最终预测图像(步骤sn_14)。注意,在lic中,可以在步骤sn_14中校正亮度和色度。当确定不执行校正过程时(步骤sn_13中的否),帧间预测器218输出最终预测图像而不校正预测图像(步骤sn_15)。
[0967]
(运动补偿》obmc)
[0968]
例如,当从流解析的信息指示要执行obmc时,在生成了预测图像时,帧间预测器218根据obmc来校正预测图像。
[0969]
图94是示出在解码器200中由obmc对预测图像的校正的过程的示例的流程图。注意,图94中的流程图表示使用图62所示的当前图片和参考图片的预测图像的校正流程。
[0970]
首先,如图62所示,使用指派给当前块的mv通过常规运动补偿获得预测图像(pred)。
[0971]
接下来,帧间预测器218通过将已经为当前块左侧相邻的解码块推导的运动向量(mv_l)应用于当前块(重新使用当前块的运动向量)来获得预测图像(pred_l)。然后,帧间预测器218通过重叠两个预测图像pred和pred_l来执行预测图像的第一校正。这提供了混
合相邻块之间的边界的效果。
[0972]
同样地,帧间预测器218通过将已经为与当前块上方相邻的解码块推导的mv(mv_u)应用于当前块(针对当前块重新使用运动向量)来获得预测图像(pred_u)。然后,帧间预测器218通过将预测图像pred_u与已经执行了第一校正的预测图像(例如,pred和pred_l)重叠来执行预测图像的第二校正。这提供了混合相邻块之间的边界的效果。通过第二校正获得的预测图像是其中相邻块之间的边界已被混合(平滑)的图像,因此是当前块的最终预测图像。
[0973]
(运动补偿》bio)
[0974]
例如,当从流解析的信息指示要执行bio时,在生成了预测图像时,帧间预测器218根据bio校正预测图像。
[0975]
图95是示出解码器200中的bio所执行的对预测图像的校正的过程的示例的流程图。
[0976]
如图63所示,帧间预测器218使用与包括当前块的图片(cur pic)不同的两个参考图片(ref0、ref1)推导两个运动向量(m0,m1)。然后,帧间预测器218使用两个运动向量(m0,m1)推导当前块的预测图像(步骤sy_11)。注意,运动向量m0是与参考图片ref0相对应的运动向量(mv
x0
,mv
y0
),运动向量m1是与参考图片ref1相对应的运动向量(mv
x1
,mv
y1
)。
[0977]
接下来,帧间预测器218使用运动向量m0和参考图片l0推导当前块的内插图像i0。另外,帧间预测器218使用运动向量m1和参考图片l1推导当前块的内插图像i1(步骤sy_12)。这里,内插图像i0是包含于参考图片ref0中并且要针对当前块推导的图像,而内插图像i1是包含于参考图片ref1中并针对当前块推导的图像。内插图像i0和内插图像i1中的每一者在尺寸上可以与当前块相同。替代地,内插图像i0和内插图像i1中的每一个可以是大于当前块的图像。此外,内插图像i0和内插图像i1可以包括通过使用运动向量(m0,m1)和参考图片(l0,l1)并应用运动补偿滤波器而获得的预测图像。
[0978]
此外,帧间预测器218从内插图像i0和内插图像i1推导当前块的梯度图像(ix0,ix1,iy0,iy1)(步骤sy_13)。注意,水平方向的梯度图像为(ix0,ix1),并且垂直方向的梯度图像为(iy0,iy1)。帧间预测器218可以通过例如将梯度滤波器应用于内插图像来推导梯度图像。梯度图像可以是其中的每一个均指示像素值沿水平方向的空间变化量或像素值沿垂直方向的空间变化量的图像。
[0979]
接下来,帧间预测器218使用内插图像(i0,i1)和梯度图像(ix0,ix1,iy0,iy1)为当前块的每个子块推导作为速度向量的光流(vx,vy)(步骤sy_14)。作为一个示例,子块可以是4
×
4像素子cu。
[0980]
接下来,帧间预测器218使用光流(vx,vy)校正当前块的预测图像。例如,帧间预测器218使用光流(vx,vy)推导当前块中包括的像素值的校正值(步骤sy_15)。帧间预测器218然后使用校正值来校正当前块的预测图像(步骤sy_16)。注意,校正值可以以像素为单位推导,或者可以以多个像素为单位或以子块为单位推导,等等。
[0981]
注意,bio过程流程不限于图95中公开的过程。可以只执行图95中公开的过程的一部分,或者可以添加不同过程或使用不同过程作为替代,或者可以以不同的处理次序执行过程。
[0982]
(运动补偿》lic)
[0983]
例如,当从流解析的信息指示要执行lic时,在生成了预测图像时,帧间预测器218根据lic校正预测图像。
[0984]
图96是示出在解码器200中通过lic执行的对预测图像的校正的过程的示例的流程图。
[0985]
首先,帧间预测器218使用mv从解码的参考图片中获得与当前块相对应的参考图像(步骤sz_11)。
[0986]
接下来,帧间预测器218针对当前块提取指示当前图片和参考图片之间亮度值如何改变的信息(步骤sz_12)。该提取可以基于解码后的左侧相邻参考区域(周围参考区域)和解码后的上方相邻参考区域(周围参考区域)的亮度像素值,以及由推导出的mv指定的参考图片中对应位置处的亮度像素值来执行。帧间预测器218使用指示亮度值如何改变的信息来计算亮度校正参数(步骤sz_13)。
[0987]
帧间预测器218通过执行亮度校正过程来生成当前块的预测图像,在该亮度校正过程中将亮度校正参数应用于由mv指定的参考图片中的参考图像(步骤sz_14)。换句话说,基于亮度校正参数对作为由mv指定的参考图片中的参考图像的预测图像进行校正。在该校正中,可以校正亮度,或可以校正色度。
[0988]
(预测控制器)
[0989]
预测控制器220选择帧内预测图像或帧间预测图像,并将所选图像输出到加法器208。总的来说,解码器200侧的预测控制器220、帧内预测器216和帧间预测器218的配置、功能和过程可以对应于编码器100侧的预测控制器128、帧内预测器124和帧间预测器126的配置、功能和过程。
[0990]
(第一方面)
[0991]
图97是根据第一方面的使用ccalf(交叉分量自适应环路滤波)过程对图像进行解码的过程流程1000的示例的流程图。过程流程1000可以例如由图67的解码器200等执行。
[0992]
在步骤s1001中,对第一分量的重构图像样本应用滤波过程。例如,第一分量可以是亮度分量。亮度分量可以表示为y分量。亮度的重构图像样本可以是alf过程的输出信号。alf的输出信号可以是通过sao过程生成的重构亮度样本。在一些实施例中,在步骤s1001中执行的该滤波过程可以表示为ccalf过程。重构亮度样本的数量可以与要在ccalf过程中使用的滤波器的系数数量相同。在其他实施例中,可对经滤波的重构亮度样本执行剪裁过程。
[0993]
在步骤s1002中,修改第二分量的重构图像样本。第二分量可以是色度分量。色度分量可以表示为cb和/或cr分量。色度的重构图像样本可以是alf过程的输出信号。alf的输出信号可以是通过sao过程生成的重构色度样本。修改后的重构图像样本可以是色度的重构样本与亮度的过滤的重构样本的和,即步骤s1001的输出。换言之,可以通过将步骤s1001的ccalf过程产生的重构亮度样本的滤波值与由alf过程产生的重构色度样本的滤波值相加来执行修改过程。在一些实施例中,可以对重构的色度样本执行剪裁过程。第一分量和第二分量可以属于同一个块,或者可以属于不同的块。
[0994]
在步骤s1003中,对色度分量的修改后的重构图像样本的值进行剪裁。通过执行剪裁过程,可以保证样本的值在一个确定的范围内。进一步地,剪裁可以促进最小二乘优化等过程中更好的收敛,以最小化残差(原始样本值和重构样本值之间的差)与色度样本的滤波后的值之间的差,以便于确定滤波器系数。
[0995]
在步骤s1004中,使用色度分量的剪裁后的重构图像样本对图像进行解码。在一些实施例中,不需要执行步骤s1003。在这种情况下,使用未剪裁的修改后的重构色度样本对图像进行解码。
[0996]
图98是示出根据实施例的编码器和解码器的功能配置的框图。在本实施例中,对色度分量的修改后的重构图像样本应用剪裁过程,如图97的步骤s1003中的。例如,对于10位输出,可以将修改后的重构图像样本剪裁到[0,1023]的范围内。在一些实施例中,当剪裁由ccalf过程生成的亮度分量的经滤波的重构图像样本时,剪裁色度分量的修改后的重构图像样本可以不是必要的。
[0997]
图99是示出根据实施例的编码器和解码器的功能配置的框图。在本实施例中,如图97的步骤s1003中,对色度分量的修改后的重构图像样本应用剪裁处理。剪裁过程不适用于ccalf过程所生成的经滤波的重构亮度样本。由alf过程产生的重构色度样本的滤波值不需要被剪裁,如图99中的“无剪裁”所示。换句话说,要修改的重构图像样本是使用滤波值(alf色度)和差值(ccalf cb/cr)生成的,其中不对生成的样本值的输出应用剪裁。
[0998]
图100是示出根据实施例的编码器和解码器的功能配置的框图。在该实施例中,剪裁过程被应用于由ccalf过程生成的经滤波的重构亮度样本(“剪裁输出样本”)和色度分量的修改后的重构图像样本(“求和后剪裁”)。由alf过程生成的重构色度样本的滤波值不被剪裁(“无剪裁”)。例如,应用于亮度分量的经滤波的重构图像样本的剪裁范围可以是[-2^15,2^15-1]或[-2^7,2^7-1]。
[0999]
图101示出了另一个示例,其中将剪裁过程应用于:由ccalf过程生成的经滤波的重构亮度样本(“剪裁输出样本”)、色度分量的修改后的重构图像样本(“求和后剪裁”)以及由alf过程生成的经滤波的重构色度样本(“剪裁”)。换句话说,ccalf过程和alf色度过程的输出值被单独地剪裁,并在它们求和后再次被剪裁。在该实施例中,色度分量的修改后的重构图像样本不需要被剪裁。例如,alf色度过程的最终输出可能会被剪裁为10位值。例如,应用于亮度分量的经滤波的重构图像样本的剪裁范围可以是[-2^15,2^15-1]或[-2^7,2^7-1]。该范围可以是固定的或者可以自适应地确定。在任何一种情况下,都可以在报头信息中,例如在sps(序列参数集)或aps(适应参数集)中用信号通知该范围。在当使用非线性alf时的情况下,可以为图101中的“求和后剪裁”定义剪裁参数。
[1000]
要由ccalf过程滤波的亮度分量的重构图像样本可以是与色度分量的当前重构图像样本相邻的相邻样本。即,可以通过将与当前图像样本相邻定位的亮度分量的相邻图像样本的滤波值与色度分量的当前图像样本的滤波值相加,来生成修改后的当前重构图像样本。亮度分量的图像样本的滤波值可以被表示为差值。
[1001]
在该方面中公开的过程可以减少存储经滤波的图像样本值所需的硬件内部存储器大小。
[1002]
(第二方面)
[1003]
图102是根据第二方面的使用定义的信息来应用ccalf过程对图像进行解码的过程流程2000的示例的流程图。过程流程2000可以例如由图67的解码器200等执行。
[1004]
在步骤s2001中,从比特流中解析出剪裁参数。剪裁参数可以从vps、aps、sps、pps、切片报头在ctu或tu级别解析,如图103a-103f中所述。图103a-103f是表示剪裁参数的位置的概念图。图103a-103f中的每个图中描述的参数可以由不同类型的剪裁参数、标志或索引
代替。可以从比特流中的两个或更多参数集中解析两个或更多个剪裁参数。
[1005]
在步骤s2002中,使用剪裁参数剪裁差。基于第一分量的重构图像样本(例如,图98-101中的差值(ccalf cb/cr))生成差。例如,第一分量是亮度分量,并且差是由ccalf过程生成的经滤波的重构亮度样本。在这种情况下,使用解析的剪裁参数对经滤波的重构亮度样本应用剪裁过程。
[1006]
剪裁参数将值限制在期望的范围内。如果期望的范围是[-3,3],例如,使用操作clip(-3,3,5)将值5剪裁为3。在此示例中,值-3是下限,并且值3是上限。
[1007]
剪裁参数可以指示用于推导出下限和上限的索引,如图104(i)所示。在此示例中,ccalf_luma_clip_idx[]是索引,-range_array[]是下限,而range_array[]是上限。在这个示例中,range_array[]是确定的范围数组,它可能不同于用于alf的范围数组。确定的范围数组可以是预先确定的。
[1008]
剪裁参数可以指示下限和上限,如图104(ii)所示。在此示例中,-ccalf_luma_clip_low_range[]是下限范围,而ccalf_luma_clip_up_range[]是上限范围。
[1009]
剪裁参数可以指示下限范围和上限范围两者的共同范围,如图104(iii)所示。在此示例中,-ccalf_luma_clip_range是下限,而ccalf_luma_clip_range是上限。
[1010]
通过乘、除、加或减第一分量的至少两个重构图像样本来生成差。例如,两个重构图像样本可以来自当前和相邻图像样本或两个相邻图像样本。当前和相邻图像样本的位置可以是预先确定的。
[1011]
在步骤s2003中,使用剪裁的值修改不同于第一分量的第二分量的重构图像样本。剪裁的值可以是亮度分量的重构图像样本的剪裁的值。第二分量可以是色度分量。该修改可以包括用于相对于第二分量的重构图像样本乘、除、加或减剪裁的值的操作。
[1012]
在步骤s2004中,使用修改后的重构图像样本对图像进行解码。
[1013]
在本公开中,用于交叉分量自适应环路滤波的一个或多个剪裁参数在比特流中用信号通知。通过该信令,可以组合交叉分量自适应环路滤波的句法和自适应环路滤波器的句法以进行句法简化。此外,通过该信令,交叉分量自适应环路滤波的设计可以更加灵活以提高编码效率。
[1014]
可以为编码器和解码器两者定义或预定义剪裁参数而不用信号通知。剪裁参数也可以使用亮度信息来推导,而不用信号通知。例如,如果在亮度重构图像中检测到强梯度或边缘,可以推导出与大剪裁范围相对应的剪裁参数,并且如果在亮度重构图像中检测到弱梯度或边缘,则可以推导出与短剪裁范围相对应的剪裁参数。
[1015]
(第三方面)
[1016]
图105是根据第三方面的使用滤波器系数应用ccalf过程对图像进行解码的过程流程3000的示例的流程图。过程流程3000可以例如由图67的解码器200等执行。在ccalf过程的滤波步骤中使用滤波器系数来生成亮度分量的经滤波的重构图像样本。
[1017]
在步骤s3001中,判定滤波系数是否位于滤波器的所定义的对称区域内。可选地,可以执行额外的判断滤波器系数的形状是否对称的步骤。指示滤波器系数的样本是否对称的信息可以被编码成比特流。如果形状是对称的,则可以确定或预先确定在对称区域内的系数的位置。
[1018]
在步骤s3002中,如果滤波系数在定义的对称区域内(步骤s3001中的“是)”,则将
滤波系数复制到对称位置并生成一组滤波系数。
[1019]
在步骤s3003中,使用滤波器系数对第一分量的重构图像样本进行滤波。第一分量可以是亮度分量。
[1020]
在步骤s3004中,滤波的输出用于修改不同于第一分量的第二分量的重构图像样本。第二分量可以是色度分量。
[1021]
在步骤s3005中,使用修改后的重构图像样本对图像进行解码。
[1022]
如果滤波器系数不对称(步骤s3001中的否),则可以从比特流编码所有滤波器系数,并且可以在不复制的情况下生成一组滤波器系数。
[1023]
这个方面可以减少要编码到比特流中的信息量。即,对称的滤波器系数中的仅一个可能需要编码在比特流中。
[1024]
图106a-106h、图107a-107h、图108a-108h、图109a-109d和图110a-110d是指示将在ccalf过程中使用的滤波器系数的位置的示例的概念图。在这些示例中,假设存在对称性,则用信号通知包括在一组系数中的一些系数。
[1025]
具体来说,图106a、图106b、图106c和图106d表示其中一组ccalf系数的一部分(由对角线和点画图案(stippling pattern)标记)位于定义的对称区域内的示例。在这些示例中,对称区域具有线对称形状。只有一些标记的系数(由对角线或点画图案标记)和白色系数可以被编码到比特流中,而其他系数可以通过使用编码的系数来生成。作为其他示例,在滤波过程中可以仅生成和使用标记的系数。在滤波过程中不需要使用其他白色系数(未由任何模式标记)。
[1026]
图106e、图106f、图106g和图106h表示对称区域的形状为水平、垂直、对角线,连同方向、点对称或关于方向的点对称的示例。
[1027]
在这些图中,可能只需要对由对角线或点画图案标记的部分系数进行编码。可以确定或预定要编码的系数的位置。例如,可以按照确定的扫描次序对系数进行编码,并且可以首先对首先出现的系数进行编码。可以从位于其对称位置的系数复制其系数未编码的对称区域中的系数。在一些实施例中,可能没有必要基于对称性来处理系数。例如,当确定扫描次序中的第i个系数与第j个系数相同时,该过程可以将第j个值复制到第i个值。可以基于其他参数来确定位置。
[1028]
图107a、图107b、图107c和图107d表示一组ccalf系数(由对角线和点画图案标记)的一部分位于定义的对称区域内的示例。在这些示例中,对称系数的数量可能不同。对称系数的数量可以被确定、预定或者可以在图片级别、切片级别或块级别用信号通知。
[1029]
图107e、图107f、图107g和图107h表示一组ccalf系数(由对角线和点画图案标记)的一部分位于定义的对称区域内的示例。在这些示例中,一对称侧的对称系数可能与另一对称侧的对应系数不同,即一侧的一些系数(例如一组系数)与另一侧的不同的系数值(例如另一组系数)对称。例如,可以将一对称侧的“点画图案”系数的仅一部分编码成比特流并复制以生成另一对称侧的“对角线图案”系数。
[1030]
图108a、图108b、图108c和图108d表示其中色度类型用作确定的格式的滤波器形状的示例。例如,确定的格式可以是yuv 420type 0。标记的系数(对角线系数或点画图案系数)关于色度类型的色度位置对称。滤波器形状可以设计为关于其他yuv格式的色度位置对称。例如,图108a-108d的这些滤波器形状可以用作默认,并且当在比特流中编码的参数指
示其他格式时,可以确定要在滤波过程中使用其他滤波器形状。
[1031]
图108e、图108f、图108g和图108h表示其中色度类型用作确定的格式的滤波器形状的示例。确定的格式可以是不同yuv 420type 0的yuv色度格式。不同的滤波器形状可以用于其他格式。
[1032]
图109a、图109b、图109c和图109d表示滤波器形状的其他示例。在图109a中,对称系数的数量可以为零并且所有系数都被独立地用信号通知。对称系数的数量不需要编码到比特流中。在图109b中,对称系数的数量可以是所有系数的二分之一。
[1033]
图110a、图110b、图110c和图110d指示要以箭头所指示的扫描次序编码的信号和滤波器形状的其他示例。在图110a中,无论对称类型如何,光栅扫描次序都被应用于滤波器系数。在图110b中,无论对称类型如何,光栅扫描次序都被应用于滤波器系数,并且在比特流中以光栅扫描次序用信号通知仅白色系数和点画图案化系数。解码器可以使用lut(查找表)来复制点画图案化系数以生成对角线图案化系数。在图110c中,位于对称区域中的点画图案系数被扫描并用信号通知,然后位于非对称区域中的白色系数被扫描并用信号通知。在图110d中,位于非对称区域中的系数被扫描并用信号通知,然后点画图案化的系数被扫描并用信号通知。
[1034]
图111和图112是指示将在ccalf过程中使用的滤波器系数的位置的进一步示例的概念图。在这些示例中,滤波器系数集合中的对称定位、位置或系数数量可以适应色度类型。
[1035]
图113是示出根据实施例的由编码器和解码器执行的ccalf过程的功能配置的框图。在使用生成的滤波器系数对亮度图片进行滤波之后,输出样本将应用于色度图片。具有生成的滤波器系数的滤波器应用于sao亮度输出图片。然后将滤波后的样本(ccalfcb和ccalfcr)添加到alf色度输出图片。
[1036]
(第四方面)
[1037]
图114是根据第四方面的使用从多个滤波器中选择的滤波器应用ccalf过程对图像进行解码的过程流程4000的示例的流程图。过程流程4000可以例如由图67等的解码器200执行。该实施例公开了使用来自不同分量的信息来修改分量的重构样本的方法。
[1038]
在步骤s4001中,确定参数。可以从vps、aps、sps、pps、切片报头或在ctu或tu级别解析该参数,如图103a-103f中所描述的。从比特流中解析出参数来指定滤波器。例如,该参数可以指示用于从确定的多个滤波器中选择滤波器的索引。可以从比特流中解析该参数以将色度子采样格式指示为4:4:4、4:2:0、4:2:2或4:1:1。可以从比特流中解析该参数以将颜色空间指示为ycbcr或rgb。可以从比特流中解析该参数以将图片分辨率指示为4k、fhd、cif、qcif。该参数可以将颜色分量指示为y、cb或cr。还可以使用亮度信息来推导出参数而不用信号通知。例如,如果在亮度重构图像中检测到强梯度或边缘,则可以推导出与短抽头滤波器(short tap filter)相对应的参数,并且如果在亮度重构图像中检测到弱梯度或边缘,则可以推导出与长抽头滤波器相对应的参数。作为另一示例,如果在亮度重构图像中检测到强梯度或边缘,则可以推导出与长抽头滤波器相对应的参数,并且如果在亮度重构图像中检测到弱梯度或边缘,则可以推导出与短抽头滤波器相对应的参数。
[1039]
在步骤s4002中,基于参数从多个滤波器中选择滤波器。多个滤波器可以具有不同的形状或尺寸。多个滤波器可以具有相同的形状并且具有不同的系数值。该参数可以指示
要用于生成一组滤波器系数的系数值。
[1040]
图115示出了选择滤波器的过程流程的示例。
[1041]
在步骤s4011中,确定参数是否指示确定的格式。格式可以是预先确定的。确定的格式可以将色度子采样格式指示为4:4:4、4:2:0、4:2:2或4:1:1。确定的格式可以将颜色分量指示为y、cb或cr。确定的格式可以将颜色空间指示为ycbcr或rgb。确定的格式可以将图片分辨率指示为4k、fhd、cif、qcif。
[1042]
在步骤s4012中,如果确定参数指示所确定的格式(步骤s4011中的是),则从多个滤波器中选择第一滤波器。
[1043]
在步骤s4013中,如果确定参数不指示确定的格式(步骤s4011中为否),则从多个滤波器中选择不同于第一滤波器的滤波器。s4012和s4013之间的滤波器系数的形状、大小或值可以不同。
[1044]
图116和图117示出了滤波器的一些示例。在示出滤波器1a-1i的图116中,具有最大系数数量的总行数是偶数(例如2、4或6)。在示出滤波器2a-2i的图117中,具有最大系数数量的总行数是奇数(例如1、3或5)。
[1045]
例如,如果参数指示应用了4:2:0色度子采样格式,则可以选择来自图116的滤波器,而如果该参数指示应用4:2:2、4:4:4或4:1:1色度子采样格式,则可以选择来自图117的滤波器。可以颠倒来自图116和图117的滤波器的选择。
[1046]
例如,如果参数指示使用y来修改cb或cr,则可以选择来自图116的滤波器,而如果参数表示使用cb修改cr,或者使用cr修改cb,则可以选择来自图117的滤波器。可以颠倒来自图116和图117中滤波器的选择。
[1047]
例如,如果参数指示应用颜色空间ycbcr,则可以选择来自图116的滤波器,而如果该参数指示应用颜色空间rgb,则可以选择来自图117的滤波器。可以颠倒来自图116和图117的滤波器的选择。
[1048]
例如,如果参数指示图像分辨率大(例如4k或8k),则可以选择来自图116的第一滤波器,而如果参数指示图像分辨率小(例如qcif或cif),则可以选择与来自图116的第一滤波器不同的滤波器。这两个所选滤波器的大小可能不同。例如,可以为图像分辨率qcif选择滤波器(1a),可以为图像分辨率fhd选择滤波器(1c),并且可以为图像分辨率8k选择滤波器(1e)。
[1049]
例如,如果参数指示图像分辨率大(例如4k或8k),则可以选择来自图117的第一滤波器,而如果参数指示图像分辨率小(例如qcif或cif),则可以选择与来自图117的第一滤波器不同的滤波器。这两个所选滤波器的大小可能不同。例如,可以为图像分辨率qcif选择滤波器(2a),可以为图像分辨率fhd选择滤波器(2c),并且可以为图像分辨率8k选择滤波器(2e)。
[1050]
在步骤s4003中,使用选择的滤波器对第一分量的重构图像样本进行滤波。第一分量可以是亮度分量。滤波过程至少包含对第一分量的至少两个重构图像样本的乘法、除法、加法或减法的运算。例如,两个重构图像样本可以来自当前和相邻的图像样本,或者可以来自两个相邻的图像样本。当前和相邻图像样本的位置可以是预先确定的。
[1051]
在步骤s4004中,使用滤波的输出修改不同于第一分量的第二分量的重构图像样本。第二分量可以是色度分量。该修改包括将滤波的输出与重构图像样本相乘、相除、相加
或相减的运算。
[1052]
在步骤s4005,使用修改后的重构图像样本对图像进行解码。
[1053]
本公开涉及从多个滤波器中自适应地选择一个滤波器用于交叉分量滤波。不同的滤波器可能具有不同的形状或尺寸。滤波器的自适应选择使得交叉分量滤波更加灵活以提高编码效率。
[1054]
可以用信号通知多于一组的滤波器。不同的滤波器组可能具有不同的形状和大小。之后可以解析或确定要使用哪个滤波器(例如,从filter_id中)。
[1055]
(第五方面)
[1056]
图118是根据第五方面的使用参数应用ccalf过程对图像进行解码的过程流程5000的示例的流程图。过程流程5000可以例如由图67等的解码器200执行。
[1057]
在步骤s5001中,从码流中解析出第一参数。第一参数可以从vps、aps、sps、pps、切片报头或者在ctu或tu级别解析(图103a-103f,其中“参数”对应于“第一参数”)。第一参数可以将色度子采样格式指示为4:4:4、4:2:0、4:2:2或4:1:1。第一参数可以将颜色空间指示为ycbcr或rgb。第一参数可以指示图片分辨率为4k、fhd、cif、qcif。第一参数可以将颜色分量指示为y、cb或cr。
[1058]
在步骤s5002中,判定第一参数是否等于确定值。确定值可以是预先确定的。
[1059]
在步骤s5003中,如果确定第一参数等于确定值(步骤s5002中的是),则从比特流中解析出第一系数数量。第一系数数量可以从vps、aps、sps、pps、切片报头或在ctu或tu级别解析(图103a-103f,其中“参数”对应于“第一系数数量”)。
[1060]
在步骤s5004中,如果确定第一参数不等于确定值(步骤s5003中的否),则从比特流中解析不等于第一系数数量的第二系数数量。可以从vps、aps、sps、pps、切片报头或在ctu或tu级别解析第二系数数量(图103a-103f,其中“参数”对应于“第二系数数量”)。来自步骤s5002和步骤s5003的第一数量和第二数量可以不同。
[1061]
例如,如图119(i)所示,第一参数表示应用4:2:0色度子采样格式时的系数数量(numcoeff)与第一参数表示应用4:2:2、4:4:4或4:1:1色度子采样格式时的系数数量不同。
[1062]
例如,如图119(ii)所示,第一参数表示应用色彩空间ycbcr时的系数数量与第一参数表示应用色彩空间rgb时的系数数量不同。
[1063]
例如,如图119(iii)所示,第一参数表示使用y修改cb或cr时的系数数量与第一参数表示使用cb修改cr或使用cr修改cb时的系数数量不同。
[1064]
例如,如图119(iv)所示,第一参数表示图像分辨率大(例如4k或8k)时的系数数量与第一参数表示图像分辨率小时(例如qcif或cif)时的系数数量不同。
[1065]
在图119(i)-(iv)中,如果在aps中编码sps_id,则可以获得如色度子采样格式和图像分辨率之类的信息。
[1066]
在步骤s5005中,使用解析系数对第一分量的重构图像样本进行滤波。滤波过程至少包含对第一分量的至少两个重构图像样本的乘法、除法、加法或减法运算。例如,两个重构图像样本可以来自当前和相邻图像样本,或者可以来自两个相邻图像样本。当前和相邻图像样本的位置可以是预先确定的。
[1067]
在步骤s5006中,使用滤波的输出修改不同于第一分量的分量的重构图像样本。该修改包括将滤波的输出与重构图像样本相乘、相除、相加或相减的运算。
[1068]
在步骤s5007中,使用修改后的重构图像样本对图像进行解码。
[1069]
本公开涉及自适应地推导出用于交叉分量滤波的滤波器系数的数量。滤波器系数数量的自适应推导使得交叉分量滤波更加灵活,以提高编码效率。
[1070]
可以用信号通知多于一组的系数。不同的系数组可以具有不同数量的系数。不同的系数组可以具有相同数量的系数。这些系数组的系数数量可以是固定的。之后解析或确定要使用的系数组(例如,来自coeff_set_id或filter_id)。
[1071]
(第六方面)
[1072]
图120是根据第六方面的使用参数应用ccalf过程对图像进行解码的过程流程6000的示例的流程图。过程流程6000可以例如由图67等的解码器200执行。
[1073]
在s6001中,该过程从第一分量中选择至少一个重构样本集合;
[1074]
在s6002中,该过程基于所选择的重构样本集合推导出值;
[1075]
在s6003中,该过程根据推导出的值对重构样本进行滤波;
[1076]
在s6004中,该过程使用滤波的输出来修改第二分量的重构图像样本;
[1077]
在s6005中,该过程使用滤波后的重构图像样本对图像进行解码。
[1078]
图121、图122和图123是示出通过计算相邻样本的加权平均值来生成当前色度样本的亮度分量的ccalf值(参见步骤s6002)的示例的概念图。换言之,在该示例中,色度样本的亮度样本的ccalf值是通过计算位于色度样本的相邻区域中的亮度样本的加权和来生成的。亮度样本包括位于与色度样本相邻处的样本。
[1079]
在图121中,菱形所指示的位置是当前色度样本的位置。例如,可以通过计算标有点画图案的相邻亮度样本的平均值来推导出与ccalf的位置(curr)相对应的值。白色亮度样本不需要用于平均过程。换言之,ccalf的值可以通过参考位于与当前色度样本相邻处的亮度样本的样本值来推导出。在图121的示例中有两个这样的亮度样本。
[1080]
图122描述了用于计算ccalf值的样本等式。ccalf值可以通过使用滤波器系数值和亮度样本值来推导出。滤波器系数值乘以两个相邻亮度样本值的相减结果。在每个相减计算中使用的亮度样本可以位于与当前色度样本相邻的位置处。等式的形式可以与alf滤波过程中使用的形式相同。在一些实施例中,如果滤波器系数值小于64,则可以将系数值设置为零。
[1081]
如图123所示,不同数量的亮度样本可以被平均,并且平均的相邻亮度样本的数量可以是预定义的,或者在/以图片级别、切片级别或块级别用信号通知。平均相邻亮度样本的位置可以是预定义的,或者在/以图片级别、切片级别或块级别用信号通知。平均相邻亮度样本的权重可以是预定义的,或者在/以图片级别、切片级别或块级别用信号通知。
[1082]
图124和图125是示出了通过计算相邻样本的加权平均值来生成当前样本的亮度分量的ccalf值的示例的概念图,其中相邻样本的位置是(根据)色度类型自适应地确定的。换句话说,基于当前色度样本的位置来确定要在加权计算中使用的亮度样本的位置。
[1083]
标有不同图案的样本可能代表不同的权重。平均样本的数量可以适应(可以对应于)色度类型。平均样本的权重可以适应(可以对应于)色度类型。
[1084]
图126和图127是示出通过将位移位应用于加权计算的输出值来生成亮度分量的ccalf值的示例的概念图。换句话说,以与alf过程相同的方式对亮度样本的滤波值应用按比例缩小的移位过程。在一些实施例中,如果系数值小于64,则可以将系数值设置为零。
[1085]
ccalf的移位位数表示为x。值x可以被确定为与alf过程中相同的值。在一些示例中,值x可以固定为10。在一些示例中,值x可以固定为7。
[1086]
(第七方面)
[1087]
图128是根据第七方面的使用参数应用ccalf过程对图像进行解码的过程流程7000的示例的流程图。过程流程7000可以例如由图67等的解码器200执行。描述了使用一个或多个参数确定要滤波的重构样本的方法。
[1088]
在步骤s7001中,从码流中解析出一个或多个参数。一个或多个参数可以被编码在aps、sps、pps、切片报头中的至少一个中或在ctu级别编码,如图129a-129e所示。图130a-130d示出了取回一个或多个参数的样本过程。
[1089]
一个或多个参数可以在sps中。切片首先根据切片中被编码的pps_id定位pps。pps然后根据在pps中被编码的sps_id定位sps。通过这种连接,切片可以取回sps中的一个或多个参数,如图130a所示。
[1090]
一个或多个参数可以在图片级别的参数集中,例如在pps中。切片首先根据切片中被编码的pps_id定位pps。通过这种连接,切片可以取回pps中的一个或多个参数,如图130b所示。
[1091]
一个或多个参数可以在aps中。切片首先根据在切片中被编码的aps_id定位aps。通过这种连接,切片可以取回在aps中的一个或多个参数,如图130c所示。
[1092]
一个或多个参数可以在切片中(图130d)。切片可以从其内部报头或数据获取一个或多个参数。
[1093]
一个或多个参数可以包括选择要修改的样本的大小的第一参数。一个或多个参数可以指示是否启用了ccalf过程。一个或多个参数可以包括指示是否启用ccalf过程的参数和指示要使用的滤波器的系数值的参数。
[1094]
样本可以分组为具有特定大小的方形,例如4x4、8x8、16x16、16x16、32x32、64x64或128x128样本。
[1095]
可以在解析切片报头或切片数据之前解析第一参数。例如,可以从aps、sps或pps解析第一参数。
[1096]
可以从切片报头解析第一参数。
[1097]
可以从编码树单元(ctu)数据中解析第一参数。
[1098]
第一参数可以取决于色度子采样类型或ctu大小或两者。如果色度子采样类型为4:4:4,则第一参数所选择的块大小可以是4x4、8x8、16x16、32x32、64x64或128x128。如果色度子采样类型为4:2:2或4:2:0,则第一参数所选择的块大小可以是4x4、8x8、16x16、32x32或64x64。
[1099]
第一参数可以取决于ctu大小,其中所选块大小不能超过其ctu大小。
[1100]
一个或多个参数可以包括指示是否要滤波样本块的第二参数。
[1101]
第二参数可以是值为1或0的标志,其中1表示修改重构样本,并且0表示不修改重构样本。
[1102]
可以在解析第一编码树单元(ctu)数据之前解析第二参数。例如,可以从aps、sps、pps、切片报头或切片数据中解析第二参数。
[1103]
可以从编码树单元(ctu)数据解析第二参数。图131a-131c示出了第二参数的样本
值。在图131a,第二参数=1,例如以表示“对块使用滤波器”。在图131b中,第二参数=0,例如以表示“不对块使用滤波器”。在图131c中,第一参数选择32x32块大小,并且第二参数=1000(二进制值),block0=1,以表示“对block0使用滤波器”,block1=0,以表示“不对block1使用滤波器”,block2=0,以表示“不对block2使用滤波器”,而block3=0,以表示“不对block3使用滤波器”,作为示例。多个第二参数可以指示是否要修改具有特定大小的编码树单元(ctu)中的多个块。
[1104]
第二参数可以指示重构样本的修改是否在图片或序列内被禁用。如果第二参数指示重构样本的修改被禁用,则图128的步骤s7002将直接进入步骤s7005,其对应于图128中的“否”分支。
[1105]
一个或多个参数可以包括可以使用诸如固定长度编码、指数-哥伦布(exponential-golomb)编码或vlc之类的非算术编码来解析的参数。
[1106]
一个或多个参数可以包括可以使用算术编码(例如cavlc或cabac)解析的参数。
[1107]
例如,如图132所示,可以在解析切片中的第一编码树单元数据之前使用算术编码解析第二参数,随后是字节对齐或位对齐数据。图132示出了算术编码(cabac)的初始化的字节对齐和位置的示例。在本示例中,对同一个切片中第二参数之后的参数进行解析的算术编码的初始化可以被应用。
[1108]
在步骤s7002中,根据解析出的参数判断是否使用滤波器。
[1109]
如果要使用滤波器,则在步骤s7003中,至少对来自第一分量的重构样本进行滤波。第一分量可以是亮度样本。
[1110]
在步骤s7004中,使用来自与第一分量不同的分量的至少一个滤波的重构样本来修改重构样本。与第一分量不同的分量可以是色度样本。
[1111]
在步骤s7005中,使用修改后的重构样本对图像样本块进行解码。
[1112]
本公开说明了用于滤波的多个级别处的一个或多个参数的特性,包括生成方法、函数和编码方法。使用这些控制参数,可以优化滤波的设计,以节省编码比特,使用修改后的样本增强高频分量,并且减少不同通道之间的冗余,从而提高图像质量。
[1113]
图133是本实施例的变型的概念图。
[1114]
一个或多个参数可以取决于编码树单元的分区。当分区具有与由第一参数指示的大小不同的大小时,指示分区是否被滤波的第二参数不被编码并且该分区的滤波被禁用。在这个示例中,第二参数的编码比特减少了。
[1115]
第七方面中描述的形状或样本可以用矩形或非矩形形状的分区代替。非矩形分区的示例可以是三角形分区、l形分区、五边形分区、六边形分区和多边形分区中的至少一种,如图133所示。
[1116]
(第八方面)
[1117]
图134是根据第八方面的使用参数应用ccalf过程对图像进行解码的过程流程8000的示例的流程图。过程流程8000可以例如由图67等的解码器200执行。
[1118]
在步骤s8001中,判定第一分量的第一样本是否在虚拟边界之外。
[1119]
在步骤s8002中,如果确定第一分量的第一样本在虚拟边界外,则将第一分量的第二样本复制到第一样本中,其中第二样本位于虚拟边界内。
[1120]
在步骤s8003中,包括第一样本和第二样本的第一分量的重构样本被滤波。
[1121]
在步骤s8004中,使用滤波的输出修改不同于第一分量的分量的重构样本。
[1122]
在步骤s8005中,使用修改后的重构样本对图像进行解码。
[1123]
无论色度采样格式如何,s8002中的填充方法都可以相同。例如,可以使用对称填充。填充方法可以根据色度采样格式而在例如对称填充和非对称填充之间改变。
[1124]
第一分量可以是亮度样本,并且其样本值被修改的不同分量可以是色度样本。色度可以是cb、cr或两者。
[1125]
图135是根据第八方面的使用参数应用ccalf过程对图像进行解码的过程流程8100的示例的流程图。过程流程8100可以例如由图67等的解码器200执行。
[1126]
在s8101中,判定色度样本类型是否为第一类型。图136显示了色度样本类型0到5的示例位置。具体地,例如,图136示出色度样本类型及其相对于4:2:0的亮度样本位置的位置。
[1127]
在s8102中,如果确定色度样本类型为第一类型,则在对第一分量的重构样本进行滤波中使用第一样本和第二样本,其中从第二重构样本复制第一样本。
[1128]
在s8103中,如果确定色度样本类型不是第一类型,则在对第一分量的重构样本进行滤波中使用第二样本和第三样本,并且排除第一样本,其中第三样本与第一样本或第二样本不同。
[1129]
在s8104中,使用滤波的输出来修改来自不同于第一分量的分量的重构样本。例如,第一分量表示亮度,并且滤波的输出被添加到来自色度分量的重构样本。在另一示例中,第一分量指示色度cr并且将滤波的输出添加到来自色度cb的重构样本。在另一示例中,滤波的输出和重构样本可以相加、相减、相乘、相除或经历数学过程的任何组合以获得修改后的重构样本。
[1130]
在s8105中,使用修改后的重构样本对图像进行解码。例如,修改后的重构样本存储在参考图片缓冲器中。
[1131]
图137a-137d、图138和图139是对称填充的示例的概念图。
[1132]
例如,在图134的s8002中,如果色度样本类型等于0或1并且虚拟边界在c0和c2之间,如图137a所示,则第二样本(c15)的重构样本值被复制到第一样本(c17)。类似地,第二样本(c2)的重构样本值被复制到第一样本(c0)。
[1133]
作为另一示例,在s8002中,如果色度样本类型等于0或1,并且虚拟边界在c15和c17之间,则如图137b所示,则第二样本(c2)的重构样本值被复制到第一样本(c0)。类似地,第二样本(c15)的重构样本值被复制到第一样本(c17)。
[1134]
作为另一示例,在s8002中,如果色度样本类型等于0或1,并且虚拟边界在c2和c6之间,如图137c所示,则第二样本(c10、c11和c12)的重构样本值被复制到第一样本(c14、c15、c16和c17)。类似地,第二样本(c5、c6和c7)的重构样本值被复制到第一样本(c0、c1、c2和c3)。
[1135]
作为另一示例,在s8002中,如果色度样本类型等于0或1,并且虚拟边界在c11和c15之间,如图137d所示,则第二样本(c5、c6和c7)的重构样本值被复制到第一样本(c0、c1、c2和c3)。类似地,第二样本(c10、c11和c12)的重构样本值被复制到第一样本(c14、c15、c16和c17)。
[1136]
图138和图139分别显示了在图137a和图137c中复制的样本的示例。
[1137]
在复制之后,复制的样本被用于第一分量的重构样本的滤波。
[1138]
图140a-140d、图141、图142和图143是非对称填充的示例的概念图。
[1139]
例如,在s8002中,如果色度样本类型等于2或3,并且虚拟边界在c0和c2之间,如图140a所示,则第二样本(c10、c11和c12)的重构样本值被复制到第一样本(c14、c15、c16或c17)。类似地,将第二样本(c2)的重构样本值被复制到第一样本(c0)。
[1140]
在s8002的另一个示例中,如果色度样本类型等于2或3,并且虚拟边界在c15和c17之间,如图140b所示,则第二样本(c15)的重构样本值被复制到第一样本(c17)。
[1141]
在s8002的另一个示例中,如果色度样本类型等于2或3,并且虚拟边界在c2和c6之间,如图140c所示,则第二样本(c4、c5、c6、c7和c8)的重构样本值被复制到第一样本(c9、c10、c11、c12、c13、c14、c15、c16和c17)。类似地,第二样本(c5、c6和c7)的重构样本值被复制到第一样本(c0、c1、c2和c3)。
[1142]
在s8002的另一个示例中,如果色度样本类型等于2或3,并且虚拟边界在c11和c15之间,如图140d所示,则第二样本(c5、c6和c7)的重构样本值被复制到第一样本(c0、c1、c2和c3)。
[1143]
图141、图142和图143分别示出了在图140a、图140c和图140d中复制的样本的示例。
[1144]
在复制之后,复制的样本被用于第一分量的重构样本的滤波中。
[1145]
图144a-144d、图145、图146和图147是非对称填充的进一步示例的概念图。
[1146]
在s8002的一个示例中,如果色度样本类型等于4或5,并且虚拟边界在c0和c2之间,如图144a所示,则第二样本(c2)的重构样本值被复制到第一样本(c0)。
[1147]
在s8002的另一个示例中,如果色度样本类型等于4或5并且虚拟边界在c15和c17之间,如图144b所示,则第二样本(c5、c6和c7)的重构样本值被复制到第一样本(c0、c1、c2和c3)。类似地,第二样本(c15)的重构样本值被复制到第一样本(c17)。
[1148]
在s8002的另一个示例中,如果色度样本类型等于4或5,并且虚拟边界在c2和c6之间,如图144c所示,则第二样本(c15)的重构样本值被复制到第一样本(c17)。类似地,第二样本(c5、c6和c7)的重构样本值被复制到第一样本(c0、c1、c2和c3)。
[1149]
在s8002的另一个示例中,如果色度样本类型等于4或5并且虚拟边界在c11和c15之间,如图144d所示,则第二样本(c9、c10、c11、c12和c13)的重构样本值被复制到第一样本(c0、c1、c2、c3、c4、c5、c6、c7和c8)。
[1150]
图145、图146和图147分别示出了在图144b、图144c和图144d中重复的样本的示例。
[1151]
在复制之后,复制的样本被用于第一分量的重构样本的滤波中。
[1152]
图148a-148d、图149和图150是对称填充的进一步示例的概念图。
[1153]
在s8002的一个示例中,如果色度样本类型等于0、2或4,并且虚拟边界在c4和c5之间,如图148a所示,则第二样本(c7和c12)的重构样本值被复制到第一样本(c8和c13)。类似地,第二样本(c5和c10)的重构样本值被复制到第一样本(c4和c9)。
[1154]
在s8002的另一个示例中,如果色度样本类型等于0、2或4,并且虚拟边界在c7和c8之间,如图148b所示,则第二样本(c5和c10)的重构样本值被复制到第一样本(c4和c9)。类似地,第二样本(c7和c12)的重构样本值被复制到第一样本(c8和c13)。
[1155]
在s8002的另一个示例中,如果色度样本类型等于0、2或4,并且虚拟边界在c5和c6之间,如图148c所示,则第二样本(c2、c6、c11和c15)的重构样本值被复制到第一样本(c1、c4、c5、c9、c10和c14)。类似地,第二样本(c2、c6、c11和c15)的重构样本值被复制到第一样本(c3、c7、c8、c12、c13和c16)。
[1156]
在s8002的另一个示例中,如果色度样本类型等于0、2或4,并且虚拟边界在c6和c7之间,如图148d所示,则第二样本(c2、c6、c11和c15)的重构样本值被复制到第一样本(c1、c4、c5、c9、c10和c14)。类似地,第二样本(c2、c6、c11和c15)的重构样本值被复制到第一样本(c3、c7、c8、c12、c13和c16)。
[1157]
图149和图150分别显示了在图148a和图148c中复制的样本的示例。
[1158]
在复制之后,复制的样本被用于第一分量的重构样本的滤波中。
[1159]
图151a-151c、图152、图153、图154和图155a-155l是非对称填充的进一步示例的概念图。
[1160]
在s8002的一个示例中,如果色度样本类型等于1、3或5,并且虚拟边界在c4和c5之间,如图151a所示,则第二样本(c5和c10)的重构样本值被复制到第一样本(c4和c9)。
[1161]
在s8002的另一个示例中,如果色度样本类型等于1、3或5,并且虚拟边界在c7和c8之间,如图151b所示,则第二样本(c2、c6、c11和c15)的重构样本值被复制到第一样本(c1、c4、c5、c9、c10和c14)。类似地,第二样本(c7和c12)的重构样本值被复制到第一样本(c8和c13)。
[1162]
在s8002的另一个示例中,如果色度样本类型等于1、3或5,并且虚拟边界在c5和c6之间,如图151c所示,则第二样本(c7和c12)的重构样本值被复制到第一样本(c8和c13)。类似地,第二样本(c2、c6、c11和c15)的重构样本值被复制到第一样本(c1、c4、c5、c9、c10和c14)。
[1163]
图152、图153和图154分别示出了在图151a、图151b和图151c152中重复的样本的示例。
[1164]
图155a-155l示出了具有水平和垂直虚拟边界的填充的进一步示例。
[1165]
在复制之后,复制的样本被用于第一分量的重构样本的滤波。
[1166]
本公开说明基于色度样本类型和滤波器中的虚拟边界位置来填充或复制滤波器中使用的样本。这种填充或复制样本的方法提高了图片质量。
[1167]
(变型)
[1168]
色度样本类型可以用另一信息替换,该信息指示第一分量与不同于第一分量的另一分量之间的关系。
[1169]
色度样本类型可以用标志代替,其在虚拟边界处选择对称或非对称填充,其中0选择对称填充,并且1选择非对称填充,或者1选择对称填充,并且0选择非对称填充。
[1170]
该标志可以从比特流用信号通知或可以被推导出。
[1171]
标志的默认值可以是虚拟边界处的对称填充。
[1172]
标志的默认值可以是虚拟边界处的非对称填充。
[1173]
例如,可以基于其他滤波器的开/关状态推导出该标志。例如,如果alf滤波器开启,则标志可以选择对称填充。如果alf滤波器关闭,则该标志可以选择非对称填充。
[1174]
作为另一个示例,如果alf滤波器开启,则该标志可以选择非对称填充。如果alf滤
波器关闭,则该标志可以选择对称填充。
[1175]
可以使用的其他滤波器包括lmcs、sao、dbf和其他后置滤波器。
[1176]
在一些实施例中,可以基于简档来设置标志。
[1177]
虚拟边界可以用图片、切片、砖块、分片或子图片边界来替换。
[1178]
图156是示出根据示例的编码器和解码器的功能配置的框图,其中对称填充用于alf的虚拟边界位置,并且对称或非对称填充用于基于色度样本类型和虚拟边界位置的cc-alf的虚拟边界位置。
[1179]
图157是示出根据另一示例的编码器和解码器的功能配置的框图,其中对称填充用于alf的虚拟边界位置并且单边填充用于cc-alf的虚拟边界位置。
[1180]
图158a-158h是示出具有水平或垂直虚拟边界的单边填充的示例的概念图。
[1181]
图159a-159c是示出具有水平和垂直虚拟边界的单边填充的示例的概念图。
[1182]
ccalf的输入(用于滤波的第一分量的重构样本)不限于sao输出。输入可以来自具有色度缩放(lmcs)、双边/哈达玛或解块滤波器或任何后置滤波器组合的亮度映射的输出。
[1183]
ccalf可以在每个块处开启/关闭。一个块不需要在一个以上的ctu之间重叠。由于alf可以在ctu处开启/关闭,因此可以为其中alf开启的ctu开启ccalf。
[1184]
本文公开的一个或多个方面可以与本公开中的其他方面的至少一部分组合来执行。此外,本文公开的一个或多个方面可以通过将根据各方面的任何流程图中指示的部分过程、任何设备的部分配置、部分句法等与其他方面组合来执行。参考编码器的构成元素描述的各方面可以由解码器的对应构成元素类似地执行。
[1185]
(第九方面)
[1186]
图160是根据第九方面的使用参数对应用ccalf过程的图像进行解码的过程流程9000的示例的流程图。过程流程9000可以例如由图67等的解码器200执行。
[1187]
在s9001中,对ccalf过程的参数进行解码。在这个过程中,可以确定将用于确定对第二参数进行熵解码的模型的第一参数。cb分量的第一参数和cr分量的第一参数可以具有相同的值。作为示例,第一参数可以是指示指数-哥伦布码的二进制位的阶数的k值。k值是与熵解码过程中的信令值的模型相对应的索引。第一参数可以是指示用于熵解码的方法的另一个参数。解码器可以参考第一参数从多个模型中选择模型。举例来说,第二参数可以是指示ccalf过程中使用的滤波器的滤波器系数值的参数,即可以使用由k值指示的阶数用指数-哥伦布码对第二参数进行解码。相同的k值可以应用于ccalf的滤波器中包括的所有滤波器系数。
[1188]
在s9002中,对第一分量的重构图像样本进行滤波。第一分量可以是亮度分量。
[1189]
在s9003中,使用经滤波的值修改第二分量的重构的图像样本。第二分量可以是包括cr分量和cb分量的色度分量。
[1190]
在s9004中,使用滤波后的重构的图像样本对图像进行解码。
[1191]
图161是要在ccalf过程中应用的滤波器的示例的概念图。“sum”可以具有与被描述为菱形样本的样本的值相对应的值。sum可能具有与另一个样本的值相对应的值。可以通过对标有点画图案的相邻亮度样本应用滤波器来导出sum。相邻样本可以位于与这样的样本相邻处:其具有与sum相同的值。在滤波计算中不需要使用与标记有点画图案的样本相邻的以白色标记的相邻样本。
[1192]
图162是滤波过程的样本等式的概念图。ccalf过程的等式的形式可以与alf过程中使用的形式相同。可以通过使用滤波器系数值和亮度样本值执行图162中描述的计算来导出sum。滤波器系数的数量可以不同。
[1193]
图163是关于ccalf的句法的示例的概念图。cb和cr的滤波器系数f[idx[k]]可以在比特流中用信号发送为:alf_cross_component_cb_coeff_abs、alf_cross_component_cb_coeff_sign、alf_cross_component_cr_coeff_abs和alf_cross_component_cr_coeff_sign,如图163中所述。
[1194]
图164是使用具有固定阶数k(表示为egk)的指数-哥伦布码来用信号通知滤波器系数值的示例的概念图。滤波器系数值使用比特0和1二值化。作为示例,cb的系数值、被描述为值x的cb_coeff_abs可以参考由k的值确定的模型用信号发送。当值k为1(eg1)且值x为2时,值x用信号发送为0100。值k可以与不同的信令规则相关联,例如,当值k为1且值x为2时,值x可以用信号发送为1011。
[1195]
图165a、165b、165c和165d是应用于滤波器系数的egk的示例的概念图。例如,用点画图案标记的系数使用eg3用信号通知,使用对角线标记的系数使用eg2用信号通知,并且未标记(白色圆圈)的系数不用于滤波过程。
[1196]
在图165a中,使用相同的egk值用信号通知所有系数。换句话说,用于滤波过程的所有系数都以相同的方式用信号通知。在图165b中,使用相同的egk值仅用信号通知一部分系数。在图165c中,只有一部分用点画图案标记的系数在滤波中被使用,并且在滤波过程中使用的系数使用相同的egk值用信号通知。可以用信号通知用点画图案标记的一部分系数。在图165d中,只有一部分用点画图案或对角线图案标记的系数用于滤波过程中。用点画图案标记的系数和用对角线图案标记的系数使用不同的egk值用信号通知。
[1197]
当条件被设置为满足以相同的方式用信号通知要在滤波过程中使用的所有系数时,图165a和图165c中描述的示例通过条件,并且在图165b和图165d中描述的示例未通过条件。即,在使用多个滤波器系数导出一个sum值的条件下,表示多个滤波器系数的编码和解码值中要使用的eg阶数的值k可以只有一个值。
[1198]
图166a和图166b是应用于滤波器系数的egk的示例的概念图。例如,用点画图案标记的系数使用eg3用信号通知,而用对角线图案标记的系数使用eg2用信号通知。
[1199]
在166a中,cb_coeff_abs的eg阶数可以与cr_coeff_abs相同。例如,eg3用于cb_coeff_abs并且eg3用于cr_coeff_abs。在图166b中,cb_coeff_abs的eg阶数可以与cr_coeff_abs不同。例如,eg3用于cb_coeff_abs,但eg2用于cr_coeff_abs。
[1200]
图167a和图167b是应用于滤波器系数的egk的示例的概念图。例如,用点画图案标记的系数使用eg3用信号通知,用对角线图案标记的系数使用eg2用信号通知,并且未标记的系数不用于滤波过程中。
[1201]
在图167a中,cb_coeff_abs的eg阶数可以与cr_coeff_abs相同。例如,eg3用于cb_coeff_abs,并且eg3用于cr_coeff_abs。
[1202]
在图167b中,cb_coeff_abs的eg阶数可以与cr_coeff_abs不同。例如,eg3用于cb_coeff_abs,但eg2用于cr_coeff_abs。
[1203]
图168a和图168b是应用于滤波器系数的egk的示例的概念图。例如,用点画图案标记的系数使用eg3用信号通知,以对角线图案标记的系数使用eg2用信号通知。
[1204]
在图168a,不同ctu的eg阶数可以不同。例如,eg3用于ctu1,但eg2用于ctu2。
[1205]
在图168b中(其中样本用于滤波),并非所有系数都对ctu2使用相同的egk。
[1206]
指示要在编码和解码滤波器系数中使用的eg阶数的值k可以被确定为用于每个ctu的一个值。即,可以针对每个ctu确定值k。值k可以在另一个级别确定,例如在cu、砖、切片、分片、子图片、图片或序列的级别。值k可以预先确定或在比特流中用信号通知。
[1207]
用于导出cr的样本值的值k和用于导出cb的样本值的值k可以具有相同的值或不同的值。
[1208]
不同的滤波器可以应用于不同的cu、ctu或cr或cb的切片。在这种情况下,可以在每个滤波器中使用不同的值k。
[1209]
图169是在alf过程中使用的参数的句法的示例的概念图。表示为alf_luma_coeff_abs的亮度系数值和表示为alf_chroma_coeff_abs的色度系数值可以使用相同的k值用信号通知。
[1210]
在图169中,alf_luma_coeff_abs[sfidx][j]指定由sfidx指示的用信号通知的亮度滤波器的第j个系数的绝对值。当alf_luma_coeff_abs[sfidx][j]不存在时,推断为等于0。
[1211]
exp-golomb二值化uek(v)的阶数k设置为等于3。
[1212]
alf_chroma_coeff_abs[altidx][j]指定具有索引altidx的替代色度滤波器的第j个色度滤波器系数的绝对值。当alf-chroma_coeff_abs[altidx][j]不存在时,推断为等于0。比特流一致性的要求是alf_chroma_coeff_abs[altidx][j]的值应在0到2
7-1的范围内(包括0和2
7-1)。
[1213]
exp-bolomb二值化uek(v)的阶数k设置为等于3。
[1214]
图170是ccalf过程中使用的参数的句法的示例的概念图。表示为alf_cross_component_cb_coeff_abs的cb的系数值和表示为alf_cross_component_cr_coeff_abs的cr的系数值可以使用相同的k值用信号通知。即,用于ccalf参数的熵编码的相同参数可以应用于cb和cr。
[1215]
在图170中,alf_cross_component_cb_oeff_abs[j]指定用信号通知的交叉分量cb滤波器的第j个系数的绝对值。当alf_cross_component_cb_coeff_abs[j]不存在时,推断为等于0。
[1216]
exp-golomb的阶数k设置为等于3。
[1217]
alf_cross_component_cr_coeff_abs[j]指定信号交叉分量cr滤波器的第j个系数的绝对值。当alf-cross_component_cr_coeff_abs[j]不存在时,推断为等于0。
[1218]
exp-bolomb的阶数k设置为等于3。
[1219]
在图169和图170中,alf和ccalf滤波器系数二者都使用固定的egk用信号通知。即,eg阶数k是固定的。alf和ccalf的固定eg阶数k可以不同。例如,3用于alf,但4用于ccalf cb_coeff_abs和cr_coeff_abs。ccalf cb_coeff_a和cr_coeff_abs的固定eg阶数k可以不同。例如,3用于cb_coeff_abs,但4用于cr_coeff_abs。
[1220]
(第十方面)
[1221]
图171是根据第十方面的使用一组系数对应用ccalf过程的图像进行解码的过程流程10000的示例的流程图。过程流程10000可以例如由图67等的解码器200执行。
[1222]
在s10001中,解析一组系数。该组系数中包含的系数数量等于n。
[1223]
在s10002中,使用该组系数对第一分量的重构的图像样本进行滤波。重构的图像样本的数量等于n。第一分量可以是y分量。滤波重构的图像样本可以是一组自适应环路滤波器的输出,该滤波器应用于sao过程后生成的重构的亮度样本;
[1224]
在s10003中,使用经滤波的值修改第二分量的重构图像样本。第二分量不同于第一分量。第二分量可以是cb/cr分量。修改后的重构图像样本可以是alf过程后的第二分量的经滤波的样本与第一分量的经滤波的重构的样本之和;
[1225]
在s10004中,对第二分量的修改后的重构的图像样本进行解码。重构的图像样本可以被剪裁。对修改后的重构图像样本应用剪裁过程;例如,对于10位输出,可以将修改后的重构的图像样本剪裁到[0,1023]的范围。
[1226]
要修改的重构的图像样本是使用经滤波的值和差值生成的。不能对生成的样本值的输出应用剪裁。
[1227]
在用于色度的alf过程中,最终输出可能会被剪裁为10位值。可以不对最终输出执行剪裁过程,并且可以对修改后的重构的图像样本执行剪裁过程。
[1228]
图172a、172b、172c和172d是滤波器系数组的形状的示例的概念图。
[1229]
图172a和图172c示出了具有3
×
4菱形形状的8抽头ccalf滤波器的示例。滤波器系数的位置对应于第一分量的重构的图像样本的位置。待修改的第二分量的重构图像样本可以位于标记为2的位置处。待修改的第二分量的重构的图像样本可以位于2至5之间。第一系数值可以通过推导位于2处的第一重构的图像样本的值与位于0、1、3、4、5、6和7处的第一重构的图像样本的值之间的差而生成。
[1230]
图173a、图173b、图173c和图173d是第一分量和第二分量的重构的样本的位置的示例的概念图。
[1231]
当第二分量的重构的图像样本位于(x,y)处时,第一分量的重构的样本的位置在图173a、图173b、图173c和图173d中给出。
[1232]
在图173a中,滤波器系数的数量是8。每个系数可以具有不同的值。当第二重构的图像样本的坐标为(x,y)时,第一重构图像样本的坐标为(2x,2y-1)、(2x-1,2y)、(2x,2y)、(2x 1,2y)、(2x-1,2y 1)、(2x,2y 1)、(2x 1,2y 1)和(2x,2y 2)。第一系数值是通过将ccalf滤波器的滤波器系数值乘以以下二者的相减结果而产生的:第一重构的图像样本(2x,2y-1)、(2x-1,2y)、(2x,2y),(2x 1,2y),(2x-1,2y 1),(2x,2y 1),(2x 1,2y 1)和(2x,2y 2)之一的值;与位于(2x,2y)处的第一重构图像样本的值。可以以与第六实施例中描述的方式相同的方式来执行第一系数值的推导过程。
[1233]
在图173b中,滤波器系数的数量是6。
[1234]
在图173c中,第一个和最后一个系数具有相同的值。有7个系数。
[1235]
在图173d中,对称结构用于减少系数的数量。
[1236]
注意,像alf虚拟边界或ccalf虚拟边界的虚拟边界可以应用于图173a、图173c和图173d。虚拟边界可以不应用于图173b。
[1237]
需要注意的是,当启用或使用无损编码时,ccalf可以不应用于cu区域。
[1238]
虚拟边界过程是一种控制规则,以减少要用于超出边界(例如,分片边界、切片边界或ctu边界等)的滤波过程的参考图像样本的行数。作为一个示例,当虚拟边界被定义为2
个像素行,跨越边界的要被参考的参考图像样本的行是2个像素行,并且使用由填充过程产生的像素来执行滤波过程。作为另一个示例,当滤波器形状是图173a、图173c或图173d中描述的形状之一时,参考与当前像素(x,y)的上边相邻的相邻像素以用于滤波过程并且启用虚拟边界过程。当滤波器形状是图173b中描述的形状时,可以不参考与当前像素的上边相邻的相邻像素来执行滤波过程,并且可以禁用虚拟边界过程以减少处理量。
[1239]
无损编码模式是一种用于跳过变换过程和量化过程的模式。当使用无损编码模式处理cu时,cu的编码图片和解码图片与输入图片(无损)相同。ccalf过程可能在无损模式下被禁用。在无损编码模式下禁用ccalf过程时,将禁用通过滤波过程修改像素值,并且可以保证无损。
[1240]
(第十一方面)
[1241]
图174是根据第十一方面的使用基于其他块选择的上下文模型来对应用ccalf过程的图像进行解码的过程流程11000的示例的流程图。过程流程11000可以例如由图67等的解码器200执行。
[1242]
在s11001中,确定第一块标志。第一块标志指示是否为第一块启用滤波器。在示例中,第一块是与第三块相邻的空间相邻块。在一个示例中,第一块标志可以指示是否为第一块启用了ccalf滤波器。如果启用了ccalf滤波器,则第一块标志可以设置为1。如果禁用ccalf滤波器,则可以将第一块标志设置为0。如果第一块不可用,则可以将第一块标志设置为0。可以从比特流中解析第一块标志。
[1243]
在s11002中,确定第二块标志。第二块标志指示是否为第二块启用了滤波器。在一个示例中,第二块不同于第一块和与第三块相邻的空间相邻块。在一个示例中,第二块标志可以指示是否为第二块启用了ccalf滤波器。如果启用了ccalf滤波器,则第二块标志可以设置为1。如果禁用ccalf滤波器,则第二块标志可以设置为0。如果第二块不可用,则可以将第二块标志设置为0。可以从比特流解析第二块标志。
[1244]
图175a、图175b、图175c和图175d是第一块和第二块的位置的示例的概念图。在图175a中,第一块与第三块在空间上相邻且位于第三块的左侧。第二块与第三块在空间上相邻且位于第三块的上侧。在图175b中,第一块与第三块在空间上相邻且位于第三块的上侧。第二块与第三块在空间上相邻且位于第三块的左侧。在图175c中,第一块与第三块在空间上相邻且位于第三块的右侧。第二块与第三块在空间上相邻且位于第三块的上侧。在图175d中,第一块与第三块在空间上相邻且位于第三块的上侧。第二块与第三块在空间上相邻且位于第三块的右侧。在图175a、图175b、图175c和图175d中,第一块和第二块与第三块位于同一图片上。第三块可以是当前块。
[1245]
图176是第一块和第二块的位置的另一示例的概念图。在图176中,第一块和第二块位于不同的图片上,即第一块和第二块与第三块在时间上相邻。在该示例中,第一块和第二块在空间上与第三块的共置块相邻。
[1246]
在s11003中,从多个上下文模型中选择上下文模型。可以基于从第一块标志、第二块标志和指示颜色分量的第一值计算的第二值来选择上下文模型。第一值可以是与第三块的颜色分量相关联地确定的第一索引的值。第二值可以是指示上下文模型并通过使用第一块标志、第二块标志和第一索引的值的计算导出的第二索引的值。
[1247]
在示例中,根据第一块标志的值、第二块标志的值和指示颜色分量的第一值的总
和计算第二值。图177是计算第二值的等式的示例。在图177中,第一标志的值代入condl,第二标志的值代入conda,并且第一索引的第一值代入ctxsetidx。在此示例中,第二索引的第二值表示为ctxidx。
[1248]
图178是用于第三标志的ctxidx的initvalue和shiftidx的示例的表。initvalue和shiftidx是用于上下文模型的值,并且可以映射到ctxidx的值。图179是计算出的ctxidx的示例的表格。在本示例中,当要处理的颜色分量为cb分量时,ctxsetidx设置为0。当要处理的颜色分量为cr分量时,ctxsetidx设置为1。在另一示例中,cr分量的ctxsetidx可以为0并且与cb分量的ctxsetidx相同。在这种情况下,为cb和cr计算的ctxidx可以具有相同的值。
[1249]
图180是第三标志的ctxidx的initvalue和shiftidx的另一个示例的表格。图181是计算出的ctxidx的另一个示例的表格。在本示例中,当要处理的颜色分量为cb分量时,ctxsetidx设置为1。当要处理的颜色分量是cr分量时,ctxsetidx设置为2。
[1250]
在s11004中,使用选择的上下文模型对第三块的第三标志进行解码。在一个示例中,第三块是当前块,并且第三标志指示对于当前块是否启用了ccalf滤波器。第三标志可以是指示是否对当前块的cb分量应用ccalf过程的标志。第三标志可以是指示是否对当前块的cr分量应用ccalf过程的标志。
[1251]
在s11005中,基于第三标志判断是否启用滤波器。在一个示例中,滤波器是ccalf。如果第三标志为真(true),则滤波器被启用。如果第三标志为假(false),则滤波器被禁用。在另一示例中,当第三标志为真时可以应用滤波器,并且当第三标志为假时可以不应用滤波器。
[1252]
在s11006中,如果判断滤波器被启用(s11005中的是),则执行ccalf过程。对第一分量的重构的图像样本进行滤波。第一分量可以是亮度分量。
[1253]
在s11007中,使用滤波的输出来修改与第一分量不同的分量的重构的图像样本。该分量可以是cb分量。该分量可以是cr分量。
[1254]
在s11008中,使用分量的修改后的重构的图像样本对图像进行解码。
[1255]
ccalf过程可以与其他实施例中描述的过程相同。
[1256]
本实施例介绍了用于ccalf滤波器控制标志的上下文模型选择。上下文模型选择过程可以与另一个滤波器中的相同过程(例如,alf)相协调。这种设计可以减少编解码器的逻辑设计。
[1257]
alf控制标志的计算出的ctxidx的示例可以与图181所示的示例相同。
[1258]
可以为每个ctu确定ccalf控制标志。可以分别为cb分量和cr分量确定ccalf控制标志。
[1259]
用于ccalf滤波控制标志的上下文模型选择逻辑与alf滤波控制标志使用相同的上下文模型选择逻辑。
[1260]
ccalf滤波控制标志的上下文模型选择方法与alf滤波控制标志使用相同的上下文模型选择方法。例如,图177中描述的等式的方法可用于ccalf和alf二者。在这种情况下,用于alf的对应标志可以是alf_ctb_flag,并且它可以指示alf是否应用于当前块。对于alf滤波控制标志,ctxsetidx可以如图181中描述的那样设置。
[1261]
(实现方式和应用)
[1262]
如在上述每个实施例中所描述的,例如,每个功能块或操作块通常可以被实现为mpu(微处理单元)和存储器。此外,由每个功能块执行的过程可以被实现为程序执行单元,例如读取并执行记录在诸如rom之类的记录介质上的软件(程序)的处理器。软件可以被分发。软件可以记录在各种记录介质上,例如半导体存储器。注意,每个功能块也可以实现为硬件(专用电路)。可以采用硬件和软件的各种组合。
[1263]
在每个实施例中描述的处理可以使用单个装置(系统)经由集成处理来实现,替代地可以使用多个装置经由分散处理来实现。此外,执行上述程序的处理器可以是单个处理器或多个处理器。换句话说,可以执行集成处理,并且替代地可以执行分散处理。
[1264]
本公开的实施例不限于上述示例性实施例;可以对示例性实施例进行各种修改,其结果也包括在本公开的实施例的范围内。
[1265]
接下来,将描述在上述每个实施例中描述的运动图片编码方法(图像编码方法)和运动图片解码方法(图像解码方法)的应用示例以及实现该应用示例的各种系统。这种系统的特征在于包括采用图像编码方法的图像编码器、采用图像解码方法的图像解码器、或包括图像编码器和图像解码器两者的图像编码器-解码器。这种系统的其他配置可以在每种情况的基础上进行修改。
[1266]
(使用示例)
[1267]
图182示出了适合实现内容分发服务的内容提供系统ex100的整体配置。提供通信服务的区域被划分为期望尺寸的小区,并且作为示出示例中的固定无线站的基站ex106、ex107、ex108、ex109和ex110位于相应小区中。
[1268]
在内容提供系统ex100中,包括计算机ex111、游戏设备ex112、相机ex113、家用电器ex114和智能手机ex115的设备经由互联网服务提供商ex102或通信网络ex104和基站ex106至ex110连接到互联网ex101。内容提供系统ex100可以组合和连接上述设备的任意组合。在各种实现方式中,设备可以直接或经由电话网络或近场通信而不是经由基站ex106至ex110间接连接在一起。此外,流服务器ex103可以经由例如互联网ex101连接到包括计算机ex111、游戏设备ex112、相机ex113、家用电器ex114和智能手机ex115的设备。流服务器ex103还可以经由卫星ex116连接到例如飞机ex117中的热点中的终端。
[1269]
注意,代替基站ex106至ex110,可以使用无线接入点或热点。流服务器ex103可以直接连接到通信网络ex104而不是经由互联网ex101或互联网服务提供商ex102,并且可以直接连接到飞机ex117而不是经由卫星ex116。
[1270]
相机ex113可以是能够捕捉静止图像和视频的设备,例如数码相机。智能手机ex115可以是在2g、3g、3.9g和4g系统以及下一代5g系统的移动通信系统标准下操作的智能手机设备、蜂窝电话或个人手持电话系统(phs)电话。
[1271]
家用电器ex114例如是冰箱或家用燃料电池热电联产系统中包括的设备。
[1272]
在内容提供系统ex100中,包括图像和/或视频捕获功能的终端能够例如通过经由例如基站ex106连接到流服务器ex103来实况流送媒体。在实况流送时,终端(例如,计算机ex111、游戏设备ex112、相机ex113、家用电器ex114、智能手机ex115或飞机ex117中的终端)可以对用户经由终端所捕获的静止图像或视频内容进行以上实施例描述的编码处理,可以复用经由编码获得的视频数据和通过编码对应于视频的音频获得的音频数据,并可以将获得的数据传输到流服务器ex103。换句话说,终端用作根据本公开的一个方面的图像编码
器。
[1273]
流服务器ex103将传输的内容数据流送到请求流的客户端。客户端示例包括能够对上述编码数据进行解码的计算机ex111、游戏设备ex112、相机ex113、家用电器ex114、智能手机ex115和飞机ex117内的终端。接收流送的数据的设备可以解码和再现接收到的数据。换句话说,根据本公开的一个方面,设备均可以用作图像解码器。
[1274]
(分散化处理)
[1275]
流服务器ex103可以实现为多个服务器或计算机,在这些服务器或计算机之间划分诸如数据的处理、记录和流送之类的任务。例如,流服务器ex103可以实现为内容交付网络(cdn),其经由连接位于世界各地的多个边缘服务器的网络来流送内容。在cdn中,物理上靠近客户端的边缘服务器可以被动态分配给客户端。内容被缓存并流送到边缘服务器以减少加载时间。例如,在例如由于业务突增引起的某种类型的错误或连接变化的情况下,可以以高速稳定地流送数据,因为可以通过例如以下方式避免网络的受影响部分:在多个边缘服务器之间划分处理,或者将流送职责切换到不同的边缘服务器并继续流送。
[1276]
分散不仅限于流送处理的划分;捕获的数据的编码可以在终端之间划分、由终端执行、在服务器侧或两者上执行。在一个示例中,在典型的编码中,处理在两个循环中执行。第一循环用于在逐帧或逐场景的基础上检测图像的复杂程度,或检测编码负荷。第二循环用于保持图像质量和提高编码效率的处理。例如,通过让终端执行第一循环的编码,并让接收内容的服务器侧执行第二循环的编码,可以减少终端的处理负荷,并提高内容的质量和编码效率。在这种情况下,在接收到解码请求时,可以近似实时地在另一终端上接收和再现由一个终端执行的第一循环产生的编码数据。这可以实现平滑的实时流送。
[1277]
在另一示例中,相机ex113等从图像中提取特征量(特征量或特性量),将与特征量相关的数据压缩为元数据,并将压缩的元数据传输到服务器。例如,服务器基于特征量来确定对象的重要性,并相应地改变量化精度以执行适合图像意义(或内容重要性)的压缩。在由服务器执行的第二遍压缩期间,特征量数据在提高运动向量预测的精度和效率方面特别有效。此外,具有相对低处理负荷的编码(例如,可变长度编码(vlc))可以由终端处理,而具有相对高处理负荷的编码(例如,上下文自适应二进制算术编码(cabac))可以由服务器处理。
[1278]
在又一示例中,存在由例如体育场、购物中心或工厂中的多个终端捕获大致相同场景的多个视频的情况。在这种情况下,例如,可以通过在捕获视频的多个终端之间以及在必要时在未捕获视频的其他终端和服务器之间在每单位的基础上划分处理任务来分散编码。单位可以是例如图片组(gop)、图片或由划分图片产生的分片。这可以减少加载时间并实现更接近实时的流送。
[1279]
由于视频是大致相同的场景的,因此可以由服务器执行管理和/或指令,从而由终端捕获的视频可以交叉引用。此外,服务器可以从终端接收编码的数据,改变数据项之间的引用关系,或者自行校正或替换图片,然后执行编码。这可以为各个数据项生成具有更高质量和效率的流。
[1280]
此外,服务器可以在执行转码以对视频数据的编码格式进行转换之后流送视频数据。例如,服务器可以将编码格式从mpeg转换为vp(例如,vp9),可以将h.264转换为h.265等。
[1281]
这样,编码可以由终端或者一个或多个服务器执行。因此,虽然执行编码的设备在以下描述中被称为“服务器”或“终端”,但是由服务器执行的部分或全部过程可以由终端来执行,并且同样地,由终端执行的部分或全部过程可以由服务器执行。这也适用于解码过程。
[1282]
(3d,多角度)
[1283]
通过诸如相机ex113和/或智能手机ex115之类的多个终端,越来越多地使用从同时捕获的不同场景或从不同角度捕获的相同场景的图像或视频组合的图像或视频。例如,可以基于单独获得的在终端或具有匹配特征点的视频中的区域之间的相对位置关系,来组合由终端捕获的视频。
[1284]
除了二维移动图片的编码之外,服务器还可以基于移动图片的场景分析来编码静止图像,例如自动或在用户指定的时间点,并将编码的静止图像传输到接收终端。此外,当服务器能够获得在视频捕获终端之间的相对位置关系时,除了二维移动图片外,服务器还可以基于从不同角度捕获的相同场景的视频来生成场景的三维几何图形。服务器可以对从例如点云生成的三维数据进行单独编码,并且基于使用三维数据识别或跟踪人或对象的结果,可以根据由多个终端捕获的视频选择或重构并生成待传输到接收终端的视频。
[1285]
这允许用户通过自由选择对应于视频捕获终端的视频来欣赏场景,并且允许用户欣赏通过从根据多个图像或视频重构的三维数据中提取所选视点处的视频而获得的内容。此外,与视频一样,可以从相对不同的角度记录声音,并且服务器可以复用来自特定角度或空间的音频和对应的视频,并传输复用的视频和音频。
[1286]
近年来,是现实世界和虚拟世界的复合的内容(例如,虚拟现实(vr)和增强现实(ar)内容)也变得流行。在vr图像的情况下,服务器可以从左眼和右眼二者的视点创建图像,并执行容许在两个视点图像之间的引用的编码,例如多视图编码(mvc),并且替代地可以将图像编码为单独的流而不引用。当图像被解码为单独流时,可以在再现时同步流,以便根据用户的视点来重新创建虚拟的三维空间。
[1287]
在ar图像的情况下,服务器可以将存在于虚拟空间中的虚拟对象信息叠加到表示现实世界空间的相机信息上,例如基于从用户角度来看的三维位置或移动。解码器可以获得或存储虚拟对象信息和三维数据,基于从用户角度来看的运动生成二维图像,然后通过无缝连接图像生成叠加数据。替代地,除了对虚拟对象信息的请求之外,解码器还可以向服务器传输从用户角度来看的运动。服务器可以根据接收到的运动基于存储在服务器中的三维数据来生成叠加数据,并将生成的叠加数据编码并流送到解码器。注意,叠加的数据通常除了rgb值之外还包括表示透明度的α值,并且服务器针对除了从三维数据生成的对象之外的部分将α值设置为例如0,并且可以在这些部分是透明的同时执行编码。替代地,服务器可以将背景设置为确定出的rgb值,例如色度键,并生成将除了对象以外的区域设置为背景的数据。确定出的rgb值可以是预先确定的。
[1288]
类似流送的数据的解码可以由客户端(例如,终端)在服务器侧执行,或者在它们之间进行划分。在一个示例中,一个终端可以向服务器传输接收请求,所请求的内容可以由另一终端接收和解码,并且解码后的信号可以被传输到具有显示器的设备。可以通过分散处理并适当地选择内容(而不管通信终端本身的处理能力)来再现高图像质量数据。在又一示例中,例如在tv正接收大尺寸的图像数据的同时,可以在tv的一个或多个观看者的一个
或多个个人终端上解码和显示图片区域(例如,通过划分图片获得的分片)。这使得观看者可以共享大图视图以及使得每个观看者可以检查他或她的指定的区域,或者更详细地近距离检查区域。
[1289]
在室内或室外的近距离、中距离和远距离上可以进行多个无线连接的情况下,可以使用诸如mpeg-dash之类的流送系统标准来无缝地接收内容。用户可以在自由选择解码器或显示装置(包括用户终端、布置在室内或室外的显示器等)的同时在数据之间实时切换。此外,使用例如关于用户位置的信息,可以执行解码,同时切换哪个终端处理解码并且哪个终端处理内容的显示。这可以在用户在前往目的地的途中、在嵌入了能够显示内容的设备的附近建筑物的墙壁上、或在地面的一部分上映射和显示信息。此外,还可以基于对网络上的编码的数据的可访问性来切换接收的数据的比特率,例如当编码的数据被缓存在可从接收终端快速访问的服务器上时,或者当编码的数据被复制到内容交付服务中的边缘服务器时。
[1290]
(网页优化)
[1291]
例如,图183示出了计算机ex111上的网页的显示屏幕的示例。例如,图176示出了智能手机ex115上的网页的显示屏幕的示例。如图183和图184所示,网页可以包括作为到图像内容的链接的多个图像链接,并且网页的外观可以取决于用于查看网页的设备而不同。当在屏幕上可查看多个图像链接时,直到用户明确选择图像链接,或者直到图像链接位于屏幕的近似中心或整个图像链接适于屏幕中,显示装置(解码器)可以将内容中包含的静止图像或i图片作为图像链接显示;可以使用多个静止图像或i图片显示视频,例如动画gif;或者可以只接收基本层,并解码和显示视频。
[1292]
当用户选择图像链接时,显示装置在例如给予基本层最高优先级的同时执行解码。注意,如果网页的html代码中存在指示内容可缩放的信息,则显示装置可以解码直到增强层。此外,为了促进实时再现,在进行选择之前或当带宽受到严重限制时,通过仅解码和显示前向引用图片(i图片、p图片、前向引用b图片),显示装置可以减少在前导图片被解码的时间点和解码图片被显示的时间点之间的延迟(即,在开始内容解码到显示内容之间的延迟)。此外,显示装置可以故意忽略图片之间的引用关系,并且将所有b图片和p图片粗解码为前向引用图片,然后随着接收到的图片数量随时间增加而执行常规解码。
[1293]
(自主驾驶)
[1294]
当针对汽车自主驾驶或辅助驾驶发送和接收诸如二维或三维地图信息之类的静止图像或视频数据时,除了属于一层或多层的图像数据外,接收终端还可以接收例如关于作为元数据的天气或道路建设的信息,并在进行了解码时将元数据与图像数据相关联。注意,元数据可以按层指派,并且替代地可以简单地与图像数据复用。
[1295]
在这种情况下,由于包含接收终端的汽车、无人机、飞机等是移动的,所以在通过传输指示接收终端的位置的信息而在基站ex106至ex110中的基站之间切换的同时,接收终端可以无缝地接收和执行解码。此外,根据用户进行的选择、用户的情况和/或连接的带宽,接收终端可以动态选择接收到元数据什么程度,或者地图信息例如更新到什么程度。
[1296]
在内容提供系统ex100中,客户端可以实时接收、解码和再现由用户发送的编码信息。
[1297]
(个人内容的流送)
[1298]
在内容提供系统ex100中,除了高图像质量之外,由视频分发实体分发的长内容、低图像质量的单播或多播流送、以及来自个人的短内容也是可能的。来自个人的此类内容的流行性可能会进一步增加。服务器可以在编码处理之前首先对内容执行编辑处理,以便细化个体内容。例如,这可以使用以下配置来实现。
[1299]
实时地,在捕获视频或图像内容的同时,或者在捕获并积累内容之后,服务器基于原始数据或编码的数据执行识别处理,例如捕获错误处理、场景搜索处理、含义分析和/或对象检测处理。然后,基于识别处理的结果,服务器例如在被提示时或自动地编辑内容,其示例包括:校正,例如焦点和/或运动模糊校正;移除低优先级场景,例如与其他图片相比亮度较低、或失焦的场景;对象边缘调整;以及色调调整。服务器基于编辑结果对编辑后的数据进行编码。众所周知,过长的视频往往会收到较少的观看。因此,为了将内容保持在与原始视频长度成比例的特定长度内,除了上述低优先级场景外,服务器还可以基于图像处理结果自动剪裁出具有低运动的场景。替代地,服务器可以基于场景含义的分析结果来生成和编码视频摘要。
[1300]
可能存在个体内容可能包括侵犯版权、道德权利、肖像权等的内容的情况。这种情况可能导致对创作者不利的情况,例如内容共享超出创作者预期范围。因此,在编码之前,服务器可以例如编辑图像以便模糊屏幕边缘的人脸或模糊房屋内部。此外,服务器可以被配置为在待编码的图像中识别除注册的人之外的人的面部,并且当这样的面部出现在图像中时,可以将马赛克过滤器(mosaic filter)应用于例如该人的面部。替代地,作为编码的预处理或后处理,出于版权原因,用户可以指定图像中包括人或待处理的背景区域的区域。服务器可以通过例如用不同的图像替换该区域或者模糊该区域来处理指定区域。如果该区域包括人,则可以在移动图片中跟踪该人,并且随着该人的移动,用另一图片替换该人的头部区域。
[1301]
由于由个人产生的内容有实时观看的需求,数据量往往较小,因此解码器可以首先接收基本层作为最高优先级,并且执行解码和再现,但是这可能会根据带宽而有所不同。当内容被再现两次或更多次时,例如当解码器在基本层的解码和再现期间接收增强层并且循环该再现时,解码器可以再现包括增强层的高图像质量视频。如果使用这种可缩放编码对流进行编码,则在处于未选择状态或在视频开始时视频可能是低质量的,但它可以提供这样的体验:流的图像质量以智能方式逐渐增加。这不仅限于可缩放编码;通过从第一次再现的低质量流和使用第一流作为参考编码的第二流来配置单个流,可以提供相同的体验。
[1302]
(其他实现方式和应用示例)
[1303]
编码和解码可由lsi(大规模集成电路)ex500(见图182)执行,其通常包含于每个终端中。lsi ex500可以根据单个芯片或多个芯片配置。对移动图片进行编码和解码的软件可以集成到例如计算机ex111可读的某种类型的记录介质(例如,cd-rom、软盘或硬盘)中,并且编码和解码可以使用软件执行。此外,当智能手机ex115配备有相机时,可以传输由相机获得的视频数据。在这种情况下,视频数据可以由智能手机ex115中包括的lsi ex500编码。
[1304]
注意,lsi ex500可以被配置为下载和激活应用。在这种情况下,终端首先确定它是否与用于编码内容的方案兼容,或者它是否能够执行特定服务。当终端与内容的编码方案不兼容时,或者当终端不能执行特定服务时,该终端可以首先下载编解码器或应用软件,
然后获得并再现内容。
[1305]
除了使用互联网ex101的内容提供系统ex100的示例之外,至少可以在数字广播系统中实现上述实施例中描述的移动图片编码器(图像编码器)或移动图片解码器(图像解码器)。相同的编码处理和解码处理可以应用于使用例如卫星发送和接收叠加有复用的音频和视频数据的广播无线电波,即使这是面向多播的也是如此,而在内容提供系统ex100的情况下单播更容易。
[1306]
(硬件配置)
[1307]
图185示出了在图182中所示的示例性智能手机ex115的进一步细节。图186示出了智能手机ex115的功能配置示例。智能手机ex115包括:用于向基站ex110发送无线电波和从基站ex110接收无线电波的天线ex450,能够捕获视频和静止图像的相机ex465,以及显示解码的数据(例如,由相机ex465捕获的视频和由天线ex450接收的视频)的显示器ex458。智能手机ex115还包括:用户接口ex466,例如触摸面板;音频输出单元ex457,例如用于输出语音或其他音频的扬声器;音频输入单元ex456,例如用于音频输入的麦克风;能够存储解码的数据的存储器ex467,例如捕获的视频或静止图像、记录的音频、接收到的视频或静止图像和邮件,以及解码的数据;以及插槽(slot)ex464,其是用于sim ex468的接口,以用于授权访问网络和各种数据。注意,代替或附加于存储器ex467,可以使用外部存储器。
[1308]
主控制器ex460(其可以综合地控制显示器ex458和用户接口ex466),电源电路ex461,用户接口输入控制器ex462,视频信号处理器ex455,相机接口ex463,显示控制器ex459,调制器/解调器ex452,复用器/解复用器ex453,音频信号处理器ex454、插槽ex464和存储器ex467经由总线ex470连接。
[1309]
当用户打开电源电路ex461的电源按钮时,智能手机ex115通电进入可操作状态,并且每个组件例如由电池组供电。
[1310]
智能手机ex115基于由包括cpu、rom、ram的主控制器ex460执行的控制,来执行用于例如呼叫和数据传输的处理。在进行呼叫时,由音频输入单元ex456记录的音频信号通过音频信号处理器ex454转换为数字音频信号,通过调制器/解调器ex452对所述数字音频信号应用扩频处理并且对其应用数模转换,并通过发射机/接收机ex451应用变频处理,并且所得的信号经由天线ex450传输。接收到的数据通过调制器/解调器ex452放大、频率转换、模数转换、逆扩频处理,通过音频信号处理器ex454转换成模拟音频信号,然后从音频输出单元ex457输出。
[1311]
例如,在数据传输模式中,可以基于主体的用户接口ex466的操作,在主控制器ex460的控制下经由用户接口输入控制器ex462传输文本、静止图像或视频数据。类似的发送和接收处理被执行。在数据传输模式下,当发送视频、静止图像或视频和音频时,视频信号处理器ex455经由上述实施例中描述的移动图片编码方法对存储在存储器ex467中的视频信号或从相机ex465输入的视频信号进行压缩编码,并将编码的视频数据传输到复用器/解复用器ex453。音频信号处理器ex454对由音频输入单元ex456记录的音频信号进行编码(在相机ex465正在捕获视频或静止图像的同时),并将编码的音频数据传输到复用器/解复用器ex453。复用器/解复用器ex453使用确定的方案来复用编码的视频数据和编码的音频数据,使用调制器/解调器(调制器/解调器电路)ex452和发射机/接收机ex451调制和转换数据,并经由天线ex450传输结果。确定的方案可以是预先确定的。
[1312]
当接收到附在电子邮件或聊天中的视频或从网页链接的视频时,例如,为了对经由天线ex450接收到的复用数据进行解码,复用器/解复用器ex453对复用的数据进行解复用以将复用的数据划分为视频数据的比特流和音频数据的比特流,将编码后的视频数据经由同步总线ex470提供给视频信号处理器ex455,并经由同步总线ex470将编码后的音频数据提供给音频信号处理器ex454。视频信号处理器ex455使用与上述实施例中描述的移动图片编码方法相对应的移动图片解码方法对视频信号进行解码,并且包含于链接的移动图片文件中的视频或静止图像经由显示控制器ex459显示在显示器ex458上。音频信号处理器ex454解码音频信号并从音频输出单元ex457输出音频。由于实时流送变得越来越流行,因此取决于用户的环境,可能存在音频的再现在社交方面不合适的情况。因此,作为初始值,其中仅再现视频数据(例如,不再现音频信号)的配置可能是优选的;可以仅当接收到输入时,例如当用户点击视频数据时,才同步和再现音频。
[1313]
虽然在上面的示例中使用了智能手机ex115,但其他实现方式也是可以想象的:包括编码器和解码器二者的收发机终端;仅包括编码器的发射机终端;以及仅包括解码器的接收机终端。在数字广播系统的描述中,给出了接收或发送作为视频数据与音频数据复用的结果而获得的复用的数据的示例。然而,复用的数据可以是与音频数据以外的数据(例如与视频相关的文本数据)复用的视频数据。此外,可以接收或发送视频数据本身而不是复用的数据。
[1314]
虽然将包括cpu的主控制器ex460描述为控制编码或解码过程,但是各种终端通常包括图形处理单元(gpu)。因此,经由由cpu和gpu共享的存储器,或包括被管理以便允许由cpu和gpu共同使用的地址的存储器,或经由单独的存储器,利用gpu的执行能力,一次处理大区域的配置是可接受的。这可以缩短编码时间,保持流的实时本质,并减少延迟。特别地,与运动估计、解块滤波、样本自适应偏移(sao)和变换/量化相关的处理可以由gpu代替cpu以图片为单位例如一次全部地有效地执行。
再多了解一些

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

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

相关文献