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

📄 umc_vc1_dec_seq.cpp

📁 audio-video-codecs.rar语音编解码器
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        &pContext->m_vlcTbl->MVDIFF_PB_TABLES[0]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Progressive_MV_Diff_tbl1,
        &pContext->m_vlcTbl->MVDIFF_PB_TABLES[1]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Progressive_MV_Diff_tbl2,
        &pContext->m_vlcTbl->MVDIFF_PB_TABLES[2]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Progressive_MV_Diff_tbl3,
        &pContext->m_vlcTbl->MVDIFF_PB_TABLES[3]))
        return 0;

    //TTMB PB TABLES
    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_LowRateTTMB,
        &pContext->m_vlcTbl->TTMB_PB_TABLES[0]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_MediumRateTTMB,
        &pContext->m_vlcTbl->TTMB_PB_TABLES[1]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_HighRateTTMB,
        &pContext->m_vlcTbl->TTMB_PB_TABLES[2]))
        return 0;

    //TTBLK PB TABLES
    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_LowRateTTBLK,
        &pContext->m_vlcTbl->TTBLK_PB_TABLES[0]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_MediumRateTTBLK,
        &pContext->m_vlcTbl->TTBLK_PB_TABLES[1]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_HighRateTTBLK,
        &pContext->m_vlcTbl->TTBLK_PB_TABLES[2]))
        return 0;

    //SUB BLOCK PATTERN
    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_HighRateSBP,
        &pContext->m_vlcTbl->SBP_PB_TABLES[0]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_MediumRateSBP,
        &pContext->m_vlcTbl->SBP_PB_TABLES[1]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_LowRateSBP,
        &pContext->m_vlcTbl->SBP_PB_TABLES[2]))
        return 0;

return 1;
}

Ipp32s InitInterlacedTables (VC1Context* pContext)
{
    //MB MODE
    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_4MV_MB_Mode_PBPic_Table0,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FRAME_TABLES[0]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_4MV_MB_Mode_PBPic_Table1,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FRAME_TABLES[1]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_4MV_MB_Mode_PBPic_Table2,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FRAME_TABLES[2]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_4MV_MB_Mode_PBPic_Table3,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FRAME_TABLES[3]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Non4MV_MB_Mode_PBPic_Table0,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FRAME_TABLES[4]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Non4MV_MB_Mode_PBPic_Table1,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FRAME_TABLES[5]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Non4MV_MB_Mode_PBPic_Table2,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FRAME_TABLES[6]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Non4MV_MB_Mode_PBPic_Table3,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FRAME_TABLES[7]))
        return 0;

    //MV TABLES
    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedMVDifTable0,
        &pContext->m_vlcTbl->MV_INTERLACE_TABLES[0]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedMVDifTable1,
        &pContext->m_vlcTbl->MV_INTERLACE_TABLES[1]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedMVDifTable2,
        &pContext->m_vlcTbl->MV_INTERLACE_TABLES[2]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedMVDifTable3,
        &pContext->m_vlcTbl->MV_INTERLACE_TABLES[3]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedMVDifTable4,
        &pContext->m_vlcTbl->MV_INTERLACE_TABLES[4]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedMVDifTable5,
        &pContext->m_vlcTbl->MV_INTERLACE_TABLES[5]))
        return 0;
    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedMVDifTable6,
        &pContext->m_vlcTbl->MV_INTERLACE_TABLES[6]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedMVDifTable7,
        &pContext->m_vlcTbl->MV_INTERLACE_TABLES[7]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedMVDifTable8,
        &pContext->m_vlcTbl->MV_INTERLACE_TABLES[8]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedMVDifTable9,
        &pContext->m_vlcTbl->MV_INTERLACE_TABLES[9]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedMVDifTable10,
        &pContext->m_vlcTbl->MV_INTERLACE_TABLES[10]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedMVDifTable11,
        &pContext->m_vlcTbl->MV_INTERLACE_TABLES[11]))
        return 0;

    //CBPCY
    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedCBPCYTable0,
        &pContext->m_vlcTbl->CBPCY_PB_INTERLACE_TABLES[0]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedCBPCYTable1,
        &pContext->m_vlcTbl->CBPCY_PB_INTERLACE_TABLES[1]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedCBPCYTable2,
        &pContext->m_vlcTbl->CBPCY_PB_INTERLACE_TABLES[2]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedCBPCYTable3,
        &pContext->m_vlcTbl->CBPCY_PB_INTERLACE_TABLES[3]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedCBPCYTable4,
        &pContext->m_vlcTbl->CBPCY_PB_INTERLACE_TABLES[4]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedCBPCYTable5,
        &pContext->m_vlcTbl->CBPCY_PB_INTERLACE_TABLES[5]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedCBPCYTable6,
        &pContext->m_vlcTbl->CBPCY_PB_INTERLACE_TABLES[6]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_InterlacedCBPCYTable7,
        &pContext->m_vlcTbl->CBPCY_PB_INTERLACE_TABLES[7]))
        return 0;

    //2 MV BLOCK PATTERN P,B PICTURES
    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_MV2BlockPatternTable0,
        &pContext->m_vlcTbl->MV2BP_TABLES[0]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_MV2BlockPatternTable1,
        &pContext->m_vlcTbl->MV2BP_TABLES[1]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_MV2BlockPatternTable2,
        &pContext->m_vlcTbl->MV2BP_TABLES[2]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_MV2BlockPatternTable3,
        &pContext->m_vlcTbl->MV2BP_TABLES[3]))
        return 0;

    //4 MV BLOCK PATTERN
    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_MV4BlockPatternTable0,
        &pContext->m_vlcTbl->MV4BP_TABLES[0]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_MV4BlockPatternTable1,
        &pContext->m_vlcTbl->MV4BP_TABLES[1]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_MV4BlockPatternTable2,
        &pContext->m_vlcTbl->MV4BP_TABLES[2]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_MV4BlockPatternTable3,
        &pContext->m_vlcTbl->MV4BP_TABLES[3]))
        return 0;

    //MB MODE TABLES
    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_1MV_MB_ModeTable0,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_TABLES[0]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_1MV_MB_ModeTable1,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_TABLES[1]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_1MV_MB_ModeTable2,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_TABLES[2]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_1MV_MB_ModeTable3,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_TABLES[3]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_1MV_MB_ModeTable4,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_TABLES[4]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_1MV_MB_ModeTable5,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_TABLES[5]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_1MV_MB_ModeTable6,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_TABLES[6]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_1MV_MB_ModeTable7,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_TABLES[7]))
        return 0;

    //MIXEDMV MB TABLES
    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Mixed_MV_MB_ModeTable0,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_MIXED_TABLES[0]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Mixed_MV_MB_ModeTable1,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_MIXED_TABLES[1]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Mixed_MV_MB_ModeTable2,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_MIXED_TABLES[2]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Mixed_MV_MB_ModeTable3,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_MIXED_TABLES[3]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Mixed_MV_MB_ModeTable4,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_MIXED_TABLES[4]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Mixed_MV_MB_ModeTable5,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_MIXED_TABLES[5]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Mixed_MV_MB_ModeTable6,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_MIXED_TABLES[6]))
        return 0;

    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_Mixed_MV_MB_ModeTable7,
        &pContext->m_vlcTbl->MBMODE_INTERLACE_FIELD_MIXED_TABLES[7]))
        return 0;

    //REFDIST
    if (ippStsNoErr != ippiHuffmanTableInitAlloc_32s(
        VC1_FieldRefdistTable,
        &pContext->m_vlcTbl->REFDIST_TABLE))
        return 0;

    return 1;
}

Ipp32s InitTables(VC1Context* pContext)
{
    ippStaticInit();

    if(!InitCommonTables(pContext))
        return 0;

    if(pContext->m_seqLayerHeader->INTERLACE)
        if(!InitInterlacedTables(pContext))
            return 0;
    return 1;
}


void FreeTables(VC1Context* pContext)
{
    Ipp32s i;

    if(pContext->m_vlcTbl->m_pLowMotionLumaDCDiff)
    {
        ippiHuffmanTableFree_32s(pContext->m_vlcTbl->m_pLowMotionLumaDCDiff);
        pContext->m_vlcTbl->m_pLowMotionLumaDCDiff = NULL;
    }

    if(pContext->m_vlcTbl->m_pHighMotionLumaDCDiff)
    {
        ippiHuffmanTableFree_32s(pContext->m_vlcTbl->m_pHighMotionLumaDCDiff);
        pContext->m_vlcTbl->m_pHighMotionLumaDCDiff = NULL;
    }

    if(pContext->m_vlcTbl->m_pLowMotionChromaDCDiff)
    {

⌨️ 快捷键说明

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