请问维纶维纶通触摸屏官网宏指令:如果m128为on则打开窗口20怎么写

--- My_原创 - 随笔分类 - zyl910 - 博客园
随笔分类 - --- My_原创
摘要: 作者: "zyl910" 一、缘由 在项目开发时,因为运行环境的不同,导致有时得分别为不同的环境,切换配置参数打不同war包。但手工切换配置文件的话,不仅费时费力,而且容易出错。 有些打包工具支持配置切换。这样我们只要配好有那几组参数,然后便可分别打war包了。但该办法还是存在多个war文件易搞错的
摘要: 作者: "zyl910" 一、缘由 BLOB是指二进制大对象,也就是英文Binary Large Object的缩写。 在很多时候,我们是通过其他编程语言(如Java)访问BLOB的字节数据,进行字节级的操作的。 但是有些时候工作量很小,感觉专门为BLOB字节级操作而专门开发个程序,是比较麻烦的。于
摘要: 作者: "zyl910" 一、缘由 NLog是一个很好用的日志类库。利用它,可以很方便的将日志输出到 调试器、文件 等目标,还支持输出到窗体界面中的RichTextBox等目标。 而且它还支持在运行时修改配置,例如可用于实现这样的需求——在界面上做个下拉框,可动态调整RichTextBox的日志级别
摘要: 作者: "zyl910" 一、缘由 最近有在对接一个无证书的HTTPS接口时,总是收到“SSLHandshakeException: DHPublicKey does not comply to algorithm constraints”异常。 通过浏览器、telnet测试了接口地址,确认了TCP
摘要: 如今京东的商品列表已经没有“自营”筛选了,只有“京东物流”筛选。导致找商品时不方便。 于是我开发了一下Chrome插件——SelectJd(京东自营筛选器)。 SelectJd (京东自营筛选器) 是一个谷歌浏览器扩展. 用于在 jd.com 筛选自营商品。 功能特性—— 隐藏: 隐藏非自营的商品,
摘要: 作者: "zyl910" 一、缘由 RSA是一种常用的非对称加密算法。所以有时需要在不用编程语言中分别使用RSA的加密、解密。例如用Java做后台服务端,用C 开发桌面的客户端软件时。 由于 .Net、Java 的RSA类库存在很多细节区别,尤其是它们支持的密钥格式不同。导致容易出现“我加密的数据对
摘要: 作者: "zyl910" 一、缘由 在Silverlight中使用反射动态访问时,经常遇到“System.MethodAccessException: 安全透明方法 XXX 无法使用反射访问……”等错误。 其中最常见的情况,是因为这些成员具有 安全关键(SecuritySafeCritical)的特
摘要: 作者: "zyl910" 一、问题 今天需要调试一个SilverLight程序。运行时ie弹出了一个升级提示,于是手贱点了升级。 随后便悲剧了,VS调试时报“无法启动调试 未安装 Silverlight Developer 运行时。请安装一个匹配版本”。 打开控制面板里的“卸载或更改程序”,发现版本
摘要: 作者: "zyl910" [TOC] 一、缘由 由于在ES6之前,JavaScript中没有定义类(class)语法。导致大家用各种五花八门的办法来定义类,代码风格不统一。而且对于模拟面向对象的三大支柱“封装”、“继承”、“多态”,更是有许多专门的深度研究,实现办法更加复杂,不利于JavaScrip
摘要: 作者: "zyl910" 一、缘由 在很多的面向对象编程语言中,我们可以使用命名空间(namespace)来组织代码,避免全局变量污染、命名冲突。遗憾的是,JavaScript中并不提供对命名空间的原生支持。 有不少人提出各种办法在JavaScript中模拟命名空间,但这些办法存在以下问题—— 1.
摘要: 作者: "zyl910" 一、工具比较 为了让前端JavaScript程序更具可维护性,更利于团队开发,文档非常重要。此时便需要使用自动化文档工具了。 我对比了各种JavaScript自动化文档工具,发现JSDuck最适合我。它的优点有—— 生成文档的易读性高,界面美观。 文档注释的语法简单,功能丰
摘要: 作者: "zyl910" 一、缘由 XML序列化是一个很常用的功能,但对于.NET Core/Standard,其直到2.0版才内置支持XML序列化。具体来说, .NET Core 2.0 或 .NET Standard 2.0 才有 "XmlIgnoreAttribute" 类,而1.X版(.NE
摘要: 作者: "zyl910" 一、缘由 当创建 .NET Core/Standard 2.0项目时,VS不会像.NET Framework项目一样自动生成AssemblyInfo.cs文件。 而且,若是手工在项目中加入以前写好的 AssemblyInfo.cs 文件,编译时会报告“CS0579: Dup
摘要: 作者: "zyl910" 一、缘由 最近遇到了一个奇怪的问题——明明已经在VS2017里装好了 .NET Core 2.0 SDK,且测试过新建一个 .NET Core 2.0控制台项目能成功使用。但是在项目目录中实际使用新建.NET Core 2.0控制台项目时,会遇到不支持 .NET Core
摘要: 作者: "zyl910" 一、缘由 项目规模大了后,经常会出现源码文件分布在不同目录的情况,但.NET Core项目默认只有项目目录下的源码文件,且不支持“Add As Link”方式引入文件。这时需要手工修改project.json文件了。 可能是因为最新版本已将 project.json 转为
摘要: 作者: "zyl910" 一、缘由 “Sandcastle Help File Builder”(简称SHFB)是一个很好用.NET 帮助文档生成工具。 但它的每个版本支持的VS版本范围有限,且官网没有明确说明它与VS版本的区别。导致经常出现“明明装了SHFB,但VS打开不了它的项目”问题。 这时只
摘要: 作者: "zyl910" 一、缘由 当数据库服务器很多时,或者要与第三方公司做数据库表交换时,此时觉得若有一个简单快捷的数据库连接测试工具就好了。 因为若是采取直接把程序部署到tomcat等容器再测试的办法,那就太费功夫了。 其次,连上数据库后最好能显示一下数据库名称、版本等基础信息,这样便能判定所
摘要: 最大化利用工厂等影响6格建筑的六边形网格规划(增加五、六节,19城+133锤方案,37城+259锤方案) 作者: "zyl910" 一、原理 文明6里有一些特殊的建筑及奇观,它们不仅对所属城市有效,还能覆盖一定范围内的城市。 工业区(Industrial Zone)建筑—— 工厂
摘要: 作者: &zyl910& 查过了很多文章,都说需要root后才能转移存档。但很多时候是不能root的,此时该怎么办呢? 我研究了很久,最终找到了一种办法,无需root也能转移存档。 一、备份 我用的是联想手机,备份的步骤如下。其他品牌的手机可能有一些差异,但大同小异。 在安卓手机上点击“Home”键
摘要: 作者: &zyl910& 以往我们想在spring的xml配置文件中增加说明文本时,只能使用xml注释( )。这对于“调试、部署时想批量屏蔽部分bean”是不利的。于是本文讨论如何解决这个难题,并给出一个对项目配置改动少的方案。 一、最初问题 例如现在想用quartz管理一个定时...
摘要: 作者:zyl910一、说明本工具有适合以下情况使用——* 快速查看数据库中数据及表结构信息。* 测试ADO.Net下连接字符串的写法。* 帮忙分析ADO.Net数据库操作。二、用法运行本程序。在“Provider”下拉框中选择数据提供者工厂。(若没有的话,请尝试在 zdbviewcs.exe.con...
摘要: 作者:zyl910如今,UTF-8字符串的使用频率越来越多了。但是在VC中,不能直接处理UTF-8字符串,得专门去写UTF-8与窄字符串、宽字符串、TCHAR字符串相互转换的代码。不仅费时费力,而且稍不留心就容易造成内存泄露问题。于是我便想专门编写个库来解决UTF-8字符串编码问题。特性——支持 T...
摘要: 最近有个项目需要用snmp远程监控进程信息。于是我查了一下资料。一、资料.1.3.6.1.2.1.25.4.2.1.1.iso.org.dod.internet.mgmt.mib-2.host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndexA uniqu...
摘要: 作者:zyl910 以前我曾为了让VC++等编译器支持C99的整数类型,便编写了c99int库来智能处理(http://www.cnblogs.com/zyl910/p/c99int_v102.html)。如今为了兼容Turbo C++ 3等DOS下的编译器,做了重大改变,不再适合沿用旧名,于是采...
摘要: 作者:zyl910 参考教程——http://bbs.pcbeta.com/viewthread--4.html笔记本SNB和IVY平台Win7/Win8/Win8.1安装OS X Mavericks懒人版通用教程 根据该文的操作步骤,顺利时略写,遇到问题或需要补充时才详细叙述。 教程贴外所用的软件、驱动——http://pan.baidu.com/s/1i3HpnHr 硬件配置——型号:神舟K650c-i7 D2磨具:Clevo W350STQ主板:Intel HM87CPU:Intel Core i7-4700MQ核芯显卡:Intel HD Graphics 46...
摘要: 成功在神舟K650c-i7 d2(i7-4700MQ、HM87)上装好了Windows XP 本来已经在K650c上装好了Windows7、Windows8双系统,奈何某些旧软件只能在Windows XP运行,于是开始折腾装XP。 经过多次尝试,成功在K650c上装好了Windows XP,仅2个不常用设备缺少驱动,不影响使用。核芯显卡、声卡等都功能正常,能玩游戏,旧软件都能正常工作。该方法不仅适用于安装版系统,而且适用于克隆版系统,适应性非常强(我最初是在克隆版系统中试成功的,后来为了系统纯净性,又重装了一遍安装版)。 该方法的不足之处——1) 硬盘必须工作在IDE模式,不能设为AHC...
摘要: 作者:zyl910 从VS2010开始,提供了一个平台工作集(Platform ToolSet)选项用于配制vc编译版本。到了VS2012,更是因为默认平台工具集不支持WindowsXP,导致经常需要切换到xp版平台工具集,VS2013也是如此。在某些时候,我们需要使用条件编译判断平台工具集的版本去做不同的操作,而VS中没有提供一个标准的检测办法。本文就是我的一些心得。 在设置了平台工作集后,环境变量宏会发生变换,而且“VC++目录”、“预处理器定义”等地方也会发生一些变化。 以VS2013为例,注意观察“Visual Stdio 2013 (v120)”、“Visual Stdio 2...
摘要: 作者:zyl910一、缘由 在写一些生成文本的程序时,经常需要使用带缩进的格式化输出的功能。以前为此写过不少类似的函数,可惜它们的可重用性很差。 这是因为——1) C语言的FILE*不支持重定向到自己的缓冲区。2) C++的流机制允许重定向到自己的流缓冲区。可惜这依赖了C++的专有语法,纯C无法用上。 因为上述原因,以前至少得为C与C++编写两套函数集。如果考虑到char/wchat_t/TCHAR,函数集会变得更加臃肿。 于是我决定编写一套“能以相同的代码绑定到 C FILE 或 C++流”的带缩进的格式化输出库。zltabout就是该想法的成果。二、C范例Step 1 定义 ZLT...
摘要: 作者:zyl910 v1.1版的改动如下——将源码上传到github.调整目录结构.添加CMake编译配置文件.使用doxygen规范注释. 文件清单——docs\docs\images\docs\images\examples_tcharall.pngexamples\examples\tcharall\examples\tcharall\makefileexamples\tcharall\tcharall.cexamples\tcharall\tcharall_2003.slnexamples\tcharall\tcharall_2003.vcprojexamples\tcharall..
摘要: 作者:zyl910 很多文章介绍了详细的解说了各种开源许可证及它们的区别。但是,具体该选择哪一种许可证?如何修改项目使其符合某种开源许可证?就很少见到指导了。于是本文探讨这两个问题。一、如何选择开源许可证 阮一峰《如何选择开源许可证?》中的图片清晰的展示了各种开源许可证的区别—— 可是,对于新手来说,一下子见到这么多种许可证,还是会感到有些眼花缭乱,难以抉择。 于是,我建议最初时只关注三种开源许可证——1) 如果您想为GPL世界添砖加瓦,或者项目引用了GPL许可证的模块,那么当然得使用GPL许可证;2) 如果您想分享自己的编程心得,不想让许可证限制了知识的传播,这时可使用MIT许可证;...
摘要: 新版本——http://www.cnblogs.com/zyl910/p/zlstdint_v100.html[C] zlstdint(让VC、TC等编译器自动兼容C99的整数类型)V1.0。支持Turbo C++ 3等DOS下的编译器作者:zyl910一、改动简介 V1.02版的改动如下——将源...
摘要: 作者:zyl910 现在比较流行使用侧开菜单设计。试了不少控件,感觉GHSidebarNav最成熟,尤其对纯代码创建的界面兼容性最好。但若想使Storyboard界面也支持该控件,该怎么做呢。于是我做了一番研究。 系统环境——Mac OS X Lion 10.7.5Xcode 4.6.2一、功能需求 对于实际项目中使用侧开菜单,有以下功能需求——1. 非启动。程序启动时位于登陆页面,点击“登录”才进入主页。2. 点击弹出菜单。点击主页中左上角的按钮,打开左侧的菜单列表。3. 菜单操作。点击左侧菜单列表中(除“注销”之外)的项目,会对内容页面进行切换。但点击“注销”时,会全部退出,回到登录...
摘要: 作者:zyl910 手工写文档是一件苦差事,幸好现在有从源码中抽取注释生成文档的专用工具。对于Objective-C来说,目前最好用的工具是appledoc和doxygen。可是这两种工具对于注释的要求略有区别。于是我经过一番摸索,找到了一套能同时兼容这两种工具的注释写法。 工具简介——appledoc:简单方便,适于生成apple风格的html文档,及直接集成到xcode帮助(docset)。官网 http://gentlebytes.com/appledoc/ 。doxygen:功能强大,适于生成html文档与pdf文档。官网 http://www.stack.nl/~dimitri/..
摘要: 作者:zyl910 众所周知,能够利用doxygen生成pdf文档——但是,如果其中含有中文的话,那就会遇到一大堆问题无法顺利输出。我花了很长时间摸索,最终找到了让doxygen顺利生成中文pdf的办法。 系统环境——1) Mac OS X Lion 10.7.5 + MacTeX-2012 。2) Windows XP SP3 + CTeX 2.9.2.164 。一、原理解释 doxygen本身并不能直接输出pdf文件,而是生成了latex目录,其中有一个 makefile 文件。若系统中装好了pdflatex,可在latex目录中运行“make”命令来生成pdf文件。 怎样才能装好...
摘要: 作者:zyl910 在iOS开发时,有时候需要在UIToolBar中增加UILabel等控件。见过很多资料是以代码方式完成此功能,不易维护。于是我进行了一番摸索,找到了xib/storyboard图形界面下的处理办法。一、代码方式 代码方式是很多资料上提到的,关键是利用UIBarButtonItem的initWithCustomView方法来绑定UILabel控件。代码如下——UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40.0f, 20.0f, 45.0f, 10.0f)]; myLabel.font=[UI...
摘要: 作者:zyl910 “点击空白处隐藏软键盘”是一个很常见的功能。最简单的实现办法是将背景View设为为UIControl类,然后在Touch Down事件中隐藏软键盘。详见 http://www.cnblogs.com/zyl910/archive//ios_textfield_keyboard.html。 但是当文本框放在UIScrollView控件中时,上述方法就失效了。UIScrollView本身没有提供触摸事件,但它会拦截触摸操作,使背景View无法收到触摸事件。 该怎么办呢? 曾在网络上找到过一个解决方案——写UIScrollView的派生类,提供触摸事件...
摘要: 作者:zyl910一、背景 现在很多常用的UML工具不支持Objective-C,在绘制UML时很不方便。得手工将Objective-C语法的参数列表,转为UML语法或C++语法。比较费力且容易出错。 于是我想编写一个工具,自动的将Objective-C语法的参数列表转为UML或C++语法。 用什么语言开发呢? 为了跨平台,我决定采用JavaScript来编写该工具。 现在只是一个字符串分析与生成的小工具,JavaScript足以胜任。二、功能设计 界面如下—— 基本使用方法——1. 在“源参数列表”填写Objective-C方法的声明;2. 点击“转换”按钮,UML与C++文本...
摘要: 作者:zyl910 关于隐藏软键盘,网上的办法良莠不齐,大多是通过实现UITextFieldDelegate来隐藏软键盘,该方法代码较多,且在文本框很多的时不好处理。我经过搜索与摸索,找到了最佳的处理办法。一、隐藏自身软键盘 当对于有多个UITextField控件都想通过点击“Return”来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件。在点击软键盘右下角的“Return”按钮后,会触发该事件。 该事件有一个sender参数表示当前文本框,这样便可以编写一个通用的事件处理方法(.m文件)——- (IBAction)TextField_DidEndOnExi...
摘要: 作者:zyl910 前面测试了各种编译器的执行结果,但为什么它们的执行结果是那样呢?这需要仔细分析。VC2005的测试结果比较典型,而且调试跟踪比较方便,于是本篇对VC2005的crt源码进行分析。一、须知 开发工具是VC2005,平台为32位的x86,编译模式为Debug,使用MBCS字符集。二、cout输出窄字符串2.1 已初始化locale “已初始化locale”是指——在输出前执行了初始化locale,即执行了下列语句—— // init. locale::global(locale(&&)); wcout.imbue(locale(&&));
摘要: 作者:zyl910 C++标准为C++标准IO库设计了十分完善的国际化文本处理机制。但在实际使用中,却发现各种编译器对它的支持性存在较大的差异,很多时候无法正确的输出字符。于是我对此进行了深入的调查。一、说明1.1 测试程序 下面有一段很简单的程序,分别利用cout、wcout、printf输出字符串。具体代码为——#include &stdio.h&#include &locale.h&#include &wchar.h&#include &string&#include &iostream&
摘要: 作者:zyl910 将Windows程序移植到Linux等平台时,经常会遇到tchar.h问题与字符串的格式控制字符问题(char串、wchar_t串、TCHAR串混合输出)。本文探讨如何解决这些问题。一、背景1.1 历史 传统的C程序使用char字符串,采用ANSI+DBCS方案来支持当地语言,不能实现多国语言同时显示。 当年微软在设计Windows NT时考虑到国际化,决定内核支持Unicode,对应wchar_t类型。那时的Unicode只有16位,于是Windows中的wchar_t是16位的。 为了兼容老程序,与字符串有关的API一般有两套——A结尾的表示是ANSI版,使用c...
摘要: 作者:zyl910 用VC2012编译了一个程序,在Windows 8、Windows 7、Windows Vista下都能正常运行。但在Windows XP下运行时,却报错不能运行,具体错误信息为“指定的可执行文件不是有效的 Win32 应用程序”。 在WinXP中装好“Visual C++ Redistributable for Visual Studio 2012 Update 1”。但该程序还是无法运行,仍是报告上述错误。 用eXeScope打开该exe,发现操作系统需求为“6.0”,即只能在Windows Vista或更高的操作系统下运行。 我的VS2012已经升级为“Vis...
摘要: 作者:zyl910 以前我曾为了让VC++等编译器支持C99的整数类型,编写了同名的stdint.h、inttypes.h来智能处理(http://www.cnblogs.com/zyl910/archive//c99int.html)。现在将其升级到v1.01版。一、改动说明1.1 包含目录问题 在1.00版,我编写的头文件与系统头文件同名,利用“#include &XXX&”与“#include &XXX&”的区别,使其智能使用系统头文件。 这样做的优点是基本不需改动代码(只需将“#include &stdint.h&”改为“
摘要: 作者:zyl910 有的时候将子目录下的所有文件的修改时间、大小、全限定名等信息导出到Excel表格中。 尝试过命令行,但不太好用——1.对于“dir /s &1.txt”,当前目录与文件列表是分开显示的,合并起来太麻烦,而且没有文件的全限定名。2.对于“dir /b /s &1.txt”,只有全限定名,没有修改时间、大小等详细信息。3.对于“tree /f &1.txt”,只有目录树,没有修改时间、大小等详细信息。 在网上找了几个导出文件列表的工具,但都不太好用。于是决定自己编写。 用什么编程工具开发呢?考虑到以后可能经常改进输出内容的格式,所以用VBScript脚本来写是
摘要: 作者:zyl910。一、问题背景 之前的“利用按键精灵批量删除pdf中的水印”仅适用于页面内对象数量确定时。如下图中,页面内对象总是3个,其中第3个是水印—— 但是,对于某些pdf文件,页面内对象的数量是不定的,见下图—— 某些页面有3个对象,而另外一些页面是4个对象。这时原来的脚本就不能用了,若下移3次会导致删除有效数据,若下移4次又会误删除页面。 该怎样才能准确定位到最后一个对象呢?二、解决办法 在Adobat内容面板上反复尝试,发现使用 Shift+上下方向键 时,焦点会限制在当前层次。 于是,可以利用这一点实现快捷键盲操作——1.首先,点击鼠标将键盘焦点设在“页面1”上;2...
摘要: 作者:zyl910。一、更新说明1.1 支持VC2012 VC2012增加了很多Intrinsics函数,详见——http://www.cnblogs.com/zyl910/archive//intrin_vc2012.html检查了一下VC2012新增的Intrinsics函数集,发现它支持ARM指令和Haswell新指令 根据上述信息改进zintrin,检测到是VC2012时定义相关的宏—— #if _MSC_VER &=1700 // VC2012 #define INTRIN_AVX2 1 // immint...
摘要: 作者:zyl910 之前我整理了一份VC6至VC2010中Intrinsics函数集对应表。现在VS2012发布了,它有没有增加Intrinsics函数集呢?于是我对此进行检查。 若是64位win8系统中默认安装的VS2012,Intrinsics头文件位于“C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include”目录。 首先发现多了两个Intrinsics头文件——armintr.h:ARM的常用指令集。arm_neon.h:ARM的neon指令集。 看了一下intrin.h,发现以前大段的ARM Intrinsi...
摘要: 作者:zyl910一、问题背景 现在Win8已经发售了,但奇怪的是,没有听到新版Windows SDK的消息。 其次,Win8中集成了DirectX 11.1,而现在也没有新版DirectX SDK的消息。 搜索了一下后发现,原来它们已经集成到VS2012中了。二、文档 在VS2012中点击菜单栏“帮助”-&“添加和移除帮助内容”,打开“Microsoft Help View 2.0 - Visual Studio 2012文档”—— 需要等待一会儿,让文档列表下载完毕。注意选择“Windows Desktop App Development - 英语”,点击旁边的“添加”链接,它就..
摘要: 一、popcnt指令简介 popcnt是“population count”的缩写,该操作一般翻译为“位1计数”,即统计有多少个“为1的位”。例如,十六进制数“FF”,它有8个为1的位,即“popcnt(0xFF) = 8”。popcnt主要应用在密码学与通信安全,例如计算汉明重量(Hamming weight)。 x86体系最初是没有硬件popcnt指令的,只能靠软件计算。 2008年底,Intel发布了Nehalem架构的处理器,增加了SSE4.2指令集,其中就有硬件popcnt指令。虽然它名义上是属于SSE4.2指令集,但它并不使用XMM寄存器(SSE的128位寄存器),而是使用G...
摘要: 作者:zyl910一、缘由 这几天win8发布了,我也想体验一下win8。可以我用的是笔记本电脑硬盘容量有限,里面已经装好了winXP/7双系统及大量开发工具,无论是全新安装还是升级安装都不太合适。于是我想将win8装在U盘里。 于是上网搜索一下,发现Windows To Go功能可以满足我的要求。但是很奇怪,网上的文章写得很复杂,需要命令行分区,还需要提取镜像等操作——http://tu.pcpop.com/all-769619.htm系统瞬间变win8 制作windows to go盘 我思考了一下,其实步骤完全没必要那么复杂,例如——1.无需用命令行分区。格式化可用Windows自...
摘要: 作者:zyl910。 本文面对对SSE等SIMD指令集有一定基础的读者,以32位整数数组求和为例演示了如何跨平台使用MMX、SSE2指令集。支持vc、gcc编译器,在Windows、Linux、Mac这三大平台上成功运行。一、关键讲解 前文(http://www.cnblogs.com/zyl910/archive//simdsumfloat.html)演示了如何使用SSE、AVX指令集 处理 单精度浮点数组求和。现在对其进行改造,使用MMX、SSE2指令集 处理 32位整数数组求和。因程序基本上差不多,文本就不详细讲解了,只说关键变化。1.1 指令集简介 先来看看支...
摘要: 作者:zyl910。 本文面对对SSE等SIMD指令集有一定基础的读者,以双精度浮点数组求和为例演示了如何跨平台使用SSE2、AVX指令集。支持vc、gcc编译器,在Windows、Linux、Mac这三大平台上成功运行。一、关键讲解 前文(http://www.cnblogs.com/zyl910/archive//simdsumfloat.html)演示了如何使用SSE、AVX指令集 处理 单精度浮点数组求和。现在对其进行改造,使用SSE2、AVX指令集 处理 双精度浮点数组求和。因程序基本上差不多,文本就不详细讲解了,只说关键变化。1.1 指令集简介 先来看看支...
摘要: 作者:zyl910。 本文面对对SSE等SIMD指令集有一定基础的读者,以单精度浮点数组求和为例演示了如何跨平台使用SSE、AVX指令集。因使用了stdint、zintrin、ccpuid这三个模块,可以完全避免手工编写汇编代码,具有很高可移植性。支持vc、gcc编译器,在Windows、Linux、Mac这三大平台上成功运行。一、问题背景 最初,我们只能使用汇编语言来编写SIMD代码。不仅写起来很麻烦,而且易读性、可维护性、移植性都较差。 不久,VC、GCC等编译器相继支持了Intrinsic函数,使我们可以摆脱汇编,利用C语言来调用SIMD指令集,大大提高了易读性和可维护。而且移植性...
摘要: 作者:zyl910。 之前的ccpuid V1.02的mmx/sse指令可用性检查存在缺陷。现在的V1.03版改进了mmx/sse指令可用性检查,使用signal、setjmp,能够支持纯C程序。修正了AVX检查Bug。增加多文件链接ccpuid的测试例程。一、更新说明1.1 改进mmx/sse指令可用性检查1.1.1 问题背景 以前是使用结构化异常处理来确认当前环境是否能运行mmx/sse指令的。该方法存在两个问题。 首先,仅有C++支持结构化异常处理,而纯C是不支持的。所以在V1.02版中,是根据__cplusplus宏来做条件编译的。造成仅有C++版支持指令可用性检查,而纯C版没有...
摘要: 新版本——http://www.cnblogs.com/zyl910/archive//zintrin_v102.html[C] zintrin.h: 智能引入intrinsic函数 V1.02版。支持VC2012,增加INTRIN_ALIGN、INTRIN_COMPILER_NAME宏作者:zyl910。 之前的zintrin V1.00版对Mac OS X平台支持性不佳。现在的V1.01版改进对Mac OS X的支持,还做了这些改进——增加INTRIN_WORDSIZE宏 等。一、更新说明1.1 改进对Mac OS X的支持 前几天在使用Xcode时,发现mac下也..
摘要: 新版本——http://www.cnblogs.com/zyl910/archive//ccpuid_v103.html作者:zyl910。 之前的ccpuid V1.01版只支持Windows和Linux平台。现在的V1.02版增加对Mac OS X平台的支持,还做了这些改进——支持纯C、增加CPUF常数、x86平台判断。一、更新说明1.1 支持Mac OS X平台 之前我发现了Mac OS X中的“/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/li..
摘要: 作者:zyl910 前段时间我尝试用Finder的搜索功能查找intrin头文件,可惜没有找到,于是误以为Mac OS X的llvm-gcc不支持intrin函数。 今天在使用Xcode时,发现它是支持的,intrin头文件位于“/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/4.0/include”目录中。 搜索不到文件,可能是因为“/Applications/Xcode.app”并不是普通的目录。 在Finder中定位到“应用程序”目录,如果双击...
摘要: 作者:zyl910。 这是一个小工具,枚举ActiveX控件的 CLSID 和 implemented/required CATIDs。可用来帮助分析ActiveX控件部署问题。一、代码 全部代码——View Code #include &stddef.h&#include &stdio.h&#include &tchar.h&#include &locale.h& #include &Windows.h&#include &crtdbg.h&#include &comcat.h&#include &at
摘要: 新版本——http://www.cnblogs.com/zyl910/archive//zintrin_v101.html作者:zyl910。 现在很多编译器支持intrinsic函数,这给编写SSE等SIMD代码带来了方便。但是各个编译器略有差异,于是我编写了zintrin.h,智能引入intrinsic函数。一、各种编译器的区别1.1 Visual C++(Windows) 最早支持intrinsic函数的VC编译器是VC 6.0。它在装上Visual Studio 6.0 Service Pack 5、Visual C++ 6.0 Processor Pack这两..
摘要: 作者:zyl910。 这几天在调试一个使用Http POST协议的接口。在网上找了几个Http测试工具,但感觉不太好用。于是自己用C#写了一个简单的测试工具。一、使用介绍 默认是“POST”模式。在最上面的文本框中输入Url地址,然后在“Post Data”文本框中输入Post参数,再点击“Go”按钮发送请求。 如果想使用“GET”模式。便点击左上角的组合框,选择“GET”模式,再点击“Go”按钮发送请求。 当发现回应内容乱码时。点击“Response Encoding”组合框,选择合适的编码。再点击“Go”按钮重新发送请求。二、全部代码 窗口的代码(FrmTestHttpPost....
摘要: 作者:zyl910。折腾了好几天,终于在Mac OS X Lion 10.7.4上装好GTK+了。其中走了不少弯路,于是将经验教训总结了一下。一、系统环境(OS X与XCode) 操作系统:Mac OS X Lion 10.7.4(11E53) 编程工具:Xcode 4.4.1(1448),并装好了它的“Command Line Tools”。 安装过程可参考这些帖子——在virtualbox上安装Mac OS X Lion 之 配置过程http://www.crifan.com/install_mac_os_x_lion_on_virtualbox_config_process/给Vi...
摘要: 作者:zyl910。列名解释——GCC470:GCC 4.7.0 (Fedora 17)。/usr/lib/gcc/i686-redhat-linux/4.7.0/include/。GCC462:GCC 4.6.2 (MinGW)。\lib\gcc\mingw32\4.6.2\include。宏:判断该指令集是否启用的宏。参数:启用该指令集的命令行参数。描述:指令集描述。 GCC470GCC462宏参数描述abmintrin.h__ABM__-mabmABM: Advanced Bit Manipulation. 改为lzcntintrin.h.ammintrin.hammintrin.h..
摘要: 作者:zyl910。 之前的ccpuid V1.00版(http://www.cnblogs.com/zyl910/archive//ccpuid.html)只支持VC。 现在的V1.01版支持GCC,不仅兼容32位/64位Linux下的GCC,还兼容Windows下的MinGW、MinGW-w64、TDM-GCC等。可以自由的编译为Windows下、或Linux下的程序。一、更新说明 主要的改进有——1. 支持GCC。2. 使用getcpuid/getcpuidex函数来获取CPUID信息。3. 使用C99标准整数类型uint32_t,提高可移植性。二、全部代码2....
摘要: Gunpowder Magazine and Firecracker Workshop (火药库与爆竹坊){Rule} Steel technology found [ICON_RES_COAL] Coal. (获得炼钢科技时发现煤矿){New Building} Gunpowder Magazine(火药库): +15% [ICON_PRODUCTION] Production when building Gunpowder/Siege Units. Each source of [ICON_RES_COAL] Coal worked by this City produce +1 [ICO
摘要: 作者:zyl910 为了适应现在越来越流行的64位系统,经常需要将代码分别编译为32位版和64位版。其次,除了需要生成debug版用于开发测试外,还需要生成release版用于发布。本文介绍了如何利用makefile条件编译来生成这些版本,而且不仅兼容Linux下的GCC,还支持MinGW、TDM-GCC等Windows下的GCC编译器。一、C程序代码 为了测试条件编译的效果,以下面这个C语言程序为例(gcc64_make.c)——#include &stdio.h&#include &assert.h&// 获取程序位数(被编译为多少位的代码)int GetProgr
摘要: 新版本——http://www.cnblogs.com/zyl910/archive//c99int_v101.html[C] 让VC支持C99的整数类型V1.01。避免包含目录问题,更名auto_stdint.h、auto_inttypes.h(在VC6至VC2012、GCC、BCB等编译器下测试通过)作者:zyl910 C99标准定义了stdint.h、inttypes.h,用于统一的跨平台数据定义。可惜VC、BCB等编译器对C99的兼容性较差,有些版本没有该头文件。本文对此进行探讨,编写了一套兼容VC、BCB、GCC的stdint.h、inttypes.h。一、心得.
摘要: 作者:zyl910 前面我们尝试过在VC中获取CPUID信息。现在再来试试GCC编译器。一、调用CPUID指令 怎么调用CPUID指令呢?有三种办法——1. 用汇编语言编写一个cpuid函数,然后调整链接器配置,在C语言中调用该函数。2. 使用内嵌汇编调用CPUID指令。3. 使用编译器提供的Intrinsics函数来调用CPUID等特定平台指令。 我们一般优先使用第3种办法,代码量少、可读性高、编译维护简单。例如VC(VC2005或更高)在“intrin.h”中声明了 __cpuid函数。 当编译器没有提供Intrinsics函数时,就只有使用前两种办法了。1.1 查找函数 首先,...
摘要: Game Speed Packet(游戏速度模式大补包)Only Visable in Advanced Menu, you can switch back to Standard Menu after choosing.(仅在高级设置界面可见,您可以选择后再点击“后退”回到标准设置界面。)x2 : GAMESPEED_STANDARD * 2. 1000 turns.x2.5: GAMESPEED_STANDARD * 2.5. 1250 turns.x4 : GAMESPEED_STANDARD * 4. 2000 turns.x5 : GAMESPEED_STANDARD * 5. 25
摘要: 作者:zyl910 在编写跨平台的程序时,我们经常使用预定义宏来检测编译环境。虽然编译器的手册中有预处理宏的介绍,但是不够详细,而且还有很多宏没有介绍。于是,我编写了一个小程序,显示常见C/C++编译器的编译器的预定义宏。一、心得 最直接的办法是逐个逐个的用#ifdef判断宏是否存在,然后再printf显示其内容。可是预定义宏有些是整数、有些是字符串,还有些是关键字不能直接用printf输出,用起来挺麻烦的。 在网上发现一种不错办法,出自《关于CPP的预定义宏:unix、linux、i386、i586,大家中过招吗?》4楼“太平绅士”——View Code #include &stdio
摘要: 作者:zyl910更多详情见——http://www.cnblogs.com/zyl910/archive//md00.htmlSIMD函数整理:00 索引贴R:寄存器。M:64位MM寄存器;X:128位XMM寄存器;Y:256位YMM寄存器。Name:函数名。Name2:另一种函数名。功能:功能描述。Asm:汇编指令。PCode:伪代码。RNameName2功能AsmPCodeX_MM_SHUFFLE混洗的掩码.4#http://msdn.microsoft.com/en-us/library/4d3eabky(vs.71).aspxX_MM_TRANSPOSE4_PS矩
摘要: 作者:zyl910 随着wchar_t类型引入C语言,字符串处理变得越来越复杂。例如字符串输出有printf、wprintf这两个函数,当参数中既有char字符串又有wchar_t字符串时,该怎么填写格式控制字符呢?本文对此进行探讨。一、翻阅文档 先翻阅一下各个编译器的文档及C99标准,看看它们对格式控制字符的说明。1.1 VC的文档 在MSDN官网上,可以找到printf与wprintf的格式字符串的说明,在《Format Specification Fields: printf and wprintf Functions》(http://msdn.microsoft.com/en-u...
摘要: 作者:zyl910 在不同平台上开发C/C++程序时,为了避免源码文件乱码,得采用UTF-8编码来存储源码文件。但是很多编译器对UTF-8源码文件兼容性不佳,于是我做了一些测试,分析了最佳保存方案。一、测试程序 为了测试编译器对UTF-8源码文件兼容性,我编写了这样的一个测试程序——//#if _MSC_VER &= 1600 // VC2010//#pragma execution_character_set(&utf-8&)//#endif#include &stdio.h&#include &locale.h&#include &s
摘要: 作者:zyl910更多详情见——http://www.cnblogs.com/zyl910/archive//md00.htmlSIMD函数整理:00 索引贴Name:函数名。Name2:另一种函数名。功能:功能描述。Asm:汇编指令。PCode:伪代码。 NameName2功能AsmPCode_m_empty_mm_emptyMMX状态置空EMMS_m_from_int_mm_cvtsi32_si64加载32位MOVDr=ZX(i)_m_to_int_mm_cvtsi64_si32返回低32位MOVDr=(uD)m_m_packsswb_mm_packs_pi16...
摘要: 作者:zyl910 关于获取各种CPUID信息,我之前积累了不少代码,现在决定将它们封装在一个模块中,方便代码复用。 其次,前面只是介绍了CPUID的一些常用功能,而Intel、AMD的手册中定义了大量的CPUID功能。所以我希望有一个程序能按照功能号顺序,依次显示所有的CPUID信息。这样就能很方便的与Intel、AMD的手册进行对照,有助于学习与理解。一、模块设计 最初方案是 想将所有功能全部放在一个“ccpuid.h”头文件中,这样用起来会比较方便。 但是考虑到全局变量等问题,以及需要编写CCPUID类。所以最终决定按照常规做法,分解为头文件与实现文件。 对于原先所写的宏定义、...
摘要: 网上有很多介绍VC与GCC预定义宏的帖子,例如《C\C++宏大全》。 而对于Intel C++编译器的预定义宏,似乎没人介绍。 我Google了很久,发现Intel官网上有,但是很奇怪,很多链接都失效了,报告404错误。反复调整搜索关键字,一个一个的尝试链接,最后终于找到了有效的页面了。为了怕以后链接失效,赶紧记录下载。 该手册的名字是《Intel® C++ Compiler XE 12.1 User and Reference Guides》,分别有Windows版和Linux版——Windows:http://software.intel.com/sites/products/d
摘要: 从2011年的Sandy Bridge微架构处理器开始,现在支持AVX系列指令集的处理器越来越多了。本文探讨如何用VC编写检测AVX系列指令集的程序,并利用了先前的CPUIDFIELD方案。一、AVX系列指令集简介 SSE5 指令:SSE5 是一个纸面上的指令集,并没有最终实现,AMD 在 2007 年 8 月公布 SSE5 指令集规范,在 2009 年 5 月 AMD 推出了 XOP,FMA4 以及 CVT16 来取代 SSE5 指令。 AVX 指令:2008 年 3 月 Intel 发布了 AVX(Advanced Vector Extensions)指令集规范,首次在 Sandy B..
摘要: 除了基本的MMX和SSE系列指令集外,x86体系还有其他扩展指令集,例如SSE4A、AES、PCLMULQDQ等,它们也可以利用CPUID指令来检测。但是,这些指令集细碎杂多。如果像以前那样分别编写检测函数的话,那工作量太大,不值得。而且大量的函数名也会给使用带来麻烦。于是文篇探讨如何设计一套通用的检测方案。零、指令简介 SSE4A指令:是AMD提出的,最早出现在2007年的K10微架构的处理器上。它针对Intel的SSE4指令集修改而来,去除其中对I64优化的指令,保留图形、影音编码、3D运算、游戏等多媒体指令,并完全兼容。 AES指令:是Intel提出的,最早出现在2010年的West..
摘要: 我们有时需要写一些小工具,或者是需要写一些简短的测试程序,这时编写命令行程序会比较方便。但是命令行程序用起来不太方便,比如——1.查看信息困难。有时候我们需要观察命令行程序的输出结果,但是在默认情况下,命令行程序执行完毕后会自动关闭窗口,来不及观察信息。这时可以采取“在程序中等待按键”、“手工打开命令提示符输入命令”、“在批处理中等待按键”、“批处理重定向”等方法,但是都比较麻烦。2.命令参数困难。某些命令行程序需要参数,这时只有手工打开命令提示符输入命令。有时要键入文件的全限定名,那就更花功夫了。 怎么解决以上难题呢? 首先想到的是把那些小程序改写为图形界面程序,或者为命令行程序分别...
摘要: 以前我写了一篇《[VC6] 检查MMX和SSE系列指令集的支持级别(最高SSE4.2)》(http://www.cnblogs.com/zyl910/archive//checksimd.html)。现在发现该方法存在两点缺陷——1.不支持64位,因为VC的64位程序不支持内嵌汇编;2.没有区分硬件支持与操作系统支持。 怎么解决这两点缺陷呢? 对于第1点,可以利用Intrinsics函数来兼容32位和64位。为了更方便的使用CPUID指令,可以利用《如何在各个版本的VC及64位下使用CPUID指令》(http://www.cnblogs.com/zyl910/arc...
摘要: 新版本——http://www.cnblogs.com/zyl910/archive//pdf_remove_watermake_marco_v2.html[使用心得] 利用按键精灵批量删除pdf中的水印 V2:用于页面内对象数量不定时删除最后一个对象一、利用“内容”面板删除水印 启动Acrobat Prefessional,打开该pdf文档。 点击菜单栏中的“视图→导航面板→内容”,打开“内容”面板—— 观察内容面板,展开树列表,会发现每一页中的第3个对象是水印(容器&Artifact& www.ckook.com)—— 在水印对象上右击鼠标弹出快捷菜单,点击
摘要: 前面我们探讨了在16位的DOS实模式下使用CPUID指令(http://www.cnblogs.com/zyl910/archive//dos16_getcpuid.html)。而现在64位Windows系统已经很流行了,在32/64位模式下如何使用CPUID呢?于是本文介绍了如何在各个版本的VC及64位下使用CPUID指令。一、推荐使用__cpuid、__cpuidex等Intrinsics函数 在32位模式下,我们可以使用内嵌汇编来调用cpuid指令。但在64位模式下,VC编译器不支持内嵌汇编。 于是微软提供了Intrinsics函数——编译器会将Intrins...
摘要: 一、分解x2APIC_ID摘自《Intel® 64 Architecture Processor Topology Enumeration》中的“Sub ID Extraction Parameters for x2APIC ID”——SMT_ID: CPUID.(EAX=11, ECX=0):EAX[4:0] provides the width parameter to derive a SMT select mask to extract the SMT_IDs of logical processors within the same processor core. The
摘要: 有时我们需要编写DOS实模式下的CPU信息诊断程序,但是TurboC++等很多16位C++编译器不支持CPUID指令和32位汇编。于是本文介绍了一种办法,靠内嵌机器码实现了获取CPUID信息。一、CPUID指令简介 CPUID指令是intel IA32架构下获得CPU信息的汇编指令,可以得到CPU类型,型号,厂商信息,商标信息,序列号,缓存等一系列CPU相关的东西。 CPUID指令一般使用使用eax作为输入参数(某些时候会用到ecx),eax、ebx、ecx、edx作为输出参数。例如这样的汇编代码——mov eax, 1cpuid... 以上代码以1为输入参数,执行cpuid后...
摘要: tiled_index类中有4个属性与线程编号有关——tiled_index.global:线程的全局编号。相当于DirectCompute中的SV_DispatchThreadID。tiled_index.local:线程的局部编号。相当于DirectCompute中的SV_GroupThreadID。tiled_index.tile:线程块的编号。相当于DirectCompute中的SV_GroupID。tiled_index.tile_origin:线程块中首个线程的全局编号。(tile_origin=global-local)。参考文献——http://msdn.microsoft.c
摘要: 现在多核处理器已经很普及了,市场主流是双核处理器,还有4核、8核等高端产品。而且Intel推广了超线程技术(Hyper-Threading Technology, HTT),可以将一个物理核心模拟为两个逻辑处理器。这一切使得“CPU数量”这一概念变得复杂起来,对于软件开发人员来说,希望能获得物理CPU数、CPU核心数、逻辑CPU数等详细信息。 在Windows平台,可以调用GetLogicalProcessorInformation函数来获取它们的详细信息。一、背景知识 先来明确一下名词——physical processor packages:物理处理器封装个数,即俗称的“物理CPU...
摘要: 假定——[numthreads(TX, TY, TZ)] // 线程组尺寸。既线程组内有多少个线程。Dispatch(GX, GY, GZ); // 线程组的数量。既有多少个线程组。那么——SV_GroupThreadID={iTX, iTY, iTZ} // 【线程组内的】线程3D编号SV_GroupID={iGX, iGY, iGZ} // 线程组的3D编号SV_DispatchThreadID={iGX*TX+iTX, iGY*TY+iTY, iGZ*TZ+iTZ} // 将线程组展开后,每个线程的全局3D编号。SV_GroupIndex=iTX + iTY*TX + iTZ*TX*TY
摘要: 更新历史——[] V1.1.3& 兼容最新的 AHD 2.31beta():http://bbs.52pcgame.com/thread--1.html& 文本修订。下载地址——http://115.com/file/e73tbte8http://u.xunzai.com/fileview_1147668.htmlhttp://dl.dbank.com/c0xsvgps5w更多内容——http://www.cnblogs.com/zyl910/archive//RecoverMingV_V1.html[维多
摘要: 一、来源 来源:《PC平台新技术MMX(上册):开发编程指南》第8章 MMX编码技术 书籍信息——http://e.360buy.com/.htmlPC平台新技术MMX(上册):开发编程指南作 者: 吴乐南 编 出 版 社: 东南大学出版社 ISBN:8出版时间:页 数:149字 数:237000所属分类: 电子书 & 计算机与互联网 & 编程语言与程序设计 电子书 & 计算机与互联网 & 计算机工具书 二、整理后的代码 代码——#include &Windows.h&#include &st
摘要: 作者:zyl910 关于SIMD(MMX、SSE、AVX)编程的资料一直很零散,于是我试图进行收集整理,便于随时翻阅学习。而且很多代码是直接用汇编写的,易读性差、难以重用,于是我决定将其统一改写为Intrinsics函数版。一、Instructions函数对照表 在使用Instructions函数时,很多时候会发现MSDN说的不详细,这时只有去翻阅Intel、AMD文档了。但Intel、AMD文档都是按照汇编指令名排序的,查起来不太方便。 而且SIMD指令大多很复杂,文字描述难以详细的解释其功能,唯有伪代码才能精确的解释其功能。但Intel、AMD文档上的伪代码大多很长,不适合随时翻阅。...
摘要: 当使用Intrinsics函数来操作SIMD指令集(MMX/SSE/AVX等)时,会面对不同长度的SIMD数据类型,其中又分为多种紧缩格式。为此,我设计了一套SIMD变量命名规范,可以有效的提高代码的可读性。一、SIMD数据类型简介 SIMD数据类型有——__m64:64位紧缩整数(MMX)。__m128:128位紧缩单精度(SSE)。__m128d:128位紧缩双精度(SSE2)。__m128i:128位紧缩整数(SSE2)。__m256:256位紧缩单精度(AVX)。__m256d:256位紧缩双精度(AVX)。__m256i:256位紧缩整数(AVX)。注:紧缩整数包括了8位、16...
摘要: 在传统印象中,数字的比较关系只有6种。但在AVX指令集中,Intel一下给出了32种浮点比较谓词,详见下图——(Intel手册:Table 3-9. Comparison Predicate for VCMPPD and VCMPPS Instructions) 为什么会有这么多种比较谓词呢?我为此困惑困惑了很久。 直到最近翻阅了不少资料后,才终于将它们弄懂了。一、浮点数据类型 Intel使用的是IEEE 754规范的浮点数据类型。对于浮点数据类型来说,除了可以存储数字、无穷之外,还可以存储 NaN(not a number。非数)。 NaN(非数)分为两大类——1.QNaN:qu...
摘要: 一、测试结果汇总 将前面的测试结果进行汇总,整理为表格(单位是毫秒,数值越小越好)—— 测试f0_iff1_minf2_negf3_sarf4_mmxf5_sseVC6 on 32bitVC6 on 64bitVC2010(32) on 32bit37VC2010(32) on 64bit37VC2010(64) on 64bit28C#2010(any) on 32bit559C#2010(any) on...
摘要: 在上一篇测试了MMX指令集,这次我们来测试SSE指令集。说的更精确一点,是测试SSE2指令集。 本篇致力于解决以下问题——1.SSE/SSE2指令集是什么?2.如何阅读Intel/AMD的手册?3.如何运用SSE指令集?如何将MMX代码升级为SSE代码。4.如何在VC++6.0这样的高级语言编译器中使用MMX指令集?一、简介 1999 年 Intel 推出了第 1 代的 SSE(Streaming SIMD Extensions)指令以回击 AMD 的 3DNow! 指令,使用在 Pentium III 处理器上。随后 AMD 在 2001 年 10 月 发布 的 Athlon XP ...
摘要: 前面我们测试了高级语言做饱和处理的性能。其实,对于这样的大批量数据处理,使用SIMD(Single Instruction Multiple Data,单指令多数据流)技术能极大的提高性能。MMX指令集是目前x86平台上覆盖最广的SIMD指令集,于是本文对它进行探讨。 本文致力于解决以下问题——1.MMX指令集是什么?2.如何阅读Intel/AMD的手册?2.如何运用MMX指令集?3.如何在VC++6.0这样的高级语言编译器中使用MMX指令集?一、MMX指令集简介 MMX(Multi Media eXtension,多媒体扩展指令集)指令集是Intel公司于1996年推出的一项多媒体指...
摘要: 更新历史——[] V1.1.2& 兼容最新的 AHD 2.3beta()* 修正“再造共和”决议。防止多次触发。& 文本修订。下载地址——http://dl.dbank.com/c0xuar98mghttp://www.rayfile.com/zh-cn/files/97e8ab19-7ff2-11e1-a5a0-d/http://u.xunzai.com/fileview_1102599.html更多内容——http://www.cnblogs.com/zyl910/archive//Recover
摘要: 更新历史——[] V1.1.1* 调整重建大明系列决议,仅移除关内地区的CHI核心。* 放松“独立自治”决议的条件。当CHI失去对北京的军事控制时便可执行。* 当不同意“清帝退位”时,次国家触发“响应革命”事件。+ 新决议——重回关东、天朝正统、重建大明(君宪)。& 文本修订。下载地址——http://115.com/file/e7lxruw6http://u.xunzai.com/fileview_1088987.html更多内容——http://www.cnblogs.com/zyl910/archive//RecoverMingV_V1.ht
摘要: 前面我们测试了C系列语言,验证了位掩码算法的确实性能不错。那么对于Basic系列语言,该算法的效率怎样呢?于是本文对此进行探讨。 VB.Net与C#一样,也是由.Net虚拟机执行的,没有多大的测试价值。所以我决定测试VB6。一、移植要点 VB6的功能与C系列语言差很多。很多地方需要换另一种方法去实现,甚至不能实现。 要点有——1.VB6不支持控制台程序,只支持窗口程序。所以我们的测试程序得修改为窗口程序。2.VB6不支持指针,所以依靠数组。幸好现在的操作比较简单,用数组的性能损失不大。3.VB6没有带符号移位运算法,所以无法实现f3_sar函数。4.VB6和C#一样不支持宏,所以得手...
摘要: 前面我们测试了C语言这样纯编译型语言。那么对于像C#这样由虚拟机执行的语言,“位掩码代替分支”法是否也有效果呢?于是本文对此进行探讨。一、移植要点 C#的语法与C语言很相像,多数代码可以直接用,但要注意以下几点。1.1 unsafe——不安全上下文 C#虽然支持指针,但必须在unsafe——不安全上下文 中才能使用。 要使用unsafe,必须先配置项目属性,允许不安全代码——1.项目-&属性,打开项目的属性页。2.点击左侧“生成”,切换到“生成”页。3.点击上侧的“配置”组合框,选择“所有配置(C)”。4.勾选“常规”中的“允许不安全代码(F)”。5.点击工具栏上的“保存”按钮。 ...
摘要: 前面我们用VC6测试了位掩码代替分支的速度。VC6是1998年发售的,离现在有14年了。在14年里,Intel与AMD的CPU都换了好几套微架构了,VC6编译器很可能无法充分发挥它们的性能。而且,从2003年AMD推出了64位处理器开始,现在64位系统越来越普及,我们希望测试64位下的性能。 于是选择最新的VC系列编译器——Visual C++ 2010,它是2010年发售的,支持x64平台。一、代码改进1.1 通用字符处理——tchar.h 传统的Windows程序一般使用ANSI+DBCS字符集。而从Windows NT开始,Windows内核采用Unicode字符集。但那时基于A...
摘要: wuhanbingwhdx提到了数据相关也会影响流水线(http://blog.csdn.net/zyl910/article/details/1330614)。 他的说法是有一定道理的。但是,在很多时候我们并不仅仅处理一个数值。比如将循环展开,在内循环处理2个或更多个的数值。而现代编译器面对循环展开时,在编译优化操作中会调整指令顺序,错开有相关性指令。因现代处理器支持超标量,这样的指令顺序调整能获得较好的指令级并行度,从而优化了性能。 其次,就算编译器对循环展开优化的不够彻底,没将相关性指令错开。但因现代处理器支持乱序执行,当遇到相关性指令需要等待时,处理器会处理后面未相关的指令,从...
摘要: 查看编译器生成的汇编代码,有助于我们分析程序的性能。1 让VC6输出编译的汇编代码 用VC6打开前一篇文章(http://www.cnblogs.com/zyl910/archive//noifopex1.html)的工程“noifCheck.dsw”。 首先需要配置项目设置——1.点击菜单栏 “工程”-&“Project Settings”打开“Project Settings”对话框。2.将“Settings For:”设为“Win32 Release”。3.将右侧的选项卡换到“C/C++”面板。4.点击“Category:”组合框,选择“Listing Fil.
摘要: 几年前我写了一篇“优化分支代码——避免跳转指令堵塞流水线”(http://blog.csdn.net/zyl910/article/details/1330614)。因当时是整理笔记,有些粗略。这几年又有了新的心得,故决定深入探讨,顺便回答网友评论。 housisong(http://blog.csdn.net/housisong)提到了用利用带符号移位生成掩码——(假设n是32bit有符号数): (n&&31) 当n&=0的时候结果为0x,当n&0时得到0xFFFFFFFF掩码,然后利用该掩码来合并分支。 这是一个很好的思路,避免了状态寄存器访问。 但
摘要: 更新历史——[] V1.1.0& 兼容最新的 AHD 2.21beta()+ 增加辛亥革命事件组。* 调整“重建大明(北京)”决议,仅在CHI未开化时有效。* 规范化次国家名称(粤桂、云贵、东北)。* 微调了湘鄂的颜色,避免与陕甘混淆。* 旅顺属于MCK东北。& 文本修订。下载地址——http://115.com/file/an998uhy更多内容——http://www.cnblogs.com/zyl910/archive//RecoverMingV_V1.html[维多利亚2 MOD] RecoverMingV(Vic
摘要: 参考文献——《Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2 (2A, 2B & 2C): Instruction Set Reference, A-Z》. December 2011. http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.h
摘要: File:Intrinsics头文件描述:指令集描述VS:Visual Studio版本号VisualStudio:Visual Studio版本名File描述VSVisualStudiointrin.hAll Architectures8.02005mmintrin.hMMX intrinsics6.06.0 SP5+PP5xmmintrin.hStreaming SIMD Extensions intrinsics6.06.0 SP5+PP5emmintrin.hWillamette New Instruction intrinsics (SSE2)6.06.0 SP5+PP5pmmint
摘要: 自1996年的MMX指令集以来,Intel和AMD不断为x86体系添加新的SIMD指令集。时至2012年,Intel的Ivy Bridge即将发布,这16年来SIMD指令集有了哪些发展呢?于是我决定整理一份SIMD指令集的发展历程表。通过阅读Intel和AMD的手册,以及搜索网上资料,我初步完成了这项工作。表格如下—— 指令集条DateICPUIDateACPUADateMemoMMX-12Pentium MMX(P55C)KMultiMedia eXtensionSSE-1Pentium III(Katma...
摘要: 如今64位系统越来越流行了,对于软件开发人员来说,掌握64位开发技术将会有更好的发展空间。而且经过这几年的发展,64位开发工具也成熟了,例如Visual Studio 2010。 关于如何配置64位平台,MSDN上有详细的介绍——http://msdn.microsoft.com/zh-cn/library/9yb4317s.aspx如何:针对 64 位平台配置 Visual C++ 项目 在很多时候,我们希望能兼容老系统,于是配置了两个编译平台——Win32 和 x64。 但光这样做还是不够的,因为老系统不支持某些新功能。所以我们需要在运行时动态动态判断。 最常见的判断有两种——...
摘要: [维多利亚2 MOD] RecoverMingV(Vic2版复明) V1.1.1(更新),改进移除CHI核心的方式简介~~~~ 基于 维多利亚2阋墙(Victoria II: A House Divided)2.1 修改,时间从1836年到1999年。 剧本——:推荐国家——太平天国、翼王、秦王、大理、兰芳、宋卡。安装方法~~~~~~~~ 方案A:如果未使用JSGME——1.将压缩包“RecoverMingV”中的所有文件解压游戏根目录,覆盖同名文件;2.执行“v2game.exe”或“victoria2.exe”启动游戏。注:该方案的缺点是无法卸除mo...
摘要: 支持——1.欧陆风云3(Europa Universalis 3)至资料片5.0神风(Divine Wind)。2.欧陆风云:罗马(Europa Universalis : rome)至资料片2.0成王败寇(Vae Victis)。3.维多利亚2(Victoria 2)至资料片2.0阋墙(A House Divided)。4.钢铁雄心3(Hearts of Iron 3)至资料片3.0为了祖国(For the Motherland)。5.王国风云2(Crusader Kings 2)。6.戦國(Sengoku)。 本工具适用于以下情况——1.mod开发人员。2.日文汉化版省份查找问题。将...
摘要: 该补丁的作用——1.调整省份区划,使其更接近清1820年省份区划。2.调整区域颜色,使其容易分辨。安装方法——将压缩包中的文件解压到维多利亚2的主目录,覆盖同名文件。http://files.cnblogs.com/zyl910/fixmap_chi_v2.0.rar注意事项~~~~~~~~1.存档兼容性问题。如果中国地区没有建造过工厂,就能继续玩存档。如果建造过,读取存档可能会出问题。请使用压缩包中bak\map文件夹内的“region.txt”恢复原版的省份区划。更新历史~~~~~~~~[] V2.01. 支持资料片 AHD(阋墙)V2.1。2. 为保证稳定性,区划微调
摘要: 一、测试内容 测试方法——x264编码参数大测试:索引贴http://www.cnblogs.com/zyl910/archive//x264_encode_param.html 测试参数——trellis:0、1、2。执行Trellis quantization来提高效率。0、停用;1、只在一个宏区块的最终编码上启用;2、在所有模式决策上启用。参考测试:trellis 0。 默认参数——--profile main --preset medium --tune ssim --crf 26.0 --threads 2 --bframes 3 --ref 3 --mer...
摘要: 数据表的结构是——CREATE TABLE [dbo].[ac_mainctls_new] ([id] [int] NULL ,[ctlip] [bigint] NULL ,[ctlname] [char] (30) COLLATE Chinese_PRC_CI_AS NULL ,)其中ctlip是设备的IP地址,以整数方式存储。虽然可以用程序将整数转为IP字符串,但多了一道工序有点麻烦。于是我想直接在SQL查询语句中将其转为IP字符串。经过思索与调试,我完成了该查询语句——SELECT CAST(ctlip / 0x1000000 AS varchar(3)) + '.' +
摘要: 一、测试内容 测试方法——x264编码参数大测试:索引贴http://www.cnblogs.com/zyl910/archive//x264_encode_param.html 测试参数——trellis:0、1、2。执行Trellis quantization来提高效率。0、停用;1、只在一个宏区块的最终编码上启用;2、在所有模式决策上启用。参考测试:trellis 0。 默认参数——--profile main --preset medium --tune ssim --crf 26.0 --threads 2 --bframes 3 --ref 3 --mer...
摘要: 新版本——http://www.cnblogs.com/zyl910/archive//Gunpowder_Magazine_and_Firecracker_Workshop_V2.htmlGunpowder Magazine and Firecracker Workshop (火药库与爆竹坊){Rule} Steel technology found [ICON_RES_COAL] Coal. (获得炼钢科技时发现煤矿){New Building} Gunpowder Magazine(火药库): +15% [ICON_PRODUCTION] Production whe
摘要: 簡介~~~~ 基於 歐陸風雲3神风(Europa Universalis III: Divine Wind)5.1 修改(暂未集成WWM),時間从1363年到3000年。 劇本——鄱阳湖战:。鄱阳湖之战( - ) 是元末的一场重要战役, 朱元...
摘要: 簡介~~~~ 基於 歐陸風雲3王朝血脉(Europa Universalis III: Heir to the Throne) 和 Whole World Mod v4.01 修改,時間能玩到3000年。 劇本——郑和时代:。永乐三年六月十五日(日), 永乐帝命郑和率领宝船舰队出使西洋.\n同年, 建文帝在穿越者的帮助下抵达夏威夷.\n顺塔, 崖山败后,陆秀夫幼子陆自立和其他南宋遗民乘番舶外逃至南洋爪哇岛.万历抗日:。壬辰战争, 朝鲜称之为壬辰倭乱, 第二次称之为丁酉再乱, 日本称之为文禄之役, 第二次称之为庆长之役, 或合称为文禄庆长之役..
摘要: 簡介~~~~ 基於 歐陸風雲3名義3.1/3.2(52汉化版) 和 Whole World Mod v3.3 修改,時間能玩到3000年。 劇本——万历抗日:。壬辰战争, 朝鲜称之为壬辰倭乱, 第二次称之为丁酉再乱, 日本称之为文禄之役, 第二次称之为庆长之役, 或合称为文禄庆长之役, 中国称为万历朝鲜之役, 亦将其与宁夏之役、播州之役合称为万历三大征, 现代汉语中称为万历朝鲜战争.弘光悲歌:。弘光元年三月,清兵大举南下. 而南明仍内讧连连, 比如 左良玉不敢与敌军交战, 反而以清君侧为名顺长江东下争夺南明政权.两蹶名王:。永历六年,李..
摘要: 一、测试内容 测试方法——x264编码参数大测试:索引贴http://www.cnblogs.com/zyl910/archive//x264_encode_param.html 测试参数——subme:9、10、11。设定子像素(subpixel)运动估计(motion estimation)复杂度。值越高越好。参考测试:subme9。 测试视频——a(红):720P动画 Fate/Zero 07。简称“Fate”。b(黄):720P动画 Hunter x Hunter 07。简称“HxH”。c(绿):1080P动画 我的妹妹不可能那么可爱 11。简称“Oreimo...
摘要: 一、测试内容 测试方法——x264编码参数大测试:索引贴http://www.cnblogs.com/zyl910/archive//x264_encode_param.html 测试参数——subme:9、10、11。设定子像素(subpixel)运动估计(motion estimation)复杂度。值越高越好。crf:18 至 28,间隔1。固定位元率系数(Constant Ratefactor)码率控制方法。当qp是把某个量化值作为目标,而bitrate是把某个档案大小作为目标时,crf则是把某个“品质”作为目标。构想是让crf n提供的视觉品质与qp n相同,只..
摘要: baidu.com日均 IP 访问量[一周平均] ≈ 65,340,000日均 PV 浏览量[一周平均] ≈ 1,146,063,600taobao.com日均 IP 访问量[一周平均] ≈ 27,120,000日均 PV 浏览量[一周平均] ≈ 520,432,800360buy.com日均 IP 访问量[一周平均] ≈ 5,406,000日均 PV 浏览量[一周平均] ≈ 67,196,580paipai.com日均 IP 访问量[一周平均] ≈ 2,154,000日均 PV 浏览量[一周平均] ≈ 13,074,780dangdang.com日均 IP 访问量[一周平均] ≈ 1,308
摘要: 一、测试内容 测试方法——x264编码参数大测试:索引贴http://www.cnblogs.com/zyl910/archive//x264_encode_param.html 测试参数——subme:9、10、11。设定子像素(subpixel)运动估计(motion estimation)复杂度。值越高越好。crf:18 至 28,间隔1。固定位元率系数(Constant Ratefactor)码率控制方法。当qp是把某个量化值作为目标,而bitrate是把某个档案大小作为目标时,crf则是把某个“品质”作为目标。构想是让crf n提供的视觉品质与qp n相同,只..
摘要: 一、测试内容 测试方法——x264编码参数大测试:索引贴http://www.cnblogs.com/zyl910/archive//x264_encode_param.html 测试参数——subme:9、10、11。设定子像素(subpixel)运动估计(motion estimation)复杂度。值越高越好。crf:18 至 28,间隔1。固定位元率系数(Constant Ratefactor)码率控制方法。当qp是把某个量化值作为目标,而bitrate是把某个档案大小作为目标时,crf则是把某个“品质”作为目标。构想是让crf n提供的视觉品质与qp n相同,只..
摘要: 一、测试内容 测试方法——x264编码参数大测试:索引贴http://www.cnblogs.com/zyl910/archive//x264_encode_param.html 测试参数——subme:9、10、11。设定子像素(subpixel)运动估计(motion estimation)复杂度。值越高越好。crf:18 至 28,间隔1。固定位元率系数(Constant Ratefactor)码率控制方法。当qp是把某个量化值作为目标,而bitrate是把某个档案大小作为目标时,crf则是把某个“品质”作为目标。构想是让crf n提供的视觉品质与qp n相同,只..
摘要: 一、测试内容 测试方法——x264编码参数大测试:索引贴http://www.cnblogs.com/zyl910/archive//x264_encode_param.html 测试参数——subme:9、10、11。设定子像素(subpixel)运动估计(motion estimation)复杂度。值越高越好。crf:18 至 28,间隔1。固定位元率系数(Constant Ratefactor)码率控制方法。当qp是把某个量化值作为目标,而bitrate是把某个档案大小作为目标时,crf则是把某个“品质”作为目标。构想是让crf n提供的视觉品质与qp n相同,只..
摘要: x264是一款优秀的H.264编码器,能够压制出低码率高画质的视频。但它的编码参数很多,很多时候不知道怎么挑选。于是我决定做横向测试,彻底搞清楚各种参数的影响。 一、测试结果索引 为了便于查看,将测试结果放在最前面。 01 subme与crf(a):http://www.cnblogs.com/zy
摘要: Wakeari(有诡)中有一个有趣的渲染模式——念摄模式。但在该模式下帧率暴跌。于是我对其进行了分析。非念摄模式下有60帧——念摄模式下仅有14帧——60变为14,帧率暴跌至原来的1/4左右。技术分析估计该游戏采取的是“渲染两次”方案。具体步骤为——1.根据鼠标拖动的区域,生成一张掩码位图(念摄区域图);2.将外衣的模型标记为可见,渲染场景,输出到纹理A;3.将外衣的模型标记为隐藏,渲染场景,输出到纹理B;4.根据掩码位图,合并纹理A 和 纹理B,然后输出到屏幕。该方案有两个缺点——1.第2步、第3步共渲染两次,使帧率下降一半。2.在第4步合并纹理图时,需等待第2步、第3步的渲染操作彻底完成后
摘要: 上回我们学会了怎么计算级别(H.264 级别(Level)、DPB 与 MaxDpbMbs 详解)。但是每次手工计算就太麻烦了,我们希望有一款工具能完成这些运算。最好该工具还能跨平台使用。 在综合考虑上面的需求 和 开发难度性 后,我决定编写一个JavaScript网页程序。 最终效果—— 其实开发难度并不大,只要熟悉上回的级别计算公式,就能很容易实现。全部代码如下——&!DOCTYPE html PUBLIC &-//W3C//Dtd XHTML 1.0 Transitional//EN& &http://www.w3.org/TR/xhtml1/Dtd/
摘要: 对于H.264(MPEG-4 AVC)而言,级别(Level)是与档次(Profile)同等重要的参数。但很多文章说的很简略,只是说标清视频一般用3.1,高清用4,具体含义语焉不详。于是我做了一番研究。一、级别详表 级别(Level)是用来约束 分辨率、帧率 和 码率 的。详细信息请看表格—— LevelMax macroblocksMax video bit rate (kbit/s)Examples for high resolution @ frame rate (max stored frames)persecondper frameBP, XP, MPHiPHi10P...
摘要: x264预设类参数详解 x264版本——x264 core:116 re 加上“fullhelp”参数可以查看x264的完全版帮助——x264 --fullhelp 其中对预设类参数的说明是——Presets: --profile &string& Force the limits of an H.264 profile Overrides all settings. - baseline: ...
摘要: 按“API Level”分类对于网页程序而言,可以理解为——将数据输出到不同的div。 很多SDK是与 API Level 相关的,具有“sdk:api-level”属性,它是一个整数,值为2(Android 1.1)至14(Android 4.0)。我们可以用数组来管理——var arrAPI = new Array(); // API Level数组。用于管理给出了API Level的。 除了与 API Level 相关的SDK外,还有一些文件是与SDK无关的,它们没有“sdk:api-level”属性。怎么处理呢?按xml标签名进行分类似乎比较好。因标签名是一个字符串,应使...
摘要: 3.1 纯JavaScript转换xml 因为xml对命名空间的规定比较严格,就算是同一套命名空间的不同版本,也会报告命名空间冲突。按照这个规定,我们必须为每一个版本写一套xsl转换,这样做太麻烦了。而且有可能Google又会更新xml名称空间的版本,那时我们的xsl又会不兼容了。 这时还不如放弃xsl,用JavaScript分析xml的数据,并将其加工为html字符串。这样就能绕过命名空间问题。 而且JavaScript下,我们能更灵活的处理数据,比如解决绝对地址问题。 纯JavaScript转换xml其实并不复杂,基本上只需要改动showxml函数——// 显示xmlfunctio...
摘要: 2.1 解决“浏览器卡顿” 解决办法是,改为异步加载。这样浏览器可以继续工作,下载完成后会触发回调函数。 xml_loadFile函数支持异步加载,只需将第2个参数设为回调函数就行了。我们还可以利用闭包函数,来简化回调函数的编写。 “加载并做xsl转换”这个操作比较固定,我们可以写一个函数来封装它(doload)。同时还可以作一些界面改进,比如我为它加了点线边框、加载状态提示、展开/折叠等功能——// 显示或隐藏控件function setShow(ctl, isShow, _display){ if (null==ctl) ctl.style.disp...
摘要: 最近想学习Android开发,可是SDK Manager的下载速度太慢了。电脑开了一整天,SDK包还没有下载完。 在网上搜索了一下如何快速下载Android SDK。发现一文——《利用迅雷快速下载官方Android SDK》(http://vc4j.com/archives/21.html)。 该方法确实不错,但存在三个问题——1.因官网更新,“repository.xml”已过时,上面没有所需要的Android SDK。2.xml文件中的信息很多,找到自己所需的SDK比较费神。而且一般需要下载多个文件(platform、sample、doc、add-on)。3.当找到文件名后,要手动...
摘要: 在编写处理xml的网页时,经常为浏览器兼容性头疼。于是我将常用的xml操作封装为函数。经过一段时间的改进,现在已经很稳定了,用起来很舒服。 函数有——xml_loadFile:xml同步/异步加载。xml_transformNode:xsl转换。xml_text:节点的文本。selectSingleNode:根据XPath选择单个节点。selectNodes:根据XPath选择多个节点。 全部代码(zyllibjs_xml.js)——/*zyllibjs_xmlXML处理@author zyl910注意——1. Chrome 由于其安全机制限制, 不能读取本地文件。Reference~...
摘要: 720P动画高压测试——Hunter x Hunter 07(18组测试结果) 讨论帖——http://www.nmm-hd.org/newbbs/viewtopic.php?f=8&t=488一、原视频 下载地址——http://115.com/folder/fb1 视频信息——GeneralComplete name : F:\Temp\3\a720\[FLsnow][HUNTER×HUNTER][07][720p][AVC_AAC].mp4Format : MPEG-4Format profile : Base MediaCodec ID : isomF
摘要: H264视频高压心得——兼容华为U8800+(硬解720P)一、导言与背景知识 手机用户对于视频播放,最期望以下3点——1.播放流畅。最好手机支持该视频格式的硬件解码,俗称“硬解”。硬解视频不仅播放流畅,而且比较省电。2.文件小。手机的存储卡的容量一般只有数GB,最高的一般才32GB。文件小,才能存放更多的视频。3.画质高。虽然要求文件小,但是必须保证画质。若画质差,就没心情观看了。 H.264视频编码能满足以上需求,它能在低码率下保证较好画质。而且现在大多数手机都支持硬解H.264视频,只是存在支持级别的差异。 背景知识——H.264,或称MPEG-4 AVC(Advanced Vid...
摘要: 最近买了台新手机,该手机支持硬解H264视频。于是我想把一些视频转为H264格式,放在手机上观看。第一、因手机存储空间较少,希望视频文件小,所以码率一般设置的比较低。第二、流行视频在电脑上看看就可以了,只有经典视频才会存放在手机上多次观看,所以画质也很重要。一、需求 需求细则——1.封装格式:mp4。2.视频编码:H.264(ITU-T命名),或叫MPEG-4 AVC(ISO/IEC命名)。最好使用x264编码器,因为它在低码率下表现较好。3.AVC Profile(AVC配置):Main(主流)。因其支持CABAC编码与B帧,CABAC(Context-based Adaptive B...
摘要: 昨日花1500购买了华为U8800+。系统是安卓2.2联通定制版的。我测试了一下性能——Quadrant 1.17:1811分。Linpack 1.2.8:37.094MFLOPS。安兔兔评测 2.4.1:2187分。觉得联通定制软件太多,正好该手机的官方2.3升级包出来了(http://bbs.huaweidevice.com/cn/forum/index.php?app=forum&mod=Detail&act=Index&id=25345 ),于是我根据该方案把手机升级到2.3的系统。升级后感觉流畅了很多,于是又测了一下性能——Quadrant 1.16:2255
摘要: 视频处理开发时,经常会遇到各种分辨率。我整理了一下,发现常用的居然就有一百来种。视频分辨率列表——IdxNameWHPxsgcdPerCPTVMemo_1Macro Block1SQCIF32p4_3YYSub Quarter CIFY020p8_5Y4QQVGA40p4_3YQuarter-QVGA032p5_4Y6QCIF16p11_9YYQuarter CIF816p7_5Y. Nokia82
摘要: 当年在学习大学物理时,我已清楚了离心力的本质,可惜当时没有记录下来。最近与人讨论牛顿水桶实验,又扯出了离心力的话题,所以我趁此机会整理一下。【正文】先回顾一下惯性定律(牛顿第一定律)——任何一个物体在不受任何外力的时候(Fnet=0),总保持匀速直线运动或静止状态,直到有作用在它上面的外力迫使它改变这种状态为止。也就是说——在没有其他力介入的情况下,运动的物体总是保持匀速直线运动。要想使(匀速直线运动的)物体转为做匀速圆周运动,就必须再给予一个垂直方向的力,这就是向心力。所谓的离心力,仅是缺乏向心力的表现。即我们的主观意愿是做匀速圆周运动,而物体运动的天性是匀速直线运动。如果我们停止提供向心力
摘要: 一、问题提出 已知一个n维向量A,和一个标量k,可将它们进行标量乘法运算,得到向量B——B = kA 那么,若只知两个共线的向量A、B,如何求k呢,既——k = B/A = ?二、解决办法 我们可以将上下均乘以(点积,dot product)“A”——k = B/A= (B . A)/(A . A)= (B . A)/( |A|^2 )= (b1*a1 + b2*a2 + b3*a3 + ... + bn*an) / ( a1*a1 + a2*a2 + a3*a3 + ... + an*an )三、几何解释、推广到非共线向量 先回忆一下向量点积的的几何算法——A . B = |A| *...
摘要: .Net中,字节序(Byte Order)相关处理的类有——System.BitConverter。GetBytes等方法。本机字节序(IsLittleEndian属性)。(程序集:mscorlib)System.IO.BinaryReader。ReadInt32等方法。小端字节序。(程序集:mscorlib)System.IO.BinaryWriter。Write 方法。小端字节序。(程序集:mscorlib)System.Net.IPAddress。HostToNetworkOrder等方法。本机字节序与网络字节序的转换。(程序集:System) 为了彻底处理字节序问题,我决定将这些...
摘要: 前面的三次测试都是在同一个项目内的,既处于同一个程序集。那么,跨程序集调用会怎么样呢?
因为为了保证可维护性,我们会把一些常用操作封装到类库中去。然后实际项目开发时,引用该类库,使得解决方案中存在多个项目。编译完成后,将会是一个主要的exe和若干个dll文件,主exe程序集中的代码会调用dll程序集,既形成了跨程序集调用。
分析跨程序集调用的性能,有助优化类库架构的设计。
摘要: 今天在使用Away3D加载模型时,突然发现scale后的模型不正常,一些零件分离了,如图—— 进过反复调试,发现是AbstractParser.centerMeshes=true,且同时调用centerPivot()方法造成的问题。不调用它们就正常。 分析:调整质心后,会打乱零件与中心的关系,导致缩放出错。(完)备注:环境——Windows XP SP3Flash Player 10Flex Builder 4.5Flex SDK 4.5.1Away3D 3.6
摘要: Sengoku戦國中的人物肖像画由两部分组成——
dna:基因。用于描述人物的先天特征,如眼睛嘴唇等五官特征。
properties:装扮。用于描述人物的后天特征,如背景、头发、衣服等。
摘要: 上次我分别测试了类与结构体(http://www.cnblogs.com/zyl910/archive//2186623.html)、密封类(http://www.cnblogs.com/zyl910/archive//2186622.html)的函数调用速度评测。现在进行进一步分析,解读编译器生成的MSIL(微软中间语言)代码。一、前期准备先找到“IL 反汇编程序”(开始\程序\Microsoft Visual Studio 2010\Microsoft Windows SDK Tools\)——运行“IL 反汇编程序”,打开编译后的exe。展开节点,
摘要: csdn太卡了,决定试一试博客园。搬家成功!原博客——http://blog.csdn.net/zyl910
摘要: 上次我对C#类与结构体做了一次速度评测(http://blog.csdn.net/zyl910/article/details/6788417)。经过一段时间思索,发现还可以进一步探讨——第一、栈变量。上次的“硬编码”,是访问类中的静态变量的。若改为访问函数中的栈变量,性能会不会有所提高?第二、栈分配(stackalloc)。既然要测试栈变量,我们还可以顺便测试一下在栈上分配的内存块的访问性能。第三、64位整数。由于32位系统的成功,我们已经习惯了使用32位整数(int)。现在64位系统逐渐普及,我们得为此做好准备。对于指针操作时经常要用到的偏移量增减运算来说,是使用32位整数,还是使用64位
摘要: 以前我一直有个疑惑——在C#中,究竟是类(class)比较快,还是结构体(struct)比较快?当时没有深究。最近我遇到一个难题,需要将一些运算大的指针操作代码给封装一下。原先为了性能,这些代码是以硬编码的形式混杂在算法逻辑之中,不但影响了算法逻辑的可读性,其本身的指针操作代码枯燥、难懂、易写错,不易维护。所以我希望将其封装一下,简化代码编写、提高可维护性,但同时要尽可能地保证性能。由于那些指针操作代码很灵活,简单的封装不能解决问题,还需要用到接口(interface)以实现一些动态调用功能。为了简化代码,还打算实现一些泛型方法。本来还想因32位指针、64位指针的不同而构造泛型类,可惜发现C#
摘要: 临摹帖(zDrawHelp) V1.1简介~~~~ 临摹帖(zDrawHelp)是一个画像素图的辅助工具。 它可以使一副图片在所有窗口的前面并半透明,而且最奇妙的是——鼠标操作能穿透该图片,直接操作下面的绘图软件。 绿色软件,无需安装,解压后直接双击即可运行。 运行环境:.Net Framework 2.0。32位或64位的 Windows /xp/vista/win7。操作指南~~~~~~~~ 使用方法——1.启动绘图软件(如Photoshop)。进行编辑,放大到合适尺寸,准备画像素图。2.启动临摹帖(zDrawHelp)。3.在临摹帖(zDrawHelp)上点击...
摘要: zDrawHelp V1.0简介~~~~ zDrawHelp是一个画像素图的辅助工具。 它可以使一副图片在所有窗口的前面并半透明,而且最奇妙的是——鼠标操作能穿透该图片,直接操作下面的绘图软件。 运行环境:.Net Framework 2.0。Windows /xp/vista/win7。操作指南~~~~~~~~ 使用方法——1.启动绘图软件(如Photoshop)。进行编辑,放大到合适尺寸,准备画像素图。2.启动zDrawHelp。3.在zDrawHelp上点击鼠标右键,弹出快捷菜单。点击“打开图片”加载图片。4.默认的不透明度是100%。您可以在右键菜单中的“不透...
摘要: 1.zSaveGIF下载:http://files.cnblogs.com/zyl910/zSaveGIF.zip快速的GIF编码/解码程序。其中的GIF_LZW编码/解码算法是我最自豪的。2.NetPicTran下载(注意修改下载后的扩展名) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (利用GIF_LZW算法实现的)网络图片传输 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~作者:zyl910版本:1.0更新:技术特点~~~~~~~~一、使用TCP协议传输数...}

我要回帖

更多关于 维纶触摸屏视频教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信