CN117528115A - 一种视频图像预测方法及装置 - Google Patents

一种视频图像预测方法及装置 Download PDF

Info

Publication number
CN117528115A
CN117528115A CN202311295528.1A CN202311295528A CN117528115A CN 117528115 A CN117528115 A CN 117528115A CN 202311295528 A CN202311295528 A CN 202311295528A CN 117528115 A CN117528115 A CN 117528115A
Authority
CN
China
Prior art keywords
motion model
affine
identifier
affine motion
flag
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
CN202311295528.1A
Other languages
English (en)
Inventor
陈焕浜
马祥
杨海涛
陈建乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Priority to CN202311295528.1A priority Critical patent/CN117528115A/zh
Publication of CN117528115A publication Critical patent/CN117528115A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/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/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/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
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/46Embedding additional information in the video signal during the compression process
    • 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/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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

Abstract

本申请提供一种视频图像预测方法及装置,用以解决现有技术中存在的编码视频序列长度加长的问题。有些视频图像不具有仿射特性,有些视频图像不是所有的条带都具有仿射特性,因此,可以在码流中增加第一种标识和/或第二种标识,第一种标识用于指示视频图像是否可以采用仿射运动模型的帧间预测模式,第二种标识用于指示视频图像中的条带是否可以采用仿射运动模型的帧间预测模式。针对不需要采用仿射运动模型的视频图像或者条带包括的图像块,可以不需要传输该图像块与仿射运动模型相关的参数。在解码侧,在解码该图像块时,也不需要解析与仿射运动模型相关的参数,可以降低解码器的负载,提高处理速度,减少处理时间。

Description

一种视频图像预测方法及装置
本申请是分案申请,原申请的申请号是201810983026.0,原申请日是2018年08月27日,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及图像编解码技术领域,尤其涉及一种视频图像预测方法及装置。
背景技术
随着信息技术的发展,高清晰度电视,网络会议,IPTV,3D电视等视频业务迅速发展,视频信号以其直观性和高效性等优势成为人们日常生活中获取信息最主要的方式。由于视频信号包含的数据量大,需要占用大量的传输带宽和存储空间。为了有效的传输和存储视频信号,需要对视频信号进行压缩编码,视频压缩技术越来越成为视频应用领域不可或缺的关键技术。
视频编码压缩的基本原理是,利用空域、时域和码字之间的相关性,尽可能去除冗余。目前流行的做法是采用基于图像块的混合视频编码框架,通过预测(包括帧内预测和帧间预测)、变换、量化、熵编码等步骤来实现视频编码压缩。
在各种视频编/解码方案中,帧间预测中的运动估计/运动补偿是一种影响编/解码性能的关键技术。现有帧间预测在采用基于平动运动模型的基于块的运动补偿预测(motion compensation,MC)基础上,又增加了采用非平动运动模型(比如仿射运动模型)的基于子块的运动补偿预测。无论是不是采用非平动运动模型,都需要在编码视频序列中增加关于仿射运动模型的相关参数,从而会增加编码视频序列的长度。
发明内容
本申请提供一种视频图像预测方法及装置,用以解决现有技术中存在的编码视频序列长度加长的问题。
第一方面,本申请实施例提供一种视频图像预测方法,包括:从码流中解析第一标识;当所述第一标识指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,同时,当所述待处理块满足采用所述仿射运动模型进行帧间预测的预设条件时,从所述码流中解析第二标识;根据所述第二标识,确定所述待处理块进行帧间预测所采用的预测模式,所述预测模式包括所述仿射运动模型的融合模式、所述仿射运动模型的AMVP模式和非仿射运动模型的预测模式。
通过上述方案,比如有些视频图像可能存在某些仿射特性,可能有些视频图像没有仿射特性,可以在码流中增加标识,来指示针对该视频图像是否可以采用仿射运动模型的帧间预测模式。若该视频图像不可以采用仿射运动模型的帧间预测模式,则可以不需要传输该视频图像中包括的图像块与仿射运动模型相关的参数。在解码侧,在解码视频图像中的图像块时,也不需要解析与仿射运动模型相关的参数,可以降低解码器的负载,提高处理速度,减少处理时间。
示例性的,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。另外,针对标识等参数来说,各个方面以及具体实施例中针对同一内容可以采用不同的名称来描述,比如,第一方面中的第一标识,在第二方面中采用第五标识来描述。在具体实施例中,第一方面中的第一标识称为标识1,第二标识称为标识12。
在第一方面的一种可能的设计中,所述从码流中解析第一标识,可以通过如下方式实现,从所述码流的序列参数集中解析所述第一标识。在序列参数集中配置该第一标识,第一标识指示视频图像不可以采用仿射运动模型的帧间预测模式时,则在该视频图像的每个图像块级语法中不包括与仿射运动模型相关的语法元素。在解码侧,在解码该视频图像中的图像块时,也不需要解析与仿射运动模型相关的参数,可以降低解码器的负载,提高处理速度,减少处理时间。
在第一方面的一种可能的设计中,当所述第一标识指示所述待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,还包括:从所述码流中解析第三标识,其中,当所述第三标识为第一数值时,所述仿射运动模型仅包括4参数仿射模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射模型和6参数仿射模型,所述第一数值和所述第二数值不同。
上述设计,码流中还可以配置视频图像采用的仿射运动模型是否可以包括6参数仿射运动模型的第三标识。当第三标识指示视频图像不可以采用6参数仿射模型时,针对该视频图像包括的图像块不需要解析与6参数仿射模型相关的参数,码流中也不需要针对该视频图像包括的每个图像块传输与6参数仿射模型相关的参数,从而可以减少编码视频序列的长度,降低解码器的负载,提高处理速度,减少处理时间。
在具体实施例中,第一方面中的第三标识称为标识13。
在第一方面的一种可能的设计中,还包括:当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值时,构建第一候选运动矢量列表,其中,所述第一候选运动矢量列表包括第一元素,所述第一元素包括用于构建所述6参数仿射运动模型的三个控制点的运动信息;
当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第一数值时,构建第二候选运动矢量列表,所述第二候选运动矢量列表包括第二元素,所述第二元素仅包括用于构建所述4参数仿射运动模型的两个控制点的运动信息。
上述设计,提供了一种通过第三标识以及第二标识来指示候选运动矢量列表的构建。
在第一方面的一种可能的设计中,当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值时,所述第一候选运动矢量列表还包括所述第二元素。
在第一方面的一种可能的设计中,还包括:当所述第二标识指示所述待处理块采用所述仿射运动模型的AMVP模式进行帧间预测,且所述第三标识为所述第二数值时,从所述码流中解析第四标识;当所述第四标识为第三数值时,所述仿射运动模型为所述6参数仿射运动模型,当所述第四标识为第四数值时,所述仿射运动模型为所述4参数仿射运动模型,所述第三数值和所述第四数值不同。
在具体实施例中,第四标识称为标识14。
在第一方面的一种可能的设计中,从所述码流中解析第三标识,包括:从所述码流的序列参数集中解析所述第三标识。
在第一方面的一种可能的设计中,所述预设条件包括所述待处理块的宽度大于或等于第一预设阈值,且所述待处理块的高度大于或等于第二预设阈值。
在第一方面的一种可能的设计中,所述第一预设阈值等于所述第二预设阈值。
第二方面,本申请实施例提供了一种视频图像预测方法,包括:从码流中解析第一标识;当所述第一标识指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,同时,当所述待处理块满足采用所述仿射运动模型进行帧间预测的预设条件时,从所述码流中解析第二标识;根据所述第二标识,确定所述待处理块进行帧间预测所采用的预测模式,所述预测模式包括所述仿射运动模型的融合模式、所述仿射运动模型的AMVP模式和非仿射运动模型的预测模式。
通过上述方案,比如视频图像某些条带可能存在某些仿射特性,可能视频图像有些没有仿射特性,可以在码流中增加标识,来指示针对该视频图像的条带是否可以采用仿射运动模型的帧间预测模式。若该条带不可以采用仿射运动模型的帧间预测模式,则可以不需要传输该条带中包括的图像块与仿射运动模型相关的参数。在解码侧,在解码条带中的图像块时,也不需要解析与仿射运动模型相关的参数,可以降低解码器的负载,提高处理速度,减少处理时间。
需要说明的是,第二方面中的第一标识,在具体实施例中,称为标识2,第二方面中的第二标识在具体实施例中称为标识12。
在第二方面的一种可能的设计中,所述从码流中解析第一标识,包括:从所述码流的所述条带的条带头解析所述第一标识。
在序列参数集中配置该第一标识,第一标识指示条带不可以采用仿射运动模型的帧间预测模式时,则在该条带的每个图像块级语法中不包括与仿射运动模型相关的语法元素。在解码侧,在解码该条带中的图像块时,也不需要解析与仿射运动模型相关的参数,可以降低解码器的负载,提高处理速度,减少处理时间。
在第二方面的一种可能的设计中,当所述第一标识指示所述待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,还包括:从所述码流中解析第三标识,其中,当所述第三标识为第一数值时,所述仿射运动模型仅包括4参数仿射模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射模型和6参数仿射模型,所述第一数值和所述第二数值不同。
需要说明的是,第二方面中的第三标识,在具体实施例中,称为标识23。
在第二方面的一种可能的设计中,还包括:当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值时,构建第一候选运动矢量列表,所述第一候选运动矢量列表包括第一元素,所述第一元素包括用于构建所述6参数仿射运动模型的三个控制点的运动信息;
当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第一数值时,构建第二候选运动矢量列表,所述第二候选运动矢量列表包括第二元素,所述第二元素仅包括用于构建所述4参数仿射运动模型的两个控制点的运动信息。
在第二方面的一种可能的设计中,当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值时,所述第一候选运动矢量列表还包括所述第二元素。
在第二方面的一种可能的设计中,还包括:当所述第二标识指示所述待处理块采用所述仿射运动模型的AMVP模式进行帧间预测,且所述第三标识为所述第二数值时,从所述码流中解析第四标识;
当所述第四标识为第三数值时,所述仿射运动模型为所述6参数仿射运动模型,当所述第四标识为第四数值时,所述仿射运动模型为所述4参数仿射运动模型,所述第三数值和所述第四数值不同。
需要说明的是,本申请将第四标识在具体实施例中称为标识14。
上述设计,码流中还可以配置条带采用的仿射运动模型是否可以包括6参数仿射运动模型的第三标识。当第三标识指示条带不可以采用6参数仿射模型时,针对该条带包括的图像块不需要解析与6参数仿射模型相关的参数,码流中也不需要针对该条带包括的每个图像块传输与6参数仿射模型相关的参数,从而可以减少编码视频序列的长度,降低解码器的负载,提高处理速度,减少处理时间。
在第二方面的一种可能的设计中,从所述码流中解析第三标识,包括:从所述码流的条带的条带头中解析所述第三标识。
在第二方面的一种可能的设计中,在所述从码流中解析第一标识之前,还包括:从所述码流中解析第五标识,当所述第五标识为第五数值时,所述待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括所述仿射运动模型,当所述第五标识为第六数值时,所述待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型仅包括非仿射运动模型,所述第五数值和所述第六数值不同。
第五标识在具体实施例中称为标识1。
有些视频图像不具有仿射特性,有些视频图像不是所有的条带都具有仿射特性,因此,可以在码流中增加两种标识,第一种标识(第二方面中称为第五标识)用于指示视频图像是否可以采用仿射运动模型的帧间预测模式,第二种标识(第二方面中称为第一标识)用于指示视频图像中的条带是否可以采用仿射运动模型的帧间预测模式。针对不需要采用仿射运动模型的视频图像或者条带包括的图像块,可以不需要传输该图像块与仿射运动模型相关的参数。在解码侧,在解码该图像块时,也不需要解析与仿射运动模型相关的参数,可以降低解码器的负载,提高处理速度,减少处理时间。
在第二方面的一种可能的设计中,所述从所述码流中解析第五标识,包括:从所述码流的序列参数集中解析所述第五标识。
在第二方面的一种可能的设计中,在所述从所述码流中解析第五标识之后,且在所述从码流中解析第一标识之前,还包括:从所述码流中解析第六标识,所述第六标识用于确定所述码流中包括所述第三标识。
需要说明的是,第二方面中的第六标识,在具体实施例中称为标识13。
在第二方面的一种可能的设计中,所述从所述码流中解析第六标识,包括:从所述码流的序列参数集中解析所述第六标识。
在第二方面的一种可能的设计中,所述预设条件包括所述待处理块的宽度大于或等于第一预设阈值,且所述待处理块的高度大于或等于第二预设阈值。
在第二方面的一种可能的设计中,所述第一预设阈值等于所述第二预设阈值。
基于与第一方面同样的发明构思,第三方面,本申请实施例提供了一种视频图像预测装置,包括:
解析单元,用于从码流中解析第一标识;当所述第一标识指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,同时,当所述待处理块满足采用所述仿射运动模型进行帧间预测的预设条件时,从所述码流中解析第二标识;
所述解析单元,还用于根据所述第二标识,确定所述待处理块进行帧间预测所采用的预测模式,所述预测模式包括所述仿射运动模型的融合模式、所述仿射运动模型的AMVP模式和非仿射运动模型的预测模式。
在第三方面的一种可能的设计中,所述解析单元,在从码流中解析第一标识时,具体用于:从所述码流的序列参数集中解析所述第一标识。
在第三方面的一种可能的设计中,当所述第一标识指示所述待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,所述解析单元,还用于:从所述码流中解析第三标识,其中,当所述第三标识为第一数值时,所述仿射运动模型仅包括4参数仿射模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射模型和6参数仿射模型,所述第一数值和所述第二数值不同。
在第三方面的一种可能的设计中,还包括:构建单元,用于当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值时,构建第一候选运动矢量列表,其中,所述第一候选运动矢量列表包括第一元素,所述第一元素包括用于构建所述6参数仿射运动模型的三个控制点的运动信息;
当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第一数值时,构建第二候选运动矢量列表,所述第二候选运动矢量列表包括第二元素,所述第二元素仅包括用于构建所述4参数仿射运动模型的两个控制点的运动信息。
在第三方面的一种可能的设计中,当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值时,所述第一候选运动矢量列表还包括所述第二元素。
在第三方面的一种可能的设计中,所述解析单元,还用于:
当所述第二标识指示所述待处理块采用所述仿射运动模型的AMVP模式进行帧间预测,且所述第三标识为所述第二数值时,从所述码流中解析第四标识;
当所述第四标识为第三数值时,所述仿射运动模型为所述6参数仿射运动模型,当所述第四标识为第四数值时,所述仿射运动模型为所述4参数仿射运动模型,所述第三数值和所述第四数值不同。
在第三方面的一种可能的设计中,所述解析单元,在从所述码流中解析第三标识时,具体用于:从所述码流的序列参数集中解析所述第三标识。
在第三方面的一种可能的设计中,所述预设条件包括所述待处理块的宽度大于或等于第一预设阈值,且所述待处理块的高度大于或等于第二预设阈值。
在第三方面的一种可能的设计中,所述第一预设阈值等于所述第二预设阈值。
基于与第二方面同样的发明构思,第四方面,本申请实施例提供了一种视频图像预测装置,包括:解析单元,用于从码流中解析第一标识;所述解析单元,还用于当所述第一标识指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,同时,当所述待处理块满足采用所述仿射运动模型进行帧间预测的预设条件时,从所述码流中解析第二标识;根据所述第二标识,确定所述待处理块进行帧间预测所采用的预测模式,所述预测模式包括所述仿射运动模型的融合模式、所述仿射运动模型的AMVP模式和非仿射运动模型的预测模式。
在第四方面的一种可能的设计中,所述解析单元,在从码流中解析第一标识时,具体用于:从所述码流的所述条带的条带头解析所述第一标识。
在第四方面的一种可能的设计中,所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,所述解析单元,还用于:当所述第一标识指示所述待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,从所述码流中解析第三标识,其中,当所述第三标识为第一数值时,所述仿射运动模型仅包括4参数仿射模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射模型和6参数仿射模型,所述第一数值和所述第二数值不同。
在第四方面的一种可能的设计中,还包括:构建单元,用于当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值时,构建第一候选运动矢量列表,所述第一候选运动矢量列表包括第一元素,所述第一元素包括用于构建所述6参数仿射运动模型的三个控制点的运动信息;或,
当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第一数值时,构建第二候选运动矢量列表,所述第二候选运动矢量列表包括第二元素,所述第二元素仅包括用于构建所述4参数仿射运动模型的两个控制点的运动信息。
在第四方面的一种可能的设计中,当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值时,所述第一候选运动矢量列表还包括所述第二元素。
在第四方面的一种可能的设计中,所述解析单元,还用于:当所述第二标识指示所述待处理块采用所述仿射运动模型的AMVP模式进行帧间预测,且所述第三标识为所述第二数值时,从所述码流中解析第四标识;当所述第四标识为第三数值时,所述仿射运动模型为所述6参数仿射运动模型,当所述第四标识为第四数值时,所述仿射运动模型为所述4参数仿射运动模型,所述第三数值和所述第四数值不同。
在第四方面的一种可能的设计中,所述解析单元,在从所述码流中解析第三标识时,具体用于:从所述码流的所述条带的条带头中解析所述第三标识。
在第四方面的一种可能的设计中,所述解析单元,在所述从码流中解析第一标识之前,还用于:从所述码流中解析第五标识,当所述第五标识为第五数值时,所述待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括所述仿射运动模型,当所述第五标识为第六数值时,所述待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型仅包括非仿射运动模型,所述第五数值和所述第六数值不同。
在第四方面的一种可能的设计中,所述解析单元,在从所述码流中解析第五标识时,具体用于:从所述码流的序列参数集中解析所述第五标识。
在第四方面的一种可能的设计中,所述解析单元,还用于在所述从所述码流中解析第五标识之后,且在所述从码流中解析第一标识之前,从所述码流中解析第六标识,所述第六标识用于确定所述码流中包括所述第三标识。
在第四方面的一种可能的设计中,所述解析单元,在从所述码流中解析第六标识时,具体用于:从所述码流的序列参数集中解析所述第六标识。
在第四方面的一种可能的设计中,所述预设条件包括所述待处理块的宽度大于或等于第一预设阈值,且所述待处理块的高度大于或等于第二预设阈值。
在第四方面的一种可能的设计中,所述第一预设阈值等于所述第二预设阈值。
第五方面,本申请实施例提供一种装置,该装置可以是解码器,包括:处理器和存储器;该存储器用于存储指令,当该装置运行时,该处理器执行该存储器存储的该指令,以使该装置执行上述第一方面或第一方面的任一设计,或者第二方面或第二方面的任一设计,提供的方法。需要说明的是,该存储器可以集成于处理器中,也可以是独立于处理器之外。
第六方面,本申请实施提供一种视频图像预测方法,应用于编码侧,包括:
向码流中编码第一标识;
当所述第一标识指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,且所述待处理块满足采用所述仿射运动模型进行帧间预测的预设条件时,向所述码流中编码第二标识;所述第二标识用于确定所述待处理块进行帧间预测所采用的预测模式,所述预测模式包括所述仿射运动模型的融合模式、所述仿射运动模型的先进的运动矢量预测AMVP模式和非仿射运动模型的预测模式。
在第六方面的一种可能的设计中,所述向码流中编码第一标识,可以通过如下方式实现,向所述码流的序列参数集中编码所述第一标识。
在第六方面的一种可能的设计中,当所述第一标识指示所述待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,还包括:向所述码流中编码第三标识,其中,当所述第三标识为第一数值时,所述仿射运动模型仅包括4参数仿射模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射模型和6参数仿射模型,所述第一数值和所述第二数值不同。
在第六方面的一种可能的设计中,还包括:当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值时,构建第一候选运动矢量列表,其中,所述第一候选运动矢量列表包括第一元素,所述第一元素包括用于构建所述6参数仿射运动模型的三个控制点的运动信息;
当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第一数值时,构建第二候选运动矢量列表,所述第二候选运动矢量列表包括第二元素,所述第二元素仅包括用于构建所述4参数仿射运动模型的两个控制点的运动信息。
上述设计,提供了一种通过第三标识以及第二标识来指示候选运动矢量列表的构建。
在第六方面的一种可能的设计中,当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值时,所述第一候选运动矢量列表还包括所述第二元素。
在第六方面的一种可能的设计中,还包括:当所述第二标识指示所述待处理块采用所述仿射运动模型的AMVP模式进行帧间预测,且所述第三标识为所述第二数值时,向所述码流中编码第四标识;当所述第四标识为第三数值时,所述仿射运动模型为所述6参数仿射运动模型,当所述第四标识为第四数值时,所述仿射运动模型为所述4参数仿射运动模型,所述第三数值和所述第四数值不同。
在具体实施例中,第四标识称为标识14。
在第六方面的一种可能的设计种,向所述码流中编码第三标识,包括:向所述码流的序列参数集中编码所述第三标识。
第七方面,本申请实施例提供了一种视频图像预测方法,应用于编码侧,包括:
向码流中编码第一标识;
当所述第一标识指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,且所述待处理块满足采用所述仿射运动模型进行帧间预测的预设条件时,向所述码流中编码第二标识;所述第二标识用于确定所述待处理块进行帧间预测所采用的预测模式,所述预测模式包括所述仿射运动模型的融合模式、所述仿射运动模型的先进的运动矢量预测AMVP模式和非仿射运动模型的预测模式。
在第七方面的一种可能的设计中,所述向码流中编码第一标识,包括:向所述码流的所述条带的条带头编码所述第一标识。
在第七方面的一种可能的设计中,当所述第一标识指示所述待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,还包括:向所述码流中编码第三标识,其中,当所述第三标识为第一数值时,所述仿射运动模型仅包括4参数仿射模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射模型和6参数仿射模型,所述第一数值和所述第二数值不同。
在第七方面的一种可能的设计中,还包括:当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值时,构建第一候选运动矢量列表,所述第一候选运动矢量列表包括第一元素,所述第一元素包括用于构建所述6参数仿射运动模型的三个控制点的运动信息;
当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第一数值时,构建第二候选运动矢量列表,所述第二候选运动矢量列表包括第二元素,所述第二元素仅包括用于构建所述4参数仿射运动模型的两个控制点的运动信息。
在第七方面的一种可能的设计中,当所述第二标识指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值时,所述第一候选运动矢量列表还包括所述第二元素。
在第七方面的一种可能的设计中,还包括:当所述第二标识指示所述待处理块采用所述仿射运动模型的AMVP模式进行帧间预测,且所述第三标识为所述第二数值时,向所述码流中编码第四标识;
当所述第四标识为第三数值时,所述仿射运动模型为所述6参数仿射运动模型,当所述第四标识为第四数值时,所述仿射运动模型为所述4参数仿射运动模型,所述第三数值和所述第四数值不同。
在第七方面的一种可能的设计中,向所述码流中编码第三标识,包括:向所述码流的条带的条带头中编码所述第三标识。
在第七方面的一种可能的设计中,在所述向码流中编码第一标识之前,还包括:向所述码流中编码第五标识,当所述第五标识为第五数值时,所述待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括所述仿射运动模型,当所述第五标识为第六数值时,所述待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型仅包括非仿射运动模型,所述第五数值和所述第六数值不同。
在第七方面的一种可能的设计中,所述向所述码流中编码第五标识,包括:向所述码流的序列参数集中编码所述第五标识。
在第七方面的一种可能的设计中,在所述向所述码流中编码第五标识之后,且在所述向码流中编码第一标识之前,还包括:向所述码流中编码第六标识,所述第六标识用于确定所述码流中包括所述第三标识。
需要说明的是,第七方面中的第六标识,在具体实施例中称为标识13。
在第七方面的一种可能的设计中,所述向所述码流中编码第六标识,包括:向所述码流的序列参数集中编码所述第六标识。
第八方面,本申请实施例提供一种装置,该装置可以是编码器,包括:处理器和存储器;该存储器用于存储指令,当该装置运行时,该处理器执行该存储器存储的该指令,以使该装置执行上述第三方面或第三方面的任一设计,或者第四方面或第四方面的任一设计,提供的方法。需要说明的是,该存储器可以集成于处理器中,也可以是独立于处理器之外。
本申请的第九方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请的第十方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
应理解,本申请的第三至十方面与本申请的第一、二方面的技术方案一致,各方面及对应的可实施的设计方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例中所描述的实施方式中视频编码及解码系统的框图;
图2A为本申请实施例中所描述的实施方式中视频编码器的框图;
图2B为本申请实施例所描述的实施方式中帧间预测示意图;
图2C为本申请实施例中所描述的实施方式中视频解码器的框图;
图3为本申请实施例中所描述的实施方式中运动信息候选位置示意图;
图4为本申请实施例中所描述的实施方式中继承的控制点运动矢量预测示意图;
图5A为本申请实施例中所描述的实施方式中构造的控制点运动矢量预测示意图;
图5B为本申请实施例中所描述的实施方式中将控制点的运动信息进行组合,得到构造的控制点运动信息的流程示意图;
图6A为本申请实施例中所描述的实施方式中帧间预测方法流程图;
图6B为本申请实施例中所描述的实施方式中构造候选运动矢量列表示意图;
图6C为本申请实施例中所描述的实施方式中运动补偿单元示意图;
图7为本申请实施例中提供的一种视频图像预测方法流程示意图;
图8为本申请实施例中提供的帧间预测方法流程示意图;
图9为本申请实施例提供的另一种视频图像预测方法流程示意图;
图10为本申请实施例提供的帧间预测方法流程示意图;
图11为本申请实施例提供的又一种视频图像预测方法流程示意图;
图12为本申请实施例提供的一种装置1200示意图;
图13为本申请实施例提供的一种装置1300示意图;
图14为本申请实施例提供的一种装置1400示意图。
具体实施方式
本申请实施例提供的视频图像预测方案可以应用于视频图像的编码或者解码中。图1为本申请实施例中视频编码及解码系统10的一种示意性框图。如图1所示,系统10包含源装置11和目的装置12,源装置11产生编码视频数据并发送给目的装置12,目的装置12用于接收编码视频数据,并对编码视频数据进行解码并显示。源装置11及目的装置12可包括广泛范围的装置中的任一种,包含桌上型计算机、笔记型计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手机、所谓的“智能”触控板、电视、摄影机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置等。
本申请实施例提供的图像块的帧内模式预测方案可以应用于视频图像的编码或者解码中。图1为本申请实施例中视频编码及解码系统10的一种示意性框图。如图1所示,系统10包含源装置11和目的装置12,源装置11产生编码视频数据并发送给目的装置12,目的装置12用于接收编码视频数据,并对编码视频数据进行解码并显示。源装置11及目的装置12可包括广泛范围的装置中的任一种,包含桌上型计算机、笔记型计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手机、所谓的“智能”触控板、电视、摄影机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置等。
目的装置12可经由链路16接收待解码的经编码视频数据。链路16可包括能够将经编码视频数据从源装置11传递到目的装置12的任何类型的媒体或装置。在一个可能的实现方式中,链路16可包括使源装置11能够实时将经编码视频数据直接传输到目的装置12的通信媒体。可根据通信标准(例如,无线通信协议)调制经编码视频数据且将其传输到目的装置12。通信媒体可包括任何无线或有线通信媒体,例如射频频谱或一个或多个物理传输线。通信媒体可形成基于包的网络(例如,局域网、广域网或因特网的全球网络)的部分。通信媒体可包含路由器、交换器、基站或可有用于促进从源装置11到目的装置12的通信的任何其它设备。
替代地,视频编码及解码系统10还包括存储装置,可将经编码数据从输出接口14输出到存储装置。类似地,可由输入接口15从存储装置存取经编码数据。存储装置可包含多种分散式或本地存取的数据存储媒体中的任一者,例如,硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一可行的实施方式中,存储装置可对应于文件服务器或可保持由源装置11产生的经编码视频的另一中间存储装置。目的装置12可经由流式传输或下载从存储装置存取所存储视频数据。文件服务器可为能够存储经编码视频数据且将此经编码视频数据传输到目的装置12的任何类型的服务器。可行的实施方式文件服务器包含网站服务器、文件传送协议服务器、网络附接存储装置或本地磁盘机。目的装置12可经由包含因特网连接的任何标准数据连接存取经编码视频数据。此数据连接可包含适合于存取存储于文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,缆线调制解调器等)或两者的组合。经编码视频数据从存储装置的传输可为流式传输、下载传输或两者的组合。
本申请的技术不必限于无线应用或设定。技术可应用于视频解码以支持多种多媒体应用中的任一个,例如,空中电视广播、有线电视传输、卫星电视传输、流式传输视频传输(例如,经由因特网)、编码数字视频以用于存储于数据存储媒体上、解码存储于数据存储媒体上的数字视频或其它应用。在一些可能的实现方式中,系统10可经配置以支持单向或双向视频传输以支持例如视频流式传输、视频播放、视频广播和/或视频电话的应用。
在图1的可能的实现方式中,源装置11可以包括视频源13、视频编码器20及输出接口14。在一些应用中,输出接口14可包括调制器/解调制器(调制解调器)和/或传输器。在源装置11中,视频源13可包括例如以下各种的源设备:视频捕获装置(例如,摄像机)、含有先前捕获的视频的存档、用以从视频内容提供者接收视频的视频馈入接口,和/或用于产生计算机图形数据作为源视频的计算机图形系统,或这些源的组合。作为一种可能的实现方式,如果视频源13为摄像机,那么源装置11及目的装置12可形成所谓的摄影机电话或视频电话。本申请中所描述的技术可示例性地适用于视频解码,且可适用于无线和/或有线应用。
可由视频编码器20来编码捕获、预捕获或计算产生的视频。经编码视频数据可经由源装置11的输出接口14直接传输到目的装置12。经编码视频数据也可(或替代地)存储到存储装置上以供稍后由目的装置12或其它装置存取以用于解码和/或播放。
目的装置12包含输入接口15、视频解码器30及显示装置17。在一些应用中,输入接口15可包含接收器和/或调制解调器。目的装置12的输入接口15经由链路16接收经编码视频数据。经由链路16传达或提供于存储装置上的经编码视频数据可包含由视频编码器20产生以供视频解码器30的视频解码器使用以解码视频数据的多种语法元素。这些语法元素可与在通信媒体上传输、存储于存储媒体上或存储于文件服务器上的经编码视频数据包含在一起。
显示装置17可与目的装置12集成或在目的装置12外部。在一些可能的实现方式中,目的装置12可包含集成显示装置且也经配置以与外部显示装置接口连接。在其它可能的实现方式中,目的装置12可为显示装置。一般来说,显示装置17向用户显示经解码视频数据,且可包括多种显示装置中的任一个,例如液晶显示器、等离子显示器、有机发光二极管显示器或另一类型的显示装置。
视频编码器20及视频解码器30可根据例如目前在开发中的下一代视频编解码压缩标准(H.266)操作且可遵照H.266测试模型(JEM)。替代地,视频编码器20及视频解码器30可根据例如ITU-TH.265标准,也称为高效率视频解码标准,或者,ITU-TH.264标准的其它专属或工业标准或这些标准的扩展而操作,ITU-TH.264标准替代地被称为MPEG-4第10部分,也称高级视频编码(advanced video coding,AVC)。然而,本申请的技术不限于任何特定解码标准。视频压缩标准的其它可能的实现方式包含MPEG-2和ITU-TH.263。
尽管未在图1中展示,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包含适当多路复用器-多路分用器(MUX-DEMUX)单元或其它硬件及软件以处置共同数据流或单独数据流中的音频及视频两者的编码。如果适用,那么在一些可行的实施方式中,MUX-DEMUX单元可遵照ITUH.223多路复用器协议或例如用户数据报协议(UDP)的其它协议。
视频编码器20及视频解码器30各自可实施为多种合适编码器电路中的任一者,例如,一个或多个微处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、软件、硬件、固件或其任何组合。在技术部分地以软件实施时,装置可将软件的指令存储于合适的非暂时性计算机可读媒体中且使用一个或多个处理器以硬件执行指令,以执行本申请的技术。视频编码器20及视频解码器30中的每一者可包含于一个或多个编码器或解码器中,其中的任一者可在相应装置中集成为组合式编码器/解码器(CODEC)的部分。
JCT-VC开发了H.265(HEVC)标准。HEVC标准化基于称作HEVC测试模型(HM)的视频解码装置的演进模型。H.265的最新标准文档可从http://www.itu.int/rec/T-REC-H.265获得,最新版本的标准文档为H.265(12/16),该标准文档以全文引用的方式并入本文中。HM假设视频解码装置相对于ITU-TH.264/AVC的现有算法具有若干额外能力。
JVET致力于开发H.266标准。H.266标准化的过程基于称作H.266测试模型的视频解码装置的演进模型。H.266的算法描述可从http://phenix.int-evry.fr/jvet获得,其中最新的算法描述包含于JVET-F1001-v2中,该算法描述文档以全文引用的方式并入本文中。同时,可从https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/获得JEM测试模型的参考软件,同样以全文引用的方式并入本文中。
一般来说,HM的工作模型描述可将视频帧或图像划分成包含亮度及色度样本两者的树块或最大编码单元(largest coding unit,LCU)的序列,LCU也被称为CTU。树块具有与H.264标准的宏块类似的目的。条带包含按解码次序的数个连续树块。可将视频帧或图像分割成一个或多个条带。可根据四叉树将每一树块分裂成编码单元。例如,可将作为四叉树的根节点的树块分裂成四个子节点,且每一子节点可又为母节点且被分裂成另外四个子节点。作为四叉树的叶节点的最终不可分裂的子节点包括解码节点,例如,经解码图像块。与经解码码流相关联的语法数据可定义树块可分裂的最大次数,且也可定义解码节点的最小大小。
编码单元包含解码节点及预测单元(prediction unit,PU)以及与解码节点相关联的变换单元(transform unit,TU)。CU的大小对应于解码节点的大小且形状必须为正方形。CU的大小的范围可为8×8像素直到最大64×64像素或更大的树块的大小。每一CU可含有一个或多个PU及一个或多个TU。例如,与CU相关联的语法数据可描述将CU分割成一个或多个PU的情形。分割模式在CU是被跳过或经直接模式编码、帧内预测模式编码或帧间预测模式编码的情形之间可为不同的。PU可经分割成形状为非正方形。例如,与CU相关联的语法数据也可描述根据四叉树将CU分割成一个或多个TU的情形。TU的形状可为正方形或非正方形。
HEVC标准允许根据TU进行变换,TU对于不同CU来说可为不同的。TU通常基于针对经分割LCU定义的给定CU内的PU的大小而设定大小,但情况可能并非总是如此。TU的大小通常与PU相同或小于PU。在一些可行的实施方式中,可使用称作“残余四叉树”(residualqualtree,RQT)的四叉树结构将对应于CU的残余样本再分成较小单元。RQT的叶节点可被称作TU。可变换与TU相关联的像素差值以产生变换系数,变换系数可被量化。
一般来说,PU包含与预测过程有关的数据。例如,在PU经帧内模式编码时,PU可包含描述PU的帧内预测模式的数据。作为另一可行的实施方式,在PU经帧间模式编码时,PU可包含界定PU的运动矢量的数据。例如,界定PU的运动矢量的数据可描述运动矢量的水平分量、运动矢量的垂直分量、运动矢量的分辨率(例如,四分之一像素精确度或八分之一像素精确度)、运动矢量所指向的参考图像,和/或运动矢量的参考图像列表(例如,列表0、列表1或列表C)。
一般来说,TU使用变换及量化过程。具有一个或多个PU的给定CU也可包含一个或多个TU。在预测之后,视频编码器20可计算对应于PU的残余值。残余值包括像素差值,像素差值可变换成变换系数、经量化且使用TU扫描以产生串行化变换系数以用于熵解码。本申请通常使用术语“图像块”来指CU的解码节点。在一些特定应用中,本申请也可使用术语“图像块”来指包含解码节点以及PU及TU的树块,例如,LCU或CU。
所述视频编码器20编码视频数据。视频数据可包括一个或多个图片。视频编码器20可产生码流,所述码流以比特流的形式包含了视频数据的编码信息。所述编码信息可以包含编码图片数据及相关联数据。相关联数据可包含序列参数集(sequence paramaterset,SPS)、图片参数集(picture paramater set,PPS)及其它语法结构。SPS可含有应用于零个或多个序列的参数。SPS描述的是编码视频序列(coded video sequence,CVS)一般特性的高层参数,序列参数集SPS包含该CVS中所有条带(slice)需要的信息。PPS可含有应用于零个或多个图片的参数。语法结构是指码流中以指定次序排列的零个或多个语法元素的集合。
作为一种可行的实施方式,HM支持各种PU大小的预测。假定特定CU的大小为2N×2N,HM支持2N×2N或N×N的PU大小的帧内预测,及2N×2N、2N×N、N×2N或N×N的对称PU大小的帧间预测。HM也支持2N×nU、2N×nD、nL×2N及nR×2N的PU大小的帧间预测的不对称分割。在不对称分割中,CU的一方向未分割,而另一方向分割成25%及75%。对应于25%区段的CU的部分由“n”后跟着“上(Up)”、“下(Down)”、“左(Left)”或“右(Right)”的指示来指示。因此,例如,“2N×nU”指水平分割的2N×2NCU,其中2N×0.5NPU在上部且2N×1.5NPU在底部。
在本申请中,“N×N”与“N乘N”可互换使用以指依照垂直维度及水平维度的图像块的像素尺寸,例如,16×16像素或16乘16像素。一般来说,16×16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素(x=16)。同样地,N×N块一股在垂直方向上具有N个像素,且在水平方向上具有N个像素,其中N表示非负整数值。可将块中的像素排列成行及列。此外,块未必需要在水平方向上与在垂直方向上具有相同数目个像素。例如,块可包括N×M个像素,其中M未必等于N。
在使用CU的PU的帧内预测性或帧间预测性解码之后,视频编码器20可计算CU的TU的残余数据。PU可包括空间域(也称作像素域)中的像素数据,且TU可包括在将变换(例如,离散余弦变换(discrete cosine transform,DCT)、整数变换、小波变换或概念上类似的变换)应用于残余视频数据之后变换域中的系数。残余数据可对应于未经编码图像的像素与对应于PU的预测值之间的像素差。视频编码器20可形成包含CU的残余数据的TU,且接着变换TU以产生CU的变换系数。
JEM模型对视频图像的编码结构进行了进一步的改进,具体的,被称为“四叉树结合二叉树”(QTBT)的块编码结构被引入进来。QTBT结构摒弃了HEVC中的CU,PU,TU等概念,支持更灵活的CU划分形状,一个CU可以正方形,也可以是长方形。一个CTU首先进行四叉树划分,该四叉树的叶节点进一步进行二叉树划分。同时,在二叉树划分中存在两种划分模式,对称水平分割和对称竖直分割。二叉树的叶节点被称为CU,JEM的CU在预测和变换的过程中都不可以被进一步划分,也就是说JEM的CU,PU,TU具有相同的块大小。在现阶段的JEM中,CTU的最大尺寸为256×256亮度像素。
图2A为本申请实施例中视频编码器20的一种示意性框图。
如图2A所示,视频编码器20可以包括:预测模块21、求和器22、变换模块23、量化模块24和熵编码模块25。在一种示例下,预测模块21可以包括帧间预测模块211和帧内预测模块212,本申请实施例对预测模块21的内部结构不作限定。可选的,对于混合架构的视频编码器,视频编码器20也可以包括反量化模块26、反变换模块27和求和器28。
在图2A的一种可行的实施方式下,视频编码器20还可以包括存储模块29,应当理解的是,存储模块29也可以设置在视频编码器20之外。
在另一种可行的实施方式下,视频编码器20还可以包括滤波器(图2A中未示意)以对图像块的边界进行滤波从而从经重建的视频图像中去除伪影。在需要时,滤波器对求和器28的输出进行滤波。
可选地,视频编码器20还可以包括分割单元(图2A中未示意)。视频编码器20接收视频数据,且分割单元将视频数据分割成图像块。此分割也可包含分割成条带、图像块或其它较大单元,以及(例如)根据LCU及CU的四叉树结构进行图像块分割。视频编码器20示例性地说明编码在待编码的视频条带内的图像块的组件。一般来说,条带可划分成多个图像块(且可能划分成称作图像块的集合)。条带的类型包括I(主要用于帧内图像编码)、P(用于帧间前向参考预测图像编码)、B(用于帧间双向参考预测图像编码)。
预测模块21用于对当前需要处理的图像块进行帧内或者帧间预测得到当前块的预测值(本申请中可以称为预测信息)。在本申请实施例中,当前需要处理的图像块,可以简称为待处理块,也可以简称为当前图像块,也可以简称为当前块。还可以将在编码阶段,当前需要处理的图像块,简称为当前编码块,将在解码阶段,当前需要处理的图像块,简称为当前解码块或者当前译码块。
具体的,预测模块21包括的帧间预测模块211针对当前块进行帧间预测得到帧间预测值。帧内预测模块212针对当前块进行帧内预测得到帧内预测值。帧间预测模块211在已重建的图像中,为当前图像中的当前块寻找匹配的参考块,将参考块中的像素点的像素值作为当前块中像素点的像素值的预测信息或者预测值(以下不再区分信息和值),此过程称为运动估计(Motion estimation,ME)(如图2B所示),并传输当前块的运动信息。
需要说明的是,图像块的运动信息包括了预测方向的指示信息(通常为前向预测、后向预测或者双向预测),一个或两个指向参考块的运动矢量(Motion vector,MV),以及参考块所在图像的指示信息(通常记为参考帧索引,Reference index)。
前向预测是指当前块从前向参考图像集合中选择一个参考图像获取参考块。后向预测是指当前块从后向参考图像集合中选择一个参考图像获取参考块。双向预测是指从前向和后向参考图像集合中各选择一个参考图像获取参考块。当使用双向预测方法时,当前块会存在两个参考块,每个参考块各自需要通过运动矢量和参考帧索引进行指示,然后根据两个参考块内像素点的像素值确定当前块内像素点像素值的预测值。
运动估计过程需要为当前块在参考图像中尝试多个参考块,最终使用哪一个或者哪几个参考块用作预测则使用率失真优化(Rate-distortion optimization,RDO)或者其他方法确定。
在预测模块21经由帧间预测或帧内预测产生当前块的预测值之后,视频编码器20通过从当前块减去预测值而形成残差信息。变换模块23用于对残差信息进行变换。变换模块23使用例如离散余弦变换(discrete cosine transformation,DCT)或概念上类似的变换(例如,离散正弦变换DST)将残差信息变换成残差变换系数。变换模块23可将所得残差变换系数发送到量化模块24。量化模块24对残差变换系数进行量化以进一步减小码率。在一些可行的实施方式中,量化模块24可接着执行包含经量化变换系数的矩阵的扫描。替代地,熵编码模块25可执行扫描。
在量化之后,熵编码模块25可熵编码经量化的残差变换系数得到码流。例如,熵编码模块25可执行上下文自适应性可变长度解码(CAVLC)、上下文自适应性二进制算术解码(CABAC)、基于语法的上下文自适应性二进制算术解码(SBAC)、概率区间分割熵(PIPE)解码或另一熵编码方法或技术。在通过熵编码模块25进行熵编码之后,可将经编码码流传输到视频解码器30或存档以供稍后传输或由视频解码器30检索。
反量化模块26及反变换模块27分别应用反量化及反变换,以在像素域中重构建残差块以供稍后用作参考图像的参考块。求和器28将经重构建得到的残差信息与通过预测模块21所产生的预测值相加以产生重建块,并将重建块作为参考块以供存储于存储模块29中。这些参考块可由预测模块21用作参考块以帧间或者帧内预测后续视频帧或图像中的块。
应当理解的是,视频编码器20的其它的结构变化可用于编码视频流。例如,对于某些图像块或者图像帧,视频编码器20可以直接地量化残差信息而不需要经变换模块23处理,相应地也不需要经反变换模块27处理;或者,对于某些图像块或者图像帧,视频编码器20没有产生残差信息,相应地不需要经变换模块23、量化模块24、反量化模块26和反变换模块27处理;或者,视频编码器20可以将经重构图像块作为参考块直接地进行存储而不需要经滤波器单元处理;或者,视频编码器20中量化模块24和反量化模块26可以合并在一起;或者,视频编码器20中变换模块23和反变换模块27可以合并在一起;或者,求和器22和求和器28可以合并在一起。
图2C为本申请实施例中视频解码器30的一种示意性框图。
如图2C所示,视频解码器30可以包括熵解码模块31、预测模块32、反量化模块34、反变换模块35和重建模块36。在一种示例下,预测模块32可以包括运动补偿模块322和帧内预测模块321,本申请实施例对此不作限定。
在一种可行的实施方式中,视频解码器30还可以包括存储模块33。应当理解的是,存储模块33也可以设置在视频解码器30之外。在一些可行的实施方式中,视频解码器30可执行与关于来自图2A的视频编码器20描述的编码流程的示例性地互逆的解码流程。
在解码过程期间,视频解码器30从视频编码器20接收码流。视频解码器30接收到的码流连续通过熵解码模块31、反量化模块34以及反变换模块35分别进行熵解码、反量化、反变换之后得到残差信息。根据码流确定针对当前块使用的帧内预测还是帧间预测。若是帧内预测,则预测模块32中的帧内预测模块321利用当前块周围已重建块的参考像素的像素值按照所使用的帧内预测方法构建预测信息。如果是帧间预测,则运动补偿模块322需要解析出运动信息,并使用所解析出的运动信息在已重建的图像块中确定参考块,并将参考块内像素点的像素值作为预测信息(此过程称为运动补偿(motion compensation,MC))。重建模块36使用预测信息加上残差信息便可以得到重建信息。
如上文所注明,本申请示例性地涉及帧间解码。因而,本申请的特定技术可由运动补偿模块322来执行。在其它可行的实施方式中,视频解码器30的一个或多个其它单元可另外或替代地负责执行本申请的技术。
下面首先对本申请中涉及到的概念进行描述。
1)帧间预测模式
在HEVC中,使用两种帧间预测模式,分别为先进的运动矢量预测(advancedmotion vector prediction,AMVP)模式和融合(merge)模式。
对于AMVP模式,先遍历当前块空域或者时域相邻的已编码块(记为邻块),根据各个邻块的运动信息构建候选运动矢量列表(也可以称为运动信息候选列表),然后通过率失真代价从候选运动矢量列表中确定最优的运动矢量,将率失真代价最小的候选运动信息作为当前块的运动矢量预测值(motion vector predictor,MVP)。其中,邻块的位置及其遍历顺序都是预先定义好的。率失真代价由公式(1)计算获得,其中,J表示率失真代价RD Cost,SAD为使用候选运动矢量预测值进行运动估计后得到的预测像素值与原始像素值之间的绝对误差和(sum of absolute differences,SAD),R表示码率,λ表示拉格朗日乘子。编码端将选择的运动矢量预测值在候选运动矢量列表中的索引值和参考帧索引值传递到解码端。进一步地,在MVP为中心的邻域内进行运动搜索获得当前块实际的运动矢量,编码端将MVP与实际运动矢量之间的差值(motion vector difference)传递到解码端。
J=SAD+λR (1)
对于Merge模式,先通过当前块空域或者时域相邻的已编码块的运动信息,构建候选运动矢量列表,然后通过计算率失真代价从候选运动矢量列表中确定最优的运动信息作为当前块的运动信息,再将最优的运动信息在候选运动矢量列表中位置的索引值(记为merge index,下同)传递到解码端。当前块空域和时域候选运动信息如图3所示,空域候选运动信息来自于空间相邻的5个块(A0,A1,B0,B1和B2),若相邻块不可得(相邻块不存在或者相邻块未编码或者相邻块采用的预测模式不为帧间预测模式),则该相邻块的运动信息不加入候选运动矢量列表。当前块的时域候选运动信息根据参考帧和当前帧的图序计数(picture order count,POC)对参考帧中对应位置块的MV进行缩放后获得。首先判断参考帧中T位置的块是否可得,若不可得则选择C位置的块。
与AMVP模式类似,Merge模式的邻块的位置及其遍历顺序也是预先定义好的,且邻块的位置及其遍历顺序在不同模式下可能不同。
可以看到,在AMVP模式和Merge模式中,都需要维护一个候选运动矢量列表。每次向候选列表中加入新的运动信息之前都会先检查列表中是否已经存在相同的运动信息,如果存在则不会将该运动信息加入列表中。我们将这个检查过程称为候选运动矢量列表的修剪。列表修剪是为了防止列表中出现相同的运动信息,避免冗余的率失真代价计算。
在HEVC的帧间预测中,编码块内的所有像素都采用了相同的运动信息,然后根据运动信息进行运动补偿,得到编码块的像素的预测值。然而在编码块内,并不是所有的像素都有相同的运动特性,采用相同的运动信息可能会导致运动补偿预测的不准确,进而增加了残差信息。
现有的视频编码标准使用基于平动运动模型的块匹配运动估计,并且假设块中所有像素点的运动一致。但是由于在现实世界中,运动多种多样,存在很多非平动运动的物体,如旋转的物体,在不同方向旋转的过山车,投放的烟花和电影中的一些特技动作,特别是在UGC场景中的运动物体,对它们的编码,如果采用当前编码标准中的基于平动运动模型的块运动补偿技术,编码效率会受到很大的影响,因此,产生了非平动运动模型,比如仿射运动模型,以便进一步提高编码效率。
基于此,根据运动模型的不同,AMVP模式可以分为基于平动模型的AMVP模式以及基于非平动模型的AMVP模式;Merge模式可以分为基于平动模型的Merge模式和基于非平动运动模型的Merge模式。
2)非平动运动模型
非平动运动模型预测指在编解码端使用相同的运动模型推导出当前块内每一个子运动补偿单元的运动信息,根据子运动补偿单元的运动信息进行运动补偿,得到预测块,从而提高预测效率。常用的非平动运动模型有4参数仿射运动模型或者6参数仿射运动模型。
其中,本申请实施例中涉及到的子运动补偿单元可以是一个像素点或按照特定方法划分的大小为N1×N2的像素块,其中,N1和N2均为正整数,N1可以等于N2,也可以不等于N2
4参数仿射运动模型如公式(2)所示:
4参数仿射运动模型可以通过两个像素点的运动矢量及其相对于当前块左上顶点像素的坐标来表示,将用于表示运动模型参数的像素点称为控制点。若采用左上顶点(0,0)和右上顶点(W,0)像素点作为控制点,则先确定当前块左上顶点和右上顶点控制点的运动矢量(vx0,vy0)和(vx1,vy1),然后根据公式(3)得到当前块中每一个子运动补偿单元的运动信息,其中(x,y)为子运动补偿单元相对于当前块左上顶点像素的坐标,W为当前块的宽。
6参数仿射运动模型如公式(4)所示:
6参数仿射运动模型可以通过三个像素点的运动矢量及其相对于当前块左上顶点像素的坐标来表示。若采用左上顶点(0,0)、右上顶点(W,0)和左下顶点(0,H)像素点作为控制点,则先确定当前块左上顶点、右上顶点和左下顶点控制点的运动矢量分别为(vx0,vy0)和(vx1,vy1)和(vx2,vy2),然后根据公式(5)得到当前块中每一个子运动补偿单元的运动信息,其中(x,y)为子运动补偿单元相对于当前块的左上顶点像素的坐标,W和H分别为当前块的宽和高。
采用仿射运动模型进行预测的编码块称为仿射编码块。
通常的,可以使用基于仿射运动模型的先进运动矢量预测(Advanced MotionVector Prediction,AMVP)模式或者基于仿射运动模型的融合(Merge)模式,获得仿射编码块的控制点的运动信息。
当前编码块的控制点的运动信息可以通过继承的控制点运动矢量预测方法或者构造的控制点运动矢量预测方法得到。
3)继承的控制点运动矢量预测方法
继承的控制点运动矢量预测方法,是指利用相邻已编码的仿射编码块的运动模型,确定当前块的候选的控制点运动矢量。
以图4所示的当前块为例,按照设定的顺序,比如A1->B1->B0->A0->B2的顺序遍历当前块周围的相邻位置块,找到该当前块的相邻位置块所在的仿射编码块,获得该仿射编码块的控制点运动信息,进而通过仿射编码块的控制点运动信息构造的运动模型,推导出当前块的控制点运动矢量(用于Merge模式)或者控制点的运动矢量预测值(用于AMVP模式)。A1->B1->B0->A0->B2仅作为一种示例,其它组合的顺序也适用于本申请。另外,相邻位置块不仅限于A1、B1、B0、A0、B2。
相邻位置块可以为一个像素点,按照特定方法划分的预设大小的像素块,比如可以为一个4x4的像素块,也可以为一个4x2的像素块,也可以为其他大小的像素块,不作限定。
下面以A1为例描述确定过程,其他情况以此类推:
如图4所示,若A1所在的编码块为4参数仿射编码块,则获得该仿射编码块左上顶点(x4,y4)的运动矢量(vx4,vy4)、右上顶点(x5,y5)的运动矢量(vx5,vy5);利用公式(6)计算获得当前仿射编码块左上顶点(x0,y0)的运动矢量(vx0,vy0),利用公式(7)计算获得当前仿射编码块右上顶点(x1,y1)的运动矢量(vx1,vy1)。
/>
通过如上基于A1所在的仿射编码块获得的当前块的左上顶点(x0,y0)的运动矢量(vx0,vy0)、右上顶点(x1,y1)的运动矢量(vx1,vy1)的组合为当前块的候选的控制点运动矢量。
若A1所在的编码块为6参数仿射编码块,则获得该仿射编码块左上顶点(x4,y4)的运动矢量(vx4,vy4)、右上顶点(x5,y5)的运动矢量(vx5,vy5)、左下顶点(x6,y6)的运动矢量(vx6,vy6);利用公式(8)计算获得当前块左上顶点(x0,y0)的运动矢量(vx0,vy0),利用公式(9)计算获得当前块右上顶点(x1,y1)的运动矢量(vx1,vy1)、利用公式(10)计算获得当前块左下顶点(x2,y2)的运动矢量(vx2,vy2)。
通过如上基于A1所在的仿射编码块获得的当前块的左上顶点(x0,y0)的运动矢量(vx0,vy0)、右上顶点(x1,y1)的运动矢量(vx1,vy1)、当前块左下顶点(x2,y2)的运动矢量(vx2,vy2)的组合为当前块的候选的控制点运动矢量。
需要说明的是,其他运动模型、候选位置、查找遍历顺序也可以适用于本申请,本申请实施例对此不做赘述。
需要说明的是,采用其他控制点来表示相邻和当前编码块的运动模型的方法也可以适用于本申请,此处不做赘述。
4)构造的控制点运动矢量(constructed control point motion vectors)预测方法1:
构造的控制点运动矢量预测方法,是指将当前块的控制点周边邻近的已编码块的运动矢量进行组合,作为当前仿射编码块的控制点的运动矢量,而不需要考虑周边邻近的已编码块是否为仿射编码块。
利用当前编码块周边邻近的已编码块的运动信息确定当前块左上顶点和右上顶点的运动矢量。以图5A所示为例对构造的控制点运动矢量预测方法进行描述。需要说明的是,图5A仅作为一种示例。
如图5A所示,利用左上顶点相邻已编码块A2,B2和B3块的运动矢量,作为当前块左上顶点的运动矢量的候选运动矢量;利用右上顶点相邻已编码块B1和B0块的运动矢量,作为当前块右上顶点的运动矢量的候选运动矢量。将上述左上顶点和右上顶点的候选运动矢量进行组合,构成多个二元组,二元组包括的两个已编码块的运动矢量可以作为当前块的候选的控制点运动矢量,参见如下公式(11A)所示:
{vA2,vB1},{vA2,vB0},{vB2,vB1},{vB2,vB0},{vB3,vB1},{vB3,vB0}(11A);
其中,vA2表示A2的运动矢量,vB1表示B1的运动矢量,vB0表示B0的运动矢量,vB2表示B2的运动矢量,vB3表示B3的运动矢量。
如图5A所示,利用左上顶点相邻已编码块A2,B2和B3块的运动矢量,作为当前块左上顶点的运动矢量的候选运动矢量;利用右上顶点相邻已编码块B1和B0块的运动矢量,作为当前块右上顶点的运动矢量的候选运动矢量,利用坐下顶点相邻已编码块A0、A1的运动矢量作为当前块左下顶点的运动矢量的候选运动矢量。将上述左上顶点、右上顶点以及左下顶点的候选运动矢量进行组合,构成三元组,三元组包括的三个已编码块的运动矢量可以作为当前块的候选的控制点运动矢量,参见如下公式(11B)、(11C)所示:
{vA2,vB1,vA0},{vA2,vB0,vA0},{vB2,vB1,vA0},{vB2,vB0,vA0},{vB3,vB1,vA0},{vB3,vB0,vA0}(11B)
{vA2,vB1,vA1},{vA2,vB0,vA1},{vB2,vB1,vA1},{vB2,vB0,vA1},{vB3,vB1,vA1},{vB3,vB0,vA1}(11C);
其中,vA2表示A2的运动矢量,vB1表示B1的运动矢量,vB0表示B0的运动矢量,vB2表示B2的运动矢量,vB3表示B3的运动矢量,vA0表示A0的运动矢量,vA1表示A1的运动矢量。
需要说明的是,其他控制点运动矢量的组合的方法也可适用于本申请,此处不做赘述。
需要说明的是,采用其他控制点来表示相邻和当前编码块的运动模型的方法也可以适用于本申请,此处不做赘述。
5)构造的控制点运动矢量(constructed control point motion vectors)预测方法2,参见图5B所示。
步骤501,获取当前块的各个控制点的运动信息。
以图5A所示为例,CPk(k=1,2,3,4)表示第k个控制点。A0,A1,A2,B0,B1,B2和B3为当前块的空域相邻位置,用于预测CP1、CP2或CP3;T为当前块的时域相邻位置,用于预测CP4。
设,CP1,CP2,CP3和CP4的坐标分别为(0,0),(W,0),(H,0)和(W,H),其中W和H为当前块的宽度和高度。
对于每个控制点,其运动信息按照以下顺序获得:
(1)对于CP1,检查顺序为B2->A2->B3,如果B2可得,则采用B2的运动信息。否则,检测A2,B3。若三个位置的运动信息均不可得,则无法获得CP1的运动信息。
(2)对于CP2,检查顺序为B0->B1;如果B0可得,则CP2采用B0的运动信息。否则,检测B1。若两个位置的运动信息均不可得,则无法获得CP2的运动信息。
(3)对于CP3,检测顺序为A0->A1。
(4)对于CP4,采用T的运动信息。
此处X可得表示包括X(X为A0,A1,A2,B0,B1,B2,B3或T)位置的块已经编码并且采用帧间预测模式;否则,X位置不可得。
需要说明的是,其他获得控制点的运动信息的方法也可适用于本申请,此处不做赘述。
步骤502,将控制点的运动信息进行组合,得到构造的控制点运动信息。
将两个控制点的运动信息进行组合构成二元组,用来构建4参数仿射运动模型。两个控制点的组合方式可以为{CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},{CP3,CP4}。例如,采用CP1和CP2控制点组成的二元组构建的4参数仿射运动模型,可以记作Affine(CP1,CP2)。
将三个控制点的运动信息进行组合构成三元组,用来构建6参数仿射运动模型。三个控制点的组合方式可以为{CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4}。例如,采用CP1、CP2和CP3控制点构成的三元组构建的6参数仿射运动模型,可以记作Affine(CP1,CP2,CP3)。
将四个控制点的运动信息进行组合构成的四元组,用来构建8参数双线性模型。采用CP1、CP2、CP3和CP4控制点构成的四元组构建的8参数双线性模型,记做Bilinear(CP1,CP2,CP3,CP4)。
本申请实施例中,为了描述方便,将由两个控制点(或者两个已编码块)的运动信息组合简称为二元组,将三个控制点(或者两个已编码块)的运动信息组合简称为三元组,将四个控制点(或者四个已编码块)的运动信息组合简称为四元组。
按照预置的顺序遍历这些模型,若组合模型对应的某个控制点的运动信息不可得,则认为该模型不可得;否则,确定该模型的参考帧索引,并将控制点的运动矢量进行缩放,若缩放后的所有控制点的运动信息一致,则该模型不合法。若确定控制该模型的控制点的运动信息均可得,并且模型合法,则将该构建该模型的控制点的运动信息加入运动信息候选列表中。
控制点的运动矢量缩放的方法如公式(12)所示:
其中,CurPoc表示当前帧的POC号,DesPoc表示当前块的参考帧的POC号,SrcPoc表示控制点的参考帧的POC号,MVs表示缩放得到的运动矢量,MV表示控制点的运动矢量。
需要说明的是,亦可将不同控制点的组合转换为同一位置的控制点。
例如将{CP1,CP4},{CP2,CP3},{CP2,CP4},{CP1,CP3},{CP3,CP4}组合得到的4参数仿射运动模型转换为通过{CP1,CP2}或{CP1,CP2,CP3}来表示。转换方法为将控制点的运动矢量及其坐标信息,代入公式(2),得到模型参数,再将{CP1,CP2}的坐标信息代入公式(3),得到其运动矢量。
更直接地,可以按照以下公式(13)-(21)来进行转换,其中,W表示当前块的宽度,H表示当前块的高度,公式(13)-(21)中,(vx0,vy0)表示CP1的运动矢量,(vx1,vy1)表示CP2的运动矢量,(vx2,vy2)表示CP3的运动矢量,(vx3,vy3)表示CP4的运动矢量。
{CP1,CP2}转换为{CP1,CP2,CP3}可以通过如下公式(13)实现,即{CP1,CP2,CP3}中CP3的运动矢量可以通过公式(13)来确定:
{CP1,CP3}转换{CP1,CP2}或{CP1,CP2,CP3}可以通过如下公式(14)实现:
{CP2,CP3}转换为{CP1,CP2}或{CP1,CP2,CP3}可以通过如下公式(15)实现:
{CP1,CP4}转换为{CP1,CP2}或{CP1,CP2,CP3}可以通过如下公式(16)或者(17)实现:
{CP2,CP4}转换为{CP1,CP2}可以通过如下公式(18)实现,{CP2,CP4}转换为{CP1,CP2,CP3}可以通过公式(18)和(19)实现:
{CP3,CP4}转换为{CP1,CP2}可以通过如下公式(20)实现,{CP3,CP4}转换为{CP1,CP2,CP3}可以通过如下公式(20)和(21)实现:
例如将{CP1,CP2,CP4},{CP2,CP3,CP4},{CP1,CP3,CP4}组合的6参数仿射运动模型转换为控制点{CP1,CP2,CP3}来表示。转换方法为将控制点的运动矢量及其坐标信息,代入公式(4),得到模型参数,再将{CP1,CP2,CP3}的坐标信息代入公式(5),得到其运动矢量。
更直接地,可以按照以下公式(22)-(24)进行转换,其中,W表示当前块的宽度,H表示当前块的高度,公式(13)-(21)中,(vx0,vy0)表示CP1的运动矢量,(vx1,vy1)表示CP2的运动矢量,(vx2,vy2)表示CP3的运动矢量,(vx3,vy3)表示CP4的运动矢量。
{CP1,CP2,CP4}转换为{CP1,CP2,CP3}可以通过公式(22)实现:
{CP2,CP3,CP4}转换为{CP1,CP2,CP3}可以通过公式(23)实现:
{CP1,CP3,CP4}转换为{CP1,CP2,CP3}可以通过公式(24)实现:
6)基于仿射运动模型的先进运动矢量预测模式(Affine AMVP mode):
(1)构建候选运动矢量列表
利用继承的控制点运动矢量预测方法和/或构造的控制点运动矢量预测方法,构建基于仿射运动模型的AMVP模式的候选运动矢量列表。在本申请实施例中可以将基于仿射运动模型的AMVP模式的候选运动矢量列表称为控制点运动矢量预测值候选列表(controlpoint motion vectors predictor candidate list),每个控制点的运动矢量预测值包括2个(4参数仿射运动模型)控制点的运动矢量或者包括3个(6参数仿射运动模型)控制点的运动矢量。
可选的,将控制点运动矢量预测值候选列表根据特定的规则进行剪枝和排序,并可将其截断或填充至特定的个数。
(2)确定最优的控制点运动矢量预测值
在编码端,利用控制点运动矢量预测值候选列表中的每个控制点运动矢量预测值,通过公式(3)/(5)获得当前编码块中每个子运动补偿单元的运动矢量,进而得到每个子运动补偿单元的运动矢量所指向的参考帧中对应位置的像素值,作为其预测值,进行采用仿射运动模型的运动补偿。计算当前编码块中每个像素点的原始值和预测值之间差值的平均值,选择最小平均值对应的控制点运动矢量预测值为最优的控制点运动矢量预测值,并作为当前编码块2个/3个控制点的运动矢量预测值。将表示该控制点运动矢量预测值在控制点运动矢量预测值候选列表中位置的索引号编码入码流发送给解码器。
在解码端,解析索引号,根据索引号从控制点运动矢量预测值候选列表中确定控制点运动矢量预测值(control point motion vectors predictor,CPMVP)。
(3)确定控制点的运动矢量
在编码端,以控制点运动矢量预测值作为搜索起始点在一定搜索范围内进行运动搜索获得控制点运动矢量(control point motion vectors,CPMV)。并将控制点运动矢量与控制点运动矢量预测值之间的差值(control point motion vectors differences,CPMVD)传递到解码端。
在解码端,解析控制点运动矢量差值,与控制点运动矢量预测值相加,得到控制点运动矢量。
7)仿射融合模式(Affine Merge mode):
利用继承的控制点运动矢量预测方法和/或构造的控制点运动矢量预测方法,构建控制点运动矢量融合候选列表(control point motion vectors merge candidatelist)。
可选的,将控制点运动矢量融合候选列表根据特定的规则进行剪枝和排序,并可将其截断或填充至特定的个数。
在编码端,利用融合候选列表中的每个控制点运动矢量,通过公式(3)/(5)获得当前编码块中每个子运动补偿单元(像素点或特定方法划分的大小为N1×N2的像素块)的运动矢量,进而得到每个子运动补偿单元的运动矢量所指向的参考帧中位置的像素值,作为其预测值,进行仿射运动补偿。计算当前编码块中每个像素点的原始值和预测值之间差值的平均值,选择差值的平均值最小对应的控制点运动矢量作为当前编码块2个/3个控制点的运动矢量。将表示该控制点运动矢量在候选列表中位置的索引号编码入码流发送给解码器。
在解码端,解析索引号,根据索引号从控制点运动矢量融合候选列表中确定控制点运动矢量(control point motion vectors,CPMV)。
另外,需要说明的是,本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
在本申请中,当使用帧间预测模式来解码当前块时,可使用语法元素来用信号发送帧间预测模式。
目前所采用的解析当前块采用的帧间预测模式的部分语法结构,可以参见表1所示。需要说明的是,语法结构中的语法元素还可以通过其他标识来表示,本申请对此不作具体限定。
表1
/>
语法元素merge_flag[x0][y0]可用于指示针对当前块是否采用融合模式。比如,当merge_flag[x0][y0]=1时,指示针对当前块采用融合模式,当merge_flag[x0][y0]=0时,指示针对当前块不采用融合模式。x0,y0表示当前块在视频图像的坐标。
变量allowAffineMerge可用于指示当前块是否满足采用基于仿射运动模型的merge模式的条件。比如allowAffineMerge=0,指示不满足采用基于仿射运动模型的merge模式的条件,allowAffineMerge=1,指示满足采用基于仿射运动模型的merge模式的条件。采用基于仿射运动模型的merge模式的条件可以是:当前块的宽和高中均大于或者等于8。cbWidth表示当前块的宽,cbHeight表示当前块的高,即,当cbWidth<8或cbHeight<8时,allowAffineMerge=0,当cbWidth>=8且cbHeight>=8时,allowAffineMerge=1。
变量allowAffineInter可用于指示当前块是否满足采用基于仿射运动模型的AMVP模式的条件。比如allowAffineInter=0,指示不满足采用基于仿射运动模型的AMVP模式的条件,allowAffineInter=1,指示满足采用基于仿射运动模型的AMVP模式的条件。采用基于仿射运动模型的AMVP模式的条件可以是:当前块的宽和高中均大于或者等于16。即,当cbWidth<16或cbHeight<16时,allowAffineInter=0,当cbWidth>=16且cbHeight>=16时,allowAffineInter=1。
语法元素affine_merge_flag[x0][y0]可用于指示针对当前块是否采用基于仿射运动模型的merge模式。当前块所在条带的类型(slice_type)为P型或者B型。比如,affine_merge_flag[x0][y0]=1,指示针对当前块采用基于仿射运动模型的merge模式,affine_merge_flag[x0][y0]=0,指示针对当前块不采用基于仿射运动模型的merge模式,可以采用平运运动模型的merge模式。
语法元素affine_inter_flag[x0][y0]可用于指示在当前块所在条带为P型条带或者B型条带时,针对当前块是否采用基于仿射运动模型的AMVP模式。比如,allowAffineInter=0,指示针对当前块采用基于仿射运动模型的AMVP模式,allowAffineInter=1,指示针对当前块不采用基于仿射运动模型的AMVP模式,可以采用平动运动模型的AMVP模式。
语法元素affine_type_flag[x0][y0]可以用于指示:在当前块所在条带为P型条带或者B型条带时,针对当前块是否采用6参数仿射运动模型进行运动补偿。affine_type_flag[x0][y0]=0,指示针对当前块不采用6参数仿射运动模型进行运动补偿,可以仅采用4参数仿射运动模型进行运动补偿;affine_type_flag[x0][y0]=1,指示针对当前块采用6参数仿射运动模型进行运动补偿。
参见表2所示,MotionModelIdc[x0][y0]=1,指示采用4参数仿射运动模型,MotionModelIdc[x0][y0]=2,指示采用6参数仿射运动模型,MotionModelIdc[x0][y0]=0指示采用平动运动模型。
表2
MotionModelIdc[x0][y0] motion model for motion compensation(运动补偿采用的运动模型)
0 translational motion(平动运动)
1 4-parameter affine motion(4参数仿射运动)
2 6-parameter affine motion(6参数仿射运动)
变量MaxNumMergeCand用于表示最大列表长度,指示构造的候选运动矢量列表的最大长度。inter_pred_idc[x0][y0]用于指示预测方向。PRED_L1用于指示后向预测。num_ref_idx_l0_active_minus1指示前向参考帧列表的参考帧个数,ref_idx_l0[x0][y0]指示当前块的前向参考帧索引值。mvd_coding(x0,y0,0,0)指示第一个运动矢量差。mvp_l0_flag[x0][y0]指示前向MVP候选列表索引值。PRED_L0指示前向预测。num_ref_idx_l1_active_minus1指示后向参考帧列表的参考帧个数。ref_idx_l1[x0][y0]指示当前块的后向参考帧索引值,mvp_l1_flag[x0][y0]表示后向MVP候选列表索引值。
表1中,ae(v)表示采用基于自适应二元算术编码(context-based adaptivebinary arithmetic coding,cabac)编码的语法元素。
下面针对帧间预测流程进行详细描述。参见图6A所示。
步骤601:按照表1所示的语法结构,解析码流,确定当前块的帧间预测模式。
若确定当前块的帧间预测模式为基于仿射运动模型的AMVP模式,执行步骤602a。
即,语法元素merge_flag=0且affine_inter_flag=1,指示当前块的帧间预测模式为基于仿射运动模型的AMVP模式。
若确定当前块的帧间预测模式为基于仿射运动模型的融合(merge)模式,执行步骤602b。
即,语法元素merge_flag=1且affine_merge_flag=1,指示当前块的帧间预测模式为基于仿射运动模型的AMVP模式。
步骤602a:构造基于仿射运动模型的AMVP模式对应的候选运动矢量列表,执行步骤603a。
利用继承的控制点运动矢量预测方法和/或构造的控制点运动矢量预测方法,推导得到当前块的候选的控制点运动矢量,来加入候选运动矢量列表。
候选运动矢量列表可以包括二元组列表(当前编码块为4参数仿射运动模型)或三元组列表。二元组列表中包括一个或者多个用于构造4参数仿射运动模型的二元组。三元组列表中包括一个或者多个用于构造6参数仿射运动模型的三元组。
可选的,将候选运动矢量二元组/三元组列表根据特定的规则进行剪枝和排序,并可将其截断或填充至特定的个数。
A1:针对利用继承的控制运动矢量预测方式,构造候选运动矢量列表的流程进行说明。
以图4所示为例,比如,按照图4中A1->B1->B0->A0->B2的顺序遍历当前块周围的相邻位置块,找到相邻位置块所在的仿射编码块,获得该仿射编码块的控制点运动信息,进而通过仿射编码块的控制点运动信息构造运动模型,推导出当前块的候选的控制点运动信息。具体的,可以参见前面3)继承的控制点运动矢量预测方法中的相关描述,此处不再赘述。
示例性地,在当前块采用的仿射运动模型为4参数仿射运动模型(即,MotionModelIdc=1),若相邻仿射解码块为4参数仿射运动模型,则获取该仿射解码块2个控制点的运动矢量:左上控制点(x4,y4)的运动矢量值(vx4,vy4)和右上控制点(x5,y5)的运动矢量值(vx5,vy5)。仿射解码块为在编码阶段采用仿射运动模型进行预测的仿射编码块。
利用相邻仿射解码块的2个控制点组成的4参数仿射运动模型,按照4仿射运动模型公式(6)、(7)分别推导得到当前块左上、右上2个控制点的运动矢量。
若相邻仿射解码块为6参数仿射运动模型,则获取相邻仿射解码块3个控制点的运动矢量,比如图4中,左上控制点(x4,y4)的运动矢量值(vx4,vy4)和右上控制点(x5,y5)的运动矢量值(vx5,vy5)和左下顶点(x6,y6)的运动矢量(vx6,vy6)。
利用相邻仿射解码块3个控制点组成的6参数仿射运动模型,按照6参数运动模型公式(8)、(9)分别推导得到当前块左上、右上2个控制点的运动矢量。
示例性地,当前解码块的仿射运动模型是6参数仿射运动模型(即MotionModelIdc=2),
若相邻仿射解码块采用的仿射运动模型为6参数仿射运动模型,则获取相邻仿射解码块的3个控制点的运动矢量,比如图4中,左上控制点(x4,y4)的运动矢量值(vx4,vy4)和右上控制点(x5,y5)的运动矢量值(vx5,vy5)和左下顶点(x6,y6)的运动矢量(vx6,vy6)。
利用相邻仿射解码块3个控制点组成的6参数仿射运动模型,按照6参数仿射运动模型对应的公式(8)、(9)、(10)分别推导得到当前块左上、右上、左下3个控制点的运动矢量。
若相邻仿射解码块采用的仿射运动模型为4参数仿射运动模型,则获取该仿射解码块2个控制点的运动矢量:左上控制点(x4,y4)的运动矢量值(vx4,vy4)和右上控制点(x5,y5)的运动矢量值(vx5,vy5)。
利用相邻仿射解码块2个控制点组成的4参数仿射运动模型,按照4参数仿射运动模型公式(6)、(7)分别推导得到当前块左上、右上、左下3个控制点的运动矢量。
需要说明的是,其他运动模型、候选位置、查找顺序也可以适用于本申请,在此不做赘述。需要说明的是,采用其他控制点来表示相邻和当前编码块的运动模型的方法也可以适用于本申请,在此不做赘述。
A2:针对利用构造的控制运动矢量预测方式,构造候选运动矢量列表的流程进行说明。
示例性的,当前解码块采用的仿射运动模型是4参数仿射运动模型(即,MotionModelIdc为1),利用当前编码块周边邻近的已编码块的运动信息确定当前编码块左上顶点和右上顶点的运动矢量。具体可以采用构造的控制点运动矢量预测方式1,或者采用构造的控制点运动矢量预测方法2,来构造候选运动矢量列表,具体方式参见上述4)和5)中的描述,此处不再赘述。
示例性的,当前解码块仿射运动模型是6参数仿射运动模型(即,MotionModelIdc为2),利用当前编码块周边邻近的已编码块的运动信息确定当前编码块左上顶点和右上顶点以及左下顶点的运动矢量。具体可以采用构造的控制点运动矢量预测方式1,或者采用构造的控制点运动矢量预测方法2,来构造候选运动矢量列表,具体方式参见上述4)和5)中的描述,此处不再赘述。
需要说明的是,其他控制点运动信息组合方式也可以适用于本申请,在此不做赘述。
步骤603a:解析码流,确定最优的控制点运动矢量预测值,执行步骤604a。
B1,若当前解码块采用的仿射运动模型是4参数仿射运动模型(MotionModelIdc为1),则解析索引号,根据索引号从候选运动矢量列表中确定2个控制点的最优运动矢量预测值。
示例性的,索引号为mvp_l0_flag或mvp_l1_flag。
B2,若当前解码块采用的仿射运动模型是6参数仿射运动模型(MotionModelIdc为2),则解析索引号,根据索引号从候选运动矢量列表中确定3个控制点的最优运动矢量预测值。
步骤604a:解析码流,确定控制点的运动矢量。
C1,当前解码块采用的仿射运动模型是4参数仿射运动模型(MotionModelIdc为1),从码流中解码得到当前块的2个控制点的运动矢量差值,分别根据各控制点的运动矢量差值和运动矢量预测值获得控制点的运动矢量值。以前向预测为例,2个控制点的运动矢量差分别为mvd_coding(x0,y0,0,0)和mvd_coding(x0,y0,0,1)。
示例性的,从码流中解码得到左上位置控制点和右上位置控制点的运动矢量差值,并分别与运动矢量预测值相加,得到当前块左上位置控制点和右上位置控制点的运动矢量值。
C2,当前解码块仿射运动模型是6参数仿射运动模型(MotionModelIdc为2)
从码流中解码得到当前块的3个控制点的运动矢量差,分别根据各控制点的运动矢量差值和运动矢量预测值获得控制点的运动矢量值。以前向预测为例,3个控制点的运动矢量差分别为mvd_coding(x0,y0,0,0)和mvd_coding(x0,y0,0,1)、mvd_coding(x0,y0,0,2)。
示例性的,从码流中解码得到左上控制点、右上控制点和左下控制点的运动矢量差值,并分别与运动矢量预测值相加,得到当前块左上控制点、右上控制点和左下控制点的运动矢量值。
步骤602b:构造基于仿射运动模型的merge模式的运动信息候选列表。
具体的,可以利用继承的控制点运动矢量预测方法和/或构造的控制点运动矢量预测方法,构造基于仿射运动模型的融合模式的运动信息候选列表。
可选的,将运动信息候选列表根据特定的规则进行剪枝和排序,并可将其截断或填充至特定的个数。
D1:针对利用继承的控制运动矢量预测方式,构造候选运动矢量列表的流程进行说明。
利用继承的控制点运动矢量预测方法,推导得到当前块的候选的控制点运动信息,加入运动信息候选列表。
按照图5A中A1,B1,B0,A0,B2的顺序遍历当前块的周边相邻位置块,找到该位置所在的仿射编码块,获得该仿射编码块的控制点运动信息,进而通过其运动模型,推导出当前块的候选的控制点运动信息。
如果此时候选运动矢量列表为空,则将该候选的控制点运动信息加入候选列表;否则依次遍历候选运动矢量列表中的运动信息,检查候选运动矢量列表中是否存在与该候选的控制点运动信息相同的运动信息。如果候选运动矢量列表中不存在与该候选的控制点运动信息相同的运动信息,则将该候选的控制点运动信息加入候选运动矢量列表。
其中,判断两个候选运动信息是否相同需要依次判断它们的前后向参考帧、以及各个前后向运动矢量的水平和竖直分量是否相同。只有当以上所有元素都不相同时才认为这两个运动信息是不同的。
如果候选运动矢量列表中的运动信息个数达到最大列表长度MaxNumMrgCand(MaxNumMrgCand为正整数,如1,2,3,4,5等,以下以5为例进行描述,不再赘述),则候选列表构建完毕,否则遍历下一个相邻位置块。
D2:利用构造的控制点运动矢量预测方法,推导得到当前块的候选的控制点运动信息,加入运动信息候选列表,参见图6B所示。
步骤601c,获取当前块的各个控制点的运动信息。可以参见5)中构造的控制点运动矢量预测方式2中,步骤501,此处不再赘述。
步骤602c,将控制点的运动信息进行组合,得到构造的控制点运动信息,可以参见图5B中步骤501,此处不再赘述。
步骤603c,将构造的控制点运动信息加入候选运动矢量列表。
若此时候选列表的长度小于最大列表长度MaxNumMrgCand,则按照预置的顺序遍历这些组合,得到合法的组合作为候选的控制点运动信息,如果此时候选运动矢量列表为空,则将该候选的控制点运动信息加入候选运动矢量列表;否则依次遍历候选运动矢量列表中的运动信息,检查候选运动矢量列表中是否存在与该候选的控制点运动信息相同的运动信息。如果候选运动矢量列表中不存在与该候选的控制点运动信息相同的运动信息,则将该候选的控制点运动信息加入候选运动矢量列表。
示例性的,一种预置的顺序如下:Affine(CP1,CP2,CP3)->Affine(CP1,CP2,CP4)->Affine(CP1,CP3,CP4)->Affine(CP2,CP3,CP4)->Affine(CP1,CP2)->Affine(CP1,CP3)->Affine(CP2,CP3)->Affine(CP1,CP4)->Affine(CP2,CP4)->Affine(CP3,CP4),总共10种组合。
若组合对应的控制点运动信息不可得,则认为该组合不可得。若组合可得,确定该组合的参考帧索引(两个控制点时,选择参考帧索引最小的作为该组合的参考帧索引;大于两个控制点时,先选择出现次数最多的参考帧索引,若有多个参考帧索引的出现次数一样多,则选择参考帧索引最小的作为该组合的参考帧索引),并将控制点的运动矢量进行缩放。若缩放后的所有控制点的运动信息一致,则该组合不合法。
可选地,本申请实施例还可以针对候选运动矢量列表进行填充,比如,经过上述遍历过程后,此时候选运动矢量列表的长度小于最大列表长度MaxNumMrgCand,则可以对候选运动矢量列表进行填充,直到列表的长度等于MaxNumMrgCand。
可以通过补充零运动矢量的方法进行填充,或者通过将现有列表中已存在的候选的运动信息进行组合、加权平均的方法进行填充。需要说明的是,其他获得候选运动矢量列表填充的方法也可适用于本申请,在此不做赘述。
步骤S603b:解析码流,确定最优的控制点运动信息。
解析索引号,根据索引号从候选运动矢量列表中确定最优的控制点运动信息。
步骤604b:根据最优的控制点运动信息以及当前解码块采用的仿射运动模型获得当前块中每个子块的运动矢量值。
对于当前仿射解码块的每一个子块(一个子块也可以等效为一个运动补偿单元,子块的宽和高小于当前块的宽和高),可采用运动补偿单元中预设位置像素点的运动信息来表示该运动补偿单元内所有像素点的运动信息。假设运动补偿单元的尺寸为MxN,则预设位置像素点可以为运动补偿单元中心点(M/2,N/2)、左上像素点(0,0),右上像素点(M-1,0),或其他位置的像素点。以下以运动补偿单元中心点为例说明,参见图6C所示。图6C中V0表示左上控制点的运动矢量,V1表示右上控制点的运动矢量。每个小方框表示一个运动补偿单元。
运动补偿单元中心点相对于当前仿射解码块左上顶点像素的坐标使用公式(25)计算得到,其中i为水平方向第i个运动补偿单元(从左到右),j为竖直方向第j个运动补偿单元(从上到下),(x(i,j),y(i,j))表示第(i,j)个运动补偿单元中心点相对于当前仿射解码块左上控制点像素的坐标。
若当前仿射解码块采用的仿射运动模型为6参数仿射运动模型,将(x(i,j),y(i,j))代入6参数仿射运动模型公式(26),获得每个运动补偿单元中心点的运动矢量,作为该运动补偿单元内所有像素点的运动矢量(vx(i,j),vy(i,j))。
若当前仿射解码块采用的仿射运动模型为4仿射运动模型,将(x(i,j),y(i,j))代入4参数仿射运动模型公式(27),获得每个运动补偿单元中心点的运动矢量,作为该运动补偿单元内所有像素点的运动矢量(vx(i,j),vy(i,j))。
步骤605b:针对每个子块根据确定的子块的运动矢量值进行运动补偿得到该子块的像素预测值。
现有中无论是4参数仿射运动模型还是6参数仿射运动模型的参数信息,比如表1中affine_merge_flag、affine_inter_flag、affine_type_flag,都需要通过码流传输给解码侧,如果当前视频图像或者条带没有仿射变换特性,传输这些参数信息会增加码流比特数。另外,在解码侧针对每个码块均需要解析是否采用仿射运动模型,可能会增加解码器的负载,降低处理速度,增加处理时间。
基于此,本申请实施例提供了一种视频图像预测方法及装置,用以解决现有技术中存在的码流比特数增加的问题。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
本申请实施例为解决上述问题提供了但仅限于以下几种可能的实现方式。
第一种可能的实现方式,比如有些视频图像可能存在某些仿射特性,可能有些视频图像没有仿射特性,可以在码流增加标识,来指示针对该视频图像是否可以采用仿射运动模型的帧间预测模式。
第二种可能的实现方式,比如视频图像不是所有的条带均有仿射特性,可以在码流的标识,来指示针对该条带是否可以采用仿射运动模型的帧间预测模式。
第三种可能的实现方式,比如有些视频图像不具有仿射特性,有些视频图像不是所有的条带都具有仿射特性,因此,可以在码流中增加两种标识,第一种标识用于指示视频图像是否可以采用仿射运动模型的帧间预测模式,第二种标识用于指示视频图像中的条带是否可以采用仿射运动模型的帧间预测模式。
为了后续描述方便,将用于指示视频图像是否可以采用仿射运动模型的帧间预测模式的标识称为标识1,将用于指示视频图像包括的条带是否可以采用仿射运动模型的帧间预测模式的标识称为标识2。
通过上述三种可能的实现方式,针对不需要采用仿射运动模型的视频图像或者条带包括的图像块,可以不需要传输该图像块与仿射运动模型相关的参数,比如表1中的affine_merge_flag、affine_inter_flag、affine_type_flag。在解码侧,在解码该图像块时,也不需要解析与仿射运动模型相关的参数,可以降低解码器的负载,提高处理速度,减少处理时间。
下面结合附图从解码侧对本申请提供的上述几种可能的实现方式进行详细说明。具体可以由视频解码器30执行,或者由视频解码器中的运动补偿模块来实现,或者由处理器来执行。
参见图7所示,针对第一种可能的实现方式进行说明。
步骤701,从码流中解析标识1。
标识1用于指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型是否包括仿射运动模型,换句话说,标识1用于指示待处理块所在的视频图像包括的图像块进行运动补偿时,是否可以采用仿射运动模型。
示例性的,标识1可以配置在码流的SPS中。基于此,从码流中解析标识1,可以通过如下方式实现:从码流的SPS中解析标识1。
步骤702,当所述标识1指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,且所述待处理块满足采用所述仿射运动模型进行帧间预测的预设条件时,从所述码流中解析标识12。
可选地,所述预设条件可以包括如下至少一项:
所述待处理块的宽度大于或等于第一预设阈值;
所述待处理块的高度大于或等于第二预设阈值。
所述第一预设阈值可以等于所述第二预设阈值。比如,在帧间预测模式为merge模式的情况下,预设条件可以是所述待处理块的宽度大于或等于8,待处理块的高度大于或等于8。在帧间预测模式为merge模式的情况下,预设条件可以是所述待处理块的宽度大于或等于16,待处理块的高度大于或等于16。
示例性的,在帧间预测模式为merge模式的情况下,所述待处理块是否满足采用所述仿射运动模型进行帧间预测的预设条件可以通过变量allowAffineMerge来表示。示例性的,在帧间预测模式为AMVP模式的情况下,所述待处理块是否满足采用所述仿射运动模型进行帧间预测的预设条件可以通过变量allowAffineInter来表示。allowAffineMerge和allowAffineInter的相关描述,可以参见前面表1,此处不再赘述。
示例性地,当所述标识1指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型不包括仿射运动模型时,则针对视频图像中包括的图像块进行帧间预测时,不需要解析与仿射运动模型相关的参数信息。比如,不需要从码流中解析标识12。
示例性的,当标识1为数值A时,指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,当标识1为数值B时,指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型。比如,标识1=1,指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,标识1=0,指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型不包括仿射运动模型。
步骤703,根据所述标识12,确定所述待处理块进行帧间预测所采用的预测模式,所述预测模式包括所述仿射运动模型的融合模式、所述仿射运动模型的AMVP模式和非仿射运动模型。
示例性地,标识1可以通过语法元素sps_affine_enabled_flag来表示。sps_affine_enabled_flag用来指示针对视频图像包括的图像块进行帧间预测时,是否可以采用仿射运动模型(sps_affine_enabled_flag specifies whether affine model basedmotion compensation can be used for inter prediction)。比如,sps_affine_enabled_flag=0,指示针对视频图像包括的图像块进行帧间预测时,不可以采用仿射运动模型。在CVS中不包括用于指示基于仿射运动模型的运动补偿的语法元素,比如,在CVS的图像块级别的语法中不包括affine_merge_flag,affine_inter_flag以及affine_type_flag。sps_affine_enabled_flag=1,指示针对视频图像包括的图像块进行帧间预测时,可以采用仿射运动模型。(If sps_affine_enabled_flag is equal to0,the syntaxelements shall be constrained such that no affine model based motioncompensation is used in the CVS,and affine_merge_flag,affine_inter_flag andaffine_type_flag are not presented in cu level syntax of the CVS.Otherwise(sps_affine_enabled_flag is equal to 1),affine model based motioncompensation may be used in the CVS.)
示例性的,在帧间预测模式为AMVP模式的情况下,标识12可以通过语法元素affine_inter_flag来表示,在帧间预测模式为merge模式的情况下,标识12可以通过语法元素affine_merge_flag来表示。affine_inter_flag和affine_merge_flag的相关描述,可以参见针对表1的描述,此处不再赘述。
第一种可能的实现方式下,一种可能的示例,码流中还可以配置标识13。标识13可以配置在码流的序列参数集中。在所述待处理块采用所述仿射运动模型的融合模式进行帧间预测的情况下,当从码流中解析的标识1指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,从所述码流中解析标识13,当所述标识13为第一数值时,所述仿射运动模型仅包括4参数仿射模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射模型和6参数仿射模型,所述第一数值和所述第二数值不同。比如第一数值为1,第二数值为0,或者第一数值为0,第二数值为1。
示例性地,标识13可以通过sps_affine_type_flag来表示。sps_affine_type_flag用来指示在针对视频图像包括的图像块进行帧间预测时,是否可以采用6参数仿射运动模型进行运动补偿。比如,sps_affine_type_flag=0,指示针对视频图像包括的图像块进行帧间预测时,不可以采用6参数仿射运动模型进行运动补偿,则在CVS中不包括用于指示基于6参数仿射运动模型的运动补偿的语法元素。比如,在CVS的图像块级别的语法中不包括affine_type_flag。(sps_affine_type_flag specifies whether 6-parameteraffine model based motion compensation can be used for inter prediction.Ifsps_affine_type_flag is equal to 0,the syntax elements shall be constrainedsuch that no 6-parameter affine model based motion compensation is used inthe CVS,and affine_type_flag is not presented in cu level syntax in theCVS.Otherwise(sps_affine_type_flag is equal to 1),6-parameter affine modelbased motion compensation may be used in the CVS.When not present,the valueof sps_affine_type_flag is inferred to be equal to 0.)
第一种可能的实现方式下,一种可能的示例中,当所述标识12指示所述待处理块采用所述仿射运动模型的AMVP模式进行帧间预测,且所述标识13为所述第二数值时,从所述码流中解析标识14;当所述标识14为第三数值时,所述仿射运动模型为所述6参数仿射运动模型,当所述标识14为第四数值时,所述仿射运动模型为所述4参数仿射运动模型,所述第三数值和所述第四数值不同。比如第三数值为1,第四数值为0,或者第三数值为0,第四数值为1。
示例性地,标识14可以通过affine_type_flag来表示。affine_type_flag用来指示图像块进行帧间预测时,是否可以采用6参数仿射运动模型进行运动补偿。比如,affine_type_flag=0,指示针对图像块进行帧间预测时,不可以采用6参数仿射运动模型进行运动补偿。
示例性的,解析标识1和标识13的语法结构参见表3所示。其中,u(1)表示读进连续的1比特,并将它们解释为无符号整数。
表3
示例性的,解析当前图像块采用的帧间预测模式的部分语法结构参见表4所示。
表4
在第一种可能的实现下,一种可能的示例中,在上述从码流中解析标识1和标识13的情况下,当所述标识12指示所述待处理块采用所述仿射运动模型的merge模式进行帧间预测,且标识13为所述第二数值时,构建第一候选运动矢量列表,其中,所述第一候选运动矢量列表包括第一元素,所述第一元素包括用于构建所述6参数仿射运动模型的三个控制点的运动信息。比如,第一元素中包括一个或者多个三元组。
可选地,第一候选运动矢量列表中还可以包括第二元素。所述第二元素仅包括用于构建所述4参数仿射运动模型的两个控制点的运动信息。比如第二元素包括一个或者多个二元组。第一候选运动矢量列表还可以包括第三元素,第三元素包括非仿射运动模型的运动信息。
在另一种可能的示例中,当所述标识12指示所述待处理块采用所述仿射运动模型的merge模式进行帧间预测,且所述标识13为所述第一数值时,构建第二候选运动矢量列表,所述第二候选运动矢量列表包括第二元素,所述第二元素仅包括用于构建所述4参数仿射运动模型的两个控制点的运动信息。第二候选运动矢量列表中不包括第一元素。第二候选运动矢量列表中还可以包括第三元素,第三元素包括非仿射运动模型的运动信息。第一候选运动矢量列表和第二候选运动矢量列表均为基于仿射运动模型的merge模式的候选运动矢量列表。
在第一种可能的实现下,一种可能的示例中,在上述从码流中解析标识1和标识13的情况下,当所述标识12指示所述待处理块采用所述仿射运动模型的AMVP模式进行帧间预测,且所述标识13为所述第二数值时,从所述码流中解析标识14;当所述标识14为第三数值时,所述仿射运动模型为所述6参数仿射运动模型,当所述标识14为第四数值时,所述仿射运动模型为所述4参数仿射运动模型,所述第三数值和所述第四数值不同。比如,第三数值为1,第四数值为0,或者第三数值为0,第四数值为1。
可选地,标识14可以通过语法元素affine_type_flag来表示。针对affine_type_flag,可以参见表1的相关描述,此处不再赘述。
下面以表3和表4的语法结构为例,针对第一种可能的方式下的帧间预测流程进行详细说明,参见图8所示。
步骤801a:按照表3和表4所示的语法结构,解析码流,确定当前块的帧间预测模式。
若确定当前块的帧间预测模式为基于仿射运动模型的AMVP模式,执行步骤802a。
即,语法元素sps_affine_enabled_flag=1,merge_flag=0且affine_inter_flag=1,指示当前块的帧间预测模式为基于仿射运动模型的AMVP模式。
示例性的,语法元素sps_affine_enabled_flag=1,merge_flag=0且affine_inter_flag=1、sps_affine_type_flag=1,需要从码流解析affine_type_flag,若解析得到的affine_type_flag=1,指示当前块的帧间预测模式为基于6参数仿射运动模型的AMVP模式,若解析affine_type_flag=0,指示当前块的帧间预测模式为基于4参数仿射运动模型的AMVP模式。
示例性的,语法元素sps_affine_enabled_flag=1,merge_flag=0且affine_inter_flag=1、sps_affine_type_flag=0,指示当前块的帧间预测模式为基于4参数仿射运动模型的AMVP模式,此时不需要解析affine_type_flag。
示例性的,若语法元素sps_affine_enabled_flag=0,merge_flag=0,指示当前块的帧间预测模式为基于平动运动模型的AMVP模式,在该情况下,码流中可以不包括affine_merge_flag、affine_inter_flag、affine_type_flag,也不需要从码流中解析。
若确定当前块的帧间预测模式为基于仿射运动模型的融合(merge)模式,执行步骤802b。
即,语法元素sps_affine_enabled_flag=1,merge_flag=1且affine_merge_flag=1,指示当前块的帧间预测模式为基于仿射运动模型的merge模式。
示例性的,若语法元素sps_affine_enabled_flag=0,merge_flag=1,指示当前块的帧间预测模式为基于平动运动模型的merge模式,在该情况下,码流中可以不包括affine_merge_flag、affine_inter_flag、affine_type_flag,也不需要从码流中解析。
步骤802a-步骤804a,参见步骤602a-604a,此处不再赘述。
步骤802b,构造基于仿射运动模型的融合模式的运动信息候选列表。
具体的,可以采用继承的控制点运动矢量预测方法和/或构造的控制点运动矢量预测方法,构造基于仿射运动模型的融合模式的运动信息候选列表。
在采用继承的控制点运动矢量预测方法,构造基于仿射运动模型的融合模式的运动信息候选列表时,可以参见步骤602b中D1的相关描述,此处不再赘述。
在利用构造的控制点运动矢量预测方法,推导得到当前块的候选的控制点运动信息,加入运动信息候选列表时,具体包括:
(1)获取当前块的各个控制点的运动信息,可以参见步骤601c,此处不再赘述。
(2)将控制点的运动信息进行组合,得到构造的控制点运动信息。
若sps_affine_type_flag=0,则将两个控制点的运动信息进行组合,用来构建4参数仿射运动模型。两个控制点的组合方式为{CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},{CP3,CP4}。例如,采用CP1和CP2控制点构建的4参数仿射运动模型,记做Affine(CP1,CP2)。
若sps_affine_type_flag=1,则将三个控制点的运动信息进行组合,用来构建6参数仿射运动模型。三个控制点的组合方式为{CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4}。例如,采用CP1、CP2和CP3控制点构建的6参数仿射运动模型,记做Affine(CP1,CP2,CP3)。示例性的,sps_affine_type_flag=1,除了执行将三个控制点的运动信息进行组合,用来构建6参数仿射运动模型,还可以执行将两个控制点的运动信息进行组合,用来构建4参数仿射运动模型。
需要说明的是,亦可将不同控制点的组合转换为同一位置的控制点,具体转换方法可以参见步骤502中的相关描述,此处不再赘述。
(3),将构造的控制点运动信息加入候选运动矢量列表。
若此时候选列表的长度小于最大列表长度MaxNumMrgCand,则按照预置的顺序遍历这些组合,得到合法的组合作为候选的控制点运动信息,如果此时候选运动矢量列表为空,则将该候选的控制点运动信息加入候选运动矢量列表;否则依次遍历候选运动矢量列表中的运动信息,检查候选运动矢量列表中是否存在与该候选的控制点运动信息相同的运动信息。如果候选运动矢量列表中不存在与该候选的控制点运动信息相同的运动信息,则将该候选的控制点运动信息加入候选运动矢量列表。
示例性的,若sps_affine_type_flag为1,一种预置顺序如下:Affine(CP1,CP2,CP3)->Affine(CP1,CP2,CP4)->Affine(CP1,CP3,CP4)->Affine(CP2,CP3,CP4)->Affine(CP1,CP2)->Affine(CP1,CP3)->Affine(CP2,CP3)->Affine(CP1,CP4)->Affine(CP2,CP4)->Affine(CP3,CP4),总共10种组合。本申请实施例对10种组合的加入候选运动矢量列表的先后顺序不作具体限定。
若sps_affine_type_flag为0,一种预置顺序如下:Affine(CP1,CP2)->Affine(CP1,CP3)->Affine(CP2,CP3)->Affine(CP1,CP4)->Affine(CP2,CP4)->Affine(CP3,CP4),总共6种组合。本申请实施例对6种组合的加入候选运动矢量列表的先后顺序不作具体限定。
步骤803b-步骤805b,参见步骤603b-步骤605b,此处不再赘述。
参见图9所示,针对第二种可能的实现方式进行说明。
步骤901,从码流中解析标识2。
标识2用于指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型是否包括仿射运动模型,换句话说,标识2用于指示待处理块所在的条带包括的图像块进行运动补偿时,是否可以采用仿射运动模型。
示例性的,标识2可以配置在码流的所述条带的条带头中。基于此,从码流中解析标识2,可以通过如下方式实现:从码流的所述条带的条带头中解析标识2。
步骤902,当所述标识2指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,且所述待处理块满足采用所述仿射运动模型进行帧间预测的预设条件时,从所述码流中解析标识12。
针对预设条件以及标识12的相关描述,参见图7和图8所对应的实施例,此处不再赘述。
示例性地,当所述标识2指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型不包括仿射运动模型时,则针对条带中包括的图像块进行帧间预测时,不需要解析与仿射运动模型相关的参数信息。比如,不需要从码流中解析标识12。
示例性的,当标识2为数值A1时,指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,当标识2为数值B1时,指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型。比如,标识2=1,指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,标识2=0,指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型不包括仿射运动模型。
步骤903,根据所述标识12,确定所述待处理块进行帧间预测所采用的预测模式,所述预测模式包括所述仿射运动模型的融合模式、所述仿射运动模型的AMVP模式和非仿射运动模型的预测模式。
示例性地,标识2可以通过语法元素slice_affine_enabled_flag来表示。slice_affine_enabled_flag用来指示针对条带包括的图像块进行帧间预测时,是否可以采用仿射运动模型。比如,slice_affine_enabled_flag=0,指示针对条带包括的图像块进行帧间预测时,不可以采用仿射运动模型。在CVS中不包括用于指示基于仿射运动模型的运动补偿的语法元素,比如,在CVS的图像块级别的语法中不包括affine_merge_flag,affine_inter_flag以及affine_type_flag。sps_affine_enabled_flag=1,指示针对条带包括的图像块进行帧间预测时,可以采用仿射运动模型。(slice_affine_enabled_flagspecifies whether affine model based motion compensation can be used forinter prediction.If slice_affine_enabled_flag is equal to 0,the syntaxelements shall be constrained such that no affine model based motioncompensation is used in the CVS,and affine_merge_flag,affine_inter_flag andaffine_type_flag are not presented in cu level syntax of the CVS.Otherwise(slice_affine_enabled_flag is equal to 1),affine model based motioncompensation may be used in the CVS.)。
第二种可能的实现方式下,一种可能的示例,码流中还可以配置标识23。标识23可以配置在码流的条带的条带头中。当从码流中解析的标识2指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,从所述码流中解析标识23,当所述标识23为第一数值时,所述仿射运动模型仅包括4参数仿射模型,当所述标识23为第二数值时,所述仿射运动模型包括4参数仿射模型和6参数仿射模型,所述第一数值和所述第二数值不同。比如第一数值为1,第二数值为0,或者第一数值为0,第二数值为1。
示例性地,标识23可以通过slice_affine_type_flag来表示。slice_affine_type_flag用来指示在针对视频图像包括的图像块进行帧间预测时,是否可以采用6参数仿射运动模型进行运动补偿。比如,slice_affine_type_flag=0,指示针对视频图像包括的图像块进行帧间预测时,不可以采用6参数仿射运动模型进行运动补偿,则在CVS中不包括用于指示基于6参数仿射运动模型的运动补偿的语法元素。比如,在CVS的图像块级别的语法中不包括affine_type_flag。(slice_affine_type_flag specifies whether6-parameter affine model based motion compensation can be used for interprediction.If slice_affine_type_flag is equal to 0,the syntax elements shallbe constrained such that no 6-parameter affine model based motioncompensation is used in the CVS,and affine_type_flag is not presented in culevel syntax in the CVS.Otherwise(slice_affine_type_flag is equal to 1),6-parameter affine model based motion compensation may be used in the CVS.Whennot present,the value of slice_affine_type_flag is inferred to be equal to0.)。
示例性的,解析标识2和标识23的语法结构参见表5所示。
表5
示例性的,解析当前图像块采用的帧间预测模式的部分语法结构参见表6所示。
表6
在第二种可能的实现下,一种可能的示例中,在上述从码流中解析标识2和标识23的情况下,当所述标识12指示所述待处理块采用所述仿射运动模型的merge模式进行帧间预测,且标识23为所述第二数值时,构建第一候选运动矢量列表,其中,所述第一候选运动矢量列表包括第一元素,所述第一元素包括用于构建所述6参数仿射运动模型的三个控制点的运动信息。比如,第一元素中包括一个或者多个三元组。
可选地,第一候选运动矢量列表中还可以包括第二元素。所述第二元素仅包括用于构建所述4参数仿射运动模型的两个控制点的运动信息。比如第二元素包括一个或者多个二元组。第一候选运动矢量列表还可以包括第三元素,第三元素包括非仿射运动模型的运动信息。
在另一种可能的示例中,当所述标识12指示所述待处理块采用所述仿射运动模型的merge模式进行帧间预测,且所述标识23为所述第一数值时,构建第二候选运动矢量列表,所述第二候选运动矢量列表包括第二元素,所述第二元素仅包括用于构建所述4参数仿射运动模型的两个控制点的运动信息。第二候选运动矢量列表中不包括第一元素。第二候选运动矢量列表中还可以包括第三元素,第三元素包括非仿射运动模型的运动信息。第一候选运动矢量列表和第二候选运动矢量列表均为基于仿射运动模型的merge模式的候选运动矢量列表。
在第二种可能的实现下,一种可能的示例中,在上述从码流中解析标识2和标识23的情况下,当所述标识12指示所述待处理块采用所述仿射运动模型的AMVP模式进行帧间预测,且所述标识23为所述第二数值时,从所述码流中解析标识14;当所述标识14为第三数值时,所述仿射运动模型为所述6参数仿射运动模型,当所述标识14为第四数值时,所述仿射运动模型为所述4参数仿射运动模型,所述第三数值和所述第四数值不同。比如,第三数值为1,第四数值为0,或者第三数值为0,第四数值为1。
可选地,标识14可以通过语法元素affine_type_flag来表示。针对affine_type_flag,可以参见表1的相关描述,此处不再赘述。
下面以表5和表6的语法结构为例,针对第二种可能的方式下的帧间预测流程进行详细说明,参见图10所示。
步骤1001:按照表5和表6所示的语法结构,解析码流,确定当前块的帧间预测模式。
若确定当前块的帧间预测模式为基于仿射运动模型的AMVP模式,执行步骤1002a。
即,语法元素slice_affine_enabled_flag=1,merge_flag=0且affine_inter_flag=1,指示当前块的帧间预测模式为基于仿射运动模型的AMVP模式。
示例性的,若语法元素slice_affine_enabled_flag=0,merge_flag=0,指示当前块的帧间预测模式为基于平动运动模型的AMVP模式,在该情况下,码流中可以不包括affine_merge_flag、affine_inter_flag、affine_type_flag,也不需要从码流中解析。
若确定当前块的帧间预测模式为基于仿射运动模型的融合(merge)模式,执行步骤702b。
即,语法元素slice_affine_enabled_flag=1,merge_flag=1且affine_merge_flag=1,指示当前块的帧间预测模式为基于仿射运动模型的merge模式。
示例性的,若语法元素slice_affine_enabled_flag=0,merge_flag=1,指示当前块的帧间预测模式为基于平动运动模型的merge模式,在该情况下,码流中可以不包括affine_merge_flag、affine_inter_flag、affine_type_flag,也不需要从码流中解析。
步骤1002a-步骤1004a,参见步骤602a-604a,此处不再赘述。
步骤1002b,构造基于仿射运动模型的融合模式的运动信息候选列表。
具体的,可以采用继承的控制点运动矢量预测方法和/或构造的控制点运动矢量预测方法,构造基于仿射运动模型的融合模式的运动信息候选列表。
在采用继承的控制点运动矢量预测方法,构造基于仿射运动模型的融合模式的运动信息候选列表时,可以参见步骤602b中D1的相关描述,此处不再赘述。
在利用构造的控制点运动矢量预测方法,推导得到当前块的候选的控制点运动信息,加入运动信息候选列表时,具体包括:
(1)获取当前块的各个控制点的运动信息,可以参见步骤601c,此处不再赘述。
(2)将控制点的运动信息进行组合,得到构造的控制点运动信息。
若slice_affine_type_flag=0,则将两个控制点的运动信息进行组合,用来构建4参数仿射运动模型。两个控制点的组合方式为{CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},{CP3,CP4}。例如,采用CP1和CP2控制点构建的4参数仿射运动模型,记做Affine(CP1,CP2)。
若slice_affine_type_flag=1,则将三个控制点的运动信息进行组合,用来构建6参数仿射运动模型。三个控制点的组合方式为{CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4}。例如,采用CP1、CP2和CP3控制点构建的6参数仿射运动模型,记做Affine(CP1,CP2,CP3)。示例性的,slice_affine_type_flag=1,除了执行将三个控制点的运动信息进行组合,用来构建6参数仿射运动模型,还可以执行将两个控制点的运动信息进行组合,用来构建4参数仿射运动模型。
需要说明的是,亦可将不同控制点的组合转换为同一位置的控制点,具体转换方法可以参见步骤502中的相关描述,此处不再赘述。
(3),将构造的控制点运动信息加入候选运动矢量列表。
若此时候选列表的长度小于最大列表长度MaxNumMrgCand,则按照预置的顺序遍历这些组合,得到合法的组合作为候选的控制点运动信息,如果此时候选运动矢量列表为空,则将该候选的控制点运动信息加入候选运动矢量列表;否则依次遍历候选运动矢量列表中的运动信息,检查候选运动矢量列表中是否存在与该候选的控制点运动信息相同的运动信息。如果候选运动矢量列表中不存在与该候选的控制点运动信息相同的运动信息,则将该候选的控制点运动信息加入候选运动矢量列表。
示例性的,若slice_affine_type_flag为1,一种预置顺序如下:Affine(CP1,CP2,CP3)->Affine(CP1,CP2,CP4)->Affine(CP1,CP3,CP4)->Affine(CP2,CP3,CP4)->Affine(CP1,CP2)->Affine(CP1,CP3)->Affine(CP2,CP3)->Affine(CP1,CP4)->Affine(CP2,CP4)->Affine(CP3,CP4),总共10种组合。本申请实施例对10种组合的加入候选运动矢量列表的先后顺序不作具体限定。
若slice_affine_type_flag为0,一种预置顺序如下:Affine(CP1,CP2)->Affine(CP1,CP3)->Affine(CP2,CP3)->Affine(CP1,CP4)->Affine(CP2,CP4)->Affine(CP3,CP4),总共6种组合。本申请实施例对6种组合的加入候选运动矢量列表的先后顺序不作具体限定。
步骤1003b,参见步骤603b,此处不再赘述。
步骤1004b,参见步骤604b,此处不再赘述。
步骤1005b,参见步骤605b,此处不再赘述。
参见图11所示,针对第三种可能的实现方式进行说明。
步骤1101,从码流中解析标识1。
步骤1102,当所述标识1指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,从码流中解析标识2。
示例性地,标识1可以通过语法元素sps_affine_enabled_flag来表示。sps_affine_enabled_flag用来指示针对视频图像包括的图像块进行帧间预测时,是否可以采用仿射运动模型。比如,sps_affine_enabled_flag=0,指示针对视频图像包括的图像块进行帧间预测时,不可以采用仿射运动模型。在CVS中不包括用于指示基于仿射运动模型的运动补偿的语法元素,比如,在CVS的条带级别的语法中不包括slice_affine_enabled_flag。(sps_affine_enabled_flag equals to 1specifies that slice_affine_enabled_flagis present in the slice headers.sps_affine_enabled_flag equal to 0specifiesthat slice_affine_enabled_flag is not present in the slice headers and affinemodel based motion compensation is not used in the CVS.)
在一种可能的示例中,若标识1指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,则指示码流中包括标识2。若标识1指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型不包括仿射运动模型,则指示码流中不包括标识2。
步骤1103,当所述标识2指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,且所述待处理块满足采用所述仿射运动模型进行帧间预测的预设条件时,从所述码流中解析标识12。
针对预设条件、标识1、标识2以及标识12的相关描述,参见图9和图10所对应的实施例,此处不再赘述。
步骤1104,根据所述标识12,确定所述待处理块进行帧间预测所采用的预测模式,所述预测模式包括所述仿射运动模型的融合模式、所述仿射运动模型的AMVP模式和非仿射运动模型。
第二种可能的实现方式下,一种可能的示例,码流中还可以配置标识23。标识23可以配置在码流的条带的条带头中。当从码流中解析的标识2指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型时,从所述码流中解析标识23,当所述标识23为第一数值时,所述仿射运动模型仅包括4参数仿射模型,当所述标识23为第二数值时,所述仿射运动模型包括4参数仿射模型和6参数仿射模型,所述第一数值和所述第二数值不同。比如第一数值为1,第二数值为0,或者第一数值为0,第二数值为1。
示例性的,解析标识1的语法结构可以参见表7所示。
表7
示例性的,解析标识2和标识23的语法结构参见表8所示,此处不再赘述。
表8
示例性的,解析当前图像块采用的帧间预测模式的部分语法结构参见表6所示。
针对第三种可能的方式下的帧间预测流程中,仅在解析码流,确定当前块的帧间预测模式是与第二可能的方式不同,其它流程相同,此处不再赘述。
在解析码流,确定当前块的帧间预测模式时,若语法元素sps_affine_enabled_flag=1,slice_affine_enabled_flag=1,merge_flag=0且affine_inter_flag=1,指示当前块的帧间预测模式为基于仿射运动模型的AMVP模式。
示例性的,若语法元素sps_affine_enabled_flag=0,merge_flag=0,指示当前块的帧间预测模式为基于平动运动模型的AMVP模式,在该情况下,码流中可以不包括affine_merge_flag、affine_inter_flag、affine_type_flag,也不需要从码流中解析。
示例性的,若语法元素sps_affine_enabled_flag=1,slice_affine_enabled_flag=0,merge_flag=0,指示当前块的帧间预测模式为基于平动运动模型的AMVP模式,在该情况下,码流中可以不包括affine_merge_flag、affine_inter_flag、affine_type_flag,也不需要从码流中解析。
若语法元素sps_affine_enabled_flag=1,slice_affine_enabled_flag=1,merge_flag=1且affine_merge_flag=1,指示当前块的帧间预测模式为基于仿射运动模型的merge模式。
示例性的,若语法元素sps_affine_enabled_flag=0,merge_flag=1,指示当前块的帧间预测模式为基于平动运动模型的merge模式,在该情况下,码流中可以不包括affine_merge_flag、affine_inter_flag、affine_type_flag,也不需要从码流中解析。
示例性的,若sps_affine_enabled_flag=1,slice_affine_enabled_flag=0,merge_flag=1,指示当前块的帧间预测模式为基于平动运动模型的merge模式,在该情况下,码流中可以不包括affine_merge_flag、affine_inter_flag、affine_type_flag,也不需要从码流中解析。
在第三种可能的实现方式下,还可以根据标识1,在码流中配置标识13。在第三种可能的实现方式下,标识13在指示所述待处理块采用所述仿射运动模型的merge模式进行帧间预测时,标识13还可以进一步指示码流中是否包括标识23。
在步骤1101所述从所述码流中解析标识1之后,且步骤1102在所述从码流中解析标识2之前,还包括:从所述码流中解析标识13。
标识13可以通过语法元素sps_affine_type_flag来表示。sps_affine_type_flag用来指示在针对视频图像包括的图像块进行帧间预测时,是否可以采用6参数仿射运动模型进行运动补偿,码流中是否包括slice_affine_type_flag。比如,sps_affine_type_flag=0,指示针对视频图像包括的图像块进行帧间预测时,不可以采用6参数仿射运动模型进行运动补偿,则在CVS中不包括用于指示基于6参数仿射运动模型的运动补偿的语法元素。比如,在CVS的图像块级别的语法中不包括slice_affine_type_flag、affine_type_flag。(slice_affine_type_flag specifies whether 6-parameter affine model basedmotion compensation can be used for inter prediction.If slice_affine_type_flag is equal to 0,the syntax elements shall be constrained such that no6-parameter affine model based motion compensation is used in decoding of thecurrent picture,and affine_type_flag is not presented in cu level syntax ofthe current picture.Otherwise(slice_affine_type_flag is equal to 1),6-parameter affine model based motion compensation may be used in decoding ofthe current picture.When not present,the value of slice_affine_type_flag isinferred to be equal to 0.)
示例性地,解析标识1和标识13的语法结构可以参见表9所示。
表9
示例性地,解析标识2和标识23的语法结构可以参见表10所示。
基于与方法实施例同样的发明构思,本申请实施例还提供了一种装置,参见图12所示,该装置1200具体可以是视频解码器中的处理器,或者芯片或者芯片系统,或者是视频解码器中一个模块,比如运动补偿模块322。
示意性的,该装置可以包括解析单元1201,构建单元1202。解析单元1201,构建单元1202执行图7-图11对应的实施例所示的方法步骤。比如解析单元1201可以用于解析码流中包括的各个标识(比如标识1、标识12、标识13、标识14、标识2、标识23等),构建单元1202,用于候选运动矢量列表(第一候选运动矢量列表或者第二候选运动矢量列表等)。
本申请实施例还提供该用于解码器的装置另外一种结构,如图13所示,装置1300中可以包括通信接口1310、处理器1320。可选的,装置1300中还可以包括存储器1330。其中,存储器1330可以设置于装置内部,还可以设置于装置外部。上述图12中所示的解析单元1201,构建单元1202均可以由处理器1320实现。处理器1320通过通信接口1310发送或者接收视频流或者码流,并用于实现图7-图11中所述的方法。在实现过程中,处理流程的各步骤可以通过处理器1320中的硬件的集成逻辑电路或者软件形式的指令完成图7-图11中所述的方法。
本申请实施例中通信接口1310可以是电路、总线、收发器或者其它任意可以用于进行信息交互的装置。其中,示例性地,该其它装置可以是与装置1300相连的设备,比如,该装置是视频编码器时,则其它装置可以是视频解码器。
本申请实施例中处理器1320可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件单元组合执行完成。处理器1320用于实现上述方法所执行的程序代码可以存储在存储器1330中。存储器1330和处理器1320耦合。
本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
处理器1320可能和存储器1330协同操作。存储器1330可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器1330是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
本申请实施例中不限定上述通信接口1310、处理器1320以及存储器1330之间的具体连接介质。本申请实施例在图13中以存储器1330、处理器1320以及通信接口1310之间通过总线连接,总线在图13中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述图7-图11相关的各可行的实施方式和具体的实施例描述了本申请的一种或多种解码视频数据的装置,应理解,根据前文所述,一般情况下,编码端会确定帧间预测模式、并编入码流。最终选用的帧间预测模式被选定后,会按照和上述解码方法完全相逆的编码过程,将帧间预测模式的指示(比如上文中的标识1、标识2、标识12、标识13、标识14、标识23等)编入码流(与解码过程中的解析标识1、标识2、标识12、标识13、标识14、标识23分别对应)。应理解,候选运动矢量列表的构建,对于编解码端是完全一致的。编码端的具体实施例不再赘述,但应理解,本申请所描述视频图像预测方法同时适用于编码装置。
本申请实施例还提供该用于编码器的装置,如图14所示,装置1400中可以包括通信接口1410、处理器1420。可选的,装置1400中还可以包括存储器1430。其中,存储器1430可以设置于装置内部,还可以设置于装置外部。处理器1420通过通信接口1410发送或者接收视频流或者码流。
一方面,处理器1420,用于向码流中编码标识1;当所述标识1指示待处理块所在的视频图像中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,且所述待处理块满足采用所述仿射运动模型进行帧间预测的预设条件时,向所述码流中编码标识12;所述标识12用于确定所述待处理块进行帧间预测所采用的预测模式,所述预测模式包括所述仿射运动模型的融合模式、所述仿射运动模型的先进的运动矢量预测AMVP模式和非仿射运动模型的预测模式。
另一方面,处理器1420,用于向码流中编码标识3;当所述标识3指示待处理块所在的条带中的图像块进行帧间预测所采用的候选运动模型包括仿射运动模型,且所述待处理块满足采用所述仿射运动模型进行帧间预测的预设条件时,向所述码流中编码标识12;所述标识12用于确定所述待处理块进行帧间预测所采用的预测模式,所述预测模式包括所述仿射运动模型的融合模式、所述仿射运动模型的先进的运动矢量预测AMVP模式和非仿射运动模型的预测模式。
本申请实施例中通信接口1410可以是电路、总线、收发器或者其它任意可以用于进行信息交互的装置。其中,示例性地,该其它装置可以是与装置1400相连的设备,比如,该装置是视频编码器时,则其它装置可以是视频解码器。
本申请实施例中处理器1420可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件单元组合执行完成。处理器1420用于实现上述方法所执行的程序代码可以存储在存储器1430中。存储器1430和处理器1420耦合。
本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
处理器1420可能和存储器1430协同操作。存储器1430可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器1430是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
本申请实施例中不限定上述通信接口1410、处理器1420以及存储器1430之间的具体连接介质。本申请实施例在图14中以存储器1430、处理器1420以及通信接口1410之间通过总线连接,总线在图14中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
基于以上实施例,本申请实施例还提供了一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现上述任意一个或多个实施例提供的方法。所述计算机存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
基于以上实施例,本申请实施例还提供了一种芯片,该芯片包括处理器,用于实现上述任意一个或多个实施例所涉及的功能,例如获取或处理上述方法中所涉及的信息或者消息。可选地,所述芯片还包括存储器,所述存储器,用于处理器所执行必要的程序指令和数据。该芯片,可以由芯片构成,也可以包含芯片和其他分立器件。
虽然已关于视频编码器20及视频解码器30描述本申请的特定方面,但应理解,本发明的技术可通过许多其它视频编码和/或解码单元、处理器、处理单元、例如编码器/解码器(CODEC)的基于硬件的解码单元及类似者来应用。此外,应理解,仅作为可行的实施方式而提供关于图6A-图11所展示及描述的步骤。即,图6A-图11的可行的实施方式中所展示的步骤无需必定按图6A-图11中所展示的次序执行,且可执行更少、额外或替代步骤。
此外,应理解,取决于可行的实施方式,本文中所描述的方法中的任一者的特定动作或事件可按不同序列执行,可经添加、合并或一起省去(例如,并非所有所描述的动作或事件为实践方法所必要的)。此外,在特定可行的实施方式中,动作或事件可(例如)经由多线程处理、中断处理或多个处理器来同时而非顺序地执行。另外,虽然出于清楚的目的将本申请的特定方面描述为通过单一模块或单元执行,但应理解,本申请的技术可通过与视频解码器相关联的单元或模块的组合执行。
在一个或多个可行的实施方式中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么功能可作为一个或多个指令或代码而存储于计算机可读媒体上或经由计算机可读媒体来传输,且通过基于硬件的处理单元来执行。计算机可读媒体可包含计算机可读存储媒体或通信媒体,计算机可读存储媒体对应于例如数据存储媒体的有形媒体,通信媒体包含促进计算机程序(例如)根据通信协议从一处传送到另一处的任何媒体。
以这个方式,计算机可读媒体示例性地可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一个或多个计算机或一个或多个处理器存取以检索用于实施本申请中所描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为可行的实施方式而非限制,此计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用于存储呈指令或数据结构的形式的所要代码且可由计算机存取的任何其它媒体。同样,任何连接可适当地称作计算机可读媒体。例如,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL),或例如红外线、无线电及微波的无线技术而从网站、服务器或其它远端源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL,或例如红外线、无线电及微波的无线技术包含于媒体的定义中。
然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而替代地针对非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包含紧密光盘(CD)、雷射光盘、光盘、数字多功能光盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通过雷射以光学方式再现数据。以上各物的组合也应包含于计算机可读媒体的范围内。
可通过例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效集成或离散逻辑电路的一个或多个处理器来执行指令。因此,如本文中所使用,术语“处理器”可指前述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,可将本文所描述的功能性提供于经配置以用于编码及解码的专用硬件和/或软件模块内,或并入于组合式编码解码器中。同样,技术可完全实施于一个或多个电路或逻辑元件中。
本申请的技术可实施于广泛多种装置或设备中,包含无线手机、集成电路(IC)或IC的集合(例如,芯片组)。本申请中描述各种组件、模块或单元以强调经配置以执行所揭示的技术的装置的功能方面,但未必需要通过不同硬件单元实现。更确切来说,如上文所描述,各种单元可组合于编码解码器硬件单元中或由互操作的硬件单元(包含如上文所描述的一个或多个处理器)结合合适软件和/或固件的集合来提供。
以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (46)

1.一种编码方法,其特征在于,包括:
生成码流,所述码流包括第一标识,所述第一标识指示待处理的图像块所在的视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型;
当所述第一标识指示所述视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型,且所述图像块满足采用所述仿射运动模型进行帧间预测的条件时,所述码流还包括第二标识,所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测;
当所述第一标识指示所述视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型时,所述码流还包括第三标识,其中,当所述第三标识为第一数值时,所述仿射运动模型仅包括4参数仿射运动模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射运动模型和6参数仿射运动模型,所述第一数值和所述第二数值不同;
其中,所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值,指示所述图像块采用基于6参数的仿射运动模型的融合模式进行帧间预测;
所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第一数值,指示所述图像块采用基于4参数的仿射运动模型的融合模式进行帧间预测;
发送所述码流。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
存储所述码流。
3.如权利要求1所述的方法,其特征在于,所述第一标识位于所述码流的序列参数集中。
4.如权利要求3所述的方法,其特征在于,所述第一标识通过语法元素sps_affine_enabled_flag表示,当sps_affine_enabled_flag等于1时,指示所述待处理块所在的视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型。
5.如权利要求1-3任一项所述的方法,其特征在于,所述第三标识位于所述码流的序列参数集中。
6.如权利要求5所述的方法,其特征在于,所述第三标识通过语法元素sps_affine_type_flag表示,sps_affine_type_flag取值为0或1,当sps_affine_type_flag等于1时,所述仿射运动模型包括4参数仿射运动模型和6参数仿射运动模型;当sps_affine_type_flag等于0时,所述仿射运动模型仅包括4参数仿射运动模型。
7.如权利要求1所述的方法,其特征在于,所述第二标识通过语法元素affine_merge_flag表示,当affine_merge_flag等于1时,指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测。
8.如权利要求1-7任一项所述的方法,其特征在于,所述条件包括所述图像块的宽度大于或等于第一预设阈值,且所述图像块的高度大于或等于第二预设阈值。
9.如权利要求8所述的方法,其特征在于,所述第一预设阈值和所述第二预设阈值均等于8。
10.如权利要求9所述的方法,其特征在于,所述第一数值为0,所述第二数值为1。
11.一种传输方法,其特征在于,包括:
接收码流,所述码流包括第一标识,所述第一标识指示待处理的图像块所在的视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型;
当所述第一标识指示所述视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型,且所述图像块满足采用所述仿射运动模型进行帧间预测的条件时,所述码流还包括第二标识;
当所述第一标识指示所述视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型时,所述码流还包括第三标识,其中,当所述第三标识为第一数值时,所述仿射运动模型仅包括4参数仿射运动模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射模型和6参数仿射运动模型,所述第一数值和所述第二数值不同;
其中,所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值,指示所述图像块采用基于6参数的仿射运动模型的融合模式进行帧间预测;
所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第一数值,指示所述图像块采用基于4参数的仿射运动模型的融合模型进行帧间预测;
发送所述码流。
12.如权利要求11所述的方法,其特征在于,所述方法还包括:
存储所述码流。
13.如权利要求11所述的方法,其特征在于,所述第一标识位于所述码流的序列参数集中。
14.如权利要求13所述的方法,其特征在于,所述第一标识通过语法元素sps_affine_enabled_flag表示,当sps_affine_enabled_flag等于1时,指示所述待处理块所在的视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型。
15.如权利要求11-13任一项所述的方法,其特征在于,所述第三标识位于所述码流的序列参数集中。
16.如权利要求15所述的方法,其特征在于,所述第三标识通过语法元素sps_affine_type_flag表示,sps_affine_type_flag取值为0或1,当sps_affine_type_flag等于1时,所述仿射运动模型包括4参数仿射运动模型和6参数仿射运动模型;当sps_affine_type_flag等于0时,所述仿射运动模型仅包括4参数仿射运动模型。
17.如权利要求11所述的方法,其特征在于,所述第二标识通过语法元素affine_merge_flag表示,当affine_merge_flag等于1时,指示所述待处理块采用所述仿射运动模型的融合模式进行帧间预测。
18.如权利要求11-17任一项所述的方法,其特征在于,所述条件包括所述图像块的宽度大于或等于第一预设阈值,且所述图像块的高度大于或等于第二预设阈值。
19.如权利要求18所述的方法,其特征在于,所述第一预设阈值和所述第二预设阈值均等于8。
20.如权利要求11所述的方法,其特征在于,所述第一数值为0,所述第二数值为1。
21.一种编码装置,其特征在于,包括:
编码单元,用于生成码流,所述码流包括第一标识,所述第一标识指示待处理的图像块所在的视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型;
当所述第一标识指示所述视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型,且所述图像块满足采用所述仿射运动模型进行帧间预测的条件时,所述码流还包括第二标识,所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测;
当所述第一标识指示所述图像块所在的视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型时,所述码流还包括第三标识,其中,当所述第三标识为第一数值时,所述仿射运动模型仅包括4参数仿射运动模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射运动模型和6参数仿射运动模型,所述第一数值和所述第二数值不同;
其中,所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值,指示所述图像块采用基于6参数的仿射运动模型的融合模式进行帧间预测;
所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第一数值,指示所述图像块采用基于4参数的仿射运动模型的融合模式进行帧间预测;
发送单元,用于发送所述码流。
22.如权利要求21所述的装置,其特征在于,还包括:
存储单元,用于存储所述码流。
23.如权利要求21所述的装置,其特征在于,所述第一标识位于所述码流的序列参数集中。
24.如权利要求23所述的装置,其特征在于,所述第一标识通过语法元素sps_affine_enabled_flag表示,当sps_affine_enabled_flag等于1时,指示所述待处理块所在的视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型。
25.如权利要求21-23任一项所述的装置,其特征在于,所述第三标识位于所述码流的序列参数集中。
26.如权利要求25所述的装置,其特征在于,所述第三标识通过语法元素sps_affine_type_flag表示,sps_affine_type_flag取值为0或1,当sps_affine_type_flag等于1时,所述仿射运动模型包括4参数仿射运动模型和6参数仿射运动模型;当sps_affine_type_flag等于0时,所述仿射运动模型仅包括4参数仿射运动模型。
27.如权利要求21所述的装置,其特征在于,所述第二标识通过语法元素affine_merge_flag表示,当affine_merge_flag等于1时,指示所述待处理块采用所述仿射运动模型的融合(merge)模式进行帧间预测。
28.如权利要求21-27任一项所述的装置,其特征在于,所述条件包括所述待处理块的宽度大于或等于第一预设阈值,且所述待处理块的高度大于或等于第二预设阈值。
29.如权利要求28所述的装置,其特征在于,所述第一预设阈值和所述第二预设阈值均等于8。
30.如权利要求29所述的装置,其特征在于,所述第一数值为0,所述第二数值为1。
31.一种传输装置,其特征在于,包括:
接收单元,用于接收码流,所述码流包括第一标识,所述第一标识指示待处理的图像块所在的视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型;
当所述第一标识指示所述视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型,且所述图像块满足采用所述仿射运动模型进行帧间预测的条件时,所述码流还包括第二标识,所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测;
当所述第一标识指示所述图像块所在的视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型时,所述码流还包括第三标识,其中,当所述第三标识为第一数值时,所述仿射运动模型仅包括4参数仿射运动模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射运动模型和6参数仿射运动模型,所述第一数值和所述第二数值不同;
其中,所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值,指示所述图像块采用基于6参数的仿射运动模型的融合模式进行帧间预测;
所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第一数值,指示所述图像块采用基于4参数的仿射运动模型的融合模式进行帧间预测;
发送单元,用于发送所述码流。
32.如权利要求31所述的装置,其特征在于,还包括:
存储单元,用于存储所述码流。
33.如权利要求31所述的装置,其特征在于,所述第一标识位于所述码流的序列参数集中。
34.如权利要求33所述的装置,其特征在于,所述第一标识通过语法元素sps_affine_enabled_flag表示,当sps_affine_enabled_flag等于1时,指示所述待处理块所在的视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型。
35.如权利要求31-33任一项所述的装置,其特征在于,所述第三标识位于所述码流的序列参数集中。
36.如权利要求35所述的装置,其特征在于,所述第三标识通过语法元素sps_affine_type_flag表示,sps_affine_type_flag取值为0或1,当sps_affine_type_flag等于1时,所述仿射运动模型包括4参数仿射运动模型和6参数仿射运动模型;当sps_affine_type_flag等于0时,所述仿射运动模型仅包括4参数仿射运动模型。
37.如权利要求31所述的装置,其特征在于,所述第二标识通过语法元素affine_merge_flag表示,当affine_merge_flag等于1时,指示所述待处理块采用所述仿射运动模型的融合(merge)模式进行帧间预测。
38.如权利要求31-37任一项所述的装置,其特征在于,所述条件包括所述待处理块的宽度大于或等于第一预设阈值,且所述待处理块的高度大于或等于第二预设阈值。
39.如权利要求38所述的装置,其特征在于,所述第一预设阈值和所述第二预设阈值均等于8。
40.如权利要求39所述的装置,其特征在于,所述第一数值为0,所述第二数值为1。
41.一种设备,其特征在于,包括:
存储器以及处理器;
所述存储器,用于存储程序指令;
所述处理器,用于调用并执行所述存储器中存储的程序指令,以实现如权利要求1至10中任一项所述的方法,或者实现如权利要求11-20任一项所述的方法。
42.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有程序指令和/或数据流(视频码流),当其在计算机上运行时,使得计算机执行如权利要求1-10任一项所述的方法,或者执行如权利要求11-20任一项所述的方法。
43.一种计算机程序产品,其特征在于,所述计算机程序产品上存储有程序指令和/或数据流(视频码流),当其在计算机上运行时,使得计算机执行如权利要求1-10任一项所述的方法,或者执行如权利要求11-20任一项所述的方法。
44.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有视频码流,所述视频码流包括第一标识;
当所述第一标识指示所述视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型,且所述图像块满足采用所述仿射运动模型进行帧间预测的条件时,所述码流还包括第二标识;
当所述第一标识指示所述图像块所在的视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型时,所述码流还包括第三标识,其中,当所述第三标识为第一数值时,所述仿射运动模型仅包括4参数仿射运动模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射运动模型和6参数仿射运动模型,所述第一数值和所述第二数值不同;
其中,所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值,指示所述图像块采用基于6参数的仿射运动模型的融合模式进行帧间预测;
所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第一数值,指示所述图像块采用基于4参数的仿射运动模型的融合模式进行帧间预测。
45.一种包含由权利要求1-10任一项的方法编码的视频码流的存储介质。
46.一种码流,其特征在于,所述码流包括第一标识;
当所述第一标识指示所述视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型,且所述图像块满足采用所述仿射运动模型进行帧间预测的条件时,所述码流还包括第二标识;
当所述第一标识指示所述图像块所在的视频序列进行帧间预测所采用的候选运动模型包括仿射运动模型时,所述码流还包括第三标识,其中,当所述第三标识为第一数值时,所述仿射运动模型仅包括4参数仿射运动模型,当所述第三标识为第二数值时,所述仿射运动模型包括4参数仿射运动模型和6参数仿射运动模型,所述第一数值和所述第二数值不同;
其中,所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第二数值,指示所述图像块采用基于6参数的仿射运动模型的融合模式进行帧间预测;
所述第二标识指示所述图像块采用所述仿射运动模型的融合模式进行帧间预测,且所述第三标识为所述第一数值,指示所述图像块采用基于4参数的仿射运动模型的融合模式进行帧间预测。
CN202311295528.1A 2018-08-27 2018-08-27 一种视频图像预测方法及装置 Pending CN117528115A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311295528.1A CN117528115A (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810983026.0A CN110868587B (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置
CN202311295528.1A CN117528115A (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201810983026.0A Division CN110868587B (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置

Publications (1)

Publication Number Publication Date
CN117528115A true CN117528115A (zh) 2024-02-06

Family

ID=69642667

Family Applications (5)

Application Number Title Priority Date Filing Date
CN202311295605.3A Pending CN117499672A (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置
CN202311286789.7A Pending CN117499670A (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置
CN201810983026.0A Active CN110868587B (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置
CN202311295528.1A Pending CN117528115A (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置
CN202311288702.XA Pending CN117499671A (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN202311295605.3A Pending CN117499672A (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置
CN202311286789.7A Pending CN117499670A (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置
CN201810983026.0A Active CN110868587B (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202311288702.XA Pending CN117499671A (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置

Country Status (9)

Country Link
US (3) US11425410B2 (zh)
EP (1) EP3836549A4 (zh)
JP (2) JP2021535672A (zh)
KR (2) KR20240040131A (zh)
CN (5) CN117499672A (zh)
BR (1) BR112021003736A2 (zh)
MX (1) MX2021002288A (zh)
SG (1) SG11202101977QA (zh)
WO (1) WO2020042630A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116647695A (zh) * 2018-09-06 2023-08-25 Lg电子株式会社 图像解码设备、图像编码设备和数据发送设备
SG11202111760SA (en) * 2019-04-25 2021-11-29 Op Solutions Llc Signaling of global motion vector in picture header
EP4101165A4 (en) * 2020-04-07 2024-04-03 Fg innovation co ltd DEVICE AND METHOD FOR ENCODING VIDEO DATA
CN111614960B (zh) * 2020-05-25 2022-09-02 绍兴文理学院 按图像内容特征进行帧级划分的快速编解码方法
US11388401B2 (en) * 2020-06-26 2022-07-12 Google Llc Extended transform partitions for video compression
CN113470788B (zh) * 2021-07-08 2023-11-24 山东志盈医学科技有限公司 多个数字切片的同步浏览方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3426092B2 (ja) * 1996-09-12 2003-07-14 シャープ株式会社 動画像符号化装置における動き補償フレーム間予測方法
CN108600749B (zh) * 2015-08-29 2021-12-28 华为技术有限公司 图像预测的方法及设备
CN108965871B (zh) * 2015-09-29 2023-11-10 华为技术有限公司 图像预测的方法及装置
US20190028731A1 (en) * 2016-01-07 2019-01-24 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
WO2017147765A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Methods for affine motion compensation
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US10448010B2 (en) * 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
US10681370B2 (en) * 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
CN108271023B (zh) * 2017-01-04 2021-11-19 华为技术有限公司 图像预测方法和相关设备
US10856003B2 (en) * 2017-10-03 2020-12-01 Qualcomm Incorporated Coding affine prediction motion information for video coding
US11877001B2 (en) * 2017-10-10 2024-01-16 Qualcomm Incorporated Affine prediction in video coding
US20190116376A1 (en) * 2017-10-12 2019-04-18 Qualcomm Incorporated Motion vector predictors using affine motion model in video coding
US20190208211A1 (en) * 2018-01-04 2019-07-04 Qualcomm Incorporated Generated affine motion vectors
US11172229B2 (en) * 2018-01-12 2021-11-09 Qualcomm Incorporated Affine motion compensation with low bandwidth

Also Published As

Publication number Publication date
CN117499671A (zh) 2024-02-02
EP3836549A1 (en) 2021-06-16
SG11202101977QA (en) 2021-03-30
JP2021535672A (ja) 2021-12-16
US11425410B2 (en) 2022-08-23
WO2020042630A1 (zh) 2020-03-05
MX2021002288A (es) 2021-07-15
EP3836549A4 (en) 2021-09-29
CN117499672A (zh) 2024-02-02
US20220345739A1 (en) 2022-10-27
JP2023099016A (ja) 2023-07-11
KR20240040131A (ko) 2024-03-27
BR112021003736A2 (pt) 2021-05-25
US20240007663A1 (en) 2024-01-04
CN117499670A (zh) 2024-02-02
KR20210046768A (ko) 2021-04-28
US11736715B2 (en) 2023-08-22
CN110868587B (zh) 2023-10-20
CN110868587A (zh) 2020-03-06
US20210203975A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
US20220345716A1 (en) Method and apparatus for predicting motion information of picture block, encoder, and decoder
US10652571B2 (en) Advanced motion vector prediction speedups for video coding
CN110024403B (zh) 一种编解码视频数据的方法、装置和计算机可读存储媒体
US9699472B2 (en) Restriction of prediction units in B slices to uni-directional inter prediction
US9736489B2 (en) Motion vector determination for video coding
US9426463B2 (en) Restriction of prediction units in B slices to uni-directional inter prediction
CN111164977A (zh) 视频译码中的仿射预测
CN110868587B (zh) 一种视频图像预测方法及装置
CN112740663B (zh) 图像预测方法、装置以及相应的编码器和解码器
US11601667B2 (en) Inter prediction method and related apparatus
US20210203944A1 (en) Decoding method and decoding apparatus for predicting motion information
EP3644608A1 (en) Decoding method and apparatus based on template matching

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