public void psvdIteration () {
        initPara ();
        boolean convergedY = false;
        boolean convergedCb = false;
        boolean convergedCr = false;

        while (!convergedY) {
            iter[0]++;

            solveR(0);
            solveD(0);
            updatePara(0);
            convergedY = judgeConverge(0);

            // test 
            // if (iter[0] == 11) {
            //     convergedY = true;
            // }
        }
        storeAndRoundDiag(0);

        if (codeCbCr) {

            while (!convergedCb) {
                iter[1]++;

                solveR(1);
                solveD(1);
                updatePara(1);
                convergedCb = judgeConverge(1);
            }
            storeAndRoundDiag(1);

            while (!convergedCr) {
                iter[2]++;

                solveR(2);
                solveD(2);
                updatePara(2);
                convergedCr = judgeConverge(2);
            }
            storeAndRoundDiag(2);
        } 
    }