发明内容
本发明所要解决的技术问题是提供一种视频数据的处理方法和存储设备,用于减少视频数据存储所需的存储空间。
为解决上述技术问题,本发明提供方案如下:
一种视频数据处理方法,包括以下步骤:
步骤A,接收并缓存压缩编码后的视频数据;
步骤B,对所缓存的视频数据进行解码,获取视频数据的图像数据;
步骤C,对相邻的视频数据的图像数据进行图像运动检测,判断相邻的视频数据的图像是否相同;
步骤D,在视频数据段中所有相邻视频数据的图像都相同的时候,存储该视频数据段中任意一个视频数据。
本发明所述的方法,其中,
所述步骤C中,所述相邻的视频数据是相邻的I帧数据;
所述步骤D中,所述视频数据段的始末点为不同的I帧数据,所述任意一个视频数据是任意一个I帧数据。
本发明所述的方法,其中,所述步骤C中,根据帧差法、轮廓比较法、运动估计法、背景减除法或者时间差分法,对相邻的I帧数据的图像数据进行图像运动检测。
本发明所述的方法,其中所述步骤C之后还包括:
步骤E,在相邻的两个I帧数据的图像不相同的时候,将该两个I帧数据中的前一I帧数据和该两个I帧数据之间的所有视频数据全部存储。
本发明所述的方法,其中,
在步骤A中进一步包括:记录每帧视频数据的接收时刻;
在步骤D中进一步包括:保存用于检索所存储的任意一个I帧数据的时间索引,该时间索引中包括所述视频数据段始末点的两个I帧数据的接收时刻,以及用于标识该时间索引所对应的视频数据的图像是相同的标识信息;
在步骤E中进一步包括:保存用于检索所存储的视频数据的时间索引,并在该时间索引中包括所述前一I帧数据的接收时刻,以及用于标识该时间索引所对应的视频数据的图像是变化的标识信息。
本发明所述的方法,其中,进一步设置一个用于保存I帧数据的图像数据和该I帧数据的存储地址信息的静态图像I帧组;
所述步骤D中,在存储所述任意一个I帧数据之前,进一步将所述任意一个I帧数据的图像数据与静态图像I帧组中保存的各个I帧数据的图像数据分别进行图像运动检测,判断图像是否相同:
如果都不相同,则存储所述任意一个I帧数据,并将所述任意一个I帧数据的图像数据和所述任意一个I帧数据的存储地址信息保存在静态图像I帧组中,并删除静态图像I帧组中最早保存的I帧数据的图像数据及该最早保存的I帧数据的存储地址信息;
如果该任意一个I帧数据和静态图像I帧组中的其中一个I帧数据的图像相同,则将该任意一个I帧数据的时间索引指向所述其中一个I帧数据。
本发明所述的方法,其中还包括:
根据时间索引检索到对应的视频数据,并根据该时间索引中的标识信息判断所述对应的视频数据的图像是否相同,如果是,则在该时间索引中始末点的两个I帧数据的接收时刻所指示的时间段内,将所述对应的视频数据按照预定的帧速率重复输出至外部的回放设备;否则,将所述对应的视频数据直接输出至外部的回放设备。
一种视频数据的存储设备,包括:缓存单元、解码单元、图像运动检测单元和视频数据存储单元,其中,
所述缓存单元,用于接收并缓存压缩编码后的视频数据;
所述解码单元,用于对缓存单元中的视频数据进行解码,获取视频数据的图像数据;
所述图像运动检测单元,用于对解码单元获取的视频数据的图像数据进行图像运动检测,判断相邻的视频数据的图像是否相同,并将判断结果发送给视频数据存储单元;
所述视频数据存储单元,用于根据图像运动检测单元的判断结果,对于缓存单元中的视频数据段,如果该视频数据段中所有相邻视频数据的图像都相同,则存储该视频数据段中任意一个视频数据。
本发明所述的存储设备,其中,
所述解码单元进一步用于对缓存单元中的I帧数据进行解码,获取I帧数据的图像数据;
所述图像运动检测单元,进一步用于对解码单元获取的I帧数据的图像数据进行图像运动检测,判断相邻的I帧数据的图像是否相同,并将判断结果发送给视频数据存储单元;
所述视频数据存储单元,进一步用于根据图像运动检测单元的判断结果,对于缓存单元中的始末点为不同I帧数据的视频数据段,如果该视频数据段中所有相邻I帧数据的图像都相同,则存储该视频数据段中任意一个I帧数据。
本发明所述的存储设备,其中,所述视频数据存储单元进一步用于根据图像运动检测单元的判断结果,在缓存单元中相邻的两个I帧数据的图像不相同的时候,将该两个I帧数据中的前一I帧数据和该两个I帧数据之间的所有视频数据全部存储。
本发明所述的存储设备,其中还包括时间索引保存单元,
所述缓存单元,进一步用于记录每帧视频数据的接收时刻;
所述时间索引保存单元,根据视频数据存储单元存储的视频数据和缓存单元中记录的视频数据的接收时刻,保存用于检索视频数据存储单元中的视频数据的时间索引,并在时间索引中保存用于标识视频数据的图像是否相同的标识信息,以及在图像相同的视频数据段的时间索引中,保存该视频数据段始末点的两个I帧数据的接收时刻;在图像变化的视频数据的时间索引中,保存该视频数据中的I帧数据的接收时刻。
本发明所述的存储设备,其中,所述缓存单元进一步包括静态图像I帧组保存单元;
所述静态图像I帧组保存单元,用于保存I帧数据的图像数据和该I帧数据的存储地址信息,以及根据图像运动检测单元的检测结果,在所述任意一个I帧数据和静态图像I帧组保存单元中的I帧数据的图像都不相同时,保存所述任意一个I帧数据的图像数据和所述任意一个I帧数据的存储地址信息;
所述图像运动检测单元,进一步用于在所述视频数据存储单元存储所述任意一个I帧数据之前,将所述任意一个I帧数据的图像数据与静态图像I帧组保存单元中保存的各个I帧数据的图像数据分别进行图像运动检测,并将检测结果发送给时间索引单元和视频数据存储单元;
所述视频数据存储单元,在存储所述任意一个I帧数据之前,进一步根据图像运动检测单元的检测结果,在所述任意一个I帧数据和静态图像I帧组保存单元中的其中一个I帧数据的图像相同时不存储所述任意一个I帧数据;
所述时间索引保存单元,进一步根据图像运动检测单元的检测结果,在所述任意一个I帧数据和静态图像I帧组保存单元中的其中一个I帧数据的图像相同时,将该任意一个I帧数据的时间索引指向所述其中一个I帧数据。
本发明所述的存储设备,其中还包括回放控制单元,
所述回放控制单元,用于根据时间索引保存单元保存的时间索引,在视频数据存储单元中检索到对应的视频数据,并根据时间索引的标识信息判断视频数据的图像是否相同,如果相同,则在该时间索引中始末点的两个I帧数据的接收时刻所指示的时间段内,将所述对应的视频数据按照预定的帧速率重复输出至回放设备;否则,将所述对应的视频数据直接输出至回放设备。
从以上所述可以看出,本发明提供的视频数据的处理方法和存储设备,对视频数据进行缓存,并通过图像运动检测算法对视频数据的图像进行判定,对于图像相同的视频数据段只保存其中的一帧I帧数据,从而减少了视频数据存储所需的存储空间;并且,本发明进一步对视频数据段之间的图像进行比较,对于图像相同的视频数据段,不存储任何视频数据,从而进一步降低了存储的视频数据量,节约了视频监控系统的成本。
具体实施方式
由于在视频监控系统的实际应用场景中,例如银行、仓库等场所,在大部分的时间内,摄像装置所采集到的图像都是相同的,没有发生变化的。因此,存储设备并不需要保存的所有的视频数据。本发明的思路是对视频数据之间的图像是否是相同的进行判断,如果是相同的,则只存储其中一帧视频数据,而在图像发生变化时,才对视频数据全部存储,从而达到节省存储空间的目的。
针对目前视频数据的压缩编码算法,无论是运动画面专家小组(MPEG,Moving Pictures Experts Group)系列还是国际电联电信标准化部门(ITU-T)的H.26x系列,压缩编码后的视频数据都采用了I帧、B帧和P帧的组合方式。其中,I帧采用帧内编码方式,只利用了单帧图像内的空间相关性,压缩倍数相对较低;P帧和B帧图像采用帧间编码方式,同时利用了空间和时间上的相关性,从而大大提高了压缩比。由于I帧是周期性出现在图像帧序列中,并且I帧中保存了原始图像的大量数据,因而可以通过对接收到的视频数据中的I帧数据进行解码,得到I帧数据的图像数据,对连续的I帧数据的图像数据进行比较,判断图像是否相同。
请参照图2,本发明实施例所述的视频数据的处理方法,在对视频数据进行存储时包括以下步骤:
步骤21,接收并缓存压缩编码后的视频数据,并同时记录每帧视频数据的接收时刻。
这里,被缓存的视频数据是经过压缩编码处理得到的I、B、P帧序列,常用的压缩编码算法包括MEPG系列和H.264等。存储设备接收并缓存上述视频数据,并同时记录下存储设备接收到每帧视频数据时的接收时刻。
步骤22,对所缓存的视频数据中的I帧数据进行解码,获取I帧数据的图像数据。
这里,针对视频数据压缩时所采用的压缩编码算法,如MEPG或H.264等,采用相应的解码算法对I帧数据进行解码,得到I帧数据的图像数据。由于本发明只对I帧数据的图像数据进行比较,因此可以只对I帧数据进行相应的解码,以减少解码所需的运算时间和处理器资源的耗费。
步骤23,对相邻的I帧数据的图像数据进行图像运动检测,判断相邻的I帧数据的图像是否相同。
这里,对相邻I帧数据的图像数据进行图像运动检测,可以采用帧差法、轮廓比较法、运动估计法、背景减除法或者时间差分法等运动检测算法。上述运动检测算法的思想都是对两个I帧数据的图像数据进行抽样,并对抽样数据进行比较,根据抽样数据的比较结果判断上述两个I帧数据之间的图像是否是变化的。从实现的控制逻辑复杂程度以及对存储设备的要求角度考虑,本发明优选采用帧差法。
步骤24,根据步骤23的判断结果对所缓存的视频数据进行存储:
如果相邻的两个I帧数据的图像不相同,则将该两个I帧数据中的前一I帧数据和该两个I帧数据之间的所有视频数据全部存储,同时为所存储的视频数据保存时间索引,并在该时间索引中包括所述前一I帧数据的接收时刻,以及用于标识该时间索引所对应的视频数据的图像是变化的标识信息;
如果始末点为不同的I帧数据的视频数据段中,所有相邻I帧数据的图像都相同,则只存储该视频数据段中任意一个I帧数据,而将其他视频数据丢弃,同时保存用于检索所存储的一个I帧数据的时间索引,该时间索引中包括该视频数据段起始I帧数据和结束I帧数据的接收时刻,以及用于标识该时间索引所对应的视频数据的图像是相同的标识信息。
为了更清楚的说明上述处理方法,以下通过举例进行说明,请参照图3,假设缓存的视频数据帧序列为I1B1P1……ImBmPm……InBnPn,分别对应于接收时刻T1……Tm……Tn,其中,上述B1、P1、Bm、Pm等帧可能有多个。假设I1至Im的图像都是相同的,而Im和In之间的图像都是变化的,本发明是按照以下方式对上述视频数据进行存储:
首先,对缓存的I帧数据进行解码,得到I帧数据的图像数据;然后,对I帧数据的图像数据逐个进行图像运动检测,例如,对I1和I2的图像数据进行图像运动检测,判断I1和I2的图像是相同的;对I2和I3的图像数据进行图像运动检测,判断判断I2和I3的图像也是相同的,当检测到Im处时,判断Im和Im+1之间的图像是变化的,此时可以得到一个从I1到Im的视频数据段,该视频数据段中任意相邻的I帧数据的图像都是相同的,因此对于该视频数据段只需存储其中一个I帧数据,如存储I1或Im,而对于其他视频数据则全部丢弃;同时为所存储的这一个I帧数据保存时间索引,并在该时间索引中包括上述视频数据段的起始I帧的接收时刻T1和结束I帧的接收时刻Tm,以及用于标识该时间索引所检索的视频数据的图像是相同的标识信息。
由于Im到In之间任意相邻的两个I帧数据之间的图像都是变化的,因此将Tm到Tn之间的所有视频数据全部存储,并同时为所存储的视频数据保存时间索引,例如,在对Im和Im+1的图像数据进行图像运动检测时,由于这两个I帧数据之间的图像是变化的,因此将Im、Bm和Pm全部存储,同时保存时间索引,并在时间索引中包括Im的接收时刻Tm,以及用于标识该时间索引所检索的视频数据的图像是变化的标识信息。
图4所示为按照上述处理方法对图3中的视频数据进行存储的结果,其中,图中第一列是存储设备中所存储的视频数据的时间索引,第二列是各时间索引对应的视频数据。从图4中可以看出,本发明的视频数据的处理方法对于图像相同的视频数据只保存其中的一种I帧数据,丢弃了大量的重复的视频数据,因而可以有效的节约存储设备的存储空间,从而降低系统设备成本。
以上说明了本发明视频数据的处理方法对视频数据的存储过程。需要指出的是,上述举例中的视频数据段的结束I帧数据和与该结束I帧数据相邻的下一I帧数据的图像是变化的,但本发明并不局限这种情况,只需该视频数据段满足其中所有相邻I帧数据的图像是相同的这一条件即可。显然,在视频数据段的起始I帧数据和与该起始I帧数据相邻的前一I帧的图像是不相同的,并且该视频数据段的结束I帧和与该结束I帧数据相邻的下一I帧数据的图像也是不相同的时候,本发明能够较大程度地节省存储空间。
由于在视频监控系统的实际应用场景中,摄像装置采集到的图像大多是静止的图像。即使应用场景中出现活动的图像,在此活动的图像之后,应用场景通常又恢复到先前静止的图像,例如,在银行的自动取款机处,无人取款时候的图像和用户取款离开后的图像通常是相同的。因此,本发明还可以将当前图像与先前存储的视频数据的图像相比较,如果相同,则可以将当前图像的视频数据的时间索引指向先前存储的视频数据,而不需存储任何视频数据,从而可以进一步节省存储空间。
为此,本发明在缓存中设置一个静态图像I帧组,用于保存I帧数据的图像数据以及该I帧数据的存储地址信息。这里,静态图像I帧组的大小可以根据具体的应用场景和缓存大小进行设置。
这样,在步骤24中存储所述视频数据段的任意一个I帧数据之前,本发明进一步将所述任意一个I帧数据的图像数据与静态图像I帧组中保存的各个I帧数据的图像数据分别进行图像运动检测,判断图像是否相同:
如果都不相同,则存储所述任意一个I帧数据,并为该任意一个I帧数据保存时间索引;同时,将所述任意一个I帧数据的图像数据和所述任意一个I帧数据的存储地址信息保存在静态图像I帧组中,并删除静态图像I帧组中最早保存的I帧数据的图像数据及该最早保存的I帧数据的存储地址信息。这样使得静态图像I帧组不会占用过多的缓存空间;
如果所述任意一个I帧数据和静态图像I帧组中某个I帧数据的图像相同,则根据所述某个I帧数据的存储地址信息,将该任意一个I帧数据的时间索引指向所述某个I帧数据,而不存储所述任意一个I帧数据,
显然,在初始状态时,所述静态图像I帧组为空,按照上述方法对所述任意一个I帧数据和该静态图像I帧组中的数据进行比较时,必然得到都不相同的结果,因而将在静态图像I帧组中保存所述任意一个I帧数据的图像数据以及该任意一个I帧数据的存储地址信息。
以下通过举例说明上述比较过程:
例如,当前静态图像I帧组中保存了3个I帧数据的图像数据以及相应的I帧数据的存储地址信息,按照时间先后顺序,这3个I帧数据分别是时间段Ta-Tb的Ib帧,Tj-Tk时间段的Ik帧,Tu-Tw时间段的Iw帧;在步骤24中得到Tp-Tq时间段中所有相邻I帧数据的图像都相同时,将对Tp-Tq时间段的任意一个I帧数据,例如Iq,进行存储,此时,本发明在存储Iq之前,进一步对Iq的图像数据和静态图像I帧组中保存的各个图像数据分别进行运动图像检测,例如可以按照与Tp-Tq时间段由近及远的顺序(如Iw、Ik、Ib)分别进行比较:如果Iq与其中某个I帧数据,例如Iw,的图像相同,则直接根据Iw的存储地址信息,将Tp-Tq时间段的时间索引指向Iw,而不再存储任何I帧数据;如果Iq与静态图像I帧组的各个图像数据的图像都不相同,此时,按照步骤24对Iq进行存储,并进一步将Iq的图像数据和Iq的存储地址信息保存在静态图像I帧组中,同时删除静态图像I帧组中最早保存的Ib的图像数据及Ib的存储地址信息。
本发明视频数据的处理方法在对存储的视频数据进行检索回放时还包括以下步骤:
步骤31,根据时间索引检索到对应的视频数据,并根据该时间索引中的标识信息判断所述对应的视频数据的图像是否相同,如果相同,则进入步骤32;否则进入步骤33。
步骤32,根据该时间索引中起始I帧数据的接收时刻和结束I帧数据的接收时刻获取该相同的图像所持续的时间段,在该相同的图像所持续的时间段内,将所述对应的视频数据按照预定的帧速率重复输出。
步骤33,将所述对应的视频数据直接输出至外部的回放。
例如,对于图4所示的视频数据进行检测回放时,通过时间索引检索到对应的视频数据,当标识信息指示该视频数据的图像是相同的图像时,如当回放到T1-Tm处时,通过将Tm减去T1可获取该相同的图像所持续的时间段,从而在该时间段内将Im按照预定的帧速率重复输出至外部的回放设备;而当回放到Tm或Tm+1等处时,由于标识信息指示图像是变化的,因此将该时间索引对应的视频数据直接输出至外部的回放设备。由于在实际的视频数据传输过程中,为了保证图像的质量,每秒传输的视频数据必须保证一定的速率,对于美国国际电视标准委员会(NTSC,National Television System Committee)制式该速率是30帧/秒,对于逐行倒相(PAL,Phase Alternating Line)制式则是25帧/秒,因此,上述预定的帧速率通常是30帧/秒或25帧/秒。
基于上述视频数据的处理方法,本发明还提供了一种存储设备。如图5所示,该存储设备500包括:缓存单元51、解码单元52、图像运动检测单元53、视频数据存储单元54、时间索引保存单元55和回放控制单元56,其中,缓存单元还包括静态图像I帧组保存单元57,
所述缓存单元51,用于接收并缓存压缩编码后的视频数据,同时记录每帧视频数据的接收时刻。这里,缓存单元51所接收的视频数据是经过压缩编码算法压缩编码后的视频数据,所述的压缩编码算法包括MEPG或H.264等。
所述解码单元52,用于对缓存单元51中的I帧数据进行解码,获取I帧数据的图像数据。
所述图像运动检测单元53,用于对解码单元获取的I帧数据的图像数据进行图像运动检测,判断相邻的I帧数据的图像是否相同,并将判断结果发送给视频数据存储单元54和时间索引保存单元55。这里,可以通过帧差法、轮廓比较法、运动估计法、背景减除法或者时间差分法等判断相邻的I帧数据的图像是否相同。
所述视频数据存储单元54,用于根据图像运动检测单元53的判断结果,对于缓存单元51中始末点为不同的I帧数据的视频数据段,如果该视频数据段中所有相邻I帧数据的图像都相同,则存储该视频数据段中任意一个I帧数据。该视频数据存储单元54,还可以进一步用于根据图像运动检测单元53的判断结果,在缓存单元51中相邻的两个I帧数据之间的图像不相同的时候,将该两个I帧数据中的前一I帧数据和该两个I帧数据之间的所有视频数据全部存储。
所述时间索引保存单元55,用于根据视频数据存储单元54存储的视频数据和缓存单元51中记录的视频数据的接收时刻,保存用于检索视频数据存储单元54中的视频数据的时间索引,并在时间索引中保存用于标识视频数据的图像是否相同的标识信息,以及在图像相同的视频数据段的时间索引中,保存该视频数据段始末点的两个I帧数据的接收时刻;在图像变化的视频数据的时间索引中,保存该视频数据中的I帧数据的接收时刻。
所述回放控制单元56,用于根据时间索引保存单元55保存的时间索引,在视频数据存储单元54中检索到对应的视频数据,并根据时间索引的标识信息判断视频数据的图像是否相同,如果相同,则在该时间索引中始末点的两个I帧数据的接收时刻所指示的时间段内,将所述对应的视频数据按照预定的帧速率重复输出至回放设备;否则,将所述对应的视频数据直接输出至回放设备。这里,所述预定的帧速率是PAL制式的每秒25帧或NTSC制式的每秒30帧。
这里,缓存单元51中进一步包括静态图像I帧组保存单元57。该静态图像I帧组保存单元57用于保存I帧数据的图像数据和该I帧数据的存储地址信息,以及根据图像运动检测单元53的检测结果,在所述任意一个I帧数据和静态图像I帧组保存单元56中的I帧数据的图像都不相同时,保存所述任意一个I帧数据的图像数据和所述任意一个I帧数据的存储地址信息。
所述图像运动检测单元53,进一步用于在所述视频数据存储单元54存储所述任意一个I帧数据之前,将所述任意一个I帧数据的图像数据与静态图像I帧组保存单元57中保存的各个I帧数据的图像数据分别进行图像运动检测,并将检测结果发送给时间索引单元55和视频数据存储单元54。
所述视频数据存储单元54,在存储所述任意一个I帧数据之前,进一步根据图像运动检测单元53的检测结果,在所述任意一个I帧数据和静态图像I帧组保存单元中的其中一个I帧数据的图像相同时不存储所述任意一个I帧数据;
所述时间索引保存单元55,进一步根据图像运动检测单元53的检测结果,在所述任意一个I帧数据和静态图像I帧组保存单元57中的其中一个I帧数据的图像相同时,将该任意一个I帧数据的时间索引指向所述其中一个I帧数据,
综上所述,本发明实施例所述视频数据的处理方法以及存储设备,对接收到的视频数据进行缓存,并对缓存中的重复的视频数据只存储其中一帧,从而节省了大量的存储空间,降低了系统设备成本。
本发明所述的视频数据的处理方法以及存储设备,并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明之领域,对于熟悉本领域的人员而言可容易地实现另外的优点和进行修改,因此在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节、代表性的设备和这里示出与描述的图示示例。