vncrfb编码格式总结

vncrfb编码格式总结

ID:35319050

大小:346.50 KB

页数:8页

时间:2019-03-23

vncrfb编码格式总结_第1页
vncrfb编码格式总结_第2页
vncrfb编码格式总结_第3页
vncrfb编码格式总结_第4页
vncrfb编码格式总结_第5页
资源描述:

《vncrfb编码格式总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、编码格式说明Raw(0)不进行编码,直接传送数据,是最慢的一种Copyrect(1)对于客户端,在已经有了相同象素数据的时候比较有效,比如移动或窗口内容滚动时RRE(2)将象素颜色相同的某一个矩形区域作为一个整体传输Hextile是RRE编码的变种,把屏幕分成16x16象素的小块,每块用Raw或RRE方式转送ZRLE(16)结合了zlib压缩编码格式本文的编码类型其他编码类型原始编码( Raw编码)即采用原始的像素数据,而不进行任何的加工处理。在这种情况下,对于一个宽度乘以高度(即面积)为N的矩形,数据就由N个像素值组成

2、,这些值表示按照扫描线顺序从左到右排列的每个像素。很明显,这种编码方式是最简单的,也是效率最低的。RFB要求所有的客户都必须能够处理这种原始编码的数据,并且在客户没有特别指定需要某种编码方式的时候,RFB服务器就默认生成原始编码。复制矩形编码( CopyRect编码)CopyRect编码方式对于客户端在某些已经有了相同的象素数据的时候是非常简单和有效的。这种编码方式在网络中表现为x,y坐标。让客户端知道去拷贝那一个矩形的象素数据。它可以应用于很多种情况。最明显的就是当用户在屏幕上移动某一个窗口的时候,还有在窗口内容滚动的

3、时候。在优化画的时候不是很明显,一个比较智能的服务器可能只会发送一次,因为它知道在客户端的帧缓存里已经存在了。复制矩形编码并不是完全独立地发送所有的数据矩形,而是对于像素值完全相同的一组矩形,只发送第一个矩形全部数据,随后的矩形则只需要发送左上角X、Y坐标。实际上,复制矩形编码主要指的就是随后的这一系列X、Y坐标,而对于第一个矩形具体采用何种编码类型并没有限制,仅仅需要知道第一个矩形在帧缓冲区中的位置,以便于完成复制操作。因此,往往是把复制矩形编码和其它针对某一个矩形的编码类型结合使用。接下来使用CopyRect编码方式

4、发送相同的式样。二维行程编码( rise-and-run-length,RRE)RRE表示提升和运行长度,正如它名字暗示的那样,它实质上表示二维向量的运行长度编码。RRE把矩形编码成可以被客户机的图形引擎翻译的格式。RRE不适合复杂的桌面,但在一些情况下比较有用。RRE的思想就是把像素矩形的数据分成一些子区域,和一些压缩原始区域的单元。最近最佳的分区方式一般是比较容易计算的。编码是由像素值组成的,Vb(基本上是在矩形中最常用的像素值)和一个计数N,紧接着是N的子矩形列表,这些里面由数组组成,(x,y)是对应子矩形的坐标,

5、表示子矩形上-左的坐标值,(w,h)则表示子矩形的宽高。客户端可以通过绘制使用背景像素数据值,然后再根据子矩形来绘制原始矩形。二维行程编码本质上是对行程编码的一个二维模拟,而其压缩度可以保证与行程编码相同甚至更好。而且更重要的是,采用RRE编码的矩形被传送到客户端以后,可以立即有效地被最简单的图形引擎所还原。在传输中,数据以下面的头开始描述:后面跟随重复的子矩形结构:CoRRE 编码CoRRE是RRE的变体,它把发送的最大矩形限制在255×255个像素以内,用一个字节就能表示子矩形的维度。如果服务器想要发送一个超出限制的

6、矩形,则只要把它划分成几个更小的RFB矩形即可。“对于通常的桌面,这样的方式具有比RRE更好的压缩度”。实际上,如果进一步限制矩形的大小,就能够获得最好的压缩度。“矩形的最大值越小,决策的尺度就越好”。但是,如果把矩形的最大值限制得太小,就增加了矩形的数量,而由于每个RFB矩形都会有一定的开销,结果反而会使压缩度变差。所以应该选择一个比较恰当的数字。在目前的实现中,采用的最大值为48×48。Hextile 编码Hextile是RRE编码的变种,矩形被分割成16×16小片,允许每个小片的维数为4位,总共16位。把原始矩形划

7、分成小块是预定义的,这意味着每个块的位置与大小不需要明确地指定。矩形被分割的小片从上开始,遵守自左到右,自顶向下的顺序。小片的编码内容按照预定的顺序进行编码。如果整个矩形的宽度不是16的整数倍,那么每行最后的小片也相应减少。高度也类似。每个小片可以使用raw编码,也可以是RRE编码的变种,用一个类型字节来进行说明即可。每个小片有一个背景像素值。但是,如果小片的背景像素值和前一个小片相同,那么就不需要明确定义。如果小片的子矩形有相同的像素值,那么前景像素值就可以只定义一次。和背景像素值一样,前景像素值也可以通过前一个小片获

8、得。因此由小片组成的数据是按照顺序进行编码的。每一个小片以子编码类型的字节开始。它是位数的掩码组成。如果Raw位被设置,那么其余的位就无效;接着是宽X高像素值(宽和高是小片的宽高)。否则其他的位就有效。背景定义-如果设置,那么像素值就会跟着小片的背景色:在矩形中的第一片非Raw小片必须设置这一位,如果不设置,那么它的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。