发明名称 一种视频帧率提升方法
摘要 本发明公开了一种视频帧率提升方法,包括:读入视频,设置计数器i=1,并计算视频的第i帧作为当前帧、当前帧的下一帧中所有像素点的梯度值,将第i帧和第i+1帧中所有像素点的梯度值作为像素值,重新构建第i帧和第i+1帧的像素点集合以形成重新构建的第i帧和第i+1帧,对重新构建的第i帧和第i+1帧进行基于预测的双向分层运动估计,以得到前向运动矢量场和后向运动矢量场,根据前向运动矢量场和后向运动矢量场,并采用双线性插值法计算出第i帧和第i+1帧中每个像素的运动矢量,并对第i帧中像素做遮挡判断。相对于现有的视频帧率提升方法,本发明减小了视频本身质量对运动估计准确性的影响,解决了分块过大带来的问题,并使得双线性插值的结果更精确。
申请公布号 CN103152566B 申请公布日期 2016.03.09
申请号 CN201310057001.5 申请日期 2013.02.22
申请人 华中科技大学 发明人 谢玖实;谭毅华;李彦胜;田金文
分类号 H04N19/513(2014.01)I;H04N19/51(2014.01)I;H04N19/527(2014.01)I;H04N19/86(2014.01)I 主分类号 H04N19/513(2014.01)I
代理机构 华中科技大学专利中心 42201 代理人 朱仁玲
主权项 一种视频帧率提升方法,其特征在于,包括以下步骤:(1)读入视频;(2)设置计数器i=1,并采用以下公式计算视频的第i帧作为当前帧、当前帧的下一帧中所有像素点的梯度值,<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>J</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000760063390000011.GIF" wi="205" he="79" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mo>=</mo><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>I</mi><mi>i</mi></msub><mo>(</mo><mi>x</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>y</mi><mo>)</mo><mo>-</mo><msub><mi>I</mi><mi>i</mi></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>I</mi><mi>i</mi></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>+</mo><mn>1</mn><mo>)</mo><mo>-</mo><msub><mi>I</mi><mi>i</mi></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt><mo>,</mo><msub><msub><mi>J</mi><mi>i</mi></msub><mrow><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000760063390000012.GIF" wi="1236" he="107" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mo>=</mo><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>I</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>(</mo><mi>x</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>y</mi><mo>)</mo><mo>-</mo><msub><mi>I</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>I</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>+</mo><mn>1</mn><mo>)</mo><mo>-</mo><msub><mi>I</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt><mo>,</mo></mrow>]]></math><img file="FDA0000760063390000013.GIF" wi="1624" he="99" /></maths>其中(x,y)表示帧中像素点的坐标,I<sub>i</sub>(x,y)表示第i帧中像素点的像素值,J<sub>i</sub>(x,y)表示第i帧中像素点的梯度值;(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;(4.3)对分层后的第i帧和第i+1帧进行前向运动估计,以得到前向运动矢量场;本步骤包括以下子步骤:(4.3.1)对第i帧中最上层的所有块进行前向运动估计,以获得所有块的运动矢量;(4.3.2)根据第i帧中最上层所有块的运动矢量计算第i帧中第二层所有块的运动矢量;(4.3.3)根据第i帧中最上层所有块的运动矢量计算第i帧中第三层所有块的运动矢量;本步骤包括以下子步骤:(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≤N<sup>2</sup>,对这4q块,在n块的运动矢量所指区域的p*p大小范围内找到SAD值最小的小块的运动矢量,其中p为正整数,然后转入步骤(4.3.3.6);(4.3.3.6)设置n=n+1,并重复上述步骤(4.3.3.1)至(4.3.3.5),直到获取第i帧中第三层所有块的运动矢量为止;(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)采用矢量中值滤波对上述得到的前向和后向运动矢量场中不可靠的运动矢量进行处理,并寻找搜索窗中,距离其它矢量最近的运动矢量替代该不可靠的运动矢量;(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),直到视频的所有帧都处理完毕为止。
地址 430074 湖北省武汉市洪山区珞喻路1037号