hadamard 变换理论
很多网页都有介绍,我就不拷贝了,给两个链接。
下面的是harvey mudd college 的一个“计算机图像处理分析”课件中哈达玛变换的一个章节
(JASON GARRETT-GLASER x264的主开发就是在这个学校上过学阿。很棒的一个工程类大学)
http://fourier.eng.hmc.edu/e161/lectures/wht/index.html
大概提纲:
1.介绍了hadamard 矩阵的定义
2.快速hadamard变换算法(hadamard orderd)
3. Sequency Ordered hadamard 矩阵的定义 --h264使用了这个定义
4. 快速hadamard变换算法(Sequency orderd)
http://www.cnblogs.com/xkfz007/articles/2616143.html
这个是中文的一个博客“X264中SATD实现分析”
优点是-中文,哈哈。步骤也比较详细,缺点是关于h264使用的sequency ordered那部分交代的不清楚。
JM86中hadamard的实现
函数 SATD 里
if (use_hadamard) //++ 如果采用了Hadamard变换,则先对残差块进行Hadamard变换,然后将变换后的16个残差值取绝对值相加作为代价
{
/*===== hadamard transform =====*/
m[ 0] = d[ 0] + d[12];
m[ 4] = d[ 4] + d[ 8];
m[ 8] = d[ 4] - d[ 8];
m[12] = d[ 0] - d[12];
m[ 1] = d[ 1] + d[13];
m[ 5] = d[ 5] + d[ 9];
m[ 9] = d[ 5] - d[ 9];
m[13] = d[ 1] - d[13];
m[ 2] = d[ 2] + d[14];
m[ 6] = d[ 6] + d[10];
m[10] =