-
关于屏幕传输的一点思考(优化篇)
首发
http://imjianyou.blog.163.com/blog/static/204329180201241693847259/
图像比较。
SSE2指令集
一次性比较十六位数据
一般情况下的比较都是4字节。
矩形算法
矩形列表,用内存指针类型直接访问,亮亮说黑洞2.2似乎和1.8就是这个差一点吧?不明真相
抑或也用SSE2指令
图像数据拷贝的时候可以减少数据量,在可以显示出来的情况下,减少数据舍弃一些色彩
例如
800字节数据,只传输650,只要在可以显示正常的条件下。
32位图像改为24位,也能减少数据量。
压缩,zlib可以高度压缩,同样高度压缩的,还有quicklz。
lzo和lz77这些算法可以很高速,相对,压缩率就低了一些。
还有,等待扫描,可以等客户端收到数据后,再扫描~~
一般传输都带了图像头的,API直接把数据绘制上去,这样也减少了数据量。2 条评论 -
关于屏幕传输的一点思考(算法篇)
转:
http://imjianyou.blog.163.com/blog/static/204329180201241683647727/
屏幕传输就是把远程的屏幕内容发送到目标电脑,查看。
最初就是全图拷贝,但是这样会很慢,于是,诞生了算法,优化效率。
JPEG压缩
抑或算法
内存比较,就是随之诞生的。
变化了?好吧,拷贝发送变化部分。
然后拷贝小区域图像
获取坐标的图像数据与全图数据比较
分块算法
比较变化块
逐行扫描,最小变化点的数据
只是很慢
然后隔行扫描,与
然后深度有限扫描,变化区域周边必然变化,有限比较。。。
不同的是,一个是扫描线性扫描行,往下扫描比较,一个是块比较,变化了,整个块COPY~~
但是,隔行扫描会有重复拷贝区域。
所以矩形算法
先找到变化区域,记录,然后比较,把没重复的作为独立的区域记录,反之则合并。
把变化区域最后拷贝,避免了数据重复拷贝。
不足是,矩形列表只有那么多,定义了静态8个矩形,但是,变化的不相邻区域出现了9个,就得放弃最后的那个。
区域扫描算法,各有优势和不足,而我们能做的就是在效率和数据量之间找平衡点。 -
[C语言与算法分析]逻辑运算符和逻辑表达式
逻辑运算符
逻辑运算符中的“逻辑”二字指的是连接关系的方式。 Read More » -
[C语言与算法分析]关系运算符和关系表达式
关系运算符
关系运算符中的“关系”二字指的是一个值与另一个值之间的关系.在程序中经常需要比较两个盘的大小关系,以决定程序下一步的工作。比较两个且的运算符称为关系运算符。 Read More » -
[C语言与算法分析]算术运算符和算术表达式
C语育的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑操作的符号。C语育有只大运算符:算术、关系与逻辑、位操作。另外,C语言还有一些特殊的运算符,用于完成一些特殊的任务. Read More »
-
[C语言与算法分析]字符型数据
字符型数据包括字符常量和字符变量, Read More »
-
[C语言与算法分析]实型数据
实型数据共分为实型常量、实型变量
1.实型常量
实型常盘也称为实数或者浮点数.在C语言中,实数只采用十进制.它有两
种形式:十进制数形式和指数形式。 Read More » -
[C语言与算法分析]C语言的数据类型
扎实的基础才能在源码免杀当中游刃有余。
整型常量
整型常量包括整型常量、整型变盘.整型常盘就是整常数.它可以是十进制、八进制、十六进制数字表示的整数值. Read More » -
[C语言与算法分析]常量与变量的说明
从最基础的C语言学起,只要拥有扎实的基础才能接触更高深的技术,才能在源码免杀当中游刃有余。
常量
在程序运行过程中,其值不能被改变的量称为常量: Read More » -
简单介绍64位汇编语言
现在已经是64位的时代了,x86-64(AMD64)平台将是下一代计算机的体系结构,我们开发操作系统的当然要对x86-64的汇编有所了解。 Read More »
-
汇编语言集成开发工具Visual ASM 1.0
Pascal有Delphi、Basic有 VB、C++有 VC、C++Builder、Powerbuilder… 但是,为什么汇编语言就没有一个像样的集成开发环境呢? Read More »
-
[WIN32汇编]第十一课 进一步学习对话框
[WIN32汇编]第十一课 进一步学习对话框,本课中我们将进一步学习对话框。特别地我们将要探讨如何把对话框当成输入设备。如果您学习了上一课,那就会发现本课的例子只有少量的改动,就是把我们的对话框窗口附属到主窗口上。另外,我们还要学习通用对话框的用法。 Read More »
-
[win32]第十课 以对话框为主要界面的应用程序
现在我们开始学习一些有关GUI编程的有趣的部分, 即:以对话框为主要界面的应用程序。我们将分两课来讲述这一过程 Read More »
-
[win32汇编]第九课 子窗口控件
本课中我们将探讨控件,这些控件是我们程序主要的输入输出设备。 Read More »
-
[win32汇编]第八课 菜单
本课中我们将在我们的应用程序中加入一个菜单。 Read More »