CN111213376A - 使用基于编码结构的候选列表构建对视频数据的运动信息进行编码 - Google Patents

使用基于编码结构的候选列表构建对视频数据的运动信息进行编码 Download PDF

Info

Publication number
CN111213376A
CN111213376A CN201880066454.5A CN201880066454A CN111213376A CN 111213376 A CN111213376 A CN 111213376A CN 201880066454 A CN201880066454 A CN 201880066454A CN 111213376 A CN111213376 A CN 111213376A
Authority
CN
China
Prior art keywords
block
sub
current sub
neighboring
parent
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
CN201880066454.5A
Other languages
English (en)
Inventor
张凯
陈建乐
M·卡切维奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN111213376A publication Critical patent/CN111213376A/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/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
    • 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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Abstract

一种用于对视频数据进行编码的示例装置包含:存储器,所述存储器包括被配置成存储视频数据的电路系统;以及一或多个处理器,所述一或多个处理器实施在电路系统中并且被配置成:将所述视频数据的父块划分为邻近子块和当前子块,其中所述邻近子块和所述当前子块对应于所述父块的分区树结构的叶节点;响应于将所述父块划分为所述邻近子块和所述当前子块构建所述当前子块的包含多个运动向量候选的运动候选列表,使得所述多个运动向量候选省略表示所述邻近子块的运动向量的数据;并且使用所述多个运动向量候选中的一个对所述当前子块的运动信息进行编码。

Description

使用基于编码结构的候选列表构建对视频数据的运动信息进 行编码
本申请要求于2017年10月17日提交的美国临时申请第62/573,607号和于2018年10月16日提交的美国专利申请16/161,938的权益,所述申请的全部内容通过引用的方式并入本文。
技术领域
本公开涉及视频编码。
背景技术
数字视频功能可以并入到广泛范围的装置中,包含数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型计算机或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏机、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议装置、视频流式传输装置等。数字视频装置实施视频编码技术,如在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、高级视频编码(AVC)、高效视频编码(HEVC)标准、ITU-T H.265/高效视频编码(HEVC)以及此类标准的扩展限定的标准中描述的那些技术。通过实施此类视频编码技术,视频装置可以更高效地发射、接收、编码、解码和/或存储数字视频信息。
视频编码技术包含空间(图片内)预测和/或时间(图片间)预测,以减少或去除视频序列中固有的冗余。对于基于块的视频编码,可以将视频切片(例如,视频图片或视频图片的一部分)划分为视频块,所述视频块也可以被称为编码树单元(CTU)、编码单元(CU)和/或编码节点。相对于同一图片中的邻近块中的参考样本,使用空间预测对图片的帧内编码(I)切片中的视频块进行编码。图片的帧间编码(P或B)切片中的视频块可以相对于同一图片中的邻近块中的参考样本使用空间预测或相对于其它参考图片中的参考样本使用时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。
发明内容
本公开总体上描述了用于对视频数据的如运动向量等运动信息进行编码的技术。更具体地,本公开的技术包含基于编码结构构建用于在运动信息编码期间预测运动向量的候选列表。
在一个实例中,一种对视频数据进行编码(例如,编码或解码)的方法包含:将视频数据的父块划分为邻近子块和当前子块,其中所述邻近子块和所述当前子块对应于所述父块的分区树结构的叶节点;响应于将所述父块划分为所述邻近子块和所述当前子块构建所述当前子块的包含多个运动向量候选的运动候选列表,使得所述多个运动向量候选省略表示所述邻近子块的运动向量的数据;以及使用所述多个运动向量候选中的一个对所述当前子块的运动信息进行编码。
在另一个实例中,一种用于对视频数据进行编码的装置包含:存储器,所述存储器包括被配置成存储视频数据的电路系统;以及一或多个处理器,所述一或多个处理器实施在电路系统中并且被配置成:将所述视频数据的父块划分为邻近子块和当前子块,其中所述邻近子块和所述当前子块对应于所述父块的分区树结构的叶节点;响应于将所述父块划分为所述邻近子块和所述当前子块构建所述当前子块的包含多个运动向量候选的运动候选列表,使得所述多个运动向量候选省略表示所述邻近子块的运动向量的数据;并且使用所述多个运动向量候选中的一个对所述当前子块的运动信息进行编码。
在另一个实例中,一种计算机可读存储媒体在其上存储有指令,所述指令在被执行时使一或多个处理器:将视频数据的父块划分为邻近子块和当前子块,其中所述邻近子块和所述当前子块对应于所述父块的分区树结构的叶节点;响应于将所述父块划分为所述邻近子块和所述当前子块构建所述当前子块的包含多个运动向量候选的运动候选列表,使得所述多个运动向量候选省略表示所述邻近子块的运动向量的数据;并且使用所述多个运动向量候选中的一个对所述当前子块的运动信息进行编码。
在另一个实例中,一种用于对视频数据进行编码的装置包含:用于将视频数据的父块划分为邻近子块和当前子块的装置,其中所述邻近子块和所述当前子块对应于所述父块的分区树结构的叶节点;用于响应于将所述父块划分为所述邻近子块和所述当前子块构建所述当前子块的包含多个运动向量候选的运动候选列表使得所述多个运动向量候选省略表示所述邻近子块的运动向量的数据的装置;以及用于使用所述多个运动向量候选中的一个对所述当前子块的运动信息进行编码的装置。
下面在附图和说明书中阐述了一或多个实例的细节。根据本说明书、附图和权利要求书,其它特征、目的和优点将显而易见。
附图说明
图1A和1B是展示了用于高效视频编码(HEVC)的运动向量预测的空间邻近运动向量候选的概念图。
图2A和2B是展示了与时间运动向量预测值(TMVP)候选和根据HEVC的运动向量缩放有关的技术的概念图。
图3是展示了HEVC的空间合并候选的示例集合的概念图。
图4是展示了用于根据HEVC来构建合并候选列表的示例过程的流程图。
图5是展示了可以利用用于对运动信息进行编码的技术的示例视频编码和解码系统的框图。
图6A和6B是展示了示例四叉树二叉树(QTBT)结构和对应的编码树单元(CTU)的概念图。
图7A-7C是展示了视频编码器和视频解码器可以避免检查图3的邻近块A1的数据的情况的实例的概念图。
图8A-8C是展示了视频编码器和视频解码器可以避免检查图3的邻近块B1的数据的情况的实例的概念图。
图9是展示了可以实施本公开的用于对运动信息进行编码的技术的视频编码器的实例的框图。
图10是展示了可以实施本公开的用于对运动信息进行编码的技术的视频解码器的实例的框图。
图11是展示了根据本公开的技术的用于对当前块进行编码的示例方法的流程图。
图12是展示了根据本公开的技术的用于对视频数据的当前块进行解码的示例方法的流程图。
具体实施方式
视频编码标准包含ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IECMPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual和ITU-T H.264(也称为ISO/IECMPEG-4AVC),包含其可伸缩视频编码(SVC)和多视点视频编码(MVC)扩展。“用于通用视听服务的高级视频编码(Advanced video coding for generic audiovisual services)”,ITU-T建议H.264(ITU-T Recommendation H.264),2010年3月中描述了MVC的联合草案。另外,还有新研发的视频编码标准,即ITU-T H.265,也被称为高效视频编码(HEVC),由ITU-T视频编码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)的视频编码联合协作小组(JCT-VC)研发。可从phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip获得HEVC的草案。
本公开的技术总体上涉及编码(coding)(编码(encoding)和解码)运动信息,如对运动向量的预测和编码。通常,视频编码包含将图片划分为单独的块并且然后对块的数据进行编码。视频编码器(video coder)(如视频编码器(video encoder)或视频解码器)可以使用帧间预测或帧内预测来预测块。帧内预测通常涉及依据同一图片的邻近数据来预测块,而帧间预测通常涉及依据先前编码的图片的参考块来预测块。具体地,块的运动向量可以识别参考块。运动向量本身形成运动信息的一部分并且也可以被预测性地编码。例如,视频编码器可以依据运动向量预测值预测运动向量,视频编码器可以从运动候选列表中的一组运动候选中选择所述运动向量预测值。根据本公开的技术,视频编码器可以基于编码结构来构建运动候选列表。
根据HEVC,例如,对于图片的每个帧间预测块,一组运动信息可以是可用的。所述一组运动信息可以含有前向和/或后向预测方向的运动信息。这里,前向和后向预测方向是分别与当前图片或切片的参考图片列表0(RefPicList0)和参考图片列表1(RefPicList1)相对应的两个预测方向。术语“前向”和“后向”不一定具有几何含义。相反,它们用于区分运动向量所基于的参考图片列表。前向预测意指基于参考图片列表0形成的预测,而后向预测意指基于参考图片列表1形成的预测。双向预测是指参考列表0和参考列表1均用于形成给定块的预测块的情况。
在HEVC中,对于给定的图片或切片,如果仅使用一个参考图片列表,则前向预测图片或切片内的每个块。如果两个参考图片列表均用于给定图片或切片,则可以前向预测或后向预测或双向预测图片或切片内的块。
对于每个预测方向,依据HEVC,运动信息含有参考索引和运动向量。参考索引用于识别相应参考图片列表(例如,RefPicList0或RefPicList1)中的参考图片。运动向量具有水平分量和竖直分量两者,每个分量分别指示沿水平方向和竖直方向的偏移值。在一些描述中,为简单起见,短语“运动向量”可以与运动信息可互换地使用,以指示运动向量和其相关联的参考索引两者。
图片次序计数(POC)广泛用于如HEVC等视频编码标准中,以识别图片的显示顺序。尽管会存在一个编码视频序列中的两个图片可以具有相同POC值的情况,但这通常不会在编码视频序列中发生。当比特流中存在多个编码视频序列时,具有相同POC值的图片在解码顺序方面会更接近彼此。图片的POC值通常用于参考图片列表构建、对如HEVC中设置的参考图片的推导以及运动向量缩放。
在H.264/AVC中,每个帧间预测的宏块(MB)可以通过以下四种不同方式中的一种进行划分:
·一个16×16MB分区
·两个16×8MB分区
·两个8×16MB分区
·四个8×8MB分区
依据H.264/AVC,一个MB中的不同MB分区针对每个方向(RefPicList0或RefPicList1)可以具有不同的参考索引值。当MB未划分为四个8×8MB分区时,每个MB分区在每个方向上只有一个运动向量。当将MB划分为四个8×8MB分区时,每个8×8MB分区可以进一步划分为子块,所述子块中的每个子块在每个方向上可以具有不同的运动向量。有四种不同的方法从8×8MB分区得到子块:
·一个8×8子块
·两个8×4子块
·两个4×8子块
·四个4×4子块
每个子块在每个方向上可以具有不同的运动向量。因此,在等于或高于H.264/AVC中的子块的水平上,运动向量是存在的。
在H.264/AVC中,针对B切片中的跳过或直接模式,在MB或MB分区水平上可以启用时间直接模式。对于每个MB分区,使用与当前块的RefPicList1[0]中的当前MB分区处于同一位置的块的运动向量来推导运动向量。处于同一位置的块中的每个运动向量基于POC距离进行缩放。在H.264/AVC中,直接模式也可以用于预测来自空间邻居的运动信息。
在HEVC中,切片中最大的编码单元被称为编码树块(CTB)或编码树单元(CTU)。CTB含有四叉树,所述四叉树的节点是编码单元。在HEVC主配置文件中,CTB的大小范围可以在16×16到64×64之间(尽管在技术上可以支持8×8CTB大小)。尽管为并且小到8×8,但是编码单元(CU)可以与CTB的大小相同。每个编码单元用一种模式进行编码。当对CU进行帧间编码时,CU可以进一步划分为2个或4个预测单元(PU)或者在进一步划分不适用时变成仅一个PU。当一个CU中存在两个PU时,所述两个PU可以是一半大小的矩形或者是具有CU的1/4或3/4大小的两个矩形大小。当对CU进行帧间编码时,针对每个PU,存在一组运动信息。另外,用唯一帧间预测模式对每个PU进行编码以推导所述一组运动信息。
在HEVC中,有两种帧间预测模式,针对预测单元(PU)分别被命名为合并(跳过被视为合并的特殊情况)模式和高级运动向量预测(AMVP)模式。在AMVP或合并模式下,维持多个运动向量预测值的运动向量(MV)候选列表。当前PU的一或多个运动向量以及在合并模式下的参考索引是通过从MV候选列表中取出一个候选来生成的。
HEVC的MV候选列表在合并模式下最多含有5个候选并且在AMVP模式下含有仅两个候选。合并候选可以含有一组运动信息,例如,与参考图片列表(列表0和列表1)和参考索引两者相对应的运动向量。如果通过合并索引识别出合并候选,则将参考图片用于当前块的预测,并且确定相关联的运动向量。然而,在AMVP模式下,对于来自列表0或列表1的每个潜在预测方向,由于AMVP候选仅含有运动向量,因此需要将参考索引与MVP索引一起明确地以信号发送到MV候选列表。在AMVP模式下,可以进一步完善预测的运动向量。如上文可以看出的,合并候选对应于完整的一组运动信息,而AMVP候选针对特定预测方向和参考索引含有仅一个运动向量。视频编码器类似地从相同空间和时间邻近块推导两种模式下的候选。
图1A和1B是展示了用于HEVC的运动向量预测的空间邻近运动向量候选的概念图。具体地,图1A展示了用于合并模式的候选,并且图1B展示了用于AMVP的候选。对于特定PU(PU0),尽管针对合并模式和AMVP模式,从邻近块生成候选的方法不同,但是视频编码器从邻近块推导空间MV候选,如图1A和1B所示。
具体地,依据HEVC在合并模式下,最多四个空间MV候选可以用数字以图1A所示的顺序来推导,并且顺序如下:左(0,A1)、上(1,B1)、右上(2,B0)、左下(3,A0)和左上(4,B2),如图1A所示。
依据HEVC在AVMP模式下,邻近块分为两个群组:包含块0和1的左边群组和包含块2、3和4的上方群组,如图1B所示。对于每个群组,参考与以信号发送的参考索引所指示的参考图片相同的参考图片的邻近块中的潜在候选具有最高优先级被选择以形成群组的最终候选。可能没有邻近块含有指向同一参考图片的运动向量。因此,如果找不到此类候选,则将会缩放第一个可用的候选以形成最终候选;从而可以补偿时间距离差。
图2A和2B是展示了与时间运动向量预测值(TMVP)候选和根据HEVC的运动向量缩放有关的技术的概念图。具体地,图2A展示了TMVP候选,而图2B展示了针对TMVP的MV缩放。
当TMVP被启用并且可用时,依据HEVC,视频编码器将TMVP候选添加到MV候选列表中、在空间运动向量候选之后。对于合并模式和AMVP模式,TMVP候选的运动向量推导过程是相同的。然而,合并模式下TMVP候选的目标参考索引始终设为0。
TMVP候选推导的主块位置是在并置的PU外面的右下块,如在图2A中作为块“T”示出的,以补偿对用于生成空间邻近候选的上方块和左边块的偏差。然而,如果所述块位于当前CTB行外面或者运动信息不可用,则用PU的中心块取代所述块,也如图2A所示。
根据HEVC,TMVP候选的运动向量是从处于同一位置的图片的处于同一位置的PU推导的,以切片水平指示。处于同一位置的PU的运动向量被称为并置的MV。类似于H.264/AVC中的时间直接模式,为了推导TMVP候选运动向量,需要对处于同一位置的MV进行缩放以补偿时间距离差,如图2B所示。
HEVC描述了与合并模式和AMVP模式有关的另外的技术。例如,根据HEVC,视频编码器可以缩放运动向量。假设运动向量的值与在呈现时间的图片之间的距离成比例。运动向量将两个图片即参考图片和含有运动向量的图片(即,含有图片或当前图片)相关联。当使用运动向量来预测另一个运动向量时,基于这些图片的图片次序计数(POC)值来计算含有图片与参考图片的距离。对于要预测的运动向量,其相关联的含有图片和参考图片均可以不同。因此,计算新的距离(基于POC)。而且,基于这两个POC距离缩放运动向量。对于空间邻近候选,所述两个运动向量的含有图片相同,而参考图片不同。在HEVC中,针对空间和时间邻近候选,运动向量缩放适用于TMVP和AMVP两者。
HEVC还描述了用于生成人工运动向量候选的技术。如果运动向量候选列表不完整,则可以生成人工运动向量候选并将其插入列表的末尾,直到所述列表具有所有需要的候选为止。在合并模式下,有两种类型的人工MV候选:组合的双向预测候选(仅针对B切片推导出)和默认的固定候选。如果第一种类型没有提供足够的人工候选,则仅将零候选用于AMVP。对于已经在候选列表中并且具有必要的运动信息的每对候选,通过参考列表0中的图片的第一候选的运动向量与参考列表1中的图片的第二候选的运动向量的组合来推导双向组合运动向量候选。
HEVC还描述了用于将候选插入候选列表中的修剪过程。来自不同块的候选可能恰好是相同的,这降低了合并/AMVP候选列表的效率。根据HEVC的视频编码器应用修剪过程来解决此问题。根据此过程,视频编码器将当前候选列表中的一个候选与其它候选进行比较,以在一定程度上避免插入相同的候选。为了降低复杂性,代替将每个潜在的候选与所有其它现有的候选进行比较,仅应用了有限次数的修剪。
图3是展示了HEVC的空间合并候选的示例集合的概念图。如上文所讨论的,存在各种基于优先级的候选列表。即,对于基于优先级的候选列表,每个候选依据预定义优先级插入到候选列表中。例如,在HEVC中,通过基于预定义顺序(或依据预定义优先级)插入候选来构建合并候选列表和AMVP候选列表。如图3所示,通过按照预定义顺序(A1→B1→B0→A0→B2)插入空间合并候选来构建合并候选列表。
在图3中,块A0表示当前块的最左下邻近块的实例。块A1表示在当前块的最左下邻近块上方的左邻近块的实例。块B1表示当前块的右上邻近块的实例。
图4是展示了用于根据HEVC来构建合并候选列表的示例过程的流程图。在本实例中,逐个检查每个空间或时间邻近块,以识别出邻近块是否可以提供有效的合并候选。术语“有效”意指块存在、被帧间预测编码,候选列表未满,并且块中的运动信息未被当前候选列表中的现有候选剪除。如果在检查所有空间和时间邻近块之后合并候选列表未满,则将添加人工候选以完成合并候选列表。这里使用的术语“块”(例如,块0到块4和当前块)可以是编码单元/块、预测单元/块、子PU、变换单元/块或任何其它编码结构。
在HEVC中,切片中最大的编码单元被称为编码树单元(CTU)。CTU含有四叉树,所述四叉树的节点是编码单元。在HEVC主配置文件中,CTU的大小范围可以在16×16个样本(或像素)到64×64个样本之间(尽管在技术上可以支持8×8CTU大小)。在HEVC中,编码单元(CU)可以与CTU的大小相同或小到8×8。每个编码单元用一种模式进行编码。在对CU进行帧间编码时,CU可以进一步划分为2个或4个预测单元(PU)或者在进一步划分不适用时变成仅一个PU。当一个CU中存在两个PU时,所述两个PU可以是一半大小的矩形或者是具有CU的1/4或3/4大小的两个矩形大小。当对CU进行帧间编码时,针对每个PU,存在一组运动信息。另外,用唯一帧间预测模式对每个PU进行编码以推导所述一组运动信息。
图5是展示了可以利用用于对运动信息进行编码的技术的示例视频编码和解码系统100的框图。如图5所示,系统100包含源装置102,所述源装置提供经过编码的视频数据以在稍后的时间由目的地装置112解码。具体地,源装置102通过计算机可读媒体110将视频数据提供到目的地装置112。源装置102和目的地装置112可以包括广泛范围的装置中的任何一种,包含台式计算机、笔记本计算机(即,膝上型计算机)、平板计算机、机顶盒、如所谓的“智能”电话等电话送受话器、所谓的“智能”平板电脑、电视、相机、显示装置、数字媒体播放器、视频游戏机、视频流式传输装置等。在一些情况下,源装置102和目的地装置112可以被配备用于无线通信。
目的地装置112可以通过计算机可读媒体110接收要解码的经过编码的视频数据。计算机可读媒体110可以包括能够将经过编码的视频数据从源装置102移到目的地装置112的任何类型的媒体或装置。在一个实例中,计算机可读媒体110可以包括用于使源装置102能够实时地将经过编码的视频数据直接传输到目的地装置112的通信媒体。经过编码的视频数据可以根据如无线通信协议等通信标准来调制并传输到目的地装置112。通信媒体可以包括任何无线或有线通信媒体,如射频(RF)频谱或一或多条物理传输线。通信媒体可以形成基于分组的网络(如局域网、广域网或全球网(如互联网))的一部分。通信媒体可以包含路由器、交换机、基站或可以可用于促进从源装置102到目的地装置112的通信的任何其它设备。
在一些实例中,经过编码的数据可以从输出接口108输出到存储装置。类似地,可以通过输入接口从存储装置存取经过编码的数据。存储装置可以包含各种分布式或本地存取的数据存储媒体中的任何一种,如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性存储器或非易失性存储器或用于存储经过编码的视频数据的任何其它适合的数字存储媒体。在另外的实例中,存储装置可以对应于可以存储由源装置102生成的经过编码的视频的文件服务器或另一个中间存储装置。目的地装置112可以通过流式传输或下载从存储装置存取存储的视频数据。文件服务器可以是能够存储经过编码的视频数据并且将所述经过编码的视频数据传输到目的地装置112的任何类型的服务器。示例文件服务器包含web服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)装置或本地磁盘驱动器。目的地装置112可以通过包含互联网连接在内的任何标准数据连接来存取经过编码的视频数据。这可以包含适于存取存储在文件服务器上的经过编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。从存储装置传输经过编码的视频数据可以是流式传输、下载传输或其组合。
本公开的技术不一定限于无线应用或背景。所述技术可以应用于视频编码以支持各种多媒体应用中的任何一种,如空中电视广播、有线电视传输、卫星电视传输、如通过HTTP的动态自适应流式传输(DASH)等互联网流式视频传输、编码到数据存储媒体上的数字视频、解码存储在数据存储媒体上的数字视频或其它应用。在一些实例中,系统100可以被配置成支持单向或双向视频传输,以支持如视频流式传输、视频回放、视频广播和/或视频电话等应用。
在图5的实例中,源装置102包含视频源104、视频编码器106和输出接口108。目的地装置112包含输入接口118、视频解码器116和显示装置114。根据本公开,源装置102的视频编码器106可以被配置成应用所述技术以对运动信息进行编码。在其它实例中,源装置和目的地装置可以包含其它组件或布置。例如,源装置102可以从如外部相机等外部视频源104接收视频数据。同样地,目的地装置112可以与外部显示装置接口连接,而不是包含集成的显示装置。
图5的所展示系统100仅是一个实例。可以由任何数字视频编码和/或解码装置执行用于对运动信息进行编码的技术。尽管本公开的技术通常由视频编码装置执行,但是所述技术还可以由通常被称为“CODEC”的视频编码器/解码器执行。此外,本公开的技术还可以由视频预处理器执行。源装置102和目的地装置112仅为此类编码装置的实例,其中源装置102生成经过编码的视频数据以传输到目的地装置112。在一些实例中,装置102、112可以以基本上对称的方式操作,使得装置102、112中的每个装置包含视频编码和解码组件。因此,系统100可以支持视频装置102、112之间的单向或双向视频传输,例如,以用于视频流式传输、视频回放、视频广播或视频电话。
源装置102的视频源104可以包含如摄像机等视频捕获装置、包含先前捕获的视频的视频档案和/或用于从视频内容提供者接收视频的视频馈送接口。作为另外的替代方案,视频源104可以生成基于计算机图形的数据作为源视频、或者直播视频、存档视频和计算机生成的视频的组合。在一些情况下,如果视频源104是摄像机,则源装置102和目的地装置112可以形成所谓的照相电话或视频电话。然而,如上文所提到的,本公开中描述的技术通常可以适用于视频编码并且可以应用于无线和/或有线应用。在每种情况下,捕获的、预先捕获的或计算机生成的视频可以由视频编码器106进行编码。经过编码的视频信息然后可以由输出接口108输出到计算机可读媒体110上。
计算机可读媒体110可以包含如无线广播或有线网络传输等暂时性媒体、或如硬盘、闪存驱动器、光盘、数字视频盘、蓝光光盘等存储媒体(即,非暂时性存储媒体)、或其它计算机可读媒体。在一些实例中,网络服务器(未示出)可以例如通过网络传输从源装置102接收经过编码的视频数据并且将经过编码的视频数据提供到目的地装置112。类似地,如磁盘冲压设施等媒体生产设施的计算装置可以从源装置102接收经过编码的视频数据并且生产含有经过编码的视频数据的磁盘。因此,在各种实例中,计算机可读媒体110可以被理解成包含各种形式的一或多种计算机可读媒体。
目的地装置112的输入接口118从计算机可读媒体110接收信息。计算机可读媒体110的信息可以包含由视频编码器106限定的语法信息,所述语法信息也由视频解码器116使用,所述语法信息包含描述块和其它编码单元的特性和/或处理的语法元素。显示装置114向用户显示经过解码的视频数据并且可以包括各种显示装置中的任何一种,如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一种类型的显示装置。
视频编码器106和视频解码器116可以根据视频编码标准(如ITU-T H.265,也被称为高效视频编码(HEVC))或其扩展(如多视点和/或可扩缩视频编码扩展)来操作。可替代地,视频编码器106和视频解码器116可以根据如联合勘探测试模型(JEM)等其它专有或工业标准来操作。然而,本公开的技术不限于任何特定的编码标准。尽管在图5中未示出,但在一些方面,视频编码器106和视频解码器116可以各自与音频编码器和解码器集成并且可以包含适当的MUX-DEMUX单元或其它硬件和软件,以处理对普通数据流或单独数据流中的音频和视频两者的编码。如果适用,MUX-DEMUX单元可以符合ITU H.223多路复用器协议或如用户数据报协议(UDP)等其它协议。
视频编码器106和视频解码器116各自可以实施为各种适合的编码器电路系统中的任何一种,如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当技术部分地在软件中实施时,装置可以将用于软件的指令存储在适合的非暂时性计算机可读媒体中并且使用一或多个处理器在硬件中执行指令以执行本公开的技术。视频编码器106和视频解码器116中的每个可以包含在一或多个编码器或解码器中,所述一或多个编码器或解码器中的任一个可以集成为相应装置中的组合编码器/解码器(CODEC)的一部分。包含视频编码器106和/或视频解码器116的装置可以包括集成电路、微处理器和/或无线通信装置,如蜂窝电话。
HEVC限定了各种编码块,包含编码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频编码器(如视频编码器106)根据四叉树结构将编码树单元(CTU)划分为CU。即,视频编码器将CTU和CU划分为四个相等的不重叠的正方形,并且四叉树的每个节点具有零个或四个子节点。没有子节点的节点可以被称为“叶节点”,并且此类叶节点的CU可以包含一或多个PU和/或一或多个TU。PU和TU可以被进一步划分。例如,TU的划分由残留四叉树(RQT)表示。在HEVC中,PU表示帧间预测数据,而TU表示残留数据。被帧内预测的CU包含帧内预测信息,如帧内模式指示。
根据JEM,视频编码器(如视频编码器106)将图片划分为多个编码树单元(CTU)。视频编码器106可以根据四叉树-二叉树(QTBT)结构来划分CTU。JEM的QTBT结构去除了多个分区类型的概念,如在HEVC的CU、PU和TU之间分开。JEM的QTBT结构包含两个水平:根据四叉树划分进行划分的第一水平;以及根据二叉树划分进行划分的第二水平。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于编码单元(CU)。
通常,视频编码器106和视频解码器116可以对以YUV(例如,Y,Cb,Cr)格式表示的视频数据进行编码。即,视频编码器106和视频解码器116可以对亮度分量和色度分量进行编码,而不是对图片的样本的红色、绿色和蓝色数据进行编码,其中色度分量可以包含红色色调色度分量和蓝色色调色度分量。在一些实例中,视频编码器106和视频解码器116可以使用单个QTBT结构来表示亮度分量和色度分量中的每个分量,而在其它实例中,视频编码器106和视频解码器116可以使用两个或两个以上QTBT结构,如一个QTBT结构用于亮度分量并且另一个QTBT结构用于两个色度分量(或两个QTBT结构用于各自的色度分量)。
视频编码器106和视频解码器116可以被配置成使用依据HEVC的四叉树划分或根据JEM的QTBT划分。出于解释的目的,相对于QTBT划分呈现了对本公开的技术的描述。然而,应理解,本公开的技术还可以应用于被配置成使用四叉树划分或同样其它类型的划分的视频编码器。
在本公开中,“N×N”和“N乘N”可以可互换地用于指代CU(或其它视频块)在竖直尺寸和水平尺寸方面的样本尺寸,例如16×16个样本或16乘16个样本。通常,16×16CU将会在竖直方向上具有16个样本(y=16)并且在水平方向上具有16个样本(x=16)。同样地,N×NCU通常在竖直方向上具有N个样本并且在水平方向上具有N个样本,其中N表示非负整数值。CU中的样本可以按行和列布置。此外,CU在水平方向上不一定需要具有与竖直方向上相同的数量的样本。例如,CU可以包括N×M个样本,其中M不一定等于N。
视频编码器106对CU的视频数据进行编码,所述视频数据表示CU的预测和残留信息以及其它信息。预测信息指示要如何预测CU以形成CU的预测块。残留信息通常表示编码之前的CU与预测块的样本之间的逐样本差。
为了预测CU,视频编码器106可以执行帧间预测或帧内预测。帧间预测通常是指依据先前编码的图片的数据来预测CU,而帧内预测通常是指依据同一图像的先前编码的数据来预测CU。为了执行帧间预测,视频编码器106可以使用一或多个运动向量来预测CU。视频编码器106通常可以执行运动搜索以识别例如在CU与参考块之间的差异方面与CU紧密匹配的参考块。视频编码器106可以使用绝对差和(SAD)、平方差和(SSD)、平均绝对差(MAD)、均方差(MSD)或其它此类差值计算来计算差值度量,以确定参考块是否与当前CU紧密匹配。在一些实例中,视频编码器106可以使用单向预测或双向预测来预测当前CU。
JEM还提供了仿射运动补偿模式,所述仿射运动补偿模式可以被视为帧间预测模式。在仿射运动补偿模式下,视频编码器106可以确定表示如放大或缩小、旋转、透视运动或其它不规则运动类型等非平移运动的两个或两个以上运动向量。
为了执行帧内预测,视频编码器106可以选择帧内预测模式。JEM提供了六十七种帧内预测模式,包含各种定向模式以及平面模式和DC模式。视频编码器106通常选择帧内预测模式,所述帧内预测模式描述了预测当前CU的样本所依据的与当前CU邻近的样本。假设视频编码器106以光栅扫描顺序(从左到右,从上到下)对CTU和CU进行编码,则在与当前CU相同的图片中,此类样本通常可以在当前CU的上方、在上方且在左边或在左边。
视频编码器106对表示当前CU的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器106可以对表示使用了各种可用帧间预测模式中的哪一种帧间预测模式的数据以及对应模式的运动信息进行编码。例如,对于单向或双向帧间预测,视频编码器106可以使用高级运动向量预测(AMVP)或合并模式对运动向量进行编码。视频编码器106可以使用类似模式来对仿射运动补偿模式的运动向量进行编码。
在如对CU的帧内预测或帧间预测等预测之后,视频编码器106可以计算CU的残留数据。如残留块等残留数据表示CU与使用对应的预测模式形成的用于CU的预测块之间的逐样本差。视频编码器106可以将一或多个变换应用于残留块,以代替样本域在变换域中产生经过变换的数据。例如,视频编码器106可以将离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换应用于残留的视频数据。另外,视频编码器106可以在第一次变换之后应用二次变换,如模式相关不可分二次变换(MDNSST)、信号相关变换、卡洛南-洛伊(Karhunen-Loeve)变换(KLT)等。视频编码器106在应用所述一或多个变换之后产生变换系数。
如上文所注意到的,在进行任何变换以产生变换系数之后,视频编码器106可以执行对变换系数的量化。量化通常是指将变换系数量化以可能地减少用于表示系数的数据量从而提供进一步压缩的过程。量化过程可以减小与系数中的一些或所有系数相关联的位深度。例如,在量化期间,n位的值可以四舍五入为m位的值,其中n大于m。
在量化之后,视频编码器106可以扫描变换系数,从而从包含量化的变换系数的二维矩阵产生一维向量。可以将扫描设计成将较高的能量(以及因此较低的频率)系数放置在阵列的前面并且将较低的能量(以及因此较高的频率)系数放置在阵列的后面。在一些实例中,视频编码器106可以利用预定义扫描顺序来扫描量化的变换系数以产生可以被熵编码的串行化向量。在其它实例中,视频编码器106可以执行自适应扫描。在扫描量化的变换系数以形成一维向量之后,视频编码器106可以例如根据上下文自适应二进制算术编码(CABAC)对一维向量进行熵编码。视频编码器106还可以对与经过编码的视频数据相关联的语法元素进行熵编码,以供视频解码器116在对视频数据进行解码时使用。
为了执行CABAC,视频编码器106可以将上下文模型内的上下文分配到要传输的符号。上下文可以涉及例如符号的邻近值是否为非零。概率确定可以基于分配到符号的上下文。
通常,视频解码器116执行与由视频编码器106执行的过程基本上类似(尽管互逆)的过程以对经过编码的数据进行解码。例如,视频解码器116可以使用CABAC以与视频编码器106的CABAC编码过程基本上类似(尽管互逆)的方式对接收的比特流的语法元素进行解码。语法元素可以根据对应的QTBT结构限定CTU的划分信息以限定CTU的CU以及每个CTU的预测和残留信息。残留信息可以包含例如量化的变换系数。视频解码器116可以对接收的CU的系数进行逆量化和逆变换以重现CU的残留块。视频解码器116使用以信号发送的预测模式(帧内预测或帧间预测)来形成CU的预测块。然后,视频解码器116(在逐样本的基础上)组合预测块和残留块以重现原始CU。视频解码器116可以执行另外的处理,如执行去块过程以减少沿块边界的视觉伪像。
视频编码器106可以进一步例如在图片标题、块头、切片头或如序列参数集(SPS)、图片参数集(PPS)或视频参数集(VPS)等其它语法数据中将如基于块的语法数据、基于图片的语法数据和基于序列的语法数据等语法数据发送到视频解码器116。视频解码器116可以类似地对此类语法数据进行解码以确定如何对对应的视频数据进行解码。
图6A和6B是展示了示例四叉树二叉树(QTBT)结构130和对应的编码树单元(CTU)132的概念图。实线表示四叉树分割,并且虚线表示二叉树分割。在二叉树的每个分割的(即,非叶)节点中,以信号发送一个标志以指示使用了哪种分割类型(即,水平或竖直),其中在本实例中,0指示水平分割,并且1指示竖直分割。在一些实例中,分割可以是非对称的或者包含中心-侧边-三重划分。对于四叉树分割,由于四叉树节点水平且竖直地将块分割成大小相等的4个子块,因此无需指示分割类型。因此,视频编码器106可以对以下进行编码并且视频解码器116可以对以下进行解码:QTBT结构130的区域树水平(即,实线)的语法元素(如分割信息)和QTBT结构130的预测树水平(即,虚线)的语法元素(如分割信息)。视频编码器106可以对以下进行编码并且视频解码器116可以对以下进行解码:由QTBT结构130的终端叶节点表示的用于CU的视频数据,如预测数据和变换数据。
CTU可以与限定块的大小的参数相关联,所述块与第一水平和第二水平的节点相对应。这些参数可以包含CTU大小(表示样本中CTU的大小)、最小四叉树大小(MinQTSize,表示最小允许的四叉树叶节点大小)、最大二叉树大小(MaxBTSize,表示最大允许的二叉树根节点大小)、最大二叉树深度(MaxBTDepth,表示最大允许的二叉树深度)和最小二叉树大小(MinBTSize,表示最小允许的二叉树叶节点大小)。
与CTU相对应的QTBT的根节点可以在QTBT结构的第一水平具有四个子节点,所述四个子节点中的每个子节点可以根据四叉树划分来进行划分。即,第一水平的节点是叶节点(没有子节点)或具有四个子节点。如果第一水平的节点不大于最大允许的二叉树根节点大小(MaxBTSize),则可以通过相应的二叉树对节点进行进一步划分。可以迭代对一个节点的二叉树分割,直到由分割所得的节点达到最小允许的二叉树叶节点大小(MinBTSize)或最大允许的二叉树深度(MaxBTDepth)。二叉树叶节点被称为编码单元(CU),所述CU用于预测(例如,图片内预测或图片间预测)和变换,而无需任何进一步划分。CU也可以被称为“视频块”或“块”。
在QTBT划分结构的一个实例中,将CTU大小设为128×128(亮度样本和两个对应的64×64色度样本Cb和Cr),将MinQTSize设为16×16,将MaxBTSize设为64×64,将MinBTSize(对于宽度和高度两者)设为4,并且将MaxBTDepth设为4。首先将四叉树划分应用于CTU,以生成四叉树叶节点。四叉树叶节点的大小可以为16×16(即,MinQTSize)到128×128(即,CTU大小)。如果叶四叉树节点为128×128,则由于大小超过了MaxBTSize(即,在本实例中为64×64),因此所述节点不会被二叉树进一步分割。否则,叶四叉树节点将被二叉树进一步划分。因此,四叉树叶节点也是二叉树的根节点并且二叉树深度为0。当二叉树深度达到MaxBTDepth(在本实例中为4)时,不允许进一步分割。当二叉树节点的宽度等于MinBTSize(在本实例中为4)时,这暗指不允许进一步水平分割。类似地,当二叉树节点的高度等于MinBTSize时,这暗指不允许进一步竖直分割。二叉树的叶节点被称为CU并且根据预测和变换进行进一步处理,而无需任何进一步划分。
在JEM中,针对I切片,提出了亮度-色度分开的块划分结构。一个CTU的亮度分量(即,亮度CTB)通过QTBT结构划分为亮度编码块(CB),并且所述CTU的两个色度分量(即,两个色度CTB)通过另一个QTBT结构划分为色度CB。对于P切片和B切片,共享针对亮度和色度的块划分结构。即,对于根据JEM提议的P切片和B切片,通过一个QTBT结构将一个CTU(包含亮度和色度两者)划分为CU。
再次参考图5,本公开描述了用于基于编码结构来构建用于对运动向量进行预测和编码的运动候选列表(如合并候选列表和AVMP列表)的技术。下面讨论各种示例技术。视频编码器106和视频解码器116可以单独地或以任何组合应用这些技术中的任何一种或所有技术。
在一些实例中,视频编码器106和视频解码器116可以在对经过分割的CU进行编码或解码时将此CU的相对索引视为到此CU的输入参数。例如,可以如下设计QTBT_tree结构的语法表,其中相对于JEM的QTBT结构,新添加了“blkIndex”(并且通常,相对于JEM的QTBT结构,添加了斜体元素):
Figure BDA0002446381310000161
在本实例中,“blkIndex”表示相对于由父块所得的子块的相对位置的索引。具体地,在本实例中,对于竖直地分割的父块的左子块、水平地分割的父块的顶部子块或四叉树分割的父块的左上子块,“blkIndex”的值为“0”。同样地,在本实例中,对于竖直地分割的父块的右子块、水平地分割的父块的底部子块或四叉树分割的父块的右上子块,“blkIndex”的值为“1”。在本实例中,对于四叉树分割的父块的左下子块,“blkIndex”的值为“2”,并且对于四叉树分割的父块的右下子块,“blkIndex”的值为“3”。
在一些实例中,视频编码器106和视频解码器116可以在对经过分割的CU进行编码或解码时将此CU的分割方式视为到此CU的输入参数。例如,可以如下设计QTBT结构的语法表,其中相对于JEM的QTBT结构,添加了斜体元素:
Figure BDA0002446381310000162
Figure BDA0002446381310000171
在本实例中,如上文所讨论的那样设置“blkIndex”。另外,对于四叉树分割的父块,“splitWay”的值为“Q-Tree”,对于水平地分割的父块,“splitWay”的值为“B-Tree-H”,并且对于竖直地分割的父块,“splitWay”的值为“B-Tree-V”。
在一些实例中,视频编码器106和视频解码器116可以在对CU进行编码/解码后将CU的分割方式视为此CU的输出。视频编码器106和视频解码器116然后可以将来自CU的此输出的分割方式视为到后续CU的输入参数。例如,可以如下设计QTBT_tree结构的语法表,其中斜体文本表示相对于JEM的QTBT_tree结构的添加,并且“preSplitWay”表示来自先前CU的分割方式的输入:
Figure BDA0002446381310000172
Figure BDA0002446381310000181
在本实例中,可以如上文所讨论的那样设置blkIndex和splitWay,“preSplitWay”表示先前块的“splitWay”的值,并且“subSplitWay”表示上文所讨论的输出的分割方式。
在上述实例中,可以将blkIndex、splitWay和preSplitWay全部添加到JEM的QTBT_tree结构中。可替代地,可以仅添加其中的任何一个。可替代地,可以仅添加其中的两个的任何组合。因此,如上文所讨论的,视频编码器106和视频解码器116可以被配置成以任何组合使用blkIndex、splitWay和/或preSplitWay中的任何一个或全部。
图7A-7C是展示了视频编码器106和视频解码器116可以避免检查当前子块的邻近子块的数据的情况的实例的概念图,其中邻近子块可以对应于图3的邻近块A1(即,在当前块的最左下邻近块(例如,图3的块A0)上方的当前块的左邻近块)。具体地,根据本公开的技术的一些实例,对于候选列表构建过程,如果以下条件均为真,则视频编码器106和视频解码器116可以避免检查图3的左邻近块A1的数据:
a.splitWay等于B-Tree-V或用于将CU竖直地分割成两部分的任何其它分割方式;
b.blkIndex等于1;并且
c.preSplitWay等于NoSplit。
在图7A的实例中,将父块竖直地分割成大小相等(B-Tree-V)的邻近块和当前块,满足了(a)部分;blkIndex为“1”,因为当前块在父块右侧(依据coding_QTBTtree(x0+width/2,y0,width/2,height,QDepth,BDepth+1,1)),满足了(b)部分;并且preSplitWay等于NoSplit(因为未分割邻近块),满足了(c)部分。
在图7B的实例中,将父块竖直地分割成大小不相等的邻近块和当前块(其中当前块水平地大于邻近块),满足了(a)部分;blkIndex为“1”,因为当前块在父块右侧(依据coding_QTBTtree(x0+width/2,y0,width/2,height,QDepth,BDepth+1,1)),满足了(b)部分;并且preSplitWay等于NoSplit(因为未分割邻近块),满足了(c)部分。
在图7C的实例中,将父块竖直地分割成大小不相等的邻近块和当前块(其中当前块水平地小于邻近块),满足了(a)部分;blkIndex为“1”,因为当前块在父块右侧(依据coding_QTBTtree(x0+width/2,y0,width/2,height,QDepth,BDepth+1,1)),满足了(b)部分;并且preSplitWay等于NoSplit(因为未分割邻近块),满足了(c)部分。
在一些实例中,如果以上条件中的每个条件为真,则在不对邻近块A1进行帧内编码时,如果候选具有与块A1的运动信息相同的运动信息,视频编码器106和视频解码器116可以从候选列表中剪除一或多个候选。如果以下条件中的每个条件为真,则视频编码器106和视频解码器116可以确定两条运动信息相同:
a.帧间方向相同。帧间方向可以是列表0、列表1或双向预测;
b.两个RefIndex[0]相同,并且两个MV[0]相同,或者帧间方向等于列表1;并且
c.两个RefIndex[1]相同,并且两个MV[1]相同,或者帧间方向等于列表0。
在本实例中,RefIndex[0]和RefIndex[1]分别是列表0和列表1的参考索引,并且MV[0]和MV[1]分别是列表0和列表1的运动向量。在一些实例中,当检查每个候选时,视频编码器106和视频解码器116可以将候选的运动信息与邻近块A1的运动信息进行比较。如果候选具有与邻近块A1相同的运动信息,则视频编码器106和视频解码器116可以避免将候选附加到候选列表中。
图8A-8C是展示了视频编码器106和视频解码器116可以避免检查图3的邻近块B1(即,当前块的右上邻近块)的数据的情况的实例的概念图。具体地,根据本公开的技术的一些实例,对于候选列表构建过程,如果以下条件均为真,则视频编码器106和视频解码器116可以避免检查图3的右上邻近块B1的数据:
a.splitWay等于B-Tree-H或用于将CU水平地分割成两部分的任何其它分割方式;
b.blkIndex等于1;并且
c.preSplitWay等于NoSplit。
在图8A的实例中,将父块水平地分割成大小相等(B-Tree-H)的邻近块和当前块,满足了(a)部分;blkIndex为“1”,因为当前块在父块底侧(依据coding_QTBTtree(x0,y0+height/2,width,height/2,QDepth,BDepth+1,1)),满足了(b)部分;并且preSplitWay等于NoSplit(因为未分割邻近块),满足了(c)部分。
在图8B的实例中,将父块水平地分割成大小不相等的邻近块和当前块(其中当前块竖直地大于邻近块),满足了(a)部分;blkIndex为“1”,因为当前块在父块底侧(依据coding_QTBTtree(x0,y0+height/2,width,height/2,QDepth,BDepth+1,1)),满足了(b)部分;并且preSplitWay等于NoSplit(因为未分割邻近块),满足了(c)部分。
在图8C的实例中,将父块水平地分割成大小不相等的邻近块和当前块(其中当前块竖直地小于邻近块),满足了(a)部分;blkIndex为“1”,因为当前块在父块底侧(依据coding_QTBTtree(x0,y0+height/2,width,height/2,QDepth,BDepth+1,1)),满足了(b)部分;并且preSplitWay等于NoSplit(因为未分割邻近块),满足了(c)部分。
在一些实例中,如果以上条件中的每个条件为真,则在不对邻近块B1进行帧内编码时,视频编码器106和视频解码器116可以剪除候选列表中的具有与块B1的运动信息相同的运动信息的任何候选。在一些实例中,当检查每个候选时,视频编码器106和视频解码器116可以将候选的运动信息与邻近块B1的运动信息进行比较,并且如果候选具有与邻近块B1相同的运动信息,则视频编码器106和视频解码器116可以避免将候选附加到候选列表中。
再次参考图5,在一些实例中,对于当前块的候选列表构建过程,如果以下条件均为真,则视频编码器106和视频解码器116可以避免检查图3的左邻近块A1的数据:
a.splitWay等于B-Tree-V或用于将CU竖直地分割成两部分的任何其它分割方式;
b.blkIndex等于1;并且
c.邻近块A1的BDepth等于当前块的BDepth。
在一些实例中,如果以上条件中的每个条件为真,则在不对邻近块A1进行帧内编码时,视频编码器106和视频解码器116可以剪除候选列表中的具有与块A1的运动信息相同的运动信息的任何候选。在一些实例中,当检查每个候选时,视频编码器106和视频解码器116可以将候选的运动信息与邻近块A1的运动信息进行比较。如果候选具有与邻近块A1相同的运动信息,则视频编码器106和视频解码器116可以避免将候选附加到候选列表中。
在一些实例中,对于当前块的候选列表构建过程,如果以下条件均为真,则视频编码器106和视频解码器116可以避免检查图3的右上邻近块B1的数据:
a.splitWay等于B-Tree-H或用于将CU水平地分割成两部分的任何其它分割方式;
b.blkIndex等于1;并且
c.邻近块B1的BDepth等于当前块的BDepth。
在一些实例中,如果以上条件中的每个条件为真,则在不对邻近块B1进行帧内编码时,视频编码器106和视频解码器116可以剪除候选列表中的具有与块B1的运动信息相同的运动信息的任何候选。在一些实例中,当检查每个候选时,视频编码器106和视频解码器116可以将候选的运动信息与邻近块B1的运动信息进行比较,并且如果候选具有与邻近块B1相同的运动信息,则视频编码器106和视频解码器116可以避免将候选附加到候选列表中。
图9是展示了可以实施本公开的用于对运动信息进行编码的技术的视频编码器106的实例的框图。视频编码器106可以执行对视频切片内的视频块的帧内编码和帧间编码。帧内编码依赖于空间预测来减少或去除给定视频帧或图片内的视频的空间冗余。帧间编码依赖于时间预测以减少或去除视频序列的相邻帧或图片内的视频的时间冗余。帧内模式(I模式)可以指代若干种基于空间的编码模式中的任何一种。如单向预测(P模式)或双向预测(B模式)等帧间模式可以指代若干种基于时间的编码模式中的任何一种。
如图9所示,视频编码器106接收要编码的视频帧内的当前视频块。在图9的实例中,视频编码器106包含模式选择单元140、解码图片缓冲(DPB)存储器164、加法器150、变换处理单元152、量化单元154和熵编码单元156。模式选择单元140进而包含运动补偿单元144、运动估计单元142、帧内预测单元146和分区单元148。对于视频块重建,视频编码器106还包含逆量化单元158、逆变换单元160和加法器162。还可以包含去块滤波器(图9中未示出)以对块边界进行滤波从而从重建的视频中去除块效应伪像。如果需要,去块滤波器通常将会对加法器162的输出进行滤波。除了去块滤波器,还可以使用另外的滤波器(环路内或环路后)。此类滤波器为了简洁起见并未示出,但是如果需要,则可以对加法器150的输出进行滤波(作为环路内滤波器)。
在编码过程期间,视频编码器106接收要编码的视频帧或切片。帧或切片可以分成多个视频块。运动估计单元142和运动补偿单元144相对于一或多个参考帧中的一或多个块执行对接收的视频块的帧间预测编码,以提供时间预测。帧内预测单元146可以可替代地相对于与要编码的块相同的帧或切片中的一或多个邻近块执行对接收的视频块的帧内预测编码,以提供空间预测。视频编码器106可以执行多个编码通道,例如,以便为视频数据的每个块选择适当的编码模式。
此外,分区单元148可以基于对先前编码通道中的先前划分方案的评估将视频数据的块划分为子块。例如,分区单元148最初可以将帧或切片划分为CTU,并且基于率失真分析(例如,率失真优化)将CTU中的每个CTU划分为子CU。模式选择单元140可以进一步产生指示将CTU划分为CU的QTBT数据结构。
模式选择单元140可以例如基于误差结果选择帧内预测模式或帧间预测模式中的一个,并且将所得的预测块提供到加法器150以生成残留数据并且提供到加法器162以重建经过编码的块以用作参考帧。模式选择单元140还将如运动向量、帧内模式指示符、分区信息和其它此类语法信息等语法元素提供到熵编码单元156。
运动估计单元142和运动补偿单元144可以是高度集成的,但是出于概念性目的而分别展示。由运动估计单元142执行的运动估计是生成运动向量的过程,所述运动向量估计了视频块的运动。运动向量例如可以指示当前视频帧或图片内的视频块的CU相对于参考帧内的预测块(或其它经过编码的单元)的位移,所述预测块相对于在当前帧内经过编码的当前块(或其它经过编码的单元)。预测块是在样本差方面被发现与要编码的块紧密匹配的块,所述样本差可以由绝对差和(SAD)、平方差和(SSD)或其它差值度量来确定。在一些实例中,视频编码器106可以计算存储在DPB存储器164中的参考图片的子整数样本位置的值。例如,视频编码器106可以插入参考图片的四分之一样本位置、八分之一样本位置或其它分数样本位置的值。因此,运动估计单元142可以相对于全样本位置和分数样本位置执行运动搜索并且以分数样本精确度输出运动向量。
运动估计单元142通过将CU的位置与参考图片的参考块的位置进行比较来计算帧间编码切片中的CU的运动向量。可以从第一参考图片列表(列表0)或第二参考图片列表(列表1)中选择参考图片,所述第一参考图片列表和所述第二参考图片列表中的每个参考图片列表识别存储在DPB存储器164中的一或多个参考图片。在一些实例中,运动向量可以表示平移运动,而在其它实例中(如在仿射运动补偿中),运动向量可以表示其它类型的运动,如缩放、旋转、透视运动或其它不规则运动类型。运动估计单元142将计算出的运动向量发送到熵编码单元156和运动补偿单元144。
根据本公开的技术,当当前块是还包含邻近子块(与如图6A的QTBT结构等分区树结构的叶节点相对应的子块)的父块的当前子块时,运动估计单元142和运动补偿单元144可以避免将邻近子块的运动信息包含在当前子块的运动候选列表中。即,运动候选列表可以省略表示邻近子块的运动向量的数据。运动估计单元142可以确定识别要用于预测当前子块的运动向量的候选索引并且将候选索引提供到熵编码单元156作为要被熵编码的语法元素。视频编码器106可以被配置成使用上文例如关于图7和8以及关于上文的各种coding_QTBTtree语法表所讨论的各种技术中的任何一种来生成运动候选列表。
由运动补偿单元144执行的运动补偿可以涉及基于由运动估计单元142确定的运动向量获取或生成预测块。再次,在一些实例中,运动估计单元142和运动补偿单元144可以在功能上集成。在接收CU的运动向量后,运动补偿单元144可以在参考图片列表中的一个中定位运动向量所指向的参考块并且从参考块生成预测块。另外,运动补偿单元144可以根据用于对运动向量进行编码的本公开的任何技术来构建运动候选列表。
加法器150通过从正被编码的当前视频块的样本值中减去预测块的样本值来形成残留视频块,从而形成样本差值,如下文所讨论的。通常,运动估计单元142执行相对于亮度分量的运动估计,并且运动补偿单元144针对色度分量和亮度分量两者使用基于亮度分量计算的运动向量。模式选择单元140还可以生成与视频块和视频切片相关联的语法元素,以供视频解码器116在对视频切片的视频块进行解码时使用。
如上所述,帧内预测单元146可以对当前块进行帧内预测,作为由运动估计单元142和运动补偿单元144执行的帧间预测的替代方案。具体地,帧内预测单元146可以确定帧内预测模式以用于预测当前块。在一些实例中,帧内预测单元146可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且模式选择单元140可以从经过测试的模式中选择适合的帧内预测模式来使用。
例如,模式选择单元140可以使用针对各种经过测试的帧内预测模式的率失真分析来计算率失真值并且在经过测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定经过编码的块与原始的未编码的块(被编码以产生经过编码的块)之间的失真(或误差)量以及用于产生经过编码的块的比特率(即,比特数)。帧内预测单元146可以依据各个经过编码的块的失真和速率来计算比值,以确定哪个帧内预测模式展现出块的最佳率失真值。
在为块选择帧内预测模式之后,帧内预测单元146可以将指示块的所选帧内预测模式的信息提供到熵编码单元156。熵编码单元156可以对指示所选帧内预测模式的信息进行编码。视频编码器106可以在所传输的比特流配置数据中包含对各种块的编码上下文的定义以及对最可能的帧内预测模式、帧内预测模式索引表和用于每个上下文的经过修改的帧内预测模式索引表的指示,所述配置数据可以包含多个帧内预测模式索引表和多个经过修改的帧内预测模式索引表(也被称为码字映射表)。
视频编码器106通过从正被编码的原始视频块中减去来自模式选择单元140的预测数据来形成残留视频块。加法器150表示执行此减法运算的一或多个组件。变换处理单元152将如离散余弦变换(DCT)或概念上类似的变换等变换应用于残留块,从而产生包括变换系数值的视频块。代替DCT,可以使用小波变换、整数变换、子带变换、离散正弦变换(DST)或其它类型的变换。在任何情况下,变换处理单元152将变换应用于残留块,从而产生变换系数的块。变换可以将残留信息从样本域转换到变换域,如频域。变换处理单元152可以将所得的变换系数发送到量化单元154。量化单元154对变换系数进行量化以进一步降低比特率。量化过程可以减小与系数中的一些或所有系数相关联的位深度。可以通过调整量化参数来修改量化程度。
量化之后,熵编码单元156对量化的变换系数进行熵编码。例如,熵编码单元156可以执行上下文自适应二进制算术编码(CABAC)或另一种熵编码技术。在基于上下文的熵编码的情况下,上下文可以基于邻近块。在由熵编码单元156进行熵编码之后,可以将经过编码的比特流传输到另一个装置(例如,视频解码器116)或者存档以供稍后传输或检索。
逆量化单元158和逆变换单元160分别应用逆量化和逆变换以在样本域中重建残留块。具体地,加法器162将重建的残留块添加到由运动补偿单元144或帧内预测单元146早前产生的运动补偿预测块,以产生重建的视频块用于存储在DPB存储器164中。重建的视频块可以被运动估计单元142和运动补偿单元144用作参考块,以对后续视频帧中的块进行帧间编码。
图9的视频编码器106表示被配置成对视频数据进行编码的视频编码器的实例,所述视频编码器包含:存储器(例如,DPB存储器164),所述存储器包括被配置成存储视频数据的电路系统;以及一或多个处理器(例如,模式选择单元140、运动估计单元142、运动补偿单元144和熵编码单元156),所述一或多个处理器实施在电路系统中并且被配置成:将视频数据的父块划分为邻近子块和当前子块,其中邻近子块和当前子块对应于父块的分区树结构的叶节点;响应于将父块划分为邻近子块和当前子块构建当前子块的包含多个运动向量候选的运动候选列表,使得所述多个运动向量候选省略表示邻近子块的运动向量的数据;并且使用所述多个运动向量候选中的一个对当前子块的运动信息进行编码。
图10是展示了可以实施本公开的用于对运动信息进行编码的技术的视频解码器116的实例的框图。在图10的实例中,视频解码器116包含熵解码单元170、运动补偿单元172、帧内预测单元174、逆量化单元176、逆变换单元178、解码图片缓冲(DPB)存储器182和加法器180。在一些实例中,视频解码器116可以执行通常与关于视频编码器106(图9)所描述的编码通道互逆的解码通道。运动补偿单元172可以基于从熵解码单元170接收的运动向量生成预测数据,而帧内预测单元174可以基于从熵解码单元170接收的帧内预测模式指示符生成预测数据。
运动补偿单元172可以根据用于对运动向量进行解码的本公开的任何技术来构建运动候选列表。具体地,如上文所讨论的,运动候选列表可以省略表示父块的当前子块的邻近子块的运动向量的数据。运动补偿单元172可以使用运动候选列表中的候选索引来确定当前子块的运动向量。视频解码器116可以被配置成使用上文例如关于图7和8以及关于上文的各种coding_QTBTtree语法表所讨论的各种技术中的任何一种来生成运动候选列表。
在解码过程期间,视频解码器116从视频编码器106接收表示经过编码的视频切片的视频块的经过编码的视频比特流和相关联的语法元素。视频解码器116的熵解码单元170对比特流进行熵解码以生成量化的系数、运动向量或帧内预测模式指示符和其它语法元素。熵解码单元170将运动向量转发到运动补偿单元172并且将其它语法元素转发到所述运动补偿单元。视频解码器116可以在视频切片水平和/或视频块水平接收语法元素。
当视频切片被编码为帧内编码(I)切片时,帧内预测单元174可以基于以信号发送的帧内预测模式和来自当前帧或图片的先前经过解码的块的数据生成当前视频切片的视频块的预测数据。当视频帧被编码为帧间编码(即,B或P)切片时,运动补偿单元172基于从熵解码单元170接收的运动向量和其它语法元素产生当前视频切片的视频块的预测块。预测块可以从参考图片列表中的一个参考图片列表内的参考图片中的一个参考图片产生。
视频解码器116可以基于存储在DPB存储器182中的参考图片使用默认构建技术构建参考图片列表:列表0和列表1。运动补偿单元172通过解析运动向量和其它语法元素来确定当前视频切片的视频块的预测信息并且使用预测信息来产生正被解码的当前视频块的预测块。例如,运动补偿单元172使用接收的语法元素中的一些来确定用于对视频切片的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片或P切片)、切片的参考图片列表中的一或多个参考图片列表的构建信息、切片的每个帧间编码视频块的运动向量、切片的每个帧间编码视频块的帧间预测状态以及用于对当前视频切片中的视频块进行解码的其它信息。
运动补偿单元172还可以基于内插滤波器执行内插。运动补偿单元172可以如由视频编码器106在对视频块进行编码期间使用的使用内插滤波器来计算参考块的子整数样本的内插值。在这种情况下,运动补偿单元172可以从接收的语法元素确定由视频编码器106使用的内插滤波器并且使用内插滤波器来产生预测块。
逆量化单元176对在比特流中提供的并且由熵解码单元170解码的量化的变换系数进行逆量化,即,去量化。逆量化过程可以包含使用由视频解码器116针对视频切片中的每个视频块计算的量化参数QPY来确定量化程度并且同样地确定应当应用的逆量化程度。
逆变换单元178将逆变换,例如逆DCT、逆整数变换或概念上类似的逆变换过程应用于变换系数,以便在样本域中产生残留块。
在运动补偿单元172基于运动向量和其它语法元素生成当前视频块的预测块之后,视频解码器116通过将来自逆变换单元178的残留块的样本与由运动补偿单元172生成的预测块的对应的(例如,处于同一位置的)样本相加来形成经过解码的视频块。加法器180表示执行此加法运算的一或多个组件。如果需要,还可以应用去块滤波器来对经过解码的块进行滤波,以去除块效应伪像。其它环路滤波器(在编码环路中或在编码环路之后)也可以用于平滑样本过渡或以其它方式提高视频质量。然后,将给定帧或图片中的经过解码的视频块存储在DPB存储器182中,所述存储器存储用于后续运动补偿的参考图片。DPB存储器182还存储经过解码的视频以供稍后呈现在如图5的显示装置114等显示装置上。
图10的视频解码器116表示被配置成对视频数据进行解码的视频解码器的实例,所述视频解码器包含:存储器(例如,DPB存储器182),所述存储器包括被配置成存储视频数据的电路系统;以及一或多个处理器(例如,熵解码单元170和运动补偿单元172),所述一或多个处理器实施在电路系统中并且被配置成:将视频数据的父块划分为邻近子块和当前子块,其中邻近子块和当前子块对应于父块的分区树结构的叶节点;响应于将父块划分为邻近子块和当前子块构建当前子块的包含多个运动向量候选的运动候选列表,使得所述多个运动向量候选省略表示邻近子块的运动向量的数据;并且使用多个运动向量候选中的一个对当前子块的运动信息进行编码。
图11是展示了根据本公开的技术的用于对当前块进行编码的示例方法的流程图。当前块可以包括当前CU。尽管关于视频编码器106(图5和9)进行了描述,但是应当理解,可以将其它设备配置成执行与图11的方法类似的方法。
在本实例中,视频编码器106最初将父块划分为子块(300),例如,如图7A-7C所示的邻近子块和当前子块。例如,视频编码器106可以测试各种划分方法并且确定将父块划分为子块会产生最佳率失真性能。子块(例如,邻近块和当前子块)可以对应于父块的分区树结构的叶节点。分区树结构可以对应于例如QTBT结构,如图2A中所示的结构。
然后,视频编码器106构建如当前子块等子块中的一个的运动候选列表(302)。如上文所解释的,运动候选列表包含当前子块的邻近块的运动向量候选。然而,根据本公开的技术,视频编码器106避免在当前子块的运动候选列表中包含邻近子块的运动信息。即,本公开认识到,如果子块的运动信息相同,则将不会发生将父块划分为子块。这样,当父块被划分为子块时,本公开认识到,子块的运动信息应当是不同的,使得邻近子块的运动信息不应被用于预测当前子块。换句话说,运动候选列表省略表示邻近子块的运动向量的数据。以这种方式,这些技术可以节省可能以其它方式在处理邻近子块的运动信息时发生的处理操作,从而潜在地改善视频编码器106的操作。
视频编码器106然后可以从运动候选列表确定当前子块的运动向量(304)。例如,视频编码器106可以确定运动候选列表中的哪个运动向量产生了最佳率失真性能以对当前子块进行编码。视频编码器106然后可以使用确定的运动向量预测当前块(306)。例如,视频编码器106可以使用确定的运动向量形成当前块的预测块。即,如上文所讨论的,运动补偿单元144可以从由运动向量识别的参考块构建预测块。
视频编码器106然后可以计算当前块的残留块(308)。为了计算残留块,视频编码器106(以及具体地,加法器150)可以计算原始的未编码的块与当前块的预测块之间的差。视频编码器106然后可以变换和量化残留块的系数(310)。接下来,视频编码器106可以扫描残留块的量化的变换系数(312)。在扫描期间或在扫描之后,视频编码器106可以对系数以及候选索引进行熵编码(314)。具体地,候选索引可以识别运动候选列表中的用于预测当前子块的运动向量。视频编码器106可以使用CABAC对系数和候选索引进行编码。视频编码器106然后可以输出块的经过熵编码的数据(316)。
以这种方式,图11的方法表示方法的实例,所述方法包含:将视频数据的父块划分为邻近子块和当前子块,其中邻近子块和当前子块对应于父块的分区树结构的叶节点;响应于将父块划分为邻近子块和当前子块构建当前子块的包含多个运动向量候选的运动候选列表,使得所述多个运动向量候选省略表示邻近子块的运动向量的数据;以及使用多个运动向量候选中的一个对当前子块的运动信息进行编码。具体地,在图11的实例中,所述方法包含对当前子块的运动信息进行编码。在本实例中,所述方法还包含:使用运动信息形成当前子块的预测块;形成当前子块的残留块,所述残留块包括当前子块的样本与预测块的对应样本之间的差;以及对残留块进行编码。
图12是展示了根据本公开的技术的用于对视频数据的当前块进行解码的示例方法的流程图。当前块可以包括当前CU。尽管关于视频解码器116(图5和10)进行了描述,但是应当理解,可以将其它设备配置成执行与图12的方法类似的方法。
视频解码器116可以接收当前块的经过熵编码的数据(320),如与当前块相对应的残留块的系数的经过熵编码的预测信息和经过熵编码的数据。本实例中的当前块对应于父块的当前子块,其中父块还包含当前子块的邻近子块。此外,邻近子块和当前子块可以对应于父块的如QTBT结构等分区树结构的叶节点。
视频解码器116可以对经过熵编码的数据进行熵解码以确定当前块的预测信息并且重现残留块的系数(322)。在本实例中,预测信息可以包含当前块的运动候选列表中的候选索引。因此,视频解码器116可以构建子块的运动候选列表(324)。具体地,如上文所解释的,运动候选列表包含当前子块的邻近块的运动向量候选。然而,根据本公开的技术,视频解码器116避免在当前子块的运动候选列表中包含邻近子块的运动信息。即,当父块被划分为子块时,本公开认识到,子块的运动信息应当是不同的,使得邻近子块的运动信息不应被用于预测当前子块。换句话说,视频解码器116可以构建运动候选列表以省略表示邻近子块的运动向量的数据。以这种方式,这些技术可以节省可能以其它方式在处理邻近子块的运动信息时发生的处理操作,从而潜在地改善视频解码器116的操作。
视频解码器116然后可以从运动候选列表确定当前子块的运动向量(326)。例如,视频解码器116可以使用经过解码的候选索引来识别运动候选列表中的对应于候选索引的运动向量。视频解码器116然后可以根据帧间预测使用确定的运动向量预测当前子块(328)。例如,如上文所解释的,运动补偿单元172可以使用由运动向量识别的参考块生成预测块。然后,视频解码器116可以逆扫描重现的系数(330),以产生量化的变换系数的块。然后,视频解码器116可以对系数进行逆量化和逆变换以产生残留块(332)。视频解码器116最终可以通过组合预测块和残留块来对当前块进行解码(334)。即,视频解码器116可以将预测块的样本添加到残留块的对应的(例如,处于同一位置的)样本以对当前子块进行解码和重建。
以这种方式,图12的方法表示方法的实例,所述方法包含:将视频数据的父块划分为邻近子块和当前子块,其中邻近子块和当前子块对应于父块的分区树结构的叶节点;响应于将父块划分为邻近子块和当前子块构建当前子块的包含多个运动向量候选的运动候选列表,使得所述多个运动向量候选省略表示邻近子块的运动向量的数据;以及使用多个运动向量候选中的一个对当前子块的运动信息进行编码。具体地,在图12的实例中,所述方法包含对当前子块的运动信息进行解码。在本实例中,所述方法还包含:使用运动信息形成当前子块的预测块;对当前子块的残留块进行解码;以及将预测块的样本添加到残留块的对应样本以重现当前子块。
应当认识到,根据所述实例,本文中描述的任何技术的某些动作或事件可以按不同的顺序执行、可以进行添加、合并或完全省去(例如,并不是所有描述的动作和事件对于实践技术来说都是必要的)。此外,在某些实例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器同时地而不是按顺序执行。
在一或多个实例中,所描述的功能可以在硬件、软件、固件或其任何组合中实施。如果在软件中实施,则功能可以作为一或多个指令或代码存储在计算机可读媒体上或通过计算机可读媒体进行传输并且由基于硬件的处理单元执行。计算机可读媒体可以包含对应于如数据存储媒体等有形媒体的计算机可读存储媒体或包含包括有助于例如根据通信协议将计算机程序从一个地方转移到另一个地方的任何媒体的通信媒体。以这种方式,计算机可读媒体通常可以对应于(1)非暂时性的有形计算机可读存储媒体或者(2)如信号或载波等通信媒体。数据存储媒体可以是可以被一或多个计算机或者一或多个处理器访问以检索用于实施本公开中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可以包含计算机可读媒体。
通过举例而非限制的方式,这种计算机可读存储媒体可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、闪速存储器、或可以用于以指令或数据结构的形式存储期望的程序代码并且可以被计算机访问的任何其它媒体。而且,任何连接均适当地被称为计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或如红外线、无线电和微波等无线技术包含在媒体的定义中。然而,应当理解的是,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它暂时性媒体,反而涉及非暂时性有形存储媒体。如本文所使用的,盘和碟包含压缩碟(CD)、激光碟、光碟、数字通用碟(DVD)、软盘和蓝光碟,其中盘通常磁性地重现数据,而碟用激光光学地重现数据。上述的组合还应当包含于机器可读媒体的范围内。
指令可以由一或多个处理器执行,如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效的集成或离散逻辑电路系统。因此,如本文所使用的术语“处理器”可以指代任何前述结构或适于实施本文所描述的技术的任何其它结构。另外,在一些方面,本文所描述的功能可以在被配置成用于编码和解码的专用硬件和/或软件模块内提供或并入组合的编码解码器中。而且,技术可以完全实施在一或多个电路或逻辑元件中。
本公开的技术可以在各种装置或设备中实施,包含无线手持装置、集成电路(IC)或IC组(例如,芯片组)。本公开中描述了各个组件、模块或单元以强调被配置成执行所公开技术的装置的功能方面,但不一定需要通过不同的硬件单元来实现。相反,如上所述,结合适合的软件和/或固件,各个单元可以组合在编码解码器硬件单元中或由互操作硬件单元集合提供,包含如上所述的一或多个处理器。
已经描述了各个实例。这些和其它实例在以下权利要求书的范围内。

Claims (30)

1.一种对视频数据进行编码的方法,所述方法包括:
将视频数据的父块划分为邻近子块和当前子块,其中所述邻近子块和所述当前子块对应于所述父块的分区树结构的叶节点;
响应于将所述父块划分为所述邻近子块和所述当前子块构建所述当前子块的包含多个运动向量候选的运动候选列表,使得所述多个运动向量候选省略表示所述邻近子块的运动向量的数据;以及
使用所述多个运动向量候选中的一个对所述当前子块的运动信息进行编码。
2.根据权利要求1所述的方法,其进一步包括使用所述当前子块的块索引的值确定所述邻近子块和所述当前子块是所述父块的分区,所述块索引的所述值表示所述当前子块在所述父块中的相对位置。
3.根据权利要求1所述的方法,其进一步包括使用所述当前子块的分割方式元素的值确定所述邻近子块和所述当前子块是所述父块的分区,所述分割方式元素的所述值表示将所述父块分割成所述邻近块和所述子块的方式。
4.根据权利要求1所述的方法,其进一步包括使用先前子块的分割方式元素的值确定所述邻近子块和所述当前子块是所述父块的分区,所述分割方式元素的所述值表示将所述先前子块的父块分割成包含所述先前子块的方式。
5.根据权利要求1所述的方法,其中构建所述运动候选列表包括当所述当前子块的分割方式元素的值指示所述父块被竖直地分割成两部分时、当块索引的值指示所述当前子块在所述邻近子块右边时以及当先前子块的先前分割方式元素的值指示所述先前子块未被分割时,避免检查所述当前子块的左邻近块的运动信息,所述左邻近块在所述当前子块的最左下邻近块上方。
6.根据权利要求1所述的方法,其中构建所述运动候选列表包括当所述当前子块的分割方式元素的值指示所述父块被竖直地分割成两部分时、块索引的值指示所述当前子块在所述邻近子块右边以及当左邻近块的二叉树分区深度等于所述当前子块的二叉树分区深度时,避免检查所述左邻近块的运动信息。
7.根据权利要求6所述的方法,其进一步包括当所述当前子块的所述分割方式元素的所述值指示所述父块被竖直地分割成两部分时、所述块索引的所述值指示所述当前子块在所述邻近子块右边以及当先前子块的先前分割方式元素的值指示所述先前子块未被分割时,避免将具有所述左邻近块的所述运动信息的任何候选包含在所述运动候选列表中。
8.根据权利要求1所述的方法,其中构建所述运动候选列表包括当所述当前子块的分割方式元素的值指示所述父块被水平地分割成两部分时、块索引的值指示所述当前子块在所述邻近子块下方以及当先前子块的先前分割方式元素的值指示所述先前子块未被分割时,避免检查所述当前子块的右上邻近块的运动信息。
9.根据权利要求1所述的方法,其中构建所述运动候选列表包括当所述当前子块的分割方式元素的值指示所述父块被水平地分割成两部分时、块索引的值指示所述当前子块在所述邻近子块下方以及当左邻近块的二叉树分区深度等于所述当前子块的二叉树分区深度时,避免检查所述当前子块的右上邻近块的运动信息。
10.根据权利要求9所述的方法,其进一步包括当所述当前子块的所述分割方式元素的所述值指示所述父块被竖直地分割成两部分时、所述块索引的所述值指示所述当前子块在所述邻近子块右边以及当先前子块的先前分割方式元素的值指示所述先前子块未被分割时,避免将具有所述左邻近块的所述运动信息的任何候选包含在所述运动候选列表中。
11.根据权利要求1所述的方法,其中对所述运动信息进行编码包括对所述运动信息进行解码,所述方法进一步包括:
使用所述运动信息形成所述当前子块的预测块;
对所述当前子块的残留块进行解码;以及
将所述预测块的样本添加到所述残留块的对应样本,以重现所述当前子块。
12.根据权利要求1所述的方法,其中对所述运动信息进行编码包括对所述运动信息进行编码,所述方法进一步包括:
使用所述运动信息形成所述当前子块的预测块;
形成所述当前子块的残留块,所述残留块包括所述当前子块的样本与所述预测块的对应样本之间的差;以及
对所述残留块进行编码。
13.一种用于对视频数据进行编码的装置,所述装置包括:
存储器,所述存储器包括被配置成存储视频数据的电路系统;以及
一或多个处理器,所述一或多个处理器实施在电路系统中并且被配置成:
将所述视频数据的父块划分为邻近子块和当前子块,其中所述邻近子块和所述当前子块对应于所述父块的分区树结构的叶节点;
响应于将所述父块划分为所述邻近子块和所述当前子块构建所述当前子块的包含多个运动向量候选的运动候选列表,使得所述多个运动向量候选省略表示所述邻近子块的运动向量的数据;并且
使用所述多个运动向量候选中的一个对所述当前子块的运动信息进行编码。
14.根据权利要求13所述的装置,其中所述一或多个处理器被进一步配置成使用所述当前子块的块索引的值确定所述邻近子块和所述当前子块是所述父块的分区,所述块索引的所述值表示所述当前子块在所述父块中的相对位置。
15.根据权利要求13所述的装置,其中所述一或多个处理器被进一步配置成使用所述当前子块的分割方式元素的值确定所述邻近子块和所述当前子块是所述父块的分区,所述分割方式元素的所述值表示将所述父块分割成所述邻近块和所述子块的方式。
16.根据权利要求13所述的装置,其中所述一或多个处理器被进一步配置成使用先前子块的分割方式元素的值确定所述邻近子块和所述当前子块是所述父块的分区,所述分割方式元素的所述值表示将所述先前子块的父块分割成包含所述先前子块的方式。
17.根据权利要求13所述的装置,其中为了构建所述运动候选列表,所述一或多个处理器被配置成当所述当前子块的分割方式元素的值指示所述父块被竖直地分割成两部分时、当块索引的值指示所述当前子块在所述邻近子块右边时以及当先前子块的先前分割方式元素的值指示所述先前子块未被分割时,避免检查所述当前子块的左邻近块的运动信息,左邻近块在所述当前子块的最左下邻近块上方。
18.根据权利要求13所述的装置,其中为了构建所述运动候选列表,所述一或多个处理器被配置成当所述当前子块的分割方式元素的值指示所述父块被竖直地分割成两部分时、块索引的值指示所述当前子块在所述邻近子块右边以及当左邻近块的二叉树分区深度等于所述当前子块的二叉树分区深度时,避免检查所述左邻近块的运动信息。
19.根据权利要求13所述的装置,其中为了构建所述运动候选列表,所述一或多个处理器被配置成当所述当前子块的分割方式元素的值指示所述父块被水平地分割成两部分时、块索引的值指示所述当前子块在所述邻近子块下方以及当先前子块的先前分割方式元素的值指示所述先前子块未被分割时,避免检查所述当前子块的右上邻近块的运动信息。
20.根据权利要求13所述的装置,其中为了构建所述运动候选列表,所述一或多个处理器被配置成当所述当前子块的分割方式元素的值指示所述父块被水平地分割成两部分时、块索引的值指示所述当前子块在所述邻近子块下方以及当左邻近块的二叉树分区深度等于所述当前子块的二叉树分区深度时,避免检查所述当前子块的右上邻近块的运动信息。
21.根据权利要求13所述的装置,其进一步包括显示器,所述显示器被配置成显示经过解码的视频数据。
22.根据权利要求13所述的装置,其中所述装置包括相机、计算机、移动装置、广播接收器装置或机顶盒中的一或多个。
23.根据权利要求13所述的装置,其中所述一或多个处理器包括视频解码器,所述视频解码器被配置成对所述运动信息进行解码并且被进一步配置成:
使用所述运动信息形成所述当前子块的预测块;
对所述当前子块的残留块进行解码;并且
将所述预测块的样本添加到所述残留块的对应样本,以重现所述当前子块。
24.根据权利要求13所述的装置,其中所述一或多个处理器包括视频编码器,所述视频编码器被配置成对所述运动信息进行编码并且被进一步配置成:
使用所述运动信息形成所述当前子块的预测块;
形成所述当前子块的残留块,所述残留块包括所述当前子块的样本与所述预测块的对应样本之间的差;并且
对所述残留块进行编码。
25.一种计算机可读存储媒体,在其上存储有指令,所述指令在被执行时使处理器:
将视频数据的父块划分为邻近子块和当前子块,其中所述邻近子块和所述当前子块对应于所述父块的分区树结构的叶节点;
响应于将所述父块划分为所述邻近子块和所述当前子块构建所述当前子块的包含多个运动向量候选的运动候选列表,使得所述多个运动向量候选省略表示所述邻近子块的运动向量的数据;并且
使用所述多个运动向量候选中的一个对所述当前子块的运动信息进行编码。
26.根据权利要求25所述的计算机可读存储媒体,其进一步包括使所述处理器使用所述当前子块的块索引的值确定所述邻近子块和所述当前子块是所述父块的分区的指令,所述块索引的所述值表示所述当前子块在所述父块中的相对位置。
27.根据权利要求25所述的计算机可读存储媒体,其进一步包括使所述处理器使用所述当前子块的分割方式元素的值确定所述邻近子块和所述当前子块是所述父块的分区的指令,所述分割方式元素的所述值表示将所述父块分割成所述邻近块和所述子块的方式。
28.根据权利要求25所述的计算机可读存储媒体,其中使所述处理器构建所述运动候选列表的所述指令包括使所述处理器当所述当前子块的分割方式元素的值指示所述父块被竖直地分割成两部分时、块索引的值指示所述当前子块在所述邻近子块右边以及当左邻近块的二叉树分区深度等于所述当前子块的二叉树分区深度时避免检查所述左邻近块的运动信息的指令。
29.根据权利要求25所述的计算机可读存储媒体,其中使所述处理器构建所述运动候选列表的所述指令包括使所述处理器当所述当前子块的分割方式元素的值指示所述父块被水平地分割成两部分时、块索引的值指示所述当前子块在所述邻近子块下方以及当左邻近块的二叉树分区深度等于所述当前子块的二叉树分区深度时避免检查所述当前子块的右上邻近块的运动信息的指令。
30.一种用于对视频数据进行编码的装置,所述装置包括:
用于将视频数据的父块划分为邻近子块和当前子块的装置,其中所述邻近子块和所述当前子块对应于所述父块的分区树结构的叶节点;
用于响应于将所述父块划分为所述邻近子块和所述当前子块构建所述当前子块的包含多个运动向量候选的运动候选列表使得所述多个运动向量候选省略表示所述邻近子块的运动向量的数据的装置;以及
用于使用所述多个运动向量候选中的一个对所述当前子块的运动信息进行编码的装置。
CN201880066454.5A 2017-10-17 2018-10-17 使用基于编码结构的候选列表构建对视频数据的运动信息进行编码 Pending CN111213376A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762573607P 2017-10-17 2017-10-17
US62/573,607 2017-10-17
US16/161,938 US20190116374A1 (en) 2017-10-17 2018-10-16 Coding motion information of video data using coding structure-based candidate list construction
US16/161,938 2018-10-16
PCT/US2018/056307 WO2019079466A1 (en) 2017-10-17 2018-10-17 ENCODING VIDEO MOVEMENT INFORMATION USING CANDIDATE LIST CONSTRUCTION BASED ON CODING STRUCTURE

Publications (1)

Publication Number Publication Date
CN111213376A true CN111213376A (zh) 2020-05-29

Family

ID=66096263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880066454.5A Pending CN111213376A (zh) 2017-10-17 2018-10-17 使用基于编码结构的候选列表构建对视频数据的运动信息进行编码

Country Status (3)

Country Link
US (1) US20190116374A1 (zh)
CN (1) CN111213376A (zh)
WO (1) WO2019079466A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019234605A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Extended quad-tree with asymmetric sub-blocks and different tree for chroma
TWI728390B (zh) 2018-06-29 2021-05-21 大陸商北京字節跳動網絡技術有限公司 查找表尺寸
EP3791588A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Checking order of motion candidates in lut
TWI719523B (zh) * 2018-06-29 2021-02-21 大陸商北京字節跳動網絡技術有限公司 哪個查找表需要更新或不更新
TWI752331B (zh) 2018-06-29 2022-01-11 大陸商北京字節跳動網絡技術有限公司 當向Merge/AMVP添加HMVP候選時的部分/完全修剪
WO2020003279A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
JP7256265B2 (ja) 2018-06-29 2023-04-11 北京字節跳動網絡技術有限公司 ルックアップテーブルの更新:fifo、制限されたfifo
KR20240008952A (ko) 2018-07-02 2024-01-19 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 예측 모드들을 갖는 lut들 및 비인접 블록들로부터의 인트라 모드 예측
CN111064961B (zh) 2018-09-12 2023-06-09 北京字节跳动网络技术有限公司 视频处理方法和装置
EP3854096A1 (en) * 2018-09-21 2021-07-28 VID SCALE, Inc. Affine motion estimation for affine model-based video coding
CN113170182B (zh) 2018-12-03 2024-01-26 北京字节跳动网络技术有限公司 不同预测模式下的修剪方法
CN113273186A (zh) 2019-01-10 2021-08-17 北京字节跳动网络技术有限公司 Lut更新的调用
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
CN113966616B (zh) 2019-06-04 2023-11-14 北京字节跳动网络技术有限公司 使用临近块信息的运动候选列表构建
JP7446339B2 (ja) 2019-06-04 2024-03-08 北京字節跳動網絡技術有限公司 幾何学的分割モードコーディングを用いた動き候補リスト
KR20220016840A (ko) 2019-06-06 2022-02-10 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩을 위한 움직임 후보 리스트 구성
JP7318099B2 (ja) 2019-07-14 2023-07-31 北京字節跳動網絡技術有限公司 ビデオコーディングにおける変換ブロック・サイズ制約
CN114450959A (zh) 2019-09-28 2022-05-06 北京字节跳动网络技术有限公司 视频编解码中的几何分割模式

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120219064A1 (en) * 2011-02-24 2012-08-30 Qualcomm Incorporated Hierarchy of motion prediction video blocks
US20130188720A1 (en) * 2012-01-24 2013-07-25 Qualcomm Incorporated Video coding using parallel motion estimation
US20130272412A1 (en) * 2012-04-12 2013-10-17 Qualcomm Incorporated Common motion information candidate list construction process
US20150326883A1 (en) * 2012-09-28 2015-11-12 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
CN107211156A (zh) * 2015-01-26 2017-09-26 高通股份有限公司 以子预测单元为基础的先进时间运动向量预测

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3025334C (en) * 2016-05-25 2021-07-13 Arris Enterprises Llc Binary ternary quad tree partitioning for jvet coding of video data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120219064A1 (en) * 2011-02-24 2012-08-30 Qualcomm Incorporated Hierarchy of motion prediction video blocks
US20130188720A1 (en) * 2012-01-24 2013-07-25 Qualcomm Incorporated Video coding using parallel motion estimation
US20130272412A1 (en) * 2012-04-12 2013-10-17 Qualcomm Incorporated Common motion information candidate list construction process
US20150326883A1 (en) * 2012-09-28 2015-11-12 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
CN107211156A (zh) * 2015-01-26 2017-09-26 高通股份有限公司 以子预测单元为基础的先进时间运动向量预测

Also Published As

Publication number Publication date
US20190116374A1 (en) 2019-04-18
WO2019079466A1 (en) 2019-04-25

Similar Documents

Publication Publication Date Title
CN111164973B (zh) 译码用于视频译码的仿射预测运动信息
US20190116374A1 (en) Coding motion information of video data using coding structure-based candidate list construction
US10560712B2 (en) Affine motion prediction for video coding
US10834419B2 (en) Conformance constraint for collocated reference index in video coding
US10440399B2 (en) Coding sign information of video data
US10887597B2 (en) Systems and methods of determining illumination compensation parameters for video coding
US10230980B2 (en) Overlapped motion compensation for video coding
US11477477B2 (en) Sub-prediction unit based advanced temporal motion vector prediction
CN111818343B (zh) 将当前图片用作视频译码的参考
EP3849182B1 (en) Restriction of prediction units in b slices to uni-directional inter prediction
EP2777262B1 (en) Generating additional merge candidates
US9420286B2 (en) Temporal motion vector prediction in HEVC and its extensions
US10542280B2 (en) Encoding optimization with illumination compensation and integer motion vector restriction
KR20210068439A (ko) 히스토리 기반 모션 벡터 예측자에 대한 개선들
WO2019147826A1 (en) Advanced motion vector prediction speedups for video coding
KR20190120389A (ko) 아핀 모션 정보 도출
CA3034925A1 (en) Motion vector coding for video coding
US20130329007A1 (en) Redundancy removal for advanced motion vector prediction (amvp) in three-dimensional (3d) video coding
US20130070855A1 (en) Hybrid motion vector coding modes for video coding
CN114128259A (zh) 用于视频译码的合并模式译码
US20140064359A1 (en) Intra prediction most probable mode order improvement for scalable video coding
CN114128261A (zh) 用于视频译码的组合的帧间和帧内预测模式
WO2014025692A1 (en) Multi-hypothesis motion compensation for scalable video coding and 3d video coding
US9426465B2 (en) Sub-PU level advanced residual prediction
JP2021527999A (ja) シグナリングサブ予測ユニット動きベクトル予測子

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200529