/*****************************************************************************/ // Copyright 2006-2009 Adobe Systems Incorporated // All Rights Reserved. // // NOTICE: Adobe permits you to use, modify, and distribute this file in // accordance with the terms of the Adobe license agreement accompanying it. /*****************************************************************************/ /* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_reference.h#1 $ */ /* $DateTime: 2012/05/30 13:28:51 $ */ /* $Change: 832332 $ */ /* $Author: tknoll $ */ /*****************************************************************************/ #ifndef __dng_reference__ #define __dng_reference__ /*****************************************************************************/ #include "dng_bottlenecks.h" /*****************************************************************************/ void RefZeroBytes (void *dPtr, uint32 count); void RefCopyBytes (const void *sPtr, void *dPtr, uint32 count); /*****************************************************************************/ void RefSwapBytes16 (uint16 *dPtr, uint32 count); void RefSwapBytes32 (uint32 *dPtr, uint32 count); /*****************************************************************************/ void RefSetArea8 (uint8 *dPtr, uint8 value, uint32 rows, uint32 cols, uint32 planes, int32 rowStep, int32 colStep, int32 planeStep); void RefSetArea16 (uint16 *dPtr, uint16 value, uint32 rows, uint32 cols, uint32 planes, int32 rowStep, int32 colStep, int32 planeStep); void RefSetArea32 (uint32 *dPtr, uint32 value, uint32 rows, uint32 cols, uint32 planes, int32 rowStep, int32 colStep, int32 planeStep); /*****************************************************************************/ void RefCopyArea8 (const uint8 *sPtr, uint8 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep); void RefCopyArea16 (const uint16 *sPtr, uint16 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep); void RefCopyArea32 (const uint32 *sPtr, uint32 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep); void RefCopyArea8_16 (const uint8 *sPtr, uint16 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep); void RefCopyArea8_S16 (const uint8 *sPtr, int16 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep); void RefCopyArea8_32 (const uint8 *sPtr, uint32 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep); void RefCopyArea16_S16 (const uint16 *sPtr, int16 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep); void RefCopyArea16_32 (const uint16 *sPtr, uint32 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep); void RefCopyArea8_R32 (const uint8 *sPtr, real32 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep, uint32 pixelRange); void RefCopyArea16_R32 (const uint16 *sPtr, real32 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep, uint32 pixelRange); void RefCopyAreaS16_R32 (const int16 *sPtr, real32 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep, uint32 pixelRange); void RefCopyAreaR32_8 (const real32 *sPtr, uint8 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep, uint32 pixelRange); void RefCopyAreaR32_16 (const real32 *sPtr, uint16 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep, uint32 pixelRange); void RefCopyAreaR32_S16 (const real32 *sPtr, int16 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep, uint32 pixelRange); /*****************************************************************************/ void RefRepeatArea8 (const uint8 *sPtr, uint8 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 rowStep, int32 colStep, int32 planeStep, uint32 repeatV, uint32 repeatH, uint32 phaseV, uint32 phaseH); void RefRepeatArea16 (const uint16 *sPtr, uint16 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 rowStep, int32 colStep, int32 planeStep, uint32 repeatV, uint32 repeatH, uint32 phaseV, uint32 phaseH); void RefRepeatArea32 (const uint32 *sPtr, uint32 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 rowStep, int32 colStep, int32 planeStep, uint32 repeatV, uint32 repeatH, uint32 phaseV, uint32 phaseH); /*****************************************************************************/ void RefShiftRight16 (uint16 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 rowStep, int32 colStep, int32 planeStep, uint32 shift); /*****************************************************************************/ void RefBilinearRow16 (const uint16 *sPtr, uint16 *dPtr, uint32 cols, uint32 patPhase, uint32 patCount, const uint32 * kernCounts, const int32 * const * kernOffsets, const uint16 * const * kernWeights, uint32 sShift); void RefBilinearRow32 (const real32 *sPtr, real32 *dPtr, uint32 cols, uint32 patPhase, uint32 patCount, const uint32 * kernCounts, const int32 * const * kernOffsets, const real32 * const * kernWeights, uint32 sShift); /*****************************************************************************/ void RefBaselineABCtoRGB (const real32 *sPtrA, const real32 *sPtrB, const real32 *sPtrC, real32 *dPtrR, real32 *dPtrG, real32 *dPtrB, uint32 count, const dng_vector &cameraWhite, const dng_matrix &cameraToRGB); void RefBaselineABCDtoRGB (const real32 *sPtrA, const real32 *sPtrB, const real32 *sPtrC, const real32 *sPtrD, real32 *dPtrR, real32 *dPtrG, real32 *dPtrB, uint32 count, const dng_vector &cameraWhite, const dng_matrix &cameraToRGB); /*****************************************************************************/ void RefBaselineHueSatMap (const real32 *sPtrR, const real32 *sPtrG, const real32 *sPtrB, real32 *dPtrR, real32 *dPtrG, real32 *dPtrB, uint32 count, const dng_hue_sat_map &lut, const dng_1d_table *encodeTable, const dng_1d_table *decodeTable); /*****************************************************************************/ void RefBaselineRGBtoGray (const real32 *sPtrR, const real32 *sPtrG, const real32 *sPtrB, real32 *dPtrG, uint32 count, const dng_matrix &matrix); void RefBaselineRGBtoRGB (const real32 *sPtrR, const real32 *sPtrG, const real32 *sPtrB, real32 *dPtrR, real32 *dPtrG, real32 *dPtrB, uint32 count, const dng_matrix &matrix); /*****************************************************************************/ void RefBaseline1DTable (const real32 *sPtr, real32 *dPtr, uint32 count, const dng_1d_table &table); /*****************************************************************************/ void RefBaselineRGBTone (const real32 *sPtrR, const real32 *sPtrG, const real32 *sPtrB, real32 *dPtrR, real32 *dPtrG, real32 *dPtrB, uint32 count, const dng_1d_table &table); /*****************************************************************************/ void RefResampleDown16 (const uint16 *sPtr, uint16 *dPtr, uint32 sCount, int32 sRowStep, const int16 *wPtr, uint32 wCount, uint32 pixelRange); void RefResampleDown32 (const real32 *sPtr, real32 *dPtr, uint32 sCount, int32 sRowStep, const real32 *wPtr, uint32 wCount); /*****************************************************************************/ void RefResampleAcross16 (const uint16 *sPtr, uint16 *dPtr, uint32 dCount, const int32 *coord, const int16 *wPtr, uint32 wCount, uint32 wStep, uint32 pixelRange); void RefResampleAcross32 (const real32 *sPtr, real32 *dPtr, uint32 dCount, const int32 *coord, const real32 *wPtr, uint32 wCount, uint32 wStep); /*****************************************************************************/ bool RefEqualBytes (const void *sPtr, const void *dPtr, uint32 count); bool RefEqualArea8 (const uint8 *sPtr, const uint8 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep); bool RefEqualArea16 (const uint16 *sPtr, const uint16 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep); bool RefEqualArea32 (const uint32 *sPtr, const uint32 *dPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sColStep, int32 sPlaneStep, int32 dRowStep, int32 dColStep, int32 dPlaneStep); /*****************************************************************************/ void RefVignetteMask16 (uint16 *mPtr, uint32 rows, uint32 cols, int32 rowStep, int64 offsetH, int64 offsetV, int64 stepH, int64 stepV, uint32 tBits, const uint16 *table); /*****************************************************************************/ void RefVignette16 (int16 *sPtr, const uint16 *mPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sPlaneStep, int32 mRowStep, uint32 mBits); /*****************************************************************************/ void RefVignette32 (real32 *sPtr, const uint16 *mPtr, uint32 rows, uint32 cols, uint32 planes, int32 sRowStep, int32 sPlaneStep, int32 mRowStep, uint32 mBits); /*****************************************************************************/ void RefMapArea16 (uint16 *dPtr, uint32 count0, uint32 count1, uint32 count2, int32 step0, int32 step1, int32 step2, const uint16 *map); /*****************************************************************************/ #endif /*****************************************************************************/