Changeset 56 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComLoopFilter.h
- Timestamp:
- 11 May 2012, 21:20:17 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibCommon/TComLoopFilter.h
r5 r56 2 2 * License, included below. This software may be subject to other third party 3 3 * and contributor rights, including patent rights, and no such rights are 4 * granted under this license. 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2012, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 15 15 * this list of conditions and the following disclaimer in the documentation 16 16 * and/or other materials provided with the distribution. 17 * * Neither the name of the I SO/IEC nor the names of its contributors may17 * * Neither the name of the ITU/ISO/IEC nor the names of its contributors may 18 18 * be used to endorse or promote products derived from this software without 19 19 * specific prior written permission. … … 32 32 */ 33 33 34 35 36 34 /** \file TComLoopFilter.h 37 35 \brief deblocking filter (header) … … 43 41 #include "CommonDef.h" 44 42 #include "TComPic.h" 43 44 //! \ingroup TLibCommon 45 //! \{ 45 46 46 47 #define DEBLOCK_SMALLEST_BLOCK 8 … … 55 56 private: 56 57 UInt m_uiDisableDeblockingFilterIdc; ///< deblocking filter idc 58 Int m_betaOffsetDiv2; 59 Int m_tcOffsetDiv2; 60 57 61 UInt m_uiNumPartitions; 58 UChar* m_aapucBS[2] [3]; ///< Bs for [Ver/Hor][Y/U/V][Blk_Idx]62 UChar* m_aapucBS[2]; ///< Bs for [Ver/Hor][Y/U/V][Blk_Idx] 59 63 Bool* m_aapbEdgeFilter[2][3]; 60 64 LFCUParam m_stLFCUParam; ///< status structure 61 65 62 #if (PARALLEL_DEBLK_DECISION && !PARALLEL_MERGED_DEBLK) 63 UInt m_decisions_D [MAX_CU_SIZE/DEBLOCK_SMALLEST_BLOCK][MAX_CU_SIZE/DEBLOCK_SMALLEST_BLOCK]; 64 UInt m_decisions_Sample[MAX_CU_SIZE/DEBLOCK_SMALLEST_BLOCK][MAX_CU_SIZE]; 65 #endif 66 66 Bool m_bLFCrossTileBoundary; 67 67 68 protected: 68 69 /// CU-level deblocking function 69 #if PARALLEL_MERGED_DEBLK70 70 Void xDeblockCU ( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth, Int Edge ); 71 #else72 Void xDeblockCU ( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth );73 #endif74 71 75 72 // set / get functions 76 73 Void xSetLoopfilterParam ( TComDataCU* pcCU, UInt uiAbsZorderIdx ); 77 74 // filtering functions 78 Void xSetEdgefilterTU ( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth );75 Void xSetEdgefilterTU ( TComDataCU* pcCU, UInt absTUPartIdx, UInt uiAbsZorderIdx, UInt uiDepth ); 79 76 Void xSetEdgefilterPU ( TComDataCU* pcCU, UInt uiAbsZorderIdx ); 80 77 Void xGetBoundaryStrengthSingle ( TComDataCU* pcCU, UInt uiAbsZorderIdx, Int iDir, UInt uiPartIdx ); … … 87 84 else 88 85 return g_auiRasterToZscan[g_auiZscanToRaster[uiAbsZorderIdx] + iEdgeIdx * uiLCUWidthInBaseUnits + iBaseUnitIdx ]; 89 } 90 Void xSetEdgefilterMultiple( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth, Int iDir, Int iEdgeIdx, Bool bValue ); 86 } 91 87 92 #if (PARALLEL_DEBLK_DECISION && !PARALLEL_MERGED_DEBLK) 93 Void xEdgeFilterLuma ( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth, Int iDir, Int iEdge, Int iDecideExecute); 94 #else 88 Void xSetEdgefilterMultiple( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth, Int iDir, Int iEdgeIdx, Bool bValue ,UInt uiWidthInBaseUnits = 0, UInt uiHeightInBaseUnits = 0, Bool nonSquare = false ); 89 95 90 Void xEdgeFilterLuma ( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth, Int iDir, Int iEdge ); 96 #endif97 91 Void xEdgeFilterChroma ( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth, Int iDir, Int iEdge ); 98 92 99 #if (PARALLEL_DEBLK_DECISION && !PARALLEL_MERGED_DEBLK) 100 __inline Void xPelFilterLumaStrong ( Pel* piSrc, Int iOffset, Pel m0, Pel m1, Pel m2, Pel m3, Pel m4, Pel m5, Pel m6, Pel m7); 101 __inline Void xPelFilterLumaWeak ( Pel* piSrc, Int iOffset, Int tc, Pel m1, Pel m2, Pel m3, Pel m4, Pel m5, Pel m6); 102 __inline Void xPelFilterLumaExecution ( Pel* piSrc, Int iOffset, Int tc, Int strongFilter); 103 __inline Int xPelFilterLumaDecision ( Pel* piSrc, Int iOffset, Int d, Int beta, Int tc); 104 #endif 93 __inline Void xPelFilterLuma( Pel* piSrc, Int iOffset, Int d, Int beta, Int tc, Bool sw, Bool bPartPNoFilter, Bool bPartQNoFilter, Int iThrCut, Bool bFilterSecondP, Bool bFilterSecondQ); 94 __inline Void xPelFilterChroma( Pel* piSrc, Int iOffset, Int tc, Bool bPartPNoFilter, Bool bPartQNoFilter); 95 105 96 106 #if PARALLEL_MERGED_DEBLK 107 __inline Void xPelFilterLuma( Pel* piSrc, Int iOffset, Int d, Int beta, Int tc , Pel* piSrcJudge); 108 #else 109 __inline Void xPelFilterLuma( Pel* piSrc, Int iOffset, Int d, Int beta, Int tc ); 110 #endif 111 __inline Void xPelFilterChroma( Pel* piSrc, Int iOffset, Int tc ); 112 __inline Int xCalcD( Pel* piSrc, Int iOffset); 97 __inline Bool xUseStrongFiltering( Int offset, Int d, Int beta, Int tc, Pel* piSrc); 98 __inline Int xCalcDP( Pel* piSrc, Int iOffset); 99 __inline Int xCalcDQ( Pel* piSrc, Int iOffset); 113 100 114 101 public: … … 120 107 121 108 /// set configuration 122 Void setCfg( UInt uiDisableDblkIdc, Int iAlphaOffset, Int iBetaOffset ); 109 #if DBL_CONTROL 110 Void setCfg( Bool DeblockingFilterControlPresent, UInt uiDisableDblkIdc, Int betaOffsetDiv2, Int tcOffsetDiv2, Bool bLFCrossTileBoundary); 111 #else 112 Void setCfg( UInt uiDisableDblkIdc, Int betaOffsetDiv2, Int tcOffsetDiv2, Bool bLFCrossTileBoundary); 113 #endif 123 114 124 115 /// picture-level deblocking filter … … 126 117 }; 127 118 119 //! \} 120 128 121 #endif 129
Note: See TracChangeset for help on using the changeset viewer.