Changeset 139 in 3DVCSoftware for branches/HTM-4.0-Nokia/source/App/TAppEncoder
- Timestamp:
- 24 Sep 2012, 14:08:01 (13 years ago)
- Location:
- branches/HTM-4.0-Nokia/source/App/TAppEncoder
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-4.0-Nokia/source/App/TAppEncoder/TAppEncCfg.h
r102 r139 88 88 Int m_iNumberOfViews; ///< number Views to Encode 89 89 Bool m_bUsingDepthMaps; 90 91 #if FLEX_CODING_ORDER 92 char* m_pchMVCJointCodingOrder; ///< texture-depth coding order 93 Bool m_b3DVFlexOrder; ///< flexible coding order flag 94 #endif 95 96 97 98 90 99 // coding structure 91 100 Int m_iIntraPeriod; ///< period of I-slice (random access period) -
branches/HTM-4.0-Nokia/source/App/TAppEncoder/TAppEncTop.cpp
r102 r139 369 369 for(Int iViewIdx=0; iViewIdx<m_iNumberOfViews; iViewIdx++) 370 370 { 371 #if FLEX_CODING_ORDER 372 // Detect whether depth comes before than texture for this view 373 Bool isDepthFirst = false; 374 if ( m_b3DVFlexOrder ) 375 { 376 for ( Int ii=1; ii<12; ii+=2 ) 377 { 378 Int iViewIdxCfg = (Int)(m_pchMVCJointCodingOrder[ii]-'0'); 379 if ( iViewIdxCfg == iViewIdx ) 380 { 381 if ( m_pchMVCJointCodingOrder[ii-1]=='D' ) // depth comes first for this view 382 { 383 isDepthFirst = true; 384 } 385 else 386 { 387 assert(m_pchMVCJointCodingOrder[ii-1]=='T'); 388 } 389 break; 390 } 391 } 392 } 393 #endif 371 394 m_depthFrameRcvd.push_back(0); 372 395 m_acTEncDepthTopList.push_back(new TEncTop); … … 634 657 m_acTEncDepthTopList[iViewIdx]->setUseDMM ( m_bUseDMM ); 635 658 #endif 659 660 #if FLEX_CODING_ORDER && HHI_DMM_PRED_TEX 661 m_acTEncDepthTopList[iViewIdx]->setUseDMM34( (m_b3DVFlexOrder && isDepthFirst) ? false : m_bUseDMM ); 662 #endif 663 664 636 665 #if HHI_MPI 637 m_acTEncDepthTopList[iViewIdx]->setUseMVI( m_bUseMVI ); 666 #if FLEX_CODING_ORDER 667 m_acTEncDepthTopList[iViewIdx]->setUseMVI( (m_b3DVFlexOrder && isDepthFirst) ? false : m_bUseMVI ); 668 #else 669 m_acTEncDepthTopList[iViewIdx]->setUseMVI( m_bUseMVI ); 670 #endif 671 // m_acTEncDepthTopList[iViewIdx]->setUseMVI( m_bUseMVI ); 638 672 #endif 639 673 } … … 920 954 m_cCameraData.update( iNextPoc ); 921 955 } 956 957 958 959 #if FLEX_CODING_ORDER 960 if (m_b3DVFlexOrder) 961 { 962 Int iNumDepthEncoded = 0; 963 iNumEncoded = 0; 964 Int i=0; 965 Int iViewIdx=0; 966 Int iNumberofDepthViews = m_bUsingDepthMaps?m_iNumberOfViews:0; 967 for (Int j=0; j < (m_iNumberOfViews+ iNumberofDepthViews); j++ ) 968 { 969 if (m_pchMVCJointCodingOrder[i]=='T') 970 { 971 972 i++; 973 assert(isdigit(m_pchMVCJointCodingOrder[i])); 974 iViewIdx = (Int)(m_pchMVCJointCodingOrder[i]-'0'); 975 976 m_acTEncTopList[iViewIdx]->encode( eos[iViewIdx], pcPicYuvOrg, *m_picYuvRec[iViewIdx], outputAccessUnits, iNumEncoded, gopId ); 977 xWriteOutput(bitstreamFile, iNumEncoded, outputAccessUnits, iViewIdx, false); 978 outputAccessUnits.clear(); 979 i++; 980 } 981 else if ( m_pchMVCJointCodingOrder[i] == 'D') 982 { 983 984 i++; 985 if( m_bUsingDepthMaps ) 986 { 987 assert(isdigit(m_pchMVCJointCodingOrder[i])); 988 iViewIdx = (Int)(m_pchMVCJointCodingOrder[i]-'0'); 989 #if SAIT_VSO_EST_A0033 990 if( m_bUseVSO && iNextPoc < m_iFrameToBeEncoded ) 991 { 992 m_cCameraData.xSetDispCoeff( iNextPoc, iViewIdx ); 993 m_acTEncDepthTopList[iViewIdx]->setDispCoeff( m_cCameraData.getDispCoeff() ); 994 } 995 #endif 996 m_acTEncDepthTopList[iViewIdx]->encode( depthEos[iViewIdx], pcDepthPicYuvOrg, *m_picYuvDepthRec[iViewIdx], outputAccessUnits, iNumDepthEncoded, gopId ); 997 xWriteOutput(bitstreamFile, iNumDepthEncoded, outputAccessUnits, iViewIdx, true); 998 outputAccessUnits.clear(); 999 i++; 1000 } 1001 } 1002 } 1003 } 1004 else 1005 { 1006 1007 #endif 1008 1009 //original code 1010 922 1011 for(Int iViewIdx=0; iViewIdx < m_iNumberOfViews; iViewIdx++ ) 923 1012 { … … 943 1032 } 944 1033 } 1034 1035 #if FLEX_CODING_ORDER 1036 } 1037 #endif 1038 1039 1040 1041 945 1042 #if HHI_INTERVIEW_SKIP || HHI_INTER_VIEW_MOTION_PRED || HHI_INTER_VIEW_RESIDUAL_PRED 946 1043 for( Int iViewIdx = 0; iViewIdx < m_iNumberOfViews; iViewIdx++ )
Note: See TracChangeset for help on using the changeset viewer.