Changeset 12 in 3DVCSoftware for branches/0.2-poznan-univ/source/Lib/TLibDecoder
- Timestamp:
- 6 Feb 2012, 00:52:17 (13 years ago)
- Location:
- branches/0.2-poznan-univ/source/Lib/TLibDecoder
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/0.2-poznan-univ/source/Lib/TLibDecoder/TDecCAVLC.cpp
r11 r12 271 271 pcSPS->setUseMVI( uiCode ? true : false ); 272 272 #endif 273 #if POZNAN_NONLINEAR_DEPTH 274 #if POZNAN_NONLINEAR_DEPTH_SEND_AS_BYTE 275 uiCode = 0; 276 xReadCode(8, uiCode); 277 pcSPS->setDepthPower(dequantizeDepthPower(uiCode)); 278 #else 279 uiCode = 0; 280 xReadCode(sizeof(float)*8, uiCode); // We do not send seign 281 //uiCode &= ~0x80000000; 282 pcSPS->setDepthPower(*((float*)&uiCode)); 283 #endif 284 printf("\nfDepthPower = %f", pcSPS->getDepthPower()); 285 #endif 273 286 } 274 287 else … … 331 344 } 332 345 } 333 334 346 return; 335 347 } … … 2621 2633 2622 2634 2623 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI 2635 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI || POZNAN_EIVD 2624 2636 Void 2625 2637 TDecCavlc::parseMergeIndexMV( TComDataCU* pcCU, UInt& ruiMergeIndex, UInt uiAbsPartIdx, UInt uiDepth ) … … 2632 2644 uiNumCand++; 2633 2645 #endif 2646 #if POZNAN_EIVD 2647 UInt uiModIdx; 2648 const Bool bEIVDAvailable = pcCU->getSlice()->getMP()->isEIVDEnabled(); 2649 #endif 2634 2650 for( UInt uiIdx = 0; uiIdx < MRG_MAX_NUM_CANDS; uiIdx++ ) 2635 2651 { … … 2656 2672 if( uiIdx > uiMviMergePos ) 2657 2673 { 2674 #if POZNAN_EIVD 2675 if(bEIVDAvailable) 2676 { 2677 if(uiIdx==POZNAN_EIVD_MERGE_POS) uiModIdx = POZNAN_EIVD_MRG_CAND; 2678 else if(uiIdx>POZNAN_EIVD_MERGE_POS) uiModIdx = uiIdx--; 2679 else uiModIdx = uiIdx; 2680 } 2681 else uiModIdx = uiIdx; 2682 if( pcCU->getNeighbourCandIdx( uiModIdx-1, uiAbsPartIdx ) != uiModIdx ) 2683 { 2684 ruiMergeIndex++; 2685 } 2686 #else 2658 2687 if( pcCU->getNeighbourCandIdx( uiIdx - 1, uiAbsPartIdx ) != uiIdx ) 2659 2688 { 2660 2689 ruiMergeIndex++; 2661 2690 } 2691 #endif 2662 2692 } 2663 2693 else if( uiIdx < uiMviMergePos ) 2664 2694 #endif 2695 #if POZNAN_EIVD 2696 if(bEIVDAvailable) 2697 { 2698 if(uiIdx==POZNAN_EIVD_MERGE_POS) uiModIdx = POZNAN_EIVD_MRG_CAND; 2699 else if(uiIdx>POZNAN_EIVD_MERGE_POS) uiModIdx = uiIdx--; 2700 else uiModIdx = uiIdx; 2701 } 2702 else uiModIdx = uiIdx; 2703 if( pcCU->getNeighbourCandIdx( uiModIdx, uiAbsPartIdx ) != uiModIdx + 1 ) 2704 { 2705 ruiMergeIndex++; 2706 } 2707 #else 2665 2708 if( pcCU->getNeighbourCandIdx( uiIdx, uiAbsPartIdx ) != uiIdx + 1 ) 2666 2709 { 2667 2710 ruiMergeIndex++; 2668 2711 } 2712 #endif 2669 2713 } 2670 2714 #if HHI_MPI … … 2676 2720 { 2677 2721 pcCU->setTextureModeDepthSubParts( uiDepth, uiAbsPartIdx, uiDepth ); 2722 } 2723 #endif 2724 #if POZNAN_EIVD 2725 if(bEIVDAvailable) 2726 { 2727 if(ruiMergeIndex==POZNAN_EIVD_MERGE_POS) ruiMergeIndex = POZNAN_EIVD_MRG_CAND; 2728 else if(ruiMergeIndex>POZNAN_EIVD_MERGE_POS) ruiMergeIndex--; 2678 2729 } 2679 2730 #endif … … 2691 2742 Void TDecCavlc::parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex, UInt uiAbsPartIdx, UInt uiDepth ) 2692 2743 { 2693 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI 2744 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI || POZNAN_EIVD 2694 2745 if( 2695 2746 #if HHI_INTER_VIEW_MOTION_PRED … … 2698 2749 #if HHI_MPI 2699 2750 ( pcCU->getSlice()->getSPS()->getUseMVI() && pcCU->getSlice()->getSliceType() != I_SLICE && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) || 2751 #endif 2752 #if POZNAN_EIVD 2753 ( pcCU->getSlice()->getMP()->isEIVDEnabled() ) || 2700 2754 #endif 2701 2755 0 -
branches/0.2-poznan-univ/source/Lib/TLibDecoder/TDecCAVLC.h
r5 r12 195 195 Void parseMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ); 196 196 Void parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex, UInt uiAbsPartIdx, UInt uiDepth ); 197 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI 197 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI || POZNAN_EIVD 198 198 Void parseMergeIndexMV ( TComDataCU* pcCU, UInt& ruiMergeIndex, UInt uiAbsPartIdx, UInt uiDepth ); 199 199 #endif -
branches/0.2-poznan-univ/source/Lib/TLibDecoder/TDecCu.cpp
r11 r12 49 49 m_ppcYuvReco = NULL; 50 50 m_ppcYuvResPred = NULL; 51 #if POZNAN_ AVAIL_MAP51 #if POZNAN_CU_SKIP 52 52 m_ppcYuvAvail = NULL; 53 53 #endif 54 #if POZNAN_ SYNTH_VIEW54 #if POZNAN_CU_SYNTH 55 55 m_ppcYuvSynth = NULL; 56 56 #endif … … 81 81 m_ppcYuvReco = new TComYuv* [m_uiMaxDepth-1]; 82 82 m_ppcYuvResPred = new TComYuv* [m_uiMaxDepth-1]; 83 #if POZNAN_ AVAIL_MAP83 #if POZNAN_CU_SKIP 84 84 m_ppcYuvAvail = new TComYuv* [m_uiMaxDepth-1]; 85 85 #endif 86 #if POZNAN_ SYNTH_VIEW86 #if POZNAN_CU_SYNTH 87 87 m_ppcYuvSynth = new TComYuv* [m_uiMaxDepth-1]; 88 88 #endif … … 99 99 m_ppcYuvReco [ui] = new TComYuv; m_ppcYuvReco [ui]->create( uiWidth, uiHeight ); 100 100 m_ppcYuvResPred[ui] = new TComYuv; m_ppcYuvResPred[ui]->create( uiWidth, uiHeight ); 101 #if POZNAN_ AVAIL_MAP101 #if POZNAN_CU_SKIP 102 102 m_ppcYuvAvail [ui] = new TComYuv; m_ppcYuvAvail [ui]->create( uiWidth, uiHeight ); 103 103 #endif 104 #if POZNAN_ SYNTH_VIEW104 #if POZNAN_CU_SYNTH 105 105 m_ppcYuvSynth [ui] = new TComYuv; m_ppcYuvSynth [ui]->create( uiWidth, uiHeight ); 106 106 #endif … … 125 125 m_ppcYuvReco [ui]->destroy(); delete m_ppcYuvReco [ui]; m_ppcYuvReco [ui] = NULL; 126 126 m_ppcYuvResPred[ui]->destroy(); delete m_ppcYuvResPred[ui]; m_ppcYuvResPred[ui] = NULL; 127 #if POZNAN_ AVAIL_MAP127 #if POZNAN_CU_SKIP 128 128 m_ppcYuvAvail [ui]->destroy(); delete m_ppcYuvAvail [ui]; m_ppcYuvAvail [ui] = NULL; 129 129 #endif 130 #if POZNAN_ SYNTH_VIEW130 #if POZNAN_CU_SYNTH 131 131 m_ppcYuvSynth [ui]->destroy(); delete m_ppcYuvSynth [ui]; m_ppcYuvSynth [ui] = NULL; 132 132 #endif … … 137 137 delete [] m_ppcYuvReco; m_ppcYuvReco = NULL; 138 138 delete [] m_ppcYuvResPred; m_ppcYuvResPred = NULL; 139 #if POZNAN_ AVAIL_MAP139 #if POZNAN_CU_SKIP 140 140 delete [] m_ppcYuvAvail; m_ppcYuvAvail = NULL; 141 141 #endif 142 #if POZNAN_ SYNTH_VIEW142 #if POZNAN_CU_SYNTH 143 143 delete [] m_ppcYuvSynth; m_ppcYuvSynth = NULL; 144 144 #endif … … 217 217 TComPic* pcPic = pcCU->getPic(); 218 218 219 #if POZNAN_ ENCODE_ONLY_DISOCCLUDED_CU219 #if POZNAN_CU_SKIP 220 220 Bool bWholeCUCanBeSynthesized = false; 221 221 Bool bOneSubCUCanNotBeSynthesied = false; … … 267 267 if( ( uiRPelX < pcCU->getSlice()->getSPS()->getWidth() ) && ( uiBPelY < pcCU->getSlice()->getSPS()->getHeight() ) ) 268 268 { 269 #if POZNAN_ ENCODE_ONLY_DISOCCLUDED_CU269 #if POZNAN_CU_SKIP 270 270 if(bOneSubCUCanNotBeSynthesied && (uiDepth < g_uiMaxCUDepth - g_uiAddCUDepth )) // KUBA SYNTH check if CU has 3 synthesied subCU - no split flag is send in that case and CU split is assumed 271 271 { … … 446 446 { 447 447 TComPic* pcPic = pcCU->getPic(); 448 #if POZNAN_ SYNTH_VIEW448 #if POZNAN_CU_SYNTH 449 449 if(pcPic->getPicYuvSynth()) m_ppcYuvSynth[uiDepth]->copyFromPicYuv( pcPic->getPicYuvSynth(), pcCU->getAddr(), uiAbsPartIdx ); 450 450 #endif 451 #if POZNAN_ AVAIL_MAP451 #if POZNAN_CU_SKIP 452 452 if(pcPic->getPicYuvAvail()) m_ppcYuvAvail[uiDepth]->copyFromPicYuv( pcPic->getPicYuvAvail(), pcCU->getAddr(), uiAbsPartIdx ); 453 453 #endif … … 496 496 xReconIntraQT( m_ppcCU[uiDepth], uiAbsPartIdx, uiDepth ); 497 497 break; 498 #if POZNAN_ ENCODE_ONLY_DISOCCLUDED_CU498 #if POZNAN_CU_SKIP 499 499 case MODE_SYNTH: 500 500 // break; 501 #if POZNAN_FILL_OCCLUDED_CU_WITH_SYNTHESIS502 501 m_ppcYuvReco[uiDepth]->copyFromPicYuv(pcPic->getPicYuvSynth(), pcCU->getAddr(), uiAbsPartIdx); 503 #else 504 m_ppcYuvReco[uiDepth]->copyFromPicYuv(pcPic->getPicYuvAvail(), pcCU->getAddr(), uiAbsPartIdx); //Poprawiæ 505 #endif 502 //m_ppcYuvReco[uiDepth]->copyFromPicYuv(pcPic->getPicYuvAvail(), pcCU->getAddr(), uiAbsPartIdx); //Poprawiæ 506 503 //m_ppcYuvReco[uiDepth]->clear(); 507 504 break; … … 581 578 m_pcPrediction->predIntraLumaAng( pcPattern, pcCU->getLumaIntraDir(uiPartIdx), pPred, uiStride, uiWidth, uiHeight, pcCU, bAboveAvail, bLeftAvail ); 582 579 580 #if POZNAN_TEXTURE_TU_DELTA_QP_ACCORDING_TO_DEPTH 581 m_pcTrQuant->setQPforQuant( pcCU->getQP(uiPartIdx) + pcCU->getQpOffsetForTextCU(uiPartIdx, true), !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), TEXT_LUMA ); 582 #else 583 583 m_pcTrQuant->setQPforQuant( pcCU->getQP(uiPartIdx), !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), TEXT_LUMA ); 584 #endif 584 585 #if INTRA_DST_TYPE_7 585 586 m_pcTrQuant->invtransformNxN(TEXT_LUMA, pcCU->getLumaIntraDir(uiPartIdx), pResi, uiStride, pCoeff, uiWidth, uiHeight ); … … 778 779 } 779 780 //===== inverse transform ===== 781 #if POZNAN_TEXTURE_TU_DELTA_QP_ACCORDING_TO_DEPTH 782 m_pcTrQuant->setQPforQuant( pcCU->getQP(0) + pcCU->getQpOffsetForTextCU(uiAbsPartIdx, true), !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), TEXT_LUMA ); 783 #else 780 784 m_pcTrQuant->setQPforQuant ( pcCU->getQP(0), !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), TEXT_LUMA ); 785 #endif 781 786 #if INTRA_DST_TYPE_7 782 787 m_pcTrQuant->invtransformNxN( TEXT_LUMA, pcCU->getLumaIntraDir( uiAbsPartIdx ), piResi, uiStride, pcCoeff, uiWidth, uiHeight ); … … 885 890 886 891 //===== inverse transform ===== 892 #if POZNAN_TEXTURE_TU_DELTA_QP_ACCORDING_TO_DEPTH 893 m_pcTrQuant->setQPforQuant ( pcCU->getQP(0) + pcCU->getQpOffsetForTextCU(uiAbsPartIdx, true), !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), eText ); 894 #else 887 895 m_pcTrQuant->setQPforQuant ( pcCU->getQP(0), !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), eText ); 896 #endif 888 897 #if INTRA_DST_TYPE_7 889 898 m_pcTrQuant->invtransformNxN( eText, REG_DCT, piResi, uiStride, pcCoeff, uiWidth, uiHeight ); … … 1061 1070 piCoeff = pcCU->getCoeffY(); 1062 1071 pResi = m_ppcYuvResi[uiDepth]->getLumaAddr(); 1072 #if POZNAN_TEXTURE_TU_DELTA_QP_ACCORDING_TO_DEPTH 1073 Int QPoffset = pcCU->getQpOffsetForTextCU(uiAbsPartIdx, false); 1074 m_pcTrQuant->setQPforQuant ( pcCU->getQP(uiAbsPartIdx) + QPoffset, !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), TEXT_LUMA ); 1075 #else 1063 1076 m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), TEXT_LUMA ); 1077 #endif 1064 1078 m_pcTrQuant->invRecurTransformNxN ( pcCU, 0, TEXT_LUMA, pResi, 0, m_ppcYuvResi[uiDepth]->getStride(), uiWidth, uiHeight, uiLumaTrMode, 0, piCoeff ); 1065 1079 1066 1080 // Cb and Cr 1081 #if POZNAN_TEXTURE_TU_DELTA_QP_ACCORDING_TO_DEPTH 1082 m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ) + QPoffset, !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), TEXT_CHROMA ); 1083 #else 1067 1084 m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), TEXT_CHROMA ); 1085 #endif 1068 1086 1069 1087 uiWidth >>= 1; -
branches/0.2-poznan-univ/source/Lib/TLibDecoder/TDecCu.h
r11 r12 61 61 TComYuv** m_ppcYuvReco; ///< array of prediction & reconstruction buffer 62 62 TComYuv** m_ppcYuvResPred; ///< residual prediction buffer 63 #if POZNAN_ AVAIL_MAP63 #if POZNAN_CU_SKIP 64 64 TComYuv** m_ppcYuvAvail; ///< array of available map buffer 65 65 #endif 66 #if POZNAN_ SYNTH_VIEW66 #if POZNAN_CU_SYNTH 67 67 TComYuv** m_ppcYuvSynth; ///< array of synth buffer 68 68 #endif -
branches/0.2-poznan-univ/source/Lib/TLibDecoder/TDecEntropy.cpp
r5 r12 430 430 pcCU->setInterDirSubParts( puhInterDirNeighbours[uiMergeIndex], uiAbsPartIdx, uiPartIdx, uiDepth ); 431 431 432 #if POZNAN_EIVD_CALC_PRED_DATA 433 Int ref_idx0_EIVD,ref_idx1_EIVD; 434 TComMv cMv0_EIVD( 0, 0 ),cMv1_EIVD( 0, 0 ); 435 if(uiMergeIndex==POZNAN_EIVD_MRG_CAND) 436 { 437 pcCU->getCUMvField2nd( REF_PIC_LIST_0 )->setAllMvField( pcMvFieldNeighbours[ 2*uiMergeIndex ].getMv(), pcMvFieldNeighbours[ 2*uiMergeIndex ].getRefIdx(), eCUMode, uiAbsPartIdx, uiPartIdx, uiDepth ); 438 pcCU->getCUMvField2nd( REF_PIC_LIST_1 )->setAllMvField( pcMvFieldNeighbours[ 2*uiMergeIndex + 1 ].getMv(), pcMvFieldNeighbours[ 2*uiMergeIndex + 1 ].getRefIdx(), eCUMode, uiAbsPartIdx, uiPartIdx, uiDepth ); 439 pcCU->getSlice()->getMP()->calcEIVDPredData(pcCU, uiAbsPartIdx, ref_idx0_EIVD, cMv0_EIVD, ref_idx1_EIVD, cMv1_EIVD); 440 } 441 #endif 442 432 443 TComMv cTmpMv( 0, 0 ); 433 444 if ( pcCU->getSlice()->getNumRefIdx( REF_PIC_LIST_0 ) > 0 ) //if ( ref. frame list0 has at least 1 entry ) … … 436 447 pcCU->setMVPNumSubParts( 0, REF_PIC_LIST_0, uiAbsPartIdx, uiPartIdx, uiDepth); 437 448 pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvd( cTmpMv, eCUMode, uiAbsPartIdx, uiPartIdx, uiDepth ); 449 #if POZNAN_EIVD_CALC_PRED_DATA 450 if(uiMergeIndex==POZNAN_EIVD_MRG_CAND) 451 pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMv0_EIVD, ref_idx0_EIVD, eCUMode, uiAbsPartIdx, uiPartIdx, uiDepth ); 452 else 453 #endif 438 454 pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( pcMvFieldNeighbours[ 2*uiMergeIndex ].getMv(), pcMvFieldNeighbours[ 2*uiMergeIndex ].getRefIdx(), eCUMode, uiAbsPartIdx, uiPartIdx, uiDepth ); 439 455 … … 444 460 pcCU->setMVPNumSubParts( 0, REF_PIC_LIST_1, uiAbsPartIdx, uiPartIdx, uiDepth); 445 461 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvd( cTmpMv, eCUMode, uiAbsPartIdx, uiPartIdx, uiDepth ); 462 #if POZNAN_EIVD_CALC_PRED_DATA 463 if(uiMergeIndex==POZNAN_EIVD_MRG_CAND) 464 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMv1_EIVD, ref_idx1_EIVD, eCUMode, uiAbsPartIdx, uiPartIdx, uiDepth ); 465 else 466 #endif 446 467 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( pcMvFieldNeighbours[ 2*uiMergeIndex + 1 ].getMv(), pcMvFieldNeighbours[ 2*uiMergeIndex + 1 ].getRefIdx(), eCUMode, uiAbsPartIdx, uiPartIdx, uiDepth ); 447 468 } -
branches/0.2-poznan-univ/source/Lib/TLibDecoder/TDecGop.cpp
r5 r12 199 199 #endif 200 200 201 #if POZNAN_MP 202 if( uiStartCUAddr == 0 ) 203 { 204 #if POZNAN_MP_USE_DEPTH_MAP_GENERATION 205 pcSlice->getMP()->setDepthMapGenerator(m_pcDepthMapGenerator); 206 #endif 207 pcSlice->getMP()->pairMultiview(rpcPic); 208 } 209 #endif 210 201 211 // decode slice 202 212 m_pcSliceDecoder->decompressSlice(pcBitstream, rpcPic); -
branches/0.2-poznan-univ/source/Lib/TLibDecoder/TDecSbac.cpp
r5 r12 579 579 580 580 581 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI 581 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI || POZNAN_EIVD 582 582 Void TDecSbac::parseMergeIndexMV( TComDataCU* pcCU, UInt& ruiMergeIndex, UInt uiAbsPartIdx, UInt uiDepth ) 583 583 { … … 585 585 const Bool bMVIAvailable = pcCU->getSlice()->getSPS()->getUseMVI() && pcCU->getSlice()->getSliceType() != I_SLICE; 586 586 const UInt uiMviMergePos = bMVIAvailable ? HHI_MPI_MERGE_POS : MRG_MAX_NUM_CANDS; 587 #endif 588 #if POZNAN_EIVD 589 const Bool bEIVDAvailable = pcCU->getSlice()->getMP()->isEIVDEnabled(); 590 Bool bEIVDModifyMergeIdx = true; 587 591 #endif 588 592 //--- set number of candidates and availability --- … … 611 615 } 612 616 } 617 618 #if POZNAN_EIVD 619 if(bEIVDAvailable) 620 { 621 UInt uiEIVDMergePos = POZNAN_EIVD_MERGE_POS; 622 #if HHI_MPI 623 if(bMVIAvailable && uiEIVDMergePos>=uiMviMergePos) uiEIVDMergePos++; 624 #endif 625 for( Int iIdx = MRG_MAX_NUM_CANDS-2; iIdx >= (Int)uiEIVDMergePos; iIdx-- ) 626 { 627 Int iWrIdx = iIdx+1; 628 #if HHI_MPI 629 if(bMVIAvailable) 630 { 631 if(iIdx==(Int)uiMviMergePos) continue; 632 if(iWrIdx==(Int)uiMviMergePos) iWrIdx++; 633 } 634 #endif 635 if(iWrIdx>=MRG_MAX_NUM_CANDS) continue; 636 637 abAvailable[ iWrIdx ] = abAvailable[ iIdx ]; 638 } 639 abAvailable[ uiEIVDMergePos ] = ( pcCU->getNeighbourCandIdx( POZNAN_EIVD_MRG_CAND, uiAbsPartIdx ) == POZNAN_EIVD_MRG_CAND + 1 ); 640 641 uiNumCand = 0; for( UInt uiIdx = 0; uiIdx < MRG_MAX_NUM_CANDS; uiIdx++ ) if(abAvailable[ uiIdx ]) uiNumCand++; 642 } 643 #endif 644 613 645 AOF( uiNumCand > 1 ); 614 646 … … 665 697 { 666 698 pcCU->setTextureModeDepthSubParts( uiDepth, uiAbsPartIdx, uiDepth ); 699 #if POZNAN_EIVD 700 bEIVDModifyMergeIdx = false; 701 #endif 702 } 703 #endif 704 705 #if POZNAN_EIVD 706 if(bEIVDAvailable && bEIVDModifyMergeIdx) 707 { 708 if(ruiMergeIndex==POZNAN_EIVD_MERGE_POS) ruiMergeIndex = POZNAN_EIVD_MRG_CAND; 709 else if(ruiMergeIndex>POZNAN_EIVD_MERGE_POS) ruiMergeIndex--; 667 710 } 668 711 #endif … … 694 737 Void TDecSbac::parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex, UInt uiAbsPartIdx, UInt uiDepth ) 695 738 { 696 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI 739 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI || POZNAN_EIVD 697 740 if( 698 741 #if HHI_INTER_VIEW_MOTION_PRED … … 701 744 #if HHI_MPI 702 745 ( pcCU->getSlice()->getSPS()->getUseMVI() && pcCU->getSlice()->getSliceType() != I_SLICE && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) || 746 #endif 747 #if POZNAN_EIVD 748 ( pcCU->getSlice()->getMP()->isEIVDEnabled() ) || 703 749 #endif 704 750 0 -
branches/0.2-poznan-univ/source/Lib/TLibDecoder/TDecSbac.h
r5 r12 144 144 Void parseMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ); 145 145 Void parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex, UInt uiAbsPartIdx, UInt uiDepth ); 146 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI 146 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI || POZNAN_EIVD 147 147 Void parseMergeIndexMV ( TComDataCU* pcCU, UInt& ruiMergeIndex, UInt uiAbsPartIdx, UInt uiDepth ); 148 148 #endif -
branches/0.2-poznan-univ/source/Lib/TLibDecoder/TDecSlice.cpp
r5 r12 98 98 g_bJustDoIt = g_bEncDecTraceEnable; 99 99 #endif 100 101 // JK { 102 DTRACE_CABAC_V( g_nSymbolCounter++ ); 103 DTRACE_CABAC_T( "\tCU: " ); 104 DTRACE_CABAC_V( iCUAddr ); 105 DTRACE_CABAC_T( "\n" ); 106 // JK } 107 100 108 m_pcCuDecoder->decodeCU ( pcCU, uiIsLast ); 101 109 m_pcCuDecoder->decompressCU ( pcCU ); -
branches/0.2-poznan-univ/source/Lib/TLibDecoder/TDecTop.cpp
r11 r12 53 53 m_aaiCodedScale [ uiId ] = new Int [ MAX_NUMBER_VIEWS ]; 54 54 } 55 #if POZNAN_ SYNTH55 #if POZNAN_CU_SKIP || POZNAN_CU_SYNTH || (POZNAN_MP && !POZNAN_MP_USE_DEPTH_MAP_GENERATION) 56 56 xCreateLUTs ( (UInt)MAX_NUMBER_VIEWS, (UInt)MAX_NUMBER_VIEWS, m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT); 57 57 … … 73 73 delete [] m_aiViewReceived; 74 74 75 #if POZNAN_ SYNTH75 #if POZNAN_CU_SKIP || POZNAN_CU_SYNTH || (POZNAN_MP && !POZNAN_MP_USE_DEPTH_MAP_GENERATION) 76 76 xDeleteArray( m_adBaseViewShiftLUT, MAX_NUMBER_VIEWS, MAX_NUMBER_VIEWS, 2 ); 77 77 xDeleteArray( m_aiBaseViewShiftLUT, MAX_NUMBER_VIEWS, MAX_NUMBER_VIEWS, 2 ); … … 91 91 } 92 92 93 #if POZNAN_ SYNTH93 #if POZNAN_CU_SKIP || POZNAN_CU_SYNTH || (POZNAN_MP && !POZNAN_MP_USE_DEPTH_MAP_GENERATION) 94 94 /* 95 95 Void … … 294 294 m_aaiCodedScale [ uiViewId ][ uiBaseId ] = pcSlice->getInvCodedScale () [ uiBaseId ]; 295 295 m_aaiCodedOffset[ uiViewId ][ uiBaseId ] = pcSlice->getInvCodedOffset() [ uiBaseId ]; 296 #if POZNAN_ SYNTH296 #if POZNAN_CU_SKIP || POZNAN_CU_SYNTH || (POZNAN_MP && !POZNAN_MP_USE_DEPTH_MAP_GENERATION) 297 297 xInitLUTs(uiBaseId,uiViewId,m_aaiCodedScale [ uiBaseId ][ uiViewId ],m_aaiCodedOffset[ uiBaseId ][ uiViewId ],m_adBaseViewShiftLUT,m_aiBaseViewShiftLUT); 298 298 xInitLUTs(uiViewId,uiBaseId,m_aaiCodedScale [ uiViewId ][ uiBaseId ],m_aaiCodedOffset[ uiViewId ][ uiBaseId ],m_adBaseViewShiftLUT,m_aiBaseViewShiftLUT); … … 305 305 m_aaiCodedScale [ uiViewId ][ uiBaseId ] = pcSlice->getSPS()->getInvCodedScale () [ uiBaseId ]; 306 306 m_aaiCodedOffset[ uiViewId ][ uiBaseId ] = pcSlice->getSPS()->getInvCodedOffset() [ uiBaseId ]; 307 #if POZNAN_ SYNTH307 #if POZNAN_CU_SKIP || POZNAN_CU_SYNTH || (POZNAN_MP && !POZNAN_MP_USE_DEPTH_MAP_GENERATION) 308 308 xInitLUTs(uiBaseId,uiViewId,m_aaiCodedScale [ uiBaseId ][ uiViewId ],m_aaiCodedOffset[ uiBaseId ][ uiViewId ],m_adBaseViewShiftLUT,m_aiBaseViewShiftLUT); 309 309 xInitLUTs(uiViewId,uiBaseId,m_aaiCodedScale [ uiViewId ][ uiBaseId ],m_aaiCodedOffset[ uiViewId ][ uiBaseId ],m_adBaseViewShiftLUT,m_aiBaseViewShiftLUT); … … 323 323 m_aaiCodedScale [ uiViewId ][ uiBaseId ] = pcSlice->getInvCodedScale () [ uiBaseId ]; 324 324 m_aaiCodedOffset[ uiViewId ][ uiBaseId ] = pcSlice->getInvCodedOffset() [ uiBaseId ]; 325 #if POZNAN_ SYNTH325 #if POZNAN_CU_SKIP || POZNAN_CU_SYNTH || (POZNAN_MP && !POZNAN_MP_USE_DEPTH_MAP_GENERATION) 326 326 xInitLUTs(uiBaseId,uiViewId,m_aaiCodedScale [ uiBaseId ][ uiViewId ],m_aaiCodedOffset[ uiBaseId ][ uiViewId ],m_adBaseViewShiftLUT,m_aiBaseViewShiftLUT); 327 327 xInitLUTs(uiViewId,uiBaseId,m_aaiCodedScale [ uiViewId ][ uiBaseId ],m_aaiCodedOffset[ uiViewId ][ uiBaseId ],m_adBaseViewShiftLUT,m_aiBaseViewShiftLUT); … … 411 411 m_bFirstSliceInSequence = true; 412 412 m_pcCamParsCollector = 0; 413 #if POZNAN_MP 414 m_pcMP = NULL; 415 #endif 413 416 } 414 417 … … 441 444 #if HHI_INTER_VIEW_RESIDUAL_PRED 442 445 m_cResidualGenerator.destroy(); 446 #endif 447 448 #if POZNAN_MP 449 m_pcMP = NULL; 443 450 #endif 444 451 } … … 478 485 m_cResidualGenerator.init( &m_cTrQuant, &m_cDepthMapGenerator ); 479 486 #endif 487 488 #if POZNAN_MP 489 m_pcMP = pcTAppDecTop->getMP(); 490 #endif 480 491 } 481 492 … … 604 615 pcPic->removeUsedPelsMapBuffer(); 605 616 #endif 606 #if POZNAN_ AVAIL_MAP617 #if POZNAN_CU_SYNTH || POZNAN_CU_SKIP 607 618 pcPic->removeAvailabilityBuffer(); 608 619 #endif 609 #if POZNAN_ SYNTH_VIEW620 #if POZNAN_CU_SYNTH 610 621 pcPic->removeSynthesisBuffer(); 622 #endif 623 #if POZNAN_TEXTURE_TU_DELTA_QP_ACCORDING_TO_DEPTH 624 pcPic->removeSynthesisDepthBuffer(); 611 625 #endif 612 626 } … … 696 710 else 697 711 { 712 #if POZNAN_NONLINEAR_DEPTH 713 // For texture complete depth power information. Depth power is sended, for example, for base view depth map and it should be available prior non-base texture decoding 714 if(!cTempSPS.isDepth() && cTempSPS.getViewId()) 715 { 716 Float fDepthPower = getDecTop()->getPicFromView( 0, pcPic->getPOC(), true )->getSPS()->getDepthPower(); 717 cTempSPS.setDepthPower(fDepthPower); 718 } 719 #endif 698 720 cComSPS = cTempSPS; 699 721 return false; 700 722 } 723 701 724 702 725 // create ALF temporary buffer … … 710 733 } 711 734 m_uiValidPS |= 1; 735 736 #if POZNAN_MP 737 #if POZNAN_MP_USE_DEPTH_MAP_GENERATION 738 m_pcMP->init( m_cSPS.getHeight(), m_cSPS.getWidth() ); 739 #else 740 m_pcMP->init( m_cSPS.getHeight(), m_cSPS.getWidth(), m_pcCamParsCollector->getBaseViewShiftLUTI()); 741 #endif 742 #endif 712 743 713 744 return false; … … 820 851 m_apcSlicePilot = pcPic->getPicSym()->getSlice(m_uiSliceIdx); 821 852 pcPic->getPicSym()->setSlice(pcSlice, m_uiSliceIdx); 853 854 #if POZNAN_MP 855 pcSlice->setMP(m_pcMP); 856 #endif 822 857 823 858 if (bNextSlice) … … 875 910 #endif 876 911 877 #if POZNAN_ SYNTH878 if( m_pcCamParsCollector )912 #if POZNAN_CU_SKIP || POZNAN_CU_SYNTH 913 if( m_pcCamParsCollector ) 879 914 { 880 915 m_pcCamParsCollector->setSlice( pcSlice ); 881 916 } 882 917 //if(!getIsDepth()) 883 getDecTop()->storeSynthPicsInBuffer(pcSlice->getViewIdx(),pcSlice->getSPS()->getViewOrderIdx(),pcSlice->getPOC(),getIsDepth()); 918 getDecTop()->storeSynthPicsInBuffer(pcSlice->getViewIdx(),pcSlice->getSPS()->getViewOrderIdx(),pcSlice->getPOC(),getIsDepth()); 919 #endif 920 921 #if POZNAN_MP 922 std::vector<TComPic*> apcSpatDataRefPics = getDecTop()->getSpatialRefPics( pcPic->getViewIdx(), pcSlice->getPOC(), m_cSPS.isDepth() ); 923 pcSlice->getMP()->setRefPicsList(&apcSpatDataRefPics); 924 #if !POZNAN_MP_USE_DEPTH_MAP_GENERATION 925 std::vector<TComPic*> apcSpatDepthRefPics = getDecTop()->getSpatialRefPics( pcPic->getViewIdx(), pcSlice->getPOC(), true ); 926 pcSlice->getMP()->setDepthRefPicsList(&apcSpatDepthRefPics); 927 #endif 884 928 #endif 885 929 886 930 // Decode a picture 887 931 m_cGopDecoder.decompressGop ( bEos, pcBitstream, pcPic, false ); 932 933 #if POZNAN_MP 934 pcSlice->getMP()->disable(); 935 #endif 888 936 889 937 if( m_pcCamParsCollector ) -
branches/0.2-poznan-univ/source/Lib/TLibDecoder/TDecTop.h
r11 r12 55 55 #include "TDecCAVLC.h" 56 56 57 #if POZNAN_MP 58 #include "../TLibCommon/TComMP.h" 59 #endif 60 57 61 // ==================================================================================================================== 58 62 // Class definition … … 71 75 Void uninit (); 72 76 Void setSlice ( TComSlice* pcSlice ); 73 #if POZNAN_ SYNTH77 #if POZNAN_CU_SKIP || (POZNAN_MP && !POZNAN_MP_USE_DEPTH_MAP_GENERATION) 74 78 Double**** getBaseViewShiftLUTD () { return m_adBaseViewShiftLUT; } 75 79 Int**** getBaseViewShiftLUTI () { return m_aiBaseViewShiftLUT; } … … 99 103 UInt m_uiMaxViewId; 100 104 101 #if POZNAN_ SYNTH105 #if POZNAN_CU_SKIP || POZNAN_CU_SYNTH || (POZNAN_MP && !POZNAN_MP_USE_DEPTH_MAP_GENERATION) 102 106 103 107 UInt m_uiBitDepthForLUT; … … 118 122 }; 119 123 120 #if POZNAN_ SYNTH124 #if POZNAN_CU_SKIP || POZNAN_CU_SYNTH || (POZNAN_MP && !POZNAN_MP_USE_DEPTH_MAP_GENERATION) 121 125 template <class T> 122 126 Void CamParsCollector::xDeleteArray( T*& rpt, UInt uiSize1, UInt uiSize2, UInt uiSize3 ) … … 223 227 #endif 224 228 229 #if POZNAN_MP 230 TComMP* m_pcMP; 231 #endif 232 225 233 Bool m_bIsDepth; 226 234 Int m_iViewIdx;
Note: See TracChangeset for help on using the changeset viewer.