场景自适应的屏幕编码码率控制方法及其系统转让专利

申请号 : CN201210085965.6

文献号 : CN102625106B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢伟凯林艺申瑞民

申请人 : 上海交通大学

摘要 :

一种视频图像处理领域的场景自适应的屏幕编码码率控制方法及其系统,该方法通过检测屏幕信息的变化剧烈程度并分类后,针对分类得到的不同运动场景调用对应的码率控制方案得以实现;本发明在有效控制峰值码率的基础上,能够保障对屏幕图形界面操作场景编码的清晰度和对屏幕视频播放场景编码的流畅度。

权利要求 :

1.一种场景自适应的屏幕编码码率控制方法,其特征在于,通过检测屏幕信息的变化剧烈程度并分类后,针对分类得到的不同运动场景调用对应的码率控制方案得以实现;

所述的屏幕信息是指:屏幕所显示的若干帧;

所述的变化剧烈程度是指:依次进行相邻帧变化评估以及连续帧变化评估;

所述的分类是指:根据屏幕内容的变化剧烈程度通过相邻帧变化评估以及连续帧变化评估区分为慢速运动场景和快速运动场景;

所述的连续帧变化评估是指:根据包含当前帧在内的连续若干帧的相邻帧变化评估结果,即是否是显著变化帧判断当前屏幕播放场景;

所述的相邻帧变化评估是指:根据当前帧相比上一帧图像发生变化的部分的面积是否大于屏幕分辨率的60%判断当前帧是否是显著变化帧。

2.根据权利要求1所述的方法,其特征是,所述的连续帧变化评估为:

初始默认屏幕播放场景为慢速运动场景,然后参考连续若干帧是否显著变化进行播放场景识别的如下分类:a)当连续若干帧都是显著变化帧则判定当前的屏幕处于快速运动场景;

b)当连续若干帧都是非显著变化帧则判定当前的屏幕处于慢速运动场景;

c)其他情况:不改变当前屏幕播放场景。

3.根据权利要求1所述的方法,其特征是,所述的包含当前帧在内的连续若干帧是指:当前帧的前若干帧和/或者当前帧的后若干帧。

4.根据权利要求1或2所述的方法,其特征是,所述的若干帧的帧数的计算公式为帧数=[预设参考时间×帧率],其中:参考时间为0.1-2秒,帧率为10-30帧/秒。

5.根据权利要求1所述的方法,其特征是,调用对应的码率为:

针对慢速运动场景,根据码率的上限调整输出码流的帧率来控制码率;

针对快速运动场景,根据码率的上限调整编码量化参数来控制码率;

所述的码率的上限是指单位时间内能够传输的数据量的上限。

6.一种实现上述任一权利要求所述方法的系统,其特征在于,包括:屏幕信息采集模块、场景分类模块、码率控制模块和编码模块,其中:屏幕信息采集模块与场景分类模块相连并传输变化区域信息,屏幕信息采集模块与编码模块相连并传输屏幕图像原始数据,场景分类模块与码率控制模块相连并传输当前屏幕场景分类信息,码率控制模块与编码模块相连并传输码率控制参数信息,编码模块输出编码压缩后的数据;

所述的场景分类模块包括:相邻帧变化评估单元、连续帧变化评估单元、评估结果存储器,其中:相邻帧变化评估单元用于判断当前帧是否是显著变化帧并将评估结果存入评估结果存储器,其中:显著变化帧指的是相较于前一帧的变化区域面积大于屏幕分辨率的

60%的屏幕帧图像;评估结果存储器用于保连续若干帧的相邻帧变化评估结果作为连续帧变化评估单元的输入;连续帧变化评估单元用于根据包括当前帧在内的连续若干帧数据的相邻帧变化评估结果对当前屏幕播放场景进行分类并将结果输出给码率控制模块;

所述的码率控制模块包括:码率控制选择器、快速运动场景码率控制器、慢速运动场景码率控制器,其中:码率控制选择器用于根据屏幕播放场景分类结果选择码率控制器;快速运动场景码率控制器用于进行快速运动场景的码率控制,根据人体视觉系统的特点,快速运动场景码率控制器以牺牲图像静态质量为代价控制码率;慢速运动场景码率控制器用于进行慢速运动场景的码率控制,根据人体视觉系统的特点,慢速运动场景码率控制器以牺牲屏幕视频的帧率为代价控制码率。

7.根据权利要求6所述的系统,其特征是,所述的屏幕信息采集模块包括:屏幕RGB数据采集单元、变化区域采集单元和屏幕数据存储器,其中:屏幕RGB数据采集单元用于采集屏幕图像中每个像素的原始RGB值;变化区域采集单元用于采集屏幕当前帧相较于前一帧的变化区域信息,其中:变化区域指的是当前帧相较于前一帧图像发生变化的部分;屏幕数据存储器用于存储采集下来的连续若干帧屏幕图像原始RGB数据作为编码模块的输入。

8.根据权利要求6所述的系统,其特征是,所述的编码模块包括:颜色空间转换单元和编码器,其中:颜色空间转换单元用于将屏幕信息采集模块采集的屏幕图像原始数据进行颜色空间转换并输出符合编码器输入图像格式要求的图像;编码器用于对符合输入图像格式要求的图像进行编码,同时对码率控制模块提供码率控制参数传入接口以控制压缩后数据的码率。

说明书 :

场景自适应的屏幕编码码率控制方法及其系统

技术领域

[0001] 本发明涉及的是一种视频图像处理领域的方法及系统,具体是一种场景自适应的屏幕编码码率控制方法及其系统。

背景技术

[0002] 屏幕视频编码,简称屏幕编码,指的是将显示于一台计算机屏幕的内容实时采集下来并对其进行压缩编码以降低数据量的方法,编码后的数据可以实时传输到远程终端上进行解码显示或者保存到本地文件中供事后回放,被广泛运用于远程教育、网络会议、远程桌面连接等领域。码率控制是视频编码的重要组成部分,指的是将压缩后的码流的比特率限定在一个预设的上限之下的技术手段,在屏幕编码中,由于计算机屏幕往往分辨率较高,编码数据量变化范围较大,码率控制对于编码后的视频质量和编码系统对不同的网络条件的适应能力有重要的作用。
[0003] 在常见的需要对屏幕进行编码的应用中,既包含a.变化很小甚至基本不动的场景,例如在远程教育领域中老师在屏幕上播放ppt,可能很长时间才会翻过一页,又包含一些b.激烈变化的场景,例如老师在屏幕上播放一段演示视频以辅助教学,还包含c.上述a与b的混合或者交替的场景,即相较于传统自然视频,屏幕视频往往包括更加丰富的场景变化。而且人体视觉系统对于不同场景的视觉特性也不同:在变化很小的场景中侧重于画面的静态质量,即在上述ppt播放例子中要求画面清晰能够看清ppt中的所有文字并且尽量避免块效应等缺陷;而在变化激烈的场景中则侧重于画面的连续性,即在上述的视频播放例子中要求视频能够平滑变化流畅播放。
[0004] 已有的视频编码码率控制方法大体上可以分为两种:以牺牲质量为代价降低码率和以牺牲帧率为代价降低码率。两者都以单一的方案应对屏幕中可能出现的不同场景,无法满足上述的屏幕编码时出现的情况的要求。
[0005] 经对现有技术的文献检索发现:
[0006] 美 国 专 利 号 US2007/0153692A1 的 专 利 Methods and Apparatuses for Performing Scene Adaptive Rate Control(场景自适应码率控制方法与设备)提出了根据网络带宽和相邻帧变化部分调整目标码率和帧率进行码率控制的方法;
[0007] 美国专利号US5872598的专利Scene Change Detection Using Quantization Scale Factor Rate Control(使用量化比例因子码率控制的场景切换检测)提出了根据计算当前帧与参考帧之间的绝对差值之和进行场景切换检测,若检测到场景切换则重新计算量化比例因子开始一个新的画面组的编码的码率控制方法;
[0008] 中国专利申请号200910054923.4的专利屏幕编码的码率控制方法提出了一种利用典型屏幕场景下相邻帧往往变化较小的特点在固定的码率的上限之下分块分时按片收发的码率控制方法。
[0009] 此外,Block-based method for real-time compound video compression,in Proceedings of Mobile Multimedia/Image Processing,Security,and Applications2010,ser.Presented at the SPIE,vol.7708,Orlando,Florida,USA,Apr.2010,pp.77080S-77080S-8(基于分块的实时混合视频压缩方法)提出了一种基于单帧变化区域面积的码率控制方法,解决了在场景切换中传统的码率控制算法可能失效的问题;
[0010] Improved rate control and motion estimation for h.264 encoder,in Image Processing,2007.ICIP 2007.IEEE International Conference on,vol.5.IEEE,2007,pp.V-309(改进的H.264编码器码率控制和运动估计算法)中介绍了基于H.264框架实现的编码器x264中实现的码率控制算法,在其中适用于直播场景的单趟码率控制(one-pass RC)方法中,固定质量参数模式(CQP)使用固定的质量参数;平均码率模式(ABR)根据已编码数据的平均复杂度来预测当前帧的复杂度并以此选择量化参数;固定质量因子模式(CRF)使用固定的质量因子。
[0011] 在上述方法中:US2007/0153692A1、US5872598和IEEE文献中的ABR模式与CRF模式主要为b场景设计,能够控制生成码流的比特率而且保障屏幕在播放视频时的流畅性,但是无法满足屏幕在a场景时对静态画面质量的要求;CN200910054923.4中记载的技术虽然充分利用a场景的特点,不影响屏幕图像的分辨率并且在有效控制峰值码率的基础上保障画面质量的清晰度,但是当屏幕进入b场景之后会频繁跳帧导致视频无法流畅播放;SPIE文献中记载的方法虽然在一定程度上考虑了a场景和b场景的差异性,但是直接依据变化区域面积来调整量化参数将会导致视频质量的不稳定;而IEEE文献中记载的方法的CQP模式虽然对a场景和b场景的编码效果都比较理想,但是无法控制峰值码率。

发明内容

[0012] 本发明针对现有技术存在的上述不足,提供一种场景自适应的屏幕编码码率控制方法及其系统,对屏幕播放场景进行分类并选用适用于当前屏幕播放场景类别的码率控制方案。本发明在有效控制峰值码率的基础上,能够在对屏幕图形界面操作场景的编码中取得更高的PSNR保障清晰度,在对屏幕视频播放场景的编码中维持稳定且更高的帧率保障流畅度。
[0013] 本发明是通过以下技术方案实现的:
[0014] 本发明涉及一种场景自适应的屏幕编码码率控制方法,通过检测屏幕信息的变化剧烈程度并分类后,针对分类得到的不同运动场景调用对应的码率控制方案得以实现,本方法具体步骤包括:
[0015] 步骤一、首先采集屏幕信息之后根据屏幕内容的变化剧烈程度通过相邻帧变化评估以及连续帧变化评估区分为慢速运动场景和快速运动场景。
[0016] 所述的屏幕信息是指:屏幕所显示的若干帧;
[0017] 所述的变化剧烈程度是指:依次进行相邻帧变化评估以及连续帧变化评估,其中:
[0018] 所述的相邻帧变化评估是指:根据当前帧相比上一帧图像发生变化的部分的面积是否大于屏幕分辨率的60%判断当前帧是否是显著变化帧。
[0019] 所述的连续帧变化评估是指:根据包含当前帧在内的连续若干帧的相邻帧变化评估结果,即是否是显著变化帧判断当前屏幕播放场景,具体为:
[0020] 初始默认屏幕播放场景为慢速运动场景,然后参考连续若干帧是否显著变化进行播放场景识别的如下分类:
[0021] a)当连续若干帧都是显著变化帧则判定当前的屏幕处于快速运动场景;
[0022] b)当连续若干帧都是非显著变化帧则判定当前的屏幕处于慢速运动场景;
[0023] c)其他情况:不改变当前屏幕播放场景。
[0024] 所述的包含当前帧在内的连续若干帧是指:当前帧的前若干帧和/或者当前帧的后若干帧;
[0025] 所述的若干帧的帧数的计算公式为帧数=[预设参考时间×帧率],其中:参考时间为0.1-2秒,帧率为10-30帧/秒。
[0026] 步骤二、根据屏幕播放场景分类结果调用对应适用该类别的码率控制方案,具体为:
[0027] 针对慢速运动场景,根据码率的上限调整输出码流的帧率来控制码率;
[0028] 针对快速运动场景,根据码率的上限调整编码量化参数(QP)来控制码率。
[0029] 所述的码率的上限是指单位时间内能够传输的数据量的上限。
[0030] 本发明涉及一种场景自适应的屏幕编码码率控制系统,包括:屏幕信息采集模块、场景分类模块、码率控制模块、编码模块,其中:屏幕信息采集模块与场景分类模块相连并传输变化区域信息,屏幕信息采集模块与编码模块相连并传输屏幕图像原始数据,场景分类模块与码率控制模块相连并传输当前屏幕场景分类信息,码率控制模块与编码模块相连并传输码率控制参数信息,编码模块输出编码压缩后的数据。
[0031] 本发明在有效控制峰值码率的基础上,能够保障对屏幕图形界面操作场景编码的清晰度和对屏幕视频播放场景编码的流畅度,并且在对二者混合的场景的编码能够取得更好的主观质量。本发明的方法可以广泛地应用于远程教育、网络会议、远程桌面连接等领域。

附图说明

[0032] 图1是本发明流程示意图。
[0033] 图2是本发明系统框图。
[0034] 图3是实施例2系统示意图。
[0035] 图4是实施例2流程示意图。

具体实施方式

[0036] 下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0037] 实施例1
[0038] 本实施例按照图1方法进行实施,系统如图2所示,包括:屏幕信息采集模块、场景分类模块、码率控制模块、编码模块,其中:屏幕信息采集模块与场景分类模块相连并传输变化区域信息,屏幕信息采集模块与编码模块相连并传输屏幕图像原始数据,场景分类模块与码率控制模块相连并传输当前屏幕场景分类信息,码率控制模块与编码模块相连并传输码率控制参数信息,编码模块输出编码压缩后的数据。
[0039] 所述的屏幕信息采集模块包括:屏幕RGB数据采集单元、变化区域采集单元、屏幕数据存储器,其中:屏幕RGB数据采集单元用于采集屏幕图像中每个像素的原始RGB值;变化区域采集单元用于采集屏幕当前帧相较于前一帧的变化区域信息,其中:变化区域指的是当前帧相较于前一帧图像发生变化的部分;屏幕数据存储器用于存储采集下来的连续若干帧屏幕图像原始RGB数据作为编码模块的输入。
[0040] 所述的场景分类模块包括:相邻帧变化评估单元、连续帧变化评估单元、评估结果存储器,其中:相邻帧变化评估单元用于判断当前帧是否是显著变化帧并将评估结果存入评估结果存储器,其中:显著变化帧指的是相较于前一帧的变化区域面积大于屏幕分辨率的60%的屏幕帧图像;评估结果存储器用于保存连续若干帧的相邻帧变化评估结果作为连续帧变化评估单元的输入;连续帧变化评估单元用于根据包括当前帧在内的连续若干帧数据的相邻帧变化评估结果对当前屏幕播放场景进行分类并将结果输出给码率控制模块。
[0041] 所述的码率控制模块包括:码率控制选择器、快速运动场景码率控制器、慢速运动场景码率控制器,其中:码率控制选择器用于根据屏幕播放场景分类结果选择码率控制器;快速运动场景码率控制器用于进行快速运动场景的码率控制,根据人体视觉系统的特点,快速运动场景码率控制器以牺牲图像静态质量为代价控制码率;慢速运动场景码率控制器用于进行慢速运动场景的码率控制,根据人体视觉系统的特点,慢速运动场景码率控制器以牺牲屏幕视频的帧率为代价控制码率。
[0042] 所述的编码模块包括:颜色空间转换单元和编码器,其中:颜色空间转换单元用于将屏幕信息采集模块采集的屏幕图像原始数据进行颜色空间转换并输出符合编码器输入图像格式要求的图像;编码器用于对符合输入图像格式要求的图像进行编码,同时对码率控制模块提供码率控制参数传入接口以控制压缩后数据的码率。
[0043] 实施例2
[0044] 如图3所示,为本实施例在远程教育领域中的一个实现方案。
[0045] 本实施例的应用背景为一个低码率环境下的实时直播系统,同时需要兼顾PC客户端和手机客户端的不同配置。具体采用的参数如下:帧率为10帧每秒,峰值码率设为262Kbps。
[0046] 本实施例所述的屏幕编码方案主要包括如下步骤:
[0047] 步骤一、Mirror Driver采集屏幕图像和变化区域信息,即使用Windows操作系统的Mirror Driver机制采集屏幕图像和变化区域信息并将屏幕原始RGB数据保留到屏幕数据存储器中,其中:所述的Mirror Driver指的是微软提供的Windows操作系统下的镜像驱动技术,在一个虚拟显示设备中模拟所有在物理显示设备中执行的操作,可以方便地获得当前屏幕的各种数据。所述的变化区域信息指的是由Mirror Driver直接获得的当前帧与前一帧相比较发生变化的像素组成的图形区域的最小外接矩形所围成的区域,由矩形坐标表示。
[0048] 步骤二、播放场景识别模块对当前屏幕播放场景进行识别归类,即播放场景识别模块根据屏幕内容在一段时间内的变化剧烈程度对屏幕播放场景进行识别归类,其中:所述的屏幕播放场景分为两种:慢速运动场景和快速运动场景。具体为:
[0049] 步骤2.1)根据单帧变化区域信息判断当前帧与前一帧是否发生显著变化:当前帧相比上一帧图像变化区域的面积大于屏幕分辨率的60%,并将结果写入存储器中。
[0050] 步骤2.2)读取存储器中连续若干帧数据是否是显著变化帧并以此判断当前屏幕播放场景:在编码开始时将屏幕播放场景初始化为慢速运动场景,之后选取0.5秒为识别参考时间,即参考连续五帧是否显著变化进行播放场景识别分类,从存储器中读出当前帧前连续五帧(包括当前帧)的相邻帧变化评估结果,若连续五帧都是显著变化帧则判定当前的屏幕处于快速运动场景,若连续五帧都是非显著变化帧则判定当前的屏幕处于慢速运动场景,其他情况则不改变当前屏幕播放场景。以多帧的数据为识别分类参考是为了避免将一些持续时间较短的大面积变化场景(如窗口最小化)错误识别为快速运动场景,造成屏幕播放场景在短时间内来回切换导致编码后的视频质量不稳定。
[0051] 步骤三、根据当前屏幕播放场景选择合适的码率控制方案,即当屏幕播放场景被识别为慢速运动场景时,选用x264编码器中实现的固定量化参数方案(CQP)的改进方案自适应调节帧率的固定量化参数方案(FRA-CQP)方案;而当屏幕播放场景被识别为快速运动场景时,选用固定质量因子和视频缓冲验证混合模式(CRF+VBV)方案。在慢速运动场景中,人对于计算机的操作通常比较缓慢且常常有长时间的停顿,所以视频的清晰度往往比流畅性更加重要。FRA-CQP模式的核心思想是以降低帧率为代价来保证码率控制的目标和每一帧数据的清晰度。该模式中x264编码器开启多分片(multi-slice)选项,将一帧的数据编码为一系列切片并且将这些切片按顺序划分为切片组,最后以切片组为单位进行输出,并且将每秒钟的编码机会数设为系统帧率,即每秒10个编码机会。具体的编码流程图如图4所示,在开始一次新的编码机会时,首先将编码剩余预算i_budget_left初始化为编码预算i_gos_budget,然后检查上一帧的数据是否已经完全输出,若已经完全输出则开始进行新一帧数据的编码,将当前帧编码为一系列的切片,接下来依据编码剩余预算将这些切片划分为切片组,划分的方法如下:一个切片组包含尽可能多的有序切片且切片组大小必须控制在预算之内,然后输出第一个分片组。如果上一帧的数据还有部分分片组尚未输出,则编码器暂时不对新一帧的数据进行编码,而是根据先前的划分的结果输出上一帧的一个分片组,直到上一帧的数据被完全输出后,编码器再检查当前的码率预算是否满足开始新一帧数据的编码的要求,如满足则开始新一帧数据的编码,否则结束当前编码机会。在快速运动场景中,CRF+VBV混合方案在保证视频质量基本稳定的基础上考虑缓冲区的充盈度通过调整量化参数来进行码率控制,码率不高于峰值码率并且剧烈运动的屏幕能够流畅播放。
[0052] 步骤四、改进的x264编码器根据选用的码率控制方案对屏幕图像进行编码,即使用添加码率控制参数传入接口的x264编码器对经过颜色空间转换的屏幕图像进行编码,其中:所述的x264编码器指的是基于通用视频编码标准H.264的一款经典的开源编码器,具有很高的编码效率。所述的颜色空间转换用于将屏幕数据存储器中保存的RGB格式的原始屏幕数据转为符合x264编码器输入要求的YUV420格式。
[0053] 步骤五、广播模块将编码压缩后的数据进行广播,即广播模块对编码压缩后的数据附上时间戳并且根据需要插入空帧最后将处理好的数据进行广播,其中:所述的插入空帧的操作的目的是使最终生成的码流的帧率固定以保证其通用性,即能够在安装有H.264 codec的播放器中播放。
[0054] 将本发明与CRF+VBV,ABR+VBV和基于现有技术CN200910054923.4实现的编码方法SJSC进行比较,其中,ABR设置平均码率bitrate=262Kbps,CRF设置质量因子f_rf_constant=26,FRA-CQP中设置量化参数QP=32,VBV设置峰值码率i_vbv_max_bitrate=262Kbps,其他编码参数采用缺省值。实验证明,本发明将生成码流的码率有效控制在峰值码率之下的基础上,在对屏幕图形界面操作场景的编码中,本发明相对CRF+VBV和ABR+VBV能够取得3-8dB的PSNR增益,得到与SJSC类似的静态图像质量;而在对屏幕视频播放场景的编码中,本发明的平均帧率比SJSC高4-7帧每秒,激烈运动的屏幕能够流畅播放。