缓冲区循环读写的方法及装置制造方法及图纸

技术编号:9967349 阅读:146 留言:0更新日期:2014-04-25 07:25
本发明专利技术公开了一种缓冲区循环读写的方法及装置,其中,该方法包括:预设一缓冲区,在缓冲区储存数据的末端设置一标志写位置的写指针,以及设置一标志读位置的结构体的步骤;向缓冲区写入数据时,统计写入数据的数据长度,判断缓冲区的剩余空间是否足够存储写入数据,若否,则根据缓冲区的剩余空间大小储存一部分写入数据,以及将余下的写入数据储存于缓冲区的开始位置,将写指针插入余下写入数据的末端的步骤;从缓冲区读出数据时,响应用户的读出指令,将读出指令与结构体中的读指针适配,并根据读指针直接读取缓冲区所储存的帧数据的步骤。本发明专利技术能够对缓冲区进行高效率的管理,提高数据读取速度。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种缓冲区循环读写的方法及装置,其中,该方法包括:预设一缓冲区,在缓冲区储存数据的末端设置一标志写位置的写指针,以及设置一标志读位置的结构体的步骤;向缓冲区写入数据时,统计写入数据的数据长度,判断缓冲区的剩余空间是否足够存储写入数据,若否,则根据缓冲区的剩余空间大小储存一部分写入数据,以及将余下的写入数据储存于缓冲区的开始位置,将写指针插入余下写入数据的末端的步骤;从缓冲区读出数据时,响应用户的读出指令,将读出指令与结构体中的读指针适配,并根据读指针直接读取缓冲区所储存的帧数据的步骤。本专利技术能够对缓冲区进行高效率的管理,提高数据读取速度。【专利说明】缓冲区循环读写的方法及装置
本专利技术涉及数据储存
,尤其涉及一种缓冲区循环读写的方法及装置。
技术介绍
随着安防技术的发展,安防监控系统已经广泛地应用于各个领域,为用户提供实时的监控数据信息。安防监控系统通常采用摄像机实时采集监控场所的监控数据并储存于摄像机的储存空间,方便调用或者查看视频录像。视频图像的要求一般是实时、流畅,为了保证画面的流畅,通常将采集的数据流放入一个缓冲区,当有用户有视频数据请求查看或调用时,从缓冲区读出视频数据。储存于缓冲区的视频数据可以直接通过网络上传至服务平台。除了网络传输之外,录像、报警、截图等模块通常也需要获取视频数据,而与网络传输不同,这些模块可能只需要最新的几帧数据,若调用缓冲区全部的视频数据,势必会影响数据的上传速度问题。另外,通常的缓冲区为一固定容量的内存空间,当其所余的内存空间不足存放一帧数据时,一般采用在缓冲区的开始位置存入帧数据,造成缓冲区剩余空间的浪费,同时降低了数据的读取速度。特别是对于多个用户访问缓冲区情况,如何高效地利用缓冲区,已经成为专利技术人思考的问题。
技术实现思路
本专利技术提出了一种缓冲区循环读写的方法及装置,主要解决的技术问题是如何高效率地利用缓冲区的问题。为解决上述技术问题,本专利技术采用的一个技术方案是:提供一种缓冲区循环读写的方法,包括:预设一缓冲区,在缓冲区储存数据的末端设置一标志写位置的写指针,以及设置一标志读位置的结构体的步骤,其中,所述结构体可储存多个读指针,读指针插于不同帧数据的前端;向缓冲区写入数据时,统计写入数据的数据长度,判断缓冲区的剩余空间是否足够存储写入数据,若否,则根据缓冲区的剩余空间大小储存一部分写入数据,以及将余下的写入数据储存于缓冲区的开始位置,将写指针插入余下写入数据的末端,若是,则写入数据并将写指针插入写指针的末端;更新写指针的步骤;从缓冲区读出数据时,响应用户的读出指令,将读出指令与结构体中的读指针适配,并根据读指针直接读取缓冲区所储存的帧数据的步骤。其中,所述写入数据包括帧头及编码数据,所述帧头用于统计写入数据的数据长度,所述编码数据位于帧头之后;写入数据时,先将帧头先存入缓冲区,编码数据的末端插入写指针,读出数据时,所述帧头可插入读指针。其中,所述从缓冲区读出数据的步骤之前,包括对缓冲区进行注册并获取用户ID,以及建立用户ID与结构体中不同读指针对应关系的步骤。其中,所述对缓冲区进行注册并获取用户ID,以及建立用户ID与结构体中不同读指针对应关系的步骤之后,还包括建立一用户链表,将多个用户ID存入用户链表的步骤。其中,判断写入数据是否覆盖读指针的读位置,若是,将读指针位置指向前一写指针位置。为解决上述技术问题,本专利技术采用的另一个技术方案是:提供一种缓冲区循环读写的装置,包括缓冲区、写入数据模块以及读出数据模块;缓冲区,用于缓冲数据,在缓冲区储存数据的末端设置一标志写位置的写指针,以及设置一标志读位置的结构体,其中,所述结构体储存多个读指针,读指针插于不同帧数据的前端;写入数据模块,用于统计写入数据的数据长度,判断缓冲区的剩余空间是否足够存储写入数据,若否,则根据缓冲区的剩余空间大小储存一部分写入数据,以及将余下的写入数据储存于缓冲区的开始位置,将写指针插入余下写入数据的末端,若是,则写入数据并将写指针插入写指针的末端;更新写指针;读出数据模块,用于响应用户的读出指令,将读出指令与结构体中的读指针适配,并根据读指针直接读取缓冲区所储存的帧数据。其中,还包括一用户注册模块,用于对缓冲区进行注册并获取用户ID,以及建立用户ID与结构体中不同读指针对应关系。其中,还包括一链表模块,用于储存并管理多个用户ID。其中,还包括读指针判断模块,用于判断写入数据是否覆盖读指针的读位置,若是,将读指针位置指向前一写指针位置。本专利技术的有益技术效果是:区别于现有技术中缓冲区所余的内存空间不足存放一帧数据时,一般采用在缓冲区的开始位置存入帧数据,造成缓冲区剩余空间的浪费,降低数据的读取速度的问题,本专利技术提供了一种缓冲区循环读写的方法,在写入数据时,先判断缓冲区的剩余空间是否可以存放一帧写入数据,若否,则根据缓冲区的剩余空间的大小存放一部分写入数据,剩余的写入数据覆盖存放至缓冲区的开始位置,并在剩余写入数据的末端插入写指针,并更新写指针,该写指针作为下一帧写入数据的起始位置,可以提缓冲区的利用率;读数据时,响应用户的读指令,并调用读指针将其后的一帧或者几帧数据读出,可以提高数据的读取速度。本专利技术能够对缓冲区进行高效率的管理,提高数据读取速度。【专利附图】【附图说明】图1是本专利技术缓冲区循环读写的方法的流程图;图2是本专利技术缓冲区储存数据的示意图;图3时本专利技术缓冲区循环读写的方框图。标号说明:1-缓冲区,2-写入数据模块,3-读出数据模块,4-用户注册模块,5-链表模块,6-读指针判断模块。【具体实施方式】为详细说明本专利技术的
技术实现思路
、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。请参阅图1以及图2,本实施例提供一种缓冲区循环读写的方法,其包括:预设一缓冲区,在缓冲区储存数据的末端设置一标志写位置的写指针writ印tr,以及设置一标志读位置的结构体的步骤,其中,所述结构体可储存多个读指针reader,读指针插于不同巾贞数据的前端。写指针的数量为一个,提供写入位置,可以方便写入数据。读指针提供读出位置,可以方便读出一帧或者几帧数据。向缓冲区写入数据时,统计写入数据的数据长度,判断缓冲区的剩余空间是否足够存储写入数据,若否,则根据缓冲区的剩余空间大小储存一部分写入数据,以及将余下的写入数据储存于缓冲区的开始位置,具体的,则将buffer->buffersize_buffer->writeptr长度的数据拷入缓冲区剩余空间,其他数据从缓冲区头部开始存入,并将写指针插入余下写入数据的末端,若是,则写入数据并将写指针插入写指针的末端;更新写指针的步骤;该步骤能够使缓冲区中不够储存写入数据的剩余的空间被利用,最大限度地利用缓冲区的储存空间,有利于提闻储存空间的利用率。与入数据后,上一与指针自动标记为prewriterptr,更新后的写指针为整个缓冲区的写指针,允许之后的数据储存。从缓冲区读出数据时,响应用户的读出指令,将读出指令与结构体中的读指针适配,并根据读指针直接读取缓冲区所储存的帧数据的步骤。该步骤根据读指针定位读出位置,能够方便并节省储存数据的读出时间。参阅图2,在一具体的实施例中,所述写入数据包括帧头head及编码本文档来自技高网
...

【技术保护点】
一种缓冲区循环读写的方法,其特征在于,包括:预设一缓冲区,在缓冲区储存数据的末端设置一标志写位置的写指针,以及设置一标志读位置的结构体的步骤,其中,所述结构体可储存多个读指针,读指针插于不同帧数据的前端;向缓冲区写入数据时,统计写入数据的数据长度,判断缓冲区的剩余空间是否足够存储写入数据,若否,则根据缓冲区的剩余空间大小储存一部分写入数据,以及将余下的写入数据储存于缓冲区的开始位置,将写指针插入余下写入数据的末端,若是,则写入数据并将写指针插入写指针的末端;更新写指针的步骤;从缓冲区读出数据时,响应用户的读出指令,将读出指令与结构体中的读指针适配,并根据读指针直接读取缓冲区所储存的帧数据的步骤。

【技术特征摘要】

【专利技术属性】
技术研发人员:付娟
申请(专利权)人:深圳英飞拓科技股份有限公司
类型:发明
国别省市:

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

1