Changeset 305 in 3DVCSoftware for branches/HTM-6.0-LG/source/Lib
- Timestamp:
- 15 Mar 2013, 05:18:01 (12 years ago)
- Location:
- branches/HTM-6.0-LG/source/Lib
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-6.0-LG/source/Lib/TLibCommon/TComPicYuv.cpp
r56 r305 60 60 m_piPicOrgU = NULL; 61 61 m_piPicOrgV = NULL; 62 62 63 #if FIX_APPENCTOP_T_ONLY 64 m_cuOffsetY = NULL; 65 m_cuOffsetC = NULL; 66 m_buOffsetY = NULL; 67 m_buOffsetC = NULL; 68 #endif 69 63 70 m_bIsBorderExtended = false; 64 71 } … … 137 144 if( m_apiPicBufU ){ xFree( m_apiPicBufU ); m_apiPicBufU = NULL; } 138 145 if( m_apiPicBufV ){ xFree( m_apiPicBufV ); m_apiPicBufV = NULL; } 139 146 #if FIX_APPENCTOP_T_ONLY 147 if( m_cuOffsetY ) 148 { 149 #endif 140 150 delete[] m_cuOffsetY; 141 151 delete[] m_cuOffsetC; 142 152 delete[] m_buOffsetY; 143 153 delete[] m_buOffsetC; 154 #if FIX_APPENCTOP_T_ONLY 155 } 156 #endif 144 157 } 145 158 -
branches/HTM-6.0-LG/source/Lib/TLibCommon/TComPrediction.cpp
r303 r305 1066 1066 else 1067 1067 { 1068 #if FIX_LGE_WP_FOR_3D_C0223 1069 if ( ( pcCU->getSlice()->getPPS()->getUseWP() && pcCU->getSlice()->getSliceType() == P_SLICE ) || 1070 ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() && pcCU->getSlice()->getSliceType() == B_SLICE ) ) 1071 #else 1068 1072 if ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() ) 1073 #endif 1069 1074 { 1070 1075 #if DEPTH_MAP_GENERATION … … 1100 1105 } 1101 1106 } 1102 1107 #if FIX_LGE_WP_FOR_3D_C0223 1108 if ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() && pcCU->getSlice()->getSliceType() == B_SLICE ) 1109 #else 1103 1110 if ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() ) 1111 #endif 1104 1112 { 1105 1113 #if MERL_VSP_C0152 … … 1110 1118 xWeightedPredictionBi( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred ); 1111 1119 } 1120 #if FIX_LGE_WP_FOR_3D_C0223 1121 else if ( pcCU->getSlice()->getPPS()->getUseWP() && pcCU->getSlice()->getSliceType() == P_SLICE ) 1122 #endif 1123 { 1124 #if MERL_VSP_C0152 1125 if(pcCU->getVSPIndex(uiPartAddr)) 1126 m_acYuvPred[0].copyPartToPartYuv( rpcYuvPred, uiPartAddr, iWidth, iHeight ); 1127 else 1128 #endif 1129 xWeightedPredictionUni( pcCU, &m_acYuvPred[0], uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, rpcYuvPred, iPartIdx ); 1130 } 1131 1132 1133 1134 1135 1112 1136 else 1113 1137 { -
branches/HTM-6.0-LG/source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp
r56 r305 106 106 piUsed += iStrideUsed; 107 107 } 108 #else 108 #if FIX_LGE_WP_FOR_3D_C0223 109 } 110 else 111 { 112 #endif 113 #if FIX_LGE_WP_FOR_3D_C0223 //comment of #else 114 //#else 115 #endif 116 #endif 109 117 for( ; iRows != 0; iRows-- ) 110 118 { … … 118 126 piCur += iStrideCur; 119 127 } 120 #endif 128 #if FIX_LGE_WP_FOR_3D_C0223 //comment of #endif 129 //#endif 130 #endif 121 131 #if HHI_INTERVIEW_SKIP 122 132 } -
branches/HTM-6.0-LG/source/Lib/TLibCommon/TypeDef.h
r303 r305 166 166 #define HHI_DEPTH_INTRA_SEARCH_RAU_C0160 1 // JCT3V-C0160 change 1: full Intra search in depth random access units 167 167 #define FIX_POZNAN_CABAC_INIT_FLAG 1 168 #define FIX_LGE_WP_FOR_3D_C0223 1 // JCT3V-C0223 Weighted Prediction Bug-fix for 3D-HEVC. Caution! There is still crush using WP with Residual Prediction. 169 #define FIX_APPENCTOP_T_ONLY 1 // For Texture-only coding 168 170 169 171 ///// ***** FCO ********* -
branches/HTM-6.0-LG/source/Lib/TLibDecoder/TDecTop.cpp
r303 r305 1128 1128 } 1129 1129 1130 #if !FIX_LGE_WP_FOR_3D_C0223 1130 1131 if( pcSlice->getRefPicListCombinationFlag() && pcSlice->getPPS()->getWPBiPredIdc()==1 && pcSlice->getSliceType()==B_SLICE ) 1131 1132 { 1132 1133 pcSlice->setWpParamforLC(); 1133 1134 } 1135 #endif 1134 1136 pcSlice->setNoBackPredFlag( false ); 1135 1137 if ( pcSlice->getSliceType() == B_SLICE && !pcSlice->getRefPicListCombinationFlag()) -
branches/HTM-6.0-LG/source/Lib/TLibEncoder/TEncCavlc.cpp
r303 r305 1116 1116 } 1117 1117 #endif 1118 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 1119 1122 if ( (pcSlice->getPPS()->getUseWP() && pcSlice->getSliceType()==P_SLICE) || (pcSlice->getPPS()->getWPBiPredIdc()==1 && pcSlice->getSliceType()==B_SLICE) ) 1123 #endif 1120 1124 { 1121 1125 xCodePredWeightTable( pcSlice ); -
branches/HTM-6.0-LG/source/Lib/TLibEncoder/TEncSlice.cpp
r303 r305 677 677 xCalcACDCParamSlice(pcSlice); 678 678 } 679 680 Bool bWp_explicit = (pcSlice->getSliceType()==P_SLICE && pcSlice->getPPS()->getUseWP()) || (pcSlice->getSliceType()==B_SLICE && pcSlice->getPPS()->getWPBiPredIdc()==1); 681 Bool bWp_implicit = (pcSlice->getSliceType()==B_SLICE && pcSlice->getPPS()->getWPBiPredIdc()==2); 682 683 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 ) 684 683 { 685 684 //------------------------------------------------------------------------------ … … 690 689 printf("Weighted Prediction is not supported with slice mode determined by max number of bins.\n"); exit(0); 691 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 } 692 712 693 713 if( bWp_explicit ) … … 704 724 } 705 725 } 706 726 #endif 707 727 #if ADAPTIVE_QP_SELECTION 708 728 if( m_pcCfg->getUseAdaptQpSelect() )
Note: See TracChangeset for help on using the changeset viewer.