DLPU082C August   2021  – March 2024 DLPC7540

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. Scope
  5. References
  6. Acronyms
  7. System Boot
    1. 4.1 Data In flash
    2. 4.2 Bootloader Application
    3. 4.3 Main Application
    4. 4.4 Commands Supported by Bootloader and Main Applications
    5. 4.5 Debug Terminal
    6. 4.6 HOST_IRQ/SYSTEM_BUSY
    7. 4.7 Heartbeat
    8. 4.8 Low-Level Fault
  8. System Status
  9. Version
  10. Power Modes
  11. Display Modes
  12. Source Detection and Configuration
  13. 10Internal Sources
    1. 10.1 Test Patterns (TPG)
    2. 10.2 Solid Field (SFG) Color
    3. 10.3 Curtain
  14. 11Display Formatting
  15. 12Image Processing
  16. 13Warping
    1. 13.1 Control Point Table
    2. 13.2 Manual Warp Table
    3. 13.3 Table Constraints
    4. 13.4 Example Warp Table
    5. 13.5 Manual Warping Commands
      1. 13.5.1 CMD_SetManualWarpControlPoints [Command ID: 0x35, Destination: 4]
      2. 13.5.2 CMD_GetManualWarpControlPoints [Command ID: 0x35, Destination: 4]
      3. 13.5.3 CMD_WriteManualWarpTable [Opcode: 0x34, Destination: 4]
      4. 13.5.4 CMD_ReadManualWarpTable [Opcode: 0x34, Destination: 4]
      5. 13.5.5 CMD_ConfigureSmoothWarp [Command ID: 0x38, Destination: 4]
      6. 13.5.6 CMD_ApplyManualWarping [Command ID: 0x36, Destination: 4]
    6. 13.6 Optical (Lens) Distortion Correction
  17. 14Introduction to Blending
    1. 14.1  Blend Map Control Points
    2. 14.2  Blend Map Gain Values
    3. 14.3  Blend Map Offset Value
    4. 14.4  Constraints
    5. 14.5  Manual Blending Commands
      1. 14.5.1 CMD_EnableEdgeBlending [Command ID: 0x2F]
      2. 14.5.2 CMD_SetBlendMapControlPoints [Opcode: 0x2E]
      3. 14.5.3 CMD_ GetBlendMapControlPoints [Command ID: 0x2E]
      4. 14.5.4 CMD_SetBlendMapGainValues [Command ID: 0x2B]
      5. 14.5.5 CMD_ GetBlendMapGainValues [Command ID: 0x2B]
      6. 14.5.6 CMD_ SetBlendMapOffsetValues [Command ID: 0x2D]
      7. 14.5.7 CMD_ GetBlendMapOffsetValues [Command ID: 0x2D]
      8. 14.5.8 CMD_ApplyBlendMap [Command ID: 0x2C]
    6. 14.6  Manual Blending Application Commands
      1. 14.6.1 CMD_SetEdgeBlendingSystemParams [Command ID: 0x3D]
      2. 14.6.2 CMD_GetEdgeBlendingSystemParams [Command ID: 0x3D]
      3. 14.6.3 CMD_SetEdgeBlendingConfiguration [Command ID: 0x3E]
      4. 14.6.4 CMD_GetEdgeBlendingConfiguration [Command ID: 0x3E]
    7. 14.7  Cropping of Input Image for Blending Setup
    8. 14.8  Storing Edge Blend Configuration in EEPROM
    9. 14.9  Storing in EEPROM or Secondary Flash
    10. 14.10 Manual Blending GUI in Control Program
  18. 15Illumination Control
  19. 16Peripherals
    1. 16.1 GPIO
    2. 16.2 PWM
  20. 17Interface Protocol
    1. 17.1 Supported Interfaces
    2. 17.2 I2C Target
    3. 17.3 USB
  21. 18Command Protocol
    1. 18.1 Command Packet
    2. 18.2 Response Packet
    3. 18.3 Destination Details
    4. 18.4 Error Handling and Recovery
    5. 18.5 System Busy - I2C scenarios
      1. 18.5.1 GPIO Implementation
      2. 18.5.2 Short Status Response
    6. 18.6 Support for Variable Data Size
  22. 19Auto-Initialization Batch File
  23. 20Command Descriptions
  24. 21System Commands
    1. 21.1  3D
    2. 21.2  Administrative
    3. 21.3  Autolock
    4. 21.4  Bootloader
    5. 21.5  Calibration
    6. 21.6  Blending
    7. 21.7  Debug Internal
    8. 21.8  Debug
    9. 21.9  General Operation
    10. 21.10 Illumination
    11. 21.11 Image Processing
    12. 21.12 Manual WPC
    13. 21.13 Peripherals
    14. 21.14 Vision
    15. 21.15 Warping
  25.   Revision History

Warping

Warping

Table 21-148 Manual Warp Table [Opcode: 34h | Destination: 4]
Set Manual Warp Table
Write Parameters
Byte Description
Bytes 0-1

Start index in the table for the data to be written

Bytes 2 - *

Warp map points in X, Y pairs where X, Y are in 13.3 fixed point format

This command writes to the warp map table that can be enabled using the Apply Manual Warping command. N warp map points can be loaded at a time to anywhere within the table. Maximum number of points that can be set using this command is 62 in the horizontal direction and 32 in the vertical direction. Overall max 1984 points. The number of points set by this command should match the number of control points specified using Set Manual Warp Control Points command.

Each point is passed as two 13.3 fixed point numbers that represents X and Y coordinates. Since the total command packet size cannot exceed 512 bytes, the table shall be loaded by invoking the command multiple times with different start index.

Get Manual Warp Table
Read Parameters
Byte Description
Bytes 0-1

Start index in the table from which the data is to be read

Bytes 2-3

Number of entries to be read

Return Parameters
Byte Description
Bytes 0 - *

Warp map points in X, Y pairs where X, Y are in 13.3 fixed point format

This command reads from the warp map table already loaded using Set Manual Warp table. N warp map points (that does not exceed the command packet size) can be read at a time from anywhere within the table. Maximum table size is 1952.

Table 21-149 Manual Warp Control Points [Opcode: 35h | Destination: 4]
Set Manual Warp Control Points
Write Parameters
Byte Description
Byte 0

Indicates if the warp control points are explicitly defined by array of horizontal and vertical control points.

0 = Input image is uniformly divided to create equally spaced warp control points of dimension ((Number of Horizontal Control Points) x (Number of Vertical Control Points)). Warping map table loaded by the Set Manual Warp Table command is used as a two dimensional array with dimension (Warp Columns x Warp Rows).

1 = Warp control points are defined by Horizontal Control Points and Vertical Control Points parameters of this command. Warping map table loaded by the Set Manual Warp Table command is used as a two dimensional array with dimension (62 x 32).

Bytes 1 - *

If Control Points Defined By Array = 0, Send Number of Horizontal Control Points here.

If Control Points Defined By Array = 1, Send 62 horizontal control points here in uint16 format

Bytes 1 - *

If Control Points Defined By Array = 0, Send Number of Vertical Control Points here.

If Control Points Defined By Array = 1, Send 32 vertical control points here in uint16 format.

This command sets up the user defined control points of the warp map that shall be applied on top of the keystone correction, anamorphic scaling and other warp dependent feature settings if they are enabled. The warping map table loaded by the manual warp table write command is used as a two dimensional array with dimension which is defined based on the first argument of this command :

TRUE = (Number of Horizontal Control Points) x (Number of Vertical Control Points)

FALSE = (62 x 32) The points in the map should lie within the display area defined by display image size command. Any points lying outside the display area shall get cropped.

Get Manual Warp Control Points
Return Parameters
Byte Description
Byte 0

Indicates if the warp control points are explicitly defined by array of horizontal

and vertical control points.

Bytes 1 - *

if Control Points Defined By Array = 0, Number of Horizontal control points followed by Number of Vertical control points are returned here

if Control Points Defined By Array = 1, Actual(62) Horizontal control points followed by Actual(32) Vertical control points are returned here

This command gets up the user defined warping map control points.

Table 21-150 Apply Manual Warping [Opcode: 36h | Destination: 4]
Set Apply Manual Warping
Write Parameters
Byte Description
Byte 0

Enable

bit 0: Warp Enabled

This command applies the manual warping control points and map table to the Warp HW defined by Set Manual Warp Control Points and Set Manual Warp Table respectively.

Get Apply Manual Warping
Return Parameters
Byte Description
Byte 0

Enable

bit0: Manual Warp Enabled

bit1: Surface Correction Warp Enabled

bit2: Lens Correction Warp Enabled

This command returns whether warping feature is enabled or disabled for various use cases.

Table 21-151 Smooth Warp Table [Opcode: 38h | Destination: 4]
Set Smooth Warp Table
Write Parameters
Byte Description
Byte 0

Number of columns in the smooth warp matrix specified below (Range 3-5)

Byte 1

Number of rows in the smooth warp matrix specified below (Range 3-5)

Bytes 2 - *

Warp map points in X, Y pairs where X, Y are in 13.3 fixed point format

This command sets up the user defined MxN warping map that creates a parametric smooth curve. The edges connecting two warp points in this case are not straight lines but are 'smoother' – at the Warp Point, the edge is continuous and does not form a vertex (except for corners). This is done by fitting a 2nd degree polynomial curve to warp points, contrary to Write Manual Warp Table command which fits straight line to warp points.

Get Smooth Warp Table
Data returned is in the same format as Write Parameters above.

This command returns the user defined MxN warping map points

Table 21-152 Manual Warp Table Update Mode [Opcode: 39h | Destination: 4]
Set Manual Warp Table Update Mode
Write Parameters
Byte Description
Byte 0

0 = Overwrite Existing

1 = Merge with Existing

This command configures the warping engine warp points update mode. Only one manual warp can be applied to the warping engine. Hence, if multiple manual warp maps are required, they should be merged before applying.

This Command enables or disables 'Manual Warp Merge Mode' In Merge mode, any new map written will be merged with existing manual warp map. Maps can be merged one after the other. For each map, control points need to be set-up using Set Manual warp control points command and warp points should be written using Write Manual Warp Command.

Get Manual Warp Table Update Mode
Data returned is in the same format as Write Parameters above.

This command returns the set warp table write mode

Table 21-153 Uncorrected Point Cloud [Opcode: ACh | Destination: 4]
Get Uncorrected Point Cloud
Read Parameters
Byte Description
Bytes 0-1

Starting index of data retrieval

Bytes 2-3

Number of entries to be returned

Return Parameters
Byte Description
Bytes 0 - *

Uncorrected Point Cloud data

Range = -32768 to 32767 with step size 1

Get pre-processed 3D point cloud coordinates beginning at Index and ending after NumEntries have been returned

Table 21-154 Corrected Point Cloud [Opcode: ADh | Destination: 4]
Get Corrected Point Cloud
Read Parameters
Byte Description
Bytes 0-1

Starting index of data retrieval

Bytes 2-3

Number of entries to be returned

Return Parameters
Byte Description
Bytes 0 - *

Corrected Point Cloud data

Range = -32768 to 32767 with step size 1

Get post-processed 3D point cloud coordinates beginning at Index and ending after NumEntries have been returned

Table 21-155 Centroids [Opcode: AEh | Destination: 4]
Get Centroids
Read Parameters
Byte Description
Bytes 0-1

Starting index of data retrieval

Bytes 2-3

Number of entries to be returned

Return Parameters
Byte Description
Bytes 0 - *

Uncorrected camera points data

Range = -32768 to 32767 with step size 1

Get the 2D centroids array beginning at Index and ending after NumEntries have been retrieved

Table 21-156 Surface Warp Map [Opcode: AFh | Destination: 4]
Get Surface Warp Map
Read Parameters
Byte Description
Bytes 0-1

Starting index of data retrieval

Bytes 2-3

Number of entries to be returned

Return Parameters
Byte Description
Bytes 0 - *

Surface warp map data

Range = -32768 to 32767 with step size 1

Get redistributed 2D surface warp map data

Table 21-157 Point Cloud Dimensions [Opcode: B0h | Destination: 4]
Get Point Cloud Dimensions
Return Parameters
Byte Description
Bytes 0-1

Horizontal resolution of point cloud

Bytes 2-3

Vertical resolution of point cloud

Retrieve dimensions of point cloud, minimum 8x8, maximum 62x32