TOP

比赛题目六:windows屏幕变化捕获与回放
2011-12-12 10:21:54 来源: 作者: 【 】 浏览:20376
比赛题目六:
 
 Windows屏幕变化捕获和回放
 
项目简介
Windows屏幕变化捕获是通过一种检测手段,检测出Windows操作系统屏幕在一定时间间隔以内发生变化的区域,并截取这些变化区域的屏幕图像,将图像数据保存到文件并同时发送到另一主机。屏幕变化回放就是按照固定的时间间隔连续地回放捕获到的变化区域的图像。
目前大多数VNC软件采用Mirror Driver技术捕获屏幕变化区域,但是对于采用DirectDraw绘制技术的软件引起的屏幕变化无法捕获。如UltraVNC,TigerVNC等。
某些软件采用定时截取全屏幕图像再进行全像素比较的方法,能够精确计算出屏幕变化区域,但由于计算量大、消耗内存多导致性能严重下降。
还有一些软件由于会重复捕获变化区域产生数据冗余,导致存储或传输数据量过大。Splashtop Remote Desktop在苹果AppStore收费软件中下载量一度超过愤怒的小鸟,其PC端软件Splashtop Streamer凭借其出色的变化区域捕获性能取得了很大的成功。
 
业务场景
 屏幕变化捕获与回放是远程桌面、VNC软件的核心技术之一,可以应用于下列场景:
1. 远程会议:会议主持人向所有参与者播放自己的屏幕,讲解会议内容。
2. 远程控制:大多数VNC软件都采用了这种技术。
3. 远程协助:应用于远程维护,例如QQ的远程协助。
4. 屏幕录制:可用于教育课件录制、软件操作演示。
5. 远程共享:包括桌面共享和应用程序共享。例如NetMeeting软件。
 
功能性需求
 1. 能够捕获到使用GDI技术绘制的屏幕变化。
2. 能够捕获到鼠标移动的屏幕变化。
3. 能够捕获到插入符闪烁引起的屏幕变化。
4. 成帧策略:按照固定的时间间隔将在该间隔内发生变化的所有区域进行合并,再剪裁掉冗余区域,最后构造成一帧。成帧间隔要小于等于33ms,即帧率大于等于30帧/秒。屏幕回放帧率与捕获帧率相同。
5. 帧压缩:对单个帧或连续帧进行压缩,允许采用成熟的压缩技术。
6. 帧存储:将压缩帧存入文件,回放时从文件读取帧。
7. 帧传输:将压缩帧传输到回放主机,回放时从网络读取帧。
8. 变化区域定义为一个矩形,而实际的变化形状是不规则的。这样,过大的矩形会导致帧数据量过多,最坏的情况是,矩形尺寸与屏幕尺寸相同;而过小的矩形会导致矩形数量过多。
9. 去除帧内冗余的变化区域。例如同一帧中,区域A和区域B存在交叠,则交叠部分的重复区域要去除。
10. 支持各种标准的屏幕分辨率,例如640*480,800*600,1024*768,1280*1024,1920*1080等,参考Windows控制面板中的屏幕分辨率设置中的几种设置。
11. 能够捕获到使用DirectDraw技术绘制的屏幕变化。
12. 能够捕获到使用OpenGL技术绘制的屏幕变化。
 
非功能性需求
 1. 软件运行分为2个独立进程,capture执行捕获过程,player执行回放过程。可以分别在不同的win32主机上运行。
2. 单独执行捕获过程,分辨率1024*768, 真彩色,从任务管理器观察CPU使用率不超过10%。(PC配置见“其他要求”)。
3. 单独执行回放过程,分辨率1024*768,真彩色,从任务管理器观察CPU使用率不超过10%。(PC配置见“其他要求”)。
4. 使用日志文件记载每个变化区域和所去除的冗余区域的屏幕坐标(x, y, width, height)、所属的帧编号,成帧时间和回放时间。
5. 单独执行捕获过程或回放过程,从任务管理器观察虚拟内存状况,曲线波动平稳,最大内存占用不超过10M。
 
其他限制条件
 1. 能够运行于Windows XP,Windows server、Windows vista、Windows 7等Win32平台。
2. 语言c/c++,
3. 开发平台VC6/VS2003/VS2005/VS2008任选.
 
测试用例
 测试1:玩3D游戏(如魔兽争霸)的录制与回放
 
测试2:使用迅雷看看播放视频的屏幕录制与回放
 
测试3:自动播放PPT的屏幕录制与回放
 
测试4:用户操作IE上网过程的屏幕录制与回放
 
测试5:采用MS Office编辑文档过程的屏幕录制与回放
 
其他要求
  1. 测试1-5的回放要流畅、无马赛克、无停顿。
  2. 测试4的鼠标移动回放平滑。
  3. 测试5的插入符闪烁回放明显。
  4. PC最低配置:CPU 1.5Hz, 内存512M,磁盘40G,显卡支持直接写屏并带有GPU。
  5. 允许利用GPU提高性能。
  6. 在采集、回放的过程中定时统计帧率,写入日志。
 
产品交付物
  1. 可运行的测试软件,capture.exe执行捕获过程,player.exe执行回放过程,capture.exe能够在后台运行。
  2. 设计文档,需要描述系统架构、捕获方法、压缩方案、矩形大小设定策略、传输方法、存储策略、冗余去除算法、回放渲染方案等。
  3. 测试文档,需要描述测试策略,典型测试用例及其执行结果。
  4. 性能测试数据和结果。
  5. 源代码。
 
评分标准
  1. 功能性需求的1-10和非功能性需求中的1-5,占45分,要求必须实现且满足其他要求1-3。少一项扣3分。
  2. 功能性需求的11,占5分。
  3. 功能性需求的12,占5分。
  4. 产品交付物1-5各占2分,其中质量占1分,共10分。
  5. 单独执行捕获过程,CPU平均消耗,以10%为基准,每降低一个百分点分别给1,2,3,4分,低于5%,给10分。
  6. 单独执行捕获过程,CPU平均消耗,以10%为基准,每降低一个百分点分别给1,2,3,4分,低于5%,给10分。
  7. 压缩比、采集数据量(含冗余去除算法)占15分,测试1-5采用同样的测试数据(3D软件、影片、PPT等)和测试时长,所保存的存储文件越小给分越多。
  8. 捕获和回放平均帧率低于30帧/秒,每少一帧扣1分。(注意:从非功能需求4和其他要求6的日志判断)。
  9. 实现了其他要求5,加2分。
  10. 实现了其他要求6,加2分。
关键字: 责任编辑:cnsoft
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇没有了 下一篇比赛题目五:基于安卓的移动应用..

相关栏目