CN117063470A - 图像/视频编解码中的边界上的填充样点滤波 - Google Patents

图像/视频编解码中的边界上的填充样点滤波 Download PDF

Info

Publication number
CN117063470A
CN117063470A CN202280016237.1A CN202280016237A CN117063470A CN 117063470 A CN117063470 A CN 117063470A CN 202280016237 A CN202280016237 A CN 202280016237A CN 117063470 A CN117063470 A CN 117063470A
Authority
CN
China
Prior art keywords
samples
fill
sample
video
prediction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280016237.1A
Other languages
English (en)
Inventor
邓智玭
张凯
张莉
张娜
王洋
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.)
Douyin Vision Co Ltd
ByteDance Inc
Original Assignee
Douyin Vision Co Ltd
ByteDance 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 Douyin Vision Co Ltd, ByteDance Inc filed Critical Douyin Vision Co Ltd
Publication of CN117063470A publication Critical patent/CN117063470A/zh
Pending legal-status Critical Current

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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • 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
    • 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/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
    • H04N19/51Motion estimation or motion compensation
    • H04N19/563Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes

Landscapes

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

Abstract

一种由视频编解码装置实施的编解码视频数据的方法。该方法包括对设置在视频单元周围的扩展区域内的填充样点进行滤波,并根据滤波后的扩展区域中的一个或多个填充样点在视频的视频单元和比特流之间进行转换。

Description

图像/视频编解码中的边界上的填充样点滤波
相关申请的交叉引用
本申请是北京字节跳动网络技术有限公司于2021年2月20日提交的且申请名称为“图像/视频编解码中的边界上的填充样点滤波”的国际申请No.PCT/CN2021/077034的继续申请,其内容通过引用并入本文。
技术领域
本公开一般涉及视频编解码,并且具体地涉及图像/视频编解码中的帧间预测。
背景技术
数字视频占互联网和其他数字通信网络上最大的带宽使用。随着能够接收和显示视频的连接用户设备数量的增加,预计数字视频使用的带宽需求将继续增长。
发明内容
所公开的方面/实施例对视频单元周围的扩展区域内的填充样点(例如,一个或多个填充样点)进行滤波,以例如,移除块伪影,向重建的视频数据添加偏移,减少失真,或以其他方式提高重建的质量。因此,视频编解码相对于现有技术得到了改进。
第一方面涉及一种由视频编解码装置实现的编解码视频数据的方法。该方法包括:对设置在视频的视频单元周围的扩展区域内的填充样点进行滤波;和根据滤波后的扩展区域中的填充样点,在视频的视频单元和比特流之间进行转换。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,通过帧间预测或帧内预测来生成填充样点。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,通过复制填充或重复填充来生成填充样点。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,当通过帧间预测、帧内预测或帧内块复制(intra block copy,IBC)生成填充样点时,对填充样点进行滤波。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,通过将偏移添加到来自填充样点的一个填充样点的样点值,对该一个填充样点进行滤波,并且其中,偏移是基于视频单元内的边界样点与对应于边界样点的一个或多个预测样点之间的一个或多个样点差。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,通过将偏移添加到来自填充样点的一个填充样点的样点值,对该一个填充样点进行滤波,并且其中,偏移是基于该一个填充样点周围的邻近填充样点与对应于邻近填充样点的一个或多个预测样点之间的样点差。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,添加到该一个填充样点的偏移的值是基于a*Func(Diff0…,Diffi,…)+b推导的,其中a和b是常数,Diffi表示样点差,并且Func表示平均运算、最小运算或最大运算。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,添加到该一个填充样点的偏移的值基于该一个填充样点和视频单元的边界之间的距离。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,不同的偏移值被应用于两个或多个填充样点,并且其中,不同的偏移值是基于两个或多个填充样点的颜色分量。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,不同的偏移值被应用于两个或多个填充样点,并且其中,不同的偏移值是基于两个或多个填充样点是如何生成的。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,将相同的偏移值添加到填充样点中的多于一个的填充样点,以对多于一个的填充样点进行滤波,并且其中,在将相同的偏移值添加到多于一个的填充样点之前,对相同的偏移值进行裁剪。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,基于来自填充样点的一个填充样点的邻近样点,对该一个填充样点进行滤波,并且其中,邻近样点设置在视频单元内。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,基于来自填充样点的一个填充样点的邻近样点,对该一个填充样点进行滤波,并且其中,邻近样点是来自填充样点的另一填充样点。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,填充样点由运动补偿时域滤波器进行滤波,运动补偿时域滤波器利用多于一个参考图片中的运动差。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,基于与来自填充样点的一个填充样点邻近的另一填充样点的运动数据,对该一个填充样点进行滤波。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,基于视频单元内的边界样点的编解码信息索引、运动矢量精度、运动数据或视频单元内的边界样点的预测模式对填充样点进行滤波,并且其中,编解码信息包含具有编解码单元(coding unit,CU)级别权重的双向帧间预测(bidirectional inter prediction with coding unit-levelweights,BCW)或广义双向预测(generalized bi-prediction,GBi)。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,基于视频单元内的一个或多个紧邻样点是否用重叠块运动补偿(overlapped block motioncompensation,OBMC)来编解码来对填充样点进行滤波。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,基于视频单元内的一个或多个紧邻样点是否用局部照明补偿(local illuminance compensation,LIC)来编解码来对填充样点进行滤波。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,基于来自填充样点的一个填充样点在扩展区域内的位置,来对该一个填充样点进行滤波。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,基于来自填充样点的一个填充样点的颜色分量或颜色格式,来对该一个填充样点进行滤波。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,当一些填充样点被设置在与来自填充样点的一个填充样点的边缘相同的一侧时,对该边缘进行滤波。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,当通过复制生成对应于来自填充样点的一个填充样点的边缘的该一个填充样点一侧上的一些填充样点时,并且通过帧间预测或帧内预测生成该一个填充样点的另一侧上的一些填充样点时,对来该边缘进行滤波。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,当通过帧间预测或帧内预测生成对应于来自填充样点的一个填充样点的边缘的该一个填充样点一侧上的一些填充样点,并且通过帧内预测生成该一个填充样点的另一侧上的一些填充样点时,对该边缘进行滤波。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,用于对一个或多个填充样点进行滤波的滤波器的强度取决于来自填充样点的一个填充样点的每一侧上的填充样点的数量。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,当来自填充样点的一个填充样点的两侧上的填充样点以相同方式生成时,根据运动矢量、参考索引或帧内预测角度对该一个填充样点的边缘进行滤波。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,用于对填充样点进行滤波的滤波器的强度是基于填充样点尺寸。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,对填充样点中的两个填充样点之间的边界或者填充样点中的一个填充样点与边界样点之间的边界应用去方块过程。
可选地,在前述方面中的任一项中,该方面的另一实现方式规定,基于来自神经网络或卷积神经网络(convolutional neural network,CNN)的输入来对填充样点进行滤波。
第二方面涉及一种编解码视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中,指令在由处理器执行时使得处理器执行本文公开的方法中任一个。
第三方面涉及一种非暂时性计算机可读介质,包括由编解码装置使用的计算机程序产品,计算机程序产品包括存储在非暂时性计算机可读介质上的计算机可执行指令,计算机可执行指令在由一个或多个处理器执行时使编解码装置执行本文公开的方法中任一个。
为清晰起见,任何一个前述实施例可与任何一个或多个其他前述实施例组合,以在本公开的范围内形成新的实施例。
从以下结合附图和权利要求的详细说明中,可更清楚地理解这些和其他特征。
附图说明
为了更全面地理解本公开内容,现结合附图和详细说明参考以下简要说明,其中相同的参考数字代表相同的部件。
图1是图示单向帧间预测的示例的示意图。
图2是图示双向帧间预测的示例的示意图。
图3是视频比特流的实施例的示意图。
图4是使用设置在视频单元周围的填充区域填充或扩大至更大视频单元的视频单元的示意图。
图5是使用设置在视频单元周围的扩展区域填充或扩大至更大视频单元的视频单元的示意图。
图6是根据本公开的实施例编解码视频数据的方法。
图7是编码器的示意图。
图8是显示示例视频处理系统的框图。
图9是视频处理装置的框图。
图10是图示示例视频编解码系统的框图。
图11是图示视频编码器的示例的框图。
图12是图示视频解码器的示例的框图。
具体实施方式
首先应理解,尽管下文提供了一个或多个实施例的说明性实现方式,但可使用任何数量的技术实现所公开的系统和/或方法,无论是当前已知的还是现有的。本公开不应以任何方式限于以下示出的示例性实现方式、附图和技术,包括在此示出和描述的示例性设计和实现方式,而是可以在所附权利要求及其等同物的全部范围内进行修改。
视频编解码标准主要是通过著名的国际电信联盟电信(ITU-T)和国际标准化组织(ISO)/国际电工委员会(IEC)标准的发展而演变的。ITU-T制定了H.261和H.263,ISO/IEC制定了运动图片专家组(MPEG)-1和MPEG-4视觉,并且两个组织联合制定了H.262/MPEG-2视频和H.264/MPEG-4高级视频编解码(AVC)和H.265/高效视频编解码(HEVC)标准。
自H.262起,视频编解码标准基于混合视频编解码结构,其中利用时域预测加变换编解码。为了探索HEVC之外的未来视频编解码技术,视频编解码专家组(VCEG)和MPEG于2015年联合成立了联合视频探索团队(JVET)。此后,JVET采用了许多新方法,并放入名为联合探索模型(JEM)的参考软件中。
2018年4月,VCEG(Q6/16)和ISO/IEC JTC1SC29/WG11(MPEG)之间成立了联合视频专家团队(JVET),致力于制定多功能视频编解码(VVC)标准(也称为H.266),目标是与HEVC相比降低百分之五十(50%)比特率。VVC的第一个版本于2020年7月完成。
在一些描述中使用H.266术语只是为了便于理解,而不是为了限制所公开技术的范围。因此,本文描述的技术也适用于其他视频编解码器协议和设计。这些思想可以单独地或以各种组合应用于任何图像/视频编解码标准或非标准图像/视频编解码器,例如下一代图像/视频编解码标准。
图1是图示单向帧间预测100的示例的示意图。单向帧间预测100可用于确定在分割图片时创建的编码的和/或解码的块的运动矢量。
单向帧间预测100采用具有参考块131的参考帧130来预测当前帧110中的当前块111。如图所示,参考帧130可以在时域上被定位在当前帧110之后(例如,作为后续参考帧),但是在一些示例中,参考帧130也可以在时域上被定位在当前帧110之前(例如,作为先前参考帧)。当前帧110是在特定时间被编码/解码的示例帧/图片。当前帧110包含与参考帧130的参考块131中的对象匹配的当前块111中的对象。参考帧130是用作对当前帧110进行编码的参考的帧,并且参考块131是参考帧130中的包含也被包含在当前帧110的当前块111中的对象的块。
当前块111是在编解码过程中的指定点处正在被编码/解码的任何编解码单元。当前块111可以是整个分割块,或者当采用仿射帧间预测模式时可以是子块。当前帧110与参考帧130分开某个时域距离(temporal distance,TD)133。TD 133指示视频序列中当前帧110与参考帧130之间的时间量,并且可以以帧为单位来被测量。当前块111的预测信息可以通过指示帧之间的方向和时域距离的参考索引来参考参考帧130和/或参考块131。在由TD133表示的时间段内,当前块111中的对象从当前帧110中的位置移动到参考帧130中的另一个位置(例如,参考块131的位置)。例如,对象可以沿着运动轨迹113移动,运动轨迹113是对象随时间的移动方向。运动矢量135描述对象在TD 133上沿运动轨迹113移动的方向和幅度。因此,编码的运动矢量135、参考块131和包括当前块111与参考块131之间的差的残差提供足以重建当前块111以及在当前帧110中定位当前块111的信息。
图2是图示双向帧间预测200的示例的示意图。双向帧间预测200可用于确定在分割图片时创建的编码的和/或解码的块的运动矢量。
双向帧间预测200类似于单向帧间预测100,但是采用一对参考帧来预测当前帧210中的当前块211。因此,当前帧210和当前块211分别基本上类似于当前帧110和当前块111。当前帧210在时域上被定位在视频序列中当前帧210之前出现的先前参考帧220和视频序列中当前帧210之后出现的后续参考帧230之间。先前参考帧220和后续参考帧230在其他方面基本上类似于参考帧130。
当前块211与先前参考帧220中的先前参考块221匹配,并且与后续参考帧230中的后续参考块231匹配。这样的匹配指示,在视频序列的过程中,对象沿着运动轨迹213并经由当前块211从先前参考块221处的位置移动到后续参考块231处的位置。当前帧210与先前参考帧220分开某个先前时域距离(TD0)223,并且与后续参考帧230分开某个后续时域距离(TD1)233。TD0223以帧为单位指示视频序列中的先前参考帧220与当前帧210之间的时间量。TD1 233以帧为单位指示视频序列中的当前帧210和后续参考帧230之间的时间量。因此,对象在TD0 223指示的时间段内沿着运动轨迹213从先前参考块221移动到当前块211。对象还在TD1 233指示的时间段内沿着运动轨迹213从当前块211移动到后续参考块231。当前块211的预测信息可通过指示帧之间的方向和时域距离的一对参考索引来参考先前参考帧220和/或先前参考块221以及后续参考帧230和/或后续参考块231。
先前运动矢量(MV0)225描述对象沿着TD0 223上的运动轨迹213(例如,在先前参考帧220与当前帧210之间)的移动的方向和幅度。后续运动矢量(MV1)235描述对象沿着TD1233上的运动轨迹213(例如,在当前帧210与后续参考帧230之间)的运动的方向和幅度。这样,在双向帧间预测200中,可以通过采用先前参考块221和/或后续参考块231、MV0 225和MV1 235来对当前块211进行编解码和重建。
在实施例中,帧间预测和/或双向帧间预测可以在逐个样点(例如,逐个像素)的基础上而不是在逐块的基础上执行。即,可以针对当前块211中的每个样点确定指向先前参考块221和/或后续参考块231中的每个样点的运动矢量。在这样的实施例中,图2中描绘的运动矢量225和运动矢量235表示与当前块211、先前参考块221和后续参考块231中的多个样点对应的多个运动矢量。
在merge模式和高级运动矢量预测(advanced motion vector prediction,AMVP)模式两者中,通过以候选列表确定模式定义的顺序将候选运动矢量添加至候选列表,来生成候选列表。这样的候选运动矢量可以包括根据单向帧间预测100、双向帧间预测200或其组合的运动矢量。具体地,当对邻近块进行编码时,为这些块生成运动矢量。这样的运动矢量被添加到当前块的候选列表,并且从候选列表中选择当前块的运动矢量。然后可以信令通知该运动矢量,作为候选列表中所选运动矢量的索引。解码器可以使用与编码器相同的过程来构建候选列表,并且可以基于信令通知的索引从候选列表确定所选择的运动矢量。因此,候选运动矢量包括根据单向帧间预测100和/或双向帧间预测200生成的运动矢量,这取决于当对这样的紧邻块进行编码时使用哪种方法。
图3是视频比特流300的实施例的示意图。如本文所使用的,视频比特流300也可以被称为编解码视频比特流、比特流或其变体。如图3所示,比特流300包括以下一项或多项:序列参数集(sequence parameter set,SPS)306、图片参数集(picture parameter set,PPS)308、图片标头(picture header,PH)312和图片314。SPS 306和PPS 308可以统称为参数集。在实施例中,图3中未示出的其他参数集也可以被包括在比特流300中,例如视频参数集(VPS)、自适应参数集(APS)等。
SPS 306包含图片序列(sequence of pictures,SOP)中的所有图片所共用的数据。SPS 306是包含应用于零个或多个完整CLVS的语法元素的语法结构,如由PPS中存在的语法元素的内容所确定的,由每个图片标头中存在的语法元素参考。相反地,PPS 308包含整个图片所共用的数据。PPS 308是包含应用于零个或多个完整编解码图片的语法元素的语法结构。
SPS 306和PPS 308包含在不同类型的网络抽象层(Network Abstraction Layer,NAL)单元中。NAL单元是包含要跟随的数据类型(例如,编解码视频数据)的指示的语法结构。NAL单元被分类为视频编解码层(video coding layer,VCL)和非VCL NAL单元。VCL NAL单元包含表示视频图片中样点的值的数据,并且非VCL NAL单元包含任何相关的附加信息,例如参数集(可应用于多个VCL NAL单元的重要数据)和补充增强信息(定时信息和其他补充数据,其可以增强解码视频信令通知的可用性,但是对于解码视频图片中的样点的值不是必需的)。
在实施例中,SPS 306是被指定为SPS NAL单元的非VCL NAL单元。因此,SPS NAL单元具有SPS NUT。在实施例中,PPS 308包含在被指定为PPS NAL单元的非VCL NAL单元中。因此,PPS NAL单元具有PPS NUT。
PH 312是包含适用于编解码图片(例如,图片314)的所有条带(例如,条带318)的语法元素的语法结构。在实施例中,PH 312在被指定为PH NAL单元的非VCL NAL单元中。因此,PH NAL单元具有PH NUT(例如,PH_NUT)。在实施例中,对于比特流300中的每个图片314存在一个PH NAL单元。
图片314为单色格式的亮度样点阵列或4:2:0、4:2:2和4:4:4颜色格式的亮度样点阵列和两个对应的色度样点阵列。图片314可以是帧或场。然而,在一个编解码视频序列(coded video sequence,CVS)316中,或者所有图片314都是帧,或者所有图片314都是场。CVS 316是视频比特流300中每个编解码层视频序列(coded layer video sequence,CLVS)的编解码视频序列。值得注意的是,当视频比特流300包括单层时,CVS 316和CLVS是相同的。只有当视频比特流300包括多层时,CVS 316和CLVS才不同。
每个图片314包含一个或多个条带318。条带318是图片(例如,图片314)的片内的整数个完整片或整数个连续完整编解码树单元(coding tree unit,CTU)行。每个条带318被排他地包含在单个NAL单元(例如,VCL NAL单元)中。片(未示出)是图片(例如图片314)中的特定片列和特定片行内的CTU的矩形区域。CTU(未示出)是亮度样点的编解码树块(coding tree block,CTB)、具有三个样点阵列的图片的色度样点的两个对应的CTB、或者单色图片或使用三个单独的颜色平面和用于对样点进行编解码的语法结构来编解码的图片的样点的CTB。CTB(未示出)是针对某个N值的N×N样点块,使得将分量划分为CTB是分割。块(未示出)是样点(例如,像素)的MxN(M列乘N行)阵列,或者变换系数的MxN阵列。
每个CTB可以被不同地划分成多个编解码块(coding block,CB)。CB是执行图片帧间预测还是执行图片帧内预测的决策点。更准确地,预测类型在编解码单元(CU)中被编解码。CU由三个CB(Y、Cb和Cr)和关联的语法元素组成。
在实施例中,每个条带318包含条带标头320。条带标头320是编解码条带318的一部分,其包含与条带318中表示的片内的所有片或CTU行有关的数据元素。也就是说,条带标头320包含关于条带318的信息,例如条带类型、将使用哪个参考图片等等。
图片314及其条带318包括与正被编码或解码的图像或视频相关联的数据。因此,图片314及其条带318可以简单地称为比特流300中携带的有效负载或数据。
本领域技术人员应当理解,在实际应用中,比特流300可以包含其他参数和信息。
复制或重复填充可用于将图片扩大到更大的尺寸。更具体地,参考图片(例如,图1中的参考帧130,或者图2中的先前参考帧220或后续参考帧231)被扩大以形成更大的图片。例如,位于参考图片的左边界处的边界样点被复制到参考图片的左侧,位于参考图片的右边界处的边界样点被复制到参考图片的右侧,位于参考图片的顶部边界处的边界样点被复制到参考图片的上方,并且位于参考图片的底部边界处的边界样点被复制到参考图片的下方。这些位于参考图片外部的复制边界样点被称为填充样点(又名填充样点)。
对于当前图片编解码,当当前块(例如,当前块111)的运动矢量(例如,MV 135)指向(部分或完全)位于参考图片(例如,参考帧130)外部的参考块(例如,参考块131)时,从参考图片边界外部的填充样点生成当前块的预测块。
运动补偿边界填充在2018年Y.W.Chen等人的JEVT文档JVET-J0021“高通和Technicolor的SDRHDR和360°视频编解码技术提案的描述-低和高复杂性版本”中讨论。当解码器执行运动补偿时,如果运动矢量指向参考帧边界之外的块,则参考块的一部分不可用。为了解决这个问题,可以使用填充样点来扩大或放大参考图片/帧。对于沿着要填充的参考图片的边界的尺寸为4xM或Mx4的每个区域,M是期望的帧边界扩展,从帧内最近的4x4块推导运动矢量。如果最近的4×4块被帧内编解码,则使用零个运动矢量。如果用双向帧间预测对最近的4×4块进行编解码,则只有指向远离帧边界的像素的运动矢量被用于填充的运动补偿。在运动矢量推导之后,然后执行运动补偿以获得填充区域中的像素,同时考虑最近的4×4块与其参考图片中的对应块之间的平均像素值偏移。
由于现有标准中复制填充的基本原理,填充长度可以是任何值,只要填充长度不超过运动矢量的允许范围。当应用运动补偿填充时,这种基本原理不再有效。
现有图片边界填充将样点从边界复制到扩展区域。此外,传统的运动补偿填充方法简单地从Mx4编解码块中推导运动矢量。传统的运动补偿填充方法未能利用移动的连续性,该移动可以通过图片内部或连续图片之间的运动来跟踪。
此外,现有图片边界填充未能考虑边界样点/块和扩展样点/块之间的潜在运动差。此外,现有图片边界填充未能考虑沿邻近填充单元的边缘的潜在不连续性问题/伪影。
本文公开了解决上述问题和一些未提及的其他问题的技术。例如,本文中所公开的技术对视频单元周围的扩展区域内的填充样点(例如,一个或多个填充样点)进行滤波,以(例如)移除块化伪影、将偏移添加到重建的视频数据、减少失真或以其它方式改进重建的质量。本文描述的技术应该被视为解释一般概念的示例,而不应该以狭隘的方式解释。此外,这些项目可以单独应用或以任何方式组合应用。
图4是使用设置在视频单元400周围的填充区域404将视频单元400(例如,图片、条带、片、子图片、参考图片等)填充或扩大为较大视频单元402的示意图。视频单元400具有高度406(PicH)和宽度408(PicW)。每个填充区域404具有水平填充尺寸410(PadH)和垂直填充尺寸412(PadW)。因此,较大视频单元402具有(picW+2×padW)×(picH+2×padH)的总体尺寸。为了讨论的目的,填充区域404被标记为区域0、区域1、区域2、区域3、区域4、区域5、区域6和区域7。标记为区域0、区域1、区域2、区域3的填充区域404在本文中可以被称为紧邻填充区域。另外,标记为区域4、区域5、区域6和区域7的填充区域404在本文中可以被称为角填充区域。
在本公开中,视频单元(picWxpicH)被填充为更大的图片(picW+2xpadW)x(picH+2xpadH)。PicW和picH分别表示宽度和高度维度上的视频单元(例如,图片)尺寸。padW和padH分别表示沿着宽度和高度方向的一侧的填充长度,如图4所示。
注意,在下面的描述中,假设视频单元是图片。还假设仅将图片picWxpicH编解码为压缩比特流,而在编码器和解码器侧两处生成填充区域以形成更大的参考图片,用于按解码顺序对未来图片进行帧间预测。
图5是使用设置在视频单元500周围的扩展区域504将视频单元500填充或扩大为较大视频单元502的示意图。图5的视频单元500和较大视频单元502分别类似于图4的视频单元400和较大视频单元402。图5中的扩展区域504相当于图4中填充区域404的顶点。
如图所示,视频单元500包括设置在视频单元500内的边界样点506。当边界样点506与扩展区域504中的填充样点508紧邻时,视频单元500中的边界样点506被认为对应于扩展区域504中的填充样点508。也就是说,边界样点506与扩展区域504中的填充样点508紧密紧邻或直接穿过扩展区域504中的填充样点508。扩展区域504被认为对应于填充样点508。
设置在视频单元500的顶部处的边界样点506被认为是在顶行510中。同样,设置在视频单元500的左侧处的边界样点506被认为是在左列512中。以类似的方式,本领域技术人员将认识到,设置在视频单元500的底部(未示出)处的边界样点506被认为是在底行(未示出)中,并且设置在视频单元500的右侧(未示出)处的边界样点506被认为是在右列(未示出)中。行和列(例如,行510和列512)的交叉点处的边界样点506可以被称为角边界样点。
与边界样点506类似,填充样点508也可以被认为是按行和列组织的。例如,区域2(见图4-5)的顶部处的填充样点508(或样点)被认为是在顶行510中。区域0的最左侧处的填充样点508(或样点)被认为是在左列512中。
图5中的边界样点506和填充样点508在本文中可分别称为边界块/单元和填充块/单元。图5中的扩展区域508类似于图4中填充区域404的累积。在实施例中,边界样点506被称为重建样点或预测样点,并且填充样点508被称为样点或亮度样点。
从前述内容中,应理解,图5描绘了视频单元500内的边界样点506和视频单元500外的填充样点508之间的关系。
图6是根据本公开的实施例编解码视频数据的方法600。方法600可以由具有处理器和存储器的视频编解码装置(例如,编码器或解码器)来执行。在确定如何对视频单元周围的扩展区域内的填充样点进行滤波时,可实施方法600,作为其中利用帧间预测(也称为运动补偿预测)的运动补偿过程的一部分。
在块602中,视频编解码装置对设置在视频的视频单元(例如,视频单元500)周围的扩展区域(例如,扩展区域504)内的填充样点(例如,填充样点508)进行滤波。在实施例中,对填充样点进行滤波是指对一个或多个填充样点508进行滤波。
在框604中,视频编解码装置根据滤波后的扩展区域中的填充样点,在视频的视频单元和比特流(例如,比特流300)之间进行转换。当在编码器中实施转换时,转换包括接收视频单元(例如,媒体文件)并且将视频单元和任何对应的参数编码成比特流。当在解码器中实施转换时,转换包括接收包括视频单元和任何对应参数的比特流,以及对比特流进行解码以获得视频单元和任何对应参数。
1.在一个实例中,一个方向上(例如,沿着图片的左/右/上/下侧)的图片的填充长度(例如padW和/或padH)可取决于CTU尺寸和/或帧间插值滤波器长度和/或图片尺寸。
a.例如,可基于a×(SIZE+offset)来计算填充长度padW和/或padH,其中a是整数,例如a=1,SIZE是可能依赖或可能不依赖于CTU宽度或高度的整数,offset是可能依赖或可能不依赖于视频单元中使用的插值滤波器长度的整数。
i.在一个示例中,padW和/或padH可以是padW=a×SIZE(或padH=a×SIZE)的形式。例如,padW和/或padH必须是偶数,或者padW和/或padH必须是a×B的形式,其中B是常数/变量。
b.例如,padW和/或padH的值可能取决于是否应用参考图片重采样(也称为RPR)和/或参考图片重采样因子有多大。
c.或者,填充长度padW和/或padH可以是预定义的数字,例如144等。
d.例如,填充长度padW和/或padH可能取决于编解码器中是否允许第二填充方法。
i.此外,填充长度padW和/或padH可以取决于第二填充方法的允许填充长度。
e.例如,不同的填充长度可以用于视频比特流中的不同图片。
i.或者,一个填充长度用于视频比特流中的所有图片。
ii.例如,不同的填充长度可以用于不同的条带类型(例如,P或B条带),或者不同的时域层。
iii.例如在SPS/PPS/图片标头/条带标头/CTU/CU中,可以从编码器向解码器信令通知填充长度。
f.例如,填充长度可以取决于颜色分量和/或颜色格式。颜色空间
g.例如,图片上方的填充长度(例如,用于区域0的padH)和图片下方的填充长度(例如,用于区域1的padH)可以不同。
h.例如,图片左侧的填充长度(例如,区域2的padW)和图片右侧的填充长度(例如,区域3的padW)可以不同。
2.在一个示例中,如果允许第二填充方法(除了诸如重复填充的第一填充方法之外),则第二填充方法的最大允许填充长度可以不同于第一填充方法的填充长度。
a.例如,第二填充方法的最大允许填充长度可以小于(或大于)第一填充方法的填充长度。
b.或者,第二填充方法的最大允许填充长度可以等于第一填充方法的填充长度。
c.或者,第二填充方法的最大允许填充长度可以等于任何值(例如,无限制)。
d.例如,第二填充方法的最大允许填充长度可以是预定义的数,例如64、144、160等。
e.例如,第二填充方法的最大允许填充长度可基于a*(SIZE+offset)来计算,其中a是整数,例如a=1,SIZE是整数,可取决于或不取决于CTU宽度或高度,offset是整数,可取决于或不取决于视频单元中使用的插值滤波器长度。
f.例如,第二填充方法的最大允许填充长度可取决于是否应用参考图片重采样(reference picture resampling,RPR)和/或参考图片重采样因子有多大。
g.例如,可使用视频单元中的语法元素(例如,SPS/PPS/图片标头/条带标头/CTU/CU)来信令通知使用第一填充方法还是第二填充方法。
3.在一个示例中,为了填充图片的填充区域(例如,图4中的区域0…区域7),可以用以下过程顺序来处理:
a.例如,首先以预定义的顺序填充区域{区域0,区域1,区域2,区域3},然后以另一个预定义的顺序填充区域{区域4,区域5,区域6,区域7}。
b.例如,首先以任意顺序填充区域{区域0,区域1,区域2,区域3},然后以任意顺序填充区域{区域4,区域5,区域6,区域7}。
c.例如,首先以预定义的顺序填充区域{区域4,区域5,区域6,区域7},然后以另一个预定义的顺序填充区域{区域0,区域1,区域2,区域3}。
d.例如,首先以任意顺序填充区域{区域4,区域5,区域6,区域7},然后以另一个预定义的顺序填充区域{区域0,区域1,区域2,区域3}。
e.在一个示例中,在第一填充区域在第二填充区域之前被填充的情况下,第一填充区域可以用于填充第二填充区域。
4.在一个示例中,当填充较大图片的角部分处的区域(例如,如图4所示,左上角处的区域4、右上角处的区域5、左下角处的区域6、右下角处的区域7)时,样点直接从来自当前图片或已经填充的区域的可用边界样点复制。
a.例如,为了填充左上角处的样点(例如较大图片的区域4),可以复制在右侧上的已经填充的区域(例如区域0)的最接近的样点。例如,位于区域0的最左列处的边界样点被复制到左侧并填充区域4。
i.或者,可以复制在底部上的已经填充的区域(例如区域2)的最接近的样点。例如,位于区域2最上面一行处的边界样点被复制到上侧并填充区域4。
ii.或者,可以复制当前图片的一个或多个重建样点。例如,位于当前图片的左上角(即最上面一行和最左列)处的样点被复制以填充区域4。
b.例如,为了填充右上角处的样点(例如较大图片的区域5),可以复制在左侧上的已经填充的区域(例如区域0)的最接近的样点。例如,位于区域0的最右列处的边界样点被复制到右侧并填充区域5。
i.或者,可以复制在底部上的已经填充的区域(例如区域3)的最接近的样点。例如,位于区域3最上面一行处的边界样点被复制到上侧并填充区域5。
ii.或者,可以复制当前图片的重建样点。例如,位于当前图片的右上角(即最顶部一行和最右列)处的样点被复制以填充区域5。
c.例如,为了填充左下角处的样点(例如较大图片的区域6),可以复制在右侧上的已经填充的区域(例如区域1)的最接近的样点。例如,位于区域1的最左列处的边界样点被复制到左侧并填充区域6。
i.或者,可以复制在上面的已经填充的区域(例如区域2)的最接近的样点。例如,位于区域2最底部一行处的边界样点被向下复制并填充区域6。
ii.或者,可以复制当前图片的重建样点。例如,位于当前图片的左下角(即,最底部一行和最左列)处的样点被复制以填充区域6。
d.例如,为了填充右下角处的样点(例如较大图片的区域7),可以复制在左侧上的已经填充的区域(例如区域1)的最接近的样点。例如,位于区域1的最右列处的边界样点被复制到右侧并填充区域7。
i.或者,可以复制在上面的已经填充的区域(例如区域3)的最接近的样点。例如,位于区域3的最底部一行处的边界样点被向下复制并填充区域7。
ii.或者,可以复制当前图片的重建样点。例如,位于当前图片的右下角(即最底部一行和最右列)处的样点被复制以填充区域7。
5.在一个示例中,对于要填充的某个扩展区域(例如图4中的区域0…区域7),可以以M×N粒度的方式填充,其中M是亮度样点中填充单元/块的宽度,并且N是亮度样点中填充单元/块的高度。
a.例如,当将扩展区域直接填充到图片的上方和/或下方时(例如图4中的区域0和/或区域1)。
i.例如,M和/或N可以取决于运动压缩单元的尺寸,例如4×4、8×8或16×16,这取决于编解码器的类型。
ii.例如,M不等于n。
iii.例如,M可以是预定义的数,例如M=4、8或16等。
iv.例如,M和/或N可以取决于预定义的填充长度,例如图4中的padW和/或padH。
b.例如,当将扩展区域直接填充到图片的左侧和/或右侧时(例如图4中的区域2和/或区域3)。
i.例如,N可取决于运动压缩单元的尺寸,例如4×4或8×8或16×16,其取决于编解码器的类型。
ii.例如,M不等于n。
iii.例如,N是预定义的数字,如N=4、8或16等。
iv.例如,M可以取决于预定义的填充长度,例如图4中的padW。
c.例如,如何推导M×N填充单元/块的填充样点可取决于位于图片内的一个或多个边界块/样点的编解码信息,其中边界块指示位于图片的第一行或最后一行或第一列或最后一列的块/样点。
i.例如,用于图片边界填充的边界块的尺寸可取决于填充单元/块的尺寸,例如M和/或n
ii.例如,用于图片边界填充的边界块的尺寸可以被预定义。
iii.例如,用于图片边界填充的边界块可以只是位于图片的第一行或最后一行或第一列或最后一列的一个或多个样点。
d.例如,为了填充较大图片的区域0等顶侧处的样点,样点直接从当前图片的底部处的可用边界样点复制。
e.例如,为了填充较大图片的区域1等底侧的样点,直接从当前图片的顶部处的可用边界样点中复制样点。
f.例如,为了填充较大图片的区域2等左侧的样点,直接从当前图片的右侧处的可用边界样点复制样点。
g.例如,为了填充较大图片的区域3等右侧的样点,直接从当前图片的左侧处的可用边界样点复制样点。
6.在一个示例中,如何推导M×N填充单元/块的填充样点可取决于位于图片内的一个或多个边界块/样点的运动信息,其中边界块指示位于图片的第一行或最后一行或第一列或最后一列的块/样点。
a.在一个示例中,当推导填充样点时,位于图片内的一个或多个边界块/样点的运动矢量被取整到整数像素精度,其中整数运动矢量可以是其最接近的整数运动矢量。
b.在一个示例中,当推导填充样点时,使用N抽头插值滤波来获得子像素位置处的参考样点。例如,N可以是2、4、6或8。
7.在一个示例中,图片的扩展区域可能不总是填充有通过复制相同图片内的边界样点而生成的样点。
a.例如,扩展区域中的一个或多个(但非全部)样点可直接从相同图片内的某些样点复制。
b.例如,可使用预测方法,从相同图片或参考图片中的预测/插值样点来预测扩展区域中的一个或多个样点。
i.例如,预测方法可指帧内预测,和/或帧间预测,和/或帧内块复制(又称为IBC)预测,和/或调色板编解码等。
c.例如,扩展区域中的一些样点可从已填充的扩展区域中的某些样点推导。
8.在一个示例中,如何生成图片的扩展样点可取决于相同图片内或参考图片中的边界块/样点的编解码信息(例如,预测模式,例如MODE_INTRA、MODE_INTER、MODE_IBC等)。
a.在一个示例中,图片的扩展区域的一个或多个样点可从由IBC编解码块的块矢量生成的预测样点中推导。
i.例如,可基于相同图片内的某些样点,从预测/插值样点中生成图片的扩展区域中的一个或多个样点,其中可通过IBC编解码边界块的块矢量标识预测符,其中用于推导预测样点的插值滤波器可为DCIIF滤波器、高斯滤波器、N抽头滤波器(N为整数)等。
ii.在另一个示例中,如何找到预测样点可以取决于一个或多个IBC编解码边界块的块矢量,其中块矢量可以是原始块矢量,或者是修改的块矢量,例如原始块矢量的仅仅一维或裁剪的块矢量,或者是来自多于一个紧邻/非紧邻块矢量的加权块矢量,或者是通过将增量矢量加到原始块矢量而计算的移位块矢量。
b.在一个示例中,图片的扩展区域中的一个或多个样点可填充有通过对相同图片内的某些样点应用角度预测而生成的预测样点。
i.例如,如何生成图片的扩展区域可取决于相同图片内的边界块的帧内角度模式。
a.例如,当边界块的帧内预测模式不是角度模式(例如,平面或DC),或边界块未使用角度预测进行编解码时,可使用预定义的角度模式(例如,水平或垂直模式)。
ii.例如,如何生成图片的扩展区域可能取决于相同图片内的边界块的估计边缘方向(例如,从边缘检测或梯度计算中推导)。
iii.在一个示例中,可以利用位于扩展样点右侧或下方的样点的角度预测来预测扩展样点。
iv.在一个示例中,PDPC可用于细化预测的扩展样点。
v.在一个示例中,可通过MIP预测扩展样点。
c.在一个示例中,图片的扩展区域中的一个或多个样点可填充有参考图片中的预测样点,该参考图片通过使用帧间预测的运动补偿生成。
i.例如,可从参考图片中的预测/插值样点生成图片的扩展区域中的一个或多个样点,其中可通过帧间编解码块的一个或多个运动矢量标识预测器,其中用于推导预测样点的插值滤波器可为DCIIF滤波器、高斯滤波器、N抽头滤波器(N为整数)等。
ii.例如,如何找到预测样点可取决于当前图片内的边界块的运动矢量,其中该运动矢量可为原始运动矢量,或修改的运动矢量,诸如原始运动矢量的仅一维或裁剪的运动矢量,或来自两个以上紧邻运动矢量的加权运动矢量,或通过将增量矢量加到原始运动矢量上而计算的移位运动矢量。
d.在一个示例中,仅当当前图片内的边界块通过预定义的预测模式编解码时,当前图片的扩展区域中的对应填充块/样点可通过运动补偿预测而非复制/重复填充生成。
i.例如,仅当当前图片内的边界块通过帧间预测模式编解码时,当前图片的扩展区域中的对应填充块/样点可通过运动补偿预测而非复制/重复填充生成。
ii.例如,如果当前图片内的边界块是IBC编解码的,则当前图片的扩展区域中的对应填充块/样点通过复制/重复填充来生成。
iii.例如,如果当前图片内的边界块是帧内编解码的,则当前图片的扩展区域中的对应填充块/样点通过复制/重复填充来生成。
iv.例如,如果使用调色板编解码模式对当前图片内的边界块进行编解码,则当前图片的扩展区域中的对应填充块/样点通过复制/重复填充来生成。
v.或者,仅当通过帧间预测模式或IBC预测模式对当前图片内的边界进行编解码时,当前图片的扩展区域中的对应填充块/样点才可以通过运动补偿预测而不是复制/重复填充来生成。
9.在一个示例中,给定当前图片的帧间编解码边界块,其紧邻填充单元/块可以用从多个预测块生成的填充样点来填充。
a.例如,可通过混合参考图片中的一个以上预测块来生成一些填充样点,其中预测块的数量可取决于边界块的运动数据和/或边界块的参考图片中的参考块的运动数据。
b.例如,是从一个预测还是从多个预测生成填充样点可取决于从预测块推导的预测样点是在参考图片内部还是外部(或参考图片的扩展区域)。
c.例如,如果根据双向预测来预测边界块,那么可仅选择两个预测块中的一者来生成填充样点。
i.例如,该选择可以基于成本测量的规则(例如特定预测块和当前块之间的总样点差)。
ii.例如,该选择可基于边界块和/或参考块的运动矢量的水平或垂直分量的幅度。
d.例如,如果边界块的参考块是帧间编解码的,那么参考块的运动数据也可用于生成当前图片的填充样点。
i.例如,参考块的运动矢量可被缩放到边界块的参考图片,且从缩放的运动矢量推导的预测块可用于生成当前图片的填充样点。
ii.例如,参考块的运动矢量可以不被缩放,且参考块的参考图片中的预测块可用于生成当前图片的填充样点。
e.例如,可利用一个以上预测块来生成填充样点,其中可对一个以上预测块进行加权以生成最终预测块,其中特定预测块/样点的加权因子可取决于参考图片与当前图片之间的POC距离等。
f.在一个示例中,填充样点S可以被生成为n个预测样点Pk的加权和,如
i.在一个示例中,Pk可以通过帧间预测来生成。
ii.在一个示例中,Pk可以通过帧内预测来生成。
iii.在一个示例中,Pk可以通过IBC预测来生成。
iv.在一个示例中,Pk可通过使用MVk的帧间预测来生成,Pj可通过使用MVj的帧间预测来生成,且MVk可不同于MVj
a)在一个示例中,MVj和MVk可以从不同的块获得。
b)在一个示例中,MVk或MVj可以从邻近填充块获得。
c)在一个示例中,MVk或MVj可以从图片内的对应块获得。
v.在一个示例中,
a)在一个示例中,加权值可取决于S的位置
10.在一个示例中,使用什么运动矢量来生成填充样点可以取决于运动模型。
a.例如,可从当前图片内多个紧邻编解码块的多个运动矢量生成合成运动矢量。例如,假设有N个由多个紧邻编解码块构成的运动矢量候选,则合成的运动矢量可计算为(a0×MV0+a1×MV1+a2×MV2+…an×MVn+offset)>>log2(N),其中a0,a1,a2,…,an为缩放因子,并且offset为常数值。在另一个示例中,合成的运动矢量可以被计算为(a0×MV0+a1×MV1+a2×MV2+…an×MVn),其中a0,a1,a2,…,an的和等于1。
b.例如,可根据当前图片内多个紧邻编解码块的多个运动矢量建立运动轨迹。并且可以关于运动轨迹的一致性来投影填充样点的运动矢量。
11.在一个示例中,如何生成填充样点可以取决于边界块是否是仿射编解码的。
a.例如,如果通过仿射模型预测一个或多个边界块,可根据仿射编解码边界块的运动矢量计算填充单元中填充块的投影运动矢量。例如,可以为填充单元/块中的4×4填充子块计算不同的投影运动矢量。
b.在一个示例中,填充子块的MV可利用仿射模型推导。
i.在一个示例中,图片内与填充块紧邻或不紧邻的邻近块的MV可用作仿射模型中的控制点运动矢量(control point motion vector,CPMV),以推导填充子块的MV。
12.在一个示例中,如何生成填充样点可取决于边界块是否是使用CU级别权重的双向预测(Bi-prediction with CU-level weight,BCW)来编解码的。
a.例如,用于从一个以上预测块生成填充块的加权因子的推导可取决于紧邻边界块的BCW索引和/或加权因子。
13.在一个示例中,如何生成填充样点可能取决于边界块是否是半像素插值编解码的。
a.例如,可使用不同的插值滤波器生成运动补偿填充样点,例如,如果使用半像素插值滤波器对紧邻边界块进行编解码,则使用N抽头滤波器(例如N=6)生成用于构建填充块的预测样点。否则,使用M抽头滤波器(例如M=8)。
b.例如,相同插值滤波器可用于生成填充区域的所有运动补偿填充样点。
14.在一个示例中,如何生成填充样点可取决于边界块是否是组合帧间预测(combined inter-intra prediction,CIIP)编解码的。
15.在一个示例中,如何生成填充样点可以取决于边界块是否是几何分割模式(geometric partitioning mode,GPM)编解码的。
16.在一个示例中,是否和/或如何应用上面公开的方法可以取决于颜色分量和/或颜色格式。
17.在一个示例中,可以例如在SPS/PPS/图片标头/条带标头/CTU/CU中向解码器信令通知是否和/或如何应用上面公开的方法。
18.在一个示例中,图片的扩展区域中的填充样点(例如,图片边界填充样点)可以被进一步滤波。也就是说,可以使用这里公开的一个或多个滤波器或滤波过程来滤波扩展区域中的填充样点。
a.例如,通过运动补偿和/或帧内预测生成的图片边界填充样点可被进一步滤波。
b.例如,通过复制/重复填充生成的图片边界填充样点可被进一步滤波。
c.例如,是否对图片边界填充样点进行滤波可取决于其是否通过运动补偿预测(即,帧间预测)、帧内预测或帧内块复制(IBC)预测生成。帧内预测,也称为帧内编解码,是一种在视频帧内使用的数据压缩技术,可实现较小的文件尺寸和较低的比特率,而质量损失很小或没有损失。由于图像内的邻近像素通常非常相似,所以帧图像被划分成多个块,并且每个像素之间通常很小的差可以使用较少的位来编解码,而不是独立地存储每个像素。
帧内预测利用空域冗余,即一帧内像素之间的相关性,通过从已编解码像素外推来计算预测器,以进行有效的增量编解码。帧内预测是视频编解码中两类预测编解码方法之一。它的对应部分是利用时域冗余的帧间预测。
帧间预测,也称为帧间编解码,将帧划分成块。此后,编码器不是直接对每个块的原始像素值进行编码,而是尝试对与编码器在先前编码的帧(称为参考帧)中正在编码的块相似的块进行编解码。这个过程是通过块匹配算法完成的。当编码器搜索成功时,该块可以通过称为运动矢量的矢量进行编码,该矢量指向参考帧中匹配块的位置。运动矢量确定的过程称为运动估计。
帧内块复制允许预测给定帧内编解码块为相同帧中另一帧内编解码块的复制(即,来自当前帧的重建部分)。
i.例如,仅通过运动补偿预测生成的填充样点可进一步滤波。
ii.或者,无论图片边界填充样点是如何生成的,图片边界填充样点都可以被滤波。
d.例如,可通过向其样点值添加偏移来滤波填充样点。在实施例中,偏移指的是在样点自适应偏移(sample adaptive offset,SAO)过程期间添加的偏移。SAO被设计成部分补偿由于频谱系数的量化而发生的损失。为此,在解码之后,偏移被添加到某些图像像素的值中。这些偏移在编码阶段被计算,并作为每个最大编解码单元(largest coding unit,LCU)的表在编码流中被传输。要改变的像素是根据它们的强度来选择的,这就是为什么这种变换是非线性的。HEVC中有两种可能的SAO类型:带偏移(Band Offset,BO)和边缘偏移(Edge Offset,EO)。
i.例如,可根据当前图片内的边界块与其帧内/帧间/IBC预测块之间的样点差计算偏移。
ii.例如,可根据一个或一个以上周围块与其帧内/帧间/IBC预测块之间的样点差来计算偏移。
iii.例如,假设样点差被表示为Diffi,其中i表示正被计算的样点的索引,则可以基于a*Func(Diff0,…,Diffi,…)+b来推导偏移值,其中a和b可以是常数,例如a=1和b=0,其中Func()表示对这些值进行的运算,例如平均运算、最小值、最大值等。
iv.例如,偏移值可取决于填充样点与图片边界(例如,视频单元500的边界,其在图5中以粗体显示)之间的距离。
v.例如,不同的偏移值可根据颜色分量应用于不同的填充样点。讨论了颜色空间和色度子采样。颜色空间,也称为颜色模型(或颜色系统),是一种抽象的数学模型,其简单地将颜色范围描述为数字元组,通常为3或4个值或颜色分量(例如,红绿蓝(RGB))。从根本上说,颜色空间是坐标系统和子空间的阐述。
对于视频压缩,最常用的颜色空间是YCbCr和RGB。Y′CbCr或Y Pb/Cb Pr/Cr(也写为YCBCR或Y′CBCR)是一个颜色空间系列,用作视频和数码摄影系统中颜色图像管道的一部分。Y’是亮度分量,并且CB和CR是蓝差和红差色度分量。Y’(带撇)不同于Y,Y是亮度,这意味着光强度是基于伽马校正的RGB原色非线性编码的。
色度子采样是利用人类视觉系统对色差的敏感度低于对亮度的敏感度,通过对色度信息实现比亮度信息更低的分辨率来对图像进行编码的实践。
对于4:4:4:色度子采样,三个Y’CbCr分量中的每一个具有相同的采样率,因此没有色度子采样。这种方案有时用于高端胶片扫描仪和电影后期制作。
对于4:2:2色度子采样,以亮度采样率的一半对两个色度分量进行采样:水平色度分辨率减半。这将未压缩视频信令通知的带宽减少了三分之一,但几乎没有视觉差异。
对于4:2:0色度子采样,与4:1:1相比,水平采样加倍,但由于在该方案中Cb和Cr信道仅在每条交替线上采样,垂直分辨率减半。因此,数据速率是相同的。Cb和Cr分别在水平和垂直两个方向上以两倍的系数进行子采样。4:2:0方案有三种变体,具有不同的水平和垂直选址。
在MPEG-2中,Cb和Cr水平共址。Cb和Cr被选址在垂直方向上的像素之间(选址在空隙中)。在联合图像专家组(Joint Photographic Experts Group,JPEG)/JPEG文件交换格式(File Interchange Format,JFIF)、H.261和MPEG-1中,Cb和Cr被选址在交替亮度样点中间的空隙中。在4:2:0DV中,Cb和Cr在水平方向上共址。在垂直方向上,它们共址在交替线上。
vi.例如,取决于填充样点是如何生成的,不同的偏移值可以被应用于不同的填充样点。
vii.例如,一个偏移值可以应用于一组(多于一个)填充样点。在一个示例中,偏移值可以在被添加到样点值之前被裁剪。在实施例中,样点的运动矢量被裁剪到基于扩展区域的最大允许填充尺寸(例如,填充长度)的范围。
e.例如,填充样点可由其邻近样点滤波。在实施例中,扩展区域中与另一填充样点紧邻的填充样点(例如,填充样点508)可以被称为邻近填充样点。在实施例中,扩展区域中填充样点任一侧的填充样点可以被称为邻近填充样点。在实施例中,填充样点可以被邻近填充样点部分或全部围绕。
i.在一个示例中,邻近样点可在图片内。
ii.在一个示例中,邻近样点可以是填充样点。
f.例如,可通过运动补偿时域滤波器对填充样点进行滤波,该滤波器利用一个以上先前/连续图片中的运动差。在实施例中,运动补偿时域滤波器包括运动补偿时域滤波(motion compensated temporal filtering,MCTF)。
g.例如,如何对填充样点进行滤波可取决于邻近填充块的运动数据(即,运动信息)。在实施例中,运动数据包括运动矢量、参考索引、帧内预测角度等。
h.例如,如何对填充样点进行滤波可取决于当前图片内的边界块的编解码信息(例如,具有编解码单元(CU)级别权重的双向帧间预测(BCW)或广义双向预测(GBi)索引、运动矢量精度、运动数据、预测模式等)。
i.例如,如何对填充样点进行滤波可取决于当前图片内的一个或多个紧邻块是否用重叠块运动补偿(OBMC)进行编解码。
j.例如,如何对填充样点进行滤波可取决于当前图片内的一个或多个紧邻块是否使用局部照明补偿(LIC)进行编解码。
k.是否和/或如何对填充样点进行滤波可取决于样点位置。在实施例中,位置是指扩展区域内填充样点的位置、填充样点相对于一个或多个其他填充样点的位置、或者填充样点相对于一个或多个边界样点的位置。
l.是否和/或如何对填充样点进行滤波可取决于颜色分量和/或颜色格式。
m.是否和/或如何对填充样点进行滤波可在SPS/PPS/图片标头/条带标头/CTU/CU中被信令通知。
19.在一个示例中,可以对填充块边缘的一侧或两侧处的一个或多个样点进行滤波。
a.例如,是否对填充块的边缘进行滤波可取决于是否在通过运动补偿或帧内预测生成的边缘的一侧有一个或多个样点。在实施例中,样点的边缘是样点的边界或边框的一部分。在实施例中,边缘或样点的边是相对于边缘或样点的位置(例如,样点左侧、样点右侧、样点上方或样点下方的位置)。
b.例如,是否对填充块的边缘进行滤波可取决于如何预测边缘周围的样点。
i.例如,如果边缘的两侧处的样点被复制填充/运动补偿填充/帧内预测填充,则不应用滤波操作。
ii.例如,如果边缘的一侧处的样点被复制填充,而另一侧处的样点不是被复制填充的(例如运动补偿填充或帧内预测填充),则可以应用滤波操作。
iii.例如,如果边缘的一侧处的样点被运动补偿填充,而另一侧的样点被帧内预测填充,则可以应用滤波操作。
c.例如,在填充块边缘的每一侧处使用多少样点来确定滤波开/关或滤波器强度可取决于填充块尺寸。例如,在可能存在显著块失真的地方处(例如帧内编解码宏块的边界或包含编解码系数的块之间的边界),滤波器“更强”。
i.或者,其可以是预定义的数字。
d.例如,如果以相同方式预测边缘的两侧处的样点(例如,两者均为运动补偿填充,或两者均为帧内预测填充),是否对边缘周围的样点进行滤波可取决于两个样点如何生成的运动矢量、参考索引、帧内预测角度。
i.例如,如果用于生成位于边缘的两侧处的样点A和样点B的运动不同(例如,不同的运动矢量和/或不同的参考索引),可处理边缘滤波。
ii.例如,如果用于生成样点A和样点B的运动矢量的运动矢量差大于阈值(例如1/2像素差),则可以处理边缘滤波。
e.例如,在边缘滤波过程中,边缘的两侧处有多少填充样点会发生变化,这可取决于滤波器强度。
i.例如,滤波器强度可从填充块尺寸推导。
ii.例如,正被改变的填充样点的数量可以是预定义的数量。
f.在一个示例中,去方块过程或简化的去方块过程可应用于两个块之间的边界,这两个块都是通过填充生成的。
g.在一个示例中,去方块过程或简化的去方块过程可以应用于两个块之间的边界,其中至少一个块是通过填充生成的。
20.可以在比特流中信令通知滤波方法和/或滤波系数的指示。
a.或者,此外,其可被有条件地信令通知,例如当应用边界填充时。
21.由填充生成的滤波样点可用于生成帧间预测。
a.或者,由填充生成的滤波样点可用于生成IBC预测。
22.可以通过基于神经网络的滤波方法(例如卷积神经网络(CNN))对填充样点进行滤波。
图7是编码器700的示意图。编码器700适合于实现VVC技术。编码器700包括三个环路滤波器,即去方块滤波器(DF)702、样点自适应偏移(SAO)704和自适应环路滤波器(ALF)706。与使用预定义滤波器的DF 702不同,SAO 704和ALF 706利用当前图片的原始样点,通过分别添加偏移和应用有限脉冲响应(FIR)滤波器,利用编解码的辅助信息信令通知偏移和滤波器系数,来减小原始样点和重建样点之间的均方误差。ALF 706位于每个图片的最后处理阶段,并且可以被视为试图捕捉和修复由先前阶段产生的伪像的工具。
编码器700还包括帧内预测组件708和运动估计/补偿(ME/MC)组件710,配置为接收输入视频。帧内预测组件708被配置成执行帧内预测,而ME/MC组件710被配置成利用从参考图片缓冲器712获得的参考图片来执行帧间预测。来自帧间预测或帧内预测的残差块被馈送到变换组件714和量化组件716中,以生成量化的残差变换系数,这些系数被馈送到熵编解码组件718中。熵编解码组件718对预测结果和量化的变换系数进行熵编解码,并将其向视频解码器(未示出)发送。从量化组件716输出的量化组件可以被馈送到逆量化组件720、逆变换组件722和重建(REC)组件724。REC组件724能够将图像输出到DF 702、SAO 704和ALF 706,以便在这些图片被存储在参考图片缓冲器712中之前进行滤波。
DF 702的输入是环路滤波器之前的重建样点。首先滤波图片中的垂直边缘。然后,利用由垂直边缘滤波过程修改的样点作为输入,对图片中的水平边缘进行滤波。每个CTU的CTB中的垂直和水平边缘在编解码单元的基础上被单独处理。编解码单元中的编解码块的垂直边缘从编解码块的左手侧上的边缘开始被滤波,按它们的几何顺序通过边缘向编解码块的右手侧前进。编解码单元中编解码块的水平边缘从编解码块的顶部上的边缘开始被滤波,按它们的几何顺序通过边缘向编解码块的底部前进。
图8是可实现本文中所公开的各种技术的示例视频处理系统800的框图。各种实现方式可以包括视频处理系统800中的一些或全部组件。视频处理系统800可以包括用于接收视频内容的输入802。视频内容可以以原始或未压缩的格式(例如8或10比特多分量像素值)接收,或者可以以压缩或编码的格式接收。输入802可以代表网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(PON)等)和无线接口(诸如Wi-Fi或蜂窝接口)。
视频处理系统800可以包括可以实现本文档中描述的各种编解码或编码方法的编解码组件804。编解码组件804可以减少从输入802到编解码组件804的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时称为视频压缩或视频转码技术。编解码组件804的输出可以被存储或经由所连接的通信来发送,如组件806所表示的。在输入802处接收的视频的存储或通信的比特流(或编解码)表示可以由组件808使用,以生成被发送到显示接口810的像素值或可显示视频。从比特流表示中生成用户可见的视频的过程有时称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但是应当理解,在编码器处使用编解码工具或操作,并且将由解码器进行反演编解码的结果的对应解码工具或操作。
外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或Displayport等。存储接口的示例包括SATA(串行高级技术附件)、外围组件互连(PCI)、集成驱动电子设备(IDE)接口等。本文档中描述的技术可以实施在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或其它能够进行数字数据处理和/或视频显示的装设备。
图9是视频处理装置900的框图。装置900可以用于实现本文中所述的方法中的一个或多个。装置900可以实施在智能电话、平板电脑、计算机、物联网(IoT)接收器等中。装置900可以包括一个或多个处理器902、一个或多个存储器904和视频处理硬件906。(多个)处理器902可以配置为实现本文档中所述的一个或多个方法。(多个)存储器904可以用于存储数据和代码,该代码用于实现本文所描述的方法和技术。视频处理硬件906可以用于在硬件电路中实现本文档中所描述的一些技术。在一些实施例中,硬件906可以部分或完全位于处理器902内,例如图形处理器。
图10是示出可利用本公开的技术的示例视频编解码系统1000的框图。如图10所示,视频编解码系统1000可以包括源设备1010和目的地设备1020。源设备1010生成编码的视频数据,其可以被称为视频编码设备。目的地设备1020可以解码由源设备1010生成的编码的视频数据,该目的地设备1020可以被称为视频解码设备。
源设备1010可以包括视频源1012、视频编码器1014和输入/输出(I/O)接口1016。
视频源1012可以包括诸如视频捕获设备的源、从视频内容提供者接收视频数据的接口、和/或生成视频数据的计算机图形系统,或这些源的组合。视频数据可以包括一个或多个图片。视频编码器1014对来自视频源1012的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关联的数据。编解码图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法元素。I/O接口1016包括调制器/解调器(调制解调器)和/或发送器。可以将编码的视频数据经由I/O接口1016通过网络1030直接发送到目的地设备1020。还可以将编码的视频数据存储到存储介质/服务器1040上,用于由目的地设备1020存取。
目的地设备1020可以包括I/O接口1026、视频解码器1024和显示设备1022。
I/O接口1026可以包括接收器和/或调制解调器。I/O接口1026可以从源设备1010或存储介质/服务器1040获取编码的视频数据。视频解码器1024可以对编码的视频数据进行解码。显示设备1022可以向用户显示解码的视频数据。显示设备1022可以与目的地设备1020集成,或可以在配置为与外置显示设备相接的目的地设备1020外部。
视频编码器1014和视频解码器1024可以根据视频压缩标准(诸如,高效视频编解码(HEVC)标准、多功能视频编解码(VVC)标准和其他当前和/或其他标准)进行操作。
图11是示出视频编码器1100的示例的框图,该视频编码器1000可以是图10中示出的视频编解码系统1000中的视频编码器1014。
视频编码器1100可以被配置为执行本公开的任何或全部技术。在图11的示例中,视频编码器1100包括多个功能组件。本公开所描述的技术可以在视频编码器1100的各种组件之间共享。在一些示例中,处理器可以配置为进行本公开中描述的任何或全部技术。
视频编码器1100的功能组件可以包括分割单元1101、预测单元1102(其可以包括模式选择单元1103、运动估计单元1104、运动补偿单元1105、帧内预测单元1106)、残差生成单元1107、变换单元1108、量化单元1109、逆量化单元1110、逆变换单元1111、重建单元1112、缓冲器1113和熵编码单元1114。
在其他示例中,视频编码器1100可以包括更多、更少或不同的功能组件。在一个示例中,预测单元1102可以包括帧内块复制(IBC)单元。IBC单元可以以IBC模式进行预测,其中至少一个参考图片是当前视频块所位于的图片。
此外,诸如运动估计单元1104和运动补偿单元1105的一些组件可以被高度集成,但是出于解释的目的在图11的示例中分开表示。
分割单元1101可以将图片分割成一个或多个视频块。图10的视频编码器1014和视频解码器1024可以支持各种视频块尺寸。
模式选择单元1103可以例如基于错误结果选择帧内或帧间的编解码模式中的一个,并且将得到的帧内或帧间编解码块提供到残差生成单元1107来生成残差块数据而且提供到重建单元1112来重建编解码块以用作参考图片。在一些示例中,模式选择单元1103可以选择帧内和帧间预测的组合(CIIP)模式,其中预测是基于帧间预测信号和帧内预测信号。模式选择单元1103还可以为帧间预测情况下的块选择运动矢量的分辨率(例如子像素或整像素精度)。
为了对当前视频块进行帧间预测,运动估计单元1104可以通过将来自缓冲器1113的一个或多个参考帧与当前视频块进行比较,生成当前视频块的运动信息。运动补偿单元1105可以基于来自缓冲器1113的图片(而不是与当前视频块相关联的图片)的运动信息和解码样点来为当前视频块确定预测的视频块。
运动估计单元1104和运动补偿单元1105可以为当前视频块进行不同操作,例如执行不同操作取决于当前视频块是在I条带、P条带还是B条带中。I条带(或I帧)是压缩率最低的,但不需要其他视频帧来解码。S条带(或P帧)可以使用来自先前帧的数据来解压缩,并且比I帧更容易压缩。B条带(或B帧)可以使用先前帧和前一帧两者作为数据参考,以获得最高的数据压缩量。
在一些示例中,运动估计单元1104可以进行当前视频块的单向预测,并且运动估计单元1104可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。运动估计单元1104然后可以生成指示列表0或列表1的参考图片中含有参考视频块的参考索引以及指示在当前视频块与参考视频块之间的空域位移的运动矢量。运动估计单元1104可以输出参考索引、预测方向指示符、和运动矢量作为当前视频块的运动信息。运动补偿单元1105可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
在其他示例中,运动估计单元1104可以进行当前视频块的双向预测,运动估计单元1104可以在列表0的参考图片中搜索当前视频块的参考视频块并且还可以在列表1的参考图片中搜索当前视频块的另一个参考视频块。运动估计单元1104然后可以生成指示列表0或列表1的参考图片中含有参考视频块的参考索引以及指示在参考视频块与当前视频块之间的空域位移的运动矢量。运动估计单元1104可以输出参考索引和当前视频块的运动矢量作为当前视频块的运动信息。运动补偿单元1105可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
在一些示例中,运动估计单元1104可以输出运动信息的全部集合,用于解码器的解码处理。
在一些示例中,运动估计单元1104可以不输出当前视频的运动信息的全部集合。而是,运动估计单元1104可以参考另一个视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元1104可以确定当前视频块的运动信息与邻近视频块的运动信息足够相似。
在一个示例中,运动估计单元1104可以在与当前视频块相关联的语法结构中指示:向视频解码器1024指示当前视频块具有与另一个视频块相同的运动信息的值。
在另一个示例中,运动估计单元1104可以在与当前视频块相关联的语法结构中标识另一个视频块和运动矢量差(MVD)。运动矢量差指示当前视频块的运动矢量与指示视频块的运动矢量之间的差。视频解码器1024可以使用指示视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
如上所讨论的,视频编码器1024可以预测性地信令通知运动矢量。可以由视频编码器1024实现的预测性的信令通知技术的两个示例包括高级运动矢量预测(AMVP)和merge模式信令通知。
帧内预测单元1106可以对当前视频块进行帧内预测。当帧内预测单元1106对当前视频块进行帧内预测时,帧内预测单元1106可以基于相同图片中其他视频块的解码样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
残差生成单元1107可以通过从当前视频块中减去(例如,由减号指示)当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中样点的不同样点分量的残差视频块。
在其他示例中,例如在跳过模式下,对于当前视频块可能不存在当前视频块的残差数据,并且残差生成单元1107可以不进行减去操作。
变换单元1108可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块来生成当前视频块的一个或多个变换系数视频块。
在变换单元1108生成与当前视频块相关联的变换系数视频块之后,量化单元1109可以基于与当前视频块相关联的一个或多个量化参数(QP)值来量化与当前视频块相关联的变换系数视频块。
逆量化单元1110和逆变换单元1111可以将逆量化和逆变换分别应用于变换系数视频块,来从变换系数视频块重建残差视频块。重建单元1112可以将重建的残差视频块添加到来自由预测单元1102生成的一个或多个预测视频块的对应样点,以产生与当前块相关联的重建视频块用于存储在缓冲器1113中。
在重建单元1112重建视频块之后,可以进行环路滤波操作以降低视频块中视频块化伪影。
熵编码单元1114可以从视频编码器1100的其他功能组件接收数据。当熵编码单元1114接收数据时,熵编码单元1114可以进行一个或多个熵编码操作以生成熵编码数据并且输出包括熵编码数据的比特流。
图12是示出视频解码器1200的示例的框图,该视频解码器1200可以是图10中示出的视频编解码系统1000中的视频解码器1024。
视频解码器1200可以被配置为进行本公开的任何或全部技术。在图12的示例中,视频解码器1200包括多个功能组件。本公开所描述的技术可以在视频解码器1200的各种组件之间共享。在一些示例中,处理器可以配置为进行本公开中描述的任何或全部技术。
在图12的示例中,视频解码器1200包括熵解码单元1201、运动补偿单元1202、帧内预测单元1203、逆量化单元1204、逆变换单元1205、重建单元1206和缓冲器1207。在一些示例中,视频解码器1200可以进行与关于视频编码器1014(图10)所描述的编码过程总体反演的解码过程。
熵解码单元1201可以检索编码比特流。编码比特流可以包括熵编解码视频数据(例如,视频数据的编解码块)。熵解码单元1201可以对熵编解码视频进行解码,并且根据熵解码视频数据,运动补偿单元1202可以确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。运动补偿单元1202例如可以通过进行AMVP和merge模式信令通知来确定此类信息。
运动补偿单元1202可以产生运动补偿块,可能地基于插值滤波器进行插值。要以子像素精度使用的插值滤波器的标识符可以包括在语法元素中。
运动补偿单元1202可以使用由视频编码器1014在编码视频块的期间所使用的插值滤波器,来计算出参考块的子整数个像素的插值的值。运动补偿单元1202可以根据接收的语法信息确定由视频编码器1014所使用的插值滤波器并且使用插值滤波器来产生预测块。
运动补偿单元1202可以使用一些语法信息来确定:用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸,描述编码视频序列的图片的每个宏块如何被分割的分割信息,指示如何编码每个分割的模式,每个帧间编码块的一个或多个参考帧(和参考帧列表),以及对编码视频序列进行解码的其他信息。
帧内预测单元1203可以使用例如在比特流中接收的帧内预测模式来从空域紧邻块形成预测块。逆量化单元1204逆量化(即去量化)在比特流中提供的且由熵解码单元1201解码的量化的视频块系数。逆变换单元1205应用逆变换。
重建单元1206可以用由运动补偿单元1202或帧内预测单元1203生成的对应预测块求和残差块,以形成解码块。如所期望的,去方块滤波器还可以应用于滤波解码块以便移除块效应伪影。解码视频块然后存储在缓冲器1207中,该缓冲器1307提供用于随后的运动补偿/帧内预测的参考块,并且还产生用于在显示设备上呈现的解码视频。
接下来提供了一些实施例优选的解决方案的列表。
以下解决方案显示了本公开中讨论的技术的示例实施例。
以下解决方案示出了前一章节(例如,上面的项目1)中讨论的技术的示例实施例。
1.一种视频处理的方法,包括:
为视频的视频单元和视频的比特流之间的转换,在视频单元外部生成填充样点;和
使用填充样点执行转换;
其中,填充样点对应于确定中间填充样点的第一步骤和根据规则对中间填充样点和/或视频单元内的样点进行滤波的第二步骤的输出。
2.根据条款1所述的方法,其中,规则规定使用运动补偿或帧内预测步骤生成的中间填充样点被滤波以生成填充样点。
3.根据条款1-2中任一项所述的方法,其中规则规定对使用复制或重复生成的中间填充样点进行滤波以生成填充样点。
4.根据条款1所述的方法,其中,规则规定是否对中间填充样点进行滤波取决于中间填充样点是否使用运动补偿预测、帧内预测或帧内块复制预测来生成。
5.根据条款1-4中任一项所述的方法,其中,规则规定对中间填充样点进行滤波包括通过添加中间填充样点的偏移来对中间填充样点进行滤波。
6.根据条款1所述的方法,其中,规则规定使用邻近样点对中间填充样点进行滤波。
7.根据条款1所述的方法,其中,规则规定使用运动补偿时域滤波器对填充样点进行滤波。
8.根据条款1所述的方法,其中,规则规定响应于邻近填充块的运动数据对中间填充样点进行滤波。
9.根据条款1所述的方法,其中规则规定响应于视频单元内的边界块的编解码信息对中间填充样点进行滤波。
10.根据条款9所述的方法,其中,编解码信息包括边界块的编解码模式,其中,编解码模式是广义双向预测模式或具有编解码单位权重的双向预测模式或重叠块运动补偿或局部照明补偿编解码中的一种。
11.根据条款1-10中任一项所述的方法,其中比特流包括是否或如何对填充样点应用滤波的指示。
12.根据条款11所述的方法,其中,指示被包括在参数集中,或者被包括在编解码单元级别的图片标头或条带标头或编解码树单元级别处。
13.根据条款1所述的方法,其中,规则规定,基于样点是通过运动补偿还是帧内预测来确定的,来确定是使用填充块边缘的一侧上的样点还是填充块边缘的两侧上的样点。
14.根据条款1所述的方法,其中规则规定用于滤波的中间填充样点和/或视频单元内的样点的数量。
15.根据条款14所述的方法,其中,基于填充块边缘的两侧上的样点是否使用相同的方式来确定数量。
16.根据条款14所述的方法,其中数量取决于用于滤波的滤波器的滤波强度。
17.根据条款1-16中任一项所述的方法,其中,转换包括,由于将填充样点用于转换,执行简化的去方块。
18.根据条款1-17中任一项所述的方法,其中,比特流包括用于滤波的系数的信息。
19.根据条款18所述的方法,其中,响应于填充样点是否由滤波过程生成,包括该信息。
20.根据条款1-19中任一项所述的方法,其中填充样点还用于在转换期间生成帧内块复制预测。
21.根据条款1-20中任一项所述的方法,其中滤波是基于基于神经网络的滤波。
22.根据条款1-21中任一项所述的方法,其中转换包括从比特流生成视频。
23.根据条款1-22中任一项所述的方法,其中转换包括从视频生成比特流。
24.一种视频解码装置,包括被配置为实现条款1至22中的一项或多项所述的方法的处理器。
25.一种视频编码装置,包括被配置为实现条款1至23中的一项或多项所述的方法的处理器。
26.一种其上存储有计算机代码的计算机程序产品,该代码在由处理器执行时使处理器实现条款1至23中任一项所述的方法。
27.一种计算机可读介质,其上具有符合根据条款1至23中任一项生成的比特流格式的比特流。
28.一种方法,包括根据条款1至23中任一项所述的方法生成比特流,并将该比特流写入计算机可读介质。
29.一种方法、一种装置、一种根据本文档中描述的所公开的方法或系统生成的比特流。
在本文所述的解决方案中,编码器可通过根据格式规则产生编解码表示来符合格式规则。在本文描述的解决方案中,解码器可以使用格式规则来解析编解码表示中的语法元素,根据格式规则知道语法元素的存在和不存在,以产生解码的视频。
在本文档中,术语“视频处理”可指视频编码、视频解码、视频压缩或视频解压缩。例如,在从视频的像素表示到对应的比特流表示的转换期间,可以应用视频压缩算法,反之亦然。如语法所定义,当前视频块的比特流表示可(例如)对应于共位或散布在比特流内不同位置的比特。例如,可以根据变换和编解码的误差残差值并且还使用头中的比特和比特流中的其他字段,对宏块进行编码。此外,在转换期间,解码器可以基于该确定,在知道一些字段可能存在或不存在的情况下解析比特流,如以上解决方案中所述。类似地,编码器可确定包括或不包括某些语法字段,并通过从编解码表示中包括或排除语法字段来相应地生成编解码表示。
本文档中所述的公开和其他方案、示例、实施例、模块和功能操作可以被实现在数字电子电路中或者在计算机软件、固件或硬件中,含有本文档中所公开的结构以及其结构的等同物,或者它们中的一个或多个的组合。所公开的和其他实施例可以被实现为计算机可读介质上所编码的一个或多个计算机程序产品,即一个或多个计算机程序指令模块,用于由数据处理装置执行或者控制数据处理装置的操作。该计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读可传播信号的复合物,或其一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如,机器生成的电、光或电磁信号,其被生成来编码信息以传输到合适的接收器装置。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式来部署计算机程序,包括独立程序或适合在计算环境中使用的模块、组件、子例程或其它单元。计算机程序不必须对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的部分中(例如,在标记语言文档中存储的一个或多个脚本)、在专用于所讨论的程序的单个文件中、或在多个协同文件中(例如存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以部署为在一个计算机上或者在多个计算机上执行,该多个计算机位于一个站点处或者分布跨多个站点并由通信网络互连。
可以由执行一个或多个计算机程序的一个或多个可编程处理器来进行在本文档中所描述的过程和逻辑流,以通过在输入数据上操作并且生成输出来进行功能。也可以由专用逻辑电路(例如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))进行过程和逻辑流,并且装置可以实现为专用逻辑电路(例如FPGA或ASIC)。
适合于计算机程序的执行的处理器包括例如通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或者该两者接收指令和数据。计算机的基本元件是用于进行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个海量存储设备(例如磁、磁光盘或光盘),或者可操作地耦合以从海量存储设备(例如磁、磁光盘或光盘)接收数据或者将数据传输到海量存储设备(例如磁、磁光盘或光盘),或者以上两者。但是,计算机不必具有此类设备。适用于存储计算机程序指令和数据的计算机可读介质含有所有形式的非易失性存储器、介质和存储器设备,含有例如半导体存储器设备(例如EPROM、EEPROM和闪速存储器设备);磁盘(例如内部硬盘或可移动磁盘);磁光盘;和CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充,或者合并在专用逻辑电路中。
虽然本专利文档含有许多细节,但这些细节不应被解释为对任何主题或可要求保护的范围的限制,而是作为规定于特定技术的特定实施例的特征的描述。在本专利文档中,在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中所描述的各种特征还可以分别在多个实施例中来实现或者以各种合适的子组合来实现。此外,尽管特征可以如上文描述为以某些组合起作用并且甚至最初同样地要求,但是在某些情况下来自所要求保护的组合的一个或多个特征可以从组合中去除,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,尽管在附图中以特定顺序描绘了操作,但这不应当理解为要求按所示的特定次序或顺序次序进行此类操作或者进行所有示出的操作,以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分开不应被理解为在所有实施例中都要求这种分开。
仅描述了几个实现方式和示例,并且可以基于本专利文档中描述和示出的内容来作出其它实现方式、增强和变型。

Claims (30)

1.一种由视频编解码装置实现的编解码视频数据的方法,包括:
对设置在视频的视频单元周围的扩展区域内的填充样点进行滤波;和
根据滤波后的所述扩展区域中的所述填充样点,在所述视频的视频单元和比特流之间进行转换。
2.根据权利要求1所述的方法,其中,通过帧间预测或帧内预测来生成所述填充样点。
3.根据权利要求1-2中任一项所述的方法,其中,通过复制填充或重复填充来生成所述填充样点。
4.根据权利要求1-3中任一项所述的方法,其中,当通过帧间预测、帧内预测或帧内块复制(IBC)生成所述填充样点时,对所述填充样点进行滤波。
5.根据权利要求1-4中任一项所述的方法,其中,通过将偏移添加到来自所述填充样点的一个填充样点的样点值,对所述一个填充样点进行滤波,并且其中,所述偏移是基于所述视频单元内的边界样点与对应于所述边界样点的一个或多个预测样点之间的一个或多个样点差。
6.根据权利要求1-4中任一项所述的方法,其中,通过将偏移添加到来自所述填充样点的一个填充样点的样点值,对所述一个填充样点进行滤波,并且其中,所述偏移是基于所述一个填充样点周围的邻近填充样点与对应于所述邻近填充样点的一个或多个预测样点之间的样点差。
7.根据权利要求5-6中任一项所述的方法,其中,添加到所述一个填充样点的所述偏移的值是基于a*Func(Diff0…,Diffi,…)+b推导的,其中a和b是常数,Diffi表示所述样点差,并且Func表示平均运算、最小运算或最大运算。
8.根据权利要求5-6中任一项所述的方法,其中,添加到所述一个填充样点的所述偏移的值基于所述一个填充样点和所述视频单元的边界之间的距离。
9.根据权利要求1-8中任一项所述的方法,其中,不同的偏移值被应用于两个或多个所述填充样点,并且其中,所述不同的偏移值是基于两个或多个所述填充样点的颜色分量。
10.根据权利要求1-8中任一项所述的方法,其中,不同的偏移值被应用于两个或多个所述填充样点,并且其中,所述不同的偏移值是基于两个或多个所述填充样点是如何生成的。
11.根据权利要求1-10中任一项所述的方法,其中,将相同的偏移值添加到所述填充样点中的多于一个的填充样点,以对所述多于一个的填充样点进行滤波,并且其中,在将相同的偏移值添加到所述多于一个的填充样点之前,对所述相同的偏移值进行裁剪。
12.根据权利要求1-4中任一项所述的方法,其中,基于来自所述填充样点的一个填充样点的邻近样点,对所述一个填充样点进行滤波,并且其中,所述邻近样点设置在所述视频单元内。
13.根据权利要求1-4中任一项所述的方法,其中,基于来自所述填充样点的一个填充样点的邻近样点,对所述一个填充样点进行滤波,并且其中,所述邻近样点是来自所述填充样点的另一填充样点。
14.根据权利要求1-4中任一项所述的方法,其中,所述填充样点由运动补偿时域滤波器进行滤波,所述运动补偿时域滤波器利用多于一个参考图片中的运动差。
15.根据权利要求1-4中任一项所述的方法,其中,基于与来自所述填充样点的一个填充样点邻近的另一填充样点的运动数据,对所述一个填充样点进行滤波。
16.根据权利要求1-15中任一项所述的方法,其中,基于所述视频单元内的边界样点的编解码信息索引、运动矢量精度、运动数据或所述视频单元内的边界样点的预测模式对所述填充样点进行滤波,并且其中,所述编解码信息包含具有编解码单元(CU)级别权重的双向帧间预测(BCW)或广义双向预测(GBi)。
17.根据权利要求1-5中任一项所述的方法,其中,基于所述视频单元内的一个或多个紧邻样点是否用重叠块运动补偿(OBMC)来编解码,来对所述填充样点进行滤波。
18.根据权利要求1-5中任一项所述的方法,其中基于所述视频单元内的一个或多个紧邻样点是否用局部照明补偿(LIC)来编解码,来对所述填充样点进行滤波。
19.根据权利要求1-4中任一项所述的方法,其中,基于来自所述填充样点的一个填充样点在所述扩展区域内的位置,来对所述一个填充样点进行滤波。
20.根据权利要求1-4中任一项所述的方法,其中,基于来自所述填充样点的一个填充样点的颜色分量或颜色格式,来对所述一个填充样点进行滤波。
21.根据权利要求1-4中任一项所述的方法,其中,当一些所述填充样点被设置在与来自所述填充样点的一个填充样点的边缘相同的一侧时,对所述边缘进行滤波。
22.根据权利要求1-4中任一项所述的方法,其中,当通过复制生成对应于来自所述填充样点的一个填充样点的边缘的所述一个填充样点的一侧上的一些所述填充样点时,并且通过帧间预测或帧内预测生成所述一个填充样点的另一侧上的一些所述填充样点时,对所述边缘进行滤波。
23.根据权利要求1-4中任一项所述的方法,其中,当通过帧间预测或帧内预测生成对应于来自所述填充样点的一个填充样点的边缘的所述一个填充样点的一侧上的一些所述填充样点,并且通过帧内预测生成所述一个填充样点的另一侧上的一些所述填充样点时,对所述边缘进行滤波。
24.根据权利要求1-23中任一项所述的方法,其中,用于对一个或多个所述填充样点进行滤波的滤波器的强度取决于来自所述填充样点的一个填充样点的每一侧上的所述填充样点的数量。
25.根据权利要求1-4中任一项所述的方法,其中,当来自所述填充样点的一个填充样点的两侧上的所述填充样点以相同方式生成时,根据运动矢量、参考索引或帧内预测角度对所述一个填充样点的边缘进行滤波。
26.根据权利要求1-25中任一项所述的方法,其中,用于对所述填充样点进行滤波的滤波器的强度是基于填充样点尺寸。
27.根据权利要求1-26中任一项所述的方法,其中,对所述填充样点中的两个填充样点之间的边界或者所述填充样点中的一个填充样点与边界样点之间的边界应用去方块过程。
28.根据权利要求1-27中任一项所述的方法,其中,基于来自神经网络或卷积神经网络(CNN)的输入来对所述填充样点进行滤波。
29.一种编解码视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中,所述指令在由所述处理器执行时使得所述处理器执行权利要求1-28中任一项所述的方法。
30.一种非暂时性计算机可读介质,包括由编解码装置使用的计算机程序,其中,所述计算机程序包括存储在所述非暂时性计算机可读介质上的计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时使得所述编解码装置执行权利要求1-28中任一项所述的方法。
CN202280016237.1A 2021-02-20 2022-02-17 图像/视频编解码中的边界上的填充样点滤波 Pending CN117063470A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2021077034 2021-02-20
CNPCT/CN2021/077034 2021-02-20
PCT/CN2022/076614 WO2022174783A1 (en) 2021-02-20 2022-02-17 On boundary padding sample filtering in image/video coding

Publications (1)

Publication Number Publication Date
CN117063470A true CN117063470A (zh) 2023-11-14

Family

ID=82931187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280016237.1A Pending CN117063470A (zh) 2021-02-20 2022-02-17 图像/视频编解码中的边界上的填充样点滤波

Country Status (3)

Country Link
US (1) US20230403407A1 (zh)
CN (1) CN117063470A (zh)
WO (1) WO2022174783A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024080841A1 (ko) * 2022-10-13 2024-04-18 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI20165256L (fi) * 2016-03-24 2017-09-25 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodaukseen ja -dekoodaukseen
US20170353737A1 (en) * 2016-06-07 2017-12-07 Mediatek Inc. Method and Apparatus of Boundary Padding for VR Video Processing
US10728573B2 (en) * 2017-09-08 2020-07-28 Qualcomm Incorporated Motion compensated boundary pixel padding

Also Published As

Publication number Publication date
WO2022174783A1 (en) 2022-08-25
US20230403407A1 (en) 2023-12-14

Similar Documents

Publication Publication Date Title
US11070820B2 (en) Condition dependent inter prediction with geometric partitioning
CN113853783B (zh) 对帧内块复制编解码的块的块矢量的编解码
CN113273203B (zh) 两步交叉分量预测模式
KR102662616B1 (ko) 어파인 모드를 위한 적응적 모션 벡터 차이 해상도
CN112970258A (zh) 用于子块预测块的多假设
CN114450959A (zh) 视频编解码中的几何分割模式
US20230396792A1 (en) On boundary padding motion vector clipping in image/video coding
CN114424536A (zh) 基于变换单元的组合帧间帧内预测
CN113615173A (zh) 对仿射译码块进行光流预测修正的方法及装置
CN115396666A (zh) 基于神经网络的滤波的参数更新
CN115004697A (zh) 来自多个跨分量的预测
KR20220058551A (ko) 비디오 코딩의 양 예측 가중 샘플
US20230403407A1 (en) On Boundary Padding Sample Filtering In Image/Video Coding
US20230396777A1 (en) On boundary padding samples generation in image/video coding
WO2022206987A1 (en) Adaptive dependent quantization
CN117560503A (zh) 重叠块运动补偿和其他工具之间的协调
WO2022174801A1 (en) On boundary padding size in image/video coding
CN113366839B (zh) 视频编解码中的细化量化步骤
WO2023274302A1 (en) Recursive prediction unit in video coding
US20240137510A1 (en) Recursive prediction unit in video coding
WO2023274360A1 (en) Utilization of recursive prediction unit in video coding
CN117693937A (zh) 在超分辨率过程期间利用编解码信息
CN117882370A (zh) 视频编解码中的自适应环路滤波器的高级融合模式
CN117882371A (zh) 视频编解码中的自适应环路滤波器的融合模式
CN117730533A (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