IDCT变换(JAVA)

来源:互联网 发布:vb乘法表 编辑:程序博客网 时间:2024/06/05 02:44

IDCT变换(JAVA)主要代码:


public static double[][] inverseDCTconvertion(double[][] Fp) {  // IDCT      int sizeX = Fp.length;      int sizeY = Fp[0].length;      double[][] fp = new double[sizeX][sizeY];      int u, v, x, y;                 for(int xx = 0; xx < sizeX; xx += 8){           for(int yy = 0; yy < sizeY; yy += 8){                 for(int x1 = xx; x1 < xx + 8; x1++){                   x = x1 - xx;                   for(int y1 = yy; y1 < yy + 8; y1++){                       y = y1 - yy;                       double subSum = 0.0;                       for(int u1 = xx; u1 < xx + 8; u1++){                           u = u1 - xx;                           for(int v1 = yy; v1 < yy + 8; v1++){                               v = v1 - yy;                                subSum += Cfunc(u) * Cfunc(v) * Fp[u1][v1] * Math.cos(((2.0*x + 1.0)*u*Math.PI)/(16.0)) * Math.cos(((2.0*y + 1.0)*v*Math.PI)/(16.0));                           }                       }                       fp[x1][y1] = ((1.0 / 4.0) * subSum);                 }                }           }     }      return fp;}

原创粉丝点击