一下代码是根据毕厚杰的那本书写的c代码,简洁实用。
//DCT变换、量化、反DCT变换、反量化。
#include <stdio.h>
#include <math.h>
int QP=4; //quantize parameter
int D[4][4];
int W[4][4];
int Z[4][4];
int Wi[4][4];
int Di[4][4];
int Xi[4][4];
int Cf[4][4]=
{
{1, 1, 1, 1},
{2, 1, -1, -2},
{1,-1, -1, 1},
{1,-2, 2, -1}
};
int Cft[4][4]=
{
{1, 2, 1, 1 },
{1, 1, -1, -2},
{1,-1, -1, 2},
{1,-2, 1, -1}
};
int Ci[4][4]=
{
{2, 2, 2, 1 },
{2, 1, -2, -2},
{2, -1, -2, 2 },
{2, -2, 2, -1}
};
int Cit[4][4]=
{
{2 , 2 , 2, 2 },
{2 , 1 , -1, -2 },
{2 , -2 , -2, 2 },
{1 , -2 , 2, -1 }
};
int MF[6][6]=
{
{13107, 5243, 8066},
{11916, 4660, 7490},
{10082, 4194, 6554},
{9362, 3647, 5825},
{8192, 3355, 5243},
{7282, 2893, 4559}
};
int V[6][6]=
{
{10, 16, 13 },
{11, 18, 14 },
{13, 20, 16 },
{14, 23, 18 },
{16, 25, 20 },
{18, 29, 23 }
};