编解码处理器在无线视频传输过程中码率控制的方法

文档序号:7859821阅读:231来源:国知局
专利名称:编解码处理器在无线视频传输过程中码率控制的方法
技术领域
本发明涉及无线视频传输领域,特别是涉及改进编解码处理器在无线视频传输过程中码率控制的方法。
背景技术
随着3G (3rd_Generation,第三代移动通信技术)技术的日渐成熟和网络的普及,随时随地的查看视频图像成为一种趋势,视频监控业务也由传统的服务于安防行业,逐渐的发展为面向大众的信息化服务,并随着图像处理技术的提高,其应用领域也越来越广泛,逐渐渗透到教育、政府、娱乐、医疗、运动等领域。而3G技术的逐 渐成熟,3G网络建设的不断完善,其能提供高达3. IMbit/s的速率,完全能够满足高质量视频的需求。由于原始视频信号数据量巨大,必须经过压缩才能在无线网络中传输。而无线信道具有时变及网络带宽资源有限等特点,使得在3G网络中传输的压缩视频流具有不同的特点。ITU-T (国际电信联盟电信标准化部门)和ISO (国际标准化组织)联合开发的最新视频编码标准H. 264/AVC由于具有压缩效率高、网络适应能力强等特点,使其成为3GPP(第三代合作伙伴计划)/3GPP2 (第三代合作伙伴计划2)支持的常用视频编码标准。在现有技术中,以深圳市海思半导体有限公司的Hi3511/Hi3512芯片为例,Hi3511/Hi3512所提供的编码函数库不能对编码后的码流的码率控制进行有效的控制。通过该编码函数库能降低编码后码流的帧率,但是每一个视频帧的长度增加,实际视频码流的码率没有改变。如果利用传统的方式直接从原始视频数据(VI)来控制帧率会同时影响到录像视频码流的质量。

发明内容
本发明所要解决的技术问题是提供一种编解码处理器在无线视频传输过程中码率控制的方法,该处理方法与已有的技术方法相比,能够在完成录像码流码率不改变的同时,有效的动态变换网络传输码流的码率,使无线网络的带宽得到最有效的利用,可有效地提高无线视频传输的流畅度。本发明所采用的技术方案是编解码处理器在无线视频传输过程中码率控制的方法,包括以下步骤
51)通过视频捕获得到原始的视频输入数据,将视频输入数据绑定到相对应的视频输出数据;
52)取出对应通道的视频数据进行视频编码后视频录像;
53)取出对应通道的视频数据进行视频编码后输出到视频网络传输端;
54)在视频网络传输端,动态调节网络传输原始视频数据的帧率,来适应传输网络的带宽。所述的方法,步骤S2所述的视频数据是视频输入数据。所述的方法,步骤S3所述的视频数据是视频输出数据。
所述的方法,步骤S4动态调节网络传输原始视频数据的帧率的方法包括
A)在视频网络传输端传输端建立循环缓冲区;
B)将编码好的视频数据通过循环缓冲区进行发送;
C)根据循环缓冲区的数据得到当前网络延时的时间值;
D)当网络延时的时间值大于设定的最大延时值时,减少视频输出数据的帧率;当网络延时的时间值小于设定的最大延时值时,当前视频码率又没有达到最大帧率值时,增加视频输出数据的帧率。 所述的方法,步骤C得到网络延时的时间值的方法包括
获取当前缓冲区中的视频巾贞的巾贞数FrameCountInBuf,获取当前视频输出数据的巾贞率FrameRate,当前的网络延时的时间值T按下式计算
T = FrameCountInBuf / FrameRate0所述的方法,步骤D的最大延时值大于等于I秒,最大帧率值为25。所述的方法,步骤D改变帧率的方法包括在原始帧率的基础上,平均的增加或者减少所有正在网络传输的视频通道的原始视频数据的帧数。所述的方法,增加或减少帧数的方法包括在一秒钟内丢掉或保留一些视帧,其帧序号为
当FrameRate>=13时丢掉的巾贞序号为i*[25/ (25-FrameRate) ], i的取值为1、2......
(25-FramRate)的顺序值;
当 FrameRate〈13 时保留的巾贞序号为 i* [25/FrameRate) ], i 的取值为 1、2......FramRate
的顺序值;
其中FrameRate为需要设定的巾贞率,如果所得巾贞序号值大于25,则取序号为25的巾贞,方括号表不取整。所述的方法,步骤S2和S3中视频编码的方法为H. 264。相对已有技术方法,本发明具有以下优点能改善Hi3511/Hi3512编码后改变视频数据的帧率,但是无法有效控制视频码率的情况,可以在不影响录像码流的视频质量的情况下,使视频传输的码率得到有效控制,以保持无线视频传输的流畅度。


图I是视频码流传输示意图。图2是无线网络传输情况判断工作流程示意图。图3是帧率改变工作流程示意图。
具体实施例方式本发明的实施例根据3G网络的特点阐述了 Hi3511/Hi3512 H. 264编解码处理器在无线视频传输过程中,实现了一种基于帧率来动态改变码率的控制方法。本发明采用的这种分片方法,在保证编码效率的同时,相对于简单的固定分片方法来说,能有效地提高信道资源的利用率,提高了视频编码的质量。Hi3511/Hi3512上实现Dl、CIF格式的编码并且将编码码流进行传输和录像的基本流程是,程序将摄入原始的视频数据(VI)首先进行编码,产生主码流和子码流,再由主码流输出到录像文件,子码流输出到网络传输,另外将原始视频数据(VI)绑定到视频输出数据(VO)输出到电视墙或者显示设备用于本地预览。作为无线视频设备其中一个重要的部分就是,获取网络传输编码码流并且能有效的控制其传输码率来控制实时视频的流畅度。而Hi3511/Hi3512所提供的编码函数库不能对编码后的码流的码率控制进行有效的控制,通过该编码函数库能降低编码后码流的帧率,但是每一个视频帧的长度会增加,实际视频码流的码率没有改变,如果利用传统的方式直接从原始视频数据(VI)来控制帧率会同时影响到录像视频码流的质量。针对以上情况,本发明采用以下具体实施方式
来解决以上问题
本发明的步骤如下
I)首先经过Hi3511/Hi3512的视频捕获驱动得到原始的视频输入(VI)数据。2)原始视频输入数据(VI)绑定到相对应的视频输出通道(VO)。3)取出对应通道的视频输出数据(VO)作为网传视频的原始数据,输出到对应的编码通道进行H. 264格式的视频编码,得到的编码码流用作网络视频传输。4)将视频输入数据(VI)作为录像视频的原始数据,输出到对应的编码通道进行
H.264的视频编码,得到的编码码流用作视频录像的码流。5)在视频网络传输端,根据情况动态调节网络传输原始视频数据的帧率,来改变网络传输端视频数据的码率,以适应无线网络的带宽,提高无线视频传输的流畅度。此外,在所述步骤5)中,动态调节网络传输的原始视频数据的帧率包含以下子步骤
Cl首先在视频数据发送端建立循环缓冲区
C2编码好的视频数据从缓冲区尾加入,发送的视频数据从缓冲区头取出 C3用缓冲区中剩余的帧数除以当前帧率的值得到当前延时的时间值(T)
C4当延时时间(T)大于设定的最大延时值(Tmax)时,减少视频输出数据(VO)的帧率,当延时时间(T)小于设定的最大延时值(Tmax),当前视频码率又没有达到最大帧率值时,增加视频输出数据(VO)的帧率。C5视频输出数据(VO)的帧率改变的方法为,原始帧率为每秒25帧视频数据,每次根据网络传输缓冲区中的视频帧数,增加减少原始视频数据的帧数。下面结合附图和实施例进一步详述本发明。如图I所示视频流的具体工作流程为
001)经过Hi3511/Hi3512的视频捕获驱动得到原始的视频输入数据(VI),将原始视频输入数据(VI)绑定到对应的视频输出数据(VO)。002)将原始的视频输入数据(VI),输出到对应的编码通道进行H. 264的编码,得到的编码码流用作视频录像的码流。003)将原始的视频输出数据(VO),输出到对应的编码通道进行H. 264的编码,得到的编码码流用作网络视频传输。如图2所示无线网络传输情况判断具体工作流程为
004)首先在视频码流数据发送端建立循环缓冲区Buffer,缓冲区的头指针为Buffer [head],缓冲区的尾指针为 Buffer [tail]。005)编码好的视频数据帧从缓冲区尾Buffer [tail]加入到缓冲区中,发送的视频数据巾贞从缓冲区头Buffer [head]取出。006)获取当前缓冲区中的视频巾贞的巾贞数FrameCountInBuf,获取当前视频输出数据(VO)的帧率,即每秒钟获取的视频数据的帧数FrameRate,当前的网络延时T情况就可以得到T = FrameCountlnBuf/FrameRate。其中巾贞率不等于O,但是可以小于I比如等于1/2等,是指两秒中获取一帧视频数据,帧率的最大值是25,指一秒钟获取25帧视频数据。007)当延时时间T大于设定的最大延时值Tmax (大于等于I秒,可设置)时,减少从视频输出数据VO中获取视频数据的帧率,当延时时间T小于设定的最大延时值Tmax,当前视频帧率又没有达到最大帧率值25时,增加视频输出数据VO的帧率来有效利用带宽。如图3所示网络传输视频码流原始帧率改变具体工作流程为
008)首先满帧率为25帧,即每秒钟获得25帧视频数据,平均40毫秒获取一帧视频数据,将获取的视频数据存放在VoFrameBuffer (即循环缓冲区)中。·
009 )当前要设置的帧率为FrameRate,其中FrameRate〈=25,因此每秒钟需要取得的巾贞数为FrameRate,当FrameRate>=13时需要丢掉的巾贞数为25-FrameRate巾贞,当FrameRate<13时要保留的巾贞数为FrameRate中贞。010)当FrameRate>=13时要均勻的丢掉25-FrameRate巾贞,因此一秒钟内丢掉的视频数据的巾贞序号等于i*[25/(25-FrameRate) ], i的取值为1、2、···> (25-FramRate);当FrameRate〈13时保留的巾贞数为FrameRate巾贞,保留视频数据的巾贞序号等于i* [25/FrameRate], i的取值为I、2、…、FramRate。当公式算出的序号值大于25时取序号25,其中FrameRate不等于25,当FrameRate等于25时为满巾贞率不需要丢掉数据。上述式子中的方括号表不取整。减少帧的具体过程如下例如当帧率为25,要设置的帧率为13,因为13>12,因此
要将 I* [25/ (25-13) ]=2,2* [25/ (25-13) ] =4、3* [25/ (25-13) ] =6......12* [25/ (25-13) ] =24
序号的巾贞丢弃,只传输剩下的序号为1、3、5、7、…、25的中贞。增加帧的具体过程如下例如当帧率为6,要设置的帧率为8,当前6帧按照FrameRate<13时为i* [25/FrameRate]的规贝丨J,传输的保留巾贞序号为4、8、12、16、20、24。设置的帧率为8帧,则按传输规则保留的帧序号为1*[25/8]=3,2*[25/8]=6,……8*[25/8]=24。011)最后把剩下的视频数据帧输入到编码器中编码,就可以有效的改变视频数据的帧率和码率。
权利要求
1.编解码处理器在无线视频传输过程中码率控制的方法,其特征在于包括以下步骤 51)通过视频捕获得到原始的视频输入数据,将视频输入数据绑定到相对应的视频输出数据; 52)取出对应通道的视频数据进行视频编码后视频录像; 53)取出对应通道的视频数据进行视频编码后输出到视频网络传输端; 54)在视频网络传输端,动态调节网络传输原始视频数据的帧率,来适应传输网络的带宽。
2.根据权利要求I所述的方法,其特征在于步骤S2所述的视频数据是视频输入数据。
3.根据权利要求I所述的方法,其特征在于步骤S3所述的视频数据是视频输出数据。
4.根据权利要求I所述的方法,其特征在于,步骤S4动态调节网络传输原始视频数据的帧率的方法包括 A)在视频网络传输端传输端建立循环缓冲区; B)将编码好的视频数据通过循环缓冲区进行发送; C)根据循环缓冲区的数据得到当前网络延时的时间值; D)当网络延时的时间值大于设定的最大延时值时,减少视频输出数据的帧率;当网络延时的时间值小于设定的最大延时值时,当前视频码率又没有达到最大帧率值时,增加视频输出数据的帧率。
5.根据权利要求4所述的方法,其特征在于,步骤C得到网络延时的时间值的方法包括 获取当前缓冲区中的视频巾贞的巾贞数FrameCountInBuf,获取当前视频输出数据的巾贞率FrameRate,当前的网络延时的时间值T按下式计算T = FrameCountInBuf / FrameRate0
6.根据权利要求4所述的方法,其特征在于步骤D的最大延时值大于等于I秒,最大帧率值为25。
7.根据权利要求4所述的方法,其特征在于,步骤D改变帧率的方法包括在原始帧率的基础上,平均的增加或者减少所有正在网络传输的视频通道的原始视频数据的帧数。
8.根据权利要求7所述的方法,其特征在于,增加或减少帧数的方法包括在一秒钟内丢掉或保留一些视帧,其帧序号为 当FrameRate>=13时丢掉的巾贞序号为i* [25/(25-FrameRate) ], i的取值为1、2......(25-FramRate)的顺序值; 当 FrameRate〈13 时保留的巾贞序号为 i* [25/FrameRate) ], i 的取值为 1、2......FramRate的顺序值; 其中FrameRate为需要设定的巾贞率,如果所得巾贞序号值大于25,则取序号为25的巾贞,方括号表不取整。
9.根据权利要求I 8中任一项所述的方法,其特征在于步骤S2和S3中视频编码的方法为H. 264。
全文摘要
本发明提供了一种编解码处理器在无线视频传输过程中码率控制的方法,其包括以下步骤S1)通过视频捕获得到原始的视频输入数据,将视频输入数据绑定到相对应的视频输出数据;S2)取出对应通道的视频数据进行视频编码后视频录像;S3)取出对应通道的视频数据进行视频编码后输出到视频网络传输端;S4)在视频网络传输端,动态调节网络传输原始视频数据的帧率,来适应传输网络的带宽。该处理方法与已有的技术方法相比,能够在完成录像码流码率不改变的同时,有效的动态变换网络传输码流的码率,使无线网络的带宽得到最有效的利用,可有效地提高无线视频传输的流畅度。
文档编号H04N7/26GK102905128SQ20121032887
公开日2013年1月30日 申请日期2012年9月7日 优先权日2012年9月7日
发明者黄莹 申请人:武汉长江通信产业集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1