- 博客(244)
- 资源 (36)
- 收藏
- 关注
原创 理解JPEG文件头的格式
1. JPEG1)why jpeg?jpeg作为图片传输格式使用最为普遍,压缩比最高。每天我们都会产出和传输大量的jpeg格式数据。手机拍出来的格式默认是jpeg,朋友圈各种分享。。。磁盘上积累了大量的jpeg。。。因此本人一直对jpeg头部数据非常好奇,想着有时间深入一下jpeg格式,看看头部到底存储了哪些数据?记得研究生时有专门的信息隐藏专业,基本原理可能是保持jpeg现有格式框架...
2014-11-18 20:44:07 106332 2
原创 两种2D相交性测试场景的优化技巧
1. 点和多边形相交线测试优化:通过细分part粒度实现加速。2. 文字相交线测试优化,OOBB并不一定最优 计算量十分大,将每个字单独做成AABB。
2014-04-05 16:16:11 1878
原创 【踩雷】android 中UI线程内调用gl指令的结果
android系统设置开启GPU硬件加速,UI界面中控件的贴图随机性丢失,变成一系列的黑块。问题定位,分析。。。
2014-01-27 17:09:19 3415 3
原创 关于压缩纹理的格式的思考
常见的图像格式bmp、jpeg以及jpeg2000,以及png;甚至最近几年google的webp格式。bmp格式基本上没有压缩;jpeg是有损压缩,早已成为图像传输标准,不支持透明通道;jpeg2000最显著增加渐进式传输。jpeg可以任意指定感兴趣区域的压缩质量。png无损压缩,支持透明通道,android的各种资源都是png。webp,最近几年google的开源项目,更高的压
2013-11-30 14:43:10 5005 4
原创 二维中的OBB相交测试
OBB方向性!求交核心思想:向量点积的投影意义,unitX为(1,0)单位向量, A.dot( unitX ) 为A点的x值,表示在x轴上的投影。。flipcode上面求交有问题,投影结果坐标系不统一。
2013-10-23 21:05:53 4172 1
原创 OpenGL绘制矢量路径的思路
1. 引言软件方法绘制,如QT、Android(skia)都自带2D绘图引擎,支持矢量路径填充并且抗锯齿!如果使用OpenGL绘制矢量,对建模算法以及纹理都有要求,不同的建模算法决定了最终的视觉效果。OpenGL绘制路径,抗锯齿效果由纹理来实现。下面介绍两种不同效果的路径实现和绘制:2. 纯色圆角路径通过纹理方式实现抗锯齿单色路径绘制。建模算法非常简单:将一个polyline分解成
2013-08-05 10:17:46 7925 4
原创 函数和汇编
1. 函数传参函数栈增长方向与地址方向相反,栈增长方向 高地址向低地址增长。esp指向函数栈顶,ebp指向函数栈底,传值拷贝:大数据传指针和引用参数压栈顺序函数参数在函数栈帧的外面,函数局部变量参数定义在栈上2. 函数返回值拷贝
2013-07-09 16:10:18 2071
原创 android ndk空指针导致CRASH的问题
1. APP启动时隔三差五地随机性地CRASH,捕捉到的日志:----------------2013-06-03 10:26:52----------------#00 pc 0002e9b4 /data/data/com.XXXX.map/lib/libmapengine.so#01 lr 8082dc97 /data/data/com.XXXX.map/lib/libma
2013-06-03 11:43:48 2678
原创 谈谈数组的潜在越界行为
1. 字符串函数调用前段时间的一个小插曲,刚刚提交了一段代码,结果一个拥有十年C/C++开发经验的牛人立刻给我发了一段消息:char cfgPath[MAX_FILE_NAME]; char m_szBaseDir[MAX_FILE_NAME];SysStrncpy( cfgPath, m_szBaseDir, SysStrlen(m_szBaseDir) ); 这样估计有问题
2013-06-01 17:02:04 3067 1
原创 谈谈工作总结的重要性
入职一年多了,对工作内容越来越熟悉 工作也越来越顺手!当然了感触最深、变化最大的还是工作心态。去年刚接触地图,工作中主要是学习阶段,有太多的IDEA,空余时间也做过很多的实验、尝试,当时我的mentor一直强调我一定有输出。那个时候这句话确实听进去了,不管做什么都会写个文档,当然了文档主要是记录了很多细节,每天还坚持用EverNote写工作日记,隔一段时间稍稍把各种细节汇总一下输出一个文档,给me
2013-05-29 17:28:41 7589
原创 【从技术到人生】讲座
今天有幸听到公司一位技术出身的副总裁的演讲,感触颇多具体内容如下:如何做到技术专家影响力不能沉迷于赞美,所从事的研究成果一定要实用!价值的体现:通过改进和优化算法,在屌丝机器上实现了通常只有在高富帅机器才能实现的效果。完美解决了适配问题 降低算法对硬件依赖!高效地方法解决问题!从多种解决方案中选出最优解。如何做好技术管理者最为技术管理者需具备三个能力
2013-05-14 22:13:27 2293 3
原创 Android NDK中结合汇编分析Crash行为
1. Crash后 logcat中输出绿色信息:05-02 10:14:37.130: I/DEBUG(1890): backtrace:05-02 10:14:37.130: I/DEBUG(1890): #00 pc 00033fda /data/data/com.XXXXX.map/lib/libmapengine.so (TextureCache::_touchLis
2013-05-02 22:09:40 3533 1
原创 OpenGL离线渲染和缓冲区对象
理论OpenGLl离线渲染就是通过OpenGL将绘制结果渲染到显存中的一张图片上,通过gl接口函数可以从显存读取到内存中。基于OpenGL的离线渲染机制,可以快速实现一个渲染器:输入:图像,点,线。。。输出:图像实现方案从一般到特殊:1. 不支持FBO主要介绍PC上,移动设备如果不支持FBO要实现离线渲染那就实在没辙了。glDrawBuffer(GL_BACK);
2012-12-22 15:42:44 15237 1
原创 OpenGL错误总结
const char* getGLErrorInfo(int errorId){ switch (errorId) { case GL_INVALID_ENUM: return ("GL Invalid Enum\n"); case GL_INVALID_VALUE: return ("GL Invalid Value\n"); case GL_INVALID_OPERATIO
2012-05-23 10:34:36 14886
原创 IMMComposer
IMMComposer是一个基于结点的通用可视化编程软件。主要内容包含一套基于结点的可视化编程模型,界面友好的交互式创作环境,可视化交互子系统以及插件系统。目前功能模块包含:图像、视频、声音、数学。图像、视频部分基于OpenCV实现,声音部分基于Bass库实现,数学部分基于Lua的math包。GitHub上项目地址:https://github.com/dizuo/QVP_Kernal ...
2012-01-09 02:13:10 2275
原创 基于udp的监视系统示例
前言想法来源:http://nashruddin.com/Web_Based_Surveillance_System_with_OpenCV_PHP_and_Javascript这篇文章是基于opencv,php,javascript做了一个基于网络的监视系统。偶虽然熟悉opencv,稍微懂点javascript,但是不懂php,所以只能另辟新径:服务器:通过opencv捕获每一帧
2011-06-24 21:50:00 2847
原创 全局变量的陷阱
问题描述:程序是基于MFC对话框,在dlg.cpp中定义了大批的全局变量:静态数组,整型,局部,结构体等。这么一个结构体: enum { PATH_NUM = 3, PATH_POINT_NUM = 33}; struct TrackPath{ char name[16]; //#track_path# int trackChannelNu
2011-06-15 13:10:00 2207 3
原创 谈谈C++中的swap函数
1,最通用的模板交换函数模式:创建临时对象,调用对象的赋值操作符。template void swap ( T& a, T& b ){ T c(a); a=b; b=c;} 需要构建临时对象,一个拷贝构造,两次赋值操作。2,针对int型优化:void swap(int & __restrict a, int & __restrict b){a ^= b;b ^= a
2011-05-21 00:32:00 142120 6
原创 基于OpenGL实现的多段Bezier曲线拼接
运行程序的交互方式有点类似corelDraw中的自由曲线绘制,或者photoShop中的钢笔自由路径绘制。截图: 将BezierCurve封装成了一个类,代码如下: #ifndef _BEZIERCURVE_H#define _BEZIERCURVE_H#include "vec3.hpp"#include #include #include u
2009-10-26 12:51:00 8377 7
原创 创建自己的dll和lib文件
经常使用到第三方库。比如:glut,freetype,sdl,大一点的有CEGUI,OSG等。这些库虽然是开源的,但是很多时候只是使用他们,一般不会去修改。使用就会涉及到三个东西:.h .lib .dll文件。主要有三种模式:.h+.lib .h+.lib+.dll.dll 第二种是最常见的,其他两种都比较少 一,下面自己实现一个dll和
2009-04-23 15:47:00 7136 6
原创 利用OpenGL绘制按钮
通过OpenGL自己绘制按钮,菜单,可以自己贴图,可以自己构建很炫的GUI。我这里只是做了一个最原始的模型, 没有增加贴图。程序实现思路:通过正交变换绘制出按钮cube, 然后重置投影视图矩阵,转入场景绘制。具体在display函数里。主要想想说一下几个细节问题:1,正交投影的坐标系原点位于左下角, 而透视投影坐标系原点位于窗口中心。2,mouse函数参数x,y分别是鼠标的坐标,
2009-02-28 13:54:00 12192 11
原创 OpenGL实现立体显示
立体显示原理:设没有立体显示的模型视图矩阵ModelView为Mv,投影矩阵为Mp,则、物体空间的任何一点为P,则变换到屏幕坐标P*=Mp×Mv×P;注意前面已经说过opengl里面坐标列优先,所以矩阵都是右乘。左眼和右眼的变换都是由中间的变换矩阵变换而来,则立体显示中左眼的变换矩阵公式为:P(L)*=Ms(L) × Mp(L) × Mt(L) × Mv(L) × P;右眼的矩阵变换公
2008-04-25 14:35:00 9409 6
翻译 苹果M1芯片为何如此快?一个开发者的解释
M1为何如此之快?youtube上,一个Mac用户去年花了4000刀买的40GB内存的IMac,被只花了区区700刀的新款M1 Mac Mini吊打。
2021-01-24 16:11:34 1965
原创 C++ SDK包大小优化实践
一个成熟sdk,必然要经历 压缩包大小 / 瘦身的过程。尤其以SDK的形式接入一个第三方APP中。客户方是宿主APP,对第三方sdk会提出各种苛刻要求。如果APP是top级的,比如微信,QQ,滴滴打车,美团这类,居高临下 这类要求会更加难以回绝。
2020-06-28 23:07:20 1398 1
原创 三角化库对比分析
主要对比triangle库和libtess,压箱底的数据,share出来。包大小对比libtesstriangle包大小30k82k风格cc性能对比地图三角化中随机选了一批顶点个数的多边形,性能结果如下:sizetesstri(ms)4662253422602226092261522626327513280033112853123983.
2020-06-28 12:03:58 1006
QT 和OpenCV 的多线程框架 vs2008版本
2011-09-05
live555的源码(vs2008)
2011-07-31
activex跟js数据交换例子程序
2011-07-28
基于udp,opencv的实时监控系统
2011-06-24
opengl多边形顶点排序,凸包计算,路径绘制
2011-06-10
irrKlang-1.0
2007-10-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人