一种码流控制的方法和装置的制作方法

文档序号:7852829阅读:224来源:国知局
专利名称:一种码流控制的方法和装置的制作方法
技术领域
本发明涉及视频监控领域,尤其涉及一种码流控制的方法和装置。
背景技术
视频编解码技术在数字视频监控领域有着广泛的应用。视频编解码的码流控制算法包括CBR和VBR两大类。CBR (固定码率编码)在所有场合和都使用相同的码率编码;VBR(可变码率编码)根据场景的不同使用不同的码率编码。数字视频监控系统一般要求对采集编码的音视频码流进行保存,以便后续查询分析。这对数据的存储空间有一定的要求。当前在项目实施中,无论视频编码器采用CBR还是VBR,都无法很好的计算存储空间,得到最优的存储空间配置方案。当编码设备采用CBR算法时,可以采用CBR的目标码率值来估计监控系统需要的存储空间。但是CBR算法本身将导致简单场景时浪费了有效存储空间,而在复杂场景时,为 了防止存储空间溢出,又不能采用更大的码率进行编码。因此监控系统就不能在一定容量的存储空间中最大效率的得到最清晰、效果最好的监控码流。当编码设备采用VBR算法时,可以采用VBR的最大码率、或者估计一个平均码率来计算监控系统需要的存储空间。但是如果采用VBR的最大码率计算存储空间,就会导致选择的存储设备容量过大,浪费存储资源;如果采用估计的平均码率计算存储空间,要么选择的存储设备容量过小,丢失存储数据,要么选择的存储设备容量过大,浪费存储资源。

发明内容
有鉴于此,本发明提供一种码流控制的方法,该方法应用于编码设备上,其特征在于,该方法包括如下步骤A、判断是否到达检测周期,如果到达,统计到当前时间已经传输总的实际码流的大小Scur,计算与当前时间对应的总的预设码流大小Sdst ;B、判断多余码流Sredu是否大于0,其中Sredu = Scur-Sdst,如果否,返回步骤A ;如果是,执行步骤C ;
C、计算存储剩余时间,如果剩余时间小于预设的预警时间阈值t,则查询时间编码参数表,以获取的编码参数进行编码,返回步骤A,其中该时间编码参数表记录剩余时间与编码参数的对应关系;如果剩余时间大于t,执行步骤D ;D、计算当前的运动量,如果当前运动量值小于预设运动量值m,则查询运动编码参数表,以获取的编码参数进行编码,返回步骤A,该运动编码参数表记录运动量与编码参数之间的对应关系;如果当前运动量大于预设运动量值m,则执行步骤E ;E、如果步骤B中计算的多余码流Sredu值大于预设的多余码流值S,则查询多余码流编码参数表,以获取的编码参数进行编码,返回步骤A ;该多余码流编码参数表记录多余码流与编码参数的对应关系;如果多余码流小于S,返回步骤A。更优地,步骤D中的编码参数具体为编码的帧率。更优地,步骤D中如果当前运动量大于预设运动量值m,则执行步骤F ;F、判断当前是否已经进行降帧率处理,如果是,恢复正常帧率进行编码,返回步骤A ;如果否,执行步骤E0
更优地,步骤C和步骤E中的编码参数为画面组GOP和/或量化参数QP。更优地,步骤E中如果多余码流小于S,则执行步骤G ;G、判断当前是否已经进行GOP值和/或QP值的修正,如果是,恢复正常的GOP值和/或QP值,返回步骤A ;如果否,返回步骤A。本发明还提供一种码流控制的装置,该装置应用于编码设备上,该装置包括码流大小检测模块,用于到达检测周期时统计到当前时间已经传输的总的实际码流的大小Scur,计算与当前时间对应的总的预设码流大小Sdst,判断多余码流Sredu是否大于0,其中Sredu = Scur-Sdst,如果否,等待下一个检测周期到来进行码流的检测;如果是,通知码流控制模块执行码流控制处理;码流控制模块,用于收到检测模块的通知执行码流控制后,计算存储剩余时间,如果剩余时间小于预设的预警时间阈值t,则查询时间编码参数表,获取对应的编码参数,通知编码模块以获取的编码参数进行编码,其中该时间编码参数表记录剩余时间与编码参数的对应关系;如果剩余时间大于t,计算当前的运动量,如果当前运 动量值小于预设运动量值m,则查询运动编码参数表,获取对应的编码参数,通知编码模块以获取的编码参数进行编码,该运动编码参数表记录运动量与编码参数之间的对应关系;如果当前运动量大于预设运动量值m,并且多余码流Sredu值大于预设的多余码流值S,则查询多余码流编码参数表,获取对应的编码参数,通知编码模块以获取的编码参数进行编码,该多余码流编码参数表记录多余码流与编码参数的对应关系。编码模块,用于以获取的编码参数进行编码。更优地,运动编码参数中的编码参数具体为编码的帧率。更优地,码流控制模块,用于在当前运动量大于预设运动量值m,判断当前是否已经进行降帧率处理,如果是,恢复正常帧率;如果否,继续执行在多余码流Sredu值大于预设的多余码流值S,查询多余码流编码参数表,获取对应的编码参数,通知编码模块以获取的编码参数进行编码的处理,该多余码流编码参数表记录多余码流与编码参数的对应关系;更优地,所述时间编码参数表和多余码流编码参数表中的编码参数为画面组GOP和/或量化参数QP。更优地,码流控制模块,用于如果多余码流小于S,判断当前是否已经进行GOP值和/或QP值的修正,如果是,恢复正常的GOP值和/或QP值。应用本发明的技术后,既可以根据图像效果采用可变码率技术得到最佳的视频编码码流,又可以结合存储业务的实际需要精确计算出需要的存储空间。


图I是一种视频监控系统示意图。图2是本发明一种实施例流程图。
具体实施例方式如图I所示的视频监控系统,监控服务器制定存储策略,编码设备和存储设备按照该存储策略将采集并编码的视频码流存储在存储设备上。系统工作前,可以根据经验,配置一路监控视频流的平均码率为A,再根据该路监控视频流存储的时间确定存储空间的大小。该存储空间就作为分配给该路监控视频流的存储空间。参考图2,编码设备进行码流控制的流程示意图。编码设备开始工作,启动编码和码流控制。该编码设备的码流控制装置从逻辑功能上可以划分为码流大小检测模块、码流控制模块和编码模块。以下进行本发明实施例的详细描述。步骤I、判断是否到达检测周期,如果到达,统计当前总的实际码流的大小Scur,计算当前总的预设码流大小Sdst。该步骤由码流大小检测模块执行。编码设备预先设定检测周期T,比如说检测周期设定为I分钟,即每隔I分钟启动一次检测。检测周期的大小可以根据实际情况结合管理员的实际业务经验来进行设定。可以预先设定一个平均码率A,当前时间点距离设备启动编码的时间点的时间长度为B,则当前总的预设码流大小为A*B,预设的平均码流相当于管理员对于存储空间的一种期望,比如说管理员规划一个存储总时间(比如存储30天的视频流)。其规划的平均码流速率X30 天就是可以这一路码流可以占用的总的存储空间,因此存储总时间是从根据预设的平均码率来看的。当前实际码流的大小是从编码启动到当前时间点实际编码产生的码流大小,实际码流大小如何检测和统计属于成熟技术,不再详述。步骤2、判断多余码流Sredu = Scur-Sdst是否大于0,如果否,返回步骤I ;如果是,执行步骤3。该步骤由码流大小检测模块执行。如果当前统计得到的总的实际码流Scur大于预设的总的码流Sdst,说明在当前这个时间点存储设备已经消耗的空间超越了管理员的期望,为了避免剩余空间不足以应付剩余时间的码流存储需求,可以提前进行降码流处理,相当于将超越管理员的期望的消耗平衡回来,如果不大于,则说明符合管理员的气象期望,此时可以返回步骤1,继续等待下一个检测周期的到来。步骤3、计算存储剩余时间,如果剩余时间小于预警时间阈值t,则查询时间编码参数表,获取编码参数,以获取的编码参数进行编码,返回步骤1,该时间编码参数表记录剩余时间与编码参数的对应关系;如果剩余时间大于t,执行步骤4。该步骤中的“以获取的编码参数进行编码”由编码模块执行。除此之外的动作均由码流控制模块执行。这里时间编码参数表中记录的编码参数可以是G0P,或QP,或GOP和QP。下面以GOP和QP进行说明。在进行降码流处理的时候,计算存储剩余时间,存储剩余时间=存储总时间减去当前已经执行存储时间;如前所述,编码设备以预设的平均码率开始存储码流到总的存储空间被存满花费的时间即为存储总时间,即该时间为总的存储空间除以平均码率。比如当前编码设备存满总的存储空间要花费30天,当前已经存储了 20天10小时,那存储剩余时间就是9天14小时。如果剩余时间小于预警时间阈值t,就查询时间编码参数表。预设的预警时间阈值t作为是否查询时间编码参数表的时间分界点,如果当前的剩余时间已经小于预设预警时间阈值t,表明即将到达一个存储周期结束的时间,这个时候需要立即进行较大程度的降码率处理,而时间编码参数表则记录了降码率的时候需要调整的编码参数,t匕如需要增加的GOP值和增加的QP值,剩余时间越少,GOP值需要增加的越多,QP值也需要增大的越多。表中记载的GOP值和QP值可以是绝对值也可以是相对值。如果是相对值,则在之前编码的GOP值和QP值上增加查询到的该相对值。步骤3中查询时间编码参数表,以获取的编码参数进行编码包括上述以查询到的绝对值和相对值进行计算后得到的新的编码参数进行编码两种情况。另,剩余时间可以等同当前已经存的时间,因为剩余时间与当前已经存的时间之和是固定值,所以以剩余时间或者当前已经存的时间对应需要调整的编码参数都是可以的。表I给出了剩余时间和GOP值以及QP值的对应关系的例子。在查询时间编码参数表时,以计算得到的存储剩余时间为索引去匹配时间编码参数表。如果剩余时间小于预设的预警时间阈值t,则当前还没有到达需要按照时间编码参数表进行降码流处理的程度。往往时间编码参数表进行降码流处理对于音视频流实际效果的影响可能会比较大,是一种不得已而为止的处理方式。一般地,如果检测周期比较小的话,不太会用到这种方式进行降码率处理。因为本发明的处理流程在设计的时候,其它降码率的处理方式对音视频流实际效果的影响有限。
参数 GOP值QP值 剩余时间
24小时^3512 小时4040 8小时5045 4小时6050表I步骤4、计算当前的运动量,如果当前运动量值小于预设运动量值m,则查询运动编码参数表,获取编码参数,以获取的编码参数进行编码,返回步骤1,该运动编码参数表记录运动量与编码参数之间的对应关系;如果当前运动量大于预设运动量值m,则执行步骤5。该步骤中的“以获取的编码参数进行编码”由编码模块执行。除此之外的动作均由码流控制模块执行。这里的运动编码参数表中记录的编码参数可以是帧率。以下以编码参数为帧率进行说明。当画面无运动或者运动量较少时,可通过降低帧率的方式减少一个检测周期的平均码率,这种方式对于图像的质量影响很小。预设的运动量值m是根据画面运动与否进行降帧率的一个临界值,该值根据实际的场景以及经验进行设定。如果计算得到的当前运动量值小于m,说明当前运动量很小,可以降低编码的帧率,根据运动编码参数表中记录的运动量与帧率对应关系进行降帧率处理。以计算得到的当前运动量为索引进行运动编码参数表的匹配,以获取该运动量下的帧率值。该帧率值可以是绝对值也可以是相对值。如果是绝对值。直接根据该值进行编码,如果是相对值,在之前编码的帧率值基础上减少查询到的帧率值得到新的帧率值,以该新的帧率值进行编码。步骤4中的查询运动编码参数表,以获取的编码参数进行编码包括以查询到绝对值和相对值进行计算后得到的新的编码参数进行编码两种情况。运动量的计算方式属于现有技术,不再赘述。表2给出了运动量和帧率值对应关系的例子。一般地,运动量越小,进行编码的帧率值也可以越小。从表2也可以看出这种关系。如果计算得到的运动量值大于预设的运动量值m,说明画面运动较大,当前不适合进行降帧率的处理,执行步骤5。
权利要求
1.一种码流控制的方法,该方法应用于编码设备上,其特征在于,该方法包括如下步骤 A、判断是否到达检测周期,如果到达,统计到当前时间已经传输总的实际码流的大小Scur,计算与当前时间对应的总的预设码流大小Sdst ; B、判断多余码流Sredu是否大于0,其中Sredu= Scur-Sdst,如果否,返回步骤A ;如果是,执行步骤C ; C、计算存储剩余时间,如果剩余时间小于预设的预警时间阈值t,则查询时间编码参数表,以获取的编码参数进行编码,返回步骤A,其中该时间编码参数表记录剩余时间与编码参数的对应关系;如果剩余时间大于t,执行步骤D ; D、计算当前的运动量,如果当前运动量值小于预设运动量值m,则查询运动编码参数表,以获取的编码参数进行编码,返回步骤A,该运动编码参数表记录运动量与编码参数之间的对应关系;如果当前运动量大于预设运动量值m,则执行步骤E ; E、如果步骤B中计算的多余码流Sredu值大于预设的多余码流值s,则查询多余码流编码参数表,以获取的编码参数进行编码,返回步骤A ;该多余码流编码参数表记录多余码流与编码参数的对应关系;如果多余码流小于S,返回步骤A。
2.如权利要求I所述的方法,其特征在于,步骤D中的编码参数具体为编码的帧率。
3.如权利要求2所述的方法,其特征在于,步骤D中如果当前运动量大于预设运动量值m,则执行步骤F ; F、判断当前是否已经进行降帧率处理,如果是,恢复正常帧率进行编码,返回步骤A;如果否,执彳了步骤E。
4.如权利要求I或3所述的方法,其特征在于,步骤C和步骤E中的编码参数为画面组GOP和/或量化参数QP。
5.如权利要求4所述的方法,其特征在于,步骤E中如果多余码流小于S,则执行步骤G ; G、判断当前是否已经进行GOP值和/或QP值的修正,如果是,恢复正常的GOP值和/或QP值,返回步骤A ;如果否,返回步骤A。
6.一种码流控制的装置,该装置应用于编码设备上,其特征在于,该装置包括 码流大小检测模块,用于到达检测周期时统计到当前时间已经传输的总的实际码流的大小Scur,计算与当前时间对应的总的预设码流大小Sdst,判断多余码流Sredu是否大于0,其中Sredu = Scur-Sdst,如果否,等待下一个检测周期到来进行码流的检测;如果是,通知码流控制模块执行码流控制处理; 码流控制模块,用于收到检测模块的通知执行码流控制后,计算存储剩余时间,如果剩余时间小于预设的预警时间阈值t,则查询时间编码参数表,获取对应的编码参数,通知编码模块以获取的编码参数进行编码,其中该时间编码参数表记录剩余时间与编码参数的对应关系;如果剩余时间大于t,计算当前的运动量,如果当前运动量值小于预设运动量值m,则查询运动编码参数表,获取对应的编码参数,通知编码模块以获取的编码参数进行编码,该运动编码参数表记录运动量与编码参数之间的对应关系;如果当前运动量大于预设运动量值m,并且多余码流Sredu值大于预设的多余码流值S,则查询多余码流编码参数表,获取对应的编码参数,通知编码模块以获取的编码参数进行编码,该多余码流编码参数表记录多余码流与编码参数的对应关系。
编码模块,用于以获取的编码参数进行编码。
7.如权利要求6所述的装置,其特征在于,运动编码参数中的编码参数具体为编码的帧率。
8.如权利要求7所述的装置,其特征在于,码流控制模块,用于在当前运动量大于预设运动量值m,判断当前是否已经进行降帧率处理,如果是,恢复正常帧率;如果否,继续执行在多余码流Sredu值大于预设的多余码流值S,查询多余码流编码参数表,获取对应的编码参数,通知编码模块以获取的编码参数进行编码的处理,该多余码流编码参数表记录多余码流与编码参数的对应关系;
9.如权利要求6或8所述的装置,其特征在于,所述时间编码参数表和多余码流编码参 数表中的编码参数为画面组GOP和/或量化参数QP。
10.如权利要求9所述的装置,其特征在于,码流控制模块,用于如果多余码流小于S,判断当前是否已经进行GOP值和/或QP值的修正,如果是,恢复正常的GOP值和/或QP值。
全文摘要
本发明提供一种码流控制的方法判断是否到达检测周期,如果到达,统计到当前时间已经传输总的实际码流的大小Scur,计算与当前时间对应的总的预设码流大小Sdst;判断多余码流Sredu是否大于0,其中Sredu=Scur-Sdst,如果否,返回;如果是,执行码流控制处理。在控制码流时,从存储剩余时间、当前运动量、多余码流大小的角度执行码流控制处理。基于方法同样的构思,本发明还提供一种码流控制的装置。编码设备应用本发明的技术后,既可以根据图像效果采用可变码率技术得到最佳的视频编码码流,又可以结合存储业务的实际需要精确计算出需要的存储空间。
文档编号H04N7/26GK102724490SQ20121018117
公开日2012年10月10日 申请日期2012年6月1日 优先权日2012年6月1日
发明者汪辉 申请人:浙江宇视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1