基于超低码流的高清视频流畅直播方法及装置与流程

文档序号:15297106发布日期:2018-08-31 19:33阅读:256来源:国知局

本发明涉及视频传输领域,尤其是一种基于超低码流的高清视频流畅直播方法及装置。



背景技术:

现有的视频传输应用极为广泛,例如视频监控,再例如直播。在一些场合,直播需要兼顾清晰度、流畅度,而与视频清晰度流畅度相关的一个概念则是码率。

码率也叫比特率,表示经过压缩编码后的视音频数据每秒需要用多少个比特来表示,即把每秒显示的图像进行压缩后的数据量,一般采用的单位是kbps即千位每秒。一般来说码率越大,处理出来的文件就越接近原始文件,但文件体积与码率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真。码率基本的算法是:【码率】(kbps)=【文件大小】(字节)x8/【时间】(秒)/1000。一般来说,码率达到1600就是超清视频,达到4000就是1080p。码率的基本原则:1、码率和质量成正比,但是文件体积也和码率成正比。2、码率超过一定数值,对图像的质量没有多大影响。因此,码率直接影响了视频和音频的质量,视频的清晰度。

而现有技术中的直播技术,为了达到高度的清晰度,则损失了流畅度。



技术实现要素:

在下文中给出了关于本发明实施例的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,以下概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。

根据本申请的一个方面,提供一种基于超低码流的高清视频流畅直播方法,包括采集端处理方法和播放端处理方法,其中,所述采集端处理方法包括:

采集视频数据,并对采集到的视频数据进行处理和编码;

将处理和编码后的视频数据进行再次编码处理,将其编码成低码流视频流;编码成低码流视频流具体包括如下过程:过程a:扫描视频数据的图像帧序列中的视频画面,将该视频画面划分为动态区域和静态区域,对静态区域进行交错视频编码,并存储于第一数据缓存中,将动态区域进行变换和量化编码,并存储于第二数据缓存中;过程b:预先设置扫描视频画面的静态区域的时长参数,在该时长内,只针对视频画面的动态区域进行扫描并处理;过程c:间隔预设时长扫描视频画面的静态区域中是否有运动目标,如果没有,执行下一步;如果有,则将该静态区域继续划分为绝对静止区域和非绝对静止区域,并将非绝对静止区域进行变换和量化编码后存储于第三数据缓存中,并执行下一步;

分别将编码后的第一缓存、第二缓存和第三缓存中的数据封装成预定协议的数据包,并将其传输给云端服务器;

所述播放端处理方法:在所述播放端构造解码器,在任意时间点开始接收云端服务器发送的数据包,综合第一缓存、第二缓存和第三缓存的数据,并播放视频。其中,综合第一缓存、第二缓存和第三缓存的数据具体包括:将第一缓存、第二缓存和第三缓存中描述同一视频数据的图像帧序列中的视频画面的数据合并在一起,针对同一时刻的数据,如果第三缓存对应该时刻为空,则将第二缓存中对应同一视频数据的图像帧序列中的视频画面的动态区域与第一缓存中对应该时刻所处的预设时长中同一视频数据的图像帧序列中的视频画面的静态区域的数据进行合并;如果第三缓存对应该时刻不为空,则将第三缓存中的对应数据覆盖第一缓存中的对应数据,并将该覆盖后的数据作为该时刻所处的预设时长内的静态区域的数据。

此外,综合第一缓存、第二缓存和第三缓存的数据后,检测该数据是否达到预设长度以及播放端的接收直播流的带宽是否达到预设带宽,如果是则开始播放视频;如果否,则继续接收数据并综合直至综合后的数据达到预设长度以及播放端的接收直播流的带宽达到预设带宽。

根据本申请的另一个方面,提供一种基于超低码流的高清视频流畅直播装置,其包括采集端处理装置和播放端处理装置,其中,所述采集端处理装置包括:

视频采集模块,用于采集视频数据;

数据处理模块,用于对视频数据的处理和编码,一般由dsp和存储器实现;

数据编码模块,用于将数据处理模块处理后的视频数据编码成低码流视频流;

数据封包模块,用于将数据编码模块输出的低码流视频流封装成预定协议的数据包;

数据缓存模块,至少包括第一数据缓存、第二数据缓存和第三数据缓存;

数据传输模块,用于将封装成预定协议的数据包传输给云端服务器。

本发明在编码时,将实时对动态区域进行编码处理,而对静态区域设置时长参数,间隔预定时间后对静态区域进行扫描,判断是否有移动目标,如果有则认为静态区域中有动态区域,则将该静态区域中的动态区域记为非绝对静止区域,将其余区域记为绝对静止区域;对于绝对静止区域,因之前对其进行过编码,因此不做任何处理;对于其中的非绝对静止区域,则将其变换和量化编码后存储于第三数据缓存中。而在视频播放时,将第三数据缓存中更新后的非绝对静止区域的数据替换之前第一数据缓存中的数据即可。

因此,本发明采用上述独特设计的低码流视频流的编码方案,通过将直播中的视频画面划分为静态区域和动态区域,并分别对动态区域和静态区域采用不同的编码工具进行编码,使其能够以较低的码率、较高的压缩比以及较小的失真对视频进行编码,从而兼有流畅性和清晰度两者优势。

具体实施方式

下面详细描述本发明的实施例,下面描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,需要理解的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

具体的,本发明的一种基于超低码流的高清视频流畅直播方法,包括采集端处理方法和播放端处理方法,采集端处理方法包括:

采集视频数据,并对采集到的视频数据进行处理和编码;

将处理和编码后的视频数据进行再次编码处理,将其编码成低码流视频流;编码成低码流视频流具体包括如下过程:过程a:扫描视频数据的图像帧序列中的视频画面,将该视频画面划分为动态区域和静态区域,对静态区域进行交错视频编码,并存储于第一数据缓存中,将动态区域进行变换和量化编码,并存储于第二数据缓存中;过程b:预先设置扫描视频画面的静态区域的时长参数,例如设置该时长参数为10秒,在该10秒的时长内,只针对视频画面的动态区域进行扫描并处理,也即按照时序将动态区域进行变换和量化编码,静态区域不做处理,或者说静态区域的数据沿用前一时刻的静态区域的数据);过程c:间隔预设时长扫描视频画面的静态区域中是否有运动目标,如果没有,执行下一步;如果有,则将该静态区域继续划分为绝对静止区域和非绝对静止区域,并将非绝对静止区域进行变换和量化编码后存储于第三数据缓存中,并执行下一步;

分别将编码后的第一缓存、第二缓存和第三缓存中的数据封装成预定协议的数据包,并将其传输给云端服务器(或者预设的播放设备)。

其中,针对静态区域的编码,采用交错视频编码;交错视频编码是针对隔行扫描的视频,具体算法可参见h.264编码详解,静态区域无需实时更新。而针对动态区域的编码,采用变换和量化编码,变换和量化编码采用了类dct的整数变换,有效降低了运算复杂度,对于基础版h.264,变换矩阵为4×4;在frext扩展中,还支持8×8的变换矩阵。

播放端处理方法:在播放端构造解码器,在任意时间点开始接收云端服务器发送的数据包,综合第一缓存、第二缓存和第三缓存的数据,将描述同一视频数据的图像帧序列中的视频画面的数据合并在一起,并将第三缓存中的数据覆盖第一缓存中的数据(即静态的不做处理,动态的进行处理),并播放视频。进一步的,综合第一缓存、第二缓存和第三缓存的数据后,检测该数据是否达到预设长度以及播放端的接收直播流的带宽是否达到预设带宽,如果是则开始播放视频。

在一个具体的实例中,第一缓存中的数据记为{(t1,m1),(t2,m2),……(tn,mn)},tn为第n个时长t,mn为对应第tn时长的视频数据的图像帧序列中的视频画面的静态区域经过编码后的数据;(tn,mn)为第tn时长下的视频画面的静态区域经过编码后的数据。第二缓存中的数据记为{(t1,m21),(t2,m22),……(tn,m2n)},m2n为对应第tn时长的视频数据的图像帧序列中的视频画面的动态区域经过编码后的数据集合,其包括tn时间段内的每个时间节点下的数据,例如设置时长为10秒,每秒更新一次,则m2n=[m2n1,m2n2,……m2n10],m2n1为该tn时间段的第一秒的数据,m2n10为该tn时间段的第10秒的数据;(tn,m2n)为第tn时长下的视频画面的动态区域经过编码后的数据。第三缓存中的数据记为{(t1,m31),(t2,m32),……(tn,m3n)},m3n为对应第tn时长的视频数据的图像帧序列中的视频画面的非绝对静态区域经过编码后的数据集合;(tn,m3n)为第tn时长下的视频画面的非绝对静态区域经过编码后的数据。那么综合第一缓存、第二缓存和第三缓存的数据具体包括:将第一缓存、第二缓存和第三缓存中描述同一视频数据的图像帧序列中的视频画面的数据合并在一起,针对同一时刻ti(1≤i≤n)的数据,如果第三缓存对应该时刻ti的m3i为空,则将第二缓存中对应同一视频数据的图像帧序列中的视频画面的动态区域m2i与第一缓存中对应该时刻所处的预设时长中同一视频数据的图像帧序列中的视频画面的静态区域的数据mi进行合并;如果第三缓存对应该时刻ti的数据m3i不为空,则将第三缓存中的对应数据(描述同一位置的图像帧)覆盖第一缓存中的对应数据,并将该覆盖后的数据作为该时刻所处的预设时长内的静态区域的数据。

也就是说,本发明在编码时,将实时对动态区域进行编码处理,而对静态区域设置时长参数l,间隔预定时间l后对静态区域进行扫描(也就是说在该时长参数l内的静态区域的数据是不更新的),判断是否有移动目标,如果有则认为静态区域中有动态区域,则将该静态区域中的动态区域记为非绝对静止区域,将其余区域记为绝对静止区域;对于绝对静止区域,因之前对其进行过编码,因此在该时间段t内不做任何处理;对于其中的非绝对静止区域,则将其变换和量化编码后存储于第三数据缓存中。而在视频播放时,将第三数据缓存中更新后的非绝对静止区域的数据替换之前第一数据缓存中的数据即可。

此外,该方案中,对于静态区域设置扫描的时长参数尤为关键,实际设置时,可根据多次建模学习来确定,也可由实际操作的经验值来设置。

目前大多数的视频网站通常是限制平均码流的,如果强行上传现有的高分辨率低码流的视频就会发生静态完美,动态发虚的情况,本发明通过设置时长参数l,并在该时长参数l的时间段内不更新静态区域的数据,也即无需时刻发送静态区域的数据,只需间隔时长参数l传输并更新一次静态区域的数据即可,而动态区域的数据则是实时更新,因此不仅不会对直播产生任何影响,而且通过降低传输的数据包数目的方案来提高传输速度以保障流畅性,而通过优化的编码方案,还可保障视频传输的高清晰度,具有非常好的实际应用意义。

本发明还根据上述基于超低码流的高清视频流畅直播方法对应提供高清视频流畅直播装置,其包括采集端处理装置和播放端处理装置,其中,所述采集端处理装置包括:

视频采集模块,用于采集视频数据;

数据处理模块,用于对视频数据的处理和编码,一般由dsp和存储器实现;

数据编码模块,用于将数据处理模块处理后的视频数据编码成低码流视频流;

数据封包模块,用于将数据编码模块输出的低码流视频流封装成预定协议的数据包;

数据缓存模块,至少包括第一数据缓存、第二数据缓存和第三数据缓存;

数据传输模块,用于将封装成预定协议的数据包传输给云端服务器;

其中,所述数据编码模块对处理和编码后的视频数据进行再次编码处理,将其编码成低码流视频流;编码成低码流视频流具体包括如下过程:过程a:扫描视频数据的图像帧序列中的视频画面,将该视频画面划分为动态区域和静态区域,对静态区域进行交错视频编码,并存储于第一数据缓存中,将动态区域进行变换和量化编码,并存储于第二数据缓存中;过程b:预先设置扫描视频画面的静态区域的时长参数,在该时长内,只针对视频画面的动态区域进行扫描并处理;过程c:间隔预设时长扫描视频画面的静态区域中是否有运动目标,如果没有,执行下一步;如果有,则将该静态区域继续划分为绝对静止区域和非绝对静止区域,并将非绝对静止区域进行变换和量化编码后存储于第三数据缓存中,并执行下一步。

所述播放端处理装置包括:

接收器,用于在任意时间点接收云端服务器发送的数据包;

解码器,用于对接收器接收到的数据包进行解码;

综合处理器,用于综合第一缓存、第二缓存和第三缓存的数据;

播放器,用于播放综合处理器处理后的视频数据。

其中,综合处理器执行如下过程:

将第一缓存、第二缓存和第三缓存中描述同一视频数据的图像帧序列中的视频画面的数据合并在一起,针对同一时刻的数据,如果第三缓存对应该时刻为空,则将第二缓存中对应同一视频数据的图像帧序列中的视频画面的动态区域与第一缓存中对应该时刻所处的预设时长中同一视频数据的图像帧序列中的视频画面的静态区域的数据进行合并;如果第三缓存对应该时刻不为空,则将第三缓存中的对应数据覆盖第一缓存中的对应数据,并将该覆盖后的数据作为该时刻所处的预设时长内的静态区域的数据。

此外,综合处理器还执行如下过程:综合第一缓存、第二缓存和第三缓存的数据后,检测该数据是否达到预设长度以及播放端的接收直播流的带宽是否达到预设带宽,如果是则开始播放视频;如果否,则继续接收数据并综合直至综合后的数据达到预设长度以及播放端的接收直播流的带宽达到预设带宽。

本发明在编码时,将实时对动态区域进行编码处理,而对静态区域设置时长参数,间隔预定时间后对静态区域进行扫描,判断是否有移动目标,如果有则认为静态区域中有动态区域,则将该静态区域中的动态区域记为非绝对静止区域,将其余区域记为绝对静止区域;对于绝对静止区域,因之前对其进行过编码,因此不做任何处理;对于其中的非绝对静止区域,则将其变换和量化编码后存储于第三数据缓存中。而在视频播放时,将第三数据缓存中更新后的非绝对静止区域的数据替换之前第一数据缓存中的数据即可。

本发明采用独特设计的低码流视频流的编码方案,通过将直播中的视频画面划分为静态区域和动态区域,并分别对动态区域和静态区域采用不同的编码工具进行编码,使其能够以较低的码率、较高的压缩比以及较小的失真对视频进行编码,从而兼有流畅性和清晰度两者优势。

在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以用相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。

应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。

此外,本发明的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其他的时间顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本发明的技术范围构成限制。

尽管上面已经通过对本发明的具体实施例的描述对本发明进行了披露,但是,应该理解,上述的所有实施例和示例均是示例性的,而非限制性的。本领域的技术人员可在所附权利要求的精神和范围内设计对本发明的各种修改、改进或者等同物。这些修改、改进或者等同物也应当被认为包括在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1