一种SD卡保存视频时避免数据丢失的方法技术

技术编号:10958339 阅读:173 留言:0更新日期:2015-01-26 00:28
本发明专利技术涉及一种SD卡数据处理技术领域,具体涉及一种SD卡保存视频时避免数据丢失的方法。本发明专利技术提供了一种SD卡保存视频时避免数据丢失的方法,该方法通过当缓存区接近溢出临界点的时候,减少视频编码接口生成的数据量,以及配合通过减少单位时间内SD卡的写入次数。本发明专利技术的方法通过实时监测视频缓存队列的剩余容量,当剩余容量达到警戒值时,立即自适应调整录像线程产生的数据量,并控制SD卡的写入次数,本发明专利技术将视频自适应编码技术应用到提高SD卡存储可靠性上,对车载DVR视频数据保存到SD卡的过程进行监视,通过调整写入数据量和写入次数来平衡数据缓存区的空间,使视频数据不丢失。

【技术实现步骤摘要】
一种SD卡保存视频时避免数据丢失的方法
本专利技术涉及一种SD卡数据处理
,具体涉及一种SD卡保存视频时避免数据丢失的方法。
技术介绍
在车载DVR (数字视频录像机)领域,SD卡是重要的存储介质,但在嵌入式环境中,由于设备性能及资源有限,SD卡的数据写入速度往往受到多种外界因素的影响,比如嵌入式CPU的繁忙程度、SD卡和车载主机的接口类型等。 同时,车载DVR终端在录像时,每秒产生的视频数据量也受各种条件影响,比如视频通道数量、摄像头接入数量、预置的视频编码类型、码率等。实践表明,当单位时间内产生的视频数据量较大且SD卡的写入速度处于下降阶段时,就可能出现单位时间内SD卡写入的数据量远小于录像线程生成的数据量,导致缓存队列溢出,视频数据丢失的问题。
技术实现思路
解决上述技术问题,本专利技术提供了一种SD卡保存视频时避免数据丢失的方法,该方法通过当缓存区接近溢出临界点的时候,减少视频编码接口生成的数据量,以及配合通过减少单位时间内SD卡的写入次数。 为了达到上述目的,本专利技术所采用的技术方案是,一种SD卡保存视频时避免数据丢失的方法,包括以下步骤:步骤1:通过统计存入和取出视频编码数据量得到缓存区剩余容量,并根据帧间编码原理,对视频编码数据分成I帧、P帧和B帧三种类型,其中I帧是一张完整的图片,而P帧和B帧分别是I帧前后帧差异的部分,当剩余视频编码数据量的容量<第一阈值时,执行步骤2,否则返回执行步骤I ;步骤2:自适应降低编码速率,采用“加增乘减一AIMD”方法中的“乘减”方法快速减少视频编码数据量,执行步骤3,步骤3:判断P帧和B帧是否已经合并,若是,则执行步骤5,否则,执行步骤4 ;步骤4:合并连续的多帧P帧或B帧,一次性写入缓存区;步骤5:再次判断剩余视频编码数据量的容量是否<第一阈值,若是则返回执行步骤2,否则执行步骤6;步骤6:判断剩余视频编码数据量的容量是否 >第二阈值,若是,则执行步骤7,否则返回执行步骤5 ;步骤7:判断码率是否 > 第三阈值,若是,则执行步骤9,否则执行步骤8 ;步骤8:自适应恢复编码速率,采用“加增乘减一AIMD方法中的“加增”方法缓慢恢复视频编码数据量,执行步骤9 ;步骤9:判断P帧和B帧是否已经解除了合并写入,若是,则返回执行步骤6,否则执行步骤10, 步骤10:解除帧合并,恢复单帧写入,只将一帧的频编码数据存入这一小块内存中并写入到SD卡。 进一步的,所述第一阈值为视频编码数据量的总容量的10%_30%。 进一步的,所述第二阈值为视频编码数据量的总容量的30%_50%。 进一步的,所述步骤2中的新码率计算公式为:新码率=原始视频编码码率 X0.8。 进一步的,所述步骤8中的新码率计算公式为:新码率=原始视频编码码率+50kbitps0 本专利技术通过采用上述技术方案,与现有技术相比,具有如下优点:本专利技术的方法通过实时监测视频缓存队列的剩余容量,当剩余容量达到警戒值时,立即自适应调整录像线程产生的数据量,并控制SD卡的写入次数,避免视频数据因为来不及写入而丢失。 本专利技术将视频自适应编码技术应用到提高SD卡存储可靠性上,对车载DVR视频数据保存到SD卡的过程进行监视,通过调整写入数据量和写入次数来平衡数据缓存区的空间,使视频数据不丢失。所以本方法达到了相对提高SD卡的数据写入效率,防止视频数据在保存到SD卡的过程中无形丢失的目的。 【附图说明】 图1是本专利技术的实施例的流程图。 【具体实施方式】 现结合附图和【具体实施方式】对本专利技术进一步说明。 作为一个具体的实施例,在车载DVR设备上,SD卡的存储性能直接决定着视频数据是否能快速且完整的保存。视频数据由车载DVR视频编码接口输出后,通常会存入一个数据缓存区,再由SD卡写入程序从该缓存区提取数据,最终写入到SD卡中。在这个过程中,需要有一个平衡点,即单位时间内SD卡写入程序从缓存区提取的数据量,要大于等于视频编码接口输出到缓存区的数据量,否则缓存区早晚都会溢出,导致数据丢失。实践证明,这个平衡点不能是一个固定值,因为单位时间内视频编码接口生成的数据量和SD卡写入的数据量都受多种因素(如
技术介绍
所述)影响而动态变化着。如图1所示,本专利技术的一种SD卡保存视频时避免数据丢失的方法,包括:步骤1:通过统计存入和取出视频编码数据量得到缓存区剩余容量,缓存区是一块预先分配的内存区,由于车载DVR设备内存容量有限,缓存区的大小也就不能太大,一般分配可够缓存I分钟视频数据的内存,比如10MB。当该缓存区存满时,就会溢出,导致视频数据丢失,所以需要时刻监测缓存区剩余空间,当缓存区剩余容量达到预警值时,就启动预警机制。并根据帧间编码原理,对视频编码数据分成I巾贞、P帧和B帧三种类型,其中I帧是一张完整的图片,而P帧和B帧分别是I帧前后帧差异的部分,假设每秒25帧画面,则开始的第一帧是I帧,后续的24帧是P帧或者B帧,P帧只是记录与前一个I帧的差异的那部分数据,而B帧则记录与前一个I帧和后一个I帧的差异部分,所以通常I帧数据量比较大,而P帧或B帧比较小,当剩余视频编码数据量的容量<第一阈值时,所述第一阈值为视频编码数据量的总容量的10%-30%。执行步骤2,否则返回执行步骤I ;步骤2:自适应降低编码速率,采用“加增乘减一AIMD方法中的“乘减”方法快速减少视频编码数据量,所述步骤2中的新码率计算公式为:新码率=原始视频编码码率X0.8。“乘减”可以快速减少视频编码程序生成的数据量,而“加增”则可以达到缓慢恢复数据量的目的。假设车载DVR系统默认的码率是500kbitps,且对于“乘减”的基础倍数是0.8 ;执行步骤3,步骤3:判断P帧和B帧是否合并,若是,则执行步骤5,否则,执行步骤4 ;步骤4:合并连续的多帧P帧或B帧,一次性写入缓存区;步骤5:再次判断剩余视频编码数据量的容量是否<第一阈值,若是则返回执行步骤2,否则执行步骤6 ;具体地,当剩余空间< 10%时候,设开始的码率为500kbitps,经过步骤I至步骤4的时候,此时新码率=500400X0.8=400kbitps,到步骤5循环的判断时间片单位为10秒,也就是说,下一时间片时刻,10秒钟后,再次执行步骤5,如果空间不足的预警还未解除,也就是说剩余空间还是< 10%,继续返回执行步骤2,新码率=400X0.8=320kbitps ;以此类推,直至空间不足预警解除。 步骤6:判断剩余视频编码数据量的容量是否>第二阈值,所述第二阈值为视频编码数据量的总容量的30%-50%,若是,则执行步骤7,否则返回执行步骤5 ;步骤7:判断码率是否 > 第三阈值,所述第三阈值为500kitps,若是,则执行步骤9,否则执行步骤8 ;步骤8:自适应恢复编码速率,采用“加增乘减一AIMD方法中的“加增”,而“加增”的基数是50kbitps,方法缓慢恢复视频编码数据量,所述步骤8中的新码率计算公式为:新码率=原始视频编码码率+50 kbitps。执行步骤9;步骤9:判断P帧和B帧是否已经解除了合并写入,若是,则返回执行步骤6,否则执行步骤10,步骤10:解除帧合本文档来自技高网
...

【技术保护点】
一种SD卡保存视频时避免数据丢失的方法,其特征在于:包括以下步骤:步骤1:通过统计存入和取出视频编码数据量得到缓存区剩余容量,并根据帧间编码原理,对视频编码数据分成I帧、P帧和B帧三种类型,其中I帧是一张完整的图片,而P帧和B帧分别是I帧前后帧差异的部分,当剩余视频编码数据量的容量≤第一阈值时,执行步骤2,否则返回执行步骤1;步骤2:自适应降低编码速率,采用“加增乘减——AIMD”方法中的“乘减”方法快速减少视频编码数据量,执行步骤3,步骤3:判断P帧和B帧是否合并,若是,则执行步骤5,否则,执行步骤4;步骤4:合并连续的多帧P帧或B帧,一次性写入缓存区;步骤5:再次判断剩余视频编码数据量的容量是否≤第一阈值,若是则返回执行步骤2,否则执行步骤6;步骤6:判断剩余视频编码数据量的容量是否≥第二阈值,若是,则执行步骤7,否则返回执行步骤5;步骤7:判断码率是否≥第三阈值,若是,则执行步骤9,否则执行步骤8;步骤8:自适应恢复编码速率,采用“加增乘减——AIMD”方法中的“加增”方法缓慢恢复视频编码数据量,执行步骤9;步骤9:判断P帧和B帧是否已经解除了合并写入,若是,则返回执行步骤6,否则执行步骤10,步骤10:解除帧合并,恢复单帧写入,只将一帧的频编码数据存入这一小块内存中并写入到SD卡。...

【技术特征摘要】
1.一种SD卡保存视频时避免数据丢失的方法,其特征在于:包括以下步骤: 步骤1:通过统计存入和取出视频编码数据量得到缓存区剩余容量,并根据帧间编码原理,对视频编码数据分成I帧、P帧和B帧三种类型,其中I帧是一张完整的图片,而P帧和B帧分别是I帧前后帧差异的部分,当剩余视频编码数据量的容量<第一阈值时,执行步骤2,否则返回执行步骤I ; 步骤2:自适应降低编码速率,采用“加增乘减一AIMD方法中的“乘减”方法快速减少视频编码数据量,执行步骤3, 步骤3:判断P帧和B帧是否合并,若是,则执行步骤5,否则,执行步骤4 ; 步骤4:合并连续的多帧P帧或B帧,一次性写入缓存区; 步骤5:再次判断剩余视频编码数据量的容量是否<第一阈值,若是则返回执行步骤2,否则执行步骤6; 步骤6:判断剩余视频编码数据量的容量是否>第二阈值,若是,则执行步骤7,否则返回执行步骤5 ; 步骤7:判断码率是否>第三阈值,若是,则执行步骤9,否则执行...

【专利技术属性】
技术研发人员:洪涛许振坪郭亚松林德辉唐磊
申请(专利权)人:厦门雅迅网络股份有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1