首页 / 专利库 / 视听技术与设备 / 视频编码层 / 用于对视频数据进行编码的方法、装置和设备

用于对视频数据进行编码的方法、装置和设备

阅读:62发布:2020-05-12

专利汇可以提供用于对视频数据进行编码的方法、装置和设备专利检索,专利查询,专利分析的服务。并且一种 视频编码 装置包括 存储器 和至少一个处理器,所述至少一个处理器经配置以:基于统计确定度量是否符合条件,其中所述统计与第一视频编码模式检查次序和第二视频编码模式检查次序相关联;响应于确定所述度量符合所述条件,选择第一编码模式检查次序来对所述第一视频数据 块 进行编码;响应于确定不符合所述条件,选择与所述第一编码模式检查次序不同的第二编码模式检查次序来对所述第一视频数据块进行编码;基于所选择的第一或第二编码模式检查次序更新所述统计;且基于所述所更新的统计并且使用所述第一或第二模式检查次序对第二视频数据块进行编码。,下面是用于对视频数据进行编码的方法、装置和设备专利的具体信息内容。

1.一种用于对视频数据进行编码的方法,所述方法包括:
视频编码器确定第一条件是否被满足,所述确定基于统计,
由所述视频编码器执行对所述视频数据的的编码模式检查次序的选择,其中所述视频编码器从第一次序和第二次序中选择对于所述块的编码模式检查次序,其中对所述块的编码模式检查次序的选择取决于所述第一条件是否被满足,其中所述第一次序和所述第二次序是用于检查多个视频编码模式的不同次序,其中所述多个视频编码模式包括第一编码模式和第二编码模式,在所述第一次序中所述第一编码模式在所述第二编码模式之前,在所述第二次序中所述第二编码模式在所述第一编码模式之前;
由所述视频编码器执行选择编码模式的检查过程,其中所述检查过程基于所选择的编码模式检查次序检查所述多个编码模式中的一个或多个编码模式,其中执行所述检查过程包括检查所述多个视频编码模式中的至少一个编码模式,并且基于第二条件被满足而有条件地跳过对所述多个视频编码模式中的一个或多个其他编码模式的检查;
由所述视频编码器对所述块进行编码,其中所述视频编码器在对所述块进行编码时对所述块使用所选择的编码模式检查次序;及
由所述视频编码器基于所述编码模式检查次序的选择来更新所述统计。
2.根据权利要求1所述的方法,其中所述统计包括从所述视频数据的先前编码块确定的统计。
3.根据权利要求1所述的方法,其中所述第一编码模式包括第一预测模式,第二编码模式包括第二预测模式。
4.根据权利要求3所述的方法,其中:
所述第一预测模式是高级运动向量预测AMVP模式,
所述第二预测模式是SKIP模式,及
所述第一次序包括:
在确定使用所述AMVP模式编码所述块的速率-失真RD代价之前确定使用所述SKIP模式编码所述块的RD代价,及
所述第二次序包括:
在有条件地确定使用所述SKIP模式编码所述块的所述RD代价之前确定使用所述AMVP模式编码所述块的所述RD代价。
5.根据权利要求3所述的方法,其中所述第一条件包括所述块是否在图片的时间层内的图片内。
6.根据权利要求1所述的方法,其中所述第一次序包括第一预测单元PU分割大小检查次序,
其中所述第二次序包括第二PU分割大小检查次序,且
其中所述第一PU分割大小检查次序与所述第二PU分割大小检查次序不同。
7.根据权利要求6所述的方法,其中:
所述第一PU分割大小检查次序包括:
在有条件地确定使用N×2N PU大小编码块的速率-失真RD代价之前确定使用2N×N PU大小编码所述块的RD代价,其中N是整数数目个样本,及
所述第二PU分割大小检查次序包括:
在有条件地确定使用所述2N×N PU大小编码所述块的所述RD代价之前确定使用所述N×2N PU大小编码所述块的所述RD代价。
8.根据权利要求6所述的方法,其中所述第一条件包括所述块内预测误差的集中度。
9.根据权利要求1所述的方法,其中所述第一次序包括第一变换单元TU分割大小检查次序,
其中所述第二次序包括第二TU分割大小检查次序,且
其中所述第一TU分割大小检查次序与所述第二TU分割大小检查次序不同。
10.根据权利要求9所述的方法,其中:
所述第一TU分割大小检查次序包括:
在有条件地确定使用4×4TU大小编码所述块的速率-失真RD代价之前确定使用8×8TU大小编码所述块的RD代价,及
所述第二TU分割大小检查次序包括:
在有条件地确定使用所述8×8TU大小编码所述块的所述RD代价之前确定使用所述4×
4TU大小编码所述块的所述RD代价。
11.根据权利要求9所述的方法,其中所述第一条件包括所述块内预测误差的集中度。
12.根据权利要求1所述的方法,
其中所述第一次序包括第一译码单元CU分割大小检查次序,
其中所述第二次序包括第二CU分割大小检查次序,且
其中所述第一CU分割大小检查次序与所述第二CU分割大小检查次序不同。
13.根据权利要求12所述的方法,其中:
所述CU分割大小检查次序包括:
在有条件地确定使用N×N CU大小编码所述块的速率-失真RD代价之前确定使用2N×
2N CU大小编码所述块的RD代价,其中N是样本的整数数目,及
所述第二CU分割大小检查次序包括:
在有条件地确定使用所述2N×2N CU大小编码所述块的所述RD代价之前确定使用所述N×N CU大小编码所述块的所述RD代价。
14.根据权利要求1所述的方法,其中所述第一条件基于一或多个阈值
15.根据权利要求1所述的方法,其中所述块是第一块,所述方法还包括:
由所述视频编码器执行对所述视频数据的第二块的第二编码模式检查次序的选择,其中所述视频编码器从第一次序和第二次序中选择用于所述第二块的第二编码模式检查次序,其中,对所述第二块的所述第二编码模式检查次序的选择取决于基于更新的统计所述第一条件是否被满足;及
由所述视频编码器对所述第二块进行编码,其中所述视频编码器在对所述第二块进行编码时对所述第二块使用所选择的第二编码模式检查次序。
16.一种视频编码装置,其包括:
存储器,其经配置以存储视频数据;及
至少一个处理器,其经配置以:
确定第一条件是否被满足,所述确定基于统计,
执行对所述视频数据的块的编码模式检查次序的选择,其中从第一次序和第二次序中选择对于所述块的编码模式检查次序,其中对所述块的编码模式检查次序的选择取决于所述第一条件是否被满足,其中所述第一次序和所述第二次序是用于检查多个视频编码模式的不同次序,其中所述多个视频编码模式包括第一编码模式和第二编码模式,在所述第一次序中所述第一编码模式在所述第二编码模式之前,在所述第二次序中所述第二编码模式在所述第一编码模式之前;
执行选择编码模式的检查过程,其中,所述检查过程基于所选择的编码模式检查次序检查所述多个编码模式中的一个或多个编码模式,其中执行所述检查过程包括检查所述多个视频编码模式中的至少一个编码模式,并且基于第二条件被满足而有条件地跳过对所述多个视频编码模式中的一个或多个其他编码模式的检查;
对所述块进行编码,在对所述块进行编码时对所述块使用所选择的编码模式检查次序;及
基于所述编码模式检查次序的选择来更新所述统计。
17.根据权利要求16所述的装置,其中所述统计包括从所述视频数据的先前编码块确定的统计。
18.根据权利要求16所述的装置,其中所述第一编码模包括第一预测模式,第二编码模式包括第二预测模式。
19.根据权利要求18所述的装置,其中:
所述第一预测模式是高级运动向量预测AMVP模式,
所述第二预测模式是SKIP模式,及
为了执行所述第一次序,所述至少一个处理器经配置以:
在确定使用所述AMVP模式编码所述块的速率-失真RD代价之前确定使用所述SKIP模式编码所述块的RD代价,及
为了执行所述第二次序,所述至少一个处理器经配置以:
在有条件地确定使用所述SKIP模式编码所述块的所述RD代价之前确定使用所述AMVP模式编码所述块的所述RD代价。
20.根据权利要求18所述的装置,其中所述第一条件包括所述块是否在图片的时间层内的图片内。
21.根据权利要求16所述的装置,其中所述第一次序包括第一预测单元PU分割大小检查次序,
其中所述第二次序包括第二PU分割大小检查次序,且
其中所述第一PU分割大小检查次序与所述第二PU分割大小检查次序不同。
22.根据权利要求21所述的装置,其中:
为了执行所述第一PU分割大小检查次序,所述至少一个处理器经配置以:
在有条件地确定使用N×2N PU大小编码所述块的速率-失真RD代价之前确定使用2N×N PU大小编码所述块的RD代价,其中N是整数数目个样本,且为了执行所述第二PU分割大小检查次序,所述至少一个处理器经配置以:
在有条件地确定使用所述2N×N PU大小编码所述块的所述RD代价之前确定使用所述N×2N PU大小编码所述块的所述RD代价。
23.根据权利要求16所述的装置,其中所述第一次序包括第一变换单元TU分割大小检查次序,
其中所述第二次序包括第二TU分割大小检查次序,且
其中所述第一TU分割大小检查次序与所述第二TU分割大小检查次序不同。
24.根据权利要求23所述的装置,其中:
为了执行所述第一TU分割大小检查次序,所述至少一个处理器经配置以:
在有条件地确定使用4×4TU大小编码所述块的速率-失真RD代价之前确定使用8×8TU大小编码所述块的RD代价,且
为了执行所述第二TU分割大小检查次序,所述至少一个处理器经配置以:
在有条件地确定使用所述8×8TU大小编码所述块的所述RD代价之前确定使用所述4×
4TU大小编码所述块的所述RD代价。
25.根据权利要求16所述的装置,其中所述第一次序包括第一译码单元CU分割大小检查次序,
其中所述第二次序包括第二CU分割大小检查次序,且
其中所述第一CU分割大小检查次序与所述第二CU分割大小检查次序不同。
26.根据权利要求25所述的装置,其中所述第一CU分割大小检查次序使得所述至少一个处理器:
在有条件地确定使用N×N CU大小编码所述块的速率-失真RD代价之前确定使用2N×
2N CU大小编码所述块的RD代价,其中N是整数数目个样本,且
所述第二CU分割大小检查次序使得所述至少一个处理器:
在有条件地确定使用所述2N×2N CU大小编码所述块的所述RD代价之前确定使用所述N×N CU大小编码所述块的所述RD代价。
27.根据权利要求16所述的装置,其中所述块是第一块并且其中所述至少一个处理器经配置以:
执行对所述视频数据的第二块的第二编码模式检查次序的选择,其中从第一次序和第二次序中选择用于所述第二块的第二编码模式检查次序,其中,对所述第二块的所述第二编码模式检查次序的选择取决于基于更新的统计所述第一条件是否被满足;及对所述第二块进行编码,在对所述第二块进行编码时对所述第二块使用所选择的第二编码模式检查次序。
28.一种用于编码视频数据的设备,所述设备进一步包括:
用于确定第一条件是否被满足的装置,所述确定基于统计,
用于执行对所述视频数据的块的编码模式检查次序的选择的装置,其中从第一次序和第二次序中选择对于所述块的编码模式检查次序,其中对所述块的编码模式检查次序的选择取决于所述第一条件是否被满足,其中所述第一次序和所述第二次序是用于检查多个视频编码模式的不同次序,其中所述多个视频编码模式包括第一编码模式和第二编码模式,在所述第一次序中所述第一编码模式在所述第二编码模式之前,在所述第二次序中所述第二编码模式在所述第一编码模式之前;
用于执行选择编码模式的检查过程的装置,其中,所述检查过程基于所选择的编码模式检查次序检查所述多个编码模式中的一个或多个编码模式,其中执行所述检查过程包括检查所述多个视频编码模式中的至少一个编码模式,并且基于第二条件被满足而有条件地跳过对所述多个视频编码模式中的一个或多个其他编码模式的检查;
用于对所述块进行编码的装置,在对所述块进行编码时对所述块使用所选择的编码模式检查次序基于所选择的第一或第二编码模式检查次序更新所述统计;及用于基于所述编码模式检查次序的选择来更新所述统计的装置。
29.根据权利要求28所述的设备,其中所述统计包括从所述视频数据的先前编码块确定的统计。
30.根据权利要求28所述的设备,其中所述第一编码模式包括第一预测模式,第二编码模式包括第二预测模式。
31.根据权利要求28所述的设备,其中所述第一次序包括第一预测单元PU分割大小检查次序,
其中所述第二次序包括第二PU分割大小检查次序,且
其中所述第一PU分割大小检查次序与所述第二PU分割大小检查次序不同。
32.一种非暂时性计算机可读存储媒体,其包含存储在其上的指令,所述指令在执行时使得视频编码装置的至少一个处理器:
确定第一条件是否被满足,所述确定基于统计,
执行对所述视频数据的块的编码模式检查次序的选择,其中从第一次序和第二次序中选择对于所述块的编码模式检查次序,其中对所述块的编码模式检查次序的选择取决于所述第一条件是否被满足,其中所述第一次序和所述第二次序是用于检查多个视频编码模式的不同次序,其中所述多个视频编码模式包括第一编码模式和第二编码模式,在所述第一次序中所述第一编码模式在所述第二编码模式之前,在所述第二次序中所述第二编码模式在所述第一编码模式之前;
执行选择编码模式的检查过程,其中所述检查过程基于所选择的编码模式检查次序检查所述多个编码模式中的一个或多个编码模式,其中执行所述检查过程包括检查所述多个视频编码模式中的至少一个编码模式,并且基于第二条件被满足而有条件地跳过对所述多个视频编码模式中的一个或多个其他编码模式的检查;
对所述块进行编码,在对所述块进行编码时对所述块使用所选择的编码模式检查次序;且
基于所述编码模式检查次序的选择来更新所述统计。

说明书全文

用于对视频数据进行编码的方法、装置和设备

[0001] 本申请案主张于2015年3月6日申请的第62/129,545号美国专利申请案的优先权,所述申请案的全部内容在此以引用的方式并入本文中。

技术领域

[0002] 本公开涉及视频编码

背景技术

[0003] 数字视频能可以并入到广泛的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话(所谓的“智能电话”)、视频电话会议装置、视频流式传输装置及其类似装置。数字视频装置实施视频译码技术,例如由以下定义的标准中所描述的那些技术:MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、高级视频译码(AVC)第10部分、高效视频译码(HEVC)标准和此类标准的扩展,例如可缩放视频译码(SVC)、多视图视频译码(MVC)、可缩放HEVC(SHVC)、多视图HEVC(MV-HEVC)、3D-HEVC和所述HEVC范围扩展。所述HEVC标准还涉及到“ITU-T建议H.265”。所述视频装置可以通过实施此类视频译码技术而更有效地发射、接收、编码、解码和/或存储数字视频信息。
[0004] 视频译码技术包含空间(图片内)预测和/或时间(图片间)预测以减少或去除视频序列中固有的冗余。对基于的视频译码来说,视频切片(例如,视频或视频帧的一部分)可分割成视频块,视频块还可以称作树块、译码树单元(CTU)、译码单元(CU)和/或译码节点。视频块可以包含明度块和色度块。使用相对于同一图片中的相邻块中的参考样本的空间预测对图片的帧内译码(I)切片进行编码。图片的帧间译码(P或B)切片中的视频块可以使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可以被称为帧,且参考图片可以被称为参考帧。
[0005] 空间或时间预测产生待译码块的预测块。残余数据表示待译码原始块与预测块之间的像素差。帧间译码块是根据指向形成预测块的参考样本块的运动向量和指示译码块与预测块之间的差的残余数据而编码的。根据帧内译码模式和残余数据对帧内译码块进行编码。为了进一步压缩,可将残余数据从像素域转换到变换域,从而产生残余变换系数,可接着量化所述残余变换系数。量化的变换系数可以被熵译码以实现甚至更多压缩。发明内容
[0006] 本公开的技术大体上涉及编码视频数据。视频编码器在编码视频期间对图片(还被称作帧)进行编码。视频编码器将图片分割成视频数据块。视频编码器可以确定块分割的大小,以及任何分割应该被进一步分割的次数。分割块的方法被称作分割方案。视频编码器通常可以基于与每一分割方案相关联的速率-失真(RD)代价来分割块,使得所选分割方案产生期望的RD代价。本公开的技术大体上涉及使视频编码器能够确定是使用快速的RD检查还是充分的RD检查来确定视频数据块的分割方案。
[0007] 视频编码器还针对视频数据块选择预测模式。举例来说,可以对块进行帧内预测或帧间预测。一般来说,视频编码器使用模式检查次序来确定对块检查候选预测模式。视频译码器可以基于与候选预测模式相关联的RD代价确定使用哪个视频译码模式来预测块。本公开的技术可以使得视频译码器能够使用自适应模式检查次序针对视频数据块选择预测模式。
[0008] 在本公开的一个实例中,一种编码视频数据的方法包括:基于统计确定度量是否符合条件,其中所述统计与第一视频编码模式检查次序和第二视频编码模式检查次序相关联;响应于确定度量符合条件,选择第一编码模式检查次序来编码第一视频数据块;响应于确定不符合条件,选择与第一编码模式检查次序不同的第二编码模式检查次序来编码第一视频数据块;基于所选的第一或第二编码模式检查次序更新统计;基于所更新的统计且使用第一或第二编码模式检查次序编码第二视频数据块。
[0009] 在另一实例中,视频编码装置包括经配置成存储视频数据的存储器和至少一个处理器,所述处理器经配置以:基于统计确定度量是否符合条件,其中所述统计与第一视频编码模式检查次序和第二视频编码模式检查次序相关联;响应于确定度量符合条件,选择第一编码模式检查次序来编码第一视频数据块;响应于确定不符合条件,选择不同于第一编码模式检查次序的第二编码模式检查次序来编码第一视频数据块;基于所选的第一或第二编码模式检查次序更新统计;且基于所更新的统计和使用第一或第二编码模式检查次序编码第二视频数据块。
[0010] 在另一实例中,一种包括用于编码视频数据的装置的设备进一步包括:用于基于统计确定度量是否符合条件的装置,其中所述统计与第一视频编码模式检查次序和第二视频编码模式检查次序相关联;用于响应于确定度量符合条件,选择第一编码模式检查次序来编码第一视频数据块的装置;用于响应于确定不符合条件,选择与第一编码模式检查次序不同的第二编码模式检查次序来编码第一视频数据块的装置;用于基于所选的第一或第二编码模式检查次序更新统计的装置;且用于基于所更新的统计且使用第一或第二编码模式检查次序编码第二视频数据块的装置。
[0011] 在另一实例中,一种非暂时性计算机可读存储媒体包含存储在其上的指令,所述指令在执行时使得视频编码装置的至少一个处理器:基于统计确定度量是否符合条件,其中所述统计与第一视频编码模式检查次序和不同于第一编码模式检查次序的第二视频编码模式检查次序相关联;响应于确定度量符合条件,选择第一编码模式检查次序来编码第一视频数据块;响应于确定不符合条件,选择不同于第一编码模式检查次序的第二编码模式检查次序来编码所述第一视频数据块;基于所选的第一或第二编码模式检查次序更新统计;且基于所更新的统计且使用第一或第二编码模式检查次序编码第二视频数据块。
[0012] 在附图和以下描述中阐明一或多个实例的细节。其它特征、目标和优点将从所述描述和图式以及权利要求书而显而易见。

附图说明

[0013] 图1是根据本公开的一或多个方面的说明可执行自适应色彩分量间残余预测技术的实例视频编码和解码系统的框图
[0014] 图2是说明被分割成叶状CU的CU的概念图
[0015] 图3A和3B是说明根据各种分割方案分割的实例CU的概念图。
[0016] 图4是说明用于预测单元(PU)的实例大小和分裂的概念图。
[0017] 图5是说明各种实例TU分割方案的概念图。
[0018] 图6是说明根据HEVC标准的实例过程的流程图,视频编码器可通过所述程序基于速率-失真(RD)代价比较选择译码模式。
[0019] 图7A和7B是说明根据HEVC规范的各种方面的实例模式选择技术的流程图。
[0020] 图8是说明可执行根据本公开的一或多个方面的技术的视频编码器的实例的框图。
[0021] 图9是说明根据本公开的一或多个方面的视频编码器可以执行以自适应地选择模式检查次序的实例过程的流程图。
[0022] 图10是说明根据本公开的一或多个方面的视频编码器可以执行以在检查CU大小的两个可能性次序之间进行选择的实例过程的流程图。
[0023] 图11是说明根据本公开的技术的视频编码器可以执行以用于预测模式选择的自适应定序的另一实例过程的流程图。
[0024] 图12是说明根据本公开的方面的用于时间层支持的实例预测结构的概念图。
[0025] 图13A和13B是说明根据本公开的一或多个方面的视频编码器可以用于自适应地确定PU分割方案的用于对应8×8CU的误差分布的概念图。
[0026] 图14是说明根据本公开的方面的视频编码器可以实施以自适应地确定TU分割方案的实例过程的流程图。
[0027] 图15A和15B是说明根据本公开的一或多个方面的视频编码器可以用于自适应地确定TU分割方案的用于对应8×8CU的误差分布的概念图。
[0028] 图16是说明根据本公开的各方面视频编码器可以实施以自适应地确定PU分割方案的实例过程的流程图。
[0029] 图17A至17C是共同说明根据本公开的展示视频编码器可以实施以结合块分割确定执行快速编码确定的实例过程的流图的流程图。
[0030] 图18是说明展示就译码增益来说使用块分割确定的快速编码的性能的实例的曲线的概念图。
[0031] 图19是说明根据控制参数编码的图像与根据本公开的快速编码和分割确定编码的图像之间的图片质量比较的概念图。
[0032] 图20是说明可执行根据本公开的一或多个方面的技术的视频解码器的实例的框图。
[0033] 图21是说明根据本公开的技术用于自适应地确定模式检查次序的过程的流程图。
[0034] 图22是说明根据本公开的技术的用于基于速率-失真代价确定块的分割方案的过程的流程图。

具体实施方式

[0035] 一般来说,本公开的技术涉及用于使得视频编码器能够做出关于视频数据块的视频译码模式和分割大小的决定的技术。本文中所描述的各种实例可以使得视频译码器能够基于视频译码器针对块所确定的统计更快速地确定块的预测模式本文中所描述的实例还可以使视频编码器能够更快速地确定视频数据块的分割方案。可以基于(例如)与候选预测模式相关联的速率-失真等统计确定分割。
[0036] 图1是说明可以利用本公开的技术的实例视频译码系统10的框图。如本文中所使用,术语“视频译码器”一般是指视频编码器和视频解码器两个。在本公开中,术语“视频译码”或“译码”一般可以指视频编码或视频解码。如图1中所示,视频译码系统10包含源装置12和目的地装置14。源装置12产生编码的视频数据。目的地装置14可以对由源装置12产生的编码的视频数据进行解码。因此,目的地装置14可以被称作视频解码装置或视频解码设备。源装置12和目的地装置14可以是视频译码装置或视频译码设备的实例。
[0037] 源装置12和目的地装置14可以包括广泛范围的装置,其包含:台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如所谓的“智能”电话)、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机(in-car computer)或其类似装置。
[0038] 目的地装置14可以通过信道16从源装置12接收编码的视频数据。信道16可包括能够将编码的视频数据从源装置12移动到目的地装置14的一或多个媒体或装置。在一个实例中,信道16可包括使得源装置12能够将编码的视频数据实时地直接发射到目的地装置14的一或多个通信媒体。在这个实例中,源装置12可以根据通信标准(例如无线通信协议)来调制编码的视频数据,并且可以将调制的视频数据发射到目的地装置14。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(RF)频谱或一或多个物理发射线。一或多个通信媒体可以形成例如局域网、广域网或全球网络(例如,因特网)等基于分组网络的部分。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源装置12到目的地装置14通信的其它设备。
[0039] 在另一实例中,信道16可包含存储由源装置12产生的编码视频数据的存储媒体。在这个实例中,目的地装置14可以(例如)通过磁盘存取或插件存取来存取存储媒体。存储媒体可以包含多种本地存取的数据存储媒体,例如蓝光光盘、DVD、CD-ROM、快闪存储器或用于存储编码的视频数据的其它合适数字存储媒体。
[0040] 在另一实例中,信道16可以包含存储由源装置12产生的编码的视频数据的文件服务器或另一中间存储装置。在这个实例中,目的地装置14可以通过流式传输或下载存取存储在文件服务器或其它中间存储装置的编码的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发射到目的地装置14的一种类型的服务器。实例文件服务器包含网页服务器(例如,用于网站)、文件传送协议(FTP)服务器、网络连接存储(NAS)装置和本地磁盘驱动器
[0041] 目的地装置14可以通过例如因特网连接等标准数据连接来存取编码的视频数据。实例类型的数据连接可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或适合于存取存储在文件服务器上的编码视频数据两个的组合。编码视频数据从文件服务器的发射可以是流式传输发射、下载发射或两个的组合。
[0042] 本公开的技术不限于无线应用或设置。所述技术可以应用到视频译码以支持多种多媒体应用,例如,空中电视广播、有线电视发射、卫星电视发射、流式串流视频发射(例如,通过因特网,编码存储在数据存储媒体上的视频数据,解码存储在数据存储媒体上的视频数据)或其它应用。在一些实例中,视频译码系统10可以经配置以支持单向或双向视频发射以支持例如视频流式传输、视频回放、视频广播和/或视频电话等应用。
[0043] 图1中所说明的视频译码系统10仅为实例,并且本公开的技术可适用于在编码与解码装置之间不必包含任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它实例中,数据可从本地存储器检索,经网络流式传输,等等。视频编码装置可以对数据进行编码并且将数据存储到存储器,和/或视频解码装置可以从存储器检索数据并且对数据进行解码。在许多实例中,由彼此并不连通而仅编码数据到存储器和/或检索来自存储器数据且解码数据的装置执行编码和解码。视频编码器20和视频解码器30可以包括经配置成存储视频数据的存储器。视频编码器20可以编码存储在存储器中的视频数据。视频解码器30可以对编码的视频数据进行解码,并将所得视频数据存储在所述存储器中。
[0044] 在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口22。在一些实例中,输出接口22可包含调制器/解调器(调制解调器)和/或发射器。视频源18可以包含视频俘获装置(例如,录像机)、含有先前俘获的视频数据的视频档案库、用以从视频内容提供者接收视频数据的视频馈入接口、和/或用于产生视频数据的计算机图形系统、或此些视频数据源的组合。
[0045] 视频编码器20可对来自视频源18的视频数据进行编码。在一些实例中,源装置12通过输出接口22将编码的视频数据直接发射到目的地装置14。在其它实例中,编码的视频数据也可以存储到存储媒体或文件服务器上以供目的地装置14稍后存取以用于解码和/或回放。
[0046] 在图1的实例中,目的地装置14包含输入接口28、视频解码器30和显示装置32。在一些实例中,输入接口28包含接收器和/或调制解调器。输入接口28可通过信道16接收编码的视频数据。显示装置32可以与目的地装置14集成在一起或可以在目的地装置14的外部。一般来说,显示装置32显示解码的视频数据。显示装置32可以包括多种显示装置,例如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
[0047] 视频编码器20和视频解码器30各自可以被实施为多种合适电路中的任何一个,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程阵列(FPGA)、离散逻辑、硬件或其任何组合。如果所述技术部分以软件实施,那么装置可将软件的指令存储于合适的非暂时性计算机可读存储媒体中,并且可以使用一或多个处理器以硬件执行指令从而执行本公开的技术。可将前述内容中的任一个(包含硬件、软件、硬件与软件的组合等)视为一或多个处理器。视频编码器20和视频解码器30中的每一个可以包含在一或多个编码器或解码器中,所述编码器或解码器中的任一个可被集成为各别装置中的组合式编码器/解码器(编解码器)的部分。
[0048] 本公开大体上可指视频编码器20将某些信息“用信号表示”或“发射”到另一装置,例如视频解码器30。术语“用信号表示”或“发射”大体上可指用以对压缩视频数据进行解码的语法元素和/或其它数据的通信。这种通信可以实时或几乎实时发生。或者,这种通信可以经过一段时间后发生,例如可以发生在当以编码位流将语法元素存储到计算机可读存储媒体时的编码时间处,这种通信随后可以在被存储到这个媒体之后的任何时间利用解码装置检索。
[0049] 在一些实例中,视频编码器20和视频解码器30根据视频压缩标准(例如上文所提及且在HEVC版本1中所描述的HEVC标准)操作,所述视频压缩标准描述于文件ITU-TH.265,丛刊H中:视听和多媒体系统(AUDIOVISUAL AND MULTIMEDIA SYSTEMS),移动视频的视听服务——译码的基础设施,“高效视频译码”,2014年10月。除了HEVC版本1以外,还存在产生HEVC的可缩放视频译码、多视图视频译码、范围扩展、屏幕内容译码(SCC)和3D译码扩展的进行中的努力。
[0050] 在HEVC和其它视频译码标准中,视频序列通常包含一连串图片。图片也可被称作“帧”。图片可包含三个分量样本阵列,表示为SL、SCb及SCr。SL是明度样本的二维阵列(即,块)。SCb是Cb色度样本的二维阵列。SCr是Cr色度样本的二维阵列。色度样本在本文中还可以被称作“色度”样本。这种色彩空间可以被称作“YUV”或“YCbCr”。在其它情况下,图片可以是单色的且可仅包含明度样本阵列。根据HEVC范围扩展,图片可以包括色彩空间和色度子取样,例如YCgCo、YCgCo-R和其组合。
[0051] 为了产生图片的编码的表示,视频编码器20可以产生译码树单元(CTU)集合。CTU中的每一个可以是明度样本的译码树块、色度样本的两个对应译码树块和用于对译码树块的样本进行译码的语法结构。译码树块可为样本的N×N块。CTU也可以被称为“树块”或“最大译码单元(LCU)”。HEVC的CTU可以大致类似于其它标准(例如H.264/AVC)的宏块。然而,CTU不必限于特定大小,并且可以包含一或多个译码单元(CU)。切片可包含光栅扫描中连续定序的整数数目个CTU。
[0052] 为了产生译码的CTU,视频编码器20可以递归方式对CTU的译码树块执行四叉树分割,以将译码树块划分为译码块,因此命名为“译码树单元”。译码块是样本的N×N块。CU可为具有明度样本阵列、Cb样本阵列和Cr样本阵列的图片的明度样本的译码块和色度样本的两个对应译码块,以及用于对译码块的样本进行译码的语法结构。在单色图片或具有三个单独色彩平面的图片中,CU可包括单个译码块和用以对译码块的样本进行译码的语法结构。
[0053] 视频编码器20可将CU的译码块分割成一或多个预测块。预测块可为其上应用相同预测的样本的矩形(即,正方形或非正方形)块。CU的预测单元(PU)可以是图片的明度样本的预测块、色度样本的两个对应预测块和用以对预测块样本进行预测的语法结构。视频编码器20可以产生用于CU的每一PU的明度、Cb和Cr预测块的预测性明度块、Cb块和Cr块。在单色图片或具有三个单独色彩平面的图片中,PU可包括单个预测块和用于对预测块进行预测的语法结构。
[0054] 视频编码器20可以使用帧内预测或帧间预测来产生PU的预测块。如果视频编码器20使用帧内预测来产生PU的预测块,那么视频编码器20可以基于与PU相关联的图片的解码样本来产生PU的预测块。
[0055] 如果视频编码器20使用帧间预测来产生PU的预测块,那么视频编码器20可基于除与PU相关的图片以外的一或多个图片的解码样本产生PU的预测块。视频编码器20可使用单向预测或双向预测来产生PU的预测块。当视频编码器20使用单向预测来产生PU的预测块时,PU可具有单个运动向量(MV)。当视频编码器20使用双向预测来产生PU的预测块时,PU可具有两个MV。
[0056] 视频编码器20为CU的一或多个PU产生预测块(例如,预测明度、Cb和Cr块)之后,视频编码器20可以产生CU的残余块。CU的残余块中的每一样本指示CU的PU的预测块中的样本与CU的译码块中的对应样本之间的差。举例来说,视频编码器20可以产生CU的明度残余块。CU的明度残余块中的每一样本指示CU的PU的预测性明度块中的明度样本与CU的明度译码块中的对应样本之间的差。另外,视频编码器20可以产生CU的Cb残余块。CU的Cb残余块中的每一样本可指示CU的PU的预测Cb块中的Cb样本与CU的Cb译码块中的对应样本之间的差。视频编码器20还可以产生CU的Cr残余块。CU的Cr残余块中的每一样本可指示CU的PU的预测性Cr块中的Cr样本与CU的Cr译码块中的对应样本之间的差。
[0057] 此外,视频编码器20可以使用四叉树分割来将CU的残余块(例如,明度、Cb和Cr残余块)分解成一或多个变换块(例如,明度、Cb和Cr变换块)。变换块可为其上应用相同变换的样本的矩形块。CU的变换单元(TU)可为明度样本的变换块、色度样本的两个对应的变换块和用于对变换块样本进行变换的语法结构。因此,CU的每一TU可以与明度变换块、Cb变换块和Cr变换块相关联。与TU相关联的明度变换块可为CU的明度残余块的子块。Cb变换块可为CU的Cb残余块的子块。Cr变换块可为CU的Cr残余块的子块。在单色图片或具有三个单独色彩平面的图片中,TU可包括单个变换块和用于对变换块的样本进行变换的语法结构。
[0058] 视频编码器20可将一或多个变换应用到TU的变换块从而产生TU的系数块。举例来说,视频编码器20可将一或多个变换应用到TU的明度变换块从而产生TU的明度系数块。视频编码器20可将一或多个变换应用到TU的Cb变换块从而产生TU的Cb系数块。视频编码器20可将一或多个变换应用到TU的Cr变换块从而产生TU的Cr系数块。系数块可为变换系数的二维阵列。变换系数可为标量。本公开通篇使用术语“块”。如本文中所定义,块可指分量的CTU、CU、PU、TU或样本群,例如明度或色度样本群。
[0059] 在产生系数块(例如,明度系数块、Cb系数块或Cr系数块)之后,视频编码器20可以量化系数块。量化通常是指对变换系数进行量化从而可能减少用于表示变换系数的数据量以提供进一步压缩的过程。在视频编码器20量化系数块之后,视频编码器20可对指示量化变换系数的语法元素进行熵编码。举例来说,视频编码器20可对指示量化变换系数的语法元素执行上下文自适应二进制算术译码(CABAC)。视频编码器20可在位流中输出经熵编码语法元素。位流可包括编码的视频数据的表示。
[0060] 视频编码器20可输出包含熵编码语法元素的位流。位流可包含形成译码图片和相关联数据的表示的位序列。位流可包括一系列网络抽象层(NAL)单元。所述NAL单元中的每一个包含NAL单元标头,并且封装原始字节序列有效载荷(RBSP)。NAL单元标头可包含指示NAL单元类型代码的语法元素。由NAL单元的NAL单元标头指定的所述NAL单元类型代码指示NAL单元的类型。RBSP可为含有封装在NAL单元内的整数数目个字节的语法结构。在一些情况下,RBSP包含零个位。
[0061] 不同类型的NAL单元可封装不同类型的RBSP。举例来说,第一种类型的NAL单元可封装图片参数集(PPS)的RBSP,第二种类型的NAL单元可封装译码切片的RBSP,第三种类型的NAL单元可封装用于补充增强信息(SEI)的RBSP,等等。封装视频译码数据的RBSP(与参数集和SEI信息的RBSP相对)的NAL单元可以被称作视频编码层(VCL)NAL单元。
[0062] 在图1的实例中,视频解码器30接收由视频编码器20产生的位流。另外,视频解码器30可以分析位流以从位流获得语法元素。视频解码器30至少部分可以基于从位流获得的语法元素重构视频数据的图片。重构视频数据的过程通常可与由视频编码器20执行的过程互逆。举例来说,视频解码器30可以使用帧内预测或帧间预测来确定当前CU的PU的预测块。另外,视频解码器30可以反量化当前CU的TU的系数块。视频解码器30可对系数块执行反变换以重构当前CU的TU的变换块。通过将当前CU的PU的预测块样本添加到当前CU的TU的变换块的对应样本上,视频解码器30可以重构当前CU的译码块。通过重构图片的每一CU的译码块,视频解码器30可以重构图片。
[0063] 如上文所描述,根据HEVC规范的各方面,视频编码器20可以将图片(在本文中的各种情况下还被称作“帧”)分裂成CTU。特定CTU表示由CU组成的四叉树数据结构的根。依次,每一CU表示视频编码器20可以应用各种译码工具的基本单元。视频编码器可以进一步将CU分裂(即,分割)成子CU。现将更详细地描述将CTUS分割成(例如)CU和子CU的各种实例。
[0064] 图2是说明被分割成叶CU的CU的概念图。在图2的实例中,实例CU 100具有2N×2N维度,其中N为多个样本。如图2所示,视频编码器20可以将CU 100分裂成多达四个叶CU 102A至102D,使得叶CU 102A至102D中的每一个具有N×N的维度。除了图2中所说明的对称的CU结构和分裂(分割)以外,根据HEVC规范可能还有许多其它CU结构。
[0065] 图3A是说明被分割的CTU的概念图。图3A包含CTU 110。在图3A的实例中,实例CTU 110被分割成在CTU 110内指示为最大正方形的四个CU。左上方和右下方的四个最大CU被进一步分裂成四个子CU。在所述左上方CU的右下方子CU内,所述子CU被进一步分割成四个子CU,并且这些子CU的右下方的被再次分割成四个叶CU。所述右下方CU的右下方子CU是使用类似分割方案分割的。
[0066] 图3A的目的是说明视频编码器20可以将CU分裂成各种维度和深度的叶CU。换句话说,如图3A中所展示,视频编码器20可以通过在四叉树结构的不同级处停止分裂过程来将CTU 110分裂成叶CU。在本公开的各种情况下,如图3A中所说明的CTU 110的结构被称作CTU,其包含“多倍分裂”成子CU或叶CU的CU。(直接地或间接地)从另一CU的分裂产生的每一CU被称作来自被分裂CU的子CU。不进一步分裂成子CU的CU被称作叶CU。
[0067] 图3B是说明CTU分割和CTU的对应四叉树表示的概念图。图3B说明实例CTU 111和对应四叉树结构112。在这个实例中,CTU 111可以具有32×32维度。在图3B中,视频编码器20已经确定将CTU 111分裂成8×8与16×16之间不同维度的子CU。视频编码器20和视频解码器30可以使用对应四叉树数据结构112表示CTU 111。在四叉树112中,四叉树的根节点被分裂成四个节点。在这个实例中,四个节点中的每一个对应于32×32CTU分裂成16×16子CU。对应于所述CTU的右上方CU的16×16节点中的一个进一步分裂成四个8×8子CU。
[0068] 关于CTU 111所展示的分割结构可以提高译码效率。举例来说,视频编码器20可以为复杂区域选择较小块大小(例如,8×8子CU),而为有极少或不运动区域或光滑纹理区域选择较大块大小(例如,16×16子CU)。根据HEVC参考软件,视频编码器20可以确定执行速率-失真(RD)优化(即,所述视频图像内容的所需的译码位数目和失真量的优化)的块大小。一般来说,大量的译码位对于带宽效率来说可能是不期望的,然而较大量的失真对于图像质量和观影体验来说可能是不期望的。根据RD优化,视频编码器20可以将可能分割方案的RD代价与彼此比较,并且可以选择具有最低(最小)可用代价的分割方案。
[0069] 当根据HEVC执行RD优化可以提供就译码效率来说最优的分割选择,测试所有可能的分割可以显著地增加译码时间。在实时编码的实际系统中,检查所有可能的分割情况(即,维度和/或深度)可能是费资源和耗时的,并且在一些情境中甚至是不可能的。
[0070] 或者,视频编码器20可以选择不分割CTU。然而,当视频编码器20跳过分割CTU且使用较大块大小来编码特定区域时,可能发生视觉伪影。视觉伪影可能尤其很有可能发生在较大块的区域或对象之间显示不同运动时。在另一方面,尤其在较大块区域显示相对统一运动的情况下,通过译码用于所有分割的运动和预测模式信息使用较小分割可以降低译码效率。因此,对在各种情境中分割块而不彻底地(例如,详尽地)检查可能分割方案的RD代价有利,尤其对主观质量退化更低的那些有利。
[0071] 图4是说明预测单元(PU)的实例大小和分裂的概念图。除了CU分裂产生的子CU以外,CU可以进一步包含PU。如上文所描述,PU可以指示预测信息。每一PU可能分裂(分割)成一或多个块。在图4中借助于PU分割114A至114D的实例说明PU的实例大小和分裂。
[0072] 在图4的实例中,PU 114A包括单个大小2N×2N的块,PU 114B被平地分割成两个大小2N×N的块,PU 114C被垂直地分割成两个大小N×2N的块,且PU 114D被分割成四个大小N×N的块。视频编码器20可以确定预测模式,并且将所确定的预测模式应用到一或多个PU。根据HEVC规范的预测模式实例包含以下各项:帧内模式、跳过模式、合并直接模式或高级运动向量预测(AMVP)模式。
[0073] 视频编码器20可以选择、导出或以其它方式确定关于使用特定预测模式的参数数目。举例来说,视频编码器20可以确定帧内模式译码的PU的预测方向,或可以确定跳过、合并和直接模式译码的PU的合并候选,或可以确定AMVP模式译码的PU的参考帧和/或运动向量,等等。预测之后,视频编码器20可以确定残余系数。视频编码器20可以将CU的残余系数分割成TU,使得视频编码器20可以将变换和/或量化独立地应用到每一TU。
[0074] 图5是说明各种实例TU分割方案的概念图。译码单位可以包含变换树。在图5中所说明的变换树116A至116C是这类变换树的实例。变换树可以包括一或多个TU。TU中的每一个可以包含从离散余弦变换或另一变换产生的残余变换系数数据,以及△量化参数(QP)数据。在图5的实例中,视频编码器20已经确定每一TU的大小。在变换树116A中,TU大小可以是2N×2N样本。变换树116B可以包括四个大小N×N样本的TU,且变换树116C可以包括16个大小N/2×N/2样本的TU。
[0075] 视频编码器20可以实施现有技术来选择或以其它方式确定CTU的最优分割方案、译码模式和/或译码参数。例如,视频编码器20可以确定在一或多个计算复杂度限定情况下提高(或潜在地最大化)译码效率的分割方案和译码模式。为确定分割方案,视频编码器20可以在本文中称作“m1”与“m2”的两个编码模式之间执行一系列的比较。所述模式m1和m2可以是基于(例如)具有两个不同CU大小、两个不同PU分割方案、两个不同TU分割方案、用于PU的两个不同预测模式、用于预测模式的两个不同设置或其任何组合的CTU。
[0076] 图6是说明详尽模式检查过程的流程图。是所述模式选择过程的部分。一般来说,视频编码器20可以确定或粗略估计与两个模式的各别设置相关联的速率-失真(RD)代价。所述两个模式在本文中被称作“m1”和“m2”。模式m1和m2的RD代价在本文中指示为“RDCost(m1)”和“RDCost(m2)”。如图6中所说明,视频编码器20确定代价、RDCost(m1)(122)和RDCost(m2)(124)。视频编码器20随后将相关联的RDCost(M2)与代价RDCost(m1)(126)相比较。
[0077] 视频编码器20可以选择与较小RD代价相关联的编码模式。如果RDCost(M1)不大于RDCost(M2),那么视频编码器20选择模式M1(128)。否则,视频编码器20选择模式M2(130)。过程120表示本文中所描述的详尽模式检查过程。根据详尽模式检查技术(例如过程120),视频编码器20无条件地检查模式m1和m2,或者换句话说,对早已可用编码信息、统计或启发式数据不作任何考虑。
[0078] 图7A和7B分别是说明根据本公开的技术的实例模式检查过程140和160的概念图。过程140和160表示根据所述HEVC规范的各方面的模式选择技术。视频编码器20可以执行过程140或160来实施关于模式检查和选择的“提前终止”。例如,视频编码器20可以基于所满足的特定条件执行过程140或160以针对可行性有条件地跳过检查特定模式。在过程160的实例中,视频编码器20第一次检查与模式m1相关联的RD代价(142)。
[0079] 如果模式m1(在这种情况下,相关联的RD代价)检查到的特征符合或满足某一条件(本文中称为“C1”)(块144的“是”分支),那么视频编码器20选择用于编码相关联块(145)的模式m1。因此,如果视频编码器20确定用于当前块的与模式m1相关联的RD代价符合条件C1,那么随后视频编码器20可以跳过或旁路对用于编码当前块的模式m2的可行性的检查。但是,如果视频编码器20确定用于当前块的模式m1的RD代价不符合条件C1(块144的“否”),那么视频编码器20检查m2的RD代价(146)。在这种情境中,视频编码器20可以将与模式m1相关联的RD代价和与模式m2相关联的RD代价作比较(148)。反过来,视频编码器20可选择与编码当前块的更小RD代价相关联的模式(150或152)。
[0080] 图7B的过程160表示图7A中所说明的过程140的逆转。例如,视频编码器20可以执行过程160来第一次检查与模式m2相关联的RD代价(162)。如果模式m2(在这种情况下,相关联的RD代价)的检查到的特征符合或满足某一条件(本文中称为“C2”)(164的“是”分支),那么视频编码器20选择模式m2用于编码相关联块(166)。因此,如果视频编码器20确定用于当前块的与模式m2相关联的RD代价符合条件C2(164的“是”分支),那么视频编码器20可以跳过或旁路对用于编码当前块模式m1的可行性的检查,并且选择模式m2(166)。但是,如果视频编码器20确定用于当前块的模式m2的RD代价不符合条件C2(164的“否”块),那么视频编码器20检查m1的RD代价(168)。在这种情境中,视频编码器20可以将与模式m2相关联的RD代价和与模式m1相关联的RD代价作比较(170)。反过来,视频编码器20可以选择与用于编码当前块更小RD代价相关联的模式(172或174)。
[0081] 如图7A和7B中所说明的模式选择技术表示固定的模式检查次序。然而,如图7A和7B中所说明的固定次序模式检查可以展示某些潜在问题。一个这种潜在的问题是所述固定次序模式检查可能不会在所有情况下提供最好的复杂度/质量权衡。在图7A的过程140的上下文中,例如,如果模式m1就复杂度或质量来说明显更可能比m2好,那么视频编码器20基于模式m2的RD代价跳过检查优选的模式(在这种情况下,模式m1)的机会是较小的或渺小的。
换一种方式说,如果在视频编码器20实施过程140的情况下模式m1比m2优选,那么过程140成功地偏离或偏向支持选择有利模式而不消耗资源来评估不利模式的模式检查过程。因此,在模式m1比模式m2有利的特定情境中,过程140提供比过程160更好的复杂度/质量权衡。
[0082] 但是,如果模式m2就复杂度或质量来说有可能比m1更好,那么过程140将在每一情况下,甚至在开始有利模式的评估之前偏离/偏向支持评估不利模式。相反,过程160在模式m2就编码当前块来说有可能比m1更好的情境下提供更好的复杂度/质量权衡。例如,如果关于编码当前块模式m2有可能产生比模式m1更小的RD代价,那么过程160提供比过程140更好的复杂度/质量权衡。
[0083] 因此,在所有情况下根据HEVC规范现有模式检查次序不可能提供最好的可用复杂度/质量权衡。本公开的技术是针对降低这些险,并且在较大数目的情境中潜在地改进复杂度质量权衡。为解决上文所描述的问题,并且改进所述复杂度/质量权衡,视频编码器20可以实施如本文中所描述的一或多个自适应模式检查次序。
[0084] 图8是说明可以执行根据本公开的一或多个方面的技术的视频编码器实例的框图。在图8的实例中,视频编码器20包含视频数据存储器41、模式选择单元40、经解码图片缓冲器64、求和器50、变换处理单元52、量化单元54和熵编码单元56。模式选择单元40又包含运动补偿单元44、运动估计单元42、帧内预测单元46及分割单元48。对于视频块重构,视频编码器20还包含反量化单元58、反变换单元60和求和器62。还可以包含解块滤波器(图8中未展示)以便对块边界进行过滤,从而从重构视频去除块状伪影。在需要时,解块滤波器通常将过滤求和器62的输出。除了解块滤波器外,还可使用额外的滤波器(在回路中或回路后)。为简洁起见未展示这些滤波器,但是必要时,这些滤波器可以对求和器50(作为回路内滤波器)的输出进行过滤。在一些实例中,解块滤波器可以用于产生如上文所描述的色彩分量间预测的过滤的明度样本块。
[0085] 视频数据存储器41可以存储待由视频编码器20的组件编码的视频数据。存储在视频数据存储器41中的视频数据可以(例如)从视频源18获得。经解码图片缓冲器64可以是参考图片存储器,其存储用于由视频编码器20(例如)在帧内或帧间译码模式中对视频数据进行编码的参考视频数据。视频数据存储器41和经解码图片缓冲器64可以由多种存储器装置中的任何一个形成,例如动态随机存取存储器(DRAM),包含同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。视频数据存储器41和经解码图片缓冲器64可由相同存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器41可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。
[0086] 在编码过程期间,视频编码器20接收待译码的视频帧或切片。所述帧或切片可以划分成多个视频块。以此方式,视频编码器20可以接收待译码视频帧内的当前视频块。
[0087] 运动估计单元42和运动补偿单元44相对于一或多个参考帧中的一或多个块对所接收视频块进行帧间预测译码以提供时间预测。帧内预测单元46可替代地相对于与待译码块相同的帧或切片中的一或多个相邻块对所接收视频块执行帧内预测译码以提供空间预测。视频编码器20可以执行多个译码编次,例如针对每一视频数据块选择适当的译码模式。
[0088] 求和器50可以通过确定预测块的像素值与正译码的当前视频块的像素值之间的差形成残余视频块。在一些实例中,求和器50可以确定不对残余块进行编码。
[0089] 分割单元48可基于前述译码遍次中的先前分割方案的评估将视频数据块分割成子块。例如,分割单元48可以最初将帧或切片分割成LCU,并且基于速率-失真分析(例如,速率-失真优化)将LCU中的每一个分割成子CU。分割单元48可以经配置以执行本文中所描述的快速或充分的RD检查模式中的任一个或其组合。模式选择单元40可以进一步产生指示将LCU分割成子CU的四叉树数据结构。四叉树的叶节点CU可以包含一或多个PU和一或多个TU。模式选择单元40可以经配置以执行本文中所描述的自适应模式选择技术中的任一个或其组合。
[0090] 模式选择单元40可以(例如)基于误差结果选择译码模式、帧内或帧间中的一个,并且可以将所得帧内或帧间译码块提供给求和器50。求和器50可能产生残余块数据。举例来说,求和器50可产生当前CU的残余块数据使得残余块数据的每一样本等于当前CU的译码块中的样本与当前CU的PU的预测块的对应样本之间的差。求和器62可重构编码块(即,译码块)以用作参考帧。模式选择单元40还将语法元素(例如,运动向量、帧内模式指示符、分割信息和其它此类语法信息)提供给熵编码单元56。
[0091] 为解决关于HEVC规范的模式检查次序的上文所描述的各种问题,模式选择单元40可以实施本公开的各种自适应定序模式检查技术。通过自适应地改变模式检查次序来更好地符合当前块的特征,模式选择单元40可以实施本公开的各方面来解决上文关于固定次序模式检查所描述的问题,并且潜在地实现更好的复杂度/质量权衡。本公开的技术使得模式选择单元40和/或视频编码器20的各种其它组件能够自适应地改变模式检查来实现更好的复杂度和/或质量权衡。根据图9至16,下文进一步详细描述模式选择单元40可以根据本公开实施的技术。
[0092] 模式选择单元40可以确定度量,例如RD代价或频率度量。模式选择单元可以确定度量是否符合条件。条件可以包括阈值,例如阈值RD代价或阈值频率。在一些实例中,阈值频率和/或度量可以包括产生特定模式检查次序的次数或速率。在各种实例中,度量可以基于RD统计和/或与由模式选择单元40先前选择的特定模式检查次序的频率相关联的统计。
[0093] 根据本公开的技术,模式选择单元40可以经配置以:确定度量是否符合条件,其中确定度量是否符合所述条件是基于统计的,其中所述统计与第一视频编码模式检查次序和第二视频编码模式检查次序相关联;响应于确定所述度量符合所述条件,选择第一编码模式检查次序来编码第一视频数据块;响应于确定不符合条件,选择第二编码模式检查次序来编码第一视频数据块;基于所选择的第一编码模式检查次序或基于第二所选的编码模式检查次序更新统计;并且基于所更新的统计和使用第一或第二编码模式检查次序来编码第二块。
[0094] 运动估计单元42和运动补偿单元44可以高度集成,但出于概念性目的分别加以说明。由运动估计单元42执行的运动估计是产生运动向量的过程,所述过程估计视频块的运动。举例来说,运动向量可指示当前视频帧或图片内视频块的PU相对于参考帧(或其它译码单元)内的预测块相对于当前帧(或其它译码单元)内正译码的当前块的位移。换句话说,运动向量可以指示PU的预测块与参考图片中的对应预测块之间的位移。预测块是被发现在像素差方面与待译码块(即,预测块)密切匹配的块,像素差可以通过绝对差总和(SAD)、平方差总和(SSD)或其它差度量来确定。
[0095] 在一些实例中,视频编码器20可以计算存储在经解码图片缓冲器64中的参考图片的子整数像素位置的值。换句话说,视频编码器20可以将一或多个内插滤波器应用到一或多个参考图片的样本来产生PU的预测块中的样本。在一些实例中,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精确度的运动向量。
[0096] 运动估计单元42可通过比较PU的位置与参考图片的预测块的位置来计算用于帧间译码切片中视频块PU的运动向量。参考图片可以选自第一参考图片列表(列表0)或第二参考图片列表(列表1),所述列表中的每一个识别存储在经解码图片缓冲器64中的一或多个参考图片。如果运动估计单元42已经计算出运动向量,那么运动估计单元42可以将计算出的运动向量发送到熵编码单元56和运动补偿单元44。
[0097] 运动补偿单元44可以执行运动补偿。运动补偿可涉及基于由运动估计单元42对PU所确定的一或多个运动向量获取或产生用于PU的一或多个预测块。再有,在一些实例中,运动估计单元42与运动补偿单元44可在功能上集成。在接收到当前视频块PU的运动向量后,运动补偿单元44可基于所述运动向量定位来自参考图片列表中的一个的图片的预测块。一般来说,运动估计单元42相对于明度分量执行运动估计,并且运动补偿单元44对于色度分量和明度分量两个使用基于明度分量计算出的运动向量。模式选择单元40还可以产生与视频块和视频切片相关联的语法元素以供视频解码器30在解码视频切片的视频块时使用。
[0098] 如上文所描述,作为由运动估计单元42和运动补偿单元44执行的帧间预测的替代方案,帧内预测单元46可以对当前块进行帧内预测。具体来说,帧内预测单元46可以确定用于对当前块进行编码的帧内预测模式。在一些实例中,帧内预测单元46可以(例如)在单独编码编次期间使用各种帧内预测模式对当前块进行编码,并且帧内预测单元46(在一些实例中,或模式选择单元40)可以从所测试模式中选择适当帧内预测模式来使用。
[0099] 举例来说,帧内预测单元46可以使用速率-失真分析对各种所测试帧内预测模式计算速率-失真值,并且可以从所测试帧内预测模式中选择具有最佳速率-失真特征的帧内预测模式。速率-失真分析一般确定编码块与被编码以产生所述编码块的原始未编码块之间的失真(或误差)的量,以及用于产生编码块的位速率(也就是说,位数目)。帧内预测单元46可以根据各种编码块的失真和速率计算比率,以确定哪个帧内预测模式显示关于所述块的最佳速率-失真值。
[0100] 在选择用于块的帧内预测模式后,帧内预测单元46可以将指示用于块的所选帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以对指示所选帧内预测模式的信息进行编码。视频编码器20可在所发射的位流中包含配置数据,所述配置数据可以包含多个帧内预测模式索引表和多个修改的帧内预测模式索引表(还被称作码字映射表);对各种块的编码上下文的定义;和用于上下文中的每一个的最可能的帧内预测模式、帧内预测模式索引表和修改的帧内预测模式索引表的指示。
[0101] 视频编码器20可以通过确定来自模式选择单元40的预测数据(例如,预测块)与来自被译码原始视频块(例如,译码块)的数据之间的差来形成残余视频块。求和器50表示执行这种差运算的一或多个组件。变换处理单元52可以将变换应用到残余块,从而产生包括残余变换系数值的视频块(即,变换系数块)。举例来说,变换处理单元52可应用离散余弦变换(DCT)或概念上相似的变换来产生残余系数值。
[0102] 变换处理单元52可以执行概念上与DCT相似的其它变换。也可以使用子波变换、整数变换、子带变换或其它类型的变换。在任何情况下,变换处理单元52将所述变换应用到残余块,从而产生残余变换系数块。所述变换可以将残余信息从像素(或样本)值域转换到变换域,例如频域。变换处理单元52可以将所得变换系数发送到量化单元54。
[0103] 此外,变换单元52可以将ACT(自适应色彩变换)变换和/或CCP(跨分量预测)变换应用到所述残余数据。此外,根据本公开的一或多种技术,变换单元52可以将裁剪操作应用到残余数据以降低从样本至变换域变换、ACT变换和/或CCP变换产生的残余数据的位深度。
[0104] 量化单元54对变换系数进行量化以进一步减小位速率。量化过程可以减少与系数中的一些或全部相关联的位深度。可以通过调节量化参数来修改量化的程度。在一些实例中,量化单元54可以接着执行对包含量化的变换系数的矩阵的扫描。替代地,熵编码单元56可以执行所述扫描。
[0105] 视频编码器20可在译码的视频位流中对各种参数集进行编码。此类参数集可包含:图片参数集(PPS),其可包含对一或多个图片共同的语法元素;序列参数集,其可包含对图片的一或多个序列共同的语法元素。
[0106] 在量化后,熵编码单元56对量化的变换系数进行熵译码。换句话说,熵编码单元56可对表示量化的变换系数的语法元素进行熵编码。举例来说,熵编码单元56可以执行上下文自适应二进制算术译码(CABAC)、上下文自适应可变长度译码(CAVLC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵译码技术。在基于上下文的熵译码的情况下,上下文可以基于相邻块。在由熵编码单元56进行熵译码之后,视频解码器30可以将编码的位流发射到另一装置(例如,视频解码器30),或者存档以用于稍后发射或检索。
[0107] 除对量化的变换系数进行熵译码以外,熵编码单元56可以经配置以对比例因数进行熵编码。在各种实例中,熵编码单元56可以经配置以在CABAC译码器的旁路模式中将比例因数(码)值用信号表示为固定长度代码。
[0108] 反量化单元58和反变换单元60分别应用反量化和反变换以在像素域中重构残余块,例如以供稍后用作参考块。举例来说,反量化单元58可以对变换系数块进行解量化。反变换单元60可通过将反变换应用到解量化变换系数块而重构TU的变换块。
[0109] 求和器62将重构的残余块添加到由运动补偿单元44所产生的运动补偿预测块以产生用于存储在经解码图片缓冲器64中的重构视频块。运动估计单元42和运动补偿单元44可以将重构视频块用作参考块以对后续视频帧的块进行帧间译码(即,帧间预测)。运动补偿单元44还可将一或多个内插滤波器应用到所重构的残余块以计算在运动估计中使用的子整数像素值。
[0110] 运动估计单元42可确定一或多个参考图片,其中视频编码器20可用来预测经帧间预测的一或多个PU的像素值。运动估计单元42可将每一参考图片用信号表示为LTRP或短期参考图片。运动估计单元42可将所述参考图片存储在经解码图片缓冲器64中,直到所述图片被标记为不用于参考为止。视频编码器20的模式选择单元40可编码包含关于一或多个参考图片的识别信息的各种语法元素。
[0111] 图9是说明根据本公开的一或多个方面的视频编码器可以执行以自适应地选择模式检查次序的实例过程的流程图。图9说明根据本公开的各方面的模式选择单元40可以实施的过程180。模式选择单元40可以对自适应次序模式检查实施过程180。举例来说,模式选择单元40可以确定关于基于条件(在图9中表示为“C”)的视频模式检查的次序。更具体地说,模式选择单元可以确定度量(例如,速率-失真度量)是否满足条件C。在一些实例中,条件C可以是速率-失真值。“次序1”对应于图7A中关于过程140所说明的模式检查次序,并且“次序2”对应于图7B中关于过程160所说明的模式检查次序。以偏离或偏向过程180的模式选择以支持模式选择单元40选择预期更佳复杂度/质量的分支的方式来设计条件C。视频编码器20的模式选择单元或其它组件还可以基于可用信息自适应地调整条件C。模式选择单元40可以用来自适应地调整条件C的可用信息的实例包含先前图片的统计、关于当前图片的预分析信息和来自相邻块或关于先前所检查的模式的信息。
[0112] 此外,模式选择单元40可以分别与上文关于图7A和7B所描述的条件C1(144)和C2(164)一起校正和/或调谐条件C。与实施图7A或图7B中所说明的固定次序模式检查技术中的一个相比,对于图9的过程180的模式检查的自适应次序选择可以相对于模式选择单元40的操作提供复杂度降低。在一些情境下,相比于过程140或160中的任何一个,图9中所说明的过程180可以提供大约百分之二十(20%)的复杂度降低。模式选择单元40可以在各种类型的模式检查情境上,或在各种类型的模式检查情境之前实施过程180。
[0113] 图10是说明实例过程200的流程图,其中模式选择单元40在两个可能性次序之间进行选择以检查CU大小。更具体地说,模式选择单元40可以实施过程200以自适应地对CU大小检查定序。过程200的左(‘是’)分支表示图9的过程180的“次序1”的特定情况。类似地,过程200的右(‘否’)分支表示图9的过程180的“次序2”的特定情况。
[0114] 在过程200的实例中,模式选择单元40可以自适应地对检查各种CU的不同大小定序。更具体地说,模式选择单元40可以实施过程200来确定2N×2N CU大小是否应该被首先检查(次序1)(204)或N×N CU是否应该被首先检查(次序2,206)。相对于图6的过程120,模式m1可以表示首先检查2N×2N CU(204),而模式m2可以表示首先检查四个(4)N×N子CU(206)。为了确定条件C,视频编码器20可以执行2N×2N CU的低代价运动估计,由此获得对应预测误差。如果从所述运动估计获得的预测误差的误差能量小于下阈值(“t1”),那么随后视频编码器20可以确定当前块有可能是后台块或移动为整体(例如,“移在一起”)的块,并且符合条件C1。在这种情况下,视频编码器20不太可能基于由跨CU的较低误差能量指示的共享运动信息来分裂2N×2N CU。在此基础上,过程200可以偏离或偏向支持模式选择单元40首先检查2N×2N CU(204),并且有条件地检查N×N子CU(次序1)(208)的次序检查。
[0115] 然而,如果视频编码器20确定误差能量超过较高阈值(“t2”),那么块可能是复杂的,并且因此,视频编码器20有可能在编码时使用较小块大小。在这种情境下,过程200偏离/偏向支持模式选择单元40首先检查四个(4)N×N子CU(206),并且有条件地检查作为整体的2N×2N CU(210)的次序选择。
[0116] 在视频编码器20确定度量(例如RD代价)符合C1或C2的情况下,视频编码器20或者可以分别终止检查次序1或检查次序2。作为一个实例,如果与2N×2N CU大小相关联的RD代价小于阈值RD代价(例如C1),那么视频编码器20可以选择2N×2N CU分割,并且不检查N×N CU分割大小。
[0117] 图11是说明根据本公开的技术的视频编码器可以执行以用于预测模式选择的自适应定序的另一实例过程的流程图。在图11中,根据过程220,模式选择单元40可以使用图6的对应于两个不同预测模式的模式m1和m2自适应地检查待用于PU的预测模式。在一些实例中,过程220表示视频编码器20可关于用于时间层支持的预测结构实施的一个过程。
[0118] 在图11的具体实例中,(上文所描述的)模式m1和m2分别对应AMVP模式和SKIP模式。将了解,AMVP和SKIP模式在图11中说明为非限制性实例,并且可应用本公开的自适应定序技术以支持预测模式的多种可能的组合和排列。在各种情况下,通过根据过程220自适应定序预测模式对PU进行检查,视频编码器20可以支持用于视频数据时间层的预测。
[0119] 视频编码器20可以支持用于编码图片的三个时间层。一些图片仅可能是单向预测的,并且一个参考图片可能被定位在与当前图片相对地远(即,明显不同)。结果是,视频编码器20可能不太可能选择SKIP模式来编码这种图片。在这类情况下,本公开的技术可以偏离或偏向检查次序的模式,使得模式选择单元首先评估AMVP模式,并且有条件地评估SKIP模式。然而,双向预测帧可能由相对地(视觉上)接近双向预测帧的两个参考图片预测。对于双向预测图片来说,SKIP模式可以是首要选择。因此,就双向预测图片来说,模式选择单元40可能偏向支持首先检查SKIP模式的次序检查过程。
[0120] 但对于其它一些帧来说,模式选择单元40可以通过对较低运动序列首先检查SKIP模式,和通过对较高运动序列首先检查AMVP来产生更好的复杂度/质量权衡。在模式选择单元40在SKIP模式与AMVP模式之间进行选择的情境下,模式选择单元可以在与当前图片的时间情况不同的时间情况T1相关联的经先前译码的图片中将基于SKIP模式和AMVP模式的出现数目来制定条件C(222)。换句话说,为在SKIP模式与AMVP模式之间进行选择,如果在时间T1处图片的块中SKIP模式译码的出现盛行或更频繁,那么模式选择单元40可以首先检查SKIP模式(224)。相反,如果在时间T1处图片的块中AMVP模式译码的出现更频繁或盛行,那么模式选择单元40可以实施本公开的技术来首先检查AMVP模式(226)。
[0121] 对CU按次序1检查跳过模式(224)之后,如果不符合条件C1,那么模式选择单元40可以检查AMVP模式(228)。相反按次序2,在模式选择单元40检查AMVP模式(226)之后,如果不符合条件C2,那么模式选择40对CU检查SKIP模式(230)。按这种方式,模式选择单元40可以实施本公开的自适应定序模式检查技术以充分利用从已编码图片获得的启发式数据。
[0122] 在按次序1检查SKIP模式(224),或按次序2检查AMVP模式(226)之后,视频编码器20可以确定所检查模式的RD代价(度量)。如果RD代价度量小于阈值代价(例如C1或C2),所述阈值代价可以对应于条件C1或C2的“是”分支,那么视频编码器20可以选择满足条件(例如C1或C2)的视频译码模式,并且停止检查其它视频译码模式的RD代价。
[0123] 图12是说明根据本公开的方面的用于时间层支持的实例预测结构的概念图。应用图11的过程220的实例,模式选择单元40可以在SKIP模式与AMVP模式之间进行选择以用于编码当前块。如图11中所展示,视频编码器20可以支持视频数据的三个时间层,表示为T0、T1和T2的。数字1至12中的每一个可以对应于与那个时间层相关联的图片。
[0124] 可以按以下描述图12中所展示的预测结构:对于时间层T0中的图片,具有数目N的图片仅可以预测具有N-4值的另一图片,其中N等于:0、4、8、…、等。对于时间层T1的图片,具有N等于:2、6、10、…、等的帧可以用来预测具有等于N1-2和(N2+2)值的帧。具有值N等于:1、3、5、7、…、等的时间层T2的图片可以用来预测具有值N-1和N+1的图片。
[0125] 因此,层T0的图片仅可以是单向预测的。对于层T0图片的参考图片相对于层T1和T2的图片相对地远。这个预测方案的结果是,更有可能基于其它图片预测T1层,且因此不太可能使用SKIP模式最优地编码。因此,模式选择单元40可能不太可能针对时间层T1中的单向预测帧选择SKIP模式。因此,模式选择单元40可以实施本公开的自适应检查次序来偏离支持针对层T1的图片首先(无条件地)检查AMVP模式的选择过程。
[0126] 然而,时间层T2的图片可以是双向预测的,使得所述两个参考帧非常接近。因此,使用双向预测可以相对准确地预测时间层T2的帧,并且SKIP模式对于这类帧可能是首要译码模式。就时间层T2中的双向预测帧来说,有利模式检查过程将包含首先(无条件地)检查SKIP模式。因此,模式选择单元40可以实施本公开的自适应定序技术来偏离支持首先(无条件地)检查SKIP模式的模式检查次序。
[0127] 在时间层T1中的帧的情况下,模式选择单元40可以经配置以偏向支持针对较低运动序列首先检查SKIP模式和针对较高运动序列首先检查AMVP的模式检查次序。模式选择单元40可以基于时间层T1的先前帧中SKIP模式和AMVP模式的出现制定如图11的过程220中所说明的条件C。举例来说,如果在先前帧中SKIP模式编码的出现比AMVP模式编码的出现更频繁,那么模式选择单元40可以在时间层T1的显示次序中充分利用来自先前帧的启发式数据以首先检查SKIP模式。
[0128] 图13A和13B是说明根据本公开的一或多个方面的视频编码器可以用于自适应地确定PU分割方案的对应8×8CU的误差分布的概念图。图13A和13B分别说明对应8×8CU的误差预测分布240A和240B。根据本公开的技术的实例,视频编码器20可以基于所述误差分布自适应地确定PU分割方案。举例来说,视频编码器20可以基于块的系数能量实施所述技术以确定PU分割大小。
[0129] 在一个实例使用情况下,视频编码器20早已检查8×8PU,并且视频编码器20必须在首先检查8×4PU或首先检查4×8PU之间进行选择。如果8×8PU预测误差能量聚集在如图13A中所展示的8×8CU(当8×8PU横向分为两部分时)的下半部分时,那么能量分布通常指示8×8PU的下半部分相对于上半部分不同地移动。基于误差分布240A的能量分布的这些趋势,模式选择单元40可以确定视频编码器20更有可能将8×8PU分割成两个8×4(2N×N)PU。
反过来,模式选择单元40可以偏离/偏向支持首先(即,在其它分割方案之前)检查2N×N分割方案的本公开的自适应定序模式检查技术。
[0130] 在图13B的实例中,预测误差能量(误差分布240B)聚集在如图13B所展示的8×8PU(当8×8PU纵向分为两部分时)的右半部分。误差分布240B的能量分布通常指示8×8PU的右半部分相对于左半部分不同地移动。基于误差分布240B的能量分布的这些趋势,模式选择单元40可以确定视频编码器20更有可能将8×8PU分割成两个4×8(N×2N)PU。因此,模式选择40可以偏离/偏向支持首先检查N×2N分割方案的本公开的自适应定序模式检查技术。
[0131] 图14是说明根据本公开的各方面的视频编码器20可以实施以自适应地确定TU分割方案的实例过程260的流程图。视频编码器20可以基于条件C确定TU分割方案。视频编码器20可以确定RD代价度量是小于还是大于包括条件C的阈值。如果视频编码器20确定符合条件C,那么视频编码器20首先检查8×8TU大小(262),并且确定8×8TU大小的RD代价。如果不符合另一条件C1,那么视频编码器20检查4×4TU大小(264)。如果不符合C,那么视频编码器20首先检查4×4TU大小(266),并且确定与4×4TU大小相关联的RD代价。如果不符合条件C2,那么视频编码器20检查8×8TU大小(268)。
[0132] 如果视频编码器20确定与8×8TU大小(262)和4×4TU大小(266)相关联的RD代价分别满足条件C1或C2,那么视频编码器20终止视频编码模式检查过程。即,如果相关联RD代价小于阈值代价C1,那么视频编码器20可以针对块选择8×8TU大小。类似地,如果相关联RD代价小于阈值代价C2,那么视频编码器20可以选择4×4TU大小。如果满足C1或C2中的任何一个,那么视频编码器20停止检查其它TU分割大小。
[0133] 视频编码器20可以基于块的系数能量实施过程260以自适应地确定TU分割方案。更具体地说,视频编码器20可以实施过程260以确定针对CU首先检查哪一个TU分割,其中模式m1和m2与图5所说明的TU分割方案116A至116C中的两个不同方案中的一个相关联。在图
14的过程260的实例中,待评估的两个TU大小是8×8和4×4。
[0134] 图15A和15B是说明预测误差分布的概念图。视频编码器20还可以使用预测误差分布来确定应该按上文所描述的算法首先检查哪一TU大小。图15A和15B分别说明误差分布280A和280B。图15A说明8×8块的预测误差(借助于误差分布280A)。误差分布280A是相对地统一,且因此,从编码观点看8×8变换通常比进一步分割更好。因此,相对于误差分布280A,首先检查8×8TU表示更多有利的选择。因此,模式选择单元40可以实施本文中所描述的自适应定序技术以偏离或偏向支持首先检查8×8TU的定序过程。
[0135] 然而,如果一个4×4块的预测误差在较大8×8块(如在图15B的误差分布280B中的情况)中是主导的,那么使用8×8变换可以将误差能量扩散到全部8×8块,而不是将误差能量压紧在主要定位能量的系数区域中。因此,在误差分布280B的情况下,8×8变换大小可以产生更多被译码的非零系数,并且产生模糊伪影。在误差分布280B的情况下,模式选择单元40可以自适应定序TU大小检查过程以偏向支持首先检查4×4变换大小的选择。
[0136] 图16是说明视频编码器20可以实施以自适应地定序检查PU的预测模式的实例过程300的流程图。在过程300的实例中,模式选择单元40分别在对应于PU分割大小2N×N(302)和N×2N(304)的模式m1与m2之间进行选择。视频编码器20在图13A和13B中所说明的过程300中评估PU分割大小的实例。举例来说,在过程300的上下文中,图13A的误差分布240A可以表示次序1对其有利的分布,而图13B的误差分布240B可以表示次序2对其有利的分布。
[0137] 在次序1中,在模式选择单元40检查2N×N分割并且确定相关联RD代价之后,模式选择单元40检查RD代价是否符合表示为C1的条件(306)。如果模式选择单元40确定不符合C1,那么模式选择单元40检查N×2N PU分割(308)。在次序2中,在模式选择单元40检查N×2N分割(304)并且确定与N×2N分割相关联的RD代价之后,模式选择单元40检查条件C2(310)。如果模式选择单元40确定不符合C2,那么模式选择单元40检查PU 2N×N分割(312)。
如果视频编码器20确定不符合条件C1或C2,例如,与2N×N PU大小(302)相关联的RD代价或与N×2N PU大小(304)相关联的RD代价小于阈值RD代价,那么视频编码器20可以终止PU分割大小检查次序。
[0138] 按这种方式,视频编码器20可以表示一种装置的实例,所述装置经配置以基于与第一视频编码参数相关联的统计自适应地确定视频数据块的第一视频编码参数,确定与所述第一视频编码参数相关联度量是否符合条件,所述条件与所述视频编码参数相关联,如果所述第一视频编码参数符合所述条件,那么使用与所述第一视频编码参数相关联的第一编码模式检查次序来编码所述块,如果所述第一视频译码参数不符合所述条件,那么使用与第二视频编码参数相关联的第二编码模式检查次序来编码所述块,更新与所述第一编码参数相关联的统计和与第二编码参数相关联的统计,并且使用与第一视频编码参数和第二视频编码参数相关联的所更新的统计自适应地编码第二块。
[0139] 图17A至17C是说明根据本公开的视频编码器20可以实施以执行快速编码确定(例如,在快速RD检查或全RD检查之间进行选择)与块分割确定的实例过程320的流程图。通过实施过程320,视频编码器20可以实现快速编码而不降低视觉质量。
[0140] 如本文中所描述,视频编码器20确定RD代价以确定各种编码参数,例如编码模式、分割方案和其组合。如本文将更详细地描述,视频编码器20可以利用提前终止RD确定来执行视频数据的更快编码且相对于其它快速视频编码模式有较少视觉质量退化。如图17A至17C中所说明的过程320是这类提前终止过程的实例。
[0141] 在过程320中,视频编码器20可以针对最大CU执行RD优化模式选择以确定相关联的RD代价(322)。在图17A的实例中,Cu可以具有32×32的大小。随后,基于所选译码模式和最大CU中的RD代价量,视频编码器20可以确定是执行全RD检查还是快速RD检查。
[0142] 模式选择单元40可以在当前切片是I切片或快速编码模式特征在视频编码器20上禁用(或“断开”)(324的“是”分支)的情况下选择全RD检查。在图片的区域是复杂的(例如,具有较大变化)情况下,模式选择单元40可以选择全RD检查(326)(例如,决策树的全RD检查分支)。在当前切片不是I切片并且快速编码模式特征在视频编码器20上不被禁用(或“断开”)(324的“否”分支)的情况下,模式选择单元40可以确定“跳过”对于32×32块是否是最佳模式(328)。视频编码器20还可以在最大CU的RD代价大于阈值或用于最大CU的所选模式不是SKIP模式(决策块328的“否”分支)的情况下选择全RD检查选择。否则,视频编码器20可以选择对应于圆A的快速RD选择(例如,决策树的快速RD分支)。在图17B中说明快速RD分支。
[0143] 在选择快速RD分支的情况下(其对应于图17B),如果最大CU的失真(在这个实例中,32×32CU的RD(L32))小于阈值(330的“否”分支),那么视频编码器20可以分别选择上文选中为最末CU和译码模式的最大CU和译码模式(336)。在图17B的实例中,最大分割是32×32分割。反过来,视频编码器20可以终止CU分割过程(圆“C”,其是指返回到图17A的“结束”块)。
[0144] 然而,如果最大CU大小的失真不小于阈值(决策块330的“是”分支),那么视频编码器20可以计算最大CU(332)的每一子分区块的失真。四个块中的每一个的失真分别表示为D1、D2、D3和D4。平均失真表示为μ。
[0145] 如果子块中的某一个的失真超过等于平均失真阈值的阈值一定程度/量/值,那么数量表示为αμ(决策块334的“是”分支),视频编码器20可以确定当前子块具有与图片的其它块不同的运动,并且继续执行在图17C中更详细地说明的圆“B”。在这种情况下,如果视频编码器20使用最大CU,那么可能发生视觉伪影。因此如对应于图17C的圆B中所描述,在特定子块的失真超过阈值一定量的情况下,可能需要分割最大CU。在图17C中更详细地描述进一步分割CU的过程。否则,视频编码器20可以分别选择上文选中为最末CU和译码模式的最大CU和译码模式(336)。
[0146] 在图17C中,视频编码器20可以经配置以进一步将CU分割成子CU。为确定是否将CU分割成子CU,视频编码器20可以确定关于那个分割的失真(Di)是否大于阈值失真,并且所述分割是否具有相对于CU内的另一分割不同的运动信息(338)。
[0147] 如果分割具有不同运动信息并且超过第二阈值失真代价Th2(决策块338的“是”分支),那么视频编码器20可以将16×16分割分割成8×8分割(340)并且将8×8分割的RD代价与16×16分割和32×32分割大小的RD代价相比较。视频编码器20可以选择优化RD代价,例如,产生最小RD代价的分割(342)。否则,如果分割不具有不同运动信息并且不超过第二阈值失真代价Th2(决策块338的“否”分支),那么视频编码器20可以取决于哪个分割方案优化RD代价而使用32×32或16×16分割方案(344)。
[0148] 因此,根据本公开的技术,视频编码器20可以经配置以确定与编码视频数据块相关联的速率-失真(RD)代价,其中确定所述RD代价包括确定使用全RD检查方案或快速RD检查方案来确定所述RD代价;基于所确定的RD代价确定用于块的分割方案;并且基于所确定的RD代价使用所确定的分割方案对块进行编码。
[0149] 视频编码器20可以用来评估每一子块的失真的技术是将所述失真与平均失真进行比较。举例来说,视频编码器20可以计算四个子块的失真,并且计算所述四个值的平均失真。视频编码器20可以使用各种失真度量中一或多种,例如平均平方误差(平方误差的总和)或平均绝对误差(绝对误差的总和)。在各种实例中,视频编码器20仅可以使用明度分量的失真,或明度和色度分量两个的失真。在一些实例中,视频编码器20可以使用不同加权因数使明度和色度失真相加。此外,视频编码器20可以通过预定义因数按平均比例设定阈值。如果一或多个块具有大于所述阈值的失真,那么视频编码器20可以分割这种块。否则,视频编码器20可以分别选择最大CU和对应译码模式为最末CU和译码模式。反过来,视频编码器
20可以终止CU分割过程。比例因数可以控制视频编码器20应用到所述块的分割量。如果比例因数较小,那么视频编码器20可以执行更多量的分割,潜在地产生更好的译码效率和视觉质量(图片质量)。然而,如果比例因数较大,那么视频编码器20可执行更少量的分割,潜在地产生更快的编码速度。
[0150] 根据另一个实例实施方案,视频编码器20可以在子块中使用失真变化的测量。举例来说,如果四个子块的失真的方差或标准差较大(例如,超过预定阈值),那么可能存在分割将有益于编码块的更大机会。然而,当样本值(四个子块的失真)的量值增大时,方差或标准差倾向于变得更大。在一些情况下,失真量基于本地特性可以在视频帧中显著变化。因此,视频编码器20可以使用正规化标准差或可使用变化系数,而不是方差或标准差。正规化标准差或变化系数可以根据以下公式定义:
[0151] c=σ/μ
[0152] 在上文所述公式中,μ和σ分别表示四个子块的失真的平均值和标准差。此外,视频编码器20可以将当前CU的变化系数‘c’与阈值进行比较。如果c超过阈值,那么视频编码器20可以分割当前块。在另一方面,如果c小于阈值,那么视频编码器20可以将被选中的最大CU和对应译码模式选择为最末CU和译码模式,并且可以终止CU分割过程。在各种实例中,为减少计算c的操作次数,视频编码器20可以使用平均绝对差,而不是σ。又,为避免划分操作,视频编码器20可以使μ乘以阈值,并且可以使σ或平均绝对差与阈值乘以μ的乘积进行比较。
[0153] 为进一步减少编码时间,视频编码器20可以对每一子块部分地执行RD代价检查。举例来说,视频编码器20可以跳过帧内译码。此外,视频编码器20可以首先检查SKIP模式的RD代价。如果SKIP模式的失真小于阈值,那么视频编码器20可以跳过对另一模式的检查。
[0154] 上文关于CU分割方案选择和模式选择所描述的技术可以使得视频编码装置20能够确定是否分割最大CU并且选择对应于四叉树中的第零(例如,根)和第一深度的子块的译码模式。视频编码器20可以对较大深度实施相对于四叉树分割方案相似或相同的步骤。或者,视频编码器20可以对较大深度应用简化程序。举例来说,如果在第一深度中的块的失真大于阈值,那么视频编码器20可以执行进一步分割。此外,视频编码器20可以检查第一深度级的块是否与第零深度级的块共享相同运动信息。如果第一深度级的块与第零深度级的块并不共享相同运动信息,那么视频编码器20可以执行进一步分割。
[0155] 图18是说明展示就译码增益来说使用块分割确定的快速编码的性能的实例的曲线的概念图。在图18的曲线340中,失真速率标绘在x轴上,而编码速度标绘在y轴上。“测试1”是视频编码器20在针对32×32CU选择SKIP模式时总是跳过分割,由此提供更快的编码速度的使用情况。测试1可以被用作对测量其它使用情况情境的速度和译码增益的锚定器或衡量标准。“测试2”是视频编码器20在不比较子块失真而执行分割的使用情况。如曲线340中所展示,测试2表示相对更慢译码速度的使用情况。
[0156] 与测试1和测试2使用情况相比,本公开的快速编码确定(例如,在快速RD检查和充分的RD检查之间进行选择)和分割确定(标绘为α1和α2)技术展示具有7%至12%编码速度损失的改进的译码效率。α2是基于比α1所基于的比例因数更小的比例因数。此外,与本公开的快速编码和分割技术相关联的α1和α2产生比图19中所展示的测试1使用情况改进的视觉质量。
[0157] 图19是说明根据控制参数编码的图像与根据本公开的快速编码和分割确定编码的图像之间的图片质量比较的概念图。图19通过虚线划界来并列说明两个图像。在图19中,放置在左侧的图像包含两个圆(即,左圆360和右圆362)。左侧上的图像对应于使用标绘在图18的曲线340上的测试1使用情况的参数编码(例如,分割大小和编码速度)。左侧图像的左圆360中的区域展示成块伪影,而右圆362中的区域展示目标剪切。
[0158] 放置在图19中右侧上的图像对应于根据本公开的快速编码和分割确定技术编码。在一个特定实例中,图19的右侧上的图像由根据标绘在图18的曲线340中的α1使用情况的参数而编码产生。使用α1参数明显改进(例如,降低或甚至去除)左侧图像的成块伪影和目标剪切,如放置在图19的右侧的图像所展示。与由测试2使用情况产生的图像相比,视觉质量相似/相当,但是编码速度明显更快。以这种方式,视频编码器20可以实施本公开的分割和编码速度确定以(例如,通过降低RD)改进编码速度和视觉质量两个。
[0159] 按这种方式,根据本公开的实例,视频编码器20可以表示经配置以确定与编码视频数据块相关联的速率-失真(RD)代价的装置,其中确定所述RD代价包括确定使用全RD检查方案或快速RD检查方案来确定所述RD代价;基于所确定的RD代价确定关于块的分割方案;并且基于所确定的RD代价使用所确定的分割方案对块进行编码。
[0160] 图20是说明可以执行根据本公开的一或多个方面的技术的视频解码器的实例的框图。在图20的实例中,视频解码器30包含视频数据存储器69、熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、反变换单元78、经解码图片缓冲器82和求和器80。在一些实例中,视频解码器30可以执行大体上与根据视频编码器20(图8)所描述的编码遍次互逆的解码通道。
[0161] 视频数据存储器69可以存储待由视频解码器30的组件解码的视频数据,例如编码的视频位流。存储在视频数据存储器69中的视频数据可以(例如)通过视频数据的有线或无线网络通信,或通过存取物理数据存储媒体从通信信道16(例如,从本地视频源(例如相机))获得。视频数据存储器69可以形成经译码图片缓冲器(CPB),其存储来自编码的视频位流的编码视频数据。经解码图片缓冲器82可以是参考图片存储器,其存储供视频解码器30(例如,在帧内或帧间译码模式中)解码视频数据使用的参考视频数据。视频数据存储器69和经解码图片缓冲器82可由多种存储器装置中的任一个形成,例如动态随机存取存储器(DRAM),其包含同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。视频数据存储器69和经解码图片缓冲器82可由相同存储器装置或单独的存储器装置提供。在各种实例中,视频数据存储器69可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。
[0162] 在解码过程期间,视频解码器30从视频编码器20接收表示编码的视频切片的视频块和相关联语法元素和/或语法数据的编码视频位流。视频解码器30的熵解码单元70对位流进行熵解码以产生量化系数、运动向量或帧内预测模式指示符和其它语法元素。熵解码单元70可将运动向量和其它语法元素转发到运动补偿单元72。
[0163] 熵解码单元70可以在各种参数集中对其它语法元素进行解码和分析。这些参数集可包含:PPS,其可包含一或多个图片共享的语法元素;SPS,其可包含图片的一或多个序列共享的语法元素。
[0164] 视频解码器30可以基于存储在经解码图片缓冲器82中的参考图片(例如,使用默认建构技术)建构参考图片列表(列表0和列表1)。当视频切片被译码为帧内译码(I)切片时,帧内预测单元74可以产生用于当前视频切片的视频块的预测数据。帧内预测单元74可基于来自当前帧或图片的先前解码块的用信号表示的帧内预测模式和数据而产生预测数据。当视频解码器30将视频帧的切片译码为帧间译码的(即,B或P)切片时,运动补偿单元72可以基于从熵解码单元70接收到的运动向量和其它语法元素产生用于当前视频切片的视频块的预测块。运动补偿单元72可以从参考图片列表中的一个中的参考图片中的一个产生预测块。
[0165] 运动补偿单元72可使用运动向量和/或语法元素来确定当前视频切片的视频块的预测信息。在一些实例中,运动补偿单元72可以基于从熵解码单元70接收的运动向量产生预测信息。运动补偿单元72可以使用所述预测信息来产生正被解码的当前视频块的预测块。例如,运动补偿单元72使用接收到的语法元素中的一些确定用于对当前视频切片的视频块进行译码的预测模式(例如,帧内或帧间预测)、帧间预测切片类型(例如,B切片或P切片)、关于所述切片的一或多个参考图片列表的建构信息、关于当前视频切片的每一帧间编码视频块的运动向量、关于切片的每一帧间译码视频块的帧间预测状况和用以对当前视频切片中的视频块进行解码的其它信息。
[0166] 当PU的运动向量具有子像素准确度时,运动补偿单元72可将一或多个内插滤波器应用到参考图片的样本以产生PU的预测块。换句话说,运动补偿单元72还可基于内插滤波器执行内插。运动补偿单元72可以使用在视频块的编码期间使用的相同内插滤波器20来计算参考块的子整数像素的内插值。因此,在一些实例中,运动补偿单元72可从所接收的语法元素确定由视频编码器20使用的内插滤波器并且可以使用所述内插滤波器产生预测块。
[0167] 反量化单元76反量化(即,解量化)位流中提供并由熵解码单元70解码的经量化变换系数。反量化过程可以包含使用量化参数QPY来确定量化程度以及同样确定应该应用的反量化程度。视频解码器30可计算视频切片中的每一视频块的量化参数QPY。
[0168] 反变换单元78可接收解量化的变换系数块。如果对当前块跳过变换,那么反变换单元78可接收解量化的残余块。反变换单元78可以使用反变换对所接收的块进行变换。在一些实例中,对变换系数进行反变换(例如,反DCT、反整数变换或概念相似的反变换过程)以便在像素域中产生残余块(例如,变换块)。反变换单元78可输出称为“重构的残余信号”的信号。
[0169] 此外,反变换单元78可以将反ACT变换或反CCP变换应用到残余数据。此外,根据本公开的一或多种技术,反变换单元78可以将裁剪操作应用到残余数据以减少由变换至样本域变换、反ACT变换和/或反CCP变换产生的残余数据的位深度。
[0170] 视频解码器30还可以基于语法元素或其它信息确定当前块是经帧内预测。如果当前视频块是经帧内预测,那么帧内预测单元74可对当前块进行解码。帧内预测单元74可以从与当前块相同的图片确定相邻预测块。帧内预测单元74可基于预测块产生变换系数块和/或残余块。
[0171] 在运动补偿单元72或帧内预测单元74基于运动向量和其它语法元素产生用于当前视频块的变换系数块和/或残余块之后,视频解码器30通过组合来自反变换单元78的残余块与由运动补偿单元72产生的对应预测块而形成解码的视频块。求和器80表示执行这个求和运算的一或多个组件。视需要,还可以应用解块滤波器以对解码块进行过滤,以便去除成块伪影。还可以使用其它环路滤波器(在译码环路中或在译码环路之后)来使像素转变变平滑或者以其它方式改善视频质量。经解码图片缓冲器82存储给定帧或图片中的解码视频块,视频解码器30可以对后续运动补偿使用解码视频块。经解码图片缓冲器82还可存储解码视频以供稍后呈现在显示器装置(例如,图1的显示器装置32)上。
[0172] 运动补偿单元72和/或帧内预测单元74可以基于明度残余块、比例因数和所预测的色度残余样本确定色度残余样本块。结合色度残余样本块,求和器80可以将色度残余样本和明度残余样本与所述预测块的各别色度样本和明度样本求和以对当前块(例如,重构的当前块)进行解码。在一些实例中,一旦视频解码器30产生重构视频,视频解码器30便可输出重构的视频块作为解码的视频(例如,用于显示或存储)。
[0173] 如上文所描述,在帧间预测期间,运动补偿单元72可以确定一或多个参考图片,其中视频解码器30可使用所述参考图片形成用于正被解码的当前块的预测视频块。运动补偿单元72可以基于经译码视频位流的语法元素确定参考图片是长期参考图片还是短期参考图片,其指示参考图片是被标记为长期参考还是短期参考。运动补偿单元72可将所述参考图片存储在经解码图片缓冲器82中,直到所述参考图片被标记为不用于参考为止。
[0174] 图21是说明根据本公开的技术的用于自适应地确定模式检查次序的过程的流程图。应理解,图21的技术可以通过如描述于本公开中的视频编码器(例如,视频编码器20)执行。在图21的过程中,视频编码器20可以经配置以确定度量是否符合条件(400)。视频编码器20可以基于统计确定度量是否符合条件,其中所述统计与第一视频编码模式检查次序和第二视频编码模式检查次序相关联。
[0175] 响应于确定度量符合条件,视频编码器20可以选择第一编码模式检查次序以对第一视频数据块进行编码(402)。响应于确定不符合条件,视频编码器20可以选择与第一编码模式检查次序不同的第二编码模式检查次序对第一视频数据块进行编码(404)。模式选择单元40可以基于所选的第一或第二编码模式检查次序更新统计(406)。统计的实例可以包含选择特定编码模式检查次序的频率、与模式检查次序相关联的平均RD代价或其组合。模式选择单元40和熵编码单元56可以基于所更新的统计并且使用第一或第二模式检查次序对第二视频数据块进行编码(408)。
[0176] 在一些实例中,统计包括从视频数据的先前编码块确定的统计。第一视频编码模式检查次序包括第一预测单元模式检查次序,其中第二视频编码模式检查次序包括第二预测单元模式检查次序,且其中第一视频预测单元模式检查次序与第二预测单元模式检查次序不同。
[0177] 在一些实例中,第一预测单元模式检查次序可以包括:在确定使用高级运动向量预测(AMVP)第一块进行编码的RD代价之前由模式选择单元40确定使用跳过模式对第一块进行编码的速率-失真(RD)代价。第二预测单元模式检查次序可以包括:在模式选择单元40有条件地确定使用跳过模式对第一块进行编码的RD代价之前确定使用AMVP对第一块进行编码的RD代价。
[0178] 在一些实例中,条件包括图片的时间层,其中时间层与第一视频数据块相关联。所述第一编码模式检查次序可以包括第一预测单元(PU)分割大小检查次序。第二视频编码模式检查次序包括:第二PU分割大小检查次序和与第二PU分割大小检查次序不同的第一PU分割大小检查次序。
[0179] 在一些实例中,第一PU分割大小检查次序可包括:在有条件地确定使用N×2N PU大小对第一块进行编码的速率-失真(RD)代价之前由模式选择单元40确定使用2N×N PU大小编码第一块的RD代价,其中N是整数数目个样本。第二PU分割大小检查次序包括:在有条件地确定使用2N×N PU大小对第一块进行编码的RD代价之前由模式选择单元40确定使用N×2N PU大小编码第一块的RD代价。
[0180] 在一些实例中,条件包括第一块内的预测误差的集中度。第一编码模式检查次序可以包括第一变换单元(TU)分割大小检查次序,其中第二视频编码模式检查次序包括第二TU分割大小检查次序,且其中第一TU分割大小检查次序与第二TU分割大小检查次序不同。
[0181] 第一TU分割大小检查次序可以包括:在有条件地确定使用4×4TU大小对第一块进行编码的速率-失真(RD)代价之前通过模式选择单元40确定使用8×8TU大小对第一块进行编码的RD代价,其中N是整数数目个样本。第二TU分割大小检查次序可以包括:在有条件地确定使用8×8TU大小对第一块进行编码的RD代价之前确定使用4×4TU大小对第一块进行编码的RD代价。
[0182] 在一些实例中,其中条件包括:第一块内的预测误差的集中度,第一编码模式检查次序可以包括第一译码单元(CU)分割大小检查次序,且第二视频编码模式检查次序可以包括第二CU分割大小检查次序,而所述第一CU分割大小检查次序可以与所述第二CU分割大小检查次序不同。
[0183] 在各种实例中,CU分割大小检查次序可以包括:在有条件地确定使用N×N CU大小对第一块进行编码的速率-失真(RD)代价之前确定使用2N×2N CU大小对第一块进行编码的RD代价,其中N是整数数目个样本,且第二CU分割大小检查次序可以包括:在有条件地确定使用2N×2N CU大小对第一块进行编码的RD代价之前确定使用N×NCU大小对第一块进行编码的RD代价。在各种实例中,所述条件可以基于一或多个阈值。
[0184] 图22是说明根据本公开的技术的基于速率-失真代价确定用于块的分割方案的过程的流程图。在图22的实例中,分割单元48可以选择全RD检查方案或快速RD检查方案中的一个(420)。分割单元48接着可以基于所选择的全RD检查方案或快速RD检查方案确定与编码视频数据块相关联的RD代价(422)。分割单元48接着可以基于所确定的RD代价确定用于块的分割方案(424),并且基于所确定的RD代价使用所确定的分割方案对块进行编码(426)。
[0185] 在一些实例中,可以基于块的复杂度选择全RD检查方案或快速RD检查方案。为选择全RD检查方案或快速RD检查方案,如果块的复杂度超过阈值,那么模式选择单元40可以选择全RD检查方案。为选择全RD检查方案或快速RD检查方案,如果块的复杂度在阈值内,那么模式选择单元40可以选择快速RD检查方案。
[0186] 在一些实例中,响应于选择快速RD检查方案,模式选择单元40可以确定与块的最大分割大小相关联的失真值,并且响应于确定与块的最大分割大小相关联的失真值超过阈值失真值,模式选择单元40可以确定是否将块分割成子分区。
[0187] 为确定是否将块分割成子分区,模式选择单元40可以被进一步配置以将与子分区中的每一个相关联的失真值和第二失真阈值进行比较,并且响应于确定子分区中的至少一个具有比第二失真阈值大的失真值,将块分割成子分区。在一些实例中,第二阈值失真值可以基于与子分区中的每一个相关联的失真值的平均比例,和/或基于与子分区中的每一个相关联的失真值的变化。
[0188] 为确定是否将块分割成子分区,模式选择单元40可以被进一步配置以确定子分区中的一个是否与相对于子分区中的其它中的至少一个不同的运动信息相关联,且响应于确定子分区中的一个与相对于子分区中的其它中的至少一个不同的运动信息相关联的确定,模式选择单元40可以被进一步配置以将子分区中的一个分割成其它子分区。
[0189] 如果包含视频数据块的当前切片是i切片,那么模式选择单元40可以选择全RD检查。在一些实例中,模式选择单元40可以基于视频编码器的快速编码模式是否被启用来选择全RD检查或快速RD检查。
[0190] 在一些实例中,当使用SKIP模式译码块时,所选择的全RD检查包括选择全RD检查。
[0191] 应认识到,取决于实例,本文中所描述的技术中的任何一个的某些动作或事件可以按不同顺序执行,可以相加、合并或全部省略(例如,实践所述技术未必需要所有所描述的动作或事件)。此外,在某些实例中,可以(例如)通过多线程处理、中断处理或多个处理器同时而非依序地执行动作或事件。
[0192] 在一或多个实例中,所描述的功能可用硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能可以作为一或多个指令或代码在计算机可读媒体上存储或发射,并且由基于硬件的处理单元来执行。计算机可读媒体可以包含计算机可读存储媒体,其对应于例如数据存储媒体或通信媒体等有形媒体,通信媒体(例如)包含根据通信协议促进将计算机程序从一处传送到另一处的任何媒体。按这种方式,计算机可读媒体大体上可对应于(1)有形计算机可读存储媒体,其为非暂时性或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一个或多个处理器存取以检索用于实施本公开中所描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可以包含计算机可读媒体。
[0193] 借助于实例而非限制,这类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储装置、快闪存储器或可以用来存储呈指令或数据结构形式的期望程序代码并且可以由计算机存取的任何其它媒体。并且,任何连接恰当地被称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源发射指令,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波等无线技术随后包含在媒体的定义中。然而,应理解,所述计算机可读存储媒体和数据存储媒体并不包含连接、载波、信号或其它暂时性媒体,而实际上是针对非暂时性的有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
[0194] 可由例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任何一个。另外,在一些方面中,可以在经配置用于编码和解码的专用硬件和/或软件模块内提供本文中所描述的功能性,或者被并入在组合式编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
[0195] 本公开的技术可以在包含无线手持机、集成电路(IC)或IC集合(例如,芯片组)的各种广泛装置或设备中实施。本公开中所描述的各种组件、模块或单元是为了强调经配置以执行所公开的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可以配合合适的软件和/或固件组合在译码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
[0196] 已描述了各种实例。这些和其它实例处于随附权利要求书的范围内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈