CN109417639B - 利用自适应裁剪的视频编码的方法和设备 - Google Patents
利用自适应裁剪的视频编码的方法和设备 Download PDFInfo
- Publication number
- CN109417639B CN109417639B CN201780041569.4A CN201780041569A CN109417639B CN 109417639 B CN109417639 B CN 109417639B CN 201780041569 A CN201780041569 A CN 201780041569A CN 109417639 B CN109417639 B CN 109417639B
- Authority
- CN
- China
- Prior art keywords
- block
- clipping
- boundary
- residual
- reconstructed
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
可以在编码器或解码器的各种操作期间应用裁剪。用于裁剪的下边界和上边界可以相对于预测器被差分编码。可以使用固定预测器,例如,分别为0和2bitdepth的下边界和上边界。也可以使用自适应预测器。自适应预测器可以从先前编码或解码的画面中的裁剪边界推导,或者在比特流中显式地用信号通知。是否编码裁剪边界可以基于具有接近裁剪边界的值的像素的数量来确定。另外,利用裁剪操作,可以平滑预测残差,同时块的失真可能不一定增加。
Description
技术领域
本原理一般涉及视频编码和解码的方法和装置,更具体地,涉及利用自适应裁剪的视频编码和解码的方法和装置。
背景技术
为了实现高压缩效率,图像和视频编码方案通常采用预测和变换来利用视频内容中的空间和时间冗余。一般地,帧内或帧间预测用于利用帧内或帧间相关性,然后原始图像和预测图像之间的差(通常表示为预测误差或预测残差)被变换,量化和熵编码。为了重构视频,通过与预测,变换,量化和熵编码对应的逆处理来解码压缩数据。
在视频压缩系统中的各种操作期间,视频数据可能超过用于表示视频数据的数据范围。例如,为了避免可能的数据反转,如果仅保留低8比特,则可能将超出8比特表示范围的高值不利地视为低值,视频数据通常被裁剪到适当范围。
发明内容
根据一般方面,提出了一种将画面编码到比特流的方法,包括:访问用于画面的块的裁剪的上边界和用于上边界的第一预测器;量化上边界和第一预测器之间的第一差;将量化的第一差编码到比特流;对量化第一差进行去量化,以形成解码的第一差;将块的视频数据的值调整为小于重构的上边界,重构的上边界是基于解码的第一差和第一预测器形成的;以及将画面的块编码到比特流。
编码方法还可以包括:访问用于画面的块的裁剪的下边界和用于下边界的第二预测器;量化上边界和第二预测器之间的第二差;将量化的第二差编码到比特流;对量化的第二差进行去量化,以形成解码的第二差;以及将块的视频数据的值调整为大于重构的下边界,重构的下边界是基于解码的第二差和第二预测器形成的。
为了减少失真,可以设计量化和去量化,使得重构的下边界小于用于裁剪的下边界,并且重构的上边界大于用于裁剪的上边界。
第一差可以由(bitdepth-1)比特表示,其中bitdepth是用于表示块的视频数据的比特深度。
为了决定是否应用自适应裁剪,该方法还可以包括:确定具有接近块中的上边界和下边界中的至少一个的值的像素的数量;并且基于所确定的像素的数量确定是否使用第一预测器用于编码上边界。
根据另一个一般方面,提出了一种用于从比特流解码画面的方法,包括:访问用于裁剪画面的块的上边界的第一预测器;从比特流解码量化的第一差以形成解码的第一差;将块的视频数据的值调整为小于重构的上边界,重构的上边界是基于解码的第一差和第一预测器形成的;以及从比特流解码画面的块。
解码方法还可以包括:访问用于裁剪画面的块的下边界的第二预测器;从比特流解码量化的第二差以形成解码的第二差;调整块的视频数据的值大于重构的下边界,重构的下边界是基于解码的第二差和第二预测值形成的。
在编码或解码方法中,第一预测器可以是2bitdepth,或者第一预测器是基于用于先前编码或解码的画面中裁剪的上边界的预测器所确定的。第一预测器可以适配于画面的块的内容。
本实施例还提供用于执行这些步骤的装置。
本实施例还提供计算机可读存储介质,具有存储于其上的用于根据上述方法将画面编码到比特流或从比特流解码画面的指令。
本实施例还提供计算机可读存储介质,具有存储于其上的根据上述方法生成的比特流。
根据另一个一般方面,视频信号被格式化为包括:通过量化用于画面的块的裁剪的上边界和用于上边界的第一预测器之间的第一差而形成的量化的第一差的编码部分,其中,量化的第一差被去量化以形成解码的第一差,并且块的视频数据的值被调整为小于重构的上边界,重构的上边界是基于解码的第一差和第一预测器形成的。
根据另一个一般方面,提供一种用于编码画面的方法,包括:访问要编码的原始块,预测块和对应于原始块的残差块;确定原始块或预测块中的第一元素接近用于裁剪的上边界;用大于残差块中的第一元素的第一值替换残差块中的第一元素,残差块中的第一元素对应于原始块或预测块中的第一元素;编码和解码具有被替换元素的残差块以形成解码的残差块;基于预测块和解码的残差块形成重构块;以及如果重构块中的第一元素超过用于裁剪的上边界,则用用于裁剪的上边界替换与残差块中的第一元素对应的重构块中的第一元素。
该方法还可以包括:确定原始块或预测块中的第二元素接近用于裁剪的下边界;用小于残差块中的第二元素的第二值替换残差块中的第二元素,残差块中的第二元素对应于原始块或预测块中的第二元素;以及如果重构块中的第二元素小于用于裁剪的下边界,则用用于裁剪的下边界替换与残差块中的第二元素对应的重构块中的第二元素。
第一值可以是块的低通滤波值。
可以使用阈值来确定原始块或预测块中的第一元素接近用于裁剪的上边界。在一个示例中,阈值是0。在另一示例中,阈值随着与残差块对应的量化参数而增加。
本实施例还提供用于执行这些步骤的装置。
本实施例还提供计算机可读存储介质,具有存储于其上的用于根据上述方法编码图像的指令。
本实施例还提供计算机可读存储介质,具有存储于其上的根据上述方法生成的比特流。
附图说明
图1图示示例性HEVC(高效视频编码)编码器的框图。
图2图示示例性HEVC视频解码器的框图。
图3描绘根据本原理的实施例的用于确定是否在编码器处启用自适应裁剪的示例性方法。
图4A描绘根据本原理的实施例的用于编码裁剪边界的示例性方法;图4B描绘根据本原理的实施例的用于解码裁剪边界的示例性方法;图4C描绘根据本原理的实施例的用于在编码器侧初始化参考裁剪边界的示例性方法;以及图4D描绘根据本原理的实施例的用于在解码器侧初始化参考裁剪边界的示例性方法。
图5使用示例图示Ad和Bd的量化和去量化。
图6图示根据本原理的实施例的用于利用固定预测器或自适应预测器编码裁剪边界的示例性方法。
图7图示根据本原理的实施例的用于利用固定预测器或自适应预测器来解码裁剪边界的示例性方法。
图8A图示用于编码当前块的示例性方法;和图8B图示根据本原理的实施例的用于利用自适应残差平滑编码当前块的示例性方法。
图9图示根据本原理的实施例的用于在编码器中执行残差平滑的示例性方法。
图10图示可以实现本原理的示例性实施例的各个方面的示例性系统的框图。
具体实施方式
图1图示示例性HEVC编码器100。为了用一个或多个画面编码视频序列,将画面划分为一个或多个条带,其中每个条带可以包括一个或多个条带片段。条带片段被组织成编码单元,预测单元和变换单元。
HEVC规范区分“块”和“单元”,其中“块”寻址样本阵列中的特定区域(例如,亮度,Y),并且“单元”包括所有编码颜色分量(Y,Cb,Cr或单色),语法元素和与块相关联的预测数据(例如,运动矢量)的并置块。
对于编码,将画面划分为具有可配置尺寸的正方形形状的编码树块(CTB),并且将连续的一组编码树块分组为条带。对应于CTB的编码树单元(CTU)包含编码颜色分量的CTB。CTB是划分成编码块(CB)的四叉树的根,并且编码块被划分为一个或多个预测块(PB)并形成划分成变换块(TB)的四叉树的根。对应于编码块,预测块和变换块,编码单元(CU)包括预测单元(PU)和树形结构的变换单元(TU)组,PU包括所有颜色分量的预测信息,以及TU包括每个颜色分量的残差编码语法结构。亮度分量的CB,PB和TB的尺寸应用于对应的CU,PU和TU。在本申请中,术语“块”可以用于指代CTU,CU,PU,TU,CB,PB和TB中的任何一个。另外,“块”也可以用于指代H.264/AVC或其他视频编码标准中规定的宏块,分区和子块,更一般地,指代各种尺寸的样本的阵列。
在示例性编码器100中,画面由编码器元件编码,如下所述。要编码的画面以CU为单位处理。使用帧内或帧间模式编码每个CU。当CU以帧内模式编码时,其执行帧内预测(160)。在帧间模式中,执行运动估计(175)和补偿(170)。编码器决定(105)用于编码CU的帧内模式或帧间模式中的哪一个,并且通过预测模式标志指示帧内/帧间决定。通过从原始图像块中减去(110)预测块来计算预测残差。
从同一条带内的重构的相邻样本预测帧内模式中的CU。在HEVC中可用一组35个帧内预测模式,包括DC,平面和33个角度预测模式。从与当前块相邻的行和列重构帧内预测参考。使用来自先前重构块的可用样本,将参考在水平和垂直方向上延伸块尺寸的两倍。当角度预测模式用于帧内预测时,可以沿着由角度预测模式指示的方向复制参考像素。
可以使用两个不同选项编码当前块的可应用亮度帧内预测模式。如果可应用模式被包括在三个最可能模式(MPM)的构造列表中,则模式由MPM列表中的索引用信号通知。否则,通过模式索引的固定长度二值化来用信号通知模式。三个最可能模式从顶部和左侧相邻块的帧内预测模式推导出。
对于帧间CU,对应编码块还被划分为一个或多个预测块。在PB级上执行帧间预测,并且对应PU包含关于如何执行帧间预测的信息。
可以以两种方法,即“高级运动矢量预测(AMVP)”和“合并模式”来用信号通知运动信息(即,运动矢量和参考索引)。在AMVP中,视频编码器或解码器基于从已经编码的块确定的运动矢量来组装候选列表。然后,视频编码器用信号通知索引到候选列表以标识运动矢量预测器(MVP)并且用信号通知运动矢量差(MVD)。在解码器侧,运动矢量(MV)被重构为MVP+MVD。
在合并模式中,视频编码器或解码器基于已经编码的块来组装候选列表,并且视频编码器用信号通知索引用于候选列表中的候选之一。在解码器侧,基于用信号通知的候选重构运动矢量和参考画面索引。
在HEVC中,用于运动补偿的运动信息的精度是亮度分量的四分之一样本和色度分量的八分之一样本。7抽头或8抽头插值滤波器用于分数-样本像素位置的插值,即,可以针对亮度寻址水平和垂直方向上的全像素位置的1/4,1/2和3/4。
变换(125)和量化(130)预测残差。熵编码(145)量化变换系数以及运动矢量和其他语法元素以输出比特流。编码器还可以跳过变换并且以4×4TU为基础将量化直接应用于未变换的残差信号。编码器还可以绕过变换和量化,即,在不需要应用变换或量化处理的情况下直接编码残差。在直接PCM编码中,不应用预测,并且编码单元样本被直接编码到比特流中。
编码器解码编码块以提供另外预测的参考。量化变换系数被去量化(140)和逆变换(150)以解码预测残差。组合(155)解码的预测残差和预测块,重构画面块。例如,将滤波器应用于重构画面(165),以执行去块/SAO(样本自适应偏移)滤波以减少块效应伪像。经滤波的图像存储在参考画面缓冲器(180)处。
图2图示示例性HEVC视频解码器200的框图。在示例性解码器200中,比特流由解码器元件解码,如下所述。视频解码器200一般执行与图1中描述的编码途径相反的解码途径,其执行视频解码作为编码视频数据的一部分
具体地,解码器的输入包括视频比特流,其可以由视频编码器100生成。首先熵解码(230)比特流以获得变换系数,运动矢量和其他编码信息。变换系数被去量化(240)和逆变换(250)以解码预测残差。组合(255)解码的预测残差和预测块,重构图像块。可以从帧内预测(260)或运动补偿预测(即,帧间预测)获得(270)预测块。如上所述,AMVP和合并模式技术可以在运动补偿期间使用,其可以使用插值滤波器来计算参考块的子整数像素的插值。将滤波器(265)应用于重构的图像。经滤波的图像存储在参考画面缓冲器(280)处。
为了避免数据上溢或下溢,在HEVC解码器中的各种处理中规定裁剪。HEVC中定义不同的裁剪函数,例如:
ClipY(x)=Clip3(0,(1<<BitDepthY)-1,x)
ClipC(x)=Clip3(0,(1<<BitDepthC)-1,x) (1)
其中Y和C分别表示亮度和色度分量,BitDepthY和BitDepthC是内部比特深度(例如8或10)分别用于亮度和色度,Clip3是在两个边界x和y之间裁剪值z的函数。
x;z<x
Clip3(x,y,z)={y;z>y (2)
z;其他
可以在各种操作期间或之后应用裁剪,例如,在加权预测,预测,帧内预测滤波器,自适应环路滤波器(ALF),去块滤波器,SAO滤波器处或之后以及当将解码残差添加到预测时进行。另外,为了进一步改善HEVC的性能,还可以在联合视频探索团队(JVET)的参考软件JEM(联合探索模型)中开发的PDPC(位置相关帧内预测组合)中应用裁剪。
裁剪处理典型通过以下完成:
xc=clip(x)=min(BU,max(BL,X)) (3)
其中BL和BU分别是裁剪的下边界和上边界,并且值x被裁剪到BL到BU范围内的值xc。例如,默认裁剪边界可以是用于8比特IBD(内部比特深度)的BL=0和BU=255,以及用于10比特IBD的BL=0和BU=1023。
Chih-Ming Fu等人的美国申请No.12/954,844公开了考虑视频数据的动态特性的内容自适应裁剪方法,其中该方法将视频数据配置成可以是部分画面,帧或一组帧的预定义集合。确定与预定义集合相关联的原始视频数据的数据范围,并且根据用于预定义集合的计算范围来裁剪处理的视频数据。范围信息可以在序列参数集(SPS),画面参数集(PPS),条带报头或编码单元报头中携带。
共同拥有的EP申请,P.Bordes等人的标题为“Methods and devices forencoding and decoding a sequence of pictures,and corresponding computerprogram products and computer-readable medium”(EP15306369.8,代理人案卷号PF150011),其教导通过引用具体地并入本文,公开了裁剪自适应于另一颜色分量的一个颜色分量的方法。在一个实施例中,提供色度分量的样本的范围作为亮度分量中的样本值的函数。
本原理涉及视频编码和解码中的自适应裁剪。在一个实施例中,我们建议编码自适应于内容的裁剪参数。可以指示裁剪参数(包括但不限于指示是否使用自适应裁剪的标志,指示编码裁剪边界的方法的类型的标志,裁剪的下边界和上边界)用于画面序列或一组画面,或在画面或条带级别。例如,可以在视频参数集(VPS),SPS,PPS,条带报头或CTU报头中指示裁剪参数。在可伸缩视频编码的情况下,可以指示裁剪参数用于各个层。裁剪边界可以是预定常数,信号边界,或者可以基于视频数据的概率分布生成。裁剪边界可以仅用作重构画面上的后处理,或者裁剪边界可以用在编码器或解码器内部的一个或多个裁剪操作中。
图3描绘根据本原理的实施例的用于确定是否在编码器处启用自适应裁剪的示例性方法300。
在步骤305,编码器计算画面中的最小像素值(m)和最大像素值(M)。然后编码器确定画面中有多少像素具有接近信号边界m和M的像素值。例如,编码器计数(310)像素值在m和m+T1之间的像素的数量(Nm),其中T1是参数,并计数(315)像素值在M-T2和M之间的像素的数量(NM),其中T2是参数。基于数量Nm和NM,编码器可以例如使用Nm和NM的平均,组合或最大函数确定接近信号边界的像素的数量的指示(N)。如果数量N大于n%*h*w(320),其中n%是阈值,h和w是画面的垂直和水平方向上的像素的数量,则可以通过裁剪操作调整足够量的像素。因此,可以为画面启用自适应裁剪(330),并且将在比特流中用信号通知裁剪边界。否则,不为画面启用自适应裁剪,并且可以使用基于BL=0和BU=2bitdepth-1的裁剪。在变型中,可以比较数量N与独立于图像尺寸的固定阈值T。
另外,编码器还可以检查画面的量化参数,画面类型或时间级别。当量化参数大,时间级别高或者画面类型是B时,画面的编码尺寸通常小,并且用信号通知裁剪参数可能引入相对大的开销。因此,对于期望具有小编码尺寸的画面,我们可以禁用自适应裁剪以避免额外开销。对于期望具有大编码尺寸的画面,例如,帧内画面或一组画面中的第一个帧间画面,我们可以启用自适应裁剪。
通过调整阈值n%和参数T1和T2,可以将编码尺寸考虑并入到方法300中。例如,我们可以针对期望具有大编码尺寸的画面将n%设置为小值(即,使得能够容易地满足自适应裁剪的条件),并且针对期望具有小编码尺寸的画面将n%设置为大值。
编码器可以有条件地执行步骤310,例如,如果m>BL=0,则编码器仅执行步骤310。类似地,编码器可以有条件地执行步骤315,例如,如果M<BU=2bitdepth-1,则编码器仅执行步骤315。这是因为当m<BL=0或M>BU=2bitdepth-1时,BL=0且BU=2bitdepth-1的非自适应裁剪可能执行得比自适应裁剪更好。
在另一示例中,当量化参数高时,失真高,并且应用裁剪以减少失真可能更有用。因此,我们可以随着量化参数的增加来增加参数T1和T2。在决定参数n%,T1和T2时,编码器也可以考虑编码尺寸(即比特率)和失真。
方法300描述在画面级执行自适应裁剪时的方法。当在序列级别,条带级别,CTU级别或其他编码级别执行自适应裁剪时,也可以相应地调整方法300。在另一个变型中,编码器也可以检查接近裁剪边界而不是信号边界的像素的数量,以确定是否启用自适应裁剪。当在低级别(例如,在CTU级别)执行自适应裁剪时,可以在编码CTU之前做出决定,并且可以熵编码用于指示是否启用用于各个CTU的自适应裁剪的标志。
图4A描绘根据本原理的实施例的用于编码裁剪边界的示例性方法400。
在步骤410,编码器执行初始化步骤,例如,访问用于表示视频数据的比特深度(bitdepth),视频数据的裁剪边界(Ylow,Yhigh)以及用于量化裁剪参数的量化器的比特的数量(qshift)。注意,编码器可以使用一个比特深度(例如,8比特)用于表示输入/输出数据,以及其他比特深度(例如,10比特,12比特)用于内部编码处理。这里,变量“bitdepth”的值对应于用于表示当发生裁剪的阶段的数据的比特深度。例如,当裁剪应用于解码输出视频数据时bitdepth=8,并且在帧内预测之后应用裁剪时bitdepth=10,或者在内部比特深度10处操作的其他模块。
在特定实施例中,编码器可以推导用于在初始化步骤期间计算差(在步骤420)的预测器的值(也称为参考裁剪边界)。图4C描绘用于在条带/画面级别存储裁剪值并且利用与用于访问参考画面列表(即,用于帧间预测的参考画面的列表)中的帧的规则兼容的规则来访问的情况下推导参考预测器的示例性方法。在这种情况下,附加到已经解码的画面的已经解码的裁剪边界以及对应的POC与所述画面一起存储在参考画面集(RPS)中(即与画面相关联的一组参考画面,包括在解码顺序中在相关联的画面之前的所有参考画面,其可以用于相关联的画面的帧间预测或者在解码顺序中相关联的画面之后的任何画面)。
在步骤1410,如果当前画面包含帧内编码条带,则不设置参考预测器(1412)。否则,在步骤1413初始化bestDeltaPOC。作为示例,bestDeltaPOC(POC的最佳差)被初始化为无穷大。POC是与每个画面相关联并且唯一地识别编码视频序列中的所有画面中的相关联画面的变量。在下文中,POC_ref是参考画面的POC,POC_current是要编码的当前画面的POC。
在步骤1414,开始RPS中的所有参考画面的循环。如果RPS的画面被用作对当前画面进行编码的参考(1415),则该方法在步骤1416继续,否则该方法在步骤1421继续。如果启用参考画面的裁剪边界(1416),则该方法在步骤1417继续,否则该方法在步骤1421继续。如果POC deltaPOC的差小于到目前为止在绝对值中找到的POC的最佳差(1417),则该方法在步骤1420继续,否则在步骤1418继续。如果deltaPOC和bestDeltaPOC的绝对值相等(1418),则该方法在步骤1419继续,否则在步骤1421继续。如果POC的差为正(在变型中为负)(1419),然后该方法在步骤1420继续,否则该方法在步骤1421继续。在步骤1420,将POC的最佳差(bestDeltaPOC)和最佳POC(bestPOC)设置为分别等于POC的差和当前处理的参考画面的POC。当处理RPS中的所有画面时,循环结束(1421)并且该方法在步骤1422继续。如果POC的最佳差(bestDeltaPOC)等于其初始值(1422),则该方法在步骤1412继续。否则,将参考裁剪边界设置为等于(每个分量cdx)其POC等于bestPOC的参考画面的解码的裁剪边界(1423)。这些参考裁剪边界在下文中称为ClipMinRefVal[cdx]和ClipMaxRefVal[cdx]。
在变型中,如果省略步骤1416,则将没有激活裁剪边界的参考画面的裁剪边界设置为常规裁剪值(即,下边界为0,上边界为(l<<BitDepth)-1)。
固定预测器
为了提高压缩效率,可以差分编码裁剪边界。对于亮度边界,下边界很可能接近0而上边界可能接近2bitdepth,我们可以计算(420)差为:
Ad=Ylow,Bd=2bitdepth-Yhigh (4)
其中Ylow和Yhigh分别是亮度分量的裁剪的下边界和上边界。这里,0和2bitdepth可以分别被视为Ylow和Yhigh的预测器。由于0和2bitdepth不随内容变化,我们也将它们称为裁剪边界的固定预测器,并将编码方法称为利用固定预测器的差分编码方法。也可以使用其他固定预测器,例如64和940用于10比特的有限范围数据。因为固定预测器已知或者可以在编码器和解码器处生成,所以一般不需要在比特流中传送固定预测器的值。
注意,使用2bitdepth而不是2bitdepth-1来计算上边界的差。这可以允许差的量化和去量化而没有裁剪边界处的损失。
我们从实验中观察到,下裁剪边界通常小于可以由比特深度表示的最大值的一半(即,Ylow<2bitdepth-1),并且上裁剪边界通常大于可以由比特深度表示的最大值的一半(即,Yhigh>2bitdepth-1)。因此,Ad和Bd可以用(bdd=bitdepth-1)的比特深度表示。因此,当使用固定长度码编码Ad和Bd时,可以节省一些比特。
在步骤430,量化该差,这可能是有用的,因为大多数内容仍然是8比特而编码器的内部比特深度是10或甚至更高。这里的量化可以在不需要精度方面牺牲太多的情况下减少要编码的差的动态范围。
量化可以执行为右位移qshift比特:
Aq=Ad>>qshift,Bq=Bd>>qshift (5)
注意Ad和Bd是非负。量化器的选择可以基于用于表示原始视频数据的比特深度(bitdepth0)和在裁剪阶段的比特深度(bitdepth)。在一个示例中,基于bitdepth和bitdepth0=8之间的差来选择qshift,如表1所示,以便差的量化抵消由编码器处的内部比特深度增加引起的放大(upscaling)。
表格1
使用该量化方法,可以通过反向位移(不舍入)来计算重构值:
自适应预测器
在另一个实施例中,我们也可以利用内容改变下裁剪和上裁剪的预测器。我们称它们为裁剪边界的自适应预测器,并且我们将编码方法称为利用自适应预测器的差分编码方法。使用自适应预测器(pred1,predu),我们可以计算(420)该差为:
Ad=Ylow-pred1,Bd=Yhigh-predu (7)
注意,Ad和Bd基于自适应预测器计算,并且值可以是正,零或负。因此,我们调整量化处理,如公式(5)描述,以量化该差。对于下边界差,量化可以执行为:
如果Ad>0,Aq=Ad>>qshift
否则Aq=-1*((|Ad|+(1<<qshift)-1)>>qshift) (8)
对于上边界差,量化可以执行为:
如果Bd<0,Bq=-1*(|Bd|>>qshift)
其他Bq=(Bd+(1<<qshift)-1))>>qshift (9)
可以通过反向位移来计算重构差值
并且重构裁剪边界是:
图5图示使用示例的Ad和Bd的量化和去量化。在这个示例中,我们设置qshift=2,Ad=7,Bd=13,pred1=2,predu=800,Ylow=9,Yhigh=813。在量化处,Aq=7>>2=1,Bq=(13+(1<<2)-1)>>2=4,并且在去量化处,在该示例中,重构下裁剪边界小于编码之前的下边界,并且重构上裁剪边界大于编码之前的上边界,即, 且因此,当输入原始裁剪边界将像素值保持在9~813时,重构的裁剪边界将使像素值保持在6~816。通常,由扩展裁剪范围引起的失真小于由压缩裁剪范围引起的失真。因此,所提出的量化可以通过减少失真而有益于压缩效率。
当使用细化时,重构的裁剪边界也应该包括细化值。
为了使编码器和解码器执行相同的裁剪操作,在编码器侧使用重构的裁剪边界来裁剪视频数据(455),而在解码器侧使用解码的裁剪边界来裁剪视频数据。在本申请中,我们可以互换地指代“重构的”和“解码的”。
在步骤450,编码量化差(即,Aq,Bq)和可选的细化值(即,Ar,Br)。可以使用可变长度编码来编码细化值。自适应预测器(即,predl,predu)也可以被编码到比特流中。
表2图示在条带报头处用信号通知裁剪参数时的示例性语法表。在该示例中,不考虑细化。也可以在画面级别,序列级别,CTU级别和其他编码级别用信号通知语法元素。
表2
adaptive_clipping_slice_flag等于1激活当前条带的自适应裁剪。如果没有被激活,则默认裁剪边界用于裁剪(对于下边界和上边界,典型分别为0和(l<<bitdepth)-l)。
qshift_idx规定表1中规定的qshift的值。注意,当编码视频序列时,使用用于裁剪边界的固定预测符编码第一条带。因此,可以从第一条带获得之后条带的qshift的值。
表3
clip_min_delta_quant_fixed_predictor[cIdx]指定颜色分量cIdx的下裁剪边界差的量化值。用于表示clip_min_delta_quant_fixed_predictor[cIdx]的比特的数量是(bdd-qshift),其中bdd是用于表示裁剪边界差的比特的数量(例如,如公式(4)中的Ad,Bd)。描述符u(v)将解析处理表示为无符号整数,而语法表中的“v”指示比特的数量以依赖于其他语法元素的值的方式变化。
clip_max_delta_quant_fixed_predictor[cIdx]规定颜色分量cIdx的上裁剪边界差的量化值。用于表示clip_max_delta_quant_fixed_predictor[cIdx]的比特的数量是(bdd-qshift)。
表4
clip_min_delta_quant_adaptive_predictor[cIdx]规定颜色分量cIdx的下裁剪边界差的量化值。描述符se(v)表示解析处理为带符号的整数0阶Exp-Golomb编码的语法元素,其中左比特为第一比特。
clip_max_delta_quant_adaptive_predictor[cIdx]规定颜色分量cIdx的上裁剪边界差的量化值。
在编码器和解码器初始化时,下裁剪边界和上裁剪边界,ClipMinRefVal[cIdx]和ClipMaxRefVal[cIdx]的值可以分别设置为等于0和(l<<BitDepth[cIdx])-l,其中BitDepth是颜色分量cIdx的内部比特深度。
如果adaptive_clipping_slice_flag等于1:
-如果clip_code_fixed_predictor_flag等于1,则预测器PredictorMin[cIdx]和PredictorMax[cIdx]分别被设置为0和(1<<BitDepth[cIdx])。clip_min_delta_quant[cldx]和clip_max_delta_quant[cldx]的值推导如下:
clip_min_delta_quant[cldx]=clip_min_delta_quant_fixed_predictor[cIdx]
clip_max_delta_quant[cldx]=clip_max_delta_quant_fixed_predictor[cIdx]
解码的下裁剪边界和上裁剪边界的值,ClipMinVal[cIdx]和ClipMaxVal[cIdx]的值推导如下:
ClipMinVal[cIdx]=PredictorMin[cIdx]+(clip_min_delta_quant[cldx]<<qshift)
ClipMaxVal[cIdx]=PredictorMax[cIdx]-(clip_max_delta_quant[cldx]<<qshift)
如果(ClipMaxVal[cIdx]>(1<<BitDepth)-1)ClipMaxVal[cIdx]=(1<<BitDepth)-l;
-否则(如果clip_code_fixed_predictor_flag等于0),则clip_min_delta_quant[cldx]和clip_max_delta_quant[cldx]推导如下:
clip_min_sign[cIdx]=Sign(clip_min_delta_quant_adaptive_predictor[cIdx])
clip_max_sign[cIdx]=Sign(clip_max_delta_quant_adaptive_predictor[cIdx])
clip_min_delta_quant[cIdx]=Abs(clip_min_delta_quant_adaptive_predictor[cIdx])
clip_max_delta_quant[cIdx]=Abs(clip_max_delta_quant_adaptive_predictor[cIdx])
其中
可以将下边界预测器值和上边界预测器值,PredictorMin[cIdx]和PredictorMax[cIdx]分别更新为最后解码的ClipMinRefVal[cIdx]和ClipMaxRefVal[cIdx]。另一个更新策略是将PredictorMin[cIdx]和PredictorMax[cIdx]设置为当前帧的参考画面缓冲器中可用的时间上最接近的解码帧的ClipMinVal[cIdx]和ClipMaxVal[cIdx]以进行解码。另一个更新策略是将PredictorMin[cIdx]和PredictorMax[cIdx]设置为当前帧的参考画面缓冲器中可用的时间上最接近的解码帧的ClipMinRefVal[cIdx]和ClipMaxRefVal[cIdx]以进行解码。
下裁剪边界和上裁剪边界的值,ClipMinVal[cIdx]和ClipMaxVal[cIdx]推导如下:
ClipMinVal[cIdx]=PredictorMin[cIdx]+clip_min_sign[cldx]*
(clip_min_delta_quant[cldx]<<qshift)
ClipMaxVal[cIdx]=PredictorMax[cIdx]+clip_max_sign[cldx]*
(clip_max_delta_quant[cldx]<<qshift)
如果adaptive_clipping_slice_flag等于0,则ClipMinVal[cIdx]和ClipMaxVal[cIdx]的值分别被设置为等于0和(1<<BitDepth)-1。
在上文中,讨论在条带级别编码裁剪参数。当裁剪参数在较低级别(例如,在CTU级别)编码时,可以使用上下文预测器来计算差,例如使用最后一个CTU的值,参考画面缓冲器中的最接近的帧的同位置的CTU,或周围CTU值的平均值。
在裁剪参数在画面级别被编码的特定情况下,可以如表5和表6中描述的那样定义替代语法。在该语法中,裁剪参数仅在第一条带中被编码以被设置在画面级别。替代地,qshift_idx在PPS级别编码,并且对于所有画面是共同的。在该情况下,等于1的adaptive_clipping_slice_flag激活当前画面的自适应裁剪。adaptive_clipping_enabled_flag等于1启用整个序列的自适应裁剪。
表5
表6
图4B描绘根据本原理的实施例的用于解码裁剪边界的示例性方法400a。方法400a的输入可以是方法400的输出。在步骤460,解码器执行初始化,例如,访问用于表示视频数据的比特深度(bitdepth),裁剪边界的预测器以及用于量化裁剪参数的量化器的比特的数量。在步骤465,可以从比特流解码量化的裁剪边界差和可选的细化。可以通过例如使用公式(6)或(11),基于解码的差和裁剪边界的预测器,对量化的裁剪边界差进行去量化来解码裁剪边界。如果使用细化,则细化也与初始解码的裁剪边界组合以获得最终裁剪边界(480)。然后基于解码的裁剪边界裁剪(485)视频数据。
图4D描绘根据本原理的实施例的用于当在条带/画面级别存储裁剪值并且利用与访问参考画面列表中的帧的策略兼容的策略来访问时,推导参考预测器的示例性初始化的示例性方法。当使用该策略时,附加到已经解码的画面的已经解码的裁剪边界以及所述画面的对应POC被存储在参考画面集(RPS)中。该方法类似于参考图4C描述的编码器之一。与图4的步骤相同的步骤用相同的附图标记表示,并且不再进一步描述。在解码器侧,仅当(1411)clip_code_fixed_predictor_flag具有等于x的值(例如,x=0或x=1)时,从存储在RPS中的值对参考裁剪边界进行推导,值x用于clip_code_fixed_predictor_flag指示使用固定的裁剪预测器。
图6图示根据本原理的实施例的用于利用固定预测器或自适应预测器来编码裁剪边界的示例性方法600。在初始化步骤(605),编码器可以访问用于表示视频数据的比特深度,并生成分别用于下裁剪边界和上裁剪边界的固定预测器。在步骤610,编码器例如使用方法400(具有按公式(4)中描述计算出的差)利用固定预测器对裁剪边界进行编码。在步骤620,计算具有固定预测器的编码成本。
在步骤630,编码器例如使用方法400(具有按公式(7)中描述计算出的差)利用自适应预测器编码裁剪边界。在步骤640,计算具有自适应预测器的编码成本。在步骤650,编码器比较利用固定预测器和自适应预测器的方法的编码成本。如果利用固定裁剪预测器的编码方法具有较低的成本,则编码标志来指示使用固定裁剪预测器,例如设置clip_code_fixed_predictor_flag=1。因为固定预测器通常可以在解码器处生成,所以固定预测器不被编码到比特流中,并且仅例如使用如上所述的CodeClipping_fixed_predictor()来编码量化的裁剪边界差和可选的细化。否则例如通过设置clip_code_fixed_predictor_flag=0,来编码标志以指示使用自适应裁剪预测器,并且例如使用如上所述的语法结构CodeClipping_adaptive_predictor()利用自适应预测器来编码裁剪边界。
在上文中,我们描述编码器可以决定是否启用自适应裁剪,如图3所示。此外,即使编码器最初决定启用自适应裁剪,编码器也可以检查编码前的裁剪边界与重构的裁剪边界之间的误差是否超过阈值,例如,通过检查由利用(bdd=bitdepth-1)的比特深度而不是bitdepth表示Ad和Bd引起的误差。
图7图示根据本原理的实施例的用于利用固定预测器或自适应预测器来解码裁剪边界的示例性方法700。方法700的输入可以是方法600的输出。在初始化(705),解码器可以访问用于表示视频数据的比特深度。在步骤710,解码器解码用于指示是否使用固定裁剪预测器的标志。如果是(720),那么解码器例如在步骤730基于比特深度生成分别用于下裁剪边界和上裁剪边界的固定预测器。然后,例如,使用具有固定预测器的方法400a,可以在步骤740解码裁剪边界。
否则,在步骤750,解码器从比特流解码分别用于下裁剪边界和上裁剪边界的自适应预测器。然后,在步骤760,例如,使用具有自适应预测器的方法400a,可以解码裁剪边界。
在编码方法600中,可以在比特流中显式地传送自适应预测器,或者可以基于先前编码的画面来推导自适应预测器。例如,当前条带的自适应预测器基于如上所述的最接近的解码帧。当基于先前编码的画面推导出自适应预测器时,通常用固定预测器编码一组画面中的第一编码单元。应该相应地设计解码方法700以适当地解码自适应预测器。
自适应残差平滑
图8A图示用于编码当前块的示例性方法800。在步骤810,例如通过帧内预测或帧间预测形成预测块。在步骤820,可以计算残差块作为当前原始块和预测块之间的差。在步骤830,变换和量化残差块以形成编码的变换块。在步骤840,逆变换和去量化编码的变换块进行以形成解码的残差块。在步骤850,可以通过对解码的残差块和预测块求和来获得重构块。在步骤860,可以执行裁剪以生成重构的裁剪块。
使用3×3块作为示例,我们在下面更详细地讨论编码方法。
我们假设原始块和预测块然后残差块 在变换和量化后,编码的变换块在逆变换和逆量化后,解码的残差块可以将重构块计算为利用作为1000的上裁剪边界,重构的裁剪块原始块和重构裁剪块之间的失真是Dist0=5277。
从上面的例子中,我们注意到由于残差系数(即,矩阵Res0中的元素)之间的变化,在变换块的最高频率处存在非零变换系数(即,矩阵TQ0中的-2)。因为编码非零高频率变换系数通常是昂贵的,所以我们建议平滑残差以减少高频下非零系数的出现。例如,如果原始块中的对应像素的值接近上裁剪边界,则我们可以增加残差的值,或者如果原始块中的对应像素的值接近下裁剪边界,则减小残差的值。因为残差值的增大或减小可以在不需要裁剪之后改变很多重构的像素值的情况下平滑残差,所以编码器可以在不需要引起很多额外失真的情况下降低编码预测残差的比特率。
图8B图示根据本原理的实施例的用于利用自适应残差平滑来编码当前块的示例性方法800a。步骤810-860类似于方法800中使用的步骤,而附加步骤870执行自适应残差平滑。
使用与用于方法800相同的原始块,我们在下面讨论具有残差平滑的编码方法。
对于原始块和预测块使用自适应残差平滑调整具体地,y0,0=1000并且y1,1=1000在上裁剪边界处,并且我们检查对应位置处的残差(即,res0,0=20且res1,1=-20)。对于这两个选择的位置,我们例如使用排除选择位置(即,res0,0和res1,1)的整个块Res0的平均值来计算低通滤波值。对于该示例,低通滤波值被计算为V=(300+100+500+300+200+100+100)/7=229。因为V大于res0,0和res1,1,所以我们用V替换残差res0,0和res1,1,这是因为在上裁剪边界可以在裁剪阶段抵消增量(即,V-res0,0=219和V res1,1=259)。因此,即使残差被平滑和修改,在裁剪重构块之后,与没有残差平滑相比,块的失真可能不一定增加。因此,我们可以通过利用裁剪处理来提高压缩效率。
则自适应残差平滑之后的残差块变为变换和量化之后,编码的变换块与没有自适应平滑的编码的变换块TQ0不同,最高频率处的系数是0并且能量在低频率(左上)更紧凑,并且由此,可以在要编码的比特的数量方面成本更低。在逆变换和逆量化之后,解码的残差块重构块可以计算为 利用作为1000的上裁剪边界,重构的裁剪块原始块和重构的裁剪块之间的失真是Dist1=4852,其比没有残差平滑的Dist0小。因此,自适应残差平滑可以节省比特,同时也降低失真。
图9图示根据本原理的实施例的用于在编码器中执行残差平滑的示例性方法900。在步骤905,编码器执行初始化,例如,访问下裁剪边界和上裁剪边界,访问原始输入块,预测块和残差块。在步骤910,编码器例如通过与一个或者多个阈值比较来选择其像素值在原始块或预测块中接近下裁剪边界或上裁剪边界的位置,来标识将执行残差平滑的块中的位置。在一个示例中,我们可以将阈值设置为0,因此仅平滑具有在边界处精确的值的元素。在另一示例中,阈值可以随着量化参数的增加而增加。
在步骤915,编码器检查在步骤910是否选择了一个或多个像素位置。如果是,则编码器例如使用低通滤波器或块中的残差(不包括所选位置)的平均值计算(920)该块的平滑残差值V。在变型中,可以单独计算平滑残差值用于块中的所选位置。
然后,对于要平滑的当前所选位置处的残差值,编码器检查(935)是否因为对应像素接近上裁剪边界而选择该位置以及平滑残差值V是否大于当前残差,或者是否因为对应像素接近下裁剪边界而选择该位置以及平滑残差值V是否小于当前残差。如果是,则由平滑残差值V替换当前残差resi,j。也就是,对于接近裁剪边界并且可能导致高频变换系数的残差值,我们修改残差值,使得其可以远远超出裁剪边界以减少残差块的变化(从而压缩变换块的能量)。然后由残差平滑引起的过度的残差值可以被限制在裁剪之后由裁剪边界限定的范围内,并且通常不导致失真的大的增加。因此,所提出的残差平滑可以在不会大量增加失真的情况下降低编码成本,并且通常可以提高压缩效率。
可以迭代地执行自适应残差平滑。例如,对于残差块在第一次迭代中,块的平均值可以被计算(V0=(20+300+100+500-20+300+200+100+100)/9=178)并且用于替换res0,0和res1,1,并且残差块变为在第二次迭代中,块的平均值可以被计算(V1=(178+300+100+500+178+300+200+100+100)/9=218)并且用于替换res0,0和res1,1,并且残差块变成迭代可以继续,直到当迭代的次数达到阈值或者为止。
在步骤950,编码器检查是否存在要处理的更多标识的位置。如果是,则控制返回到步骤935。否则,例如使用方法800a中的步骤830-860编码修改的残差块,并且重构解码的裁剪块。编码器也可以执行率-失真优化(RDO)以决定是否使用自适应残差平滑。
在上文中,我们描述用于下裁剪边界和上裁剪边界的编码和解码方法,或者基于下裁剪边界和上裁剪边界应用自适应残差平滑。在不同变型中,我们可以仅基于下裁剪边界或上裁剪边界来执行编码和解码,或者执行残差平滑。
关于HEVC标准描述各种实施例。然而,本原理不限于HEVC,并且可以应用于其他标准,推荐和扩展。
以上描述了各种方法,并且每个方法包括用于实现描述的方法的一个或多个步骤或动作。除非要求步骤或动作的要求的特定顺序用于方法的正确操作,否则可以修改或组合特定步骤和/或动作的顺序和/或使用。
图10图示可以实现本原理的示例性实施例的各个方面的示例性系统的框图。系统1000可以体现为包括下面描述的各种组件的设备,并且被配置为执行上述处理。这样的设备的示例包括但不限于个人计算机,膝上型计算机,智能电话,平板计算机,数字多媒体机顶盒,数字电视接收器,个人视频记录系统,连接的家用电器和服务器。系统1000可以通信地耦合到其他类似系统,并且可以通过图10所示的并且本领域技术人员所知的通信信道耦合到显示器,以实现上述示例性视频系统。
系统1000可以包括至少一个处理器1010,其被配置为执行加载在其中的指令,用于实现上面讨论的各种处理。处理器1010可以包括嵌入式存储器,输入输出接口和本领域已知的各种其他电路。系统1000还可以包括至少一个存储器1020(例如,易失性存储器设备,非易失性存储器设备)。系统1000可以另外包括存储设备1040,其可以包括非易失性存储器,包括但不限于EEPROM,ROM,PROM,RAM,DRAM,SRAM,闪存,磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备1040可以包括内部存储设备,附接的存储设备和/或网络可存取存储设备。系统1000还可以包括编码器/解码器模块1030,其被配置为处理数据以提供编码的视频或解码的视频。
编码器/解码器模块1030表示可以包括在设备中以执行编码和/或解码功能的(多个)模块。如所知,该设备可以包括编码和解码模块中的一个或两个。另外,如本领域技术人员已知的,编码器/解码器模块1030可以实现为系统1000的单独元件,或者可以并入处理器1010内作为硬件和软件的组合。
要加载到处理器1010上以执行上文描述的各种处理的程序代码可以存储在存储设备1040中,并且随后加载到存储器1020上用于由处理器1010执行。根据本原理的示例性实施例中,处理器1010,存储器1020,存储设备1040和编码器/解码器模块1030中的一个或多个可以在执行上文讨论的处理期间存储各种项目中的一个或多个,包括但不限于基本层输入视频,增强层输入视频,方程,公式,矩阵,变量,操作和操作逻辑。
系统1000还可以包括通信接口1050,其启用经由通信信道1060与其他设备的通信。通信接口1050可以包括但不限于被配置为从通信信道1060传送和接收数据的收发器。通信接口可以包括但不限于调制解调器或网卡,并且通信信道可以在有线和/或无线介质中实现。系统1000的各种组件可以使用各种合适的连接(包括但不限于内部总线,电线和印刷电路板)而连接或通信地耦合在一起。
可以通过由处理器1010实现的计算机软件或通过硬件或通过硬件和软件的组合来实施根据本原理的示例性实施例。作为非限制性示例,根据本原理的示例性实施例可以由一个或多个集成电路实现。存储器1020可以是适合于技术环境的任何类型,并且可以使用任何适当数据存储技术(诸如,作为非限制性示例的光学存储器设备,磁存储器设备,基于半导体的存储器设备,固定存储器和可移除存储器)来实现。处理器1010可以是适合于技术环境的任何类型,并且可以包括作为非限制性示例的微处理器,通用计算机,专用计算机和基于多核架构的处理器中的一个或多个。
本文描述的实现方式可以在例如方法或处理,装置,软件程序,数据流或信号中实现。即使仅在单个实现形式的上下文中讨论(例如,仅作为方法讨论),讨论的特征的实现方式也可以以其他形式(例如,装置或程序)来实现。装置可以在例如适当的硬件,软件和固件中实现。方法例如可以在例如诸如处理器之类的装置中实现,该处理器一般指代处理设备,包括例如计算机,微处理器,集成电路或可编程逻辑设备。处理器也包括通信设备,诸如例如计算机,蜂窝电话,便携/个人数字助理(“PDA”),以及便于终端用户之间的信息通信的其他设备。
对本原理的“一个实施例”或“实施例”或“一个实现方式”或“实现方式”的引用以及其其他变型意味着结合实施例描述的具体特征,结构,特性等包括在本原理的至少一个实施例中。因此,在整个说明书中出现在各个地方的短语“在一个实施例中”或“在实施例中”或“在一个实现方式中”或“在实现方式中”以及任何其他变型的出现不一定都指代同一个实施例。
另外,本申请或其权利要求可以指“确定”各种信息。确定信息可以包括例如估计信息,计算信息,预测信息或从存储器检索信息中的一个或多个。
此外,本申请或其权利要求可以指“访问”各种信息。访问信息可以包括例如接收信息,检索信息(例如,从存储器中),存储信息,处理信息,传送信息,移动信息,复制信息,擦除信息、计算信息,确定信息,预测信息或估计信息中的一个或多个。
另外,本申请或其权利要求可以指“接收”各种信息。与“访问”一样,接收意图是广义术语。接收信息可以包括例如访问信息或检索信息(例如,从存储器中)中的一个或多个。此外,“接收”典型在操作期间以一种方式或其他方式,涉及例如,存储信息,处理信息,传送信息,移动信息,复制信息,擦除信息,计算信息,确定信息,预测信息或估计信息。
将对于本领域技术人员显而易见的是,实现方式可以产生被格式化以携带例如可以存储或传送的信息的各种信号。该信息可以包括例如用于执行方法的指令或由描述的实施方式之一产生数据。例如,可以格式化信号以携带描述的实施例的比特流。这样的信号可以被格式化,例如作为电磁波(例如,使用频谱的射频部分)或者作为基带信号。格式化可以包括,例如编码数据流和用编码数据流调制载波。信号携带的信息可以是例如模拟或数字信息。如已知,信号可以通过各种不同的有线或无线链路传送。信号可以存储在处理器可读介质上。
Claims (11)
1.一种用于编码画面的方法,包括:
访问要编码的原始块、预测块和对应于原始块的残差块;
确定原始块或预测块中的第一元素接近用于裁剪的上边界;
利用大于残差块中的第一元素的残差块的低通滤波值来替换残差块中的第一元素,所述残差块中的第一元素与原始块或预测块中的第一元素对应;
编码和解码具有替换后的元素的残差块以形成解码的残差块;
基于预测块和解码的残差块形成重构块;以及
如果重构块中的第一元素超过用于裁剪的上边界,则利用用于裁剪的上边界替换重构块中的第一元素,所述重构块中的第一元素与残差块中的第一元素对应。
2.如权利要求1所述的方法,还包括:
确定原始块或预测块中的第二元素接近用于裁剪的下边界;
利用小于残差块中的第二元素的残差块的低通滤波值来替换残差块中的第二元素,所述残差块中的第二元素与原始块或预测块中的第二元素对应;以及
如果重构块中的第二元素小于用于裁剪的下边界,则利用用于裁剪的下边界来替换与残差块中的第二元素对应的重构块中的第二元素。
3.如权利要求1所述的方法,其中,基于阈值确定原始块或预测块中的第一元素接近用于裁剪的上边界。
4.如权利要求3所述的方法,其中,所述阈值是0。
5.如权利要求3所述的方法,其中,所述阈值随着与残差块对应的量化参数而增加。
6.一种用于编码画面的装置,包括至少一个存储器和耦接到所述至少一个存储器的一个或多个处理器,所述一个或多个处理器被配置为:
访问要编码的原始块、预测块和对应于原始块的残差块;
确定原始块或预测块中的第一元素接近用于裁剪的上边界;
利用大于残差块中的第一元素的残差块的低通滤波值来替换残差块中的第一元素,所述残差块中的第一元素与原始块或预测块中的第一元素对应;
编码和解码具有替换后的元素的残差块以形成解码的残差块;
基于预测块和解码的残差块形成重构块;以及
如果重构块中的第一元素超过用于裁剪的上边界,则利用用于裁剪的上边界来替换与残差块中的第一元素对应的重构块中的第一元素。
7.如权利要求6所述的装置,所述一个或多个处理器还被配置为:
确定原始块或预测块中的第二元素接近用于裁剪的下边界;
利用小于残差块中的第二元素的残差块的低通滤波值来替换残差块中的第二元素,所述残差块中的第二元素与原始块或预测块中的第二元素对应;以及
如果重构块中的第二元素小于用于裁剪的下边界,则利用用于裁剪的下边界来替换与残差块中的第二元素对应的重构块中的第二元素。
8.如权利要求6所述的装置,其中,所述一个或多个处理器被配置为,基于阈值确定原始块或预测块中的第一元素接近用于裁剪的上边界。
9.如权利要求8所述的装置,其中,所述阈值是0。
10.如权利要求8所述的装置,其中,所述阈值随着与残差块对应的量化参数而增加。
11.一种计算机可读介质,其上存储有计算机可执行的指令,当所述指令被执行时实施根据权利要求1-5任一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16305558.5A EP3244611A1 (en) | 2016-05-13 | 2016-05-13 | Method and apparatus for video coding with adaptive clipping of pixel values |
EP16305558.5 | 2016-05-13 | ||
EP16305609 | 2016-05-26 | ||
EP16305609.6 | 2016-05-26 | ||
PCT/EP2017/059967 WO2017194312A2 (en) | 2016-05-13 | 2017-04-26 | Method and apparatus for video coding with adaptive clipping |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109417639A CN109417639A (zh) | 2019-03-01 |
CN109417639B true CN109417639B (zh) | 2021-12-21 |
Family
ID=58640876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780041569.4A Active CN109417639B (zh) | 2016-05-13 | 2017-04-26 | 利用自适应裁剪的视频编码的方法和设备 |
Country Status (10)
Country | Link |
---|---|
US (1) | US10735774B2 (zh) |
EP (1) | EP3456052B1 (zh) |
JP (1) | JP2019521571A (zh) |
KR (1) | KR20190029526A (zh) |
CN (1) | CN109417639B (zh) |
BR (1) | BR112018073434A2 (zh) |
CA (1) | CA3023986A1 (zh) |
MX (1) | MX2018013942A (zh) |
RU (1) | RU2018144014A (zh) |
WO (1) | WO2017194312A2 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3531700B1 (en) * | 2016-10-18 | 2022-04-06 | Panasonic Intellectual Property Management Co., Ltd. | Image coding method, transmission method and image coding device |
US12058309B2 (en) | 2018-07-08 | 2024-08-06 | Mellanox Technologies, Ltd. | Application accelerator |
US11252464B2 (en) | 2017-06-14 | 2022-02-15 | Mellanox Technologies, Ltd. | Regrouping of video data in host memory |
US20200014945A1 (en) * | 2018-07-08 | 2020-01-09 | Mellanox Technologies, Ltd. | Application acceleration |
US10880354B2 (en) | 2018-11-28 | 2020-12-29 | Netflix, Inc. | Techniques for encoding a media title while constraining quality variations |
US10841356B2 (en) | 2018-11-28 | 2020-11-17 | Netflix, Inc. | Techniques for encoding a media title while constraining bitrate variations |
GB2580173B (en) | 2018-12-21 | 2022-07-27 | Canon Kk | A filter |
EP3928521A4 (en) * | 2019-04-02 | 2022-08-17 | Beijing Bytedance Network Technology Co., Ltd. | BIDIRECTIONAL OPTICAL FLOW BASED VIDEO ENCODING AND DECODING |
CN113678462B (zh) | 2019-04-15 | 2023-01-10 | 北京字节跳动网络技术有限公司 | 自适应环路滤波器中的裁剪参数推导 |
WO2020211864A1 (en) | 2019-04-19 | 2020-10-22 | Beijing Bytedance Network Technology Co., Ltd. | Region based gradient calculation in different motion vector refinements |
EP3942811A4 (en) | 2019-04-24 | 2022-06-15 | ByteDance Inc. | CONSTRAINTS ON THE REPRESENTATION OF A DIFFERENTIAL MODULATION BY CODED PULSES OF QUANTIFIED RESIDUE FOR A CODED VIDEO |
US11277637B2 (en) * | 2019-05-09 | 2022-03-15 | Qualcomm Incorporated | Reference sampling for matrix intra prediction mode |
US11418779B2 (en) * | 2019-06-11 | 2022-08-16 | Qualcomm Incorporated | Clipping indices coding for adaptive loop filter in video coding |
EP3984228A4 (en) * | 2019-06-14 | 2023-03-29 | Telefonaktiebolaget Lm Ericsson (Publ) | SAMPLE VALUE CLIPPING ON MIP REDUCED PREDICTION |
CN114009044A (zh) | 2019-06-14 | 2022-02-01 | 瑞典爱立信有限公司 | 用于基于矩阵的帧内预测的简化下采样 |
CN113766247B (zh) * | 2019-06-25 | 2023-07-25 | 北京大学 | 环路滤波的方法与装置 |
CN118764623A (zh) * | 2019-08-27 | 2024-10-11 | 现代自动车株式会社 | 利用差分编码的视频编码和解码 |
CN117939152A (zh) * | 2020-01-05 | 2024-04-26 | 北京达佳互联信息技术有限公司 | 一种视频编码的方法、装置和介质 |
US12101493B2 (en) * | 2020-01-25 | 2024-09-24 | Lg Electronics Inc. | Act residual-based image or video coding |
US11032546B1 (en) * | 2020-07-20 | 2021-06-08 | Tencent America LLC | Quantizer for lossless and near-lossless compression |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102474625A (zh) * | 2009-07-23 | 2012-05-23 | 瑞典爱立信有限公司 | 用于图像的编码和解码的方法和设备 |
CN102970529A (zh) * | 2012-10-22 | 2013-03-13 | 北京航空航天大学 | 一种基于对象的多视点视频分形编码压缩与解压缩方法 |
CN104350752A (zh) * | 2012-01-17 | 2015-02-11 | 华为技术有限公司 | 用于高性能视频编码中的无损编码模式的环内滤波 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000064189A2 (en) | 1999-04-16 | 2000-10-26 | Avid Technology, Inc. | Safe color limiting of a color on a digital nonlinear editing system |
US20040170319A1 (en) | 2003-02-28 | 2004-09-02 | Maurer Ron P. | System and method of gamut mapping image data |
KR100772873B1 (ko) | 2006-01-12 | 2007-11-02 | 삼성전자주식회사 | 스무딩 예측을 이용한 다계층 기반의 비디오 인코딩 방법,디코딩 방법, 비디오 인코더 및 비디오 디코더 |
US8184710B2 (en) | 2007-02-21 | 2012-05-22 | Microsoft Corporation | Adaptive truncation of transform coefficient data in a transform-based digital media codec |
EP2192786A1 (en) * | 2008-11-27 | 2010-06-02 | Panasonic Corporation | Frequency domain filters for video coding |
US8730130B1 (en) | 2008-12-04 | 2014-05-20 | RPA Electronic Solutions, Inc. | System and method for automatically aligning immersive displays |
US9456111B2 (en) * | 2010-06-15 | 2016-09-27 | Mediatek Inc. | System and method for content adaptive clipping |
US20120177111A1 (en) | 2011-01-12 | 2012-07-12 | Matthias Narroschke | Efficient clipping |
US20130083855A1 (en) | 2011-09-30 | 2013-04-04 | Dane P. Kottke | Adaptive color space selection for high quality video compression |
US9538200B2 (en) * | 2012-01-19 | 2017-01-03 | Qualcomm Incorporated | Signaling of deblocking filter parameters in video coding |
US20140192862A1 (en) * | 2013-01-07 | 2014-07-10 | Research In Motion Limited | Methods and systems for prediction filtering in video coding |
US10708589B2 (en) * | 2014-03-19 | 2020-07-07 | Samsung Electronics Co., Ltd. | Video encoding and decoding method and apparatus involving boundary filtering |
US10204658B2 (en) | 2014-07-14 | 2019-02-12 | Sony Interactive Entertainment Inc. | System and method for use in playing back panorama video content |
EP3189661B1 (en) | 2014-10-08 | 2020-07-29 | MediaTek Inc. | Method of block vector clipping and coding for screen content coding and video coding |
EP3223524A1 (en) | 2016-03-22 | 2017-09-27 | Thomson Licensing | Method, apparatus and stream of formatting an immersive video for legacy and immersive rendering devices |
US11752547B2 (en) | 2017-06-30 | 2023-09-12 | Norsk Titanium As | Solidification refinement and general phase transformation control through application of in situ gas jet impingement in metal additive manufacturing |
-
2017
- 2017-04-26 WO PCT/EP2017/059967 patent/WO2017194312A2/en unknown
- 2017-04-26 US US16/301,191 patent/US10735774B2/en active Active
- 2017-04-26 CN CN201780041569.4A patent/CN109417639B/zh active Active
- 2017-04-26 MX MX2018013942A patent/MX2018013942A/es unknown
- 2017-04-26 BR BR112018073434-9A patent/BR112018073434A2/pt not_active IP Right Cessation
- 2017-04-26 CA CA3023986A patent/CA3023986A1/en not_active Abandoned
- 2017-04-26 RU RU2018144014A patent/RU2018144014A/ru not_active Application Discontinuation
- 2017-04-26 EP EP17720098.7A patent/EP3456052B1/en active Active
- 2017-04-26 KR KR1020187036073A patent/KR20190029526A/ko not_active Application Discontinuation
- 2017-04-26 JP JP2018559993A patent/JP2019521571A/ja not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102474625A (zh) * | 2009-07-23 | 2012-05-23 | 瑞典爱立信有限公司 | 用于图像的编码和解码的方法和设备 |
CN104350752A (zh) * | 2012-01-17 | 2015-02-11 | 华为技术有限公司 | 用于高性能视频编码中的无损编码模式的环内滤波 |
CN102970529A (zh) * | 2012-10-22 | 2013-03-13 | 北京航空航天大学 | 一种基于对象的多视点视频分形编码压缩与解压缩方法 |
Non-Patent Citations (4)
Title |
---|
CE8 Subtest3: Controlled Clipping;Yu-Lin Chang;《JCTVC-D123》;20110128;全文 * |
Non-CE4: Clipping of Transformed Coefficients before De-quantization;Xiang Li;《JCTVC-H0312》;20120210;全文 * |
Overview of the High Efficiency Video Coding (HEVC) Standard;Gary J. Sullivan;《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》;20121212;全文 * |
TE10 Subtest3: Controlled Clipping;Yu-Lin Chang;《JCTVC-C146》;20101015;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109417639A (zh) | 2019-03-01 |
WO2017194312A3 (en) | 2017-12-21 |
EP3456052A2 (en) | 2019-03-20 |
BR112018073434A2 (pt) | 2019-03-26 |
RU2018144014A (ru) | 2020-06-15 |
RU2018144014A3 (zh) | 2020-06-15 |
JP2019521571A (ja) | 2019-07-25 |
EP3456052B1 (en) | 2023-08-02 |
CA3023986A1 (en) | 2017-11-16 |
KR20190029526A (ko) | 2019-03-20 |
US20190200044A1 (en) | 2019-06-27 |
WO2017194312A2 (en) | 2017-11-16 |
US10735774B2 (en) | 2020-08-04 |
MX2018013942A (es) | 2019-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109417639B (zh) | 利用自适应裁剪的视频编码的方法和设备 | |
US11363264B2 (en) | Sample adaptive offset control | |
JP7257962B2 (ja) | 予測ピクチャ符号化及び復号のための方法及びデバイス | |
CN109417631B (zh) | 利用自适应运动信息细化的视频编码 | |
US10999603B2 (en) | Method and apparatus for video coding with adaptive clipping | |
US9300967B2 (en) | Sample adaptive offset control | |
EP3264769A1 (en) | Method and apparatus for video coding with automatic motion information refinement | |
EP2548372B1 (en) | Methods and apparatus for implicit adaptive motion vector predictor selection for video encoding and decoding | |
KR20210099008A (ko) | 이미지를 디블록킹하기 위한 방법 및 장치 | |
JP7532388B2 (ja) | ビデオの符号化および復号における動きベクトルの導出 | |
CN112703732A (zh) | 使用存储的参数对视频编码和解码进行局部照明补偿 | |
EP3280143A1 (en) | A method and an apparatus for image block encoding and decoding | |
EP3935861A1 (en) | Local illumination compensation for video encoding or decoding | |
EP3737099A1 (en) | Local illumination compensation for video encoding or decoding | |
EP3706418A1 (en) | Regularization of local illumination compensation for video encoding or decoding | |
EP3244611A1 (en) | Method and apparatus for video coding with adaptive clipping of pixel values | |
US20190222846A1 (en) | Method and apparatus for video coding with sample adaptive offset | |
EP3291554A1 (en) | Method and apparatus for video coding with sample adaptive offset | |
US11483576B2 (en) | Method and a device for picture encoding and decoding | |
EP3706423A1 (en) | Local illumination compensation for video encoding or decoding | |
EP3706419A1 (en) | Multi-model local illumination compensation for video encoding or decoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |