首页 / 专利库 / 广播 / 帧内预测 / 图像编码器、图像解码器、图像编码方法和图像解码方法

图像编码器、图像解码器、图像编码方法和图像解码方法

阅读:577发布:2020-05-11

专利汇可以提供图像编码器、图像解码器、图像编码方法和图像解码方法专利检索,专利查询,专利分析的服务。并且提供了一种图像 编码器 ,其包括 电路 和耦合至该电路的 存储器 。所述电路在操作中沿着从图像 块 分离的第二分区与具有非矩形形状(例如,三 角 形)的第一分区之间的边界执行边界平滑操作。该边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组 像素 的第一值进行第一预测;以及使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测;对第一值和第二值进行加权;以及使用经加权的第一值和经加权的第二值来对第一分区进行编码。,下面是图像编码器、图像解码器、图像编码方法和图像解码方法专利的具体信息内容。

1.一种图像编码器,包括:
电路;以及
耦合至所述电路的存储器
其中,所述电路在操作中沿着从图像分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作,所述边界平滑操作包括:
使用所述第一分区的信息,对沿所述边界的所述第一分区的一组像素的第一值进行第一预测;
使用所述第二分区的信息,对沿所述边界的所述第一分区的所述一组像素的第二值进行第二预测;
对所述第一值和所述第二值进行加权;以及
使用经加权的第一值和经加权的第二值来对所述第一分区进行编码。
2.根据权利要求1所述的编码器,其中,所述非矩形形状是三形。
3.根据权利要求1所述的编码器,其中,所述非矩形形状是从由三角形、梯形、和具有至少五个边和角的多边形组成的群组中选择的。
4.根据权利要求1所述的编码器,其中,所述第二分区具有非矩形形状。
5.根据权利要求1所述的编码器,其中,所述第一预测和所述第二预测中的至少一个是间预测过程,所述帧间预测过程基于经编码的参考图片中的参考分区来预测所述第一值和所述第二值。
6.根据权利要求5所述的编码器,其中,所述帧间预测过程预测包括所述一组像素的所述第一分区的像素的所述第一值,并且预测仅所述第一分区的所述一组像素的所述第二值。
7.根据权利要求1所述的编码器,其中,所述第一预测和所述第二预测中的至少一个是帧内预测过程,所述帧内预测过程基于当前图片中的经编码的参考分区来预测所述第一值和所述第二值。
8.根据权利要求1所述的编码器,其中,在所述第一预测中使用的预测方法与在所述第二预测中使用的预测方法不同。
9.根据权利要求1所述的编码器,其中,每行或每列中的针对其预测所述第一值和所述第二值的所述一组像素的数量是整数。
10.根据权利要求9所述的编码器,其中,当每行或每列中的所述一组像素的数量是四时,分别将权重1/8、1/4、3/4、和7/8应用于所述一组中的四个像素的所述第一值,并且分别将权重7/8、3/4、1/4和1/8应用于所述一组中的所述四个像素的所述第二值。
11.根据权利要求9所述的编码器,其中,当每行或每列中的所述一组像素的数量是二时,分别将权重1/3和2/3应用于所述一组中的两个像素的所述第一值,并且分别将权重2/3和1/3分别应用于所述一组中的所述两个像素的所述第二值。
12.根据权利要求1所述的编码器,其中,所述权重中的至少一些权重是整数值。
13.根据权利要求1所述的编码器,其中,所述权重中的至少一些权重是分数值。
14.一种图像编码器,包括:
分割器,其在操作中接收原始图片并且将所述原始图片分割成多个块,
加法器,其在操作中接收来自所述分割器的所述块以及来自预测控制器的预测,并且从其对应的块中减去每个预测以输出残差,
变换器,其在操作中对从所述加法器输出的所述残差执行变换以输出变换系数,量化器,其在操作中对所述变换系数进行量化以生成经量化的变换系数,熵编码器,其在操作中对所述经量化的变换系数进行编码以生成比特流,以及所述预测控制器,其耦合至帧间预测器、帧内预测器、和存储器,其中,所述帧间预测器在操作中基于经编码的参考图片中的参考块来生成对当前块的预测,并且所述帧内预测器在操作中基于当前图片中的经编码的参考块来生成对当前块的预测,
其中,
所述预测控制器在操作中沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作,所述边界平滑操作包括:
使用所述第一分区的信息,对沿所述边界的所述第一分区的一组像素的第一值进行第一预测;
使用所述第二分区的信息,对沿所述边界的所述第一分区的所述一组像素的第二值进行第二预测;
对所述第一值和所述第二值进行加权;以及
使用经加权的第一值和经加权的第二值来对所述第一分区进行编码。
15.根据权利要求14所述的编码器,其中,所述非矩形形状是三角形。
16.根据权利要求14所述的编码器,其中,所述第二分区具有非矩形形状。
17.一种图像编码方法,其沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作,包括:
使用所述第一分区的信息,对沿所述边界的所述第一分区的一组像素的第一值进行第一预测;
使用所述第二分区的信息,对沿所述边界的所述第一分区的所述一组像素的第二值进行第二预测;
对所述第一值和所述第二值进行加权;以及
使用经加权的第一值和经加权的第二值来对所述第一分区进行编码。
18.根据权利要求17所述的方法,其中,所述非矩形形状是三角形。
19.根据权利要求17所述的方法,其中,所述第二分区具有非矩形形状。
20.一种图像解码器,包括:
电路;
耦合至所述电路的存储器;
其中,所述电路在操作中沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作,所述边界平滑操作包括:
使用所述第一分区的信息,对沿所述边界的所述第一分区的一组像素的第一值进行第一预测;
使用所述第二分区的信息,对沿所述边界的所述第一分区的所述一组像素的第二值进行第二预测;
对所述第一值和所述第二值进行加权;以及
使用经加权的第一值和经加权的第二值来对所述第一分区进行解码。
21.根据权利要求20所述的解码器,其中,所述非矩形形状是三角形。
22.根据权利要求20所述的解码器,其中,所述非矩形形状是从由三角形、梯形、和具有至少五个边和角的多边形组成的群组中选择的。
23.根据权利要求20所述的解码器,其中,所述第二分区具有非矩形形状。
24.根据权利要求20所述的解码器,其中,所述第一预测和所述第二预测中的至少一个是帧间预测过程,所述帧间预测过程基于经编码的参考图片中的参考分区来预测所述第一值和所述第二值。
25.根据权利要求24所述的解码器,其中,所述帧间预测过程预测包括所述一组像素的所述第一分区的像素的所述第一值,并且预测仅所述第一分区的所述一组像素的所述第二值。
26.根据权利要求20所述的解码器,其中,所述第一预测和所述第二预测中的至少一个是帧内预测过程,所述帧内预测过程基于当前图片中的经编码的参考分区来预测所述第一值和所述第二值。
27.根据权利要求20所述的解码器,其中,在所述第一预测中使用的预测方法与在所述第二预测中使用的预测方法不同。
28.根据权利要求20所述的解码器,其中,每行或每列中针对其预测所述第一值和所述第二值的所述一组像素的数量是整数。
29.根据权利要求20所述的解码器,其中,当每行或每列中的所述一组像素的数量是四时,分别将权重1/8、1/4、3/4、和7/8应用于所述一组中的四个像素的所述第一值,并且分别将权重7/8、3/4、1/4和1/8应用于所述一组中的所述四个像素的所述第二值。
30.根据权利要求20所述的解码器,其中,当每行或每列中的所述一组像素的数量是二时,分别将权重1/3和2/3应用于所述一组中的两个像素的所述第一值,并且分别将权重2/3和1/3分别应用于所述一组中的所述两个像素的所述第二值。
31.根据权利要求20所述的解码器,其中,所述权重中的至少一些权重是整数值。
32.根据权利要求20所述的解码器,其中,所述权重中的至少一些权重是分数值。
33.一种图像解码器,包括:
熵解码器,其在操作中接收并且解码经编码的比特流以获得经量化的变换系数,逆量化器和变换器,其在操作中对所述经量化的变换系数进行逆量化以获得变换系数,并且对所述变换系数进行逆变换以获得残差,
加法器,其在操作中将从所述逆量化器和变换器输出的所述残差与从预测控制器输出的预测相加以重构块,以及
所述预测控制器,其耦合至帧间预测器、帧内预测器、和存储器,其中,所述帧间预测器在操作中基于经解码的参考图片中的参考块来生成对当前块的预测,并且所述帧内预测器在操作中基于当前图片中的经解码的参考块来生成对当前块的预测,
其中,
所述预测控制器在操作中沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作,所述边界平滑操作包括:
使用所述第一分区的信息,对沿所述边界的所述第一分区的一组像素的第一值进行第一预测;
使用所述第二分区的信息,对沿所述边界的所述第一分区的所述一组像素的第二值进行第二预测;
对所述第一值和所述第二值进行加权;以及
使用经加权的第一值和经加权的第二值来对所述第一分区进行解码。
34.根据权利要求33所述的解码器,其中,所述非矩形形状是三角形。
35.根据权利要求33所述的解码器,其中,所述第二分区具有非矩形形状。
36.一种图像解码方法,其沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作,所述边界平滑操作5包括:
使用所述第一分区的信息,对沿所述边界的所述第一分区的一组像素的第一值进行第一预测;
使用所述第二分区的信息,对沿所述边界的所述第一分区的所述一组像素的第二值进行第二预测;
对所述第一值和所述第二值进行加权;以及
使用经加权的第一值和经加权的第二值来对所述第一分区进行解码。
37.根据权利要求36所述的方法,其中,所述非矩形形状是三角形。
38.根据权利要求36所述的方法,其中,所述第二分区具有非矩形形状。

说明书全文

图像编码器、图像解码器、图像编码方法和图像解码方法

技术领域

[0001] 本公开涉及视频编码,并且特别地涉及视频编码和解码系统、组件、和方法,其用于执行基于参考构建当前的帧间预测功能或者基于当前帧中经编码/解码的参考块来构建当前块的帧内预测功能。

背景技术

[0002] 随着视频编码技术从H.261和MPEG-1到H.264/AVC(高级视频编码)、MPEG-LA、H.265/HEVC(高效视频编码)和H.266/VVC(通用视频编解码器)的发展,始终需要对视频编码技术进行改进和优化,以处理各种应用中数量不断增长的数字视频数据。本公开涉及视频编码中的另外的进步、改进、和优化,特别地,结合帧间预测功能或帧内预测功能,其将图像块分割成多个分区,所述多个分区至少包括第二分区以及具有非矩形形状(例如,三形)的第一分区。发明内容
[0003] 根据一个方面,提供了一种图像编码器,其包括电路和耦合至该电路的存储器。所述电路在操作中沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作。该边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测;以及使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测;对第一值和第二值进行加权;以及使用经加权的第一值和经加权的第二值来对第一分区进行编码。
[0004] 本公开的实施例的一些实现可以改进编码效率,可以简单地是编码/解码过程,可以加速编码/解码过程的速度,可以高效地选择在编码和解码中使用的合适的组件/操作,例如合适的滤波器、块大小、运动矢量、参考图片、参考块等。
[0005] 通过说明书附图,所公开的实施例的其他益处和优点将变得显而易见。益处和/或优点可以通过说明书和附图的各种实施例和特征而单独获得,其不需要全部被提供以获得这样的益处和/或优点中的一个或多个。
[0006] 应当注意的是,一般或特定实施例可以被实现为系统、方法、集成电路、计算机程序、存储介质、或其任意选择性组合。

附图说明

[0007] 图1是示出了根据实施例的编码器的功能配置的框图
[0008] 图2示出了块分割的一个示例。
[0009] 图3是指示各种变换类型的变换基础函数的表。
[0010] 图4A示出了在ALF(自适应环路滤波器)中使用的滤波器形状的一个示例。
[0011] 图4B示出了在ALF中使用的滤波器形状的另一示例。
[0012] 图4C示出了在ALF中使用的滤波器形状的另一示例。
[0013] 图5A示出了在帧内预测的示例中使用的67种帧内预测模式。
[0014] 图5B是示出了在OBMC(重叠块运动补偿)处理中执行的预测图像校正过程的一个示例的流程图
[0015] 图5C是示出了在OBMC处理中执行的预测图像校正过程的一个示例的概念图
[0016] 图5D是示出了FRUC(帧速率上转换)处理的一个示例的流程图。
[0017] 图6示出了沿着运动轨迹的两个块之间的模式匹配(双向匹配)的一个示例。
[0018] 图7示出了当前图片中的模板与参考图片中的块之间的模式匹配(模板匹配)的一个示例。
[0019] 图8示出了假设均匀线性运动的模型。
[0020] 图9A示出了基于相邻块的运动矢量来得出每个子块的运动矢量的一个示例。
[0021] 图9B示出了用于以合并模式得出运动矢量的过程的一个示例。
[0022] 图9C是示出了DMVR(动态运动矢量刷新)处理的示例的概念图。
[0023] 图9D示出了使用由LIC(局部照明补偿)处理执行的亮度校正过程的预测图像生成方法的一个示例。
[0024] 图10是示出了根据实施例的解码器的功能配置的框图。
[0025] 图11是示出根据一个实施例的将图像块分割成至少包括第二分区以及具有非矩形形状(例如三角形)的第一分区在内的多个分区并且执行进一步处理的整体处理流程的流程图。
[0026] 图12示出了将图像块分割成第二分区(在所示示例中也具有非矩形形状)和具有非矩形形状(例如,三角形)的第一分区的两种示例性方法。
[0027] 图13示出了边界平滑过程的一个示例,该边界平滑过程包括对基于第一分区预测的边界像素的第一值和基于第二分区预测的边界像素的第二值进行加权。
[0028] 图14示出了边界平滑过程的另外三个示例,其涉及对基于第一分区预测的边界像素的第一值进行加权和对基于第二分区预测的边界像素的第二值进行加权。
[0029] 图15是采样参数(“第一索引值”)和分别由参数编码的信息集的表。
[0030] 图16是示出了参数(索引值)的二进制化的表。
[0031] 图17是示出了将图像块分割成多个分区的过程的流程图,所述多个分区包括第二分区以及具有非矩形形状的第一分区。
[0032] 图18示出了将图像块分割成多个分区的示例,所述多个分区包括第二分区和具有非矩形形状(在所示的示例中为三角形)的第一分区。
[0033] 图19示出了将图像块分割成多个分区的进一步示例,所述多个分区包括第二分区以及具有非矩形形状的第一分区,所述非矩形形状在所示示例中是具有至少五个边和角的多边形。
[0034] 图20是示出了边界平滑过程的流程图,该边界平滑过程包括对基于第一分区预测的边界像素的第一值进行加权和对基于第二分区预测的边界像素的第二值进行加权。
[0035] 图21A示出了边界平滑过程的示例,其中,基于第一分区来预测其第一值要被加权并且基于第二分区来预测其第二值要被加权的边界像素。
[0036] 图21B示出了边界平滑过程的示例,其中,基于第一分区来预测其第一值要被加权并且基于第二分区来预测其第二值要被加权的边界像素。
[0037] 图21C示出了边界平滑过程的示例,其中,基于第一分区来预测其第一值要被加权并且基于第二分区来预测其第二值要被加权的边界像素。
[0038] 图21D示出了边界平滑过程的示例,其中,基于第一分区来预测其第一值要被加权并且基于第二分区来预测其第二值要被加权的边界像素。
[0039] 图22是示出了在编码器侧执行的基于指示分割的分区参数将图像块分割成多个分区并在熵编码中将包括分区参数的一个或多个参数写入比特流中的方法的流程图,所述多个分区包括第二分区以及具有非矩形形状的第一分区。
[0040] 图23是示出了在解码器侧执行的从比特流解析一个或多个参数的方法,所述参数包括指示基于分区参数将图像块分割成多个分区并对第一分区和第二分区进行解码的方法的流程图,所述一个或多个参数包括指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区。
[0041] 图24是采样分区参数(“第一索引值”)以及可以分别由分区参数联合编码的信息集合的表,所述采样分区参数分别指示将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区。
[0042] 图25是第一参数和第二参数的采样组合的表,其中第一参数和第二参数之一是指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区。
[0043] 图26示出了用于实现内容分配服务的内容提供系统的整体配置。
[0044] 图27示出了可伸缩编码中的编码结构的一个示例。
[0045] 图28示出了可伸缩编码中的编码结构的一个示例。
[0046] 图29示出了网页的显示屏幕的示例。
[0047] 图30示出了网页的显示屏幕的示例。
[0048] 图31示出了智能手机的一个示例。
[0049] 图32是示出了智能电话的配置示例的框图。

具体实施方式

[0050] 根据一个方面,提供了一种图像编码器,其包括电路和耦合至该电路的存储器。所述电路在操作中执行以下操作:将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区;预测第一分区的第一运动矢量和第二分区的第二运动矢量;以及使用第一运动矢量来编码第一分区,使用第二运动矢量来编码第二分区。
[0051] 根据另一方面,第二分区具有非矩形形状。根据另一方面,该非矩形形状是三角形。根据另一方面,非矩形形状是从由三角形、梯形、和具有至少五个边和角的多边形组成的群组中选择的。
[0052] 根据另一方面,该预测包括从第一组运动矢量候选中选择第一运动矢量,以及从第二组运动矢量候选中选择第二运动矢量。例如,第一组运动矢量候选可以包括与第一分区相邻的分区的运动矢量,而第二组运动矢量候选可以包括与第二分区相邻的分区的运动矢量。与第一分区相邻的分区和与第二分区相邻的分区可以在从其分割了第一分区和第二分区的图像块的外部。相邻分区可以是空间相邻分区和时间相邻分区之一或两者。第一组运动矢量候选可以与第二组运动矢量候选相同或不同。
[0053] 根据另一方面,所述预测包括:从第一组运动矢量候选中选择第一运动矢量候选,并且通过将第一运动矢量差与到第一运动矢量候选相加来得出第一运动矢量,以及从第二组运动矢量候选中选择第二运动矢量候选,并且通过将第二运动矢量差与第二运动矢量候选相加来得出第二运动矢量。
[0054] 根据另一方面,提供了一种图像编码器,该图像编码器包括:分割器,其在操作中将原始图片接收并分割成块;以及加法器,其在操作中接收来自分割器的块和来自预测控制器的预测,并从其对应的块中减去每个预测以输出残差;变换器,其在操作中对从加法器输出的残差执行变换以输出变换系数;量化器,其在操作中对所述变换系数进行量化以生成经量化的变换系数;熵编码器,其在操作中对经量化的变换系数进行编码以生成比特流;以及耦合到帧间预测器、帧内预测器和存储器的预测控制器,其中,帧间预测器在操作中基于经编码的参考图片中的参考块来生成对当前块的预测,帧内预测器在操作中基于当前图片中的经编码的参考块来生成对当前块的预测。预测控制器在操作中将块分割成多个分区,多个分区包括第二分区以及具有非矩形形状的第一分区;预测第一分区的第一运动矢量和第二分区的第二运动矢量;并使用第一运动矢量来编码第一分区,并使用第二运动矢量编码第二分区。
[0055] 根据另一方面,提供了一种图像编码方法,其通常包括三个步骤:将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区;以及预测第一分区的第一运动矢量和第二分区的第二运动矢量;使用第一运动矢量来编码第一分区,使用第二运动矢量编码第二分区。
[0056] 根据另一方面,提供了一种图像解码器,其包括电路和耦合至该电路的存储器。所述电路在操作中执行:将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区;以及预测第一分区的第一运动矢量和第二分区的第二运动矢量;使用第一运动矢量来解码第一分区,使用第二运动矢量来解码第二分区。
[0057] 根据另一方面,第二分区具有非矩形形状。根据另一方面,非矩形形状是三角形。根据另一方面,非矩形形状是从由三角形、梯形、和具有至少五个边和角的多边形组成的群组中选择的。
[0058] 根据另一方面,提供了一种图像解码器,包括:熵解码器,其在操作中接收并解码经编码的比特流以获得经量化的变换系数;以及逆量化器和变换器,其在操作中对经量化的变换系数进行逆量化以获得变换系数,并且对变换系数进行逆变换以获得残差;加法器,其在操作中将从逆量化器和变换器输出的残差与从预测控制器输出的预测相加以重构块;以及耦合到帧间预测器、帧内预测器和存储器的预测控制器,其中,帧间预测器在操作中基于经解码的参考图片中的参考块来生成对当前块的预测,并且帧内预测器在操作中基于当前图片中的经解码的参考块来生成对当前块的预测。预测控制器在操作中将图像块分割成多个分区,多个分区包括第二分区以及具有非矩形形状的第一分区;预测第一分区的第一运动矢量和第二分区的第二运动矢量;使用第一运动矢量来解码第一分区,使用第二运动矢量来解码第二分区。
[0059] 根据另一方面,提供了一种图像解码方法,其通常包括三个步骤:将图像块分成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区;以及预测第一分区的第一运动矢量和第二分区的第二运动矢量;使用第一运动矢量来解码第一分区,使用第二运动矢量来解码第二分区。
[0060] 根据一个方面,提供了一种图像编码器,其包括电路和耦合至该电路的存储器。所述电路在操作中沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作。边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测;以及使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测;对第一值和第二值进行加权;使用经加权的第一值和经加权的第二值对第一分区进行编码。
[0061] 根据另一方面,非矩形形状是三角形。根据另一方面,非矩形形状是从由三角形、梯形、和具有至少五个边和角的多边形组成的群组中选择的。根据又一方面,第二分区具有非矩形形状。
[0062] 根据另一方面,第一预测和第二预测中的至少一个是帧间预测过程,帧间预测过程基于经编码的参考图片中的参考分区来预测第一值和第二值。帧间预测过程可以预测包括一组像素的第一分区的像素的第一值,并且可以预测仅第一分区的一组像素的第二值。
[0063] 根据另一方面,第一预测和第二预测中的至少一个是帧内预测过程,帧内预测过程基于当前图片中的经编码的参考分区来预测第一值和第二值。
[0064] 根据另一方面,在第一预测中使用的预测方法不同于在第二预测中使用的预测方法。
[0065] 根据另一方面,每行或每列中针对其预测所述第一值和所述第二值的所述一组像素的数量是整数。例如,当每行或每列中的一组像素的数量是四时,可以分别将权重1/8、1/4、3/4和7/8应用于该组中的四个像素的第一值,可以分别权重7/8、3/4、1/4和1/8应用于该组中的四个像素的第二值。作为另一示例,当每行或每列中的一组像素的数量是二时,可以分别将权重1/3和2/3应用于该组中的两个像素的第一值,并且分别将权重为2/3和1/3可以分别应用于该组中的两个像素的第二值。
[0066] 根据另一方面,权重可以是整数值或可以是分数值。
[0067] 根据另一方面,提供了一种图像编码器,该图像编码器包括:分割器,其在操作中将原始图片接收并分割成块;以及加法器,其在操作中接收来自分割器的块和来自预测控制器的预测,并从其对应的块中减去每个预测以输出残差;变换器,其在操作中对从加法器输出的残差执行变换以输出变换系数;量化器,其在操作中对所述变换系数进行量化以生成经量化的变换系数;熵编码器,其在操作中对经量化的变换系数进行编码以生成比特流;以及耦合到帧间预测器、帧内预测器和存储器的预测控制器,其中,帧间预测器在操作中基于经编码的参考图片中的参考块来生成对当前块的预测,并且帧内预测器在操作中基于当前图片中的经编码的参考块来生成对当前块的预测。预测控制器在操作中沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作。边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测;
以及使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测;对第一值和第二值进行加权;使用经加权的第一值和经加权的第二值对第一分区进行编码。
[0068] 根据另一方面,提供了一种图像编码方法,其沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作。该方法通常包括四个步骤:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测;以及使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测;对第一值和第二值进行加权;使用经加权的第一值和经加权的第二值对第一分区进行编码。
[0069] 根据另一方面,提供了一种图像解码器,其包括电路和耦合至该电路的存储器。所述电路在操作中沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作。边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测;以及使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测;对第一值和第二值进行加权;使用经加权的第一值和经加权的第二值对第一分区进行解码。
[0070] 根据另一方面,非矩形形状是三角形。根据另一方面,非矩形形状是从由三角形、梯形、和具有至少五个边和角的多边形组成的群组中选择的。根据另一方面,第二分区具有非矩形形状。
[0071] 根据另一方面,第一预测和第二预测中的至少一个是帧间预测过程,帧间预测过程基于经编码的参考图片中的参考分区来预测第一值和第二值。帧间预测过程可以预测包括一组像素的第一分区的像素的第一值,并且可以预测仅第一分区的一组像素的第二值。
[0072] 根据另一方面,第一预测和第二预测中的至少一个是帧内预测过程,帧内预测过程基于当前图片中的经编码的参考分区来预测第一值和第二值。
[0073] 根据另一方面,提供了一种图像解码器,包括:熵解码器,其在操作中接收并解码经编码的比特流以获得经量化的变换系数;以及逆量化器和变换器,其在操作中对经量化的变换系数进行逆量化以获得变换系数,并且对变换系数进行逆变换以获得残差;加法器,其在操作中将从逆量化器和变换器输出的残差与从预测控制器输出的预测相加以重构块;以及耦合到帧间预测器、帧内预测器和存储器的预测控制器,其中,帧间预测器在操作中基于经解码的参考图片中的参考块来生成对当前块的预测,并且帧内预测器在操作中基于当前图片中的经解码的参考块来生成对当前块的预测。预测控制器在操作中沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作。边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测;
以及使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测;对第一值和第二值进行加权;使用经加权的第一值和经加权的第二值对第一分区进行解码。
[0074] 根据另一方面,提供了一种图像解码方法,其沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作。该方法通常包括四个步骤:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测;以及使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测;对第一值和第二值进行加权;使用经加权的第一值和经加权的第二值对第一分区进行解码。
[0075] 根据一个方面,提供了一种图像编码器,其包括电路和耦合至该电路的存储器。所述电路在操作中执行分区语法操作,所述分区语法操作包括:基于指示所述分割的分区参数,将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区;编码第一分区和第二分区;并将包括分区参数的一个或多个参数写入比特流。
[0076] 根据另一方面,分区参数指示第一分区具有三角形形状。
[0077] 根据另一方面,分区参数指示第二分区具有非矩形形状。
[0078] 根据另一方面,所述分区参数指示所述非矩形形状是具有三角形、梯形和至少五个边和角的多边形中的一个。
[0079] 根据另一方面,分区参数联合地编码用于将图像块分割成多个分区的分割方向。例如,分割方向可以包括:从图像块的左上角到其右下角,以及从图像块的右上角到其左下角。分区参数可以联合编码第一分区的至少第一运动矢量。
[0080] 根据另一方面,除分区参数之外的一个或多个参数对被应用于将图像块分割成多个分区的分割方向进行编码。编码分割方向的参数可以联合编码第一分区的至少第一运动矢量。
[0081] 根据另一方面,分区参数可以联合编码第一分区的至少第一运动矢量。分区参数可以联合编码第二分区的第二运动矢量。
[0082] 根据另一方面,除分区参数之外的一个或多个参数可以对第一分区的至少第一运动矢量进行编码。
[0083] 根据另一方面,根据二进制化方案对一个或多个参数进行二进制化,该二进制化方案是根据一个或多个参数中至少一个的值来选择的。
[0084] 根据另一方面,提供了一种图像编码器,该图像编码器包括:分割器,其在操作中将原始图片接收并分割成块;以及加法器,其在操作中接收来自分割器的块和来自预测控制器的预测,并从其对应的块中减去每个预测以输出残差;变换器,其在操作中对从加法器输出的残差执行变换以输出变换系数;量化器,其在操作中对所述变换系数进行量化以生成经量化的变换系数;熵编码器,其在操作中对经量化的变换系数进行编码以生成比特流;以及耦合到帧间预测器、帧内预测器和存储器的预测控制器,其中,帧间预测器在操作中基于经编码的参考图片中的参考块来生成对当前块的预测,帧内预测器在操作中基于当前图片中的经编码的参考块来生成对当前块的预测。预测控制器在操作中,基于指示分割的分区参数,将图像块分割成多个分区,多个分区包括第二分区以及具有非矩形形状的第一分区,并且对第一分区和第二分区进行编码。熵编码器在操作中将包括分区参数的一个或多个参数写入比特流。
[0085] 根据另一方面,提供了一种包括分区语法操作的图像编码方法。该方法通常包括三个步骤:基于指示该分割的分区参数,将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区;以及编码第一分区和第二分区;并将包括分区参数的一个或多个参数写入比特流。
[0086] 根据另一方面,提供了一种图像解码器,其包括电路和耦合至该电路的存储器。所述电路在操作中执行分区语法操作,所述分区语法操作包括:解析来自比特流的一个或多个参数,其中,所述一个或多个参数包括指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区;基于分区参数将图像块分割成多个分区;以及解码第一分区和第二分区。
[0087] 根据另一方面,分区参数指示第一分区具有三角形形状。
[0088] 根据另一方面,分区参数指示第二分区具有非矩形形状。
[0089] 根据另一方面,所述分区参数指示所述非矩形形状是三角形、梯形和具有至少五个边和角的多边形中的一个。
[0090] 根据另一方面,分区参数联合地编码用于将图像块分割成多个分区的分割方向。例如,分割方向包括:从图像块的左上角到其右下角,以及从图像块的右上角到其左下角。
分区参数可以联合编码第一分区的至少第一运动矢量。
[0091] 根据另一方面,除分区参数之外的一个或多个参数对被应用于将图像块分割成多个分区的分割方向进行编码。编码分割方向的参数可以联合编码第一分区的至少第一运动矢量。
[0092] 根据另一方面,分区参数可以联合编码第一分区的至少第一运动矢量。分区参数可以联合编码第二分区的第二运动矢量。
[0093] 根据另一方面,除分区参数之外的一个或多个参数可以对第一分区的至少第一运动矢量进行编码。
[0094] 根据另一方面,根据二进制化方案对一个或多个参数进行二进制化,该二进制化方案是根据一个或多个参数中至少一个的值来选择的。
[0095] 根据另一方面,提供了一种图像解码器,该图像解码器包括:熵解码器,该熵解码器在操作中接收并解码经编码的比特流以获得经量化的变换系数;以及逆量化器和变换器,其在操作中对经量化的变换系数进行逆量化以获得变换系数,并且对变换系数进行逆变换以获得残差;加法器,其在操作中将从逆量化器和变换器输出的残差与从预测控制器输出的预测相加以重构块;以及耦合到帧间预测器、帧内预测器和存储器的预测控制器,其中,帧间预测器在操作中基于经解码的参考图片中的参考块来生成对当前块的预测,帧内预测器在操作中基于当前图片中的经解码的参考块来生成对当前块的预测。所述熵解码器在操作中:从比特流中解析一个或多个参数,其中所述一个或多个参数包括指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区;基于分区参数将图像块分割成多个分区;并解码第一分区和第二分区。
[0096] 根据另一方面,提供了一种包括分区语法操作的图像解码方法。该方法通常包括三个步骤:从比特流中解析一个或多个参数,其中,所述一个或多个参数包括指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区;基于分区参数将图像块分割成多个分区;解码第一分区和第二分区。
[0097] 在附图中,相同的附图标记表示相似的元件。附图中元件的尺寸和相对位置不一定是按比例绘制的。
[0098] 在下文中,将参考附图描述实施例。注意,以下描述的实施例中的每个示出了一般或特定的示例。在以下实施例中指示的数值、形状、材料、组件、组件的布置和连接、步骤、步骤的关系和顺序等仅是示例,而不旨在限制权利要求的范围。因此,在以下实施例中公开但在定义最宽泛的发明构思的任何独立权利要求中没有列举的那些组件可以被理解为可选组件。
[0099] 下面将描述编码器和解码器的实施例。所述实施例是编码器和解码器的示例,其中在本公开的方面的描述中呈现的过程和/或配置可应用于所述编码器和解码器。所述过程和/或配置还可以在不同于根据实施例的编码器和解码器中被实现。例如,关于应用于实施例的过程和/或配置,可以实现以下中的任何一项:
[0100] (1)根据在本公开的方面的描述中呈现的实施例的编码器或解码器的任何组件可以与在本公开的方面的描述中任何地方呈现的另一组件替代或组合。
[0101] (2)在根据实施例的编码器或解码器中,可以对由编码器或解码器的一个或多个组件执行的功能或过程进行任何改变,例如功能或过程的增加、替换、去除等。例如,任何功能或过程可以与在本公开的各方面的描述中任何地方出现的另一功能或过程进行替代或组合。
[0102] (3)在根据实施例的由编码器或解码器实现的方法中,可以进行任何改变,例如添加、替换和去除该方法中包括的一个或多个过程。例如,该方法中的任何过程可以与在本公开的各方面的描述中任何地方出现的另一过程进行替代或组合。
[0103] (4)根据实施例的包括在编码器或解码器中的一个或多个组件可以与在本公开的各方面的描述中任何地方呈现的组件进行组合,可以与包括在本公开的各方面的描述中的任何地方呈现的一个或多个功能的组件进行组合,并且可以与实现由在本公开的方面的描述中呈现的组件实现的一个或多个过程的组件进行组合。
[0104] (5)可以将包括根据实施例的编码器或解码器的一个或多个功能的组件,或实现根据实施例的编码器或解码器的一个或多个过程的组件与在本公开的各方面的描述中的任何地方所呈现的组件,与包括在本公开的各方面的描述中的任何地方呈现的一个或多个功能的组件,或者与实现在本公开的各方面的描述中的任何地方呈现的一个或多个过程的组件进行组合或替换。
[0105] (6)在根据实施例的由编码器或解码器实现的方法中,在该方法中所包括的任何过程可以与在本公开的方面的描述中任何地方呈现的过程或者与任何对应的或等效的过程进行替换或组合。
[0106] (7)可以将根据实施例的在由编码器或解码器实现的方法中包括的一个或多个过程与本公开的各方面的描述中任何地方呈现的过程进行组合。
[0107] (8)在本公开的各方面的描述中呈现的过程和/或配置的实现不限于根据实施例的编码器或解码器。例如,可以在用于与实施例中公开的运动图片编码器或运动图片解码器不同的目的的设备中实现所述过程和/或配置。
[0108] (编码器)
[0109] 首先,将描述根据实施例的编码器。图1是示出了根据实施例的编码器100的功能配置的框图。编码器100是运动图片编码器,其逐块地对运动图片进行编码。
[0110] 如图1所示,编码器100是一种对图片进行逐块编码的设备,并且包括分割器102、减法器104、变换器106、量化器108、熵编码器110、逆量化器112、逆变换器114、加法器116、块存储器118、环路滤波器120、帧存储器122、帧内预测器124、帧间预测器126、和预测控制器128。
[0111] 编码器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相对应的一个或多个专用电子电路。
[0112] 在下文中,将描述在编码器100中包括的每个组件。
[0113] (分割器)
[0114] 分割器102将在所输入的运动图片中包括的每个图像分割成块,并且将每个块输出至减法器104。例如,分割器102首先将图像分割成固定大小(例如128×128)的块。固定大小的块也可以被称为编码树单元(CTU)。然后,分割器102基于例如递归四叉树和/或二叉树块分割,将每个固定大小块的分割成可变大小(例如,64×64或更小)的块。可变大小的块也可以被称为编码单元(CU)、预测单元(PU)、或变换单元(TU)。在各种实现中,可以不需要区分CU、PU和TU;图片中的所有或一些块可以按CU、PU、或TU来处理。
[0115] 图2示出了根据实施例的块分割的一个示例。在图2中,实线表示通过四叉树块分割而分割的块的块边界,而虚线表示通过二叉树块分割而分割的块的块边界。
[0116] 在这里,块10是正方形的128×128像素块(128×128块)。首先将该128×128块10分割成四个正方形64×64块(四叉树块分割)。
[0117] 左上方的64×64块进一步竖直分割成两个矩形32×64块,而左侧的32×64块进一步竖直分割成两个矩形16×64块(二叉树块分割)。结果,左上方的64×64块被分割成两个16×64块11和12以及一个32×64块13。
[0118] 右上方的64×64块被平分割成两个矩形64×32块14和15(二叉树块分割)。
[0119] 首先将左下方的64×64块分割成四个正方形的32×32块(四叉树块分割)。在四个32×32块中,将左上块和右下块进一步分割。左上方的32×32块竖直地被分成两个矩形16×32块,而右侧的16×32的块进一步水平地被分成两个16×16块(二叉树块分割)。右下方的32×32块被水平分割成两个32×16块(二叉树块分割)。作为结果,左下方的64×64块被分割成16×32块16,两个16×16块17和18,两个32×32块19和20,以及两个32×16块21和
22。
[0120] 右下方的64×64块23未被分割。
[0121] 如上所述,在图2中,基于递归四叉树和二叉树块分割,将块10分割成13个可变大小的块11至23。该类型的分割方式也被称为四叉树加二叉树(QTBT)分割。
[0122] 尽管在图2中将一个块分割成四个或两个块(四叉树或二叉树块分割),但分割不限于这些示例。例如,可以将一个块分割成三个块(三元块分割)。包括这样的三元块分割的分割也被称为多类型树(MBT)分割。
[0123] (减法器)
[0124] 减法器104从由分割器102分割并输入的每个块的原始信号(原始采样)中减去预测信号(预测采样,从预测控制器128输入,将在下文中被描述)。换句话说,减法器104计算待编码块(下文也称为“当前块”)的预测误差(也称为“残差”)。减法器104接着将经计算的预测误差(残差)输出至变换器106。
[0125] 原始信号是输入到编码器100的信号,并且是表示运动图片中包括的每个图片的图像的信号(例如,亮度信号和两个色度信号)。在下文中,表示图像的信号也称为采样。
[0126] (变换器)
[0127] 变换器106将空间域预测误差变换成频域变换系数,并且将变换系数输出至量化器108。更加具体地,变换器106将例如预定义的离散余弦变换(DCT)或离散正弦变换(DST)应用于空间域预测误差。
[0128] 注意,变换器106可以从多个变换类型中自适应地选择变换类型,并且通过使用与所选择的变换类型相对应的变换基函数来将预测误差变换成变换系数。这种变换也被称为显式多核变换(EMT)或自适应多变换(AMT)。
[0129] 变换类型包括例如DCT-II、DCT-V、DCT-VIII、DST-I和DST-VII。图3是表示每种变换类型的变换基础函数的图。在图3中,N表示输入像素的数量。例如,从多个变换类型中选择变换类型可以取决于预测类型(帧内预测和帧间预测)以及帧内预测模式。
[0130] 指示是应用EMT还是AMT的信息(例如,被称为EMT标志或AMT标志)和指示所选择的变换类型的信息通常在CU级别上用信号发送。注意,这种信息的信号发送不需要在CU级别上执行,而可以在另一级别上(例如,在比特序列级别、图片级别、截片级别、图块级别、或CTU级别上)执行。
[0131] 此外,变换器106可以将二次变换应用于变换系数(变换结果)。这样的二次变换也被称为自适应二次变换(AST)或不可分离的二次变换(NSST)。例如,变换器106对包括在与帧内预测误差相对应的变换系数的块中的每个子块(例如,每个4×4子块)应用二次变换。指示是否应用NSST的信息和与NSST中使用的变换矩阵有关的信息通常在CU级别上用信号发送。注意,这种信息的信号发送不需要在CU级别上执行,而可以在另一个级别上(例如,在位序列级别、图片级别、截片(slice)级别、图块(tile)级别、或CTU级别上)执行。
[0132] 可以在变换器106中应用单独的变换或不可分变换。单独的变换是这样一种方法,其中通过根据输入的维度数量对每个方向单独执行变换来多次执行变换。不可分变换是一种执行集体变换的方法,其中将多维输入中的两个或更多个维度共同视为单个维度。
[0133] 在不可分变换的一个示例中,当输入是4×4块时,该4×4块被视为包含16个分量的单个数组,并且该变换将16×16变换矩阵应用于该数组。
[0134] 在不可分变换的另一示例中,在将输入的4×4块视为包括16个分量的单个数组之后,可以将执行多个Givens旋转的变换(例如,Hypercube-Givens变换)应用于该数组。
[0135] (量化器)
[0136] 量化器108对从变换器106输出的变换系数进行量化。更加具体地,量化器108以预先确定的扫描顺序来扫描当前块的变换系数,并且基于与所述变换系数相对应的量化参数(QP)来量化经扫描的变换系数。接着,量化器108将当前块的经量化的变换系数(以下称为经量化的系数)输出至熵编码器110和逆量化器112。
[0137] 预先确定的扫描顺序是用于对变换系数进行量化/逆量化的顺序。例如,预先确定的扫描顺序被定义为频率的升序(从低频到高频)或频率的降序(从高频到低频)。
[0138] 量化参数(QP)是定义量化步长(量化宽度)的参数。例如,如果量化参数的值增加,则量化步长也增加。换句话说,如果量化参数的值增加,则量化误差增加。
[0139] (熵编码器)
[0140] 熵编码器110基于从量化器108输入的经量化的系数来生成经编码的信号(经编码的比特流)。更加具体地,例如,熵编码器110对经量化的系数进行二进制化并且对二进制信号进行算术编码,以输出压缩比特流或序列。
[0141] (逆量化器)
[0142] 逆量化器112对从量化器108输入的经量化的系数进行逆量化。更加具体地,逆量化器112以预先确定的扫描顺序对当前块的经量化的系数进行逆量化。然后,逆量化器112将当前块的逆量化的变换系数输出至逆变换器114。
[0143] (逆变换器)
[0144] 逆变换器114通过对从逆量化器112输入的变换系数进行逆变换来恢复预测误差(残差)。更加具体地,逆变换器114通过应用与变换器106对变换系数所应用的变换相对应的逆变换来恢复当前块的预测误差。逆变换器114接着将经恢复的预测误差输出至加法器116。
[0145] 注意,由于通常信息在量化中丢失,因此经恢复的预测误差与减法器104计算出的预测误差不匹配。换句话说,经恢复的预测误差通常包括量化误差。
[0146] (加法器)
[0147] 加法器116通过对从逆变换器114输入的预测误差和从预测控制器128输入的预测采样进行求和来重构当前块。加法器116接着将重构的块输出至块存储器118和环路滤波器120。经重构的块也被称为经本地解码的块。
[0148] (块存储器)
[0149] 块存储器118是用于存储在例如帧内预测中参考的待编码的图片(称为“当前图片”)中的块的存储设备。更加具体地说,块存储器118存储从加法器116输出的经重构的块。
[0150] (环路滤波器)
[0151] 环路滤波器120将环路滤波器应用于由加法器116重构的块,并且将经滤波的经重构的块输出至帧存储器122。环路滤波器是在编码环路中使用的滤波器(环路内滤波器),并且包括例如去块滤波器(DF)、采样自适应偏移(SAO)、和自适应环路滤波器(ALF)。
[0152] 在ALF中,应用了用于消除压缩伪影的最小二乘误差滤波器。例如,基于局部梯度的方向和活动,针对当前块中的每个2×2子块从多个滤波器中选择一个滤波器,并且对其进行应用。
[0153] 更加具体地,首先,将每个子块(例如,每个2×2子块)分类成多个类别(例如,15或25个类别)中的一个。子块的分类是基于梯度方向性和活动的。例如,基于梯度方向性D(例如,0到2或0到4)和梯度活动A(例如,0到4)得出分类索引C(例如,C=5D+A)。接着,基于分类索引C,将每个子块分类成多个类别中的一个。
[0154] 例如,通过比较多个方向(例如,水平方向、竖直方向、和两个对角线方向)的梯度来计算梯度方向性D。此外,例如,通过对多个方向的梯度进行求和并且对总和进行量化来计算梯度活动A。
[0155] 基于这样的分类的结果,从多个滤波器中确定要用于每个子块的滤波器。
[0156] 在ALF中使用的滤波器形状例如是圆形对称滤波器形状。图4A、4B、和4C示出了在ALF中使用的滤波器形状的示例。图4A示出了5×5菱形滤波器,图4B示出了7×7菱形滤波器,而图4C示出了9×9菱形滤波器。指示滤波器形状的信息通常在图片级别用信号发送。注意,对指示滤波器形状的信息的信号发送不需要在图片级别执行,而可以在另一级别(例如,在序列级别、截片级别、图块级别、CTU级别、或CU级别)执行。
[0157] 可以在图片级别或CU级别确定ALF的启用或禁用。例如,对于亮度,可以在CU级别上完成决定是否应用ALF,对于色度,可以在图片级别上完成决定是否应用ALF。指示是被启用还是禁用ALF的信息通常在图片级别或CU级别以信号发送。注意,指示是否启用ALF的信息的信号发送不需要在图片级别或CU级别执行,而可以在另一级别(例如,在序列级别、截片级别、图块级别、或CTU级别)执行。
[0158] 通常在图片级别上用信号发送多个可选滤波器(例如,15或25个滤波器)的系数集。注意,系数集的信号发送不需要在图片级别执行,而可以在另一级别(例如,在序列级别、截片级别、图块级别、CTU级别、CU级别、或子块级别)执行。
[0159] (帧存储器)
[0160] 帧存储器122例如是用来存储在帧间预测中使用的参考图片的存储设备,并且也被称为帧缓冲器。更加具体地,帧存储器122存储由环路滤波器120滤波的经重构的块。
[0161] (帧内预测器)
[0162] 帧内预测器124通过参考存储在块存储器118中的当前图片中的一个或多个块对当前块进行帧内预测来生成预测信号(帧内预测信号)(也被称为帧内预测)。更加具体地,帧内预测器124通过参考与当前块相邻的一个或多个块的采样(例如,亮度和/或色度值)进行帧内预测来生成帧内预测信号,并且接着将帧内预测信号输出至预测控制器128。
[0163] 例如,帧内预测器124通过使用多个预先确定的帧内预测模式中的一种模式来执行帧内预测。所述帧内预测模式通常包括一个或多个非方向性预测模式和多个方向性预测模式。
[0164] 一个或多个非方向性预测模式包括例如在H.265/HEVC标准中定义的平面预测模式和DC预测模式。
[0165] 多个方向性预测模式包括例如在H.265/HEVC标准中定义的33个方向性预测模式。注意,除了所述33个方向性预测模式之外,所述多个方向性预测模式还可以包括32个方向性预测模式(对于总共65个方向性预测模式)。
[0166] 图5A示出了在帧内预测中使用的总共67个帧内预测模式(两个非方向性预测模式和65个方向性预测模式)。实线箭头表示在H.265/HEVC标准中定义的33个方向,而虚线箭头表示另外32个方向(在图5A中未示出所述两个“非方向性”预测模式。)
[0167] 在各种实现中,可以在色度块帧内预测中参考亮度块。即,可以基于当前块的亮度分量来预测当前块的色度分量。这样的帧内预测也被称为跨分量线性模型(CCLM)预测。可以添加参考亮度块的色度块帧内预测模式(例如,被称为CCLM模式)以作为色度块帧内预测模式之一。
[0168] 帧内预测器124可以基于水平/竖直参考像素梯度来校正帧内预测后像素值。伴随这样的校正的帧内预测也被称为位置依赖帧内预测组合(PDPC)。指示是否应用PDPC的信息(例如,被称为PDPC标志)通常在CU级别上用信号发送。注意,该信息的信号发送不需要在CU级别上执行,而可以在另一级别上(例如,在序列级别、图片级别、截片级别、图块级别、或CTU级别上)执行。
[0169] (帧间预测器)
[0170] 帧间预测器126通过参考与当前图片不同并且存储在帧存储器122中的参考图片中的一个或多个块对当前块进行帧间预测来生成预测信号(帧间预测)。帧间预测是对每个当前块或当前块中的每个当前子块(例如,每个4×4块)执行的。例如,帧间预测器126在参考图片中针对当前块或当前子块执行运动估计,以在参考图片中找到与当前块或子块最匹配的参考块或子块,并且获得补偿(或预测)运动或者从参考块或子块改变至当前块或子块的运动信息(例如,运动矢量)。接着,帧间预测器126基于运动信息执行运动补偿(或运动预测),并且基于运动信息生成当前块或子块的帧间预测信号。帧间预测器126接着将所生成的帧间预测信号输出至预测控制器128。
[0171] 在运动补偿中使用的运动信息可以以多种形式用信号发送作为帧间预测信号。例如,可以用信号发送运动矢量。作为另一示例,可以用信号发送运动矢量和运动矢量预测值之间的差异。
[0172] 注意,除了从运动估计获得的当前块的运动信息之外,还可以使用邻近块的运动信息来生成帧间预测信号。更加具体地,可以通过计算基于从运动估计(在参考图片中)获得的运动信息的预测信号和基于(在当前图片中)相邻块的运动信息的预测信号的加权和,来在当前块中每个子块地生成帧间预测信号。这样的帧间预测(运动补偿)也被称为重叠块运动补偿(OBMC)。
[0173] 在OBMC模式下,可以在序列级别用信号发送指示用于OBMC的子块大小的信息(例如,被称为OBMC块大小)。此外,可以在CU级别用信号发送指示是否应用OBMC模式的信息(例如,被称为OBMC标志)。注意,这样的信息的信号发送不需要在序列级别和CU级别执行,而可以在另一个级别(例如,在图片级别、截片级别、图块级别、CTU级别、或子块级别)执行。
[0174] 在下文中,将更详细地描述OBMC模式。图5B是流程图,图5C是示出通过OBMC处理执行的预测图像校正过程的概念图。
[0175] 参考图5C,首先,使用分配给目标(当前)块的运动矢量(MV),通过典型的运动补偿来获得预测图像(Pred)。在图5C中,箭头“MV”指向参考图片,以指示当前图片中的当前块正在参考什么以便获得预测图像。
[0176] 接下来,通过向目标(当前)块应用(重用)已针对经编码的相邻左块得出的运动矢量(MV_L)来获得预测图像(Pred_L),如由从当前块开始并指向参考图片以获得预测图像Pred_L的箭头“MV_L”指示。接着,两个预测图像Pred和Pred_L被叠加以执行对预测图像的校正的第一遍,其在一个方面中具有混合相邻块之间的边界的效果。
[0177] 类似地,通过向目标(当前)块应用(重用)已针对经编码的相邻上块得出的运动矢量(MV_U)来获得预测图像(Pred_U),如由从当前块开始并指向参考图片以获得预测图像Pred_U的箭头“MV_U”所示。接着,将预测图像Pred_U与从第一遍得到的预测图像(即,Pred和Pred_L)叠加,以执行对预测图像的校正的第二遍,其在一个方面中具有混合相邻块之间的边界的效果。第二遍的结果是当前块的最终预测图像,其具有与其相邻块的融合(平滑)的边界。
[0178] 注意,以上示例是使用相邻的左和上块的两遍校正方法,但是该方法可以是也使用相邻的右和/或下块的三遍或更高遍校正方法。
[0179] 注意,受到叠加的区域可以是块的整个像素区域,并且可替代地可以是部分块边界区域。
[0180] 在这里注意,OBMC的预测图像校正过程被描述为是基于单个参考图片以得出单个预测图像Pred的,其中,在其上叠加了另外的预测图像Pred_L和Pred_U,但是当基于所述多个参考图片来校正所述预测图像时,相同的过程可以应用于多个参考图片中的每个。在这样的情况下,在通过分别基于多个参考图片执行OBMC的图像校正而获得多个经校正的预测图像之后,还叠加所获得的多个经校正的预测图像以获得最终预测图像。
[0181] 注意,在OBMC中,目标块的单位可以是预测块,并且可替代地,可以是通过进一步分割预测块而获得的子块。
[0182] 确定是否实现OBMC处理的方法的一个示例是使用obmc_flag,其是指示是否实现OBMC处理的信号。作为一个特定示例,编码器可以确定目标块是否属于包括复杂运动的区域。当该块属于包括复杂运动的区域时,编码器将obmc_flag的值设置为“1”,并在编码过程期间实现OBMC处理;如果该块不属于包括复杂运动的区域,则将obmc_flag的值设置为“0”,并且对块进行编码而无需实现OBMC处理。解码器通过对在流中写入的obmc_flag(即压缩序列)进行解码并且根据标志值执行解码,来在是否实现OBMC处理之间进行切换。
[0183] 注意,运动信息可以在解码器侧被得出而无需从编码器侧用信号发送。例如,可以使用在H.265/HEVC标准中定义的合并模式。此外,例如,可以通过在解码器侧执行运动估计来得出运动信息。在该情况下,解码器侧可以在不使用当前块的像素值的情况下执行运动估计。
[0184] 在这里,将描述用于在解码器侧执行运动估计的模式。用于在解码器侧执行运动估计的模式也被称为模式匹配运动矢量推导(PMMVD)模式或帧速率上转换(FRUC)模式。
[0185] 在图5D中示出了FRUC处理的一个示例。首先,参考在空间或时间上与当前块相邻的编码块的运动矢量来生成候选的候选列表(候选列表可以是合并列表),每个候选列表包括预测运动矢量(MV)。接下来,从在候选列表中登记的多个候选MV中选择最佳候选MV。例如,计算在候选列表中包括的候选MV的评估值,并且基于计算出的评估值来选择一个候选MV。
[0186] 接下来,从所选候选的运动矢量中得出当前块的运动矢量。更加具体地,例如,计算当前块的运动矢量作为所选候选(最佳候选MV)的运动矢量。可替代地,可以通过在参考图片中与所选候选的运动矢量相对应的位置附近执行的模式匹配来得出当前块的运动矢量。换句话说,当使用参考图片中的模式匹配以及评估值来搜索最佳候选MV的附近,并且发现具有更好评估值的MV时,可以将最佳候选MV更新为具有更好评估值的MV,并且具有更好评估值的MV可以用作当前块的最终MV。其中不实现用于更新具有更好评估值的MV的处理的配置也是可接受的。
[0187] 在以子块为单位执行处理的情况下,可以执行相同的处理。
[0188] 可以以各种方式来计算评估值。例如,将与运动矢量相对应的参考图片中的区域的重构图像与预先确定的区域(例如,如下文所述,可以在另一参考图片中或在当前图片中的相邻块中)的重构图像进行比较,并且,可以计算出两个重构图像之间的像素值之差,并将其用作运动矢量的评估值。注意,除了差之外,还可以通过使用一些其他信息来计算评估值。
[0189] 接下来,详细描述模式匹配。首先,选择在候选列表(例如,合并列表)中包括的一个候选MV作为通过模式匹配进行搜索的起点。所使用的模式匹配是第一模式匹配或第二模式匹配。第一模式匹配和第二模式匹配也分别被称为双边匹配和模板匹配。
[0190] 在第一模式匹配中,在都沿着当前块的运动轨迹的两个不同参考图片中的两个块之间执行模式匹配。因此,在第一模式匹配中,针对参考图片中的区域,将与当前块的运动轨迹相符的另一参考图片中的区域用作用于上述候选评估值的计算的预先确定的区域。
[0191] 图6示出了沿着运动轨迹的两个参考图片中的两个块之间的第一模式匹配(双向匹配)的一个示例。如在图6中所示,在第一模式匹配中,通过在沿着当前块(Cur块)的运动轨迹的两个不同参考图片(Ref0,Ref1)中的两个块之间找到最佳匹配来得出两个运动矢量(MV0,MV1)。更加具体地,可以(i)在第一经编码的参考图片(Ref0)中由候选MV指定的位置处的重构图像与(ii)在第二经编码的参考图片(Ref1)中由候选MV指定的位置处的重构图像(每个显示时间间隔对称地缩放)之间获得差。接着,该差可以用于得出当前块的评估值。可以在多个候选MV中选择具有最佳评估值的候选MV作为最终MV。
[0192] 在连续运动轨迹的假设下,指向两个参考块的运动矢量(MV0,MV1)与当前图片(Cur Pic)和两个参考图片(Ref0,Ref1)之间的时间距离(TD0,TD1)成比例。例如,当当前图片在时间上位于两个参考图片之间,并且从当前图片到两个参考图片的时间距离相同时,第一模式匹配得出两个镜像双向运动矢量。
[0193] 在第二模式匹配(模板匹配)中,在当前图片中的模板(与当前图片中的当前块相邻的块;例如,顶部和/或左侧相邻块)与参考图片中的块之间执行模式匹配。因此,在第二模式匹配中,将当前图片中与当前块相邻的块用作用于候选评估值的上述计算的预先确定的区域。
[0194] 图7示出了当前图片中的模板与参考图片中的块之间的模式匹配(模板匹配)的一个示例。如在图7中所示,在第二模式匹配中,通过在参考图片(Ref0)中搜索以找到与当前图片(Cur Pic)中的当前块(Cur块)的相邻块最匹配的块,得到当前块的运动矢量。更加具体地,可以在(i)相对于当前块的经编码的相邻的上部和左侧区域中的一个或两个的经重构的图像与(ii)相对于由经编码的参考图片(Ref0)中的候选MV指定的块位置的相同区域的经重构的图像之间获得差。接着,该差可以用于得出当前块的评估值。可以在多个候选MV中选择具有最佳评估值的候选MV作为最佳候选MV。
[0195] 指示是否应用FRUC模式的信息(例如,被称为FRUC标志)可以在CU级别用信号发送。此外,当应用FRUC模式时(例如,当FRUC标志被设置为真时),可以在CU级别用信号发送指示模式适用的匹配方法(例如,第一模式匹配或第二模式匹配)的信息。注意,这样的信息的信号发送不需要在CU级别执行,而可以在另一级别(例如,在序列级别、图片级别、截片级别、图块级别、CTU级别、或子块级别)执行。
[0196] 接下来,描述了得出运动矢量的方法。首先,给出用于基于假设均匀线性运动的模型得出运动矢量的模式的描述。该模式也被称为双向光流(BIO)模式。
[0197] 图8示出了假设均匀线性运动的模型。在图8中,(vx,vy)表示速度矢量,并且τ0和τ1分别表示当前图片(Cur Pic)和两个参考图片(Ref0,Ref1)之间的时间距离。(MVx0,MVy0)表示与参考图片Ref0相对应的运动矢量,并且(MVx1,MVy1)表示与参考图片Ref1相对应的运动矢量。
[0198] 在这里,在假设速度矢量(vx,vy)表现出均匀线性运动的情况下,(MVx0,MVy0)和(MVx1,MVy1)分别被表示为(vxτ0,vyτ0)和(-vxτ1,-vyτ1),并且给出以下的光流方程(等式1)。
[0199] [数学式1]
[0200]
[0201] 在这里,I(k)表示来自运动补偿后的参考图片k(k=0、1)的亮度值。光流方程示出以下项的和等于零:(i)亮度值的时间导数,(ii)参考图片的空间梯度的水平速度和水平分量的乘积,以及(iii)参考图片的竖直速度和空间梯度的竖直分量的乘积。从例如合并列表获得的每个块的运动矢量可以基于光流方程和Hermite插值的组合逐像素地被校正。
[0202] 注意,可以使用除了基于假设均匀线性运动的模型来得出运动矢量以外的方法,在解码器侧得出运动矢量。例如,可以基于相邻块的运动矢量来得出每个子块的运动矢量。
[0203] 接下来,给出其中基于相邻块的运动矢量针对每个子块得出运动矢量的模式的描述。该模式也被称为仿射运动补偿预测模式。
[0204] 图9A示出了基于相邻块的运动矢量来得出每个子块的运动矢量的一个示例。在图9A中,当前块包括16个4×4子块。在这里,基于相邻子块的运动矢量来得出当前块中的左上角控制点的运动矢量v0。类似地,基于相邻块的运动矢量来得出当前块中的右上角控制点的运动矢量v1。接着,使用两个运动矢量v0和v1,使用以下等式2得出当前块中的每个子块的运动矢量(vx,vy)。
[0205] [数学式2]
[0206]
[0207] 在这里,x和y分别是子块的水平和竖直位置,w是预先确定的加权系数。
[0208] 仿射运动补偿预测模式可以包括得出左上角和右上角控制点的运动矢量的不同方法的多种模式。可以在CU级别用信号发送指示仿射运动补偿预测模式的信息(例如,被称为仿射标志)。注意,指示仿射运动补偿预测模式的信息的信号发送不需要在CU级别执行,而可以在另一级别(例如,在序列级别、图片级别、截片级别、图块级别、CTU级别、或子块级)执行。
[0209] (预测控制器)
[0210] 预测控制器128选择帧内预测信号(从帧内预测器124输出)或帧间预测信号(从帧间预测器126输出),并且将所选择的预测信号输出至减法器104和加法器116。
[0211] 如图1所示,在各种实现中,预测控制器128可以输出被输入到熵编码器110的预测参数。熵编码器110可以基于从预测控制器128输入的预测参数和从量化器108输入的经量化的系数来生成经编码的比特流(或序列)。预测参数可以由解码器使用,该解码器接收并解码经编码的比特流,以实行与在帧内预测器124、帧间预测器126、和预测控制器128中执行的相同的预测处理。预测参数可以包括选择的预测信号(例如,在帧内预测器124或帧间预测器126中采用的运动矢量、预测类型、或预测模式),或者基于或指示在帧内预测器124,帧间预测器126、和预测控制器128中执行的预测处理的任何索引、标志、或值。
[0212] 图9B示出了用于以合并模式得出当前图片中的运动矢量的过程的一个示例。
[0213] 首先,生成预测MV列表,其中登记了预测MV候选。预测MV候选的示例包括:空间邻近预测MV,其是位于目标块的空间附近的编码块的MV;时间相邻预测MV,其是与目标块位于同一位置的块相邻的经编码的参考图片中的块的MV;耦合的预测MV,其是通过将空间相邻预测MV和时间相邻预测MV的MV值进行组合而生成的MV;零预测MV,其是值为零的MV。
[0214] 接下来,通过从登记在预测MV列表中的多个预测MV中选择一个预测MV来确定目标块的MV。
[0215] 另外,在可变长度编码器中,将指示选择了哪个预测MV的信号merge_idx写入并编码到流中。
[0216] 注意,在图9B中所示的预测MV列表中登记的预测MV构成一个示例。登记在预测MV列表中的预测MV的数量可以与图9B所示的数量不同,登记在预测MV列表中的预测MV可以省略在图9B的示例中给出的一种或多种类型的预测MV,除了在图9B的示例中给出的类型之外并且与图9B的示例中给出的类型不同,登记在预测MV列表中的预测MV可以包括一种或多种类型的预测MV。
[0217] 可以通过使用以合并模式得出的目标块的MV通过执行DMVR(动态运动矢量刷新)处理(稍后描述)来确定最终MV。
[0218] 图9C是图示了用于确定MV的DMVR处理的示例的概念图。
[0219] 首先,为当前块设置(例如,在合并模式下)的最合适的MV被认为是候选MV。接着,根据候选MV(L0),在作为L0方向上的经编码图像的第一参考图片(L0)中识别参考像素。类似地,根据候选MV(L1),在作为L1方向上的经编码图片的第二参考图片(L1)中识别参考像素。接着,将参考像素平均以形成模板。
[0220] 接下来,使用该模板,搜索第一参考图片(L0)和第二参考图片(L1)的候选MV的周围区域,并且将具有最低成本的MV确定为最终MV。例如,可以使用模板中的每个像素值与搜索的区域中的每个像素值之间的差,使用候选MV等来计算成本值。
[0221] 注意,这里描述的处理的配置和操作在编码器侧和解码器侧都基本相同,这将在下文描述。
[0222] 可以使用除上述处理之外的任何处理,只要该处理能够通过搜索候选MV的周围环境来得出最终MV即可。
[0223] 接下来,给出使用LIC(局部照度补偿)处理来生成预测图像(预测)的模式的示例的描述。
[0224] 图9D示出了使用通过LIC处理执行的亮度校正过程的预测图像生成方法的一个示例。
[0225] 首先,从经编码的参考图片中得出MV以获得与当前块相对应的参考图像。
[0226] 接下来,对于当前块,基于当前图片中的经编码的相邻左参考区域和经编码的相邻的上参考区域的亮度像素值,并且基于由MV指定的参考图片中相同位置的亮度像素值,获得指示亮度值如何在参考图片和当前图片之间改变的信息。指示亮度值如何改变的信息用于计算亮度校正参数。
[0227] 针对当前块的预测图像是通过执行亮度校正过程而生成的,该亮度校正过程将亮度校正参数应用于由MV指定的参考图片中的参考图像上。
[0228] 注意,图9D中示出的周围参考区域的形状仅仅是一个示例;周围参考区域可以具有不同的形状。
[0229] 此外,尽管在该示例中从单个参考图片生成了预测图像,但是在从多个参考图片生成预测图像的情况下,可以在如上所述对从参考图片获得的参考图像执行了亮度校正过程之后生成预测图像。
[0230] 用于确定是否实现LIC处理的方法的一个示例是使用lic_flag,其是指示是否实现LIC处理的信号。作为一个具体示例,编码器确定当前块是否属于亮度改变的区域。当块属于亮度改变的区域时,编码器将lic_flag设置为“1”,并且在编码时实现LIC处理。当该块不属于亮度改变的区域时,编码器将lic_flag设置为“0”,并且执行实现LIC处理的编码。解码器可以通过对流中写入的lic_flag进行解码并根据标志值执行解码,来在是否执行LIC处理之间进行切换。
[0231] 确定是否实现LIC处理的不同方法的一个示例包括辨别LIC处理是否被确定为对周围块实现。在一个特定示例中,当在当前块上使用合并模式时,确定是否在对周围经编码块的编码中应用了LIC处理,该周围经编码块是在以合并模式得出MV时被选择的。接着,该确定被用于进一步确定是否对当前块实现LIC处理。注意,在该示例中,同样适用于在解码器侧执行的处理。
[0232] (解码器)
[0233] 接下来,将描述能够解码从编码器100输出的经编码的信号(经编码的比特流)的解码器。图10是示出了根据实施例的解码器200的功能配置的框图。解码器200是运动图片解码器,其逐块解码运动图片。
[0234] 如在图10中所示,解码器200包括熵解码器202、逆量化器204、逆变换器206、加法器208、块存储器210、环路滤波器212、帧存储器214、帧内预测器216、帧间预测器218、和预测控制器220。
[0235] 解码器200被实现为例如通用处理器和存储器。在该情况下,当处理器执行存储在存储器中的软件程序时,该处理器充当熵解码器202、逆量化器204、逆变换器206、加法器208、环路滤波器212、帧内预测器216、帧间预测器218、和预测控制器220。可替代地,解码器
200可以被实现为与熵解码器202、逆量化器204、逆变换器206、加法器208、环路滤波器212、帧内预测器216、帧间预测器218、和预测控制器220相对应的一个或多个专用电子电路
[0236] 在下文中,将描述在解码器200中包括的每个组件。
[0237] (熵解码器)
[0238] 熵解码器202对经解码的比特流进行熵解码。更加具体地,例如,熵解码器202将经编码的比特流算术解码成二进制信号。接着,熵解码器202将该二进制信号去二进制化。熵解码器202将每个块的经量化的系数输出至逆量化器204。熵解码器202还可以将被包括在经编码的比特流中的预测参数(见图1)输出至帧内预测器216、帧间预测器218、和预测控制器220,以使得它们可以实行与在帧内预测器124、帧间预测器126、和预测控制器128中的编码器侧执行的预测处理相同的预测处理。
[0239] (逆量化器)
[0240] 逆量化器204对从熵解码器202输入的要解码的块(以下被称为当前块)的经量化的系数进行逆量化。更加具体地,逆量化器204基于与经量化的系数相对应的量化参数来对当前块的经量化的系数进行逆量化。接着,逆量化器204将当前块的经逆量化的系数(即,变换系数)输出至逆变换器206。
[0241] (逆变换器)
[0242] 逆变换器206通过对从逆量化器204输入的变换系数进行逆变换来恢复预测误差(残差)。
[0243] 例如,当从经编码的比特流解析的信息指示EMT或AMT的应用时(例如,当AMT标志被设置为真时),逆变换器206基于指示所解析的变换类型的信息来对当前块的变换系数进行逆变换。
[0244] 此外,例如,当从经编码的比特流解析的信息指示NSST的应用时,逆变换器206将二次逆变换应用于变换系数。
[0245] (加法器)
[0246] 加法器208通过将从逆变换器206输入的预测误差与作为来自预测控制器220的输入的预测采样相加来重构当前块。接着,加法器208将经重构的块输出至块存储器210和环路滤波器212。
[0247] (块存储器)
[0248] 块存储器210是用于存储要被解码以在帧内预测中参考的图片(下文被称为当前图片)中的块的存储器。更加具体地,块存储器210存储从加法器208输出的经重构的块。
[0249] (环路滤波器)
[0250] 环路滤波器212将环路滤波器应用于由加法器208重构的块,并且将经滤波的经重构的块输出至帧存储器214并且例如输出至显示设备。
[0251] 当指示启用或者禁用从经编码的比特流解析的ALF的信息指示启用时,基于局部梯度的方向和活动从多个滤波器中选择一个滤波器,并且将所选择的滤波器应用于经重构的块。
[0252] (帧存储器)
[0253] 帧存储器214是用于存储在帧间预测中使用的参考图片的存储设备,并且也被称为帧缓冲器。更加具体地,帧存储器214存储由环路滤波器212滤波的经重构的块。
[0254] (帧内预测器)
[0255] 帧内预测器216参考如存储在块存储器210中的当前图片中的一个或多个块,通过帧内预测来生成预测信号(帧内预测信号)。更加具体地,帧内预测器216参考与当前块相邻的一个或多个块的采样(例如,亮度和/或色度值),通过帧内预测来生成帧内预测信号,并且接着将该帧内预测信号输出至预测控制器220。
[0256] 注意,当选择其中从亮度块对色度块进行帧内预测的帧内预测模式时,帧内预测器216可以基于当前块的亮度分量来预测当前块的色度分量。
[0257] 此外,当从编码的比特流(例如,在从熵解码器202输出的预测参数中)解析出指示PDPC的应用的信息时,帧内预测器216基于水平/竖直参考像素梯度来校正帧内预测后像素值。
[0258] (帧间预测器)
[0259] 帧间预测器218参考存储在帧存储器214中的参考图片来预测当前块。帧间预测是对每个当前块或当前块中的每个子块(例如,每个4×4块)执行的。例如,帧间预测器218使用从经编码的比特流(例如在从熵解码器202输出的预测参数中)中解析的运动信息(例如,运动矢量),基于运动补偿来生成当前块或子块的帧间预测信号,并且将该帧间预测信号输出至预测控制器220。
[0260] 当从经编码的比特流解析的信息指示OBMC模式的应用时,帧间预测器218除了使用从运动估计获得的当前块的运动信息之外,还使用相邻块的运动信息来生成帧间预测信号。
[0261] 此外,当从经编码的比特流解析的信息指示对FRUC模式的应用时,帧间预测器218通过根据从经编码的比特流解析的模式匹配方法(双边匹配或模板匹配)执行运动估计来得出运动信息。接着,帧间预测器218使用所得出的运动信息来执行运动补偿(预测)。
[0262] 此外,当要应用BIO模式时,帧间预测器218基于假设均匀线性运动的模型来得出运动矢量。此外,当从经编码的比特流解析的信息指示仿射运动补偿预测模式将被应用时,帧间预测器218基于相邻块的运动矢量来得出每个子块的运动矢量。
[0263] (预测控制器)
[0264] 预测控制器220选择帧内预测信号或帧间预测信号,并且将所选择的预测信号输出至加法器208。通常而言,解码器侧的预测控制器220、帧间预测器218、和帧内预测器216的配置、功能和操作可以与编码器侧的预测控制器128、帧间预测器126、和帧内预测器124的配置、功能和操作相对应。
[0265] (非矩形分区)
[0266] 在耦合至编码器侧的帧内预测器124和帧间预测器126的预测控制器128中(见图1),以及在耦合至解码器侧的帧内预测器216和帧间预测器218的预测控制器220中(参见图
10),迄今为止,通过分割每个块而获得的针对其获得运动信息(例如,运动矢量)的分区(或可变大小的块或子块)总是矩形的,如图2所示。发明人已经发现,在各种实现中,生成具有诸如三角形之类的非矩形形状的分区会引起图像质量和基于图片中图像的内容的编码效率的改进。以下,将描述各种实施例,其中出于预测的目从图像块分割的至少一个分区具有非矩形形状。注意,这些实施例同样适用于编码器侧(耦合至帧内预测器124和帧间预测器
126的预测控制器128)和解码器侧(耦合至帧内预测器216和帧间预测器218的预测控制器
220),并且可以在图1的编码器或在图10的解码器等中被实现。
[0267] 图11是示出了以下过程的流程图,该过程将图像块分割成至少包括第二分区以及具有非矩形形状(例如,三角形)的第一分区的分区,并且执行包括将图像块编码(或解码)为第一分区和第二分区的经重构的组合的另外的过程。
[0268] 在步骤S1001中,将图像块分割成包括多个分区,所述分区可以包括具有非矩形形状的第一分区以及可以具有或可以不具有非矩形形状的第二分区。例如,如在图12中所示,可将图像块从图像块的左上角到图像块的右下角分割以创建均具有非矩形形状(例如,三角形)的第一分区和第二分区,或者可以将图像块从图像块的右上角分割到图像块的左下角,以创建均具有非矩形形状(例如三角形)的第一分区和第二分区。下文将参照图12和17-19来描述非矩形分割的各种示例。
[0269] 在步骤S1002中,该过程预测第一分区的第一运动矢量,并且预测第二分区的第二运动矢量。例如,对第一和第二运动矢量的预测可以包括从第一组运动矢量候选中选择第一运动矢量,以及从第二组运动矢量候选中选择第二运动矢量。
[0270] 在步骤S1003中,执行运动补偿处理以使用在上面的步骤S1002中得出的第一运动矢量来获得第一分区,并且使用在上面的步骤S1002中得出的第二运动矢量来获得第二分区。
[0271] 在步骤S1004中,对作为第一分区和第二分区的(经重构的)组合的图像块执行预测过程。预测过程可以包括边界平滑过程,其用于平滑第一分区和第二分区之间的边界。例如,边界平滑过程可以涉及对基于第一分区预测的边界像素的第一值和基于第二分区预测的边界像素的第二值进行加权。边界平滑过程的各种实现将在下文参考图13、14、20和21A-21D来描述。
[0272] 在步骤S1005中,该过程使用一个或多个参数对图像块进行编码或解码,所述一个或多个参数包括指示将图像块分割成第二分区以及具有非矩形形状的第一分区的分区参数。如在图15的表中总结的,例如,分区参数(“第一索引值”)可以对例如在分割中应用的分割方向(例如,从左上到右下或从右上到左下,如图12所示)和在上述步骤S1002中得出的第一和第二运动矢量进行联合编码。下文将参考图15、16和22-25详细描述涉及包括分区参数的一个或多个参数的这样的分区语法操作的细节。
[0273] 图17是示出分割图像块的过程2000的流程图。在步骤S2001中,该过程将图像分割成多个分区,其包括具有非矩形形状的第一分区以及可以具有或可以不具有非矩形形状的第二分区。如在图12中所示,图像块可以被分割成具有三角形形状的第一分区以及也具有三角形形状的第二分区。还有许多其他示例,其中图像块被分割成包括第一分区和第二分区的多个分区,其中至少第一分区具有非矩形形状。非矩形形状可以是三角形、梯形、和具有至少五个边和角的多边形。
[0274] 例如,如在图18中所示,图像块可以被分割成两个三角形分区;图像块可以被分割成两个以上的三角形分区(例如,三个三角形分区);图像块可以被分割成三角形分区和矩形分区的组合;或者图像块可以被分割成三角形分区和多边形分区的组合。
[0275] 如在图19中进一步所示,可以将图像块分割成L形(多边形)分区和矩形形状分区;图像块可以被分割成五边形(多边形)形状分区和三角形形状分区;图像块可以被分割成六边形(多边形)形状分区和五边形(多边形)形状分区;或者图像块可被分割成多个多边形分区。
[0276] 参考回图17,在步骤S2002中,该过程例如通过从第一组运动矢量候选中选择第一分区来预测第一分区的第一运动矢量,并且例如通过从第二组运动矢量候选中选择第二运动矢量来预测第二分区的第二运动矢量。例如,第一组运动矢量候选可以包括与第一分区相邻的分区的运动矢量,而第二组运动矢量候选可以包括与第二分区相邻的分区的运动矢量。相邻分区可以是空间相邻分区和时间相邻分区中的一者或两者。空间相邻分区的一些示例包括位于正被处理的分区的左、左下、下、右下、右、右上、上、或左上的分区。时间相邻分区的示例是图像块的参考图片中位于同一位置的分区。
[0277] 在各种实现中,与第一分区相邻的分区和与第二分区相邻的分区可以在从其分割了第一分区和第二分区的图像块的外部。第一组运动矢量候选可以与第二组运动矢量候选相同或不同。此外,第一组运动矢量候选和第二组运动矢量候选中的至少一个可以与为图像块准备的另一组——第三组运动矢量候选相同。
[0278] 在一些实现中,在步骤S2002中,响应于确定第二分区类似于第一分区也具有非矩形形状(例如,三角形),过程2000创建第二组运动矢量候选(针对非矩形的第二分区),其包括与第二分区相邻的分区(不包括第一分区)的运动矢量(即,第一分区的运动矢量除外)。另一方面,响应于确定第二分区(不同于第一分区)具有矩形形状,过程2000创建第二组运动矢量候选(针对矩形的第二分区),其包括与第二分区相邻的分区(包括第一分区)的运动矢量。
[0279] 在步骤S2003中,该过程使用在以上步骤S2002中得出的第一运动矢量来对第一分区进行编码或解码,并且使用在以上步骤S2002中得出的第二运动矢量来对第二分区进行编码或解码。
[0280] 像图17的过程2000一样,可以由图像编码器执行图像块分割过程,例如如在图1中所示,图像编码器包括电路和耦合至该电路的存储器。该电路在操作中执行:将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区(步骤S2001);预测第一分区的第一运动矢量和第二分区的第二运动矢量(步骤S2002);使用第一运动矢量来对第一分区进行编码,并且使用第二运动矢量来对第二分区进行编码(步骤S2003)。
[0281] 根据另一个实施例,如图1所示,提供了一种图像编码器,包括:分割器102,其在操作中接收原始图片并将其分割成多个块;加法器104,其在操作中接收来自分割器的块和来自预测控制器128的预测,并且从其对应的块中减去每个预测以输出残差;变换器106,其在操作中对从加法器104输出的残差执行变换以输出变换系数;量化器108,其在操作中对变换系数进行量化以生成经量化的变换系数;熵编码器110,其在操作中对经量化的变换系数进行编码以生成比特流;以及耦合至帧间预测器126、帧内预测器124、和存储器118、122的预测控制器128,其中,帧间预测器126在操作中基于经编码的参考图片中的参考块来生成对当前块的预测,帧内预测器124在操作中基于当前图片中的经编码的参考块来生成对当前块的预测。预测控制器128在操作中将块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区(图17,步骤S2001);预测第一分区的第一运动矢量和第二分区的第二运动矢量(步骤S2002);使用第一运动矢量来对第一分区进行编码,并且使用第二运动矢量来对第二分区进行编码(步骤S2003)。
[0282] 根据另一实施例,如在图10中所示,提供了图像解码器,其包括电路和耦合至该电路的存储器。该电路在操作中执行:将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区(图17,步骤S2001);预测第一分区的第一运动矢量和第二分区的第二运动矢量(步骤S2002);使用第一运动矢量来解码第一分区,并且使用第二运动矢量来解码第二分区(步骤S2003)。
[0283] 根据另一实施例,提供了如图10中所示的图像解码器,其包括:熵解码器202,其在操作中接收并解码经编码的比特流以获得经量化的变换系数;逆量化器204和变换器206,其在操作中对经量化的变换系数进行逆量化以获得变换系数,并且对变换系数进行逆变换以获得残差;加法器208,其在操作中将从逆量化器204和变换器206输出的残差与从预测控制器220输出的预测相加以重构块;以及耦合至帧间预测器218、帧内预测器216和存储器210、214的预测控制器220,其中,帧间预测器218在操作中基于经解码的参考图片中的参考块来生成对当前块的预测,帧内预测器216在操作中基于当前图片中的经解码的参考块来生成对当前块的预测。预测控制器220在操作中将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区(图17,步骤S2001);预测第一分区的第一运动矢量和第二分区的第二运动矢量(步骤S2002);使用第一运动矢量来对第一分区进行解码,使用第二运动矢量来对第二分区进行解码(步骤S2003)。
[0284] (边界平滑)
[0285] 如上文在图11中所述,根据各种实施例,对作为第二分区以及具有非矩形形状的第一分区的(经重构的)组合的图像块执行预测过程的步骤S1004可以涉及沿第一分区和第二分区之间的边界应用边界平滑过程。
[0286] 例如,图21B示出了边界平滑过程的一个示例,该边界平滑过程涉及对边界像素的第一值和边界像素的第二值进行加权,边界像素的第一值是基于第一分区进行第一预测的,而边界像素的第二值是基于第二分区进行第二预测的。
[0287] 图20是示出了根据一个实施例的整体边界平滑过程3000的流程图,该过程3000涉及对基于第一分区进行第一预测的边界像素的第一值和基于第二分区进行第二预测的边界像素的第二值进行加权。在步骤S3001中,如在图21A或上述图12、18和19中所示,沿边界将图像块分割成第一分区和第二分区,其中,至少第一分区具有非矩形形状。
[0288] 在步骤S3002中,对沿边界的第一分区的一组像素(图21A中的“边界像素”)的第一值(例如,颜色、亮度、透明度等)进行第一预测,其中,第一值是首先使用第一分区的信息进行第一预测的。在步骤S3003中,对沿边界的第一分区的(相同)一组像素的第二值进行第二预测,其中,使用第二分区的信息对第二值进行第二预测。在一些实现中,第一预测和第二预测中的至少一个是帧间预测过程,其基于经编码的参考图片中的参考分区来预测第一值和第二值。参考图21D,在一些实现中,预测过程预测包括第一分区和第二分区在其上重叠的一组像素的第一分区的所有像素的第一值(“第一组采样”),并且仅预测第一分区和第二分区在其上重叠的一组像素(“第二组采样”)的第二值。在另一实现中,第一预测和第二预测中的至少一个是帧内预测过程,其基于当前图片中的经编码的参考分区来预测第一值和第二值。在一些实现中,在第一预测中使用的预测方法不同于在第二预测中使用的预测方法。例如,第一预测可以包括帧间预测过程,第二预测可以包括帧内预测过程。用于对第一值进行第一预测或者对第二值进行第二预测的信息可以是第一分区或第二分区的运动矢量、帧内预测方向等。
[0289] 在步骤S3004中,对使用第一分区预测的第一值和使用第二分区预测的第二值进行加权。在步骤S3005中,使用加权的第一值和第二值来对第一分区进行编码或解码。
[0290] 图21B示出了边界平滑操作的示例,其中,第一分区和第二分区在每行或每列的五个像素(最多)上重叠。即,基于第一分区来预测第一值并且基于第二分区来预测第二值的每行或每列中的一组像素的数量最多为五。图21C示出了边界平滑操作的另一示例,其中,第一分区和第二分区在每行或每列的三个像素(最多)上重叠。即,其第一值基于第一分区被预测并且其第二值基于第二分区被预测的每行或每列中的一组像素的数量最多为三个。
[0291] 图13示出了边界平滑操作的另一示例,其中,第一分区和第二分区在每行或每列的四个像素(最多)上重叠。即,基于第一分区来预测第一值并且基于第二分区来预测第二值的每行或每列中的一组像素的数量最多为四。在所示的示例中,可以分别将权重1/8、1/4、3/4、和7/8应用于该组中的四个像素的第一值,可以分别将权重7/8、3/4,1/4和1/8应用于该组中的四个像素的第二值。
[0292] 图14示出了边界平滑操作的另外的示例,其中,第一分区和第二分区分别在每行或每列的零个像素上重叠(即,它们不重叠),在每行或每行的一个像素(最多)上重叠,并且在每行或每列的两个像素(最多)上重叠。在第一和第二分区不重叠的示例中,应用了零权重。在第一分区和第二分区重叠在每行或每列的一个像素上的示例中,权重1/2可以应用于基于第一分区预测的该组中像素的第一值,权重1/2可以应用于基于第二分区预测的该组中的像素的第二值。在第一分区和第二分区重叠在每行或每列的两个像素上的示例中,可以分别将权重1/3和2/3应用于基于第一分区预测的该组中的两个像素的第一值,分别将权重2/3和1/3应用于基于第二分区预测的该组中的两个像素的第二值。
[0293] 根据上述实施例,该组中第一分区和第二分区重叠的像素数量是整数。在其他实现中,例如,该组中的重叠像素的数量可以是非整数并且可以是分数。同样,取决于每个应用程序,应用于一组像素的第一值和第二值的权重可以是分数或整数。
[0294] 类似于图20的过程3000,边界平滑过程可以由例如如图1所示的图像编码器执行,该图像编码器包括电路和耦合至该电路的存储器。电路在操作中,沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作(图20,步骤S3001)。边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测(步骤S3002);使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测(步骤S3003);对第一值和第二值进行加权(步骤S3004);使用经加权的第一值和经加权的第二值对第一分区进行编码(步骤S3005)。
[0295] 根据另一个实施例,如在图1中所示,提供了一种图像编码器,包括:分割器102,其在操作中接收原始图片并将其分割成块;加法器104,其在操作中,接收来自分割器的块和来自预测控制器128的预测,并从其对应的块中减去每个预测以输出残差;变换器106,其在操作中对从加法器104输出的残差执行变换以输出变换系数;量化器108,其在操作中对变换系数进行量化以生成经量化的变换系数;熵编码器110,其在操作中对经量化的变换系数进行编码以生成比特流;以及耦合至帧间预测器126、帧内预测器124和存储器118、122的预测控制器128,其中,帧间预测器126在操作中基于经编码的参考图片中的参考块来生成对当前块的预测,帧内预测器124在操作中基于当前图片中的经编码的参考块来生成对当前块的预测。预测控制器128在操作中沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作(图20,步骤S3001)。边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测(步骤S3002);使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测(步骤S3003);对第一值和第二值进行加权(步骤S3004);使用经加权的第一值和经加权的第二值对第一分区进行编码(步骤S3005)。
[0296] 根据另一实施例,提供了一种图像解码器,如在图10中所示,其包括电路以及与该电路耦合的存储器。所述电路在操作中,沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作(图20,步骤S3001)。所述边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测(步骤S3002);使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测(步骤S3003);对第一值和第二值进行加权(步骤S3004);使用经加权的第一值和经加权的第二值对第一分区进行解码(步骤S3005)。
[0297] 根据另一个实施例,提供了一种如图10所示的图像解码器,其包括:熵解码器202,其在操作中接收并解码经编码的比特流以获得经量化的变换系数;逆量化器204和变换器206,其在操作中对经量化的变换系数进行逆量化以获得变换系数,并且对变换系数进行逆变换以获得残差;加法器208,其在操作中将从逆量化器204和变换器206输出的残差与从预测控制器220输出的预测相加以重构块;以及耦合至帧间预测器218、帧内预测器216和存储器210、214的预测控制器220,其中,帧间预测器218在操作中基于经解码的参考图片中的参考块来生成对当前块的预测,帧内预测器216在操作中基于当前图片中的经解码的参考块来生成对当前块的预测。预测控制器220在操作中沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作(图20,步骤S3001)。边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测(步骤S3002);使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测(步骤S3003);对第一值和第二值进行加权(步骤S3004);使用经加权的第一值和经加权的第二值对第一分区进行解码(步骤S3005)。
[0298] (使用分区参数语法进行熵编码和解码)
[0299] 如在图11中所示,步骤S1005,根据各种实施例,可以使用一个或多个参数来编码或解码被分割成第二分区以及具有非矩形形状的第一分区的图像块,所述一个或多个参数包括指示图像块的非矩形分割的分区参数。在各种实施例中,这样的分区参数可以对例如应用于分割的分割方向(例如,从左上到右下或从右上到左下,见图12),以及在步骤S1002中预测的第一运动矢量和第二运动矢量进行联合编码,如下文将更全面地描述的。
[0300] 图15是采样分区参数(“第一索引值”)以及分别由分区参数联合编码的信息集合的表。分区参数(“第一索引值”)的范围从0到6,并且对以下项进行联合编码:将图像块分割成第一分区和第二分区(它们都是三角形,参见图12)的方向,针对第一分区预测的第一运动矢量(图11,步骤S1002),以及针对第二分区预测第二运动矢量(图11,步骤S1002)。具体而言,分区参数0编码的分割方向是从左上角到右下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。
[0301] 分区参数1进行以下编码:分割方向是从右上角到左下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第一”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第二”运动矢量。分区参数2进行以下编码:分割方向是从右上角到左下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。分区参数3进行以下编码:分割方向是从左上角到右下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第二”运动矢量。分区参数4进行以下编码:分割方向是从右上角到左下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第三”运动矢量。分区参数5进行以下编码:分割方向是从左上角到右下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第三”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。分区参数6进行以下编码:分割方向是从左上角到右下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第四”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。
[0302] 图22是示出了在编码器侧执行的方法4000的流程图。在步骤S4001中,该过程基于指示分割的分区参数,将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区。例如,如上述图15所示,分区参数可以指示分割图像块的方向(例如,从右上角到左下角或从左上角到右下角)。在步骤S4002中,该过程对第一分区和第二分区进行编码。在步骤S4003中,该过程将包括分区参数的一个或多个参数写入比特流,解码器侧可以接收并解码该比特流以获得一个或多个参数从而在解码器侧对第一分区和第二分区执行相同的预测过程(如在编码器侧执行的)。包括分区参数的一个或多个参数可以联合或分别地编码各种信息片段,例如第一分区的非矩形形状,第二分区的形状,用于分割图像块以获得第一分区和第二分区的分割方向、第一分区的第一运动矢量、第二分区的第二运动矢量等。
[0303] 图23是示出了在解码器侧执行的方法5000的流程图。在步骤S5001中,该过程从比特流中解析一个或多个参数,其中,所述一个或多个参数包括指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区。包括从比特流中解析出的分区参数在内的一个或多个参数可以联合或分别地对解码器侧执行与在编码器侧执行的相同的预测处理所需的各种信息片段进行编码,所述信息片段例如第一分区的非矩形形状、第二分区的形状、用于分割图像块以获得第一分区和第二分区的分割方向、第一分区的第一运动矢量、第二分区的第二运动矢量等。在步骤S5002中,过程5000基于从比特流中解析出的分区参数,将图像块分割成多个分区。在步骤S5003中,该过程对从图像块分割出的第一分区和第二分区进行解码。
[0304] 图24是采样分区参数(“第一索引值”)和分别由分区参数联合编码的信息集的表,其本质上类似于上述图15中的采样表。在图24中,分区参数(“第一索引值”)的范围为0到6,并且对以下项进行联合编码:从图像块分割出的第一和第二分区的形状,将图像块分割成第一和第二分区的方向,针对第一分区预测的第一运动矢量(图11,步骤S1002),以及针对第二分区预测的第二运动矢量(图11,步骤S1002)。具体地,分区参数0进行以下编码:第一分区和第二分区都不具有三角形形状,并且因此,分割方向信息为“N/A”,第一运动矢量信息为“N/A”,并且第二运动矢量信息为“N/A”。
[0305] 分区参数1进行以下编码:第一分区和第二分区是三角形,分割方向是从左上角到右下角,第一运动矢量是第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。分区参数2进行以下编码:第一分区和第二分区是三角形,分割方向是从右上角到左下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第一”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第二”运动矢量。分区参数3进行以下编码:第一分区和第二分区是三角形,分割方向是从右上角到左下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。分区参数4进行以下编码:第一分区和第二分区是三角形,分割方向是从左上角到右下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第二”运动矢量。分区参数5进行以下编码:第一分区和第二分区是三角形,分割方向是从右上角到左下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第三”运动矢量。分区参数6进行以下编码:第一分区和第二分区是三角形,分割方向是从左上角到右下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第三”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。
[0306] 根据一些实现,可以根据二进制化方案对分区参数(索引值)进行二进制化,该二进制化方案是根据至少一个或一个或多个参数的值来选择的。图16示出了对索引值(分区参数值)进行二进制化的示例二进制化方案。
[0307] 图25是第一参数和第二参数的采样组合的表,其中,一个参数是指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区。在该示例中,分区参数可以用于指示图像块的分割而无需对由一个或多个其他参数编码的其他信息进行联合编码。
[0308] 在图25的第一示例中,第一参数用于指示图像块大小,并且第二参数用作分区参数(标志),以指示从图像块分割的多个分区中的至少一个具有三角形形状。第一参数和第二参数的这样的组合可用于指示,例如,1)当图像块大小大于64×64时,没有三角形分区,或者2)当图像块的宽高比大于4(例如64×4)时,没有三角形分区。
[0309] 在图25的第二示例中,第一参数用于指示预测模式,并且第二参数用作分区参数(标志),其用于指示从图像块分割的多个分区中的至少一个具有三角形形状。第一参数和第二参数的这样的组合可以用于指示例如:1)当以帧内模式对图像块编码时,不存在三角形分区。
[0310] 在图25的第三示例中,第一参数用作分区参数(标志),其用于指示从图像块分割的多个分区中的至少一个具有三角形形状,并且第二参数用于指示预测模式。第一参数和第二参数的这样的组合可以用于指示例如:1)当从图像块分割的多个分区中的至少一个具有三角形形状时,必须对图像块进行帧间编码。
[0311] 在图25的第四示例中,第一参数指示相邻块的运动矢量,并且第二参数用作指示将图像块分割成两个三角形的方向的分区参数。第一参数和第二参数的这样的组合可以用于指示例如:1)当相邻块的运动矢量是对角线方向时,将图像块分割成两个三角形的方向是从左上角到右下角。
[0312] 在图25的第五示例中,第一参数指示相邻块的帧内预测方向,并且第二参数用作指示将图像块分割成两个三角形的方向的分区参数。第一参数和第二参数的这样的组合可以用于指示例如:1)当相邻块的帧内预测方向是反对角线方向时,将图像块分割成两个三角形的方向是从右上角到左下角。
[0313] 应当理解的是,如图15、24和25中所示,包括分区参数以及哪些信息被联合或单独编码在内的一个或多个参数的表仅进是作为示例呈现的,并且作为上述分区语法操作的一部分对各种信息进行联合或单独编码的多种其他方式也在本公开的范围内。例如,分区参数可以指示第一分区是三角形、梯形或具有至少五个边和角的多边形。分区参数可以指示第二分区具有非矩形的形状,例如三角形、梯形、和具有至少五个边和角的多边形。分区参数可以指示关于分割的一个或多个信息,例如第一分区的非矩形形状,第二分区的形状(可以是非矩形或矩形),应用于将图像块分割成多个分区的分割方向(例如,从图像块的左上角到其右下角,以及从图像块的右上角到其左下角)。分区参数可以联合编码其他信息,例如第一分区的第一运动矢量,第二分区的第二运动矢量,图像块大小,预测模式,相邻块的运动矢量,相邻块的帧内预测方向等。可替代地,进一步的信息中的任何信息可以由除分区参数以外的一个或多个参数分别地编码。
[0314] 类似于图22的过程4000,分区语法操作可以由例如图1所示的图像编码器执行,所述图像编码器包括电路和耦合至该电路的存储器。所述电路在操作中执行分区语法操作,所述分区语法操作包括:基于指示所述分割的分区参数,将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区(图22,步骤S4001);编码第一分区和第二分区(S4002);将包括分区参数的一个或多个参数写入比特流中(S4003)。
[0315] 根据另一个实施例,如图1所示,提供了一种图像编码器,包括:分割器102,其在操作中接收原始图片并将其分割成块;加法器104,其在操作中,接收来自分割器的块和来自预测控制器128的预测,并从其对应的块中减去每个预测以输出残差;变换器106,其在操作中对从加法器104输出的残差执行变换以输出变换系数;量化器108,其在操作中对变换系数进行量化以生成经量化的变换系数;熵编码器110,其在操作中对经量化的变换系数进行编码以生成比特流;以及耦合至帧间预测器126、帧内预测器124和存储器118、122的预测控制器128,其中,帧间预测器126在操作中基于经编码的参考图片中的参考块来生成对当前块的预测,帧内预测器124在操作中基于当前图片中的经编码的参考块来生成对当前块的预测。预测控制器128在操作中基于指示分割的分区参数将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区(图22,步骤S4001),并且对第一分区和第二分区进行编码(步骤S4002)。熵编码器110在操作中将包括分区参数的一个或多个参数写入比特流中(步骤S4003)。
[0316] 根据另一实施例,提供了一种图像解码器,例如如图10所示,图像解码器包括电路以及与该电路耦合的存储器。所述电路在操作中执行分区语法操作,所述分区语法操作包括:解析来自比特流的一个或多个参数,其中,所述一个或多个参数包括指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区(图23,步骤S5001);基于分区参数将图像块分割成多个分区(S5002);解码第一分区和第二分区(S5003)。
[0317] 根据另外的实施例,提供了如图10中所示的图像解码器,包括:熵解码器202,其在操作中接收并解码经编码的比特流以获得经量化的变换系数;逆量化器204和变换器206,其在操作中对经量化的变换系数进行逆量化以获得变换系数,并且对变换系数进行逆变换以获得残差;加法器208,其在操作中将从逆量化器204和变换器206输出的残差与从预测控制器220输出的预测相加以重构块;以及耦合至帧间预测器218、帧内预测器216和存储器210、214的预测控制器220,其中,帧间预测器218在操作中基于经解码的参考图片中的参考块来生成对当前块的预测,帧内预测器216在操作中基于当前图片中的经解码的参考块来生成对当前块的预测。熵解码器202在操作中:从比特流解析一个或多个参数,其中,所述一个或多个参数包括指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区(图23,步骤S5001);基于分区参数将图像块分割成多个分区(S5002);在一些实现中,与预测控制器220协作地对第一分区和第二分区进行解码(S5003)。
[0318] (实现与应用)
[0319] 如以上每个实施例中所述,每个功能或操作块通常可以被实现为例如MPU(微处理单元)和存储器。此外,由所述功能块中的每个功能块执行的过程可以被实现为程序执行单元,例如读取并执行记录在诸如ROM之类的记录介质上的软件(程序)的处理器。该软件可以是分布式的。该软件可以被记录在诸如半导体存储器之类的各种记录介质上。注意,每个功能块也可以被实现为硬件(专用电路)。
[0320] 每个实施例中描述的处理可以通过使用单个装置(系统)的集成处理来实现,或者,可以通过使用多个装置的去中心化处理来实现。此外,执行上述程序的处理器可以是单个处理器或多个处理器。换句话说,可以执行集成处理,或者可以执行去中心化处理。
[0321] 本公开的实施例不限于以上示例性实施例;可以对示例性实施例进行各种修改,其结果也被包括在本公开的实施例的范围内。
[0322] 接下来,将描述在以上每个实施例中描述的运动图片编码方法(图像编码方法)和运动图片解码方法(图像解码方法)的应用示例,以及实现实施应用示例的各种系统。这样的系统的特征可以在于包括采用图像编码方法的图像编码器、采用图像解码方法的图像解码器,或者包括图像编码器和图像解码器的图像编码器-解码器两者。这样的系统的其他配置可以根据具体情况被修改。
[0323] (用法示例)
[0324] 图26示出了适于实现内容分配服务的内容提供系统ex100的整体配置。提供通信服务的区域被分割成期望大小的小区,并且在所示示例中是固定无线站的基站ex106,ex107,ex108,ex109和ex110位于各个小区中。
[0325] 在内容提供系统ex100中,包括计算机ex111、游戏设备ex112、相机ex113、家用电器ex114、和智能手机ex115的设备经由互联网服务提供商ex102或通信网络ex104以及基站ex106至ex110连接至互联网ex101。内容提供系统ex100可以组合并连接上述设备的任何组合。在各种实现中,设备可以经由电话网络或近场通信而不是经由基站ex106至ex110直接或间接地连接在一起。此外,流媒体服务器ex103可以经由例如互联网ex101连接到包括计算机ex111、游戏设备ex112、相机ex113、家用电器ex114、和智能手机ex115在内的设备。流媒体服务器ex103也可以经由卫星ex116连接到例如飞机ex117中的热点中的终端。
[0326] 注意,可以使用无线接入点或热点来代替基站ex106到ex110。流媒体服务器ex103可以直接连接到通信网络ex104,而不是通过互联网ex101或互联网服务提供商ex102,并且可以直接连接到飞机ex117,而不是通过卫星ex116。
[0327] 相机ex113是一种能够捕获静止图像和视频的设备,例如数码相机。智能手机ex115是可以在2G、3G、3.9G和4G系统以及下一代5G系统的移动通信系统标准下运行的智能手机设备、蜂窝电话、或个人手持电话系统(PHS)电话。
[0328] 家用电器ex114例如是箱或包括在家庭燃料电池热电联产系统中的设备。
[0329] 在内容提供系统ex100中,包括图像和/或视频捕获功能的终端能够例如通过经由例如基站ex106连接到流媒体服务器ex103而进行实时流式传输。当进行实时流式传输时,终端(例如,计算机ex111、游戏设备ex112、相机ex113、家用电器ex114、智能手机ex115、或飞机ex117)可以对由用户经由终端捕获的静止图像或视频内容执行上述实施例中所述的编码处理,可以复用经由编码获得的视频数据和通过编码与视频相对应的音频而获得的音频数据,并且可以将获得的数据发送到流媒体服务器ex103。换句话说,终端用作根据本公开的一个方面的图像编码器。
[0330] 流媒体服务器ex103将发送的内容数据流式传输至请求该流的客户端。客户端示例包括计算机ex111、游戏设备ex112、相机ex113、家用电器ex114、智能手机ex115、和飞机ex117内的终端,它们能够解码上述经编码的数据。接收流式传输的数据的设备将解码并再现所接收的数据。换句话说,所述设备中的每个设备可以充当根据本公开的一个方面的图像解码器。
[0331] (去中心化处理)
[0332] 流媒体服务器ex103可以被实现为在其之间划分诸如数据的处理、记录和流式传输的任务的多个服务器或计算机。例如,流媒体服务器ex103可以被实现为内容传递网络(CDN),该CDN经由连接位于世界各地的多个边缘服务器的网络来流式传输内容。在CDN中,将物理上靠近客户端的边缘服务器动态分配给客户端。内容被缓存并流式传输到边缘服务器以减少加载时间。例如,在由于流量高峰而出现某种类型的错误或连接性改变的事件中,可以稳定地高速流式传输数据,这是因为可以通过以下方式避免网络的受影响部分:例如,在多个边缘服务器之间划分处理,或将流式传输职责切换到不同的边缘服务器并且继续流式传输。
[0333] 去中心化不仅限于划分处理以用于流式传输;对所捕获的数据的编码可以在服务器侧的终端之间分配,或者由终端执行,或两者兼有。在一个示例中,在典型编码中,该处理在两个循环中执行。第一循环用于在逐帧或逐场景的基础上检测图像的复杂程度,或检测编码负荷。第二循环用于保持图像质量和改进编码效率的处理。例如,有可能通过以下操作来降低终端的处理负责并且改进内容的质量和编码效率:使得终端执行编码的第一循环,以及使得接收该内容的服务器方执行编码的第二循环。在这样的情况下,在接收到解码请求时,有可能将由于在一个终端上执行的第一循环所产生的经编码的数据近似实时地在另一终端上被接收和再现。这样就有可能实现流畅、实时的流式传输。
[0334] 在另一个示例中,相机ex113等从图像中提取特征量,将与该特征量有关的数据压缩为元数据,并且将经压缩的元数据发送至服务器。例如,服务器基于特征量确定对象的重要性,并且相应地改变量化精度以执行适合于图像的含义(或内容重要性)的压缩。特征量数据在改进服务器执行的第二压缩次期间的运动矢量预测的精度和效率方面特别有效。此外,终端可以处理诸如可变长度编码(VLC)之类的具有相对较低处理负荷的编码,并且诸如上下文自适应二进制算术编码(CABAC)之类的具有相对较高处理负荷的编码可以由服务器处理。
[0335] 在又一示例中,存在其中例如在体育场、购物中心、或工厂中的多个终端捕获近似相同场景的多个视频的情况。在这样的情况下,例如,可以通过在每单位基础上在捕获视频的多个终端以及如果需要的话在未捕获视频的其他终端与服务器之间划分处理任务来去中心化编码。单位可以是例如图片组(GOP)、图片、或划分图片后得到的图块。这样可以减少加载时间并实现更接近实时的流式传输。
[0336] 由于视频具有大致相同的场景,因此服务器可以实行管理和/或指示,以使得可以交叉引用终端所捕获的视频。此外,服务器可以从终端接收经编码的数据,改变数据项之间的参考关系,或者自身校正或替换图片,并且接着执行编码。这使得可以为个体的数据项生成具有提高的质量和效率的流。
[0337] 此外,服务器可以在执行代码转换以转换视频数据的编码格式之后流式传输视频数据。例如,服务器可以将编码格式从MPEG转换为VP(例如,VP9),并且可以将H.264转换为H.265。
[0338] 以该方式,可以由终端或一个或多个服务器来执行编码。因此,尽管在下文的描述中将执行编码的设备称为“服务器”或“终端”,但是由服务器执行的一些或全部过程可以由终端执行,并且同样,由终端执行的处理可以由服务器执行。这也适用于解码过程。
[0339] (3D,多角度)
[0340] 通过多个终端(例如,相机ex113和/或智能手机ex115),从同时捕获的不同场景的图像或视频或从不同角度捕获的同一场景的图像或视频组合的图像或视频的使用已经增加。基于例如在终端之间单独获得的相对位置关系或视频中具有匹配特征点的区域来组合由终端捕获的视频。
[0341] 除了对二维运动图片进行编码之外,服务器还可以基于运动图片的场景分析,自动或在用户指定的时间点对静止图像进行编码,并将经编码的静止图像发送至接收终端。此外,当服务器能够获得视频捕获终端之间的相对位置关系时,除了二维运动图片之外,服务器还可以基于从不同角度捕获的同一场景的视频来生成场景的三维几何形状。服务器可以分别对从例如点生成的三维数据进行编码,并且基于使用三维数据识别或跟踪人或物体的结果,服务器可以从多个终端捕获的视频中选择或重构并生成要发送至接收终端的视频。
[0342] 这允许用户通过自由地选择与视频捕获终端相对应的视频来享受场景,并且允许用户享受通过从由多个图像或视频重构的三维数据中在选定的视点提取视频而获得的内容。此外,与视频一样,可以从相对不同的角度记录声音,并且服务器可以将特定角度或空间的音频与对应的视频进行复用,并且发送经复用的视频和音频。
[0343] 近年来,诸如虚拟现实(VR)和增强现实(AR)内容之类的由现实世界和虚拟世界组成的内容也变得很流行。在VR图像的情况下,服务器可以从左眼和右眼两者的视点创建图像,并且执行容许在两个视点图像之间进行参考的编码,例如多视图编码(MVC),或者,可以将图像编码为单独的流而不进行参考。当将图像被解码为单独的流时,可以在再现时将所述流同步,以便根据用户的视点来重新创建虚拟三维空间。
[0344] 在AR图像的情况下,服务器基于从用户的角度来看的三维位置或运动,将存在于虚拟空间中的虚拟对象信息叠加到表示真实空间的相机信息上。解码器可以获取或存储虚拟对象信息和三维数据,基于从用户角度的运动来生成二维图像,并且接着通过无缝地连接图像来生成叠加的数据。可替代地,除了对虚拟对象信息的请求之外,解码器还可以向服务器发送从用户角度的运动。服务器可以根据接收到的运动,基于存储在服务器中的三维数据来生成叠加的数据,并且将生成的叠加的数据编码并将其流式传输至解码器。注意,叠加的数据除了RGB值之外还包括表示透明度的α值,并且服务器将除了从三维数据生成的对象以外的部分的α值设置为例如0,并且可以在这些部分是透明同时进行编码。可替代地,服务器可以将背景设置为预先确定的RGB值(例如,色度键),并且生成将对象以外的区域设置为背景的数据。
[0345] 对类似地流式传输的数据的解码可以由客户端(即,终端)在服务器侧执行,或者在它们之间划分。在一个示例中,一个终端可以将接收请求发送至服务器,所请求的内容可以被另一终端接收和解码,并且经解码的信号可以被发送至具有显示器的设备。无论通信终端自身的处理能如何,都可以通过去中心化处理以及适当地选择内容来再现高图像质量数据。在又一示例中,例如,当TV正在接收大尺寸的图像数据时,可以对诸如通过划分图片而获得的图块之类的图片的区域进行解码,并将其显示在个人终端上或TV的一个或多个观看者的终端上。这使得观看者可以共享大图片视图,并且每个观看者都可以检查其分配的区域,或者更近距离地检视区域。
[0346] 在室内,室外,近距离,中距离和远距离都可以进行多个无线连接的情况下,可以使用诸如MPEG-DASH之类的流式传输系统标准无缝地接收内容。用户可以在数据之间实时切换,同时自由地选择包括用户终端的解码器或显示装置,布置在室内或室外的显示器等。此外,使用例如关于用户位置的信息,可以在切换哪个终端处理解码,哪个终端处理对内容的显示的同时进行解码。当用户在前往目的地的途中时,这使得有可能在嵌入了能够显示内容的设备的附近建筑物墙壁上或在地面的一部分上绘制和显示信息。此外,还可以基于对网络上的经编码的数据的可访问性来切换接收到的数据的比特率,例如何时将经编码的数据缓存在可从接收终端快速访问的服务器上,或者何时将经编码的数据复制到内容传递服务中的边缘服务器。
[0347] (可伸缩编码)
[0348] 将参考在图27中所示的可伸缩流来描述内容的切换,其是通过上述实施例中描述的运动图片编码方法的实现而被压缩编码的。服务器可以具有这样的配置,其中,在利用流的时间和/或空间可伸缩性的同时切换内容,这是通过对层进行划分和编码来实现的,如图27所示。请注意,可以存在多个内容相同但质量不同的个体的流。换句话说,通过基于诸如解码器侧的处理能力之类的内部因素和诸如通信带宽之类的外部因素确定要解码的层,解码器侧可以在解码的同时在低分辨率内容和高分辨率内容之间自由地切换。例如,在用户想要例如在家中使用诸如连接到互联网的电视之类的设备继续观看该用户在移动时先前在智能手机ex115上观看过的视频的情况下,该设备可以简单地将同一流向上解码到不同的层,这降低了服务器侧的负荷。
[0349] 此外,除了上述配置(其中,由于按层对图片进行编码而实现了可伸缩性),以及增强层位于基础层之上以外,增强层还可以包括基于例如关于图像的统计信息的元数据。解码器侧可以通过基于元数据对基础层中的图片执行超分辨率成像来生成高图像质量的内容。超分辨率成像可以在保持分辨率和/或提高分辨率的同时提高信噪比。元数据包括用于标识在超分辨率处理中使用的线性或非线性滤波器系数的信息,或者用于标识在超分辨率处理中使用的滤波处理、机器学习、或最小二乘法的参数值的信息。
[0350] 可替代地,可以提供这样一种配置,其中,根据例如图像中的对象的含义将图片划分成例如图块。在解码器侧,通过选择要解码的图块仅解码了部分区域。此外,通过将对象(人、汽车、球等)的属性和对象在视频中的位置(同一图像中的坐标)存储为元数据,解码器侧可以基于元数据来识别期望的对象的位置,并且确定哪个或哪些图块包含该对象。例如,如图28所示,可以使用不同于像素数据的数据存储结构来存储元数据,例如HEVC中的SEI(补充增强信息)消息。该元数据指示例如主要对象的位置、大小、或颜色。
[0351] 元数据可以以多个图片为单位被存储,例如流、序列、或随机访问单位。解码器侧可以获得例如特定人出现在视频中的时间,并且通过将时间信息与图片单位信息进行拟合,可以识别其中存在对象的图片,并且可以确定对象在图片中的位置。
[0352] (网页优化)
[0353] 图29示出了例如计算机ex111上的网页的显示屏幕的示例。图30示出例如了智能手机ex115上的网页的显示屏幕的示例。如图29和图30中所示,网页可以包括作为去往图像内容的链接的多个图像链接,并且网页的外观根据用于查看网页的设备而不同。当在屏幕上可以看到多个图像链接时,直到用户明确选择图像链接,或者直到图像链接位于屏幕的大致中心,或者直到整个图像链接都适合屏幕为止,显示装置(解码器)可以显示内容或I图片中包括的静止图像作为图像链接;可以使用多个静止图像或I图片来显示诸如动画gif之类的视频;或者可以仅接收基础层,并且解码并显示视频。
[0354] 当用户选择图像链接时,显示装置在将最高优先级给予基础层的同时执行解码。注意,如果网页的HTML代码中存在指示内容是可缩放的信息,则显示装置可以解码上至增强层。此外,为了保证实时再现,在进行选择之前或当带宽受到严格限制时,显示装置可以通过仅解码和显示前向参考图片(I图片、P图片、前向参考B图片)来减小在对前导图片进行解码的时间点与在显示经解码的图片的时间点之间的延迟(即,对内容解码开始到对内容显示之间的延迟)。另外,显示装置可以有意地忽略图片之间的参考关系,并且将所有B和P图片粗略地解码为前向参考图片,并且接着随着在一段时间内接收的图片数量的增加而执行常规解码。
[0355] (自动驾驶)
[0356] 当发送和接收静止图像或视频数据(例如,用于自动驾驶或辅助驾驶汽车的二维或三维地图信息)时,接收终端除了可以接收属于一层或多层的图像数据以外,还可以接收有关例如,天气或道路建设的信息作为元数据,并且在解码时将所述元数据与图像数据相关联。注意,元数据可以按层分配,并且可替代地可以仅是与图像数据复用。
[0357] 在这样的情况下,由于包含接收终端的汽车、无人机、飞机等是可移动的,因此接收终端可以通过发送表示接收终端位置的信息来无缝地接收并执行解码,同时在基站ex106至ex110中的基站之间进行切换。此外,根据用户的选择、用户的状况、和/或连接的带宽,接收终端可以动态地选择接收元数据的程度或者更新例如地图信息的程度。
[0358] 在内容提供系统ex100中,客户端可以实时接收、解码、和再现由用户发送的经编码的信息。
[0359] (流式传输个体内容)
[0360] 在内容提供系统ex100中,除了高图像质量之外,由视频分发实体分发的长内容、低图像质量的单播或多播流、以及来自个体的短内容也是可能的。来自个体的此类内容的流行度很可能进一步增加。服务器可以首先在编码处理之前对内容执行编辑处理,以便细化个体内容。例如,这可以使用以下配置来实现。
[0361] 在实时捕获视频或图像内容时,或者在捕获和累积了内容后,服务器会基于原始数据或经编码的数据执行识别处理,例如捕获错误处理,场景搜索处理,含义分析,和/或对象检测处理。接着,基于识别处理的结果,服务器在被提示时或自动地编辑内容,其示例包括:例如对焦和/或运动模糊校正之类的校正;移除低优先级的场景,例如与其他图片相比亮度较低的场景,或者跑焦的场景;对象边缘调整;以及色调调整。服务器基于编辑的结果来对经编辑的数据进行编码。众所周知,视频过长会导致观看次数减少。由此,为了将内容保持在与原始视频的长度想当的具体长度内,除了上述的低优先级场景之外,服务器还可以基于图像处理结果来自动裁剪掉具有低运动的场景。可替代地,服务器可以基于对场景的含义的分析结果来生成并编码视频摘要
[0362] 在某些情况下,个体内容可能包括侵犯版权、精神权利、肖像权等的内容。这样的实例可能会给创作者带来不利的处境,例如在创作者打算超出的范围内共享内容时。由此,在编码之前,服务器可以例如编辑图像以便使得屏幕外围的人脸模糊或使得房屋的内部模糊。此外,服务器可以被配置为在要编码的图像中识别除了经注册的人之外的人的面部,并且当这样的面部出现在图像中时,可以将赛克滤波器应用于例如该人的面部。可替代地,作为用于编码的预处理或后处理,用户可以出于版权原因而指定包括人或待处理背景的区域的图像区域。服务器可以通过例如用不同的图像替换该区域或使该区域模糊来处理指定的区域。如果该区域包括人,则可以在运动图片中跟踪该人,并且可以随着该人的移动用另一图像替换该人的头部区域。
[0363] 由于需要实时观看个体产生的、倾向于较小数据大小的内容,因此解码器首先接收基础层作为最高优先级,并且执行解码和再现,但这可能会根据带宽而有所不同。当内容被再现两次或更多次时,例如当解码器在基础层的解码和再现期间接收到增强层并且循环该再现时,解码器可以再现包括增强层的高图像质量的视频。如果使用这样的可伸缩编码对流进行编码,则视频可能在处于未选择状态时或在视频开始时质量较低,但是其可以提供流的图像质量以智能方式逐渐提高的体验。这不仅限于可伸缩编码;可以通过从第一次再现的低质量流和使用该第一流作为参考编码的第二流来配置单个流,从而提供相同的体验。
[0364] (其他实现和应用示例)
[0365] 编码和解码可以由通常包括在每个终端中的LSI(大规模集成电路)ex500(参见图26)执行。LSI ex500可以由单个芯片或多个芯片配置。可以将用于对运动图片进行编码和解码的软件集成到某种类型的记录介质(例如,CD-ROM、软盘、或硬盘)中,例如,计算机ex111可以读取该记录介质,进行编码和解码可以使用该软件执行。此外,当智能手机ex115装备有相机时,由该相机所获取的视频数据可以被传输。在该情况下,视频数据由在智能手机ex115中包括的LSI ex500编码。
[0366] 注意,LSI ex500可以被配置为下载并激活应用。在这样的情况下,终端首先确定其是否与用于编码内容的方案兼容,或者是否能够执行特定服务。当终端与内容的编码方案不兼容时,或者当终端不能够执行特定服务时,终端首先下载编解码器或应用软件,并且接着获取并再现内容。
[0367] 除了使用互联网ex101的内容提供系统ex100的示例之外,至少在上述实施例中描述的运动图片编码器(图像编码器)或运动图片解码器(图像解码器)可以在数字广播系统中被实现。可以将相同的编码处理和解码处理应用于例如使用卫星来发送和接收与复用的音频和视频数据叠加的广播无线电波,即使这是针对多播的,而对于内容提供系统ex100而言,单播是更容易的。
[0368] (硬件配置)
[0369] 图31示出了图26中所示的智能手机ex115的更多细节。图32示出了智能手机ex115的配置示例。智能手机ex115包括用于向基站ex110发送无线电波以及从基站ex110接收无线电波的天线ex450,能够捕获视频和静止图像的相机ex465,以及用于显示经解码的数据的显示器ex458,所述经解码的数据例如相机ex465捕获的视频和天线ex450接收的视频。智能手机ex115还包括诸如触摸面板之类的用户界面ex466,例如用于输出语音或其他音频的扬声器之类的音频输出单元ex457,诸如用于音频输入的麦克之类的音频输入单元ex456,能够存储诸如所捕获的视频或静止图像、录制的音频、接收到的视频或静止图像、邮件以及经解码的数据之类的解码数据的存储器ex467,还有槽ex464,其是SIM ex468的接口,用于授权访问网络和各种数据。注意,可以使用外部存储器以代替ex467。
[0370] 可全面控制显示器ex458和用户界面ex466的主控制器ex460、电源电路ex461、用户界面输入控制器ex462、视频信号处理器ex455、相机界面ex463、显示控制器ex459、调制器/解调器ex452、复用器/解复用器ex453、音频信号处理器ex454、插槽ex464和存储器ex467通过总线ex470连接。
[0371] 当用户打开电源电路ex461的电源按钮时,智能手机ex115通电进入可操作状态,并且从电池组为每个组件供电。
[0372] 智能电话ex115基于由包括CPU、ROM和RAM的主控制器ex460执行的控制来执行例如呼叫和数据传输的处理。当进行呼叫时,由音频输入单元ex456记录的音频信号由音频信号处理器ex454转换为数字音频信号,并通过调制器/解调器ex452对该数字音频信号进行扩频处理并进行数模转换,并且通过发射机/接收机ex451进行频率转换处理,所得出的信号经由天线ex450被发送。所接收的数据由调制器/解调器ex452进行放大、频率转换和模数转换、逆扩展频谱处理,由音频信号处理器ex454转换为模拟音频信号,并且接着从音频输出单元ex457输出。在数据传输模式下,例如,基于主体的用户界面ex466的操作,主控制器ex460经由用户界面输入控制器ex462来传输文本、静止图像、或视频数据。执行类似的发送和接收处理。在数据传输模式中,当发送视频、静止图像、或视频和音频时,视频信号处理器ex455经由上述实施例中所述的运动图片编码方法对存储在存储器ex467中的视频信号或从相机ex467输入的视频信号进行压缩编码,并且将经编码的视频数据发送至复用器/解复用器ex453。音频信号处理器ex454在相机ex465正在捕获视频或静止图像的同时,对由音频输入单元ex456记录的音频信号进行编码,并且将经编码的音频数据发送至复用器/解复用器ex453。复用器/解复用器ex453使用预先确定的方案来复用经编码的视频数据和经编码的音频数据,使用调制器/解调器(调制器/解调器电路)ex452和发射机/接收机ex451来对数据进行调制和转换,并且经由天线ex450发送结果。
[0373] 例如,当接收到附加在电子邮件或聊天中的视频或从网页链接的视频时,为了对经由天线ex450接收到的复用数据进行解码,复用器/解复用器ex453对复用数据进行解复用以将复用数据划分成视频数据的比特流和音频数据的比特流,将经编码的视频数据经由同步总线ex470提供给视频信号处理器ex455,并且将经编码的音频数据经由同步总线ex470提供给音频信号处理器ex454。视频信号处理器ex455使用与上述实施例中描述的运动图片编码方法相对应的运动图片解码方法来对视频信号进行解码,并且链接的运动图片文件中包括的视频或静止图像经由显示控制器ex459被显示在显示器ex458上。音频信号处理器ex454对音频信号进行解码,并且从音频输出单元ex457输出音频。由于实时流式传输正变得越来越流行,所以根据用户的环境,在某些情况下音频的再现可能在社会上不合适。由此,作为初始值,优选其中仅再现视频数据即不再现音频信号的配置;仅当接收到输入时(例如,当用户点击视频数据时),才可以同步和再现音频。
[0374] 尽管在上面的示例中使用了智能手机ex115,但是可以想到其他三种实现:既包括编码器又包括解码器的收发机终端;仅包括编码器的发射机终端;仅包括解码器的接收机终端。在数字广播系统的描述中,给出了这样的示例,在该示例中,接收或发送由于视频数据与音频数据被复用而获得的复用数据。然而,复用数据可以是与除音频数据之外的数据(例如,与视频有关的文本数据)复用的视频数据。此外,可以接收或发送视频数据本身而不是经复用的数据。
[0375] 尽管将包括CPU的主控制器ex460描述为控制编码或解码过程,但是各种终端通常包括GPU。由此,可接受这样的配置,其中,经由CPU和GPU共享的存储器或包括被管理以允许CPU和GPU的通用使用的地址的存储器,通过利用GPU的表现能力立即处理大型区域。这样可以缩短编码时间,保持流的实时性,并且降低延迟。特别地,与运动估计、去块滤波、采样自适应偏移(SAO)、以及变换/量化有关的处理可以例如由GPU而不是CPU以图片为单位有效地一次全部实行。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈