Changeset 767 in 3DVCSoftware for branches/HTM-9.2-dev0/source
- Timestamp:
- 12 Jan 2014, 04:39:11 (11 years ago)
- Location:
- branches/HTM-9.2-dev0/source
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-9.2-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r766 r767 76 76 #endif 77 77 78 #if CAM_HLS_F0136_F0045_F008278 #if H_3D 79 79 vps.createCamPars(m_iNumberOfViews); 80 #endif81 82 #if DLT_DIFF_CODING_IN_PPS83 80 TComDLT& dlt = m_dlt; 84 81 #endif … … 134 131 xSetVPSExtension2 ( vps ); 135 132 m_ivPicLists.setVPS ( &vps ); 136 #if DLT_DIFF_CODING_IN_PPS137 133 xDeriveDltArray ( vps, dlt ); 138 #endif139 134 #endif 140 135 … … 216 211 m_cTEncTop.setVPS(&vps); 217 212 218 #if DLT_DIFF_CODING_IN_PPS213 #if H_3D 219 214 m_cTEncTop.setDLT(&dlt); 220 215 #endif … … 778 773 Void TAppEncTop::xInitLib(Bool isFieldCoding) 779 774 { 780 #if CAM_HLS_F0136_F0045_F0082775 #if H_3D 781 776 for ( Int viewIndex = 0; viewIndex < m_vps.getNumViews(); viewIndex++ ) 782 777 { … … 1252 1247 1253 1248 #if H_3D_DIM_DLT 1254 #if DLT_DIFF_CODING_IN_PPS1255 1249 Void TAppEncTop::xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps, TComDLT* dlt) 1256 #else1257 Void TAppEncTop::xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps)1258 #endif1259 1250 { 1260 1251 TComPicYuv* pcDepthPicYuvOrg = new TComPicYuv; … … 1316 1307 if( uiNumFrames == 0 || numBitsForValue(iNumDepthValues) == g_bitDepthY ) 1317 1308 { 1318 #if DLT_DIFF_CODING_IN_PPS1319 1309 dlt->setUseDLTFlag(layer, false); 1320 #else1321 // don't use DLT1322 vps->setUseDLTFlag(layer, false);1323 #endif1324 1310 } 1325 1311 1326 1312 // assign LUT 1327 #if DLT_DIFF_CODING_IN_PPS1328 1313 if( dlt->getUseDLTFlag(layer) ) 1314 { 1329 1315 dlt->setDepthLUTs(layer, aiIdx2DepthValue, iNumDepthValues); 1330 #else 1331 if( vps->getUseDLTFlag(layer) ) 1332 vps->setDepthLUTs(layer, aiIdx2DepthValue, iNumDepthValues); 1333 #endif 1316 } 1334 1317 1335 1318 // free temporary memory … … 1877 1860 Void TAppEncTop::xSetVPSExtension2( TComVPS& vps ) 1878 1861 { 1879 1880 1862 for ( Int layer = 0; layer <= vps.getMaxLayersMinus1(); layer++ ) 1881 1863 { … … 1900 1882 #if H_3D_DIM 1901 1883 vps.setVpsDepthModesFlag( layer, isDepth && !isLayerZero && (m_useDMM || m_useSDC || m_useDLT ) ); 1902 #if H_3D_DIM_DLT1903 #if !DLT_DIFF_CODING_IN_PPS1904 vps.setUseDLTFlag( layer , isDepth && m_useDLT );1905 if( vps.getUseDLTFlag( layer ) )1906 {1907 xAnalyzeInputBaseDepth(layer, max( m_iIntraPeriod[layer], 24), &vps);1908 }1909 #endif1910 #endif1911 1884 #endif 1912 1885 … … 1938 1911 #endif 1939 1912 } 1940 #endif 1941 1942 #if DLT_DIFF_CODING_IN_PPS 1913 1943 1914 Void TAppEncTop::xDeriveDltArray( TComVPS& vps, TComDLT& dlt ) 1944 1915 { -
branches/HTM-9.2-dev0/source/App/TAppEncoder/TAppEncTop.h
r766 r767 86 86 #endif 87 87 88 #if DLT_DIFF_CODING_IN_PPS88 #if H_3D 89 89 TComDLT m_dlt; ///< dlt 90 90 #endif … … 136 136 #if H_3D 137 137 Void xSetVPSExtension2( TComVPS& vps ); 138 #endif139 #if DLT_DIFF_CODING_IN_PPS140 138 Void xDeriveDltArray( TComVPS& vps, TComDLT& dlt ); 141 139 #endif 142 140 #if H_3D_DIM_DLT 143 #if DLT_DIFF_CODING_IN_PPS144 141 Void xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps, TComDLT* dlt); 145 #else146 Void xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps);147 #endif148 142 #endif 149 143 public: -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComSlice.cpp
r766 r767 769 769 Void TComSlice::setCamparaSlice( Int** aaiScale, Int** aaiOffset ) 770 770 { 771 #if CAM_HLS_F0136_F0045_F0082772 771 if( m_pcVPS->hasCamParInSliceHeader( m_viewIndex ) ) 773 #else774 if( m_pcSPS->hasCamParInSliceHeader() )775 #endif776 772 { 777 773 for( UInt uiBaseViewIndex = 0; uiBaseViewIndex < m_viewIndex; uiBaseViewIndex++ ) … … 1789 1785 m_viewIndex [i] = -1; 1790 1786 m_vpsDepthModesFlag [i] = false; 1791 #if H_3D_DIM_DLT1792 #if !DLT_DIFF_CODING_IN_PPS1793 m_bUseDLTFlag [i] = false;1794 1795 // allocate some memory and initialize with default mapping1796 m_iNumDepthmapValues[i] = ((1 << g_bitDepthY)-1)+1;1797 m_iBitsPerDepthValue[i] = numBitsForValue(m_iNumDepthmapValues[i]);1798 1799 m_iDepthValue2Idx[i] = (Int*) xMalloc(Int, m_iNumDepthmapValues[i]);1800 m_iIdx2DepthValue[i] = (Int*) xMalloc(Int, m_iNumDepthmapValues[i]);1801 1802 //default mapping1803 for (Int d=0; d<m_iNumDepthmapValues[i]; d++)1804 {1805 m_iDepthValue2Idx[i][d] = d;1806 m_iIdx2DepthValue[i][d] = d;1807 }1808 #endif1809 #endif1810 #if H_3D1811 1787 m_ivMvScalingFlag = true; 1812 1788 #endif … … 1856 1832 } 1857 1833 #endif 1858 #endif1859 1834 } 1860 1835 1861 1836 TComVPS::~TComVPS() 1862 1837 { 1863 if( m_hrdParameters != NULL ) delete[] m_hrdParameters;1838 if( m_hrdParameters != NULL ) delete[] m_hrdParameters; 1864 1839 if( m_hrdOpSetIdx != NULL ) delete[] m_hrdOpSetIdx; 1865 1840 if( m_cprmsPresentFlag != NULL ) delete[] m_cprmsPresentFlag; … … 1871 1846 { 1872 1847 if (m_repFormat[ i ] != NULL ) delete m_repFormat[ i ]; 1873 #if H_3D_DIM_DLT 1874 #if !DLT_DIFF_CODING_IN_PPS 1875 if ( m_iDepthValue2Idx[i] != 0 ) 1876 { 1877 xFree( m_iDepthValue2Idx[i] ); 1878 m_iDepthValue2Idx[i] = 0; 1879 } 1880 1881 if ( m_iIdx2DepthValue[i] != 0 ) 1882 { 1883 xFree( m_iIdx2DepthValue[i] ); 1884 m_iIdx2DepthValue[i] = 0; 1885 } 1886 #endif 1887 #endif 1888 } 1889 #endif 1890 #if CAM_HLS_F0136_F0045_F0082 1848 } 1849 #endif 1850 #if H_3D 1891 1851 deleteCamPars(); 1892 1852 #endif 1893 1853 } 1894 1895 #if H_3D_DIM_DLT1896 #if !DLT_DIFF_CODING_IN_PPS1897 Void TComVPS::setDepthLUTs(Int layerIdInVps, Int* idxToDepthValueTable, Int iNumDepthValues)1898 {1899 if( idxToDepthValueTable == NULL || iNumDepthValues == 0 ) // default mapping only1900 return;1901 1902 // copy idx2DepthValue to internal array1903 memcpy(m_iIdx2DepthValue[layerIdInVps], idxToDepthValueTable, iNumDepthValues*sizeof(UInt));1904 1905 UInt uiMaxDepthValue = ((1 << g_bitDepthY)-1);1906 for(Int p=0; p<=uiMaxDepthValue; p++)1907 {1908 Int iIdxDown = 0;1909 Int iIdxUp = iNumDepthValues-1;1910 Bool bFound = false;1911 1912 // iterate over indices to find lower closest depth1913 Int i = 1;1914 while(!bFound && i<iNumDepthValues)1915 {1916 if( m_iIdx2DepthValue[layerIdInVps][i] > p )1917 {1918 iIdxDown = i-1;1919 bFound = true;1920 }1921 1922 i++;1923 }1924 // iterate over indices to find upper closest depth1925 i = iNumDepthValues-2;1926 bFound = false;1927 while(!bFound && i>=0)1928 {1929 if( m_iIdx2DepthValue[layerIdInVps][i] < p )1930 {1931 iIdxUp = i+1;1932 bFound = true;1933 }1934 1935 i--;1936 }1937 1938 // assert monotony1939 assert(iIdxDown<=iIdxUp);1940 1941 // assign closer depth value/idx1942 if( abs(p-m_iIdx2DepthValue[layerIdInVps][iIdxDown]) < abs(p-m_iIdx2DepthValue[layerIdInVps][iIdxUp]) )1943 {1944 m_iDepthValue2Idx[layerIdInVps][p] = iIdxDown;1945 }1946 else1947 {1948 m_iDepthValue2Idx[layerIdInVps][p] = iIdxUp;1949 }1950 1951 }1952 1953 // update DLT variables1954 m_iNumDepthmapValues[layerIdInVps] = iNumDepthValues;1955 m_iBitsPerDepthValue[layerIdInVps] = numBitsForValue(m_iNumDepthmapValues[layerIdInVps]);1956 }1957 #endif1958 #endif1959 1854 1960 1855 #if H_MV … … 2043 1938 return foundLayerIdinNuh; 2044 1939 } 2045 #if CAM_HLS_F0136_F0045_F0082 1940 2046 1941 Void TComVPS::createCamPars(Int iNumViews) 2047 1942 { … … 2132 2027 } 2133 2028 } 2134 #endif // CAM_HLS_F0136_F0045_F00822135 2029 2136 2030 #endif // H_3D … … 2491 2385 , m_ppsInferScalingListFlag(false) 2492 2386 , m_ppsScalingListRefLayerId(0) 2493 #if DLT_DIFF_CODING_IN_PPS2387 #if H_3D 2494 2388 , m_pcDLT(NULL) 2495 2389 #endif … … 2514 2408 } 2515 2409 2516 #if DLT_DIFF_CODING_IN_PPS2410 #if H_3D 2517 2411 TComDLT::TComDLT() 2518 2412 : m_bDltPresentFlag(false) … … 2740 2634 } 2741 2635 #endif 2742 #if H_3D 2743 #if !CAM_HLS_F0136_F0045_F0082 2744 Void 2745 TComSPS::initCamParaSPS( UInt uiViewIndex, UInt uiCamParPrecision, Bool bCamParSlice, Int** aaiScale, Int** aaiOffset ) 2746 { 2747 AOT( uiViewIndex != 0 && !bCamParSlice && ( aaiScale == 0 || aaiOffset == 0 ) ); 2748 2749 m_uiCamParPrecision = ( uiViewIndex ? uiCamParPrecision : 0 ); 2750 m_bCamParInSliceHeader = ( uiViewIndex ? bCamParSlice : false ); 2751 ::memset( m_aaiCodedScale, 0x00, sizeof( m_aaiCodedScale ) ); 2752 ::memset( m_aaiCodedOffset, 0x00, sizeof( m_aaiCodedOffset ) ); 2753 2754 if( !m_bCamParInSliceHeader ) 2755 { 2756 for( UInt uiBaseViewIndex = 0; uiBaseViewIndex < uiViewIndex; uiBaseViewIndex++ ) 2757 { 2758 m_aaiCodedScale [ 0 ][ uiBaseViewIndex ] = aaiScale [ uiBaseViewIndex ][ uiViewIndex ]; 2759 m_aaiCodedScale [ 1 ][ uiBaseViewIndex ] = aaiScale [ uiViewIndex ][ uiBaseViewIndex ]; 2760 m_aaiCodedOffset[ 0 ][ uiBaseViewIndex ] = aaiOffset[ uiBaseViewIndex ][ uiViewIndex ]; 2761 m_aaiCodedOffset[ 1 ][ uiBaseViewIndex ] = aaiOffset[ uiViewIndex ][ uiBaseViewIndex ]; 2762 } 2763 } 2764 } 2765 #endif 2766 #endif 2636 2767 2637 TComReferencePictureSet::TComReferencePictureSet() 2768 2638 : m_numberOfPictures (0) … … 3423 3293 assert( m_depthToDisparityF != NULL ); 3424 3294 3425 #if CAM_HLS_F0136_F0045_F00823426 3295 TComVPS* vps = getVPS(); 3427 #else 3428 TComSPS* sps = getSPS(); 3429 #endif 3430 3431 #if CAM_HLS_F0136_F0045_F0082 3296 3432 3297 Int log2Div = g_bitDepthY - 1 + vps->getCamParPrecision(); 3433 3298 Int viewIndex = getViewIndex(); … … 3439 3304 Int* invCodScale = camParaSH ? m_aaiCodedScale [ 1 ] : vps->getInvCodedScale ( viewIndex ); 3440 3305 Int* invCodOffset = camParaSH ? m_aaiCodedOffset[ 1 ] : vps->getInvCodedOffset( viewIndex ); 3441 #else3442 Int log2Div = g_bitDepthY - 1 + sps->getCamParPrecision();3443 3444 Bool camParaSH = m_pcSPS->hasCamParInSliceHeader();3445 3446 Int* codScale = camParaSH ? m_aaiCodedScale [ 0 ] : sps->getCodedScale ();3447 Int* codOffset = camParaSH ? m_aaiCodedOffset[ 0 ] : sps->getCodedOffset ();3448 Int* invCodScale = camParaSH ? m_aaiCodedScale [ 1 ] : sps->getInvCodedScale ();3449 Int* invCodOffset = camParaSH ? m_aaiCodedOffset[ 1 ] : sps->getInvCodedOffset();3450 #endif3451 3306 3452 3307 for (Int i = 0; i <= ( getViewIndex() - 1); i++) -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComSlice.h
r766 r767 791 791 Bool m_vpsDepthModesFlag [MAX_NUM_LAYERS ]; 792 792 793 #if H_3D_DIM_DLT794 #if !DLT_DIFF_CODING_IN_PPS795 Bool m_bUseDLTFlag [MAX_NUM_LAYERS ];796 797 Int m_iBitsPerDepthValue [MAX_NUM_LAYERS ];798 Int m_iNumDepthmapValues [MAX_NUM_LAYERS ];799 Int* m_iDepthValue2Idx [MAX_NUM_LAYERS ];800 Int* m_iIdx2DepthValue [MAX_NUM_LAYERS ];801 #endif802 #endif803 804 793 #if H_3D 805 #if CAM_HLS_F0136_F0045_F0082806 794 UInt m_uiCamParPrecision; 807 795 Bool* m_bCamParInSliceHeader; … … 809 797 Int ***m_aaaiCodedScale ; 810 798 Int ***m_aaaiCodedOffset; 811 #endif812 799 Bool m_ivMvScalingFlag; 813 800 #endif … … 1048 1035 Void setARPStepNum( Int layerIdInVps, UInt val ) { m_uiARPStepNum[layerIdInVps] = val; } 1049 1036 #endif 1050 #if CAM_HLS_F0136_F0045_F0082 1037 1051 1038 Void createCamPars(Int iNumViews); 1052 1039 Void deleteCamPars(); … … 1060 1047 Int* getInvCodedScale ( Int viewIndex ) { return m_aaaiCodedScale [viewIndex][1]; } 1061 1048 Int* getInvCodedOffset ( Int viewIndex ) { return m_aaaiCodedOffset[viewIndex][1]; } 1062 #endif1063 1049 1064 1050 #if H_3D_IV_MERGE … … 1081 1067 Bool getVpsDepthModesFlag( Int layerIdInVps ) { return m_vpsDepthModesFlag[ layerIdInVps ]; } 1082 1068 1083 #if H_3D_DIM_DLT1084 #if !DLT_DIFF_CODING_IN_PPS1085 Bool getUseDLTFlag ( Int layerIdInVps ) { return m_bUseDLTFlag[ layerIdInVps ]; }1086 Void setUseDLTFlag ( Int layerIdInVps, Bool b ) { m_bUseDLTFlag[ layerIdInVps ] = b; }1087 1088 Int getBitsPerDepthValue( Int layerIdInVps ) { return getUseDLTFlag(layerIdInVps)?m_iBitsPerDepthValue[layerIdInVps]:g_bitDepthY; }1089 Int getNumDepthValues( Int layerIdInVps ) { return getUseDLTFlag(layerIdInVps)?m_iNumDepthmapValues[layerIdInVps]:((1 << g_bitDepthY)-1); }1090 Int depthValue2idx( Int layerIdInVps, Pel value ) { return getUseDLTFlag(layerIdInVps)?m_iDepthValue2Idx[layerIdInVps][value]:value; }1091 Pel idx2DepthValue( Int layerIdInVps, UInt uiIdx ) { return getUseDLTFlag(layerIdInVps)?m_iIdx2DepthValue[layerIdInVps][uiIdx]:uiIdx; }1092 Void setDepthLUTs( Int layerIdInVps, Int* idx2DepthValue = NULL, Int iNumDepthValues = 0 );1093 #endif1094 #endif1095 1096 1069 Bool getIvMvScalingFlag ( ) { return m_ivMvScalingFlag; } 1097 1070 Void setIvMvScalingFlag ( Bool b ) { m_ivMvScalingFlag = b; } … … 1108 1081 }; 1109 1082 1110 #if DLT_DIFF_CODING_IN_PPS1083 #if H_3D 1111 1084 class TComDLT 1112 1085 { … … 1684 1657 Bool getUsePC () { return m_bUsePC; } 1685 1658 #endif 1686 #if H_3D1687 #if !CAM_HLS_F0136_F0045_F00821688 Void initCamParaSPS ( UInt uiViewIndex, UInt uiCamParPrecision = 0, Bool bCamParSlice = false, Int** aaiScale = 0, Int** aaiOffset = 0 );1689 UInt getCamParPrecision () { return m_uiCamParPrecision; }1690 Bool hasCamParInSliceHeader() { return m_bCamParInSliceHeader; }1691 Void setHasCamParInSliceHeader( Bool b ) { m_bCamParInSliceHeader = b; }1692 Int* getCodedScale () { return m_aaiCodedScale [0]; }1693 Int* getCodedOffset () { return m_aaiCodedOffset[0]; }1694 Int* getInvCodedScale () { return m_aaiCodedScale [1]; }1695 Int* getInvCodedOffset () { return m_aaiCodedOffset[1]; }1696 #endif1697 #endif1698 1659 #if H_MV 1699 1660 Int getLayerId () { return m_layerId; } … … 1801 1762 #endif 1802 1763 1803 #if DLT_DIFF_CODING_IN_PPS1764 #if H_3D 1804 1765 TComDLT* m_pcDLT; 1805 1766 #endif … … 1830 1791 UInt getMinCuDQPSize () { return m_uiMinCuDQPSize; } 1831 1792 1832 #if DLT_DIFF_CODING_IN_PPS1793 #if H_3D 1833 1794 Void setDLT ( TComDLT* pcDLT ) { m_pcDLT = pcDLT; } 1834 1795 TComDLT* getDLT () { return m_pcDLT; } -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TypeDef.h
r766 r767 145 145 // ETRIKHU_MERGE_REUSE_F0093 QC_DEPTH_IV_MRG_F0125, JCT3V-F0125: Depth oriented Inter-view MV candidate 146 146 // EC_MPI_ENABLING_MERGE_F0150, MPI flag in VPS and enabling in Merge mode 147 148 149 150 151 147 #define H_3D_TMVP 1 // QC_TMVP_C0047 152 148 // Sony_M23639 … … 195 191 #endif 196 192 197 #define CAM_HLS_F0136_F0045_F0082 1 // JCT3V-F0136/F0045: view order index based camera parameter signaling198 // JCT3V-F0082: the cp_in_slice_segment_layer_flag to be view specific and used as a condition of the presence of slice header level camera parameters199 #define CAM_HLS_F0044 1 // JCT3V-F0044: move camera parameter from slice header extension to slice header200 201 202 193 // Rate Control 203 194 #define KWU_FIX_URQ 1 … … 242 233 243 234 #if H_3D_DIM_DLT 244 #define DLT_DIFF_CODING_IN_PPS 1 // moving DLT syntax elements from VPS to PPS and differential coding of DLT values 245 // JCT3V-F0131, JCT3V-F0139 246 #if DLT_DIFF_CODING_IN_PPS 247 #define Log2( n ) ( log((double)n) / log(2.0) ) 248 #endif 235 #define Log2( n ) ( log((double)n) / log(2.0) ) // Ed.(GT): This is very very bad and should be fixed to used integer arithmetics ( see gCeilLog2 ) moreover it should not be defined in the tool macro section! 249 236 #define H_3D_DELTA_DLT 1 250 237 #endif -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r766 r767 215 215 } 216 216 217 #if DLT_DIFF_CODING_IN_PPS217 #if H_3D 218 218 Void TDecCavlc::parsePPS(TComPPS* pcPPS, TComVPS* pcVPS ) 219 219 #else … … 368 368 if (uiCode) 369 369 { 370 #if DLT_DIFF_CODING_IN_PPS370 #if H_3D 371 371 parsePPSExtension( pcPPS, pcVPS ); 372 372 READ_FLAG( uiCode, "pps_extension2_flag"); … … 378 378 READ_FLAG( uiCode, "pps_extension_data_flag"); 379 379 } 380 #if DLT_DIFF_CODING_IN_PPS381 } 382 #endif 383 } 384 } 385 386 #if DLT_DIFF_CODING_IN_PPS380 #if H_3D 381 } 382 #endif 383 } 384 } 385 386 #if H_3D 387 387 Void TDecCavlc::parsePPSExtension( TComPPS* pcPPS, TComVPS* pcVPS ) 388 388 { 389 //Ed.(GT): pcVPS should not be used here. Needs to be fixed. 389 390 UInt uiCode = 0; 390 391 TComDLT* pcDLT = new TComDLT; … … 1005 1006 } 1006 1007 #endif 1007 1008 #if !CAM_HLS_F0136_F0045_F00821009 UInt uiCamParPrecision = 0;1010 Bool bCamParSlice = false;1011 if ( !depthFlag )1012 {1013 READ_UVLC( uiCamParPrecision, "cp_precision" );1014 READ_FLAG( uiCode, "cp_in_slice_header_flag" ); bCamParSlice = ( uiCode == 1 );1015 if( !bCamParSlice )1016 {1017 for( UInt uiBaseIndex = 0; uiBaseIndex < viewIndex; uiBaseIndex++ )1018 {1019 Int iCode;1020 READ_SVLC( iCode, "cp_scale" ); m_aaiTempScale [ uiBaseIndex ][ viewIndex ] = iCode;1021 READ_SVLC( iCode, "cp_off" ); m_aaiTempOffset [ uiBaseIndex ][ viewIndex ] = iCode;1022 READ_SVLC( iCode, "cp_inv_scale_plus_scale" ); m_aaiTempScale [ viewIndex ][ uiBaseIndex ] = iCode - m_aaiTempScale [ uiBaseIndex ][ viewIndex ];1023 READ_SVLC( iCode, "cp_inv_off_plus_off" ); m_aaiTempOffset [ viewIndex ][ uiBaseIndex ] = iCode - m_aaiTempOffset[ uiBaseIndex ][ viewIndex ];1024 }1025 }1026 }1027 pcSPS->initCamParaSPS( viewIndex, uiCamParPrecision, bCamParSlice, m_aaiTempScale, m_aaiTempOffset );1028 #endif1029 1008 } 1030 1009 #endif … … 1132 1111 #if H_3D 1133 1112 m_pcBitstream->readOutTrailingBits(); 1134 #if CAM_HLS_F0136_F0045_F00821135 1113 pcVPS->createCamPars(pcVPS->getNumViews()); 1136 #endif1137 1114 parseVPSExtension2( pcVPS ); 1138 1115 READ_FLAG( uiCode, "vps_extension3_flag" ); … … 1742 1719 READ_FLAG( uiCode, "vps_depth_modes_flag[i]" ); pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false ); 1743 1720 // READ_FLAG( uiCode, "lim_qt_pred_flag[i]"); pcVPS->setLimQtPreFlag ( i, uiCode == 1 ? true : false ); 1744 #if H_3D_DIM_DLT1745 #if !DLT_DIFF_CODING_IN_PPS1746 if( pcVPS->getVpsDepthModesFlag( i ) )1747 {1748 READ_FLAG( uiCode, "dlt_flag[i]" ); pcVPS->setUseDLTFlag( i, uiCode == 1 ? true : false );1749 }1750 if( pcVPS->getUseDLTFlag( i ) )1751 {1752 // decode mapping1753 UInt uiNumDepthValues;1754 // parse number of values in DLT1755 READ_UVLC(uiNumDepthValues, "num_depth_values_in_dlt[i]");1756 1757 // parse actual DLT values1758 Int* aiIdx2DepthValue = (Int*) calloc(uiNumDepthValues, sizeof(Int));1759 for(Int d=0; d<uiNumDepthValues; d++)1760 {1761 READ_UVLC(uiCode, "dlt_depth_value[i][d]");1762 aiIdx2DepthValue[d] = (Int)uiCode;1763 }1764 1765 pcVPS->setDepthLUTs(i, aiIdx2DepthValue, uiNumDepthValues);1766 1767 // clean memory1768 free(aiIdx2DepthValue);1769 }1770 #endif1771 #endif1772 1721 #if H_3D_INTER_SDC 1773 1722 READ_FLAG( uiCode, "depth_inter_SDC_flag" ); pcVPS->setInterSDCFlag( i, uiCode ? true : false ); … … 1776 1725 } 1777 1726 } 1778 #if CAM_HLS_F0136_F0045_F0082 1727 1779 1728 UInt uiCamParPrecision = 0; 1780 1729 Bool bCamParSlice = false; … … 1802 1751 } 1803 1752 } 1804 #endif 1753 1805 1754 READ_FLAG( uiCode, "iv_mv_scaling_flag"); pcVPS->setIvMvScalingFlag( uiCode == 1 ? true : false ); 1806 1755 } … … 2462 2411 } 2463 2412 2464 #if CAM_HLS_F0044 2465 #if CAM_HLS_F0136_F0045_F0082 2413 #if H_3D 2466 2414 if( rpcSlice->getVPS()->hasCamParInSliceHeader( rpcSlice->getViewIndex() ) && !rpcSlice->getIsDepth() ) 2467 #else2468 if( rpcSlice->getSPS()->hasCamParInSliceHeader() )2469 #endif2470 2415 { 2471 2416 UInt uiViewIndex = rpcSlice->getViewIndex(); … … 2479 2424 rpcSlice->setCamparaSlice( m_aaiTempScale, m_aaiTempOffset ); 2480 2425 } 2481 2482 2426 #endif 2483 2427 … … 2485 2429 { 2486 2430 READ_UVLC(uiCode,"slice_header_extension_length"); 2487 #if H_3D && !CAM_HLS_F0044 2488 #if CAM_HLS_F0136_F0045_F0082 2489 if( rpcSlice->getVPS()->hasCamParInSliceHeader( rpcSlice->getViewIndex() ) && !rpcSlice->getIsDepth() ) 2490 #else 2491 if( rpcSlice->getSPS()->hasCamParInSliceHeader() ) 2492 #endif 2493 { 2494 UInt uiViewIndex = rpcSlice->getViewIndex(); 2495 for( UInt uiBaseIndex = 0; uiBaseIndex < uiViewIndex; uiBaseIndex++ ) 2496 { 2497 READ_SVLC( iCode, "cp_scale" ); m_aaiTempScale [ uiBaseIndex ][ uiViewIndex ] = iCode; 2498 READ_SVLC( iCode, "cp_off" ); m_aaiTempOffset[ uiBaseIndex ][ uiViewIndex ] = iCode; 2499 READ_SVLC( iCode, "cp_inv_scale_plus_scale" ); m_aaiTempScale [ uiViewIndex ][ uiBaseIndex ] = iCode - m_aaiTempScale [ uiBaseIndex ][ uiViewIndex ]; 2500 READ_SVLC( iCode, "cp_inv_off_plus_off" ); m_aaiTempOffset[ uiViewIndex ][ uiBaseIndex ] = iCode - m_aaiTempOffset[ uiBaseIndex ][ uiViewIndex ]; 2501 } 2502 rpcSlice->setCamparaSlice( m_aaiTempScale, m_aaiTempOffset ); 2503 } 2504 2505 READ_FLAG(uiCode,"slice_segment_header_extension2_flag"); 2506 if ( uiCode ) 2507 { 2508 READ_UVLC(uiCode,"slice_header_extension2_length"); 2509 for(Int i=0; i<uiCode; i++) 2510 { 2511 UInt ignore; 2512 READ_CODE(8,ignore,"slice_header_extension2_data_byte"); 2513 } 2514 } 2515 } 2516 #else 2431 2517 2432 for(Int i=0; i<uiCode; i++) 2518 2433 { … … 2521 2436 } 2522 2437 } 2523 #endif 2438 2524 2439 m_pcBitstream->readByteAlignment(); 2525 2440 -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecCAVLC.h
r766 r767 96 96 #endif 97 97 98 #if H_3D && DLT_DIFF_CODING_IN_PPS98 #if H_3D 99 99 Void parsePPS ( TComPPS* pcPPS, TComVPS* pcVPS ); 100 100 Void parsePPSExtension ( TComPPS* pcPPS, TComVPS* pcVPS ); -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecCu.cpp
r765 r767 754 754 { 755 755 #if H_3D 756 #if DLT_DIFF_CODING_IN_PPS757 756 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getPPS()->getDLT()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 758 #else 759 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 760 #endif 761 { 762 #if DLT_DIFF_CODING_IN_PPS 763 pReco [ uiX ] = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) ); 764 #else 765 pReco [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) ); 766 #endif 767 } 768 else 769 { 770 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 771 } 757 { 758 pReco [ uiX ] = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) ); 759 } 760 else 761 { 762 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 763 } 772 764 #endif 773 765 pRecIPred[ uiX ] = pReco[ uiX ]; … … 979 971 { 980 972 #if H_3D_DIM_DLT 981 #if DLT_DIFF_CODING_IN_PPS982 973 Pel pPredIdx = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] ); 983 974 Pel pResiIdx = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx); 984 975 Pel pRecoValue = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pPredIdx + pResiIdx ); 985 #else986 Pel pPredIdx = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] );987 Pel pResiIdx = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx);988 Pel pRecoValue = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pPredIdx + pResiIdx );989 #endif990 976 991 977 apDCResiValues[uiSegment] = pRecoValue - apDCPredValues[uiSegment]; -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecEntropy.h
r758 r767 71 71 virtual Void parseSPS ( TComSPS* pcSPS ) = 0; 72 72 #endif 73 #if DLT_DIFF_CODING_IN_PPS73 #if H_3D 74 74 virtual Void parsePPS ( TComPPS* pcPPS, TComVPS* pcVPS ) = 0; 75 75 #else … … 152 152 Void decodeSPS ( TComSPS* pcSPS ) { m_pcEntropyDecoderIf->parseSPS(pcSPS); } 153 153 #endif 154 #if DLT_DIFF_CODING_IN_PPS154 #if H_3D 155 155 Void decodePPS ( TComPPS* pcPPS, TComVPS* pcVPS ) { m_pcEntropyDecoderIf->parsePPS(pcPPS, pcVPS); } 156 156 #else -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecSbac.cpp
r764 r767 442 442 443 443 #if H_3D_DIM_DLT 444 #if DLT_DIFF_CODING_IN_PPS445 444 UInt uiMaxResidualBits = pcCU->getSlice()->getPPS()->getDLT()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() ); 446 #else447 UInt uiMaxResidualBits = pcCU->getSlice()->getVPS()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() );448 #endif449 445 #else 450 446 UInt uiMaxResidualBits = g_bitDepthY; … … 470 466 UInt uiCount = 0; 471 467 #if H_3D_DIM_DLT 472 #if DLT_DIFF_CODING_IN_PPS473 468 UInt uiNumDepthValues = pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ); 474 #else475 UInt uiNumDepthValues = pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() );476 #endif477 469 #else 478 470 UInt uiNumDepthValues = ((1 << g_bitDepthY)-1); -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecSbac.h
r764 r767 81 81 Void parseSPS ( TComSPS* /*pcSPS*/ ) {} 82 82 #endif 83 #if DLT_DIFF_CODING_IN_PPS83 #if H_3D 84 84 Void parsePPS ( TComPPS* /*pcPPS*/, TComVPS* /*pcVPS*/ ) {} 85 85 #else -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecTop.cpp
r766 r767 228 228 m_uiMaxViewIndex = std::max( m_uiMaxViewIndex, uiViewIndex ); 229 229 m_aiViewId[ uiViewIndex ] = pcSlice->getViewId(); 230 #if CAM_HLS_F0136_F0045_F0082 230 231 231 if( uiViewIndex == 1 ) 232 232 { … … 239 239 AOF( m_bCamParsVaryOverTime == pcSlice->getVPS()->hasCamParInSliceHeader ( uiViewIndex ) ); 240 240 } 241 #else 242 if( uiViewIndex == 1 ) 243 { 244 m_uiCamParsCodedPrecision = pcSlice->getSPS()->getCamParPrecision (); 245 m_bCamParsVaryOverTime = pcSlice->getSPS()->hasCamParInSliceHeader (); 246 } 247 else if( uiViewIndex > 1 ) 248 { 249 AOF( m_uiCamParsCodedPrecision == pcSlice->getSPS()->getCamParPrecision () ); 250 AOF( m_bCamParsVaryOverTime == pcSlice->getSPS()->hasCamParInSliceHeader () ); 251 } 252 #endif 241 253 242 for( UInt uiBaseIndex = 0; uiBaseIndex < uiViewIndex; uiBaseIndex++ ) 254 243 { … … 264 253 else 265 254 { 266 #if CAM_HLS_F0136_F0045_F0082267 255 m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ] = pcSlice->getVPS()->getCodedScale (uiViewIndex) [ uiBaseIndex ]; 268 256 m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ] = pcSlice->getVPS()->getCodedOffset (uiViewIndex) [ uiBaseIndex ]; 269 257 m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ] = pcSlice->getVPS()->getInvCodedScale (uiViewIndex) [ uiBaseIndex ]; 270 258 m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ] = pcSlice->getVPS()->getInvCodedOffset(uiViewIndex) [ uiBaseIndex ]; 271 #else272 m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ] = pcSlice->getSPS()->getCodedScale () [ uiBaseIndex ];273 m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ] = pcSlice->getSPS()->getCodedOffset () [ uiBaseIndex ];274 m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ] = pcSlice->getSPS()->getInvCodedScale () [ uiBaseIndex ];275 m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ] = pcSlice->getSPS()->getInvCodedOffset() [ uiBaseIndex ];276 #endif277 259 xInitLUTs( uiBaseIndex, uiViewIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT ); 278 260 xInitLUTs( uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiViewIndex ][ uiBaseIndex ], m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT ); … … 306 288 CamParsCollector::copyCamParamForSlice( TComSlice* pcSlice ) 307 289 { 308 #if !CAM_HLS_F0136_F0045_F0082309 UInt uiViewIndex = pcSlice->getViewIndex();310 311 pcSlice->getSPS()->initCamParaSPS( uiViewIndex, m_uiCamParsCodedPrecision, m_bCamParsVaryOverTime, m_aaiCodedScale, m_aaiCodedOffset );312 #endif313 290 if( m_bCamParsVaryOverTime ) 314 291 { … … 1111 1088 m_pcCamParsCollector->setSlice( pcSlice ); 1112 1089 } 1113 #if H_3D_IV_MERGE1114 if( pcSlice->getIsDepth() )1115 {1116 #if !CAM_HLS_F0136_F0045_F00821117 pcSlice->getSPS()->setHasCamParInSliceHeader( false );1118 #endif1119 }1120 #endif1121 1090 #endif 1122 1091 m_bFirstSliceInPicture = false; … … 1158 1127 pps->setLayerId( getLayerId() ); 1159 1128 #endif 1160 #if DLT_DIFF_CODING_IN_PPS1129 #if H_3D 1161 1130 // Assuming that all PPS indirectly refer to the same VPS via different SPS 1162 1131 // There is no parsing dependency in decoding DLT in PPS. … … 1165 1134 // Step 1) decoding DLT tables based on the number of depth layers, and 1166 1135 // Step 2) mapping DLT tables to the depth layers 1167 // as descri pted in the 3D-HEVC WD.1136 // as described in the 3D-HEVC WD. 1168 1137 TComVPS* vps = m_parameterSetManagerDecoder.getPrefetchedVPS( 0 ); 1169 1138 m_cEntropyDecoder.decodePPS( pps, vps ); -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp
r766 r767 282 282 WRITE_FLAG( pcPPS->getSliceHeaderExtensionPresentFlag() ? 1 : 0, "slice_segment_header_extension_present_flag"); 283 283 284 #if ! DLT_DIFF_CODING_IN_PPS284 #if !H_3D 285 285 WRITE_FLAG( 0, "pps_extension_flag" ); 286 286 #else … … 291 291 } 292 292 293 #if DLT_DIFF_CODING_IN_PPS293 #if H_3D 294 294 Void TEncCavlc::codePPSExtension ( TComPPS* pcPPS ) 295 295 { … … 300 300 // Step 1) decoding DLT tables based on the number of depth layers, and 301 301 // Step 2) mapping DLT tables to the depth layers 302 // as descri pted in the 3D-HEVC WD.302 // as described in the 3D-HEVC WD. 303 303 TComVPS* pcVPS = pcPPS->getSPS()->getVPS(); 304 304 … … 857 857 } 858 858 #endif 859 #if !CAM_HLS_F0136_F0045_F0082860 if (!depthFlag )861 {862 WRITE_UVLC( pcSPS->getCamParPrecision(), "cp_precision" );863 WRITE_FLAG( pcSPS->hasCamParInSliceHeader() ? 1 : 0, "cp_in_slice_header_flag" );864 if( !pcSPS->hasCamParInSliceHeader() )865 {866 for( UInt uiIndex = 0; uiIndex < viewIndex; uiIndex++ )867 {868 WRITE_SVLC( pcSPS->getCodedScale ()[ uiIndex ], "cp_scale" );869 WRITE_SVLC( pcSPS->getCodedOffset ()[ uiIndex ], "cp_off" );870 WRITE_SVLC( pcSPS->getInvCodedScale ()[ uiIndex ] + pcSPS->getCodedScale ()[ uiIndex ], "cp_inv_scale_plus_scale" );871 WRITE_SVLC( pcSPS->getInvCodedOffset()[ uiIndex ] + pcSPS->getCodedOffset()[ uiIndex ], "cp_inv_off_plus_off" );872 }873 }874 }875 #endif876 859 } 877 860 #endif … … 1545 1528 WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 , "vps_depth_modes_flag[i]" ); 1546 1529 //WRITE_FLAG( pcVPS->getLimQtPredFlag ( i ) ? 1 : 0 , "lim_qt_pred_flag[i]" ); 1547 #if H_3D_DIM_DLT1548 #if !DLT_DIFF_CODING_IN_PPS1549 if( pcVPS->getVpsDepthModesFlag( i ) )1550 {1551 WRITE_FLAG( pcVPS->getUseDLTFlag( i ) ? 1 : 0, "dlt_flag[i]" );1552 }1553 if( pcVPS->getUseDLTFlag( i ) )1554 {1555 // code mapping1556 WRITE_UVLC(pcVPS->getNumDepthValues(i), "num_depth_values_in_dlt[i]");1557 for(Int d=0; d<pcVPS->getNumDepthValues(i); d++)1558 {1559 WRITE_UVLC( pcVPS->idx2DepthValue(i, d), "dlt_depth_value[i][d]" );1560 }1561 }1562 #endif1563 #endif1564 1530 #if H_3D_INTER_SDC 1565 1531 WRITE_FLAG( pcVPS->getInterSDCFlag( i ) ? 1 : 0, "depth_inter_SDC_flag" ); … … 1568 1534 } 1569 1535 } 1570 #if CAM_HLS_F0136_F0045_F00821571 1536 WRITE_UVLC( pcVPS->getCamParPrecision(), "cp_precision" ); 1572 1537 for (UInt viewIndex=0; viewIndex<pcVPS->getNumViews(); viewIndex++) … … 1588 1553 } 1589 1554 } 1590 #endif1591 1555 #if H_3D_TMVP 1592 1556 WRITE_FLAG( pcVPS->getIvMvScalingFlag( ) ? 1 : 0 , "iv_mv_scaling_flag" ); … … 2036 2000 } 2037 2001 } 2038 #if CAM_HLS_F0044 2039 #if CAM_HLS_F0136_F0045_F0082 2002 #if H_3D 2040 2003 if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && !pcSlice->getIsDepth() ) 2041 #else2042 if( pcSlice->getSPS()->hasCamParInSliceHeader() && !pcSlice->getIsDepth() )2043 #endif2044 2004 { 2045 2005 for( UInt uiId = 0; uiId < pcSlice->getViewIndex(); uiId++ ) … … 2059 2019 #endif 2060 2020 { 2061 #if !H_3D || CAM_HLS_F00442062 2021 WRITE_UVLC(0,"slice_header_extension_length"); 2063 #else2064 WRITE_UVLC(0,"slice_header_extension_length"); //<- this element needs to be set to the correct value!!2065 #if CAM_HLS_F0136_F0045_F00822066 if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && !pcSlice->getIsDepth() )2067 #else2068 if( pcSlice->getSPS()->hasCamParInSliceHeader() && !pcSlice->getIsDepth() )2069 #endif2070 {2071 for( UInt uiId = 0; uiId < pcSlice->getViewIndex(); uiId++ )2072 {2073 WRITE_SVLC( pcSlice->getCodedScale ()[ uiId ], "cp_scale" );2074 WRITE_SVLC( pcSlice->getCodedOffset ()[ uiId ], "cp_off" );2075 WRITE_SVLC( pcSlice->getInvCodedScale ()[ uiId ] + pcSlice->getCodedScale ()[ uiId ], "cp_inv_scale_plus_scale" );2076 WRITE_SVLC( pcSlice->getInvCodedOffset()[ uiId ] + pcSlice->getCodedOffset()[ uiId ], "cp_inv_off_plus_off" );2077 }2078 }2079 2080 Bool sliceSegmentHeaderExtension2Flag = false;2081 WRITE_FLAG( sliceSegmentHeaderExtension2Flag ? 1 : 0 , "slice_segment_header_extension2_flag" );2082 if ( sliceSegmentHeaderExtension2Flag )2083 {2084 WRITE_UVLC(0,"slice_header_extension2_length");2085 }2086 #endif2087 2022 } 2088 2023 } -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncCavlc.h
r766 r767 107 107 Void codePPS ( TComPPS* pcPPS ); 108 108 109 #if DLT_DIFF_CODING_IN_PPS109 #if H_3D 110 110 Void codePPSExtension ( TComPPS* pcPPS ); 111 111 #endif -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncCfg.h
r765 r767 331 331 #endif 332 332 333 #if DLT_DIFF_CODING_IN_PPS333 #if H_3D 334 334 TComDLT* m_cDLT; 335 335 #endif … … 870 870 #endif 871 871 872 #if DLT_DIFF_CODING_IN_PPS872 #if H_3D 873 873 Void setDLT ( TComDLT *p ) { m_cDLT = p; } 874 874 TComDLT* getDLT () { return m_cDLT; } -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncSbac.cpp
r764 r767 538 538 539 539 #if H_3D_DIM_DLT 540 #if DLT_DIFF_CODING_IN_PPS541 540 UInt uiMaxResidualBits = pcCU->getSlice()->getPPS()->getDLT()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() ); 542 #else543 UInt uiMaxResidualBits = pcCU->getSlice()->getVPS()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() );544 #endif545 541 #else 546 542 UInt uiMaxResidualBits = g_bitDepthY; … … 561 557 DTRACE_CU("sdc_residual_sign_flag[i]", uiSign) 562 558 #endif 563 564 #if H_3D_DIM_DLT 565 #if DLT_DIFF_CODING_IN_PPS 566 UInt uiNumDepthValues = pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ); 567 #else 568 UInt uiNumDepthValues = pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ); 569 #endif 559 #if H_3D_DIM_DLT 560 UInt uiNumDepthValues = pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ); 570 561 #else 571 562 UInt uiNumDepthValues = ((1 << g_bitDepthY)-1); 572 563 #endif 564 573 565 assert(uiAbsIdx <= uiNumDepthValues); 574 566 -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
r765 r767 1935 1935 // get residual (idx) 1936 1936 #if H_3D_DIM_DLT 1937 #if DLT_DIFF_CODING_IN_PPS1938 1937 Pel pResidualIdx = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pDCRec ) - pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] ); 1939 #else1940 Pel pResidualIdx = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pDCRec ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] );1941 #endif1942 1938 #else 1943 1939 Pel pResidualIdx = pDCRec - apDCPredValues[uiSegment]; … … 1953 1949 { 1954 1950 #if H_3D_DIM_DLT 1955 #if DLT_DIFF_CODING_IN_PPS1956 1951 Pel pPredIdx = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] ); 1957 1952 Pel pResiIdx = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx); 1958 1953 Pel pRecoValue = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pPredIdx + pResiIdx ); 1959 #else1960 Pel pPredIdx = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] );1961 Pel pResiIdx = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx);1962 Pel pRecoValue = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pPredIdx + pResiIdx );1963 #endif1964 1954 1965 1955 apDCResiValues[uiSegment] = pRecoValue - apDCPredValues[uiSegment]; … … 7295 7285 7296 7286 #if H_3D_DIM_DLT 7297 #if DLT_DIFF_CODING_IN_PPS7298 7287 rDeltaDC1 = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), ClipY(predDC1 + rDeltaDC1) ) - pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), predDC1 ); 7299 7288 rDeltaDC2 = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), ClipY(predDC2 + rDeltaDC2) ) - pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), predDC2 ); 7300 #else7301 rDeltaDC1 = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), ClipY(predDC1 + rDeltaDC1) ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), predDC1 );7302 rDeltaDC2 = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), ClipY(predDC2 + rDeltaDC2) ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), predDC2 );7303 #endif7304 7289 #endif 7305 7290 } -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncTop.cpp
r766 r767 299 299 { 300 300 // initialize SPS 301 #if DLT_DIFF_CODING_IN_PPS301 #if H_3D 302 302 // Assuming that all PPS indirectly refer to the same VPS via different SPS 303 303 m_cSPS.setVPS(m_cVPS); … … 843 843 pcVUI->setLog2MaxMvLengthVertical(getLog2MaxMvLengthVertical()); 844 844 } 845 #if H_3D846 #if !CAM_HLS_F0136_F0045_F0082847 {848 m_cSPS.initCamParaSPS ( m_viewIndex, m_uiCamParPrecision, m_bCamParInSliceHeader, m_aaiCodedScale, m_aaiCodedOffset );849 }850 #endif851 #endif852 845 } 853 846 … … 864 857 #endif 865 858 866 #if DLT_DIFF_CODING_IN_PPS859 #if H_3D 867 860 m_cPPS.setDLT( getDLT() ); 868 861 #endif … … 995 988 } 996 989 #if H_3D 997 #if CAM_HLS_F0136_F0045_F0082998 990 if( m_cVPS->hasCamParInSliceHeader( getViewIndex() ) ) 999 #else1000 if( m_cSPS.hasCamParInSliceHeader() )1001 #endif1002 991 { 1003 992 m_cPPS.setSliceHeaderExtensionPresentFlag( true );
Note: See TracChangeset for help on using the changeset viewer.