CN111405358A - 基于缓存的视频帧提取方法、装置、介质及系统 - Google Patents

基于缓存的视频帧提取方法、装置、介质及系统 Download PDF

Info

Publication number
CN111405358A
CN111405358A CN202010211175.2A CN202010211175A CN111405358A CN 111405358 A CN111405358 A CN 111405358A CN 202010211175 A CN202010211175 A CN 202010211175A CN 111405358 A CN111405358 A CN 111405358A
Authority
CN
China
Prior art keywords
video
duration
frame
starting
extracted
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.)
Pending
Application number
CN202010211175.2A
Other languages
English (en)
Inventor
彭志昂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Yitu Network Science and Technology Co Ltd
Original Assignee
Shanghai Yitu Network Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Yitu Network Science and Technology Co Ltd filed Critical Shanghai Yitu Network Science and Technology Co Ltd
Priority to CN202010211175.2A priority Critical patent/CN111405358A/zh
Publication of CN111405358A publication Critical patent/CN111405358A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440245Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请涉及视频处理技术领域,公开了一种基于缓存的视频帧提取方法、装置、介质及系统。本申请的视频帧提取方法包括:获取源视频流,并确定源视频流中视频帧的平均间隔,以及对应每个视频帧的帧号和/或时间戳信息;将源视频流中第一时长的视频片段缓存至缓冲区;输入第二时长的待提取视频片段的起始帧号和/或起始时间戳信息;判断第二时长的待提取视频片段的起始帧号是否与缓冲区中第一时长的视频片段的其中一个视频帧对应的帧号相同,和/或判断第二时长的待提取视频片段的起始时间戳信息是否与缓冲区中第一时长的视频片段的其中一个视频帧对应的时间戳信息相同,获得判断结果;基于判断结果,输出第二时长的待提取视频片段的提取结果。

Description

基于缓存的视频帧提取方法、装置、介质及系统
技术领域
本申请涉及视频处理技术领域,特别涉及一种基于缓存的视频帧提取方法、装置、介质及系统。
背景技术
信息技术的发展带来了海量的视频流。视频点播、远程视频教育、视频会议等媒体信息交换和应用形式已经融入人们的日常工作、学习和娱乐之中。视频流的内容越来越丰富,视频流的数据量也越来越大。为了从海量的视频流中获取一些感兴趣的信息,需要从实时的视频流中提取特定的一帧或一段视频。然而,由于视频流不断向前刷新,导致从实时的视频流中提取特定的一帧或一段视频比较困难。
发明内容
本申请实施例提供了一种基于缓存的视频帧提取方法、装置、介质及系统。
第一方面,本申请实施例提供了一种基于缓存的视频帧提取方法,包括:获取原始视频流,并确定所述原始视频流中视频帧的平均间隔,以及对应每个所述视频帧的帧号和/或时间戳信息;将所述原始视频流中第一时长的视频片段缓存至缓冲区;输入第二时长的待提取视频片段的起始帧号和/或起始时间戳信息;判断所述第二时长的待提取视频片段的起始帧号是否与所述缓冲区中第一时长的所述视频片段的其中一个视频帧对应的帧号相同,和/或判断所述第二时长的待提取视频片段的起始时间戳信息是否与所述缓冲区中第一时长的所述视频片段的其中一个视频帧对应的时间戳信息相同,获得判断结果;基于所述判断结果,输出所述第二时长的待提取视频片段的提取结果。
在上述第一方面的一种可能的实现中,上述方法还包括:所述判断结果包括第一结果和第二结果;所述第一结果为:所述第二时长的待提取视频片段的起始帧号与所述缓冲区中第一时长的视频片段的其中一个视频帧对应的帧号相同,和/或所述第二时长的待提取视频片段的起始时间戳信息与所述缓冲区中第一时长的视频片段的其中一个视频帧对应的时间戳信息相同;
所述第二结果为:所述第二时长的待提取视频片段的起始帧号与所述缓冲区中第一时长的视频片段的其中任意一个视频帧对应的帧号均不相同,并且所述第二时长的待提取视频片段的起始时间戳信息与所述缓冲区中第一时长的视频片段的其中任意一个视频帧对应的时间戳信息均不相同。
在上述第一方面的一种可能的实现中,上述方法还包括:若所述第一时长大于或等于所述第二时长,所述基于所述判断结果,输出所述第二时长的待提取视频片段的提取结果,包括:
若所述判断结果为所述第一结果,则以所述缓冲区中帧号和/或时间戳信息与所述第二时长的待提取视频片段的起始帧号和/或起始时间戳信息相同的视频帧为基准,在所述缓冲区中向前查找与该视频帧相邻的起始关键帧,再以所述起始关键帧为基准间隔第二时长后向后查找结尾关键帧,输出所述起始关键帧和所述结尾关键帧信息,并且输出所述缓冲区中第一时长的视频片段的起始帧号和结尾帧号;
若所述判断结果为所述第二结果,则输出表征所述第二时长的待提取视频片段提取失败的结果,并且输出所述缓冲区中第一时长的视频片段的起始帧号和结尾帧号。
在上述第一方面的一种可能的实现中,上述方法还包括:若所述第一时长小于所述第二时长,所述基于所述判断结果,输出所述第二时长的待提取视频片段的提取结果,包括:
若所述判断结果为所述第一结果,则以所述缓冲区中帧号和/或时间戳信息与所述第二时长的待提取视频片段的起始帧号和/或起始时间戳信息相同的视频帧为基准,在所述缓冲区中向前查找与该视频帧相邻的起始关键帧,再以所述起始关键帧为基准,向后查找所述缓冲区中的第一时长的视频片段的结尾关键帧,直至所述结尾关键帧与所述起始关键帧间隔时长大于第二时长为止,输出所述起始关键帧和所述结尾关键帧信息,并且输出所述缓冲区中第一时长的视频片段的起始帧号和结尾帧号;
若所述判断结果为所述第二结果,则输出表征所述第二时长的待提取视频片段提取失败的结果,并且输出所述缓冲区中第一时长的视频片段的起始帧号和结尾帧号。
在上述第一方面的一种可能的实现中,上述方法还包括:所述第一时长的视频片段被配置为以先进先出的方式缓存至所述缓冲区中。
在上述第一方面的一种可能的实现中,上述方法还包括:所述结尾关键帧和所述起始关键帧之间的时长间隔大于所述第二时长。
在上述第一方面的一种可能的实现中,上述方法还包括:所述原始视频流采用h264或h265的编码格式。
第二方面,本申请实施里提供了一种基于缓存的视频帧提取装置,包括:
源处理模块,用于获取原始视频流,并确定所述原始视频流中视频帧的平均间隔,以及对应每个所述视频帧的帧号和/或时间戳信息;
缓存处理模块,用于将所述原始视频流中第一时长的视频片段缓存至缓冲区;
输入模块,用于输入第二时长的待提取视频片段的起始帧号和/或起始时间戳信息;
判断模块,用于判断所述第二时长的待提取视频片段的起始帧号是否与所述缓冲区中第一时长的所述视频片段的其中一个视频帧对应的帧号相同,和/或判断所述第二时长的待提取视频片段的起始时间戳信息是否与所述缓冲区中第一时长的所述视频片段的其中一个视频帧对应的时间戳信息相同,获得判断结果;
视频帧提取模块,用于基于所述判断结果,输出所述第二时长的待提取视频片段的提取结果。
第三方面,本申请实施例提供了一种机器可读介质,所述机器可读介质上存储有指令,该指令在机器上执行时使机器执行第一方面以及第一方面可能的各实现中的基于缓存的视频帧提取方法。
第四方面,本申请实施例提供了一种系统,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行第一方面以及第一方面可能的各实现中的基于缓存的视频帧提取方法。
附图说明
图1根据本申请的一些实施例,示出了一种摄像机的结构示意图;
图2根据本申请的一些实施例,示出了一种基于缓存的视频帧提取方法的流程框图;
图3根据本申请的一些实施例,示出了一种基于缓存的视频帧提取装置的结构示意图;
图4根据本申请的一些实施例,示出了一种系统的框图;
图5根据本申请一些实施例,示出了一种片上系统(SoC)的框图。
具体实施方式
本申请的说明性实施例包括但不限于基于缓存的视频帧提取方法、装置、介质及系统。
可以理解,如本文所使用的,术语“模块”以指代或者包括专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用、或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组件的一部分。
可以理解,在本申请各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,所述处理器可以是单核处理器,多核处理器等,和/或其任何组合。
首先对本申请实施例提供的基于缓存的视频帧提取方法、装置中涉及的一些概念做解释说明。
关键帧,通常称之为I帧。视频由连续多个画面组构成,画面组为一组连续的画面,包括多个视频帧,其中,I帧包括一个视频帧的完整数据(即完整的内容),经过视频压缩技术压缩后的I帧,在解码时,无需参考其他帧,根据该I帧即可解码,重构完整的视频帧,并且I帧是一个画面组中其他视频帧的参考帧,例如I帧的下一帧为前向预测编码帧(predictive frame)(通常称为P帧)或双向预测内插编码帧(bi-directionalinterpolated prediction frame)(通常称为B帧),在解码P帧或者B帧时,需要以I帧为参考帧,才可以解码得到完整的P帧或者B帧,其中,P帧和B帧均为差别帧(即包含P帧或者B帧与其他视频帧的差别,并不包含视频帧的完整的内容)。
下面将结合附图对本申请的实施例作进一步地详细描述。
本申请实施例提供的基于缓存的视频帧提取方法可以应用于摄像机,或者具有录像功能的终端,例如手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digitalassistant,PDA)等。
下面结合图1具体介绍本申请实施例提供的摄像机的结构。如图1所示,本申请实施例提供的摄像机包括:视频源10、视频编码模块11、存储器12和接口模块13等部件。可以理解,图1中示出的摄像机的结构并不构成对摄像机的限定,其可以包括比如图1所示的部件更多或更少的部件,或者可以组合如图1所示的部件中的某些部件,或者可以与如图1所示的部件布置不同。
视频源10可以包括视频获取装置(例如摄像头),用于获取源视频数据。视频源10可以包括图像传感器,图像传感器是摄像机的感光元件,即摄像机感光成像的部件,摄像机获取到光信号形式的源视频数据之后,可以通过图像传感器将信号转变成电信号,以便于摄像机的其他部件处理该电信号的视频数据。
视频编码模块11可以根据编码标准(例如H.264或H.265)将视频源10获取的源视频数据经过编码后转化为机器可以识别的代码,以将源视频数据压缩,有利于源视频数据的传输和存储。在本申请实施例中,源视频数据以视频流的形式(以下称为源视频流)通过TCP(Transmission Control Protocol,传输控制协议)或UDP(User Datagram Protocol,用户数据报协议)承载,以进行视频交互。视频编码模块11可以为中央处理器(centralprocessing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合,其可以实现或执行本发明实施例公开的内容所描述的各种示例性的逻辑方框,模块和电路;视频编码器11也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
存储器12主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据摄像机的使用所创建的数据(比如视频数据)等。此外,存储器12可以包括高速随机存取存储器,可以用于存储源视频流中的部分数据或全部数据,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
接口模块13可以为向其他设备发送数据的接口电路,接口模块13包括调制器/解调器(调制解调器)和/或发射器,在本申请实施例中,接口模块13可以将编码并且处理后的源视频流发送给其他设备。
可选的,如图1所示的摄像机还可以包括音频编码模块、蓝牙模块等,在此不再赘述。
需要说明的是,在本申请实施例中源视频数据包括视频数据部分,还可以包括音频数据部分,下述实施例中提及的源视频流均指的是源视频流的视频数据部分,处理源视频流也指的是处理源视频流的视频数据部分。
根据本申请的一些实施例,结合上述对摄像机的描述,下面具体介绍基于缓存的视频帧提取方法,如图2所示,具体地,包括:
1)获取源视频流,并确定源视频流中视频帧的平均间隔,以及对应每个视频帧的帧号和/或时间戳信息(200)。如图1所示的摄像机的视频源10获取源视频数据(例如通过视频源10的摄像头获取源视频数据),视频编码模块11可以根据编码标准(例如H.264或H.265)将视频源10获取的源视频数据经过编码后得到源视频流。可以理解,在本申请实施例中,可以根据实际需求选择视频流的编码格式,本申请实施例不作具体限定。
在本申请实施例中,可以对编码后的源视频流的每个视频帧设置时间戳信息。在一些实施例中,可以将编码后的源视频流的每个视频帧的帧号和时间戳信息按照预设的关系进行映射。例如通过FFMPEG(时间戳编码工具)将源视频流的起始时间戳信息设为t1,即将源视频流中的起始帧的时间戳信息设为t1,源视频流的视频帧间隔为d(例如源视频流总时长为2秒,源视频流共有48个视频帧,则每个视频帧的时间间隔为41毫秒),每个视频帧的帧号为fn(例如起始帧的帧号为f1)。
2)将源视频流中第一时长的视频片段缓存至缓冲区(202)。在本申请实施例中,可以将第一时长的视频片段配置为先进先出的方式缓存至缓冲区中。可以理解,第一时长为缓冲区中所能缓存的视频片段的最大时长,缓冲区中的第一时长的视频片段是不断刷新的,例如源视频流共有30帧视频帧,缓冲区中共可以缓存10帧视频帧,在第一时刻,缓冲区中的起始帧号为1,结束帧号为10,在第二时刻,缓冲区中的起始帧号为2,结束帧号为11,如此,缓冲区中的视频帧不断刷新,其起始帧和结束帧号也不断被更新。如此,将源视频流中的部分视频片段缓存在缓冲区中,以供查看该部分视频片段或提取该视频片段的全部或部分视频。相比于相关技术中同时打开两路实时视频流的方式,本方案可以降低网络消耗,并且定制化高。
3)输入第二时长的待提取视频片段的起始帧号和/或起始时间戳信息(204)。其中,待提取视频片段的时长为第二时长。在一些实施例中,待提取视频片段的时长(即第二时长)大于缓冲区中缓存的视频片段的时长(即第一时长)。在一些实施例中,待提取视频片段的时长(即第二时长)小于或等于缓冲区中缓存的视频片段的时长(即第一时长)。在一些实施例中,待提取视频片段的起始帧号可以为f,则待提取视频片段的起始帧的时间戳信息为t2=t1+f*d,其中d为视频帧间隔。如此,以帧号或时间戳信息作为参考标志,便于查找。
4)判断第二时长的待提取视频片段的起始时间戳信息是否与缓冲区中第一时长的视频片段的其中一个视频帧对应的时间戳信息相同,获得判断结果(206)。其中,判断结果包括第一结果和第二结果。第一结果为:第二时长的待提取视频片段的起始时间戳信息与缓冲区中第一时长的视频片段的其中一个视频帧对应的时间戳信息相同,即待提取的视频片段的起始帧正在缓冲区中被缓存着。第二结果为:第二时长的待提取视频片段的起始时间戳信息与缓冲区中第一时长的视频片段的其中任意一个视频帧对应的时间戳信息均不相同,即待提取的视频片段的起始帧在缓存区中查找不到,有可能源视频流中待提取的视频片段还没开始缓存,也有可能待提取的视频片段已经在缓存中被新的视频片段刷新掉。
在一些实施例中,还可以判断第二时长的待提取视频片段的起始帧号是否与缓冲区中第一时长的视频片段的其中一个视频帧对应的帧号相同。第一结果为:第二时长的待提取视频片段的起始帧号与缓冲区中第一时长的视频片段的其中一个视频帧对应的帧号相同。第二结果为:第二时长的待提取视频片段的起始帧号与缓冲区中第一时长的视频片段的其中任意一个视频帧对应的帧号均不相同。基于时间戳信息或帧号进行判断,使得查找结果更加准确。
5)基于判断结果,输出第二时长的待提取视频片段的提取结果(208)。
在一些实施例中,在第一时长大于或等于第二时长的情况下,若判断结果为第一结果,则以缓冲区中时间戳信息与第二时长的待提取视频片段的起始时间戳信息相同的视频帧为基准,在缓冲区中向前查找与该视频帧相邻的起始关键帧,再以起始关键帧为基准间隔第二时长后向后查找结尾关键帧,输出起始关键帧和结尾关键帧信息,并且输出缓冲区中第一时长的视频片段的起始帧号和结尾帧号。例如,摄像机的缓冲区缓存的视频时长为5秒,待提取的视频片段的时长为1秒,待提取视频片段共有24帧视频帧,若待提取视频片段的第1帧的时间戳信息与缓冲区中的其中一帧(例如缓冲区中的第25帧)的时间戳信息相同,则以缓冲区中的第25帧为基准,向前查找到与第25帧最相近的关键帧(例如第24帧为关键帧)作为起始关键帧,则以该起始关键帧为基准间隔1秒后向后查找到下一个关键帧作为结尾关键帧(例如缓冲区中的第49帧),则可以将缓冲区中的第24帧至第49帧作为对应于待提取视频的提取结果返回,并且将缓冲区中当前的起始帧号和结尾帧号。可以理解,结尾关键帧和起始关键帧之间的时长间隔大于第二时长。
在本申请实施例中,在视频数据的编码过程中,可以将视频帧的标识设置为“00”,用于指示该视频帧为关键帧,将帧类型的标识设置为“01”,用于指示该视频帧为P帧,将帧类型的标识设置为“10”,用于指示该视频帧为B帧。本申请实施例还可以采用其他满足实际使用需求的标识来设置上述帧类型的标识,在此不再一一列举。
在一些实施例中,在第一时长大于或等于第二时长的情况下,若判断结果为第一结果,还可以以缓冲区中帧号与第二时长的待提取视频片段的起始帧号相同的视频帧为基准,在缓冲区中向前查找与该视频帧相邻的起始关键帧,再以起始关键帧为基准间隔第二时长后向后查找结尾关键帧,输出起始关键帧和结尾关键帧信息,并且输出缓冲区中第一时长的视频片段的起始帧号和结尾帧号。
在一些实施例中,在第一时长小于第二时长的情况下,若判断结果为第一结果,则以缓冲区中时间戳信息与第二时长的待提取视频片段的起始时间戳信息相同的视频帧为基准,在缓冲区中向前查找与该视频帧相邻的起始关键帧,再以起始关键帧为基准,向后查找缓冲区中的第一时长的视频片段的结尾关键帧,直至结尾关键帧与起始关键帧间隔时长大于第二时长为止,输出起始关键帧和结尾关键帧信息,并且输出缓冲区中第一时长的视频片段的起始帧号和结尾帧号。例如,摄像机的缓冲区缓存的视频时长为2秒,待提取的视频片段的时长为3秒,待提取视频片段共有72帧视频帧,若待提取视频的第1帧的时间戳信息与缓冲区中的其中一帧(例如缓冲区中的第2帧)的时间戳信息相同,则以缓冲区中的第2帧为基准,向前查找到与第2帧最相近的关键帧(例如第1帧为关键帧)作为起始关键帧,则以该起始关键帧为基准间隔3秒后向后查找到下一个关键帧作为结尾关键帧(其中,由于缓冲区中当前只能缓冲2秒时长的视频,则可以先找到缓冲区中当前的最后一个关键帧,再以该关键帧为基准,等待缓冲区刷新掉1秒的数据后再查找下一个关键帧,将该段视频返回)。并且将缓冲区中当前的起始帧号和结尾帧号。
在一些实施例中,在第一时长小于第二时长的情况下,若判断结果为第一结果,还可以以缓冲区中帧号与第二时长的待提取视频片段的起始帧号相同的视频帧为基准,在缓冲区中向前查找与该视频帧相邻的起始关键帧,再以起始关键帧为基准,向后查找缓冲区中的第一时长的视频片段的结尾关键帧,直至结尾关键帧与起始关键帧间隔时长大于第二时长为止,输出起始关键帧和结尾关键帧信息,并且输出缓冲区中第一时长的视频片段的起始帧号和结尾帧号。
若判断结果为第二结果,则输出表征第二时长的待提取视频片段提取失败的结果,并且输出缓冲区中第一时长的视频片段的起始帧号和结尾帧号。
可以理解,上述以摄像机为例对本申请基于缓存的视频帧提取方法进行的介绍仅仅是示例性的,并非限制性的,本申请实施例提供的基于缓存的视频帧提取方法还可以应用于具有录像功能的终端,例如手机、平板电脑、笔记本电脑等等。
图3根据本申请的一些实施例,示出了一种基于缓存的视频帧提取装置300的结构示意图。如图3所示,视频帧提取装置300包括:
源处理模块302,用于获取源视频流,并确定源视频流中视频帧的平均间隔,以及对应每个视频帧的帧号和/或时间戳信息。
缓存处理模块304,用于将源视频流中第一时长的视频片段缓存至缓冲区。
输入模块306,用于输入第二时长的待提取视频片段的起始帧号和/或起始时间戳信息。
判断模块308,用于判断第二时长的待提取视频片段的起始帧号是否与缓冲区中第一时长的视频片段的其中一个视频帧对应的帧号相同,和/或判断第二时长的待提取视频片段的起始时间戳信息是否与缓冲区中第一时长的视频片段的其中一个视频帧对应的时间戳信息相同,获得判断结果。
视频帧提取模块310,用于基于判断结果,输出第二时长的待提取视频片段的提取结果。
可以理解,图3所示的视频帧提取装置300与本申请基于缓存的视频帧提取方法相对应,以上关于本申请的基于缓存的视频帧提取方法的具体描述依然适用于图3所示的视频帧提取装置300,具体描述请参见上文,在此不再赘述。
图4所示为根据本申请的一些实施例的系统400的框图。图4示意性地示出了根据多个实施例的示例系统400。在一些实施例中,系统400可以包括一个或多个处理器404,与处理器404中的至少一个连接的系统控制逻辑408,与系统控制逻辑408连接的系统内存412,与系统控制逻辑408连接的非易失性存储器(NVM)416,以及与系统控制逻辑408连接的网络接口420。
在一些实施例中,处理器404可以包括一个或多个单核或多核处理器。在一些实施例中,处理器404可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。
在一些实施例中,系统控制逻辑408可以包括任意合适的接口控制器,以向处理器404中的至少一个和/或与系统控制逻辑408通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,系统控制逻辑408可以包括一个或多个存储器控制器,以提供连接到系统内存412的接口。系统内存412可以用于加载以及存储数据和/或指令。在一些实施例中系统400的内存1412可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。
NVM/存储器416可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM/存储器416可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard Disk Drive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(Digital Versatile Disc,数字通用光盘)驱动器中的至少一个。
NVM/存储器416可以包括安装系统400的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口420通过网络访问NVM/存储416。
特别地,系统内存412和NVM/存储器416可以分别包括:指令424的暂时副本和永久副本。指令424可以包括:由处理器404中的至少一个执行时导致系统400实施如图3-4所示的方法的指令。在一些实施例中,指令424、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑408,网络接口420和/或处理器404中。
网络接口420可以包括收发器,用于为系统400提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口420可以集成于系统400的其他组件。例如,网络接口420可以集成于处理器404,系统内存412,NVM/存储器416,和具有指令的固件设备(未示出)中的至少一种,当处理器404中的至少一个执行所述指令时,系统400实现如图2所示的视频帧提取方法。
网络接口420可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口420可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。
在一个实施例中,处理器404中的至少一个可以与用于系统控制逻辑408的一个或多个控制器的逻辑封装在一起,以形成系统封装(SiP)。在一个实施例中,处理器404中的至少一个可以与用于系统控制逻辑408的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(SoC)。
系统400可以进一步包括:输入/输出(I/O)设备432。I/O设备432可以包括用户界面,使得用户能够与系统400进行交互;外围组件接口的设计使得外围组件也能够与系统400交互。在一些实施例中,系统400还包括传感器,用于确定与系统400相关的环境条件和位置信息的至少一种。
根据本申请的实施例,图5示出了一种SoC(System on Chip,片上系统)500的框图。在图5中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图5中,SoC 500包括:互连单元550,其被耦合至应用处理器510;系统代理单元570;总线控制器单元580;集成存储器控制器单元540;一组或一个或多个协处理器520,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元530;直接存储器存取(DMA)单元560。在一个实施例中,协处理器520包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

Claims (10)

1.一种基于缓存的视频帧提取方法,其特征在于,包括:
获取源视频流,并确定所述源视频流中视频帧的平均间隔,以及对应每个所述视频帧的帧号和/或时间戳信息;
将所述源视频流中第一时长的视频片段缓存至缓冲区;
输入第二时长的待提取视频片段的起始帧号和/或起始时间戳信息;
判断所述第二时长的待提取视频片段的起始帧号是否与所述缓冲区中第一时长的所述视频片段的其中一个视频帧对应的帧号相同,和/或判断所述第二时长的待提取视频片段的起始时间戳信息是否与所述缓冲区中第一时长的所述视频片段的其中一个视频帧对应的时间戳信息相同,获得判断结果;
基于所述判断结果,输出所述第二时长的待提取视频片段的提取结果。
2.根据权利要求1所述的基于缓存的视频帧提取方法,其特征在于,所述判断结果包括第一结果和第二结果;所述第一结果为:所述第二时长的待提取视频片段的起始帧号与所述缓冲区中第一时长的视频片段的其中一个视频帧对应的帧号相同,和/或所述第二时长的待提取视频片段的起始时间戳信息与所述缓冲区中第一时长的视频片段的其中一个视频帧对应的时间戳信息相同;
所述第二结果为:所述第二时长的待提取视频片段的起始帧号与所述缓冲区中第一时长的视频片段的其中任意一个视频帧对应的帧号均不相同,并且所述第二时长的待提取视频片段的起始时间戳信息与所述缓冲区中第一时长的视频片段的其中任意一个视频帧对应的时间戳信息均不相同。
3.根据权利要求2所述的基于缓存的视频帧提取方法,其特征在于,若所述第一时长大于或等于所述第二时长,所述基于所述判断结果,输出所述第二时长的待提取视频片段的提取结果,包括:
若所述判断结果为所述第一结果,则以所述缓冲区中帧号和/或时间戳信息与所述第二时长的待提取视频片段的起始帧号和/或起始时间戳信息相同的视频帧为基准,在所述缓冲区中向前查找与该视频帧相邻的起始关键帧,再以所述起始关键帧为基准间隔第二时长后向后查找结尾关键帧,输出所述起始关键帧和所述结尾关键帧的信息,并且输出所述缓冲区中第一时长的视频片段的起始帧号和结尾帧号;
若所述判断结果为所述第二结果,则输出表征所述第二时长的待提取视频片段提取失败的结果,并且输出所述缓冲区中第一时长的视频片段的起始帧号和结尾帧号。
4.根据权利要求2所述的基于缓存的视频帧提取方法,其特征在于,若所述第一时长小于所述第二时长,所述基于所述判断结果,输出所述第二时长的待提取视频片段的提取结果,包括:
若所述判断结果为所述第一结果,则以所述缓冲区中帧号和/或时间戳信息与所述第二时长的待提取视频片段的起始帧号和/或起始时间戳信息相同的视频帧为基准,在所述缓冲区中向前查找与该视频帧相邻的起始关键帧,再以所述起始关键帧为基准,向后查找所述缓冲区中的第一时长的视频片段的结尾关键帧,直至所述结尾关键帧与所述起始关键帧的间隔时长大于第二时长为止,输出所述起始关键帧和所述结尾关键帧的信息,并且输出所述缓冲区中第一时长的视频片段的起始帧号和结尾帧号;
若所述判断结果为所述第二结果,则输出表征所述第二时长的待提取视频片段提取失败的结果,并且输出所述缓冲区中第一时长的视频片段的起始帧号和结尾帧号。
5.根据权利要求1至4任一项所述的基于缓存的视频帧提取方法,其特征在于,所述第一时长的视频片段被配置为以先进先出的方式缓存至所述缓冲区中。
6.根据权利要求3或4所述的基于缓存的视频帧提取方法,其特征在于,所述结尾关键帧和所述起始关键帧之间的时长间隔大于所述第二时长。
7.根据权利要求1所述的基于缓存的视频帧提取方法,其特征在于,所述源视频流采用h264或h265的编码格式。
8.一种基于缓存的视频帧提取装置,其特征在于,包括:
源处理模块,用于获取源视频流,并确定所述源视频流中视频帧的平均间隔,以及对应每个所述视频帧的帧号和/或时间戳信息;
缓存处理模块,用于将所述源视频流中第一时长的视频片段缓存至缓冲区;
输入模块,用于输入第二时长的待提取视频片段的起始帧号和/或起始时间戳信息;
判断模块,用于判断所述第二时长的待提取视频片段的起始帧号是否与所述缓冲区中第一时长的所述视频片段的其中一个视频帧对应的帧号相同,和/或判断所述第二时长的待提取视频片段的起始时间戳信息是否与所述缓冲区中第一时长的所述视频片段的其中一个视频帧对应的时间戳信息相同,获得判断结果;
视频帧提取模块,用于基于所述判断结果,输出所述第二时长的待提取视频片段的提取结果。
9.一种机器可读介质,其特征在于,所述机器可读介质上存储有指令,该指令在机器上执行时使机器执行权利要求1至7中任一项所述的基于缓存的视频帧提取方法。
10.一种系统,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行权利要求1至7中任一项所述的基于缓存的视频帧提取方法。
CN202010211175.2A 2020-03-24 2020-03-24 基于缓存的视频帧提取方法、装置、介质及系统 Pending CN111405358A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010211175.2A CN111405358A (zh) 2020-03-24 2020-03-24 基于缓存的视频帧提取方法、装置、介质及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010211175.2A CN111405358A (zh) 2020-03-24 2020-03-24 基于缓存的视频帧提取方法、装置、介质及系统

Publications (1)

Publication Number Publication Date
CN111405358A true CN111405358A (zh) 2020-07-10

Family

ID=71413549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010211175.2A Pending CN111405358A (zh) 2020-03-24 2020-03-24 基于缓存的视频帧提取方法、装置、介质及系统

Country Status (1)

Country Link
CN (1) CN111405358A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112203031A (zh) * 2020-08-12 2021-01-08 深圳市豪恩汽车电子装备股份有限公司 数字视频缓存系统及方法
CN112541472A (zh) * 2020-12-23 2021-03-23 北京百度网讯科技有限公司 一种目标检测方法、装置及电子设备
CN113163260A (zh) * 2021-03-09 2021-07-23 北京百度网讯科技有限公司 一种视频帧输出控制方法、装置及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108366294A (zh) * 2018-03-06 2018-08-03 广州市千钧网络科技有限公司 一种视频裁剪方法及装置
CN108632675A (zh) * 2018-04-09 2018-10-09 北京潘达互娱科技有限公司 一种直播回放方法、装置及设备
CN108632541A (zh) * 2017-03-20 2018-10-09 杭州海康威视数字技术股份有限公司 一种多视频片段合并方法及装置
US10142605B1 (en) * 2013-03-15 2018-11-27 Tribune Broadcasting, LLC Systems and methods for playing a video clip of an encoded video file
CN109756749A (zh) * 2017-11-07 2019-05-14 阿里巴巴集团控股有限公司 视频数据处理方法、装置、服务器和存储介质
CN110012251A (zh) * 2018-01-04 2019-07-12 腾讯科技(深圳)有限公司 视频录制方法、装置及可读存储介质
CN110324698A (zh) * 2018-03-28 2019-10-11 努比亚技术有限公司 一种视频录制方法、终端及计算机可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142605B1 (en) * 2013-03-15 2018-11-27 Tribune Broadcasting, LLC Systems and methods for playing a video clip of an encoded video file
CN108632541A (zh) * 2017-03-20 2018-10-09 杭州海康威视数字技术股份有限公司 一种多视频片段合并方法及装置
CN109756749A (zh) * 2017-11-07 2019-05-14 阿里巴巴集团控股有限公司 视频数据处理方法、装置、服务器和存储介质
CN110012251A (zh) * 2018-01-04 2019-07-12 腾讯科技(深圳)有限公司 视频录制方法、装置及可读存储介质
CN108366294A (zh) * 2018-03-06 2018-08-03 广州市千钧网络科技有限公司 一种视频裁剪方法及装置
CN110324698A (zh) * 2018-03-28 2019-10-11 努比亚技术有限公司 一种视频录制方法、终端及计算机可读存储介质
CN108632675A (zh) * 2018-04-09 2018-10-09 北京潘达互娱科技有限公司 一种直播回放方法、装置及设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112203031A (zh) * 2020-08-12 2021-01-08 深圳市豪恩汽车电子装备股份有限公司 数字视频缓存系统及方法
CN112541472A (zh) * 2020-12-23 2021-03-23 北京百度网讯科技有限公司 一种目标检测方法、装置及电子设备
CN112541472B (zh) * 2020-12-23 2023-11-24 北京百度网讯科技有限公司 一种目标检测方法、装置及电子设备
CN113163260A (zh) * 2021-03-09 2021-07-23 北京百度网讯科技有限公司 一种视频帧输出控制方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN111405358A (zh) 基于缓存的视频帧提取方法、装置、介质及系统
JP2014523712A (ja) カメラおよび背景の動きに基づく、参照フレームバッファの適応的設定
CN110830838A (zh) 一种安防高清录像倒播方法及装置
CN111343504B (zh) 视频处理方法、装置、计算机设备和存储介质
US7689047B2 (en) Reduced buffer size for JPEG encoding
TWI637631B (zh) 影像處理裝置、影視子系統與影視處理電路
CN105847825A (zh) 视频编码码流的编码、索引存储和访问方法及相应装置
CN111385576B (zh) 视频编码方法、装置、移动终端及存储介质
CN110572723A (zh) 一种缩略图生成的方法以及相关装置
US10536726B2 (en) Pixel patch collection for prediction in video coding system
CN111432213A (zh) 用于视频和图像压缩的自适应贴片数据大小编码
US20080056381A1 (en) Image compression and decompression with fast storage device accessing
TWI601075B (zh) 移動補償影像處理裝置與影像處理方法
KR101232523B1 (ko) 이미지 및 비디오 프로세싱을 위한 메모리 구성 방법 및제어기 구조
CN109302574B (zh) 一种处理视频流的方法和装置
CN113096218A (zh) 动态图像播放方法、装置、存储介质和计算机设备
US7715479B2 (en) Power-aware on-chip memory management for video coding algorithms
JP4870563B2 (ja) 携帯装置における画像処理方法及び装置
CN115866331A (zh) 视频抽帧分析方法、装置、设备及存储介质
TWI735297B (zh) 具有初始化片段之視訊及音訊之寫碼
CN113709574A (zh) 视频截图方法、装置、电子设备及计算机可读存储介质
CN107241601B (zh) 图像数据传输方法、装置及终端
WO2015153723A1 (en) A method and system for real-time cloud storage of video content
CN100539696C (zh) 一种使用基于双核dsp的视频编码装置的视频编码方法
CN114339249B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200710