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.
1716 lines
36 KiB
1716 lines
36 KiB
/*****************************************************************************/
|
|
// 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
|
|
|
|
/*****************************************************************************/
|