Changeset 5 in 3DVCSoftware for trunk/source/Lib/TLibEncoder/TEncCavlc.cpp
- Timestamp:
- 12 Dec 2011, 18:35:44 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibEncoder/TEncCavlc.cpp
r2 r5 1 /* The copyright in this software is being made available under the BSD 2 * License, included below. This software may be subject to other third party 3 * and contributor rights, including patent rights, and no such rights are 4 * granted under this license. 5 * 6 * Copyright (c) 2010-2011, ISO/IEC 7 * All rights reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions are met: 11 * 12 * * Redistributions of source code must retain the above copyright notice, 13 * this list of conditions and the following disclaimer. 14 * * Redistributions in binary form must reproduce the above copyright notice, 15 * this list of conditions and the following disclaimer in the documentation 16 * and/or other materials provided with the distribution. 17 * * Neither the name of the ISO/IEC nor the names of its contributors may 18 * be used to endorse or promote products derived from this software without 19 * specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 31 * THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 1 34 2 35 … … 258 291 xWriteFlag ( (pcSPS->getUseALF ()) ? 1 : 0 ); 259 292 xWriteFlag ( (pcSPS->getUseDQP ()) ? 1 : 0 ); 260 #if ! SB_NO_LowDelayCoding293 #if !HHI_NO_LowDelayCoding 261 294 xWriteFlag ( (pcSPS->getUseLDC ()) ? 1 : 0 ); 262 295 #endif … … 302 335 xWriteUvlc( pcSPS->getViewId() ); 303 336 xWriteSvlc( pcSPS->getViewOrderIdx() ); 304 #if HHI_DMM_INTRA 305 xWriteFlag( pcSPS->getUseDepthModelModes() ? 1 : 0 ); 306 #endif 337 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 338 xWriteFlag( pcSPS->getUseDMM() ? 1 : 0 ); 339 #endif 340 #if HHI_MPI 307 341 xWriteFlag( pcSPS->getUseMVI() ? 1 : 0 ); 342 #endif 308 343 } 309 344 else … … 324 359 } 325 360 } 361 #if DEPTH_MAP_GENERATION 326 362 xWriteUvlc( pcSPS->getPredDepthMapGeneration() ); 327 363 if( pcSPS->getPredDepthMapGeneration() ) … … 333 369 xWriteSvlc( pcSPS->getPdmOffset ()[ uiId ] ); 334 370 } 371 #if HHI_INTER_VIEW_MOTION_PRED 335 372 xWriteUvlc ( pcSPS->getMultiviewMvPredMode() ); 373 #endif 374 #if HHI_INTER_VIEW_RESIDUAL_PRED 336 375 xWriteFlag ( pcSPS->getMultiviewResPredMode() ); 337 } 376 #endif 377 } 378 #endif 338 379 } 339 380 } … … 686 727 687 728 729 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI 688 730 Void 689 731 TEncCavlc::codeMergeIndexMV( TComDataCU* pcCU, UInt uiAbsPartIdx ) … … 691 733 UInt uiNumCand = 0; 692 734 UInt uiMergeIdx = pcCU->getMergeIndex( uiAbsPartIdx ); 693 #if MW_MVI_SIGNALLING_MODE == 1735 #if HHI_MPI 694 736 const Bool bMVIAvailable = pcCU->getSlice()->getSPS()->getUseMVI() && pcCU->getSlice()->getSliceType() != I_SLICE; 695 const UInt uiMviMergePos = bMVIAvailable ? MVI_MERGE_POS : MRG_MAX_NUM_CANDS;737 const UInt uiMviMergePos = bMVIAvailable ? HHI_MPI_MERGE_POS : MRG_MAX_NUM_CANDS; 696 738 if( bMVIAvailable ) 697 739 { … … 699 741 const Bool bUseMVI = pcCU->getTextureModeDepth( uiAbsPartIdx ) != -1; 700 742 if( bUseMVI ) 701 uiMergeIdx = MVI_MERGE_POS;702 else if( uiMergeIdx >= MVI_MERGE_POS )743 uiMergeIdx = HHI_MPI_MERGE_POS; 744 else if( uiMergeIdx >= HHI_MPI_MERGE_POS ) 703 745 uiMergeIdx++; 704 746 } … … 754 796 } 755 797 } 756 798 #endif 757 799 758 800 … … 764 806 Void TEncCavlc::codeMergeIndex ( TComDataCU* pcCU, UInt uiAbsPartIdx ) 765 807 { 766 #if MW_MVI_SIGNALLING_MODE == 1 808 #if HHI_INTER_VIEW_MOTION_PRED || HHI_MPI 809 #if HHI_INTER_VIEW_MOTION_PRED && HHI_MPI 767 810 if( ( pcCU->getSlice()->getSPS()->getViewId() > 0 && ( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE ) == PDM_USE_FOR_MERGE ) || 768 811 ( pcCU->getSlice()->getSPS()->getUseMVI() && pcCU->getSlice()->getSliceType() != I_SLICE && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) ) 812 #elif HHI_MPI 813 if( pcCU->getSlice()->getSPS()->getUseMVI() && pcCU->getSlice()->getSliceType() != I_SLICE && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) 769 814 #else 770 815 if( pcCU->getSlice()->getSPS()->getViewId() > 0 && ( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE ) == PDM_USE_FOR_MERGE ) … … 774 819 return; 775 820 } 821 #endif 776 822 777 823 Bool bLeftInvolved = false; … … 833 879 834 880 881 #if HHI_INTER_VIEW_RESIDUAL_PRED 835 882 Void 836 883 TEncCavlc::codeResPredFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) … … 839 886 xWriteFlag( uiSymbol ); 840 887 } 841 888 #endif 842 889 843 890 Void TEncCavlc::codeAlfCtrlFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) … … 940 987 #endif 941 988 } 942 943 #if MW_MVI_SIGNALLING_MODE == 0944 Void TEncCavlc::codeMvInheritanceFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )945 {946 const Int iTextureModeDepth = pcCU->getTextureModeDepth( uiAbsPartIdx );947 if( iTextureModeDepth != -1 && uiDepth > iTextureModeDepth )948 return;949 UInt uiSymbol = iTextureModeDepth == uiDepth ? 1 : 0;950 xWriteFlag( uiSymbol );951 }952 #endif953 989 954 990 Void TEncCavlc::codeSplitFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
Note: See TracChangeset for help on using the changeset viewer.