You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
522 lines
13 KiB
522 lines
13 KiB
/*****************************************************************************/
|
|
// 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
|
|
|
|
/*****************************************************************************/
|