AJA NTV2 SDK  17.0.1.1246
NTV2 SDK 17.0.1.1246
ntv2csclut.cpp File Reference

Implements most of CNTV2Card's CSC/LUT-related functions. More...

#include "ntv2card.h"
#include "ntv2devicefeatures.h"
#include "ntv2utils.h"
#include "ntv2registerexpert.h"
#include "ajabase/system/debug.h"
#include <math.h>
#include <assert.h>
#include <deque>
Include dependency graph for ntv2csclut.cpp:

Go to the source code of this file.

Macros

#define HEX16(__x__)   "0x" << hex << setw(16) << setfill('0') << uint64_t(__x__) << dec
 
#define INSTP(_p_)   HEX16(uint64_t(_p_))
 
#define CSCFAIL(__x__)   AJA_sERROR (AJA_DebugUnit_CSC, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
 
#define CSCWARN(__x__)   AJA_sWARNING(AJA_DebugUnit_CSC, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
 
#define CSCNOTE(__x__)   AJA_sNOTICE (AJA_DebugUnit_CSC, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
 
#define CSCINFO(__x__)   AJA_sINFO (AJA_DebugUnit_CSC, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
 
#define CSCDBG(__x__)   AJA_sDEBUG (AJA_DebugUnit_CSC, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
 
#define LUTFAIL(__x__)   AJA_sERROR (AJA_DebugUnit_LUT, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
 
#define LUTWARN(__x__)   AJA_sWARNING(AJA_DebugUnit_LUT, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
 
#define LUTNOTE(__x__)   AJA_sNOTICE (AJA_DebugUnit_LUT, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
 
#define LUTINFO(__x__)   AJA_sINFO (AJA_DebugUnit_LUT, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
 
#define LUTDBG(__x__)   AJA_sDEBUG (AJA_DebugUnit_LUT, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
 

Functions

static ULWord intClamp (const int inMin, const int inValue, const int inMax)
 
static const size_t kLUTArraySize ((512) *2)
 
static const size_t k12BitLUTArraySize ((2048) *2)
 

Variables

static const ULWord gChannelToEnhancedCSCRegNum []
 
static const ULWord gChannelToCSCoeff12RegNum []
 
static const ULWord gChannelToCSCoeff34RegNum []
 
static const ULWord gChannelToCSCoeff56RegNum []
 
static const ULWord gChannelToCSCoeff78RegNum []
 
static const ULWord gChannelToCSCoeff910RegNum []
 
static const ULWord gChannelTo1DLutControlRegNum []
 
static const NTV2ColorCorrectionHostAccessBank gLUTBank0 []
 

Detailed Description

Implements most of CNTV2Card's CSC/LUT-related functions.

Definition in file ntv2csclut.cpp.

Macro Definition Documentation

◆ CSCDBG

#define CSCDBG (   __x__)    AJA_sDEBUG (AJA_DebugUnit_CSC, INSTP(this) << "::" << AJAFUNC << ": " << __x__)

Definition at line 28 of file ntv2csclut.cpp.

◆ CSCFAIL

#define CSCFAIL (   __x__)    AJA_sERROR (AJA_DebugUnit_CSC, INSTP(this) << "::" << AJAFUNC << ": " << __x__)

Definition at line 24 of file ntv2csclut.cpp.

◆ CSCINFO

#define CSCINFO (   __x__)    AJA_sINFO (AJA_DebugUnit_CSC, INSTP(this) << "::" << AJAFUNC << ": " << __x__)

Definition at line 27 of file ntv2csclut.cpp.

◆ CSCNOTE

#define CSCNOTE (   __x__)    AJA_sNOTICE (AJA_DebugUnit_CSC, INSTP(this) << "::" << AJAFUNC << ": " << __x__)

Definition at line 26 of file ntv2csclut.cpp.

◆ CSCWARN

#define CSCWARN (   __x__)    AJA_sWARNING(AJA_DebugUnit_CSC, INSTP(this) << "::" << AJAFUNC << ": " << __x__)

Definition at line 25 of file ntv2csclut.cpp.

◆ HEX16

#define HEX16 (   __x__)    "0x" << hex << setw(16) << setfill('0') << uint64_t(__x__) << dec

Definition at line 22 of file ntv2csclut.cpp.

◆ INSTP

#define INSTP (   _p_)    HEX16(uint64_t(_p_))

Definition at line 23 of file ntv2csclut.cpp.

◆ LUTDBG

#define LUTDBG (   __x__)    AJA_sDEBUG (AJA_DebugUnit_LUT, INSTP(this) << "::" << AJAFUNC << ": " << __x__)

Definition at line 34 of file ntv2csclut.cpp.

◆ LUTFAIL

#define LUTFAIL (   __x__)    AJA_sERROR (AJA_DebugUnit_LUT, INSTP(this) << "::" << AJAFUNC << ": " << __x__)

Definition at line 30 of file ntv2csclut.cpp.

◆ LUTINFO

#define LUTINFO (   __x__)    AJA_sINFO (AJA_DebugUnit_LUT, INSTP(this) << "::" << AJAFUNC << ": " << __x__)

Definition at line 33 of file ntv2csclut.cpp.

◆ LUTNOTE

#define LUTNOTE (   __x__)    AJA_sNOTICE (AJA_DebugUnit_LUT, INSTP(this) << "::" << AJAFUNC << ": " << __x__)

Definition at line 32 of file ntv2csclut.cpp.

◆ LUTWARN

#define LUTWARN (   __x__)    AJA_sWARNING(AJA_DebugUnit_LUT, INSTP(this) << "::" << AJAFUNC << ": " << __x__)

Definition at line 31 of file ntv2csclut.cpp.

Function Documentation

◆ intClamp()

static ULWord intClamp ( const int  inMin,
const int  inValue,
const int  inMax 
)
inlinestatic

Definition at line 656 of file ntv2csclut.cpp.

◆ k12BitLUTArraySize()

static const size_t k12BitLUTArraySize ( (2048) *  2)
static

◆ kLUTArraySize()

static const size_t kLUTArraySize ( (512) *  2)
static

Variable Documentation

◆ gChannelTo1DLutControlRegNum

◆ gChannelToCSCoeff12RegNum

◆ gChannelToCSCoeff34RegNum

◆ gChannelToCSCoeff56RegNum

◆ gChannelToCSCoeff78RegNum

◆ gChannelToCSCoeff910RegNum

◆ gChannelToEnhancedCSCRegNum

◆ gLUTBank0

kRegCS6Coefficients1_2
@ kRegCS6Coefficients1_2
Definition: ntv2publicinterface.h:599
kRegEnhancedCSC8Mode
@ kRegEnhancedCSC8Mode
Definition: ntv2publicinterface.h:953
kRegCS3Coefficients9_10
@ kRegCS3Coefficients9_10
Definition: ntv2publicinterface.h:390
kRegCS8Coefficients9_10
@ kRegCS8Coefficients9_10
Definition: ntv2publicinterface.h:615
kRegCS5Coefficients9_10
@ kRegCS5Coefficients9_10
Definition: ntv2publicinterface.h:463
kRegCS5Coefficients3_4
@ kRegCS5Coefficients3_4
Definition: ntv2publicinterface.h:460
kRegCS3Coefficients5_6
@ kRegCS3Coefficients5_6
Definition: ntv2publicinterface.h:388
kRegCS6Coefficients3_4
@ kRegCS6Coefficients3_4
Definition: ntv2publicinterface.h:600
kRegCS3Coefficients7_8
@ kRegCS3Coefficients7_8
Definition: ntv2publicinterface.h:389
kRegCS5Coefficients7_8
@ kRegCS5Coefficients7_8
Definition: ntv2publicinterface.h:462
kRegCS2Coefficients9_10
@ kRegCS2Coefficients9_10
Definition: ntv2publicinterface.h:240
NTV2_CCHOSTACCESS_CH4BANK0
@ NTV2_CCHOSTACCESS_CH4BANK0
Definition: ntv2enums.h:2007
kRegCS6Coefficients5_6
@ kRegCS6Coefficients5_6
Definition: ntv2publicinterface.h:601
kRegCS2Coefficients5_6
@ kRegCS2Coefficients5_6
Definition: ntv2publicinterface.h:238
kRegCS4Coefficients9_10
@ kRegCS4Coefficients9_10
Definition: ntv2publicinterface.h:396
kReg1DLUTLoadControl2
@ kReg1DLUTLoadControl2
Definition: ntv2publicinterface.h:754
kReg1DLUTLoadControl8
@ kReg1DLUTLoadControl8
Definition: ntv2publicinterface.h:760
NTV2_CCHOSTACCESS_CH3BANK0
@ NTV2_CCHOSTACCESS_CH3BANK0
Definition: ntv2enums.h:2005
kRegEnhancedCSC1Mode
@ kRegEnhancedCSC1Mode
Definition: ntv2publicinterface.h:825
kReg1DLUTLoadControl7
@ kReg1DLUTLoadControl7
Definition: ntv2publicinterface.h:759
kRegCS4Coefficients3_4
@ kRegCS4Coefficients3_4
Definition: ntv2publicinterface.h:393
kReg1DLUTLoadControl4
@ kReg1DLUTLoadControl4
Definition: ntv2publicinterface.h:756
kRegCS8Coefficients7_8
@ kRegCS8Coefficients7_8
Definition: ntv2publicinterface.h:614
kRegEnhancedCSC6Mode
@ kRegEnhancedCSC6Mode
Definition: ntv2publicinterface.h:917
kRegCS2Coefficients1_2
@ kRegCS2Coefficients1_2
Definition: ntv2publicinterface.h:236
kRegCS4Coefficients7_8
@ kRegCS4Coefficients7_8
Definition: ntv2publicinterface.h:395
kReg1DLUTLoadControl3
@ kReg1DLUTLoadControl3
Definition: ntv2publicinterface.h:755
kReg1DLUTLoadControl1
@ kReg1DLUTLoadControl1
Definition: ntv2publicinterface.h:753
kRegCS8Coefficients1_2
@ kRegCS8Coefficients1_2
Definition: ntv2publicinterface.h:611
NTV2_CCHOSTACCESS_CH6BANK0
@ NTV2_CCHOSTACCESS_CH6BANK0
Definition: ntv2enums.h:2011
kRegCS3Coefficients3_4
@ kRegCS3Coefficients3_4
Definition: ntv2publicinterface.h:387
kRegEnhancedCSC2Mode
@ kRegEnhancedCSC2Mode
Definition: ntv2publicinterface.h:845
kRegCSCoefficients7_8
@ kRegCSCoefficients7_8
Definition: ntv2publicinterface.h:233
kRegCS2Coefficients3_4
@ kRegCS2Coefficients3_4
Definition: ntv2publicinterface.h:237
kRegCS3Coefficients1_2
@ kRegCS3Coefficients1_2
Definition: ntv2publicinterface.h:386
kRegCS6Coefficients9_10
@ kRegCS6Coefficients9_10
Definition: ntv2publicinterface.h:603
kRegEnhancedCSC3Mode
@ kRegEnhancedCSC3Mode
Definition: ntv2publicinterface.h:863
kRegCS4Coefficients5_6
@ kRegCS4Coefficients5_6
Definition: ntv2publicinterface.h:394
NTV2_CCHOSTACCESS_CH5BANK0
@ NTV2_CCHOSTACCESS_CH5BANK0
Definition: ntv2enums.h:2009
kRegCSCoefficients3_4
@ kRegCSCoefficients3_4
Definition: ntv2publicinterface.h:231
kRegCSCoefficients1_2
@ kRegCSCoefficients1_2
Definition: ntv2publicinterface.h:230
kRegCS7Coefficients7_8
@ kRegCS7Coefficients7_8
Definition: ntv2publicinterface.h:608
kReg1DLUTLoadControl5
@ kReg1DLUTLoadControl5
Definition: ntv2publicinterface.h:757
kRegEnhancedCSC7Mode
@ kRegEnhancedCSC7Mode
Definition: ntv2publicinterface.h:935
NTV2_CCHOSTACCESS_CH2BANK0
@ NTV2_CCHOSTACCESS_CH2BANK0
Definition: ntv2enums.h:2003
kRegCS7Coefficients5_6
@ kRegCS7Coefficients5_6
Definition: ntv2publicinterface.h:607
kRegCS2Coefficients7_8
@ kRegCS2Coefficients7_8
Definition: ntv2publicinterface.h:239
NTV2_CCHOSTACCESS_CH8BANK0
@ NTV2_CCHOSTACCESS_CH8BANK0
Definition: ntv2enums.h:2015
kRegCS8Coefficients5_6
@ kRegCS8Coefficients5_6
Definition: ntv2publicinterface.h:613
kRegCSCoefficients5_6
@ kRegCSCoefficients5_6
Definition: ntv2publicinterface.h:232
kRegCS6Coefficients7_8
@ kRegCS6Coefficients7_8
Definition: ntv2publicinterface.h:602
kRegCS8Coefficients3_4
@ kRegCS8Coefficients3_4
Definition: ntv2publicinterface.h:612
kRegEnhancedCSC5Mode
@ kRegEnhancedCSC5Mode
Definition: ntv2publicinterface.h:899
NTV2_CCHOSTACCESS_CH7BANK0
@ NTV2_CCHOSTACCESS_CH7BANK0
Definition: ntv2enums.h:2013
kRegCS4Coefficients1_2
@ kRegCS4Coefficients1_2
Definition: ntv2publicinterface.h:392
kRegCS7Coefficients1_2
@ kRegCS7Coefficients1_2
Definition: ntv2publicinterface.h:605
kRegCS5Coefficients5_6
@ kRegCS5Coefficients5_6
Definition: ntv2publicinterface.h:461
kRegCS7Coefficients3_4
@ kRegCS7Coefficients3_4
Definition: ntv2publicinterface.h:606
kRegEnhancedCSC4Mode
@ kRegEnhancedCSC4Mode
Definition: ntv2publicinterface.h:881
NTV2_CCHOSTACCESS_CH1BANK0
@ NTV2_CCHOSTACCESS_CH1BANK0
Definition: ntv2enums.h:2001
kRegCS5Coefficients1_2
@ kRegCS5Coefficients1_2
Definition: ntv2publicinterface.h:459
kReg1DLUTLoadControl6
@ kReg1DLUTLoadControl6
Definition: ntv2publicinterface.h:758
kRegCS7Coefficients9_10
@ kRegCS7Coefficients9_10
Definition: ntv2publicinterface.h:609
kRegCSCoefficients9_10
@ kRegCSCoefficients9_10
Definition: ntv2publicinterface.h:234