CN113196752B - 对视频数据进行解码的方法、装置及存储介质 - Google Patents

对视频数据进行解码的方法、装置及存储介质 Download PDF

Info

Publication number
CN113196752B
CN113196752B CN201980082314.1A CN201980082314A CN113196752B CN 113196752 B CN113196752 B CN 113196752B CN 201980082314 A CN201980082314 A CN 201980082314A CN 113196752 B CN113196752 B CN 113196752B
Authority
CN
China
Prior art keywords
video data
block
pixels
gradient values
video
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.)
Active
Application number
CN201980082314.1A
Other languages
English (en)
Other versions
CN113196752A (zh
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
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN113196752A publication Critical patent/CN113196752A/zh
Application granted granted Critical
Publication of CN113196752B publication Critical patent/CN113196752B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

视频编码器和/或视频解码器被配置为将自适应环路滤波器应用于重构的视频数据块。该视频编码器和/或视频解码器可以被配置为确定覆盖重构的视频数据块的窗口的梯度值,基于该窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于该梯度值的缩放因子,并且基于该缩放因子缩放该梯度值。视频编码器和/或视频解码器可以基于缩放的梯度值来确定自适应环路滤波器的类别。

Description

对视频数据进行解码的方法、装置及存储介质
相关申请交叉引用
本申请要求于2019年12月18日提交的第16/718,552号美国申请的优先权,该美国申请要求于2018年12月21日提交的第62/784,287号美国临时申请的权益,这两个申请的全部内容通过引用方式结合于本文中。
技术领域
本公开涉及视频编码和解码。
背景技术
数字视频能力可以被结合到各种设备中,该设备包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字录音设备、数字媒体播放器、视频游戏设备、视频游戏机、蜂窝或卫星无线电电话、所谓的“智能手机”、视频电话会议设备、视频流设备等。数字视频设备实施视频编解码技术,诸如在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、第10部分、高级视频编解码(AVC)、ITU-T H.265/高效视频编解码(HEVC)定义的标准以及此类标准的扩展中描述的那些技术。通过实施此类视频编解码技术,视频设备可以更有效地发送、接收数字视频信息、对数字视频信息进行编码、解码和/或存储数字视频信息。
视频编解码技术包括空间(帧内图片)预测和/或时间(帧间图片)预测以减少或去除视频序列中固有的冗余。对于基于块的视频编解码,视频条带 (例如,视频图片或视频图片的一部分)可以被分割为视频块,该视频块也可以被称为编解码树单元(CTU)、编解码单元(CU)和/或编解码节点。图片的被帧内编码(I)条带中的视频块使用相对于同一图片中的相邻块中的参考样点的空间预测进行编码。图片的被帧间编码(P或B)条带中的视频块可以使用相对于同一图片中的相邻块中的参考样点的空间预测或相对于其它参考图片中的参考样点的时间预测。图片可以被称为帧,而参考图片可以被称为参考帧。
发明内容
通常,本公开描述了与用于在视频编解码中使用的滤波器相关的技术。具体地,本公开描述了用于确定自适应环路滤波器(ALF)的类别的技术。在一些示例中,当确定用于靠近编解码树单元(CTU)的像素块的ALF的类别时,并非用于确定ALF的类别的所有像素都是可用的。具体地,并非块周围的窗口内用于确定块的梯度和方向性(然后用于确定ALF的类别)的所有像素都是可用的。视频编解码器可以被配置为用默认像素值或用来自块的可用像素值填充不可用像素值。然而,使用此类值来确定梯度和方向性可能导致方向性的结果不是最佳的,并且可能导致ALF的类别不是最佳的。
本公开描述了用于在不使用填充像素的情况下确定像素块的梯度(或拉普拉斯值)的技术。此外,视频编码器和/或视频解码器可以基于窗口中与所重构的块在虚拟边界的同一侧上的可用像素的数量来确定用于确定梯度的缩放因子并且可以将该缩放因子应用于任何计算的梯度。这样,可以提高梯度、方向性和ALF的类别的准确性。本公开的技术可以用于高级视频编解码器(诸如H.265/HEVC和H.266/VVC(通用视频编解码))的上下文中。
在一个示例中,本公开描述了一种被配置为对视频数据进行编解码的装置,该装置包括:存储器,该存储器被配置为存储视频数据块;以及一个或多个处理器,该一个或多个处理器在电路中实施,与该存储器进行通信。该一个或多个处理器被配置为:重构视频数据块以创建重构的视频数据块;确定覆盖重构的视频数据块的窗口的梯度值,其中,窗口包括重构的视频数据块的像素和围绕重构的视频数据块的像素;基于窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于梯度值的缩放因子;基于缩放因子缩放梯度值以产生缩放的梯度值,其中,缩放的梯度值(也被称为拉普拉斯值)指示重构的视频数据块的方向性;确定重构的视频数据块的活动索引;基于方向性和活动索引为重构的视频数据块确定自适应环路滤波器的类别;并且将所确定的自适应环路滤波器的类别应用于重构的视频数据块以生成滤波的视频数据块。
在另一个示例中,本公开描述了一种对视频数据进行编解码的方法,该方法包括:重构视频数据块以创建重构的视频数据块;确定覆盖重构的视频数据块的窗口的梯度值,其中,窗口包括重构的视频数据块的像素和围绕重构的视频数据块的像素;基于窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于梯度值的缩放因子;基于缩放因子缩放梯度值以产生缩放的梯度值,其中,缩放的梯度值指示重构的视频数据块的方向性;确定重构的视频数据块的活动索引;基于方向性和活动索引为重构的视频数据块确定自适应环路滤波器的类别;并且将所确定的自适应环路滤波器的类别应用于重构的视频数据块以生成滤波的视频数据块。
在另一个示例中,本公开描述了一种被配置为对视频数据进行编解码的装置,该装置包括:用于重构视频数据块以创建重构的视频数据块的部件;用于确定覆盖重构的视频数据块的窗口的梯度值的部件,其中,窗口包括重构的视频数据块的像素和围绕重构的视频数据块的像素;用于基于窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于梯度值的缩放因子的部件;用于基于缩放因子缩放梯度值以产生缩放的梯度值的部件,其中,缩放的梯度值指示重构的视频数据块的方向性;用于确定重构的视频数据块的活动索引的部件;用于基于方向性和活动索引为重构的视频数据块确定自适应环路滤波器的类别的部件;以及用于将所确定的自适应环路滤波器的类别应用于重构的视频数据块以生成滤波的视频数据块的部件。
在另一个示例中,本公开描述了一种存储指令的非暂时性计算机可读存储介质,指令在被执行时使被配置为对视频数据进行编码的一个或多个处理器:重构视频数据块以创建重构的视频数据块;确定覆盖重构的视频数据块的窗口的梯度值,其中,窗口包括重构的视频数据块的像素和围绕重构的视频数据块的像素;基于窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于梯度值的缩放因子;基于缩放因子缩放梯度值以产生缩放的梯度值,其中,缩放的梯度值指示重构的视频数据块的方向性;确定重构的视频数据块的活动索引;基于方向性和活动索引为重构的视频数据块确定自适应环路滤波器的类别;并且将所确定的自适应环路滤波器的类别应用于重构的视频数据块以生成滤波的视频数据块。
在附图及以下说明书中陈述本公开的一个或多个方面的细节。从说明书、附图和权利要求书,本公开描述的技术的其它特征、目的和优点将是显而易见的。
附图说明
图1是示出可以使用本公开描述的一种或多种技术的示例性视频编码和解码系统的框图。
图2A和2B是示出示例性四叉树二叉树(QTBT)结构和对应的编解码树单元(CTU)的概念图。
图3示出了三个不同的示例性自适应环路滤波器(ALF)滤波器支持。
图4是示出基于矩阵结果的用于ALF的类别索引的示例的概念图。
图5是示出5x5菱形滤波器支持的概念图。
图6是示出几何变换的示例的概念图。
图7是示出相对于编解码树单元底部边界使用的滤波器的示例的概念图。
图8是示出相对于编解码树单元底部边界和虚拟边界使用的滤波器的示例的概念图。
图9是示出针对ALF的以映射进行的填充的示例性使用的概念图。
图10是示出针对ALF的以映射进行的填充的另一种示例性使用的概念图。
图11是示出可以实施本公开描述的一种或多种技术的示例性视频编码器的框图。
图12是示出可以实施本公开描述的一种或多种技术的示例性视频解码器的框图。
图13是示出本公开的示例性编解码方法的流程图。
具体实施方式
图1是示出可以使用本公开的技术来确定用于对重构的视频数据块进行滤波的自适应环路滤波器(ALF)的类别的示例性视频编码和解码系统10的框图。如图1所示,系统10包括源设备12,该源设备提供稍后由目标设备 14解码的编码的视频数据。具体地,源设备12经由计算机可读介质16向目标设备14提供编码的视频数据。源设备12和目标设备14可以包括多种设备中的任一种,包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、电话听筒(诸如所谓的“智能”电话)、平板计算机、电视、相机、显示设备、数字媒体播放器、视频游戏机、视频流设备等。在一些情况下,源设备12和目标设备14被配备用于无线通信。因此,源设备12和目标设备14可以是无线通信设备。本公开描述的技术可以应用于无线和/或有线应用。源设备12是示例性视频编码设备(即,用于对视频数据进行编码的设备)。目标设备14是示例性视频解码设备(即,用于对视频数据进行解码的设备)。
图1所示的系统10仅仅是一个示例。用于对视频数据进行编码、解码和处理的技术可以由任何数字视频编码和/或解码设备来执行。在一些示例中,该技术可以由视频编码器/解码器执行,该视频编码器/解码器通常被称为“编解码器(CODEC)”。源设备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可以被配置为发送根据其它无线标准(诸如IEEE 802.11规范、IEEE 802.15规范(例如,ZigBeeTM)、BluetoothTM标准等)调制的数据,诸如编码的视频数据。在一些示例中,输出接口22的电路被集成到视频编码器20的电路和/或源设备12的其它组件中。例如,视频编码器20和输出接口22可以是片上系统(SoC)的部分。SoC还可以包括其它组件,诸如通用微处理器、图形处理单元等等。
目标设备14可以经由计算机可读介质16接收要解码的编码的视频数据。计算机可读介质16可以包括能够将编码的视频数据从源设备12移动到目标设备14的任何类型的介质或设备。在一些示例中,计算机可读介质16包括通信介质以使得源设备12能够实时地将编码的视频数据直接发送到目标设备14。通信介质可以包括任何无线或有线通信介质,诸如无线电频率(RF) 频谱或一条或多条物理发送线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如互联网的全球网络。通信介质可以包括路由器、交换机、基站或可能有助于促进从源设备12到目标设备14的通信的任何其它设备。目标设备14可以包括一个或多个数据存储介质,其被配置为存储编码的视频数据和解码的视频数据。
计算机可读介质16可以包括暂时性介质,诸如无线广播或有线网络发送,或存储介质(即,非暂时性存储介质),诸如硬盘、固态驱动器、快闪驱动器、光盘、数字视频光盘、蓝光光盘或其它计算机可读介质。在一些示例中,网络服务器(未示出)可以从源设备12接收编码的视频数据并且例如经由网络发送将编码的视频数据提供给目标设备14。类似地,诸如光盘冲压设施的介质生产设施的计算设备可以从源设备12接收编码的视频数据并且生产包含编码的视频数据的光盘。因此,在各种示例中,计算机可读介质16可以被理解为包括各种形式中的任一种形式的一个或多个计算机可读介质。
在一些示例中,输出接口22可以向中间设备(诸如存储设备)输出数据,诸如编码的视频数据。类似地,目标设备14的输入接口26可以从中间设备接收编码的数据。中间设备可以包括各种分布式或本地访问的数据存储介质中的任一种,诸如硬盘驱动器、固态驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器,或用于存储编码的视频数据的任何其它合适的数字存储介质。在一些示例中,中间设备对应于文件服务器。示例性文件服务器包括Web服务器、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。
目标设备14可以通过任何标准数据连接(包括互联网连接)访问编码的视频数据。这可以包括无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器、光纤等),或者适合访问被存储在文件服务器上的编码的视频数据的无线信道与有线连接的组合。来自存储设备的编码的视频数据的发送可以是流式发送、下载发送或其组合。
目标设备14的输入接口26从计算机可读介质16接收数据。输入接口 26可以包括各种类型的组件或设备。例如,输入接口26可以包括无线接收器、调制解调器、有线网络组件(例如,以太网卡)、光学网卡或另一种物理组件。在其中输入接口26包括无线接收器的示例中,输入接口26可以被配置为接收根据蜂窝通信标准(诸如4G、4G-LTE、高级LTE、5G等)调制的数据,诸如比特流。在其中输入接口26包括无线接收器的一些示例中,输入接口26可以被配置为接收根据其它无线标准(诸如IEEE 802.11规范、IEEE 802.15规范(例如,ZigBeeTM)、BluetoothTM标准等)调制的数据,诸如比特流。在一些示例中,输入接口26的电路可以被集成到视频解码器30的电路和/或目标设备14的其它组件中。例如,视频解码器30和输入接口26可以是SoC的部分。SoC还可以包括其它组件,诸如通用微处理器、图形处理单元等等。
存储介质28可以被配置为存储编码的视频数据,诸如由输入接口26接收的编码的视频数据(例如,比特流)。显示设备32向用户显示解码的视频数据。显示设备32可以包括多种显示设备中的任一种,诸如液晶显示器 (LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一种类型的显示设备。
视频编码器20和视频解码器30各自可以被实施为各种合适的处理电路中的任一种,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任何组合。当该技术部分地以软件实施时,设备可以将用于软件的指令存储在合适的非暂时性计算机可读介质中并且可以使用一个或多个处理器在硬件中执行指令以执行本公开的技术。视频编码器20和视频解码器30中的每一者可以被包括在一个或多个编码器或解码器中,该一个或多个编码器或解码器中的任一者可以被集成作为相应设备中的组合编码器/解码器(CODEC) 的一部分。
在一些示例中,视频编码器20和视频解码器30根据一个或多个视频编解码标准或规范对视频数据进行编码和解码。例如,视频编码器20和视频解码器30可以根据ITU-TH.261、ISO/IEC MPEG-1 Visual、ITU-T H.262或 ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual和ITU-T H.264(也被称为ISO/IEC MPEG-4 AVC)(包括其可分级视频编解码(SVC) 和多视点视频编解码(MVC)扩展或另一种视频编解码标准或规范)对视频数据进行编码和解码。在一些示例中,视频编码器20和视频解码器30根据高效视频编解码(HEVC)标准(被称为ITU-T H.265、其范围和屏幕内容编解码扩展、其3D视频编解码扩展(3D-HEVC)、其多视点扩展(MV-HEVC) 或其可分级扩展(SHVC))对视频数据进行编码和解码。
ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)研究了未来视频编解码技术的标准化需求,该未来视频编解码技术的压缩能力超过当前的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的“对联合探索测试模型7(JEM7)的算法描述”,JVET-G1001,都灵,2017年7月。
源自探索的新视频编解码标准的最新草案(被称为H.266/多功能视频编解码(VVC)标准)可在Benjamin Bross的文档JVET-J1001“多功能视频编解码(草案1)”中获得,并且其算法描述可在Janle Chen和Elena Alshina的文档JVET-J1002“对通用视频编解码和测试模型1(VTM1)的算法描述”中获得。VVC标准的最新草案在Bross等人的在ITU-T SG16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家团队(JVET),第16次会议:瑞士日内瓦, 2019年10月1至11日,JVET-P2001-v9上的“通用视频编解码(草案7)” (以下简称“VVC草案7”)中有所描述。然而,本公开的技术不限于任何特定编码标准。
本公开的技术可以用于高级视频编解码器(诸如HEVC或下一代视频编解码标准(例如,H.266/VVC)的扩展)的上下文中。尽管一般参考HEVC 和下一代视频编解码标准(例如,VVC/JEM)描述本公开的技术,但是应当理解,本公开的技术可以结合使用环路滤波器(包括ALF、样点自适应偏移 (SAO)滤波器和/或去块滤波器)的任何视频编解码技术来使用。
如下文更详细地解释,视频编码器20和视频解码器30可以被配置为:重构视频数据块以创建重构的视频数据块;确定覆盖重构的视频数据块的窗口的梯度值,其中,窗口包括重构的视频数据块的像素和围绕重构的视频数据块的像素;基于窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于梯度值的缩放因子;基于缩放因子缩放梯度值以产生缩放的梯度值,其中,缩放的梯度值指示重构的视频数据块的方向性;确定重构的视频数据块的活动索引;基于方向性和活动索引为重构的视频数据块确定自适应环路滤波器的类别;并且将所确定的自适应环路滤波器的类别应用于重构的视频数据块以生成滤波的视频数据块。
本公开可以一般涉及对图片进行编解码(例如,编码和解码)以包括对图片的数据进行编码或解码的过程。类似地,本公开可以涉及对图片的块进行编解码以包括对块的数据进行编码或解码的过程,例如预测和/或残差编解码。编码的视频比特流通常包括表示编解码判决(例如,编解码模式)和将图片分割成块的语法元素的一系列值。因此,对将图片或块进行编解码的引用一般应当被理解为用于形成图片或块的语法元素的编解码值。
在HEVC、VVC以及其它视频编解码规范中,视频数据包括一系列图片。图片也可以被称为“帧”。图片可以包括一个或多个样点阵列。图片的每个相应样点阵列可以包括用于相应颜色分量的样点阵列。图片可以包括三个样点阵列,被表示为SL、SCb和SCr。SL是亮度样点的二维阵列(即,块)。SCb是 Cb色度样点的二维阵列。SCr是Cr色度样点的二维阵列。在其它情况下,图片可以是单色的并且可以仅包括亮度样点的阵列。
作为编码视频数据的一部分,视频编码器20可以对视频数据的图片进行编码。换句话说,视频编码器20可以生成视频数据的图片的编码表示。图片的编码表示在本文中可以被称为“被编码的图片”或“编码图片”。
为了生成图片的编码表示,视频编码器20可以对图片的块进行编码。视频编码器20可以在比特流中包括视频块的编码表示。在一些示例中,为了对图片的块进行编码,视频编码器20执行帧内预测或帧间预测以生成一个或多个预测性块。另外,视频编码器20可以生成块的残差数据。残差块包括残差样点。每个残差样点可以指示所生成的预测性块中的一个的样点与该块的对应样点之间的差异。视频编码器20可以将变换应用于残差样点块以生成变换系数。此外,视频编码器20可以将变换系数量化。在一些示例中,视频编码器20可以生成一个或多个语法元素以表示变换系数。视频编码器20可以对表示变换系数的语法元素中的一个或多个进行熵编码。
更具体地,当根据HEVC或其它视频编解码规范对视频数据进行编码以生成图片的编码表示时,视频编码器20可以将图片的每个样点阵列分割为编解码树块(CTB)并对CTB进行编码。CTB可以是图片的样点阵列中的样点的NxN块。在HEVC主配置文件中,CTB的尺寸范围可以从16x16至64x64,但是技术上可以支持8x8 CTB尺寸。
图片的编解码树单元(CTU)可以包括一个或多个CTB并且可以包括用于对一个或多个CTB的样点进行编码的语法结构。例如,每个CTU可以包括亮度样点的CTB、色度样点的两个对应CTB以及用于对CTB的样点进行编码的语法结构。在单色图片或具有三个单独颜色平面的图片中,CTU可以包括单个CTB和用于对CTB的样点进行编码的语法结构。CTU也可以被称为“树块”或“最大编解码单元”(LCU)。在本公开中,“语法结构”可以被定义为以指定顺序一起出现在比特流中的一个或多个语法元素。在一些编解码器中,编码图片是包含图片的所有CTU的编码表示。
为了对图片的CTU进行编码,视频编码器20可以将CTU的CTB分割为一个或多个编解码块。编解码块是样点的NxN块。在一些编解码器中,为了对图片的CTU进行编码,视频编码器20可以对CTU的编解码树块递归地执行四叉树分割以将CTB分割为编解码块,因此称为“编解码树单元”。编解码单元(CU)可以包括一个或多个编解码块和用于对该一个或多个编解码块的样点进行编码的语法结构。例如,图片具有亮度样点阵列、Cb样点阵列和 Cr样点阵列,CU可以包括图片的亮度样点的编解码块和图片的色度样点的两个对应编解码块,以及用于对编解码块的样点进行编码的语法结构。在单色图片或具有三个单独颜色平面的图片中,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对于帧间预测的PU在“编解码_单元(coding_unit)”语法结构内生成“预测_单元 (prediction_unit)”语法结构,但是对于帧内预测的PU在“编解码_单元”语法结构内不生成“预测_单元”语法结构。相反,在HEVC中,与帧内预测的 PU相关的语法元素被直接包括在“编解码_单元”语法结构中。
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可以对QTBT结构130的区域树级别(即,实线)的语法元素(诸如划分信息) 和QTBT结构130的预测树级别(即,虚线)的语法元素(诸如划分信息) 进行编码,并且视频解码器30可以对这些语法元素进行解码。对于由QTBT 结构130的终端叶节点表示的CU,视频编码器20可以对视频数据(诸如预测数据和变换数据)进行编码,并且视频解码器30可以对该视频数据进行解码。
通常,图2B的CTU 132可以与定义与QTBT结构130在第一和第二级别处的节点相对应的块的尺寸的参数相关联。这些参数可以包括CTU尺寸 (表示样点中CTU 132的尺寸)、最小四叉树尺寸(MinQTSize,表示最小允许四叉树叶节点尺寸)、最大二叉树尺寸(MaxBTSize,表示最大允许二叉树根节点尺寸)、最大二叉树深度(MaxBTDepth,表示最大允许二叉树深度) 和最小二叉树尺寸(MinBTSize,表示最小允许二叉树叶节点尺寸)。
与CTU相对应的QTBT结构的根节点在QTBT结构的第一级别处可以具有四个子节点,每个子节点可以根据四叉树分割进行分割。即,第一级别的节点是叶节点(没有子节点)或者具有四个子节点。QTBT结构130的示例将此类节点表示为包括以实线代表分支的父节点和子节点。如果第一级别的节点不大于最大允许二叉树根节点尺寸(MaxBTSize),则它们可以被相应的二叉树进一步分割。一个节点的二叉树划分可以迭代,直到由于划分而产生的节点达到最小允许二叉树叶节点尺寸(MinBTSize)或最大允许二叉树深度(MaxBTDepth)。QTBT结构130的示例将此类节点表示为以虚线代表分支。二叉树叶节点被称为编解码单元(CU),其用于预测(例如,帧内图片或帧间图片预测)和变换,而无需任何进一步的分割。如上文所讨论的,CU 也可以被称为“视频块”或“块”。
在QTBT分割结构的一个示例中,CTU尺寸被设置为128x128(亮度样点和两个对应的64x64色度样点),MinQTSize被设置为16x16,MaxBTSize 被设置为64x64,MinBTSize(针对宽度和高度)被设置为4,并且MaxBTDepth 被设置为4。四叉树分割首先应用于CTU以生成四叉树叶节点。四叉树叶节点的尺寸可以从16x16(即,MinQTSize)至128x128(即,CTU尺寸)。如果叶四叉树节点是128x128,则它不会被二叉树进一步划分,因为尺寸超过了MaxBTSize(即,在这该示例中为64x64)。否则,叶四叉树节点将被二叉树进一步分割。因此,四叉树叶节点也是二叉树的根节点并且其二叉树深度为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中,条带被定义为包含在一个独立条带段(segment)和在同一访问单元内的下一独立条带段(如果有) 之前的所有后续从属条带段(如果有)中的整数个CTU。此外,在HEVC中,条带段被定义为在片(tile)扫描中连续排序并包含在单个NAL单元中的整数个CTU。片扫描是分割图片的CTB的特定顺序排序,其中CTB在片中的 CTB光栅扫描中连续排序,而图片中的片在图片的片的光栅扫描中连续排序。片是图片中的特定片列和特定片行内的CTB的矩形区域。
自适应环路滤波器(ALF)
在视频编解码领域中,通常应用滤波(例如,ALF)以便增强重构的和/ 或解码的视频信号的质量。在本公开的上下文中,重构的视频数据块可以指代已在视频编码器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),如下:
Figure BDA0003111965680000161
其中i和j是帧或块内的像素的坐标。
VVC中的ALF
环路ALF在HEVC开发阶段期间进行了评估,但是ALF并未包括在 HEVC标准的最终版本中。然而,VVC已经采用了环路ALF。示例性细节可以在B.Bross、J.Chen、S.Liu的“JVET-L1001:通用视频编解码(草案3)”中找到,该草案是M.Karczewicz、L.Zhang、W.-J.Chien、X.Li在美国圣地亚哥于2016年2月20日至2月26日举办的第二次会议ITU-T SG 16 WP 3 和ISO/IEC 1/SC 29/WG 11的探索团队(JVET),Doc.JVET-B0060上发表的“EE2.5:自适应环路滤波器的改进”和M.Karczewicz、L.Zhang、W.-J.Chien、 X.Li在瑞士日内瓦于2016年5月26日至6月1日举办的第三次会议ITU-T SG 16 WP 3和ISO/IEC 1/SC 29/WG 11的探索团队(JVET),Doc.JVET-C0038 上发表的“EE2.5:自适应环路滤波器的改进”中描述的ALF的简化版本。
对于图片中的亮度分量,视频编码器20和视频解码器30可以被配置为对ALF应用7x7菱形滤波器302,如图3所示。对于图片中的两个色度分量(例如,Cr和Cb),视频编码器20和视频解码器30可以被配置为应用ALF 系数的单个集合,并且总是使用如图3所示的5x5菱形滤波器300。可以使用其它滤波器形状,包括图3所示的截断式9x9菱形滤波器形状304。
在视频解码器30处,每个像素样点
Figure BDA0003111965680000162
都被滤波,从而产生如方程(2) 中所示的像素值I′i,j,其中L表示滤波器长度,fm,n表示滤波器系数并且o i 表示滤波器偏移。
Figure BDA0003111965680000171
其中
Figure BDA0003111965680000172
并且(o=(1<<(BDF-2))。在VVC测试模型3(VTM3)中,由BDF表示的比特深度被设置为8。
由于VVC测试模型5(VTM5.0),在ALF中引入了剪裁,并且如方程 (2*)所示修改方程(2)
Figure BDA0003111965680000173
其中cm,n是剪裁参数。
分类
视频编码器20和视频解码器30可以被配置为确定要应用于视频数据块 (例如,亮度样点块和/或色度样点块)的多个ALF类别中的一个。在VTM3 中,视频编码器20和视频解码器30被配置为对每个4x4亮度块应用分类。视频编码器20和视频解码器30可以被配置为基于块的所确定的方向性和活动的量化值将每个4x4块分类为25个类别中的一个。细节如下所述。
视频编码器20和视频解码器30可以被配置为基于块样点的1D拉普拉斯方向和每个4x4亮度块的块样点的2D拉普拉斯活动来确定块的ALF的分类。在一个示例中,视频编码器20和视频解码器30可以被配置为计算覆盖 4x4亮度块的8x8窗口内每隔一个像素的梯度总和以确定块的梯度值。视频编码器20和视频解码器30可以被配置为计算四个梯度值:由gv表示的竖直梯度值、由gh表示的水平梯度值、由gd1表示的135度对角线梯度值和由gd2表示的45度对角线梯度值。下表1示出了可以从梯度及其关于块的样点值的物理意义确定的潜在方向性值。对于具有左上角坐标(i,j)的4x4子块,梯度值gv、gh、gd1和gd2被定义为:
Figure BDA0003111965680000174
其中,如果k和l都是偶数或者k和l都不是偶数,则
Figure BDA0003111965680000175
Figure BDA0003111965680000176
否则,Vk,l=0
Figure BDA0003111965680000181
其中,如果k和l都是偶数或者k和l都不是偶数,则
Figure BDA0003111965680000182
Figure BDA0003111965680000183
否则Hk,l=0
Figure BDA0003111965680000184
其中,如果k和l都是偶数或者k和l都不是偶数,则
Figure BDA0003111965680000185
Figure BDA0003111965680000186
否则D1k,l=0
Figure BDA0003111965680000187
其中,如果k和l都是偶数或者k和l都不是偶数,则
Figure BDA0003111965680000188
Figure BDA0003111965680000189
否则D2k,l=0。
表1.方向值及其物理意义
Figure BDA00031119656800001810
为了分配方向性D,视频编码器20和视频解码器30可以被配置为将水平和竖直梯度值的最大值和最小值的比率(在下面的方程(3)中由Rh,v表示) 与两个对角线梯度的最大值和最小值的比率(由方程(4)中的Rd1,d2表示) 彼此与两个阈值t1和t2进行比较
Figure BDA00031119656800001811
Figure BDA00031119656800001812
通过比较检测到的水平/竖直和对角线梯度的比率,视频编码器20和视频解码器30可以确定在[0,4]的范围(包括0和4)内的五个方向模式,即, D,如下面的方程(5)中所定义。
Figure BDA0003111965680000191
视频编码器20和视频解码器30可以将块的活动值Act计算为:
Figure BDA0003111965680000192
视频编码器20和视频解码器30可以进一步将活动值Act量化到0至4的范围(包括0和4)内,并且量化的值被表示为
Figure BDA0003111965680000193
该量化过程详述如下。
从活动值A至活动索引
Figure BDA0003111965680000194
的量化过程
示例性量化过程定义如下:
avg_var=Clip_post(NUM_ENTRY-1,(Act*ScaleFactor)>>shift);
Figure BDA0003111965680000195
其中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之间的较小值。
由于计算活动值的方式不同,因此与JEM2.0中的ALF设计相比, ScaleFactor和ActivityToIndex都进行了修改。
基于方向性和活动索引的分类
在示例性的基于几何变换的ALF(GALF)方案中,视频编码器20和视频解码器30可以被配置为基于块的方向性D和块的量化活动值
Figure BDA0003111965680000196
将每个N×N 块分类为25个类别(C)中的一个,如下所示:
Figure BDA0003111965680000197
图4描绘了根据D和量化活动值
Figure BDA0003111965680000198
确定的类别索引的示例。在一个示例中,对于每一列,
Figure BDA0003111965680000199
的值被设置为0…4,这是从变量Act导出的。
Figure BDA00031119656800001910
的新值的最小Act被标记在顶行(例如,0、8192、16384、57344、122880)。例如,值在[16384,57344-1]内的Act将落入等于2的
Figure BDA00031119656800001911
中。
基于几何变换的ALF(GALF)
对于每个分类,视频编码器20可以被配置为发信号通知滤波器系数的一个集合。为了更好地区分被标记有相同类别索引的块的不同方向,可以使用四种几何变换,包括不变换、对角线、竖直翻转和旋转。图5示出了示例性 5x5菱形滤波器支持500。图6描绘了具有三个几何变换的5x5滤波器支持的示例。图6示出了对角线5x5菱形滤波器支持600、竖直翻转5x5菱形滤波器支持602和旋转5x5菱形滤波器支持604。
从图5和图6中的滤波器支持的比较可以看出,图6的三个附加几何变换的公式形式可以表达如下:
Figure BDA0003111965680000201
其中K是滤波器的尺寸,并且0≤k,l≤K-1是系数坐标,使得位置 (0,0)在块的左上角,而位置(K-1,K-1)在块的右下角。请注意,当使用菱形滤波器支持时,具有滤波器支持外部的坐标的系数可以被设置为0。用于指示几何变换索引的一种技术是隐式地(例如,无需信令)导出几何变换以避免附加开销。在GALF的一些示例中,取决于为该块计算的梯度值,将变换应用于滤波器系数f(k,l)。变换与四个梯度之间的关系在下表2中描述。在一个或多个示例中,变换是基于两个梯度(水平和竖直,或45度和135度梯度)中的较大者。基于比较,可以提取更准确的方向信息。因此,在不增加滤波器系数开销时,可以由于变换而获得不同的滤波结果。
表2.梯度和变换的映射
Figure BDA0003111965680000202
ALF的行缓冲区(Line Buffer)问题
在VVC的一些示例中,视频编码器20和视频解码器30被配置为在去块滤波和样点自适应偏移(SAO)滤波之后执行ALF。在VVC中,按照去块滤波器、SAO和ALF的顺序应用三个滤波器。图7示出了用于这三个环路滤波器的行缓冲区。
VVC中的示例性ALF设计使用7行像素(像素700和702)像素的附加缓冲区,如图7中所描绘,用于底部CTU边界714上方的样点。
为了开始对三行像素706(CTU底部边界714上方1至3行)进行去块,视频编码器20和视频解码器30必须等待较低CTU(例如,CTU底部边界 714下方的CTU)中的像素可用。此类像素将是不可用的。因而,视频编码器20和视频解码器30不会对像素706执行去块滤波。
为了在像素704(CTU底部边界714上方4行)上开始SAO滤波,视频编码器20和视频解码器30将需要像素706的底部三行以去块完成。由于不对像素706执行去块,因此不对像素704执行SAO滤波。
尽管已经对四行像素702(CTU底部边界714上方5至8行)执行了去块和SAO,但要为了开始对像素702进行ALF,视频编码器20和视频解码器30将需要像素行700、704、和706用于分类和滤波。例如,为了对4x4 分类子块708执行ALF,视频编码器20和视频解码器30将在8x8拉普拉斯窗口710中计算梯度值,如上所述。在一些示例中,拉普拉斯计算可能需要 9x9或10x10像素块712。因此,视频编码器20和视频解码器30可能不对像素702执行ALF。出于类似原因,视频编码器20和视频解码器30可能不对像素704执行ALF。可以对像素700(CTU底部边界714上方的9行或更多行)执行所有滤波。
在2019年5月30日公布的第2009/0166363号美国专利公开中提出了减少用于滤波的行缓冲区(例如,用于像素700的行缓冲区)的数量的解决方案。然而,为了开始像素702的ALF分类,视频编码器20和视频解码器30 仍可等待对像素704和706的SAO滤波和去块滤波。这种依赖性可能导致需要附加的行缓冲区来存储每个8x8窗口的梯度值的临时/部分总和,以便将ALF应用于像素702。附加的行缓冲区是不可取的,因为更多的行缓冲区会增加视频编码器20和视频解码器30的实施成本。
在HEVC的开发中,一些提案引入了虚拟边界(VB)的概念。图8示出了相对于虚拟边界716的图7的像素行。在该示例中,虚拟边界716位于CTU 底部边界714上方四行处。这种设计保留了SAO和去块滤波的行缓冲区,但是去除了ALF的行缓冲区。在ALF的一个示例中,视频编码器20和视频解码器30可以不使用虚拟边界716下方的像素来对虚拟边界716上方的像素进行滤波。同样,视频编码器20和视频解码器30可以不使用虚拟边界716上方的像素来对虚拟边界716下方的像素进行滤波。相反,对于当前像素A,如果视频编码器20或视频解码器30需要相对于像素A在虚拟边界716的另一侧的像素B,则视频编码器20和视频解码器30将像素B的值替换为在虚拟边界716的像素A侧离像素B最近的像素。此类被替换的像素可以被称为填充像素。
例如,当计算梯度以确定4x4分类子块708的方向性时,视频编码器20 和视频解码器30将使用落在9x9窗口712内的像素704和706中的一些像素。在一些示例中,用于拉普拉斯计算的像素窗口可以是10x10。然而,此类像素在虚拟边界716上方并且是不可用的。相反,视频编码器20和视频解码器 30将8x8拉普拉斯窗口710内的像素704和706的值替换为来自与4x4分类子块708位于虚拟边界716的同一侧的像素702的像素值。同样,这些被替换的像素值可以被称为填充像素。在图8的示例中,窗口712将包括16个填充像素。在其中使用10x10窗口进行拉普拉斯计算的示例中,将有30个填充像素。因而,当填充与虚拟边界结合使用时,视频编码器20和视频解码器 30可以将ALF应用于像素702。
在用于ALF的行缓冲区处理的一些示例技术中,诸如在上述技术中,如果应用填充,则填充区域将引入用于梯度值计算的不准确信息。因而,ALF 的任何分类(包括ALF的几何变换)都可能不准确,这会降低编解码性能。鉴于前述内容,在一些示例中,本公开描述了用于确定不使用填充像素的像素块的梯度的技术。此外,视频解码器30可以基于用于确定梯度的块周围的窗口中的填充像素的数量来确定缩放因子并且可以将该缩放因子应用于任何计算的梯度。即,视频解码器30可以基于窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于梯度值的缩放因子。这样,可以提高 ALF的梯度、方向性和类别的准确性。
在一些示例中,以下技术可以各自单独应用。在其它示例中,可以以任何组合应用以下技术的任何组合。
在本公开的一个示例中,第2009/0166363号美国专利公开所提出的填充方法可以扩展到其它行缓冲区边界,诸如上述的虚拟边界。在一个示例中,视频编码器20和/或视频解码器30可以被配置为从一个或多个参考图片中的块生成填充样点。在另一个示例中,视频编码器20和/或视频解码器30可以被配置为从一个或多个参考图片中的(多个)块复制填充样点。当填充样点是来自多个参考图片时,视频编码器20和/或视频解码器30可以被配置为将线性函数应用于来自相同位置的多个样点以生成一个填充样点。
在一些示例中,视频编码器20和视频解码器30可以使用与覆盖待滤波样点的当前块相关联或与覆盖待填充样点的相邻块相关联的运动向量来标识 (多个)块。在一些示例中,(多个)运动矢量可以四舍五入到整数位置。在其它示例中,运动矢量可以被设置为零运动矢量。
在另一个示例中,代替通过复制来自块的第一行或第一列的现有样点来生成填充样点的是,视频编码器20和/或视频解码器30可以被配置为用映射函数填充样点。在一些示例中,所使用的映射函数可能取决于用于GALF/ALF 的滤波器支持。在一些示例中,映射函数可以包括但不限于交换和/或翻转和 /或旋转函数。交换函数、翻转函数和旋转函数可以是其中虚拟边界内的样点被映射到虚拟边界外部的位置的任何加权或其它函数。
图9是示出针对ALF的以映射进行的填充的示例性使用的概念图。在图 9中,由符号Si指示的样点(例如,像素的亮度或色度样点)被填充(例如,重新使用)作为虚拟边界外部的样点的滤波器支持。虚拟边界外部与虚拟内的样点具有相同Si名称(例如,S0)的样点被复制作为滤波器支持。图9示出了对角线填充的示例。例如,虚拟边界内的样点可以围绕对角线轴翻转到虚拟边界外部的位置。图10是示出针对ALF的以映射进行的填充的另一种示例性使用的概念图。例如,虚拟边界内的样点可以围绕水平轴翻转到虚拟边界外部的位置。
在本公开的另一个示例中,当针对其中窗口和/或块包括填充像素的块计算梯度值gv、gh、gd1和gd2时,视频编码器20和视频解码器30可以被配置为不将填充像素用于梯度计算。此外,视频编码器20和视频解码器30可以被配置为使用缩放因子来缩放块的梯度值。例如,视频编码器20和视频解码器30可以将缩放的竖直梯度值(gv’)计算为gv’= gv/num_available_pixels*num_full_pixels,其中num_available_pixels表示与当前块位于同一侧的像素的数量(即,未填充的像素的数量),并且 num_full_pixel表示用于块分类的像素的总数(例如,总窗口尺寸)。例如,当10x10的窗口用于拉普拉斯计算时,总窗口尺寸为100个像素。在该示例中,缩放因子将是num_full_pixels/num_available_pixels。在一些示例性实施方式中,缩放因子可以四舍五入为对硬件友好的整数值(例如,处理不需要许多时钟周期),诸如2的幂的倍数。可以基于填充像素的数量使用其它缩放因子。如上所述,在一些示例中,当前滤波的块可以是4x4亮度块并且用于计算梯度的窗口可以是围绕4x4亮度块的8x8块。
因此,在本公开的一个示例中,视频编码器20和/或视频解码器30可以被配置为重构视频数据块以创建重构的视频数据块。如上所述,重构可以是视频编码器20的重构环路或者可以是视频解码器30中滤波之前的解码块。重构的视频数据块可以具有任何尺寸。在一个示例中,为了ALF的目的,重构的视频数据块可以是4x4子块,诸如在图7和图8中所示,并且窗口是8x8 拉普拉斯窗口和10x10像素窗口(例如,用于计算拉普拉斯算子的像素)。
如上所述,视频编码器20和视频解码器30可以被配置为确定覆盖重构的视频数据块的窗口(例如,图7的拉普拉斯窗口710和像素窗口712)的梯度值。该窗口包括重构的视频数据块的像素和围绕重构的视频数据块的像素。同样,像素窗口712在一些示例中可以是9x9或者在其它示例中可以是 10x10。在一个示例中,为了确定梯度值,视频编码器20和视频解码器30可以被配置为在不使用填充像素的情况下确定梯度值。另外,视频编码器20和视频解码器30可以被配置为基于窗口中与所重构的块在虚拟边界的同一侧上的可用像素的数量来确定用于梯度值的缩放因子,并且基于该缩放因子来缩放梯度值以产生缩放的梯度值,其中缩放的梯度值指示重构的视频数据块的方向性。
在一个示例中,为了确定梯度值(g),视频编码器20和视频解码器30 可以被配置为确定竖直梯度(gv)、水平梯度(gh)、135度对角线梯度(gd1) 和45度对角线梯度(gd2)。此外,为了基于缩放因子来缩放梯度值(g)以产生缩放的梯度值(g’),视频编码器20和视频解码器30可以使用以下方程来缩放梯度值(g):g'=g/num_available_pixels*num_full_pixels,其中num_available_pixels表示窗口中未被填充的像素的数量(例如,窗口中与所重构的块位于虚拟边界同一侧的可用像素的数量),并且num_full_pixel表示窗口中的像素的总数。
视频编码器20和视频解码器30还可以被配置为确定重构的视频数据块的活动索引,基于方向性和活动索引来确定重构的视频数据块的自适应环路滤波器的类别,并将所确定的自适应环路滤波器的类别应用于重构的视频数据块以生成滤波的视频数据块。
在本公开的另一个示例中,视频编码器20和视频解码器30可以被配置为基于缩放的梯度值来确定自适应环路滤波器的类别的几何变换,并且将所确定的自适应环路滤波器的类别与所确定的几何变换一起应用。
在本公开的另一个示例中,对于行缓冲区边界(例如,图8的虚拟边界 716)下方的使用边界上方的像素来执行ALF的块,视频编码器20和视频解码器30可以被配置为将使用边界上方的像素计算的gv、gh、gd1和gd2的部分结果存储在本地缓冲区中。因此,当确定ALF分类时,视频编码器20和视频解码器30可以避免使用填充像素,但是可以使用填充像素应用ALF滤波。
在本公开的另一个示例中,对于视频编码器20和视频解码器30使用填充像素进行ALF分类的样点,可以跳过ALF分类。
1)在一个示例中,类别索引和转置索引的默认值可以被预定义或发信号通知。
2)在另一个示例中,对于不同的序列/图片/条带,类别索引和转置索引的默认值可以不同。
3)在另一个示例中,对于帧间预测的像素,类别索引和转置索引可以从其在不同参考图片中的经运动补偿的块导出。
4)在另一个示例中,除了当前VVC中的类别之外,还可以为这些值分配附加类别。
在本公开的另一个示例中,为了维持ALF的性能,可以维持一些行缓冲区。例如,可以维持与DB和SAO边界上方的ALF分类块(例如,图7中的块708)的高度相等的行数。该数量在序列/图片/条带当中可以是固定的或不同的。例如,可以在序列参数集(SPS)、图片参数集(PPS)、视点参数集和/或条带头中发信号通知行数。
可以在序列参数集(SPS)、图片参数集(PPS)、视点参数集和/或条带头中发信号通知对是启用还是禁用上述方法的指示。
图11是示出可以实施本公开的技术的示例性视频编码器20的框图。图 11是出于解释目的而提供并且不应被认为是对本公开广泛例示和描述的技术的限制。本公开的技术可以适用于各种编解码标准或方法。
处理电路包括视频编码器20,并且视频编码器20被配置为执行本公开描述的示例技术中的一种或多种。下面描述的视频编码器20的单元可以被实施为一个或多个电路或逻辑元件,作为硬件电路的一部分或者作为FPGA的处理器、ASIC的一部分。此外,视频编码器20可以包括附加的或替代的处理器或处理电路以执行这些和其它功能。例如,视频编码器20包括集成电路,并且图11所示的各个单元可以被形成为与电路总线互连的硬件电路块。这些硬件电路块可以是单独的电路块,或者可以将单元中的两者或更多者组合成共同的硬件电路块。硬件电路块可以被形成为形成运算块(诸如算术逻辑单元(ALU)、基本功能单元(EFU))以及逻辑块(诸如AND、OR、NAND、 NOR、XOR、XNOR和其它类似逻辑块)的电路组件的组合。
在一些示例中,图11所示的单元中的一者或多者可以是在处理电路上执行的软件单元。在此类示例中,这些软件单元的目标代码存储在存储器中。操作系统可以使视频编码器20检索目标代码并执行目标代码,这使视频编码器20执行操作以实施示例性技术。在一些示例中,软件单元可以是视频编码器20在启动时执行的固件。因此,视频编码器20是结构组件,该结构组件具有执行示例性技术的硬件或具有在硬件上执行以使硬件专门执行示例性技术的软件和/或固件。
在图11的示例中,视频编码器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的尺寸是2Nx2N,则视频编码器20和视频解码器30可以支持用于帧内预测的2Nx2N或NxN的PU尺寸,以及用于帧间预测的2Nx2N、2NxN、 Nx2N、NxN或类似的对称PU尺寸。视频编码器20和视频解码器30还可以支持用于帧间预测的2NxnU、2NxnD、nLx2N和nRx2N的PU尺寸的非对称分割。
帧间预测处理单元120可以生成用于PU的预测性数据。作为生成用于 PU的预测性数据的一部分,帧间预测处理单元120对PU执行帧间预测。用于PU的预测性数据可以包括PU的预测性块和PU的运动信息。帧间预测处理单元120可以取决于PU是在I条带、P条带还是B条带中来对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和/或GALF滤波操作。滤波器单元114 可以包括ALF单元115,其被配置为执行本公开在上文描述的ALF和GALF 技术。
例如,ALF单元115可以被配置为确定覆盖重构的视频数据块的窗口的梯度值,其中,窗口包括重构的视频数据块的像素和围绕重构的视频数据块的像素;基于窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于梯度值的缩放因子;基于缩放因子缩放梯度值以产生缩放的梯度值,其中,缩放的梯度值指示重构的视频数据块的方向性;确定重构的视频数据块的活动索引;基于方向性和活动索引为重构的视频数据块确定自适应环路滤波器的类别;并且将所确定的自适应环路滤波器的类别应用于重构的视频数据块以生成滤波的视频数据块。在一些示例中,ALF单元115可以被配置为在不使用填充像素的情况下确定梯度值。
在滤波器单元114对重构的编解码块执行一个或多个滤波操作之后,解码的图片缓冲区116可以存储滤波的重构的编解码块。帧间预测处理单元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的变换系数的值的数据。
图12是示出被配置为实施本公开的技术的示例性视频解码器30的框图。图12是出于解释目的而提供并且并非是对本公开广泛例示和描述的技术的限制。
处理电路包括视频解码器30,并且视频解码器30被配置为执行本公开描述的示例技术中的一种或多种。下面描述的视频解码器30的单元可以被实施为一个或多个电路或逻辑元件,作为硬件电路的一部分或者作为FPGA的处理器、ASIC的一部分。此外,视频解码器可以包括附加的或替代的处理器或处理电路以执行这些和其它功能。例如,视频解码器30包括集成电路,并且图12所示的各个单元可以被形成为与电路总线互连的硬件电路块。这些硬件电路块可以是单独的电路块,或者可以将单元中的两者或更多者组合成共同的硬件电路块。硬件电路块可以被形成为形成运算块(诸如算术逻辑单元 (ALU)、基本功能单元(EFU))以及逻辑块(诸如AND、OR、NAND、 NOR、XOR、XNOR和其它类似逻辑块)的电路组件的组合。
在一些示例中,图12所示的单元中的一者或多者可以是在处理电路上执行的软件单元。在此类示例中,这些软件单元的目标代码存储在存储器中。操作系统可以使视频解码器30检索目标代码并执行目标代码,这使视频解码器30执行操作以实施示例性技术。在一些示例中,软件单元可以是视频解码器30在启动时执行的固件。因此,视频解码器30是结构组件,该结构组件具有执行示例性技术的硬件或具有在硬件上执行以使硬件专门执行示例性技术的软件和/或固件。
在图12的示例中,视频解码器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、逆整数变换、逆卡南-洛伊夫变换(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单元161,其被配置为执行本公开在上文描述的ALF和GALF技术。
例如,ALF单元161可以被配置为确定覆盖重构的视频数据块的窗口的梯度值,其中,窗口包括重构的视频数据块的像素和围绕重构的视频数据块的像素;基于窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于梯度值的缩放因子;基于缩放因子缩放梯度值以产生缩放的梯度值,其中,缩放的梯度值指示重构的视频数据块的方向性;确定重构的视频数据块的活动索引;基于方向性和活动索引为重构的视频数据块确定自适应环路滤波器的类别;并且将所确定的自适应环路滤波器的类别应用于重构的视频数据块以生成滤波的视频数据块。在一些示例中,ALF单元161可以被配置为在不使用填充像素的情况下确定梯度值。
在滤波器单元160对重构的编解码块执行一个或多个滤波操作之后,解码的图片缓冲区162可以存储重构的编解码块。解码的图片缓冲区162可以为随后的运动补偿、帧内预测和在显示设备(诸如图1的显示设备32)上的呈现提供参考图片。例如,视频解码器30可以基于解码的图片缓冲区162中的块对其它CU的PU执行帧内预测或帧间预测操作。在一些示例中,视频解码器30可以被配置为不以滤波器单元160处理由帧内预测处理单元166使用的样点。即,在一些示例中,帧内预测处理单元166不使用已使用GALF或 ALF滤波的样点值。
图13是示出用于对视频数据块进行编解码的示例性方法的流程图。具体地,图13示出了用于确定自适应环路滤波器的类别并且应用所确定的自适应环路滤波器的类别的示例性方法。图13的技术可以由视频编码器20和视频解码器30两者执行。尽管关于视频编码器20和视频解码器30(分别参见图 11和图12)进行了描述,但是应当理解,其它设备可以被配置为执行与图 13的方法类似的方法。在一些示例中,图14的技术可以由图11的ALF单元 115和/或图12的ALF单元161来执行。在其它示例中,图13的技术可以由视频编码器20和/或视频解码器30的一个或多个其它结构单元来执行。
在本公开的一个示例中,视频编码器20和/或视频解码器30可以被配置为重构视频数据块以创建重构的视频数据块(800)。视频编码器20和/或视频解码器30还可以被配置为确定覆盖重构的视频数据块的窗口的梯度值,其中,该窗口包括重构的视频数据块的像素和围绕重构的视频数据块的像素 (802),并且基于窗口中的填充像素的数量来确定用于梯度值的缩放因子 (804)。换句话说,视频编码器20和视频解码器30可以基于与所重构的块在虚拟边界的相同尺寸上的可用像素的数量(即,基于未被填充的像素的数量)来确定用于梯度值的缩放因子。视频编码器20和/或视频解码器30然后可以基于缩放因子缩放梯度值以产生缩放的梯度值,其中,缩放的梯度值指示重构的视频数据块的方向性(806)。
视频编码器20和/或视频解码器30还可以被配置为确定重构的视频数据块的活动索引(808),并且基于方向性和活动索引来确定重构的视频数据块的自适应环路滤波器的类别(810)。视频编码器20和/或视频解码器30然后可以将所确定的自适应环路滤波器的类别应用于重构的视频数据块以生成滤波的视频数据块(812)。
在本公开的一个示例中,重构的视频数据块是4x4亮度视频数据块,并且其中,该窗口是8x8窗口。
在本公开的另一个示例中,为了确定梯度值,视频编码器20和/或视频解码器30可以被配置为在不使用填充像素的情况下确定梯度值。
在本公开的另一个示例中,为了确定梯度值(g),视频编码器20和/或视频解码器30可以被配置为确定竖直梯度值(gv)、水平梯度值(gh)、135 度对角线梯度值(gd1)和45度对角线梯度值(gd2)。
在本公开的另一个示例中,为了基于缩放因子来缩放梯度值(g)以产生缩放的梯度值(g’),视频编码器20和/或视频解码器30可以被配置为使用以下方程来缩放梯度值(g):g’=g/num_available_pixels*num_full_pixels,其中 num_available_pixels表示该窗口中未被填充的像素的数量,并且num_full_pixel表示该窗口中的像素的总数。
在本公开的另一个示例中,视频编码器20和/或视频解码器30可以被配置为基于缩放的梯度值来确定自适应环路滤波器的类别的几何变换,并且将所确定的自适应环路滤波器的类别与所确定的几何变换一起应用。
在本公开的另一个示例中,视频编码器20可以被配置为将滤波的视频数据块存储在解码的图片缓冲区中,并且使用滤波的视频数据块对后续视频数据块进行编码。同样,视频解码器30可以被配置为将滤波的视频数据块存储在解码的图片缓冲区中,并且使用滤波的视频数据块对后续视频数据块进行解码。
出于说明目的,已经关于HEVC、HEVC的扩展和正开发的VVC标准描述了本公开的某些方面。然而,本公开描述的技术可以用于其它视频编解码过程,包括尚未开发的其它标准或专有视频编解码过程。
如本公开所描述的,视频编解码器可以指代视频编码器或视频解码器。类似地,视频编解码单元可以指代视频编码器或视频解码器。同样,视情况而定,视频编解码可以指代视频编码或视频解码。在本公开中,短语“基于”可以指示仅基于、至少部分基于或以某种方式基于。本公开可以使用术语“视频单元”或“视频块”或“块”来指代一个或多个样点块以及用于对一个或多个样点块的样点进行编解码的语法结构。视频单元的示例性类型可以包括CTU、 CU、PU、变换单元(TU)、宏块、宏块分割等等。在一些上下文中,对PU 的讨论可以与宏块或宏块分割的讨论互换。视频块的示例性类型可以包括编解码树块、编解码块和其它类型的视频数据块。
本公开的技术可以应用于支持多种多媒体应用中的任一种的视频编解码,该多媒体应用诸如空中电视广播、有线电视发送、卫星电视发送、互联网流视频发送,诸如通过HTTP的动态自适应流(DASH)、被编码到数据存储介质上的数字视频、被存储在数据存储介质上的数字视频的解码或其它应用。
应当认识到,取决于示例,本文描述的任何技术的某些动作或事件可以以不同顺序执行,可以被添加、合并或完全排除(例如,并非所有描述的动作或事件都是技术实践所必需的)。此外,在某些示例中,动作或事件可以同时执行,例如,通过多线程处理、中断处理或多个处理器,而不是顺序执行。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实施。如果以软件实施,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或在其上发送并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质(其对应于诸如数据存储介质之类的有形介质)或通信介质(其包括促进例如根据通信协议将计算机程序从一个地方转移到另一个地方的任何介质)。以此方式,计算机可读介质一般可对应于 (1)非暂时性有形计算机可读存储介质,或(2)通信介质(诸如,信号或载波)。数据存储介质可为可由一个或多个计算机或一个或多个处理电路访问以检索用于实施本公开中所描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、 EEPROM、CD-ROM或其它光盘存储、磁盘存储介质或其它磁存储设备、快闪存储器或者可以用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机访问的任何其它介质。而且,将任何连接适当地称为计算机可读介质。例如,如果使用同轴电缆、光缆、双绞线、数字订户线(DSL)或无线技术(诸如红外线、无线电及微波)从网站、服务器或其它远程源发送指令,则在介质的定义中包括同轴电缆、光缆、双绞线、DSL或无线技术(诸如红外线、无线电及微波)。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是针对非暂时性、有形存储介质。如本文中使用的磁盘及光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘借助于激光光学地再现数据。上述组合也应包括于计算机可读介质的范围内。
本公开描述的功能性可以由固定功能和/或可编程处理电路来执行。例如,指令可以由固定功能和/或可编程处理电路来执行。此类处理电路可以包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或分立逻辑电路。因此,如本文所使用的术语“处理器”可以指代任何前述结构或者适合于实施本文描述的技术的任何其它结构。另外,在一些示例中,本文描述的功能性可以被提供于被配置用于编码和解码或者被结合在组合编解码器中的专用硬件和/或软件模块内。同样,该技术可以在一个或多个电路或逻辑元件中完全实施。处理电路可以通过各种方式耦合到其它组件。例如,处理电路可以经由内部设备互连、有线或无线网络连接或另一种通信介质耦合到其它组件。
本公开的技术可实施于广泛多种设备或装置中,包括无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本公开中描述各种组件、模块或单元以强调被配置为执行所公开技术的设备的功能方面,但未必需要由不同硬件单元来实现。更确切地,如上文所描述,可将各种单元组合于编解码器硬件单元中,或由一群互操作性硬件单元(包括如上文所描述的一个或多个处理器)结合合适软件和/或固件来提供各种单元。
已经描述了各种示例。这些和其它示例在以下权利要求的范围内。

Claims (23)

1.一种被配置为对视频数据进行解码的装置,所述装置包括:
存储器,所述存储器被配置为存储64个视频数据块;以及
一个或多个处理器,所述一个或多个处理器在电路中实施,与所述存储器进行通信,所述一个或多个处理器被配置为:
重构所述视频数据块以创建重构的视频数据块;
确定覆盖所述重构的视频数据块的窗口的梯度值,其中,所述窗口包括所述重构的视频数据块的像素和围绕所述重构的视频数据块的像素;
基于所述窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于所述梯度值的缩放因子;
基于所述缩放因子缩放所述梯度值以产生缩放的梯度值,其中,所述缩放的梯度值指示所述重构的视频数据块的方向性;
确定所述重构的视频数据块的活动索引;
基于所述方向性和所述活动索引为所述重构的视频数据块确定自适应环路滤波器的类别;
将所确定的自适应环路滤波器的类别应用于所述重构的视频数据块以生成滤波的视频数据块;
将所述滤波的视频数据块存储在解码的图片缓冲区中;并且
使用所述滤波的视频数据块对后续视频数据块进行解码。
2.根据权利要求1所述的装置,其中,所述重构的视频数据块是4x4亮度视频数据块,并且其中,所述窗口是8x8窗口。
3.根据权利要求1所述的装置,其中,为了确定所述梯度值,所述一个或多个处理器被配置为在不使用填充像素的情况下确定所述梯度值。
4.根据权利要求1所述的装置,其中,为了确定所述梯度值(g),所述一个或多个处理器还被配置为确定竖直梯度值(gv)、水平梯度值(gh)、135度对角线梯度值(gd1)和45度对角线梯度值(gd2)。
5.根据权利要求4所述的装置,其中,为了基于所述缩放因子缩放所述梯度值(g)以产生所述缩放的梯度值(g’),所述一个或多个处理器被配置为:
使用以下方程缩放所述梯度值(g):
g’=g/num_available_pixels*num_full_pixels,其中num_available_pixels表示所述窗口中未被填充的像素的数量,并且num_full_pixel表示所述窗口中的像素的总数。
6.根据权利要求5所述的装置,其中,所述一个或多个处理器还被配置为:
将所述缩放因子四舍五入为整数。
7.根据权利要求1所述的装置,其中,所述一个或多个处理器还被配置为:
基于所述缩放的梯度值来确定所述自适应环路滤波器的类别的几何变换,并且
其中,为了应用所确定的自适应环路滤波器的类别,所述一个或多个处理器还被配置为将所确定的自适应环路滤波器的类别与所确定的几何变换一起应用。
8.根据权利要求1所述的装置,还包括:
显示器,所述显示器被配置为显示包括所述滤波的视频数据块的图片。
9.一种对视频数据进行解码的方法,所述方法包括:
重构视频数据块以创建重构的视频数据块;
确定覆盖所述重构的视频数据块的窗口的梯度值,其中,所述窗口包括所述重构的视频数据块的像素和围绕所述重构的视频数据块的像素;
基于所述窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于所述梯度值的缩放因子;
基于所述缩放因子缩放所述梯度值以产生缩放的梯度值,其中,所述缩放的梯度值指示所述重构的视频数据块的方向性;
确定所述重构的视频数据块的活动索引;
基于所述方向性和所述活动索引为所述重构的视频数据块确定自适应环路滤波器的类别;
将所确定的自适应环路滤波器的类别应用于所述重构的视频数据块以生成滤波的视频数据块;
将所述滤波的视频数据块存储在解码的图片缓冲区中;并且
使用所述滤波的视频数据块对后续视频数据块进行解码。
10.根据权利要求9所述的方法,其中,所述重构的视频数据块是4x4亮度视频数据块,并且其中,所述窗口是8x8窗口。
11.根据权利要求9所述的方法,其中确定所述梯度值包括:
在不使用填充像素的情况下确定所述梯度值。
12.根据权利要求9所述的方法,其中确定所述梯度值(g)包括:
确定竖直梯度值(gv)、水平梯度值(gh)、135度对角线梯度值(gd1)和45度对角线梯度值(gd2)。
13.根据权利要求12所述的方法,其中,基于所述缩放因子缩放所述梯度值(g)以产生所述缩放的梯度值(g’)包括:
使用以下方程缩放所述梯度值(g):
g’=g/num_available_pixels*num_full_pixels,其中num_available_pixels表示所述窗口中未被填充的像素的数量,并且num_full_pixel表示所述窗口中的像素的总数。
14.根据权利要求13所述的方法,还包括:
将所述缩放因子四舍五入为整数。
15.根据权利要求9所述的方法,还包括:
基于所述缩放的梯度值来确定所述自适应环路滤波器的类别的几何变换,并且
其中,应用所确定的自适应环路滤波器的类别包括将所确定的自适应环路滤波器的类别与所确定的几何变换一起应用。
16.根据权利要求9所述的方法,还包括:
显示包括所述滤波的视频数据块的图片。
17.一种被配置为对视频数据进行解码的装置,所述装置包括:
用于重构视频数据块以创建重构的视频数据块的部件;
用于确定覆盖所述重构的视频数据块的窗口的梯度值的部件,其中,所述窗口包括所述重构的视频数据块的像素和围绕所述重构的视频数据块的像素;
用于基于所述窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于所述梯度值的缩放因子的部件;
用于基于所述缩放因子缩放所述梯度值以产生缩放的梯度值的部件,其中,所述缩放的梯度值指示所述重构的视频数据块的方向性;
用于确定所述重构的视频数据块的活动索引的部件;
用于基于所述方向性和所述活动索引为所述重构的视频数据块确定自适应环路滤波器的类别的部件;
用于将所确定的自适应环路滤波器的类别应用于所述重构的视频数据块以生成滤波的视频数据块的部件;
用于将所述滤波的视频数据块存储在解码的图片缓冲区中的部件;以及
用于使用所述滤波的视频数据块对后续视频数据块进行解码的部件。
18.根据权利要求17所述的装置,其中,用于确定所述梯度值的所述部件包括:
用于在不使用填充像素的情况下确定所述梯度值的部件。
19.根据权利要求17所述的装置,其中,用于确定所述梯度值(g)的所述部件包括:
用于确定竖直梯度值(gv)、水平梯度值(gh)、135度对角线梯度值(gd1)和45度对角线梯度值(gd2)的部件。
20.根据权利要求19所述的装置,其中,用于基于所述缩放因子缩放所述梯度值(g)以产生所述缩放的梯度值(g’)的所述部件包括:
用于使用以下方程缩放所述梯度值(g)的部件:
g’=g/num_available_pixels*num_full_pixels,其中num_available_pixels表示所述窗口中未被填充的像素的数量,并且num_full_pixel表示所述窗口中的像素的总数。
21.根据权利要求17所述的装置,还包括:
用于基于所述缩放的梯度值来确定所述自适应环路滤波器的类别的几何变换的部件,并且
其中,用于应用所确定的自适应环路滤波器的类别的所述部件包括用于将所确定的自适应环路滤波器的类别与所确定的几何变换一起应用的部件。
22.根据权利要求17所述的装置,还包括:
用于显示包括所述滤波的视频数据块的图片的部件。
23.一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使被配置为对视频数据进行解码的一个或多个处理器:
重构所述视频数据块以创建重构的视频数据块;
确定覆盖所述重构的视频数据块的窗口的梯度值,其中,所述窗口包括所述重构的视频数据块的像素和围绕所述重构的视频数据块的像素;
基于所述窗口中与所重构的块位于虚拟边界的同一侧的可用像素的数量来确定用于所述梯度值的缩放因子;
基于所述缩放因子缩放所述梯度值以产生缩放的梯度值,其中,所述缩放的梯度值指示所述重构的视频数据块的方向性;
确定所述重构的视频数据块的活动索引;
基于所述方向性和所述活动索引为所述重构的视频数据块确定自适应环路滤波器的类别;
将所确定的自适应环路滤波器的类别应用于所述重构的视频数据块以生成滤波的视频数据块;
将所述滤波的视频数据块存储在解码的图片缓冲区中;并且
使用所述滤波的视频数据块对后续视频数据块进行解码。
CN201980082314.1A 2018-12-21 2019-12-19 对视频数据进行解码的方法、装置及存储介质 Active CN113196752B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862784287P 2018-12-21 2018-12-21
US62/784,287 2018-12-21
US16/718,552 2019-12-18
US16/718,552 US11044473B2 (en) 2018-12-21 2019-12-18 Adaptive loop filtering classification in video coding
PCT/US2019/067569 WO2020132294A1 (en) 2018-12-21 2019-12-19 Adaptive loop filtering classification in video coding

Publications (2)

Publication Number Publication Date
CN113196752A CN113196752A (zh) 2021-07-30
CN113196752B true CN113196752B (zh) 2022-04-26

Family

ID=71097923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980082314.1A Active CN113196752B (zh) 2018-12-21 2019-12-19 对视频数据进行解码的方法、装置及存储介质

Country Status (5)

Country Link
US (1) US11044473B2 (zh)
EP (1) EP3900336A1 (zh)
CN (1) CN113196752B (zh)
AR (1) AR117455A1 (zh)
WO (1) WO2020132294A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11159791B2 (en) * 2019-03-16 2021-10-26 Mediatek Inc. Method and apparatus for signaling adaptive loop filter parameters in video coding
WO2020249124A1 (en) 2019-06-14 2020-12-17 Beijing Bytedance Network Technology Co., Ltd. Handling video unit boundaries and virtual boundaries based on color format
WO2020256467A1 (ko) * 2019-06-19 2020-12-24 한국전자통신연구원 비디오 영상 부/복호화를 위한 가상 경계 시그널링 방법 및 장치
CN117478878A (zh) * 2019-07-09 2024-01-30 北京字节跳动网络技术有限公司 用于自适应环路滤波的样点确定
JP7291845B2 (ja) 2019-07-11 2023-06-15 北京字節跳動網絡技術有限公司 適応ループフィルタリングにおけるサンプルパディング
US11115951B2 (en) * 2019-07-12 2021-09-07 Qualcomm Incorporated Virtual boundary marking techniques in beamformed wireless communications
WO2021008546A1 (en) 2019-07-15 2021-01-21 Beijing Bytedance Network Technology Co., Ltd. Accessing samples across video unit boundaries in adaptive loop filtering
CN114503594B (zh) 2019-09-22 2024-04-05 北京字节跳动网络技术有限公司 自适应环路滤波中样点填充的选择性应用
EP4022910A4 (en) 2019-09-27 2022-11-16 Beijing Bytedance Network Technology Co., Ltd. ADAPTIVE LOOP FILTERING BETWEEN DIFFERENT VIDEO UNITS
WO2021068906A1 (en) 2019-10-10 2021-04-15 Beijing Bytedance Network Technology Co., Ltd. Padding process at unavailable sample locations in adaptive loop filtering
US11425405B2 (en) * 2019-11-15 2022-08-23 Qualcomm Incorporated Cross-component adaptive loop filter in video coding
WO2021133236A1 (en) * 2019-12-24 2021-07-01 Telefonaktiebolaget Lm Ericsson (Publ) Virtual boundary processing for adaptive loop filtering
US11743459B2 (en) 2020-09-29 2023-08-29 Qualcomm Incorporated Filtering process for video coding
US20230379460A1 (en) * 2020-09-29 2023-11-23 Telefonaktiebolaget Lm Ericsson (Publ) Filter strength control for adaptive loop filtering
CN113132740A (zh) * 2021-03-25 2021-07-16 中山大学 基于自适应环路滤波重建帧的方法、系统及存储介质
WO2024017010A1 (en) * 2022-07-20 2024-01-25 Mediatek Inc. Method and apparatus for adaptive loop filter with alternative luma classifier for video coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017082698A1 (ko) * 2015-11-11 2017-05-18 삼성전자 주식회사 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치
WO2018102017A1 (en) * 2016-12-01 2018-06-07 Google Llc Restoration in video coding using domain transform recursive filters
CN108605127A (zh) * 2016-02-15 2018-09-28 高通股份有限公司 用于视频译码的滤波器的几何变换

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3679426B2 (ja) * 1993-03-15 2005-08-03 マサチューセッツ・インスティチュート・オブ・テクノロジー 画像データを符号化して夫々がコヒーレントな動きの領域を表わす複数の層とそれら層に付随する動きパラメータとにするシステム
US7394856B2 (en) * 2003-09-19 2008-07-01 Seiko Epson Corporation Adaptive video prefilter
US8295633B2 (en) * 2007-04-04 2012-10-23 Samsung Electronics Co., Ltd. System and method for an adaptive de-blocking filter after decoding of compressed digital video
KR20100106993A (ko) 2007-12-27 2010-10-04 백스터 인터내셔널 인코포레이티드 다중 챔버 용기
JP2012213128A (ja) * 2011-03-24 2012-11-01 Sony Corp 画像処理装置および方法
US9641866B2 (en) * 2011-08-18 2017-05-02 Qualcomm Incorporated Applying partition-based filters
US9167269B2 (en) * 2011-10-25 2015-10-20 Qualcomm Incorporated Determining boundary strength values for deblocking filtering for video coding
US20130128986A1 (en) 2011-11-23 2013-05-23 Mediatek Inc. Method and Apparatus of Slice Boundary Padding for Loop Filtering
US8983218B2 (en) * 2012-04-11 2015-03-17 Texas Instruments Incorporated Virtual boundary processing simplification for adaptive loop filtering (ALF) in video coding
US9596461B2 (en) * 2012-11-26 2017-03-14 Qualcomm Incorporated Loop filtering across constrained intra block boundaries in video coding
US9906790B2 (en) * 2014-03-14 2018-02-27 Qualcomm Incorporated Deblock filtering using pixel distance
US10057574B2 (en) * 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
US20160241881A1 (en) * 2015-02-13 2016-08-18 Mediatek Inc. Method and Apparatus of Loop Filters for Efficient Hardware Implementation
CN111183646B (zh) * 2017-09-20 2023-08-04 Vid拓展公司 用于编码的方法和装置、用于解码的方法和装置以及存储介质
US10721469B2 (en) 2017-11-28 2020-07-21 Qualcomm Incorporated Line buffer reduction for adaptive loop filtering in video coding
US20190281273A1 (en) * 2018-03-08 2019-09-12 Mediatek Inc. Adaptive loop filtering method for reconstructed projection-based frame that employs projection layout of 360-degree virtual reality projection
US11094088B2 (en) * 2018-08-31 2021-08-17 Mediatek Inc. Method and apparatus of in-loop filtering for virtual boundaries in video coding
US11910024B2 (en) * 2019-03-11 2024-02-20 Qualcomm Incorporated Boundary handling for adaptive loop filtering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017082698A1 (ko) * 2015-11-11 2017-05-18 삼성전자 주식회사 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치
CN108605127A (zh) * 2016-02-15 2018-09-28 高通股份有限公司 用于视频译码的滤波器的几何变换
WO2018102017A1 (en) * 2016-12-01 2018-06-07 Google Llc Restoration in video coding using domain transform recursive filters

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CE2.3 and CE2.4: Fixed filters, temporal filters, CU-level control and low-latency encoder for ALF;Nan Hu;《Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11》;20181012;全文 *
CE3-related: Boundary PDPC;Mohammed Golam Sarwer;《Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11》;20181012;全文 *

Also Published As

Publication number Publication date
CN113196752A (zh) 2021-07-30
US20200204801A1 (en) 2020-06-25
AR117455A1 (es) 2021-08-04
EP3900336A1 (en) 2021-10-27
US11044473B2 (en) 2021-06-22
WO2020132294A1 (en) 2020-06-25

Similar Documents

Publication Publication Date Title
CN113196752B (zh) 对视频数据进行解码的方法、装置及存储介质
CN111373752B (zh) 译码视频数据的方法和设备以及非暂时性计算机可读介质
KR102382410B1 (ko) 비디오 코딩에서의 포지션-종속 예측 결합들
CN110073661B (zh) 用于编码和解码视频数据的方法和装置
CN109716765B (zh) 用于视频译码中的帧内预测的经改进内插滤波器
CN108293119B (zh) 在视频译码中用于非正方形变换单元的变换系数的修改
US20190238845A1 (en) Adaptive loop filtering on deblocking filter results in video coding
CN113853784B (zh) 用于视频译码的多个自适应环路滤波器集合的方法和装置
CN112449753A (zh) 利用广角帧内预测的位置相关帧内预测组合
TW201904285A (zh) 在視訊寫碼中之增強的解塊濾波設計
KR20200139163A (ko) 각도 모드들로 연장된 포지션 종속 인트라 예측 결합
WO2019010217A1 (en) ADAPTIVE LOOP FILTER WITH ENHANCED CLASSIFICATION PROCESSES
CN110999291A (zh) 用于划分视频数据的帧间预测片段中的视频块的系统和方法
WO2018132475A1 (en) Intra prediction techniques for video coding
EP3459245A1 (en) Confusion of multiple filters in adaptive loop filtering in video coding
CN111886861A (zh) 根据图像编码系统中的块划分结构的图像解码方法和设备
CN111602395B (zh) 用于视频译码的量化组
CN114731415A (zh) 针对多类型树块结构的合并估计区域
US10764605B2 (en) Intra prediction for 360-degree video
CN113924776A (zh) 使用不同的色度格式的具有未经滤波的参考样本的视频译码
CN113545051A (zh) 使用块大小限制的视频数据块的重构
CN116158080A (zh) 多个自适应环路滤波器集合
CN112673636A (zh) 将运动向量四舍五入以自适应运动向量差分辨率及提高视频译码中的运动向量存储精度
CN112913245A (zh) 视频译码中的块内复制预测限制
CN114868387A (zh) 在进行视频译码时对块的色度变换跳过和联合色度译码启用

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
GR01 Patent grant
GR01 Patent grant