Changeset 313 in 3DVCSoftware for trunk/source/Lib/TLibEncoder
- Timestamp:
- 20 Mar 2013, 21:35:14 (12 years ago)
- Location:
- trunk/source/Lib/TLibEncoder
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibEncoder/TEncCavlc.cpp
r296 r313 663 663 WRITE_UVLC( pcSPS->getViewId(), "view_id" ); 664 664 WRITE_SVLC( pcSPS->getViewOrderIdx(), "view_order_idx" ); 665 #if FCO_FIX_SPS_CHANGE 666 if ( pcSPS->getViewId() ) 667 { 668 WRITE_UVLC( pcSPS->getCamParPrecision(), "camera_parameter_precision" ); 669 WRITE_FLAG( pcSPS->hasCamParInSliceHeader() ? 1 : 0, "camera_parameter_in_slice_header" ); 670 if( !pcSPS->hasCamParInSliceHeader() ) 671 { 672 for( UInt uiId = 0; uiId < pcSPS->getViewId(); uiId++ ) 673 { 674 WRITE_SVLC( pcSPS->getCodedScale ()[ uiId ], "coded_scale" ); 675 WRITE_SVLC( pcSPS->getCodedOffset ()[ uiId ], "coded_offset" ); 676 WRITE_SVLC( pcSPS->getInvCodedScale ()[ uiId ] + pcSPS->getCodedScale ()[ uiId ], "inverse_coded_scale_plus_coded_scale" ); 677 WRITE_SVLC( pcSPS->getInvCodedOffset()[ uiId ] + pcSPS->getCodedOffset()[ uiId ], "inverse_coded_offset_plus_coded_offset" ); 678 } 679 } 680 } 681 #endif 665 682 } 666 683 else … … 1099 1116 } 1100 1117 #endif 1101 1118 1119 #if FIX_LGE_WP_FOR_3D_C0223 1120 if ( (pcSlice->getPPS()->getUseWP() && pcSlice->getSliceType()==P_SLICE) || (pcSlice->getPPS()->getWPBiPredIdc() && pcSlice->getSliceType()==B_SLICE) ) 1121 #else 1102 1122 if ( (pcSlice->getPPS()->getUseWP() && pcSlice->getSliceType()==P_SLICE) || (pcSlice->getPPS()->getWPBiPredIdc()==1 && pcSlice->getSliceType()==B_SLICE) ) 1123 #endif 1103 1124 { 1104 1125 xCodePredWeightTable( pcSlice ); -
trunk/source/Lib/TLibEncoder/TEncGOP.cpp
r296 r313 726 726 m_uiStoredStartCUAddrForEncodingEntropySlice[uiStartCUAddrEntropySliceIdx++] = uiNextCUAddr; 727 727 728 #if FCO_DVP_REFINE_C0132_C0170 729 pcPic->setDepthCoded(false); 730 731 if(pcSlice->getViewId() != 0) 732 { 733 if(pcSlice->getSPS()->isDepth() == 0 ) 734 { 735 TComPic * recDepthMapBuffer; 736 recDepthMapBuffer = m_pcEncTop->getEncTop()->getPicFromView( pcSlice->getViewId(), pcSlice->getPOC(), true ); 737 pcSlice->getPic()->setRecDepthMap(recDepthMapBuffer); 738 if(recDepthMapBuffer->getReconMark()) 739 { 740 pcPic->setDepthCoded(true); 741 } 742 } 743 } 744 #endif 745 728 746 #if DEPTH_MAP_GENERATION 729 747 // init view component and predict virtual depth map -
trunk/source/Lib/TLibEncoder/TEncSlice.cpp
r296 r313 60 60 m_pcBufferLowLatSbacCoders = NULL; 61 61 m_pcBufferLowLatBinCoderCABACs = NULL; 62 #if FCO_DVP_REFINE_C0132_C0170 63 m_pPicBaseTxt = NULL; 64 m_pPicBaseDepth = NULL; 65 #endif 62 66 } 63 67 … … 673 677 xCalcACDCParamSlice(pcSlice); 674 678 } 675 676 Bool bWp_explicit = (pcSlice->getSliceType()==P_SLICE && pcSlice->getPPS()->getUseWP()) || (pcSlice->getSliceType()==B_SLICE && pcSlice->getPPS()->getWPBiPredIdc()==1); 677 Bool bWp_implicit = (pcSlice->getSliceType()==B_SLICE && pcSlice->getPPS()->getWPBiPredIdc()==2); 678 679 if ( bWp_explicit || bWp_implicit ) 679 #if FIX_LGE_WP_FOR_3D_C0223 680 Bool bWp_explicit = (pcSlice->getSliceType()==P_SLICE && pcSlice->getPPS()->getUseWP()) || (pcSlice->getSliceType()==B_SLICE && pcSlice->getPPS()->getWPBiPredIdc()); 681 682 if ( bWp_explicit ) 680 683 { 681 684 //------------------------------------------------------------------------------ … … 686 689 printf("Weighted Prediction is not supported with slice mode determined by max number of bins.\n"); exit(0); 687 690 } 691 xEstimateWPParamSlice( pcSlice ); 692 pcSlice->initWpScaling(); 693 #if !FIX_LGE_WP_FOR_3D_C0223 // Interim fix for encoder/decoder mismatch of non-fade sequence 694 // check WP on/off 695 xCheckWPEnable( pcSlice ); 696 #endif 697 } 698 #else 699 700 Bool bWp_explicit = (pcSlice->getSliceType()==P_SLICE && pcSlice->getPPS()->getUseWP()) || (pcSlice->getSliceType()==B_SLICE && pcSlice->getPPS()->getWPBiPredIdc()==1); 701 Bool bWp_implicit = (pcSlice->getSliceType()==B_SLICE && pcSlice->getPPS()->getWPBiPredIdc()==2); 702 703 if ( bWp_explicit || bWp_implicit ) 704 { 705 //------------------------------------------------------------------------------ 706 // Weighted Prediction implemented at Slice level. SliceMode=2 is not supported yet. 707 //------------------------------------------------------------------------------ 708 if ( pcSlice->getSliceMode()==2 || pcSlice->getEntropySliceMode()==2 ) 709 { 710 printf("Weighted Prediction is not supported with slice mode determined by max number of bins.\n"); exit(0); 711 } 688 712 689 713 if( bWp_explicit ) … … 700 724 } 701 725 } 702 726 #endif 703 727 #if ADAPTIVE_QP_SELECTION 704 728 if( m_pcCfg->getUseAdaptQpSelect() ) -
trunk/source/Lib/TLibEncoder/TEncTop.cpp
r296 r313 712 712 if( m_isDepth ) 713 713 { 714 #if FCO_FIX_SPS_CHANGE 715 m_cSPS.initMultiviewSPSDepth ( m_viewId, m_iViewOrderIdx, m_uiCamParPrecision, m_bCamParInSliceHeader, m_aaiCodedScale, m_aaiCodedOffset ); 716 #else 714 717 m_cSPS.initMultiviewSPSDepth ( m_viewId, m_iViewOrderIdx ); 718 #endif 719 715 720 #if DEPTH_MAP_GENERATION 716 721 m_cSPS.setPredDepthMapGeneration( m_viewId, true );
Note: See TracChangeset for help on using the changeset viewer.