一种视频帧率转换方法

文档序号:7752910阅读:480来源:国知局
专利名称:一种视频帧率转换方法
技术领域
本发明涉及视频转码领域,尤其涉及一种视频帧率转换方法。
背景技术
目前手机上的视频节目主要有两大来源,一是通过视频采集卡从电视信号采集图 像并转码,二是从个人电脑上的媒体文件转码。由于手机终端计算能力比较弱,以及无线传 输带宽有限,手机视频编码所采用的帧率往往要比电视信号、PC上的媒体文件低得多。手 机视频编码采用的帧率一般为5帧/秒-15帧/秒。电视信号的帧率为25帧/秒(PAL制 式)或者30帧/秒(NTSC制式),而PC上的媒体文件帧率也多数在15帧/秒以上。因此, 在进行手机视频转码的时候,需要一种帧率转换算法从输入的高帧率视频序列中抽取出编 码所需要的低帧率视频序列。目前常用的帧率转换方法是根据输入帧率与输出帧率之间的倍数关系,从输入帧 序列中每隔若干帧抽取出一帧(例如,输入帧率是25帧/秒,期望的输出帧率是5帧/秒, 则需要从输入序列中每5帧抽取出1帧输出),但这种方法在输入帧率与输出帧率不成整 数倍关系时会变得难以处理;另外,对于一些中低端的视频采集系统,在视频采集发生丢帧 时,会导致采集的视频序列帧率并没有严格达到所设定的帧率;而部分PC上的媒体文件格 式,例如RMVB,还支持变帧率视频,使得输入视频序列帧与帧之间的时间间隔不是恒定。

发明内容
本发明实施例的目的在于提出一种视频帧率转换方法,旨在解决现有技术无法从 任意的输入帧率转换到任意的输出帧率、无法处理输入视频帧率可变、输入视频丢帧等问题。为了实现上述目的,本发明实施例提出一种视频帧率转换方法,该方法是这样来 实现的a.初始化η — 1,Q1 — P1, O1 — I1,以Q1作为第一个输出帧输出;b.更新 O2 — O1+ Δ,η — 2,m — 2,Bestm = + ⑴;c.判定 I In-Om I < Bestm,进入步骤 d ;d.更新 Bestm 一 I In-Om |,Qm — Pn ;e.令η —n+1,转到下一个输入帧,进入步骤c ;其中Pn为输入的第η巾贞,In是输入的第η帧的时间戳;Qm为目前最适合作为第m个 输出的帧,Om为第m个输出帧的期望时间戳,△是输出帧之间按照输出帧率应有的时间间 隔,Om满足Om = Om-^A ;Bestm是目前输入帧中的与Om最接近的时间戳与Om的绝对值(即
In-Oj的最小值),+①为正无穷大。优选地,所述步骤b之后还包括判定I In-Oj彡Besm,进入步骤f ;f.以Qm作为第m个输出帧输出;
g.令 m — m+1,Om — Onrl+ Δ,h.转入步骤d;其中In是输入的第η帧的时间戳;Qm为目前最适合作为第m个输出的帧,Om为 第m个输出帧的期望时间戳,Δ是输出帧之间按照输出帧率应有的时间间隔,Om满足Om = Offl^1+Δ ;Bestm是目前输入帧中的与Om最接近的时间戳,与Om差值的绝对值(即Iln-O1J的 最小值)。优选地,所述步骤g和步骤h之间还包括I.判定In-Offl > Δ,则进入步骤J,否则进入步骤d ;J.计算i = (Ιη_0ω)\Δ,其中符号“\”代表整除; K.将帧 Qnrl 重复 i 次输出,更新 m — m+i,Om 一 Om-Ji* Δ。其中In是输入的第η帧的时间戳;Qm为目前最适合作为第m个输出的帧,Om为 第m个输出帧的期望时间戳,Δ是输出帧之间按照输出帧率应有的时间间隔,Om满足Om = Om-A本发明的有益效果一、具有良好的通用性。支持从任意的输入帧率转换到任意的 输出帧率,还支持变帧率的输入,只要求输入帧率大于或者等于输出帧率。适用于直播电视 信号的转码以及媒体文件的转码;二、有较好的容错性。当输入视频序列发生丢帧导致输出 帧找不到匹配帧时,本发明可以检测出来,找不到匹配的输出帧使用当前最近的一个输出 帧替代,以保持输出的帧率,而后续的输出帧不会因为前面丢帧而导致与输入帧失去同步。


图1是本发明实施例1的视频帧率转换方法流程图;图2是本发明实施例2的视频帧率转换方法流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对 本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理 解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。本发明需要输入的视频序列中的每一帧都带有时间戳(即该帧采集或播放的时 间标记),而且视频序列按照时间戳递增顺序输入。本发明使用第一个输入帧作为输出,并 使用第一个输入帧的时间戳作为第一个输出帧的期望时间戳。然后根据输出帧率,计算出 下一个输出帧的期望时间戳。对于之后每个输入帧,比较其时间戳是否比上一个输入帧更 接近输出帧的期望时间戳。如果更接近,则抛弃上一个输入帧,让当前输入帧成为新的输出 候选帧;如果不比上一帧更接近,则使用上一个输入帧作为输出,并根据输出帧率计算出下 一个输出帧的期望时间戳。为了有更好的容错性,在转到寻找下一个输出帧之前,检查当前 输入帧时间戳是否比下一个输出帧的期望时间戳大了超过一个输出帧的时间间隔。如果 是,则有一个或更多的输出帧找不到匹配的输入帧,需要进行容错处理,以保障后续输出帧 仍可以正确的找到最佳匹配。实施例一令Pn为输入的第η巾贞,In是输入的第η帧的时间戳;令Qm为目前最适合作为第m个输出的帧,Om为第m个输出帧的期望时间戳,△是输出帧之间按照输出帧率应有的时间 间隔,则Om满足Om = Offl^1+ Δ ;令Bestffl是目前输入帧中的与Om最接近的时间戳,与Om差值 的绝对值(即Iln-O1J的最小值,例如对于Best1,就是不同的η之中,Iln-O1I中最小的;对 于Best2,就是不同的η之中,|ln-02|中最小的,以此类推);其中所述期望时间戳是根据输 出帧率设定理想状态下的帧输出时间,例如,若输出帧率是5帧每秒,第一帧的期望时间戳 是0秒,第二帧就是0. 2,第三个就是0. 4,以此类推。本发明需要输入的视频序列中的每一 帧都带有时间戳,而且视频序列按照时间戳递增顺序输入,如果输入的视频是从电视信号 采集而来,时间戳可以从图像的采集时间获得;如果输入的视频是个人电脑上的媒体文件, 则时间戳可以从图像的PTS(Presentation Time Stamp,播放时间戳)获得。图1所示为本发明实施例的视频帧率转换方法流程图。所述方法包括以下步骤S101,初始化η — 1,Q1 — P1, O1 — I1,以Q1作为第一个输出帧输出;S102,更新 O2 — Oi+Δ,η — 2,m — 2,Bestm = + ⑴,其中 + ⑴表示正无穷大;S103,比较当前输入帧时间戳与当前候选输出帧期望时间戳差值的绝对值 (I In-OmI与Bestm的大小,若ι In-OmI小于Bestm,转步骤S104 ;否则转步骤S106 ;S104,更新 Bestm 一 | In-Om |,Qm — Pn ;S105,n — n+1,转到下一个输入帧,进入步骤S103 ;S106,&Qm作为第m个输出帧输出;S107,令 m— m+l,Om 一 Ομ+Δ ;S108,判断如果In-Om > Δ,则进入步骤S109,否则进入步骤S104 ;S109,计算i = (Ιη_0ω)\Δ,其中符号“\”代表整除;Sl 10,将中贞Qm^1重复i次输出,更新m — m+i,Om — OmJi* Δ,进入步骤S104。由于输入视频序列时间戳是递增的,因此如果I In-Oj > I Ilri-O1J,则I In+1_0j、 In+2-0m|、···也必定大于Ilri-O1J,可以确定Bestm不会再被更新,与Om最接近的输入帧就
是卩㈣。本方法步骤S103先判断新输入帧Iln-OmI能否更新Bestm。如果能,执行步骤 S104,更新Bestm,并令Pn成新的输出候选帧Qm,转到处理下一个输入帧,返回步骤S103 ;如 果不能,可以确认Ilri与Om是最接近的,因此执行步骤S106,输出Qm。接着在步骤S107转 到寻找下一个输出帧。步骤S108、S109、S110的加入是为了使方法有更好的容错性,避免输 入序列丢帧的情况下造成输入输出失去同步。如果Ιη_0ω> Δ,说明了从On^IjOlrt这个时 间段没有相应的输入帧,输入序列中没有与Om相匹配的帧。而且除了 0m,0m+1等也可能找不 到相匹配的输入帧,因此通过计算i = (In-Om) \ Δ,得到有多少个输出帧无法找到相匹配的 输入帧。这些找不到匹配的输出帧使用当前最近的一个输出帧Onrl替代,以保持输出的帧 率。然后更新m — m+i,Om^OmJhA。最后更新Bestm,让Pn成输出候选帧Qm。本发明实施例通过计算出每一个输出帧的期望时间戳,然后从输入帧队列中依次 选出与期望时间戳最为接近的帧输出,并具有容错性处理。本发明实施例通用性好,比较稳 定,支持从任意的输入帧率转换到任意的输出帧率,还支持变帧率的输入(只要求输入帧 率大于或者等于输出帧率即可);本发明实施例有较好的容错性,当输入视频序列发生丢 帧导致输出帧找不到匹配帧时,本发明方法可以检测出来,找不到匹配的输出帧使用当前 最近的一个输出帧替代,以保持输出的帧率,而后续的输出帧不会因为前面丢帧而导致与 输入帧失去同步。
5
实施例二令Pn为输入的第η巾贞,In是输入的第η帧的时间戳;令Qffl为目前最适合作为第m 个输出的候选帧,Om为第m个输出帧的期望时间戳,△是输出帧之间按照输出帧率应有的 时间间隔,则Om满足Om = Onri+ Δ ;令Bestffl是目前输入帧中的与Om最接近的时间戳与Om差 值的绝对值(即Iln-O1J的最小值,例如对于Best1,就是不同的η之中,Iln-O1I中最小的; 对于Best2,就是不同的η之中,|ln-02|中最小的,以此类推);其中所述期望时间戳是根据 输出帧率设定理想状态下的帧输出时间,例如,若输出帧率是5帧每秒,第一帧的期望时间 戳是0秒,第二帧就是0. 2,第三个就是0. 4,以此类推。本发明需要输入的视频序列中的每 一帧都带有时间戳,而且视频序列按照时间戳递增顺序输入,如果输入的视频是从电视信 号采集而来,时间戳可以从图像的采集时间获得;如果输入的视频是个人电脑上的媒体文 件,则时间戳可以从图像的PTS(Presentation Time Stamp,播放时间戳)获得。图2所示为本发明实施例的视频帧率转换方法流程图。所述方法与实施例1的区 别在于,其不包括步骤S108、S109、S110,从步骤S107直接进入步骤S104,所述方法包括以 下步骤S101,初始化η — 1,Q1 — P1, O1 — I1,以Q1作为第一个输出帧输出;S102,更新 O2 — Oi+Δ,η — 2,m — 2,Bestm = + ⑴,其中 + ⑴表示正无穷大;S103,比较当前输入帧时间戳与当前候选输出帧期望时间戳差值的绝对值 (I In-OmI)与Bestm的大小,若ι In-OmI小于Bestm,转步骤S104 ;否则转步骤S106 ;S104,更新 Bestm 一 | In-Om |,Qm — Pn ;S105,n — n+1,转到下一个输入帧,进入步骤S103 ;S106,&Qm作为第m个输出帧输出;S107,令 m — m+l,Om 一 Onri+Δ,进入步骤 S104 ;由于输入视频序列时间戳是递增的,因此如果I In-Oj > I Ilri-O1J,则I In+1_0j、 In+2-0m|、···也必定大于Ilri-O1J,可以确定Bestm不会再被更新,与Om最接近的输入帧就
是卩㈣。本方法步骤S103先判断新输入帧Iln-OmI能否更新Bestm。如果能,执行步骤 S104,更新Bestm,并令Pn成新的输出候选帧Qm,转到处理下一个输入帧,返回步骤S103 ;如 果不能,可以确认Ilri与Om是最接近的,因此执行步骤S106,输出Qm。接着在步骤S107转 到寻找下一个输出帧,然后跳转到步骤S104。本发明实施例通过计算出每一个输出帧的期望时间戳,然后从输入帧队列中依次 选出与期望时间戳最为接近的帧输出。本发明实施例通用性好,比较稳定,支持从任意的输 入帧率转换到任意的输出帧率,还支持变帧率的输入(只要求输入帧率大于或者等于输出 帧率即可)。本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可 以通过程序指令相关硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中, 所述的存储介质可以为ROM、RAM、磁盘、光盘等。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种视频帧率转换方法,其特征在于,所述方法包括步骤a.初始化n←1,Q1←P1,O1←I1,以Q1作为第一个输出帧输出;b.更新O2←O1+Δ,n←2,m←2,Bestm=+∞;c.判定|In-Om|<Bestm,进入步骤d;d.更新Bestm←|In-Om|,Qm←Pn;e.令n←n+1,转到下一个输入帧,进入步骤c;其中Pn为输入的第n帧,In是输入的第n帧的时间戳;Qm为目前最适合作为第m个输出的帧,Om为第m个输出帧的期望时间戳,Δ是输出帧之间按照输出帧率应有的时间间隔,Om满足Om=Om-1+Δ;Bestm是目前输入帧中的与Om最接近的时间戳与Om的绝对值(即|In-Om|的最小值),+∞为正无穷大。
2.如权利要求1所述的视频帧率转换方法,其特征在于,所述步骤b之后还包括 判定I In-O1J彡Bestm,进入步骤f ;f.WQm作为第m个输出帧输出;g.令m — m+l,Om 一 Onri+Δ,h.转入步骤d;其中In是输入的第η帧的时间戳;Qm为目前最适合作为第m个输出的帧,Om为第m个 输出帧的期望时间戳,Δ是输出帧之间按照输出帧率应有的时间间隔,Om满足Om = On^A ; Bestm是目前输入帧中的与Om最接近的时间戳,与Om差值的绝对值(即Iln-O1J的最小值)。
3.如权利要求2所述的视频帧率转换方法,其特征在于,所述步骤g和步骤h之间还包括I.判定In-Om > Δ,则进入步骤J,否则进入步骤d ; J-计算i = (Ιη_0ω)\Δ,其中符号“\”代表整除; K.将帧Qnri重复i次输出,更新m — m+i,Om 一 OmJi* Δ ;其中In是输入的第η帧的时间戳,Qffl为目前最适合作为第m个输出的帧,Om为第m个 输出帧的期望时间戳,Δ是输出帧之间按照输出帧率应有的时间间隔,Om满足Om = On^A15
4.如权利要求1或2或3所述的视频帧率转换方法,其特征在于,所述期望时间戳是根 据输出帧率设定理想状态下的帧输出时间。
5.如权利要求1或2或3所述的视频帧率转换方法,其特征在于,所述时间戳为帧的采 集或者播放时间标记。
6.如权利要求1或2或3所述的视频帧率转换方法,其特征在于,输入的视频序列中的 每一帧都带有时间戳。
7.如权利要求6所述的视频帧率转换方法,其特征在于,所述视频序列按照时间戳递 增顺序输入。
全文摘要
本发明公开一种视频帧率转换方法,输入的视频序列中的每一帧都带有时间戳,而且视频序列按照时间戳递增顺序输入,计算出每一个输出帧的期望时间戳,然后从输入帧队列中依次选出与期望时间戳最为接近的帧输出。本发明通用性好,比较稳定,支持从任意的输入帧率转换到任意的不大于输入帧率的输出帧率,还支持变帧率的输入且具有较好的容错性。
文档编号H04N7/01GK101888513SQ20101021405
公开日2010年11月17日 申请日期2010年6月29日 优先权日2010年6月29日
发明者叶迎宪 申请人:深圳市融创天下科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1