一种视音频处理的方法

文档序号:7782511阅读:206来源:国知局
专利名称:一种视音频处理的方法
技术领域
本发明涉及非线性编辑系统中数字视音频制作技术领域,尤其涉及ー种视音频处理的方法。
背景技术
任何包含视音频处理的应用程序都必须处理视频帧率和音频采样率的关系,视频处理是以帧(场)为单位的,为了满足视音频的同步及其计算要求,音频也必须以帧(场)为单位处理,包括数据载入、编解码、音频变速、音频特技、将音频提交到设备中播放或存贮等等。常见的音频采样率有8K、16K、32K、44. 1K、48K、96K,且在不同制式中视频的帧率(中贞率(Frame rate)是用于测量显示巾贞数的量度,测量单位为姆秒显示巾贞数(Frames per Second,简称FPS)或“赫兹”(Hz),常见的帧率有:23. 97、24、25、29. 97、30、50、59. 94、60。目前很多视音频制作软件只支持各种视频帧率在音频采样率为48K的情况,无法处理其他音频采样率,或者只是简单的把其他音频采样率转换成48K的情況。在视音频处理过程中,是以视频单位为主线,所以音频的采样率必须转换成视频的采样率即帧率,这样,处理音频的关键之一就是计算任意帧(场)音频的采样sample个数及其逆运算。然而,在计算每帧视频对应的音频采样个数吋,即音频采样率/视频帧率不一定是ー个整数,而在处理视音频的过程中要求,必须是ー个整数,所以必须找到ー种方法计算每帧视频对应着多少音频,而且这个数必须是ー个整数。发明人在实施本发明的过程中,发现现有技术存在以下技术问题I、现有的处理音频的方法很多都是把各种采样率的音频都转换成48K的音频。2、音频转换的方法,无法保证其原始的音频采样率,原来的音频数据遭到了破坏,无法还原成原始文件,在有的场合是无法容忍的。3、音频采样率的转换需要时间,増加了 CPU的负荷。4、有的场合对数据的大小有严格的限制,而对音质的要求不高,48K数据量太大,不适合,比如电话录音,这种场合往往8K的音频采样率就足够了。

发明内容
为了解决上述现有技术的缺点,本发明的主要目的是提供一种视音频处理的方法,能获取在播放ー帧视频同时需要播放多少个音频采样个数,井能够获取任意视频帧对应的音频采样个数,并且获取的音频采样个数是整数,因此,使得视音频处理过程中能应用任意音频采样率的音频文件。为了达到上述目的,本发明提供了一种视音频处理的方法,具体包括获取视频帧率与音频采样率;根据所述音频采样率与所述视频帧率计算每播放ー帧视频对应的音频采样个数,所述音频采样个数包括整数部分音频采样个数与小数部分音频采样个数;根据所述小数部分音频采样个数,分别获取相邻帧累积产生的音频采样个数;分别对所述相邻帧累积产生的音频采样个数向上取整,并作差,以做差的绝对值作为当前视频帧中相邻帧的音频采样个数差;根据所述整数部分音频采样个数与所述相邻帧的音频采样个数差,得到当前视频帧中音频采样个数。本发明提供的视音频处理方法,提供了一种获取播放ー帧视频的同时需要播放多少音频采样个数的方法,井能够获取任意视频帧对应的音频采样个数,并且获取的音频采样个数是整数,是唯一确定的。因此,使得视音频处理过程中能应用任意音频采样率的音频文件。


为了更清楚的说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例中处理视音频处理的方法流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然所描述的实施例仅是本发明的一部分实施例,不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例一方面提供了一种视音频处理的方法,该方法实现过程如图I所示,具体包括步骤SlOl :获取视频帧率与音频采样率。步骤S102 :根据所述音频采样率与所述视频帧率计算每帧视频对应的音频采样个数,所述音频采样个数包括整数部分音频采样个数与小数部分音频采样个数。步骤S103 :根据所述小数部分音频采样个数,分别获取相邻帧累积产生的音频采样个数。步骤S104:分别对所述相邻帧累积产生的音频采样个数向上取整,并作差,以做差的绝对值作为当前视频帧中相邻帧的音频采样个数差。步骤S105 :根据所述整数部分音频采样个数与所述相邻帧的音频采样个数差,得到当前视频帧中音频采样个数。步骤S106 :播放当前视频巾贞,同时播放所述当前视频巾贞中音频采样个数对应的音频。本发明提供的视音频处理方法,能够实现获取播放一帧视频的同时需要播放音频采样个数的方法,井能能够获取任意视频帧的音频采样个数,并且获取的音频采样个数是整数,是唯一确定的。因此,使得视音频处理过程中能应用任意音频采样率的音频文件。
由于视频的帧率和音频的采样率都有很多种,直接用音频采样率除以视频的帧率得到值可能不是ー个整数,所以必须采用一定的方法确定播放一帧视频的同时需要播放音频采样的个数。本发明中采用如下方法进行处理首先视频帧率除以音频采样率得到音频采样个数,并将计算得到的音频采样个数的整数部分标记为M,得到的小数部分标记为D,这样每帧视频对应的音频个数可以限制在M和M+1两个值中的ー个。因此,技术的关键就在于如何将M和D等价的转换成M或M+1,使计算得到的音频采样的总数相等。本发明实施例ニ是对实施例一的进ー步详细说明,本发明实施例中以T表示帧号,SR(SampleRate)表示音频采样率,FR(FrameRate)表示当前视频巾贞率,当用户输入任意SR的音频和FR的视频时,获取以T为开始位置的帧数n对应的sample的个数时,方法如下步骤S201 :获取到用户输入的视频帧率FR与音频采样率SR。具体的,该SR可以是多种音频采样率,克服了现有技术中只能是48K的局限。 步骤S202 :根据当前的FR和SR计算每个帧Frame对应的Sample的个数为SampleRate/FrameRate =整数部分 M,小数部分 D。步骤S203 :获取当前帧中小数部分音频采样个数D在相邻帧累积产生的音频采样个数,并按照如下公式进行计算当前视频帧中相邻帧的音频采样个数差。ceil((T+l)*D)_ceil(T*D) (I)其中,T为当前位置帧,D为每帧视频中小数部分音频采样个数,ceil为返回大于或者等于指定表达式的最小整数。具体的,从0到T共T+1帧,小数部分累积产生的Sample个数为(T+l) *D,上述公式(I)中,由于ceil ((T+l)*D)_ceil (T*D)范围是
,可知小数累积产生的sample比较均匀的分散在0到T范围内,并且计算出的任意两帧对应的Sample个数只有两种情况相等或相差ー个Sample,具有较好的均匀性,没有误差累积。步骤S204 :将步骤S202中得到的整数部分音频采样个数与所述相邻帧的音频采样个数差做和,得到当前视频巾贞中音频采样个数,即第T Frame对应的Sample个数为M+ceil((T+l)*D)_ceil(T*D) (2)其中,T为当前位置帧,M为每帧视频中整数部分音频采样个数,D为每帧视频中小数部分音频采样个数,ceil为返回大于或者等于指定表达式的最小整数。优选的,以T为起始位置的n个Frame对应的Sample个数为n*M+ceil ((T+n) *D)-ceil (T*D) ; (3)下面是以视频帧率为29. 97,音频采样率为44. 1K,帧模式,为例利用公式(2)计算以17帧开始的10帧其中,29.97 实际上是 30*1000/1001。44100/(30*1000/1001)得到整数部分 1471,小数部分 0. 47按照公式(2)计算可得以17帧开始的10帧计算得到的每ー视频帧对应的sample
个数如下表所示
I: 17 I 18 19 20 21 [ 22 f 23 C 24 I: 25 I 26 : Sample l' 1472 ] 1471 1472 1471 1472 [ 1471 l' 1472 l' 1471 l' 1472 ] 1471 ^
上述获取的当前帧对应的音频采样个数都为整数,能够直接进行视音频的处理。优选的,如果D是ー个有限小数或无限循环小数,每隔几帧就会出现重复数据,即与当前帧相隔D的最小公倍数视频帧中将包含与当前视频帧相同的音频采样个数。例如如果D*X是ー个整数N,那么每隔X帧就会出现重复数据第T个Frame对应的Sample个数为M+ceil((T+l)*D)-ceil(T*D);贝1J,第T+X个Frame对应的Sample个数为
M+ceil((T+X+l)*D)-ceil ((T+X)*D)=M+ceil ((T+l) *D)-ceiI (T*D)即第T帧和第T+X帧对应的Sample个数是相等的。优选的,由于当前帧与当前帧相隔D的最小公倍数视频帧的音频采样个数是相等的,因此,可以记录当前巾贞中Sample的个数,进行算法的优化,利用SampleRate/FrameRate动态产生表,求出分子分母的最大公約数,然后用分母除以最大公約数得到G,G*G就是数组的大小,利用查表的方法获取与当前帧相隔所述小数部分音频采样个数最小公倍数视频帧的音频采样个数。优选的,利用本实施例中的公式(2)可以进行逆运算,即把给定的音频采样个数转换成对应的视频帧数,具体过程如下设Sample的个数为Y,Y个Sample对应的以T为起始位置的帧数为n。根据公式(3)可知,Y = n*M+ceil ((T+n)*D)-ceil (T*D)则,Y+ceil(T*D) = n*M+ceil ((T+n) *D) < = n*M+(T+n) *D+1 (4)因此,n>=((Y+ceil(T*D)-l_T*DV(M+D))> = floor ((Y+ceil (T*D) _1_T*D) / (M+D))> = floor ((Y-I) / (M+D)) (5)具体的,由上述计算可以看出n大于等于floor ((Y-I) / (M+D))即n的取值可能为floor ((Y-I) / (M+D))或者是floor ((Y-I) / (M+D)) +1,为了确定是两个值中的哪ー个,可以把floor ((Y-I)/(M+D))+l的值带入到公式(3)中,如果得到的结果小于等于Y,那么说明n=floor ((Y-I) / (M+D)) +1 ;否则 n = floor ((Y-I) / (M+D))。其中,floor表示向下取整。优选的,本实施例的上述方法也可以利用查表的方法实现。本发明实施例提供的获取ー个视频帧对应的音频采样个数的方法,能够获取任意视频帧的音频采样个数,并且获取的音频采样个数是整数,是唯一确定的。因此,使得视音频处理过程中能应用任意音频采样率的音频文件。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述,仅为本发明的具体实施例,但本发明的特征并不局限于此,任何熟悉该项技术的人在本发明领域内,可轻易想到的变化或修 饰,都应涵盖在以下本发明的申请专利范围中。
权利要求
1.一种视音频处理的方法,其特征在于,该方法包括 根据所述音频采样率与所述视频帧率计算每播放一帧视频对应的音频采样个数,所述音频采样个数包括整数部分音频采样个数与小数部分音频采样个数; 根据所述小数部分音频采样个数,分别获取相邻帧累积产生的音频采样个数; 分别对所述相邻帧累积产生的音频采样个数向上取整,并作差,以做差的绝对值作为当前视频帧中相邻帧的音频采样个数差; 根据所述整数部分音频采样个数与所述相邻帧的音频采样个数差,得到当前视频帧中音频采样个数; 播放当前视频帧,同时播放所述当前视频帧中音频采样个数对应的音频。
2.如权利要求I所述的视音频处理的方法,其特征在于,所述获取当前视频帧中音频采样个数的计算方法具体为M+ceil((T+l)*D)-ceil(T*D) 其中,T为当前位置帧,M为每帧视频中整数部分音频采样个数,D为每帧视频中小数部分音频采样个数,ceil为返回大于或者等于指定表达式的最小整数。
3.如权利要求2所述的视音频处理的方法,其特征在于,该方法还包括获取多个视频帧的音频采样个数,具体为n*M+ceil((T+n)*D)-ceil(T*D) 其中,n为视频帧数,T为起始位置帧,M为每帧视频中整数部分音频采样个数,D为每帧视频中小数部分音频采样个数,ceil为返回大于或者等于指定表达式的最小整数。
4.如权利要求I所述的视音频处理的方法,其特征在于,所述相邻帧的音频采样个数差的取值范围为 大于等于O,且小于等于I的整数。
5.如权利要求I所述的视音频处理的方法,其特征在于,当所述小数部分音频采样个数为无限小数或无限循环小数时,与当前帧相隔所述小数部分音频采样个数最小公倍数视频帧中包含与当前视频帧相同的音频采样个数。
6.如权利要求4所述的视音频处理的方法,其特征在于,该方法还包括 通过查表法,获取与当前帧相隔所述小数部分音频采样个数最小公倍数视频帧的音频采样个数。
7.如权利要求I所述的视音频处理的方法,其特征在于,所述得到的当前视频帧中音频采样个数为整数。
全文摘要
本发明公开了一种视音频处理的方法,包括根据所述音频采样率与所述视频帧率计算每播放一帧视频需要播放的音频采样个数,所述音频采样个数包括整数部分音频采样个数与小数部分音频采样个数;根据所述小数部分音频采样个数,分别获取相邻帧累积产生的音频采样个数;分别对所述相邻帧累积产生的音频采样个数向上取整,并作差,以做差的绝对值作为当前视频帧中相邻帧的音频采样个数差;根据所述整数部分音频采样个数与所述相邻帧的音频采样个数差,得到当前视频帧中音频采样个数。通过本发明使得视音频处理过程中能应用任意音频采样率的音频文件。
文档编号H04N5/91GK102761724SQ20111042328
公开日2012年10月31日 申请日期2011年12月16日 优先权日2011年12月16日
发明者李庆庄, 郑明宝 申请人:新奥特(北京)视频技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1