blob: ea72928ce580e78404a506cd3b4e27d0c014dd79 [file] [log] [blame]
/*****************************************************************************/
// Copyright 2006-2007 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_bottlenecks.h#1 $ */
/* $DateTime: 2012/05/30 13:28:51 $ */
/* $Change: 832332 $ */
/* $Author: tknoll $ */
/** \file
* Indirection mechanism for performance-critical routines that might be replaced
* with hand-optimized or hardware-specific implementations.
*/
/*****************************************************************************/
#ifndef __dng_bottlenecks__
#define __dng_bottlenecks__
/*****************************************************************************/
#include "dng_classes.h"
#include "dng_types.h"
/*****************************************************************************/
typedef void (ZeroBytesProc)
(void *dPtr,
uint32 count);
typedef void (CopyBytesProc)
(const void *sPtr,
void *dPtr,
uint32 count);
/*****************************************************************************/
typedef void (SwapBytes16Proc)
(uint16 *dPtr,
uint32 count);
typedef void (SwapBytes32Proc)
(uint32 *dPtr,
uint32 count);
/*****************************************************************************/
typedef void (SetArea8Proc)
(uint8 *dPtr,
uint8 value,
uint32 rows,
uint32 cols,
uint32 planes,
int32 rowStep,
int32 colStep,
int32 planeStep);
typedef void (SetArea16Proc)
(uint16 *dPtr,
uint16 value,
uint32 rows,
uint32 cols,
uint32 planes,
int32 rowStep,
int32 colStep,
int32 planeStep);
typedef void (SetArea32Proc)
(uint32 *dPtr,
uint32 value,
uint32 rows,
uint32 cols,
uint32 planes,
int32 rowStep,
int32 colStep,
int32 planeStep);
/*****************************************************************************/
typedef void (CopyArea8Proc)
(const uint8 *sPtr,
uint8 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep);
typedef void (CopyArea16Proc)
(const uint16 *sPtr,
uint16 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep);
typedef void (CopyArea32Proc)
(const uint32 *sPtr,
uint32 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep);
typedef void (CopyArea8_16Proc)
(const uint8 *sPtr,
uint16 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep);
typedef void (CopyArea8_S16Proc)
(const uint8 *sPtr,
int16 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep);
typedef void (CopyArea8_32Proc)
(const uint8 *sPtr,
uint32 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep);
typedef void (CopyArea16_S16Proc)
(const uint16 *sPtr,
int16 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep);
typedef void (CopyArea16_32Proc)
(const uint16 *sPtr,
uint32 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep);
typedef void (CopyArea8_R32Proc)
(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);
typedef void (CopyArea16_R32Proc)
(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);
typedef void (CopyAreaS16_R32Proc)
(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);
typedef void (CopyAreaR32_8Proc)
(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);
typedef void (CopyAreaR32_16Proc)
(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);
typedef void (CopyAreaR32_S16Proc)
(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);
/*****************************************************************************/
typedef void (RepeatArea8Proc)
(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);
typedef void (RepeatArea16Proc)
(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);
typedef void (RepeatArea32Proc)
(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);
/*****************************************************************************/
typedef void (ShiftRight16Proc)
(uint16 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 rowStep,
int32 colStep,
int32 planeStep,
uint32 shift);
/*****************************************************************************/
typedef void (BilinearRow16Proc)
(const uint16 *sPtr,
uint16 *dPtr,
uint32 cols,
uint32 patPhase,
uint32 patCount,
const uint32 * kernCounts,
const int32 * const * kernOffsets,
const uint16 * const * kernWeights,
uint32 sShift);
typedef void (BilinearRow32Proc)
(const real32 *sPtr,
real32 *dPtr,
uint32 cols,
uint32 patPhase,
uint32 patCount,
const uint32 * kernCounts,
const int32 * const * kernOffsets,
const real32 * const * kernWeights,
uint32 sShift);
/*****************************************************************************/
typedef void (BaselineABCtoRGBProc)
(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);
typedef void (BaselineABCDtoRGBProc)
(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);
/*****************************************************************************/
typedef void (BaselineHueSatMapProc)
(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);
/*****************************************************************************/
typedef void (BaselineGrayToRGBProc)
(const real32 *sPtrR,
const real32 *sPtrG,
const real32 *sPtrB,
real32 *dPtrG,
uint32 count,
const dng_matrix &matrix);
typedef void (BaselineRGBtoRGBProc)
(const real32 *sPtrR,
const real32 *sPtrG,
const real32 *sPtrB,
real32 *dPtrR,
real32 *dPtrG,
real32 *dPtrB,
uint32 count,
const dng_matrix &matrix);
/*****************************************************************************/
typedef void (Baseline1DTableProc)
(const real32 *sPtr,
real32 *dPtr,
uint32 count,
const dng_1d_table &table);
/*****************************************************************************/
typedef void (BaselineRGBToneProc)
(const real32 *sPtrR,
const real32 *sPtrG,
const real32 *sPtrB,
real32 *dPtrR,
real32 *dPtrG,
real32 *dPtrB,
uint32 count,
const dng_1d_table &table);
/*****************************************************************************/
typedef void (ResampleDown16Proc)
(const uint16 *sPtr,
uint16 *dPtr,
uint32 sCount,
int32 sRowStep,
const int16 *wPtr,
uint32 wCount,
uint32 pixelRange);
typedef void (ResampleDown32Proc)
(const real32 *sPtr,
real32 *dPtr,
uint32 sCount,
int32 sRowStep,
const real32 *wPtr,
uint32 wCount);
/*****************************************************************************/
typedef void (ResampleAcross16Proc)
(const uint16 *sPtr,
uint16 *dPtr,
uint32 dCount,
const int32 *coord,
const int16 *wPtr,
uint32 wCount,
uint32 wStep,
uint32 pixelRange);
typedef void (ResampleAcross32Proc)
(const real32 *sPtr,
real32 *dPtr,
uint32 dCount,
const int32 *coord,
const real32 *wPtr,
uint32 wCount,
uint32 wStep);
/*****************************************************************************/
typedef bool (EqualBytesProc)
(const void *sPtr,
const void *dPtr,
uint32 count);
typedef bool (EqualArea8Proc)
(const uint8 *sPtr,
const uint8 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep);
typedef bool (EqualArea16Proc)
(const uint16 *sPtr,
const uint16 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep);
typedef bool (EqualArea32Proc)
(const uint32 *sPtr,
const uint32 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep);
/*****************************************************************************/
typedef void (VignetteMask16Proc)
(uint16 *mPtr,
uint32 rows,
uint32 cols,
int32 rowStep,
int64 offsetH,
int64 offsetV,
int64 stepH,
int64 stepV,
uint32 tBits,
const uint16 *table);
typedef void (Vignette16Proc)
(int16 *sPtr,
const uint16 *mPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sPlaneStep,
int32 mRowStep,
uint32 mBits);
/*****************************************************************************/
typedef void (Vignette32Proc)
(real32 *sPtr,
const uint16 *mPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sPlaneStep,
int32 mRowStep,
uint32 mBits);
/*****************************************************************************/
typedef void (MapArea16Proc)
(uint16 *dPtr,
uint32 count0,
uint32 count1,
uint32 count2,
int32 step0,
int32 step1,
int32 step2,
const uint16 *map);
/*****************************************************************************/
struct dng_suite
{
ZeroBytesProc *ZeroBytes;
CopyBytesProc *CopyBytes;
SwapBytes16Proc *SwapBytes16;
SwapBytes32Proc *SwapBytes32;
SetArea8Proc *SetArea8;
SetArea16Proc *SetArea16;
SetArea32Proc *SetArea32;
CopyArea8Proc *CopyArea8;
CopyArea16Proc *CopyArea16;
CopyArea32Proc *CopyArea32;
CopyArea8_16Proc *CopyArea8_16;
CopyArea8_S16Proc *CopyArea8_S16;
CopyArea8_32Proc *CopyArea8_32;
CopyArea16_S16Proc *CopyArea16_S16;
CopyArea16_32Proc *CopyArea16_32;
CopyArea8_R32Proc *CopyArea8_R32;
CopyArea16_R32Proc *CopyArea16_R32;
CopyAreaS16_R32Proc *CopyAreaS16_R32;
CopyAreaR32_8Proc *CopyAreaR32_8;
CopyAreaR32_16Proc *CopyAreaR32_16;
CopyAreaR32_S16Proc *CopyAreaR32_S16;
RepeatArea8Proc *RepeatArea8;
RepeatArea16Proc *RepeatArea16;
RepeatArea32Proc *RepeatArea32;
ShiftRight16Proc *ShiftRight16;
BilinearRow16Proc *BilinearRow16;
BilinearRow32Proc *BilinearRow32;
BaselineABCtoRGBProc *BaselineABCtoRGB;
BaselineABCDtoRGBProc *BaselineABCDtoRGB;
BaselineHueSatMapProc *BaselineHueSatMap;
BaselineGrayToRGBProc *BaselineRGBtoGray;
BaselineRGBtoRGBProc *BaselineRGBtoRGB;
Baseline1DTableProc *Baseline1DTable;
BaselineRGBToneProc *BaselineRGBTone;
ResampleDown16Proc *ResampleDown16;
ResampleDown32Proc *ResampleDown32;
ResampleAcross16Proc *ResampleAcross16;
ResampleAcross32Proc *ResampleAcross32;
EqualBytesProc *EqualBytes;
EqualArea8Proc *EqualArea8;
EqualArea16Proc *EqualArea16;
EqualArea32Proc *EqualArea32;
VignetteMask16Proc *VignetteMask16;
Vignette16Proc *Vignette16;
Vignette32Proc *Vignette32;
MapArea16Proc *MapArea16;
};
/*****************************************************************************/
extern dng_suite gDNGSuite;
/*****************************************************************************/
inline void DoZeroBytes (void *dPtr,
uint32 count)
{
(gDNGSuite.ZeroBytes) (dPtr,
count);
}
inline void DoCopyBytes (const void *sPtr,
void *dPtr,
uint32 count)
{
(gDNGSuite.CopyBytes) (sPtr,
dPtr,
count);
}
/*****************************************************************************/
inline void DoSwapBytes16 (uint16 *dPtr,
uint32 count)
{
(gDNGSuite.SwapBytes16) (dPtr,
count);
}
inline void DoSwapBytes32 (uint32 *dPtr,
uint32 count)
{
(gDNGSuite.SwapBytes32) (dPtr,
count);
}
/*****************************************************************************/
inline void DoSetArea8 (uint8 *dPtr,
uint8 value,
uint32 rows,
uint32 cols,
uint32 planes,
int32 rowStep,
int32 colStep,
int32 planeStep)
{
(gDNGSuite.SetArea8) (dPtr,
value,
rows,
cols,
planes,
rowStep,
colStep,
planeStep);
}
inline void DoSetArea16 (uint16 *dPtr,
uint16 value,
uint32 rows,
uint32 cols,
uint32 planes,
int32 rowStep,
int32 colStep,
int32 planeStep)
{
(gDNGSuite.SetArea16) (dPtr,
value,
rows,
cols,
planes,
rowStep,
colStep,
planeStep);
}
inline void DoSetArea32 (uint32 *dPtr,
uint32 value,
uint32 rows,
uint32 cols,
uint32 planes,
int32 rowStep,
int32 colStep,
int32 planeStep)
{
(gDNGSuite.SetArea32) (dPtr,
value,
rows,
cols,
planes,
rowStep,
colStep,
planeStep);
}
/*****************************************************************************/
inline void DoCopyArea8 (const uint8 *sPtr,
uint8 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep)
{
(gDNGSuite.CopyArea8) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep);
}
inline void DoCopyArea16 (const uint16 *sPtr,
uint16 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep)
{
(gDNGSuite.CopyArea16) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep);
}
inline void DoCopyArea32 (const uint32 *sPtr,
uint32 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep)
{
(gDNGSuite.CopyArea32) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep);
}
inline void DoCopyArea8_16 (const uint8 *sPtr,
uint16 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep)
{
(gDNGSuite.CopyArea8_16) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep);
}
inline void DoCopyArea8_S16 (const uint8 *sPtr,
int16 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep)
{
(gDNGSuite.CopyArea8_S16) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep);
}
inline void DoCopyArea8_32 (const uint8 *sPtr,
uint32 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep)
{
(gDNGSuite.CopyArea8_32) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep);
}
inline void DoCopyArea16_S16 (const uint16 *sPtr,
int16 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep)
{
(gDNGSuite.CopyArea16_S16) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep);
}
inline void DoCopyArea16_32 (const uint16 *sPtr,
uint32 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep)
{
(gDNGSuite.CopyArea16_32) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep);
}
inline void DoCopyArea8_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)
{
(gDNGSuite.CopyArea8_R32) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep,
pixelRange);
}
inline void DoCopyArea16_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)
{
(gDNGSuite.CopyArea16_R32) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep,
pixelRange);
}
inline void DoCopyAreaS16_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)
{
(gDNGSuite.CopyAreaS16_R32) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep,
pixelRange);
}
inline void DoCopyAreaR32_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)
{
(gDNGSuite.CopyAreaR32_8) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep,
pixelRange);
}
inline void DoCopyAreaR32_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)
{
(gDNGSuite.CopyAreaR32_16) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep,
pixelRange);
}
inline void DoCopyAreaR32_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)
{
(gDNGSuite.CopyAreaR32_S16) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep,
pixelRange);
}
/*****************************************************************************/
inline void DoRepeatArea8 (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)
{
(gDNGSuite.RepeatArea8) (sPtr,
dPtr,
rows,
cols,
planes,
rowStep,
colStep,
planeStep,
repeatV,
repeatH,
phaseV,
phaseH);
}
inline void DoRepeatArea16 (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)
{
(gDNGSuite.RepeatArea16) (sPtr,
dPtr,
rows,
cols,
planes,
rowStep,
colStep,
planeStep,
repeatV,
repeatH,
phaseV,
phaseH);
}
inline void DoRepeatArea32 (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)
{
(gDNGSuite.RepeatArea32) (sPtr,
dPtr,
rows,
cols,
planes,
rowStep,
colStep,
planeStep,
repeatV,
repeatH,
phaseV,
phaseH);
}
/*****************************************************************************/
inline void DoShiftRight16 (uint16 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 rowStep,
int32 colStep,
int32 planeStep,
uint32 shift)
{
(gDNGSuite.ShiftRight16) (dPtr,
rows,
cols,
planes,
rowStep,
colStep,
planeStep,
shift);
}
/*****************************************************************************/
inline void DoBilinearRow16 (const uint16 *sPtr,
uint16 *dPtr,
uint32 cols,
uint32 patPhase,
uint32 patCount,
const uint32 * kernCounts,
const int32 * const * kernOffsets,
const uint16 * const * kernWeights,
uint32 sShift)
{
(gDNGSuite.BilinearRow16) (sPtr,
dPtr,
cols,
patPhase,
patCount,
kernCounts,
kernOffsets,
kernWeights,
sShift);
}
inline void DoBilinearRow32 (const real32 *sPtr,
real32 *dPtr,
uint32 cols,
uint32 patPhase,
uint32 patCount,
const uint32 * kernCounts,
const int32 * const * kernOffsets,
const real32 * const * kernWeights,
uint32 sShift)
{
(gDNGSuite.BilinearRow32) (sPtr,
dPtr,
cols,
patPhase,
patCount,
kernCounts,
kernOffsets,
kernWeights,
sShift);
}
/*****************************************************************************/
inline void DoBaselineABCtoRGB (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)
{
(gDNGSuite.BaselineABCtoRGB) (sPtrA,
sPtrB,
sPtrC,
dPtrR,
dPtrG,
dPtrB,
count,
cameraWhite,
cameraToRGB);
}
inline void DoBaselineABCDtoRGB (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)
{
(gDNGSuite.BaselineABCDtoRGB) (sPtrA,
sPtrB,
sPtrC,
sPtrD,
dPtrR,
dPtrG,
dPtrB,
count,
cameraWhite,
cameraToRGB);
}
/*****************************************************************************/
inline void DoBaselineHueSatMap (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)
{
(gDNGSuite.BaselineHueSatMap) (sPtrR,
sPtrG,
sPtrB,
dPtrR,
dPtrG,
dPtrB,
count,
lut,
encodeTable,
decodeTable);
}
/*****************************************************************************/
inline void DoBaselineRGBtoGray (const real32 *sPtrR,
const real32 *sPtrG,
const real32 *sPtrB,
real32 *dPtrG,
uint32 count,
const dng_matrix &matrix)
{
(gDNGSuite.BaselineRGBtoGray) (sPtrR,
sPtrG,
sPtrB,
dPtrG,
count,
matrix);
}
inline void DoBaselineRGBtoRGB (const real32 *sPtrR,
const real32 *sPtrG,
const real32 *sPtrB,
real32 *dPtrR,
real32 *dPtrG,
real32 *dPtrB,
uint32 count,
const dng_matrix &matrix)
{
(gDNGSuite.BaselineRGBtoRGB) (sPtrR,
sPtrG,
sPtrB,
dPtrR,
dPtrG,
dPtrB,
count,
matrix);
}
/*****************************************************************************/
inline void DoBaseline1DTable (const real32 *sPtr,
real32 *dPtr,
uint32 count,
const dng_1d_table &table)
{
(gDNGSuite.Baseline1DTable) (sPtr,
dPtr,
count,
table);
}
/*****************************************************************************/
inline void DoBaselineRGBTone (const real32 *sPtrR,
const real32 *sPtrG,
const real32 *sPtrB,
real32 *dPtrR,
real32 *dPtrG,
real32 *dPtrB,
uint32 count,
const dng_1d_table &table)
{
(gDNGSuite.BaselineRGBTone) (sPtrR,
sPtrG,
sPtrB,
dPtrR,
dPtrG,
dPtrB,
count,
table);
}
/*****************************************************************************/
inline void DoResampleDown16 (const uint16 *sPtr,
uint16 *dPtr,
uint32 sCount,
int32 sRowStep,
const int16 *wPtr,
uint32 wCount,
uint32 pixelRange)
{
(gDNGSuite.ResampleDown16) (sPtr,
dPtr,
sCount,
sRowStep,
wPtr,
wCount,
pixelRange);
}
inline void DoResampleDown32 (const real32 *sPtr,
real32 *dPtr,
uint32 sCount,
int32 sRowStep,
const real32 *wPtr,
uint32 wCount)
{
(gDNGSuite.ResampleDown32) (sPtr,
dPtr,
sCount,
sRowStep,
wPtr,
wCount);
}
/*****************************************************************************/
inline void DoResampleAcross16 (const uint16 *sPtr,
uint16 *dPtr,
uint32 dCount,
const int32 *coord,
const int16 *wPtr,
uint32 wCount,
uint32 wStep,
uint32 pixelRange)
{
(gDNGSuite.ResampleAcross16) (sPtr,
dPtr,
dCount,
coord,
wPtr,
wCount,
wStep,
pixelRange);
}
inline void DoResampleAcross32 (const real32 *sPtr,
real32 *dPtr,
uint32 dCount,
const int32 *coord,
const real32 *wPtr,
uint32 wCount,
uint32 wStep)
{
(gDNGSuite.ResampleAcross32) (sPtr,
dPtr,
dCount,
coord,
wPtr,
wCount,
wStep);
}
/*****************************************************************************/
inline bool DoEqualBytes (const void *sPtr,
const void *dPtr,
uint32 count)
{
return (gDNGSuite.EqualBytes) (sPtr,
dPtr,
count);
}
inline bool DoEqualArea8 (const uint8 *sPtr,
const uint8 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep)
{
return (gDNGSuite.EqualArea8) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep);
}
inline bool DoEqualArea16 (const uint16 *sPtr,
const uint16 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep)
{
return (gDNGSuite.EqualArea16) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep);
}
inline bool DoEqualArea32 (const uint32 *sPtr,
const uint32 *dPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sColStep,
int32 sPlaneStep,
int32 dRowStep,
int32 dColStep,
int32 dPlaneStep)
{
return (gDNGSuite.EqualArea32) (sPtr,
dPtr,
rows,
cols,
planes,
sRowStep,
sColStep,
sPlaneStep,
dRowStep,
dColStep,
dPlaneStep);
}
/*****************************************************************************/
inline void DoVignetteMask16 (uint16 *mPtr,
uint32 rows,
uint32 cols,
int32 rowStep,
int64 offsetH,
int64 offsetV,
int64 stepH,
int64 stepV,
uint32 tBits,
const uint16 *table)
{
(gDNGSuite.VignetteMask16) (mPtr,
rows,
cols,
rowStep,
offsetH,
offsetV,
stepH,
stepV,
tBits,
table);
}
/*****************************************************************************/
inline void DoVignette16 (int16 *sPtr,
const uint16 *mPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sPlaneStep,
int32 mRowStep,
uint32 mBits)
{
(gDNGSuite.Vignette16) (sPtr,
mPtr,
rows,
cols,
planes,
sRowStep,
sPlaneStep,
mRowStep,
mBits);
}
/*****************************************************************************/
inline void DoVignette32 (real32 *sPtr,
const uint16 *mPtr,
uint32 rows,
uint32 cols,
uint32 planes,
int32 sRowStep,
int32 sPlaneStep,
int32 mRowStep,
uint32 mBits)
{
(gDNGSuite.Vignette32) (sPtr,
mPtr,
rows,
cols,
planes,
sRowStep,
sPlaneStep,
mRowStep,
mBits);
}
/*****************************************************************************/
inline void DoMapArea16 (uint16 *dPtr,
uint32 count0,
uint32 count1,
uint32 count2,
int32 step0,
int32 step1,
int32 step2,
const uint16 *map)
{
(gDNGSuite.MapArea16) (dPtr,
count0,
count1,
count2,
step0,
step1,
step2,
map);
}
/*****************************************************************************/
#endif
/*****************************************************************************/