CN113711601A - 用于推导当前块的插值滤波器索引的方法和装置 - Google Patents

用于推导当前块的插值滤波器索引的方法和装置 Download PDF

Info

Publication number
CN113711601A
CN113711601A CN202080029582.XA CN202080029582A CN113711601A CN 113711601 A CN113711601 A CN 113711601A CN 202080029582 A CN202080029582 A CN 202080029582A CN 113711601 A CN113711601 A CN 113711601A
Authority
CN
China
Prior art keywords
motion information
history
block
information candidate
based motion
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
CN202080029582.XA
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113711601A publication Critical patent/CN113711601A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

本发明涉及视频编码和视频解码,尤其涉及一种用于帧间预测视频信号帧的块的方法。所述方法包括:构建基于历史的运动信息候选列表,其中,所述列表为包括N个基于历史的运动信息候选Hk的有序列表,所述N个基于历史的运动信息候选Hk包括在所述块之前的N个先前块的运动信息,每个基于历史的运动信息候选包括元素:一个或多个运动矢量(motion vector,MV)、与所述MV对应的一个或多个参考图像索引和插值滤波器索引;将所述基于历史的运动信息候选列表中的一个或多个基于历史的运动信息候选添加到所述块的运动信息候选列表中;根据所述运动信息候选列表推导所述块的运动信息。因此,在使用所述基于历史的运动信息候选列表时,可以继承半像素插值滤波器索引,从而可以选择合适的插值滤波器替代默认插值滤波器,并提高预测信号的质量和译码效率。

Description

用于推导当前块的插值滤波器索引的方法和装置
相关申请案交叉申请
本申请要求于2019年4月19日提交的申请号为62/836,072的美国临时专利申请、于2019年5月10日提交的申请号为62/845,938的美国临时专利申请、于2019年10月2日提交的申请号为62/909,761的美国临时专利申请、以及于2019年10月2日提交的申请号为62/909,763的美国临时专利申请的优先权。上述专利申请的全部内容通过引用结合在本申请中。
技术领域
本发明实施例大体上涉及图像处理领域,更具体地涉及帧间预测,尤其涉及用于推导当前块的插值滤波器索引的方法和装置,例如用于可切换插值滤波器参数的融合流程。
背景技术
视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字TV、通过互联网和移动网络传输视频、实时会话应用(如视频聊天)、视频会议、DVD和蓝光光盘、视频内容采集和编辑系统,以及安全应用的摄像机。
即使在视频较短的情况下,也需要对大量的视频数据进行描述,当数据要在带宽容量受限的通信网络中流式发送或以其它方式发送时,这样可能会造成困难。因此,视频数据通常要先压缩,然后在现代电信网络中发送。由于内存资源可能有限,当在存储设备上存储视频时,视频的大小也可能成为问题。视频压缩设备通常在源侧使用软件和/或硬件,以在发送或存储之前对视频数据进行编码,从而减少用来表示数字视频图像所需的数据量。然后,压缩的数据在目的地侧由解码视频数据的视频解压缩设备接收。在网络资源有限而对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术能够在几乎不影响图像质量的情况下提高压缩比。
近来,通用视频编码(Versatile Video Coding,VVC)中引入了用于半像素(half-pixel/half-pel,半像素)位置的可切换插值滤波器。半像素亮度插值滤波器的切换取决于运动矢量的精度。在采用半像素运动矢量精度的情况下,可以使用替代半像素插值滤波器,并且所述替代半像素插值滤波器可以由指示使用哪个插值滤波器的附加语法元素来表示,因此增加了指示开销。
发明内容
本申请实施例的目的在于提供用于构建基于历史的运动信息候选列表的装置和方法,使得在使用所述基于历史的运动信息候选列表时,可以继承半像素(half-pixel/half-pel,半像素)插值滤波器索引,从而选择合适的插值滤波器替代默认插值滤波器,并提高预测信号的质量和译码效率。
本申请实施例的目的在于提供用于帧间预测跳跃/融合模式下编码的当前块的装置和方法,使得在使用基于历史的运动信息候选列表时,可以继承半像素插值滤波器索引,从而可以提高视频信号的质量。
上述目的及其它目的通过独立权利要求请求保护的主题实现。其它实现方式在从属权利要求、说明书以及附图中是显而易见的。
根据本发明的第一方面,提供了一种用于构建基于历史的运动信息(history-based motion information,HMI)候选列表的方法,所述方法可以由编码装置或解码装置执行,所述方法包括:
获得基于历史的运动信息候选列表,其中,所述HMI列表为N个基于历史的运动信息候选Hk(k=0、……、N–1)的有序列表,所述N个基于历史的运动信息候选Hk与在一个块之前的多个先前块(例如,N个先前块)关联,N为大于0的整数(例如,N为大于0、小于或等于预定义数值的整数(如0<N<=5)),每个基于历史的运动信息候选包括对应先前块的运动信息,所述运动信息包括元素:
(i)所述对应先前块的一个或多个运动矢量MV(例如1/16分数样本精度的亮度运动矢量mvL0和/或mvL1,mvL0和mvL1对应参考图像列表L0和参考图像列表L1),
(ii)与所述对应先前块的MV对应的一个或多个参考图像索引(例如参考图像索引refIdxL0和/或refIdxL1,refIdxL0和refIdxL1对应参考图像列表L0和参考图像列表L1),
(iii)插值滤波器(interpolation filter,IF)索引(例如所述对应先前块的IF索引或与所述对应先前块关联的IF索引);
根据所述块的运动信息更新所述HMI列表,所述块的运动信息包括元素:
(i)所述块的一个或多个运动矢量MV(例如1/16分数样本精度的亮度运动矢量mvL0和/或mvL1),
(ii)与所述块的MV对应的一个或多个参考图像索引(例如参考索引refIdxL0和/或refIdxL1),
(iii)插值滤波器索引(例如所述块的IF索引或与所述块关联的IF索引)。
在一个示例中,所述插值滤波器(interpolation filter,IF)索引可以指分数样本插值滤波器(interpolation filter,IF)索引。具体地,IF索引是指半像素(half-pixel/half-pel,半像素)插值滤波器索引或半样本插值滤波器索引(hpelIfIdx)。本发明中,术语“半像素插值滤波器”和“半样本插值滤波器”可以互换。其中,半样本插值滤波器索引在所述对应块的运动矢量的至少一个指向半像素位置时表示用于对半像素值进行插值的半像素插值滤波器。例如,如果基于历史的运动信息候选的一个或多个运动矢量(motionvector,MV)(元素(i))包含至少一个MV指向半像素位置,则所述基于历史的运动信息候选的插值滤波器(interpolation filter,IF)索引(元素(iii))表示用于对半像素值进行插值的半像素插值滤波器(即所述插值滤波器索引(元素(iii)仅对包含半像素MV的HMI候选有效)。如果基于历史的运动信息候选的一个或多个运动矢量(motion vector,MV)(元素(i))不包含指向半像素位置的MV,则所述基于历史的运动信息候选的插值滤波器(interpolation filter,IF)索引(元素(iii))不起作用(即所述IF索引对非半像素MV无效,且用于非半像素MV的IF索引的值也不起作用。所述插值滤波器索引可以设置为任意值,如设置为0或false)。此时,可以为所述插值滤波器(interpolation filter,IF)索引(元素(iii))分配默认值,该默认值在后续步骤中不再使用。所述块的运动信息也是如此。换句话说,当所述块的MV中的至少一个MV指向半像素位置时,所述块的运动信息中的插值滤波器索引(元素(iii))起作用。如果所述块的所有MV均不指向半像素位置,则为所述运动信息中的插值滤波器索引(元素(iii))分配默认值,该默认值在后续步骤中不再使用。在一个示例性实现方式中,所述IF索引总是存储在HMI列表中,而不考虑MV的分数部分,即使所述IF索引在某些情况下不起作用。这样,就可以简化HMI列表的设计。可以理解的是,如果所述对应块的两个MV均不指向半像素位置,则分配给所述IF索引的值不会对译码结果产生任何影响。
在另一个示例性实现方式中,所述插值滤波器(interpolation filter,IF)索引可以替换为插值滤波器(interpolation filter,IF)集合索引,所述IF集合索引表示多个IF集合中的可切换IF集合。在一个示例中,每个IF集合包括用于每个分数位置的插值滤波器。同时,用于相同分数位置的IF在少数IF集合中可以相等。例如,多个IF集合中存在用于某些分数位置的相同滤波器和用于某些分数位置的不同滤波器,特别地,用于相应分数位置的IF可以根据IF集合索引进行切换。在某些情况下,两组插值滤波器之间的切换可以理解为两个插值滤波器之间的切换。
在一个示例性实现方式中,所述半像素插值滤波器索引表示一组半像素插值滤波器中的一个半像素插值滤波器。其中,仅当所述一个或多个运动矢量中的至少一个运动矢量指向半像素位置时,所述半像素插值滤波器才被用于对半像素值进行插值。如果L0和/或L1中的运动矢量指向半像素(half-pixel/half-pel,半像素)位置,则根据所述半像素插值滤波器索引选择插值滤波器,该插值滤波器在对应预测列表(预测方向)(L0和/或L1)的运动补偿期间用于进行样本插值。
需要说明的是,所述块和所述N个先前块可以位于一个帧的一个条带(slice)内,也可以位于一个帧内。在一个示例中,存在新的条带时,空出所述基于历史的运动信息候选列表(表)。当存在新的条带时,调用构建过程。在另一个示例中,可以根据条带内每个新的CTU行重置所述HMI列表/表。
可以理解的是,N个先前块可以是一个或多个先前块。所述先前块指按照编码或解码顺序在当前块之前先行编码或解码的块。在一个示例中,块P可以采用包含在块P之前的一个或多个编码/解码块的HMVP表。在推导到块P的运动信息后,对所述HMVP表进行更新。更新所述HMVP表之后,在块P之后的块Q可以采用更新后的HMVP表。块Q是按照解码或编码顺序在块P之后进行编码或解码的。
可以理解的是,在更新所述HMVP列表后,更新后的HMVP列表中可以有M个基于历史的运动信息候选,其中,M小于或等于预定义值(如5),且M>=N。
还可以理解的是,如果所述HMI列表的索引从1开始,则所述HMI列表为N个基于历史的运动信息候选Hk(k=1、……、N)的有序列表,所述N个基于历史的运动信息候选Hk与在一个块之前的多个先前块的运动信息关联。
因此,提供了一种改进方法,允许继承所述基于历史的运动信息候选列表中的插值滤波器索引。特别地,先前块的插值滤波器(interpolation filter,IF)索引存储在所述基于历史的运动信息候选列表的对应基于历史的运动信息候选中。当所述基于历史的运动信息候选列表直接或间接用于对经融合或跳过模式编码的块进行帧间预测时,可以从所述对应运动信息候选借用所述插值滤波器(interpolation filter,IF)索引,而不需要使用单独的语法元素。通过所述基于历史的运动信息候选列表传播所述IF索引,允许对块使用合适的插值滤波器(而非使用预定义的插值滤波器),从而确保编码信号的质量。因此,本文中提供的技术有利于提高译码效率,从而提升视频编解码方法的整体压缩性能。
需要说明的是,本发明中使用的术语“块”、“编码块(coding block)”或“图像块”可以包括变换单元(transform unit,TU)、预测单元(prediction unit,PU)、编码单元(coding unit,CU)等。在通用视频编码(versatile video coding,VVC)中,变换单元和编码单元大多情况下是对齐的,少数使用TU分块(TU tiling)或子块变换(Sub blockTransform,SBT)的场景除外。可以理解的是,术语“块”、“图像块”、“编码块”和“图像块”在本发明中可以互换。术语“样本”和“像素”在本发明中也可以互换。术语“预测样本值”和“预测像素值”在本发明中可以互换。术语“样本位置”和“像素位置”本发明中可以互换。
还应理解的是,术语“基于历史的运动信息候选列表”、“HMI列表”、“HMVP列表”、“HMVP表”和“HMVP查找表(LUT)”在本发明中可以互换。
应理解的是,HMVP列表是使用一个或多个已编码/解码的先前块的运动信息构建的。HMVP列表用于存储相邻块(但不一定是像常规空间融合候选一样的邻接块)的运动信息。HMVP的构思是使用先前块的运动信息,这些先前块在空间上接近一个块,但不一定与该块邻接(如某些空间邻域中的块)。
根据第一方面所述的方法,在一种可能的实现方式中,所述更新所述HMI列表包括:如果所述HMI列表中的每个基于历史的运动信息候选的以下至少一个元素与所述块的运动信息中的对应元素不同,将所述块的运动信息作为基于历史的运动信息候选Hk(k=N)添加到所述HMI列表中,其中,所述至少一个元素为:
(i)所述一个或多个运动矢量MV,
(ii)与所述MV对应的所述一个或多个参考图像索引。
可以理解的是,如果所述HMI列表中的索引从1开始,则所述添加可以是指将包含所述块的运动信息的基于历史的运动信息候选Hk(k=N+1)添加到所述HMI列表中。
允许将所述块的运动信息作为基于历史的运动信息候选添加到所述HMI列表的最后一个位置。
根据第一方面所述的方法,在一种可能的实现方式中,所述更新所述HMI列表包括:
如果对所述HMI列表中基于历史的运动信息候选的以下元素与所述块的运动信息中的对应元素进行比较的结果是相同,从所述HMI列表中删除所述基于历史的运动信息候选,并将所述块的运动信息作为基于历史的运动信息候选Hk(k=N–1)添加到所述HMI列表中,其中,所述元素为:
(i)一个或多个运动矢量MV,
(ii)与所述MV对应的一个或多个参考图像索引。
可以理解的是,如果所述HMI列表中的索引从1开始,则所述添加可以是指将所述块的运动信息作为基于历史的运动信息候选Hk(k=N)添加到所述HMI列表中。
所述块的运动信息可以作为基于历史的运动信息候选添加到所述HMI列表的最后一个位置。
根据第一方面或第一方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述更新所述HMI列表包括:
如果N等于预定义值,从所述HMI列表中删除基于历史的运动信息候选Hk(k=0),并将所述块的运动信息作为基于历史的运动信息候选Hk(k=N–1)添加到所述HMI列表中。
可以理解的是,如果所述HMI列表中的索引从1开始,则所述删除可以是指从所述HMI列表中删除基于历史的运动信息候选Hk(k=1),所述添加是指将所述块的运动信息作为基于历史的运动信息候选Hk(k=N)添加到所述HMI列表中。
允许删除位于所述HMI列表中第一个位置处的基于历史的运动信息候选,并将所述块的运动信息作为基于历史的运动信息候选添加到所述HMI列表的最后一个位置。
根据第一方面或第一方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述方法还包括:
比较任一基于历史的运动信息候选的运动矢量是否与所述块的对应运动矢量相同;
比较任一基于历史的运动信息候选的参考图像索引是否与所述块的对应参考图像索引相同。
在一种替代的设计中,所述方法还包括:
比较每个基于历史的运动信息候选(即HMVP候选)的所述运动矢量中的至少一个运动矢量是否与所述块的对应运动矢量不同;
比较每个HMVP候选的所述参考图像索引中的至少一个参考图像索引是否与所述块的对应参考图像索引不同。
因此,允许在更新所述HMVP表时,在修剪过程中仅使用MV和参考图像索引,而不比较插值滤波器索引。从而可以在HMVP候选的复杂性和多样性之间取得较好的权衡。特别地,允许仅根据MV和参考图像索引进行比较,可以避免额外的计算操作,从而降低计算复杂度。每次比较操作在HMVP表的更新过程和融合候选的构建过程中都会产生额外的计算。因此,如果能够减少或消除比较操作,就可以降低计算复杂度,从而提高译码效率。此外,允许仅根据MV和参考图像索引进行比较,还可以保持HMVP记录的多样性。如果两个HMVP记录包含相同的MV和相同的参考索引,且只包含不同的IF索引,由于这两个记录不是完全不同,因此是无效的。此时,在HMVP表的更新过程中,可以合理地认为这两条HMVP记录是相同的。此时,如果一个新的记录与所述HMVP表中的已有记录相比只具有不同的IF索引,则所述新的记录不会被添加到所述HMVP表中。因此,与其它记录“完全不同”的“旧的”/已有的记录(具有不同的MV或参考索引)会被保留。换句话说,若要将一个新的记录添加到所述HMVP表中,所述新的记录不仅应按位不同于现有记录,而且必须是“实质性地不同”。从译码效率而言,所述HMVP表中包含两个具有不同MV或不同参考索引的记录比包含两个只具有不同IF索引的记录更加有效。
根据第一方面或第一方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述预定义值为5或6。
根据第一方面或第一方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述基于历史的运动信息候选包括的所述半样本插值滤波器索引表示半样本插值滤波器集合中的半样本插值滤波器;仅当所述基于历史的运动信息候选的所述一个或多个MV中的至少一个MV指向半样本位置时,所述半样本插值滤波器才被应用于对半样本值进行插值。
在现有技术中,对于从所述HMVP表中获得的融合候选总是使用默认插值滤波器(IF)索引(对应于默认插值滤波器)。本发明中,通过所述HMVP表传播IF索引,因此可以根据所述IF索引使用一组插值滤波器中的一个插值滤波器。在一个示例中,还可以根据所述IF索引使用两个插值滤波器(默认插值滤波器和替代插值滤波器)中的一个插值滤波器。因此,选择合适的插值滤波器,而非使用默认插值滤波器,以提高参考可靠性,并提高预测信号的质量和译码效率。
需要说明的是,术语“替代半像素插值滤波器(alternative half-pixelinterpolation filter)”、“可切换插值滤波器(switchable interpolation filter,SIF)”或“半像素插值滤波器”在本发明中可以互换。
可以根据内容选择合适的插值滤波器(interpolation filter,IF)。对于具有锐化边缘的区域,可以使用常规的基于DCT的插值滤波器。对于平滑区域(或者不需要保留锐化边缘的区域),可以使用替代6抽头插值滤波器(高斯滤波器)。对于融合模式,可以从对应的运动信息候选借用所述IF索引。对于经融合模式编码的块,当从所述HMVP表获得运动信息候选时,可以使用替代插值滤波器。通过所述HMVP表传播IF索引,允许对块使用合适的插值滤波器,从而有利于提高译码效率。如果不采用该提出的机制,通常对HMVP融合候选使用默认IF索引(对应于8抽头基于DCT的插值滤波器),且不会考虑当前块的具体内容(是否需要保留锐化边缘)。
根据本发明的第二方面,提供了一种用于帧间预测视频信号帧的块的方法,所述方法包括:
构建基于历史的运动信息(history-based motion information,HMI)候选列表,其中,所述HMI列表为N个基于历史的运动信息候选Hk(k=0、……、N–1)的有序列表,所述N个基于历史的运动信息候选Hk与在所述块之前的多个先前块(例如,N个先前块)的运动信息关联(或包含),N为大于0的整数,每个基于历史的运动信息候选对应一个先前块,且包括元素:
(i)所述先前块的一个或多个运动矢量,
(ii)与所述先前块的MV对应的一个或多个参考图像索引,
(iii)插值滤波器索引(例如,所述先前块的插值滤波器索引或与所述先前块关联的插值滤波器索引);
将所述HMI列表中的一个或多个基于历史的运动信息候选添加到所述块的运动信息候选列表中;
根据所述运动信息候选列表推导所述块的运动信息。
所述运动信息候选列表可以为融合候选列表。
在一种替代或附加的设计中,本发明的第二方面,提供了一种用于帧间预测视频信号帧的块的方法,所述方法包括:
构建基于历史的运动信息候选列表,其中,所述HMI列表为N个基于历史的运动信息候选Hk(k=0、……、N–1)的有序列表,所述N个基于历史的运动信息候选Hk与在所述块之前的多个先前块(例如,N个先前块)的运动信息关联(或包含),N为大于0的整数,至少一个基于历史的运动信息候选包括对应先前块的元素,包括:
(i)一个或多个运动矢量(motion vector,MV),其中,至少一个MV指向半像素位置;
(ii)与所述一个或多个MV对应的一个或多个参考图像索引,
(iii)所述先前块的插值滤波器索引;
将所述HMI列表中的一个或多个基于历史的运动信息候选添加到所述块的运动信息候选列表中;
根据所述运动信息候选列表推导所述块的运动信息。
所述运动信息候选列表可以为融合候选列表。
可以理解的是,基于历史的运动信息候选作为基于历史的融合候选被添加到融合候选列表中。
在一个示例中,所述HMI列表的长度为N,N为5或6。
因此,提供了一种改进方法,允许继承所述基于历史的运动信息候选列表中的插值滤波器索引。特别地,先前块的插值滤波器(interpolation filter,IF)索引存储在所述基于历史的运动信息候选列表的对应基于历史的运动信息候选中。当所述基于历史的运动信息候选列表直接或间接用于对经融合或跳过模式编码的块进行帧间预测时,可以从所述对应运动信息候选借用所述插值滤波器(interpolation filter,IF)索引,而不需要使用单独的语法元素。通过所述基于历史的运动信息候选列表传播所述IF索引,允许对块使用合适的插值滤波器(而非使用预定义的插值滤波器),从而确保编码信号的质量。因此,本文中提供的技术有利于提高译码效率,从而提升视频编解码方法的整体压缩性能。
根据第二方面所述的方法,在一种可能的实现方式中,仅当推导到的运动信息的一个或多个MV中的至少一个MV指向半样本位置时,半样本插值滤波器才被应用,所述半样本插值滤波器由包含在所述推导到的运动信息中的半样本插值滤波器索引表示。
根据第二方面或第二方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述基于历史的运动信息候选包括的所述半样本插值滤波器索引表示半样本插值滤波器集合中的半样本插值滤波器;仅当所述基于历史的运动信息候选的所述一个或多个MV中的至少一个MV指向半样本位置时,所述半样本插值滤波器才被应用于对半样本值进行插值。
根据第二方面或第二方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述基于历史的运动信息候选还包括一个或多个双向预测权重索引。术语“双向预测权重索引bcw_idx”又称为广义双向预测权重索引GBIdx和/或CU级双向预测权重(BCW)索引。或者,所述索引可以简称为BWI,即双向预测权重索引。
根据第二方面或第二方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述方法还包括:
如果所述HMI列表中的每个基于历史的运动信息候选的以下至少一个元素与所述块的运动信息中的对应元素不同,将所述块的运动信息作为基于历史的运动信息候选Hk(k=N)添加到所述HMI列表中,其中,所述至少一个元素为:
(i)一个或多个运动矢量MV,
(ii)与所述MV对应的一个或多个参考图像索引。
根据第二方面或第二方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述方法还包括:
如果所述HMI列表中基于历史的运动信息候选的以下元素与所述块的运动信息中的对应元素相同,从所述HMI列表中删除所述基于历史的运动信息候选,并将所述块的运动信息作为基于历史的运动信息候选Hk(k=N–1)添加到所述HMI列表中,其中,所述元素为:
(i)一个或多个运动矢量MV,
(ii)与所述MV对应的一个或多个参考图像索引。
根据第二方面或第二方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述方法还包括:
如果N等于预定义值,从所述HMI列表中删除基于历史的运动信息候选Hk(k=0),并将所述块的运动信息作为基于历史的运动信息候选Hk(k=N–1)添加到所述HMI列表中。在一个示例中,所述预定义值为5。
根据第二方面或第二方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述方法还包括:
比较任一基于历史的运动信息候选的对应运动矢量是否与所述块的运动矢量相同;
比较任一基于历史的运动信息候选的对应参考图像索引是否与所述块的参考图像索引相同。
在一种替代的设计中,所述比较包括:
比较每个基于历史的运动信息候选的所述运动矢量中的至少一个运动矢量是否与所述块的对应运动矢量不同;
比较每个HMVP候选的所述参考图像索引中的至少一个参考图像索引是否与所述块的对应参考图像索引不同。
根据第二方面或第二方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述运动信息候选列表用于融合模式或跳过模式。换句话说,当前块采用融合模式或跳过模式进行编码。
根据第二方面或第二方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述根据所述运动信息候选列表推导所述块的运动信息包括:
从所述运动信息候选列表推导候选索引指示的运动信息,作为所述当前块的运动信息,其中,所述候选索引是从码流中解析或推导出的。
根据第二方面或第二方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述方法还包括:
当所述推导到的运动信息中包含的一个或多个运动矢量MV中的至少一个MV指向半像素位置时,通过对所述MV指向的所述参考图像的像素值使用半像素插值滤波器,获得所述块的预测样本值,所述半像素插值滤波器由所述推导到的运动信息中包含的插值滤波器索引表示;
当所述推导到的运动信息中包含的运动矢量MV均不指向半像素位置时,通过对所述MV指向的所述参考图像的像素值使用默认插值滤波器,获得所述块的预测样本值。
权利要求书、说明书以及附图中定义的编码方法和解码方法可以分别由编码装置和解码装置执行。
根据本发明的第三方面,提供了一种用于构建基于历史的运动信息候选列表的装置,所述装置包括:
基于历史的运动信息候选列表获得单元,用于获得基于历史的运动信息候选列表,其中,所述HMI列表为N个基于历史的运动信息候选Hk(k=0、……、N–1)的有序列表,所述N个基于历史的运动信息候选Hk与在一个块之前的多个块的运动信息关联,N为大于0的整数,每个基于历史的运动信息候选包括元素:
(i)一个或多个运动矢量MV,
(ii)与所述MV对应的一个或多个参考图像索引,
(iii)插值滤波器索引;
基于历史的运动信息候选列表更新单元,用于根据所述块的运动信息更新所述HMI列表,所述块的运动信息包括元素:
(i)一个或多个运动矢量MV,
(ii)与所述MV对应的一个或多个参考图像索引,
(iii)插值滤波器索引。
本发明第一方面提供的方法可以由本发明第三方面提供的装置执行。本发明第三方面提供的装置的更多特征和实现方式对应于本发明第一方面提供的装置的特征和实现方式。
根据本发明的第四方面,提供了一种用于帧间预测块的装置,所述装置包括
列表管理单元,用于构建基于历史的运动信息候选列表,其中,所述HMI列表为N个基于历史的运动信息候选Hk(k=0、……、N–1)的有序列表,所述N个基于历史的运动信息候选Hk与在所述块之前的多个块的运动信息关联,N为大于0的整数,每个基于历史的运动信息候选包括元素:
(i)一个或多个运动矢量MV,
(ii)与所述MV对应的一个或多个参考图像索引,
(iii)插值滤波器索引;
所述列表管理单元,还用于将所述HMI列表中的一个或多个基于历史的运动信息候选添加到所述块的运动信息候选列表中;
运动信息推导单元,用于根据所述运动信息候选列表推导所述块的运动信息。
本发明第二方面提供的方法可以由本发明第四方面提供的装置执行。本发明第四方面提供的装置的更多特征和实现方式对应于本发明第二方面提供的装置的特征和实现方式。
根据本发明的第五方面,提供了一种编码器(20),所述编码器包括处理电路,用于执行第一方面或第二方面以及第一方面或第二方面的实现方式所述的方法。
根据本发明的第六方面,提供了一种解码器(30),所述解码器包括处理电路,用于执行第一方面或第二方面以及第一方面或第二方面的实现方式所述的方法。
根据本发明的第七方面,提供了一种解码器。所述解码器包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质与所述处理器耦合并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使得所述解码器执行第一方面或第二方面以及第一方面或第二方面的实现方式所述的方法。
根据本发明的第八方面,提供一种编码器。所述编码器包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质屯所述处理器耦合并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使得所述编码器执行第一方面或第二方面以及第一方面或第二方面的实现方式所述的方法
根据本发明的第九方面,提供了一种非瞬时性存储介质,所述非瞬时性存储介质包括使用上述方面中任一项所述的方法进行编码/解码的码流。
一种用于编码或解码视频流的装置,其可以包括处理器和存储器。所述存储器存储指令,使得所述处理器执行上述方面中任一项所述的方法。
针对本文中公开的每一种编码方法或解码方法,提供了一种计算机可读存储介质,所述存储介质包括其上存储的指令,当所述指令被执行时,使得一个或多个处理器编码或解码视频数据。所述指令使得所述一个或多个处理器执行上述方面中任一项所述的方法。
此外,针对本文中公开的每一种编码方法或解码方法,提供了一种计算机程序产品。所述计算机程序产品包括程序代码,用于执行上述方面中任一项所述的方法。
以下附图和说明书详细阐述了一个或多个实施例。其它特征、目的和优点在说明书、附图以及权利要求书中是显而易见的。
附图说明
下面参照所附的附图和示意图对本发明实施例进行更加详细地描述,其中:
图1A为用于实现本发明实施例的示例性视频译码系统的框图;
图1B为用于实现本发明实施例的另一示例性视频译码系统的框图;
图2为用于实现本发明实施例的示例性视频编码器的框图;
图3为用于实现本发明实施例的视频解码器的示例性结构的框图;
图4为示例性编码装置或解码装置的框图;
图5为另一示例性编码装置或解码装置的框图;
图6示意性地示出了当前块和当前块的空间相邻块的示例;
图7示意性地示出了当前块和上方相邻块;
图8为本发明实施例提供的一种方法的流程图;
图9为用于推导编码树块(coding tree block,CTB)或编码树单元(coding treeunit,CTU)内的当前块(例如,编码单元或编码块)的插值滤波器索引的方法的框图;
图10示意性地示出了本发明实施例提供的构建HMVP列表的示例;
图11示意性地示出了本发明实施例提供的构建HMVP列表的另一个示例;
图12示出了本发明实施例提供的示例性HMVP列表及其遍历顺序;
图13A为一种用于构建HMVP列表的方法示例的流程图;
图13B为另一种用于构建HMVP列表的方法示例的流程图;
图14为一种用于帧间预测视频信号帧的块的方法示例的流程图;
图15为一种HMI列表更新方法示例的流程图;
图16为本发明实施例提供的一种装置的框图;
图17为本发明实施例提供的另一种装置的框图;
图18为用于实现内容分发服务的内容提供系统的示例性结构的框图;
图19为终端设备的示例性结构的框图。
下文中,相同的附图标记表示相同的特征或至少在功能上等效的特征,除非另有明确规定。
具体实施方式
以下描述中,参考构成本发明的一部分的附图,这些附图通过说明的方式示出本发明实施例的特定方面或可以使用本发明实施例的特定方面。应理解,本发明实施例可以在其它方面中使用,且可以包括附图中未描述的结构变化或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本发明的范围由所附权利要求书界定。
例如,应理解,结合所描述的方法的揭示内容可以对用于执行所述方法的对应设备或系统也同样适用,且反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括如功能单元等一个或多个单元,以执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元中的每一个单元都执行多个步骤中的一个或多个步骤),即使附图中未显式描述或说明此一个或多个单元。另一方面,例如,如果基于如功能单元等一个或多个单元来描述具体装置,则对应的方法可以包括一个步骤,以执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或多个步骤中的每一个步骤执行多个单元中的一个或多个单元的功能),即使附图中未显式描述或说明此一个或多个步骤。进一步,应理解的是,除非另外明确说明,本文中所描述的各种示例性实施例和/或方面的特征可以相互组合。
视频译码通常是指处理形成视频或视频序列的图像序列。在视频译码领域,术语“帧(frame)”与“图像(picture/image)”可以用作同义词。视频译码(或通常称为译码)包括视频编码和视频解码两部分。视频编码在源端执行,通常包括处理(例如,压缩)原始视频图像,以减少表示该视频图像所需的数据量(以便更高效地进行存储和/或传输)。视频解码在目的地端执行,通常包括相对于编码器的逆处理过程,用于重建该视频图像。实施例涉及的视频图像(或通常称为图像)的“译码”应理解为视频图像或各自视频序列的“编码”或“解码”。编码部分和解码部分也合称为编解码器(编码和解码,codec)。
在无损视频译码的情况下,可以对原始视频图像进行重建,即重建的视频图像与原始视频图像具有相同的质量(假设存储或传输期间没有传输损耗或其它数据损失)。在有损视频译码的情况下,通过量化等进行进一步压缩,以减少表示视频图像所需的数据量。此时,解码器侧无法完全重建视频图像,即重建的视频图像的质量低于或劣于原始视频图像的质量。
若干个视频译码标准属于“有损混合视频编解码器”组(即,将样本域中的空间和时间预测与2D变换译码相结合,以在变换域中进行量化)。视频序列中的每个图像通常分割成不重叠块的集合,通常进行块级别的译码。换句话说,编码器侧通常在块(视频块)级别处理即编码视频,例如,通过空间(帧内)预测和/或时间(帧间)预测来产生预测块;从当前块(当前正在处理/待处理的块)中减去预测块,得到残差块;在变换域中变换并量化残差块,以减少待传输(压缩)数据的量,而解码器侧则将相对于编码器的逆处理过程应用于经编码或压缩的块,以重建用于表示的当前块。此外,编码器和解码器的处理步骤相同,因此,编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建,用于进行处理,即对后续块进行译码。
在以下视频译码系统10的实施例中,视频编码器20和视频解码器30结合图1至图3进行描述。
图1A为示例性译码系统10的示意性框图,例如,可以利用本申请技术的视频译码系统10(或简称为译码系统10)。视频译码系统10中的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)代表可用于根据本申请中描述的各种示例执行各技术的设备的示例。
如图1A所示,译码系统10包括源设备12,源设备12用于将经编码的图像数据21,例如,提供给目的地设备14;目的地设备14用于对经编码的图像数据13进行解码。
源设备12包括编码器20,另外即可选地,包括图像源16、预处理器(或预处理单元)18如图像预处理器18、通信接口或通信单元22。
图像源16可以包括或可以为任何类型的图像捕获设备、和/或任何类型的图像生成设备或任何类型的其它设备,其中,图像捕获设备例如为用于捕获现实世界图像的相机,图像生成设备例如为用于生成计算机动画图像的计算机图形处理器,其它设备用于获取和/或提供现实世界的图像、计算机生成图像(例如,屏幕内容、虚拟现实(virtualreality,VR)图像)和/或其任意组合(例如,增强现实(augmented reality,AR)图像)。图像源可以为存储上述图像中的任意图像的任何类型的存储器(memory/storage)。
为了区分预处理器18和预处理单元18执行的处理,图像或图像数据17也可以称为原始图像或原始图像数据17。
预处理器18用于接收(原始)图像数据17,并对图像数据17进行预处理,以获得经预处理的图像19或经预处理的图像数据19。预处理器18执行的预处理可以包括例如修剪(trimming)、颜色格式转换(例如从RGB转换为YCbCr)、颜色校正或去噪。可以理解的是,预处理单元18可以为可选部件。
视频编码器20用于接收经预处理的图像数据19并提供经编码的图像数据21(下文将根据图2等进行详细描述)。
源设备12中的通信接口22可以用于:接收经编码的图像数据21并通过通信信道13向目的地设备14等其他设备或任何其它设备发送经编码的图像数据21(或其它任意处理后的版本),以供存储或直接重建。
目的地设备14包括解码器30(例如视频解码器30),另外即可选地,包括通信接口或通信单元28、后处理器32(或后处理单元32)以及显示设备34。
目的地设备14中的通信接口28用于直接从源设备12或从存储设备等任意其它源设备接收经编码的图像数据21(或其它任意处理后的版本),例如,存储设备为存储经编码的图像数据的存储设备,并将经编码的图像数据21提供给解码器30。
通信接口22和通信接口28可以用于通过源设备12与目的地设备14之间的直接通信链路,例如直接有线或无线连接等,或者通过任何类型的网络,例如有线网络、无线网络或其任意组合、任何类型的私网和公网或其任意类型的组合,发送或接收经编码的图像数据21或经编码的数据13。
例如,通信接口22可以用于将经编码的图像数据21封装为报文等合适的格式,和/或使用任意类型的传输编码或处理来处理经编码的图像数据,以便在通信链路或通信网络上进行传输。
通信接口28与通信接口22对应,例如,可以用于接收传输数据,并使用任意类型的对应传输解码或处理和/或解封装过程对传输数据进行处理,以获得经编码的图像数据21。
通信接口22和通信接口28均可以配置为如图1A中从源设备12指向目的地设备14的与通信信道13对应的箭头所指示的单向通信接口,或配置为双向通信接口,并且可以用于发送和接收消息等,以建立连接,确认并交换与通信链路和/或例如经编码的图像数据传输等数据传输相关的任何其它信息,等等。
解码器30用于接收经编码的图像数据21并提供经解码的图像数据31或经解码的图像31(下文将基于例如图3或图5进行详细描述)。
目的地设备14中的后处理器32用于对经解码的图像数据31(也称为经重建的图像数据),例如,经解码的图像31进行后处理,以获得经后处理的图像数据33,例如,经后处理的图像33。后处理单元32执行的后处理可以包括例如颜色格式转换(例如从YCbCr格式转换为RGB格式)、颜色校正、修剪或重采样,或者任何其它处理,例如用于产生供显示设备34等显示的经解码的图像数据31等。
目的地设备14中的显示设备34用于接收经后处理的图像数据33,以向用户或观看者等显示图像。显示设备34可以为或可以包括任意类型的用于呈现经重建的图像的显示器,例如,集成或外部显示屏或显示器。例如,显示器可以包括液晶显示器(liquid crystaldisplay,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶显示器(liquid crystal on silicon,LCoS)、数字光处理器(digital light processor,DLP)或任意类型的其它显示器。
尽管图1A示出了将源设备12和目的地设备14作为独立的设备,但设备实施例也可以同时包括源设备12和目的地设备14或同时包括源设备12和目的地设备14的功能,即同时包括源设备12或源设备12的对应功能和目的地设备14或目的地设备14的对应功能。在这些实施例中,源设备12或源设备12的对应功能和目的地设备14或目的地设备14的对应功能可以使用相同硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
根据描述,图1A所示的源设备12和/或目的地设备14中的不同单元或功能的存在和(准确)划分可能根据实际设备和应用的不同而有所不同,这对技术人员来说是显而易见的。
编码器20(例如视频编码器20)或解码器30(例如视频解码器30),或编码器20和解码器30两者可以通过如图1B所示的处理电路如一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、视频译码专用处理器或其任意组合来实现。编码器20可以通过处理电路46实现,以包含参照图2所示的编码器20和/或本文描述的任何其它编码器系统或子系统所讨论的各种模块。解码器30可以通过处理电路46实现,以包含参照图3所示的解码器30和/或本文描述的任何其它解码器系统或子系统所讨论的各种模块。处理电路可以用于执行下文描述的各种操作。如图5所示,如果部分技术通过软件实施,则设备可以将该软件的指令存储在合适的非瞬时性计算机可读存储介质中,通过一个或多个处理器在硬件中执行所述指令,从而执行本发明的技术。例如,如图1B所示,视频编码器20和视频解码器30中的任一者可以作为组合编解码器(encoder/decoder,CODEC)的一部分集成在单个设备中。
源设备12和目的地设备14可以包括多种设备中的任一种,包括任意类型的手持设备或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板或平板电脑、相机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备(如内容业务服务器或内容分发服务器)、广播接收设备、广播发射设备等,且可以使用或不使用任意类型的操作系统。在一些情况下,源设备12和目的地设备14可配备用于无线通信的组件。因此,源设备12和目的地设备14可以是无线通信设备。
在一些情况下,图1A所示的视频译码系统10仅是示例性的,并且本申请的技术可适用于视频译码设置(例如,视频编码或视频解码),这些设置未必包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据从本地存储器检索,在网络上流式传输等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以从存储器中检索数据并对数据进行解码。在一些示例中,由互不通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的设备来执行编码和解码。
为便于描述,例如,参考由ITU-T视频编码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(Motion Picture Experts Group,MPEG)的视频编码联合协作团队(Joint Collaboration Team on Video Coding,JCT-VC)开发的高效视频编码(High-Efficiency Video Coding,HEVC)、通用视频编码(Versatile video coding,VVC)参考软件、下一代视频编码标准来描述本发明实施例。本领域普通技术人员应理解本发明实施例不限于适用HEVC或VVC标准。
编码器和编码方法
图2为用于实现本申请技术的示例性视频编码器20的示意性框图。在图2的示例中,视频编码器20包括输入端201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、模式选择单元260、熵编码单元270和输出端272(或输出接口272)。模式选择单元260可以包括帧间预测单元244、帧内预测单元254和分割单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(未示出)。图2所示的视频编码器20也可以称为混合型视频编码器或基于混合型视频编解码器的视频编码器。
残差计算单元204、变换处理单元206、量化单元208和模式选择单元260组成编码器20的前向信号路径;反量化单元210、逆变换处理单元212、重建单元214、缓冲区216、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元244和帧内预测单元254组成视频编码器20的后向信号路径。其中,视频编码器20的后向信号路径对应于解码器(参见图3所示的解码器30)的信号路径。反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。
图像和图像分割(图像和块)
编码器20可以用于通过输入端201等接收图像17(或图像数据17),例如,形成视频或视频序列的图像序列中的图像。接收到的图像或图像数据还可以是经预处理的图像19(或经预处理的图像数据19)。为简单起见,以下描述中称为图像17。图像17还可以称为当前图像或待译码图像(尤其在视频译码中,为区分当前图像和其它图像,其它图像例如为同一视频序列即同时包括当前图像的视频序列中的先前经编码的图像和/或先前经解码的图像)。
(数字)图像是或可以认为是具有强度值的样本组成的二维阵列或矩阵。该阵列中的样本也可以称为像素(pixel/pel)(图像元素的简称)。阵列或图像在水平方向和垂直方向(或轴线)上的样本的数量决定了该图像的大小和/或分辨率。为了表示颜色,通常采用三个颜色分量,即该图像可以表示为或者可以包括三个样本阵列。在RBG格式或颜色空间中,图像包括对应的红色、绿色、蓝色样本阵列。然而,在视频译码中,每个像素通常以亮度和色度格式或颜色空间表示,例如,YCbCr格式,其包括用Y表示的亮度分量(有时也用L表示)和用Cb和Cr表示的两个色度分量。亮度(或简称luma)分量Y表示亮度或灰度级强度(例如,在灰度级图像中),而两个色度(或简称chroma)分量Cb和Cr表示色度或颜色信息分量。相应地,YCbCr格式的图像包括亮度样本值(Y)的亮度样本阵列和色度值(Cb和Cr)的两个色度样本阵列。RGB格式的图像可以转换或变换为YCbCr格式,反之亦然。该过程也称为颜色变换或转换过程。如果图像是黑白的,则该图像可以只包括亮度样本阵列。相应地,图像可以为例如黑白格式的亮度样本阵列或4:2:0、4:2:2和4:4:4彩色格式的亮度样本阵列和两个对应的色度样本阵列。
在视频编码器20的实施例中,视频编码器20可以包括图像分割单元(图2中未示出),用于将图像17分割成多个(通常不重叠)图像块203。这些块也可以称为根块或宏块(H.264/AVC标准)或称为编码树块(coding tree block,CTB)或编码树单元(coding treeunit,CTU)(H.265/HEVC和VVC标准)。图像分割单元可以用于:对视频序列中的所有图像使用相同的块大小,并使用对应网格定义块大小,或者在图像或图像子集或图像组之间改变块大小,并将每个图像分割成对应的块。
在其它实施例中,视频编码器可以用于直接接收图像17的图像块203,例如,组成图像17的一个、若干个或所有图像块。图像块203也可以称为当前图像块或待译码图像块。
与图像17一样,图像块203同样是或可以认为是具有强度值(样本值)的样本组成的二维阵列或矩阵,但是图像块203的尺寸要比图像17的尺寸小。换句话说,图像块203可以包括一个样本阵列(例如,图像17是黑白图像时,图像块203包括一个亮度阵列;图像17是彩色图像时,图像块203包括一个亮度阵列或一个色度阵列),或者包括三个样本阵列(例如,图像17是彩色图像时,图像块203包括一个亮度阵列和两个色度阵列),或者包括由所使用的颜色格式决定的任何其它数量和/或类型的阵列。图像块203在水平方向和垂直方向(或轴线)上的样本的数量限定了图像块203的大小。相应地,某图像块可以为例如M×N(M列×N行)个样本阵列,或M×N个变换系数阵列等。
在图2所示的视频编码器20的实施例中,视频编码器20可以用于对图像17进行逐块编码,例如,对每个图像块203进行编码和预测。
残差计算
残差计算单元204可以用于根据图像块203和预测块265(下文将详细描述预测块265)通过如下方式计算残差块205(也称为残差205),例如,逐样本(逐像素)从图像块203的样本值中减去预测块265的样本值,得到样本域中的残差块205。
变换
变换处理单元206可以用于对残差块205的样本值执行离散余弦变换(discretecosine transform,DCT)或离散正弦变换(discrete sine transform,DST)等变换,以获得变换域中的变换系数207。变换系数207也可以称为变换残差系数,表示变换域中的残差块205。
变换处理单元206可以用于执行DCT/DST的整数近似,例如,针对H.265/HEVC指定的变换。与正交DCT变换相比,该整数近似通常基于某一因子进行缩放。使用其它缩放因子作为变换过程的一部分,以维持经前向变换和逆变换处理的残差块的范数。缩放因子通常是基于某些约束条件来选择的,例如缩放因子是用于移位运算的2的幂、变换系数的位深度、准确性与实施成本之间的折衷等。例如,在编码器20侧通过逆变换处理单元212等为逆变换(在视频解码器30侧通过逆变换处理单元312等为对应的逆变换)指定具体的缩放因子,并且相应地,可以在编码器20侧通过变换处理单元206等为前向变换指定对应的缩放因子。
在视频编码器20的实施例中,视频编码器20(对应地,变换处理单元206)可以用于,例如,直接输出或经熵编码单元270进行编码或压缩后输出一种或多种变换类型的变换参数,使得视频解码器30可以接收并使用变换参数进行解码。
量化
量化单元208用于通过执行标量量化或矢量量化等对变换系数207进行量化,以获得量化系数209。量化系数209也可以称为经量化的变换系数209或经量化的残差系数209。
量化过程可以减小与部分或全部变换系数207相关的位深度。例如,可以在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m,可以通过调整量化参数(quantization parameter,QP)修改量化程度。例如,对于标量量化,可以执行不同的缩放来实现更精细或更粗略的量化。量化步长越小,量化越精细;量化步长越大,量化越粗略。量化参数(quantization parameter,QP)可以用于表示合适的量化步长。例如,量化参数可以为合适的量化步长的预定义集合的索引。例如,小的量化参数可以对应精细的量化(小的量化步长),大的量化参数可以对应粗略的量化(大的量化步长),反之亦然。量化操作可以包括除以量化步长,而反量化单元210等执行的相应解量化或逆解量化操作可以包括乘以量化步长。在一些实施例中,根据如HEVC等一些标准,可以使用量化参数来确定量化步长。通常,可以根据量化参数使用包括除法运算的等式的定点近似来计算量化步长。可以引入其它缩放因子进行量化和解量化,用于恢复残差块的范数。由于在用于量化步长和量化参数的等式的定点近似中使用了缩放,所以可能修改了该残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化中的缩放。或者,可以使用自定义的量化表并在如码流中将自定义的量化表从编码器指示(signal)到解码器。量化是有损操作,其中量化步长越大,损耗越大。
在视频编码器20的实施例中,视频编码器20(对应地,量化单元208)可以用于,例如,直接输出或经熵编码单元270进行编码后输出量化参数(quantization parameter,QP),使得视频解码器30可以接收并使用量化参数进行解码。
反量化
反量化单元210用于对量化系数执行与量化单元208所执行的量化相反的反量化,以获得解量化系数211,例如,根据或使用与量化单元208相同的量化步长执行与量化单元208所执行的量化方案相反的反量化方案。解量化系数211也可以称为解量化残差系数211,其对应于变换系数207,但是由于量化造成损耗,解量化系数211通常与变换系数不完全相等。
逆变换
逆变换处理单元212用于执行与变换处理单元206所执行的变换相反的逆变换,例如,逆离散余弦变换(discrete cosine transform,DCT)或逆离散正弦变换(discretesine transform,DST),以获得样本域中的重建残差块213(或对应的解量化系数213)。重建残差块213也可以称为变换块213。
重建
重建单元214(例如,加法器或求和器214)用于将变换块213(即重建残差块213)与预测块265相加,例如,将重建残差块213的样本值和预测块265的样本值逐样本进行相加,得到样本域中的重建块215。
滤波
环路滤波器单元220(或简称为“环路滤波器”220)用于对重建块215进行滤波,得到滤波块221,或通常用于对重建样本进行滤波,得到滤波样本值。例如,环路滤波单元用于平滑像素的突变或者提高视频质量。环路滤波器单元220可以包括一个或多个环路滤波器,如去块效应滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptive loop filter,ALF)、锐化滤波器、平滑滤波器、协作滤波器或其任意组合。尽管环路滤波器单元220在图2中示出为环内滤波器,但在其它配置中,环路滤波器单元220可以实现为环后滤波器。滤波块221也可以称为滤波重建块221。
在视频编码器20的实施例中,视频编码器20(对应地,环路滤波器单元220)可以用于,例如直接输出或经熵编码单元270进行编码后输出环路滤波参数(例如样本自适应偏移信息),使得解码器30可以接收并使用相同的环路滤波参数或不同的环路滤波器进行解码。
解码图像缓冲区
解码图像缓冲区(decoded picture buffer,DPB)230可以是存储参考图像或通常存储参考图像数据的存储器,以在视频编码器20对视频数据进行编码时使用。DPB 230可以由多种存储器设备中的任一者形成,例如包含同步DRAM(synchronous DRAM,SDRAM)的动态随机存取存储器(dynamic random access memory,DRAM)、磁阻式RAM(magnetoresistiveRAM,MRAM)、电阻式RAM(resistive RAM,RRAM)或其它类型的存储器设备。解码图像缓冲区(decoded picture buffer,DPB)230可以用于存储一个或多个滤波块221。解码图像缓冲区230还可以用于存储同一当前图像或如先前重建图像等的不同图像的其它先前滤波块,例如先前重建和滤波的块221,且可以提供完整的先前重建图像即经解码的图像(以及对应的参考块和样本)和/或部分重建的当前图像(以及对应的参考块和样本),例如,以进行帧间预测。解码图像缓冲区230还可以用于存储一个或多个未经滤波的重建块215,或通常存储未经滤波的重建样本,例如,未经环路滤波单元220滤波的重建块215,或未进行任何其它处理的重建块或重建样本。
模式选择(分割和预测)
模式选择单元260包括分割单元262、帧间预测单元244和帧内预测单元254。模式选择单元260用于从解码图像缓冲区230或其它缓冲区(例如,行缓冲区,图中未显示)接收或获得原始图像数据如原始块203(当前图像17的当前块203),以及重建图像数据如同一(当前)图像和/或一个或多个先前解码的图像的经滤波和/或未经滤波的重建样本或重建块。重建图像数据用作帧间预测或帧内预测等预测所需的参考图像数据,用于获得预测块265或预测值265。
模式选择单元260可以用于为当前块预测模式(包括不分割模式)和预测模式(例如帧内预测模式或帧间预测模式)确定或选择分割模式,并生成对应的预测块265,所述预测块用于残差块205的计算以及重建块215的重建。
在模式选择单元260的实施例中,模式选择单元260可以用于选择分割和预测模式(例如,从模式选择单元260支持或可用的模式中选择)。分割和预测模式提供最佳匹配,即最小残差(最小残差意味着更好的压缩性能,以便进行发送或存储),或提供最小指示开销(最小指示开销意味着更好的压缩性能,以便进行发送或存储),或者同时考虑以上两者或在以上两者中取得平衡。模式选择单元260可以用于根据率失真优化(rate distortionoptimization,RDO)确定分割和预测模式,即选择提供最小率失真的预测模式。本文中,术语“最佳”、“最小”、“最优”等不一定指总体上“最佳”、“最小”、“最优”等,也可以指满足终止或选择标准的情况,例如,某个值超过或低于阈值或其它限制,可能导致“次优选择”,但会降低复杂度和处理时间。
分割单元262可以用于将块203分割成更小的块部分或子块(子块再次形成块),例如,通过迭代地使用四叉树分割(quad-tree partitioning,QT)、二叉树分割(binary-treepartitioning,BT)或三叉树分割(triple-tree partitioning,TT)或其任何组合,并用于例如对每个块部分或子块进行预测。其中,模式选择包括选择经分割的块203的树结构以及选择应用于每个块部分或子块的预测模式。
下文将详细地描述由示例性视频编码器20执行的分割处理(例如,由分割单元260执行)和预测处理(例如,由帧间预测单元244和帧内预测单元254执行)。
分割
分割单元262可以将当前块203分割(或划分)为较小的部分,例如方形或矩形小块。这些小块(也可以称为子块)可进一步分割为更小的部分。这也称为树分割或分层树分割,其中,在根树层级0(分层0、深度0)等的根块可以递归地分割为至少两个下一较低树层级的块,例如树层级1(分层1、深度1)的节点。这些块又可以分割为至少两个下一较低层级的块,例如树层级2(分层2、深度2)等,直到由于满足结束标准而结束分割,例如达到最大树深度或最小块大小。未进一步分割的块也称为树的叶块或叶节点。分割为两个部分的树称为二叉树(binary-tree,BT),分割为三个部分的树称为三叉树(ternary-tree,TT),分割为四个部分的树称为四叉树(quad-tree,QT)。
如上所述,本文中使用的术语“块”可以是图像的一部分,特别是正方形或矩形部分。例如,参照HEVC和VVC,块可以为或可以对应于编码树单元(coding tree unit,CTU)、编码单元(coding unit,CU)、预测单元(prediction unit,PU)和变换单元(transform unit,TU),和/或对应于对应的块,例如,编码树块(coding tree block,CTB)、编码块(codingblock,CB)、变换块(transform block,TB)或预测块(prediction block,PB)。
例如,编码树单元(coding tree unit,CTU)可以为或可以包括具有3个样本阵列的图像中的亮度样本的一个CTB、该图像中的色度样本的两个对应CTB、或黑白图像中的或使用3个独立颜色平面和语法结构进行译码的图像中的样本的一个CTB。这些语法结构用于对样本进行译码。相应地,编码树块(coding tree block,CTB)可以为N×N个样本块,其中,N可以设为某个值,使得一个分量被划分为CTB,这就是分割。编码单元(coding unit,CU)可以为或可以包括具有3个样本阵列的图像中的亮度样本的一个编码块、该图像中的色度样本的两个对应编码块,或者黑白图像中的或使用3个单独颜色平面和语法结构进行译码的图像中的样本的一个编码块。这些语法结构用于对样本进行译码。相应地,编码块(codingblock,CB)可以为M×N个样本块,其中,M、N可以设为某个值,使得一个CTB被划分为编码块,这就是分割。
在一些实施例中,例如根据HEVC,可以通过表示为编码树的四叉树结构将编码树单元(coding tree unit,CTU)划分为多个CU。在CU级作出是否使用帧间(时间)预测或帧内(空间)预测对图像区域进行译码的决定。每个CU可以根据PU划分类型进一步划分为1个、2个或4个PU。一个PU内执行相同的预测过程,并以PU为单位向解码器发送相关信息。在根据PU划分类型执行预测过程得到残差块之后,可以根据类似于用于CU的编码树类似的另一种四叉树结构将CU分割成变换单元(transform unit,TU)。
在一些实施例中,例如根据当前开发的最新视频编码标准(称为通用视频编码(Versatile Video Coding,VVC)),使用四叉树结合二叉树(quad-tree and binary-tree,QTBT)分割来分割编码块。在QTBT块结构中,一个CU可以为正方形或矩形形状。例如,编码树单元(coding tree unit,CTU)首先通过四叉树结构进行分割。四叉树叶节点进一步通过二叉树或三叉树结构进行分割。分割树叶节点称为编码单元(coding unit,CU),这样的分段用于预测和变换处理,无需任何进一步的分割。这表示在QTBT编码块结构中,CU、PU和TU的块大小相同。与此同时,可以将三叉树分割等多重分割与QTBT块结构一起使用。
在一个示例中,视频编码器20中的模式选择单元260可以用于执行本文中描述的分割技术的任意组合。
如上所述,视频编码器20用于从(预定的)预测模式集合中确定或选择最佳或最优的预测模式。该预测模式集合可以包括例如帧内预测模式和/或帧间预测模式等。
帧内预测
帧内预测模式集合可以包括35种不同的帧内预测模式,例如像DC(或均值)模式和平面模式的非方向性模式或如HEVC中定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如像DC(或均值)模式和平面模式的非方向性模式或如VVC中定义的方向性模式。
帧内预测单元254用于根据帧内预测模式集合中的帧内预测模式,使用同一个当前图像的相邻块的重建样本来生成帧内预测块265。
帧内预测单元254(或总称为模式选择单元260)还用于将帧内预测参数(或总称为表示块的选定帧内预测模式的信息)以语法元素266的形式输出到熵编码单元270,以包含到经编码的图像数据21中,使得(例如)视频解码器30可以接收并使用预测参数进行解码。
帧间预测
(可能的)帧间预测模式集合取决于可用的参考图像(即如上述存储在DBP 230中的至少部分经解码的图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或只使用参考图像的一部分(例如当前块的区域周围的搜索窗区域)来搜索最佳匹配参考块,和/或例如取决于是否进行像素插值(例如二分之一/半像素插值和/或四分之一像素插值)。
除了上述预测模式之外,还可以使用跳过模式和/或直接模式。
帧间预测单元244可以包括运动估计(motion estimation,ME)单元和运动补偿(motion compensation,MC)单元(两者均未在图2中示出)。运动估计单元可以用于接收或获取图像块203(当前图像17的当前图像块203)和经解码的图像231,或者至少一个或多个先前重建块(例如一个或多个其它/不同的先前解码的图像231的重建块),以进行运动估计。例如,视频序列可以包括当前图像和先前解码的图像231,换句话说,当前图像和先前解码的图像231可以为组成视频序列的一序列图像的一部分或组成该序列的图像。
例如,编码器20可以用于从多个其它图像中的同一个或不同图像的多个参考块中选择一个参考块,并将参考图像(或参考图像索引)和/或参考块的位置(x坐标、y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元。这种偏移也称为运动矢量(motion vector,MV)。
运动补偿单元用于获取如接收帧间预测参数,并根据或使用帧间预测参数进行帧间预测,得到帧间预测块265。由运动补偿单元执行的运动补偿可以包括根据通过运动估计确定的运动/块矢量来提取或生成预测块,还可以包括对子像素精度进行插值。进行插值滤波时,可以根据已知像素样本生成其它像素样本,从而可能增加可用于对图像块进行译码的候选预测块的数量。下文将更详细地描述:可以根据运动矢量精度使用一个或多个替代插值滤波器进行插值滤波。接收到当前图像块的PU对应的运动矢量后,运动补偿单元可以在其中一个参考图像列表中定位所述运动矢量所指向的预测块。
运动补偿单元还可以生成与块和视频条带关联的语法元素,以供视频解码器30在解码视频条带的图像块时使用。
熵编码
熵编码单元270用于将熵编码算法或方案(例如可变长度编码(variable lengthcoding,VLC)方案、上下文自适应VLC(context adaptive VLC scheme,CAVLC)方案、算术编码方案、二值化,上下文自适应二进制算术编码(context adaptive binary arithmeticcoding,CABAC)、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,SBAC)、概率区间分割熵(probability intervalpartitioning entropy,PIPE)编码或其它熵编码方法或技术)等应用于或不应用于(无压缩)量化系数209、帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素,以获得可以通过输出端272以经编码码流21等形式输出的经编码的图像数据21,使得如视频解码器30等可以接收并使用这些参数进行解码。编码码流21可以传输到视频解码器30,或者存储在存储器中,以进行后续传输或以供视频解码器30进行后续检索。
视频编码器20的其它结构变化可以用于对视频流进行编码。例如,基于非变换的编码器20可以在没有变换处理单元206的情况下为某些块或帧直接量化残差信号。在另一种实现方式中,编码器20可以包括组合成单个单元的量化单元208和反量化单元210。
解码器和解码方法
图3示出了用于实现本申请技术的示例性视频解码器30。视频解码器30用于接收,如由编码器20编码的经编码图像数据21(例如,编码码流21),得到经解码的图像331。经编码的图像数据或码流包括用于解码经编码的图像数据的信息,例如表示经编码的视频条带中的图像块的数据和相关的语法元素。
在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如求和器314)、环路滤波器320、解码图像缓冲区(decoded picturebuffer,DBP)330、帧间预测单元344和帧内预测单元354。帧间预测单元344可以为或可以包括运动补偿单元。在一些示例中,视频解码器30可以执行大体上与结合图2所示的视频编码器100所描述的编码过程相反的解码过程。
如编码器20所述,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元344和帧内预测单元354组成视频编码器20的“内置解码器”。相应地,反量化单元310在功能上可以与反量化单元110相同,逆变换处理单元312在功能上可以与逆变换处理单元212相同,重建单元314在功能上可以与重建单元214相同,环路滤波器320在功能上可以与环路滤波器220相同,解码图像缓冲区330在功能上可以与解码图像缓冲区230相同。因此,视频编码器20的相应单元和功能的解释相应地适用于视频解码器30的相应单元和功能。
熵解码
熵解码单元304用于解析码流21(或总称为经编码的图像数据21)并对经编码的图像数据21执行熵解码等,得到量化系数309和/或经解码的编码参数(图3中未示出)等,例如帧间预测参数(例如参考图像索引和运动矢量)、帧内预测参数(例如帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数和/或其它语法元素中的任意一个或全部。熵解码单元304可以用于使用与结合编码器20中的熵编码单元270所描述的编码方案对应的解码算法或方案。熵解码单元304还可以用于向模式选择单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,以及向解码器30的其它单元提供其它参数。视频解码器30可以接收视频条带级和/或视频块级的语法元素。
反量化
反量化单元310可以用于从经编码的图像数据21(例如通过熵解码单元304等解析和/或解码)接收量化参数(quantization parameter,QP)(或总称为反量化相关信息)和量化系数,并根据这些量化参数对经解码的量化系数309进行反量化,以获得解量化系数311。解量化系数311也可以称为变换系数311。反量化过程可以包括使用视频编码器20为视频条带中的每个视频块确定的量化参数来确定量化程度,同样也确定需要进行的反量化的程度。
逆变换
逆变换处理单元312可以用于接收解量化系数311(也称为变换系数311),并对解量化系数311进行变换,以获得样本域中的重建残差块213。重建残差块213也可以称为变换块313。所述变换可以为逆变换,例如逆DCT、逆DST、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于从经编码的图像数据21接收变换参数或对应的信息(例如,通过熵解码单元304等解析和/或解码),以确定将对解量化系数311进行的变换。
重建
重建单元314(例如加法器或求和器314)可以用于通过如下方式将重建残差块313添加到预测块365,例如,将重建残差块313的样本值和预测块365的样本值相加,以得到样本域中的重建块315。
滤波
环路滤波器单元320(在译码环路中或在译码环路之后)用于对重建块315进行滤波,得到滤波块321,从而平滑像素的突变或以其它方式提高视频质量等。环路滤波器单元320可以包括一个或多个环路滤波器,如去块效应滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptive loop filter,ALF)、锐化滤波器、平滑滤波器、协作滤波器或其任意组合。尽管环路滤波器单元320在图3中示出为环内滤波器,但在其它配置中,环路滤波器单元320可以实现为环后滤波器。
解码图像缓冲区
将一个图像的经解码视频块321存储在解码图像缓冲区330中,解码图像缓冲区330存储经解码的图像331作为参考图像,以便对其它图像进行后续运动补偿和/或进行相应输出以进行显示。
解码器30用于通过输出端312等输出经解码的图像311,以向用户呈现或供用户观看。
预测
帧间预测单元344在功能上可以与帧间预测单元244(特别是运动补偿单元)相同,帧内预测单元354在功能上可以与帧内预测单元254相同,并根据从经编码的图像数据21(例如通过熵解码单元304等解析和/或解码)接收的分割和/或预测参数或相应信息来决定划分或分割并进行预测。模式选择单元360可以用于根据重建图像、重建块或相应的样本(经过滤波或未经滤波)按块执行预测(帧内预测或帧间预测),以得到预测块365。
当视频条带译码为经帧内译码(intra coded)的(I)条带时,模式选择单元360中的帧内预测单元354用于根据指示的帧内预测模式和来自当前图像的先前解码块的数据为当前视频条带的图像块生成预测块365。当视频图像译码为经帧间译码(inter coded)的(B或P)条带时,模式选择单元360中的帧间预测单元344(例如运动补偿单元)用于根据运动矢量和从熵解码单元304接收到的其它语法元素为当前视频条带的视频块生成预测块365。对于帧间预测,可以根据其中一个参考图像列表内的其中一个参考图像产生这些预测块。视频解码器30可以根据存储在DPB 330中的参考图像,使用默认构建技术来构建参考帧列表0和参考帧列表1。
模式选择单元360用于通过解析运动矢量和其它语法元素,确定当前视频条带的视频块的预测信息,并使用预测信息为正在解码的当前视频块产生预测块。例如,模式选择单元360使用接收到的一些语法元素确定用于对视频条带的视频块进行译码的预测模式(例如帧内预测或帧间预测)、帧间预测条带类型(例如B条带、P条带或GPB条带)、用于条带的一个或多个参考图像列表的构建信息、用于条带的每个经帧间编码的视频块的运动矢量、用于条带的每个经帧间译码的视频块的帧间预测状态,以及其它信息,以对当前视频条带中的视频块进行解码。
视频解码器30的其它变型可以用于对经编码的图像数据21进行解码。例如,解码器30能够在没有环路滤波器单元320的情况下产生输出视频流。例如,基于非变换的解码器30可以在没有逆变换处理单元312的情况下为某些块或帧直接反量化残差信号。在另一种实现方式中,视频解码器30可以包括组合成单个单元的反量化单元310和逆变换处理单元312。
应当理解的是,在编码器20和解码器30中,可以针对当前步骤的处理结果进行进一步处理,然后输出到下一步骤。例如,在插值滤波、运动矢量推导或环路滤波之后,可以针对插值滤波、运动矢量推导或环路滤波的处理结果进一步进行如修正(clip)或移位(shift)等操作。
需要说明的是,可以对当前块的推导运动矢量(包括但不限于仿射模式下的控制点运动矢量、仿射模式下的子块运动矢量、平面模式下的子块运动矢量、ATMVP模式下的子块运动矢量、时域运动矢量等)执行进一步的操作。例如,根据运动矢量的表示位将该运动矢量的值限制在预定义范围内。如果运动矢量的表示位为bitDepth,则该范围为–2^(bitDepth–1)~2^(bitDepth–1)–1,其中“^”符号表示幂次方。例如,如果bitDepth设置为16,则该范围为–32768~32767;如果bitDepth设置为18,则该范围为–131072~131071。
图4为本发明实施例提供的视频译码设备400的示意图。视频译码设备400适用于实现本文描述的公开实施例。在一个实施例中,视频编码设备400可以是解码器,例如图1A中的视频解码器30,也可以是编码器,例如图1A中的视频编码器20。
视频译码设备400包括:入端口410(或输入端口410)和接收单元(receiver unit,Rx)420,用于接收数据;处理器、逻辑单元或中央处理单元(central processing unit,CPU)430,用于处理数据;发送单元(transmitter unit,Tx)440和出端口450(或输出端口450),用于发送数据;存储器460,用于存储数据。视频译码设备400还可以包括与入端口410、接收单元420、发送单元440和出端口450耦合的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用作光信号或电信号的出口或入口。
处理器430通过硬件和软件实现。处理器430可以实现为一个或多个CPU芯片、核(例如,多核处理器)、FPGA、ASIC以及DSP。处理器430与入端口410、接收单元420、发送单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470实现上述描述的公开实施例。例如,译码模块470执行、处理、准备或提供各种译码操作。因此,将译码模块470包含在内,这为视频译码设备400的功能提供了实质性的改进,并且影响了视频译码设备400到不同状态的转换。或者,以存储在存储器460中并由处理器430执行的指令来实现译码模块470。
存储器460可以包括一个或多个磁盘、磁带机以及固态硬盘,并且可以用作溢出数据存储设备,以在选择程序来执行时存储这些程序以及存储在执行程序过程中读取的指令和数据。例如,存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(staticrandom-access memory,SRAM)。
图5为示例性实施例提供的装置500的简化框图。装置500可以用作图1中的源设备12和目的地设备14中的任一者或两者。
装置500中的处理器502可以是中央处理器。或者,处理器502可以是现有的或今后将开发出的能够操控或处理信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器502等单个处理器来实现所公开的实现方式,但使用多于1个处理器实现时可以提高速度和效率。
在一种实现方式中,装置500中的存储器504可以是只读存储器(read-onlymemory,ROM)设备或随机存取存储器(random access memory,RAM)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可以包括操作系统508和应用程序510,应用程序510包括至少一个程序,所述至少一个程序使得处理器502执行本文中所描述的方法。例如,应用程序510可以包括应用1至N,其包括执行本文所述方法的视频译码应用。
装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与触敏元件相结合的触敏显示器,该触敏显示器能够用于感测触摸输入。显示器518可以通过总线512与处理器502耦合。
虽然装置500的总线512在图中示也为单个总线,但是总线512可以有多个。此外,辅助存储器514可以直接与装置500中的其它组件耦合或可以通过网络访问,并且可以包括单个集成单元(例如一个存储卡)或多个单元(例如多个存储卡)。因此,装置500可以具有各种各样的配置。
下文将更详细地描述本文中呈现的概念。
运动矢量预测
当前的VVC设计中采用了空间运动矢量预测。空间运动矢量预测是指在帧间预测过程中利用空间相邻块的运动信息预测当前帧间块的运动矢量。具体地,在融合模式和跳过模式中使用当前块的邻接的空间相邻块的运动矢量。在融合模式和跳过模式中,可以使用所谓的HMVP候选。HMVP候选包括基于历史的空间相邻块的运动信息。“基于历史”是指使用了在当前块之前按照解码顺序排列的块的运动信息。这些先前块与当前块来自同一个帧,并且位于当前块周围的一些空间邻域中,但不一定是像通用空间融合候选一样的邻接块。
融合候选列表的构建
融合候选列表是基于以下候选构建的:
·最多四个空间融合候选,其从五个空间相邻块推导得到,如图6所示;
·一个时间融合候选,其从两个时间并置块推导得到;
·其它融合候选,包括组合的双向预测候选和零运动矢量候选。下文将结合图12更加详细地描述融合候选列表的构建。
空间候选
融合候选列表中的第一候选集合包括图6所示的空间相邻块。对于帧间预测块的融合,通过依次检查A1、B1、B0、A0和B2,按此顺序在融合列表中插入最多四个候选。在将相邻块的所有运动数据作为融合候选之前,执行一些额外的冗余检查,而不是仅检查相邻块是否可用且是否包含运动信息。这些冗余检查可以根据以下两种不同的目的分为两类:
·避免HMI列表中包括具有冗余运动数据的候选,以及
·防止融合两个部分(partition),这些部分可以通过其它方式表达,从而产生冗余语法。
基于历史的运动矢量预测
为了进一步改进运动矢量预测,提出了使用非邻接CU的运动信息(运动信息包括参考图像索引和运动矢量)的技术。其中一项技术即是基于历史的运动矢量预测(history-based motion vector prediction,HMVP)。HMVP使用由先前编码的CU的运动信息组成的查找表(look-up table,LUT)。HMVP方法基本上由两个主要部分组成:
1.HMVP查找表(HMVP LUT)的构建和更新方法如图10和图11所示。
2.HMVP LUT用于构建融合候选列表(或AMVP候选列表),如图12所示。
HMVP LUT构建和更新方法
在编码和/或解码过程中维护LUT。存在新的条带时,空出该LUT。每当对当前CU进行帧间译码时,相关的运动信息被添加到该表的最后一个表项中,作为新的HMVP候选。LUT的大小(记作N)是HMVP方法中的一个参数。如果先前编码的CU的HMVP候选的数量大于此LUT的大小,则应用查找表更新方法,使得此LUT总是包含不超过N个最新的先前编码的运动候选。因此,提供两种查找表更新方法:
1.先进先出(First-In-First-Out,FIFO)LUT更新方法,如图10所示;
2.约束FIFO LUT更新方法,如图11所示。
FIFO LUT更新方法
FIFO LUT更新方法中,在插入新的候选之前,将最早的候选(位于查找表的第0表项)从表查找中删除。这个过程如图10所示。在该图中,H0是最早的HMVP候选(即第0个HMVP候选),X是新的HMVP候选。
这种更新方法的复杂度相对较小,但是应用该方法时,一些LUT元素可能相同(即包含相同的运动信息)。因此,LUT中的数据可能是冗余的,并且LUT中的运动信息多样性比删除重复候选的方法中的运动信息多样性差。
约束FIFO LUT更新方法
为了进一步提高译码效率,提供了一种约束FIFO LUT更新方法。该方法中,在向查找表中插入新的HMVP候选之前,进行冗余检查。冗余检查是指查找新的候选X的运动信息是否与LUT中已经存在的候选Hm包含的运动信息相同。如果未找到该候选Hm,则使用简单的FIFO方法;否则,执行以下过程:
1.将位于Hm之后的所有LUT表项向左移动一个位置(即向查找表开始的方向),从而将候选Hm从查找表中删除,同时释放LUT末尾的一个位置。
2.将新的候选X添加到查找表的第一个空出的位置。
图11示出了使用约束FIFO LUT更新方法的示例。
使用HMVP LUT进行运动矢量译码
HMVP候选可以用于融合候选列表的构建过程和/或AMVP候选列表的构建过程中。
使用HMVP LUT构建融合候选列表
在一些示例中,在时间融合候选之后将HMVP候选从最后一个表项到第一个表项的顺序(例如,HN–1、HN–2、……、H0)插入到融合列表中。LUT遍历顺序如图12所示。如果HMVP候选与融合列表中已经存在的某个候选相同,则该HMVP候选不会被添加到HMVP列表中。由于融合列表的大小有限,某些HMVP候选,特别是位于LUT开始位置的HMVP候选,也可能不会用于当前CU的融合列表的构建过程中。
在AMVP候选列表的构建过程中使用HMVP LUT
为融合模式构建的HMVP LUT也可以用于构建AMVP候选列表。区别在于,该LUT中只有少量的表项被用于构建AMVP候选列表。更具体地,仅使用HMVP LUT中的最后M个表项(例如,M等于4)。在AMVP候选列表的构建过程中,在TMVP候选之后将HMVP候选从最后一个表项到第(N–K)个表项的顺序(即以图12所示所示的HN–1、HN–2、……、HN–K的LUT遍历顺序)插入到AMVP候选列表中。
仅使用具有与AMVP目标参考图像相同的参考图像的HMVP候选。如果HMVP候选与HMI列表中已经存在的一个候选相同,则不会使用该HMVP候选构建AMVP候选列表。由于AMVP候选列表的大小有限,某些HMVP候选可能不会用于当前CU的AMVP列表的构建过程中。
可切换插值滤波器
平动帧间预测块的运动矢量差可以以3种不同的精度(即1/4像素精度、全像素精度、4像素精度)进行编码。每个分数位置使用的插值滤波器(interpolation filter,IF)是固定的。在本发明中,可切换插值滤波器(switchable interpolation filter,SIF)技术允许使用用于半像素位置的一个或两个替代亮度插值滤波器。可用的亮度插值滤波器之间可以进行CU级的切换。为了减少指示开销,该切换取决于所使用的运动矢量精度。为实现此目的,扩展了自适应运动矢量分辨率(Adaptive Motion Vector Resolution,AMVR)方案,以支持半像素亮度运动矢量精度。只有在采用半像素运动矢量精度模式的情况下,替代半像素插值滤波器才可以被应用,并且替代半像素插值滤波器由指示使用哪个插值滤波器的附加语法元素来表示。在包含空间融合候选的跳过模式或融合模式中,该语法元素的值可以从相邻块继承。
半像素AMVR模式
引入了一种额外的用于非仿射非融合帧间译码CU的AMVR模式,该模式允许以半像素精度指示运动矢量差。当前的VVC草案的现有AMVR方案通过以下方式直接扩展:直接在语法元素amvr_flag之后,如果amvr_flag==1,则存在一个新的上下文建模二进制语法元素hpel_amvr_flag,表示当hpel_amvr_flag==1时使用新的半像素AMVR模式。否则,即当hpel_amvr_flag==0时,根据如当前VVC草案中一样的语法元素amvr_precision_flag的指示选择全像素AMVR模式或4像素AMVR模式。
替代亮度半像素插值滤波器
对于使用半像素运动矢量精度(即半像素AMVR模式)的非仿射非融合帧间译码CU,可以基于新语法元素if_idx(插值滤波器索引)的值在HEVC/VVC半像素亮度插值滤波器和一个或多个替代半像素插值滤波器之间进行切换。语法元素if_idx仅在采用半像素AMVR模式的情况下进行指示。当跳过模式/融合模式中使用空间融合候选时,插值滤波器索引的值从相邻块继承。
可以理解的是,运动矢量的分数位置例如可以由分数样本单元(xFracL,yFracL)中的亮度位置表示。所选的融合候选的运动矢量可以由refMvLX[0]和refMvLX[1]表示,其中mvLX=mvL0或mvL1。
在一个示例中,
xFracL=refMvLX[0]&15 (8-738)
yFracL=refMvLX[1]&15 (8-739)
如果xFracL(或yFracL)等于零(是指MV指向整数位置),则不进行插值。否则,(xFracL在[1,15]的范围内),使用fL[xFracL]中指定的具有系数的插值滤波器。表8-8中示出了用于每个分数样本位置p(p在[1,15]的范围内)的亮度插值滤波器系数fL[p]。
表8-8为插值滤波器集合的一个示例。根据分数位置选择一个插值滤波器。一个插值滤波器(插值滤波器系数)可以如表8-8中的一行所示。在一个示例中,本发明中的插值滤波器集合可以包括用于半样本位置(分数位置:1/2)之外的所有位置的相同插值滤波器。
表8-8示出了用于每个分数样本位置p(p在[1,15]的范围内,精度为1/16像素(像素))的HEVC/VVC插值滤波器系数fL[p]。在该表中,当p=8时,插值滤波器系数fL[p]为半像素插值滤波器系数。如上所述,可以添加额外的插值滤波器作为半像素插值滤波器的替代插值滤波值,以允许在这些半像素插值滤波器之间进行切换。下文将描述替代半像素插值滤波器的一些示例。
表8-8亮度插值滤波器系数规格
Figure BDA0003308445310000261
使用一个替代6抽头半像素插值滤波器的实现方式
在一个示例中,6抽头插值滤波器可以用作如表8-8所示的普通HEVC/VVC半像素插值滤波器的替代插值滤波器。下表1示出了语法元素if_idx的值(或推导到的IF索引)与所选的半像素亮度插值滤波器之间的映射:
表1
Figure BDA0003308445310000262
使用两个替代8抽头半像素插值滤波器的实现方式
在另一个示例中,两个8抽头插值滤波器可以用作如表8-8所示的普通HEVC/VVC半像素插值滤波器的替代插值滤波器。下表2示出了语法元素if_idx的值与所选的半像素亮度插值滤波器之间的映射:
表2
if_idx 二值化 滤波器 插值滤波器系数
0 0 滤波器1(8抽头) [3、6、10、13、13、10、6、3]
1 10 滤波器2(8抽头) [–1、–1、9、25、25、9、–1、–1]
2 11 HEVC/VVC(8抽头)滤波器 [–1、4、–11、40、40、–11、4、–1]
使用两个替代6抽头半像素插值滤波器的实现方式
在另一个示例中,两个6抽头插值滤波器可以用作如表8-8所示的普通HEVC/VVC半像素插值滤波器的替代插值滤波器。下表3示出了语法元素if_idx的值与所选的半像素亮度插值滤波器之间的映射:
表3
if_idx 二值化 滤波器 插值滤波器系数
0 0 高斯滤波器 [0、3、9、20、20、9、3、0]
1 10 平顶滤波器 [0、–3、4、31、31、4、–3、0]
2 11 HEVC/VVC(8抽头)滤波器 [–1、4、–11、40、40、–11、4、–1]
本发明中,如表4所示的插值滤波器中用于半像素位置(如表4中的标识为“8”的行)的插值滤波器可以进行切换。本发明中,当对应MV指向半样本位置时,替代的或可切换的半样本插值滤波器可用于对半样本值进行插值。
表4每个1/16分数样本位置的亮度插值滤波器系数fL[p]规格
Figure BDA0003308445310000271
Figure BDA0003308445310000281
在以下方面描述更具体的内容:
1.对基于历史的运动信息候选列表(即HMI列表)的构建/更新方法进行修改。除一个块之前的一个或多个编码/解码块的运动信息之外,先前块的插值滤波器(interpolation filter,IF)索引(例如,半像素插值滤波器索引(hpelIfIdx))存储在HMI列表中。特别地,IF索引存储在HMI列表的HMI候选或记录中。这样,IF索引可以通过HMI列表进行传播,从而实现译码一致性并提高译码效率。
2.融合模式下的插值滤波器索引(半像素插值滤波器索引)的推导过程:如果一个块具有与基于历史的候选对应的融合候选索引,该基于历史的候选的IF索引(半像素插值滤波器索引)用于当前块。
3.SIF索引传播是跨CTU边界的。基于当前的SIF设计,当SIF技术应用于从上方空间相邻块继承运动信息的模式时,如果当前块位于CTU的上边界,则会增加行内存。如本文所述,对当前块的位置进行检查。如果当前块位于CTU的上边界,当从左上角相邻块(B0)、上方相邻块(B1)和右上角相邻块(B2)继承运动信息时,则不继承IF索引,而是使用默认值,从而降低行内存的成本。
图7示出了跨CTU边界的SIF索引传播的示例。在该示例中,从与包含当前块700的CTU不同的CTU所包括的上方相邻块B1继承运动信息。此时,现有技术中必须将块B1的SIF索引存储在行缓冲区中。在这种情况下,本发明阻止了SIF索引传播,从而降低了行缓冲区的容量要求。在融合列表的构建过程中检查当前块的位置。如图7所示,如果当前块位于CTU的上边界,当从左上角相邻块(B0)、上方相邻块(B1)和右上角相邻块(B2)继承运动信息时,则不继承IF索引,而是使用默认值,从而降低行内存的成本。下面将结合图8和图9进行详细描述。
图13A为用于构建基于历史的运动信息候选列表(即HMI列表)的方法1300的流程图。所述方法包括以下步骤:
步骤1301:获得基于历史的运动信息候选列表,其中,所述HMI列表为N个基于历史的运动信息候选Hk(k=0、……、N–1)的有序列表,所述N个基于历史的运动信息候选Hk与在一个块之前的N个先前块的运动信息关联(或包含),N为大于0的整数,每个基于历史的运动信息候选包括元素:
(i)一个先前块的一个或多个运动矢量MV,
(ii)与所述先前块的MV对应的一个或多个参考图像索引,
(iii)所述先前块的插值滤波器索引。
步骤1303:根据所述块的运动信息更新所述HMI列表,所述块的运动信息包括元素:
(i)所述块的一个或多个运动矢量MV,
(ii)与所述块的MV对应的一个或多个参考图像索引,
(iii)所述块的插值滤波器索引。
需要说明的是所述块的一个或多个MV是指参考图像列表L0和L1所对应的MV。参考图片索引的情况相同。
如图13B所示,步骤1301可以是包括加载基于历史的运动信息候选列表(HMI表)的步骤1311,步骤1303可以是包括使用解码块的运动信息更新所述基于历史的运动信息候选列表(表)的步骤1313。包含多个HMVP候选的HMI表在编码/解码过程中进行维护。存在新的条带时,空出所述HMI表。当所述条带有帧间译码块时,根据包括基于历史的运动信息候选的运动信息候选列表对所述块进行解码(步骤1302),并将所述块的关联运动信息作为新的HMVP候选添加到所述HMI表的最后一个表项中(步骤1303)。
图14为用于帧间预测视频信号帧的块的方法的流程图。所述方法包括以下步骤:步骤1401:构建基于历史的运动信息候选列表(即HMVP列表),其中,所述HMI列表为N个基于历史的运动信息候选Hk(k=0、……、N–1)的有序列表,所述N个基于历史的运动信息候选Hk与在所述块之前的多个块的运动信息关联,N为大于0的整数,每个基于历史的运动信息候选包括元素:
(i)一个或多个运动矢量MV,
(ii)与所述MV对应的一个或多个参考图像索引,
(iii)插值滤波器索引;
步骤1402:将所述HMI列表中的一个或多个基于历史的运动信息候选添加到所述块的运动信息候选列表中。
步骤1403:根据所述运动信息候选列表推导所述块的运动信息。
可以理解的是所述运动信息候选列表是指如下融合候选列表。
可以理解的是所述基于历史的融合候选包含在步骤1403的运动信息候选列表中。
图15为一种用于构建和更新基于历史的运动信息候选列表(即HMI列表)的方法的流程图。步骤1501:构建HMI列表。步骤1502:比较所述HMVP列表中每个基于历史的运动信息候选的元素(i)和(ii)中的至少一个元素与所述当前块的对应元素。步骤1502包括:比较所述基于历史的运动信息候选列表中基于历史的运动信息候选的运动矢量是否与所述块的对应运动矢量相同,比较所述基于历史的运动信息候选的参考图像索引是否与所述块的对应参考图像索引相同。在一种替代的设计中,步骤1502包括:比较每个基于历史的运动信息候选的运动矢量中的至少一个运动矢量是否与所述块的对应运动矢量不同,比较每个HMVP候选的参考图像索引中的至少一个参考图像索引是否与所述块的对应参考图像索引不同。基于元素的比较的结果称为图15中的比较结果。
如果所述比较结果为所述基于历史的运动信息候选列表中每个基于历史的运动信息候选的元素(i)和(ii)中的至少一个元素与所述块的运动信息中的对应元素不同,将所述当前块的运动信息添加到所述HMVP列表的最后一个位置(步骤1503)。否则,如果所述基于历史的运动信息候选列表中一个基于历史的运动信息候选的元素(i)和(ii)与所述块的运动信息中的对应元素相同,将所述基于历史的运动信息候选从所述基于历史的运动信息候选列表中删除,并将包含所述块的运动信息的基于历史的运动信息候选Hk(k=N–1)添加到所述基于历史的运动信息候选列表的最后一个位置(步骤1504)。
上述比较过程中,只针对MV和参考图像索引的差异进行检查,而不针对IF索引进行比较。
额外的实施例在以下方面中进行概述:
本发明的第一方面,提供了一种用于推导当前块的插值滤波器索引(或插值滤波器集合索引)的方法,包括:
构建基于历史的运动信息列表(HMIL表或HMVP表),其中,所述基于历史的运动信息列表为N个运动记录Hk(k=0、……、N–1)的有序列表,所述N个运动记录Hk分别与一个帧的N个先前块关联,N大于或等于1,每个运动记录包括一个或多个运动矢量、与所述一个或多个运动矢量对应的一个或多个参考图像索引、与所述一个或多个运动矢量对应的插值滤波器索引(或插值滤波器集合索引)(例如,两个MV对应相同的滤波器索引或相同的滤波器集合索引);
根据所述基于历史的运动信息列表确定当前块的基于历史的运动信息候选(如HMVP候选)(例如,从所述HMVP列表或HMVP表中确定当前块的HMVP候选)。
根据第一方面所述的设备,在一种可能的实现方式中,所述根据所述基于历史的运动信息列表确定当前块的基于历史的运动信息候选包括:
推导或推断或确定记录Hk的插值滤波器索引(或插值滤波器集合索引)作为所述当前块的插值滤波器索引(或插值滤波器集合索引),其中,所述确定或选择的基于历史的运动信息候选(例如HMVP候选)对应于所述记录Hk
根据第一方面或第一方面的实现方式中任一项所述的设备,在一种可能的实现方式中,所述基于历史的运动信息列表中的运动记录按照从码流中获得所述先前块的运动记录的顺序进行排序。
根据第一方面或第一方面的实现方式中任一项所述的设备,在一种可能的实现方式中,所述基于历史的运动信息列表的长度为N,N为5。
根据第一方面或第一方面的实现方式中任一项所述的设备,在一种可能的实现方式中,所述构建基于历史的运动信息列表(history-based motion information list,HMVL)包括:
在将所述当前块的运动信息添加到HMVL之前,检查HMVL的每个元素是否与所述当前块的运动信息不同;
仅当HMVL的每个元素都与所述当前块的运动信息不同时,将所述当前块的运动信息添加到HMVL中。
根据第一方面或第一方面的实现方式中任一项所述的设备,在一种可能的实现方式中,检查HMVL的每个元素是否与所述当前块的运动信息不同包括:
比较对应的运动矢量;
比较对应的参考图像索引。
根据第一方面或第一方面的实现方式中任一项所述的设备,在一种可能的实现方式中,检查HMVL的每个元素是否与所述当前块的运动信息不同包括:
比较插值滤波器索引。
根据第一方面或第一方面的实现方式中任一项所述的设备,在一种可能的实现方式中,所述方法还包括:根据第一块的运动信息推导运动信息,其中,所述第一块与所述当前块具有预设的空间或时间位置关系。
根据第一方面或第一方面的实现方式中任一项所述的设备,在一种可能的实现方式中,所述方法还包括:
根据第二块的运动信息推导运动信息,其中,所述第二块是在所述当前块之前重建的。
根据第一方面或第一方面的任一实现方式所述的设备,在一种可能的实现方式中,当所述当前块处于融合模式下时,所述基于历史的运动信息列表(HMIL表或HMVP表)为所述当前块的候选运动信息列表的子集;或者,当所述当前块处于AMVP模式下时,所述基于历史的运动信息列表(HMIL表或HMVP表)为所述当前块的候选预测运动信息列表的子集。
根据第一方面或第一方面的实现方式中任一项所述的设备,在一种可能的实现方式中,只有一个插值滤波器集合索引与HMVP候选的一个或多个运动矢量对应(例如,两个MV对应相同的滤波器集合索引);或者
一个或多个插值滤波器集合索引分别与HMVP候选的一个或多个运动矢量对应。
本发明的第二方面,提供了一种用于对当前块进行帧间预测的方法,包括:
对所述当前块进行帧间预测,包括为所述当前块推导插值滤波器索引(或插值滤波器集合索引);
其中,所述为所述当前块推导插值滤波器索引(或插值滤波器集合索引)包括:
从HMVP列表(例如HMVP表)中确定所述当前块的HMVP候选,其中,所述HMVP候选包括至少一个运动矢量、与所述至少一个运动矢量对应的至少一个参考图像索引、与所述至少一个运动矢量对应的至少一个插值滤波器索引(或插值滤波器集合索引)(例如,整个候选只对应一个插值滤波器索引或一个插值滤波器集合索引);
推导或推断或确定所述确定或选择的HMVP候选的插值滤波器索引(或插值滤波器集合索引)作为所述当前块的插值滤波器索引(或插值滤波器集合索引);
其中,所述HMVP列表的一个或多个候选(例如每个候选)包括至少一个运动矢量、与所述至少一个运动矢量对应的插值滤波器索引(或至少一个插值滤波器集合索引)。
根据第二方面所述的方法,在一种可能的实现方式中,插值滤波器索引(或插值滤波器集合索引)与所述HMVP候选的所述一个或多个运动矢量对应;或者
一个或多个插值滤波器索引(或一个或多个插值滤波器集合索引)与所述HMVP候选的一个或多个运动矢量对应。
本发明的第三方面,提供了一种用于根据当前编码单元在CTU中的位置为融合模式下编码的编码单元推导插值滤波器的方法,包括:
从码流中解析或推导第一融合索引;
根据所述第一融合索引从融合候选列表中选择融合候选;
确定所述当前编码单元是否与所述CTU的上边界或左边界重叠;
如果所述当前编码单元与所述CTU的上边界或左边界重叠,将所述当前编码单元的插值滤波器索引(或插值滤波器集合索引)设置为预定义值;
否则,将所述当前编码单元的插值滤波器索引(或插值滤波器集合索引)设置为等于所选的融合候选的插值滤波器索引(或插值滤波器集合索引);
根据所述插值滤波器索引(或插值滤波器集合索引),从N个插值滤波器集合(例如N个预定义的插值滤波器集合)中选择第一插值滤波器集合,其中,N为大于或等于2的整数;
对于所选的融合候选的每个运动矢量,根据分数位置(例如所述运动矢量的分数样本单元(xFracL,yFracL)的亮度位置)从所述第一插值滤波器集合中选择插值滤波器。
根据第三方面所述的方法,在一种可能的实现方式中,所述方法还包括:
构建所述融合候选列表,其中,每个候选包括一个或多个运动矢量、插值滤波器索引(或用于表示N个插值滤波器集合(例如,N个预定义的插值滤波器集合)中的一个插值滤波器集合的插值滤波器集合索引)。
根据第三方面或第三方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述确定所述当前编码单元是否与所述CTB或CTU的上边界或左边界重叠包括:确定所述当前块的左上角(例如,用于表示所述当前编码块的左上角样本相对于当前图像的左上角亮度样本的亮度位置(xCb,yCb))是否与包括所述当前编码单元的所述CTU的上边界重叠。
根据第三方面或第三方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述确定所述当前块的左上角是否与包括所述当前编码单元的所述CTU的上边界重叠包括:
获得所述当前块的左上角的纵坐标位置(y坐标);
将得到的纵坐标位置(y坐标)除以所述CTU的高度计算得到余数;
如果计算得到的余数等于零,推断所述当前块的左上角与所述当前CTU的上边界重叠,否则,推断所述当前编码单元的左上角与所述当前CTU的上边界不重叠。
根据第三方面或第三方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述确定所述当前编码单元的左上角是否与包括所述当前编码单元的所述CTU的上边界重叠包括:
计算第一值作为最大下取整值,其中,所述最大下取整值是通过所述当前块的左上纵坐标(坐标y)除以所述CTU的高度得到的;
计算第二值作为最大下取整值,其中,所述最大下取整值是通过继承相邻块的左上纵坐标除以所述CTU的高度得到的;
若所述第二值等于所述第一值,推断所述当前编码单元的左上角与所述当前CTU的上边界重叠。
根据第三方面或第三方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述确定所述当前编码单元的左上角是否与包括所述当前编码单元的所述CTU的上边界重叠包括:
计算第三值为(yCb>>CtbLog2SizeY)<<CtbLog2SizeY,其中,yCb表示所述当前块的左上纵坐标(坐标y),“>>”表示逻辑或算术位右移位,“<<”表示逻辑或算术位左移位,CtbLog2SizeY表示所述CTU的大小的二进制对数尺度;
如果(yCb–1)小于所述第三值,推断所述当前编码单元的左上角与所述当前CTU的上边界重叠。
根据第三方面或第三方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述第二预定义区域包括或覆盖包括所述当前块的所述CTU的左上角。
根据第三方面或第三方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述确定所述当前块的左上角是否与包括所述当前块的所述CTU的左边界重叠包括:
获得所述当前编码单元左上角的横坐标位置(x坐标);
将得到的横坐标位置(x坐标)除以所述CTU的宽度计算得到余数;
如果计算得到的余数等于零,推断所述当前编码单元的左上角与所述当前CTU的左边界重叠;
否则,推断所述当前编码单元的左上角与所述当前CTU的左边界不重叠。
根据第三方面或第三方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述确定所述当前编码单元的左上角是否与包括所述当前编码单元的所述CTU的左边界重叠包括:
计算第四值作为最大下取整值,其中,所述最大下取整值是通过所述当前块的左上横坐标(坐标x)除以所述CTU的宽度得到的;
计算第五值作为最大下取整值,其中,所述最大下取整值是通过继承相邻块的左上纵坐标除以所述CTU的宽度得到的;
若所述第五值等于所述第四值,推断所述当前编码单元的左上角与所述当前CTU的左边界重叠。
根据第三方面或第三方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述确定所述当前编码单元的左上角是否与包括所述当前编码单元的所述CTU的左边界重叠包括:
计算第六值为(xCb>>CtbLog2SizeX)<<CtbLog2SizeX,其中,xCb表示所述当前块的左上纵坐标(坐标y),“>>”表示逻辑或算术位右移位,“<<”表示逻辑或算术位左移位,CtbLog2SizeX表示所述CTU的宽度的二进制对数尺度;
如果(xCb–1)小于所述第六值,推断所述当前编码单元的左上角与所述当前CTU的左边界重叠。
根据第三方面或第三方面的实现方式中任一项所述的方法,在一种可能的实现方式中,与包含N个最低有效位置的比特0的位掩码和包含其它位置的比特1的位掩码相关联,而不是对N个比特的左移位和右移位运算进行组合(例如,(yCb>>CtbLog2SizeY)<<CtbLog2SizeY可以计算为yCb与包含CtbLog2SizeY个最低有效位置的比特0的位掩码和包含其它位置的比特1的位掩码相关联的值)。
根据第三方面或第三方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所选的插值滤波器用于参考样本以生成位于参考样本之间的分数位置的预测样本;或者
所选的插值滤波器用于在所述当前编码单元内生成预测样本(例如,生成所述当前编码单元的子块的预测样本)。
本发明的第四方面,提供了一种用于对当前块进行帧间预测的方法,包括:
当满足条件时,至少两个亮度位置具有相同的半样本插值滤波器索引和相同的双向预测权重索引。
根据第四方面所述的方法,在一种可能的实现方式中,当availableA1等于true时,亮度位置(xNbA1,yNbA1)和(xNbB1,yNbB1),或亮度位置(xNbA1,yNbA1)和(xNbB0,yNbB0),或亮度位置(xNbA1,yNbA1)和(xNbA0,yNbA0),或亮度位置(xNbA1,yNbA1)和(xNbA0,yNbA0),或亮度位置(xNbA1,yNbA1)和(xNbB2,yNbB2)具有相同的双向预测权重索引和相同的半样本插值滤波器索引。
根据第四方面或第四方面的实现方式中任一项所述的方法,在一种可能的实现方式中,当availableB1等于true时,亮度位置(xNbB1,yNbB1)和(xNbB0,yNbB0),或亮度位置(xNbB1,yNbB1)和(xNbA0,yNbA0),或亮度位置(xNbB1,yNbB1)和(xNbB2,yNbB2)具有相同的双向预测权重索引和相同的半样本插值滤波器索引。
根据第四方面或第四方面的实现方式中任一项所述的方法,在一种可能的实现方式中,当availableB0等于true时,亮度位置(xNbB0,yNbB0)和(xNbA0,yNbA0),或亮度位置(xNbB0,yNbB0)和(xNbB2,yNbB2)具有相同的双向预测权重索引和相同的半样本插值滤波器索引。
根据第四方面或第四方面的实现方式中任一项所述的方法,在一种可能的实现方式中,当availableA0等于true时,亮度位置(xNbA0,yNbA0)和(xNbB2,yNbB2)具有相同的双向预测权重索引和相同的半样本插值滤波器索引。
本发明的第五方面,提供了一种用于对当前块进行帧间预测的方法,包括:
当满足条件时,MVP候选和融合候选具有相同的运动矢量和相同的参考索引。
根据第五方面或第五方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述方法还包括:获得半样本插值滤波器索引;
当满足条件时,MVP候选和融合候选具有相同的半样本插值滤波器索引、相同的运动矢量以及相同的参考索引。
根据第五方面或第五方面的实现方式中任一项所述的方法,在一种可能的实现方式中,所述方法还包括:获得半样本插值滤波器索引;
当满足包含半样本插值滤波器索引的条件时,MVP候选和融合候选具有相同的运动矢量和相同的参考索引。
下文中以对VVC工作草案的规范进行修改的格式详细描述根据所提议的方法中的融合候选列表推导包括所述块的插值滤波器集合索引的运动信息的可能实现方式(参见图14所示的方法1400的步骤1403)。所述修改以高亮方式显示。
8.5.2运动矢量分量和参考索引的推导过程
8.5.2.1概述
该过程的输入包括:
–当前亮度编码块的左上样本相对于当前图像的左上亮度样本的亮度位置(xCb,yCb);
–变量cbWidth,表示亮度样本中当前编码块的宽度;
–变量cbHeight,表示亮度样本中当前编码块的高度。
该过程的输出包括:
–1/16分数样本精度的亮度运动矢量mvL0[0][0]和mvL1[0][0]、
–参考索引refIdxL0和refIdxL1、
–预测列表使用标志predFlagL0[0][0]和predFlagL1[0][0]、
–半样本插值滤波器索引hpelIfIdx、
–双向预测权重索引bcwIdx。
将变量LX作为当前图像的RefPicList[X],其中,X为0或1。
对于变量mvL0[0][0]、mvL1[0][0]、refIdxL0、refIdxL1以及predFlagL0[0][0]和predFlagL1[0][0]的推导,以下情况适用:
–如果general_merge_flag[xCb][yCb]等于1,第8.5.2.2条规定的融合模式下的亮度运动矢量的推导过程与亮度位置(xCb,yCb)、所述输入的变量cbWidth和cbHeight、所述输出的亮度运动矢量mvL0[0][0]和mvL1[0][0]、参考索引refIdxL0和refIdxL1、预测列表使用标志predFlagL0[0][0]和predFlagL1[0][0]、半样本插值滤波器索引hpelIfIdx、双向预测权重索引bcwIdx以及融合候选列表mergeCandList同时被调用。
–否则,以下情况适用:
–对于变量predFlagLX[0][0]、mvLX[0][0]和refIdxLX、PRED_LX、以及语法元素ref_idx_lX和MvdLX中的X,其中,X替换为0或1,以下有序步骤适用:
1.变量refIdxLX和predFlagLX[0][0]推导如下:
–如果inter_pred_idc[xCb][yCb]等于PRED_LX或PRED_BI,
refIdxLX=ref_idx_lX[xCb][yCb] (8-292)
predFlagLX[0][0]=1 (8-293)
–否则,变量refIdxLX和predFlagLX[0][0]表示为:
refIdxLX=–1 (8-294)
predFlagLX[0][0]=0 (8-295)
2.变量mvdLX推导如下:
mvdLX[0]=MvdLX[xCb][yCb][0] (8-296)
mvdLX[1]=MvdLX[xCb][yCb][1] (8-297)
3.当predFlagLX[0][0]等于1时,第8.5.2.8条规定的亮度运动矢量预测的推导过程与亮度编码块位置(xCb,yCb)、编码块宽度cbWidth、编码块高度cbHeight、作为输入的变量refIdxLX以及作为输出的mvpLX同时被调用。
4.当predFlagLX[0][0]等于1时,亮度运动矢量mvLX[0][0]推导如下:
uLX[0]=(mvpLX[0]+mvdLX[0]+218)%218 (8-298)
mvLX[0][0][0]=(uLX[0]>=217)?(uLX[0]–218):uLX[0] (8-299)
uLX[1]=(mvpLX[1]+mvdLX[1]+218)%218 (8-300)
mvLX[0][0][1]=(uLX[1]>=217)?(uLX[1]–218):uLX[1] (8-301)
备注1:上述设定的mvLX[0][0][0]和mvLX[0][0][1]的结果值始终在–217到(217–1)的范围内(包括首尾数字)。
–半样本插值滤波器索引hpelIfIdx推导如下:
hpelIfIdx=AmvrShift==3?1:0 (8-302)
–双向预测权重索引bcwIdx被设置为等于bcw_idx[xCb][yCb]。
当以下所有条件均为true时,refIdxL1设置为等于–1,predFlagL1设置为等于0,bcwIdx设置为等于0:
–predFlagL0[0][0]等于1;
–predFlagL1[0][0]等于1;
–(cbWidth+cbHeight)的值等于12。
第8.5.2.16条中规定的基于历史的运动矢量预测列表的更新过程与亮度运动矢量mvL0[0][0]和mvL1[0][0]、参考索引refIdxL0和refIdxL1、预测列表使用标志predFlagL0[0][0]和predFlagL1[0][0]、双向预测权重索引bcwIdx以及半样本插值滤波器 索引hpelIfIdx同时被调用。
可以理解的是,该方法既适用于单向预测,也适用于双向预测。可以理解的是,在VVC工作草案的规范中提出了两个参考索引和两个预测列表使用标志。然而,当单向预测predFlagL1设置为等于0(表示不采用L1预测)时,refIdxL1设置为等于–1。
下文中以对VVC草案的规范进行修改的格式详细描述对所提议方法中的基于历史的融合候选进行推导的可能实现方式(参见图14所示的方法1400的步骤1402)。所述修改以高亮方式显示。
8.5.2.6基于历史的融合候选的推导过程
该过程的输入包括:
–融合候选列表mergeCandList、
–所述列表中可用的融合候选的个数numCurrMergeCand。
该过程的输出包括:
–修改后的融合候选列表mergeCandList、
–所述列表中修改后的融合候选个数numCurrMergeCand。
变量isPrunedA1和isPrunedB1都设置为等于false。
对于HmvpCandList[hMvpIdx]中索引hMvpIdx=1..NumHmvpCand的每个候选,重复如下有序步骤,直到numCurrMergeCand等于(MaxNumMergeCand–1)。
1.变量sameMotion推导如下:
–对于任意融合候选N(其中,N为A1或B1),如果以下所有条件均为true,则sameMotion和isPrunedN均设置为等于true:
–hMvpIdx小于或等于2。
–HmvpCandList[NumHmvpCandh–MvpIdx]和融合候选N具有相同的运动矢量和相同 的参考索引
–isPrunedN等于false。
–否则,sameMotion设置为等于false。
2.当sameMotion等于false时,候选HmvpCandList[NumHmvpCand–hMvpIdx]被添加到融合候选列表:
mergeCandList[numCurrMergeCand++]=HmvpCandList[NumHmvpCand–hMvpIdx](8-381)
下文中以对VVC草案的规范进行修改的格式详细描述所提议方法中的更新基于历史的运动信息(HMVP)候选列表的第一种可能实现方式(参见图13A和图13B所示的步骤1303、1313)。所述修改以高亮方式显示。
8.5.2.16基于历史的运动矢量预测候选列表的更新过程
该过程的输入包括:
–1/16分数样本精度的亮度运动矢量mvL0和mvL1、
–参考索引refIdxL0和refIdxL1、
–预测列表使用标志predFlagL0和predFlagL1、
–双向预测权重索引gbiIdx、
半样本插值滤波器集合索引hpelIfIdx。
所述MVP候选hMvpCand由所述亮度运动矢量mvL0和mvL1、所述参考索引refIdxL0和refIdxL1、所述预测列表使用标志predFlagL0和predFlagL1、所述双向预测权重索引gbiIdx以及所述半样本插值滤波器集合索引hpelIfIdx组成。
使用候选hMvpCand通过以下有序步骤修改候选列表HmvpCandList:
1.变量identicalCandExist设置为等于false,变量removeIdx设置为等于0。
2.当NumHmvpCand大于0时,对于hMvpIdx=0..NumHmvpCand–1的每个索引hMvpIdx,执行如下步骤,直到identicalCandExist等于true:
–当hMvpCand等于HmvpCandList[hMvpIdx]时,identicalCandExist设置等于true,removeIdx设置为等于hMvpIdx。
3.候选列表HmvpCandList更新如下:
–如果identicalCandExist等于true,或者NumHmvpCand等于(MaxNumMergeCand–1),则以下情况适用:
–对于i=(removeIdx+1)..(NumHmvpCand–1)的每个索引i,HmvpCandList[i–1]设置为等于HmvpCandList[i]。
–HmvpCandList[NumHmvpCand–1]设置为等于mvCand。
–否则(identicalCandExist等于false,且NumHmvpCand小于(MaxNumMergeCand–1)),以下情况适用:
–HmvpCandList[NumHmvpCand++]设置为等于mvCand。
下文中以对VVC草案的规范进行修改的格式详细描述所提议的方法中的更新基于历史的运动信息(HMVP)候选列表的第二种可能实现方式(参见图13A和图13B所示的步骤1303、1313,并参见图15所示的步骤1502至1504)。所述修改以高亮方式显示。
8.5.2.16基于历史的运动矢量预测候选列表的更新过程
该过程的输入包括:
–1/16分数样本精度的亮度运动矢量mvL0和mvL1、
–参考索引refIdxL0和refIdxL1、
–预测列表使用标志predFlagL0和predFlagL1、
–双向预测权重索引bcwIdx、
半样本插值滤波器索引hpelIfIdx
所述MVP候选hMvpCand由所述亮度运动矢量mvL0和mvL1、所述参考索引refIdxL0和refIdxL1、所述预测列表使用标志predFlagL0和predFlagL1、所述双向预测权重索引bcwIdx以及所述半样本插值滤波器索引hpelIfIdx组成。
使用候选hMvpCand通过以下有序步骤修改候选列表HmvpCandList:
4.变量identicalCandExist设置为等于false,变量removeIdx设置为等于0。
5.当NumHmvpCand大于0时,对于hMvpIdx=0..NumHmvpCand–1的每个索引hMvpIdx,执行如下步骤,直到identicalCandExist等于true:
当hMvpCand和HmvpCandList[hMvpIdx]具有相同的运动矢量和相同的参考索引 ,identicalCandExist设置为等于true,removeIdx设置为等于hMvpIdx。
6.候选列表HmvpCandList更新如下:
–如果identicalCandExist等于true,或者NumHmvpCand等于5,则以下情况适用:
–对于i=(removeIdx+1)..(NumHmvpCand–1)的每个索引i,HmvpCandList[i–1]设置为等于HmvpCandList[i]。
–HmvpCandList[NumHmvpCand–1]设置为等于hMvpCand。
–否则(identicalCandExist等于false,且NumHmvpCand小于5),以下情况适用:
–HmvpCandList[NumHmvpCand++]设置为等于hMvpCand。
从上述描述可以看出,第二种实现方式中规定了HMVP候选的比较元素(i)和(ii),而第一种实现方式中规定了HMVP候选的所有比较元素(例如元素(i)、(ii)和(iii))。
本发明实施例和示例性实施例具有各自的方法以及对应的装置。
图16为用于构建基于历史的运动信息候选列表的装置1600的示意图。该装置包括HMI列表获得单元1601和HMI列表更新单元1603。
基于历史的运动信息(history-based motion information,HMI)候选列表获得单元1601用于获得基于历史的运动信息候选列表,其中,所述HMI列表为N个基于历史的运动信息候选Hk(k=0、……、N–1)的有序列表,所述N个基于历史的运动信息候选Hk与在一个块之前的多个块的运动信息关联,N为大于0的整数,每个基于历史的运动信息候选包括元素:
(iv)一个或多个运动矢量MV,
(v)与所述MV对应的一个或多个参考图像索引,
(vi)插值滤波器索引。
基于历史的运动信息候选列表更新单元1603用于根据所述块的运动信息更新所述HMI列表,其中,所述块的运动信息包括元素:
(iv)一个或多个运动矢量MV,
(v)与所述MV对应的一个或多个参考图像索引,
(vi)插值滤波器索引。
可以理解的是,本申请实施例提供的编码器20或解码器30中的HMI列表获得单元1601和HMI列表更新单元1603(对应于帧间预测模块)是实现上述对应方法包括的各种执行步骤的功能实体,即具有完全实现本申请方法中的步骤以及这些步骤的扩展和变型的功能实体。具体可以参见上述对应方法中的描述。为简洁起见,此处不再赘述。
图17为本发明实施例提供的帧间预测装置1700的示意图。装置1700用于确定帧内当前块的运动信息。该装置1700包括:
列表管理单元1701,用于构建所述HMVP列表,其中,所述HMVP列表为与N个基于历史的候选Hk(k=0、……、N–1)的有序列表,所述N个基于历史的候选Hk与在所述当前块之前的帧中N个先前块的运动信息关联,N大于或等于1,每个或至少一个基于历史的候选包括运动信息,所述运动信息包括元素:(i)一个或多个运动矢量MV,(ii)与所述MV对应的一个或多个参考图像索引,(iii)插值滤波器索引(如半像素插值滤波器索引)或插值滤波器集合索引;所述HMVP列表管理单元1701,还用于将所述HMVP列表中的一个或多个基于历史的候选添加到所述当前块的运动信息候选列表中;信息推导单元1703,用于根据所述运动信息候选列表推导所述运动信息。
在一种实现方式中,列表管理单元1701用于比较所述HMI列表中每个基于历史的候选的元素中至少一个元素与所述当前块的对应元素。运动信息添加单元用于:如果比较的结果为所述HMI列表中每个基于历史的候选的元素中的至少一个元素与所述当前块的运动信息中的对应元素不同,将所述当前块的运动信息添加到所述HMI列表中。
对应地,在一个示例中,装置1700的示例结构可以对应于图2中的编码器20。在另一个示例中,装置1700的示例结构可以对应于图3中的解码器30。
在另一个示例中,装置1700的示例结构可以对应于图2中的帧间预测单元244。在另一个示例中,装置1700的示例结构可以对应于图3中的帧间预测单元344。
可以理解的是,本申请实施例提供的编码器20或解码器30中的列表管理单元1701和信息推导单元1703(对应于帧间预测模块)是实现上述对应方法包括的各种执行步骤的功能实体,即具有完全实现本申请方法中的步骤以及这些步骤的扩展和变型的功能实体。具体可以参见上述对应方法中的描述。为简洁起见,此处不再赘述。
更具体地,下文描述了与跨CTU边界的SIF索引传播相关的方面:
如上所述,基于当前的SIF设计,当SIF技术应用于从上方空间相邻块继承运动信息的模式时,如果当前块位于CTU/CTB的上边界,则会增加行内存。如本文所述,对当前块的位置进行检查。如果当前块位于CTU/CTB的上边界,当从左上角相邻块(B0)、上方相邻块(B1)和右上角相邻块(B2)继承运动信息时,不从相邻块继承IF索引,而是使用默认值,从而降低行内存的占用率。
本发明的一个方面,提供了一种用于对当前块进行帧间预测的方法,包括:
对所述块进行帧间预测,包括根据所述当前块(例如编码单元或编码块)在编码树块(coding tree block,CTB)或编码树单元(coding tree unit,CTU)内的位置以及从选定的融合候选继承的插值滤波器索引推导所述当前块的插值滤波器索引。
图8为用于推导编码树块(coding tree block,CTB)或编码树单元(coding treeunit,CTU)内的当前块(例如编码单元或编码块)的插值滤波器集合索引的方法的流程图。所述方法包括:
步骤803:所述方法包括:确定所述当前块是否与所述CTB或CTU的预定义区域(例如,所述CTB或CTU的上边界或左边界)重叠。
步骤804:所述方法包括:如果所述当前块与所述CTU的预定义区域不重叠(例如,所述当前块与所述CTB或CTU的上边界或左边界不重叠),将所述当前块的插值滤波器集合索引设置为选定候选的插值滤波器集合索引。所述选定的候选例如可以是选定的融合候选或选定的MVP候选。所述选定的候选也可以是与选定融合候选对应的相邻块。
步骤805:所述方法包括:如果所述当前块与所述CTB或CTU的预定义区域(例如,所述CTB或CTU的上边界或左边界)重叠,将所述当前块的插值滤波器集合索引设置为预定义值。
进一步地,步骤801至802:该方法包括构建候选列表。为简洁起见,此处不再赘述。
如图9所示,为了确定所述当前块是否位于CTU 900的上边界,对当前块的左上角的纵坐标(yCb)进行检查。假设CTU 900的大小等于(1<<CtbLog2SizeY)x(1<<CtbLog2SizeY),如果(yCb>>CtbLog2SizeY)<<CtbLog2SizeY不等于yCb,那么所述当前块不位于CTU 900的上边界(场景1)。否则(如果(yCb>>CtbLog2SizeY)<<CtbLog2SizeY等于yCb),那么所述当前块位于CTU 900的上边界(场景2)。
在本发明的一个实施例中,所述选定的候选(例如,选定的融合候选)是空间融合候选。
在本发明的一个实施例中,与所述空间融合候选关联的纵坐标位置小于所述当前块的纵坐标位置,或者,与所述空间融合候选对应的相邻块的纵坐标位置小于所述当前块的纵坐标位置。
在本发明的一个实施例中,所述空间融合候选为右上候选(如图6所示的B0)、上方候选(如图6所示的B1)或左上候选(如图6所示的B2)。
在本发明的一个实施例中,所述融合候选是仿射融合候选。所述仿射融合候选是继承仿射融合候选,其中,“继承”表示:(i)所述候选根据相邻仿射块进行推导;(ii)所述当前块的仿射模型从相邻仿射块的仿射模型继承;或者(iii)所述当前块的仿射参数根据相邻仿射块的仿射参数进行推导。
在本发明的一个实施例中,所述继承仿射融合候选根据其中一个空间相邻块进行推导,所述空间相邻块包括左下块(如图6所示的A0)、左侧块(如图6所示的A1)、右上块(如图6所示的B0)、上方块(如图6所示的B1)或左上块(如图6所示的B2)。
在本发明的一个实施例中,所述继承仿射融合候选根据纵坐标位置小于所述当前块的纵坐标位置的一个块进行推导。
在本发明的一个实施例中,所述继承仿射融合候选根据右上块(如图6所示的B0)、上方块(如图6所示的B1)或左上块(如图6所示的B2)进行推导。
在本发明的一个实施例中,所述选定的候选(例如,选定的融合候选)是子块融合候选。
在本发明的一个实施例中,所述CTU的预定义区域与所述CTB或CTU重合。
在本发明的一个实施例中,根据所述编码单元左上角的坐标位置(例如,所述当前块的左上样本的横坐标位置和纵坐标位置)(例如,用于表示所述当前块的左上样本相对于当前图像的左上亮度样本的亮度位置(xCb,yCb))确定所述当前块是否与所述预定义区域重叠。
在本发明的一个实施例中,如果所述当前块的左上角与第二预定义区域(例如所述CTU的左上角)重叠,推断所述当前块与所述预定义区域(例如所述CTU的上边界)重叠。
在本发明的一个实施例中,所述第二预定义区域包含或覆盖包含所述当前块的CTU的上边界(例如,所述CTU的左上角包括或覆盖包含所述当前块的CTU的上边界或左边界)。
在本发明的一个实施例中,所述确定所述当前块是否与所述CTB或CTU的预定义区域重叠包括:确定所述当前块的左上角(例如,用于表示所述当前块的左上样本相对于当前图像的左上亮度样本的亮度位置(xCb,yCb))是否与包含所述当前编码单元的CTU的上边界重叠。
在本发明的一个实施例中,所述确定所述当前块的左上角是否与包含所述当前编码单元的CTU的上边界重叠包括:
获得所述当前块的左上角的纵坐标位置(y坐标);
将得到的纵坐标位置(y坐标)除以所述CTU的高度计算得到余数;
如果计算得到的余数等于零,推断所述当前块的左上角与所述当前CTU的上边界重叠,否则,推断所述当前编码单元的左上角与所述当前CTU的上边界不重叠。
在本发明的一个实施例中,所述确定所述当前编码单元的左上角是否与包含所述当前编码单元的CTU的上边界重叠包括:
计算第一值作为最大下取整值,其中,所述最大下取整值是通过所述当前块的左上纵坐标(坐标y)除以所述CTU的高度得到的;
计算第二值作为最大下取整值,其中,所述最大下取整值是通过继承相邻块的左上纵坐标除以所述CTU的高度得到的;
若所述第二值等于所述第一值,推断所述当前编码单元的左上角与所述当前CTU的上边界重叠。
在本发明的一个实施例中,所述确定所述当前编码单元的左上角是否与包含所述当前编码单元的CTU的上边界重叠包括:
计算第三值为(yCb>>CtbLog2SizeY)<<CtbLog2SizeY,其中,yCb表示所述当前块的左上纵坐标(坐标y),“>>”表示逻辑或算术位右移位,“<<”表示逻辑或算术位左移位,CtbLog2SizeY表示所述CTU或CTB的大小的二进制对数尺度;
如果(yCb–1)小于所述第三值,推断所述当前编码单元的左上角与所述当前CTU的上边界重叠。
在本发明的一个实施例中,所述第二预定义区域包括或覆盖包含所述当前块的CTU的左上角。
在本发明的一个实施例中,所述确定所述当前块的左上角是否与包含所述当前块的CTU的左边界重叠包括:
获得所述当前编码单元左上角的横坐标位置(x坐标);
将得到的横坐标位置(x坐标)除以所述CTU的宽度计算得到余数;
如果计算得到的余数等于零,推断所述当前编码单元的左上角与所述当前CTU的左边界重叠;
否则,推断所述当前编码单元的左上角与所述当前CTU的左边界不重叠。
在本发明的一个实施例中,所述确定所述当前编码单元的左上角是否与包含所述当前编码单元的CTU的左边界重叠包括:
计算第四值作为最大下取整值,其中,所述最大下取整值是通过所述当前块的左上横坐标(坐标x)除以所述CTU的宽度得到的;
计算第五值作为最大下取整值,其中,所述最大下取整值是通过继承相邻块的左上纵坐标除以所述CTU的宽度得到的;
若所述第五值等于所述第四值,推断所述当前编码单元的左上角与所述当前CTU的左边界重叠。
在本发明的一个实施例中,所述确定所述当前编码单元的左上角是否与包含所述当前编码单元的CTU的左边界重叠包括:
计算第六值为(xCb>>CtbLog2SizeX)<<CtbLog2SizeX,其中,xCb表示所述当前块的左上纵坐标(坐标y),“>>”表示逻辑或算术位右移位,“<<”表示逻辑或算术位左移位,CtbLog2SizeX表示所述CTU的宽度的二进制对数尺度;
如果(xCb–1)小于所述第六值,推断所述当前编码单元的左上角与所述当前CTU的左边界重叠。
在本发明的一个实施例中,与包含N个最低有效位置的比特0的位掩码和包含其它位置的比特1的位掩码相关联,而不是对N个比特左移位和右移位运算进行组合(例如,(yCb>>CtbLog2SizeY)<<CtbLog2SizeY可以计算为yCb与包含CtbLog2SizeY个最低有效位置的比特0的位掩码和包含其它位置的比特1的位掩码相关联的值)。例如,如果yCb在[0,232–1]的范围内,且CtbLog2SizeY等于7,可以计算得到yCb&0xFFFFFF80的值,而不是计算得到(yCb>>CtbLog2SizeY)<<CtbLog2SizeY的值。这里,0xFFFFFF80是一个位掩码,其中包含7个最低有效位置的0和其它位置的1。
在本发明的一个实施例中,采用逻辑移位或算术移位,以计算除法结果的最大下取整值。(例如,a/2n的最大下取整值可以计算为a>>n)。
在本发明的一个实施例中,所述第二预定义区域仅包括或覆盖包含所述当前块的CTU的上边界。
在本发明的一个实施例中,所述第二预定义区域仅包括或覆盖包含所述当前块的CTU的左边界。
在本发明的一个实施例中,所述第二预定义区域仅包括或覆盖包含所述当前块的CTU的上边界和左边界。
在本发明的一个实施例中,所述将所述当前块的插值滤波器集合索引设置为预定义值包括:
将所述当前块的插值滤波器集合索引设置为第七值,其中,所述第七值是在构建融合列表之前确定的。
在本发明的一个实施例中,所述确定所述第七值包括:
确定所述当前块的其中一个空间相邻块的插值滤波器集合索引,并将所述第七值设置为等于所述确定的插值滤波器集合索引。
在本发明的一个实施例中,“其中一个空间相邻块”是指左侧相邻块(该块在图6中称为A1)。
下文中以对SIF提案的工作草案的规范进行修改的格式详细描述所提议的方法中跨CTU边界的SIF索引传播的可能实现方式(该过程如图8和9所示)。所述修改以高亮方式显示。
8.5.2.3空间融合候选的推导过程
该过程的输入包括:
–当前亮度编码块的左上样本相对于当前图像的左上亮度样本的亮度位置(xCb,yCb);
–变量cbWidth,表示亮度样本中当前编码块的宽度;
–变量cbHeight,表示亮度样本中当前编码块的高度。
该过程的输出包括,其中,X为0或1:
–相邻编码单元的可用标志availableFlagA0、availableFlagA1、availableFlagB0、availableFlagB1和availableFlagB2
–所述相邻编码单元的参考索引refIdxLXA0、refIdxLXA1、refIdxLXB0、refIdxLXB1和refIdxLXB2
–所述相邻编码单元的预测列表使用标志predFlagLXA0、predFlagLXA1、predFlagLXB0、predFlagLXB1和predFlagLXB2
–所述相邻编码单元的1/16分数样本精度的运动矢量mvLXA0、mvLXA1、mvLXB0、mvLXB1和mvLXB2
–半样本插值滤波器索引hpelIfIdxA0、hpelIfIdxA1、hpelIfIdxB0、hpelIfIdxB1和hpelIfIdxB2
–双向预测权重索引gbiIdxA0、gbiIdxA1、gbiIdxB0、gbiIdxB1和gbiIdxB2
对于availableFlagA1、refIdxLXA1、predFlagLXA1和mvLXA1的推导,以下情况适用:
–相邻亮度编码块内的亮度位置(xNbA1,yNbA1)设置为等于(xCb–1,yCb+cbHeight–1)。
–第6.4条中规定的块的可用性推导过程与设置为等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)以及作为输入的相邻亮度位置(xNbA1,yNbA1)同时被调用,而且所述输出被赋值给所述块的可用性标志availableA1
–变量availableFlagA1、refIdxLXA1、predFlagLXA1、mvLXA1推导如下:
–如果availableA1等于false,则availableFlagA1设置为等于0,mvLXA1的两个分量都设置为等于0,refIdxLXA1设置为等于–1,predFlagLXA1设置为等于0,gbiIdxA1设置为等于0,其中,X为0或1。
–否则,availableFlagA1设置为等于1,并进行以下赋值运算:
mvLXA1=MvLX[xNbA1][yNbA1] (8-294)
refIdxLXA1=RefIdxLX[xNbA1][yNbA1] (8-295)
predFlagLXA1=PredFlagLX[xNbA1][yNbA1] (8-296)
hpelIfIdxA1=HpelIfIdx[xNbA1][yNbA1] (8-297)
gbiIdxA1=GbiIdx[xNbA1][yNbA1] (8-297)
对于availableFlagB1、refIdxLXB1、predFlagLXB1和mvLXB1的推导,以下情况适用:
–相邻亮度编码块内的亮度位置(xNbB1,xNbB1)设置为等于(xCb+cbWidth–1,yCb–1)。
–第6.4条中规定的块的可用性推导过程与设置为等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)以及作为输入的相邻亮度位置(xNbB1,yNbB1)同时被调用,而且所述输出被赋值给所述块的可用性标志availableB1
–变量availableFlagB1、refIdxLXB1、predFlagLXB1、mvLXB1推导如下:
–如果以下一个或多个条件为true,则availableFlagB1设置为等于0,mvLXB1的两个分量都设置为等于0,refIdxLXB1设置为等于–1,predFlagLXB1设置为等于0,gbiIdxB1设置为等于0,其中,X为0或1:
–availableB1等于false。
–availableA1等于true,且亮度位置(xNbA1,yNbA1)和(xNbB1,yNbB1)具有相同的运动矢量和相同的参考索引。
–否则,availableFlagB1设置为等于1,并进行以下赋值运算:
mvLXB1=MvLX[xNbB1][yNbB1] (8-298)
refIdxLXB1=RefIdxLX[xNbB1][yNbB1] (8-299)
predFlagLXB1=PredFlagLX[xNbB1][yNbB1] (8-300)
如果(yCb–1)<((yCb>>CtbLog2SizeY)<<CtbLog2SizeY),
hpelIfIdxB1=2
否则,
hpelIfIdxB1=HpelIfIdx[xNbB1][yNbB1]
gbiIdxB1=GbiIdx[xNbB1][yNbB1] (8-301)
对于availableFlagB0、refIdxLXB0、predFlagLXB0和mvLXB0的推导,以下情况适用:
–相邻亮度编码块内的亮度位置(xNbB0,yNbB0)设置为等于(xCb+cbWidth,yCb–1)。
–第6.4条中规定的块的可用性推导过程与设置为等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)以及作为输入的相邻亮度位置(xNbB0,yNbB0)同时被调用,而且所述输出被赋值给所述块的可用性标志availableB0
–变量availableFlagB0、refIdxLXB0、predFlagLXB0、mvLXB0推导如下:
–如果以下一个或多个条件为true,则availableFlagB0设置为等于0,mvLXB0的两个分量都设置为等于0,refIdxLXB0设置为等于–1,predFlagLXB0设置为等于0,gbiIdxB0设置为等于0,其中,X为0或1:
–availableB0等于false。
–availableB1等于true,且亮度位置(xNbB1,yNbB1)和(xNbB0,yNbB0)具有相同的运动矢量和相同的参考索引。
–availableA1等于true,亮度位置(xNbA1,yNbA1)和(xNbB0,yNbB0)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–否则,availableFlagB0设置为等于1,并进行以下赋值运算:
mvLXB0=MvLX[xNbB0][yNbB0] (8-302)
refIdxLXB0=RefIdxLX[xNbB0][yNbB0] (8-303)
predFlagLXB0=PredFlagLX[xNbB0][yNbB0] (8-304)
如果(yCb–1)<((yCb>>CtbLog2SizeY)<<CtbLog2SizeY),
hpelIfIdxB0=2
否则,
hpelIfIdxB0=HpelIfIdx[xNbB0][yNbB0] (8-305)
gbiIdxB0=GbiIdx[xNbB0][yNbB0] (8-305)
对于availableFlagA0、refIdxLXA0、predFlagLXA0和mvLXA0的推导,以下情况适用:
–相邻亮度编码块内的亮度位置(xNbA0,yNbA0)设置为等于(xCb–1,yCb+cbWidth)。
–第6.4条中规定的块的可用性推导过程与设置为等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)以及作为输入的相邻亮度位置(xNbA0,yNbA0)同时被调用,而且所述输出被赋值给所述块的可用性标志availableA0
–变量availableFlagA0、refIdxLXA0、predFlagLXA0、mvLXA0推导如下:
–如果以下一个或多个条件为true,则availableFlagA0设置为等于0,mvLXA0的两个分量都设置为等于0,refIdxLXA0设置为等于–1,predFlagLXA0设置为等于0,gbiIdxA0设置为等于0,其中,X为0或1:
–availableA0等于false。
–availableA1等于true,且亮度位置(xNbA1,yNbA1)和(xNbA0,yNbA0)具有相同的运动矢量和相同的参考索引。
–availableB1等于true,亮度位置(xNbB1,yNbB1)和(xNbA0,yNbA0)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–availableB0等于true,亮度位置(xNbB0,yNbB0)和(xNbA0,yNbA0)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–否则,availableFlagA0设置为等于1,并进行以下赋值运算:
mvLXA0=MvLX[xNbA0][yNbA0] (8-306)
refIdxLXA0=RefIdxLX[xNbA0][yNbA0] (8-307)
predFlagLXA0=PredFlagLX[xNbA0][yNbA0] (8-308)
hpelIfIdxA0=HpelIfIdx[xNbA0][yNbA0] (8-309)
gbiIdxA0=GbiIdx[xNbA0][yNbA0] (8-309)
对于availableFlagB2、refIdxLXB2、predFlagLXB2和mvLXB2的推导,以下情况适用:
–相邻亮度编码块内的亮度位置(xNbB2,yNbB2)设置为等于(xCb–1,yCb–1)。
–第6.4条中规定的块的可用性推导过程与设置为等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)以及作为输入的相邻亮度位置(xNbB2,yNbB2)同时被调用,而且所述输出被赋值给所述块的可用性标志availableB2
–变量availableFlagB2、refIdxLXB2、predFlagLXB2、mvLXB2推导如下:
–如果以下一个或多个条件为true,则availableFlagB2设置为等于0,mvLXB2的两个分量都设置为等于0,refIdxLXB2设置为等于–1,predFlagLXB2设置为等于0,gbiIdxB2设置为等于0,其中,X为0或1:
–availableB2等于false。
–availableA1等于true,且亮度位置(xNbA1,yNbA1)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引。
–availableB1等于true,且亮度位置(xNbB1,yNbB1)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引。
–availableB0等于true,亮度位置(xNbB0,yNbB0)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–availableA0等于true,亮度位置(xNbA0,yNbA0)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–availableFlagA0+availableFlagA1+availableFlagB0+availableFlagB1=4,merge_triangle_flag[xCb][yCb]=0。
–否则,availableFlagB2设置为等于1,并进行以下赋值运算:
mvLXB2=MvLX[xNbB2][yNbB2] (8-310)
refIdxLXB2=RefIdxLX[xNbB2][yNbB2] (8-311)
predFlagLXB2=PredFlagLX[xNbB2][yNbB2] (8-312)
如果(yCb–1)<((yCb>>CtbLog2SizeY)<<CtbLog2SizeY),
hpelIfIdxB2=2
否则,
hpelIfIdxB2=HpelIfIdx[xNbB2][yNbB2] (8-313)
gbiIdxB2=GbiIdx[xNbB2][yNbB2] (8-313)
由上可知,根据所述当前块与所述CTU的边界是否重叠,确定所述当前块的相邻块的半像素插值滤波器索引。例如:等式(8-298)至(8-301)示出了用于确定相邻块B1的半像素插值滤波器索引的步骤(如图8和图9所示)。等式(8-302)至(8-305)示出了用于确定相邻块B0的半像素插值滤波器索引的步骤(如图8和图9所示)。等式(8-310)至(8-313)示出了用于确定相邻块B2的半像素插值滤波器索引的步骤(如图8和图9所示)。
基于上述描述,本发明旨在将SIF索引存储在HMVP表中(或通过HMVP表传播SIF索引),并在融合列表的构建过程中将SIF索引用于HMVP候选。SIF方法用于根据以下内容选择合适的插值滤波器(interpolation filter,IF):对于具有锐化边缘的区域,采用常规的基于DCT的插值滤波器,对于平滑区域(或者不需要保留锐化边缘的区域),采用替代6抽头插值滤波器(高斯滤波器)。对于常规的帧间预测,IF索引被显式指示;对于融合模式,不仅从对应的融合空间候选(HMVP融合候选)借用MV和参考图像索引,而且还从对应的融合空间候选借用IF索引。这与现有设计相反,现有设计中,IF索引不通过HMVP表传播。因此,在传统的设计中,对于经融合模式编码的块以及从HMVP表中获得的融合候选,不可能使用替代插值滤波器。HMVP表用于存储相邻块(但不一定是像常规空间融合候选一样的邻接块)的运动信息。HMVP的构思是使用块的运动信息,这些块在空间上接近当前块,但不一定与当前块邻接(如某些空间邻域中的块)。因此,例如,如果所述当前块包括平滑内容,而邻接块大多包括锐化内容,从邻接块借用IF索引这一方式将会失效。然而,平滑内容可以位于所述当前块的某些空间邻域的块内,并且此块的运动信息可以存储在HMVP表中。通过本文中呈现的HMVP表传播IF索引,允许对所述当前块使用合适的IF(例如,可以针对平滑内容或不需要保留锐化边缘的情况选择高斯滤波器),从而有利于提高译码效率。如果不采用本发明的技术,则一直对HMVP融合候选使用默认IF索引(对应于8抽头基于DCT的插值滤波器),且不会考虑所述当前块的具体内容(如是否需要保留锐化边缘)。
进一步地,本发明还旨在更新所述HMVP表时,在修剪过程中仅使用MV和参考图像索引(而不使用SIF索引)。
在HMVP记录中添加新的元素时,需要判断该新的元素是否用于进行记录的比较。直接的方法是在使用HMVP记录的所有元素进行记录比较(默认的C风格结构的比较)。然而,在本发明中,不使用IF索引进行HMVP记录比较。这种设计基于两个原因:
第一个原因是避免增加额外的计算复杂度。每次比较操作都会在HMVP表的更新过程和融合候选的构建过程中产生额外的计算操作。因此,如果能够减少或消除比较操作,就可以降低计算复杂度,从而提高译码效率。从实现的角度而言,如果这里可以避免不必要的比较操作,可以更好地实现本发明的目的。因此,对HMVP记录不进行默认的C风格结构的比较,而是将HMVP记录的元素划分到两个子集:用于进行记录比较的元素和不用于进行记录比较的元素。
第二个原因是保持HMVP记录的多样性。例如,如果两个HMVP记录包含相同的MV和相同的参考索引,而只包含不同的IF索引,由于这两个记录不是“完全不同”,因此是无效的。相反,在HMVP表的更新过程中,可以更有效地认为这两个HMVP记录是相同的。此时,如果一个新的记录与所述HMVP表中的已有记录相比只具有不同的IF索引,则所述新的记录不会被添加到所述HMVP表中。因此,与其它记录“完全不同”的“旧的”的记录(具有不同的MV或不同的参考索引)会被保留。换句话说,若要将一个新的记录添加到所述HMVP表中,所述新的记录不仅应与现有的记录按位不同,而且必须是“实质性地不同”。从译码效率而言,所述HMVP表中包含两个具有不同MV或不同参考索引的记录比包含两个只具有不同IF索引的记录更加有效。
进一步地,本发明还旨在限制融合可切换插值滤波器(SIF)的参数,以节省行内存。与之前的SIF设计相比,本发明引入了一种将SIF应用在运动信息继承工具之上的方法,而不增加行内存,从而节省了行内存带宽。在高分辨率的情况下,节省行内存将显著降低片上内存的成本。
由于针对融合模式下编码的CU采用了更加合适的IF索引,并且具有与基于历史的融合候选对应的融合索引,因此IF索引推导改进方法提高了译码效率。
本申请中使用的数学运算符与C编程语言中使用的数学运算符类似,具体可以参见HEVC标准规范中的数学运算符。但是,这里准确定义了整除运算和算术移位运算的结果,并且还定义了其它运算,如幂运算和实值除法运算。编号和计数规范通常从零开始,例如,“第一个”相当于第0个,“第二个”相当于第1个,等等。
下文对上述实施例中所示的编码方法和解码方法的应用以及使用这些方法的系统进行说明。
图18为用于实现内容分发服务的内容提供系统3100的框图。该内容提供系统3100包括捕获设备3102、终端设备3106,并且可选地包括显示器3126。捕获设备3102通过通信链路3104与终端设备3106进行通信。通信链路可以包括上文描述通信信道13。通信链路3104包括但不限于Wi-Fi、以太网、电缆、无线(3G/4G/5G)、USB或者其任何类型的组合等。
捕获设备3102生成数据,并且可以通过如上述实施例中所示的编码方法对数据进行编码。或者,捕获设备3102可以将数据分发到流媒体服务器(图中未示出),由该服务器对数据进行编码,并将经编码的数据发送到终端设备3106。捕获设备3102包括但不限于相机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、PDA、车载设备或其任意组合等。例如,捕获设备3102可以包括上文所述的源设备12。当数据包括视频时,捕获设备3102中包括的视频编码器20实际上可以执行视频编码处理。当数据包括音频(即声音)时,捕获设备3102中包括的音频编码器实际上可以执行音频编码处理。对于一些实际场景,捕获设备3102通过将经编码的视频数据和经编码的音频数据复用在一起来分发经编码的视频和经编码的音频数据。对于其它实际场景,例如在视频会议系统中,不对经编码的音频数据和经编码的视频数据进行复用。捕获设备3102将经编码的音频数据和经编码的视频数据分别分发到终端设备3106。
在内容提供系统3100中,终端设备310接收并再现经编码的数据。终端设备3106可以是具有数据接收和恢复能力的设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(network video recorder,NVR)/数字视频录像机(digitalvideo recorder,DVR)3112、电视机3114、机顶盒(set top box,STB)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personal digital assistant,PDA)3122、车载设备3124,或能够对上述经编码的数据进行解码的以上设备的任意组合等。例如,终端设备3106可以包括上文所述的目的地设备14。当经编码的数据包括视频时,终端设备中包括的视频解码器30优先进行视频解码。当经编码的数据包括音频时,终端设备中包括的音频解码器优先进行音频解码处理。
对于具有显示器的终端设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(network video recorder,NVR)/数字视频录像机(digitalvideo recorder,DVR)3112、电视机3114、个人数字助理(personal digital assistant,PDA)3122或车载设备3124,终端设备可以将经解码的数据馈送到该终端设备的显示器。对于不具有显示器的终端设备,例如,STB 3116、视频会议系统3118或视频监控系统3120,终端设备与外接显示器3126连接,以接收并显示经解码的数据。
当该系统中的每个设备进行编码或解码时,可以使用如上述实施例中所示的图像编码设备或图像解码设备。
图19为终端设备3106的一个示例的结构图。在终端设备3106从捕获设备3102接收到流之后,协议处理单元3202分析该流的传输协议。所述协议包括但不限于实时流媒体协议(Real Time Streaming Protocol,RTSP)、超文本传输协议(Hyper Text TransferProtocol,HTTP)、HTTP直播流媒体协议(HTTP Live streaming protocol,HLS)、MPEG-DASH、实时传输协议(Real-time Transport protocol,RTP)、实时消息传输协议(RealTime Messaging Protocol,RTMP),或其任何类型的组合等。
在协议处理单元3202对所述流进行处理之后,生成流文件。将文件输出到解复用单元3204。解复用单元3204可以将复用数据分离为经编码的音频数据和经编码的视频数据。如上文所述,对于一些实际场景,例如在视频会议系统中,不对经编码的音频数据和经编码的视频数据进行复用。在这种情况下,经编码的数据被发送到视频解码器3206和音频解码器3208,而不通过解复用单元3204。
通过解复用处理,生成视频基本流(elementary stream,ES)和音频ES,且可选地生成字幕。视频解码器3206,包括如上述实施例中说明的视频解码器30,通过如上述实施例中所示的解码方法对视频ES进行解码以生成视频帧,并将此数据馈送到同步单元3212。音频解码器3208对音频ES进行解码以生成音频帧,并将此数据馈送到同步单元3212。或者,在将视频帧馈送到同步单元3212之前,可以将视频帧存储在缓冲区(图19中未示出)中。类似地,在将音频帧馈送到同步单元3212之前,可以将音频帧存储在缓冲区(图Y中未示出)中。
同步单元3212同步视频帧和音频帧,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频信息和音频信息的呈现。可以使用与经译码的音频和可视数据的呈现相关的时间戳和与数据流的分发相关的时间戳,将信息译码到语法中。
如果所述流中包括字幕,则字幕解码器3210对字幕进行解码,使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。
本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以在如汽车系统等其它系统中使用。
尽管本发明实施例主要根据视频译码进行了描述,但需要说明的是,译码系统10、编码器20和解码器30(相应地,系统10)的实施例以及本文描述的其它实施例也可以用于静止图像处理或译码,即对视频译码中独立于任何先前或连续图像的单个图像进行处理或译码。一般而言,如果图像处理译码仅限于单个图像17,则只有帧间预测单元244(编码器)和帧间预测单元344(解码器)不可用。视频编码器20和视频解码器30的所有其它功能(也称为工具或技术)同样可以用于静止图像处理,例如残差计算204/304、变换206、量化208、反量化210/310、(逆)变换212/312、分割262/362、帧内预测254/354和/或环路滤波220/320、熵编码270和熵解码304。
编码器20和解码器30等的实施例以及本文中结合编码器20和解码器30等描述的功能可以通过硬件、软件、固件或其任意组合实现。如果通过软件实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质中或通过通信介质发送,且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于有形介质(例如数据存储介质),或者包括任何根据通信协议等有利于将计算机程序从一个地方传递到另一个地方的通信介质。通过这种方式,计算机可读介质一般可以对应于(1)非瞬时性有形计算机可读存储介质或(2)信号或载波等通信介质。数据存储介质可以是通过一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索用于实施本发明所描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存或可用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴缆线、光纤缆线、双绞线、数字用户线(digitalsubscriber line,DSL)或红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,则同轴缆线、光纤缆线、双绞线、DSL或红外线、无线电和微波等无线技术包含在介质的定义中。但是,应理解,计算机可读存储介质和数据存储介质并不包括连接、载波、信号或其它瞬时性介质,而是涉及非瞬时性有形存储介质。本文所使用的磁盘和光盘包含压缩光盘(compact disc,CD)、激光光盘、光学光盘、数字多功能光盘(digital versatiledisc,DVD)、软盘和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘则通过激光以光学方式再现数据。以上各项的组合也应包括在计算机可读介质的范围内。
指令可以通过一或多个处理器来执行,例如,一个或多个数字信号处理器(digital signal processor,DSP)、一个或多个通用微处理器、一个或多个专用集成电路(application specific integrated circuit,ASIC)、一个或多个现场可编程逻辑阵列(field programmable logic array,FPGA)或其它同等集成或离散逻辑电路等。因此,本文所使用的术语“处理器”可以指上述结构中的任一种或适用于实施本文所描述的技术的任何其它结构。另外,在一些方面中,本文所描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入在组合的编解码器中。而且,这些技术可以在一个或多个电路或逻辑元件中完全实现。
本发明技术可以在多种设备或装置中实现,这些设备或装置包括无线手机、集成电路(integrated circuit,IC)或一组IC(例如芯片组)。本发明中描述了各种组件、模块或单元,以强调用于执行所公开的技术的设备的功能方面,但未必需要通过不同的硬件单元实现。相反,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过包括如上所述的一个或多个处理器的互操作硬件单元的集合来提供。

Claims (25)

1.一种用于构建基于历史的运动信息候选列表的方法,其特征在于,包括:
获得基于历史的运动信息候选列表,其中,所述基于历史的运动信息候选列表为包括N个基于历史的运动信息候选Hk(k=0、……、N–1)的有序列表,所述N个基于历史的运动信息候选Hk包括在一个块之前的N个先前块的运动信息,N为大于0的整数,每个基于历史的运动信息候选包括运动信息,所述运动信息包括元素:
(i)一个或多个运动矢量MV,
(ii)与所述一个或多个MV对应的一个或多个参考图像索引,
(iii)插值滤波器索引;
根据所述块的运动信息更新所述基于历史的运动信息候选列表,其中,所述块的运动信息包括元素:
(i)所述块的一个或多个运动矢量MV,
(ii)与所述块的MV对应的一个或多个参考图像索引,
(iii)插值滤波器索引。
2.根据权利要求1所述的方法,其特征在于,所述更新所述基于历史的运动信息候选列表包括:
如果所述基于历史的运动信息候选列表中的每个基于历史的运动信息候选的以下至少一个元素与所述块的运动信息中的对应元素不同,将包含所述块的运动信息的基于历史的运动信息候选Hk(k=N)添加到所述基于历史的运动信息候选列表中,其中,所述至少一个元素为:
(i)所述一个或多个运动矢量MV,
(ii)与所述一个或多个MV对应的所述一个或多个参考图像索引。
3.根据权利要求1所述的方法,其特征在于,所述更新所述基于历史的运动信息候选列表包括:
如果所述基于历史的运动信息候选列表中基于历史的运动信息候选的以下元素与所述块的运动信息中的对应元素相同,从所述基于历史的运动信息候选列表中删除所述基于历史的运动信息候选,并将包含所述块的运动信息的基于历史的运动信息候选Hk(k=N–1)添加到所述基于历史的运动信息候选列表中,其中,所述元素为:
(i)一个或多个运动矢量MV,
(ii)与所述一个或多个MV对应的一个或多个参考图像索引。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述更新所述基于历史的运动信息候选列表包括:
如果N等于预定义值,从所述基于历史的运动信息候选列表中删除基于历史的运动信息候选Hk(k=0),并将所述块的运动信息作为基于历史的运动信息候选Hk(k=N–1)添加到所述基于历史的运动信息候选列表中。
5.根据权利要求2或3所述的方法,其特征在于,还包括:
比较所述基于历史的运动信息候选列表中基于历史的运动信息候选的运动矢量是否与所述块的对应运动矢量相同;
比较所述基于历史的运动信息候选的参考图像索引是否与所述块的对应参考图像索引相同。
6.根据权利要求2或3所述的方法,其特征在于,还包括:
比较每个基于历史的运动信息候选的所述运动矢量中的至少一个运动矢量是否与所述块的对应运动矢量不同;
比较每个HMVP候选的所述参考图像索引中的至少一个参考图像索引是否与所述块的对应参考图像索引不同。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述基于历史的运动信息候选包括的所述插值滤波器索引表示半样本插值滤波器集合中的半样本插值滤波器;仅当所述基于历史的运动信息候选的所述一个或多个MV中的至少一个MV指向半样本位置时,所述半样本插值滤波器才被应用于对半样本值进行插值。
8.一种用于视频信号帧中的块的帧间预测方法,其特征在于,包括:
构建基于历史的运动信息候选列表,其中,所述基于历史的运动信息候选列表为包括N个基于历史的运动信息候选Hk(k=0、……、N–1)的有序列表,所述N个基于历史的运动信息候选Hk包括在所述块之前的N个先前块的运动信息,N为大于0的整数,每个基于历史的运动信息候选包括元素:
(i)一个或多个运动矢量MV,
(ii)与所述MV对应的一个或多个参考图像索引,
(iii)插值滤波器索引;
将所述基于历史的运动信息候选列表中的一个或多个基于历史的运动信息候选添加到所述块的运动信息候选列表中;
根据所述运动信息候选列表推导所述块的运动信息。
9.根据权利要求8所述的方法,其特征在于,仅当推导到的运动信息的一个或多个MV中的至少一个MV指向半样本位置时,替代半样本插值滤波器才被应用,所述替代半样本插值滤波器由包含在所述推导到的运动信息中的插值滤波器索引表示。
10.根据权利要求8所述的方法,其特征在于,所述基于历史的运动信息候选包括的所述插值滤波器索引表示半样本插值滤波器集合中的半样本插值滤波器;仅当所述基于历史的运动信息候选的所述一个或多个MV中的至少一个MV指向半样本位置时,所述半样本插值滤波器才被应用于对半样本值进行插值。
11.根据权利要求8至10中任一项所述的方法,其特征在于,还包括:
如果所述基于历史的运动信息候选列表中的每个基于历史的运动信息候选的以下至少一个元素与所述块的运动信息中的对应元素不同,将包含所述块的运动信息的基于历史的运动信息候选Hk(k=N)添加到所述基于历史的运动信息候选列表中,其中,所述至少一个元素为:
(i)所述一个或多个运动矢量MV,
(ii)与所述一个或多个MV对应的所述一个或多个参考图像索引。
12.根据权利要求8至10中任一项所述的方法,其特征在于,还包括:
如果所述基于历史的运动信息候选列表中基于历史的运动信息候选的以下元素与所述块的运动信息中的对应元素相同,从所述基于历史的运动信息候选列表中删除所述基于历史的运动信息候选,并将包含所述块的运动信息的基于历史的运动信息候选Hk(k=N–1)添加到所述基于历史的运动信息候选列表中,其中,所述元素为:
(i)一个或多个运动矢量MV,
(ii)与所述MV对应的一个或多个参考图像索引。
13.根据权利要求8至12中任一项所述的方法,其特征在于,还包括:
如果N等于预定义值,从所述基于历史的运动信息候选列表中删除基于历史的运动信息候选Hk(k=0),并将所述块的运动信息作为基于历史的运动信息候选Hk(k=N–1)添加到所述基于历史的运动信息候选列表中。
14.根据权利要求11或12所述的方法,其特征在于,还包括:
比较所述基于历史的运动信息候选列表中基于历史的运动信息候选的运动矢量是否与所述块的对应运动矢量相同;
比较所述基于历史的运动信息候选的参考图像索引是否与所述块的对应参考图像索引相同。
15.根据权利要求11或12所述的方法,其特征在于,还包括:
比较每个基于历史的运动信息候选的所述运动矢量中的至少一个运动矢量是否与所述块的对应运动矢量不同;
比较每个HMVP候选的所述参考图像索引中的至少一个参考图像索引是否与所述块的对应参考图像索引不同。
16.根据权利要求8至15中任一项所述的方法,其特征在于,所述基于历史的运动信息候选列表的长度为N,N为5或6。
17.根据权利要求8至16中任一项所述的方法,其特征在于,所述运动信息候选列表用于融合模式或跳过模式。
18.根据权利要求8至17中任一项所述的方法,其特征在于,所述根据所述运动信息候选列表推导所述块的运动信息包括:
从所述运动信息候选列表推导候选索引指示的运动信息,作为所述当前块的运动信息。
19.根据权利要求8至18中任一项所述的方法,其特征在于,还包括:
当所述推导到的运动信息中包含的一个或多个运动矢量MV中的至少一个运动矢量指向半样本位置时,通过对所述运动矢量指向的所述参考图像的样本值使用半样本插值滤波器,获得所述块的预测样本值,所述半样本插值滤波器由推导到的运动信息中包含的半样本插值滤波器索引表示,所述参考图像由所述推导到的运动信息中包含的所述一个或多个参考图像索引表示。
20.一种编码器(20),其特征在于,包括用于执行根据权利要求1至19中任一项所述的方法的处理电路。
21.一种解码器(30),其特征在于,包括用于执行根据权利要求1至19中任一项所述的方法的处理电路。
22.一种计算机程序产品,其特征在于,包括用于执行根据权利要求1至19中任一项所述的方法的程序代码。
23.一种解码器,其特征在于,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质与所述处理器耦合并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使得所述解码器执行根据权利要求1至19中任一项所述的方法。
24.一种编码器,其特征在于,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质与所述处理器耦合并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使得所述编码器执行根据权利要求1至19中任一项所述的方法。
25.一种非瞬时性计算机可读存储介质,其特征在于,携带程序代码,当所述程序代码由计算机设备执行时,使得所述计算机设备执行根据权利要求1至19中任一项所述的方法。
CN202080029582.XA 2019-04-19 2020-04-20 用于推导当前块的插值滤波器索引的方法和装置 Pending CN113711601A (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201962836072P 2019-04-19 2019-04-19
US62/836,072 2019-04-19
US201962845938P 2019-05-10 2019-05-10
US62/845,938 2019-05-10
US201962909763P 2019-10-02 2019-10-02
US201962909761P 2019-10-02 2019-10-02
US62/909,763 2019-10-02
US62/909,761 2019-10-02
PCT/CN2020/085681 WO2020211870A1 (en) 2019-04-19 2020-04-20 Method and apparatus for deriving interpolation filter index for current block

Publications (1)

Publication Number Publication Date
CN113711601A true CN113711601A (zh) 2021-11-26

Family

ID=72837053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080029582.XA Pending CN113711601A (zh) 2019-04-19 2020-04-20 用于推导当前块的插值滤波器索引的方法和装置

Country Status (11)

Country Link
US (1) US11924407B2 (zh)
EP (1) EP3954122A4 (zh)
JP (2) JP7346589B2 (zh)
KR (1) KR20210149850A (zh)
CN (1) CN113711601A (zh)
AU (1) AU2020258987A1 (zh)
BR (1) BR112021020984A2 (zh)
CA (1) CA3137388A1 (zh)
CL (1) CL2021002721A1 (zh)
MX (1) MX2021012760A (zh)
WO (1) WO2020211870A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020032531A1 (ko) * 2018-08-06 2020-02-13 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN114503564A (zh) * 2019-08-05 2022-05-13 Lg电子株式会社 使用运动信息候选的视频编码/解码方法和设备及发送比特流的方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1983759A1 (en) * 2007-04-19 2008-10-22 Matsushita Electric Industrial Co., Ltd. Estimation of separable adaptive interpolation filters for hybrid video coding
CN101790092B (zh) * 2010-03-15 2013-02-06 河海大学常州校区 基于图像块编码信息的智能滤波器设计方法
KR20130098121A (ko) * 2012-02-27 2013-09-04 세종대학교산학협력단 적응적 보간 필터를 이용하는 영상 부호화/복호화 장치 및 영상을 부호화/복호화하는 방법
EP3264769A1 (en) * 2016-06-30 2018-01-03 Thomson Licensing Method and apparatus for video coding with automatic motion information refinement
US11044480B2 (en) * 2019-01-24 2021-06-22 Google Llc More accurate 2-tap interpolation filters for video compression
WO2020173477A1 (en) * 2019-02-27 2020-09-03 Beijing Bytedance Network Technology Co., Ltd. Regression-based motion vector field based sub-block motion vector derivation
CN113711589B (zh) * 2019-04-01 2022-10-25 北京字节跳动网络技术有限公司 帧间编解码模式中的二分之一像素插值滤波器

Also Published As

Publication number Publication date
EP3954122A1 (en) 2022-02-16
KR20210149850A (ko) 2021-12-09
MX2021012760A (es) 2022-01-25
WO2020211870A1 (en) 2020-10-22
JP7346589B2 (ja) 2023-09-19
EP3954122A4 (en) 2022-06-08
JP2023169226A (ja) 2023-11-29
BR112021020984A2 (pt) 2021-12-21
AU2020258987A1 (en) 2021-11-11
US11924407B2 (en) 2024-03-05
CL2021002721A1 (es) 2022-07-01
JP2022529705A (ja) 2022-06-23
CA3137388A1 (en) 2020-10-22
US20220038686A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
CN113315974B (zh) 视频解码器和方法
CN112823518A (zh) 用于译码块的三角划分块的帧间预测的装置及方法
AU2019394248B2 (en) An encoder, a decoder and corresponding methods of boundary strength derivation of deblocking filter
EP3864846B1 (en) An encoder, a decoder and corresponding methods for merge mode
CN112913250A (zh) 编码器、解码器及对任意ctu尺寸使用ibc搜索范围优化的对应方法
CN113455005A (zh) 用于帧内子分区译码工具所产生的子分区边界的去块效应滤波器
CN114449265A (zh) 用于帧内平滑的方法和装置
CN113660497A (zh) 编码器、解码器和使用ibc合并列表的对应方法
CN114450958A (zh) 用于减小增强插值滤波器的内存带宽的仿射运动模型限制
US11924407B2 (en) Method and apparatus for deriving an interpolation filter index for a current block
CN115349257A (zh) 基于dct的内插滤波器的使用
CN114830665A (zh) 仿射运动模型限制
CN113615173A (zh) 对仿射译码块进行光流预测修正的方法及装置
CN112640470A (zh) 视频编码器、视频解码器及对应方法
CN114930840A (zh) 增强型插值滤波器的运动矢量范围的推导
CN114830652A (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