CN111914116B - 视频数据存储方法、装置、终端设备及可读存储介质 - Google Patents
视频数据存储方法、装置、终端设备及可读存储介质 Download PDFInfo
- Publication number
- CN111914116B CN111914116B CN201910944093.6A CN201910944093A CN111914116B CN 111914116 B CN111914116 B CN 111914116B CN 201910944093 A CN201910944093 A CN 201910944093A CN 111914116 B CN111914116 B CN 111914116B
- Authority
- CN
- China
- Prior art keywords
- data
- space
- video
- stored
- buffer
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 title claims abstract description 75
- 239000000872 buffer Substances 0.000 claims abstract description 356
- 230000015654 memory Effects 0.000 claims abstract description 96
- 230000003139 buffering effect Effects 0.000 claims description 35
- 238000001514 detection method Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/71—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/48—Matching video sequences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/232—Content retrieval operation locally within server, e.g. reading video streams from disk arrays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/432—Content retrieval operation from a local storage medium, e.g. hard-disk
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供一种视频数据存储方法、装置、终端设备及可读存储介质,涉及视频数据块存储领域。本申请在接收到待存储I帧数据时,检测视频缓存空间中是否存在已写入数据,并在存在时判断是否要对视频缓存空间的第一缓存空间中的已写入数据进行覆盖写入。在判定是时,将该待存储I帧数据写入到第一缓存空间中对应位置处,并检测第一缓存空间是否被写满。在判定被写满时,将视频缓存空间缓存的所有视频数据全部写入到终端设备的内存空间中进行存储,并清空视频缓存空间,从而在实现对非顺序写入的I帧组视频数据的缓存操作的同时,对缓存空间进行充分利用,以提高每次内存写入操作的数据写入量,降低内存写入次数,使存储性能达到最佳状态。
Description
技术领域
本申请涉及视频数据块存储技术领域,具体而言,涉及一种视频数据存储方法、装置、终端设备及可读存储介质。
背景技术
随着网络技术的不断发展,块存储模式通常被用于实现各种行业(例如,视频监控行业、网络通信行业等)的数据存储,但过度频繁的小块存储会致使数据存储设备的内存空间碎片化,进而导致该数据存储设备的存储性能变差。为此,大多数数据存储设备都会为内存空间增加固定容量的缓存空间,并通过缓存空间对需要写入到内存空间的数据进行中转缓存,以在满足一定条件时将该缓存空间内缓存的数据写入到内存空间中进行存储,从而降低内存写入次数,提高设备的存储性能。
目前,大多数的数据存储设备只能将数据顺序写入到缓存空间进行缓存。当数据存储设备被用于存储视频数据时,该数据存储设备在每次完成对非顺序写入视频数据的缓存操作(例如,对已缓存到缓存空间中的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帧组视频数据的缓存操作的同时,对缓存空间进行充分利用,以提高每次内存写入操作的数据写入量,降低内存写入次数,使终端设备的存储性能达到最佳状态。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的终端设备的结构方框示意图;
图2为本申请实施例提供的视频数据存储方法的流程示意图之一;
图3为本申请实施例提供的视频数据存储方法的流程示意图之二;
图4为本申请实施例提供的视频数据存储方法的流程示意图之三;
图5为本申请实施例提供的视频数据存储方法的流程示意图之四;
图6为本申请实施例提供的视频数据存储装置的功能模块示意图之一;
图7为本申请实施例提供的视频数据存储装置的功能模块示意图之二。
图标:10-终端设备;11-存储器;12-处理器;13-通信单元;100-视频数据存储装置;110-已写入检测模块;120-位置判断模块;130-缓存写入模块;140-存储写入模块;150-统计计算模块;160-容量配置模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
请参照图1,图1是本申请实施例提供的终端设备10的结构方框示意图。在本申请实施例中,所述终端设备10能够在对视频数据进行存储的过程中,充分利用缓存空间的空间容量来实现对非顺序写入的I帧组视频数据的缓存操作,以降低视频数据的内存写入次数,增大每次内存写入操作的数据写入量,使所述终端设备10的存储性能达到最佳状态。其中,所述终端设备10可以是,但不限于,个人电脑(personal computer,PC)、服务器、平板电脑、个人数字助理(personal digital assistant,PDA)、移动上网设备(mobile Internetdevice,MID)等。
在本实施例中,所述终端设备10包括视频数据存储装置100、存储器11、处理器12及通信单元13。所述存储器11、所述处理器12及所述通信单元13各个元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,所述存储器11、所述处理器12及所述通信单元13这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
在本实施例中,所述存储器11的数目为多个,所述存储器11的种类包括随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。所述终端设备10通过至少一个RAM构建出用于对I帧组视频数据进行中转缓存的视频缓存空间和/或数据缓存空间,并通过至少一个ROM构建出对应的用于对I帧组视频数据进行存储的内存空间。所述存储器11还可用于存储程序,所述处理器12在接收到执行指令后,可相应地执行所述程序。
其中,所述视频缓存空间包括第一缓存空间及第二缓存空间,所述第一缓存空间的写入优先级大于所述第二缓存空间的写入优先级,所述第一缓冲空间与所述第二缓存空间均可写入至少一个I帧组视频数据的平均数据量,所述I帧组视频数据的平均数据量为所述终端设备10在一段时间段内接收到的多个I帧组视频数据的数据量之间的平均值,所述第一缓存空间的空间容量可与所述第二缓存空间的空间容量不同。所述终端设备10在将视频数据写入到所述视频缓存空间中进行缓存时,会优先考虑将视频数据写入第一缓存空间,并在确定所述第一缓存空间被写满后将对应的视频数据写入第二缓存空间。所述数据缓存空间为单个缓存空间,不存在与所述视频缓存空间类似的缓存空间划分。所述终端设备10可构建有所述视频缓存空间与所述数据缓存空间中的至少一种。
在本实施例中,所述处理器12可以是一种具有信号的处理能力的集成电路芯片。所述处理器12可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)及网络处理器(Network Processor,NP)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。
在本实施例中,所述通信单元13用于通过网络建立所述终端设备10与其他电子设备之间的通信连接,并用于通过所述网络收发数据。其中,所述电子设备可以是用于拍摄监控视频的监控设备,也可以是存储有视频的服务器。
在本实施例中,所述视频数据存储装置100包括至少一个能够以软件或固件的形式存储于所述存储器11中或固化在所述终端设备10的操作***中的软件功能模块。所述处理器12可用于执行所述存储器11存储的可执行模块,例如所述视频数据存储装置100所包括软件功能模块及计算机程序等。所述终端设备10通过所述视频数据存储装置100在实现对非顺序写入的I帧组视频数据的缓存操作的同时,对缓存空间进行充分利用,以提高每次内存写入操作的数据写入量,降低内存写入次数,使终端设备10的存储性能达到最佳状态。
可以理解的是,图1所示的方框示意图仅为终端设备10的一种结构组成示意图,所述终端设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参照图2,图2是本申请实施例提供的视频数据存储方法的流程示意图之一。在本申请实施例中,图2所示的视频数据存储方法应用于包括有视频缓存空间的终端设备10,其中所述视频缓存空间包括第一缓存空间及第二缓存空间。下面对图2所示的视频数据存储方法的具体流程和步骤经详细阐述。
步骤S210,在接收到待存储I帧组视频数据包括的待存储I帧数据时,检测视频缓存空间中是否存在已写入数据。
在本实施例中,所述终端设备10通过通信单元13接收到一个待存储I帧组视频数据所包括的任意一份待存储I帧数据时,将对应检测所述视频缓存空间中是否存在已写入数据。其中,所述终端设备10可通过检测所述视频缓存空间所包括的第一缓存空间中是否存在已写入数据,来检测所述视频缓存空间中是否存在已写入数据。当检测到所述视频缓存空间中存在已写入数据时,所述终端设备10将对应执行步骤S220;当检测到所述视频缓存空间中不存在已写入数据时,所述终端设备10将对应执行步骤S300。在本实施例的一种实施方式中,所述视频缓存空间中的一个缓存单元的数据容量为64KB。
步骤S220,读取该待存储I帧数据的目标写入位置,并判断所述目标写入位置是否位于第一缓存空间中的与已写入数据对应的位置范围内。
在本实施例中,当所述终端设备10检测到所述视频缓存空间中存在已写入数据时,所述终端设备10通过读取所述待存储I帧数据在所述视频缓存空间处缓存的目标写入位置,判断该待存储I帧数据是否为该待存储I帧组视频数据中的帧组头部所对应的具体回写内容。其中,若该待存储I帧数据的目标写入位置位于所述第一缓存空间中的与已写入数据对应的位置范围内,则所述终端设备10判定该待存储I帧数据为该待存储I帧组视频数据中的所述具体回写内容,此时所述终端设备10将对应执行步骤S230;若该待存储I帧数据的目标写入位置不位于所述第一缓存空间中的与已写入数据对应的位置范围内,则所述终端设备10判定该待存储I帧数据不为所述具体回写内容,此时所述终端设备10将对应执行步骤S250。
步骤S230,按照所述目标写入位置将该待存储I帧数据写入到所述第一缓存空间中进行缓存,并检测所述第一缓存空间是否被写满。
在本实施例中,当所述终端设备10判定该待存储I帧数据的目标写入位置位于所述第一缓存空间中的与已写入数据对应的位置范围内时,所述终端设备10直接以该待存储I帧数据对所述第一缓存空间中的与所述目标写入位置对应的已写入数据进行覆盖写入,以将该待存储I帧数据缓存到所述第一缓存空间中,完成对该待存储I帧数据所对应的待存储I帧组视频数据的缓存流程。而后,所述终端设备10将检测所述第一缓存空间是否被写满,以判断是否将所述视频缓存空间中缓存的视频数据写入到所述终端设备10的内存空间中进行存储。
在本实施例的一种实施方式中,所述检测所述第一缓存空间是否被写满的步骤包括:
统计第一缓存空间及第二缓存空间各自缓存的视频数据的数据量,并计算得到所述视频缓存空间缓存的总视频数据量;
将所述总视频数据量与所述第一缓存空间的空间容量进行比较;
当所述总视频数据量不小于所述第一缓存空间的空间容量时,判定所述第一缓存空间被写满,否则判定所述第一缓存空间未写满。
在本实施例的另一种实施方式中,所述检测所述第一缓存空间是否被写满的步骤包括:
统计所述第一缓存空间当前缓存的视频数据的数据量;
将统计得到的所述数据量与所述第一缓存空间的空间容量进行比较;
若所述数据量小于所述第一缓存空间的空间容量,则判定所述第一缓存空间未写满;
若所述数据量等于所述第一缓存空间的空间容量,则判定所述第一缓存空间被写满。
在本实施例中,当所述终端设备10检测到所述第一缓存空间被写满时,所述终端设备10将直接判定所述视频缓存空间当前无法对下一待存储I帧组视频数据进行缓存,此时所述终端设备10将对应执行步骤S240;当所述终端设备10检测到所述第一缓存空间未写满时,所述终端设备10可基于所述第一缓存空间剩余的空间容量对下一待存储I帧组视频数据进行缓存,例如所述终端设备10在接收到下一待存储I帧组视频数据的与帧组头部对应的I帧数据,会以所述第一缓存空间剩余的空间容量对所述与帧组头部对应的I帧数据进行缓存。
步骤S240,将所述视频缓存空间缓存的所有视频数据全部写入到终端设备10的内存空间中进行存储,并清空所述视频缓存空间。
在本实施例中,当所述终端设备10完成对所述待存储I帧数据的数据回写过程,并检测到所述第一缓存空间被写满时,所述终端设备10直接将所述视频缓存空间的第一缓存空间及第二缓存空间各自当前缓存的所有视频数据全部写入到所述终端设备10的内存空间中进行存储,并对所述视频缓存空间进行清空,以通过清空后的所述视频缓存空间对下一待存储I帧组视频数据进行缓存。
在本实施例中,所述终端设备10通过执行图2所示的视频数据存储方法所包括的上述的步骤S210~步骤S240的方式,在实现对非顺序写入的I帧组视频数据的缓存操作的同时,对视频缓存空间的空间容量进行充分利用,以降低内存写入次数,提高每次将数据写入内存时的数据写入量,使终端设备10的存储性能达到最佳状态。
请再次参照图2,图2所示的视频数据存储方法还包括:
步骤S250,判断所述目标写入位置是否位于所述视频缓存空间中与已写入数据对应的缓存位置之后。
在本实施例中,当所述终端设备10判定所述待存储I帧数据的目标写入位置不位于所述第一缓存空间中的与已写入数据对应的位置范围内时,所述终端设备10将判断该待存储I帧数据的目标写入位置是否位于所述视频缓存空间中与已写入数据对应的缓存位置之后,以确定该待存储I帧数据是否为对应待存储I帧组视频数据中的帧组中间数据或帧组尾部数据。其中,若该待存储I帧数据的目标写入位置位于所述视频缓存空间中与已写入数据对应的缓存位置之后,则表明该待存储I帧数据为对应待存储I帧组视频数据中的帧组中间数据或帧组尾部数据,此时所述终端设备10将对应执行步骤S260;若该待存储I帧数据的目标写入位置不位于所述缓存位置之后(例如,所述目标写入位置位于所述视频缓存空间之前,或所述目标写入位置超出所述视频缓存空间),则表明该待存储I帧数据为异常视频数据,此时所述终端设备10将对应执行步骤S290。
步骤S260,检测第二缓存空间是否被写满。
在本实施例中,当所述终端设备10判定该待存储I帧数据的目标写入位置不位于所述第一缓存空间中的与已写入数据对应的位置范围内,而位于所述视频缓存空间中与已写入数据对应的缓存位置之后时,所述终端设备10将检测所述第二缓存空间是否被写满,以判断所述待存储I帧数据是否能够被写入到所述视频缓存空间中进行缓存。
在本实施例的一种实施方式中,所述检测第二缓存空间是否被写满的步骤包括:
统计所述第一缓存空间及所述第二缓存空间各自缓存的视频数据的数据量,并计算得到所述视频缓存空间缓存的总视频数据量;
将所述总视频数据量与所述待存储I帧数据的数据量进行相加运算,并将相加得到的总数据量与所述视频缓存空间的总空间容量进行比较;
当所述总数据量不小于所述总空间容量时,判定所述第二缓存空间被写满,否则判定所述第二缓存空间未写满。
在本实施例的另一种实施方式中,所述检测第二缓存空间是否被写满的步骤包括:
统计所述第二缓存空间当前缓存的视频数据的数据量;
将统计得到的所述数据量与所述第二缓存空间的空间容量进行比较;
若所述数据量小于所述第二缓存空间的空间容量,则判定所述第二缓存空间未写满;
若所述数据量等于所述第二缓存空间的空间容量,则判定所述第二缓存空间被写满。
在本实施例中,当所述终端设备10判定该待存储I帧数据的目标写入位置位于所述视频缓存空间中与已写入数据对应的缓存位置之后,且所述第二缓存空间未写满时,所述终端设备10将直接以所述视频缓存空间当前剩余的空间容量对该待存储I帧数据进行缓存,此时所述终端设备10将对应执行步骤S280;当所述终端设备10判定该待存储I帧数据的目标写入位置位于所述视频缓存空间中与已写入数据对应的缓存位置之后,且所述第二缓存空间被写满时,所述终端设备10将直接判定所述视频缓存空间当前无法对该待存储I帧数据进行缓存,此时所述终端设备10将对应执行步骤S270。
步骤S270,将所述视频缓存空间缓存的所有视频数据写入到所述终端设备10的内存空间中进行存储,而后清空所述视频缓存空间,并将该待存储I帧数据直接写入到清空后的所述视频缓存空间的第一缓存空间中进行缓存。
在本实施例中,当所述终端设备10判定所述视频缓存空间当前无法对该待存储I帧数据进行缓存时,所述终端设备10会将所述视频缓存空间缓存的所有视频数据全部写入到所述终端设备10的内存空间中进行存储,而后清空所述视频缓存空间,并使所述终端设备10将当前的所述待存储I帧数据直接写入到清空后的所述视频缓存空间的第一缓存空间中进行缓存,使所述终端设备10以当前视频缓存空间对当前待存储I帧组视频数据的剩余待存储I帧数据进行缓存。
在本实施例的一种实施方式中,所述终端设备10也可以该待存储I帧数据写满所述视频缓存空间,并将写满后的所述视频缓存空间缓存的所有视频数据写入到所述内存空间中进行存储,而后清空所述视频缓存空间,并将该待存储I帧数据的剩余数据直接写入到所述视频缓存空间中进行缓存,使所述终端设备10可基于当前视频缓存空间的剩余空间容量对当前待存储I帧组视频数据的剩余待存储I帧数据进行缓存。
步骤S280,按照所述目标写入位置将该待存储I帧数据写入到所述视频缓存空间中进行缓存。
在本实施例中,当所述终端设备10判定所述视频缓存空间当前仍可对该待存储I帧数据进行缓存时,所述终端设备10直接将该待存储I帧数据写入到所述视频缓存空间中的与所述目标写入位置对应的位置处进行缓存。其中,若所述第一缓存空间未写满,则所述终端设备10直接将该待存储I帧数据写入到所述目标写入位置在所述第一缓存空间中对应的位置处;若所述第一缓存空间被写满,则所述终端设备10直接将该待存储I帧数据写入到所述目标写入位置在所述第二缓存空间中对应的位置处。
请再次参照图2,图2所示的视频数据存储方法还包括:
步骤S290,直接将该待存储I帧数据写入到所述终端设备10的内存空间中进行存储。
在本实施例中,当所述终端设备10判定所述目标写入位置不位于所述视频缓存空间中与已写入数据对应的缓存位置之后时,该待存储I帧数据将被判定为异常视频数据,此时所述终端设备10将该存储I帧数据写入到所述终端设备10的内存空间中进行存储。其中,若该待存储I帧数据为与已写入内存空间的当前待存储I帧组视频数据的帧组头部对应的具体回写内容,则所述终端设备10将直接以该待存储I帧数据对被写入内存空间的所述待存储I帧组视频数据的帧组头部数据进行覆盖写入。
请再次参照图2,图2所示的视频数据存储方法还包括:
步骤S300,直接将该待存储I帧数据写入到所述第一缓存空间中进行缓存。
在本实施例中,所述终端设备10在执行完所述步骤S210,并确定所述视频缓存空间中不存在已写入数据时,此时终端设备10将直接将该待存储I帧数据写入到所述第一缓存空间中进行缓存。
经发明人调研发现,数据传输速度及数据传输量与网络通信状况和数据需求量存在关联关系,所述终端设备10在一段时间内接收到的待存储I帧组视频数据的数据量之间存在波动,不同的待存储I帧组视频数据的数据量可以相同,也可以不同。因此,为确保所述终端设备10的第一缓存空间与第二缓存空间均可缓存至少一个I帧组视频数据,本申请在图2所示的视频数据存储方法的基础上,通过对所述第一缓存空间与所述第二缓存空间各自的空间容量进行动态调整,以使所述视频缓存空间的空间容量与当前的视频数据存储需求相互匹配,达到合理分配缓存资源的效果。
进一步地,请参照图3,图3是本申请实施例提供的视频数据存储方法的流程示意图之二。在本申请实施例中,图3所示的视频数据存储方法用于对所述终端设备10的第一缓存空间及第二缓存空间各自的空间容量进行动态调整。下面对图3所示的视频数据存储方法的具体流程和步骤经详细阐述。
步骤S310,在一个数据存储周期结束时,统计终端设备10在该数据存储周期内接收到的视频数据量,并根据统计得到的视频数据量计算一个I帧组视频数据的平均数据量。
在本实施例中,所述数据存储周期用于表示所述终端设备10需要在所述数据存储周期所对应的时间段内对视频数据进行存储,所述数据存储周期可以是1小时,也可以是1.5小时,还可以是3小时。所述终端设备10在每个数据存储周期所对应的工作时长被消耗完时,通过统计其在该数据存储周期内接收到的视频数据量及I帧组数目,并根据统计得到的所述视频数据量及所述I帧组数目计算出一个I帧组视频数据在该数据存储周期的平均数据量。
步骤S320,根据所述I帧组视频数据的平均数据量对第一缓存空间及第二缓存空间各自的空间容量进行调整,使第一缓存空间与第二缓存空间均可写入至少一个所述I帧组视频数据的平均数据量。
在本实施例中,所述终端设备10在每次计算出对应的I帧组视频数据的平均数据量时,会将当前计算出的I帧组视频数据的平均数据量与上次计算出的I帧组视频数据的平均数据量进行比较。若当前计算出的所述平均数据量与上次计算出的所述平均数据量相同,则所述终端设备10当前配置的所述第一缓存空间及所述第二缓存空间各自的空间容量无需进行调整,仍旧保持在可写入至少一个所述I帧组视频数据的平均数据量的状态;若当前计算出的所述平均数据量不与上次计算出的所述平均数据量相同,则所述终端设备10将以其在该数据存储周期内的视频数据量接收速度,计算出要调整到位的所述第一缓存空间及所述第二缓存空间各自的目标空间容量,并根据得到的目标空间容量动态调整所述第一缓存空间及所述第二缓存空间当前的空间容量。
在本实施例的一种实施方式中,所述终端设备10选取最小固有缓存容量数值与由视频数据量接收速度及固有系数计算得到的容量积值中的最大数值,作为所述第一缓存空间的目标空间容量。其中,所述最小固有缓存容量不小于本次计算出的I帧组视频数据的平均数据量,所述固有系数可以是5、6或7。
在本实施例的一种实施方式中,所述终端设备10选取由视频数据量接收速度及缓存扩展系数计算得到的容量积值,作为所述第二缓存空间的目标空间容量。其中,所述缓存扩展系数可以是1.2、2.5或3。
可选地,请参照图4,图4是本申请实施例提供的视频数据存储方法的流程示意图之三。在本申请实施例中,图4所示的视频数据存储方法应用于包括有数据缓存空间的终端设备10。下面对图4所示的视频数据存储方法的具体流程和步骤经详细阐述。
步骤S410,在接收到待存储I帧组视频数据包括的待存储I帧数据时,检测数据缓存空间中是否存在已写入数据。
在本实施例中,所述终端设备10在检测到所述数据缓存空间中存在已写入数据时,将对应执行步骤S420,否则执行步骤S500。
步骤S420,读取该待存储I帧数据的目标写入位置,并判断所述目标写入位置是否位于所述数据缓存空间中的与已写入数据对应的位置范围内。
在本实施例中,所述终端设备10通过步骤S410检测到所述数据缓存空间中存在已写入数据时,通过读取所述待存储I帧数据在所述数据缓存空间处缓存的目标写入位置,判断该待存储I帧数据是否为该待存储I帧组视频数据中的帧组头部所对应的具体回写内容。其中,若该待存储I帧数据的目标写入位置位于所述位置范围内,则表明该待存储I帧数据为该待存储I帧组视频数据中的所述具体回写内容,此时所述终端设备10将对应执行步骤S430,否则表明该待存储I帧数据不为所述具体回写内容,此时所述终端设备10将对应执行步骤S450。
步骤S430,按照所述目标写入位置将该待存储I帧数据写入到所述数据缓存空间中进行缓存,并检测所述数据缓存空间的剩余空间容量是否小于一个I帧组视频数据的平均数据量。
在本实施例中,当所述终端设备10判定该待存储I帧数据的目标写入位置位于所述数据缓存空间中的所述位置范围内时,所述终端设备10直接以该待存储I帧数据对所述数据缓存空间中的与所述目标写入位置对应的已写入数据进行覆盖写入,以将该待存储I帧数据缓存到所述数据缓存空间中。而后,所述终端设备10通过将所述数据缓存空间的剩余空间容量与一个I帧组视频数据的平均数据量进行比较的方式,判断该数据缓存空间的剩余空间容量是否能够对下一待存储I帧组视频数据进行缓存。其中,若数据缓存空间的剩余空间容量小于一个I帧组视频数据的平均数据量,则表明该数据缓存空间当前无法对下一待存储I帧组视频数据进行缓存,此时所述终端设备10将对应执行步骤S440,否则表明该数据缓存空间当前可以对下一待存储I帧组视频数据进行缓存,所述终端设备10将以当前数据缓存空间的数据缓存状态对下一待存储I帧组视频数据进行缓存。
步骤S440,将所述数据缓存空间缓存的所有视频数据全部写入到终端设备10的内存空间中进行存储,并清空所述数据缓存空间。
在本实施例中,所述终端设备10在检测到所述数据缓存空间的剩余空间容量小于一个I帧组视频数据的平均数据量时,直接将所述数据缓存空间当前缓存的所有视频数据全部写入到所述终端设备10的内存空间中进行存储,并对所述数据缓存空间进行清空,以通过清空后的所述数据缓存空间对下一待存储I帧组视频数据进行缓存。
在本实施例中,所述终端设备10通过执行图4所示的视频数据存储方法所包括的上述的步骤S410~步骤S440的方式,在实现对非顺序写入的I帧组视频数据的缓存操作的同时,对数据缓存空间的空间容量进行充分利用,以降低内存写入次数,提高每次将数据写入内存时的数据写入量,使终端设备10的存储性能达到最佳状态。
请再次参照图4,图4所示的视频数据存储方法还包括:
步骤S250,判断所述目标写入位置是否位于所述数据缓存空间中与已写入数据对应的缓存位置之后。
在本实施例中,当所述终端设备10判定所述待存储I帧数据的目标写入位置不位于所述数据缓存空间中的与已写入数据对应的位置范围内时,将判断所述目标写入位置是否位于所述数据缓存空间中与已写入数据对应的缓存位置之后,并在位于所述缓存位置之后时,执行步骤S460,否则执行步骤S490。
步骤S460,检测所述剩余空间容量是否小于该待存储I帧数据的数据量。
在本实施例中,当所述终端设备10判定该待存储I帧数据的目标写入位置位于所述数据缓存空间中与已写入数据对应的缓存位置之后时,通过将所述数据缓存空间的剩余空间容量与该待存储I帧数据的数据量进行比较,判断该待存储I帧数据是否能够被写入到当前的数据缓存空间中进行缓存。
其中,若所述剩余空间容量小于该待存储I帧数据的数据量,则表明当前数据缓存空间无法完整地对该待存储I帧数据进行缓存,此时所述终端设备10将对应执行步骤S470,否则表明当前数据缓存空间可以完整地对该待存储I帧数据进行缓存,此时所述终端设备10将对应执行步骤S480。
步骤S470,以该待存储I帧数据写满所述数据缓存空间,并将写满后的所述数据缓存空间缓存的所有视频数据写入到所述内存空间中进行存储,而后清空所述数据缓存空间,并将该待存储I帧数据的剩余数据直接写入到所述数据缓存空间中进行缓存。
在本实施例中,当所述终端设备10判定所述数据缓存空间的剩余空间容量小于该待存储I帧数据的数据量时,所述终端设备10通过以该待存储I帧数据填满所述数据缓存空间,并将写满后的数据缓存空间中的所有视频数据写入到内存空间中进行存储,而后清空该数据缓存空间,并清空后的数据缓存空间对该待存储I帧数据剩余的数据进行缓存。
步骤S480,按照所述目标写入位置将该待存储I帧数据写入到所述数据缓存空间中进行缓存。
在本实施例中,当所述终端设备10判定所述数据缓存空间的剩余空间容量不小于该待存储I帧数据的数据量时,所述终端设备10直接按照所述目标写入位置将该待存储I帧数据写入到所述数据缓存空间中进行缓存。
请再次参照图4,图4所示的视频数据存储方法还包括:
步骤S490,直接将该待存储I帧数据写入到所述终端设备10的内存空间中进行存储。
在本实施例中,当所述终端设备10判定所述目标写入位置不位于数据缓存空间中的与已写入数据对应的缓存位置之后时,所述终端设备10直接将该待存储I帧数据写入到所述终端设备10的内存空间中进行存储。
步骤S500,直接将该待存储I帧数据写入到所述数据缓存空间中进行缓存。
在本实施例中,所述终端设备10在执行完所述步骤S410,并确定所述数据缓存空间中不存在已写入数据时,此时终端设备10将直接将该待存储I帧数据写入到所述数据缓存空间中进行缓存。
基于与图3所示的视频数据存储方法类似的理由,为确保所述终端设备10的数据缓存空间可始终缓存至少一个I帧组视频数据,本申请在图4所示的视频数据存储方法的基础上,通过对所述数据缓存空间的空间容量进行动态调整,以使所述数据缓存空间的空间容量与当前的视频数据存储需求相互匹配,达到合理分配缓存资源的效果。
进一步地,请参照图5,图5是本申请实施例提供的视频数据存储方法的流程示意图之四。在本申请实施例中,图5所示的视频数据存储方法用于对所述终端设备10的数据缓存空间的空间容量进行动态调整。下面对图5所示的视频数据存储方法的具体流程和步骤经详细阐述。
步骤S510,在一个数据存储周期结束时,统计终端设备10在该数据存储周期内接收到的视频数据量,并根据统计得到的视频数据量计算一个I帧组视频数据的平均数据量。
步骤S520,根据所述I帧组视频数据的平均数据量对数据缓存空间的空间容量进行调整,使所述数据缓存空间可写入至少一个所述I帧组视频数据的平均数据量。
在本实施例中,所述终端设备10在每次计算出对应的I帧组视频数据的平均数据量时,会将当前计算出的I帧组视频数据的平均数据量与上次计算出的I帧组视频数据的平均数据量进行比较。若两次计算出的平均数据量相同,则保留所述数据缓存空间的当前空间容量,否则将以该终端设备10在本次数据存储周期内的视频数据量接收速度,计算出要调整到位的所述数据缓存空间各自的目标空间容量,并根据得到的目标空间容量动态调整所述数据缓存空间当前的空间容量。
在本实施例的一种实施方式中,所述数据缓存空间的目标空间容量采用上述的计算第一缓存空间的目标空间容量的计算方式进行计算。
请参照图6,图6是本申请实施例提供的视频数据存储装置100的方框示意图之一。在本申请实施例中,所述视频数据存储装置100包括已写入检测模块110、位置判断模块120、缓存写入模块130及存储写入模块140。
在本实施例的一种实施方式中,当所述视频数据存储装置100被应用到包括有视频缓存空间的终端设备10时,所述已写入检测模块110、位置判断模块120、缓存写入模块130及存储写入模块140各自的功能如下所示:
所述已写入检测模块110,用于在接收到待存储I帧组视频数据包括的待存储I帧数据时,检测视频缓存空间中是否存在已写入数据;
所述位置判断模块120,用于当检测到所述视频缓存空间中存在已写入数据时,读取该待存储I帧数据的目标写入位置,并判断所述目标写入位置是否位于第一缓存空间中的与已写入数据对应的位置范围内;
所述缓存写入模块130,用于若判定所述目标写入位置位于所述位置范围内,则按照所述目标写入位置将该待存储I帧数据写入到所述第一缓存空间中进行缓存,并检测所述第一缓存空间是否被写满;
所述存储写入模块140,用于当检测到所述第一缓存空间被写满时,将所述视频缓存空间缓存的所有视频数据全部写入到终端设备10的内存空间中进行存储,并清空所述视频缓存空间;
所述位置判断模块120,还用于若判定所述目标写入位置不位于所述位置范围内,则判断所述目标写入位置是否位于所述视频缓存空间中与已写入数据对应的缓存位置之后;
所述缓存写入模块130,还用于当判定所述目标写入位置位于所述缓存位置之后时,检测所述第二缓存空间是否被写满,并在检测到所述第二缓存空间未写满时,按照所述目标写入位置将该待存储I帧数据写入到所述视频缓存空间中进行缓存;
所述存储写入模块140,还用于当所述缓存写入模块130检测到所述第二缓存空间被写满时,将所述视频缓存空间缓存的所有视频数据写入到所述终端设备10的内存空间中进行存储,并清空所述视频缓存空间,使所述缓存写入模块130将该待存储I帧数据直接写入到清空后的所述视频缓存空间的第一缓存空间中进行缓存;
所述存储写入模块140,还用于当判定所述目标写入位置不位于所述缓存位置之后,直接将该待存储I帧数据写入到所述终端设备10的内存空间中进行存储;
所述缓存写入模块130,还用于当检测到所述视频缓存空间中不存在已写入数据时,直接将该待存储I帧数据写入到所述第一缓存空间中进行缓存。
在本实施例的另一种实施方式中,当所述视频数据存储装置100被应用到包括有数据缓存空间的终端设备10时,所述已写入检测模块110、位置判断模块120、缓存写入模块130及存储写入模块140各自的功能如下所示:
所述已写入检测模块110,用于在接收到待存储I帧组视频数据包括的待存储I帧数据时,检测数据缓存空间中是否存在已写入数据;
所述位置判断模块120,用于当检测到所述数据缓存空间中存在已写入数据时,读取该待存储I帧数据的目标写入位置,并判断所述目标写入位置是否位于所述数据缓存空间中的与已写入数据对应的位置范围内;
所述缓存写入模块130,用于若判定所述目标写入位置位于所述位置范围内,则按照所述目标写入位置将该待存储I帧数据写入到所述数据缓存空间中进行缓存,并检测所述数据缓存空间的剩余空间容量是否小于一个I帧组视频数据的平均数据量;
所述存储写入模块140,用于当检测到所述剩余空间容量小于所述平均数据量时,将所述数据缓存空间缓存的所有视频数据全部写入到终端设备10的内存空间中进行存储,并清空所述数据缓存空间;
所述位置判断模块120,还用于若判定所述目标写入位置不位于所述位置范围内,则判断所述目标写入位置是否位于所述数据缓存空间中与已写入数据对应的缓存位置之后;
所述缓存写入模块130,还用于当判定所述目标写入位置位于所述缓存位置之后时,检测所述剩余空间容量是否小于该待存储I帧数据的数据量,并在检测到所述剩余空间容量不小于该待存储I帧数据的数据量时,按照所述目标写入位置将该待存储I帧数据写入到所述数据缓存空间中进行缓存;
所述存储写入模块140,还用于当所述缓存写入模块130检测到所述剩余空间容量小于该待存储I帧数据的数据量时,以该待存储I帧数据写满所述数据缓存空间,并将写满后的所述数据缓存空间缓存的所有视频数据写入到所述内存空间中进行存储,而后清空所述数据缓存空间,并将该待存储I帧数据的剩余数据直接写入到所述数据缓存空间中进行缓存;
所述存储写入模块140,还用于当判定所述目标写入位置不位于所述缓存位置之后,直接将该待存储I帧数据写入到所述内存空间中进行存储;
所述缓存写入模块130,还用于当检测到所述数据缓存空间中不存在已写入数据时,直接将该待存储I帧数据写入到所述数据缓存空间中进行缓存。
请参照图7,图7是本申请实施例提供的视频数据存储装置100的方框示意图之二。在本申请实施例中,所述视频数据存储装置100还包括统计计算模块150及容量配置模块160。
所述统计计算模块150,用于在一个数据存储周期结束时,统计终端设备10在该数据存储周期内接收到的视频数据量,并根据统计得到的视频数据量计算一个I帧组视频数据的平均数据量。
当所述视频数据存储装置100被应用到包括有视频缓存空间的终端设备10时,所述容量配置模块160用于根据所述I帧组视频数据的平均数据量对第一缓存空间及第二缓存空间各自的空间容量进行调整,使所述第一缓存空间与所述第二缓存空间均可写入至少一个所述I帧组视频数据的平均数据量。
当所述视频数据存储装置100被应用到包括有数据缓存空间的终端设备10时,所述容量配置模块160用于根据所述I帧组视频数据的平均数据量对所述数据缓存空间的空间容量进行调整,使所述数据缓存空间可写入至少一个所述I帧组视频数据的平均数据量。
需要说明的是,本实施例所提供的视频数据存储装置100,其基本原理及产生的技术效果和上述视频数据存储方法相同,为简要描述,本实施例部分未提及之处,可参考上述的针对网络切换方法的实施例中相应内容。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,在本申请提供的一种视频数据存储方法、装置、终端设备及可读存储介质中,本申请在接收到待存储I帧数据时,检测视频缓存空间中是否存在已写入数据,并在存在时,根据该待存储I帧数据的目标写入位置判断是否要以该待存储I帧数据对视频缓存空间的第一缓存空间中的已写入数据进行覆盖写入。在判定是时,将该待存储I帧数据写入到第一缓存空间中对应位置处,并检测第一缓存空间是否被写满。然后,本申请在判定未写满时,可基于第一缓存空间剩余的空间容量对下一待存储I帧组视频数据进行缓存,并在判定被写满时,将视频缓存空间缓存的所有视频数据全部写入到终端设备的内存空间中进行存储,并清空视频缓存空间,从而保证在实现对非顺序写入的I帧组视频数据的缓存操作的同时,对缓存空间进行充分利用,以提高每次内存写入操作的数据写入量,降低内存写入次数,使终端设备的存储性能达到最佳状态。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种视频数据存储方法,其特征在于,应用于包括视频缓存空间的终端设备,其中所述视频缓存空间包括第一缓存空间及第二缓存空间,所述第一缓存空间的写入优先级大于所述第二缓存空间的写入优先级,且所述第一缓存空间与所述第二缓存空间均可写入至少一个I帧组视频数据,所述终端设备在所述第一缓存空间被写满后将需要缓存到所述视频缓存空间中的视频数据写入到所述第二缓存空间进行缓存,所述方法包括:
在接收到待存储I帧组视频数据包括的待存储I帧数据时,检测所述视频缓存空间中是否存在已写入数据;
当检测到所述视频缓存空间中存在已写入数据时,读取该待存储I帧数据的目标写入位置,并判断所述目标写入位置是否位于所述第一缓存空间中的与已写入数据对应的位置范围内;
若判定所述目标写入位置位于所述位置范围内,则按照所述目标写入位置将该待存储I帧数据写入到所述第一缓存空间中进行缓存,并检测所述第一缓存空间是否被写满;
当检测到所述第一缓存空间被写满时,将所述视频缓存空间缓存的所有视频数据全部写入到所述终端设备的内存空间中进行存储,并清空所述视频缓存空间。
2.根据权利要求1所述的方法,其特征在于,所述检测所述第一缓存空间是否被写满,包括:
统计所述第一缓存空间及所述第二缓存空间各自缓存的视频数据的数据量,并计算得到所述视频缓存空间缓存的总视频数据量;
将所述总视频数据量与所述第一缓存空间的空间容量进行比较;
当所述总视频数据量不小于所述第一缓存空间的空间容量时,判定所述第一缓存空间被写满,否则判定所述第一缓存空间未写满。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若判定所述目标写入位置不位于所述位置范围内,则判断所述目标写入位置是否位于所述视频缓存空间中与已写入数据对应的缓存位置之后;
当判定所述目标写入位置位于所述缓存位置之后时,检测所述第二缓存空间是否被写满;
当检测到所述第二缓存空间未写满时,按照所述目标写入位置将该待存储I帧数据写入到所述视频缓存空间中进行缓存,否则将所述视频缓存空间缓存的所有视频数据写入到所述终端设备的内存空间中进行存储,而后清空所述视频缓存空间,并将该待存储I帧数据直接写入到清空后的所述视频缓存空间的第一缓存空间中进行缓存。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当判定所述目标写入位置不位于所述缓存位置之后,直接将该待存储I帧数据写入到所述终端设备的内存空间中进行存储。
5.根据权利要求1-4中任意一项所述的方法,其特征在于,所述方法还包括:
当检测到所述视频缓存空间中不存在已写入数据时,直接将该待存储I帧数据写入到所述第一缓存空间中进行缓存。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在一个数据存储周期结束时,统计所述终端设备在该数据存储周期内接收到的视频数据量,并根据统计得到的视频数据量计算一个I帧组视频数据的平均数据量;
根据所述I帧组视频数据的平均数据量对所述第一缓存空间及所述第二缓存空间各自的空间容量进行调整,使所述第一缓存空间与所述第二缓存空间均可写入至少一个所述I帧组视频数据的平均数据量。
7.一种视频数据存储方法,其特征在于,应用于包括数据缓存空间的终端设备,所述方法包括:
在接收到待存储I帧组视频数据包括的待存储I帧数据时,检测所述数据缓存空间中是否存在已写入数据;
当检测到所述数据缓存空间中存在已写入数据时,读取该待存储I帧数据的目标写入位置,并判断所述目标写入位置是否位于所述数据缓存空间中的与已写入数据对应的位置范围内;
若判定所述目标写入位置位于所述位置范围内,则按照所述目标写入位置将该待存储I帧数据写入到所述数据缓存空间中进行缓存,并检测所述数据缓存空间的剩余空间容量是否小于一个I帧组视频数据的平均数据量;
当检测到所述剩余空间容量小于所述平均数据量时,将所述数据缓存空间缓存的所有视频数据全部写入到所述终端设备的内存空间中进行存储,并清空所述数据缓存空间。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若判定所述目标写入位置不位于所述位置范围内,则判断所述目标写入位置是否位于所述数据缓存空间中与已写入数据对应的缓存位置之后;
当判定所述目标写入位置位于所述缓存位置之后时,检测所述剩余空间容量是否小于该待存储I帧数据的数据量;
当检测到所述剩余空间容量不小于该待存储I帧数据的数据量时,按照所述目标写入位置将该待存储I帧数据写入到所述数据缓存空间中进行缓存,否则以该待存储I帧数据写满所述数据缓存空间,并将写满后的所述数据缓存空间缓存的所有视频数据写入到所述内存空间中进行存储,而后清空所述数据缓存空间,并将该待存储I帧数据的剩余数据直接写入到所述数据缓存空间中进行缓存。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当判定所述目标写入位置不位于所述缓存位置之后,直接将该待存储I帧数据写入到所述内存空间中进行存储。
10.根据权利要求7-9中任意一项所述的方法,其特征在于,所述方法还包括:
当检测到所述数据缓存空间中不存在已写入数据时,直接将该待存储I帧数据写入到所述数据缓存空间中进行缓存。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在一个数据存储周期结束时,统计所述终端设备在该数据存储周期内接收到的视频数据量,并根据统计得到的视频数据量计算一个I帧组视频数据的平均数据量;
根据所述I帧组视频数据的平均数据量对所述数据缓存空间的空间容量进行调整,使所述数据缓存空间可写入至少一个所述I帧组视频数据的平均数据量。
12.一种视频数据存储装置,其特征在于,应用于包括视频缓存空间的终端设备,其中所述视频缓存空间包括第一缓存空间及第二缓存空间,所述第一缓存空间的写入优先级大于所述第二缓存空间的写入优先级,且所述第一缓存空间与所述第二缓存空间均可写入至少一个I帧组视频数据,所述终端设备在所述第一缓存空间被写满后将需要缓存到所述视频缓存空间中的视频数据写入到所述第二缓存空间进行缓存,所述装置包括:
已写入检测模块,用于在接收到待存储I帧组视频数据包括的待存储I帧数据时,检测所述视频缓存空间中是否存在已写入数据;
位置判断模块,用于当检测到所述视频缓存空间中存在已写入数据时,读取该待存储I帧数据的目标写入位置,并判断所述目标写入位置是否位于所述第一缓存空间中的与已写入数据对应的位置范围内;
缓存写入模块,用于若判定所述目标写入位置位于所述位置范围内,则按照所述目标写入位置将该待存储I帧数据写入到所述第一缓存空间中进行缓存,并检测所述第一缓存空间是否被写满;
存储写入模块,用于当检测到所述第一缓存空间被写满时,将所述视频缓存空间缓存的所有视频数据全部写入到所述终端设备的内存空间中进行存储,并清空所述视频缓存空间。
13.一种视频数据存储装置,其特征在于,应用于包括数据缓存空间的终端设备,所述装置包括:
已写入检测模块,用于在接收到待存储I帧组视频数据包括的待存储I帧数据时,检测所述数据缓存空间中是否存在已写入数据;
位置判断模块,用于当检测到所述数据缓存空间中存在已写入数据时,读取该待存储I帧数据的目标写入位置,并判断所述目标写入位置是否位于所述数据缓存空间中的与已写入数据对应的位置范围内;
缓存写入模块,用于若判定所述目标写入位置位于所述位置范围内,则按照所述目标写入位置将该待存储I帧数据写入到所述数据缓存空间中进行缓存,并检测所述数据缓存空间的剩余空间容量是否小于一个I帧组视频数据的平均数据量;
存储写入模块,用于当检测到所述剩余空间容量小于所述平均数据量时,将所述数据缓存空间缓存的所有视频数据全部写入到所述终端设备的内存空间中进行存储,并清空所述数据缓存空间。
14.一种终端设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令,以实现权利要求1-11中任意一项所述的视频数据存储方法。
15.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1-11中任意一项所述的视频数据存储方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910382809 | 2019-05-09 | ||
CN2019103828098 | 2019-05-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111914116A CN111914116A (zh) | 2020-11-10 |
CN111914116B true CN111914116B (zh) | 2024-04-05 |
Family
ID=73051225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910944093.6A Active CN111914116B (zh) | 2019-05-09 | 2019-09-30 | 视频数据存储方法、装置、终端设备及可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11966398B2 (zh) |
EP (1) | EP3968186A4 (zh) |
CN (1) | CN111914116B (zh) |
WO (1) | WO2020224184A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115297094B (zh) * | 2022-10-08 | 2023-02-28 | 苏州浪潮智能科技有限公司 | 视频传输控制方法、装置、设备及计算机可读存储介质 |
CN115580727B (zh) * | 2022-11-16 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 一种视频压缩的丢帧处理方法、装置、服务器及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359460A (zh) * | 2008-09-02 | 2009-02-04 | 北京中星微电子有限公司 | 一种图像旋转显示控制方法和装置 |
CN107229620A (zh) * | 2016-03-23 | 2017-10-03 | 杭州海康威视数字技术股份有限公司 | 一种视频数据的存储方法及装置 |
CN107329694A (zh) * | 2017-06-22 | 2017-11-07 | 苏州交运电子科技有限公司 | 数据存储控制方法、控制装置及存储设备 |
CN109597568A (zh) * | 2018-09-18 | 2019-04-09 | 天津字节跳动科技有限公司 | 一种数据存储方法、装置、终端设备及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8706968B2 (en) * | 2007-12-06 | 2014-04-22 | Fusion-Io, Inc. | Apparatus, system, and method for redundant write caching |
CN101720033B (zh) * | 2009-11-24 | 2014-08-20 | 北京中星微电子有限公司 | 一种视频传输设备及其usb传输的装置及方法 |
KR20140097924A (ko) * | 2013-01-30 | 2014-08-07 | 한국전자통신연구원 | 우선 순위를 가지는 이중 캐싱 방법 및 이를 위한 장치 |
US9270620B2 (en) * | 2013-09-25 | 2016-02-23 | International Business Machines Corporation | Memory transfer optimization of network adapter data placement when performing header-data split operations |
JP2017010396A (ja) * | 2015-06-24 | 2017-01-12 | 富士通株式会社 | ストレージ装置、キャッシュ書込制御方法及びキャッシュ書込制御プログラム |
US10019372B2 (en) * | 2015-12-16 | 2018-07-10 | Western Digital Technologies, Inc. | Caching sensing device data in data storage device |
US10123040B2 (en) * | 2016-08-30 | 2018-11-06 | Qualcomm Incorporated | Intra-coded video frame caching for video telephony sessions |
CN108055556B (zh) * | 2017-11-16 | 2019-09-03 | 北京达佳互联信息技术有限公司 | 数据处理方法和装置 |
-
2019
- 2019-09-30 CN CN201910944093.6A patent/CN111914116B/zh active Active
- 2019-10-11 US US17/609,694 patent/US11966398B2/en active Active
- 2019-10-11 WO PCT/CN2019/110636 patent/WO2020224184A1/zh unknown
- 2019-10-11 EP EP19928031.4A patent/EP3968186A4/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359460A (zh) * | 2008-09-02 | 2009-02-04 | 北京中星微电子有限公司 | 一种图像旋转显示控制方法和装置 |
CN107229620A (zh) * | 2016-03-23 | 2017-10-03 | 杭州海康威视数字技术股份有限公司 | 一种视频数据的存储方法及装置 |
CN107329694A (zh) * | 2017-06-22 | 2017-11-07 | 苏州交运电子科技有限公司 | 数据存储控制方法、控制装置及存储设备 |
CN109597568A (zh) * | 2018-09-18 | 2019-04-09 | 天津字节跳动科技有限公司 | 一种数据存储方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220222257A1 (en) | 2022-07-14 |
WO2020224184A1 (zh) | 2020-11-12 |
EP3968186A4 (en) | 2023-05-17 |
US11966398B2 (en) | 2024-04-23 |
EP3968186A1 (en) | 2022-03-16 |
CN111914116A (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733344B (zh) | 数据读写方法、装置以及环形队列 | |
EP1736885A2 (en) | Method for managing a memory in a mobile terminal | |
CN111914116B (zh) | 视频数据存储方法、装置、终端设备及可读存储介质 | |
CN104881259B (zh) | 一种数据处理方法和装置以及存储设备 | |
CN101877666B (zh) | 基于零拷贝方式的多应用程序报文接收方法和装置 | |
CN102591799B (zh) | 一种存放数据的方法和装置 | |
WO2021057665A1 (zh) | 数据存储方法、装置、移动终端及存储介质 | |
CN103888377A (zh) | 报文缓存方法及装置 | |
CN109240836B (zh) | 一种用于配置消息队列的消息的方法和装置 | |
CN108153783A (zh) | 一种数据缓存的方法和装置 | |
EP3588913A1 (en) | Data caching method and apparatus | |
CN112367384A (zh) | 基于Kafka集群的动态限速方法、装置以及计算机设备 | |
EP1970815A1 (en) | Data transfering apparatus and information processing system | |
CN102722456B (zh) | 闪存存储设备的数据写入方法和闪存存储设备 | |
CN110716695A (zh) | 一种节点日志的存储方法、***、电子设备及存储介质 | |
CN106776380A (zh) | 终端内容缓存替换方法及替换装置 | |
CN107590049B (zh) | 基于独立运行模式的数据处理方法及客户端 | |
CN107357523B (zh) | 一种数据处理方法及电子设备 | |
CN106776393B (zh) | 一种无中断的串口数据接收方法和装置 | |
CN101442387B (zh) | 一种数据反压的处理方法和装置 | |
CN115622945A (zh) | 一种报文处理方法及装置 | |
CN111858256B (zh) | 命令队列监控电路、数据交换方法及其设备 | |
KR20190048227A (ko) | 블록체인 기반 데이터 관리 방법 및 그 장치 | |
CN115469796A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN104123243A (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 |