public void ImageSetDCT_Color(int _numCoeffcient) {
        //1@ Split the picture to  8*8 blocks
        DCT _dct = new DCT();

        Block[][] picBlock = _dct.SplitChanneal(this.bytes, 3*this.height, this.width);

        //Traverse the blocks matrix.
        for(int i=0;i<this.height/Block.N;i++)
        {
            for(int j=0;j<this.width/Block.N;j++)
            {
                // R channel information
                picBlock[i][j].FDCT();
                picBlock[i][j].ZigZag(Block.N, _numCoeffcient);
                picBlock[i][j].IDCT();

                // G channel information
                picBlock[i+this.height/Block.N][j].FDCT();
                picBlock[i+this.height/Block.N][j].ZigZag(Block.N, _numCoeffcient);
                picBlock[i+this.height/Block.N][j].IDCT();

                // B channel information
                picBlock[i+2*this.height/Block.N][j].FDCT();
                picBlock[i+2*this.height/Block.N][j].ZigZag(Block.N, _numCoeffcient);
                picBlock[i+2*this.height/Block.N][j].IDCT();

                DisplayBlock(picBlock[i][j], picBlock[i+this.height/Block.N][j], picBlock[i+2*this.height/Block.N][j],
                                this.img, i*8, j*8);
            }
        }
        //Select the first m coefficients in a zig order for each 8x8 block.
    }