首页> 中国专利> 图内块拷贝预测模式下的合并的色度块的特殊情况处理

图内块拷贝预测模式下的合并的色度块的特殊情况处理

摘要

在图内块拷贝(“BC”)预测方面的创新有助于处理当色度块被合并用于图内BC预测时的特殊情况。例如,编码包括相邻单元集合(例如,编码单元的预测单元)的图内BC预测。编码器使用与相邻单元相关联的块向量(“BV”)值中的一个或多个来导出相邻单元集合的次分量块(例如,色度块)的BV值。编码包括用于任何所导出的BV值引用在边界(例如,图片边界、切片边界、图块边界)外部的采样值的特殊情况处理。特殊情况处理可以使用对BV的值的约束、所导出的BV值的剪切、或在边界处的采样值的填充。在一些实现中,相应的解码包括特殊情况处理。

著录项

  • 公开/公告号CN107211155A

    专利类型发明专利

  • 公开/公告日2017-09-26

    原文格式PDF

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

    申请/专利号CN201680007615.4

  • 发明设计人 李斌;许继征;

    申请日2016-01-15

  • 分类号H04N19/52(20140101);H04N19/593(20140101);H04N19/186(20140101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人王茂华;黄捷

  • 地址 美国华盛顿州

  • 入库时间 2023-06-19 03:27:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-27

    授权

    授权

  • 2017-10-27

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

    实质审查的生效

  • 2017-09-26

    公开

    公开

说明书

背景技术

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

在过去的25年中,已经采用了各种视频编解码器标准,包括ITU-T H.261、H.262(MPEG-2或ISO/IEC 13818-2)、H.263和H.264(MPEG-1AVI或ISO/IEC 14496-10)标准、MPEG-1(ISO/IEC 11172-2)和MPEG-4视觉(ISO/IEC 14496-2)标准、以及SMPTE 421M(VC-1)标准。最近,H.265/HEVC标准(ITU-T H.265或ISO/IEC 23008-2)已经获得批准。H.265/HEVC标准的扩展(例如,用于可缩放视频编码/解码,用于在采样位深度或色度采样率方面具有较高保真度的视频的编码/解码,用于屏幕捕获内容,或者用于多视图编码/解码)目前正在开发中。视频编解码器标准通常定义用于编码视频比特流的语法的选项,详细描述了当在编码和解码中使用特定特征时比特流中的参数。在很多情况下,视频编解码器标准还提供了关于解码器应该执行的解码操作的细节,以在解码中实现一致的结果。除了编解码器标准,各种专有编解码器格式定义用于编码视频比特流的语法的其他选项和相应的解码操作。

诸如相机或屏幕捕获模块等视频源通常提供被变换成诸如YUV 4:4:4色度采样格式等格式的视频。YUV格式包括具有表示近似明亮度值的采样值的亮度(或Y)分量以及具有表示色差值的采样值的多个色度(或U和V)分量。在YUV 4:4:4格式中,色度信息用与亮度信息相同的空间分辨率来表示。很多市售的视频编码器和解码器支持YUV 4:2:0色度采样格式或YUV 4:2:2色度采样格式。YUV 4:2:0格式是与YUV 4:4:4格式相比对色度信息进行子采样的格式,因此色度分辨率在水平和垂直方向上都是亮度分辨率的一半。作为设计原则,使用YUV 4:2:0格式用于编码/解码的决定的前提是以下认识:对于诸如自然的相机捕获的视频内容的编码/解码等典型使用案例,观众通常不会注意以YUV 4:2:0格式编码/解码的视频与以YUV 4:4:4格式编码/解码的视频之间的显著视觉差异。因此,对于每个图片具有较少采样的YUV 4:2:0格式的压缩优势非常有吸引力。YUV 4:2:2格式是与YUV 4:4:4格式相比对色度信息进行子采样的格式,使得色度分辨率在水平方向上是亮度分辨率的一半。

图内块拷贝(“BC”)是用于H.265/HEVC扩展的正在开发的预测模式。对于图内BC预测模式,使用同一图片中的先前重构的采样值来预测图片的当前块的采样值。块向量(“BV”)值表示从当前块到包括用于预测的先前重构的采样值的图片的参考块的位移。BV值在比特流中用信号通知。在一些设计中,亮度采样值块(“亮度块”)可以是4×4块、4×8块、8×4块、8×8块、或具有更大尺寸的块。如果色度采样格式为4:2:0或4:2:2,则相应的色度采样值块(“色度块”)可以是2×2块、2×4块、2×8块、4×2块、4×4块、或具有更大的尺寸的块。当图内BC预测的最小块尺寸为4×4时,一些色度块(例如,2×2、2×4、2×8或4×2块)可以小于最小块尺寸。将小的色度块合并成单个块,用于具有单个BV值的图内BC预测的目的。通过选择合并后的色度块的相应的亮度块中的最底部最右侧块的BV值,导出合并后的色度块的单个BV值。在一些情况下,通过这一规则所导出的BV值引用在图片外部的采样值,这些采样值不可用于图内BC预测。尽管这样的情况可能很少,但是它们可能导致编码或解码意外地失败。

发明内容

在发明内部中,详细说明提出了图内块拷贝(“BC”)预测方面的创新。具体地,这些创新促进当出于图内BC预测的目的而合并色度块时对特殊情况的处理。

根据本文中描述的创新的一个方面,一种媒体编码器对图片进行编码以产生编码数据并且输出编码数据。编码包括图片的相邻单元(例如,编码单元的预测单元)集合的图内BC预测。对于相邻单元集合中的每个单元,媒体编码器使用与该单元相关联的块向量(“BV”)值来执行该单元的主分量块(例如,亮度块)的图内BC预测。媒体编码器至少部分基于与相邻单元相关联的BV值中的一个或多个来导出相邻单元集合的次分量块(例如,色度块)的BV值。然后,媒体编码器使用所导出的BV值来执行次分量块的图内BC预测。在次分量块之中的相邻块被合并用于图内BC预测的目的。编码包括对所导出的BV值中的任何值引用在边界(例如,图片边界、切片边界、图块边界)外部的采样值的特殊情况处理。例如,特殊情况处理使用对BV的值的约束、所导出的BV值的剪切、或边界处的采样值的填充。

根据本文中描述的创新的另一方面,一种媒体解码器接收编码数据并且使用编码数据来对图片解码。解码包括图片的相邻单元(例如,编码单元的预测单元)集合的图内BC预测。对于相邻单元集合中的每个单元,媒体解码器使用与该单元相关联的BV值来执行该单元的主分量块(例如,亮度块)的图内BC预测。媒体解码器至少部分基于与相邻单元相关联的BV值中的一个或多个来导出相邻单元集合的次分量块(例如,色度块)的BV值。然后,媒体解码器使用所导出的BV值来执行次分量块的图内BC预测。在次分量块之中的相邻块被合并用于图内BC预测的目的。解码包括对所导出的BV值中的任何值引用在BV边界(例如,图片边界、切片边界、图块边界)外部的采样值的特殊情况处理。例如,特殊情况处理使用对BV的值的约束、所导出的BV值的剪切、或边界处的采样值的填充。

创新可以被实现为方法的部分、被配置为执行方法的计算系统的部分、或者存储用于使得计算系统执行方法的计算机可执行指令的有形计算机可读介质的部分。各种创新可以组合使用或单独使用。提供本发明内容以便以简化的形式介绍将在下面的具体实施方式部分中进一步描述的一些概念。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。通过参考附图进行的以下详细描述,本发明的前述和其他目的、特征和优点将变得更加明显。

附图说明

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

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

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

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

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

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

图7和图8是示出图片的亮度块的图内BC预测的示例的各方面的图。

图9是示出图片的单元的示例z扫描顺序的图。

图10a是示出图片的亮度块的图内BC预测的各方面的图,图10b是示出用于使用所导出的BV值的相应的合并的色度块的图内BC预测的各方面的图。

图11a和11b是示出通过约束BV的值的图内BC预测模式下的合并的色度块的特殊情况处理的各方面的图。

图12a至12e是示出图内BC预测模式下其BV的值被约束用于合并的色度块的特殊情况处理的单元的图。

图13是示出通过剪切所导出的BV的值的图内BC预测模式下的合并的色度块的特殊情况处理的各方面的图。

图14是示出通过填充远离图片的边界的采样值的图内BC预测模式下的合并的色度块的特殊情况处理的各方面的图。

图15和16是示出根据所描述的一些实施例的使用图内BC预测模式下的合并的色度块的特殊情况处理的分别用于编码和解码的通用技术的流程图。

具体实施方式

具体实施方式部分介绍图内块拷贝(“BC”)预测中的创新。具体地,这些创新促进在出于图内BC预测的目的而合并色度块时的特殊情况的处理。

尽管本文中描述的操作在某些地方被描述为由视频编码器或视频解码器来执行,但是在很多情况下,这些操作可以由另一类型的媒体处理工具(例如,图像编码器或图像解码器)来执行。

参考特定于H.265/HEVC标准的扩展的术语来说明本文中描述的一些创新。例如,参考H.265/HEVC标准的屏幕内容编码/解码扩展的草案版本JCTVC-R1005——“高效视频编码(HEVC)屏幕内容编码:草案1”,JCTVC-R1005_v3,September 2014。本文中描述的创新也可以被实现用于其他标准或格式。

本文中描述的很多创新可以在编码某些“人工创建的”视频内容(诸如屏幕捕获内容)时改善速率失真性能。通常,屏幕捕获视频(也称为屏幕内容视频)是包含渲染的文本、计算机图形、动画生成的内容、或者在被渲染到计算机显示器时捕获的其他类似类型的内容的视频,而不仅是相机捕获的视频内容。屏幕捕获内容通常包括重复的结构(例如,图形、文本字符)。屏幕捕获内容通常以具有高色度采样分辨率的格式(例如,YUV 4:4:4或RGB 4:4:4)被编码,尽管它也可以以具有较低色度采样分辨率的格式(例如,YUV 4:2:0)被编码。用于屏幕捕获内容的编码/解码的常见场景包括远程桌面会议、在自然视频上叠加的图形或其他“混合内容”视频的编码/解码。本文中描述的若干创新适用于屏幕内容视频或其他人工创建的视频的编码。这些创新也可以用于自然视频,但是可能不会同样有效。

本文中描述的很多示例涉及YUV 4:2:2格式或YUV 4:2:0格式的图片的亮度采样值块(亮度块)和相应的色度采样值块(色度块)的图内BC预测。通常,如本文中使用的,术语YUV表示具有亮度(luma,或luminance)分量和一个或多个色度(chroma,或chrominance)分量的任何颜色空间。色度采样值可以被子采样到较低的色度采样率(例如,对于YUV 4:2:0格式或YUV 4:2:2格式),或者色度采样值可以具有与亮度采样值相同的分辨率(例如,对于YUV 4:4:4格式)。或者,可以根据另一格式(例如,RGB 4:4:4格式、GBR 4:4:4格式或BGR 4:4:4格式)来组织视频。通常,主分量块是主分量的采样值的块(诸如用于YUV格式的Y或者用于RGB格式的R),次分量块是次分量的采样值的块(诸如用于YUV格式的U或V、或者用于RGB格式的G或B)。

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

I.示例计算系统

图1示出了其中可以实现若干所描述的创新的合适的计算系统(100)的通用示例。计算系统(100)并非旨在对使用范围或功能性提出任何限制,因为创新可以在多种通用或专用计算系统中实现。

参考图1,计算系统(100)包括一个或多个处理单元(110,115)和存储器(120,125)。处理单元(110,115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器、或者任何其他类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理能力。例如,图1示出了中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120,125)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪速存储器等)、或者两者的某种组合,其由处理单元可访问。存储器(120,125)以适于由处理单元执行的计算机可执行指令的形式来存储实现用于图内BC预测模式下的合并的色度块(或其他合并的次分量块)的特殊情况处理的一个或多个创新的软件(180)。

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

有形存储装置(140)可以是可移除的或不可移除的,并且包括磁盘、磁带或盒、CD-ROM、DVD、或者可以用于存储信息并且可以在计算系统(100)内被访问的任何其他介质。存储装置(140)存储用于实现用于图内BC预测模式下的合并的色度块(或其他合并的次分量块)的特殊情况处理的一个或多个创新的软件(180)的指令。

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

通信连接(170)能够实现通过通信介质到另一计算实体的通信。通信介质传送各种信息,诸如计算机可执行指令、音频或视频输入或输出、或者调制数据信号中的其他数据。调制数据信号是以使得能够在信号中对信息进行编码的方式设置或改变其特征中的一个或多个特征的信号。作为示例而非限制,通信介质可以使用电、光、视频(RF)或其他载体。

创新可以在计算机可读介质的一般上下文中来描述。计算机可读介质是可以在计算环境中被访问的任何可用的有形介质。作为示例而非限制,利用计算系统(100),计算机可读介质包括存储器(120,125)、存储装置(140)、以及上述中的任何的组合。

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

术语“系统”和“设备”在本文中可互换地使用。除非上下文另外明确指示,否则这两个术语都不意味着对一种类型的计算系统或计算设备的任何限制。通常,计算系统或计算设备可以是本地的或分布式的,并且可以包括专用硬件和/或通用硬件与实现本文中描述的功能的软件的任何组合。

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

为了呈现的目的,具体实施例部分使用诸如“确定”和“使用”等术语来描述计算机系统中的计算机操作。这些术语是对于由计算机执行的操作的高级抽象,而不应当与由人类执行的动作混淆。与这些术语相对应的实际计算机操作因实现方式而异。

II.示例网络环境

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

在图2a所示的网络环境(201)中,每个实时通信(“RTC”)工具(210)包括编码器(220)和解码器(270)二者用于双向通信。给定的编码器(220)可以产生符合H.265/HEVC标准、SMPTE 421M标准、ISO/IEC 14496-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)包括对视频进行编码用于传送到包括解码器(270)的多个重放工具(214)的编码器(220)。单向通信可以被提供用于视频监控系统、网络相机监视系统、远程桌面会议呈现、或者其中对视频进行编码并且将其从一个位置发送到一个或多个其他位置的其他场景。尽管图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)信道的输出。输出到信道的编码数据可以包括使用图内BC预测模式下的合并的色度块(或其他合并的次分量块)的特殊情况处理被编码的内容。

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

到达的源图片(311)被存储在包括多个图片缓冲存储区域(321、322、......、32n)的源图片临时存储器存储区域(320)中。图片缓冲区(321、322等)在源图片存储区域(320)中保存一个源图片。在一个或多个源图片(311)已经被存储在图片缓冲区(321、322等)中之后,图片选择器(330)从源图片存储区域(320)中选择单个源图片。由图片选择器(330)选择用于输入到编码器(340)的图片的顺序可以不同于视频源(310)产生图片的顺序,例如,一些图片的编码可以按顺序被延迟,以便允许一些较晚的图片被首先编码并且从而便于时间上的后向预测。在编码器(340)之前,编码器系统(300)可以包括在编码之前执行所选择的图片(331)的预处理(例如,滤波)的预处理器(未示出)。预处理可以包括到主(例如亮度)和次(例如,朝向红色和朝向蓝色的色度差异)颜色分量的颜色空间变换、和用于编码的重采样处理(例如,以降低色度分量的空间分辨率)。在编码之前,可以将视频变换到诸如YUV等颜色空间,在该颜色空间中,亮度(Y)分量的采样值表示明亮度或强度值,色度(U,V)分量的采样值表示色差值。色差值的精确定义(以及到YUV颜色空间/从YUV颜色空间到其他颜色空间(诸如RGB)的变换操作)取决于实现方式。通常,如本文中使用的,术语YUV表示具有亮度(luma或luminance)分量和一个或多个色度(chroma或chrominance)分量的任何颜色空间,包括Y'UV、YIQ、Y'IQ和YDbDr、以及各种变型(诸如YCbCr和YCoCg)。色度采样值可以被子采样到较低的色度采样率(例如,对于YUV 4:2:0格式),或者色度采样值可以具有与亮度采样值相同的分辨率(例如,对于YUV 4:4:4格式)。可替代地,可以根据另一格式(例如,RGB 4:4:4格式、GBR 4:4:4格式或BGR 4:4:4格式)来组织视频。通常,主分量块是主分量的采样值的块(诸如用于YUV格式的Y或者用于RGB格式的R),次分量块是次分量的采样值的块(诸如用于YUV格式的U或V、或者用于RGB格式的G或B)。

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

通常,编码器(340)包括执行编码任务(诸如划分为图块、图片内预测估计和预测、运动估计和补偿、频率变换、量化和熵编码)的多个编码模块。由编码器(340)执行的具体操作可以根据压缩格式而变化。输出的编码数据的格式可以是H.265/HEVC格式、WindowsMedia视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263、H.264)或另一格式的变型或扩展。

编码器(340)可以将图片划分为相同尺寸或不同尺寸的多个图块。例如,编码器(340)沿着与图片边界一起限定图片内的图块的水平边界和垂直边界的图块行和图块列来分割图片,其中每个图块是矩形区域。图块通常用于提供用于并行处理的选项。图片也可以被组织为一个或多个切片,其中切片可以是整个图片或图片的部分。切片可以独立于图片中的其他切片被解码,从而提高错误恢复能力。为了编码和解码的目的,切片或图块的内容被进一步分为块或其他采样值集合。

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

通常,CU具有诸如图间或图内等预测模式。CU包括用于发信号通知预测信息(诸如预测模式细节、位移值等)和/或预测处理的目的的一个或多个预测单元。预测单元(“PU”)具有亮度预测块(“PB”)和两个色度PB。根据H.265/HEVC标准,对于图内预测的CU,PU具有与CU相同的尺寸,除非CU具有最小尺寸(例如8×8)。在这种情况下,CU可以分为更小的PU(例如,对于图片内预测,如果最小CU尺寸是8×8,则分为四个4×4的PU、两个4×8的PU、或者两个8×4的PU),或者PU可以具有最小CU尺寸,如CU的语法元素所指示的。可替代地,对于在图内BC预测中使用的对称或非对称划分,较大的CU可以分割为多个PU。

CU还具有用于残差编码/解码的目的的一个或多个变换单元,其中变换单元(“TU”)具有亮度变换块(“TB”)和两个色度TB。图内预测的CU中的PU可以包含单个TU(尺寸与PU相同)或多个TU。编码器决定如何将视频分为CTU、CU、PU、TU等。

在H.265/HEVC实现中,切片可以包括单个切片分段(独立切片分段),或者被分为多个切片分段(独立切片分段和一个或多个从属切片分段)。切片分段是被包含在单个网络抽象层(“NAL”)单元中的在图块扫描中连续排序的整数个CTU。对于独立切片分段,切片分段报头包括适用于独立切片分段的语法元素的值。对于从属切片分段,截断(truncated)的切片分段报头包括适用于从属切片分段的语法元素的若干值,并且从属切片分段的其他语法元素的值根据按照解码顺序在前面的独立切片分段的值来推断。

如本文中使用的,取决于上下文,术语“块”可以指示宏块、残差数据单元、CTB、CB、PB或TB、或者某个其他采样值集合。取决于上下文,术语“单元”可以指示宏块、CTU、CU、PU、TU或某个其他块集合,或者它可以指示单个块。亮度块(例如,亮度CTB、亮度CB或亮度PB)是YUV颜色空间的主分量块的示例。然而,标签“亮度块”有时用于指示甚至另一颜色空间(诸如RGB颜色空间、BGR颜色空间或GBR颜色空间)的主分量块。类似地,色度块(例如,色度CTB、色度CB或色度PB)是YUV颜色空间的次分量块的示例。然而,标签“色度块”有时用于指示甚至另一颜色空间(诸如RGB颜色空间、BGR颜色空间或GBR颜色空间)的次分量块。

返回图3,编码器根据来自图片(331)中的其他先前重构的采样值的预测,来表示源图片(331)的图内编码块。对于图内BC预测,图片内估计器估计从当前块到图片中的其他先前重构的采样值中的位置的位移。参考块是图片中用于生成当前块的预测值的采样值块。参考块可以用块向量(“BV”)值(在BV估计中确定)来指示。取决于实现,编码器可以使用输入采样值或重构采样值(同一图片中的先前编码的采样值)来执行块的BV估计。当图内BC预测模式下的合并的色度块(或其他合并的次分量块)的特殊情况处理被启用时,在一些实现中,图片内估计器可以确定符合对参考区域的位置的约束的图内BC预测中的BV值,如下所述。

对于块的图内空间预测,图片内估计器估计相邻的重构采样值到该块中的推测。

图片内估计器可以输出被熵编码的预测信息(诸如,用于图内BC预测的BV值或者用于图内空间预测的预测模式(方向))。图片内预测预测器应用预测信息来确定图内预测值。当图内BC预测模式下的合并的色度块的特殊情况处理被启用时,在一些实现中,图片内预测预测器可以剪切某些BV值,执行采样值填充,或者根据优先级顺序从候选BV值中进行选择,如下所述。

对于调色板(palette)编码模式,编码器(340)使用调色板来表示CU或其他单元的至少一些采样值。调色板表示在单元中使用的颜色。例如,调色板将索引值0、1、2、......、p映射到相应的颜色。在单元的编码期间,适当的索引值替换单元中的位置处的采样值。单元中的稀有值可以使用转义代码(escape code)值和文字值来编码,而不是使用调色板中的索引值来编码。调色板可以随着单元的不同而变化,并且指定调色板的信息可以在比特流中被发信号通知。

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

编码器可以确定块的预测值(图内或图间)与相应的原始值之间的差异(如果有的话)。这些预测残差值进一步使用频率变换(如果不跳过频率变换的话)、量化和熵编码被编码。例如,编码器(340)设置图片、图块、切片和/或视频的其他部分的量化参数(“QP”)的值,并且相应地量化变换系数。编码器(340)的熵编码器压缩量化后的变换系数值以及某些辅助信息(例如,MV信息、BV信息、QP值、模式决策、参数选择)。典型的熵编码技术包括指数-Golomb编码、Golomb-Rice编码、算术编码、差分编码、霍夫曼编码、游程长度编码、可变长度到可变长度(“V2V”)编码、可变长度到固定长度(“V2F”)编码、Lempel-Ziv(“LZ”)编码、字典编码、概率间隔分割熵编码(“PIPE”)、以及上述的组合。熵编码器可以对于不同种类的信息使用不同的编码技术,可以组合应用多种技术(例如,通过应用Golomb-Rice编码,然后进行算术编码),并且可以在特定编码技术中从多个编码表中进行选择。在一些实现中,可以跳过频率变换。在这种情况下,预测残差值可以被量化和熵编码。当使用调色板编码模式时,熵编码器可以对调色板数据进行编码。

自适应去块(deblocking)滤波器被包括在编码器(340)中的运动补偿环路(即,“环路内”滤波)内,以平滑解码图片中跨越块边界行和/或列的不连续性。替代地或另外地,可以应用其他滤波(诸如去振铃(deringing)滤波、自适应环路滤波(“ALF”)、或采样自适应偏移(“SAO”)滤波;未示出)作为环路内滤波操作。

由编码器(340)产生的编码数据包括各种比特流语法层的语法元素。对于符合H.265/HEVC标准的语法,例如,图片参数集合(“PPS”)是包含可以与图片相关联的语法元素的语法结构。PPS可以用于单个图片,或者PPS可以按顺序重复用于多个图片。PPS通常与图片的编码数据(例如,用于PPS的一个NAL单元、以及用于图片的编码数据的一个或多个其他NAL单元)分开地被发信号通知。在图片的编码数据中,语法元素指示要使用哪个PPS用于图片。类似地,对于符合H.265/HEVC标准的语法,序列参数集合(“SPS”)是包含可以与图片序列相关联的语法元素的语法结构。比特流可以包括单个SPS或多个SPS。SPS通常与序列的其他数据分开地被发信号通知,并且其他数据中的语法元素指示要使用哪个SPS。

编码图片(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)将新解码的图片(351)存储在已经以这种方式标识的图片缓冲区(361、362等)中。

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

来自临时编码数据区域(370)的聚合数据(371)由信道编码器(380)来处理。信道编码器(380)可以封包化(packetize)和/或复用聚合数据用于作为媒体流来传输或存储(例如,根据媒体节目流或传输流格式(诸如ITU-T H.222.0|ISO/IEC 13818-1)、或者互联网实时传输协议格式(诸如IETF RFC 3550)),在这种情况下,信道编码器(380)可以添加语法元素作为媒体传输流的语法的一部分。或者,信道编码器(380)可以组织聚合数据用于作为文件来存储(例如,根据媒体容器格式,诸如ISO/IEC 14496-12),在这种情况下,信道编码器(380)可以添加语法元素作为媒体存储文件的语法的一部分。或者,更一般地,信道编码器(380)可以实现一个或多个媒体系统复用协议或传输协议,在这种情况下,信道编码器(380)可以添加语法元素作为协议的语法的一部分。信道编码器(380)向信道(390)提供输出,信道(390)表示存储、通信连接、或用于输出的另一信道。信道编码器(380)或信道(390)还可以包括例如用于前向纠错(“FEC”)编码和模拟信号调制的其他元件(未示出)。

IV.示例解码器系统

图4是可以与其结合来实现所描述的一些实施例的示例解码器系统(400)的框图。解码器系统(400)可以是能够以多种解码模式(诸如用于实时通信的低延迟解码模式和用于来自文件或流的媒体重放的较高延迟解码模式)中的任何一种来操作的通用解码工具,或者它可以是适用于一种这样的解码模式的专用解码工具。解码器系统(400)可以被实现为操作系统模块的一部分、应用库的一部分、独立应用的一部分,或者使用专用硬件来实现。总之,解码器系统(400)从信道(410)接收编码数据,并且产生重构图片作为用于输出目的地(490)的输出。接收到的编码数据可以包括使用图内BC预测模式下的合并的色度块(或其他合并的次分量块)的特殊情况处理被编码的内容。

解码器系统(400)包括信道(410),信道(410)可以表示存储装置、通信连接或用于作为输入的编码数据的另一信道。信道(410)产生已经被信道编码的编码数据。信道解码器(420)可以处理编码数据。例如,信道解码器(420)对已经被聚合用于作为媒体流来传输或存储的数据进行去封包化和/或解复用(例如,根据媒体节目流或传输流格式(诸如ITU-TH.222.0|ISO/IEC 13818-1)、或者互联网实时传输协议格式(诸如IETF RFC 3550)),在这种情况下,信道解码器(420)可以解析作为媒体传输流的语法的一部分被添加的语法元素。或者,信道解码器(420)分离已经被聚合用于作为文件来存储的编码视频数据(例如,根据媒体容器格式,诸如ISO/IEC 14496-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)包括执行解码任务(诸如熵解码、图片内预测、运动补偿图片间预测、逆量化、逆频率变换(如果不跳过)、和图块的合并)的多个解码模块。由解码器(450)执行的具体操作可以根据压缩格式而变化。

例如,解码器(450)接收压缩图片或图片序列的编码数据,并且产生包括解码图片(451)的输出。在解码器(450)中,缓冲区接收压缩图片的编码数据,并且在适当的时间使接收的编码数据对于熵解码器可用。熵解码器对熵编码的量化数据以及熵编码的辅助信息进行熵解码,通常应用在编码器中执行的熵编码的逆过程。当使用调色板解码模式时,熵解码器可以对调色板数据进行解码。

运动补偿器将运动信息应用于一个或多个参考图片,以形成正在被重构的图片的任何图间编码块的运动补偿预测值。图片内预测模块可以根据相邻的先前重构的采样值来在空间上预测当前块的采样值。或者,对于图内BC预测,图片内预测模块可以使用图片中的参考块的先前重构的采样值(用BV值来表示)来预测当前块的采样值。当图内BC预测模式下的合并的色度块(或其他合并的次分量块)的特殊情况处理被启用时,在一些实现中,BV值与对参考区域的位置的约束一致,如下所述。在其他实现中,当图内BC预测模式下的合并的色度块(或其他合并的次分量块)的特殊情况处理被启用时,图片内预测模块可以剪切某些BV值、执行采样值填充、或者根据优先级顺序来在候选BV值中进行选择,如下所述。

解码器(450)还重构预测残差值。逆量化器对熵解码数据进行逆量化。例如,解码器(450)基于比特流中的语法元素来设置图片、图块、切片和/或视频的其他部分的QP的值,并且相应地对变换系数进行逆量化。逆频率变换器将量化后的频域数据变换成空间域数据。在一些实现中,可以跳过频率变换,在这种情况下,也跳过逆频率变换。如果是,则可以对预测残差值进行熵解码和逆量化。对于图片间预测块,解码器(450)将重构的预测残差值与运动补偿预测值组合。解码器(450)可以类似地将预测残差值与来自图片内预测的预测值组合。

对于调色板解码模式,解码器(450)使用表示CU或其他单元的至少一些采样值的调色板。调色板将索引值映射到相应的颜色。在解码期间,对于单元中的位置,来自调色板的索引值被替换为适当的采样值。单元中的转义编码值可以使用转义代码值和文字值来解码。调色板可以随着单元的不同而变化,并且指定调色板的信息可以在比特流中被发信号通知。

自适应去块滤波器被包括在视频解码器(450)中的运动补偿环路内,以平滑解码图片(451)中跨越块边界行和/或列的不连续性。替代地或另外地,可以使用其他滤波(诸如去振铃滤波、ALF或SAO滤波;未示出)作为环路滤波操作。

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

输出定序器(sequencer)(480)标识要以输出顺序产生的下一图片何时在解码图片存储区域(460)中可用。当要以输出顺序产生的下一图片(481)在解码图片存储区域(460)中可用时,其被输出定序器(480)读取并且被输出到输出目的地(490)(例如,显示器)。通常,输出定序器(480)从解码图片存储区域(460)输出图片的顺序可以不同于解码器(450)对图片进行解码的顺序。

V.示例视频编码器

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

编码器(500)是基于块的,并且使用取决于实现的块格式。块可以在不同的阶段被进一步细分,例如,在预测、频率变换和/或熵编码阶段。例如,图片可以被分为64×64块、32×32块或16×16块,其又可以被依次划分为较小的采样值块用于编码和解码。在H.265/HEVC标准的编码实现中,编码器将图片分为CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。

编码器(500)使用图片内编码和/或图片间编码来压缩图片。编码器(500)的很多部件用于图片内编码和图片间编码二者。这些部件执行的具体操作可能根据正在被压缩的信息类型而有所不同。

分块(tiling)模块(510)可选地将图片分为相同尺寸或不同尺寸的多个图块。例如,分块模块(510)沿着图块行和图块列来分割图片,这些图块行和图块列与图片边界一同限定图片内的图块的水平和垂直边界,其中每个图块是矩形区域。在H.265/HEVC实现中,编码器(500)将图片分为一个或多个切片,其中每个切片包括一个或多个切片分段。

通用编码控件(520)从编码器(500)的各个模块接收输入视频信号(505)的图片以及反馈(未示出)。总之,通用编码控件(520)向其他模块(诸如分块模块(510)、变换器/缩放器/量化器(530)、缩放器/逆变换器(535)、图片内估计器(540)、运动估计器(550)和图内/图间切换)提供控制信号(未示出),以在编码期间设置和改变编码参数。具体地,通用编码控件(520)可以决定在编码期间是否以及如何使用图内BC预测。通用编码控件(520)还可以在编码期间评估中间结果,例如,执行率失真(rate-distortion)分析。通用编码控件(520)产生指示在编码期间做出的决策的通用控制数据(522),使得相应的解码器可以做出一致的决策。通用控制数据(522)被提供给报头格式化器/熵编码器(590)。

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

运动补偿器(555)向来自解码图片缓冲区(570)的重构的参考图片应用MV。运动补偿器(555)产生当前图片的运动补偿预测。

在编码器(500)内的单独的路径中,图片内估计器(540)确定如何执行输入视频信号(505)的当前图片的采样值块的图片内预测。当前图片可以使用图片内编码被全部或部分编码。使用当前图片的重构(538)的值,对于图内空间预测,图片内估计器(540)确定如何根据当前图片的相邻的先前重构的采样值来在空间上预测当前图片的当前块的采样值。

或者,对于图内BC预测,图片内估计器(540)估计从当前块到另一先前重构的采样值中的位置的位移。图片中的参考采样值块用于生成当前块的预测值。例如,对于图内BC预测,图片内估计器(540)估计从当前块到参考块的位移,其可以用BV值来表示。当图内BC预测模式下的合并的色度块的特殊情况处理被启用时,在一些实现中,图片内估计器(540)可以确定符合对参考区域的位置约束的图内BC预测中的BV值,如下所述。

取决于实现,图片内估计器(540)可以使用输入采样值、在环路内滤波之前的重构采样值、或者在环路内滤波之后的重构采样值,执行当前块的BV估计。通常,通过使用BV估计的输入采样值或未滤波的重构采样值,图片内估计器(540)可以避免顺序处理瓶颈(其可能是由于在BV估计/图内BC预测之前对参考块的重构采样值进行滤波而产生的)。另一方面,存储未滤波的重构采样值使用附加存储器。此外,如果在BV估计之前应用环路内滤波,则可能存在在当前块被解码之后将被应用的滤波处理与被用于BV估计/图内BC预测的区域之间重叠的影响区域。在这种情况下,将在滤波操作的该方面之前应用BV估计/图内BC预测。在一些实现中,编码器可以在BV估计/图内BC预测之前应用一些环路内滤波操作,并且在随后的处理阶段中执行附加的或替代的滤波。

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

根据图内预测数据(542),图片内预测器(545)根据当前图片的相邻的先前重构的采样值来在空间上预测当前图片的当前块的采样值。或者,对于图内BC预测,图片内预测器(545)使用参考块的先前重构的采样值来预测当前块的采样值,其用当前块的位移(BV值)来表示。在一些情况下,BV值可以是预测值。在其他情况下,BV值可以与其预测值不同,在这种情况下,差分值表示预测值与BV值之间的差值。当图内BC预测模式下的合并的色度块(或其他合并的次分量块)的特殊情况处理被启用时,在一些实现中,图片内预测器(545)可以剪切某些BV值、执行采样值填充、或者根据优先级顺序来在候选BV值中进行选择,如下所述。

对于调色板编码模式,编码器(500)使用调色板来表示CU或其他单元的至少一些采样值。调色板表示在单元中使用的颜色。例如,调色板将索引值0、1、2、......、p映射到相应的颜色,其可以是RGB 4:4:4格式、BGR 4:4:4格式、GBR 4:4:4格式、YUV 4:4:4格式或其他格式(颜色空间、颜色采样率)。索引值可以表示像素的RGB三元组、BGR三元组或GBR三元组,其中像素是具有共同位置的采样值集合。对于单元的编码,索引值替换单元中像素的采样值。单元中的稀有值可以使用转义代码值和文字值来编码,而不是使用调色板中的索引值来编码。调色板可以随着单元的不同而变化,并且指定调色板的信息可以在比特流中被发信号通知。

图内/图间切换选择给定块的预测(558)是运动补偿预测还是图片内预测。

在一些示例实现中,对于以调色板编码模式或图内BC预测模式被编码的单元,不计算残差。作为代替,跳过残差编码,并且将预测的采样值用作重构采样值。

当不跳过残差编码时,预测块(558)与输入视频信号(505)的原始的当前图片的相应部分之间的差(如果有的话)提供残差(518)的值。在当前图片的重构期间,当残差值已经被编码/发信号通知时,将重构的残差值与预测(558)组合以产生来自视频信号(505)的原始内容的近似或精确重构(538)(在有损压缩中,一些信息从视频信号中丢失(505))。

作为残差编码的一部分,在变换器/缩放器/量化器(530)中,当不跳过频率变换时,频率变换器将空间域视频信息变换为频域(即,频谱、变换)数据。对于基于块的视频编码,频率变换器将离散余弦变换(“DCT”)、其整数近似、或另一类型的前向块变换(例如,离散正弦变换或其整数近似)应用于预测残差数据块(如果预测(558)为零,则为采样值数据),以产生频率变换系数块。变换器/缩放器/量化器(530)可以应用具有可变块尺寸的变换。在这种情况下,变换器/缩放器/量化器(530)可以确定要使用哪些变换块尺寸用于当前块的残差值。缩放器/量化器对变换系数进行缩放和量化。例如,量化器以逐图片、逐图块、逐切片、逐块、按照特定于频率的规则或按照其他规则变化的量化步长来对频域数据应用死区标量量化。量化后的变换系数数据(532)被提供给报头格式化器/熵编码器(590)。如果频率变换被跳过,则缩放器/量化器可以对预测残差数据块进行缩放和量化(或者如果预测(558)为零,则对采样值数据进行缩放和量化),以产生被提供给报头格式化器/熵编码器的量化值590)。

为了重构残差值,在缩放器/逆变换器(535)中,缩放器/逆量化器对量化后的变换系数执行逆缩放和逆量化。当变换阶段没有被跳过时,逆频率变换器进行逆频率变换,以产生重构的预测残差值或采样值的块。如果变换阶段已经被跳过,则也会跳过逆频率变换。在这种情况下,缩放器/逆量化器可以对预测残差数据(或采样值数据)的块执行逆缩放和逆量化,以产生重构值。当残差值已经被编码/发信号通知时,编码器(500)将重构的残差值与预测(558)的值(例如,运动补偿预测值、图片内预测值)组合以形成重构(538)。当残差值尚未被编码/发信号通知时,编码器(500)使用预测(558)的值作为重构(538)。

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

在合并器/滤波器(565)中,编码器(500)将来自不同图块的内容合并到图片的重构版本中。编码器(500)根据滤波器控制数据(562)和用于滤波器自适应的规则来选择性地执行去块滤波和SAO滤波,以便自适应地平滑跨越图片中的边界的不连续性。替代地或另外地,可以应用其他滤波(诸如去振铃滤波或ALF;未示出)。取决于编码器(500)的设置,可以对图块边界选择性地滤波或者完全不对其进行滤波,并且编码器(500)可以在编码比特流内提供用以指示是否应用了这种滤波的语法元素。解码图片缓冲区(570)缓存经重构的当前图片用于在随后的运动补偿预测中使用。

报头格式化器/熵编码器(590)对通用控制数据(522)、量化后的变换系数数据(532)、图内预测数据(542)、运动数据(552)和滤波器控制数据(562)进行格式化和/或熵编码。对于运动数据(552),报头格式化器/熵编码器(590)可以对合并模式索引值进行选择和熵编码,或者可以使用默认的MV预测值。在一些情况下,报头格式化器/熵编码器(590)还确定MV值的MV差分值(相对于MV值的MV预测值),然后例如使用上下文自适应二进制算术编码来对MV差分值进行熵编码。对于图内预测数据(542),可以使用预测来对BV值进行编码。预测可以使用默认预测值(例如,来自一个或多个相邻块的BV值)。当可能使用多个预测值时,预测值索引可以指示要使用多个预测值中的哪个用于BV值的预测。报头格式化器/熵编码器(590)可以对预测值索引值进行选择和熵编码(对于图内BC预测),或者可以使用默认预测值。在一些情况下,报头格式化器/熵编码器(590)还确定差分值(相对于BV值的预测值),然后例如使用上下文自适应二进制算术编码来对差分值进行熵编码。对于调色板编码模式,报头格式化器/熵编码器(590)可以对调色板数据进行编码。

报头格式化器/熵编码器(590)在编码视频比特流(595)中提供编码数据。编码视频比特流(595)的格式可以是H.265/HEVC格式、Windows Media视频格式、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 Media视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263、H.264)或其他格式的变型或扩展。

图片可以被组织为相同尺寸或不同尺寸的多个图块。图片也可以被组织为一个或多个切片。切片或图块的内容可以进一步被组织为块或其他采样值集合。解码器(600)基于块,并且使用取决于实现的块格式。块可以在不同的阶段被进一步细分。例如,图片可以被分为64×64块、32×32块或16×16块,其又可以依次被分割为较小的采样值块。在H.265/HEVC标准的解码实现中,图片被分为CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。

解码器(600)使用图片内解码和/或图片间解码来解压缩图片。解码器(600)的很多部件用于图片内解码和图片间解码二者。这些部件执行的具体操作可能根据正在被解压缩的信息类型而有所不同。

缓冲区接收编码视频比特流(605)中的编码数据,并且使接收到的编码数据可用于解析器/熵解码器(610)。解析器/熵解码器(610)对熵编码数据进行熵解码,通常应用在编码器(500)中执行的熵编码的逆过程(例如,上下文自适应二进制算术解码)。作为解析和熵解码的结果,解析器/熵解码器(610)产生通用控制数据(622)、量化后的变换系数数据(632)、图内预测数据(642)、运动数据(652)和滤波器控制数据662)。对于图内预测数据(642),如果预测变量索引值被发信号通知,则解析器/熵解码器(610)可以例如使用上下文自适应二进制算术解码来对预测变量索引值进行熵解码。在一些情况下,解析器/熵解码器(610)还对BV值的差分值进行熵解码(例如,使用上下文自适应二进制算术解码),然后将差分值与相应的预测变量组合以重构BV值。在其他情况下,从比特流中省略了差分值,并且BV值简单地是预测变量(例如,用预测变量索引值来指示)。对于调色板解码模式,解析器/熵解码器(610)可以对调色板数据进行解码。

通用解码控件(620)接收通用控制数据(622),并且向其他模块(诸如缩放器/逆变换器(635)、图片内预测器(645)、运动补偿器(655)和图内/图间切换)提供控制信号(未示出),以在解码期间设置和改变解码参数。

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

在解码器(600)内的单独的路径中,图片内预测器(645)接收图内预测数据(642),诸如指示图片内预测是使用空间预测还是图内BC预测的信息、以及预测模式方向(对于图内空间预测)或BV值(对于图内BC预测)。对于图内空间预测,使用当前图片的重构(638)的值,根据预测模式数据,图片内预测器(645)根据当前图片的相邻的先前重构的采样值来在空间上预测当前图片的当前块的采样值。或者,对于图内BC预测,图片内预测器(645)使用参考块的先前重构的采样值来预测当前块的采样值,其用当前块的位移(BV值)来表示。在一些情况下,BV值可以是预测值。在其他情况下,BV值可以与其预测值不同,在这种情况下,使用差分值和预测值来重构BV值。当图内BC预测模式下的合并的色度块(或其他合并的次分量块)的特殊情况处理被启用时,在一些实现中,BV值符合对参考区域的位置约束,如下所述。在其他实现中,当图内BC预测模式下的合并的色度块(或其他合并的次分量块)的特殊情况处理被启用时,图片内预测器(645)可以剪切某些BV值、执行采样值填充、或者根据优先级顺序来在候选BV值中进行选择,如下所述。

对于调色板解码模式,解码器(600)使用表示CU或其他单元的至少一些采样值的调色板。调色板将索引值映射到在单元中使用的相应颜色。例如,调色板将索引值0、1、2、......、p映射到相应的颜色,其可以是RGB 4:4:4格式、BGR 4:4:4格式、GBR 4:4:4格式、YUV 4:4:4格式或其他格式(颜色空间、颜色采样率)。索引值可以表示像素的RGB三元组、BGR三元组或GBR三元组。在解码期间,对于单元中的位置,来自调色板的索引值被替换为适当的采样值。单元中的转义编码值可以使用转义代码值和文字值来解码。基于在比特流中发信号通知的调色板数据,调色板可以随着单元的不同而变化。

图内/图间切换选择运动补偿预测或图片内预测的值以用作给定块的预测(658)。例如,当遵循H.265/HEVC语法时,可以基于被编码用于可以包含图内预测的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滤波或其他滤波。在运动补偿环路中对图片的重构采样值执行“环路内”滤波,因此“环路内”滤波影响参考图片的采样值,后处理滤波器(608)被应用于运动补偿环路外部的重构采样值,随后输出用于显示。

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

VII.图内BC预测中的合并的色度块的特殊情况处理

本部分呈现了在图内块拷贝(“BC”)预测模式下的合并的色度块(或其他合并的次分量块)的特殊情况处理的示例。

在不失一般性的情况下,很多以下的实施例使用术语“亮度”和“色度”,而不是更加通用的术语“主分量”和“次分量”。这将描述重点放在YUV格式的常见示例,但是相同的方法可以应用于其他类型的主分量和次分量。

A.图内BC预测——介绍

通常,图内BC预测模式使用图片内预测,在图片内预测中,使用同一图片中的采样值来预测图片的当前块的采样值。块向量(“BV”)值指示从当前块到包括用于预测的采样值的图片的块(“参考块”)的位移。参考块提供当前块的预测值。用于预测的采样值是先前重构的采样值,其因此在编码期间在编码器处和在解码期间在解码器处可获得。BV值在比特流中被发信号通知,并且解码器可以使用BV值来确定要用于预测的图片的参考块。

图7示出了当前图片(710)的当前块(730)的图内BC预测的示例(700)。当前块可以是编码单元(“CU”)的编码块(“CB”)、预测单元(“PU”)的预测块(“PB”)、变换单元(“TU”)的变换块(“TB”)或其他块。当前块的尺寸可以是64×64、32×32、16×16、8×8或某个其他尺寸。为了图内BC预测的目的,块可以被对称地或不对称地分为更小的块。更一般地,当前块的尺寸是m×n,其中m和n中的每个是整数,并且其中m和n可以彼此相等或者可以具有不同的值。因此,当前块可以是正方形或矩形。可替代地,当前块可以具有其他形状。

BV值(740)指示从当前块(730)到包括用于预测的采样值的图片的参考块(750)的位移(或偏移)。参考块(750)可以与当前块(730)相同,或者它可以是当前块(730)的近似。假设当前块的左上位置在当前图片中的位置(x0,y0)处,并且假设参考块的左上位置在当前图片中的位置(x1,y1)处。BV值表示位移(x1-x0,y1-y0)。例如,如果当前块的左上位置在位置(256,128)处,并且参考块的左上位置在位置(126,104)处,则BV值为(-130,-24)。在该示例中,负的水平位移指示在当前块的左侧的位置,并且负的垂直位移指示在当前块上方的位置。

图内BC预测可以通过使用BC操作利用冗余(诸如图片内部的重复模式)来提高编码效率。但是,考虑到编码器可以评估的候选参考块的数目,找到当前块的匹配参考块可能是计算复杂且耗时的。图8示出了示例(800),其示出了当前图片(810)的当前块(830)的一些候选参考块。四个BV值(841、842、843、844)指示四个候选参考块的位移。在一些示例实现中,当波前并行处理(“WPP”)未被启用时,候选参考块可以在当前图片(810)的重构内容内的任何地方。(块通常从左到右然后从上到下被编码。)当WPP被启用(或者在其他示例实现中,对于所有图内BC预测)时,对候选参考块的位置适用附加约束。候选参考块可以与其他候选参考块交叠,如由BV值(843、844)指示的候选参考块所示。

通常,具有图内BC预测的预测模式的块可以是CB、PB或其他块。当块是CB时,块的BV可以在CU级别被发信号通知(并且CU中的其他CB使用相同的BV或其缩放版本)。或者,当块为PB时,块的BV可以在PU级别被发信号通知(并且PU中的其他PB使用相同的BV或其缩放版本)。更一般地,用于图内BC预测块的BV在块的适当语法级别被发信号通知。

图内BC预测模式的预测操作可以在CB(当每个CU或其一部分来发信号通知BV值时)或PB(当每个PU或其一部分来发信号通知BV值时)级别来应用。在这种情况下,参考区域被约束为不与当前区域或包括当前区域的块交叠。可替代地,预测操作可以应用于PB或CB中的较小部分,即使当BV值被发信号用于PU或CU(或其一部分)时。例如,对于块的第一部分,参考区域包括在块外部的位置。然而,对于块的第二部分,在预测操作中使用的参考区域可以包括在同一块的先前重构的第一部分中的位置。以这种方式,BV值可以引用同一PB或CB中的位置。允许将图内BC预测操作应用于PB或CB内的部分有助于使用具有相对较小幅度的BV值。

B.一般地,对BV值的约束的示例

在一些示例实现中,参考块被限制在与当前块相同的切片和图块内。这样的图内BC预测不使用其他切片或图块中的采样值。参考块的位置可能受到一个或多个其他限制。本节详细说明编码器可以对图内BC预测执行的约束的示例。通常,对于当前块,约束验证由BV值指示的候选参考块包括在当前块被编码或解码时将可用的重构采样值。(图内BC预测中的合并的色度块的约束的变型在第VII.E节中呈现。)由编码器对允许的BV值执行的约束可以替代地根据关于BV值的比特流一致性要求来表示。

定义。当前块相对于当前图片的左上位置开始于位置(x0,y0)。当前块的宽度和高度分别为wblock和hblock。当前块是当前CU的一部分(例如,当前块是PB)。CTU尺寸为S。当前CU相对于图片的左上位置开始于(xCU,yCU)。块向量(在亮度块的图内BC预测中使用)为(BVx,BVy)。

编码器验证所有以下约束是否满足。

第一约束。具体地,编码器验证位置(x0,y0)和位置(x0+BVx,y0+BVy)是否在相同的切片中(如果适用),以及是否在相同的图块中(如果适用)。也就是说,编码器验证当前块的左上位置和参考块的左上位置在相同的切片中并且在相同的图块中。如果两个位置在不同的切片或不同的图块中,则第一约束不满足。

第二约束。编码器验证位置(x0,y0)和位置(x0+BVx+wblock-1,y0+BVy+hblock-1)是否在相同的切片中(如果适用),以及是否在相同的图块中(如果适用)。也就是说,编码器验证当前块的左上位置和参考块的右下位置是否在相同的切片中以及在相同的图块中。如果两个位置在不同的切片或不同的图块中,则第二约束不满足。

对于第一和第二约束,如果不使用多个切片切片,则被检查的两个位置必须在相同的切片中,并且切片的第一和第二约束不需要被检查,尽管参考块仍被约束在内当前图片内。类似地,如果不使用多个图块,则被检查的两个位置必须在相同的图块中,并且图块的第一和第二约束不需要检查,尽管参考块仍然被约束在当前图片内。当前块的所有位置都在单个切片和单个图块中。如果第一和第二约束满足,则参考块的所有位置也在该切片和图块中。

第三约束。对于第三约束,编码器验证以下三个条件之一满足。

第三约束的第一条件。编码器检查是否(y0+BVy+hblock-1)/S<y0/S。也就是说,编码器计算包括参考块的底部边缘的CTU行:(y0+BVy+hblock-1)/S。编码器还计算包括当前块的顶部边缘的CTU行:y0/S。然后,编码器随后检查包括参考块的底部边缘的CTU行是否在包括当前块的顶部边缘的CTU行之上。如果是,则参考块必然包括先前重构的采样值,至少当WPP未被启用时。

第三约束的第二条件。当(y0+BVy+hblock-1)/S==y0/S时,编码器检查是否(x0+BVx+wblock-1)/S<x0/S。也即,如果包括参考块的底部边缘的CTU行等于包括当前块的顶部边缘的CTU行(相同的CTU行),则编码器计算(a)包括参考块右侧边缘的CTU列((x0+BVx+wblock-1)/S),以及(b)包括当前块的左侧边缘的CTU列(x0/S)。然后,编码器检查包括参考块的右侧边缘的CTU列是否在包括当前块的左侧边缘的CTU列的左侧。如果是,则参考块必然包括先前重构的采样值。

第三约束的第三条件。当(y0+BVy+hblock-1)/S==y0/S并且(x0+BVx+wblock-1)/S==x0/S时,编码器检查位置(x0+BVx+wblock-1,y0+BVy+hblock-1)的z扫描顺序是否小于位置(x0,y0)的z扫描顺序。也就是说,如果包括参考块的底部边缘的CTU行等于包括当前块的顶部边缘的CTU行(相同的CTU行),并且如果包括参考块的右侧边缘的CTU列等于包括当前块的左侧边缘的CTU列(相同的CTU列),则编码器检查参考块的右下位置在z扫描顺序方面是否早于当前块的左上位置。如果是,则包含参考块的右下位置的块已经被预先重构(并且因此具有参考块的其余部分)。如果允许来自当前CU内的预测,则第三条件适用。编码器还可以检查偏移值是否满足条件BVx+wblock≤0和BVy+hblock≤0中的至少一个,以确保参考区域不与当前区域交叠。如果不允许来自当前CU内的预测,(x0,y0)应当为(xCU,yCU)。

通常,z扫描顺序遵循划分图片的单元的顺序地规定的顺序。图9示出了当前块(930)的示例z扫描顺序(900)和可能包括参考块的右下位置的单元。z扫描顺序通常被分配给一行中的按顺序从左到右的单元中,从上到下在依次的行中重复。当单元被拆分时,z扫描顺序在在分割单元内被递归地分配。对于H.265/HEVC标准的编码/解码的实现,z扫描顺序沿着CTU光栅扫描模式(在CTU行中从左到右,从上到下在依次的CTU行中重复)逐CTU进行。如果CTU被分割,则z扫描顺序遵循分割CTU内的四叉树的CU的光栅扫描模式。而且,如果CU被分割(例如,分为多个CU或多个PU),则z扫描顺序对于分割CU内的块遵循光栅扫描模式。

第四约束。在一些示例实现中,当WPP被启用时,编码器检查第四约束。在其他示例实现中,编码器检查第四约束,而不管WPP是否被启用。对于第四约束,编码器验证(x0+BVx+wblock-1)/S-x0/S<=y0/S-(y0+BVy+hblock-1)/S。也就是说,编码器计算包括参考块的右侧边缘的CTU列与包括当前块的左侧边缘的CTU列之间的差值:(x0+BVx+wblock-1)/S-x0/S。编码器还计算包括当前块的顶部边缘的CTU行与包括参考块的底部边缘的CTU行之间的差值:y0/S-(y0+BVy+hblock-1)/S。编码器验证第一差值(在CTU列之间)小于或等于第二差值(在CTU行之间)。更一般地,从参考块到当前块的水平位移值被限制为小于或等于从当前块到参考块的垂直位移值。这验证了参考块是要被保证在WPP被启用时可用于预测的重构内容的一部分,其是最经常产生良好BV值的重构内容的一部分。

C.色度块的BV值的缩放

在一些示例实现中,BV值被发信号通知用于CU、PU或其他单元,并且被应用于单元的所有块。取决于颜色空间和颜色采样率,BV值可以用于所有块而不进行缩放,或者其也可以对于不同颜色分量中的块被缩放。例如,如果图片的格式为YUV 4:2:0,则BV值水平地缩放两倍,并且垂直地缩放两倍。或者,如果图片的格式为YUV 4:2:2,则BV值水平地缩放两倍。另一方面,如果图片的格式为YUV 4:4:4、RGB 4:4:4、BGR 4:4:4或GBR 4:4:4,则在主分量块的图内BC预测中使用的BV值当在次分量块的图内BC预测中使用之前不被缩放。

为了确定色度块(或其他次分量块)的图内BC预测的缩放后的BV值,可以使用各种方法中的任一种来为单元缩放BV值。假设在亮度块的图内BC预测中使用的BV值为(YBVx,YBVy),其对应于前述小节中的BV值(BVx,BVy)。在色度块的图内BC预测中使用的BV值为(CBVx,CBVy)。BV(CBVx,CBVy)可以如下来确定:

CBVx=YBVx>>(SubWidthC-1),以及

CBVy=YBVy>>(SubHeightC-1),以及

其中>>n表示n位的右移位操作,SubWidthC和SubHeightC的值取决于色度采样格式,如下表所示。

当SubWidthC或SubHeightC为1时,色度BV分量值等于亮度BV分量值。当SubWidthC或SubHeightC为2时,有若干替代选项用于从相应的亮度BV分量值中导出色度BV分量值,如下表所示。在该表中,>>n表示右移位n位,并向下舍入,“/”表示舍入为零的除法。函数sign(m)返回m的符号(正或负)。函数abs(m)返回m的绝对值。

可替代地,色度BV分量值以某种其他方式从相应的亮度BV分量值来导出。

D.图内BC预测模式下的合并的色度块

在图内BC预测的一些示例实现中,CU的每个PU可以具有其自己的BV值,对PB执行图内BC预测,并且执行图内BC预测的最小块尺寸为4×4。当图片的格式为YUV 4:2:0时,如果CU的尺寸为8×8,则色度PB可以小于4×4。如果CU具有单个PU(2N×2N模式),则亮度PB具有8×8的尺寸,并且两个相应的色度PB(分别用于U和V分量)每个具有4×4的尺寸。另一方面,如果CU具有多个PU(2N×N模式、N×2N模式或N×N模式),则色度PB小于4×4。对于2N×N模式,8×8的CU有两个8×4的PU。每个8×4的PU具有8×4亮度PB,用于U分量的4×2色度PB和用于V分量的4×2色度PB。对于N×2N模式,8×8的CU具有两个4×8的PU。每个4×8的PU具有4×8亮度PB,用于U分量的2×4色度PB和用于V分量的2×4色度PB。对于N×N模式,8×8的CU有四个4×4的PU。每个4×4的PU具有4×4亮度PB,用于U分量的2×2色度PB和用于V分量的2×2色度PB。

类似地,当图片的格式为YUV 4:2:2时,如果CU的尺寸为8×8,则色度PB可以小于4×4。如果CU具有单个PU(2N×2N模式),则亮度PB具有8×8的尺寸,并且两个相应的色度PB(分别用于U和V分量)分别具有4×8的尺寸。对于2N×N模式,8×8的CU具有两个8×4的PU。每个8×4的PU具有8×4亮度PB,用于U分量的4×4色度PB和用于V分量的4×4色度PB。对于N×2N模式,8×8的CU具有两个4×8的PU。每个4×8的PU具有4×8亮度PB,用于U分量的2×8色度PB和用于V分量的2×8色度PB。对于N×N模式,8×8的CU具有四个4×4的PU。每个4×4的PU具有4×4亮度PB,用于U部件的2×4色度PB和用于V部件的2×4色度PB。

因此,亮度PB的尺寸总是至少为4×4。然而,如上所述,存在色度PB小于4×4的几种情况。为了处理小色度PB的这种情况,CU的相邻色度PB使用较大的块的单个BV值被合并成用于图内BC预测的较大的块。也就是说,用于U分量的相邻的色度PB被合并成用于图内BC预测的较大的块,并且用于V分量的相邻的色度PB被合并成用于图内BC预测的较大的块。较大的块(包括合并的小的色度PB)的单个BV值可以从相应的亮度PB的BV值来导出。具体地,相应的亮度PB之一(例如,相应的亮度PB中的最底部、最右侧的亮度PB)的BV值可以被选择用于在图内BC预测时使用,根据格式被缩放,并且用于较大的块(包括合并的小的色度PB)的图内BC预测。

例如,考虑在YUV 4:2:0格式的图片中具有两个4×8的PU的8×8的CU。第一(左边)4×8的PU具有BV值(-18,-14),第二(右边)4×8的PU具有BV值(-26,-4)。对于图内BC预测,第一4×8亮度PB使用BV值(-18,-14),第二4×8亮度PB使用BV值(-26,-4)。由于相应的色度PB小于4×4,所以相邻的2×4色度PB被合并,用于使用所导出的BV值(-13,-2)来进行图内BC预测的目的。所导出的BV值是最底部、最右侧的亮度PB的BV值,其水平地和垂直地以因子2被缩放。U分量的左右2×4色度PB被合并成4×4色度块用于使用导出的BV值(-13,-2)的图内BC预测,并且V分量的左右2×4色度PB被合并成4×4色度块用于使用所导出的BV值(-13,-2)的图内BC预测。

在大多数情况下,将小的色度PB合并成用于图内BC预测的更大块的这种方法是有效的。然而,在某一些情况下,可能会导致在图片边界外部的采样值(其不可用)或在图块边界或切片边界外部的采样值(其可能不可用)。为了说明,图10a示出了YUV 4:2:0格式的图片(1010)的亮度分量的部分(1000),图10b示出了YUV 4:2:0格式的图片(1010)的色度分量(U分量或V分量)的部分(1001)。8×8的CU开始于相对于图片(1010)的左上角的位置(24,16),并且具有两个4×8的PU。对于亮度PB,如图10a所示,第一4×8块(1020)在(24,16)处具有左上位置,并且第二4×8块(1030)在(28,16)处具有左上位置。对于第一4×8块(1020),BV值(1040)表示到第一参考块(1050)的位移(-18,-14),该第一参考块包括在范围[(6,2),…,(9,9)]内的采样值。对于第二4×8块(1030),BV值(1060)表示到第二参考块(1070)的位移(-26,-4),该第二参考块包括在范围[(2,12),…,(5,19)]内的采样值。第一参考块(1050)和第二参考块(1070)的采样值完全在图片(1010)的图片边界(1011)内。

对于相应的色度PB(以因子2水平和垂直向下采样),如图10b所示,合并的4×4块(1031)包括在(12,8)处具有左上位置的相应的第一2×4块和在(14,8)处具有左上位置的相应的第二2×4块。对于合并的4×4块(1031),所导出的BV值(1061)基于第二4×8块(1030)的BV值(1060),其水平地和垂直地以因子2被缩放。所导出的BV值(1061)表示到参考块(1071)的位移(-13,-2),该参考块包括在范围[(-1,6),…,(2,9)]内的采样值。参考块(1071)包括未定义的在图片(1010)的图片边界(1011)外部的采样值。边界外部的采样值[(-1,6),…,(-1,9)]在编码或解码期间可能不可用,或者它们在编码或解码期间可能具有无效的或意外的值。

可替代地,代替对于合并块使用最底部最右侧亮度PB的BV值,可以以某种其他方式来导出合并块(包括合并的小色度PB)的单个BV值。例如,合并块的单个BV值使用最顶部、最左侧亮度PB的BV值来导出。或者,合并块的单个BV值使用最顶部、最右侧亮度PB的BV值来导出。或者,合并块的单个BV值使用最底部、最左侧亮度PB的BV值来导出。或者,合并块的单个BV值被导出作为相应的亮度PB的BV值的分量平均值。或者,合并块的单个BV值被导出作为相应的亮度PB的BV值的分量中值。或者,合并块的BV值使用相应的亮度PB的BV值中覆盖最大区域的BV值来导出(在覆盖最大区域的BV值的发生并列的情况下,使用在先的选项之一)。

在任何情况下,对于从相应的主分量块的BV值导出用于合并的次分量块的单个BV值的任何方式,可能存在单个BV值引用在图片边界外部的采样值的情况。以下部分描述用于处理图内BC预测模式下的合并的次分量块的边界外部的采样值的这种情况的各种方法。

E.通过对BV值施加附加约束来实现的特殊情况处理

当确定要在单元(例如,预测单元)的图内BC预测中使用的BV值时,编码器可以检查合并的色度块(或其他合并的次分量块)的所导出的BV值指示的参考块是否包括任何边界外部的采样值。如果是,则编码器不允许BV值导致使用所导出的BV值引用边界外部的采样值。也就是说,编码器可以评估给定的BV值是否导致对于所导出的BV值(基于给定的BV值)引用边界外部的采样值,并且如果是,则改变给定的BV值,以避免对于所导出的BV值引用任何边界外部的采样值。

为了说明,图11a示出了来自图10a的YUV 4:2:0格式的图片(1010)的亮度分量的部分(1000),图11b示出了来自图10b的YUV 4:2:0格式的图片(1010)的色度分量(U分量或V分量)的部分(1001)。在确定第二4×8块(1030)的BV值(1060)(图10a所示)导致所导出的BV值(1061)引用边界外部的采样值(图10b所示)之后,编码器确定用于第二4×8块(1030)的新的BV值(1160)(图11a所示)。新的BV值表示位移(-24,-4)。对于合并的4×4块(1031),新的所导出的BV值(1161)基于第二4×8块(1030)的新的BV值(1160),其水平地和垂直地以因子2被缩放。新的所导出的BV值(1161)表示到新的参考块(1171)的位移(-12,-2),新的参考块包括在范围[(0,6),…,(3,9)]内的采样值。新的参考块(1171)不再包括在图片(1010)的图片边界(1011)外部的任何采样值。

在合并的色度块(或其他合并的次分量块)的特殊情况处理的第一方法集合中,编码器选择性地对单元的BV值施加一个或多个附加约束,使得合并的色度块(或其他合并的次分量块)的所导出的BV值不引用在图片边界外部的任何采样值。当确定用于单元的BV值时,编码器决定该BV值是否要用于导出合并的色度块的BV值。该决定可以取决于图片格式(例如,YUV 4:2:0或YUV 4:2:2对YUV 4:4:4)、单元的次分量块的尺寸(例如,单元将具有或不具有小于色度块合并的门限尺寸的色度块)、和单元的位置(例如,单元是CU中的最后一个PU还是CU中的某个其他PU)。如果单元的BV值将用于导出合并的色度块的BV值,则编码器评估对BV值的一个或多个附加约束。否则,不评估附加约束。第一方法集合涉及编码器侧活动,但是可以根据对允许的BV值的比特流约束来解释。例如,在一些示例实现中,编码器对允许的BV值施加的约束被表示为关于BV值的比特流一致性要求。

通常,编码器考虑对于单元的允许的BV值的基本约束。第VII.E.1节呈现了在一些示例实现中的基本约束的示例,在确定CU的PU的BV值时,考虑将用于PU的亮度PB的图内BC预测的采样值(和YUV 4:4:4图片中的色度PB)。编码器考虑基本约束,而不管色度块是否被合并。

当色度块被合并时,编码器可以考虑对于单元的允许的BV值的附加约束。第VII.E.2和VII.E.3节呈现了在一些示例实现中的附加约束的示例,在确定YUV 4:2:0图片或YUV 4:2:2图片中的CU的PU的BV值时,考虑将用于包括PU的色度PB之一的合并的色度块的图内BC预测的采样值。一般来说,当给定的BV值不仅适用于当前PU,而且也适用于其他PU时,BV检查处理考虑用于包括当前PU和其他PU的整个区域的图内BC预测的采样值。例如,如果CU的第二PU的BV值也适用于CU的第一PU的色度块的图内BC预测,则当前区域是整个CU。因此,编码器检查对于整个CU都满足的适用的约束(例如,当前区域和参考区域是相同切片的一部分(如果适用),并且是相同的图块(如果适用);参考区域已经在时间上被重构用于图内BC预测;参考区域满足任何类似WPP的约束)。附加约束仅适用于一些PU,如图12a-12e所示。第VII.E.4节描述了替代BV导出规则的附加约束的变型。

1.图片的PU的基本约束的示例

如第VII.D节中所解释的,在图内BC预测的一些示例实现中,CU的每个PU可以具有其自己的BV值。假设当前PU相对于当前图片的左上位置开始于位置(xPU,yPU)。当前PU的宽度和高度分别为wPU和hPU。当前PU具有当前亮度PB,其与当前PU具有相同的位置和尺寸。当前PU是当前CU的一部分。当前CU的宽度和高度分别为wCU和hCU。CTU尺寸为S。当前CU相对于图片的左上位置开始于(xCU,yCU)。在当前亮度PB的图内BC预测中使用的BV是(BVx,BVy)。在第VII.B节中解释的约束下精确模拟的以下约束适用于当前PU的BV。

第一基本约束。编码器验证位置(xPU,yPU)和位置(xPU+BVx,yPU+BVy)是否在相同的切片中(如果适用),以及是否在相同的图块中(如果适用)。也就是说,编码器验证当前亮度PB的左上位置和参考块的左上位置是否在相同的切片中,以及是否在相同的图块中。如果两个位置在不同的切片或不同的图块中,则第一约束不满足。

第二基本约束。编码器验证位置(xPU,yPU)和位置(xPU+BVx+wPU-1,yPU+BVy+hPU-1)是否在相同的切片中(如果适用),以及是否在相同的图块中(如果适用)。也就是说,编码器验证当前亮度PB的左上位置和参考块的右下位置是否在相同的切片中,以及是否在相同的图块中。如果两个位置在不同的切片或不同的图块中,则第二约束不满足。

对于第一和第二约束,如果不使用多个切片,则被检查的两个位置必须在相同的切片中,并且不需要检查用于切片的第一和第二约束,尽管参考块仍然被约束为在当前图片内。类似地,如果不使用多个图块,则被检查的两个位置必须在相同的图块中,并且不需要检查用于图块的第一和第二约束,尽管参考块仍然被约束为在当前图片内。当前亮度PB的所有位置都在单个切片和单个图块中。如果第一和第二约束满足,则参考块的所有位置也在该切片和图块中。

第三基本约束。对于第三约束,编码器验证以下三个条件之一是否满足。

第三基本约束的第一条件。编码器检查是否(yPU+BVy+hPU-1)/S<yPU/S。也就是说,编码器计算包括参考块底部边缘的CTU行:(yPU+BVy+hPU-1)/S<yPU/S。编码器还计算包括当前亮度PB的顶部边缘的CTU行:yPU/S。然后,编码器检查包括参考块的底部边缘的CTU行是否在包括当前亮度PB的顶部边缘的CTU行上方。如果是,则参考块必然包括先前重构的采样值,至少当WPP未被启用时。

第三基本约束的第二条件。当(yPU+BVy+hPU-1)/S==yPU/S时,编码器检查是否(xPU+BVx+wPU-1)/S<xPU/S。也就是说,如果包括参考块的底部边缘的CTU行等于包括当前亮度PB的顶部边缘的CTU行(同一CTU行),则编码器计算(a)包括参考块的右侧边缘的CTU列((xPU+BVx+wPU-1)/S),以及(b)包括当前亮度PB的左侧边缘的CTU列(xPU/S)。然后,编码器检查包括参考块的右侧边缘的CTU列是否在包括当前亮度PB的左侧边缘的CTU列的左侧。如果是,则参考块必然包括先前重构的采样值。

第三基本约束的第三条件(如果允许来自当前CU内的预测)。如果允许来自当前CU内的预测,则第三条件适用。当(yPU+BVy+hPU-1)/S==yPU/S并且(xPU+BVx+wPU-1)/S==xPU/S时,编码器检查位置(xPU+BVx+wPU-1,yPU+BVy+hPU-1)的z扫描顺序是否小于位置(xPU,yPU)的z扫描顺序。也就是说,如果包括参考块的底部边缘的CTU行等于包括当前亮度PB的顶部边缘的CTU行(同一CTU行),并且如果包括参考块的右侧边缘的CTU列等于包括当前亮度PB的左侧边缘的CTU列(同一CTU列),则编码器检查参考块的右下位置在z扫描顺序方面是否早于当前亮度PB的左上位置。如果是,则包含参考块的右下位置的块已经被预先重构(并且参考块的其余部分也是如此)。编码器还可以检查偏移值是否满足条件BVx+wPU≤0以及BVy+hPU≤0中的至少一个,以确保参考区域不与当前区域交叠。

第四基本约束。在一些示例实现中,当WPP被启用时,编码器检查第四基本约束。在其他示例实现中,编码器检查第四基本约束,而不管WPP是否被启用。对于第四基本约束,编码器验证(xPU+BVx+wPU-1)/S-xPU/S<=yPU/S-(yPU+BVy+hPU-1)/S。也就是说,编码器计算包括参考块的右侧边缘的CTU列与包括当前亮度PB的左侧边缘的CTU列之间的差值:(xPU+BVx+wPU-1)/S-xPU/S。编码器还计算包括当前亮度PB的顶部边缘的CTU行与包括参考块的底部边缘的CTU行之间的差值:yPU/S-(yPU+BVy+hPU-1)/S。编码器验证第一差值(在CTU列之间)小于或等于第二差值(在CTU行之间)。更一般地,从参考块到当前亮度PB的水平位移值被约束为小于或等于从当前亮度PB到参考块的垂直位移值。这验证了参考块是要被保证在WPP被启用时可用于预测的重构内容的一部分,其是最经常产生良好BV值的重构内容的一部分。

如第VII.D节所述,在图内BC预测的一些示例实现中,出于图内BC预测的目的,合并小于门限尺寸4×4的色度PB。第VII.E.2和VII.E.3节呈现了在色度PB小于门限尺寸的情况下编码器在确定YUV 4:2:0图片或YUV 4:2:2图片中的CU的PU的BV值时可以考虑的附加约束的示例。如果色度PB不小于门限尺寸(例如,由于图片的格式为YUV 4:4:4,或者由于CU大于8×8,或者由于CU的PU模式是2N×2N),则编码器不需要考虑附加约束。

2.YUV 4:2:0图片中的一些PU的附加约束的示例

图12a至12c示出了YUV 4:2:0格式的图片的8×8的CU的各种尺寸的PU。在图12a中,PU模式是N×2N。图12a示出了8×8的CU的两个4×8的PU(1201)。当导出整个8×8的CU的合并的色度PB的BV值时,使用第二4×8的PU的BV值。因此,第二4×8的PU的BV值受到附加约束。当当前PU的索引为1(即,对于第二4×8的PU)时,编码器考虑本节中提出的附加约束。

在图12b中,PU模式是2N×N。图12b示出了8×8的CU的两个8×4的PU(1202)。当导出整个8×8的CU的合并的色度PB的BV值时,使用第二8×4的PU的BV值。因此,第二8×4的PU的BV值受到附加约束。当当前PU的索引为1(即,对于第二8×4的PU)时,编码器考虑本节中提出的附加约束。

在图12c中,PU模式是N×N。图12c示出了8×8的CU的四个4×4的PU(1203)。当导出整个8×8的CU的合并的色度PB的BV值时,使用第四4×4的PU的BV值。因此,第四4×4的PU的BV值受到附加约束。当当前PU的索引为3(即,对于第四4×4的PU)时,编码器考虑本节中提出的附加约束。

除了用“CU”替换“PU”之外,以下附加约束与第VII.E.1节中给出的基本约束相同。

第一附加约束。编码器验证位置(xCU,yCU)和位置(xCU+BVx,yCU+BVy)是否在相同的切片中(如果适用),以及是否在相同的图块中(如果适用)。也就是说,编码器验证当前区域(当前CU)的左上位置和参考区域的左上位置是否在相同的切片中,以及是否在相同的图块中。如果两个位置在不同的切片或不同的图块中,则第一约束不满足。

第二附加约束。编码器验证位置(xCU,yCU)和位置(xCU+BVx+wCU-1,yCU+BVy+hCU-1)是否在相同的切片中(如果适用),以及是否在相同的图块中(如果适用)。也就是说,编码器验证当前区域(当前CU)的左上位置和参考区域的右下位置是否在相同的切片中,以及是否在相同的图块中。如果两个位置在不同的切片或不同的图块中,则第二约束不满足。

对于第一和第二约束,如果不使用多个切片,则被检查的两个位置必须在相同的切片中,并且不需要检查切片的第一和第二约束,尽管参考区域仍然被约束为在当前图片内。类似地,如果不使用多个图块,则被检查的两个位置必须在相同的图块中,并且不需要检查图块的第一和第二约束,尽管参考区域仍被约束为在当前图片内。当前区域(当前CU)的所有位置都在单个切片和单个图块中。如果第一和第二约束满足,则参考区域的所有位置也在该切片和图块中。

第三附加约束。对于第三约束,编码器验证以下三个条件之一是否满足。

第三附加约束的第一条件。编码器检查是否(yCU+BVy+hCU-1)/S<yCU/S。也就是说,编码器计算包括参考区域的底部边缘的CTU行:(yCU+BVy+hCU-1)/S。编码器还计算包括当前区域的顶部边缘的CTU行:yCU/S。然后,编码器检查包括参考区域的底部边缘的CTU行是否在包括当前区域的顶部边缘的CTU行上方。如果是,则参考区域必然包括先前重构的采样值,至少当WPP未被启用时。

第三附加约束的第二条件。当(yCU+BVy+hCU-1)/S==yCU/S时,编码器检查是否(xCU+BVx+wCU-1)/S<xCU/S。也就是说,如果包括参考区域的底部边缘的CTU行等于包括当前区域的顶部边缘的CTU行(同一CTU行),则编码器计算(a)包括参考区域的右侧边缘的CTU列((xCU+BVx+wCU-1)/S),以及(b)包括当前区域的左侧边缘的CTU列(xCU/S)。然后,编码器检查包括参考区域的右侧边缘的CTU列是否在包括当前区域的左侧边缘的CTU列的左侧。如果是,则参考区域必然包括先前重构的采样值。

第三附加约束的第三条件(如果允许来自当前CU内的预测)。如果允许来自当前CU内的预测,则第三条件适用。当(yCU+BVy+hCU-1)/S==yCU/S并且(xCU+BVx+wCU-1)/S==xCU/S时,编码器检查位置(xCU+BVx+wCU-1,yCU+BVy+hCU-1)的z扫描顺序是否小于位置(xCU,yCU)的z扫描顺序。也就是说,如果包括参考区域的底部边缘的CTU行等于包括当前区域的顶部边缘的CTU行(同一CTU行),并且如果包括参考区域的右侧边缘的CTU列等于包括当前区域的左侧边缘的CTU列(同一CTU列),则编码器检查参考区域的右下位置在z扫描顺序方面是否早于当前区域的左上位置。如果是,则包含参考区域的右下位置的块已经被预先重构(并且参考区域的其余部分也是如此)。

第四附加约束。在一些示例实现中,当WPP被启用时,编码器检查第四附加约束。在其他示例实现中,编码器检查第四附加约束,而不管WPP是否被启用。对于第四附加约束,编码器验证是否(xCU+BVx+wCU-1)/S-xCU/S<=yCU/S-(yCU+BVy+hCU-1)/S。也就是说,编码器计算包括参考区域的右侧边缘的CTU列与包括当前区域的左侧边缘的CTU列之间的差值:(xCU+BVx+wCU-1)/S-xCU/S。编码器还计算包括当前区域的顶部边缘的CTU行与包括参考区域的底部边缘的CTU行之间的差值:yCU/S-(yCU+BVy+hCU-1)/S。编码器验证第一差值(在CTU列之间)小于或等于第二差值(在CTU行之间)。更一般地,从参考区域到当前区域的水平位移值被限制为小于或等于从当前区域到参考区域的垂直位移值。这验证了参考区域是要被保证在WPP被启用时可用于预测的重构内容的一部分,其是最经常产生良好BV值的重构内容的一部分。

3.YUV 4:2:2图片中用于一些PU的附加约束的示例

图12d和12e示出了YUV 4:2:2格式的图片的8×8的CU的各种尺寸的PU。在图12d中,PU模式为N×2N。图12d示出了8×8的CU的两个4×8的PU(1204)。当导出整个8×8的CU的合并的色度PB的BV值时,使用第二4×8的PU的BV值。因此,第二4×8的PU的BV值受到附加约束。当当前PU的索引为1(即,对于第二4×8的PU)时,编码器考虑与第VII.E.2节中给出的附加约束相同的附加约束。

在图12e中,PU模式为N×N。图12e示出了8×8的CU的四个4×4的PU(1205)。当导出合并色度PB的BV值时,使用第二4×4的PU和第四4×4的PU的BV值。因此,第二4×4的PU和第四4×4的PU的BV值受到附加约束。当当前PU的索引为1(即,对于第二4×4的PU)时,将第一4×4的PU和第二4×4的PU的色度PB合并用于图内BC预测。编码器考虑以下附加约束,其类似于第VII.E.2节中所述的约束,但是被修改为将当前CU的上半部分作为当前区域进行检查。(高度hCU被替换为高度hCU/2)

第一附加约束与第VII.E.2节中呈现的第一附加约束相同。编码器验证位置(xCU,yCU)和位置(xCU+BVx,yCU+BVy)是否在相同的切片中(如果适用),以及是否在相同的图块中(如果适用)。修改第二附加约束以将当前CU的上半部分作为当前区域来关注。编码器验证位置(xCU,yCU)和位置(xCU+BVx+wCU-1,yCU+BVy+(hCU/2)-1)是否在相同的切片中(如果适用),以及是否在相同的图块中(如果适用)。对于第三附加约束,编码器验证以下三个条件之一是否满足:

(1)(yCU+BVy+(hCU/2)-1)/S<yCU/S(在CTU行以上);

(2)当(yCU+BVy+(hCU/2)-1)/S==yCU/S时,则(xCU+BVx+wCU-1)/S<xCU/S(同一CTU行,但是左侧CTU列);或者

(3)当(yCU+BVy+(hCU/2)-1)/S==yCU/S并且(xCU+BVx+wCU-1)/S==xCU/S时,位置(xCU+BVx+wCU-1,yCU+BVy+(hCU/2)-1)的z扫描顺序小于位置(xCU,yCU)的z扫描顺序。

对于第四附加约束,编码器验证是否(xCU+BVx+wCU-1)/S-xCU/S<=yCU/S-(yCU+BVy+(hCU/2)-1)/S。

在图12e的示例(YUV 4:2:2格式的图片的8×8的CU的N×N模式)中,当当前PU的索引为3(即第四4×4的PU)时,第三4×4的PU和第四4×4的PU的色度PB被合并用于图内BC预测。编码器考虑以下附加约束,其类似于第VII.E.2节中所述的约束,但是被修改为将当前CU的下半部分作为当前区域进行检查。

修改第一和第二附加约束以将当前CU的下半部分作为当前区域来关注。对于第一附加约束,编码器验证位置(xCU,yCU+(hCU/2))和位置(xCU+BVx,yCU+(hCU/2)+BVy)是否在相同的切片中(如果适用),以及是否在相同的图块中(如果适用)。对于第二附加约束,编码器验证位置(xCU,yCU+(hCU/2))和位置(xCU+BVx+wCU-1,yCU+(hCU/2)+BVy+(hCU/2)-1)是否在相同的切片中(如果适用),以及是否在相同的图块中(如果适用)。对于第三附加约束,编码器验证以下三个条件之一是否满足:

(1)(yCU+(hCU/2)+BVy+(hCU/2)-1)/S<(yCU+(hCU/2))/S(CTU行以上)

(2)当(yCU+(hCU/2)+BVy+(hCU/2)-1)/S==(yCU+(hCU/2))/S时,则(xCU+BVx+wCU-1)/S<xCU/S(同一CTU行,但是左侧CTU列);或者

(3)当(yCU+(hCU/2)+BVy+(hCU/2)-1)/S==(yCU+(hCU/2))/S并且(xCU+BVx+wCU-1)/S==xCU/S时,位置(xCU+BVx+wCU-1,yCU+(hCU/2)+BVy+(hCU/2)-1)的z扫描顺序小于位置(xCU,yCU)的z扫描顺序(或者,如果允许来自当前CU内的预测,则小于位置(xCU,yCU+(hCU/2))的z扫描顺序)。

对于第四附加约束,编码器验证是否(xCU+BVx+wCU-1)/S-xCU/S<=(yCU+(hCU/2))/S-(yCU+(hCU/2)+BVy+(hCU/2)-1)/S。

4.适应其他导出规则

对于在第VII.E.2和VII.E.3节中描述的附加约束,当导出合并的色度块的BV值时,编码器使用最底部最右侧PU的BV值。如果使用另一导出规则,则可以相应地修改附加约束。

例如,假设当导出合并的色度块的BV值时,编码器使用最顶部最右侧PU的BV值。对图12a的示例中的第一4×8的PU(对于YUV 4:2:0图片中具有PU的N×2N模式的8×8的CU的当前PU,索引等于0)、对于图12b的示例中的第一8×4的PU(对于YUV 4:2:0图片中具有PU的2N×N模式的8×8的CU的当前PU,索引等于0)、对于图12c的示例中的第一4×4的PU(对于YUV 4:2:0图片中具有PU的N×N模式的8×8的CU的当前PU,索引等于0)、或者对于图12d的示例中的第一4×8的PU(对于YUV 4:2:2图片中具有N×2N模式的PU的8×8的CU的当前PU,索引等于0),编码器执行附加约束。在这些情况下,被检查附加约束的当前区域仍然是整个CU。编码器对图12e的示例中的第一和第三4×4的PU执行附加约束(对于YUV 4:2:2图片中具有N×N模式的PU的8×8的CU的当前PU,索引等于0或2)。在这种情况下,被检查附加约束的当前区域仍然是CU的上半部分(对于第一和第二4×4的PU)或CU的下半部分(对于第二和第三4×4的PU)。

更一般地,对于给定的导出规则和色度块的合并规则,编码器应用附加约束来检查相应的单元的整个区域的图内BC预测不引用边界外部的采样值。

F.通过剪切导出的BV来实现的特殊情况处理

在第二方法集合中,编码器剪接引用边界外部的采样值的所导出的BV值,使得新的剪切的BV值不再引用任何边界外部的采样值。例如,编码器检查初始的导出的BV值是否引用边界外部的采样值。如果是,则编码器剪切所导出的BV值。在解码期间,相应的解码器可以执行类似的剪切操作。

为了说明,图13示出了来自图10b的YUV 4:2:0格式的图片(1010)的色度分量(U分量或V分量)的部分(1001)。编码器检查合并的4×4块(1031)的所导出的BV值(1061)(如图10b所示)。在确定所导出的BV值(1061)引用边界外部的采样值(如图10b所示)之后,编码器剪切所导出的BV值(1061)以确定新的、剪切后的BV值(1361)(如图13所示)。剪切后的所导出的BV值表示到新的参考块(1371)的位移(-12,-2),该新的参考块包括在范围[(0,6),…,(3,9)]内的采样值。新的参考块(1371)不再包括在图片(1010)的图片边界(1011)外部的任何采样值。

例如,假设整个合并的色度块的导出的BV为(DBVx,DBVy),则合并的色度块开始于(xCB,yCB),合并的色度块的尺寸为(wCB,hCB),图片的色度分量的尺寸(在色度采样中)为(wchroma_comp,hchroma_comp)。所导出的BV被选择性地修改如下:

如果xCB+DBVx<0,则DBVx=-xCB

如果xCB+DBVx+wCB>=wchroma_comp,则DBVx=wchroma_comp-xCB-wCB

如果yCB+DBVy<0,则DBVy=-yCB

如果yCB+DBVy+hCB>=hchroma_comp,则DBVy=hchroma_comp-yCB-hCB

在第一比较中,编码器或解码器检查所导出的BV值的水平分量是否引用在图片的左侧边界左侧的任何位置。如果是,则所导出的BV值的水平分量被剪切以在图片的左侧边界处结束。在第二比较中,编码器或解码器检查所导出的BV值的水平分量是否引用在图片的右侧边界右侧的任何位置。如果是,则所导出的BV值的水平分量被剪切以在图片的右侧边界结束。在第三比较中,编码器或解码器检查所导出的BV值的垂直分量是否引用在图片的顶部边界上方的任何位置。如果是,则所导出的BV值的垂直分量被剪切以在图片的顶部边界处结束。最后,在第四比较中,编码器或解码器检查所导出的BV值的垂直分量是否引用在图片的底部边界下方的任何位置。如果是,则所导出的BV值的垂直分量被剪切以在图片的底部边界处结束。因此,分别地检查水平和垂直分量。

取决于在确定所导出的BV值时使用的导出规则,一些比较可能不适用。例如,如果通过缩放最底部最右侧PU的BV值来确定所导出的BV值,则编码器或解码器不需要进行第二和第四比较。或者,如果通过缩放最顶部最左侧PU的BV值来确定所导出的BV值,则编码器或解码器不需要进行第一和第三比较。

前述示例涉及在图片边界处的所导出的BV值的剪裁。可替代地,所导出的BV值在切片边界和/或图块边界处被裁剪。例如,假设整个合并的色度块的所导出BV为(DBVx,DBVy),合并的色度块开始于(xCB,yCB),合并的色度块的尺寸为(wCB,hCB)。内部偏移值(xrelative,yrelative)指示相对于合并的色度块的起始位置的色度块的起始位置,该色度块的单元提供在确定所导出的BV值时使用的BV值。例如,在YUV>relative,yrelative)为(2,2)。或者,作为另一示例,在YUV>relative,yrelative)为(0,2)。所导出的BV被选择性地修改如下。如果((xCB+DBVx,yCB+DBVy)和(xCB,yCB)在不同的切片或不同的图块中,则如果需要将两个位置放在相同的切片或图块中,则DBVx=DBVx+xrelative;如果需要将两个位置放在相同的切片或图块中,则DBVy=DBVy+yrelative。以这种方式,所导出的BV值的水平分量和/或垂直分量被剪切以避免在当前切片或图块外部的引用。如果通过缩放最底部最右侧PU的BV值来确定所导出的BV值,则本段中描述的调节将起作用。对于另一导出规则,相应地修改调节。

G.通过在边界处填充采样值来实现的特殊情况处理

在第三方法集合中,编码器根据需要填充远离图片边界的采样值,以提供边界外部的采样值用于图内BC预测。或者,编码器根据需要使用默认采样值以提供边界外部采样值用于图内BC预测。在图内BC预测期间,编码器标识对边界外部的采样值的引用。编码器使用来自最接近的边界位置的采样值或默认采样值来替换边界外部的采样值。在解码期间,相应的解码器可以在图内BC预测期间执行类似的操作,以使用来自最接近的边界位置的采样值或默认采样值来替换边界外部的采样值。

为了说明,图14示出了来自图10b的YUV 4:2:0格式的图片(1010)的色度分量(U分量或V分量)的部分(1001)。编码器确定所导出的BV值(1061)引用参考块(1071)(图10b所示)中的边界外部的采样值。编码器使用在图片边界(1011)外部的推测的采样值(1470)(图14所示)来替换边界外部的采样值。对于在范围[(-1,6),…,(-1,9)]内的推测的采样值(1470),在范围[(0,6),…,(0,9)]内的采样值被重复,如图14所示。

例如,假设图片的色度分量的尺寸(在色度采样中)为(wchroma_comp,hchroma_comp),并且假设参考区域中的参考采样值的位置为(xref,yref)。当最接近的边界位置的采样值(根据简单的水平或垂直推测)用于填充时,在图内BC预测期间使用的位置如下选择性地修改。

如果xref<0,则xref=0。

如果xref>=wchroma_comp,则xref=wchroma_comp-1。

如果yref<0,则yref=0。

如果yref>=hchroma_comp,则yref=hchroma_comp-1。

在第一比较中,编码器或解码器检查参考采样值是否在图片的左侧边界的左侧。如果是,则在图片的左侧边界处并且在同一行中的采样值被用于图内BC预测。在第二比较中,编码器或解码器检查参考采样值是否在图片的右侧边界的右侧。如果是,则在图片的右侧边界处并且在同一行中的采样值被用于图内BC预测。在第三比较中,编码器或解码器检查参考采样值是否在图片的顶部边界上方。如果是,则在图片的顶部边界处并且在同一列中的采样值被用于图内BC预测。最后,在第四比较中,编码器或解码器检查参考采样值是否在图片的底部边界下方。如果是,则在图片的底部边界处并且在同一列中的采样值被用于图内BC预测。可替代地,编码器或解码器使用另一填充规则(例如,在边界处或在边界内的多个采样值的线性组合)。

取决于在确定所导出的BV值时使用的导出规则,一些比较可能不适用。例如,如果通过缩放最底部最右侧PU的BV值来确定所导出的BV值,则编码器或解码器不需要进行第二和第四比较。或者,如果通过缩放最顶部最左侧PU的BV值来确定所导出的BV值,则编码器或解码器不需要进行第一和第三比较。

当边界外部的采样值被替换为默认采样值时,默认采样值可以是可能值范围的中间值。例如,如果位深度为bd,则默认采样值为1<<(bd-1)。可替代地,默认采样值具有某个其他被定义的值。

前述示例涉及在图片边界外部替换边界外部的采样值。可替代的,在切片边界和/或图块边界外部的边界外部的采样值被替换。例如,边界外部的采样值被替换为沿着切片边界和/或图块边界在最近的位置处的采样值。或者,边界外部的采样值被替换为默认采样值。

H.通过评估不同的所导出的BV值直到找到适当的所导出的BV值来实现的特殊情况处理

在第四方法集合中,当导出合并的色度块的BV值时,编码器评估多个候选BV值,直到找到合适的所导出的BV值(即,不引用任何在边界外部的采样值用于图内BC预测的BV值)。可以按照优先级顺序依次地评估多个候选BV值。如果候选BV值都不合适,则编码器可以使用另一种特殊情况处理方法(例如,对优先级顺序中的第一候选BV值执行附加约束、剪切优先级顺序中的第一候选BV值、填充)。在解码期间,相应的解码器可以在导出合并的色度块的BV值时执行类似的操作,以按照优先级顺序依次地评估多个候选BV值。如果候选BV值都不合适,则解码器可以使用由编码器使用的另一种特殊情况处理方法(例如,剪切优先级顺序中的第一候选BV值、填充)。

例如,优先级顺序对CU的PU的BV值排序,用于在导出合并的色度块的单个BV值时使用。一个优先级顺序是以下各项的BV值:(1)最底部最右侧PU,(2)最底部最左侧PU,(3)最顶部最右侧PU,和(4)最顶部最左侧PU。另一优先级顺序是以下各项的BV值:(1)最顶部最左侧PU,(2)最顶部最右侧PU,(3)最底部最左侧PU,和(4)最底部最右侧PU。可替代地,优先级顺序包括其他和/或附加选项,诸如CU的PU的BV值的分量中值或CU的PU的BV值的分量平均值。或者,优先级顺序可以偏好CU的PU的BV值中最常见的BV值,其“覆盖”CU的最大面积。

在编码或解码期间,按照优先级顺序依次评估用于在导出合并的色度块的单个BV值时使用的候选BV值,直到找到合适的BV值。也就是说,评估按照优先级顺序的第一候选BV值。如果按照优先级顺序的第一候选BV值不合适(导致对所导出的BV值的边界外部的采样值的引用),则评估按照优先级顺序的第二候选BV值,等等。编码器和解码器使用相同的优先级顺序。

I.通常情况下,合并的次分量块的特殊情况处理

图15示出了用于使用图内BC预测模式下的合并的色度块(或其他合并的次块)的特殊情况处理的编码的通用技术(1500)。媒体编码器(诸如参考图3描述的视频编码器(340))、参照图5a和5b描述的视频编码器(500)、或其他编码器可以执行该技术(1500)。

编码器对图片进行编码(1510)以产生编码数据并且输出(1520)编码数据。编码(1510)包括图片的相邻单元集合的图内BC预测。例如,相邻单元集合中的每个单元是预测单元,并且相邻单元集合是单个编码单元的预测单元集合。可替代地,相邻单元是介质的某种其他类型的单元。

出于图内BC预测的目的,编码器可以合并次分量块(例如,色度块)。具体地,编码器取决于各种因素(诸如图片格式和单元的次分量块的尺寸)来选择性地合并次分量块用于图内BC预测的目的。例如,编码器确定图片格式和单元的次分量块的尺寸。如果图片格式为YUV 4:2:0或YUV 4:2:2(但不是YUV 4:4:4),并且如果单元的次分量块的尺寸低于门限尺寸,则编码器选择性地合并次分量块用于图内BC预测的目的。因此,如第VII.E部分中进一步详细描述的,小的次分量块(在门限尺寸以下)可以被合并成用于图内BC预测的较大块。否则,编码器不合并次分量块用于图内BC预测的目的。

当次分量块不被合并作为图内BC预测的一部分时(例如,因为图形格式为YUV 4:4:4或者单元的次分量块的尺寸大于门限尺寸),则编码器对主分量块(例如,亮度块)和次分量块(例如,色度块)使用相同的BV值。例如,对于给定的相邻单元集合中的每个单元,编码器使用与单元相关联的BV值来执行单元的主分量块和次分量块的图内BC预测。

另一方面,当次分量块被合并作为图内BC预测的一部分时(例如,因为图片格式为YUV 4:2:0或4:2:2,并且单元的次分量块的尺寸为小于门限尺寸),对于相邻单元集合中的每个单元,编码器使用与单元相关联的BV值来执行单元的主分量块(例如,亮度块)的图内BC预测。编码器至少部分基于与相邻单元相关联的一个或多个BV值来导出相邻单元集合的次分量块(例如,色度块)的BV值。然后,编码器使用所导出的BV值来执行次分量块的图内BC预测,其中次分量块中的相邻块被合并用于图内BC预测的目的。编码(1510)包括对于所导出的BV值(对于合并的次分量块)的任何值引用在边界外部的采样值的特殊情况处理,边界可以是图片边界、切片边界或图块边界。

在用于特殊情况处理的第一方法集合中,当编码器在BV估计期间确定与相邻单元相关联的BV值时,编码器对BV值中的给定的BV值施加一个或多个约束,使得所导出BV值不引用在边界外部的任何采样值。例如,假设主分量块为相邻单元集合定义当前区域,并且给定的BV值指示相邻单元集合的参考区域。一个或多个约束确保参考区域中的采样值不在边界外部。第VII.E.2至VII.E.4节描述了约束(“附加约束”)的示例。可替代地,编码器考虑其他和/或附加约束。取决于相邻单元的尺寸和图片的色度采样率,编码器可以对于相邻单元集合的子集施加约束。例如,如第VII.E.2至VII.E.4节所述,编码器对所选择的预测单元施加约束。由编码器对允许的BV值施加的约束可以被表示为对于比特流中的编码数据中的BV值的比特流一致性要求。

在用于特殊情况处理的第二方法集合中,如果所导出的BV值引用在边界外部的任何采样值,则编码器剪切所导出的BV值。新的剪切的BV值仅引用在边界处或在其内的采样值。例如,编码器根据第VII.F节中描述的方法来剪切边界。可替代地,编码器使用另一种方法来选择性地剪切所导出的BV值。

在用于特殊情况处理的第三方法集合中,当所导出的BV值引用在边界外部的采样值时,编码器填充远离边界的采样值,或者使用默认采样值。例如,编码器根据第VII.G部分中描述的方法替换边界外部的采样值。或者,编码器使用另一种方法来替换边界外部的采样值。

在用于特殊情况处理的第四方法集合中,当编码器在BV估计期间确定与相邻单元相关联的BV值时,编码器根据优先级顺序来评估用于导出用于合并的次分量块的单个BV值的不同候选BV值,直到所导出的BV值不引用在边界外部的任何采样值。例如,编码器根据第VII.H节中描述的方法来评估候选BV值。或者,编码器使用另一种方法来评估候选BV值。

图16示出了用于使用图内BC预测模式下的合并的色度块(或其他合并的次分量块)的特殊情况处理的解码的通用技术(1600)。媒体解码器(诸如参考图4描述的视频解码器(450))、参考图6描述的视频解码器(600)、或其他解码器可以执行该技术(1600)。

解码器接收(1610)编码数据并使用编码数据对图片进行解码(1620)。解码(1620)包括图片的相邻单元集合的图内BC预测。例如,相邻单元集合中的每个单元是预测单元,并且相邻单元集合是单个编码单元的预测单元集合。可替代的,相邻单元是介质的某种其他类型的单元。

解码器可以合并次分量块(例如,色度块)用于图内BC预测的目的。具体地,解码器取决于各种因素(诸如图片格式和单元的次分量块的尺寸)来选择性地合并次分量块用于图内BC预测的目的。例如,解码器确定图片格式和单元的次分量块的尺寸。如果图片格式为YUV 4:2:0或YUV 4:2:2(但不是YUV 4:4:4),并且如果次分量块的尺寸的单元低于门限尺寸,则解码器选择性地合并次分量块用于图内BC预测的目的。因此,如第VII.E部分中进一步详细描述的,小的次分量块(门限尺寸以下)可以被合并成用于图内BC预测的较大块。否则,解码器不合并次分量块用于图内BC预测的目的。

当次部件块不被合并作为图内BC预测的一部分时(例如,因为图形格式为YUV 4:4:4或者单元的次分量块的尺寸大于门限尺寸),解码器对于主分量块(例如,亮度块)和次分量块(例如,色度块)使用相同的BV值。例如,对于给定的相邻单元集合中的每个单元,解码器使用与单元相关联的BV值来执行单元的主分量块和单元的次分量块的图内BC预测。

另一方面,当次分量块被合并作为图内BC预测的一部分时(例如,因为图片格式为YUV 4:2:0或4:2:2,并且次分量块的尺寸单元小于门限尺寸),对于相邻单元集合中的每个单元,解码器使用与单元相关联的BV值来执行单元的主分量块(例如,亮度块)的图内BC预测。解码器至少部分基于与相邻单元相关联的一个或多个BV值来导出相邻单元集合的次分量块(例如,色度块)的BV值。然后,解码器使用所导出的BV值来执行次分量块的图内BC预测,其中次分量块中的相邻块被合并用于图内BC预测的目的。解码(1610)包括用于所导出的BV值(用于合并的次分量块)的任何值引用在边界外部的采样值的特殊情况处理,边界可以是图片边界、切片边界或图块边界。

在用于特殊情况处理的第一方法集合中,根据比特流一致性要求,BV值中的给定BV值被约束,使得所导出的BV值不引用在边界外部的任何采样值。例如,假设主分量块为相邻单元集合定义当前区域,并且给定的BV值指示相邻单元集合的参考区域。一个或多个约束确保参考区域中的采样值不在边界外部。第VII.E.2至VII.E.4节描述约束(“附加约束”)的示例。可替代地,施加其他和/或附加约束。取决于相邻单元的尺寸和图片的色度采样率,可以对相邻单元集合的子集施加约束。例如,如第VII.E.2至VII.E.4节所述,对所选择的预测单元施加约束。约束可以被表示为对于比特流中的编码数据中的BV值的比特流一致性要求。

在用于特殊情况处理的第二方法集合中,如果所导出的BV值引用在边界外部的任何采样值,则解码器剪切所导出的BV值。新的剪切的BV值仅引用在边界处或在其内的采样值。例如,解码器根据第VII.F节中描述的方法来剪辑边界。可替代地,解码器使用另一种方法来选择性地剪切所导出的BV值。

在用于特殊情况处理的第三方法集合中,当所导出的BV值引用在边界外部的采样值时,解码器填充远离边界的采样值,或者使用默认采样值。例如,解码器根据第VII.G部分中描述的方法替换边界外部的采样值。可替代地,解码器使用另一种方法来替换边界外部的采样值。

在用于特殊情况处理的第四方法集合中,当解码器重构与相邻单元相关联的BV值时,解码器根据优先级顺序来评估用于导出用于合并的次分量块的单个BV值的不同候选BV值,直到所导出的BV值不引用在边界外部的任何采样值。例如,解码器根据第VII.H节中描述的方法来评估候选BV值。可替代地,解码器使用另一种方法来评估候选BV值。

J.替代和变型

在本文中描述的很多示例中,编码器对允许的BV值施加约束。可替代地,可以将约束视为对比特流中的语法元素的值的约束或在解码期间的重构时对BV值的约束,其中编码器仍然选择BV值。也就是说,约束可以被表示为对于比特流中的编码数据中的BV值的比特流一致性要求。

在本文中描述的很多示例中,图内BC预测和运动补偿在单独的部件或过程中实现,并且BV估计和运动估计在单独的部件或过程中实现。可替代地,图内BC预测可以被实现为运动补偿的特殊情况,并且BV估计可以被实现为运动估计的特殊情况,其中当前图片被用作参考图片。在这样的实现中,BV值可以作为MV值被信号通知,但是用于图内BC预测(在当前图片内)而不是图片间预测。如本文中使用的术语“图内BC预测”表示当前图片内的预测,而不管使用图片内预测模块、运动补偿模块还是其他模块来提供该预测。类似地,可以使用MV值或者使用不同类型的参数或语法元素来表示BV值,并且可以使用图片内估计模块、运动估计模块或某个其他模块来提供BV估计。

考虑到可以应用所公开的发明的原理的很多可能的实施例,应当认识到,所示出的实施例仅是本发明的优选示例,而不应当被认为限制本发明的范围。相反,本发明的范围由所附权利要求来限定。因此,我们认为在这些权利要求的范围和精神内的全部内容都属于本发明。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号