Changeset 367 in 3DVCSoftware for branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder
- Timestamp:
- 3 May 2013, 17:09:57 (12 years ago)
- Location:
- branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/NALwrite.cpp
r324 r367 53 53 bsNALUHeader.write(0,1); // forbidden_zero_bit 54 54 bsNALUHeader.write(nalu.m_nalUnitType, 6); // nal_unit_type 55 #if H_MV56 bsNALUHeader.write(nalu.m_layerId, 6); // layerId57 #else58 55 bsNALUHeader.write(nalu.m_reservedZero6Bits, 6); // nuh_reserved_zero_6bits 59 #endif60 56 bsNALUHeader.write(nalu.m_temporalId+1, 3); // nuh_temporal_id_plus1 61 57 … … 146 142 { 147 143 naluDest.m_nalUnitType = naluSrc.m_nalUnitType; 148 #if H_MV149 naluDest.m_layerId = naluSrc.m_layerId;150 #else151 144 naluDest.m_reservedZero6Bits = naluSrc.m_reservedZero6Bits; 152 #endif153 145 naluDest.m_temporalId = naluSrc.m_temporalId; 154 146 naluDest.m_Bitstream = naluSrc.m_Bitstream; -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/NALwrite.h
r324 r367 57 57 NalUnitType nalUnitType, 58 58 UInt temporalID = 0, 59 #if H_MV60 Int layerId = 0)61 #else62 59 UInt reserved_zero_6bits = 0) 63 #endif64 #if H_MV65 : NALUnit(nalUnitType, temporalID, layerId)66 #else67 60 : NALUnit(nalUnitType, temporalID, reserved_zero_6bits) 68 #endif69 61 , m_Bitstream() 70 62 {} -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncAnalyze.cpp
r324 r367 36 36 */ 37 37 38 #if !H_MV39 38 #include "TEncAnalyze.h" 40 #endif41 39 42 40 //! \ingroup TLibEncoder … … 47 45 ////////////////////////////////////////////////////////////////////// 48 46 49 #if !H_MV50 47 TEncAnalyze m_gcAnalyzeAll; 51 48 TEncAnalyze m_gcAnalyzeI; 52 49 TEncAnalyze m_gcAnalyzeP; 53 50 TEncAnalyze m_gcAnalyzeB; 54 #endif55 51 56 52 //! \} -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncAnalyze.h
r324 r367 150 150 }; 151 151 152 #if !H_MV153 152 extern TEncAnalyze m_gcAnalyzeAll; 154 153 extern TEncAnalyze m_gcAnalyzeI; 155 154 extern TEncAnalyze m_gcAnalyzeP; 156 155 extern TEncAnalyze m_gcAnalyzeB; 157 #endif158 156 159 157 //! \} -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r366 r367 549 549 } 550 550 551 #if H_MV552 WRITE_FLAG( 1, "sps_extension_flag" );553 554 WRITE_FLAG( pcSPS->getInterViewMvVertConstraintFlag() ? 1 : 0, "inter_view_mv_vert_constraint_flag" );555 #else556 551 WRITE_FLAG( 0, "sps_extension_flag" ); 557 #endif558 552 } 559 553 … … 562 556 WRITE_CODE( pcVPS->getVPSId(), 4, "vps_video_parameter_set_id" ); 563 557 WRITE_CODE( 3, 2, "vps_reserved_three_2bits" ); 564 #if H_MV565 WRITE_CODE( pcVPS->getMaxLayers() - 1, 6, "vps_max_layers_minus1" );566 #else567 558 WRITE_CODE( 0, 6, "vps_reserved_zero_6bits" ); 568 #endif569 559 WRITE_CODE( pcVPS->getMaxTLayers() - 1, 3, "vps_max_sub_layers_minus1" ); 570 560 WRITE_FLAG( pcVPS->getTemporalNestingFlag(), "vps_temporal_id_nesting_flag" ); 571 561 assert (pcVPS->getMaxTLayers()>1||pcVPS->getTemporalNestingFlag()); 572 #if H_MV573 WRITE_CODE( 0xffff, 16, "vps_extension_offset" );574 #else575 562 WRITE_CODE( 0xffff, 16, "vps_reserved_ffff_16bits" ); 576 #endif577 563 codePTL( pcVPS->getPTL(), true, pcVPS->getMaxTLayers() - 1 ); 578 564 #if SIGNAL_BITRATE_PICRATE_IN_VPS … … 597 583 598 584 assert( pcVPS->getNumHrdParameters() <= MAX_VPS_NUM_HRD_PARAMETERS ); 599 #if H_MV600 assert( pcVPS->getMaxNuhLayerId() < MAX_VPS_NUH_LAYER_ID_PLUS1 );601 WRITE_CODE( pcVPS->getMaxNuhLayerId(), 6, "vps_max_nuh_layer_id" );602 #else603 585 assert( pcVPS->getMaxNuhReservedZeroLayerId() < MAX_VPS_NUH_RESERVED_ZERO_LAYER_ID_PLUS1 ); 604 586 WRITE_CODE( pcVPS->getMaxNuhReservedZeroLayerId(), 6, "vps_max_nuh_reserved_zero_layer_id" ); 605 #endif606 587 pcVPS->setMaxOpSets(1); 607 588 WRITE_UVLC( pcVPS->getMaxOpSets() - 1, "vps_max_op_sets_minus1" ); … … 609 590 { 610 591 // Operation point set 611 #if H_MV612 for( UInt i = 0; i <= pcVPS->getMaxNuhLayerId(); i ++ )613 #else614 592 for( UInt i = 0; i <= pcVPS->getMaxNuhReservedZeroLayerId(); i ++ ) 615 #endif616 593 { 617 594 // Only applicable for version 1 … … 654 631 } 655 632 #endif 656 #if H_MV657 WRITE_FLAG( 1, "vps_extension_flag" );658 659 m_pcBitIf->writeAlignOne();660 661 WRITE_FLAG( pcVPS->getAvcBaseLayerFlag() ? 1 : 0, "avc_base_layer_flag" );662 WRITE_FLAG( pcVPS->getSplittingFlag() ? 1 : 0, "splitting_flag" );663 664 for( Int type = 0; type < MAX_NUM_SCALABILITY_TYPES; type++ )665 {666 WRITE_FLAG( pcVPS->getScalabilityMask( type ) ? 1 : 0, "scalability_mask[i]" );667 }668 669 for( Int sIdx = 0; sIdx < pcVPS->getNumScalabilityTypes( ); sIdx++ )670 {671 WRITE_CODE( pcVPS->getDimensionIdLen( sIdx ) - 1 , 3, "dimension_id_len_minus1[j]");672 }673 674 WRITE_FLAG( pcVPS->getVpsNuhLayerIdPresentFlag() ? 1 : 0, "vps_nuh_layer_id_present_flag");675 676 for( Int layer = 1; layer <= pcVPS->getMaxLayers() - 1; layer++ )677 {678 if (pcVPS->getVpsNuhLayerIdPresentFlag() )679 WRITE_CODE( pcVPS->getLayerIdInNuh( layer ), 6, "layer_id_in_nuh[i]");680 for( Int sIdx = 0; sIdx < pcVPS->getNumScalabilityTypes() ; sIdx++ )681 {682 WRITE_CODE( pcVPS->getDimensionId( layer, sIdx ), pcVPS->getDimensionIdLen( sIdx ), "dimension_id[i][j]");683 }684 }685 686 for( Int layerSet = 1; layerSet <= pcVPS->getMaxOpSets() - 1; layerSet++ )687 {688 WRITE_FLAG( pcVPS->getVpsProfilePresentFlag( layerSet ) ? 1 : 0, "vps_profile_present_flag[lsIdx]" );689 if( pcVPS->getVpsProfilePresentFlag( layerSet ) == false )690 {691 WRITE_UVLC( pcVPS->getProfileLayerSetRefMinus1( layerSet ), "profile_layer_set_ref_minus1[lsIdx]" );692 }693 codePTL( pcVPS->getPTL( layerSet ), pcVPS->getVpsProfilePresentFlag( layerSet ), pcVPS->getMaxTLayers() - 1 );694 }695 696 WRITE_UVLC( pcVPS->getNumOutputLayerSets(), "num_output_layer_sets" );697 698 for( Int layerSet = 0; layerSet < pcVPS->getNumOutputLayerSets(); layerSet++ )699 {700 WRITE_UVLC( pcVPS->getOutputLayerSetIdx( layerSet ), "output_layer_set_idx[i]" );701 for( Int layer = 0; layer <= pcVPS->getMaxNuhLayerId(); layer++ )702 {703 if( pcVPS->getLayerIdIncludedFlag( pcVPS->getOutputLayerSetIdx( layerSet ), layer ) == true )704 {705 WRITE_FLAG( pcVPS->getOutputLayerFlag( layerSet, layer ) ? 1 : 0, "output_layer_flag" );706 }707 }708 }709 710 for( Int i = 1; i <= pcVPS->getMaxLayers() - 1; i++ )711 {712 for( Int j = 0; j < i; j++ )713 {714 WRITE_FLAG( pcVPS->getDirectDependencyFlag( i, j ), "direct_dependency_flag[i][j]" );715 }716 }717 WRITE_FLAG( 0, "vps_extension2_flag" );718 #else719 633 WRITE_FLAG( 0, "vps_extension_flag" ); 720 #endif721 634 722 635 //future extensions here.. … … 1091 1004 for (Int i = 0; i < maxNumSubLayersMinus1; i++) 1092 1005 { 1093 #if !H_MV1094 1006 if(profilePresentFlag) 1095 1007 { 1096 #endif1097 1008 WRITE_FLAG( pcPTL->getSubLayerProfilePresentFlag(i), "sub_layer_profile_present_flag[i]" ); 1098 #if !H_MV 1099 } 1100 #endif 1009 } 1101 1010 1102 1011 WRITE_FLAG( pcPTL->getSubLayerLevelPresentFlag(i), "sub_layer_level_present_flag[i]" ); -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncCfg.h
r364 r367 69 69 Int m_numRefIdc; 70 70 Int m_refIdc[MAX_NUM_REF_PICS+1]; 71 #if H_MV72 Int m_numInterViewRefPics;73 Int m_interViewRefs [MAX_NUM_REF_PICS];74 Int m_interViewRefPosL[2][MAX_NUM_REF_PICS];75 #endif76 71 GOPEntry() 77 72 : m_POC(-1) … … 88 83 , m_deltaRPS(0) 89 84 , m_numRefIdc(0) 90 #if H_MV91 , m_numInterViewRefPics(0)92 #endif93 85 { 94 86 ::memset( m_referencePics, 0, sizeof(m_referencePics) ); 95 87 ::memset( m_usedByCurrPic, 0, sizeof(m_usedByCurrPic) ); 96 88 ::memset( m_refIdc, 0, sizeof(m_refIdc) ); 97 #if H_MV98 ::memset( m_interViewRefs, 0, sizeof(m_interViewRefs) );99 ::memset( m_interViewRefPosL[0], -1, sizeof(m_interViewRefPosL[0]) ); ::memset( m_interViewRefPosL[1], -1, sizeof(m_interViewRefPosL[1]) );100 #endif101 89 } 102 90 }; … … 139 127 UInt m_uiDecodingRefreshType; ///< the type of decoding refresh employed for the random access. 140 128 Int m_iGOPSize; 141 #if H_MV142 GOPEntry m_GOPList[MAX_GOP+1];143 #else144 129 GOPEntry m_GOPList[MAX_GOP]; 145 #endif146 130 Int m_extraRPSs; 147 131 Int m_maxDecPicBuffering[MAX_TLAYER]; … … 353 337 Bool m_useStrongIntraSmoothing; ///< enable the use of strong intra smoothing (bi_linear interpolation) for 32x32 blocks when reference samples are flat. 354 338 355 #if H_MV356 Int m_layerId;357 Int m_layerIdInVps;358 Int m_viewId;359 #if H_3D360 Bool m_isDepth;361 #endif362 #endif363 339 public: 364 340 TEncCfg() 365 341 : m_puiColumnWidth() 366 342 , m_puiRowHeight() 367 #if H_MV368 , m_layerId(-1)369 , m_layerIdInVps(-1)370 , m_viewId(-1)371 #if H_3D372 , m_isDepth(false)373 #endif374 #endif375 343 {} 376 344 … … 394 362 Void setFramesToBeEncoded ( Int i ) { m_framesToBeEncoded = i; } 395 363 396 #if H_MV397 Void setLayerId ( Int layerId ) { m_layerId = layerId; }398 Int getLayerId () { return m_layerId; }399 Int getLayerIdInVps () { return m_layerIdInVps; }400 Void setLayerIdInVps ( Int layerIdInVps) { m_layerIdInVps = layerIdInVps; }401 Void setViewId ( Int viewId ) { m_viewId = viewId; }402 Int getViewId () { return m_viewId; }403 #if H_3D404 Void setIsDepth ( Bool isDepth ) { m_isDepth = isDepth; }405 Bool getIsDepth () { return m_isDepth; }406 #endif407 #endif408 364 //====== Coding Structure ======== 409 365 Void setIntraPeriod ( Int i ) { m_uiIntraPeriod = (UInt)i; } 410 366 Void setDecodingRefreshType ( Int i ) { m_uiDecodingRefreshType = (UInt)i; } 411 367 Void setGOPSize ( Int i ) { m_iGOPSize = i; } 412 #if H_MV413 Void setGopList ( GOPEntry* GOPList ) { for ( Int i = 0; i < MAX_GOP+1; i++ ) m_GOPList[i] = GOPList[i]; }414 #else415 368 Void setGopList ( GOPEntry* GOPList ) { for ( Int i = 0; i < MAX_GOP; i++ ) m_GOPList[i] = GOPList[i]; } 416 #endif417 369 Void setExtraRPSs ( Int i ) { m_extraRPSs = i; } 418 370 GOPEntry getGOPEntry ( Int i ) { return m_GOPList[i]; } -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r366 r367 100 100 #endif 101 101 #endif 102 #if H_MV103 m_layerId = 0;104 m_viewId = 0;105 m_pocLastCoded = -1;106 #if H_3D107 m_isDepth = false;108 #endif109 #endif110 102 return; 111 103 } … … 147 139 m_totalCoded = 0; 148 140 149 #if H_MV150 m_ivPicLists = pcTEncTop->getIvPicLists();151 m_layerId = pcTEncTop->getLayerId();152 m_viewId = pcTEncTop->getViewId();153 #if H_3D154 m_isDepth = pcTEncTop->getIsDepth();155 #endif156 #endif157 141 } 158 142 … … 358 342 // Public member functions 359 343 // ==================================================================================================================== 360 #if H_MV361 Void TEncGOP::initGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsInGOP)362 {363 xInitGOP( iPOCLast, iNumPicRcvd, rcListPic, rcListPicYuvRecOut );364 m_iNumPicCoded = 0;365 }366 #endif367 #if H_MV368 Void TEncGOP::compressPicInGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsInGOP, Int iGOPid)369 #else370 344 Void TEncGOP::compressGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsInGOP) 371 #endif372 345 { 373 346 TComPic* pcPic; … … 381 354 TComOutputBitstream* pcSubstreamsOut = NULL; 382 355 383 #if !H_MV384 356 xInitGOP( iPOCLast, iNumPicRcvd, rcListPic, rcListPicYuvRecOut ); 385 357 386 358 m_iNumPicCoded = 0; 387 #endif388 359 SEIPictureTiming pictureTimingSEI; 389 360 #if L0208_SOP_DESCRIPTION_SEI … … 408 379 UInt *accumNalsDU = NULL; 409 380 SEIDecodingUnitInfo decodingUnitInfoSEI; 410 #if !H_MV411 381 for ( Int iGOPid=0; iGOPid < m_iGopSize; iGOPid++ ) 412 #endif413 382 { 414 383 UInt uiColDir = 1; … … 469 438 if(pocCurr>=m_pcCfg->getFramesToBeEncoded()) 470 439 { 471 #if H_MV472 delete pcBitstreamRedirect;473 return;474 #else475 440 continue; 476 #endif477 441 } 478 442 … … 495 459 pcSlice->setLastIDR(m_iLastIDR); 496 460 pcSlice->setSliceIdx(0); 497 #if H_MV498 pcPic ->setLayerId ( getLayerId() );499 pcPic ->setViewId ( getViewId() );500 pcSlice->setLayerId ( getLayerId() );501 pcSlice->setViewId ( getViewId() );502 pcSlice->setVPS ( m_pcEncTop->getVPS() );503 #if H_3D504 pcPic ->setIsDepth( getIsDepth() );505 pcSlice->setIsDepth( getIsDepth() );506 #endif507 #endif508 461 //set default slice level flag to the same as SPS level flag 509 462 pcSlice->setLFCrossSliceBoundaryFlag( pcSlice->getPPS()->getLoopFilterAcrossSlicesEnabledFlag() ); … … 543 496 } 544 497 545 #if H_MV 498 if(pcSlice->getSliceType()==B_SLICE&&m_pcCfg->getGOPEntry(iGOPid).m_sliceType=='P') 499 { 500 pcSlice->setSliceType(P_SLICE); 501 } 546 502 // Set the nal unit type 547 503 pcSlice->setNalUnitType(getNalUnitType(pocCurr, m_iLastIDR)); 548 if( pcSlice->getSliceType() == B_SLICE )549 {550 if( m_pcCfg->getGOPEntry( ( pcSlice->getRapPicFlag() && getLayerId() > 0 ) ? MAX_GOP : iGOPid ).m_sliceType == 'P' )551 {552 pcSlice->setSliceType( P_SLICE );553 }554 }555 #else556 if(pcSlice->getSliceType()==B_SLICE&&m_pcCfg->getGOPEntry(iGOPid).m_sliceType=='P')557 {558 pcSlice->setSliceType(P_SLICE);559 }560 // Set the nal unit type561 pcSlice->setNalUnitType(getNalUnitType(pocCurr, m_iLastIDR));562 #endif563 504 if(pcSlice->getTemporalLayerNonReferenceFlag()) 564 505 { … … 648 589 refPicListModification->setRefPicListModificationFlagL0(0); 649 590 refPicListModification->setRefPicListModificationFlagL1(0); 650 #if H_MV651 pcSlice->createAndApplyIvReferencePictureSet( m_ivPicLists, m_refPicSetInterLayer );652 pcSlice->setNumRefIdx(REF_PIC_LIST_0,min(m_pcCfg->getGOPEntry( (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid ).m_numRefPicsActive,( pcSlice->getRPS()->getNumberOfPictures() + (Int) m_refPicSetInterLayer.size() ) ) );653 pcSlice->setNumRefIdx(REF_PIC_LIST_1,min(m_pcCfg->getGOPEntry( (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid ).m_numRefPicsActive,( pcSlice->getRPS()->getNumberOfPictures() + (Int) m_refPicSetInterLayer.size() ) ) );654 xSetRefPicListModificationsMvc( pcSlice, pocCurr, iGOPid );655 #else656 591 pcSlice->setNumRefIdx(REF_PIC_LIST_0,min(m_pcCfg->getGOPEntry(iGOPid).m_numRefPicsActive,pcSlice->getRPS()->getNumberOfPictures())); 657 592 pcSlice->setNumRefIdx(REF_PIC_LIST_1,min(m_pcCfg->getGOPEntry(iGOPid).m_numRefPicsActive,pcSlice->getRPS()->getNumberOfPictures())); 658 #endif659 593 660 594 #if ADAPTIVE_QP_SELECTION … … 663 597 664 598 // Set reference list 665 #if H_MV666 pcSlice->setRefPicList( rcListPic, m_refPicSetInterLayer );667 #else668 599 pcSlice->setRefPicList ( rcListPic ); 669 #endif670 600 671 601 // Slice info. refinement 672 #if H_MV673 if ( pcSlice->getSliceType() == B_SLICE )674 {675 if( m_pcCfg->getGOPEntry( ( pcSlice->getRapPicFlag() == true && getLayerId() > 0 ) ? MAX_GOP : iGOPid ).m_sliceType == 'P' )676 {677 pcSlice->setSliceType( P_SLICE );678 }679 }680 #else681 602 if ( (pcSlice->getSliceType() == B_SLICE) && (pcSlice->getNumRefIdx(REF_PIC_LIST_1) == 0) ) 682 603 { 683 604 pcSlice->setSliceType ( P_SLICE ); 684 605 } 685 #endif686 606 #if !L0034_COMBINED_LIST_CLEANUP 687 607 if (pcSlice->getSliceType() != B_SLICE || !pcSlice->getSPS()->getUseLComb()) … … 1100 1020 { 1101 1021 OutputNALUnit nalu(NAL_UNIT_VPS); 1102 #if H_MV1103 if( getLayerId() == 0 )1104 {1105 #endif1106 1022 m_pcEntropyCoder->setBitstream(&nalu.m_Bitstream); 1107 1023 m_pcEntropyCoder->encodeVPS(m_pcEncTop->getVPS()); … … 1112 1028 #endif 1113 1029 1114 #if H_MV1115 }1116 nalu = NALUnit(NAL_UNIT_SPS, 0, getLayerId());1117 #else1118 1030 nalu = NALUnit(NAL_UNIT_SPS); 1119 #endif1120 1031 m_pcEntropyCoder->setBitstream(&nalu.m_Bitstream); 1121 1032 if (m_bSeqFirst) … … 1150 1061 #endif 1151 1062 1152 #if H_MV1153 nalu = NALUnit(NAL_UNIT_PPS, 0, getLayerId());1154 #else1155 1063 nalu = NALUnit(NAL_UNIT_PPS); 1156 #endif1157 1064 m_pcEntropyCoder->setBitstream(&nalu.m_Bitstream); 1158 1065 m_pcEntropyCoder->encodePPS(pcSlice->getPPS()); … … 1476 1383 m_pcEntropyCoder->resetEntropy (); 1477 1384 /* start slice NALunit */ 1478 #if H_MV1479 OutputNALUnit nalu( pcSlice->getNalUnitType(), pcSlice->getTLayer(), getLayerId() );1480 #else1481 1385 OutputNALUnit nalu( pcSlice->getNalUnitType(), pcSlice->getTLayer() ); 1482 #endif1483 1386 Bool sliceSegment = (!pcSlice->isNextSlice()); 1484 1387 if (!sliceSegment) … … 1707 1610 } 1708 1611 1709 #if !H_3D1710 1612 pcPic->compressMotion(); 1711 #endif1712 #if H_MV1713 m_pocLastCoded = pcPic->getPOC();1714 #endif1715 1613 //-- For time output for each slice 1716 1614 Double dEncTime = (Double)(clock()-iBeforeTime) / CLOCKS_PER_SEC; … … 2023 1921 2024 1922 pcPic->setReconMark ( true ); 2025 #if H_MV2026 TComSlice::markIvRefPicsAsShortTerm( m_refPicSetInterLayer );2027 std::vector<Int> temp;2028 TComSlice::markIvRefPicsAsUnused ( m_ivPicLists, temp, pcPic->getSlice(0)->getVPS(), m_layerId, pcPic->getPOC() );2029 #endif2030 1923 m_bFirst = false; 2031 1924 m_iNumPicCoded++; … … 2048 1941 if( accumNalsDU != NULL) delete accumNalsDU; 2049 1942 2050 #if !H_MV2051 1943 assert ( m_iNumPicCoded == iNumPicRcvd ); 2052 #endif2053 1944 } 2054 1945 2055 #if !H_MV2056 1946 Void TEncGOP::printOutSummary(UInt uiNumAllPicCoded) 2057 1947 { … … 2089 1979 printf("\nRVM: %.3lf\n" , xCalculateRVM()); 2090 1980 } 2091 #endif2092 1981 2093 1982 Void TEncGOP::preLoopFilterPicAll( TComPic* pcPic, UInt64& ruiDist, UInt64& ruiBits ) … … 2365 2254 2366 2255 //===== add PSNR ===== 2367 #if H_MV2368 m_pcEncTop->getAnalyzeAll()->addResult (dYPSNR, dUPSNR, dVPSNR, (Double)uibits);2369 #else2370 2256 m_gcAnalyzeAll.addResult (dYPSNR, dUPSNR, dVPSNR, (Double)uibits); 2371 #endif2372 2257 TComSlice* pcSlice = pcPic->getSlice(0); 2373 2258 if (pcSlice->isIntra()) 2374 2259 { 2375 #if H_MV2376 m_pcEncTop->getAnalyzeI()->addResult (dYPSNR, dUPSNR, dVPSNR, (Double)uibits);2377 #else2378 2260 m_gcAnalyzeI.addResult (dYPSNR, dUPSNR, dVPSNR, (Double)uibits); 2379 #endif2380 2261 } 2381 2262 if (pcSlice->isInterP()) 2382 2263 { 2383 #if H_MV2384 m_pcEncTop->getAnalyzeP()->addResult (dYPSNR, dUPSNR, dVPSNR, (Double)uibits);2385 #else2386 2264 m_gcAnalyzeP.addResult (dYPSNR, dUPSNR, dVPSNR, (Double)uibits); 2387 #endif2388 2265 } 2389 2266 if (pcSlice->isInterB()) 2390 2267 { 2391 #if H_MV2392 m_pcEncTop->getAnalyzeB()->addResult (dYPSNR, dUPSNR, dVPSNR, (Double)uibits);2393 #else2394 2268 m_gcAnalyzeB.addResult (dYPSNR, dUPSNR, dVPSNR, (Double)uibits); 2395 #endif2396 2269 } 2397 2270 … … 2400 2273 2401 2274 #if ADAPTIVE_QP_SELECTION 2402 #if H_MV2403 printf("Layer %3d POC %4d TId: %1d ( %c-SLICE, nQP %d QP %d ) %10d bits",2404 pcSlice->getLayerId(),2405 pcSlice->getPOC(),2406 pcSlice->getTLayer(),2407 c,2408 pcSlice->getSliceQpBase(),2409 pcSlice->getSliceQp(),2410 uibits );2411 #else2412 2275 printf("POC %4d TId: %1d ( %c-SLICE, nQP %d QP %d ) %10d bits", 2413 2276 pcSlice->getPOC(), … … 2417 2280 pcSlice->getSliceQp(), 2418 2281 uibits ); 2419 #endif2420 #else2421 #if H_MV2422 printf("Layer %3d POC %4d TId: %1d ( %c-SLICE, QP %d ) %10d bits",2423 pcSlice->getLayerId(),2424 pcSlice->getPOC()-pcSlice->getLastIDR(),2425 pcSlice->getTLayer(),2426 c,2427 pcSlice->getSliceQp(),2428 uibits );2429 2282 #else 2430 2283 printf("POC %4d TId: %1d ( %c-SLICE, QP %d ) %10d bits", … … 2434 2287 pcSlice->getSliceQp(), 2435 2288 uibits ); 2436 #endif2437 2289 2438 2290 #endif … … 2445 2297 for (Int iRefIndex = 0; iRefIndex < pcSlice->getNumRefIdx(RefPicList(iRefList)); iRefIndex++) 2446 2298 { 2447 #if H_MV2448 if( pcSlice->getLayerId() != pcSlice->getRefLayerId( RefPicList(iRefList), iRefIndex ) )2449 {2450 printf( "V%d ", pcSlice->getRefLayerId( RefPicList(iRefList), iRefIndex ) );2451 }2452 else2453 {2454 #endif2455 2299 printf ("%d ", pcSlice->getRefPOC(RefPicList(iRefList), iRefIndex)-pcSlice->getLastIDR()); 2456 #if H_MV2457 }2458 #endif2459 2300 } 2460 2301 printf("]"); … … 2822 2663 } 2823 2664 #endif 2824 #if H_MV2825 Void TEncGOP::xSetRefPicListModificationsMvc( TComSlice* pcSlice, UInt uiPOCCurr, UInt iGOPid )2826 {2827 TComVPS* vps = pcSlice->getVPS();2828 Int layer = pcSlice->getLayerIdInVps( );2829 2830 if( pcSlice->getSliceType() == I_SLICE || !(pcSlice->getPPS()->getListsModificationPresentFlag()) || vps->getNumDirectRefLayers( layer ) == 0 )2831 {2832 return;2833 }2834 2835 // analyze inter-view modifications2836 GOPEntry ge = m_pcCfg->getGOPEntry( (pcSlice->getRapPicFlag() && ( layer > 0) ) ? MAX_GOP : iGOPid );2837 2838 TComRefPicListModification* refPicListModification = pcSlice->getRefPicListModification();2839 2840 Int maxRefListSize = pcSlice->getNumRpsCurrTempList();2841 Int numTemporalRefs = maxRefListSize - vps->getNumDirectRefLayers( layer );2842 2843 2844 for (Int li = 0; li < 2; li ++) // Loop over lists L0 and L12845 {2846 Int numModifications = 0;2847 2848 for( Int k = 0; k < ge.m_numInterViewRefPics; k++ )2849 {2850 numModifications += ( ge.m_interViewRefPosL[li][k] >= 0 ) ? 1 : 0;2851 }2852 2853 // set inter-view modifications2854 if( (maxRefListSize > 1) && (numModifications > 0) )2855 {2856 refPicListModification->setRefPicListModificationFlagL( li, true );2857 Int tempList[16];2858 for( Int k = 0; k < 16; k++ ) { tempList[k] = -1; }2859 2860 Bool isModified = false;2861 for( Int k = 0; k < ge.m_numInterViewRefPics; k++ )2862 {2863 if( ge.m_interViewRefPosL[li][k] >= 0 )2864 {2865 Int orgIdx = numTemporalRefs;2866 Int targetIdx = ge.m_interViewRefPosL[ li ][ k ];2867 for( Int idx = 0; idx < vps->getNumDirectRefLayers( layer ); idx++ )2868 {2869 Int refLayer = vps->getLayerIdInVps( vps->getRefLayerId( layer, idx ) );2870 if( ( layer + ge.m_interViewRefs[ k ]) == refLayer )2871 {2872 tempList[ targetIdx ] = orgIdx;2873 isModified = ( targetIdx != orgIdx );2874 }2875 orgIdx++;2876 }2877 }2878 }2879 if( isModified )2880 {2881 Int temporalRefIdx = 0;2882 for( Int i = 0; i < pcSlice->getNumRefIdx( ( li == 0 ) ? REF_PIC_LIST_0 : REF_PIC_LIST_1 ); i++ )2883 {2884 if( tempList[i] >= 0 )2885 {2886 refPicListModification->setRefPicSetIdxL( li, i, tempList[i] );2887 }2888 else2889 {2890 refPicListModification->setRefPicSetIdxL( li, i, temporalRefIdx );2891 temporalRefIdx++;2892 }2893 }2894 }2895 else2896 {2897 refPicListModification->setRefPicListModificationFlagL( li, false );2898 }2899 }2900 }2901 }2902 #endif2903 2665 //! \} -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncGOP.h
r364 r367 97 97 SEIWriter m_seiWriter; 98 98 99 #if H_MV100 TComPicLists* m_ivPicLists;101 std::vector<TComPic*> m_refPicSetInterLayer;102 103 Int m_pocLastCoded;104 Int m_layerId;105 Int m_viewId;106 #if H_3D107 Bool m_isDepth;108 #endif109 #endif110 99 //--Adaptive Loop filter 111 100 TEncSampleAdaptiveOffset* m_pcSAO; … … 144 133 145 134 Void init ( TEncTop* pcTEncTop ); 146 #if H_MV147 Void initGOP ( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsInGOP);148 Void compressPicInGOP ( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsInGOP, Int iGOPid );149 #else150 135 Void compressGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRec, std::list<AccessUnit>& accessUnitsInGOP ); 151 #endif152 136 Void xAttachSliceDataToNalUnit (OutputNALUnit& rNalu, TComOutputBitstream*& rpcBitstreamRedirect); 153 137 154 #if H_MV155 Int getPocLastCoded () { return m_pocLastCoded; }156 Int getLayerId () { return m_layerId; }157 Int getViewId () { return m_viewId; }158 #if H_3D159 Bool getIsDepth () { return m_isDepth; }160 #endif161 #endif162 138 163 139 Int getGOPSize() { return m_iGopSize; } … … 165 141 TComList<TComPic*>* getListPic() { return m_pcListPic; } 166 142 167 #if !H_MV168 143 Void printOutSummary ( UInt uiNumAllPicCoded ); 169 #endif170 144 Void preLoopFilterPicAll ( TComPic* pcPic, UInt64& ruiDist, UInt64& ruiBits ); 171 145 … … 211 185 #endif 212 186 #endif 213 #if H_MV214 Void xSetRefPicListModificationsMvc( TComSlice* pcSlice, UInt uiPOCCurr, UInt iGOPid );215 #endif216 187 #if L0386_DB_METRIC 217 188 Void dblMetric( TComPic* pcPic, UInt uiNumSlices ); -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncSlice.cpp
r365 r367 219 219 220 220 // slice type 221 #if H_MV222 SliceType eSliceTypeBaseView;223 if( pocLast == 0 || pocCurr % m_pcCfg->getIntraPeriod() == 0 || m_pcGOPEncoder->getGOPSize() == 0 )224 {225 eSliceTypeBaseView = I_SLICE;226 }227 else228 {229 eSliceTypeBaseView = B_SLICE;230 }231 SliceType eSliceType = eSliceTypeBaseView;232 if( eSliceTypeBaseView == I_SLICE && m_pcCfg->getGOPEntry(MAX_GOP).m_POC == 0 && m_pcCfg->getGOPEntry(MAX_GOP).m_sliceType != 'I' )233 {234 eSliceType = B_SLICE;235 }236 #else237 221 SliceType eSliceType; 238 222 … … 241 225 242 226 rpcSlice->setSliceType ( eSliceType ); 243 #endif244 227 245 228 // ------------------------------------------------------------------------------------------------------------------ … … 270 253 if (!(( m_pcCfg->getMaxDeltaQP() == 0 ) && (dQP == -rpcSlice->getSPS()->getQpBDOffsetY() ) && (rpcSlice->getSPS()->getUseLossless()))) 271 254 { 272 #if H_MV273 dQP += m_pcCfg->getGOPEntry( (eSliceTypeBaseView == I_SLICE) ? MAX_GOP : iGOPid ).m_QPOffset;274 #else275 255 dQP += m_pcCfg->getGOPEntry(iGOPid).m_QPOffset; 276 #endif277 256 } 278 257 } … … 317 296 #endif 318 297 // Case #1: I or P-slices (key-frame) 319 #if H_MV320 Double dQPFactor;321 if( eSliceType != I_SLICE )322 {323 dQPFactor = m_pcCfg->getGOPEntry( (eSliceTypeBaseView == I_SLICE) ? MAX_GOP : iGOPid ).m_QPFactor;324 }325 else326 #else327 298 Double dQPFactor = m_pcCfg->getGOPEntry(iGOPid).m_QPFactor; 328 299 if ( eSliceType==I_SLICE ) 329 #endif330 300 { 331 301 dQPFactor=0.57*dLambda_scale; … … 362 332 if( rpcSlice->getSliceType( ) != I_SLICE ) 363 333 { 364 #if H_MV365 dLambda *= m_pcCfg->getLambdaModifier( m_pcCfg->getGOPEntry((eSliceTypeBaseView == I_SLICE) ? MAX_GOP : iGOPid).m_temporalId );366 #else367 334 dLambda *= m_pcCfg->getLambdaModifier( m_pcCfg->getGOPEntry(iGOPid).m_temporalId ); 368 #endif369 335 } 370 336 … … 405 371 #if HB_LAMBDA_FOR_LDC 406 372 // restore original slice type 407 #if H_MV408 eSliceType = eSliceTypeBaseView;409 if( eSliceTypeBaseView == I_SLICE && m_pcCfg->getGOPEntry(MAX_GOP).m_POC == 0 && m_pcCfg->getGOPEntry(MAX_GOP).m_sliceType != 'I' )410 {411 eSliceType = B_SLICE;412 }413 #else414 373 eSliceType = (pocLast == 0 || pocCurr % m_pcCfg->getIntraPeriod() == 0 || m_pcGOPEncoder->getGOPSize() == 0) ? I_SLICE : eSliceType; 415 #endif416 374 417 375 rpcSlice->setSliceType ( eSliceType ); … … 431 389 rpcSlice->setSliceQpDeltaCb ( 0 ); 432 390 rpcSlice->setSliceQpDeltaCr ( 0 ); 433 #if H_MV434 rpcSlice->setNumRefIdx(REF_PIC_LIST_0,m_pcCfg->getGOPEntry( (eSliceTypeBaseView == I_SLICE) ? MAX_GOP : iGOPid ).m_numRefPicsActive);435 rpcSlice->setNumRefIdx(REF_PIC_LIST_1,m_pcCfg->getGOPEntry( (eSliceTypeBaseView == I_SLICE) ? MAX_GOP : iGOPid ).m_numRefPicsActive);436 #else437 391 rpcSlice->setNumRefIdx(REF_PIC_LIST_0,m_pcCfg->getGOPEntry(iGOPid).m_numRefPicsActive); 438 392 rpcSlice->setNumRefIdx(REF_PIC_LIST_1,m_pcCfg->getGOPEntry(iGOPid).m_numRefPicsActive); 439 #endif440 393 441 394 #if L0386_DB_METRIC … … 458 411 if ( !m_pcCfg->getLoopFilterOffsetInPPS() && eSliceType!=I_SLICE) 459 412 { 460 #if H_MV461 rpcSlice->getPPS()->setDeblockingFilterBetaOffsetDiv2( m_pcCfg->getGOPEntry((eSliceTypeBaseView == I_SLICE) ? MAX_GOP : iGOPid).m_betaOffsetDiv2 + m_pcCfg->getLoopFilterBetaOffset() );462 rpcSlice->getPPS()->setDeblockingFilterTcOffsetDiv2( m_pcCfg->getGOPEntry((eSliceTypeBaseView == I_SLICE) ? MAX_GOP : iGOPid).m_tcOffsetDiv2 + m_pcCfg->getLoopFilterTcOffset() );463 rpcSlice->setDeblockingFilterBetaOffsetDiv2( m_pcCfg->getGOPEntry((eSliceTypeBaseView == I_SLICE) ? MAX_GOP : iGOPid).m_betaOffsetDiv2 + m_pcCfg->getLoopFilterBetaOffset() );464 rpcSlice->setDeblockingFilterTcOffsetDiv2( m_pcCfg->getGOPEntry((eSliceTypeBaseView == I_SLICE) ? MAX_GOP : iGOPid).m_tcOffsetDiv2 + m_pcCfg->getLoopFilterTcOffset() );465 #else466 413 rpcSlice->getPPS()->setDeblockingFilterBetaOffsetDiv2( m_pcCfg->getGOPEntry(iGOPid).m_betaOffsetDiv2 + m_pcCfg->getLoopFilterBetaOffset() ); 467 414 rpcSlice->getPPS()->setDeblockingFilterTcOffsetDiv2( m_pcCfg->getGOPEntry(iGOPid).m_tcOffsetDiv2 + m_pcCfg->getLoopFilterTcOffset() ); 468 415 rpcSlice->setDeblockingFilterBetaOffsetDiv2( m_pcCfg->getGOPEntry(iGOPid).m_betaOffsetDiv2 + m_pcCfg->getLoopFilterBetaOffset() ); 469 416 rpcSlice->setDeblockingFilterTcOffsetDiv2( m_pcCfg->getGOPEntry(iGOPid).m_tcOffsetDiv2 + m_pcCfg->getLoopFilterTcOffset() ); 470 #endif471 417 } 472 418 else … … 489 435 rpcSlice->setDepth ( depth ); 490 436 491 #if H_MV492 pcPic->setTLayer( m_pcCfg->getGOPEntry( (eSliceTypeBaseView == I_SLICE) ? MAX_GOP : iGOPid ).m_temporalId );493 #else494 437 pcPic->setTLayer( m_pcCfg->getGOPEntry(iGOPid).m_temporalId ); 495 #endif496 438 if(eSliceType==I_SLICE) 497 439 { -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncTop.cpp
r366 r367 42 42 #include "TLibCommon/ContextModel.h" 43 43 #endif 44 #if H_MV45 #include "../../App/TAppEncoder/TAppEncTop.h"46 #endif47 44 48 45 //! \ingroup TLibEncoder … … 81 78 m_pcBitCounters = NULL; 82 79 m_pcRdCosts = NULL; 83 #if H_MV84 m_ivPicLists = NULL;85 #endif86 80 } 87 81 … … 95 89 Void TEncTop::create () 96 90 { 97 #if !H_MV98 91 // initialize global variables 99 92 initROM(); 100 #endif101 93 102 94 // create processing unit classes … … 276 268 delete[] m_pcRdCosts; 277 269 278 #if !H_MV279 270 // destroy ROM 280 271 destroyROM(); 281 #endif282 272 283 273 return; … … 329 319 // ==================================================================================================================== 330 320 331 #if H_MV332 Void TEncTop::initNewPic( TComPicYuv* pcPicYuvOrg )333 {334 TComPic* pcPicCurr = NULL;335 336 // get original YUV337 xGetNewPicBuffer( pcPicCurr );338 pcPicYuvOrg->copyToPic( pcPicCurr->getPicYuvOrg() );339 340 // compute image characteristics341 if ( getUseAdaptiveQP() )342 {343 m_cPreanalyzer.xPreanalyze( dynamic_cast<TEncPic*>( pcPicCurr ) );344 }345 }346 #endif347 321 Void TEncTop::deletePicBuffer() 348 322 { … … 371 345 \retval iNumEncoded number of encoded pictures 372 346 */ 373 #if H_MV374 Void TEncTop::encode(Bool flush, TComPicYuv* pcPicYuvOrg, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsOut, Int& iNumEncoded , Int gopId )375 {376 #else377 347 Void TEncTop::encode(Bool flush, TComPicYuv* pcPicYuvOrg, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsOut, Int& iNumEncoded ) 378 348 { 379 #endif380 #if H_3D381 TComPic* picLastCoded = getPic( getGOPEncoder()->getPocLastCoded() );382 if( picLastCoded )383 {384 picLastCoded->compressMotion();385 }386 #endif387 #if H_MV388 if( gopId == 0)389 {390 m_cGOPEncoder.initGOP(m_iPOCLast, m_iNumPicRcvd, m_cListPic, rcListPicYuvRecOut, accessUnitsOut);391 #else392 349 if (pcPicYuvOrg) { 393 350 // get original YUV … … 408 365 return; 409 366 } 410 #endif411 367 412 368 #if RATE_CONTROL_LAMBDA_DOMAIN … … 417 373 #endif 418 374 419 #if H_MV420 }421 m_cGOPEncoder.compressPicInGOP(m_iPOCLast, m_iNumPicRcvd, m_cListPic, rcListPicYuvRecOut, accessUnitsOut, gopId );422 423 if( gopId + 1 == m_cGOPEncoder.getGOPSize() )424 {425 #else426 375 // compress GOP 427 376 m_cGOPEncoder.compressGOP(m_iPOCLast, m_iNumPicRcvd, m_cListPic, rcListPicYuvRecOut, accessUnitsOut); 428 #endif429 377 430 378 #if RATE_CONTROL_LAMBDA_DOMAIN … … 438 386 m_iNumPicRcvd = 0; 439 387 m_uiNumAllPicCoded += iNumEncoded; 440 #if H_MV441 }442 #endif443 388 } 444 389 … … 505 450 Void TEncTop::xInitSPS() 506 451 { 507 #if H_MV508 m_cSPS.setSPSId( getLayerIdInVps() );509 #endif510 452 ProfileTierLevel& profileTierLevel = *m_cSPS.getPTL()->getGeneralPTL(); 511 453 profileTierLevel.setLevelIdc(m_level); … … 652 594 Void TEncTop::xInitPPS() 653 595 { 654 #if H_MV655 if( m_cVPS.getNumDirectRefLayers( getLayerIdInVps() ) > 0 )656 {657 m_cPPS.setListsModificationPresentFlag( true );658 }659 m_cPPS.setPPSId( getLayerIdInVps() );660 m_cPPS.setSPSId( getLayerIdInVps() );661 #endif662 596 m_cPPS.setConstrainedIntraPred( m_bUseConstrainedIntraPred ); 663 597 Bool bUseDQP = (getMaxCuDQPDepth() > 0)? true : false; … … 963 897 Void TEncTop::selectReferencePictureSet(TComSlice* slice, Int POCCurr, Int GOPid ) 964 898 { 965 #if H_MV966 if( slice->getRapPicFlag() == true && getLayerId() > 0 && POCCurr == 0 )967 {968 TComReferencePictureSet* rps = slice->getLocalRPS();969 rps->setNumberOfNegativePictures(0);970 rps->setNumberOfPositivePictures(0);971 rps->setNumberOfLongtermPictures(0);972 rps->setNumberOfPictures(0);973 slice->setRPS(rps);974 }975 else976 {977 #endif978 899 slice->setRPSidx(GOPid); 979 900 … … 1003 924 slice->setRPS(getSPS()->getRPSList()->getReferencePictureSet(slice->getRPSidx())); 1004 925 slice->getRPS()->setNumberOfPictures(slice->getRPS()->getNumberOfNegativePictures()+slice->getRPS()->getNumberOfPositivePictures()); 1005 #if H_MV1006 }1007 #endif1008 926 1009 927 } … … 1120 1038 } 1121 1039 } 1122 #if H_MV1123 Void TEncTop::printSummary( Int numAllPicCoded )1124 {1125 assert (numAllPicCoded == m_cAnalyzeAll.getNumPic());1126 1127 //--CFG_KDY1128 m_cAnalyzeAll.setFrmRate( getFrameRate() );1129 m_cAnalyzeI.setFrmRate( getFrameRate() );1130 m_cAnalyzeP.setFrmRate( getFrameRate() );1131 m_cAnalyzeB.setFrmRate( getFrameRate() );1132 1133 //-- all1134 printf( "\n\nSUMMARY ------------------------------------------- LayerId %2d\n", m_layerId );1135 1136 m_cAnalyzeAll.printOut('a');1137 1138 printf( "\n\nI Slices--------------------------------------------------------\n" );1139 m_cAnalyzeI.printOut('i');1140 1141 printf( "\n\nP Slices--------------------------------------------------------\n" );1142 m_cAnalyzeP.printOut('p');1143 1144 printf( "\n\nB Slices--------------------------------------------------------\n" );1145 m_cAnalyzeB.printOut('b');1146 1147 #if _SUMMARY_OUT_1148 m_cAnalyzeAll.printSummaryOut();1149 #endif1150 #if _SUMMARY_PIC_1151 m_cAnalyzeI.printSummary('I');1152 m_cAnalyzeP.printSummary('P');1153 m_cAnalyzeB.printSummary('B');1154 #endif1155 }1156 1157 Int TEncTop::getFrameId(Int iGOPid)1158 {1159 if(m_iPOCLast == 0)1160 {1161 return(0 );1162 }1163 else1164 {1165 return m_iPOCLast -m_iNumPicRcvd+ getGOPEntry(iGOPid).m_POC ;1166 }1167 }1168 1169 TComPic* TEncTop::getPic( Int poc )1170 {1171 TComList<TComPic*>* listPic = getListPic();1172 TComPic* pcPic = NULL;1173 for(TComList<TComPic*>::iterator it=listPic->begin(); it!=listPic->end(); it++)1174 {1175 if( (*it)->getPOC() == poc )1176 {1177 pcPic = *it ;1178 break ;1179 }1180 }1181 return pcPic;1182 }1183 #endif1184 1040 //! \} -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncTop.h
r364 r367 74 74 TComList<TComPic*> m_cListPic; ///< dynamic list of pictures 75 75 76 #if H_MV77 TComPicLists* m_ivPicLists; ///< access to picture lists of other layers78 #endif79 76 // encoder search 80 77 TEncSearch m_cSearch; ///< encoder search class … … 125 122 TEncRateCtrl m_cRateCtrl; ///< Rate control class 126 123 127 #if H_MV128 TEncAnalyze m_cAnalyzeAll;129 TEncAnalyze m_cAnalyzeI;130 TEncAnalyze m_cAnalyzeP;131 TEncAnalyze m_cAnalyzeB;132 #endif133 124 protected: 134 125 Void xGetNewPicBuffer ( TComPic*& rpcPic ); ///< get picture buffer which will be processed … … 146 137 Void destroy (); 147 138 Void init (); 148 #if H_MV149 TComPicLists* getIvPicLists() { return m_ivPicLists; }150 #endif151 139 Void deletePicBuffer (); 152 140 153 141 Void createWPPCoders(Int iNumSubstreams); 154 142 155 #if H_MV156 Void initNewPic(TComPicYuv* pcPicYuvOrg);157 #endif158 143 // ------------------------------------------------------------------------------------------------------------------- 159 144 // member access functions … … 192 177 #endif 193 178 TComScalingList* getScalingList () { return &m_scalingList; } 194 #if H_MV195 TEncAnalyze* getAnalyzeAll () { return &m_cAnalyzeAll; }196 TEncAnalyze* getAnalyzeI () { return &m_cAnalyzeI; }197 TEncAnalyze* getAnalyzeP () { return &m_cAnalyzeP; }198 TEncAnalyze* getAnalyzeB () { return &m_cAnalyzeB; }199 200 Int getNumAllPicCoded () { return m_uiNumAllPicCoded; }201 202 Int getFrameId (Int iGOPid);203 204 TComPic* getPic ( Int poc );205 Void setIvPicLists ( TComPicLists* picLists) { m_ivPicLists = picLists; }206 #endif207 179 // ------------------------------------------------------------------------------------------------------------------- 208 180 // encoder function … … 210 182 211 183 /// encode several number of pictures until end-of-sequence 212 #if H_MV213 Void encode( Bool bEos, TComPicYuv* pcPicYuvOrg, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsOut, Int& iNumEncoded , Int gopId );214 #else215 184 Void encode( Bool bEos, TComPicYuv* pcPicYuvOrg, TComList<TComPicYuv*>& rcListPicYuvRecOut, 216 185 std::list<AccessUnit>& accessUnitsOut, Int& iNumEncoded ); 217 #endif218 186 219 #if H_MV220 Void printSummary ( Int numAllPicCoded );221 #else222 187 void printSummary() { m_cGOPEncoder.printOutSummary (m_uiNumAllPicCoded); } 223 #endif224 188 }; 225 189
Note: See TracChangeset for help on using the changeset viewer.