摘要:
一般编译的程序在进行VTune的Call Graph分析时会遇到无法找到relocation错误,只需要加上/fixed:no连接选项即可。 阅读全文
摘要:
在sourceforge上发布的第二个界面工程项目,比virtual piano更实用。有趣的是它以virtual piano的正是名字clavio作为unix name(virtual piano的unix name是vpiano),因为它的界面引擎就被称作clavio。它运用媒体编辑的理念实现MIDI序列的创作,并加入键盘实时演奏记录功能。目前实现大部分关键功能,但作为一个媒体处理软件,它在用户体验、功能、格式支持还有很大的改进余地,代码的可扩展性有待提高,同时隐藏的bug也非常多。希望通过开源能使之进入一个健康的发展轨道。通过这个小作品,我已经能体会到制作像Avid、Final Cu.. 阅读全文
摘要:
C++析构函数调用原则,明确的子类对象销毁时,后序顺次向上级调用析构函数。 如果祖先类的析构函数是虚拟的,那么所有子类的析构函数也强制为虚拟的,这样保证能正确销毁动态分配的对象。今天发现如果祖先类没有声明虚拟的析构函数,则继承类虚拟析构函数在动态分配对象销毁时不会被调用,这一点需要注意。 阅读全文
摘要:
小作品虚拟钢琴在sourceforge上的project:https://sourceforge.net/projects/vpiano/ 目前存在的主要问题: 1 多线程播放占用CPU较大; 2 导出VPO文件可读性差; 3 导出的MID文件不能通行。 阅读全文
摘要:
在kd_block_decoder::decode(kdu_block *block)中,JPEG2000的EBCOT关键解码步骤得以实施。对于一个[:num_rows*num_cols:]码块,又以4行为单位划分成多个条带(stripe),于是条带总数为[:(num_rows+3)/4:]。 一些主要的变量: [:num_cols:],[:num_rows:]:当前有效码块(block)的列数和行数; [:num_stripes = (num_rows+3)/4:]:有效条带数,这些条带覆盖全部码块; [:num_samples = (num_stripes*4)*num_col... 阅读全文
摘要:
解码过程的最关键部分由与kdu_decoder类一一对应的实体类kd_decoder对象完成。每个kd_decoder对应一个分量的一个子带(subband)。在kd_decoder构造的时候,主要工作是从字带对象band中获取关于码块的信息: nominal_block_size——码块大小 first_block_size——实际(在子带中的)首码块大小 block_indices——码块组的索引 kdu_decoder的主要运算在虚函数实现pull中完成。而这个函数的主要工作在decode_row_of_blocks中进行。该过程对一个字带中的一行码块逐个进行解码: 1 调... 阅读全文
摘要:
// 代码重新格式化于20110717/** * prop.h */ #include <malloc.h> #define CONCAT_DIRECT(a,b) a##b
#define CONCAT(a,b) CONCAT_DIRECT(a,b)
#define TOSTR_DIRECT(tag) #tag
#define TOSTR(tag) TOSTR_DIRECT(tag) template <class Owner> struct Property { Owner *GetOwner(int ofs = -1) ... 阅读全文
摘要:
map映射类概念:函数子(functor),比较子(comparator)。函数子是对象化的算法。比较子是一种函数子。关于比较子,用到了一个比较重要的C++技术,就是重载括号运算符。这个运算符的重载一般很少用到,它的思想是把函数调用演化成对象的运算符操作。这样就实现了算法的对象化。将函数(算法)参数化并非STL的创新,在C中就已经有函数指针。例如一个小于运算的函数过程:struct { int v1; int v2; } mydata;bool my_lt(const mydata *d1, const mydata *d2){ return (d1->v1 < d2->v1 阅读全文
摘要:
一、球面坐标变换 单位球所在基准空间,以转轴向北极单位向量记ez,定赤道某处为经度0度,球心向该点单位向量记ex,根据右手系,ey=outer_product(ez, ex)。从球心出发向量v_r指向球面上点P,沿经线向南单位向量记ey_s,沿纬线向东单位向量记ex_s,指向球心的为ez_s=-v_r。设该点的经纬度坐标为(alhpa, beta)。球面变换是求当转移到(alpha_new, beta_new)的P_new处,坐标系从coord(ex_s, ey_s, ez_s)变为coord(ex_s_new, ey_s_new, ez_s_new)的变换矩阵。 记R_x(angle)、.. 阅读全文