Changeset 1374 in 3DVCSoftware for branches/HTM-15.2-dev/source/Lib/TLibCommon


Ignore:
Timestamp:
9 Nov 2015, 21:13:05 (9 years ago)
Author:
tech
Message:

Macro cleanups.

Location:
branches/HTM-15.2-dev/source/Lib/TLibCommon
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-15.2-dev/source/Lib/TLibCommon/CommonDef.h

    r1373 r1374  
    171171#if NH_MV
    172172static const Int MAX_NUM_LAYER_IDS =                               63;
    173 #if NH_MV_SEI
    174173static const Int MAX_NUM_SEIS      =                               1000;
    175 #endif
    176174#else
    177175static const Int MAX_NUM_LAYER_IDS =                               64;
     
    281279static const Int  MAX_NUM_PICS_RPS          =                     16 ;
    282280static const Int  MAX_NUM_REF_LAYERS        =                     63 ; 
    283 #if NH_MV_SEI
     281
    284282static IntAry1d getRangeVec( Int rngStart, Int rngEnd ) { IntAry1d rng; for (Int i = rngStart; i<=rngEnd; i++) rng.push_back(i);  return rng; };
    285283static const IntAry1d IDR_NAL_UNIT_TYPES   = getRangeVec( NAL_UNIT_CODED_SLICE_IDR_W_RADL, NAL_UNIT_CODED_SLICE_IDR_N_LP );
    286284static const IntAry1d IRAP_NAL_UNIT_TYPES  = getRangeVec( NAL_UNIT_CODED_SLICE_BLA_W_LP  , NAL_UNIT_CODED_SLICE_CRA      );
    287 
    288 #endif
    289285#endif
    290286
  • branches/HTM-15.2-dev/source/Lib/TLibCommon/SEI.cpp

    r1362 r1374  
    3838#include "CommonDef.h"
    3939#include "SEI.h"
    40 #if NH_MV_SEI
     40#if NH_MV
    4141#include "TComSlice.h"
    4242#endif
     
    178178}
    179179
    180 #if NH_MV_SEI
     180#if NH_MV
    181181SEI::SEI()
    182182{
     
    224224    case SEI::CHROMA_SAMPLING_FILTER_HINT:          return new SEIChromaSamplingFilterHint
    225225#endif
    226 #if NH_MV_SEI
    227 #if NH_MV_LAYERS_NOT_PRESENT_SEI
    228226  case SEI::LAYERS_NOT_PRESENT                    :               return new SEILayersNotPresent;
    229 #endif
    230227  case SEI::INTER_LAYER_CONSTRAINED_TILE_SETS     :               return new SEIInterLayerConstrainedTileSets;
    231228#if NH_MV_SEI_TBD
     
    241238#endif
    242239  case SEI::THREE_DIMENSIONAL_REFERENCE_DISPLAYS_INFO:            return new SEIThreeDimensionalReferenceDisplaysInfo;
    243 #if SEI_DRI_F0169
    244240  case SEI::DEPTH_REPRESENTATION_INFO             :               return new SEIDepthRepresentationInfo;
    245 #endif
    246241  case SEI::MULTIVIEW_SCENE_INFO                  :               return new SEIMultiviewSceneInfo;
    247242  case SEI::MULTIVIEW_ACQUISITION_INFO            :               return new SEIMultiviewAcquisitionInfo;
     
    249244#if NH_3D
    250245  case SEI::ALTERNATIVE_DEPTH_INFO                :               return new SEIAlternativeDepthInfo;
    251 #endif
    252246#endif
    253247  default:                                        assert( false ); return NULL;
     
    340334}
    341335
    342 
    343 #if NH_MV_LAYERS_NOT_PRESENT_SEI
    344336Void SEILayersNotPresent::setupFromCfgFile(const TChar* cfgFile)
    345337{
     
    399391      return wrongConfig;
    400392  };
    401 #endif
     393
    402394
    403395
     
    10191011};
    10201012
    1021 #if SEI_DRI_F0169
    10221013Void SEIDepthRepresentationInfo::setupFromSlice  ( const TComSlice* slice )
    10231014{
     
    11961187    return wrongConfig;
    11971188}
    1198 #endif
     1189
    11991190
    12001191Void SEIMultiviewSceneInfo::setupFromCfgFile(const TChar* cfgFile)
  • branches/HTM-15.2-dev/source/Lib/TLibCommon/SEI.h

    r1362 r1374  
    4444
    4545
    46 #if NH_MV_SEI
     46#if NH_MV
    4747#include "TAppCommon/program_options_lite.h"
    4848using namespace std;
     
    5353//! \{
    5454class TComSPS;
    55 #if NH_MV_SEI
     55#if NH_MV
    5656class TComSlice;
    5757class SEIScalableNesting;
     
    9797    KNEE_FUNCTION_INFO                   = 141,
    9898    COLOUR_REMAPPING_INFO                = 142,
    99 #if NH_MV_SEI
    10099    DEINTERLACED_FIELD_IDENTIFICATION         = 143,
    101100    LAYERS_NOT_PRESENT                        = 160,
     
    116115    ,ALTERNATIVE_DEPTH_INFO                    = 181
    117116#endif
    118 #endif
    119117
    120118  };
     
    133131  virtual PayloadType payloadType() const = 0;
    134132
    135 #if NH_MV_SEI
     133#if NH_MV
    136134  virtual SEI*       getCopy( ) const;
    137135  static SEI*        getNewSEIMessage         ( SEI::PayloadType payloadType );
     
    551549};
    552550
    553 #if NH_MV
    554 #if !NH_MV_SEI
    555 class SEISubBitstreamProperty : public SEI
    556 {
    557 public:
    558   PayloadType payloadType() const { return SUB_BITSTREAM_PROPERTY; }
    559 
    560   SEISubBitstreamProperty():   m_activeVpsId(-1), m_numAdditionalSubStreams(0) {}
    561   virtual ~SEISubBitstreamProperty() {}
    562 
    563   Int  m_activeVpsId;
    564   Int  m_numAdditionalSubStreams;
    565   std::vector<Int>  m_subBitstreamMode;
    566   std::vector<Int>  m_outputLayerSetIdxToVps;
    567   std::vector<Int>  m_highestSublayerId;
    568   std::vector<Int>  m_avgBitRate;
    569   std::vector<Int>  m_maxBitRate;
    570 };
    571 #endif
    572 #endif
    573 
    574551typedef std::list<SEI*> SEIMessages;
    575552
     
    678655
    679656};
    680 #if NH_MV_SEI
    681 #if NH_MV_LAYERS_NOT_PRESENT_SEI
     657#if NH_MV
    682658class SEILayersNotPresent : public SEI
    683659{
     
    700676  }
    701677};
    702 #endif
    703678
    704679class SEIInterLayerConstrainedTileSets : public SEI
     
    943918};
    944919
    945 #if SEI_DRI_F0169
    946920class SEIDepthRepresentationInfo : public SEI
    947921{
     
    1012986        IntAry2d       m_depth_nonlinear_representation_model;
    1013987};
    1014 #endif
     988
    1015989
    1016990class SEIMultiviewSceneInfo : public SEI
  • branches/HTM-15.2-dev/source/Lib/TLibCommon/TComBitStream.cpp

    r1360 r1374  
    260260  m_numBitsRead += uiNumberOfBits;
    261261
    262 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC
     262#if ENC_DEC_TRACE && NH_MV_ENC_DEC_TRAC
    263263  if ( g_traceBitsRead )
    264264  {
  • branches/HTM-15.2-dev/source/Lib/TLibCommon/TComDataCU.cpp

    r1362 r1374  
    30973097
    30983098
    3099 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC
     3099#if ENC_DEC_TRACE && NH_MV_ENC_DEC_TRAC
    31003100  if ( g_traceMergeCandListConst )
    31013101  {
     
    31763176  }
    31773177
    3178 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC
     3178#if ENC_DEC_TRACE && NH_MV_ENC_DEC_TRAC
    31793179  if ( g_traceMergeCandListConst )
    31803180  {
     
    50705070#if NH_3D_NBDV_REF
    50715071        TComPic* picDepth = NULL;   
    5072 #if H_3D_FCO_VSP_DONBDV_E0163
     5072#if H_3D_FCO
    50735073        picDepth  = getSlice()->getIvPic(true, getSlice()->getViewIndex() );
    50745074        if ( picDepth->getPicYuvRec() != NULL  ) 
     
    51365136          pDInfo->m_aVIdxCan = cIDVInfo.m_aVIdxCan[iList][ curPos ];
    51375137#if NH_3D_NBDV_REF
    5138 #if H_3D_FCO_VSP_DONBDV_E0163
     5138#if H_3D_FCO
    51395139          TComPic* picDepth  = NULL;
    51405140
     
    51755175#if NH_3D_NBDV_REF
    51765176    TComPic* picDepth = NULL;
    5177 #if H_3D_FCO_VSP_DONBDV_E0163
     5177#if H_3D_FCO
    51785178    picDepth  = getSlice()->getIvPic(true, getSlice()->getViewIndex() );
    51795179    if ( picDepth->getPicYuvRec() != NULL ) 
     
    52695269          TComPic* picDepth = NULL;
    52705270          assert(getSlice()->getRefPic(eRefPicList, refId)->getPOC() == getSlice()->getPOC());           
    5271 #if H_3D_FCO_VSP_DONBDV_E0163
     5271#if H_3D_FCO
    52725272          picDepth  = getSlice()->getIvPic(true, getSlice()->getViewIndex() );
    52735273          if ( picDepth->getPicYuvRec() != NULL ) 
     
    54035403    }
    54045404
    5405 #if NH_3D_FIX_NBDV_COL
    54065405    // The picture pColCU->getSlice()->getRefPic(eColRefPicList, iColRefIdx) might not be in DPB anymore
    54075406    // So don't access it directly.
    54085407    iColRefViewIdx = pColCU->getSlice()->getVPS()->getViewOrderIdx( pColCU->getSlice()->getRefLayerId( eColRefPicList, iColRefIdx ) );       
    5409 #else
    5410     iColRefViewIdx = pColCU->getSlice()->getRefPic(eColRefPicList, iColRefIdx)->getViewIndex();
    5411 #endif
    54125408
    54135409
     
    60025998  Int depthRefViewIdx = pcCU->getDvInfo(partAddr).m_aVIdxCan;
    60035999 
    6004 #if H_3D_FCO_VSP_DONBDV_E0163
     6000#if H_3D_FCO
    60056001  TComPic* pRefPicBaseDepth = 0;
    60066002  Bool     bIsCurrDepthCoded = false;
     
    60376033  pcCU->clipMv(cDv);
    60386034
    6039 #if H_3D_FCO_VSP_DONBDV_E0163
     6035#if H_3D_FCO
    60406036  if ( bIsCurrDepthCoded )
    60416037  {
  • branches/HTM-15.2-dev/source/Lib/TLibCommon/TComPic.cpp

    r1373 r1374  
    449449          m_abTIVRINCurrRL[curCandPic][iColRefDir][iColRefIdx] = false;
    450450          Int iColViewIdx    = pcCandColSlice->getViewIndex();
    451 #if H_3D_FIX_ARP_CHECK_NOT_IN_DPB
    452451          // The picture pcCandColSlice->getRefPic((RefPicList)iColRefDir, iColRefIdx) might not be in DPB anymore
    453452          // So don't access it directly.
    454453          Int iColRefViewIdx = pcCandColSlice->getVPS()->getViewOrderIdx( pcCandColSlice->getRefLayerId( (RefPicList)iColRefDir, iColRefIdx ) );       
    455 #else
    456           Int iColRefViewIdx = pcCandColSlice->getRefPic((RefPicList)iColRefDir, iColRefIdx)->getViewIndex();
    457 #endif
    458454          if(iColViewIdx == iColRefViewIdx)
    459455          {
  • branches/HTM-15.2-dev/source/Lib/TLibCommon/TComPrediction.cpp

    r1365 r1374  
    562562      Int RefPOCL0 = pcCU->getSlice()->getRefPic(REF_PIC_LIST_0, pcCU->getCUMvField(REF_PIC_LIST_0)->getRefIdx(PartAddr))->getPOC();
    563563      Int RefPOCL1 = pcCU->getSlice()->getRefPic(REF_PIC_LIST_1, pcCU->getCUMvField(REF_PIC_LIST_1)->getRefIdx(PartAddr))->getPOC();
    564 #if NH_MV_FIX_TICKET_106
    565564#if NH_MV
    566565      Int layerIdL0 = pcCU->getSlice()->getRefPic(REF_PIC_LIST_0, pcCU->getCUMvField(REF_PIC_LIST_0)->getRefIdx(PartAddr))->getLayerId();
     
    573572#else
    574573      if(RefPOCL0 == RefPOCL1 && pcCU->getCUMvField(REF_PIC_LIST_0)->getMv(PartAddr) == pcCU->getCUMvField(REF_PIC_LIST_1)->getMv(PartAddr))
    575 #endif
    576 #else
    577 #if NH_3D_ARP
    578       if(!pcCU->getARPW(PartAddr) && RefPOCL0 == RefPOCL1 && pcCU->getCUMvField(REF_PIC_LIST_0)->getMv(PartAddr) == pcCU->getCUMvField(REF_PIC_LIST_1)->getMv(PartAddr))
    579 #else
    580       if(RefPOCL0 == RefPOCL1 && pcCU->getCUMvField(REF_PIC_LIST_0)->getMv(PartAddr) == pcCU->getCUMvField(REF_PIC_LIST_1)->getMv(PartAddr))
    581 #endif
    582574#endif
    583575      {
     
    13141306  pcCU->clipMv(cMv);
    13151307
    1316 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC
     1308#if ENC_DEC_TRACE && NH_MV_ENC_DEC_TRAC
    13171309  if ( g_traceMotionInfoBeforUniPred  )
    13181310  {
  • branches/HTM-15.2-dev/source/Lib/TLibCommon/TComRom.cpp

    r1370 r1374  
    221221  }
    222222#if NH_MV
    223 #if H_MV_HLS_PTL_LIMITS
     223#if NH_MV_HLS_PTL_LIMITS
    224224 g_generalTierAndLevelLimits[ Level::LEVEL1   ] = TComGeneralTierAndLevelLimits(    36864,     350,  MIN_INT,   16,   1,   1 );
    225225 g_generalTierAndLevelLimits[ Level::LEVEL2   ] = TComGeneralTierAndLevelLimits(   122880,    1500,  MIN_INT,   16,   1,   1 );
     
    540540Bool   g_bJustDoIt = false;
    541541UInt64 g_nSymbolCounter = 0;
    542 #if H_MV_ENC_DEC_TRAC
     542#if NH_MV_ENC_DEC_TRAC
    543543Bool g_traceCU = false;
    544544Bool g_tracePU = false;
     
    671671const UInt g_scalingListSize   [SCALING_LIST_SIZE_NUM] = {16,64,256,1024};
    672672const UInt g_scalingListSizeX  [SCALING_LIST_SIZE_NUM] = { 4, 8, 16,  32};
    673 #if H_MV_ENC_DEC_TRAC
     673#if NH_MV_ENC_DEC_TRAC
    674674#if ENC_DEC_TRACE
    675675Void tracePSHeader( const TChar* psName, Int layerId )
  • branches/HTM-15.2-dev/source/Lib/TLibCommon/TComRom.h

    r1360 r1374  
    112112// ====================================================================================================================
    113113extern const TMatrixCoeff g_as_DST_MAT_4 [TRANSFORM_NUMBER_OF_DIRECTIONS][4][4];
    114 #if H_MV_HLS_PTL_LIMITS
     114#if NH_MV_HLS_PTL_LIMITS
    115115class TComGeneralTierAndLevelLimits
    116116{
     
    172172#define DTRACE_CABAC_R( x,y ) if ( ( g_nSymbolCounter >= COUNTER_START && g_nSymbolCounter <= COUNTER_END )|| g_bJustDoIt ) fprintf( g_hTrace, x,    y );
    173173#define DTRACE_CABAC_N        if ( ( g_nSymbolCounter >= COUNTER_START && g_nSymbolCounter <= COUNTER_END )|| g_bJustDoIt ) fprintf( g_hTrace, "\n"    );
    174 #if H_MV_ENC_DEC_TRAC
     174#if NH_MV_ENC_DEC_TRAC
    175175 extern Bool   g_traceCU;
    176176 extern Bool   g_tracePU ;
  • branches/HTM-15.2-dev/source/Lib/TLibCommon/TComSlice.cpp

    r1373 r1374  
    36723672    }
    36733673    tempRefPicInListsFlag = (getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0) && getDefaultRefViewIdxAvailableFlag();
    3674     m_nARPStepNum = tempRefPicInListsFlag ?  H_3D_ARP_WFNR : 0;
     3674    m_nARPStepNum = tempRefPicInListsFlag ? 3 : 0;
    36753675  }
    36763676
     
    39353935  {
    39363936    Int iInVoi = vps->getVoiInVps( i );
    3937 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC
     3937#if ENC_DEC_TRACE && NH_MV_ENC_DEC_TRAC
    39383938    if ( g_traceCameraParameters )
    39393939    {
     
    43354335
    43364336
    4337 #if H_3D_OUTPUT_ACTIVE_TOOLS
     4337#if NH_3D_OUTPUT_ACTIVE_TOOLS
    43384338  std::cout << "Layer:                  :" << getLayerId()             << std::endl;
    43394339  std::cout << "DepthFlag:              :" << getIsDepth()             << std::endl;
  • branches/HTM-15.2-dev/source/Lib/TLibCommon/TComYuv.cpp

    r1313 r1374  
    124124  {
    125125    ::memcpy( pDst, pSrc, sizeof(Pel)*iWidth);
    126 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC
     126#if ENC_DEC_TRACE && NH_MV_ENC_DEC_TRAC
    127127    if ( g_traceCopyBack && compID == COMPONENT_Y)
    128128    {
  • branches/HTM-15.2-dev/source/Lib/TLibCommon/TypeDef.h

    r1373 r1374  
    6464/////////////////////////////////////////////////////////////////////////////////////////
    6565#if NH_MV
    66 #define H_MV_HLS_PTL_LIMITS                       0
    67 #define NH_MV_SEI_TBD                             0
    68 #define NH_MV_SEI                                 1
    69 #define NH_MV_FIX_TICKET_106                      1 // Identical motion check.
     66
     67// Things that needs to be fixed in the Specification:
    7068#define NH_MV_FIX_NO_REF_PICS_CHECK               1 // !!SPEC!!
    7169#define NH_MV_FIX_INIT_NUM_ACTIVE_REF_LAYER_PICS  1 // Derivation of NumActiveRefLayerPIcs. !!SPEC!!
    7270#define NH_MV_FIX_NUM_POC_TOTAL_CUR               1 // Derivation of NumPocTotalCur for IDR pictures. !!SPEC!!
    73 #define NH_MV_LAYERS_NOT_PRESENT_SEI              1 // Layers not present SEI message JCTMV-M0043
    74 #if NH_MV_SEI
    75 #define SEI_DRI_F0169 1
    76 #endif
    77 #endif
    78 #if NH_3D
    79 #define H_3D_FIX_ARP_CHECK_NOT_IN_DPB     1
    80 #define NH_3D_FIX_NBDV_COL                1
     71
     72// To be done
     73#define NH_MV_HLS_PTL_LIMITS                       0
     74#define NH_MV_SEI_TBD                             0
    8175#endif
    8276/////////////////////////////////////////////////////////////////////////////////////////
     
    8478/////////////////////////////////////////////////////////////////////////////////////////
    8579#if NH_MV
    86 #define H_MV_ENC_DEC_TRAC                 1  //< CU/PU level tracking
     80#define NH_MV_ENC_DEC_TRAC                 1  //< CU/PU level tracking
    8781#if NH_3D
    8882#define NH_3D_INTEGER_MV_DEPTH            1
     
    277271                                              // MTK_FAST_TEXTURE_ENCODING_E0173
    278272//HLS
    279                                              // HHI_DEPENDENCY_SIGNALLING_I1_J0107
    280                                              // HHI_TOOL_PARAMETERS_I2_J0107
    281                                              // HHI_VPS_3D_EXTENSION_I3_J0107
    282                                              // HHI_INTER_COMP_PRED_K0052
    283                                              // HHI_RES_PRED_K0052
    284                                              // HHI_CAM_PARA_K0052
    285                                              // H_3D_DIRECT_DEP_TYPE
     273                                              // HHI_DEPENDENCY_SIGNALLING_I1_J0107
     274                                              // HHI_TOOL_PARAMETERS_I2_J0107
     275                                              // HHI_VPS_3D_EXTENSION_I3_J0107
     276                                              // HHI_INTER_COMP_PRED_K0052
     277                                              // HHI_RES_PRED_K0052
     278                                              // HHI_CAM_PARA_K0052
     279                                              // H_3D_DIRECT_DEP_TYPE
     280
     281#endif // NH_3D
     282
     283#if NH_MV
     284////////////////////////
     285/// Consider Removal
     286////////////////////////
     287
    286288// Rate Control
    287289#define KWU_FIX_URQ                       0
    288290#define KWU_RC_VIEWRC_E0227               0  ///< JCT3V-E0227, view-wise target bitrate allocation
    289291#define KWU_RC_MADPRED_E0227              0  ///< JCT3V-E0227, inter-view MAD prediction
    290 #endif // NH_3D
     292
     293#define NH_MV_HLS_PTL_LIMITS               0
     294
     295#if NH_3D
     296// Unclear Fix
     297#define H_3D_PPS_FIX_DEPTH                     0
     298#endif
     299#endif
    291300/////////////////////////////////////////////////////////////////////////////////////////
    292301///////////////////////////////////   DERIVED DEFINES ///////////////////////////////////
    293302/////////////////////////////////////////////////////////////////////////////////////////
    294303#if NH_3D
    295 #define H_3D_OUTPUT_ACTIVE_TOOLS               0
    296 #define H_3D_REN_MAX_DEV_OUT                   0
     304#define NH_3D_OUTPUT_ACTIVE_TOOLS               0
     305#define NH_3D_REN_MAX_DEV_OUT                   0
    297306#endif
    298307///// ***** VIEW SYNTHESIS OPTIMIZAION *********
     
    309318#define DVFROM_ABOVE                      1
    310319#define IDV_CANDS                         2
    311 #endif
    312 ///// ***** ADVANCED INTERVIEW RESIDUAL PREDICTION *********
    313 #if NH_3D_ARP
    314 #define H_3D_ARP_WFNR                     3
    315320#endif
    316321/////////////////////////////////////////////////////////////////////////////////////
     
    327332#if NH_3D_DBBP
    328333#define DBBP_INVALID_SHORT                (-4)
    329 #define DBBP_PACK_MODE               SIZE_2NxN
    330 #endif
    331 ///// ***** FCO *********
    332 #if H_3D_FCO
    333 #define H_3D_FCO_VSP_DONBDV_E0163               1   // Adaptive depth reference for flexible coding order
    334 #else
    335 #define H_3D_FCO_VSP_DONBDV_E0163               0   // Adaptive depth reference for flexible coding order
    336 #endif
    337 #if H_3D
    338 #define PPS_FIX_DEPTH                           1
    339 #endif
    340 /////////////////////////////////////////////////////////////////////////////////
    341 ///////////////////////////////////   MV_HEVC HLS  //////////////////////////////
    342 /////////////////////////////////////////////////////////////////////////////////
    343 // TBD: Check if integration is necessary.
    344 #define H_MV_HLS_PTL_LIMITS                  0
     334#endif
     335
    345336/////////////////////////////////////////////////////////////////////////////////////////
    346337///////////////////////////////////   HM RELATED DEFINES ////////////////////////////////
     
    497488typedef std::vector< std::string > StringAry1d;
    498489typedef std::vector< StringAry1d > StringAry2d;
    499 typedef std::vector< std::string > StringAry1d;
    500 typedef std::vector< StringAry1d > StringAry2d;
     490
    501491typedef std::vector< Int >        IntAry1d;
    502492typedef std::vector< IntAry1d >   IntAry2d;
     
    504494typedef std::vector< IntAry3d >   IntAry4d;
    505495typedef std::vector< IntAry4d >   IntAry5d;
     496
    506497typedef std::vector< Bool >        BoolAry1d;
    507498typedef std::vector< BoolAry1d >   BoolAry2d;
Note: See TracChangeset for help on using the changeset viewer.