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

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

2022-02-22 17:27:32 来源:中国专利 TAG:


1.本公开涉及视频译码(video coding),并且具体地涉及视频译码和解码中的视频编码和解码系统、组件和方法,例如,用于使用预测的色度样本来执行对块的编码。


背景技术:

2.随着视频译码技术从h.261和mpeg-1到h.264/avc(高级视频译码)、mpeg-la、h.265/hevc(高效视频译码)和h.266/vvc(多功能视频编解码器)的进步,仍然不断需要提供对视频译码技术的改进和优化来处理各种应用中不断增加的数字视频数据量。本公开涉及视频译码中进一步的进步、改善和优化,特别是在使用预测的色度样本来执行对块的编码方面。


技术实现要素:

3.在一个方面,一种编码器,包括:电路;以及耦合到电路的存储器。电路确定第一虚拟流水线解码单元(vpdu)是否被拆分为较小的块,以及第二vpdu是否被拆分为较小的块。响应于确定第一vpdu没有被拆分为较小的块并且确定第二vpdu被拆分为较小的块,在不使用亮度样本的情况下预测色度样本块。响应于确定第一vpdu被拆分为较小的块并且确定第二vpdu被拆分为较小的块,使用亮度样本来预测色度样本块。响应于确定第一vpdu没有被拆分为较小的块并且确定第二vpdu没有被拆分为较小的块,使用亮度样本来预测色度样本块。使用预测的色度样本来对块进行编码。
4.在一个方面,一种编码器包括:块拆分器,其在操作中将第一图像拆分为多个块;帧内预测器(intra predictor),其在操作中使用被包括在第一图像中的参考块来预测被包括在第一图像中的块;帧间预测器(inter predictor),其在操作中使用被包括在不同于第一图像的第二图像中的参考块来预测被包括在第一图像中的块;环路滤波器,其在操作中对被包括在第一图像中的块进行滤波;变换器,其在操作中对在原始信号与由帧内预测器或帧间预测器生成的预测信号之间的预测误差进行变换,以生成变换系数;量化器,其在操作中对变换系数进行量化以生成经量化的系数;以及熵编码器,其在操作中对经量化的系数进行可变编码以生成经编码的位流,该经编码的位流包括经编码的经量化的系数和控制信息。预测块包括确定第一虚拟流水线解码单元(vpdu)是否被拆分为较小的块,以及第二vpdu是否被拆分为较小的块。响应于确定第一vpdu没有被拆分为较小的块并且确定第二vpdu被拆分为较小的块,在不使用亮度样本的情况下预测色度样本块。响应于确定第一vpdu被拆分为较小的块并且确定第二vpdu被拆分为较小的块,使用亮度样本来预测色度样本块。响应于确定第一vpdu没有被拆分为较小的块并且确定第二vpdu没有被拆分为较小的块,使用亮度样本来预测色度样本块。使用预测的色度样本来对块进行编码。
5.在一个方面,一种解码器,包括:电路;以及耦合到电路的存储器。电路确定第一虚拟流水线解码单元(vpdu)是否被拆分为较小的块,以及第二vpdu是否被拆分为较小的块。响应于确定第一vpdu没有被拆分为较小的块并且确定第二vpdu被拆分为较小的块,在不使
用亮度样本的情况下预测色度样本块。响应于确定第一vpdu被拆分为较小的块并且确定第二vpdu被拆分为较小的块,使用亮度样本来预测色度样本块。响应于确定第一vpdu没有被拆分为较小的块并且确定第二vpdu没有被拆分为较小的块,使用亮度样本来预测色度样本块。使用预测的色度样本来对块进行解码。
6.在一个方面,一种解码设备,包括:解码器,其在操作中对经编码的位流进行解码以输出经量化的系数;逆量化器,其在操作中对经量化的系数进行逆量化以输出变换系数;逆变换器,其在操作中对变换系数进行逆变换以输出预测误差;帧内预测器,其在操作中使用被包括在第一图像中的参考块来预测被包括在第一图像中的块;帧间预测器,其在操作中使用被包括在不同于第一图像的第二图像中的参考块来预测被包括在第一图像中的块;环路滤波器,其在操作中对被包括在第一图像中的块进行滤波;以及输出,其在操作中输出包括第一图像的图片。预测块包括确定第一虚拟流水线解码单元(vpdu)是否被拆分为较小的块,以及第二vpdu是否被拆分为较小的块。响应于确定第一vpdu没有被拆分为较小的块并且确定第二vpdu被拆分为较小的块,在不使用亮度样本的情况下预测色度样本块。响应于确定第一vpdu被拆分为较小的块并且确定第二vpdu被拆分为较小的块,使用亮度样本来预测色度样本块。响应于确定第一vpdu没有被拆分为较小的块并且确定第二vpdu没有被拆分为较小的块,使用亮度样本来预测色度样本块。使用预测的色度样本来对块进行解码。
7.在一个方面,一种编码方法,包括:确定第一虚拟流水线解码单元(vpdu)是否被拆分为较小的块,以及第二vpdu是否被拆分为较小的块。响应于确定第一vpdu没有被拆分为较小的块并且确定第二vpdu被拆分为较小的块,在不使用亮度样本的情况下预测色度样本块。响应于确定第一vpdu被拆分为较小的块并且确定第二vpdu被拆分为较小的块,使用亮度样本来预测色度样本块。响应于确定第一vpdu没有被拆分为较小的块并且确定第二vpdu没有被拆分为较小的块,使用亮度样本来预测色度样本块。使用预测的色度样本来对块进行编码。
8.在一个方面,一种解码方法,包括:确定第一虚拟流水线解码单元(vpdu)是否被拆分为较小的块,以及第二vpdu是否被拆分为较小的块。响应于确定第一vpdu没有被拆分为较小的块并且确定第二vpdu被拆分为较小的块,在不使用亮度样本的情况下预测色度样本块。响应于确定第一vpdu被拆分为较小的块并且确定第二vpdu被拆分为较小的块,使用亮度样本来预测色度样本块。响应于确定第一vpdu没有被拆分为较小的块并且确定第二vpdu没有被拆分为较小的块,使用亮度样本来预测色度样本块。使用预测的色度样本来对块进行解码。
9.在视频译码技术中,期望提出新的方法以便改进编码效率、增强图像质量并减小电路规模。本公开的实施例的一些实现方式,包括单独或以各种组合考虑的本公开的实施例的构成元件,可以促进以下各项中的一个或多个:改进编码效率;增强图像质量;减少与编码/解码相关联的处理资源的利用;减小电路规模;改进编码/解码的处理速度等。
10.另外地,本公开的实施例的一些实现方式,包括单独或以各种组合考虑的本公开的实施例的构成元件,可以在编码和解码中促进对一个或多个元素(例如,滤波器、块、大小、运动向量、参考图片、参考块或操作)的适当选择。注意,本公开包括关于可以提供除了上面描述的优点之外的优点的配置和方法的公开内容。这种配置和方法的示例包括用于改进编码效率同时减少处理资源使用的增加的配置或方法。
11.根据说明书和附图,所公开的实施例的附加益处和优点将变得显而易见。益处和/或优点可以通过说明书和附图的各种实施例和特征单独获得,不需要提供所有实施例和特征以获得这样的益处和/或优点中的一个或多个。
12.应注意,通用或特定实施例可以被实现为系统、方法、集成电路、计算机程序、存储介质或其任何选择性组合。
附图说明
13.图1是示出根据实施例的传输系统的功能配置的一个示例的示意图。
14.图2是用于示出流中的数据的层级结构的一个示例的概念图。
15.图3是用于示出切片配置的一个示例的概念图。
16.图4是用于示出分片(tile)配置的一个示例的概念图。
17.图5是用于示出在可缩放编码中的编码结构的一个示例的概念图。
18.图6是用于示出在可缩放编码中的编码结构的一个示例的概念图。
19.图7是示出根据实施例的编码器的功能配置的框图。
20.图8是示出编码器的安装示例的功能框图。
21.图9是指示由编码器执行的整体编码过程的一个示例的流程图。
22.图10是用于示出块拆分的一个示例的概念图。
23.图11是示出根据实施例的拆分器的功能配置的一个示例的框图。
24.图12是用于示出拆分模式的示例的概念图。
25.图13a是用于示出拆分模式的句法树的一个示例的概念图。
26.图13b是用于示出拆分模式的句法树的另一示例的概念图。
27.图14是指示用于各种变换类型的示例变换基函数的图表。
28.图15是用于示出示例空间变化变换(svt)的概念图。
29.图16是示出由变换器执行的过程的一个示例的流程图。
30.图17是示出由变换器执行的过程的另一示例的流程图。
31.图18是示出根据实施例的量化器的功能配置的一个示例的框图。
32.图19是示出由量化器执行的量化过程的一个示例的流程图。
33.图20是示出根据实施例的熵编码器的功能配置的一个示例的框图。
34.图21是用于示出在熵编码器中的基于上下文的自适应二进制算术译码(cabac)过程的示例流程的概念图。
35.图22是示出根据实施例的环路滤波器的功能配置的一个示例的框图。
36.图23a是用于示出在自适应环路滤波器(alf)中使用的滤波器形状的一个示例的概念图。
37.图23b是用于示出在alf中使用的滤波器形状的另一示例的概念图。
38.图23c是用于示出在alf中使用的滤波器形状的另一示例的概念图。
39.图23d是用于示出交叉分量alf(cc-alf)的示例流程的概念图。
40.图23e是用于示出在cc-alf中使用的滤波器形状的示例的概念图。
41.图23f是用于示出联合色度ccalf(jc-ccalf)的示例流程的概念图。
42.图23g是示出可以在jc-ccalf中采用的示例加权索引候选的表。
43.图24是指示用作去块滤波器(dbf)的环路滤波器的具体配置的一个示例的框图。
44.图25是用于示出关于块边界具有对称滤波特性的去块滤波器的示例的概念图。
45.图26是用于示出在其上执行去块滤波过程的块边界的概念图。
46.图27是用于示出边界强度(bs)值的示例的概念图。
47.图28是示出由编码器的预测器执行的过程的一个示例的流程图。
48.图29是示出由编码器的预测器执行的过程的另一示例的流程图。
49.图30是示出由编码器的预测器执行的过程的另一示例的流程图。
50.图31是用于示出在实施例中的帧内预测中使用的六十七种帧内预测模式的概念图。
51.图32是示出由帧内预测器执行的过程的一个示例的流程图。
52.图33是用于示出参考图片的示例的概念图。
53.图34是用于示出参考图片列表的示例的概念图。
54.图35是示出帧间预测的示例基本处理流程的流程图。
55.图36是示出运动向量的推导过程的一个示例的流程图。
56.图37是示出运动向量的推导过程的另一示例的流程图。
57.图38a是用于示出用于mv推导的模式的示例表征的概念图。
58.图38b是用于示出用于mv推导的模式的示例表征的概念图。
59.图39是示出在正常帧间模式下的帧间预测的过程的示例的流程图。
60.图40是示出在正常合并模式下的帧间预测的过程的示例的流程图。
61.图41是用于示出在合并模式下的运动向量推导过程的一个示例的概念图。
62.图42是用于示出通过hmvp合并模式针对当前图片的mv推导过程的一个示例的概念图。
63.图43是示出帧速率上变频(fruc)过程的一个示例的流程图。
64.图44是用于示出在沿着运动轨迹的两个块之间的模式匹配(双边匹配)的一个示例的概念图。
65.图45是用于示出在当前图片中的模板与参考图片中的块之间的模式匹配(模板匹配)的一个示例的概念图。
66.图46a是用于示出基于多个相邻块的运动向量推导每个子块的运动向量的一个示例的概念图。
67.图46b是用于示出在其中使用三个控制点的仿射模式下推导每个子块的运动向量的一个示例的概念图。
68.图47a是用于示出在仿射模式下在控制点处的示例mv推导的概念图。
69.图47b是用于示出在仿射模式下在控制点处的示例mv推导的概念图。
70.图47c是用于示出在仿射模式下在控制点处的示例mv推导的概念图。
71.图48a是用于示出其中使用两个控制点的仿射模式的概念图。
72.图48b是用于示出其中使用三个控制点的仿射模式的概念图。
73.图49a是用于示出当用于经编码的块的控制点的数量和用于当前块的控制点的数量彼此不同时,在控制点处用于mv推导的方法的一个示例的概念图。
74.图49b是用于示出当用于经编码的块的控制点的数量和用于当前块的控制点的数
量彼此不同时,在控制点处用于mv推导的方法的另一示例的概念图。
75.图50是示出在仿射合并模式下的过程的一个示例的流程图。
76.图51是示出在仿射帧间模式下的过程的一个示例的流程图。
77.图52a是用于示出两个三角形预测图像的生成的概念图。
78.图52b是用于示出与第二分区重叠的第一分区的第一部分以及可以作为校正过程的一部分被加权的样本的第一集合和第二集合的示例的概念图。
79.图52c是用于示出第一分区的第一部分的概念图,该第一部分是第一分区的与相邻分区的一部分重叠的一部分。
80.图53是示出在三角形模式下的过程的一个示例的流程图。
81.图54是用于示出其中以子块为单位推导mv的高级时间运动向量预测(atmvp)模式的一个示例的概念图。
82.图55是示出在合并模式与动态运动向量刷新(dmvr)之间的关系的流程图。
83.图56是用于示出dmvr的一个示例的概念图。
84.图57是用于示出用于确定mv的dmvr的另一示例的概念图。
85.图58a是用于示出在dmvr中的运动估计的一个示例的概念图。
86.图58b是示出在dmvr中的运动估计的过程的一个示例的流程图。
87.图59是示出预测图像的生成的过程的一个示例的流程图。
88.图60是示出预测图像的生成的过程的另一示例的流程图。
89.图61是示出通过重叠块运动补偿(obmc)对预测图像进行校正过程的一个示例的流程图。
90.图62是用于示出通过obmc进行的预测图像校正过程的一个示例的概念图。
91.图63是用于示出假设匀速直线运动的模型的概念图。
92.图64是示出根据bio的帧间预测的过程的一个示例的流程图。
93.图65是示出可以根据bio执行帧间预测的帧间预测器的功能配置的一个示例的功能框图。
94.图66a是用于示出使用由lic执行的照度(luminance)校正过程的预测图像生成方法的过程的一个示例的概念图。
95.图66b是示出使用lic的预测图像生成方法的过程的一个示例的流程图。
96.图67是示出根据实施例的解码器的功能配置的框图。
97.图68是示出解码器的安装示例的功能框图。
98.图69是示出由解码器执行的整体解码过程的一个示例的流程图。
99.图70是用于示出在拆分确定器与其他构成元件之间的关系的概念图。
100.图71是示出熵解码器的功能配置的一个示例的框图。
101.图72是用于示出在熵解码器中的cabac过程的示例流程的概念图。
102.图73是示出逆量化器的功能配置的一个示例的框图。
103.图74是示出由逆量化器执行的逆量化的过程的一个示例的流程图。
104.图75是示出由逆变换器执行的过程的一个示例的流程图。
105.图76是示出由逆变换器执行的过程的另一示例的流程图。
106.图77是示出环路滤波器的功能配置的一个示例的框图。
107.图78是示出由解码器的预测器执行的过程的一个示例的流程图。
108.图79是示出由解码器的预测器执行的过程的另一示例的流程图。
109.图80是示出由解码器的预测器执行的过程的另一示例的流程图。
110.图81是示出由解码器的帧内预测器执行的过程的一个示例的图。
111.图82是示出在解码器中的mv推导的过程的一个示例的流程图。
112.图83是示出在解码器中的mv推导的过程的另一示例的流程图。
113.图84是示出在解码器中通过正常帧间模式进行帧间预测的过程的示例的流程图。
114.图85是示出在解码器中通过正常合并模式进行帧间预测的过程的示例的流程图。
115.图86是示出在解码器中通过fruc模式进行帧间预测的过程的示例的流程图。
116.图87是示出在解码器中通过仿射合并模式进行帧间预测的过程的示例的流程图。
117.图88是示出在解码器中通过仿射帧间模式进行帧间预测的过程的示例的流程图。
118.图89是示出在解码器中通过三角形模式进行帧间预测的过程的示例的流程图。
119.图90是示出在解码器中通过dmvr进行运动估计的过程的示例的流程图。
120.图91是示出在解码器中通过dmvr进行运动估计的一个示例过程的流程图。
121.图92是示出在解码器中的预测图像的生成的过程的一个示例的流程图。
122.图93是示出在解码器中的预测图像的生成的过程的另一示例的流程图。
123.图94是示出在解码器中通过obmc对预测图像进行校正的过程的示例的流程图。
124.图95是示出在解码器中通过bio对预测图像进行校正的过程的示例的流程图。
125.图96是示出在解码器中通过lic对预测图像进行校正的过程的示例的流程图。
126.图97是示出使用预测的色度样本来解码块的过程的示例的流程图。
127.图98是示出使用预测的色度样本来解码块的过程的示例的流程图。
128.图99是用于示出确定当前色度块是否在与色度样本的m
×
n网格对齐的m
×
n非重叠区域内部的示例的概念图。
129.图100是用于示出确定当前色度块是否在与色度样本的m
×
n网格对齐的m
×
n非重叠区域内部的示例的概念图。
130.图101是用于示出虚拟流水线解码单元(vpdu)的概念图。
131.图102是用于示出确定当前vpdu是否可以使用亮度样本来预测色度样本块的示例的概念图。
132.图103是用于示出确定亮度vpdu是否要被拆分为较小的块的示例方式的概念图。
133.图104是用于示出可以被考虑以确定是否使用亮度样本来预测块的色度样本的附加考虑因素的概念图。
134.图105是用于示出在确定是否使用亮度样本来预测块的色度样本时考虑条件的组合的示例的概念图。
135.图106是用于示出在确定是否使用亮度样本来预测块的色度样本时考虑条件的组合的示例的概念图。
136.图107是用于示出在确定是否使用亮度样本来预测块的色度样本时考虑条件的组合的示例的概念图。
137.图108是用于示出在确定是否使用亮度样本来预测块的色度样本时考虑条件的组合的示例的概念图。
138.图109是用于示出在确定是否使用亮度样本来预测块的色度样本时考虑条件的组合的示例的概念图。
139.图110是用于示出在确定是否使用亮度样本来预测块的色度样本时考虑条件的组合的示例的概念图。
140.图111是用于示出非矩形形状的分区的示例的概念图。
141.图112是示出用于实现内容分发服务的内容提供系统的示例整体配置的图。
142.图113是用于示出网页的显示屏的示例的概念图。
143.图114是用于示出网页的显示屏的示例的概念图。
144.图115是示出智能电话的一个示例的框图。
145.图116是示出智能电话的功能配置的示例的框图。
具体实施方式
146.在附图中,除非上下文另有指示,否则相同的附图标记表示相同的元件。附图中元素的大小和相对位置不一定按比例绘制。
147.在下文中,将参考附图描述(多个)实施例。注意,下面描述的(多个)实施例各自示出了一般或具体示例。以下(多个)实施例中指示的数值、形状、材料、组件、组件的布置和连接、步骤、步骤的关系和次序等仅为示例,并不旨在限制权利要求的范围。
148.下面将描述编码器和解码器的实施例。实施例是编码器和解码器的示例,在本公开的方面的描述中呈现的过程和/或配置适用于该编码器和解码器。过程和/或配置还可以在与根据实施例的编码器和解码器不同的编码器和解码器中实现。例如,关于应用于实施例的过程和/或配置,可以实现以下各项中的任一个:
149.(1)根据在本公开的方面的描述中呈现的实施例的编码器或解码器的组件中的任一个可以由在本公开的方面的描述中的任何地方呈现的另一组件替换或与其组合。
150.(2)在根据实施例的编码器或解码器中,可以对由编码器或解码器的一个或多个组件执行的功能或过程进行任意改变,例如,对功能或流程的添加、替换、移除等。例如,任何功能或过程可以由在本公开的方面的描述中的任何地方呈现的另一功能或过程替换或与其组合。
151.(3)在由根据实施例的编码器或解码器实现的方法中,可以进行任意改变,例如,对被包括在该方法中的过程中的一个或多个过程的添加、替换和移除。例如,该方法中的任何过程可以由在本公开的方面的描述中的任何地方呈现的另一过程替换或与其组合。
152.(4)在根据实施例的编码器或解码器中包括的一个或多个组件可以与在本公开的方面的描述中的任何地方呈现的组件组合,可以与包括在本公开的方面的描述中的任何地方呈现的一个或多个功能的组件组合,并且可以与实现由在本公开的方面的描述中呈现的组件实现的一个或多个过程的组件组合。
153.(5)包括根据实施例的编码器或解码器的一个或多个功能的组件,或者实现根据实施例的编码器或解码器的一个或多个过程的组件,可以与以下各项组合或由其替换:在本公开的方面的描述中的任何地方呈现的组件、包括在本公开的方面的描述中的任何地方呈现的一个或多个功能的组件、或者实现在本公开的方面的描述中的任何地方呈现的一个或多个过程的组件。
154.(6)在由根据实施例的编码器或解码器实现的方法中,被包括在该方法中的过程中的任一个可以由在本公开的方面的描述中的任何地方呈现的过程或者由任何对应或等效的过程替换或与其组合。
155.(7)被包括在由根据实施例的编码器或解码器实现的方法中的一个或多个过程可以与在本公开的方面的描述中的任何地方呈现的过程组合。
156.(8)在本公开的方面的描述中呈现的过程和/或配置的实现方式不限于根据实施例的编码器或解码器。例如,过程和/或配置可以在用于与实施例中公开的移动图片编码器或移动图片解码器不同的目的的设备中实现。
157.(术语的定义)
158.相应的术语可以作为示例如下文指示的被定义。
159.图像是被配置有像素集合的数据单元、是图片、或者包括小于像素的块。图像除了视频之外,还包括静止图像。
160.图片是被配置有像素集合的图像处理单元,并且也可以被称为帧或字段(field)。例如,图片可以采用以单色格式的亮度样本阵列的形式或者采用以4:2:0、4:2:2和4:4:4颜色格式的亮度样本阵列和两个对应的色度样本阵列的形式。
161.块是作为确定数量的像素的集合的处理单元。块可以具有任何数量的不同形状。例如,块可以具有m
×
n个(m列
×
n行)像素的矩形形状、m
×
m个像素的正方形形状、三角形形状、圆形形状等。块的示例包括切片、分片、砖块(brick)、ctu、超级块、基本拆分单元、vpdu、用于硬件的处理拆分单元、cu、处理块单元、预测块单元(pu)、正交变换块单元(tu)、单元和子块。块可以采用样本的m
×
n阵列或变换系数的m
×
n阵列的形式。例如,块可以是包括一个亮度矩阵和两个色度矩阵的正方形或矩形像素区域。
162.像素或样本是图像的最小点。像素或样本包括在整数位置处的像素,以及在子像素位置处的像素,例如,基于在整数位置处的像素生成的像素。
163.像素值或样本值是像素的特征值。像素值或样本值可以包括亮度值、色度值、rgb渐变等级、深度值、零或1的二进制值等中的一个或多个。
164.色度或彩度(chrominance)是颜色的强度,典型地由符号cb和cr表示,其指定样本阵列的值或单个样本值表示与原色相关的两个色差信号中的一个的值。
165.亮度或照度是图像的明亮度,典型地由符号或下标y或l表示,其指定样本阵列的值或单个样本值表示与原色相关的单色信号的值。
166.标志包括指示例如参数或索引的值的一个或多个位。标志可以是二进制标志,其指示标志的二进制值,也可以指示参数的非二进制值。
167.信号传达信息,其由信号符号化或被编码到信号中。信号包括离散数字信号和连续模拟信号。
168.流或位流是数字数据流的数字数据串。流或位流可以是一个流,或者可以被配置有具有多个层级层的多个流。流或位流可以使用单个传输路径在串行通信中被发送,或者可以使用多个传输路径在分组通信中被发送。
169.差指代各种数学上的差,例如,简单差(x-y)、差的绝对值(|x-y|)、平方差(x^2-y^2)、差的平方根(√(x-y))、加权的差(ax-by:a和b是常数)、偏移差(x-y a:a是偏移)等。在标量的情况下,简单差可能是足够的,并且包括差计算。
170.和指代各种数学上的和,例如,简单和(x y)、和的绝对值(|x y|)、平方和(x^2 y^2)、和的平方根(√(x y))、加权的差(ax by:a和b是常数)、偏移和(x y a:a是偏移)等。在标量的情况下,简单和可能是足够的,并且包括和计算。
171.帧是顶部字段和底部字段的组合,其中样本行0、2、4、
……
源自顶部字段,并且样本行1、3、5、
……
源自底部字段。
172.切片是被包含在一个独立切片片段和同一访问单元内的下一独立切片片段(如果有)之前的所有后续从属切片片段(如果有)中的整数个译码树单元。
173.分片是图片中特定分片列和特定分片行内的译码树块的矩形区域。分片可以是旨在能够被独立解码和编码的帧的矩形区域,但是仍然可以应用跨分片边缘的环路滤波。
174.译码树单元(ctu)可以是具有三个样本阵列的图片的亮度样本的译码树块,或者色度样本的两个对应的译码树块。可替代地,ctu可以是单色图片和使用三个单独的颜色平面和用于对样本进行译码的句法结构进行译码的图片中的一个的样本的译码树块。超级块可以是由1个或2个模式信息块组成的64
×
64像素的正方形块,或者被递归地划分为四个32
×
32块,这些块本身可以被进一步划分。
175.(系统配置)
176.首先,将描述根据实施例的传输系统。图1是示出根据实施例的传输系统400的配置的一个示例的示意图。
177.传输系统400是发送通过对图像进行编码而生成的流并对所发送的流进行解码的系统。如所示的,传输系统400包括如图1中示出的编码器100、网络300和解码器200。
178.图像被输入到编码器100。编码器100通过对输入图像进行编码来生成流,并且将流输出到网络300。流包括例如经编码的图像和用于对经编码的图像进行解码的控制信息。图像通过编码被压缩。
179.应当注意,在由编码器100进行编码之前的图像也被称为原始图像、原始信号或原始样本。图像可以是视频或静止图像。图像是序列、图片和块的通用概念,因此除非另有说明,否则图像不限于具有特定大小的空间区域和具有特定大小的时间区域。图像是像素或像素值的阵列,并且表示图像或像素值的信号也被称为样本。流可以被称为位流、经编码的位流、经压缩的位流或经编码的信号。此外,编码器100可以被称为图像编码器或视频编码器。由编码器100执行的编码方法可以被称为编码方法、图像编码方法或视频编码方法。
180.网络300将由编码器100生成的流发送到解码器200。网络200可以是互联网、广域网(wan)、局域网(lan)或网络的任何组合。网络300不限于双向通信网络,并且可以是发送数字地面广播、卫星广播等的广播波的单向通信网络。可替代地,网络300可以由其上记录有流的记录介质(例如,数字多功能盘(dvd)和蓝光盘(bd)等)代替。
181.解码器200例如通过对由网络300发送的流进行解码来生成作为未经压缩的图像的经解码的图像。例如,解码器根据与编码器100所采用的编码方法相对应的解码方法来对流进行解码。
182.应当注意,解码器200也可以被称为图像解码器或视频解码器,并且由解码器200执行的解码方法也可以被称为解码方法、图像解码方法或视频解码方法。
183.(数据结构)
184.图2是用于示出流中的数据的层级结构的一个示例的概念图。为了方便起见,将参
考图1的传输系统400来描述图2。流包括例如视频序列。如图2的(a)中示出的,视频序列包括一个或多个视频参数集(vps)、一个或多个序列参数集(sps)、一个或多个图片参数集(pps)、补充增强信息(sei)和多个图片。
185.在具有多个层的视频中,vps可以包括在多个层中的一些层之间公共的译码参数,以及与被包括在视频中的多个层中的一些层或与单个层相关的译码参数。
186.sps包括用于序列的参数,即,解码器200为了对序列进行解码而参考的译码参数。例如,译码参数可以指示图片的宽度或高度。应当注意,可以存在多个sps。
187.pps包括用于图片的参数,即,解码器200为了对序列中的图片中的每一个进行解码而参考的译码参数。例如,译码参数可以包括针对用于对图片进行解码的量化宽度的参考值和指示加权的预测的应用的标志。应当注意,可以存在多个pps。sps和pps中的每一个可以被简称为参数集。
188.如图2的(b)中示出的,图片可以包括图片头部以及一个或多个切片。图片头部包括译码参数,解码器200参考该译码参数以对一个或多个切片进行解码。
189.如图2的(c)中示出的,切片包括切片头部以及一个或多个砖块。切片头部包括译码参数,解码器200参考该译码参数以对一个或多个砖块进行解码。
190.如图2的(d)中示出的,砖块包括一个或多个译码树单元(ctu)。
191.应当注意,图片可以不包括任何切片,并且可以包括分片组而不是切片。在这种情况下,分片组包括至少一个分片。另外地,砖块可以包括切片。
192.ctu也被称为超级块或基本拆分单元。如图2的(e)中示出的,ctu包括ctu头部和至少一个译码单元(cu)。如所示的,ctu包括四个译码单元cu(10)、cu(11)、cu(12)和cu(13)。ctu头部包括译码参数,解码器200参考该译码参数以对至少一个cu进行解码。
193.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例如是固定单元,其可以在流水线处理在硬件中执行时在一个阶段进行处理。
194.应当注意,流可以不包括图2中示出的所有层级层。层级层的次序可以交换,或者层级层中的任一个可以由另一层级层替换。这里,作为将要由设备(例如,编码器100或解码器200)执行的过程的目标的图片被称为当前图片。当前图片在过程为编码过程时表示要被编码的当前图片,并且当前图片在过程为解码过程时表示要被解码的当前图片。同样地,例如,作为将要由设备(例如,编码器100或解码器200)执行的过程的目标的cu或cu块被称为当前块。当前块在过程为编码过程时表示要被编码的当前块,并且当前块在过程为解码过程时表示要被解码的当前块。
195.(图片结构:切片/分片)
196.图片可以被配置有一个或多个切片单元或一个或多个分片单元以促进图片的并
行译码/解码。
197.切片是被包括在图片中的基本译码单元。图片可以包括例如一个或多个切片。另外地,切片包括一个或多个译码树单元(ctu)。
198.图3是用于示出切片配置的一个示例的概念图。例如,在图3中,图片包括11
×
8个ctu,并且被拆分为四个切片(切片1至4)。切片1包括十六个ctu,切片2包括二十一个ctu,切片3包括二十九个ctu,并且切片4包括二十二个ctu。这里,图片中的每个ctu属于切片中的一个。每个切片的形状是通过水平拆分图片获得的形状。每个切片的边界不需要与图像端点一致,并且可以与图像中的ctu之间的边界中的任一个一致。切片中ctu的处理次序(编码次序或解码次序)例如是光栅扫描次序。切片包括切片头部和经编码的数据。切片的特征可以被写入切片头部。这些特征可以包括切片中顶部ctu的ctu地址、切片类型等。
199.分片是被包括在图片中的单位矩形区域。图片的分片可以以光栅扫描次序被指派有称为tileid的编号。
200.图4是用于示出分片配置的一个示例的概念图。例如,在图4中,图片包括11
×
8个ctu,并且被拆分为矩形区域的四个分片(分片1至4)。当使用分片时,ctu的处理次序可能与不使用分片的情况下的处理次序不同。当不使用分片时,通常以光栅扫描次序处理图片中的多个ctu。当使用多个分片时,以光栅扫描次序处理多个分片中的每一个分片中的至少一个ctu。例如,如图4中示出的,分片1中包括的ctu的处理次序是从分片1的第一列的左端朝向分片1的第一列的右端,然后继续从分片1的第二列的左端朝向分片1的第二列的右端。
201.应当注意,一个分片可以包括一个或多个切片,并且一个切片可以包括一个或多个分片。
202.应当注意,图片可以被配置有一个或多个分片集。分片集可以包括一个或多个分片组,或者一个或多个分片。图片可以被配置有分片集、分片组和分片中的一个。例如,假设以光栅扫描次序针对每个分片集扫描多个分片的次序是分片的基本编码次序。假设在每个分片集中以基本编码次序连续的一个或多个分片的集合是分片组。这样的图片可以由之后描述的拆分器102(参见图7)来配置。
203.(可缩放编码)
204.图5和图6是示出可缩放流结构的示例的概念图,并且为了方便起见将参考图1进行描述。
205.如图5中示出的,编码器100可以通过将多个图片中的每一个图片划分到多个层中的任一层中并且在层中对图片进行编码来生成时间/空间可缩放流。例如,编码器100对每一层的图片进行编码,由此在增强层存在于基本层之上的情况下实现可缩放性。对每个图片的这种编码也称为可缩放编码。以这种方式,解码器200能够切换通过对流进行解码而显示的图像的图像质量。换言之,解码器200可以基于诸如解码器200的处理能力之类的内部因素和诸如通信带宽的状态之类的外部因素来确定对哪一层进行解码。结果,解码器200能够对内容进行解码,同时在低分辨率与高分辨率之间自由切换。例如,流的用户在回家的路上使用智能电话观看了一半流视频,并在家里在诸如连接到互联网的电视之类的设备上继续观看视频。应当注意,上面描述的智能电话和设备中的每一个包括具有相同或不同性能的解码器200。在这种情况下,当设备对高达流中的较高层的层进行解码时,用户可以在家里观看高质量的视频。以这种方式,编码器100不需要生成具有相同内容的不同图像质量的
多个流,并且因此可以减少处理负载。
206.此外,增强层可以包括基于关于图像的统计信息的元信息。解码器200可以通过基于元数据对基本层中的图片执行超分辨率成像来生成其图像质量已经增强的视频。超分辨率成像可以包括例如在相同分辨率下sn比率的改进、分辨率的增加等。元数据可以包括例如用于识别线性或非线性滤波器系数的信息(如在超分辨率过程中使用的),或在滤波过程、机器学习或在超分辨率处理中使用的最小二乘法等中识别参数值的信息。
207.在实施例中,可以提供一种配置,其中根据例如图片中的对象的含义将图片划分为例如分片。在这种情况下,解码器200可以通过选择要被解码的分片来仅解码图片中的部分区域。另外地,可以将对象的属性(人、汽车、球等)和对象在图片中的位置(相同图像中的坐标)存储为元数据。在这种情况下,解码器200能够基于元数据识别期望对象的位置,并且确定包括该对象的分片。例如,如图6中示出的,可以使用不同于图像数据的数据存储结构(例如,hevc中的sei(补充增强信息)消息)来存储元数据。该元数据指示例如主要对象的位置、大小或颜色。
208.元数据可以存储在多个图片的单元(例如,流、序列、随机存取单元)中。以这种方式,解码器200能够获得例如特定人出现在视频中的时间,并且通过将时间信息与图片单元信息进行拟合,能够识别其中存在对象(人)的图片并确定对象在图片中的位置。
209.(编码器)
210.将描述根据实施例的编码器。图7是示出根据实施例的编码器100的功能配置的框图。编码器100是以块为单位对视频进行编码的视频编码器。
211.如图7中示出的,编码器100是以块为单位对图像进行编码的装置,包括拆分器102、减法器104、变换器106、量化器108、熵编码器110、逆量化器112、逆变换器114、加法器116、块存储器118、环路滤波器120、帧存储器122、帧内预测器124、帧间预测器126、预测控制器128和预测参数生成器130。如所示的,帧内预测器124和帧间预测器126是预测控制器的一部分。
212.编码器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的一个或多个专用电子电路。
213.(编码器的安装示例)
214.图8是示出编码器100的安装示例的功能框图。编码器100包括处理器a1和存储器a2。例如,图7中示出的编码器100的多个构成元件被安装在图8中示出的处理器a1和存储器a2上。
215.处理器a1是执行信息处理并且耦合到存储器a2的电路。例如,处理器a1是对图像进行编码的专用或通用电子电路。处理器a1可以是诸如cpu之类的处理器。另外地,处理器a1可以是多个电子电路的集合体。另外地,例如,处理器a1可以承担图7中示出的编码器100的多个构成元件中的两个或更多个构成元件的角色等。
216.存储器a2是用于存储由处理器a1使用以编码图像的信息的专用或通用存储器。存
储器a2可以是电子电路,并且可以连接到处理器a1。另外地,存储器a2可以被包括在处理器a1中。另外地,存储器a2可以是多个电子电路的集合体。另外地,存储器a2可以是磁盘、光盘等,或者可以被表示为存储装置、记录介质等。另外地,存储器a2可以是非易失性存储器或易失性存储器。
217.例如,存储器a2可以存储要被编码的图像或对应于经编码的图像的位流。另外地,存储器a2可以存储用于使处理器a1对图像进行编码的程序。
218.另外地,例如,存储器a2可以承担图7中示出的编码器100的多个构成元件中用于存储信息的两个或更多个构成元件的角色等。例如,存储器a2可以承担图7中示出的块存储器118和帧存储器122的角色。更具体地,存储器a2可以存储经重构的块、经重构的图片等。
219.应当注意,在编码器100中,可能不实现图7中指示的多个构成元件中的所有元件等,并且可能不执行本文所描述的所有过程。图7中指示的构成元件的一部分等可以被包括在另一设备中,或者本文所描述的过程的一部分可以由另一设备执行。
220.在下文中,描述了由编码器100执行的过程的整体流程,然后将描述编码器100中包括的构成元件中的每一个。
221.(编码过程的整体流程)
222.图9是指示由编码器100执行的整体编码过程的一个示例的流程图,并且为了方便起见将参考图7进行描述。
223.首先,编码器100的拆分器102将输入图像中包括的图片中的每一个拆分为具有固定大小(例如,128
×
128像素)的多个块(步骤sa_1)。拆分器102然后选择用于固定大小的块(也称为块形状)的拆分模式(步骤sa_2)。换言之,拆分器102将固定大小的块进一步拆分为形成选定的拆分模式的多个块。针对多个块中的每一个,编码器100针对块(即,要被编码的当前块)执行步骤sa_3至sa_9。
224.预测控制器128和预测执行器(包括帧内预测器124和帧间预测器126)生成当前块的预测图像(步骤sa-3)。预测图像也可以被称为预测信号、预测块或预测样本。
225.接下来,减法器104生成在当前块与预测图像之间的差作为预测残差(步骤sa_4)。预测残差也可以被称为预测误差。
226.接下来,变换器106对预测图像进行变换,并且量化器108对结果进行量化,以生成多个经量化的系数(步骤sa_5)。多个经量化的系数有时可以被称为系数块。
227.接下来,熵编码器110对多个经量化的系数和与预测图像的生成相关的预测参数进行编码(具体地,进行熵编码),以生成流(步骤sa_6)。流有时可以被称为经编码的位流或经压缩的位流。
228.接下来,逆量化器112对多个经量化的系数执行逆量化,并且逆变换器114对结果执行逆变换,以恢复预测残差(步骤sa_7)。
229.接下来,加法器116将预测图像与恢复的预测残差相加以重构当前块(步骤sa_8)。以这种方式,生成经重构的图像。经重构的图像也可以被称为经重构的块或经解码的图像块。
230.当生成经重构的图像时,环路滤波器120根据需要对经重构的图像执行滤波(步骤sa_9)。
231.然后,编码器100确定整个图片的编码是否已结束(步骤sa_10)。当确定编码尚未
结束时(步骤sa_10中的“否”),针对图片的下一块重复执行从步骤sa_2开始的过程。
232.虽然在上面描述的示例中编码器100选择用于固定大小的块的一个拆分模式,并根据该拆分模式对每个块进行编码,但应当注意,可以根据多个拆分模式中的对应一个拆分模式对每个块进行编码。在这种情况下,编码器100可以评估多个拆分模式中的每一个拆分模式的成本,并且例如可以选择通过根据产生最小成本的拆分模式进行编码而获得的流作为输出的流。
233.如所示的,步骤sa_1至sa_10中的过程由编码器100顺序执行。可替代地,过程中的两个或更多个可以并行执行,过程可以重新排序等。
234.由编码器100采用的编码过程是使用预测编码和变换编码的混合编码。另外地,预测编码由编码回路执行,该编码回路被配置有减法器104、变换器106、量化器108、逆量化器112、逆变换器114、加法器116、环路滤波器120、块存储器118、帧存储器122、帧内预测器124、帧间预测器126和预测控制器128。换言之,被配置有帧内预测器124和帧间预测器126的预测执行器是编码环路的一部分。
235.(拆分器)
236.拆分器102将被包括在原始图像中的每个图片拆分为多个块,并将每个块输出到减法器104。例如,拆分器102首先将图片拆分为固定大小(例如,128
×
128像素)的块。可以采用其他固定块大小。固定大小的块也被称为译码树单元(ctu)。然后,拆分器102基于递归四叉树和/或二叉树块拆分将每个固定大小的块拆分为可变大小(例如,64
×
64像素或更小)的块。换言之,拆分器102选择拆分模式。可变大小的块也可以被称为译码单元(cu)、预测单元(pu)或变换单元(tu)。应当注意,在各种类别的处理示例中,无需区分cu、pu和tu;可以以cu、pu或tu为单位处理图片中的块中的全部或一些。
237.图10是用于示出根据实施例的块拆分的一个示例的概念图。在图10中,实线表示通过四叉树块拆分进行拆分的块的块边界,并且虚线表示通过二叉树块拆分进行拆分的块的块边界。
238.这里,块10是具有128
×
128像素的正方形块(128
×
128块)。该128
×
128的块10首先被拆分为四个正方形的64
×
64像素块(四叉树块拆分)。
239.左上方的64
×
64像素块被进一步垂直拆分为两个矩形的32
×
64像素块,并且左侧的32
×
64像素块被进一步垂直拆分为两个矩形的16
×
64像素块(二叉树块拆分)。结果,左上方的64
×
64像素块被拆分为两个16
×
64像素块11和12以及一个32
×
64像素块13。
240.右上方的64
×
64像素块被水平拆分为两个矩形的64
×
32像素块14和15(二叉树块拆分)。
241.左下方的正方形的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。
242.右下方的64
×
64像素块23没有被拆分。
243.如上面所描述的,在图10中,基于递归四叉树和二叉树块拆分,块10被拆分为十三个可变大小的块11至23。这种类型的拆分也被称为四叉树加二叉树(qtbt)拆分。
244.应当注意,在图10中,一个块被拆分为四个或两个块(四叉树或二叉树块拆分),但拆分不限于这些示例。例如,可以将一个块拆分为三个块(三元块拆分)。包括这种三元块拆分的拆分也被称为多类型树(mbt)拆分。
245.图11是示出根据一个实施例的拆分器102的功能配置的一个示例的框图。如图11中示出的,拆分器102可以包括块拆分确定器102a。作为示例,块拆分确定器102a可以执行以下过程。
246.例如,块拆分确定器102a可以从块存储器118和/或帧存储器122获得或取回块信息,并且基于块信息来确定拆分模式(例如,上面描述的拆分模式)。拆分器102根据拆分模式对原始图像进行拆分,并将通过拆分获得的至少一个块输出到减法器104。
247.另外地,例如,块拆分确定器102a将指示确定出的拆分模式(例如,上面描述的拆分模式)的一个或多个参数输出到变换器106、逆变换器114、帧内预测器124、帧间预测器126和熵编码器110。变换器106可以基于一个或多个参数来对预测残差进行变换。帧内预测器124和帧间预测器126可以基于一个或多个参数来生成预测图像。另外地,熵编码器110可以对一个或多个参数进行熵编码。
248.如下面所指示的,与拆分模式相关的参数可以被写入在流中,作为一个示例。
249.图12是用于示出拆分模式的示例的概念图。拆分模式的示例包括:拆分为四个区域(qt),其中块被水平拆分为两个区域,并且被垂直拆分为两个区域;拆分为三个区域(ht或vt),其中块以1:2:1的比率在同一方向上拆分;拆分为两个区域(hb或vb),其中块以1:1的比率在同一方向上拆分;以及不拆分(ns)。
250.应当注意,拆分模式在拆分为四个区域和不拆分的情况下不具有块拆分方向,并且拆分模式在拆分为两个区域或三个区域的情况下具有拆分方向信息。
251.图13a是用于示出拆分模式的句法树的一个示例的概念图。
252.图13b是用于示出拆分模式的句法树的另一示例的概念图。
253.图13a和图13b是用于示出拆分模式的句法树的示例的概念图。在图13a的示例中,首先,存在指示是否执行拆分的信息(s:拆分标志),并且接下来,存在指示是否执行拆分为四个区域的信息(qt:qt标志)。接下来,存在指示拆分为三个区域和两个区域中的哪一个要被执行的信息(tt:tt标志,或bt:bt标志),并且然后,存在指示划分方向的信息(ver:垂直标志,或hor:水平标志)。应当注意,通过根据这样的拆分模式进行拆分而获得的至少一个块中的每一个都可以在类似的过程中被进一步重复拆分。换言之,作为一个示例,可以递归地确定是否执行拆分、是否执行拆分为四个区域、水平方向和垂直方向中的哪一个是要执行的拆分方法的方向、拆分为三个区域和拆分为两个区域中的哪一个要被执行,并且可以根据由图13a中示出的句法树公开的编码次序将确定结果编码在流中。
254.另外地,虽然分别指示s、qt、tt和ver的信息项在图13a中示出的句法树中以列出的次序布置,但分别指示s、qt、ver和bt的信息项可以以列出的次序布置。换言之,在图13b的示例中,首先,存在指示是否执行拆分的信息(s:拆分标志),并且接下来,存在指示是否执行拆分为四个区域的信息(qt:qt标志)。接下来,存在指示拆分方向的信息(ver:垂直标
志,或hor:水平标志),并且然后,存在指示拆分为两个区域和拆分为三个区域中的哪一个要被执行的信息(bt:bt标志,或tt:tt标志)。
255.应当注意,上面描述的拆分模式是示例,并且可以使用除了所描述的拆分模式之外的拆分模式,或者可以使用所描述的拆分模式的一部分。
256.(减法器)
257.减法器104从以块为单位从拆分器102输入并由拆分器102拆分的原始图像中减去预测图像(从以下指示的预测控制器128输入的预测样本)。换言之,减法器104计算当前块的预测残差(也被称为误差)。减法器104然后将计算出的预测残差输出到变换器106。
258.原始图像可以是作为表示被包括在视频中的每个图片的图像的信号(例如,亮度信号和两个色度信号)已经被输入到编码器100中的图像。表示图像的信号也可以被称为样本。
259.(变换器)
260.变换器106将空间域中的预测残差变换为频域中的变换系数,并将变换系数输出到量化器108。更具体地,变换器106将例如定义的离散余弦变换(dct)或离散正弦变换(dst)应用于空间域中的预测残差。定义的dct或dst可以被预先定义。
261.应当注意,变换器106可以从多个变换类型中自适应地选择变换类型,并通过使用与选定的变换类型相对应的变换基函数将预测残差变换为变换系数。这种方式的变换也被称为显式多核变换(emt)或自适应多重变换(amt)。变换基函数也可以被称为基。
262.变换类型包括例如dct-ii、dct-v、dct-viii、dst-i和dst-vii。应当注意,这些变换类型可以表示为dct2、dct5、dct8、dst1和dst7。图14是指示用于示例变换类型的示例变换基函数的图表。在图14中,n指示输入像素的数量。例如,从多个变换类型中选择变换类型可以取决于预测类型(帧内预测和帧间预测中的一个),并且可以取决于帧内预测模式。
263.指示应用这种emt还是amt的信息(被称为例如emt标志或amt标志)和指示选定的变换类型的信息通常在cu级别用信号通知。应当注意,用信号通知这种信息不一定需要在cu级别执行,并且可以在另一级别(例如,序列级别、图片级别、切片级别、分片级别或ctu级别)执行。
264.另外地,变换器106可以对变换系数(其是变换结果)进行再变换。这种再变换也被称为自适应二次变换(ast)或不可分离二次变换(nsst)。例如,变换器106以被包括在对应于帧内预测残差的变换系数块中的子块(例如,4
×
4像素子块)为单位执行再变换。指示是否应用nsst的信息和与用于nsst的变换矩阵相关的信息通常在cu级别用信号通知。应当注意,用信号通知这种信息不一定需要在cu级别执行,并且可以在另一级别(例如,序列级别、图片级别、切片级别、分片级别或ctu级别)执行。
265.变换器106可以采用可分离变换和不可分离变换。可分离变换是一种方法,其中通过根据输入的维数针对多个方向中的每个方向单独执行变换来多次执行变换。不可分离变换是一种执行集体变换的方法,其中多维输入中的两个或更多个维度被集体视为单个维度。
266.在不可分离变换的一个示例中,当输入是4
×
4像素块时,4
×
4像素块被认为是包括十六个元素的单个阵列,并且变换将16
×
16变换矩阵应用于阵列。
267.在不可分离变换的另一示例中,4
×
4像素的输入块被视为包括十六个元素的单个
阵列,然后可以执行其中对阵列进行多次给定旋转的变换(超立方体给定变换)。
268.在变换器106中的变换中,可以切换要根据cu中的区域变换到频域中的变换基函数的变换类型。示例包括空间变化变换(svt)。
269.图15是用于示出svt的一个示例的概念图。
270.在svt中,如图15中示出的,cu被水平或垂直拆分为两个相等的区域,并且只有区域中的一个被变换到频域中。可以针对每个区域设置变换基本类型。例如,使用dst7和dst8。例如,在通过将cu垂直拆分为两个相等的区域而获得的两个区域中,dst7和dct8可以用于在位置0处的区域。可替代地,在两个区域中,dst7用于在位置1处的区域。类似地,在通过将cu水平拆分为两个相等的区域而获得的两个区域中,dst7和dct8用于在位置0处的区域。可替代地,在两个区域中,dst7用于在位置1处的区域。虽然在图15中示出的示例中,cu中的两个区域中只有一个区域被变换而另一个未被变换,但两个区域中的每个区域都可以被变换。另外地,拆分方法不仅可以包括拆分为两个区域,而且还可以包括拆分为四个区域。另外地,拆分方法可以更加灵活。例如,指示拆分方法的信息可以被编码,并且可以以与cu拆分相同的方式用信号通知。应当注意,svt也可以被称为子块变换(sbt)。
271.上面描述的amt和emt可以被称为mts(多变换选择)。当应用mts时,可以选择dst7、dct8等变换类型,并且可以将指示选定的变换类型的信息编码为用于每个cu的索引信息。存在被称为imts(隐式mts)的另一过程,作为用于选择要用于在没有编码索引信息的情况下执行的正交变换的变换类型的过程。当应用imts时,例如,当cu具有矩形形状时,可以使用dst7针对短边和dst2针对长边来执行矩形形状的正交变换。另外地,例如,当cu具有正方形形状时,可以当mts在序列中有效时使用dct2并且当mts在序列中无效时使用dst7来执行矩形形状的正交变换。dct2和dst7仅是示例。可以使用其他变换类型,并且也可以将改变变换类型的组合以用于变换类型的不同组合。imts可以仅用于帧内预测块,或者可以用于帧内预测块和帧间预测块两者。
272.上面已经将mts、sbt和imts这三个过程描述为用于选择性地切换变换类型以用于正交变换的选择过程。然而,可以采用所有三个选择过程,或者可以选择性地仅采用选择过程的一部分。例如,可以基于诸如sps之类的头部中的标志信息等来识别是否采用选择过程中的一个或多个。例如,当所有三个选择过程都可用时,针对每个cu选择三个选择过程中的一个并且执行cu的正交变换。应当注意,用于选择性地切换变换类型的选择过程可以是与上面的三个选择过程不同的选择过程,或者这三个选择过程中的每一个都可以由另一过程代替。典型地,执行以下四个传递函数[1]至[4]中的至少一个。函数[1]是用于执行整个cu的正交变换并且对指示在变换中使用的变换类型的信息进行编码的函数。函数[2]是用于执行整个cu的正交变换并且基于确定出的规则来确定变换类型而不对指示变换类型的信息进行编码的函数。函数[3]是用于执行cu的部分区域的正交变换并且对指示在变换中使用的变换类型的信息进行编码的函数。函数[4]是用于执行cu的部分区域的正交变换并且基于确定出的规则来确定变换类型而不对指示在变换中使用的变换类型的信息进行编码的函数。确定出的规则可以是预先确定的。
[0273]
应当注意,可以针对每个处理单元确定是否应用mts、imts和/或sbt。例如,可以针对每个序列、图片、砖块、切片、ctu或cu确定是否应用mts、imts和/或sbt。
[0274]
应当注意,本公开中用于选择性切换变换类型的工具可以被描述为用于选择性地
选择在变换过程中使用的基的方法、选择过程或用于选择基的过程。另外地,用于选择性切换变换类型的工具可以被描述为用于自适应选择变换类型的模式。
[0275]
图16是示出由变换器106执行的过程的一个示例的流程图,并且为了方便起见将参考图7进行描述。
[0276]
例如,变换器106确定是否执行正交变换(步骤st_1)。这里,当确定要执行正交变换时(步骤st_1中的“是”),变换器106从多个变换类型中选择用于正交变换的变换类型(步骤st_2)。接下来,变换器106通过将选定的变换类型应用于当前块的预测残差来执行正交变换(步骤st_3)。变换器106然后将指示选定的变换类型的信息输出到熵编码器110,以便允许熵编码器110对该信息进行编码(步骤st_4)。在另一方面,当确定不执行正交变换时(步骤st_1中的“否”),变换器106输出指示不执行正交变换的信息,以便允许熵编码器110对该信息进行编码(步骤st_5)。应当注意,可以基于例如变换块的大小、应用于cu的预测模式等来在步骤st_1中确定是否执行正交变换。可替代地,可以使用定义的变换类型执行正交变换,而不对指示在正交变换中使用的变换类型的信息进行编码。定义的变换类型可以是预先定义的。
[0277]
图17是示出由变换器106执行的过程的一个示例的流程图,并且为了方便起见将参考图7进行描述。应当注意,图17中示出的示例是在正交变换中使用的变换类型被选择性地切换的情况下(如在图16中示出的示例的情况下)的正交变换的示例。
[0278]
作为一个示例,第一变换类型组可以包括dct2、dst7和dct8。作为另一示例,第二变换类型组可以包括dct2。被包括在第一变换类型组中的变换类型和被包括在第二变换类型组中的变换类型可以彼此部分重叠,或可以彼此完全不同。
[0279]
变换器106确定变换大小是否小于或等于确定值(步骤su_1)。这里,当确定变换大小小于或等于确定值时(步骤su_1中的“是”),变换器106使用被包括在第一变换类型组中的变换类型来对当前块的预测残差执行正交变换(步骤su_2)。接下来,变换器106将指示在被包括在第一变换类型组中的至少一个变换类型中的要使用的变换类型的信息输出到熵编码器110,以便允许熵编码器110对该信息进行编码(步骤su_3)。在另一方面,当确定变换大小不小于或等于预先确定的值时(步骤su_1中的“否”),变换器106使用第二变换类型组对当前块的预测残差执行正交变换(步骤su_4)。确定值可以是阈值,并且可以是预先确定的值。
[0280]
在步骤su_3中,指示在正交变换中使用的变换类型的信息可以是指示要在当前块中垂直应用的变换类型和要在当前块中水平应用的变换类型的组合的信息。第一类型组可以仅包括一种变换类型,并且可以不对指示在正交变换中使用的变换类型的信息进行编码。第二变换类型组可以包括多种变换类型,并且可以对指示被包括在第二变换类型组中的一种或多种变换类型中的在正交变换中使用的变换类型的信息进行编码。
[0281]
可替代地,可以基于变换大小来指示变换类型,而不对指示变换类型的信息进行编码。应当注意,这样的确定不限于对变换大小是否小于或等于确定值的确定,并且其他过程也可以用于基于变换大小来确定在正交变换中使用的变换类型。
[0282]
(量化器)
[0283]
量化器108对从变换器106输出的变换系数进行量化。更具体地,量化器108以确定出的扫描次序扫描当前块的变换系数,并且基于对应于变换系数的量化参数(qp)对扫描的
变换系数进行量化。量化器108然后将当前块的经量化的变换系数(在下文中也被称为经量化的系数)输出到熵编码器110和逆量化器112。确定出的扫描次序可以是预先确定的。
[0284]
确定出的扫描次序是用于对变换系数进行量化/逆量化的次序。例如,确定出的扫描次序可以被定义为频率的升序(从低频到高频)或频率的降序(从高频到低频)。
[0285]
量化参数(qp)是定义量化步长(量化宽度)的参数。例如,当量化参数的值增加时,量化步长也增加。换言之,当量化参数的值增加时,经量化的系数的误差(量化误差)增加。
[0286]
另外地,量化矩阵可以用于量化。例如,可以对应于诸如4
×
4、8
×
8之类的频率变换大小、诸如帧内预测和帧间预测之类的预测模式、诸如亮度和色度像素分量之类的像素分量来使用若干种类的量化矩阵。应当注意,量化表示对以对应于确定出的级别的确定出的间隔采样的值进行数字化。在本技术领域中,量化可以使用其他表述(例如,舍入和缩放)来指代,并且可以采用舍入和缩放。确定出的间隔和确定出的级别可以是预先确定的。
[0287]
使用量化矩阵的方法可以包括使用已经在编码器100侧直接设置的量化矩阵的方法,以及使用已经被设置为默认(默认矩阵)的量化矩阵的方法。在编码器100侧,可以通过直接设置量化矩阵来设置适合图像特征的量化矩阵。然而,这种情况可能具有增加用于编码量化矩阵的译码量的缺点。应当注意,可以基于默认量化矩阵或经编码的量化矩阵来生成用于对当前块进行量化的量化矩阵,而不是直接使用默认量化矩阵或经编码的量化矩阵。
[0288]
存在一种用于在不使用量化矩阵的情况下来对高频系数和低频系数进行量化的方法。应当注意,该方法可以被视为等效于使用其系数具有相同值的量化矩阵(平坦矩阵)的方法。
[0289]
量化矩阵可以例如在序列级别、图片级别、切片级别、砖块级别或ctu级别被编码。可以使用例如序列参数集(sps)或图片参数集(pps)来指定量化矩阵。sps包括用于序列的参数,并且pps包括用于图片的参数。sps和pps中的每一个可以被简称为参数集。
[0290]
当使用量化矩阵时,量化器108使用量化矩阵的值针对每个变换系数缩放例如可以基于量化参数等计算出的量化宽度。在不使用量化矩阵的情况下执行的量化过程可以是用于根据基于量化参数等计算出的量化宽度对变换系数进行量化的过程。应当注意,在不使用任何量化矩阵的情况下执行的量化过程中,量化宽度可以乘以对于块中的所有变换系数通用的确定值。该确定值可以是预先确定的。
[0291]
图18是示出根据实施例的量化器的功能配置的一个示例的框图。例如,量化器108包括差量化参数生成器108a、预测的量化参数生成器108b、量化参数生成器108c、量化参数存储装置108d和量化执行器108e。
[0292]
图19是示出由量化器108执行的量化过程的一个示例的流程图,并且为了方便起见将参考图7和图18进行描述。
[0293]
作为一个示例,量化器108可以基于图19中示出的流程图针对每个cu执行量化。更具体地,量化参数生成器108c确定是否执行量化(步骤sv_1)。这里,当确定要执行量化时(步骤sv_1中的“是”),量化参数生成器108c生成针对当前块的量化参数(步骤sv_2),并且将量化参数存储到量化参数存储装置108d(步骤sv_3)。
[0294]
接下来,量化执行器108e使用在步骤sv_2中生成的量化参数来对当前块的变换系数进行量化(步骤sv_4)。预测的量化参数生成器108b然后从量化参数存储装置108d获得针
对与当前块不同的处理单元的量化参数(步骤sv_5)。预测的量化参数生成器108b基于获得的量化参数来生成当前块的预测的量化参数(步骤sv_6)。差量化参数生成器108a计算在由量化参数生成器108c生成的当前块的量化参数与由预测的量化参数生成器108b生成的当前块的预测的量化参数之间的差(步骤sv_7)。可以通过计算差来生成差量化参数。差量化参数生成器108a将差量化参数输出到熵编码器110,以便允许熵编码器110对差量化参数进行编码(步骤sv_8)。
[0295]
应当注意,差量化参数可以在例如序列级别、图片级别、切片级别、砖块级别或ctu级别被编码。另外地,量化参数的初始值可以在序列级别、图片级别、切片级别、砖块级别或ctu级别被编码。在初始化时,可以使用量化参数的初始值和差量化参数来生成量化参数。
[0296]
应当注意,量化器108可以包括多个量化器,并且可以应用依赖量化,其中使用从多个量化方法中选择的量化方法来对变换系数进行量化。
[0297]
(熵编码器)
[0298]
图20是示出根据实施例的熵编码器110的功能配置的一个示例的框图,并且为了方便起见将参考图7进行描述。熵编码器110通过对从量化器108输入的经量化的系数和从预测参数生成器130输入的预测参数进行熵编码来生成流。例如,将基于上下文的自适应二进制算术译码(cabac)用作熵编码。更具体地,所示的熵编码器110包括二值化器110a、上下文控制器110b和二进制算术编码器110c。二值化器110a执行二值化,其中将诸如经量化的系数和预测参数之类的多级信号变换为二进制信号。二值化方法的示例包括截断rice二值化、指数golomb码和固定长度二值化。上下文控制器110b根据句法元素的特征或周围状态(即,二进制信号的出现概率)来推导上下文值。用于推导上下文值的方法的示例包括绕过、参考句法元素、参考上方和左侧相邻块、参考层级信息等。二进制算术编码器110c使用推导出的上下文对二进制信号进行算术编码。
[0299]
图21是用于示出在熵编码器110中的cabac过程的示例流程的概念图。首先,在熵编码器110中在cabac中执行初始化。在初始化中,执行在二进制算术编码器110c中的初始化和初始上下文值的设置。例如,二值化器110a和二进制算术编码器110c可以在ctu中顺序地执行对多个量化系数的二值化和算术编码。每次执行算术编码时,上下文控制器110b可以更新上下文值。上下文控制器110b然后可以保存上下文值作为后处理。例如,可以使用保存的上下文值来初始化用于下一ctu的上下文值。
[0300]
(逆量化器)
[0301]
逆量化器112对已经从量化器108输入的经量化的系数进行逆量化。更具体地,逆量化器112以确定出的扫描次序对当前块的经量化的系数进行逆量化。逆量化器112然后将当前块的经逆量化的变换系数输出到逆变换器114。确定出的扫描次序可以是预先确定的。
[0302]
(逆变换器)
[0303]
逆变换器114通过对已经从逆量化器112输入的变换系数进行逆变换来恢复预测残差。更具体地,逆变换器114通过执行与由变换器106应用于变换系数的变换相对应的逆变换来恢复当前块的预测残差。逆变换器114然后将恢复的预测残差输出到加法器116。
[0304]
应当注意,由于信息通常在量化中丢失,因此恢复的预测残差与由减法器104计算出的预测残差不匹配。换言之,恢复的预测残差通常包括量化误差。
[0305]
(加法器)
[0306]
加法器116通过将已经从逆变换器114输入的预测残差和已经从预测控制器128输入的预测图像相加来重构当前块。因此,生成经重构的图像。加法器116然后将经重构的图像输出到块存储器118和环路滤波器120。经重构的块也可以被称为局部经解码的块。
[0307]
(块存储器)
[0308]
块存储器118是用于存储当前图片中的块(例如,用于帧内预测)的存储装置。更具体地,块存储器118存储从加法器116输出的经重构的图像。
[0309]
(帧存储器)
[0310]
帧存储器122是例如用于存储用于帧间预测中使用的参考图片的存储装置,并且也被称为帧缓冲器。更具体地,帧存储器122存储由环路滤波器120滤波的经重构的图像。
[0311]
(环路滤波器)
[0312]
环路滤波器120将环路滤波器应用于由加法器116输出的经重构的图像,并将经滤波的经重构的图像输出到帧存储器122。环路滤波器是在编码环路中使用的滤波器(环路滤波器)。环路滤波器的示例包括例如自适应环路滤波器(alf)、去块滤波器(db或dbf)、样本自适应偏移(sao)滤波器等。
[0313]
图22是示出根据实施例的环路滤波器120的功能配置的一个示例的框图。例如,如图22中示出的,环路滤波器120包括去块滤波器执行器120a、sao执行器120b和alf执行器120c。去块滤波器执行器120a对经重构的图像执行去块滤波器处理。sao执行器120b对在经过去块滤波过程之后的经重构的图像执行sao过程。alf执行器120c对在经过sao过程之后的经重构的图像执行alf过程。稍后将详细描述alf和去块滤波器。sao过程是用于通过减少振铃(其中像素值如边缘周围的波一样失真的现象)并校正像素值的偏差来增强图像质量的过程。sao过程的示例包括边缘偏移过程和带偏移过程。应当注意,在一些实施例中,环路滤波器120可能不包括图22中公开的所有构成元件,并且可以包括构成元件中的一些,并且可以包括附加元件。另外地,环路滤波器120可以被配置为以与图22中公开的处理次序不同的处理次序来执行上述过程、可能不执行所有的过程等等。
[0314]
(环路滤波器》自适应环路滤波器)
[0315]
在alf中,应用了用于移除压缩伪像的最小二乘误差滤波器。例如,针对当前块中的每个2
×
2像素子块应用基于局部梯度的方向和活性从多个滤波器中选择的一个滤波器。
[0316]
更具体地,首先,每个子块(例如,每个2
×
2像素子块)被分类为多个类别(例如,十五或二十五个类别)中的一个。子块的分类可以基于例如梯度方向性和活性。在示例中,基于梯度方向性d(例如,0到2或0到4)和梯度活性a(例如,0到4)来计算或确定种类索引c(例如,c=5d a)。然后,基于分类索引c,每个子块被分类为多个类别中的一个。
[0317]
例如,通过比较多个方向(例如,水平、垂直和两个对角线方向)的梯度来计算梯度方向性d。此外,例如,通过将多个方向的梯度相加并对相加的结果进行量化来计算梯度活性a。
[0318]
可以基于这种分类的结果从多个滤波器中确定要用于每个子块的滤波器。
[0319]
要在alf中使用的滤波器形状例如是圆形对称的滤波器形状。图23a至图23c是用于示出在alf中使用的滤波器形状的示例的概念图。图23a示出了5
×
5菱形滤波器,图23b示出了7
×
7菱形滤波器,并且图23c示出了9
×
9菱形滤波器。指示滤波器形状的信息通常在图片级别用信号通知。应当注意,用信号通知指示滤波器形状的这种信息不一定需要在图片
级别执行,也可以在另一级别(例如,序列级别、切片级别、分片级别、ctu级别或cu级别)执行。
[0320]
例如,可以在图片级别或cu级别确定alf的开启或关闭。例如,可以在cu级别决定是否对亮度应用alf,并且可以在图片级别决定是否对色度应用alf。指示alf的开启或关闭的信息通常在图片级别或cu级别用信号通知。应当注意,用信号通知指示alf开启或关闭的信息不一定需要在图片级别或cu级别执行,可以在另一级别(例如,序列级别、切片级别、分片级别或ctu级别)执行。
[0321]
另外地,如上面所描述的,从多个滤波器中选择一个滤波器,并执行子块的alf过程。要用于多个滤波器(例如,直到第十五个或第二十五个滤波器)中的每一个滤波器的系数的系数集通常在图片级别用信号通知。应当注意,用信号通知系数集不一定需要在图片级别执行,并且可以在另一级别(例如,序列级别、切片级别、分片级别、ctu级别、cu级别或子块级别)执行。
[0322]
(环路滤波器》交叉分量自适应环路滤波器)
[0323]
图23d是用于示出交叉分量alf(cc-alf)的示例流程的概念图。图23e是用于示出在cc-alf(例如,图23d的cc-alf)中使用的滤波器形状的示例的概念图。图23d和图23e的示例形cc-alf通过将线性菱形滤波器应用于每个色度分量的亮度通道来进行操作。例如,滤波器系数可以在aps中发送、按2^10的因子缩放、并且为固定点表示进行舍入。例如,在图23d中,y样本(第一分量)用于针对cb的ccalf和针对cr的ccalf(不同于第一分量的分量)。
[0324]
滤波器的应用可以在可变块大小上控制并且由针对每个样本块接收到的上下文译码的标志用信号通知。块大小连同cc-alf使能标志可以在切片级别针对每个色度分量被接收。cc-alf可以支持各种块大小,例如,(在色度样本中)16
×
16像素、32
×
32像素、64
×
64像素、128
×
128像素。
[0325]
(环路滤波器》联合色度交叉分量自适应环路滤波器)
[0326]
联合色度-ccalf的一个示例在图23f和图23g中示出。图23f是用于示出联合色度ccalf的示例流程的概念图。图23g是示出示例加权索引候选的表。如所示的,一个ccalf滤波器用于生成一个经ccalf滤波的输出作为针对一个颜色分量的色度细化信号,同时将相同色度细化信号的加权的版本应用于另一颜色分量。以这种方式,现有ccalf的复杂度大约降低了一半。加权值可以被译码为符号标志和加权索引。加权索引(记为weight_index)可以被译码成3个位,并指定jc-ccalf加权jcccweight的幅度,其为非零幅度。例如,jcccweight的幅度可以如下确定:
[0327]
如果weight_index小于或等于4,则jcccweight等于weight_index》》2;
[0328]
否则,jcccweight等于4/(weight_index-4)。
[0329]
针对cb和cr的alf滤波的块级别开启/关闭控制可以是分开的。这与ccalf中的相同,并且可以对块级别开启/关闭控制标志的两个单独的集合进行译码。不同于ccalf,本文的cb、cr开启/关闭控制块大小相同,因此可以仅对一个块大小变量进行译码。
[0330]
(环路滤波器》去块滤波器)
[0331]
在去块滤波过程中,环路滤波器120对经重构的图像中的块边界执行滤波过程,以便减少在块边界处发生的失真。
[0332]
图24是示出用作去块滤波器的环路滤波器120(参见图7和图22)的去块滤波器执
行器120a的具体配置的一个示例的框图。
[0333]
去块滤波器执行器120a包括:边界确定器1201;滤波器确定器1203;滤波执行器1205;过程确定器1208;滤波器特性确定器1207;以及开关1202、1204和1206。
[0334]
边界确定器1201确定要进行去块滤波的像素(即,当前像素)是否存在于块边界周围。边界确定器1201然后将确定结果输出到开关1202和处理确定器1208。
[0335]
在其中边界确定器1201已经确定当前像素存在于块边界周围的情况下,开关1202向开关1204输出未经滤波的图像。在其中边界确定器1201已经确定在块边界周围不存在当前像素相反的情况下,开关1202向开关1206输出未经滤波的图像。应当注意,未经滤波的图像是被配置有当前像素和位于当前像素周围的至少一个周围像素的图像。
[0336]
滤波器确定器1203基于位于当前像素周围的至少一个周围像素的像素值来确定是否对当前像素执行去块滤波。滤波器确定器1203然后将确定结果输出到开关1204和过程确定器1208。
[0337]
在其中滤波器确定器1203已经确定要对当前像素执行去块滤波的情况下,开关1204将通过开关1202获得的未经滤波的图像输出到滤波执行器1205。在其中滤波器确定器1203已经确定不对当前像素执行去块滤波的相反的情况下,开关1204将通过开关1202获得的未经滤波的图像输出到开关1206。
[0338]
当通过开关1202和1204获得未经滤波的图像时,滤波执行器1205利用由滤波器特性确定器1207确定出的滤波器特性针对当前像素执行去块滤波。滤波执行器1205然后将经滤波的像素输出到开关1206。
[0339]
在处理确定器1208的控制下,开关1206选择性地输出尚未进行去块滤波的像素和已经由滤波执行器1205进行了去块滤波的像素中的一个。
[0340]
处理确定器1208基于由边界确定器1201和滤波器确定器1203做出的确定的结果来控制开关1206。换言之,当边界确定器1201已经确定当前像素存在于块边界周围时,以及当滤波器确定器1203已经确定要对当前像素执行去块滤波时,处理确定器1208使开关1206输出已经进行去块滤波的像素。另外地,除了上述情况之外,处理确定器1208使开关1206输出尚未进行去块滤波的像素。通过以这种方式重复输出像素,从开关1206输出经滤波的图像。应当注意,图24中示出的配置是去块滤波器执行器120a中的配置的一个示例。去块滤波器执行器120a可以具有各种配置。
[0341]
图25是用于示出关于块边界具有对称滤波特性的去块滤波器的示例的概念图。
[0342]
在去块滤波过程中,可以使用像素值和量化参数来选择具有不同特性的两个去块滤波器(即,强滤波器和弱滤波器)中的一个。在强滤波器的情况下,当像素p0至p2和像素q0至q2跨块边界存在时,如图25中示出的,通过执行例如根据以下表达式的计算,相应的像素q0至q2的像素值被改变为像素值q’0至q’2。
[0343]
q’0=(p1 2
×
p0 2
×
q0 2
×
q1 q2 4)/8
[0344]
q’1=(p0 q0 q1 q2 2)/4
[0345]
q’2=(p0 q0 q1 3
×
q2 2
×
q3 4)/8
[0346]
应当注意,在上述表达式中,p0至p2和q0至q2为相应的像素p0至p2和像素q0至q2的像素值。另外地,q3是相对于块边界位于像素q2的相反侧的相邻像素q3的像素值。另外地,在表达式中的每一个的右侧,与要用于去块滤波的像素的相应的像素值相乘的系数是
滤波器系数。
[0347]
此外,在去块滤波中,可以执行限幅以使得计算出的像素值改变不超过阈值。例如,在限幅过程中,可以使用基于量化参数确定出的阈值,将根据上述表达式计算出的像素值限幅为根据“计算像素值
±2×
阈值”获得的值。以这种方式,可以防止过度平滑。
[0348]
图26是用于示出在其上执行去块滤波过程的块边界的概念图。图27是用于示出边界强度(bs)值的示例的概念图。
[0349]
在其上执行去块滤波过程的块边界例如是具有8
×
8像素块的cu、pu或tu之间的边界,如图26中示出的。可以例如以四行或四列为单位执行去块滤波过程。首先,针对图26中示出的块p和块q来确定边界强度(bs)值,如图27中指示的。
[0350]
根据图27中的bs值,可以确定是否使用不同强度对属于同一图像的块边界执行去块滤波过程。当bs值为2时,执行针对色度信号的去块滤波过程。当bs值为1或更大并且满足确定的条件时,执行针对亮度信号的去块滤波过程。确定的条件可以是预先确定的。应当注意,用于确定bs值的条件不限于图27中指示的那些,并且可以基于另一参数来确定bs值。
[0351]
(预测器(帧内预测器、帧间预测器、预测控制器))
[0352]
图28是示出由编码器100的预测器执行的过程的一个示例的流程图。应当注意,预测器包括以下构成元件的全部或一部分:帧内预测器124;帧间预测器126;以及预测控制器128。预测执行器包括例如帧内预测器124和帧间预测器126。
[0353]
预测器生成当前块的预测图像(步骤sb_1)。该预测图像也可以被称为预测信号或预测块。应当注意,预测信号例如是帧内预测图像(图像预测信号)或帧间预测图像(帧间预测信号)。预测器使用已经通过另一块获得的经重构的图像通过预测图像的生成、预测残差的生成、经量化的系数的生成、预测残差的恢复以及预测图像的添加来生成当前块的预测图像。
[0354]
经重构的图像例如可以是参考图片中的图像,或者是作为包括当前块的图片的当前图片中的经编码的块(即,上面描述的其他块)的图像。当前图片中的经编码的块例如是当前块的相邻块。
[0355]
图29是示出由编码器100的预测器执行的过程的另一示例的流程图。
[0356]
预测器使用第一种方法生成预测图像(步骤sc_1a),使用第二种方法生成预测图像(步骤sc_1b),并且使用第三种方法生成预测图像(步骤sc_1c)。第一种方法、第二种方法和第三种方法可以是用于生成预测图像的相互不同的方法。第一种方法至第三种方法中的每一种可以是帧间预测方法、帧内预测方法或另一种预测方法。可以在这些预测方法中使用上面描述的经重构的图像。
[0357]
接下来,预测处理器评估在步骤sc_1a、sc_1b和sc_1c中生成的预测图像(步骤sc_2)。例如,预测器针对在步骤sc_1a、sc_1b和sc_1中生成的预测图像计算成本c,并通过比较预测图像的成本c来评估预测图像。注意,成本c例如可以根据r-d优化模型的表达式(例如,c=d λ
×
r)来计算。在该表达式中,d表示预测图像的压缩伪像,并且被表示为例如在当前块的像素值与预测图像的像素值之间的绝对差的总和。另外地,r表示流的位速率。另外地,λ表示例如根据拉格朗日乘子的方法的乘子。
[0358]
然后,预测器选择在步骤sc_1a、sc_1b和sc_1c中生成的预测图像中的一个(步骤sc_3)。换言之,预测器选择用于获得最终预测图像的方法或模式。例如,预测器基于针对预
测图像计算出的成本c来选择具有最小成本c的预测图像。可替代地,可以基于在编码过程中使用的参数来进行在步骤sc_2中的评估和在步骤sc_3中对预测图像的选择。编码器100可以将用于识别选定的预测图像、方法或模式的信息变换为流。该信息可以是例如标志等。以这种方式,解码器200能够基于该信息根据由编码器100选择的方法或模式来生成预测图像。注意,在图29中示出的示例中,在使用相应的方法生成预测图像之后,预测器选择预测图像中的任一个。然而,预测器可以在生成预测图像之前基于在上面描述的编码过程中使用的参数来选择方法或模式,并且可以根据选定的方法或模式来生成预测图像。
[0359]
例如,第一种方法和第二种方法可以分别是帧内预测和帧间预测,并且预测器可以从根据预测方法生成的预测图像中选择针对当前块的最终预测图像。
[0360]
图30是示出由编码器100的预测器执行的过程的另一示例的流程图。
[0361]
首先,预测器使用帧内预测来生成预测图像(步骤sd_1a),并使用帧间预测来生成预测图像(步骤sd_1b)。注意,通过帧内预测生成的预测图像也被称为帧内预测图像,并且通过帧间预测生成的预测图像也被称为帧间预测图像。
[0362]
接下来,预测器评估帧内预测图像和帧间预测图像中的每一个(步骤sd_2)。可以在评估中使用上面描述的成本c。预测器然后可以在帧内预测图像和帧间预测图像中选择已经针对其计算出最小成本c的预测图像,作为针对当前块的最终预测图像(步骤sd_3)。换言之,选择用于生成针对当前块的预测图像的预测方法或模式。
[0363]
预测处理器然后在帧内预测图像和帧间预测图像中选择已经针对其计算出最小成本c的预测图像,作为针对当前块的最终预测图像(步骤sd_3)。换言之,选择用于生成针对当前块的预测图像的预测方法或模式。
[0364]
(帧内预测器)
[0365]
帧内预测器124通过参考当前图片中的且存储于块存储器118中的一个或多个块,通过执行当前块的帧内预测(也被称为帧内预测)来生成预测信号(即,帧内预测图像)。更具体地,帧内预测器124通过参考当前块相邻的一个或多个块的像素值(例如,亮度和/或色度值),通过执行帧内预测来生成帧内预测图像,并且然后向预测控制器128输出帧内预测图像。
[0366]
例如,帧内预测器124通过使用已经定义的多个帧内预测模式中的一种模式来执行帧内预测。帧内预测模式典型地包括一种或多种非定向预测模式和多种定向预测模式。定义的模式可以是预先定义的。
[0367]
一种或多种非定向预测模式包括例如在h.265/高效视频译码(hevc)标准中定义的平面预测模式和dc预测模式。
[0368]
多种定向预测模式包括例如在h.265/hevc标准中定义的三十三种定向预测模式。注意,多种定向预测模式除了三十三种定向预测模式之外,还可以包括三十二种定向预测模式(总共六十五种定向预测模式)。图31是用于示出可以在帧内预测中使用的总共六十七种帧内预测模式(两种非定向预测模式和六十五种定向预测模式)的概念图。实线箭头表示在h.265/hevc标准中定义的三十三个方向,并且虚线箭头表示附加的三十二个方向(图31中未示出两种非定向预测模式)。
[0369]
在各种类型的处理示例中,可以在色度块的帧内预测中参考亮度块。换言之,可以基于当前块的亮度分量来预测当前块的色度分量。这种帧内预测也被称为跨分量线性模型
(cclm)预测。可以添加其中参考这种亮度块的用于色度块的帧内预测模式(也被称为例如cclm模式)作为用于色度块的帧内预测模式中的一种。
[0370]
帧内预测器124可以基于水平/垂直参考像素梯度来校正帧内预测的像素值。伴随这种校正的帧内预测也被称为位置相关的帧内预测组合(pdpc)。指示是否应用pdpc的信息(例如,被称为pdpc标志)通常在cu级别用信号通知。注意,用信号通知这种信息不一定需要在cu级别执行,并且可以在另一级别(例如,序列级别、图片级别、切片级别、分片级别或ctu级别)执行。
[0371]
图32是示出由帧内预测器124执行的过程的一个示例的流程图。
[0372]
帧内预测器124从多个帧内预测模式中选择一种帧内预测模式(步骤sw_1)。帧内预测器124然后根据选定的帧内预测模式来生成预测图像(步骤sw_2)。接下来,帧内预测器124确定最可能的模式(mpm)(步骤sw_3)。mpm包括例如六种帧内预测模式。例如,六种帧内预测模式中的两种模式可以是平面模式和dc预测模式,并且其他四种模式可以是定向预测模式。帧内预测器124确定在步骤sw_1中选择的帧内预测模式是否被包括在mpm中(步骤sw_4)。
[0373]
这里,当确定在步骤sw_1中选择的帧内预测模式被包括在mpm中时(步骤sw_4中的“是”),帧内预测器124将mpm标志设置为1(步骤sw_5),并生成指示在mpm中的选定的帧内预测模式的信息(步骤sw_6)。注意,被设置为1的mpm标志和指示帧内预测模式的信息可以由熵编码器110编码为预测参数。
[0374]
当确定选定的帧内预测模式不被包括在mpm中时(步骤sw_4中的“否”),帧内预测器124将mpm标志设置为0(步骤sw_7)。可替代地,帧内预测器124不设置任何mpm标志。帧内预测器124然后生成指示在至少一种帧内预测模式中的不被包括在mpm中的选定的帧内预测模式的信息(步骤sw_8)。注意,设置为0的mpm标志和指示帧内预测模式的信息可以由熵编码器110编码作为预测参数。指示帧内预测模式的信息指示例如0至60中的任何一个。
[0375]
(帧内预测器)
[0376]
帧间预测器126通过参考在参考图片中的一个或多个块,通过执行对当前块的帧间预测(也被称为帧间预测)来生成预测图像(帧间预测图像),该参考图片与当前图片不同并且被存储在帧存储器122中。帧间预测以当前块或当前块中的当前子块(例如,4
×
4块)为单位执行。子块被包括在块中并且是小于块的单位。子块的大小可以以切片、砖块、图片等的形式。
[0377]
例如,帧间预测器126针对当前块或当前子块在参考图片中执行运动估计,并找到与当前块或当前子块最佳匹配的参考块或参考子块。帧间预测器126然后获得运动信息(例如,运动向量),该运动信息补偿从参考块或参考子块到当前块或子块的运动或改变。帧间预测器126通过基于运动信息执行运动补偿(或运动预测)来生成当前块或子块的帧间预测图像。帧间预测器126将生成的帧间预测图像输出到预测控制器128。
[0378]
在运动补偿中使用的运动信息可以以各种形式作为帧间预测信号用信号通知。例如,可以用信号通知运动向量。作为另一示例,可以用信号通知在运动向量与运动向量预测器之间的差。
[0379]
(参考图片列表)
[0380]
图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指定。
[0381]
可以针对诸如序列、图片、切片、砖块、ctu或cu之类的每个单元生成这样的参考图片列表。另外地,在参考图片列表中指示的参考图片中,指示要在帧间预测中参考的参考图片的参考图片索引可以在序列级别、图片级别、切片级别、砖块级别、ctu级别或cu级别用信号通知。另外地,可以在多种帧间预测模式下使用公共参考图片列表。
[0382]
(帧间预测的基本流程)
[0383]
图35是示出帧间预测的过程的示例基本处理流程的流程图。
[0384]
首先,帧间预测器126生成预测信号(步骤se_1至se_3)。接下来,减法器104生成在当前块与预测图像之间的差作为预测残差(步骤se_4)。
[0385]
这里,在生成预测图像时,帧间预测器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候选指定的参考图片区域中执行估计来确定用于当前块的mv。注意,在参考图片区域中的估计可以被称为运动估计。
[0386]
另外地,虽然在上面描述的示例中,步骤se_1至se_3由帧间预测器126执行,但是例如步骤se_1、步骤se_2等的过程可以由编码器100中包括的另一构成元件执行。
[0387]
注意,可以在帧间预测模式下针对每个过程生成mv候选列表,或者可以在多种帧间预测模式下使用公共mv候选列表。步骤se_3和se_4中的过程分别对应于图9中示出的步骤sa_3和sa_4。步骤se_3中的过程对应于图30中的步骤sd_1b中的过程。
[0388]
(运动向量推导流程)
[0389]
图36是示出了运动向量的推导的过程的一个示例的流程图。
[0390]
帧间预测器126可以在用于编码运动信息(例如,mv)的模式下推导当前块的mv。在这种情况下,例如,运动信息可以被编码作为预测参数,并且可以被用信号通知。换言之,经编码的运动信息被包括在流中。
[0391]
可替代地,帧间预测器126可以在其中运动信息未被编码的模式下推导mv。在这种情况下,流中不包括运动信息。
[0392]
这里,mv推导模式可以包括稍后描述的正常帧间模式、正常合并模式、fruc模式、仿射模式等。模式中的其中运动信息被编码的模式包括正常帧间模式、正常合并模式、仿射模式(具体为仿射帧间模式和仿射合并模式)等。注意,运动信息可以不仅包括mv,而且包括稍后描述的运动向量预测器选择信息。其中运动信息未被编码的模式包括fruc模式等。帧间预测器126从多种模式中选择用于推导当前块的mv的模式,并使用选定的模式来推导当前块的mv。
[0393]
图37是示出运动向量的推导的另一示例的流程图。
[0394]
帧间预测器126可以在其中mv差被编码的模式下推导用于当前块的mv。在这种情况下,例如,可以将mv差编码作为预测参数,并且可以用信号通知。换言之,经编码的mv差被包括在流中。mv差是在当前块的mv与mv预测器之间的差。注意,mv预测器是运动向量预测器。
[0395]
可替代地,帧间预测器126可以在其中mv差未被编码的模式下推导mv。在这种情况下,流中不包括经编码的mv差。
[0396]
这里,如上面所描述的,mv推导模式包括稍后描述的正常帧间模式、正常合并模式、fruc模式、仿射模式等。模式中的其中mv差被编码的模式包括正常帧间模式、仿射模式(具体为仿射帧间模式)等。其中mv差未被编码的模式包括fruc模式、正常合并模式、仿射模式(具体为仿射合并模式)等。帧间预测器126从多种模式中选择用于推导当前块的mv的模式,并使用选定的模式来推导当前块的mv。
[0397]
(运动向量推导模式)
[0398]
图38a和图38b是用于示出用于mv推导的模式的示例分类的概念图。例如,如图38a中示出的,根据是否编码运动信息和是否编码mv差,将mv推导模式大致分为三种模式。这三种模式为帧间模式、合并模式和帧速率上变频(fruc)模式。帧间模式一种这样的模式:其中执行运动估计,并且其中对运动信息和mv差进行编码。例如,如图38b中示出的,帧间模式包括仿射帧间模式和正常帧间模式。合并模式是一种这样的模式:其中不执行运动估计,并且其中从经编码的周围块中选择mv并使用该mv推导用于当前块的mv。合并模式是一种这样的模式:其中基本上对运动信息进行编码并且不对mv差进行编码。例如,如图38b中示出的,合并模式包括正常合并模式(也被称为正常合并模式或规则合并模式)、运动向量差合并(mmvd)模式、组合的帧间合并/帧内预测(ciip)模式、三角形模式、atmvp模式和仿射合并模式。这里,在合并模式中包括的模式中,在mmvd模式中异常地编码mv差。注意,仿射合并模式和仿射帧间模式是被包括在仿射模式中的模式。仿射模式是在假设仿射变换的情况下,用于推导当前块中包括的多个子块中的每一个的mv作为当前块的mv的模式。fruc模式是一种这样的模式:其用于通过在经编码的区域之间执行估计来推导当前块的mv的模式,并且其中既不编码运动信息也不编码任何mv差。注意,稍后将更详细地描述相应的模式。
[0399]
注意,图38a和图38b中示出的模式的分类是示例,并且分类不限于此。例如,当在ciip模式下对mv差进行编码时,ciip模式被分类为帧间模式。
[0400]
(mv推导》正常帧间模式)
[0401]
正常帧间模式是用于基于与当前块的图像相似的块从由mv候选指定的参考图片
区域中推导当前块的mv的帧间预测模式。在该正常帧间模式下,mv差被编码。
[0402]
图39是示出在正常帧间模式下的帧间预测的过程的示例的流程图。
[0403]
首先,帧间预测器126基于信息(例如,在时间或空间上在当前块周围的多个经编码的块的mv)来获得用于当前块的多个mv候选(步骤sg_1)。换言之,帧间预测器126生成mv候选列表。
[0404]
接下来,帧间预测器126根据确定出的优先级次序从在步骤sg_1中获得的多个mv候选中提取n(2或更大的整数)个mv候选作为运动向量预测器候选(也被称为mv预测器候选)(步骤sg_2)。注意,可以针对n个mv候选中的每一个预先确定优先级次序。
[0405]
接下来,帧间预测器126从n个预测运动向量候选中选择一个运动向量预测器候选,作为当前块的运动向量预测器(也被称为mv预测器)(步骤sg_3)。这时,帧间预测器126在流中编码用于识别选定的运动向量预测器的运动向量预测器选择信息。换言之,帧间预测器126通过预测参数生成器130将mv预测器选择信息作为预测参数输出到熵编码器110。
[0406]
接下来,帧间预测器126通过参考经编码的参考图片来推导当前块的mv(步骤sg_4)。这时,帧间预测器126还在流中将在推导出的mv与运动向量预测器之间的差编码作为mv差。换言之,帧间预测器126通过预测参数生成器130将mv差作为预测参数输出到熵编码器110。注意,经编码的参考图片是包括在编码之后已经重构的多个块的图片。
[0407]
最后,帧间预测器126通过使用推导出的mv和经编码的参考图片执行对当前块的运动补偿来生成针对当前块的预测图像(步骤sg_5)。对每个块执行步骤sg_1至sg_5中的过程。例如,当对切片中的所有块执行步骤sg_1至sg_5中的过程时,使用正常帧间模式对切片的帧间预测结束。例如,当对图片中的所有块执行步骤sg_1至sg_5中的过程时,使用正常帧间模式对图片的帧间预测结束。注意,并不是被包括在切片中的所有块都可能经历步骤sg_1至sg_5中的过程,并且当块的一部分经历过程时,使用正常帧间模式对切片的帧间预测可能结束。这也适用于步骤sg_1至sg_5中的过程。当对图片中的块中的一部分执行过程时,使用正常帧间模式对图片的帧间预测可能结束。
[0408]
注意,预测图像是如上面所描述的帧间预测信号。另外地,指示用于生成预测图像的帧间预测模式(在上述示例中为正常帧间模式)的信息例如被编码作为经编码的信号中的预测参数。
[0409]
注意,mv候选列表也可以用作在其他模式中使用的列表。另外地,与mv候选列表相关的过程可以应用于与在另一模式下使用的列表相关的过程。与mv候选列表相关的过程包括例如从mv候选列表中提取或选择mv候选、重新排序mv候选或删除mv候选。
[0410]
(mv推导》正常合并模式)
[0411]
正常合并模式是用于从mv候选列表中选择mv候选作为当前块的mv,由此推导mv的帧间预测模式。注意,正常合并模式是合并模式的一种类型,并且可以被简称为合并模式。在该实施例中,区分了正常合并模式和合并模式,并且合并模式在更宽泛的意义上使用。
[0412]
图40是示出在正常合并模式下的帧间预测的示例的流程图。
[0413]
首先,帧间预测器126基于信息(例如,在时间或空间上在当前块周围的多个经编码的块的mv)来获得用于当前块的多个mv候选(步骤sh_1)。换言之,帧间预测器126生成mv候选列表。
[0414]
接下来,帧间预测器126从在步骤sh_1中获得的多个mv候选中选择一个mv候选,由
此推导当前块的mv(步骤sh_2)。这时,帧间预测器126在流中编码用于识别选定的mv候选的mv选择信息。换言之,帧间预测器126通过预测参数生成器130将mv选择信息作为预测参数输出到熵编码器110。
[0415]
最后,帧间预测器126通过使用推导出的mv和经编码的参考图片执行对当前块的运动补偿,来生成针对当前块的预测图像(步骤sh_3)。例如,对每个块执行步骤sh_1至sh_3中的过程。例如,当对切片中的所有块执行步骤sh_1至sh_3中的过程时,使用正常合并模式对切片的帧间预测结束。另外地,当对图片中的所有块执行步骤sh_1至sh_3中的过程时,使用正常合并模式对图片的帧间预测结束。注意,并不是被包括在切片中的所有块都可以经历步骤sh_1至sh_3的过程,并且当块中的一部分经历过程时,使用正常合并模式对切片的帧间预测可能结束。这也适用于步骤sh_1至sh_3中的过程。当对图片中的块中的一部分执行过程时,使用正常合并模式对图片的帧间预测可能结束。
[0416]
另外地,例如,指示用于生成预测图像的帧间预测模式(在上述示例中为正常合并模式)且被包括在经编码的信号中的信息被编码作为流中的预测参数。
[0417]
图41是用于示出通过正常合并模式对当前图片进行的运动向量推导过程的一个示例的概念图。
[0418]
首先,帧间预测器126生成mv候选列表,其中注册了mv候选。mv候选的示例包括:空间上相邻的mv候选,它们是空间上位于当前块周围的多个经编码的块的mv;时间上相邻的候选mv,它们是在其上投影经编码的参考图片中的当前块的位置的周围块的mv;组合的mv候选,它们是通过对空间上相邻的mv预测器的mv值和时间上相邻的mv预测器的mv值进行组合而生成的mv;以及零mv候选,它们是作为具有零值的mv。
[0419]
接下来,帧间预测器126从在mv候选列表中注册的多个mv候选中选择一个mv候选,并将该mv候选确定为当前块的mv。
[0420]
此外,熵编码器110在流中写入并编码merge_idx,该merge_idx是指示哪个mv候选已经被选择的信号。
[0421]
注意,在图41中描述的mv候选列表中注册的mv候选是示例。mv候选的数量可以与图中的mv候选的数量不同,mv候选列表可以以这样的方式被配置:图中的mv候选的种类中的一些可能不被包括,或者包括除了图中的mv候选的种类之外的一个或多个mv候选。
[0422]
可以通过使用由正常合并模式推导出的当前块的mv来执行稍后描述的动态运动向量刷新(dmvr)来确定最终mv。注意,在正常合并模式下,运动信息被编码并且mv差没有被编码。在mmvd模式下,从mv候选列表中选择一个mv候选,如同正常合并模式的情况,对mv差进行编码。如图38b中示出的,mmvd可以与正常合并模式一起被分类为合并模式。注意,mmvd模式中的mv差并不总是需要与帧间模式中使用的mv差相同。例如,在mmvd模式下的mv差推导可以是要求比在帧间模式下的mv差推导所要求的处理量更小的处理量的过程。
[0423]
另外地,可以执行组合的帧间合并/帧内预测(ciip)模式。该模式用于对在帧间预测中生成的预测图像和在帧内预测中生成的预测图像进行重叠以生成用于当前块的预测图像。
[0424]
注意,mv候选列表可以被称为候选列表。另外地,merge_idx是mv选择信息。
[0425]
(mv推导》hmvp模式)
[0426]
图42是用于示出使用hmvp合并模式针对当前图片的mv推导过程的一个示例的概
念图。
[0427]
在正常合并模式下,通过从参考经编码的块(例如,cu)生成的mv列表中选择一个mv候选来确定用于例如作为当前块的cu的mv。这里,可以在mv候选列表中注册另一mv候选。其中注册这种另一mv候选的模式被称为hmvp模式。
[0428]
在hmvp模式下,使用hmvp的先进先出(fifo)服务器来管理mv候选,与用于正常合并模式的mv候选列表分开。
[0429]
在fifo缓冲器中,首先最新存储诸如过去处理的块的mv之类的运动信息。在管理fifo缓冲器时,每当处理一个块,就在fifo缓冲器中存储用于最新块(即,先前刚处理的cu)的mv,并将最旧cu(即,最早处理的cu)的mv从fifo缓冲器中删除。在图42中示出的示例中,hmvp1是用于最新块的mv,并且hmvp5是用于最旧mv的mv。
[0430]
然后,例如,帧间预测器126从hmvp1开始检查在fifo缓冲器中管理的每个mv是否是与用于正常合并模式的mv候选列表中已经注册的所有mv候选不同的mv。当确定mv不同于所有mv候选时,帧间预测器126可以将在fifo缓冲器中管理的mv添加到用于正常合并模式的mv候选列表中作为mv候选。这时,在fifo缓冲器中的mv候选中的一个或多个可以被注册(添加到mv候选列表)。
[0431]
通过以这种方式使用hmvp模式,不仅可以添加在空间或时间上与当前块相邻的块的mv,而且可以添加用于过去处理的块的mv。结果,扩大了用于正常合并模式的mv候选的变化,这增加了可以提高译码效率的可能性。
[0432]
注意,mv可以是运动信息。换言之,存储在mv候选列表和fifo缓冲器中的信息不仅可以包括mv值,而且可以包括参考图片信息、参考方向、图片数量等。另外地,块可以是例如cu。
[0433]
注意,图42中示出的mv候选列表和fifo缓冲器是示例。mv候选列表和fifo缓冲器的大小可以与图42中的不同,或者可以被配置为以与图42中的次序不同的次序注册mv候选。另外地,这里描述的过程可能在编码器100与解码器200之间是共用的。
[0434]
注意,hmvp模式可以应用于除了正常合并模式之外的模式。例如,诸如过去在仿射模式下处理的块的mv之类的运动信息也可以被最先存储,并可以用作mv候选,这样可以更好地促进效率。通过将hmvp模式应用于仿射模式而获得的模式可以被称为历史仿射模式。
[0435]
(mv推导》fruc模式)
[0436]
运动信息可以在解码器侧推导而无需从编码器侧用信号通知。例如,可以通过在解码器200侧执行运动估计来推导运动信息。在实施例中,在解码器侧,在不使用在当前块中的任何像素值的情况下执行运动估计。用于在解码器200侧执行运动估计而不使用在当前块中的任何像素值的模式包括帧速率上变频(fruc)模式、模式匹配运动向量推导(pmmvd)模式等。
[0437]
图43中示出了以流程图形式的fruc过程的一个示例。首先,列表通过参考mv来指示用于经编码的块(经编码的块中的每一个在空间或时间上与当前块相邻)的mv作为mv候选(该列表可以是mv候选列表,也可以用作用于正常合并模式的mv候选列表)(步骤si_1)。
[0438]
接下来,从在mv候选列表中注册的多个mv候选中选择最佳mv候选(步骤si_2)。例如,计算mv候选列表中包括的相应的mv候选的评估值,并且基于评估值来选择一个mv候选。基于选定的运动向量候选,然后推导用于当前块的运动向量(步骤si_4)。更具体地,例如,
选定的运动向量候选(最佳mv候选)被直接推导为用于当前块的运动向量。另外地,例如,可以使用在参考图片中的位置的周围区域中的模式匹配来推导用于当前块的运动向量,其中在参考图片中的位置对应于选定的运动向量候选。换言之,使用模式匹配和评估值的估计可以在最佳mv候选的周围区域中执行,并且当存在产生更好评估值的mv时,可以将最佳mv候选更新为产生更好评估值的mv,并且更新后的mv可以被确定为用于当前块的最终mv。在一些实施例中,可以不执行对产生更好评估值的运动向量的更新。
[0439]
最后,帧间预测器126通过使用推导出的mv和经编码的参考图片执行对当前块的运动补偿来生成针对当前块的预测图像(步骤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模式对图片的帧间预测可能结束。
[0440]
可以以子块为单位执行类似的过程。
[0441]
可以根据各种类型的方法来计算评估值。例如,在对应于运动向量的参考图片中区域的经重构的图像与确定区域(该区域例如可以是另一参考图片中的区域或当前图片的相邻块中的区域,如下面所指示的)中的经重构的图像之间进行比较。确定区域可以是预先确定的。
[0442]
在两个经重构的图像的像素值之间的差可以用于运动向量的评估值。注意,可以使用除了差的值之外的信息来计算评估值。
[0443]
接下来,详细描述模式匹配的示例。首先,通过模式匹配选择被包括在mv候选列表(例如,合并列表)中的一个mv候选作为估计的开始点。例如,可以使用第一模式匹配或第二模式匹配作为模式匹配。第一模式匹配和第二模式匹配可以分别被称为双边匹配和模板匹配。
[0444]
(mv推导》fruc》双边匹配)
[0445]
在第一模式匹配中,在沿着当前块的运动轨迹定位且被包括在两个不同的参考图片中的两个块之间执行模式匹配。因此,在第一模式匹配中,在另一参考图片中沿着当前块的运动轨迹的区域被用作用于计算上面描述的候选的评估值的确定区域。确定的区域可以是预先确定的。
[0446]
图44是用于示出在两个参考图片中沿着运动轨迹的两个块之间的第一模式匹配(双边匹配)的一个示例的概念图。如图44中示出的,在第一模式匹配中,通过估计在被包括在两个不同的参考图片(ref0,ref1)中且沿着当前块(cur块)的运动轨迹定位的两个块中的对之间最佳匹配的对来推导两个运动向量(mv0,mv1)。更具体地,针对当前块推导在由mv候选指定的第一经编码的参考图片(ref0)中指定位置处的经重构的图像与在由通过以显示时间间隔扫描mv候选而获得的对称mv指定的第二经编码的参考图片(ref1)中指定位置处的经重构的图像之间的差,并使用获得的差的值来计算评估值。可以在多个mv候选中选择产生最佳评估值并且可能产生良好结果的mv候选作为最终mv。
[0447]
在连续运动轨迹的假设下,指定两个参考块的运动向量(mv0,mv1)与在当前图片
(curpic)与两个参考图片(ref0,ref1)之间的时间距离(td0,td1)成比例。例如,在当前图片在时间上位于两个参考图片之间并且从当前图片到相应的两个参考图片的时间距离彼此相等时,在第一模式匹配中推导镜像对称的双向运动向量。
[0448]
(mv推导》fruc》模板匹配)
[0449]
在第二模式匹配(模板匹配)中,在参考图片中的块与当前图片中的模板(模板为当前图片中与当前块相邻的块(相邻块为例如上部和/或左侧相邻块))之间执行模式匹配。因此,在第二模式匹配中,将当前图片中与当前块相邻的块用作用于计算上面描述的mv候选的评估值的确定区域。
[0450]
图45是用于示出在当前图片中的模板与参考图片中的块之间的模式匹配(模板匹配)的一个示例的概念图。如图45中示出的,在第二模式匹配中,通过在参考图片(ref0)中估计与当前图片(cur pic)中与当前块相邻的块最佳匹配的块来推导当前块(cur块)的运动向量。更具体地,推导在经编码的区域(其在左上方相邻或者在左侧或上方相邻)中的经重构的图像与在经编码的参考图片(ref0)中的对应区域中并由mv候选指定的经重构的图像之间的差,并使用获得的差的值来计算评估值。可以选择多个mv候选中产生最佳评估值的mv候选作为最佳mv候选。
[0451]
指示是否应用fruc模式的这种信息(例如,被称为fruc标志)可以在cu级别用信号通知。另外地,当应用fruc模式时(例如,当fruc标志为真时),可以在cu级别用信号通知指示适用的模式匹配方法(例如,第一模式匹配或第二模式匹配)的信息。注意,用信号通知这种信息不一定需要在cu级别执行,可以在另一级别(例如,序列级别、图片级别、切片级别、分片级别、ctu级别或子块级别)执行。
[0452]
(mv推导》仿射模式)
[0453]
仿射模式是用于使用仿射变换来生成mv的模式。例如,可以基于多个相邻块的运动向量以子块为单位推导mv。该模式也被称为仿射运动补偿预测模式。
[0454]
图46a是用于示出基于多个相邻块的运动向量以子块为单位的mv推导的一个示例的概念图。在图46a中,当前块包括例如十六个4
×
4子块。这里,在当前块中的左上角控制点处的运动向量v0是基于相邻块的运动向量推导的,并且同样地,在当前块中的右上角控制点处的运动向量v1是基于相邻子块的运动向量推导的。可以根据下面指示的表达式(1a)来投影两个运动向量v0和v1,并且可以推导用于当前块中的相应的子块的运动向量(v
x
,vy)。
[0455]
[数学1]
[0456][0457]
这里,x和y分别指示子块的水平位置和垂直位置,并且w指示确定的加权系数。确定的加权系数可以是预先确定的。
[0458]
指示仿射模式的这种信息(例如,被称为仿射标志)可以在cu级别用信号通知。应当注意,用信号通知指示仿射模式的信息不一定需要在cu级别执行,并且也可以在另一级别(例如,序列级别、图片级别、切片级别、分片级别、ctu级别或子块级别)执行。
[0459]
另外地,仿射模式可以包括用于推导在左上角控制点和右上角控制点处的运动向
量的不同方法的几种模式。例如,仿射模式包括两种模式:仿射帧间模式(也被称为仿射正常帧间模式)和仿射合并模式。
[0460]
(mv推导》仿射模式)
[0461]
图46b是用于示出在其中使用三个控制点的仿射模式中以子块为单位的mv推导的一个示例的概念图。在图46b中,当前块包括例如十六个4
×
4块。这里,在当前块中的左上角控制点处的运动向量v0是基于相邻块的运动向量推导的。这里,在当前块中的右上角控制点处的运动向量v1是基于相邻块的运动向量推导的,并且同样地,当前块的左下角控制点处的运动向量v2是基于相邻块的运动向量推导的。可以根据下面指示的表达式(1b)来投影三个运动向量v0、v1和v2,并且可以推导用于当前块中的相应的子块的运动向量(v
x
,vy)。
[0462]
[数学2]
[0463][0464]
这里,x和y分别指示子块的水平位置和垂直位置,并且w和h可以是加权系数,加权系数可以是预先确定的加权系数。在实施例中,w可以指示当前块的宽度,并且h可以指示当前块的高度。
[0465]
可以在cu级别切换和用信号通知其中使用不同数量的控制点(例如,两个和三个控制点)的仿射模式。注意,指示在cu级别使用的仿射模式中的控制点的数量的信息可以在另一级别(例如,序列级别、图片级别、切片级别、分片级别、ctu级别或子块级别)用信号通知。
[0466]
另外地,其中使用三个控制点的这种仿射模式可以包括用于推导在左上角控制点、右上角控制点和左下角控制点处的运动向量的不同方法。例如,如同其中使用两个控制点的仿射模式的情况,其中使用三个控制点的仿射模式可以包括仿射帧间模式和仿射合并模式这两种模式。
[0467]
注意,在仿射模式下,被包括在当前块中的每个子块的大小可以不限于4
×
4像素,并且也可以是另一大小。例如,每个子块的大小可以是8
×
8个像素。
[0468]
(mv推导》仿射模式》控制点)
[0469]
图47a、图47b和图47c是用于示出在仿射模式下在控制点处的mv推导的示例的概念图。
[0470]
如图47a中示出的,在仿射模式中,例如,基于根据多个运动向量来计算当前块的相应的控制点处的运动向量预测器,这些运动向量与和当前块相邻的经编码的块a(左侧)、块b(上方)、块c(右上方)、块d(左下方)和块e(左上方)之间的根据仿射模式被编码的块相对应。更具体地,按照列出的次序检查经编码的块a(左侧)、块b(上方)、块c(右上方)、块d(左下方)和块e(左上方),并且识别根据仿射模式被编码的第一有效块。当前块的控制点处的运动向量预测器是基于与识别出的块相对应的多个运动向量计算出的。
[0471]
例如,如图47b中示出的,在与当前块在左侧相邻的块a已经根据其中使用两个控制点的仿射模式被编码时,推导在包括块a的经编码的块的左上角位置和右上角位置处投影的运动向量v3和v4。然后根据推导出的运动向量v3和v4来计算当前块的左上角控制点处
的运动向量v0和当前块的右上角控制点处的运动向量v1。
[0472]
例如,如图47c中示出的,在与当前块在左侧相邻的块a已经根据其中使用三个控制点的仿射模式被编码时,推导在包括块a的经编码的块的左上角位置、右上角位置和左下角位置处投影的运动向量v3、v4和v5。然后根据推导出的运动向量v3、v4和v5来计算当前块的左上角控制点处的运动向量v0、当前块的右上角控制点处的运动向量v1以及当前块的左下角控制点处的运动向量v2。
[0473]
图47a至图47c中示出的mv推导方法可以用于图50中示出的步骤sk_1中的当前块的每个控制点处的mv推导,或者可以用于稍后描述的图51中示出的步骤sj_1中的当前块的每个控制点处的mv预测器推导。
[0474]
图48a和图48b是用于示出在仿射模式下在控制点处的mv推导的示例的概念图。
[0475]
图48a是用于示出其中使用两个控制点的示例仿射模式的概念图。
[0476]
在仿射模式中,如图48a中示出的,从与当前块相邻的经编码的块a、块b和块c处的mv中选择的mv用作当前块的左上角控制点处的运动向量v0。同样地,从与当前块相邻的经编码的块d和块e的mv中选择的mv用作当前块的右上角控制点处的运动向量v1。
[0477]
图48b是用于示出其中使用三个控制点的示例仿射模式的概念图。
[0478]
在仿射模式中,如图48b中示出的,从与当前块相邻的经编码的块a、块b和块c处的mv中选择的mv用作当前块的左上角控制点处的运动向量v0。同样地,从与当前块相邻的经编码的块d和块e的mv中选择的mv用作当前块的右上角控制点处的运动向量v1。此外,从与当前块相邻的经编码的块f和块g的mv中选择的mv用作当前块的左下角控制点处的运动向量v2。
[0479]
注意,图48a和图48b中示出的mv推导方法可以用于稍后描述的图50中示出的步骤sk_1中的当前块的每个控制点处的mv推导,或者可以用于稍后描述的图51中示出的步骤sj_1中的当前块的每个控制点处的mv预测器推导。
[0480]
这里,当其中使用不同数量的控制点(例如,两个和三个控制点)的仿射模式可以在cu级别切换和用信号通知时,经编码的块的控制点的数量和当前块的控制点的数量可以彼此不同。
[0481]
图49a和图49b是用于示出当经编码的块的控制点的数量和当前块的控制点的数量彼此不同时,用于在控制点处的mv推导的方法的示例的概念图。
[0482]
例如,如图49a中示出的,当前块具有在左上角、右上角和左下角处的三个控制点,并且与当前块在左侧相邻的块a已经根据其中使用两个控制点的仿射模式被编码。在这种情况下,推导在包括块a的经编码的块中的左上角位置和右上角位置处投影的运动向量v3和v4。然后根据推导出的运动向量v3和v4来计算当前块的左上角控制点处的运动向量v0和右上角控制点处的运动向量v1。此外,根据推导出的运动向量v0和v1来计算左下角控制点处的运动向量v2。
[0483]
例如,如图49b中示出的,当前块具有在左上角和右上角处的两个控制点,并且与当前块在左侧相邻的块a已经根据其中使用三个控制点的仿射模式被编码。在这种情况下,推导在包括块a的经编码的块中的左上角位置、在经编码的块中的右上角位置和在经编码的块中的左下角位置处投影的运动向量v3、v4和v5。然后根据推导出的运动向量v3、v4和v5来计算当前块的左上角控制点处的运动向量v0和当前块的右上角控制点处的运动向量v1。
[0484]
注意,图49a和图49b中示出的mv推导方法可以用于在稍后描述的图50中示出的步骤sk_1中的当前块的每个控制点处的mv推导,或者可以用于稍后描述的图51中示出的步骤sj_1中的当前块的每个控制点处的mv预测器推导。
[0485]
(mv推导》仿射模式》仿射合并模式)
[0486]
图50是示出在仿射合并模式下的过程的一个示例的流程图。
[0487]
在如所示的仿射合并模式下,首先,帧间预测器126推导当前块的相应的控制点处的mv(步骤sk_1)。如图46a中示出的,控制点是当前块的左上角点和当前块的右上角点,或者如图46b中示出的,控制点是当前块的左上角点、当前块的右上角点和当前块的左下角点。帧间预测器126可以编码mv选择信息以识别流中的两个或三个推导出的mv。
[0488]
例如,当使用图47a至图47c中示出的mv推导方法时,如图47a中示出的,帧间预测器126以列出的次序检查经编码的块a(左侧)、块b(上方)、块c(右上方)、块d(左下方)和块e(左上方),并识别根据仿射模式被编码的第一有效块。
[0489]
帧间预测器126使用根据识别出的仿射模式被编码的识别出的第一有效块来推导控制点处的mv。例如,当块a被识别并且块a具有两个控制点时,如图47b中示出的,帧间预测器126根据包括块a的经编码的块的左上角以及经编码的块的右上角处的运动向量v3和v4,计算在当前块的左上角控制点处的运动向量v0和在当前块的右上角控制点处的运动向量v1。例如,帧间预测器126通过将经编码的块的左上角和右上角处的运动向量v3和v4投影到当前块,来计算当前块的左上角控制点处的运动向量v0和当前块的右上角控制点处的运动向量v1。
[0490]
可替代地,当块a被识别并且块a具有三个控制点时,如图47c中示出的,帧间预测器126根据包括块a的经编码的块的左上角、经编码的块的右上角和经编码的块的左下角的运动向量v3、v4和v5,来计算当前块的左上角控制点处的运动向量v0、当前块的右上角控制点处的运动向量v1和当前块的左下角控制点处的运动向量v2。例如,帧间预测器126通过将经编码的块的左上角、右上角和左下角处的运动向量v3、v4和v5投影到当前块上,来计算当前块的左上角控制点处的运动向量v0、当前块的右上角控制点处的运动向量v1和当前块的左下角控制点处的运动向量v2。
[0491]
注意,如上面所描述的图49a中示出的,当块a被识别并且块a具有两个控制点时,可以计算三个控制点处的mv,并且如上面所描述的图49b中示出的,当块a被识别并且块a具有三个控制点时,可以计算两个控制点处的mv。
[0492]
接下来,帧间预测器126对当前块中包括的多个子块中的每一个执行运动补偿。换言之,帧间预测器126例如使用两个运动向量v0和v1以及上述表达式(1a)或者使用三个运动向量v0、v1和v2以及上述表达式(1b)来计算用于多个子块中的每一个的mv作为仿射mv(步骤sk_2)。帧间预测器126然后使用这些仿射mv和经编码的参考图片来执行对子块的运动补偿(步骤sk_3)。当针对被包括在当前块中的所有子块中的每一个执行步骤sk_2和sk_3中的过程时,使用用于当前块的仿射合并模式生成预测图像的过程结束。换言之,执行对当前块的运动补偿以生成当前块的预测图像。
[0493]
注意,上面描述的mv候选列表可以在步骤sk_1中生成。mv候选列表可以是例如包括使用用于每个控制点的多种mv推导方法推导出的mv候选的列表。多种mv推导方法可以是例如图47a至图47c中示出的mv推导方法、图48a和图48b中示出的mv推导方法、图49a和图
49b中示出的mv推导方法以及其他mv推导方法的任何组合。
[0494]
注意,mv候选列表可以包括在除了仿射模式之外的以子块为单位执行预测的模式下的mv候选。
[0495]
注意,例如,可以生成包括在其中使用两个控制点的仿射合并模式和其中使用三个控制点的仿射合并模式下的mv候选的mv候选列表作为mv候选列表。可替代地,可以单独生成包括在其中使用两个控制点的仿射合并模式下的mv候选的mv候选列表和包括在其中使用三个控制点的仿射合并模式下的mv候选的mv候选列表。可替代地,可以生成包括在其中使用两个控制点的仿射合并模式和其中使用三个控制点的仿射合并模式中的一种模式下的mv候选的mv候选列表。(多个)mv候选可以是例如用于经编码的块a(左侧)、块b(上方)、块c(右上方)、块d(左下方)和块e(左上方)的mv,或者用于块中的有效块的mv。
[0496]
注意,指示在mv候选列表中的mv中的一个的索引可以作为mv选择信息被发送。
[0497]
(mv推导》仿射模式》仿射帧间模式)
[0498]
图51是示出在仿射帧间模式下的过程的一个示例的流程图。
[0499]
在仿射帧间模式中,首先,帧间预测器126推导当前块的相应的两个或三个控制点的mv预测器(v0,v1)或(v0,v1,v2)(步骤sj_1)。控制点例如可以是当前块的左上角点、当前块的右上角点和当前块的右上角点,如图46a或图46b中示出的。
[0500]
例如,当使用图48a和图48b中示出的mv推导方法时,帧间预测器126通过选择在图48a或图48b中示出的当前块的相应控制点附近的经编码的块中的任一个的mv,来推导当前块的相应的两个或三个控制点处的mv预测器(v0,v1)或(v0,v1,v2)。这时,帧间预测器126在流中编码用于识别选定的两个或三个mv预测器的mv预测器选择信息。
[0501]
例如,帧间预测器126可以使用成本评估等确定从与当前块相邻的经编码的块中选择作为控制点处的mv预测器的mv的块,并且可以在位流中写入指示已经选择了哪个mv预测器的标志。换言之,帧间预测器126通过预测参数生成器130将诸如标志之类的mv预测器选择信息作为预测参数输出到熵编码器110。
[0502]
接下来,帧间预测器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。
[0503]
最后,帧间预测器126通过使用确定出的mv和经编码的参考图片来执行对当前块的运动补偿来生成针对当前块的预测图像(步骤sj_6)。
[0504]
注意,上面描述的mv候选列表可以在步骤sj_1中生成。mv候选列表可以是例如包括使用用于每个控制点的多种mv推导方法推导出的mv候选的列表。多种mv推导方法可以是例如图47a至图47c中示出的mv推导方法、图48a和图48b中示出的mv推导方法、图49a和图49b中示出的mv推导方法以及其他mv推导方法的任何组合。
[0505]
注意,mv候选列表可以包括在除了仿射模式之外的以子块为单位执行预测的模式下的mv候选。
[0506]
注意,例如,可以生成包括在其中使用两个控制点的仿射帧间模式和其中使用三个控制点的仿射帧间模式下的mv候选的mv候选列表作为mv候选列表。可替代地,可以单独生成包括在其中使用两个控制点的仿射帧间模式下的mv候选的mv候选列表和包括在其中使用三个控制点的仿射帧间模式下的mv候选的mv候选列表。可替代地,可以生成包括在其中使用两个控制点的仿射帧间模式和其中使用三个控制点的仿射帧间模式中的一种模式下的mv候选的mv候选列表。(多个)mv候选可以是例如用于经编码的块a(左侧)、块b(上方)、块c(右上方)、块d(左下方)和块e(左上方)的mv,或者用于块中的有效块的mv。
[0507]
注意,指示在mv候选列表中的mv中的一个的索引可以作为mv预测器选择信息被发送。
[0508]
(mv推导》三角形模式)
[0509]
在上述示例中,帧间预测器126针对当前矩形块生成一个矩形预测图像。然而,帧间预测器126可以生成多个预测图像,每个预测图像的形状与当前矩形块的矩形不同,并且可以组合多个预测图像以生成最终的矩形预测图像。不同于矩形的形状可以是例如三角形。
[0510]
图52a是用于示出生成两个三角形预测图像的概念图。
[0511]
帧间预测器126通过使用第一分区的第一mv对当前块中具有三角形形状的第一分区执行运动补偿来生成三角形预测图像,以生成三角形预测图像。同样地,帧间预测器126通过使用第二分区的第二mv对当前块中具有三角形形状的第二分区执行运动补偿来生成三角形预测图像,以生成三角形预测图像。然后,帧间预测器126通过组合这些预测图像来生成具有与当前块的矩形形状相同的矩形形状的预测图像。
[0512]
注意,可以使用第一mv生成具有对应于当前块的矩形形状的第一预测图像作为针对第一分区的预测图像。另外地,可以使用第二mv生成具有对应于当前块的矩形形状的第二预测图像作为针对第二分区的预测图像。可以通过执行第一预测图像和第二预测图像的加权的相加来生成针对当前块的预测图像。注意,进行加权的相加的部分可以是跨第一分区与第二分区之间的边界的部分区域。
[0513]
图52b是用于示出第一分区的与第二分区重叠的第一部分,以及可作为校正过程的一部分被加权的样本的第一集合和第二集合的示例的概念图。第一部分可以具有例如第一分区的宽度或高度的四分之一。在另一示例中,第一部分可以具有对应于与第一分区的边缘相邻的n个样本的宽度,其中n是大于零的整数,例如,n可以是整数2。如所示的,图52b的左侧示例示出了具有矩形部分的矩形分区,其宽度是第一分区的宽度的四分之一,其中样本的第一集合包括在第一部分外部的样本和在第一部分内部的样本,并且样本的第二集合包括在第一部分内的样本。图52b的中心示例示出了具有矩形部分的矩形分区,其高度是第一分区的高度的四分之一,其中样本的第一集合包括在第一部分外部的样本和在第一部分内部的样本,并且样本的第二集合包括在第一部分内的样本。图52b的右侧示例示出了具有多边形部分的三角形分区,其高度对应于两个样本,其中样本的第一集合包括在第一部分外部的样本和在第一部分内部的样本,并且样本的第二集合包括在第一部分内的样本。
[0514]
第一部分可以是第一分区的与相邻分区重叠的部分。图52c是用于示出第一分区
的第一部分的概念图,该第一部分是第一分区的与相邻分区的一部分重叠的部分。为了便于说明,示出了与空间上相邻的矩形分区具有重叠部分的矩形分区。可以采用具有其他形状的分区(例如,三角形分区),并且重叠部分可以与在空间或时间上相邻的分区重叠。
[0515]
另外地,虽然给出了其中使用帧间预测来生成针对两个分区中的每个分区的预测图像的示例,但是可以使用帧内预测来生成针对至少一个分区的预测图像。
[0516]
图53是示出在三角形模式下的过程的一个示例的流程图。
[0517]
在三角形模式下,首先,帧间预测器126将当前块拆分为第一分区和第二分区(步骤sx_1)。这时,帧间预测器126可以在流中将作为与拆分为分区相关的信息的分区信息编码作为预测参数。换言之,帧间预测器126可以通过预测参数生成器130将分区信息作为预测参数输出到熵编码器110。
[0518]
首先,帧间预测器126基于信息(例如,在时间或空间上在当前块周围的多个经编码的块的mv)来获得当前块的多个mv候选(步骤sx_2)。换言之,帧间预测器126生成mv候选列表。
[0519]
帧间预测器126然后从在步骤sx_1中获得的多个mv候选中分别选择用于第一分区的mv候选和用于第二分区的mv候选作为第一mv和第二mv(步骤sx_3)。这时,帧间预测器126在流中将用于识别选定的mv候选的mv选择信息编码作为预测参数。换言之,帧间预测器126通过预测参数生成器130将mv选择信息作为预测参数输出到熵编码器110。
[0520]
接下来,帧间预测器126通过使用选定的第一mv和经编码的参考图片执行运动补偿来生成第一预测图像(步骤sx_4)。同样地,帧间预测器126通过使用选定的第二mv和经编码的参考图片执行运动补偿来生成第二预测图像(步骤sx_5)。
[0521]
最后,帧间预测器126通过执行第一预测图像和第二预测图像的加权的相加来生成针对当前块的预测图像(步骤sx_6)。
[0522]
注意,虽然在图52a中示出的示例中第一分区和第二分区为三角形,但第一分区和第二分区可以是梯形或者彼此不同的其他形状。此外,虽然当前块在图52a和图52c中示出的示例中包括两个分区,但当前块可以包括三个或更多个分区。
[0523]
另外地,第一分区和第二分区可以彼此重叠。换言之,第一分区和第二分区可以包括相同的像素区域。在这种情况下,可以使用第一分区中的预测图像和第二分区中的预测图像来生成针对当前块的预测图像。
[0524]
另外地,虽然已经示出了其中使用帧间预测来生成针对两个分区中的每个分区的预测图像的示例,但是可以使用帧内预测来生成针对至少一个分区的预测图像。
[0525]
注意,用于选择第一mv的mv候选列表和用于选择第二mv的mv候选列表可以彼此不同,或者也可以将用于选择第一mv的mv候选列表作为用于选择第二mv的mv候选列表。
[0526]
注意,分区信息可以包括指示其中至少当前块被拆分为多个分区的拆分方向的索引。mv选择信息可以包括指示选定的第一mv的索引和指示选定的第二mv的索引。一个索引可以指示多条信息。例如,可以对共同指示分区信息的一部分或全部以及mv选择信息的一部分或全部的一个索引进行编码。
[0527]
(mv推导》atmvp模式)
[0528]
图54是用于示出其中以子块为单位推导mv的高级时间运动向量预测(atmvp)模式的一个示例的概念图。
[0529]
atmvp模式是被分类为合并模式的模式。例如,在atmvp模式下,每个子块的mv候选被注册在mv候选列表中以用于正常合并模式。
[0530]
更具体地,在atmvp模式下,首先,如图54中示出的,在由相对于当前块位于左下位置处的相邻块的mv(mv0)指定的经编码的参考图片中识别与当前块相关联的时间mv参考块。接下来,在当前块中的每个子块中,识别用于对在时间mv参考块中的子块对应的区域进行编码的mv。以这种方式识别出的mv作为mv候选被包括在mv候选列表中用于当前块中的子块。当从mv候选列表中选择用于每个子块的mv候选时,子块经历运动补偿,其中mv候选被用作用于子块的mv。以这种方式,生成针对每个子块的预测图像。
[0531]
虽然在图54中示出的示例中,相对于当前块位于左下位置处的块用作周围mv参考块,但应当注意,可以使用另一块。另外地,子块的大小可以是4
×
4像素、8
×
8像素或其他大小。子块的大小可以针对诸如切片、砖块、图片等之类的单位进行切换。
[0532]
(mv推导》dmvr)
[0533]
图55是示出在合并模式与解码器运动向量细化dmvr之间的关系的流程图。
[0534]
帧间预测器126根据合并模式来推导用于当前块的运动向量(步骤sl_1)。接下来,帧间预测器126确定是否执行对运动向量的估计,即,运动估计(步骤sl_2)。这里,当确定不执行运动估计时(步骤sl_2中的“否”),帧间预测器126将在步骤sl_1中推导出的运动向量确定为用于当前块的最终运动向量(步骤sl_4)。换言之,在这种情况下,用于当前块的运动向量是根据合并模式确定的。
[0535]
当在步骤sl_1中确定执行运动估计时(步骤sl_2中的“是”),帧间预测器126通过估计由在步骤sl_1中推导出的运动向量指定的参考图片的周围区域来推导用于当前块的最终运动向量(步骤sl_3)。换言之,在这种情况下,当前块的运动向量是根据dmvr确定的。
[0536]
图56是用于示出用于确定mv的dmvr过程的一个示例的概念图。
[0537]
首先,例如在合并模式下,针对当前块选择mv候选(l0和l1)。根据mv候选(l0)从作为l0列表中的经编码的图片的第一参考图片(l0)识别参考像素。同样地,根据mv候选(l1)从作为l1列表中的经编码的图片的第二参考图片(l1)中识别参考像素。通过计算这些参考像素的平均来生成模板。
[0538]
接下来,使用模板来估计第一参考图片(l0)和第二参考图片(l1)的mv候选的周围区域中的每一个,并且将产生最小成本的mv确定为最终mv。注意,可以例如使用在模板中的像素值中的每一个与估计区域中的像素值中的对应一个之间的差值、mv候选的值等来计算成本。
[0539]
并不总是需要执行这里描述的完全相同的过程。可以使用通过在mv候选的周围区域中的估计来实现最终mv的推导的其他过程。
[0540]
图57是用于示出确定mv的dmvr的另一示例的概念图。不同于图56中示出的dmvr的示例,在图57中示出的示例中,在不生成模板的情况下计算成本。
[0541]
首先,帧间预测器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)的总和作为成本,并找出产生最小成本的搜索位置。
[0542]
图58a是用于示出dmvr中的运动估计的一个示例的概念图,并且图58b是用于示出运动估计的过程的一个示例的流程图。
[0543]
首先,在步骤1中,帧间预测器126计算在由初始mv指示的搜索位置(也被称为开始点)与八个周围搜索位置之间的成本。帧间预测器126然后确定在除了开始点之外的搜索位置中的每一处的成本是否最小。这里,当确定在除了开始点之外的搜索位置处的成本最小时,帧间预测器126将目标改变为在该处获得最小成本的搜索位置,并执行步骤2中的过程。当开始点处的成本最小时,帧间预测器126跳过步骤2中的过程并执行步骤3中的过程。
[0544]
在步骤2中,帧间预测器126执行与步骤1中的过程类似的搜索,根据步骤1中的过程的结果,将目标改变后的搜索位置视为新的开始点。然后帧间预测器126确定在除了开始点之外的搜索位置中的每一处的成本是否最小。这里,当确定在除了开始点之外的搜索位置处的成本最小时,帧间预测器126执行步骤4中的过程。当在开始点处的成本最小时,帧间预测器126执行步骤3中的过程。
[0545]
在步骤4中,帧间预测器126将开始点处的搜索位置视为最终搜索位置,并且将在由初始mv指示的位置与最终搜索位置之间的差确定为向量差。
[0546]
在步骤3中,帧间预测器126基于相对于步骤1或步骤2中的开始点位于上方、下方、左侧和右侧位置的四个点处的成本,来确定获得最小成本的以子像素准确度的像素位置,并将像素位置视为最终搜索位置。通过使用四个搜索位置中对应一个位置处的成本作为加权,对上方、下方、左侧、右侧四个向量((0,1)、(0,-1)、(-1,0)和(1,0))中的每一个执行加权的相加,来确定以子像素准确度的像素位置。帧间预测器126然后将在由初始mv指示的位置与最终搜索位置之间的差确定为向量差。
[0547]
(运动补偿》bio/obmc/lic)
[0548]
运动补偿涉及用于生成预测图像和校正预测图像的模式。该模式例如是稍后描述的双向光流(bio)、重叠块运动补偿(obmc)、局部照明补偿(lic)等。
[0549]
图59是示出预测图像的生成的过程的一个示例的流程图。
[0550]
帧间预测器126生成预测图像(步骤sm_1),并且例如根据上面描述的模式中的任一个来校正预测图像(步骤sm_2)。
[0551]
图60是示出预测图像的生成的过程的另一示例的流程图。
[0552]
帧间预测器126确定当前块的运动向量(步骤sn_1)。接下来,帧间预测器126使用运动向量来生成预测图像(步骤sn_2),并确定是否执行校正过程(步骤sn_3)。这里,当确定要执行校正过程时(步骤sn_3中的“是”),帧间预测器126通过校正预测图像来生成最终预测图像(步骤sn_4)。注意,在稍后描述的lic中,可以在步骤sn_4中校正照度和彩度。当确定不执行校正过程时(步骤sn_3中的“否”),帧间预测器126在不校正预测图像的情况下输出预测图像作为最终预测图像(步骤sn_5)。
[0553]
(运动补偿》obmc)
[0554]
注意,除了通过运动估计获得的用于当前块的运动信息之外,还可以使用用于相邻块的运动信息来生成帧间预测图像。更具体地,通过执行对基于通过运动估计获得的运动信息的预测图像(在参考图片中)和基于相邻块的运动信息的预测图像(在当前图片中)的加权的相加,可以针对当前块中的每个子块生成帧间预测图像。这种帧间预测(运动补偿)也被称为重叠块运动补偿(obmc)或obmc模式。
[0555]
在obmc模式下,可以在序列级别用信号通知指示用于obmc的子块大小的信息(例如,被称为obmc块大小)。此外,可以在cu级别用信号通知指示是否应用obmc模式的信息(例如,被称为obmc标志)。注意,用信号通知这种信息不一定需要在序列级别和cu级别执行,并且可以在另一级别(例如,图片级别、切片级别、砖块级别、ctu级别或子块级别)执行。
[0556]
将更详细地描述obmc模式。图61和图62是用于示出由obmc执行的预测图像校正过程的概要的流程图和概念图。
[0557]
首先,如图62中示出的,使用指派给当前块的mv来获得通过正常运动补偿的预测图像(pred)。在图62中,箭头“mv”指向参考图片,并指示当前图片的当前块为了获得预测图像所参考的内容。
[0558]
接下来,通过将已经针对在当前块左侧相邻的经编码的块推导出的运动向量(mv_l)应用于当前块(重新使用用于当前块的运动向量)来获得预测图像(pred_l)。运动向量(mv_l)由箭头“mv_l”指示,该箭头指示来自当前块的参考图片。通过重叠两个预测图像pred和pred_l来执行对预测图像的第一校正。这提供了混合相邻块之间的边界的效果。
[0559]
同样地,通过将已经针对在当前块上方相邻的经编码的块推导出的mv(mv_u)应用于当前块(重新使用用于当前块的mv)来获得预测图像(pred_u)。mv(mv_u)由箭头“mv_u”指示,该箭头指示来自当前块的参考图片。通过重叠预测图像pred_u与已经执行了第一校正的预测图像(例如,pred和pred_l)来执行对预测图像的第二校正。这提供了混合相邻块之间的边界的效果。通过第二校正获得的预测图像是其中相邻块之间的边界已经被混合(平滑)的图像,并且因此是当前块的最终预测图像。
[0560]
虽然上述示例是使用左侧和上方相邻块的双路径校正方法,但应当注意,校正方法可以是也使用右侧相邻块和/或下方相邻块的三路径或更多路径校正方法。
[0561]
注意,其中执行这种重叠的区域可以只是在区域中靠近块边界的一部分,而不是整个块的像素区域。
[0562]
注意,上面已经描述了根据obmc的用于通过重叠附加预测图像pred_l和pred_u从一个参考图片获得一个预测图像pred的预测图像校正过程。然而,当基于多个参考图像校正预测图像时,可以对多个参考图片中的每一个应用类似过程。在这种情况下,在通过基于多个参考图片执行obmc图像校正,从相应的参考图片中获得校正后的预测图像之后,将获得的校正后的预测图像进一步重叠,以获得最终的预测图像。
[0563]
注意,在obmc中,当前块单元可以是pu,或者是通过进一步拆分pu获得的子块单元。
[0564]
用于确定是否应用obmc的方法的一个示例是用于使用作为指示是否应用obmc的信号的obmc_flag的方法。作为一个具体示例,编码器100可以确定当前块是否属于具有复杂运动的区域。当块属于具有复杂运动的区域时,编码器100将obmc_flag设置为值“1”,并
在编码时应用obmc,并且当块不属于具有复杂运动的区域时,编码器100将obmc_flag设置为“0”值,并在不应用obmc的情况下对块进行编码。解码器200通过对写入流中的obmc_flag进行解码而在应用obmc与不应用obmc之间切换。
[0565]
(运动补偿》bio)
[0566]
接下来,描述mv推导方法。首先,描述了用于基于假设匀速直线运动的模型来推导mv的模式。这种模式也被称为双向光流(bio)模式。另外地,这种双向光流可以被写为bdof而不是bio。
[0567]
图63是用于示出假设匀速直线运动的模型的概念图。在图63中,(v
x
,vy)指示速度向量,并且τ0和τ1指示在当前图片(cur pic)与两个参考图片(ref0,ref1)之间的时间距离。(mv
x0
,mv
y0
)指示与参考图片ref0相对应的mv,并且(mv
x1
,mv
y1
)表示与参考图片ref1相对应的mv。
[0568]
这里,假设由速度向量(v
x
,vy)表现出匀速直线运动,(mv
x0
,mv
y0
)和(mv
x1
,mv
y1
)分别表示为(v
xτ0
,v
yτ0
)和(-v
xτ1
,-v
yτ1
),并给出以下光流等式(2)。
[0569]
[数学3]
[0570][0571]
这里,i(k)指示在运动补偿之后的参考图片的运动补偿的亮度值k(k=0、1)。该光流等式表示以下各项的总和等于零:(i)亮度值的时间导数,(ii)水平速度与参考图像的空间梯度的水平分量的乘积,以及(iii)垂直速度与参考图像的空间梯度的垂直分量的乘积。基于光流等式和hermite插值的组合,可以以像素为单位校正从例如mv候选列表获得的每个块的运动向量。
[0572]
注意,可以在解码器侧200使用除了基于假设匀速直线运动的模型来推导运动向量之外的方法来推导运动向量。例如,可以基于多个相邻块的运动向量以子块为单位推导运动向量。
[0573]
图64是示出根据bio的帧间预测的过程的一个示例的流程图。图65是示出可以根据bio执行帧间预测的帧间预测器126的功能配置的一个示例的功能框图。
[0574]
如图65中示出的,帧间预测器126包括例如存储器126a、插值图像推导器126b、梯度图像推导器126c、光流推导器126d、校正值推导器126e和预测图像校正器126f。注意,存储器126a可以是帧存储器122。
[0575]
帧间预测器126使用与包括当前块的图片(cur pic)不同的两个参考图片(ref0、ref1)来推导两个运动向量(m0,m1)。然后,帧间预测器126使用两个运动向量(m0,m1)来推导针对当前块的预测图像(步骤sy_1)。注意,运动向量m0是与参考图片ref0相对应的运动向量(mv
x0
,mv
y0
),并且运动向量m1是与参考图片ref1相对应的运动向量(mv
x1
,mv
y1
)。
[0576]
接下来,插值图像推导器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)并应用运动补偿滤波器而获得的预测图像。
[0577]
另外地,梯度图像推导器126c根据插值图像i0和插值图像i1推导当前块的梯度图像(ix0,ix1,iy0,iy1)(步骤sy_3)。注意,水平方向上的梯度图像为(ix0,ix1),并且垂直方向上的梯度图像为(iy0,iy1)。梯度图像推导器126c可以通过例如将梯度滤波器应用于插值图像来推导每个梯度图像。梯度图像可以指示像素值沿水平方向、沿垂直方向或沿两个方向的空间改变量。
[0578]
接下来,光流推导器126d使用插值图像(i0,i1)和梯度图像(ix0,ix1,iy0,iy1)针对当前块的每个子块推导作为速度向量的光流(vx,vy)(步骤sy_4)。光流指示用于校正空间像素移动量的系数,并且可以被称为局部运动估计值、经校正的运动向量或经校正的加权向量。作为一个示例,子块可以是4
×
4像素的子cu。注意,光流推导可以针对每个像素单元等执行,而不是针对每个子块执行。
[0579]
接下来,帧间预测器126使用光流(vx,vy)来校正针对当前块的预测图像。例如,校正值推导器126e使用光流(vx,vy)推导当前块中包括的像素的值的校正值(步骤sy_5)。预测图像校正器126f然后可以使用校正值来校正针对当前块的预测图像(步骤sy_6)。注意,校正值可以以像素为单位推导,或者可以以多个像素为单位或以子块为单位推导。
[0580]
注意,bio过程流程不限于图64中公开的过程。例如,可以只执行图64中公开的过程的一部分,或者可以添加不同过程或使用不同过程作为替代,或者可以以不同的处理次序执行过程等。
[0581]
(运动补偿》lic)
[0582]
接下来,描述用于使用局部照明补偿(lic)过程来生成预测图像(预测)的模式的一个示例。
[0583]
图66a是用于示出使用由lic执行的照度校正过程的预测图像生成方法的过程的一个示例的概念图。图66b是示出使用lic的预测图像生成方法的过程的一个示例的流程图。
[0584]
首先,帧间预测器126从经编码的参考图片推导mv,并获得对应于当前块的参考图像(步骤sz_1)。
[0585]
接下来,帧间预测器126针对当前块提取指示亮度值在当前块与参考图片之间如何改变的信息(步骤sz_2)。基于当前图片中的经编码的左侧相邻参考区域(周围参考区域)和经编码的上方相邻参考区域(周围参考区域)的亮度像素值,以及由推导出的mv指定的参考图片中的对应位置处的亮度像素值,来执行该提取。帧间预测器126使用指示亮度值如何改变的信息来计算照度校正参数(步骤sz_3)。
[0586]
帧间预测器126通过执行照度校正过程来生成针对当前块的预测图像,在该照度校正过程中将照度校正参数应用于由mv指定的参考图片中的参考图像(步骤sz_4)。换言之,基于照度校正参数对预测图像进行校正,该预测图像作为由mv指定的参考图片中的参考图像。在该校正中,可以校正照度,或者可以校正彩度,或者可以校正两者。换言之,可以使用指示彩度如何改变的信息来计算彩度校正参数,并且可以执行彩度校正过程。
[0587]
注意,图66a中示出的周围参考区域的形状是一个示例;可以使用另一种形状。
[0588]
此外,虽然这里已经描述了其中根据单个参考图片生成预测图像的过程,但是可
以以相同方式描述其中根据多个参考图片生成预测图像的情况。可以以与上面描述的相同的方式,在对从参考图片获得的参考图像执行照度校正过程之后生成预测图像。
[0589]
用于确定是否应用lic的方法的一个示例是用于使用作为指示是否应用lic的信号的lic_flag的方法。作为一个具体示例,编码器100确定当前块是否属于具有照度改变的区域。当块属于具有照度改变的区域时,编码器100将lic_flag设置为值“1”,并且在编码时应用lic,并且当块不属于具有照度改变的区域时,编码器100将lic_flag设置为值“0”,并且在不应用lic的情况下执行编码。解码器200可以通过根据标志值在应用lic与不应用lic之间切换,来解码写入流中的lic_flag并解码当前块。
[0590]
确定是否应用lic过程的不同方法的一个示例是根据是否已经对周围块应用了lic过程的确定方法。作为一个具体示例,在当前块已经在合并模式下被处理时,帧间预测器126确定在合并模式下的mv推导中选择的经编码的周围块是否已经使用lic被编码。帧间预测器126通过根据结果在应用lic与不应用lic之间切换来执行编码。注意,也在该示例中,在解码器200侧的过程中应用相同的过程。
[0591]
照度校正(lic)过程已经参考图66a和图66b进行了描述,并在下面进一步描述。
[0592]
首先,帧间预测器126从作为经编码的图片的参考图片推导用于获得对应于要被编码的当前块的参考图像的mv。
[0593]
接下来,帧间预测器126使用与当前块的左侧和上方相邻的经编码的周围参考区域的亮度像素值和在由mv指定的参考图片的对应位置中的亮度值,来提取指示参考图片的亮度值如何改变为当前图片的亮度值的信息,并计算照度校正参数。例如,假设当前图片中周围参考区域中的给定像素的亮度像素值为p0,并且与参考图片中周围参考区域中的给定像素相对应的像素的亮度像素值为p1。帧间预测器126计算用于优化a
×
p1 b=p0的系数a和b,作为用于周围参考区域中的多个像素的照度校正参数。
[0594]
接下来,帧间预测器126使用针对由mv指定的参考图片中的参考图像的照度校正参数执行照度校正处理,以生成针对当前块的预测图像。例如,假设参考图像中的亮度像素值为p2,并且预测图像的照度校正后的亮度像素值为p3。帧间预测器126通过针对参考图像中的像素中的每一个计算a
×
p2 b=p3,在经历照度校正过程之后生成预测图像。
[0595]
例如,具有从上方相邻像素和左侧相邻像素中的每一个提取的确定数量的像素的区域可以用作周围参考区域。另外地,周围参考区域不限于与当前块相邻的区域,也可以是不与当前块相邻的区域。在图66a中示出的示例中,参考图片中的周围参考区域可以是从当前图片中的周围参考区域中由当前图片中的另一mv指定的区域。例如,其他mv可以是当前图片中周围参考区域中的mv。
[0596]
虽然这里已经描述了由编码器100执行的操作,但是应当注意,解码器200执行类似的操作。
[0597]
注意,lic不仅可以应用于亮度,还可以应用于色度。这时,可以针对y、cb和cr中的每一个单独推导校正参数,或者可以针对y、cb和cr中的任何一个使用共同的校正参数。
[0598]
另外地,可以以子块为单位应用lic过程。例如,可以使用当前子块中的周围参考区域和由当前子块的mv指定的参考图片中的参考子块中的周围参考区域来推导校正参数。
[0599]
(预测控制器)
[0600]
预测控制器128选择帧内预测信号(从帧内预测器124输出的图像或信号)和帧间
预测信号(从帧间预测器126输出的图像或信号)中的一个,并将选定的预测图像输出到减法器104和加法器116作为预测信号。
[0601]
(预测参数生成器)
[0602]
预测参数生成器130可以将与帧内预测、帧间预测、预测控制器128中预测图像的选择等相关的信息作为预测参数输出到熵编码器110。熵编码器110可以基于从预测参数生成器130输入的预测参数和从量化器108输入的经量化的系数来生成流。预测参数可以在解码器200中使用。解码器200可以接收并解码流,并且执行与由帧内预测器124、帧间预测器126和预测控制器128执行的预测过程相同的过程。预测参数可以包括,例如,(i)选择预测信号(例如,由帧内预测器124或帧间预测器126使用的mv、预测类型或预测模式),或(ii)基于在帧内预测器124、帧间预测器126和预测控制器128的每一个中执行的预测过程或指示预测过程的可选索引、标志或值。
[0603]
(解码器)
[0604]
接下来,描述能够对从上面描述的编码器100输出的流进行解码的解码器200。图67是示出根据本实施例的解码器200的功能配置的框图。解码器200是以块为单位对作为经编码的图像的流进行解码的装置。
[0605]
如图67中示出的,解码器200包括熵解码器202、逆量化器204、逆变换器206、加法器208、块存储器210、环路滤波器212、帧存储器214、帧内预测器216、帧间预测器218、预测控制器220、预测参数生成器222和拆分确定器224。注意,帧内预测器216和帧间预测器218被配置作为预测执行器的一部分。
[0606]
(解码器的安装示例)
[0607]
图68是示出解码器200的安装示例的功能框图。解码器200包括处理器b1和存储器b2。例如,图67中示出的解码器200的多个构成元件被安装在图68中示出的处理器b1和存储器b2上。
[0608]
处理器b1是执行信息处理并耦合到存储器b2的电路。例如,处理器b1是对流进行解码的专用或通用电子电路。处理器b1可以是诸如cpu之类的处理器。另外地,处理器b1可以是多个电子电路的集合体。另外,例如,处理器b1可以承担图67中示出的解码器200的多个构成元件中除了用于存储信息的构成元件之外的两个或更多个构成元件的角色等。
[0609]
存储器b2是用于存储由处理器b1使用以对流进行解码的信息的专用或通用存储器。存储器b2可以是电子电路,并且可以连接到处理器b1。另外地,存储器b2可以被包括在处理器b1中。另外地,存储器b2可以是多个电子电路的集合体。另外地,存储器b2可以是磁盘、光盘等,或者可以被表示为存储装置、记录介质等。另外地,存储器b2可以是非易失性存储器或易失性存储器。
[0610]
例如,存储器b2可以存储图像或流。另外地,存储器b2可以存储用于使处理器b1对流进行解码的程序。
[0611]
另外地,例如,存储器b2可以承担图67中示出的解码器200的多个构成元件中用于存储信息的两个或更多个构成元件的角色等。更具体地,存储器b2可以承担图67中示出的块存储器210和帧存储器214的角色。更具体地,存储器b2可以存储经重构的图像(具体地,经重构的块、经重构的图片等)。
[0612]
注意,在解码器200中,可能不实现图67中指示的多个构成元件中的所有元件等,
并且可能不执行本文所描述的所有过程。图67中指示的构成元件的一部分等可以被包括在另一设备中,或者本文所描述的过程的一部分可以由另一设备执行。
[0613]
在下文中,描述了由解码器200执行的过程的整体流程,然后将描述了解码器200中包括的构成元件中的每一个。注意,解码器200中包括的构成元件中的一些执行与编码器100中的一些执行的相同的过程,因此相同的过程不再重复详细描述。例如,解码器200中包括的逆量化器204、逆变换器206、加法器208、块存储器210、帧存储器214、帧内预测器216、帧间预测器218、预测控制器220和环路滤波器212分别执行与解码器200中包括的逆量化器112、逆变换器114、加法器116、块存储器118、帧存储器122、帧内预测器124、帧间预测器126、预测控制器128和环路滤波器120执行的类似过程。
[0614]
(解码过程的整体流程)
[0615]
图69是示出由解码器200执行的整体解码过程的一个示例的流程图。
[0616]
首先,解码器200中的拆分确定器224基于从熵解码器202输入的参数来确定图片中包括的多个固定大小的块(例如,128
×
128像素)中的每一个的拆分模式(步骤sp_1)。该拆分模式是由编码器100选择的拆分模式。解码器200然后针对拆分模式的多个块中的每个块执行步骤sp_2至sp_6的过程。
[0617]
熵解码器202对经编码的经量化的系数和当前块的预测参数进行解码(具体地,进行熵解码)(步骤sp_2)。
[0618]
接下来,逆量化器204对多个经量化的系数执行逆量化,并且逆变换器206对结果执行逆变换,以恢复预测残差(即,差块)(步骤sp_3)。
[0619]
接下来,包括帧内预测器216、帧间预测器218和预测控制器220中的所有或一部分的预测执行器生成当前块的预测信号(步骤sp_4)。
[0620]
接下来,加法器208将预测图像与预测残差相加以生成当前块的经重构的图像(也被称为经解码的图像块)(步骤sp_5)。
[0621]
当生成经重构的图像时,环路滤波器212执行对经重构的图像的滤波(步骤sp_6)。
[0622]
解码器200然后确定对整个图片的解码是否已经结束(步骤sp_7)。当确定解码尚未结束时(步骤sp_7中的“否”),解码器200重复从步骤sp_1开始的过程。
[0623]
注意,这些步骤sp_1至sp_7的过程可以由解码器200顺序执行,或者可以并行执行过程中的两个或更多个过程。可以修改过程中的两个或更多个过程的处理次序。
[0624]
(拆分确定器)
[0625]
图70是用于示出实施例中在拆分确定器224与其他构成元件之间的关系的概念图。作为示例,拆分确定器224可以执行以下过程。
[0626]
例如,拆分确定器224从块存储器210或帧存储器214收集块信息,并且进一步从熵解码器202获得参数。然后拆分确定器224可以基于块信息和参数来确定固定大小的块的拆分模式。拆分确定器224然后可以将指示确定出的拆分模式的信息输出到逆变换器206、帧内预测器216和帧间预测器218。逆变换器206可以基于由来自拆分确定器224的信息指示的拆分模式来执行对变换系数的逆变换。帧内预测器216和帧间预测器218可以基于由来自拆分确定器224的信息指示的拆分模式来生成预测图像。
[0627]
(熵解码器)
[0628]
图71是示出熵解码器202的功能配置的一个示例的框图。
[0629]
熵解码器202通过对流进行熵解码来生成经量化的系数、预测参数和与拆分模式相关的参数。例如,cabac用于熵解码。更具体地,熵解码202包括例如二进制算术解码器202a、上下文控制器202b和去二值化器202c。二进制算术解码器202a使用由上下文控制器202b推导的上下文值将流算术地解码为二进制信号。上下文控制器202b以与编码器100的上下文控制器110b执行的相同的方式,根据句法元素的特征或周围状态(即,二进制信号的出现概率)来推导上下文值。去二值化器202c执行去二值化以将从二进制算术解码器202a输出的二进制信号变换为指示经量化的系数的多级信号,如上面所描述的。该二值化可以根据上面描述的二值化方法执行。
[0630]
这样,熵解码器202将每个块的经量化的系数输出到逆量化器204。熵解码器202可以将流中包括的预测参数(见图1)输出到帧内预测器216、帧间预测器218和预测控制器220。帧内预测器216、帧间预测器218和预测控制器220能够执行与由编码器100侧的帧内预测器124、帧间预测器126和预测控制器128执行的那些预测过程相同的预测过程。
[0631]
图72是用于示出熵解码器202中的示例cabac过程的流程的概念图。
[0632]
首先,在熵解码器202中的cabac中执行初始化。在初始化中,执行二进制算术解码器202a中的初始化和初始上下文值的设置。二进制算术解码器202a和去二值化器202c然后执行例如ctu的经编码的数据的算术解码和去二值化。这时,上下文控制器202b在每次执行行算术解码时更新上下文值。上下文控制器202b然后保存上下文值作为后处理。例如,保存的上下文值用于初始化用于下一ctu的上下文值。
[0633]
(逆量化器)
[0634]
逆量化器204对从熵解码器202输入的当前块的经量化的系数进行逆量化。更具体地,逆量化器204基于对应于经量化的系数的量化参数来对当前块的经量化的系数进行逆量化。逆量化器204然后将当前块的经逆量化的变换系数(即,变换系数)输出到逆变换器206。
[0635]
图73是示出逆量化器204的功能配置的一个示例的框图。
[0636]
逆量化器204包括例如量化参数生成器204a、预测的量化参数生成器204b、量化参数存储装置204d和逆量化执行器204e。
[0637]
图74是示出由逆量化器204执行的逆量化的过程的一个示例的流程图。
[0638]
作为一个示例,逆量化器204可以基于图741中示出的流程中的每个cu执行逆量化过程。更具体地,量化参数生成器204a确定是否执行逆量化(步骤sv_11)。这里,当确定要执行逆量化时(步骤sv_11中的“是”),量化参数生成器204a从熵解码器202获得针对当前块的差量化参数(步骤sv_12)。
[0639]
接下来,预测的量化参数生成器204b然后从量化参数存储装置204d获得针对与当前块不同的处理单元的量化参数(步骤sv_13)。预测的量化参数生成器204b基于获得的量化参数来生成当前块的预测的量化参数(步骤sv_14)。
[0640]
量化参数生成器204a然后基于从熵解码器202获得的针对当前块的差量化参数和由预测的量化参数生成器204b生成的针对当前块的预测的量化参数,来生成针对当前块的量化参数(步骤sv_15)。例如,可以将从熵解码器202获得的针对当前块的差量化参数和由预测的量化参数生成器204b生成的针对当前块的预测的量化参数相加,以生成针对当前块的量化参数。另外地,量化参数生成器204a将针对当前块的量化参数存储在量化参数存储
装置204d中(步骤sv_16)。
[0641]
接下来,逆量化执行器204e使用在步骤sv_15中生成的量化参数将当前块的经量化的系数逆量化为变换系数(步骤sv_17)。
[0642]
注意,差量化参数可以在位序列级别、图片级别、切片级别、砖块级别或ctu级别被解码。另外地,量化参数的初始值可以在序列级别、图片级别、切片级别、砖块级别或ctu级别被解码。这时,可以使用量化参数的初始值和差量化参数来生成量化参数。
[0643]
注意,逆量化器204可以包括多个逆量化器,并且可以使用从多种逆量化方法中选择的逆量化方法来对经量化的系数进行逆量化。
[0644]
(逆变换器)
[0645]
逆变换器206通过对作为来自逆量化器204的输入的变换系数进行逆变换来恢复预测残差。
[0646]
例如,当从流解析的信息指示要应用emt或amt时(例如,当amt标志为真时),逆变换器206基于指示解析的变换类型的信息来对当前块的变换系数进行逆变换。
[0647]
此外,例如,当从流解析的信息指示要应用nsst时,逆变换器206对变换系数应用二次逆变换。
[0648]
图75是示出由逆变换器206执行的过程的一个示例的流程图。
[0649]
例如,逆变换器206确定流中是否存在指示不执行正交变换的信息(步骤st_11)。这里,当确定不存在这样的信息时(步骤st_11中的“否”)(例如:不存在关于是否执行正交变换的任何指示;存在将执行正交变换的指示),逆变换器206获得指示由熵解码器202解码的变换类型的信息(步骤st_12)。接下来,基于该信息,逆变换器206确定用于编码器100中的正交变换的变换类型(步骤st_13)。逆变换器206然后使用确定出的变换类型执行逆正交变换(步骤st_14)。如图75中示出的,当确定存在指示不执行正交变换的信息时(步骤st_11中的“是”)(例如,不执行正交变换的明确指示;不存在执行正交变换的指示),不执行正交变换。
[0650]
图76是示出由逆变换器206执行的过程的一个示例的流程图。
[0651]
例如,逆变换器206确定变换大小是否小于或等于确定值(步骤su_11)。该确定值可以是预先确定的。这里,当确定变换大小小于或等于确定值时(步骤su_11中的“是”),逆变换器206从熵解码器202获得指示在被包括在第一变换类型组中的至少一个变换类型中,编码器100使用了哪种变换类型的信息(步骤su_12)。注意,这样的信息由熵解码器202解码并输出到逆变换器206。
[0652]
基于该信息,逆变换器206确定用于编码器100中的正交变换的变换类型(步骤su_13)。逆变换器206然后使用确定出的变换类型对当前块的变换系数执行逆正交变换(步骤su_14)。当确定变换大小不小于或等于确定值时(步骤su_11中的“否”),逆变换器206使用第二变换类型组对当前块的变换系数进行逆变换(步骤su_15)。
[0653]
注意,作为一个示例,由逆变换器206进行的逆正交变换可以根据图75或图76中示出的流程针对每个tu执行。另外地,可以通过使用定义的变换类型而不解码指示用于正交变换的变换类型的信息来执行逆正交变换。定义的变换类型可以是预先定义的变换类型或默认的变换类型。另外地,变换类型具体可以是dst7、dct8等。在逆正交变换中,使用对应于变换类型的逆变换基函数。
[0654]
(加法器)
[0655]
加法器208通过将作为来自逆变换器206的输入的预测残差和作为来自预测控制器220的输入的预测图像进行相加来重构当前块。换言之,生成当前块的经重构的图像。加法器208然后将当前块的经重构的图像输出到块存储器210和环路滤波器212。
[0656]
(块存储器)
[0657]
块存储器210是用于存储被包括在当前图片中并且可以在帧内预测中参考的块的存储装置。更具体地,块存储器210存储从加法器208输出的经重构的图像。
[0658]
(环路滤波器)
[0659]
环路滤波器212将环路滤波器应用于由加法器208生成的经重构的图像,并将经滤波的经重构的图像输出到帧存储器214,并提供解码器200的输出,例如,并输出到显示设备等。
[0660]
当从流解析的指示alf的开启或关闭的信息指示alf开启时,可以例如基于局部梯度的方向和活性从多个滤波器中选择一个滤波器,并且选定的滤波器被应用于经重构的图像。
[0661]
图77是示出环路滤波器212的功能配置的一个示例的框图。注意,环路滤波器212具有类似于编码器100的环路滤波器120的配置的配置。
[0662]
例如,如图77中示出的,环路滤波器212包括去块滤波器执行器212a、sao执行器212b和alf执行器212c。去块滤波器执行器212a对经重构的图像执行去块滤波过程。sao执行器212b对在经过去块滤波过程之后的经重构的图像执行sao过程。alf执行器212c对经过sao过程之后的经重构的图像执行alf过程。注意,环路滤波器212并不总是需要包括图77中公开的所有构成元件,并且可以仅包括构成元件的一部分。另外地,环路滤波器212可以被配置为以与图77中公开的处理次序不同的处理次序来执行上述过程,可以不执行图77中示出的所有过程,等等。
[0663]
(帧存储器)
[0664]
帧存储器214是例如用于存储用于帧间预测的参考图片的存储装置,并且也可以被称为帧缓冲器。更具体地,帧存储器214存储由环路滤波器212滤波的经重构的图像。
[0665]
(预测器(帧内预测器、帧间预测器、预测控制器))
[0666]
图78是示出由解码器200的预测器执行的过程的一个示例的流程图。注意,预测执行器可以包括以下构成元件的全部或一部分:帧内预测器216;帧间预测器218;以及预测控制器220。预测执行器包括例如帧内预测器216和帧间预测器218。
[0667]
预测器生成当前块的预测图像(步骤sq_1)。该预测图像也可以被称为预测信号或预测块。应当注意,预测信号例如是帧内预测图像或帧间预测图像。更具体地,预测器使用已经针对另一块获得的经重构的图像通过预测图像的生成、预测残差的恢复以及预测图像的添加来生成当前块的预测图像。解码器200的预测器生成与由编码器100的预测器生成的预测图像相同的预测图像。换言之,根据预测器之间共同的方法或相互对应的方法来生成预测图像。
[0668]
经重构的图像例如可以是参考图片中的图像,或者作为包括当前块的图片的当前图片中的经解码的块(即,上面描述的其他块)的图像。当前图片中的经解码的块例如是当前块的相邻块。
[0669]
图79是示出由解码器200的预测器执行的过程的另一示例的流程图。
[0670]
预测器确定用于生成预测图像的方法或模式(步骤sr_1)。例如,可以基于例如预测参数等来确定方法或模式。
[0671]
当确定第一种方法作为用于生成预测图像的模式时,预测器根据第一种方法生成预测图像(步骤sr_2a)。当确定第二种方法作为用于生成预测图像的模式时,预测器根据第二种方法生成预测图像(步骤sr_2b)。当确定第三种方法作为用于生成预测图像的模式时,预测器根据第三种方法生成预测图像(步骤sr_2c)。
[0672]
第一种方法、第二种方法和第三种方法可以是相互不同的用于生成预测图像的方法。第一种方法至第三种方法中的每一种方法可以是帧间预测方法、帧内预测方法或另一预测方法。可以在这些预测方法中使用上面描述的经重构的图像。
[0673]
图80是示出由解码器200的预测器执行的过程的另一示例的流程图。
[0674]
作为一个示例,预测器可以根据图80中示出的流程来执行预测过程。注意,图80中示出的块内复制是属于帧间预测的一种模式,并且其中被包括在当前图片中的块被称为参考图像或参考块。换言之,在块内复制中不参考与当前图片不同的图片。另外地,图80中示出的pcm模式是属于帧内预测的一种模式,并且其中不执行变换和量化。
[0675]
(帧内预测器)
[0676]
帧内预测器216通过参考存储在块存储器210中的当前图片中的块,基于从流解析的帧内预测模式来执行帧内预测,以生成当前块(即,帧内预测块)的预测图像。更具体地,帧内预测器216通过参考与当前块相邻的一个或多个块的像素值(例如,亮度和/或色度值)执行帧内预测,以生成帧内预测图像,然后将帧内预测图像输出到预测控制器220。
[0677]
注意,当选择其中在色度块的帧内预测中参考亮度块的帧内预测模式时,帧内预测器216可以基于当前块的亮度分量来预测当前块的色度分量。
[0678]
此外,当从流解析的信息指示将应用pdpc时,帧内预测器216基于水平/垂直参考像素梯度来校正帧内预测的像素值。
[0679]
图81是示出由解码器200的帧内预测器216执行的过程的一个示例的图。
[0680]
帧内预测器216首先确定是否采用mpm。如图81中示出的,帧内预测器216确定流中是否存在指示1的mpm标志(步骤sw_11)。这里,当确定存在指示1的mpm标志时(步骤sw_11中的“是”),帧内预测器216从熵解码器202获得指示在mpm之中在编码器100中选择的帧内预测模式的信息。注意,这种信息由熵解码器202解码并被输出到帧内预测器216。接下来,帧内预测器216确定mpm(步骤sw_13)。mpm包括例如六种帧内预测模式。帧内预测器216然后确定被包括在mpm中的多个帧内预测模式中包括的并且由在步骤sw_12中获得的信息指示的帧内预测模式(步骤sw_14)。
[0681]
当确定不存在指示1的mpm标志时(步骤sw_11中的“否”),帧内预测器216获得指示在编码器100中选择的帧内预测模式的信息(步骤sw_15)。换言之,帧内预测器216从熵解码器202获得指示从未被包括在mpm中的至少一种帧内预测模式中的在编码器100中选择的帧内预测模式的信息。注意,这种信息由熵解码器202解码并被输出到帧内预测器216。帧内预测器216然后确定被包括在mpm中的多个帧内预测模式中不包括的并且由在步骤sw_15中获得的信息指示的帧内预测模式(步骤sw_17)。
[0682]
帧内预测器216根据在步骤sw_14或步骤sw_17中确定出的帧内预测模式来生成预
测图像(步骤sw_18)。
[0683]
(帧间预测器)
[0684]
帧间预测器218通过参考存储在帧存储器214中的参考图片来预测当前块。以当前块或当前块中的当前子块为单位执行预测。注意,子块被包括在块中,并且是小于块的单位。子块的大小可以是4
×
4像素、8
×
8像素或其他大小。子块的大小可以针对诸如切片、砖块、图片等之类的单位进行切换。
[0685]
例如,帧间预测器218通过使用从流(例如,从熵解码器202输出的预测参数)解析的运动信息(例如,mv)执行运动补偿来生成当前块或当前子块的帧间预测图像,并将帧间预测图像输出到预测控制器220。
[0686]
当从流解析的信息指示要应用obmc模式时,除了通过运动估计获得的当前块的运动信息之外,帧间预测器218还使用相邻块的运动信息来生成帧间预测图像。
[0687]
此外,当从流解析的信息指示要应用fruc模式时,帧间预测器218通过根据从流解析的模式匹配方法(例如,双边匹配或模板匹配)执行运动估计来推导运动信息。帧间预测器218然后使用推导出的运动信息执行运动补偿(预测)。
[0688]
此外,当要应用bio模式时,帧间预测器218基于假设匀速直线运动的模型来推导mv。另外地,当从流解析的信息指示要应用仿射模式时,帧间预测器218基于多个相邻块的mv推导用于每个子块的mv。
[0689]
(mv推导流程)
[0690]
图82是示出解码器200中的mv推导过程的一个示例的流程图。
[0691]
例如,帧间预测器218确定是否解码运动信息(例如,mv)。例如,帧间预测器218可以根据流中包括的预测模式进行确定,或者可以基于流中包括的其他信息进行确定。这里,当确定解码运动信息时,帧间预测器218在其中运动信息被解码的模式下推导用于当前块的mv。当确定不解码运动信息时,帧间预测器218在其中运动信息未被解码的模式下推导mv。
[0692]
这里,mv推导模式包括稍后描述的正常帧间模式、正常合并模式、fruc模式、仿射模式等。模式中的其中运动信息被解码的模式包括正常帧间模式、正常合并模式、仿射模式(具体为仿射帧间模式和仿射合并模式)等。注意,运动信息可以不仅包括mv,还包括稍后描述的mv预测器选择信息。其中运动信息未被解码的模式包括fruc模式等。帧间预测器218从多个模式中选择用于推导用于当前块的mv的模式,并使用选定的模式来推导用于当前块的mv。
[0693]
图83是示出解码器200中的mv推导的过程的一个示例的流程图。
[0694]
例如,帧间预测器218可以确定是否对mv差进行解码,即例如可以根据被包括在流中的预测模式来进行确定,或者可以基于被包括在流中的其他信息来进行确定。这里,当确定对mv差进行解码时,帧间预测器218可以在其中mv差被解码的模式下推导用于当前块的mv。在这种情况下,例如,被包括在流中的mv差被解码作为预测参数。
[0695]
当确定不对任何mv差进行解码时,帧间预测器218在其中mv差不被解码的模式下推导mv。在这种情况下,流中不包括经编码的mv差。
[0696]
这里,如上面所描述的,mv推导模式包括稍后描述的正常帧间模式、正常合并模式、fruc模式、仿射模式等。模式中的其中mv差被编码的模式包括正常帧间模式和仿射模式
(具体为仿射帧间模式)等。其中mv差不被编码的模式包括fruc模式、正常合并模式、仿射模式(具体为仿射合并模式)等。帧间预测器218从多种模式中选择用于推导用于当前块的mv的模式,并使用选定的模式推导用于当前块的mv。
[0697]
(mv推导》正常帧间模式)
[0698]
例如,当从流解析的信息指示要应用正常帧间模式时,帧间预测器218基于从流解析的信息推导mv并使用该mv执行运动补偿(预测)。
[0699]
图84是示出在解码器200中通过正常帧间模式进行的帧间预测的过程的示例的流程图。
[0700]
解码器200的帧间预测器218针对每个块执行运动补偿。首先,帧间预测器218基于信息(例如,在时间或空间上在当前块周围的多个经解码的块的mv)来获得用于当前块的多个mv候选(步骤sg_11)。换言之,帧间预测器218生成mv候选列表。
[0701]
接下来,帧间预测器218根据确定出的优先级次序中的排名从在步骤sg_11中获得的多个mv候选中提取n(2或更大的整数)个mv候选作为运动向量预测器候选(也被称为mv预测器候选)(步骤sg_12)。注意,可以针对相应的n个mv预测器候选预先确定按优先级次序的排名,并且该排名可以是预先确定的。
[0702]
接下来,帧间预测器218对来自输入流的mv预测器选择信息进行解码,并使用经解码的mv预测器选择信息从n个mv预测器候选中选择一个mv预测器候选作为用于当前块的mv预测器(步骤sg_13)。
[0703]
接下来,帧间预测器218对来自输入流的mv差进行解码,并且通过将作为经解码的mv差的差值与选定的mv预测器进行相加来推导用于当前块的mv(步骤sg_14)。
[0704]
最后,帧间预测器218通过使用推导出的mv和经解码的参考图片执行对当前块的运动补偿来生成用于当前块的预测图像(步骤sg_15)。针对每个块执行步骤sg_11至sg_15中的过程。例如,当对切片中的所有块中的每个块执行步骤sg_11至sg_15中的过程时,使用正常帧间模式对切片的帧间预测结束。例如,当对图片中的所有块中的每个块执行步骤sg_11至sg_15中的过程时,使用正常帧间模式对图片的帧间预测结束。注意,并不是切片中包括的所有块都可以经历步骤sg_11至sg_15中的过程,并且当块中的一部分经历过程时,使用正常帧间模式对切片的帧间预测可以结束。这也适用于步骤sg_11至sg_15中的图片。当对图片中的块中的一部分执行过程时,使用正常帧间模式对图片的帧间预测可以结束。
[0705]
(mv推导》正常合并模式)
[0706]
例如,当从流解析的信息指示要应用正常合并模式时,帧间预测器218推导mv并使用该mv执行运动补偿(预测)。
[0707]
图85是示出解码器200中通过正常合并模式进行帧间的预测的过程的示例的流程图。
[0708]
首先,帧间预测器218基于信息(例如,在时间或空间上在当前块周围的多个经解码的块的mv)来获得用于当前块的多个mv候选(步骤sh_11)。换言之,帧间预测器218生成mv候选列表。
[0709]
接下来,帧间预测器218从在步骤sh_11中获得的多个mv候选中选择一个mv候选,从而推导用于当前块的mv(步骤sh_12)。更具体地,帧间预测器218获得作为预测参数包括在流中的mv选择信息,并且选择由mv选择信息识别的mv候选作为用于当前块的mv。
[0710]
最后,帧间预测器218通过使用推导出的mv和经解码的参考图片执行对当前块的运动补偿来生成针对当前块的预测图像(步骤sh_13)。例如,针对每个块执行步骤sh_11至sh_13中的过程。例如,当对切片中的所有块中的每个块执行步骤sh_11至sh_13中的过程时,使用正常合并模式对切片的帧间预测结束。另外地,当对图片中的所有块中的每个块执行步骤sh_11至sh_13中的过程时,使用正常合并模式对图片的帧间预测结束。注意,并不是被包括在切片中的所有块都经历步骤sh_11至sh_13的过程,并且当块中的一部分经历过程时,使用正常合并模式对切片的帧间预测可以结束。这也适用于步骤sh_11至sh_13中的图片。当对图片中的块中的一部分执行过程时,使用正常合并模式对图片的帧间预测可以结束。
[0711]
(mv推导》fruc模式)
[0712]
例如,当从流解析的信息指示将应用fruc模式时,帧间预测器218在fruc模式下推导mv并使用该mv执行运动补偿(预测)。在这种情况下,运动信息是在解码器200侧推导的,而没有从编码器100侧用信号通知。例如,解码器200可以通过执行运动估计来推导运动信息。在这种情况下,解码器200在不使用当前块中的任何像素值的情况下执行运动估计。
[0713]
图86是示出在解码器200中通过fruc模式进行的帧间预测的过程的示例的流程图。
[0714]
首先,帧间预测器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。
[0715]
最后,帧间预测器218通过使用推导出的mv和经解码的参考图片执行对当前块的运动补偿来生成针对当前块的预测图像(步骤si_15)。例如,针对每个块执行步骤si_11至si_15中的过程。例如,当对切片中的所有块中的每个块执行步骤si_11至si_15中的过程时,使用fruc模式对切片的帧间预测结束。例如,当对图片中的所有块中的每个块执行步骤si_11至si_15中的过程时,使用fruc模式对图片的帧间预测结束。可以类似于每个块的情况来处理每个子块。
[0716]
(mv推导》fruc模式)
[0717]
例如,当从流解析的信息指示要应用仿射合并模式时,帧间预测器218在仿射合并模式下推导mv并使用该mv执行运动补偿(预测)。
[0718]
图87是示出在解码器200中通过仿射合并模式进行的帧间预测的过程的示例的流程图。
[0719]
在仿射合并模式下,首先,帧间预测器218推导用于当前块的在相应的控制点处的
mv(步骤sk_11)。如图46a中示出的,控制点是当前块的左上角点和当前块的右上角点,或者如图46b中示出的,控制点是当前块的左上角点、当前块的右上角点和当前块的左下角点。
[0720]
例如,当使用图47a至图47c中示出的mv推导方法时,如图47a中示出的,帧间预测器218按次序检查经解码的块a(左侧)、块b(上方)、块c(右上方)、块d(左下方)和块e(左上方),并识别根据仿射模式被解码的第一有效块。帧间预测器218使用根据仿射模式被解码的识别出的第一有效块来推导控制点处的mv。例如,当块a被识别并且块a具有两个控制点时,如图47b中示出的,帧间预测器218根据包括块a的经解码的块的左上角和右上角处的运动向量v3和v4来计算当前块的左上角控制点处的运动向量v0和当前块的右上角控制点处的运动向量v1。以这种方式,推导在每个控制点处的mv。
[0721]
注意,如图49a中示出的,当块a被识别并且块a具有两个控制点时,可以计算三个控制点处的mv,并且如图49b中示出的,当块a被识别并且当块a具有三个控制点时,可以计算两个控制点处的mv。
[0722]
另外地,当mv选择信息被包括在流中作为预测参数时,帧间预测器218可以使用mv选择信息来推导用于当前块的在每个控制点处的mv。
[0723]
接下来,帧间预测器218对当前块中包括的多个子块中的每个子块执行运动补偿。换言之,帧间预测器218使用两个运动向量v0和v1以及上述表达式(1a)或者使用三个运动向量v0、v1和v2以及上述表达式(1b)来计算用于多个子块中的每一个的mv作为仿射mv(步骤sk_12)。帧间预测器218然后使用这些仿射mv和经编码的参考图片来执行对子块的运动补偿(步骤sk_13)。当针对被包括在当前块中的所有子块中的每一个执行步骤sk_12和sk_13中的过程时,使用用于当前块的仿射合并模式的帧间预测结束。换言之,执行对当前块的运动补偿以生成当前块的预测图像。
[0724]
注意,上面描述的mv候选列表可以在步骤sk_11中生成。mv候选列表可以是例如包括使用用于每个控制点的多种mv推导方法推导出的mv候选的列表。多种mv推导方法可以是例如图47a至图47c中示出的mv推导方法、图48a和图48b中示出的mv推导方法、图49a和图49b中示出的mv推导方法以及其他mv推导方法的任何组合。
[0725]
注意,mv候选列表可以包括在除了仿射模式之外的以子块为单位执行预测的模式下的mv候选。
[0726]
注意,例如,可以生成包括在其中使用两个控制点的仿射合并模式和其中使用三个控制点的仿射合并模式下的mv候选的mv候选列表作为mv候选列表。可替代地,可以单独生成包括在其中使用两个控制点的仿射合并模式下的mv候选的mv候选列表和包括在其中使用三个控制点的仿射合并模式下的mv候选的mv候选列表。可替代地,可以生成包括在其中使用两个控制点的仿射合并模式和其中使用三个控制点的仿射合并模式中的一种模式下的mv候选的mv候选列表。
[0727]
(mv推导》仿射帧间模式)
[0728]
例如,当从流解析的信息指示将应用仿射帧间模式时,帧间预测器218在仿射帧间模式下推导mv并使用该mv执行运动补偿(预测)。
[0729]
图88是示出在解码器200中通过仿射帧间模式进行的帧间预测的过程的示例的流程图。
[0730]
在仿射帧间模式下,首先,帧间预测器218推导当前块的相应的两个或三个控制点
的mv预测器(v0,v1)或(v0,v1,v2)(步骤sj_11)。控制点是当前块的左上角点、当前块的右上角点和当前块的左下角点,如图46a或图46b中示出的。
[0731]
帧间预测器218获得作为预测参数被包括在流中的mv预测器选择信息,并使用由mv预测器选择信息识别出的mv来推导当前块的每个控制点处的mv预测器。例如,当使用图48a和图48b中示出的mv推导方法时,帧间预测器218通过选择图48a或图48b中示出的当前块的相应控制点附近的经解码的块中的mv预测器选择信息识别出的块的mv,来推导当前块的控制点处的运动向量预测器(v0,v1)或(v0,v1,v2)。
[0732]
接下来,帧间预测器218获得作为预测参数被包括在流中的每个mv差,并且将当前块的每个控制点处的mv预测器与对应于mv预测器的mv差进行相加(步骤sj_12)。以这种方式,推导用于当前块的在每个控制点处的mv。
[0733]
接下来,帧间预测器218对当前块中包括的多个子块中的每一个执行运动补偿。换言之,帧间预测器218使用两个运动向量v0和v1以及上述表达式(1a)或者使用三个运动向量v0、v1和v2以及上述表达式(1b)来计算用于多个子块中的每一个的mv作为仿射mv(步骤sk_13)。帧间预测器218然后使用这些仿射mv和经编码的参考图片来执行对子块的运动补偿(步骤sk_14)。当针对被包括在当前块中的所有子块中的每一个执行步骤sk_13和sk_14中的过程时,使用用于当前块的仿射合并模式的帧间预测结束。换言之,执行对当前块的运动补偿以生成当前块的预测图像。
[0734]
注意,上面描述的mv候选列表可以如步骤sk_11那样在步骤sj_11中生成。
[0735]
(mv推导》三角形模式)
[0736]
例如,当从流解析的信息指示将应用三角形模式时,帧间预测器218在三角形模式下推导mv并使用该mv执行运动补偿(预测)。
[0737]
图89是示出在解码器200中通过三角形模式进行帧间预测的过程的示例的流程图。
[0738]
在三角形模式下,首先,帧间预测器218将当前块拆分为第一分区和第二分区(步骤sx_11)。例如,帧间预测器218可以从流中获得分区信息作为预测参数,该分区信息是与拆分相关的信息。帧间预测器218然后可以根据分区信息将当前块拆分为第一分区和第二分区。
[0739]
接下来,帧间预测器218基于信息(例如,在时间或空间上在当前块周围的多个经解码的块的mv)来获得用于当前块的多个mv候选(步骤sx_12)。换言之,帧间预测器218生成mv候选列表。
[0740]
帧间预测器218然后从在步骤sx_11中获得的多个mv候选中分别选择用于第一分区的mv候选和用于第二分区的mv候选作为第一mv和第二mv(步骤sx_13)。这时,帧间预测器218可以从流中获得用于识别每个选定的mv候选的mv选择信息作为预测参数。帧间预测器218然后可以根据mv选择信息来选择第一mv和第二mv。
[0741]
接下来,帧间预测器218通过使用选定的第一mv和经解码的参考图片执行运动补偿来生成第一预测图像(步骤sx_14)。同样地,帧间预测器218通过使用选定的第二mv和经解码的参考图片执行运动补偿来生成第二预测图像(步骤sx_15)。
[0742]
最后,帧间预测器218通过执行第一预测图像和第二预测图像的加权的相加来生成针对当前块的预测图像(步骤sx_16)。
[0743]
(mv估计》dmvr)
[0744]
例如,从流解析的信息指示将应用dmvr,帧间预测器218使用dmvr来执行运动估计。
[0745]
图90是示出在解码器200中通过dmvr进行的运动估计的过程的示例的流程图。
[0746]
帧间预测器218根据合并模式推导用于当前块的mv(步骤sl_11)。接下来,帧间预测器218通过搜索由在sl_11中推导出的mv指示的参考图片周围的区域来推导用于当前块的最终mv(步骤sl_12)。换言之,在这种情况下,当前块的mv是根据dmvr确定的。
[0747]
图91是示出在解码器200中通过dmvr进行的运动估计的过程的示例的流程图,并且与图58b相同。
[0748]
首先,在图58a中示出的步骤1中,帧间预测器218计算在由初始mv指示的搜索位置(也被称为开始点)与八个周围搜索位置之间的成本。帧间预测器218然后确定在除了开始点之外的搜索位置中的每一处的成本是否最小。这里,当确定在除了开始点之外的搜索位置中的一处的成本最小时,帧间预测器218将目标改变为在该处获得最小成本的搜索位置,并执行图58a中示出的步骤2中的过程。当开始点处的成本最小时,帧间预测器218跳过图58a中示出的步骤2中的过程并执行步骤3中的过程。
[0749]
在图58a中示出的步骤2中,帧间预测器218执行与步骤1中的过程类似的搜索,根据步骤1中的过程的结果,将目标改变后的搜索位置视为新的开始点。然后帧间预测器218确定在除了开始点之外的搜索位置中的每一处的成本是否最小。这里,当确定在除了开始点之外的搜索位置中的一处的成本最小时,帧间预测器218执行步骤4中的过程。当在开始点处的成本最小时,帧间预测器218执行步骤3中的过程。
[0750]
在步骤4中,帧间预测器218将开始点处的搜索位置视为最终搜索位置,并且将在由初始mv指示的位置与最终搜索位置之间的差确定为向量差。
[0751]
在图58a中示出的步骤3中,帧间预测器218基于相对于步骤1或步骤2中的开始点位于上方、下方、左侧和右侧位置的四个点处的成本,来确定获得最小成本的以子像素准确度的像素位置,并将像素位置视为最终搜索位置。
[0752]
通过使用四个搜索位置中对应一个位置处的成本作为加权,对上方、下方、左侧、右侧四个向量((0,1)、(0,-1)、(-1,0)和(1,0))中的每一个执行加权的相加,来确定以子像素准确度的像素位置。帧间预测器218然后将在由初始mv指示的位置与最终搜索位置之间的差确定为向量差。
[0753]
(运动补偿》bio/obmc/lic)
[0754]
例如,当从流解析的信息指示要执行对预测图像的校正时,在生成预测图像时,帧间预测器218基于用于校正的模式来校正预测图像。该模式例如是上面描述的bio、obmc和lic中的一个。
[0755]
图92是示出在解码器200中生成预测图像的过程的一个示例的流程图。
[0756]
帧间预测器218生成预测图像(步骤sm_11),并根据上面描述的模式中的任一种来校正预测图像(步骤sm_12)。
[0757]
图93是示出在解码器200中生成预测图像的过程的另一示例的流程图。
[0758]
帧间预测器218推导用于当前块的mv(步骤sn_11)。接下来,帧间预测器218使用该mv生成预测图像(步骤sn_12),并确定是否执行校正过程(步骤sn_13)。例如,帧间预测器
218获得被包括在流中的预测参数,并基于该预测参数来确定是否执行校正过程。例如,该预测参数是指示是否要应用上面描述的模式中的一种或多种的标志。这里,当确定要执行校正过程时(步骤sn_13中的“是”),帧间预测器218通过校正预测图像来生成最终预测图像(步骤sn_14)。注意,在lic中,可以在步骤sn_14中校正照度和彩度。当确定不执行校正过程时(步骤sn_13中的“否”),帧间预测器218在不校正预测图像的情况下输出最终预测图像(步骤sn_15)。
[0759]
(运动补偿》obmc)
[0760]
例如,当从流解析的信息指示要执行obmc时,在生成预测图像时,帧间预测器218根据obmc校正预测图像。
[0761]
图94是示出在解码器200中通过obmc对预测图像的校正的过程的示例的流程图。注意,图94中的流程图指示使用图62中示出的当前图片和参考图片对预测图像的校正流程。
[0762]
首先,如图62中示出的,帧间预测器218使用指派给当前块的mv通过进行正常运动补偿来获得预测图像(pred)。
[0763]
接下来,帧间预测器218通过将已经针对在当前块左侧相邻的经编码的块推导出的运动向量(mv_l)应用于当前块(重新使用用于当前块的运动向量)来获得预测图像(pred_l)。然后,帧间预测器218通过重叠两个预测图像pred和pred_l来执行对预测图像的第一校正。这提供了混合相邻块之间的边界的效果。
[0764]
同样地,帧间预测器218通过将已经针对在当前块上方相邻的经编码的块推导出的mv(mv_u)应用于当前块(重新使用用于当前块的mv)来获得预测图像(pred_u)。然后,帧间预测器218通过重叠预测图像pred_u与已经执行了第一校正的预测图像(例如,pred和pred_l)来执行对预测图像的第二校正。这提供了混合相邻块之间的边界的效果。通过第二校正获得的预测图像是其中相邻块之间的边界已经被混合(平滑)的图像,并且因此是当前块的最终预测图像。
[0765]
(运动补偿》bio)
[0766]
例如,当从流解析的信息指示要执行bio时,在生成预测图像时,帧间预测器218根据bio校正预测图像。
[0767]
图95是示出在解码器200中由bio校正预测图像的过程的示例的流程图。
[0768]
如图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
)。
[0769]
接下来,帧间预测器218使用运动向量m0和参考图片l0推导针对当前块的插值图像i0。另外地,帧间预测器218使用运动向量m1和参考图片l1推导针对当前块的插值图像i1(步骤sy_12)。这里,插值图像i0是被包括在参考图片ref0中并且针对当前块推导出的图像,并且插值图像i1是被包括在参考图片ref1中并且针对当前块推导出的图像。插值图像i0和插值图像i1中的每一个在大小上可以与当前块相同。可替代地,插值图像i0和插值图像i1中的每一个可以是大于当前块的图像。此外,插值图像i0和插值图像i1可以包括通过使用运动向
量(m0,m1)和参考图片(l0,l1)并应用运动补偿滤波器而获得的预测图像。
[0770]
另外地,帧间预测器218根据插值图像i0和插值图像i1推导当前块的梯度图像(ix0,ix1,iy0,iy1)(步骤sy_13)。注意,水平方向上的梯度图像为(ix0,ix1),并且垂直方向上的梯度图像为(iy0,iy1)。帧间预测器218可以通过例如将梯度滤波器应用于插值图像来推导梯度图像。梯度图像可以是指示像素值沿水平方向的空间改变量或像素值沿垂直方向的空间改变量中的每一个的图像。
[0771]
接下来,帧间预测器218使用插值图像(i0,i1)和梯度图像(ix0,ix1,iy0,iy1)针对当前块的每个子块推导作为速度向量的光流(vx,vy)(步骤sy_14)。作为一个示例,子块可以是4
×
4像素的子cu。
[0772]
接下来,帧间预测器218使用光流(vx,vy)来校正针对当前块的预测图像。例如,帧间预测器218使用光流(vx,vy)推导当前块中包括的像素的值的校正值(步骤sy_15)。帧间预测器218然后可以使用校正值来校正针对当前块的预测图像(步骤sy_16)。注意,校正值可以以像素为单位推导,或者可以以多个像素为单位或以子块为单位推导。
[0773]
注意,bio过程流不限于图95中公开的过程。可以只执行图95中公开的过程的一部分,或者可以添加不同过程或使用不同过程作为替代,或者可以以不同的处理次序执行过程等。
[0774]
(运动补偿》lic)
[0775]
例如,当从流解析的信息指示要执行lic时,在生成预测图像时,帧间预测器218根据lic校正预测图像。
[0776]
图96是示出在解码器200中由lic对预测图像的校正的过程的示例的流程图。
[0777]
首先,帧间预测器218使用mv从经解码的参考图片中获得与当前块相对应的参考图像(步骤sz_11)。
[0778]
接下来,帧间预测器218针对当前块提取指示照度值在当前图片与参考图片之间如何改变的信息(步骤sz_12)。可以基于经编码的左侧相邻参考区域(周围参考区域)和经编码的上方相邻参考区域(周围参考区域)的亮度像素值,以及由推导出的mv指定的参考图片中的对应位置处的亮度像素值,来执行该提取。帧间预测器218使用指示亮度值如何改变的信息来计算照度校正参数(步骤sz_13)。
[0779]
帧间预测器218通过执行照度校正过程来生成针对当前块的预测图像,在该照度校正过程中将照度校正参数应用于由mv指定的参考图片中的参考图像(步骤sz_14)。换言之,基于照度校正参数对预测图像进行校正,该预测图像作为由mv指定的参考图片中的参考图像。在该校正中,可以校正照度,或者可以校正彩度。
[0780]
(预测控制器)
[0781]
预测控制器220选择帧内预测图像或帧间预测图像,并将选定的图像输出到加法器208。总的来说,解码器200侧的预测控制器220、帧内预测器216和帧间预测器218的配置、功能和过程可以对应于编码器100侧的预测控制器128、帧内预测器124和帧间预测器126的配置、功能和过程。
[0782]
(使用预测的色度样本进行解码)
[0783]
在第一方面,确定是否可以使用亮度样本来预测当前块的色度样本块,其中采用预测的色度样本来对该块进行解码。例如,实施例可以采用在解码方法或编码方法中使用
照度信号的解码结果来确定是否启用诸如cclm之类的工具来预测色差信号的过程。
[0784]
图97是示出使用预测的色度样本对块进行解码的过程1000的一个示例的流程图,该过程可以例如由图7的编码器100或图67的解码器200执行。为了方便起见,将参考图67的解码器200来描述图97。
[0785]
在s1001处,解码器200确定当前色度块是否在与色度样本的m
×
n网格对齐的m
×
n非重叠区域内部。图99和图100是用于示出确定当前色度块是否在与色度样本的m
×
n网格对齐的m
×
n非重叠区域内部的示例的概念图。在一些格式(例如,yuv420格式)中,彩度的16
×
16像素区域对应于照度的32
×
32像素区域。如图99和图100中示出的,在与16
×
16彩度网格对齐的32
×
32照度区域内的彩度块被确定为在与色度样本的m
×
n网格对齐的m
×
n非重叠区域内部。不在32
×
32照度区域内的彩度块不被确定为在与色度样本的m
×
n网格对齐的m
×
n非重叠区域内部。即使当前色度块跨对应的亮度块的边界,如果它被包括在同一vpdu中,就可以使用亮度样本来获得色度样本。例如,图99中的色度块a使用亮度块b中的对应样本来预测色度块a-1中的样本,并且使用亮度块c中的对应样本来预测色度块a-2中的样本。
[0786]
如图100中示出的,可以使用针对色度块的亮度样本来预测所示色度块的色度样本,因为色度块被包括在网格(如所示的,16
×
16网格)中,并且共置的亮度块也在共置的32
×
32区域内部。
[0787]
在一些实施例中,例如,在默认情况下,当满足例如下面参考s1002所讨论的其他条件时等,可以不使用亮度样本来预测未被确定为在与色度样本的m
×
n网格对齐的m
×
n非重叠区域内部的彩度样本块,而可以使用亮度样本来预测被确定为在与色度样本的m
×
n网格对齐的m
×
n非重叠区域内部的彩度样本块。
[0788]
如图97中示出的,当在s1001处未确定当前色度块在与色度样本的m
×
n网格对齐的m
×
n非重叠区域内部时,过程1000从s1001进行到s1004,在s1004中,解码器200在不使用亮度样本的情况下预测色度样本块。过程1000从s1004进行到s1005,在s1005中,解码器200使用预测的色度样本对块进行解码。当在s1001处确定当前色度块在m
×
n非重叠区域内部时,过程1000从s1001进行到s1002。
[0789]
在s1002处,解码器200确定是否将当前亮度vpdu拆分为较小的块。vpdu是在编码或解码处理中并行处理的单位,例如,64
×
64的大小。vpdu的大小可以由标准等决定,或者可以被编码在流中。
[0790]
可以以各种方式确定是否将当前亮度vpdu拆分为较小的块,并且下面参考图102和图103更详细地讨论一些示例。
[0791]
当在s1002处未确定要将当前亮度vpdu拆分为较小的块时,过程1000从s1002进行到s1004,在s1004中,解码器200在不使用亮度样本的情况下预测色度样本块。过程1000从s1004进行到s1005,在s1005中,解码器200使用预测的色度样本对块进行解码。当在s1002处确定要将当前亮度vpdu拆分为较小的块时,过程1000从s1002进行到s1003,在s1003中,解码器200使用亮度样本来预测色度样本块。过程1000从s1003进行到s1005,在s1005中,解码器200使用预测的色度样本对块进行解码。在一些实施例中,可以考虑附加的考虑因素来确定是否使用亮度样本来对色度样本块进行解码,例如,如下面参考图104至图110所讨论的。
[0792]
图98是示出使用预测的色度样本来解码块的过程2000的另一示例的流程图,该过
程可以例如由图7的编码器100或图67的解码器200来执行。为了方便起见,将参考图67的解码器200来描述图98。
[0793]
在s2001处,解码器200确定是否要将第一vpdu和第二vpdu拆分为较小的块。可以以各种方式确定是否要将当前亮度vpdu拆分为较小的块,并且在下面参考图102和图103更详细地讨论一些示例。
[0794]
当在s2001处确定不将第一vpdu拆分为较小的块并且要将第二vpdu拆分为较小的块时,过程2000从s2001进行到s2002,在s2002中,解码器200在不使用亮度样本的情况下预测色度样本块。过程2000从s2002进行到s2004,在s2004中,解码器200使用预测的色度样本对块进行解码。
[0795]
当在s2001处未确定不将第一亮度vpdu拆分为较小的块以及要将第二vpdu被拆分为较小的块时,过程2000从s2001进行到s2003,在s2003中,解码器200使用亮度样本来预测色度样本块。过程2000从s2003进行到s2004,在s2004中,解码器200使用预测的色度样本对块进行解码。在一些实施例中,可以考虑附加的考虑因素来确定是否使用亮度样本来解码色度样本块,例如,如下面参考图104至图110所讨论的。
[0796]
图101是用于示出vpdu的概念图。vpdu是非重叠的,它表示流水线阶段的缓冲器大小。图101的左侧(标记为a)示出了具有4个64
×
64vpdu的128
×
128ctu的示例。图101的右侧(标记为b)示出了具有16个32
×
32vpdu的128
×
128ctu的示例。例如,如果vpdu是64
×
64,则m和n两者都被设置为16。当vpdu将被进一步划分时,划分后的cu大小变为2m
×
2n(32
×
32)或更小。在yuv420格式中,16
×
16彩度区域对应于32
×
32照度区域,因此可以基于照度中对应的32
×
32网格的像素来预测彩度的16
×
16网格中的像素。因此,当照度的32
×
32区域的解码完成时,可以在色差的16
×
16区域开始对照度色差的预测过程进行解码。在yuv444格式的情况下,照度m
×
n区域对应于色差m
×
n区域。如果2m
×
2n在水平和垂直方向都是vpdu大小的一半,则在图97的步骤s1002中或图98的步骤s2001中,可以确定vpdu是否被进一步划分为一个或多个层,但是在vpdu的1/4的情况下进行的。实施例可以确定划分后的cu是否变为2m
×
2n或更小,例如,cu是否被进一步划分为两个或更多个层。
[0797]
图102是用于示出基于亮度vpdu是否被拆分为块来确定当前vpdu是否可以使用亮度样本来预测色度样本块的示例的概念图,其中左侧示出亮度ctu,右侧示出对应的色度ctu。如所示的,亮度vpdu0将被拆分为块,并且亮度vpdu1将不被拆分为块。因此,参考图97的过程1000,可以使用亮度样本来预测vpdu0的色度样本,并且可以不使用亮度样本来预测vpdu1的色度样本。
[0798]
图103是用于示出确定亮度vpdu是否将被拆分为较小的块的两种示例方式的概念图。在图103左侧示出的第一示例(标记为a)中,可以基于与亮度vpdu相关联的拆分标志来确定亮度vpdu是否要被拆分。如所示的,当拆分标志具有值1时,vpdu要被拆分(并且,参考图97的过程1000,使用亮度样本来预测块的色度样本)。当拆分标志具有值0时,不拆分vpdu(并且,参考图97的过程1000,不使用亮度样本来预测块的色度样本)。可以采用其他拆分标志值来确定亮度vpdu是否被拆分。
[0799]
在图103右侧示出的第二示例(标记为b)中,可以基于vpdu的亮度块的四叉树拆分深度来确定亮度vpdu是否要被拆分。如所示的,vpdu0的亮度块的四叉树拆分深度大于1,因此,参考图97的过程1000,当解码vpdu0的块时,可以使用亮度样本来预测色度样本。相比之
下,vpdu1的块的四叉树拆分深度小于或等于1,因此,参考图97的过程1000,当对vpdu0块进行解码时,可能不使用亮度样本来预测色度样本。可以采用其他拆分深度值来确定亮度vpdu是否被拆分。
[0800]
图104是用于示出可以被考虑以确定是否使用亮度样本来预测块的色度样本的附加考虑因素的概念图。如所示的,可以采用当前块大小是否等于或小于阈值块大小作为确定是否使用亮度样本来预测块的色度样本的附加考虑因素。
[0801]
阈值块大小可以是默认块大小、用信号通知的块大小或确定的块大小,并且可以是亮度或色度块大小。例如,如果阈值块大小为16
×
16亮度块大小,则vpdu0的亮度块大小大于16
×
16,因此可以确定不使用亮度样本来决定块的色度样本。可以在图97的s1002处或图98的s2001处采用阈值块大小来确定是否将亮度vpdu拆分为较小的块。
[0802]
图97的过程1000的方面和图98的过程2000的方面可以通过各种方式进行修改。例如,过程1000或2000可以被修改以执行比所示的动作更多的动作、可以被修改以执行比所示的动作更少的动作、可以被修改从而以各种次序执行动作、可以被修改以组合或拆分动作等。例如,在s1001或s1002之前,过程1000可以被修改以基于其他考虑因素(例如,参考图103讨论的当前块的大小)来确定是否使用亮度样本来预测块的色度样本。在另一示例中,过程1000可以被修改以省略s1001。在另一示例中,图98的过程2000的实施例可以被修改以在执行步骤s2001之前执行步骤s1001。在另一示例中,s2001可以确定第一vpdu和第二vpdu是否被拆分为较小的块。
[0803]
图105是用于示出在确定是否使用亮度样本来预测块的色度样本时考虑条件的组合的示例的概念图。如图105中示出的,示例组合条件为亮度vpdu和对应的色度vpdu两者是否具有大于或等于2的四叉树拆分深度。亮度vpdu0具有大于或等于2的四叉树深度,并且色度vpdu0具有大于或等于2的四叉树拆分深度,因此可以使用亮度样本来预测针对色度vpdu0的色度样本。然而,亮度vpdu1具有不大于或等于2的四叉树拆分深度,因此不满足条件中的一个,并且将在不使用亮度样本的情况下预测针对色度vpdu1的色度样本。
[0804]
图106是用于示出在确定是否使用亮度样本来预测块的色度样本时考虑条件的组合的另一示例的概念图。如图106中示出的,示例条件组合为:(i)亮度vpdu四叉树拆分深度是否大于或等于2;(ii)对应的色度vpdu四叉树拆分深度是否等于1;以及(iii)是否满足32
×
32的色度拆分阈值条件(例如,当色度大小为32
×
32时,块不被拆分)。亮度vpdu0具有大于或等于2的四叉树深度,满足条件(i);色度vpdu0具有等于1的四叉树拆分深度,满足条件(ii),并且色度vpdu未被拆分为大小小于32
×
32的块,因此三个条件都满足,并且可以使用亮度样本预测vpdu0的色度样本。然而,色度vpdu1的块的大小小于32
×
32阈值,因此不满足条件(iii),并且将在不使用亮度样本的情况下预测针对vpdu1的色度样本。
[0805]
图107是用于示出在确定是否使用亮度样本来预测块的色度样本时考虑条件的组合的另一示例的概念图。如图107中示出的,示例条件的组合为:(i)亮度vpdu四叉树拆分深度是否大于或等于2;(ii)对应的色度vpdu四叉树拆分深度是否等于1;以及(iii)是否满足32
×
32的色度拆分阈值条件(例如,当色度大小为32
×
32时,块不被拆分)。图107中的qtdepthc指示色度四叉树拆分深度,并且图107中的mtdepthc指示色度多叉树拆分深度。四叉树拆分之后可以是另一四叉树拆分或多叉树类型的拆分(二元或三元拆分)。为了指定色度四叉树拆分在深度1处终止,添加条件chromasplit32
×
32==cu_dont_split(参考图
106讨论的条件iii),这意味着在色度32
×
32级别没有进一步的拆分。假设亮度四叉树拆分深度qtdepthl大于或等于2,只有色度vpdu0满足所有三个条件,并且可以使用亮度样本预测针对vpdu0的色度样本。色度vpdu1的色度四叉树拆分深度为2,并且块被拆分为小于32
×
32的块,因此将在不使用亮度样本的情况下预测针对vpdu1的色度样本。色度vpdu2的色度四叉树拆分深度为1,但块被拆分为小于32
×
32的块,因此将在不使用亮度样本的情况下预测针对vpdu2的色度样本。色度vpdu3的色度四叉树拆分深度为1,但是块被拆分为小于32
×
32的块,因此将在不使用亮度样本的情况下预测针对vpdu3的色度样本。
[0806]
图108是用于示出在确定是否使用亮度样本来预测块的色度样本时考虑条件的组合的另一示例的概念图。在示例中,条件的组合为:(i)亮度vpdu四叉树拆分深度是否大于或等于2;(ii)对应的色度vpdu四叉树拆分深度是否等于1;以及(iii)大小为32
×
32的水平色度拆分后是否没有垂直或水平三元拆分。对于vpdu0,满足条件;vpdu被水平拆分为两个16
×
32块,并且这些块不会使用水平或垂直三元拆分被进一步拆分。因此,可以使用亮度样本来预测vpdu0的所有块中的色度样本。对于vpdu1,下方的16
×
32块满足条件,没有进行进一步的三元拆分,并且可以使用亮度样本来预测下方的16
×
32块的色度样本。vpdu1的上方的16
×
32块不满足条件,因为存在进一步的垂直三元拆分,并且将在不使用亮度样本的情况下预测vpdu1的上方的16
×
32块的色度样本。
[0807]
图109是用于示出在确定是否使用亮度样本来预测块的色度样本时考虑条件的组合的另一示例的概念图。如图109中示出的,示例条件的组合为:(i)亮度vpdu四叉树拆分深度是否等于1;(ii)是否满足64
×
64的亮度拆分阈值条件(例如,当亮度大小为64
×
64时,块不被拆分);(iii)对应的色度vpdu四叉树拆分深度是否等于1;以及(iv)是否满足32
×
32的色度拆分阈值条件(例如,当色度大小为32
×
32时,块不被拆分)。vpdu0满足所有四个条件,并且可以使用亮度样本来预测针对vpdu0的色度样本。色度vpdu1的色度四叉树拆分深度为2,并且块被拆分为小于32
×
32的块,因此将在不使用亮度样本的情况下预测针对vpdu1的色度样本。
[0808]
图110是用于示出在确定是否使用亮度样本来预测块的色度样本时考虑条件的组合的另一示例的概念图。如图110中示出的,如果条件中的任一个为真,则亮度样本可以用于预测块中的色度样本。示例条件的组合为:(i)是否亮度vpdu四叉树拆分深度大于或等于2,并且色度vpdu四叉树拆分深度是否大于或等于2;(ii)是否亮度vpdu四叉树拆分深度等于1,满足64
×
64的亮度拆分阈值条件(例如,当亮度大小为64
×
64时,块不被拆分),对应的色度vpdu四叉树拆分深度等于1,并且满足32
×
32的色度拆分阈值条件(例如,当色度大小为32
×
32时,块不被拆分);(iii)是否亮度vpdu四叉树拆分深度大于或等于2,对应的色度vpdu四叉树拆分深度是否等于1,并且满足32
×
32的色度拆分阈值条件(例如,当色度大小为32
×
32时,块不被拆分);以及(iv)是否亮度vpdu四叉树拆分深度大于或等于2,对应的色度vpdu四叉树拆分深度等于1,32
×
32块的色度拆分为水平拆分,并且小于32
×
32的色度块要么不被拆分,要么被垂直拆分。vpdu1的块违反所有四个条件,并且因此将在不使用亮度样本的情况下预测vpdu1的色度样本。考虑到扫描次序,可以采用图110的示例条件来限制32
×
32样本内的(根据亮度样本的)色度预测时延。例如,在vpdu1中,色度块0必须等待亮度块0重构来进行预测。色度块1必须等待亮度块0和块1重构来进行预测。为了避免这种时延,可以在不使用亮度样本的情况下执行色度预测。
[0809]
在方面中的每一个中描述的块可以替换为矩形或非矩形形状分区。图111示出了非矩形形状分区的示例,例如,三角形形状分区、l形分区、五边形形状分区、六边形形状分区和多边形形状分区。可以采用其他非矩形形状分区,并且可以采用各种形状的组合。在方面中的每一个中描述的术语“分区”可以替换为术语“预测单元”。在方面中的每一个中描述的术语“分区”也可以替换为术语“子预测单元”。在方面中的每一个中描述的术语“分区”也可以替换为术语“译码单元”。
[0810]
可以采用其他条件。例如,在实施例中,当启用用于根据照度来预测色差的译码模式(例如,cclm)时,vpdu的第一划分可以总是四元划分。在另一实施例中,当未向ctu中至少一个vpdu中的vpdu(例如,扫描次序中的ctu的头部vpdu)应用确定数量的四元划分时,可以在ctu中的所有vpdu中禁用cclm。
[0811]
cclm可以被定义为使用诸如intra_chroma_pred_mode之类的模式信息的帧内预测模式。指示帧内预测模式的索引号和每个模式可以在表中一一对应地关联,但是当cclm被禁用时,用于cclm的表的条目是不必要的,因此索引号被编码,从而促进减少对信号进行编码的位数。在实施例中,可以取决于cclm是有效还是无效来切换指示帧内预测模式的表。例如,参考指示照度的四元划分的划分标志信息,如果在vpdu中没有将照度划分为确定大小或更小,则可以确定cclm无效,并且采用对应于cclm无效的情况的表。否则,可以采用当可以使用cclm时使用的对应的表。在实施例中,可以在不切换表的情况下使用包括用于cclm的条目的表,但是当cclm无效时,可以不参考用于cclm的条目。
[0812]
参考图98,例如,在一些实施例中,当前块可以在第一vpdu中。在一些实施例中,当前块可以在第二vpdu中。在一些实施例中,第一vpdu是亮度vpdu。在一些实施例中,第一vpdu是色度vpdu。在一些实施例中,第二vpdu是亮度vpdu。在一些实施例中,第二vpdu是色度vpdu。在一些实施例中,第一vpdu是亮度vpdu,并且第二vpdu是色度vpdu。在一些实施例中,可以基于与vpdu相关联的拆分标志来确定vpdu是否被拆分为较小的块。在一些实施例中,拆分标志是四叉树拆分标志。在一些实施例中,拆分标志是二叉树拆分标志。在一些实施例中,拆分标志是三叉树拆分标志。在一些实施例中,可以基于与vpdu相关联的多个拆分标志来确定vpdu是否被拆分为较小的块。在一些实施例中,可以基于块拆分深度来确定vpdu是否被拆分为较小的块。在一些实施例中,块拆分深度是四叉树拆分深度。在一些实施例中,块拆分深度是二叉树拆分深度。在一些实施例中,块拆分深度是三叉树拆分深度。在一些实施例中,重复确定vpdu是否被拆分直到达到阈值块大小为止。在一些实施例中,阈值块大小是可以预先确定的默认阈值块大小。在一些实施例中,阈值块大小是用信号通知的。在一些实施例中,较小块的分区形状限于确定的形状集合,并且较小块的块大小限于确定的块大小集合。虽然已经参考解码器和解码过程讨论了这些示例,但是这些示例实施例可以在编码器或编码过程中采用。
[0813]
确定是否可以使用亮度样本来预测用于解码当前块的色度样本促进减少重构时延,并增加硬件实现方式灵活性,以及其他优点。
[0814]
本文公开的方面中的一个或多个可以与本公开中的其他方面的至少一部分组合来执行。另外地,本文公开的方面中的一个或多个可以通过将根据方面的流程图中的任一个中指示的过程的一部分、设备中的任一个的配置的一部分、句法的一部分等与其他方面组合来执行。参考编码器的构成元件描述的方面可以由解码器的对应构成元件类似地执
行。
[0815]
(实现方式和应用)
[0816]
如在上述实施例中的每一个中所描述的,例如,每个功能块或操作块可以典型地被实现为mpu(微处理单元)和存储器。此外,由功能块中的每一个执行的过程可以被实现为程序执行单元,例如,读取并执行记录在诸如rom之类的记录介质上的软件(程序)的处理器。软件可以被分发。软件可以被记录在各种记录介质(例如,半导体存储器)上。注意,每个功能块也可以实现为硬件(专用电路)。可以采用硬件和软件的各种组合。
[0817]
在实施例中的每一个中描述的处理可以使用单个装置(系统)经由集成处理来实现,并且可替代地,可以使用多个装置经由分散处理来实现。此外,执行上面描述的程序的处理器可以是单个处理器或多个处理器。换言之,可以执行集成处理,并且可替代地,可以执行分散处理。
[0818]
本公开的实施例不限于上述示例性实施例;可以对示例性实施例进行各种修改,其结果也被包括在本公开的实施例的范围内。
[0819]
接下来,将描述在上述实施例中的每一个中描述的移动图片编码方法(图像编码方法)和移动图片解码方法(图像解码方法)的应用示例以及实现该应用示例的各种系统。这种系统可以被表征为包括采用图像编码方法的图像编码器、采用图像解码方法的图像解码器、或包括图像编码器和图像解码器两者的图像编码器-解码器。这种系统的其他配置可以根据情况进行修改。
[0820]
(使用示例)
[0821]
图112示出了适合实现内容分发服务的内容提供系统ex100的整体配置。其中提供通信服务的区域被划分为期望大小的小区,并且作为所示示例中的固定无线站的基站ex106、ex107、ex108、ex109和ex110位于相应的小区中。
[0822]
在内容提供系统ex100中,包括计算机ex111、游戏设备ex112、相机ex113、家用电器ex114和智能电话ex115的设备经由互联网服务提供商ex102或通信网络ex104和基站ex106至ex110连接到互联网ex101。内容提供系统ex100可以组合和连接上述设备的任何组合。在各种实现方式中,设备可以直接连接在一起,或经由电话网络或近场通信而不是经由基站ex106至ex110间接连接在一起。此外,流送服务器ex103可以经由例如互联网ex101连接到包括计算机ex111、游戏设备ex112、相机ex113、家用电器ex114和智能电话ex115的设备。流送服务器ex103还可以经由卫星ex116连接到例如飞机ex117中的热点中的终端。
[0823]
注意,代替基站ex106至ex110,可以使用无线接入点或热点。流送服务器ex103可以直接连接到通信网络ex104而不是经由互联网ex101或互联网服务提供商ex102,并且可以直接连接到飞机ex117而不是经由卫星ex116。
[0824]
相机ex113可以是能够捕捉静止图像和视频的设备,例如,数码相机。智能电话ex115可以是在2g、3g、3.9g和4g系统以及下一代5g系统的移动通信系统标准下操作的智能电话设备、蜂窝电话或个人手持电话系统(phs)电话。
[0825]
家用电器ex114例如是冰箱或家用燃料电池废热发电系统中包括的设备。
[0826]
在内容提供系统ex100中,包括图像和/或视频捕获功能的终端能够例如通过经由例如基站ex106连接到流送服务器ex103来实时流送。在实时流送时,终端(例如,计算机ex111、游戏设备ex112、相机ex113、家用电器ex114、智能电话ex115或飞机ex117中的终端)
可以对用户经由终端捕获的静止图像或视频内容执行上述实施例中描述的编码处理、可以复用经由编码获得的视频数据和通过编码对应于视频的音频获得的音频数据、并可以将获得的数据发送到流送服务器ex103。换言之,终端用作根据本公开的一个方面的图像编码器。
[0827]
流送服务器ex103将发送的内容数据流送到请求流的客户端。客户端示例包括能够对上面描述的经编码的数据进行解码的计算机ex111、游戏设备ex112、相机ex113、家用电器ex114、智能电话ex115和飞机ex117内部的终端。接收流送的数据的设备可以解码和再现接收到的数据。换言之,根据本公开的一个方面,设备可以各自用作图像解码器。
[0828]
(分散处理)
[0829]
流送服务器ex103可以被实现为多个服务器或计算机,在这些服务器或计算机之间划分诸如数据的处理、记录和流送之类的任务。例如,流送服务器ex103可以实现为内容递送网络(cdn),其经由连接位于世界各地的多个边缘服务器的网络来流送内容。在cdn中,物理上靠近客户端的边缘服务器可以被动态指派给客户端。内容被缓存并流送到边缘服务器以减少加载时间。例如,在例如由于业务突增而引起的某种类型的错误或连通性改变时,可以高速稳定地流送数据,因为可以通过例如以下操作避免网络的受影响部分:在多个边缘服务器之间划分处理,或者将流送职责切换到不同的边缘服务器并继续流送。
[0830]
分散不仅限于对用于流送的处理的划分;捕获数据的编码可以在终端、在服务器侧或两者之间划分并由其执行。在一个示例中,在典型的编码中,处理在两个循环中执行。第一循环用于逐帧或逐场景检测图像的复杂程度,或检测编码负载。第二循环用于维持图像质量并改进编码效率的处理。例如,通过让终端执行第一循环的编码,并让接收内容的服务器侧执行编码的第二循环,可以减少终端的处理负载,并改进内容的质量和编码效率。在这种情况下,在接收到解码请求时,可以近似实时地在另一终端上接收和再现由一个终端执行的第一循环产生的经编码的数据。这可以实现平滑的实时流送。
[0831]
在另一示例中,相机ex113等从图像中提取特征量(特征量或特性量),将与特征量相关的数据压缩为元数据,并将经压缩的元数据发送到服务器。例如,服务器基于特征量来确定对象的重要性,并相应地改变量化准确度以执行适合图像意义(或内容重要性)的压缩。在由服务器执行的第二次压缩期间,特征量数据在改进运动向量预测的精度和效率方面特别有效。此外,具有相对低处理负载的编码(例如,可变长度编码(vlc))可以由终端处理,并且具有相对高处理负载的编码(例如,上下文自适应二进制算术编码(cabac))可以由服务器处理。
[0832]
在又一示例中,存在由例如体育场、购物中心或工厂中的多个终端捕获大致相同场景的多个视频的实例。在这种情况下,例如,可以通过在捕获视频的多个终端之间以及在必要时在未捕获视频的其他终端和服务器之间按单位划分处理任务来分散编码。单位可以是例如图片组(gop)、图片或由划分图片产生的分片。这使得可以减少加载时间并实现更接近实时的流送。
[0833]
由于视频是大致相同的场景,因此可以由服务器执行管理和/或指令,使得由终端捕获的视频可以相互引用。此外,服务器可以从终端接收经编码的数据、改变数据项之间的引用关系、或者自行校正或替换图片,然后执行编码。这使得可以针对单个数据项生成具有增加的质量和效率的流。
[0834]
此外,服务器可以在执行转码以对视频数据的编码格式进行转换之后流送视频数据。例如,服务器可以将编码格式从mpeg转换为vp(例如,vp9),可以将h.264转换为h.265等。
[0835]
以这种方式,编码可以由终端或者一个或多个服务器执行。因此,虽然执行编码的设备在以下描述中被称为“服务器”或“终端”,但是由服务器执行的过程中的一部分或全部可以由终端来执行,同样地,由终端执行的过程中的一部分部分或全部可以由服务器执行。这也适用于解码过程。
[0836]
(3d,多角度)
[0837]
越来越多地使用由诸如相机ex113和/或智能电话ex115之类的多个终端从同时捕获的不同场景的图像或视频组合的图像或视频,或从不同角度捕获的相同场景的图像或视频。例如,可以基于单独获得的在终端之间的相对位置关系或具有匹配特征点的视频中的区域,来组合由终端捕获的视频。
[0838]
除了二维移动图片的编码之外,服务器还可以基于对移动图片的场景分析来编码静止图像(例如,自动地或在用户指定的时间点处进行编码),并将经编码的静止图像发送到接收终端。此外,当服务器能够获得在视频捕获终端之间的相对位置关系时,除了二维移动图片之外,服务器还可以基于从不同角度捕获的相同场景的视频来生成场景的三维几何图形。服务器可以对从例如点云生成的三维数据进行单独编码,并且基于使用三维数据识别或跟踪人或对象的结果,可以根据由多个终端捕获的视频来选择或重构并生成要被发送到接收终端的视频。
[0839]
这允许用户通过自由选择对应于视频捕获终端的视频来欣赏场景,并且允许用户欣赏通过从根据多个图像或视频重构的三维数据中提取选定的视点处的视频而获得的内容。此外,对于视频,可以从相对不同的角度记录声音,并且服务器可以复用来自特定角度或空间的音频和对应的视频,并发送经复用的视频和音频。
[0840]
近年来,由现实世界和虚拟世界复合而成的内容(例如,虚拟现实(vr)内容和增强现实(ar)内容)也已经变得流行。在vr图像的情况下,服务器可以从左眼和右眼的两个视点创建图像,并执行容许在两个视点图像之间引用的编码(例如,多视图编码(mvc)),并且可替代地可以在不进行引用的情况下将图像编码为单独的流。当图像被解码为单独的流时,可以在再现时同步流,从而根据用户的视点重新创建虚拟的三维空间。
[0841]
在ar图像的情况下,服务器可以例如基于从用户角度来看的三维位置或移动,将存在于虚拟空间中的虚拟对象信息叠加到表示现实世界空间的相机信息上。解码器可以获得或存储虚拟对象信息和三维数据,基于从用户角度来看的移动来生成二维图像,然后通过无缝地连接图像来生成叠加的数据。可替代地,除了针对虚拟对象信息进行请求之外,解码器还可以向服务器发送从用户角度来看的移动。服务器可以根据接收到的运动基于存储在服务器中的三维数据来生成叠加的数据,并对生成的叠加的数据进行编码并将其流送到解码器。注意,叠加的数据典型地除了rgb值之外还包括指示透明度的α值,并且服务器针对除了根据三维数据生成的对象之外的部分将α值设置为例如0,并且可以在这些部分是透明的同时执行编码。可替代地,服务器可以将背景设置为确定的rgb值(例如,色度键),并生成将除了对象之外的区域设置为背景的数据。确定的rgb值可以是预先确定的。
[0842]
对类似流送的数据的解码可以由客户端(例如,终端)在服务器侧执行,或者在它
们之间进行划分。在一个示例中,一个终端可以向服务器发送接收请求,所请求的内容可以由另一终端接收和解码,并且经解码的信号可以被发送到具有显示器的设备。可以在不管通信终端本身的处理能力的情况下,通过分散处理并适当地选择内容来再现高图像质量数据。在又一示例中,例如在tv正接收具有大的大小的图像数据的同时,可以在tv的一个或多个观看者的一个或多个个人终端上解码和显示图片区域(例如,通过划分图片获得的分片)。这使得观看者可以共享大图片视图,以及每个观看者可以检查他或她指定的区域,或者更详细地近距离查看区域。
[0843]
在其中在室内或室外的近距离、中距离和远距离上可以进行多个无线连接的情况下,可以使用诸如mpeg-dash之类的流送系统标准来无缝地接收内容。用户可以在自由选择解码器或显示装置(包括用户的终端、布置在室内或室外的显示器等)的同时在数据之间实时切换。此外,使用例如关于用户的位置的信息,可以执行解码,同时对哪个终端处理解码以及哪个终端处理内容的显示进行切换。这可以在用户在前往目的地的途中的同时,在嵌入了能够显示内容的设备的附近建筑物的墙壁上或在地面的一部分上映射和显示信息。此外,还可以基于对网络上的经编码的数据的可访问性(例如,当经编码的数据被缓存在可从接收终端快速访问的服务器上时,或者当经编码的数据被复制到内容递送服务中的边缘服务器时)来切换接收到的数据的位速率。
[0844]
(网页优化)
[0845]
例如,图113示出了计算机ex111上的网页的显示屏幕的示例。例如,图114示出了智能电话ex115上的网页的显示屏幕的示例。如图113和图114中示出的,网页可以包括作为到图像内容的链接的多个图像链接,并且网页的外观可以取决于用于查看网页的设备而不同。当在屏幕上可以查看多个图像链接时,在用户明确地选择图像链接之前,或者在图像链接位于屏幕的近似中心或整个图像链接在屏幕中适合之前,显示装置(解码器)可以将内容中包括的静止图像或i图片作为图像链接显示;可以使用多个静止图像或i图片显示视频,例如,动画gif;或者可以只接收基本层,并解码和显示视频。
[0846]
当用户选择图像链接时,显示装置在例如给予基本层最高优先级的同时执行解码。注意,如果网页的html代码中存在指示内容可缩放的信息,则显示装置可以解码高达增强层。此外,为了促进实时再现,在进行选择之前或当带宽受到严重限制时,通过仅解码和显示前向引用图片(i图片、p图片、前向引用b图片),显示装置可以减少在前导图片被解码的时间点与经解码的图片被显示的时间点之间的延迟(即,在开始解码内容到显示内容之间的延迟)。此外,显示装置可以故意忽略图片之间的引用关系,并且将所有b图片和p图片粗解码为前向引用图片,然后随着接收到的图片数量随时间增加而进行正常解码。
[0847]
(自动驾驶)
[0848]
当针对汽车的自动驾驶或辅助驾驶发送和接收诸如二维或三维地图信息之类的静止图像或视频数据时,接收终端除了接收属于一个或多个层的图像数据之外,还可以接收例如关于天气或道路建设的信息作为元数据,并在解码时将元数据与图像数据相关联。注意,元数据可以按层指派,并且可替代地可以仅与图像数据复用。
[0849]
在这种情况下,由于包含接收终端的汽车、无人机、飞机等是移动的,所以接收终端通过发送指示接收终端的位置的信息,可以在基站ex106至ex110中的基站之间切换的同时无缝地接收和执行解码。此外,根据用户的选择、用户的情况和/或连接的带宽,接收终端
可以动态地选择接收到什么程度的元数据,或者例如将地图信息更新到什么程度。
[0850]
在内容提供系统ex100中,客户端可以实时接收、解码和再现由用户发送的经编码的信息。
[0851]
(个体内容的流送)
[0852]
在内容提供系统ex100中,除了高图像质量之外,视频分发实体分发的长内容、低图像质量的单播或多播流送以及来自个体的短内容也是可能的。来自个体的这种内容可能会进一步流行。服务器可以在编码处理之前首先对内容进行编辑处理,以便细化个体内容。例如,这可以使用以下配置来实现。
[0853]
在捕获视频或图像内容的同时,或者在已经捕获和积累了内容之后,服务器基于原始数据或经编码的数据执行识别处理,例如,捕获错误处理、场景搜索处理、含义分析和/或对象检测处理。然后,基于识别处理的结果,服务器例如在被提示或自动地编辑内容,其示例包括:校正,例如,焦点和/或运动模糊校正;移除低优先级场景,例如,与其他图片相比亮度较低或失焦的场景;对象边缘调整;以及色调调整。服务器基于编辑结果对编辑后的数据进行编码。已知过长的视频往往会接收较少的观看。因此,为了将内容保持在与原始视频长度成比例的特定长度内,除了上面描述的低优先级场景外,服务器还可以基于图像处理结果自动剪辑掉低移动场景。可替代地,服务器可以基于对场景含义的分析结果生成和编码视频摘要。
[0854]
可能存在其中个体内容可能包括侵犯版权、道德权利、肖像权等内容的实例。这种实例可能导致对创作者不利的情况,例如,当内容被共享超出创作者预期范围。因此,在编码之前,服务器可以例如编辑图像以便模糊屏幕边缘的人脸或模糊房屋内部。此外,服务器可以被配置为在要被编码的图像中识别除了注册人之外的人的面部,并且当这样的面部出现在图像中时,可以将马赛克滤波器应用于例如人的面部。可替代地,作为编码的预处理或后处理,出于版权原因,用户可以指定图像中包括要被处理的人或背景区域的区域。服务器可以通过例如用不同的图像替换指定区域或者模糊该区域来处理该区域。如果该区域包括人,则可以在移动图片中跟踪该人,并且可以随着该人的移动,用另一图像替换该人的头部区域。
[0855]
由于存在对个体产生的内容(其数据大小往往较小)进行实时观看的需求,因此解码器可以首先接收基本层作为最高优先级,并且执行解码和再现,但是这可能会取决于带宽而不同。当内容被再现两次或更多次时(例如,当解码器在基本层的解码和再现期间接收增强层并且循环再现时),解码器可以再现包括增强层的高图像质量视频。如果使用这种可缩放编码对流进行编码,则视频在处于未被选择的状态或视频开始时可能是低质量的,但它可以提供流的图像质量以智能方式逐渐增加的体验。这不仅限于可缩放编码;通过从第一次再现的低质量流和使用第一流作为参考来编码的第二流来配置单个流,可以提供相同的体验。
[0856]
(其他实现方式和应用示例)
[0857]
编码和解码可由lsi(大规模集成电路)ex500(见图112)执行,其典型地被包括在每个终端中。lsi ex500可以从单个芯片或多个芯片配置。用于对移动图片进行编码和解码的软件可以集成到例如计算机ex111可读的某种类型的记录介质(例如,cd-rom、软盘或硬盘)中,并且编码和解码可以使用软件来执行。此外,当智能电话ex115被配备有相机时,可
以发送由相机获得的视频数据。在这种情况下,视频数据可以由智能电话ex115中包括的lsi ex500译码。
[0858]
注意,lsi ex500可以被配置为下载和激活应用。在这种情况下,终端首先确定它是否与用于编码内容的方案兼容,或者它是否能够执行特定服务。当终端与内容的编码方案不兼容时,或者当终端不能执行特定服务时,该终端可以首先下载编解码器或应用软件,然后获得并再现内容。
[0859]
除了使用互联网ex101的内容提供系统ex100的示例之外,可以在数字广播系统中实现上述实施例中描述的至少移动图片编码器(图像编码器)或移动图片解码器(图像解码器)。相同的编码处理和解码处理可以应用于使用例如卫星发送和接收叠加有复用音频和视频数据的广播无线电波,即使这是面向多播的,而单播对于内容提供系统ex100更容易。
[0860]
(硬件配置)
[0861]
图115示出了在图112中示出的示例智能电话ex115的进一步细节。图116示出了智能电话ex115的功能配置示例。智能电话ex115包括:用于向基站ex110发送无线电波和从基站ex110接收无线电波的天线ex450,能够捕获视频和静止图像的相机ex465,以及显示经解码的数据(例如,由相机ex465捕获的视频和由天线ex450接收到的视频)的显示器ex458。智能电话ex115还包括:用户接口ex466,例如触摸面板;音频输出单元ex457,例如,用于输出语音或其他音频的扬声器;音频输入单元ex456,例如,用于音频输入的麦克风;能够存储经解码的数据(例如,捕获的视频或静止图像、记录的音频、接收到的视频或静止图像和邮件,以及经解码的数据)的存储器ex467;以及插槽ex464,其是用于sim ex468的接口,用于授权访问网络和各种数据。注意,可以使用外部存储器来代替存储器ex467或作为存储器ex467的补充。
[0862]
主控制器ex460(其可以综合地控制显示器ex458和用户接口ex466)、电源电路ex461、用户接口输入控制器ex462、视频信号处理器ex455、相机接口ex463、显示控制器ex459、调制器/解调器ex452、复用器/解复用器ex453、音频信号处理器ex454、插槽ex464和存储器ex467经由总线ex470连接。
[0863]
当用户打开电源电路ex461的电源按钮时,智能电话ex115通电进入可操作状态,并且每个组件例如从电池组供电。
[0864]
智能电话ex115基于由包括cpu、rom、ram的主控制器ex460执行的控制,来执行针对例如呼叫和数据传输的处理。在进行呼叫时,由音频输入单元ex456记录的音频信号通过音频信号处理器ex454转换为数字音频信号,通过调制器/解调器ex452对该数字音频信号应用扩频处理,并且进行数模转换,并通过发射机/接收机ex451应用变频处理,并且产生的信号经由天线ex450发送。接收到的数据通过调制器/解调器ex452进行放大、频率转换、模数转换、逆扩频处理,通过音频信号处理器ex454转换为模拟音频信号,再从音频输出单元ex457输出。
[0865]
例如,在数据传输模式中,可以基于主体的用接口ex466的操作,在主控制器ex460的控制下经由用户接口输入控制器ex462发送文本、静止图像或视频数据。执行类似的发送和接收处理。在数据传输模式下,当发送视频、静止图像或视频和音频时,视频信号处理器ex455经由上述实施例中描述的移动图片编码方法对存储在存储器ex467中的视频信号或从相机ex465输入的视频信号进行压缩编码,并将经编码的视频数据发送到复用器/解复用
器ex453。在相机ex465正在捕获视频或静止图像的同时,音频信号处理器ex454对由音频输入单元ex456记录的音频信号进行编码,并将经编码的音频数据发送到复用器/解复用器ex453。复用器/解复用器ex453使用确定的方案复用经编码的视频数据和经编码的音频数据,使用调制器/解调器(调制器/解调器电路)ex452和发射机/接收机ex451调制和转换数据,并经由天线ex450发送结果。确定的方案可以是预先确定的。
[0866]
当接收到附在电子邮件或聊天中的视频或从网页链接的视频时,例如,为了对经由天线ex450接收到的复用的数据进行解码,复用器/解复用器ex453对复用的数据进行解复用,以将复用的数据划分为视频数据的位流和音频数据的位流,将经编码的视频数据经由同步总线ex470提供给视频信号处理器ex455,并将经编码的音频数据经由同步总线ex470提供给音频信号处理器ex454。视频信号处理器ex455使用与上述实施例中描述的移动图片编码方法相对应的移动图片解码方法对视频信号进行解码,并且被包括在链接的移动图片文件中的视频或静止图像经由显示控制器ex459显示在显示器ex458上。音频信号处理器ex454解码音频信号并从音频输出单元ex457输出音频。由于实时流送变得越来越流行,因此取决于用户的环境,可能存在其中音频再现在社交方面不适合的实例。因此,作为初始值,其中仅再现视频数据(例如,不再现音频信号)的配置可能是优选的;仅当接收到输入时(例如,当用户点击视频数据时),可以才同步和再现音频。
[0867]
虽然在上面的示例中使用了智能电话ex115,但其他实现方式也是可以想象的:包括编码器和解码器两者的收发机终端;仅包括编码器的发射机终端;以及仅包括解码器的接收机终端。在数字广播系统的描述中,给出了其中接收或发送作为视频数据与音频数据复用的结果而获得的复用的数据的示例。然而,复用的数据可以是与除了音频数据之外的数据复用的视频数据,例如,与视频相关的文本数据。此外,可以接收或发送视频数据本身而不是复用的数据。
[0868]
虽然将包括cpu的主控制器ex460描述为控制编码或解码过程,但是各种终端通常包括图形处理单元(gpu)。因此,经由cpu和gpu共享的存储器,或包括被管理以便由cpu和gpu共同使用的地址的存储器,或经由单独的存储器,通过利用gpu的性能能力,一次处理大区域的配置是可接受的。这可以缩短编码时间,维持流的实时本质并减少延迟。特别地,与运动估计、去块滤波、样本自适应偏移(sao)和变换/量化相关的处理可以由gpu而不是cpu以图片为单位例如一次全部地高效地执行。
再多了解一些

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

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

相关文献