论文部分内容阅读
屏幕编解码(Screen codec)是一种针对计算机生成的屏幕图像序列的特殊的视频编解码技术。它将显示于一台计算机屏幕上的内容实时采集下来,进行压缩编码后,实时传输到远程终端上进行解码显示,或者存储到文件供事后回放。传统的屏幕编解码技术是基于复合图像压缩算法(Compound image compression),然后对屏幕视频进行变化区域检测和简单的运动搜索,但是一旦屏幕视频运动内容复杂,这样的压缩方式效率就比较低。目前压缩率最高的通用视频编码器是H.264编码器,使用这一编码器进行屏幕编码已经成为研究的新方向。X264是该标准编码器的最优的一个开源实现。本文首先对x264框架和编码算法进行了深入分析,而后在此基础实现了一个基于H.264视频编码器的屏幕编码系统。但是X264直接用于实时屏幕视频的压缩仍然存在着两个主要问题:一是编码器运算复杂,CPU占用率高,会影响屏幕编码系统录制的屏幕操作的流畅性;二是H.264编码器实时码率控制算法不能有效限制峰值码率,且所得压缩视频画面质量波动较大,会影响接收端用户的体验。针对这些问题,本文在x264的基础上实现了2个优化方案:首先,加入了基于Mirror Driver变化区域检测的编码模式决策优化,为无变化的区域的宏块快速模式决策,从而加快编码速度,经Intel VTune测试发现,该方法将CPU的执行时间有效降低了30%;然后又提出了一种自适应帧率的峰值码率控制方法(frame rate adaptive constantquantization parameter, FRACQP),它在x264原有的固定量化参数(Quantizaiton Parameter)模式基础上通过降低局部帧率来限制峰值码率。通过与x264原有峰值码率的对比实验,我们发现FRACQP所得的视频,峰值码率严格遵循上限,且画面质量的稳定,视频的平均PSNR提高了3~8db。