Questions?


Get in touch with us today and our team of imaging professionals will be pleased to assist you.

Contact Us

LUT Value Array

The LUT Value Array feature provides block access to the camera’s look-up table (LUT) values.

Use this feature to write LUT data more efficiently than writing each LUT value individually with LUT Index and LUT Value.

LUT Value Array writes a block of LUT data starting at the address specified by LUT Index. This reduces command overhead when writing a full LUT.

A typical 12-bit LUT contains 4096 entries. To write the full LUT with LUT Value Array, set the LUT Index to the starting address for each block, write the block with LUT Value Array, and repeat until the table is complete.

LUTValueArray node

  • Access mode: Read/Write
  • Node type: Register
  • Length: 256 bytes

You can use the eSDK API functions to get and set the node’s data.

Examples

The following examples show that writing the LUT with LUT Value Array instead of LUT Value reduces the number of write operations required to update the table.

Example 1: Write a LUT with LUT Value Array

The following example shows how to write a LUT in blocks with LUT Value Array. This approach is more efficient than writing one LUT entry at a time with LUT Value.

This code is also shown in the EVT_AnalogControl eSDK example.

unsigned int lutValues[4096];
const unsigned int lut_addr_max = 4096;

// Initialize the table.
for (unsigned int lut_addr = 0; lut_addr < lut_addr_max; lut_addr++)
{
    lutValues[lut_addr] = lut_addr;
}

// Write the table, 64 entries at a time.
for (unsigned int lut_addr = 0; lut_addr < lut_addr_max; lut_addr += 64)
{
    // Address we are setting values for.
    EVT_CameraSetUInt32Param(&camera, "LUTIndex", lut_addr);

    // Write a block of LUT values starting at LUTIndex.
    EVT_CameraSetRegisterParam(&camera, "LUTValueArray", (const char*) &lutValues[lut_addr], 64);
}

Example 2: Write a LUT with LUT Value

The following example shows the alternative method: writing one LUT entry at a time with LUT Index and LUT Value.

unsigned int lutValues[4096];
const unsigned int lut_addr_max = 4096;

// Initialize the table.
for (unsigned int lut_addr = 0; lut_addr < lut_addr_max; lut_addr++)
{
    lutValues[lut_addr] = lut_addr;
}

// Write the table, one entry at a time.
for (unsigned int lut_addr = 0; lut_addr < lut_addr_max; lut_addr++)
{
    // Address we are setting value for.
    EVT_CameraSetUInt32Param(&camera, "LUTIndex", lut_addr);

    // Value to set.
    EVT_CameraSetUInt32Param(&camera, "LUTValue", lutValues[lut_addr]);
}

For more information about related features, see Analog Control Features.

Updated on
July 13, 2026
Questions?


Get in touch with us today and our team of imaging professionals will be pleased to assist you.

Contact Us