wiki链接:http://en.wikipedia.org/wiki/Haar_wavelet
可用SSE2实现HAAR小波变换,达到实时,关于HAAR小波的介绍可参考以上维基链接
参考MATLAB中dwt2与idwt2的函数原型,基于OpenCV的框架进行了汇编优化实现
HAAR小波也可用于图像的压缩,将CH,CV,CD中的分量值小于某一阈值则归为0,从而这三个矩阵将成为稀疏矩阵(Sparse Matrix),反变换后的图像的质量将取决于选择阈值的大小。
实际实现时,可选择使用浮点数(单精度或双精度)进行矩阵计算,使用整数计算能得到更快的速度但不能进行完整的压缩与解压缩。
附代码:
inline void dwt2_row(__out double* ca0,
__out double* ch0,
__out double* cv0,
__out double* cd0,
__in unsigned char* row0,
__in unsigned char* row1,
__in int col)
{
__asm
{
mov eax_ptr, ca0;
mov ebx_ptr, ch0;
mov ecx_ptr, cv0;
mov edx_ptr, cd0;
mov esi_ptr, row0;
mov edi_ptr, row1;
pxor xmm3, xmm3;
movapd xmm7, g_halfd;
sub c