AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
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:628
kRegEnhancedCSC8Mode
@ kRegEnhancedCSC8Mode
Definition: ntv2publicinterface.h:982
kRegCS3Coefficients9_10
@ kRegCS3Coefficients9_10
Definition: ntv2publicinterface.h:419
kRegCS8Coefficients9_10
@ kRegCS8Coefficients9_10
Definition: ntv2publicinterface.h:644
kRegCS5Coefficients9_10
@ kRegCS5Coefficients9_10
Definition: ntv2publicinterface.h:492
kRegCS5Coefficients3_4
@ kRegCS5Coefficients3_4
Definition: ntv2publicinterface.h:489
kRegCS3Coefficients5_6
@ kRegCS3Coefficients5_6
Definition: ntv2publicinterface.h:417
kRegCS6Coefficients3_4
@ kRegCS6Coefficients3_4
Definition: ntv2publicinterface.h:629
kRegCS3Coefficients7_8
@ kRegCS3Coefficients7_8
Definition: ntv2publicinterface.h:418
kRegCS5Coefficients7_8
@ kRegCS5Coefficients7_8
Definition: ntv2publicinterface.h:491
kRegCS2Coefficients9_10
@ kRegCS2Coefficients9_10
Definition: ntv2publicinterface.h:269
NTV2_CCHOSTACCESS_CH4BANK0
@ NTV2_CCHOSTACCESS_CH4BANK0
Definition: ntv2enums.h:2011
kRegCS6Coefficients5_6
@ kRegCS6Coefficients5_6
Definition: ntv2publicinterface.h:630
kRegCS2Coefficients5_6
@ kRegCS2Coefficients5_6
Definition: ntv2publicinterface.h:267
kRegCS4Coefficients9_10
@ kRegCS4Coefficients9_10
Definition: ntv2publicinterface.h:425
kReg1DLUTLoadControl2
@ kReg1DLUTLoadControl2
Definition: ntv2publicinterface.h:783
kReg1DLUTLoadControl8
@ kReg1DLUTLoadControl8
Definition: ntv2publicinterface.h:789
NTV2_CCHOSTACCESS_CH3BANK0
@ NTV2_CCHOSTACCESS_CH3BANK0
Definition: ntv2enums.h:2009
kRegEnhancedCSC1Mode
@ kRegEnhancedCSC1Mode
Definition: ntv2publicinterface.h:854
kReg1DLUTLoadControl7
@ kReg1DLUTLoadControl7
Definition: ntv2publicinterface.h:788
kRegCS4Coefficients3_4
@ kRegCS4Coefficients3_4
Definition: ntv2publicinterface.h:422
kReg1DLUTLoadControl4
@ kReg1DLUTLoadControl4
Definition: ntv2publicinterface.h:785
kRegCS8Coefficients7_8
@ kRegCS8Coefficients7_8
Definition: ntv2publicinterface.h:643
kRegEnhancedCSC6Mode
@ kRegEnhancedCSC6Mode
Definition: ntv2publicinterface.h:946
kRegCS2Coefficients1_2
@ kRegCS2Coefficients1_2
Definition: ntv2publicinterface.h:265
kRegCS4Coefficients7_8
@ kRegCS4Coefficients7_8
Definition: ntv2publicinterface.h:424
kReg1DLUTLoadControl3
@ kReg1DLUTLoadControl3
Definition: ntv2publicinterface.h:784
kReg1DLUTLoadControl1
@ kReg1DLUTLoadControl1
Definition: ntv2publicinterface.h:782
kRegCS8Coefficients1_2
@ kRegCS8Coefficients1_2
Definition: ntv2publicinterface.h:640
NTV2_CCHOSTACCESS_CH6BANK0
@ NTV2_CCHOSTACCESS_CH6BANK0
Definition: ntv2enums.h:2015
kRegCS3Coefficients3_4
@ kRegCS3Coefficients3_4
Definition: ntv2publicinterface.h:416
kRegEnhancedCSC2Mode
@ kRegEnhancedCSC2Mode
Definition: ntv2publicinterface.h:874
kRegCSCoefficients7_8
@ kRegCSCoefficients7_8
Definition: ntv2publicinterface.h:262
kRegCS2Coefficients3_4
@ kRegCS2Coefficients3_4
Definition: ntv2publicinterface.h:266
kRegCS3Coefficients1_2
@ kRegCS3Coefficients1_2
Definition: ntv2publicinterface.h:415
kRegCS6Coefficients9_10
@ kRegCS6Coefficients9_10
Definition: ntv2publicinterface.h:632
kRegEnhancedCSC3Mode
@ kRegEnhancedCSC3Mode
Definition: ntv2publicinterface.h:892
kRegCS4Coefficients5_6
@ kRegCS4Coefficients5_6
Definition: ntv2publicinterface.h:423
NTV2_CCHOSTACCESS_CH5BANK0
@ NTV2_CCHOSTACCESS_CH5BANK0
Definition: ntv2enums.h:2013
kRegCSCoefficients3_4
@ kRegCSCoefficients3_4
Definition: ntv2publicinterface.h:260
kRegCSCoefficients1_2
@ kRegCSCoefficients1_2
Definition: ntv2publicinterface.h:259
kRegCS7Coefficients7_8
@ kRegCS7Coefficients7_8
Definition: ntv2publicinterface.h:637
kReg1DLUTLoadControl5
@ kReg1DLUTLoadControl5
Definition: ntv2publicinterface.h:786
kRegEnhancedCSC7Mode
@ kRegEnhancedCSC7Mode
Definition: ntv2publicinterface.h:964
NTV2_CCHOSTACCESS_CH2BANK0
@ NTV2_CCHOSTACCESS_CH2BANK0
Definition: ntv2enums.h:2007
kRegCS7Coefficients5_6
@ kRegCS7Coefficients5_6
Definition: ntv2publicinterface.h:636
kRegCS2Coefficients7_8
@ kRegCS2Coefficients7_8
Definition: ntv2publicinterface.h:268
NTV2_CCHOSTACCESS_CH8BANK0
@ NTV2_CCHOSTACCESS_CH8BANK0
Definition: ntv2enums.h:2019
kRegCS8Coefficients5_6
@ kRegCS8Coefficients5_6
Definition: ntv2publicinterface.h:642
kRegCSCoefficients5_6
@ kRegCSCoefficients5_6
Definition: ntv2publicinterface.h:261
kRegCS6Coefficients7_8
@ kRegCS6Coefficients7_8
Definition: ntv2publicinterface.h:631
kRegCS8Coefficients3_4
@ kRegCS8Coefficients3_4
Definition: ntv2publicinterface.h:641
kRegEnhancedCSC5Mode
@ kRegEnhancedCSC5Mode
Definition: ntv2publicinterface.h:928
NTV2_CCHOSTACCESS_CH7BANK0
@ NTV2_CCHOSTACCESS_CH7BANK0
Definition: ntv2enums.h:2017
kRegCS4Coefficients1_2
@ kRegCS4Coefficients1_2
Definition: ntv2publicinterface.h:421
kRegCS7Coefficients1_2
@ kRegCS7Coefficients1_2
Definition: ntv2publicinterface.h:634
kRegCS5Coefficients5_6
@ kRegCS5Coefficients5_6
Definition: ntv2publicinterface.h:490
kRegCS7Coefficients3_4
@ kRegCS7Coefficients3_4
Definition: ntv2publicinterface.h:635
kRegEnhancedCSC4Mode
@ kRegEnhancedCSC4Mode
Definition: ntv2publicinterface.h:910
NTV2_CCHOSTACCESS_CH1BANK0
@ NTV2_CCHOSTACCESS_CH1BANK0
Definition: ntv2enums.h:2005
kRegCS5Coefficients1_2
@ kRegCS5Coefficients1_2
Definition: ntv2publicinterface.h:488
kReg1DLUTLoadControl6
@ kReg1DLUTLoadControl6
Definition: ntv2publicinterface.h:787
kRegCS7Coefficients9_10
@ kRegCS7Coefficients9_10
Definition: ntv2publicinterface.h:638
kRegCSCoefficients9_10
@ kRegCSCoefficients9_10
Definition: ntv2publicinterface.h:263