一种视频数据存储方法、装置和计算机可读存储介质与流程

文档序号:22254381发布日期:2020-09-18 13:24阅读:114来源:国知局
一种视频数据存储方法、装置和计算机可读存储介质与流程

本发明涉及图像处理技术领域,特别是涉及一种视频数据存储方法、装置和计算机可读存储介质。



背景技术:

传统的集成视频压缩功能的片上系统(systemonchip,soc)需要将全部的原始rgb数据存入双倍速率同步动态随机存储器(doubledatarate,ddr),然后控制模块再读出rgb数据,进行rgb2yuv色彩空间转换的处理,进而根据软件配置的压缩编码模式,对完成色彩空间转换的yuv数据进行处理。其中,yuv是一种颜色编码方法,其对应的英文全称为luminance-bandwidth-chrominance,y表示亮度,u表示色度,v表示浓度。压缩ip内部的地址产生模块,根据当前帧的分辨率信息及编码模式,按照block的顺序及配置的y、u、v初始地址,产生ddr地址,以block的形式,将yuv数据读回至压缩ip内部。完成压缩后,将压缩视频数据写回至ddr指定地址。

传统方案中,需要将全部的原始rgb数据进行存储,以yuv420编码模式为例,其实真正输入到压缩ip的数据,只是原始数据的50%。而多存储另外一半的数据,其实是没有意义的,不仅占用内存带宽,并且占用内存资源。

可见,如何降低视频压缩所占用的内存带宽,是本领域技术人员需要解决的问题。



技术实现要素:

本发明实施例的目的是提供一种视频数据存储方法、装置和计算机可读存储介质,可以降低视频压缩所占用的内存带宽。

为解决上述技术问题,本发明实施例提供一种视频数据存储方法,包括:

获取原始视频数据;

利用颜色编码的剩余存储空间所对应的丢帧率,对所述原始视频数据进行丢帧处理,以得到目标视频数据;

对所述目标视频数据进行色彩空间转换,并按照所述原始视频数据对应的压缩模式,对色彩空间转换后的目标视频数据进行yuv丢数处理,将yuv丢数处理后的目标视频数据存储至ddr。

可选地,所述利用颜色编码的剩余存储空间所对应的丢帧率,对所述原始视频数据进行丢帧处理,以得到目标视频数据包括:

根据颜色编码的初始存储空间以及当前的ddr读地址和ddr写地址,计算出颜色编码的剩余存储空间;

依据存储空间与丢帧率的对应关系,确定出所述原始视频数据的目标丢帧率;

按照所述目标丢帧率对所述原始视频数据进行丢帧处理,以得到目标视频数据。

可选地,所述依据存储空间与丢帧率的对应关系,确定出所述原始视频数据的目标丢帧率包括:

判断所述剩余存储空间是否小于预设阈值;

若否,则将目标丢帧率设置为0;

若是,则查找所述剩余存储空间所匹配的空间范围,将所述空间范围对应的丢帧率作为所述原始视频数据的目标丢帧率;其中,不同的空间范围对应不同的丢帧率。

可选地,所述按照所述目标丢帧率对所述原始视频数据进行丢帧处理,以得到目标视频数据包括:

依据所述目标丢帧率将所述原始视频数据进行分组处理,以得到多个视频组;

按照所述目标丢帧率对各所述视频组进行丢帧处理,并将丢帧处理后的各视频组进行拼接,以得到目标视频数据。

可选地,所述色彩空间转换后的目标视频数据包括y数据、u数据和v数据;

相应的,所述按照所述原始视频数据对应的压缩模式,对色彩空间转换后的目标视频数据进行yuv丢数处理包括:

当所述压缩模式为yuv444压缩配置时,则保留色彩空间转换后的目标视频数据;

当所述压缩模式为yuv422压缩配置时,则将所述u数据的奇数列数据以及所述v数据的奇数列数据丢弃;

当所述压缩模式为yuv420压缩配置时,则将所述u数据的奇数行的数据以及偶数行的奇数列数据丢弃,将所述v数据的奇数行的数据以及偶数行的奇数列数据丢弃。

本发明实施例还提供了一种视频数据存储装置,包括获取单元、处理单元、转换单元、压缩单元和存储单元;

所述获取单元,用于获取原始视频数据;

所述处理单元,用于利用颜色编码的剩余存储空间所对应的丢帧率,对所述原始视频数据进行丢帧处理,以得到目标视频数据;

所述转换单元,用于对所述目标视频数据进行色彩空间转换;

所述压缩单元,用于按照所述原始视频数据对应的压缩模式,对色彩空间转换后的目标视频数据进行yuv丢数处理;

所述存储单元,用于将yuv丢数处理后的目标视频数据存储至ddr。

可选地,所述处理单元包括计算子单元、确定子单元和得到子单元;

所述计算子单元,用于根据颜色编码的初始存储空间以及当前的ddr读地址和ddr写地址,计算出颜色编码的剩余存储空间;

所述确定子单元,用于依据存储空间与丢帧率的对应关系,确定出所述原始视频数据的目标丢帧率;

所述得到子单元,用于按照所述目标丢帧率对所述原始视频数据进行丢帧处理,以得到目标视频数据。

可选地,所述确定子单元具体用于判断所述剩余存储空间是否小于预设阈值;若否,则将目标丢帧率设置为0;若是,则查找所述剩余存储空间所匹配的空间范围,将所述空间范围对应的丢帧率作为所述原始视频数据的目标丢帧率;其中,不同的空间范围对应不同的丢帧率。

可选地,所述得到子单元具体用于依据所述目标丢帧率将所述原始视频数据进行分组处理,以得到多个视频组;按照所述目标丢帧率对各所述视频组进行丢帧处理,并将丢帧处理后的各视频组进行拼接,以得到目标视频数据。

可选地,所述色彩空间转换后的目标视频数据包括y数据、u数据和v数据;

相应的,所述压缩单元具体用于当所述压缩模式为yuv444压缩配置时,则保留色彩空间转换后的目标视频数据;当所述压缩模式为yuv422压缩配置时,则将所述u数据的奇数列数据以及所述v数据的奇数列数据丢弃;当所述压缩模式为yuv420压缩配置时,则将所述u数据的奇数行的数据以及偶数行的奇数列数据丢弃,将所述v数据的奇数行的数据以及偶数行的奇数列数据丢弃。

本发明实施例还提供了一种视频数据存储装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上述任意实施例所述的视频数据存储方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意实施例所述的视频数据存储方法的步骤。

由上述技术方案可以看出,获取原始视频数据;利用颜色编码的剩余存储空间所对应的丢帧率,对原始视频数据进行丢帧处理,以得到目标视频数据。根据颜色编码的存储空间使用情况,对原始视频数据进行动态可配丢帧,尽最大的可能性保证了视频的流畅性。对目标视频数据进行色彩空间转换,并按照原始视频数据对应的压缩模式,对色彩空间转换后的目标视频数据进行yuv丢数处理,将yuv丢数处理后的目标视频数据存储至ddr。在该技术方案中,原始视频数据在存入ddr之前,提前进行色彩空间转换以及根据当前帧的压缩模式进行yuv丢数处理,然后将yuv丢数处理之后的视频数据存入ddr,实现只存储视频压缩过程中用到的yuv数据,极大的降低了soc系统中视频功能所占的内存带宽和资源。同时本申请中对原始视频数据进行了丢帧处理的操作,相比于传统方式,本申请有效的减少了存入ddr的视频数据量,节省了ddr带宽。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种视频数据存储方法的流程图;

图2为本发明实施例提供的一种视频数据丢帧处理的方法的流程图;

图3为本发明实施例提供的一种视频数据存储装置的结构示意图;

图4为本发明实施例提供的一种视频数据存储装置的硬件结构示意图。

具体实施方式

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

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

接下来,详细介绍本发明实施例所提供的一种视频数据存储方法。图1为本发明实施例提供的一种视频数据存储方法的流程图,该方法包括:

s101:获取原始视频数据。

在本发明实施例中,可以通过vgasource获取显卡输出的原始视频数据。

s102:利用颜色编码的剩余存储空间所对应的丢帧率,对原始视频数据进行丢帧处理,以得到目标视频数据。

原始视频数据需要进行色彩空间转换和yuv数据处理。色彩空间转换后的视频数据包括y数据、u数据和v数据,颜色编码的剩余存储空间指的是根据软件配置分配给y、u、v的存储空间的剩余空间。

颜色编码的剩余存储空间可以根据软件配置分配给颜色编码的初始存储空间以及颜色编码已经使用的存储空间计算得到。

在本发明实施例中,颜色编码的剩余存储空间越大,则丢帧率越小。

通过依据颜色编码的剩余存储空间,对原始视频数据进行丢帧处理,可以有效的解决由于颜色编码剩余存储空间的不足,导致视频数据的丢失或卡顿的问题,尽最大的可能性保证视频的流畅性。

对原始视频数据进行丢帧处理的具体实现方式可以参见图2,在此不再赘述。

s103:对目标视频数据进行色彩空间转换,并按照原始视频数据对应的压缩模式,对色彩空间转换后的目标视频数据进行yuv丢数处理,将yuv丢数处理后的目标视频数据存储至ddr。

为了便于和原始视频数据进行区分,在本发明实施例中,可以将丢帧处理后的视频数据称作目标视频数据。

色彩空间转换指的是对目标视频数据进行rgb2yuv色彩空间转换,以得到yuv444数据。色彩空间转换操作属于常规技术,在此不再赘述。

色彩空间转换后的目标视频数据包括y数据、u数据和v数据;

视频数据的压缩模式包括三种,分别为yuv444压缩配置、yuv422压缩配置和yuv420压缩配置。

由于色彩空间转换后得到的是yuv444数据,因此当压缩模式为yuv444压缩配置时,则可以不对色彩空间转换后的目标视频数据进行yuv丢数处理,即直接保留色彩空间转换后的目标视频数据,将色彩空间转换后的目标视频数据存储至ddr即可。

当压缩模式为yuv422压缩配置时,则需要将色彩空间转换后的目标视频数据中的u数据的奇数列数据以及v数据的奇数列数据丢弃。即保留色彩空间转换后的目标视频数据中的全部y数据、u数据中的偶数列数据以及v数据中的偶数列数据。在实际应用中,可以将保留的全部y数据写进软件配置的y_init_addr,u数据中的偶数列数据写进软件配置的u_init_addr,v数据中的偶数列数据写进软件配置的v_init_addr。其中,y_init_addr、u_init_addr、v_init_addr是ddr初始地址。

需要说明的是,在本发明实施例中,当压缩模式为yuv422压缩配置时,也可以将色彩空间转换后的目标视频数据中的u数据的偶数列数据以及v数据的偶数列数据丢弃。即保留色彩空间转换后的目标视频数据中的全部y数据、u数据中的奇数列数据以及v数据中的奇数列数据。只要达到每两个y分量共用一组uv分量即可。

当压缩模式为yuv420压缩配置时,则需要将色彩空间转换后的目标视频数据中的u数据的奇数行的数据以及偶数行的奇数列数据丢弃,将v数据的奇数行的数据以及偶数行的奇数列数据丢弃。即保留色彩空间转换后的目标视频数据中的全部y数据、u数据中的偶数行的偶数列数据以及v数据中的偶数行的偶数列数据。

在实际应用中,可以将保留的全部y数据写进软件配置的y_init_addr,u数据中的偶数行的偶数列数据写进软件配置的u_init_addr,v数据中的偶数行的偶数列数据写进软件配置的v_init_addr。其中,y_init_addr、u_init_addr、v_init_addr是ddr初始地址。

需要说明的是,在本发明实施例中,当压缩模式为yuv420压缩配置时,也可以保留色彩空间转换后的目标视频数据中的全部y数据、u数据中的奇数行的奇数列数据以及v数据中的奇数行的奇数列数据。或者是保留色彩空间转换后的目标视频数据中的全部y数据、u数据中的奇数行的偶数列数据以及v数据中的奇数行的偶数列数据。又或者是保留色彩空间转换后的目标视频数据中的全部y数据、u数据中的偶数行的奇数列数据以及v数据中的偶数行的奇数列数据。只要达到每四个y分量共用一组uv分量即可。

传统方案中,先将获取到的原始视频数据保存至ddr,然后从ddr中读取原始视频数据进行色彩空间转换,对色彩空间转换后的视频数据进行yuv丢数处理,将yuv丢数处理后的视频数据存储至ddr。整个原始视频数据的压缩处理过程需要多次占用ddr接口,导致访问ddr接口的频率很高,与此同时soc系统中的软件也是运行在ddr中的,也是需要频繁访问ddr的,这样就造成了ddr接口的竞争。

本申请中对获取到的原始视频数据进行丢帧处理之后直接执行色彩空间转换的操作,无需将原始视频数据存储至ddr,再从ddr中读取原始视频数据,降低了视频功能与soc系统中其他软件竞争ddr接口的概率,极大的提升了soc系统的性能。本申请中只存储了视频压缩必要的yuv数据,而当前编码模式下用不到的uv数据,没有写入ddr,进一步节省了ddr带宽,提升了soc性能。

由上述技术方案可以看出,获取原始视频数据;利用颜色编码的剩余存储空间所对应的丢帧率,对原始视频数据进行丢帧处理,以得到目标视频数据。根据颜色编码的存储空间使用情况,对原始视频数据进行动态可配丢帧,尽最大的可能性保证了视频的流畅性。对目标视频数据进行色彩空间转换,并按照原始视频数据对应的压缩模式,对色彩空间转换后的目标视频数据进行yuv丢数处理,将yuv丢数处理后的目标视频数据存储至ddr。在该技术方案中,原始视频数据在存入ddr之前,提前进行色彩空间转换以及根据当前帧的压缩模式进行yuv丢数处理,然后将yuv丢数处理之后的视频数据存入ddr,实现只存储视频压缩过程中用到的yuv数据,极大的降低了soc系统中视频功能所占的内存带宽和资源。同时本申请中对原始视频数据进行了丢帧处理的操作,相比于传统方式,本申请有效的减少了存入ddr的视频数据量,节省了ddr带宽。

如图2所示为本发明实施例提供的一种视频数据丢帧处理的方法的流程图,方法包括:

s201:根据颜色编码的初始存储空间以及当前的ddr读地址和ddr写地址,计算出颜色编码的剩余存储空间。

当前的ddr读地址反映了已经从颜色编码的存储空间中读取出的视频数据所对应的地址。

当前的ddr写地址反映了向颜色编码的存储空间中写入的视频数据的所对应的地址。

ddr读地址和ddr写地址的差值反映了视频数据对颜色编码存储空间的占用空间。在实际应用中,依据颜色编码的初始存储空间以及视频数据的占用空间,可以得到颜色编码的剩余存储空间。

s202:依据存储空间与丢帧率的对应关系,确定出原始视频数据的目标丢帧率。

在本发明实施例中,为了更加快速的确定剩余存储空间所对应的丢帧率,可以预先建立不同的存储空间与丢帧率的对应关系。

考虑到实际应用中,当颜色编码的剩余存储空间较大时,无需对原始视频数据执行丢帧处理,因此在实际应用中,可以对颜色编码的剩余存储空间进行评估,判断剩余存储空间是否小于预设阈值。

其中,预设阈值的取值可以根据实际需求设定,例如,预设阈值可以设置为颜色编码的初始存储空间的一半。

当剩余存储空间大于或等于预设阈值时,则说明剩余存储空间可以对原始视频数据中包含的所有数据帧进行处理,此时可以将目标丢帧率设置为0,即不对原始视频数据执行丢帧处理。直接将原始视频数据作为目标视频数据进行色彩空间转换操作即可。

当剩余存储空间小于预设阈值时,则说明剩余存储空间无法对原始视频数据中包含的所有数据帧进行处理,此时可以查找剩余存储空间所匹配的空间范围,将空间范围对应的丢帧率作为原始视频数据的目标丢帧率;其中,不同的空间范围对应不同的丢帧率。

举例说明,以颜色编码的初始存储空间可以存储10帧视频数据,预设阈值为5帧视频数据所占用的存储空间大小为例。当剩余存储空间可以容纳4帧视频数据时,丢帧率可以设置为1/2,即按照1/2的丢帧率进行丢帧,在实际应用中可以每隔一帧丢一帧。当剩余存储空间可以容纳3帧视频数据时,丢帧率可以设置为2/3,即按照2/3的丢帧率进行丢帧,即每3帧丢2帧。当剩余存储空间可以容纳2帧视频数据时,丢帧率可以设置为3/4,即按照3/4的丢帧率进行丢帧,即每4帧丢3帧。可以容纳1帧视频数据时,丢帧率可以设置为4/5,此时按照4/5的丢帧率进行丢帧,即每5帧丢4帧。当剩余空间<1帧,为保证帧数据的完整传输,此时将视频数据全部丢掉。

s203:按照目标丢帧率对原始视频数据进行丢帧处理,以得到目标视频数据。

在本发明实施例中,为了降低丢帧对视频数据完整性的影响,可以依据目标丢帧率将原始视频数据进行分组处理,以得到多个视频组;按照目标丢帧率对各视频组进行丢帧处理,并将丢帧处理后的各视频组进行拼接,以得到目标视频数据。

通过将原始视频数据进行分组处理,可以保证丢帧后的视频数据的均衡分布,避免了将视频数据中数据帧集中丢弃的情况发生,有效的保证了丢帧处理后的视频数据的可用性。

图3为本发明实施例提供的一种视频数据存储装置的结构示意图,包括获取单元31、处理单元32、转换单元33、压缩单元34和存储单元35;

获取单元31,用于获取原始视频数据;

处理单元32,用于利用颜色编码的剩余存储空间所对应的丢帧率,对原始视频数据进行丢帧处理,以得到目标视频数据;

转换单元33,用于对目标视频数据进行色彩空间转换;

压缩单元34,用于按照原始视频数据对应的压缩模式,对色彩空间转换后的目标视频数据进行yuv丢数处理;

存储单元35,用于将yuv丢数处理后的目标视频数据存储至ddr。

可选地,处理单元包括计算子单元、确定子单元和得到子单元;

计算子单元,用于根据颜色编码的初始存储空间以及当前的ddr读地址和ddr写地址,计算出颜色编码的剩余存储空间;

确定子单元,用于依据存储空间与丢帧率的对应关系,确定出原始视频数据的目标丢帧率;

得到子单元,用于按照目标丢帧率对原始视频数据进行丢帧处理,以得到目标视频数据。

可选地,确定子单元具体用于判断剩余存储空间是否小于预设阈值;若否,则将目标丢帧率设置为0;若是,则查找剩余存储空间所匹配的空间范围,将空间范围对应的丢帧率作为原始视频数据的目标丢帧率;其中,不同的空间范围对应不同的丢帧率。

可选地,得到子单元具体用于依据目标丢帧率将原始视频数据进行分组处理,以得到多个视频组;按照目标丢帧率对各视频组进行丢帧处理,并将丢帧处理后的各视频组进行拼接,以得到目标视频数据。

可选地,色彩空间转换后的目标视频数据包括y数据、u数据和v数据;

相应的,压缩单元具体用于当压缩模式为yuv444压缩配置时,则保留色彩空间转换后的目标视频数据;当压缩模式为yuv422压缩配置时,则将u数据的奇数列数据以及v数据的奇数列数据丢弃;当压缩模式为yuv420压缩配置时,则将u数据的奇数行的数据以及偶数行的奇数列数据丢弃,将v数据的奇数行的数据以及偶数行的奇数列数据丢弃。

图3所对应实施例中特征的说明可以参见图1和图2所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,获取原始视频数据;利用颜色编码的剩余存储空间所对应的丢帧率,对原始视频数据进行丢帧处理,以得到目标视频数据。根据颜色编码的存储空间使用情况,对原始视频数据进行动态可配丢帧,尽最大的可能性保证了视频的流畅性。对目标视频数据进行色彩空间转换,并按照原始视频数据对应的压缩模式,对色彩空间转换后的目标视频数据进行yuv丢数处理,将yuv丢数处理后的目标视频数据存储至ddr。在该技术方案中,原始视频数据在存入ddr之前,提前进行色彩空间转换以及根据当前帧的压缩模式进行yuv丢数处理,然后将yuv丢数处理之后的视频数据存入ddr,实现只存储视频压缩过程中用到的yuv数据,极大的降低了soc系统中视频功能所占的内存带宽和资源。同时本申请中对原始视频数据进行了丢帧处理的操作,相比于传统方式,本申请有效的减少了存入ddr的视频数据量,节省了ddr带宽。

图4为本发明实施例提供的一种视频数据存储装置40的硬件结构示意图,包括:

存储器41,用于存储计算机程序;

处理器42,用于执行计算机程序以实现如上述任意实施例所述的视频数据存储方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意实施例所述的视频数据存储方法的步骤。

以上对本发明实施例所提供的一种视频数据存储方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1