# Configuration of warping parameters

The configuration information passed to the warping library is used to check constraints and as basis for computations.

#### Overall configuration parameter structure

The following table details the overall configuration parameter structure and their limits.

<div class="contents" id="bkmrk-name-range-descripti"><div class="contents"><div class="textblock"><table border="1" cellpadding="5" cellspacing="0" style="height: 2624.48px;" width="800"><tbody><tr bgcolor="#d4d4d4" style="height: 29.7969px;"><th style="background-color: rgb(255, 255, 255); height: 29.7969px;" width="25%">**Name**</th><th style="background-color: rgb(255, 255, 255); height: 29.7969px;" width="10%">**Range**</th><th style="background-color: rgb(255, 255, 255); height: 29.7969px;" width="50%">**Description**</th><th style="background-color: rgb(255, 255, 255); height: 29.7969px;" width="15%">**Example Value**</th></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;" valign="top">NumBitsPerParam</td><td style="height: 46.5938px;" valign="top">1..16</td><td style="height: 46.5938px;" valign="top">Number of bits used for each parameter (bit length of each parameter, contains pixel fractions)</td><td style="height: 46.5938px;" valign="top">12</td></tr><tr style="height: 171.75px;"><td style="height: 171.75px;" valign="top">PixResolution</td><td style="height: 171.75px;" valign="top">0: <sup>1</sup>/<sub>16</sub> px   
**1**: <sup>1</sup>/<sub>8</sub> px   
**2**: <sup>1</sup>/<sub>4</sub> px   
**3**: <sup>1</sup>/<sub>2</sub> px   
**4**: 1 px   
**5**: 2 px   
**6**: 4 px   
**7**: 8 px   
</td><td style="height: 171.75px;" valign="top">Resolution of warping parameters.</td><td style="height: 171.75px;" valign="top">0 (<sup>1</sup>/<sub>16</sub> px)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;" valign="top">DisplaySizeX</td><td style="height: 29.7969px;" valign="top">0..655535</td><td style="height: 29.7969px;" valign="top">Display size in horizontal direction (in pixel).</td><td style="height: 29.7969px;" valign="top">480</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;" valign="top">DisplaySizeY</td><td style="height: 29.7969px;" valign="top">0..655535</td><td style="height: 29.7969px;" valign="top">Display size in vertical direction (in pixel).</td><td style="height: 29.7969px;" valign="top">240</td></tr><tr style="height: 102.562px;"><td style="height: 102.562px;" valign="top">BitmapAreaX</td><td style="height: 102.562px;" valign="top">0..655535</td><td style="height: 102.562px;" valign="top">Number of Bitmap-pixels in horizontal direction. Reference points are equally distributed over this range in x-direction.

**Condition:**   
BitmapAreaX ≤ DisplaySizeX

</td><td style="height: 102.562px;" valign="top">480</td></tr><tr style="height: 102.562px;"><td style="height: 102.562px;" valign="top">BitmapAreaY</td><td style="height: 102.562px;" valign="top">0..655535</td><td style="height: 102.562px;" valign="top">Number of Bitmap-pixels in vertical direction. Reference points are equally distributed over this range in y-direction.

**Condition:**   
BitmapAreaY ≤ DisplaySizeY

</td><td style="height: 102.562px;" valign="top">240</td></tr><tr style="height: 102.562px;"><td style="height: 102.562px;" valign="top">BitmapAreaShiftX</td><td style="height: 102.562px;" valign="top">0..655535</td><td style="height: 102.562px;" valign="top">Shift of the bitmap area center point in horizontal direction.

**Condition:**   
(BitmapAreaX/2+BitmapAreaShiftX≤DisplaySizeX) AND (BitmapAreaX/2– BitmapAreaShiftX ≥0)

</td><td style="height: 102.562px;" valign="top">240</td></tr><tr style="height: 102.562px;"><td style="height: 102.562px;" valign="top">BitmapAreaShiftY</td><td style="height: 102.562px;" valign="top">0..655535</td><td style="height: 102.562px;" valign="top">Shift of the bitmap area center point in vertical direction.

**Condition:**   
(BitmapAreaY/2+BitmapAreaShiftY≤DisplaySizeY) AND (BitmapAreaY/2– BitmapAreaShiftY ≥0)

</td><td style="height: 102.562px;" valign="top">120</td></tr><tr style="height: 80.1719px;"><td style="height: 80.1719px;" valign="top">IlluminatedDisplayAreaX</td><td style="height: 80.1719px;" valign="top">0..655535</td><td style="height: 80.1719px;" valign="top">Number of illuminated pixels in horizontal direction

**Condition:**   
IlluminatedDisplayAreaX ≤DisplaySizeY

</td><td style="height: 80.1719px;" valign="top">480</td></tr><tr style="height: 80.1719px;"><td style="height: 80.1719px;" valign="top">IlluminatedDisplayAreaY</td><td style="height: 80.1719px;" valign="top">0..655535</td><td style="height: 80.1719px;" valign="top">Number of illuminated pixels in vertical direction

**Condition:**   
IlluminatedDisplayAreaY ≤DisplaySizeY

</td><td style="height: 80.1719px;" valign="top">220</td></tr><tr style="height: 124.953px;"><td style="height: 124.953px;" valign="top">IlluminatedDisplayAreaShiftX</td><td style="height: 124.953px;" valign="top">0..655535</td><td style="height: 124.953px;" valign="top">Shift of the illuminated display area center point in horizontal direction.

**Condition:**   
(IllDisplayAreaX/2+IllDisplayAreaShiftX≤DisplaySizeX) AND (IllDisplayAreaX/2– IllDisplayAreaShiftX ≥0)

</td><td style="height: 124.953px;" valign="top">480</td></tr><tr style="height: 124.953px;"><td style="height: 124.953px;" valign="top">IlluminatedDisplayAreaShiftY</td><td style="height: 124.953px;" valign="top">0..655535</td><td style="height: 124.953px;" valign="top">Shift of the illuminated display area center point in vertical direction.

**Condition:**   
(IllDisplayAreaY/2+IllDisplayAreaShiftY≤DisplaySizeY) AND (IllDisplayAreaY/2– IllDisplayAreaShiftY ≥0)

</td><td style="height: 124.953px;" valign="top">220</td></tr><tr style="height: 193.734px;"><td style="height: 193.734px;" valign="top">WarpingAreaX</td><td style="height: 193.734px;" valign="top">0..655535</td><td style="height: 193.734px;" valign="top">Number of pixels used for warping in horizontal direction.

**Condition:**   
WarpingAreaX≤IlluminatedDisplayAreaX

<dl class="note"><dd><p class="callout info">This parameter is present for historical reasons and is not used during computation/adjustment. Its validity is still checked, though.</p>

</dd></dl></td><td style="height: 193.734px;" valign="top">470</td></tr><tr style="height: 171.344px;"><td style="height: 171.344px;" valign="top">WarpingAreaY</td><td style="height: 171.344px;" valign="top">0..655535</td><td style="height: 171.344px;" valign="top">Number of pixels used for warping in vertical direction.

**Condition:**   
WarpingAreaY≤IlluminatedDisplayAreaY

<dl class="note"><dd></dd><dd><p class="callout info">This parameter is present for historical reasons and is not used during computation/adjustment. Its validity is still checked, though.</p>

</dd></dl></td><td style="height: 171.344px;" valign="top">120</td></tr><tr style="height: 143.359px;"><td style="height: 143.359px;" valign="top">WarpedAreaShiftX</td><td style="height: 143.359px;" valign="top">0..655535</td><td style="height: 143.359px;" valign="top">Shift of the warped area center point in horizontal direction.

<dl class="note"><dt>  
</dt><dd><p class="callout info">This parameter is present for historical reasons and is not used during computation/adjustment. Its validity is still checked, though.</p>

</dd></dl></td><td style="height: 143.359px;" valign="top">220</td></tr><tr style="height: 126.562px;"><td style="height: 126.562px;" valign="top">WarpedAreaShiftY</td><td style="height: 126.562px;" valign="top">0..655535</td><td style="height: 126.562px;" valign="top">Shift of the warped area center point in vertical direction.

<dl class="note"><dt></dt><dd><p class="callout info">This parameter is present for historical reasons and is not used during computation/adjustment. Its validity is still checked, though.</p>

</dd></dl></td><td style="height: 126.562px;" valign="top">110</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;" valign="top">RotationValue</td><td style="height: 46.5938px;" valign="top">-18000 .. +18000</td><td style="height: 46.5938px;" valign="top">Rotation value in grad \* 100</td><td style="height: 46.5938px;" valign="top">-150 // rotate 1.5°</td></tr><tr style="height: 130.578px;"><td style="height: 130.578px;" valign="top">ParamSet</td><td style="height: 130.578px;" valign="top">Data   
</td><td style="height: 130.578px;" valign="top">Set of reference point shift vectors row-major ordered(left to right, top to bottom).  
Each reference point in x/y direction is represented as a signed integer value in range –32,768 .. 32,767 (2 bytes).</td><td style="height: 130.578px;" valign="top">(X0, Y0)   
(X0, Y1)   
…   
(XM, YN)   
  
M: #RefPointsX   
N: #RefPointsY   
</td></tr><tr style="height: 63.3906px;"><td style="height: 63.3906px;" valign="top">ParamSetLength</td><td style="height: 63.3906px;" valign="top">0..655535</td><td style="height: 63.3906px;" valign="top">Length of parameter set in bytes calculated using the following formula:   
2 \* NumRefPointsX \* NumRefPointsY \* NumBitsPerParam / 8</td><td style="height: 63.3906px;" valign="top">825 // 2\*25\*11\*12/8</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;" valign="top">RotationLimit</td><td style="height: 29.7969px;" valign="top">0..180</td><td style="height: 29.7969px;" valign="top">Maximal rotation angle in grad (+/- value)</td><td style="height: 29.7969px;" valign="top">5 // +/- 5°</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;" valign="top">TrapezoidLimitX</td><td style="height: 46.5938px;" valign="top">0..655535</td><td style="height: 46.5938px;" valign="top">Maximum value for trapezoid transformation in horizontal direction (+/- value)</td><td style="height: 46.5938px;" valign="top">50</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;" valign="top">TrapezoidLimitY</td><td style="height: 46.5938px;" valign="top">0..655535</td><td style="height: 46.5938px;" valign="top">Maximum value for trapezoid transformation in vertical direction (+/- value)</td><td style="height: 46.5938px;" valign="top">50</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;" valign="top">ParallelogramLimitX</td><td style="height: 46.5938px;" valign="top">0..655535</td><td style="height: 46.5938px;" valign="top">Maximum value for parallelogram transformation in horizontal direction (+/- value)</td><td style="height: 46.5938px;" valign="top">50</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;" valign="top">ParallelogramLimitY</td><td style="height: 46.5938px;" valign="top">0..655535</td><td style="height: 46.5938px;" valign="top">Maximum value for parallelogram transformation in vertical direction (+/- value)</td><td style="height: 46.5938px;" valign="top">50</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;" valign="top">PinbalanceLimitX</td><td style="height: 46.5938px;" valign="top">0..655535</td><td style="height: 46.5938px;" valign="top">Maximum value for pin balance transformation in horizontal direction (+/- value)</td><td style="height: 46.5938px;" valign="top">50</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;" valign="top">PinbalanceLimitY</td><td style="height: 46.5938px;" valign="top">0..655535</td><td style="height: 46.5938px;" valign="top">Maximum value for pin balance transformation in vetical direction (+/- value)</td><td style="height: 46.5938px;" valign="top">50</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;" valign="top">PincushionLimitX</td><td style="height: 46.5938px;" valign="top">0..655535</td><td style="height: 46.5938px;" valign="top">Maximum value for pincushion transformation in horizontal direction (+/- value)</td><td style="height: 46.5938px;" valign="top">50</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;" valign="top">PincushionLimitY</td><td style="height: 46.5938px;" valign="top">0..655535</td><td style="height: 46.5938px;" valign="top">Maximum value for pincushion transformation in vetical direction (+/- value)</td><td style="height: 46.5938px;" valign="top">50</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;" valign="top">WidthLimit</td><td style="height: 46.5938px;" valign="top">0..655535</td><td style="height: 46.5938px;" valign="top">Maximum value for width transformation in horizontal direction (+/- value)</td><td style="height: 46.5938px;" valign="top">50</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;" valign="top">HeightLimit</td><td style="height: 46.5938px;" valign="top">0..655535</td><td style="height: 46.5938px;" valign="top">Maximum value for height transformation in vetical direction (+/- value)</td><td style="height: 46.5938px;" valign="top">50</td></tr><tr style="height: 124.953px;"><td style="height: 124.953px;" valign="top">ScaleMode</td><td style="height: 124.953px;" valign="top">0 or 1</td><td style="height: 124.953px;" valign="top">0 - scale factor is 1. Scaling might occur if image does not fit inside illuminated area

1 - scale factor is calculated based on RotationLimit value, such that, when rotated at maximum, the image will fit inside illuminated area

</td><td style="height: 124.953px;" valign="top">0</td></tr></tbody></table>

</div></div></div>Please refer to the following chapters for details on how the parameters influence the result of the warped image.

---