DLPU110B April   2021  – August 2022 DLPC6540

 

  1.   Programmer's Guide
  2.   Trademarks
  3. Scope
  4. References
  5. Acronyms
  6. 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
  7. System Status
  8. Version
  9. Power Modes
  10. Display Modes
  11. Source Detection and Configuration
  12. 10Internal sources
    1. 10.1 Test Patterns (TPG)
    2. 10.2 Solid Field (SFG) Color
    3. 10.3 Curtain
  13. 11Display Formatting
  14. 12Image Processing
  15. 13Illumination Control
  16. 14Peripherals
    1. 14.1 GPIO
  17. 15Interface Protocol
    1. 15.1 Supported Interfaces
    2. 15.2 I2C Target
    3. 15.3 USB
  18. 16Command Protocol
    1. 16.1 Command Packet
    2. 16.2 Response Packet
    3. 16.3 Destination Details
    4. 16.4 Error Handling and Recovery
    5. 16.5 System Busy - I2C scenarios
      1. 16.5.1 GPIO implementation
      2. 16.5.2 Short Status response
    6. 16.6 Support for Variable Data Size
  19. 17Auto-Initilization Batch File
  20. 18Command Descriptions
  21. 19 System Commands
    1. 19.1  3D
    2. 19.2  Administrative
    3. 19.3  Autolock
    4. 19.4  Blending
    5. 19.5  Bootloader
    6. 19.6  Calibration
    7. 19.7  Debug Internal
    8. 19.8  Debug
    9. 19.9  General Operation
    10. 19.10 Illumination
    11. 19.11 Image Processing
    12. 19.12 Peripherals
    13. 19.13 Warping
    14. 19.14 Manual WPC
  22. 20Revision History

Warping

Warping

Table 19-123 Manual Warp Table [Opcode: 34h | Destination: 4]
Set Manual Warp Table
Write Parameter(s)
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 are in 13.3 fixed point format

This command writes to the warp map table that can be enabled using warping 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 the warping 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 Parameter(s)
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 Parameter(s)
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 19-124 Manual Warp Control Points [Opcode: 35h | Destination: 4]
Set Manual Warp Control Points
Write Parameter(s)
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 Parameter(s)
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 19-125 Apply Manual Warping [Opcode: 36h | Destination: 4]
Set Apply Manual Warping
Write Parameter(s)
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 Parameter(s)
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 19-126 Smooth Warp Table [Opcode: 38h | Destination: 4]
Set Smooth Warp Table
Write Parameter(s)
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 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' ie, At the Warp Point, 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 Parameter(s) above.

This command returns the user defined MxN warping map points

Table 19-127 Manual Warp Table Update Mode [Opcode: 39h | Destination: 4]
Set Manual Warp Table Update Mode
Write Parameter(s)
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 poins should be written using Write Manual Warp Command.

Get Manual Warp Table Update Mode
Data returned is in the same format as Write Parameter(s) above.

This command returns the set warp table write mode.