Ignore:
Timestamp:
12 Jul 2013, 17:57:35 (12 years ago)
Author:
tech
Message:
  • Fixed cfg files.
  • Fixed several memory leaks.
  • Fixed encoder/decoder mismatch and aligned order of vps syntax elements with draft text.
  • Added missing iv_mv_scaling flag.
Location:
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r531 r532  
    981981      for( Int i = 0; i <= pcVPS->getMaxLayers() - 1; i++ )
    982982      {
    983         if( pcVPS->getDepthId( i ) )
    984         {
    985           READ_FLAG( uiCode, "vps_depth_modes_flag[i]" );             pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false );
    986          
     983
     984#if H_3D_ARP
     985        pcVPS->setUseAdvRP  ( i, 0 );
     986        pcVPS->setARPStepNum( i, 1 );
     987#endif 
     988        if ( i != 0 )
     989        {
     990          if( !( pcVPS->getDepthId( i ) == 1 ) )
     991          {
     992#if H_3D_IV_MERGE
     993                READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
     994#endif
     995#if H_3D_ARP
     996                READ_FLAG( uiCode, "iv_res_pred_flag[i]"  );  pcVPS->setUseAdvRP  ( i, uiCode ); pcVPS->setARPStepNum( i, uiCode ? H_3D_ARP_WFNR : 1 );
     997
     998#endif
     999#if H_3D_NBDV_REF
     1000                READ_FLAG( uiCode, "depth_refinement_flag[i]");    pcVPS->setDepthRefinementFlag  ( i, uiCode == 1 ? true : false );
     1001#endif
     1002#if H_3D_VSP
     1003                READ_FLAG( uiCode, "view_synthesis_pred_flag[i]"); pcVPS->setViewSynthesisPredFlag( i, uiCode == 1 ? true : false );
     1004#endif
     1005          }
     1006          else
     1007          {
     1008
     1009            READ_FLAG( uiCode, "vps_depth_modes_flag[i]" );             pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false );
     1010            //          READ_FLAG( uiCode, "lim_qt_pred_flag[i]");                  pcVPS->setLimQtPreFlag     ( i, uiCode == 1 ? true : false );
    9871011#if H_3D_DIM_DLT
    988           if( pcVPS->getVpsDepthModesFlag( i ) )
    989           {
    990             READ_FLAG( uiCode, "use_dlt_flag[i]" );
    991             pcVPS->setUseDLTFlag( i, uiCode == 1 ? true : false );
     1012            if( pcVPS->getVpsDepthModesFlag( i ) )
     1013            {
     1014              READ_FLAG( uiCode, "dlt_flag[i]" );                       pcVPS->setUseDLTFlag( i, uiCode == 1 ? true : false );
     1015            }
    9921016            if( pcVPS->getUseDLTFlag( i ) )
    9931017            {
     
    9951019              UInt uiNumDepthValues;
    9961020              // parse number of values in DLT
    997               READ_UVLC(uiNumDepthValues, "num_dlt_depth_values[i]");
    998              
     1021              READ_UVLC(uiNumDepthValues, "num_depth_values_in_dlt[i]");
     1022
    9991023              // parse actual DLT values
    10001024              Int* aiIdx2DepthValue = (Int*) calloc(uiNumDepthValues, sizeof(Int));
     
    10041028                aiIdx2DepthValue[d] = (Int)uiCode;
    10051029              }
    1006              
     1030
    10071031              pcVPS->setDepthLUTs(i, aiIdx2DepthValue, uiNumDepthValues);
    1008              
     1032
    10091033              // clean memory
    10101034              free(aiIdx2DepthValue);
    10111035            }
     1036#endif
    10121037          }
    1013 #endif
    1014         }
    1015       }
    1016 
    1017 #if H_3D_GEN
    1018       for( Int layer = 0; layer <= pcVPS->getMaxLayers() - 1; layer++ )
    1019       {
    1020 #if H_3D_ARP
    1021         pcVPS->setUseAdvRP  ( layer, 0 );
    1022         pcVPS->setARPStepNum( layer, 1 );
    1023 #endif 
    1024         if (layer != 0)
    1025         {
    1026           if ( !( pcVPS->getDepthId( layer ) == 1 ) )
    1027           {
    1028 #if H_3D_IV_MERGE
    1029             READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( layer, uiCode == 1 ? true : false );
    1030 #endif
    1031 #if H_3D_ARP
    1032             READ_FLAG( uiCode, "advanced_residual_pred_flag"  );  pcVPS->setUseAdvRP  ( layer, uiCode ); pcVPS->setARPStepNum( layer, uiCode ? H_3D_ARP_WFNR : 1 );
    1033 
    1034 #endif
    1035 #if H_3D_NBDV_REF
    1036             READ_FLAG( uiCode, "depth_refinement_flag[i]");    pcVPS->setDepthRefinementFlag  ( layer, uiCode == 1 ? true : false );
    1037 #endif
    1038 #if H_3D_VSP
    1039             READ_FLAG( uiCode, "view_synthesis_pred_flag[i]"); pcVPS->setViewSynthesisPredFlag( layer, uiCode == 1 ? true : false );
    1040 #endif
    1041           }         
    1042         }       
    1043       }
    1044 #endif
     1038        }
     1039      }
     1040      READ_FLAG( uiCode, "iv_mv_scaling_flag");                       pcVPS->setIvMvScalingFlag( uiCode == 1 ? true : false );
    10451041#else
    10461042      while ( xMoreRbspData() )
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecTop.cpp

    r531 r532  
    917917
    918918#endif
    919 #if H_3D
    920     pcSlice->setPicLists( m_ivPicLists );
    921 #endif
    922919
    923920#if H_3D_GEN
Note: See TracChangeset for help on using the changeset viewer.