一种安防高清录像倒播方法及装置

文档序号:1470506 发布日期:2020-02-21 浏览:6次 >En<

阅读说明:本技术 一种安防高清录像倒播方法及装置 (Security protection high-definition video reverse broadcasting method and device ) 是由 林德雄 江盛欣 黄仝宇 汪刚 宋一兵 侯玉清 刘双广 于 2019-03-22 设计创作,主要内容包括:本发明属于视频技术处理领域,具体涉及一种安防高清录像倒播方法及装置,所述的装置包括:分析模块、第一缓存模块、第二缓存模块、缓存管理模块和播放显示模块,分析模块,用于对目标码流进行分析,输出每帧的帧类型以及帧唯一标识;第一缓存模块,用于将分析模块输出的帧类型以及帧唯一标识按照播放顺序和GOP的方式进行存储;第二缓存模块,用于存储第一缓存模块的帧类型或帧唯一标识;缓存管理模块,设置第二缓存模块的缓存策略,并根据缓存策略将第一缓存模块中的内容交换到第二缓存模块中;播放显示模块,用于逆序播放第二缓存模块中的图像。本方案通过倍速因子分段多级缓存法,试图在CPU与内存消耗方面找到一个平衡,避免CPU与内存消耗过大,并满足多路及倍速流畅倒放的要求。(The invention belongs to the field of video technical processing, and particularly relates to a security high-definition video reverse broadcasting method and a security high-definition video reverse broadcasting device, wherein the security high-definition video reverse broadcasting device comprises the following components: the system comprises an analysis module, a first cache module, a second cache module, a cache management module and a play display module, wherein the analysis module is used for analyzing a target code stream and outputting a frame type and a frame unique identifier of each frame; the first cache module is used for storing the frame type and the unique frame identifier output by the analysis module according to the playing sequence and the GOP mode; the second cache module is used for storing the frame type or the frame unique identifier of the first cache module; the cache management module is used for setting a cache strategy of the second cache module and exchanging the content in the first cache module to the second cache module according to the cache strategy; and the playing and displaying module is used for playing the images in the second cache module in a reverse order. According to the scheme, a balance is tried to be found in the aspects of CPU and memory consumption by a speed-multiplying factor segmented multilevel cache method, the CPU and memory consumption is prevented from being overlarge, and the requirements of multipath and speed-multiplying smooth reverse playing are met.)

一种安防高清录像倒播方法及装置

技术领域

本发明属于视频技术处理领域,具体涉及一种安防高清录像倒播方法及装置。

背景技术

目前市面上编码格式主要是以分段,即一组序列帧,进行帧间和帧内压缩编码的视频格式文件,如h264,h265,mpeg-4等格式,这类视频编码的帧分为多种类型,如I、P、B帧,其中I帧周期型的出现,且以I帧为界限,两个I帧之间构成一组GOP(Group of Pictures,画面组),如图1。I解码不需要参考其它帧即可正确解码,但P帧解码必须参考前面的I帧才能正确解码,否则,视频会出现花屏,或无法播放的现象。在视频倒放时,由于I帧始终处于依赖I帧的P帧之后,因此需要为P帧寻找I帧,在找到P帧所依赖的I帧之后,才可以进行视频的解码。

现有技术方案1:1)、从当前倒放的帧位置开始从后往前依次获取到I帧的数据作为目标码流数据;2)、从I帧开始依次解码,解码出目标码流数据中所有视频帧的图像,并全部存入解码后缓冲区;3)、依次将解码后缓冲区中的图像按倒序播放。如上所述,现有技术方案1中是将一组GOP数据解码后缓存在解码后缓冲中,必然导致内存占用很大,例如一张1920*1080的图像占用内存大约3M,对于常见2秒50帧大小的GOP大约占用内存150M,而对于图像3840*2160的50帧GOP内存占用高达600M左右。这对于安防行业有多路需求播放的客户机上以及内存紧张的嵌入式设备而言,内存占用是巨大的。

现有技术方案2:1)、从当前倒放的帧位置开始从后往前依次获取到I帧的数据作为目标码流数据;2)、从I帧开始依次解码,解码出目标码流数据中所有视频帧的图像,并部分存入解码后缓冲区;3)、依次将解码后缓冲区中的图像按倒序播放,每当播放缓冲区最后一帧,则将位于解码后缓冲区中第一帧之前的目标码流缓冲区的未解码帧,重新从I帧开始依次解码到此帧为止,并将最后的一帧图像填补到解码后缓冲区。现有技术方案2虽然采取部分缓存的策略,但GOP中除了跨距缓存长度的最后一部分帧无需重复解码外,其余均需重复解码多次,且越靠后的解码次数越多,例如50帧大小的GOP,帧编号为0-49,假设缓冲能一次缓冲10帧,则除了第40-49帧只需解码一次外,其余均要解码多次,第39帧要解码2次,第38帧要解码3次,依次类推,这种方式将会极大消耗CPU资源,满足不了多路播放要求以及倍速播放要求。

发明内容

本发明的目的是提出一种安防高清录像倒播方法及装置,通过倍速因子分段多级缓存法,试图在CPU与内存消耗方面找到一个平衡,以避免CPU与内存消耗过大,并满足多路及倍速流畅倒放的要求。

本发明具体通过以下技术方案实现:

一种安防高清录像倒播装置,所述的装置包括:分析模块、第一缓存模块、第二缓存模块、缓存管理模块和播放显示模块,其特征在于,分析模块,用于对目标码流进行分析,输出每帧的帧类型以及帧唯一标识;

第一缓存模块,用于将分析模块输出的帧类型以及帧唯一标识按照播放顺序和GOP的方式进行存储;

第二缓存模块,用于存储第一缓存模块的帧类型或帧唯一标识;

缓存管理模块,根据缓存的时间长度m倍速因子s,播放帧率fps,GOP缓冲分段最后一帧pe及分段第一帧ps,设置第二缓存模块的缓存策略,并根据缓存策略将第一缓存模块中的内容交换到第二缓存模块中;

播放显示模块,用于逆序播放第二缓存模块中的图像。

优选的,第一缓存模块根据倍速因子对解码后的图像信息依次存储,第二缓存模块用于存储第一级缓存交换过来的图像,并用于逆序播放显示。

优选的,第一缓存模块中缓存最新解码的GOP中对应的部分段图像,第二缓存模块中缓存第一缓存模块交换出的待显示的图像段,用于逆序播放显示,在第二缓存模块中图像的逆序播放显示过程中,第一缓存模块可以并行的缓存前一段的解码图像。

优选的,在第一缓存模块中,根据倍速内容要求与播放显示的帧率差,丢弃部分倍速内容中的帧。

优选的,根据帧率差选择性丢帧策略,选择间隔性丢帧,周期选择存一帧丢多帧。

优选的,第一缓存模块以及第二缓存模块的长度为计算客户机解码一组GOP所消耗最大时间。

优选的,GOP结构化的方式存储,将经过分帧后的目标码流,以I帧为划分界限,依次将I帧及其间的非I帧图像按播放显示的顺序排列,然后再对GOP间,以每个GOP的I帧播放显示顺序排列。

优选的,GOP结构化存储时每帧的存储信息包括帧唯一标识、帧类型及帧在缓存中的位置信息。

优选的,所述的分析模块,分析出一个完整的帧,帧的类型,帧唯一标识,以及帧的时间戳信息,其中帧的类型可用于对解码位置的确定。

本发明还提供一种安防高清录像倒播方法,包括步骤:

1)对输入的码流依次组帧并依次输出完整的视频帧及帧相关信息到第一缓冲区A中,其中,帧相关信息包括帧类型和帧唯一标识;

2)第一缓冲区A对输入的帧相关信息按照GOP的方式组织存储,并按播放顺序排序存储;

3)获取第一缓冲区A中按播放顺序排列的第一组GOP,并将帧相关信息如帧类型或帧唯一标识输入到第二缓冲区B中;

4)根据缓存的时间长度m倍速因子s,播放帧率fps,GOP缓冲分段最后一帧pe及分段第一帧ps,设置第二缓冲区B的缓存策略,并设置解码标记fdc为未解码状态;

5)判断第二缓冲区B中pe指向位置是否小于该GOP的I帧位置,若是,删除第一缓冲区A中第一组GOP目标码流,跳转执行步骤3),若否,执行步骤6);

6)判断fdc是否已解码,若是,执行步骤8),若否,执行步骤7);

7)将第一缓冲区A中第一组GOP的目标码流数据,从I帧开始,到pe指向帧为止,依次将每帧输入到解码模块进行解码,并依次收集解码后的图像,根据第二缓冲区B中缓存策略,将需要缓冲的帧缓存下来,并设置fdc为已解码状态;

8)判断第二缓冲区B中ps和pe分别指向的帧区间内,缓存标记为需要缓存的帧是否均已缓存相应解码后的图像,若是,执行步骤9),若否,执行步骤5);

9)将第二缓冲区B中的缓冲图像依次交换到第三缓冲区C中,并依次按播放显示顺序进行逆序显示,执行步骤4)。

与现有技术相比,本发明至少具有下述的有益效果或优点:

本发明提供的这种安防高清录像倒播方法及装置,采用分段多级存储方式,节省内存。并且,在不增加内存消耗的情况下,本方案第二级缓存的播放显示与第一级的解码缓存是并行进行的,是可以满足流畅播放的。此外,对于25fps,50帧大小GOP,1920*1080分辨率的目标码流而言,本方案中每帧仅需解码ceil(49/8)-ceil(n/8)+1次,且在倍速因子丢帧策略下,解码次数将会更少,且内存依然保持在48M,显然本发明的技术方案在付出很少内存基础上,大大节省CPU消耗。

附图说明

以下将结合附图对本发明做进一步详细说明;

图1是现有技术中的一组GOP帧信息图;

图2是本发明的倒播装置整体框架图;

图3是本发明的缓冲区B中帧信息图;

图4是本发明的缓冲区B中记录的GOP相关信息图;

图5是本发明的缓冲区B中缓存策略设置过程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种安防高清录像倒播装置,如图2,包括:分析模块、解码模块和播放显示模块,其中,将目标码流经过分析模块分析出每帧的帧类型以及帧唯一标识,经过GOP方式进行结构化存储,并根据倍速因子分段多级缓存策略,对解码后每帧信息依次选择性存储在第一级缓存即缓冲区B中,并根据多级缓存策略将第一级缓存中的内容交换到第二级缓存即缓冲区C中,并直接依次将第二级缓存中的图像推入到播放显示模块进行逆序播放显示。

本发明还提供了一种安防高清录像倒播方法,其应用于安防高清录像倒播装置,包括以下步骤:

步骤1)将获取的目标码流输入到分析模块,分析模块对输入的码流依次组帧并依次输出完整的视频帧及帧相关信息到缓冲区A中,执行步骤2),其中,帧相关信息包括帧类型、帧唯一标识等相关参数。

步骤2)缓冲区A对输入的帧相关信息按照GOP的方式组织存储,并按播放顺序排序存储,执行步骤3);

此处的播放顺序定义为播放显示的先后顺序,有两个层次:

同组GOP中的帧排序,可定义为每帧显示的先后顺序,典型的可按显示时间戳排序(Presentation Timestamp),但不限于按显示时间戳排序,比如frame1在frame2前显示,则在当前GOP中,frame1应当排在frame2的前面,即frame1,frame2,…;

GOP间排序,GOP间的排序按照播放显示先后顺序排序,典型按照I帧显示时间戳排序,但不限于按显示时间戳排序。

步骤3)获取缓冲区A中按播放顺序排列的第一组GOP,并将帧相关信息如帧类型或帧唯一标识输入到缓冲区B中,执行步骤4)。

步骤4)根据缓存的时间长度m及倍速因子s,播放帧率fps(Frames Per Second),GOP缓冲分段最后一帧pe及分段第一帧ps,设置缓冲区B的缓存策略,并设置解码标记fdc为未解码状态,执行步骤5);

4.1缓存时间长度m,是以时间ms(毫秒)为单位来定义的缓冲大小,例如300ms的缓冲大小,对于常见25帧率的视频,大约每帧显示的时间为ceil(1000/25)=40ms(ceil定义为向上取整),则300ms时间跨度的缓冲可以缓冲ceil(300/40)=8帧。m的大小可以通过相关测试程序测试一组GOP解码所消耗时间的最大值或根据根据经验值预设一个固定值,m的值一般小于GOP播放显示时间的一半,例如跨距播放显示时间2s且50帧的GOP,m的理论值是小于2000/2=1000ms的,即m<1000ms。

4.2倍速因子s,由外部播放倍率决定,例如外部以4倍速率播放,则倍速因子设为4。

4.3 fps为外部预值,例如fps=25。

4.4 ps为帧位置游标,指示本轮解码需要计算是否缓存的第一帧。

4.5 pe为帧位置游标,指示本轮解码需要计算是否缓存的最后一帧。

4.6缓冲区B的缓冲策略,如图3-5所示,详细设置步骤如下:

4.6.1判断是否首次设置该GOP的缓存策略,是执行步骤4.6.2,否执行步骤4.6.3;

4.6.2首先记录当前待解码缓冲GOP中所包含的所有帧的相关信息,如图3,这些信息包括帧的唯一标识,帧的类型,缓存标记(标识是否缓存,1:标识缓存,0:标识不缓存),解码后数据地址等,并初始化缓存标记为0(不缓存状态),若ps>=0,则设置ps=pe=该组GOP的最后一帧位置,否则设置ps=pe设置为最后一帧位置+pe,执行步骤4.6.4;

4.6.3更新pe值,值ps为pe的前一帧位置,即ps=pe-1,执行步骤4.6.4;

4.6.4根据倍速因子s,帧率fps,缓存大小m以及ps值,修改GOP相关信息中每帧是否缓存的标记值,并更新pe值;

例如:如图4和图5,假设GOP大小为50帧,且每帧从0,1,2…,48,49依次排列,fps=25,s=4,m=300,根据m可知当前能缓冲ceil(300/(1000/25))=8帧,实际1s中需要播放完成fps*s=25*4=100帧视频内容,而fps=25要求只播放显示25帧,故可以选择丢帧缓存策略,典型优化的可选择均匀丢帧策略,例如选择存储第49帧,丢弃第48、47、46帧,存储第45帧,丢弃第44、43、42帧…,依次类推,直到设置标记完s*ceil(m/(1000/fps)),即4*8=32帧或者遇到GOP中的I帧为止;在标记结束时,剩下的未标记帧全部设置为不缓存。则本次的设置结果为49、45、41、37、33、29、25、21帧标记缓存,其余帧标记不缓存,并记录ps值为18。

步骤5)判断缓冲区B中pe指向位置是否小于该GOP的I帧位置即pe<0,若是,删除缓冲区A中第一组GOP目标码流,跳转执行步骤3),若否,执行步骤6)。

步骤6)判断fdc是否已解码,若是,执行步骤8),若否,执行步骤7)。

步骤7)将缓冲区A中第一组GOP的目标码流数据,从I帧开始,到pe指向帧为止,依次将每帧输入到解码模块进行解码,并依次收集解码后的图像,根据缓冲区B中缓存策略,将需要缓冲的帧缓存下来,并设置fdc为已解码状态,执行步骤8);

若GOP中包含B帧,还必须以最临近位于pe指向帧后的P帧为界限输入解码模块。

步骤8)判断缓冲区B中ps和pe分别指向的帧区间内,缓存标记为需要缓存的帧是否均已缓存相应解码后的图像,若是,执行步骤9),若否,执行步骤5)。

9)将缓冲区B中的缓冲图像依次交换到缓冲区C中,并依次按播放显示顺序,推到播放显示模块进行逆序显示,执行步骤4);

9.1缓冲区C用于播放显示的直接缓冲,此缓冲区应该与缓冲区B大小保持一致;

9.2交换缓冲区B中分段图像到缓冲区C中的时机选择,典型的可选择在缓冲区C播放显示完成,并释放空间后,一次性触发B中的分段图像全部交换到C中;优选的在C中缓冲区的图像每播放显示一帧,即触发B交换一帧到C中。

综上所述,与技术方案1对比本实施例实施例采用分段多级存储法,如25fps,50帧大小GOP,1920*1080分辨率的目标码流而言,解码后,方案1采用全部存储的的方式需要消耗3*50=150M内存,本实施例采用分段存储方式,比如分段缓存长度设为300ms,则本实施例实施例中的二级分段缓存并行最大缓存为300*2=600ms长度的帧,即需要消耗ceil(300/(1000/25))*2*3=48M内存(ceil,函数名,用于返回大于或等于指定表达式的最小整数),显然本实施例更省内存。并且,在不增加内存消耗的情况下,方案1无法在播放显示过程并行解码缓存,从而无法满足流畅播放的要求,显然本实施例第二级缓存的播放显示与第一级的解码缓存是并行进行的,是可以满足流畅播放的。

与技术方案2相比,同样如25fps,50帧大小GOP,1920*1080分辨率的目标码流而言,采用技术方案2,同样假设分段缓存300ms即8帧,则该方案下,虽然内存占用3*8=24M,但同组GOP中的第41、40及前面的n帧均需解码(49-8-n+1+1)次,而本实施例中每帧仅需解码ceil(49/8)-ceil(n/8)+1次,且在倍速因子丢帧策略下,解码次数将会更少,且内存依然保持在48M,显然本实施例在付出很少内存基础上,大大节省CPU消耗。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。在不脱离本发明之精神和范围内,所做的任何修改、等同替换、改进等,同样属于本发明的保护范围之内。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:多挂件展示方法、装置及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类