论文部分内容阅读
虚拟网络计算(Virture Network Computing,VNC)是一款优秀的远程控制软件。VNC凭借其跨平台、低带宽占用和易于移植等特点得到了广泛应用。但是,VNC在处理多媒体应用尤其是在处理视频应用时,会出现严重卡顿现象。本文分析了VNC在处理视频应用的不足后,对VNC的编码模块和传输模式进行优化和实现,目的是提高VNC处理视频应用的能力,改善用户体验。主要工作如下:第一,VNC视频传输的研究与实现。本文设计了VNC的混合传输方案。在对VNC屏幕更新流程分析后,提出了更新区域分层检测算法获取VNC屏幕更新区域。本文提出了模式切换算法判断当前帧是否处于视频模式。VNC处于视频模式时,当前帧通过H.264进行编码,然后将编码后的数据通过RTP进行传输。若VNC处于非视频模式,当前帧仍通过RFB协议进行编码并传输。第二,为保证码流能够顺利传输并充分利用网络带宽,本文根据VNC获取屏幕的特点改进了x264的码率控制。本文在分析x264的码率控制方案后,对x264中的CRF+VBV模式进行优化。本文对帧级码率控制和宏块级码率控制进行优化。在帧级码率控制中,通过降低P帧的比特率来增加I帧的比特率,对于特定条件下的P帧选择SKIP模式作为最佳模式;在宏块级别码率控制中,通过降低慢速变化区的QP来提高快速变化区的QP,从而提高了非视频区域的图像质量。最后,混合传输方案的实现和测试。本文使用FFmpeg作为H.264的编解码器。本文在实现VNC的模式切换算法、传输模块和编解码模块后,对改进后的VNC进行测试。测试内容包括功能测试和性能测试。功能测试是对VNC的基本操作,观察VNC客户端的状态。性能测试是对VNC在CPU的使用率和网络带宽等指标进行测试。通过将测试结果与Tight VNC的测试结果进行对比,发现VNC的编码模块在使用H.264压缩标准后,CPU使用率有所提高,但是网络带宽明显降低。综合来看,使用混合传输方案的VNC在处理视频应用时,改善了视频播放的流畅性,提高了用户体验。