public void ResetGenericStats(int template, ArithmeticDecoderStats previousStats) { int size = contextSize[template]; if (previousStats != null && previousStats.GetContextSize() == size) { if (genericRegionStats.GetContextSize() == size) { genericRegionStats.Overwrite(previousStats); } else { genericRegionStats = previousStats.Copy(); } } else { if (genericRegionStats.GetContextSize() == size) { genericRegionStats.Reset(); } else { genericRegionStats = new ArithmeticDecoderStats(1 << size); } } }
public void ResetRefinementStats(int template, ArithmeticDecoderStats previousStats) { int size = referredToContextSize[template]; if (previousStats != null && previousStats.GetContextSize() == size) { if (refinementRegionStats.GetContextSize() == size) { refinementRegionStats.Overwrite(previousStats); } else { refinementRegionStats = previousStats.Copy(); } } else { if (refinementRegionStats.GetContextSize() == size) { refinementRegionStats.Reset(); } else { refinementRegionStats = new ArithmeticDecoderStats(1 << size); } } }