返回信息流最简单的蝶形算法形式就ok。。
对编程很愚钝,故来求代码。如果有恰好做过的同学,方便的话麻烦传一下啦~谢谢
这是一条镜像帖。来源:北邮人论坛 / cpp / #27874同步于 2009/8/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
【求】快速哈达玛变换的C代码
teamo
2009/8/31镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
lz问过关于yuv的问题,我猜测是要做2D的4x4 hadamard变换
假设M4[4][4]是输入, M5[4]是临时buffer
// horizontal
for (j=0;j<4;j++)
{
M5[0] = M4[j][0]+M4[j][3];
M5[1] = M4[j][1]+M4[j][2];
M5[2] = M4[j][1]-M4[j][2];
M5[3] = M4[j][0]-M4[j][3];
M4[j][0] = M5[0]+M5[1];
M4[j][2] = M5[0]-M5[1];
M4[j][1] = M5[3]+M5[2];
M4[j][3] = M5[3]-M5[2];
}
// vertical
for (i=0;i<4;i++)
{
M5[0] = M4[0][i]+M4[3][i];
M5[1] = M4[1][i]+M4[2][i];
M5[2] = M4[1][i]-M4[2][i];
M5[3] = M4[0][i]-M4[3][i];
M4[0][i]=(M5[0]+M5[1])>>1;
M4[2][i]=(M5[0]-M5[1])>>1;
M4[1][i]=(M5[3]+M5[2])>>1;
M4[3][i]=(M5[3]-M5[2])>>1;
}
输出M4[4][4]
呵呵,问号大哥好注重相关性啊~~
按照哈达玛变换的定义这样做我明白,由于我要用到巨大的变换矩阵,因此必须用快速算法了,老师说,快速算法与FFT的蝶形算法结构类似。
请推荐一点相关的基础知识吧,我先学习下
【 在 QuestionMark (问号) 的大作中提到: 】
: lz问过关于yuv的问题,我猜测是要做2D的4x4 hadamard变换
: 假设M4[4][4]是输入, M5[4]是临时buffer
: // horizontal
: ...................