CN110245258B - 视频文件建立索引的方法、视频文件解析方法及相关系统 - Google Patents
视频文件建立索引的方法、视频文件解析方法及相关系统 Download PDFInfo
- Publication number
- CN110245258B CN110245258B CN201811503422.5A CN201811503422A CN110245258B CN 110245258 B CN110245258 B CN 110245258B CN 201811503422 A CN201811503422 A CN 201811503422A CN 110245258 B CN110245258 B CN 110245258B
- Authority
- CN
- China
- Prior art keywords
- data
- data segment
- video file
- frame information
- analysis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Television Signal Processing For Recording (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了视频文件建立索引的方法、视频文件解析方法及相关系统,用以提高视频文件建立索引的效率。本申请实施例提供的一种视频文件建立索引的方法,该方法包括:按照待建立索引的视频文件数据的先后顺序,读取预设容量的数据到图形处理器;对所述预设容量的数据并行计算解析获得帧信息,直到所述视频文件解析完毕;生成包括所述帧信息的索引文件。
Description
技术领域
本申请涉及视频文件建立索引技术领域,尤其涉及视频文件建立索引的方法、视频文件解析方法及相关系统。
背景技术
现有技术中,处理器包括中央处理器(CentralProcessing Unit,CPU)和图形处理器(Graphics Processing Unit,GPU)。现有技术中GPU用于图像处理,例如图像、视频的压缩或解压,而对于视频文件建立索引,现有技术主要通过CPU遍历整个视频文件找到相关帧的信息来建立索引,视频文件建立索引需要获得的相关帧的信息例如可以包括:帧在文件中的位置、帧的时间戳信息、帧序号、帧类型等。如果视频文件中本身带有帧长度信息,则采用CPU建索引的方式是可取的,因为对于带有帧长度信息的视频文件,不需要遍历视频文件中的每一个字节,只需要读取视频文件帧头信息,视频文件其他字节按照帧长度跳过即可。但是,如果对于不带帧长度信息的视频文件,例如PS文件、TS文件、裸文件等,那么采用CPU建索引需要遍历视频文件的每一个字节,会导致建立索引耗时较长,例如,对于一个4G的视频文件,采用CPU建好整个索引需要20多秒。综上,现有技术对于不带帧长度信息的视频文件,建立索引时间过长,导致建立索引的效率低,严重影响用户体验。
发明内容
本申请实施例提供了视频文件建立索引的方法、视频文件解析方法及相关系统,用以提高视频文件建立索引的效率。
本申请实施例提供的一种视频文件建立索引的方法,该方法包括:
按照待建立索引的视频文件数据的先后顺序,读取预设容量的数据到图形处理器;
对所述预设容量的数据并行计算解析获得帧信息;
直到所述视频文件解析完毕,生成包括所述帧信息的索引文件。
本申请实施例提供的视频文件建立索引的方法,由于按照待建立索引的视频文件数据的先后顺序,将预设容量的数据读取到图形处理器中,并且对于读取到图形处理器中的数据,通过图形处理器并行计算解析预设容量的数据获得帧信息,从而可以提高视频文件数据解析速度,提升视频文件建立索引的效率。
可选地,对所述预设容量的数据并行计算解析获得帧信息,具体包括:
将所述预设容量的数据读取到所述图形处理器;
确定所述预设容量的数据的解析参数,所述解析参数至少包括:将所述预设容量的数据划分的数据段的个数,以及所述图形处理器解析需要获得的帧信息的种类;
根据所述解析参数将所述预设容量的数据划分成多个数据段;
选择与所述数据段相同数目的图形处理器内核,所述图形处理器的内核按照核序号选择所述数据段;
根据所述解析参数,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息。
这样,预设容量的视频数据分段处理,从而使得图形处理器可以对每一数据段并行计算,提高视频文件数据解析速度,提升视频文件建立索引的效率。
可选地,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息,具体包括:
对于每一所述数据段,判断当前数据段的前一个数据段中靠近所述当前数据段的预设字节中是否有起始码;其中,所述前一个数据段为在从所述预设容量的数据的起点至所述当前数据段方向上,与所述当前数据段相邻的数据段;
若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中有起始码,则从所述当前数据段开始,与该数据段对应的所述图形处理器内核顺序遍历所述当前数据段获得帧信息;若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中没有起始码,则从所述前一数据块中靠近所述当前数据段预设字节开始,与该数据段对应的所述图形处理器内核顺序遍历所述前一数据块以及所述当前数据块获得帧信息。
可选地,生成包括所述帧信息的索引文件具体包括:
将所述解析参数存储到索引存储结构,直到所述视频文件解析完毕,获得所述视频文件的索引文件。
可选地,所述帧信息据包括下列之一或其组合:帧类型、视频文件宽高、帧序号、时间戳、帧在所述视频文件中的偏移位置。
本申请实施例提供了一种视频文件数据解析的方法,该方法包括:
按照待建立索引的视频文件数据的先后顺序,图形处理器获取所述视频文件数据中预设容量;
对所述预设容量的数据进行并行计算解析获得帧信息。
可选地,对所述预设容量的数据进行并行计算解析获得帧信息,具体包括:
确定所述预设容量的数据的解析参数,所述解析参数至少包括:将所述预设容量的数据划分的数据段的个数,以及所述图形处理器解析需要获得的帧信息的种类;
根据所述解析参数将所述预设容量的数据划分成多个数据段;
选择与所述数据段相同数目的图形处理器内核,所述图形处理器的内核按照核序号选择所述数据段;
根据所述解析参数,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息。
可选地,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息,具体包括:
对于每一所述数据段,判断当前数据段的前一个数据段中靠近所述当前数据段的预设字节中是否有起始码;其中,所述前一个数据段为在从所述预设容量的数据的起点至所述当前数据段方向上,与所述当前数据段相邻的数据段;
若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中有起始码,则从所述当前数据段开始,与该数据段对应的所述图形处理器内核顺序遍历所述当前数据段获得帧信息;若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中没有起始码,则从所述前一数据块中靠近所述当前数据段预设字节开始,与该数据段对应的所述图形处理器内核顺序遍历所述前一数据块以及所述当前数据块获得帧信息。
可选地,所述帧信息包括下列之一或其组合:帧类型、视频文件宽高、帧序号、时间戳、帧在所述视频文件中的偏移位置。
本申请实施例提供了一种基于本申请提供的上述视频文件建立索引的方法的视频文件建立索引的系统,该系统包括:读取单元,解析单元,以及索引文件生成单元;
所述读取单元用于:按照待建立索引的视频文件数据的先后顺序,读取预设容量的数据读取到所述解析单元;
所述解析单元用于:对所述预设容量的数据并行计算解析获得帧信息,并将所述帧信息发送至所述索引文件生成单元;
所述索引文件生成单元用于:直到所述视频文件解析完毕,生成包括所述帧信息的索引文件。
本申请实施例提供了一种基于本申请提供的上述视频文件数据解析的方法的视频文件数据解析系统,该系统包括:
解析单元,用于按照待建立索引的视频文件数据的先后顺序,获取所述视频文件数据中预设容量;还用于对所述预设容量的数据进行并行计算解析获得帧信息。
本申请实施例提供了一种计算机可读存储介质,包括程序代码,当所述程序代码在计算设备上运行时,所述程序代码用于使所述计算设备执行本申请实施例提供的视频文件建立索引的方法的步骤。
本申请实施例提供了一种计算机可读存储介质,包括程序代码,当所述程序代码在计算设备上运行时,所述程序代码用于使所述计算设备执行本申请实施例提供的视频文件数据解析的方法的步骤。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种视频文件建立索引的方法示意图;
图2为本申请实施例提供的将预设容量的数据划分成多个数据段的示意图;
图3为本申请实施例提供的另一种视频文件建立索引的方法流程示意图;
图4为本申请实施例提供的一种视频文件解析方法示意图;
图5为本申请实施例提供的一种视频文件建立索引的系统示意图。
具体实施方式
本申请实施例提供了本申请实施例提供的一种视频文件建立索引的方法,如图1所示,该方法包括:
S101、按照待建立索引的视频文件数据的先后顺序,读取预设容量的数据到图形处理器;
S102、对所述预设容量的数据并行计算解析获得帧信息;
S103、直到所述视频文件解析完毕,生成包括所述帧信息的索引文件。
本申请实施例提供的视频文件建立索引的方法,由于按照待建立索引的视频文件数据的先后顺序,将预设容量的数据读取到图形处理器中,并且对于读取到图形处理器中的数据,通过图形处理器并行计算解析预设容量的数据获得帧信息,从而可以提高视频文件数据解析速度,提升视频文件建立索引的效率。
需要说明的是,本申请实施例提供的视频文件建立索引的方法,可以选择GPU作为视频文件建立索引的图形处理器。当预设容量小于视频文件的容量时,即相当于将视频文件划分成多段,每次读取一段到图形处理器进行并行计算解析,直到整个视频文件解析完毕。预设容量的数据可以根据实际需要进行选择,本申请不进行限制。例如可以根据图形处理器的内存选择每次读取到图形处理器的数据的容量,以图形处理器内存为4G为例,预设容量例如可以是256M,当然,每次读取到图形处理器的数据的容量也可以不同。
可选地,步骤S102中,对所述预设容量的数据并行计算解析获得帧信息具体包括:
S1021、确定所述预设容量的数据的解析参数;
所述解析参数至少包括:将所述预设容量的数据划分的数据段的个数,以及所述图形处理器解析需要获得的帧信息的种类;
S1022、根据所述解析参数将所述预设容量的数据划分成多个数据段;
S1023、选择与所述数据段相同数目的图形处理器内核,所述图形处理器的内核按照核序号选择所述数据段;
例如,如图2所示,将所述预设容量的数据1划分成m个数据段2。核序号为0的内核选择预设容量的数据1的第一个数据段即序号为0的数据段,核序号为1的内核选择预设容量的数据1中的序号为1的数据段,依次类推,核序号为m-1的内核选择预设容量的数据1中的序号为m-1的数据段;
S1024、根据所述解析参数,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息。
这样,预设容量的视频数据分段处理,从而使得图形处理器可以对每一数据段并行计算,提高视频文件数据解析速度,提升视频文件建立索引的效率。
需要说明的是,确定解析参数时,将预设容量的数据划分的个数不大于所述图形处理器的总核数。
可选地,生成包括所述帧信息的索引文件具体包括:
在步骤S1024之后,将所述帧信息存储到索引存储结构,直到所述视频文件解析完毕,获得所述视频文件的索引文件。
可选地,本申请实施例提供的视频文件建立索引的方法基于开放运算语言openCL环境,搭建包括主机端和设备端的开放运算语言openCL平台,具体包括:
获取平台地址;
根据所述平台地址获取可用设备;
基于获取的可用设备创建所述设备端环境、所述设备端程序对象、内核对象、所述设备端输入内存以及所述设备端输出内存,且在创建所述设备端程序对象的同时编译程序。
其中,对于本申请实施例提供的视频文件建立索引的方法,可用设备包括图形处理器,创建内核对象包括创建openCL平台的入口函数,创建的设备端输入内存为可写的、全局共享内存,创建的设备端输出内存为可读的、拷贝内存。创建设备端输出内存例如可以包括创建输出缓冲区(buffer)。读取预设容量的数据到图形处理器可以由主机端执行,利用图形处理器并行计算解析获得帧信息由设备端执行,可以将帧信息存入设备端输出buffer,主机端获取输出buffer,并将输出buffer中的帧信息提取出来,保存到存储结构中,存储结构例如可以是链表list。
可选地,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息,具体包括:
对于每一所述数据段,判断当前数据段的前一个数据段中靠近所述当前数据段的预设字节中是否有起始码;其中,所述前一个数据段为在从所述预设容量的数据的起点至所述当前数据段方向上,与所述当前数据段相邻的数据段;
若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中有起始码,则从所述当前数据段开始,与该数据段对应的所述图形处理器内核顺序遍历所述当前数据段获得帧信息;若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中没有起始码,则从所述前一数据块中靠近所述当前数据段预设字节开始,与该数据段对应的所述图形处理器内核顺序遍历所述前一数据块以及所述当前数据块获得帧信息。
例如,将所述预设容量的数据1划分成m个数据段时,当前数据段为序号为n的数据段,则需要确定序号为n-1的数据段中是否有起始码;如果序号为n-1的数据段中有起始码,则从序号为n的数据段开始,顺序遍历序号为n的数据段获得帧信息;如果序号为n-1的数据段中没有起始码,且每个数据段中字节数为a,预设字节为b,则从序号为n-1的数据段中a-b+1字节开始,遍历序号为n-1的数据段的b个字节以及序号为n的数据段。
需要说明的是,预设字节可以根据实际需要进行选择,例如可以根据视频文件的类型进行选择,以裸h264视频文件为例,预设字节例如可以是8字节,起始码包括:0x00000167,0x00000127,0x00000141,0x00000121,0x00000161;起始码可用于判断帧类型,包括起始码的帧为关键帧。
可选地,所述帧信息包括下列之一或其组合:帧类型、视频文件宽高、帧序号、时间戳、帧在所述视频文件中的偏移位置。
可选地,所述解析参数还包括:所述视频文件的码流类型以及所述预设容量的数据在所述视频文件中的偏移量。从而可以根据解析参数获得相应的帧信息。例如可以根据预设容量的数据在所述视频文件中的偏移量,确定帧在所述视频文件中的偏移位置。
需要说明的是,以openCL平台为例,主机端将确定的所述解析参数发送至设备端,即作为设备端的传入参数,例如,视频文件的码流类型为传入参数streamType,需要获得的帧信息种类为传入结构体参数pstStreamInfo;所述预设容量的数据在所述图形处理器中需要划分的数据段的数目作为传入参数nDivide。
以openCL平台为例,图形处理器的总核数在openCL平台中可以预先确定,例如可以通过应用程序编程接口(Application Programming Interface,API)获得图形处理器总核数,以图形处理器有20000个核为例,图形处理器的每一个核作为一个单独的线程,如果所述预设容量的数据在所述图形处理器中需要划分的数据段的数目为10000,则确定的预设类型的参数中,传入参数nDivide为10000,当预设容量为256M时,即相当于把256M的数据平均分成10000段进行并行计算,一共起10000个线程。需要说明的是,对于预设容量小于视频文件总容量的情况,利用图形处理器对预设容量的数据并行计算解析得到的存储到存储结构中的帧信息并不是完整的视频文件索引,将每次读取一段到图形处理器进行并行计算解析得到的帧信息存储到存储结构中获得的存储结构为视频文件完整索引。可选地,在每次将帧信息存储到索引存储结构之后,本申请实施例提供的视频文件建立索引的方法还包括确定视频文件中是否存在未被解析的视频文件数据,如果是,则继续执行步骤S1021~S1024以及在步骤S1024之后,将所述解析参数存储到索引存储结构,直到所述视频文件中不包括未被解析的视频文件数据。
接下来,对本申请实施例提供的视频文件建立索引获得完整视频文件索引的流程进行具体介绍,如图3所示,具体包括如下步骤:
S301、将所述预设容量的数据读取到所述图形处理器;
S302、确定所述预设容量的数据的解析参数;
S303、根据所述解析参数将所述预设容量的数据划分成多个数据段;
S304、选择与所述数据段相同数目的图形处理器内核,所述图形处理器的内核按照核序号选择所述数据段;
S305、根据所述解析参数,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息;
S306、将所述帧信息保存到索引存储结构;
S307、确定视频文件中是否存在未被解析的视频文件数据;是则执行步骤S301,否则执行步骤S308;
S308、结束,获得所述视频文件的索引文件。
基于同一发明构思,本申请实施例提供了一种视频文件数据解析的方法,如图4所示,该方法包括:
S401、按照待建立索引的视频文件数据的先后顺序,图形处理器获取所述视频文件数据中预设容量;
S402、对所述预设容量的数据进行并行计算解析获得帧信息。
本申请实施例提供的视频文件数据解析的方法,由于按照待建立索引的视频文件数据的先后顺序,图形处理器获取所述视频文件数据中预设容量,并且对于图形处理器获取的数据,通过图形处理器并行计算解析预设容量的数据获得帧信息,从而可以提高视频文件数据解析速度,进而可以提升视频文件建立索引的效率。
本申请实施例提供的视频文件数据解析的方法,可以选择GPU作为视频文件数据解析的图形处理器。
可选地,步骤S402对所述预设容量的数据进行并行计算解析获得帧信息,具体包括:
确定所述预设容量的数据的解析参数,所述解析参数至少包括:将所述预设容量的数据划分的数据段的个数,以及所述图形处理器解析需要获得的帧信息的种类;
根据所述解析参数将所述预设容量的数据划分成多个数据段;
选择与所述数据段相同数目的图形处理器内核,所述图形处理器的内核按照核序号选择所述数据段;
根据所述解析参数,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息。
可选地,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息,具体包括:
对于每一所述数据段,判断当前数据段的前一个数据段中靠近所述当前数据段的预设字节中是否有起始码;其中,所述前一个数据段为在从所述预设容量的数据的起点至所述当前数据段方向上,与所述当前数据段相邻的数据段;
若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中有起始码,则从所述当前数据段开始,与该数据段对应的所述图形处理器内核顺序遍历所述当前数据段获得帧信息;若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中没有起始码,则从所述前一数据块中靠近所述当前数据段预设字节开始,与该数据段对应的所述图形处理器内核顺序遍历所述前一数据块以及所述当前数据块获得帧信息。
可选地,所述帧信息包括下列之一或其组合:帧类型、视频文件宽高、帧序号、时间戳、帧在所述视频文件中的偏移位置。
基于同一发明构思,本申请实施例还提供了一种基于本申请提供的上述视频文件建立索引的方法的视频文件建立索引的系统,如图5所示,该系统包括:读取单元01,解析单元02,以及索引文件生成单元03;
所述读取单元用于:按照待建立索引的视频文件数据的先后顺序,读取预设容量的数据读取到所述解析单元;
所述解析单元用于:对所述预设容量的数据并行计算解析获得帧信息,并将所述帧信息发送至所述索引文件生成单元;
所述索引文件生成单元用于:直到所述视频文件解析完毕,生成包括所述帧信息的索引文件。
可选地,本申请实施例还提供了一种视频文件建立索引的系统基于开放运算语言openCL平台,该平台包括主机端和设备端;主机端例如可以包括读取单元以及索引文件生成单元,设备端包括解析单元。
需要说明的是,搭建包括主机端和设备端的开放运算语言openCL平台,具体包括:获取平台地址;根据所述平台地址获取可用设备;基于获取的可用设备创建所述设备端环境、所述设备端程序对象、内核对象、所述设备端输入内存以及所述设备端输出内存,且在创建所述设备端程序对象的同时编译程序。其中,可用设备包括图形处理器,创建内核对象包括创建openCL平台的入口函数,创建的设备端输入内存为可写的、全局共享内存,创建的设备端输出内存为可读的、拷贝内存。创建设备端输出内存例如可以包括创建输出缓冲区(buffer)。
可选地,所述系统还包括:
参数确定单元,用于确定所述预设容量的数据的解析惨数,以及将所述解析参数发送至所述解析单元,所述解析参数至少包括:将所述预设容量的数据划分的数据段的个数,以及所述图形处理器解析需要获得的帧信息的种类;
解析单元包括图形处理器,所述解析单元用于对所述预设容量的数据并行计算解析获得帧信息,并将所述帧信息发送至所述索引文件生成单元,具体包括:
根据所述解析参数将所述预设容量的数据划分成多个数据段;
选择与所述数据段相同数目的图形处理器内核,所述图形处理器的内核按照核序号选择所述数据段;
根据所述解析参数,与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息,并将所述解析参数发送至所述索引文件生成单元。
以openCL平台为例,主机端包括参数确定单元,主机端将确定的所述解析参数发送至设备端,即作为设备端的传入参数,例如,视频文件的码流类型为传入参数streamType,需要获得的帧信息种类为传入结构体参数pstStreamInfo;所述预设容量的数据在所述图形处理器中需要划分的数据段的数目作为传入参数nDivide。以openCL平台为例,图形处理器的总核数在openCL平台中可以预先确定,例如可以通过API获得图形处理器总核数,以图形处理器有20000个核为例,图形处理器的每一个核作为一个单独的线程,如果所述预设容量的数据在所述图形处理器中需要划分的数据段的数目为10000,则确定的预设类型的参数中,传入参数nDivide为10000,当预设容量为256M时,即相当于把256M的数据平均分成10000段进行并行计算,一共起10000个线程。
可选地,所述预设类型的参数还包括:所述视频文件的码流类型、以及所述预设容量的数据在所述视频文件中的偏移量。
可选地,所述解析单元用于根据所述解析参数,与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息,具体包括:
对于每一所述数据段,判断当前数据段的前一个数据段中靠近所述当前数据段的预设字节中是否有起始码;其中,所述前一个数据段为在从所述预设容量的数据的起点至所述当前数据段方向上,与所述当前数据段相邻的数据段;
若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中有起始码,则从所述当前数据段开始,与该数据段对应的所述图形处理器内核顺序遍历所述当前数据段获得帧信息;若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中没有起始码,则从所述前一数据块中靠近所述当前数据段预设字节开始,与该数据段对应的所述图形处理器内核顺序遍历所述前一数据块以及所述当前数据块获得帧信息。
可选地,所述索引文件生成单元包括索引存储结构,所述索引文件生成单元具体用于:
将所述帧信息存储到索引存储结构,直到所述视频文件解析完毕,获得所述视频文件的索引文件。
可选地,所述帧信息包括下列之一或其组合:帧类型、视频文件宽高、帧序号、时间戳、帧在所述视频文件中的偏移位置。
本申请实施例提供了一种基于本申请提供的上述视频文件数据解析的方法的视频文件数据解析系统,该系统包括:
解析单元,用于按照待建立索引的视频文件数据的先后顺序,获取所述视频文件数据中预设容量;还用于对所述预设容量的数据进行并行计算解析获得帧信息。
解析单元包括图形处理器,可选地,对所述预设容量的数据进行并行计算解析获得帧信息,具体包括:
确定所述预设容量的数据的解析参数,所述解析参数至少包括:将所述预设容量的数据划分的数据段的个数,以及所述图形处理器解析需要获得的帧信息的种类;
根据所述解析参数将所述预设容量的数据划分成多个数据段;
选择与所述数据段相同数目的图形处理器内核,所述图形处理器的内核按照核序号选择所述数据段;
根据所述解析参数,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息。
可选地,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息,具体包括:
对于每一所述数据段,判断当前数据段的前一个数据段中靠近所述当前数据段的预设字节中是否有起始码;其中,所述前一个数据段为在从所述预设容量的数据的起点至所述当前数据段方向上,与所述当前数据段相邻的数据段;
若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中有起始码,则从所述当前数据段开始,与该数据段对应的所述图形处理器内核顺序遍历所述当前数据段获得帧信息;若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中没有起始码,则从所述前一数据块中靠近所述当前数据段预设字节开始,与该数据段对应的所述图形处理器内核顺序遍历所述前一数据块以及所述当前数据块获得帧信息。
可选地,所述帧信息包括下列之一或其组合:帧类型、视频文件宽高、帧序号、时间戳、帧在所述视频文件中的偏移位置。
本申请实施例提供了一种计算机可读存储介质,包括程序代码,当所述程序代码在计算设备上运行时,所述程序代码用于使所述计算设备执行本申请实施例提供的视频文件建立索引的方法的步骤。
一种计算机可读存储介质,其特征在于,包括程序代码,当所述程序代码在计算设备上运行时,所述程序代码用于使所述计算设备执行本申请实施例提供的上述视频文件建立索引的方法的步骤。
本申请实施例提供了一种计算机可读存储介质,包括程序代码,当所述程序代码在计算设备上运行时,所述程序代码用于使所述计算设备执行本申请实施例提供的视频文件数据解析的方法的步骤。
一种视频文件建立索引的装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下方法:
按照待建立索引的视频文件数据的先后顺序,读取预设容量的数据到图形处理器;
对所述预设容量的数据并行计算解析获得帧信息;
直到所述视频文件解析完毕,生成包括所述帧信息的索引文件。
一种视频文件数据解析的装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下方法:
按照待建立索引的视频文件数据的先后顺序,获取所述视频文件数据中预设容量;
对所述预设容量的数据进行并行计算解析获得帧信息。
综上所述,本申请实施例提供的一种视频文件建立索引的方法及系统、视频文件解析的方法及系统、计算机设备可读存储介质,由于按照待建立索引的视频文件数据的先后顺序,将预设容量的数据读取到图形处理器中,并且通过图形处理器并行计算解析预设容量的数据获得帧信息,从而可以提高视频文件数据解析速度,提升视频文件建立索引的效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种视频文件建立索引的方法,其特征在于,该方法包括:
按照待建立索引的视频文件数据的先后顺序,读取预设容量的数据到图形处理器;
对所述预设容量的数据并行计算解析获得帧信息;
直到所述视频文件解析完毕,生成包括所述帧信息的索引文件;
对所述预设容量的数据并行计算解析获得帧信息,具体包括:
确定所述预设容量的数据的解析参数,所述解析参数至少包括:将所述预设容量的数据划分的数据段的个数,以及所述图形处理器解析需要获得的帧信息的种类;
根据所述解析参数将所述预设容量的数据划分成多个数据段;
选择与所述数据段相同数目的图形处理器内核,所述图形处理器的内核按照核序号选择所述数据段;
根据所述解析参数,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息;
利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息,具体包括:
对于每一所述数据段,判断当前数据段的前一个数据段中靠近所述当前数据段的预设字节中是否有起始码;其中,所述前一个数据段为在从所述预设容量的数据的起点至所述当前数据段方向上,与所述当前数据段相邻的数据段;
若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中有起始码,则从所述当前数据段开始,与该数据段对应的所述图形处理器内核顺序遍历所述当前数据段获得帧信息;若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中没有起始码,则从所述前一数据段中靠近所述当前数据段预设字节开始,与该数据段对应的所述图形处理器内核顺序遍历所述前一数据段以及所述当前数据段获得帧信息。
2.根据权利要求1所述的方法,其特征在于,生成包括所述帧信息的索引文件,具体包括:
将所述解析参数存储到索引存储结构,直到所述视频文件解析完毕,获得所述视频文件的索引文件。
3.根据权利要求1所述的方法,其特征在于,所述帧信息包括下列之一或其组合:帧类型、视频文件宽高、帧序号、时间戳、帧在所述视频文件中的偏移位置。
4.一种视频文件解析方法,其特征在于,该方法包括:
按照待建立索引的视频文件数据的先后顺序,图形处理器获取所述视频文件数据中预设容量;
对所述预设容量的数据进行并行计算解析获得帧信息;
对所述预设容量的数据进行并行计算解析获得帧信息,具体包括:
确定所述预设容量的数据的解析参数,所述解析参数至少包括:将所述预设容量的数据划分的数据段的个数,以及所述图形处理器解析需要获得的帧信息的种类;
根据所述解析参数将所述预设容量的数据划分成多个数据段;
选择与所述数据段相同数目的图形处理器内核,所述图形处理器的内核按照核序号选择所述数据段;
根据所述解析参数,利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息;
利用与所述数据段相同数目的所述图形处理器内核对多个所述数据段并行计算解析,获得与需要获得的帧信息的种类相对应的所述预设容量的数据的帧信息,具体包括:
对于每一所述数据段,判断当前数据段的前一个数据段中靠近所述当前数据段的预设字节中是否有起始码;其中,所述前一个数据段为在从所述预设容量的数据的起点至所述当前数据段方向上,与所述当前数据段相邻的数据段;
若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中有起始码,则从所述当前数据段开始,与该数据段对应的所述图形处理器内核顺序遍历所述当前数据段获得帧信息;若当前数据段的前一个数据段中靠近所述当前数据段的预设字节中没有起始码,则从所述前一数据段中靠近所述当前数据段预设字节开始,与该数据段对应的所述图形处理器内核顺序遍历所述前一数据段以及所述当前数据段获得帧信息。
5.一种基于根据权利要求1~3任一项所述的方法的视频文件建立索引的系统,其特征在于,该系统包括:读取单元,解析单元,以及索引文件生成单元;
所述读取单元用于:按照待建立索引的视频文件数据的先后顺序,读取预设容量的数据到所述解析单元;
所述解析单元用于:对所述预设容量的数据并行计算解析获得帧信息,并将所述帧信息发送至所述索引文件生成单元;
所述索引文件生成单元用于:直到所述视频文件解析完毕,生成包括所述帧信息的索引文件。
6.一种基于根据权利要求4所述的方法的视频文件数据解析系统,其特征在于,该系统包括:
解析单元,用于按照待建立索引的视频文件数据的先后顺序,获取所述视频文件数据中预设容量;还用于对所述预设容量的数据进行并行计算解析获得帧信息。
7.一种计算机可读存储介质,其特征在于,包括程序代码,当所述程序代码在计算设备上运行时,所述程序代码用于使所述计算设备执行根据权利要求1~3任一所述方法的步骤。
8.一种计算机可读存储介质,其特征在于,包括程序代码,当所述程序代码在计算设备上运行时,所述程序代码用于使所述计算设备执行根据权利要求4所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811503422.5A CN110245258B (zh) | 2018-12-10 | 2018-12-10 | 视频文件建立索引的方法、视频文件解析方法及相关系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811503422.5A CN110245258B (zh) | 2018-12-10 | 2018-12-10 | 视频文件建立索引的方法、视频文件解析方法及相关系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110245258A CN110245258A (zh) | 2019-09-17 |
CN110245258B true CN110245258B (zh) | 2023-03-17 |
Family
ID=67882890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811503422.5A Active CN110245258B (zh) | 2018-12-10 | 2018-12-10 | 视频文件建立索引的方法、视频文件解析方法及相关系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110245258B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078155B (zh) * | 2019-12-22 | 2022-03-22 | 浪潮电子信息产业股份有限公司 | 一种视频文件读取方法、装置、设备、介质 |
CN111698466B (zh) * | 2020-05-07 | 2022-03-01 | 浙江大华技术股份有限公司 | 监控录像断点下载的方法、装置、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967862A (zh) * | 2015-07-22 | 2015-10-07 | 东方网力科技股份有限公司 | 一种视频存储方法及装置和视频搜索方法及装置 |
CN106060655A (zh) * | 2016-08-04 | 2016-10-26 | 腾讯科技(深圳)有限公司 | 一种视频处理方法、服务器及终端 |
CN106507129A (zh) * | 2016-09-28 | 2017-03-15 | 浙江宇视科技有限公司 | 一种视频智能回放方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10332310B2 (en) * | 2015-12-22 | 2019-06-25 | Nvidia Corporation | Distributed index fetch, primitive assembly, and primitive batching |
-
2018
- 2018-12-10 CN CN201811503422.5A patent/CN110245258B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967862A (zh) * | 2015-07-22 | 2015-10-07 | 东方网力科技股份有限公司 | 一种视频存储方法及装置和视频搜索方法及装置 |
CN106060655A (zh) * | 2016-08-04 | 2016-10-26 | 腾讯科技(深圳)有限公司 | 一种视频处理方法、服务器及终端 |
CN106507129A (zh) * | 2016-09-28 | 2017-03-15 | 浙江宇视科技有限公司 | 一种视频智能回放方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110245258A (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10176627B2 (en) | Tree-based graphics primitive rendering | |
JP6245573B2 (ja) | 制御フロー・グラフ上の実行パスの実行頻度情報を得るための方法、並びに、当該情報を得るためのコンピュータ及びそのコンピュータ・プログラム | |
CN110245258B (zh) | 视频文件建立索引的方法、视频文件解析方法及相关系统 | |
CN105843819B (zh) | 一种数据导出方法及装置 | |
CN105095367B (zh) | 一种客户端数据的采集方法和装置 | |
US20130318540A1 (en) | Data flow graph processing device, data flow graph processing method, and data flow graph processing program | |
CN105760238A (zh) | 图形指令数据的处理方法和装置及系统 | |
EP3198870B1 (en) | Processing parameters for operations on blocks while decoding images | |
CN113792240A (zh) | 一种页面加载的方法、装置及电子设备 | |
KR20160107417A (ko) | 유해 동영상 탐지 방법 및 장치 | |
CN115801980A (zh) | 视频生成方法和装置 | |
CN111448545A (zh) | 并行多值归约 | |
CN112565886A (zh) | 一种视频抽帧方法、装置、电子设备及可读存储介质 | |
CN110610450A (zh) | 数据处理方法、电子设备和计算机可读存储介质 | |
CN105516548B (zh) | 一种文件预读方法及装置 | |
US9459852B2 (en) | Execution control method and information processing apparatus | |
CN113204706A (zh) | 基于MapReduce的数据筛选抽取方法及系统 | |
JP2008250838A (ja) | ソフトウェア生成装置、方法、およびプログラム | |
CN114417452A (zh) | 建筑信息模型的处理方法及相关装置 | |
CN108564135B (zh) | 构建骨架程序并实现高性能计算程序运行时间预测的方法 | |
CN113778982A (zh) | 一种数据迁移方法和装置 | |
Deng et al. | Combinatorial testing on implementations of html5 support | |
CN105653520B (zh) | 一种基于图形处理器gpu的分词方法和装置 | |
CN110266315B (zh) | 用于通过基于云的网络进行数据传输的状态信息的压缩 | |
CN113595557B (zh) | 一种数据处理的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |