CN112655217B - 减少视频译码的内存消耗的自适应环路滤波器参数的时间预测 - Google Patents

减少视频译码的内存消耗的自适应环路滤波器参数的时间预测 Download PDF

Info

Publication number
CN112655217B
CN112655217B CN201980058289.3A CN201980058289A CN112655217B CN 112655217 B CN112655217 B CN 112655217B CN 201980058289 A CN201980058289 A CN 201980058289A CN 112655217 B CN112655217 B CN 112655217B
Authority
CN
China
Prior art keywords
alf
blocks
video
parameters
memory elements
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
CN201980058289.3A
Other languages
English (en)
Other versions
CN112655217A (zh
Inventor
H.E.埃吉尔梅兹
N.胡
V.塞雷金
W-J.钱
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 CN112655217A publication Critical patent/CN112655217A/zh
Application granted granted Critical
Publication of CN112655217B publication Critical patent/CN112655217B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • 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

Landscapes

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

Abstract

一种用于对视频数据进行解码的设备包括:存储器,被配置为存储视频数据;以及一个或多个处理器,被实现在电路中并且被配置为将自适应环路滤波器(ALF)参数集合存储在存储器中的一维阵列中,该一维阵列具有预定义大小的N个存储器元件,N是正整数值,其中一个或多个处理器被配置为在阵列的一个或多个存储器元件中存储对应的ALF参数和指示要从中估计对应的ALF参数的时间层的时间层标识符(ID)值两者;对视频数据的一个或多个块进行解码;以及使用一维阵列的ALF参数对一个或多个块进行滤波。设备可以在对一个或多个块进行解码之前进一步对一个或多个块进行编码。

Description

减少视频译码的内存消耗的自适应环路滤波器参数的时间 预测
本申请要求2019年9月11日提交的美国申请No.16/567,966、2018年9月12日提交的美国临时申请No.62/730,504的利益,其全部内容通过引用合并于此。
技术领域
本公开涉及视频编码和视频解码。
背景技术
可以将数字视频功能集成到各种设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏机、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流设备等。数字视频设备实现视频编码技术,诸如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、第10部分、高级视频编码(AVC)、ITU-T H.265/高效视频编码(HEVC)定义的标准中描述的那些,以及这种标准的扩展。通过实现这种视频编码技术,视频设备可以更有效地发送、接收、编码、解码和/或存储数字视频信息。
视频编码技术包括空间(图片内)预测和/或时间(图片间)预测以减少或移除视频序列中固有的冗余。对于基于块的视频编码,可以将视频切片(例如,视频图片或视频图片的一部分)划分(partition)为视频块,这些视频块也可以称为编码树单元(CTU)、编码单元(CU)和/或编码节点。相对于同一图片中相邻块中的参考样点,使用空间预测对图片的帧内编码(I)切片中的视频块进行编码。图片的帧间编码(P或B)切片中的视频块可使用相对于同一图片中相邻块中的参考样点的空间预测或相对于其他参考图片中的参考样点的时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。
发明内容
通常,本公开描述了一种可以减少自适应环路滤波(ALF)中的时间预测的内存使用的技术。与JEM 7中采用的时间预测相比,所描述的技术可以提供显著的内存减少,而压缩性能几乎没有损失或没有损失。本公开的技术可以用于在高级视频编解码器中开发ALF的更实际的实现方式,诸如H.265/HEVC的扩展和包括H.266/VVC的下一代视频编码标准。
在一个示例中,一种对视频数据进行解码的方法包括:将自适应环路滤波器(ALF)参数集合存储在具有预定义大小的N个存储器元件的一维阵列中,N是正整数值,其中存储ALF参数集合包括在阵列的一个或多个存储器元件中存储对应的ALF参数和指示要从中估计对应的ALF参数的时间层的时间层标识符(ID)值两者;对视频数据的一个或多个块进行解码;以及使用一维阵列的ALF参数对一个或多个块进行滤波。
在另一示例中,一种用于对视频数据进行解码的设备包括被配置为存储视频数据的存储器以及被实现在电路中的一个或多个处理器,并且该一个或多个处理器被配置为:将自适应环路滤波器(ALF)参数集合存储在存储器中的一维阵列中,该一维阵列具有预定义大小的N个存储器元件,N是正整数值,其中一个或多个处理器被配置为在阵列的一个或多个存储器元件中存储对应的ALF参数和指示要从中估计对应的ALF参数的时间层的时间层标识符(ID)值两者;对视频数据的一个或多个块进行解码;以及使用一维阵列的ALF参数对一个或多个块进行滤波。该设备可以在对一个或多个块进行解码之前进一步对一个或多个块进行编码。
在另一示例中,一种计算机可读存储介质在其上存储有指令,这些指令在被执行时使处理器:将自适应环路滤波器(ALF)参数集合存储在具有预定义大小的N个存储器元件的一维阵列中,N是正整数值,其中存储ALF参数集合包括在阵列的一个或多个存储器元件中存储对应的ALF参数和指示要从中估计对应的ALF参数的时间层的时间层标识符(ID)值两者;对视频数据的一个或多个块进行解码;以及使用一维阵列的ALF参数对一个或多个块进行滤波。
在另一示例中,一种用于对视频数据进行解码的设备包括:用于将自适应环路滤波器(ALF)参数集合存储在具有预定义大小的N个存储器元件的一维阵列中的部件,N是正整数值,其中存储ALF参数集合包括在阵列的一个或多个存储器元件中存储对应的ALF参数和指示要从中估计对应的ALF参数的时间层的时间层标识符(ID)值两者;用于对视频数据的一个或多个块进行解码的部件;以及用于使用一维阵列的ALF参数对一个或多个块进行滤波的部件。
一个或多个示例的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,其他特征、目的和优点将是显而易见的。
附图说明
图1是示出了示例自适应环路滤波器(ALF)支持的概念图。
图2是示出了分层帧结构中的示例时间层的概念图。
图3是示出了可执行本公开的技术的示例视频编码和解码系统的框图。
图4A和图4B是示出了示例四叉树二叉树(QTBT)结构以及对应的编码树单元(CTU)的概念图。
图5是示出了可执行本公开的技术的示例视频编码器的框图。
图6是示出了可执行本公开的技术的示例视频解码器的框图。
图7是示出了根据本公开的技术的对视频数据进行解码和滤波的示例方法的流程图。
具体实施方式
视频编码标准包括ITU-T H.261、ISO/IEC MPEG-1视觉、ITU-T H.262或ISO/IECMPEG-2视觉、ITU-T H.263、ISO/IEC MPEG-4视觉和ITU-T H.264(也称为ISO/IEC MPEG-4AVC),包括其可缩放视频编码(SVC)和多视图视频编码(MVC)扩展。
此外,ITU-T视频编码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)的视频编码联合协作组(JCT-VC)最近开发了一种新的视频编码标准,即高效视频编码(HEVC)。HEVC草案规范(以下称为HEVC WD)可以从phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip获得。HEVC标准于2013年1月完成。
ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)现在正在研究针对未来视频编码技术标准化的潜在需求,其压缩能力显著超过当前HEVC标准(包括其针对屏幕内容编码和高动态范围编码的当前扩展和近期扩展)。这些组在被称为联合视频探索小组(JVET)的联合协作中共同致力于这一探索活动,以评估在这一领域的专家所提出的压缩技术设计。JVET于2015年10月19日至21日首次会面。参考软件(即联合探索模型7(JEM 7))可以从jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-7.0/获得。
在视频编码领域,通常应用滤波来增强解码的视频信号的质量。滤波器可以用作后置滤波器,其中滤波后的帧不用于预测未来帧,也不用于环路内滤波器,在环路内滤波器中滤波后的帧用于预测未来帧。可以例如通过最小化原始信号和解码的滤波信号之间的误差来设计滤波器。如同在变换系数中一样,可以根据以下等式对滤波器的系数h(k,l)进行量化,其中k=-K,…,K,l=-K,…K:
f(k,l)=round(normFactor·h(k,l))
然后可以对量化的变换系数进行编码并发送给解码器。normFactor可以等于2n。normFactor的较大值可以导致更精确的量化。结果,量化的滤波器系数f(k,l)可以提供更好的性能。然而,normFactor的非常大的值产生系数f(k,l)通常需要更多的比特来传输。
在解码器中,将解码的滤波器系数f(k,l)应用于重构图像R(i,j),如下所示:
其中i和j是帧内的像素的坐标。
图1是示出了示例自适应环路滤波器(ALF)支持的概念图。环路内自适应滤波器在HEVC阶段进行了评估,但未包含在最终版本中。
JEM中采用的环路内自适应环路滤波器最初是在以下文档中提出的:J.Chen,Y.Chen,M.Karczewicz,X.Li,H.Liu,L.Zhang,X.Zhao,“Coding tools investigation fornext generation video coding,”SG16-Geneva-C806,Jan.2015。基本思想与HM-3[3]中的具有基于块的自适应的ALF相同。对于亮度分量,基于一维拉普拉斯方向(最多3个方向)和二维拉普拉斯活动(最多5个活动值)对整个图片中的4×4块进行分类。方向Dir_b和未量化的活动Act_b的计算在等式(2)至(5)中示出,其中I^_(i,j)指示具有在4×4块左上方的相对坐标(i,j)的重构像素。Act_b进一步被量化到包括0到4的范围,如以下文档所述:T.Wiegand,B.Bross,W.-J.Han,J.-R.Ohm and G.J.Sullivan,“WD3:Working Draft 3ofHigh-Efficiency Video Coding,”Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG16WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-E603,5th Meeting:Geneva,CH,16-23March 2011。
总的来说,每个块可以分类为15(5×3)类中的一类,并且根据该块的Dir_bandAct_b的值将索引分配给每个4×4块。因此,对于图片的亮度分量,最多可以信令通知15个ALF参数集合。为了节省信令成本,可以将组沿着组索引值合并。对于每个合并的组,信令通知一组ALF系数。最多支持三个圆形对称滤波器形状(如图1所示)。
对于图片中的两个色度分量,将应用一个ALF系数集合,并且始终使用5×5菱形滤波器。
在解码器侧,对每个像素样点进行滤波,得到如等式(6)所示的像素值I′i,j,其中L表示滤波器长度,fm,n表示滤波器系数,o表示滤波器偏移。
其中且(o=(1<<BDF-2))。
在JEM2中,表示为BDF的位深度被设置为9,这意味着滤波器系数可以在[-256,256]的范围内。
先前编码的图片的ALF系数被存储并且被允许重新用作当前图片的ALF系数。当前图片可以选择使用针对参考图片而存储的ALF系数,然后绕过ALF系数信令。在这种情况下,仅信令通知参考图片之一的索引,并且所指示的参考图片的所存储的ALF系数被简单地继承给当前图片。为了指示时间预测的使用,在发送索引之前首先对一个标志进行编码。
在JEM 7的设计中,将来自最多六个先前的图片/切片中的ALF参数存储在每个时间层的单独阵列中。例如,如果在分层B/P编码结构中有5个时间层(在当前视频编码标准化中使用的随机访问设置就是这种情况),则编码器和解码器都使用5×6存储器阵列,因此总的来说,有30个存储器元件来存储先前获得的ALF参数。
当对IRAP图片(I帧)进行编码/解码时,JEM 7的常规设计有效删除存储的ALF参数。为了避免重复,仅在ALF参数是通过解码器侧的信令新获得的(在编码器侧,新参数是经由估计/训练获得的)情况下,才将该ALF参数存储在存储器中。参数的存储以先进先出(FIFO)顺序(即,FIFO方式)操作,因此,如果阵列已满,则新的ALF参数值集合将以解码顺序覆盖最旧的参数。
图2是示出了分层帧结构中的示例时间层的概念图。
使用二维(2D)阵列(在存储器中)来存储ALF参数的一个示例原因是为了在分层B/P帧编码结构中保留时间可缩放性。如图2所示,对于i<k,层Ti处的帧不能依赖于(例如,不能根据其进行预测)层Tk处的帧。换句话说,较低时间层(例如,T2)的帧/切片不能依赖于较高层(例如,T3和T4)的帧/切片。ALF中的当前时间预测(其在作为美国专利出版物No.2018/0192050而出版的、2018年1月3日提交的美国专利申请No.15/861,165中有所涵盖)通过简单地将从不同时间层获得的ALF参数存储在二维阵列的不同行中并确保在不破坏分层B/P帧中的依赖结构的情况下使用这些参数来保留时间可缩放性。
当前的时间预测设计可能需要大量的内存。具体来说,在编码器和解码器中都可能需要具有30个存储器元件的5×6阵列来存储ALF参数。本公开的技术可通过使用一维阵列而显著减少内存需求,同时仍保留时间可缩放性。
图3是示出了可执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术通常针对对视频数据进行译码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未译码的视频、编码的视频、解码的(例如,重构的)视频和视频元数据,例如信令数据。
如图3所示,在该示例中,系统100包括源设备102,源设备102提供将由目的地设备116解码和显示的编码的视频数据。特别地,源设备102经由计算机可读介质110将视频数据提供给目的地设备116。源设备102和目的地设备116可以包括各种设备中的任何一种,包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、诸如智能电话的电话手持机、电视、相机、显示设备、数字媒体播放器、视频游戏机、视频流设备等。在一些情况下,源设备102和目的地设备116可以被配备用于无线通信,因此可以被称为无线通信设备。
在图3的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开,源设备102的视频编码器200和目的地设备116的视频解码器300可以被配置为应用用于自适应环路滤波器参数的时间预测的技术,这可以减少内存消耗。因此,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其他示例中,源设备和目的地设备可以包括其他组件或布置。例如,源设备102可以从诸如外部相机的外部视频源接收视频数据。同样,目的地设备116可以与外部显示设备接口,而不包括集成显示设备。
如图3所示的系统100仅仅是一个示例。通常,任何数字视频编码和/或解码设备可以执行用于自适应环路滤波器参数的时间预测的技术,这可以减少内存消耗。源设备102和目的地设备116仅仅是这种译码设备的示例,其中源设备102生成译码的视频数据以发送到目的地设备116。本公开将“译码”设备称为执行数据的译码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300分别表示译码设备(特别是视频编码器和视频解码器)的示例。在一些示例中,源设备102和目的地设备116可以以基本上对称的方式操作,使得源设备102和目的地设备116中的每一个均包括视频编码和解码组件。因此,系统100可以支持源设备102与目的地设备116之间的单向或双向视频传输,例如,用于视频流式传输、视频回放、视频广播或视频电话。
通常,视频源104表示视频数据(即,原始的、未译码的视频数据)的源,并将视频数据的一系列顺序的图片(也称为“帧”)提供给视频编码器200,视频编码器200对针对图片的数据进行编码。源设备102的视频源104可以包括视频捕获设备,诸如摄像机、包含先前捕获的原始视频的视频存档和/或视频馈送接口,以从视频内容提供商接收视频。作为另一替代方式,视频源104可以生成基于计算机图形的数据作为源视频,或者实时视频、存档视频和计算机生成的视频的组合。在每种情况下,视频编码器200对捕获的、预捕获的或计算机生成的视频数据进行编码。视频编码器200可以将图片从接收到的顺序(有时称为“显示顺序”)重新排列为用于译码的译码顺序。视频编码器200可以生成包括编码的视频数据的比特流。然后,源设备102可以经由输出接口108将编码的视频数据输出到计算机可读介质110上,以通过例如目的地设备116的输入接口122进行接收和/或检索。
源设备102的存储器106和目的地设备116的存储器120表示通用存储器。在一些示例中,存储器106、120可以存储原始视频数据,例如,来自视频源104的原始视频和来自视频解码器300的原始的、解码的视频数据。附加地或可替代地,存储器106、120可以存储分别可由例如视频编码器200和视频解码器300执行的软件指令。尽管在该示例中存储器106和存储器120与视频编码器200和视频解码器300分开示出,但是应当理解,视频编码器200和视频解码器300还可以包括内部存储器,以用于功能上相似或等效的目的。此外,存储器106、120可以存储编码的视频数据,例如,从视频编码器200输出并输入到视频解码器300的编码的视频数据。在一些示例中,存储器106、120的部分可被分配为一个或多个视频缓冲器,例如,以存储原始的、解码的和/或编码的视频数据。
计算机可读介质110可以表示能够将编码的视频数据从源设备102运输到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示一种通信介质,该通信介质使源设备102能够例如经由射频网络或基于计算机的网络将编码的视频数据直接实时地传输到目的地设备116。根据诸如无线通信协议的通信标准,输出接口108可以调制包括编码的视频数据的传输信号,输入接口122可以对接收到的传输信号进行解调。通信介质可以包括任何无线或有线的通信介质,诸如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络(诸如局域网、广域网或诸如互联网的全球网络)的一部分。通信介质可以包括路由器、交换机、基站或有助于从源设备102到目的地设备116的通信的任何其他设备。
在一些示例中,源设备102可以将编码的数据从输出接口108输出到存储设备112。类似地,目的地设备116可以经由输入接口122访问来自存储设备112的编码的数据。存储设备112可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器或用于存储编码的视频数据的任何其他合适的数字存储介质。
在一些示例中,源设备102可以将编码的视频数据输出到文件服务器114或可以存储由源设备102生成的编码的视频的另一中间存储设备。目的地设备116可以经由流式传输或下载来访问来自文件服务器114的存储的视频数据。文件服务器114可以是能够存储编码的视频数据并将该编码的视频数据发送到目的地设备116的任何类型的服务器设备。文件服务器114可以表示网络服务器(例如,用于网站)、文件传输协议(FTP)服务器、内容传递网络设备或网络附加存储(NAS)设备。目的地设备116可以通过包括互联网连接的任何标准数据连接来访问来自文件服务器114的编码的视频数据。这可能包括适合访问存储在文件服务器114上的编码的视频数据的无线通道(例如Wi-Fi连接)、有线连接(例如数字订户线(DSL),电缆调制解调器等)或二者的组合。文件服务器114和输入接口122可以被配置为根据流式传输协议、下载传输协议或其组合来操作。
输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线网络组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任何一种进行操作的无线通信组件,或者其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据诸如4G、4G-LTE(长期演进)、高级LTE、5G等的蜂窝通信标准来传送诸如编码的视频数据的数据。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可以配置为根据诸如IEEE 802.11规范、IEEE 802.15规范(例如ZigBeeTM)、BluetoothTM标准等的其他无线标准来传送诸如编码的视频数据的数据。在一些示例中,源设备102和/或目的地设备116可以包括各自的片上系统(SoC)设备。例如,源设备102可以包括SoC设备以执行归因于视频编码器200和/或输出接口108的功能,目的地设备116可以包括SoC设备以执行归因于视频解码器300和/或输入接口122的功能。
本公开的技术可以应用于支持各种多媒体应用中的任何一种的视频译码,诸如空中电视广播、有线电视传输、卫星电视传输、互联网流视频传输(诸如HTTP上的动态自适应流式传输(DASH)),将数字视频编码到数据存储介质上,对存储在数据存储介质上的数字视频进行解码,或其他应用。
目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收编码的视频比特流。计算机可读介质110的编码的视频比特流可以包括由视频编码器200定义的、也由视频解码器300使用的信令信息,诸如具有描述视频块或其他编码单元的特性和/或处理的值的语法元素(例如,切片、图片、图片组、序列等)。显示设备118向用户显示解码的视频数据的解码的图片。显示设备118可以表示各种显示设备中的任何一种,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一种类型的显示设备。
尽管未在图3中示出,但在某些示例中,视频编码器200和视频解码器300可以分别与音频编码器和/或音频解码器集成,并且可以包括适当的MUX-DEMUX单元或其他硬件和/或软件,以处理公共数据流中包括音频和视频的多路复用流。如果适用,则MUX-DEMUX单元可以符合ITU H.223多路复用器协议或其他协议,诸如用户数据报协议(UDP)。
视频编码器200和视频解码器300可各自实现为各种合适的编码器和/或解码器电路中的任何一种,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当技术部分地以软件实施时,设备可将用于软件的指令存储在合适的非暂时性计算机可读介质中,并使用一个或多个处理器以硬件方式执行指令以执行本公开的技术。视频编码器200和视频解码器300中的每一个可以被包括在一个或多个编码器或解码器中,编码器或解码器中的任一个可以被集成为相应设备中的组合的编码器/解码器(CODEC)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,诸如蜂窝电话。
视频编码器200和视频解码器300可以根据视频编码标准(诸如ITU-T H.265,也称为高效视频编码(HEVC))或其扩展(诸如多视图和/或可缩放视频编码扩展)进行操作。可替代地,视频编码器200和视频解码器300可以根据诸如联合探索测试模型(JEM)或ITU-TH.266(也称为通用视频编码(VVC))的其他专有或工业标准来操作。在以下文档中描述了VVC标准的最新草案:Bross,et al.“Versatile Video Coding(Draft 6),”Joint VideoExperts Team(JVET)of ITU-T SG 16 WP 3and ISO/IEC JTC 1/SC 29/WG 11,15thMeeting:Gothenburg,SE,3–12July 2019,JVET-O2001-vE(以下简称“VVC草案6”)。然而,本公开的技术不限于任何特定的编码标准。
通常,视频编码器200和视频解码器300可以执行图片的基于块的译码。术语“块”通常是指包括要处理(例如,编码、解码或在编码和/或解码过程中以其他方式使用)的数据的结构。例如,块可以包括亮度数据和/或色度数据的样点的二维矩阵。通常,视频编码器200和视频解码器300可以对以YUV(例如,Y、Cb、Cr)格式表示的视频数据进行译码。也就是说,视频编码器200和视频解码器300不是对图片的样点的红色、绿色和蓝色(RGB)数据进行译码,而是可以对亮度分量和色度分量进行译码,其中色度分量可以包括红色色调色度分量和蓝色色调色度分量两者。在一些示例中,视频编码器200在编码之前将接收到的RGB格式的数据转换成YUV表示,并且视频解码器300将YUV表示转换成RGB格式。可替代地,预处理单元和后处理单元(未示出)可以执行这些转换。
本公开通常可涉及图片的译码(例如,编码和解码)以包括对图片的数据进行编码或解码的过程。类似地,本公开可涉及对图片的块进行译码以包括对块的数据进行编码或解码的过程,例如,预测和/或残差译码。编码的视频比特流通常包括用于语法元素的一系列值,这些语法元素表示译码决策(例如,译码模式)以及将图片划分为块。因此,对于对图片或块进行译码的引用通常应理解为对用于形成图片或块的语法元素的值进行译码。
HEVC定义了各种块,包括编码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频译码器(诸如视频编码器200)根据四叉树结构将编码树单元(CTU)划分为CU。也就是说,视频译码器将CTU和CU划分为四个相等的、非重叠的正方形,并且四叉树的每个节点具有零个或四个子节点。没有子节点的节点可以被称为“叶节点”,并且这种叶节点的CU可以包括一个或多个PU和/或一个或多个TU。视频译码器可进一步划分PU和TU。例如,在HEVC中,残差四叉树(RQT)表示TU的划分。在HEVC中,PU表示帧间预测数据,而TU表示残差数据。被帧内预测的CU包括帧内预测信息,诸如帧内模式指示。
作为另一示例,视频编码器200和视频解码器300可以被配置为根据JEM或VVC进行操作。根据JEM或VVC,视频译码器(例如,视频编码器200)将图片划分为多个编码树单元(CTU)。视频编码器200可根据诸如四叉树-二叉树(QTBT)结构或多类型树(MTT)结构的树结构来划分CTU。JEM的QTBT结构消除了多个分区类型的概念,诸如HEVC的CU、PU和TU之间的分隔。JEM的QTBT结构包括两个级别:根据四叉树划分而划分的第一级别,以及根据二叉树划分而划分的第二级别。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于编码单元(CU)。
在MTT划分结构中,可以使用四叉树(QT)划分、二叉树(BT)划分以及一种或多种类型的三叉树(TT)(也称为三叉树(TT))划分来对块进行划分。三叉(triple或ternary)树划分是一种将块分割为三个子块的划分。在一些示例中,三叉(triple或ternary)树划分将块划分为三个子块,而不通过中心划分原始块。MTT中的划分类型(例如QT、BT和TT)可以是对称的或不对称的。
在一些示例中,视频编码器200和视频解码器300可以使用单个QTBT或MTT结构来表示亮度分量和色度分量中的每一个,而在其他示例中,视频编码器200和视频解码器300可以使用两个或更多个QTBT或MTT结构,诸如一个QTBT或MTT结构用于亮度分量,另一QTBT或MTT结构用于两个色度分量(或两个QTBT或MTT结构用于各个色度分量)。
视频编码器200和视频解码器300可以被配置为使用按照HEVC的四叉树划分、根据JEM的QTBT划分或其他划分结构。为了说明的目的,相对于QTBT划分给出了对本公开的技术的描述。然而,应当理解,本公开的技术还可应用于被配置为使用四叉树划分或其它类型的划分的视频译码器。
在图片中可以以各种方式对块(例如,CTU或CU)进行分组。作为一个示例,砖块(brick)可以指图片中特定图块(tile)内的CTU行的矩形区域。图块可以是图片中的特定图块列和特定图块行内的CTU的矩形区域。图块列是指其高度等于图片的高度并且其宽度由语法元素指定(例如,诸如在图片参数集合中)的、CTU的矩形区域。图块行是指其高度由语法元素指定(例如,诸如在图片参数集合中)并且其宽度等于图片的宽度的、CTU的矩形区域。
在一些示例中,图块可以被划分为多个砖块,每个砖块可以包括图块内的一个或多个CTU行。没有被划分为多个砖块的图块也可以称为砖块。但是,作为图块的真子集的砖块不可以称为图块。
图片中的砖块也可以以切片排列。切片可以是图片的整数个砖块,其可以排他地包含在单个网络抽象层(NAL)单元中。在一些示例中,切片包括多个完整图块或仅一个图块的完整砖块的连续序列。
本公开可互换地使用“N×N”和“N乘N”在垂直和水平维度方面来指代块(诸如CU或其他视频块)的样点大小,例如16×16个样点或16乘16个样点。通常,16×16CU将在垂直方向上具有16个样点(y=16),在水平方向上具有16个样点(x=16)。同样地,N×N CU通常在垂直方向上具有N个样点,在水平方向上具有N个样点,其中N表示非负整数值。CU中的样点可以按行和列排列。此外,CU在水平方向上不必具有与在垂直方向上相同数量的样点。例如,CU可包括N×M个样点,其中M不必等于N。
视频编码器200对表示预测和/或残差信息以及其他信息的CU的视频数据进行编码。预测信息指示将如何预测CU以便形成用于CU的预测块。残差信息通常表示编码之前的CU样点与预测块之间的逐样点差异。
为了预测CU,视频编码器200通常可通过帧间预测或帧内预测来形成用于CU的预测块。帧间预测通常是指根据先前译码的图片的数据来预测CU,而帧内预测通常是指根据同一图片的先前译码的数据来预测CU。为了执行帧间预测,视频编码器200可使用一个或多个运动矢量来生成预测块。视频编码器200通常可以执行运动搜索以识别与CU(例如,在CU与参考块之间的差异方面)紧密匹配的参考块。视频编码器200可使用绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)或其他这种差异计算来计算差异度量,以确定参考块是否紧密匹配当前CU。在一些示例中,视频编码器200可使用单向预测或双向预测来预测当前CU。
JEM和VVC的一些示例还提供了仿射运动补偿模式,其可以被视为帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动的两个或多个运动矢量,诸如放大或缩小、旋转、透视运动或其他不规则运动类型。
为了执行帧内预测,视频编码器200可以选择帧内预测模式以生成预测块。JEM提供了67种帧内预测模式,包括各种方向模式以及平面模式和DC模式。通常,视频编码器200选择帧内预测模式,该帧内预测模式描述当前块(例如,CU的块)的相邻样点,从中预测当前块的样点。假设视频编码器200以光栅扫描顺序(从左到右,从上到下)对CTU和CU进行译码,则这种样点通常可以在与当前块相同的图片中的当前块的上方、左上方或左侧。
视频编码器200对表示当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用各种可用帧间预测模式中的哪种帧间预测模式的数据以及对应模式的运动信息进行编码。对于单向或双向帧间预测,例如,视频编码器200可使用高级运动矢量预测(AMVP)或合并模式来对运动矢量进行编码。视频编码器200可使用类似模式来对仿射运动补偿模式的运动矢量进行编码。
在诸如块的帧内预测或帧间预测的预测之后,视频编码器200可计算该块的残差数据。残差数据(诸如残差块)表示该块与使用对应预测模式形成的该块的预测块之间的逐样点差异。视频编码器200可将一个或多个变换应用于残差块,以在变换域而非样点域中产生变换的数据。例如,视频编码器200可将离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。另外,视频编码器200可在第一变换之后应用次级变换,诸如与模式有关的不可分离的次级变换(MDNSST)、与信号有关的变换、Karhunen-Loeve变换(KLT)等。视频编码器200在应用一个或多个变换之后产生变换系数。
如上所述,在进行任何变换以产生变换系数之后,视频编码器200可执行变换系数的量化。量化通常是指对变换系数进行量化以可能地减少用于表示变换系数的数据量、从而提供进一步压缩的过程。通过执行量化过程,视频编码器200可减小与一些或所有变换系数相关联的位深度。例如,视频编码器200可在量化期间将n位值舍入为m位值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可执行待量化的值的按位右移。
在量化之后,视频编码器200可扫描变换系数,从而从包括量化的变换系数的二维矩阵产生一维矢量。可以将扫描设计为将较高能量(因此频率较低)的变换系数放在矢量的前面,并将较低能量(因此频率较高)的变换系数放在矢量的后面。在一些示例中,视频编码器200可以利用预定义的扫描顺序来扫描量化的变换系数以产生序列化的矢量,然后对矢量的量化的变换系数进行熵编码。在其他示例中,视频编码器200可以执行自适应扫描。在扫描量化的变换系数以形成一维矢量之后,视频编码器200可以例如根据上下文自适应二进制算术编码(CABAC)对一维矢量进行熵编码。视频编码器200还可对语法元素(其描述与编码的视频数据相关联的元数据)的值进行熵编码,以供视频解码器300在对视频数据进行解码时使用。
为了执行CABAC,视频编码器200可将上下文模型内的上下文指派给要发送的符号。上下文可以涉及例如符号的相邻值是否为零值。概率确定可以基于分配给符号的上下文。
视频编码器200还可以例如在图片报头(header)、块报头、切片报头,或其他语法数据(诸如序列参数集合(SPS)、图片参数集合(PPS)或视频参数集合(VPS))中向视频解码器300生成语法数据,诸如基于块的语法数据、基于图片的语法数据和基于序列的语法数据。视频解码器300可类似地对这种语法数据进行解码以确定如何对对应的视频数据进行解码。
以此方式,视频编码器200可产生包括编码的视频数据的比特流,例如,描述将图片划分为块(例如,CU)的语法元素以及用于块的预测和/或残差信息。最终,视频解码器300可以接收比特流并对编码的视频数据进行解码。
通常,视频解码器300执行由视频编码器200执行的相反处理以对比特流的编码的视频数据进行解码。例如,视频解码器300可以以与视频编码器200的CABAC编码过程基本相似(尽管与之相反)的方式来使用CABAC对比特流的语法元素的值进行解码。语法元素可以定义将图片划分为CTU的划分信息,以及根据诸如QTBT结构的对应划分结构对每个CTU的划分,以定义CTU的CU。语法元素可进一步定义用于视频数据的块(例如,CU)的预测和残差信息。
残差信息可以由例如量化的变换系数来表示。视频解码器300可对块的量化的变换系数进行逆量化和逆变换以重构该块的残差块。视频解码器300使用信令通知的预测模式(帧内或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)来形成用于该块的预测块。视频解码器300然后可以组合预测块和残差块(在逐样点的基础上)以重构原始块。视频解码器300可执行附加处理,诸如执行去块(deblock)处理以减少沿块的边界的视觉伪影。
根据本公开的技术,视频编码器200和视频解码器300可被配置为将ALF参数连同时间层ID值(tId)一起存储在大小为N的单个一维阵列(或缓冲器)中。如下面的表1所示:
表1
Alf(P1,tId1) Alf(P2,tId2) Alf(P3,tId3) Alf(PN,tIdN)
在表1的示例中,一维阵列的每个存储器元件存储(i)ALF参数和(ii)时间层ID(tId),该时间层ID(tId)指示从哪个层估计该对应的ALF参数。可以存储时间层信息以确保从较高时间层(例如,tId=4)获得的ALF参数不用于对在较低时间层(例如,tId=3)的帧/切片进行编码/解码。
视频编码器200和视频解码器300可以配置为单独或以任何组合方式应用以下任何技术来加载、存储和/或使用ALF参数进行时间预测:
1.为了在ALF参数的时间预测中使用,阵列可以存储来自B切片或P切片的参数。
2.在阵列中,ALF参数的条目可以以一定顺序存储(例如,通过遵循解码顺序)。当所有N个条目都用于存储时(即,当阵列已满时),可以通过移除一个条目然后在阵列中添加新参数来存储新获得的参数。
a.作为示例,这可以以FIFO(先进先出)的方式完成,其中当阵列已满时,移除阵列中的最后一个条目(即最旧的参数集合),并将新的参数存储在阵列的第一个元件中。
b.在另一示例中,ALF参数替换缓冲器中存储的具有相同时间ID的某些参数,例如某些参数可以是缓冲器中最老的参数,或者使用较少,或者可以应用任何其他规则。
3.可以信令通知称为prevIdx的非负索引值,以识别从缓冲器加载/使用了哪个ALF参数集合进行编码/解码。
a.诸如一元编码的可变长度编码可用于信令通知prevIdx。可以在存储的缓冲器中对用于某个时间Id的参数的总可用数量进行计数,并且可以使用截断二值化来信令通知prevIdx,该prevIdx具有滤波器的总可用数量减去1作为最大索引。但是,截断编码可能会在编码器和解码器之间引入失配,例如,当一些图片在传输中丢失时。
b.prevIdx可以采用从0到N-1的值。依赖于用于译码的分层帧结构的类型,prevIdx的最大值可以更小。
c.当对切片/图片进行译码时,可以通过遍历包括在阵列中的集合来决定用于时间预测的可能候选,并且将具有等于或小于tId的所有或一些参数集合视为有效候选。
d.阵列条目的信令(确定用于译码的ALF参数)可以依赖于正在被译码的当前帧的时间层ID。具体地,依赖于正在被编码/解码的当前帧的时间层ID,prevIdx可以对应于阵列中的不同条目。
i.作为示例,如以下表2所示,依赖于正在被译码的当前帧的tId,prevIdx=1可以指向阵列中的以下两个不同条目:
1.prevIdx=1对应于阵列中的第4个条目,在对tId=1的帧进行译码时,存储Alf(P4,1),因为这是允许进行译码以保留时间可缩放性的第二可能选项,其中Alf(P4,1)是以prevIdx=0信令通知的第一候选。
2.prevIdx=1对应于阵列中的第2个条目,在对tId=2的帧进行译码时,存储Alf(P2,2),因为这是允许进行译码的第二可能选项,其中Alf(P1,1)是对应于prevIdx=0的第一选项。
表2
Alf(P1,1) Alf(P2,2) Alf(P3,2) Alf(P4,1) Alf(P5,3)
e.在帧丢失的情况下(例如,由于通过网络发送视频比特流时的分组丢失),解码器可以选择不向阵列添加任何条目,它可以引入虚拟(dummy)(即预先配置的)条目,因此,即使当图片丢失时,虚拟条目也被添加到缓冲器。在任何一种情况下,只要应用上述方法,就可以保留时间可缩放性。换句话说,当较高级别的帧丢失时(例如,T3),较低层的帧仍然是可解码的(例如,T1和T2)。
f.在另一示例中,具有较低时间ID的图片或切片可以携带有关较高时间ID的ALF参数的信息,在这种情况下,如果丢失具有较高时间ID的图片,则可以从具有较低时间ID的图片获得参数。那些参数还可包括较高时间ID图片是否携带这种ALF参数,使得那些参数或虚拟(预配置)参数可被添加到缓冲器。
g.在另一示例中,解码器图片缓冲器管理(DPB)方法可以应用于时间ALF参数处理,因为DPB管理包括对丢失图片的处理。
4.取决于ALF参数的重要性(例如,可以基于使用重要性的频率或者基于重要性的时间层信息来度量重要性),可以将其中一些重要的ALF参数固定并保存在缓冲器中直到下一个I-切片被译码。这种重要性度量可以用于对条目进行排名和重新排序以减少信令prevIdx(例如,一元编码)的信令开销。
5.可以基于任何其他辅助信息(除时间层ID之外)或也可以与ALF参数一起存储的重要性度量来做出有关加载和存储ALF参数(缓冲器的管理)的其他决策或限制。
6.单独的缓冲器可用于单独对亮度通道和色度通道进行译码。结果,每个缓冲器可以具有prevIdx的不同信令,以单独地确定用于亮度通道和色度通道的ALF参数。
本公开通常可以指代“信令通知”某些信息,诸如语法元素。术语“信令”通常可以指代用于语法元素的值和/或用于对编码的视频数据进行解码的其他数据的通信。即,视频编码器200可以在比特流中信令通知语法元素的值。通常,信令是指在比特流中生成值。如上所述,源设备102可以基本上实时地或不实时地将比特流运输到目的地设备116,诸如在将语法元素存储到存储设备112以用于稍后由目的地设备116检索时可能发生。
图4A和图4B是示出了示例四叉树二叉树(QTBT)结构130和对应的编码树单元(CTU)132的概念图。实线表示四叉树分割(split),虚线表示二叉树分割。在二叉树的每个分割(即非叶)节点中,信令通知一个标志以指示使用哪种分割类型(即,水平或垂直),在该示例中,0表示水平分割,1表示垂直分割。对于四叉树分割,无需指示分割类型,因为四叉树节点将块水平和垂直地分割为大小相等的4个子块。因此,视频编码器200和视频解码器300可对QTBT结构130的区域树级别(即,实线)的语法元素(诸如分割信息)和QTBT结构130的预测树级别(即,虚线)的语法元素(诸如分割信息)进行编码和解码。视频编码器200和视频解码器300可以针对QTBT结构130的终端叶节点所表示的CU,对诸如预测和变换数据的视频数据进行编码和解码。
通常,图4B的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大小设置为128×128(亮度样点和两个对应的64×64色度样点),MinQTSize设置为16×16,MaxBTSize设置为64×64,MinBTSize(对于宽度和高度)设置为4,MaxBTDepth设置为4。首先将四叉树划分应用于CTU,以生成四叉树叶节点。四叉树叶节点的大小可以从16×16(即MinQTSize)到128×128(即CTU大小)。如果四叉树叶节点为128×128,则由于大小超过MaxBTSize(即在此示例中为64×64),因此不会通过二叉树进一步分割。否则,四叉树叶节点将通过二叉树进一步划分。因此,四叉树叶节点也是二叉树的根节点,并且其二叉树深度为0。当二叉树深度达到MaxBTDepth(在此示例中为4)时,不允许进一步分割。当二叉树节点的宽度等于MinBTSize(在此示例中为4)时,意味着不允许进一步的水平分割。类似地,二叉树节点的高度等于MinBTSize意味着该二叉树节点不允许进一步的垂直分割。如上所述,将二叉树的叶节点称为CU,并且根据预测和变换对其进行进一步处理而无需进一步划分。
图5是示出了可执行本公开的技术的示例视频编码器200的框图。提供图5是为了解释的目的,并且不应被认为是对本公开中广泛例示和描述的技术的限制。为了说明的目的,本公开在诸如开发中的HEVC视频编码标准和H.266视频编码标准的视频编码标准的上下文中描述了视频编码器200。然而,本公开的技术不限于这些视频编码标准,并且通常可应用于视频编码和解码。
在图5的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、解码图片缓冲器(DPB)218和熵编码单元220。视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、DPB 218和熵编码单元220中的任何一个或全部可以在一个或多个处理器中或在处理电路中实现。此外,视频编码器200可包括额外的或替代的处理器或处理电路以执行这些和其他功能。
视频数据存储器230可以存储要由视频编码器200的组件进行编码的视频数据。视频编码器200可以从例如视频源104(图3)接收存储在视频数据存储器230中的视频数据。DPB 218可以用作参考图片存储器,该参考图片存储器存储参考视频数据,以供视频编码器200预测后续视频数据时使用。视频数据存储器230和DPB 218可以由各种存储设备中的任何一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻性RAM(RRAM)或其他类型的存储器设备。视频数据存储器230和DPB 218可以由相同的存储器设备或分离的存储器设备提供。在各种示例中,视频数据存储器230可以与视频编码器200的其他组件一起在芯片上,如图所示,或者相对于那些组件在芯片外。
在本公开中,对视频数据存储器230的引用不应解释为限于视频编码器200内部的存储器(除非如此具体地描述)或者视频编码器200外部的存储器(除非如此具体地描述)。相反,对视频数据存储器230的引用应该被理解为存储视频编码器200所接收的用于编码的视频数据(例如,要编码的当前块的视频数据)的参考存储器。图3的存储器106还可提供来自视频编码器200的各个单元的输出的临时存储。
示出了图5的各个单元以帮助理解由视频编码器200执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能并在可以执行的操作上预先设置的电路。可编程电路是指可以被编程为执行各种任务并在可以执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以软件或固件的指令所定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,这些单元中的一个或多个可以是不同的电路块(固定功能的或可编程的),并且在一些示例中,这些单元中的一个或多个可以是集成电路。
视频编码器200可以包括由可编程电路形成的算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或可编程核。在使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图3)可以存储视频编码器200接收并执行的软件的目标代码,或者视频编码器200内的另一存储器(未示出)可以存储这种指令。
视频数据存储器230被配置为存储接收到的视频数据。视频编码器200可以从视频数据存储器230检索视频数据的图片,并将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是将被编码的原始视频数据。
模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括附加功能单元,以根据其他预测模式来执行视频预测。作为示例,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(LM)单元等。
模式选择单元202通常协调多个编码遍次,以测试编码参数的组合以及针对这种组合的所得的率失真值。编码参数可以包括将CTU划分为CU、用于CU的预测模式、用于CU的残差数据的变换类型、用于CU的残差数据的量化参数等等。模式选择单元202可以最终选择具有比其他测试的组合更好的率失真值的编码参数的组合。
视频编码器200可将从视频数据存储器230检索到的图片划分为一系列CTU,并将一个或多个CTU封装在切片内。模式选择单元202可以根据树结构,诸如上述HEVC的QTBT结构或四叉树结构,来划分图片的CTU。如上所述,视频编码器200可根据树结构通过划分CTU来形成一个或多个CU。这种CU通常也可以被称为“视频块”或“块”。
通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224、帧内预测单元226)以生成针对当前块(例如,当前CU,或HEVC中的PU和TU的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可执行运动搜索以识别一个或多个参考图片(例如,存储在DPB 218中的一个或多个先前译码的图片)中的一个或多个紧密匹配的参考块。特别地,运动估计单元222可以例如根据绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)等来计算表示潜在参考块与当前块有多相似的值。运动估计单元222通常可使用当前块与所考虑的参考块之间的逐样点差异来执行这些计算。运动估计单元222可识别具有由这些计算产生的最低值的参考块,其指示与当前块最紧密匹配的参考块。
运动估计单元222可形成一个或多个运动矢量(MV),这些运动矢量定义参考图片中的参考块相对于当前图片中的当前块的位置。运动估计单元222然后可以将运动矢量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动矢量,而对于双向帧间预测,运动估计单元222可以提供两个运动矢量。运动补偿单元224然后可使用运动矢量来生成预测块。例如,运动补偿单元224可以使用运动矢量来检索参考块的数据。作为另一示例,如果运动矢量具有分数样点精度,则运动补偿单元224可以根据一个或多个插值滤波器来对预测块进行插值。此外,对于双向帧间预测,运动补偿单元224可例如通过逐样点平均或加权平均来取得由相应运动矢量识别的两个参考块的数据,并组合所取得的数据。
作为另一示例,对于帧内预测或帧内预测编码,帧内预测单元226可以从与当前块相邻的样点生成预测块。例如,对于方向模式,帧内预测单元226通常可以在数学上组合相邻样点的值,并在当前块上沿定义的方向填充这些计算出的值以产生预测块。作为另一示例,对于DC模式,帧内预测单元226可以计算到当前块的相邻样点的平均值,并且生成预测块以包括针对预测块的每个样点的该所得的平均值。
模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始的、未译码版本,并从模式选择单元202接收预测块。残差生成单元204计算当前块和预测块之间的逐样点差异。所得的逐样点差异定义当前块的残差块。在一些示例中,残差生成单元204还可确定残差块中的样点值之间的差异以使用残差差分脉冲编码调制(RDPCM)来生成残差块。在一些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。
在模式选择单元202将CU划分为PU的示例中,每个PU可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种大小的PU。如上所述,CU的大小可以指CU的亮度编码块的大小,并且PU的大小可以指PU的亮度预测单元的大小。假设特定CU的大小为2N×2N,则视频编码器200可支持用于帧内预测的2N×2N或N×N的PU大小,以及用于帧间预测的2N×2N、2N×N、N×2N、N×N或类似的对称PU大小。视频编码器200和视频解码器300还可针对用于帧间预测的2N×nU,2N×nD,nL×2N和nR×2N的PU大小支持非对称划分。
在模式选择单元202不将CU进一步划分为PU的示例中,每个CU可与亮度编码块和对应的色度编码块相关联。如上所述,CU的大小可以指CU的亮度编码块的大小。视频编码器200和视频解码器300可以支持2N×2N、2N×N或N×2N的CU大小。
对于其他视频编码技术,诸如块内复制模式编码、仿射模式编码和线性模型(LM)模式编码,作为少数示例,模式选择单元202经由与编码技术相关联的各个单元来生成针对正被编码的当前块的预测块。在一些示例中,诸如调色板模式编码,模式选择单元202可以不生成预测块,而是生成语法元素,该语法元素指示基于所选调色板来重构块的方式。在这种模式中,模式选择单元202可以将这些语法元素提供给熵编码单元220以进行编码。
如上所述,残差生成单元204接收当前块和对应的预测块的视频数据。残差生成单元204然后为当前块生成残差块。为了生成残差块,残差生成单元204计算预测块和当前块之间的逐样点差异。
变换处理单元206将一个或多个变换应用于残差块以生成变换系数的块(在本文中称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(DCT)、方向变换,Karhunen-Loeve变换(KLT)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以对残差块执行多个变换,例如初级变换和次级变换,诸如旋转变换。在一些示例中,变换处理单元206不将变换应用于残差块。
量化单元208可以量化变换系数块中的变换系数,以产生量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(QP)值来量化变换系数块的变换系数。视频编码器200(例如,经由模式选择单元202)可通过调整与CU相关联的QP值来调整应用于与当前块相关联的变换系数块的量化程度。量化可能会引入信息的丢失,因此,量化的变换系数的精度可能会比变换处理单元206所产生的原始变换系数的精度低。
逆量化单元210和逆变换处理单元212可以对量化的变换系数块分别应用逆量化和逆变换,以从变换系数块重构残差块。重构单元214可以基于重构的残差块和由模式选择单元202生成的预测块来产生与当前块相对应的重构块(尽管可能具有某种程度的失真)。例如,重构单元214可以将重构的残差块的样点添加到来自模式选择单元202所生成的预测块的对应样点,以产生重构块。
滤波器单元216可对重构块执行一个或多个滤波器操作。例如,滤波器单元216可以执行去块操作以减少沿着CU的边缘的块状伪影。在一些示例中,可以跳过滤波器单元216的操作。根据本公开的技术,滤波器单元216可以维护包括自适应环路滤波器(ALF)参数和相关联的时间层标识符(ID)值的阵列。阵列可以具有预定义大小的N个元件,其中N是非负整数值。阵列可以符合如上所述的表1的示例。
以此方式,当对当前时间层的当前图片的视频数据的解码块执行滤波时,滤波器单元216可使用来自相同或较低时间层的阵列的ALF参数。特别地,滤波器单元216可以将阵列元件的时间层ID与用于当前图片的当前时间层ID值进行比较,并且仅选择时间层ID小于或等于当前时间层ID值的那些ALF参数以用于对当前图片的解码块进行滤波。
滤波器单元216可以以解码顺序或其他预定顺序将ALF参数存储在阵列中。因此,滤波器单元216可以以先进先出(FIFO)的方式替换阵列中的现有ALF参数,或者优先从阵列中移除特定时间层处的ALF参数。
滤波器单元216可以确定阵列中要用于当前图片的某些ALF参数,并且信令通知表示在对当前图片进行滤波时使用哪个ALF参数的值。滤波器单元216可以将这些值提供给熵编码单元220,熵编码单元220可以使用一元编码对值进行编码。
视频编码器200将重构块存储在DPB 218中。例如,在不需要滤波器单元216的操作的示例中,重构单元214可以将重构块存储到DPB 218。在需要滤波器单元216的操作的示例中,滤波器单元216可以将滤波后的重构块存储到DPB 218。运动估计单元222和运动补偿单元224可从DPB 218检索参考图片,该参考图片是由重构的(并且可能被滤波的)块形成的,以对随后编码的图片的块进行帧间预测。另外,帧内预测单元226可使用当前图片的DPB218中的重构块来对当前图片中的其他块进行帧内预测。
通常,熵编码单元220可以对从视频编码器200的其他功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的量化的变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作,以生成熵编码的数据。例如,熵编码单元220可以执行上下文自适应可变长度编码(CAVLC)操作、CABAC操作、可变到可变(V2V)长度编码操作、基于语法的上下文自适应二进制算术编码(SBAC)操作、概率区间分割熵(PIPE)编码操作、指数哥伦布编码操作或另一种类型的对数据的熵编码操作。在一些示例中,熵编码单元220可以在语法元素未被熵编码的旁路模式下操作。
视频编码器200可输出包括重构切片或图片的块所需的被熵编码的语法元素的比特流。特别地,熵编码单元220可以输出比特流
关于块描述了上述操作。这种描述应该被理解为用于亮度编码块和/或色度编码块的操作。如上所述,在一些示例中,亮度编码块和色度编码块是CU的亮度分量和色度分量。在一些示例中,亮度编码块和色度编码块是PU的亮度分量和色度分量。
在一些示例中,不必针对色度编码块重复针对亮度编码块执行的操作。作为一个示例,不必重复识别用于亮度编码块的运动矢量(MV)和参考图片的操作来识别用于色度块的MV和参考图片。相反,可以缩放用于亮度编码块的MV以确定用于色度块的MV,并且参考图片可以是相同的。作为另一示例,对于亮度编码块和色度编码块,帧内预测处理可以是相同的。
视频编码器200表示被配置为对视频数据进行编码的设备的示例,该设备包括被配置为存储视频数据的存储器以及被实现在电路中的一个或多个处理单元,该一个或多个处理单元被配置为:将自适应环路滤波器(ALF)参数集合存储在具有预定义大小的N个存储器元件的一维阵列中,N是正整数值,包括在该阵列的一个或多个存储器元件中存储对应的ALF参数和指示要从中估计对应的ALF参数的时间层的时间层标识符(ID)值两者;对视频数据的一个或多个块进行解码;以及使用一维阵列的ALF参数对一个或多个块进行滤波。
图6是示出了可执行本公开的技术的示例视频解码器300的框图。提供图6是为了解释的目的,并且不限制本公开中广泛例示和描述的技术。为了说明的目的,本公开描述了根据JEM、VVC和HEVC的技术的视频解码器300。然而,本公开的技术可以由被配置为其他视频编码标准的视频译码设备来执行。
在图6的示例中,视频解码器300包括编码图片缓冲器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和解码图片缓冲器(DPB)314。预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括附加单元,以根据其他预测模式来执行预测。作为示例,预测处理单元304可以包括调色板单元、块内复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(LM)单元等。在其他示例中,视频解码器300可以包括更多、更少或不同的功能组件。
CPB存储器320可以存储将由视频解码器300的组件解码的视频数据,诸如编码的视频比特流。可以例如从计算机可读介质110(图3)获得存储在CPB存储器320中的视频数据。CPB存储器320可以包括存储来自编码的视频比特流的编码的视频数据(例如,语法元素)的CPB。而且,CPB存储器320可以存储除编码图片的语法元素之外的视频数据,诸如表示来自视频解码器300的各个单元的输出的临时数据。DPB 314通常存储解码的图片,当对编码的视频比特流的后续数据或图片进行解码时,视频解码器300可以输出和/或将解码的图片用作参考视频数据。CPB存储器320和DPB 314可以由各种存储器设备中的任何一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻性RAM(RRAM)或其他类型的存储器设备。CPB存储器320和DPB 314可以由相同的存储器设备或分离的存储器设备提供。在各种示例中,CPB存储器320可以与视频解码器300的其他组件在芯片上,或者相对于那些组件在芯片外。
另外或替代地,在一些示例中,视频解码器300可从存储器120(图3)检索编码的视频数据。即,存储器120可以如上面与CPB存储器320讨论的那样存储数据。同样,当视频解码器300的一些或全部功能通过软件实现以由视频解码器300的处理电路执行时,存储器120可以存储要由视频解码器300执行的指令。
示出了图6中所示的各种单元以帮助理解由视频解码器300执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。类似于图5,固定功能电路是指提供特定功能并在可以执行的操作上预先设置的电路。可编程电路是指可以编程以执行各种任务并在可以执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以软件或固件的指令所定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,这些单元中的一个或多个可以是不同的电路块(固定功能的或可编程的),并且在一些示例中,这些单元中的一个或多个可以是集成电路。
视频解码器300可包括ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核。在视频解码器300的操作由在可编程电路上执行的软件执行的示例中,片上或片外存储器可以存储视频解码器300接收并执行的软件的指令(例如,目标代码)。
熵解码单元302可从CPB接收编码的视频数据,并对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流中提取的语法元素来生成解码的视频数据。
通常,视频解码器300在逐块的基础上重构图片。视频解码器300可单独地对每个块执行重构操作(其中当前正在重构的(即,被解码的)块可被称为“当前块”)。
熵解码单元302可对定义量化的变换系数块的量化的变换系数的语法元素以及诸如量化参数(QP)和/或(多个)变换模式指示的变换信息进行熵解码。逆量化单元306可以使用与量化的变换系数块相关联的QP来确定量化度,并且同样地,确定逆量化度以供逆量化单元306应用。逆量化单元306可以例如执行按位左移操作以对量化的变换系数进行逆量化。逆量化单元306从而可以形成包括变换系数的变换系数块。
在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一个或多个逆变换应用于变换系数块以生成与当前块相关联的残差块。例如,逆变换处理单元308可以将逆DCT、逆整数变换、逆Karhunen-Loeve变换(KLT)、逆旋转变换、逆方向变换或另一逆变换应用于变换系数块。
此外,预测处理单元304根据由熵解码单元302熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是被帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示从中检索参考块的DPB 314中的参考图片,以及识别相对于当前图片中的当前块的位置的参考图片中的参考块的位置的运动矢量。运动补偿单元316通常可以以与关于运动补偿单元224(图5)所描述的方式基本上相似的方式来执行帧间预测过程。
作为另一示例,如果预测信息语法元素指示当前块是被帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。同样,帧内预测单元318通常可以以与关于帧内预测单元226(图5)描述的方式基本上相似的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314检索当前块的相邻样点的数据。
重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样点添加到预测块的对应样点以重构当前块。
滤波器单元312可对重构块执行一个或多个滤波器操作。例如,滤波器单元312可执行去块操作以减少沿着重构块的边缘的块状伪影。不一定在所有示例中都执行滤波器单元312的操作。根据本公开的技术,滤波器单元312可以维护包括自适应环路滤波器(ALF)参数和相关联的时间层标识符(ID)值的阵列。阵列可以具有预定义大小的N个元件,其中N是非负整数值。阵列可以符合如上所述的表1的示例。
以此方式,当对当前时间层的当前图片的视频数据的解码块执行滤波时,滤波器单元312可使用来自相同或较低时间层的阵列的ALF参数。特别地,滤波器单元312可以将阵列元件的时间层ID与用于当前图片的当前时间层ID值进行比较,并且仅选择时间层ID小于或等于当前时间层ID值的那些ALF参数以用于对当前图片的解码块进行滤波。
滤波器单元312可以以解码顺序或其他预定顺序将ALF参数存储在阵列中。因此,滤波器单元312可以以先进先出(FIFO)的方式替换阵列中的现有ALF参数,或者优先从阵列中移除特定时间层处的ALF参数。
在一些示例中,熵解码单元302可以对表示在对当前图片进行滤波时将使用哪些ALF参数的值(例如,一元编码的值)进行熵解码。熵解码单元302可以将这些值提供给滤波器单元312,滤波器单元312可以从这些值确定要用于当前图片的阵列中的ALF参数。
视频解码器300可以将滤波后的重构块存储在DPB 314中。如上所述,DPB 314可以向预测处理单元304提供参考信息,诸如用于帧内预测的当前图片的样点以及用于后续运动补偿的先前解码的图片。此外,视频解码器300可以从DPB输出解码的图片,以便随后在诸如图3的显示设备118的显示设备上呈现。
以此方式,视频解码器300表示视频解码设备的示例,该视频解码设备包括被配置为存储视频数据的存储器以及被实现在电路中的一个或多个处理单元,该一个或多个处理单元被配置为:将自适应环路滤波器(ALF)参数集合存储在具有预定义大小的N个存储器元件的一维阵列中,N是正整数值,包括在该阵列的一个或多个存储器元件中存储对应的ALF参数和指示要从中估计对应的ALF参数的时间层的时间层标识符(ID)值两者;对视频数据的一个或多个块进行解码;以及使用一维阵列的ALF参数对一个或多个块进行滤波。
图7是示出了根据本公开的技术的对视频数据进行解码和滤波的示例方法的流程图。为了说明的目的,关于图6的视频解码器300来解释图7的方法。然而,应当理解,其他视频译码设备可以被配置为执行该方法或类似方法。例如,视频编码器200可执行类似的方法,包括在对视频数据的块进行解码之前对视频数据的块进行编码,其中由视频编码器200的运动补偿单元224、帧内预测单元226、逆量化单元210、逆变换处理单元212、重构单元214和滤波器单元216来执行解码和滤波。
最初,视频解码器300可以实例化N个元件的阵列(350),其中N是非负整数值。视频解码器300可以在例如包含DPB 314的存储器、滤波器单元312的存储器或视频解码器300内的其他存储器中实例化阵列。通常,对“存储器”的引用应理解为包括这些存储器中的任何一个或全部,或视频解码器300外部的存储器,诸如图3的存储器120。
视频解码器300可将自适应环路滤波器(ALF)参数存储在阵列的元件中(352)。特别地,如以上表1中所示,视频解码器300可将实际ALF参数存储在阵列的元件(即,单元)中,连同存储具有ALF参数的相应时间层标识符(ID)值(354)。即,时间层ID值指示从中估计或将要估计ALF参数的图片的时间层ID值。
然后,视频解码器300可以对当前时间层中的当前图片的一个或多个块进行解码(356)。例如,视频解码器300可以使用由运动补偿单元316执行的帧间预测和/或由帧内预测单元318执行的帧内预测来预测这些块,从而形成预测块。视频解码器300还可使用逆量化单元306和逆变换处理单元308对量化的变换系数进行逆量化和逆变换,从而形成包括残差样点的残差块。重构单元310然后可以在逐样点的基础上将残差块与对应的预测块组合以形成用于当前图片的解码块。
滤波器单元312然后可以对当前图片的解码块执行自适应环路滤波。具体地,根据本公开的技术,滤波器单元312可以针对当前图片确定当前时间层ID并且确定时间层ID小于或等于当前时间层ID的阵列的ALF参数,以对解码块执行滤波处理。滤波器单元312然后可以使用确定的ALF参数来对解码块进行滤波(360)。以此方式,视频解码器300可避免将具有比当前时间层ID更高的时间层ID的图片的ALF参数应用于当前图片的解码块。
视频解码器300然后可以将滤波后的解码块存储在DPB 314中(362)。视频解码器300可以最终输出包括滤波后的解码块的解码图片,并且还将解码图片用作随后要被解码的图片的参考图片。视频解码器300可使用解码的视频数据(例如,比特流的解码参数和/或从解码图片本身确定的数据)来更新阵列中的ALF参数。
在一些情况下,向阵列添加ALF参数可能会超过缓冲器的大小N。在这种情况下,视频解码器300可以例如以先进先出(FIFO)的方式从缓冲器中移除现有参数。因此,视频解码器300可从阵列移除最旧的ALF参数并添加最新的ALF参数来代替移除的最旧的ALF参数。
以此方式,图7的方法表示对视频数据进行解码的方法的示例,该方法包括:将自适应环路滤波器(ALF)参数集合存储在具有预定义大小的N个存储器元件的一维阵列中,N是正整数值,其中存储ALF参数集合包括在阵列的一个或多个存储器元件中存储对应的ALF参数和指示要从中估计对应的ALF参数的时间层的时间层标识符(ID)值两者;对视频数据的一个或多个块进行解码;以及使用一维阵列的ALF参数对一个或多个块进行滤波。
应当认识到,根据示例,本文描述的任何技术的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,并非所有描述的动作或事件都是技术实践所必需的)。此外,在某些示例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器并发地而不是顺序地执行。
在一个或多个示例中,可以以硬件、软件、固件或其任何组合来实现所描述的功能。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质的有形介质,或者通信介质,包括例如根据通信协议来促进将计算机程序从一个地方转移到另一地方的任何介质。以此方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可以由一台或多台计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁性存储设备、闪存或可用于以指令或数据结构形式存储所需程序代码且可由计算机访问的任何其他介质。而且,任何连接都适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(例如红外,无线电和微波)从网站,服务器或其他远程源发送指令,则介质的定义包括同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如红外,无线电和微波)。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬时介质,而是针对非瞬时的有形存储介质。本文使用的磁盘和光盘包括光盘(CD)、激光光盘、光盘、字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式复制数据,而光盘则通过激光光学方式复制数据。上述的组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效的集成或离散逻辑电路。因此,如本文所使用的术语“处理器”和“处理电路”可以指任何前述结构或适合于实现本文描述的技术的任何其他结构。另外,在一些方面,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或结合在组合的编解码器中。同样,该技术可以在一个或多个电路或逻辑元件中完全实现。
本公开的技术可以在包括无线手持机、集成电路(IC)或一组IC(例如,芯片组)的多种设备或装置中实现。在本公开中描述各种组件、模块或单元以强调被配置为执行所公开技术的设备的功能方面,但不一定需要由不同硬件单元来实现。相反,如上所述,各种单元可以组合在编解码器硬件单元中,或者由互操作硬件单元的集合来提供,该硬件单元包括与合适的软件和/或固件结合的如上所述的一个或多个处理器。
已经描述了各种示例。这些和其他示例在所附权利要求的范围内。

Claims (23)

1.一种对视频数据进行解码的方法,所述方法包括:
将自适应环路滤波器(ALF)参数集合存储在具有预定义大小的N个存储器元件的一维阵列中,N是正整数值,其中存储所述ALF参数集合包括在所述阵列的一个或多个存储器元件中存储对应的ALF参数和指示要从中估计所述对应的ALF参数的时间层的时间层标识符(ID)值两者,其中,存储所述ALF参数集合包括以确定的顺序存储所述ALF参数集合;
对视频数据的一个或多个块进行解码;以及
使用所述一维阵列的ALF参数对所述一个或多个块进行滤波,
其中,当接收到新的ALF参数集合并且使用全部N个存储器元件时,所述方法还包括:
选择所述存储器元件中的一个存储器元件,使得所述存储器元件中的所述一个存储器元件具有与所述新的ALF参数集合的时间ID值共同的时间ID值;以及
将所述新的ALF参数集合存储在所述存储器元件中的所述一个存储器元件中。
2.根据权利要求1所述的方法,其中,存储所述ALF参数集合包括存储来自B-切片或P-切片中的至少一个的ALF参数。
3.根据权利要求1所述的方法,其中,所述确定的顺序包括解码顺序。
4.根据权利要求1所述的方法,还包括维护先前索引变量,所述先前索引变量具有表示哪个ALF参数集合将用于滤波的值。
5.根据权利要求4所述的方法,其中,所述先前索引变量具有一元编码格式。
6.根据权利要求4所述的方法,其中,所述先前索引变量的所述值的范围是0到N-1。
7.根据权利要求4所述的方法,其中,所述一个或多个块被包括在具有当前时间ID的图片中,并且其中,滤波包括使用包括在时间ID等于或小于所述当前时间ID的所述阵列中的ALF参数对所述一个或多个块进行滤波。
8.根据权利要求4所述的方法,还包括:根据正被译码的当前图片的时间ID,对表示所述阵列的条目的值进行译码。
9.根据权利要求1所述的方法,还包括:
检测到图片已从包括所述视频数据的比特流中丢失;以及
针对已丢失的所述图片添加预配置的ALF参数集合。
10.根据权利要求1所述的方法,还包括:防止移除所述ALF参数集合中的一个或多个ALF参数集合,直到已经对所述视频数据的后续帧内预测图片(I-图片)进行译码之后。
11.根据权利要求1所述的方法,还包括:在对所述一个或多个块进行解码之前对所述一个或多个块进行编码。
12.一种用于对视频数据进行解码的设备,所述设备包括:
存储器,被配置为存储视频数据;以及
一个或多个处理器,被实现在电路中并被配置为:
将自适应环路滤波器(ALF)参数集合存储在所述存储器中的一维阵列中,所述一维阵列具有预定义大小的N个存储器元件,N是正整数值,其中,所述一个或多个处理器被配置为在所述阵列的一个或多个存储器元件中存储对应的ALF参数和指示要从中估计所述对应的ALF参数的时间层的时间层标识符(ID)值两者;
对所述视频数据的一个或多个块进行解码;以及
使用所述一维阵列的ALF参数对所述一个或多个块进行滤波,
其中,所述一个或多个处理器被配置为以解码顺序存储所述ALF参数集合,
其中,当接收到新的ALF参数集合并且使用全部N个存储器元件时,所述一个或多个处理器被配置为:
选择所述存储器元件中的一个存储器元件,使得所述存储器元件中的所述一个存储器元件具有与所述新的ALF参数集合的时间
ID值共同的时间ID值;以及
将所述新的ALF参数集合存储在所选择的所述存储器元件中的所述一个存储器元件中。
13.根据权利要求12所述的设备,其中,所述一个或多个处理器被配置为维护先前索引变量,所述先前索引变量具有表示哪个ALF参数集合将用于滤波的值。
14.根据权利要求13所述的设备,其中,所述一个或多个块被包括在具有当前时间ID的图片中,并且其中,所述一个或多个处理器被配置为使用包括在时间ID等于或小于所述当前时间ID的所述阵列中的ALF参数对所述一个或多个块进行滤波。
15.根据权利要求13所述的设备,其中,所述一个或多个处理器还被配置为根据正被译码的当前图片的时间ID,对表示所述阵列的条目的值进行译码。
16.根据权利要求12所述的设备,其中,所述一个或多个处理器还被配置为在对所述一个或多个块进行解码之前对所述一个或多个块进行编码。
17.根据权利要求12所述的设备,还包括被配置为显示所述视频数据的显示器。
18.根据权利要求12所述的设备,其中,所述设备包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
19.一种在其上存储有指令的计算机可读存储介质,所述指令在被执行时使处理器执行以下操作:
将自适应环路滤波器(ALF)参数集合存储在具有预定义大小的N个存储器元件的一维阵列中,N是正整数值,其中存储所述ALF参数集合包括在所述阵列的一个或多个存储器元件中存储对应的ALF参数和指示要从中估计所述对应的ALF参数的时间层的时间层标识符(ID)值两者;
对视频数据的一个或多个块进行解码;以及
使用所述一维阵列的ALF参数对所述一个或多个块进行滤波,
其中所述计算机可读存储介质还包括使所述处理器以解码顺序存储所述ALF参数集合的指令,
其中,所述计算机可读存储介质还包括使所述处理器执行以下操作的指令:当接收到新的ALF参数集合并且使用全部N个存储器元件时,
选择所述存储器元件中的一个存储器元件,使得所述存储器元件中的所述一个存储器元件具有与所述新的ALF参数集合的时间
ID值共同的时间ID值;以及
将所述新的ALF参数集合存储在所选择的所述存储器元件中的所述一个存储器元件。
20.根据权利要求19所述的计算机可读存储介质,还包括使所述处理器维护先前索引变量的指令,所述先前索引变量具有表示哪个ALF参数集合将用于滤波的值。
21.根据权利要求19所述的计算机可读存储介质,还包括使所述处理器在对所述一个或多个块进行解码之前对所述一个或多个块进行编码的指令。
22.一种用于对视频数据进行解码的设备,所述设备包括:
用于将自适应环路滤波器(ALF)参数集合存储在具有预定义大小的N个存储器元件的一维阵列中的部件,N是正整数值,其中存储所述ALF参数集合包括在所述阵列的一个或多个存储器元件中存储对应的ALF参数和指示要从中估计所述对应的ALF参数的时间层的时间层标识符(ID)值两者;
用于对视频数据的一个或多个块进行解码的部件;以及
用于使用所述一维阵列的ALF参数对所述一个或多个块进行滤波的部件,
其中所述设备还包括以解码顺序存储所述ALF参数集合的部件,
其中所述设备还包括用于执行以下操作的部件:在接收到新的ALF参数集合并且使用全部N个存储器元件时,选择所述存储器元件中的一个存储器元件,使得所述存储器元件中的所述一个存储器元件具有与所述新的ALF参数集合的时间ID值共同的时间ID值;以及将所述新的ALF参数集合存储在所选择的所述存储器元件中的所述一个存储器元件。
23.根据权利要求22所述的设备,还包括用于在对视频数据的所述一个或多个块进行解码之前对视频数据的所述一个或多个块进行编码的部件。
CN201980058289.3A 2018-09-12 2019-09-12 减少视频译码的内存消耗的自适应环路滤波器参数的时间预测 Active CN112655217B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862730504P 2018-09-12 2018-09-12
US62/730,504 2018-09-12
US16/567,966 2019-09-11
US16/567,966 US11284075B2 (en) 2018-09-12 2019-09-11 Prediction of adaptive loop filter parameters with reduced memory consumption for video coding
PCT/US2019/050836 WO2020056151A1 (en) 2018-09-12 2019-09-12 Temporal prediction of adaptive loop filter parameters with reduced memory consumption for video coding

Publications (2)

Publication Number Publication Date
CN112655217A CN112655217A (zh) 2021-04-13
CN112655217B true CN112655217B (zh) 2023-09-12

Family

ID=69719828

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980058289.3A Active CN112655217B (zh) 2018-09-12 2019-09-12 减少视频译码的内存消耗的自适应环路滤波器参数的时间预测

Country Status (15)

Country Link
US (1) US11284075B2 (zh)
EP (1) EP3850854A1 (zh)
JP (1) JP7438196B2 (zh)
KR (1) KR20210055043A (zh)
CN (1) CN112655217B (zh)
AU (1) AU2019338456B2 (zh)
BR (1) BR112021003869A2 (zh)
CA (1) CA3109370A1 (zh)
CO (1) CO2021003109A2 (zh)
IL (1) IL280716A (zh)
MX (1) MX2021002862A (zh)
PH (1) PH12021550293A1 (zh)
SG (1) SG11202101278UA (zh)
WO (1) WO2020056151A1 (zh)
ZA (1) ZA202102351B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451773B2 (en) 2018-06-01 2022-09-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) design and signaling
US11051017B2 (en) 2018-12-20 2021-06-29 Qualcomm Incorporated Adaptive loop filter (ALF) index signaling
US11683487B2 (en) 2019-03-26 2023-06-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) with adaptive parameter set (APS) in video coding
US11743459B2 (en) 2020-09-29 2023-08-29 Qualcomm Incorporated Filtering process for video coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103959779A (zh) * 2011-11-28 2014-07-30 高通股份有限公司 在视频译码中用于自适应环路滤波和样本自适应偏移的基于最大译码单元(lcu)或分区的语法
CN107211154A (zh) * 2015-02-11 2017-09-26 高通股份有限公司 译码树单元级自适应环路滤波器

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3061278B2 (ja) * 1988-04-29 2000-07-10 ゼロックスコーポレーション 可変ビット長コード語のビット長通信方法
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US9277228B2 (en) * 2011-07-18 2016-03-01 Qualcomm Incorporated Adaptation parameter sets for video coding
US20130113880A1 (en) * 2011-11-08 2013-05-09 Jie Zhao High Efficiency Video Coding (HEVC) Adaptive Loop Filter
IN2015DN02130A (zh) * 2012-09-27 2015-08-14 Dolby Lab Licensing Corp
WO2014072571A1 (en) * 2012-10-01 2014-05-15 Nokia Corporation 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
EP3453174A1 (en) 2016-05-06 2019-03-13 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 シャープ株式会社 動画像符号化装置及び動画像復号装置、フィルタ装置
CN116634154A (zh) * 2017-09-08 2023-08-22 株式会社Kt 视频信号处理方法及装置
US10863175B2 (en) * 2018-03-01 2020-12-08 Panasonic Intellectual Property Corporation Of America Encoder, and decoder, encoding method, decoding method
KR20230119739A (ko) * 2018-03-29 2023-08-16 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 병렬 코딩 기능들 향상을 위한 컨셉
US11451773B2 (en) 2018-06-01 2022-09-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) design and signaling
US20200029096A1 (en) * 2018-07-17 2020-01-23 Qualcomm Incorporated Combined inverse dynamic range adjustment (dra) and loop filter technique
US11051017B2 (en) 2018-12-20 2021-06-29 Qualcomm Incorporated Adaptive loop filter (ALF) index signaling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103959779A (zh) * 2011-11-28 2014-07-30 高通股份有限公司 在视频译码中用于自适应环路滤波和样本自适应偏移的基于最大译码单元(lcu)或分区的语法
CN107211154A (zh) * 2015-02-11 2017-09-26 高通股份有限公司 译码树单元级自适应环路滤波器

Also Published As

Publication number Publication date
KR20210055043A (ko) 2021-05-14
ZA202102351B (en) 2022-10-26
MX2021002862A (es) 2021-05-28
WO2020056151A1 (en) 2020-03-19
JP2022500903A (ja) 2022-01-04
CN112655217A (zh) 2021-04-13
US11284075B2 (en) 2022-03-22
CO2021003109A2 (es) 2021-03-19
AU2019338456B2 (en) 2023-04-27
AU2019338456A1 (en) 2021-03-11
US20200084444A1 (en) 2020-03-12
IL280716A (en) 2021-03-25
PH12021550293A1 (en) 2021-10-25
EP3850854A1 (en) 2021-07-21
JP7438196B2 (ja) 2024-02-26
BR112021003869A2 (pt) 2021-05-18
SG11202101278UA (en) 2021-03-30
CA3109370A1 (en) 2020-03-19

Similar Documents

Publication Publication Date Title
US11212550B2 (en) History-based motion vector prediction for affine mode
CN113940069A (zh) 用于视频译码中的低频不可分离变换的变换和最后有效系数位置信令
US11539982B2 (en) Merge estimation region for multi-type-tree block structure
CN113508594A (zh) 视频编解码中三角形合并模式索引的信令
CN113748679A (zh) 用于视频编解码的帧内块复制合并数据语法
CN112655217B (zh) 减少视频译码的内存消耗的自适应环路滤波器参数的时间预测
CN111602395B (zh) 用于视频译码的量化组
JP2022527194A (ja) ビデオコーディングのための勾配ベースの予測改良
US11277611B2 (en) Delta quantization parameter (QP) signaling in palette mode
US10897617B2 (en) Rounding of motion vectors for adaptive motion vector difference resolution and increased motion vector storage precision in video coding
CN114223202A (zh) 低频不可分离变换(lfnst)信令
US11418796B2 (en) Intra block copy prediction restrictions in video coding
CN113170162A (zh) 用于视频译码的共享候选列表和并行候选列表推导
US20200186798A1 (en) Adaptive loop filter (alf) coefficients in video coding
US11303913B2 (en) Decoded picture buffer indexing
US11418787B2 (en) Chroma delta QP in video coding
US20200112717A1 (en) Intra block copy prediction restrictions in video coding
US11722692B2 (en) History-based motion vector predictor constraint for merge estimation region
CN114175643A (zh) 调色板和预测模式信令
CN113994675A (zh) 用于bdpcm模式的最大允许块大小
RU2803195C2 (ru) Временное предсказание параметров адаптивного контурного фильтра со сниженным потреблением памяти для кодирования видео
US20200267415A1 (en) Chroma deblocking filter for intra block copy mode for video coding
CN114402600A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40047179

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant