private List<EmbInfo> shiftData(JPEGDataUnits dataUnits,int colorid , int slot){
        // 需要进行操作的颜色空间
        List<int[]> colorUnit = dataUnits.getColorUnit(colorid);
        // 需要操作的颜色空间的直方图
        Historgram[] historgrams = dataUnits.getHistorgram(colorid);
        // 返回值,返回可嵌入的位置
        ArrayList<EmbInfo> retInfos = new ArrayList<EmbInfo>(colorUnit.size());

        // 平移留出嵌入空间,颜色空间0处为直流分量,不做处理
        for (int acIndex = 1; acIndex <= slot; ++acIndex){
            historgrams[acIndex].print(System.out);
            int[] z = historgrams[acIndex].findZ(Cipher.POSITION_BASE);
            System.out.println(String.format("z:[%3d,%3d]",z[0],z[1]));
            System.out.println("Before : ");historgrams[acIndex].print();
            // 看每一个unit第acIndex个分量是否在区间内,是的话进行平移
            for (int unitIndex = 0; unitIndex != colorUnit.size(); ++unitIndex){
                int[] unit = colorUnit.get(unitIndex);
                if ( z[0] < unit[acIndex] && unit[acIndex] < Cipher.POSITION_BASE ){
//                    System.out.println(String.format("%4d left  shifted",unit[acIndex]));
                    --unit[acIndex];// 左移
                }else if ( Cipher.POSITION_BASE < unit[acIndex] && unit[acIndex] < z[1] ){
//                    System.out.println(String.format("%4d right shifted",unit[acIndex]));
                    ++unit[acIndex];// 右移
                }else if(unit[acIndex] == Cipher.POSITION_BASE){
                    retInfos.add(new EmbInfo(unitIndex, acIndex, true));
                }
            }
        }

        historgrams = dataUnits.getHistorgram(colorid);
        System.out.println("After  : ");historgrams[1].print();
        return retInfos;
    }