为移动多媒体设备选择最优协议需要仔细评估所有的系统和空中接口参数,采用哪种方法要取决于系统效率、通信信道特征、显示参数和功耗等因素。本文讨论了远程图像显示中的传输带宽、图像显示和功耗等主要技术挑战,并分析了瘦客户机协议、基于原语的协议和Tigress协议在解决这些挑战中的应用及特性。

到目前为止,还没有哪个协议被广泛用于像移动设备这样的多媒体嵌入式设备上的远程图像重放。这些设备还面临着许多挑战,这些挑战推迟了技术协议的实际应用。因为这些设备受到电源和可用资源的限制,它们对用户接口的请求响应时间太长。而无线环境中的低带宽和不稳定的网络传输特性也是响应时间长的原因之一。尽管存在这些现实的挑战,但并不是不可克服,业界已有很多建议方案使瘦客户机用户界面成为可能。

瘦客户机协议

目前,包括台式机适用的X Windows和RDP在内的所有协议有一个共同特征,即客户机需要丰富的系统资源用于显示、获取用户输入以及与显示服务器通信,另外一个共同点是所有协议都要求客户端能保持状态。这两个特点使得只有那些工作在功能强大的工作站,并通过静态媒介通信的“胖”客户机才能提供,如果客户机所在系统的资源非常有限,通信媒介又不可靠(如移动网络),那么这些协议将会失效。

为了解决这些问题,业界开发了瘦客户机协议(thin client protocol),该协议既应用在公共领域(如虚拟网络计算或VNC)也用在专利产品(如Cyrix的ICA)。虽然已在某些资源受限的设备(如蜂窝电话)上尝试过瘦客户机的实现,但瘦客户机的主要应用仍是PC和工作站。瘦客户机协议在低功率多媒体计算领域仍面临着诸多挑战。

基于原语的协议解决传输带宽问题

将大量图像数据传送到远程设备需要很高的带宽,要求的具体带宽大小取决于显示分辨率。即使图像经过压缩,数据的传送量也非常可观,如图1所示。目前的移动和手持设备支持的显示分辨率达到了QVGA尺寸和16位色彩深度(65536种颜色)。随着显示技术的发展,将来还会有更高的要求。

如何才能满足日益增长的带宽需求呢?其中一种策略是采用具有图像压缩功能的协议(见图2)。为了实现实时远程显示所需的快速屏幕刷新,这种协议的系统实现需要在客户端配置快速、高压缩率的引擎,在服务器端配置快速解压缩引擎,还需要在客户和服务器两端配置低开销的传输协议。尽管一些多媒体处理器拥有快速的图像解压缩引擎,但许多处理器受I/O带宽的限制,无法将屏幕上捕获的帧数据向编解码器、然后从编解码器到传送软件的快速传递。

为了克服这样的问题,一些设计师转而采用了基于原语(primitive-based)的协议(见图3),这些协议在远程显示方面使用了完全不同的方法。远程信息处理接口至图像显示引擎(Tigress)协议就是其中的一种,它充分利用了目标处理器的视频处理功能。在Tigress协议中,服务器将屏幕上的显示对象转换成原语图像请求列表,然后以数据包的形式在通信媒介中传输。例如,如果屏幕上包含带文字的GUI视窗,那么图像请求可能包含画矩形、显示字体等命令,客户机接收到请求数据包后先将数据包还原为命令,然后调用图像引擎执行命令,同时向服务器返回响应数据包。

由于发送的数据只包含编码过的命令和参数,基于原语的协议的带宽要求比基于图像的方法低很多。

尽管基于原语和基于图像的瘦客户机协议各自的架构不同,但两者都必须从公共的算法特性集中作出选择,包括以下三种:

1. 服务器推(server push)与客户机拉(client-pull) 要么服务器发送(或“推”)屏幕刷新信息,要么客户机轮询服务器请求显示数据(“拉”)。

2. 慢速与快速 屏幕数据要么以客户机的帧速率“缓慢地”刷新,要么根据服务器的屏幕刷新率“急切”地刷新。

3. 压缩方案 基于图像的协议可能根据网络情况选择不同的压缩方案,而基于原语的协议可能对位图数据进行压缩。

解决传输可靠性问题

由于客户机要求再生服务器显示的实际处理过程,瘦客户机计算要求无差错的通信。这种要求对移动和无线通信来说是很大的挑战,因为正常的移动和无线通信信道都有一定的噪声干扰。对于基于图像的协议来说,在不可靠的传输中发生的误比特会导致不同程度的图像再现故障,可能是某个像素值错误的轻微故障,也可能是整个图像帧丢失的严重故障。当使用图像压缩功能时误比特效应可能会产生更严重的后果。

可靠性对基于原语的协议来说甚至更重要。数据丢失会导致命令不能被执行,从而在客户机上造成不完整的显示。数据出错很容易被发现,其后果是命令的错误执行,最终导致远程显示内容与服务器显示内容不匹配。

那么,如何在通信协议中保证可靠性呢?在基于IP的网络中,传输控制协议(TCP)可用来提供端到端的可靠传输。对瘦客户机来说,TCP协议的主要优点是自同步(self-clocking),即服务器发出请求的速度与收到确认的速度一样快。在无错误的通信媒介中可以形成快速的刷新率。然而,在易于出现错误的信道中,远程显示刷新率会变慢。

对多媒体处理器来说,TCP协议的主要缺点是处理负担太重,它需要几千字节的存储器,会给处理器带来沉重的负担。在移动网络上使用TCP的主要缺点是会频繁地出现连接中断,从而造成较高的重连开销,因为每次重连必须重复进行三向握手过程。

为了支持“轻载”通信,Tigress使用了比TCP更简单的带滑动窗口的“Go-back-N ARQ”协议(见图4)。该协议类似于V42.bis调制解调器协议,允许服务器向客户机发送窗口尺寸为N的请求串,期间不需要等待应答响应(ACK)。在过去的(N-1)个请求中,服务器必须请求来自客户机的应答。

服务器启动一个重传定时器。如果定时器终止时服务器还没有收到ACK,那么它就重传全部N个数据包,否则服务器继续发送后续的请求。如果客户机收到顺序紊乱的请求(数据丢失的情况),它会发送一个否定的确认(NAK)响应数据包,指示服务器必须重传从上一个确认数据包开始的窗口大小的所有数据包。

Tigress协议消除了客户端的缓存,只要求为上个ACK保持简单的状态变量。与TCP协议一样,在无差错通信信道上该协议会形成快速的屏幕刷新,有差错信道上的刷新率则较低。与TCP相比,它的优势在于重连开销低得多,只要求ACK状态变量重新初始化。最终使远程显示内容能与本地显示内容保持一致。

低功耗策略

由于可用资源非常有限,低功率多媒体设备在远程图像显示中必须被用作“超级瘦客户机”。移动设备没有太多的存储器,为了节省功耗必须以较低的时钟速度运行整个系统。事实表明,同时使用很多系统功能单元会导致更大的功耗。换句话说,如果同一时间激活的功能单元越少就越能达到较低的功耗。此外,处理器管线迟延也会降低电源的使用效率。

另外一个观点是使用直接存储器访问(DMA)相对于编程I/O可以显著地降低功耗,因为处理器不参与I/O处理过程。DMA最多可以节省20%的功耗。

那么,如何把这些低功耗理念应用到瘦客户机上呢?如前所述,基于图像的协议通过I/O在通信外设、解压缩引擎和显示外设之间移动数据。为了获得更低的功耗,多媒体处理器应该使用DMA在它的外设和存储器之间拷贝数据。在大多数平台上,DMA很简单,它执行I/O的速度要比编程I/O快。但并不是所有外设接口(特别是网络接口)都配备有DMA。

基于图像的协议也需要软件或硬件解压缩引擎,因此也会消耗部分功率。另外,基于图像的瘦客户机软件必须折衷处理图像解压缩速度和处理器时钟速率之间的关系。基于原语的协议的计算密度较高,因为它们需要执行图像请求命令。对于图像编解码器,图像软件引擎的功耗要比硬件引擎少得多,代价是占用较多处理器处理能力。图形引擎的最优化执行是基于原语协议的关键要素。

作者:Rajesh Mishra

高级软件工程师

Email: rajesh.mishra@analog.com

ADI公司数字媒体技术中心

Advertisements