一种无漏帧分段录像系统及实现方法

文档序号:10661257阅读:323来源:国知局
一种无漏帧分段录像系统及实现方法
【专利摘要】本发明公开了一种无漏帧分段录像系统及实现方法,其系统包括应用层,框架层以及驱动层,其中,所述框架层包括编码器和封装器,以及摄像头的硬件抽象层;所述驱动层设置有存储设备驱动单元,以及摄像头驱动单元,所述封装器通过所述存储设备驱动写入摄像头的分段录像文件;所述摄像头的硬件抽象层连接所述摄像头驱动单元,并保持录像图像的不间断,所述系统还包括一足够大的缓存单元,用于在分段录像文件形成新文件前缓存录像图像。本发明无漏帧分段录像系统及实现方法由于采用上述不停止摄像头工作的方式,通过缓存以及应用层传入框架层的新文件句柄,从而实现分段录像保存的无漏帧实现,其实现效率高,速度快。
【专利说明】
一种无漏帧分段录像系统及实现方法
技术领域
[0001]本发明涉及一种行车记录仪的录像系统及实现方法,尤其涉及的是一种无漏帧分段录像系统及其实现方法的改进。
【背景技术】
[0002]本发明针对现有的基于Android智能后视镜需要连续分段保存录像文件的行车记录功能改进,现有技术中基于Android行车记录需要完整记录整个行车过程,但为了保存和回放的方便,需要将录像分成许多小段的视频进行保存。因此,行车记录仪的录像分段保存是现有技术的公知常识,通常可以根据设置保存成5分钟或10分钟的分段视频。
[0003]现有技术的基于Android智能后视镜录像时,在按时间进行分段保存录像文件时通常可能发生漏帧,导致两个视频文件不连续,其原因是基于Android原生的录像功能,为要实现分段录像就需要在分段时先停止录像,在保存录像文件后再重新启动录像,而停止和重启需要时间,在这段时间内的视频通常无法保存,从而导致两个录像文件不连续。
[0004]因此,现有技术有待于改进和发展。

【发明内容】

[0005]本发明的目的在于提供一种无漏帧分段录像系统及实现方法,针对现有技术的上述缺陷,提供基于Android智能后视镜录像系统的无漏帧分段录像系统及其实现方法,从而实现无漏帧的分段录像实现。
[0006]本发明的技术方案如下:
一种无漏帧分段录像系统,其包括应用层,框架层以及驱动层,其中,所述框架层包括编码器和封装器,以及摄像头的硬件抽象层;所述驱动层设置有存储设备驱动单元,以及摄像头驱动单元,所述封装器通过所述存储设备驱动写入摄像头的分段录像文件;所述摄像头的硬件抽象层连接所述摄像头驱动单元,并保持录像图像的不间断,所述系统还包括一足够大的缓存单元,用于在分段录像文件形成新文件前缓存录像图像。
[0007]所述的无漏帧分段录像系统,其中,所述缓存单元采用多个,并由所述驱动层申请管理。
[0008]—种根据所述系统的实现方法,其中,包括以下步骤:
A、初始化框架层;
B、当到达设定的分段时间时,应用层传入一个新的文件句柄给框架层;
C、所述框架层在收到该新的文件句柄后保存上一个文件信息,并从所述缓存中从上一个文件的录像时刻重启另一个文件的封装,在该过程中所述录像图像通过缓存保存。
[0009]所述的实现方法,其中,所述步骤A包括:
所述初始化包括对编码器和封装器的初始化。
[0010]所述的实现方法,其中,所述步骤A还包括:
所述初始化还包括对录像分辨率以及申请缓存的设置。[0011 ]所述的实现方法,其中,所述步骤C包括:
所述框架层在收到该新的文件句柄后,重启所述封装器,并从所述缓存器获取录像数据。
[0012]所述的实现方法,其中,所述步骤C中的封装过程包括:
Cl、所述框架层从驱动层获取一帧有效的视频图像;
C2、所述框架层通知编码器对视频图像进行编码;
C3、所述封装器将编码码流写入录像文件。
[0013]所述的实现方法,其中,所述步骤C还包括:
所述框架层在收到该新的文件句柄后,暂停编码器,所述封装器写入上一个尾部信息并关闭上一个文件。
[0014]所述的实现方法,其中,所述步骤C还包括:
所述框架层在关闭上一个文件后,重新初始化新文件的封装器和启动编码器,写入新视频文件头信息,并写入录像数据。
[0015]所述的实现方法,其中,所述系统为基于Android的智能系统。
[0016]本发明所提供的一种无漏帧分段录像系统及实现方法,由于采用上述不停止摄像头工作的方式,通过缓存以及应用层传入框架层的新文件句柄,从而实现分段录像保存的无漏帧实现,其实现效率高,速度快。
【附图说明】
[0017]图1为本发明系统较佳实施例的框图示意。
[0018]图2为本发明所述实现方法较佳实施例流程步骤的示意图。
【具体实施方式】
[0019]以下对本发明的较佳实施例加以详细说明。
[0020]如图1所示,为本发明所述实现系统的较佳实施例框图,其包括应用层APP,实现对框架层以及驱动层的控制;在所述框架层内设置有摄像头的硬件抽象层Camera HAL,以及编码器和封装器;其中,HAL,即Hardware Abstract1n Layer,硬件抽象层,HAL的作用是将操作系统的其余部分表示为抽象的硬件设备,特别是去除了真正硬件所富含的瑕疵和特质,这些设备表现为操作系统的其它部分和设备可以使用的独立于机器的服务的形式(函数调用和宏)。通过使用HAL服务和间接硬件寻址,当移植到新的硬件上时,驱动程序和核心只需做很少的改动。移植HAL本身是直接的,因为所有的机器相关代码都集中在一个地方,并且移植的目标是充分定义的,即实现所有的HAL服务。
[0021 ]在所述驱动层设置包括摄像头驱动,以及,存储设备驱动,所述摄像头的硬件抽象层连接所述摄像头驱动,并且整个录像过程中所述摄像头不停止录像过程,其图像获取通过足够大的缓存实现,或者采用多个缓存实现。
[0022]本发明较佳实施例中,该足够大的缓存并不仅仅在分段形成新文件的时候来缓存原始图像数据,而是在每一帧图像数据被编码、封装、直到写入文件前都可以用来缓存新的原始图像数据,以保证对记录图像数据的不丢帧。
[0023]本发明系统在录像开启时,摄像头驱动为图像数据创建多个缓存,并且保证摄像头获取的录像数据连续的保存在缓存中;所述框架层初始化编码器和封装器。本发明所述系统录像开启后,摄像头是连续工作的;当到达设定的分段时间时,应用层传入一个新的文件句柄给框架层。所述框架层在收到该新的文件句柄后保存上一个文件信息,并且重启另外一个文件的封装工作。本发明所述系统及实现方法,主要针对基于Android系统的智能后视镜记录仪录像实现改进。
[0024]如图2所示,本发明实现方法的主要工作流程包括:
1.进入应用层的行车记录仪界面,点击录像功能按钮。
[0025]2.应用层通过框架层打开摄像头,并设置好录像分辨率、申请缓存、初始化编码器和封装器,然后开始录像。
[0026]3.框架层从驱动层获取到一帧有效的视频图像。
[0027]4.框架层通知编码器对视频图像进行编码,然后封装器将编码码流写入录像文件。
[0028]5.当达到录像分段时间时,上层应用层传入新的文件句柄;否则执行步骤3。
[0029]6.所述框架层在收到该新的文件句柄后,暂停编码器;所述封装器写入上一个视频文件的尾部信息并关闭上一个文件;然后重新初始化新文件的封装器和启动编码器,写入新视频文件头信息。然后执行步骤3。
[0030]步骤3即将从摄像头驱动获取的一帧图像存入缓存,该缓存的容量足够大,能够保证在上述重新启动编码器写入下一个新的文件头信息前的所有录像数据能够进行缓冲。该缓存也可以采用多个缓存实现,需要通过驱动层驱动进行相应管理。
[0031]在本发明所述系统及方法的整个流程中,如图2所示的:第一,摄像头的数据没有停止,持续进行了录像数据的获取,并被驱动层存入先前申请的多个缓存中,即视频原始数据没有丢失。第二,本发明实现方法由于只是重启了封装器,其速度非常快,时间在毫秒级另O。封装器重启后,驱动缓存由于足够大,不会发生数据溢出,所以视频信息都能连续存入文件中,不会出现漏帧的问题。
[0032]本发明系统及实现方法在基于Android的智能后视镜记录仪录像过程中,由于摄像头不会停止录像,并保存在缓存中,这样视频信息不会丢失,因此在分段录像过程中不会出现两个视频文件之间漏帧的问题,并且实现了处理速度快,实现简单的好处。
[0033]应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
【主权项】
1.一种无漏帧分段录像系统,其包括应用层,框架层以及驱动层,其特征在于,所述框架层包括编码器和封装器,以及摄像头的硬件抽象层;所述驱动层设置有存储设备驱动单元,以及摄像头驱动单元,所述封装器通过所述存储设备驱动写入摄像头的分段录像文件;所述摄像头的硬件抽象层连接所述摄像头驱动单元,并保持录像图像的不间断,所述系统还包括一足够大的缓存单元,用于在分段录像文件形成新文件前缓存录像图像。2.根据权利要求1所述的无漏帧分段录像系统,其特征在于,所述缓存单元采用多个,并由所述驱动层申请管理。3.—种根据权利要求1或2所述系统的实现方法,其特征在于,包括以下步骤: 初始化框架层; 当到达设定的分段时间时,应用层传入一个新的文件句柄给框架层; 所述框架层在收到该新的文件句柄后保存上一个文件信息,并从所述缓存中从上一个文件的录像时刻重启另一个文件的封装,在该过程中所述录像图像通过缓存保存。4.根据权利要求3所述的实现方法,其特征在于,所述步骤A包括: 所述初始化包括对编码器和封装器的初始化。5.根据权利要求4所述的实现方法,其特征在于,所述步骤A还包括: 所述初始化还包括对录像分辨率以及申请缓存的设置。6.根据权利要求5所述的实现方法,其特征在于,所述步骤C包括: 所述框架层在收到该新的文件句柄后,重启所述封装器,并从所述缓存器获取录像数据。7.根据权利要求6所述的实现方法,其特征在于,所述步骤C中的封装过程包括: Cl、所述框架层从驱动层获取一帧有效的视频图像; C2、所述框架层通知编码器对视频图像进行编码; C3、所述封装器将编码码流写入录像文件。8.根据权利要求7所述的实现方法,其特征在于,所述步骤C还包括: 所述框架层在收到该新的文件句柄后,暂停编码器,所述封装器写入上一个尾部信息并关闭上一个文件。9.根据权利要求8所述的实现方法,其特征在于,所述步骤C还包括: 所述框架层在关闭上一个文件后,重新初始化新文件的封装器和启动编码器,写入新视频文件头信息,并写入录像数据。10.根据权利要求9所述的实现方法,其特征在于,所述系统为基于Android的智能系统。
【文档编号】H04N5/76GK106027935SQ201610549450
【公开日】2016年10月12日
【申请日】2016年7月13日
【发明人】李丹
【申请人】深圳市爱培科技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1