Changeset 56 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComLoopFilter.h


Ignore:
Timestamp:
11 May 2012, 21:20:17 (13 years ago)
Author:
hschwarz
Message:

updated trunk (move to HM6.1)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibCommon/TComLoopFilter.h

    r5 r56  
    22 * License, included below. This software may be subject to other third party
    33 * and contributor rights, including patent rights, and no such rights are
    4  * granted under this license.
     4 * granted under this license. 
    55 *
    6  * Copyright (c) 2010-2011, ISO/IEC
     6 * Copyright (c) 2010-2012, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    1515 *    this list of conditions and the following disclaimer in the documentation
    1616 *    and/or other materials provided with the distribution.
    17  *  * Neither the name of the ISO/IEC nor the names of its contributors may
     17 *  * Neither the name of the ITU/ISO/IEC nor the names of its contributors may
    1818 *    be used to endorse or promote products derived from this software without
    1919 *    specific prior written permission.
     
    3232 */
    3333
    34 
    35 
    3634/** \file     TComLoopFilter.h
    3735    \brief    deblocking filter (header)
     
    4341#include "CommonDef.h"
    4442#include "TComPic.h"
     43
     44//! \ingroup TLibCommon
     45//! \{
    4546
    4647#define DEBLOCK_SMALLEST_BLOCK  8
     
    5556private:
    5657  UInt      m_uiDisableDeblockingFilterIdc; ///< deblocking filter idc
     58  Int       m_betaOffsetDiv2;
     59  Int       m_tcOffsetDiv2;
     60
    5761  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]
    5963  Bool*     m_aapbEdgeFilter[2][3];
    6064  LFCUParam m_stLFCUParam;                  ///< status structure
    6165 
    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
    6768protected:
    6869  /// CU-level deblocking function
    69 #if PARALLEL_MERGED_DEBLK
    7070  Void xDeblockCU                 ( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth, Int Edge );
    71 #else
    72   Void xDeblockCU                 ( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth );
    73 #endif
    7471
    7572  // set / get functions
    7673  Void xSetLoopfilterParam        ( TComDataCU* pcCU, UInt uiAbsZorderIdx );
    7774  // filtering functions
    78   Void xSetEdgefilterTU           ( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth );
     75  Void xSetEdgefilterTU           ( TComDataCU* pcCU, UInt absTUPartIdx, UInt uiAbsZorderIdx, UInt uiDepth );
    7976  Void xSetEdgefilterPU           ( TComDataCU* pcCU, UInt uiAbsZorderIdx );
    8077  Void xGetBoundaryStrengthSingle ( TComDataCU* pcCU, UInt uiAbsZorderIdx, Int iDir, UInt uiPartIdx );
     
    8784    else
    8885      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  }
    9187 
    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 
    9590  Void xEdgeFilterLuma            ( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth, Int iDir, Int iEdge );
    96 #endif
    9791  Void xEdgeFilterChroma          ( TComDataCU* pcCU, UInt uiAbsZorderIdx, UInt uiDepth, Int iDir, Int iEdge );
    9892 
    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 
    10596
    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);
    113100 
    114101public:
     
    120107 
    121108  /// 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
    123114 
    124115  /// picture-level deblocking filter
     
    126117};
    127118
     119//! \}
     120
    128121#endif
    129 
Note: See TracChangeset for help on using the changeset viewer.