首页 / 专利库 / 资料储存系统 / 数据压缩 / 无损压缩 / 熵编码 / 色彩空间、色彩采样率和/或比特深度的自适应切换

色彩空间、色彩采样率和/或比特深度的自适应切换

阅读:1026发布:2020-05-23

专利汇可以提供色彩空间、色彩采样率和/或比特深度的自适应切换专利检索,专利查询,专利分析的服务。并且一种对视频序列的单元进行自适应编码和解码时的方法或设备可改善编码效率。一种方法或设备包括含在视频序列内的各单元之间自适应切换色彩空间的编码/解码。一种方法或设备包括含在视频序列内的各单元之间自适应切换色彩 采样 率的编码/解码。又一种方法或设备包括含在视频序列内的各单元之间自适应切换比特深度的编码/解码。,下面是色彩空间、色彩采样率和/或比特深度的自适应切换专利的具体信息内容。

1.一种或多种存储计算机可执行指令的计算机可读介质,所述计算机可执行指令使得计算设备在由此被编程时执行包括以下的操作:
在比特流中接收经编码数据,所述经编码数据包括指示色彩空间、色彩采样率和/或比特深度如何在序列内的视频的至少一些单元之间切换的一个或多个信号,所述色彩空间包括RGB型色彩空间和YCoCg色彩空间,其中所述一个或多个信号包括所述视频的所述单元中的给定单元的标志值,所述标志值已经使用上下文自适应二进制算术编码来进行熵编码,并且其中所述标志值指示所述给定单元的在所述RGB型色彩空间和所述YCoCg色彩空间之间的选择;以及
解码所述经编码数据,包括:
对所述标志值进行熵解码;
在所述解码期间在所述序列内的所述视频的所述至少一些单元之间在空间和/或时间上切换所述色彩空间、所述色彩采样率和/或所述比特深度;以及
根据一条或多条规则来选择性地执行对先前重构的内容的去滤波,包括取决于两个毗邻块的主要分量是否具有非零残留值来调整所述去块滤波的强度。
2.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述视频的所述单元是所述序列的给定图片的变换块。
3.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述给定单元的不同色彩分量具有不同比特深度。
4.如权利要求1所述的一种或多种计算机可读介质,其特征在于,当对于所述给定单元存在残留值时,所述标志值被信号化为所述给定单元的块句法结构的一部分。
5.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述切换包括对所述给定单元执行所述YCoCg色彩空间与所述RGB型色彩空间之间的色彩空间转换操作。
6.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述切换进一步包括对色彩空间转换操作的至少一些结果执行左移位操作。
7.一种在实现视频编码器的计算设备中的方法,该方法包括:
对序列中的视频进行编码,包括:
在所述编码期间在所述序列内的所述视频的至少一些单元之间在空间和/或时间上切换色彩空间、色彩采样率和/或比特深度,所述色彩空间包括RGB型色彩空间和YCoCg色彩空间:
设置所述视频的各单元中的给定单元的标志值,所述标志值指示所述给定单元的在所述RGB型色彩空间和所述YCoCg色彩空间之间的选择;
使用上下文自适应二进制算术编码来对算术标志值进行熵编码;以及
根据一条或多条规则来选择性地执行对先前重构的内容的去块滤波,包括取决于两个毗邻块的主要分量是否具有非零残留值来调整所述去块滤波的强度;以及在比特流中输出经编码的数据,所述经编码的数据包括指示所述色彩空间、所述色彩采样率和/或所述比特深度如何在所述序列内的所述视频的所述至少一些单元之间切换的一个或多个信号,其中所述一个或多个信号包括所述给定单元的标志值。
8.如权利要求7所述的方法,其特征在于,所述编码进一步包括在以下各项之间进行选择:
对于有损编码,使用色彩空间转换操作来在所述RGB型色彩空间和所述YCoCg色彩空间之间切换;以及
对于无损编码,使用可逆色彩空间转换操作来在所述RGB型色彩空间和所述YCoCg色彩空间之间切换。
9.如权利要求7所述的方法,其特征在于,当对于所述给定单元存在残留值时,所述标志值被信号化为所述给定单元的块句法结构的一部分。
10.如权利要求7所述的方法,其特征在于,所述视频的所述单元是所述序列的给定图片的变换块。
11.如权利要求7所述的方法,其特征在于,所述给定单元的不同色彩分量具有不同比特深度。
12.如权利要求7所述的方法,其特征在于,所述切换包括对所述给定单元执行所述RGB型色彩空间与所述YCoCg色彩空间之间的色彩空间转换操作。
13.如权利要求12所述的方法,其特征在于,所述切换进一步包括对色彩空间转换操作的至少一些结果执行右移位操作。
14.如权利要求12所述的方法,其特征在于,所述编码进一步包括:
对所述给定单元执行预测操作。
15.一种包括一个或多个处理器和存储器计算机系统,其中所述计算机系统实现被配置成执行各项操作的视频解码器,所述操作包括:
在比特流中接收经编码数据,所述经编码数据包括指示色彩空间、色彩采样率和/或比特深度如何在序列内的视频的至少一些单元之间切换的一个或多个信号,所述色彩空间包括RGB型色彩空间和YCoCg色彩空间,其中所述一个或多个信号包括所述视频的所述单元中的给定单元的标志值,所述标志值已经使用上下文自适应二进制算术编码来进行熵编码,并且其中所述标志值指示所述给定单元的在所述RGB型色彩空间和所述YCoCg色彩空间之间的选择;以及
解码所述经编码数据,包括:
对所述标志值进行熵解码;
在所述解码期间在所述序列内的所述视频的所述至少一些单元之间在空间和/或时间上切换所述色彩空间、所述色彩采样率和/或所述比特深度;以及
根据一条或多条规则来选择性地执行对先前重构的内容的去块滤波,包括取决于两个毗邻块的主要分量是否具有非零残留值来调整所述去块滤波的强度。
16.如权利要求15所述的计算机系统,其特征在于,所述视频的所述单元是所述序列的给定图片的变换块。
17.如权利要求15所述的计算机系统,其特征在于,所述给定单元的不同色彩分量具有不同比特深度。
18.如权利要求15所述的计算机系统,其特征在于,当对于所述给定单元存在残留值时,所述标志值被信号化为所述给定单元的块句法结构的一部分。
19.如权利要求15所述的计算机系统,其特征在于,所述切换包括对所述给定单元执行所述YCoCg色彩空间与所述RGB型色彩空间之间的色彩空间转换操作。
20.如权利要求19所述的计算机系统,其特征在于,所述切换进一步包括对色彩空间转换操作的至少一些结果执行左移位操作。

说明书全文

色彩空间、色彩采样率和/或比特深度的自适应切换

[0001] 本申请是申请日为2014年3月4日、申请号为201480029679.5、名为“色彩空间、色彩采样率和/或比特深度的自适应切换”的申请的分案申请。
[0002] 背景
[0003] 工程师使用压缩(也叫做源编码(source coding或source encoding))来降低数字视频的比特率。压缩通过将视频信息转换成较低比特率的形式来降低存储和传送该信息的成本。
[0004] 解压(也被称为解码)从压缩的形式中重构一种版本的原始信息。“编解码器”是编码器/解码器系统。
[0005] 在过去的二十年中,已采用了各种视频编解码器标准,包括ITU-T H.261、H.262(MPEG-2或ISO/IEC 13818-2)、H.263和H.264(MPEG-4AVC或ISO/IEC 14496-10)标准、MPEG-1(ISO/IEC 1 1172-2)和MPEG-4可视(ISO/IEC 14496-2)标准以及SMPTE 421M(VC-1)标准。
[0006] 最近,H.265/HEVC标准(ITU-T H.265或ISO/IEC 23008-2)已被批准。目前,(例如,用于可缩放视频编码/解码、用于在样本比特深度或色度采样率方面具有较高保真度的视频的编码/解码、用于屏幕捕捉内容、或用于多视图编码/解码的)H.265/HEVC标准的扩展处于开发中。视频编解码器标准通常定义针对经编码的视频比特流的句法的选项,从而详述当在编码和解码时使用特定特征时该比特流中的参数。在许多情况下,视频编解码器标准还提供关于解码器应当执行以在解码时取得一致的结果的解码操作的细节。除了编解码器标准外,各种专用编解码器格式定义针对经编码的视频比特流的句法的其他选项以及相应的解码操作。
[0007] 视频源(诸如相机、动画输出、屏幕捕捉模等)通常在特定色彩空间中提供视频,其中该视频的色彩分量是根据特定色彩采样率来子采样的,并且样本值具有特定比特深度。一般来说,色彩空间(有时被称为色彩模型)是用于将各色彩表示为每物理位置n个值的模型,n>1,其中这n个值中的每一个提供针对那个位置的色彩分量值。例如,在YUV色彩空间中,亮度(或Y)分量值表示某位置处的近似亮度,且多个色度(或U和V)分量值表示该位置处的色差。或者,在RGB色彩空间中,红色(R)分量值表示某位置处的红色强度,绿色(G)分量值表示该位置处的绿色强度,且蓝色(B)分量值表示该位置处的蓝色强度。在历史上,不同的色彩空间具有针对不同应用(诸如,显示、打印、广播和编码/解码)的优点。各样本值可使用色彩空间变换操作在各色彩空间之间转换。
[0008] 色彩采样率(有时被称为色度采样率)指代各色彩分量之间的相对空间分辨率。例如,对于为4:4:4的色彩采样率,针对次要分量(例如,YUV的U和V分量)的信息具有与针对主要分量(例如,YUV的Y分量)的信息相同的空间分辨率。对于为4:2:2或4:2:0的色彩采样率,针对次要分量的信息相对于针对主要分量的信息被下采样。YUV 4:2:0格式通常用于编码/解码。作为设计原理,将YUV 4:2:0格式用于编码/解码的判定以下面的理解为前提:即对于大多数使用情况,查看者不会注意到用YUV 4:2:0格式编码/解码的视频和用YUV 4:4:4格式编码/解码的视频之间的许多视觉差异。因此,YUV 4:2:0格式(其每具有更少的样本)的压缩优点是引人注意的。
[0009] 比特深度指代每样本值比特数。常见的比特深度为每样本8比特、每样本10比特和每样本12比特。一般来说,每样本具有更多的比特允许视频的更精确的色彩粒度,但将更多的存储用于该视频。每样本具有更少的比特通常以降低的质量为代价降低比特率。
[0010] 许多商业上可用的视频编码器和解码器仅支持YUV 4:2:0格式。其他商业上可用的编码器和解码器(例如,针对H.264/AVC标准或H.265/HEVC标准的编码器和解码器)允许编码器为给定序列指定色彩空间、色彩采样率和比特深度。指定的色彩空间、色彩采样率和比特深度被用于整个视频序列。这些方法并没有为可能在单个视频序列内处理非常不同种类的视频内容的通用编解码器系统提供足够的灵活性。
[0011] 概述
[0012] 概要来说,该详细描述呈现了在自适应编码和解码的领域中的创新。例如,这些创新中的一些涉及在编码期间在视频序列内的各单元之间切换色彩空间的编码器以及相应的解码器。其他创新涉及在编码期间在视频序列内的各单元之间切换色彩采样率的编码器以及相应的解码器。又一些创新涉及在编码期间在视频序列内的各单元之间切换比特深度的编码器以及相应的解码器。这些创新在许多场景下都可改善编码效率。
[0013] 根据本文中描述的创新的第一方面,图像或视频编码器编码序列中的视频。作为该编码的一部分,编码器在该序列内的视频的至少一些单元(例如,该序列的图片、该序列的给定图片的片、该序列的给定图片的块)之间空间地和/或时间地切换色彩空间、色彩采样率和/或比特深度。编码器在比特流中输出经编码的数据。经编码的数据包括指示色彩空间、色彩采样率和/或比特深度如何在序列内的视频的至少一些单元之间切换的一个或多个信号
[0014] 相应的解码器接收比特流中经编码的数据。经编码的数据包括指示色彩空间、色彩采样率和/或比特深度如何在序列内的视频的至少一些单元(例如,该序列的图片、该序列的给定图片的片、该序列的给定图片的块)之间切换的一个或多个信号。解码器解码经编码的数据。作为解码的一部分,解码器在序列内的视频的至少一些单元之间空间地和/或时间地切换色彩空间、色彩采样率和/或比特深度。
[0015] 例如,在编码或解码期间,该切换包括使用色彩空间变换操作在两个色彩空间之间进行改变。对于色彩空间变换操作,色彩空间可包括至少一个YUV型色彩空间和至少一个RGB型色彩空间。
[0016] 或者,作为另一示例,在编码或解码期间,该切换包括使用色彩空间重排序操作在两个色彩空间之间进行改变。对于色彩空间重排序操作,色彩空间可包括多个RGB型色彩空间。
[0017] 或者,作为另一示例,在编码或解码期间,该切换包括在两个色彩采样率之间进行改变。色彩采样率可包括4:4:4、4:2:2、4:2:0和4:0:0中的两个或更多个。
[0018] 或者,作为另一示例,在编码或解码期间,该切换包括在两个比特深度之间进行改变。比特深度可包括每样本12比特、每样本10比特和每样本8比特中的两个或更多个。同样,视频的给定单元的不同色彩分量可具有不同的比特深度。
[0019] (诸)信号的指示色彩空间、色彩采样率和/或比特深度如何切换的句法和语义取决于实现。例如,(诸)信号包括视频的给定单元的标志值。该标志值指示在针对色彩空间、色彩采样率或比特深度的两个选项之间的选择。或者,(诸)信号包括针对视频的给定单元的句法元素。该句法元素指示在针对色彩空间、色彩采样率或比特深度的三个或更多个选项之间的选择。信号可被预测地编码,在该情况下,某参数针对视频的给定单元的增量值表示该参数的实际值和其预测值之间的差。预测值可以是序列层参数。或者,预测值可基于该参数针对该视频的一个或多个先前单元的一个或多个实际值。
[0020] 除了(诸)信号外,经编码的数据还可包括标识或定义色彩空间、色彩采样率和/或比特深度的信息。例如,该信息可包括对两个色彩空间之间的色彩空间变换操作有用的值的矩阵。
[0021] 编码或解码可包括至少部分地基于先前重构的内容的样本值集合来预测当前图片中的当前块的样本值。对于图片内预测,先前重构的内容的样本值集合是当前图片的一部分。对于图片间预测,先前重构的内容的样本值集合是参考图片的一部分。作为该预测的一部分,编码器或解码器可评估先前重构的内容的样本值集合和当前块的样本值是否处于不同的格式。
[0022] 在一些情况下,先前重构的内容的样本值集合是用第一格式存储的,并且当前块的样本值是用不同于第一格式的第二格式来编码的。在这种情况下,作为预测的一部分,编码器或解码器可(a)将先前重构的内容的样本值集合从第一格式转换到第二格式(例如在两个色彩空间之间转换、在两个色彩采样率之间转换和/或在两个比特深度之间转换),(b)使用先前重构的内容的经转换的样本值集合来预测当前块的样本值,以及(c)至少部分地基于当前块的预测的样本值来重构当前块的样本值。或者,作为预测的一部分,编码器或解码器可(a)使用先前重构的内容的样本值集合来预测当前块的样本值,(b)将当前块的预测的样本值从第一格式转换成第二格式,以及(c)至少部分地基于当前块的经转换的预测的样本值来重构当前块的样本值。在预测后,编码器或解码器可(d)将当前块的经重构的样本值从第二格式转换成第一格式,以及(e)存储当前块的经转换的重构的样本值(处于第一格式)作为先前重构的内容的一部分。
[0023] 编码或解码还可包括根据一个或多个规则来对先前重构的内容进行去块。例如,作为去块的一部分,编码器或解码器取决于两个毗邻块的主要分量是否具有非零残留值来调整去块过滤器的强度。或者,作为去块的一部分,编码器或解码器取决于两个毗邻块的相应分量是否具有非零残留值来调整去块过滤器的强度。
[0024] 由此,(诸)规则可考虑两个毗邻块的不同色彩空间。
[0025] 对色彩空间、色彩采样率和/或比特深度进行自适应切换的创新可被实现为方法的一部分、适于执行该方法的计算设备的一部分、或存储使得计算设备执行该方法的计算机可执行指令的有形计算机可读介质的一部分。
[0026] 各创新可以结合地或分开地使用。具体地,视频编码器和解码器可(以固定的色彩采样率和固定的比特深度)仅自适应地切换视频序列内的色彩空间。或者,视频编码器和解码器可(以固定的色彩空间和固定的比特深度)仅自适应地切换视频序列内的色彩采样率。或者,视频编码器和解码器可(以固定的色彩空间和固定的色彩采样率)仅自适应地切换视频序列内的比特深度。或者,视频编码器和解码器可自适应地(1)切换视频序列内的色彩空间和色彩采样率,但不切换比特深度,(2)切换视频序列内的色彩空间和比特深度,但不切换色彩采样率,或(2)切换视频序列内的色彩采样率和比特深度,但不切换色彩空间。或者,视频编码器和解码器可自适应地切换视频序列内的色彩空间、色彩采样率和比特深度。
[0027] 参考附图阅读以下详细描述,将更清楚本发明的前述和其他目标、特征和优点。
[0028] 附图简述
[0029] 图1是其中可实现所描述的一些实施例的示例计算系统的示图。
[0030] 图2a和2b是其中可实现所描述的一些实施例的示例网络环境的示图。
[0031] 图3是结合其可实现所描述的一些实施例的示例编码器系统的示图。
[0032] 图4是结合其可实现所描述的一些实施例的示例解码器系统的示图。
[0033] 图5a和5b是示出结合其可实现所描述的一些实施例的示例视频编码器的示图。
[0034] 图6是示出结合其可实现所描述的一些实施例的示例视频解码器的示图。
[0035] 图7是示出具有可为屏幕捕捉提供输入的内容的计算机桌面环境的示图。
[0036] 图8是示出具有自然视频内容和人工视频内容的复合视频的示图。
[0037] 图9是示出针对序列中的图片的图片自适应色彩空间、色彩采样率和/或比特深度的示图。
[0038] 图10是示出针对序列中的图片的片的片自适应色彩空间、色彩采样率和/或比特深度的示图。
[0039] 图11是示出针对序列中的图片的片的块的块自适应色彩空间、色彩采样率和/或比特深度的示图。
[0040] 图12是示出用于在编码期间自适应地切换色彩空间、色彩采样率和/或比特深度的通用技术的流程图,且图13是示出用于在编码期间在逐单元的基础上进行自适应切换的更详细的示例技术的流程图。
[0041] 图14是示出用于在解码期间自适应地切换色彩空间、色彩采样率和/或比特深度的通用技术的流程图,且图15是示出用于在解码期间在逐单元的基础上进行自适应切换的更详细的示例技术的流程图。
[0042] 图16是用于从处于一种格式的先前重构的内容的样本值集合中预测用不同格式编码的块的样本值的技术的流程图。
[0043] 详细描述
[0044] 该详细描述呈现了在自适应编码和解码的领域中的创新。例如,这些创新中的一些涉及在编码期间在视频序列内的各单元之间切换色彩空间的编码器以及相应的解码器。其他创新涉及在编码期间在视频序列内的各单元之间切换色彩采样率的编码器以及相应的解码器。又一些创新涉及在编码期间在视频序列内的各单元之间切换比特深度的编码器以及相应的解码器。这些创新在许多场景下都可改善编码效率。
[0045] 一般来说,色彩空间(有时被称为色彩模型)是用于将各色彩表示为每物理位置n个值的模型,n>1,其中这n个值中的每一个提供针对那个位置的色彩分量值。
[0046] 例如,在YUV色彩空间中,亮度(或Y)分量值表示某位置处的近似亮度,且多个色度(或U和V)分量值表示该位置处的色差。色差值(以及从YUV色彩空间到诸如RGB的另一色彩空间和/或从该另一色彩空间到YUV色彩空间的转换操作)的精确定义取决于实现。通常,出于编码和解码的目的,Y分量是主要分量,且U和V分量是次要分量。一般来说,如本文中所使用的,术语YUV型色彩空间指示具有亮度(或辉度)分量和一个或多个色度(或色差)分量的任意色彩空间,包括Y’UV、YIQ、Y’IQ和YDbDr以及诸如YCbCr和YCoCg之类的变型。
[0047] 所使用的分量信号测量可通过应用非线性传递特征函数(一般被称为“伽玛预补偿”来调整,并通常通过使用基本象征符来表示,但是为了便于印刷通常会省略该基本象征符)。或者,这些分量信号测量可在与光振幅具有线性关系的域中。亮度和色度分量信号可与人类视觉系统对明亮度和色彩的感知对准,或者亮度和色度分量信号可在某种程度上偏离这样的测量(例如,如在YCoCg变型中,其中应用了简化对色彩分量值的计算的公式)。
[0048] 作为另一示例,在RGB色彩空间中,红色(R)分量值表示某位置处的红色强度,绿色(G)分量值表示该位置处的绿色强度,并且蓝色(B)分量值表示该位置处的蓝色强度。如本文中所使用的,术语RGB型色彩空间指示具有处于任何次序的R、G和B色彩分量的色彩空间。示例包括RGB、BGR和GBR色彩空间,出于编码和解码的目的其在主要分量方面不同。主要分量是用色彩空间的首字母来指示的(例如,RGB的R)。
[0049] 色彩采样率(有时被称为色度采样率)指代各色彩分量之间的相对空间分辨率。例如,对于为4:4:4的色彩采样率,针对次要分量(例如,YUV的U和V分量)的信息与针对主要分量(例如,YUV的Y分量)的信息具有相同的空间分辨率。对于为4:2:2或4:2:0的色彩采样率,针对次要分量的信息相对于针对主要分量的信息被下采样。与YUV 4:4:4格式相比,YUV 4:2:0格式是对色度信息进行子采样的格式,使得色度分辨率在平和垂直两者上都是亮度分辨率的一半。与YUV 4:4:4格式相比,YUV 4:2:2格式是水平地对色度信息进行子采样的格式,使得色度分辨率在水平上是亮度分辨率的一半。色彩采样率的其他示例为4:1:1(次要分量在水平上具有四分之一的分辨率)和4:0:0(次要分量被丢弃)。色彩子采样通常被应用于YUV型色彩空间。RGB型色彩空间通常具有为4:4:4的色彩采样率,但可根据哪些次要色彩分量被子采样而具有不同的色彩采样率。
[0050] 虽然YUV 4:2:0格式被方便地用于进行视频编码和解码,但存在视频具有更丰富的色彩信息并且更高的色彩保真度可被调整的一些使用情况。在这样的使用情况下,YUV 4:4:4和YUV 4:2:0色度采样格式之间的差异被查看者更容易地感知到。例如,为了对计算机屏幕文本内容、具有人工硬边线化边界的动画化的视频内容、或更通常地视频内容的某些特征(诸如,滚动标题和硬边线化图形、或者信息集中在色度通道中的视频)进行编码/解码,4:4:4格式可优于4:2:0格式。
[0051] 比特深度指代每样本值比特数。常用的比特深度为每样本8比特、每样本10比特和每样本12比特。其他可能的比特深度包括每样本4比特和每样本16比特。
[0052] 虽然本文中描述的操作是被适当描述为由视频编码器或视频解码器来执行,但在许多情况中,这些操作可由另一类型的媒体处理工具(例如图像编码器或图像解码器)来执行。例如,可针对诸如静止图像编码/解码、医疗扫描内容编码/解码、多谱图像内容编码/解码之类的应用执行这些操作。
[0053] 本文中描述的一些创新是参考专用于H.265/HEVC标准的句法元素和操作来示出的。例如,对H.265/HEVC标准的草稿版本JCTVC-P1005—即2014年2月的“高效视频编码(HEVC)范围扩展文本规范:第6稿”JCTVC-P1005_vl作出参考。本文中描述的各创新还可以被实现为针对其它标准或格式。
[0054] 更一般地,本文中描述的各示例的各种替代是可能的。例如,本文中描述的一些方法可以通过改变描述的方法动作的顺序、通过拆分、重复或忽略某些方法动作等来更改。所公开的技术的各方面能够被组合地或分开地使用。不同的实施例使用所描述的创新中的一个或多个。本文中描述的一些创新解决了背景中指出的一个或多个问题。通常,所给出的技术/工具并不解决所有这些问题。
[0055] I.示例计算系统
[0056] 图1示出了其中可实现几个所描述的创新的合适计算系统(100)的概括示例。计算系统(100)并不旨对使用范围或功能提出任何限制,因为这些创新可以在不同的通用或专用计算系统中实现。
[0057] 参考图1,计算系统(100)包括一个或多个处理单元(110、115)和存储器(120、125)。处理单元(110、115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器或任何其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能。例如,图1示出中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120、125)可以是(诸)处理单元可访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或这两者的某一组合。存储器(120,125)存储实现针对色彩空间、色彩采样率和/或比特深度的自适应切换的一个或多个创新的软件(180),该软件处于适用于由(诸)处理单元执行的计算机可执行指令的形式。
[0058] 计算系统可具有附加的特征。例如,计算系统(100)包括存储(140)、一个或多个输入设备(150)、一个或多个输出设备(160)以及一个或多个通信连接(170)。诸如总线、控制器或网络之类的互连机制(未示出)将计算系统(100)的各组件互连。通常,操作系统软件(未示出)为在计算系统(100)中执行的其它软件提供操作环境,并协调计算系统(100)的各组件的活动。
[0059] 有形存储(140)可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、CD-ROM、DVD或可用于储存信息并可在计算系统(100)内访问的任何其他介质。存储器(140)存储实现针对色彩空间、色彩采样率和/或比特深度的自适应切换的一个或多个创新的软件(180)的指令。
[0060] (诸)输入设备(150)可以是触摸输入设备(诸如键盘鼠标、笔或跟踪球)、语音输入设备、扫描设备或向计算系统(100)提供输入的另一设备。对于视频,(诸)输入设备(150)可以是相机、视频卡、TV调谐卡、屏幕捕捉模块或接受模拟或数字形式的视频输入的类似设备、或将视频输入读到计算系统(100)中的CD-ROM或CD-RW。(诸)输出设备(160)可以是显示器、打印机、扬声器、CD刻录机或提供来自计算系统(100)的输出的另一设备。
[0061] (诸)通信连接(170)允许通过通信介质与另一计算实体通信。通信介质传达诸如计算机可执行指令、音频或视频输入或输出、或已调制数据信号中的其他数据之类的信息。已调制数据信号是使其一个或多个特征以在信号中编码信息的方式设置或改变的信号。作为示例而非限制,通信介质可以使用电的、光学的、RF或其它载体。
[0062] 各创新可以在计算机可读介质的一般上下文中描述。计算机可读介质是可在计算环境内访问的任何可用有形介质。作为示例而非局限,对于计算系统(100),计算机可读介质包括存储器(120、125)、存储(140)、和以上任意的组合。
[0063] 各创新可在计算机可执行指令(诸如包括在程序模块中的在目标现实或虚拟处理器上在计算系统中执行的那些计算机可执行指令)的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。如各实施例中所描述的,这些程序模块的功能可以被组合,或者在这些程序模块之间拆分。针对各程序模块的计算机可执行指令可以在本地或分布式计算系统中执行。
[0064] 术语“系统”和“设备”在本文中被互换地使用。除非上下文明确指示,否则,术语并不暗示对计算系统或计算设备的类型的任何限制。一般来说,计算系统或计算设备可以是本地的或分布式的,并且可以包括具有实现本文中描述的功能的软件的专用硬件和/或通用硬件的任意组合。
[0065] 所公开的方法还可使用被配置成执行所公开的方法中的任一者的专用计算硬件来实现。例如,所公开的方法可以由被专设计或配置成实现所公开的方法中的任一者的集成电路(例如,诸如ASIC数字信号处理器(“DSP”)之类的ASIC、图像处理单元(“GPU”)、或诸如场可编程门阵列(“FPGA”)之类的可编程逻辑器件(“PLD”))来实现。
[0066] 出于介绍的目的,本详细描述使用了如“确定”和“使用”等术语来描述计算系统中的计算机操作。这些术语是对由计算机执行的操作的高级抽象,且不应与人类所执行的动作混淆。对应于这些术语的实际的计算机操作取决于实现而不同。
[0067] II.示例网络环境
[0068] 图2a和2b示出了包括视频编码器(220)和视频解码器(270)的示例网络环境(201,202)。编码器(220)和解码器(270)使用合适的通信协议通过网络(250)连接。网络(250)可包括因特网或另一计算机网络
[0069] 在图2a所示的网络环境(201)中,每个实时通信(“TC”)工具(210)都包括用于双向通信的编码器(220)和解码器(270)两者。给定的编码器(220)可以产生符合H.265/HEVC标准、SMPTE 421M标准、ISO/TEC 14496-10标准(也称为H.264或AVC)、另一标准、或专用格式的变型或扩展的输出,使得相应的解码器(270)接受来自编码器(220)的经编码的数据。双向通信可以是视频会议、视频电话呼叫或其它双方或多方通信场景的部分。虽然,图2a中的网络环境(201)包括两个实时通信工具(210),但网络环境(201)可改为包括参与多方通信的三个或更多个实时通信工具(210)。
[0070] 实时通信工具(210)管理编码器(220)作出的编码。图3示出可以被包括在实时通信工具(210)中的示例编码器系统(300)。替换地,实时通信工具(210)使用另一编码器系统。实时通信工具(210)还管理解码器(270)做出的解码。图4示出可以被包括在实时通信工具(210)中的示例解码器系统(400)。替换地,实时通信工具(210)使用另一解码器系统。
[0071] 在图2b中示出的网络环境(202)中,编码工具(212)包括编码供递送给多个回放工具(214)的视频的编码器(220),此多个回放工具(214)包括解码器(270)。单向通信可被提供用于视频监视系统、web相机监视系统、屏幕捕捉模块、远程桌面会议演示或在其中编码视频并将其从一个位置发送到一个或多个其它位置的其它场景。虽然在图2b中的网络环境(202)包括两个回放工具(214),但该网络环境(202)可以包括更多或更少的回放工具(214)。一般来说,回放工具(214)与编码工具(212)通信以确定回放工具(214)要接收的视频流。回放工具(214)接收该流、缓冲所接收的经编码的数据达合适的时间段并开始解码和回放。
[0072] 图3示出可以被包括在编码工具(212)中的示例编码器系统(300)。替换地,编码工具(212)使用另一编码器系统。编码工具(212)还可以包括用于管理与一个或多个回放工具(214)的连接的服务器侧控制器逻辑。图4示出可以被包括在回放工具(214)中的示例解码器系统(400)。替换地,回放工具(214)使用另一解码器系统。回放工具(214)还可以包括用于管理与一个或多个编码工具(212)的连接的客户机侧控制器逻辑。
[0073] III.示例编码器系统
[0074] 图3是结合其可实现所描述的一些实施例的示例编码器系统(300)的框图。编码器系统(300)可以是能够用多种编码模式中的任一者(诸如用于实时通信的低等待时间编码模式、转码模式和用于从文件或流中产生供回放的媒体的较高等待时间编码模式)操作的通用编码工具,或它可以是适用于一种这样的编码模式的专用编码工具。编码器系统(300)可适用于编码特定类型的内容(例如,屏幕捕捉内容),或者它可适用于编码若干不同类型的内容(例如,屏幕捕捉内容和自然视频)中的任一者。编码器系统(300)可以被实现为操作系统模块、应用库的部分、独立的应用。总体上,编码器系统(300)从视频源(31)接收源视频帧序列(311)并产生经编码的数据作为到信道(390)的输出。输出到信道的经编码的数据可包括通过色彩空间、色彩采样率和/或比特深度的自适应切换来编码的内容。
[0075] 视频源(310)可以是相机、调谐卡、存储介质、屏幕捕捉模块或其它数字视频源。视频源(310)以例如每秒30帧的帧速率产生视频帧序列。如本文中所使用的,术语“帧”一般指代源、经编码的或经重构的图像数据。对于逐行扫描视频,帧是逐行扫描视频帧。对于隔行视频,在各示例实施例中,隔行视频帧可以在编码之前被去隔行。
[0076] 替换地,两个互补的隔行视频场可以被编码在一起作为单个视频帧或者被编码成两个经分开编码的场。除了指示逐行扫描视频帧或隔行扫描视频帧之外,术语“帧”或“图片”可以指示单个非成对的视频场、互补的成对视频场、表示在给定时间的视频对象的视频对象平面、或较大图像中的感兴趣区域。视频对象平面或区域可以是包括场景的多个对象或区域的较大图像的一部分。
[0077] 抵达的源帧(311)被存储在包括多个帧缓冲器存储区域(321、322、…、32n)的源帧临时存储器存储区域(320)中。帧缓冲器(321、322等)在源帧存储区域(320)中保持一个源帧。在一个或多个源帧(311)已被存储在帧缓冲器(321,322等)中后,帧选择器(330)从源帧存储区域(320)中选择一个体源帧。帧选择器(330)选择帧以供输入到编码器(340)的次序可不同于视频源(310)产生这些帧的次序,例如某些帧的编码可以被按序延迟,从而允许一些更后面的帧被先编码并由此促成时间上向后的预测。在编码器(340)之前,编码器系统(300)可包括预处理器(未示出),该预处理器在编码之前执行对选中的帧(331)的预处理(例如滤波)。
[0078] 编码器(340)编码选中的帧(331)以产生经编码的帧(341)并且还产生存储器管理控制操作(“MMCO”)信号(342)或参考图片集(“RPS”)信息。RPS是在针对当前帧或任意后续帧的运动补偿中可用于供参考的帧集。如果当前帧不是已被编码的第一帧,则在执行其编码处理时,编码器(340)可以使用已经被存储在经解码帧的临时存储器存储区域(360)中的一个或多个先前被编码/解码的帧(369)。这样的存储的经解码帧(369)被用作用于当前源帧(331)的内容的帧间预测的参考帧。MMCO/RPS信息(342)向解码器指示哪些经重构的帧可被用作参考帧,并且因此应该被存储在帧存储区域中。
[0079] 编码器(340)接受处于特定色彩空间(例如,YUV型色彩空间、RGB型色彩空间)中的、具有特定色彩采样率(例如,4:4:4)和每样本特定比特数(例如,每样本12比特)的视频。在编码期间,对于不同的图片、片、块或视频的其他单元,编码器(340)可执行色彩空间转换以在YUV型色彩空间和RGB型色彩空间之间变换或从某一其他色彩空间变换/变换到某一其他色彩空间。编码器(340)还可执行色彩空间转换以对色彩分量进行重排序,从而改变哪个色彩分量作为主要分量(例如,在RGB、BGR和GBR格式之间转换)。在编码期间,编码器(340)还可执行重采样处理以针对不同图片、片、块或视频的其他单元改变色彩采样率(例如,在
4:4:4、4:2:2和4:2:0格式之间进行改变)。编码器(340)还可在编码期间针对不同的图片、片、块或视频的其他单元改变比特深度(例如,在每样本12比特、每样本10比特和每样本8比特之间进行改变)。在一些示例实现中,编码器(340)可在编码期间在逐图片的基础上切换色彩空间、色彩采样率和/或比特深度。
[0080] 一般来说,编码器(340)包括执行编码任务的多个编码模块,编码任务为诸如分割成小块,色彩空间、色彩采样率和/或比特深度的自适应,帧内预测估计和预测,运动估计和补偿,频率变换,量化和熵编码。由编码器(340)执行的确切操作可以取决于压缩格式而变化。输出的经编码数据的格式可以是H.265/HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的变型或扩展。
[0081] 编码器(340)可以将帧分割成相同尺寸或不同尺寸的多个小块。例如,编码器(340)沿小块行和小块列来拆分帧,这些小块行和小块列利用帧边界定义在该帧内的小块的水平和垂直边界,其中每个小块是矩形区域。小块通常被用于提供并行处理的选项。帧还可以被组织成一个或多个片,其中一个片可以是整个帧或该帧的区域。片可以独立于帧中的其它片编码,这改善了错误复原性。出于编码和解码的目的,片或小块的内容被进一步分割成块或其它样本值集。在一些示例实现中,编码器(340)可在编码期间在逐片的基础上切换色彩空间、色彩采样率和/或比特深度。
[0082] 对于根据H.265/HEVC标准的句法来说,编码器将帧(或片或小块)的内容拆分成编码树单元。编码树单元(“CTU”)包括被组织为亮度编码树块(“CTB”)的亮度样本值和被组织为两个色度CTB的相应的色度样本值。CTU(及其CTB)的尺寸由编码器来选择,并且可例如为64x64、32x32或16x16个样本值。CTU包括一个或多个编码单元。编码单元(“CU”)具有亮度编码块(“CB”)和两个相应的色度CB。例如,具有64x64亮度CTB和两个64x64色度CTB(YUV 4:4:
4格式)的CTU可以被拆分成4个CU,其中每个CU包括一32x32亮度CB和两个32x32色度CB,并且每个CU可能被进一步拆分成更小的CU。或者,作为另一示例,具有64x64亮度CTB和两个
32x32色度CTB(YUV 4:2:0格式)的CTU可以被拆分成4个CU,其中每个CU包括一32x32亮度CB和两个16x16色度CB,并且每个CU可能被进一步拆分成更小的CU。CU的最小允许尺寸(例如
8x8、16x16)可被信号化在比特流中。
[0083] 通常,CU具有诸如帧间或帧内之类的预测模式。出于信号化预测信息(例如预测模式细节、移位值等)和/或预测处理的目的,CU包括一个或多个预测单元。预测单元(“PU”)具有亮度预测块(“PB”)和两个色度PB。对于帧内预测的CU,PU与CU具有相同的尺寸,除非CU具有最小尺寸(例如8x8)。在那个情况下,CU可被拆分成四个较小的PU(例如,如果最小CU尺寸为8x8,则PU为4x4),或者PU可具有最小CU尺寸,如CU的句法元素所指示的。出于残留编码/解码的目的,CU还具有一个或多个变换单元,其中变换单元(“TU”)具有一变换块(“TB”)和两个色度TB。在帧内预测的CU中的PU可以包含单个TU(尺寸与PU相同)或多个TU。编码器决定如何将视频分割成CTU、CU、PU、TU等。
[0084] 在H.265/HEVC实现中,片可以包括单个片段(独立的片段)或被划分成多个片段(独立的片段和一个或多个从属的片段)。片段是在小块扫描中连续排序的整数个CTU,这些CTU包含在单个网络抽象层(“NAL”)单元中。对于独立的片段,片段头部包括适用于该独立的片段的句法元素的值。对于从属片段,截短的片段头部包括适用于该从属片段的句法元素的几个值,并且从属片段的其它句法元素的值是以解码次序从在前的独立的片段的值中推导出来的。
[0085] 如本文中所使用的,术语“块”可以指示宏块、预测单元、残留数据单元、或者CB、PB或TB,或者某些其它样本值集,这取决于上下文。在一些示例实现中,编码器(340)可在编码期间在逐块的基础上切换色彩空间、色彩采样率和/或比特深度。
[0086] 回到图3,编码器根据来自源帧(331)中的其它、先前重构的样本值的预测来表示该帧(331)的帧内编码的块。对于帧内块复制(“BC”)预测,图片内估计器估计块相对于其它、先前重构的样本值的位移。帧内预测参考区域是帧中用于生成块的BC预测值的样本值的区域。帧内预测区域可以用(在BV估计中确定的)块矢量(“BV”)值来指示。对于块的帧内空间预测,图片内估计器估计相邻的经重构样本值到该块的外插。图片内估计器可以输出经熵编码的预测信息(例如帧内BC预测的BV值或帧内空间预测的预测模式(方向))。帧内预测预测器应用预测信息来确定帧内预测值。
[0087] 编码器(340)依据来自参考帧的预测来表示源帧(331)的帧间编码的预测的块。运动估计器估计块相对于一个或多个参考帧(369)的运动。当使用多个参考帧时,这多个参考帧可来自不同的时间方向或相同的时间方向。经运动补偿的预测参考区域是(诸)参考帧中用于生成当前帧的样本块的经运动补偿的预测值的样本区域。运动估计器输出诸如运动矢量(“MV”)信息之类被熵编码的运动信息。运动补偿器将MV应用于参考帧(369)以确定用于帧间预测的经运动补偿的预测值。
[0088] 编码器可以确定在块的预测值(帧内或帧间)和相应的原始值之间的差值(如果有的话)。这些预测残留值将进一步使用频率变换、量化和熵编码来编码。例如,编码器(340)为图片、小块、片和/或视频的其它部分设置量化参数(“QP”)的值,并相应地量化变换系数。编码器(340)的熵编码器压缩经量化的变换系数值以及某些辅助信息(例如MV信息、BV预测值的索引值、BV差、QP值、模式决策、参数选择)。典型的熵编码技术包括指数-Golomb编码、Golomb-ice编码、算术编码、差分编码、Huffman编码、行程长度编码、可变长度到可变长度(“V2V”)编码、可变长度到固定长度(“V2F”)编码、Lempel-Ziv(“LZ”)编码、字典编码、概率区间划分熵编码(“PIPE”)和上述编码的组合。
[0089] 熵编码器可对不同种类的信息使用不同的编码技术,并可组合地应用多个技术(例如,通过应用Golomb-Rice编码,随后应用算术编码),并可从特定编码技术内的多个码表中进行选择。
[0090] 自适应去块滤波器可以被包括在编码器(340)中的运动补偿循环内以跨经解码的帧中的块边界行和/或列平滑不连续。可替换地或另外地应用其它滤波(诸如去振铃滤波、自适应环路滤波(“ALF”)或样本自适应偏移(“SAO”)滤波,未示出)作为内环路滤波操作。
[0091] 由编码器(340)产生的经编码的数据包括针对各层比特流句法的句法元素。对于根据H.265/HEVC标准的句法,例如,图片参数集(“PPS”)是包含可与图片相关联的句法元素的句法结构。在一些示例实现中,PPS可包括指示适用于图片(或使用PPS的多个图片)的色彩空间、色彩采样率和/或比特深度的一个或多个信号以及标识或定义可用色彩空间、可用色彩采样率和/或可用比特深度的其他信息。PPS可被用于单个图片,或者PPS可被重用于序列中的多个图片。PPS通常被信号化为与图片的经编码数据分开(例如,针对PPS的一个NAL单元和针对图片的经编码数据的一个或多个其它NAL单元)。
[0092] 在图片的经编码数据内,句法元素指示要为该图片使用哪个PPS。类似地,对于根据H.265/HEVC标准的句法,序列参数集(“SPS”)是包含可与图片序列相关联的句法元素的句法结构。比特流可包括单个SPS或多个SPS。SPS通常被信号化成与序列的其它数据分开,并且其它数据中的句法元素指示要使用哪个SPS。在一些示例实现中,序列的SPS可包括标识或定义可用色彩空间、可用色彩采样率和/或可用比特深度的信息,当在序列内切换色彩空间、色彩采样率和/或比特深度时参考该信息。
[0093] 对于片级,片头部(例如,片段头部)包括适用于片(例如,独立的片段和后面的任何从属片段)的句法元素的值。在一些示例实现中,片头部可包括指示适用于片的色彩空间、色彩采样率和/或比特深度的一个或多个信号。在一些示例实现中,片头部还可包括标识或定义可用色彩空间、可用色彩采样率和/或可用比特深度的信息,当在片内切换色彩空间、色彩采样率和/或比特深度时参考该信息。对于块级(例如,对于CTU),句法结构包括适用于块的句法元素的值。在一些示例实现中,针对块的句法元素可包括指示适用于块的色彩空间、色彩采样率和/或比特深度的一个或多个信号。
[0094] 经编码的帧(341)和MMCO/RPS信息(342)(或与MMCO/RPS信息(342)等价的信息,因为在编码器(340)处已经知道各帧的依赖关系和排序结构)由解码处理仿真器(350)处理。解码处理仿真器(350)实现了解码器的一些功能,例如对任务进行解码以重构参考帧。以与MMCO/RPS信息(342)相一致的方式,解码处理仿真器(350)确定给定的经编码帧(341)是否需要被重构并被存储以供在对要编码的后续帧的帧间预测中用作参考帧。如果经编码的帧(341)需要被存储,则解码处理仿真器(350)对将由解码器进行的解码处理建模,该解码器接收经编码的帧(341)并产生相应的经解码的帧(351)。通过这么做,当编码器(340)已经使用已被存储在经解码帧存储区域(360)中的经解码的帧(369)时,解码处理仿真器(350)还使用来自存储区域(360)的经解码的帧(369)作为解码处理的一部分。
[0095] 经解码帧临时存储器存储区域(360)包括多个帧缓冲器存储区域(361、362、…、36n)。以与MMCO/RPS信息(342)相一致的方式,解码处理仿真器(350)管理存储区域(360)中的内容,以便标识出具有编码器(340)不再需要将其用作参考帧的帧的任何帧缓冲器(361、
362等)。在对解码处理进行建模之后,解码处理仿真器(350)在帧缓冲(361,362等)中存储已经以此方式标识出的新解码的帧(351)。
[0096] 经编码的帧(341)和MMCO/RPS信息(342)被缓冲在临时的经编码数据区域(370)中。被聚集在经编码数据区域(370)中的经编码数据将一个或多个图片的经编码数据作为基本经编码视频比特流的句法的一部分来包含。聚集在经编码数据区域(370)中的经编码数据还可包括与经编码的视频数据相关的媒体元数据(例如作为一个或多个补充增强信息(“SEI”)消息或视频可用性信息(“VUI”)消息中的一个或多个参数)。
[0097] 来自临时经编码数据区域(370)的经聚集的数据(371)由信道编码器(380)处理。信道编码器(380)可以(例如根据诸如ITU-T H.222.0|ISO/IEC 13818-1的媒体程序流或传输流格式,或诸如IETF RFC 3550的因特网实时传输协议格式)分组化和/或复用经聚集的数据供作为媒体流来传输或存储,在这种情况中,信道编码器(380)可以添加句法元素作为媒体传输流的句法的一部分。或者,信道编码器(380)可以(例如根据诸如ISO/IEC 14496-
12的媒体容器格式)组织经聚集的数据以供作为文件来存储,在这种情况中,信道编码器(380)可以添加句法元素作为媒体存储文件的句法的一部分。或者,更一般地,信道编码器(380)可以实现一个或多个媒体系统复用协议或传输协议,在这种情况中,信道编码器(380)可以添加句法元素作为(诸)协议的句法的一部分。信道编码器(380)将输出提供给信道(390),该信道(390)表示存储、通信连接或该输出的另一信道。
[0098] 信道编码器(380)或信道(390)还可以包括例如用于前向纠错(“FEC”)编码和模拟信号调制的其它元素(未示出)。
[0099] IV.示例解码器系统
[0100] 图4是结合其可实现所描述的一些实施例的示例解码器系统(400)的框图。解码器系统(400)可以是能够在多种解码模式(例如针对实时通信的低等待时间解码模式以及针对来自文件或流中的媒体回放的较高等待时间解码模式)中的任一者操作的通用解码工具,或它可以是适用于一种这样的解码模式的专用解码工具。解码器系统(400)可适用于解码特定类型的内容(例如,屏幕捕捉内容),或者它可适用于解码若干不同类型的内容中的任一者(例如,屏幕捕捉内容和自然视频)。解码器系统(400)可以被实现为操作系统模块、应用库的一部分或独立的应用。总体上,解码器系统(400)从信道(410)接收经编码的数据并产生经重构的帧作为针对输出目的地(490)的输出。经编码的数据可包括通过对色彩空间、色彩采样率和/或比特深度的自适应切换来编码的内容。
[0101] 解码器系统(400)包括信道(410),该信道(410)可以表示存储、通信连接或针对作为输入的经编码数据的另一信道。信道(410)产生已经被信道编码的经编码数据。信道解码器(420)可以处理经编码的数据。例如,信道解码器(420)可以(例如根据诸如ITU-T H.222.0|ISO/IEC 13818-1的媒体程序流或传输流格式,或诸如IETF RFC 3550的因特网实时传输协议格式)去分组化和/或去复用已被聚集以供作为媒体流来传输或存储的数据,在这种情况中,信道解码器(420)可以解析所添加的作为媒体传输流的句法的一部分的句法元素。或者,信道解码器(420)可以(例如根据诸如ISO/IEC 14496-12的媒体容器格式)来将已被聚集以供作为文件来存储的经编码的视频数据分开,在这种情况中,信道解码器(420)可以解析所添加的作为媒体存储文件的句法的一部分的句法元素。或者,更一般地,信道解码器(420)可以实现一个或多个媒体系统去复用协议或传输协议,在这种情况中,信道解码器(420)可以解析所添加的作为(诸)协议的句法的一部分的句法元素。
[0102] 信道(410)或信道解码器(420)还可以包括例如用于FEC解码和模拟信号解调的其它元素(未示出)。
[0103] 从信道解码器(420)输出的经编码的数据(421)被存储在临时的经编码数据区域(430)中,直到已经接收到足够数量的这样的数据。经编码的数据(421)包括经编码的帧(431)和MMCO/RPS信息(432)。在经编码数据区域(430)中的经编码数据(421)包含一个或多个图片的经编码数据作为基本编码的视频比特流的句法的一部分。在经编码数据区域(430)中的经编码数据(421)还可包括与经编码的视频数据相关的媒体元数据(例如作为一个或多个SEI消息或VUI消息中的一个或多个参数)。
[0104] 一般来说,经编码数据区域(430)临时存储经编码数据(421),直到这样的经编码数据(421)被解码器(450)使用。此时,经编码帧(431)和MMCO/RPS信息(432)的经编码数据被从经编码数据区域(430)传输到解码器(450)。当解码继续时,新的经编码数据被添加到经编码数据区域(430)并且保留在经编码数据区域(430)中的最旧的经编码数据被传输到解码器(450)。
[0105] 解码器(450)解码经编码帧(431)以产生相应的经解码帧(451)。在适当时,当执行其解码处理时,解码器(450)可以将一个或多个先前解码的帧(469)用作帧间预测的参考帧。解码器(450)从经解码帧临时存储器存储区域(460)中读取这样的先前解码的帧(469)。
[0106] 在解码期间,对于不同的图片、片、块或视频的其他单元,解码器(450)可执行色彩空间转换以在YUV型色彩空间和RGB型色彩空间之间变换或从某一其他色彩空间变换/变换到某一其他色彩空间。解码器(450)还可针对不同的图片、片、块或视频的其他单元执行色彩空间转换以对各色彩分量进行重排序,从而改变哪个色彩分量作为主要分量(例如,在RGB、BGR和GBR格式之间转换)。在解码期间,解码器(450)还可执行重采样处理以针对不同的图片、片、块或视频的其他单元改变色彩采样率和/或改变比特深度。在一些示例实现中,解码器(450)可在解码期间在逐图片的基础上切换色彩空间、色彩采样率和/或比特深度。替换地,解码器(450)可在解码期间在逐片的基础上或逐块的基础上切换色彩空间、色彩采样率和/或比特深度。
[0107] 通常,解码器(450)包括执行解码任务的多个解码模块,解码任务为诸如熵解码,对色彩空间、色彩采样率和/或比特深度的自适应,帧内预测、运动补偿的帧间预测、逆量化、逆频率变换和小块合并。由解码器(450)执行的确切操作可以取决于压缩格式而变化。
[0108] 例如,解码器(450)接收经压缩的帧或帧序列的经编码数据,并产生包括经解码的帧(451)的输出。在解码器(450)中,缓冲器接收针对经压缩的帧的经编码数据,并在适当时,使得接收到的经编码数据对熵解码器可用。熵解码器对经熵编码的量化数据以及经熵编码的辅助信息进行熵解码,通常应用编码器中执行的熵编码的逆来进行熵解码。运动补偿器将运动信息应用于一个或多个参考帧以形成针对正被重构的帧的任何帧间编码块的经运动补偿的预测值。帧内预测模块可从相邻的、先前重构的样本值中空间地预测当前块的样本值,或者对于帧内BC预测,使用帧中的帧内预测参考区域的先前重构的样本值来预测当前块的样本值。参考区域可用BV值来指示。解码器(450)还重构预测残留值。逆量化器对经熵解码的数据进行逆量化。例如,解码器(450)基于比特流中的句法元素为图片、小块、片和/或视频的其它部分设置QP值,并相应地对变换系数进行逆量化。逆频率变换器将量化的频域数据转换成空间域数据。对于帧间预测的块,解码器(450)将重构的预测残留值与经运动补偿的预测值组合。解码器(450)可以类似地将预测残留值与来自帧内预测的预测值组合。自适应去块滤波器被包括在视频解码器(450)中的运动补偿环路内以平滑经解码的帧(451)中的块边界行和/或列上的间断。
[0109] 可替换地或另外地应用其它滤波(例如去振铃滤波、ALF或SAO滤波;未示出)作为内环路滤波操作。
[0110] 经解码帧临时存储器存储区域(460)包括多个帧缓冲器存储区域(461、462、…、46n)。经解码帧存储区域(460)是经解码图片缓冲器的一个示例。解码器(450)使用MMCO/PS信息(432)来标识该解码器可将经解码帧(451)存储在其中的帧缓冲器(461、462等)。解码器(450)将经解码的帧(451)存储在那个帧缓冲器中。
[0111] 输出序列发生器(480)标识按输出次序将产生的下一帧何时可在经编码帧存储区域(460)中获得。当按输出次序将产生的下一帧(481)可在经解码帧存储区域(460)中获得时,输出序列发生器(480)读取该下一帧并将其输出到输出目的地(490)(例如显示器)。一般来说,输出序列发生器(480)将帧从经解码帧存储区域(460)中输出的次序可以与解码器(450)解码这些帧的次序不同。
[0112] V.示例视频编码器
[0113] 图5a和5b是可结合其实现所描述的一些实施例的通用视频编码器(500)的框图。编码器(500)接收包括当前图片的视频图片序列作为输入视频信号(505)并在经编码视频流(595)中产生经编码的数据作为输出。
[0114] 编码器(500)是基于块的并使用取决于实现的块格式。块还可在不同的阶段上被进一步细分,例如在预测、频率变换和/或熵编码阶段。例如,图片可以被划分成64x64块、32x32块或16x16块,这些块随后可以被划分成更小的样本值块以用于编码和解码。在针对H.265/HEVC标准的编码的实现中,编码器将图片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
[0115] 编码器(500)使用图片内编码和/或图片间编码来压缩图片。编码器(500)的许多组件被用于图片内编码和图片间编码两者。由这些组件执行的确切操作可取决于所压缩的信息的类型而变化。
[0116] 小块化模块(510)可选地将图片分割成相同尺寸或不同尺寸的多个小块。例如,小块化模块(510)沿小块行和小块列来拆分图片,所述小块行和小块列利用图片边界定义在图片内的小块的水平和垂直边界,其中每个小块是矩形区域。在H.265/HEVC实现中,编码器(500)将图片分割成一个或多个片,其中每个片包括一个或多个片段。
[0117] 通用编码控件(520)接收输入视频信号(505)的图片以及来自编码器(500)的各个模块的反馈(未示出)。整体上,通用编码控件(520)将控制信号(未示出)提供给其它模块(例如小块化模块(510)、变换器/缩放器/量化器(530)、缩放器/逆变换器(535)、图片内估计器(540)、运动估计器(550)以及帧内/帧间切换)以设置和改变编码期间的编码参数。具体地,通用编码控件(520)可判定如何在编码期间在逐图片的基础上、逐片的基础上、逐块的基础上或在某一其他基础上自适应地切换色彩空间、色彩采样率和/或比特深度。通用编码控件(520)还可在编码期间评估中间结果。通用编码控件(520)产生指示在编码期间所作出的判定的通用控制数据(522),使得对应的解码器可以作出一致的判定。通用控制数据(522)被提供给头部格式化器/熵编码器(590)。
[0118] 如果当前图片是使用图片间预测来预测的,则运动估计器(550)相对于一个或多个参考图片估计输入视频信号(505)的当前图片中的样本值块的运动。经解码图片缓冲器(570)缓冲一个或多个重构的先前编码的图片以供用作参考图片。当使用多个参考图片时,这多个参考图片可以来自不同的时间方向或相同的时间方向。运动估计器(550)产生诸如MV数据、合并模式索引值、和参考图片选择数据之类的辅助信息运动数据(552)。运动数据(552)被提供给头部格式化器/熵编码器(590)以及运动补偿器(555)。
[0119] 运动补偿器(555)将MV应用于来自经解码图片缓冲器(570)的(诸)经重构的参考图片。运动补偿器(555)产生针对当前图片的经运动补偿的预测。当图片的次要分量具有与主要分量相同的分辨率时(例如,当格式为YUV 4:4:4格式或RGB4:4:4格式时),对次要分量块应用的MV值可与对相应的主要分量块应用的MV值相同。在另一方面,当图片的次要分量相对于主要分量具有降低的分辨率时(例如,当格式为YUV 4:2:0格式时),对次要分量块应用的MV值可被缩小并可能被舍入以对分辨率方面的差异进行调整(例如,通过将MV值的垂直和水平分量除以2并且将其截短或舍入成整数值来调整)。
[0120] 在编码器(500)内的分开的路径中,图片内估计器(540)确定如何执行对输入视频信号(505)的当前图片的样本值块的图片内预测。当前图片可全部或部分使用图片内编码来编码。对于帧内空间预测,通过使用当前图片的重构(538)的值,图片内估计器(540)确定如何从当前图片的邻近的、先前重构的样本值中空间地预测当前图片中的当前块的样本值。或者,对于使用BV值的帧内BC预测,图片内估计器(540)估计当前块的样本值到当前图片内的不同候选参考区域的位移。在图5b中,候选参照区域包括重构的样本值。替换地,出于BV估计的目的,候选参考区域可包括输入样本值。
[0121] 图片内估计器(540)产生辅助信息帧内预测数据(542),诸如指示帧内预测使用空间预测还是帧内BC预测的信息(例如,每帧内块的标志值)、(针对帧内空间预测的)预测模式方向、以及(针对帧内BC预测的)BV值。帧内预测数据(542)被提供给头部格式化器/熵编码器(590)以及图片内预测器(545)。
[0122] 根据帧内预测数据(542),图片内预测器(545)从当前图片的相邻的、先前重构的样本值中空间地预测当前图片中的当前块的样本值。或者,对于帧内BC预测,图片内预测器(545)使用图片内预测参考区域的先前重构的样本值来预测当前块的样本值,图片内预测参考区域由针对当前块的BV值来指示。在一些情况中,BV值可以是BV预测值(预测的BV值)。在其它情况中,BV值可以不同于其被预测的BV值,在该情况中BV差异指示了在被预测的BV值和BV值之间的差值。当图片的次要分量具有与主要分量相同的分辨率时(例如,当格式为YUV 4:4:4格式或RGB 4:4:4格式时),对次要分量块应用的BV值可与对相应的主要分量块应用的BV值相同。另一方面,当图片的次要分量相对于主要分量具有降低的分辨率时(例如,当格式为YUV 4:2:0格式时),对次要分量块应用的BV值可被缩小并可能被舍入以对分辨率方面的差异进行调整(例如,通过将BV值的垂直和水平分量除以2并且将其截短或舍入成整数值来调整)。
[0123] 帧内/帧间切换选择对给定块的预测(558)将是经运动补偿的预测还是图片内预测。对于非跳跃模式块,预测(558)的块和输入视频信号(505)的原始当前图片的对应部分之间的差异(如果有的话)提供残留值(518)。在当前图片的重构期间,对于非跳跃模式块,经重构的残留值与预测(558)组合来从视频信号(505)中产生对原始内容的近似或精确的重构(538)。(在有损压缩中,一些信息从视频信号(505)中丢失。)
[0124] 在变换器/缩放器/量化器(530)中,频率变换器将空间域视频信息转换为频域(即频谱、变换)数据。对于基于块的视频编码,频率变换器将离散余弦变换(“DCT”)、其整数近似、或另一类型的前向块变换(例如离散正弦变换或其整数近似)应用于预测残留数据的块(或者在预测(558)为空的情况下,应用于样本值数据),从而产生频率变换系数的块。编码器(500)可能还能够指示这样的变换步骤被省略了。缩放器/量化器对变换系数进行缩放和量化。例如,量化器用量化步骤尺寸将死区标量量化应用于的频域数据,该量化步骤尺寸在逐图片的基础上、逐小块的基础上、逐片的基础上、逐块的基础上、因频率而异的基础上或在其他基础上变化。经量化的变换系数数据(532)被提供给头部格式化器/熵编码器(590)。
[0125] 在缩放器/逆变换器(535)中,缩放器/逆量化器对经量化的变换系数执行逆缩放和逆量化。逆频率变换器执行逆频率变换,从而产生经重构的预测残留值或样本值的块。对于非跳跃模式块,编码器(500)将经重构的残留值与预测(558)的值(例如,经运动补偿的预测值、图片内预测值)组合以形成重构(538)。对于跳跃模式块,编码器(500)使用预测(558)的值作为重构(538)。
[0126] 对于图片内预测,重构(538)的值可以被馈送回图片内估计器(540)和图片内预测器(545)。同样,重构(538)的值可以被用于后续图片的运动补偿的预测。重构(538)的值可以被进一步滤波。对于视频信号(505)的给定图片,滤波控件(560)确定如何对重构(538)的值执行去块滤波和SAO滤波。滤波控件(560)生成滤波控制数据(562),它被提供给头部格式化器/熵编码器(590)和合并器/(诸)滤波器(565)。
[0127] 在合并器/(诸)滤波器(565)中,编码器(500)将来自不同小块的内容合并到图片的经重构版本中。编码器(500)根据滤波器控制数据(562)选择性地执行去块滤波和SAO滤波,以便自适应地平滑各图片中的各边界上的间断。可替换地或另外地应用其它滤波(例如去振铃滤波或ALF;未示出)。取决于编码器(500)的设置,小块边界可以被选择性地滤波或根本不被滤波,并且编码器(500)可以在经编码的比特流内提供指示这样的滤波是否被应用的句法。
[0128] 经解码图片缓冲器(570)缓冲经重构的当前图片以供在后续的运动补偿的预测中使用。
[0129] 头部格式化器/熵编码器(590)格式化和/或熵编码通用控制数据(522)、量化的变换系数数据(532)、帧内预测数据(542)、运动数据(552)以及滤波器控制数据(562)。通用控制数据(522)包括为各图片、片、块或视频的其他单元指示色彩空间、色彩采样率和/或比特深度的信号。这样的信号可例如被包括在PPS、片头部、块句法结构或其他句法结构中,并且可被熵编码或信号化成固定长度值。头部格式化器/熵编码器(590)还可对以下信息进行格式化和/或熵编码:标识或定义可用色彩空间的信息(例如,预定义色彩空间、针对色彩空间变换操作的自定义度量的列表)、标识或定义可用色彩采样率的信息(例如,预定义色彩采样率、其他色彩采样率或用于下采样和上采样的操作的标识的列表)、和/或标识或定义可用比特深度的信息(例如,预定义比特深度、其他比特深度或用于比特深度转换的操作的标识的列表),这些信息可被解码器在自适应切换期间使用。
[0130] 头部格式化器/熵编码器(590)在经编码视频比特流(595)中提供经编码的数据。经编码的视频比特流的格式(595)可以是H.265/HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的变型或扩展。
[0131] 取决于所需的压缩的实现和类型,编码器(500)的各模块可被添加、省略、拆分成多个模块、与其它模块组合、和/或用相似的模块来替代。在替换实施例中,具有不同模块和/或其它配置的模块的编码器执行所描述的一个或多个技术。编码器的具体实施例通常使用编码器(500)的变型或补充版本。所示的编码器(500)内的各模块之间的关系指示了信息在编码器中的一般流动;为简明起见,未示出其它关系。
[0132] VI.示例视频解码器
[0133] 图6是结合其可实现所描述的一些实施例的通用解码器(600)的框图。解码器(600)接收经编码的视频比特流(605)中的经编码的数据并产生包括经重构视频(695)的图片的输出。经编码的视频比特流的格式(605)可以是H.265/HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的变型或扩展。
[0134] 解码器(600)是基于块的并使用取决于实现的块格式。块可以在不同的阶段被进一步细分。例如,图片可以被划分成64x64块、32x32块或16x16块,这些块随后可以被划分成更小的样本值块。在针对H.265/HEVC标准的解码实现中,将图片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
[0135] 解码器(600)使用图片内解码和/或图片间解码来对图片进行解压缩。解码器(600)的许多组件被用于图片内解码和图片间解码这两者。由这些组件执行的确切操作可以取决于正被解压缩的信息的类型而变化。
[0136] 缓冲器在经编码的视频比特流(605)中接收经编码数据,并使得接收到的经编码数据可用于解析器/熵解码器(610)。解析器/熵解码器(610)通常应用在编码器(500)中执行的熵编码的逆(例如上下文自适应二进制算术解码)对经熵编码的数据进行熵解码。
[0137] 作为解析和熵解码的结果,解析器/熵解码器(610)产生通用控制数据(622)、经量化的变换系数数据(632)、帧内预测数据(642)、运动数据(652)以及滤波器控制数据(662)。通用控制数据(622)包括为各图片、片、块或视频的其他单元指示色彩空间、色彩采样率和/或比特深度的信号。这样的信号可例如被包括在PPS、片头部、块句法结构或其他句法结构中,并且可被熵编码或信号化成固定长度值。解析器/熵解码器(610)还可对以下信息进行解析和/或熵解码:标识或定义可用色彩空间的信息(例如,预定义色彩空间、针对色彩空间变换操作的自定义度量的列表)、标识或定义可用色彩采样率的信息(例如,预定义色彩采样率、其他色彩采样率或用于下采样和上采样的操作的标识的列表)、和/或标识或定义可用比特深度的信息(例如,预定义比特深度、其他比特深度或用于比特深度转换的操作的标识的列表),这些信息可被解码器(600)在自适应切换期间使用。
[0138] 通用解码控件(620)接收通用控制数据(622)并将控制信号(未示出)提供给其它模块(例如缩放器/逆变换器(635)、图片内预测器(645)、运动补偿器(655)以及帧内/帧间切换)以设置和改变解码期间的解码参数。具体地,通用解码控件(620)可使得解码器(600)在解码期间在逐图片的基础上、逐片的基础上、逐块的基础上或在某一其他基础上切换色彩空间、色彩采样率和/或比特深度。
[0139] 如果当前图片是使用图片间预测来预测的,则运动补偿器(655)接收运动数据(652),例如MV数据、参考图片选择数据、以及合并模式索引值。运动补偿器(655)将MV应用于来自经解码图片缓冲器(670)的(诸)经重构的参考图片。运动补偿器(655)产生针对当前图片中的帧间编码块的运动补偿的预测。经解码图片缓冲器(670)存储一个或多个先前重构的图片以供用作参考图片。
[0140] 在解码器(600)内的分开路径中,图片内预测预测器(645)接收帧内预测数据(642),例如指示帧内预测使用空间预测还是帧内BC预测的信息(例如,每帧内块的标志值)、(针对帧内空间预测的)预测模式方向、以及(针对帧内BC预测的)BV值。对于帧内空间内预测,通过根据预测模式数据使用当前图片的重构(638)的值,图片内预测器(645)从当前图片的相邻的、先前重构的样本值中空间地预测当前图片的当前块的样本值。或者,对于使用BV值的帧内BC预测,图片内预测器(645)使用图片内预测参考区域的先前重构的样本值来预测当前块的样本值,图片内预测参考区域由针对当前块的BV值来指示。
[0141] 帧内/帧间切换选择对给定块的预测(658)是经运动补偿的预测还是图片内预测。例如,当遵循H.265/HEVC句法时,可以基于为图片中的CU编码的句法元素来控制帧内/帧间切换,该CU可以包括帧内预测的CU和帧间预测的CU。对于非跳跃模式块,解码器(600)将预测(658)与重构的残留值组合以产生来自视频信号的内容的重构(638)。对于跳跃模式块,解码器(600)使用预测(658)的值作为重构(638)。
[0142] 为了重构非跳跃模式块的残留值,缩放器/逆变换器(635)接收并处理经量化的变换系数数据(632)。在缩放器/逆变换器(635)中,缩放器/逆量化器对经量化的变换系数执行逆缩放和逆量化。逆频率变换器执行逆频率变换,从而产生经重构的预测残留值或样本值的块。例如,逆频率变换器将逆块变换应用到频率变换系数,从而产生样本值数据或预测残留数据。逆频率变换可以是逆DCT、其整数近似、或另一种类型的逆频率变换(例如逆离散正弦变换或其整数近似)。
[0143] 对于图片内预测,重构(638)的值可以被馈送回图片内预测器(645)。对于图片间预测,重构(638)的值可以被进一步滤波。在合并器/(诸)滤波器(665)中,解码器(600)将来自不同小块的内容合并到图片的经重构版本中。解码器(600)根据滤波器控制数据(662)和滤波自适应规则来执行去块滤波和SAO滤波,以便自适应地平滑各图片中的各边界上的间断。可替换地或另外地应用其它滤波(例如去振铃滤波或ALF;未示出)。小块边界可以被选择性地滤波或根本不滤波,这取决于解码器(600)的设置或经编码的比特流数据内的句法指示。经解码图片缓冲器(670)缓冲经重构的当前图片以供在后续的运动补偿的预测中使用。
[0144] 解码器(600)还可包括后处理滤波器。后处理滤波器(608)可以包括去振铃滤波、自适应维纳滤波、膜颗粒再现滤波、SAO滤波或另一种类型的滤波。
[0145] 取决于所希望的解压缩的实现和类型,解码器(600)的模块可以被添加、省略、拆分成多个模块、与其他模块组合和/或用类似的模块来替代。在替换实施例中,具有不同模块和/或其它配置的模块的解码器执行一个或多个所描述的技术。解码器的具体实施例通常使用解码器(600)的变型或补充版本。所示的解码器(600)内的模块之间的关系指示信息在解码器中的一般流动;为简明起见,未示出其它关系。
[0146] VII.自适应切换色彩空间、色彩采样率和/或比特深度
[0147] 在编码期间,编码器可在各方面都比次要色彩分量更仔细地对待主要色彩分量(例如,针对编码模式的更多选项,可能更少的量化步骤尺寸)。同样,通过对次要色彩分量进行子采样,编码器可向主要色彩分量分派相对更多的比特(并因此分派更多的质量)。
[0148] 视频序列的不同图片、片或块的样本值可具有不同的统计特性。这些不同的统计特性可影响编码效率,可在速率-失真性能(给定比特率的较低或较高质量;或给定质量的较低或较高比特率)方面对该编码效率进行测量。
[0149] 该章节呈现对视频序列的各单元的自适应编码和解码的各种特征。单元可以是图片、片、块或视频序列的其他部分。例如,这些特征中的一些涉及包括色彩空间在视频序列的各单元之间的自适应切换的编码/解码。其他特征涉及包括色彩采样率在视频序列内的各单元之间的自适应切换的编码/解码。又一些特征涉及包括比特深度在视频序列内的各单元之间的自适应切换的编码/解码。这些特征可在许多场景下改善编码效率,并可被组合地或分开地使用。
[0150] 具体地,在对某个“人工”创建的视频内容(诸如屏幕捕捉内容)进行编码或者在对自然视频和人工创建的视频内容的混合进行编码时,对色彩空间、色彩采样率和/或比特深度的自适应切换可改善速率-失真性能,用于编码/解码屏幕捕捉内容的常见场景包括远程桌面会议和对自然视频或其它“混合内容”视频上的图形覆盖的编码/解码。
[0151] A.视频类型
[0152] 一般来说,屏幕捕捉视频表示计算机屏幕或其他显示的输出。图7示出具有可为屏幕捕捉提供输入的内容的计算机桌面环境(710)。例如,屏幕捕捉视频可表示整个计算机桌面(711)的一系列图像。或者,屏幕捕捉视频可表示针对计算机桌面环境的窗口之一的一系列图像,窗口为诸如包括游戏内容的应用窗口(713)、具有网页内容的浏览器窗口(712)或具有文字处理器内容的窗口(714)。
[0153] 作为计算机生成的、人工创建的视频内容,屏幕捕捉内容往往具有与使用摄像机捕捉的自然视频内容相比相对较少的离散样本值。例如,屏幕捕捉内容的区域通常包括单个统一色彩,而自然视频内容中的区域更可能包括逐渐变化的色彩。同样,屏幕捕捉内容通常包括不同的结构(例如,图形、文本字符),这些不同的结构精确地逐帧重复,即使该内容可能在空间上被移位(例如,由于滚动)。屏幕捕捉内容通常是用具有高色度采样分辨率的格式(例如YUV 4:4:4或RGB 4:4:4)来编码的,但是它也可以用具有较低色度采样分辨率的格式(例如YUV 4:2:0、YUV 4:2:2)来编码。
[0154] 图8示出包括自然视频(821)和人工创建的视频内容的复合视频(820)。人工创建的视频内容包括自然视频(821)旁边的图形(822)以及在自然视频(821)下面运行的贴标(823)。与图7中示出的屏幕捕捉内容类似,图8中示出的人工创建的视频内容往往具有相对较少的离散样本值。它还往往具有精确地逐帧重复(例如,由于滚动)的不同的结构(例如,图形、文本字符)。
[0155] B.自适应切换的示例
[0156] 对于色彩空间的自适应切换,序列中的视频的不同单元不同的色彩空间中编码。例如,一些单元在YUV型色彩空间(例如YCbCr、YCoCg)中编码,而其他单元在RGB型色彩空间(例如,RGB、BGR、GBR)中编码。在这种情况下,编码器或解码器在适当时对样本值执行色彩空间变换操作以在YUV型色彩空间和RGB型色彩空间之间切换。通常,色彩空间变换操作可被表示为在逐位置的基础上执行的矩阵乘法操作,其中某位置在第一色彩空间中的n个样本值被乘以n x n矩阵以产生该位置在第二色彩空间中的n个样本值。在实践中,色彩空间变换操作可使用其他算法来实现。
[0157] 作为对色彩空间的自适应切换的另一示例,不同的单元可在不同的RGB型色彩空间中编码,这些不同的RGB型色彩空间在其主要分量和各分量(例如,对于残留数据)被信号化的次序方面不同在这种情况下,编码器或解码器在恰当时对样本值的块或平面执行色彩空间重排序操作以改变哪个色彩分量是主要色彩分量。
[0158] 在一些示例实现中,对于有损编码,编码器可在不同色彩空间中的任何色彩空间之间切换。然而,对于无损编码,编码器仅执行可逆色彩空间转换(例如,在RGB、BGR和GBR色彩空间之间对色彩分量进行重排序,或者在一些实现中,使用增加的中间比特深度来转换到YCoCg/或从YCoCg转换)。
[0159] 对于色彩采样率的自适应切换,序列中的视频的不同单元是用不同的色彩采样率来编码的。例如,一些单元是用4:2:2或4:2:0格式(诸如YUV 4:2:2或YUV 4:2:0)来编码的,而其他单元是用4:4:4格式(诸如YUV 4:4:4)来编码的。RGB型色彩空间通常具有为4:4:4的色彩采样率,但其色彩分量可改为是根据为4:2:2或4:2:0的色彩采样率来子采样的。
[0160] 在对次要分量的样本值进行水平地或垂直地下采样时,编码器或解码器可执行单纯的子采样、低通滤波加子采样、或其他滤波加子采样。对于对次要分量的样本值的相应上采样,编码器或解码器使用例如样本值重复和/或滤波来反转该子采样。
[0161] 对于比特深度的自适应切换,序列中的视频的不同单元是用不同的比特深度来编码的。例如,一些单元被编码成具有12比特样本值,而其他单元被编码成具有10比特样本值或8比特样本值。当在各比特深度之间转换时,编码器或解码器可(利用或不利用舍入因子的添加)截短较高比特深度的样本值以产生较低比特深度的样本值,或缩放较低比特深度的样本值以产生较高比特深度的样本值。
[0162] 编码器通常以具有12比特样本值的给定格式(诸如RGB 4:4:4)来接收输入视频。编码器可针对视频的给定单元在输入格式和另一格式(具有不同的色彩空间、不同的色彩采样率和/或不同的比特深度)之间转换。色彩空间自适应可单独地或与色彩采样率自适应和/或比特深度自适应组合地在图片级、片级、块级或某一其他级处执行。类似地,色彩采样率自适应可单独地或与色彩空间自适应和/或比特深度自适应组合地在图片级、片级、块级或某一其他级处执行。比特深度自适应可单独地或与色彩空间自适应和/或比特采样率自适应组合在图片级、片级、块级或某一其他级处执行。
[0163] 图9示出针对序列(900)中的图片的图片自适应色彩空间、色彩采样率和/或比特深度。序列(900)包括一系列图片。编码器按需将输入视频从输入视频格式转换成为给定图片选择的格式。图片1的格式为具有8比特样本值的YCbCr 4:2:0,并且图2的格式为具有8比特样本值的RGB 4:4:4。图片3和4是RGB 4:4:4视频,但其样本值具有不同的比特深度。
[0164] 图10示出针对序列中的图片(1000)的片的片自适应色彩空间、色彩采样率和/或比特深度。图片(1000)包括五个片,这些片的边界以虚线示出。例如,片0、1、3和4可与屏幕捕捉内容或其他人工创建的视频内容相关联,而片2与自然视频内容相关联。片0和3的格式为具有10比特样本值的BGR 4:4:4。片1包括GBR4:4:4视频的12比特样本值。片2的格式为具有8比特样本值的YCbCr 4:2:0,并且片4的格式为具有8比特样本值的RGB 4:4:4。
[0165] 图11示出针对序列中的图片的片(1100)的块的块自适应色彩空间、色彩采样率和/或比特深度。片(1100)包括具有三种不同块尺寸的16个块。前两个块的格式为具有8比特样本值的YCbCr 4:2:0,并且最后一个块的格式为具有10比特样本值的YCbCr 4:2:0。块2-15包括RGB型色彩空间中具有为4:4:4的采样率的12比特样本值。块2-15的色彩空间在RGB、BGR和GBR之间进行改变。
[0166] C.编码期间的自适应切换的示例
[0167] 图12示出用于在编码期间自适应地切换色彩空间、色彩采样率和/或比特深度的通用技术(1200)。图像编码器或视频编码器(诸如参考图3或图5a-5b描述的编码器)可执行技术(1200)。
[0168] 编码器对序列中的视频进行编码(1210)。作为编码的一部分,编码器在编码期间在序列内的视频的至少一些单元之间切换色彩空间、色彩采样率和/或比特深度。编码器可在图片内空间地切换色彩空间、色彩采样率和/或比特深度。编码器还可逐图片地在时间上切换色彩空间、色彩采样率和/或比特深度。出于自适应切换的目的,视频的单元可以是序列的图片、序列的给定图片的片、序列的给定图片的块或视频序列的其他部分。
[0169] 例如,该切换可包括使用空间变换操作在两个色彩空间之间进行改变。对于色彩空间变换操作,色彩空间可包括至少一个YUV型色彩空间和至少一个RGB型色彩空间。或者,作为另一示例,该切换可包括使用色彩空间重排序操作在两个色彩空间之间进行改变。对于色彩空间重排序操作,色彩空间可包括多个RGB型色彩空间。替换地,色彩空间包括其他和/或附加的色彩空间。
[0170] 或者,作为另一示例,该切换可包括在两个色彩采样率之间进行改变。色彩采样率可包括4:4:4、4:2:2、4:2:0和4:0:0中的两个或更多个。替换地,色彩采样率包括其他和/或附加的色彩采样率。
[0171] 或者,作为另一示例,该切换可包括在两个比特深度之间进行改变。比特深度可包括每样本12比特、每样本10比特和每样本8比特中的两个或更多个。视频的给定单元的不同色彩分量可具有相同的比特深度或不同的比特深度。替换地,比特深度包括其他和/或附加的比特深度。
[0172] 在编码期间,编码器可至少部分地基于先前重构的内容的样本值集合来预测当前图片中的当前块的样本值。对于图片内预测,该样本值集合是当前图片的一部分。对于图片间预测,该样本值集合是参考图片的一部分。在当前块的样本值和先前重构的内容的样本值集合处于不同的格式时,编码器可执行转换操作以促成该预测。在章节VII.E中描述了这样的转换操作的示例。
[0173] 在编码期间,编码器还可根据一个或多个规则对先前重构的内容执行自适应内环路去块。(诸)规则可考虑先前重构的内容内的两个毗邻块的不同色彩空间。在章节VII.F中描述了用于自适应去块的规则的示例。
[0174] 编码器在比特流中输出(1220)经编码的数据。经编码的数据包括指示如何在序列内的视频的至少一些单元之间切换色彩空间、色彩采样率和/或比特深度的一个或多个信号。
[0175] 在章节VII.D中描述了针对该一个或多个信号的句法元素的示例。
[0176] 图13示出用于在编码期间自适应地切换色彩空间、色彩采样率和/或比特深度的更详细的技术(1300)。图像编码器或视频编码器(诸如参考图3或图5a-5b描述的编码器)可执行技术(1300)。具体地,图13示出了由编码器作出的逐单元判定,但如参考图12描述了用于编码的其他选项。
[0177] 编码器得到(1310)下一单元(例如,图片、片、块)并为该单元设置(1320)色彩空间、色彩采样率和/或比特深度。编码器按需将样本值转换到为该单元设置的另一色彩空间、色彩采样率和/或比特深度,随后对该单元进行编码(1330)。编码器输出(1340)该单元的经编码数据,该经编码数据包括指示该单元的色彩空间、色彩采样率和/或比特深度的一个或多个信号。编码器检查(1350)是否继续下一单元,并且如果如此,则得到(1310)下一单元。
[0178] C.解码期间的自适应切换的示例
[0179] 图14示出用于在解码期间自适应地切换色彩空间、色彩采样率和/或比特深度的通用技术(1400)。图像解码器或视频解码器(诸如参考图4或图6描述的解码器)可执行技术(1400)。
[0180] 解码器接收(1410)比特流中的经编码数据。经编码的数据包括指示如何在序列内的视频的至少一些单元之间切换色彩空间、色彩采样率和/或比特深度的一个或多个信号。在章节VII.D中描述了针对该一个或多个信号的句法元素的示例。
[0181] 解码器对序列中的视频进行解码(1420)。作为解码的一部分,解码器在解码期间在序列内的视频的至少一些单元之间切换色彩空间、色彩采样率和/或比特深度。解码器可在图片内空间地切换色彩空间、色彩采样率和/或比特深度。解码器还可逐图片地在时间上切换色彩空间、色彩采样率和/或比特深度。出于自适应切换的目的,视频的单元可以是序列的图片、序列的给定图片的片、序列的给定图片的块或视频序列的其他部分。
[0182] 例如,该切换可包括使用空间变换操作在两个色彩空间之间进行改变。对于色彩空间变换操作,色彩空间可包括至少一个YUV型色彩空间和至少一个RGB型色彩空间。或者,作为另一示例,该切换可包括使用空间重排序操作在两个色彩空间之间进行改变。对于色彩空间重排序操作,色彩空间可包括多个RGB型色彩空间。替换地,色彩空间包括其他和/或附加的色彩空间。
[0183] 或者,作为另一示例,该切换可包括在两个色彩采样率之间进行改变。色彩采样率可包括4:4:4、4:2:2、4:2:0和4:0:0中的两个或更多个。替换地,色彩采样率包括其他和/或附加的色彩采样率。
[0184] 或者,作为另一示例,该切换可包括在两个比特深度之间进行改变。比特深度可包括每样本12比特、每样本10比特和每样本8比特中的两个或更多个。视频的给定单元的不同色彩分量可具有相同的比特深度或不同的比特深度。替换地,比特深度包括其他和/或附加的比特深度。
[0185] 在解码期间,解码器可至少部分地基于先前重构的内容的样本值集合来预测当前图片中的当前块的样本值。对于图片内预测,该样本值集合是当前图片的一部分。对于图片间预测,该样本值集合是参考图片的一部分。在当前块的样本值和先前重构的内容的样本值集合处于不同的格式时,解码器可执行转换操作以促进该预测。在章节VII.E中描述了这样的转换操作的示例。
[0186] 在解码期间,解码器还可根据一个或多个规则对先前重构的内容执行自适应内环路去块。(诸)规则可考虑先前重构的内容内的两个毗邻块的不同色彩空间。在章节VII.F中描述了用于自适应去块的规则的示例。
[0187] 图15示出用于在解码期间自适应地切换色彩空间、色彩采样率和/或比特深度的更详细的技术(1500)。图像解码器或视频解码器(诸如参考图4或图6描述的解码器)可执行技术(1500)。具体地,图15示出了由解码器作出的逐单元判定,但如参考图14描述了用于解码的其他选项。
[0188] 解码器得到(1510)针对下一单元(例如,图片、片、块)的经编码的数据。经编码的数据包括指示该单元的色彩空间、色彩采样率和/或比特深度的一个或多个信号。解码器确定(1520)该单元的色彩空间、色彩采样率和/或比特深度。解码器对该单元进行解码(1530),从而按需将样本值从为该单元设置的色彩空间、色彩采样率和/或比特深度中转换走。解码器检查(1540)是否继续下一单元,并且如果如此,则得到(1510)针对下一单元的经编码数据。
[0189] D.对自适应切换信息进行信号化的示例
[0190] 该章节描述了指示如何在序列内的视频的至少一些单元之间切换色彩空间、色彩采样率和/或比特深度的信号的示例。一般来说,比特流中的信号指示在用于编码/解码单元的两个或更多个选项之间的选择。对于色彩空间自适应,该信号指示在编码/解码单元时使用的两个或更多个色彩空间之间的选择。对于色彩采样率自适应,该信号指示在编码/解码单元时使用的两个或更多个色彩采样率之间的选择。对于比特深度自适应,该信号指示在编码/解码单元时使用的两个或更多个比特深度之间的选择。可为单元的不同色彩分量信号化不同的比特深度。
[0191] 该信号可以是针对给定单元的指示在用于编码/解码给定单元的针对色彩空间(或色彩采样率或比特深度)的两个选项之间的选择的标志值。或者,该信号可以是针对给定单元(或给定单元的多个标志)的指示在用于编码/解码给定单元的针对色彩空间(或色彩采样率或比特深度)的三个或更多个选项之间的选择的某个其他句法元素。
[0192] 针对给定单元的信号可被呈现在比特流句法的各个级别中的任一者处。对于逐图片的自适应,例如,指示对色彩空间(或色彩采样率或比特深度)的选择的句法元素可以是PPS的一部分。或者,对于逐片的自适应,指示对色彩空间(或色彩采样率或比特深度)的选择的句法元素可以是片头部的一部分。或者,对于逐块的自适应,指示对色彩空间(或色彩采样率或比特深度)的选择的句法元素可以是针对块的句法结构(例如,CU句法结构)的一部分。一般来说,与逐片的自适应或逐块的自适应相比,逐图片的自适应更不灵活,但使用更少的信号化比特。与逐片的自适应相比,逐块的自适应使用更多个信号化比特,但更灵活。
[0193] 针对给定单元的信号可例如使用CABAC来被熵编码,或者被格式化成固定长度值。给定单元的信号可被预测地编码。在该情况下,某参数针对给定单元的增量值表示该参数的实际值和其预测值之间的差。预测值可以是参数以较高句法级别来信号化的值(例如,作为SPS的一部分或作为另一序列层参数的一部分)。例如,当前块或片的比特深度值可被信号化成相对于SPS专用比特深度的增量值。或者,预测值可基于参数针对视频的一个或多个先前单元的一个或多个实际值(例如,参数针对最后一个经编码单元的实际值、或参数在给定单元周围附近的各实际值的中值)。例如,当前块的比特深度可被信号化成相对于先前编码的块的比特深度的增量值。
[0194] 经编码的数据还可包括标识或定义可用色彩空间的信息、标识或定义可用色彩采样率的信息、和/或标识或定义可用比特深度的信息。这样的信息可被信号化成SPS、PPS、片头部或比特流句法的其他结构的一部分。可从编码器和解码器已知的预定义选项之中选择可用色彩空间、色彩采样率或比特深度。或者,编码器可在经编码数据中指定自定义色彩空间(或色彩采样率或比特深度)以供编码器和解码器使用。例如,该信息可包括对两个色彩空间之间的色彩空间变换操作有用的值矩阵。与标识预定义选项的集合相比,指定自定义选项使用更多的比特,但更灵活。另一种可能性是使用编码器和解码器已知的预定义选项,而无需任何被信号化成SPS、PPS、片头部等的一部分的标识信息。这不使用用于额外信息的比特,但在这些选项中的许多选项在针对序列的编码期间根本没有被使用时,可导致对信号的较低效的编码。
[0195] 标识或定义可用色彩空间(或色彩采样率或比特深度)的信息结合指示对针对视频的单元的选项的选择的信号一起使用。例如,SPS可包括标识可用色彩空间以及对序列准许哪些色彩空间转换的信息,并且每PPS(或片头部、或块句法结构)的句法元素指示在可用色彩空间的指定名册中的选择。或者,片头部可包括标识可用色彩采样率的信息,并且每块句法结构的句法元素指示从可用色彩采样率的指定名册中的选择。或者,可使用先前变型的某一组合。例如,SPS可指示预定义色彩空间的名册,其中PPS或片头部包括对预定义的色彩空间之一的选择或包括针对自定义色彩空间的信息。
[0196] 在一些示例实现中,附加规则适用于对色彩空间指示符的CU级信号化。如果当前CU是用帧内空间预测的CU,则色彩空间指示符可被信号化成CU句法结构的一部分。如果当前CU是用帧内BC预测的CU或用图片间预测的CU,则色彩空间指示符在存在残留值时可被信号化成CU句法结构的一部分,但仅涉及重排序的色彩空间转换(例如,在RGB、BGR和GBR之间的色彩空间转换)不被允许。在该上下文中,这样的色彩空间转换不改善性能,并且对如何重排序色彩分量进行信号化所花费的比特将被浪费。
[0197] E.用于预测的转换操作的示例
[0198] 在编码或解码期间,编码器或解码器可至少部分地基于先前重构的内容的样本值集合来预测当前图片中的当前块的样本值。对于图片内预测,该样本值集合是当前图片的一部分(例如,用于帧内空间预测的空间上毗邻的各位置处的样本值、或用于帧内BC预测的先前块的经重构样本值)。对于图片间预测,该样本值集合是参考图片的一部分。如果当前块的样本值和先前重构的内容的样本值集合处于不同的格式,则编码器或解码器执行转换操作以促进对当前块的样本值的预测。
[0199] 例如,如果先前重构的内容的样本值集合在GBR色彩空间中,并且当前块是在YCbCr色彩空间中编码的,则编码器或解码器可在使用经转换的样本值集合的图片内预测或图片间预测之前将先前重构的内容的样本值集合转换到YCbCr色彩空间。
[0200] 为了简化实现,编码器和解码器可用“主”格式来存储先前重构的内容的样本值。主格式提供针对处于特定色彩空间、具有特定色彩采样率和有特定比特深度的样本值的经重构内容的常见表示。取决于实现,主格式可以是具有12比特样本值的GBR 4:4:4、具有12比特样本值的YUV 4:4:4、或色彩空间、色彩采样率和比特深度的某一其他组合。主格式是为编码器和解码器预定义的。替换地,主格式可由比特流中指示用于经重构内容的存储的色彩空间、色彩采样率和/或比特深度的信号来指定。主格式可被选择成例如针对视频序列的各单元的最常见编码格式,以使得在许多情况下都避免转换操作。当色彩空间切换常见,但色彩采样率切换稀有时,将具有12比特样本值的GBR 4:4:4用作主格式对于屏幕捕捉内容而言可能是高效的。当色彩空间切换和色彩采样率切换两者都常见时,将具有12比特样本值的YUV4:4:4用作主格式可能是高效的。
[0201] 图16示出用于从处于一种格式的先前重构的内容的样本值集合预测用不同格式编码的块的样本值的技术(1600)。编码器或解码器在编码或解码期间可执行技术(1600)。
[0202] 开始,编码器或解码器得到(1610)将被用于预测当前图片的当前块的样本值的先前重构的内容的样本值集合。取决于预测的类型,该样本值集合可以是当前图片或参考图片的一部分。
[0203] 先前重构的内容的样本值可用第一格式(例如,主格式)来存储。编码器或解码器检查(1620)当前块是否是用第一格式编码的。更一般地,编码器或解码器评估先前重构的内容的样本值集合和当前块的样本值是否处于不同的格式。
[0204] 如果当前块是用第一格式(例如,主格式)编码的,则编码器或解码器在预测之前不需要执行转换操作。编码器或解码器使用先前重构的内容的样本值集合来预测(1640)当前块的样本值。在编码期间,编码器可随后生成、编码和重构(1650)残留值。在解码期间,解码器可重构(1650)残留值。编码器或解码器随后至少部分地基于预测的样本值来重构(1660)当前块的样本值。对于非跳跃的块,编码器或解码器可将预测的样本值与经重构的残留值组合以产生经重构的样本值。编码器或解码器随后存储(1670)当前块的经重构的样本值作为先前重构的内容的一部分。由于当前块是用第一格式(例如,主格式)来编码的,因此编码器或解码器在预测后不需要执行转换操作。
[0205] 另一方面,如果当前块不是用第一格式来编码的,则编码器或解码器将先前重构的内容的样本值集合从第一格式转换(1632)成用于编码当前块的第二格式。例如,如果第一格式和第二格式具有不同的色彩空间,则编码器或解码器执行色彩空间变换操作和/或色彩空间重排序操作以将先前重构的内容的样本值集合的色彩空间改变到第二格式。例如,编码器或解码器可如下将先前重构的内容的样本值集合P从RGB色彩空间转换到YCoCg色彩空间。
[0206] 假设某位置在RGB色彩空间中的样本值分别为PsR、PsG和PsB并且当前比特深度为比特_深度当前(bit_depthcurrent)。最小样本值为0,并且最大样本值为(1<<比特_深度当前)-1(例如,对于8比特样本值为255)。为了调整Co和Cg的动态范围,术语增加_值(add_value)被定义成1<<(比特_深度当前-1)(例如,对于8比特样本值为128)。该位置在YCoCg色彩空间中的样本值PsY、PsCo和PsCg可通过以下来计算:
[0207] PsY=(PsR+(2*PsG)+PsB)>>2
[0208] PsCo=((PsR-PsB)>>1)+增加_值
[0209] PsCg=(((2*PsG)-PsR-PsB)>>2)+增加_值
[0210] 样本值PSY、PSCo和PSCg被夹在最小样本值和最大样本值所限定的范围中。
[0211] 更一般地,供从第一色彩空间变换到第二色彩空间的色彩转换矩阵CC_矩阵1_到_2(CC_matrix1_to_2)可被定义成:
[0212] [c00,c01,c02
[0213] c10,c11,c12
[0214] c20,c21,c22]
[0215] 为了调整输出的动态范围,可使用偏移矩阵CC_偏移1_到_2(CC_offsets1_to_2)。偏移CC_偏移1_到_2可被定义成:
[0216] [o0,
[0217] o1,
[0218] o2]
[0219] 假设某位置在第一色彩空间中的样本值为PsCC1=[Ps00,Ps01,Ps02]T。该位置在第二色彩空间中的样本值PsCC2可被计算成:
[0220] PsCC2=CC_矩阵1_到_2*PsCC1+CC_偏移1_到_2
[0221] 样本值PsCC2可夹在适当的范围内。
[0222] 针对先前重构的内容的样本值集合P的色彩空间重排序操作可通过对这样的样本值的块或平面的色彩分量进行重排序以便改变主要色彩分量和次要色彩分量的次序来实现。
[0223] 如果第一和第二格式具有不同的色彩采样率,则编码器或解码器(利用或不利用滤波)执行下采样或上采样,以将先前重构的内容的样本值集合的色彩采样率改变到第二格式。例如,编码器或解码器可如下将先前重构的内容的样本值集合P从4:4:4色彩采样率转换到4:2:0色彩采样率。
[0224] 假设先前重构的内容的样本值为YUV 4:4:4样本值。YUV 4:4:4视频的空间分辨率针对所有色彩分量都为宽度×高度。在色彩采样率转换后,YUV 4:2:0视频的空间分辨率针对Y分量为宽度x高度并且针对U和V分量为(宽度/2)x(高度/2)。对于每一位置(i,j),当0≤i<宽度并且0≤j<高度时,编码器或解码器可将YUV 4:2:0视频的样本值计算成:
[0225] Y420[i][j]=Y444[i][j]
[0226] U420[i][j]=(U444[2*i][2*j]+U444[2*i+1[2*j]+U444[2*i][2*j+1]+U444[2*i+1][2*j+1])>>2
[0227] V420[i][j]=(V444[2*i][2*j]+V444[2*i+1[2*j]+V444[2*i][2*j+1]+V444[2*i+1][2*j+1])>>2
[0228] 通过这种方法,U和V分量的样本值被确定,而无需滤波。替换地,编码器或解码器在获得经下采样的U和V分量时可使用滤波。
[0229] 如果第一和第二格式具有不同的比特深度,则编码器或解码器如下将先前重构的内容的样本值集合P从比特深度比特_深度参考(bit_depthref)改变到当前块的样本值的比特深度比特_深度当前(bit_depthcurrent)。
[0230] 如果 比特_深度参考>比特_深度当前
[0231] 移位=比特_深度参考-比特_深度当前
[0232] 增加=1<<(移位-1)
[0233] P=(P+增加)>>移位
[0234] 否则如果 比特_深度参考<比特_深度当前
[0235] 移位=比特_深度当前-比特_深度参考
[0236] P<<=移位
[0237] 例如,假设第一格式的比特深度为每样本10比特,第二格式的比特深度为每样本8比特,并且当前块使用帧内空间预测。编码器或解码器获得在帧内空间预测中使用的相邻位置的10比特样本值。该10比特样本值被转换成8比特样本值,该8比特样本值随后被用于生成当前块的8比特预测的样本值。
[0238] 在转换(1632)后,编码器或解码器使用先前重构的内容的经转换样本值的集合来预测(1642)当前块的样本值。在编码期间,编码器可随后生成、编码和重构(1652)残留值。在解码期间,解码器可重构(1652)残留值。编码器或解码器随后至少部分地基于预测的样本值来重构(1662)当前块的样本值。对于非跳跃的块,编码器或解码器可将预测的样本值与经重构的残留值组合以产生经重构的样本值。
[0239] 这时,当前块的经重构样本值处于第二格式。当前块的经重构样本值在存储成经重构内容的一部分之前被转换成第一格式。编码器或解码器将当前块的经重构样本值从第二格式转换(1672)成第一格式,并将现在处于第一格式(例如,主格式)的当前块的经转换的、经重构样本值存储(1670)成先前重构的内容的一部分。
[0240] 例如,如果第一格式和第二格式具有不同的色彩空间,则编码器或解码器执行色彩空间变换操作和/或色彩空间重排序操作以将当前块的经重构的样本值的色彩空间改变到第一格式。(从第二格式到第一格式的色彩空间转换操作一般反映从第一格式到第二格式的早期色彩空间转换操作。)例如,编码器或解码器可如下将当前块的经重构的样本值R从YCoCg色彩空间转换到RGB色彩空间。
[0241] 假设某位置在YCoCg色彩空间中的样本值分别为RsY、RsCo和RsCg并且当前比特深度为比特_深度当前。为了调整动态范围,术语增加_值(add_value)被定义成1<<(比特_深度当前-1)(例如,对于8比特样本值为128)。该位置在RGB色彩空间中的样本值RSR、RSG和RSB可通过以下来计算:
[0242] RsCo-=增加_值
[0243] RsCg-=增加_值
[0244] RsR=RsY+RsCo-RsCg
[0245] RsG=RsY+RsCg
[0246] RsB=RsY-RsCo-RsCg
[0247] 样本值RsR、RsG和RsB被夹在由最小样本值和最大样本值限定的范围中。
[0248] 更一般地,供从第二色彩空间变换回第一色彩空间的色彩转换矩阵CC_矩阵2_到_1(CC_matrix2_to_1)可被定义成:
[0249] [c'00,c'01,c'02
[0250] c'10,c'11,c'12
[0251] c'20,c'21,c'22]
[0252] 为了调整输出的动态范围,可使用偏移矩阵CC_偏移2_到_1(CC_offsets2_to_1)。偏移CC_偏移2_到_1可被定义成:
[0253] [o'0,
[0254] o'1,
[0255] o'2]
[0256] 假设某位置在第二色彩空间中的样本值为[Rs00,Rs01,Rs02]T。该位置在第一色彩空间中的样本值RsCC1可被计算成:
[0257] RsCC1=CC_矩阵2_到_1*(RsCC2+CC_偏移2_到_1)
[0258] 样本值RsCC1可夹在适当的范围内。
[0259] 针对经重构的样本值R的色彩空间重排序操作可通过对这样的样本值的块或平面的色彩分量进行重排序以便改变主要色彩分量和次要色彩分量的次序来实现。
[0260] 如果第一和第二格式具有不同的色彩采样率,则编码器或解码器(利用或不利用滤波)执行下采样或上采样,以将当前块的经重构的样本值的色彩采样率改变到第一格式。(从第二格式到第一格式的色彩采样率转换操作一般反映从第一格式到第二格式的早期色彩采样率转换操作。)例如,编码器或解码器可通过对经下采样的色彩分量进行上采样来将当前块的经重构样本值R从4:2:0色彩采样率转换到4:4:4色彩采样率。
[0261] 如果第一和第二格式具有不同的比特深度,则编码器或解码器如下将当前块的经重构样本值R从比特深度比特_深度当前转换成经重构内容的样本值的比特深度比特_深度参考。
[0262] 如果 比特_深度参考>比特_深度当前
[0263] 移位=比特_深度参考-比特_深度当前
[0264] R<<=移位
[0265] 否则如果 比特_深度参考<比特_深度当前
[0266] 移位=比特_深度当前-比特_深度参考
[0267] 增加=1<<(移位-1)
[0268] R=(R+增加)>>移位
[0269] 编码器或解码器可对片或图片的其他块重复技术(1600)。
[0270] 在图16中,转换(1632)在预测(1642)之前发生。替换地,对于一些类型的预测(例如,帧内空间预测、帧内BC预测),转换可遵循以下预测。在这种情况下,编码器或解码器使用先前重构的内容的样本值集合来预测当前块的样本值,随后将当前块的预测的样本值从第一格式转换到第二格式。编码器或解码器至少部分地基于当前块的经转换的预测的样本值来重构当前块的样本值。
[0271] 例如,假设第一格式的比特深度为每样本10比特,第二格式的比特深度为每样本8比特,并且当前块使用帧内空间预测。编码器或解码器获得帧内空间预测中使用的各邻近位置的10比特样本值。这些10比特样本值用于生成10比特的预测的样本值,这些10比特的预测的样本值随后被转换成8比特样本值。
[0272] 替换地,经重构内容的单元的样本值可以以用于编码这些单元的格式来存储。还存储对相应单元的编码格式的某个指示。经重构内容的样本值被按需转换成另一格式以供预测。
[0273] F.去块操作的示例
[0274] 在编码或解码期间,编码器或解码器可根据一个或多个规则对先前重构的内容执行自适应内环路去块。在一些情况下,去块可被应用在被编码成具有不同色彩空间的两个块之间的边界上。
[0275] 例如,在自适应去块的一些实现中,针对两个块之间的边界的去块过滤器的强度至少部分地基于毗邻块中的任一者是否具有非零残留值。当两个毗邻块具有不同的色彩空间时,针对这些块之间的边界的去块过滤器的强度可取决于这两个毗邻块的主要分量是否具有非零残留值。例如,第一毗邻块的主要分量被评估,并且第二毗邻块的主要分量被评估,即使色彩空间对于这两个块而言是不同的。过滤器强度取决于这些块的任一主要分量是否具有非零残留值。
[0276] 替换地,(诸)规则可考虑两个毗邻块的不同色彩空间。在该情况下,当两个毗邻块具有不同的色彩空间时,针对这些块之间的边界的去块过滤器的强度取决于这两个毗邻块的相应分量是否具有非零残留值。例如,假设一个毗邻块的色彩空间为GBR,并且另一毗邻块的色彩空间为RGB。两个色彩空间为RGB型色彩空间。在确定G分量的过滤器强度时,编码器或解码器考虑第一块的第一分量(G)的残留值以及第二块的第二分量(G)的残留值。自适应去块的该变型可用于具有不同RGB型色彩空间的块。
[0277] 鉴于可应用所公开的本发明的原理的许多可能的实施例,应当认识到,所示实施例仅是本发明的优选示例,并且不应认为是限制本发明的范围。相反,本发明的范围由后续的权利要求来界定。我们要求作为我们的发明保护落入这些权利要求范围和精神内的所有内容。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈