Changeset 1343 in 3DVCSoftware


Ignore:
Timestamp:
2 Oct 2015, 16:44:04 (9 years ago)
Author:
disney-htm
Message:

Disney's part of AlternativeDepthInfo SEI message integrated

Location:
branches/HTM-15.1-dev0-Disney
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-15.1-dev0-Disney/cfg/SEI/alternativeDepthInfoSei.cfg

    r1328 r1343  
    11
    2 PayloadType                     : TBD
     2PayloadType                     : 181
    33
    44#======== Applicability  ==========    ( SEI is only send for pictures in intersection )
    5 ApplicableLayerIds              : TBD                            # LayerIds      of layers   to which the SEI is added. (all when empty)
    6 ApplicablePocs                  : TBD                            # POCs          of pictures to which the SEI is added. (all when empty)
    7 ApplicableTids                  : TBD                            # Tids          of pictures to which the SEI is added. (all when empty)
    8 ApplicableVclNaluTypes          : TBD                            # NaluUnitTypes of picture  to which the SEI is added. (all when empty)
     5ApplicableLayerIds              :                             # LayerIds      of layers   to which the SEI is added. (all when empty)
     6ApplicablePocs                  :                             # POCs          of pictures to which the SEI is added. (all when empty)
     7ApplicableTids                  :                             # Tids          of pictures to which the SEI is added. (all when empty)
     8ApplicableVclNaluTypes          :                             # NaluUnitTypes of picture  to which the SEI is added. (all when empty)
    99
    1010#======== Position in bit stream  ============
    11 SeiNaluId                       : 0                              # Identifies to which NAL unit  the SEI is added.
     11SeiNaluId                       : 0                              # Identifies to which NAL unit  the SEI is added
    1212PositionInSeiNalu               : 0                              # Identifies the position within the NAL unit
    1313
    1414#======== Payload modification =============
    15 ModifyByEncoder                 : TBD                            #  0: Use payload as specified in cfg file   1: Modify SEI by encoder.
     15ModifyByEncoder                 : 0                            #  0: Use payload as specified in cfg file   1: Modify SEI by encoder.
    1616
    1717#======== Payload specification =============
    1818AlternativeDepthInfoCancelFlag  : 0
    19 DepthType                       : 0
     19DepthType                       : 1
    2020NumConstituentViewsGvdMinus1    : 0
    2121DepthPresentGvdFlag             : 0
     
    5454ExpGvdTX                        : 0
    5555ManGvdTX                        : 0
    56 MinOffsetXInt                   : 0
    57 MinOffsetXFrac                  : 0
    58 MaxOffsetXInt                   : 0
    59 MaxOffsetXFrac                  : 0
    60 OffsetYPresentFlag              : 0
    61 MinOffsetYInt                   : 0
    62 MinOffsetYFrac                  : 0
    63 MaxOffsetYInt                   : 0
    64 MaxOffsetYFrac                  : 0
    65 WarpMapSizePresentFlag          : 0
    66 WarpMapWidthMinus2              : 0
    67 WarpMapHeightMinus2             : 0
     56MinOffsetXInt                   : -10
     57MinOffsetXFrac                  : 50
     58MaxOffsetXInt                   : 70
     59MaxOffsetXFrac                  : 30
     60OffsetYPresentFlag              : 1
     61MinOffsetYInt                   : -20
     62MinOffsetYFrac                  : 70
     63MaxOffsetYInt                   : 30
     64MaxOffsetYFrac                  : 154
     65WarpMapSizePresentFlag          : 1
     66WarpMapWidthMinus2              : 700
     67WarpMapHeightMinus2             : 300
  • branches/HTM-15.1-dev0-Disney/source/Lib/TLibCommon/SEI.cpp

    r1342 r1343  
    246246  case SEI::MULTIVIEW_ACQUISITION_INFO            :               return new SEIMultiviewAcquisitionInfo;
    247247  case SEI::MULTIVIEW_VIEW_POSITION               :               return new SEIMultiviewViewPosition;
    248 #if NH_MV_SEI_TBD
    249248#if NH_3D
    250249  case SEI::ALTERNATIVE_DEPTH_INFO                :               return new SEIAlternativeDepthInfo;
    251 #endif
    252250#endif
    253251#endif
     
    14701468};
    14711469
    1472 #if NH_MV_SEI_TBD
    1473 Void SEIAlternativeDepthInfo::setupFromSlice  ( const TComSlice* slice )
    1474 {
    1475   sei.m_alternativeDepthInfoCancelFlag =  TBD ;
    1476   if( sei.m_alternativeDepthInfoCancelFlag  = =  0 )
    1477   {
    1478     sei.m_depthType =  TBD ;
    1479     if( sei.m_depthType  = =  0 )
    1480     {
    1481       sei.m_numConstituentViewsGvdMinus1 =  TBD ;
    1482       sei.m_depthPresentGvdFlag =  TBD ;
    1483       sei.m_zGvdFlag =  TBD ;
    1484       sei.m_intrinsicParamGvdFlag =  TBD ;
    1485       sei.m_rotationGvdFlag =  TBD ;
    1486       sei.m_translationGvdFlag =  TBD ;
    1487       if( sei.m_zGvdFlag )
    1488       {
    1489         for( Int i = 0; i  <=  sei.m_numConstituentViewsGvdMinus1 + 1; i++ )
    1490         {
    1491           sei.m_signGvdZNearFlag[i] =  TBD ;
    1492           sei.m_expGvdZNear[i] =  TBD ;
    1493           sei.m_manLenGvdZNearMinus1[i] =  TBD ;
    1494           sei.m_manGvdZNear[i] =  TBD ;
    1495           sei.m_signGvdZFarFlag[i] =  TBD ;
    1496           sei.m_expGvdZFar[i] =  TBD ;
    1497           sei.m_manLenGvdZFarMinus1[i] =  TBD ;
    1498           sei.m_manGvdZFar[i] =  TBD ;
    1499         }
    1500       }
    1501       if( sei.m_intrinsicParamGvdFlag )
    1502       {
    1503         sei.m_precGvdFocalLength =  TBD ;
    1504         sei.m_precGvdPrincipalPoint =  TBD ;
    1505       }
    1506       if( sei.m_rotationGvdFlag )
    1507       {
    1508         sei.m_precGvdRotationParam =  TBD ;
    1509       }
    1510       if( sei.m_translationGvdFlag )
    1511       {
    1512         sei.m_precGvdTranslationParam =  TBD ;
    1513       }
    1514       for( Int i = 0; i  <=  sei.m_numConstituentViewsGvdMinus1 + 1; i++ )
    1515       {
    1516         if( sei.m_intrinsicParamGvdFlag )
    1517         {
    1518           sei.m_signGvdFocalLengthX[i] =  TBD ;
    1519           sei.m_expGvdFocalLengthX[i] =  TBD ;
    1520           sei.m_manGvdFocalLengthX[i] =  TBD ;
    1521           sei.m_signGvdFocalLengthY[i] =  TBD ;
    1522           sei.m_expGvdFocalLengthY[i] =  TBD ;
    1523           sei.m_manGvdFocalLengthY[i] =  TBD ;
    1524           sei.m_signGvdPrincipalPointX[i] =  TBD ;
    1525           sei.m_expGvdPrincipalPointX[i] =  TBD ;
    1526           sei.m_manGvdPrincipalPointX[i] =  TBD ;
    1527           sei.m_signGvdPrincipalPointY[i] =  TBD ;
    1528           sei.m_expGvdPrincipalPointY[i] =  TBD ;
    1529           sei.m_manGvdPrincipalPointY[i] =  TBD ;
    1530         }
    1531         if( sei.m_rotationGvdFlag )
    1532         {
    1533           for( Int j = 10; j  <=  3; j++ ) /* row */
    1534           {
    1535             for( Int k = 10; k  <=  3; k++ )  /* column */
    1536             {
    1537               sei.m_signGvdR[i][j][k] =  TBD ;
    1538               sei.m_expGvdR[i][j][k] =  TBD ;
    1539               sei.m_manGvdR[i][j][k] =  TBD ;
    1540             }
    1541           }
    1542         }
    1543         if( sei.m_translationGvdFlag )
    1544         {
    1545           sei.m_signGvdTX[i] =  TBD ;
    1546           sei.m_expGvdTX[i] =  TBD ;
    1547           sei.m_manGvdTX[i] =  TBD ;
    1548         }
    1549       }
    1550     }
    1551     if( sei.m_depthType  = =  1 )
    1552     {
    1553       sei.m_minOffsetXInt =  TBD ;
    1554       sei.m_minOffsetXFrac =  TBD ;
    1555       sei.m_maxOffsetXInt =  TBD ;
    1556       sei.m_maxOffsetXFrac =  TBD ;
    1557       sei.m_offsetYPresentFlag =  TBD ;
    1558       if( sei.m_offsetYPresentFlag )
    1559       {
    1560         sei.m_minOffsetYInt =  TBD ;
    1561         sei.m_minOffsetYFrac =  TBD ;
    1562         sei.m_maxOffsetYInt =  TBD ;
    1563         sei.m_maxOffsetYFrac =  TBD ;
    1564       }
    1565       sei.m_warpMapSizePresentFlag =  TBD ;
    1566       if( sei.m_warpMapSizePresentFlag )
    1567       {
    1568         sei.m_warpMapWidthMinus2 =  TBD ;
    1569         sei.m_warpMapHeightMinus2 =  TBD ;
    1570       }
    1571     }
    1572   }
    1573 };
     1470
     1471
    15741472Void SEIAlternativeDepthInfo::setupFromCfgFile(const Char* cfgFile)
    15751473{
     
    15771475  IntAry1d defAppLayerIds, defAppPocs, defAppTids, defAppVclNaluTypes;
    15781476
    1579   defAppLayerIds    .push_back( TBD );
    1580   defAppPocs        .push_back( TBD );
    1581   defAppTids        .push_back( TBD );
    1582   defAppVclNaluTypes.push_back( TBD );
    1583 
     1477  defAppLayerIds    .clear();
     1478  defAppPocs        .clear();
     1479  defAppTids        .clear();
     1480  defAppVclNaluTypes.clear();
     1481   
    15841482  Int      defSeiNaluId                  = 0;
    15851483  Int      defPositionInSeiNalu          = 0;
    1586   Bool     defModifyByEncoder            = TBD;
     1484  Bool     defModifyByEncoder            = 0;
    15871485
    15881486  // Setup config file options
     
    15921490  opts.addOptions()
    15931491    ("AlternativeDepthInfoCancelFlag"   , m_alternativeDepthInfoCancelFlag   , false                            , "AlternativeDepthInfoCancelFlag"   )
    1594     ("DepthType"                        , m_depthType                        , 0                                , "DepthType"                        )
     1492    ("DepthType"                        , m_depthType                        , 1                                , "DepthType"                        )
     1493#if NH_MV_SEI_TBD
    15951494    ("NumConstituentViewsGvdMinus1"     , m_numConstituentViewsGvdMinus1     , 0                                , "NumConstituentViewsGvdMinus1"     )
    15961495    ("DepthPresentGvdFlag"              , m_depthPresentGvdFlag              , false                            , "DepthPresentGvdFlag"              )
     
    16291528    ("ExpGvdTX"                         , m_expGvdTX                         , IntAry1d (1,0)                   , "ExpGvdTX"                         )
    16301529    ("ManGvdTX"                         , m_manGvdTX                         , IntAry1d (1,0)                   , "ManGvdTX"                         )
     1530#endif
    16311531    ("MinOffsetXInt"                    , m_minOffsetXInt                    , 0                                , "MinOffsetXInt"                    )
    16321532    ("MinOffsetXFrac"                   , m_minOffsetXFrac                   , 0                                , "MinOffsetXFrac"                   )
     
    16501550};
    16511551
     1552
    16521553Bool SEIAlternativeDepthInfo::checkCfg( const TComSlice* slice )
    16531554{
     
    16551556  Bool wrongConfig = false;
    16561557
    1657   // TBD: Add constraints on presence of SEI here.
    1658   xCheckCfg     ( wrongConfig, TBD , "TBD" );
    1659   xCheckCfg     ( wrongConfig, TBD , "TBD" );
     1558 
     1559  xCheckCfgRange( wrongConfig, m_alternativeDepthInfoCancelFlag , 0 , 1, "alternative_depth_info_cancel_flag");
     1560  xCheckCfgRange( wrongConfig, m_depthType                      , 0 , 1, "depth_type"                      );
    16601561
    16611562  // TBD: Modify constraints according to the SEI semantics.   
    1662   xCheckCfgRange( wrongConfig, m_alternativeDepthInfoCancelFlag , MINVAL , MAXVAL, "alternative_depth_info_cancel_flag");
    1663   xCheckCfgRange( wrongConfig, m_depthType                      , MINVAL , MAXVAL, "depth_type"                       );
     1563#if NH_MV_SEI_TBD
    16641564  xCheckCfgRange( wrongConfig, m_numConstituentViewsGvdMinus1   , MINVAL , MAXVAL, "num_constituent_views_gvd_minus1 ");
    16651565  xCheckCfgRange( wrongConfig, m_depthPresentGvdFlag            , MINVAL , MAXVAL, "depth_present_gvd_flag"           );
     
    16981598  xCheckCfgRange( wrongConfig, m_expGvdTX[i]                    , MINVAL , MAXVAL, "exp_gvd_t_x"                      );
    16991599  xCheckCfgRange( wrongConfig, m_manGvdTX[i]                    , MINVAL , MAXVAL, "man_gvd_t_x"                      );
    1700   xCheckCfgRange( wrongConfig, m_minOffsetXInt                  , MINVAL , MAXVAL, "min_offset_x_int"                 );
    1701   xCheckCfgRange( wrongConfig, m_minOffsetXFrac                 , MINVAL , MAXVAL, "min_offset_x_frac"                );
    1702   xCheckCfgRange( wrongConfig, m_maxOffsetXInt                  , MINVAL , MAXVAL, "max_offset_x_int"                 );
    1703   xCheckCfgRange( wrongConfig, m_maxOffsetXFrac                 , MINVAL , MAXVAL, "max_offset_x_frac"                );
    1704   xCheckCfgRange( wrongConfig, m_offsetYPresentFlag             , MINVAL , MAXVAL, "offset_y_present_flag"            );
    1705   xCheckCfgRange( wrongConfig, m_minOffsetYInt                  , MINVAL , MAXVAL, "min_offset_y_int"                 );
    1706   xCheckCfgRange( wrongConfig, m_minOffsetYFrac                 , MINVAL , MAXVAL, "min_offset_y_frac"                );
    1707   xCheckCfgRange( wrongConfig, m_maxOffsetYInt                  , MINVAL , MAXVAL, "max_offset_y_int"                 );
    1708   xCheckCfgRange( wrongConfig, m_maxOffsetYFrac                 , MINVAL , MAXVAL, "max_offset_y_frac"                );
    1709   xCheckCfgRange( wrongConfig, m_warpMapSizePresentFlag         , MINVAL , MAXVAL, "warp_map_size_present_flag"       );
    1710   xCheckCfgRange( wrongConfig, m_warpMapWidthMinus2             , MINVAL , MAXVAL, "warp_map_width_minus2"            );
    1711   xCheckCfgRange( wrongConfig, m_warpMapHeightMinus2            , MINVAL , MAXVAL, "warp_map_height_minus2"           );
     1600#endif 
     1601  xCheckCfgRange( wrongConfig, m_minOffsetXFrac                 , 0 , 255, "min_offset_x_frac"                ); 
     1602  xCheckCfgRange( wrongConfig, m_maxOffsetXFrac                 , 0 , 255, "max_offset_x_frac"                );
     1603  xCheckCfgRange( wrongConfig, m_offsetYPresentFlag             , 0 , 1, "offset_y_present_flag"            ); 
     1604  xCheckCfgRange( wrongConfig, m_minOffsetYFrac                 , 0 , 255, "min_offset_y_frac"                ); 
     1605  xCheckCfgRange( wrongConfig, m_maxOffsetYFrac                 , 0 , 255, "max_offset_y_frac"                );
     1606  xCheckCfgRange( wrongConfig, m_warpMapSizePresentFlag         , 0 , 1, "warp_map_size_present_flag"       );
     1607  xCheckCfgRange( wrongConfig, m_warpMapWidthMinus2             , 0 , (slice->getSPS()->getPicWidthInLumaSamples()-2), "warp_map_width_minus2"            );
     1608  xCheckCfgRange( wrongConfig, m_warpMapHeightMinus2            , 0 , ((slice->getSPS()->getPicHeightInLumaSamples()>>(Int)m_offsetYPresentFlag)-2), "warp_map_height_minus2"           );
    17121609
    17131610  return wrongConfig;
    17141611
    17151612};
     1613
     1614
    17161615#endif
    1717 
    1718 #endif
  • branches/HTM-15.1-dev0-Disney/source/Lib/TLibCommon/SEI.h

    r1342 r1343  
    11401140};
    11411141
    1142 #if NH_MV_SEI_TBD
     1142
    11431143class SEIAlternativeDepthInfo : public SEI
    11441144{
     
    11491149  SEI* getCopy( ) const { return new SEIAlternativeDepthInfo(*this); };
    11501150
    1151   Void setupFromCfgFile( const Char*      cfgFile );
    1152   Void setupFromSlice  ( const TComSlice* slice   );
    1153   Bool checkCfg        ( const TComSlice* slice   );
     1151  Void setupFromCfgFile( const Char*      cfgFile ); 
     1152  Bool checkCfg        ( const TComSlice* slice   );
     1153
    11541154
    11551155  Bool      m_alternativeDepthInfoCancelFlag;
    11561156  Int       m_depthType;
     1157#if NH_MV_SEI_TBD
    11571158  Int       m_numConstituentViewsGvdMinus1;
    11581159  Bool      m_depthPresentGvdFlag;
     
    11911192  IntAry1d  m_expGvdTX;
    11921193  IntAry1d  m_manGvdTX;
     1194#endif
    11931195  Int       m_minOffsetXInt;
    11941196  Int       m_minOffsetXFrac;
     
    12041206  Int       m_warpMapHeightMinus2;
    12051207};
    1206 #endif
     1208
    12071209
    12081210#endif
  • branches/HTM-15.1-dev0-Disney/source/Lib/TLibDecoder/SEIread.cpp

    r1342 r1343  
    387387      xParseSEIMultiviewViewPosition((SEIMultiviewViewPosition&) *sei, payloadSize, pDecodedMessageOutputStream );
    388388      break;
    389 #if NH_MV_TBD
    390389    case SEI::ALTERNATIVE_DEPTH_INFO:
    391390      sei = new SEIAlternativeDepthInfo;
    392391      xParseSEIAlternativeDepthInfo((SEIAlternativeDepthInfo&) *sei, payloadSize, pDecodedMessageOutputStream );
    393392      break;
    394 #endif
    395393#endif
    396394    default:
     
    16921690};
    16931691
    1694 #if NH_MV_SEI_TBD
     1692
    16951693Void SEIReader::xParseSEIAlternativeDepthInfo(SEIAlternativeDepthInfo& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream)
    16961694{
    16971695  UInt code;
     1696  Int scode;
    16981697  output_sei_message_header(sei, pDecodedMessageOutputStream, payloadSize);
    16991698
     
    17021701  {
    17031702    sei_read_code( pDecodedMessageOutputStream, 2, code, "depth_type" ); sei.m_depthType = code;
     1703#if NH_MV_SEI_TBD
    17041704    if( sei.m_depthType  ==  0 )
    17051705    {
     
    17741774      }
    17751775    }
     1776#endif
     1777
    17761778    if( sei.m_depthType  ==  1 )
    17771779    {
    1778       sei_read_svlc( pDecodedMessageOutputStream, code, "min_offset_x_int" ); sei.m_minOffsetXInt = code;
     1780      sei_read_svlc( pDecodedMessageOutputStream, scode, "min_offset_x_int" ); sei.m_minOffsetXInt = scode;
    17791781      sei_read_code( pDecodedMessageOutputStream, 8, code, "min_offset_x_frac" ); sei.m_minOffsetXFrac = code;
    1780       sei_read_svlc( pDecodedMessageOutputStream, code, "max_offset_x_int" ); sei.m_maxOffsetXInt = code;
     1782      sei_read_svlc( pDecodedMessageOutputStream, scode, "max_offset_x_int" ); sei.m_maxOffsetXInt = scode;
    17811783      sei_read_code( pDecodedMessageOutputStream, 8, code, "max_offset_x_frac" ); sei.m_maxOffsetXFrac = code;
    17821784      sei_read_flag( pDecodedMessageOutputStream, code, "offset_y_present_flag" ); sei.m_offsetYPresentFlag = (code == 1);
    17831785      if( sei.m_offsetYPresentFlag )
    17841786      {
    1785         sei_read_svlc( pDecodedMessageOutputStream, code, "min_offset_y_int" ); sei.m_minOffsetYInt = code;
     1787        sei_read_svlc( pDecodedMessageOutputStream, scode, "min_offset_y_int" ); sei.m_minOffsetYInt = scode;
    17861788        sei_read_code( pDecodedMessageOutputStream, 8, code, "min_offset_y_frac" ); sei.m_minOffsetYFrac = code;
    1787         sei_read_svlc( pDecodedMessageOutputStream, code, "max_offset_y_int" ); sei.m_maxOffsetYInt = code;
     1789        sei_read_svlc( pDecodedMessageOutputStream, scode, "max_offset_y_int" ); sei.m_maxOffsetYInt = scode;
    17881790        sei_read_code( pDecodedMessageOutputStream, 8, code, "max_offset_y_frac" ); sei.m_maxOffsetYFrac = code;
    17891791      }
     
    17971799  }
    17981800};
    1799 #endif
     1801
    18001802
    18011803//! \}
  • branches/HTM-15.1-dev0-Disney/source/Lib/TLibDecoder/SEIread.h

    r1342 r1343  
    129129  Void xParseSEIMultiviewViewPosition         (SEIMultiviewViewPosition& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream);
    130130#endif
    131 #if NH_MV_SEI_TBD
    132131  Void xParseSEIAlternativeDepthInfo          (SEIAlternativeDepthInfo& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream);
    133 #endif
    134132
    135133  Void sei_read_code(std::ostream *pOS, UInt uiLength, UInt& ruiCode, const Char *pSymbolName);
  • branches/HTM-15.1-dev0-Disney/source/Lib/TLibEncoder/SEIwrite.cpp

    r1342 r1343  
    180180     xWriteSEIMultiviewViewPosition(*static_cast<const SEIMultiviewViewPosition*>(&sei));
    181181     break;
    182 #if NH_MV_SEI_TBD
    183182   case SEI::ALTERNATIVE_DEPTH_INFO:
    184183     xWriteSEIAlternativeDepthInfo(*static_cast<const SEIAlternativeDepthInfo*>(&sei));
    185184     break;
    186 #endif
    187185#endif
    188186
     
    13091307#endif
    13101308
    1311 #if NH_MV_SEI_TBD
     1309
    13121310Void SEIWriter::xWriteSEIAlternativeDepthInfo( const SEIAlternativeDepthInfo& sei)
    13131311{
     
    13161314  {
    13171315    WRITE_CODE( sei.m_depthType, 2, "depth_type" );
     1316
     1317#if NH_MV_SEI_TBD
    13181318    if( sei.m_depthType  ==  0 )
    13191319    {
     
    13881388      }
    13891389    }
     1390#endif
     1391
    13901392    if( sei.m_depthType  ==  1 )
    13911393    {
     
    14121414};
    14131415
    1414 #endif
     1416
    14151417
    14161418//! \}
  • branches/HTM-15.1-dev0-Disney/source/Lib/TLibEncoder/SEIwrite.h

    r1342 r1343  
    107107  Void xWriteSEIMultiviewAcquisitionInfo      ( const SEIMultiviewAcquisitionInfo& sei);
    108108  Void xWriteSEIMultiviewViewPosition         ( const SEIMultiviewViewPosition& sei);
    109 #if NH_MV_SEI_TBD
    110109  Void xWriteSEIAlternativeDepthInfo          ( const SEIAlternativeDepthInfo& sei);
    111 #endif
    112110  Void xWriteByteAlign();
    113111};
Note: See TracChangeset for help on using the changeset viewer.