一种视频倒放的方法及装置制造方法及图纸

技术编号:16330256 阅读:40 留言:0更新日期:2017-09-29 21:29
本发明专利技术涉及视频处理技术领域,特别涉及一种视频倒放的方法及装置,用以解决现有视频倒放方法存在内存占用较大的问题。本发明专利技术实施例将获取的目标码流数据进行分段处理得到多个码流数据段;从I帧开始依次对目标码流数据进行解码,并将多个码流数据段中第一范围内的码流数据段中的部分视频帧的解码图片,以及第二范围内的码流数据段中的部分或全部视频帧的解码图片存储在缓存区;逆向显示并释放缓存区中存储的解码图片。由于本发明专利技术实施例在对目标码流数据进行倒放时,并不需要将解码得到的码流数据段中每一个视频帧的解码图片均存储在缓存区,因此可以有效减少解码图片在缓存区中占用的内存。

【技术实现步骤摘要】
一种视频倒放的方法及装置
本专利技术涉及视频处理
,特别涉及一种视频倒放的方法及装置。
技术介绍
目前,视频文件的编码方式主要为非全I帧编码方式,非全I帧编码方式的视频文件中,视频帧包括有I帧、P帧。如图1所示的帧间编码方式,即I帧周期性出现,每一个周期为一个GOP(GroupofPictures,画面组)码流数据,如图1中I1、P2、P3、P4……Pn为一个GOP码流数据。其中I帧称为帧内编码帧,是一种自带全部信息的独立帧其无需参考其它帧便可独立进行解码;P帧也称为帧间预测编码帧,P帧不能够独立解码,必须参考前面的I帧或P帧才能进行编码。视频播放时必须先解码I帧,再解码依赖该I帧的P帧,方可正确解码,清晰播放,否则会出现花屏或者无法播放。在视频倒放时,由于P帧无法单独解码播放,必须依赖I帧解码,而在原始视频文件的倒放过程中,I帧始终处于依赖I帧的P帧之后,因此需要为P帧寻找I帧,在找到P帧所依赖的I帧之后,才可以进行视频的解码播放。目前,现有技术中的视频倒放方法主要通过以下步骤来完成:1、从视频文件的某个视频帧开始倒放,将开始倒放的视频帧从后往前依次获取到I帧的数据作为目标码流数据,存入缓存区A;2、从I帧开始依次解码,解码出目标码流数据中所有视频帧的图片,存入缓存区B;3、从缓存B中倒序获取图片进行显示。上述现有技术在做视频倒放时存在的主要问题是:现有技术是将解码后的图片存储在缓存B中,一张1920*1080P的图片占用约3MB内存,其中通用P制2sGOP包含50张图片,对应存储在缓存B占用的内存为150M;通用N制2sGOP包含60张图片,对应存储在缓存B占用的内存为180M;这对于目前内存紧张的平台(例如安防嵌入式设备)来说,占用内存巨大。综上所述,现有视频倒放方法存在内存占用较大的问题。
技术实现思路
本专利技术提供一种视频倒放的方法及装置,用以解决现有视频倒放方法存在内存占用较大的问题。基于上述问题,本专利技术实施例提出一种视频倒放的方法,包括:将获取的目标码流数据进行分段处理,得到多个码流数据段,其中所述目标码流数据为一个GOP码流数据中开始倒放的视频帧与I帧之间的数据,每段包括m个视频帧,所述m为正整数;从I帧开始依次对所述目标码流数据进行解码,并将所述多个码流数据段中第一范围内的码流数据段中的部分视频帧的解码图片,以及第二范围内的码流数据段中的部分或全部视频帧的解码图片存储在缓存区;逆向显示并释放所述缓存区中存储的解码图片;其中,在显示并释放解码图片的过程中,根据同一码流数据段中已存储的解码图片得到未存储的视频帧的解码图片,并存储到缓存区中。由于本专利技术实施例在对目标码流数据进行倒放时,将获取到的目标码流数据进行分段,并且在对目标码流数据解码后,将第一范围内的码流数据段中的部分视频帧的解码图片,以及第二范围内的码流数据段中的部分或全部视频帧的解码图片存储在缓存区,并不需要将解码得到的码流数据段中每一个视频帧的解码图片均存储在缓存区,因此可以有效减少解码图片在缓存区中占用的内存;并且,在缓存区中的解码图片在显示后即进行释放,避免过多占用内存;在解码图片显示过程中,根据同一码流数据段中已存储的解码图片得到未存储的视频帧的解码图片,实现第二缓存区的内存共享。可选的,所述将所述多个码流数据段中第一范围内的码流数据段中的部分视频帧的解码图片,以及第二范围内的码流数据段中的部分或全部视频帧的解码图片存储在缓存区,包括:将所述多个码流数据段中所述第一范围内的码流数据段中的第一个视频帧的解码图片,以及所述第二范围内的码流数据段中的全部视频帧的解码图片存储在缓存区。可选的,所述第一范围内的码流数据段为所述多个码流数据段中的除最后一段之外的所有码流数据段;所述第二范围内的码流数据段为所述多个码流数据段中的最后一段码流数据段。由于本专利技术实施例在对目标码流数据解码后,只将每段的第一视频帧的解码图片,以及最后一段所有视频帧的解码图片存储在第二缓存区,而除最后一段的其他段的非第一帧的解码图片不进行保存,可以有效减少第二缓存区占用的内存。可选的,所述在显示并释放解码图片的过程中,根据同一码流数据段中已存储的解码图片得到未存储的视频帧数据的解码图片,并存储到缓存区中,包括:在显示并释放解码图片的过程中,根据同一码流数据段中已存储的第一个视频帧的解码图片,对所述码流数据段中未存储的视频帧进行解码;将解码得到的所述未存储的视频帧的解码图片存储到缓存区中。由于本专利技术实施例的视频倒放方法需要的第二缓存区内存较小,因此为第二缓存区设置的内存也较小。在倒放开始前,第二缓存区中存储有每段的第一帧的解码图片和最后一段的所有帧的解码图片;在倒放开始后,每显示一张解码图片后进行释放,该第二缓存区中释放出一张图片的内存,此时可以对前一段的一个视频帧进行解码,将解码后的解码图片存储至第二缓存区,从而实现第二缓存区的内存复用。可选的,根据下列方式确定所述m值:根据一个GOP码流数据中视频帧的个数,以及一个GOP时间内能够解码的最大视频帧数,确定所述m值。由于本专利技术实施例在进行视频倒放时,需要对部分视频帧进行两次解码,从而减小第二缓存区所占用的内存;但是在一个GOP时间内对视频帧的解码次数是具有上限的,即存在一个GOP时间内能够解码的最大视频帧数,因此,并不能无线的增加对视频帧的解码次数,从而减小第二缓存区的内存占用。因此本专利技术实施例需要根据一个GOP码流数据中视频帧的个数,以及一个GOP时间内能够解码的最大视频帧数,合理的确定m值。可选的,所述根据一个GOP码流数据中视频帧的个数,以及一个GOP时间内能够解码的最大视频帧数,确定所述m值,具体包括:若则若则其中,所述Gop为一个GOP码流数据中视频帧的个数,所述N为一个GOP时间内能够解码的最大视频帧数,表示向上取整操作。由于本专利技术实施例给出了具体确定m值的方法,在不同情况下准确确定m值,从而在能够解码视频帧数的允许范围内,最大限度的减小第二缓存区的内存占用。另一方面,本专利技术实施例还提供一种视频倒放的装置,包括:获取模块,用于将获取的目标码流数据进行分段处理,得到多个码流数据段,其中所述目标码流数据为一个GOP码流数据中开始倒放的视频帧与I帧之间的数据,每段包括m个视频帧,所述m为正整数;处理模块,用于从I帧开始依次对所述目标码流数据进行解码,并将所述多个码流数据段中第一范围内的码流数据段中的部分视频帧的解码图片,以及第二范围内的码流数据段中的部分或全部视频帧的解码图片存储在缓存区;播放模块,用于逆向显示并释放所述缓存区中存储的解码图片;其中,在显示并释放解码图片的过程中,根据同一码流数据段中已存储的解码图片得到未存储的视频帧的解码图片,并存储到缓存区中。可选的,所述处理模块,具体用于:将所述多个码流数据段中所述第一范围内的码流数据段中的第一个视频帧的解码图片,以及第二范围内的码流数据段中的全部视频帧的解码图片存储在缓存区。可选的,所述第一范围内的码流数据段为所述多个码流数据段中的除最后一段之外的所有码流数据段;所述第二范围内的码流数据段为所述多个码流数据段中的最后一段码流数据段。可选的,所述处理模块,具体用于:在显示并释放解码图片的过程中,根据同一码流数据段中已存储的第一个视频帧的解码图本文档来自技高网
...
一种视频倒放的方法及装置

【技术保护点】
一种视频倒放的方法,其特征在于,该方法包括:将获取的目标码流数据进行分段处理,得到多个码流数据段,其中所述目标码流数据为一个画面组GOP码流数据中开始倒放的视频帧与I帧之间的数据,每段包括m个视频帧,所述m为正整数;从I帧开始依次对所述目标码流数据进行解码,并将所述多个码流数据段中第一范围内的码流数据段中的部分视频帧的解码图片,以及第二范围内的码流数据段中的部分或全部视频帧的解码图片存储在缓存区;逆向显示并释放所述缓存区中存储的解码图片;其中,在显示并释放解码图片的过程中,根据同一码流数据段中已存储的解码图片得到未存储的视频帧的解码图片,并存储到缓存区中。

【技术特征摘要】
1.一种视频倒放的方法,其特征在于,该方法包括:将获取的目标码流数据进行分段处理,得到多个码流数据段,其中所述目标码流数据为一个画面组GOP码流数据中开始倒放的视频帧与I帧之间的数据,每段包括m个视频帧,所述m为正整数;从I帧开始依次对所述目标码流数据进行解码,并将所述多个码流数据段中第一范围内的码流数据段中的部分视频帧的解码图片,以及第二范围内的码流数据段中的部分或全部视频帧的解码图片存储在缓存区;逆向显示并释放所述缓存区中存储的解码图片;其中,在显示并释放解码图片的过程中,根据同一码流数据段中已存储的解码图片得到未存储的视频帧的解码图片,并存储到缓存区中。2.如权利要求1所述的方法,其特征在于,所述将所述多个码流数据段中第一范围内的码流数据段中的部分视频帧的解码图片,以及第二范围内的码流数据段中的部分或全部视频帧的解码图片存储在缓存区,包括:将所述多个码流数据段中所述第一范围内的码流数据段中的第一个视频帧的解码图片,以及所述第二范围内的码流数据段中的全部视频帧的解码图片存储在缓存区。3.如权利要求2所述的方法,其特征在于,所述第一范围内的码流数据段为所述多个码流数据段中的除最后一段之外的所有码流数据段;所述第二范围内的码流数据段为所述多个码流数据段中的最后一段码流数据段。4.如权利要求3所述的方法,其特征在于,所述在显示并释放解码图片的过程中,根据同一码流数据段中已存储的解码图片得到未存储的视频帧数据的解码图片,并存储到缓存区中,包括:在显示并释放解码图片的过程中,根据同一码流数据段中已存储的第一个视频帧的解码图片,对所述码流数据段中未存储的视频帧进行解码;将解码得到的所述未存储的视频帧的解码图片存储到缓存区中。5.如权利要求1所述的方法,其特征在于,根据下列方式确定所述m值:根据一个GOP码流数据中视频帧的个数,以及一个GOP时间内能够解码视频帧的最大个数,确定所述m值。6.如权利要求5所述的方法,其特征在于,所述根据一个GOP码流数据中视频帧的个数,以及一个GOP时间内能够解码视频帧的最大个数,确定所述m值,包括:若则...

【专利技术属性】
技术研发人员:李牡铖尹春辉曾昭健
申请(专利权)人:浙江大华技术股份有限公司
类型:发明
国别省市:浙江,33

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

1