CN105898358B - 视频数据的发送方法及装置 - Google Patents
视频数据的发送方法及装置 Download PDFInfo
- Publication number
- CN105898358B CN105898358B CN201610219046.1A CN201610219046A CN105898358B CN 105898358 B CN105898358 B CN 105898358B CN 201610219046 A CN201610219046 A CN 201610219046A CN 105898358 B CN105898358 B CN 105898358B
- Authority
- CN
- China
- Prior art keywords
- frame
- acquisition
- difference
- temporal cache
- cache space
- 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
Classifications
-
- 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/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供一种视频数据的发送方法及装置,所述方法包括:获取参考I帧;针对每个数据帧组,计算所述参考I帧与所述数据帧组中的采集I帧的差值,并将所述差值与所述采集I帧存储在预先申请的临时缓存空间中;在需要从临时缓存空间中选取数据帧时,如果临时缓存空间中存在多个采集I帧,则利用每个采集I帧对应的差值,从临时缓存空间中选择一个采集I帧,读取该已选择的采集I帧到发送缓存队列中进行发送,并将临时缓存空间中的其它采集I帧丢弃。应用本申请实施例,前端设备通过将采集I帧的差值存储到临时缓存空间,在选取数据帧进行发送时,利用差值选取采集I帧进行发送,以确保终端设备播放的视频画面的实时性,并且不会遗漏重要视频画面。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种视频数据的发送方法及装置。
背景技术
随着监控系统的网络化发展,监控系统中的前端设备(比如IPC(IP Camera,网络摄像机)设备)的视频数据,在终端设备上被点播的机率越来越大。前端设备首先将采集的视频数据编码成若干个数据帧组,并将若干个数据帧组存储在发送缓存队列中,每个数据帧组由一个I帧和多个P帧组成。其中,I帧是关键帧,记录了一帧完整的视频画面,是数据帧组中最重要的数据帧,可以单独进行解码,P帧是非关键帧,是根据前一个数据帧得到的,需要参考前一个数据帧进行解码。然后前端设备将每个数据帧从发送缓存队列中发送到终端设备,终端设备对接收到的每个数据帧进行解码,并将视频画面呈现给用户。
然而,受网络稳定性和带宽不足的影响,终端设备容易出现视频画面不清晰,甚至出现视频画面花屏或卡顿的情况。在现有技术中,当网络带宽不足,出现拥堵时,前端设备的发送缓存队列中的数据帧不能及时发送出去,导致发送缓存队列溢出,前端设备会将所有溢出的数据帧全部丢弃。这样,前端设备在将所有溢出的数据帧丢弃的同时,势必会将溢出的关键帧(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帧,读取该已选择的采集I帧到发送缓存队列中进行发送,并将临时缓存空间中的其它采集I帧丢弃。
基于上述实现方式,在网络拥堵时,由于前端设备是通过将每个数据帧组中的采集I帧的差值存储在预先申请的临时缓存空间中,所述差值用于表示所述采集I帧与参考I帧的差异,差值越大表示所述采集I帧相对参考I帧的差异越大,也就是视频画面内容差异越大,所述采集I帧越重要。因此,在选取数据帧进行发送时,前端设备可以利用每个采集I帧对应的差值,选取一个采集I帧进行发送,以确保终端设备播放的视频画面的实时性,并尽可能使用户能够看到内容有变化的视频画面,不会遗漏任何重要视频画面。前端设备还会将其它的采集I帧丢弃,在确保终端设备播放的视频画面的实时性,不遗漏任何重要视频画面的前提下,实现减轻网络拥堵的目的。因此,前端设备通过有选择的发送一个采集I帧,并将临时缓存空间中的其它采集I帧丢弃,这样,可以有选择的丢弃采集I帧,并且丢弃的采集I帧对于终端设备的视频画面影响不大。而现有技术中,是发送缓存队列只要一溢出,就将所有溢出的采集I帧丢弃,这样,在网络拥堵时,前端设备丢弃的采集I帧是任意的,没有选择的,因此,丢弃的采集I帧可能是比较重要的,对于终端设备的视频画面影响比较大,而发送到终端设备的采集I帧的视频画面可能与之前的视频画面没有任何变化。
附图说明
图1为本申请根据一示例性实施例示出的一种视频数据的发送方法的实施例流程图;
图2为本申请根据一示例性实施例示出的一种临时缓存空间中差值最大的采集I帧不是最新采集I帧的示意图;
图3为本申请根据一示例性实施例示出的一种临时缓存空间中差值最大的采集I帧是最新采集I帧的示意图;
图4为本申请根据一示例性实施例示出的一种临时缓存空间中只存在一个采集I帧的示意图;
图5为本申请根据一示例性实施例示出的一种临时缓存空间中不存在采集I帧的示意图;
图6为本申请根据一示例性实施例示出的一种前端设备的硬件结构图;
图7为本申请根据一示例性实施例示出的一种视频数据的发送装置的实施例结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请实施例中,视频数据的发送方法可以应用于视频数据实时传输的应用场景中,例如视频监控、视频点播等。本申请的实施例以视频点播的应用场景为例进行说明。概括地讲,视频点播系统包括前端设备和终端设备。其中,所述前端设备用于采集视频数据,并通过网络向终端设备发送视频数据,可以是网络摄像机、接入模拟摄像机的编码器等;所述终端设备用于从前端设备获取视频数据,进行实时播放。前端设备可以使用如下网络将视频数据发送给终端设备:带宽网络、3G(3rd-generation,第三代移动通信技术)网络或者4G(4th-generation,第四代移动通信技术)网络等。然而,不断变化的网络环境对视频播放实时性的影响十分显著,因此,本申请实施例所提供的视频数据发送方法,目的在于在网络环境变坏(即网络带宽不足)的情况下,还能够保证视频播放的实时性,并且不会丢失重要的视频画面。
参见图1所示,为本申请根据一示例性实施例示出的一种视频数据的发送方法的实施例流程图,该实施例应用于前端设备上,在本申请实施例中,所述视频数据由若干个数据帧组组成,所述数据帧组包括一个采集I帧和多个P帧,其中,采集I帧是关键帧,记录了一帧完整的视频画面,是数据帧组中最重要的数据帧,可以单独进行解码,P帧是非关键帧(前向预测编码帧),记录了一个数据帧与前一个数据帧所不同的部分,需要根据前一个数据帧进行解码。当前端设备的发送缓存队列中需要发送的所有数据帧的大小超过预设阈值时,前端设备可以向内存申请预设大小的临时缓存空间,比如,假设前端设备的码率为2Mbps,如果需要将5秒的数据帧存储在临时缓存空间中,则可以申请5*2=10Mb的临时缓存空间。这样,利用临时缓存空间存储数据帧,可以避免发送缓存队列中的数据帧溢出。并且在发送缓存队列中的数据帧发送完之后,再从临时缓存空间中选取数据帧,并将选取的数据帧存储到发送缓存队列中进行发送。
该实施例包括以下步骤:
步骤101:获取参考I帧。
前端设备获取最后存储在发送缓存队列的采集I帧,作为初始的参考I帧,在后续过程中,可以对参考I帧进行调整,具体调整方式在后续说明。
在本申请实施例中,为了对I帧与参考I帧进行区分,将最后存储在发送缓存队列的I帧,或者后续进行调整时,将正要发送或已经发送的I帧称为参考I帧,而将已编码但未进入发送缓存队列的I帧称为采集I帧。在本质上,采集I帧与参考I帧二者之间没有任何区别,都是I帧,例如,针对某个I帧,当前端设备将I帧存储到临时缓存空间中时,该I帧可以作为采集I帧,当前端设备正要发送I帧时,该I帧可以作为参考I帧。
步骤102:针对每个数据帧组,计算所述参考I帧与所述数据帧组中的采集I帧的差值,并将所述差值与所述采集I帧存储在预先申请的临时缓存空间中。
前端设备首先将视频数据进行分组,通常情况下,前端设备的帧率可以是25fps,即每隔40毫秒得到一个数据帧,1秒得到25个数据帧,因此,前端设备通常可以将这1秒的数据帧(25个数据帧)作为一个数据帧组,即先编码一个记录了一帧完整的视频画面的采集I帧,随后的24个P帧只记录与前一个数据帧(采集I帧或P帧)所不同的部分,每个数据帧组中采集I帧是数据帧组的首帧,P帧按照顺序排在采集I帧之后。如表1所示,为一种示例性的数据帧组。
首帧 | P帧 |
采集I帧 | P1、P2……P23、P24 |
表1
其中,前端设备编码采集I帧可以采用帧内压缩算法,编码P帧可以采用帧间压缩算法,本申请实施例对于采集I帧和P帧的具体编码方式不进行限制,在此不再赘述。
针对计算所述参考I帧与所述数据帧组中的采集I帧的差值的过程,前端设备将参考I帧和采集I帧均进行预解码还原到编码前的图像,并将两者的图像进行差值计算,并将计算结果的绝对值作为差值;前端设备也可以在采集I帧编码之前,将参考I帧进行预解码还原为图像之后,再与编码之前的采集I帧的图像进行差值计算,并将计算结果的绝对值作为差值。通常情况下,当监控场景相对静止没有变化时,参考I帧与采集I帧之间没有明显差异,差值很小,而当在监控场景中出现异常物体运动时,参考I帧与采集I帧之间会有明显差异,差值增大。因此,该差值越大,表示该采集I帧相对参考I帧的差异越大,也就是视频画面内容差异越大,该采集I帧越重要。
其中,所述差值用于表示该采集I帧与参考I帧的差异,采集I帧是数据帧组中最重要的数据帧。并且,前端设备在获取到采集I帧与参考I帧之间的差值之后,将该差值以及该差值对应的采集I帧一并存储到临时缓存空间中。
步骤102是在发送缓存队列中的数据帧不能及时发送出去时执行的过程,在发送缓存队列中的数据帧发送完成之后,需要从临时缓存空间中选取数据帧时,执行步骤103。
步骤103:在需要从所述临时缓存空间中选取数据帧时,如果所述临时缓存空间中存在多个采集I帧,则利用每个采集I帧对应的差值,从所述临时缓存空间中选择一个采集I帧,读取该已选择的采集I帧到发送缓存队列中进行发送,并将所述临时缓存空间中的其它采集I帧丢弃。
当发送缓存队列中的数据帧发送完成之后,前端设备开始从临时缓存空间中选取数据帧,如果临时缓存空间中存在多个采集I帧,前端设备则利用每个采集I帧对应的差值,从所述临时缓存空间中选择一个采集I帧读取到发送缓存队列中进行发送,并将其它采集I帧丢弃。
其中,针对利用每个采集I帧对应的差值,从所述临时缓存空间中选择一个采集I帧读取到发送缓存队列中进行发送,并将其它采集I帧丢弃的过程,前端设备可以利用每个采集I帧对应的差值,确定差值最大的采集I帧,并将所述差值最大的采集I帧读取到发送缓存队列中进行发送,并将所述临时缓存空间中所述差值最大的采集I帧之外的其它采集I帧丢弃。
其中,如步骤102所述,差值最大表示该采集I帧相对参考I帧的差异最大,也就是说,该差值对应的采集I帧的视频画面内容,相对之前已经发送或正要发送的视频画面内容差异最大,该采集I帧很重要,而其它较小差值对应的采集I帧的视频画面,相对之前已经发送或正要发送的视频画面内容变化较小,因此,为了保证发送视频数据的实时性,并尽可能使用户能够看到内容有变化的视频画面,不会遗漏任何重要视频画面,前端设备从临时缓存空间中存储的所有数据帧组中选取差值最大的采集I帧进行发送,以确保终端设备播放的视频画面的实时性。若临时缓存空间中存在两个差值最大的采集I帧,可以选取最新存储在临时缓存空间中的采集I帧进行发送,因为最新存储的采集I帧表示视频画面是最新的,更具有实时性。
此外,前端设备将差值最大的采集I帧读取到发送缓存队列中进行发送之后,临时缓存空间中剩下的其它采集I帧的差值,由于都是基于之前的参考I帧计算得到的,在选取差值最大的采集I帧进行发送后,前端设备就要调整参考I帧,因此,前端设备将差值最大的采集I帧读取到发送缓存队列中进行发送之后,临时缓存空间中再存储进来的采集I帧的差值,是根据新的参考I帧得到的,而临时缓存空间中剩下的根据旧的参考I帧得到的差值对应的采集I帧已经过期,从而可以将其它采集I帧丢弃,以减轻网络拥堵。
需要说明的是,前端设备在将差值与采集I帧存储在临时缓存空间中之后,还将P帧对应采集I帧存储到临时缓存空间中,因此,若差值最大的采集I帧不是临时缓存空间中的最新采集I帧,则将临时缓存空间中的所有P帧丢弃;若差值最大的采集I帧是最新采集I帧,则将差值最大的采集I帧之前的所有P帧丢弃,并将差值最大的采集I帧之后的P帧保留在临时缓存空间中。
其中,最新采集I帧指的是最后存储到临时缓存空间中的采集I帧,即在临时缓存空间中排在最后面的采集I帧,也即刚刚存储到临时缓存空间中的采集I帧。由于P帧是非关键帧,在数据帧组中是根据前一个数据帧得到的,需要参考前一数据帧进行解码,如果该数据帧组中的采集I帧过期,那么该数据帧组中的采集I帧之后的所有P帧也过期。因此,若差值最大的采集I帧不是最新采集I帧,由于临时缓存空间中剩下的其它采集I帧已经过期,那么临时缓存空间中的所有P帧也已经过期(包括差值最大的采集I帧对应的数据帧组中的P帧),因此,前端设备可以将其丢弃,以减轻网络拥堵。如图2所示,为临时缓存空间中差值最大的采集I帧不是最新采集I帧的示意图。若差值最大的采集I帧是最新采集I帧,由于差值最大的采集I帧之后的P帧是根据该差值最大的采集I帧(或者差值最大的采集I帧之后的P帧)得到的,并且差值最大的采集I帧(正在发送的采集I帧)之后的P帧是最新存储到临时缓存空间中的,因此,差值最大的采集I帧之后的P帧还没有过期,可以将其保留在临时缓存空间中,如果网络不拥堵,差值最大的采集I帧很快发送出去,并且临时缓存空间中还没有新的采集I帧存储进来,那么就可以选取保留下来的P帧进行发送。而差值最大的采集I帧之前的所有P帧已经过期,可以将其丢弃,以减轻网络拥堵。如图3所示,为临时缓存空间中差值最大的采集I帧是最新采集I帧的示意图。
进一步地,前端设备在将选取的差值最大的采集I帧存储到发送缓存队列中进行发送时,可以调整当前的参考I帧,即将该差值最大的采集I帧作为新的参考I帧,以确保参考I帧一直是正要发送或者已经发送的采集I帧。
上面是临时缓存空间中存在多个采集I帧的情况的处理过程,下面结合具体的例子,对临时缓存空间中存在一个采集I帧、不存在采集I帧、以及只存在一个数据帧(采集I帧或P帧)进行说明:
情况一、临时缓存空间中存在一个采集I帧:
在前端设备需要从临时缓存空间中选取数据帧时,如果临时缓存空间中只存在一个采集I帧,则将该采集I帧读取到发送缓存队列中进行发送,并将该采集I帧之前的P帧丢弃,并将该采集I帧之后的P帧保留在临时缓存空间中,并将该采集I帧作为新的参考I帧,以确保参考I帧一直是正要发送或者已经发送的采集I帧。
其中,由于采集I帧是关键帧,是视频数据组中最重要的数据帧,因此前端设备会优先读取该采集I帧进行发送,以保证视频数据的实时性,并尽可能使用户能够看到内容有变化的视频画面,不会遗漏任何重要视频画面。此外,由于该采集I帧之后的P帧是根据该采集I帧(或者该采集I帧之后的P帧)得到的,并且也是最新存储到临时缓存空间中的,因此,该采集I帧之后的P帧没有过期,可以将其保留在临时缓存空间中,当网络不拥堵,临时缓存空间中还没有新的采集I帧存储进来时,就可以选取保留下来的P帧进行发送。而该采集I帧之前的所有P帧已经过期,可以将其丢弃,以减轻网络拥堵,如图4所示,为临时缓存空间中只存在一个采集I帧的示意图。
情况二、临时缓存空间中不存在采集I帧:
在前端设备需要从临时缓存空间中选取数据帧时,如果临时缓存空间中不存在采集I帧,则将最早存储到临时缓存空间中的P帧读取到发送缓存队列中进行发送,并将其他P帧保留在临时缓存空间中,并保持参考I帧不变,以确保参考I帧一直是正要发送或者已经发送的采集I帧。
其中,由于P帧是根据前一个数据帧(可能是采集I帧,也可能是P帧)得到的,因此前端设备需要读取最早存储到临时缓存空间中的P帧(即在临时缓存空间中排在最前面的P帧)进行发送,以避免终端设备出现视频画面花屏的问题。又由于临时缓存空间中只存在P帧,不存在采集I帧,表示网络环境渐渐变好,数据帧的发送速度越来越快,前端设备采集的视频数据编码之后的数据帧存储到临时缓存空间之后,很快就能被读取并发送出去,因此,可以将其他P帧保留在临时缓存空间中,以供后续读取发送。如图5所示,为临时缓存空间中不存在采集I帧的示意图。
情况三、临时缓存空间中只存在一个数据帧(采集I帧或P帧):
在前端设备需要从临时缓存空间中选取数据帧时,如果临时缓存空间中只存在一个数据帧(采集I帧或P帧),则表示网络环境已经变好,数据帧的发送速度与存储数据帧到临时缓存空间中的速度保持同步,此时,前端设备可以释放临时缓存空间,只利用发送缓存队列发送数据帧。
由上述实施例所述,在网络拥堵时,前端设备首先获取参考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帧的视频画面可能与之前的视频画面没有任何变化。
与前述视频数据的发送方法的实施例相对应,本申请还提供了视频数据的发送装置的实施例。
本申请视频数据的发送装置的实施例可以应用在前端设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请视频数据的发送装置所在设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
参见图7所示,为本申请根据一示例性实施例示出的一种视频数据的发送装置的实施例结构图,该实施例应用于前端设备上,所述视频数据由若干个数据帧组组成,所述数据帧组包括采集I帧,所述装置包括:获取单元710、差值计算单元720、存储单元730、选择处理单元740。
其中,所述获取单元710,用于获取参考I帧;
所述差值计算单元720,用于针对每个数据帧组,计算所述参考I帧与所述数据帧组中的采集I帧的差值;
所述存储单元730,用于将所述差值与所述采集I帧存储在预先申请的临时缓存空间中;
所述选择处理单元740,用于在需要从所述临时缓存空间中选取数据帧时,如果所述临时缓存空间中存在多个采集I帧,则利用每个采集I帧对应的差值,从所述临时缓存空间中选择一个采集I帧,读取该已选择的采集I帧到发送缓存队列中进行发送,并将所述临时缓存空间中的其它采集I帧丢弃。
在一个可选的实现方式中,所述选择处理单元740,具体用于利用每个采集I帧对应的差值,确定差值最大的采集I帧,并将所述差值最大的采集I帧读取到发送缓存队列中进行发送,并将所述临时缓存空间中所述差值最大的采集I帧之外的其它采集I帧丢弃。
在另一个可选的实现方式中,针对每个数据帧组,所述数据帧组还包括P帧,所述存储单元730,还用于在将所述差值与所述采集I帧存储在预先申请的临时缓存空间中时,将所述P帧存储到所述临时缓存空间中;
所述选择处理单元740,还用于若所述差值最大的采集I帧不是所述临时缓存空间中的最新采集I帧,则将所述临时缓存空间中的所有P帧丢弃;其中,所述最新采集I帧指的是最后存储到所述临时缓存空间中的采集I帧;若所述差值最大的采集I帧是所述临时缓存空间中的最新采集I帧,则将所述差值最大的采集I帧之前的所有P帧丢弃,并将所述差值最大的采集I帧之后的P帧保留在所述临时缓存空间中;
所述获取单元710,还用于将所述差值最大的采集I帧作为新的参考I帧。
在另一个可选的实现方式中,针对每个数据帧组,所述数据帧组还包括P帧,所述存储单元730,还用于在将所述差值与所述采集I帧存储在预先申请的临时缓存空间中时,将所述P帧存储到所述临时缓存空间中;
所述选择处理单元740,还用于在需要从所述临时缓存空间中选取数据帧时,如果所述临时缓存空间中只存在一个采集I帧,则将所述采集I帧读取到发送缓存队列中进行发送,并将所述采集I帧之前的P帧丢弃,并将所述采集I帧之后的P帧保留在所述临时缓存空间中;所述获取单元,还用于将所述采集I帧作为新的参考I帧;
或者,所述选择处理单元740,还用于如果所述临时缓存空间中不存在采集I帧,则将最早存储到所述临时缓存空间中的P帧读取到发送缓存队列中进行发送,并将其他P帧保留在所述临时缓存空间中,并保持参考I帧不变。
在另一个可选的实现方式中,所述装置还包括(图7中未示出):
申请单元,用于在所述获取单元710获取参考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帧的视频画面可能与之前的视频画面没有任何变化。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种视频数据的发送方法,其特征在于,所述方法应用于前端设备上,所述视频数据由若干个数据帧组组成,所述数据帧组包括采集I帧,所述方法包括:
获取参考I帧;
针对每个数据帧组,计算所述参考I帧与所述数据帧组中的采集I帧的差值,并将所述差值与所述采集I帧存储在预先申请的临时缓存空间中;
在需要从所述临时缓存空间中选取数据帧时,如果所述临时缓存空间中存在多个采集I帧,则从所述临时缓存空间中选择差值最大的采集I帧,读取该已选择的采集I帧到发送缓存队列中进行发送,并将所述临时缓存空间中的其它采集I帧丢弃;
其中,计算所述参考I帧与所述数据帧组中的采集I帧的差值包括:
对所述参考I帧和所述采集I帧均进行预解码还原到编码前的图像,并将两者的图像进行差值计算,获得计算结果的绝对值作为差值;或者,
在对所述采集I帧编码前,将所述参考I帧进行预解码还原为图像并与编码之前的所述采集I帧的图像进行差值计算,并将计算结果的绝对值作为差值。
2.根据权利要求1所述的方法,其特征在于,所述利用每个采集I帧对应的差值,从所述临时缓存空间中选择一个采集I帧,读取该已选择的采集I帧到发送缓存队列中进行发送,并将所述临时缓存空间中的其它采集I帧丢弃,包括:
利用每个采集I帧对应的差值,确定差值最大的采集I帧,并将所述差值最大的采集I帧读取到发送缓存队列中进行发送,并将所述临时缓存空间中所述差值最大的采集I帧之外的其它采集I帧丢弃。
3.根据权利要求1或2所述的方法,其特征在于,
针对每个数据帧组,所述数据帧组还包括P帧,在将所述差值与所述采集I帧存储在预先申请的临时缓存空间中时,将所述P帧存储到所述临时缓存空间中;
若所述差值最大的采集I帧不是所述临时缓存空间中的最新采集I帧,则将所述临时缓存空间中的所有P帧丢弃;其中,所述最新采集I帧指的是最后存储到所述临时缓存空间中的采集I帧;
若所述差值最大的采集I帧是所述临时缓存空间中的最新采集I帧,则将所述差值最大的采集I帧之前的所有P帧丢弃,并将所述差值最大的采集I帧之后的P帧保留在所述临时缓存空间中;
将所述差值最大的采集I帧作为新的参考I帧。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对每个数据帧组,所述数据帧组还包括P帧,在将所述差值与所述采集I帧存储在预先申请的临时缓存空间时,将所述P帧存储到所述临时缓存空间中;
在需要从所述临时缓存空间中选取数据帧时,如果所述临时缓存空间中只存在一个采集I帧,则将所述采集I帧读取到发送缓存队列中进行发送,并将所述采集I帧之前的P帧丢弃,并将所述采集I帧之后的P帧保留在所述临时缓存空间中,并将所述采集I帧作为新的参考I帧;或者,如果所述临时缓存空间中不存在采集I帧,则将最早存储到所述临时缓存空间中的P帧读取到发送缓存队列中进行发送,并将其他P帧保留在所述临时缓存空间中,并保持参考I帧不变。
5.根据权利要求1所述的方法,其特征在于,所述获取参考I帧之前,还包括:
在发送缓存队列中需要发送的所有数据帧的大小超过预设阈值时,申请预设大小的临时缓存空间;其中,所述发送缓存队列用于存储需要发送的数据帧,在所述发送缓存队列中的数据帧发送完之后,从所述临时缓存空间中选取数据帧,并将选取的数据帧存储到发送缓存队列中进行发送。
6.一种视频数据的发送装置,其特征在于,所述装置应用于前端设备上,所述视频数据由若干个数据帧组组成,所述数据帧组包括采集I帧,所述装置包括:
获取单元,用于获取参考I帧;
差值计算单元,用于针对每个数据帧组,计算所述参考I帧与所述数据帧组中的采集I帧的差值;
存储单元,用于将所述差值与所述采集I帧存储在预先申请的临时缓存空间中;
选择处理单元,用于在需要从所述临时缓存空间中选取数据帧时,如果所述临时缓存空间中存在多个采集I帧,则从所述临时缓存空间中选择一个差值最大的采集I帧,读取该已选择的采集I帧到发送缓存队列中进行发送,并将所述临时缓存空间中的其它采集I帧丢弃;
其中,所述差值计算单元,具体用于对所述参考I帧和所述采集I帧均进行预解码还原到编码前的图像,并将两者的图像进行差值计算,获得计算结果的绝对值作为差值;或者,在对所述采集I帧编码前,将所述参考I帧进行预解码还原为图像并与编码之前的所述采集I帧的图像进行差值计算,并将计算结果的绝对值作为差值。
7.根据权利要求6所述的装置,其特征在于,所述选择处理单元,具体用于利用每个采集I帧对应的差值,确定差值最大的采集I帧,并将所述差值最大的采集I帧读取到发送缓存队列中进行发送,并将所述临时缓存空间中所述差值最大的采集I帧之外的其它采集I帧丢弃。
8.根据权利要求6或7所述的装置,其特征在于,针对每个数据帧组,所述数据帧组还包括P帧,所述存储单元,还用于在将所述差值与所述采集I帧存储在预先申请的临时缓存空间中时,将所述P帧存储到所述临时缓存空间中;
所述选择处理单元,还用于若所述差值最大的采集I帧不是所述临时缓存空间中的最新采集I帧,则将所述临时缓存空间中的所有P帧丢弃;其中,所述最新采集I帧指的是最后存储到所述临时缓存空间中的采集I帧;若所述差值最大的采集I帧是所述临时缓存空间中的最新采集I帧,则将所述差值最大的采集I帧之前的所有P帧丢弃,并将所述差值最大的采集I帧之后的P帧保留在所述临时缓存空间中;
所述获取单元,还用于将所述差值最大的采集I帧作为新的参考I帧。
9.根据权利要求6所述的装置,其特征在于,针对每个数据帧组,所述数据帧组还包括P帧,所述存储单元,还用于在将所述差值与所述采集I帧存储在预先申请的临时缓存空间中时,将所述P帧存储到所述临时缓存空间中;
所述选择处理单元,还用于在需要从所述临时缓存空间中选取数据帧时,如果所述临时缓存空间中只存在一个采集I帧,则将所述采集I帧读取到发送缓存队列中进行发送,并将所述采集I帧之前的P帧丢弃,并将所述采集I帧之后的P帧保留在所述临时缓存空间中;所述获取单元,还用于将所述采集I帧作为新的参考I帧;
或者,所述选择处理单元,还用于如果所述临时缓存空间中不存在采集I帧,则将最早存储到所述临时缓存空间中的P帧读取到发送缓存队列中进行发送,并将其他P帧保留在所述临时缓存空间中,并保持参考I帧不变。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
申请单元,用于在所述获取单元获取参考I帧之前,在发送缓存队列中需要发送的所有数据帧的大小超过预设阈值时,申请预设大小的临时缓存空间;其中,所述发送缓存队列用于存储需要发送的数据帧,在所述发送缓存队列中的数据帧发送完之后,从所述临时缓存空间中选取数据帧,并将选取的数据帧存储到发送缓存队列中进行发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610219046.1A CN105898358B (zh) | 2016-04-08 | 2016-04-08 | 视频数据的发送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610219046.1A CN105898358B (zh) | 2016-04-08 | 2016-04-08 | 视频数据的发送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105898358A CN105898358A (zh) | 2016-08-24 |
CN105898358B true CN105898358B (zh) | 2019-03-12 |
Family
ID=57012802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610219046.1A Active CN105898358B (zh) | 2016-04-08 | 2016-04-08 | 视频数据的发送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105898358B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106454432B (zh) * | 2016-10-18 | 2019-09-17 | 浙江大华技术股份有限公司 | 一种视频帧处理方法和装置 |
WO2018072675A1 (en) | 2016-10-18 | 2018-04-26 | Zhejiang Dahua Technology Co., Ltd. | Methods and systems for video processing |
CN107027052B (zh) * | 2017-02-28 | 2019-11-08 | 青岛富视安智能科技有限公司 | Svc视频自适应降帧率的方法及系统 |
CN113472680A (zh) * | 2020-03-31 | 2021-10-01 | 华为技术有限公司 | 丢包处理方法、装置、通信装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060624A (zh) * | 2007-05-08 | 2007-10-24 | 杭州华三通信技术有限公司 | 视频数据的处理方法及存储设备 |
CN102006476A (zh) * | 2010-11-19 | 2011-04-06 | 厦门雅迅网络股份有限公司 | 一种传输和接收实时视频数据的优化处理方法 |
CN103152576A (zh) * | 2013-03-21 | 2013-06-12 | 浙江宇视科技有限公司 | 一种适用于组播抗丢包的视频编码及解码装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8107015B1 (en) * | 1996-06-07 | 2012-01-31 | Virage, Incorporated | Key frame selection |
-
2016
- 2016-04-08 CN CN201610219046.1A patent/CN105898358B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060624A (zh) * | 2007-05-08 | 2007-10-24 | 杭州华三通信技术有限公司 | 视频数据的处理方法及存储设备 |
CN102006476A (zh) * | 2010-11-19 | 2011-04-06 | 厦门雅迅网络股份有限公司 | 一种传输和接收实时视频数据的优化处理方法 |
CN103152576A (zh) * | 2013-03-21 | 2013-06-12 | 浙江宇视科技有限公司 | 一种适用于组播抗丢包的视频编码及解码装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105898358A (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104735470B (zh) | 一种流媒体数据传输方法及装置 | |
CN108965883B (zh) | 使用虚拟帧内帧对视频内容进行编码的系统和方法 | |
KR101414435B1 (ko) | 비디오 스트림 품질 평가 방법 및 장치 | |
KR101627399B1 (ko) | 카메라와 배경 모션에 기반한 기준 프레임 버퍼의 적응적 구성 | |
WO2016131223A1 (zh) | 一种视频帧丢帧方法及视频发送装置 | |
CN105898358B (zh) | 视频数据的发送方法及装置 | |
CN108024126A (zh) | 网络直播视频调整方法、装置、电子设备和存储介质 | |
CN110267100B (zh) | Flv视频的码率切换方法、装置、电子设备及存储介质 | |
Yuan et al. | Spatial and temporal consistency-aware dynamic adaptive streaming for 360-degree videos | |
CN111372145B (zh) | 一种多视点视频的视点切换方法和系统 | |
CN107493482B (zh) | 一种视频回放方法及装置 | |
TWI511529B (zh) | 基於圖框相似性及視覺品質及興趣之圖框編碼選擇 | |
US20170094294A1 (en) | Video encoding and decoding with back channel message management | |
EP2612495A1 (en) | Adaptive streaming of video at different quality levels | |
KR100592547B1 (ko) | 스트리밍을 위한 패킷 스케줄링 방법 | |
CN101917613A (zh) | 一种流媒体采集编码服务系统 | |
US10506257B2 (en) | Method and system of video processing with back channel message management | |
EP1187460A2 (en) | Image transmitting method and apparatus and image receiving method and apparatus | |
KR20140023983A (ko) | 수신 비트율 및 연관된 수신기의 동적 적응 방법 | |
CN111093083A (zh) | 数据传输方法及装置 | |
CN114245196B (zh) | 一种录屏推流方法、装置、电子设备及存储介质 | |
WO2009103351A1 (en) | Method and apparatus for obtaining media over a communications network | |
CN108810468B (zh) | 一种优化显示效果的视频传输装置及方法 | |
CN115037701B (zh) | 视频处理方法、装置、服务器及介质 | |
TWI683572B (zh) | 基於畫面動態資訊的視訊位元率傳輸控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhou Di Inventor after: Xiao Hailin Inventor after: Ren Junfeng Inventor after: Yu Jiansheng Inventor before: Zhou Di Inventor before: Ren Junfeng Inventor before: Yu Jiansheng |
|
GR01 | Patent grant | ||
GR01 | Patent grant |