function [ y ] = my_2dct( x , Q )
    % 使用blkproc对矩阵进行分块，参数中传入的x为8*8的矩阵(总共会遍历4096次)，Q为量化参数
    global sum;
    % 首先对8*8的矩阵进行2D-dct变化
    D2_dct = dct2(x);
    % 然后对2D-dct的结果进行量化。量化公式参考 http://bbs.csdn.net/topics/310026388
    temp = round(D2_dct ./ Q);
    % 量化后，求2D-idct时，需要进行逆量化，否则得到的PSNR值会很小，图片都是黑的
    D2_idct = idct2(temp .* Q);
    y = D2_idct;
    % 计算每个8*8矩阵的PSNR，并保存到Q_1_data.txt文件中
    psnr_ans = my_psnr(y , x);
%     fid = fopen('Q_1_data.txt' , 'a');
%     fprintf(fid , '\n' , psnr_ans);
%     fclose(fid);
    % 记录总共的PSNR，用于计算均值
    sum = sum  + psnr_ans;
end

