CN117561712A - 在视频译码中具有多个分类器的用信号通知的自适应环路滤波器 - Google Patents

在视频译码中具有多个分类器的用信号通知的自适应环路滤波器 Download PDF

Info

Publication number
CN117561712A
CN117561712A CN202280045261.8A CN202280045261A CN117561712A CN 117561712 A CN117561712 A CN 117561712A CN 202280045261 A CN202280045261 A CN 202280045261A CN 117561712 A CN117561712 A CN 117561712A
Authority
CN
China
Prior art keywords
classifier
filter
current block
block
sample values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280045261.8A
Other languages
English (en)
Inventor
N·胡
V·塞雷金
M·卡尔切维茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/853,274 external-priority patent/US20230010869A1/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN117561712A publication Critical patent/CN117561712A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种视频解码器,该视频解码器被配置成针对视频数据的当前块从多个可用分类器中确定用于当前块的分类器,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;基于分类器和当前块的一个或多个样本值来确定类索引;基于类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。

Description

在视频译码中具有多个分类器的用信号通知的自适应环路滤 波器
本申请要求于2022年6月29日提交的美国专利申请17/853,274号以及于2021年6月30日提交的美国临时专利申请63/217,067号的优先权,上述申请的全部内容通过引用的方式并入本文。2022年6月29日提交的美国专利申请17/853,274号要求2021年6月30日提交的美国临时专利申请63/217,067号的权益。
技术领域
本公开涉及视频编码和视频解码。
背景技术
数字视频能力可以被合并到各种各样的设备中,包括数字电视机、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型计算机或台式计算机、平板计算机、电子书阅读器、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电话(所谓的“智能电话”)、视频电话会议设备、视频流式传输设备等。数字视频设备实现视频译码技术,诸如在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4(第10部分,高级视频译码(AVC))、ITU-T H.265/高效率视频译码(HEVC)、ITU-T H.266/多功能视频译码(VVC)定义的标准及此类标准的扩展以及诸如由开放媒体联盟开发的AOMedia Video1(AV1)等专有视频编解码器/格式中描述的视频译码技术。通过实现此类视频译码技术,视频设备可以更加高效地发送、接收、编码、解码和/或存储数字视频信息。
视频译码技术包括空间(图片内)预测和/或时间(图片间)预测以减少或去除在视频序列中固有的冗余。对于基于块的视频译码,视频切片(slice)(例如,视频图片或视频图片的一部分)可以被划分为视频块,视频块还可以被称为译码树单元(CTU)、译码单元(CU)和/或译码节点。图片的经帧内译码(I)的切片中的视频块是使用相对于同一图片中的相邻块中的参考样本的空间预测来编码的。图片的经帧间译码(P或B)的切片中的视频块可以使用相对于同一图片中的相邻块中的参考样本的空间预测或者相对于其它参考图片中的参考样本的时间预测。图片可称为帧,并且参考图片可称为参考帧。
发明内容
通常,视频解码器被配置成使用拉普拉斯分类器来从滤波器组中选择滤波器。拉普拉斯分类器是样本块内的样本的活动性和方向性的函数。根据本公开的技术,视频解码器可被配置成针对视频数据的当前块从多个可用分类器中确定用于当前块的分类器。除了基于拉普拉斯的分类器之外,多个分类器可以例如包括基于频带的分类器。不同的分类器可以针对不同类型的视频内容产生更好的滤波选择。例如,基于拉普拉斯的分类器可针对具有较多颜色变化的视频内容产生相对较好的滤波选择,而基于频带的分类器可针对具有较少颜色变化的视频数据产生较好的滤波选择。本公开的技术可有利地产生更好的滤波选择,这能够导致改进的解码视频质量及改进的压缩。
根据一个示例,一种对视频数据进行解码的方法包括针对视频数据的当前块,从多个可用分类器中确定用于当前块的分类器,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;基于分类器和当前块的一个或多个样本值来确定类索引;基于类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。
根据另一示例,一种用于对视频数据进行解码的设备包括存储器,其被配置成存储视频数据;以及一个或多个处理器,其实现于电路中并且被配置成:针对视频数据的当前块,从多个可用分类器中确定用于当前块的分类器,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;基于分类器和当前块的一个或多个样本值来确定类索引;基于类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。
根据另一示例,一种计算机可读存储介质存储指令,该指令在由一个或多个处理器执行时使得一个或多个处理器:针对视频数据的当前块,从多个可用分类器中确定用于当前块的分类器,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;基于分类器和当前块的一个或多个样本值来确定类索引;基于类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。
根据另一示例,一种装置,包括用于针对视频数据的当前块从多个可用分类器中确定用于当前块的分类器的部件,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;用于基于分类器和当前块的一个或多个样本值来确定类索引的部件;用于基于类索引从滤波器组中选择滤波器的部件;和用于将该滤波器应用于当前块的部件。
在附图和以下描述中阐述一个或多个示例的细节。根据描述、附图以及权利要求书,其它特征、目的和优点将是显而易见的。
附图说明
图1是示出可执行本公开的技术的示例视频编码和解码系统的框图。
图2示出了自适应环路滤波器(ALF)形状的示例。
图3示出了用于子块ALF分类的经子采样的拉普拉斯值的示例。
图4示出了用于亮度样本的拉普拉斯值。
图5示出了用于ALF信令的合并类的示例。
图6示出了7x7菱形滤波器形状的几何变换的示例。
图7A至图7C示出了用于ALF虚拟边界处的亮度ALF的对称样本填充的示例。
图8示出了在ALF虚拟边界处的ALF 4x4子块分类的示例。
图9示出了具有多个分类器的ALF的示例。
图10示出了具有三个分类器的ALF的示例。
图11是示出可执行本公开的技术的示例视频编码器的框图。
图12是示出可执行本公开的技术的示例视频解码器的框图。
图13是示出根据本公开的技术的用于对当前块进行编码的示例过程的流程图。
图14是示出根据本公开的技术的用于对当前块进行解码的示例过程的流程图。
图15是示出根据本公开的技术的用于对当前块进行解码的示例过程的流程图。
具体实施方式
视频译码(例如,视频编码和/或视频解码)通常涉及根据同一图片中的已经译码的视频数据块来预测视频数据块(例如,帧内预测)或者根据不同图片中的已经译码的视频数据块来预测视频数据块(例如,帧间预测)。在一些情况下,视频编码器还通过将预测块与原始块进行比较来计算残差数据。因此,残差数据表示预测块与原始块之间的差异。为了减少用信号通知残差数据所需的比特数量,视频编码器对残差数据进行变换和量化,并且在编码比特流中用信号通知经变换和量化的残差数据。通过变换和量化过程实现的压缩可能是有损耗的,这意味着变换和量化过程可能会在解码视频数据中引入失真。
视频解码器对残差数据进行解码并且将其与预测块相加,以产生与单独的预测块相比更紧密地匹配原始视频块的重构视频块。由于由残差数据的变换和量化引入的损失,第一重构块可以具有失真或伪影。一种常见类型的伪影或失真被称为块效应,其中用于对视频数据进行译码的块的边界是可见的。
为了进一步提高解码视频的质量,视频解码器可以对重构视频块执行一个或多个滤波操作。这些滤波操作的示例包括去块滤波、样本自适应偏移(SAO)滤波和自适应环路滤波(ALF)。视频解码器可以例如应用ALF以最小化滤波样本与原始样本之间的均方误差。这些滤波操作的参数可以由视频编码器确定并且在编码视频比特流中显式地用信号通知,或者可以由视频解码器隐式地确定,而不需要在编码视频比特流中显式地用信号通知。
通常,视频解码器被配置成使用拉普拉斯分类器来从滤波器组中选择滤波器。拉普拉斯分类器是样本块内的样本的活动性和方向性的函数。根据本公开的技术,视频解码器可被配置成针对视频数据的当前块从多个可用分类器中确定用于当前块的分类器。除了基于拉普拉斯的分类器之外,多个分类器可以例如包括基于频带的分类器。不同的分类器可以针对不同类型的视频内容产生更好的滤波选择。例如,基于拉普拉斯的分类器可针对具有较多颜色变化的视频内容产生相对较好的滤波选择,而基于频带的分类器可针对具有较少颜色变化的视频数据产生较好的滤波选择。本公开的技术可有利地产生更好的滤波选择,这能够导致改进的解码视频质量及改进的压缩。
图1是示出可执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术通常涉及对视频数据进行译码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括未编码的原始视频、编码视频、解码(例如,重构)视频、和视频元数据,诸如信令数据。
如图1中所示,在该示例中,系统100包括源设备102,该源设备提供要被目的地设备116解码和显示的编码视频数据。具体地,源设备102经由计算机可读介质110来将视频数据提供给目的地设备116。源设备102和目的地设备116可以包括范围广泛的设备中的任何设备,包括台式计算机、笔记本(即膝上型)计算机、移动设备、平板计算机、机顶盒、诸如智能手机的手持电话、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备、广播接收器设备等。在一些情况下,源设备102和目的地设备116可以配备成用于无线通信,因此可以称为无线通信设备。
在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200以及输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120以及显示设备118。根据本公开,源设备102的视频编码器200和目的地设备116的视频解码器300可被配置成应用具有多个分类器的ALF的技术。因此,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其它示例中,源设备和目的地设备可以包括其它组件或布置方式。例如,源设备102可以从诸如外部相机之类的外部视频源接收视频数据。同样,目的地设备116可以与外部显示设备接口,而不是包括集成的显示设备。
如图1中所示的系统100仅是一个示例。通常,任何数字视频编码和/或解码设备都可以执行具有多个分类器的ALF的技术。源设备102和目的地设备116仅是此类译码设备的示例,其中,源设备102生成译码视频数据以用于传输给目的地设备116。本公开将“译码”设备称为执行对数据的译码(例如,编码和/或解码)的设备。因此,视频编码器200和视频解码器300表示译码设备的示例,具体地,分别表示视频编码器和视频解码器。在一些示例中,源设备102和目的地设备116可以以基本上对称的方式进行操作,使得源设备102和目的地设备116中的每一者包括视频编码和解码组件。因此,系统100可以支持在源设备102与目的地设备116之间的单向或双向视频传输,例如,以用于视频流式传输、视频播放、视频广播或视频电话。
通常,视频源104表示视频数据的源(即,未编码的原始视频数据),并且将视频数据的顺序的一系列图片(也被称为“帧”)提供给视频编码器200,该视频编码器对图片的数据进行编码。源设备102的视频源104可以包括视频捕获设备,诸如摄像机、包含先前捕获的原始视频的视频存档、和/或用于从视频内容提供者接收视频的视频馈送接口。作为另外的替代方式,视频源104可以生成基于计算机图形的数据作为源视频,或者生成实时视频、存档视频和计算机生成的视频的组合。在每种情况下,视频编码器200对捕获的、预捕获的或计算机生成的视频数据进行编码。视频编码器200可以将图片从所接收的次序(有时被称为“显示次序”)重新排列为用于译码的译码次序。视频编码器200可以生成包括编码视频数据的比特流。然后,源设备102可以经由输出接口108将编码视频数据输出到计算机可读介质110上,以由例如目的地设备116的输入接口122接收和/或检索。
源设备102的存储器106和目的地设备116的存储器120表示通用存储器。在一些示例中,存储器106、120可以存储原始视频数据,例如,来自视频源104的原始视频以及来自视频解码器300的原始解码视频数据。附加地或另选地,存储器106、120可以存储可由例如视频编码器200和视频解码器300分别执行的软件指令。尽管存储器106和存储器120在该示例中是与视频编码器200和视频解码器300分开显示的,但是应当理解的是,视频编码器200和视频解码器300也可以包括用于在功能上类似或等效目的的内部存储器。此外,存储器106、120可以存储编码视频数据,例如,来自视频编码器200的输出以及到视频解码器300的输入。在一些示例中,存储器106、120的各部分可以被分配为一个或多个视频缓冲器,例如,以存储原始解码和/或编码视频数据。
计算机可读介质110可以表示能够将编码视频数据从源设备102传送到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示通信介质,其使得源设备102能够例如经由射频网络或基于计算机的网络向目的地设备116实时地直接传输编码视频数据。根据诸如无线通信协议之类的通信标准,输出接口108可以对包括编码视频数据的传输信号进行调制,并且输入接口122可以对所接收的传输信号进行解调。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成诸如以下各项的基于分组的网络的一部分:局域网、广域网、或诸如互联网之类的全球网络。通信介质可以包括路由器、交换机、基站、或对于促进从源设备102到目的地设备116的通信而言可以有用的任何其它设备。
在一些示例中,源设备102可以将编码数据从输出接口108输出到存储设备112。类似地,目的地设备116可以经由输入接口122从存储设备112访问编码数据。存储设备112可以包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存存储器、易失性或非易失性存储器、或用于存储编码视频数据的任何其它合适的数字存储介质。
在一些示例中,源设备102可以将编码视频数据输出到文件服务器114或可以存储由源设备102生成的编码视频数据的另一个中间存储设备。目的地设备116可以经由流式传输或下载来从文件服务器114访问存储的视频数据。
文件服务器114可以是能够存储编码视频数据并且将该编码视频数据传输到目的地设备116的任何类型的服务器设备。文件服务器114可以表示web服务器(例如,用于网站)、被配置成提供文件传输协议服务(例如文件传输协议(FTP)或基于单向传送的文件传递(FLUTE)协议)的服务器、内容分发网络(CDN)设备、超文本传输协议(HTTP)服务器、多媒体广播多播服务(MBMS)或增强型MBMS(eMBMS)服务器、和/或网络附加存储(NAS)设备。文件服务器114可以附加地或另选地实现一个或多个HTTP流式传输协议,诸如基于HTTP的动态自适应流式传输(DASH)、HTTP实况流式传输(HLS)、实时流式传输协议(RTSP)、HTTP动态流式传输等。
目的地设备116可以通过任何标准数据连接(包括互联网连接)访问来自文件服务器114的编码视频数据。这可以包括适于访问被存储在文件服务器114上的编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线(DSL)、电缆调制解调器等)、或这两者的组合。输入接口122可以被配置成根据上文讨论的用于从文件服务器114检索或接收媒体数据的各种协议中的任一者或多者或用于检索媒体数据的其它此类协议来进行操作。
输出接口108和输入接口122可以表示无线发射器/接收器、调制解调器、有线联网组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任何标准进行操作的无线通信组件、或其它物理组件。在其中输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置成根据蜂窝通信标准(诸如4G、4G-LTE(长期演进)、高级LTE、5G等)来传输数据(诸如编码视频数据)。在其中输出接口108包括无线发射器的一些示例中,输出接口108和输入接口122可以被配置成根据其它无线标准(诸如IEEE 802.11规范、IEEE 802.15规范(例如,ZigBeeTM)、BluetoothTM标准等)来传输数据(诸如编码视频数据)。在一些示例中,源设备102和/或目的地设备116可以包括相应的片上系统(SoC)设备。例如,源设备102可以包括用于执行属于视频编码器200和/或输出接口108的功能的SoC设备,并且目的地设备116可以包括用于执行属于视频解码器300和/或输入接口122的功能的SoC设备。
本公开的技术可以应用于视频译码,以支持各种多媒体应用中的任何多媒体应用,诸如空中电视广播、有线电视传输、卫星电视传输、互联网流式视频传输(诸如基于HTTP的动态自适应流式传输(DASH))、被编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频的解码、或其它应用。
目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收编码视频比特流。编码视频比特流可以包括由视频编码器200定义的并且还由视频解码器300使用的信令信息,诸如具有描述视频块或其它译码单元(例如,切片、图片、图片组、序列等)的特性和/或处理的值的语法元素。显示设备118向用户显示解码视频数据的解码图片。显示设备118可以表示各种显示设备中的任何一者,诸如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器、或另一种类型的显示设备。
尽管在图1中未示出,但是在一些示例中,视频编码器200和视频解码器300均可以与音频编码器和/或音频解码器整合,并且可以包括适当的MUX-DEMUX单元或其它硬件和/或软件,以处理在公共数据流中包括音频和视频两者的复用流。
视频编码器200和视频解码器300均可以被实现为各种合适的编码器和/或解码器电路中的任何一者,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件、或它们的任何组合。当所述技术部分地在软件中实现时,设备可以将用于软件的指令存储在合适的非暂时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行指令以执行本公开的技术。视频编码器200和视频解码器300中的每一者可以被包括在一个或多个编码器或解码器中,该编码器或解码器中的任一者可以被整合为相应设备中的组合的编码器/解码器(编解码器)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器、和/或无线通信设备(诸如蜂窝电话)。
视频编码器200和视频解码器300可以根据视频译码标准(诸如ITU-T H.265(也被称为高效率视频译码(HEVC))或对其的扩展(诸如多视图和/或可扩展视频译码扩展))进行操作。或者,视频编码器200和视频解码器300可以根据其它专有或行业标准(诸如ITU-TH.266,也被称为多功能视频译码(VVC))进行操作。在其它示例中,视频编码器200和视频解码器300可根据专有视频编解码器/格式(诸如,AOMedia Video 1(AV1)、AV1的扩展和/或AV1的后续版本(例如,AV2))来操作。在其它示例中,视频编码器200和视频解码器300可根据其它专有格式或行业标准来操作。然而,本公开的技术不限于任何特定译码标准或格式。通常,视频编码器200和视频解码器300可被配置成结合使用具有多个分类器的滤波器的任何视频译码技术来执行本公开的技术。
通常,视频编码器200和视频解码器300可执行图片的基于块的译码。术语“块”通常指代包括要被处理的(例如,在编码和/或解码过程中要被编码、解码或以其它方式使用的)数据的结构。例如,块可以包括亮度和/或色度数据的样本的二维矩阵。通常,视频编码器200和视频解码器300可以对以YUV(例如,Y、Cb、Cr)格式表示的视频数据进行译码。也就是说,视频编码器200和视频解码器300不是对用于图片的样本的红色、绿色和蓝色(RGB)数据进行译码,而是可以对亮度和色度分量进行译码,其中,色度分量可以包括红色色相色度分量和蓝色色相色度分量两者。在一些示例中,视频编码器200在编码之前将接收到的RGB格式化数据转换为YUV表示,并且视频解码器300将YUV表示转换为RGB格式。或者,预处理和后处理单元(未示出)可以执行这些转换。
本公开通常可以涉及对图片的译码(例如,编码和解码)以包括对图片的数据进行编码或解码的过程。类似地,本公开可以涉及对图片的块的译码以包括对用于块的数据进行编码或解码(例如,预测和/或残差译码)的过程。编码视频比特流通常包括用于表示译码决策(例如,译码模式)以及图片到块的划分的语法元素的一系列值。因此,对图片或块的译码的引用一般应被理解为形成图片或块的语法元素的译码值。
HEVC定义各种块,包括译码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频译码器(诸如视频编码器200)根据四叉树结构来将译码树单元(CTU)划分为CU。也就是说,视频译码器将CTU和CU划分为四个相等的、不重叠的正方形,并且四叉树的每个节点具有零个或四个子节点。没有子节点的节点可以被称为“叶节点”,并且此类叶节点的CU可以包括一个或多个PU和/或一个或多个TU。视频译码器可进一步划分PU和TU。例如,在HEVC中,残差四叉树(RQT)表示TU的划分。在HEVC中,PU表示帧间预测数据,而TU表示残差数据。经帧内预测的CU包括帧内预测信息,诸如帧内模式指示。
作为另一个示例,视频编码器200和视频解码器300可以被配置成根据VVC来操作。根据VVC,视频译码器(诸如视频编码器200)将图片划分为多个译码树单元(CTU)。视频编码器200可以根据树结构(诸如四叉树-二叉树(QTBT)结构或多类型树(MTT)结构)来划分CTU。QTBT结构去除多种划分类型的概念,诸如HEVC的CU、PU和TU之间的分隔。QTBT结构包括两个层级:根据四叉树分区进行划分的第一层级、以及根据二叉树分区进行划分的第二层级。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于译码单元(CU)。
在MTT分区结构中,可以使用四叉树(QT)分区、二叉树(BT)分区以及一种或多种类型的三叉树(TT)(也被称为三元树(TT))分区来对块进行划分。三叉树或三元树分区是其中块被分为三个子块的分区。在一些示例中,三叉树或三元树分区将块划分为三个子块,而不划分通过中心的原始块。MTT中的分区类型(例如,QT、BT和TT)可以是对称的或不对称的。
当根据AV1编解码器操作时,视频编码器200和视频解码器300可被配置成以块为单位对视频数据进行译码。在AV1中,能够处理的最大译码块被称为超级块。在AV1中,超级块可以是128x128亮度样本或64x64亮度样本。然而,在后续视频译码格式(例如,AV2)中,超级块可由不同(例如,更大)的亮度样本大小来定义。在一些示例中,超级块是块四叉树的顶层。视频编码器200可进一步将超级块划分成较小的译码块。视频编码器200可使用正方形或非正方形分区将超级块和其它译码块划分成较小的块。非正方形块可包括N/2xN、NxN/2、N/4xN和NxN/4块。视频编码器200和视频解码器300可对每个译码块执行单独的预测和变换处理。
AV1还定义了视频数据的图块(tile)。图块是可独立于其它图块而译码的超级块的矩形阵列。即,视频编码器200和视频解码器300可在不使用来自其它图块的视频数据的情况下分别对图块内的译码块进行编码和解码。然而,视频编码器200和视频解码器300可跨越图块边界执行滤波。图块的大小可以是均匀的或不均匀的。基于图块的译码可实现编码器和解码器具体实施的并行处理和/或多线程。
在一些示例中,视频编码器200和视频解码器300可以使用单个QTBT或MTT结构来表示亮度分量和色度分量中的每一者,而在其它示例中,视频编码器200和视频解码器300可以使用两个或更多个QTBT或MTT结构,诸如用于亮度分量的一个QTBT/MTT结构以及用于两个色度分量的另一QTBT/MTT结构(或者用于相应色度分量的两个QTBT/MTT结构)。
视频编码器200和视频解码器300可以被配置成使用四叉树分区、QTBT分区、MTT分区、超级块分区或其它分区结构。
在一些示例中,CTU包括亮度样本的译码树块(CTB)、具有三个样本阵列的图片的色度样本的两个对应CTB、或单色图片或使用三个单独的颜色平面和用于对样本进行译码的语法结构进行译码的图片的样本的CTB。CTB可以是某个N值的NxN样本块,使得一种分区为将分量划分为CTB。分量是来自构成4:2:0、4:2:2或4:4:4颜色格式图片的三个阵列(亮度和两个色度)中的一个阵列的阵列或单个样本,或构成单色格式图片的阵列或阵列的单个样本。在一些示例中,译码块是一些M值和N值的MxN样本块,使得一种分区为将CTB划分成译码块。
可以以各种方式在图片中对块(例如,CTU或CU)进行分组。作为一个示例,砖块(brick)可以指图片中特定图块内的CTU行的矩形区域。图块可以是图片中特定图块列和特定图块行内的CTU的矩形区域。图块列指代CTU的具有与图片的高度相等的高度以及由语法元素(例如,诸如在图片参数集中)指定的宽度的矩形区域。图块行指代CTU的具有由语法元素(例如,诸如在图片参数集中)指定的高度以及与图片的宽度相等的宽度的矩形区域。
在一些示例中,可以将图块划分为多个砖块,每个砖块可以包括图块内的一个或多个CTU行。未被划分成多个砖块的图块也可以被称为砖块。然而,作为图块的真实子集的砖块不可以被称为图块。图片中的砖块也可以被布置在切片中。切片可以是图片的整数个砖块,其可以唯一地被包含在单个网络抽象层(NAL)单元中。在一些示例中,切片包括多个完整图块或仅一个图块的完整砖块的连续序列。
本公开可以互换地使用“NxN”和“N乘N”来指代块(诸如CU或其它视频块)在垂直和水平维度方面的样本尺寸,例如,16x16个样本或16乘16个样本。通常,16x16CU在垂直方向上将具有16个样本(y=16),并且在水平方向上将具有16个样本(x=16)。同样地,NxN CU通常在垂直方向上具有N个样本,并且在水平方向上具有N个样本,其中N表示非负整数值。CU中的样本可以按行和列布置。此外,CU不一定需要在水平方向上具有与在垂直方向上相同数量的样本。例如,CU可以包括NxM个样本,其中M不一定等于N。
视频编码器200对用于CU的表示预测和/或残差信息以及其它信息的视频数据进行编码。预测信息指示要如何预测CU以便形成CU的预测块。残差信息通常表示编码之前的CU的样本与预测块之间的逐样本差异。
为了预测CU,视频编码器200通常可以通过帧间预测或帧内预测形成CU的预测块。帧间预测通常是指从先前译码的图片的数据预测CU,而帧内预测通常是指从同一图片的先前译码的数据预测CU。为了执行帧间预测,视频编码器200可使用一个或多个运动向量来生成预测块。视频编码器200通常可执行运动搜索以识别与CU紧密匹配的参考块,例如,根据CU与参考块之间的差异。视频编码器200可以使用绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)、或其它此类差计算来计算差度量,以确定参考块是否与当前CU紧密匹配。在一些示例中,视频编码器200可使用单向预测或双向预测来预测当前CU。
VVC的一些示例还提供仿射运动补偿模式,其可以被认为是帧间预测模式。在仿射运动补偿模式下,视频编码器200可以确定表示非平移运动(诸如放大或缩小、旋转、透视运动或其它不规则运动类型)的两个或更多个运动向量。
为了执行帧内预测,视频编码器200可选择帧内预测模式来生成预测块。VVC的一些示例提供了六十七种帧内预测模式,包括各种方向模式,以及平面模式和DC模式。通常,视频编码器200选择描述当前块(例如,CU的块)的相邻样本的帧内预测模式,从中预测当前块的样本。假定视频编码器200以光栅扫描次序(从左到右、从上到下)对CTU和CU进行编码,则此类样本通常可以是在与当前块相同的图片中在当前块的上方、左上方或左侧。
视频编码器200对表示当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可对表示使用各种可用帧间预测模式中的哪一者的数据以及对应模式的运动信息进行编码。例如,对于单向或双向帧间预测,视频编码器200可以使用高级运动向量预测(AMVP)或合并模式对运动向量进行编码。视频编码器200可以使用类似的模式来对用于仿射运动补偿模式的运动向量进行编码。
AV1包括用于对视频数据的译码块进行编码和解码的两种通用技术。这两种通用技术是帧内预测(例如,帧内预测或空间预测)和帧间预测(例如,帧间预测或时间预测)。在AV1的内容中,当使用帧内预测模式来预测视频数据的当前帧的块时,视频编码器200和视频解码器300不使用来自视频数据的其它帧的视频数据。对于大多数帧内预测模式,视频编码器200基于当前块中的样本值与从同一帧中的参考样本生成的预测值之间的差来对当前帧的块进行编码。视频编码器200基于帧内预测模式确定从参考样本生成的预测值。
在预测(诸如对块的帧内预测或帧间预测)之后,视频编码器200可以计算用于块的残差数据。残差数据(诸如残差块)表示在块与用于块的预测块之间的逐样本差异,该预测块是使用对应的预测模式来形成的。视频编码器200可以将一个或多个变换应用于残差块,以在变换域中而非在样本域中产生经变换的数据。举例来说,视频编码器200可将离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。另外,视频编码器200可以在第一变换之后应用二次变换,诸如模式相关不可分离二次变换(MDNSST)、信号相关变换、Karhunen-Loeve变换(KLT)等。视频编码器200在应用一个或多个变换之后产生变换系数。
如上文所指出的,在产生变换系数的任何变换之后,视频编码器200可以执行对变换系数的量化。量化通常指代如下的过程:其中对变换系数进行量化以可能地减少用于表示变换系数的数据量,从而提供进一步的压缩。通过执行量化过程,视频编码器200可以减小与一些或所有变换系数相关联的比特深度。例如,视频编码器200可在量化期间将n位值向下舍入到m位值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可执行待量化的值的按位右移。
在量化之后,视频编码器200可以对变换系数进行扫描,从而从包括经量化的变换系数的二维矩阵产生一维向量。扫描可以被设计成将较高能量(以及因此较低频率)的变换系数放置在向量的前面并且将较低能量(以及因此较高频率)的变换系数放置在向量的后面。在一些示例中,视频编码器200可利用预定义的扫描顺序来扫描经量化的变换系数以产生序列化向量,并且然后对该向量的经量化的变换系数进行熵编码。在其它示例中,视频编码器200可以执行自适应扫描。在扫描经量化的变换系数以形成一维向量之后,视频编码器200可例如根据上下文自适应二进制算术译码(CABAC)对一维向量进行熵编码。视频编码器200还可对描述与编码视频数据相关联的元数据的语法元素的值进行熵编码,该编码视频数据由视频解码器300在对视频数据进行解码时使用。
为了执行CABAC,视频编码器200可以将上下文模型内的上下文指派给要传输的符号。上下文可以涉及例如符号的相邻值是否为零值。概率确定可以基于指派给符号的上下文。
视频编码器200可以例如在图片报头、块报头、切片报头中进一步向视频解码器300生成语法数据,诸如基于块的语法数据、基于图片的语法数据和基于序列的语法数据、或其它语法数据诸如序列参数集(SPS)、图片参数集(PPS)或视频参数集(VPS)。视频解码器300同样可以对此类语法数据进行解码以确定如何对相应的视频数据进行解码。
以这种方式,视频编码器200可以生成包括编码视频数据的比特流,例如,描述图片到块(例如,CU)的划分以及用于块的预测和/或残差信息的语法元素。最终,视频解码器300可以接收比特流并对编码视频数据进行解码。
通常,视频解码器300执行与视频编码器200执行的过程相反的过程以对比特流的编码视频数据进行解码。例如,视频解码器300可以使用CABAC,以与视频编码器200的CABAC编码过程基本上类似的、但是相反的方式来对用于比特流的语法元素的值进行解码。语法元素可以定义用于将图片划分成CTU以及根据诸如QTBT结构之类的对应的分区结构划分每个CTU以定义CTU的CU的分区信息。语法元素可进一步定义视频数据块(例如,CU)的预测和残差信息。
残差信息可以由例如经量化的变换系数来表示。视频解码器300可以对块的经量化的变换系数进行逆量化和逆变换以再现用于块的残差块。视频解码器300使用用信号通知的预测模式(帧内预测或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)来形成用于块的预测块。视频解码器300然后可以组合预测块和残差块(在逐样本的基础上)以再现原始块。视频解码器300可以执行附加处理,诸如执行去块过程以减少沿着块的边界的视觉伪影。
本公开通常可能涉及“用信号通知”某些信息(诸如语法元素)。术语“用信号通知”通常可以指代对用于对编码视频数据进行解码的语法元素的值和/或其它数据的传达。也就是说,视频编码器200可以用信号通知比特流中语法元素的值。通常,用信号通知是指在比特流中生成值。如上文所指出的,源设备102可以基本上实时地或不实时地(诸如可能在将语法元素存储到存储设备112以供目的地设备116稍后检索时发生)将比特流传送到目的地设备116。
如上文所介绍,视频编码器200和视频解码器300可被配置成对重构块执行各种类型的滤波,包括ALF。在VVC中,可应用ALF以最小化原始样本与滤波样本之间的均方误差。在一些示例中,ALF的输入样本为SAO滤波器的输出样本。ALF的输出样本被存储在解码图片缓冲器(DPB)中或者作为输出图片被发送出去。在联合探测模型(JEM)软件中采用的ALF的滤波器形状是5x5、7x7和9x9菱形。视频编码器200可在图片层级选择并用信号通知滤波器形状。为了获得译码效率和滤波器复杂度之间的更好折衷,在VVC中,如图2所示,仅支持分别用于亮度分量和色度分量的7x7菱形400和5x5菱形402。图2示出了VVC版本1中的示例ALF滤波器形状。
在一个示例中,对于每个滤波器,整数系数ci以7位分数精度表示。ci的绝对值通过使用后跟非零系数的符号位的第0阶指数哥伦布(Exp-Golomb)码来译码。在图2中,每个正方形对应于亮度样本或色度样本,且中心正方形对应于当前待滤波样本。为了减少与发送系数相关联的开销和乘法次数,图2中的滤波器形状是点对称的。另外,如等式(1)中所示,所有滤波器系数的总和应等于128,其为具有7位分数精度的1.0的定点表示。
/>
在等式(1)中,N是系数的数量,并且N对于7x7和5x5滤波器形状分别等于13和7。
在VVC中,非线性被引入到ALF中。当相邻样本值与当前待滤波样本值之间的差太大时,视频编码器200和视频解码器300可应用简单削波函数以减小相邻样本值的影响。为了对样本进行滤波,如下执行ALF过程:
其中,R(x,y)是SAO滤波后的样本值。
用削波函数将非线性函数定义为:
fi,j=min(bi,max(-bi,R(x+xi,j,y+yi,j)-R(x,y))) (3)
其中,j等于0或1,并且(xi,j,yi,j)是第i个系数ci的滤波器抽头位置偏移。
在VVC版本1中,如在等式(4)中,系数ci的削波参数bi由削波索引di确定。在等式(4)中,BD是内部比特深度。
在滤波器中,用信号通知的系数的数量和用信号通知的削波索引的数量都是N-1。在一个示例中,每个系数限于[-128,127]的范围内,其等效于具有7位分数精度的[-1.0,1.0)。在一个示例中,每个削波索引di可以是0、1、2或3,并且通过使用两位固定长度代码用信号通知。为了简化削波运算,如在等式(4)中,削波参数的值bi仅可为2的幂。因此,可以将简单的逐位逻辑运算应用为削波运算。
视频编码器200和视频解码器300可被配置成执行子块层级滤波器适配。在VVC版本1中,ALF遵循与JEM-7.0中的ALF相同的亮度分类框架。为了获得译码效率与计算复杂度之间的更好折衷,用于分类的块大小可从2x2样本增加到4x4样本。为了确定4x4块的类索引,采用具有8x8亮度样本的环绕窗口来导出方向和活动信息。在该8x8亮度样本窗口中,首先计算每隔一个样本的四个梯度值,如图3所示。图3示出用于ALF分类的4x4子块404的经子采样的拉普拉斯(Laplacian)值。计算用点标记的样本的梯度值。其它样本的梯度值被设置为0。对于具有坐标(k,l)的每个样本,图4示出了四个梯度值:水平梯度H406,垂直梯度V408,135度梯度D1410和45度梯度D2412,它们被导出为:
变量i和j是指4x4块中左上方样本的坐标。所有计算出的水平梯度gH、垂直梯度gV、135度梯度gD1和45度梯度gD2之和被计算为:
/>
水平梯度和垂直梯度的最大值和最小值的比率(由RH,V表示)以及两个对角线梯度的最大值和最小值的比率(由RD1,D2表示)如以下等式(7)中所示而计算。
然后,RH,V和RD1,D2用两个阈值(t1=2和t2=4.5)相互比较,以导出方向性D,如下所示:
步骤1:如果RH,V≤t1并且RD1,D2≤t1,则D被设置为0(纹理),否则继续步骤2。
步骤2:如果RD1,D2>RH,V,则继续步骤3,否则继续步骤4。
步骤3:如果RD1,D2≤t2,则D被设置为1(弱对角线),否则,D被设置为2(强对角线)。
步骤4:如果RH,V≤t2,则D被设置为3(弱水平/垂直),否则,D被设置为4(强水平/垂直)。
活动性值A被计算为:
A被进一步映射到0至4的范围(包括0和4),并且量化值被表示为因此,每个4x4块被归类为25个类(C)中的一个类,如:
因此,亮度滤波器组包含25个滤波器。然而,为了在保持译码效率的同时减少表示滤波器系数所需的比特数,可合并不同的类。经合并的类使用相同的滤波器。视频编码器200可用信号通知合并表。在合并表414中,作为一个示例,如图5所示,通过使用固定长度代码来用信号通知每个类的滤波器索引。图5示出了将25个亮度类合并成7个合并类的示例,其中每个正方形基于D的值和表示一个类(索引可以是0至24,包括0和24)。在该示例滤波器组中,视频编码器200可被配置成用信号通知7个亮度滤波器。对于每一类,视频编码器200可在ALF_APS(适配参数集)中用信号通知滤波器索引(在该示例中为0至6)。
一旦基于4x4块的类索引C和合并表从亮度滤波器组获得滤波器,在获得该块的滤波器样本之前,如图6所示,能够根据如表1中针对4x4块计算的梯度值对滤波器应用简单几何变换。
表1基于梯度值的几何变换
梯度值 变换
gD2<gD1且gH<gV 无变换
gD2<gD1且gV≤gH 对角线翻转
gD1≤gD2且gH<gV 垂直翻转
gD1≤gD2且gV≤gH 右旋转
图6示出了7X7菱形滤波器形状的几何变换。该几何变换包括对角线翻转416、垂直翻转418和右旋转420。
视频编码器200和视频解码器300可被配置成执行译码树块层级适配。在JEM-7.0中,仅将一个亮度滤波器组应用于切片的所有亮度CTB并且仅将一个色度滤波器应用于切片的所有色度CTB。然而,存在两个缺点。首先,当CTB之间的统计信息实质上不同时,针对颜色分量的所有CTB使用相同滤波器/滤波器组可限制ALF的译码效率,尤其是针对大分辨率序列和混合内容视频序列(例如,自然内容和屏幕内容两者)。其次,当导出用于切片的滤波器时,直到收集到整个切片的统计信息才能够计算滤波器。这种多通道编码技术可能不适于低延迟应用。为了解决这个问题,一个示例解决方案使用来自先前译码的切片的统计信息。然而,这可能导致一些性能损失。
除了亮度4x4块层级滤波器适配之外,VVC支持CTB层级滤波器适配。在切片中,视频编码器200可被配置成针对不同亮度CTB使用不同亮度滤波器组,并且还可针对不同色度CTB使用不同色度滤波器。视频编码器200可针对具有类似统计信息的CTB使用相同的滤波器。这种CTB层级滤波器适配提高了译码效率,特别是针对低延迟应用。另外,VVC版本1允许视频编码器200针对CTB使用来自先前译码的图片中的滤波器。该时间滤波器重用机制能够减少滤波器系数的开销。在VVC版本1中,能够将最多七个用信号通知的亮度滤波器组和八个用信号通知的色度滤波器应用于切片。当不存在任何用信号通知的滤波器时,能够将16个固定滤波器组中的一个固定滤波器组应用于亮度CTB。
当启用ALF时,针对亮度CTB用信号通知固定滤波器组或用信号通知的亮度滤波器组的滤波器组索引。用信号通知的色度滤波器的滤波器索引是针对色度CTB用信号通知的。通过使用从先前译码的图片中用信号通知的滤波器和固定滤波器,当在低延迟应用中对当前CTU进行编码时,可通过仅使用当前CTU的统计信息来决定三个CTU层级开/关标志和滤波器/滤波器组索引。因此,每个CTU的编码比特流能够即时生成,而无需等待整个图片的统计信息可用。
视频编码器200和视频解码器300可被配置成实现行缓冲器减少。如图2所示,在垂直方向上,滤波器形状对于亮度分量和色度分量分别具有7个抽头和5个抽头。结果,在VVC测试模型2.0(VTM-2.0)中,当对一行CTU进行解码时,由于去块滤波器和SAO滤波器的延迟,上CTU行的7个亮度线和4个色度线必须被存储在用于ALF的行缓冲器中。然而,额外的行缓冲器需要较大的芯片面积,特别是对于高清晰度(HD)和超高清晰度(UHD)视频序列。
为了使ALF硬件友好(例如,通过减少行缓冲器要求),可应用虚拟边界(VB)的概念来移除ALF的所有行缓冲器开销。考虑到VVC版本1中的去块滤波器和SAO滤波器,VB的位置是水平CTU边界上方的4个亮度样本和2个色度样本。当对VB的一侧的一个样本进行滤波时,VB的另一侧的样本不能被利用。应用具有对称样本填充的经修改的滤波,如图7A至图7C的示例中所示,其中滤波器432的中心正方形是当前待滤波样本的位置并且粗线430(VB 430)是VB的位置。在图7A至图7C中,具有虚线的滤波器抽头位置被填充。图7A示出了滤波器432的一个滤波器抽头位置高于或低于VB 430的示例。在该示例中,一个滤波器抽头位置被填充。图7B示出了滤波器432的四个滤波器抽头位置高于或低于VB 430的示例。在该示例中,四个滤波器抽头位置被填充。
然而,当样本在VB 430的每一侧上的最近行上时(例如,如图7C中所示),2D滤波器等效于水平滤波器。这可能引入视觉伪影。为了解决该问题,在当前待滤波样本在VB的每一侧上的最近行上时补偿滤波强度,如等式(10)中所示。将等式(10)与等式(2)进行比较,另外3个比特被右移。
当应用VB处理时,4x4块的分类也被修改。当计算VB的一侧上的4x4块的类索引时,不使用VB的另一侧上的梯度和样本,如图8中所示。然而,当计算与VB相邻的样本的梯度值时,不能利用VB的另一侧上的样本。因此,如图8所示,当前侧的边界样本被重复扩展。即,将VB的当前侧上的边界样本镜像到VB的另一侧。由于可用梯度值的数量减少,所以等式(8)中的活动性推导被重新缩放为:
视频编码器200和视频解码器300可被配置成执行滤波器系数信令。在VVC版本1中,在ALF适配参数集(APS)中用信号通知ALF系数。一个APS可包含一组亮度滤波器,其具有最多25个滤波器、最多8个色度滤波器和最多8个跨分量ALF(CC-ALF)滤波器。每组亮度滤波器支持将ALF应用于亮度25类。在VVC版本1中,支持最多8个ALF_APS。
下面的表2示出了用于VVC的自适应环路滤波器数据语法。
表2
/>
视频编码器200和视频解码器300可被配置成实现具有多个分类器的ALF。在VVC中,当对样本进行滤波时,仅能够应用一个分类器和一个滤波器。为了在VVC的基础上改进ALF的性能,在2020年12月23日提交的美国临时专利申请63/130,275中描述了基于多个分类器的ALF框架,该专利申请通过引用的方式并入本文。
图9示出了具有多个拉普拉斯分类器的ALF的示例。在图9的示例中,视频编码器200和视频解码器300将第一级ALF 440应用于重构块的重构样本R(x,y)。为了应用第一级ALF 440,视频编码器200和视频解码器300应用分类器(C)以确定重构样本的第一类索引并且基于该第一类索引从第一滤波器组(F)中选择滤波器(f)。视频编码器200和视频解码器300将第一滤波器组中的滤波器应用于重构样本以确定第一中间样本值(R')。如图9中所示,在第一级440中,视频编码器200和视频解码器300可使用多个分类器和多个滤波器来确定多个中间样本值。
视频编码器200和视频解码器300将第二级ALF 442应用于重构样本。以下等式(19)示出了视频编码器200和视频解码器300可如何应用第二级ALF的示例。
Nf表示可应用于样本的固定(预定义)滤波器组的数量。Rs是ALF的输入。F(f,i)(其中i=0…Nf-1)表示第i个固定滤波器组。
C(f,i)(其中i=0…Nf-1)表示具有第i个固定滤波器组的分类器。
通过C(f,i),针对每个样本计算滤波器索引。基于滤波器索引,选择固定滤波器组F(f,i)中的滤波器来对该样本进行滤波。另外,C(f,i)确定如何对系数应用几何变换。
图10示出了具有三个分类器的ALF的示例,如JVET-U0100(2021年1月6日-15日通过电话会议召开的第21次会议)中所提出。在ECM-1.0中采用的JVET-U0100中,提出了其中Nf=2的ALF框架,如图10所示。在ECM-1.0中,在其中i=0或1的分类器C(f,i)中,活动性和方向值可基于2-D拉普拉斯值来确定。分类器可被应用于每个样本或块。当分类器被应用于块时,块中的所有样本具有相同类索引和相同转置类型。标记wi和hi可以分别表示块的宽度和块的高度,并且(x,y)能够表示块的左上样本的坐标。
在图10的示例中,视频编码器200和视频解码器300将第一级ALF 450应用于重构块的重构样本R(x,y)。为了应用第一级ALF 450,视频编码器200和视频解码器300应用分类器(C)以确定重构样本的第一类索引并且基于该第一类索引从第一滤波器组(F)中选择滤波器(f)。视频编码器200和视频解码器300将第一滤波器组中的滤波器应用于重构样本以确定第一中间样本值(R′)。
视频编码器200和视频解码器300将第二级ALF 452应用于重构样本。以下等式(19)示出了视频编码器200和视频解码器300可如何应用第二级ALF的示例。
图10的示例利用三个拉普拉斯分类器,两个在第一级450中并且一个在第二级452中。如将在下文更详细解释的,根据本公开的技术,可使用不同类型的分类器,而不仅仅是拉普拉斯分类器。例如,根据一个具体实施,可在第二级452处使用不同类型的分类器,例如基于频带的分类器。
对于具有坐标(k,l)的样本,四个拉普拉斯(梯度)值:水平梯度H、垂直梯度V、135度梯度D1和45度梯度D2可以推导为
与VVC一样,视频编码器200和视频解码器300可被配置成通过使用垂直梯度和水平梯度将活动性值Ai导出为:
其中,ai和bi分别是分类器C(f,i)的水平方向和垂直方向上的窗口大小。
Ai被进一步量化到0至MA,i-1的范围(包括0和MA,i-1)中,并且量化值表示为
在一个示例中,
MA,i=16,Ai=min(192,(multi·Ai)>>(9+bitdepth))并且
=Q[Ai],其中
Q[193]={0,1,2,3,4,4,5,5,6,6,6,6,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15};
bitdepth是R(x,y)的比特深度,multi取决于窗口大小(ai,bi),并且multi等于以下值:
视频编码器200和视频解码器300可被配置成通过使用水平梯度H、垂直梯度V、135度梯度D1和45度梯度D2来计算方向。
视频编码器200和视频解码器300可以被配置成首先计算水平梯度的值gi,H、垂直梯度的值gi,V以及两个对角线梯度的值gi,D1和gi,D2,如下所示:
为了分配方向性Di,(水平梯度和垂直梯度的最大值和最小值),视频编码器200和视频解码器300可被配置成将两个对角线梯度的最大值和最小值导出如下:
/>
视频编码器200和视频解码器300可被配置成通过比较比率和阈值阵列(Th)来计算水平/垂直方向的边缘强度(ESi,HV)。阈值阵列的大小可以表示为S,并且阈值按升序排序。方向的数量为MD,i=(S+1)*(S+2)。
步骤1.初始化m=0且ESi,HV=0;
步骤2.如果m等于S,则停止;否则,转到步骤3。
步骤3.如果m=m+1且ESi,HV=ESi,HV+1,则转到步骤2;否则,停止。
对角线方向(Ei,D)类似地计算为
步骤1.初始化m=0且Ei,D=0;
步骤2.如果m等于S,则停止;否则,转到步骤3。
步骤3.如果m=m+1且Ei,D=Ei,D+1,则转到步骤2;否则,停止。
阈值阵列的示例是Th=[1.25,1.5,2,3,4.5,8]且S=6。
视频编码器200和视频解码器300可被配置成如下确定主边缘强度(ESM)和辅边缘强度(ESs):
如果则将ESM设置为ESHV,并且将ESS设置为ESD;否则,将ESM设置为ESD,并且将ESS设置为ESHV
如果ESs大于ESM,则Di被设置为0。否则,如果 则Di=ESM*(ESM+1)/2+ESs;否则,Di=ESM*(ESM+1)/2+ESs+MD,i/2;
类索引Ci可被导出为
基于Ci,从C(f,i)中挑选滤波器。
在第二级中,F′是用信号通知的滤波器或预定义滤波器组,并且C′是对应的分类器。可以利用当前样本和/或其邻居对中间滤波结果进行进一步滤波。可使用C′来确定应用F′中的哪个滤波器以及如何转置系数。
C′可以使用R和/或R′通过计算活动性和方向作为第一级来确定滤波器组F′的滤波器索引。当应用F′时可应用转置。
在一个示例中,对于具有坐标(k,1)的样本,视频编码器200和视频解码器300可被配置成导出四个拉普拉斯(梯度)值,即水平梯度H、垂直梯度V、135度梯度D1和45度梯度D2,如:
与VVC一样,视频编码器200和视频解码器300可被配置成通过使用垂直梯度和水平梯度导出活动性值A,如下:
其中a和b分别是分类器C′的水平方向和垂直方向上的窗口大小,并且w和h是其中所有样本具有相同分类索引和相同转置索引的块的宽度和高度。
视频编码器200和视频解码器300可被配置成将A量化到0至MA-1的范围(包括0和MA-1)。量化值能够被表示为例如,
A=min(15,(mult·A)>>(9+bitdepth))并且其中
Q={0,1,2,2,2,2,2,3,3,3,3,3,3,3,3,4} (18)
bitdepth是R(x,y)的比特深度,mult可取决于窗口大小a*b且mult可等于以下值:
在从C′得到样本的类索引之后,视频编码器200和视频解码器300可被配置成基于类索引从滤波器组F′中选择滤波器。视频编码器200和视频解码器300可被配置成将滤波应用为:
在上述等式中,滤波被分成两部分:
·滤波部分1:通过使用相邻样本进行滤波,可以应用几何变换。N0是系数的数量。其可以是如图9所示的5x5、7x7、9x9、11x11或13x13菱形滤波器。
·滤波部分2:通过使用中间滤波样本进行滤波,可以应用几何变换。N1是系数的数量。
函数fi,j(其中j=0或1)可用削波函数定义为
fi,j=fi,j(R(x+xi,j,y+yi,j),R(x,y))
=min(bi,max(-bi,R(x+xi,j,y+yi,j)-R(x,y))) (20)
函数gi可以用削波函数定义为
gi=gi(R′(x,y,i-N0),R(x,y))
=min(bi,max(-bi,R′(x,y,i-N0)-R(x,y))) (21)
bi是对应于系数ci的削波参数。在ECM-1.0中,N1=2。
现有ALF技术可具有能够通过本公开中所描述的技术改进的一些问题。在ECM-1.0和VVC中,能够应用用信号通知的滤波器来对样本进行滤波。对于每个CTU,将用信号通知的滤波器组应用于每个颜色分量。对每个块应用分类,并且确定类索引。利用该类索引,确定滤波器组中的对应滤波器将被应用于块中的样本。
在VVC和ECM-1.0两者中,仅一种类型的分类器(诸如,拉普拉斯分类器)被应用于用信号通知的滤波器组。为了改进译码效率,本公开描述针对用信号通知的滤波器组使用多种类型的分类器。在该上下文中,分类器定义用于计算类索引的过程。
根据本公开的技术,当生成滤波样本时,视频编码器200和视频解码器300可被配置成使得不同的滤波器组可使用不同分类器,并且不同图片、切片、图块、CTU或子块可使用不同分类器。例如,一些图片、切片、图块、CTU或子块可使用拉普拉斯分类器,而其它图片、切片、图块、CTU或子块使用基于频带的分类器。
在一个示例中,对于分类器,可通过使用如VVC/ECM-1.0中的分类器来导出类索引,但其中几何变换被停用。
在另一示例中,视频编码器200和视频解码器300可基于样本的值或子块(诸如,块的2x2子块)的样本值之和来实现基于频带的分类器。当分类器具有N个类时,值的动态范围(例如,样本的值或块的样本值之和)可被均匀地或不均匀地划分为N个非重叠区间。区间也可以被称为频带。当对样本或子块进行分类时,可导出样本的值或子块的样本值之和。然后,样本值或和的区间索引可被用作类索引。例如,当块的和的动态范围被均匀地划分为N个区间时,类索引可以被导出为:
(sum*N)>>{bitdepth+[log2(块中的样本数量)]}
其中bitdepth是样本值的比特深度,并且sum是正被滤波的样本的样本值之和。
本公开还描述与分类器信令有关的各种技术。下面的信令技术可被单独或联合应用。在一些示例中,对于用信号通知的滤波器组,视频编码器200可向视频解码器300用信号通知用于指示在应用该滤波器组时使用哪种分类器(例如,基于拉普拉斯、基于频带或其它)的索引。在一些示例中,当APS具有多个滤波器组时,视频编码器200可被配置成用信号通知用于指示当应用APS中的滤波器组时使用哪种分类器的索引。当CTU或块参考滤波器组时,视频解码器300可应用对应于用信号通知的滤波器组的分类器索引的分类器。
在一些示例中,视频编码器200和视频解码器300可被配置成与不同分类器一起使用用信号通知的滤波器组。例如,视频编码器200可用信号通知图片、子图片、切片、CTU或块的索引。当将用信号通知的滤波器组应用于对应层级处的样本时,视频解码器300可应用具有对应索引的分类器类型。
在一些示例中,对于滤波器组,视频编码器200可用信号通知滤波器组或每个类或滤波器组中的每个滤波器的标志以指示几何变换是应用于滤波器组、类还是滤波器。可在用信号通知滤波器组时用信号通知该标志。在一些示例中,当CTU正参考滤波器组时,可针对CTU用信号通知该标志。
在一些示例中,代替在比特流中用信号通知,视频编码器200和视频解码器300可被配置成基于一些译码信息(诸如滤波器形状以及固定滤波器是否在第一级中作为滤波的预滤波而应用)隐式地导出分类器索引。在一个示例中,当应用固定滤波器作为第一级(预滤波)时,视频解码器300可被配置成将第一分类器(例如,基于频带的分类器)应用于第二级中的用信号通知的滤波器。当固定滤波器不被应用作为第一级(预滤波)时,视频解码器300可被配置成将第二分类器(例如,VTM和ECM-1.0中的分类器)应用于用信号通知的滤波器。在另一示例中,当在第一级(预滤波)中应用固定滤波器时,视频解码器300可被配置成不在第二级中将几何变换应用于用信号通知的滤波器,并且当在第一级(预滤波)中不应用固定滤波器时,视频解码器300可被配置成将几何变换应用于用信号通知的滤波器。
图11是示出可执行本公开的技术的示例视频编码器200的框图。图11是出于解释的目的而提供的,并且不应当被认为是对在本公开中广泛地举例说明和描述的技术的限制。出于解释的目的,本公开描述了根据VVC(ITU-TH.266,正在开发)和HEVC(ITU-TH.265)技术的视频编码器200。然而,本公开的技术可由被配置成其它视频译码标准和视频译码格式(诸如AV1和AV1视频译码格式的后续格式)的视频编码设备执行。
在图11的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、解码图片缓冲器(DPB)218和熵编码单元220。视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、DPB 218和熵编码单元220中的任一者或全部可以在一个或多个处理器中或者在处理电路中实现。例如,视频编码器200的单元可以实现为一个或多个电路或逻辑元件作为硬件电路的一部分,或者作为处理器、ASIC或FPGA的一部分。此外,视频编码器200可以包括附加的或另选的处理器或处理电路来执行这些和其它功能。
视频数据存储器230可以存储要由视频编码器200的组件编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。DPB218可以充当参考图片存储器,其存储参考视频数据以在由视频编码器200对后续视频数据进行预测时使用。视频数据存储器230和DPB 218可以由各种存储器设备中的任何储存器设备形成,诸如动态随机存取存储器(DRAM)(包括同步DRAM(SDRAM))、磁阻RAM(MRAM)、电阻性RAM(RRAM)、或其它类型的存储器设备。视频数据存储器230和DPB 218可以由相同的存储器设备或单独的存储器设备来提供。在各个示例中,视频数据存储器230可以与视频编码器200的其它组件在片上(如图所示),或者相对于那些组件在片外。
在本公开中,对视频数据存储器230的引用不应当被解释为限于在视频编码器200内部的存储器(除非特别说明)或者在视频编码器200外部的存储器(除非特别说明)。相反,对视频数据存储器230的引用应当被理解为存储视频编码器200接收以用于编码的视频数据(例如,用于要被编码的当前块的视频数据)的参考存储器。图1的存储器106还可以提供对来自视频编码器200的各种单元的输出的临时存储。
示出图11的各个单元以帮助理解由视频编码器200执行的操作。单元可以被实现为固定功能电路、可编程电路、或它们的组合。固定功能电路是指提供特定功能并关于可执行的操作进行了预先设定的电路。可编程电路指代可以被编程以执行各种任务并且在可以执行的操作上提供灵活功能的电路。例如,可编程电路可以执行软件或固件,该软件或固件使得可编程电路以由软件或固件的指令所定义的方式进行操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但固定功能电路执行的操作类型通常是不可变的。在一些示例中,单元中的一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,单元中的一个或多个单元可以是集成电路。
视频编码器200可以包括由可编程电路形成的算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或可编程核心。在使用由可编程电路执行的软件执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收和执行的软件的指令(例如,目标代码),或者视频编码器200(未示出)内的另一个存储器可以存储此类指令。
视频数据存储器230被配置成存储接收到的视频数据。视频编码器200可以从视频数据存储器230检索视频数据的图片,并且将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是待编码的原始视频数据。
模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括根据其它预测模式来执行视频预测的附加功能单元。作为示例,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(LM)单元等。
模式选择单元202通常协调多个编码通道以测试编码参数的组合和针对此类组合的所得率失真值。编码参数可以包括CTU到CU的分区、用于CU的预测模式、用于CU的残差数据的变换类型、用于CU的残差数据的量化参数等。模式选择单元202可以最终选择具有与其它测试的组合相比更好的率失真值的编码参数组合。
视频编码器200可以将从视频数据存储器230检索的图片划分成一系列CTU,并且将一个或多个CTU封装在切片内。模式选择单元202可以根据树结构(诸如MTT结构、QTBT结构、超级块结构或上述四叉树结构)来划分图片的CTU。如上文所描述的,视频编码器200可以通过根据树结构来划分CTU,从而形成一个或多个CU。此类CU通常还可以被称为“视频块”或“块”。
通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)生成当前块(例如,当前CU,或者在HEVC中,PU和TU的重叠部分)的预测块。为了对当前块进行帧间预测,运动估计单元222可以执行运动搜索以识别在一个或多个参考图片(例如,存储在DPB 218中的一个或多个先前译码的图片)中的一个或多个紧密匹配的参考块。具体地,运动估计单元222可以例如根据SAD、SSD、MAD、MSD等来计算表示潜在参考块与当前块的类似程度的值。运动估计单元222通常可以使用当前块和正在考虑的参考块之间的逐样本差异来执行这些计算。运动估计单元222可识别具有由这些计算产生的最低值的参考块,以指示与当前块最匹配的参考块。
运动估计单元222可以形成一个或多个运动向量(MV),该运动向量限定相对于当前块在当前图片中的位置而言参考块在参考图片中的位置。然后,运动估计单元222可以将运动向量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可提供单个运动向量,而对于双向帧间预测,运动估计单元222可以提供两个运动向量。运动补偿单元224然后可以使用运动向量生成预测块。例如,运动补偿单元224可以使用运动向量来检索参考块的数据。作为另一示例,如果运动向量具有分数样本精度,则运动补偿单元224可根据一个或多个内插滤波器内插预测块的值。此外,对于双向帧间预测,运动补偿单元224可以检索由相应运动向量标识的两个参考块的数据并且例如通过逐样本平均或加权平均来组合所检索的数据。
当根据AV1视频译码格式操作时,运动估计单元222和运动补偿单元224可被配置成使用平移运动补偿、仿射运动补偿、重叠块运动补偿(OBMC)和/或复合帧间-帧内预测来对视频数据的译码块(例如,亮度编码块和色度译码块两者)进行编码。
作为另一个示例,对于帧内预测或帧内预测译码,帧内预测单元226可从邻近当前块的样本生成预测块。例如,对于方向性模式,帧内预测单元226通常可以在数学上将相邻样本的值进行组合,并且跨越当前块在所定义的方向上填充这些计算出的值以产生预测块。作为另一示例,对于DC模式,帧内预测单元226可计算当前块的相邻样本的平均值并且生成预测块以包含预测块的每个样本的该所得平均值。
当根据AV1视频译码格式操作时,帧内预测单元226可被配置成使用方向性帧内预测、非方向性帧内预测、递归滤波器帧内预测、亮度-色度(CFL)预测、块内复制(IBC)和/或调色板模式来对视频数据的译码块(例如,亮度编码块和色度译码块两者)进行编码。模式选择单元202可以包括根据其它预测模式来执行视频预测的附加功能单元。
模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的未编码的原始版本,并且从模式选择单元202接收预测块。残差生成单元204计算当前块和预测块之间的逐样本差异。所得的逐样本差异定义了当前块的残差块。在一些示例中,残差生成单元204还可以确定残差块中的样本值之间的差异以使用残差差分脉冲译码调制(RDPCM)来生成残差块。在一些示例中,残差生成单元204可以使用执行二进制减法的一个或多个减法器电路来形成。
在其中模式选择单元202将CU划分为PU的示例中,每个PU可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可支持具有各种大小的PU。如上文所指出的,CU的大小可以指代CU的亮度译码块的大小,而PU的大小可以指代PU的亮度预测单元的大小。假设特定CU的大小是2Nx2N,视频编码器200可支持2Nx2N或NxN的PU大小用于帧内预测,以及2Nx2N、2NxN、Nx2N、NxN或类似的对称PU大小用于帧间预测。视频编码器200和视频解码器300还可以支持针对用于帧间预测的2NxnU、2NxnD、nLx2N和nRx2N的PU大小的非对称分区。
在其中模式选择单元202不将CU进一步划分为PU的示例中,每个CU可以与亮度译码块和对应的色度译码块相关联。如上文,CU的大小可以指代CU的亮度译码块的大小。视频编码器200和视频解码器300可以支持2Nx2N、2NxN或Nx2N的CU大小。
对于其它视频译码技术,例如块内复制模式译码、仿射模式译码和线性模型(LM)模式译码,作为一些示例,模式选择单元202经由与译码技术相关联的相应单元生成正在被编码的当前块的预测块。在一些示例中(诸如调色板模式译码),模式选择单元202可以不生成预测块,而是替代地生成指示以其基于所选择的调色板来重构块的方式的语法元素。在此类模式中,模式选择单元202可将这些语法元素提供给熵编码单元220以进行编码。
如上文所描述的,残差生成单元204接收用于当前块和对应的预测块的视频数据。然后,残差生成单元204针对当前块生成残差块。为了生成残差块,残差生成单元204计算预测块和当前块之间的逐样本差异。
变换处理单元206将一种或多种变换应用于残差块,以生成变换系数的块(本文中被称为“变换系数块”)。变换处理单元206可将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(DCT)、方向变换、Karhunen-Loeve变换(KLT)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以对残差块执行多种变换,例如,初级变换和二次变换(诸如旋转变换)。在一些示例中,变换处理单元206不对残差块应用变换。
当根据AV1操作时,变换处理单元206可以将一种或多种变换应用于残差块,以生成变换系数的块(本文中被称为“变换系数块”)。变换处理单元206可将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可应用水平/垂直变换组合,其可包括离散余弦变换(DCT)、非对称离散正弦变换(ADST)、翻转ADST(例如,以相反次序的ADST)及恒等变换(IDTX)。当使用恒等变换时,在垂直方向或水平方向中的一者上跳过该变换。在一些示例中,可跳过变换处理。
量化单元208可以量化变换系数块中的变换系数,以产生量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(QP)值来对变换系数块的变换系数进行量化。视频编码器200(例如,经由模式选择单元202)可通过调整与CU相关联的QP值来调整应用于与当前块相关联的变换系数块的量化程度。量化可能引起信息损失,并且因此,经量化的变换系数可能具有与由变换处理单元206所产生的原始变换系数相比较低的精度。
逆量化单元210和逆变换处理单元212可以将逆量化和逆变换分别应用于经量化的变换系数块,以根据变换系数块来重构残差块。重构单元214可以基于重构残差块和由模式选择单元202生成的预测块来产生与当前块相对应的重构块(尽管潜在地具有某种程度的失真)。例如,重构单元214可以将重构残差块的样本添加到来自由模式选择单元202生成的预测块的对应样本以产生重构块。
滤波器单元216可以对重构块执行一个或多个滤波操作。例如,滤波器单元216可执行去块操作以减少沿着CU的边缘的块效应伪影。滤波器单元216还可执行本公开中所描述的ALF技术。在一些示例中,可以跳过滤波器单元216的操作。
当根据AV1操作时,滤波器单元216可以对重构块执行一个或多个滤波操作。例如,滤波器单元216可执行去块操作以减少沿着CU的边缘的块效应伪影。在其它示例中,滤波器单元216可应用约束方向增强滤波器(CDEF),其可在去块之后应用,并且可包括基于所估计的边缘方向的不可分离、非线性、低通方向滤波器的应用。滤波器单元216还可包括在CDEF之后应用的环路恢复滤波器,并且可包括可分离的对称归一化维纳滤波器或双自导滤波器。
滤波器单元216可例如执行本公开中所描述的技术。滤波器单元216可例如针对视频数据的当前块从多个可用分类器中确定用于当前块的分类器,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;基于所确定的分类器和当前块的一个或多个样本值来确定类索引;基于类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。滤波器单元216可使用多个分类器来应用如上所述的两级ALF。
视频编码器200将重构块存储在DPB 218中。例如,在不执行滤波器单元216的操作的示例中,重构单元214可以将重构块存储到DPB 218中。在执行滤波器单元216的操作的示例中,滤波器单元216可以将经滤波的重构块存储到DPB 218中。运动估计单元222和运动补偿单元224可以从DPB 218检索由经重构的(并且潜在地经滤波的)块形成的参考图片,以对后续编码的图片的块进行帧间预测。另外,帧内预测单元226可以使用在DPB 218中的当前图片的重构块来对当前图片中的其它块进行帧内预测。
通常,熵编码单元220可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的经量化的变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可对语法元素执行一个或多个熵编码操作(该语法元素是视频数据的另一个示例),以生成熵编码数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度译码(CAVLC)操作、CABAC操作、可变-可变(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间划分熵(PIPE)译码操作、指数哥伦布编码操作、或另一类型的熵编码操作。在一些示例中,熵编码单元220可以在语法元素未被熵编码的旁路模式下操作。
视频编码器200可以输出比特流,该比特流包括重构切片或图片的块所需的熵编码的语法元素。具体地,熵编码单元220可以输出比特流。
根据AV1,熵编码单元220可被配置成符号到符号自适应多符号算术译码器。AV1中的语法元素包含N个元素的字母表,并且上下文(例如,概率模型)包含N个概率的组。熵编码单元220可将概率存储为n位(例如,15位)累积分布函数(CDF)。熵编码单元22可使用基于字母表大小的更新因子执行递归缩放,以更新上下文。
上文描述的操作是相对于块进行描述的。此类描述应当被理解为用于亮度译码块和/或色度译码块的操作。如上文所描述的,在一些示例中,亮度译码块和色度译码块是CU的亮度分量和色度分量。在一些示例中,亮度译码块和色度译码块是PU的亮度分量和色度分量。
在一些示例中,不需要针对色度译码块来重复对亮度译码块执行的操作。作为一个示例,识别亮度译码块的运动向量(MV)和参考图片的操作不需要重复用于识别色度块的MV和参考图片。相反,可以缩放用于亮度译码块的MV以确定用于色度块的MV,并且参考图片可以是相同的。作为另一示例,帧内预测过程对于亮度译码块和色度译码块可以是相同的。
图12是示出可执行本公开的技术的示例视频解码器300的框图。图12是出于解释的目的而提供的,并且不是对在本公开中广泛地举例说明和描述的技术的限制。出于解释的目的,本公开根据VVC(ITU-TH.266,开发中)和HEVC(ITU-TH.265)的技术描述了视频解码器300。然而,本公开的技术可由被配置成其它视频译码标准的视频译码设备来执行。
在图12的示例中,视频解码器300包括译码图片缓冲器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和解码图片缓冲器(DPB)314。CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和DPB 314中的任一者或全部可以在一个或多个处理器中或者在处理电路中实现。举例来说,视频解码器300的单元可实现为一个或多个电路或逻辑元件作为硬件电路的一部分,或作为处理器、ASIC或FPGA的一部分。此外,视频解码器300可以包括附加的或另选的处理器或处理电路来执行这些和其它功能。
预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括根据其它预测模式来执行预测的附加单元。作为示例,预测处理单元304可包括调色板单元、块内复制单元(其可形成运动补偿单元316的一部分)、仿射单元、线性模型(LM)单元等。在其它示例中,视频解码器300可以包括更多、更少或不同的功能组件。
当根据AV1操作时,运动补偿单元316可被配置成使用平移运动补偿、仿射运动补偿、OBMC和/或复合帧间-帧内预测来对视频数据的译码块(例如,亮度译码块和色度译码块两者)进行解码,如上所述。帧内预测单元318可被配置成使用方向性帧内预测、非方向性帧内预测、递归滤波器帧内预测、CFL、块内复制(IBC)和/或调色板模式来对视频数据的译码块(例如,亮度译码块和色度译码块两者)进行解码,如上所述。
CPB存储器320可以存储要由视频解码器300的组件解码的视频数据,诸如编码视频比特流。例如,可以从计算机可读介质110(图1)获得被存储在CPB存储器320中的视频数据。CPB存储器320可以包括存储来自编码视频比特流的编码视频数据(例如,语法元素)的CPB。此外,CPB存储器320可以存储除了译码图片的语法元素之外的视频数据,诸如表示来自视频解码器300的各个单元的输出的临时数据。DPB 314通常存储解码图片,视频解码器300可以输出该解码图片,以及/或者在对解码视频比特流的后续数据或图片进行解码时使用该解码图片作为参考视频数据。CPB存储器320和DPB 314可以由各种存储器设备中的任何存储器设备形成,诸如DRAM(包括SDRAM)、MRAM、RRAM或其它类型的存储器设备。CPB存储器320和DPB 314可以由相同的存储器设备或单独的存储器设备来提供。在各种示例中,CPB存储器320可以与视频解码器300的其它组件一起在片上,或者相对于那些组件在片外。
附加地或另选地,在一些示例中,视频解码器300可以从存储器120(图1)中检索译码视频数据。也就是说,存储器120可以如上文所讨论地利用CPB存储器320来存储数据。同样,当视频解码器300的一些或全部功能是在要由视频解码器300的处理电路执行的软件中实现时,存储器120可以存储要由视频解码器300执行的指令。
示出了图12中所示的各个单元以帮助理解由视频解码器300执行的操作。这些单元可以被实现为固定功能电路、可编程电路、或它们的组合。类似于图11,固定功能电路指代提供特定功能并关于可执行的操作进行了预先设定的电路。可编程电路指代可以被编程以执行各种任务并且在可以执行的操作上提供灵活功能的电路。例如,可编程电路可以执行软件或固件,该软件或固件使得可编程电路以由软件或固件的指令所定义的方式进行操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但固定功能电路执行的操作类型通常是不可变的。在一些示例中,单元中的一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,单元中的一个或多个单元可以是集成电路。
视频解码器300可以包括由可编程电路形成的ALU、EFU、数字电路、模拟电路和/或可编程核心。在视频解码器300的操作由在可编程电路上执行的软件执行的示例中,片上或片外存储器可以存储视频解码器300接收和执行的软件的指令(例如,目标代码)。
熵解码单元302可以从CPB接收编码视频数据并对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流中提取的语法元素来生成解码视频数据。
通常,视频解码器300逐块地重构图片。视频解码器300可以单独地对每个块执行重构操作(其中,当前正在被重构(即,被解码)的块可以被称为“当前块”)。
熵解码单元302可以对定义经量化的变换系数块的经量化的变换系数的语法元素以及变换信息(诸如量化参数(QP)和/或变换模式指示)进行熵解码。逆量化单元306可以使用与经量化的变换系数块相关联的QP来确定量化程度,并且同样地,确定逆量化单元306要应用的逆量化程度。逆量化单元306可以例如执行按位左移操作以对经量化的变换系数进行逆量化。逆量化单元306可由此形成包括变换系数的变换系数块。
在逆量化单元306形成变换系数块之后,逆变换处理单元308可以对变换系数块应用一个或多个逆变换以生成与当前块相关联的残差块。例如,逆变换处理单元308可以对变换系数块应用逆DCT、逆整数变换、逆Karhunen-Loeve变换(KLT)、逆旋转变换、逆方向变换或另一逆变换。
此外,预测处理单元304根据由熵解码单元302进行熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示在DPB 314中的要从其检索参考块的参考图片、以及标识相对于当前块在当前图片中的位置而言参考块在参考图片中的位置的运动向量。运动补偿单元316通常可以以与关于运动补偿单元224(图11)所描述的方式基本上类似的方式来执行帧间预测过程。
作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可根据由预测信息语法元素指示的帧内预测模式来生成预测块。同样,帧内预测单元318通常可以按照与关于帧内预测单元226(图11)所描述的方式基本上相似的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314检索当前块的相邻样本的数据。
重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本添加到预测块的对应样本以重构当前块。
滤波器单元312可以对重构块执行一个或多个滤波操作。例如,滤波器单元312可以执行去块操作以减少沿着重构块的边缘的块效应伪影。滤波器单元312还可执行本公开中所描述的ALF技术。不一定在所有示例中都执行滤波器单元312的操作。
滤波器单元312可例如执行本公开中所描述的技术。滤波器单元312可例如针对视频数据的当前块从多个可用分类器中确定用于当前块的分类器,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;基于所确定的分类器和当前块的一个或多个样本值来确定类索引;基于类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。滤波器单元312可使用多个分类器来应用上文所述的两级ALF。
视频解码器300可以将重构块存储在DPB 314中。例如,在其中不执行滤波器单元312的操作的示例中,重构单元310可以将重构块存储到DPB 314中。在其中执行滤波器单元312的操作的示例中,滤波器单元312可以将经滤波的重构块存储到DPB 314中。如上文所讨论的,DPB 314可以将参考信息(诸如用于帧内预测的当前图片以及用于后续运动补偿的先前解码的图片的样本)提供给预测处理单元304。此外,视频解码器300可以从DPB 314输出解码图片(例如,解码视频),以用于在诸如图1的显示设备118之类的显示设备上的后续呈现。
图13是示出根据本公开的技术的用于对当前块进行编码的示例过程的流程图。当前块可以包括当前CU。尽管关于视频编码器200(图1和图11)进行了描述,但是应当理解的是,其它设备可以被配置成执行与图13的过程类似的过程。
在该示例中,视频编码器200最初预测当前块(500)。举例来说,视频编码器200可形成当前块的预测块。视频编码器200然后可以计算当前块的残差块(502)。为了计算残差块,视频编码器200可计算当前块的原始未编码块与预测块之间的差异。然后,视频编码器200可以对残差块进行变换并且对残差块的变换系数进行量化(504)。接下来,视频编码器200可扫描残差块的经量化的变换系数(506)。在扫描期间或扫描之后,视频编码器200可对变换系数进行熵编码(508)。例如,视频编码器200可以使用CAVLC或CABAC来对变换系数进行编码。然后,视频编码器200可以输出块的熵编码数据(510)。
图14是示出根据本公开的技术的用于对视频数据的当前块进行解码的示例过程的流程图。当前块可以包括当前CU。尽管关于视频解码器300(图1和图12)进行了描述,但是应当理解的是,其它设备可以被配置成执行与图14的过程类似的过程。
视频解码器300可以接收用于当前块的熵编码数据,诸如熵编码预测信息和用于与当前块相对应的残差块的变换系数的熵编码数据(520)。视频解码器300可以对熵编码数据进行熵解码以确定用于当前块的预测信息并且再现残差块的变换系数(522)。视频解码器300可例如使用如当前块的预测信息所指示的帧内或帧间预测模式来预测当前块(524),以计算当前块的预测块。视频解码器300然后可以对再现的变换系数进行逆扫描(526),以创建经量化的变换系数的块。视频解码器300然后可对变换系数进行逆量化并将逆变换应用于变换系数以产生残差块(528)。视频解码器300可以通过组合预测块和残差块来最终解码当前块,从而形成重构块(530)。视频解码器300可对重构块执行本公开中所描述的滤波技术,包括去块滤波、ALF和其它此类滤波。
图15是示出根据本公开的技术的用于对视频数据的当前块进行解码的示例过程的流程图。将关于通用视频解码器对图15的过程进行描述,通用视频解码器可例如对应于上文所描述的视频解码器300(图1和图12)或任何其它类型的视频解码器。视频解码器还可对应于视频编码器的解码环路,诸如图11的视频编码器200的逆量化单元210、逆变换处理单元212、重构单元214和滤波器单元216。在一个示例具体实施中,可结合多级ALF的第二级使用图15的技术,如上文更详细地描述的。在其它具体实施中,图15的技术可被用于单级ALF中或结合多级ALF的其它级使用。
视频解码器针对视频数据的当前块从多个可用分类器中确定用于当前块的分类器(540)。多个可用分类器中的每个分类器定义用于计算类索引的过程。多个可用分类器可例如包括:基于频带的分类器,其将类索引分配给当前块的一个或多个样本值而不考虑一个或多个样本值的相邻样本的值;和基于拉普拉斯的分类器,其基于一个或多个样本值的相邻样本的值将类索引分配给当前块的一个或多个样本值。
为了确定分类器,视频解码器可例如接收标识分类器的语法元素。该语法元素可被包含在APS或某个其它语法结构中。在其它示例中,视频解码器可被配置成在无显式信令的情况下导出分类器。
视频解码器基于所确定的分类器和当前块的一个或多个样本值来确定类索引(542)。如上所述,所确定的分类器可以是基于频带的分类器,并且可将滤波器组中的每个滤波器分配给一个或多个类索引。类索引的范围可为0至N-1。在一个示例具体实施中,N可被设置为等于25。一个或多个类索引中的每个类索引可被分配给样本值的一个或多个频带(也被称为区间)。
为了基于所确定的分类器和当前块的一个或多个样本值来确定类索引,视频解码器可被配置成确定用于一个或多个样本值的频带并且基于用于一个或多个样本值的频带来确定类索引。为了确定用于一个或多个样本值的频带,视频解码器可被配置成仅基于一个或多个样本值来确定频带,而不考虑未包含在一个或多个样本值中的样本值。
视频解码器基于类索引从滤波器组中选择滤波器(544)。滤波器可例如包括多个滤波器系数,如图2、图6以及图7A至图7C的示例中所示。
视频解码器将滤波器应用于当前块(546)。为了将滤波器应用于当前块,视频解码器修改当前块的一个或多个样本值的值。视频解码器可例如将滤波器应用于单独的样本或样本组,诸如当前块的2x2子块。为了将滤波器应用于当前块,视频解码器可将多个滤波器系数中的至少一些滤波器系数应用于对应于一个或多个样本值的相邻样本的滤波器支持位置。
以下编号条款示出了在本公开中描述的设备和技术的一个或多个方面。
条款1A.一种对视频数据进行解码的方法,该方法包括:确定用于视频数据的当前块的滤波器组;确定该滤波器组的分类器;基于该分类器和当前块的样本值来确定类索引;基于该类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。
条款2A.根据条款1A所述的方法,其中,确定滤波器组的分类器包括基于该滤波器组从多个可用分类器中选择分类器。
条款3A.根据条款1A或2A所述的方法,其中,确定滤波器组的分类器包括接收标识分类器的语法元素。
条款4A.根据条款1A或2A所述的方法,其中,确定滤波器组的分类器包括在不接收标识分类器的语法元素的情况下导出分类器。
条款5A.根据条款1A至4A中任一项所述的方法,其中,当前块包括重构块。
条款6A.根据条款1A至5A中任一项所述的方法,其中,将滤波器应用于当前块包括将滤波器应用于当前块的至少一个样本。
条款7A.根据条款1A至6A中任一项所述的方法,其中,该滤波器组包括自适应环路滤波器组。
条款8A.根据条款1A至7A中任一项所述的方法,其中,该方法作为编码方法的一部分来执行。
条款9A.一种用于对视频数据进行译码的设备,该设备包括用于执行根据条款1A至8A中任一项所述的方法的一个或多个部件。
条款10A.根据条款9A所述的设备,其中,该一个或多个部件包括实现于电路中的一个或多个处理器。
条款11A.根据条款9A和10A中任一项所述的设备,还包括用于存储视频数据的存储器。
条款12A.根据条款9A至11A中任一项所述的设备,还包括被配置成显示解码视频数据的显示器。
条款13A.根据条款9A至12A中任一项所述的设备,其中,该设备包括以下中的一项或多项:相机、计算机、移动设备、广播接收器设备或机顶盒。
条款14A.根据条款9A至13A中任一项所述的设备,其中,该设备包括视频解码器。
条款15A.根据条款9A至14A中任一项所述的设备,其中,该设备包括视频编码器。
条款16A.一种计算机可读存储介质,该计算机可读存储介质具有存储在其上的指令,该指令在被执行时使得一个或多个处理器执行条款1至8中任一项所述的方法。
条款17A.一种对视频数据进行解码的方法,该方法包括:确定用于视频数据的当前块的滤波器组;确定该滤波器组的分类器;基于该分类器和当前块的样本值来确定类索引;基于该类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。
条款18A.根据条款17A所述的方法,其中,确定滤波器组的分类器包括基于该滤波器组从多个可用分类器中选择分类器。
条款19A.根据条款17A所述的方法,其中,确定滤波器组的分类器包括接收标识分类器的语法元素。
条款20A.根据条款17A所述的方法,其中,确定滤波器组的分类器包括在不接收标识分类器的语法元素的情况下导出分类器。
条款21A.根据条款17A所述的方法,其中,当前块包括重构块。
条款22A.根据条款17A所述的方法,其中,将滤波器应用于当前块包括将滤波器应用于当前块的至少一个样本。
条款23A.根据条款17A所述的方法,其中,该滤波器组包括自适应环路滤波器组。
条款24A.根据条款17A所述的方法,其中,该方法作为编码方法的一部分来执行。
条款25A.一种用于对视频数据进行译码的设备,该设备包括:用于确定用于视频数据的当前块的滤波器组的部件;用于确定该滤波器组的分类器的部件;用于基于该分类器和当前块的样本值来确定类索引的部件;用于基于该类索引从滤波器组中选择滤波器的部件;和用于将该滤波器应用于当前块的部件。
条款26A.一种用于对视频数据进行解码的设备,该设备包括:存储器,该存储器被配置成存储视频数据;以及一个或多个处理器,该一个或多个处理器耦合到存储器,实现于电路中并且被配置成:确定用于视频数据的当前块的滤波器组;确定该滤波器组的分类器;基于该分类器和当前块的样本值来确定类索引;基于该类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。
条款27A.根据条款26A所述的设备,还包括被配置成显示解码视频数据的显示器。
条款28A.根据条款26A所述的设备,其中,该设备包括以下中的一项或多项:相机、计算机、移动设备、广播接收器设备或机顶盒。
条款29A.根据条款26A所述的设备,其中,该设备包括视频解码器。
条款30A.根据条款26A所述的设备,其中,该设备包括视频编码器。
条款1B.一种对视频数据进行解码的方法,该方法包括:针对视频数据的当前块,从多个可用分类器中确定用于当前块的分类器,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;基于该分类器和当前块的一个或多个样本值来确定类索引;基于类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。
条款2B.根据条款1B所述的方法,其中,多个可用分类器包括基于频带的分类器和基于拉普拉斯的分类器,其中基于频带的分类器向当前块的一个或多个样本值分配类索引而不考虑一个或多个样本值的相邻样本的值,并且基于拉普拉斯的分类器基于一个或多个样本值的相邻样本的值将类索引分配给当前块的一个或多个样本值。
条款3B.根据条款1B所述的方法,其中,从多个可用分类器中确定用于当前块的分类器包括接收标识分类器的语法元素。
条款4B.根据条款1B所述的方法,其中,分类器包括基于频带的分类器,并且滤波器组中的每个滤波器被分配给一个或多个类索引,并且一个或多个类索引中的每个类索引被分配给样本值的一个或多个频带,并且其中基于分类器和当前块的一个或多个样本值来确定类索引包括:确定用于一个或多个样本值的频带;以及基于用于一个或多个样本值的频带来确定类索引。
条款5B.根据条款4B所述的方法,还包括:基于所确定的分类器有条件地接收语法元素,其中语法元素的第一值指示将一个或多个几何变换应用于该滤波器组中的一个或多个滤波器,并且语法元素的第二值指示不将一个或多个几何变换应用于该滤波器组中的一个或多个滤波器,其中基于所确定的分类器有条件地接收语法元素包括响应于确定多个可用分类器中用于当前块的分类器是基于频带的分类器而推断语法元素等于第二值。
条款6B.根据条款4B所述的方法,其中,确定用于一个或多个样本值的频带包括基于一个或多个样本值来确定频带,而不考虑未包含在一个或多个样本值中的样本值。
条款7B.根据条款6B所述的方法,其中,滤波器包括多个滤波器系数并且将滤波器应用于当前块包括将多个滤波器系数中的至少一些滤波器系数应用于对应于一个或多个样本值的相邻样本的滤波器支持位置。
条款8B.根据条款1B中任一项所述的方法,其中,当前块包括中间滤波重构块,该方法还包括:使用帧内预测或帧间预测中的一者来确定预测块;确定残差块;通过将预测块与残差块相加来确定重构块;将一个或多个滤波器应用于重构块以确定中间重构块,其中一个或多个滤波器包括第一级自适应环路滤波器,并且所应用的滤波器包括第二级自适应环路滤波器。
条款9B.根据条款1B所述的方法,其中,将滤波器应用于当前块包括修改当前块的一个或多个样本值的值。
条款10B.根据条款1B中任一项所述的方法,其中,该方法作为编码方法的一部分来执行。
条款11B.一种用于对视频数据进行解码的设备,该设备包括:存储器,该存储器被配置成存储视频数据;以及一个或多个处理器,该一个或多个处理器实现于电路中并且被配置成:针对视频数据的当前块,从多个可用分类器中确定用于当前块的分类器,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;基于分类器和当前块的一个或多个样本值来确定类索引;基于类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。
条款12B.根据条款11B所述的设备,其中,多个可用分类器包括基于频带的分类器和基于拉普拉斯的分类器,其中基于频带的分类器向当前块的一个或多个样本值分配类索引而不考虑一个或多个样本值的相邻样本的值,并且基于拉普拉斯的分类器基于一个或多个样本值的相邻样本的值将类索引分配给当前块的一个或多个样本值。
条款13B.根据条款11B所述的设备,其中,为了从多个可用分类器中确定用于当前块的分类器,一个或多个处理器被进一步配置成接收标识分类器的语法元素。
条款14B.根据条款11B所述的设备,其中,分类器包括基于频带的分类器,并且滤波器组中的每个滤波器被分配给一个或多个类索引,并且一个或多个类索引中的每个类索引被分配给样本值的一个或多个频带,并且其中,为了基于分类器和当前块的一个或多个样本值来确定类索引,一个或多个处理器被进一步配置成:确定用于一个或多个样本值的频带;以及基于用于一个或多个样本值的频带来确定类索引。
条款15B.根据条款14B所述的设备,其中,一个或多个处理器被进一步配置成:基于所确定的分类器有条件地接收语法元素,其中语法元素的第一值指示将一个或多个几何变换应用于该滤波器组中的一个或多个滤波器,并且语法元素的第二值指示不将一个或多个几何变换应用于该滤波器组中的一个或多个滤波器,并且其中为了基于所确定的分类器有条件地接收语法元素,一个或多个处理器被进一步配置成响应于确定多个可用分类器中用于当前块的分类器是基于频带的分类器而推断语法元素等于第二值。
条款16B.根据条款14B或15B所述的设备,其中,为了确定用于一个或多个样本值的频带,一个或多个处理器被进一步配置成基于一个或多个样本值来确定频带,而不考虑未包含在一个或多个样本值中的样本值。
条款17B.根据条款16B所述的设备,其中,滤波器包括多个滤波器系数,并且为了将滤波器应用于当前块,一个或多个处理器被进一步配置成将多个滤波器系数中的至少一些滤波器系数应用于对应于一个或多个样本值的相邻样本的滤波器支持位置。
条款18B.根据条款11B中任一项所述的设备,其中,当前块包括中间滤波重构块,其中一个或多个处理器被进一步配置成:使用帧内预测或帧间预测中的一者来确定预测块;确定残差块;通过将预测块与残差块相加来确定重构块;以及将一个或多个滤波器应用于重构块以确定中间重构块,其中一个或多个滤波器包括第一级自适应环路滤波器,并且所应用的滤波器包括第二级自适应环路滤波器。
条款19B.根据条款11B所述的设备,其中,为了将滤波器应用于当前块,一个或多个处理器被进一步配置成修改当前块的一个或多个样本值的值。
条款20B.根据条款11B所述的设备,还包括被配置成显示解码视频数据的显示器。
条款21B.根据条款11B所述的设备,其中,该设备包括以下中的一项或多项:相机、计算机、移动设备、广播接收器设备或机顶盒。
条款22B.根据条款11B所述的设备,其中,该设备包括无线通信设备,还包括被配置成接收编码视频数据的接收器。
条款23B.根据条款22B所述的设备,其中,无线通信设备包括手持电话,并且其中,接收器被配置成根据无线通信标准来对包含视频数据的信号进行解调。
条款24B.根据条款11B所述的设备,其中,一个或多个处理器被配置成实现视频解码器。
条款25B.根据条款11B所述的设备,其中,一个或多个处理器被配置成实现视频编码器。
条款26B.一种计算机可读存储介质,该计算机可读存储介质存储指令,该指令在由一个或多个处理器执行时使得该一个或多个处理器:针对视频数据的当前块,从多个可用分类器中确定用于当前块的分类器,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;基于分类器和当前块的一个或多个样本值来确定类索引;基于类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。
条款27B.根据条款26B所述的计算机可读存储介质,其中,多个可用分类器包括基于频带的分类器和基于拉普拉斯的分类器,其中基于频带的分类器向当前块的一个或多个样本值分配类索引而不考虑一个或多个样本值的相邻样本的值,并且基于拉普拉斯的分类器基于一个或多个样本值的相邻样本的值将类索引分配给当前块的一个或多个样本值。
条款28B.根据条款26B所述的计算机可读存储介质,其中,为了从多个可用分类器中确定用于当前块的分类器,该指令使得一个或多个处理器接收标识分类器的语法元素。
条款29B.根据条款26B所述的计算机可读存储介质,其中,为了基于分类器和当前块的一个或多个样本值来确定类索引,该指令使得一个或多个处理器:确定用于一个或多个样本值的频带;以及基于用于一个或多个样本值的频带来确定类索引。
条款30B.一种装置,该装置包括:用于针对视频数据的当前块从多个可用分类器中确定用于当前块的分类器的部件,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;用于基于分类器和当前块的一个或多个样本值来确定类索引的部件;用于基于类索引从滤波器组中选择滤波器的部件;和用于将该滤波器应用于当前块的部件。
条款1C.一种对视频数据进行解码的方法,该方法包括:针对视频数据的当前块,从多个可用分类器中确定用于当前块的分类器,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;基于分类器和当前块的一个或多个样本值来确定类索引;基于类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。
条款2C.根据条款1C所述的方法,其中,多个可用分类器包括基于频带的分类器和基于拉普拉斯的分类器,其中基于频带的分类器向当前块的一个或多个样本值分配类索引而不考虑一个或多个样本值的相邻样本的值,并且基于拉普拉斯的分类器基于一个或多个样本值的相邻样本的值将类索引分配给当前块的一个或多个样本值。
条款3C.根据条款1C或2C所述的方法,其中,从多个可用分类器中确定用于当前块的分类器包括接收标识分类器的语法元素。
条款4C.根据条款1C所述的方法,其中,分类器包括基于频带的分类器,并且滤波器组中的每个滤波器被分配给一个或多个类索引,并且一个或多个类索引中的每个类索引被分配给样本值的一个或多个频带,并且其中基于分类器和当前块的一个或多个样本值来确定类索引包括:确定用于一个或多个样本值的频带;以及基于用于一个或多个样本值的频带来确定类索引。
条款5C.根据条款4C所述的方法,还包括:基于所确定的分类器有条件地接收语法元素,其中语法元素的第一值指示将一个或多个几何变换应用于该滤波器组中的一个或多个滤波器,并且语法元素的第二值指示不将一个或多个几何变换应用于该滤波器组中的一个或多个滤波器,其中基于所确定的分类器有条件地接收语法元素包括响应于确定多个可用分类器中用于当前块的分类器是基于频带的分类器而推断语法元素等于第二值。
条款6C.根据条款4C所述的方法,其中,确定用于一个或多个样本值的频带包括基于一个或多个样本值来确定频带,而不考虑未包含在一个或多个样本值中的样本值。
条款7C.根据条款6C所述的方法,其中,滤波器包括多个滤波器系数并且将滤波器应用于当前块包括将多个滤波器系数中的至少一些滤波器系数应用于对应于一个或多个样本值的相邻样本的滤波器支持位置。
条款8C.根据条款1C至7C中任一项所述的方法,其中,当前块包括中间滤波重构块,该方法还包括:使用帧内预测或帧间预测中的一者来确定预测块;确定残差块;通过将预测块与残差块相加来确定重构块;将一个或多个滤波器应用于重构块以确定中间重构块,其中一个或多个滤波器包括第一级自适应环路滤波器,并且所应用的滤波器包括第二级自适应环路滤波器。
条款9C.根据条款1C至8C中任一项所述的方法,其中,将滤波器应用于当前块包括修改当前块的一个或多个样本值的值。
条款10C.根据条款1C、2C或4C至9C中任一项所述的方法,其中,该方法作为编码方法的一部分来执行。
条款11C.一种用于对视频数据进行解码的设备,该设备包括:存储器,该存储器被配置成存储视频数据;以及一个或多个处理器,该一个或多个处理器实现于电路中并且被配置成:针对视频数据的当前块,从多个可用分类器中确定用于当前块的分类器,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;基于分类器和当前块的一个或多个样本值来确定类索引;基于类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。
条款12C.根据条款11C所述的设备,其中,多个可用分类器包括基于频带的分类器和基于拉普拉斯的分类器,其中基于频带的分类器向当前块的一个或多个样本值分配类索引而不考虑一个或多个样本值的相邻样本的值,并且基于拉普拉斯的分类器基于一个或多个样本值的相邻样本的值将类索引分配给当前块的一个或多个样本值。
条款13C.根据条款11C或12C所述的设备,其中,为了从多个可用分类器中确定用于当前块的分类器,一个或多个处理器被进一步配置成接收标识分类器的语法元素。
条款14C.根据条款11C至13C中任一项所述的设备,其中,分类器包括基于频带的分类器,并且滤波器组中的每个滤波器被分配给一个或多个类索引,并且一个或多个类索引中的每个类索引被分配给样本值的一个或多个频带,并且其中,为了基于分类器和当前块的一个或多个样本值来确定类索引,一个或多个处理器被进一步配置成:确定用于一个或多个样本值的频带;以及基于用于一个或多个样本值的频带来确定类索引。
条款15C.根据条款14C所述的设备,其中,一个或多个处理器被进一步配置成:基于所确定的分类器有条件地接收语法元素,其中语法元素的第一值指示将一个或多个几何变换应用于该滤波器组中的一个或多个滤波器,并且语法元素的第二值指示不将一个或多个几何变换应用于该滤波器组中的一个或多个滤波器,并且其中为了基于所确定的分类器有条件地接收语法元素,一个或多个处理器被进一步配置成响应于确定多个可用分类器中用于当前块的分类器是基于频带的分类器而推断语法元素等于第二值。
条款16C.根据条款14C或15C所述的设备,其中,为了确定用于一个或多个样本值的频带,一个或多个处理器被进一步配置成基于一个或多个样本值来确定频带,而不考虑未包含在一个或多个样本值中的样本值。
条款17C.根据条款16C所述的设备,其中,滤波器包括多个滤波器系数,并且为了将滤波器应用于当前块,一个或多个处理器被进一步配置成将多个滤波器系数中的至少一些滤波器系数应用于对应于一个或多个样本值的相邻样本的滤波器支持位置。
条款18C.根据条款11C至17C中任一项所述的设备,其中,当前块包括中间滤波重构块,其中一个或多个处理器被进一步配置成:使用帧内预测或帧间预测中的一者来确定预测块;确定残差块;通过将预测块与残差块相加来确定重构块;以及将一个或多个滤波器应用于重构块以确定中间重构块,其中一个或多个滤波器包括第一级自适应环路滤波器,并且所应用的滤波器包括第二级自适应环路滤波器。
条款19C.根据条款11C至18C中任一项所述的设备,其中,为了将滤波器应用于当前块,一个或多个处理器被进一步配置成修改当前块的一个或多个样本值的值。
条款20C.根据条款11C所述的设备,还包括被配置成显示解码视频数据的显示器。
条款21C.根据条款11C至20C中任一项所述的设备,其中,该设备包括以下中的一项或多项:相机、计算机、移动设备、广播接收器设备或机顶盒。
条款22C.根据条款11C至21C中任一项所述的设备,其中,该设备包括无线通信设备,还包括被配置成接收编码视频数据的接收器。
条款23C.根据条款22C所述的设备,其中,无线通信设备包括手持电话,并且其中,接收器被配置成根据无线通信标准来对包含视频数据的信号进行解调。
条款24C.根据条款11C至23C中任一项所述的设备,其中,一个或多个处理器被配置成实现视频解码器。
条款25C.根据条款11C至24C中任一项所述的设备,其中,一个或多个处理器被配置成实现视频编码器。
条款26C.一种计算机可读存储介质,该计算机可读存储介质存储指令,该指令在由一个或多个处理器执行时使得该一个或多个处理器:针对视频数据的当前块,从多个可用分类器中确定用于当前块的分类器,其中多个可用分类器中的每个分类器定义用于计算类索引的过程;基于分类器和当前块的一个或多个样本值来确定类索引;基于类索引从滤波器组中选择滤波器;以及将该滤波器应用于当前块。
条款27C.根据条款26C所述的计算机可读存储介质,其中,多个可用分类器包括基于频带的分类器和基于拉普拉斯的分类器,其中基于频带的分类器向当前块的一个或多个样本值分配类索引而不考虑一个或多个样本值的相邻样本的值,并且基于拉普拉斯的分类器基于一个或多个样本值的相邻样本的值将类索引分配给当前块的一个或多个样本值。
条款28C.根据条款26C或27C所述的计算机可读存储介质,其中,为了从多个可用分类器中确定用于当前块的分类器,该指令使得一个或多个处理器接收标识分类器的语法元素。
条款29C.根据条款26C至28C中任一项所述的计算机可读存储介质,其中,为了基于分类器和当前块的一个或多个样本值来确定类索引,该指令使得一个或多个处理器:确定用于一个或多个样本值的频带;以及基于用于一个或多个样本值的频带来确定类索引。
要认识到的是,根据示例,本文中所描述的任何技术的某些动作或事件可以以不同的顺序来执行,可以被添加、合并或完全省略(例如,并非所有描述的动作或事件对于实施所述技术都是必要的)。此外,在某些示例中,动作或事件可以被并发地执行(例如,通过多线程处理、中断处理或多个处理器)而不是顺序地执行。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或它们的任何组合中实现。如果在软件中实现,则该功能可以作为一个或多个指令或代码存储在计算机可读介质上或者通过计算机可读介质进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质(其对应于诸如数据存储介质之类的有形介质)或者通信介质,该通信介质包括例如根据通信协议来促进计算机程序从一个地方传送到另一地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质、或者(2)诸如信号或载波之类的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器访问以检索用于实现本公开中所描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
通过示例而非限制的方式,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存存储器、或者能够用于以指令或数据结构的形式存储期望的程序代码并且能够由计算机访问的任何其它介质。而且,任何连接被适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者无线技术(例如,红外线、无线电和微波)从网站、服务器或其它远程源传送的,则同轴电缆、光纤光缆、双绞线、DSL或者无线技术(例如,红外线、无线电和微波)被包括在介质的定义中。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是替代地针对非暂时性的有形存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地再现数据,而光盘则利用激光来光学地再现数据。上述的组合应当也被包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如一个或多个DSP、通用微处理器、ASIC、FPGA或其它等同的集成或分立逻辑电路。因此,如本文中所使用的术语“处理器”和“处理电路”可以指代前述结构中的任何一者或者适于实现本文中所描述的技术的任何其它结构。另外,在一些方面中,本文中所描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者被并入组合的编解码器中。同样,这些技术可以在一个或多个电路或逻辑元件中被完全实现。
本公开的技术可以在各种各样的设备或装置中实现,包括无线手机、集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述各种组件、模块或单元以强调被配置成执行所公开的技术的设备的功能性方面,但是不一定要求通过不同的硬件单元来实现。确切而言,如上文所描述的,各种单元可以被组合在编解码器硬件单元中,或者由可互操作的硬件单元的集合(包括如上文所描述的一个或多个处理器)结合适当的软件和/或固件来提供。
已经描述各个示例。这些和其它示例在所附权利要求的范围内。

Claims (26)

1.一种对视频数据进行解码的方法,所述方法包括:
针对视频数据的当前块,从多个可用分类器中确定用于所述当前块的分类器,其中所述多个可用分类器中的每个分类器定义用于计算类索引的过程;
基于所述分类器和所述当前块的一个或多个样本值来确定类索引;
基于所述类索引从滤波器组中选择滤波器;以及
将所述滤波器应用于所述当前块。
2.根据权利要求1所述的方法,其中,所述多个可用分类器包括基于频带的分类器和基于拉普拉斯的分类器,其中所述基于频带的分类器向所述当前块的所述一个或多个样本值分配类索引而不考虑所述一个或多个样本值的相邻样本的值,并且所述基于拉普拉斯的分类器基于所述一个或多个样本值的所述相邻样本的值将所述类索引分配给所述当前块的所述一个或多个样本值。
3.根据权利要求1所述的方法,其中,从所述多个可用分类器中确定用于所述当前块的所述分类器包括接收标识所述分类器的语法元素。
4.根据权利要求1所述的方法,其中,所述分类器包括基于频带的分类器,并且所述滤波器组中的每个滤波器被分配给一个或多个类索引,并且所述一个或多个类索引中的每个类索引被分配给样本值的一个或多个频带,并且其中基于所述分类器和所述当前块的所述一个或多个样本值来确定所述类索引包括:
确定用于所述一个或多个样本值的频带;以及
基于用于所述一个或多个样本值的所述频带来确定所述类索引。
5.根据权利要求4所述的方法,还包括:
基于所确定的分类器有条件地接收语法元素,其中所述语法元素的第一值指示将一个或多个几何变换应用于所述滤波器组中的一个或多个滤波器,并且所述语法元素的第二值指示不将所述一个或多个几何变换应用于所述滤波器组中的所述一个或多个滤波器,其中基于所确定的分类器有条件地接收所述语法元素包括响应于确定所述多个可用分类器中用于所述当前块的所述分类器是所述基于频带的分类器而推断所述语法元素等于所述第二值。
6.根据权利要求4所述的方法,其中,确定用于所述一个或多个样本值的所述频带包括基于所述一个或多个样本值来确定所述频带,而不考虑未包含在所述一个或多个样本值中的样本值。
7.根据权利要求6所述的方法,其中,所述滤波器包括多个滤波器系数,并且将所述滤波器应用于所述当前块包括将所述多个滤波器系数中的至少一些滤波器系数应用于对应于所述一个或多个样本值的相邻样本的滤波器支持位置。
8.根据权利要求1所述的方法,其中,所述当前块包括中间滤波重构块,所述方法还包括:
使用帧内预测或帧间预测中的一者来确定预测块;
确定残差块;
通过将所述预测块与所述残差块相加来确定所述重构块;以及
将一个或多个滤波器应用于所述重构块以确定所述中间重构块,其中所述一个或多个滤波器包括第一级自适应环路滤波器,并且所应用的滤波器包括第二级自适应环路滤波器。
9.根据权利要求1所述的方法,其中,将所述滤波器应用于所述当前块包括修改所述当前块的所述一个或多个样本值的值。
10.根据权利要求1所述的方法,其中,所述方法作为编码方法的一部分来执行。
11.一种用于对视频数据进行解码的设备,所述设备包括:
存储器,所述存储器被配置成存储视频数据;和
一个或多个处理器,所述一个或多个处理器实现于电路中并且被配置成:
针对视频数据的当前块,从多个可用分类器中确定用于所述当前块的分类器,其中所述多个可用分类器中的每个分类器定义用于计算类索引的过程;
基于所述分类器和所述当前块的一个或多个样本值来确定类索引;
基于所述类索引从滤波器组中选择滤波器;以及
将所述滤波器应用于所述当前块。
12.根据权利要求11所述的设备,其中,所述多个可用分类器包括基于频带的分类器和基于拉普拉斯的分类器,其中所述基于频带的分类器向所述当前块的所述一个或多个样本值分配类索引而不考虑所述一个或多个样本值的相邻样本的值,并且所述基于拉普拉斯的分类器基于所述一个或多个样本值的所述相邻样本的值将所述类索引分配给所述当前块的所述一个或多个样本值。
13.根据权利要求11所述的设备,其中,为了从所述多个可用分类器中确定用于所述当前块的所述分类器,所述一个或多个处理器被进一步配置成接收标识所述分类器的语法元素。
14.根据权利要求11所述的设备,其中,所述分类器包括基于频带的分类器,并且所述滤波器组中的每个滤波器被分配给一个或多个类索引,并且所述一个或多个类索引中的每个类索引被分配给样本值的一个或多个频带,并且其中,为了基于所述分类器和所述当前块的所述一个或多个样本值来确定所述类索引,所述一个或多个处理器被进一步配置成:
确定用于所述一个或多个样本值的频带;以及
基于用于所述一个或多个样本值的所述频带来确定所述类索引。
15.根据权利要求14所述的设备,其中,所述一个或多个处理器被进一步配置成:
基于所确定的分类器有条件地接收语法元素,其中所述语法元素的第一值指示将一个或多个几何变换应用于所述滤波器组中的一个或多个滤波器,并且所述语法元素的第二值指示不将所述一个或多个几何变换应用于所述滤波器组中的所述一个或多个滤波器,并且其中为了基于所确定的分类器有条件地接收所述语法元素,所述一个或多个处理器被进一步配置成响应于确定所述多个可用分类器中用于所述当前块的所述分类器是所述基于频带的分类器而推断所述语法元素等于所述第二值。
16.根据权利要求14所述的设备,其中,为了确定用于所述一个或多个样本值的所述频带,所述一个或多个处理器被进一步配置成基于所述一个或多个样本值来确定所述频带,而不考虑未包含在所述一个或多个样本值中的样本值。
17.根据权利要求16所述的设备,其中,所述滤波器包括多个滤波器系数,并且为了将所述滤波器应用于所述当前块,所述一个或多个处理器被进一步配置成将所述多个滤波器系数中的至少一些滤波器系数应用于对应于所述一个或多个样本值的相邻样本的滤波器支持位置。
18.根据权利要求11所述的设备,其中,所述当前块包括中间滤波重构块,其中所述一个或多个处理器被进一步配置成:
使用帧内预测或帧间预测中的一者来确定预测块;
确定残差块;
通过将所述预测块与所述残差块相加来确定所述重构块;以及
将一个或多个滤波器应用于所述重构块以确定所述中间重构块,其中所述一个或多个滤波器包括第一级自适应环路滤波器,并且所应用的滤波器包括第二级自适应环路滤波器。
19.根据权利要求11所述的设备,其中,为了将所述滤波器应用于所述当前块,所述一个或多个处理器被进一步配置成修改所述当前块的所述一个或多个样本值的值。
20.根据权利要求11所述的设备,还包括被配置成显示解码视频数据的显示器。
21.根据权利要求11所述的设备,其中,所述设备包括以下中的一项或多项:相机、计算机、移动设备、广播接收器设备或机顶盒。
22.根据权利要求11所述的设备,其中,所述设备包括无线通信设备,还包括被配置成接收编码视频数据的接收器。
23.根据权利要求22所述的设备,其中,所述无线通信设备包括手持电话,并且其中,所述接收器被配置成根据无线通信标准来对包含所述视频数据的信号进行解调。
24.根据权利要求11所述的设备,其中,所述一个或多个处理器被配置成实现视频解码器。
25.根据权利要求11所述的设备,其中,所述一个或多个处理器被配置成实现视频编码器。
26.一种计算机可读存储介质,所述计算机可读存储介质存储指令,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器:
针对视频数据的当前块,从多个可用分类器中确定用于所述当前块的分类器,其中所述多个可用分类器中的每个分类器定义用于计算类索引的过程;
基于所述分类器和所述当前块的一个或多个样本值来确定类索引;
基于所述类索引从滤波器组中选择滤波器;以及
将所述滤波器应用于所述当前块。
CN202280045261.8A 2021-06-30 2022-06-30 在视频译码中具有多个分类器的用信号通知的自适应环路滤波器 Pending CN117561712A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63/217,067 2021-06-30
US17/853,274 2022-06-29
US17/853,274 US20230010869A1 (en) 2021-06-30 2022-06-29 Signaled adaptive loop filter with multiple classifiers in video coding
PCT/US2022/035804 WO2023278757A1 (en) 2021-06-30 2022-06-30 Signaled adaptive loop filter with multiple classifiers in video coding

Publications (1)

Publication Number Publication Date
CN117561712A true CN117561712A (zh) 2024-02-13

Family

ID=89813376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280045261.8A Pending CN117561712A (zh) 2021-06-30 2022-06-30 在视频译码中具有多个分类器的用信号通知的自适应环路滤波器

Country Status (1)

Country Link
CN (1) CN117561712A (zh)

Similar Documents

Publication Publication Date Title
CN113853784B (zh) 用于视频译码的多个自适应环路滤波器集合的方法和装置
CN116349226A (zh) 用于视频编解码期间进行滤波的多神经网络模型
CN114080805A (zh) 用于视频译码的自适应环路滤波的非线性扩展
US11778213B2 (en) Activation function design in neural network-based filtering process for video coding
WO2022020068A1 (en) Multiple adaptive loop filter sets
US20240015284A1 (en) Reduced complexity multi-mode neural network filtering of video data
CN113615178A (zh) 视频译码中的色度帧内预测
CN117561712A (zh) 在视频译码中具有多个分类器的用信号通知的自适应环路滤波器
US20230300328A1 (en) Adaptive loop filter with samples before deblocking filter and samples before sample adaptive offsets
US20230010869A1 (en) Signaled adaptive loop filter with multiple classifiers in video coding
US20220400292A1 (en) Joint clipping operating for filters for video coding
US20240015312A1 (en) Neural network based filtering process for multiple color components in video coding
US20240015337A1 (en) Filtering in parallel with deblocking filtering in video coding
WO2024011113A1 (en) Filtering in parallel with deblocking filtering in video coding
TW202234886A (zh) 具有固定濾波器的自我調整迴路濾波器
CN116636207A (zh) 具有固定滤波器的自适应环路滤波器
WO2024010790A1 (en) Reduced complexity multi-mode neural network filtering of video data
CN117426097A (zh) 用于视频译码的滤波器的联合截取操作
CN118176721A (zh) 用于视频译码的多个参考线的候选列表
JP2024514081A (ja) ビデオコーディングのためのイントラモード依存多重変換選択
CN116210222A (zh) 约束用于以不同比特深度对视频数据进行译码的自适应环路滤波的操作比特深度
CN117413514A (zh) 使用重叠块运动补偿、组合帧间帧内预测和/或亮度映射和色度缩放的视频编解码
WO2021081302A1 (en) Parametric graph-based separable transforms for video coding
CN117461313A (zh) 视频译码中用于几何划分模式的运动矢量候选构建
CN116235495A (zh) 用于视频译码中的跨分量线性模型(cclm)模式的固定比特深度处理

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination