CN117061753A - 预测帧间编码的运动矢量的方法和装置 - Google Patents

预测帧间编码的运动矢量的方法和装置 Download PDF

Info

Publication number
CN117061753A
CN117061753A CN202310980300.XA CN202310980300A CN117061753A CN 117061753 A CN117061753 A CN 117061753A CN 202310980300 A CN202310980300 A CN 202310980300A CN 117061753 A CN117061753 A CN 117061753A
Authority
CN
China
Prior art keywords
motion vector
current
vectors
neighboring
motion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310980300.XA
Other languages
English (en)
Inventor
邹箭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202310980300.XA priority Critical patent/CN117061753A/zh
Publication of CN117061753A publication Critical patent/CN117061753A/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/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/147Data rate or code amount at the encoder output according to 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/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/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/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence

Abstract

本公开提供了预测帧间编码的运动矢量的方法和装置,涉及人工智能领域,具体涉及云计算、视频编解码、媒体云技术,可应用在智能云场景下。具体实现方案为:获取第一运动矢量集合和第二运动矢量集合;若有效的相邻PU的数量大于等于预设数量,则将第二运动矢量集合按PU的位置划分成至少一个运动矢量子集合;分别计算第一运动矢量集合与每个运动矢量子集合的相关性,得到每个相邻PU的优先级;按照优先级由高到低的顺序依次基于每个相邻PU的运动矢量计算率失真,直到计算出小于预定阈值的率失真时停止计算;将计算出小于预定阈值的率失真时使用的相邻PU的运动矢量确定为当前PU的运动矢量。该实施方式提高了帧间编码速度。

Description

预测帧间编码的运动矢量的方法和装置
技术领域
本公开涉及人工智能领域,具体涉及云计算、视频编解码、媒体云技术,可应用在智能云场景下。
背景技术
HEVC(High Efficiency Video Coding,高效率视频编码)是新一代的视频编码压缩标准,与前一代H.264/AVC标准相比,在同等清晰度下,可以节省将近50%的码率。今后它可以广泛应用于与视频压缩相关的领域,比如直播、点播等。它主要由预测、变换、量化、环路滤波、熵编码等主要技术组成。其中,预测是编码器的一个重要模块,它分为帧内预测和帧间预测。帧内预测,是指利用同一帧图像中已编码的图像块的重构像素值,按一定的方式来进行待编码像素块的预测的方法。帧间预测,是指利用已编码的前向或后向参考帧中的像素块来进行待编码像素块的预测的方法,其中,帧间预测会采用逐块匹配的方式,来获取参考帧中的最佳匹配块,这个过程被称为运动估计。运动估计过程将会输出该匹配块相对当前待编码的图像块的位移信息,被称作运动矢量,一般用x和y方向上的两个矢量值来表示。实验证实,运动估计过程将占用巨大的运算量,是编转码中耗时最大的部分。除了运动估计之外,HEVC还采用了运动矢量的预测技术,也就是merge MV(合并运动矢量)技术,它可以利用已经编码的相邻块的mv来预测当前待编码块的mv,这一技术可以丰富HEVC的帧间预测的编码模式。merge MV技术需要多次执行率失真计算才能确定最佳的merge MV,因此运算量较大,导致编码速度慢。
发明内容
本公开提供了一种预测帧间编码的运动矢量的方法、装置、设备、存储介质以及计算机程序产品。
根据本公开的第一方面,提供了一种预测帧间编码的运动矢量的方法,包括:获取第一运动矢量集合和第二运动矢量集合,其中,所述第一运动矢量集合包括当前PU(prediction unit,预测单元)的运动矢量和预定数目的参考帧中与当前PU相同位置的PU的运动矢量,所述第二运动矢量集合包括当前PU的至少一个相邻PU的运动矢量和预定数目的参考帧中与所述至少一个相邻PU相同位置的PU的运动矢量;若有效的相邻PU的数量大于等于预设数量,则将所述第二运动矢量集合按PU的位置划分成至少一个运动矢量子集合;分别计算所述第一运动矢量集合与每个运动矢量子集合的相关性并按照相关性由高到低的顺序确定每个运动矢量子集合对应的相邻PU的优先级;按照优先级由高到低的顺序依次基于每个相邻PU的运动矢量计算率失真,直到计算出小于预定阈值的率失真时停止计算;将计算出小于预定阈值的率失真时使用的相邻PU的运动矢量确定为当前PU的运动矢量。
根据本公开的第二方面,提供了一种预测帧间编码的运动矢量的装置,包括:获取单元,被配置成获取第一运动矢量集合和第二运动矢量集合,其中,所述第一运动矢量集合包括当前PU的运动矢量和预定数目的参考帧中与当前PU相同位置的PU的运动矢量,所述第二运动矢量集合包括当前PU的至少一个相邻PU的运动矢量和预定数目的参考帧中与所述至少一个相邻PU相同位置的PU的运动矢量;划分单元,被配置成若有效的相邻PU的数量大于等于预设数量,则将所述第二运动矢量集合按PU的位置划分成至少一个运动矢量子集合;第一计算单元,被配置成分别计算所述第一运动矢量集合与每个运动矢量子集合的相关性,并按照相关性由高到低的顺序确定每个运动矢量子集合对应的相邻PU的优先级;第二计算单元,被配置成按照优先级由高到低的顺序依次基于每个相邻PU的运动矢量计算率失真,直到计算出小于预定阈值的率失真时停止计算;确定单元,被配置成将计算出小于预定阈值的率失真时使用的相邻PU的运动矢量确定为当前PU的运动矢量。
根据本公开的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面中任一项所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面中任一项所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面中任一项所述的方法。
本公开的实施例提供的预测帧间编码的运动矢量的方法和装置,利用了相邻PU的MV(Motion Vector,运动矢量)来计算当前PU的MV信息。利用多帧中相邻PU相同位置PU的MV与当前PU相同位置PU的MV的相关性,不需要遍历计算所有相邻PU的MV的率失真,只需要从相关性最大的MV中找到率失真小于预定阈值的即可,可以提前结束计算,从而减少运算量,提高编码速度。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本公开的预测帧间编码的运动矢量的方法的一个实施例的流程图;
图3a-3c是根据本公开的预测帧间编码的运动矢量的方法的一个应用场景的示意图;
图4是根据本公开的预测帧间编码的运动矢量的方法的又一个实施例的流程图;
图5是根据本公开的预测帧间编码的运动矢量的装置的一个实施例的结构示意图;
图6是适于用来实现本公开的实施例的电子设备的计算机系统的结构示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了可以应用本公开的预测帧间编码的运动矢量的方法或预测帧间编码的运动矢量的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如视频播放类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏并且支持视频播放的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的视频提供压缩编码功能的后台视频服务器。后台视频服务器可以对接收到的视频编码请求等数据进行分析等处理,并将HEVC编码后的视频反馈给终端设备,再由终端设备解码。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。
需要说明的是,本公开的实施例所提供的预测帧间编码的运动矢量的方法一般由服务器105执行,相应地,预测帧间编码的运动矢量的装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本公开的预测帧间编码的运动矢量的方法的一个实施例的流程200。该预测帧间编码的运动矢量的方法,包括以下步骤:
步骤201,获取第一运动矢量集合和第二运动矢量集合。
在本实施例中,预测帧间编码的运动矢量的方法的执行主体(例如图1所示的服务器)可以获取已知计算出的各帧的不同PU的运动矢量集合。当前PU是待计算MV的PU。计算当前PU的MV需要从上述运动矢量集合中截取第一运动矢量集合和第二运动矢量集合。其中,所述第一运动矢量集合包括当前PU的运动矢量和预定数目的参考帧中与当前PU相同位置的PU的运动矢量,所述第二运动矢量集合包括当前PU的相邻PU的运动矢量和预定数目的参考帧中与所述相邻PU相同位置的PU的运动矢量。
Merge模式是H.265标准中的一种帧间预测模式,它利用了时域和空域相邻MV的信息来计算当前PU的MV信息。它会为当前PU建立一个MV候选列表,其中存在最多5个候选MV(及其对应的参考图像),候选MV中存储的是相邻PU的MV,相邻PU与当前PU(current PU)的位置关系如图3a所示。遍历这5个候选MV,选取率失真代价最小的作为最优MV。若编解码器依照相同的方式建立候选列表,则编码器只需要传输最优MV在候选列表中的索引即可。MV候选列表的构建包含空域和时域两种,而对于B Slice,还包含组合列表的方式。
本实施例中第一运动矢量集合和第二运动矢量集合是空域运动矢量。
当前PU的运动矢量的初始值可以设置为前一个参考帧中相同位置的PU的运动矢量。
步骤202,若有效的相邻PU的数量大于等于预设数量,则将第二运动矢量集合按PU的位置划分成至少一个运动矢量子集合。
在本实施例中,相邻PU中已经计算出mv的PU才是有效的相邻PU,否则为无效的相邻PU。如果有效的相邻PU的数量过少,则不能使用后续步骤计算MV。预设数量可以设置为4个。还可根据网络时延等参数设置预设数量,预设数量越大则运算量越大,需要的编码时间越多。对于网络时延过大的情况尽量设置较小的预设数量。
可将第二运动矢量集合按PU的位置分组,每组对应一个运动矢量子集合。例如,图3a所示,为了容易记忆,分组按照merge MV的空域候选列表的标识,分为A1组、A0组、B1组、B0组,分别保留相邻PU的MV,到不同的分组。
步骤203,分别计算第一运动矢量集合与每个运动矢量子集合的相关性,并按照相关性由高到低的顺序确定每个运动矢量子集合对应的相邻PU的优先级。
在本实施例中,可按照帧的时间顺序依次将各帧对应的第一运动矢量和第二运动矢量进行拼接后转换成一维向量,再通过预定相关系数的算法计算两个一维向量之间的相关性。相关系数可包括皮尔逊(Pearson)相关系数、斯皮尔曼(Spearman)相关系数、肯德尔(Kendall)相关系数等。
每个运动矢量子集合都对应一个相邻PU,将相关性高的运动矢量子集合对应的相邻PU设置高的优先级,例如,A1组对应的运动矢量子集合相关性最高,A1组对应的相邻PU的优先级最高。
步骤204,按照优先级由高到低的顺序依次基于每个相邻PU的运动矢量计算率失真,直到计算出小于预定阈值的率失真时停止计算。
在本实施例中,本方案与现有技术的区别在于,不需要遍历所有运动矢量子集合计算率失真,只要从优先级高(对应于相关性高的运动矢量子集合)PU的运动矢量开始计算率失真,找到小于预定阈值的率失真时停止计算。例如,A1组对应的相邻PU的优先级最高,先基于A1组对应的相邻PU的MV计算率失真,如果得到的率失真小于预定阈值,则不需要再基于A0组、B1组、B0组对应的相邻PU的MV计算率失真。大大减少了运算量。
率失真优化是视频编码的一种关键技术,使用率失真优化选择最优的编码参数是保证视频编码效率的关键。本申请可采用拉格朗日优化方法来计算率失真。拉格朗日优化方法是视频率失真中最常见、最有力的优化工具,因此不再赘述。
步骤205,将计算出小于预定阈值的率失真时使用的相邻PU的运动矢量确定为当前PU的运动矢量。
在本实施例中,计算出小于预定阈值的率失真时使用的相邻PU的运动矢量可看作最佳的merge MV。不需要计算所有相邻PU的MV的率失真,只要找到能小于预定阈值的率失真时使用的相邻PU的运动矢量即可。此时的动作矢量可作为当前PU的运动矢量。后续继续编码时,当前PU的运动矢量可作为其它PU的相邻PU的运动矢量。
完成帧间预测过程,并保存MV,再回到步骤201,直到当前帧中所有PU的计算完成。HEVC编码器的其他过程保持不变,完成变换、量化、环路滤波、熵编码过程。
本公开的上述实施例提供的方法利用数据相关性来减小merge MV的运算量。
在本实施例的一些可选的实现方式中,在所述分别计算所述第一运动矢量集合与每个运动矢量子集合的相关性之前,所述方法还包括:计算预定数目的参考帧中与当前PU相同位置的PU的运动矢量的平均值作为当前PU的运动矢量。用多个参考帧中同位置的PU的运动矢量的平均值比只使用上一个参考帧同位置的PU的运动矢量更平滑,能得到质量更高的编码视频。
在本实施例的一些可选的实现方式中,所述分别计算所述第一运动矢量集合与每个运动矢量子集合的相关性,包括:对于每个运动矢量子集合,将该运动矢量子集合中的运动矢量按预定顺序转换成一维的第一向量,将所述第一运动矢量集合按所述预定顺序转换成一维的第二向量,根据皮尔逊算法计算所述第一向量和所述第二向量的相关性。
Pearson相关系数是一种用于衡量两个变量之间线性相关性强度的方法。它的取值范围在-1到+1之间,0代表无相关性,负值为负相关,正值为正相关。它是通过计算两个变量的协方差与二者标准差积的商来得到的1。简单来说,Pearson相关系数是对向量的值做了中心化处理,即对两个向量中的所有维度都减去元素的平均值,中心化后所有维度的平均值基本为0;然后对中心化结果求余弦距离。
假设我们有两个变量X和Y,它们的数据如下:
X:[1,2,3,4,5]
Y:[2,4,1,6,5]
首先,我们需要计算出两个变量的均值和标准差。
X的均值为:
X=(1+2+3+4+5)/5=3
Y的均值为:
X的标准差为:
Y的标准差为:
然后,我们需要计算两个变量的协方差。协方差的计算公式为:
将数据代入公式,得到:
cov(X,Y)=((1-3)(2-3.6)+(2-3)(4-3.6)+(3-3)(1-3.6)+(4-3)(6-3.6)+(5-3)*(5-3.6))/5=0.8
最后,我们可以使用Pearson相关系数的计算公式来计算两个变量之间的相关性:
Pearson相关系数:
ρ=cov(X,Y)/(σXY)
将数据代入公式,得到:
Pearson相关系数:
ρ=0.8/(1.414*1.816)=0.316
因此,根据这个例子中的数据,X和Y之间的Pearson相关系数ρ为0.316。
皮尔逊算法能够快速准确的计算向量之间的相关性,减轻了运算量,从而提高了编码速度。
在本实施例的一些可选的实现方式中,所述相邻PU包括以下至少一个:A1表示当前PU左侧最下方的PU,B1表示当前PU上方最右侧的PU,B0表示当前PU右上方距离最近的PU,A0表示当前PU左下方距离最近的PU,B2表示当前PU左上方距离最近的PU。如图3a所示,选择5个相邻的PU,而不是所有相邻的PU,可以减少运算量,所选择的相邻PU是经过优化处理的,是现有技术经常选择的。因此,可沿用现有merge mv的一部分算法,节省成本,还能保证预测的MV的准确性。
在本实施例的一些可选的实现方式中,所述方法还包括:获取预定数目的参考帧中与当前PU相同位置的PU的时域运动矢量;根据每个参考帧与当前帧的位置关系对每个时域运动矢量进行伸缩调整,得到预定数目的时域候选运动矢量;计算所述预定数目的时域候选运动矢量的平均值作为当前PU的时域运动矢量。
如图3b所示。与空域情形不同,时域候选列表不能直接使用候选块的运动信息,而需要根据它与参考图像的位置关系做相应的比例伸缩调整。
cur_PU表示当前PU,col_PU为与当前PU相同位置(同位图像)的PU,td表示当前图像cur_pic与参考图像cur_ref之间的距离、tb表示同位图像col_pic与参考图像col_ref之间的距离。则当前PU的时域候选MV可以由下式计算:
其中,colMV为同位PU的MV。
HEVC中规定时域最多只提供一个候选MV,由图3c中H位置同位PU的MV伸缩得到。若H位置同位PU不可用,则用C3位置的同位PU进行替换,如图3c所示。
本申请将上述方法得到的当前PU的时域运动矢量进行平滑处理,与预定数目参考帧中同位的MV一起计算平均值,从而得到平滑的当前PU的时域MV。平滑处理后的MV能够得到质量更好的编码图像。
在本实施例的一些可选的实现方式中,所述预定数目为最小图像组的大小。根据miniGOP大小算,一共放入和帧数相同的mv个数。可以保证编码质量的同时提升编码效率。
在本实施例的一些可选的实现方式中,所述按照相关性由高到低的顺序确定每个运动矢量子集合对应的相邻PU的优先级,包括:若出现相关性相同的情况,则按照A1->B1->B0->A0->B2的顺序设置相邻PU的优先级。按照建候选列表的顺序设置优先级,可以提高编码效率。
在本实施例的一些可选的实现方式中,若当前帧为双向预测内插编码帧,则所述预定数目的参考帧包括当前帧之前的帧和当前帧之后的帧。对于BSlice,不需要采用组合列表的方式,可以减少计算量,提高编码速度。
在本实施例的一些可选的实现方式中,所述方法还包括:为当前PU创建运动矢量的候选列表,其中,所述候选列表中每个运动矢量对应一个相邻PU,每个相邻PU具有索引编号;将所述目标位置的PU在所述候选列表中的索引编号传递给编码器。无需传递MV信息,仅需要传递索引编号,由解码器通过运动推理获得MV信息。从而减少数据传递量,减轻网络传输压力。
在本实施例的一些可选的实现方式中,若当前PU为帧内块,则当前PU的运动矢量为0。在完成整个模式判决之后,如果发现当前帧应该是帧内编码,则将当前PU的运动矢量设为0。不会影响其它帧的PU的MV计算。
进一步参考图4,其示出了预测帧间编码的运动矢量的方法的又一个实施例的流程400。该预测帧间编码的运动矢量的方法的流程400,包括以下步骤:
步骤401,获取第一运动矢量集合和第二运动矢量集合。
在本实施例中,预测帧间编码的运动矢量的方法的执行主体(例如图1所示的服务器)可以获取已知计算出的各帧的不同PU的运动矢量集合。当前PU是待计算MV的PU。计算当前PU的MV需要从上述运动矢量集合中截取第一运动矢量集合和第二运动矢量集合。其中,所述第一运动矢量集合包括当前PU的运动矢量和预定数目的参考帧中与当前PU相同位置的PU的运动矢量,所述第二运动矢量集合包括当前PU的相邻PU的运动矢量和预定数目的参考帧中与所述相邻PU相同位置的PU的运动矢量。
步骤402,若有效的相邻PU的数量小于预设数量,则基于当前PU的每个有效的相邻PU的运动矢量计算率失真。
在本实施例中,若有效的相邻PU的数量小于预设数量,则不能采用步骤202-205的方法计算当前PU的运动矢量。而是为当前PU建立一个MV候选列表。遍历候选MV。计算每个候选MV的率失真。可采用拉格朗日优化方法来计算率失真。
步骤403,将最小的率失真对应的运动矢量确定为当前PU的运动矢量。
在本实施例中,选择率失真最小的作为最优MV。编码器传输最优MV在候选列表中的索引。
当前PU在图像的边缘时可采用本实施例所述的方法计算MV。中间部分的PU就可采用流程200所述的方法计算MV。通过两种计算方法的结合,可以快速、准确地进行视频编码,保证压缩视频的质量。
进一步参考图5,作为对上述各图所示方法的实现,本公开提供了一种预测帧间编码的运动矢量的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的预测帧间编码的运动矢量的装置500包括:获取单元501、划分单元502、第一计算单元503、第二计算单元504、确定单元505。其中,获取单元501,被配置成获取第一运动矢量集合和第二运动矢量集合,其中,所述第一运动矢量集合包括当前PU的运动矢量和预定数目的参考帧中与当前PU相同位置的PU的运动矢量,所述第二运动矢量集合包括当前PU的至少一个相邻PU的运动矢量和预定数目的参考帧中与所述至少一个相邻PU相同位置的PU的运动矢量;划分单元502,被配置成若有效的相邻PU的数量大于等于预设数量,则将所述第二运动矢量集合按PU的位置划分成至少一个运动矢量子集合;第一计算单元503,被配置成分别计算所述第一运动矢量集合与每个运动矢量子集合的相关性,并按照相关性由高到低的顺序确定每个运动矢量子集合对应的相邻PU的优先级;第二计算单元504,被配置成按照优先级由高到低的顺序依次基于每个相邻PU的运动矢量计算率失真,直到计算出小于预定阈值的率失真时停止计算;确定单元505,被配置成将计算出小于预定阈值的率失真时使用的相邻PU的运动矢量确定为当前PU的运动矢量。
在本实施例中,预测帧间编码的运动矢量的装置500的获取单元501、划分单元502、第一计算单元503、第二计算单元504、确定单元505的具体处理可以参考图2对应实施例中的步骤201、步骤202、步骤203、步骤204和步骤205。
在本实施例的一些可选的实现方式中,获取单元501进一步被配置成:计算预定数目的参考帧中与当前PU相同位置的PU的运动矢量的平均值作为当前PU的运动矢量。
在本实施例的一些可选的实现方式中,所述装置500还包括还原单元(附图中未示出),被配置成:若有效的相邻PU的数量小于预设数量,则基于当前PU的每个有效的相邻PU的运动矢量计算率失真;将最小的率失真对应的运动矢量确定为当前PU的运动矢量。
在本实施例的一些可选的实现方式中,第一计算单元503进一步被配置成:对于每个运动矢量子集合,将该运动矢量子集合中的运动矢量按预定顺序转换成一维的第一向量,将所述第一运动矢量集合按所述预定顺序转换成一维的第二向量,根据皮尔逊算法计算所述第一向量和所述第二向量的相关性。
在本实施例的一些可选的实现方式中,所述相邻PU包括以下至少一个:A1表示当前PU左侧最下方的PU,B1表示当前PU上方最右侧的PU,B0表示当前PU右上方距离最近的PU,A0表示当前PU左下方距离最近的PU,B2表示当前PU左上方距离最近的PU。
在本实施例的一些可选的实现方式中,装置500还包括时域计算单元(附图未示出),被配置成:获取预定数目的参考帧中与当前PU相同位置的PU的时域运动矢量;根据每个参考帧与当前帧的位置关系对每个时域运动矢量进行伸缩调整,得到预定数目的时域候选运动矢量;计算所述预定数目的时域候选运动矢量的平均值作为当前PU的时域运动矢量。
在本实施例的一些可选的实现方式中,所述预定数目为最小图像组的大小。
在本实施例的一些可选的实现方式中,第一计算单元503进一步被配置成:若出现相关性相同的情况,则按照A1->B1->B0->A0->B2的顺序设置相邻PU的优先级。
在本实施例的一些可选的实现方式中,若当前帧为双向预测内插编码帧,则所述预定数目的参考帧包括当前帧之前的帧和当前帧之后的帧。
在本实施例的一些可选的实现方式中,所述确定单元505进一步被配置成:为当前PU创建运动矢量的候选列表,其中,所述候选列表中每个运动矢量对应一个相邻PU,每个相邻PU具有索引编号;将所述目标位置的PU在所述候选列表中的索引编号传递给编码器。
在本实施例的一些可选的实现方式中,若当前PU为帧内块,则当前PU的运动矢量为0。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行流程200所述的方法。
一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行流程200所述的方法。
一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现流程200所述的方法。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如预测帧间编码的运动矢量的方法。例如,在一些实施例中,预测帧间编码的运动矢量的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的预测帧间编码的运动矢量的方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行预测帧间编码的运动矢量的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (25)

1.一种预测帧间编码的运动矢量的方法,包括:
获取第一运动矢量集合和第二运动矢量集合,其中,所述第一运动矢量集合包括当前PU的运动矢量和预定数目的参考帧中与当前PU相同位置的PU的运动矢量,所述第二运动矢量集合包括当前PU的至少一个相邻PU的运动矢量和预定数目的参考帧中与所述至少一个相邻PU相同位置的PU的运动矢量;
若有效的相邻PU的数量大于等于预设数量,则将所述第二运动矢量集合按PU的位置划分成至少一个运动矢量子集合;
分别计算所述第一运动矢量集合与每个运动矢量子集合的相关性,并按照相关性由高到低的顺序确定每个运动矢量子集合对应的相邻PU的优先级;
按照优先级由高到低的顺序依次基于每个相邻PU的运动矢量计算率失真,直到计算出小于预定阈值的率失真时停止计算;
将计算出小于预定阈值的率失真时使用的相邻PU的运动矢量确定为当前PU的运动矢量。
2.根据权利要求1所述的方法,其中,在所述分别计算所述第一运动矢量集合与每个运动矢量子集合的相关性之前,所述方法还包括:
计算预定数目的参考帧中与当前PU相同位置的PU的运动矢量的平均值作为当前PU的运动矢量。
3.根据权利要求1所述的方法,其中,所述方法还包括:
若有效的相邻PU的数量小于预设数量,则基于当前PU的每个有效的相邻PU的运动矢量计算率失真;
将最小的率失真对应的运动矢量确定为当前PU的运动矢量。
4.根据权利要求1所述的方法,其中,所述分别计算所述第一运动矢量集合与每个运动矢量子集合的相关性,包括:
对于每个运动矢量子集合,将该运动矢量子集合中的运动矢量按预定顺序转换成一维的第一向量,将所述第一运动矢量集合按所述预定顺序转换成一维的第二向量,根据皮尔逊算法计算所述第一向量和所述第二向量的相关性。
5.根据权利要求1所述的方法,其中,所述相邻PU包括以下至少一个:A1表示当前PU左侧最下方的PU,B1表示当前PU上方最右侧的PU,B0表示当前PU右上方距离最近的PU,A0表示当前PU左下方距离最近的PU,B2表示当前PU左上方距离最近的PU。
6.根据权利要求1所述的方法,其中,所述方法还包括:
获取预定数目的参考帧中与当前PU相同位置的PU的时域运动矢量;
根据每个参考帧与当前帧的位置关系对每个时域运动矢量进行伸缩调整,得到预定数目的时域候选运动矢量;
计算所述预定数目的时域候选运动矢量的平均值作为当前PU的时域运动矢量。
7.根据权利要求1所述的方法,其中,所述预定数目为最小图像组的大小。
8.根据权利要求5所述的方法,其中,所述按照相关性由高到低的顺序确定每个运动矢量子集合对应的相邻PU的优先级,包括:
若出现相关性相同的情况,则按照A1->B1->B0->A0->B2的顺序设置相邻PU的优先级。
9.根据权利要求1所述的方法,其中,若当前帧为双向预测内插编码帧,则所述预定数目的参考帧包括当前帧之前的帧和当前帧之后的帧。
10.根据权利要求1所述的方法,其中,所述方法还包括:
为当前PU创建运动矢量的候选列表,其中,所述候选列表中每个运动矢量对应一个相邻PU,每个相邻PU具有索引编号;
将所述目标位置的PU在所述候选列表中的索引编号传递给编码器。
11.根据权利要求1所述的方法,其中,若当前PU为帧内块,则当前PU的运动矢量为0。
12.一种预测帧间编码的运动矢量的装置,包括:
获取单元,被配置成获取第一运动矢量集合和第二运动矢量集合,其中,所述第一运动矢量集合包括当前PU的运动矢量和预定数目的参考帧中与当前PU相同位置的PU的运动矢量,所述第二运动矢量集合包括当前PU的至少一个相邻PU的运动矢量和预定数目的参考帧中与所述至少一个相邻PU相同位置的PU的运动矢量;
划分单元,被配置成若有效的相邻PU的数量大于等于预设数量,则将所述第二运动矢量集合按PU的位置划分成至少一个运动矢量子集合;
第一计算单元,被配置成分别计算所述第一运动矢量集合与每个运动矢量子集合的相关性,并按照相关性由高到低的顺序确定每个运动矢量子集合对应的相邻PU的优先级;
第二计算单元,被配置成按照优先级由高到低的顺序依次基于每个相邻PU的运动矢量计算率失真,直到计算出小于预定阈值的率失真时停止计算;
确定单元,被配置成将计算出小于预定阈值的率失真时使用的相邻PU的运动矢量确定为当前PU的运动矢量。
13.根据权利要求12所述的装置,其中,所述获取单元进一步被配置成:
计算预定数目的参考帧中与当前PU相同位置的PU的运动矢量的平均值作为当前PU的运动矢量。
14.根据权利要求12所述的装置,其中,所述装置还包括还原单元,被配置成:
若有效的相邻PU的数量小于预设数量,则基于当前PU的每个有效的相邻PU的运动矢量计算率失真;
将最小的率失真对应的运动矢量确定为当前PU的运动矢量。
15.根据权利要求12所述的装置,其中,所述第一计算单元进一步被配置成:
对于每个运动矢量子集合,将该运动矢量子集合中的运动矢量按预定顺序转换成一维的第一向量,将所述第一运动矢量集合按所述预定顺序转换成一维的第二向量,根据皮尔逊算法计算所述第一向量和所述第二向量的相关性。
16.根据权利要求12所述的装置,其中,所述相邻PU包括以下至少一个:A1表示当前PU左侧最下方的PU,B1表示当前PU上方最右侧的PU,B0表示当前PU右上方距离最近的PU,A0表示当前PU左下方距离最近的PU,B2表示当前PU左上方距离最近的PU。
17.根据权利要求12所述的装置,其中,所述装置还包括时域计算单元,被配置成:
获取预定数目的参考帧中与当前PU相同位置的PU的时域运动矢量;
根据每个参考帧与当前帧的位置关系对每个时域运动矢量进行伸缩调整,得到预定数目的时域候选运动矢量;
计算所述预定数目的时域候选运动矢量的平均值作为当前PU的时域运动矢量。
18.根据权利要求12所述的装置,其中,所述预定数目为最小图像组的大小。
19.根据权利要求16所述的装置,其中,所述第一计算单元进一步被配置成:
若出现相关性相同的情况,则按照A1->B1->B0->A0->B2的顺序设置相邻PU的优先级。
20.根据权利要求12所述的装置,其中,若当前帧为双向预测内插编码帧,则所述预定数目的参考帧包括当前帧之前的帧和当前帧之后的帧。
21.根据权利要求12所述的装置,其中,所述确定单元进一步被配置成:
为当前PU创建运动矢量的候选列表,其中,所述候选列表中每个运动矢量对应一个相邻PU,每个相邻PU具有索引编号;
将所述目标位置的PU在所述候选列表中的索引编号传递给编码器。
22.根据权利要求12所述的装置,其中,若当前PU为帧内块,则当前PU的运动矢量为0。
23.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11中任一项所述的方法。
24.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-11中任一项所述的方法。
25.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-11中任一项所述的方法。
CN202310980300.XA 2023-08-04 2023-08-04 预测帧间编码的运动矢量的方法和装置 Pending CN117061753A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310980300.XA CN117061753A (zh) 2023-08-04 2023-08-04 预测帧间编码的运动矢量的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310980300.XA CN117061753A (zh) 2023-08-04 2023-08-04 预测帧间编码的运动矢量的方法和装置

Publications (1)

Publication Number Publication Date
CN117061753A true CN117061753A (zh) 2023-11-14

Family

ID=88665553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310980300.XA Pending CN117061753A (zh) 2023-08-04 2023-08-04 预测帧间编码的运动矢量的方法和装置

Country Status (1)

Country Link
CN (1) CN117061753A (zh)

Similar Documents

Publication Publication Date Title
US10051273B2 (en) Video decoder and video decoding method
US8705611B2 (en) Image prediction encoding device, image prediction encoding method, image prediction encoding program, image prediction decoding device, image prediction decoding method, and image prediction decoding program
CN116233463A (zh) 用于多参考预测的运动矢量修正
US10412409B2 (en) Encoding system using motion estimation and encoding method using motion estimation
US20130287111A1 (en) Low memory access motion vector derivation
CN106170093B (zh) 一种帧内预测性能提升编码方法
KR101409826B1 (ko) 적응적 탐색 범위를 이용한 움직임 예측 방법
US20090016623A1 (en) Image processing device, image processing method and program
US9445089B2 (en) Video encoding device, video encoding method and video encoding program
Kerfa et al. An efficient algorithm for fast block matching motion estimation using an adaptive threshold scheme
CN113383550A (zh) 光流修正的提前终止
CN112738529B (zh) 帧间预测方法、装置、设备、存储介质以及程序产品
CN113099241B (zh) 参考帧列表更新方法、装置、设备以及存储介质
KR20070000702A (ko) 탐색영역 재설정을 이용한 고속 움직임 예측 장치 및 방법
WO2018205781A1 (zh) 一种实现运动估计的方法及电子设备
CN117061753A (zh) 预测帧间编码的运动矢量的方法和装置
CN114040209A (zh) 运动估计方法、装置、电子设备及存储介质
CN115661273B (zh) 运动矢量的预测方法、装置、电子设备及存储介质
CN116708810A (zh) 视频编码方法、装置、设备及存储介质
JP2013157950A (ja) 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム
RU2808608C2 (ru) Раннее прекращение уточнения оптического потока
Cai et al. An efficient HEVC multi-rate encoding system based on× 265
CN114040208A (zh) 运动估计方法、装置、电子设备及存储介质
CN115988207A (zh) 一种视频编码方法、装置、电子设备及介质
CN115334309A (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