CN103152566A - 一种视频帧率提升方法 - Google Patents
一种视频帧率提升方法 Download PDFInfo
- Publication number
- CN103152566A CN103152566A CN2013100570015A CN201310057001A CN103152566A CN 103152566 A CN103152566 A CN 103152566A CN 2013100570015 A CN2013100570015 A CN 2013100570015A CN 201310057001 A CN201310057001 A CN 201310057001A CN 103152566 A CN103152566 A CN 103152566A
- Authority
- CN
- China
- Prior art keywords
- frame
- piece
- motion vector
- layer
- 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.)
- Granted
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种视频帧率提升方法,包括:读入视频,设置计数器i=1,并计算视频的第i帧作为当前帧、当前帧的下一帧中所有像素点的梯度值,将第i帧和第i+1帧中所有像素点的梯度值作为像素值,重新构建第i帧和第i+1帧的像素点集合以形成重新构建的第i帧和第i+1帧,对重新构建的第i帧和第i+1帧进行基于预测的双向分层运动估计,以得到前向运动矢量场和后向运动矢量场,根据前向运动矢量场和后向运动矢量场,并采用双线性插值法计算出第i帧和第i+1帧中每个像素的运动矢量,并对第i帧中像素做遮挡判断。相对于现有的视频帧率提升方法,本发明减小了视频本身质量对运动估计准确性的影响,解决了分块过大带来的问题,并使得双线性插值的结果更精确。
Description
技术领域
本发明属于视频数据处理领域,更具体地,涉及一种视频帧率提升方法。
背景技术
视频帧率提升方法指的是通过视频相邻两帧的数据,用运动估计和插值的方法计算出中间帧并插入原视频图像序列,实现整个视频帧率的提高。
传统的视频帧率提升方法是基于分块分层的双向运动补偿插帧算法,其存在以下问题:
1、视频本身质量对运动估计准确性有较大影响。
2、分块大小一旦固定,会出现譬如同一块中包含不同运动情况物体的现象出现,进而影响整个算法的效果。
3、双线性插值算法基于块内像素运动线性变化的假设,且并未有最优的矢量选取规则。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种视频帧率提升方法,旨在解决现有视频帧率提升方法在预处理、双线性插值优化、自适应块分裂方面存在的问题。
为实现上述目的,本发明提供了一种视频帧率提升方法,包括以下步
骤:
(1)读入视频;
(2)设置计数器i=1,并采用以下公式计算视频的第i帧作为当前帧、当前帧的下一帧中所有像素点的梯度值,
(3)将第i帧和第i+1帧中所有像素点的梯度值作为像素值,重新构建第i帧和第i+1帧的像素点集合以形成重新构建的第i帧和第i+1帧;
(4)对重新构建的第i帧和第i+1帧进行基于预测的双向分层运动估计,以得到前向运动矢量场和后向运动矢量场;
(5)根据前向运动矢量场和后向运动矢量场,并采用双线性插值法计算出第i帧和第i+1帧中每个像素的运动矢量,并对第i帧中像素做遮挡判断,
(6)利用双向运动补偿插值算法计算将要插入在第i帧和第i+1帧之间的M-1个帧中每个像素的值,其中M为大于2的正整数;
(7)去除M-1个插入帧的块效应,并在第i帧和第i+1帧的中间插入M-1个插入帧;
(8)设置i=i+1,并重复步骤(2)至(7),直到视频的所有帧都处理完毕为止。
步骤(4)包括以下子步骤:
(4.1)把重新构建的第i帧和第i+1帧分为N*N大小的块,其中N的大小为8或16;
(4.2)采用均值滤波法对重新构建的第i帧和第i+1帧分别进行分层,其中分层的层数是大于等于3;
(4.3)对分层后的第i帧和第i+1帧进行前向运动估计,以得到前向运动矢量场;
(4.4)对分层后的第i帧和第i+1帧进行后向运动估计,以得到后向运动矢量场;
(4.5)根据前向运动矢量场和后向运动矢量场判断第i帧和第i+1帧之间是否存在场景切换或运动过于剧烈,如果存在场景切换或运动过于剧烈,则转入步骤(4.6),否则转入步骤(4.7);
(4.6)直接将第i+1帧插入第i帧和第i+1帧之间,设置i=i+1,并返回步骤(2);
(4.7)采用矢量中值滤波对上述得到的前向和后向运动矢量场中不可靠的运动矢量进行处理,并寻找搜索窗中,距离其它矢量最近的运动矢量替代该不可靠的运动矢量。
步骤(4.3)包括以下子步骤:
(4.3.1)对第i帧中最上层的所有块进行前向运动估计,以获得所有块的运动矢量;
(4.3.2)根据第i帧中最上层所有块的运动矢量计算第i帧中第二层所有块的运动矢量;
(4.3.3)根据第i帧中最二层所有块的运动矢量计算第i帧中第三层所有块的运动矢量。
步骤(4.3.1)包括以下子步骤:
(4.3.1.1)设置计数器k=1,对第k块进行空间运动矢量预测,以得到最上层第k块的空间运动预测矢量;
(4.3.1.2)使用PMVFAST算法获取第k块的运动矢量;
(4.3.1.3)设置k=k+1,并重复上述步骤(4.3.1.1)和(4.3.1.2),直到获取第i帧中最上层所有块的运动矢量为止。
步骤(4.3.2)包括以下子步骤:
(4.3.2.1)设置计数器m=1,并对步骤(4.2)分层后的第i帧中第二层的第m块进行层间运动预测,以得到第二层的第m块的层间运动预测矢量;
(4.3.2.2)对第i帧中第二层的第m块进行全局运动估计,以得到第二层的第m块的全局运动预测矢量;
(4.3.2.3)使用PMVFAST算法获取第二层的第m块的运动矢量;
(4.3.2.4)设置m=m+1,并重复上述步骤(4.3.2.1)至(4.3.2.3),直到获取第i帧中第二层所有块的运动矢量为止。
步骤(4.3.3)包括以下子步骤:
(4.3.3.1)设置计数器n=1,并对步骤(4.2)分层后的第i帧中第三层的第n块进行层间运动预测,以得到第三层的第n块的层间运动预测矢量;
(4.3.3.2)对第i帧中第三层的第n块进行全局运动估计,以得到第三层的第n块的全局运动预测矢量;
(4.3.3.3)使用PMVFAST算法获取第三层的第n块的运动矢量MVC;
(4.3.3.4)判断第n块的SAD值是否超过某一阈值,如果超过,则转入步骤(4.3.3.5),否则转入步骤(4.4.3.6);
(4.3.3.5)把第n块分为4q个均匀大小的小块,其中q为正整数,且满足4q≤N2,对这4q块,在n块的运动矢量所指区域的p*p(p为正整数)大小范围内找到SAD值最小的小块的运动矢量,然后转入步骤(4.3.3.6);
(4.3.3.6)设置n=n+1,并重复上述步骤(4.3.3.1)至(4.3.3.5),直到获取第i帧中第三层所有块的运动矢量为止。
步骤(4.4)包括以下子步骤:
(4.4.1)对第i+1帧中最上层的所有块进行后向运动估计,以获得所有块的运动矢量;
(4.4.2)根据第i+1帧中最上层所有块的运动矢量计算第i+1帧中第二层所有块的运动矢量;
(4.4.3)根据第i+1帧中最二层所有块的运动矢量计算第i+1帧中第三层所有块的运动矢量。
步骤(4.4.1)包括以下子步骤:
(4.4.1.1)设置计数器k’=1,对第k’块进行空间运动矢量预测,以得到最上层第k’块的空间运动预测矢量;
(4.4.1.2)使用PMVFAST算法获取第k’块的运动矢量;
(4.4.1.3)设置k’=k’+1,并重复上述步骤(4.4.1.1)和(4.4.1.2),直到获取第i+1帧中最上层所有块的运动矢量为止。
步骤(4.4.2)包括以下子步骤:
(4.4.2.1)设置计数器m’=1,并对步骤(4.2)分层后的第i+1帧中第二层的第m’块进行层间运动预测,以得到第二层的第m’块的层间运动预测矢量;
(4.4.2.2)对第i+1帧中第二层的第m’块进行全局运动估计,以得到第二层的第m’块的全局运动预测矢量;
(4.4.2.3)使用PMVFAST算法获取第二层的第m’块的运动矢量;
(4.4.2.4)设置m’=m’+1,并重复上述步骤(4.4.2.1)至(4.4.2.3),直到获取第i+1帧中第二层所有块的运动矢量为止。
步骤(4.4.3)包括以下子步骤:
(4.4.3.1)设置计数器n’=1,并对步骤(4.2)分层后的第i+1帧中第三层的第n’块进行层间运动预测,以得到第三层的第n’块的层间运动预测矢量;
(4.4.3.2)对第i+1帧中第三层的第n’块进行全局运动估计,以得到第三层的第n’块的全局运动预测矢量;
(4.4.3.3)使用PMVFAST算法获取第三层的第n’块的运动矢量;
(4.4.3.4)判断第n’块的SAD值是否超过某一阈值,如果超过,则转入步骤(4.4.3.5),否则转入步骤(4.4.3.6);
(4.4.3.5)把第n’块分为4q个均匀大小的小块,且满足4q≤N2,对这4q块,在n’块的运动矢量所指区域的p’*p’大小范围内找到SAD值最小的小块的运动矢量,其中p’和q均为正整数,然后转入步骤(4.4.3.6);
(4.4.3.6)设置n’=n’+1,并重复上述步骤(4.4.3.1)至(4.4.3.5),直到获取第i帧中第三层所有块的运动矢量为止。
通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果:
1、由于采用了步骤(2)、步骤(3)的梯度计算预处理方法,能够解决视频本身质量问题对运动估计准确性影响。
2、由于在步骤(4.3.3.4)、(4.3.3.5)、(4.4.3.4)、(4.4.3.5)采用了自适应块分裂的方法,用自适应块分裂的方法解决由于分块不当、过大所带来的特别是在快速运动场景下生成帧中物体的扭曲、变形问题。
3、在双线性插值中提出一种更合理的矢量选取规则,提升了方法效果。
附图说明
图1是本发明视频帧率提升方法的流程图。
图2是根据相邻两帧数据插入新帧的流程图。
图3是滤波操作的示意图。
图4是双线性插值示意图。
图5是空间运动矢量预测示意图。
图6是视频序列第20帧。
图7是视频序列中根据第20帧和第22帧计算生成插入的第21帧。
图8是视频序列的第22帧。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明的视频帧率提升方法包括以下步骤:
(1)读入视频;在本实施方式中,视频的文件名为football,格式为Yuv格式,对于其它诸如Rmvb、Avi、Mp4等格式的视频文件,先将其转换为Yuv格式以后再进行后续处理;
本步骤的优点在于,利用预处理的思想,从一定程度上削弱了运动模糊等视频本身质量问题对运动估计准确性的影响。
(3)将第i帧和第i+1帧中所有像素点的梯度值作为像素值,重新构建第i帧和第i+1帧的像素点集合以形成重新构建的第i帧和第i+1帧;
(4)对重新构建的第i帧和第i+1帧进行基于预测的双向分层运动估计,以得到前向运动矢量场和后向运动矢量场,具体包括以下子步骤:
(4.1)把重新构建的第i帧和第i+1帧分为N*N大小的块;在本实施方式中,N的大小为8或16;
(4.2)采用均值滤波法对重新构建的第i帧和第i+1帧分别进行分层,其中分层的层数是大于等于3;在本实施方式中,分层的层数等于3;
(4.3)对分层后的第i帧和第i+1帧进行前向运动估计,以得到前向运动矢量场,具体包括以下子步骤:
(4.3.1)对第i帧中最上层的所有块进行前向运动估计,以获得所有块的运动矢量,具体包括以下子步骤:
(4.3.1.1)设置计数器k=1,对第k块进行空间运动矢量预测,以得到最上层第k块的空间运动预测矢量;如图4所示,假设第k块的运动矢量为MVC,经过空间运动矢量预测后,得到在空间上共有{MV1、MV2、MV3、MV4、MVP}5个空间运动预测矢量,其中MV1、MV2、MV3、MV4是当前块相邻的4个空间运动预测矢量,MVP是MV1、MV2、MV3的均值;
(4.3.1.2)使用预测运动矢量场自适应搜索技术(PredictiveMotion Vector Field Adaptive Search Technique,简称PMVFAST)算法获取第k块的运动矢量MVC;
(4.3.1.3)设置k=k+1,并重复上述步骤(4.3.1.1)和(4.3.1.2),直到获取第i帧中最上层所有块的运动矢量为止;
(4.3.2)根据第i帧中最上层所有块的运动矢量计算第i帧中第二层所有块的运动矢量,具体包括以下子步骤:
(4.3.2.1)设置计数器m=1,并对步骤(4.2)分层后的第i帧中第二层的第m块进行层间运动预测,以得到第二层的第m块的层间运动预测矢量LMV;
(4.3.2.2)对第i帧中第二层的第m块进行全局运动估计,以得到第二层的第m块的全局运动预测矢量;
(4.3.2.3)使用PMVFAST算法获取第二层的第m块的运动矢量MVC;
(4.3.2.4)设置m=m+1,并重复上述步骤(4.3.2.1)至(4.3.2.3),直到获取第i帧中第二层所有块的运动矢量为止;
(4.3.3)根据第i帧中最二层所有块的运动矢量计算第i帧中第三层所有块的运动矢量,具体包括以下子步骤:
(4.3.3.1)设置计数器n=1,并对步骤(4.2)分层后的第i帧中第三层的第n块进行层间运动预测,以得到第三层的第n块的层间运动预测矢量LMV;
(4.3.3.2)对第i帧中第三层的第n块进行全局运动估计,以得到第三层的第n块的全局运动预测矢量;
(4.3.3.3)使用PMVFAST算法获取第三层的第n块的运动矢量MVC;
(4.3.3.4)判断第n块的运动矢量的绝对差的总和(Sum ofAbsolute Difference,简称SAD)值是否超过某一阈值,如果超过,则转入步骤(4.3.3.5),否则转入步骤(4.4.3.6);在本发明中,阈值的取值为0到255N2之间的整数,优选取50N2;
(4.3.3.5)把第n块分为4q(其中q为正整数)个均匀大小的小块,且满足4q≤N2,对这4q块,在n块的运动矢量所指区域的p*p(p为正整数)大小范围内找到SAD值最小的小块的运动矢量;然后转入步骤(4.3.3.6);在本实施方式中,p的取值为5,q为1;
以上两步的优点在于,使用自适应的块分裂方法解决了分块不当、过大时所带来的问题。
(4.3.3.6)设置n=n+1,并重复上述步骤(4.3.3.1)至(4.3.3.5),直到获取第i帧中第三层所有块的运动矢量为止;
(4.4)对分层后的第i帧和第i+1帧进行后向运动估计,以得到后向运动矢量场,具体包括以下子步骤:
(4.4.1)对第i+1帧中最上层的所有块进行后向运动估计,以获得所有块的运动矢量,具体包括以下子步骤:
(4.4.1.1)设置计数器k’=1,对第k’块进行空间运动矢量预测,以得到最上层第k’块的空间运动预测矢量;具体方式和步骤(4.3.1.1)相同;
(4.4.1.2)使用PMVFAST算法获取第k’块的运动矢量;
(4.4.1.3)设置k’=k’+1,并重复上述步骤(4.4.1.1)和(4.4.1.2),直到获取第i+1帧中最上层所有块的运动矢量为止;
(4.4.2)根据第i+1帧中最上层所有块的运动矢量计算第i+1帧中第二层所有块的运动矢量,具体包括以下子步骤:
(4.4.2.1)设置计数器m’=1,并对步骤(4.2)分层后的第i+1帧中第二层的第m’块进行层间运动预测,以得到第二层的第m’块的层间运动预测矢量;
(4.4.2.2)对第i+1帧中第二层的第m’块进行全局运动估计,以得到第二层的第m’块的全局运动预测矢量;
(4.4.2.3)使用PMVFAST算法获取第二层的第m’块的运动矢量;
(4.4.2.4)设置m’=m’+1,并重复上述步骤(4.4.2.1)至(4.4.2.3),直到获取第i+1帧中第二层所有块的运动矢量为止;
(4.4.3)根据第i+1帧中最二层所有块的运动矢量计算第i+1帧中第三层所有块的运动矢量,具体包括以下子步骤:
(4.4.3.1)设置计数器n’=1,并对步骤(4.2)分层后的第i+1帧中第三层的第n’块进行层间运动预测,以得到第三层的第n’块的层间运动预测矢量;
(4.4.3.2)对第i+1帧中第三层的第n’块进行全局运动估计,以得到第三层的第n’块的全局运动预测矢量;
(4.4.3.3)使用PMVFAST算法获取第三层的第n’块的运动矢量;
(4.4.3.4)判断第n’块的运动矢量的绝对差的总和(Sum ofAbsolute Difference,简称SAD)值是否超过某一阈值,如果超过,则转入步骤(4.4.3.5),否则转入步骤(4.4.3.6);在本发明中,阈值的取值为0到255N2之间的整数,优选取50N2;
(4.4.3.5)把第n’块分为4q(其中q为正整数)个均匀大小的小块,且满足4q≤N2,对这4q块,在n’块的运动矢量所指区域的p*p(p为正整数)大小范围内找到SAD值最小的小块的运动矢量;在本实施方式中,p的取值为5,q为1;然后转入步骤(4.4.3.6);
以上两步的优点在于,使用自适应的块分裂方法解决了分块不当、过大时所带来的问题。
(4.4.3.6)设置n’=n’+1,并重复上述步骤(4.4.3.1)至(4.4.3.5),直到获取第i帧中第三层所有块的运动矢量为止;
(4.5)根据前向运动矢量场和后向运动矢量场判断第i帧和第i+1帧之间是否存在场景切换或运动过于剧烈,如果存在场景切换或运动过于剧烈,则转入步骤(4.6),否则转入步骤(4.7);具体而言,如果前向运动矢量场和后向运动矢量场中所有运动矢量的SAD值大于某一阈值(其取值范围是100N2到255N2)的比重大于某一预设比值(其取值范围是0.5到1),则说明存在场景切换或运动过于剧烈;
(4.6)直接将第i+1帧插入第i帧和第i+1帧之间,设置i=i+1,并返回步骤(2);
(4.7)采用矢量中值滤波对上述得到的前向和后向运动矢量场中不可靠的运动矢量进行处理,并寻找搜索窗中,距离其它矢量最近的运动矢量替代该不可靠的运动矢量,具体包括以下子步骤:
(4.7.1)设定计数器w=1,判断前向和后向运动矢量场中第w块的运动矢量MVw的SADw是否大于一阈值Th,若大于则说明该运动矢量MVw是不可靠的运动矢量,并转入步骤(4.7.2),否则说明该运动矢量MVw是可靠的运动矢量,并转入步骤(4.7.3);Th的取值范围为0到255*N2,在本实施方式中取40*N2;
(4.7.2)对该运动矢量Mvw作矢量中值滤波:
(4.7.2.1)设定3*3窗口作为搜索窗;
(4.7.2.2)对于搜索窗中的所有运动矢量,计算每个运动矢量和窗口内其它运动矢量之间的差值和,找出差值和最小的运动矢量替代运动矢量MVw。
(4.7.3)设置w=w+1,并重复上述步骤(4.7.1)和(4.7.2),直至前向运动矢量场以及后向运动矢量场中所有的运动矢量均处理完毕为止。
(5)根据前向运动矢量场和后向运动矢量场,并采用双线性插值法计算出第i帧和第i+1帧中每个像素的运动矢量,并对第i帧中像素做遮挡判断,具体包括以下子步骤:
(5.1)双线性插值法计算第i帧和第i+1帧的前向运动矢量场和后向运动矢量场中每一块中每个像素的运动矢量;如图3中所示,像素(p’,q’)处的运动矢量V(p’,q’)是采用以下公式,由该像素所在块的四个顶点的运动矢量Va、Vb、Vc和Vd经双线性插值求出:
V(p',q')=(k″·Vc+(1-k″)Va)·(1-l)+(k″·Vd+(1-k″)Vb)·l
其中k”和l为比例因子,且满足0≤k″,l≤1。
该像素所在块的中心点像素的运动矢量取该块的运动矢量,图3中的四个角落是相邻四个块的中心,其中第i帧中每个像素所得到的是前向运动矢量MVf,第i+1帧中每个像素所得到的是后向运动矢量MVb。
该步骤的优点在于选取了更为合理的矢量选取规则,使得插值结果更加准确。
(5.2)对步骤(4.3.3.5)和(4.4.3.5)分裂的小块进行双线性插值;具体而言,双线性插值的步骤和以上步骤(5.1)的基本相同,唯一区别在于步骤(5.1)中像素所在块四个顶点的运动矢量Va、Vb、Vc和Vd分别被分裂的小块的四个运动矢量所代替。
(5.3)对步骤(4.1)划分的块进行遮挡判断处理;具体而言,是采用以下操作:
(5.3.1)若|Si+1(B(t))-Si(B(t))|>T且|Si+2(B(t))-Si+1(B(t))|>T,则说明该块中的像素属于运动目标;
(5.3.2)若|Si+1(B(t))-Si(B(t))|<T且|Si+2(B(t))-Si+1(B(t))|<T,则说明该块中的像素属于背景;
(5.3.3)若|Si+1(B(t))-Si(B(t))|>T且|Si+2(B(t))-Si+1(B(t))|<T,则说明该块中的像素属于显露区域;
(5.3.4)若|Si+1(B(t))-Si(B(t))|<T且|Si+2(B(t))-Si+1(B(t))|>T,则说明该块中的像素属于遮挡区域;
其中Si(B(t))、Si+1(B(t))、Si+2(B(t))分别是第i帧、第i+1帧、第i+2帧中第t块(其中t为正整数)的所有像素值的和,T为指定的阈值,其范围为0-255N2,在本实施方式中取T等于50*N2;
(6)利用双向运动补偿插值算法计算待插入帧(即将要插入在第i帧和第i+1帧之间的帧)中每个像素的值;
通过以上步骤(5.1)和(5.2),我们对每个像素均可知其前向运动矢量MVf和后向运动矢量MVb。
(6.1)在第i帧和第i+1帧中间插入M-1帧(其中M为大于或等于2的整数),则M-1帧中第r帧中第u个像素(其中r为1到M-1之间的正整数,u为正整数)的后向运功矢量MVb(u)和前向运动矢量MVf(u)的计算方法分别如下:
MVb(u)=r/M·MVb(u)=(XBu,YBu)
MVf(u)=(M-r)/M·MVf(u)=(XFu,YFu)
其中u为对应帧内的像素索引,XBu为MVb(u)的X分量,YBu为MVb(u)的Y分量,XFu为MVf(u)的X分量,YFu为MVf(u)的Y分量。
(6.2)根据下式计算M-1帧中第r帧中第u个像素的像素值:
f(x',y')=[α·fi(x'+XBu,y'+YBu)+β·fi+1(x'+XFu,y'+YFu)]/2
其中(x’,y’)是M-1帧中第r帧中第u个像素的坐标,f(x',y')是坐标(x’,y’)处像素的像素值,fi(x'+XBu,y'+YBu)是插入帧前一帧
(x'+XBu,y'+YBu)处的像素值,fi+1(x'+XFu,y'+YFu)是插入帧后一帧
(x'+XFu,y'+YFu)处的像素值,α,β的取值根据步骤(5.3)的结果确定:
第u个像素属于运动目标:α=1,β=1;
第u个像素属于遮挡区域:α=2,β=0;
第u个像素属于背景区域:α=1,β=1;
第u个像素属于显露区域:α=0,β=2。
(7)去除M-1个插入帧的块效应,并在第i帧和第i+1帧的中间插入M-1个插入帧;
具体而言,由于块效应的产生是由于运动矢量估计不准确,使得块之间过渡比较陡峭而产生的效应,因此去除块效应的目标是使块的周围像素与邻域块之间实现平滑。
我们处理的对象为M-1个插入帧中每一块四周的像素,以图3为例,
在对顶行像素1处理时,首先计算像素1和4的像素值差值:offset=f(1)-f(4);
接下来对所有6个像素完成削峰平谷的处理,其中处理的方法为:
f′(1)=f(-1)offs e
f′(2)=f(-2)offs e
f(3)=f(-3)offs e
f(4)=f(+4)offs e
f'(5)=f(+5)offs e
f'(6)=f(+6)offs e
其中f()为处理前的像素值,f'()为处理后的像素值。
最后,在第i帧和第i+1帧中间插入由以上步骤计算得到的中间帧。
(8)设置i=i+1,并重复步骤(2)至(7),直到视频的所有帧都处理完毕为止。处理完毕所有帧后得到一个新的视频序列football1.yuv,其帧率是原序列的2倍。
新插入的帧效果如图6所示,图5和图7分别为图6的前后帧。
总而言之,本发明的优点是:
1、使用梯度计算的预处理方法减小了视频本身质量对运动估计准确性的影响。
2、使用自适应块分裂的办法解决了分块过大带来的问题。
3、使用有更合理矢量选取法则的双线性插值算法使得双线性插值的结果更精确。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种视频帧率提升方法,其特征在于,包括以下步骤:
(1)读入视频;
(3)将第i帧和第i+1帧中所有像素点的梯度值作为像素值,重新构建第i帧和第i+1帧的像素点集合以形成重新构建的第i帧和第i+1帧;
(4)对重新构建的第i帧和第i+1帧进行基于预测的双向分层运动估计,以得到前向运动矢量场和后向运动矢量场;
(5)根据前向运动矢量场和后向运动矢量场,并采用双线性插值法计算出第i帧和第i+1帧中每个像素的运动矢量,并对第i帧中像素做遮挡判断,
(6)利用双向运动补偿插值算法计算将要插入在第i帧和第i+1帧之间的M-1个帧中每个像素的值,其中M为大于2的正整数;
(7)去除M-1个插入帧的块效应,并在第i帧和第i+1帧的中间插入M-1个插入帧;
(8)设置i=i+1,并重复步骤(2)至(7),直到视频的所有帧都处理完毕为止。
2.根据权利要求1所述的视频帧率提升方法,其特征在于,步骤(4)包括以下子步骤:
(4.1)把重新构建的第i帧和第i+1帧分为N*N大小的块,其中N的大小为8或16;
(4.2)采用均值滤波法对重新构建的第i帧和第i+1帧分别进行分层,其中分层的层数是大于等于3;
(4.3)对分层后的第i帧和第i+1帧进行前向运动估计,以得到前向运动矢量场;
(4.4)对分层后的第i帧和第i+1帧进行后向运动估计,以得到后向运动矢量场;
(4.5)根据前向运动矢量场和后向运动矢量场判断第i帧和第i+1帧之间是否存在场景切换或运动过于剧烈,如果存在场景切换或运动过于剧烈,则转入步骤(4.6),否则转入步骤(4.7);
(4.6)直接将第i+1帧插入第i帧和第i+1帧之间,设置i=i+1,并返回步骤(2);
(4.7)采用矢量中值滤波对上述得到的前向和后向运动矢量场中不可靠的运动矢量进行处理,并寻找搜索窗中,距离其它矢量最近的运动矢量替代该不可靠的运动矢量。
3.根据权利要求2所述的视频帧率提升方法,其特征在于,步骤(4.3)包括以下子步骤:
(4.3.1)对第i帧中最上层的所有块进行前向运动估计,以获得所有块的运动矢量;
(4.3.2)根据第i帧中最上层所有块的运动矢量计算第i帧中第二层所有块的运动矢量;
(4.3.3)根据第i帧中最二层所有块的运动矢量计算第i帧中第三层所有块的运动矢量。
4.根据权利要求3所述的视频帧率提升方法,其特征在于,步骤(4.3.1)包括以下子步骤:
(4.3.1.1)设置计数器k=1,对第k块进行空间运动矢量预测,以得到最上层第k块的空间运动预测矢量;
(4.3.1.2)使用PMVFAST算法获取第k块的运动矢量;
(4.3.1.3)设置k=k+1,并重复上述步骤(4.3.1.1)和(4.3.1.2),直到获取第i帧中最上层所有块的运动矢量为止。
5.根据权利要求3所述的视频帧率提升方法,其特征在于,步骤(4.3.2)包括以下子步骤:
(4.3.2.1)设置计数器m=1,并对步骤(4.2)分层后的第i帧中第二层的第m块进行层间运动预测,以得到第二层的第m块的层间运动预测矢量;
(4.3.2.2)对第i帧中第二层的第m块进行全局运动估计,以得到第二层的第m块的全局运动预测矢量;
(4.3.2.3)使用PMVFAST算法获取第二层的第m块的运动矢量;
(4.3.2.4)设置m=m+1,并重复上述步骤(4.3.2.1)至(4.3.2.3),直到获取第i帧中第二层所有块的运动矢量为止。
6.根据权利要求3所述的视频帧率提升方法,其特征在于,步骤(4.3.3)包括以下子步骤:
(4.3.3.1)设置计数器n=1,并对步骤(4.2)分层后的第i帧中第三层的第n块进行层间运动预测,以得到第三层的第n块的层间运动预测矢量;
(4.3.3.2)对第i帧中第三层的第n块进行全局运动估计,以得到第三层的第n块的全局运动预测矢量;
(4.3.3.3)使用PMVFAST算法获取第三层的第n块的运动矢量MVC;
(4.3.3.4)判断第n块的SAD值是否超过某一阈值,如果超过,则转入步骤(4.3.3.5),否则转入步骤(4.4.3.6);
(4.3.3.5)把第n块分为4q个均匀大小的小块,其中q为正整数,且满足4q≤N2,对这4q块,在n块的运动矢量所指区域的p*p(p为正整数)大小范围内找到SAD值最小的小块的运动矢量,然后转入步骤(4.3.3.6);
(4.3.3.6)设置n=n+1,并重复上述步骤(4.3.3.1)至(4.3.3.5),直到获取第i帧中第三层所有块的运动矢量为止。
7.根据权利要求2所述的视频帧率提升方法,其特征在于,步骤(4.4)包括以下子步骤:
(4.4.1)对第i+1帧中最上层的所有块进行后向运动估计,以获得所有块的运动矢量;
(4.4.2)根据第i+1帧中最上层所有块的运动矢量计算第i+1帧中第二层所有块的运动矢量;
(4.4.3)根据第i+1帧中最二层所有块的运动矢量计算第i+1帧中第三层所有块的运动矢量。
8.根据权利要求6所述的视频帧率提升方法,其特征在于,步骤(4.4.1)包括以下子步骤:
(4.4.1.1)设置计数器k’=1,对第k’块进行空间运动矢量预测,以得到最上层第k’块的空间运动预测矢量;
(4.4.1.2)使用PMVFAST算法获取第k’块的运动矢量;
(4.4.1.3)设置k’=k’+1,并重复上述步骤(4.4.1.1)和(4.4.1.2),直到获取第i+1帧中最上层所有块的运动矢量为止。
9.根据权利要求6所述的视频帧率提升方法,其特征在于,步骤(4.4.2)包括以下子步骤:
(4.4.2.1)设置计数器m’=1,并对步骤(4.2)分层后的第i+1帧中第二层的第m’块进行层间运动预测,以得到第二层的第m’块的层间运动预测矢量;
(4.4.2.2)对第i+1帧中第二层的第m’块进行全局运动估计,以得到第二层的第m’块的全局运动预测矢量;
(4.4.2.3)使用PMVFAST算法获取第二层的第m’块的运动矢量;
(4.4.2.4)设置m’=m’+1,并重复上述步骤(4.4.2.1)至(4.4.2.3),直到获取第i+1帧中第二层所有块的运动矢量为止。
10.根据权利要求6所述的视频帧率提升方法,其特征在于,步骤(4.4.3)包括以下子步骤:
(4.4.3.1)设置计数器n’=1,并对步骤(4.2)分层后的第i+1帧中第三层的第n’块进行层间运动预测,以得到第三层的第n’块的层间运动预测矢量;
(4.4.3.2)对第i+1帧中第三层的第n’块进行全局运动估计,以得到第三层的第n’块的全局运动预测矢量;
(4.4.3.3)使用PMVFAST算法获取第三层的第n’块的运动矢量;
(4.4.3.4)判断第n’块的SAD值是否超过某一阈值,如果超过,则转入步骤(4.4.3.5),否则转入步骤(4.4.3.6);
(4.4.3.5)把第n’块分为4q个均匀大小的小块,且满足4q≤N2,对这4q块,在n’块的运动矢量所指区域的p’*p’大小范围内找到SAD值最小的小块的运动矢量,其中p’和q均为正整数,然后转入步骤(4.4.3.6);
(4.4.3.6)设置n’=n’+1,并重复上述步骤(4.4.3.1)至(4.4.3.5),直到获取第i帧中第三层所有块的运动矢量为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310057001.5A CN103152566B (zh) | 2013-02-22 | 2013-02-22 | 一种视频帧率提升方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310057001.5A CN103152566B (zh) | 2013-02-22 | 2013-02-22 | 一种视频帧率提升方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103152566A true CN103152566A (zh) | 2013-06-12 |
CN103152566B CN103152566B (zh) | 2016-03-09 |
Family
ID=48550408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310057001.5A Expired - Fee Related CN103152566B (zh) | 2013-02-22 | 2013-02-22 | 一种视频帧率提升方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103152566B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103313059A (zh) * | 2013-06-14 | 2013-09-18 | 珠海全志科技股份有限公司 | 一种帧率提升中闭塞区域的判定方法 |
CN106303546A (zh) * | 2016-08-31 | 2017-01-04 | 四川长虹通信科技有限公司 | 一种帧速率上转换方法及系统 |
CN111726636A (zh) * | 2019-03-18 | 2020-09-29 | 四川大学 | 一种基于时域下采样与帧率上转换的hevc编码优化方法 |
CN113014936A (zh) * | 2021-02-24 | 2021-06-22 | 北京百度网讯科技有限公司 | 视频插帧方法、装置、设备以及存储介质 |
CN113269086A (zh) * | 2021-05-24 | 2021-08-17 | 苏州睿东科技开发有限公司 | 一种vlog剪辑方法和剪辑系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101010964A (zh) * | 2004-07-01 | 2007-08-01 | 高通股份有限公司 | 在可分级视频编码中的使用帧速率上变换技术的方法与设备 |
CN101375315A (zh) * | 2006-01-27 | 2009-02-25 | 图象公司 | 数字重制2d和3d运动画面以呈现提高的视觉质量的方法和系统 |
CN102055947A (zh) * | 2009-11-09 | 2011-05-11 | 英特尔公司 | 使用运动估计和补偿的帧速率转换 |
-
2013
- 2013-02-22 CN CN201310057001.5A patent/CN103152566B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101010964A (zh) * | 2004-07-01 | 2007-08-01 | 高通股份有限公司 | 在可分级视频编码中的使用帧速率上变换技术的方法与设备 |
CN101375315A (zh) * | 2006-01-27 | 2009-02-25 | 图象公司 | 数字重制2d和3d运动画面以呈现提高的视觉质量的方法和系统 |
CN102055947A (zh) * | 2009-11-09 | 2011-05-11 | 英特尔公司 | 使用运动估计和补偿的帧速率转换 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103313059A (zh) * | 2013-06-14 | 2013-09-18 | 珠海全志科技股份有限公司 | 一种帧率提升中闭塞区域的判定方法 |
CN103313059B (zh) * | 2013-06-14 | 2016-04-27 | 珠海全志科技股份有限公司 | 一种帧率提升中闭塞区域的判定方法 |
CN106303546A (zh) * | 2016-08-31 | 2017-01-04 | 四川长虹通信科技有限公司 | 一种帧速率上转换方法及系统 |
CN106303546B (zh) * | 2016-08-31 | 2019-05-14 | 四川长虹通信科技有限公司 | 一种帧速率上转换方法及系统 |
CN111726636A (zh) * | 2019-03-18 | 2020-09-29 | 四川大学 | 一种基于时域下采样与帧率上转换的hevc编码优化方法 |
CN113014936A (zh) * | 2021-02-24 | 2021-06-22 | 北京百度网讯科技有限公司 | 视频插帧方法、装置、设备以及存储介质 |
CN113014936B (zh) * | 2021-02-24 | 2022-12-13 | 北京百度网讯科技有限公司 | 视频插帧方法、装置、设备以及存储介质 |
CN113269086A (zh) * | 2021-05-24 | 2021-08-17 | 苏州睿东科技开发有限公司 | 一种vlog剪辑方法和剪辑系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103152566B (zh) | 2016-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101248671B (zh) | 视差矢量估计方法以及对多视点画面编码和解码的设备 | |
JP4928627B2 (ja) | 動き推定の探索範囲の適応選択方法及び装置 | |
CN110312132B (zh) | 一种编解码方法、装置及其设备 | |
CN110677675A (zh) | 高效的仿射Merge运动矢量推导 | |
CN103152566A (zh) | 一种视频帧率提升方法 | |
CN106507116B (zh) | 一种基于3d显著性信息和视点合成预测的3d-hevc编码方法 | |
CN102881018B (zh) | 一种图像深度图生成方法 | |
CN103327327B (zh) | 用于高性能视频编码hevc的帧间预测编码单元选择方法 | |
CN102378010A (zh) | 一种视频数据还原的插帧方法 | |
CN103475879A (zh) | 一种分布式视频编码中边信息生成方法 | |
CN103475884A (zh) | 面向hbp编码格式的立体视频b帧整帧丢失错误隐藏方法 | |
CN101895749A (zh) | 一种快速视差估计和运动估计方法 | |
CN1322758C (zh) | 基于对象的纹理快速运动估值的方法 | |
CN102325254B (zh) | 一种立体视频的编、解码方法及装置 | |
CN107707916A (zh) | 一种基于场景切变检测的帧率转换算法 | |
CN101600105A (zh) | 帧频提升方法 | |
CN103517078A (zh) | 分布式视频编码中边信息生成方法 | |
CN105306952B (zh) | 一种降低边信息生成计算复杂度的方法 | |
CN109413426A (zh) | 视频编码处理方法 | |
CN102111622A (zh) | 一种视频图像的时域错误隐藏方法及装置 | |
CN107454429A (zh) | 基于运动向量外推和图像梯度加权的视频错误隐藏方法 | |
CN102378009B (zh) | 一种视差估计快速算法 | |
CN103475883B (zh) | 一种基于运动区域划分的hevc运动估计提前终止方法 | |
Hong et al. | Object-based error concealment in 3D video | |
RU2809504C1 (ru) | Способ получения искомого значения предсказания субблока, декодирующий аппарат, устройство декодирования видеоданных, электронное устройство и долговременный носитель информации |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160309 Termination date: 20170222 |