public void operateMatrix(Matrix[]... srcs) {
        Matrix[] srcU = srcs[0];
        Matrix[] srcV = srcs[1];
        for (int colNo = 0; colNo < super.matWidth; colNo++) {
            multiplyAndStackUV(srcU[0].getArray(), srcV[0].transpose().getArray(), super.arrY, colNo, srcV[0].getColumnDimension(), srcU[0].getRowDimension()); 
            if (codeCbCr) {
                multiplyAndStackUV(srcU[1].getArray(), srcV[1].transpose().getArray(), super.arrCb, colNo, srcV[1].getColumnDimension(), srcU[1].getRowDimension());    
                multiplyAndStackUV(srcU[2].getArray(), srcV[2].transpose().getArray(), super.arrCr, colNo, srcV[2].getColumnDimension(), srcU[2].getRowDimension());    
            }
        }
    }