首页> 中国专利> 用于对色彩空间、色彩采样率和/或比特深度自适应切换的编码策略

用于对色彩空间、色彩采样率和/或比特深度自适应切换的编码策略

摘要

对视频序列的单元进行自适应编码的创新可改善编码效率。例如,这些创新中的一些涉及包括色彩空间在视频序列的各单元之间的自适应切换的编码。其他创新涉及包括色彩采样率在视频序列内的各单元之间的自适应切换的编码。又一些创新涉及包括比特深度在视频序列内的各单元之间的自适应切换的编码。

著录项

  • 公开/公告号CN105264888A

    专利类型发明专利

  • 公开/公告日2016-01-20

    原文格式PDF

  • 申请/专利权人 微软技术许可有限责任公司;

    申请/专利号CN201480031771.5

  • 发明设计人 B·李;J·许;F·吴;

    申请日2014-03-04

  • 分类号H04N19/00(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人蔡悦

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 13:43:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-09-14

    授权

    授权

  • 2016-02-17

    实质审查的生效 IPC(主分类):H04N19/00 申请日:20140304

    实质审查的生效

  • 2016-01-20

    公开

    公开

说明书

背景

工程师使用压缩(也叫做源编码(sourcecoding或sourceencoding))来降 低数字视频的比特率。压缩通过将视频信息转换成较低比特率的形式来降低存 储和传送该信息的成本。解压(也被称为解码)从压缩的形式中重构一种版本 的原始信息。“编解码器”是编码器/解码器系统。

在过去的二十年中,已采用了各种视频编解码器标准,包括ITU-TH.261、 H.262(MPEG-2或ISO/IEC13818-2)、H.263和H.264(MPEG-4AVC或ISO/IEC 14496-10)标准、MPEG-1(ISO/IEC111721172-2)和MPEG-4可视(ISO/IEC 14496-2)标准以及SMPTE421M(VC-1)标准。最近,H.265/HEVC标准(ITU-T H.265或ISO/IEC23008-2)已被批准。目前,(例如,用于可缩放视频编码/ 解码、用于在样本比特深度或色度采样率方面具有较高保真度的视频的编码/ 解码、用于屏幕捕捉内容、或用于多视图编码/解码的)H.265/HEVC标准的扩 展处于开发中。视频编解码器标准通常定义针对经编码的视频比特流的句法的 选项,从而详述当在编码和解码时使用特定特征时该比特流中的参数。在许多 情况下,视频编解码器标准还提供关于解码器应当执行以在解码时取得一致的 结果的解码操作的细节。除了编解码器标准外,各种专用编解码器格式定义针 对经编码的视频比特流的句法的其他选项以及相应的解码操作。

视频源(诸如相机、动画输出、屏幕捕捉模块等)通常在特定色彩空间中 提供视频,其中该视频的色彩分量是根据特定色彩采样率来子采样的,并且样 本值具有特定比特深度。一般而言,色彩空间(有时称为色彩模型)是用于将 色彩表示为每物理位置n个值的模型,其中n≥1,其中每个n值提供该位置的 色彩分量值。例如,在YUV色彩空间中,亮度(或Y)分量值表示某位置处 的近似亮度,且多个色度(或U和V)分量值表示该位置处的色差。或者,在 RGB色彩空间中,红色(R)分量值表示某位置处的红色强度,绿色(G)分 量值表示该位置处的绿色强度,并且蓝色(B)分量值表示该位置处的蓝色强 度。在历史上,不同的色彩空间具有用于不同应用(诸如,显示、打印、广播 和编码/解码)的优点。各样本值可使用色彩空间变换操作在各色彩空间之间转 换。

色彩采样率(有时被称为色度采样率)指代各色彩分量之间的相对空间分 辨率。例如,对于为4:4:4的色彩采样率,针对次要分量(例如,YUV的U和 V分量)的信息与针对主要分量(例如,YUV的Y分量)的信息具有相同的 空间分辨率。对于为4:2:2或4:2:0的色彩采样率,针对次要分量的信息相对于 针对主要分量的信息被下采样。YUV4:2:0格式通常用于编码/解码。作为设计 原理,将YUV4:2:0格式用于编码/解码的判定以下面的理解为前提:即对于大 多数使用情况,查看者不会注意到用YUV4:2:0格式编码/解码的视频和用YUV 4:4:4格式编码/解码的视频之间的许多视觉差异。因此,YUV4:2:0格式(其 每帧具有更少的样本)的压缩优点是引人注意的。

比特深度指代每样本值比特数。常用的比特深度为每样本8比特、每样本 10比特和每样本12比特。一般来说,每样本具有更多的比特允许视频的更精 确的色彩粒度,但将更多的存储用于该视频。每样本具有更少的比特通常以降 低的质量为代价降低比特率。

许多商业上可用的视频编码器和解码器仅支持YUV4:2:0格式。其他商业 上可用的编码器和解码器(例如,针对H.264/AVC标准或H.265/HEVC标准的 编码器和解码器)允许编码器为给定序列指定色彩空间、色彩采样率和比特深 度。指定的色彩空间、色彩采样率和比特深度被用于整个视频序列。这些方法 没有为可能在单个视频序列内处理非常不同种类的视频内容的通用编解码器 系统提供足够的灵活性。

概述

概要来说,该详细描述呈现了在自适应编码的领域中的创新。例如,创新 中的一些涉及用于在编码期间在视频序列内的各单元之间切换色彩空间的编 码器的编码器侧决策。其他创新涉及用于在编码期间在视频序列内的各单元之 间切换色彩采样率的编码器的编码器侧决策。又一些创新涉及用于在编码期间 在视频序列内的各单元之间切换比特深度的编码器的编码器侧决策。这些创新 在许多场景下都可改善编码效率。

根据本文中描述的创新的第一方面,图像或视频编码器编码序列中的视 频。在编码期间,色彩空间、色彩采样率和/或比特深度在序列内空间地和/或 时间地切换。作为编码的一部分,对于序列内的视频的多个单元中的每一个, 编码器执行速率-失真分析来评估单元的多个选项。多个选项可以是色彩空 间、色彩采样率或比特深度、或以上的组合。对于该单元,基于所述速率-失 真分析来选择所述多个选项中的一个。编码器在比特流中输出经编码的数据。 视频的多个单元可以是序列的图片、序列的给定图片的片、序列的给定图片的 块或视频序列的某些其他部分。

作为速率-失真分析的一部分,编码器可在评估色彩空间时执行色彩空间 变换操作,在这种情况下,色彩空间可包括至少一个YUV型色彩空间和至少 一个RGB型色彩空间。或者,作为速率-失真分析的一部分,编码器可在评 估所述色彩空间时执行色彩平面重新排序操作,在这种情况下,色彩空间可包 括多个RGB型色彩空间。或者,作为速率-失真分析的一部分,编码器评估 色彩采样率,色彩采样率可包括4:4:4、4:2:2、4:2:0和4:0:0中的两个或更多个。 或者,作为速率-失真分析的一部分,编码器评估比特深度,比特深度可包括 每样本12比特、每样本10比特和每样本8比特中的两个或更多个。

根据本文中描述的创新的第二方面,图像或视频编码器编码序列中的视 频。在编码期间,色彩空间、色彩采样率和/或比特深度在序列内空间地和/或 时间地切换。作为编码的一部分,对于序列内的视频的多个单元中的每一个, 编码器评估一个或多个准则来在所述单元的多个选项之间选择。多个选项可以是 色彩空间、色彩采样率或比特深度、或以上的组合。对于该单元,基于评估的 结果来选择所述多个选项中的一个。编码器在比特流中输出经编码的数据。视 频的多个单元可以是序列的图片、序列的给定图片的片、序列的给定图片的块 或视频序列的某些其他部分。

例如,作为对单元的准则进行评估的一部分,编码器确定单元的多个色彩 分量中的哪一个是支配的(例如,具有最高能量、其值中具有最高方差、具有最多 不同值、具有高于阈值量的不同值计数)。编码器随后挑选色彩空间中主色彩分 量是单元的支配色彩分量的那个色彩空间(例如,多个RGB型色彩空间中的 一个)。

或者,作为另一示例,作为对单元的准则进行评估的一部分,编码器确定 单元的视频内容的类型。如果单元的视频内容的类型是低比特率自然视频,则 编码器为该单元选择YUV型色彩空间。另一方面,如果单元的视频内容的类 型是人工创建的视频,则编码器为该单元选择RGB型色彩空间。

或者,作为另一示例,作为对单元的准则进行评估的一部分,编码器将所 述单元的一个或多个色彩分量从第一色彩采样率(例如4:4:4)下采样至第二色彩 采样率(例如4:2:2或4:2:0)、将所述单元的一个或多个色彩分量从第二色彩采样 率上采样至第一色彩采样率并且测量因为所述下采样导致的信息丢失。编码器至 少部分基于所测得的信息丢失来挑选各色彩采样率中的一个。

或者,作为另一示例,作为对单元的准则进行评估的一部分,编码器确定 单元的视频内容的类型。如果单元的视频内容的类型是自然视频,则编码器为 该单元选择第一比特深度。另一方面,如果单元的视频内容的类型是人工创建 的视频,则编码器为该单元选择第二比特深度,其中第二比特深度低于第一比 特深度。

对色彩空间、色彩采样率和/或比特深度进行自适应切换的创新可被实现为 方法的一部分、适于执行该方法的计算设备的一部分、或存储使得计算设备执 行该方法的计算机可执行指令的有形计算机可读介质的一部分。各创新可以结 合地或分开地使用。具体地,视频编码器和解码器可(以固定的色彩采样率和 固定的比特深度)仅自适应地切换视频序列内的色彩空间。或者,视频编码器 可(以固定的色彩空间和固定的比特深度)仅自适应地切换视频序列内的色彩 采样率。或者,视频编码器器可(以固定的色彩空间和固定的色彩采样率)仅 自适应地切换视频序列内的比特深度。或者,视频编码器可自适应地(1)切 换视频序列内的色彩空间和色彩采样率,但不切换比特深度,(2)切换视频 序列内的色彩空间和比特深度,但不切换色彩采样率,或(2)切换视频序列 内的色彩采样率和比特深度,但不切换色彩空间。或者,视频编码器可自适应 地切换视频序列内的色彩空间、色彩采样率和比特深度。

参考附图阅读以下详细描述,将更清楚本发明的前述和其他目标、特征和 优点。

附图简述

图1是其中可实现所描述的一些实施例的示例计算系统的示图。

图2a和2b是其中可实现所描述的一些实施例的示例网络环境的示图。

图3是结合其可实现所描述的一些实施例的示例编码器系统的示图。

图4是示例解码器系统的示图。

图5a和5b是示出结合其可实现所描述的一些实施例的示例视频编码器的 示图。

图6是示出了示例视频解码器的框图。

图7是示出具有可为屏幕捕捉提供输入的内容的计算机桌面环境的示图。

图8是示出具有自然视频内容和人工视频内容的复合视频的示图。

图9是示出针对序列中的图片的图片自适应色彩空间、色彩采样率和/或比 特深度的示图。

图10是示出针对序列中的图片的片的片自适应色彩空间、色彩采样率和/ 或比特深度的示图。

图11是示出针对序列中的图片的片的块的块自适应色彩空间、色彩采样 率和/或比特深度的示图。

图12是示出用于在编码期间自适应地切换色彩空间、色彩采样率和/或比 特深度的通用技术的流程图,且图13是示出用于在编码期间在逐单元的基础 上进行自适应切换的更详细的示例技术的流程图。

图14是示出用于在解码期间自适应地切换色彩空间、色彩采样率和/或比 特深度的通用技术的流程图,且图15是示出用于在解码期间在逐单元的基础 上进行自适应切换的更详细的示例技术的流程图。

图16是用于从处于一种格式的先前重构的内容的样本值集合中预测用不 同格式编码的块的样本值的技术的流程图。

图17示出用于在编码期间使用速率-失真分析来自适应地选择色彩空间、 色彩采样率和/或比特深度的通用技术的流程图。

图18示出用于在编码期间基于一个或多个准则来自适应地选择色彩空间、 色彩采样率和/或比特深度的通用技术的流程图。

详细描述

本详细描述呈现了在自适应编码的领域中的创新。例如,这些创新中的一 些涉及在编码期间在视频序列内的各单元之间切换色彩空间的编码器。其他创 新涉及在编码期间在视频序列内的各单元之间切换色彩采样率的编码器。又一 些创新涉及在编码期间在视频序列内的各单元之间切换比特深度的编码器。这 些创新在许多场景下都可改善编码效率。

一般而言,色彩空间(有时称为色彩模型)是用于将色彩表示为每物理位 置n个值的模型,其中n≥1,其中每个n值提供该位置的色彩分量值。

例如,在YUV色彩空间中,亮度(或Y)分量值表示某位置处的近似亮 度,且多个色度(或U和V)分量值表示该位置处的色差。色差值(以及从 YUV色彩空间到诸如RGB的另一色彩空间和/或从该另一色彩空间到YUV色 彩空间的转换操作)的精确定义取决于实现。通常,出于编码和解码的目的, Y分量是主要分量,且U和V分量是次要分量。一般来说,如本文中所使用的, 术语YUV型色彩空间指示具有亮度(或辉度)分量和一个或多个色度(或色 差)分量的任意色彩空间,包括Y’UV、YIQ、Y’IQ和YDbDr以及诸如YCbCr 和YCoCg之类的变型。

所使用的分量信号测量可通过应用非线性传递特征函数(一般被称为“伽 玛预补偿”来调整并且通常通过使用基本象征符来表示,但是为了便于印刷通 常会省略该基本象征符)。或者,这些分量信号测量可在与光振幅具有线性关 系的域中。亮度和色度分量信号可与人类视觉系统对明亮度和色彩的感知对 准,或者亮度和色度分量信号可在某种程度上偏离这样的测量(例如,如在 YCoCg变型中,其中应用了简化对色彩分量值的计算的公式)。

作为另一示例,在RGB色彩空间中,红色(R)分量值表示某位置处的红 色强度,绿色(G)分量值表示该位置处的绿色强度,并且蓝色(B)分量值表 示该位置处的蓝色强度。如本文中所使用的,术语RGB型色彩空间指示具有 处于任何次序的R、G和B色彩分量的色彩空间。示例包括RGB、BGR和GBR 色彩空间,出于编码和解码的目的其在主要分量方面不同。主要分量是用色彩 空间的首字母来指示的(例如,RGB的R)。

色彩采样率(有时被称为色度采样率)指代各色彩分量之间的相对空间分 辨率。例如,对于为4:4:4的色彩采样率,针对次要分量(例如,YUV的U和 V分量)的信息与针对主要分量(例如,YUV的Y分量)的信息具有相同的 空间分辨率。对于为4:2:2或4:2:0的色彩采样率,针对次要分量的信息相对于 针对主要分量的信息被下采样。与YUV4:4:4格式相比,YUV4:2:0格式是对 色度信息进行子采样的格式,使得色度分辨率在水平和垂直两者上都是亮度分 辨率的一半。与YUV4:4:4格式相比,YUV4:2:2格式是水平地对色度信息进 行子采样的格式,使得色度分辨率在水平上是亮度分辨率的一半。色彩采样率 的其他示例为4:1:1(次要分量在水平上具有四分之一的分辨率)和4:0:0(次 要分量被丢弃)。色彩子采样通常被应用于YUV型色彩空间。RGB型色彩空 间通常具有为4:4:4的色彩采样率,但可根据哪些次要色彩分量被子采样而具 有不同的色彩采样率。

虽然YUV4:2:0格式被方便地用于进行视频编码和解码,但存在视频具有 更丰富的色彩信息并且更高的色彩保真度可被调整的一些使用情况。在这样的 使用情况下,YUV4:4:4和YUV4:2:0色度采样格式之间的差异被查看者更容 易地感知到。例如,为了对计算机屏幕文本内容、具有人工硬边线化边界的动 画化的视频内容、或更通常地视频内容的某些特征(诸如,滚动标题和硬边线 化图形、或者信息集中在色度通道中的视频)进行编码/解码,4:4:4格式可优 于4:2:0格式。

比特深度指代每样本值比特数。常用的比特深度为每样本8比特、每样本 10比特和每样本12比特。其他可能的比特深度包括每样本4比特和每样本16 比特。

虽然本文中描述的操作是被适当描述为由视频编码器来执行,但在许多情 况中,这些操作可由另一类型的媒体处理工具(例如图像编码器)来执行。例 如,可针对诸如静止图像编码、医疗扫描内容编码、多谱图像内容编码等之类 的应用执行这些操作。

本文中描述的一些创新是参考专用于H.265/HEVC标准的句法元素和操作 来示出的。例如,对H.265/HEVC标志的草稿版本JCTVC-P1005—即2014年2 月的“高效视频编码(HEVC)范围扩展文本规范:第6稿”JCTVC-P1005_vl作 出参考。本文中描述的各创新还可以被实现为针对其它标准或格式。

更一般地,本文中描述的各示例的各种替代是可能的。例如,本文中描述 的一些方法可以通过改变描述的方法动作的顺序、通过拆分、重复或忽略某些 方法动作等来更改。所公开的技术的各方面能够被组合地或分开地使用。不同 的实施例使用所描述的创新中的一个或多个。本文中描述的一些创新解决了背 景中指出的一个或多个问题。通常,所给出的技术/工具并不解决所有这些问题。

I.示例计算系统

图1示出了其中可实现几个所描述的创新的合适计算系统(100)的概括 示例。计算系统(100)并不旨对使用范围或功能提出任何限制,因为这些创 新可以在不同的通用或专用计算系统中实现。

参考图1,计算环境(100)包括一个或多个处理单元(110、115)和存储 器(120、125)。处理单元(110、115)执行计算机可执行指令。处理单元可 以是通用中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器或任意其 它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提 高处理能力。例如,图1示出中央处理单元(110)以及图形处理单元或协处 理单元(115)。有形存储器(120、125)可以是易失性存储器(例如,寄存 器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等) 或两者的某种组合,可由处理单元存取。存储器(120,125)存储实现针对编码 器侧对于色彩空间、色彩采样率和/或比特深度的自适应切换的决策的一个或多 个创新的软件(180),该软件处于适用于由(诸)处理单元执行的计算机可 执行指令的形式。

计算系统可具有附加的特征。例如,计算系统(100)包括存储(140)、 一个或多个输入设备(150)、一个或多个输出设备(160)以及一个或多个通 信连接(170)。诸如总线、控制器或网络之类的互连机制(未示出)将计算 系统(100)的各组件互连。通常,操作系统软件(未示出)为在计算系统(100) 中执行的其它软件提供操作环境,并协调计算系统(100)的各组件的活动。

有形存储(140)可以是可移动或不可移动的,并包括磁盘、磁带或磁带 盒、CD-ROM、DVD或可用于储存信息并可在计算系统(100)内访问的任何 其他介质。存储器(140)存储实现针对编码器侧对于色彩空间、色彩采样率和/ 或比特深度的自适应切换的决策的一个或多个创新的软件(180)的指令。

(诸)输入设备(150)可以是触摸输入设备(诸如键盘、鼠标、笔或跟 踪球)、语音输入设备、扫描设备或向计算系统(100)提供输入的另一设备。 对于视频,(诸)输入设备(150)可以是相机、视频卡、TV调谐卡、屏幕捕 捉模块或接受模拟或数字形式的视频输入的类似设备、或将视频输入读到计算 系统(100)中的CD-ROM或CD-RW。(诸)输出设备(160)可以是显示器、 打印机、扬声器、CD刻录机或提供来自计算系统(100)的输出的另一设备。

(诸)通信连接(170)允许通过通信介质与另一计算实体通信。通信介 质传达诸如计算机可执行指令、音频或视频输入或输出、或已调制数据信号中 的其他数据之类的信息。已调制数据信号是使其一个或多个特征以在信号中编 码信息的方式设置或改变的信号。作为示例而非限制,通信介质可以使用电的、 光学的、RF或其它载体。

各创新可以在计算机可读介质的一般上下文中描述。计算机可读介质是可 在计算环境内访问的任何可用有形介质。作为示例而非局限,对于计算系统 (100),计算机可读介质包括存储器(120、125)、存储(140)、和以上任 意的组合。

各创新可在计算机可执行指令(诸如包括在程序模块中的在目标现实或虚 拟处理器上在计算系统中执行的那些计算机可执行指令)的一般上下文中描 述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、 程序、库、对象、类、组件、数据结构等。如各实施例中所描述的,这些程序 模块的功能可以被组合,或者在这些程序模块之间拆分。针对各程序模块的计 算机可执行指令可以在本地或分布式计算系统中执行。

术语“系统”和“设备”在此被互换地使用。除非上下文明确指示,否则,术 语并不暗示对计算系统或计算设备的类型的任何限制。一般来说,计算系统或 计算设备可以是本地的或分布式的,并且可以包括具有实现本文中描述的功能 的软件的专用硬件和/或通用硬件的任意组合。

所公开的方法还可使用被配置成执行所公开的方法中的任一者的专用计 算硬件来实现。例如,所公开的方法可以由被专门设计或配置成实现所公开的 方法中的任一者的集成电路(例如,诸如ASIC数字信号处理器(揇SP)之类 的擜SIC、图像处理单元(“GPU”)、或诸如场可编程门阵列(“FPGA”)之 类的可编程逻辑器件(“PLD”))来实现。

为了呈现起见,本详细描述使用了如“确定”和“使用”等术语来描述计算系 统中的计算机操作。这些术语是对由计算机执行的操作的高级抽象,且不应与 人类所执行的动作混淆。对应于这些术语的实际的计算机操作取决于实现而不 同。

II.示例网络环境

图2a和2b示出了包括视频编码器(220)和视频解码器(270)的示例网 络环境(201,202)。编码器(220)和解码器(270)使用合适的通信协议通过 网络(250)连接。网络(250)可包括因特网或另一计算机网络。

在图2a所示的网络环境(201)中,每个实时通信(“RTC”)工具(210) 都包括用于双向通信的编码器(220)和解码器(270)两者。给定的编码器(220) 可以产生符合H.265/HEVC标准、SMPTE421M标准、ISO/IEC14496-10标准 (也称为H.264或AVC)、另一标准、或专用格式的变型或扩展的输出,使 得相应的解码器(270)接受来自编码器(220)的经编码的数据。双向通信可 以是视频会议、视频电话呼叫或其它双方或多方通信场景的部分。虽然,图2a 中的网络环境(201)包括两个实时通信工具(210),但网络环境(201)可 改为包括参与多方通信的三个或更多个实时通信工具(210)。

实时通信工具(210)管理编码器(220)做出的编码。图3示出可以被包 括在实时通信工具(210)中的示例编码器系统(300)。替换地,实时通信工具 (210)使用另一编码器系统。实时通信工具(210)还管理解码器(270)做 出的解码。图4示出可以被包括在实时通信工具(210)中的示例解码器系统 (400)。替换地,实时通信工具(210)使用另一解码器系统。

在图2b中示出的网络环境(202)中,编码工具(212)包括编码供递送给多 个回放工具(214)的视频的编码器(220),此多个回放工具(214)包括解码器 (270)。单向通信可被提供用于视频监视系统、web相机监视系统、屏幕捕捉 模块、远程桌面会议演示或在其中编码视频并将其从一个位置发送到一个或多 个其它位置的其它场景。虽然在图2b中的网络环境(202)包括两个回放工具 (214),但该网络环境(202)可以包括更多或更少的回放工具(214)。一 般来说,回放工具(214)与编码工具(212)通信以确定回放工具(214)要 接收的视频流。回放工具(214)接收该流、缓冲所接收的经编码的数据达合 适的时间段并开始解码和回放。

图3示出可以被包括在编码工具(212)中的示例编码器系统(300)。替换 地,编码工具(212)使用另一编码器系统。编码工具(212)还可以包括用于 管理与一个或多个回放工具(214)的连接的服务器侧控制器逻辑。图4示出可以 被包括在回放工具(214)中的示例解码器系统(400)。替换地,回放工具(214) 使用另一解码器系统。回放工具(214)还可以包括用于管理与一个或多个编 码工具(212)的连接的客户机侧控制器逻辑。

III.示例编码器系统

图3是结合其可实现所描述的一些实施例的示例编码器系统(300)的框 图。编码器系统(300)可以是能够用多种编码模式中的任一者(诸如用于实 时通信的低等待时间编码模式、转码模式和用于从文件或流中产生供回放的媒 体的较高等待时间编码模式)操作的通用编码工具,或它可以是适用于一种这 样的编码模式的专用编码工具。编码器系统(300)可适用于编码特定类型的 内容(例如,屏幕捕捉内容),或者它可适用于编码若干不同类型的内容(例 如,屏幕捕捉内容和自然视频)中的任一者。编码器系统(300)可以被实现 为操作系统模块、应用库的部分、独立的应用。总体上,编码器系统(300)从 视频源(310)接收源视频帧序列(311)并产生经编码的数据作为到信道(390)的 输出。输出到信道的经编码的数据可包括通过色彩空间、色彩采样率和/或比特 深度的自适应切换来编码的内容。

视频源(310)可以是相机、调谐卡、存储介质、屏幕捕捉模块或其它数 字视频源。视频源(310)以例如每秒30帧的帧速率产生视频帧序列。如本文 中所使用的,术语“帧”一般指代源、经编码的或经重构的图像数据。对于逐行 扫描视频,帧是逐行扫描视频帧。对于隔行视频,在各示例实施例中,隔行视 频帧可以在编码之前被去隔行。替换地,两个互补的隔行视频场可以被编码在 一起作为单个视频帧或者被编码成两个经分开编码的场。除了指示逐行扫描视 频帧或隔行扫描视频帧之外,术语“帧”或“图片”可以指示单个非成对的视频场、 互补的成对视频场、表示在给定时间的视频对象的视频对象平面、或较大图像 中的感兴趣区域。视频对象平面或区域可以是包括场景的多个对象或区域的较 大图像的一部分。

抵达的源帧(311)被存储在包括多个帧缓冲器存储区域(321、322、…、 32n)的源帧临时存储器存储区域(320)中。帧缓冲器(321、322等)在源帧存储区 域(320)中保持一个源帧。在一个或多个源帧(311)已被存储在帧缓冲器(321,322 等)中后,帧选择器(330)从源帧存储区域(320)中选择一个体源帧。帧选择器 (330)选择帧以供输入到编码器(340)的次序可不同于视频源(310)产生这些帧 的次序,例如某些帧的编码可以被按序延迟,从而允许一些更后面的帧被先编 码并由此促成时间上向后的预测。在编码器(340)之前,编码器系统(300) 可包括预处理器(未示出),该预处理器在编码之前执行对选中的帧(331) 的预处理(例如滤波)。

编码器(340)编码选中的帧(331)以产生经编码的帧(341)并且还产 生存储器管理控制操作(“MMCO”)信号(342)或参考图片集(“RPS”)信息。RPS 是在针对当前帧或任意后续帧的运动补偿中可用于供参考的帧集。如果当前帧 不是已被编码的第一帧,则在执行其编码处理时,编码器(340)可以使用已经被 存储在经解码帧的临时存储器存储区域(360)中的一个或多个先前被编码/解码 的帧(369)。这样的存储的经解码帧(369)被用作用于当前源帧(331)的内容的帧 间预测的参考帧。MMCO/RPS信息(342)向解码器指示哪些经重构的帧可被用 作参考帧,并且因此应该被存储在帧存储区域中。

编码器(340)接受处于特定色彩空间(例如,YUV型色彩空间、RGB型 色彩空间)中的、具有特定色彩采样率(例如,4:4:4)和每样本特定比特数(例 如,每样本12比特)的视频。在编码期间,对于不同的图片、片、块或视频 的其他单元,编码器(340)可执行色彩空间转换以在YUV型色彩空间和RGB 型色彩空间之间变换或从某一其他色彩空间变换/变换到某一其他色彩空间。编 码器(340)还可执行色彩空间转换以对色彩分量进行重排序,从而改变哪个 色彩分量作为主要分量(例如,在RGB、BGR和GBR格式之间转换)。在典 型的实现中,与次要分量相比,编码器(340)适于在各方面都更仔细地编码 主要分量(例如,针对编码模式的更多选项,可能更少的量化步骤大小)。通 过使得具有最多的信息内容或能量的色彩分量变成主要色彩分量,编码器可改 进整体的编码效率。在编码期间,编码器(340)还可执行重采样处理以针对 不同图片、片、块或视频的其他单元改变色彩采样率(例如,在4:4:4、4:2:2 和4:2:0格式之间进行改变)。编码器(340)还可在编码期间针对不同的图片、 片、块或视频的其他单元改变比特深度(例如,在每样本12比特、每样本10 比特和每样本8比特之间进行改变)。在一些示例实现中,编码器(340)可 在编码期间在逐图片的基础上切换色彩空间、色彩采样率和/或比特深度。

一般来说,编码器(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)或其它格式的变型或扩展。

编码器(340)可以将帧分割成相同尺寸或不同尺寸的多个小块。例如, 编码器(340)沿小块行和小块列来拆分帧,这些小块行和小块列利用帧边界 定义在该帧内的小块的水平和垂直边界,其中每个小块是矩形区域。小块通常 被用于提供并行处理的选项。帧还可以被组织成一个或多个片,其中一个片可 以是整个帧或该帧的区域。片可以独立于帧中的其它片编码,这改善了错误复 原性。出于编码和解码的目的,片或小块的内容被进一步分割成块或其它样本 值集。在一些示例实现中,编码器(340)可在编码期间在逐片的基础上切换 色彩空间、色彩采样率和/或比特深度。

对于根据H.265/HEVC标准的句法来说,编码器将帧(或片或小块)的内 容拆分成编码树单元。编码树单元(“CTU”)包括被组织为亮度编码树块(“CTB”) 的亮度采样值,并且对应的色度采样值被组织为两个色度CTB。CTU(及其 CTB)的尺寸由编码器来选择,并且可例如为64x64、32x32或16x16个样本值。 CTU包括一个或多个编码单元。编码单元(“CU”)具有亮度编码块(“CB”)和两个 对应的色度CB。例如,具有64x64亮度CTB和两个64x64色度CTB(YUV4:4:4 格式)的CTU可以被拆分成4个CU,其中每个CU包括一32x32亮度CB和 两个32x32色度CB,并且每个CU可能被进一步拆分成更小的CU。或者,作 为另一示例,具有64x64亮度CTB和两个32x32色度CTB(YUV4:2:0格式) 的CTU可以被拆分成4个CU,其中每个CU包括一32x32亮度CB和两个16x16 色度CB,并且每个CU可能被进一步拆分成更小的CU。CU最小的可允许的 大小(例如8x8、16x16)可以在比特流中用信号通知。

通常,CU具有诸如帧间或帧内之类的预测模式。出于信号化预测信息(例 如预测模式细节、移位值等)和/或预测处理的目的,CU包括一个或多个预测 单元。预测单元(“PU”)具有亮度预测块(“PB”)和两个对应的色度PB。对于帧内 预测的CU,PU与CU具有相同的尺寸,除非CU具有最小尺寸(例如8x8)。 在那个情况下,CU可被拆分成四个较小的PU(例如,如果最小CU尺寸为8x8, 则每个PU为4x4),或者PU可具有最小CU尺寸,如CU的句法元素所指示 的。在帧内预测的CU中的PU可以包含单个TU(尺寸与PU相同)或多个TU。 编码器决定如何将视频分割成CTU、CU、PU、TU等。

在H.265/HEVC实现中,片可以包括单个片段(独立的片段)或被划分成 多个片段(独立的片段和一个或多个从属的片段)。片段是在小块扫描中包含 在单个网络抽象层(“NAL”)单元中的连续排序的整数个CTU。对于独立的片段, 片段头部包括适用于该独立的片段的句法元素的值。对于从属片段,截断的片 段头部包括适用于该从属片段的句法元素的几个值,并且从属片段的其它句法 元素的值是以解码次序从在前的独立的片段的值中推导出来的。

如本文中所使用的,术语“块”可以指示宏块、预测单元、残留数据单元、 或者CB、PB或TB,或者某些其它样本值集,这取决于上下文。在一些示例 实现中,编码器(340)可在编码期间在逐块的基础上切换色彩空间、色彩采 样率和/或比特深度。

回到图3,编码器根据来自源帧(331)中的其它、先前重构的样本值的预 测来表示该帧(331)的帧内编码的块。对于帧内块复制(“BC”)预测,图片内估 计器估计块相对于其它、先前重构的样本值的位移。帧内预测参考区域是帧中 用于生成块的BC预测值的样本值的区域。帧内预测区域可以用(在BV估计 中确定的)块矢量(“BV”)值来指示。对于块的帧内空间预测,图片内估计器估 计相邻的重构的样本值到该块的外插。图片内估计器可以输出经熵编码的预测 信息(例如帧内BC预测的BV值或帧内空间预测的预测模式(方向))。帧 内预测预测器应用预测信息来确定帧内预测值。

编码器(340)依据来自参考帧的预测来表示源帧(331)的帧间编码的预测 的块。运动估计器估计块相对于一个或多个参考帧(369)的运动。当使用多 个参考帧时,这多个参考帧可来自不同的时间方向或相同的时间方向。经运动 补偿的预测参考区域是(诸)参考帧中用于生成当前帧的样本块的经运动补偿 的预测值的样本区域。运动估计器输出经熵编码的诸如运动矢量(“MV”)信息之 类的运动信息。运动补偿器将MV应用于参考帧(369)以确定用于帧间预测 的经运动补偿的预测值。

编码器可以确定在块预测值(内部或之间)和对应的原始值之间的差值(如 果有的话)。这些预测残留值将进一步使用频率变换、量化和熵编码来编码。 例如,编码器(340)为图片、小块、片和/或视频的其它部分设置量化参数(“QP”) 的值,并相应地量化变换系数。编码器(340)的熵编码器压缩经量化的变换系数 值以及某些辅助信息(例如MV信息、BV预测值的索引值、BV差、QP值、 模式决策、参数选择)。典型的熵编码技术包括指数-Golomb编码、Golomb-Rice 编码、算术编码、差分编码、Huffman编码、行程长度编码、可变长度对可变 长度(“V2V”)编码、可变长度对固定长度(“V2F”)编码、Lempel-Ziv(“LZ”)编 码、字典编码、概率区间划分熵编码(“PIPE”)和上述编码的组合。熵编码器可 对不同种类的信息使用不同的编码技术,并可组合地应用多个技术(例如,通 过应用Golomb-Rice编码,随后应用算术编码),并可从特定编码技术内的多 个码表中进行选择。

自适应去块滤波器可以被包括在编码器(340)中的运动补偿循环内以平 滑经解码的帧中的块边界行和/或列上的间断。可替换地或另外地应用其它滤波 (诸如去振铃滤波、自适应环路滤波(“ALF”)或样本自适应偏移(“SAO”) 滤波,未示出)作为内环路滤波操作。

由编码器(340)产生的经编码的数据包括针对各层比特流句法的句法元 素。对于根据H.265/HEVC的标准的句法,例如,图片参数集(“PPS”)是包 含了与图片相关联的句法元素的句法结构。在一些示例实现中,PPS可包括指 示适用于图片(或使用PPS的多个图片)的色彩空间、色彩采样率和/或比特深 度的一个或多个信号以及标识或定义可用色彩空间、可用色彩采样率和/或可用 比特深度的其他信息。PPS可被用于单个图片,或者PPS可被重用于序列中的 多个图片。PPS典型地与图片的经编码的数据分开地发送信号(例如PPS的一 个NAL单元和用于图片的经编码的数据的一个或多个其它NAL单元)。在图 片的经编码数据内,句法元素指示要为该图片使用哪个PPS。类似地,对于根 据H.265/HEVC的标准的句法,序列参数集(“SPS”)是包含了与图片的序列 相关联的句法元素的句法结构。比特流可包括单个SPS或多个SPS。SPS通常 被信号化成与序列的其它数据分开,并且其它数据中的句法元素指示要使用哪 个SPS。在一些示例实现中,序列的SPS可包括标识或定义可用色彩空间、可 用色彩采样率和/或可用比特深度的信息,当在序列内切换色彩空间、色彩采样 率和/或比特深度时参考该信息。

对于片级,片头部(例如,片段头部)包括适用于片(例如,独立的片段 和后面的任何从属片段)的句法元素的值。在一些示例实现中,片头部可包括 指示适用于片的色彩空间、色彩采样率和/或比特深度的一个或多个信号。在一 些示例实现中,片头部还可包括标识或定义可用色彩空间、可用色彩采样率和 /或可用比特深度的信息,当在片内切换色彩空间、色彩采样率和/或比特深度 时参考该信息。对于块级(例如,对于CTU),句法结构包括适用于块的句法 元素的值。在一些示例实现中,针对块的句法元素可包括指示适用于块的色彩 空间、色彩采样率和/或比特深度的一个或多个信号。

经编码的帧(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)作为解码处理的一部分。

经解码帧临时存储器存储区域(360)包括多个帧缓冲存储区域(361,362,…, 36n)。以与MMCO/RPS信息(342)相一致的方式,解码处理仿真器(350) 管理存储区域(360)中的内容,以便标识出具有编码器(340)不再需要将其 用作参考帧的帧的任何帧缓冲器(361、362等)。在对解码处理进行建模之后, 解码处理仿真器(350)在帧缓冲(361,362等)中存储已经以此方式标识出的新 解码的帧(351)。

经编码的帧(341)和MMCO/RPS信息(342)被缓冲在临时的经编码数 据区域(370)中。被聚集在经编码数据区域(370)中的经编码数据将一个或多个图 片的经编码数据作为基本经编码视频比特流的句法的一部分来包含。在经编码 数据区域(370)中被聚集的经编码数据还可包括与经编码的视频数据相关的媒 体元数据(例如作为一个或多个补充增强信息(“SEI”)消息或视频可用性信息 (“VUI”)消息中的一个或多个参数)。

来自临时经编码数据区域(370)的经聚集的数据(371)由信道编码器(380) 处理。信道编码器(380)可以分组化和/或复用经聚集的数据以供作为媒体流 传输或存储(例如根据媒体程序流或传输流格式,例如ITU-TH.222.0|ISO/IEC 13818-1或因特网实时传输协议格式(例如IETFRFC3550)),在这种情况中, 信道编码器(380)可以将句法元素作为媒体传输流的句法的部分加入。或者, 信道编码器(380)可以将经聚集的数据组织作为文件存储(例如根据媒体容 器格式,诸如ISO/IEC14496-12),在这种情况中信道编码器(380)可以将句 法元素作为媒体存储文件的句法的部分加入。或者,更一般地,信道编码器 (380)可以实现一个或多个媒体系统复用协议或传输协议,在这种情况中, 信道编码器(380)可以添加句法元素作为(诸)协议的句法的一部分。信道 编码器(380)将输出提供给信道(390),该信道(390)表示存储、通信连 接或该输出的另一信道。信道编码器(380)或信道(390)还可以包括例如用 于前向纠错(“FEC”)编码和模拟信号调制的其它元素(未示出)。

IV.示例解码器系统

图4是示例解码器系统(400)的框图。解码器系统(400)可以是能够在 多种解码模式(例如针对实时通信的低等待时间解码模式以及针对来自文件或 流中的媒体回放的较高等待时间解码模式)中的任一者操作的通用解码工具, 或它可以是适用于一种这样的解码模式的专用解码工具。解码器系统(400) 可适用于解码特定类型的内容(例如,屏幕捕捉内容),或者它可适用于解码 若干不同类型的内容中的任一者(例如,屏幕捕捉内容和自然视频)。解码器 系统(400)可以被实现为操作系统模块、应用库的一部分或独立的应用。总 体上,解码器系统(400)从信道(410)接收经编码的数据并产生经重构的帧 作为针对输出目的地(490)的输出。经编码的数据可包括通过对色彩空间、 色彩采样率和/或比特深度的自适应切换来编码的内容。

解码器系统(400)包括信道(410),该信道(410)可以表示存储、通 信连接或针对作为输入的经编码数据的另一信道。信道(410)产生已经被信 道编码的经编码数据。信道解码器(420)可以处理经编码的数据。例如,信道解 码器(420)可以去分组化和/或去复用用于作为媒体流传输或存储(例如根据 媒体程序流或传输流格式,例如ITU-TH.222.0|ISO/IEC13818-1或因特网实时 传输协议格式(例如IETFRFC3550))而被聚集的数据,在这种情况中,信 道解码器(420)可以解析被作为媒体传输流的句法的部分而加入的句法元素。 或者,信道解码器(420)可以将用于作为文件来存储(例如根据媒体容器格 式,诸如ISO/IEC14496-12)而被聚集的经编码的视频数据分开,在这种情况 中信道解码器(420)可以解析作为媒体存储文件的语法的部分而加入的语法 元素。或者,更一般地,信道解码器(420)可以实现一个或多个媒体系统去 复用协议或传输协议,在这种情况中,信道解码器(420)可以解析所添加的 作为(诸)协议的句法的一部分的句法元素。信道(410)或信道解码器(420) 还可以包括例如用于FEC解码和模拟信号解调的其它元素(未示出)。

从信道解码器(420)输出的经编码的数据(421)被存储在临时的经编码数 据区域(430)中,直到已经接收到足够数量的这样的数据。经编码的数据(421) 包括经编码的帧(431)和MMCO/RPS信息(432)。在经编码数据区域(430)中 的经编码数据(421)包含一个或多个图片的经编码数据作为基本编码的视频比 特流的句法的一部分。在经编码数据区域(430)中的经编码数据(421)还可包 括与经编码的视频数据相关的媒体元数据(例如作为一个或多个SEI消息或 VUI消息中的一个或多个参数)。

一般来说,经编码数据区域(430)临时存储经编码数据(421),直到这样 的经编码数据(421)被解码器(450)使用。此时,经编码帧(431)和MMCO/RPS 信息(432)的经编码数据被从经编码数据区域(430)传输到解码器(450)。 当解码继续时,新的经编码数据被添加到经编码数据区域(430)并且保留在经编 码数据区域(430)中的最旧的经编码数据被传输到解码器(450)。

解码器(450)解码经编码帧(431)以产生相应的经解码帧(451)。在 适当时,当执行其解码处理时,解码器(450)可以将一个或多个先前解码的 帧(469)用作帧间预测的参考帧。解码器(450)从经解码帧临时存储器存储 区域(460)中读取这样的先前解码的帧(469)。

在解码期间,对于不同的图片、片、块或视频的其他单元,解码器(450) 可执行色彩空间转换以在YUV型色彩空间和RGB型色彩空间之间变换或从某 一其他色彩空间变换/变换到某一其他色彩空间。解码器(450)还可针对不同 的图片、片、块或视频的其他单元执行色彩空间转换以对各色彩分量进行重排 序,从而改变哪个色彩分量作为主要分量(例如,在RGB、BGR和GBR格式 之间转换)。在解码期间,解码器(450)还可执行重采样处理以针对不同的 图片、片、块或视频的其他单元改变色彩采样率和/或改变比特深度。在一些示 例实现中,解码器(450)可在解码期间在逐图片的基础上切换色彩空间、色 彩采样率和/或比特深度。替换地,解码器(450)可在解码期间在逐片的基础 上或逐块的基础上切换色彩空间、色彩采样率和/或比特深度。

通常,解码器(450)包括执行解码任务的多个解码模块,解码任务为诸 如熵解码,对色彩空间、色彩采样率和/或比特深度的自适应,帧内预测、运动 补偿的帧间预测、逆量化、逆频率变换和小块合并。由解码器(450)执行的确 切操作可以取决于压缩格式而变化。

例如,解码器(450)接收经压缩的帧或帧序列的经编码数据,并产生包括 经解码的帧(451)的输出。在解码器(450)中,缓冲器接收针对经压缩的帧的经 编码数据,并在适当时,使得接收到的经编码数据对熵解码器可用。熵解码器 对经熵编码的量化数据以及经熵编码的辅助信息进行熵解码,通常应用编码器 中执行的熵编码的逆来进行熵解码。运动补偿器将运动信息应用于一个或多个 参考帧以形成针对正被重构的帧的任何帧间编码块的经运动补偿的预测值。帧 内预测模块可从相邻的、先前重构的样本值中空间地预测当前块的样本值,或 者对于帧内BC预测,使用帧中的帧内预测参考区域的先前重构的样本值来预 测当前块的样本值。参考区域可用BV值来指示。解码器(450)还重构预测残 留值。逆量化器对经熵解码的数据进行逆量化。例如,解码器(450)基于比特流 中的句法元素为图片、小块、片和/或视频的其它部分设置QP值,并相应地对 变换系数进行逆量化。逆频率变换器将量化的频域数据转换成空间域数据。对 于帧间预测的块,解码器(450)将重构的预测残留值与经运动补偿的预测值 组合。解码器(450)可以类似地将预测残留值与来自帧内预测的预测值组合。 自适应去块滤波器被包括在视频解码器(450)中的运动补偿环路内以平滑经 解码的帧(451)中的块边界行和/或列上的间断。可替换地或另外地应用其它滤波 (例如去振铃滤波、ALF或SAO滤波;未示出)作为内环路滤波操作。

经解码帧临时存储器存储区域(460)包括多个帧缓冲器存储区域(461、 462、…、46n)。经解码帧存储区域(460)是经解码图片缓冲器的一个示例。 解码器(450)使用MMCO/PS信息(432)来标识该解码器可将经解码帧(451)存 储在其中的帧缓冲器(461、462等)。解码器(450)将经解码的帧(451)存 储在那个帧缓冲器中。

输出序列发生器(480)标识按输出次序将产生的下一帧何时可在经编码 帧存储区域(460)中获得。当按输出次序将产生的下一帧(481)可在经解码 帧存储区域(460)中获得时,输出序列发生器(480)读取该下一帧并将其输 出到输出目的地(490)(例如显示器)。一般来说,输出序列发生器(480) 将帧从经解码帧存储区域(460)中输出的次序可以与解码器(450)解码这些帧 的次序不同。

V.示例视频编码器

图5a和5b是可结合其实现所描述的一些实施例的通用视频编码器(500) 的框图。编码器(500)接收包括当前图片的视频图片序列作为输入视频信号 (505)并在经编码视频流(595)中产生经编码的数据作为输出。

编码器(500)是基于块的并使用取决于实现的块格式。块还可在不同的阶段 上被进一步细分,例如在预测、频率变换和/或熵编码阶段。例如,图片可以被 划分成64x64块、32x32块或16x16块,这些块随后可以被划分成更小的样本 值块以用于编码和解码。在针对H.265/HEVC标准的编码的实现中,编码器将 图片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。

编码器(500)使用图片内编码和/或图片间编码来压缩图片。编码器(500) 的许多组件被用于图片内编码和图片间编码两者。由这些组件执行的确切操作 可取决于所压缩的信息的类型而变化。

小块化模块(510)可选地将图片分割成相同尺寸或不同尺寸的多个小块。 例如,小块化模块(510)沿小块行和小块列来拆分图片,所述小块行和小块 列利用图片边界定义在图片内的小块的水平和垂直边界,其中每个小块是矩形 区域。在H.265/HEVC实现中,编码器(500)将图片分割成一个或多个片,其中 每个片包括一个或多个片段。

通用编码控件(520)接收输入视频信号(505)的图片以及来自编码器(500) 的各个模块的反馈(未示出)。整体上,通用编码控件(520)将控制信号(未 示出)提供给其它模块(例如小块化模块(510)、变换器/缩放器/量化器(530)、 缩放器/逆变换器(535)、图片内估计器(540)、运动估计器(550)以及帧 内/帧间切换)以设置和改变编码期间的编码参数。具体地,通用编码控件(520) 可判定如何在编码期间在逐图片的基础上、逐片的基础上、逐块的基础上或在 某一其他基础上自适应地切换色彩空间、色彩采样率和/或比特深度。章节VII.G 描述了用于编码器(500)来决定如何在编码期间自适应地切换色彩空间、色 彩采样率和/或比特深度的示例策略。通用编码控件(520)还可在编码期间评 估中间结果。通用编码控件(520)产生指示在编码期间所做出的判定的通用 控制数据(522),使得对应的解码器可以作出一致的判定。通用控制数据(522) 被提供给头部格式化器/熵编码器(590)。

如果使用图片间预测来预测当前的图片,运动估计器(550)相对于一个 或多个参考图片估计输入视频信号(505)的当前图片的采样值的块的运动。经解 码图片缓冲器(570)缓冲一个或多个重构的先前编码的图片以供用作参考图 片。当使用多个参考图片时,这多个参考图片可以来自不同的时间方向或相同 的时间方向。运动估计器(550)产生诸如MV数据、合并模式索引值、和参 考图片选择数据之类的辅助信息运动数据(552)。运动数据(552)被提供给头部格 式化器/熵编码器(590)以及运动补偿器(555)。

运动补偿器(555)将MV应用于来自经解码图片缓冲器(570)的(诸)经重 构的参考图片。运动补偿器(555)产生针对当前图片的经运动补偿的预测。当图 片的次要分量具有与主要分量相同的分辨率时(例如,当格式为YUV4:4:4格 式或RGB4:4:4格式时),对次要分量块应用的MV值可与对相应的主要分量 块应用的MV值相同。在另一方面,当图片的次要分量相对于主要分量具有降 低的分辨率时(例如,当格式为YUV4:2:0格式时),对次要分量块应用的 MV值可被缩小并可能被舍入以对分辨率方面的差异进行调整(例如,通过将 MV值的垂直和水平分量除以2并且将其截短或舍入成整数值来调整)。

在编码器(500)内的分开的路径中,图片内估计器(540)确定如何执行对 输入视频信号(505)的当前图片的样本值块的图片内预测。当前图片可全部或部 分使用图片内编码来编码。对于帧内空间预测,使用当前图片的重构(538) 的值,图片内估计器(540)确定如何从当前图片的邻近的、先前重构的样本 值中空间地预测当前图片中的当前块的样本值。或者,对于使用BV值的帧内 BC预测,图片内估计器(540)估计当前块的样本值到当前图片内的不同候选 参考区域的位移。在图5b中,候选参照区域包括重构的样本值。替换地,出 于BV估计的目的,候选参考区域可包括输入样本值。

图片内估计器(540)产生辅助信息帧内预测数据(542),诸如指示帧内预测使 用空间预测还是帧内BC预测的信息(例如,每帧内块的标志值)、(针对帧 内空间预测的)预测模式方向、以及(针对帧内BC预测的)BV值。帧内预测 数据(542)被提供给头部格式化器/熵编码器(590)以及图片内预测器(545)。

根据帧内预测数据(542),图片内预测器(545)从当前图片的相邻的、先前重 构的样本值中空间地预测当前图片中的当前块的样本值。或者,对于帧内BC 预测,图片内预测器(545)使用图片内预测参考区域的先前重构的样本值来 预测当前块的样本值,图片内预测参考区域由针对当前块的BV值来指示。在 一些情况中,BV值可以是BV预测值(预测的BV值)。在其它情况中,BV 值可以不同于其被预测的BV值,在该情况中BV差异指示了在被预测的BV 值和BV值之间的差值。当图片的次要分量具有与主要分量相同的分辨率时(例 如,当格式为YUV4:4:4格式或RGB4:4:4格式时),对次要分量块应用的 BV值可与对相应的主要分量块应用的BV值相同。另一方面,当图片的次要 分量相对于主要分量具有降低的分辨率时(例如,当格式为YUV4:2:0格式 时),对次要分量块应用的BV值可被缩小并可能被舍入以对分辨率方面的差 异进行调整(例如,通过将BV值的垂直和水平分量除以2并且将其截短或舍 入成整数值来调整)。

帧内/帧间切换选择对给定块的预测(558)将是经运动补偿的预测还是图片 内预测。对于非跳跃模式块,预测(558)的块和输入视频信号(505)的原始当前 图片的对应部分之间的差异(如果有的话)提供残留部分的值(518)。在当 前图片的重构期间,对于非跳跃模式块,经重构的残留值与预测(558)组合来从 视频信号(505)中产生对原始内容的近似或精确的重构(538)。(在有损压 缩中,一些信息从视频信号(505)中丢失。)

在变换器/缩放器/量化器(530)中,频率变换器将空间域视频信息转换为 频域(即频谱、变换)数据。对于基于块的视频编码,频率变换器将离散余弦 变换(“DCT”)、其整数近似、或其它类型的前向块变换(例如离散正弦变换或 其整数近似)应用于预测残留数据的块(如果预测(558)为空则应用于采样值 数据),产生频率变换系数的块。编码器(500)可能还能够指示这样的变换 步骤被省略了。缩放器/量化器对变换系数进行缩放和量化。例如,量化器用量 化步骤尺寸将死区标量量化应用于的频域数据,该量化步骤尺寸在逐图片的基 础上、逐小块的基础上、逐片的基础上、逐块的基础上、因频率而异的基础上 或在其他基础上变化。经量化的变换系数数据(532)被提供给头部格式化器/ 熵编码器(590)。

在缩放器/逆变换器(535)中,缩放器/逆量化器对经量化的变换系数执行 逆缩放和逆量化。逆频率变换器执行逆频率变换,从而产生经重构的预测残留 值或样本值的块。对于非跳跃模式块,编码器(500)将经重构的残留值与预 测(558)的值(例如,经运动补偿的预测值、图片内预测值)组合以形成重 构(538)。对于跳跃模式块,编码器(500)使用预测(558)的值作为重构(538)。

对于图片内预测,重构(538)的值可以被馈送回图片内估计器(540)和图片 内预测器(545)。同样,重构(538)的值可以被用于后续图片的运动补偿的预 测。重构(538)的值可以被进一步滤波。对于视频信号(505)的给定图片,滤 波控件(560)确定如何对重构(538)的值执行去块滤波和SAO滤波。滤波控件 (560)生成滤波控制数据(562),它被提供给头部格式化器/熵编码器(590) 和合并器/(诸)滤波器(565)。

在合并器/(诸)滤波器(565)中,编码器(500)将来自不同小块的内容 合并到图片的经重构版本中。编码器(500)根据滤波器控制数据(562)选择 性地执行去块滤波和SAO滤波,以便自适应地平滑各图片中的各边界上的间 断。可替换地或另外地应用其它滤波(例如去振铃滤波或ALF;未示出)。取 决于编码器(500)的设置,小块边界可以被选择性地滤波或根本不被滤波, 并且编码器(500)可以在经编码的比特流内提供指示这样的滤波是否被应用 的句法。经解码图片缓冲器(570)缓冲经重构的当前图片以供在后续的运动 补偿的预测中使用。

头部格式化器/熵编码器(590)格式化和/或熵编码通用控制数据(522)、 量化的变换系数数据(532)、帧内预测数据(542)、运动数据(552)以及 滤波器控制数据(562)。通用控制数据(522)包括为各图片、片、块或视频 的其他单元指示色彩空间、色彩采样率和/或比特深度的信号。这样的信号可例 如被包括在PPS、片头部、块句法结构或其他句法结构中,并且可被熵编码或 信号化成固定长度值。头部格式化器/熵编码器(590)还可对以下信息进行格 式化和/或熵编码:标识或定义可用色彩空间的信息(例如,预定义色彩空间、 针对色彩空间变换操作的自定义度量的列表)、标识或定义可用色彩采样率的 信息(例如,预定义色彩采样率、其他色彩采样率或用于下采样和上采样的操 作的标识的列表)、和/或标识或定义可用比特深度的信息(例如,预定义比特 深度、其他比特深度或用于比特深度转换的操作的标识的列表),这些信息可 被解码器在自适应切换期间使用。

头部格式化器/熵编码器(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)或其它格式的变体或扩展。

取决于期望的实现和压缩类型,编码器(500)的模块可被添加、省略、 分成多个模块、与其它模块组合、和/或用相似的模块来替代。在替换实施例中, 具有不同模块和/或其它配置的模块的编码器执行一个或多个所描述的技术。编 码器的具体实施例通常使用编码器(500)的变型或补充版本。所示的编码器 (500)内的各模块之间的关系指示了信息在编码器中的一般流动;为简明起 见,未示出其它关系。

VI.示例视频解码器

图6是通用解码器的框图。解码器(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)或其它格式的变体或扩展。

解码器(600)是基于块的并使用取决于实现的块格式。块可以在不同的阶段 被进一步细分。例如,图片可以被划分成64x64块、32x32块或16x16块,这 些块随后可以被划分成更小的样本值块。在针对H.265/HEVC标准的解码实现 中,将图片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。

解码器(600)使用图片内解码和/或图片间解码来对图片进行解压缩。解码 器(600)的许多组件被用于图片内解码和图片间解码这两者。由这些组件执 行的确切操作可以取决于正被解压缩的信息的类型而变化。

缓冲器在经编码的视频比特流(605)中接收经编码数据,并使得接收到的 经编码数据可用于解析器/熵解码器(610)。解析器/熵解码器(610)熵解码 经熵编码的数据,通常应用在编码器(500)中执行的熵编码的逆(例如上下 文自适应二进制算术解码)。作为解析和熵解码的结果,解析器/熵解码器(610) 产生通用控制数据(622)、经量化的变换系数数据(632)、帧内预测数据(642)、 运动数据(652)以及滤波器控制数据(662)。通用控制数据(622)包括为 各图片、片、块或视频的其他单元指示色彩空间、色彩采样率和/或比特深度的 信号。这样的信号可例如被包括在PPS、片头部、块句法结构或其他句法结构 中,并且可被熵编码或信号化成固定长度值。解析器/熵解码器(610)还可对 以下信息进行解析和/或熵解码:标识或定义可用色彩空间的信息(例如,预定 义色彩空间、针对色彩空间变换操作的自定义度量的列表)、标识或定义可用 色彩采样率的信息(例如,预定义色彩采样率、其他色彩采样率或用于下采样 和上采样的操作的标识的列表)、和/或标识或定义可用比特深度的信息(例如, 预定义比特深度、其他比特深度或用于比特深度转换的操作的标识的列表), 这些信息可被解码器(600)在自适应切换期间使用。

通用解码控件(620)接收通用控制数据(622)并将控制信号(未示出) 提供给其它模块(例如缩放器/逆变换器(635)、图片内预测器(645)、运动 补偿器(655)以及帧内/帧间切换)以设置和改变解码期间的解码参数。具体 地,通用解码控件(620)可使得解码器(600)在解码期间在逐图片的基础上、 逐片的基础上、逐块的基础上或在某一其他基础上切换色彩空间、色彩采样率 和/或比特深度。

如果使用图片间预测来预测当前图片,运动补偿器(655)接收运动数据 (652),例如MV数据、参考图片选择数据以及合并模式索引值。运动补偿 器(655)将MV应用于来自经解码图片缓冲器(670)的(诸)经重构的参考图片。 运动补偿器(655)产生针对当前图片中的帧间编码块的运动补偿的预测。经解码 图片缓冲器(670)存储一个或多个先前重构的图片以供用作参考图片。

在解码器(600)内的分开路径中,图片内预测预测器(645)接收帧内预 测数据(642),诸如指示帧内预测是否使用空间预测或帧内BC预测(例如, 每个帧内块的标记值)、预测模式方向(对于帧内空间预测)、和BV值(对 于帧内BC预测)的信息。对于帧内空间内预测,根据预测模式数据使用当前 图片的重构(638)的值,图片内预测器(645)从当前图片的相邻的、先前重 构的样本值中空间地预测当前图片的当前块的样本值。或者,对于使用BV值 的帧内BC预测,图片内预测器(645)使用图片内预测参考区域的先前重构的 样本值来预测当前块的样本值,图片内预测参考区域由针对当前块的BV值来 指示。

帧内/帧间切换选择对于给定块的预测(658)是经运动补偿的预测还是图片 内预测。例如,当遵循H.265/HEVC句法时,可以基于为图片中的CU编码的 句法元素来控制帧内/帧间切换,该CU可以包括帧内预测的CU和帧间预测的 CU。对于非跳跃模式块,解码器(600)将预测(658)与重构的残留值组合以 产生来自视频信号的内容的重构(638)。对于跳跃模式块,解码器(600)使 用预测(658)的值作为重构(638)。

为了重构非跳跃模式块的残留值,缩放器/逆变换器(635)接收并处理经 量化的变换系数数据(632)。在缩放器/逆变换器(635)中,缩放器/逆量化 器对经量化的变换系数执行逆缩放和逆量化。逆频率变换器执行逆频率变换, 从而产生经重构的预测残留值或样本值的块。例如,逆频率变换器将逆块变换 应用到频率变换系数,从而产生样本值数据或预测残留数据。逆频率变换可以 是逆DCT、其整数近似、或另一种类型的逆频率变换(例如逆离散正弦变换或 其整数近似)。

对于图片内预测,重构(638)的值可以被馈送回图片内预测器(645)。对于图 片间预测,重构(638)的值可以被进一步滤波。在合并器/(诸)滤波器(665) 中,解码器(600)将来自不同小块的内容合并到图片的经重构版本中。解码 器(600)根据滤波器控制数据(662)和滤波自适应规则来执行去块滤波和SAO 滤波,以便自适应地平滑各图片中的各边界上的间断。可替换地或另外地应用 其它滤波(例如去振铃滤波或ALF;未示出)。小块边界可以被选择性地滤波 或根本不滤波,这取决于解码器(600)的设置或经编码的比特流数据内的句 法指示。经解码图片缓冲器(670)缓冲经重构的当前图片以供在后续的运动 补偿的预测中使用。

解码器(600)还可包括后处理滤波器。后处理滤波器(608)可以包括去 振铃滤波、自适应维纳滤波、膜颗粒再现滤波、SAO滤波或另一种类型的滤波。

取决于实现和所希望的解压缩的类型,可以添加、省略解码器(600)的 模块,拆分成多个模块,与其他模块相结合,和/或替换为类似的模块。在替换 实施例中,具有不同模块和/或其它配置的模块的解码器执行一个或多个所描述 的技术。解码器的具体实施例通常使用解码器(600)的变型或补充版本。所 示的解码器(600)内的模块之间的关系指示信息在解码器中的一般流动;为 简明起见,未示出其它关系。

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

在编码期间,编码器可在各方面都比次要色彩分量更仔细地对待主要色彩 分量(例如,针对编码模式的更多选项,可能更少的量化步骤尺寸)。同样, 通过对次要色彩分量进行子采样,编码器可向主要色彩分量分派相对更多的比 特(并因此分派更多的质量)。

视频序列的不同图片、片或块的样本值可具有不同的统计特性。这些不同 的统计特性可影响编码效率,可在速率-失真性能(给定比特率的较低或较高质 量;或给定质量的较低或较高比特率)方面对该编码效率进行测量。

例如,对于YUV型色彩空间,Y分量是主要分量。对于YUV型色彩空间 中的图片,片或块,如果信息内容或能量的相当大的量是在Y分量中,并且U 和V分量是很少量的,编码器可以通过在YUV型色彩空间中编码,可能对U 和V分量进行下采样来实现良好的编码效率。另一方面,如果Y、U和V分量 中没有分量对图片、片或块有支配地位,在YUV型色彩空间中编码可能无法 实现良好的编码效率。在这种情况中,下采样U和V分量或与与Y分量相比 更少关注度地对U和V分量进行编码可能在重构图片、片或块时产生明显的失 真。然而,如果在RGB型色彩空间中编码了相同的图片、片或块,色彩分量 (R、G或B)之一可能是支配的,并且将支配分量作为主要分量编码可以改 善编码效率。或者,使用4:4:4作为色彩采样格式可以改善编码效率。类似 地,取决于内容,改变采样值的比特深度可能在编码效率方面被证明是正确或 不正确的(由于比特率中的改变,质量方面的变化)。

该章节呈现对视频序列的各单元的自适应编码和解码的各种特征。单元可 以是图片、片、块或视频序列的其他部分。例如,这些特征中的一些涉及包括 色彩空间在视频序列的各单元之间的自适应切换的编码/解码。其他特征涉及包 括色彩采样率在视频序列内的各单元之间的自适应切换的编码/解码。又一些特 征涉及包括比特深度在视频序列内的各单元之间的自适应切换的编码/解码。这 些特征可在许多场景下改善编码效率,并可被组合地或分开地使用。

在对某个“人工”创建的视频内容(诸如屏幕捕捉内容)进行编码或者在 对自然视频和人工创建的视频内容的混合进行编码时,对色彩空间、色彩采样 率和/或比特深度的自适应切换可改善速率-失真性能,编码/解码屏幕捕捉内容 的常见场景包括远程桌面会议和对自然视频或其它“经混合的内容”视频的图形 覆盖的编码/解码。

A.视频的类型

一般来说,屏幕捕捉视频表示计算机屏幕或其他显示的输出。图7示出具 有可为屏幕捕捉提供输入的内容的计算机桌面环境(710)。例如,屏幕捕捉 视频可表示整个计算机桌面(711)的一系列图像。或者,屏幕捕捉视频可表 示针对计算机桌面环境的窗口之一的一系列图像,窗口为诸如包括游戏内容的 应用窗口(713)、具有网页内容的浏览器窗口(712)或具有文字处理器内容 的窗口(714)。

作为计算机生成的、人工创建的视频内容,屏幕捕捉内容往往具有与使用 摄像机捕捉的自然视频内容相比相对较少的离散样本值。例如,屏幕捕捉内容 的区域通常包括单个统一色彩,而自然视频内容中的区域更可能包括逐渐变化 的色彩。同样,屏幕捕捉内容通常包括不同的结构(例如,图形、文本字符), 这些不同的结构精确地逐帧重复,即使该内容可能在空间上被移位(例如,由 于滚动)。屏幕捕捉内容通常是用具有高色度采样分辨率的格式(例如YUV 4:4:4或RGB4:4:4)来编码的,但是它也可以用具有较低色度采样分辨率的格 式(例如YUV4:2:0、YUV4:2:2)来编码。

图8示出包括自然视频(821)和人工创建的视频内容的复合视频(820)。 人工创建的视频内容包括自然视频(821)旁边的图形(822)以及在自然视频 (821)下面运行的贴标(823)。与图7中示出的屏幕捕捉内容类似,图8中 示出的人工创建的视频内容往往具有相对较少的离散样本值。它还往往具有精 确地逐帧重复(例如,由于滚动)的不同的结构(例如,图形、文本字符)。

B.自适应切换的示例

对于色彩空间的自适应切换,序列中的视频的不同单元在不同的色彩空间 中编码。例如,一些单元在YUV型色彩空间(例如YCbCr、YCoCg)中编码, 而其他单元在RGB型色彩空间(例如,RGB、BGR、GBR)中编码。在这种 情况下,编码器或解码器在适当时对样本值执行色彩空间变换操作以在YUV 型色彩空间和RGB型色彩空间之间切换。通常,色彩空间变换操作可被表示 为在逐位置的基础上执行的矩阵乘法操作,其中某位置在第一色彩空间中的n 个样本值被乘以nxn矩阵以产生该位置在第二色彩空间中的n个样本值。在实 践中,色彩空间变换操作可使用其他算法来实现。

作为对色彩空间的自适应切换的另一示例,不同的单元可在不同的RGB 型色彩空间中编码,这些不同的RGB型色彩空间在其主要分量和各分量(例 如,对于残留数据)被信号化的次序方面不同在这种情况下,编码器或解码器 在恰当时对样本值的块或平面执行色彩空间重排序操作以改变哪个色彩分量 是主要色彩分量。

在一些示例实现中,对于有损编码,编码器可在不同色彩空间中的任何色 彩空间之间切换。然而,对于无损编码,编码器仅执行可逆色彩空间转换(例 如,在RGB、BGR和GBR色彩空间之间对色彩分量进行重排序,或者在一些 实现中,使用增加的中间比特深度来转换到YCoCg/或从YCoCg转换)。

对于色彩采样率的自适应切换,序列中的视频的不同单元是用不同的色彩 采样率来编码的。例如,一些单元是用4:2:2或4:2:0格式(诸如YUV4:2:2 或YUV4:2:0)来编码的,而其他单元是用4:4:4格式(诸如YUV4:4:4)来编 码的。RGB型色彩空间通常具有为4:4:4的色彩采样率,但其色彩分量可改为 是根据为4:2:2或4:2:0的色彩采样率来子采样的,例如,在主要色彩分量比次 要色彩分量占优势的多的情况下。

在对次要分量的样本值进行水平地或垂直地下采样时,编码器或解码器可 执行单纯的子采样、低通滤波加子采样、或其他滤波加子采样。对于对次要分 量的样本值的相应上采样,编码器或解码器使用例如样本值重复和/或滤波来反 转该子采样。

对于比特深度的自适应切换,序列中的视频的不同单元是用不同的比特深 度来编码的。例如,一些单元被编码成具有12比特样本值,而其他单元被编 码成具有10比特样本值或8比特样本值。当在各比特深度之间转换时,编码 器或解码器可(利用或不利用舍入因子的添加)截断较高比特深度的样本值以 产生较低比特深度的样本值,或缩放较低比特深度的样本值以产生较高比特深 度的样本值。

编码器通常以具有12比特样本值的给定格式(诸如RGB4:4:4)来接收输 入视频。编码器可针对视频的给定单元在输入格式和另一格式(具有不同的色 彩空间、不同的色彩采样率和/或不同的比特深度)之间转换。色彩空间自适应 可单独地或与色彩采样率自适应和/或比特深度自适应组合地在图片级、片级、 块级或某一其他级处执行。类似地,色彩采样率自适应可单独地或与色彩空间 自适应和/或比特深度自适应组合地在图片级、片级、块级或某一其他级处执行。 比特深度自适应可单独地或与色彩空间自适应和/或比特采样率自适应组合在 图片级、片级、块级或某一其他级处执行。

图9示出针对序列(900)中的图片的图片自适应色彩空间、色彩采样率 和/或比特深度。序列(900)包括一系列图片。编码器按需将输入视频从输入 视频格式转换成为给定图片选择的格式。图片1的格式为具有8比特样本值的 YCbCr4:2:0,并且图2的格式为具有8比特样本值的RGB4:4:4。图片3和4 是RGB4:4:4视频,但其样本值具有不同的比特深度。

图10示出针对序列中的图片(1000)的片的片自适应色彩空间、色彩采 样率和/或比特深度。图片(1000)包括五个片,这些片的边界以虚线示出。例 如,片0、1、3和4可与屏幕捕捉内容或其他人工创建的视频内容相关联,而 片2与自然视频内容相关联。片0和3的格式为具有10比特样本值的BGR 4:4:4。片1包括GBR4:4:4视频的12比特样本值。片2的格式为具有8比特样 本值的YCbCr4:2:0,并且片4的格式为具有8比特样本值的RGB4:4:4。

图11示出针对序列中的图片的片(1100)的块的块自适应色彩空间、色 彩采样率和/或比特深度。片(1100)包括具有三种不同块尺寸的16个块。前两个 块的格式为具有8比特样本值的YCbCr4:2:0,并且最后一个块的格式为具有 10比特样本值的YCbCr4:2:0。块2-15包括RGB型色彩空间中具有为4:4:4的 采样率的12比特样本值。块2-15的色彩空间在RGB、BGR和GBR之间进行 改变。

C.编码期间的自适应切换的示例

图12示出用于在编码期间自适应地切换色彩空间、色彩采样率和/或比特 深度的通用技术(1200)。图像编码器或视频编码器(诸如参考图3或图5a-5b 描述的编码器)可执行技术(1200)。

编码器对序列中的视频进行编码(1210)。作为编码的一部分,编码器在 编码期间在序列内的视频的至少一些单元之间切换色彩空间、色彩采样率和/ 或比特深度。编码器可在图片内空间地切换色彩空间、色彩采样率和/或比特深 度。编码器还可逐图片地在时间上切换色彩空间、色彩采样率和/或比特深度。 出于自适应切换的目的,视频的单元可以是序列的图片、序列的给定图片的片、 序列的给定图片的块或视频序列的其他部分。

例如,该切换可包括使用空间变换操作在两个色彩空间之间进行改变。对 于色彩空间变换操作,色彩空间可包括至少一个YUV型色彩空间和至少一个 RGB型色彩空间。或者,作为另一示例,该切换可包括使用空间重排序操作在 两个色彩空间之间进行改变。对于色彩空间重排序操作,色彩空间可包括多个 RGB型色彩空间。替换地,色彩空间包括其他和/或附加的色彩空间。

或者,作为另一示例,该切换可包括在两个色彩采样率之间进行改变。色 彩采样率可包括4:4:4、4:2:2、4:2:0和4:0:0中的两个或更多个。替换地,色彩 采样率包括其他和/或附加的色彩采样率。

或者,作为另一示例,该切换可包括在两个比特深度之间进行改变。比特 深度可包括每样本12比特、每样本10比特和每样本8比特中的两个或更多个。 视频的给定单元的不同色彩分量可具有相同的比特深度或不同的比特深度。替 换地,比特深度包括其他和/或附加的比特深度。

在编码期间,编码器可至少部分地基于先前重构的内容的样本值集合来预 测当前图片中的当前块的样本值。对于图片内预测,该样本值集合是当前图片 的一部分。对于图片间预测,该样本值集合是参考图片的一部分。在当前块的 样本值和先前重构的内容的样本值集合处于不同的格式时,编码器可执行转换 操作以促成该预测。在章节VII.E中描述了这样的转换操作的示例。

在编码期间,编码器还可根据一个或多个规则对先前重构的内容执行自适 应内环路去块。(诸)规则可考虑先前重构的内容内的两个毗邻块的不同色彩 空间。在章节VII.F中描述了用于自适应去块的规则的示例。

编码器在比特流中输出(1220)经编码的数据。经编码的数据包括指示如 何在序列内的视频的至少一些单元之间切换色彩空间、色彩采样率和/或比特深 度的一个或多个信号。在章节VII.D中描述了针对该一个或多个信号的句法元 素的示例。

图13示出用于在编码期间自适应地切换色彩空间、色彩采样率和/或比特 深度的更详细的技术(1300)。图像编码器或视频编码器(诸如参考图3或图 5a-5b描述的编码器)可执行技术(1300)。具体地,图13示出了由编码器作 出的逐单元判定,但如参考图12描述了用于编码的其他选项。

编码器得到(1310)下一单元(例如,图片、片、块)并为该单元设置(1320) 色彩空间、色彩采样率和/或比特深度。编码器按需将样本值转换到为该单元设 置的另一色彩空间、色彩采样率和/或比特深度,随后对该单元进行编码(1330)。 编码器输出(1340)该单元的经编码数据,该经编码数据包括指示该单元的色 彩空间、色彩采样率和/或比特深度的一个或多个信号。编码器检查(1350)是 否继续下一单元,并且如果如此,则得到(1310)下一单元。

C.解码期间的自适应切换的示例

图14示出用于在解码期间自适应地切换色彩空间、色彩采样率和/或比特 深度的通用技术(1400)。图像解码器或视频解码器(诸如参考图4或图6描 述的解码器)可执行技术(1400)。

解码器接收(1410)比特流中的经编码数据。经编码的数据包括指示如何 在序列内的视频的至少一些单元之间切换色彩空间、色彩采样率和/或比特深度 的一个或多个信号。在章节VII.D中描述了针对该一个或多个信号的句法元素 的示例。

解码器对序列中的视频进行解码(1420)。作为解码的一部分,解码器在 解码期间在序列内的视频的至少一些单元之间切换色彩空间、色彩采样率和/ 或比特深度。解码器可在图片内空间地切换色彩空间、色彩采样率和/或比特深 度。解码器还可逐图片地在时间上切换色彩空间、色彩采样率和/或比特深度。 出于自适应切换的目的,视频的单元可以是序列的图片、序列的给定图片的片、 序列的给定图片的块或视频序列的其他部分。

例如,该切换可包括使用空间变换操作在两个色彩空间之间进行改变。对 于色彩空间变换操作,色彩空间可包括至少一个YUV型色彩空间和至少一个 RGB型色彩空间。或者,作为另一示例,该切换可包括使用空间重排序操作在 两个色彩空间之间进行改变。对于色彩空间重排序操作,色彩空间可包括多个 RGB型色彩空间。替换地,色彩空间包括其他和/或附加的色彩空间。

或者,作为另一示例,该切换可包括在两个色彩采样率之间进行改变。色 彩采样率可包括4:4:4、4:2:2、4:2:0和4:0:0中的两个或更多个。替换地,色彩 采样率包括其他和/或附加的色彩采样率。

或者,作为另一示例,该切换可包括在两个比特深度之间进行改变。比特 深度可包括每样本12比特、每样本10比特和每样本8比特中的两个或更多个。 视频的给定单元的不同色彩分量可具有相同的比特深度或不同的比特深度。替 换地,比特深度包括其他和/或附加的比特深度。

在解码期间,解码器可至少部分地基于先前重构的内容的样本值集合来预 测当前图片中的当前块的样本值。对于图片内预测,该样本值集合是当前图片 的一部分。对于图片间预测,该样本值集合是参考图片的一部分。在当前块的 样本值和先前重构的内容的样本值集合处于不同的格式时,解码器可执行转换 操作以促进该预测。在章节VII.E中描述了这样的转换操作的示例。

在解码期间,解码器还可根据一个或多个规则对先前重构的内容执行自适 应内环路去块。(诸)规则可考虑先前重构的内容内的两个毗邻块的不同色彩 空间。在章节VII.F中描述了用于自适应去块的规则的示例。

图15示出用于在解码期间自适应地切换色彩空间、色彩采样率和/或比特 深度的更详细的技术(1500)。图像解码器或视频解码器(诸如参考图4或图 6描述的解码器)可执行技术(1500)。具体地,图15示出了由解码器作出的 逐单元判定,但如参考图14描述了用于解码的其他选项。

解码器得到(1510)针对下一单元(例如,图片、片、块)的经编码的数 据。经编码的数据包括指示该单元的色彩空间、色彩采样率和/或比特深度的一 个或多个信号。解码器确定(1520)该单元的色彩空间、色彩采样率和/或比特 深度。解码器对该单元进行解码(1530),从而按需将样本值从为该单元设置 的色彩空间、色彩采样率和/或比特深度中转换走。解码器检查(1540)是否继 续下一单元,并且如果如此,则得到(1510)针对下一单元的经编码数据。

D.对自适应切换信息进行信号化的示例

该章节描述了指示如何在序列内的视频的至少一些单元之间切换色彩空 间、色彩采样率和/或比特深度的信号的示例。一般来说,比特流中的信号指示 在用于编码/解码单元的两个或更多个选项之间的选择。对于色彩空间自适应, 该信号指示在编码/解码单元时使用的两个或更多个色彩空间之间的选择。对于 色彩采样率自适应,该信号指示在编码/解码单元时使用的两个或更多个色彩采 样率之间的选择。对于比特深度自适应,该信号指示在编码/解码单元时使用的 两个或更多个比特深度之间的选择。可为单元的不同色彩分量信号化不同的比 特深度。

该信号可以是针对给定单元的指示在用于编码/解码给定单元的针对色彩 空间(或色彩采样率或比特深度)的两个选项之间的选择的标志值。或者,该 信号可以是针对给定单元(或给定单元的多个标志)的指示在用于编码/解码给 定单元的针对色彩空间(或色彩采样率或比特深度)的三个或更多个选项之间 的选择的某个其他句法元素。

针对给定单元的信号可被呈现在比特流句法的各个级别中的任一者处。对 于逐图片的自适应,例如,指示对色彩空间(或色彩采样率或比特深度)的选 择的句法元素可以是PPS的一部分。或者,对于逐片的自适应,指示对色彩空 间(或色彩采样率或比特深度)的选择的句法元素可以是片头部的一部分。或 者,对于逐块的自适应,指示对色彩空间(或色彩采样率或比特深度)的选择 的句法元素可以是针对块的句法结构(例如,CU句法结构)的一部分。一般 来说,与逐片的自适应或逐块的自适应相比,逐图片的自适应更不灵活,但使 用更少的信号化比特。与逐片的自适应相比,逐块的自适应使用更多个信号化 比特,但更灵活。

针对给定单元的信号可例如使用CABAC来被熵编码,或者被格式化成固 定长度值。给定单元的信号可被预测地编码。在该情况下,某参数针对给定单 元的增量值表示该参数的实际值和其预测值之间的差。预测值可以是参数以较 高句法级别来信号化的值(例如,作为SPS的一部分或作为另一序列层参数的 一部分)。例如,当前块或片的比特深度值可被信号化成相对于SPS专用比特 深度的增量值。或者,预测值可基于参数针对视频的一个或多个先前单元的一 个或多个实际值(例如,参数针对最后一个经编码单元的实际值、或参数在给 定单元周围附近的各实际值的中值)。例如,当前块的比特深度可被信号化成 相对于先前编码的块的比特深度的增量值。

经编码的数据还可包括标识或定义可用色彩空间的信息、标识或定义可用 色彩采样率的信息、和/或标识或定义可用比特深度的信息。这样的信息可被信 号化成SPS、PPS、片头部或比特流句法的其他结构的一部分。可从编码器和 解码器已知的预定义选项之中选择可用色彩空间、色彩采样率或比特深度。或 者,编码器可在经编码数据中指定自定义色彩空间(或色彩采样率或比特深度) 以供编码器和解码器使用。例如,该信息可包括对两个色彩空间之间的色彩空 间变换操作有用的值矩阵。与标识预定义选项的集合相比,指定自定义选项使 用更多的比特,但更灵活。另一种可能性是使用编码器和解码器已知的预定义 选项,而无需任何被信号化成SPS、PPS、片头部等的一部分的标识信息。这 不使用用于额外信息的比特,但在这些选项中的许多选项在针对序列的编码期 间根本没有被使用时,可导致对信号的较低效的编码。

标识或定义可用色彩空间(或色彩采样率或比特深度)的信息结合指示对 针对视频的单元的选项的选择的信号一起使用。例如,SPS可包括标识可用色 彩空间以及对序列准许哪些色彩空间转换的信息,并且每PPS(或片头部、或 块句法结构)的句法元素指示在可用色彩空间的指定名册中的选择。或者,片 头部可包括标识可用色彩采样率的信息,并且每块句法结构的句法元素指示从 可用色彩采样率的指定名册中的选择。或者,可使用先前变型的某一组合。例 如,SPS可指示预定义色彩空间的名册,其中PPS或片头部包括对预定义的色 彩空间之一的选择或包括针对自定义色彩空间的信息。

在一些示例实现中,附加规则适用于对色彩空间指示符的CU级信号化。 如果当前CU是用帧内空间预测的CU,则色彩空间指示符可被信号化成CU句 法结构的一部分。如果当前CU是用帧内BC预测的CU或用图片间预测的CU, 则色彩空间指示符在存在残留值时可被信号化成CU句法结构的一部分,但仅 涉及重排序的色彩空间转换(例如,在RGB、BGR和GBR之间的色彩空间转 换)不被允许。在该上下文中,这样的色彩空间转换不改善性能,并且对如何 重排序色彩分量进行信号化所花费的比特将被浪费。

E.用于预测的转换操作的示例

在编码或解码期间,编码器或解码器可至少部分地基于先前重构的内容的 样本值集合来预测当前图片中的当前块的样本值。对于图片内预测,该样本值 集合是当前图片的一部分(例如,用于帧内空间预测的空间上毗邻的各位置处 的样本值、或用于帧内BC预测的先前块的经重构样本值)。对于图片间预测, 该样本值集合是参考图片的一部分。如果当前块的样本值和先前重构的内容的 样本值集合处于不同的格式,则编码器或解码器执行转换操作以促进对当前块 的样本值的预测。

例如,如果先前重构的内容的样本值集合在GBR色彩空间中,并且当前 块是在YCbCr色彩空间中编码的,则编码器或解码器可在使用经转换的样本 值集合的图片内预测或图片间预测之前将先前重构的内容的样本值集合转换 到YCbCr色彩空间。

为了简化实现,编码器和解码器可用“主”格式来存储先前重构的内容的 样本值。主格式提供针对处于特定色彩空间、具有特定色彩采样率和有特定比 特深度的样本值的经重构内容的常见表示。取决于实现,主格式可以是具有12 比特样本值的GBR4:4:4、具有12比特样本值的YUV4:4:4、或色彩空间、色 彩采样率和比特深度的某一其他组合。主格式是为编码器和解码器预定义的。 替换地,主格式可由比特流中指示用于经重构内容的存储的色彩空间、色彩采 样率和/或比特深度的信号来指定。主格式可被选择成例如针对视频序列的各单 元的最常见编码格式,以使得在许多情况下都避免转换操作。当色彩空间切换 普遍,但色彩采样率切换很少时,将具有12比特样本值的GBR4:4:4用作主格 式对于屏幕捕捉内容而言可能是高效的。当色彩空间切换和色彩采样率切换两 者都常见时,将具有12比特样本值的YUV4:4:4用作主格式可能是高效的。

图16示出用于从处于不同格式的先前重构的内容的样本值集合预测用一 种格式编码的块的样本值的技术(1600)。编码器或解码器在编码或解码期间 可执行技术(1600)。

开始,编码器或解码器得到(1610)将被用于预测当前图片的当前块的样 本值的先前重构的内容的样本值集合。取决于预测的类型,该样本值集合可以 是当前图片或参考图片的一部分。

先前重构的内容的样本值可用第一格式(例如,主格式)来存储。编码器 或解码器检查(1620)当前块是否是用第一格式编码的。更一般地,编码器或 解码器评估先前重构的内容的样本值集合和当前块的样本值是否处于不同的 格式。

如果当前块是用第一格式(例如,主格式)编码的,则编码器或解码器在 预测之前不需要执行转换操作。编码器或解码器使用先前重构的内容的样本值 集合来预测(1640)当前块的样本值。在编码期间,编码器可随后生成、编码 和重构(1650)残留值。在解码期间,解码器可重构(1650)残留值。编码器 或解码器随后至少部分地基于预测的样本值来重构(1660)当前块的样本值。 对于非跳跃的块,编码器或解码器可将预测的样本值与经重构的残留值组合以 产生经重构的样本值。编码器或解码器随后存储(1670)当前块的经重构的样 本值作为先前重构的内容的一部分。由于当前块是用第一格式(例如,主格式) 来编码的,因此编码器或解码器在预测后不需要执行转换操作。

另一方面,如果当前块不是用第一格式来编码的,则编码器或解码器将先 前重构的内容的样本值集合从第一格式转换(1632)成用于编码当前块的第二 格式。例如,如果第一格式和第二格式具有不同的色彩空间,则编码器或解码 器执行色彩空间变换操作和/或色彩空间重排序操作以将先前重构的内容的样 本值集合的色彩空间改变到第二格式。例如,编码器或解码器可如下将先前重 构的内容的样本值集合P从RGB色彩空间转换到YCoCg色彩空间。

例如,假设某位置在RGB色彩空间中的样本值分别为PsR,PsG和PsB并且 当前比特深度为比特_深度当前(bit_depthcurrent)。最小样本值为0,并且最大样 本值为(1<<bit_depthcurrent)(例如,对于8比特样本值为255)。为了调整 Co和Cg的动态范围,术语增加_值(add_value)被定义成1<<(bit_depthcurrent-1)(例如,对于8比特样本值为128)。该位置在YCoCg色彩空间中的样本 值PsY、PsCo和PsCg可通过以下来计算:

PsY=(PsR+(2*PsG)+PsB)>>2

PsCo=((PsR-PsB)>>1)+add_value

PsCg=(((2*PsG)-PsR-PsB)>>2)+add_value

样本值PsY、PsCo和PsCg被夹在最小样本值和最大样本值所限定的范围中。

更一般地,供从第一色彩空间变换到第二色彩空间的色彩转换矩阵 CC_matrix1_to_2可被定义成:

[c00,c01,c02

c10,c11,c12

c20,c21,c22

为了调整输出的动态范围,可使用偏移矩阵CC_offsets1_to_2。偏移 CC_offsets1_to_2可被定义为:

[o0

o1

o2]

假设某位置在第一色彩空间中的样本值为PsCC1=[Ps00,Ps01,Ps02]T。该位 置在第二色彩空间中的样本值PsCC2可被计算成:

PsCC2=CC_matrix1_to_2*PsCC1+CC_offsets1_to_2

样本值PsCC2被夹在适当的范围内。

针对先前重构的内容的样本值集合P的色彩空间重排序操作可通过对这样 的样本值的块或平面的色彩分量进行重排序以便改变主要色彩分量和次要色 彩分量的次序来实现。

如果第一和第二格式具有不同的色彩采样率,则编码器或解码器(利用或 不利用滤波)执行下采样或上采样,以将先前重构的内容的样本值集合的色彩 采样率改变到第二格式。例如,编码器或解码器可如下将先前重构的内容的样 本值集合P从4:4:4色彩采样率转换到4:2:0色彩采样率。

假设先前重构的内容的样本值为YUV4:4:4样本值。YUV4:4:4视频的空 间分辨率针对所有色彩分量都为宽度×高度。在色彩采样率转换后,YUV4:2:0 视频的空间分辨率针对Y分量为宽度x高度并且针对U和V分量为(宽度/2) x(高度/2)。对于每一位置(i,j),当0≤i<宽度并且0≤j<高度时,编码器 或解码器可将YUV4:2:0视频的样本值计算成:

Y420[i][j]=Y444[i][j]

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

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

通过这种方法,U和V分量的样本值被确定,而无需滤波。替换地,编码 器或解码器在获得经下采样的U和V分量时可使用滤波。

如果第一和第二格式具有不同的比特深度,则编码器或解码器如下将先前 重构的内容的样本值集合P从比特深度比特_深度参考(bit_depthref)改变到当前 块的样本值的比特深度比特_深度当前(bit_depthcurrent)。

ifbit_depthref>bit_depthcurrent

shift=bit_depthref-bit_depthcurrent

add=1<<(shift-1)

P=(P+add)>>shift

elseifbit_depthref<bit_depthcurrent

shift=bit_depthcurrent-bit_depthref

P<<shift

例如,假设第一格式的比特深度为每样本10比特,第二格式的比特深度 为每样本8比特,并且当前块使用帧内空间预测。编码器或解码器获得帧内空 间预测中使用的各邻近位置的10比特样本值。该10比特样本值被转换成8比 特样本值,该8比特样本值随后被用于生成当前块的8比特预测的样本值。

在转换(1632)后,编码器或解码器使用先前重构的内容的经转换样本值 的集合来预测(1642)当前块的样本值。在编码期间,编码器可随后生成、编 码和重构(1652)残留值。在解码期间,解码器可重构(1652)残留值。编码 器或解码器随后至少部分地基于预测的样本值来重构(1662)当前块的样本值。 对于非跳跃的块,编码器或解码器可将预测的样本值与经重构的残留值组合以 产生经重构的样本值。

这时,当前块的经重构样本值处于第二格式。当前块的经重构样本值在存 储成经重构内容的一部分之前被转换成第一格式。编码器或解码器将当前块的 经重构样本值从第二格式转换(1672)成第一格式,并将现在处于第一格式(例 如,主格式)的当前块的经转换的、经重构样本值存储(1670)成先前重构的 内容的一部分。

例如,如果第一格式和第二格式具有不同的色彩空间,则编码器或解码器 执行色彩空间变换操作和/或色彩空间重排序操作以将当前块的经重构的样本 值的色彩空间改变到第一格式。(从第二格式到第一格式的色彩空间转换操作 一般反映从第一格式到第二格式的早期色彩空间转换操作。)例如,编码器或 解码器可如下将当前块的经重构的样本值R从YCoCg色彩空间转换到RGB色 彩空间。

例如,假设某位置在YCoCg色彩空间中的样本值分别为RsY,RsCo和RsCg, 并且当前比特深度为比特_深度当前(bit_depthcurrent)。为了调整动态范围,术语 增加_值(add_value)被定义成1<<(bit_depthcurrent-1)(例如,对于8比特样 本值为128)。该位置在RGB色彩空间中的样本值RsR、RsG和RsB可通过以下 来计算:

RsCo-=add_value

RsCg-=add_value

RsR=RsY+RsCo-RsCg

RsG=RsY+RsCg

RsB=RsY-RsCo-RsCg

样本值RsR、RsG和RsB被夹在由最小样本值和最大样本值限定的范围中。

更一般地,供从第二色彩空间变换回第一色彩空间的色彩转换矩阵CC_矩 阵2_到_1(CC_matrix2_to_1)可被定义成:

[c′00,c′01,c′02

c′10,c′11,c′12

c′20,c′21,c′22]

为了调整输出的动态范围,可使用偏移的矩阵CC_offsets2_to_1。偏移 CC_offsets2_to_1可被定义为:

[o′0

o′1

o′2]

假设某位置在第二色彩空间中的样本值为RsCC2=[Rs00,Rs01,Rs02]T。该位 置在第一色彩空间中的样本值RsCC1可被计算成:

RsCC1=CC_matrix2_to_1*(RsCC2+CC_offsets2_to_1)

样本值RsCC1被夹在适当的范围内。

针对经重构的样本值R的色彩空间重排序操作可通过对这样的样本值的 块或平面的色彩分量进行重排序以便改变主要色彩分量和次要色彩分量的次 序来实现。

如果第一和第二格式具有不同的色彩采样率,则编码器或解码器(利用或 不利用滤波)执行下采样或上采样,以将当前块的经重构的样本值的色彩采样 率改变到第一格式。(从第二格式到第一格式的色彩采样率转换操作一般反映 从第一格式到第二格式的早期色彩采样率转换操作。)例如,编码器或解码器 可通过对经下采样的色彩分量进行上采样来将当前块的经重构样本值R从 4:2:0色彩采样率转换到4:4:4色彩采样率。

如果第一和第二格式具有不同的比特深度,则编码器或解码器如下将当前 块的经重构样本值R从比特深度比特_深度当前转换成经重构内容的样本值的比 特深度比特_深度参考

ifbit_depthref>bit_depthcurrent

shift=bit_depthref-bit_depthcurrent

R<<=shift

elseifbit_depthref<bit_depthcurrent

shift=bit_depthcurrent-bit_depthref

add=1<<(shift-1)

R=(R+add)>>shift

编码器或解码器可对片或图片的其他块重复技术(1600)。

在图16中,转换(1632)在预测(1642)之前发生。替换地,对于一些 类型的预测(例如,帧内空间预测、帧内BC预测),转换可遵循以下预测。 在这种情况下,编码器或解码器使用先前重构的内容的样本值集合来预测当前 块的样本值,随后将当前块的预测的样本值从第一格式转换到第二格式。编码 器或解码器至少部分地基于当前块的经转换的预测的样本值来重构当前块的 样本值。

例如,假设第一格式的比特深度为每样本10比特,第二格式的比特深度 为每样本8比特,并且当前块使用帧内空间预测。编码器或解码器获得帧内空 间预测中使用的各邻近位置的10比特样本值。这些10比特样本值用于生成10 比特的预测的样本值,这些10比特的预测的样本值随后被转换成8比特样本 值。

替换地,经重构内容的单元的样本值可以以用于编码这些单元的格式来存 储。还存储对相应单元的编码格式的某个指示。经重构内容的样本值被按需转 换成另一格式以供预测。

F.去块操作的示例

在编码或解码期间,编码器或解码器可根据一个或多个规则对先前重构的 内容执行自适应内环路去块。在一些情况下,去块可被应用在被编码成具有不 同色彩空间的两个块之间的边界上。

例如,在自适应去块的一些实现中,针对两个块之间的边界的去块过滤器 的强度至少部分地基于毗邻块中的任一者是否具有非零残留值。当两个毗邻块 具有不同的色彩空间时,针对这些块之间的边界的去块过滤器的强度可取决于 这两个毗邻块的主要分量是否具有非零残留值。例如,第一毗邻块的主要分量 被评估,并且第二毗邻块的主要分量被评估,即使色彩空间对于这两个块而言 是不同的。过滤器强度取决于这些块的任一主要分量是否具有非零残留值。

替换地,(诸)规则可考虑两个毗邻块的不同色彩空间。在该情况下,当 两个毗邻块具有不同的色彩空间时,针对这些块之间的边界的去块过滤器的强 度取决于这两个毗邻块的相应分量是否具有非零残留值。例如,假设一个毗邻 块的色彩空间为GBR,并且另一毗邻块的色彩空间为RGB。两个色彩空间为 RGB型色彩空间。在确定G分量的过滤器强度时,编码器或解码器考虑第一 块的第一分量(G)的残留值以及第二块的第二分量(G)的残留值。自适应去 块的该变型可用于具有不同RGB型色彩空间的块。

G.针对自适应切换的编码器策略的示例

本章节描述了编码器在决定如何在编码期间自适应地切换色彩空间、色彩 采样率和/或比特深度时所遵循的示例策略。此处所描述的编码器策略包括速率 -失真分析方法和试探方法。

A.针对自适应切换的速率-失真分析方法

在一组针对自适应切换的方法中,编码器对于色彩空间、色彩采样率或比 特深度或它们的组合使用不同选项来对视频单元进行多次编码。编码器选择提 供最佳性能的那个选项,并且在对单元进行编码时使用所选择的选项。视频单 元可以是块、片、图片或视频序列的其它部分。典型地,编码器在这类方法中 执行多遍编码。

为了评估哪个选项(例如色彩空间、色彩采样率、或比特深度、或它们的 组合)提供最佳性能,编码器可确定在对单元进行编码期间使用不同选项时的 速率-失真成本,并且选择具有最低速率-失真成本的那个选项。速率-失真成本 具有失真成本D和速率成本R,并具有为速率成本赋予相对于失真成本的权重 的因子λ(常被称为拉格朗日乘数)(D+λR)或反之(R+λD)。速率成本可以 是估算的或者实际的比特率成本。一般来说,失真成本基于原始样本与重构样 本的比较。失真成本可以作为绝对差之和(“SAD”)、绝对Hadamard变换 差之和(“SAHD”)或其它绝对变化差之和(“SATD”)、平方误差之和(“SSE”)、 均方差(“MSE”)、均方或另一失真度量来测量。因子λ可在编码期间变化 (例如,当量化步长大小变大时,增加速率成本的相对权重)。速率-失真成 本通常提供对不同选项的性能的最准确评估,但也具有最高的计算复杂性。

编码器可改变速率-失真成本函数的各项中的一个或多个来将速率-失 真分析偏向色彩空间、色彩采样率或比特深度的特定选项(例如,将分析偏向 用于重构内容的主要格式)。例如,当使用速率-失真分析来确定视频单元的 色彩空间(或色彩采样率、或比特深度)以在多个色彩空间(或色彩采样率、 或比特深度)之间作出决定时,速率-失真分析被偏向默认色彩空间(或色彩 采样率、或比特深度)。当评估非默认色彩空间(或色彩采样率、或比特深度) 时,编码器可将失真成本按比例增大(大于1的因子)、将速率成本按比例增 大(大于1的因子)、增加失真惩罚、增加速率惩罚和/或使用更大的拉格朗日 乘数因子。或者,当评估默认色彩空间(或色彩采样率、或比特深度)时,编 码器可将失真成本按比例减小(小于1的因子)、将速率成本按比例减小(小 于1的因子)、和/或使用更小的拉格朗日乘数因子。

编码器可改变编码期间偏向或偏离默认色彩空间(或色彩采样率、或比特 深度)的程度。例如,编码器可基于对默认色彩空间(或色彩采样率、或比特 深度)可能是更合适于对视频内容进行编码的置信度来调整往默认色彩空间 (或色彩采样率、或比特深度)的偏移(例如,如果视频内容很可能是人工创 造的内容,则增加朝RGB色彩空间、或4:4:4色彩采样率、或较低的比特深度 的偏移)。

替代地,编码器可使用另一方法来评估对于色彩空间、色彩采样率和/或比 特深度哪个选项提供最佳性能。例如,对于给定的量化步长大小,编码器测量 哪个选项导致最少比特的编码数据。或者,编码器仅对使用不同选项的编码的 失真进行评估。或者,编码器使用更简单的测量,诸如将一个选项相比较于另 一选项的失真减少收益,这可能在单遍编码中足够简单来确定。例如,编码器 检查在给定选项被使用时与另一选项被使用时相比失真减少的量(以SAD、 SATD、TSE、MSE或另一失真度量的角度)。

蛮力编码方法可能是计算密集的。它们潜在地涉及大量的附加计算、附加 存储器存储、以及附加存储器读取和写入操作。

图17示出用于在编码期间使用速率-失真分析来自适应地选择色彩空间、 色彩采样率和/或比特深度的通用技术(1700)。图像编码器或视频编码器(诸 如参考图3或图5a-5b描述的编码器)可执行技术(1700)。

总体的,编码器对序列中的视频进行编码。在编码期间,色彩空间、色彩 采样率和/或比特深度在序列内空间地和/或时间地切换。图17示出对视频的给 定单元的编码处理的各阶段。

编码器得到(1710)下一单元并且执行(1720)速率-失真分析来评估单 元的多个选项。多个选项是色彩空间、色彩采样率或比特深度、或以上的组合。

编码器基于速率-失真分析的结果来选择(1730)多个选项中的一个,并 且以所选的选项来对单元编码(1740)。编码器在比特流中输出该单元的经编 码的数据。编码器检查(1750)是否继续下一单元,并且如果如此,则得到(1710) 下一单元。

因此,对于序列内的视频的多个单元,编码器可逐单元地重复该技术 (1700)。多个单元可以是序列的图片、序列的给定图片的片、序列的给定图 片的块或序列的某些其他部分。

对于速率-失真分析(1720),编码器可通过以不同色彩空间对单元编码 来评估不同色彩空间。例如,编码器可评估至少一个YUV型色彩空间(诸如 YCbCr和/或YCoCg)以及至少一个RGB型色彩空间(诸如GBR、BGR和/或 RGB),记录经评估的色彩空间中的每一个的速率成本和失真成本,并且根据 需要执行色彩空间变换操作。在单元被转换回输入视频的原始色彩空间之后, 可对重构的采样值测量失真。或者,作为另一示例,编码器可评估多个RGB 型色彩空间(诸如GRB、BGR和RGB),记录经评估的色彩空间中的每一个 的速率成本和失真成本,并且根据需要执行色彩空间重新排序操作。同样,在 单元被转换回输入视频的原始色彩空间之后,可对重构的采样值测量失真。

对于速率-失真分析(1720),编码器还可通过以不同色彩采样率对单元 编码来评估不同色彩采样率。例如,编码器可评估多个色彩采样率(诸如4:4:4、 4:2:2、4:2:0和4:0:0中的两个或更多个),记录经评估的色彩采样率中的每一 个的速率成本和失真成本,并且根据需要执行上采样和下采样操作。同样,在 单元被转换回输入视频的原始色彩采样率之后,可对重构的采样值测量失真。

对于速率-失真分析(1720),编码器还可通过以不同比特深度对单元编 码来评估不同比特深度。例如,编码器可评估多个比特深度(诸如每个样本12 个比特、每个样本10个比特以及每个样本8个比特中的两个或更多个),记 录经评估的比特深度中的每一个的速率成本和失真成本,并且根据需要执行缩 放操作。同样,在单元被转换回输入视频的原始比特深度之后,可对重构的采 样值测量失真。

或者,对于速率-失真分析(1720),编码器可评估以下不同组合:(a) 色彩空间和色彩采样率、(b)色彩空间和比特深度、(c)色彩采样率和比特 深度、或(d)色彩空间、色彩采样率和比特深度。对于每种组合,编码器记 录速率成本和失真成本,根据需要执行转换操作

速率-失真分析可以与试探方法相结合地使用。例如,如以下描述的,可 基于对色彩空间的主要色彩分量的样本值的试探分析或其它试探分析将色彩 空间的一个选项排除出速率-失真分析的考虑。类似地,可基于指示某选项没 有希望的试探分析将色彩采样率或比特深度的一个选项排除出速率-失真分 析的考虑。

B.用于自适应切换的试探方法

在另一组针对自适应切换的方法中,编码器评估视频单元的关于色彩空 间、色彩采样率或比特深度、或它们的组合的不同选项的一个或多个准则。基 于评估的结果,编码器选择选项之一,并且在编码单元时使用所选择的选项。 视频单元可以是块、片、图片或视频序列的其它部分。一般来说,试探方法比 速率-失真分析在计算上简单。

图18示出用于在编码期间基于一个或多个准则来自适应地选择色彩空间、 色彩采样率和/或比特深度的通用技术(1800)。图像编码器或视频编码器(诸 如参考图3或图5a-5b描述的编码器)可执行技术(1800)。

总体的,编码器对序列中的视频进行编码。在编码期间,色彩空间、色彩 采样率和/或比特深度在序列内空间地和/或时间地切换。图18示出对视频的给 定单元的编码处理的各阶段。

编码器得到(1810)下一单元并且对一个或多个准则进行评估(1820)以 在单元的多个选项之间进行选择。多个选项是色彩空间、色彩采样率或比特深 度、或以上的组合。

编码器基于评估的结果来选择(1830)多个选项中的一个,并且以所选的 选项来对单元编码(1840)。编码器在比特流中输出该单元的经编码的数据。 编码器检查(1850)是否继续下一单元,并且如果如此,则得到(1810)下一 单元。

因此,对于序列内的视频的多个单元,编码器可逐单元地重复该技术 (1800)。多个单元可以是序列的图片、序列的给定图片的片、序列的给定图 片的块或序列的某些其他部分。

对于评估(1820),编码器能够通过确定单元的色彩分量中的哪一种是支 配的来评估不同色彩空间(例如,多个RGB型的色彩空间,诸如RGB、GBR 以及BGR)。编码器随后选择色彩空间中主要色彩分量是单元的支配色彩分量 的那个色彩空间。典型地,编码器在编码主要色彩分量时具有更多灵活性。例 如,编码器可从主要色彩分量中的大量可能的空间内预测模式中选择,但是对 于次要色彩分量只可从小得多的数量的可能的空间内预测模式中选择。通过选 择支配色彩分量是其主要色彩分量的色彩空间,编码器在许多情况下可改进整 体的编码效率。

为了确定哪个色彩分量是支配的,编码器可标识单元的色彩分量中的哪一 个具有最高的能量。例如,如果红色(R)分量具有最高能量,则编码器选择 RGB色彩空间。如果绿色(G)分量具有最高能量,则编码器选择GBR色彩 空间。而如果蓝色(B)分量具有最高能量,则编码器选择BGR色彩空间。具 体来说,屏幕捕捉内容的片或块可在给定图片中具有不同的支配色彩分量。

替代地,为了确定哪个色彩分量是支配的,编码器可标识色彩分量中的哪 一个具有最多不同的值。或者,编码器可标识色彩分量中的哪一个具有大于阈 值量的不同值计数。例如,编码器对色彩空间的主要色彩分量中的不同(相异) 样本值的数目进行计数。如果主要色彩分量中的不同样本值的计数低于阈值量 (例如,3、4、5、或某个其它数目个不同样本值),则色彩空间被排除出考 虑。当单元的主要色彩分量过于简单时,可用于该主要色彩分量的编码选项很 可能被浪费,因此编码器选择具有不同主要色彩分量的色彩空间。

编码器可在使用速率-失真分析来评估色彩空间之前评估单元的主要色 彩分量中的不同样本值的计数。通过检查不同样本值的计数作为速率-失真分 析的阈值条件,编码器可避免针对不太可能被选择的色彩空间的计算复杂的速 率-失真分析。取而代之的,编码器继续到下一个色彩空间。(然而,对于默 认(主)格式,编码器可始终执行速率-失真分析。)

替代地,为了确定哪个色彩分量是支配的,编码器可测量单元的各个色彩 分量的样本值的方差。编码器随后选择具有最高方差的色彩分量是主要色彩分 量的色彩空间。

或者,对于评估(1820),编码器能够通过确定单元的视频内容的类型来 评估不同色彩空间(例如,一个或多个RGB型色彩空间以及一个或多个YUV 型色彩空间)。如果单元的视频内容的类型是低比特率自然视频,则编码器为 该单元选择YUV型色彩空间。另一方面,如果单元的视频内容的类型是人工 创建的视频,则编码器为该单元选择RGB型色彩空间。具体来说,在一些编 码场景中,采用4:2:0色彩采样率的YUV型色彩空间对于自然视频(尤其是较 低比特率的视频)而言是高效的,而采用4:4:4色彩采样率的RGB型色彩空间 对于屏幕捕捉内容而言是高效的。

对于评估(1820),编码器还可基于会话操作中的信息丢失来评估不同色 彩采样率。例如,编码器将单元的一个或多个(次要)色彩分量从第一色彩采 样率(诸如4:4:4)下采样到第二色彩采样率(诸如4:2:2或4:2:0)。编码器随 后将单元的色彩分量从第二色彩采样率上采样到第一色彩采样率,并且测量因 下采样导致的信息丢失。编码器至少部分基于所测得的信息丢失来挑选各色彩 采样率中的一个。具体来说,如果编码器发现在将单元的次要色彩分量从4:4:4 下采样到4:2:0(或4:2:2)并随后将它们上采样回4:4:4时不存在信息丢失,则 编码器可简单地为该单元使用4:2:0(或4:2:2)的色彩采样率。或者,编码器 可基于测得的信息丢失与信息丢失的阈值量的比较来选择色彩采样率。

对于评估(1820),编码器还可通过确定单元的视频内容的类型来评估不 同比特深度。如果单元的视频内容的类型是自然视频,则编码器为该单元选择 第一比特深度。另一方面,如果单元的视频内容的类型是人工创建的视频,则 编码器为该单元选择第二比特深度,其中第二比特深度低于第一比特深度。具 体来说,在一些编码场景中,即使是在为自然视频使用较高的比特深度改善编 码效率的情况下,为屏幕捕捉内容使用较高的比特深度也可能损害编码效率。 通过基于视频的类型来适配比特深度,编码器能够在许多情况下改善编码效 率。

替代地,作为评估(1820)的一部分,编码器考虑其它和/或附加准则。

C.选择编码参数的时机

在编码器对视频序列的块进行编码时,可高效地一次性为所有的色彩空间 确定某些编码参数。具体来说,许多非残留编码参数可在一个色彩空间中被确 定,并在评估其它色彩空间时被应用。这类参数包括帧内/帧间模式决定、划分 模式、帧内预测方向、BV值和MV值。例如,无论给定块的色彩空间是什么, 相同的(或至少非常类似的)MV值可能在运动估计中被找到,而相同的(或 至少非常类似的)BV值可能在帧内BC估计中被找到。编码器可对一个色彩空 间执行运动估计或帧内BC估计,并在评估其它色彩空间时重新使用该MV值 或BV值。在YUV型色彩空间中执行运动估计或帧内BC估计可能是有益的。

更一般地,当评估用于对视频单元进行编码的多个色彩空间时,编码器可 为单元设置当单元处于第一色彩空间(诸如YUV型色彩空间)中时的一个或 多个编码参数,并且在评估处于不同于第一色彩空间的第二色彩空间(诸如 RGB型色彩空间)中的单元时重新使用该一个或多个编码参数。以此方式,编 码器可加速针对不同色彩空间的速率-失真分析。

鉴于可应用所公开的本发明的原理的许多可能的实施例,应当认识到,所 示实施例仅是本发明的优选示例,并且不应认为是限制本发明的范围。相反, 本发明的范围由后续的权利要求来界定。我们要求作为我们的发明保护落入这 些权利要求范围和精神内的所有内容。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号