首页> 中国专利> 在切换色彩空间时调整量化/缩放和逆量化/缩放

在切换色彩空间时调整量化/缩放和逆量化/缩放

摘要

在针对视频序列的各单元的自适应编码和解码中的创新可在编码和解码期间在各色彩空间之间切换时改善编码效率。例如,创新中的一些涉及在编码器在编码期间在视频序列内的各单元之间切换色彩空间时对量化或缩放的调整。其他创新涉及在解码器在解码期间在视频序列内的各单元之间切换色彩空间时对逆量化或缩放的调整。

著录项

  • 公开/公告号CN105432077A

    专利类型发明专利

  • 公开/公告日2016-03-23

    原文格式PDF

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

    申请/专利号CN201480029700.1

  • 发明设计人 B·李;J·许;J·G·沙利文;

    申请日2014-03-27

  • 分类号H04N9/64(20060101);

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

  • 代理人胡利鸣

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 14:50:10

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-29

    授权

    授权

  • 2016-04-20

    实质审查的生效 IPC(主分类):H04N9/64 申请日:20140327

    实质审查的生效

  • 2016-03-23

    公开

    公开

说明书

背景

工程师使用压缩(也叫做源编码(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- TH.265或ISO/IEC23008-2)已被批准。目前,(例如,用于可缩放视频编码 /解码、用于在样本比特深度或色度采样率方面具有较高保真度的视频的编码/ 解码、用于屏幕捕捉内容、或用于多视图编码/解码的)H.265/HEVC标准的扩 展处于开发中。视频编解码器标准通常定义针对经编码的视频比特流的句法的 选项,从而详述当在编码和解码时使用特定特征时该比特流中的参数。在许多 情况下,视频编解码器标准还提供关于解码器应当执行以在解码时取得一致的 结果的解码操作的细节。除了编解码器标准外,各种专用编解码器格式定义针 对经编码的视频比特流的句法的其他选项以及相应的解码操作。

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

许多商业上可用的视频编码器和解码器仅支持YUV格式。其他商业上可 用的编码器和解码器(例如,针对H.264/AVC标准或H.265/HEVC标准)允许 编码器针对给定序列指定色彩空间。指定的色彩空间被用于整个视频序列。这 些方法没有为可能在单个视频序列内处理非常不同种类的视频内容的通用编 解码器系统提供足够的灵活性。更最近地,已经考虑了用于在编码或解码期间 在色彩空间之间切换的方法,但是这些方法没有充分考虑到在不同的色彩空间 中执行的量化的效果方面的变化。

概述

概要来说,该详细描述呈现了在自适应编码和解码的领域中的创新。例如, 创新中的一些涉及在编码器在编码期间在视频序列内的各单元之间切换色彩 空间时对量化或缩放的调整。其他创新涉及在解码器在解码期间在视频序列内 的各单元之间切换色彩空间时对逆量化或缩放的调整。这些创新可在编码和解 码期间在各色彩空间之间切换时改善编码效率。

根据本文描述的创新的一个方面,图像或视频编码器对图像或视频的各单 元(例如,图片、片、编码单元、块)进行编码以产生经编码的数据。作为编 码的一部分,当在各单元之中的两个单元之间从第一色彩空间切换到第二色彩 空间时(例如,从RGB型色彩空间到YUV型色彩空间,或从YUV型色彩空 间到RGB型色彩空间),编码器根据每分量色彩空间调整因子来调整对第二色 彩空间的各色彩分量的量化或缩放。编码器将经编码的数据作为比特流的一部 分来输出。

根据本文描述的创新的另一个方面,图像或视频解码器接收作为比特流的 一部分的经编码的数据并对该经编码的数据进行解码以重构图像或视频的各 单元(例如,图片、片、编码单元、块)。作为解码的一部分,当在各单元之 中的两个单元之间从第一色彩空间切换到第二色彩空间时(例如,从RGB型色 彩空间到YUV型色彩空间,或从YUV型色彩空间到RGB型色彩空间),解 码器根据每分量色彩空间调整因子来调整第二色彩空间的各色彩分量的逆量 化或缩放。

一般地,每分量色彩空间调整因子补偿在从第二色彩空间转换回第一色彩 空间时量化误差的能量的放大。否则,如果来自第一色彩空间的量化参数(“QP”) 值和缩放因子被简单地应用到第二色彩空间中的样本值,则第二色彩空间中的 量化误差被回到第一色彩空间的逆色彩空间转换操作放大。这可在被转换到第 二色彩空间以供编码的单元和不被转换到第二色彩空间以供编码的单元之间 产生量化误差的能量级方面的可感知到的不匹配。

例如,比特流中的一个或多个句法元素可指示每分量色彩空间调整因子。 (诸)句法元素可被信号化在图片级、片级、用于编码单元或块的句法级或某 个其他句法级处。(诸)句法元素可包括指示第二色彩空间的第一色彩分量的 QP值的句法元素以及指示第二色彩空间的第二和第三色彩分量的偏移的句法 元素。

或者,替代于被比特流中的句法元素指示,第二色彩空间的各色彩分量的 每分量色彩空间调整因子可取决于第二色彩空间根据规则来导出。例如,编码 器和解码器自动地确定每分量色彩空间调整因子,该确定从第一色彩空间的QP 值开始并取决于第二色彩空间的身份来作出调整。

调整量化或逆量化的动作可包括调整第二色彩空间的各色彩分量的最终 QP值或中间QP值。例如,如果第一色彩空间是RGB并且第二色彩空间是 YCoCg,则针对Y、Co和Cg分量的每分量色彩空间调整因子可以分别是-5、 -3和-5。更一般地,针对量化和逆量化的每分量色彩空间调整因子可取决于在 逆色彩空间转换操作中第二色彩空间的相应色彩分量的能量放大。

在编码或解码期间被调整的缩放可包括使用每分量色彩空间调整因子来 缩放变换系数。缩放可使用仅整数操作或浮点操作。每分量色彩空间调整因子 可被合并到缩放因子列表中或被分开地应用。例如,如果第一色彩空间是RGB 并且第二色彩空间是YCoCg,则针对Y、Co和Cg分量的每分量色彩空间调 整因子可以分别是大约1.78、1.41和1.78。更一般地,针对缩放的每分量色彩 空间调整因子可取决于在逆色彩空间转换操作中第二色彩空间的相应色彩分 量的能量放大。或者,在编码或解码期间调整的缩放可涉及对第二色彩空间的 不同色彩分量应用不同的缩放列表。

或者,对于在编码期间不要求在解码期间对应改变的改变,为了调整量化, 编码器可在逐单元的基础上设置每分量QP值。在这种情况下,比特流包括指 示相应单元的每分量QP值的句法元素。

针对调整量化/缩放或逆量化/缩放的创新可以被实现为方法的一部分、被 适配成执行该方法的计算设备的一部分或存储用于使计算设备执行该方法的 计算机可执行指令的有形计算机可读介质的一部分。各创新可以结合地或分开 地使用。

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

附图简述

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

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

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

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

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

图6是示出结合其可实现所描述的一些实施例的示例视频解码器的示图。

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

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

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

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

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

图12是示出用于在编码期间切换色彩空间时调整量化或缩放的一般化技 术的流程图,并且图13是示出用于在编码期间在逐单元的基础上切换色彩空 间时调整量化或缩放的更加详细的示例技术的流程图。

图14是示出用于在解码期间切换色彩空间时调整逆量化或缩放的一般化 技术的流程图,并且图15是示出用于在解码期间在逐单元的基础上切换色彩 空间时调整逆量化或缩放的更加详细的示例技术的流程图。

详细描述

该详细描述呈现了在自适应编码和解码的领域中的创新。例如,创新中的 一些涉及在编码器在编码期间在视频序列内的各单元之间切换色彩空间时对 量化或缩放的调整。其他创新涉及在解码器在解码期间在视频序列内的各单元 之间切换色彩空间时对逆量化或缩放的调整。这些创新可在编码和解码期间在 各色彩空间之间切换时改善编码效率。

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

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

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

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)可如本文中描述的那样调整量化或 缩放以补偿在逆色彩空间转换操作中量化误差的能量的放大。

一般来说,编码器(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)可在编码期间在逐片的基础上切换色彩空间、 色彩采样率和/或比特深度。在一些示例实现中,编码器(340)可在逐片的基 础上来设置量化参数(“QP”)。

对于根据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还具有一个或多个变换单元,其中变换单元 (“TU”)具有亮度变换块(“TB”)和两个色度TB。在帧内预测的CU中的PU可 以包含单个TU(尺寸与PU相同)或多个TU。编码器决定如何将视频分割成 CTU、CU、PU、TU等。在一些示例实现中,编码器(340)可在针对CTU、 CU等的编码期间在逐单元的基础上切换色彩空间、色彩采样率和/或比特深度。

在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)可如本文中描述的那样调整量化或缩放。编码器(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可包括指示QP值(例如,图片的初 始QP值、第二色彩空间的初始QP值或第二色彩空间的QP值的偏移)的一个 或多个句法元素。PPS可被用于单个图片,或者PPS可被重用于序列中的多个 图片。PPS典型地与图片的经编码的数据分开地发送信号(例如PPS的一个 NAL单元和用于图片的经编码的数据的一个或多个其它NAL单元)。在图片 的经编码数据内,句法元素指示要为该图片使用哪个PPS。类似地,对于根据 H.265/HEVC的标准的句法,序列参数集(“SPS”)是包含了与图片的序列相关 联的句法元素的句法结构。比特流可包括单个SPS或多个SPS。SPS通常被信 号化成与序列的其它数据分开,并且其它数据中的句法元素指示要使用哪个 SPS。在一些示例实现中,序列的SPS可包括标识或定义可用色彩空间、可用 色彩采样率和/或可用比特深度的信息,当在序列内切换色彩空间、色彩采样率 和/或比特深度时参考该信息。

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

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

例如,解码器(450)接收经压缩的帧或帧序列的经编码数据,并产生包括 经解码的帧(451)的输出。在解码器(450)中,缓冲器接收针对经压缩的帧的经 编码数据,并在适当时,使得接收到的经编码数据对熵解码器可用。熵解码器 对经熵编码的量化数据以及经熵编码的辅助信息进行熵解码,通常应用编码器 中执行的熵编码的逆来进行熵解码。运动补偿器将运动信息应用于一个或多个 参考帧以形成针对正被重构的帧的任何帧间编码块的经运动补偿的预测值。帧 内预测模块可从相邻的、先前重构的样本值中空间地预测当前块的样本值,或 者对于帧内BC预测,使用帧中的帧内预测参考区域的先前重构的样本值来预 测当前块的样本值。参考区域可用BV值来指示。解码器(450)还重构预测残 留值。逆量化器对经熵解码的数据进行逆量化。例如,解码器(450)基于比特流 中的句法元素为图片、片、编码单元和/或视频的其它部分设置QP值,并相应 地对变换系数进行逆量化。为了补偿在逆色彩空间转换操作中量化误差的能量 的放大,解码器(450)可如本文中描述的那样调整逆量化或缩放。逆频率变换 器将量化的频域数据转换成空间域数据。对于帧间预测的块,解码器(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) 可判定如何在编码期间在逐图片的基础上、逐片的基础上、逐块的基础上或在 某一其他逐单元的基础上自适应地切换色彩空间、色彩采样率和/或比特深度。 当编码器(500)切换色彩空间时,通用编码控件(520)可确定如何调整量化 或缩放以补偿在逆色彩空间转换操作中量化误差的能量的放大。通用编码控件 (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)估计当前块的样本值到当前图片内的不同候选参考 区域的位移。

图片内估计器(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)还可格式化和/或熵 编码在例如PPS、片头部、块句法结构或其他句法结构中指示QP值的句法元素。

头部格式化器/熵编码器(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)的框图。解码 器(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)在自适应切换期间使用。解析器/熵解码器(610)还 可从例如PPS、片头部、块句法结构或其他句法结构中解析和/或熵解码指示QP 值的句法元素。

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

如果使用图片间预测来预测当前图片,运动补偿器(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.在切换色彩空间时调整量化/缩放或逆量化/缩放。

该章节呈现对视频序列的各单元的自适应编码和解码的各种特征。单元可 以是图片、片、块或视频序列的其他部分。例如,特征中的一些涉及在编码器 在编码期间在视频序列内的各单元之间切换色彩空间时对量化或缩放的调整。 其他特征涉及在解码器在解码期间在视频序列内的各单元之间切换色彩空间 时对逆量化或缩放的调整。这些特征可在编码和解码期间在各色彩空间之间切 换时改善编码效率。

一般而言,色彩空间(有时称为色彩模型)是用于将色彩表示为每物理位 置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 比特。

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

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比特样本值的BGR4: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.在切换色彩空间时调整量化/缩放和逆量化/缩放——介绍。

当编码器自适应地在视频的各单元之间切换色彩空间时,编码器可调整量 化和/或缩放。当解码器在视频的各单元之间切换色彩空间时,对应的解码器可 调整逆量化和/或缩放。例如,当色彩空间切换发生时,编码器和解码器可针对 不同的色彩分量使用不同的量化步骤大小。在编码期间调整量化/缩放和在对应 的解码期间调整逆量化/缩放可在各色彩空间之间切换时改进编码效率。

考虑在逐块的基础上在RGB和YCoCg色彩空间之间自适应切换的示例。 一般而言,编码器或解码器可将样本值从RGB色彩空间转换到YCoCg色彩空 间,如以下操作所显示的。

YCoCg=12120-2-12-1RGB/4

YCoCg色彩空间中的输出样本值的动态范围可通过增加偏移来调整。例如, 假设某位置在RGB色彩空间中的样本值分别为PsR,PsG和PsB并且当前比特深 度为比特_深度当前(bit_depthcurrent)。最小样本值为0,并且最大样本值为(1<< bit_depthcurrent)(例如,对于8比特样本值为255)。为了调整Co和Cg的动 态范围,术语增加_值(add_value)被定义成1<<(bit_depthcurrent-1)(例如, 对于8比特样本值为128,以将输出值保持在0…255的范围中)。该位置在 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被夹在最小样本值和最大样本值所限定的范围中。

一般而言,编码器或解码器可将样本值从YCoCg色彩空间转换回RGB色 彩空间,如以下操作所显示的。

RGB=11-11011-1-1YCoCg

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

RsCo-=add_value

RsCg-=add_value

RsR=RsY+RsCo-RsCg

RsG=RsY+RsCg

RsB=RsY-RsCo-RsCg

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

根据逆色彩空间转换矩阵,Y分量的样本值将对R、G和B样本值具有影 响。通过逆色彩空间转换,针对其的总能量贡献是(1)2+(1)2+(1)2=3。Co分量的 样本值将对R和B样本值具有影响,并且通过逆色彩空间转换,针对其的总能 量贡献是(1)2+(0)2+(-1)2=2。类似地,Cg分量的样本值将对R、G和B样本值 具有影响,并且通过逆色彩空间转换,针对其的总能量贡献是(-1)2+(1)2+(-1)2=3。 由此,Y、Co和Cg分量的能量贡献的比率是3:2:3。

取决于该能量比率,Y、Co和Cg分量中的量化误差的能量将被逆色彩空 间转换操作放大。如果片或图片内的块具有相同的QP值,则当在YCoCg色彩 空间中编码的块被转换回RGB色彩空间时,针对这些块(被编码在YCoCg域 中接着被转换回RGB域)的量化误差的能量将相对于针对被编码在RGB色彩 空间中的块的量化误差的能量被放大。为了在YCoCg编码的块和RGB编码的 块之间具有可比水平的量化误差的能量,编码器和解码器可相对于应用到RGB 编码的块的QP值或缩放来调整应用到YCoCg编码的块的QP值或缩放。

例如,假设用于图片或片的RGB编码的块的R、G和B分量的QP值为 QP_RGB。对于该图片或片的YCoCg编码的块的Y分量,QP值是QP_Y。对 于QP_RGB的给定值,量化步骤大小QSS通过QSS=2(QP_RGB-4)/6来给出。当 QP_RGB被增加1或减少1时,量化步骤大小增加或减少21/6的因子。对于给 定QP值的量化误差的能量一般可被测量为QSS2的线性函数。由此,对于 QP_RGB,量化误差的能量可被测量为(2(QP_RGB-4)/6)2=2(QP_RGB-4)/3。为了在(a) 被编码在RGB域中的块与(b)被编码在YCoCg域中接着被转换回RGB域的 块之间具有可比水平的量化误差的能量,QP_Y的值相对于QP_RGB的值来调 整。由于通过逆色彩空间转换的来自Y分量的能量贡献是(1)2+(1)2+(1)2=3,则 根据以下等式来计算调整,该计算开始于将针对RGB编码的块的量化误差的 能量设置为等于经放大的针对YCoCg块的量化误差的能量。

2(QP_RGB-4)/3=3*2(QP_Y-4)/3

log2(2(QP_RGB-4)/3)=log2(3)+log2(2(QP_Y-4)/3)

(QP_RGB-4)/3=log2(3)+(QP_Y-4)/3

QP_Y=QP_RGB-3*log2(3)=QP_RGB-4.755≈QP_RGB-5

由此,QP_Y的值可近似为QP_RGB–5的值。类似地,QP_Co和QP_Cg 的值可相对于QP_RGB的值来调整。由于通过逆色彩空间转换的来自Co分量 的能量贡献是(1)2+(0)2+(-1)2=2,所以QP_Co的值是QP_RGB-3*log2(2)= QP_RGB–3的值。类似于QP_Y的值,QP_Cg的值可近似为QP_RGB-3*log2(3) =QP_RGB-4.755≈QP_RGB-5的值。由此,为了在将Y、Co和Cg分量转换 回RGB域时补偿3:2:3的能量比率,用于Y、Co和Cg分量的QP值相对于用 于R、G和B分量的QP值近似为-5、-3和-5。例如,如果QP_RGB是16,则 QP_Y=QP_Cg=11并且QP_Co=13。或者,如果QP_RGB是28,则QP_Y= QP_Cg=23并且QP_Co=25。

对QP值的-5的调整对应于缩放25/6=1.78的因子。对QP值的-3的调整 对应于缩放23/6=1.41的因子。

如果图片或片的RGB编码的块的R、G和B分量的QP值是不同的,则对 针对Y、Co和Cg分量的QP值或缩放因子的调整可如以下来计算。R、G和B 分量的QP值被分派到Y、Co和Cg分量,接着通过QP调整因子来调整,该 QP调整因子基于在逆色彩空间转换操作中针对Y、Co和Cg色彩分量的能量 放大。例如,假设QP_R是19,QP_G是28并且QP_B是33。在这个情况下, 编码器和解码器可将QP值以相同的次序分派到第一、第二和第三色彩分量, 接着应用QP值调整:QP_Y=19-5=14,QP_Co=28-3=25,和QP_Cg=33-5 =28。或者,编码器和解码器可将QP值以不同的次序分派到第一、第二和第三 色彩分量,接着应用QP值调整。例如,QP_Y=28-5=23,QP_Co=33-3=30, 和QP_Cg=19-5=14。或者,QP值调整可仅依赖于用于第一色彩空间中的第 一色彩分量的QP值。或者,QP值调整可仅依赖于用于第一色彩空间中的各色 彩分量的最小QP值。无论如何,RGB编码的块(不具有色彩空间转换)的量 化误差的能量大致等于YCoCg编码的块被转换回RGB色彩空间时的量化的能 量。

如以上提到的,量化误差一般可被建模为QP值的函数(将量化误差测量 为QSS2的线性函数)。尤其,这个关系针对较小的QP值(和QSS)来保持。 然而,该关系不像对于较高的QP值那样精确。因此,在一些示例实现中,取 决于第一色彩空间的色彩分量的(诸)QP值,编码器或解码器可针对第二色彩 空间的各色彩分量使用不同的QP值调整。例如,编码器/解码器可使用查找表 或其他结构来取决于用于第一色彩空间的QP值来确定针对第二色彩空间的各 色彩分量的QP值调整,其中查找表或其他结构将(针对第二色彩空间的各色 彩分量的)不同的QP值调整与用于第一色彩空间的不同的QP值相关联。查 找表或其他结构可包括特定色彩空间对(第一色彩空间,第二色彩空间)的值。 例如,查找表QPAdjustOffset(QP调整偏移)可通过第二色彩空间的色彩分量 (component_ID)和第一色彩空间中的QP值(QP_CS1)来组织。

QPAdjustOffset[component_ID][QP_CS1]

对于第二色彩空间的给定色彩分量component_ID,查找表包括针对在第一 色彩空间中使用的不同QP值QP_CS1的QP值调整。针对在第一色彩空间中 使用的给定QP值QP_CS1和第二色彩空间的给定色彩分量component_ID,编 码器/解码器可确定针对第二色彩空间的该色彩分量component_ID要使用的QP 值调整。

编码器和解码器可进一步调整第二色彩空间的各色彩分量的QP值,该调 整从第一色彩空间的第一、第二和第三色彩分量的QP值开始并且QP值调整 被应用。例如,编码器增加第二色彩空间的各色彩分量中的一个色彩分量的QP 值(其增加量化误差的经放大的能量),接着减少第二色彩空间的另一色彩分 量的QP值来补偿该增加。或者,编码器减少第二色彩空间的各色彩分量中的 一个色彩分量的QP值(其减少量化误差的经放大的能量),接着增加第二色 彩空间的另一色彩分量的QP值来补偿该减少。例如,从QP_Y=23,QP_Co= 30和QP_Cg=14开始,编码器可将QP_Y减少到18并将QP_Cg增加到22, 而不显著地改变量化误差的整体能量。(在量化误差的能量方面大约166的减 少(从将QP_Y从23改变到18中)被量化误差的能量方面大约162的增加(从 将QP_Cg从14改变到22中)所抵消。)

编码器和解码器可类似地在编码或解码期间在其他色彩空间之间转换时 取决于逆色彩空间转换操作中第二色彩空间的相应色彩分量的能量放大来确 定每色彩分量的色彩空间调整。一般地,供从第一色彩空间变换到第二色彩空 间的色彩空间转换矩阵CC_matrix1_to_2可被定义成:

c00c01c02c10c11c12c20c21c22

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

o0o1o2

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

PsCC2=CC_matrix1_to_2*PsCC1+CC_offsets1_to_2

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

供从第二色彩空间变换回第一色彩空间的色彩空间转换矩阵 CC_matrix2_to_1可被定义成:

c00c01c02c10c11c12c20c21c22

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

o0o1o2

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

RsCC1=CC_matrix2_to_1*(RsCC2+CC_offsets2_to_1)

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

可基于逆色彩空间转换操作中第二色彩空间的相应色彩分量的能量放大 (能量比率)来确定每分量色彩空间调整因子。例如,逆色彩空间转换中第一 分量的总能量贡献是cs2to1_0contribution(贡献)=(c'00)2+(c'10)2+(c'20)2。第二分量 的总能量贡献是cs2to1_1contribution=(c'01)2+(c'11)2+(c'21)2,通过逆色彩空间转 换的第三分量的总能量贡献是cs2to1_2contribution=(c'02)2+(c'12)2+(c'22)2。从这 些能量贡献中,编码器和解码器可相对于第一色彩空间的QP值QP_CS1来确 定对第二色彩空间的相应分量的QP值或缩放因子的调整。第二色彩空间的第 一分量的QP值QP_CS2_0可被确定为QP_CS2_0=QP_CS1-3* log2(cs2to1_0contribution),其中-3*log2(cs2to1_0contribution)指示QP值调整。第二 色彩空间的第二和第三色彩分量的QP值QP_CS2_1和QP_CS2_2可使用 cs2to1_1contribution和cs2to1_2contribution来被类似地确定。替换地,对应于QP值调 整的缩放因子可被计算。

如果第一色彩空间的各色彩分量的QP值具有不同的值(例如,QP_CS1_R, QP_CS1_G,QP_CS1_B),则第二色彩空间的各色彩分量的QP值可如以上描 述地被分派,该分派从第一色彩空间的各色彩分量的QP值开始并应用QP值 调整。在它们被分派和调整后,第二色彩空间的各色彩分量的QP值可如以上 描述地被增加或减少,同时保持量化误差的能量的水平大致相同。

在一些示例实现(参见章节VII.D)中,编码器使用被信号化在比特流中 的句法元素来将QP值分派到第二色彩空间的色彩分量,并且解码器根据信号 化的句法元素将QP值分派到第二色彩空间的色彩分量。在这些实现中,编码 器具有灵活性来将较低的QP值分派到第二色彩空间的具有最高能量或信息内 容的色彩分量,以及将较高的QP值分派到其他色彩分量或以其他方式如编码 器视为适当的那样来分派QP值。在其他示例实现(参见章节VII.E)中,编码 器和解码器根据规则将经修改的QP值分派到色彩分量。例如,编码器和解码 器以第一色彩空间的各色彩分量的QP值的次序将经修改的QP值分派到第二 色彩空间的各色彩分量。或者,编码器和解码器将最低QP值(如果有的话) 分派到第二色彩空间的第一色彩分量(例如,预期具有最高能量或信息内容的 色彩分量)并将其他QP值分派到第二色彩空间的其他色彩分量。

D.用于指示每分量色彩空间调整因子的QP值的句法元素的示例。

为了补偿在逆色彩空间转换操作中量化误差的能量的放大,编码器和解码 器可针对第二色彩空间中的各色彩分量使用不同的QP值。编码器可使用在章 节VII.C中描述的方法中的任一方法来确定和分派第二色彩空间的各色彩分量 的QP值。一旦QP值被分派,编码器就可使用比特流中的句法元素来信号化 它们。本章节描述了用于信号化指示第二色彩空间中的各色彩分量的QP值的 句法元素的各种方法。

一般地,第二色彩空间中的各色彩分量的QP值可相对于第一色彩空间中 对应的色彩分量的QP值被不同地信号化(为偏移)。或者,第二色彩空间中 的第二和第三色彩分量的QP值可相对于第二色彩空间中的第一色彩分量的QP 值被不同地信号化(为偏移),该第二色彩空间中的第一色彩分量的QP值自 身可相对于第一色彩空间的QP值被不同地信号化。或者,第二色彩空间中的 各色彩分量的QP值可用某个其他方式被信号化。

例如,第一色彩空间和第二色彩空间的QP值可在片级(例如,在片头部 中)被信号化。在一些H.265/HEVC实现中(参见JCTVC-P1003),句法元素 slice(片)_qp_delta(增量)被信号化在片头部中并指示片的QP值相对于包括 该片在内的图片的初始QP值的偏移。

取代于针对片QP偏移使用单个句法元素,两个不同的句法元素可分别指 示第一色彩空间的片QP偏移和第二色彩空间的片QP偏移。例如,slice_qp_delta 可指示在第一色彩空间被用在某片内时该片的QP偏移,并且可 slice_qp_delta_cs2指示在第二色彩空间被用在该片内时该片的QP偏移。在至 少两个色彩空间被使用时,句法元素slice_qp_delta_cs2可被有条件地信号化。 句法元素slice_qp_delta_cs2可指示相对于针对第一色彩空间的该片的QP值的 差。即,针对第一色彩空间的该片的QP值是26+init(初始)_qp_minus(减) _26+slice(片)_qp_delta(增量),针对第二色彩空间的该片的QP值是26+ init_qp_minus_26+slice_qp_delta+slice_qp_delta_cs2。替换地,句法元素 slice_qp_delta_cs2可指示相对于该图片的初始QP值的差。即,当第二色彩空 间被使用时,该片的QP值是26+init_qp_minus_26+slice_qp_delta_cs2。

或者,取代于将两个QP值信号化在片头部中,第二色彩空间的QP值可 被信号化在图片级处(例如,在PPS中)。在一些H.265/HEVC实现中,句法 元素init_qp_minus_26被信号化在PPS中并指示图片的初始QP值。PPS中的 另一句法元素init_qp_diff_cs2可相对于针对第一色彩空间的该图片的初始QP 值(用init_qp_minus_26来指示)来指示针对第二色彩空间(或第二色彩空间 的第一色彩分量)的该图片的初始QP值。即,针对第二色彩空间的该图片的 QP值是26+init_qp_minus_26+init_qp_diff_cs2。替换地,PPS中的句法元素 init_qp_minus_26_cs2可直接指示针对第二色彩空间(或第二色彩空间的第一色 彩分量)的该图片的初始QP值。在任一情况下,针对第一色彩空间和第二色 彩空间的某片的QP值可使用片QP偏移来导出。例如,针对第一色彩空间的 某片的QP值是针对第一色彩空间的图片的初始QP值+slice_qp_delta,并且针 对第二色彩空间的该片的QP值是针对第二空间的图片的初始QP值+ slice_qp_delta。

取代于信号化每个色彩空间(片或图片)的单个QP值,可针对第二色彩 空间中的不同色彩分量来信号化不同的QP值。例如,在图片级处(例如,在 PPS中),针对第二色彩空间的某图片的第二和第三色彩分量的偏移可被信号 化为相对于针对该图片的第一色彩空间中对应色彩分量的QP值的偏移。在一 些H.265/HEVC实现中,句法元素pps_cb_qp_offset和pps_cr_qp_offset指示第 一色彩空间(无论是YcbCr还是另一色彩空间)的第二和第三色彩分量相对于 (针对第一色彩空间的第一色彩分量的)图片的初始QP值的偏移。两个附加 的句法元素pps_cb_qp_offset_cs2和pps_cr_qp_offset_cs2可分别指示第二色彩 空间(无论是YCbCr还是另一色彩空间)的第二和第三色彩分量相对于第一色 彩空间的第二和第三色彩分量的QP值的偏移。或者,第二色彩空间的第二和 第三色彩分量的偏移可被信号化为相对于针对第二色彩空间的图片的初始QP 值的偏移。例如,句法元素pps_cb_qp_offset_cs2和pps_cr_qp_offset_cs2可指 示第二色彩空间的第二和第三色彩分量相对于针对第二色彩空间的图片(和第 一色彩分量)的QP值的偏移。

或者,在片级处(例如,在片头部中),针对第二色彩空间的某片的第二 和第三色彩分量的偏移可被信号化为相对于针对该片的第一色彩空间中对应 色彩分量的QP值的偏移。在一些H.265/HEVC实现中,句法元素 slice_cb_qp_offset和slice_cr_qp_offset指示第一色彩空间(无论是YCbCr还是 另一色彩空间)的第二和第三色彩分量相对于(针对第一色彩空间的第一色彩 分量的)该片的QP值的偏移。两个附加的句法元素slice_cb_qp_offset_cs2和 slice_cb_qp_offset_cs2可分别指示第二色彩空间(无论是YCbCr还是另一色彩 空间)的第二和第三色彩分量相对于第一色彩空间的第二和第三色彩分量的QP 值的偏移。或者,针对第二色彩空间的该片的第二和第三色彩分量的偏移可被 信号化为相对于针对第二色彩空间的该片的第一色彩分量的QP值的偏移。例 如,句法元素slice_cb_qp_offset_cs2和slice_cr_qp_offset_cs2可指示第二色彩 空间的第二和第三色彩分量相对于针对第二色彩空间的该片的第一色彩分量 的QP值的偏移。

通过这种方式,QP值针对第一色彩空间和针对第二色彩空间来为某图片 或某片信号化。当编码器或解码器在各单元之间(例如,在图片的各块或各片 之间、或在片的各块之间)切换色彩空间时,编码器或解码器具有适当的QP值 来应用。替换地,指示第二色彩空间的各色彩分量的QP值的句法元素可用某 个其他方式来信号化。

E.用于针对每分量色彩空间调整因子的QP值的导出规则的示例。

取代于为第二色彩空间中的各色彩分量信号化不同的QP值,编码器和解 码器可取决于第二色彩空间的身份来根据规则推导出这些QP值,该推导从第 一色彩空间的各色彩分量的QP值开始。通过这种方式,编码器和解码器可修 改在编码和解码期间使用的QP值以补偿在逆色彩空间转换操作中量化误差的 能量的放大。章节VII.C描述了在从第二色彩空间转换回第一色彩空间时取决 于逆色彩空间转换操作来确定QP值调整的方法。这些方法之一可被编码器和 解码器自动地应用,而无需信号化指示针对第二色彩空间的各色彩分量的QP 值调整的句法元素。

在第一色彩空间的各色彩分量的QP值以其他方式被确定后,编码器和解 码器可修改第一色彩空间的各色彩分量的最终QP值。例如,对于被编码在 YCoCg色彩空间中的块,编码器和解码器可分别将Y、Co和Cg分量的QP值 调整-5、-3和-5来调整被用于RGB编码的块的最终QP值QP_RGB。(-5、-3 和-5的调整因子的导出在以上被解释了。)在一些H.265/HEVC实现中,变量 Qp’Y、Qp’Cb和Qp’Cr指示YCbCr、RGB和另一第一色彩空间的第一、第二 和第三色彩分量的最终QP值(变量名称可改变)。如果YCoCg色彩空间被用 于编码,则为了确定Y、Co和Cg色彩分量的QP值,最终QP值Qp’Cb、Qp’Cb 和Qp’Cr被如下调整:Qp’Y-=5,Qp’Cb-=3,以及Qp’Cr-=5。-5、-3和-5的 每色彩分量色彩空间调整是导出规则的一部分。经调整的QP值可被夹在最小 允许QP值处。

对于另一第二色彩空间,对最终QP值Qp’Y、Qp’Cb和Qp’Cr的调整可取 决于在逆色彩空间转换操作中该第二色彩空间的相应色彩分量的能量放大来 被类似地修改。

或者,取代于修改第一色彩空间的各色彩分量的最终QP值,编码器和解 码器可修改针对第一色彩空间的各色彩分量中的至少一些的中间QP值。例如, 对于被编码在YCoCg色彩空间中的块,编码器和解码器可分别地调整Co和Cg 分量的中间QP值。在一些H.265/HEVC实现中,变量qPiCb和qPiCr指示针 对YCbCr、RGB或另一第一色彩空间的第二和第三色彩分量的中间QP值(变 量名称可改变),并且变量QpY指示针对第一色彩空间的第一色彩分量的中间 QP值。如果YCoCg色彩空间被用于编码,则为了确定Y、Co和Cg色彩分量 的QP值,最终QP值Qp’Y和中间QP值qPiCb和qPiCr被如下确定:

Qp′Y=QpY+QpBdOffsetY-5

qPiCb=Clip3(-QpBdOffsetC,57,QpY-3+pps_cb_qp_offset+ slice_cb_qp_offset)

qPiCr=Clip3(-QpBdOffsetC,57,QpY-5+pps_cr_qp_offset+ slice_cr_qp_offset)

这些等式使用指示第一色彩空间的各色彩分量的QP值的句法元素(例如, pps_cb_qp_offset,slice_cb_qp_offset,pps_cr_qp_offset和slice_cr_qp_offset), 但没有使用指示每色彩分量色彩空间调整的句法元素。替代地,-5、-3和-5的 每色彩分量色彩空间调整是导出规则的一部分。经调整的QP值可被夹在最小 允许QP值处。

对于另一第二色彩空间,对中间QP值的调整可取决于在逆色彩空间转换 操作中该第二色彩空间的相应色彩分量的能量放大来被类似地修改。

根据规则,编码器和解码器可按第一色彩空间的各色彩分量的QP值的次 序将经修改的QP值分派到第二色彩空间的各色彩分量。或者,根据规则,编 码器和解码器可将最低经修改的QP值(如果有的话)分派到第二色彩空间的 第一色彩分量(例如,预期具有最高能量或信息内容的色彩分量)并将其他经 修改的QP值分派到第二色彩空间的其他色彩分量。

F.用于每分量色彩空间调整因子的缩放因子的示例。

替代于修改QP值来补偿在逆色彩空间转换操作中量化误差的能量的放大, 编码器和解码器可修改缩放变换系数的过程。

例如,将被应用到变换系数的缩放因子列表可被修改。在确定因频率而异 的缩放因子m[x][y]后,如果第二色彩空间被使用,则可取决于其变换系数正被 缩放的色彩分量来修改m[x][y]。变量cIdx指示色彩分量的索引。当第一色彩空 间是RGB并且第二色彩空间是YCoCg时,例如,m[x][y]可分别针对Y、Co和 Cg分量用为1.78、1.41和1.78的因分量而异的缩放因子来修改。1.78、1.41和 1.78的因分量而异的缩放因子分别对应于25/6、23/6和25/6的QSS改变并分别大 约对应于-5、-3和-5的QP值调整。如果cIdx是0或2,则m[x][y]*=1.78。否 则,如果cIdx是1,则m[x][y]*=1.41。替换地,取代于使用浮点操作,可使用 整数操作来修改m[x][y]。

对于另一第二色彩空间,因分量而异的缩放因子可取决于在逆色彩空间转 换操作中该第二色彩空间的相应色彩分量的能量放大来被修改。

或者,在不修改m[x][y]的情况下,编码器和解码器可在执行缩放操作时分 开地考虑第二色彩空间的不同色彩分量的因分量而异的缩放因子。例如,阵列 factor[cIdx](因子[cIdx])存储第二色彩空间的各色彩分量的因分量而异的缩放 因子。当第二色彩空间是YCoCg时,例如,factor[cIdx]是{1.78,1.41,1.78}。对 于另一第二色彩空间,因分量而异的缩放因子可取决于在逆色彩空间转换操作 中该第二色彩空间的相应色彩分量的能量放大来被修改。阵列中的变换系数 TransCoeffLevel(变换系数水平)被如下地逆量化和缩放。

d[x][y]=Clip3(-32768,32767,((TransCoeffLevel[xTbY][yTbY][cIdx][x][y]* m[x][y]*factor[cIdx]*levelScale[qP%6]<<(qP/6))+(1<<(bdShift-1)))>> bdShift)

或者,编码器和解码器可使用仅整数操作来执行缩放操作,其中 factor1[cIdx]和factor2[cIdx]包括定义的整数值使得factor1[cIdx]/factor2[cIdx]近 似于factor[cIdx]。

d[x][y]=Clip3(-32768,32767,((TransCoeffLevel[xTbY][yTbY][cIdx][x][y]* m[x][y]*factor1[cIdx]/factor2[cIdx]*levelScale[qP%6]<<(qP/6))+(1<<(bdShift -1)))>>bdShift)

第二色彩空间的各色彩分量的因分量而异的缩放因子可被信号化在比特 流中或使用重构规则在编码器和解码器处导出。

替换地,编码器和解码器可针对不同的色彩空间或不同的色彩空间的不同 的色彩分量来使用不同的因频率而异的缩放因子m[x][y]和m_cs2[x][y]。不同的 色彩空间/色彩分量的因频率而异的缩放因子可被信号化在比特流中或使用重 构规则在编码器和解码器处导出。

G.附加的编码器侧改变的示例。

除了对量化或缩放的改变之外,编码器侧决策制定过程可被修改来反映对 QP值或缩放的调整。编码器可修改在速率失真优化量化(”RDOQ”)中使用的 拉格朗日乘数λ以匹配用于不同色彩空间的不同色彩分量的QP值。例如,如 果QP值增加1,则相关的拉格朗日乘数被增加21/3:针对RDOQ的λ=λ*21/3。 如果QP值改变某一其他量,则拉格朗日乘数被相应地增加或减少。由此,如 果通过将R、G和B分量的QP值调整-5、-3和-5来确定Y、Co和Cg分量的 QP值,则对应的RDOQ的拉格朗日乘数被分别设置为λ_Y=λ_RGB*2-5/3、λ_Co =λ_RGB*2-3/3和λ_Cg=λ_RGB*2-5/3,其中λ_RGB是在RGB色彩空间中的 RDOQ的拉格朗日乘数。

替换地,编码器可在不改变QP值的情况下修改第二色彩空间中的RDOQ 的拉格朗日乘数。

对于另一第二色彩空间,RDOQ的拉格朗日乘数可取决于对QP值或缩放 作出的调整来被类似的修改。

除了RDOQ之外,另一速率失真决策制定过程的拉格朗日乘数λ可取决于 对QP值或缩放作出的调整来被修改。例如,在速率失真分析中使用的λ值当在 编码模式或选项(例如,帧内预测方向)之间决定用于在第二色彩空间编码时 可根据第一色彩空间和第二色彩空间之间QP值方面的差来被修改。编码器可 根据速率失真成本来选择最佳模式或选项,其被针对第二色彩空间的经修改的 λ值来加权。

H.使用仅编码器侧改变的替换方法。

替换地,编码器可在逐单元的基础上调整QP值来补偿在逆色彩空间转换 操作中量化误差的能量的放大。编码器使用用于指定相应单元的QP值的现有 句法元素来在逐单元的基础上设置QP值。从经信号化的句法元素中,解码器 在逐单元的基础上确定相应单元的QP值,而不对QP值作出色彩空间调整。 例如,对于被编码在第一色彩空间(例如,RGB)中的第一单元,编码器可使 用第一组QP值并信号化指示该第一单元的第一组QP值的句法元素。接着, 对于被编码在第二色彩空间(例如,YCoCg)中的第二单元,编码器可使用第 二组QP值并信号化指示该第二单元的第二组QP值的句法元素。该第二组QP 值可如以上解释的那样被确定以补偿在逆色彩空间转换操作中量化误差的能 量的放大。例如,第二单元的QP值可分别针对Y、Co和Cg分量用为-5、-3和 -5的因子调整。对于另一第二色彩空间,对QP值作出的调整被相应地修改。

当色彩空间切换可在逐CU的基础上发生时,对QP值的调整可在逐CU 的基础上被信号化。在一些H.265/HEVC实现中,QP值的偏移被信号化为针对 不同CU的TU-级句法的一部分。例如,句法元素cu_qp_delta_abs和 cu_qp_delta_sign_flag可被用于指示被编码在第一色彩空间(诸如RGB)中的 第一CU的第一QP偏移,并且句法元素cu_qp_delta_abs和 cu_qp_delta_sign_flag可之后被用于指示被编码在第二色彩空间(诸如YCoCg) 中的第二CU的第二QP偏移。可使用第二和第三色彩分量的其他QP偏移值 来确定第二色彩空间中的每色彩分量QP值。

或者,当色彩空间切换可在逐片的基础上发生时,对QP值的调整可在逐 片的基础上被信号化。在一些H.265/HEVC实现中,可使用slice_qp_delta、 slice_cb_qp_offset和slice_cr_qp_offset句法元素来将QP值设置在片头部中以 指示给定片的QP值。例如,句法元素slice_qp_delta、slice_cb_qp_offset和 slice_cr_qp_offset可被用于指示被编码在第一色彩空间(诸如RGB)中的第一 片的QP值,并且句法元素slice_qp_delta、slice_cb_qp_offset和 slice_cr_qp_offset可之后被用于指示被编码在第二色彩空间(诸如YCoCg)中 的第二片的QP值。或者,当色彩空间切换可在各单元之间发生时,对QP值的 调整可在某个其他逐单元的基础上被信号化。

I.在编码或解码期间切换色彩空间时调整量化/缩放或逆量化/缩放的 示例。

图12是示出用于在编码期间切换色彩空间时调整量化或缩放的一般化技 术(1200),并且图13是示出用于在逐单元的基础上切换色彩空间时调整量化 或缩放的更加详细的示例技术(1300)。图像编码器或视频编码器(诸如参考 图3或图5a-5b描述的编码器或其他编码器)可执行技术(1200)或技术(1300)。

图14是示出用于在解码期间切换色彩空间时调整逆量化或缩放的一般化 技术(1400),并且图15是示出用于在逐单元的基础上切换色彩空间时调整逆 量化或缩放的更加详细的示例技术(1500)。图像解码器或视频解码器(诸如 参考图4或图6描述的编码器或其他解码器)可执行技术(1400)或技术(1500)。

参考图12,编码器对图像或视频的各单元(例如,图片、片、CU、块)进 行编码(1210)以产生经编码的数据。作为编码的一部分,当在各单元之中的 两个单元之间从第一色彩空间切换到第二色彩空间时(例如,从RGB型色彩空 间切换到YUV型色彩空间,或从YUV型色彩空间切换到RGB型色彩空间), 编码器根据每分量色彩空间调整因子来调整第二色彩空间的各色彩分量的量 化或缩放。编码器将经编码的数据作为比特流的一部分来输出(1220)。

参考图13,编码器确定(1310)第二色彩空间的各分量的QP值调整或缩 放因子。例如,编码器使用本文中描述的任一方法来确定QP值调整或缩放因 子。编码器还确定第一色彩空间的各分量的QP值和缩放因子。编码器得到 (1320)视频的下一单元(例如,图片、片、CU)并为该单元设置(1330)色 彩空间。例如,编码器为该单元在RGB型色彩空间和YUV型色彩空间(诸如 YCoCg)之间进行选择。编码器接着使用针对所选色彩空间的适当的QP值和 缩放因子来对该单元进行编码(1340)。编码器输出(1350)该单元的经编码 的数据,其包括指示该单元的色彩空间的一个或多个信号。编码器检查(1360) 是否继续下一单元,并且如果如此,则得到(1320)下一单元。

参考图14,解码器接收(1410)作为比特流的一部分的经编码的数据。解 码器对经编码的数据进行解码(1420)以重构图像或视频的各单元(例如,图 片、片、CU、块)。作为解码的一部分,当在各单元之中的两个单元之间从第 一色彩空间切换到第二色彩空间时(例如,从RGB型色彩空间切换到YUV型 色彩空间,或从YUV型色彩空间切换到RGB型色彩空间),解码器根据每分 量色彩空间调整因子来调整针对第二色彩空间的各色彩分量的逆量化或缩放。

参考图15,解码器确定(1510)针对第二色彩空间的各分量的QP值调整 或缩放因子。例如,解码器使用本文中描述的任一方法来确定QP值调整或缩 放因子。解码器还确定针对第一色彩空间的各分量的QP值和缩放因子。编码 器得到(1520)针对视频的下一单元(例如,图片、片、CU)的经编码的数据, 其包括指示该单元的色彩空间的一个或多个信号。解码器确定(1530)该单元 的色彩空间。例如,基于(诸)信号,解码器为该单元在RGB型色彩空间和 YUV型色彩空间(诸如YCoCg)之间进行选择。解码器使用针对所选色彩空 间的适当的QP值和缩放因子来对该单元进行解码(1540)。解码器检查(1550) 是否继续下一单元,并且如果如此,则得到(1520)针对下一单元的经编码的 数据。

一般地,每分量色彩空间调整因子补偿在从第二色彩空间转换回第一色彩 空间时量化误差的能量的放大。否则,如果来自第一色彩空间的QP值和缩放 因子被简单地应用到第二色彩空间中的样本值,则第二色彩空间中的量化误差 被回到第一色彩空间的逆色彩空间转换操作放大。

对于图12-15中示出的示例,比特流中的一个或多个句法元素可指示每分 量色彩空间调整因子。(诸)句法元素可被信号化在图片级、片级、用于编码 单元或块的句法级或某个其他句法级处。(诸)句法元素可包括指示第二色彩 空间的第一色彩分量的QP值的句法元素以及指示第二色彩空间的第二和第三 色彩分量的偏移的句法元素。章节VII.D描述了信号化第二色彩空间的各色彩 分量的QP值的示例。

或者,取代于被比特流中的句法元素指示,针对第二色彩空间的各色彩分 量的每分量色彩空间调整因子可取决于第二色彩空间根据规则被推导出,该推 导从第一色彩空间的各色彩分量的QP值开始。章节VII.E描述了用于第二色 彩空间的各色彩分量的QP值的导出规则的示例。

调整量化或逆量化的动作可包括调整第一色彩空间的各色彩分量的最终 QP值或中间QP值以确定第二色彩空间的各色彩分量的QP值。例如,如果第 一色彩空间是RGB并且第二色彩空间是YCoCg,则针对Y、Co和Cg分量的 每分量色彩空间调整因子可以是-5、-3和-5。更一般地,针对量化和逆量化的 每分量色彩空间调整因子可取决于在逆色彩空间转换操作中第二色彩空间的 相应色彩分量的能量放大。

在编码或解码期间被调整的缩放可包括使用每分量色彩空间调整因子来 缩放变换系数。缩放可使用仅整数操作或浮点操作。每分量色彩空间调整因子 可被合并到因频率而异的缩放因子中或被分开地应用。例如,如果第一色彩空 间是RGB并且第二色彩空间是YCoCg,则针对Y、Co和Cg分量的因分量而 异的缩放因子可以是1.78、1.41和1.78。更一般地,针对缩放的每分量色彩空 间调整因子可取决于在逆色彩空间转换操作中第二色彩空间的相应色彩分量 的能量放大。对于附加的细节,请参见章节VIII.F。

或者,对于在编码期间不要求在解码期间对应改变的改变,编码器可在逐 单元的基础上设置每分量QP值。在这种情况下,比特流包括指示相应单元的 每分量QP值的句法元素。对于附加的细节,请参见章节VIII.H。

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

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号