CN113243111B - 对视频数据进行滤波的方法和设备 - Google Patents

对视频数据进行滤波的方法和设备 Download PDF

Info

Publication number
CN113243111B
CN113243111B CN201980082273.6A CN201980082273A CN113243111B CN 113243111 B CN113243111 B CN 113243111B CN 201980082273 A CN201980082273 A CN 201980082273A CN 113243111 B CN113243111 B CN 113243111B
Authority
CN
China
Prior art keywords
alf
list
video
sets
block
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
CN201980082273.6A
Other languages
English (en)
Other versions
CN113243111A (zh
Inventor
胡楠
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 CN113243111A publication Critical patent/CN113243111A/zh
Application granted granted Critical
Publication of CN113243111B publication Critical patent/CN113243111B/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/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/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/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

描述了用于视频译码中的自适应环路滤波的技术。视频译码器被配置为:确定可用自适应环路滤波器(ALF)集合;以及进行以下操作中的至少一项操作:发信号通知指示ALF集合列表的尺寸的信息;或者接收指示ALF集合列表的尺寸的信息。视频译码器被配置为:基于所指示的ALF集合列表的尺寸来构造ALF集合列表;基于所构造的ALF集合列表来确定用于当前块的ALF集合;以及基于所确定的ALF集合来执行自适应环路滤波。

Description

对视频数据进行滤波的方法和设备
本申请要求于2019年12月17日递交的美国申请No.16/717,530的优先权,该申请要求于2018年12月20日递交的美国临时申请No.62/783,090 的权益,上述申请的全部内容通过引用的方式被并入本文中。
技术领域
本公开内容涉及视频编码和视频解码。
背景技术
数字视频能力可以被合并到各种各样的设备中,包括数字电视机、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型计算机或台式计算机、平板计算机、电子书阅读器、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话(所谓的“智能电话”)、视频电话会议设备、视频流设备等。数字视频设备实现视频压缩技术(诸如在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4(第10部分,高级视频译码(AVC))、高效率视频译码(HEVC) 标准、以及这样的标准的扩展所定义的标准中描述的那些技术)。通过实现这样的视频压缩技术,视频设备可以更高效地发送、接收、编码、解码和/ 或存储数字视频信息。
视频压缩技术执行空间(帧内图片)预测和/或时间(帧间图片)预测以减少或去除在视频序列中固有的冗余。对于基于块的视频译码,视频切片(即,视频帧或视频帧的一部分)可以被分割为视频块,视频块还可以被称为树块、译码单元(CU)和/或译码节点。图片的经帧内译码(I)的切片中的视频块是使用相对于相同图片中的相邻块中的参考样本的空间预测来编码的。图片的经帧间译码(P或B)的切片中的视频块可以使用相对于相同图片中的相邻块中的参考样本的空间预测或者相对于其它参考图片中的参考样本的时间预测。图片可以被称为帧,以及参考图片可以被称为参考帧。
空间或时间预测产生用于要被译码的块的预测块。残差数据表示在要被译码的原始块与预测块之间的像素差。经帧间译码的块是根据指向形成预测块的参考样本的块的运动矢量、以及指示经译码的块和预测块之间的差的残差数据来编码的。经帧内译码的块是根据帧内译码模式和残差数据来编码的。为了进一步压缩,可以将残差数据从像素域变换到变换域,从而产生残差变换系数,残差变换系数然后可以被量化。可以扫描初始以二维阵列排列的经量化的变换系数以产生变换系数的一维向量,以及可以应用熵译码来实现甚至更多的压缩。
发明内容
概括而言,本公开内容描述了用于视频译码中的自适应环路滤波(ALF) 的技术。本公开内容的技术可以与各种各样的译码技术一起使用,或者是任何将来的视频译码标准(诸如H.266/VVC(通用视频译码))中的高效译码工具。
在一些示例中,在对先前块进行滤波时使用的ALF集合(还被称为ALF 系数)可以用作用于对当前块进行滤波的ALF集合的预测器。基于先前块的ALF集合对用于当前块的ALF集合的预测被称为用于ALF的时间预测。本公开内容描述了按照确保在可用于视频编码器和视频解码器的ALF集合中不存在不匹配的方式来利用先前块、切片或图片的ALF集合的示例实际应用。
在一个示例中,本公开内容描述了一种对视频数据进行滤波的方法,所述方法包括:确定被存储在缓冲器中的能够用于对当前图片的当前块执行自适应环路滤波的可用自适应环路滤波器(ALF)集合,其中,所述ALF 集合包括先前译码的块的ALF集合,并且其中,所述可用ALF集合包括具有小于或等于所述当前块的时间层标识值的时间层标识值的ALF集合;接收指示ALF集合列表的尺寸的信息;基于所指示的所述ALF集合列表的尺寸,根据所确定的可用ALF集合来构造所述ALF集合列表;基于所构造的 ALF集合列表来确定用于所述当前块的ALF集合;以及基于所确定的ALF 集合来对所述当前块执行自适应环路滤波。
在一个示例中,本公开内容描述了一种用于对视频数据进行滤波的设备,所述设备包括:缓冲器,其被配置为存储先前译码的块的自适应环路滤波器(ALF)集合;以及处理电路,其被配置为:确定被存储在所述缓冲器中的能够用于对当前图片的当前块执行自适应环路滤波的可用ALF集合,其中,所述可用ALF集合包括具有小于或等于所述当前块的时间层标识值的时间层标识值的ALF集合;接收指示ALF集合列表的尺寸的信息;基于所指示的所述ALF集合列表的尺寸,根据所确定的可用ALF集合来构造所述ALF集合列表;基于所构造的ALF集合列表来确定用于所述当前块的 ALF集合;以及基于所确定的ALF集合来对所述当前块执行自适应环路滤波。
在一个示例中,本公开内容描述了一种对视频数据进行滤波的方法,所述方法包括:确定被存储在缓冲器中的能够用于对当前图片的当前块执行自适应环路滤波的可用自适应环路滤波器(ALF)集合,其中,所述ALF 集合包括先前译码的块的ALF集合,并且其中,所述可用ALF集合包括具有小于或等于所述当前块的时间层标识值的时间层标识值的ALF集合;发信号通知指示ALF集合列表的尺寸的信息;基于所指示的所述ALF集合列表的尺寸,根据所确定的可用ALF集合来构造所述ALF集合列表;基于所构造的ALF集合列表来确定用于所述当前块的ALF集合;以及基于所确定的ALF集合来对所述当前块执行自适应环路滤波。
在一个示例中,本公开内容描述了一种用于对视频数据进行滤波的设备,所述设备包括:缓冲器,其被配置为存储先前译码的块的自适应环路滤波器(ALF)集合;以及处理电路,其被配置为:确定被存储在所述缓冲器中的能够用于对当前图片的当前块执行自适应环路滤波的可用ALF集合,其中,所述可用ALF集合包括具有小于或等于所述当前块的时间层标识值的时间层标识值的ALF集合;发信号通知指示ALF集合列表的尺寸的信息;基于所指示的所述ALF集合列表的尺寸,根据所确定的可用ALF集合来构造所述ALF集合列表;基于所构造的ALF集合列表来确定用于所述当前块的ALF集合;以及基于所确定的ALF集合来对所述当前块执行自适应环路滤波。
在一个示例中,本公开内容描述了一种在其上存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得一个或多个处理器进行以下操作:确定被存储在缓冲器中的能够用于对当前图片的当前块执行自适应环路滤波的可用自适应环路滤波器(ALF)集合,其中,所述ALF集合包括先前译码的块的ALF集合,并且其中,所述可用ALF集合包括具有小于或等于所述当前块的时间层标识值的时间层标识值的ALF集合;接收指示 ALF集合列表的尺寸的信息;基于所指示的所述ALF集合列表的尺寸,根据所确定的可用ALF集合来构造所述ALF集合列表;基于所构造的ALF 集合列表来确定用于所述当前块的ALF集合;以及基于所确定的ALF集合来对所述当前块执行自适应环路滤波。
在一个示例中,本公开内容描述了一种在其上存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得一个或多个处理器进行以下操作:确定被存储在缓冲器中的能够用于对当前图片的当前块执行自适应环路滤波的可用自适应环路滤波器(ALF)集合,其中,所述ALF集合包括先前译码的块的ALF集合,并且其中,所述可用ALF集合包括具有小于或等于所述当前块的时间层标识值的时间层标识值的ALF集合;发信号通知指示ALF集合列表的尺寸的信息;基于所指示的所述ALF集合列表的尺寸,根据所确定的可用ALF集合来构造所述ALF集合列表;基于所构造的 ALF集合列表来确定用于所述当前块的ALF集合;以及基于所确定的ALF 集合来对所述当前块执行自适应环路滤波。
在一个示例中,本公开内容描述了一种用于对视频数据进行滤波的设备,所述设备包括:用于确定被存储在缓冲器中的能够用于对当前图片的当前块执行自适应环路滤波的可用自适应环路滤波器(ALF)集合的单元,其中,所述ALF集合包括先前译码的块的ALF集合,并且其中,所述可用 ALF集合包括具有小于或等于所述当前块的时间层标识值的时间层标识值的ALF集合;用于接收指示ALF集合列表的尺寸的信息的单元;用于基于所指示的所述ALF集合列表的尺寸,根据所确定的可用ALF集合来构造所述ALF集合列表的单元;用于基于所构造的ALF集合列表来确定用于所述当前块的ALF集合的单元;以及用于基于所确定的ALF集合来对所述当前块执行自适应环路滤波的单元。
在一个示例中,本公开内容描述了一种用于对视频数据进行滤波的设备,所述设备包括:用于确定被存储在缓冲器中的能够用于对当前图片的当前块执行自适应环路滤波的可用自适应环路滤波器(ALF)集合的单元,其中,所述ALF集合包括先前译码的块的ALF集合,并且其中,所述可用 ALF集合包括具有小于或等于所述当前块的时间层标识值的时间层标识值的ALF集合;用于发信号通知指示ALF集合列表的尺寸的信息的单元;用于基于所指示的所述ALF集合列表的尺寸,根据所确定的可用ALF集合来构造所述ALF集合列表的单元;用于基于所构造的ALF集合列表来确定用于所述当前块的ALF集合的单元;以及用于基于所确定的ALF集合来对所述当前块执行自适应环路滤波的单元。
在附图和下文的描述中阐述了一个或多个示例的细节。根据描述、附图和权利要求,其它特征、目的和优势将是显而易见的。
附图说明
图1是示出可以利用在本公开内容中描述的技术的示例视频编码和解码系统的框图。
图2是示出示例四叉树二叉树(QTBT)结构的概念图。
图3是示出与在图2中所示的QTBT结构相对应的译码树单元(CTU) 的概念图。
图4是示出用于ALF参数和时间层ID信息的存储器存储的示例的框图。
图5是示出可以实现在本公开内容中描述的技术的示例视频编码器的框图。
图6是示出可以实现在本公开内容中描述的技术的示例视频解码器的框图。
图7示出了用于执行本公开内容的技术的滤波器单元的示例实现。
图8是示出对视频数据进行滤波的示例方法的流程图。
图9是示出对视频数据进行滤波的另一示例方法的流程图。
具体实施方式
本公开内容描述了与滤波操作相关的技术,这些技术可以在后处理阶段中使用、作为环路内译码的一部分使用或在视频译码的预测阶段中使用。视频译码(coding)通常涉及从相同图片中的已经被译码的视频数据块(即帧内预测)或不同图片中的已经被译码的视频数据块(即帧间预测)来预测视频数据块。在一些情况下,视频编码器还通过将预测块与原始块进行比较来计算残差数据。因此,残差数据表示预测块与原始块之间的差。视频编码器对残差数据进行变换和量化,以及在经编码的比特流中发信号通知经变换和经量化的残差数据。视频解码器将残差数据与预测块相加,以产生经重构的视频块,与单独的预测块相比,经重构的视频块更紧密地匹配原始视频块。
为了进一步提高经解码的视频的质量,视频解码器可以对经重构的视频块执行一个或多个滤波操作。这些滤波操作的示例包括去块滤波、样本自适应偏移(SAO)滤波和自适应环路滤波(ALF)。用于这些滤波操作的参数可以由视频编码器确定以及在经编码的视频比特流中显式地发信号通知,或者可以由视频解码器隐式地确定,而不需要在经编码的视频比特流中显式地发信号通知这些参数。
本公开内容描述了与被称为“自适应环路滤波器(ALF)”的滤波方法相关的技术。ALF可以在后处理阶段中使用、用于环路内译码、或在预测过程中使用。
如在本公开内容中所使用的,术语视频译码通常指代视频编码 (encoding)或视频解码(decoding)。类似地,术语视频译码器通常可以指代视频编码器或视频解码器。此外,在本公开内容中描述的关于视频解码的某些技术还可以应用于视频编码,反之亦然。例如,视频编码器和视频解码器经常被配置为执行相同的过程或者互易的过程。此外,视频编码器通常执行视频解码,作为确定如何对视频数据进行编码的过程的一部分。例如,本公开内容的视频编码设备可以实现解码环路或重构环路。
如上所述,为了提高质量,视频解码器可以应用自适应环路滤波来对经重构的块进行滤波以及生成经滤波的重构块。在一些示例中,经滤波的重构块可以用作用于对后续块进行解码的参考块。在这样的情况下,自适应环路滤波可以被称为环路内滤波。对于环路内滤波,视频编码器可以类似地对由视频编码器重构的经重构的块应用自适应环路滤波,使得由视频编码器用于对后续块进行编码的参考块与由视频解码器用于对后续块进行解码的参考块相同。在一些示例中,经滤波的重构块可以不用作用于对后续块进行解码的参考块。而是,未经滤波的重构块可以用作参考块。在这样的情况下,自适应环路滤波可以被称为后滤波。
用于执行ALF的一种示例方式是视频编码器将ALF集合(还被称为 ALF系数或ALF参数)发信号通知给视频解码器。作为一个示例,视频编码器可以如下确定ALF集合h(k,l),k=-K,…,K,l,以及可以根据以下等式来对ALF集合进行量化:f(k,l)=round(normFactor*h(k,l))。在视频解码器中,视频解码器可以如下将滤波器集合f(k,l)应用于经重构的块R(i,j):
Figure BDA0003111869120000071
其中i和j是像素在块内的坐标。
发信号通知ALF集合可能需要额外的带宽。相应地,为了减少需要发信号通知的数据量,用于图片、图片的片区、图片的片区组、图片的切片或图片的块的ALF集合可以是根据先前的图片、切片、片区、片区组或块的ALF集合来预测的。例如,视频编码器和视频解码器可以在存储用于先前译码的图片、切片或块的ALF集合的缓冲器中构造ALF集合列表。视频编码器可以发信号通知针对ALF集合列表的索引,以及视频解码器可以基于发信号通知的索引来确定用于当前块的ALF集合(例如,基于所构造的 ALF集合列表来确定ALF集合中的用于当前块的ALF集合)。
利用先前译码的图片、切片、片区、片区组或块的ALF集合被称为用于ALF的时间预测。先前译码的图片、切片、片区、片区组或块的ALF集合被称为时间滤波器集合或时间ALF集合。因此,视频编码器和视频解码器可以各自包括存储时间滤波器集合的缓冲器,视频编码器和视频解码器从时间滤波器集合生成ALF集合列表(即,时间滤波器集合列表)。对于当前块、切片、片区、片区组或图片,视频编码器可以确定ALF集合列表中的要用于自适应环路滤波的ALF集合(例如,时间集合),以及发信号通知针对ALF集合列表的标识所确定的ALF集合的索引。视频解码器接收该索引以及基于在ALF集合列表中的通过该索引标识的ALF集合来确定要使用的ALF集合。视频解码器可以将所确定的ALF集合用于ALF。
然而,在一些情况下(诸如在分层译码方案中),在由视频编码器和视频解码器生成的ALF集合列表之间可能存在不匹配。例如,视频编码器可以将ALF集合存储在缓冲器中,以及视频解码器可以将ALF集合存储在缓冲器中。在分层译码方案中,由视频编码器存储在缓冲器中的ALF集合和由视频解码器存储在缓冲器中的ALF集合可能是不同的。
在分层译码方案中,存在通过时间层标识值(时间层ID或tId)标识的多个层。在分层译码方案中,基于视频解码器的带宽可用性或处理能力,可以在比特流中丢弃具有较高时间层ID的层。例如,多个层可以包括基本层(例如,具有为0的时间层ID)和一个或多个增强层(例如,每一者具有大于0的时间层ID)。基本层应当是可完全解码的,而不需要来自其它层中的任何层的信息。也就是说,对于基本级别的图像质量,视频解码器可以不需要解码除了基本层中的图片之外的任何其它层。
对于增强的图像质量,视频解码器可以解码第一增强层(例如,具有为1的时间层ID)和基本层,对于进一步增强的图像质量,视频解码器可以解码第二增强层(例如,具有为2的时间层ID)和第一增强层和基本层,等等。上文是分层译码方案的一个示例,以及示例技术不应当被视为限于上文示例。
具有较低时间层ID的层中的图片无法使用具有较高时间层ID的层中的其它译码信息作为参考图片,因为具有较高时间层ID的层中的图片可能从包括用于对这些图片执行ALF的信息的比特流中被丢弃。相应地,为了确保具有较高时间层ID的ALF集合不用于具有较低时间层ID的图片,缓冲器还可以包括指示与ALF集合相关联的时间层ID的信息。例如,如果 ALF集合与具有为1的时间层ID的图片相关联,则缓冲器可以存储ALF 集合(例如,ALF系数)和关于时间层ID为1的信息。
随着图片被编码或解码,视频编码器和视频解码器可以利用新的ALF 集合来更新相应的缓冲器(例如,通过覆写(overwrite)已经在缓冲器中的 ALF集合)。在视频编码器处,缓冲器可以包括来自具有不同时间层ID的图片的ALF集合,以及视频编码器可以利用新的ALF集合来覆写缓冲器。然而,视频解码器可能没有重构相同的图片(例如,由于带宽或处理能力,可能已经在比特流中丢弃具有较高时间层ID的译码信息中的一些信息)。因此,当存储ALF集合的缓冲器对于视频编码器而言是满的并且需要覆写缓冲器中的条目时,视频解码器可能没有覆写缓冲器中的任何条目。
例如,视频解码器可以仅接收用于对具有为0的时间层ID的图片进行解码的视频数据。视频编码器可以对具有为1的时间层ID的图片进行编码,以及利用用于具有为1的时间层ID的图片的ALF集合来更新其缓冲器,该ALF集合作为要用作用于后续图片/切片/块的ALF集合的预测器的ALF 集合。然而,视频解码器没有接收到用于具有为1的时间层ID的图片的视频数据。因此,视频解码器可能没有利用具有为1的时间层ID的图片的 ALF集合来更新其缓冲器。相应地,在该示例中,存储用于视频编码器和视频解码器的ALF集合的缓冲器可能是不同的。
因为视频编码器的缓冲器和视频解码器的缓冲器包括不同的ALF集合,所以由视频编码器和视频解码器生成ALF集合列表可能导致不同的ALF集合列表。以此方式,在视频编码器和视频解码器处的ALF集合列表中可能存在不匹配。
在一个或多个示例中,为了解决ALF集合列表中的可能的不匹配,视频编码器可以发信号通知指示ALF集合列表的尺寸的信息,该尺寸可以是基于在缓冲器中可以用于对当前块执行自适应环路滤波的可用ALF集合的数量的。然后,视频解码器可以基于指示ALF集合列表的尺寸的信息来确定ALF集合列表。在一些示例中,ALF集合列表的尺寸可以等于在缓冲器中可以用于对当前块执行自适应环路滤波的可用ALF集合的数量。在这样的示例中,通过确定在缓冲器中可以用于执行自适应环路滤波的可用ALF 集合的数量,视频编码器可以确定ALF集合列表的尺寸。在一些示例中, ALF集合列表的尺寸可以小于可用ALF集合的数量。在这样的示例中,视频编码器可以将ALF集合列表的尺寸确定为小于可用ALF集合的数量的值。
然后,视频编码器和视频解码器可以基于所指示的ALF集合列表的尺寸来构造ALF集合列表。通过基于由视频编码器确定并且发信号通知的尺寸来约束ALF集合列表的尺寸,示例技术可以确保用于视频编码器和视频解码器两者的ALF集合列表匹配。作为示例,假设当前图片具有为1的时间层ID。在该示例中,可以使用的可能ALF集合应当用于具有为1或小于1的时间层ID的图片。用于视频编码器的缓冲器可以存储与具有为1或小于1的时间层ID的图片相关联的N个ALF集合,以及用于视频解码器的缓冲器可以存储与具有为1或小于1的时间层ID的图片相关联的M个ALF 集合(其中M可以不同于N)。
在该示例中,视频编码器可以发信号通知ALF集合列表具有尺寸N(例如,滤波器集合的数量是N)。尽管视频解码器的缓冲器包括与具有为1或小于1的时间层ID的图片相关联的M个ALF集合,但是视频解码器可以生成尺寸为N的ALF集合列表。视频解码器生成的ALF集合列表可以是用于N个最近图片的ALF集合或用于由视频编码器标识的N个图片的ALF 集合。
这样,由视频编码器生成的ALF集合列表和由视频解码器生成的ALF 集合列表可以是相同的。视频编码器可以发信号通知针对ALF集合列表的索引(例如,通过使用截断译码(truncated coding)方法)。视频解码器可以基于针对ALF集合列表的索引来确定要用于对当前块、切片或图片进行滤波的ALF集合。
图1是示出可以利用在本公开内容中描述的技术的示例视频编码和解码系统10的框图。如图1中所示,系统10包括源设备12,源设备12生成要被目的地设备14稍后解码的经编码的视频数据。源设备12和目的地设备14可以是各种各样的设备中的任何一者,包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、电话手机(诸如所谓的“智能”电话、所谓的“智能”平板)、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备等。在一些情况下,源设备12和目的地设备14可以被配备用于无线通信(即,源设备12和目的地设备14可以是无线通信设备)。
目的地设备14可以经由链路16来接收要被解码的经编码的视频数据。链路16可以是能够将经编码的视频数据从源设备12移动到目的地设备14 的任何类型的介质或设备。在一个示例中,链路16可以是通信介质,其使得源设备12能够实时地向目的地设备14直接发送经编码的视频数据。经编码的视频数据可以根据诸如无线通信协议的通信标准来调制以及被发送给目的地设备14。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一个或多个物理传输线。通信介质可以形成诸如以下各项的基于分组的网络的一部分:局域网、广域网、或诸如互联网的全球网络。通信介质可以包括路由器、交换机、基站、或对于促进从源设备12到目的地设备14的通信而言可以有用的任何其它设备。
在另一示例中,可以将经编码的数据从输出接口22输出到存储设备26。类似地,可以通过输入接口从存储设备26访问经编码的数据。存储设备26 可以包括各种分布式或本地访问的数据存储介质中的任何一者,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或用于存储经编码的视频数据的任何其它适当的数字存储介质。在另外的示例中,存储设备26可以对应于文件服务器或者可以保存由源设备12生成的经编码的视频的另一中间存储设备。目的地设备14可以经由流式传输或下载来从存储设备26访问被存储的视频数据。文件服务器可以是能够存储经编码的视频数据并且将该经编码的视频数据发送给目的地设备14的任何类型的服务器。示例文件服务器包括网页服务器(例如,用于网站)、FTP 服务器、网络附加存储(NAS)设备、或本地磁盘驱动器。目的地设备14 可以通过任何标准数据连接(包括互联网连接)来访问经编码的视频数据。这可以包括适于访问被存储在文件服务器上的经编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)、或这两者的组合。来自存储设备26的经编码的视频数据的传输可以是流式传输、下载传输或这两者的组合。
本公开内容的技术必要限于无线应用和设置。所述技术可以应用于视频译码,以支持各种各样的多媒体应用中的任何一者,诸如空中电视广播、有线电视传输、卫星电视传输、流式视频传输(例如,经由互联网)、对数字视频的编码以用于存储在数据存储介质上、对被存储在数据存储介质上的数字视频的解码、或其它应用。在一些示例中,系统10可以被配置为支持单向或双向视频传输,以支持诸如视频流式传输、视频回放、视频广播和/或视频电话的应用。
在图1的示例中,源设备12包括视频源18、视频编码器20和输出接口22。在一些情况下,输出接口22可以包括调制器/解调器(调制解调器) 和/或发射机。在源设备12中,视频源18可以包括诸如以下各项的源:视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈送接口、和/或用于生成计算机图形数据作为源视频的计算机图形系统、或者这样的源的组合。作为一个示例,如果视频源18是摄像机,则源设备12和目的地设备14可以形成所谓的相机电话或视频电话。然而,在本公开内容中描述的技术通常可以适用于视频译码,以及可以应用于无线和/或有线应用。
视频编码器20可以对被捕获的、预捕获的或计算机生成的视频进行编码。可以经由源设备12的输出接口22将经编码的视频数据直接发送给目的地设备14。经编码的视频数据还可以(或者替代地)被存储到存储设备 26上,以用于由目的地设备14或其它设备稍后访问来进行解码和/或回放。
目的地设备14包括输入接口28、视频解码器30和显示设备32。在一些情况下,输入接口28可以包括接收机和/或调制解调器。目的地设备14 的输入接口28通过链路16来接收经编码的视频数据。通过链路16传送的或在存储设备26上提供的经编码的视频数据可以包括由视频编码器20生成的各种各样的语法元素,以供视频解码器(诸如视频解码器30)在对视频数据进行解码时使用。可以将这样的语法元素与在通信介质上发送、被存储在存储介质上或被存储在文件服务器上的经编码的视频数据包括在一起。
显示设备32可以与目的地设备14集成,或者在目的地设备14的外部。在一些示例中,目的地设备14可以包括集成的显示设备,以及还可以被配置为与外部显示设备对接。在其它示例中,目的地设备14可以是显示设备。通常,显示设备32将经解码的视频数据显示给用户,以及可以是各种各样的显示设备中的任何一者,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、或另一种类型的显示设备。
视频编码器20和视频解码器30可以类似于或根据视频压缩标准(诸如最近定稿的高效率视频译码(HEVC)标准)进行操作,以及可以类似于或符合HEVC测试模型(HM)进行操作。视频编码器20和视频解码器30 可以另外根据HEVC扩展进行操作,诸如由ITU-T视频译码专家组(VCEG) 和ISO/IEC运动图像专家组(MPEG)的视频译码联合协作小组(JCT-VC) 以及3D视频译码扩展开发联合协作小组(JCT-3V)已经开发的范围扩展、多视图扩展(MV-HEVC)或可缩放扩展(SHVC)。
替代地,视频编码器20和视频解码器30可以类似于或根据其它专有或行业标准(诸如ITU-T H.264标准(替代地被称为ISO/IEC MPEG-4,第 10部分,高级视频译码(AVC))或者这样的标准的扩展(诸如可缩放视频译码(SVC)和多视图视频译码(MVC)扩展))进行操作。然而,本公开内容的技术不限于任何特定的译码标准。视频压缩标准的其它示例包括ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-TH.263和ISO/IEC MPEG-4Visual。HEVC(ITU-T H.265)(包括其范围扩展、多视图扩展(MV-HEVC)和可缩放扩展(SHVC))是由ITU-T 视频译码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)的视频译码联合协作小组(JCT-VC)以及3D视频译码扩展开发联合协作小组 (JCT-3V)开发的。定稿的HEVC草案(下文被称为HEVC WD)可在 http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC- N1003-v1.zip处得到。
ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)现在正在研究针对未来视频译码技术(具有潜在超过当前HEVC标准(包括其当前扩展、以及针对屏幕内容译码和高动态范围译码的近期扩展)的压缩能力)的标准化的潜在需求。这些组在被称为联合视频探索小组(JVET) 的联合协作活动中共同致力于这一探索活动,以评估他们在这一领域的专家提出的压缩技术设计。JVET于2015年10月19日至21日首次会面。参考软件的版本(即联合探索模型7(JEM 7))可以从以下网址下载: https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-7.0/。在以下文档中描述了用于JEM-7的算法描述:J.Chen,E.Alshina,G.J.Sullivan, J.-R.Ohm,J.Boyce,“Algorithm description ofJoint Exploration Test Model 7 (JEM7)”,JVET-G1001,意大利都灵,2017年7月。针对被称为H.266/通用视频译码(VVC)标准的新视频译码标准的早期草案可在Benjamin Bross的文档JVET-J1001“Versatile Video Coding(Draft 1)”中得到,以及其算法描述可在Jianle Chen和Elena Alshina的文档JVET-J1002“Algorithm description forVersatile Video Coding and Test Model 1(VTM 1)”中得到。 VVC标准的最新草案是在以下文档中描述的:Bross等人,“Versatile Video Coding(Draft 7)”,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家小组(JVET),第16次会议:瑞士日内瓦,2019年10月1-11日, JVET-P2001-v9(下文被称为“VVC草案7”)。本公开内容的技术可以应用于JEM和VVC(作为非限制性示例),但不限于任何特定的译码标准。
尽管在图1中未示出,但是在一些方面中,视频编码器20和视频解码器30可以各自与音频编码器和解码器集成,以及可以包括适当的 MUX-DEMUX单元或其它硬件和/或软件,以处理对公共数据流或分别的数据流中的音频和视频两者的编码。如果适用,在一些示例中,MUX-DEMUX 单元可以遵循ITU H.223复用器协议或其它协议(诸如用户数据报协议(UDP))。
视频编码器20和视频解码器30各自可以被实现为各种适当的编码器电路或解码器电路中的任何一者,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件、或其任何组合。当所述技术部分地在软件中实现时,设备可以将用于软件的指令存储在适当的非暂时性计算机可读介质中,以及使用一个或多个处理器在硬件中执行指令以执行本公开内容的技术。视频编码器20和视频解码器30中的每一者可以被包括在一个或多个编码器或解码器中,一个或多个编码器或解码器中的任一者可以被集成为相应设备中的组合编码器/解码器(CODEC)的一部分。
视频序列通常包括一系列图片。图片还可以被称为“帧”。在一种示例方法中,图片可以包括三个样本阵列,其被表示为SL、SCb和SCr。在这样的示例方法中,SL是亮度样本的二维阵列(即,块)。SCb是Cb色度样本的二维阵列。SCr是Cr色度样本的二维阵列。色度样本在本文中还可以被称为“色度(chroma)”样本。在其它情况下,图片可以是单色的,以及可以仅包括亮度样本的阵列。
为了生成图片的编码表示,视频编码器20可以生成译码树单元(CTU) 集合。CTU中的每一者可以包括亮度样本的译码树块(CTB)、色度样本的两个对应的译码树块、以及用于对译码树块的样本进行译码的语法结构。在单色图片或具有三个分别的色彩平面的图片中,CTU可以包括单个译码树块和用于对该译码树块的样本进行译码的语法结构。译码树块可以是样本的NxN块。CTU还可以被称为“树块”或“最大译码单元”(LCU)。 HEVC和VVC的CTU可以广泛地类似于其它标准(诸如H.264/AVC)的宏块。然而,CTU不必要限于特定尺寸,以及可以包括一个或多个译码单元(CU)。切片可以包括按光栅扫描顺序连续地排序的整数个CTU。
为了生成经译码的CTU,视频编码器20可以对CTU的译码树块递归地执行四叉树分割,以将译码树块划分为译码块(因此名称为“译码树单元”)。译码块可以是样本的NxN块。CU可以包括:具有亮度样本阵列、 Cb样本阵列和Cr样本阵列的图片的亮度样本的译码块和色度样本的两个对应的译码块、以及用于对译码块的样本进行译码的语法结构。在单色图片或具有三个分别的色彩平面的图片中,CU可以包括单个译码块和用于对该译码块的样本进行译码的语法结构。
视频编码器20可以将CU的译码块分割为一个或多个预测块。预测块是在其上应用相同预测的样本的矩形(即,正方形或非正方形)块。CU的预测单元(PU)可以包括亮度样本的预测块、色度样本的两个对应的预测块以及用于对预测块进行预测的语法结构。在单色图片或具有三个分别的色彩平面的图片中,PU可以包括单个预测块以及用于对该预测块进行预测的语法结构。视频编码器20可以针对CU的每个PU的亮度、Cb和Cr预测块来生成预测亮度、Cb和Cr块。
视频编码器20可以使用帧内预测或帧间预测来生成用于PU的预测块。如果视频编码器20使用帧内预测来生成PU的预测块,则视频编码器20 可以基于与PU相关联的图片的经解码的样本来生成PU的预测块。如果视频编码器20使用帧间预测来生成PU的预测块,则视频编码器20可以基于除了与PU相关联的图片以外的一个或多个图片的经解码的样本来生成PU 的预测块。
在视频编码器20生成用于CU的一个或多个PU的预测亮度、Cb和 Cr块之后,视频编码器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的亮度、Cb和Cr 残差块分解成一个或多个亮度、Cb和Cr变换块。变换块是对其应用相同变换的样本的矩形(例如,正方形或非正方形)块。CU的变换单元(TU) 可以包括亮度样本的变换块、色度样本的两个对应的变换块以及用于对变换块样本进行变换的语法结构。因此,CU的每个TU可以与亮度变换块、Cb变换块和Cr变换块相关联。与TU相关联的亮度变换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色图片或具有三个分别的色彩平面的图片中,TU可以包括单个变换块以及用于对该变换块的样本进行变换的语法结构。
视频编码器20可以将一个或多个变换应用于TU的亮度变换块以生成用于TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以将一个或多个变换应用于TU的Cb变换块以生成用于TU的Cb系数块。视频编码器20可以将一个或多个变换应用于 TU的Cr变换块以生成用于TU的Cr系数块。
具有CTU、CU、PU和TU的上文的块结构总体上描述了块结构的一个示例。通常,不同的视频译码标准可以使用不同的块结构。作为一个示例,尽管HEVC允许PU和TU具有不同的尺寸或形状,但是其它视频译码标准可能要求预测块和变换块具有相同的尺寸。本公开内容的技术不限于 HEVC的块结构,以及可以与诸如VVC的那些块结构的其它块结构兼容。
在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可以对系数块进行量化。量化通常指代如下的过程:在该过程中,对变换系数进行量化以可能减少用于表示变换系数的数据量,从而提供进一步的压缩。在视频编码器20对系数块进行量化之后,视频编码器 20可以对指示经量化的变换系数的语法元素进行熵编码。例如,视频编码器20可以对指示经量化的变换系数的语法元素执行上下文自适应二进制算术译码(CABAC)。
视频编码器20可以输出比特流,比特流包括形成经译码的图片的表示和相关联的数据的比特序列。比特流可以包括网络抽象层(NAL)单元的序列。NAL单元是包含对NAL单元中的数据的类型的指示的语法结构,以及是以在必要时穿插着竞争防止比特(emulationprevention bit)的原始字节序列有效载荷(RBSP)的形式来包含该数据的字节。NAL单元中的每一者包括NAL单元报头以及封装RBSP。NAL单元报头可以包括指示NAL单元类型码的语法元素。由NAL单元的NAL单元报头指定的NAL单元类型码指示NAL单元的类型。RBSP可以是包含被封装在NAL单元内的整数个字节的语法结构。在一些情况下,RBSP包括零比特。
不同类型的NAL单元可以封装不同类型的RBSP。例如,第一类型的 NAL单元可以封装用于PPS的RBSP,第二类型的NAL单元可以封装用于经译码的切片的RBSP,第三类型的NAL单元可以封装用于SEI消息的 RBSP等等。封装用于视频译码数据的RBSP的NAL单元(与用于参数集和SEI消息的RBSP相反)可以被称为VCL NAL单元。
视频解码器30可以接收由视频编码器20生成的比特流。此外,视频解码器30可以解析该比特流以从该比特流获得语法元素。视频解码器30 可以至少部分地基于从比特流获得的语法元素来重构视频数据的图片。用于重构视频数据的过程通常可以是与由视频编码器20执行的过程互易的。另外,视频解码器30可以对与当前CU的TU相关联的系数块进行逆量化。视频解码器30可以对系数块执行逆变换以重构与当前CU的TU相关联的变换块。视频解码器30可以通过将用于当前CU的PU的预测块的样本与当前CU的TU的变换块的对应样本相加,来重构当前CU的译码块。通过重构用于图片的每个CU的译码块,视频解码器30可以重构图片。
现在将讨论HEVC和JEM技术的各方面。HEVC采用两种环路内滤波器,包括去块滤波器(DBF)和SAO。关于HEVC解码和SAO的额外细节是在以下文档中描述的:C.Fu,E.Alshina,A.Alshin,Y.Huang,C.Chen, Chia.Tsai,C.Hsu,S.Lei,J.Park,W.Han,“Sample adaptiveoffset in the HEVC standard”,IEEE Trans.Circuits Syst.Video Technol.,22(12):1755–1764 (2012)。
针对DBF的输入可以是在帧内或帧间预测之后的经重构的图像,如利用来自重构块的输出所示。DBF执行对经译码块边界处的伪影的检测,以及通过应用选择的滤波器来使伪影衰减。与H.264/AVC去块滤波器相比, HEVC去块滤波器具有较低的计算复杂度和较好的并行处理能力,同时仍然实现视觉伪影的显著减少。对于额外示例,参见以下文档:A.Norkin,G.Bjontegaard,A.Fuldseth,M.Narroschke,M.Ikeda,K.Andersson,MinhuaZhou,G.Van der Auwera,“HEVC Deblocking Filter”,IEEE Trans.Circuits Syst.VideoTechnol.,22(12):1746–1754(2012)。
在HEVC中,对位于网格上的具有四个样本长度的每个边界分别做出去块滤波决策,该网格将图片划分为8x 8个样本的块。如果以下条件成立,则对块边界执行去块:(1)块边界是预测单元(PU)或变换单元(TU)边界;(2)如在下面的表1中定义的边界强度(Bs)大于零;(3)如在下面的等式(1)中定义的在块边界的两侧的信号的变化低于指定门限。
表1、用于两个相邻亮度块之间的边界的边界强度(Bs)值
Figure BDA0003111869120000181
如果对于亮度块边界而言Bs>0,则对该边界应用去块滤波,其中,以下条件成立:
|p2,0-2p1,0+p0,0|+|p2,3-2p1,3+p0,3|+|q2,0-2q1,0+q0,0| +|q2,3-2q1,3+q0,3|<β
HEVC允许两种类型的亮度去块滤波器,即:(i)普通滤波器和(ii) 强滤波器。去块滤波器的选择取决于特定的信号变化项是否小于某些门限 (对于细节,参见上文引用的Norkin等人的“HEVC Deblocking Filter”(2012))。尽管滤波决策是仅基于四像素长的垂直(或水平,视情况而定) 边界的两行(列)的,但是将滤波器应用于边界中的每一行(或列,视情况而定)。在下文的表2中总结了在滤波过程中使用的像素的数量和可以利用每种类型的滤波而修改的像素的数量。
表2、HEVC去块中的每边界使用/修改的像素数量
Figure BDA0003111869120000191
仅当Bs等于二(2)时才执行色度去块。仅使用一种类型的色度去块滤波器。色度去块滤波器使用像素p0、p1、q0、q1,以及可以修改每一行中的像素p0和q0(为了简洁起见,在上述描述中省略了指示行索引的第二下标,因为滤波器被应用于每一行)。在JEM中,去块是在CU级别执行的。在边界的任一侧的CU尺寸可以大于8x8。JEM中的最小CU尺寸为4x4。因此,去块滤波器还可以被应用于4x4块的边界。
针对SAO滤波的输入可以是在应用去块滤波器之后经重构的图像,如利用来自去块滤波器的输出所示。SAO滤波的概念/思想是通过首先利用选择的分类器将区域样本分类为多个类别,获得用于每个类别的偏移,以及然后将偏移与该类别的每个样本相加,从而减少该区域的平均样本失真,其中,分类器索引和区域的偏移被译码在比特流中。在HEVC中,区域(用于SAO参数信令的单元)被定义为CTU。
在HEVC中采用了两种SAO类型,其能够满足低复杂度的要求。这两种类型是边缘偏移(EO)和带状偏移(BO),下文将对其进一步详细讨论。对SAO类型的索引进行译码。对于EO,样本分类是基于根据一维方向模式在当前样本与相邻样本之间的比较:水平、垂直、135°对角和45°对角。
图2和3是示出示例四叉树二叉树(QTBT)结构130以及对应的译码树单元(CTU)132的概念图。实线表示四叉树拆分,以及虚线指示二叉树拆分。在二叉树的每个拆分(即,非叶)节点中,发信号通知一个标志以指示使用哪种拆分类型(即,水平或垂直),其中,在该示例中,0指示水平拆分,以及1指示垂直拆分。对于四叉树拆分,由于四叉树节点将块水平地和垂直地拆分为具有相等尺寸的4个子块,因此无需指示拆分类型。相应地,视频编码器20可以对以下各项进行编码,以及视频解码器30可以对以下各项进行解码:用于QTBT结构130的区域树级别(即,实线) 的语法元素(诸如拆分信息)、以及用于QTBT结构130的预测树级别(即,虚线)的语法元素(诸如拆分信息)。视频编码器20可以对用于由QTBT 结构130的终端叶节点表示的CU的视频数据(诸如预测和变换数据)进行编码,而视频解码器30可以对该视频数据进行解码。
通常,图3的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和视频解码器30可以被配置为实现在JEM(例如,JEM 7)中阐述的各种ALF滤波技术。现在将描述这些JEM滤波技术(例如, ALF)的各方面。除了经修改的DB和HEVC-SAO方法之外,JEM和VVC 还包括ALF,以及可以包括基于几何变换的自适应环路滤波(GALF)。针对ALF/GALF的输入可以是在应用SAO之后经重构的图像。GALF的各方面是在以下文档中描述的:Tsai,C.Y.,Chen,C.Y.,Yamakage,T.,Chong, I.S.,Huang,Y.W.,Fu,C.M.,Itoh,T.,Watanabe,T.,Chujoh,T.,Karczewicz, M.和Lei,S.M.,“Adaptive loopfiltering for video coding”,IEEE Journal of Selected Topics in SignalProcessing,7(6),第934-945页,2013;以及 Karczewicz,L.Zhang,,W.-J.Chien和X.Li,“Geometry transformation-based adaptive in-loop filter”,Picture CodingSymposium(PCS),2016。
ALF技术尝试通过使用自适应Wiener滤波器来使原始样本与经解码的样本之间的均方误差最小化。将输入图像表示为p,将源图像表示为S,以及将FIR滤波器表示为h。那么,应当将平方误差和(SSE)的以下表达式最小化,其中(x,y)表示p或S中的任何像素位置。
Figure BDA0003111869120000211
可以如下通过将SSE关于h(i,j)的偏导数设置为等于0,来获得最佳h(被表示为hopt):
Figure BDA0003111869120000221
这导致下文示出的Wiener-Hopf等式,其给出了最佳滤波器hopt
Figure BDA0003111869120000222
在JEM和VVC的一些示例中,基于局部梯度来将图片中的样本分类为二十五(25)个类,而不是针对整个图片使用一个滤波器。针对每一类中的像素,推导分别的最佳Wiener滤波器。可以采用若干技术,以通过减少信令开销和计算复杂度来增加ALF的有效性。下文列出了可以用于通过减少信令开销和/或计算复杂度来增加ALF有效性的技术中的一些技术:
1.来自固定滤波器的预测:使用固定滤波器的预测池来预测用于每一类的最佳滤波器系数,该预测池由用于每一类的16个候选滤波器组成。针对每一类来选择最佳预测候选,以及仅发送预测误差。
2.类合并:多个类中的像素可以共享一个滤波器,而不是使用二十五 (25)个不同的滤波器(针对每一类有一个滤波器),以便减少要被译码的滤波器参数的数量。合并两个类可以导致更高的累积SSE,但是较低的RD成本。
3.可变抽头数量:滤波器抽头的数量在帧级别是自适应的。理论上,具有较多抽头的滤波器可以实现较低的SSE,但是在速率-失真 (R-D)成本方面可能不是好的选择,因为与较多滤波器系数相关联的比特开销。
4.块级别开启/关闭控制:可以在块的基础上打开和关闭ALF。在帧级别自适应地选择块尺寸,以块尺寸来发信号通知开启/关闭控制标志。可以使用仅来自针对其而言ALF是开启的那些块的像素来重新计算滤波器系数。
5.时间预测:针对先前译码的帧而推导的滤波器被存储在缓冲器中。如果当前帧是P或B帧,则可以使用所存储的滤波器集合中的一者来对该帧进行滤波(如果其导致更好的RD成本的话)。发信号通知标志以指示时间预测的使用。如果使用时间预测,则发信号通知用于指示使用哪个存储的滤波器集合的索引。不需要ALF系数的额外信令。还可以针对使用时间预测的帧,来发信号通知块级别 ALF开启/关闭控制标志。
将在本段和以下段落中简要总结ALF的一些方面的细节。ALF的一些方面与像素分类和几何变换相关。计算在覆盖经重构的帧(在ALF之前) 中的每个像素的6x6窗口内的全部像素处的垂直、水平和对角拉普拉斯算子的绝对值之和。然后将经重构的帧划分为不重叠的2x2块。基于该块的总拉普拉斯算子活动性和方向性,将这些块中的四个像素分类为二十五(25) 个类别中的一个类别,被表示为Ck(k=0,1,…,24)。此外,基于该块的梯度方向性,还将四种几何变换(无变换、对角翻转、垂直翻转或旋转)中的一种变换应用于滤波器。细节可以在以下文档中寻找:M.Karczewicz,L. Zhang,W.-J.Chien和X.Li,“Geometrytransformation-based adaptive in-loop filter”,Picture Coding Symposium(PCS),2016。
ALF的一些方面与根据固定滤波器的滤波器推导和预测相关。对于每一类Ck,首先基于由滤波器给出的SSE来从用于Ck的池中选择最佳预测滤波器,被表示为hpred,k。要被最小化的Ck的SSE可以如下写为:
Figure BDA0003111869120000231
k=0,…,24,(x,y)∈Ck
其中,hΔ,k是用于Ck和hpred,k的最佳滤波器之间的差。令p′(x,y)=∑i,jhpred,k(i,j)p(x-i,y-j)是通过hpred,k对像素p(x,y)进行滤波的结果。
那么,用于SSEk的表达式可以被重写为:
Figure BDA0003111869120000232
k=0,…,24,(x,y)∈Ck
通过使SSEk关于hΔ,k(i,j)的偏导数等于0,如下获得经修改的Wiener-Hopf 等式:
Figure BDA0003111869120000241
k=0,…,24,(x,y)∈Ck
为了简化表达式,将在(x,y)∈Ck的情况下的∑x,yp(x-i,y-j)p(x- m,y-n)和∑x,y(S(x,y)-p′(x,y))p(x-m,y-n)分别用Rpp,k(i-m,j- n)和R′ps,k(m,n)来表示。那么,以上等式可以被写为:
i,jhΔ,k(i,j)Rpp,k(i-m,j-n)=R′ps,k(m,n),k=0,…,24 (1)
对于每个Ck,在全部(x,y)∈Ck之上计算自相关矩阵Rpp,k(i-m,j-n)和互相关矢量R′ps,k(m,n)。
在ALF的一个示例中,仅计算和发送最佳滤波器与固定预测滤波器之间的差。如果在池中可用的候选滤波器都不是好的预测器,则恒等滤波器 (identity filter)(即,仅在中心具有等于1的一个非零系数的滤波器,其使输入和输出是相同的)将被用作预测器。
ALF的一些方面与对像素类的合并相关。对各类进行合并以减少发信号通知滤波器系数的开销。合并两个类的成本关于SSE是增加的。考虑两个类Cm和Cn,其中SSE分别通过SSEm和SSEn来给出。令Cm+n表示将Cm和Cn进行合并而获得的类,其中SSE被表示为SSEm+n。SSEm+n始终大于或等于SSEm+SSEn。令ΔSSEm+n表示通过将Cm和Cn进行合并而导致的SSE 的增加,其等于SSEm+n-(SSEm+SSEn)。为了计算SSEm+n,需要使用类似于(1)的以下表达式来推导hΔ,m+n,即针对Cm+n的滤波器预测误差:
i,jhΔ,m+n(i,j)(Rpp,m(i-u,j-v)+Rpp,n(i-u,j-v))=R′ps,m(u,v)+ R′ps,n(u,v) (2)
然后,可以将用于所合并的类别Cm+n的SSE计算为:
SSEm+n=-∑u,vhΔ,m+n(u,v)(R′ps,m(u,v)+R′ps,n(u,v))+(Rss,m+Rss,n)
为了将类的数量从N减少到N-1,可能需要寻找两个类Cm和Cn,使得合并它们导致与任何组合相比最小的ΔSSEm+n。一些ALF设计对用于合并的每一对可用的类进行检查,以寻找具有最小合并成本的一对。
如果Cm和Cn(其中m<n)被合并,则Cn被标记为不可用于进一步合并,以及用于Cm的自相关和互相关如下被改变为经组合的自相关和互相关:
Rpp,m=Rpp,m+Rpp,n
R′ps,m=R′ps,m+R′ps,n
Rss,m=Rss,m+Rss,n
可能需要基于RD成本而针对每个帧决定在合并之后的ALF类的最佳数量。这是通过以下操作来完成的:从二十五(25)个类开始,并且依次合并一对类(来自可用类集合),直到仅剩一个类为止。对于在合并之后剩下的每个可能的类数量(1,2,…,25),存储用于指示哪些类被合并在一起的映射。然后如下选择最佳类数量,使得RD成本被最小化:
Nopt=argminN(J|N=D|N+λR|N),
其中,D|N是使用N个类的总SSE
Figure BDA0003111869120000251
R|N是用于对N个滤波器进行译码的总比特数量,以及λ是通过量化参数(QP)确定的加权因子。发送用于Nopt个类的合并映射,合并映射指示哪些类被合并在一起。
现在描述发信号通知ALF参数的各方面。下文给出了对ALF参数编码过程的简要分步描述:
1.发信号通知帧级别ALF开启/关闭标志。
2.如果ALF是开启的,则发信号通知时间预测标志。
3.如果使用了时间预测,则发信号通知帧的索引,来自该帧的对应 ALF参数用于对当前帧进行滤波。
4.如果没有使用时间预测,则如下发信号通知辅助ALF信息和滤波器系数:
a.在发信号通知滤波器系数之前,发信号通知以下辅助ALF信息。
i.在类合并之后使用的唯一滤波器的数量。
ii.滤波器抽头的数量。
iii.类合并信息,其指示哪些类共享滤波器预测错误。
iv.用于每一类的固定滤波器预测器的索引。
b.在发信号通知辅助信息之后,如下发信号通知滤波器系数预测误差:
i.发信号通知标志,以指示在合并之后,对于剩余类中的一些类,滤波器预测错误是否被强制为零(0)。
ii.发信号通知标志以指示是否使用差分译码来发信号通知滤波器预测错误(如果在合并之后剩余的类的数量大于一 (1))。
iii.然后,使用k阶Exp-Golomb码来发信号通知滤波器系数预测误差,其中,用于不同系数位置的k值是根据经验来选择的。
c.直接对用于色度分量的滤波器系数(如果可用的话)进行译码,而无需任何预测方法。
5.最后,发信号通知块级别ALF开启/关闭控制标志。
于2018年6月1日提交的临时美国专利申请No.62/679,685和于2019 年5月30日提交的非临时美国专利申请No.16/427,017描述了一种基于块的ALF方案,其中,块可以使用时间滤波器集合(例如,ALF集合),时间滤波器集合是来自先前译码的块的滤波器集合(例如,发信号通知的滤波器集合)。来自先前译码的块的滤波器集合可以用于先前译码的块、包括先前译码的块的先前译码的切片、包括先前译码的块的先前译码的片区以及包括先前译码的块的先前译码的图片。时间滤波器集合可以被称为ALF 集合(即,ALF集合是先前译码的块的ALF集合)。如果ALF集合用于块,则ALF集合索引信息(例如,用于标识ALF集合的索引)被包括在比特流中。二维阵列用于存储ALF集合。每个时间层都分配其自己的一维阵列,该阵列存储来自具有相等或更小时间层索引的图片/切片/片区的ALF集合。
图4是示出用于ALF参数(例如,ALF集合)和时间层ID信息的存储器存储的示例的框图。于2018年9月12日提交的临时美国专利申请No. 62/730,504和于2019年9月11日提交的非临时美国专利申请No.16/567,966 描述了如下的技术:根据这些技术,使用尺寸N的单个一维阵列来存储ALF 参数(如图4所示),而不是使用二维阵列来存储时间滤波器组(例如,ALF 集合)。每个存储器元件存储:(i)ALF参数;以及(ii)时间层ID(tId),其指示从哪个层估计对应的ALF参数。可能需要时间层信息以确保从较高时间层(例如,tId=4)获得的ALF参数不用于在较低时间层(例如,tId=3) 处对帧/切片进行编码/解码。根据在图4中所示的实现方式,使用尺寸N的单个阵列来存储ALF参数(P1,P2,…PN)和相关联的时间层ID(tId1,tId2,… tIdN)。
与二维缓冲器不同,一维缓冲器包含来自全部时间层的滤波器,以及相应地,可以应用时间可缩放性约束。然而,如果一维时间滤波器缓冲器用于在临时美国专利申请No.62/679,685和非临时美国专利申请No. 16/427,017中描述的技术,那么,当填充用于当前图片/切片/片区/块的滤波器集合缓冲器以及发信号通知时间缓冲器索引信号时,可能引入不匹配(如果或当在传输期间丢失一些图片/切片/片区时)。
作为示例,视频编码器20和视频解码器30可以各自包括存储与在图4 中所示的示例类似的信息的缓冲器。然而,基于时间层标识值(例如,时间层ID),被存储在相应缓冲器中的信息可能是不同的。例如,视频编码器 20可以被配置为处理和编码全部图片(例如,帧),而不考虑图片的时间层 ID。这是因为包括视频编码器20的源设备12可以被配置为生成被目的地设备14的许多不同示例消耗的视频数据。相应地,视频编码器20可以生成包括用于全部层中的图片的经编码的视频数据的比特流(即,处理和编码用于全部图片的视频数据,而不考虑图片的时间层ID)。此外,视频编码器20可以被配置为存储如图4所示的ALF集合和相关联的时间层标识值。
然而,并非目的地设备14的全部示例都可以处理用于全部层的视频数据。作为一个示例,目的地设备14的第一示例可以仅处理用于具有为0的时间层ID的层的视频数据,以及目的地设备14的第二示例可以仅处理用于具有为2或小于2的时间层ID的层的视频数据。在该示例中,目的地设备14的第一示例和第二示例两者可以接收用于全部层的视频数据,但是对于目的地设备14的第一示例,可以仅处理具有为0的时间层ID的层,或者对于目的地设备14的第二示例,可以仅处理具有为2或更小的时间层ID 的层。
在一些示例中,在去往目的地设备14的第一和第二示例的路径中的某个硬件设备或某些硬件设备可以被配置为剔除用于目的地设备14的第一示例的大于0的层的视频数据,以及剔除用于目的地设备14的第二示例的大于2的层的视频数据。在这样的示例中,目的地设备14的第一示例甚至可以不接收用于具有大于0的时间层ID的图片的视频数据,以及目的地设备 14的第二示例甚至可以不接收用于具有大于2的时间层ID的图片的视频数据。
在任何情况下,由于目的地设备14的第一和第二示例的视频解码器30 处理与视频编码器20相比较少的图片,因此,在视频解码器30处针对目的地设备14的第一和第二示例两者的先前译码的块的ALF集合与由视频编码器20存储的先前译码的块的ALF集合可以是不同的。
作为示例,用于视频编码器20的存储ALF集合(例如,先前译码的块的ALF集合)和时间层ID的缓冲器可以存储:{Alf(P7,层ID 0),Alf(P6,层ID 2),Alf(P5,层ID 0),Alf(P4,层ID 1),以及Alf(P3,层ID 0)}。例如, ALF集合P7指代第一ALF参数集并且可以与时间层ID 0相关联,ALF集合P6指代第二ALF参数集并且可以与时间层ID 2相关联,ALF集合P5指示第三ALF参数集并且可以与时间层ID 0相关联,ALF集合P4指代第四ALF参数集并且可以与时间层ID 1相关联,以及ALF集合P3指代第五 ALF参数集并且可以与时间层ID 0相关联。
对于仅接收或仅处理具有为0的时间层ID的图片的视频解码器30,视频解码器30的缓冲器可以不包括ALF集合P4和ALF集合P6。这是因为 ALF集合P4和ALF集合P6分别与时间层ID 1和2相关联,以及视频解码器30的该示例仅接收或仅处理具有为0的时间层ID的图片。相应地,在该示例中,视频解码器30的存储ALF集合和时间层标识值的缓冲器将包括:{Alf(P7,层ID 0),Alf(P5,层ID 0),以及Alf(P3,层ID 0)}。
另外,视频解码器30的存储ALF集合和时间层标识值的缓冲器还可以存储一些额外的先前图片的ALF集合。例如,用于视频编码器20和视频解码器30两者的用于存储ALF集的缓冲器可以具有固定尺寸(例如,5)。在对图片进行编码或解码之后,移除ALF集合中的一者并且向缓冲器添加新的ALF集合。因此,在该示例中,用于视频编码器20的缓冲器可以包括: {Alf(P7,层ID 0),Alf(P6,层ID 2),Alf(P5,层ID 0),Alf(P4,层ID 1),以及Alf(P3,层ID 0)}。用于视频解码器30的缓冲器可以包括:{Alf(P7,层 ID 0),Alf(P5,层ID0),以及Alf(P3,层ID 0)},但是还将包括用于两个较早解码的图片的ALF集合,因为在缓冲器中可以存在多达5个ALF集合。因此,用于视频解码器30的缓冲器可以包括:{Alf(P7,层ID 0),Alf(P5,层 ID 0),Alf(P3,层ID 0),Alf(P2,层ID 0),以及Alf(P1,层ID 0)}。
在该示例中,用于视频编码器20的缓冲器和用于视频解码器30的缓冲器存储不同的ALF集合。例如,用于视频编码器20的缓冲器包括:{Alf(P7, 层ID 0),Alf(P6,层ID 2),Alf(P5,层ID 0),Alf(P4,层ID 1),以及Alf(P3, 层ID 0)},以及用于视频解码器30的缓冲器包括:{Alf(P7,层ID 0),Alf(P5, 层ID 0),Alf(P3,层ID 0),Alf(P2,层ID 0),以及Alf(P1,层ID 0)}。在该示例中,用于视频编码器20的缓冲器包括用于视频解码器30的缓冲器不包括的Alf(P4,层ID 1)和Alf(P6,层ID 2),以及用于视频解码器30的缓冲器包括用于视频编码器20的缓冲器不包括的Alf(P1,层ID 0)和Alf(P2,层 ID 0)。
相应地,如果视频编码器20将向视频解码器30发信号通知针对缓冲器的标识要用于对当前块进行滤波的ALF集合的索引,则缓冲器中的不匹配可能导致错误。例如,如果Alf(P3)将用于滤波,则视频编码器20可以发信号通知为4的索引值,因为Alf(P3)是用于视频编码器20的缓冲器中的第五个条目。然而,索引值4指代用于视频解码器30的Alf(P1),因为Alf(P1) 是用于视频解码器30的缓冲器中的第五个条目。
本公开内容描述了可以减轻或潜在地消除上文列出的问题中的一些问题的技术和系统配置。将认识到的是,根据本公开内容的各个方面,可以单独地实现下文列出的技术,或者可以实现所列出的技术的任何组合(以各种顺序或并行地)。
在一些示例中,可以针对当前图片/切片/片区/块来发信号通知在时间缓冲器中的可用滤波器集合的数量。也就是说,视频编码器20可以发信号通知ALF集合列表的尺寸,其中来自该ALF集合列表的ALF集合中的一者可以用作用于对当前块进行自适应环路滤波的ALF集合。视频编码器20 可以构造ALF列表以及发信号通知针对ALF集合列表的索引。视频解码器 30可以接收指示ALF集合列表的尺寸的信息,以及基于所指示的尺寸来构造ALF集合列表。视频解码器30还可以接收针对ALF集合列表的索引,以及可以基于该索引来确定ALF集合(例如,基于所构造的ALF集合列表来确定ALF集合中的用于当前块的ALF集合)。
作为一个示例,在确定可用ALF集合时,视频编码器20可以确定被存储在视频编码器20的缓冲器中的可以用于针对当前块执行自适应环路滤波的可用ALF集合。视频编码器20可以确定用于当前块的时间层ID,以及可以确定与小于或等于用于当前块的时间层ID的时间层ID相关联的 ALF集合可用于针对当前块执行自适应环路滤波。在可用ALF集合(例如,与小于或等于用于当前块的时间层ID的时间层ID相关联的那些ALF集合) 当中,视频编码器20可以确定ALF集合列表的尺寸。在一些示例中,ALF 集合列表的尺寸可以等于可用ALF集合的数量。在这样的示例中,确定ALF 集合的尺寸可以与确定可用ALF集合的数量相同。在一些示例中,视频编码器20可以将ALF集合的尺寸确定为小于可用ALF集合的数量的数量。
ALF集合列表的尺寸可以是N,其中N小于或等于可用ALF集合(例如,具有小于或等于当前块的时间层ID的时间层ID的ALF集合)的数量。视频编码器20可以构造ALF集合列表。作为一个示例,ALF集合列表可以是N个最近添加到缓冲器中的ALF集合,该缓冲器存储具有小于或等于当前块的时间层ID的时间层ID的ALF集合。
作为示例,缓冲器可以存储5个ALF集合,以及用于当前块的时间层 ID可以是2。在该示例中,视频编码器20可以确定5个ALF集合中多少 ALF集合具有小于或等于2的时间层ID。在该示例中,假设存在与小于或等于2的时间层ID相关联的3个ALF集合。在该示例中,视频编码器20 可以将被存储在缓冲器中的可以用于针对当前块执行自适应环路滤波的可用ALF集合确定为等于3。视频编码器20可以确定ALF集合列表的尺寸 (例如,小于或等于3的值)。在该示例中,假设ALF集合列表的尺寸可以与被存储在缓冲器中的可以用于针对当前块执行自适应环路滤波的可用 ALF集合相同。
然后,视频编码器20可以基于ALF集合列表的尺寸来构造ALF集合列表。作为一个示例,视频编码器20可以将最近添加的具有小于或等于当前块的时间ID的时间层ID的ALF集合包括到ALF集合列表中,直到达到 ALF集合列表的尺寸为止。
视频编码器20可以向视频解码器30发信号通知指示ALF集合列表的尺寸的信息。然后,视频解码器30可以基于指示ALF集合列表的尺寸(例如,基于所指示的尺寸)的信息来构造ALF集合列表。例如,视频解码器 30可以确定被存储在其缓冲器中的可以用于对当前块执行自适应环路滤波的可用ALF集合。例如,视频解码器30可以确定被存储在其缓冲器中的 ALF集合中的哪些ALF集合与小于或等于当前块的时间层ID的时间层ID 相关联。在当前块的时间层ID为2的上文的示例中,视频解码器30可以将被存储在其缓冲器中的可以用于对当前块执行自适应环路滤波的可用 ALF集合确定为与小于或等于2的时间层ID相关联的ALF集合。
如上所述,视频编码器20可以发信号通知指示ALF集合列表的尺寸的信息,以及因此,视频解码器30可以接收指示ALF集合列表的尺寸的信息。视频解码器30可以将最近添加到缓冲器中的具有小于或等于当前块的时间层ID的ALF集合包括到ALF集合列表中(例如,从所确定的可用ALF 集合添加ALF集合),直到达到ALF集合列表的尺寸为止。
在该约束下,如果使用ALF集合来填充在临时美国专利申请No. 62/679,685和非临时美国专利申请No.16/427,017中描述的滤波器集合缓冲器,则被填充在滤波器集合缓冲器中的时间滤波器集合的数量可以在视频编码器20和视频解码器30之间匹配。换句话说,通过确定ALF集合列表的尺寸以及将ALF集合列表约束到所确定的尺寸,有可能确保用于视频编码器20和视频解码器30的ALF集合列表是相同的。
例如,在上文的示例中,用于视频编码器20的缓冲器包括:{Alf(P7,层 ID 0),Alf(P6,层ID 2),Alf(P5,层ID 0),Alf(P4,层ID 1),以及Alf(P3,层 ID 0)},以及用于视频解码器30的缓冲器包括:{Alf(P7,层ID 0),Alf(P5, 层ID 0),Alf(P3,层ID 0),Alf(P2,层ID0),以及Alf(P1,层ID 0)}。对于具有为0的时间层ID的当前块,视频编码器20可以确定可用ALF集合是 3(例如,Alf(P7,层ID 0)、Alf(P5,层ID 0)和Alf(P3,层ID 0))。视频编码器20可以确定ALF集合列表的尺寸。例如,视频编码器20可以确定ALF 集合列表的尺寸等于可用ALF集合(例如,3),以及可以选择3个最近添加到缓冲器中的具有小于或等于当前块的时间层(例如,0)的时间层ID 的ALF集合,以构造ALF集合列表。例如,视频编码器20可以取得所确定的可用ALF集合,直到达到ALF集合列表的尺寸为止。
在该示例中,ALF集合列表包括Alf(P7)、Alf(P5)和Alf(P3)。视频编码器20可以将为3的值发信号通知给视频解码器30以指示ALF集合列表的尺寸。
视频解码器30可以确定被存储在其缓冲器中的可以用于对当前块执行自适应环路滤波的可用ALF集合。在该示例中,由于用于当前块的时间层 ID为0,则视频解码器30的缓冲器中的全部ALF集合可以被确定为可用于对当前块执行自适应环路滤波。然而,在另一示例中,如果用于视频解码器30的缓冲器存储的ALF集合与为2或小于2的时间层ID相关联,以及用于当前块的时间层ID为1,那么视频解码器30可以从所存储的具有小于或等于1的时间层ID的ALF集合中确定可用ALF集合作为可以用于对当前块执行自适应环路滤波的可用ALF集合。
如所描述的,视频解码器30可以接收指示ALF集合列表的尺寸的信息。视频解码器30可以基于所接收的ALF集合列表的尺寸来构造ALF集合列表。例如,视频解码器30可以选择被添加到缓冲器中并且具有小于或等于当前块的时间层ID的时间层ID的3个最近添加的ALF集合(例如,从所确定的可用ALF集合中选择3个最近的ALF集合),以及将所选择的 ALF集合添加到ALF集合列表中。在该示例中,3个最近添加的ALF集合包括Alf(P7)、Alf(P5)和Alf(P3)。因此,即使视频编码器20的缓冲器和视频解码器30的缓冲器存储不同的ALF集合,视频编码器20和视频解码器 30构造的ALF集合列表也可以是相同的(由于视频编码器20约束ALF集合列表的尺寸并且将该尺寸发信号通知给视频解码器30)。
在一些示例中,在该约束下,用于每个块的可用滤波器集合的数量是已知的,以及诸如截断二进制译码的截断译码技术可以用于发信号通知用于块的滤波器集合索引(例如,关于从视频编码器20向视频解码器30发信号通知比特流)。视频解码器30可以利用截断二进制解码技术来确定滤波器集合索引。
例如,视频编码器20可以发信号通知针对ALF集合列表的标识将用于对当前块进行自适应环路滤波的ALF集合的索引。在一些示例中,视频编码器20可以对索引进行截断二进制编码。视频解码器30可以接收经截断二进制编码的索引以及对经截断二进制编码的索引进行解码以生成经解码的索引。视频解码器30可以基于经解码的针对ALF集合列表的索引来确定要用于对当前块进行自适应环路滤波的ALF集合。
当没有针对当前图片/切片/片区来发信号通知时间缓冲器中的可用滤波器集合的数量时(例如,如果视频编码器20没有向视频解码器30发信号通知时间缓冲器中的可用滤波器集合的数量),可以使用两个分别的滤波器集合缓冲器。视频编码器20可以发信号通知标志以指示使用哪个缓冲器。一个缓冲器被填充有预定义的滤波器集合和新的滤波器集合。可以不存在关于发信号通知该缓冲器中的滤波器集合索引的方法的约束。另一个缓冲器被填充有时间滤波器集合,以及可以不使用截断译码方法来发信号通知该缓冲器中的索引。
在一些示例中,仅一个缓冲器用于被填充有一个或多个预定义的滤波器集合、新的滤波器集合和时间滤波器集合。在这样的示例中,在一些情况下,可以填充一个或多个预定义的滤波器集合和新的滤波器集合,之后跟随着时间滤波器集合。该缓冲器中的滤波器集合索引可以不是利用截断译码方法(诸如截断二进制译码)发信号通知的。替代地,视频编码器20 可以发信号通知标志以指示是否使用时间滤波器集合。如果该标志被设置为真,则视频编码器20可以发信号通知时间滤波器集合索引,以及在一些示例中,由于最大数量可能是未知的,所以应当利用非截断信令(例如,非截断译码,诸如二进制译码)方法来发信号通知时间滤波器集合索引。如果标志被设置为假,则可以不存在关于针对预定义的和新的滤波器集合索引的信令方法的限制。
图5是示出可以实现在本公开内容中描述的技术的示例视频编码器20 的框图。视频编码器20可以执行对视频切片内的视频块的帧内预测和帧间预测译码。帧内译码依赖于空间预测以减少或去除在给定视频帧或图片内的视频中的空间冗余。帧间译码依赖于时间预测以减少或去除在视频序列的相邻帧或图片内的视频中的时间冗余。帧内模式(I模式)可以指代若干种基于空间的压缩模式中的任何一种模式。诸如单向预测(P模式)或双向预测(B模式)的帧间模式可以指代若干种基于时间的压缩模式中的任何一种模式。
示出了图5的各个单元以帮助理解由视频编码器20执行的操作。这些单元可以被实现为固定功能电路、可编程电路、或其组合(例如,处理电路)。固定功能电路指代提供特定功能并且关于可以被执行的操作而预先设置的电路。可编程电路指代可以被编程以执行各种任务并且在可以被执行的操作中提供灵活功能的电路。例如,可编程电路可以执行软件或固件,软件或固件使得可编程电路以软件或固件的指令所定义的方式进行操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,这些单元中的一个或多个单元可以是不同的电路块(固定功能或可编程),以及在一些示例中,这些单元中的一个或多个单元可以是集成电路。
视频编码器20可以包括由可编程电路形成的算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或可编程核。在其中使用由可编程电路执行的软件来执行视频编码器20的操作的示例中,存储器可以存储视频编码器20接收并且执行的软件的指令(例如,目标代码),或者视频编码器20内的另一存储器(未示出)可以存储这样的指令。
在图5的示例中,视频编码器20包括视频数据存储器33、分割单元 35、预测处理单元41、求和器50、变换处理单元52、量化单元54、熵编码单元56。预测处理单元41包括运动估计单元(MEU)42、运动补偿单元(MCU)44和帧内预测单元46。对于视频块重构,视频编码器20还包括逆量化单元58、逆变换处理单元60、求和器62、滤波器单元64和解码图片缓冲器(DPB)66。
如图5所示,视频编码器20可以接收视视频数据以及将所接收的视频数据存储在视频数据存储器33中。视频数据存储器33可以存储要被视频编码器20的组件解码的视频数据。被存储在视频数据存储器33中的视频数据可以是从例如视频源18获得的。DPB 66可以是参考图片存储器,其存储参考视频数据以供在由视频编码器20对视频数据进行编码(例如,在帧内译码模式或帧间译码模式下)时使用。视频数据存储器33和DPB 66 可以由各种存储器设备中的任何一者形成,诸如动态随机存取存储器 (DRAM)(包括同步DRAM(SDRAM))、磁阻RAM(MRAM)、电阻性 RAM(RRAM)、或其它类型的存储器设备。视频数据存储器33和DPB 66 可以由相同的存储器设备或分别的存储器设备来提供。在各个示例中,视频数据存储器33可以与视频编码器20的其它组件在芯片上,或者相对于那些组件在芯片外。
分割单元35从视频数据存储器33取得视频数据,以及将视频数据分割为视频块。这种分割还可以包括例如根据LCU和CU的四叉树结构来分割为切片、片区或其它较大的单元,以及视频块分割。视频编码器20总体上示出了对在要被编码的视频切片内的视频块进行编码的组件。切片可以被划分为多个视频块(以及可能被划分为被称为片区的视频块集合)。预测处理单元41可以基于误差结果(例如,译码速率和失真水平等)来针对当前视频块选择多个可能的编码模式中的一者,诸如多个帧内译码模式中的一者或多个帧间译码模式中的一者。预测处理单元41可以将所得到的帧内或帧间译码块提供给求和器50以生成残差块数据,以及提供给求和器62 以重构经编码的块以用作参考图片。
在预测处理单元41内的帧内预测单元46可以相对于在与要被译码的当前视频块相同的帧或切片中的一个或多个相邻块,来执行对当前块的帧内预测译码,以提供空间压缩。在预测处理单元41内的运动估计单元42 和运动补偿单元44相对于在一个或多个参考图片中的一个或多个预测块,来执行对当前视频块的帧间预测译码,以提供时间压缩。
运动估计单元42可以被配置为根据用于视频序列的预先确定的模式来确定用于视频切片的帧间预测模式。预先确定的模式可以将序列中的视频切片指定为P切片或B切片。运动估计单元42和运动补偿单元44可以是高度集成的,但是出于概念性目的而被分别示出。由运动估计单元42执行的运动估计是生成运动矢量的过程,该运动矢量估计针对视频块的运动。运动矢量例如可以指示在当前视频帧或图片内的视频块的PU相对于在参考图片内的预测块的位移。
预测块是被发现在像素差方面与要被译码的视频块的PU紧密匹配的块,其可以通过绝对差之和(SAD)、平方差之和(SSD)或其它差度量来确定。在一些示例中,视频编码器20可以计算用于被存储在DPB 66中的参考图片的低于整数(sub-integer)的像素位置的值。例如,视频编码器20 可以对四分之一像素位置、八分之一像素位置或参考图片的其它分数像素位置的值进行插值。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索,以及以分数像素精度输出运动矢量。
运动估计单元42通过将在经帧间译码的切片中的视频块的PU的位置与参考图片的预测块的位置进行比较,来计算针对PU的运动矢量。可以从第一参考图片列表(列表0)或第二参考图片列表(列表1)中选择参考图片,这两个参考图片列表中的每一者标识被存储在DPB 66中的一个或多个参考图片。运动估计单元42将所计算出的运动矢量发送给熵编码单元56 和运动补偿单元44。
由运动补偿单元44执行的运动补偿可以涉及基于通过运动估计而确定的运动矢量来取得或生成预测块,可能对低于像素(sub-pixel)的精度执行插值。在接收到针对当前视频块的PU的运动矢量时,运动补偿单元44可以在参考图片列表中的一者中定位运动矢量所指向的预测块。视频编码器 20通过从正被译码的当前视频块的像素值中减去预测块的像素值来形成像素差值,从而形成残差视频块。像素差值形成针对该块的残差数据,以及可以包括亮度差分量和色度差分量两者。求和器50表示执行这种减法运算的一个或多个组件。运动补偿单元44还可以生成与视频块和视频切片相关联的语法元素,以供视频解码器30在对视频切片的视频块进行解码时使用。
在预测处理单元41经由帧间预测或帧内预测来生成用于当前视频块的预测块之后,视频编码器20通过从当前视频块中减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或多个TU中,以及被应用于变换处理单元52。变换处理单元52使用变换(诸如离散余弦变换(DCT) 或概念上类似的变换)来将残差视频数据变换为残差变换系数。变换处理单元52可以将残差视频数据从像素域转换到变换域(诸如频域)。
变换处理单元52可以将所得到的变换系数发送给量化单元54。量化单元54对变换系数进行量化以进一步降低比特率。量化过程可以减少与系数中的一些或全部系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可以执行对包括经量化的变换系数的矩阵的扫描。在另一示例中,熵编码单元56可以执行该扫描。
在量化之后,熵编码单元56对经量化的变换系数进行熵编码。例如,熵编码单元56可以执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一种熵编码方法或技术。在由熵编码单元56进行熵编码之后,可以将经编码的比特流发送给视频解码器30,或者将其存档以供稍后传输或者由视频解码器30取得。熵编码单元56还可以对用于正被译码的当前视频切片的运动矢量和其它语法元素进行熵编码。
逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换,以重构像素域中的残差块,以供稍后用作参考图片的参考块。运动补偿单元44 可以通过将残差块与在参考图片列表中的一者内的参考图片中的一者的预测块相加来计算参考块。运动补偿单元44还可以将一个或多个插值滤波器应用于经重构的残差块,以计算用于运动估计的低于整数的像素值。求和器62将经重构的残差块与由运动补偿单元44产生的经运动补偿的预测块相加,以产生经重构的块。
滤波器单元64对经重构的块(例如,求和器62的输出)进行滤波,以及将经滤波的重构块存储在DPB 66中以用作参考块。参考块可以由运动估计单元42和运动补偿单元44用作参考块,以对在后续的视频帧或图片中的块进行帧间预测。滤波器单元64可以执行任何类型的滤波,诸如去块滤波、SAO滤波、峰值SAO滤波、ALF和/或GALF、和/或其它类型的环路滤波器。去块滤波器可以例如应用去块滤波以对块边界进行滤波以从经重构的视频中去除块状伪影。峰值SAO滤波器可以对经重构的像素值应用偏移,以便提高整体编码质量。还可以使用额外的环路滤波器(环路内或环路后)。
作为一个示例,滤波器单元64可以被配置为在编码过程中的解码环路 (例如,重构环路)之后执行自适应环路滤波。例如,逆量化单元58、逆变换处理单元60和求和器62可以在编码过程中一起形成解码环路,以便创建可以用作用于后续块的预测块的经重构的视频块。
在本公开内容中描述的一个或多个示例中,滤波器单元64和熵编码单元56可以被配置为执行在本公开内容中描述的示例技术。为了易于理解而描述了执行示例技术的滤波器单元64和熵编码单元56,以及其不应当被认为是限制性的。滤波器单元64、熵编码单元56和/或视频编码器20的其它组件可以被配置为执行示例技术。
作为一个示例,滤波器单元64可以确定被存储在缓冲器(例如,视频数据存储器33、DPB 66或某个其它存储器)中的可以用于对当前块执行自适应环路滤波的可用ALF集合。例如,滤波器单元64可以确定用于当前块的时间层标识值,以及被存储在缓冲器中的哪些ALF集合具有小于或等于用于当前块的时间层标识值的时间层标识值。也就是说,可用ALF集合包括具有小于或等于当前块的时间层标识值的时间层标识值的ALF集合。被存储在缓冲器中的ALF集合包括先前译码的块的ALF集合。在一些示例中,先前译码的块可以是与包括当前块的当前图片不同的图片的块和/或当前图片的块。
在一些示例中,滤波器单元64可以确定ALF集合列表的尺寸,其可以小于或等于可用ALF集合的数量。在ALF集合列表的尺寸等于可用ALF 集合的数量的示例中,确定ALF集合列表的尺寸的滤波器单元64可以被认为是确定可用ALF集合的滤波器单元64的一部分。
滤波器单元64可以基于ALF集合列表的尺寸,根据所确定的可用ALF 集合来构造ALF集合列表。例如,滤波器单元64可以取得所确定的可用 ALF集合,直到达到ALF集合列表的尺寸为止。如上所述,所确定的可用 ALF集合是与小于或等于当前块的时间层标识值的时间层标识值相关联的那些ALF集合。
滤波器单元64可以基于ALF集合列表来确定用于当前块的ALF集合 (例如,基于所构造的ALF集合列表来确定ALF集合中的用于当前块的 ALF集合)。例如,滤波器单元64可以从ALF集合列表中选择ALF集合作为用于当前块的ALF集合。作为另一示例,滤波器单元64可以从ALF 集合列表中选择ALF集合,以及加上偏移以确定用于当前块的ALF集合。滤波器单元64可以基于所确定的ALF集合来对当前块执行自适应环路滤波。
在一个或多个示例中,熵编码单元56可以被配置为发信号通知指示用于视频解码器30最终接收的ALF集合列表的尺寸的信息。滤波器单元64 可以向熵编码单元56输出ALF集合列表中的索引,该索引标识滤波器单元 64用于确定用于当前块的ALF集合的ALF集合。在一些示例中,熵编码单元56可以发信号通知针对ALF集合列表的标识所确定的ALF集合的索引。例如,熵编码单元56可以对针对ALF集合列表的索引进行截断二进制编码,以及发信号通知针对ALF集合列表的经截断二进制编码的索引。
图6是示出可以实现在本公开内容中描述的技术的示例视频解码器30 的框图。示出了图6的各个单元以帮助理解由视频解码器30执行的操作。这些单元可以被实现为固定功能电路、可编程电路、或其组合(例如,处理电路)。固定功能电路指代提供特定功能并且关于可以被执行的操作而预先设置的电路。可编程电路指代可以被编程以执行各种任务并且在可以被执行的操作中提供灵活功能的电路。例如,可编程电路可以执行软件或固件,软件或固件使得可编程电路以软件或固件的指令所定义的方式进行操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不可变的。在一些示例中,这些单元中的一个或多个单元可以是不同的电路块(固定功能或可编程),以及在一些示例中,这些单元中的一个或多个单元可以是集成电路。
视频解码器30可以包括由可编程电路形成的算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或可编程核。在使用由可编程电路执行的软件来执行视频解码器30的操作的示例中,存储器可以存储视频解码器30接收并且执行的软件的指令(例如,目标代码),或者视频解码器30内的另一存储器(未示出)可以存储这样的指令。
图6的视频解码器30可以例如被配置为接收上文关于图5的视频编码器20所描述的信令。在图6的示例中,视频解码器30包括视频数据存储器78、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、求和器90和DPB 94。预测处理单元81包括运动补偿单元82和帧内预测处理单元84。在一些示例中,视频解码器30可以执行通常与关于来自图5的视频编码器20所描述的编码通路互易的解码通路。
在解码过程期间,视频解码器30从视频编码器20接收经编码的视频比特流,其表示经编码的视频切片的视频块和相关联的语法元素。视频解码器30将所接收的经编码的视频比特流存储在视频数据存储器78中。视频数据存储器78可以存储要由视频解码器30的组件解码的视频数据,诸如经编码的视频比特流。被存储在视频数据存储器78中的视频数据可以例如经由链路16从存储设备26、或从本地视频源(诸如相机)、或通过访问物理数据存储介质来获得。视频数据存储器78可以形成译码图片缓冲器 (CPB),其存储来自经编码的视频比特流的经编码的视频数据。DPB 94 可以是参考图片存储器,其存储参考视频数据以供例如在由视频解码器30 对视频数据进行解码(例如,在帧内译码模式或帧间译码模式下)时使用。视频数据存储器78和DPB 94可以由各种各样的存储器设备中的任何一者形成,诸如DRAM、SDRAM、MRAM、RRAM、或其它类型的存储器设备。视频数据存储器78和DPB 94可以由相同的存储器设备或分别的存储器设备来提供。在各个示例中,视频数据存储器78可以与视频解码器30 的其它组件在芯片上,或者相对于那些组件在芯片外。
视频解码器30的熵解码单元80对被存储在视频数据存储器78中的视频数据进行解码,以生成经量化的系数、运动矢量和其它语法元素。熵解码单元80将运动矢量和其它语法元素转发给预测处理单元81。视频解码器 30可以接收在视频切片级别和/或视频块级别的语法元素。
当视频切片被译码为经帧内译码(I)的切片时,预测处理单元81的帧内预测单元84可以基于发信号通知的帧内预测模式以及来自当前帧或图片的先前经解码的块中的数据,来生成用于当前视频切片的视频块的预测数据。当视频帧被译码为经帧间译码的切片(例如,B切片或P切片)时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量以及其它语法元素来产生用于当前视频切片的视频块的预测块。可以从在参考图片列表中的一者内的参考图片中的一者产生预测块。视频解码器30 可以基于被存储在DPB94中的参考图片,使用默认构造技术来构造参考帧列表,即列表0和列表1。
运动补偿单元82通过解析运动矢量和其它语法元素来确定用于当前视频切片的视频块的预测信息,以及使用该预测信息来产生用于正在被解码的当前视频块的预测块。例如,运动补偿单元82使用所接收的语法元素中的一些语法元素来确定用于对视频切片的视频块进行译码的预测模式(例如,帧内或帧间预测)、帧间预测切片类型(例如,B切片或P切片)、用于针对该切片的参考图片列表中的一个或多个参考图片列表的构造信息、用于该切片的每个经帧间编码的视频块的运动矢量、用于该切片的每个经帧间译码的视频块的帧间预测状态、以及用于对当前视频切片中的视频块进行解码的其它信息。
运动补偿单元82还可以基于插值滤波器来执行插值。运动补偿单元82 可以使用在对视频块的编码期间由视频编码器20使用的插值滤波器来计算针对参考块的低于整数的像素的插入的值。在这种情况下,运动补偿单元 82可以根据所接收的语法元素来确定由视频编码器20使用的插值滤波器,以及使用插值滤波器来产生预测块。
逆量化单元86对在比特流中提供并且由熵解码单元80解码的经量化的变换系数进行逆量化,即解量化。逆量化过程可以包括使用由视频编码器20针对视频切片中的每个视频块计算的量化参数来确定量化程度,以及同样地确定应当被应用的逆量化度。逆变换处理单元88将逆变换(例如,逆DCT)、逆整数变换或概念上类似的逆变换过程应用于变换系数,以便在像素域中产生残差块。
在预测处理单元81使用例如帧内预测或帧间预测来生成用于当前视频块的预测块之后,视频解码器30通过将来自逆变换处理单元88的残差块与由运动补偿单元82生成的对应的预测块相加,从而形成经重构的视频块。求和器90表示执行这种求和运算的一个或多个组件。
滤波器单元92对经重构的块(例如,求和器90的输出)进行滤波,以及将经滤波的重构块存储在DPB 94中以用作参考块。参考块可以由运动补偿单元82用作参考块,以对后续的视频帧或图片中的块进行帧间预测。滤波器单元92可以执行任何类型的滤波,诸如去块滤波、SAO滤波、峰值 SAO滤波、ALF和/或GALF、和/或其它类型的环路滤波器。去块滤波器可以例如应用去块滤波以对块边界进行滤波以从经重构的视频中去除块状伪影。峰值SAO滤波器可以对经重构的像素值应用偏移,以便提高整体编码质量。还可以使用额外的环路滤波器(环路内或环路后)。
作为一个示例,滤波器单元92可以被配置为执行自适应环路滤波,作为解码过程的一部分。例如,滤波器单元92可以执行自适应环路滤波以生成被输出以供显示的经解码的视频数据。另外,在一些示例中,滤波器单元92可以执行自适应环路滤波以生成预测块,该预测块可以用作用于对后续块进行解码的预测器。
在本公开内容中描述的一个或多个示例中,滤波器单元92和熵解码单元80可以被配置为执行在本公开内容中描述的示例技术。为了易于理解而描述了执行示例技术的滤波器单元92和熵解码单元80,以及其不应当被认为是限制性的。滤波器单元92、熵解码单元80和/或视频解码器30的其它组件可以被配置为执行示例技术。
作为一个示例,滤波器单元92可以确定被存储在缓冲器(例如,视频数据存储器78、DPB 94或某个其它存储器)中的可以用于对当前块执行自适应环路滤波的可用ALF集合。例如,滤波器单元92可以确定用于当前块的时间层标识值(例如,基于由视频编码器20发信号通知的时间层标识值),以及被存储在缓冲器中的哪些ALF集合具有小于或等于用于当前块的时间层标识值的时间层标识值。也就是说,可用ALF集合包括具有小于或等于当前块的时间层标识值的时间层标识值的ALF集合。被存储在缓冲器中的 ALF集合包括先前译码的块的ALF集合。在一些示例中,先前译码的块可以是与包括当前块的当前图片不同的图片的块和/或当前图片的块。
在一些示例中,滤波器单元92可以确定ALF集合列表的尺寸,其可以小于或等于可用ALF集合的数量。例如,熵解码单元80可以接收指示 ALF集合列表的尺寸的信息,以及向滤波器单元92输出指示ALF集合列表的尺寸的信息。
滤波器单元92可以基于ALF集合列表的尺寸,根据所确定的可用ALF 集合来构造ALF集合列表。例如,滤波器单元92可以取得所确定的可用 ALF集合,直到达到ALF集合列表的尺寸为止。如上所述,所确定的可用 ALF集合是与小于或等于当前块的时间层标识值的时间层标识值相关联的那些ALF集合。
滤波器单元92可以基于ALF集合列表来确定用于当前块的ALF集合 (例如,基于所构造的ALF集合列表来确定ALF集合中的用于当前块的 ALF集合)。滤波器单元92可以接收针对ALF集合列表的索引,以及可以根据索引来确定ALF集合。作为一个示例,熵解码单元80可以接收针对ALF集合列表的经截断二进制编码的索引,以及对经截断二进制编码的索引进行解码以生成经解码的索引。滤波器单元92可以基于经解码的针对 ALF集合列表的标识所确定的ALF集合的索引来确定ALF集合。
在一些示例中,滤波器单元92可以选择通过经解码的针对ALF集合列表的索引标识的ALF集合作为用于当前块的ALF集合。作为另一示例,滤波器单元92可以选择通过经解码的针对ALF集合列表的索引标识的 ALF集合,以及加上偏移以确定用于当前块的ALF集合。滤波器单元92 可以基于所确定的ALF集合来对当前块执行自适应环路滤波。
图7示出了滤波器单元92的示例实现方式。滤波器单元64可以以相同的方式来实现。滤波器单元64和92可以执行本公开内容的技术(可能与视频编码器20或视频解码器30的其它组件相结合)。在图7的示例中,滤波器单元92包括去块滤波器102、SAO滤波器104和ALF/GALF滤波器 106。SAO滤波器104可以例如被配置为以在本公开内容中描述的方式来确定用于块的样本的偏移值。例如,ALF/GALF滤波器106可以被配置为执行在本公开内容中描述的示例技术。
滤波器单元92可以包括较少的滤波器和/或可以包括额外的滤波器。另外,在图7中所示的特定滤波器可以以不同的顺序来实现。其它环路滤波器(在译码环路中或在译码环路之后)还可以用于使像素变换平滑或以其它方式来提高视频质量。然后,将给定帧或图片中的经解码的视频块存储在DPB 94中,DPB 94存储用于后续运动补偿的参考图片。DPB94可以是存储经解码的视频以供稍后在显示设备(诸如图1的显示设备32)上呈现的额外存储器的一部分或与额外存储器分开的。
图8是示出对视频数据进行滤波的示例方法的流程图。在图8中所示的示例技术可以由视频解码器30(例如,经由滤波器单元92和熵解码单元 80)来执行。为了易于描述,关于处理电路和缓冲器来描述示例技术。处理电路的示例包括视频解码器30。对于视频解码器30,缓冲器的示例包括视频数据存储器78、DPB 94或耦合到视频解码器30或可由视频解码器30 访问的其它存储器。
此外,图8的示例流程图不应当被解释为要求特定的操作顺序。在图8 中所示的示例操作可以以不同的顺序来执行。作为一个示例,处理电路可以被配置为在确定可用ALF集合之前接收指示ALF集合列表的尺寸的信息。
在图8中所示的示例中,缓冲器可以存储ALF集合,其中ALF集合包括先前译码的块的ALF集合。在一些示例中,先前译码的块可以是与包括当前块的当前图片不同的图片的块和/或当前图片的块。处理电路可以确定被存储在缓冲器中的可以用于对当前块执行自适应环路滤波的可用ALF集合(110)。可用ALF集合可以包括具有小于或等于当前块的时间层标识值的时间层标识值的ALF集合。
在处理电路是用于视频解码器30的示例中,处理电路可以被配置为接收指示ALF集合列表的尺寸的信息(112)。处理电路可以被配置为基于所指示的ALF集合列表的尺寸,根据所确定的可用ALF集合来构造ALF集合列表(114)。例如,处理电路可以通过取得所确定的可用ALF集合(例如,被存储在缓冲器中的最近ALF集合)直到达到ALF集合列表的尺寸为止,从而构造ALF集合列表。
处理电路可以基于所构造的ALF集合列表来确定ALF集合中的用于当前块的ALF集合(116)。作为一个示例,在处理电路是用于视频解码器30 的情况下,处理电路可以接收针对ALF集合列表的标识ALF集合的索引以确定当前块的ALF集合。例如,处理电路可以接收经截断二进制编码的索引,对经截断二进制编码的索引进行解码以生成经解码的索引,以及基于经解码的针对ALF集合列表的标识所确定的ALF集合的索引来确定ALF 集合。
处理电路可以基于所确定的ALF集合来对当前块执行自适应环路滤波 (118)。例如,在处理电路是用于视频解码器30的情况下,处理电路可以执行自适应环路滤波,作为解码过程的一部分。
图9是示出对视频数据进行滤波的另一示例方法的流程图。在图9中所示的示例技术可以由视频编码器20(例如,经由滤波器单元64和熵编码单元56)来执行。为了易于描述,关于处理电路和缓冲器来描述示例技术。处理电路的示例包括视频编码器20。对于视频编码器20,缓冲器的示例包括视频数据存储器33、DPB 66、或耦合到视频编码器20或视频编码器20 的组件或可由视频编码器20或视频编码器20访问的其它存储器。
此外,图9的示例流程图不应当被解释为要求特定的操作顺序。在图9 中所示的示例操作可以以不同的顺序来执行。作为一个示例,处理电路可以根据所确定的可用ALF集合来构造ALF集合列表,确定用于当前块的 ALF集合(例如,基于所构造的ALF集合列表来确定ALF集合中的用于当前块的ALF集合),和/或在发信号通知指示ALF集合列表的尺寸的信息之前或与发信号通知指示ALF集合列表的尺寸的信息并行地执行自适应环路滤波。
在图9中所示的示例中,缓冲器可以存储ALF集合,其中ALF集合包括先前译码的块的ALF集合。在一些示例中,先前译码的块可以是与包括当前块的当前图片不同的图片的块和/或当前图片的块。处理电路可以确定被存储在缓冲器中的可以用于对当前块执行自适应环路滤波的可用ALF集合(120)。可用ALF集合可以包括具有小于或等于当前块的时间层标识值的时间层标识值的ALF集合。
在处理电路是用于视频编码器20的示例中,处理电路可以被配置为基于所确定的可用ALF集合来确定ALF集合列表的尺寸。在这样的示例中,处理电路可以被配置为发信号通知指示ALF集合列表的尺寸的信息(122)。处理电路可以被配置为基于所指示的ALF集合列表的尺寸,根据所确定的可用ALF集合来构造ALF集合列表(124)。例如,处理电路可以通过取得所确定的可用ALF集合(例如,被存储在缓冲器中的最近ALF集合)直到达到ALF集合列表的尺寸为止,从而构造ALF集合列表。
处理电路可以基于所构造的ALF集合列表来确定ALF集合中的用于当前块的ALF集合(126)。作为一个示例,在处理电路是用于视频编码器20 的情况下,处理电路可以从ALF集合列表中选择ALF集合,以及将所选择的ALF集合设置为用于当前块的ALF集合,或者可以向所选择ALF集合加上偏移以确定用于当前块的ALF集合。处理电路可以发信号通知针对ALF集合列表的标识所选择的ALF集合的索引。作为一个示例,处理电路可以对针对ALF集合列表的索引进行截断二进制编码,以及发信号通知经截断二进制编码的针对ALF集合列表的索引。
处理电路可以基于所确定的ALF集合来对当前块执行自适应环路滤波 (128)。例如,在处理电路是用于视频编码器20的情况下,处理电路可以在编码过程中的解码环路之后执行自适应环路滤波。
关于确定用于当前块的ALF集合以及基于所确定的ALF集合来针对当前块执行自适应环路滤波而描述了上文的示例技术。这样的示例技术涵盖其中ALF集合是针对包括当前块的整个切片、片区或图片来确定的示例。通过确定用于包括当前块的切片、片区或图片的ALF集合,处理电路可以被视为确定用于当前块的ALF集合。此外,被存储在缓冲器中的ALF集合被描述为用于先前译码的块的ALF集合。ALF集合可以用于包括先前译码的块的切片、片区或图片,因为ALF集合用于对先前译码的块进行自适应环路滤波。
下文是可以与在本公开内容中描述的任何技术一起和/或相结合执行的一些示例技术。下文的示例仅是一些示例,以及不应当被视为限制性的或者在全部示例中是必要的。
示例1。一种对视频数据进行编码的方法,所述方法包括:确定被存储到时间缓冲器中的可用自适应环路滤波器(ALF)集合的数量;以及在经编码的视频比特流中发信号通知所述可用ALF集合的数量。
示例2。一种对经编码的视频数据进行解码的方法,所述方法包括:在经编码的视频比特流中接收可用自适应环路滤波器(ALF)集合的数量;基于所接收的可用ALF集合的数量,从时间缓冲器中取得一个或多个ALF集合;以及使用所取得的一个或多个ALF集合来重构所述经编码的视频数据的至少一部分。
示例3。根据示例1或示例2所述的方法,其中,所述可用ALF集合适用于当前图片。
示例4。根据示例1或示例2所述的方法,其中,所述可用ALF集合适用于当前切片。
示例5。根据示例1或示例2所述的方法,其中,所述可用ALF集合适用于当前片区。
示例6。根据示例1所述的方法,其中,在所述经编码的视频比特流中发信号通知所述可用ALF集合的数量包括:使用截断二进制译码来发信号通知所述ALF集合的数量。
示例7。根据示例2所述的方法,其中,在所述经编码的视频比特流中接收的所述可用ALF集合的数量是根据截断二进制译码来发信号通知的。
示例8。一种对经编码的视频数据进行解码的方法,所述方法包括:在经编码的视频比特流中接收标识被包括在多个缓冲器中的特定缓冲器的语法元素;以及利用一个或多个预定义的自适应环路滤波器(ALF)集合来填充所述特定缓冲器。
示例9。根据示例8所述的方法,其中,所述语法元素是一比特标志。
示例10。根据示例8或示例9所述的方法,其中,通过所述语法元素标识的所述特定缓冲器是第一缓冲器,所述方法还包括:识别与所述第一缓冲器不同的第二缓冲器;以及利用一个或多个时间滤波器集合来填充所述第二缓冲器。
示例11。一种对经编码的视频数据进行解码的方法,所述方法包括:在经编码的视频比特流中接收语法元素,所述语法元素指示时间滤波器集合将用于重构所述经编码的视频数据的一部分;以及在所述经编码的视频比特流中接收时间滤波器集合索引。
示例12。根据示例11所述的方法,其中,所述时间滤波器集合索引是根据非截断译码在所述经编码的视频比特流中发信号通知的。
示例13。根据示例11或示例12所述的方法,其中,所述语法元素是一比特标志。
示例14。一种对视频数据进行编码的方法,所述方法包括:在经编码的视频比特流中发信号通知语法元素,所述语法元素指示时间滤波器集合将用于重构所述经编码的视频比特流的一部分;以及基于所述语法元素指示所述时间滤波器集合将用于重构所述经编码的视频比特流的所述一部分,在所述经编码的视频比特流中发信号通知时间滤波器集合索引。
示例15。根据示例14所述的方法,其中,在所述经编码的视频比特流中发信号通知所述时间滤波器集合索引包括:根据非截断译码来发信号通知所述时间滤波器集合索引。
示例16。根据示例14或示例15所述的方法,其中,所述语法元素是一比特标志。
示例17。一种视频译码设备,包括:视频数据存储器,其存储所述视频数据;以及与所述视频数据存储器进行通信的处理电路,所述处理电路被配置为执行根据示例1-16中任一项所述的方法。
示例18。根据示例17所述的视频译码设备,其中,所述视频译码设备包括视频解码设备,以及所述处理电路包括:包括视频解码器的固定功能或可编程电路中的至少一者。
示例19。根据示例17所述的视频译码设备,其中,所述视频译码设备包括视频编码设备,以及所述处理电路包括:包括视频编码器的固定功能或可编程电路中的至少一者。
示例20。根据示例19所述的视频译码设备,其中,所述视频译码设备被配置为执行视频解码。
示例21。一种装置,包括:用于执行根据示例1-16中任一项所述的方法的单元。
示例22。一种被编码有指令的计算机可读存储介质,所述指令在被执行时使得视频译码设备的处理器执行根据示例1-16中任一项所述的方法。
示例23。在本公开内容中描述的技术的任何组合。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则所述功能可以作为一个或多个指令或代码被存储在计算机可读介质上或者通过其进行发送以及由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质的有形介质,或者包括例如根据通信协议来促进计算机程序从一个地方传送到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质、或者(2)诸如信号或载波的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器访问以取回用于实现在本公开内容中描述的技术的指令、代码和/或数据结构的任何可用的介质。计算机程序产品可以包括计算机可读介质。
举例来说而非进行限制,这样的计算机可读存储介质可以是以下各项中的任何一项:RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或者能够用于以指令或数据结构形式存储期望的程序代码以及能够由计算机访问的任何其它介质。此外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者无线技术(诸如红外线、无线电和微波)从网站、服务器或其它远程源发送指令,则同轴电缆、光纤光缆、双绞线、 DSL或者无线技术(诸如红外线、无线电和微波)被包括在介质的定义中。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是替代地针对非暂时性的有形存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘利用激光来光学地复制数据。上述各项的组合也应当被包括在计算机可读介质的范围之内。
指令可以由一个或多个处理器来执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或其它等效的集成或分立逻辑电路。因此,如本文所使用的术语“处理器”和“处理电路”可以指代前述结构中的任何一者或者适于实现本文描述的技术的任何其它结构。另外,在一些方面中,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者被并入经组合的编解码器中。此外,所述技术可以完全在一个或多个电路或逻辑元件中实现。
本公开内容的技术可以在各种各样的设备或装置中实现,包括无线手机、集成电路(IC)或IC组(例如,芯片组)。在本公开内容中描述了各种组件、模块或单元以强调被配置为执行所公开的技术的设备的功能性方面,但是不一定需要通过不同的硬件单元来实现。而是,如上所述,各个单元可以被组合在编解码器硬件单元中,或者由互操作的硬件单元的集合 (包括如上所述的一个或多个处理器)结合适当的软件和/或固件来提供。
已经描述了各个示例。这些和其它示例在所附的权利要求的范围内。

Claims (26)

1.一种对视频数据进行滤波的方法,所述方法包括:
在缓冲器中以尺寸N的单个一维阵列存储自适应环路滤波器(ALF)集合,其中,所述单个一维阵列中的每个元素存储相应的ALF集合以及用于指示所述相应的ALF集合的层的时间层标识值;
从所述缓冲器中的以所述单个一维阵列存储的所述ALF集合中确定能够用于对当前图片的当前块执行自适应环路滤波的可用ALF集合,其中,所述ALF集合包括先前译码的块的ALF集合,并且其中,所述可用ALF集合具有小于或等于所述当前块的时间层标识值的时间层标识值;
接收指示ALF集合列表的尺寸的信息;
根据所确定的可用ALF集合来构造具有所指示的尺寸的ALF集合列表;
基于所构造的ALF集合列表来确定用于所述当前块的ALF集合;以及
基于所确定的ALF集合来对所述当前块执行自适应环路滤波。
2.根据权利要求1所述的方法,其中,确定用于所述当前块的所述ALF集合包括:接收针对所述ALF集合列表的标识所述ALF集合的索引。
3.根据权利要求2所述的方法,其中,接收针对所述ALF集合列表的所述索引包括接收经截断二进制编码的索引,所述方法还包括对所述经截断二进制编码的索引进行解码以生成经解码的索引,其中,确定所述ALF集合包括基于经解码的针对所述ALF集合列表的标识所述ALF集合的索引来确定所述ALF集合。
4.根据权利要求1所述的方法,其中,构造所述ALF集合列表包括:取得所确定的可用ALF集合,直到达到所述ALF集合列表的所述尺寸为止。
5.根据权利要求1所述的方法,其中,执行所述自适应环路滤波包括:作为解码过程的一部分,执行所述自适应环路滤波。
6.根据权利要求1所述的方法,其中,所述先前译码的块的ALF集合包括以下各项中的至少一项:除了所述当前图片以外的图片中的块的ALF集合、或所述当前图片中的块的ALF集合。
7.一种用于对视频数据进行滤波的设备,所述设备包括:
缓冲器,其被配置为存储先前译码的块的自适应环路滤波器(ALF)集合;以及
处理电路,其被配置为:
在所述缓冲器中以尺寸N的单个一维阵列存储所述ALF集合,其中,所述单个一维阵列中的每个元素存储相应的ALF集合以及用于指示所述相应的ALF集合的层的时间层标识值;
从所述缓冲器中的以所述单个一维阵列存储的所述ALF集合中确定能够用于对当前图片的当前块执行自适应环路滤波的可用ALF集合,其中,所述可用ALF集合具有小于或等于所述当前块的时间层标识值的时间层标识值;
接收指示ALF集合列表的尺寸的信息;
根据所确定的可用ALF集合来构造具有所指示的尺寸的ALF集合列表;
基于所构造的ALF集合列表来确定用于所述当前块的ALF集合;以及
基于所确定的ALF集合来对所述当前块执行自适应环路滤波。
8.根据权利要求7所述的设备,其中,为了确定用于所述当前块的所述ALF集合,所述处理电路被配置为:接收针对所述ALF集合列表的标识所述ALF集合的索引。
9.根据权利要求8所述的设备,其中,为了接收针对所述ALF集合列表的所述索引,所述处理电路被配置为接收经截断二进制编码的索引,其中,所述处理电路被配置为对所述经截断二进制编码的索引进行解码以生成经解码的索引,并且其中,为了确定所述ALF集合,以及所述处理电路被配置为基于经解码的针对所述ALF集合列表的标识所述ALF集合的索引来确定所述ALF集合。
10.根据权利要求7所述的设备,其中,为了构造所述ALF集合列表,所述处理电路被配置为:取得所确定的可用ALF集合,直到达到所述ALF集合列表的所述尺寸为止。
11.根据权利要求7所述的设备,其中,所述处理电路是视频解码器,并且其中,为了执行所述自适应环路滤波,所述视频解码器被配置为:作为解码过程的一部分,执行所述自适应环路滤波。
12.根据权利要求7所述的设备,其中,所述先前译码的块的ALF集合包括以下各项中的至少一项:除了所述当前图片以外的图片中的块的ALF集合、或所述当前图片中的块的ALF集合。
13.根据权利要求7所述的设备,其中,所述设备包括无线通信设备。
14.一种对视频数据进行滤波的方法,所述方法包括:
在缓冲器中以尺寸N的单个一维阵列存储自适应环路滤波器(ALF)集合,其中,所述单个一维阵列中的每个元素存储相应的ALF集合以及用于指示所述相应的ALF集合的层的时间层标识值;
从所述缓冲器中的以所述单个一维阵列存储的所述ALF集合中确定能够用于对当前图片的当前块执行自适应环路滤波的可用ALF集合,其中,所述ALF集合包括先前译码的块的ALF集合,并且其中,所述可用ALF集合具有小于或等于所述当前块的时间层标识值的时间层标识值;
发信号通知指示ALF集合列表的尺寸的信息;
根据所确定的可用ALF集合来构造具有所指示的尺寸的ALF集合列表;
基于所构造的ALF集合列表来确定用于所述当前块的ALF集合;以及
基于所确定的ALF集合来对所述当前块执行自适应环路滤波。
15.根据权利要求14所述的方法,还包括:
发信号通知针对所述ALF集合列表的标识所确定的ALF集合的索引。
16.根据权利要求15所述的方法,还包括:
对针对所述ALF集合列表的所述索引进行截断二进制编码,
其中,发信号通知针对所述ALF集合列表的所述索引包括:发信号通知经截断二进制编码的针对所述ALF集合列表的索引。
17.根据权利要求14所述的方法,其中,构造所述ALF集合列表包括:取得所确定的可用ALF集合,直到达到所述ALF集合列表的所述尺寸为止。
18.根据权利要求14所述的方法,其中,执行所述自适应环路滤波包括:在编码过程中的解码环路之后执行所述自适应环路滤波。
19.根据权利要求14所述的方法,其中,所述先前译码的块的ALF集合包括以下各项中的至少一项:除了所述当前图片以外的图片中的块的ALF集合、或所述当前图片中的块的ALF集合。
20.一种用于对视频数据进行滤波的设备,所述设备包括:
缓冲器,其被配置为存储先前译码的块的自适应环路滤波器(ALF)集合;以及
处理电路,其被配置为:
在所述缓冲器中以尺寸N的单个一维阵列存储所述ALF集合,其中,所述单个一维阵列中的每个元素存储相应的ALF集合以及用于指示所述相应的ALF集合的层的时间层标识值;
从所述缓冲器中的以所述单个一维阵列存储的所述ALF集合中确定能够用于对当前图片的当前块执行自适应环路滤波的可用ALF集合,其中,所述可用ALF集合具有小于或等于所述当前块的时间层标识值的时间层标识值;
发信号通知指示ALF集合列表的尺寸的信息;
根据所确定的可用ALF集合来构造具有所指示的尺寸的ALF集合列表;
基于所构造的ALF集合列表来确定用于所述当前块的ALF集合;以及
基于所确定的ALF集合来对所述当前块执行自适应环路滤波。
21.根据权利要求20所述的设备,其中,所述处理电路被配置为:
发信号通知针对所述ALF集合列表的标识所确定的ALF集合的索引。
22.根据权利要求21所述的设备,其中,所述处理电路被配置为:
对针对所述ALF集合列表的所述索引进行截断二进制编码,
其中,为了发信号通知针对所述ALF集合列表的所述索引,所述处理电路被配置为发信号通知经截断二进制编码的针对所述ALF集合列表的索引。
23.根据权利要求20所述的设备,其中,为了构造所述ALF集合列表,所述处理电路被配置为:取得所确定的可用ALF集合,直到达到所述ALF集合列表的所述尺寸为止。
24.根据权利要求20所述的设备,其中,所述处理电路是视频编码器,并且其中,为了执行所述自适应环路滤波,所述视频编码器被配置为:在编码过程中的解码环路之后执行所述自适应环路滤波。
25.根据权利要求20所述的设备,其中,所述先前译码的块的ALF集合包括以下各项中的至少一项:除了所述当前图片以外的图片中的块的ALF集合、或所述当前图片中的块的ALF集合。
26.根据权利要求20所述的设备,其中,所述设备包括无线通信设备。
CN201980082273.6A 2018-12-20 2019-12-18 对视频数据进行滤波的方法和设备 Active CN113243111B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862783090P 2018-12-20 2018-12-20
US62/783,090 2018-12-20
US16/717,530 US11051017B2 (en) 2018-12-20 2019-12-17 Adaptive loop filter (ALF) index signaling
US16/717,530 2019-12-17
PCT/US2019/067220 WO2020132094A1 (en) 2018-12-20 2019-12-18 Adaptive loop filter (alf) index signaling

Publications (2)

Publication Number Publication Date
CN113243111A CN113243111A (zh) 2021-08-10
CN113243111B true CN113243111B (zh) 2022-09-16

Family

ID=71096982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980082273.6A Active CN113243111B (zh) 2018-12-20 2019-12-18 对视频数据进行滤波的方法和设备

Country Status (5)

Country Link
US (1) US11051017B2 (zh)
EP (1) EP3900361A1 (zh)
CN (1) CN113243111B (zh)
AR (1) AR117367A1 (zh)
WO (1) WO2020132094A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11284075B2 (en) 2018-09-12 2022-03-22 Qualcomm Incorporated Prediction of adaptive loop filter parameters with reduced memory consumption for video coding
US11284114B2 (en) 2019-04-23 2022-03-22 Qualcomm Incorporated Adaptive loop filter set index signaling
US11509897B2 (en) * 2020-08-07 2022-11-22 Samsung Display Co., Ltd. Compression with positive reconstruction error
US11503322B2 (en) 2020-08-07 2022-11-15 Samsung Display Co., Ltd. DPCM codec with higher reconstruction quality on important gray levels
WO2024054927A1 (en) * 2022-09-08 2024-03-14 Bytedance Inc. Method, apparatus, and medium for video processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107211154A (zh) * 2015-02-11 2017-09-26 高通股份有限公司 译码树单元级自适应环路滤波器
CN108881912A (zh) * 2016-05-23 2018-11-23 联发科技股份有限公司 自适应环路滤波方法及相应电路

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3061278B2 (ja) 1988-04-29 2000-07-10 ゼロックスコーポレーション 可変ビット長コード語のビット長通信方法
JP2011151431A (ja) 2009-12-25 2011-08-04 Sony Corp 画像処理装置および方法
US20120039383A1 (en) 2010-08-12 2012-02-16 Mediatek Inc. Coding unit synchronous adaptive loop filter flags
US9819966B2 (en) 2010-09-01 2017-11-14 Qualcomm Incorporated Filter description signaling for multi-filter adaptive filtering
US9813738B2 (en) 2010-10-05 2017-11-07 Hfi Innovation Inc. Method and apparatus of adaptive loop filtering
US9681132B2 (en) 2010-11-24 2017-06-13 Thomson Licensing Dtv Methods and apparatus for adaptive loop filtering in video encoders and decoders
US8989261B2 (en) 2011-02-23 2015-03-24 Qualcomm Incorporated Multi-metric filtering
DK3220641T3 (en) 2011-04-21 2019-03-25 Hfi Innovation Inc METHOD AND DEVICE FOR IMPROVED IN-LOOP FILTERING
US20120294353A1 (en) 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
US9277228B2 (en) 2011-07-18 2016-03-01 Qualcomm Incorporated Adaptation parameter sets for video coding
US20130114694A1 (en) 2011-11-08 2013-05-09 Qualcomm Incorporated Parameter set groups for coded video data
WO2013113997A1 (en) 2012-02-01 2013-08-08 Nokia Corporation Method and apparatus for video coding
EP2904797B1 (en) 2012-10-01 2021-08-11 Nokia Technologies Oy Method and apparatus for scalable video coding
US9807419B2 (en) 2014-06-25 2017-10-31 Qualcomm Incorporated Recovery point SEI message in multi-layer video codecs
WO2017192995A1 (en) * 2016-05-06 2017-11-09 Vid Scale, Inc. Method and system for decoder-side intra mode derivation for block-based video coding
WO2018122092A1 (en) 2016-12-30 2018-07-05 Telefonaktiebolaget Lm Ericsson (Publ) Methods, apparatus, and computer programs for decoding media
US10506230B2 (en) * 2017-01-04 2019-12-10 Qualcomm Incorporated Modified adaptive loop filter temporal prediction for temporal scalability support
JP2020120141A (ja) 2017-05-26 2020-08-06 シャープ株式会社 動画像符号化装置及び動画像復号装置、フィルタ装置
US11089299B2 (en) 2017-09-08 2021-08-10 Kt Corporation Method and device for processing video signal
US11451773B2 (en) 2018-06-01 2022-09-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) design and signaling
US11284075B2 (en) 2018-09-12 2022-03-22 Qualcomm Incorporated Prediction of adaptive loop filter parameters with reduced memory consumption for video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107211154A (zh) * 2015-02-11 2017-09-26 高通股份有限公司 译码树单元级自适应环路滤波器
CN108881912A (zh) * 2016-05-23 2018-11-23 联发科技股份有限公司 自适应环路滤波方法及相应电路

Non-Patent Citations (1)

* 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;第2章 *

Also Published As

Publication number Publication date
US11051017B2 (en) 2021-06-29
EP3900361A1 (en) 2021-10-27
AR117367A1 (es) 2021-07-28
US20200204800A1 (en) 2020-06-25
CN113243111A (zh) 2021-08-10
WO2020132094A1 (en) 2020-06-25

Similar Documents

Publication Publication Date Title
JP7423653B2 (ja) ビデオコーディングにおける適応パラメータセット(aps)を用いるブロックベースの適応ループフィルタ(alf)
JP7422684B2 (ja) ブロックベースの適応ループフィルタ(alf)の設計およびシグナリング
US10506228B2 (en) Variable number of intra modes for video coding
CN109716765B (zh) 用于视频译码中的帧内预测的经改进内插滤波器
EP3350995B1 (en) Palette predictor initialization and merge for video coding
CN110463202B (zh) 一种用于解码视频数据的方法、装置和设备
CN109076228B (zh) 滤波信息的发信号
CN109964482B (zh) 视频译码中指示双边滤波器使用的方法
CN113243111B (zh) 对视频数据进行滤波的方法和设备
CA3080177A1 (en) Intra-prediction with far neighboring pixels
US20190320172A1 (en) Hardware-friendly sample adaptive offset (sao) and adaptive loop filter (alf) for video coding
CN110800295A (zh) 无除法双边滤波器
RU2783335C2 (ru) Устройство и сигнализация адаптивного контурного фильтра (alf) на блочной основе

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