当前位置: 首页>>代码示例>>C++>>正文


C++ MbDataAccess::getDefaultFieldFlag方法代码示例

本文整理汇总了C++中MbDataAccess::getDefaultFieldFlag方法的典型用法代码示例。如果您正苦于以下问题:C++ MbDataAccess::getDefaultFieldFlag方法的具体用法?C++ MbDataAccess::getDefaultFieldFlag怎么用?C++ MbDataAccess::getDefaultFieldFlag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MbDataAccess的用法示例。


在下文中一共展示了MbDataAccess::getDefaultFieldFlag方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: if


//.........这里部分代码省略.........
  {
    UInt    auiLastQpTest     [2] = { uiLastQP, uiLastQP };
    Bool    abSkipModeAllowed [4] = { true, true, true, true };
    Double  adMbPairCost      [2] = { 0.0, 0.0 };

    //===== determine macroblock data =====
    for( UInt uiMbTest = 0; uiMbTest < 4; uiMbTest++ )
    {
      //--- set basic parameters ---
      UInt            uiMbAddressMbAff    = ( uiMbTest % 2 ) + uiMbAddress;
      UInt            uiFieldMode         = ( uiMbTest < 2 ? 1 : 0 );
      RefListStruct&  rcRefListPicStruct  = ( uiFieldMode ? acRefListFieldStruct[ uiMbTest ] : rcRefListStruct );

      //--- macroblock initialization ---
      MbDataAccess* pcMbDataAccess      = NULL;
      MbDataAccess* pcMbDataAccessBase  = NULL;
      Double        dCost               = 0;
      UInt          uiMbY, uiMbX;
      rcSliceHeader.getMbPositionFromAddress        (                     uiMbY, uiMbX, uiMbAddressMbAff );
      RNOK( pcMbDataCtrl            ->initMb        ( pcMbDataAccess,     uiMbY, uiMbX ) );
      if  ( pcBaseMbDataCtrl && ( !uiFieldMode || bSNR ) )
      {
        RNOK( pcBaseMbDataCtrl      ->initMb        ( pcMbDataAccessBase, uiMbY, uiMbX ) );
  	  }
      if  ( pcBaseMbDataCtrlField && uiFieldMode && !bSNR )
      {
        RNOK( pcBaseMbDataCtrlField ->initMb        ( pcMbDataAccessBase, uiMbY, uiMbX ) );
      }
      RNOK( m_pcControlMng    ->initMbForCoding     ( *pcMbDataAccess,    uiMbY, uiMbX, true, uiFieldMode == 1  ) );
      pcMbDataAccess          ->setMbDataAccessBase ( pcMbDataAccessBase );
      pcMbDataAccess          ->setLastQp           ( auiLastQpTest[ uiFieldMode ] );
      if( uiMbTest == 0 )
      {
        abSkipModeAllowed[ 1 ]  = pcMbDataAccess->getDefaultFieldFlag();
        abSkipModeAllowed[ 3 ]  = ! abSkipModeAllowed[ 1 ];
      }
      if( ! rcSliceHeader.getNoInterLayerPredFlag () )
      {
        m_pcMbEncoder->setBaseModeAllowedFlag       ( m_apabBaseModeFlagAllowedArrays[ uiFieldMode ][ uiMbAddressMbAff ] );
      }

      //--- determine macroblock data ---
      pcMbDataAccess->getMbData().setQp( rcSliceHeader.getSliceQp() );
      UInt uiDeltaQp = ( rcSliceHeader.getTemporalId() == 0 ? 0 : uiMaxDeltaQp ); // old JSVM behaviour
      RNOK( m_pcMbEncoder->encodeMacroblockSVC( *pcMbDataAccess, pcMbDataAccessBase, 
                                                *apcOrgPic[ uiMbTest ], *apcPic[ uiMbTest ], apcResidualPicLF[ uiMbTest ], apcResidualPicILPred[ uiMbTest ], apcPredPic[ uiMbTest ], 
                                                apcBaseIntraRecPic[ uiMbTest ], apcBaseResidualPic[ uiMbTest ], rcRefListPicStruct,
                                                uiMaxMvPerMb, uiNumMaxIter, uiIterSearchRange, bBiPred8x8Disable, bMCBlks8x8Disable, 
                                                abSkipModeAllowed[ uiMbTest ], uiDeltaQp, dLambda, dCost ) );
      auiLastQpTest   [ uiFieldMode ]  = pcMbDataAccess->getMbData().getQp();
      if( adMbPairCost[ uiFieldMode ] != DOUBLE_MAX )
      {
        adMbPairCost  [ uiFieldMode ] += dCost;
      }

      //--- store field macroblock data ---
      if( uiFieldMode )
      {
        acFldMbData[uiMbTest].copy( pcMbDataAccess->getMbData() );
        if( apcPic              [uiMbTest] )  acFldMbRec       [uiMbTest].loadBuffer( apcPic              [uiMbTest]->getFullPelYuvBuffer() );
        if( apcResidualPicLF    [uiMbTest] )  acFldMbResLF     [uiMbTest].loadBuffer( apcResidualPicLF    [uiMbTest]->getFullPelYuvBuffer() );
        if( apcResidualPicILPred[uiMbTest] )  acFldMbResILPred [uiMbTest].loadBuffer( apcResidualPicILPred[uiMbTest]->getFullPelYuvBuffer() );
        if( apcPredPic          [uiMbTest] )  acFldMbPredSignal[uiMbTest].loadBuffer( apcPredPic          [uiMbTest]->getFullPelYuvBuffer() );
      }
    }
开发者ID:hwyhit,项目名称:JSVM,代码行数:66,代码来源:SliceEncoder.cpp


注:本文中的MbDataAccess::getDefaultFieldFlag方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。