Changeset 397 in 3DVCSoftware
- Timestamp:
- 12 May 2013, 16:24:39 (12 years ago)
- Location:
- branches/HTM-6.2-dev3-RWTH/source/Lib
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-6.2-dev3-RWTH/source/Lib/TLibCommon/ContextTables.h
r382 r397 135 135 #endif 136 136 #define SDC_NUM_RESIDUAL_FLAG_CTX 1 137 #if !RWTH_SDC_CTX_SIMPL_D0032 137 138 #define SDC_NUM_SIGN_FLAG_CTX 1 139 #endif 140 #if RWTH_SDC_CTX_SIMPL_D0032 141 #define SDC_NUM_RESIDUAL_CTX 8 142 #else 138 143 #define SDC_NUM_RESIDUAL_CTX 10 144 #endif 139 145 140 146 #define SDC_NUM_PRED_MODE_CTX 5 … … 556 562 #endif 557 563 564 #if RWTH_SDC_CTX_SIMPL_D0032 565 static const UChar INIT_SDC_RESIDUAL_FLAG[3][SDC_NUM_RESIDUAL_FLAG_CTX] = 566 { 567 { 568 CNU 569 570 }, 571 { 572 CNU 573 }, 574 { 575 CNU 576 } 577 }; 578 579 static const UChar INIT_SDC_RESIDUAL[3][SDC_NUM_RESIDUAL_CTX] = 580 { 581 { 582 CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU 583 }, 584 { 585 CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU 586 }, 587 { 588 CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU 589 } 590 }; 591 592 static const UChar INIT_SDC_PRED_MODE[3][3*SDC_NUM_PRED_MODE_CTX] = 593 { 594 { 595 CNU, CNU 596 ,CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU 597 }, 598 { 599 CNU, CNU 600 ,CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU 601 }, 602 { 603 CNU, CNU 604 ,CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU 605 } 606 }; 607 #else 558 608 static const Short INIT_SDC_RESIDUAL_FLAG[3][3*SDC_NUM_RESIDUAL_FLAG_CTX][2] = 559 609 { … … 633 683 }; 634 684 #endif 685 #endif 635 686 636 687 //! \} -
branches/HTM-6.2-dev3-RWTH/source/Lib/TLibCommon/TypeDef.h
r387 r397 73 73 #define HHI_DELTADC_DLT_D0035 1 // JCT3V-D0035: DLT for DMM deltaDC coding 74 74 #define INTEL_SDC64_D0193 1 // JCT3V-D0193: SDC binary clean up (use a 1 bit binary code to signal sdc_pred_mode when CU size is 64x64) 75 #define RWTH_SDC_CTX_SIMPL_D0032 1 // JCT3V-D0032: CABAC Context Reduction for Simplified Depth Coding 75 76 #endif 76 77 #define FIX_SDC_ENC_RD_WVSO_D0163 1 // JCT3V-D0163: fix for SDC encoder rd-cost (VSO -> WVSO) -
branches/HTM-6.2-dev3-RWTH/source/Lib/TLibDecoder/TDecSbac.cpp
r382 r397 114 114 , m_cDmmDeltaFlagModel ( 1, 1, DMM_DELTA_NUM_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 115 115 #endif 116 #if RWTH_SDC_CTX_SIMPL_D0032 117 , m_cSDCResidualFlagSCModel ( 1, 1, SDC_NUM_RESIDUAL_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 118 , m_cSDCResidualSCModel ( 1, 1, SDC_NUM_RESIDUAL_CTX , m_contextModels + m_numContextModels, m_numContextModels) 119 , m_cSDCPredModeSCModel ( 1, 3, SDC_NUM_PRED_MODE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 120 #else 116 121 , m_cSDCResidualFlagSCModel ( 1, 2, SDC_NUM_RESIDUAL_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 117 122 , m_cSDCResidualSignFlagSCModel ( 1, 2, SDC_NUM_SIGN_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 118 123 , m_cSDCResidualSCModel ( 1, 2, SDC_NUM_RESIDUAL_CTX , m_contextModels + m_numContextModels, m_numContextModels) 119 124 , m_cSDCPredModeSCModel ( 1, 3, SDC_NUM_PRED_MODE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 125 #endif 120 126 #endif 121 127 { … … 222 228 m_cSDCResidualFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL_FLAG ); 223 229 m_cSDCResidualSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL ); 230 #if !RWTH_SDC_CTX_SIMPL_D0032 224 231 m_cSDCResidualSignFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_SIGN_FLAG ); 232 #endif 225 233 m_cSDCPredModeSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_PRED_MODE ); 226 234 #endif … … 308 316 m_cSDCResidualFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG ); 309 317 m_cSDCResidualSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL ); 318 #if !RWTH_SDC_CTX_SIMPL_D0032 310 319 m_cSDCResidualSignFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_SIGN_FLAG ); 320 #endif 311 321 m_cSDCPredModeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_PRED_MODE ); 312 322 #endif … … 2647 2657 assert( uiMaxResidualBits <= g_uiBitDepth ); 2648 2658 2659 #if RWTH_SDC_CTX_SIMPL_D0032 2660 m_pcTDecBinIf->decodeBin(uiResidual, m_cSDCResidualFlagSCModel.get( 0, 0, 0 ) ); 2661 #else 2649 2662 m_pcTDecBinIf->decodeBin(uiResidual, m_cSDCResidualFlagSCModel.get( 0, uiSegment, 0 ) ); 2663 #endif 2650 2664 2651 2665 if (uiResidual) 2652 2666 { 2653 2667 // decode residual sign bit 2668 #if RWTH_SDC_CTX_SIMPL_D0032 2669 m_pcTDecBinIf->decodeBinEP(uiSign); 2670 #else 2654 2671 m_pcTDecBinIf->decodeBin(uiSign, m_cSDCResidualSignFlagSCModel.get( 0, uiSegment, 0 ) ); 2672 #endif 2655 2673 2656 2674 // decode residual magnitude 2657 2675 for (Int i=0; i<uiMaxResidualBits; i++) 2658 2676 { 2677 #if RWTH_SDC_CTX_SIMPL_D0032 2678 m_pcTDecBinIf->decodeBin(uiBit, m_cSDCResidualSCModel.get( 0, 0, i ) ); 2679 #else 2659 2680 m_pcTDecBinIf->decodeBin(uiBit, m_cSDCResidualSCModel.get( 0, uiSegment, i ) ); 2681 #endif 2660 2682 uiAbsIdx |= uiBit << i; 2661 2683 } -
branches/HTM-6.2-dev3-RWTH/source/Lib/TLibDecoder/TDecSbac.h
r382 r397 280 280 281 281 ContextModel3DBuffer m_cSDCResidualFlagSCModel; 282 #if !RWTH_SDC_CTX_SIMPL_D0032 282 283 ContextModel3DBuffer m_cSDCResidualSignFlagSCModel; 284 #endif 283 285 ContextModel3DBuffer m_cSDCResidualSCModel; 284 286 -
branches/HTM-6.2-dev3-RWTH/source/Lib/TLibEncoder/TEncSbac.cpp
r382 r397 122 122 , m_cDmmDeltaFlagModel ( 1, 1, DMM_DELTA_NUM_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 123 123 #endif 124 #if RWTH_SDC_CTX_SIMPL_D0032 125 , m_cSDCResidualFlagSCModel ( 1, 1, SDC_NUM_RESIDUAL_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 126 , m_cSDCResidualSCModel ( 1, 1, SDC_NUM_RESIDUAL_CTX , m_contextModels + m_numContextModels, m_numContextModels) 127 , m_cSDCPredModeSCModel ( 1, 3, SDC_NUM_PRED_MODE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 128 #else 124 129 , m_cSDCResidualFlagSCModel ( 1, 2, SDC_NUM_RESIDUAL_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 125 130 , m_cSDCResidualSignFlagSCModel ( 1, 2, SDC_NUM_SIGN_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 126 131 , m_cSDCResidualSCModel ( 1, 2, SDC_NUM_RESIDUAL_CTX , m_contextModels + m_numContextModels, m_numContextModels) 127 132 , m_cSDCPredModeSCModel ( 1, 3, SDC_NUM_PRED_MODE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 133 #endif 128 134 #endif 129 135 { … … 215 221 m_cSDCResidualFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG ); 216 222 m_cSDCResidualSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL ); 223 #if !RWTH_SDC_CTX_SIMPL_D0032 217 224 m_cSDCResidualSignFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_SIGN_FLAG ); 225 #endif 218 226 m_cSDCPredModeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_PRED_MODE ); 219 227 #endif … … 369 377 m_cSDCResidualFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG ); 370 378 m_cSDCResidualSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL ); 379 #if !RWTH_SDC_CTX_SIMPL_D0032 371 380 m_cSDCResidualSignFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_SIGN_FLAG ); 381 #endif 372 382 m_cSDCPredModeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_PRED_MODE ); 373 383 #endif … … 2645 2655 2646 2656 // residual flag 2657 #if RWTH_SDC_CTX_SIMPL_D0032 2658 m_pcBinIf->encodeBin( uiResidual, m_cSDCResidualFlagSCModel.get( 0, 0, 0 ) ); 2659 #else 2647 2660 m_pcBinIf->encodeBin( uiResidual, m_cSDCResidualFlagSCModel.get( 0, uiSegment, 0 ) ); //TODO depthmap: more sophisticated context selection 2661 #endif 2648 2662 2649 2663 if (uiResidual) 2650 2664 { 2651 2665 // encode sign bit of residual 2666 #if RWTH_SDC_CTX_SIMPL_D0032 2667 m_pcBinIf->encodeBinEP( uiSign ); 2668 #else 2652 2669 m_pcBinIf->encodeBin( uiSign, m_cSDCResidualSignFlagSCModel.get( 0, uiSegment, 0 ) ); //TODO depthmap: more sophisticated context selection 2670 #endif 2653 2671 2654 2672 assert(uiAbsIdx < GetNumDepthValues()); … … 2660 2678 uiBit = (uiAbsIdx & (1<<i))>>i; 2661 2679 2680 #if RWTH_SDC_CTX_SIMPL_D0032 2681 m_pcBinIf->encodeBin( uiBit, m_cSDCResidualSCModel.get( 0, 0, i ) ); 2682 #else 2662 2683 m_pcBinIf->encodeBin( uiBit, m_cSDCResidualSCModel.get( 0, uiSegment, i ) ); //TODO depthmap: more sophisticated context selection 2684 #endif 2663 2685 } 2664 2686 -
branches/HTM-6.2-dev3-RWTH/source/Lib/TLibEncoder/TEncSbac.h
r382 r397 336 336 337 337 ContextModel3DBuffer m_cSDCResidualFlagSCModel; 338 #if !RWTH_SDC_CTX_SIMPL_D0032 338 339 ContextModel3DBuffer m_cSDCResidualSignFlagSCModel; 340 #endif 339 341 ContextModel3DBuffer m_cSDCResidualSCModel; 340 342
Note: See TracChangeset for help on using the changeset viewer.