Changeset 1313 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComWedgelet.h
- Timestamp:
- 13 Aug 2015, 17:38:13 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibCommon/TComWedgelet.h
r1196 r1313 43 43 #include <vector> 44 44 45 #if H_3D_DIM46 #define D IM_OFFSET (NUM_INTRA_MODE+1) // offset for DMM and RBC mode numbers (PM: not consistent with spec, but non-overlapping with chroma, see DM_CHROMA_IDX)47 #define D IM_MIN_SIZE 4 // min. block size for DMM and RBC modes48 #define D IM_MAX_SIZE 32 // max. block size for DMM and RBC modes45 #if NH_3D_DMM 46 #define DMM_OFFSET (NUM_INTRA_MODE+1) // offset for DMM and RBC mode numbers 47 #define DMM_MIN_SIZE 4 // min. block size for DMM and RBC modes 48 #define DMM_MAX_SIZE 32 // max. block size for DMM and RBC modes 49 49 50 enum D IM_IDX50 enum DmmID 51 51 { 52 52 DMM1_IDX = 0, 53 53 DMM4_IDX = 1, 54 NUM_DMM = 2, 55 DMM_NO_IDX = MAX_UINT 54 56 }; 55 57 56 #define DMM_NUM_TYPE 2 57 #define DIM_NUM_TYPE (DMM_NUM_TYPE) 58 #define DIM_NO_IDX MAX_UINT 58 __inline DmmID getDmmType( Int intraMode ) 59 { 60 Int dmmType = intraMode-DMM_OFFSET; 61 return (dmmType >= 0 && dmmType < NUM_DMM) ? (DmmID)dmmType : DMM_NO_IDX; 62 } 63 __inline Bool isDmmMode( Int intraMode ) { return ((UInt)getDmmType( intraMode ) < NUM_DMM); } 59 64 60 __inline UInt getDimType ( Int intraMode )61 {62 Int dimType = intraMode-DIM_OFFSET;63 return (dimType >= 0 && dimType < DIM_NUM_TYPE) ? (UInt)dimType : DIM_NO_IDX;64 }65 __inline Bool isDimMode ( Int intraMode ) { return (getDimType( intraMode ) < DIM_NUM_TYPE); }66 #endif67 65 68 #if H_3D_DIM_DMM 69 #define DMM_NO_WEDGE INDEX MAX_UINT66 // Wedgelets 67 #define DMM_NO_WEDGE_IDX MAX_UINT 70 68 #define DMM_NUM_WEDGE_REFINES 8 71 69 … … 90 88 WedgeResolution m_eWedgeRes; // start/end pos resolution 91 89 Bool m_bIsCoarse; 92 UInt m_uiAng;93 90 94 91 UInt m_uiWidth; … … 121 118 UChar getOri () { return m_uhOri; } 122 119 Bool getIsCoarse() { return m_bIsCoarse; } 123 UInt getAng () { return m_uiAng; }124 Bool* getScaledPattern(UInt uiWidth);125 120 126 121 Void generateWedgePatternByRotate(const TComWedgelet &rcWedge, Int rotate); 127 122 Void setWedgelet( UChar uhXs, UChar uhYs, UChar uhXe, UChar uhYe, UChar uhOri, WedgeResolution eWedgeRes, Bool bIsCoarse = false ); 128 Void findClosestAngle();129 123 130 124 Bool checkNotPlain(); 131 125 Bool checkIdentical( Bool* pbRefPattern ); 132 126 Bool checkInvIdentical( Bool* pbRefPattern ); 127 128 Bool* getPatternScaled ( UInt dstSize ); 129 Void getPatternScaledCopy( UInt dstSize, Bool* dstBuf ); 133 130 134 131 }; // END CLASS DEFINITION TComWedgelet … … 162 159 }; // END CLASS DEFINITION TComWedgeRef 163 160 164 // type definition wedgelet reference list165 typedef std::vector<TComWedgeRef> WedgeRefList;166 161 167 162 // ==================================================================================================================== … … 187 182 // type definition wedgelet node list 188 183 typedef std::vector<TComWedgeNode> WedgeNodeList; 189 #endif // H_3D_DIM_DMM184 #endif //NH_3D_DMM 190 185 191 192 // ====================================================================================================================193 // Function definition roftoi (mathematically correct rounding of float to int)194 // ====================================================================================================================195 __inline Int roftoi( Double value )196 {197 (value < -0.5) ? (value -= 0.5) : (value += 0.5);198 return ( (Int)value );199 }200 186 #endif // __TCOMWEDGELET__
Note: See TracChangeset for help on using the changeset viewer.