Changeset 34 in 3DVCSoftware
- Timestamp:
- 18 Mar 2012, 10:42:07 (13 years ago)
- Location:
- branches/0.3-nokia
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/0.3-nokia/CommonTestConditionsCfgs/baseCfg_2view+depth.cfg
r18 r34 15 15 16 16 BitstreamFile : stream.bit # bitstream file 17 18 3DVFlexOrder : 0 19 3DVCodingOrder : T0D0D1D2T1T2 17 20 18 21 -
branches/0.3-nokia/CommonTestConditionsCfgs/baseCfg_3view+depth.cfg
r18 r34 1 2 1 3 2 #========== file i/o ========== … … 20 19 BitstreamFile : stream.bit # bitstream file 21 20 21 3DVFlexOrder : 0 22 3DVCodingOrder : T0D0D1D2T1T2 22 23 23 24 #========== general coding parameters ========== -
branches/0.3-nokia/source/App/TAppDecoder/TAppDecTop.cpp
r21 r34 126 126 NalUnitType eNalUnitType; 127 127 128 #if FLEX_CODING_ORDER 129 Int iDepthViewIdx = 0; 130 Bool bCountDepthViewIdx = false; // a flag which avoid repeating assign a value to iDepthViewIdx 131 Bool bNewPictureType =true; 132 Bool bFirstDepth = false; 133 #endif 128 134 129 135 while ( !bEos ) … … 136 142 if( bIsDepth ) 137 143 { 144 #if FLEX_CODING_ORDER 145 if (!bFirstSliceDecoded) m_acTDecDepthTopList[iDepthViewIdx]->decode( bEos, pcBitstream, uiPOC, pcListPic, eNalUnitType, cComSPS, m_iSkipFrame, m_aiDepthPOCLastDisplayList[iDepthViewIdx] ,bNewPictureType); 146 m_acTDecDepthTopList[iDepthViewIdx]->executeDeblockAndAlf( bEos, pcBitstream, uiPOC, pcListPic, m_iSkipFrame, m_aiDepthPOCLastDisplayList[iDepthViewIdx]); 147 148 #else 138 149 if (!bFirstSliceDecoded) m_acTDecDepthTopList[iViewIdx]->decode( bEos, pcBitstream, uiPOC, pcListPic, eNalUnitType, cComSPS, m_iSkipFrame, m_aiDepthPOCLastDisplayList[iViewIdx] ); 139 150 m_acTDecDepthTopList[iViewIdx]->executeDeblockAndAlf( bEos, pcBitstream, uiPOC, pcListPic, m_iSkipFrame, m_aiDepthPOCLastDisplayList[iViewIdx]); 151 #endif 140 152 } 141 153 else 142 154 { 155 #if FLEX_CODING_ORDER 156 if (!bFirstSliceDecoded) m_acTDecTopList[iViewIdx]->decode( bEos, pcBitstream, uiPOC, pcListPic, eNalUnitType, cComSPS, m_iSkipFrame, m_aiPOCLastDisplayList[iViewIdx], bNewPictureType); 157 #else 143 158 if (!bFirstSliceDecoded) m_acTDecTopList[iViewIdx]->decode( bEos, pcBitstream, uiPOC, pcListPic, eNalUnitType, cComSPS, m_iSkipFrame, m_aiPOCLastDisplayList[iViewIdx] ); 144 m_acTDecTopList[iViewIdx]->executeDeblockAndAlf( bEos, pcBitstream, uiPOC, pcListPic, m_iSkipFrame, m_aiPOCLastDisplayList[iViewIdx]); 159 #endif 160 m_acTDecTopList[iViewIdx]->executeDeblockAndAlf( bEos, pcBitstream, uiPOC, pcListPic, m_iSkipFrame, m_aiPOCLastDisplayList[iViewIdx]); 145 161 } 146 162 if( pcListPic ) … … 156 172 Bool bNewPicture; 157 173 if( bIsDepth ) 174 #if FLEX_CODING_ORDER 175 bNewPicture = m_acTDecDepthTopList[iDepthViewIdx]->decode( bEos, pcBitstream, uiPOC, pcListPic, eNalUnitType, cComSPS, m_iSkipFrame, m_aiDepthPOCLastDisplayList[iDepthViewIdx], bNewPictureType); 176 #else 158 177 bNewPicture = m_acTDecDepthTopList[iViewIdx]->decode( bEos, pcBitstream, uiPOC, pcListPic, eNalUnitType, cComSPS, m_iSkipFrame, m_aiDepthPOCLastDisplayList[iViewIdx] ); 178 #endif 159 179 else 180 #if FLEX_CODING_ORDER 181 bNewPicture = m_acTDecTopList[iViewIdx]->decode( bEos, pcBitstream, uiPOC, pcListPic, eNalUnitType, cComSPS, m_iSkipFrame, m_aiPOCLastDisplayList[iViewIdx], bNewPictureType ); 182 #else 160 183 bNewPicture = m_acTDecTopList[iViewIdx]->decode( bEos, pcBitstream, uiPOC, pcListPic, eNalUnitType, cComSPS, m_iSkipFrame, m_aiPOCLastDisplayList[iViewIdx] ); 184 #endif 161 185 bFirstSliceDecoded = true; 186 187 #if FLEX_CODING_ORDER 188 if (eNalUnitType == NAL_UNIT_SPS) 189 { 190 if( cComSPS.isDepth() && (m_bUsingDepth==false) ) // expected not using depth, but bitstream are using depth 191 { // know from sps 192 assert( cComSPS.getViewId() == 0 && iDepthViewIdx == 0 && !bIsDepth ); 193 startUsingDepth() ; 194 } 195 if (cComSPS.isDepth()) 196 { 197 if (cComSPS.getViewId() >= m_acTVideoIOYuvDepthReconFileList.size()) 198 { 199 assert( cComSPS.getViewId() == m_acTVideoIOYuvReconFileList.size() ); 200 increaseNumberOfViews(cComSPS.getViewId()+1); 201 } 202 203 m_acTDecDepthTopList[cComSPS.getViewId()]->setSPS(cComSPS); 204 } 205 else 206 { 207 if (cComSPS.getViewId() >= m_acTVideoIOYuvReconFileList.size()) 208 { 209 assert( cComSPS.getViewId() == m_acTVideoIOYuvReconFileList.size() ); 210 increaseNumberOfViews(cComSPS.getViewId()+1); 211 } 212 m_acTDecTopList[cComSPS.getViewId()]->setSPS(cComSPS); 213 } 214 bEos = m_cTVideoIOBitstreamFile.readBits( pcBitstream ); 215 assert( !bEos); 216 if( cComSPS.isDepth() ) 217 m_acTDecDepthTopList[cComSPS.getViewId()]->decode( bEos, pcBitstream, uiPOC, pcListPic, eNalUnitType, cComSPS, m_iSkipFrame, m_aiDepthPOCLastDisplayList[cComSPS.getViewId()], bNewPictureType); // decode PPS 218 else 219 m_acTDecTopList[cComSPS.getViewId()]->decode( bEos, pcBitstream, uiPOC, pcListPic, eNalUnitType, cComSPS, m_iSkipFrame, m_aiPOCLastDisplayList[cComSPS.getViewId()], bNewPictureType); // decode PPS 220 assert( eNalUnitType == NAL_UNIT_PPS ); 221 } 222 #else 162 223 163 224 if( eNalUnitType == NAL_UNIT_SPS ) … … 188 249 assert( eNalUnitType == NAL_UNIT_PPS ); 189 250 } 251 252 #endif 190 253 assert( eNalUnitType != NAL_UNIT_SEI ); // not yet supported for MVC 191 254 if (bNewPicture) 192 255 { 193 256 if( bIsDepth ) 257 #if FLEX_CODING_ORDER 258 m_acTDecDepthTopList[iDepthViewIdx]->executeDeblockAndAlf( bEos, pcBitstream, uiPOC, pcListPic, m_iSkipFrame, m_aiDepthPOCLastDisplayList[iDepthViewIdx]); 259 #else 194 260 m_acTDecDepthTopList[iViewIdx]->executeDeblockAndAlf( bEos, pcBitstream, uiPOC, pcListPic, m_iSkipFrame, m_aiDepthPOCLastDisplayList[iViewIdx]); 261 #endif 195 262 else 196 263 m_acTDecTopList[iViewIdx]->executeDeblockAndAlf( bEos, pcBitstream, uiPOC, pcListPic, m_iSkipFrame, m_aiPOCLastDisplayList[iViewIdx]); … … 199 266 bFirstSliceDecoded = false; 200 267 201 if( m_bUsingDepth && !bIsDepth ) 202 { 203 bIsDepth = true; 268 #if FLEX_CODING_ORDER 269 if (m_bUsingDepth) 270 { 271 bIsDepth = bNewPictureType; 272 273 } 274 if (bCountDepthViewIdx == false ) 275 { 276 bCountDepthViewIdx = true; 277 if (bIsDepth == true) 278 { 279 bFirstDepth = true; 280 bCountDepthViewIdx = true; 281 } 282 if (!bFirstDepth && !bIsDepth) 283 { 284 iViewIdx++; 285 bCountDepthViewIdx = false; 286 } 287 204 288 } 205 289 else 206 290 { 207 bIsDepth = false; 208 if( iViewIdx<m_acTDecTopList.size()-1) 209 { 210 iViewIdx++ ; 291 if (bIsDepth) 292 { 293 iDepthViewIdx++; 211 294 } 212 295 else 213 296 { 297 iViewIdx ++; 298 } 299 300 if (iViewIdx >= m_acTDecTopList.size() || iDepthViewIdx >= m_acTDecDepthTopList.size()) 301 { 302 bFirstDepth = false; 214 303 iViewIdx = 0; 215 304 iDepthViewIdx = 0; 305 bCountDepthViewIdx = false; 216 306 // end of access unit: delete extra pic buffers 217 307 Int iNumViews = (Int)m_acTVideoIOYuvReconFileList.size(); … … 244 334 } 245 335 } 336 337 #else 338 339 if( m_bUsingDepth && !bIsDepth ) 340 { 341 bIsDepth = true; 342 } 343 else 344 { 345 bIsDepth = false; 346 if( iViewIdx<m_acTDecTopList.size()-1) 347 { 348 iViewIdx++ ; 349 } 350 else 351 { 352 iViewIdx = 0; 353 354 // end of access unit: delete extra pic buffers 355 Int iNumViews = (Int)m_acTVideoIOYuvReconFileList.size(); 356 for( Int iVId = 0; iVId < iNumViews; iVId++ ) 357 { 358 if( iVId < (Int)m_acTDecTopList.size() && m_acTDecTopList[iVId] ) 359 { 360 m_acTDecTopList[iVId]->deleteExtraPicBuffers( (Int)uiPOC ); 361 } 362 if( iVId < (Int)m_acTDecDepthTopList.size() && m_acTDecDepthTopList[iVId] ) 363 { 364 m_acTDecDepthTopList[iVId]->deleteExtraPicBuffers( (Int)uiPOC ); 365 } 366 } 367 368 #if AMVP_BUFFERCOMPRESS 369 // compress motion for entire access unit 370 for( Int iVId = 0; iVId < iNumViews; iVId++ ) 371 { 372 if( iVId < (Int)m_acTDecTopList.size() && m_acTDecTopList[iVId] ) 373 { 374 m_acTDecTopList[iVId]->compressMotion( (Int)uiPOC ); 375 } 376 if( iVId < (Int)m_acTDecDepthTopList.size() && m_acTDecDepthTopList[iVId] ) 377 { 378 m_acTDecDepthTopList[iVId]->compressMotion( (Int)uiPOC ); 379 } 380 } 381 #endif 382 } 383 } 384 #endif 246 385 } 247 386 #else … … 506 645 m_acTDecDepthTopList.back()->create() ; 507 646 m_acTDecDepthTopList.back()->init( this, false ); 508 m_acTDecDepthTopList.back()->setViewIdx((Int)m_acTDecTopList.size()-1); 647 #if FLEX_CODING_ORDER 648 Int iNumofgen = (Int)m_acTDecDepthTopList.size(); 649 m_acTDecDepthTopList.back()->setViewIdx(iNumofgen-1); 650 #else 651 m_acTDecDepthTopList.back()->setViewIdx((Int)m_acTDecTopList.size()-1); 652 #endif 653 509 654 m_acTDecDepthTopList.back()->setPictureDigestEnabled(m_pictureDigestEnabled); 510 655 m_acTDecDepthTopList.back()->setToDepth( true ); -
branches/0.3-nokia/source/App/TAppEncoder/TAppEncCfg.cpp
r21 r34 110 110 free (m_pchBitstreamFile) ; 111 111 112 #if FLEX_CODING_ORDER 113 if (m_pchMVCJointCodingOrder != NULL) 114 { 115 free(m_pchMVCJointCodingOrder) ; 116 } 117 #endif 112 118 for(Int i = 0; i< m_pchDepthReconFileList.size(); i++ ) 113 119 { … … 153 159 string cfg_ReconFile; 154 160 string cfg_dQPFile; 161 162 #if FLEX_CODING_ORDER 163 string cfg_JointCodingOrdering; 164 #endif 165 155 166 po::Options opts; 156 167 opts.addOptions() … … 191 202 ("NumberOfViews", m_iNumberOfViews, 0, "Number of views") 192 203 193 204 #if FLEX_CODING_ORDER 205 ("3DVFlexOrder", m_b3DVFlexOrder, false, "flexible coding order flag" ) 206 ("3DVCodingOrder", cfg_JointCodingOrdering, string(""), "The coding order for joint texture-depth coding") 207 208 #endif 194 209 /* Unit definition parameters */ 195 210 ("MaxCUWidth", m_uiMaxCUWidth, 64u) … … 379 394 m_pchdQPFile = cfg_dQPFile.empty() ? NULL : strdup(cfg_dQPFile.c_str()); 380 395 396 #if FLEX_CODING_ORDER && HHI_VSO 397 m_pchMVCJointCodingOrder = cfg_JointCodingOrdering.empty()?NULL:strdup(cfg_JointCodingOrdering.c_str()); 398 // If flexible order is enabled and if depth comes before the texture for a view, disable VSO 399 Bool depthComesFirst = false; 400 if ( m_b3DVFlexOrder ) 401 { 402 for(Int iViewIdx=0; iViewIdx<m_iNumberOfViews; iViewIdx++) 403 { 404 for ( Int ii=1; ii<12; ii+=2 ) 405 { 406 Int iViewIdxCfg = (Int)(m_pchMVCJointCodingOrder[ii]-'0'); 407 if ( iViewIdxCfg == iViewIdx ) 408 { 409 if ( m_pchMVCJointCodingOrder[ii-1]=='D' ) // depth comes first for this view 410 { 411 depthComesFirst = true; 412 break; 413 } 414 else 415 { 416 assert(m_pchMVCJointCodingOrder[ii-1]=='T'); 417 } 418 } 419 } 420 } 421 } 422 if (depthComesFirst) 423 { 424 m_bUseVSO = false; 425 } 426 #endif 427 381 428 382 429 // GT FIX -
branches/0.3-nokia/source/App/TAppEncoder/TAppEncCfg.h
r5 r34 81 81 Bool m_bUsingDepthMaps ; 82 82 83 #if FLEX_CODING_ORDER 84 char* m_pchMVCJointCodingOrder; ///< texture-depth coding order 85 Bool m_b3DVFlexOrder; ///< flexible coding order flag 86 #endif 87 83 88 84 89 // coding structure -
branches/0.3-nokia/source/App/TAppEncoder/TAppEncTop.cpp
r21 r34 235 235 for(Int iViewIdx=0; iViewIdx<m_iNumberOfViews; iViewIdx++) 236 236 { 237 #if FLEX_CODING_ORDER 238 // Detect whether depth comes before than texture for this view 239 Bool isDepthFirst = false; 240 if ( m_b3DVFlexOrder ) 241 { 242 for ( Int ii=1; ii<12; ii+=2 ) 243 { 244 Int iViewIdxCfg = (Int)(m_pchMVCJointCodingOrder[ii]-'0'); 245 if ( iViewIdxCfg == iViewIdx ) 246 { 247 if ( m_pchMVCJointCodingOrder[ii-1]=='D' ) // depth comes first for this view 248 { 249 isDepthFirst = true; 250 } 251 else 252 { 253 assert(m_pchMVCJointCodingOrder[ii-1]=='T'); 254 } 255 break; 256 } 257 } 258 } 259 #endif 237 260 m_iDepthFrameRcvdVector.push_back(0) ; 238 261 m_acTEncDepthTopList.push_back(new TEncTop); … … 354 377 m_acTEncDepthTopList[iViewIdx]->setUseDMM( m_bUseDMM ); 355 378 #endif 379 #if FLEX_CODING_ORDER && HHI_DMM_PRED_TEX 380 m_acTEncDepthTopList[iViewIdx]->setUseDMM34( (m_b3DVFlexOrder && isDepthFirst) ? false : m_bUseDMM ); 381 #endif 356 382 #if CONSTRAINED_INTRA_PRED 357 383 m_acTEncDepthTopList[iViewIdx]->setUseConstrainedIntraPred ( m_bUseConstrainedIntraPred ); … … 380 406 #endif 381 407 #if HHI_MPI 408 #if FLEX_CODING_ORDER 409 m_acTEncDepthTopList[iViewIdx]->setUseMVI( (m_b3DVFlexOrder && isDepthFirst) ? false : m_bUseMVI ); 410 #else 382 411 m_acTEncDepthTopList[iViewIdx]->setUseMVI( m_bUseMVI ); 383 412 #endif 384 413 #endif 414 385 415 m_acTEncDepthTopList[iViewIdx]->setPictureDigestEnabled(m_pictureDigestEnabled); 386 416 … … 591 621 std::vector<Bool> bDepthEos ; 592 622 std::vector<Bool> bContinueReadingDepthPics ; 593 594 623 for(Int iViewIdx=0; iViewIdx < m_iNumberOfViews; iViewIdx++ ) 595 624 { … … 689 718 #endif 690 719 720 #if FLEX_CODING_ORDER 721 if (m_b3DVFlexOrder) 722 { 723 Int i=0; 724 Int iViewIdx = 0; 725 bool bThisViewContinueReadingPics = false; 726 bool bThisViewContinueReadingDepthPics = false; 727 Int iNumberofDepthViews = m_bUsingDepthMaps?m_iNumberOfViews:0; 728 for(Int j=0; j < (m_iNumberOfViews+ iNumberofDepthViews); j++ ) // Start encoding 729 { 730 if (m_pchMVCJointCodingOrder[i]=='T') 731 { 732 i++; 733 assert(isdigit(m_pchMVCJointCodingOrder[i])); 734 iViewIdx = (Int)(m_pchMVCJointCodingOrder[i]-'0'); 735 bThisViewContinueReadingPics = bContinueReadingPics[iViewIdx]; 736 m_acTEncTopList[iViewIdx]->encode( bEos[iViewIdx], m_cListPicYuvRecMap[iViewIdx], pcBitstream, bThisViewContinueReadingPics ); 737 bContinueReadingPics[iViewIdx]=bThisViewContinueReadingPics; 738 bAllContinueReadingPics = bAllContinueReadingPics||bContinueReadingPics[iViewIdx]; 739 740 if(pcBitstream->getNumberOfWrittenBits()!=0) 741 { 742 m_cTVideoIOBitsFile.writeBits( pcBitstream ); 743 } 744 pcBitstream->resetBits(); //GT: also done later in .... 745 pcBitstream->rewindStreamPacket( ); 746 // write bistream to file if necessary 747 xWriteOutput( iViewIdx ); //GT: Write Reconfiles (when gop is complete?) 748 i++; 749 } 750 else if ( m_pchMVCJointCodingOrder[i] == 'D') 751 { 752 i++; 753 if( m_bUsingDepthMaps ) 754 { 755 assert(isdigit(m_pchMVCJointCodingOrder[i])); 756 iViewIdx = (Int)(m_pchMVCJointCodingOrder[i]-'0'); 757 bThisViewContinueReadingDepthPics = bContinueReadingDepthPics[iViewIdx]; 758 m_acTEncDepthTopList[iViewIdx]->encode( bDepthEos[iViewIdx], m_cListPicYuvDepthRecMap[iViewIdx], pcBitstream, bThisViewContinueReadingDepthPics ); 759 bContinueReadingDepthPics[iViewIdx]=bThisViewContinueReadingDepthPics; 760 761 bAllContinueReadingDepthPics = bAllContinueReadingDepthPics||bContinueReadingDepthPics[iViewIdx]; 762 if(pcBitstream->getNumberOfWrittenBits()!=0) 763 { 764 m_cTVideoIOBitsFile.writeBits( pcBitstream ); 765 } 766 pcBitstream->resetBits(); 767 pcBitstream->rewindStreamPacket( ); 768 // write bistream to file if necessary 769 xWriteOutput( iViewIdx, true ); 770 i++; 771 } 772 } 773 } 774 } 775 else 776 { 777 #endif 691 778 //GT: Encode 692 779 for(Int iViewIdx=0; iViewIdx < m_iNumberOfViews; iViewIdx++ ) // Start encoding … … 723 810 } 724 811 } 725 812 #if FLEX_CODING_ORDER 813 } 814 #endif 726 815 // delete extra picture buffers 727 816 if( bCurrPocCoded ) -
branches/0.3-nokia/source/Lib/TLibCommon/TComSlice.cpp
r21 r34 687 687 m_bUseDMM = false; 688 688 #endif 689 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 690 m_bUseDMM34 = false; 691 #endif 689 692 } 690 693 -
branches/0.3-nokia/source/Lib/TLibCommon/TComSlice.h
r21 r34 134 134 Bool m_bUseDMM; 135 135 #endif 136 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 137 Bool m_bUseDMM34; 138 #endif 136 139 137 140 #if DEPTH_MAP_GENERATION … … 230 233 Void setUseDMM( Bool b ) { m_bUseDMM = b; } 231 234 #endif 232 235 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 236 Bool getUseDMM34() { return m_bUseDMM34; } 237 Void setUseDMM34( Bool b ) { m_bUseDMM34 = b; } 238 #endif 233 239 234 240 #if DCM_COMB_LIST -
branches/0.3-nokia/source/Lib/TLibCommon/TypeDef.h
r21 r34 40 40 41 41 42 #define FLEX_CODING_ORDER 1 42 43 43 44 #define SONY_COLPIC_AVAILABILITY 1 … … 329 330 #endif 330 331 332 333 331 334 // ==================================================================================================================== 332 335 // Basic type redefinition -
branches/0.3-nokia/source/Lib/TLibDecoder/TDecTop.cpp
r21 r34 513 513 514 514 #if DCM_SKIP_DECODING_FRAMES 515 #if FLEX_CODING_ORDER 516 Bool TDecTop::decode (Bool bEos, TComBitstream* pcBitstream, UInt& ruiPOC, TComList<TComPic*>*& rpcListPic, NalUnitType& reNalUnitType, TComSPS& cComSPS, Int& iSkipFrame, Int& iPOCLastDisplay, Bool& bNewPictureType) 517 #else 515 518 Bool TDecTop::decode (Bool bEos, TComBitstream* pcBitstream, UInt& ruiPOC, TComList<TComPic*>*& rpcListPic, NalUnitType& reNalUnitType, TComSPS& cComSPS, Int& iSkipFrame, Int& iPOCLastDisplay) 519 520 #endif 516 521 #else 517 522 Void TDecTop::decode (Bool bEos, TComBitstream* pcBitstream, UInt& ruiPOC, TComList<TComPic*>*& rpcListPic, NalUnitType& reNalUnitType, TComSPS& cComSPS ) … … 541 546 TComSPS cTempSPS; 542 547 m_cEntropyDecoder.decodeSPS( &cTempSPS ); 548 #if FLEX_CODING_ORDER 549 m_cNewSPS = cTempSPS; 550 #endif 543 551 544 552 if( (m_iViewIdx == cTempSPS.getViewId()) && ( m_bIsDepth == cTempSPS.isDepth() ) ) … … 615 623 { 616 624 m_uiPrevPOC = m_apcSlicePilot->getPOC(); 625 #if FLEX_CODING_ORDER 626 bNewPictureType = m_cNewSPS.isDepth(); 627 #endif 617 628 return true; 618 629 } … … 697 708 std::vector<TComPic*> apcSpatRefPics = getDecTop()->getSpatialRefPics( pcPic->getViewIdx(), pcSlice->getPOC(), m_cSPS.isDepth() ); 698 709 TComPic * const pcTexturePic = m_cSPS.isDepth() ? getDecTop()->getPicFromView( pcPic->getViewIdx(), pcSlice->getPOC(), false ) : NULL; 710 711 #if FLEX_CODING_ORDER 712 if (pcTexturePic != NULL) 713 { 714 assert( ! m_cSPS.isDepth() || pcTexturePic != NULL ); 715 pcSlice->setTexturePic( pcTexturePic ); 716 } 717 #else 699 718 assert( ! m_cSPS.isDepth() || pcTexturePic != NULL ); 700 719 pcSlice->setTexturePic( pcTexturePic ); 701 720 pcSlice->setViewIdx( pcPic->getViewIdx() ); 721 #endif 702 722 #if SONY_COLPIC_AVAILABILITY 703 723 pcSlice->setViewOrderIdx( pcPic->getViewOrderIdx() ); -
branches/0.3-nokia/source/Lib/TLibDecoder/TDecTop.h
r21 r34 111 111 TComList<TComPic*> m_cListPic; // Dynamic buffer 112 112 TComSPS m_cSPS; 113 #if FLEX_CODING_ORDER 114 TComSPS m_cNewSPS; 115 #endif 113 116 TComPPS m_cPPS; 114 117 TComSlice* m_apcSlicePilot; … … 167 170 Void init( TAppDecTop* pcTAppDecTop, Bool bFirstInstance = true ); 168 171 #if DCM_SKIP_DECODING_FRAMES 172 #if FLEX_CODING_ORDER 173 Bool decode (Bool bEos, TComBitstream* pcBitstream, UInt& ruiPOC, TComList<TComPic*>*& rpcListPic, NalUnitType& reNalUnitType, TComSPS& cComSPS, Int& iSkipFrame, Int& iPOCLastDisplay, Bool& bNewPictureType); 174 #else 169 175 Bool decode (Bool bEos, TComBitstream* pcBitstream, UInt& ruiPOC, TComList<TComPic*>*& rpcListPic, NalUnitType& reNalUnitType, TComSPS& cComSPS, Int& iSkipFrame, Int& iPOCLastDisplay); 176 177 #endif 170 178 #else 171 179 Void decode ( Bool bEos, TComBitstream* pcBitstream, UInt& ruiPOC, TComList<TComPic*>*& rpcListPic, NalUnitType& reNalUnitType, TComSPS& cComSPS ); -
branches/0.3-nokia/source/Lib/TLibEncoder/TEncCfg.h
r21 r34 159 159 Bool m_bUseDMM; 160 160 #endif 161 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 162 Bool m_bUseDMM34; 163 #endif 161 164 #if HHI_MPI 162 165 Bool m_bUseMVI; … … 424 427 Bool getUseDMM() { return m_bUseDMM; } 425 428 #endif 426 429 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 430 Void setUseDMM34( Bool b) { m_bUseDMM34 = b; } 431 Bool getUseDMM34() { return m_bUseDMM34; } 432 #endif 427 433 #if LM_CHROMA 428 434 Bool getUseLMChroma () { return m_bUseLMChroma; } -
branches/0.3-nokia/source/Lib/TLibEncoder/TEncSbac.cpp
r5 r34 1126 1126 #endif 1127 1127 #if HHI_DMM_PRED_TEX 1128 #if FLEX_CODING_ORDER 1129 if ( !pcCU->getSlice()->getSPS()->getUseDMM34() ) 1130 { 1131 assert( uiDir != DMM_WEDGE_PREDTEX_D_IDX ); 1132 assert( uiDir != DMM_CONTOUR_PREDTEX_D_IDX ); 1133 } 1134 #endif 1128 1135 if( uiDir == DMM_WEDGE_PREDTEX_D_IDX ) { xCodeWedgePredTexDeltaInfo ( pcCU, uiAbsPartIdx ); } 1129 1136 if( uiDir == DMM_CONTOUR_PREDTEX_D_IDX ) { xCodeContourPredTexDeltaInfo( pcCU, uiAbsPartIdx ); } -
branches/0.3-nokia/source/Lib/TLibEncoder/TEncSearch.cpp
r5 r34 1926 1926 #endif 1927 1927 #if HHI_DMM_PRED_TEX 1928 #if FLEX_CODING_ORDER 1929 if ( pcCU->getSlice()->getSPS()->getUseDMM34() ) 1930 { 1931 #endif 1928 1932 TComYuv cTempYuv; cTempYuv.create( uiWidth, uiHeight ); cTempYuv.clear(); 1929 1933 Pel* piTempY = cTempYuv.getLumaAddr(); … … 1958 1962 uiRdModeList[ uiNewMaxMode++ ] = DMM_CONTOUR_PREDTEX_D_IDX; 1959 1963 } 1960 1961 1964 cTempYuv.destroy(); 1965 #if FLEX_CODING_ORDER 1966 } 1967 #endif 1962 1968 #endif 1963 1969 } … … 1988 1994 #else 1989 1995 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 1996 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 1997 if( m_pcEncCfg->isDepthCoder() && !predIntraLumaDMMAvailable( uiOrgMode, uiWidth, uiHeight, pcCU->getSlice()->getSPS()->getUseDMM34() ) ) 1998 #else 1990 1999 if( m_pcEncCfg->isDepthCoder() && !predIntraLumaDMMAvailable( uiOrgMode, uiWidth, uiHeight ) ) 2000 #endif 1991 2001 continue; 1992 2002 #endif … … 2076 2086 #else 2077 2087 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 2088 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 2089 if( m_pcEncCfg->isDepthCoder() && !predIntraLumaDMMAvailable( uiOrgMode, uiWidth, uiHeight, pcCU->getSlice()->getSPS()->getUseDMM34() ) ) 2090 #else 2078 2091 if( m_pcEncCfg->isDepthCoder() && !predIntraLumaDMMAvailable( uiOrgMode, uiWidth, uiHeight ) ) 2092 #endif 2079 2093 continue; 2080 2094 #endif … … 2719 2733 } 2720 2734 2735 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 2736 Bool TEncSearch::predIntraLumaDMMAvailable( UInt uiMode, UInt uiWidth, UInt uiHeight, Bool bDMMAvailable34 ) 2737 #else 2721 2738 Bool TEncSearch::predIntraLumaDMMAvailable( UInt uiMode, UInt uiWidth, UInt uiHeight ) 2739 #endif 2722 2740 { 2723 2741 if( uiMode <= MAX_MODE_ID_INTRA_DIR ) return true; … … 2747 2765 bDMMAvailable = false; 2748 2766 } 2767 #if FLEX_CODING_ORDER 2768 if ( !bDMMAvailable34 ) 2769 { 2770 bDMMAvailable = false; 2771 } 2772 #endif 2749 2773 } 2750 2774 -
branches/0.3-nokia/source/Lib/TLibEncoder/TEncSearch.h
r5 r34 207 207 Bool predIntraLumaDMMAvailable( UInt uiMode, 208 208 UInt uiWidth, 209 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 210 UInt uiHeight, 211 Bool bDMMAvailable34 ); 212 #else 209 213 UInt uiHeight ); 214 #endif 210 215 #endif 211 216 #if HHI_DMM_WEDGE_INTRA -
branches/0.3-nokia/source/Lib/TLibEncoder/TEncTop.cpp
r21 r34 287 287 288 288 bool bSomethingCoded = false ; 289 289 #if FLEX_CODING_ORDER 290 if (TEncTop::m_bPicWaitingForCoding ) 291 #else 290 292 if (m_bPicWaitingForCoding ) 293 #endif 291 294 { 292 295 std::map<Int, TComPic*>::iterator cIter = m_acInputPicMap.find( (Int)m_cSeqIter.getPoc() ); … … 615 618 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 616 619 m_cSPS.setUseDMM( m_bUseDMM ); 620 #endif 621 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 622 m_cSPS.setUseDMM34( m_bUseDMM34 ); 617 623 #endif 618 624 #if HHI_MPI
Note: See TracChangeset for help on using the changeset viewer.