public static double[,] IWT97(double[,] data, int levels)
{
int w = data.GetLength(0);
int h = data.GetLength(1);
for (int i = 0; i < levels - 1; i++)
{
h >>= 1;
w >>= 1;
}
for (int i = 0; i < levels; i++)
{
data = iwt2d(data, w, h);
data = iwt2d(data, w, h);
h <<= 1;
w <<= 1;
}
return data;
}