自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (3)
  • 收藏
  • 关注

原创 openjpeg:jpeg2000(j2k)图像内存压缩编码

上一篇博文实现了《jpeg2000(j2k)图像编码解码:c++实现openjpeg内存流接口(memory stream)》中实现了openjpeg的memory stream接口,本文介绍如何用memory stream实现jpeg2000图像的内存压缩。create opj_image_topenjpeg在处理图像是有定义自己的图像描述结构opj_image_t,如果要对内存的中的图像进行压缩

2016-01-29 14:56:31 8317 6

原创 jpeg2000(j2k)图像编码解码:c++实现openjpeg内存流接口(memory stream)

前阵子用libjpeg-turbo实现jpeg图像在内存中编码与解码 参见《libjpeg:实现jpeg内存解压缩塈转换色彩空间/压缩分辨率》,《libjpeg:实现jpeg内存压缩暨error_exit错误异常处理和个性化参数设置》觉得libjpeg接口用起来挺麻烦的。。。但libjpeg 80以上的版本好歹提供了jpeg_mem_dest/jpeg_mem_src API让我可以直接将实现

2016-01-29 14:14:11 6842 14

原创 openjpeg:解决静态链接时未定义引用错误:undefined reference to `__imp_opj_xxxxxxx‘

解决办法加入OPJ_STATIC宏定义。 1. 在#include "openjpeg-2.1/openjpeg.h"之前中加入OPJ_STATIC定义,如下#ifndef OPJ_STATIC#define OPJ_STATIC#endif#include "openjpeg-2.1/openjpeg.h"2.如果你用cmake编译项目代码可以在CMakeLists.txt中加入OPJ_S

2016-01-28 11:09:12 22827 5

原创 VS2015编译openjpeg(32/64位)

上一篇博客《mingw(gcc)编译openjpeg》讲了如何用gcc编译openjpeg,但我目前只会在64位平台下生成64位目标代码,如果需要在64位平台生成32位目标代码怎么办?我还没有找到不修改CMakeList.txt的情况下在Windows 64位平台用gcc生成32位代码的办法(待研究),因为我的调试环境还是喜欢用VS2015所以我决定还是用VS2015再把openjpeg编译一遍,而

2016-01-25 16:58:27 7695 3

原创 mingw(gcc)编译openjpeg

openjpeg是C语言实现的开源jpeg2000图像格式的编码/解码器,github上有编译好的linux/windows二进制文件,目前最新的版本是2.1(https://github.com/uclouvain/openjpeg/releases/tag/version.2.1) 但官方提供的二进制文件只提供了dll,如果想要将代码静态编译到项目中需要自己下载源代码编译。下载原代码下载:ht

2016-01-25 16:00:54 4583

原创 libjpeg:读取jpeg头获取图像基本信息(jpeg_read_header)

libjpeg中的jpeg_read_header函数用于读取jpeg数据头部的基本信息,以下为jpeg_read_header的定义。/* Decompression startup: read start of JPEG datastream to see what's there */EXTERN(int) jpeg_read_header (j_decompress_ptr cinfo,

2016-01-23 17:40:26 9514 1

原创 libjpeg:实现jpeg内存解压缩塈转换色彩空间/压缩分辨率

前一篇博客《libjpeg:实现jpeg内存压缩暨error_exit错误异常处理和个性化参数设置》实现了jpeg图像的内存压缩,本文来讨论jpeg图像内存解压缩的过程先贴出完整代码,再做讲解 jpeg_mem.h/* 图像矩阵基本参数 */typedef struct _image_matrix_pram{ int32_t width;

2016-01-23 16:31:41 5714

原创 libjpeg:实现jpeg内存压缩暨error_exit错误异常处理和个性化参数设置

libjpeg-turbo是与libjpeg接口兼容的一个jpeg编/解码库,其主要的特点就是利用SIMD指令(如X86架构的MMX/SSE/SSE2,ARM架构的NEON)来加速jpeg图像的编/解码,相比被广泛使用的libjpeg,编码和解码性能提高2~4倍左右。 本文介绍的内容适用于libjpeg-turbo和libjpeg(80以上版本) 关于如何用gcc对libjpeg编译,请参考我之

2016-01-20 10:51:27 5609

原创 VS2015下解决:error LNK2019: 无法解析的外部符号 __iob_func

在使用VS2015下使用libjpeg-turbo静态库,编译时报错了: error LNK2019: 无法解析的外部符号 __iob_func,该符号在函数 output_message 中被引用根据关键字在网上找到一些文章描述了类似的错误,大都是找不到外部符号__iob,与我的情况不同,但是原理是一样的, 其实__iob_func和__iob都是用来定义stdin,stdout,stde

2016-01-16 17:15:40 49702 6

原创 cmake:让mingw(gcc)生成MSVC可用的dll(.lib)

minggw(gcc)编译出来的动态库(DLL),默认是没有MSVC连接动态库所需要的lib文件的。 关于MSVC的DLL和LIB的作用和区别,请参考这篇博文,讲得很透彻了–>《DLL和LIB的区别》那么如果VC要链接gcc生成的DLL,却没有lib文件怎么办? 对于这个问题网上都有解决的办法,这篇文章讲到一些办法,可供收藏《VC6 调用GCC的DLL》,对于没有提供lib的DLL都可以用这

2016-01-15 19:49:55 12054 11

原创 mingw(gcc)编译libjpeg-turbo

最近的工作需要读写jpeg图像,网上找了半天,发现libjpeg-turbo是个不错的选择。 ibjpeg-turbo是与libjpeg接口兼容的一个jpeg编/解码库,其主要的特点就是利用SIMD指令(如X86架构的MMX/SSE/SSE2,ARM架构的NEON)来加速jpeg图像的编/解码,相比被广泛使用libjpeg,编码和解码性能提高2~4倍左右。下面是其官网的说明: libjpeg-

2016-01-15 17:57:16 3977

原创 cmake:在各级子项目(目录)之间共享变量

项目目录结构如下图,facedetect和facefeature都要用到opencl中的include文件,1.2,2.0,2.1是不同的opencl版本的头文件,希望在cmake创建Makefile时,opencl文件夹下的CMakeLists.txt能定义类似INCLUDE_OPENCL_1_2,INCLUDE_OPENCL_2_0,INCLUDE_OPENCL_2_1,这样的变量,以保存不同版

2016-01-13 08:59:33 26530 2

原创 OpenCL ICD Loader运行测试暨解决报错:ERROR: App log and stub log differ.

上一篇博文《OpenCL Installable Client Driver (ICD) Loader编译》详细描述了如何编译OpenCL ICD Loader。OpenCL ICD Loader自带了测试程序,成功编译后可以根据源码根目录下README.txt的说明运行测试程序来验证Loader是否可以正常工作: == Running ICD Test == ICD Test can b

2016-01-11 15:54:21 2558 2

原创 OpenCL Installable Client Driver (ICD) Loader编译

ICD是什么?OpenCL Installable Client Driver (ICD) Loader是实现OpenCL应用程序与各硬件厂商提供的OpenCL驱动(platform)之间隔离的中间库。从OpenCL 1.2开始,OpenCL提供了一个ICD扩展(cl_khr_icd),它允许不同厂商的多个OpenCL驱动(platform)共存于一个主机系统,应用程序可以通过调用clIcdGetP

2016-01-11 10:38:09 5938 1

原创 java(JVM)结束时释放JNI资源(Runtime.addShutdownHook)

如下代码中cmjnidrv是一个动态库,CodeCacheManager在类加载时就自动将cmjnidrv加载进来。cmjnidrv中有多个独立的线程在运行并申请了大量的内存. release()是个native方法,用于释放cmjnidrv中的申请资源并中止cmjnidrv中的线程。 为了保证在java应用结束的时候cmjnidrv的资源能被正确释放,就必须确保release()被调用。

2016-01-05 11:20:00 2670 1

原创 cmake:动态链接库(so)中静态链接tcmalloc(gperftools2.4)暨静态链接libstdc++

将tcmalloc作为动态库使用,非常方便,网上有很多资料介绍了。tcmalloc.a也可以很方便的以静态链接的方式加入应用程序中,大概因为使用太方便,网上关于这方面的介绍都是一笔带过。真正使用的时候,还是有一些需要注意的地方。 我的项目中有一个so动态库,需要在java中通过jni调用,因为涉及频繁的内存分配操作所以这个so希望用tcmalloc管理内存池以提高系统运行效率,如果使用以动态库方式

2016-01-04 18:28:34 7195

原创 bash shell脚本安装tcmalloc,linunwind,libstdc++ so库

因为项目中使用了tcmalloc,而是用gcc 5.2.0编译的64位代码,所以项目中的so依赖libunwind,tcmalloc,以及gcc5.2.0的libstdc++.so [roo@t2]ldd /usr/local/face/lib/libcmjnidrv.so linux-vdso.so.1 => (0x00007fffa4bff000) libcmimp

2016-01-02 10:42:45 1186 1

原创 ant调用make实现Makefile编译

上一篇博文《cmake:shell(bat,sh) 脚本方式生成Makefile》中完成了cmake生成Makefile脚本的过程,也就是步骤1,本文谈谈步骤2和步骤3的实现:步骤2:为了让ant能执行make,还得用脚本实现linux sh脚本实现,build.sh:#!/bin/shexport BUILD_FOLDER="`cd "$(dirname "$0")"; pwd`.prj"##

2016-01-01 13:05:29 2209

原创 cmake 生成Makefile时指定c/c++编译器

linux下在使用cmake生成Makefile的时候,如果不指定编译器,则默认是使用系统原生的编译器, 当操作系统中安装了新的版本的编译器,两个版本编译器共存的时候,如果想使用新版本的编译,在cmake生成Makefile的时候就需要指定编译。这就是我目前遇到的情况: 我的项目代码是用C++11写的,需要支持C++11的编译,而我使用的CentOS6.5原生的编译器是gcc4.4.7(位置/u

2016-01-01 12:12:25 54956 1

原创 cmake:shell(bat,sh) 脚本方式生成Makefile

项目总体是用ant来控制编译的,但有一些用c/c++写的native的动态链接库是用cmake来生成Makefile文件编译的,为了统一用ant来控制所有代码的生成,就需要将c/c++代码也能用ant脚本编译。 总体的过程是这样的: 步骤1.为了让ant能控制c/c++代码的编译,首先就需将cmake生成Makefile的过程脚本化。 步骤2.在ant脚本中调用步骤1中的脚本来实现Makef

2016-01-01 11:46:30 4747 1

CMake脚本在ultraedit中的语法高亮支持

资源来自CMake官网: http://www.cmake.org/Wiki/images/5/56/UltraEditWordfile.tar.gz, 但这个链接已经无法访问,从历史快照中找加,上传备份 参见使用方法参见:https://blog.csdn.net/10km/article/details/52368486

2023-06-08

erpcgen-windows-x86_64.zip

用cygwin编译的erpcgen,可以windows下直接通过IDL编译生成client/server端(C++)代码,有cygwin的童鞋也可以自行编译,很方便的。 erpc git仓位置: https://github.com/EmbeddedRPC/erpc

2020-09-17

windows下MSVC兼容的dirent.h

<dirent.h>是一个应用程序接口,主要用于文件系统的目录读取操作,主要提供了几个目录数据读取函数,<dirent.h>是unix系统下常见的接口,但windows平台的MSVC编译器并没有提供这个接口( Cygwin5 and MingW现在已经提供了dirent接口),对于跨平台的项目开发就会带来一些麻烦,如果在MSVC下编译时可能因为windows平台缺少这个接口就要为windows平台另外写一些代码。本资源是从网上找的,提供了windows下为MSVC实现的dirent.h接口实现,方便跨平台开发和移植。

2016-03-31

libb64--base64编码解码库

libb64是实现base64编码解码的开源库,还提供了C++封装,用起来挺方便

2016-03-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除