CN112291565A - 视频编码方法及其相关装置 - Google Patents

视频编码方法及其相关装置 Download PDF

Info

Publication number
CN112291565A
CN112291565A CN202010949286.3A CN202010949286A CN112291565A CN 112291565 A CN112291565 A CN 112291565A CN 202010949286 A CN202010949286 A CN 202010949286A CN 112291565 A CN112291565 A CN 112291565A
Authority
CN
China
Prior art keywords
motion information
current block
candidate list
motion
motion vector
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.)
Granted
Application number
CN202010949286.3A
Other languages
English (en)
Other versions
CN112291565B (zh
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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202010949286.3A priority Critical patent/CN112291565B/zh
Publication of CN112291565A publication Critical patent/CN112291565A/zh
Application granted granted Critical
Publication of CN112291565B publication Critical patent/CN112291565B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/567Motion estimation based on rate distortion criteria
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

本申请提供视频编码方法及其相关装置。该视频编码方法包括:计算每组可用的角度运动信息的代价值;将代价值最小的角度运动信息添加到当前块的运动信息候选列表中;将基于历史的运动信息添加到运动信息候选列表中;基于运动信息候选列表确定当前块的最佳运动矢量;基于当前块的最佳运动矢量对当前块进行编码。本申请可以提高视频编码的准确度。

Description

视频编码方法及其相关装置
技术领域
本申请涉及视频编码技术领域,特别是涉及视频编码方法及其相关装置。
背景技术
由于视频图像数据量比较大,通常需要对其进行编码压缩,压缩后的数据称之为视频码流,视频码流通过有线或者无线网络传输至用户端,再进行解码观看。
整个视频编码流程包括预测、变换、量化、编码等过程。其中预测分为帧内预测和视频编码两部分。视频编码用的是图像帧间的时域相关性来对图像进行压缩。本申请的发明人在长期的研发过程中,发现目前视频编码方法还存在一定的局限性,也在一定程度上影响了视频编码的准确度。
发明内容
本申请提供视频编码方法及其相关装置,能够提高视频编码的准确度。
为解决上述问题,本申请提供一种视频编码方法,该方法包括:
计算每组可用的角度运动信息的代价值;
将代价值最小的角度运动信息添加到当前块的运动信息候选列表中;
基于运动信息候选列表确定当前块的最佳运动矢量;
基于当前块的最佳运动矢量对当前块进行编码。
为解决上述问题,本申请提供一种视频编码方法,该方法包括:
将当前块的角度运动信息和基于历史的运动信息添加到运动信息候选列表中;
基于运动信息候选列表确定当前块的最佳运动矢量;
若当前块的最佳运动矢量来自于基于历史的运动信息时,将最佳运动矢量对应的索引与角度运动信息的个数的差值作为最佳运动矢量的编码索引,对当前块的最佳运动矢量的编码索引进行编码。
其中,在当前块的编码结果中添加标识,标识表示对当前块的最佳运动矢量的编码索引进行编码。
为解决上述问题,本申请提供一种视频编码方法,该方法包括:
对当前块的相邻块进行扫描,以确定当前块的空域运动信息;
对空域运动信息和运动信息候选列表中的运动信息进行查重;
若通过查重,将空域运动信息添加到运动信息候选列表中;
基于运动信息候选列表确定当前块的最佳运动矢量;
基于最佳运动矢量对当前块进行编码。
其中,对空域运动信息和运动信息候选列表中的运动信息进行查重,包括:
对空域运动信息和运动信息候选列表中的时域运动信息进行查重;
若通过查重,将空域运动信息添加到运动信息候选列表中。
其中,对空域运动信息和运动信息候选列表中的运动信息进行查重,包括:
空域运动信息为前向运动信息时,对空域运动信息和运动信息候选列表中的时域运动信息和后向空域运动信息进行查重;或,
空域运动信息为后向运动信息时,对空域运动信息和运动信息候选列表中的时域运动信息和前向空域运动信息进行查重。
其中,对当前块的相邻块进行扫描,以确定当前块的空域运动信息,包括:对当前块的相邻块扫描结束后,从运动信息候选列表中双向运动信息拆出前向或后向运动信息;
对空域运动信息和运动信息候选列表中的运动信息进行查重,包括:对拆出的前向或后向运动信息与运动信息候选列表中初始化的前向或后向运动信息进行查重。
为解决上述问题,本申请提供一种视频编码方法,当前块所属图像帧为单向预测编码帧,该方法包括:
对当前块的相邻块进行扫描,以确定当前块的空域运动信息;
将空域运动信息添加到运动信息候选列表,直至运动信息候选列表中空域运动信息的数量达到第一预设值;其中,第一预设值为双向预测编码帧中编码块的运动信息候选列表中空域运动信息的数量;
基于运动信息候选列表确定当前块的最佳运动矢量;
基于最佳运动矢量对当前块进行编码。
其中,将空域运动信息添加到运动信息候选列表,直至运动信息候选列表中空域运动信息的数量达到第一预设值,包括:
若对当前块的相邻块扫描完毕后,添加到运动信息候选列表的空域运动信息的数量小于第一预设值;
将运动信息候选列表中已有的运动信息缩放后的运动信息添加到运动信息候选列表;和/或,将运动信息候选列表中已有的运动信息的平均值添加到运动信息候选列表,以使运动信息候选列表中空域运动信息的数量达到第一预设值。
为解决上述问题,本申请提供一种视频编码方法,该方法包括:
将运动信息候选列表中的两个运动信息作为当前块的两个基础运动信息;
利用多个偏移矢量对基础运动信息进行偏移,以得到当前块的高级运动矢量表达的偏移运动信息;
将偏移运动信息添加到运动信息候选列表中;
基于运动信息候选列表确定当前块的最佳运动矢量;
基于最佳运动矢量对当前块进行编码。
其中,将运动信息候选列表中的两个运动信息作为当前块的两个基础运动信息,包括:
将运动信息候选列表中预设位置的两个运动信息作为当前块的两个基础运动信息;或,
从运动信息候选列表中任意选择两个运动信息,将选择的两个运动信息作为当前块的两个基础运动信息;
其中,两个运动信息为空域运动信息、时域运动信息和/或基于历史的运动信息。
为解决上述问题,本申请提供一种视频编码方法,该方法包括:
构建当前块的运动信息候选列表;
基于运动信息候选列表确定当前块的最佳运动矢量;
基于最佳运动矢量确定每个运动矢量精度的代价;
选择代价最小的运动矢量精度作为当前块的运动矢量精度;
对当前块的运动矢量精度的索引和最佳运动矢量的索引进行编码。
为解决上述问题,本申请提供一种视频编码方法,该方法包括:
构建当前块的运动信息候选列表;
从运动信息候选列表中选出率失真优化候选项;
按照预设的不同运动矢量精度并基于率失真优化候选项进行运动补偿,得到多个预测值;
选择代价最小的预测值对应的运动矢量和运动矢量精度作为当前块的最佳运动矢量和运动矢量精度;
对当前块的运动矢量精度的索引和最佳运动矢量的索引进行编码。
为解决上述问题,本申请提供一种视频编码方法,该方法包括:
构建当前块的运动信息候选列表;
从运动信息候选列表中粗选出率失真优化候选项;
对候选项对应的预测值进行帧间滤波操作;
在候选项的帧间滤波的结果满足预设要求时,将滤波候选项加入到率失真优化候选项中,直至率失真优化候选项中滤波候选项的数量达到第二预设值或候选项已遍历完毕;
将率失真优化候选项中代价最小的候选项作为当前块的最佳运动矢量;
基于最佳运动矢量对当前块进行编码。
为解决上述问题,本申请提供一种视频编码方法,当前块所属图像帧为双向预测编码块,该方法包括:
构建当前块的运动信息候选列表;
从运动信息候选列表中粗选出率失真优化候选项;
对候选项对应的预测值进行双向梯度修正;
基于双向梯度修正后的预测值确定候选项的代价;
将率失真优化候选项中代价最小的候选项作为当前块的最佳运动矢量;
基于最佳运动矢量对当前块进行编码。
为解决上述问题,本申请提供一种视频编解码系统,该视频编解码系统包括存储器和处理器;存储器中存储有计算机程序,处理器用于执行计算机程序以实现上述方法的步骤。
为解决上述问题,本申请提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法中的步骤。
本申请的方法是:将当前块代价值最小的角度运动信息添加到当前块的运动信息候选列表,即可以增加较优的角度运动信息到运动信息候选列表中,又可以减少角度运动信息在merge候选列表中占据的位置个数,可以增加基于历史的运动矢量候选列表进入运动信息候选列表的机会,使得可添加更多的HMVP候选项到运动信息候选列表中,基于运动信息候选列表中更丰富的运动信息确定的最佳运动矢量更加准确,可以提高视频编码的准确度,并且减小了HMVP候选项的索引值大小,在最佳运动矢量为HMVP候选项时,可以减少对最佳运动矢量索引值编码所带来的开销。
附图说明
为了更清楚地说明本申请实施方式中的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施方式,对本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请视频编码方法第一实施方法的流程示意图;
图2是本申请视频编码方法中时域运动信息填充时当前块的相邻块的示意图;
图3是本申请视频编码方法中空域运动信息获取时当前块的相邻块的示意图;
图4是本申请视频编码方法中角度运动信息获取时当前块的相邻块的示意图;
图5是本申请视频编码方法中角度运动信息获取时当前块的相邻块查重的示意图;
图6是本申请视频编码方法中角度运动信息获取时当前块的不可用相邻块运动信息填充的示意图;
图7是本申请视频编码方法中获取基于历史的运动信息的示意图;
图8是本申请视频编码方法中获取高级运动矢量表达的运动信息时当前块的相邻块的示意图;
图9是本申请视频编码方法中获取前向时域运动信息一实现场景的示意图;
图10是本申请视频编码方法中获取前向时域运动信息另一实现场景的示意图;
图11是本申请视频编码方法中获取前向时域运动信息又一实现场景的示意图;
图12是本申请视频编码方法中获取前向时域运动信息再一实现场景的示意图;
图13是本申请视频编码方法中获取后向时域运动信息一实现场景的示意图;
图14是本申请视频编码方法中获取后向时域运动信息另一实现场景的示意图;
图15是本申请视频编码方法中获取后向时域运动信息又一实现场景的示意图;
图16是本申请视频编码方法中获取后向时域运动信息再一实现场景的示意图;
图17是本申请视频编码方法中构建运动信息候选列表的流程示意图;
图18是本申请视频编码方法第二实施方法的流程示意图;
图19是本申请视频编码方法第三实施方法的流程示意图;
图20是本申请视频编码方法第四实施方法的流程示意图;
图21是本申请视频编码方法中帧间预测值滤波的示意图;
图22是本申请视频编码方法第五实施方法的流程示意图;
图23是本申请视频编码方法中双向梯度修正的示意图;
图24是本申请视频编解码系统的结构示意图;
图25是本申请计算机存储介质一实施方式的结构示意图。
具体实施方式
为使本领域的技术人员更好地理解本申请的技术方案,下面结合附图和具体实施方式对本申请所提供的视频编码方法及其相关装置做进一步详细描述。
本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本文中提及“实施方式”意味着,结合实施方式描述的特定特征、结构或特性可以包含在本申请的至少一个实施方式中。在说明书中的各个位置出现该短语并不一定均是指相同的实施方式,也不是与其它实施方式互斥的独立的或备选的实施方式。本领域技术人员显式地和隐式地理解的是,在不冲突的情况下,本文所描述的实施方式可以与其它实施方式相结合。
本申请的视频编码方法可以先获取当前块可用的运动信息并构建运动信息候选列表;然后利用RDO过程选出当前块的最佳运动矢量;接着基于当前块的最佳运动矢量对当前块进行编码,这样通过运动信息候选列表中丰富的运动信息确定当前块的最佳运动矢量,以提高了视频编码的准确度。
如图1所示,图1为本申请视频编码方法第一实施方式的流程示意图,本申请的视频编码方法可以包括以下步骤。
S11:构建当前块的运动信息候选列表。
可以先构建出当前块的运动信息候选列表,以便基于当前块的运动信息候选列表确定当前块的最佳运动矢量。
其中,运动信息可以由运动矢量、参考帧索引及运动方向三个要素构成。
运动信息候选列表可以包括时域运动信息、空域运动信息、角度运动信息、基于历史的运动信息和高级运动矢量表达的运动信息的至少四种运动信息。
可选地,在步骤S11中,可以按照指定顺序将当前块的时域运动信息、空域运动信息、角度运动信息、基于历史的运动信息和高级运动矢量表达的运动信息添加到运动信息候选列表中,以构建出当前块的运动信息候选列表。
其中,指定顺序可以为时域运动信息-空域运动信息-角度运动信息-基于历史的运动信息-高级运动矢量表达的运动信息、空域运动信息-时域运动信息-角度运动信息-基于历史的运动信息-高级运动矢量表达的运动信息、空域运动信息-角度运动信息-时域运动信息-基于历史的运动信息-高级运动矢量表达的运动信息或除上述顺序以外的任意顺序。
添加运动信息的过程中,如出现双向运动信息,将填充L0和L1方向对应的运动矢量及参考帧索引信息,单向运动信息只填充对应方向(L0或L1)的运动矢量及参考帧索引信息,另一个方向(L1或L0)则填充0运动矢量并标记参考帧索引为-1(不可用)。
下述内容将详细介绍如何将时域运动信息、空域运动信息、角度运动信息、基于历史的运动信息和高级运动矢量表达的运动信息添加到运动信息候选列表中。
(1)时域运动信息
时域运动信息的获取方式主要包括:先确定当前块的时域参考帧;继而基于当前块的位置在时域参考帧上找到当前块的同位块;接着按照距离关系对同位块的运动信息进行缩放得到当前块的时域运动信息。通过上述获取方法获取到当前块的时域运动信息后,可以将获取到的时域运动信息添加到运动信息候选列表中。
若当前块所属图像帧为单向预测编码帧,则当前块只有一个参考帧列表。例如P帧中的当前块只有前向参考帧列表(list0)这一个参考帧列表。若当前块所属图像帧为双向预测编码帧,例如为B帧,则当前块有前向参考帧列表(list0)和后向参考帧列表(list1)这两个参考帧列表。
可选地,可以将当前块的一参考帧列表中的一参考帧作为当前块的时域参考帧。优选地,可以将当前块的指定参考帧列表中索引最小的参考帧作为当前块的时域参考帧。例如对于B帧而言,指定参考帧列表可为后向参考帧列表。
确定当前块的时域参考帧后,可以基于当前块的左上角的像素位置通过计算确定时域参考帧上的同位块。然后按照距离关系对同位块的运动信息进行缩放,以得到当前块的时域运动信息。
在对同位块的运动信息进行缩放之前,可以先判断该同位块的参考帧是否存在。例如,对P块而言,其同位块可以来自list0(前向参考帧列表)中的第一帧,判断同位块是否存在有效的前向参考帧,若存在,则同位块的参考帧存在,否则不存在。又例如,对B块而言,其同位块可来自list1(后向参考帧列表)中的第一帧,判断同位块是否存在有效的前向参考帧,若存在,则同位块的参考帧存在,否则不存在。
若同位块的参考帧存在,假设当前块所属图像帧与其同位块所属图像帧的图像顺序号的差值为t1,同位块所属图像帧与同位块的参考帧的图像顺序号的差值为t2,同位块的运动矢量记为mv_col_f,则缩放后的运动矢量为scalemv=mv_col_f*t1/t2,即当前块的时域运动矢量为mv_col_f*t1/t2。对P帧而言,t1为当前帧与其前向参考帧(list0中的第一帧)之间的距离。对B帧而言,若求取的是前向mv,则t1为当前帧与其前向参考帧(list0中的第一帧)之间的距离,若求取的是后向mv,则t1为当前帧与其后向参考帧(list1中的第一帧)之间的距离。
若同位块的参考帧不存在,且当前块所属图像帧为单向预测编码帧,当前块的时域运动矢量设置为(0,0)。
若同位块的参考帧不存在,且当前块所属图像帧为双向预测编码帧,则当前块的时域mv由当前块的相邻块通过一系列分析得到。当前块的相邻块可包括图2中的a,b,c这三个块。
如图2所示,判断实线块a、b和c是否可用(已编码帧间块),若实线块c不可用,则判断虚线块c是否可用,则:
a.若相邻块a、b和c都不可用,则(0,0)就是mv;
b.若a、b和c这三个相邻块中只有1个相邻块可用,则把该可用的相邻块的mv进行缩放后添加到运动信息候选列表。相邻块的运动矢量的缩放方式与同位块的运动矢量缩放方法相同;
c.若a、b和c这三个相邻块中只有2个相邻块可用,则先将相邻块的mv进行缩放后,进行如下操作:
i).先将两两相邻块的mv相减并取绝对值,用mva、mvb、mvc分别代表a、b和c这三个相邻块的mv缩放后得到的值,其中不可用的相邻块的mv为0,
mva_ext=abs(mva-mvb);
mvb_ext=abs(mvb-mvc);
mvc_ext=abs(mvc-mva);
ii).获取三个差值mva_ext,mvb_ext,mvc_ext中的最小值,若最小值为mva_ext,则将(mva+mvb)/2作为当前块的时域运动矢量添加到运动信息候选列表;若最小值为mvb_ext,则将(mvb+mvc)/2作为当前块的时域运动矢量添加到运动信息候选列表;若最小值为mvc_ext,则将(mvc+mva)/2作为当前块的时域运动矢量添加到运动信息候选列表。
可以理解的是,差值最小说明其相关性极强,也就是把相关性强的所有mv进行加权。
d.若三个相邻块的MV都可用,则将相邻块的MV缩放后,按照下述规则进行填充:
若3个相邻块的mv之间不同向(指的是运动矢量的分量x或者y),则:
i).若(mva<0&&mvb>0&&mvc>0)||(mva>0&&mvb<0&&mvc<0),则将(mvb+mvc)/2作为当前块的时域运动矢量添加到运动信息候选列表;
ii).若(mvb<0&&mva>0&&mvc>0)||(mvb>0&&mva<0&&mvc<0),则将(mvc+mva)/2作为当前块的时域运动矢量添加到运动信息候选列表;
iii).若(mvc<0&&mva>0&&mvb>0)||(mvc>0&&mva<0&&mvb<0),则将(mva+mvb)/2作为当前块的时域运动矢量添加到运动信息候选列表;
若三个相邻块mv之间同向,则与“c”方法一致。
时域运动信息的获取方式主要包括:先确定当前块的时域参考帧;继而基于当前块的位置在时域参考帧上找到当前块的同位块;接着按照距离关系对同位块的运动信息进行缩放得到当前块的时域运动信息。通过上述获取方法获取到当前块的时域运动信息后,可以将获取到的时域运动信息添加到运动信息候选列表中。
具体可通过上述方法向运动信息候选列表添加第一预定数量个时域运动信息。第一预定数量可以大于或等于2,例如为2、3或5等。在其他实现方式中,第一预定数量也可为1。可以理解的是,运动信息候选列表中第一预定数量个时域运动信息可以是不重复的,即第一预定数量个时域运动信息中任意两个时域运动信息的参考帧索引或运动矢量不相同。
(2)空域运动信息(SMVP)
在添加空域运动信息时,可以按照F,G,C,A,B,D的顺序对图3所示的当前块的相邻块进行扫描,将可用且满足要求的相邻块的运动信息添加到运动信息候选列表。其中相邻块“可用”的条件包括:不为帧内编码模式且该块已编码。
其中,运动信息候选列表中空域运动信息的数量不受限制,例如可以为0、1、2或3等,或者还可以大于或等于4。
空域运动信息添加过程可如下所示:
(1)将运动信息候选列表中空域运动信息位置的运动信息进行初始化。具体地,运动矢量初始化为0,双向运动信息两个方向的参考帧索引(ref_idx)均初始化为0,单向运动信息其中一个ref_idx为0,另一个ref_idx=-1。
(2)扫描过程中寻找L0方向的运动信息,如找到,将其添加到候选列表对应位置,记录L0_motion_found,即添加L0方向的运动信息的同时记录添加到运动信息候选列表中L0方向的运动信息的数量,直至运动信息候选列表中L0方向的运动信息的数量达到第一值或者已扫描所有相邻块。
(3)扫描过程中寻找L1方向的运动信息,如找到,将其添加到候选列表对应位置,记录L1_motion_found,即添加L1方向的运动信息的同时记录添加到运动信息候选列表中L1方向的运动信息的数量,直至运动信息候选列表中L1方向的运动信息的数量达到第二值或者已扫描所有相邻块。
(4)扫描过程中寻找第四预定数量个BI运动信息,如找到,将其添加到候选列表对应位置,记BI_motion_found,即添加BI的运动信息的同时记录添加到运动信息候选列表中BI的运动信息的数量,直至运动信息候选列表中BI的运动信息的数量达到第三值或者已扫描所有相邻块。
上述第一值、第二值和第三值可以为预定值,在此不做限定。例如,第一值、第二值和第三值均可为1。又例如,第一值为3,第二值和第三值均可为0。
将所有相邻块扫描结束后,
(1)如果BI_motion_found=0且L0_motion_found=1及L1_motion_found=1,则将找到的L0和L1合并成BI运动信息。
(2)如果L0_motion_found=0且BI_motion_found=1,则从找到的最后一个BI运动信息中拆分出L0方向的运动信息;同理如果L1_motion_found=0且BI_motion_found=1,则从找到的最后一个BI运动信息中拆分出L1方向的运动信息。
对于双向预测编码帧而言,运动信息候选列表具有3种空域运动信息,具体可包括L0方向运动信息,L1方向运动信息,BI(双向)运动信息。这三种运动信息在merge列表中的顺序可为BI-L1方向-L0方向,当然不限于此,例如还可为L0方向-L1方向-BI、L0方向-BI-L1方向、L1方向-L0方向-BI、L1方向-BI-L0方向或BI-L0方向-L1方向等。
对于单向预测编码帧而言,运动信息候选列表具有一种空域运动信息,可以为L0方向的运动信息或L1方向的运动信息。
在一应用场景中,运动信息候选列表中每一种空域运动信息的数量为一个时,P帧在编码最终的skip_index(运动信息索引值)时,可以采用skip_index-2的方式进行编码,以减少比特消耗。
在另一应用场景中,单向预测编码帧的当前块的运动信息候选列表中空域运动信息的数量可与双向预测编码帧的当前块的运动信息候选列表中空域运动信息的数量相同,这样可以直接采用skip_index的方式进行编码,而不再采用skip_index-2的方式进行编码,实现与双向预测编码帧编码过程的统一,也通过增加运动信息的个数,提高了空域或时域运动信息被选中的概率。
具体地,添加时域运动信息的方法可以包括:对当前块的相邻块进行扫描,以确定当前块的空域运动信息;将空域运动信息添加到运动信息候选列表,直至运动信息候选列表中空域运动信息的数量达到第一预设值;其中,第一预设值为双向预测编码帧中编码块的运动信息候选列表中空域运动信息的数量。
另外,若对当前块的相邻块扫描完毕后,添加到运动信息候选列表的空域运动信息的数量小于第一预设值,可以通过多种运动信息填充,以使单向预测编码帧的当前块的运动信息候选列表中空域运动信息的数量可与双向预测编码帧的当前块的运动信息候选列表中空域运动信息的数量相同。例如,可以将零运动矢量添加到运动信息候选列表,或将最新添加到运动信息候选列表的运动信息重复添加到运动信息候选列表,或将运动信息候选列表中已有的运动矢量的平均值添加到运动信息候选列表,或将运动信息候选列表中运动矢量缩放后的值添加到运动信息候选列表,或将当前块的其他时域运动信息添加到运动信息候选列表。可以理解的是,当前块的其他时域运动信息与运动信息候选列表中的时域运动信息不重复,可以从当前块的其他时域参考帧获取当前块的其他时域运动信息,例如可以从参考帧列表上索引值为1的参考帧获取当前块的其他时域运动信息;还可以判断该参考帧的前向参考帧是否存在。
示例性地,假设双向预测编码帧中编码块的运动信息候选列表中空域运动信息的数量为3,这样对P帧的当前块进行运动信息候选列表的构建时,也可以向当前块的运动信息候选列表中添加3个空域运动信息。
具体地的添加过程可如下述内容所示:
首先可将运动信息候选列表中3个空域运动信息均初始化为前向运动信息,例如可以初始化3个运动矢量为(0,0),(0,1),(1,0),L0方向的参考帧索引初始化为0,L1方向初始化为-1。
如图3所示,按照F,G,C,A,B,D的顺序对当前块的相邻块进行扫描,如果相邻块可用,先将其运动信息与列表中已存在的运动信息进行查重,如果不重复,则将该运动信息添加到候选列表中,直到加满3个空域运动信息或扫描结束为止。当扫描结束仍然不满3个时,可以考虑其他时域运动信息,比如参考帧列表中index为1的参考帧是否存在,以及该参考帧的前向参考帧是否存在等。
在一应用场景中,当列表未填满时,采用零mv或者最后一个运动信息进行填充,可考虑在该种情况下改变填充方式,利用已填充运动矢量的平均值或某个运动矢量缩放等方式进行填充。也可以考虑其他时域运动信息,比如参考帧列表中index为1的参考帧是否存在,以及该参考帧的前向参考帧是否存在等。
(3)MVAP的运动信息
MVAP也称为角度mvp,其获取主要包含三个步骤:获取当前待编码块的可用邻域块mv,将其拷贝至邻域块mv列表;查重操作,判断可用的角度方向;进行邻域块mv列表填充。
下面对各个步骤进行详细介绍:
1)获取当前待编码块的可用邻域块mv,将其拷贝至如图4所示的邻域块mv列表
首先,初始化所有邻域块的前向mv和后向mv为(0,0)且各自的参考帧索引全部为无效;
其次,判断邻域块的可用性,若是帧间已编码块,则可用。
最后,将邻域块的mv及其参考帧索引拷贝至邻域块mv列表的对应位置。
2)查重操作,判断可用的角度方向
如图5所示,对于不同角度,查重的对象如下所示:
水平向下:A2-B1,B1-B2,进行查重。
水平:A1-A2进行查重。
水平向上:A1-C1,C1-D1进行查重。
垂直:D1-D2进行查重。
垂直向右:D2-E1,E1-E2进行查重。
对于同一个角度而言,其查重的方法如下:
a.若两个块中只要存在一个块是帧内块,则是重复的,否则进入b;
b.判断两个块的运动信息是否相同。
若相应角度通过查重,则该角度为可用的角度方向。
3)进行邻域块mv列表进行填充
该步骤是对邻域块mv列表中的不可用块(非帧间已编码块)进行填充。
如图6所示,对于当前不可用块,采用临近已编码块进行填充(起始点是按照顺时针方向),若起始点第一个块也不可用,则填充(0,0)及其index为0的参考帧索引。
(4)HMVP运动信息
倒序遍历HMVP列表中的运动信息并查重,如与前述运动信息不同(不包括MVAP运动信息),则将其添加到候选列表中,直至列表已满或者遍历结束。其中,HMVP列表长度为8。
HMVP运动信息是为了让当前块进行视频编码时能用到先前已用帧间模式编码的已编码块的运动信息,提高预测准确度。HMVP列表的更新如图7所示。
在一实现方式中,例如指定顺序为时域运动信息-空域运动信息-角度运动信息-基于历史的运动信息-高级运动矢量表达的运动信息、空域运动信息-时域运动信息-角度运动信息-基于历史的运动信息-高级运动矢量表达的运动信息或空域运动信息-角度运动信息-时域运动信息-基于历史的运动信息-高级运动矢量表达的运动信息等时,添加完HMVP运动信息之后,记merge运动信息候选列表长度为num_cands,当该长度仍然不满12时,将最后一个运动信息重复添加直到候选列表长度为12。
(5)UMVE运动信息
该技术可通过对图8中当前块的相邻块按照A1->B0->B1->A0->B2的扫描顺序得到的前两个运动信息作为UMVE的基础运动信息,当可获取的运动信息少于2个时,将Skip或Direct的时域运动信息添加进来。
当然不限用过上述方法确定高级运动矢量表达的两个基础运动信息,例如还可将运动信息候选列表中的两个运动信息作为当前块的两个基础运动信息,可以减少遍历当前块的相邻块以确定基础运动信息的过程,减少运算复杂度,提高帧间预测效率。
在第一实现方式中,可将运动信息候选列表中预设位置的两个运动信息作为当前块的两个基础运动信息,例如,可选索引为1和6的运动信息作为当前块的两个基础运动信息。
在第二实现方式中,可从运动信息候选列表中任意选择两个运动信息,将选择的两个运动信息作为当前块的两个基础运动信息。在这种情况下,在步骤S13中需要对选择的两个运动信息的索引进行编码并传输给解码端,以让解码端知晓使用哪两个位置的运动信息作为当前块的两个基础运动信息。
可以理解的是,在上述确定两个基础运动信息的两个实现方式中,两个基础运动信息可以来源于运动信息候选列表中空域运动信息、时域运动信息和/或基于历史的运动信息。
利用表1所示的偏移距离列表和表2所示的偏移方向列表对上述的2个基础运动信息进行偏移,以得到多个偏移运动信息,将得到的多个偏移运动信息添加到运动信息候选列表中。基础运动信息的偏移被限制水平方向和竖直方向。
表1偏移距离列表
Figure BDA0002676374680000171
表2偏移方向列表
Figure BDA0002676374680000172
如此一来,每个基础运动信息对应有20个偏移运动信息,两个运动信息共产生40个偏移运动信息。
通过上述方法构建的运动信息候选列表中一般具有最多52个运动信息。例如,运动信息候选列表可具有1个时域运动信息、3个空域运动信息、MVAP的运动信息、HMVP的运动信息和40个UMVE的偏移运动信息。其中,MVAP的运动信息+HMVP的运动信息候选项一般不会超过8个。UMVE的40个运动信息是对UMVE列表中两个基本运动信息按照不同的偏移幅值存储之后的运动信息。
S12:基于运动信息候选列表确定当前块的最佳运动矢量。
在构建出当前块的运动信息候选列表后,可以基于运动信息候选列表确定当前块的最佳运动矢量。
具体地,在一实现方式中,可以通过计算运动信息候选列表中每一运动信息的代价,将代价最小的运动信息中的运动矢量作为当前块的最佳运动矢量。
在另一实现方式中,可以先计算出运动信息候选列表中每一运动信息的粗代价,将粗代价最小的多个运动信息作为当前块的RDO候选项;然后计算出每个RDO候选项的代价,将代价最小的候选项中的运动矢量作为当前块的最佳运动矢量。
可以理解的是,上述的代价可以是运动信息比较精准的代价,例如为SSE代价;而粗代价可为运动信息比较粗略的代价,例如可为SATD代价。
S13:基于当前块的最佳运动矢量对当前块进行编码。
在本实现方式中,可以基于当前块的时域运动信息、空域运动信息、角度运动信息、基于历史的运动信息和高级运动矢量表达的运动信息的至少四种运动信息构建出当前块的运动信息候选列表,可以增加运动信息候选列表中运动信息的种类,这样通过运动信息候选列表中更多种类的运动信息确定的当前块的最佳运动矢量可以更加准确,提高了预测的准确性,从而提高了视频编码的准确度。
进一步地,步骤S11中前向时域运动信息的添加方法,可以包括:从当前块的前向参考帧列表确定当前帧的前向时域参考帧;在前向时域参考帧或后向时域参考帧上确定当前块的同位块,其中,后向时域参考帧是从当前块的后向参考帧列表获取到的;基于当前块所属图像帧的图像顺序号与前向时域参考帧的图像顺序号的差值对同位块的运动信息进行缩放,以得到当前块的前向时域运动信息。其中,同位块的运动信息可为同位块的前向运动信息或后向运动信息。
在第一实现场景中,如图9所示,在同位块来自于前向时域参考帧,且同位块的运动矢量为同位块的前向运动矢量时,当前块的前向运动矢量=mv_col_f*t1/t2,其中,t1为当前块所属图像帧的图像顺序号与前向时域参考帧的图像顺序号的差值,t2为前向时域参考帧的图像顺序号和同位块的前向参考帧的图像顺序号的差值。
在第二实现场景中,如图10所示,在同位块来自于前向时域参考帧,且同位块的运动矢量为同位块的后向运动矢量时,当前块的前向运动矢量=mv_col_f*t1/t2,其中,t1为当前块所属图像帧的图像顺序号与前向时域参考帧的图像顺序号的差值,t2为前向时域参考帧的图像顺序号和同位块的后向参考帧的图像顺序号的差值。
在第三实现场景中,如图11所示,在同位块来自于后向时域参考帧,且同位块的运动矢量为同位块的前向运动矢量时,当前块的前向运动矢量=mv_col_f*t1/t2,其中,t1为当前块所属图像帧的图像顺序号与前向时域参考帧的图像顺序号的差值,t2为后向时域参考帧的图像顺序号和同位块的前向参考帧的图像顺序号的差值。
在第四实现场景中,如图12所示,在同位块来自于后向时域参考帧,且同位块的运动矢量为同位块的后向运动矢量时,当前块的前向运动矢量=mv_col_f*t1/t2,其中,t1为当前块所属图像帧的图像顺序号与前向时域参考帧的图像顺序号的差值,t2为后向时域参考帧的图像顺序号和同位块的后向参考帧的图像顺序号的差值。
进一步地,步骤S11中后向时域运动信息的添加方法,可以包括:从当前块的后向参考帧列表确定当前帧的后向时域参考帧;在前向时域参考帧或后向时域参考帧上确定当前块的同位块,其中,后向时域参考帧是从当前块的后向参考帧列表获取到的;基于当前块所属图像帧的图像顺序号与后向时域参考帧的图像顺序号的差值对同位块的运动信息进行缩放,以得到当前块的后向时域运动信息;将后向时域运动信息添加到运动信息候选列表。其中,同位块的运动信息可为同位块的前向运动信息或后向运动信息。
在第五实现场景中,如图13所示,在同位块来自于后向时域参考帧,且同位块的运动矢量为同位块的前向运动矢量时,当前块的前向运动矢量=mv_col_f*t1/t2,其中,t1为当前块所属图像帧的图像顺序号与后向时域参考帧的图像顺序号的差值,t2为后向时域参考帧的图像顺序号和同位块的前向参考帧的图像顺序号的差值。
在第六实现场景中,如图14所示,在同位块来自于后向时域参考帧,且同位块的运动矢量为同位块的后向运动矢量时,当前块的前向运动矢量=mv_col_f*t1/t2,其中,t1为当前块所属图像帧的图像顺序号与后向时域参考帧的图像顺序号的差值,t2为后向时域参考帧的图像顺序号和同位块的后向参考帧的图像顺序号的差值。
在第七实现场景中,如图15所示,在同位块来自于前向时域参考帧,且同位块的运动矢量为同位块的前向运动矢量时,当前块的前向运动矢量=mv_col_f*t1/t2,其中,t1为当前块所属图像帧的图像顺序号与后向时域参考帧的图像顺序号的差值,t2为前向时域参考帧的图像顺序号和同位块的前向参考帧的图像顺序号的差值。
在第八实现场景中,如图16所示,在同位块来自于前向时域参考帧,且同位块的运动矢量为同位块的后向运动矢量时,当前块的前向运动矢量=mv_col_f*t1/t2,其中,t1为当前块所属图像帧的图像顺序号与后向时域参考帧的图像顺序号的差值,t2为前向时域参考帧的图像顺序号和同位块的后向参考帧的图像顺序号的差值。
一般上,在获取双向预测编码帧中当前块的时域运动信息时,先在后向参考帧列表的第一帧上确定当前块的同位块,并判断该同位块是否存在有效的前向参考帧,若存在,则利用同位块的前向mv缩放得到当前块的前向或后向时域mv。该方法并未考虑前向同位块,而对前向时域mv而言,利用前向同位块的mv进行缩放可能更合理。
在一实现方式中,本申请可以在求取当前块的前向时域mv时,利用前向同位块的mv进行缩放,在求取后向时域mv时,利用后向同位块的mv。即可以利用第一实现场景、第二实现场景、第五实现场景或第六实现场景的方法获取当前块的时域运动信息。
在另一实现方式中,在求取当前块的前向时域mv和后向时域mv时,不对同位块的前或后方向进行限制,则可以将前向后向任意组合。此时可以利用第一实现场景-第八实现场景中任意实现场景的方法获取当前块的时域运动信息,这样同时考虑L0方向和L1方向的同位块的方法,有利于获取更精准的时域运动信息。
另外,步骤S11中添加空域运动信息时,可以对确定的空域运动信息进行查重,将通过查重的空域运动信息添加到运动信息候选列表,以避免运动信息候选列表中出现重复的运动信息导致运动信息候选列表中可用的运动信息数量变少,即保证了运动信息候选列表中可用的运动信息数量,可以保证帧间预测的准确性。具体地,如图17所示,步骤S11可包括以下步骤。
S111:按照预定顺序对当前块的相邻块进行扫描,以确定当前块的空域运动信息。
具体可参见步骤S11中空域运动信息获取的相关内容,在此不做赘述。
当扫描结束后仍然没有找到L0或BI位置的运动信息,则可以考虑其他的时域运动信息,比如前向或后向参考帧列表(最多有两个参考帧)中index为1的参考帧是否存在,以及该参考帧的前向或后向参考帧是否存在等,将其他的时域运动信息作为添加到运动信息候选列表中的空域运动信息。
S112:对空域运动信息和运动信息候选列表中的运动信息进行查重。
每确定当前块的一个空域运动信息,都可以对确定的一个空域运动信息和运动信息候选列表中的运动信息进行查重,以判断能否将确定的空域运动信息添加到运动信息候选列表中。若通过查重,进入步骤S113;若不通过查重,则返回到步骤S111,以继续按照预定顺序对当前块的相邻块进行扫描,以再次确定当前块的一个空域运动信息,直至所有相邻块已扫描完毕。
在第一实现方式中,可将空域运动信息和已添加到运动信息候选列表的运动信息进行查重。可以理解的是,这边的“已添加到运动信息候选列表的运动信息”可以为指定顺序中在空域运动信息之前且除角度运动信息以外的若干类运动信息。
在第二实现方式中,若确定的空域运动信息为BI运动信息,可将空域运动信息和已添加到运动信息候选列表的运动信息进行查重。若确定的空域运动信息为L0方向的运动信息,除将空域运动信息和已添加到运动信息候选列表的运动信息进行查重以外,还将空域运动信息和L1方向的运动信息进行查重。若确定的空域运动信息为L1方向的运动信息,除将空域运动信息和已添加到运动信息候选列表的运动信息进行查重以外,还将空域运动信息和L0方向的运动信息进行查重。通过本实现方式的查重方法可以避免L0和L1方向的运动信息重复。
在第三实现方式中,若确定的空域运动信息为L1或L0方向的运动信息,除将空域运动信息和已添加到运动信息候选列表的运动信息进行查重以外,还可将空域运动信息和运动信息候选列表中初始化的L1或L0方向的运动信息进行查重,以避免不必要的赋值过程。
在第四实现方式中,若在步骤S111中,对当前块的相邻块扫描结束后,需要从运动信息候选列表中BI运动信息拆出L0或L1方向的运动信息,并将拆出的运动信息作为添加到运动信息候选列表的空域运动信息时;可以在步骤S112中,将拆出的L0或L1方向的运动信息与运动信息候选列表中初始化的L0或L1方向的运动信息进行查重,以避免不必要的赋值过程。除此之外,还可如第二实施方式,若拆出的是L0方向的运动信息,将拆出的L0方向的运动信息和L1方向的运动信息进行查重。若拆出的是L0方向的运动信息,还可将拆出的L1方向的运动信息和L0方向的运动信息进行查重。
可以理解的是,上述查重的实现方式可以相互结合。
S113:若通过查重,将空域运动信息添加到运动信息候选列表中。
通过步骤S112对空域运动信息和运动信息候选列表中运动信息进行查重,若通过查重,可以将空域运动信息添加到运动信息候选列表中。接着若运动信息候选列表中空域运动信息的种类和数量满足要求,则空域运动信息添加完毕,若运动信息候选列表中空域运动信息的种类和数量不满足要求,则返回到步骤S111,继续确认当前块的空域运动信息。
其中,若空域运动信息和运动信息候选列表中一运动信息的参考帧索引和运动矢量完全相同,则不通过查重,反之通过查重。例如,当前块所属图像帧为P帧,判断空域运动信息与时域L0方向的运动信息的参考帧索引和运动矢量是否完全相同,若不相同,则通过查重。又例如,当前块所属图像帧为B帧,可以将空域运动信息的L0与L1两个方向分别与时域运动信息的L0与L1两个方向进行查重,包括查看参考帧索引及运动矢量是否对应相等,若不相同,则通过查重。
可以理解的是,若指定顺序中时域运动信息不是第一个,即在添加时域运动信息之前,已添加其他种类的运动信息到运动信息候选列表时,也可通过与图17类似的方法对时域运动信息进行查重。
一般来说,构建出的运动信息候选列表包含了MVAP可用的所有角度方向的运动信息,但最终选中的如果是MVAP的运动信息,也只可能是其中的一个角度方向,如果选中的不是MVAP的运动信息,对运动信息候选列表的位置来说更是一种浪费,且HMVP是在MVAP之后添加到运动信息候选列表时,对后续加入的HMVP来讲,也是不友好的,使得后续添加的HMVP的skip_index值整体偏大。本申请提出下述两种方案,以解决要编码的HMVP的索引值整体偏大的问题,以减少编码模式索引带来的比特开销。
第一种方案,步骤S13中,若在当前块的最佳运动矢量为基于历史的运动信息时,将最佳运动矢量对应的索引与角度运动信息的数量的差值作为最佳运动矢量的编码索引,对当前块的最佳运动矢量的编码索引进行编码,这样可以减少要编码的HMVP的索引值,减少了编码索引带来的比特开销。另外,还可以在当前块的编码结果中添加标识,该标识用于表示是对当前块的最佳运动矢量的编码索引进行编码,还是对当前块的最佳运动矢量对应的索引进行编码。例如,加入hmvp_flag来表示当前块的HMVP候选项是否要采用较小的模式索引来编码。如果该flag为1,则将HMVP候选项对应的skip_index采用skip_index-mvap_valid_num的方式进行编码,其中mvap_valid_num代表的是MVAP可用的角度方向个数;如果该flag为0,表示HMVP候选项的skip_index采用原方式编码。
第二种方案,可以在步骤S11的角度运动信息添加的过程中,可以只将一个角度运动信息添加到运动信息候选列表中,这样减少MVAP候选项在merge候选列表中占据的位置个数,使得添加更多的HMVP候选项到运动信息候选列表中,即增加HMVP候选项进入候选列表的机会,也减小了HMVP候选项的索引值大小。例如,可以从可用的角度方向的角度运动信息中,任选一个角度运动信息添加到运动信息候选列表中。又例如,可以先计算每组可用的角度运动信息的代价值;然后将代价值最小的角度运动信息添加到当前块的运动信息候选列表中。可以理解的是,这里的角度运动信息的代价值可以是SATD代价、SSE代价或SAD代价等。
上述步骤S11-S13为实现视频编码的基本步骤,即本申请中视频编码方法实施方式均基于上述步骤S11-S13实现。本申请为了提高视频编码的精度和效率,从多个方面提出对视频编码过程进行了优化。
例如图18、图19、图20和图22所示的实施方式,图18所示的实施方式在步骤S12中引入运动矢量精度的确定方法,可以以更优的精度表达运动矢量。图19所示的实施方式在上述步骤S12后引入运动矢量精度的确定方法,可以以更优的精度表达运动矢量。图20所示的实施方式在上述步骤S12中引入帧间预测值滤波的方法,提高预测准确率,提高编码效率。图22所示的实施方式在上述步骤S12中引入双向梯度修正的方法,提高预测准确率,提高编码效率。
以下分别对本申请的四种实施方式进行具体介绍。首先参阅图18,图18是本申请对视频编码方法第二实施方式的流程示意图。本实施方式先从运动信息候选列表粗选出多个RDO候选项,然后按照预设的不同预设矢量精度并基于RDO候选项确定当前块的多个预测值,以代价最小的预测值对应的运动信息和运动矢量精度作为当前块的最佳运动矢量和运动矢量精度,这样可以对于当前块来说,可以以较优的精度表达运动矢量。本实施方式视频编码方法包括以下步骤。
S21:构建当前块的运动信息候选列表。
S22:从运动信息候选列表中选出RDO候选项。
得到当前块的运动信息候选列表后,可以先从运动信息候选列表中粗选出多个RDO候选项,以便后续从多个RDO候选项精选出当前块的最佳运动矢量。
可以从运动信息候选列表选出预定数量个候选项。预定数量可以是预先设置的,也可以是运动信息候选列表中空域运动信息、时域运动信息、角度运动信息和可用的基于历史的运动信息的数量的总和。
具体地,步骤S22,可以包括:计算运动矢量候选列表中每个运动信息的粗代价,然后将粗代价最小的预定数量个运动信息作为RDO候选项。粗代价可以是运动矢量的SATD等代价。
S23:按照预设的不同运动矢量精度并基于RDO候选项进行运动补偿,得到多个预测值。
确定当前块的多个RDO候选项后,可以对每个RDO候选项分别遍历预设的不同运动矢量精度,得到每个RDO候选项的各个预设运动矢量精度对应的预测值,继而可以基于多个RDO候选项的预设的不同运动矢量精度对应的预测值确定当前块的最佳运动矢量和运动矢量精度。
对于每个RDO候选项而言,分别遍历预设的多个运动矢量精度,进行运动补偿,得到该RDO候选项的各个运动矢量精度对应的预测值。
其中,预设的多个运动矢量精度可以包括1/8、1/4、1/2、1、2、4、8等的至少两个。
S24:选择代价最小的预测值对应的运动信息和运动矢量精度作为当前块的最佳运动矢量和运动矢量精度。
得到多个RDO候选项的预设的不同运动矢量精度对应的预测值后,可以选择代价最小的预测值对应的运动信息和运动矢量精度作为当前块的最佳运动矢量和运动矢量精度,不仅可以选用更优的运动矢量精度表达运动矢量,还可以提高准确度,以减少失真。
S25:基于当前块的最佳运动矢量对当前块进行编码。
确定当前块的最佳运动矢量和运动矢量精度后,在步骤S25中,可以对当前块的运动矢量精度的索引和最佳运动矢量的索引进行编码,并传输给解码端,以让解码端知晓。
本申请实施方式从运动信息候选列表粗选出多个RDO候选项,然后按照预设的不同预设矢量精度并基于RDO候选项确定当前块的多个预测值,以代价最小的预测值对应的运动信息和运动矢量精度作为当前块的最佳运动矢量和运动矢量精度,这样可以对于当前块来说,可以以较优的精度表达运动矢量,可以提高运动信息预测的准确度。
请参阅图19,图19是本申请对视频编码方法第三实施方式的流程示意图。本实施方式还可基于预设的不同运动矢量精度确定当前块的运动矢量精度,然后在对当前块的运动矢量精度的索引进行编码,这样可以对于当前块来说,可以以较优的精度表达运动矢量。本实施方式视频编码方法包括以下步骤。
S31:构建当前块的运动信息候选列表。
S32:基于运动信息候选列表确定当前块的最佳运动矢量。
S33:基于最佳运动矢量确定每个运动矢量精度的代价。
确定当前块的最佳运动矢量后,可以对最佳运动矢量分别遍历预设的不同运动矢量精度,得到最佳运动矢量的各个预设运动矢量精度对应的代价,继而可以基于最佳运动矢量的预设的不同运动矢量精度对应的代价确定当前块的运动矢量精度。
对于当前块的最佳运动矢量而言,分别遍历预设的多个运动矢量精度,得到最佳运动矢量的各个运动矢量精度对应的代价。
其中,预设的多个运动矢量精度可以包括1/16、1/8、1/4、1/2、1、2、4、8、16等的至少两个。
S34:选择代价最小的运动矢量精度作为当前块的运动矢量精度。
得到最佳运动矢量的各个预设运动矢量精度对应的代价后,可以选择代价最小的运动矢量精度作为当前块的运动矢量精度,不仅可以选用更优的运动矢量精度表达运动矢量,还可以提高准确度,以减少失真。
S35:基于当前块的最佳运动矢量对当前块进行编码。
确定当前块的运动矢量精度后,在步骤S35中,可以对当前块的运动矢量精度的索引和最佳运动矢量的索引进行编码,并传输给解码端,以让解码端知晓。
在本实施方式中,确定当前块的最佳运动矢量后,可以基于最佳运动矢量分别遍历预设的不同运动矢量精度,以确定当前块的运动矢量精度,然后在对当前块的运动矢量精度的索引进行编码,这样可以对于当前块来说,可以以较优的精度表达运动矢量,可以提高运动信息预测的准确度,并且可以减少确定运动矢量精度的运算复杂度。
请参阅图20,图20是本申请对视频编码方法第四实施方式的流程示意图。本实施方式从运动信息候选列表粗选出RDO候选项后,可以对候选项对应的预测值进行帧间滤波操作,以在滤波结果满足要求时,将滤波候选项加入到RDO候选项中,这样可以选择更优的方式得到预测值。其中,本实施方式可以是在direct模式下或skip模式下进行的。本实施方式视频编码方法包括以下步骤。
S41:构建当前块的运动信息候选列表。
S42:从运动信息候选列表中粗选出RDO候选项。
S43:对候选项对应的预测值进行帧间滤波操作。
在从运动信息候选列表中粗选出RDO候选项后,可以对候选项对应的预测值进行帧间滤波操作,以便后续判断候选项的帧间滤波结果是否满足预设要求。
帧间预测滤波是为了消除帧间预测导致的预测块与周围像素之间的空域不连续性。帧间滤波是在帧间预测过程与重建过程之间进行。在码流中传送一个帧间预测滤波标识,标识当前块是否使用帧间预测滤波。如果当前块的帧间预测滤波标识使用帧间预测滤波,则解码器在运动补偿得到帧间预测块之后使用相同的滤波方法对于帧间预测块进行滤波,否则直接调用重建过程叠加残差。可以通过任意帧间滤波模式对候选项对应的预测值进行帧间滤波。例如,可以通过interpf(inter predict filter)或enhanced interpf这2种帧间滤波模式对候选项对应的预测值进行帧间滤波。下面对这2种模式分别进行介绍。
如图21所示,interpf帧间预测滤波模式首先采用当前像素的正上方、正左方、左下方和右上方的4个相邻重建参考像素构建帧内预测值,然后采用该帧内预测值与帧间预测值加权计算获取最终的帧间预测值:
具体分为两个过程:
首先使用如下公式得到帧内预测块pred_Q:
Pred_Q(x,y)=(Pred_V(x,y)+Pred_H(x,y)+1)>>2;
Pred_V(x,y)=((h-1-y)*Recon(x,-1)+(y+1)*Recon(-1,h)+(h>>1))>>log2(h);
Pred_H(x,y)=((w-1-x)*Recon(-1,y)+(x+1)*Recon(w,-1)+(w>>1))>>log2(w);
其中w和h为当前块的宽度和高度,x和y当前块内的相对坐标,Recon(x,y)为周围已重建像素值。
基于帧间预测块Pred_inter和帧内预测块pred_Q进行5:3加权,得到最终预测块。
Pred(x,y)=(Pred_inter(x,y)*5+Pred_Q(x,y)*3+4)>>3;
其中Pred_inter(x,y)为帧间预测得到的预测像素值。
增强的帧间预测滤波(enhanced interpf)应用于帧间预测,可以更有效去除运动补偿后的噪声及不连续。
在帧间预测滤波中新增一种3抽头滤波器滤波方式,仍使用一个帧间预测滤波标识表示是否使用帧间预测滤波,接着需要再一个索引标识表示选择的滤波方式,以便于解码端解码滤波标识和滤波方式索引确定最终的滤波过程。
具体滤波方法如表3所示:
表3滤波计算方法
Figure BDA0002676374680000281
其中:
P(x,y)为滤波前(x,y)点的预测值和P’(x,y)为滤波后(x,y)点的预测值;
f(x)和f(y)均为查表4得到的滤波系数,P(x,-1)为正上方的参考像素,P(-1,y)为正左侧的参考像素。
帧间预测滤波方式索引句法及含义如表5。
表4滤波系数表
块宽/高 滤波系数(按照行数/列数递减)
4 24,6,2,0
8 44,25,14,8,4,2,1,1
16 40,27,19,13,9,6,4,3,2,1
32 36,27,21,16,12,9,7,5,4,3
64 52,44,37,31,26,22,18,15,13,11
表5帧间预测滤波句法
Figure BDA0002676374680000282
Figure BDA0002676374680000291
可以理解的是,若步骤S42粗选出的RDO候选项包含高级运动矢量表达的运动信息,则可以不对RDO候选项中高级运动矢量表达的运动信息执行步骤S43和S44,即如果RDO候选项为通过UMVE得到的运动信息,则不会进行帧间预测值滤波。
S44:在候选项的帧间滤波的结果满足预设要求时,将滤波候选项加入到RDO候选项中,直至RDO候选项中滤波候选项的数量达到第二预设值或候选项已遍历完毕。
对候选项对应的预测值进行帧间滤波操作后,可以判断候选项的帧间滤波结果是否满足预设要求,若满足预设要求,将滤波候选项加入到RDO候选项中,即对RDO候选项进行扩充,直至RDO候选项中滤波候选项的数量达到第二预设值或候选项已遍历完毕。其中,第二预设值可以是预先配置的任意值,例如可为6或8等。
其中,预设要求可以是:候选项帧间滤波后的代价小于候选项滤波前的代价的预设倍数。预设倍数可以是预先配置的任意值,例如可为1.25倍。
另外,通过步骤S44确定扩充的滤波候选项后,可以对RDO中的滤波候选项进行筛选。例如,若某个滤波候选项的代价大于最小滤波候选项代价的1.5倍,可以将该某个滤波候选项从RDO候选项中剔除。
S45:将RDO候选项中代价最小的候选项作为当前块的最佳运动矢量。
可以理解的是,RDO候选项的代价可以是计算的RDO候选项的SSE代价。计算RDO候选项代价的过程中,可能会涉及运动补偿、残差计算、变换量化、反变换反量化、构建重建图像和计算SSE代价等过程。
S46:基于当前块的最佳运动矢量对当前块进行编码。
本实施方式从运动信息候选列表粗选出RDO候选项后,可以对候选项对应的预测值进行帧间滤波操作,以在滤波结果满足要求时,将滤波候选项加入到RDO候选项中,这样可以选择更优的方式得到预测值,可以提高预测值的准确性,提高了视频编码的准确性。
请参阅图22,图22是本申请对视频编码方法第五实施方式的流程示意图。本实施方式还可对候选项对应的预测值进行双向梯度修正,以提高预测值的准确性。可以理解的是,当前块所属图像帧为双向预测编码帧时,可以对当前块启用本实施方式的视频编码方法。本实施方式视频编码方法包括以下步骤。
S51:构建当前块的运动信息候选列表。
S52:从运动信息候选列表中粗选出RDO候选项。
S53:对候选项对应的预测值进行双向梯度修正。
在从运动信息候选列表中粗选出RDO候选项后,可以对候选项对应的预测值进行双向梯度修正,以提高预测值的准确率。
另外,在本实施方式中,需注意传双向梯度校正相关句法:是否开启BGC和选择BGC下哪种方式进行预测获取预测值。
在双向帧间预测中,对于运动补偿完后的两个参考预测块,为得到当前块预测值,通常会进行双向光流(Bi-directional optical flow,BIO)或者普通的加权平均操作得到当前预测块。但是由于两个参考预测块对当前预测块的像素值来说,其误差是随机差异化的,无法确定是其两个预测块的平均值,故采用双向预测梯度值修正(Bi-directionalGradient Correction,BGC)的方式对当前块的预测值进行修正。
预测值修正计算主要有三种方式,具体公式如下所示:
Figure BDA0002676374680000301
其中:pred0表示第一参考帧方向预测值;pred1表示第二参考帧方向预测值;predBI表示第一参考帧和第二参考帧方向预测值的平均值,计算公式为(pred0+pred1)>>1;k表示修正强度,可设为固定值3;IbgFlag为0表示不进行梯度修正,为1表示进行梯度修正;IbgIdx为0表示前向梯度修正,为1表示后向梯度修正;pred为修正后的预测值。
通过比较这三种计算方式的代价,选取最佳的一种模式进行编码,同时把标记该模式的句法打入码流。具体示意图如图23所示,其中,V2为predBI;V1为predBI+(pred1-pred0)>>k;V3为predBI+(pred0–pred1)>>k。
S54:基于双向梯度修正后的预测值确定候选项的代价。
在一实现方式中,可以对所有候选项采用双向梯度修正后的预测值确定每个候选项的代价。
当然,若对所有RDO候选项均采用双向梯度修正后的预测值进行RDO的话,可能开销会很大,此时,可以从所有RDO候选项中选择其中一项或几项执行步骤S53和S54,对其余候选项不进行梯度修正,直接计算其余候选项的代价,从而降低计算复杂度。
可以理解的是,RDO候选项的代价可以是计算的RDO候选项的SSE代价。计算RDO候选项代价的过程中,可能会涉及运动补偿、残差计算、变换量化、反变换反量化、构建重建图像并计算SSE代价等过程。
S55:将RDO候选项中代价最小的候选项作为当前块的最佳运动矢量。
S56:基于当前块的最佳运动矢量对当前块进行编码。
本实施方式从运动信息候选列表粗选出RDO候选项后,会对候选项对应的预测值进行双向梯度修正,可以得到当前块的更加准确的预测值,从而提高预测值的准确性,从而提高编码的准确率。
请参阅图24,图24是本申请视频编解码系统一实施方式的结构示意图。本视频编解码系统10包括相互耦接的存储器11和处理器12,存储器11用于存储程序指令,处理器12用于执行程序指令以实现上述任一实施方式的方法。
上述视频编码方法的逻辑过程以计算机程序呈现,在计算机程序方面,若其作为独立的软件产品销售或使用时,其可存储在计算机存储介质中,因而本申请提出一种计算机存储介质。请参阅图25,图25是本申请计算机存储介质一实施方式的结构示意图,本实施方式计算机存储介质20中存储有计算机程序21,计算机程序21被处理器执行时实现上述视频编码方法中的步骤。
该计算机存储介质20具体可以为U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory,)、磁碟或者光盘等可以存储计算机程序的介质,或者也可以为存储有该计算机程序的服务器,该服务器可将存储的计算机程序发送给其他设备运行,或者也可以自运行该存储的计算机程序。该计算机存储介质20从物理实体上来看,可以为多个实体的组合,例如多个服务器、服务器加存储器、或存储器加移动硬盘等多种组合方式。
以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (37)

1.一种视频编码方法,其特征在于,所述方法包括:
计算每组可用的所述角度运动信息的代价值;
将代价值最小的角度运动信息添加到当前块的所述运动信息候选列表中;
将基于历史的运动信息添加到所述运动信息候选列表中;
基于所述运动信息候选列表确定当前块的最佳运动矢量;
基于当前块的所述最佳运动矢量对当前块进行编码。
2.根据权利要求1所述的视频编码方法,其特征在于,
所述基于当前块的最佳运动矢量对当前块进行编码,包括:
在当前块的所述最佳运动矢量为所述基于历史的运动信息时,将所述最佳运动矢量对应的索引与所述角度运动信息的个数的差值作为所述最佳运动矢量的编码索引,对当前块的所述最佳运动矢量的编码索引进行编码;
在当前块的编码结果中添加标识,所述标识表示对当前块的最佳运动矢量的编码索引进行编码。
3.根据权利要求1所述的视频编码方法,其特征在于,
所述基于所述运动信息候选列表确定当前块的最佳运动矢量,之前包括:
对当前块的相邻块进行扫描,以确定当前块的空域运动信息;
对所述空域运动信息和所述运动信息候选列表中的运动信息进行查重;
若通过查重,将所述空域运动信息添加到所述运动信息候选列表中。
4.根据权利要求3所述的视频编码方法,其特征在于,
所述对所述空域运动信息和所述运动信息候选列表中的运动信息进行查重,包括:
对所述空域运动信息和所述运动信息候选列表中的时域运动信息进行查重;
若通过查重,将所述空域运动信息添加到所述运动信息候选列表中。
5.根据权利要求3所述的视频编码方法,其特征在于,
所述对所述空域运动信息和所述运动信息候选列表中的运动信息进行查重,包括:
所述空域运动信息为前向运动信息时,对所述空域运动信息和所述运动信息候选列表中的时域运动信息和后向空域运动信息进行查重;或,
所述空域运动信息为后向运动信息时,对所述空域运动信息和所述运动信息候选列表中的时域运动信息和前向空域运动信息进行查重。
6.根据权利要求3所述的视频编码方法,其特征在于,
所述对当前块的相邻块进行扫描,以确定当前块的空域运动信息,包括:对当前块的相邻块扫描结束后,从所述运动信息候选列表中双向运动信息拆出前向或后向运动信息;
所述对所述空域运动信息和所述运动信息候选列表中的运动信息进行查重,包括:对拆出的所述前向或后向运动信息与所述运动信息候选列表中初始化的前向或后向运动信息进行查重。
7.根据权利要求1所述的视频编码方法,其特征在于,所述当前块所属图像帧为单向预测编码帧,
所述基于所述运动信息候选列表确定当前块的最佳运动矢量,之前包括:
对当前块的相邻块进行扫描,以确定当前块的所述空域运动信息;
将所述空域运动信息添加到所述运动信息候选列表,直至所述运动信息候选列表中所述空域运动信息的数量达到第一预设值;
其中,所述第一预设值为双向预测编码帧中编码块的所述运动信息候选列表中所述空域运动信息的数量。
8.根据权利要求7所述的视频编码方法,其特征在于,
所述将所述空域运动信息添加到所述运动信息候选列表,直至所述运动信息候选列表中空域运动信息的数量达到第一预设值,包括:
若对当前块的相邻块扫描完毕后,添加到所述运动信息候选列表的空域运动信息的数量小于第一预设值;
将所述运动信息候选列表中已有的运动信息缩放后的运动信息添加到所述运动信息候选列表;和/或,将所述运动信息候选列表中已有的运动信息的平均值添加到所述运动信息候选列表,以使所述运动信息候选列表中空域运动信息的数量达到第一预设值。
9.根据权利要求1所述的视频编码方法,其特征在于,
所述基于所述运动信息候选列表确定当前块的最佳运动矢量,之前包括:
将所述运动信息候选列表中的两个运动信息作为当前块的两个基础运动信息;
利用多个偏移矢量对所述基础运动信息进行偏移,以得到当前块的高级运动矢量表达的偏移运动信息;
将所述偏移运动信息添加到所述运动信息候选列表中。
10.根据权利要求9所述的视频编码方法,其特征在于,
所述将所述运动信息候选列表中的两个运动信息作为当前块的两个基础运动信息,包括:
将所述运动信息候选列表中预设位置的两个运动信息作为当前块的两个基础运动信息;或,
从所述运动信息候选列表中任意选择两个运动信息,将选择的两个运动信息作为当前块的两个基础运动信息;
其中,所述两个运动信息为所述空域运动信息、所述时域运动信息和/或所述基于历史的运动信息。
11.根据权利要求1所述的视频编码方法,其特征在于,所述基于所述运动信息候选列表确定当前块的最佳运动矢量,之后包括:
基于所述最佳运动矢量确定每个运动矢量精度的代价;
选择代价最小的所述运动矢量精度作为所述当前块的运动矢量精度;
所述基于当前块的最佳运动矢量对当前块进行编码,包括:对当前块的所述运动矢量精度的索引和所述最佳运动矢量的索引进行编码。
12.根据权利要求1所述的视频编码方法,其特征在于,所述基于所述运动矢量候选列表确定当前块的最佳运动矢量,包括:
从所述运动信息候选列表中选出率失真优化候选项;
按照预设的不同运动矢量精度并基于所述率失真优化候选项进行运动补偿,得到多个预测值;
选择代价最小的所述预测值对应的运动信息和运动矢量精度作为所述当前块的最佳运动矢量和运动矢量精度;
所述基于当前块的最佳运动矢量对当前块进行编码,包括:对当前块的所述运动矢量精度的索引和所述最佳运动矢量的索引进行编码。
13.根据权利要求1所述的视频编码方法,其特征在于,
所述基于所述运动信息候选列表确定当前块的最佳运动矢量,之前包括:将当前块的时域运动信息和空域运动信息添加到所述运动信息候选列表中,
其中,所述运动信息候选列表包括至少2个时域运动信息;和/或,
所述运动信息候选列表包括至少4个空域运动信息。
14.根据权利要求1所述的视频编码方法,其特征在于,
所述基于所述运动信息候选列表确定当前块的最佳运动矢量,之前包括:
按照指定顺序将当前块的时域运动信息、空域运动信息、角度运动信息、基于历史的运动信息和高级运动矢量表达的运动信息添加到所述运动信息候选列表中;
所述指定顺序为除时域运动信息-空域运动信息-角度运动信息-基于历史的运动信息-高级运动矢量表达的运动信息以外的任意顺序。
15.根据权利要求1所述的视频编码方法,其特征在于,
所述基于所述运动信息候选列表确定当前块的最佳运动矢量,之前包括:
按照预设顺序将各个方向的空域运动信息添加到所述运动信息候选列表;
所述预设顺序包括前向-后向-双向、前向-双向-后向、后向-前向-双向、后向-双向-前向、双向-前向-后向。
16.根据权利要求1所述的视频编码方法,其特征在于,
所述基于所述运动信息候选列表确定当前块的最佳运动矢量,之前包括:
从当前块的前向参考帧列表确定当前帧的前向时域参考帧;
在所述前向时域参考帧或所述后向时域参考帧上确定当前块的同位块,其中,所述后向时域参考帧是从当前块的后向参考帧列表获取到的;
基于所述当前块所属图像帧的图像顺序号与前向时域参考帧的图像顺序号的差值对所述同位块的运动信息进行缩放,以得到当前块的前向时域运动信息;
将所述前向时域运动信息添加到所述运动信息候选列表。
17.根据权利要求1所述的视频编码方法,其特征在于,
所述基于所述运动信息候选列表确定当前块的最佳运动矢量,之前包括:
从当前块的后向参考帧列表确定当前帧的后向时域参考帧;
在所述前向时域参考帧或所述后向时域参考帧上确定当前块的同位块,其中,所述前向时域参考帧是从当前块的前向参考帧列表获取到的;
基于所述当前块所属图像帧的图像顺序号与后向时域参考帧的图像顺序号的差值对所述同位块的运动信息进行缩放,以得到当前块的后向时域运动信息;
将所述后向时域运动信息添加到所述运动信息候选列表。
18.根据权利要求1所述的视频编码方法,其特征在于,
所述基于运动信息候选列表确定当前块的最佳运动矢量,包括:
从所述运动信息候选列表中粗选出率失真优化候选项;
对所述候选项对应的预测值进行帧间滤波操作;
在所述候选项的帧间滤波的结果满足预设要求时,将滤波候选项加入到率失真优化候选项中,直至率失真优化候选项中滤波候选项的数量达到第二预设值或所述候选项已遍历完毕;
将所述率失真优化候选项中代价最小的候选项作为当前块的最佳运动矢量。
19.根据权利要求1所述的视频编码方法,其特征在于,
所述当前块所属图像帧为双向预测编码块;
从所述运动信息候选列表中粗选出率失真优化候选项;
对所述候选项对应的预测值进行双向梯度修正;
基于所述双向梯度修正后的预测值确定所述候选项的代价;
将所述率失真优化候选项中代价最小的候选项作为当前块的最佳运动矢量。
20.根据权利要求1所述的视频编码方法,其特征在于,所述基于所述运动信息候选列表确定当前块的最佳运动矢量,包括:
计算运动信息候选列表中至少部分运动信息的代价;
将代价最小的运动信息的运动矢量作为当前块的最佳运动矢量。
21.根据权利要求20所述的视频编码方法,其特征在于,所述计算运动信息候选列表中至少部分运动信息的代价,包括:
计算出运动信息候选列表中每一运动信息的粗代价;
将粗代价最小的多个运动信息作为当前块的候选项;
计算出每个候选项的代价;
所述将代价最小的运动信息的运动矢量作为当前块的最佳运动矢量,包括:将代价最小的候选项的运动矢量作为当前块的最佳运动矢量。
22.一种视频编码方法,其特征在于,所述方法包括:
将当前块的角度运动信息和基于历史的运动信息添加到运动信息候选列表中;
基于所述运动信息候选列表确定当前块的最佳运动矢量;
若当前块的最佳运动矢量来自于所述基于历史的运动信息时,将所述最佳运动矢量对应的索引与所述角度运动信息的个数的差值作为所述最佳运动矢量的编码索引,对当前块的所述最佳运动矢量的编码索引进行编码。
23.根据权利要求22所述的视频编码方法,其特征在于,所述方法还包括:
在当前块的编码结果中添加标识,所述标识表示对当前块的最佳运动矢量的编码索引进行编码。
24.一种视频编码方法,其特征在于,所述方法包括:
对当前块的相邻块进行扫描,以确定当前块的空域运动信息;
对所述空域运动信息和所述运动信息候选列表中的运动信息进行查重;
若通过查重,将所述空域运动信息添加到所述运动信息候选列表中;
基于所述运动信息候选列表确定当前块的最佳运动矢量;
基于所述最佳运动矢量对当前块进行编码。
25.根据权利要求24所述的视频编码方法,其特征在于,
所述对所述空域运动信息和所述运动信息候选列表中的运动信息进行查重,包括:
对所述空域运动信息和所述运动信息候选列表中的时域运动信息进行查重;
若通过查重,将所述空域运动信息添加到所述运动信息候选列表中。
26.根据权利要求24所述的视频编码方法,其特征在于,
所述对所述空域运动信息和所述运动信息候选列表中的运动信息进行查重,包括:
所述空域运动信息为前向运动信息时,对所述空域运动信息和所述运动信息候选列表中的时域运动信息和后向空域运动信息进行查重;或,
所述空域运动信息为后向运动信息时,对所述空域运动信息和所述运动信息候选列表中的时域运动信息和前向空域运动信息进行查重。
27.根据权利要求24所述的视频编码方法,其特征在于,
所述对当前块的相邻块进行扫描,以确定当前块的空域运动信息,包括:对当前块的相邻块扫描结束后,从所述运动信息候选列表中双向运动信息拆出前向或后向运动信息;
所述对所述空域运动信息和所述运动信息候选列表中的运动信息进行查重,包括:对拆出的所述前向或后向运动信息与所述运动信息候选列表中初始化的前向或后向运动信息进行查重。
28.一种视频编码方法,其特征在于,所述当前块所属图像帧为单向预测编码帧,所述方法包括:
对当前块的相邻块进行扫描,以确定当前块的所述空域运动信息;
将所述空域运动信息添加到所述运动信息候选列表,直至所述运动信息候选列表中所述空域运动信息的数量达到第一预设值;其中,所述第一预设值为双向预测编码帧中编码块的所述运动信息候选列表中所述空域运动信息的数量;
基于所述运动信息候选列表确定当前块的最佳运动矢量;
基于所述最佳运动矢量对当前块进行编码。
29.根据权利要求28所述的视频编码方法,其特征在于,
所述将所述空域运动信息添加到所述运动信息候选列表,直至所述运动信息候选列表中空域运动信息的数量达到第一预设值,包括:
若对当前块的相邻块扫描完毕后,添加到所述运动信息候选列表的空域运动信息的数量小于第一预设值;
将所述运动信息候选列表中已有的运动信息缩放后的运动信息添加到所述运动信息候选列表;和/或,将所述运动信息候选列表中已有的运动信息的平均值添加到所述运动信息候选列表,以使所述运动信息候选列表中空域运动信息的数量达到第一预设值。
30.一种视频编码方法,其特征在于,所述方法包括:
将所述运动信息候选列表中的两个运动信息作为当前块的两个基础运动信息;
利用多个偏移矢量对所述基础运动信息进行偏移,以得到当前块的高级运动矢量表达的偏移运动信息;
将所述偏移运动信息添加到所述运动信息候选列表中;
基于所述运动信息候选列表确定当前块的最佳运动矢量;
基于所述最佳运动矢量对当前块进行编码。
31.根据权利要求30所述的视频编码方法,其特征在于,
所述将所述运动信息候选列表中的两个运动信息作为当前块的两个基础运动信息,包括:
将所述运动信息候选列表中预设位置的两个运动信息作为当前块的两个基础运动信息;或,
从所述运动信息候选列表中任意选择两个运动信息,将选择的两个运动信息作为当前块的两个基础运动信息;
其中,所述两个运动信息为所述空域运动信息、所述时域运动信息和/或所述基于历史的运动信息。
32.一种视频编码方法,其特征在于,所述方法包括:
构建当前块的运动信息候选列表;
基于所述运动信息候选列表确定当前块的最佳运动矢量;
基于所述最佳运动矢量确定每个运动矢量精度的代价;
选择代价最小的所述运动矢量精度作为所述当前块的运动矢量精度;
对当前块的所述运动矢量精度的索引和所述最佳运动矢量的索引进行编码。
33.一种视频编码方法,其特征在于,所述方法包括:
构建当前块的运动信息候选列表;
从所述运动信息候选列表中选出率失真优化候选项;
按照预设的不同运动矢量精度并基于所述率失真优化候选项进行运动补偿,得到多个预测值;
选择代价最小的所述预测值对应的运动矢量和运动矢量精度作为所述当前块的最佳运动矢量和运动矢量精度;
对当前块的所述运动矢量精度的索引和所述最佳运动矢量的索引进行编码。
34.一种视频编码方法,其特征在于,所述方法包括:
构建当前块的运动信息候选列表;
从所述运动信息候选列表中粗选出率失真优化候选项;
对所述候选项对应的预测值进行帧间滤波操作;
在所述候选项的帧间滤波的结果满足预设要求时,将滤波候选项加入到率失真优化候选项中,直至率失真优化候选项中滤波候选项的数量达到第二预设值或所述候选项已遍历完毕;
将所述率失真优化候选项中代价最小的候选项作为当前块的最佳运动矢量;
基于所述最佳运动矢量对当前块进行编码。
35.一种视频编码方法,其特征在于,所述当前块所属图像帧为双向预测编码块,所述方法包括:
构建当前块的运动信息候选列表;
从所述运动信息候选列表中粗选出率失真优化候选项;
对所述候选项对应的预测值进行双向梯度修正;
基于所述双向梯度修正后的预测值确定所述候选项的代价;
将所述率失真优化候选项中代价最小的候选项作为当前块的最佳运动矢量;
基于所述最佳运动矢量对当前块进行编码。
36.一种视频编解码系统,其特征在于,所述视频编解码系统包括存储器和处理器;所述存储器中存储有计算机程序,所述处理器用于执行所述计算机程序以实现如权利要求1-35中任一项所述方法的步骤。
37.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-35中任一项所述方法的步骤。
CN202010949286.3A 2020-09-10 2020-09-10 视频编码方法及其相关装置 Active CN112291565B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010949286.3A CN112291565B (zh) 2020-09-10 2020-09-10 视频编码方法及其相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010949286.3A CN112291565B (zh) 2020-09-10 2020-09-10 视频编码方法及其相关装置

Publications (2)

Publication Number Publication Date
CN112291565A true CN112291565A (zh) 2021-01-29
CN112291565B CN112291565B (zh) 2021-09-14

Family

ID=74420416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010949286.3A Active CN112291565B (zh) 2020-09-10 2020-09-10 视频编码方法及其相关装置

Country Status (1)

Country Link
CN (1) CN112291565B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113709456A (zh) * 2021-06-30 2021-11-26 杭州海康威视数字技术股份有限公司 解码方法、装置、设备及机器可读存储介质
CN113727118A (zh) * 2021-03-19 2021-11-30 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置、设备及机器可读存储介质
WO2023093863A1 (en) * 2021-11-26 2023-06-01 Mediatek Singapore Pte. Ltd. Local illumination compensation with coded parameters

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0699324B1 (en) * 1994-03-18 2000-01-26 ROLLS-ROYCE plc A method and apparatus for identifying the orientation of a dot matrix code marking of an article
CN106131548A (zh) * 2016-07-28 2016-11-16 同观科技(深圳)有限公司 一种帧内预测模式的选择方法及装置
CN109104609A (zh) * 2018-09-12 2018-12-28 浙江工业大学 一种融合hevc压缩域和像素域的镜头边界检测方法
CA3068393A1 (en) * 2017-06-30 2019-01-03 Sharp Kabushiki Kaisha Systems and methods for geometry-adaptive block partitioning of a picture into video blocks for video coding
CN110166777A (zh) * 2018-07-04 2019-08-23 腾讯科技(深圳)有限公司 编码方法、装置和视频数据编码设备
CN110213588A (zh) * 2019-06-25 2019-09-06 浙江大华技术股份有限公司 空域候选运动信息获取方法、装置、编解码器及存储装置
CN110312130A (zh) * 2019-06-25 2019-10-08 浙江大华技术股份有限公司 基于三角模式的帧间预测、视频编码方法及设备
CN110460859A (zh) * 2019-08-21 2019-11-15 浙江大华技术股份有限公司 历史运动矢量列表的使用方法、编解码器及存储装置
CN110519600A (zh) * 2019-08-21 2019-11-29 浙江大华技术股份有限公司 帧内帧间联合预测方法、装置、编解码器及存储装置
CN110545424A (zh) * 2019-08-21 2019-12-06 浙江大华技术股份有限公司 基于mmvd模式的帧间预测方法、视频编码方法及相关装置、设备
CN110636311A (zh) * 2019-09-18 2019-12-31 浙江大华技术股份有限公司 运动矢量的获取方法及相关预测方法、装置
CN110944192A (zh) * 2018-09-23 2020-03-31 北京字节跳动网络技术有限公司 运动候选列表的构建
CN111050182A (zh) * 2019-12-27 2020-04-21 浙江大华技术股份有限公司 运动矢量的预测方法、视频编码方法及相关设备、装置
CN111093075A (zh) * 2018-10-24 2020-05-01 北京字节跳动网络技术有限公司 子块运动矢量预测中基于空域邻近块的运动候选推导
CN111213377A (zh) * 2017-10-18 2020-05-29 三星电子株式会社 用于视频解码的方法和设备以及用于视频编码的方法和设备
CN111263144A (zh) * 2018-11-30 2020-06-09 杭州海康威视数字技术股份有限公司 一种运动信息确定方法及其设备
CN111385569A (zh) * 2018-12-28 2020-07-07 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0699324B1 (en) * 1994-03-18 2000-01-26 ROLLS-ROYCE plc A method and apparatus for identifying the orientation of a dot matrix code marking of an article
CN106131548A (zh) * 2016-07-28 2016-11-16 同观科技(深圳)有限公司 一种帧内预测模式的选择方法及装置
CA3068393A1 (en) * 2017-06-30 2019-01-03 Sharp Kabushiki Kaisha Systems and methods for geometry-adaptive block partitioning of a picture into video blocks for video coding
CN111213377A (zh) * 2017-10-18 2020-05-29 三星电子株式会社 用于视频解码的方法和设备以及用于视频编码的方法和设备
CN110166777A (zh) * 2018-07-04 2019-08-23 腾讯科技(深圳)有限公司 编码方法、装置和视频数据编码设备
CN109104609A (zh) * 2018-09-12 2018-12-28 浙江工业大学 一种融合hevc压缩域和像素域的镜头边界检测方法
CN110944192A (zh) * 2018-09-23 2020-03-31 北京字节跳动网络技术有限公司 运动候选列表的构建
CN111093075A (zh) * 2018-10-24 2020-05-01 北京字节跳动网络技术有限公司 子块运动矢量预测中基于空域邻近块的运动候选推导
CN111263144A (zh) * 2018-11-30 2020-06-09 杭州海康威视数字技术股份有限公司 一种运动信息确定方法及其设备
CN111385569A (zh) * 2018-12-28 2020-07-07 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN110213588A (zh) * 2019-06-25 2019-09-06 浙江大华技术股份有限公司 空域候选运动信息获取方法、装置、编解码器及存储装置
CN110312130A (zh) * 2019-06-25 2019-10-08 浙江大华技术股份有限公司 基于三角模式的帧间预测、视频编码方法及设备
CN110519600A (zh) * 2019-08-21 2019-11-29 浙江大华技术股份有限公司 帧内帧间联合预测方法、装置、编解码器及存储装置
CN110545424A (zh) * 2019-08-21 2019-12-06 浙江大华技术股份有限公司 基于mmvd模式的帧间预测方法、视频编码方法及相关装置、设备
CN110460859A (zh) * 2019-08-21 2019-11-15 浙江大华技术股份有限公司 历史运动矢量列表的使用方法、编解码器及存储装置
CN110636311A (zh) * 2019-09-18 2019-12-31 浙江大华技术股份有限公司 运动矢量的获取方法及相关预测方法、装置
CN111050182A (zh) * 2019-12-27 2020-04-21 浙江大华技术股份有限公司 运动矢量的预测方法、视频编码方法及相关设备、装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHANGXIN WANG: "key techniques of High Efficiency Video Coding standard and its extension", 《2014 9TH IEEE CONFERENCE ON INDUSTRIAL ELECTRONICS AND APPLICATIONS》 *
靳文强: "软件定义无线网络多连接转发方法的实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113727118A (zh) * 2021-03-19 2021-11-30 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置、设备及机器可读存储介质
CN114640856A (zh) * 2021-03-19 2022-06-17 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备
CN113727118B (zh) * 2021-03-19 2022-12-23 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置、设备及机器可读存储介质
CN114640856B (zh) * 2021-03-19 2022-12-23 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备
CN113709456A (zh) * 2021-06-30 2021-11-26 杭州海康威视数字技术股份有限公司 解码方法、装置、设备及机器可读存储介质
CN113794877A (zh) * 2021-06-30 2021-12-14 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置、设备及机器可读存储介质
CN114650418A (zh) * 2021-06-30 2022-06-21 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备
CN113794877B (zh) * 2021-06-30 2022-11-25 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置、设备及机器可读存储介质
CN113709456B (zh) * 2021-06-30 2022-11-25 杭州海康威视数字技术股份有限公司 解码方法、装置、设备及机器可读存储介质
CN114650418B (zh) * 2021-06-30 2023-01-24 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备
TWI806650B (zh) * 2021-06-30 2023-06-21 大陸商杭州海康威視數字技術股份有限公司 解碼方法、編碼方法、裝置、設備及存儲介質
WO2023093863A1 (en) * 2021-11-26 2023-06-01 Mediatek Singapore Pte. Ltd. Local illumination compensation with coded parameters

Also Published As

Publication number Publication date
CN112291565B (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
US11956462B2 (en) Video processing methods and apparatuses for sub-block motion compensation in video coding systems
CN110786012B (zh) 用于图像运动补偿的方法和装置
US11190795B2 (en) Method and an apparatus for processing a video signal
KR102344430B1 (ko) 다중 참조 예측을 위한 움직임 벡터 개선
TWI720532B (zh) 在視訊編解碼系統中視訊處理的方法以及裝置
CN113039801B (zh) 用运动矢量差候选构建Merge
US20210058637A1 (en) Efficient affine merge motion vector derivation
CN112291565B (zh) 视频编码方法及其相关装置
US10412406B2 (en) Method and apparatus for deriving temporal motion vector prediction
TW201904284A (zh) 用於視訊編解碼的子預測單元時間運動向量預測
CN110521205A (zh) 用于视频编解码的子预测单元时间运动向量预测
JP2020526066A (ja) 動き補償のための複数の予測子候補
CN114449288A (zh) 视频编码的样式基础的运动向量推导之方法及装置
US8462849B2 (en) Reference picture selection for sub-pixel motion estimation
CN111818342B (zh) 帧间预测方法及预测装置
CN115396677A (zh) 用于视频编解码的对称性双向预测模式
CN113302916A (zh) 具有cu级别权重的双向预测的插值
CN115442619A (zh) 用于解码端运动矢量修正的基于误差面的子像素精确修正方法
CN113796084A (zh) 运动矢量和预测样点细化
US11470345B2 (en) Method and apparatus for encoding/decoding a video signal, and a recording medium storing a bitstream
US20230412793A1 (en) Inter-prediction on non-dyadic blocks
CN112040242A (zh) 基于高级运动矢量表达的帧间预测方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant