CN111225268A - 一种视频数据的传输方法及终端 - Google Patents

一种视频数据的传输方法及终端 Download PDF

Info

Publication number
CN111225268A
CN111225268A CN201911221282.7A CN201911221282A CN111225268A CN 111225268 A CN111225268 A CN 111225268A CN 201911221282 A CN201911221282 A CN 201911221282A CN 111225268 A CN111225268 A CN 111225268A
Authority
CN
China
Prior art keywords
data
state
buffer queue
rate
retention
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
CN201911221282.7A
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.)
Autel Robotics Co Ltd
Shenzhen Autel Intelligent Aviation Technology Co Ltd
Original Assignee
Autel Robotics 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 Autel Robotics Co Ltd filed Critical Autel Robotics Co Ltd
Priority to CN201911221282.7A priority Critical patent/CN111225268A/zh
Publication of CN111225268A publication Critical patent/CN111225268A/zh
Priority to PCT/CN2020/130868 priority patent/WO2021109892A1/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/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/44004Processing 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 video buffer management, e.g. video decoder buffer or video display buffer
    • 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/440218Processing 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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明实施例涉及数据处理技术领域,尤其涉及一种视频数据的传输方法及终端。该方法包括:运行所述终端的编码线程和存储线程,其中,所述编码线程用于向缓冲队列中写入视频数据,所述存储线程用于将所述缓冲队列中的视频数据写入存储单元;检测所述缓冲队列中所述视频数据的数据状态;根据所述数据状态确定所述编码线程的工作模式,并在确定的所述编码线程的工作模式下传输所述视频数据。本发明实施方式能够避免缓冲队列出现数据溢出等问题,总体上提高了视频数据传输的稳定性和可靠性。

Description

一种视频数据的传输方法及终端
【技术领域】
本发明涉及数据处理技术领域,尤其涉及一种视频数据的传输方法及终端。
【背景技术】
SD卡是一种基于半导体闪存记忆体的数据存储设备,由于具备体积小,数据传输速度快等优势,其作为大容量存储设备被广泛使用。比如,SD卡用于存储高画质的视频数据。在使用过程中,如果待存储的数据码率过高,直接将数据存储至SD卡中时,容易出现丢数据,从而导致花屏等问题。
【发明内容】
本发明实施例提供了一种视频数据的传输方法及终端,能够解决SD卡存储数据时容易出现数据丢失的技术问题。
为解决上述技术问题,本发明实施例提供的第一个技术方案是:提供一种视频数据的传输方法,应用于终端,所述方法包括:
运行所述终端的编码线程和存储线程,其中,所述编码线程用于向缓冲队列中写入视频数据,所述存储线程用于将所述缓冲队列中的视频数据写入存储单元;
检测所述缓冲队列中所述视频数据的数据状态;
根据所述数据状态确定所述编码线程的工作模式,并在确定的所述编码线程的工作模式下传输所述视频数据。
可选地,所述检测所述缓冲队列中所述视频数据的数据状态,包括:
获取所述缓冲队列中所述视频数据的滞留率和涨跌状态;
根据所述滞留率和所述涨跌状态确定所述数据状态,其中,所述数据状态包括数据滞留状态、数据空窗状态以及数据流通状态。
可选地,所述根据所述滞留率和所述涨跌状态确定所述数据状态,包括:
当所述视频数据的滞留率大于第一预设阈值并且所述涨跌状态为上涨状态时,获取预设时间内的上涨次数,并根据所述滞留率和所述上涨次数确定所述数据状态是否为所述数据滞留状态;
当所述视频数据的滞留率小于第二预设阈值并且所述涨跌状态为非上涨状态时,获取预设时间内所述视频数据的滞留率,并根据所述预设时间内所述视频数据的滞留率确定所述数据状态是否为所述数据空窗状态;
当所述视频数据的数据状态不是所述数据滞留状态并且不是所述数据空窗状态时,确定所述视频数据的数据状态为所述数据流通状态。
可选地,所述根据所述滞留率和所述上涨次数确定所述数据状态是否为所述数据滞留状态,包括:
当所述滞留率和所述上涨次数满足以下预设条件中的任意一种时,则确定所述数据状态为数据滞留状态,否则,不是所述数据滞留状态;
其中,所述预设条件包括:
检测到所述缓冲队列中滞留数据超过90%,且所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过80%,且持续2次检测到所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过70%,且持续3次检测到所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过60%,且持续4次检测到所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过50%,且持续5次检测到所述缓冲队列中滞留数据正在上涨。
可选地,所述根据所述预设时间内所述视频数据的滞留率确定所述数据状态是否为所述数据空窗状态,包括:
当所述预设时间内检测到所述视频数据的滞留率均小于所述第二预设阈值时,则确定所述数据状态为数据空窗状态,否则,不是所述数据空窗状态。
可选地,所述根据所述数据状态确定所述编码线程的工作模式,包括:
当所述数据状态为数据滞留状态时,确定所述编码线程的工作模式为降码率模式;
当所述数据状态为数据空窗状态时,确定所述编码线程的工作模式为升码率模式。
可选地,所述降码率模式具体包括:
根据上一次的视频编码码率获取当前的视频编码码率,如果根据所述当前的视频编码码率传输视频数据时,所述数据状态仍为所述数据滞留状态,则继续根据所述上一次的视频编码码率获取当前的视频编码码率,直至所述数据状态不为所述数据滞留状态,其中,所述当前的视频编码码率为上一次的视频编码码率的M%,所述M为小于100的正数。
可选地,所述升码率模式具体包括:
根据上一次的视频编码码率获取当前的视频编码码率,如果根据所述当前的视频编码码率传输视频数据时,所述数据状态仍为所述数据空窗状态,则继续根据所述上一次的视频编码码率获取当前的视频编码码率,直至所述当前的视频编码码率为最大编码码率,其中,所述当前的视频编码码率为上一次的视频编码码率的N%,所述N为大于100的正数。
可选地,所述存储单元为SD卡。
为解决上述技术问题,本发明实施例提供的第二个技术方案是:提供一种终端,所述终端包括:SD卡;主控制器,与所述SD卡连接;其中,所述主控制器包括至少一个处理器;以及与所述至少一个处理器通信连接的缓存器;其中,所述缓存器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如上所述的视频数据的传输方法。
与现有技术相比较,本发明实施例提供的视频数据的传输方法和终端,通过同时运行编码线程和存储线程,将待写入存储单元的视频数据先写入缓冲队列,从缓冲队列中读取视频数据,再写入存储单元,而不直接将视频数据写入存储单元,从而能够降低视频数据丢失的概率,降低花屏等问题发生的概率。此外,在传输视频数据的过程中,还对缓冲队列的数据状态进行实时监测,根据缓冲队列的数据状态调整编码线程的工作模式,从而能够避免缓冲队列出现数据溢出等问题,总体上提高了视频数据传输的稳定性和可靠性。
【附图说明】
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为本发明实施例提供的一种视频数据的传输方法的流程图;
图2为本发明实施例提供的一种视频数据的传输方法中检测所述缓冲队列中所述视频数据的数据状态的方法的流程图;
图3为本发明实施例提供的一种视频数据的传输装置的结构示意图;
图4为本发明实施例提供的一种终端的结构示意图。
【具体实施方式】
为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。需要说明的是,当元件被表述“固定于”另一个元件,它可以直接在另一个元件上、或者其间可以存在一个或多个居中的元件。当一个元件被表述“连接”另一个元件,它可以是直接连接到另一个元件、或者其间可以存在一个或多个居中的元件。本说明书所使用的术语“上”、“下”、“内”、“外”、“底部”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本说明书中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
此外,下面所描述的本发明不同实施例中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明实施例通过编码线程获取编码单元提供的视频数据,并将该视频数据存储至缓冲队列中,通过存储线程从所述缓冲队列中读取所述视频数据,并存储至存储单元中。其中,编码线程和存储线程同时并行运行,所述编码线程在将该视频数据存储至缓冲队列后就释放其当前所占用的系统资源,继续从编码单元获取下一视频数据。所述存储线程在将该视频数据存储至存储单元后也释放其当前所占用的系统资源,继续从缓冲队列中读取下一视频数据。此外,在所述视频数据传输过程中,对所述缓冲队列的视频数据的数据状态进行实时监测,根据缓冲队列中视频数据的存储状态确定编码线程的工作模式,从而可以及时调整视频数据的传输速度,避免缓冲队列中数据溢出或者数据为空等异常情况。
基于上述原理,本发明实施例提供了一种视频数据的传输方法,该方法可以应用于终端,所述终端可以是无人机等其他包含SD卡的终端设备。如图1所示,所述方法:
S11、运行所述终端的编码线程和存储线程,其中,所述编码线程用于向缓冲队列中写入视频数据,所述存储线程用于将所述缓冲队列中的视频数据写入存储单元。
所述编码线程指的是用于将编码单元编辑的数据传输至缓冲队列的操作进程。所述编码单元具体可以是视频信号生成装置中集成的一编码模块,所述编码单元将图像数据转换成视频信号。所述数据具体可以是视频数据。所述存储线程指的是用于将缓冲队列中的数据写入存储单元的操作进程。所述存储单元具体可以是SD卡。所述缓冲队列可以是集成于所述视频信号生成装置中的高速缓存芯片。
在本实施例中,所述编码线程和所述存储线程同时并行运行。在工作过程中,所述编程线程从编码单元取视频数据送给缓冲队列,然后再继续回去从编码单元取视频数据。存储线程从缓冲队列中取视频数据,送给存储单元进行SD卡存储,存完后再继续回去从缓冲队列中取视频数据。
其中,当SD卡不出现波动、存储顺畅时,所述存储线程的数据传输速度通常会大于所述编码线程的数据传输速度。因此,当编码线程往所述缓冲队列中输入数据后,就会立即被所述存储线程调走该输入数据,由此,数据能够较快的从缓冲队列中读走,避免缓冲队列中产生数据滞留现象,与此同时,通过缓冲队列的数据缓冲作用,可以降低存储单元中数据溢出等问题的发生概率。
需要说明的是,上述传输的数据是视频数据,所述视频数据可以是基于H264、H265等编码标准编辑的视频。当然,在实际应用中,所述数据除了是视频数据之外还可以是其他数据,比如图片、音频等等。
当SD卡出现波动时,所述存储线程会容易出现阻塞,以至于存储线程传输的数据不能顺畅的写入存储单元。而编码线程不会受到影响,会继续往缓冲队列中传输视频数据,从而导致缓冲队列中滞留的数据越来越多,当滞留的数据超过预设阈值时,缓冲队列中的数据溢出,从而造成花屏现象发生。因此,对缓冲队列中存储的数据的数据状态进行实时监测,根据数据状态调整运行的进程具有重要意义。
S12、检测所述缓冲队列中所述视频数据的数据状态。
所述数据状态指的是所述视频数据在所述缓冲队列中的数据存储状态,包括数据存储量、数据大小、数据类型、数据的动态变化趋势(比如上涨或者下跌或者平稳)等等。当所述缓冲队列为集成于所述视频信号生成装置中的高速缓存芯片时,可以通过集成于所述视频信号生成装置中的控制器来检测所述缓冲队列中所述视频数据的数据状态。
具体地,请参阅图2,所述S12、检测所述缓冲队列中所述视频数据的数据状态包括:
S121、获取所述缓冲队列中所述视频数据的滞留率和涨跌状态;
S122、根据所述滞留率和所述涨跌状态确定所述数据状态,其中,所述数据状态包括数据滞留状态、数据空窗状态以及数据流通状态。
所述滞留率指的是当视频数据在所述缓冲队列中滞留时,所滞留的视频数据占所述缓冲队列能够存储的总视频数据的百分比。当所述视频数据在所述缓冲队列中停留的时间超过预设时间阈值时,则可以认为所述缓冲队列中出现了数据滞留现象。在出现数据滞留现象时,所述存储线程从缓冲队列读取数据的速度比编码线程向缓冲队列写入数据的速度慢。
所述涨跌状态指的是视频数据在所述缓冲队列中的动态变化趋势,可以以一个时间周期来检测所述涨跌状态,所述时间周期的大小可以由系统自定义设置。所述涨跌状态包括数据上涨状态和数据下跌状态。
在本实施例中,所述数据状态包括数据滞留状态、数据空窗状态和数据流通状态。所述数据滞留状态指的是第一预设时间内所述缓冲队列中的视频数据的数据存储量均大于第一预设阈值的状态。所述数据空窗状态指的是第二预设时间内所述缓冲队列中的视频数据的数据存储量均小于第二预设阈值的状态。当所述缓冲队列为数据空窗状态时,可以是所述缓冲队列中出现了数据等待的空窗时机,在该空窗时机所述缓冲队列中存储的视频数据可以为空。其中,所述第一预设时间和第二预设时间,以及所述第一预设阈值和所述第二预设阈值可以由系统自定义设置。通常在所述存储线程的数据传输速度明显小于所述编码线程的数据传输速度时会导致所述缓冲队列出现数据滞留状态,在存储线程的数据传输速度明显大于所述编码线程的数据传输速度时会导致所述缓冲队列中出现数据空窗状态。而当所述存储线程的数据传输速度与所述编码线程的数据传输速度相同或者二者的差异在预设范围内时,则所述缓冲队列为数据流通状态,即,在数据流通状态时所述缓冲队列不会发生数据滞留,也不会出现数据等待的空窗时机。
在本实施例中,所述根据所述滞留率和所述涨跌状态确定所述数据状态具体包括:
a、当所述视频数据的滞留率大于第一预设阈值并且所述涨跌状态为上涨状态时,获取预设时间内的上涨次数,并根据所述滞留率和所述上涨次数确定所述数据状态是否为所述数据滞留状态。
所述第一预设阈值可以根据经验由系统设置,所述第一预设阈值的大小可以与所述缓冲队列所能够最大存储的数据量大小相关,比如,所述第一预设阈值为总数据存储量的50%,等。所述上涨状态是指所述缓冲队列中滞留的数据为一个持续增长的状态。所述预设时间可以系统自定义设备,比如半分钟,1分钟等。所述上涨次数可以是预设时间内连续上涨的次数。
根据所述滞留率和所述上涨次数确定所述数据状态是否为数据滞留状态包括:当所述滞留率大于所述第一预设阈值,并且所述上涨次数满足预设时间内连续上涨预设次数,则确定所述数据状态为数据滞留状态。
在一些实施例中,当所述滞留率和所述上涨次数满足以下预设条件中的任意一种时,则确定所述数据状态为数据滞留状态,否则,不是所述数据滞留状态。
其中,所述预设条件包括:
检测到所述缓冲队列中滞留数据超过90%,且所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过80%,且持续2次检测到所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过70%,且持续3次检测到所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过60%,且持续4次检测到所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过50%,且持续5次检测到所述缓冲队列中滞留数据正在上涨。
b、当所述视频数据的滞留率小于第二预设阈值并且所述涨跌状态为非上涨状态时,获取预设时间内所述视频数据的滞留率,并根据所述预设时间内所述视频数据的滞留率确定所述数据状态是否为所述数据空窗状态。
所述第二预设阈值可以根据经验由系统设置,所述第二预设阈值的大小可以与所述缓冲队列所能够最大存储的数据量大小相关,比如,所述第二预设阈值为总数据存储量的10%,等。所述非上涨状态包括下降状态和不增不跌状态。
其中,所述根据所述预设时间内所述视频数据的滞留率确定所述数据状态是否为所述数据空窗状态,包括:当所述预设时间内检测到所述视频数据的滞留率均小于所述第二预设阈值时,则确定所述数据状态为数据空窗状态,否则,不是所述数据空窗状态。
比如,持续三分钟检测到所述缓冲队列中视频数据的滞留率都小于10%,则确定所述数据状态为数据空窗状态。
又比如,持续10次检测到所述缓冲队列中视频数据的滞留率都小于10%,则确定所述数据状态为数据空窗状态。
c、当所述视频数据的数据状态不是所述数据滞留状态并且不是所述数据空窗状态时,确定所述视频数据的数据状态为所述数据流通状态。
可以理解的是,当所述数据状态为数据滞留状态时,说明所述缓冲队列中存储的数据越来越多,可能会发生数据溢出问题。当所述数据状态为数据空窗状态时,说明所述缓冲队列中存储的数据越来越少,或者缓冲队列中滞留的数据长时间为空,由此说明存储单元存储速度够快,需要增大编码线程的数据传输速度,从而来提升数据存储的效率。当所述数据状态为数据流通状态时,说明当前数据传输的过程是合理的,能够满足存储单元的存储要求。
因此,本发明实施例下述步骤根据所述数据状态来进一步确定所述编码线程的工作模式,特别是在所述数据状态为数据滞留状态或者数据空窗状态时,调整所述编码线程的工作模式。
S13、根据所述数据状态确定所述编码线程的工作模式,并在确定的所述编码线程的工作模式下传输所述视频数据。
在本实施例中,所述编码线程的工作模式包括升码率模式和降码率模式,所述升码率模式指的是提高所述编码线程的数据编码率,所述降码率模式指的是降低所述编码线程的数据编码率。当所述数据状态为数据滞留状态时,确定所述编码线程的工作模式为降码率模式,即降低编码线程的数据传输速度。当所述数据状态为数据空窗状态时,确定所述编码线程的工作模式为升码率模式,即升高编码线程的数据传输速度。
所述降码率模式具体包括:根据上一次的视频编码码率获取当前的视频编码码率,如果根据所述当前的视频编码码率传输视频数据时,所述数据状态仍为所述数据滞留状态,则继续根据所述上一次的视频编码码率获取当前的视频编码码率,直至所述数据状态不为所述数据滞留状态,其中,所述当前的视频编码码率为上一次的视频编码码率的M%,所述M为小于100的正数。
例如,将当前的编码线程的视频编码率降低为上一次的80%,然后判断所述缓冲队列是否仍为数据滞留状态,若是,则继续降低所述编码线程的视频编码率,将所述编码线程的视频编码率降低为最近一次的80%,然后再判断在新的视频编码率下所述缓冲队列是否仍为数据滞留状态,如果是,则重复上述过程,直至调整后的所述视频编码率为最小视频编码率,或者直至所述数据状态不是数据滞留状态。其中,所述最小视频编码率可以是最高视频编码率的10%,比如,最高视频编码率为3Mbps(即每秒3M比特),降低为80%即是2.4Mbps,再降80%即是1.92Mbps,再降80%即是1.536Mbps,依次类推,最低可以降低到0.3Mbps。
所述升码率模式具体包括:根据上一次的视频编码码率获取当前的视频编码码率,如果根据所述当前的视频编码码率传输视频数据时,所述数据状态仍为所述数据空窗状态,则继续根据所述上一次的视频编码码率获取当前的视频编码码率,直至所述当前的视频编码码率为最大编码码率,其中,所述当前的视频编码码率为上一次的视频编码码率的N%,所述N为大于100的正数。
例如,当所述数据状态为数据空窗状态时,将所述编码线程的视频编码率提升为上一次的110%,然后判断所述缓冲队列的数据状态是否是数据空窗状态,如果是,则继续将所述视频编码率提升110%,直到所述数据状态不是数据空窗状态,或者所述视频编码率为最大编码率。
需要说明的是,上述升码率模式和降码率模式可以根据所述缓冲队列对应的数据状态来触发,所述编码线程可以是运行其中一种编码模式,也可以是在两种编码模式之间转换。此外,本发明实施例主要是根据缓冲队列的数据状态调整编码线程的工作模式,在其他一些实施例中,还可以调整所述存储线程的工作模式,或者同时调整所述编码线程和所述存储线程的工作模式。
下面以所述存储单元为SD卡来进行具体的举例说明。
例如,如果所述SD卡为高速卡,并且波动不大,则通过所述SD卡存储视频数据时不会触发上述降码率条件,视频数据可以以最高码率状态传输。如果所述SD卡为高速卡,并且波动较大,在SD卡波动阻塞时会触发上述降码率条件,在SD卡波动结束时会触发上述升码率条件,此时视频数据的传输可以以最高码率状态传输。如果所述SD卡为低速卡,存储线程速度较慢,会持续触发上述降码率条件,当视频编码率降低到存储线程的运转速度超过编码线程的速度时,所述缓冲队列中滞留的数据就会慢慢减少。如果所述缓冲队列中的数据长时间为空,则会触发上述升码率条件,通过几次降码调整和升码调整,视频编码率最终会维持在某一个值,编码线程和存储线程维持一个平衡,从而到达自适应SD卡存储速率的结果。
本发明实施例提供的视频数据的传输方法可以应用于录像过程中,比如无人机录像等。
通过上述升码率策略和降码率策略可以解决各种SD卡兼容性问题,以及SD卡存储波动性问题,并且还提供了低速卡存储方案。
本发明实施例提供了一种视频数据的传输方法,该方法通过同时运行编码线程和存储线程,将待写入存储单元的视频数据先写入缓冲队列,从缓冲队列中读取视频数据,再写入存储单元,而不直接将视频数据写入存储单元,从而能够降低视频数据丢失的概率,降低花屏等问题发生的概率。此外,在传输视频数据的过程中,还对缓冲队列的数据状态进行实时监测,根据缓冲队列的数据状态调整编码线程的工作模式,从而能够避免缓冲队列出现数据溢出、数据空窗等问题,总体上提高了视频数据传输的稳定性和可靠性。
如图3所示,本发明实施例提供了一种视频数据的传输装置20,所述装置20应用于终端,所述装置20包括:运行模块21、检测模块22以及处理模块23。
所述运行模块21,用于运行所述终端的编码线程和存储线程,其中,所述编码线程用于向缓冲队列中写入视频数据,所述存储线程用于将所述缓冲队列中的视频数据写入存储单元。所述检测模块22,用于检测所述缓冲队列中所述视频数据的数据状态。所述处理模块23,用于根据所述数据状态确定所述编码线程的工作模式,并在确定的所述编码线程的工作模式下传输所述视频数据。
其中,所述检测模块22包括第一获取单元221和第一处理单元222。所述第一获取单元221,用于获取所述缓冲队列中所述视频数据的滞留率和涨跌状态。所述第一处理单元222,用于根据所述滞留率和所述涨跌状态确定所述数据状态,其中,所述数据状态包括数据滞留状态、数据空窗状态以及数据流通状态。
其中,所述第一处理单元222具体用于:
当所述视频数据的滞留率大于第一预设阈值并且所述涨跌状态为上涨状态时,获取预设时间内的上涨次数,并根据所述滞留率和所述上涨次数确定所述数据状态是否为所述数据滞留状态;
当所述视频数据的滞留率小于第二预设阈值并且所述涨跌状态为非上涨状态时,获取预设时间内所述视频数据的滞留率,并根据所述预设时间内所述视频数据的滞留率确定所述数据状态是否为所述数据空窗状态;
当所述视频数据的数据状态不是所述数据滞留状态并且不是所述数据空窗状态时,确定所述视频数据的数据状态为所述数据流通状态。
其中,所述根据所述滞留率和所述上涨次数确定所述数据状态是否为所述数据滞留状态,包括:当所述滞留率和所述上涨次数满足以下预设条件中的任意一种时,则确定所述数据状态为数据滞留状态,否则,不是所述数据滞留状态。其中,所述预设条件包括:
检测到所述缓冲队列中滞留数据超过90%,且所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过80%,且持续2次检测到所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过70%,且持续3次检测到所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过60%,且持续4次检测到所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过50%,且持续5次检测到所述缓冲队列中滞留数据正在上涨。
其中,所述根据所述预设时间内所述视频数据的滞留率确定所述数据状态是否为所述数据空窗状态,包括:当所述预设时间内检测到所述视频数据的滞留率均小于所述第二预设阈值时,则确定所述数据状态为数据空窗状态,否则,不是所述数据空窗状态。
其中,所述处理模块23具体用于,当所述数据状态为数据滞留状态时,确定所述编码线程的工作模式为降码率模式;当所述数据状态为数据空窗状态时,确定所述编码线程的工作模式为升码率模式,并在确定的所述编码线程的工作模式下传输所述视频数据。
其中,所述降码率模式具体包括:根据上一次的视频编码码率获取当前的视频编码码率,如果根据所述当前的视频编码码率传输视频数据时,所述数据状态仍为所述数据滞留状态,则继续根据所述上一次的视频编码码率获取当前的视频编码码率,直至所述数据状态不为所述数据滞留状态,其中,所述当前的视频编码码率为上一次的视频编码码率的M%,所述M为小于100的正数。
所述升码率模式具体包括:根据上一次的视频编码码率获取当前的视频编码码率,如果根据所述当前的视频编码码率传输视频数据时,所述数据状态仍为所述数据空窗状态,则继续根据所述上一次的视频编码码率获取当前的视频编码码率,直至所述当前的视频编码码率为最大编码码率,其中,所述当前的视频编码码率为上一次的视频编码码率的N%,所述N为大于100的正数。
值得说明的是,上述装置内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
如图4所示,为本发明实施例提供的一种终端的结构示意图,该终端30的内部结构包括但不限于:处理器31和存储器32。存储器32包括编码线程321、缓冲队列322和存储线程323。其中,终端30内的处理器31和存储器32可以通过总线或其他方式连接,在本发明实施例所示的图4中以总线连接为例。
其中,处理器31是终端30的计算核心以及控制核心,其可以处理终端的各类数据,例如:处理器31可以控制所述编码线程321获取需要存储的视频数据,并将所述视频数据存储到缓冲队列322;再比如所述处理器31可以控制所述存储线程323从所述缓冲队列322读取视频数据并将该视频数据存储至SD卡中等等。
存储器32是所述终端30中的记忆设备,用于存放数据和程序。可以理解的是,所述存储器32既可以包括终端30的内置存储器,也可以包括终端30所支持的扩展存储器。在本发明实施例中,所述存储器32的存储空间还存储了编码线程321、缓冲队列322和存储线程323。
所述一个或者多个模块存储在所述存储器32中,当被所述一个或者多个处理器31执行时,执行上述任意方法实施例中的视频数据的传输方法,例如,执行图1所示的方法步骤S11至S13,图2所示的方法步骤S121至S122,实现图3中的模块21-23,单元221-222的功能。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本发明实施例的终端以多种形式存在,包括但不限于无人机等其他具有视频录像功能以及SD卡存储的设备。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件来实现。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种视频数据的传输方法,应用于终端,其特征在于,所述方法包括:
运行所述终端的编码线程和存储线程,其中,所述编码线程用于向缓冲队列中写入视频数据,所述存储线程用于将所述缓冲队列中的视频数据写入存储单元;
检测所述缓冲队列中所述视频数据的数据状态;
根据所述数据状态确定所述编码线程的工作模式,并在确定的所述编码线程的工作模式下传输所述视频数据。
2.根据权利要求1所述的方法,其特征在于,所述检测所述缓冲队列中所述视频数据的数据状态,包括:
获取所述缓冲队列中所述视频数据的滞留率和涨跌状态;
根据所述滞留率和所述涨跌状态确定所述数据状态,其中,所述数据状态包括数据滞留状态、数据空窗状态以及数据流通状态。
3.根据权利要求2所述的方法,其特征在于,所述根据所述滞留率和所述涨跌状态确定所述数据状态,包括:
当所述视频数据的滞留率大于第一预设阈值并且所述涨跌状态为上涨状态时,获取预设时间内的上涨次数,并根据所述滞留率和所述上涨次数确定所述数据状态是否为所述数据滞留状态;
当所述视频数据的滞留率小于第二预设阈值并且所述涨跌状态为非上涨状态时,获取预设时间内所述视频数据的滞留率,并根据所述预设时间内所述视频数据的滞留率确定所述数据状态是否为所述数据空窗状态;
当所述视频数据的数据状态不是所述数据滞留状态并且不是所述数据空窗状态时,确定所述视频数据的数据状态为所述数据流通状态。
4.根据权利要求3所述的方法,其特征在于,所述根据所述滞留率和所述上涨次数确定所述数据状态是否为所述数据滞留状态,包括:
当所述滞留率和所述上涨次数满足以下预设条件中的任意一种时,则确定所述数据状态为数据滞留状态,否则,不是所述数据滞留状态;
其中,所述预设条件包括:
检测到所述缓冲队列中滞留数据超过90%,且所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过80%,且持续2次检测到所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过70%,且持续3次检测到所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过60%,且持续4次检测到所述缓冲队列中滞留数据正在上涨;
检测到所述缓冲队列中滞留数据超过50%,且持续5次检测到所述缓冲队列中滞留数据正在上涨。
5.根据权利要求3所述的方法,其特征在于,所述根据所述预设时间内所述视频数据的滞留率确定所述数据状态是否为所述数据空窗状态,包括:
当所述预设时间内检测到所述视频数据的滞留率均小于所述第二预设阈值时,则确定所述数据状态为数据空窗状态,否则,不是所述数据空窗状态。
6.根据权利要求2至5任一项所述的方法,其特征在于,所述根据所述数据状态确定所述编码线程的工作模式,包括:
当所述数据状态为数据滞留状态时,确定所述编码线程的工作模式为降码率模式;
当所述数据状态为数据空窗状态时,确定所述编码线程的工作模式为升码率模式。
7.根据权利要求6所述的方法,其特征在于,所述降码率模式具体包括:
根据上一次的视频编码码率获取当前的视频编码码率,如果根据所述当前的视频编码码率传输视频数据时,所述数据状态仍为所述数据滞留状态,则继续根据所述上一次的视频编码码率获取当前的视频编码码率,直至所述数据状态不为所述数据滞留状态,其中,所述当前的视频编码码率为上一次的视频编码码率的M%,所述M为小于100的正数。
8.根据权利要求6所述的方法,其特征在于,所述升码率模式具体包括:
根据上一次的视频编码码率获取当前的视频编码码率,如果根据所述当前的视频编码码率传输视频数据时,所述数据状态仍为所述数据空窗状态,则继续根据所述上一次的视频编码码率获取当前的视频编码码率,直至所述当前的视频编码码率为最大编码码率,其中,所述当前的视频编码码率为上一次的视频编码码率的N%,所述N为大于100的正数。
9.根据权利要求1至5任一项所述的方法,其特征在于,所述存储单元为SD卡。
10.一种终端,其特征在于,所述终端包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至9任一项所述的方法。
CN201911221282.7A 2019-12-03 2019-12-03 一种视频数据的传输方法及终端 Pending CN111225268A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911221282.7A CN111225268A (zh) 2019-12-03 2019-12-03 一种视频数据的传输方法及终端
PCT/CN2020/130868 WO2021109892A1 (zh) 2019-12-03 2020-11-23 一种视频数据的传输方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911221282.7A CN111225268A (zh) 2019-12-03 2019-12-03 一种视频数据的传输方法及终端

Publications (1)

Publication Number Publication Date
CN111225268A true CN111225268A (zh) 2020-06-02

Family

ID=70827723

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911221282.7A Pending CN111225268A (zh) 2019-12-03 2019-12-03 一种视频数据的传输方法及终端

Country Status (2)

Country Link
CN (1) CN111225268A (zh)
WO (1) WO2021109892A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112822494A (zh) * 2020-12-30 2021-05-18 稿定(厦门)科技有限公司 双缓冲编码系统及其控制方法
WO2021109892A1 (zh) * 2019-12-03 2021-06-10 深圳市道通智能航空技术股份有限公司 一种视频数据的传输方法及终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761741A (zh) * 2012-06-26 2012-10-31 中国科学技术大学 基于编解码端缓存的视频编码码率控制系统和方法
CN104301648A (zh) * 2014-10-27 2015-01-21 厦门雅迅网络股份有限公司 一种sd卡保存视频时避免数据丢失的方法
US20160234078A1 (en) * 2015-02-11 2016-08-11 At&T Intellectual Property I, Lp Method and system for managing service quality according to network status predictions
CN106488176A (zh) * 2015-08-26 2017-03-08 重庆西线科技有限公司 一种视频传输装置
CN108495142A (zh) * 2018-04-11 2018-09-04 腾讯科技(深圳)有限公司 视频编码方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8406241B2 (en) * 2009-11-13 2013-03-26 At&T Intellectual Property I, L.P. Centralized broadband gateway for a wireless communication system
CN109429070A (zh) * 2017-08-23 2019-03-05 杭州海康威视系统技术有限公司 一种移动终端视频编码方法、装置及移动终端
CN108520569A (zh) * 2018-03-30 2018-09-11 深圳市华宝电子科技有限公司 视频数据的存储方法、装置、系统及存储介质
CN110121089A (zh) * 2019-06-10 2019-08-13 杭州米络星科技(集团)有限公司 一种rtmp直播码率自适应方法
CN111225268A (zh) * 2019-12-03 2020-06-02 深圳市道通智能航空技术有限公司 一种视频数据的传输方法及终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761741A (zh) * 2012-06-26 2012-10-31 中国科学技术大学 基于编解码端缓存的视频编码码率控制系统和方法
CN104301648A (zh) * 2014-10-27 2015-01-21 厦门雅迅网络股份有限公司 一种sd卡保存视频时避免数据丢失的方法
US20160234078A1 (en) * 2015-02-11 2016-08-11 At&T Intellectual Property I, Lp Method and system for managing service quality according to network status predictions
CN106488176A (zh) * 2015-08-26 2017-03-08 重庆西线科技有限公司 一种视频传输装置
CN108495142A (zh) * 2018-04-11 2018-09-04 腾讯科技(深圳)有限公司 视频编码方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021109892A1 (zh) * 2019-12-03 2021-06-10 深圳市道通智能航空技术股份有限公司 一种视频数据的传输方法及终端
CN112822494A (zh) * 2020-12-30 2021-05-18 稿定(厦门)科技有限公司 双缓冲编码系统及其控制方法

Also Published As

Publication number Publication date
WO2021109892A1 (zh) 2021-06-10

Similar Documents

Publication Publication Date Title
US9894001B2 (en) I/O circuit and data transmission control method
CN104160384B (zh) 用于动态优先级控制的系统和方法
US7457892B2 (en) Data communication flow control device and methods thereof
US8893146B2 (en) Method and system of an I/O stack for controlling flows of workload specific I/O requests
US8458409B2 (en) Access controller
US10990322B2 (en) Memory buffer chip, memory system and method of controlling the memory buffer chip
CN101794263B (zh) 存储器的访问方法和访问控制器
US20100082855A1 (en) Associating process priority with i/o queuing
CN111143257A (zh) Ddr仲裁控制器、视频缓存装置及视频处理系统
KR102516484B1 (ko) 데이터 전송 장치 및 데이터 전송 방법
CN111225268A (zh) 一种视频数据的传输方法及终端
US11010094B2 (en) Task management method and host for electronic storage device
US20070294448A1 (en) Information Processing Apparatus and Access Control Method Capable of High-Speed Data Access
CN110673798A (zh) 一种存储系统及其io落盘方法和装置
EP2709020B1 (en) System and method to arbitrate access to memory
CN114816748A (zh) 线程调度方法、装置、电子设备和存储介质
US7680992B1 (en) Read-modify-write memory with low latency for critical requests
CN115357377A (zh) 内存控制调度方法、装置、计算机设备及存储介质
EP1970815A1 (en) Data transfering apparatus and information processing system
CN110674064B (zh) 一种数据传输方法、装置、设备及计算机可读存储介质
KR20210134965A (ko) 데이터 전송 장치, 방법 및 판독 가능 저장매체
CN109032503B (zh) 一种固态硬盘数据迁移带宽的流控方法及装置
US20170371564A1 (en) Method and apparatus for memory efficiency improvement by providing burst memory access control
US20140379846A1 (en) Technique for coordinating memory access requests from clients in a mobile device
CN109491785B (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
CB02 Change of applicant information

Address after: 518055 Guangdong city of Shenzhen province Nanshan District Xili Street Xueyuan Road No. 1001 Chi Yuen Building 9 layer B1

Applicant after: Shenzhen daotong intelligent Aviation Technology Co.,Ltd.

Address before: 518055 Guangdong city of Shenzhen province Nanshan District Xili Street Xueyuan Road No. 1001 Chi Yuen Building 9 layer B1

Applicant before: AUTEL ROBOTICS Co.,Ltd.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20200602

RJ01 Rejection of invention patent application after publication