NV21轉YUV420SP的代碼,測試通過

  格式就不說了,直接看代碼:

    /*
     * NV21: YYYYYYYY VUVU =>YUV420SP I420: YYYYYYYY UU VV =>YUV420P
     */
    public final static int NV21_2_yuv420p(byte[] dst, byte[] src, int w, int h)
    {
        int ysize = w * h;
        int usize = w * h * 1 / 4;

        byte[] dsttmp = dst;

        // y
        System.arraycopy(src, 0, dst, 0, ysize);

        // u, 1/4
        int srcPointer = ysize;
        int dstPointer = ysize;
        int count = usize;
        while (count > 0)
        {
            srcPointer++;
            dst[dstPointer] = src[srcPointer];
            dstPointer++;
            srcPointer++;
            count--;
        }

        // v, 1/4
        srcPointer = ysize;

        count = usize;
        while (count > 0)
        {
            dst[dstPointer] = src[srcPointer];
            dstPointer++;
            srcPointer += 2;
            count--;
        }

        dst = dsttmp;

        // _EF_TIME_DEBUG_END(0x000414141);

        return 0;
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章