⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umc_h264_mc.cpp

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size8x4);        break;    case MBTYPE_BWD_FWD_16x8:        // 2 vectors for the MB (2 - 8x4 chroma blocks)        block_ref = pRefIdxL1[0];        futr_frame = get_chroma_ptr(pRefPicList1[block_ref], is_v_plane) + uOffset;        pMCRef = futr_frame + SubpelChromaMVAdjust(pMVBwd, uPitch, iXType, iYType);        // interpolate copy the 8x4 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size8x4);        // Do other 8x4 block        pMVFwd += uWidthIn4x4Blocks * 2;      // Reposition MV pointer to next 16x8        pDst += DEST_PITCH*4;        block_ref = pRefIdxL0[uWidthIn4x4Blocks * 2];        prev_frame = get_chroma_ptr(pRefPicList0[block_ref], is_v_plane)                       + uOffset + uPitch*4;        pMCRef = prev_frame + SubpelChromaMVAdjust(pMVFwd, uPitch, iXType, iYType);        // interpolate copy the 8x4 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size8x4);        break;    case MBTYPE_BWD_BWD_16x8:        // 2 vectors for the MB (2 - 8x4 chroma blocks)        block_ref = pRefIdxL1[0];        futr_frame = get_chroma_ptr(pRefPicList1[block_ref], is_v_plane) + uOffset;        pMCRef = futr_frame + SubpelChromaMVAdjust(pMVBwd, uPitch, iXType, iYType);        // interpolate copy the 8x4 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size8x4);        // Do other 8x4 block        pMVBwd += uWidthIn4x4Blocks * 2;      // Reposition MV pointer to next 16x8        pDst += DEST_PITCH*4;        block_ref = pRefIdxL1[uWidthIn4x4Blocks * 2];        futr_frame = get_chroma_ptr(pRefPicList1[block_ref], is_v_plane)            + uOffset + uPitch*4;        pMCRef = futr_frame + SubpelChromaMVAdjust(pMVBwd, uPitch, iXType, iYType);        // interpolate copy the 8x4 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size8x4);        break;    case MBTYPE_BIDIR_FWD_16x8:        MCOneBiDirMBChroma(            uMB,            uPitch,            pMVFwd,            pMVBwd,            pDst,            m_pCurrentFrame->pTempBuff4DirectB,            is_v_plane        );        // Do other 8x4 block        pMVFwd += uWidthIn4x4Blocks * 2;      // Reposition MV pointer to next 16x8        pDst += DEST_PITCH*4;        block_ref = pRefIdxL0[uWidthIn4x4Blocks * 2];        prev_frame = get_chroma_ptr(pRefPicList0[block_ref], is_v_plane)                       + uOffset + uPitch*4;        pMCRef = prev_frame + SubpelChromaMVAdjust(pMVFwd, uPitch, iXType, iYType);        // interpolate copy the 8x4 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size8x4);        break;    case MBTYPE_FWD_BIDIR_16x8:        MCOneBiDirMBChroma(            uMB,            uPitch,            pMVFwd,            pMVBwd,            pDst,            m_pCurrentFrame->pTempBuff4DirectB,            is_v_plane        );        // Do first 8x4 block        // 2 vectors for the MB (2 - 8x4 chroma blocks)        block_ref = pRefIdxL0[0];        prev_frame = get_chroma_ptr(pRefPicList0[block_ref], is_v_plane)                       + uOffset;        pMCRef = prev_frame + SubpelChromaMVAdjust(pMVFwd, uPitch, iXType, iYType);        // interpolate copy the 8x4 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size8x4);        break;    case MBTYPE_BIDIR_BWD_16x8:        MCOneBiDirMBChroma(            uMB,            uPitch,            pMVFwd,            pMVBwd,            pDst,            m_pCurrentFrame->pTempBuff4DirectB,            is_v_plane        );        // Do other 8x4 block        pMVBwd += uWidthIn4x4Blocks * 2;      // Reposition MV pointer to next 16x8        pDst += DEST_PITCH*4;        block_ref = pRefIdxL1[uWidthIn4x4Blocks * 2];        futr_frame = get_chroma_ptr(pRefPicList1[block_ref], is_v_plane)                       + uOffset + uPitch*4;        pMCRef = futr_frame + SubpelChromaMVAdjust(pMVBwd, uPitch, iXType, iYType);        // interpolate copy the 8x4 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size8x4);        break;    case MBTYPE_BWD_BIDIR_16x8:        MCOneBiDirMBChroma(            uMB,            uPitch,            pMVFwd,            pMVBwd,            pDst,            m_pCurrentFrame->pTempBuff4DirectB,            is_v_plane        );        // Do first 8x4 block        // 2 vectors for the MB (2 - 8x4 chroma blocks)        block_ref = pRefIdxL1[0];        futr_frame = get_chroma_ptr(pRefPicList1[block_ref], is_v_plane) + uOffset;        pMCRef = futr_frame + SubpelChromaMVAdjust(pMVBwd, uPitch, iXType, iYType);        // interpolate copy the 8x4 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size8x4);        break;    case MBTYPE_INTER_8x16:    case MBTYPE_FWD_FWD_8x16:        // 2 vectors for the MB (2 - 4x8 chroma blocks)        block_ref = pRefIdxL0[0];        prev_frame = get_chroma_ptr(pRefPicList0[block_ref], is_v_plane) + uOffset;        pMCRef = prev_frame + SubpelChromaMVAdjust(pMVFwd, uPitch, iXType, iYType);        // interpolate copy the 4x8 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size4x8);        // Do other 4x8 block        pMVFwd += 2;                // Reposition MV pointer to next 8x16        pDst += 4;        block_ref = pRefIdxL0[2];        prev_frame = get_chroma_ptr(pRefPicList0[block_ref], is_v_plane)            + uOffset + 4;        pMCRef = prev_frame + SubpelChromaMVAdjust(pMVFwd, uPitch, iXType, iYType);        // interpolate copy the 4x8 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size4x8);        break;    case MBTYPE_FWD_BWD_8x16:        // 2 vectors for the MB (2 - 4x8 chroma blocks)        block_ref = pRefIdxL0[0];        prev_frame = get_chroma_ptr(pRefPicList0[block_ref], is_v_plane) + uOffset;        pMCRef = prev_frame + SubpelChromaMVAdjust(pMVFwd, uPitch, iXType, iYType);        // interpolate copy the 4x8 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size4x8);        // Do other 4x8 block        pMVBwd += 2;                // Reposition MV pointer to next 8x16        pDst += 4;        block_ref = pRefIdxL1[2];        futr_frame = get_chroma_ptr(pRefPicList1[block_ref], is_v_plane)            + uOffset + 4;        pMCRef = futr_frame + SubpelChromaMVAdjust(pMVBwd, uPitch, iXType, iYType);        // interpolate copy the 4x8 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size4x8);        break;    case MBTYPE_BWD_FWD_8x16:        // 2 vectors for the MB (2 - 4x8 chroma blocks)        block_ref = pRefIdxL1[0];        futr_frame = get_chroma_ptr(pRefPicList1[block_ref], is_v_plane)            + uOffset;        pMCRef = futr_frame + SubpelChromaMVAdjust(pMVBwd, uPitch, iXType, iYType);        // interpolate copy the 4x8 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size4x8);        // Do other 4x8 block        pMVFwd += 2;                // Reposition MV pointer to next 8x16        pDst += 4;        block_ref = pRefIdxL0[2];        prev_frame = get_chroma_ptr(pRefPicList0[block_ref], is_v_plane)            + uOffset + 4;        pMCRef = prev_frame + SubpelChromaMVAdjust(pMVFwd, uPitch, iXType, iYType);        // interpolate copy the 4x8 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size4x8);        break;    case MBTYPE_BWD_BWD_8x16:        block_ref = pRefIdxL1[0];        futr_frame = get_chroma_ptr(pRefPicList1[block_ref], is_v_plane)            + uOffset;        pMCRef = futr_frame + SubpelChromaMVAdjust(pMVBwd, uPitch, iXType, iYType);        // interpolate copy the 4x8 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size4x8);        // Do other 4x8 block        pMVBwd += 2;                // Reposition MV pointer to next 8x16        pDst += 4;        block_ref = pRefIdxL1[2];        futr_frame = get_chroma_ptr(pRefPicList1[block_ref], is_v_plane)            + uOffset + 4;        pMCRef = futr_frame + SubpelChromaMVAdjust(pMVBwd, uPitch, iXType, iYType);        // interpolate copy the 4x8 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size4x8);        break;    case MBTYPE_BIDIR_FWD_8x16:        MCOneBiDirMBChroma(            uMB,            uPitch,            pMVFwd,            pMVBwd,            pDst,            m_pCurrentFrame->pTempBuff4DirectB,            is_v_plane        );        // Do other 4x8 block        pMVFwd += 2;                // Reposition MV pointer to next 8x16        pDst += 4;        block_ref = pRefIdxL0[2];        prev_frame = get_chroma_ptr(pRefPicList0[block_ref], is_v_plane)            + uOffset + 4;        pMCRef = prev_frame + SubpelChromaMVAdjust(pMVFwd, uPitch, iXType, iYType);        // interpolate copy the 4x8 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size4x8);        break;    case MBTYPE_FWD_BIDIR_8x16:        MCOneBiDirMBChroma(            uMB,            uPitch,            pMVFwd,            pMVBwd,            pDst,            m_pCurrentFrame->pTempBuff4DirectB,            is_v_plane        );        block_ref = pRefIdxL0[0];        prev_frame = get_chroma_ptr(pRefPicList0[block_ref], is_v_plane)            + uOffset;        pMCRef = prev_frame + SubpelChromaMVAdjust(pMVFwd, uPitch, iXType, iYType);        // interpolate copy the 4x8 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size4x8);        break;    case MBTYPE_BWD_BIDIR_8x16:        MCOneBiDirMBChroma(            uMB,            uPitch,            pMVFwd,            pMVBwd,            pDst,            m_pCurrentFrame->pTempBuff4DirectB,            is_v_plane        );        block_ref = pRefIdxL1[0];        futr_frame = get_chroma_ptr(pRefPicList1[block_ref], is_v_plane)            + uOffset;        pMCRef = futr_frame + SubpelChromaMVAdjust(pMVBwd, uPitch, iXType, iYType);        // interpolate copy the 4x8 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size4x8);        break;    case MBTYPE_BIDIR_BWD_8x16:        MCOneBiDirMBChroma(            uMB,            uPitch,            pMVFwd,            pMVBwd,            pDst,            m_pCurrentFrame->pTempBuff4DirectB,            is_v_plane        );        // Do other 4x8 block        pMVBwd += 2;                // Reposition MV pointer to next 8x16        pDst += 4;        block_ref = pRefIdxL1[2];        futr_frame = get_chroma_ptr(pRefPicList1[block_ref], is_v_plane)            + uOffset + 4;        pMCRef = futr_frame + SubpelChromaMVAdjust(pMVBwd, uPitch, iXType, iYType);        // interpolate copy the 4x8 block        ippiInterpolateChroma_H264_8u_C1R (pMCRef, uPitch, pDst, DEST_PITCH, iXType, iYType, size4x8);        break;    case MBTYPE_INTER_8x8:    case MBTYPE_INTER_8x8_REF0:    case MBTYPE_B_8x8:        {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -