Changeset 580 in SHVCSoftware for branches/SHM-5.0-dev/source/App


Ignore:
Timestamp:
31 Jan 2014, 02:45:49 (11 years ago)
Author:
qualcomm
Message:

Move calculation of sub-DPB information flags at the encoder to a new function.

From: Adarsh K. Ramasubramonian <aramasub@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-5.0-dev/source/App/TAppEncoder/TAppEncTop.cpp

    r579 r580  
    11861186    Int layerSetId = vps->getOutputLayerSetIdx(i);
    11871187
    1188     // For each output layer set, set the DPB size for each layer and the reorder/latency value the maximum for all layers
    1189     Bool checkFlagOuter = false;      // Used to calculate sub_layer_flag_info_present_flag
    1190     Bool checkFlagInner[MAX_TLAYER];  // Used to calculate sub_layer_dpb_info_present_flag
    1191 
    11921188    for(Int j = 0; j < vps->getMaxTLayers(); j++)
    11931189    {
     
    12051201      }
    12061202      vps->setMaxVpsNumReorderPics(i, j, maxNumReorderPics);
    1207      
    1208       if( j == 0 )  // checkFlagInner[0] is always 1
    1209       {
    1210         checkFlagInner[j] = true;     // Always signal sub-layer DPB information for the first sub-layer
    1211       }
    1212       else
    1213       {
    1214         checkFlagInner[j] = false;    // Initialize to be false. If the values of the current sub-layers matches with the earlier sub-layer,
    1215                                       // then will be continue to be false - i.e. the j-th sub-layer DPB info is not signaled
    1216         checkFlagInner[j] |= ( maxNumReorderPics != vps->getMaxVpsNumReorderPics(i, j - 1) );
    1217 #if CHANGE_NUMSUBDPB_IDX
    1218         for(Int k = 0; k < vps->getNumSubDpbs(layerSetIdxForOutputLayerSet) && !checkFlagInner[j]; k++)  // If checkFlagInner[j] is true, break and signal the values
    1219 #else
    1220         for(Int k = 0; k < vps->getNumSubDpbs(i) && !checkFlagInner[j]; k++)  // If checkFlagInner[j] is true, break and signal the values
    1221 #endif
    1222         {
    1223           checkFlagInner[j] |= ( vps->getMaxVpsDecPicBufferingMinus1(i, k, j - 1) != vps->getMaxVpsDecPicBufferingMinus1(i, k, j) );
    1224         }
    1225       }
    1226       // If checkFlagInner[j] = true, then some value needs to be signalled for the j-th sub-layer
    1227       vps->setSubLayerDpbInfoPresentFlag( i, j, checkFlagInner[j] );
    1228     }
    1229     for(Int j = 1; j < vps->getMaxTLayers(); j++) // Check if DPB info of any of non-zero sub-layers is signaled. If so set flag to one
    1230     {
    1231       if( vps->getSubLayerDpbInfoPresentFlag(i, j) )
    1232       {
    1233         checkFlagOuter = true;
    1234         break;
    1235       }
    1236     }
    1237     vps->setSubLayerFlagInfoPresentFlag( i, checkFlagOuter );
     1203      vps->determineSubDpbInfoFlags();
     1204    }
    12381205  }
    12391206#endif
Note: See TracChangeset for help on using the changeset viewer.