From 9f95ff5b6ba01db09552b84a0ab79607060a2666 Mon Sep 17 00:00:00 2001 From: Ali Labbene Date: Wed, 11 Dec 2019 08:59:21 +0100 Subject: Official ARM version: v5.4.0 Add CMSIS V5.4.0, please refer to index.html available under \docs folder. Note: content of \CMSIS\Core\Include has been copied under \Include to keep the same structure used in existing projects, and thus avoid projects mass update Note: the following components have been removed from ARM original delivery (as not used in ST packages) - CMSIS_EW2018.pdf - .gitattributes - .gitignore - \Device - \CMSIS - \CoreValidation - \DAP - \Documentation - \DoxyGen - \Driver - \Pack - \RTOS\CMSIS_RTOS_Tutorial.pdf - \RTOS\RTX - \RTOS\Template - \RTOS2\RTX - \Utilities - All ARM/GCC projects files are deleted from \DSP, \RTOS and \RTOS2 Change-Id: Ia026c3f0f0d016627a4fb5a9032852c33d24b4d3 --- docs/DSP/html/group__BilinearInterpolate.html | 343 ++++++++++++++++++++++++++ 1 file changed, 343 insertions(+) create mode 100644 docs/DSP/html/group__BilinearInterpolate.html (limited to 'docs/DSP/html/group__BilinearInterpolate.html') diff --git a/docs/DSP/html/group__BilinearInterpolate.html b/docs/DSP/html/group__BilinearInterpolate.html new file mode 100644 index 0000000..59488a0 --- /dev/null +++ b/docs/DSP/html/group__BilinearInterpolate.html @@ -0,0 +1,343 @@ + + + + + +Bilinear Interpolation +CMSIS-DSP: Bilinear Interpolation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DSP +  Version 1.5.2 +
+
CMSIS DSP Software Library
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Bilinear Interpolation
+
+
+ + + + + + + + + + + + + + +

+Functions

CMSIS_INLINE __STATIC_INLINE
+float32_t 
arm_bilinear_interp_f32 (const arm_bilinear_interp_instance_f32 *S, float32_t X, float32_t Y)
 Floating-point bilinear interpolation. More...
 
CMSIS_INLINE __STATIC_INLINE q31_t arm_bilinear_interp_q31 (arm_bilinear_interp_instance_q31 *S, q31_t X, q31_t Y)
 Q31 bilinear interpolation. More...
 
CMSIS_INLINE __STATIC_INLINE q15_t arm_bilinear_interp_q15 (arm_bilinear_interp_instance_q15 *S, q31_t X, q31_t Y)
 Q15 bilinear interpolation. More...
 
CMSIS_INLINE __STATIC_INLINE q7_t arm_bilinear_interp_q7 (arm_bilinear_interp_instance_q7 *S, q31_t X, q31_t Y)
 Q7 bilinear interpolation. More...
 
+

Description

+

Bilinear interpolation is an extension of linear interpolation applied to a two dimensional grid. The underlying function f(x, y) is sampled on a regular grid and the interpolation process determines values between the grid points. Bilinear interpolation is equivalent to two step linear interpolation, first in the x-dimension and then in the y-dimension. Bilinear interpolation is often used in image processing to rescale images. The CMSIS DSP library provides bilinear interpolation functions for Q7, Q15, Q31, and floating-point data types.

+

Algorithm

+
The instance structure used by the bilinear interpolation functions describes a two dimensional data table. For floating-point, the instance structure is defined as:
+  typedef struct
+  {
+    uint16_t numRows;
+    uint16_t numCols;
+    float32_t *pData;
+} arm_bilinear_interp_instance_f32;
+
+
where numRows specifies the number of rows in the table; numCols specifies the number of columns in the table; and pData points to an array of size numRows*numCols values. The data table pTable is organized in row order and the supplied data values fall on integer indexes. That is, table element (x,y) is located at pTable[x + y*numCols] where x and y are integers.
+
Let (x, y) specify the desired interpolation point. Then define:
+    XF = floor(x)
+    YF = floor(y)
+
+
The interpolated output point is computed as:
+ f(x, y) = f(XF, YF) * (1-(x-XF)) * (1-(y-YF))
+          + f(XF+1, YF) * (x-XF)*(1-(y-YF))
+          + f(XF, YF+1) * (1-(x-XF))*(y-YF)
+          + f(XF+1, YF+1) * (x-XF)*(y-YF)
+
Note that the coordinates (x, y) contain integer and fractional components. The integer components specify which portion of the table to use while the fractional components control the interpolation processor.
+
if (x,y) are outside of the table boundary, Bilinear interpolation returns zero output.
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
CMSIS_INLINE __STATIC_INLINE float32_t arm_bilinear_interp_f32 (const arm_bilinear_interp_instance_f32S,
float32_t X,
float32_t Y 
)
+
+
Parameters
+ + + + +
[in,out]Spoints to an instance of the interpolation structure.
[in]Xinterpolation coordinate.
[in]Yinterpolation coordinate.
+
+
+
Returns
out interpolated value.
+ +

References arm_bilinear_interp_instance_f32::numCols, arm_bilinear_interp_instance_f32::numRows, and arm_bilinear_interp_instance_f32::pData.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
CMSIS_INLINE __STATIC_INLINE q15_t arm_bilinear_interp_q15 (arm_bilinear_interp_instance_q15S,
q31_t X,
q31_t Y 
)
+
+
Parameters
+ + + + +
[in,out]Spoints to an instance of the interpolation structure.
[in]Xinterpolation coordinate in 12.20 format.
[in]Yinterpolation coordinate in 12.20 format.
+
+
+
Returns
out interpolated value.
+ +

References arm_bilinear_interp_instance_q15::numCols, arm_bilinear_interp_instance_q15::numRows, and arm_bilinear_interp_instance_q15::pData.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
CMSIS_INLINE __STATIC_INLINE q31_t arm_bilinear_interp_q31 (arm_bilinear_interp_instance_q31S,
q31_t X,
q31_t Y 
)
+
+
Parameters
+ + + + +
[in,out]Spoints to an instance of the interpolation structure.
[in]Xinterpolation coordinate in 12.20 format.
[in]Yinterpolation coordinate in 12.20 format.
+
+
+
Returns
out interpolated value.
+ +

References arm_bilinear_interp_instance_q31::numCols, arm_bilinear_interp_instance_q31::numRows, and arm_bilinear_interp_instance_q31::pData.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
CMSIS_INLINE __STATIC_INLINE q7_t arm_bilinear_interp_q7 (arm_bilinear_interp_instance_q7S,
q31_t X,
q31_t Y 
)
+
+
Parameters
+ + + + +
[in,out]Spoints to an instance of the interpolation structure.
[in]Xinterpolation coordinate in 12.20 format.
[in]Yinterpolation coordinate in 12.20 format.
+
+
+
Returns
out interpolated value.
+ +

References arm_bilinear_interp_instance_q7::numCols, arm_bilinear_interp_instance_q7::numRows, and arm_bilinear_interp_instance_q7::pData.

+ +
+
+
+
+ + + + -- cgit