Changeset 1343 in 3DVCSoftware
- Timestamp:
- 2 Oct 2015, 16:44:04 (9 years ago)
- 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 1 1 2 PayloadType : TBD2 PayloadType : 181 3 3 4 4 #======== 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)5 ApplicableLayerIds : # LayerIds of layers to which the SEI is added. (all when empty) 6 ApplicablePocs : # POCs of pictures to which the SEI is added. (all when empty) 7 ApplicableTids : # Tids of pictures to which the SEI is added. (all when empty) 8 ApplicableVclNaluTypes : # NaluUnitTypes of picture to which the SEI is added. (all when empty) 9 9 10 10 #======== Position in bit stream ============ 11 SeiNaluId : 0 # Identifies to which NAL unit the SEI is added .11 SeiNaluId : 0 # Identifies to which NAL unit the SEI is added 12 12 PositionInSeiNalu : 0 # Identifies the position within the NAL unit 13 13 14 14 #======== Payload modification ============= 15 ModifyByEncoder : TBD# 0: Use payload as specified in cfg file 1: Modify SEI by encoder.15 ModifyByEncoder : 0 # 0: Use payload as specified in cfg file 1: Modify SEI by encoder. 16 16 17 17 #======== Payload specification ============= 18 18 AlternativeDepthInfoCancelFlag : 0 19 DepthType : 019 DepthType : 1 20 20 NumConstituentViewsGvdMinus1 : 0 21 21 DepthPresentGvdFlag : 0 … … 54 54 ExpGvdTX : 0 55 55 ManGvdTX : 0 56 MinOffsetXInt : 057 MinOffsetXFrac : 058 MaxOffsetXInt : 059 MaxOffsetXFrac : 060 OffsetYPresentFlag : 061 MinOffsetYInt : 062 MinOffsetYFrac : 063 MaxOffsetYInt : 064 MaxOffsetYFrac : 065 WarpMapSizePresentFlag : 066 WarpMapWidthMinus2 : 067 WarpMapHeightMinus2 : 056 MinOffsetXInt : -10 57 MinOffsetXFrac : 50 58 MaxOffsetXInt : 70 59 MaxOffsetXFrac : 30 60 OffsetYPresentFlag : 1 61 MinOffsetYInt : -20 62 MinOffsetYFrac : 70 63 MaxOffsetYInt : 30 64 MaxOffsetYFrac : 154 65 WarpMapSizePresentFlag : 1 66 WarpMapWidthMinus2 : 700 67 WarpMapHeightMinus2 : 300 -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibCommon/SEI.cpp
r1342 r1343 246 246 case SEI::MULTIVIEW_ACQUISITION_INFO : return new SEIMultiviewAcquisitionInfo; 247 247 case SEI::MULTIVIEW_VIEW_POSITION : return new SEIMultiviewViewPosition; 248 #if NH_MV_SEI_TBD249 248 #if NH_3D 250 249 case SEI::ALTERNATIVE_DEPTH_INFO : return new SEIAlternativeDepthInfo; 251 #endif252 250 #endif 253 251 #endif … … 1470 1468 }; 1471 1469 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 1574 1472 Void SEIAlternativeDepthInfo::setupFromCfgFile(const Char* cfgFile) 1575 1473 { … … 1577 1475 IntAry1d defAppLayerIds, defAppPocs, defAppTids, defAppVclNaluTypes; 1578 1476 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 1584 1482 Int defSeiNaluId = 0; 1585 1483 Int defPositionInSeiNalu = 0; 1586 Bool defModifyByEncoder = TBD;1484 Bool defModifyByEncoder = 0; 1587 1485 1588 1486 // Setup config file options … … 1592 1490 opts.addOptions() 1593 1491 ("AlternativeDepthInfoCancelFlag" , m_alternativeDepthInfoCancelFlag , false , "AlternativeDepthInfoCancelFlag" ) 1594 ("DepthType" , m_depthType , 0 , "DepthType" ) 1492 ("DepthType" , m_depthType , 1 , "DepthType" ) 1493 #if NH_MV_SEI_TBD 1595 1494 ("NumConstituentViewsGvdMinus1" , m_numConstituentViewsGvdMinus1 , 0 , "NumConstituentViewsGvdMinus1" ) 1596 1495 ("DepthPresentGvdFlag" , m_depthPresentGvdFlag , false , "DepthPresentGvdFlag" ) … … 1629 1528 ("ExpGvdTX" , m_expGvdTX , IntAry1d (1,0) , "ExpGvdTX" ) 1630 1529 ("ManGvdTX" , m_manGvdTX , IntAry1d (1,0) , "ManGvdTX" ) 1530 #endif 1631 1531 ("MinOffsetXInt" , m_minOffsetXInt , 0 , "MinOffsetXInt" ) 1632 1532 ("MinOffsetXFrac" , m_minOffsetXFrac , 0 , "MinOffsetXFrac" ) … … 1650 1550 }; 1651 1551 1552 1652 1553 Bool SEIAlternativeDepthInfo::checkCfg( const TComSlice* slice ) 1653 1554 { … … 1655 1556 Bool wrongConfig = false; 1656 1557 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" ); 1660 1561 1661 1562 // 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 1664 1564 xCheckCfgRange( wrongConfig, m_numConstituentViewsGvdMinus1 , MINVAL , MAXVAL, "num_constituent_views_gvd_minus1 "); 1665 1565 xCheckCfgRange( wrongConfig, m_depthPresentGvdFlag , MINVAL , MAXVAL, "depth_present_gvd_flag" ); … … 1698 1598 xCheckCfgRange( wrongConfig, m_expGvdTX[i] , MINVAL , MAXVAL, "exp_gvd_t_x" ); 1699 1599 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" ); 1712 1609 1713 1610 return wrongConfig; 1714 1611 1715 1612 }; 1613 1614 1716 1615 #endif 1717 1718 #endif -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibCommon/SEI.h
r1342 r1343 1140 1140 }; 1141 1141 1142 #if NH_MV_SEI_TBD 1142 1143 1143 class SEIAlternativeDepthInfo : public SEI 1144 1144 { … … 1149 1149 SEI* getCopy( ) const { return new SEIAlternativeDepthInfo(*this); }; 1150 1150 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 1154 1154 1155 1155 Bool m_alternativeDepthInfoCancelFlag; 1156 1156 Int m_depthType; 1157 #if NH_MV_SEI_TBD 1157 1158 Int m_numConstituentViewsGvdMinus1; 1158 1159 Bool m_depthPresentGvdFlag; … … 1191 1192 IntAry1d m_expGvdTX; 1192 1193 IntAry1d m_manGvdTX; 1194 #endif 1193 1195 Int m_minOffsetXInt; 1194 1196 Int m_minOffsetXFrac; … … 1204 1206 Int m_warpMapHeightMinus2; 1205 1207 }; 1206 #endif 1208 1207 1209 1208 1210 #endif -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibDecoder/SEIread.cpp
r1342 r1343 387 387 xParseSEIMultiviewViewPosition((SEIMultiviewViewPosition&) *sei, payloadSize, pDecodedMessageOutputStream ); 388 388 break; 389 #if NH_MV_TBD390 389 case SEI::ALTERNATIVE_DEPTH_INFO: 391 390 sei = new SEIAlternativeDepthInfo; 392 391 xParseSEIAlternativeDepthInfo((SEIAlternativeDepthInfo&) *sei, payloadSize, pDecodedMessageOutputStream ); 393 392 break; 394 #endif395 393 #endif 396 394 default: … … 1692 1690 }; 1693 1691 1694 #if NH_MV_SEI_TBD 1692 1695 1693 Void SEIReader::xParseSEIAlternativeDepthInfo(SEIAlternativeDepthInfo& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream) 1696 1694 { 1697 1695 UInt code; 1696 Int scode; 1698 1697 output_sei_message_header(sei, pDecodedMessageOutputStream, payloadSize); 1699 1698 … … 1702 1701 { 1703 1702 sei_read_code( pDecodedMessageOutputStream, 2, code, "depth_type" ); sei.m_depthType = code; 1703 #if NH_MV_SEI_TBD 1704 1704 if( sei.m_depthType == 0 ) 1705 1705 { … … 1774 1774 } 1775 1775 } 1776 #endif 1777 1776 1778 if( sei.m_depthType == 1 ) 1777 1779 { 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; 1779 1781 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; 1781 1783 sei_read_code( pDecodedMessageOutputStream, 8, code, "max_offset_x_frac" ); sei.m_maxOffsetXFrac = code; 1782 1784 sei_read_flag( pDecodedMessageOutputStream, code, "offset_y_present_flag" ); sei.m_offsetYPresentFlag = (code == 1); 1783 1785 if( sei.m_offsetYPresentFlag ) 1784 1786 { 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; 1786 1788 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; 1788 1790 sei_read_code( pDecodedMessageOutputStream, 8, code, "max_offset_y_frac" ); sei.m_maxOffsetYFrac = code; 1789 1791 } … … 1797 1799 } 1798 1800 }; 1799 #endif 1801 1800 1802 1801 1803 //! \} -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibDecoder/SEIread.h
r1342 r1343 129 129 Void xParseSEIMultiviewViewPosition (SEIMultiviewViewPosition& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream); 130 130 #endif 131 #if NH_MV_SEI_TBD132 131 Void xParseSEIAlternativeDepthInfo (SEIAlternativeDepthInfo& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream); 133 #endif134 132 135 133 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 180 180 xWriteSEIMultiviewViewPosition(*static_cast<const SEIMultiviewViewPosition*>(&sei)); 181 181 break; 182 #if NH_MV_SEI_TBD183 182 case SEI::ALTERNATIVE_DEPTH_INFO: 184 183 xWriteSEIAlternativeDepthInfo(*static_cast<const SEIAlternativeDepthInfo*>(&sei)); 185 184 break; 186 #endif187 185 #endif 188 186 … … 1309 1307 #endif 1310 1308 1311 #if NH_MV_SEI_TBD 1309 1312 1310 Void SEIWriter::xWriteSEIAlternativeDepthInfo( const SEIAlternativeDepthInfo& sei) 1313 1311 { … … 1316 1314 { 1317 1315 WRITE_CODE( sei.m_depthType, 2, "depth_type" ); 1316 1317 #if NH_MV_SEI_TBD 1318 1318 if( sei.m_depthType == 0 ) 1319 1319 { … … 1388 1388 } 1389 1389 } 1390 #endif 1391 1390 1392 if( sei.m_depthType == 1 ) 1391 1393 { … … 1412 1414 }; 1413 1415 1414 #endif 1416 1415 1417 1416 1418 //! \} -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibEncoder/SEIwrite.h
r1342 r1343 107 107 Void xWriteSEIMultiviewAcquisitionInfo ( const SEIMultiviewAcquisitionInfo& sei); 108 108 Void xWriteSEIMultiviewViewPosition ( const SEIMultiviewViewPosition& sei); 109 #if NH_MV_SEI_TBD110 109 Void xWriteSEIAlternativeDepthInfo ( const SEIAlternativeDepthInfo& sei); 111 #endif112 110 Void xWriteByteAlign(); 113 111 };
Note: See TracChangeset for help on using the changeset viewer.