Ignore:
Timestamp:
11 Aug 2015, 15:45:37 (9 years ago)
Author:
tech
Message:

1) Further fixes in RD optimization process. Related to:

  • Depth Intra coding.
  • Intra skip.

2) Macros for debugging.

Location:
branches/HTM-14.1-update-dev1/source/Lib/TLibCommon
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRdCost.cpp

    r1304 r1309  
    133133  }
    134134
     135  D_PRINT_INDENT( g_traceRDCost,  "Dist: " + n2s(uiDistortion) + " Bits: " + n2s(uiBits) + " RD Cost: " + n2s(dRdCost));
    135136  return dRdCost;
    136137}
     
    36843685  }
    36853686
     3687  D_PRINT_INDENT( g_traceRDCost, "VSO Dist: " + n2s(uiDistortion) + " Bits: " + n2s(uiBits) + " RD Cost: " + n2s(dRdCost));
     3688
    36863689  return dRdCost;
    36873690}
  • branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRom.cpp

    r1306 r1309  
    546546Bool g_disableNumbering = false;
    547547Bool g_disableHLSTrace = false;
    548 UInt64 g_stopAtCounter       = 4660;
    549 Bool g_traceCopyBack         = false;
    550 Bool g_decTraceDispDer       = false;
    551 Bool g_decTraceMvFromMerge   = false;
    552 Bool g_decTracePicOutput     = false;
    553 Bool g_stopAtPos             = false;
    554 Bool g_outputPos             = false;   
    555 Bool g_traceCameraParameters = false;
    556 Bool g_encNumberOfWrittenBits     = false;
     548UInt64 g_stopAtCounter         = 4660;
     549Bool g_traceCopyBack           = false;
     550Bool g_decTraceDispDer         = false;
     551Bool g_decTraceMvFromMerge     = false;
     552Bool g_decTracePicOutput       = false;
     553Bool g_startStopTrace          = true;
     554Bool g_outputPos               = false;   
     555Bool g_traceCameraParameters   = false;
     556Bool g_encNumberOfWrittenBits  = false;
     557Bool g_traceEncFracBits        = false;
     558Bool g_traceIntraSearchCost    = false;
     559Bool g_traceRDCost             = false;
     560Bool g_traceSAOCost            = false;
     561Bool g_traceModeCheck          = false;
     562UInt g_indent                  = false;
    557563#endif
    558564#endif
     
    685691              << std::endl;
    686692  }
    687   Bool stopFlag = false;
    688   if ( g_stopAtPos && poc == 0 && layerId == 2 )
    689   {
    690     Bool stopAtCU = true;
    691     if ( stopAtCU )        // Stop at CU with specific size
    692     {   
    693       stopFlag = ( cuPelX  == 416 ) && ( cuPelY  == 632 ) && ( cuWidth == 8 ) && ( cuHeight == 8 );
    694     }
    695     else
    696     {                     // Stop at specific position
    697       Int xPos = 888;
    698       Int yPos = 248;
    699       Int cuPelXEnd = cuPelX + cuWidth  - 1;
    700       Int cuPelYEnd = cuPelY + cuHeight - 1;
    701       stopFlag = (cuPelX <= xPos ) && (cuPelXEnd >= xPos ) && (cuPelY <= yPos ) && (cuPelYEnd >= yPos );
    702     }
    703   }
    704   if ( stopFlag )
    705   { // Set breakpoint here.
    706     std::cout << "Stop position. Break point here." << std::endl;
     693
     694  Bool startTrace = false;
     695  if ( g_startStopTrace && poc == 0 && layerId == 0 )
     696  {   
     697    startTrace = ( cuPelX  == 0 ) && ( cuPelY  == 0 ) && ( cuWidth == 64 ) && ( cuHeight == 64 );
     698  }
     699  if ( startTrace )
     700  {
     701    g_outputPos              = true;
     702    g_traceEncFracBits       = false;   
     703    g_traceIntraSearchCost   = false;     
     704    g_encNumberOfWrittenBits = false;     
     705    g_traceRDCost            = true;
     706    g_traceModeCheck         = true;
     707    g_traceCopyBack          = false;
     708  } 
     709
     710  Bool stopTrace = false;
     711  if ( g_startStopTrace && poc == 0 && layerId == 0 )
     712  {
     713    stopTrace = ( cuPelX  == 128 ) && ( cuPelY  == 0 ) && ( cuWidth == 64 ) && ( cuHeight == 64 );
     714  }
     715  if ( stopTrace )
     716  {
     717    g_outputPos              = false;
     718    g_traceModeCheck         = false;
     719    g_traceEncFracBits       = false;
     720    g_traceIntraSearchCost   = false;       
     721    g_encNumberOfWrittenBits = false;
     722    g_traceRDCost            = false;
     723    g_traceCopyBack          = false;     
    707724  } 
    708725}
     
    738755  }
    739756}
     757Void printStr( std::string str )
     758{
     759  std::cout << str << std::endl;
     760}
     761Void printStrIndent( Bool b, std::string strStr )
     762{
     763  if ( b )
     764  { 
     765    std::cout << std::string(g_indent, ' ');
     766    printStr( strStr );
     767  }
     768}
     769
     770Void prinStrIncIndent( Bool b,  std::string strStr )
     771{
     772  if ( b )
     773  {
     774    printStrIndent( true,  strStr );
     775    if (g_indent < 50)
     776    {
     777      g_indent++;
     778    }
     779  } 
     780}
     781
     782Void decIndent( Bool b )
     783{
     784  if (b && g_indent > 0)
     785  {
     786    g_indent--; 
     787  } 
     788}
     789
    740790#endif
    741791#endif
  • branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRom.h

    r1282 r1309  
    183183 extern Bool   g_decTraceMvFromMerge;   // Trace motion vectors obtained from merge (decoder only)
    184184 extern Bool   g_decTracePicOutput;     // Trace output of pictures
    185  extern Bool   g_stopAtPos;             // Stop at position
     185 extern Bool   g_startStopTrace;             // Stop at position
    186186 extern Bool   g_outputPos;             // Output position
    187187 extern Bool   g_traceCameraParameters; // Trace camera parameters
    188188 extern Bool   g_encNumberOfWrittenBits;// Trace number of written bits
     189 extern Bool   g_traceEncFracBits;      // Trace fractional bits
     190 extern Bool   g_traceIntraSearchCost;  // Trace intra mode cost
     191 extern Bool   g_traceRDCost;         
     192 extern Bool   g_traceModeCheck;
     193 extern Bool   g_traceSAOCost;
     194 extern UInt   g_indent;
    189195#define DTRACE_CU(x,y)             writeToTraceFile( x,y, g_traceCU );
    190196#define DTRACE_PU(x,y)             writeToTraceFile( x,y, g_tracePU );
     
    193199#define DTRACE_PU_S(x)             writeToTraceFile( x,   g_tracePU );
    194200#define DTRACE_TU_S(x)             writeToTraceFile( x,   g_traceTU );
     201
     202#define D_DEC_INDENT( b )            decIndent        ( b );
     203#define D_PRINT_INC_INDENT( b, str ) prinStrIncIndent( b, str );
     204#define D_PRINT_INDENT( b, str )     printStrIndent   ( b, str);
     205
    195206 Void           tracePSHeader   ( const Char* psName, Int layerId );
    196207 Void           writeToTraceFile( const Char* symbolName, Int val, Bool doIt );
     
    198209 UInt64         incSymbolCounter();         
    199210 Void           stopAtPos       ( Int poc, Int layerId, Int cuPelX, Int cuPelY, Int cuWidth, Int cuHeight );           
     211
     212 Void           printStr         ( std::string str );
     213 Void           printStrIndent   ( Bool b, std::string str );
     214 Void           prinStrIncIndent ( Bool b, std::string str );
     215 Void           decIndent        ( Bool b );
     216
     217 template <typename T>
     218 std::string n2s ( T Number )
     219 {
     220   std::ostringstream ss;
     221   ss << Number;
     222   return ss.str();
     223 };
     224
    200225#endif
    201226#else
     
    214239#define DTRACE_PU_S(x) ;           
    215240#define DTRACE_TU_S(x) ;           
     241
     242#define D_DEC_INDENT( b ) ;
     243#define D_PRINT_INC_INDENT( b, str );
     244#define D_PRINT_INDENT( b, str );
     245
    216246#endif
    217247#endif
  • branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComYuv.cpp

    r1279 r1309  
    125125    ::memcpy( pDst, pSrc, sizeof(Pel)*iWidth);
    126126#if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC
    127     if ( g_traceCopyBack && g_nSymbolCounter >= g_stopAtCounter )
     127    if ( g_traceCopyBack && compID == COMPONENT_Y)
    128128    {
     129      std::stringstream strStr;
    129130      for ( Int x = 0; x < iWidth; x++)
    130131      {     
    131         std::cout << pSrc[ x ] << " " ;
    132       }
    133       std::cout << std::endl;
     132        strStr << pSrc[ x ] << " " ;
     133      }
     134      printStrIndent( true, strStr.str() );
    134135    }
    135136#endif
  • branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TypeDef.h

    r1308 r1309  
    6666/////////////////////////////////////////////////////////////////////////////////////////
    6767#if NH_MV
    68 #define NH_3D_INTRA_SDC_RD_FIX            1 // Fix in RD- decsion of intra sdc.
     68#define NH_3D_DIS_FIX                     1
     69#define NH_3D_ENC_DEPTH_FIX               1 // Fix Intra TU coding.
     70#define NH_3D_INTRA_SDC_RD_FIX            1 // Fix in RD- decision of intra SDC.
    6971#define NH_3D_DLT_FIX                     1 // Fixes numbers of parsed DLTs
    7072#define NH_3D_VER141_DEC_COMP_FLAG        0 // Makes decoding of this version compatible to HTM-14.1 by re-introducing HTM-14.1 bugs.
Note: See TracChangeset for help on using the changeset viewer.