用于在视频译码中自适应的环路滤波的线路缓冲减少的制作方法

文档序号:21368920发布日期:2020-07-04 04:44阅读:233来源:国知局
用于在视频译码中自适应的环路滤波的线路缓冲减少的制作方法

本申请案要求2017年11月28日申请的美国临时申请案第62/591,504号的益处,且要求2018年11月26日申请的美国申请案第16/200,197号的优先权,所述申请案的全部内容以引用的方式并入本文中。

本公开涉及视频编码及解码。



背景技术:

数字视频能力可并入到广泛范围的装置中,所述装置包含数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放机、视频游戏装置、视频游戏主控台、蜂窝蜂窝式或卫星无线电电话(所谓的“智能电话”)、视频电传会议装置、视频流式传输装置等等。数字视频装置实施视频压缩技术,例如由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4第10部分、高级视频译码(avc)、itu-th.265、高效率视频译码(hevc)标准所定义的标准及这些标准的扩展中所描述的那些视频压缩技术。视频装置可通过实施这些视频压缩技术而更高效地发射、接收、编码、解码及/或存储数字视频信息。

视频压缩技术可执行空间(图片内)预测及/或时间(图片间)预测来减少或去除视频序列中固有的冗余。对于基于块的视频译码,视频切片(例如,视频帧或视频帧的一部分)可分割成视频块,例如译码树型块及译码块。空间或时间预测产生用于待译码块的预测性块。残余数据表示待译码的原始块与预测性块之间的像素差。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生可接着进行量化的残余变换系数。



技术实现要素:

一般来说,本公开描述与供用于视频译码的滤波器有关的技术。在一些实例中,本公开描述用于在视频译码中使用的自适应环路滤波器(alf)及双向滤波器的复杂度降低的技术。本公开的技术可包含基于块内的样本的位置针对块的某些样本启用或停用滤波器(例如,alf、双向滤波器,或其它滤波器)。本公开的其它技术包含使用填补样本而非最大译码单元行外部的样本来执行滤波。以此方式,对存储来自相邻块的样本的线缓冲器的需求可消除及/或减少。本公开的技术可用于高级视频编解码器的上下文,例如hevc的扩展或视频译码标准的下一代,例如h.266/vvc(通用视频译码)。

在一个实例中,本公开描述一种译码视频数据的方法,所述方法包括译码视频数据块以获得视频数据的经译码块,将由滤波器支持限定的自适应环路滤波器应用于视频数据的经译码块的样本,包含对滤波器支持的在块外部的部分使用填补样本,及在将自适应环路滤波应用于视频数据的经译码块之后输出视频数据的经译码块。

在另一实例中,本公开描述一种经配置以译码视频数据的设备,所述设备包括存储器,其经配置以存储视频数据的经译码块;及一或多个处理器,其在与存储器通信的电路中实施,所述一或多个处理器经配置以译码视频数据块以获得视频数据的经译码块,将由滤波器支持限定的自适应环路滤波器应用于视频数据的经译码块的样本,包含对滤波器支持的在块外部的部分使用填补样本,及在将自适应环路滤波应用于视频数据的经译码块之后输出视频数据的经译码块。

在另一实例中,本公开描述一种经配置以译码视频数据的设备,所述设备包括用于译码视频数据块以获得视频数据的经译码块的装置,用于将由滤波器支持限定的自适应环路滤波器应用于视频数据的经译码块的样本,包含对滤波器支持的在块外部的部分使用填补样本的装置,及用于在将自适应环路滤波应用于视频数据的经译码块之后输出视频数据的经译码块的装置。

在另一实例中,本公开描述一种存储指令的非暂时性计算机可读媒体,所述指令在执行时使一或多个处理器:译码视频数据块以获得视频数据的经译码块,将由滤波器支持限定的自适应环路滤波器应用于视频数据的经译码块的样本,包含对滤波器支持的在块外部的部分使用填补样本,及在将自适应环路滤波应用于视频数据的经译码块之后输出视频数据的经译码块。

在随附图式及以下描述中阐述本公开的一或多个方面的细节。本公开中描述的技术的其它特征、目标及优点将从描述及图式且从权利要求书显而易见。

附图说明

图1为说明可使用本公开中所描述的一或多种技术的实例视频编码及解码系统的框图。

图2a及2b为说明实例四分树二叉树(qtbt)结构及对应译码树型单元(ctu)的概念图。

图3说明三个不同实例自适应环路滤波(alf)滤波器支持。

图4为基于矩阵结果(活动值act及方向性d)说明由ci表示的种类索引的实例的概念图。

图5为说明5×5菱形滤波器支持的概念图。

图6为说明几何形状变换的实例的概念图。

图7说明用于galf的实例9×9菱形滤波器支持。

图8为说明用于alf的线缓冲器的概念图。

图9为说明具有运动补偿的填补样本的概念图。

图10a为说明针对alf通过映射来填补的实例使用的概念图。

图10b为说明针对alf通过映射来填补的另一实例使用的概念图。

图11为说明经修改滤波器支持的概念图。

图12为说明可实施本公开中所描述的一或多种技术的实例视频编码器的框图。

图13为说明可实施本公开中所描述的一或多种技术的实例视频解码器的框图。

图14为说明本公开的实例译码方法的流程图。

具体实施方式

一般来说,本公开描述与自适应环路滤波器(alf)及双向滤波器有关的技术。如下文将更详细地解释,本公开描述当执行可使用来自相邻块的样本的alf、双向滤波或其它类型的滤波时可减少用作线缓冲器所需的存储器的量的技术。

图1为说明可使用本公开的技术的实例视频编码及解码系统10的框图。如图1中所展示,系统10包含源装置12,其提供稍后将由目的地装置14解码的经编码视频数据。具体地说,源装置12经由计算机可读媒体16将经编码视频数据提供到目的地装置14。源装置12及目的地装置14可包括广泛范围的装置中的任一者,包含台式计算机、笔记型计算机(即,膝上计算机)、平板计算机、机顶盒、例如所谓的“智能”电话的电话手持机、平板计算机、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置等等。在一些情况下,源装置12及目的地装置14可经装备以用于无线通信。因此,源装置12及目的地装置14可为无线通信装置。可将本公开中所描述的技术应用于无线及/或有线应用。源装置12为实例视频编码装置(即,用于编码视频数据的装置)。目的地装置14为实例视频解码装置(即,用于解码视频数据的装置)。

图1中所说明的系统10仅为一个实例。用于处理视频数据的技术可通过任何数字视频编码及/或解码装置来执行。在一些实例中,可通过视频编码器/解码器(通常被称为“编码解码器”)执行所述技术。源装置12及目的地装置14为源装置12产生经译码视频数据以供发射到目的地装置14的这类译码装置的实例。在一些实例中,源装置12及目的地装置14可以大体上对称方式操作,使得源装置12及目的地装置14中的每一者包含视频编码及解码组件。因此,系统10可支持源装置12与目的地装置14之间的单向或双向视频发射,例如用于视频流式传输、视频播放、视频广播或视频电话。

在图1的实例中,源装置12包含视频源18、经配置以存储视频数据的存储媒体19、视频编码器20及输出接口22。目的地装置14包含输入接口26、经配置以存储经编码视频数据的存储媒体28、视频解码器30及显示装置32。在其它实例中,源装置12及目的地装置14包含其它组件或布置。举例来说,源装置12可从外部视频源(例如,外部相机)接收视频数据。同样地,目的地装置14可与外部显示装置介接,而非包含集成显示装置。

视频源18为视频数据的源。视频数据可包括一系列图片。视频源18可包含视频捕捉装置,例如摄像机、含有先前捕捉的视频的视频存档及/或用于从视频内容提供者接收视频数据的视频馈入接口。在一些实例中,视频源18产生基于计算机图形的视频数据或实况视频、存档视频及计算机产生的视频的组合。存储媒体19可经配置以存储视频数据。在每一情况下,可由视频编码器20编码所捕捉、经预先捕捉或计算机产生的视频。

输出接口22可将经编码视频信息输出到计算机可读媒体16。输出接口22可包括各种类型的组件或装置。举例来说,输出接口22可包括无线发射器、调制解调器、有线网络连接组件(例如,以太网卡)或另一物理组件。在输出接口22包括无线发射器的实例中,输出接口22可经配置以发射根据蜂窝蜂窝式通信标准(例如4g、4g-lte、高级lte、5g等等)调制的数据,例如经编码视频数据。在输出接口22包括无线发射器的一些实例中,输出接口22可经配置以发射根据其它无线标准(例如ieee802.11规范、ieee802.15规范(例如,zigbeetm)、bluetoothtm标准等等)调制的数据,例如经编码视频数据。在一些实例中,输出接口22的电路集成于源装置12的视频编码器20及/或其它组件的电路中。举例来说,视频编码器20及输出接口22可为系统芯片(soc)的部分。soc还可包含其它组件,例如,通用微处理器、图形处理单元等。

目的地装置14可经由计算机可读媒体16接收待解码的经编码视频数据。计算机可读媒体16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一些实例中,计算机可读媒体16包括使得源装置12能够实时将经编码视频数据直接地发射到目的地装置14的通信媒体。通信媒体可包括任何无线或有线通信媒体,例如射频(rf)频谱或一或多个物理传输线。通信媒体可形成基于分组的网络(例如,局域网、广域网或例如因特网的全球网络)的一部分。通信媒体可包含路由器、交换器、基站或可用于促进从源装置12到目的地装置14的通信的任何其它设备。目的地装置14可包括经配置以存储经编码视频数据及经解码视频数据的一或多个数据存储媒体。

计算机可读媒体16可包含暂时性媒体,例如无线广播或有线网络发射,或存储媒体(即,非暂时性存储媒体),例如硬盘、固态驱动器、快闪驱动器、紧密光盘、数字视频光盘、蓝光光盘或其它计算机可读媒体。在一些实例中,网络服务器(未展示)可从源装置12接收经编码视频数据且将经编码视频数据提供到目的地装置14,例如,经由网络发射。类似地,例如光盘冲压设施的媒体生产设施的计算装置可从源装置12接收经编码视频数据且生产含有经编码视频数据的光盘。因此,在各种实例中,计算机可读媒体16可理解为包含各种形式中的任一者的一或多个计算机可读媒体。

在一些实例中,输出接口22可将例如经编码视频数据的数据输出到中间装置,例如存储装置。类似地,目的地装置12的输入接口26可从中间装置接收经编码数据。中间装置可包含多种分布式或本地存取式数据存储媒体中的任一者,例如,硬盘机、固态驱动器、蓝光光盘、dvd、cd-rom、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。在一些实例中,中间装置对应于文件服务器。实例文件服务器包含网页服务器、ftp服务器、网络附接存储(nas)装置或本地磁盘驱动器。

目的地装置14可经由任何标准数据连接(包含因特网连接)存取经编码视频数据。这可包含适用于存取存储于文件服务器上的经编码视频数据的无线通道(例如,wi-fi连接)、有线连接(例如,dsl、缆线调制解调器、光纤等),或两者的组合。来自存储装置的经编码视频数据的发射可为流式传输发射、下载发射或其组合。

目的地装置14的输入接口26从计算机可读媒体16接收数据。输入接口26可包括各种类型的组件或装置。举例来说,输入接口26可包括无线接收器、调制解调器、有线网络连接组件(例如,以太网卡)、光学网络连接卡或另一物理组件。在输入接口26包括无线接收器的实例中,输入接口26可经配置以接收根据蜂窝蜂窝式通信标准(例如,4g、4g-lte、高级lte、5g等等)调制的数据,例如位流。在输入接口26包括无线接收器的一些实例中,输入接口26可经配置以接收根据其它无线标准(例如ieee802.11规范、ieee802.15规范(例如,zigbeetm)、bluetoothtm标准等等)调制的数据,例如位流。在一些实例中,输入接口26的电路可集成到目的地装置14的视频解码器30及/或其它组件的电路中。举例来说,视频解码器30及输入接口26可为soc的部分。soc还可包含其它组件,例如,通用微处理器、图形处理单元等。

存储媒体28可经配置以存储经编码视频数据,例如通过输入接口26接收的经编码视频数据(例如,位流)。显示装置32将经解码视频数据显示给用户。显示装置32可包括多种显示装置中的任一者,所述显示装置例如液晶显示器(lcd)、等离子体显示器、有机发光二极管(oled)显示器或另一类型的显示装置。

视频编码器20及视频解码器单元30各自可实施为各种合适的处理电路中的任一者,例如一或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当所述技术部分以软件实施时,装置可将用于软件的指令存储于合适的非暂时性计算机可读媒体中,且可使用一或多个处理器在硬件中执行所述指令,以执行本公开的技术。视频编码器20及视频解码器30中的每一者可包含于一或多个编码器或解码器中,编码器或解码器中的任一者可集成为相应装置中的组合式编码器/解码器(编解码器)的部分。

在一些实例中,视频编码器20及视频解码器30根据一或多个视频译码标准或规范来编码及解码视频数据。举例来说,视频编码器20及视频解码器30可根据itu-th.261、iso/iecmpeg-1visual、itu-th.262或iso/iecmpeg-2visual、itu-th.263、iso/iecmpeg-4visual及itu-th.264(还被称作iso/iecmpeg-4avc)(包含其可调式视频译码(svc)及多视图视频译码(mvc)扩展)或另一视频译码标准或规范而编码及解码视频数据。在一些实例中,视频编码器20及视频解码器30根据高效视频译码(hevc)标准(其被称为itu-th.265)、其范围及屏幕内容译码扩展、其3d视频译码扩展(3d-hevc)、其多视图扩展(mv-hevc)或其可调式扩展(shvc)而编码及解码视频数据。

itu-tvceg(q6/16)及iso/iecmpeg(jtc1/sc29/wg11)现正研究对于将具有超过当前hevc标准(包含其当前扩展及针对屏幕内容译码及高动态范围译码的近期扩展)的压缩能力的未来视频译码技术标准化的潜在需要。所述群组正共同致力于联合合作工作(被称为联合视频探索小组(jvet))中的此探索活动,以评估由此领域中的专家建议的压缩技术设计。jvet在2015年10月19日到21日期间首次开会。参考软件的最近版本(即,联合探索模型7(jem7))可从https://jvet.hhi.fraunhofer.de/svn/svn_hmjemsoftware/tags/hm-16.6-jem-7.0/下载。jem7的此算法描述可被称作j.chen、e.alshina、g.j.sullivan、j.-r.ohm、j.boyce(jvet-c1001,托里诺,2017年7月)的“联合探索测试模型7(jem7)的算法描述(algorithmdescriptionofjointexplorationtestmodel7(jem7))”。

新的视频译码标准的早期草案,被称作h.266/多功能视频译码(vvc)标准,是在文献jvet-j1001,benjaminbross的“通用视频译码(versatilevideocoding)(草案1)”中获得,且其算法描述是在文件jvet-j1002,jianlechen及elenaalshina的“通用视频译码及测试模型1(vtm1)的算法描述(algorithmdescriptionforversatilevideocodingandtestmodel1(vtm1))”中获得。

本公开的技术可用于高级视频编解码器的上下文中,例如hevc的扩展或下一代视频译码标准(例如,h.266/vvc)中。虽然通常参考hevc及下一代视频译码标准(例如,vvc/jem)描述本公开的技术,但应理解,本公开的技术可与使用环路滤波器(包含alf及解块滤波器)的任何视频译码技术结合使用。

如下文将更详细地解释,视频编码器20及视频解码器30可经配置以减少存储用于自适应环路滤波器(alf)的特定滤波器支持的经解码/经重构建块外部的样本所需的线缓冲器存储器的量的方式将alf应用于视频数据的经解码/经重构建块。举例来说,视频编码器20及视频解码器30可经配置以译码(例如,编码或解码)视频数据块以获得视频数据的经译码块,将由滤波器支持限定的自适应环路滤波器应用于视频数据的经译码块的样本,包含对滤波器支持的在块外部的部分使用填补样本,及在将自适应环路滤波应用于视频数据的经译码块之后输出视频数据的经译码块。

在hevc及其它视频译码规范中,视频数据包含一系列图片。图片还可被称为“帧”。图片可包含一或多个样本阵列。图片的每一相应样本阵列可包括相应色彩分量的样本的阵列。图片可包含三个样本阵列,标示为sl、scb及scr。sl为明度样本的二维阵列(即,块)。scb为cb色度样本的二维阵列。scr为cr色度样本的二维阵列。在其它情况下,图片可为单色的且可仅包含明度样本阵列。

作为编码视频数据的部分,视频编码器20可编码视频数据的图片。换句话说,视频编码器20可产生视频数据的图片的经编码表示。图片的经编码表示在本文中可被称作“经译码图片”或“经编码图片”。

为产生图片的经编码表示,视频编码器20可编码图片的块。视频编码器20可将视频块的经编码表示包含于位流中。在一些实例中,为编码图片的块,视频编码器20执行帧内预测或帧间预测以产生一或多个预测性块。此外,视频编码器20可产生用于块的残余数据。残余块包括残余样本。每一残余样本可指示所产生的预测性块中的一者的样本与块的对应样本之间的差异。视频编码器20可将变换应用于残余样本的块以产生变换系数。此外,视频编码器20可量化变换系数。在一些实例中,视频编码器20可产生一或多个语法元素以表示变换系数。视频编码器20可熵编码表示变换系数的语法元素中的一或多者。

更具体地说,当根据hevc或其它视频译码规范编码视频数据时,为产生图片的经编码表示,视频编码器20可将图片的每一样本阵列分割成译码树型块(ctb)且编码ctb。ctb可为图片的样本阵列中的样本的n×n块。在hevc主规范中,ctb的大小可在16×16到64×64的范围内(尽管技术上可支持8×8ctb大小)。

图片的译码树型单元(ctu)可包括一或多个ctb且可包括用于编码所述一或多个ctb的样本的语法结构。举例来说,每一ctu可包括明度样本的ctb、色度样本的两个对应ctb,及用于编码ctb的样本的语法结构。在单色图片或具有三个单独色彩平面的图片中,ctu可包括单一ctb及用于编码ctb的样本的语法结构。ctu还可被称作“树型块”或“最大译码单元(lcu)”。在本公开中,“语法结构”可定义为以指定次序共同存在于位流中的一或多个语法元素。在一些编解码器中,经编码图片为含有图片的所有ctu的经编码表示。

为编码图片的ctu,视频编码器20可将ctu的ctb分割成一或多个译码块。译码块为样本的n×n块。在一些编解码器中,为编码图片的ctu,视频编码器20可对ctu的译码树型块递归地执行四分树分割以将ctb分割成译码块,因此命名为“译码树型单元”。译码单元(cu)可包括一或多个译码块及用于编码一或多个译码块的样本的语法结构。举例来说,cu可包括具有明度样本阵列、cb样本阵列及cr样本阵列的图片的明度样本的译码块,及色度样本的两个对应译码块,以及用于对译码块的样本进行编码的语法结构。在单色图片或具有三个单独色彩平面的图片中,cu可包括单一译码块及用于译码所述译码块的样本的语法结构。

此外,视频编码器20可编码视频数据的图片的cu。在一些编解码器中,作为编码cu的部分,视频编码器20可将cu的译码块分割成一或多个预测块。预测块为其上应用相同预测的样本的矩形(即,正方形或非正方形)块。cu的预测单元(pu)可包括cu的一或多个预测块及用于预测所述一或多个预测块的语法结构。举例来说,pu可包括明度样本的预测块、色度样本的两个对应预测块,及用于对预测块进行预测的语法结构。在单色图片或具有三个单独色彩平面的图片中,pu可包括单一预测块及用于对所述预测块进行预测的语法结构。

视频编码器20可产生用于cu的pu的预测块(例如,明度、cb及cr预测块)的预测性块(例如,明度、cb及cr预测性块)。视频编码器20可使用帧内预测或帧间预测以产生预测性块。如果视频编码器20使用帧内预测以产生预测性块,那么视频编码器20可基于包含cu的图片的经解码样本产生预测性块。如果视频编码器20使用帧间预测以产生当前图片的pu的预测性块,那么视频编码器20可基于参考图片(即,除当前图片外的图片)的经解码样本产生pu的预测性块。在hevc中,视频编码器20在“coding_unit”语法结构内产生用于帧间预测的pu的“prediction_unit”语法结构,但不在“coding_unit”语法结构内产生用于帧内预测的pu的“prediction_unit”语法结构。实际上,在hevc中,关于帧内预测的pu的语法元素直接包含于“coding_unit”语法结构中。

jem/vvc还提供仿射运动补偿模式,其可被视为帧间预测模式。在仿射运动补偿模式中,视频编码器20可确定表示非平移运动(例如放大或缩小、旋转、透视运动或其它不规则运动类型)的两个或更多个运动向量。

视频编码器20可产生cu的一或多个残余块。举例来说,视频编码器20可产生cu的明度残余块。cu的明度残余块中的每一样本指示cu的预测性明度块中的一者中的明度样本与cu的原始明度译码块中的对应样本之间的差异。另外,视频编码器20可产生用于cu的cb残余块。cu的cb残余块中的每一样本可指示cu的预测性cb块中的中一者中的cb样本与cu的原始cb译码块中的对应样本之间的差异。视频编码器20还可产生cu的cr残余块。cu的cr残余块中的每一样本可指示cu的预测性cr块的中的一者中的cr样本与cu的原始cr译码块中的对应样本之间的差异。

此外,视频编码器20可将cu的残余块分解为一或多个变换块。例如,视频编码器20可使用四分树分割以将cu的残余块分解成一或多个变换块。变换块为供应用相同变换的样本的矩形((例如正方形或非正方形)块。cu的变换单元(tu)可包括一或多个变换块。举例来说,tu可包括明度样本的变换块、色度样本的两个对应变换块,及用于对变换块样本进行变换的语法结构。因此,cu的每一tu可具有明度变换块、cb变换块及cr变换块。tu的明度变换块可为cu的明度残余块的子块。cb变换块可为cu的cb残余块的子块。cr变换块可为cu的cr残余块的子块。在单色图片或具有三个单独色彩平面的图片中,tu可包括单一变换块及用于对变换块的样本进行变换的语法结构。

在jem7中,可使用四分树二进制树(qtbt)分割结构而非使用上述hevc的四分树分割结构。qtbt结构去除多个分区类型的概念。也就是说,qtbt结构去除cu、pu及tu概念的分离,且支持cu分区形状的较多灵活性。在qtbt块结构中,cu可具有正方形或矩形形状。在一个实例中,cu为按四分树结构的第一分区。四分树叶节点通过二叉树结构进一步分割。

在一些实例中,存在两种分裂类型:对称水平分裂及对称竖直分裂。二叉树叶节点被称作cu,且所述分段(即,cu)用于预测及变换处理而无需任何进一步分割。此意味着cu、pu及tu在qtbt译码块结构中具有相同块大小。在jem中,cu有时由具有不同色彩分量的译码块(cb)组成。举例来说,在4:2:0色度格式的p及b切片的情况下,一个cu含有一个明度cb及两个色度cb,且有时由具有单一分量的cb组成。举例来说,在i切片的情况下,一个cu含有仅一个明度cb或仅两个色度cb。

图2a及2b为说明实例四分树二叉树(qtbt)结构130及对应译码树型单元(ctu)132的概念图。实线表示四分树分裂,且点线指示二叉树分裂。在二叉树的每一分裂(即,非叶)节点中,一个旗标经传信以指示使用哪一分裂类型(即,水平或竖直),其中在此实例中,0指示水平分裂且1指示竖直分裂。对于四分树分裂,不存在对于指示分裂类型的需要,这是由于四分树节点将块水平地及竖直地分裂成具有相等大小的4个子块。因此,视频编码器20可编码,且视频解码器30可解码用于qtbt结构130的区域树层级(即实线)的语法元素(例如分裂信息)及用于qtbt结构130的预测树层级(即虚线)的语法元素(例如分裂信息)。视频编码器20可编码,且视频解码器30可解码用于由qtbt结构130的端叶节点表示的cu的视频数据(例如预测及转换数据)。

一般来说,图2b的ctu132可与定义对应于在第一及第二层级处的qtbt结构130的节点的块的大小的参数相关联。这些参数可包含ctu大小(表示样本中的ctu132的大小)、最小四分树大小(minqtsize,表示最小允许四分树叶节点大小)、最大二叉树大小(maxbtsize,表示最大允许二叉树根节点大小)、最大二叉树深度(maxbtdepth,表示最大允许二叉树深度),及最小二叉树大小(minbtsize,表示最小允许二叉树叶节点大小)。

qtbt结构的对应于ctu的根节点可具有在qtbt结构的第一层级处的四个子节点,所述节点中的每一者可根据四分树分割来分割。也就是说,第一层级的节点为叶节点(不具有子节点)或具有四个子节点。qtbt结构130的实例表示例如包含具有用于分支的实线的父节点及子节点的节点。如果第一层级的节点不大于最大允许二叉树根节点大小(maxbtsize),那么其可通过相应二叉树进一步分割。一个节点的二叉树分裂可重复,直到由分裂产生的节点达到最小允许的二叉树叶节点大小(minbtsize),或最大允许的二叉树深度(maxbtdepth)为止。qtbt结构130的实例表示例如具有用于分支的虚线的节点。二叉树叶节点被称作译码单元(cu),其用于预测(例如,图片内或图片间预测)及变换而无需任何进一步分割。如上文所论述,cu还可被称作“视频块”或“块”。

在qtbt分割结构的一个实例中,ctu大小经设定为128×128(明度样本及两个对应64×64色度样本),minqtsize经设定为16×16,maxbtsize经设定为64×64,minbtsize(对于宽度及高度两者)经设定为4,且maxbtdepth经设定为4。四分树分割首先应用于ctu以产生四分树叶节点。四分树叶节点可具有从16×16(即,minqtsize)到128×128(即,ctu大小)的大小。如果叶四分树节点为128×128,那么其将不会由二叉树进一步分裂,这是由于大小超过maxbtsize(即,在此实例中64×64)。否则,叶四分树节点将由二叉树进一步分割。因此,四分树叶节点还是二叉树的根节点并具有为0的二叉树深度。当二叉树深度达到maxbtdepth(在此实例中为4)时,不准许进一步分裂。当二叉树节点具有等于minbtsize(在此实例中为4)的宽度时,其意指不准许进一步水平分裂。类似地,具有等于minbtsize的高度的二叉树节点意指不准许对所述二叉树节点进行进一步竖直分裂。如上文所提及,二叉树的叶节点被称作cu,且根据预测及变换来进一步处理而不进一步分割。

视频编码器20可将一或多个转换应用于tu的转换块以产生tu的系数块。系数块可为变换系数的二维阵列。变换系数可为纯量。在一些实例中,一或多个变换将变换块从像素域转换到频域。因此,在此类实例中,变换系数可为视为在频域中的纯量。变换系数层级为表示在按比例调整变换系数值的运算之前与解码过程中的特定2维频率索引相关联的值的整数量。

在一些实例中,视频编码器20将变换的应用跳到变换块。在此类实例中,视频编码器20可以与变换系数相同的方式处理残余样本值。因此,在视频编码器20跳过变换的应用的实例中,变换系数及系数块的以下论述可适用于残余样本的变换块。

产生系数块之后,视频编码器20可量化系数块以可能地减小用以表示系数块的数据的量,潜在地提供进一步压缩。量化通常是指其中值的范围压缩为单个值的过程。举例来说,可通过以常量除以值且接着舍入到最接近的整数来进行量化。为量化系数块,视频编码器20可量化系数块的变换系数。在一些实例中,视频编码器20跳过量化。

视频编码器20可产生指示一些或所有潜在地经量化的变换系数的语法元素。视频编码器20可熵编码指示经量化变换系数的语法元素中的一或多者。举例来说,视频编码器20可对指示经量化变换系数的语法元素执行上下文自适应二进制算术译码(cabac)。因此,经编码块(例如,经编码cu)可包含指示经量化变换系数的经熵编码语法元素。

视频编码器20可输出包含经编码视频数据的位流。换句话说,视频编码器20可输出包含视频数据的经编码表示的位流。视频数据的经编码表示可包含视频数据的图片的经编码表示。举例来说,位流可包括形成视频数据及相关联数据的经编码图片的表示的位的序列。在一些实例中,经编码图片的表示可包含图片的块的经编码表示。

视频解码器30可接收由视频编码器20产生的位流。如上文所提及,位流可包括视频数据的经编码表示。视频解码器30可解码位流以重建视频数据的图片。作为解码位流的部分,视频解码器30可从位流获得语法元素。视频解码器30可至少部分地基于获自位流的语法元素来重建视频数据的图片。重建视频数据的图片的过程可大体上互逆于由视频编码器20执行以编码图片的过程。

举例来说,作为解码视频数据的图片的部分,视频解码器30可使用帧间预测或帧内预测以产生预测性块。另外,视频解码器30可基于从位流获得的语法元素确定变换系数。在一些实例中,视频解码器30逆量化经确定变换系数。此外,视频解码器30可将逆变换应用于经确定变换系数以确定残余样本的值。视频解码器30可基于残余样本及所产生的预测性块的对应样本来重建图片的块。举例来说,视频解码器30可将残余样本添加到所产生的预测性块的对应样本以确定块的经重建样本。

更具体地说,在hevc及其它视频译码规范中,视频解码器30可使用帧间预测或帧内预测以产生当前cu的每一pu的一或多个预测性块。另外,视频解码器30可逆量化当前cu的tu的系数块。视频解码器30可对系数块执行逆变换以重建当前cu的tu的变换块。视频解码器30可基于当前cu的pu的预测性块的样本及当前cu的tu的变换块的残余样本重建当前cu的译码块。在一些实例中,视频解码器30可通过将当前cu的pu的预测性块的样本添加到当前cu的tu的变换块的对应经解码样本重建当前cu的译码块。通过重建图片的每一cu的译码块,视频解码器30可重建图片。

图片的切片可包含图片的整数数目个块。举例来说,在hevc及其它视频译码规范中,图片的切片可包含图片的整数数目个ctu。切片的ctu可按扫描次序(例如光栅扫描次序)连续定序。在hevc中,切片经定义为含于同一存取单元内的一个独立切片分段及先于下一独立切片分段(如果存在)的所有后续相依切片分段(如果存在)中的整数数目个ctu。此外,在hevc中,切片分段经定义为在图像块扫描中经连续定序且含于单一nal单元中的整数数目个ctu。图像块扫描为分割图片的ctb的特定顺序定序,其中ctb在图片块中在ctb光栅扫描中经连续定序,而图片中的图像块是在图片的图像块的光栅扫描中经连续定序。图像块为图片中的特定图像块列及特定图像块行内的ctb的矩形区。

在视频译码的领域中,通常应用滤波以便增强经解码视频信号的质量。滤波还可应用于视频编码器20及视频解码器30的重建环路中。滤波器可应用为后置滤波器,其中经滤波帧并非用于未来帧的预测,或滤波器可应用为环路内滤波器,其中经滤波帧可用于预测未来帧。滤波器可通过例如最小化原始信号与经解码经滤波信号之间的误差进行设计。类似于变换系数,视频编码器20可通过以下量化译码滤波器的系数h(k,l),k=-k,…,k,l=-k,…k:

f(k,l)=round(normfactor·h(k,l))

视频编码器20可将经译码经量化系数发送到视频解码器30。normfactor可等于2n。normfactor的值越大,量化越精密,且经量化滤波器系数f(k,l)提供更好性能。然而,normfactor的较大值产生要求发射更多位的系数f(k,l)。

在视频解码器30中,经解码滤波器系数f(k,l)如下应用于经重建图像r(i,j):

其中i及j为帧内的像素的坐标。

环路内自适应环路滤波器(alf)在hevc开发阶段期间经评估,但alf不包含于hevc标准的最终版本中。

jem中采用的一个实例环路内alf描述于j.chen等人在2015年1月的“对于下一代视频译码的译码工具设想(codingtoolsinvestigationfornextgenerationvideocoding)”,sg16-geneva-c806中。基本想法与hm-3中的具有基于块的适应的alf相同。(参见t.wiegand等人在2011年3月16日到23日的第5次会议:日内瓦,ch的itu-tsg16wp3及iso/iecjtc1/sc29/wg11的视频译码联合合作小组(jct-vc),jctvc-e603,“wd3:高效率视频译码的工作草案3(wd3:workingdraft3ofhigh-efficiencyvideocoding)”)。

对于明度分量,视频编码器20及视频解码器30可基于1d拉普拉斯(laplacian)方向(最多3个方向)及2d拉普拉斯活动(最多5个活动值)对图片中的4×4块进行分类。方向dirb及未经量化活动actb的计算展示于方程(2)到(5)中,其中指示具有4×4块的左上方的相对坐标(i,j)的经重建像素。actb进一步经量化到0到4范围(包含端值)内,如t.wiegand等人在2011年3月16日到23日的第5次会议:日内瓦,ch的itu-tsg16wp3及iso/iecjtc1/sc29/wg11的视频译码联合合作小组(jct-vc),jctvc-e603,“wd3:高效率视频译码的工作草案3”中所描述。

总计,视频编码器20及视频解码器30可经配置以将每一块分类成15(5×3)分之一群组,且索引根据块的dirb及actb的值分配给每一4×4块。通过c表示群组索引,且分类经设定等于其中为actb的经量化值。

可如下执行用以获得活动值actb到活动索引的量化过程。基本上,此过程定义关于在dirb相同时如何将具有不同活动的块合并到一个种类的规则。actb的量化过程定义如下:

avg_var=clip_post((num_entry-1),(actb*scalefactor)>>shift);

其中num_entry被设置成16,scalefactor被设置成114,shift等于(3+内部经译码位深度),activitytoindex[num_entry]={0,1,2,2,2,3,3,3,3,3,4,4,4,4,4,4}},且函数clip_post(a,b)返回a与b之间的较小值。

因此,可针对图片的明度分量传信达到15个alf参数集。为节省传信成本,视频编码器20可经配置以沿群组索引值合并群组。对于每一经合并群组,传信alf系数集。在jem2.0的一个实例中,支持最多三个圆形对称滤波器形状(例如,如图3中所示)。图3展示5×5菱形滤波器支持300、7×7菱形滤波器支持302及截断9×9菱形滤波器支持304。在一个实例中,对于图片中的两个色度分量,应用单一alf系数集且始终使用5×5菱形形状滤波器。图3中的符号ci(例如,c0、c1、c2等)表示滤波器系数。

在一些实例中,在视频解码器30处,每一像素样本经滤波,产生如方程(6)中所示的像素值i′i,j,其中l表示滤波器长度,fm,n表示滤波器系数,且o指示滤波器偏移,

其中且(o=(1<<(bdf-2))。在jem2中,由bdf表示的位深度被设置成9,这意味着滤波器系数可能在[-256,256]范围内。应注意,对于一些实例,仅最多一个滤波器支持两个色度分量。

现将论述滤波器系数的时间预测。视频编码器20及/或视频解码器30可经配置以存储先前经译码图片的alf系数且可经配置以将这类系数重复使用为当前图片的alf系数。对于当前图片,视频编码器20及/或视频解码器30可经配置以经选择以使用经存储用于参考图片的alf系数且绕过alf系数传信。在此情况下,仅将索引传信到参考图片中的一者,且针对当前图片仅继承(例如,重复使用)所指示参考图片的所存储alf系数。为指示时间预测的用途,视频编码器20可经配置以在发送索引之前首先译码一个旗标。

现将论述基于几何变换的alf。在m.karczewicz,l.zhang,w.-j.chien,x.li,2016年2月20日到2月26日第2次会议:美国,圣地亚哥的itu-tsg16wp3及iso/iecjtc1/sc29/wg11的探勘组(jvet),文献jvet-b0060,“ee2.5:自适应环路滤波器的改进(ee2.5:improvementsonadaptiveloopfilter)”中,及在m.karczewicz,l.zhang,w.-j.chien,x.li,2016年5月26日到6月1日第3次会议:日内瓦,ch的itu-tsg16wp3及iso/iecjtc1/sc29/wg11的探勘组(jvet),文献jvet-c0038,“ee2.5:自适应环路滤波器的改进”中,提出基于几何变换的alf(galf)。galf用于jem3.0。在galf中,运用所考虑的对角线梯度修改分类且几何变换可应用于滤波器系数。每一2×2块基于其方向性及活动的经量化值而分类成25分之一种类。在其它实例中,视频编码器20及/或视频解码器30可经配置以对4×4子块执行分类。以下子章节中描述细节。

此章节中论述galf的分类。类似于实例alf实施方案的设计,galf的分类是基于每一n×n明度块的1d拉普拉斯方向及2d拉普拉斯活动。然而,方向及活动两者的定义已经修改成更优选捕捉本地特性。首先,除现有alf中使用的水平及竖直梯度以外,使用1-d拉普拉斯计算两个对角线梯度的值。如从下方方程(7)到(10)可见,覆盖目标像素的6×6窗口内的所有像素的梯度的总和用作目标像素的经表示梯度。在其它实例中,视频编码器20及/或视频解码器30可经配置以使用覆盖目标像素的8×8窗口。根据实验,视窗大小,即6×6,提供复杂度与译码性能之间的良好折衷。每一像素与四个梯度值相关联,其中竖直梯度由gv表示,水平梯度由gh表示,135度对角线梯度由gd1表示且45度对角线梯度由gd2表示。

d2k,l=|2r(k,l)-r(k-1,l+1)-r(k+1,l-1)|

本文中,索引i及j指代2×2块中的左上方像素的坐标。

表1.方向的值及其物理意义

为分配方向性d,水平及竖直梯度的最大值及最小值的比率(在(10)中由rh,v表示)及两个对角线梯度的最大值及最小值的比率(在(11)中由rd1,d2表示)与两个阈值t1及t2彼此进行比较。

其中

其中

通过比较水平/竖直及对角线梯度的所检测到的比率,五个方向模式,即在[0,4]范围(包含端值)内的d,定义于(12)及(13)中。d的值及其物理意义描述于表i中。

活动值act计算为:

act经进一步量化到0到4的范围(包含端值),且经量化值表示为

从活动值a到活动指数索引的量化过程

定义如下量化过程:

avg_var=clip_post(num_entry-1,(act*scalefactor)>>shift);

其中num_entry被设置成16,scalefactor被设置成24,shift为(3+内部经译码位深度),activitytoindex[num_entry]={0,1,2,2,2,2,2,3,3,3,3,3,3,3,3,4},且函数clip_post(a,b)返回a与b之间的较小值。

请注意,归因于计算活动值的不同方式,scalefactor及activitytoindex两者都相较于jem2.0中的alf设计经修改。

因此,在所提出的galf方案中,每一n×n块基于其方向性d及活动的量化值分类成25分之一种类:

图4中描绘根据d及活动的量化值的种类索引的实例。应注意,针对从变量act导出的每一列,的值被设置成0……4。针对的新值的最小act沿顶线标记(例如,0、8192、16384、57344、122880)。举例来说,具有在[16384,57344-1]内的值的act将属于等于2的

现将论述几何变换。对于每一类别,可传信一个滤波器系数集。为更优选区分以同一类别索引标记的块的不同方向,引入四种几何变换,包含无变换、对角、竖直翻转及旋转。图5为说明5×5菱形滤波器支持500的概念图。图6中描绘具有三种几何变换的5×5滤波器支持的实例。图6展示对角5×5菱形滤波器支持600、竖直翻转5×5菱形滤波器支持602,及旋转5×5菱形滤波器支持604。图5及图6中的符号ci(例如,c0、c1、c2等)表示滤波器系数。比较图5及图6,三种额外几何变换的公式形式为:

对角:fd(k,l)=f(l,k),

竖直翻转:fv(k,l)=f(k,k-l-1),(16)

旋转:fr(k,l)=f(k-l-1,k)。

其中k为滤波器的大小,且0≤k,l≤k-1为系数坐标,使得部位(0,0)在左上角处且部位(k-1,k-1)在右下角处。

应注意,当使用菱形滤波器支持时,例如在alf的现有实例中,具有在滤波器支持之外的坐标的系数将始终设置成0。一种用于指示几何变换索引的技术为隐式地导出几何变换索引以避免额外负担。在galf中,变换取决于针对块计算的梯度值应用于滤波器系数f(k,l)。表2中描述变换与使用(6)到(9)计算的四个梯度之间的关系。总之,变换是基于两个梯度(水平及竖直,或45度及135度梯度)中的较大者。基于所述比较,可提取更精确方向信息。因此,虽然滤波器系数的负担并未增加,但可归因于变换获得不同滤波结果。

表2.梯度及变换的映射

类似于hm3中的alf,galf还采用5×5及7×7菱形滤波器支持。另外,9×7滤波器支持(图3的截断9×9菱形)由9×9菱形滤波器支持替换。图7说明用于galf的实例9×9菱形滤波器支持700。在vvc的一些实例中,使用7×7滤波器支持而非9×9菱形滤波器支持。本公开的技术适用于任何大小的滤波器支持。

现将论述从固定滤波器的预测。当时间预测不可用(例如,对于帧内帧)时为改进译码效率,可将一组固定滤波器(例如,16个固定滤波器)分配给每一种类。为指示固定滤波器的用途,传信用于每一种类的旗标。在一些实例中,还可传信所选取固定滤波器的索引。即使当固定滤波器经选择用于给定种类时,自适应滤波器的系数f(k,l)仍可经发送用于此种类,在此情况下将应用于经重构图像的滤波器的系数为系数的两个集合的总和。多个种类可共享在位流中发信的相同系数f(k,l),即使不同固定滤波器经选择用于其。2017年2月14日申请的美国专利申请案第15/432,839号(2017年8月17日发布的美国公开案第2017/0238020号)描述固定滤波器还可能应用于经帧间译码帧。

现将论述滤波器系数的传信,包含来自固定滤波器的预测图案及预测索引。三种情况经限定:情况1:是否所述种类(例如,25个种类)的滤波器中无一者是从固定滤波器预测;情况2:所述种类的所有滤波器是从固定滤波器预测;及情况3;与一些种类相关联的滤波器是从固定滤波器预测且与剩余种类相关联的滤波器并非从固定滤波器预测。

视频编码器20可首先译码索引以指示三种情况中的一种。另外,以下适用:

-如果为情况1,那么不需要进一步传信固定滤波器的索引。

-否则,如果为情况2,那么传信用于每一种类的经选择固定滤波器的索引。

-另外(如果为情况3),首先传信用于每一种类的一个位,且如果使用固定滤波器,那么进一步传信索引。

跳过dc滤波器系数

由于所有滤波器系数的总和必须等于2k(其中k表示滤波器系数的位深度),应用于当前像素(滤波器支持内的中心像素,例如图5中的c6)的dc滤波器系数可经导出而无需传信。

滤波器索引

为减少表示滤波器系数所需的位的数目,可合并不同类别。然而,与在t.wiegand,b.bross,w.-j.han,j.-r.ohm及g.j.sullivan,2011年3月16日到23日的第5次会议:日内瓦,ch的itu-tsg16wp3及iso/iecjtc1/sc29/wg11的视频译码联合合作小组(jct-vc),jctvc-e603,“wd3:高效率视频译码的工作草案3”中不同,可合并任何种类集合,即使种类具有如(15)中所定义的表示种类索引的c的非连续值。通过对于25个种类中的每一者对索引ic进行发送来提供指示合并哪些类别的信息。具有相同索引ic的种类共享经译码的相同滤波器系数。通过截断二进制二值化方法译码索引ic。以与jem2.0中相同的方式译码其它信息,例如系数。

现有alf/galf设计展现若干缺陷。举例来说,一些现有alf设计使用线缓冲器存储器的额外八条线,如图8中的灰色样本800所描绘。对于位于图8中的lcu的顶线处的样本(如由x标记的左上方样本),相邻lcu的样本的上方四条线用于9×9菱形滤波器支持。类似地,对于位于图8中的lcu的底线处的滤波样本(如由x标记的左下方样本),相邻lcu的样本的下方四条线用于9×9菱形滤波器支持。视频编码器20及视频解码器30可配置有八个线缓冲器以存储相邻lcu的样本的这八条线。其它类型的滤波器(例如解块滤波器及样本自适应偏移(sao))可使用相邻样本的较少线,且因此较少及/或较小线缓冲器。一些实例解块滤波器使用线缓冲器存储器的四条线,而一些sao滤波器仅使用线缓冲器存储器的一条线。相较于解块滤波器及sao滤波器,alf使用更多线缓冲器,其增加成本且增大芯片大小。

鉴于这些缺陷,本公开描述用于通过减少数目个线缓冲器执行alf的以下技术。视频编码器20及视频解码器30两者可经配置以执行下文所描述的技术。可个别地应用以下详细列举的技术。替代地,可一起应用本文中所描述的技术的任何组合。

在本公开的一个实例中,对于位于块的特定位置(例如,最大译码单元,lcu)处的样本,视频编码器20及视频解码器30可经配置以停用galf/alf(即,galf及/或alf)而无需任何传信。举例来说,视频解码器30可经配置以针对块的特定样本基于所述样本在块上的位置而非基于指示alf/galf是否停用的任何经传信语法元素而停用galf/alf。以此方式,可能需要较小线缓冲器(或无线缓冲器),这是因为来自相邻块的样本将由于alf/galf停用而不被需要。

在一个实例中,对于位于一个lcu内的前n(非零变量)行处的样本,视频编码器20及视频解码器30可经配置以停用alf/galf。举例来说,视频编码器20及视频解码器30可经配置以将位于前n行内的样本标记为“不适用”于alf/galf。

在另一实例中,对于位于一个lcu内的后m(非零变量)行处的样本,视频编码器20及视频解码器30可经配置以停用alf/galf。举例来说,视频编码器20及视频解码器30可经配置以将位于后m行内的样本标记为“不适用”于alf/galf。

在一个实例中,变量n或/及m可经预定义(例如,存储于视频编码器20及视频解码器30两者处)。在另一实例中,视频编码器20可经配置以在供由视频解码器30使用的经编码视频位流中传信指示n及/或m的值的语法元素。

在其它实例中,变量n或/及m对于不同序列/图片/切片可不同。也就是说,变量n及m对于所有序列/图片/切片不必相同。

在另一实例中,变量n或/及m可取决于所允许的滤波器支持。举例来说,如果视频编码器20及/或视频解码器30确定将5×5菱形滤波器支持用于一个切片,那么视频编码器20及/或视频解码器30可将变量n及m设置成0。类似地,如果视频编码器20及/或视频解码器30确定将9×9菱形滤波器支持用于一个切片,那么视频编码器20及/或视频解码器30可将变量n及m设置成2。

在另一实例中,对于具有标记为“不适用”的所有样本(或大部分样本)的块,视频编码器20及/或视频解码器30可经配置以跳过galf/alf开/关旗标的传信。替代地,视频编码器20及/或视频解码器30可经配置以将galf/alf开/关旗标推断为假(即,alf/galf断开)。

在本公开的另一实例中,因此使用一或多个线缓冲器而非存取lcu行外部的样本,视频编码器20及/或视频解码器30可经配置以将填补样本用于滤波过程。与来自存储于线缓冲器中的相邻块的样本相反,填补样本为由视频编码器20及/或视频解码器30产生的样本。以此方式,线缓冲器的量可减少,因此降低硬件实施方案的复杂度及成本。

在一个实例中,视频编码器20及/或视频解码器30可经配置以从一或多个参考图片中的块产生填补样本。实例给定于图9中。对于待滤波的当前样本900(位于帧n-1中的一个lcu902的顶部行处),相邻样本(由a到c、1到9标记)可从不同参考图片904(帧n-2)中的运动补偿块填补。也就是说,来自图片904的样本a到c及1到9可经复制且用作用于对当前lcu902的当前样本900进行滤波的样本。

在另一实例中,视频编码器20及/或视频解码器30可经配置以从一或多个参考图片中的块复制填补样本。当填补样本是来自多个参考图片时,视频编码器20及/或视频解码器30可经配置以将线性函数应用于来自相同位置的多个样本,以产生一个填补样本。在某一实例中,块可通过与覆盖待滤波的样本的当前块相关联或与覆盖待填补的样本的相邻块相关联的运动向量识别。在一些实例中,运动向量可舍入到整数位置。在其它实例中,运动向量可设置成零运动向量。

在另一实例中,视频编码器20及/或视频解码器30可经配置以通过映射函数填补样本,而非通过从块的第一行或列复制现有样本来产生填补样本。在一些实例中,所使用的映射函数可取决于用于galf/alf的滤波器支持。在一些实例中,映射函数可包含但不限于交换及/或翻转及/或旋转函数。交换函数、翻转函数及旋转函数可为任何函数,经加权或以其它方式),其中lcu边界内的样本映射到lcu边界外部的部位。图10a为说明针对alf通过映射来填补的实例使用的概念图。在图10a中,由符号si指示的样本经填补(例如,重复使用)为用于lcu上部边界外部的样本的滤波器支持。在lcu上部边界外部的具有与lcu边界内部的样本相同的si标识(例如,s0)的样本经复制为滤波器支持。图10a展示对角填补的实例。举例来说,lcu上部边界内的样本可围绕对角轴线翻转到lcu上部边界外部的部位。图10b为说明针对alf通过映射来填补的另一实例使用的概念图。举例来说,lcu上部边界内的样本可围绕水平轴翻转到lcu上部边界外部的部位。

在另一实例中,可迫使用于galf/alf的与lcu行外部的样本相关联的滤波器系数为0。在另一实例中,多个滤波器支持可在一个切片内应用。在一个实例中,仅传信部分数目的滤波器支持(例如,系数),且剩余数目的滤波器支持可从经传信支持导出。举例来说,9×9菱形滤波器支持可通过索引传信。对于要求额外线缓冲器的样本,滤波器支持可经修改成例如图11中所示的滤波器支持1100。

启用还是停用以上方法可在序列参数集(sps)、图片参数集(pps)、视图参数集及/或切片标头中传信。

图12为说明可实施本公开的技术的视频编码器20的实例的框图。出于解释的目的提供图12,且不应将所述图视为对如本公开中广泛例示及描述的技术的限制。本公开的技术可适用于各种译码标准或方法。

处理电路包含视频编码器20,且视频编码器20经配置以执行本公开中所描述的实例技术中的一或多者。举例来说,视频编码器20包含集成电路,且图12中说明的各种单元可形成为与电路总线互连的硬件电路块。这些硬件电路块可为单独电路块或所述单元中的两者或更多者可组合为共享硬件电路块。硬件电路块可形成为电路组件的组合,所述电路组件形成例如算术逻辑单元(alu)、基础功能单元(efu)的操作块,以及例如and、or、nand、nor、xor、xnor及其它类似逻辑块的逻辑块。

在一些实例中,图12中所说明的单元中的一或多者可为在处理电路上执行的软件单元。在此类实例中,用于这些软件单元的目的码存储于存储器中。操作系统可使得视频编码器20检索目的码并执行目的码,其使得视频编码器20执行实施实例技术的操作。在一些实例中,软件单元可为视频编码器20在启动处执行的固件。因此,视频编码器20为具有执行实例技术的硬件或具有在硬件上执行以特化执行所述实例技术的硬件的软件及/或固件的结构性组件。

在图12的实例中,视频编码器20包含预测处理单元100、视频数据存储器101、残余产生单元102、变换处理单元104、量化单元106、逆量化单元108、逆变换处理单元110、重建单元112、滤波器单元114、经解码图片缓冲器116及熵编码单元118。预测处理单元100包含帧间预测处理单元120及帧内预测处理单元126。帧间预测处理单元120可包含运动估计单元及运动补偿单元(未示出)。

视频数据存储器101可经配置以存储待由视频编码器20的组件编码的视频数据。可例如从视频源18获得存储于视频数据存储器101中的视频数据。经解码图片缓冲器116可为存储供由视频编码器20用于例如以帧内或帧间译码模式编码视频数据或供输出的参考视频数据的参考图片存储器。视频数据存储器101及经解码图片缓冲器116可由多种存储器装置中的任一者形成,例如动态随机存取存储器(dram),包含同步dram(sdram)、磁阻式ram(mram)、电阻式ram(rram)或其它类型的存储器装置。可由同一存储器装置或单独存储器装置提供视频数据存储器101及经解码图片缓冲器116。在各种实例中,视频数据存储器101可与视频编码器20的其它组件一起在芯片上,或相对于那些组件而言在芯片外。视频数据存储器101可与图1的存储媒体19相同,为所述存储媒体的部分,或与所述存储媒体分离。

视频编码器20接收视频数据。视频编码器20可编码视频数据的图片的切片中的每一ctu。ctu中的每一者可与相等大小的明度译码树型块(ctb)及图片的对应ctb相关联。作为编码ctu的部分,预测处理单元100可执行分割以将ctu的ctb分割成逐渐较小的块。较小块可为cu的译码块。举例来说,预测处理单元100可根据树状结构分割与ctu相关联的ctb。

视频编码器20可编码ctu的cu以产生cu的经编码表示(即,经译码cu)。作为编码cu的部分,预测处理单元100可在cu的一或多个pu当中分割与cu相关联的译码块。因此,每一pu可与明度预测块及对应的色度预测块相关联。视频编码器20及视频解码器30可支持具有各种大小的pu。如上文所指示,cu的大小可指cu的明度译码块的大小,且pu的大小可指pu的明度预测块的大小。假定特定cu的大小为2n×2n,那么视频编码器20及视频解码器30可支持用于帧内预测的2n×2n或n×n的pu大小,及用于帧间预测的2n×2n、2n×n、n×2n、n×n或类似的对称pu大小。视频编码器20及视频解码器30还可支持用于帧间预测的2n×nu、2n×nd、nl×2n及nr×2n的pu大小的非对称分割。

帧间预测处理单元120可产生用于pu的预测性数据。作为产生用于pu的预测性数据的部分,帧间预测处理单元120对pu执行帧间预测。用于pu的预测性数据可包含pu的预测性块及用于pu的运动信息。取决于pu是在i切片中、p切片中还是b切片中,帧间预测处理单元120可针对cu的pu执行不同操作。在i切片,所有pu经帧内预测。因此,如果pu在i切片中,那么帧间预测处理单元120不对pu执行帧间预测。因此,对于i模式中编码的块,经预测块是使用空间预测从同一帧内的先前经编码的相邻块形成。如果pu在p切片中,那么帧间预测处理单元120可使用单向帧间预测以产生pu的预测性块。如果pu在b切片中,那么帧间预测处理单元120可使用单向或双向帧间预测以产生pu的预测性块。

帧内预测处理单元126可通过对pu执行帧内预测而产生用于pu的预测性数据。用于pu的预测性数据可包含pu的预测性块及各种语法元素。帧内预测处理单元126可对i切片、p切片及b切片中的pu执行帧内预测。

为对pu执行帧内预测,帧内预测处理单元126可使用多个帧内预测模式以产生pu的预测性数据的多个集合。帧内预测处理单元126可使用来自相邻pu的样本块的样本以产生用于pu的预测性块。对于pu、cu及ctu,假定从左到右从上而下的编码次序,那么相邻pu可在pu上方、右上方、左上方或左方。帧内预测处理单元126可使用各种数目的帧内预测模式,例如,33个方向性帧内预测模式。在一些实例中,帧内预测模式的数目可取决于与pu相关联的区域的大小。

预测处理单元100可从通过帧间预测处理单元120针对pu产生的预测性数据或通过帧内预测处理单元126针对pu产生的预测性数据中选择用于cu的pu的预测性数据。在一些实例中,预测处理单元100基于数组预测性数据的速率/失真度量而选择用于cu的pu的预测性数据。所选择预测性数据的预测性样本块在本文中可被称作所选择的预测性样本块。

残余产生单元102可基于cu的译码块(例如,明度、cb及cr译码块)及cu的pu的所选预测性块(例如,预测性明度、cb及cr块)产生cu的残余块(例如,明度、cb及cr残余块)。举例来说,残余产生单元102可产生cu的残余块,以使得残余块中的每一样本具有等于cu的译码块中的样本与cu的pu的对应所选择预测性块中的对应样本之间的差的值。

变换处理单元104可执行将cu的残余块分割成cu的tu的变换块。举例来说,变换处理单元104可执行四分树分割以将cu的残余块分割成cu的tu的变换块。因此,tu可与一明度变换块及两个色度变换块相关联。cu的tu的明度及色度变换块的大小及位置可基于或可能不基于cu的pu的预测块的大小及位置。被称为“残余四分树”(rqt)的四分树结构可包含与区域中的每一者相关联的节点。cu的tu可对应于rqt的叶节点。

变换处理单元104可通过将一或多个变换应用于tu的变换块而产生cu的每一tu的变换系数块。变换处理单元104可将各种变换应用于与tu相关联的变换块。举例来说,变换处理单元104可将离散余弦变换(dct)、定向变换或概念上类似的变换应用于变换块。在一些实例中,变换处理单元104并不将变换应用于变换块。在此类实例中,变换块可视为变换系数块。

量化单元106可量化系数块中的变换系数。量化过程可减少与变换系数中的一些或全部相关联的位深度。举例来说,在量化期间,可将n位变换系数舍入到m位变换系数,其中n大于m。量化单元106可基于与cu相关联的量化参数(qp)值来量化与cu的tu相关联的系数块。视频编码器20可通过调整与cu相关联的qp值来调整应用于与cu相关联的系数块的量化程度。量化可引入信息的损失。因此,经量化变换系数可具有比最初变换系数低的精度。

逆量化单元108及逆变换处理单元110可分别将逆量化及逆变换应用于系数块,以从系数块重构残余块。重建单元112可将经重建的残余块添加到来自通过预测处理单元100产生的一或多个预测性块的对应样本,以产生与tu相关联的经重建变换块。通过以此方式重建用于cu的每一tu的变换块,视频编码器20可重建cu的译码块。

滤波器单元114可对与cu相关联的译码块执行一或多个sao、galf、alf及/或解块操作。滤波器单元114可包含用以存储相邻样本以便执行alf及/或gal滤波操作的一或多个线缓冲器。滤波器单元114可执行上文所描述的本公开的alf及galf技术。经解码图片缓冲器116可在滤波器单元114对经重建译码块执行一或多个滤波操作之后存储经重建译码块。帧间预测处理单元120可使用含有经重建译码块的参考图片以对其它图片的pu执行帧间预测。另外,帧内预测处理单元126可使用经解码图片缓冲器116中的经重建的译码块以对处于与cu相同的图片中的其它pu执行帧内预测。在一些实例中,视频编码器20可经配置以不通过滤波器单元114处理由帧内预测处理单元126使用的样本。也就是说,在一些实例中,帧内预测处理单元126并不使用已使用galf或alf滤波的样本值。

熵编码单元118可从视频编码器20的其它功能组件接收数据。举例来说,熵编码单元118可从量化单元106接收系数块且可从预测处理单元100接收语法元素。熵编码单元118可对数据执行一或多个熵编码操作,以产生经熵编码数据。举例来说,熵编码单元118可对数据执行cabac操作、上下文自适应可变长度译码(cavlc)操作、可变到可变(v2v)长度译码操作、基于语法的上下文自适应二进制算术译码(sbac)操作、概率区间分割熵(pipe)译码操作、指数哥伦布编码操作或另一类型的熵编码操作。视频编码器20可输出包含由熵编码单元118产生的经熵编码数据的位流。举例来说,位流可包含表示用于cu的变换系数的值的数据。

图13为说明经配置以实施本公开的技术的实例视频解码器30的框图。出于解释的目的而提供图13,且其并不限制如本公开中所广泛例示及描述的技术。

处理电路包含视频解码器30,且视频解码器30经配置以执行本公开中所描述的实例技术中的一或多者。举例来说,视频解码器30包含集成电路,且图13中说明的各种单元可形成为与电路总线互连的硬件电路块。这些硬件电路块可为单独电路块或所述单元中的两者或更多者可组合为共享硬件电路块。硬件电路块可形成为电路组件的组合,所述电路组件形成例如算术逻辑单元(alu)、基础功能单元(efu)的操作块,以及例如and、or、nand、nor、xor、xnor及其它类似逻辑块的逻辑块。

在一些实例中,图13中所说明的单元中的一或多者可为在处理电路上执行的软件单元。在此类实例中,用于这些软件单元的目的码存储于存储器中。操作系统可使得视频解码器30检索目的码并执行目的码,其使得视频解码器30执行实施实例技术的操作。在一些实例中,软件单元可为视频解码器30在启动处执行的固件。因此,视频解码器30为具有执行实例技术的硬件或具有在硬件上执行以特化执行所述实例技术的硬件的软件及/或固件的结构性组件。

在图13的实例中,视频解码器30包含熵解码单元150、视频数据存储器151、预测处理单元152、逆量化单元154、逆变换处理单元156、重建单元158、滤波器单元160,及经解码图片缓冲器162。预测处理单元152包含运动补偿单元164及帧内预测处理单元166。在其它实例中,视频解码器30可包含更多、更少或不同功能组件。

视频数据存储器151可存储待由视频解码器30的组件解码的经编码视频数据(例如,经编码视频位流)。视频数据存储器151中存储的视频数据可经由视频数据的有线或无线网络通信或通过存取物理数据存储媒体例如从计算机可读媒体16,例如,从本地视频源(例如相机)获得。视频数据存储器151可形成存储来自经编码视频位流的经编码视频数据的经译码图片缓冲器(cpb)。经解码图片缓冲器162可为存储供由视频解码器30用于例如以帧内或帧间译码模式解码视频数据或供输出的参考视频数据的参考图片存储器。视频数据存储器151及经解码图片缓冲器162可由多种存储器装置中的任一者形成,例如动态随机存取存储器(dram),包含同步dram(sdram)、磁阻式ram(mram)、电阻式ram(rram)或其它类型的存储器装置。可通过同一存储器装置或单独存储器装置提供视频数据存储器151及经解码图片缓冲器162。在各种实例中,视频数据存储器151可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。视频数据存储器151可与图1的存储媒体28相同或是所述存储媒体的部分。

视频数据存储器151接收并存储位流的经编码视频数据(例如,nal单元)。熵解码单元150可从视频数据存储器151接收经编码视频数据(例如,nal单元),且可剖析nal单元以获得语法元素。熵解码单元150可熵解码所述nal单元中的经熵编码的语法元素。预测处理单元152、逆量化单元154、逆变换处理单元156、重建单元158及滤波器单元160可基于从位流提取的语法元素产生经解码视频数据。熵解码单元150可执行大体上互逆于熵编码单元118的彼过程的过程。

除从位流获得语法元素之外,视频解码器30可对未经分割的cu执行重建操作。为了对cu执行重建操作,视频解码器30可对cu的每一tu执行重建操作。通过对cu的每一tu执行重建操作,视频解码器30可重建cu的残余块。

作为对cu的tu执行重建操作的部分,逆量化单元154可逆量化(即,解量化)与tu相关联的系数块。在逆量化单元154对系数块进行逆量化之后,逆变换处理单元156可将一或多个逆变换应用于系数块以便产生与tu相关联的残余块。举例来说,逆变换处理单元156可将逆dct、逆整数变换、逆karhunen-loeve变换(klt)、逆旋转变换、逆定向变换或另一逆变换应用于系数块。

逆量化单元154可执行本公开的特定技术。举例来说,对于视频数据的图片的ctu的ctb内的多个量化群组的至少一个相应量化群组,逆量化单元154可至少部分地基于在位流中传信的本地量化信息导出用于相应量化群组的相应量化参数。另外,在此实例中,逆量化单元154可基于用于相应量化群组的相应量化参数而逆量化ctu的cu的tu的变换块的至少一个变换系数。在此实例中,相应量化群组经定义为连续(在译码次序中)cu或译码块的群组,以使得相应量化群组的边界必须为cu或译码块的边界且相应量化群组的大小大于或等于阈值。视频解码器30(例如,逆变换处理单元156、重建单元158及滤波器单元160)可基于变换块的经逆量化变换系数重建cu的译码块。

如果使用帧内预测编码pu,那么帧内预测处理单元166可执行帧内预测以产生pu的预测性块。帧内预测处理单元166可使用帧内预测模式来基于空间相邻块的样本产生pu的预测性块。帧内预测处理单元166可基于从位流获得的一或多个语法元素确定用于pu的帧内预测模式。

如果使用帧间预测编码pu,那么熵解码单元150可确定pu的运动信息。运动补偿单元164可基于pu的运动信息确定一或多个参考块。运动补偿单元164可基于一或多个参考块产生pu的预测性块(例如,预测性明度、cb及cr块)。

重建单元158可使用cu的tu的变换块(例如,明度、cb及cr变换块)及cu的pu的预测性块(例如,明度、cb及cr块)(即,可适用的帧内预测数据或帧间预测数据)来重建cu的译码块(例如,明度、cb及cr译码块)。举例来说,重建单元158可将变换块(例如,明度、cb及cr变换块)的样本添加到预测性块(例如,明度、cb及cr预测性块)的对应样本,以重建cu的译码块(例如,明度、cb及cr译码块)。

滤波器单元160可对与cu相关联的译码块执行一或多个sao、galf、alf及/或解块操作。滤波器单元160可包含用以存储相邻样本以便执行alf及/或gal滤波操作的一或多个线缓冲器。滤波器单元160可执行上文所描述的本公开的alf及galf技术。经解码图片缓冲器162可在滤波器单元160对经重建译码块执行一或多个滤波操作之后存储经重建译码块。经解码图片缓冲器162可提供参考图片以用于随后运动补偿、帧内预测及在显示装置(例如,图1的显示装置32)上的呈现。举例来说,视频解码器30可基于经解码图片缓冲器162中的块对其它cu的pu执行帧内预测操作或帧间预测操作。在一些实例中,视频解码器30可经配置以不通过滤波器单元160处理由帧内预测处理单元166使用的样本。也就是说,在一些实例中,帧内预测处理单元166并不使用已使用galf或alf滤波的样本值。

图14为说明本公开的实例译码方法的流程图。包含滤波器单元114及滤波器单元160的视频编码器20及视频解码器30两者可经配置以执行图14的技术。

在本公开的一个实例中,视频编码器20及视频解码器30可经配置以译码视频数据块以获得视频数据的经译码块(1400),将由滤波器支持限定的自适应环路滤波器应用于视频数据的经译码块的样本,包含对滤波器支持的在块外部的部分使用填补样本(1402),及在将自适应环路滤波应用于视频数据的经译码块之后输出视频数据的经译码块(1404)。

在一个实例中,视频编码器20及视频解码器30可进一步经配置以从由与视频数据块相关联的运动向量指向的参考图片的样本产生填补样本。

在另一实例中,视频编码器20及视频解码器30可进一步经配置以从视频数据的经译码块的第一行或最末行产生填补样本。

在另一实例中,视频编码器20及视频解码器30可进一步经配置以通过将线性函数应用于一或多个参考图片的样本而产生填补样本。

在另一实例中,视频编码器20及视频解码器30可进一步经配置以使用一或多个运动向量识别一或多个参考图片的样本。

在另一实例中,视频编码器20及视频解码器30可进一步经配置以将一或多个运动向量舍入到整数值。

在另一实例中,视频编码器20及视频解码器30可进一步经配置以将一或多个运动向量设置成零运动向量。

在另一实例中,视频编码器20及视频解码器30可进一步经配置以使用映射函数及视频数据的经解码块的样本产生填补样本。映射函数可包含交换函数、翻转函数或旋转函数中的一或多者。

在另一实例中,视频编码器20及视频解码器30可进一步经配置以将自适应环路滤波器的滤波器支持的在视频数据块外部的部分的系数设置成零。

在另一实例中,视频编码器20及视频解码器30可进一步经配置以产生/接收指示填补样本针对滤波器支持的在块外部的部分的使用的语法元素。

已出于说明的目的关于hevc、hevc的扩展、及开发中vvc标准描述本公开的特定方面。然而,本公开中所描述的技术可适用于其它视频译码过程,包含尚未开发的其它标准或专有视频译码过程。

如本公开中所描述的视频译码器可指视频编码器或视频解码器。类似地,视频译码单元可指视频编码器或视频解码器。同样地,视频译码可指视频编码或视频解码(在适用时)。在本公开中,短语“基于”可指示仅仅基于、至少部分地基于,或以某一方式基于。本公开可使用术语“视频单元”或“视频块”或“块”来指代一或多个样本块及用以译码样本的一或多个块的样本的语法结构。视频单元的实例类型可包含ctu、cu、pu、变换单元(tu)、宏块、宏块分区,等等。在一些上下文中,pu的论述可与宏块或宏块分区的论述互换。视频块的实例类型可包含译码树型块、译码块及视频数据的其它类型的块。

本公开的技术可应用于支持多种多媒体应用中的任一者的视频译码,例如,空中电视广播、有线电视发射、卫星电视发射、因特网流式传输视频发射(例如,经由http的动态自适应流式传输(dash))、经编码到数据存储媒体上的数字视频、存储于数据存储媒体上的数字视频的解码或其它应用。

应认识到,取决于实例,本文中所描述的技术中的任一者的某些动作或事件可以不同序列执行、可添加、合并或完全省略所述动作或事件(例如,并非所有所描述动作或事件对于所述技术的实践是必要的)。此外,在某些实例中,可例如经由多线程处理、中断处理或多个处理器同时而非依序执行动作或事件。

在一或多个实例中,所描述功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能可作为一或多个指令或代码而存储于计算机可读媒体上或经由计算机可读媒体发射,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体(其对应于例如数据存储媒体的有形媒体)或通信媒体,所述通信媒体包含(例如)根据通信协议促进计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体大体可对应于(1)为非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波的通信媒体。数据存储媒体可为可通过一或多个计算机或一或多个处理电路存取以检索指令、代码及/或数据结构以用于实施本公开中描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。

借助于实例而非限制,此计算机可读存储媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储装置、磁碟存储装置或其它磁性存储装置、快闪存储器或可用来存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。而且,任何连接被适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光缆、双绞线、数字用户线(digitalsubscriberline;dsl)或无线技术(例如红外线、无线电及微波)从网站、服务器或其它远程源发射指令,那么同轴电缆、光缆、双绞线、dsl或无线技术(例如红外线、无线电及微波)包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而实情为涉及非暂时性有形存储媒体。如本文中所使用,磁碟及光盘包含紧密光盘(cd)、激光光盘、光学光盘、数字影音光盘(dvd)、软碟及蓝光光盘,其中磁碟通常以磁性方式再生数据,而光盘通过激光以光学方式再生数据。以上各者的组合也应包含于计算机可读媒体的范围内。

本公开中所描述的功能可通过固定功能及/或可编程处理电路执行。举例来说,指令可通过固定功能及/或可编程处理电路执行。这些处理电路可包含一或多个处理器,例如一或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其它等效集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指上述结构或适用于实施本文中所描述的技术的任何其它结构中的任一者。此外,在一些实例中,本文所描述的功能性可提供于经配置以供编码及解码或并入于经组合编解码器中的专用硬件及/或软件模块内。而且,技术可完全实施于一或多个电路或逻辑元件中。处理电路可以各种方式耦合到其它组件。举例来说,处理电路可经由内部装置互连件、有线或无线网络连接或另一通信媒体耦合到其它组件。

本公开的技术可在广泛多种装置或设备中实施,包含无线手持机、集成电路(ic)或ic集合(例如,芯片组)。在本公开中描述各种组件、模块或单元以强调经配置以执行所公开技术的装置的功能性方面,但未必需要通过不同硬件单元来实现。实际上,如上所述,各种单元可与合适的软件及/或固件一起组合在编解码器硬件单元中或由互操作硬件单元的集合提供,硬件单元包含如上文所描述的一或多个处理器。

各种实例已予以描述。这些及其它实例在以下权利要求书的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1