掌桥专利:专业的专利平台
掌桥专利
首页

视频处理方法及装置、电子设备和存储介质

文献发布时间:2023-06-19 11:45:49


视频处理方法及装置、电子设备和存储介质

技术领域

本公开涉及计算机技术领域,尤其涉及一种视频处理方法及装置、电子设备和存储介质。

背景技术

在物联网场景下,例如安防场景,可能存在由于网络传输不稳定、网络波动较大等使得传输的视频报文存在丢包、乱序等情况,在该些情况下,用户通常期望看到可以是清晰的视频画面,而非花屏的视频画面。

发明内容

本公开提出了一种视频处理的技术方案。

根据本公开的一方面,提供了一种视频处理方法,包括:获取视频流的视频报文,所述视频报文包括所述视频流中至少一个视频帧对应的数据包;基于所述视频报文,顺序检测所述视频流中视频帧对应的数据包的丢失信息;根据当前检测的目标视频帧对应的丢失信息,判断所述目标视频帧是否满足视频帧移除条件;在所述目标视频帧满足视频帧移除条件的情况下,从所述视频流中移除与所述目标视频帧对应的至少一个视频帧,得到处理后的视频流。通过该方式,能够满足在网络情况较差的场景下,显示清晰画面的视频播放需求。

在一种可能的实现方式中,所述数据包的丢失信息包括数据包的丢失数量,其中,所述根据当前检测的目标视频帧对应的丢失信息,判断所述目标视频帧是否满足视频帧移除条件,包括:在所述目标视频帧对应的数据包的丢失数量大于或等于第一数量阈值的情况下,确定所述目标视频帧满足视频帧移除条件。通过该方式,可便捷地确定出目标视频帧是否满足视频帧移除条件。

在一种可能的实现方式中,所述数据包的丢失信息包括丢失数据包的序列标识,其中,所述根据当前检测的目标视频帧对应的丢失信息,判断所述目标视频帧是否满足视频帧移除条件,包括:根据所述目标视频帧对应的丢失数据包的序列标识,确定所述目标视频帧连续丢失的数据包数量;在所述目标视频帧连续丢失的数据包数量大于或等于第二数量阈值的情况下,确定所述目标视频帧满足视频帧移除条件。通过该方式,能够基于丢失数据包的序列标识,确定出连续丢失的数据包数量,并基于连续丢失的数据包数量有效地确定出目标视频帧是否满足视频帧移除条件。

在一种可能的实现方式中,所述从所述视频流中移除与所述目标视频帧对应的至少一个视频帧,得到处理后的视频流,包括:在所述目标视频帧为关键帧的情况下,从所述视频流中移除所述目标视频帧所在的第一画面组,得到处理后的视频流,所述第一画面组包括所述目标视频帧以及时序在所述目标视频帧之后的非关键帧;或,在所述目标视频帧为非关键帧的情况下,从所述视频流中移除所述目标视频帧,得到处理后的视频流。通过该方式,能够分别对关键帧以及非关键帧的目标视频帧,进行对应的视频帧移除操作,使得在解码并播放处理后的视频帧的画面质量是清晰度较高的。

在一种可能的实现方式中,所述从所述视频流中移除与所述目标视频帧对应的至少一个视频帧,得到处理后的视频流,还包括:在所述目标视频帧为非关键帧的情况下,判断时序在所述目标视频帧之前连续的N个非关键帧是否已从所述视频流中移除,N为正整数;在所述之前连续的N个非关键帧已从所述视频流中移除的情况下,从所述视频流中移除所述目标视频帧,以及移除所述目标视频帧所在的第二画面组中时序在所述目标视频帧之后的非关键帧。通过该方式,能够对连续满足视频帧移除条件的视频帧,进行对应的视频帧移除操作,使得在解码并播放处理后的视频帧的画面质量是清晰度较高的。

在一种可能的实现方式中,所述根据当前检测的目标视频帧对应的丢失信息,判断所述目标视频帧是否满足视频帧移除条件,包括:在所述丢失信息指示所述目标视频帧丢失的情况下,确定所述目标视频帧满足视频帧移除条件;其中,所述从所述视频流中移除与所述目标视频帧对应的至少一个视频帧,得到处理后的视频流,包括:从所述视频流中移除所述目标视频帧所在的第三画面组,得到处理后的视频流,所述第三画面组包括所述目标视频帧对应的关键帧,以及时序在所述目标视频帧对应的关键帧之后的非关键帧。通过该方式,能够有效应对整个视频帧丢失的情况下,通过移除全部数据包丢失的目标视频帧所在的第三画面组,可使播放出的视频画面是满足清晰度要求的画面。

在一种可能的实现方式中,获取视频流的视频报文,包括:在缓存空间中缓存所述视频流的视频报文;所述方法还包括:基于所述视频报文,顺序检测所述视频流中视频帧对应的数据包的乱序数量;根据预设时间段内检测的数据包的丢失数量和/或乱序数量,调整所述缓存空间的容量,得到调整后的缓存空间,所述数据包的丢失信息包括数据包的丢失数量。通过该方式,能够实现针对不同的网络情况,调整缓存队列的容量,容量可变的缓存队列,不仅便于及时优化视频的播放质量,还可实现低时延的播放效果。

在一种可能的实现方式中,根据预设时间段内检测的数据包的丢失数量和/或乱序数量,调整所述缓存空间的容量,得到调整后的缓存空间,包括:在所述丢失数量和/或乱序数量超过预设阈值的情况下,按照预设放大倍数,增大所述缓存空间的容量,得到调整后的缓存空间;或,在所述丢失数量和/或乱序数量未超过所述预设阈值的情况下,按照预设缩小倍数,缩小所述缓存空间的容量,得到调整后的缓存空间。通过该方式,能够基于预设阈值、预设放大倍数、预设缩小倍数,对应调整缓存空间的容量,从而可以有效满足不同的网络情况下的视频播放需求。

在一种可能的实现方式中,所述方法还包括:在所述目标视频帧对应的数据包中存在乱序数据包的情况下,根据所述目标视频帧对应的数据包的序列标识,对所述乱序数据包进行排序,得到处理后的视频流。通过该方式,使得处理后的视频流中视频帧的顺序是正确的,或者说视频报文中数据包的顺序是正确的,从而使视频播放的画面内容是正确的,以获得较好的播放效果。

在一种可能的实现方式中,所述方法还包括:基于所述视频报文,解析所述视频流的编码码率以及所述视频流的编码格式;按照所述编码码率,将所述处理后的视频流送入至与所述编码格式对应的视频解码器,得到解码后的视频流并进行播放。通过该方式,能够基于编码码率以及编码格式,有效地播放处理后的视频流。

根据本公开的一方面,提供了一种视频处理装置,包括:获取模块,用于获取视频流的视频报文,所述视频报文包括所述视频流中至少一个视频帧对应的数据包;检测模块,用于基于所述视频报文,顺序检测所述视频流中视频帧对应的数据包的丢失信息;判断模块,用于根据当前检测的目标视频帧对应的丢失信息,判断所述目标视频帧是否满足视频帧移除条件;处理模块,用于在所述目标视频帧满足视频帧移除条件的情况下,从所述视频流中移除与所述目标视频帧对应的至少一个视频帧,得到处理后的视频流。

在一种可能的实现方式中,所述数据包的丢失信息包括数据包的丢失数量,其中,所述判断模块,包括:第一确定子模块,用于在所述目标视频帧对应的数据包的丢失数量大于或等于第一数量阈值的情况下,确定所述目标视频帧满足视频帧移除条件。

在一种可能的实现方式中,所述数据包的丢失信息包括丢失数据包的序列标识,其中,所述判断模块,包括:数据确定子模块,用于根据所述目标视频帧对应的丢失数据包的序列标识,确定所述目标视频帧连续丢失的数据包数量;第二确定子模块,用于在所述目标视频帧连续丢失的数据包数量大于或等于第二数量阈值的情况下,确定所述目标视频帧满足视频帧移除条件。

在一种可能的实现方式中,所述处理模块,包括:第一移除子模块,用于在所述目标视频帧为关键帧的情况下,从所述视频流中移除所述目标视频帧所在的第一画面组,得到处理后的视频流,所述第一画面组包括所述目标视频帧以及时序在所述目标视频帧之后的非关键帧;或,第二移除子模块,用于在所述目标视频帧为非关键帧的情况下,从所述视频流中移除所述目标视频帧,得到处理后的视频流。

在一种可能的实现方式中,所述处理模块,还包括:判断子模块,用于在所述目标视频帧为非关键帧的情况下,判断时序在所述目标视频帧之前连续的N个非关键帧是否已从所述视频流中移除,N为正整数;第三移除子模块,用于在所述之前连续的N个非关键帧已从所述视频流中移除的情况下,从所述视频流中移除所述目标视频帧,以及移除所述目标视频帧所在的第二画面组中时序在所述目标视频帧之后的非关键帧。

在一种可能的实现方式中,所述判断模块,包括:第三确定子模块,用于在所述丢失信息指示所述目标视频帧丢失的情况下,确定所述目标视频帧满足视频帧移除条件;其中,所述处理模块,包括:第四移除子模块,用于从所述视频流中移除所述目标视频帧所在的第三画面组,得到处理后的视频流,所述第三画面组包括所述目标视频帧对应的关键帧,以及时序在所述目标视频帧对应的关键帧之后的非关键帧。

在一种可能的实现方式中,获取视频流的视频报文,包括:在缓存空间中缓存所述视频流的视频报文;所述装置还包括:乱序检测模块,用于基于所述视频报文,顺序检测所述视频流中视频帧对应的数据包的乱序数量;容量调整模块,用于根据预设时间段内检测的数据包的丢失数量和/或乱序数量,调整所述缓存空间的容量,得到调整后的缓存空间,所述数据包的丢失信息包括数据包的丢失数量。

在一种可能的实现方式中,容量调整模块,包括:第一调整子模块,用于在所述丢失数量和/或乱序数量超过预设阈值的情况下,按照预设放大倍数,增大所述缓存空间的容量,得到调整后的缓存空间;或,第二调整子模块,用于在所述丢失数量和/或乱序数量未超过所述预设阈值的情况下,按照预设缩小倍数,缩小所述缓存空间的容量,得到调整后的缓存空间。

在一种可能的实现方式中,所述装置还包括:排序模块,用于在所述目标视频帧对应的数据包中存在乱序数据包的情况下,根据所述目标视频帧对应的数据包的序列标识,对所述乱序数据包进行排序,得到处理后的视频流。

在一种可能的实现方式中,所述装置还包括:解析模块,用于基于所述视频报文,解析所述视频流的编码码率以及所述视频流的编码格式;解码模块,用于按照所述编码码率,将所述处理后的视频流送入至与所述编码格式对应的视频解码器,得到解码后的视频流并进行播放。

根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。

根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。

根据本公开的实施例,能够在基于目标视频帧的数据包的丢失信息,确定目标视频帧满足视频帧移除条件时,移除视频流中相应的视频帧,从而在播放处理后的视频流时,视频画面是清晰的,以满足在网络情况较差的场景下,显示清晰画面的视频播放需求。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。

图1示出根据本公开实施例的视频播放方法的流程图。

图2示出根据本公开实施例的一种视频播放插件的结构示意图。

图3示出根据本公开实施例的视频处理装置的框图。

图4示出根据本公开实施例的一种电子设备的框图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。

应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”及“第三”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

图1示出根据本公开实施例的视频播放方法的流程图,如图1所示,所述视频播放方法包括:

在步骤S11中,获取视频流的视频报文,视频报文包括视频流中至少一个视频帧对应的数据包;

在步骤S12中,基于视频报文,顺序检测视频流中视频帧对应的数据包的丢失信息;

在步骤S13中,根据当前检测的目标视频帧对应的丢失信息,判断目标视频帧是否满足视频帧移除条件;

在步骤S14中,在目标视频帧满足视频帧移除条件的情况下,从视频流中移除与目标视频帧对应的至少一个视频帧,得到处理后的视频流。

在一种可能的实现方式中,所述视频播放方法可以由终端设备执行,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,所述方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。

在一种可能的实现方式中,视频流可以是由图像采集设备(如摄像头、电子眼)采集的预设地理区域的视频流,可以是采用H264或H265视频编码技术编码的视频数据。应理解的是,图像采集设备中可设置有相关的视频编码器,以对采集的原始视频流进行编码,得到编码后的视频流。其中,预设地理区域例如可以是小区、学校、街道等,对此本公开实施例不作限制。

其中,图像采集设备与终端设备之间可通过网络连接,对此本公开实施例不作限制。

应理解的是,可通过报文的形式,实现数据在设备之间的网络传输。在一种可能的实现方式中,可以是采用任何已知的报文生成方式,将编码后的视频流转换成视频报文,以便于将图像采集设备采集的视频流传输至终端设备进行解码播放。应理解的是,视频报文中可包括视频流中至少一个视频帧对应的数据包,任一视频帧可对应于多个数据包。

在一种可能的实现方式中,视频流可采用实时流传输协议RTSP(Real TimeStreaming Protocol)传输,也即,可采用RTSP将视频流的视频报文传输至终端设备。当然,也可以采用其他数据传输协议,对此本公开实施例不作限制。

在一种可能的实现方式中,可以将获取的视频报文缓存在缓存空间中,以便于执行基于视频报文顺序检测视频流中视频帧对应的数据包的丢失信息。

可知晓的是,视频报文中的数据包可带有序列标识,以标识该数据包对应的视频帧以及该数据包对应的视频帧的顺序,从而便于按序对视频帧进行解码播放。在一种可能的实现方式中,在步骤S12中,数据包的丢失信息可包括数据包的丢失数量,或丢失数据包的序列标识。其中,丢失数据包指视频帧对应的数据包中丢失的数据包,数据包的丢失数量可根据丢失数据包的序列标识确定。

举例来说,假设在图像采集设备中转换成视频报文的任一视频帧,可对应于序列标识为0-150的数据包。若当前检测到该目标视频帧对应于序列标识为0-40,50-150的数据包,则确定序列标识为41-49的数据包丢失,丢失数量为9个,丢失数据包的序列标识为41-49。

应理解的是,可采用任何已知的丢包检测方式,实现基于视频报文顺序检测视频流中视频帧对应的数据包的丢失信息,对此本公开实施例不作限制。

在一种可能的实现方式中,在步骤S13中,视频帧移除条件,可根据实际需求设定,例如,可以是数据包的丢失数量大于或等于预设数值(如3个),可理解为,目标视频帧中存在丢失的数据包(可是连续丢失的,也可间隔丢失的),且丢失的数据包的丢失数量大于或等于预设数值;或,还可以是连续丢失的数据包数量(也即为连续丢失的数据包的丢失数量)大于或等于预设数值(如3个),对此本公开实施例不作限制。

在一种可能的实现方式中,在步骤S14中,目标视频帧满足视频帧移除条件,例如可以是目标视频帧对应的数据包的丢失数量大于或等于预设数值,或目标视频帧对应的数据包中连续丢失的数据包数量大于或等于预设数值,对此本公开实施例不作限制。

在一种可能的实现方式中,在步骤S14中,从视频流中移除与目标视频帧对应的至少一个视频帧,可以包括:移除该目标视频帧;或者,移除目标视频帧所在的画面组。其中,画面组包含关键帧以及至少一帧非关键帧,目标视频帧可是画面组中的关键帧,也可是非关键帧。

应理解的是,视频流是通过视频报文的形式传输的,视频报文可缓存在缓存空间中。那么从视频流中移除与目标视频帧对应的至少一个视频帧,实际上,可以是从缓存空间中移除该至少一个视频帧对应的数据包,例如,目标视频帧对应的数据包,或目标视频帧所在画面组对应的数据包;相应的,处理后的视频流,可理解为,缓存空间中移除相关数据包后的视频报文。

在一种可能的实现方式中,可对处理后的视频流进行解码并播放。其中,可以采用任何已知的视频解码技术对处理后的视频流进行解码,并采用已知的视频播放技术播放解码后的视频流,对此本公开实施例不作限制。

如上所述,可将视频流的视频报文缓存在缓存空间中。应理解的是,可以是将缓存空间中的视频报文(即处理后的视频流)均匀取出,并送入至相关的视频解码器中进行解码,得到解码后的视频流。

应理解的是,移除视频帧后的视频流,在播放时虽可能产生卡顿,但剩余视频帧对应的数据包可以是完整的,基于完整的数据包进行解码并显示出的视频画面是清晰的,而播放丢失一定数据包的视频帧,可能会使得视频画面产生花屏。

根据本公开的实施例,能够在基于目标视频帧的数据包的丢失信息,确定目标视频帧满足视频帧移除条件时,移除视频流中相应的视频帧,从而在播放处理后的视频流时,视频画面是清晰的,以满足在网络情况较差的场景下,显示清晰画面的视频播放需求。

如上所述,数据包的丢失信息包括数据包的丢失数量,在一种可能的实现方式中,在步骤S13中,根据当前检测的目标视频帧对应的丢失信息,判断目标视频帧是否满足视频帧移除条件,包括:

在目标视频帧对应的数据包的丢失数量大于或等于第一数量阈值的情况下,确定目标视频帧满足视频帧移除条件。通过该方式,可便捷地确定出目标视频帧是否满足视频帧移除条件。

其中,第一数量阈值,可根据实际需求设定,例如可为3个、6个等,对此本公开实施例不作限制。

如上所述,数据包的丢失数量可根据视频报文中数据包的序列标识确定,可是连续丢失的数据包的丢失数量,也可是间隔丢失的数据包的丢失数量,对此本公开实施例不作限制。

应理解的是,在目标视频帧对应的数据包的丢失数量小于第一数量阈值的情况下,确定目标视频帧不满足视频帧移除条件,则可保留该目标视频帧,继续对视频流的下一个视频帧进行检测。

如上所述,数据包的丢失信息可包括丢失数据包的序列标识,在一种可能的实现方式中,在步骤S13中,根据当前检测的目标视频帧对应的丢失信息,判断目标视频帧是否满足视频帧移除条件,包括:

根据目标视频帧对应的丢失数据包的序列标识,确定目标视频帧连续丢失的数据包数量;

在目标视频帧连续丢失的数据包数量大于或等于第二数量阈值的情况下,确定目标视频帧满足视频帧移除条件。

其中,连续丢失的数据包数量,可理解为,在序列标识上连续的丢失数据包的丢失数量,例如,序列标识41、42、43可以是连续的序列标识,序列标识41、43、46可以是不连续的序列标识。

如上文所述,目标视频帧对应的数据包具有序列标识,基于目标视频帧对应的数据包的序列标识,可确定出丢失数据包的序列标识;进而根据丢失数据包的序列标识,可确定出连续丢失的数据包数量。例如,当前检测出的目标视频帧对应的数据包的序列标识包括0-39,41-50,60-100,则可确定出丢失数据包的序列标识为40、51-59,连续丢失的数据包数量为9。

其中,第二数量阈值,可根据实际需求设定,例如可为3个、6个等,对此本公开实施例不作限制。应理解的是,第二数量阈值与第一数量阈值可相同,也可不同。

应理解的是,在目标视频帧连续丢失的数据包数量小于第二数量阈值的情况下,确定目标视频帧不满足视频帧移除条件,则可保留该目标视频帧,继续对视频流的下一个视频帧进行检测。

在本公开实施例中,能够基于丢失数据包的序列标识,确定出连续丢失的数据包数量,并基于连续丢失的数据包数量有效地确定出目标视频帧是否满足视频帧移除条件。

在一种可能的实现方式中,在步骤S14中,从视频流中移除与目标视频帧对应的至少一个视频帧,得到处理后的视频流,包括:

在目标视频帧为关键帧的情况下,从视频流中移除目标视频帧所在的第一画面组,得到处理后的视频流,第一画面组包括目标视频帧以及时序在目标视频帧之后的非关键帧;或,在目标视频帧为非关键帧的情况下,从视频流中移除目标视频帧,得到处理后的视频流。

其中,关键帧也即为帧内预测帧I帧;非关键帧可包括:前向帧间预测帧P帧、双向帧间预测帧B帧。一个画面组(GOP,Group of Pictures)可包括一帧关键帧以及至少一帧非关键帧。GOP是由固定模式的一系列I帧、P帧、B帧组成。I帧编码是为了减少空间域冗余,P帧和B帧是为了减少时间域冗余。

应理解的是,编码后的视频流中,关键帧是自带完整信息的独立帧,非关键帧包含的是与前一帧和/或后一帧之间差异信息。非关键帧的解码通常依赖于关键帧中的信息。若关键帧对应丢失的数据包较多,该关键帧的画面质量是较差的,在画面质量较差的关键帧基础上,解码出的非关键帧的画面质量也是较差的。

由此,可在目标视频帧为关键帧的情况下,从视频流中移除目标视频帧所在的第一画面组,也即,移除目标视频帧,以及目标视频帧与下一关键帧之间的非关键帧。其中,下一关键帧可是采集时序在目标视频帧之后的关键帧。

相应的,若一个画面组中的关键帧不满足视频帧移除条件,也即关键帧未丢失数据包或未丢失过多数据包,该关键帧的画面质量是较好的,在此基础上,移除画面组中的任一非关键帧,对于整个画面组中其他非关键帧的画面质量影响较小。由此,可在目标视频帧为非关键帧的情况下,从视频流中移除该目标视频帧,也即从目标视频帧所在的画面组移除该目标视频帧。

应理解的是,视频流中可移除不止一个画面组,一个画面组中可移除不止一个非关键帧。处理后的视频流中,移除的画面组或移除的目标视频帧可不止一个。

其中,如上所述,视频流是通过视频报文的形式传输的,视频报文可缓存在缓存空间中。那么从视频流中移除目标视频帧,实际上,可以是从缓存空间中移除该目标视频帧对应的数据包;以及,从视频流中移除目标视频帧所在的第一画面组,可以是从缓存空间中移除第一画面组对应的数据包;相应的,处理后的视频流,可理解为,缓存空间中移除相关数据包后的视频报文。

在本公开实施例中,能够分别对关键帧以及非关键帧的目标视频帧,进行对应的视频帧移除操作,使得在解码并播放处理后的视频帧的画面质量是清晰度较高的。

考虑到,若一个画面组中有多个连续的非关键帧已从视频流中移除,对该已移除的多个连续的非关键帧之后的非关键帧进行解码,得到图像的画面质量通常也不高,为满足显示清晰画面的视频播放需求,在一种可能的实现方式中,在步骤S14中,从视频流中移除与目标视频帧对应的至少一个视频帧,得到处理后的视频流,还包括:

在目标视频帧为非关键帧的情况下,判断时序在目标视频帧之前连续的N个非关键帧是否已从视频流中移除,N为正整数;

在之前连续的N个非关键帧已从视频流中移除的情况下,从视频流中移除目标视频帧,以及移除目标视频帧所在的第二画面组中时序在目标视频帧之后的非关键帧。

在一种可能的实现方式中,N的值可根据实际需求设定,例如可设置为2个,3个,对此本公开实施例不作限制。其中,之前连续的N个非关键帧,可理解为,采集时序上连续的N个非关键帧,且采集时序是在目标视频帧之前的非关键帧。

应理解的是,时序在目标视频帧之前连续的N个非关键帧从视频流中移除,意味着,时序在目标视频帧之前连续的N个非关键帧均满足视频帧移除条件,并已从缓存空间中移除时序在目标视频帧之前连续的N个非关键帧对应的数据包。

其中,从视频流中移除目标视频帧,以及移除目标视频帧所在的第二画面组中时序在目标视频帧之后的非关键帧,实际上,可以是从缓存空间中移除该目标视频帧对应的数据包,以及移除目标视频帧所在的第二画面组中时序在目标视频帧之后的非关键帧对应的数据包。

举例来说,假设N为2,目标视频帧所在的第二画面组包含1个关键帧帧和24个非关键帧,当前检测的目标视频帧是第12个非关键帧,该目标视频帧已满足视频帧移除条件,且第10个和第11个非关键帧已从视频流中移除,则从该第二画面组中移除第12个至第24个非关键帧,也即从视频流中移除目标视频帧(第12个非关键帧),以及移除目标视频帧所在的第二画面组中时序在目标视频帧之后的非关键帧(第13个至第24个非关键帧)。

在本公开实施例中,能够对连续满足视频帧移除条件的视频帧,进行对应的视频帧移除操作,使得在解码并播放处理后的视频帧的画面质量是清晰度较高的。

在一种可能的实现方式中,在步骤S13中,在根据当前检测的目标视频帧对应的丢失信息,判断目标视频帧是否满足视频帧移除条件,包括:

在丢失信息指示目标视频帧丢失的情况下,确定目标视频帧满足视频帧移除条件;

其中,在步骤S14中,从视频流中移除与目标视频帧对应的至少一个视频帧,得到处理后的视频流,包括:

从视频流中移除目标视频帧所在的第三画面组,得到处理后的视频流,第三画面组包括目标视频帧对应的关键帧,以及时序在目标视频帧对应的关键帧之后的非关键帧。

在一些情况下,还可能出现整帧视频帧丢失的情况下,或者说视频报文中整个视频帧对应的数据包均丢失。在该情况下,意味着未检测到整帧丢失的视频帧的全部数据包,数据包的丢失信息可指示目标视频帧的全部数据包丢失,也即指示目标视频帧丢失。应理解的是,上述丢失信息包括数据包的丢失数量或丢失数据包的序列标识,意味着检测到目标视频帧的数据包,以及目标视频帧对应的丢失数据包;丢失信息指示目标视频帧丢失,意味着未检测到目标视频帧的全部数据包。

考虑到,发生整个视频帧的全部数据包丢失,意味着网络情况可能是极差的,此时不论该目标视频帧是关键帧还是非关键帧,目标视频帧所在的画面组的画面质量通常不高,从视频流中移除目标视频帧所在的第三画面组,虽然播放画面可能产生卡顿,但可以使播放出的视频画面是满足清晰度要求的画面。

其中,目标视频帧对应的关键帧,可理解为目标视频帧所在画面组中的关键帧;时序在目标视频帧对应的关键帧之后的非关键帧,可理解为目标视频帧所在画面组中的全部非关键帧。

如上所述,视频流是通过视频报文的形式传输的,视频报文可缓存在缓存空间中。从视频流中移除目标视频帧所在的第三画面组,可以是从缓存空间中移除第三画面组对应的数据包;相应的,处理后的视频流,可理解为,缓存空间中移除相关数据包后的视频报文。

在本公开实施例中,能够有效应对整个视频帧丢失的情况下,通过移除全部数据包丢失的目标视频帧所在的第三画面组,可使播放出的视频画面是满足清晰度要求的画面。

如上所述,视频帧的视频报文可缓存在缓存空间中。在一种可能的实现方式中,获取视频流的视频报文,包括:在缓存空间中缓存视频流的视频报文。

在一种可能的实现方式中,所述方法还可包括:

基于视频报文,顺序检测视频流中视频帧对应的数据包的乱序数量;

根据预设时间段内检测的数据包的丢失数量和/或乱序数量,调整缓存空间的容量,得到调整后的缓存空间,数据包的丢失信息包括数据包的丢失数量。

如上文所述,数据包的丢失信息可包括数据包的丢失数量,还可包括丢失数据包的序列标识。本公开实施例中可根据数据包的丢失数量,调整缓存空间的容量。应理解的是,数据包的丢失数量可是连续丢失的,也可是间隔丢失的。

在一种可能的实现方式中,缓存空间可基于队列的形式缓存视频报文,缓存空间可称为缓存队列。其中,在缓存空间中缓存视频报文,可采用任何已知的缓存技术实现,对此本公开实施例不作限制。

如上所述,视频报文中数据包具有序列标识,序列标识可指示数据包对应的视频帧,以及该数据包对应的视频帧的顺序。基于数据包的序列标识,还可检测出视频帧对应的数据包是否乱序,以及数据包的乱序数量;或者检测出数据包对应的视频帧是否乱序,以及视频帧的乱序数量,应理解的是,视频帧的乱序数量实际为视频帧对应的全部数据包的乱序数量。

举例来说,视频帧A对应的数据包为序列标识A0-A100,视频帧B对应的数据包为序列标识B0-B100、视频帧C对应的数据包为序列标识C0-C100,视频帧A的采集时序在视频帧B之前,视频帧C的采集时序在视频帧B之后。

正常情况下,视频报文中数据包可排列为A0-A100,B0-B100,C0-C100;若获取到的视频报文中的数据包排列为B0-B100,A0,A3,A1,A2-A100,C0-C100,可知,视频帧B乱序(也即视频帧B的全部数据包乱序),视频帧A中对应的数据包A3乱序。

为便捷地确定出乱序数量,乱序数量可基于乱序的视频帧的数量确定,和/或,可基于视频帧中乱序的数据包的数量确定,对此本公开实施例不作限制。例如,上述例子中,视频帧B乱序,视频帧A中对应的数据包A3乱序,可依据两者确定乱序数量为2,也可依据乱序的视频帧B确定乱序数量为1。

应理解的是,上述乱序数量的计算方式是本公开实施例提供的一种实现方式,实际上,本领域技术人员可根据实际需求,确定乱序数量的计算方式,例如,由于视频帧帧B乱序,也即数据包B0-B100乱序,乱序数量还可计为101,对此本公开实施例不作限制。

在一种可能的实现方式中,预设时间段,可依据实际需求设定,例如可设为5秒,对此本公开实施例不作限制。数据包的丢失数量,可参照上述本公开实施例中公开的方式确定,在此不作赘述。

应理解的是,在一些网络情况较差的场景中,为满足显示清晰画面的视频播放需求,通常是在缓存空间中进行移除视频帧对应的数据包、对乱序的数据包进行排序等处理。在该些情况下,为便于执行该些处理,通常期望缓存空间可缓存较多的视频报文。

相应的,在一些网络情况较好的场景下,移除视频帧对应的数据包、对乱序的数据包进行排序等处理可能无需执行,在该些情况下,通常期望视频的播放时延可以较低,或者说有低时延的视频播放需求,此时可期望缓存空间缓存较少的视频报文。

其中,缓存空间的容量,可理解为,缓存空间中可缓存的数据量。应理解的是,容量越大,可缓存的数据量越大,视频的播放时延越长;反之,容量越小,可缓存的数量越小,视频的播放时延越小。

应理解的是,预设时间段内检测的数据包中,可存在丢失的数据包或存在乱序的数据包;还可存在丢失的数据包和乱序的数据包。以及,根据预设时间段内检测的数据包的丢失数量和/或乱序数量,可知晓当前的网络情况。

其中,丢失数量和/或乱序数量较多,意味着网络情况较差,此时可增大缓存空间的容量,以进行移除视频帧对应的数据包、对乱序的数据包进行排序等处理;丢失数量和/或乱序数量较少,意味着网络情况较好,此时可缩小缓存空间的容量,以达到低时延的视频播放效果。

应理解的是,调整后的缓存空间用于缓存视频流的视频报文,可缓存有当前已获取的视频报文,也可缓存即将获取的视频报文。

相关技术中,缓存空间的容量通常是固定的,因此无法满足在不同网络情况下的视频播放需求。在本公开实施例中,能够实现针对不同的网络情况,调整缓存队列的容量,容量可变的缓存队列,不仅便于及时优化视频的播放质量,还可实现低时延的播放效果。

在一种可能的实现方式中,根据预设时间段内检测的数据包的丢失数量和/或乱序数量,调整缓存空间的容量,得到调整后的缓存空间,包括:

在丢失数量和/或乱序数量超过预设阈值的情况下,按照预设放大倍数,增大缓存空间的容量,得到调整后的缓存空间;或,在丢失数量和/或乱序数量未超过预设阈值的情况下,按照预设缩小倍数,缩小缓存空间的容量,得到调整后的缓存空间。

在一种可能的实现方式中,预设阈值可根据历史经验、丢失数量的计算方式、乱序数量的计算方式等确定,对此本公开实施例不作限制。预设放大倍数、预设缩小倍数可根据实际需求设定,例如可设为放大为当前缓存空间的容量的一倍,缩小为当前缓存空间的容量的一半等,对此本公开实施例不作限制。

其中,丢失数量和/或乱序数量超过预设阈值,可认为是网络情况较差,此时可按照预设放大倍数增大缓存空间的容量。应理解的是,缓存空间不可无限增大,若网络情况长时间较差,可在增大到指定容量后,不再继续增大缓存空间的容量。增大缓存空间的容量可执行一次,也可执行多次,可依据实际需求设定,对此本公开实施例不作限制。

相应的,丢失数量和/或乱序数量未超过预设阈值,可认为是网络情况较好,此时可按照预设放大倍数缩小缓存空间的容量。应理解的是,缓存空间也不可无限缩小,若网络情况长时间较好,可在缩小到指定容量后,不再继续缩小缓存空间的容量。缩小缓存空间的容量可执行一次,也可执行多次,可依据实际需求设定,对此本公开实施例不作限制。

在本公开实施例中,能够基于预设阈值、预设放大倍数、预设缩小倍数,对应调整缓存空间的容量,从而可以有效满足不同的网络情况下的视频播放需求。

如上文所述,基于视频报文中,可顺序检测视频流中视频帧对应的数据包的乱序数量,也即,当前检测的目标视频帧对应的数据包中可能存在部分乱序的数据包,或目标视频帧对应的数据包均是乱序的数据包。在一种可能的实现方式中,所述方法还包括:

在目标视频帧对应的数据包中存在乱序数据包的情况下,根据目标视频帧对应的数据包的序列标识,对乱序数据包进行排序,得到处理后的视频流。通过该方式,使得处理后的视频流中视频帧的顺序是正确的,或者说视频报文中数据包的顺序是正确的,从而使视频播放的画面内容是正确的,以获得较好的播放效果。

其中,存在乱序数据包,可理解为,目标视频帧对应的数据包中存在部分乱序的数据包,或目标视频帧对应的数据包均为乱序的数据包。

应理解的是,数据包的序列标识可指示数据包对应的视频帧的顺序,也可指示数据包的顺序,根据目标视频帧对应的数据包的序列标识,能够对乱序数据包进行排序,得到排列顺序正确的视频流。例如,沿用上述例子,若视频报文中数据包排列为B0-B100,A0,A3,A1,A2-A100,C0-C100,则对乱序数据包进行排序后,可得到数据包排列为A0-A100,B0-B100,C0-C100的视频报文。

如上所述,视频流是通过视频报文的形式传输的,视频报文可缓存在缓存空间中。可在缓存空间中进行对乱序数据包的排序,处理后的视频流,也即为缓存空间中排序后的视频报文。

应理解的是,上述移除与目标视频帧对应的至少一个视频帧,与对乱序数据包进行排序,可同时执行,也可按照设定的先后顺序执行,对此本公开实施例不作限制。处理后的视频流,可包括移除与目标视频帧对应的至少一个视频帧,和/或,对乱序数据包进行排序后得到的视频流。

在一种可能的实现方式中,所述方法还包括:

基于视频报文,解析视频流的编码码率以及视频流的编码格式;按照编码码率,将处理后的视频流送入至与编码格式对应的视频解码器,得到解码后的视频流并进行播放。

应理解的是,视频报文中可包括用于指示编码码率、分辨率、帧率、编码格式等相关信息。在一种可能的实现方式中,可以采用任何已知的视频解析方式,解析缓存空间中的视频报文,得到视频流的编码码率以及编码格式,对此本公开实施例不作限制。

在一种可能的实现方式中,也可先解析出视频流的分辨率,进而根据分辨率与编码码率之间的对应关系,得到视频流的编码码率。对于编码码率的确定方式,本公开实施例不作限制。

应理解的是,视频流的编码格式与视频编码技术相关,例如,采用H264及H265视频编码技术,编码得到的视频流各自对应的编码格式可不同。基于不同的编码格式,可确定出对应的视频解码器,从而可实现针对不同编码格式的视频流的视频解码。

考虑到,在一些网络波动较大的场景下,可能会出现网络拥塞现象。其中,网络拥塞现象,可理解为,某个时刻传输的数据包的数据量剧增,过段时间又恢复正常的数据传输量。为缓解网络拥塞现象,在本公开实施例中,可将获取到的视频报文缓存在缓存空间中,并按照编码码率,均匀地将缓存空间中的数据包送入至视频解码器中进行解码。

应理解的是,编码码率可理解为每秒传输的比特(bit)数。按照编码码率,将处理后的视频流送入至与编码格式对应的视频解码器,可理解为,每秒从缓存空间中取出一定比特数的数据包,送入至与编码格式对应的视频解码器,得到解码后的视频流。

在一种可能的实现方式中,播放解码后的视频流,可以包括:基于解码后的视频流进行画面渲染,并将渲染出的视频画面送给终端设备的显卡进行播放。应理解的是,可采用任何已知的视频播放技术,实现播放解码后的视频流,对此本公开实施例不作限制。

在本公开实施例中,能够基于编码码率以及编码格式,有效地播放处理后的视频流。

图2示出根据本公开实施例的一种视频播放插件的结构示意图。如图2所示,视频播放插件可包括:

取流组件101,用于获取视频报文,将获取的视频报文缓存在缓存空间中,基于视频报文移除视频帧对应的数据包,对乱序的数据包进行排序,并将缓存空间中处理后的视频流所对应的数据包送入至解码组件102;

解码组件102,用于按照编码格式对处理后的视频流所对应的数据包进行解码,得到解码后的视频流,并将解码后的视频流送入至渲染组件103;

渲染组件103,用于根据解码后的视频流进行画面渲染,并将渲染出的视频画面送入显卡进行播放。

在一种可能的实现方式中,上述视频播放插件的工作流程可包括:通过取流组件101从支持RTSP的图像采集设备中获取视频流的视频报文,按照上述视频播放方法进行相应处理,将处理后的视频流送入至解码组件102;通过解码组件102根据编码格式选取不同的视频解码器,解码处理后的视频流,送入至渲染组件103;通过渲染组件103基于解码后的视频流进行画面渲染,得到渲染出的视频画面,并送入显卡进行播放。

在一种可能的实现方式中,待播放的视频流可以是采用实时流传输协议RTSP传输,且采用H264或H265视频编码技术编码的。

在一种可能的实现方式中,解码组件102,可调用终端设备自带的硬件解码器进行解码,对此本公开实施例不作限制。

在一种可能的实现方式中,解码组件102中,还可封装有各类软件视频解码器,对不同编码格式的视频流进行解码。

在一种可能的实现方式中,取流组件101,可基于DirectShow(一种流媒体处理的开发包)技术,封装成DirectShow框架下的源文件(Source Filter)。

在一种可能的实现方式中,上述源文件中还可包括live555(一种开源的流媒体协议处理辅助模块),用于获取基于RTSP传输的视频报文。

在一种可能的实现方式中,还可采用DirectShow提供的软件工具包(SDK),简化上述源文件开发,以及简化视频播放插件的开发。

在一种可能的实现方式中,渲染组件103,可采用基于GDI(图形设备接口(Graphics Device Interface))编码的渲染适配器,用于将解码后的视频流,发送至界面渲染线程进行渲染。

在一种可能的实现方式中,可采用基于DirectShow开发的视频播放器封装库,对上述三个组件进行封装,得到视频播放器。

在一种可能的实现方式中,可采用基于libPlayer(一种多媒体的抽象层的接口)库,以及采用OCX(对象类别扩充组件,Object Linking and Embedding(OLE)ControlExtension)技术或D3D(Direct3D,是微软为提高三维游戏在Windows操作系统中的显示性能而开发的显示程序接口)技术,将上述三个组件封装成可在IE浏览器中使用的视频播放插件。

根据本公开的实施例中的视频播放插件,可安装在IE浏览器中,通过IE浏览器的显示界面实时播放RTSP传输的视频流。可应用在安防监控场景、智能边缘系列产品中。

根据本公开的实施例,能够实现一款灵活安装、低延时、自适应抖动的支持RTSP、H264、H265的在IE上使用的视频播放插件。在IE浏览器中集成该视频播放插件后,可同时预览八路视频传输通道传输的视频流。

根据本公开的实施例,视频播效果更好,实现低延时;在网络较差的情况下,能够自适应网络拥塞现象;能够支持H265码流播放;能够支持GDI和/或D3D渲染。

可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

此外,本公开还提供了视频处理装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种视频处理方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。

图3示出根据本公开实施例的视频处理装置的框图,如图3所示,所述装置包括:

获取模块101,用于获取视频流的视频报文,所述视频报文包括所述视频流中至少一个视频帧对应的数据包;

检测模块102,用于基于所述视频报文,顺序检测所述视频流中视频帧对应的数据包的丢失信息;

判断模块103,用于根据当前检测的目标视频帧对应的丢失信息,判断所述目标视频帧是否满足视频帧移除条件;

处理模块104,用于在所述目标视频帧满足视频帧移除条件的情况下,从所述视频流中移除与所述目标视频帧对应的至少一个视频帧,得到处理后的视频流。

在一种可能的实现方式中,所述数据包的丢失信息包括数据包的丢失数量,其中,所述判断模块103,包括:第一确定子模块,用于在所述目标视频帧对应的数据包的丢失数量大于或等于第一数量阈值的情况下,确定所述目标视频帧满足视频帧移除条件。

在一种可能的实现方式中,所述数据包的丢失信息包括丢失数据包的序列标识,其中,所述判断模块103,包括:数据确定子模块,用于根据所述目标视频帧对应的丢失数据包的序列标识,确定所述目标视频帧连续丢失的数据包数量;第二确定子模块,用于在所述目标视频帧连续丢失的数据包数量大于或等于第二数量阈值的情况下,确定所述目标视频帧满足视频帧移除条件。

在一种可能的实现方式中,所述处理模块104,包括:第一移除子模块,用于在所述目标视频帧为关键帧的情况下,从所述视频流中移除所述目标视频帧所在的第一画面组,得到处理后的视频流,所述第一画面组包括所述目标视频帧以及时序在所述目标视频帧之后的非关键帧;或,第二移除子模块,用于在所述目标视频帧为非关键帧的情况下,从所述视频流中移除所述目标视频帧,得到处理后的视频流。

在一种可能的实现方式中,所述处理模块104,还包括:判断子模块,用于在所述目标视频帧为非关键帧的情况下,判断时序在所述目标视频帧之前连续的N个非关键帧是否已从所述视频流中移除,N为正整数;第三移除子模块,用于在所述之前连续的N个非关键帧已从所述视频流中移除的情况下,从所述视频流中移除所述目标视频帧,以及移除所述目标视频帧所在的第二画面组中时序在所述目标视频帧之后的非关键帧。

在一种可能的实现方式中,所述判断模块103,包括:第三确定子模块,用于在所述丢失信息指示所述目标视频帧丢失的情况下,确定所述目标视频帧满足视频帧移除条件;其中,所述处理模块104,包括:第四移除子模块,用于从所述视频流中移除所述目标视频帧所在的第三画面组,得到处理后的视频流,所述第三画面组包括所述目标视频帧对应的关键帧,以及时序在所述目标视频帧对应的关键帧之后的非关键帧。

在一种可能的实现方式中,获取视频流的视频报文,包括:在缓存空间中缓存所述视频流的视频报文;所述装置还包括:乱序检测模块,用于基于所述视频报文,顺序检测所述视频流中视频帧对应的数据包的乱序数量;容量调整模块,用于根据预设时间段内检测的数据包的丢失数量和/或乱序数量,调整所述缓存空间的容量,得到调整后的缓存空间,所述数据包的丢失信息包括数据包的丢失数量。

在一种可能的实现方式中,容量调整模块,包括:第一调整子模块,用于在所述丢失数量和/或乱序数量超过预设阈值的情况下,按照预设放大倍数,增大所述缓存空间的容量,得到调整后的缓存空间;或,第二调整子模块,用于在所述丢失数量和/或乱序数量未超过所述预设阈值的情况下,按照预设缩小倍数,缩小所述缓存空间的容量,得到调整后的缓存空间。

在一种可能的实现方式中,所述装置还包括:排序模块,用于在所述目标视频帧对应的数据包中存在乱序数据包的情况下,根据所述目标视频帧对应的数据包的序列标识,对所述乱序数据包进行排序,得到处理后的视频流。

在一种可能的实现方式中,所述装置还包括:解析模块,用于基于所述视频报文,解析所述视频流的编码码率以及所述视频流的编码格式;解码模块,用于按照所述编码码率,将所述处理后的视频流送入至与所述编码格式对应的视频解码器,得到解码后的视频流并进行播放。

根据本公开的实施例,能够在基于目标视频帧的数据包的丢失信息,确定目标视频帧满足视频帧移除条件时,移除视频流中相应的视频帧,从而在播放处理后的视频流时,视频画面是清晰的,以满足在网络情况较差的场景下,显示清晰画面的视频播放需求。

在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。

本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是非易失性计算机可读存储介质。

本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。

本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,当计算机可读代码在设备上运行时,设备中的处理器执行用于实现如上任一实施例提供的视频处理方法的指令。

本公开实施例还提供了另一种计算机程序产品,用于存储计算机可读指令,指令被执行时使得计算机执行上述任一实施例提供的视频处理方法的操作。

电子设备可以被提供为终端、服务器或其它形态的设备。

图4示出根据本公开实施例的一种电子设备800的框图。例如,电子设备800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等终端。

参照图4,电子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。

处理组件802通常控制电子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。

存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电源组件806为电子设备800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。

多媒体组件808包括在所述电子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。

I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800一个组件的位置改变,用户与电子设备800接触的存在或不存在,电子设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如互补金属氧化物半导体(CMOS)或电荷耦合装置(CCD)图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如无线网络(WiFi),第二代移动通信技术(2G)或第三代移动通信技术(3G),或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器804,上述计算机程序指令可由电子设备800的处理器820执行以完成上述方法。

本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

相关技术
  • 视频处理方法、视频处理装置、电子设备及存储介质
  • 视频处理方法、视频处理装置、存储介质与电子设备
技术分类

06120113042751