论文部分内容阅读
随着大规模集成电路、多媒体数据压缩、高宽带网络和大容量存储器件等技术的发展,目前视频应用领域在系统应用、数据压缩、传输和存储等诸多方面的瓶颈限制已被逐个打破。这使得视频被广泛用于娱乐传媒,安防监控和数字记录等领域。视频有实时性的要求,即为了保证连续性,播放帧的间隔必须大于人视觉的反应时间,在显示上表现为刷新率必须大于人眼的分辨帧率。因此用户感观上不同于文本和静态图片,这给传统基于文本和图片的图形化用户界面带来了挑战,即如何使视频应用程序具有良好的人机交互界面。为了解决这个矛盾,人们提出了在屏显示技术(On Screen Display,OSD),即把用户界面混合叠加到视频上。OSD大多由硬件实现,提供分辨率小、色彩数低的文字和图形显示接口,被广泛用于嵌入式系统。而在桌面计算机上,缺少相关的硬件,折中的办法是把GUI显示和视频显示分开,但该折中在全屏显示时失效。为解决失效问题,提出了软件OSD的设计与实现,并将GUI移植到该OSD上构造实现视频GUI,实时视频GUI的研究对提高视频应用程序的交互性具有重大意义。在GUI的设计与实现方面,使用了基于信号—槽机制的对象间通信机制,使得对象具有处理消息的能力,更进一步设计GUI的消息驱动模型和对象模型。在实现信号-槽机制时,采用编译时和运行时相结合的方法减少了对预处理工具的依赖并且保证了效率。在此基础上,实现了用于用户界面设计时常用的控件库,为视频应用程序的界面开发提供API接口。与普通GUI相比,视频GUI的数据流的分层结构更加明显,本文将其分为应用层、数据层、OSD层和抽象层,并对每个层次所涉及的理论进行了深入的分析。其中数据层涉及到OSD混合区域的映射问题,为使得混合器处理的点数最小,提出了GUI面到OSD混合面的两级映射方法;在混合器处理界面图形和视频帧的过程当中使用了并行计算延迟引用的方法,保证视频播放的实时性;OSD混合器提供针对界面图形结果的Alpha混合和针对视频数据的Alpha混合,达到GUI前景和视频背景的任意点以任意Alpha值的混合,使得混合结果中的界面与视频的融合更加自然直观;视频作为OSD混合器另一个输入端,为了能使混合器能兼容多种视频来源,本文还设计了可复用视频处理框架,定义了获取数据的接口,从而使视频GUI能方便的应用在不同场合。最后,通过多媒体跑步机上使用视频GUI完成电视播放终端的实例表明,在此GUI的API的基础上构建的Linux视频应用程序界面友好具有很好的交互性。