首页> 中国专利> 用于样本自适应偏移滤波的编码器侧决策

用于样本自适应偏移滤波的编码器侧决策

摘要

本文公开了对以下领域的创新的示例性实施例:对图片或图片部分(例如,片、编码树单元、或编码单元)进行编码以及确定是否和应当如何执行及标志某些滤波操作以供解码器在位流中执行。在特定示例中,公开了用于设置H.265/HEVC标准中的样本自适应偏移(SAO)句法元素的各实现。虽然这些示例关注H.265/HEVC标准及其SAO滤波,但所公开的技术更广泛地适用于涉及滤波操作(尤其是多阶段滤波操作)作为它们的编码和解码过程的一部分的其他视频编解码器。

著录项

  • 公开/公告号CN105409221A

    专利类型发明专利

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

    原文格式PDF

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

    申请/专利号CN201480041989.9

  • 发明设计人 B·李;Y·周;J·徐;C-L·林;F·吴;

    申请日2014-04-29

  • 分类号H04N19/61(20060101);

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

  • 代理人陈小刚

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 15:03:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-06

    授权

    授权

  • 2016-04-13

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

    实质审查的生效

  • 2016-03-16

    公开

    公开

说明书

背景

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

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

在解码期间,视频编解码器可以应用一个或多个滤波器来降低经重构的像素与原始像素之间的差异。例如,对于H.265/HEVC标准,两个处理步骤——伴随样本自适应偏移(SAO)操作的去块滤波器(DBF)——可供在将经重构的样本写入解码器循环的经解码的图片缓冲区之前应用于经重构的样本。去块滤波器旨在降低由于基于块的编码而造成的块伪像。H.265/HEVC去块滤波器类似于H.264/MPEG-4AVC标准的去块滤波器,而SAO滤波器被新引入到H.265/HEVC标准中。去块滤波器只被应用于位于块边界处的样本。作为对比,SAO滤波操作被自适应地应用于满足某些条件(如梯度)的所有样本。

是否针对经重构的图片执行SAO滤波操作可由作为给定序列参数集的一部分的句法元素(样本_自适应_偏移_启用_标志(sample_adaptive_offset_enabled_flag))来控制。更具体地,样本_自适应_偏移_启用_标志等于1指定样本自适应偏移过程在去块滤波过程之后被应用于经重构的图片,而样本_自适应_偏移_启用_标志等于0指定样本自适应偏移过程在去块滤波过程之后不被应用于经重构的图片。如果样本自适应偏移滤波被指定为要被应用,则附加标志被用来分开地指示SAO滤波是否针对较小粒度水平的图片部分以及针对亮度分量和色度分量被启用。这一附加信令可例如使用片_sao_亮度_标志(slice_sao_luma_flag)和片_sao_色度_标志(slice_sao_chroma_flag)在逐片的基础上被执行。具体而言,片_sao_亮度_标志等于1指定对于当前片中的亮度分量SAO被启用;片_sao_亮度_标志等于0指定对于当前片中的亮度分量SAO被禁用。在片_sao_亮度_标志不存在时,它被推断为等于0。此外,片_sao_色度_标志等于1指定对于当前片中的色度分量SAO被启用;片_sao_色度_标志等于0指定对于当前片中的色度分量SAO被禁用。在片_sao_色度_标志不存在时,它被推断为等于0。另外,SAO滤波也可在编码树单元(CTU)水平处被指定。例如,sao_类型_索引_亮度(sao_type_idx_luma)和sao_类型_索引_色度(sao_type_idx_chroma)句法元素可被用来启用(或禁用)SAO滤波并选择针对给定CTU执行的SAO滤波的类型。具体而言,对于亮度或色度CTU,SAO_类型_索引_值0指示没有SAO滤波被启用,值1指示带偏移类型SAO滤波(BO)被启用,且值2指示边缘偏移类型SAO滤波(EO)被启用。

H.265/HEVC标准提供极少或不提供与应当何时以及如何启用SAO滤波(例如,通过指定样本_自适应_偏移_启用_标志(sample_adaptive_offset_enabled_flag)、片_sao_亮度_标志(slice_sao_luma_flag)、片_sao_色度_标志(slice_sao_chroma_flag)、sao_类型_索引_亮度(sao_type_idx_luma)、和/或sao_类型_索引_色度(sao_type_idx_chroma)句法元素)或者相关联的SAO参数应当如何或何时被设置(例如,通过指定sao_偏移_缺少(sao_offset_abs)、sao_偏移_符号(sao_offset_sign)、sao_带_位置(sao_band_position)、sao_eo_类_亮度(sao_eo_class_luma)、sao_eo_类_色度(sao_eo_class_chroma)和/或Sao偏移值(SaoOffsetVal)句法元素)有关的指导。另一方面,SAO滤波的使用可不利地影响用于编码和解码操作的计算效率和处理时间。因此,存在其中SAO需要不被启用的许多条件和情况。本申请公开了用于确定何时以及如何启用SAO滤波操作的若干方法。

概述

概括而言,该详细描述呈现了对以下领域的创新:对图片或图片部分(例如,片、编码树单元、或编码单元)进行编码以及确定是否和应当如何执行及指定某些滤波操作以供解码器在位流中执行。在特定示例中,公开了用于设置H.265/HEVC标准中的样本自适应偏移(SAO)句法元素的各实现。虽然这些示例关注H.265/HEVC标准及其SAO滤波过程,但所公开的技术更广泛地适用于涉及滤波操作(尤其是多阶段滤波操作)作为它们的编码和解码过程的一部分的其他视频编解码器。

在一个示例实施例中,多阶段滤波过程被应用于当前被编码的图片部分。多阶段滤波过程包括去块滤波和被应用于图片部分的去块后像素的样本自适应偏移(SAO)过程。在这一实施例中,控制SAO过程的应用的一个或多个SAO参数是使用图片部分的一个或多个去块前像素来指定的。

在另一示例实施例中,对于当前被编码的图片部分,至少部分地基于指示从编码得到的图片部分的残余数据的量的数据来作出与是否应用多阶段滤波过程的第二阶段滤波(例如,SAO滤波)有关的判定。例如,残余量可被使用或指示残余而非直接关联于SAO滤波的句法元素可被使用。例如,控制图片部分是否要使用“跳过模式”来编码的句法元素可被使用。

在又一示例实施例中,对于当前被编码的图片部分,至少部分地基于视频编码器或图像编码器的编码效率来作出与是否应用多阶段滤波过程的第二阶段滤波(例如,SAO滤波)有关的判定。例如,用于编码当前图片或图片部分的处理时间或处理周期数可被用作启用或禁用SAO滤波的基础。作为替换或补充,可以使用先前编码的图片或图片部分的编码时间或处理周期数。

在又一示例实施例中,对于被编码的一系列图片或图片部分,多阶段滤波过程的第二阶段滤波(例如,SAO滤波)被周期性地应用。例如,SAO滤波可每n个图片或图片部分被应用,其中n是任何整数。

在又一示例实施例中,边缘偏移(EO)过程被应用于当前被编码的图片部分,包括将边缘滤波器应用于图片部分以标识多个可用EO类中的要使用的一个EO类。在特定实现中,多个可用EO类中的每一者与在后续EO处理期间将沿其评估像素值的不同方向相关联。后续EO处理可包括例如确定沿所标识的EO类的方向的图片部分中的像素是否包括局部谷、局部峰、凹角、或凸角,并从而确定在EO处理期间要应用正偏移值还是负偏移值。

这些创新可以被实现为方法的一部分、被适配成执行该方法的计算系统的一部分或存储用于使得计算系统执行该方法的计算机可执行指令的有形计算机可读介质的一部分。各创新可以结合地或分开地使用。

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

附图简述

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

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

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

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

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

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

图7(a)到7(d)描绘边缘偏移类型SAO滤波中使用的四个梯度模式。

图8包括示出样本值(样本值p)如何被特定边缘偏移类别的正和负偏移值更改的两个示图。

图9是示出根据所公开的技术的用于执行SAO滤波的示例性实施例的流程图。

图10是示出根据所公开的技术的用于确定何时应用第二阶段滤波(如SAO滤波)的示例性实施例的流程图。

图11是示出根据所公开的技术的用于确定是否应用多阶段滤波过程的第二阶段滤波的另一示例性实施例的流程图。

图12是示出根据所公开的技术的用于确定是否应用多阶段滤波过程的第二阶段滤波的另一示例性实施例的流程图。

图13是示出根据所公开的技术的用于执行边缘偏移(EO)过程的示例性方法的流程图。

详细描述

该详细描述呈现了对以下领域的创新:对图片或图片部分(例如,片、编码树单元、或编码单元)进行编码以及指定解码器是否及应当如何执行及指定位流中的某些滤波操作。在特定示例中,公开了用于设置H.265/HEVC标准中的样本自适应偏移(SAO)句法元素的各实现。虽然这些示例关注H.265/HEVC标准及其SAO滤波,但所公开的技术更广泛地适用于涉及滤波操作(尤其是多阶段滤波操作)的其他视频编解码器。

虽然本文中描述的操作是被适当描述为由视频编码器或视频解码器来执行,但在许多情况中,这些操作可由另一类型的媒体处理工具(例如图像编码器或图像解码器)来执行。

本文中描述的一些创新是参考专用于H.265/HEVC标准的句法元素和操作来示出的。例如,参考推荐ITU-TH.265,“HighEfficiencyVideoCoding(高效视频编码)”,2013年4月。本文中描述的各创新还可以被实现为针对其它标准或格式。

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

I.示例计算系统

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

参考图1,计算系统(100)包括一个或多个处理单元(110、115)和存储器(120、125)。处理单元(110、115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器或任意其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图1示出中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120、125)可以是(诸)处理单元可访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或这两者的某一组合。存储器(120,125)存储实现针对滤波(例如SAO滤波)的编码器侧判定的一个或多个创新的软件(180),该软件采用适用于由(诸)处理单元执行的计算机可执行指令的形式。

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

有形存储(140)可以是一个或多个可移动或不可移动存储设备,并包括磁盘、固态驱动器、闪存、磁带或磁带盒、CD-ROM、DVD或可用于储存信息并可在计算系统(100)内访问的任何其他有形介质。存储(140)不涵盖传播的载波或信号。存储(140)存储实现针对滤波(例如,SAO滤波)的编码器侧判定的一个或多个创新的软件(180)的指令。

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

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

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

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

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

所公开的方法还可使用被配置成执行所公开的方法中的任一者的专用计算硬件来实现。例如,所公开的方法可以由被专门设计或配置成实现所公开的方法中的任一者的集成电路(例如,诸如ASIC数字信号处理器(“DSP”)之类的ASIC、图像处理单元(“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)的输出。输出到信道的经编码的数据可包括使用SAO滤波编码的内容且可包括位流中的指示是否以及如何应用SAO滤波的一个或多个标志,如本文描述的。

视频源(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色彩空间到诸如RGB的另一色彩空间和/或从另一色彩空间到YUV色彩空间的转换操作)的精确定义取决于实现。通常,如在此所用,术语YUV指示具有亮度(或照度)分量和一个或多个色度(或色差)分量的任意色彩空间,包括Y’UV、YIQ、Y’IQ和YDbDr以及诸如YCbCr和YCoCg之类的变体。色度样本值可以被子采样到较低的色度采样率(例如用于YUV4:2:0格式),或者色度样本值可以具有与亮度样本值相同的分辨率(例如用于YUV4:4:4格式)。或者,视频可用另一格式(例如,RGB4:4:4格式)来编码。

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

一般来说,编码器(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)沿小块行和小块列来拆分帧,这些小块行和小块列利用帧边界定义在该帧内的小块的水平和垂直边界,其中每个小块是矩形区域。小块通常被用于提供并行处理的选项。帧还可以被组织成一个或多个片,其中一个片可以是整个帧或该帧的区域。片可以独立于帧中的其它片编码,这改善了错误复原性。出于编码和解码的目的,片或小块的内容被进一步分割成块或其它样本值集。

对于根据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的最小允许尺寸(例如8×8、16×16)可被信号化在位流中。

通常,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等。

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

如本文中所使用的,术语“块”可以指示宏块、预测单元、残留数据单元、或者CB、PB或TB,或者某些其它样本值集,这取决于上下文。

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

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

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

自适应去块滤波器可以被包括在编码器(340)中的运动补偿循环内以平滑经解码的帧中的块边界行和/或列上的间断。可替换地或另外地应用其它滤波(诸如去振铃滤波、自适应环路滤波(“ALF”)或样本自适应偏移(“SAO”)滤波)作为内环路滤波操作。例如,本文描述的SAO滤波可在解码期间由一个或多个句法元素执行或指定执行(例如,样本_自适应_偏移_启用_标志、片_sao_亮度_标志、和/或片_sao_色度_标志)。

由编码器(340)产生的经编码的数据包括针对各层位流句法的句法元素。对于根据H.265/HEVC的标准的句法,例如,图片参数集(“PPS”)是包含了与图片相关联的句法元素的句法结构。PPS可被用于单个图片,或者PPS可被重用于序列中的多个图片。PPS通常被信号化为与图片的经编码数据分开(例如,针对PPS的一个NAL单元和针对图片的经编码数据的一个或多个其它NAL单元)。在图片的经编码数据内,句法元素指示要为该图片使用哪个PPS。类似地,对于根据H.265/HEVC的标准的句法,序列参数集(“SPS”)是包含了与图片的序列相关联的句法元素的句法结构。位流可包括单个SPS或多个SPS。SPS典型地与序列的其它数据分开地发送信号,并且所述其它数据中的语法元素指示哪个SPS要使用。SPS可包括用于用信号通知某些类型的滤波是否被执行的句法元素。例如,SPS可包括用于指定在解码期间SAO滤波应当被执行的句法元素(例如,样本_自适应_偏移_启用_标志)。

经编码的帧(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/IEC13818-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)的输出。经编码的数据可包括使用SAO滤波编码的内容且可包括用于指定是否以及应当如何执行SAO滤波的句法元素。

解码器系统(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)包括执行诸如熵解码、帧内预测、运动补偿帧间预测、逆量化、逆频率变换和小块合并之类的解码任务的多个解码模块。由解码器(450)执行的确切操作可以取决于压缩格式而变化。

例如,解码器(450)接收经压缩的帧或帧序列的经编码数据,并产生包括经解码的帧(451)的输出。在解码器(450)中,缓冲区接收针对经压缩的帧的经编码数据,并在适当时,使得接收到的经编码数据对熵解码器可用。熵解码器对经熵编码的量化数据以及经熵编码的辅助信息进行熵解码,通常应用编码器中执行的熵编码的逆来进行熵解码。运动补偿器将运动信息应用于一个或多个参考帧以形成针对正被重构的帧的任何帧间编码块的经运动补偿的预测值。帧间参考区域可以相对于块的预测区域被翻动。帧内预测模块可从相邻的、先前重构的样本值中空间地预测当前块的样本值,或者对于帧内BC预测,使用帧中的帧内预测区域的先前重构的样本值来预测当前块的样本值。帧内参考区域可用BV值来指示。参考区域可相对于块的预测区域被翻动。解码器(450)还重构预测残留值。逆量化器对经熵解码的数据进行逆量化。例如,解码器(450)基于位流中的句法元素为图片、小块、片和/或视频的其它部分设置QP值,并相应地对变换系数进行逆量化。逆频率变换器将量化的频域数据转换成空间域数据。对于帧间预测的块,解码器(450)将重构的预测残留值与经运动补偿的预测值组合。解码器(450)可以类似地将预测残留值与来自帧内预测的预测值组合。自适应去块滤波器被包括在视频解码器(450)中的运动补偿环路内以平滑经解码的帧(451)中的块边界行和/或列上的间断。可替换地或另外地应用其它滤波(例如去振铃滤波、ALF或SAO滤波)作为内环路滤波操作。例如,本文描述的SAO滤波可如一个或多个句法元素(例如,样本_自适应_偏移_启用_标志、片_sao_亮度_标志、和/或片_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)可以决定在编码期间是否和如何使用帧内BC预测的各方面(例如,跳跃模式、块翻动)。通用编码控件(520)还可以估计编码期间的中间结果,例如执行速率-失真分析来估计。通用编码控件(520)产生指示在编码期间所做出的判定的通用控制数据(522),使得对应的解码器可以作出一致的判定。通用控制数据(522)被提供给头部格式化器/熵编码器(590)。

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

运动补偿器(555)将MV应用于来自经解码的图片缓冲区(570)的(诸)经重构的参考图片。运动补偿器(555)产生针对当前图片的经运动补偿的预测。当块翻动被使用时,运动补偿器(555)可考虑(当前块的)预测区域相对于其参考区域的翻动。

在编码器(500)内的分开的路径中,图片内估计器(540)确定如何执行对输入视频信号(505)的当前图片的样本值块的图片内预测。当前图片可全部或部分使用图片内编码来编码。对于帧内空间预测,使用当前图片的重构(538)的值,图片内估计器(540)确定如何从当前图片的邻近的、先前重构的样本值中空间地预测当前图片中的当前块的样本值。或者,对于使用BV值的帧内BC预测,图片内估计器(540)估计当前块的样本值到当前图片内的不同候选参考区域的位移。候选参考区域可包括重构的样本值,或者在一些实现中,出于BV估计的目的,包括来自输入视频的原始样本值。图片内估计器(540)可评估用于相对于相应的候选参考区域翻动(当前块的)帧内BC预测区域的不同选项,如以下所描述的。

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

根据帧内预测数据(542),图片内预测器(545)从当前图片的相邻的、先前重构的样本值中空间地预测当前图片中的当前块的样本值。或者,对于帧内BC预测,图片内预测器(545)使用帧内预测参考区域的先前重构的样本值来预测当前块的样本值,帧内预测参考区域由针对当前块的BV值来指示。对于帧内BC预测,图片内预测器(545)可考虑(当前块的)帧内BC预测区域相对于其参考区域的翻动,如以下所描述的。在一些情况中,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)。滤波控件(560)可以应用本文公开的SAO滤波决策方法中的任一种和/或可基于这些方法中的任一种或多种方法来指定SAO滤波控制句法元素中的任一者。

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

头部格式化器/熵编码器(590)格式化和/或熵编码通用控制数据(522)、量化的变换系数数据(532)、帧内预测数据(542)、运动数据(552)以及滤波器控制数据(562)。对于帧内预测数据(542),头部格式化器/熵编码器(590)可以选择(帧内BV预测的)BV预测值索引值并对其进行熵编码。头部格式化器/熵编码器(590)还可对指示是否将块翻动用于帧内BC预测(或运动补偿)的句法元素进行熵编码。在一些情况中,头部格式化器/熵编码器(590)还(相对于BV值的BV预测值)确定BV值的BV差,随后对BV差进行熵编码,例如使用上下文自适应二进制算术编码来对BV差进行熵编码。具体地,对于跳跃模式帧内BC预测的块,BV差被信号化。此外,头部格式化器/熵编码器(590)可以基于所公开的SAO滤波选择方案中的任一种来指定和编码是否以及如何使用SAO滤波的句法元素。

头部格式化器/熵编码器(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)内的各模块之间的关系指示了信息在编码器中的一般流动;为简明起见,未示出其它关系。

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)。对于帧内预测数据(642),解析器/熵解码器(610)对(帧内BC预测的)BV预测值索引值进行熵解码。解析器/熵解码器(610)还可对指示是否将块翻动用于帧内BC预测(或运动补偿)的句法元素进行熵解码。在一些情况中,解析器/熵解码器(610)还可以(例如使用上下文自适应二进制算术解码)对BV值的BV差进行熵解码,随后将该BV差与相应的BV预测值组合以重构BV值。具体地,对于跳跃模式的帧内BC预测的块,将BV差从位流中解析出来,并将其与(例如,用BV预测值索引值指示的)BV预测值组合以重构BV值。此外,解析器/熵解码器(610)还可解码来自经编码的视频位流(605)的指示是否以及如何执行SAO滤波(例如,使用样本_自适应_偏移_启用_标志、片_sao_亮度_标志和/或片_sao_色度_标志)的句法值。

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

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

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

帧内/帧间切换选择对于给定块的预测(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滤波,以便自适应地平滑各帧中的各边界上的间断。例如,SAO滤波可基于序列参数集的样本_自适应_偏移_启用_标志的值来选择性地应用,并分别基于片_sao_亮度_标志和片_sao_色度_标志的值来更具体地应用于片的亮度和色度值中的任一者或两者,如下文所讨论的。

可替换地或另外地应用其它滤波(例如去振铃滤波或ALF;未示出)。小块边界可以被选择性地滤波或根本不滤波,这取决于解码器(600)的设置或经编码的比特流数据内的句法指示。经解码的图片缓冲区(670)缓冲经重构的当前图片以供在后续的经运动补偿的预测中使用。

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

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

VII.SAO滤波

一般而言,SAO滤波被设计成降低不合乎需要的视觉伪像,包括可与大变换混合在一起的振铃伪像。SAO滤波还被设计成通过首先用所选分类器将区域样本分类成多个类别、获得每一类别的偏移、并将该偏移添加到该类别的每一样本,来降低区域中的平均样本失真。

SAO滤波通过应用偏移值在去块滤波之后修改样本。SAO可以用信号通知来在序列参数集(SPS)的基础上、在特定SPS内在逐片的基础上、或在特定片内在编码树单元的基础上应用。编码树单元可以是亮度值的编码树块(CTB)或色度值的编码树块。例如,对于给定亮度或色度CTB,取决于样本位置处的局部梯度,特定正或负偏移值可被应用于该样本。

根据H.265/HEVC标准,句法元素sao_类型_索引(sao_type_idx)的值等于0指示SAO不被应用于该区域,sao_类型_索引等于1用信号通知使用带偏移类型的SAO滤波(BO),且sao_类型_索引等于2用信号通知使用边缘偏移类型的SAO滤波(EO)。就此,CTB中亮度值的SAO滤波可由第一句法元素(sao_类型_索引_亮度(sao_type_idx_luma))来控制,而CTB中色度值的SAO滤波可由第二句法元素(sao_类型_索引_色度(sao_type_idx_chroma))来控制。

在边缘偏移(EO)模式SAO滤波(由sao_类型_索引等于2指定)的情况下,句法元素sao_eo_类(sao_eo_class)(它具有从0到3的值)用信号通知水平、垂直、或两个对角梯度之一是否被用于EO滤波。图7(a)-7(d)10描绘EO类型SAO滤波中使用的四个梯度(或方向)模式710、712、714、716。在图7(a)-7(d)中,标记了“p”的样本指示要被考虑的中心样本。标记了“n0”和“n1”的样本指定沿梯度模式的两个相邻样本。图7(a)的模式710示出了水平梯度模式(sao_eo_class(sao_eo_类)=0),图7(b)的模式712示出了垂直梯度模式(sao_eo_class=1),图7(c)的模式714示出了135°的对角模式(sao_eo_class=2),而图7(d)的模式716示出了45°的对角模式(sao_eo_class=3)。

在边缘偏移(EO)模式中,一旦为CTB选定了特定sao_eo_类,该CTB中的所有样本就通过将位于p处的样本值与位于n0和n1处的两个相邻样本值相比较来被分类成五个边缘索引(EdgeIdx)类别之一,如表1所示。这一边缘索引分类在编码器和解码器两者处针对每一样本来完成,所以不需要该分类的附加信令。具体而言,在SAO滤波被确定为要由编码器执行时(例如,根据所公开的技术中的任一种)并且在EO滤波被选择时,分类由编码器根据表1中的分类规则来执行。在解码器侧,在SAO滤波被指定为要针对特定序列、片、或CTB执行时,且在EO滤波被指定时,分类也将由解码器根据表1中的分类规则来执行。换言之,边缘索引可以通过edgeIndex=2+sign(p-n0)+sign(p-n1)来计算,其中sign(x)对于x>0是1且对于x==0是0且对于x<0是-1。在edgeIdx(边缘索引)等于0、1或2时,edgeIdx被如下修改:

edgeIdx=(edgeIdx==2)?0:(edgeIdx+1)

表1:SAO边缘类中的样本边缘索引类别

对于从1到4的样本类别,为每一类别指定特定偏移值,表示为边缘偏移,它被添加到样本值。因而,总共四个边缘偏移由编码器来估计并传送给每一CTB的解码器以供边缘偏移(EO)滤波。

为降低用于传送最初作为有符号值的四个边缘偏移的位开销,HEVC/H.265为类别1和2指定正偏移值且为类别3和4指定负偏移值,因为这覆盖了大多数相关情况。图8包括示出用于类别1和2的正偏移值如何更改样本值(样本值p)的示图810以及示出用于类别3和4的负偏移值如何更改样本值(样本值p)的示图812。

在带偏移(BO)模式SAO滤波(由sao_类型_索引等于1来指定)中,所选偏移值直接依赖于样本振幅。整个相关样本振幅范围被分成32个带,且属于四个连贯带的样本值通过添加表示为带偏移的值来修改。使用四个连贯带的主要原因在于以下事实:其中可能出现带伪像的平坦区域,CTB中的大多数样本振幅往往仅集中于几个带中。另外,这一设计选择与也使用四个偏移值的边缘偏移类型统一。对于带偏移(BO),各像素首先通过像素值被分类。带索引(bandIndex)通过bandIndex=p>>(bitdepth-5)来计算,其中p是像素值且bitdepths是像素的位深。例如,对于8位像素,[0,7]中的像素值具有索引0,[8,15]中的像素值具有索引1,等等。在BO中,属于指定带索引的像素通过添加有符号偏移来被修改。

对于边缘偏移(EO)滤波,要使用的最佳梯度(或有向)模式和四个对应偏移由编码器来确定。对于带偏移(BO)滤波,带的起始位置也由编码器确定。各参数可被显式地编码或可从左CTB或上CTB继承(在后一情况下,由特殊合并标志来用信号通知)。

概括而言,SAO是允许以线性滤波器不能达到的方式来实现重构误差的附加最小化的非线性滤波操作。SAO滤波被特别地配置以增强边缘锐度。另外,已发现,SAO对于抑制伪边缘(称为“带伪像”)以及来自变换域中的高频分量的量化误差的“振铃伪像”非常高效。

VIII.用于SAO滤波的编码器侧决定的示例性方法

下文公开了可由编码器执行以确定是否以及如何执行SAO滤波的示例方法。各方法可被用作例如如下过程的一部分:用于确定对于序列参数集而言样本_自适应_偏移_启用_标志的值应当是什么;对于特定片而言片_sao_亮度_标志和片_sao_色度_标志的值分别应当是什么;如何和何时应当为特定CTU指定sao_类型_索引_亮度和sao_类型_索引_色度句法元素;以及如何和何时应当为特定CTU指定因EO和BO而异的句法元素。

然而,所公开的示例不应被解释为限制性的,因为它们可按许多方式修改而不背离本底层发明的原理。同样,各方法中的任一种可以单独或接合一个或多个其他SAO确定方法来使用。例如,所公开的方法中的任一种可以是供编码器确定是否以及如何应用SAO滤波的起作用的(但非唯一)因素。

此外,在一些情况下,所公开的方法被用作用于确定是否执行SAO滤波的过程的至少一部分,但不一定是用于确定要执行哪一类型的SAO滤波(EO或BO)的过程的一部分。在这样的情况下,其他技术可被用来确定是指定EO还是BO滤波。

A.使用去块滤波前的像素

在SAO中,应用去块滤波后的像素通过添加有符号偏移被修改。根据所公开的技术的一些实施例,一个或多个SAO参数(例如,SAO类型、偏移、和/或某一其他必要信息)根据在应用去块滤波之前的一个或多个像素(例如,一个或多个去块滤波前像素)来确定。具体而言,在所公开的技术的特定实施例中,去块滤波前像素被用于SAO滤波决定中的一者或多者,包括:(a)是否执行SAO滤波(例如,样本_自适应_偏移_启用_标志的值);(b)对于特定片的亮度值是否执行SAO滤波(例如,片_sao_亮度_标志的值);(c)对于特定片的色度值是否执行SAO滤波(例如,片_sao_色度_标志的值);(d)SAO所使用的梯度方向(例如,sao_eo_类的值);(e)指示SAO边缘类的边缘索引(例如,边缘索引的值);(f)边缘偏移SAO滤波的偏移值;(g)带偏移SAO滤波的偏移值;和/或(f)编码器指定的任何其他SAO滤波信息。

编码器可以执行用于在图片或图片部分的像素被去块滤波器(例如,在图5a的(565)处内环路应用的去块滤波器)滤波之前使用该像素确定这些SAO滤波决定和/或SAO参数规范中的任一者的计算。所得的决定和/或SAO参数规范随后可经由对应的SAO句法元素被编码在位流中。在解码器处,一旦去块滤波之后的像素是可用的,就可接着根据所指定的SAO参数执行SAO滤波。

这一实施例对于配置成在图片被解码时只对整个图片而非对图片部分(如片)应用去块滤波的编码器可特别有用。对于这样的编码器,使用去块滤波后像素来进行SAO参数决定在计算上是高效的且未必是存储器密集的。一些视频会议编码器展现出这一行为,从而使得使用至少一些去块前像素来用于SAO参数决定是合乎需要的。

此外,在一些实现中,在编码器决定一个或多个SAO参数时,来自应用去块滤波之后的像素中的一些是可用的而其他是不可用的。在这种情况下,编码器可以基于像素的混合(例如,像素中的一者或多者是应用了去块滤波前的像素且像素中的一者或多者是应用了去块滤波后的像素)来决定SAO参数。根据去块前和去块后像素的混合来确定的SAO参数随后可在位流中用信号通知。在特定实现中,在应用去块滤波后的像素可用时,它们优选地用于SAO决定,而在其他实施例中,去块前像素是优选的。

图9是示出根据所公开的技术的这一方面的用于执行SAO滤波的示例性实施例的流程图(900)。所公开的实施例可由实现视频编码器或图像编码器的计算设备执行,它可被进一步配置成产生符合H.265/HEVC标准的位流。该特定实施例不应被解释为限制性的,因为所公开的方法动作可以单独地、以不同次序、或至少部分地彼此同时执行。此外,所公开的方法或方法动作中的任一者可以与本文公开的任何其他方法或方法动作一起执行。

在(910),将多阶段滤波过程应用于当前被编码的图片部分,多阶段滤波过程包括将去块滤波应用于图片部分的各像素并随后将样本自适应偏移(SAO)过程应用于图片部分的去块后像素。在(912),指定控制SAO过程的应用的一个或多个SAO参数。在这一实施例中,图片部分的一个或多个去块前像素被用来确定所指定的SAO参数。在(914),生成对图片部分和控制SAO过程的应用的一个或多个SAO参数进行编码的位流。在(916),输出位流。

在一些情况下,样本自适应偏移(SAO)过程包括应用边缘偏移(EO)技术,且指定SAO参数的动作包括指定指示EO类的SAO参数和指示EO技术的偏移值的SAO参数。在这种情况下,指示EO类的SAO参数可指示在将EO技术应用于图片部分时多个有向一维模式中的哪一个要被使用。在其他情况下,SAO过程包括应用带偏移(BO)技术,且指定SAO参数的动作包括指定指示用于应用偏移值的起始带位置的SAO参数和指示BO技术要被应用到的带的偏移值的SAO参数。在一些实施例中,图片部分是编码树单元。

B.使用“跳过模式”或其他编码器侧参数作为用于确定SAO参数的基础

在另一实施例中,在编码过程期间设置但不与SAO处理直接相关的编码器侧参数被至少部分地用作用于决定是否为图片、片、CTU和/或其他图片或图片部分执行SAO滤波的基础。例如,在一个特定实施例中,对于用信号通知了“跳过模式”的编码树单元(“CTU”),一个或多个SAO参数的编码器侧决定被跳过。具体而言,如果被编码器编码的当前CTU是跳过模式CTU(这意味着当前CTU只复制来自一个或多个其他图片的像素),则对于该CTU,编码器可跳过SAO决定过程。因而,编码器可简单地决定SAO不被应用于已被指定为跳过模式CTU的CTU。

在一个示例性实现中,在CTU中的一个或多个编码单元(CU)是或将要是被用信号通知为“跳过模式”编码单元时,编码器将该CTU的sao_类型_索引值设为0。因为跳过模式是在编码单元的基础上用信号通知的(例如,使用cu_跳过_标志),所以编码器可被配置成只有在被编码的当前CTU的所有CU都是“跳过模式”CU时才禁用SAO滤波。在其中CTU只包括单个CU的情况下,这一决定可被简化为只评估该单个CU是否是“跳过模式”CU。另外,这一决定作出技术可被扩展到下文描述的其他示例实施例。此外,在片的所有亮度或色度CTU是“跳过模式”CTU时,片级SAO标志可被设置以禁用SAO滤波(例如,分别是片_sao_亮度_标志和片_sao_色度_标志)。类似地,在序列的帧间编码的图片中的所有亮度或色度CTU是“跳过模式”CTU时,图片级SAO标志可被设置以禁用SAO滤波(例如,样本_自适应_偏移_启用_标志)。

在又一些实施例中,编码器所指定的其他参数可被用作用于在CTU级、片级、和/或图片级启用SAO滤波的基础。例如,在一个实现中,指示编码单元的预测模式的标志(例如,预测_模式_标志(pred_mod_flag))被使用。例如,在该标志指示CTU的一个或多个CU要使用帧间预测编码来被编码时,可为该CTU禁用SAO滤波。这是因为,一般而言,用帧间预测编码来编码的CTU的残余部分小于在CTU用帧内预测编码来编码时的残余部分。在另一实现中,指示是否要执行缩放和变换过程和内环路滤波的标志(例如,cu_变换量_绕过_标志(cu_transquant_bypass_flag))被使用。例如,在这一标志指示对于CTU的一个或多个CU而言要绕过缩放和变换过程以及内环路滤波过程时,编码器可为当前CTU自动禁用SAO滤波;或者在一些实现中,确定当前CTU中cu_变换量_绕过_标志等于1的CU的数量是否超过阈值并基于这一确定来为当前CTU禁用SAO滤波。在又一实现中,指示CTU或其他图片部分中的亮度或色度变换块是否具有不等于0的一个或多个变换系数级的句法元素(例如,cbf_亮度(cbf_luma)、cbf_cb以及cbf_cr)被使用。例如,如果这些句法元素指示CTU的对应亮度或色度变换块具有全部等于0的变换系数,则编码器可以指定对于CTU的对应亮度或色度值,SAO滤波被禁用。或者,在一些实现中,如果CTU的具有非零系数的变换块的数量小于某一阈值(例如,任何合适的整数值),则SAO滤波可被禁用。

在又一些实施例中,编码器可以使用其他准则来作出SAO不被应用于当前CTU的决定。例如,如果对于当前CTU不存在用信号通知的残余,则编码器可以决定不对当前CTU应用SAO。这是根据以下事实得出的:如果没有用信号通知的残余,则当前CTU编码的编码过程可以(或已被)在很少到没有分辨率损失的情况下执行,从而使得进一步滤波是不必要的。缺少残余可以在编码器遇到的许多情形下体验到,包括其中存在具有很少到没有移动的静止图片的情形或在存在很大区域的相似像素时。类似地,如果对当前CTU用信号通知的残余低于某一阈值(例如,选择来平衡视觉质量与性能的任何合适的值),则编码器可以决定不对当前CTU应用SAO。

在又一些实施例中,编码器可以基于准则的组合来作出决定以启用或禁用SAO。例如,多个准则可被评估,它们中的任一个可足以触发编码器启用或禁用SAO滤波。或者,在一些情况下,多个准则可被评估,它们全部必须被满足才能触发编码器启用或禁用SAO滤波。另外,这些中的某一组合可被用来确定何时启用或禁用SAO滤波(例如,如果(准则AAND(与)准则B)OR(或)准则C,则禁用SAO滤波)。

图10是示出根据所公开的技术的这一方面的用于确定何时应用第二阶段滤波(如SAO滤波)的示例性实施例的流程图(1000)。所公开的实施例可由实现视频编码器或图像编码器的计算设备执行,它可被进一步配置成产生符合H.265/HEVC标准的位流。该特定实施例不应被解释为限制性的,因为所公开的方法动作可以单独地、以不同次序、或至少部分地彼此同时执行。此外,所公开的方法或方法动作中的任一者可以与本文公开的任何其他方法或方法动作一起执行。

在(1010),对于当前被编码的图片部分,至少部分地基于指示从编码得到的图片部分的残余数据的量的数据来作出与是否应用多阶段滤波过程的第二阶段滤波有关的确定。在(1012),基于该确定来指定控制第二阶段滤波的应用的一个或多个句法元素。在(1014),生成对图片部分和所指定的控制第二阶段滤波的应用的一个或多个句法元素进行编码的位流。在(1016),输出位流。

多阶段滤波过程的第二阶段可包括样本自适应偏移(SAO)滤波,且第一阶段可包括去块滤波。此外,被编码的图片部分可以是片、编码树单元、编码单元、或其他合适的图片部分中的任一者。

确定是否应用第二阶段滤波的动作可包括只有在指示残余数据的量的数据指示不存在从编码得到的图片部分的残余数据的情况下才确定禁用第二阶段滤波。确定是否应用第二阶段滤波的动作可另选地包括只有在指示残余数据的量的数据指示残余数据的量小于阈值的情况下才确定禁用第二阶段滤波。

指示图片部分的残余数据的量的数据可包括指示残余数据的量但本身不控制第二阶段滤波的句法元素。例如,指示残余数据的量的句法元素可以是指示跳过模式要被应用于图片部分的句法元素。此外,在这种情况下,确定可包括在跳过模式要被应用于图片部分的情况下确定禁用第二阶段滤波。此外,指示残余数据的量的句法元素可包括以下之一:(a)指示图片部分的预测模式的句法元素;(b)指示图片部分中的变换系数是否不等于零的句法元素;或(c)指示图片部分的缩放和变换要被绕过的句法元素。

在要应用第二阶段滤波时,该方法还可包括在应用滤波的第一阶段之前使用图片部分的至少一些像素值来确定与滤波的第二阶段的应用相关联的一个或多个参数。在一些实现中,一个或多个去块后像素值也被使用。

此外,在一些情况下,第二阶段滤波可包括边缘偏移滤波过程,并且该方法还可包括在要应用第二阶段滤波时,应用边缘滤波以确定图片部分中的边缘方向(如下所述),从而避免被指定与边缘偏移滤波一起使用的多个梯度模式的单独应用。

C.用于应用SAO滤波的自适应技术

在其他编码器实施例中,编码器被配置成为不同图片自适应地启用或禁用SAO滤波。例如,在一个示例性编码器实现中,编码效率(例如,编码速度)可被用作用于确定是否为CTU、片、图片或其他图片部分用信号通知SAO滤波的基础。作为示例,编码器可被配置成监视其编码效率(例如,作为处理时间或处理周期的测量);在被编码的当前CTU、片、图片、或其他图片部分的处理时间落在最小阈值之下时,编码器可决定为该CTU、片、图片、或图片部分禁用SAO滤波。因而,当在决定SAO参数之前编码器发现它已经花费过多时间时,它可简单地跳过针对当前CTU、片、图片、或图片部分的SAO决定过程。

图11是示出根据所公开的技术的这一方面的用于确定是否应用多阶段滤波过程的第二阶段滤波的示例性实施例的流程图(1100)。所公开的实施例可由实现视频编码器或图像编码器的计算设备执行,它可被进一步配置成产生符合H.265/HEVC标准的位流。该特定实施例不应被解释为限制性的,因为所公开的方法动作可以单独地、以不同次序、或至少部分地彼此同时执行。此外,所公开的方法或方法动作中的任一者可以与本文公开的任何其他方法或方法动作一起执行。

在(1110),对于当前被编码的图片部分,至少部分地基于视频编码器或图像编码器的编码效率来作出与是否应用多阶段滤波过程的第二阶段滤波有关的判定。在(1112),基于该确定来选择性地应用第二阶段滤波。在(1114),基于该确定来指定控制第二阶段滤波的应用的一个或多个句法元素。在(1116),生成对图片部分和所指定的控制第二阶段滤波的应用的一个或多个句法元素进行编码的位流。在(1118),输出位流。

多阶段滤波过程的第二阶段可包括样本自适应偏移(SAO)滤波,且第一阶段可包括去块滤波。此外,所编码的图片部分可以是编码树单元。

编码效率可通过在对当前被编码的图片部分进行编码时的处理器时间来测量。例如,在这种情况下,该确定可以是通过将处理器时间与阈值进行比较并在处理器时间超过阈值的情况下确定禁用第二阶段滤波来执行的。编码效率可另选地通过在对当前被编码的图片部分进行编码时所使用的处理器周期数来测量。在这种情况下,该确定可以是通过将处理器周期数与阈值进行比较并在处理器周期数超过阈值的情况下确定禁用第二阶段滤波来执行的。此外,在一些实施例中,编码效率是通过在对一个或多个先前已编码的图片部分进行编码时使用的处理器时间或处理器周期数来测量的。

D.周期性SAO滤波

在其他编码器实施例中,编码器可以周期性地用信号通知SAO滤波并应用SAO参数确定过程。例如,在一个实现中,编码器可被配置成每n个图片启用SAO滤波并应用SAO参数确定过程,其中n可以是任何整数(例如,n=2、3、4、5、6、7、8,或任何其他整数值)。例如,如果n被设置为4,则这意味着编码器可以对图片0应用SAO滤波和SAO参数确定过程,并对图片1、2和3禁用SAO滤波;并随后对图片4启用SAO滤波且应用SAO参数确定过程。

这一周期性SAO滤波方法也可被适配在更精细的粒度水平。例如,编码器可被配置成针对图片中的各片或图片中的各CTU来周期性地启用SAO滤波且应用SAO参数确定过程。例如,编码器可被配置成每n个片或每n个CTU来启用SAO滤波,其中n是上述任何整数值。

此外,在一些实施例中,SAO滤波到图片区域(例如,到片和CTU)的周期性应用可区域性地变化,使得一些区域不会逐图片地禁用SAO滤波。例如,编码器可被配置成使得对于第一图片而言,片0禁用SAO滤波且片1启用SAO滤波,而对于第二图片而言,片0启用SAO滤波且片1禁用SAO滤波,其中第二图片连贯地伴随在第一图片之后。给定视频的相对高的帧率(例如,每秒24帧或更大),这一经平衡的方法可以产生经重构的视频流中的视觉上察觉不到的差异。

图12是示出根据所公开的技术的这一方面的用于确定是否应用多阶段滤波过程的第二阶段滤波的示例性实施例的流程图1200。所公开的实施例可由实现视频编码器或图像编码器的计算设备执行,它可被进一步配置成产生符合H.265/HEVC标准的位流。该特定实施例不应被解释为限制性的,因为所公开的方法动作可以单独地、以不同次序、或至少部分地彼此同时执行。此外,所公开的方法或方法动作中的任一者可以与本文公开的任何其他方法或方法动作一起执行。

在(1210),对于被编码的图片或图片部分序列,多阶段滤波过程的第二阶段滤波被周期性地应用(例如,根据固定周期)。在(1212),对于该序列中的每一图片或图片部分,指定用于控制第二阶段滤波的一个或多个句法元素,包括用信号通知第二阶段滤波的周期性应用的句法元素(例如,样本_自适应_偏移_启用_标志、片_sao_亮度_标志、片_sao_色度_标志、sao_类型_索引_亮度、和/或sao_类型_索引_色度句法元素,它们可被周期性地指定,如上所述)。在(1214),生成对图片部分序列和所指定的控制第二阶段滤波的应用的一个或多个句法元素进行编码的位流。在(1216),输出位流。

多阶段滤波过程的第二阶段可包括样本自适应偏移(SAO)滤波,且第一阶段可包括去块滤波。此外,图片部分可以是编码树单元。

周期性地应用第二阶段滤波的动作可包括每n个图片或图片部分来应用第二阶段滤波。作为示例,第二阶段滤波可每四个图片来被应用。已经观察到这一值提供编码能力和性能之间的良好折中。

E.使用边缘检测

在其他编码器实施例中,并为了提高编码效率(和/或降低编码复杂度),边缘检测被用来决定SAO边缘方向以用于EO类SAO滤波。如上所述,在EO类SAO滤波中存在四种类型的边缘方向。编码器可以尝试所有四个可能的方向并随后选择最佳的一个方向,但这一暴力方法可能花费过多编码器时间并降低编码器效率。因此,在一些实现中,编码器被配置成通过使用预分析过程以确定边缘方向而无需尝试四个可能方向中的每一者并随后决定该最佳匹配边缘方向的SAO参数,来选择边缘方向。例如,编码器可以通过采用边缘滤波器(如Sobel算子、Canny算子、LoG(高斯拉普拉斯)滤波器、Rober算子、Prewitt算子、或其他边缘方向算子)来选择边缘方向。这样的边缘方向算子可被用来标识(例如,CTU中的)边缘方向并随后选择最接近的可用SAO边缘方向(例如,来自图7中所示的且在HEVC/H.265标准中可用的各方向)。通过使用边缘方向算子,编码器可以避免必须分开计算四个可用方向中的每一个方向并选择最佳方向,且可改为更高效地且直接地标识要选择四个方向中的哪一个。

图13是示出根据所公开的技术的这一方面的用于执行边缘偏移(EO)过程的示例性方法的流程图1300。所公开的实施例可由实现视频编码器或图像编码器的计算设备执行,它可被进一步配置成产生符合H.265/HEVC标准的位流。该特定实施例不应被解释为限制性的,因为所公开的方法动作可以单独地、以不同次序、或至少部分地彼此同时执行。此外,所公开的方法或方法动作中的任一者可以与本文公开的任何其他方法或方法动作一起执行。

在(1310),边缘偏移(EO)过程被应用于当前被编码的图片部分,包括将边缘滤波应用于图片部分以标识多个可用EO类中要使用的一个EO类,多个可用EO类中的每一者与不同方向相关联,在后续EO处理期间将沿该方向评估各像素值。后续EO处理可包括例如确定沿所标识的EO类的方向的图片部分中的像素是否包括局部谷、局部峰、凹角、或凸角,并从而确定在EO处理期间要应用正偏移值还是负偏移值。在(1312),指定指示在EO处理期间多个可用EO类中的哪一个要被使用的SAO参数。在(1314),生成对图片部分和指示多个可用EO类中的哪一个要被用于EO处理的SAO参数进行编码的位流。在(1316),输出位流。

图片部分可以是编码树单元。指示多个可用EO类中的哪一个要被用于EO处理的SAO参数可以针对图片部分中的亮度值或图片部分中的色度值。在特定实现中,边缘滤波包括Canny算子、Sobel算子、或用于检测边缘方向的其他边缘滤波。在一些实施例中,EO过程的应用省略或跳过与多个可用EO类中的每一者相关联的方向模式的分开应用。

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

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号