zyl910的专栏

人类存在的目的就是试图理解人类为何存在

2007年07月20日

原创 [Color]灰度系数与网点增大

在PhotoShop的颜色设置对话框中,会发现“Dot Gain”这个词语经常出现,如在“颜色设置”对话框中的“灰色”与“专色”,与“自定 CMYK”对框中的“网点增大”。尤其是在“灰色”与“专色”的下拉列表中,除了预定的几种外,还提供“自定网点补正”、“自定灰度系数”这两项功能,所以我怀疑灰度系数与网点增大有关。阅读全文>

发表于 @ 2007年07月20日 13:15:00|评论(loading...)|编辑|举报|收藏

2006年12月27日

原创 让图片在浏览器中只有被选中后才能看清

让图片在浏览器中只有被选中后才能看清阅读全文>

发表于 @ 2006年12月27日 15:19:00|评论(loading...)|编辑|举报|收藏

2006年12月15日

原创 终于真正明白了超光速旅行中的时间倒流现象

超光速旅行中的时间倒流现象,只是因为光速这种信息传递速度过慢。阅读全文>

发表于 @ 2006年12月15日 10:34:00|评论(loading...)|编辑|举报|收藏

2006年11月30日

原创 快速的16色转换算法

对于存储16色(4位)图像,VGA使用的是位平面方式,而DIB采用的是线性方式。无论用哪一种方式,在访问单一像素时,都需要进行复杂的位拆分运算,导致在该色彩模式下很难高效的编程。特别是这两种颜色模式之间的转换,需要极其复杂的位级拆分/重排操作,非常难以高效实现。本文就是专门讨论高效的16色转换算法的。阅读全文>

发表于 @ 2006年11月30日 19:31:00|评论(loading...)|编辑|举报|收藏

2006年11月23日

原创 测试VGA12H直接写屏速度 V1.1

  经过上一次的测试后,发现读显存的速度比写显存的速度慢得多。   很多资料建议我们使用写模式1来实现显存内的位图传送。当使用写模式1进行位图传送时,是一边读一边写的形式。而现在内存读速度很慢,那么会不会影响位图传送速度呢?于是我做了个测试。 阅读全文>

发表于 @ 2006年11月23日 23:25:00|评论(loading...)|编辑|举报|收藏

2006年11月21日

原创 贴图专用

论坛贴图专用阅读全文>

发表于 @ 2006年11月21日 13:04:00|评论(loading...)|编辑|举报|收藏

2006年11月14日

原创 测试VGA12H直接写屏速度

DOS下直接写屏的代码写过不少了,但一直没有想过一个问题——操作VGA的速度有多块。因此,我写了个小程序来测试VGA的速度。图形模式:VGA 12h,640*480*16色。 阅读全文>

发表于 @ 2006年11月14日 22:49:00|评论(loading...)|编辑|举报|收藏

原创 VBE_INFO(获取VBE信息)

这个程序用于获取VBE(VESA BIOS EXTENSION)信息,对编写SVGA程序很有帮助,还可用来检测显卡性能。阅读全文>

发表于 @ 2006年11月14日 22:44:00|评论(loading...)|编辑|举报|收藏

2006年11月05日

原创 分析外星人计算Pi的程序

有一个只用4行代码就实现的计算Pi的程序,被称为外星人计算Pi的程序。 有许多人讨论分析了该程序的实现原理,如:http://blog.csdn.net/panqiaomu/archive/2006/05/07/711776.aspx 但我总感觉它分析得不够透彻,于是自己分析了一下。 1.将原程序修改成更易看懂的形式; 2.采用同样的算法,用Excel表格将Pi算了出来。 阅读全文>

发表于 @ 2006年11月05日 21:57:00|评论(loading...)|编辑|举报|收藏

2006年11月04日

原创 快速计算Hue色环

一种快速的计算Hue色环的算法,整数运算。且支持指定饱和度和亮度,能实现像PhotoShop的HSB拾色区那样的效果。阅读全文>

发表于 @ 2006年11月04日 01:12:00|评论(loading...)|编辑|举报|收藏

2006年10月13日

原创 正确的优化分段函数形式的多重分支代码

  有时候,我们会碰上这样的多重分支代码: char szbuf[10]; if (score >= 90) strcpy(szbuf, "优"); elseif (score >= 80) strcpy(szbuf, "良"); elseif (score >= 60) strcpy(szbuf, "及格"); else strcpy(szbuf, "不及格");   这样的代码无疑是很低效的,怎么优化呢? 阅读全文>

发表于 @ 2006年10月13日 11:07:00|评论(loading...)|编辑|举报|收藏

2006年10月11日

原创 优化分支代码——避免跳转指令堵塞流水线

  在编写图象处理程序时,经常出现RGB值超过[0, 255]范围的情况。这时,得做饱和处理,将越界数值饱和到边界,即这样的代码: if (r 255) r = 255; if (g 255) g = 255; if (b 255) b = 255;   但这样的代码执行效率是很低的。这是因为if区块会编译成跳转指令,而跳转指令对于严重影响现代超流水线CPU的流水线效率。   这时CPU产商提出了两个解决方案:一是增加了分支预测硬件,尽量减少跳转指令对流水线的影响;二是设计了MMX/SSE等SIMD指令集,它们天生就有饱和运算指令,而且还可以并行计算。   分支预测对于循环语句所编译的跳转效果较好,因为在循环时一定会执行跳转,只有最后一次循环结束时才会预测失败。而对于做饱和处理效果就不怎么好了,这是因为每次循环计算出的RGB值都是不相同的(因为本来就不是同一个像素),预测失败的可能性很大。所以分支预测对饱和处理做的贡献微乎其微。   而使用SIMD指令呢。那是一种非常完美的解决方案,在有条件的情况下极力推荐SIMD指令。但由于高级语言无法描述SIMD指令,所阅读全文>

发表于 @ 2006年10月11日 19:19:00|评论(loading...)|编辑|举报|收藏

2006年07月01日

原创 如何在DOS中枚举PCI设备

如何在DOS中枚举PCI设备。一、PCI配置空间;二、如何访问配置空间;三、枚举PCI设备;四、PCI BIOS;五、保护模式下的PCI BIOS;六、总结。阅读全文>

发表于 @ 2006年07月01日 01:36:00|评论(loading...)|编辑|举报|收藏

2006年06月28日

原创 注音汉字对照表

1.字母表;2.注音汉字;3.韵母表;4.声调;5.拼音阅读全文>

发表于 @ 2006年06月28日 01:14:00|评论(loading...)|编辑|举报|收藏

2006年06月26日

原创 理解操作系统对中断的处理

以前看《操作系统》时,总觉得书上说得太抽象,理解不了。但最近编写一个键盘处理的小程序时,慢慢的理解了操作系统对中断的处理的那些概念。内容:一、中断时只接收数据;二、系统分层;三、内核线程。阅读全文>

发表于 @ 2006年06月26日 21:23:00|评论(loading...)|编辑|举报|收藏

原创 ANSI环境下支持多语言输入的单行文本编辑器 V0.01

这个程序是我的一个尝试,试图编写一个简单的支持多语言输入的单行文本编辑器。使用的开发工具是VC++6.0,MFC框架能减少许多枯燥的API调用。但即使是这样简单的要求,但我在写这个程序的时候仍然是困难重重。阅读全文>

发表于 @ 2006年06月26日 21:18:00|评论(loading...)|编辑|举报|收藏

2006年06月04日

原创 [Timer]PC上8253计时器芯片精确频率到底是多少?

  很多书上说PC机的8253的计时器#0的输出频率是每秒18.2次(每隔55ms触发一次),但都说这个只是约值,精确值有很长一串小数。计算机应该是靠整数运算的,那些小数值应该只是换算成现实时间的结果。所以我想知道精确的频率,于是查找了大量的资料,结果发现都有一点出入: 1.许多书上所说的(计数器#0)精确值:   F: 每秒18.2064819336次   T: 每隔54.925ms。 2.Terrv Dettmann《DOS Programmer's Reference》:   H: 由系统时钟每秒大约调用18.2次(每小时65536次)。   D: int 1Ah的00h功能: 该中断获取系统时钟计数器,该计数器从零点开始,每秒计数18.2065次。从零点(midnight)开始的一整天共需计86400秒,这段时间内的计数次数(时钟计数1573040次,经过的时间为86399.9129秒)。 3.Mazid《汇编语言、设计与接口技术》:8284芯片连接到一个14.31818MHz的晶振源,输出的Clr引脚是(8088中)CPU、内存(系统总线)的主频,1/3分频,4阅读全文>

发表于 @ 2006年06月04日 23:25:00|评论(loading...)|编辑|举报|收藏

原创 [Imm]Imm API学习笔记——GCS常数

GCS常数是什么东西?当你在输入法打开状态时敲键盘,输入法会尝试将你输入的内容转为中文字符(这个过程称为Composition——组字),然后向窗口发送WM_IME_COMPOSITION通知当前的组字状态(lParam参数),然后用户可以通过调用ImmGetCompositionString消息得到详细的组字信息。阅读全文>

发表于 @ 2006年06月04日 23:22:00|评论(loading...)|编辑|举报|收藏

原创 [Imm]Imm API学习笔记——输入法属性

WM_INPUTLANGCHANGE,ImmGetProperty,IGP_GETIMEVERSION,IGP_PROPERTY,IGP_CONVERSION,IGP_SENTENCE,IGP_UI,IGP_SETCOMPSTR,IGP_SELECT阅读全文>

发表于 @ 2006年06月04日 23:19:00|评论(loading...)|编辑|举报|收藏

2006年05月30日

原创 [VB6]支持UTF文本文件访问的模块

支持UTF文本文件访问的模块支持常见的ANSI、UTF-8、UTF-16LE、UTF-16BE这几种编码文本。阅读全文>

发表于 @ 2006年05月30日 08:43:00|评论(loading...)|编辑|举报|收藏

Csdn Blog version 3.1a
Copyright © zyl910