Changeset 826 in 3DVCSoftware for branches/HTM-9.3-dev0/source/Lib/TLibEncoder/TEncSbac.cpp
- Timestamp:
- 5 Feb 2014, 18:55:49 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-9.3-dev0/source/Lib/TLibEncoder/TEncSbac.cpp
r820 r826 691 691 Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA); 692 692 693 #if MTK_TEX_DEP_PAR_G0055 694 Bool depthDependent = false; 695 UInt uiTexturePart = eSize; 696 #endif 693 697 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC() ) 694 698 { … … 696 700 UInt uiCUIdx = (pcCU->getZorderIdxInCU() == 0) ? uiAbsPartIdx : pcCU->getZorderIdxInCU(); 697 701 assert(pcTextureCU->getDepth(uiCUIdx) >= uiDepth); 702 #if !MTK_TEX_DEP_PAR_G0055 698 703 if (pcTextureCU->getDepth(uiCUIdx) == uiDepth && pcTextureCU->getPartitionSize( uiCUIdx ) != SIZE_NxN) 704 #else 705 if(pcTextureCU->getDepth(uiCUIdx) == uiDepth ) 706 { 707 depthDependent = true; 708 uiTexturePart = pcTextureCU->getPartitionSize( uiCUIdx ); 709 } 710 if (pcTextureCU->getDepth(uiCUIdx) == uiDepth && pcTextureCU->getPartitionSize( uiCUIdx ) == SIZE_2Nx2N) 711 #endif 699 712 { 700 713 assert( eSize == SIZE_2Nx2N ); … … 718 731 DTRACE_CU("part_mode", eSize ) 719 732 #endif 733 #if MTK_TEX_DEP_PAR_G0055 734 if (depthDependent==false || uiTexturePart == SIZE_NxN|| uiTexturePart == SIZE_2Nx2N) 735 { 736 #endif 720 737 switch(eSize) 721 738 { … … 784 801 } 785 802 } 803 #if MTK_TEX_DEP_PAR_G0055 804 } 805 else if(uiTexturePart == SIZE_2NxN || uiTexturePart == SIZE_2NxnU || uiTexturePart == SIZE_2NxnD) 806 { 807 //assert(eSize!=SIZE_NxN); 808 //assert(eSize!=SIZE_Nx2N); 809 //assert(eSize==SIZE_2Nx2N || eSize==SIZE_2NxN || eSize==SIZE_2NxnU || eSize==SIZE_2NxnD); 810 switch(eSize) 811 { 812 case SIZE_2Nx2N: 813 { 814 m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 815 break; 816 } 817 case SIZE_2NxN: 818 { 819 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 820 if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) ) 821 { 822 m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 1) ); 823 } 824 break; 825 } 826 case SIZE_2NxnU: 827 case SIZE_2NxnD: 828 { 829 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 830 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 1) ); 831 m_pcBinIf->encodeBinEP((eSize == SIZE_2NxnU? 0: 1)); 832 break; 833 } 834 default: 835 { 836 assert(0); 837 } 838 } 839 } 840 else if(uiTexturePart == SIZE_Nx2N|| uiTexturePart==SIZE_nLx2N || uiTexturePart==SIZE_nRx2N) 841 { 842 //assert(eSize!=SIZE_NxN); 843 //assert(eSize!=SIZE_2NxN); 844 //assert(eSize==SIZE_2Nx2N ||eSize==SIZE_Nx2N || eSize==SIZE_nLx2N || eSize==SIZE_nRx2N); 845 switch(eSize) 846 { 847 case SIZE_2Nx2N: 848 { 849 m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 850 break; 851 } 852 case SIZE_Nx2N: 853 { 854 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 855 if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) ) 856 { 857 m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 1) ); 858 } 859 break; 860 } 861 case SIZE_nLx2N: 862 case SIZE_nRx2N: 863 { 864 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 865 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 1) ); 866 m_pcBinIf->encodeBinEP((eSize == SIZE_nLx2N? 0: 1)); 867 break; 868 } 869 default: 870 { 871 assert(0); 872 } 873 } 874 } 875 else 876 { 877 printf("uiTexturePart=%d",uiTexturePart); 878 assert(0); 879 } 880 #endif 786 881 } 787 882 … … 918 1013 if( nBinNum > 1 ) 919 1014 { 1015 #if MTK_ARP_FLAG_CABAC_SIMP_G0061 1016 m_pcBinIf->encodeBin( ( iW == iMaxW ) ? 1 : 0, m_cCUPUARPWSCModel.get( 0, 0, 2 ) ); 1017 #else 920 1018 m_pcBinIf->encodeBin( ( iW == iMaxW ) ? 1 : 0, m_cCUPUARPWSCModel.get( 0, 0, 3 ) ); 1019 #endif 921 1020 } 922 1021 #if H_MV_ENC_DEC_TRAC … … 936 1035 // get context function is here 937 1036 UInt uiSymbol = pcCU->getICFlag( uiAbsPartIdx ) ? 1 : 0; 1037 #if MTK_IC_FLAG_CABAC_SIMP_G0061 1038 m_pcBinIf->encodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, 0 ) ); 1039 #else 938 1040 UInt uiCtxIC = pcCU->getCtxICFlag( uiAbsPartIdx ) ; 939 1041 m_pcBinIf->encodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, uiCtxIC ) ); 1042 #endif 940 1043 #if !H_MV_ENC_DEC_TRAC 941 1044 DTRACE_CABAC_VL( g_nSymbolCounter++ );
Note: See TracChangeset for help on using the changeset viewer.