Changeset 1081 in 3DVCSoftware for branches/HTM-12.1-dev0/source/App


Ignore:
Timestamp:
22 Oct 2014, 01:32:55 (10 years ago)
Author:
tech
Message:

Update to HTM-15.0

Location:
branches/HTM-12.1-dev0/source/App/TAppEncoder
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-12.1-dev0/source/App/TAppEncoder/TAppEncCfg.cpp

    r1079 r1081  
    7272#endif
    7373, m_pchdQPFile()
    74 , m_pColumnWidth()
    75 , m_pRowHeight()
    7674, m_scalingListFile()
    7775{
     
    139137#endif
    140138  free(m_pchdQPFile);
    141   free(m_pColumnWidth);
    142   free(m_pRowHeight);
    143139  free(m_scalingListFile);
    144140#if H_MV
     
    344340#endif
    345341  string cfg_dQPFile;
    346   string cfg_ColumnWidth;
    347   string cfg_RowHeight;
     342  string cfgColumnWidth;
     343  string cfgRowHeight;
    348344  string cfg_ScalingListFile;
    349345  string cfg_startOfCodedInterval;
     
    420416  ("OutputBitDepthC",       m_outputBitDepthC,   0, "As per OutputBitDepth but for chroma component. (default:InternalBitDepthC)")
    421417  ("InternalBitDepthC",     m_internalBitDepthC, 0, "As per InternalBitDepth but for chroma component. (default:IntrenalBitDepth)")
    422   ("ConformanceMode",       m_conformanceMode,     0, "Window conformance mode (0: no window, 1:automatic padding, 2:padding, 3:conformance")
     418  ("ConformanceMode",       m_conformanceWindowMode,  0, "Deprecated alias of ConformanceWindowMode")
     419  ("ConformanceWindowMode", m_conformanceWindowMode,  0, "Window conformance mode (0: no window, 1:automatic padding, 2:padding, 3:conformance")
    423420  ("HorizontalPadding,-pdx",m_aiPad[0],            0, "Horizontal source padding for conformance window mode 2")
    424421  ("VerticalPadding,-pdy",  m_aiPad[1],            0, "Vertical source padding for conformance window mode 2")
    425   ("ConfLeft",              m_confLeft,            0, "Left offset for window conformance mode 3")
    426   ("ConfRight",             m_confRight,           0, "Right offset for window conformance mode 3")
    427   ("ConfTop",               m_confTop,             0, "Top offset for window conformance mode 3")
    428   ("ConfBottom",            m_confBottom,          0, "Bottom offset for window conformance mode 3")
     422  ("ConfLeft",              m_confWinLeft,            0, "Deprecated alias of ConfWinLeft")
     423  ("ConfRight",             m_confWinRight,           0, "Deprecated alias of ConfWinRight")
     424  ("ConfTop",               m_confWinTop,             0, "Deprecated alias of ConfWinTop")
     425  ("ConfBottom",            m_confWinBottom,          0, "Deprecated alias of ConfWinBottom")
     426  ("ConfWinLeft",           m_confWinLeft,            0, "Left offset for window conformance mode 3")
     427  ("ConfWinRight",          m_confWinRight,           0, "Right offset for window conformance mode 3")
     428  ("ConfWinTop",            m_confWinTop,             0, "Top offset for window conformance mode 3")
     429  ("ConfWinBottom",         m_confWinBottom,          0, "Bottom offset for window conformance mode 3")
    429430  ("FrameRate,-fr",         m_iFrameRate,          0, "Frame rate")
    430431  ("FrameSkip,-fs",         m_FrameSkip,          0u, "Number of frames to skip at start of input YUV")
     
    583584  ("WeightedPredB,-wpB",          m_useWeightedBiPred,             false,      "Use weighted (bidirectional) prediction in B slices")
    584585  ("Log2ParallelMergeLevel",      m_log2ParallelMergeLevel,     2u,          "Parallel merge estimation region")
    585   ("UniformSpacingIdc",           m_iUniformSpacingIdr,            0,          "Indicates if the column and row boundaries are distributed uniformly")
    586   ("NumTileColumnsMinus1",        m_iNumColumnsMinus1,             0,          "Number of columns in a picture minus 1")
    587   ("ColumnWidthArray",            cfg_ColumnWidth,                 string(""), "Array containing ColumnWidth values in units of LCU")
    588   ("NumTileRowsMinus1",           m_iNumRowsMinus1,                0,          "Number of rows in a picture minus 1")
    589   ("RowHeightArray",              cfg_RowHeight,                   string(""), "Array containing RowHeight values in units of LCU")
     586
     587  //deprecated copies of renamed tile parameters
     588  ("UniformSpacingIdc",           m_tileUniformSpacingFlag,        false,      "deprecated alias of TileUniformSpacing")
     589  ("ColumnWidthArray",            cfgColumnWidth,                  string(""), "deprecated alias of TileColumnWidthArray")
     590  ("RowHeightArray",              cfgRowHeight,                    string(""), "deprecated alias of TileRowHeightArray")
     591
     592  ("TileUniformSpacing",          m_tileUniformSpacingFlag,        false,      "Indicates that tile columns and rows are distributed uniformly")
     593  ("NumTileColumnsMinus1",        m_numTileColumnsMinus1,          0,          "Number of tile columns in a picture minus 1")
     594  ("NumTileRowsMinus1",           m_numTileRowsMinus1,             0,          "Number of rows in a picture minus 1")
     595  ("TileColumnWidthArray",        cfgColumnWidth,                  string(""), "Array containing tile column width values in units of LCU")
     596  ("TileRowHeightArray",          cfgRowHeight,                    string(""), "Array containing tile row height values in units of LCU")
    590597  ("LFCrossTileBoundaryFlag",      m_bLFCrossTileBoundaryFlag,             true,          "1: cross-tile-boundary loop filtering. 0:non-cross-tile-boundary loop filtering")
    591598  ("WaveFrontSynchro",            m_iWaveFrontSynchro,             0,          "0: no synchro; 1 synchro with TR; 2 TRR etc")
     
    669676  ("ColourDescriptionPresent",       m_colourDescriptionPresentFlag,       false, "Signals whether colour_primaries, transfer_characteristics and matrix_coefficients are present")
    670677  ("ColourPrimaries",                m_colourPrimaries,                        2, "Indicates chromaticity coordinates of the source primaries")
    671   ("TransferCharateristics",         m_transferCharacteristics,                2, "Indicates the opto-electronic transfer characteristics of the source")
     678  ("TransferCharacteristics",        m_transferCharacteristics,                2, "Indicates the opto-electronic transfer characteristics of the source")
    672679  ("MatrixCoefficients",             m_matrixCoefficients,                     2, "Describes the matrix coefficients used in deriving luma and chroma from RGB primaries")
    673680  ("ChromaLocInfoPresent",           m_chromaLocInfoPresentFlag,           false, "Signals whether chroma_sample_loc_type_top_field and chroma_sample_loc_type_bottom_field are present")
     
    889896  m_pchdQPFile = cfg_dQPFile.empty() ? NULL : strdup(cfg_dQPFile.c_str());
    890897 
    891   Char* pColumnWidth = cfg_ColumnWidth.empty() ? NULL: strdup(cfg_ColumnWidth.c_str());
    892   Char* pRowHeight = cfg_RowHeight.empty() ? NULL : strdup(cfg_RowHeight.c_str());
    893   if( m_iUniformSpacingIdr == 0 && m_iNumColumnsMinus1 > 0 )
    894   {
    895     char *columnWidth;
     898  Char* pColumnWidth = cfgColumnWidth.empty() ? NULL: strdup(cfgColumnWidth.c_str());
     899  Char* pRowHeight = cfgRowHeight.empty() ? NULL : strdup(cfgRowHeight.c_str());
     900
     901  if( !m_tileUniformSpacingFlag && m_numTileColumnsMinus1 > 0 )
     902  {
     903    char *str;
    896904    int  i=0;
    897     m_pColumnWidth = new UInt[m_iNumColumnsMinus1];
    898     columnWidth = strtok(pColumnWidth, " ,-");
    899     while(columnWidth!=NULL)
    900     {
    901       if( i>=m_iNumColumnsMinus1 )
     905    m_tileColumnWidth.resize( m_numTileColumnsMinus1 );
     906    str = strtok(pColumnWidth, " ,-");
     907    while(str!=NULL)
     908    {
     909      if( i >= m_numTileColumnsMinus1 )
    902910      {
    903911        printf( "The number of columns whose width are defined is larger than the allowed number of columns.\n" );
    904912        exit( EXIT_FAILURE );
    905913      }
    906       *( m_pColumnWidth + i ) = atoi( columnWidth );
    907       columnWidth = strtok(NULL, " ,-");
     914      m_tileColumnWidth[i] = atoi( str );
     915      str = strtok(NULL, " ,-");
    908916      i++;
    909917    }
    910     if( i<m_iNumColumnsMinus1 )
     918    if( i < m_numTileColumnsMinus1 )
    911919    {
    912920      printf( "The width of some columns is not defined.\n" );
     
    916924  else
    917925  {
    918     m_pColumnWidth = NULL;
    919   }
    920 
    921   if( m_iUniformSpacingIdr == 0 && m_iNumRowsMinus1 > 0 )
    922   {
    923     char *rowHeight;
     926    m_tileColumnWidth.clear();
     927  }
     928
     929  if( !m_tileUniformSpacingFlag && m_numTileRowsMinus1 > 0 )
     930  {
     931    char *str;
    924932    int  i=0;
    925     m_pRowHeight = new UInt[m_iNumRowsMinus1];
    926     rowHeight = strtok(pRowHeight, " ,-");
    927     while(rowHeight!=NULL)
    928     {
    929       if( i>=m_iNumRowsMinus1 )
     933    m_tileRowHeight.resize(m_numTileRowsMinus1);
     934    str = strtok(pRowHeight, " ,-");
     935    while(str!=NULL)
     936    {
     937      if( i>=m_numTileRowsMinus1 )
    930938      {
    931939        printf( "The number of rows whose height are defined is larger than the allowed number of rows.\n" );
    932940        exit( EXIT_FAILURE );
    933941      }
    934       *( m_pRowHeight + i ) = atoi( rowHeight );
    935       rowHeight = strtok(NULL, " ,-");
     942      m_tileRowHeight[i] = atoi( str );
     943      str = strtok(NULL, " ,-");
    936944      i++;
    937945    }
    938     if( i<m_iNumRowsMinus1 )
     946    if( i < m_numTileRowsMinus1 )
    939947    {
    940948      printf( "The height of some rows is not defined.\n" );
     
    944952  else
    945953  {
    946     m_pRowHeight = NULL;
     954    m_tileRowHeight.clear();
    947955  }
    948956#if H_MV
     
    960968
    961969  // TODO:ChromaFmt assumes 4:2:0 below
    962   switch (m_conformanceMode)
     970  switch (m_conformanceWindowMode)
    963971  {
    964972  case 0:
    965973    {
    966974      // no conformance or padding
    967       m_confLeft = m_confRight = m_confTop = m_confBottom = 0;
     975      m_confWinLeft = m_confWinRight = m_confWinTop = m_confWinBottom = 0;
    968976      m_aiPad[1] = m_aiPad[0] = 0;
    969977      break;
     
    975983      if (m_iSourceWidth % minCuSize)
    976984      {
    977         m_aiPad[0] = m_confRight  = ((m_iSourceWidth / minCuSize) + 1) * minCuSize - m_iSourceWidth;
    978         m_iSourceWidth  += m_confRight;
     985        m_aiPad[0] = m_confWinRight  = ((m_iSourceWidth / minCuSize) + 1) * minCuSize - m_iSourceWidth;
     986        m_iSourceWidth  += m_confWinRight;
    979987      }
    980988      if (m_iSourceHeight % minCuSize)
    981989      {
    982         m_aiPad[1] = m_confBottom = ((m_iSourceHeight / minCuSize) + 1) * minCuSize - m_iSourceHeight;
    983         m_iSourceHeight += m_confBottom;
     990        m_aiPad[1] = m_confWinBottom = ((m_iSourceHeight / minCuSize) + 1) * minCuSize - m_iSourceHeight;
     991        m_iSourceHeight += m_confWinBottom;
    984992        if ( m_isField )
    985993        {
    986           m_iSourceHeightOrg += m_confBottom << 1;
    987           m_aiPad[1] = m_confBottom << 1;
     994          m_iSourceHeightOrg += m_confWinBottom << 1;
     995          m_aiPad[1] = m_confWinBottom << 1;
    988996        }
    989997      }
     
    10051013      m_iSourceWidth  += m_aiPad[0];
    10061014      m_iSourceHeight += m_aiPad[1];
    1007       m_confRight  = m_aiPad[0];
    1008       m_confBottom = m_aiPad[1];
     1015      m_confWinRight  = m_aiPad[0];
     1016      m_confWinBottom = m_aiPad[1];
    10091017      break;
    10101018    }
     
    10121020    {
    10131021      // conformance
    1014       if ((m_confLeft == 0) && (m_confRight == 0) && (m_confTop == 0) && (m_confBottom == 0))
     1022      if ((m_confWinLeft == 0) && (m_confWinRight == 0) && (m_confWinTop == 0) && (m_confWinBottom == 0))
    10151023      {
    10161024        fprintf(stderr, "Warning: Conformance window enabled, but all conformance window parameters set to zero\n");
     
    16801688  }
    16811689 
    1682   Bool tileFlag = (m_iNumColumnsMinus1 > 0 || m_iNumRowsMinus1 > 0 );
     1690  Bool tileFlag = (m_numTileColumnsMinus1 > 0 || m_numTileRowsMinus1 > 0 );
    16831691  xConfirmPara( tileFlag && m_iWaveFrontSynchro,            "Tile and Wavefront can not be applied together");
    16841692
     
    16901698  xConfirmPara( m_aiPad[1] % TComSPS::getWinUnitY(CHROMA_420) != 0, "Vertical padding must be an integer multiple of the specified chroma subsampling");
    16911699
    1692   xConfirmPara( m_confLeft   % TComSPS::getWinUnitX(CHROMA_420) != 0, "Left conformance window offset must be an integer multiple of the specified chroma subsampling");
    1693   xConfirmPara( m_confRight  % TComSPS::getWinUnitX(CHROMA_420) != 0, "Right conformance window offset must be an integer multiple of the specified chroma subsampling");
    1694   xConfirmPara( m_confTop    % TComSPS::getWinUnitY(CHROMA_420) != 0, "Top conformance window offset must be an integer multiple of the specified chroma subsampling");
    1695   xConfirmPara( m_confBottom % TComSPS::getWinUnitY(CHROMA_420) != 0, "Bottom conformance window offset must be an integer multiple of the specified chroma subsampling");
     1700  xConfirmPara( m_confWinLeft   % TComSPS::getWinUnitX(CHROMA_420) != 0, "Left conformance window offset must be an integer multiple of the specified chroma subsampling");
     1701  xConfirmPara( m_confWinRight  % TComSPS::getWinUnitX(CHROMA_420) != 0, "Right conformance window offset must be an integer multiple of the specified chroma subsampling");
     1702  xConfirmPara( m_confWinTop    % TComSPS::getWinUnitY(CHROMA_420) != 0, "Top conformance window offset must be an integer multiple of the specified chroma subsampling");
     1703  xConfirmPara( m_confWinBottom % TComSPS::getWinUnitY(CHROMA_420) != 0, "Bottom conformance window offset must be an integer multiple of the specified chroma subsampling");
     1704
     1705  xConfirmPara( m_defaultDisplayWindowFlag && !m_vuiParametersPresentFlag, "VUI needs to be enabled for default display window");
     1706
     1707  if (m_defaultDisplayWindowFlag)
     1708  {
     1709    xConfirmPara( m_defDispWinLeftOffset   % TComSPS::getWinUnitX(CHROMA_420) != 0, "Left default display window offset must be an integer multiple of the specified chroma subsampling");
     1710    xConfirmPara( m_defDispWinRightOffset  % TComSPS::getWinUnitX(CHROMA_420) != 0, "Right default display window offset must be an integer multiple of the specified chroma subsampling");
     1711    xConfirmPara( m_defDispWinTopOffset    % TComSPS::getWinUnitY(CHROMA_420) != 0, "Top default display window offset must be an integer multiple of the specified chroma subsampling");
     1712    xConfirmPara( m_defDispWinBottomOffset % TComSPS::getWinUnitY(CHROMA_420) != 0, "Bottom default display window offset must be an integer multiple of the specified chroma subsampling");
     1713  }
    16961714
    16971715#if H_3D
     
    22132231      Int widthInCU = (m_iSourceWidth % m_uiMaxCUWidth) ? m_iSourceWidth/m_uiMaxCUWidth + 1: m_iSourceWidth/m_uiMaxCUWidth;
    22142232      Int heightInCU = (m_iSourceHeight % m_uiMaxCUHeight) ? m_iSourceHeight/m_uiMaxCUHeight + 1: m_iSourceHeight/m_uiMaxCUHeight;
    2215       if(m_iUniformSpacingIdr)
    2216       {
    2217         maxTileWidth = m_uiMaxCUWidth*((widthInCU+m_iNumColumnsMinus1)/(m_iNumColumnsMinus1+1));
    2218         maxTileHeight = m_uiMaxCUHeight*((heightInCU+m_iNumRowsMinus1)/(m_iNumRowsMinus1+1));
     2233      if(m_tileUniformSpacingFlag)
     2234      {
     2235        maxTileWidth = m_uiMaxCUWidth*((widthInCU+m_numTileColumnsMinus1)/(m_numTileColumnsMinus1+1));
     2236        maxTileHeight = m_uiMaxCUHeight*((heightInCU+m_numTileRowsMinus1)/(m_numTileRowsMinus1+1));
    22192237        // if only the last tile-row is one treeblock higher than the others
    22202238        // the maxTileHeight becomes smaller if the last row of treeblocks has lower height than the others
    2221         if(!((heightInCU-1)%(m_iNumRowsMinus1+1)))
     2239        if(!((heightInCU-1)%(m_numTileRowsMinus1+1)))
    22222240        {
    22232241          maxTileHeight = maxTileHeight - m_uiMaxCUHeight + (m_iSourceHeight % m_uiMaxCUHeight);
     
    22252243        // if only the last tile-column is one treeblock wider than the others
    22262244        // the maxTileWidth becomes smaller if the last column of treeblocks has lower width than the others   
    2227         if(!((widthInCU-1)%(m_iNumColumnsMinus1+1)))
     2245        if(!((widthInCU-1)%(m_numTileColumnsMinus1+1)))
    22282246        {
    22292247          maxTileWidth = maxTileWidth - m_uiMaxCUWidth + (m_iSourceWidth % m_uiMaxCUWidth);
     
    22322250      else // not uniform spacing
    22332251      {
    2234         if(m_iNumColumnsMinus1<1)
     2252        if(m_numTileColumnsMinus1<1)
    22352253        {
    22362254          maxTileWidth = m_iSourceWidth;
     
    22392257        {
    22402258          Int accColumnWidth = 0;
    2241           for(Int col=0; col<(m_iNumColumnsMinus1); col++)
     2259          for(Int col=0; col<(m_numTileColumnsMinus1); col++)
    22422260          {
    2243             maxTileWidth = m_pColumnWidth[col]>maxTileWidth ? m_pColumnWidth[col]:maxTileWidth;
    2244             accColumnWidth += m_pColumnWidth[col];
     2261            maxTileWidth = m_tileColumnWidth[col]>maxTileWidth ? m_tileColumnWidth[col]:maxTileWidth;
     2262            accColumnWidth += m_tileColumnWidth[col];
    22452263          }
    22462264          maxTileWidth = (widthInCU-accColumnWidth)>maxTileWidth ? m_uiMaxCUWidth*(widthInCU-accColumnWidth):m_uiMaxCUWidth*maxTileWidth;
    22472265        }
    2248         if(m_iNumRowsMinus1<1)
     2266        if(m_numTileRowsMinus1<1)
    22492267        {
    22502268          maxTileHeight = m_iSourceHeight;
     
    22532271        {
    22542272          Int accRowHeight = 0;
    2255           for(Int row=0; row<(m_iNumRowsMinus1); row++)
     2273          for(Int row=0; row<(m_numTileRowsMinus1); row++)
    22562274          {
    2257             maxTileHeight = m_pRowHeight[row]>maxTileHeight ? m_pRowHeight[row]:maxTileHeight;
    2258             accRowHeight += m_pRowHeight[row];
     2275            maxTileHeight = m_tileRowHeight[row]>maxTileHeight ? m_tileRowHeight[row]:maxTileHeight;
     2276            accRowHeight += m_tileRowHeight[row];
    22592277          }
    22602278          maxTileHeight = (heightInCU-accRowHeight)>maxTileHeight ? m_uiMaxCUHeight*(heightInCU-accRowHeight):m_uiMaxCUHeight*maxTileHeight;
     
    24292447  xPrintParaVector( "SAO"              , m_bUseSAO            );
    24302448#endif
    2431   printf("Real     Format              : %dx%d %dHz\n", m_iSourceWidth - m_confLeft - m_confRight, m_iSourceHeight - m_confTop - m_confBottom, m_iFrameRate );
     2449  printf("Real     Format              : %dx%d %dHz\n", m_iSourceWidth - m_confWinLeft - m_confWinRight, m_iSourceHeight - m_confWinTop - m_confWinBottom, m_iFrameRate );
    24322450  printf("Internal Format              : %dx%d %dHz\n", m_iSourceWidth, m_iSourceHeight, m_iFrameRate );
    24332451  if (m_isField)
  • branches/HTM-12.1-dev0/source/App/TAppEncoder/TAppEncCfg.h

    r1076 r1081  
    4343#include "TLibEncoder/TEncCfg.h"
    4444#include <sstream>
     45#include <vector>
    4546#if H_3D
    4647#include "TAppCommon/TAppComCamPara.h"
     
    172173  bool      m_isTopFieldFirst;
    173174 
    174   Int       m_conformanceMode;
    175   Int       m_confLeft;
    176   Int       m_confRight;
    177   Int       m_confTop;
    178   Int       m_confBottom;
     175  Int       m_conformanceWindowMode;
     176  Int       m_confWinLeft;
     177  Int       m_confWinRight;
     178  Int       m_confWinTop;
     179  Int       m_confWinBottom;
    179180  Int       m_framesToBeEncoded;                              ///< number of encoded frames
    180181  Int       m_aiPad[2];                                       ///< number of padded pixels for width and height
     
    324325  Bool      m_bLFCrossSliceBoundaryFlag;  ///< 1: filter across slice boundaries 0: do not filter across slice boundaries
    325326  Bool      m_bLFCrossTileBoundaryFlag;   ///< 1: filter across tile boundaries  0: do not filter across tile boundaries
    326   Int       m_iUniformSpacingIdr;
    327   Int       m_iNumColumnsMinus1;
    328   Char*     m_pchColumnWidth;
    329   Int       m_iNumRowsMinus1;
    330   Char*     m_pchRowHeight;
    331   UInt*     m_pColumnWidth;
    332   UInt*     m_pRowHeight;
     327  Bool      m_tileUniformSpacingFlag;
     328  Int       m_numTileColumnsMinus1;
     329  Int       m_numTileRowsMinus1;
     330  std::vector<Int> m_tileColumnWidth;
     331  std::vector<Int> m_tileRowHeight;
    333332  Int       m_iWaveFrontSynchro; //< 0: no WPP. >= 1: WPP is enabled, the "Top right" from which inheritance occurs is this LCU offset in the line above the current.
    334333  Int       m_iWaveFrontSubstreams; //< If iWaveFrontSynchro, this is the number of substreams per frame (dependent tiles) or per tile (independent tiles).
  • branches/HTM-12.1-dev0/source/App/TAppEncoder/TAppEncTop.cpp

    r1076 r1081  
    281281  m_cTEncTop.setSourceWidth                  ( m_iSourceWidth );
    282282  m_cTEncTop.setSourceHeight                 ( m_iSourceHeight );
    283   m_cTEncTop.setConformanceWindow            ( m_confLeft, m_confRight, m_confTop, m_confBottom );
     283  m_cTEncTop.setConformanceWindow            ( m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom );
    284284  m_cTEncTop.setFramesToBeEncoded            ( m_framesToBeEncoded );
    285285 
     
    489489  }
    490490#endif
    491   m_cTEncTop.setUniformSpacingIdr          ( m_iUniformSpacingIdr );
    492   m_cTEncTop.setNumColumnsMinus1           ( m_iNumColumnsMinus1 );
    493   m_cTEncTop.setNumRowsMinus1              ( m_iNumRowsMinus1 );
    494   if(m_iUniformSpacingIdr==0)
    495   {
    496     m_cTEncTop.setColumnWidth              ( m_pColumnWidth );
    497     m_cTEncTop.setRowHeight                ( m_pRowHeight );
     491  m_cTEncTop.setTileUniformSpacingFlag     ( m_tileUniformSpacingFlag );
     492  m_cTEncTop.setNumColumnsMinus1           ( m_numTileColumnsMinus1 );
     493  m_cTEncTop.setNumRowsMinus1              ( m_numTileRowsMinus1 );
     494  if(!m_tileUniformSpacingFlag)
     495  {
     496    m_cTEncTop.setColumnWidth              ( m_tileColumnWidth );
     497    m_cTEncTop.setRowHeight                ( m_tileRowHeight );
    498498  }
    499499  m_cTEncTop.xCheckGSParameters();
    500   Int uiTilesCount          = (m_iNumRowsMinus1+1) * (m_iNumColumnsMinus1+1);
     500  Int uiTilesCount          = (m_numTileRowsMinus1+1) * (m_numTileColumnsMinus1+1);
    501501  if(uiTilesCount == 1)
    502502  {
     
    603603  m_cTEncTop.setActiveParameterSetsSEIEnabled ( m_activeParameterSetsSEIEnabled );
    604604  m_cTEncTop.setVuiParametersPresentFlag( m_vuiParametersPresentFlag );
     605  m_cTEncTop.setAspectRatioInfoPresentFlag( m_aspectRatioInfoPresentFlag);
    605606  m_cTEncTop.setAspectRatioIdc( m_aspectRatioIdc );
    606607  m_cTEncTop.setSarWidth( m_sarWidth );
     
    10871088      if (m_pchReconFileList[layerId])
    10881089      {
     1090#if H_MV_ALIGN_HM_15
     1091        m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRecTop, pcPicYuvRecBottom, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom, m_isTopFieldFirst );
     1092#else
    10891093        m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRecTop, pcPicYuvRecBottom, m_confLeft, m_confRight, m_confTop, m_confBottom, m_isTopFieldFirst );
     1094#endif
    10901095      }
    10911096    }
     
    11041109      if (m_pchReconFile)
    11051110      {
    1106         m_cTVideoIOYuvReconFile.write( pcPicYuvRecTop, pcPicYuvRecBottom, m_confLeft, m_confRight, m_confTop, m_confBottom, m_isTopFieldFirst );
     1111        m_cTVideoIOYuvReconFile.write( pcPicYuvRecTop, pcPicYuvRecBottom, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom, m_isTopFieldFirst );
    11071112      }
    11081113
     
    11401145      if (m_pchReconFileList[layerId])
    11411146      {
     1147#if H_MV_ALIGN_HM_15
     1148        m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRec, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom );
     1149#else
    11421150        m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRec, m_confLeft, m_confRight, m_confTop, m_confBottom );
     1151#endif
    11431152      }   
    11441153    }
     
    11561165      if (m_pchReconFile)
    11571166      {
    1158         m_cTVideoIOYuvReconFile.write( pcPicYuvRec, m_confLeft, m_confRight, m_confTop, m_confBottom );
     1167        m_cTVideoIOYuvReconFile.write( pcPicYuvRec, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom );
    11591168      }
    11601169
     
    16121621
    16131622  repFormat->setConformanceWindowVpsFlag( true );
     1623#if H_MV_ALIGN_HM_15
     1624  repFormat->setConfWinVpsLeftOffset    ( m_confWinLeft   / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) );
     1625  repFormat->setConfWinVpsRightOffset   ( m_confWinRight  / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() )  );
     1626  repFormat->setConfWinVpsTopOffset     ( m_confWinTop    / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() )  );
     1627  repFormat->setConfWinVpsBottomOffset  ( m_confWinBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) );
     1628#else
    16141629  repFormat->setConfWinVpsLeftOffset    ( m_confLeft   / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) );
    16151630  repFormat->setConfWinVpsRightOffset   ( m_confRight  / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() )  );
    16161631  repFormat->setConfWinVpsTopOffset     ( m_confTop    / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() )  );
    16171632  repFormat->setConfWinVpsBottomOffset  ( m_confBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) );
    1618 
     1633#endif
    16191634  assert( vps.getRepFormat( 0 ) == NULL );
    16201635  vps.setRepFormat( 0 , repFormat );
Note: See TracChangeset for help on using the changeset viewer.