Changeset 507 in SHVCSoftware for branches/SHM-4.1-dev/source/Lib/TLibEncoder
- Timestamp:
- 25 Nov 2013, 17:32:16 (12 years ago)
- Location:
- branches/SHM-4.1-dev/source/Lib/TLibEncoder
- Files:
-
- 4 edited
-
TEncCavlc.cpp (modified) (1 diff)
-
TEncGOP.cpp (modified) (2 diffs)
-
TEncTop.cpp (modified) (4 diffs)
-
TEncTop.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-4.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r506 r507 684 684 { 685 685 Window scaledWindow = pcSPS->getScaledRefLayerWindow(i); 686 #if O0098_SCALED_REF_LAYER_ID 687 WRITE_CODE( pcSPS->getScaledRefLayerId(i), 6, "scaled_ref_layer_id" ); 688 #endif 686 689 WRITE_SVLC( scaledWindow.getWindowLeftOffset() >> 1, "scaled_ref_layer_left_offset" ); 687 690 WRITE_SVLC( scaledWindow.getWindowTopOffset() >> 1, "scaled_ref_layer_top_offset" ); -
branches/SHM-4.1-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r506 r507 783 783 } 784 784 785 #if O0098_SCALED_REF_LAYER_ID 786 const Window &scalEL = m_pcEncTop->getScaledRefLayerWindowForLayer(pcSlice->getVPS()->getRefLayerId(m_layerId, refLayerIdc)); 787 #else 785 788 const Window &scalEL = m_pcEncTop->getScaledRefLayerWindow(refLayerIdc); 789 #endif 786 790 787 791 Int widthBL = pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec()->getWidth(); … … 800 804 if( pcPic->isSpatialEnhLayer(refLayerIdc)) 801 805 { 806 #if O0098_SCALED_REF_LAYER_ID 807 Window scalEL = pcSlice->getSPS()->getScaledRefLayerWindowForLayer(pcSlice->getVPS()->getRefLayerId(m_layerId, refLayerIdc)); 808 #else 809 Window scalEL = pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc); 810 #endif 802 811 #if O0215_PHASE_ALIGNMENT 803 812 #if O0194_JOINT_US_BITSHIFT 804 m_pcPredSearch->upsampleBasePic( pcSlice, refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc), pcSlice->getVPS()->getPhaseAlignFlag() );805 #else 806 m_pcPredSearch->upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc), pcSlice->getVPS()->getPhaseAlignFlag() );813 m_pcPredSearch->upsampleBasePic( pcSlice, refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), scalEL, pcSlice->getVPS()->getPhaseAlignFlag() ); 814 #else 815 m_pcPredSearch->upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), scalEL, pcSlice->getVPS()->getPhaseAlignFlag() ); 807 816 #endif 808 817 #else 809 818 #if O0194_JOINT_US_BITSHIFT 810 m_pcPredSearch->upsampleBasePic( pcSlice, refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc));811 #else 812 m_pcPredSearch->upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc));819 m_pcPredSearch->upsampleBasePic( pcSlice, refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), scalEL ); 820 #else 821 m_pcPredSearch->upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), scalEL ); 813 822 #endif 814 823 #endif -
branches/SHM-4.1-dev/source/Lib/TLibEncoder/TEncTop.cpp
r506 r507 791 791 for(UInt i = 0; i < m_cVPS.getNumDirectRefLayers( m_layerId ); i++ ) 792 792 { 793 #if O0098_SCALED_REF_LAYER_ID 794 const Window scalEL = getSPS()->getScaledRefLayerWindowForLayer(m_cVPS.getRefLayerId(m_layerId, i)); 795 #else 793 796 const Window scalEL = getSPS()->getScaledRefLayerWindow(i); 797 #endif 794 798 Bool zeroOffsets = ( scalEL.getWindowLeftOffset() == 0 && scalEL.getWindowRightOffset() == 0 && scalEL.getWindowTopOffset() == 0 && scalEL.getWindowBottomOffset() == 0 ); 795 799 … … 842 846 for(UInt i = 0; i < m_cVPS.getNumDirectRefLayers( m_layerId ); i++ ) 843 847 { 848 #if O0098_SCALED_REF_LAYER_ID 849 const Window scalEL = getSPS()->getScaledRefLayerWindowForLayer(m_cVPS.getRefLayerId(m_layerId, i)); 850 #else 844 851 const Window scalEL = getSPS()->getScaledRefLayerWindow(i); 852 #endif 845 853 Bool zeroOffsets = ( scalEL.getWindowLeftOffset() == 0 && scalEL.getWindowRightOffset() == 0 && scalEL.getWindowTopOffset() == 0 && scalEL.getWindowBottomOffset() == 0 ); 846 854 … … 912 920 for(Int i = 0; i < m_cSPS.getNumScaledRefLayerOffsets(); i++) 913 921 { 922 #if O0098_SCALED_REF_LAYER_ID 923 m_cSPS.setScaledRefLayerId(i, m_scaledRefLayerId[i]); 924 #endif 914 925 m_cSPS.getScaledRefLayerWindow(i) = m_scaledRefLayerWindow[i]; 915 926 } … … 1683 1694 } 1684 1695 #endif 1696 1697 #if O0098_SCALED_REF_LAYER_ID 1698 Window& TEncTop::getScaledRefLayerWindowForLayer(Int layerId) 1699 { 1700 static Window win; 1701 1702 for (Int i = 0; i < m_numScaledRefLayerOffsets; i++) 1703 { 1704 if (layerId == m_scaledRefLayerId[i]) 1705 { 1706 return m_scaledRefLayerWindow[i]; 1707 } 1708 } 1709 1710 win.resetWindow(); // scaled reference layer offsets are inferred to be zero when not present 1711 return win; 1712 } 1713 #endif 1714 1685 1715 #endif //SVC_EXTENSION 1686 1716 //! \} -
branches/SHM-4.1-dev/source/Lib/TLibEncoder/TEncTop.h
r494 r507 141 141 #endif 142 142 UInt m_numScaledRefLayerOffsets; 143 #if O0098_SCALED_REF_LAYER_ID 144 UInt m_scaledRefLayerId[MAX_LAYERS]; 145 #endif 143 146 Window m_scaledRefLayerWindow[MAX_LAYERS]; 144 147 #if POC_RESET_FLAG … … 209 212 Void setNumScaledRefLayerOffsets(Int x) { m_numScaledRefLayerOffsets = x; } 210 213 UInt getNumScaledRefLayerOffsets() { return m_numScaledRefLayerOffsets; } 214 #if O0098_SCALED_REF_LAYER_ID 215 Void setScaledRefLayerId(Int x, UInt id) { m_scaledRefLayerId[x] = id; } 216 UInt getScaledRefLayerId(Int x) { return m_scaledRefLayerId[x]; } 217 Window& getScaledRefLayerWindowForLayer(Int layerId); 218 #endif 211 219 Window& getScaledRefLayerWindow(Int x) { return m_scaledRefLayerWindow[x]; } 212 220 #endif //SVC_EXTENSION
Note: See TracChangeset for help on using the changeset viewer.