-Here is a list of all documented file members with links to the documentation:
+Here is a list of all file members with links to the files they belong to:
This is the main header file of the Xilinx MVI Video Scaler device driver. The Scaler device converts a specified rectangular area of an input digital video image from one original sampling grid to a desired target sampling grid.
Video Scaler Device v3.00a features are as follows:
@@ -39,10 +39,70 @@ An example is shipped with the driver to demonstrate how to use the APIs this dr
MODIFICATION HISTORY:
-
Ver Who Date Changes
- ----- ---- -------- -------------------------------------------------------
- 1.00a xd 05/14/09 First release
- 2.00a xd 12/14/09 Updated doxygen document tags
- 3.00a xd 07/29/10 Added device version & sharable coefficient bank support
- 6.0 adk 19/12/13 Updated as per the New Tcl API's
-
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.
+
Ver Who Date Changes
+ ----- ------ -------- -------------------------------------------------------
+ 1.00a xd 05/14/09 First release
+ 2.00a xd 12/14/09 Updated Doxygen document tags
+ 3.00a xd 07/29/10 Added core version & sharable coefficient bank
+ support
+ 6.0 adk 12/19/13 Updated as per the New Tcl API's
+ 7.0 adk 08/22/14 Removed XSCL_HANDLER_ERROR and XSCL_HANDLER_EVENT macros.
+ Removed ErrorCallBack and its ref ErrorRef from XScaler
+ structure.
+ Modified EventCallBack as CallBack and
+ EventRef as CallBackRef.
+ Modified XSCL_STSDONE to XSCL_STATUS_OFFSET,
+ XSCL_STS to XSCL_STATUS_OFFSET, XSCL_STSERR to
+ XSCL_ERROR_OFFSET.
+ Removed the following functional macros
+ XScaler_IntrGetPending,
+ XScaler_IntrEnableGlobal and XScaler_IntrDisableGlobal.
+ uncommented interrupt related macros.
+ Modified prototypes of the following functions by removing IntrType
+ parameter as there was only one interrupt :XScaler_IntrEnable,
+ XScaler_IntrDisable and XScaler_IntrClear.
+
Modifications from xscalar_hw.h file are:
+ Appended register offset macros with _OFFSET and
+ Bit definition with _MASK.
+ Provided backward compatibility for changed macros.
+ Defined the following macros XSCL_CTL_MEMRD_EN_MASK.
+ Modified XSCL_CTL_ENABLE to XSCL_CTL_SW_EN_MASK,
+ XSCL_RESET_RESET_MASK to XSCL_CTL_RESET_MASK,
+ XSCL_CTL_REGUPDATE to XSCL_CTL_RUE_MASK,
+ XSCL_STSDONE_DONE and XSCL_STS_COEF_W_RDY_MASK to
+ XSCL_IXR_COEF_W_RDY_MASK.
+ Added XSCL_ERR_*_MASK s.
+ Removed XSCL_GIER_GIE_MASK.
+ Removed following macros as they were not defined in
+ latest product guide(v 8.1):
+ XSCL_STSERR_CODE*_MASK, XSCL_IXR_OUTPUT_FRAME_DONE_MASK,
+ XSCL_IXR_COEF_FIFO_READY_MASK, XSCL_IXR_INPUT_ERROR_MASK
+ XSCL_IXR_COEF_WR_ERROR_MASK,
+ XSCL_IXR_REG_UPDATE_DONE_MASK,
+ XSCL_IXR_OUTPUT_ERROR_MASK, XSCL_IXR_EVENT_MASK,
+ XSCL_IXR_ERROR_MASK, XSCL_IXR_ALLINTR_MASK,
+ XSCL_HSF_INT_MASK, XSCL_VSF_INT_MASK,
+ XSCL_COEFFVALUE_BASE_SHIFT and XSCL_COEFVALUE_BASE_MASK.
+ Modified bits of the following macros:
+ XSCL_HSF_FRAC_MASK and XSCL_VSF_FRAC_MASK.
+
Modifications from xscalar.c file are:
+ Modified prototype of XScaler_GetVersion API.
+ and functionality of StubCallBack. Modified assert
+ conditions in functions XScaler_CfgInitialize,
+ XScaler_SetPhaseNum, XScaler_LoadCoeffBank.
+ Removed error callback from XScaler_CfgInitialize
+ function.
+ Uncommented XScaler_Reset in XScaler_CfgInitialize
+ function.
+
Modifications from file xscalar_coefs.c file are
+ Removed typedef unsigned short s16 as it was already
+ defined in xil_types.h.
+ Modified coefs_struct to Coefs_Struct.
+ Updated doxygen document tags.
+ XScaler_coef_table is made as a global variable.
+ Memory allocated was freed after usage.
+
Modifications from xscalar_intr.c file are
+ XScaler_IntrHandler and XScaler_SetCallBack APIs were
+ modified
+
Added XScaler_LookupConfig in xscalar_sinit.c file and
+
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.
diff --git a/XilinxProcessorIPLib/drivers/scaler/doc/html/api/struct_coefs___struct-members.html b/XilinxProcessorIPLib/drivers/scaler/doc/html/api/struct_coefs___struct-members.html
new file mode 100755
index 00000000..c9ab0571
--- /dev/null
+++ b/XilinxProcessorIPLib/drivers/scaler/doc/html/api/struct_coefs___struct-members.html
@@ -0,0 +1,26 @@
+
+
+
+
+ Member List
+
+
+
+
-The XScaler driver instance data. An instance must be allocated for each Scaler device in use.
+The XScaler driver instance data. An instance must be allocated for each Scaler device in use.
-The XScalerAperture data structure for Aperture and scale factor control. The scale factor values are calculated using the field in this structure
+The XScalerAperture data structure for Aperture and scale factor control. The scale factor values are calculated using the field in this structure
-The XScalerCoeffBank data structure for loading a Bank in a Coefficient Set, which contains 4 banks.
+The XScalerCoeffBank data structure for loading a Bank in a Coefficient Set, which contains 4 banks.
-The XScalerStartFraction data structure for Luma and Chroma Start Fraction setting
+The XScalerStartFraction data structure for Luma and Chroma Start Fraction setting
-This is main code of Xilinx MVI Video Scaler device driver. The Scaler device converts a specified rectangular area of an input digital video image from one original sampling grid to a desired target sampling grid. Please see xscaler.h for more details of the driver.
+This is main code of Xilinx MVI Video Scaler device driver. The Scaler device converts a specified rectangular area of an input digital video image from one original sampling grid to a desired target sampling grid. Please see xscaler.h for more details of the driver.
MODIFICATION HISTORY:
-
Ver Who Date Changes
- ----- ---- -------- -------------------------------------------------------
- 1.00a xd 02/10/09 First release
- 2.00a xd 12/14/09 Updated doxygen document tags
- 4.01a cw 06/27/12 Updated tcl file with new parameter names (num_x_taps)
- Updated mdd file with updated supported_peripherals field.
- 4.02a mpv 03/11/13 Updated the Driver to select the correct coeff bin.
- Changed RegValue variable to a volatile type
- Removed 10.x patch in the Tcl file
- 4.03a mpv 05/28/13 Fixed version limit in MDD file
- Updated the Driver input, output and aperture size mask
- 5.00a mpv 12/13/13 Updated to dynamic coeff generation to reduce driver size
+
Ver Who Date Changes
+ ----- ---- -------- -------------------------------------------------------
+ 1.00a xd 02/10/09 First release
+ 2.00a xd 12/14/09 Updated Doxygen document tags
+ 4.01a cw 06/27/12 Updated tcl file with new parameter names (num_x_taps)
+ Updated mdd file with updated supported_peripherals
+ field.
+ 4.02a mpv 03/11/13 Updated the Driver to select the correct coeff bin.
+ Changed RegValue variable to a volatile type
+ Removed 10.x patch in the Tcl file
+ 4.03a mpv 05/28/13 Fixed version limit in MDD file
+ Updated the Driver input, output and aperture size
+ mask
+ 5.00a mpv 12/13/13 Updated to dynamic coeff generation to reduce driver
+ size
+ 7.0 adk 08/22/14 Modified prototype of XScaler_GetVersion API.
+ and functionality of StubCallBack. Modified assert
+ conditions in functions XScaler_CfgInitialize,
+ XScaler_SetPhaseNum, XScaler_LoadCoeffBank.
+ Removed error callback from XScaler_CfgInitialize
+ function.
+ Uncommented XScaler_Reset in XScaler_CfgInitialize
+ function.
+ Removed ErrorMask parameter in StubCallBack as there
+ was only one interrupt.
This function initializes a Scaler device. This function must be called prior to using a Scaler device. Initialization of a Scaler includes setting up the instance data, and ensuring the hardware is in a quiescent state.
@@ -162,57 +161,50 @@ This function initializes a Scaler device. This function must be called prior to
InstancePtr
is a pointer to the Scaler device instance to be worked on.
CfgPtr
points to the configuration structure associated with the Scaler device.
-
EffectiveAddr
is the base address of the device. If address translation is being used, then this parameter must reflect the virtual base address. Otherwise, the physical address should be used.
+
EffectiveAddr
is the base address of the device. If address translation is being used, then this parameter must reflect the virtual base address. Otherwise, the physical address should be used.
-
Returns:
XST_SUCCESS
-
-
-
-
-
-
-
-
+
Returns:
XST_SUCCESS
+
Note:
None.
+
+
+
+
+
+
+
-
s16* XScaler_CoefValueLookup
-
(
-
u32
-
InSize,
+
s16* XScaler_CoefValueLookup
+
(
+
u32
+
InSize,
-
-
-
u32
-
OutSize,
+
+
+
u32
+
OutSize,
-
-
-
u32
-
Tap,
+
+
+
u32
+
Tap,
-
-
-
u32
-
Phase
+
+
+
u32
+
Phase
-
-
)
-
+
+
)
+
-
-
-
-
-
-
-
-
-
+
+
This function returns the pointer to the coefficients for a scaling operation given input/output sizes and the Tap and Phase numbers.
@@ -221,194 +213,172 @@ This function returns the pointer to the coefficients for a scaling operation gi
InSize
indicates the size (width or height) of the input video.
OutSize
indicates the size (width or height) of the output video.
Tap
indicates the Tap number.
-
Phase
indicates the Phase number.
+
Phase
indicates the Phase number.
-
Returns:
The points to the coefficients ready for the scaling operation.
+
Returns:
The points to the coefficients ready for the scaling operation.
Note:
None.
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
s16* XScaler_GenCoefTable
-
(
-
u32
-
Tap,
+
s16* XScaler_GenCoefTable
+
(
+
u32
+
Tap,
-
-
-
u32
-
Phase
+
+
+
u32
+
Phase
-
-
)
-
+
+
)
+
-
-
-
-
-
-
-
-
-
+
+
-XScaler_GenCoefTable generates XScaler_coef_table containing the coefficient values for scaling operations
-
-
-
-
-
-
-
+This function generates a table that contains the coefficient values for scaling operations
+
Parameters:
+
+
Tap
indicates the number of taps configured to the Scaler device.
+
Phase
indicates the number of phase configured to the Scaler device.
This function fetches the indexes of active vertical and horizontal coefficient sets being used by a Scaler device.
Each coefficient set contains 4 banks: Horizontal Luma, Horizontal Chroma, Vertical Luma and Vertical Chroma. The horizontal part is independent from the vertical part and the Scaler device supports using the horizontal part of one coefficient set w/ the vertical part of a different coefficient set.
Parameters:
-
InstancePtr
is a pointer to the Scaler device instance to be worked on.
-
VertSetIndexPtr
points to the index of the active coefficient set in which the vertical part is being used by the Scaler device after this function returns.
+
InstancePtr
is a pointer to the Scaler device instance to be worked on.
+
VertSetIndexPtr
points to the index of the active coefficient set in which the vertical part is being used by the Scaler device after this function returns.
HoriSetIndexPtr
points to the index of the active coefficient set in which the horizontal part is being used by the Scaler device after this function returns.
This function fetches the color space format and coefficient bank sharing decisions made on a Scaler device at build-time.
@@ -417,10 +387,10 @@ This function fetches the color space format and coefficient bank sharing decisi
InstancePtr
is a pointer to the Scaler device instance to be worked on.
ChromaFormat
points to an 8-bit variable that will be assigned with the Chroma format chosen for the Scaler device at the build time after this function returns. Please use XSCL_CHROMA_FORMAT_* defined in xscaler_hw.h to interpret the variable value.
ChromaLumaShareCoeff
points to an 8-bit variable that will be assigned by this function with the decision value on coefficient bank sharing between Chroma and Luma filter operations. The decision is made for the Scaler device at build time and can NOT be changed at run-time. Value 0 indicates that each of Chroma and Luma filter operations has its own coefficient bank. Value 1 indicates that Chroma and Luma filter operations share one common coefficient bank.
-
HoriVertShareCoeff
points to an 8-bit variable that will be assigned by this function with the decision value on coefficient bank sharing between Horizontal and Vertical filter operations. The decision is made for the Scaler device at build time and can NOT be changed at run-time. Value 0 indicates that each of Horizontal and Vertical filter operations has its own coefficient bank. Value 1 indicates that Horizontal and Vertical filter operations share one common coefficient bank.
+
HoriVertShareCoeff
points to an 8-bit variable that will be assigned by this function with the decision value on coefficient bank sharing between Horizontal and Vertical filter operations. The decision is made for the Scaler device at build time and can NOT be changed at run-time. Value 0 indicates that each of Horizontal and Vertical filter operations has its own coefficient bank. Value 1 indicates that Horizontal and Vertical filter operations share one common coefficient bank.
-
Returns:
None.
+
Returns:
None.
Note:
!!!IMPORTANT!!!
The application of this function is responsible for loading the correct number of coefficient banks in the proper sequence order. The number of coefficient banks to load and the proper loading sequence totally depends on the values of the output parameters of this function. Please use the table below as reference.
@@ -462,47 +432,39 @@ The application of this function is responsible for loading the correct number o
YUV444 Always 1 0 2 1.Hori bank
2.Vert bank
------------ -------------------- ------------------ -------- -------------
-
-This function loads a coefficient bank to the Scaler core. A complete coefficient set contains 4 banks (if Luma, Chroma, Horizontal and Vertical filter operations do not share common banks. For more details see XScaler_GetCoeffBankSharingInfo()): Horizontal Luma, Horizontal Chroma, Vertical Luma and Vertical Chroma. all 4 banks must be loaded back to back in the order listed here. The caller is responsible for ensuring the sequence and this function does not check it.
+This function returns the contents of version register of the Scaler core.
+
Parameters:
+
+
InstancePtr
is a pointer to the Scaler core instance to be worked on.
+This function loads a coefficient bank to the Scaler core. A complete coefficient set contains 4 banks (if Luma, Chroma, Horizontal and Vertical filter operations do not share common banks. For more details see XScaler_GetCoeffBankSharingInfo()): Horizontal Luma, Horizontal Chroma, Vertical Luma and Vertical Chroma. all 4 banks must be loaded back to back in the order listed here. The caller is responsible for ensuring the sequence and this function does not check it.
An example sequence to load an whole coefficient set is like:
XScaler_LoadCoeffBank(&Scaler, &HoriLumaCoeffBank);
XScaler_LoadCoeffBank(&Scaler, &HoriChromaCoeffBank);
@@ -606,150 +582,127 @@ An example sequence to load an whole coefficient set is like:
Parameters:
InstancePtr
is a pointer to the Scaler device instance to be worked on.
-
CoeffBankPtr
is a pointer to a coefficient bank that is to be loaded
+
CoeffBankPtr
is a pointer to a coefficient bank that is to be loaded.
This function chooses the active vertical and horizontal coefficient sets to be used by a Scaler device.
Each coefficient set contains 4 banks: Horizontal Luma, Horizontal Chroma, Vertical Luma and Vertical Chroma. The horizontal part is independent from the vertical part and the Scaler device supports using the horizontal part of one coefficient set w/ the vertical part of a different coefficient set.
Parameters:
-
InstancePtr
is a pointer to the Scaler device instance to be worked on
-
VertSetIndex
indicates the index of the coefficient set in which the vertical part will be used by the Scaler device. Valid value is from 0 to (the number of the coefficient sets implemented by the Scaler device - 1)
-
HoriSetIndex
indicates the index of the coefficient set in which the horizontal part will be used by the Scaler device. Valid value is from 0 to (the number of the coefficient sets implemented by the Scaler device - 1)
+
InstancePtr
is a pointer to the Scaler device instance to be worked on.
+
VertSetIndex
indicates the index of the coefficient set in which the vertical part will be used by the Scaler device. Valid value is from 0 to (the number of the coefficient sets implemented by the Scaler device - 1).
+
HoriSetIndex
indicates the index of the coefficient set in which the horizontal part will be used by the Scaler device. Valid value is from 0 to (the number of the coefficient sets implemented by the Scaler device - 1).
This function sets up aperture of a Scaler device. The aperture setting consists of input video aperture and output video size. This function calculates the scale factor accordingly based on the aperture setting and sets up the Scaler appropriately.
Parameters:
InstancePtr
is a pointer to the Scaler device instance to be worked on.
-
AperturePtr
points to the aperture setting structure to set up the Scaler device.
+
AperturePtr
points to the aperture setting structure to set up the Scaler device.
-XScaler_CoefficientsBinScalingFactors contains scaling factors calculated using (Output_Size * 10000 / Input_Size). This table could help find the index of coefficient Bin given an input size and a output size.
-
-
+XScaler_CoefficientsBinScalingFactors contains scaling factors calculated using (Output_Size * 10000 / Input_Size). This table could help find the index of coefficient Bin given an input size and a output size.
+
+
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.
diff --git a/XilinxProcessorIPLib/drivers/scaler/doc/html/api/xscaler_8h.html b/XilinxProcessorIPLib/drivers/scaler/doc/html/api/xscaler_8h.html
new file mode 100644
index 00000000..e8c12700
--- /dev/null
+++ b/XilinxProcessorIPLib/drivers/scaler/doc/html/api/xscaler_8h.html
@@ -0,0 +1,1517 @@
+
+
This macro calculates the offset of the first coefficient Phase from the beginning of a coefficient Tap given the currently used Phase and Tap numbers for scaling operation.
+
Parameters:
+
+
Tap
indicates the number of Taps used for the scaling operation.
+
Phase
indicates the number of Phases used for the scaling operation.
+
+
+
Returns:
The offset of the first coefficient Phase from the beginning of a coefficient Tap.
This macro tells a Scaler device not to pick up the register value changes until XScaler_EnableRegUpdate() is invoked again. This is very useful when multiple registers need to be updated. All register updates could be made with no tight time constraints with the help of this macro.
+
Parameters:
+
+
InstancePtr
is a pointer to the Scaler device instance to be worked on.
is a callback reference passed in by the upper layer when setting the callback functions, and passed back to the upper layer when the callback is invoked.
+
EventMask
indicates which events are happening. They could be either normal events or errors. The value is created by "OR'ing" XSCL_IXR_* constants defined in xscaler_hw.h
+This function initializes a Scaler device. This function must be called prior to using a Scaler device. Initialization of a Scaler includes setting up the instance data, and ensuring the hardware is in a quiescent state.
+
Parameters:
+
+
InstancePtr
is a pointer to the Scaler device instance to be worked on.
+
CfgPtr
points to the configuration structure associated with the Scaler device.
+
EffectiveAddr
is the base address of the device. If address translation is being used, then this parameter must reflect the virtual base address. Otherwise, the physical address should be used.
+
+
+
Returns:
XST_SUCCESS
+
Note:
None.
+
+
+
+
+
+
+
+
+
s16* XScaler_CoefValueLookup
+
(
+
u32
+
InSize,
+
+
+
+
+
u32
+
OutSize,
+
+
+
+
+
u32
+
Tap,
+
+
+
+
+
u32
+
Phase
+
+
+
+
)
+
+
+
+
+
+
+
+This function returns the pointer to the coefficients for a scaling operation given input/output sizes and the Tap and Phase numbers.
+
Parameters:
+
+
InSize
indicates the size (width or height) of the input video.
+
OutSize
indicates the size (width or height) of the output video.
+
Tap
indicates the Tap number.
+
Phase
indicates the Phase number.
+
+
+
Returns:
The points to the coefficients ready for the scaling operation.
+This function fetches the indexes of active vertical and horizontal coefficient sets being used by a Scaler device.
+Each coefficient set contains 4 banks: Horizontal Luma, Horizontal Chroma, Vertical Luma and Vertical Chroma. The horizontal part is independent from the vertical part and the Scaler device supports using the horizontal part of one coefficient set w/ the vertical part of a different coefficient set.
+
Parameters:
+
+
InstancePtr
is a pointer to the Scaler device instance to be worked on.
+
VertSetIndexPtr
points to the index of the active coefficient set in which the vertical part is being used by the Scaler device after this function returns.
+
HoriSetIndexPtr
points to the index of the active coefficient set in which the horizontal part is being used by the Scaler device after this function returns.
+This function fetches the color space format and coefficient bank sharing decisions made on a Scaler device at build-time.
+
Parameters:
+
+
InstancePtr
is a pointer to the Scaler device instance to be worked on.
+
ChromaFormat
points to an 8-bit variable that will be assigned with the Chroma format chosen for the Scaler device at the build time after this function returns. Please use XSCL_CHROMA_FORMAT_* defined in xscaler_hw.h to interpret the variable value.
+
ChromaLumaShareCoeff
points to an 8-bit variable that will be assigned by this function with the decision value on coefficient bank sharing between Chroma and Luma filter operations. The decision is made for the Scaler device at build time and can NOT be changed at run-time. Value 0 indicates that each of Chroma and Luma filter operations has its own coefficient bank. Value 1 indicates that Chroma and Luma filter operations share one common coefficient bank.
+
HoriVertShareCoeff
points to an 8-bit variable that will be assigned by this function with the decision value on coefficient bank sharing between Horizontal and Vertical filter operations. The decision is made for the Scaler device at build time and can NOT be changed at run-time. Value 0 indicates that each of Horizontal and Vertical filter operations has its own coefficient bank. Value 1 indicates that Horizontal and Vertical filter operations share one common coefficient bank.
+
+
+
Returns:
None.
+
Note:
+!!!IMPORTANT!!!
+The application of this function is responsible for loading the correct number of coefficient banks in the proper sequence order. The number of coefficient banks to load and the proper loading sequence totally depends on the values of the output parameters of this function. Please use the table below as reference.
+This function returns the contents of version register of the Scaler core.
+
Parameters:
+
+
InstancePtr
is a pointer to the Scaler core instance to be worked on.
+
+
+
Returns:
Contents of the version register.
+
Note:
None.
+
+
+
+
+
+
+
+
+
void XScaler_IntrHandler
+
(
+
void *
+
InstancePtr
+
)
+
+
+
+
+
+
+
+This function is the interrupt handler for the Scaler driver.
+This handler calls callback, and finally clears the interrupts.
+The application is responsible for connecting this function to the interrupt system. Application beyond this driver is also responsible for providing callbacks to handle interrupts and installing the callbacks using XScaler_SetCallBack() during initialization phase.
+
Parameters:
+
+
InstancePtr
is a pointer to the XScaler instance that just interrupted.
+This function loads a coefficient bank to the Scaler core. A complete coefficient set contains 4 banks (if Luma, Chroma, Horizontal and Vertical filter operations do not share common banks. For more details see XScaler_GetCoeffBankSharingInfo()): Horizontal Luma, Horizontal Chroma, Vertical Luma and Vertical Chroma. all 4 banks must be loaded back to back in the order listed here. The caller is responsible for ensuring the sequence and this function does not check it.
+An example sequence to load an whole coefficient set is like:
+XScaler_LookupConfig returns a reference to an XScaler_Config structure based on the unique device id, DeviceId. The return value will refer to an entry in the device configuration table defined in the xscaler_g.c file.
+
Parameters:
+
+
DeviceId
is the unique device ID of the device for the lookup operation.
+
+
+
Returns:
XScaler_LookupConfig returns a reference to a config record in the configuration table (in xscaler_g.c) corresponding to DeviceId, or NULL if no match is found.
+This function chooses the active vertical and horizontal coefficient sets to be used by a Scaler device.
+Each coefficient set contains 4 banks: Horizontal Luma, Horizontal Chroma, Vertical Luma and Vertical Chroma. The horizontal part is independent from the vertical part and the Scaler device supports using the horizontal part of one coefficient set w/ the vertical part of a different coefficient set.
+
Parameters:
+
+
InstancePtr
is a pointer to the Scaler device instance to be worked on.
+
VertSetIndex
indicates the index of the coefficient set in which the vertical part will be used by the Scaler device. Valid value is from 0 to (the number of the coefficient sets implemented by the Scaler device - 1).
+
HoriSetIndex
indicates the index of the coefficient set in which the horizontal part will be used by the Scaler device. Valid value is from 0 to (the number of the coefficient sets implemented by the Scaler device - 1).
+This function sets up aperture of a Scaler device. The aperture setting consists of input video aperture and output video size. This function calculates the scale factor accordingly based on the aperture setting and sets up the Scaler appropriately.
+
Parameters:
+
+
InstancePtr
is a pointer to the Scaler device instance to be worked on.
+
AperturePtr
points to the aperture setting structure to set up the Scaler device.
@@ -28,188 +28,297 @@ This file contains Lanczos coefficient generation for use in the Xilinx Video Sc
Ver Who Date Changes
----- ---- -------- -------------------------------------------------------
1.00a xd 06/15/09 First release. Coefficients are auto-generated in
- Matlab using
- /Video_Scaler/reference_model/src/CreateCoefficients.m
+ Matlab using
+ /Video_Scaler/reference_model/src/CreateCoefficients.m
2.00a xd 12/14/09 Updated doxygen document tags
5.00a mpv 12/13/13 Updated to dynamic coeff generation to reduce driver size
+ 7.0 adk 08/22/14 Removed typedef unsigned short s16 as it was already
+ defined in xil_types.h.
+ Updated doxygen document tags.
+ XScaler_coef_table is made as a global variable.
+ Memory allocated was freed after usage.
+This function allocates memory to a double dimensional array.
+
Parameters:
-
Tap
is the number of taps configured
-
Phase
is the number of phase configured the Scaler device.
+
Coefs
is a pointer to Coefs_Struct structure which has a double dimensional array which needs to be allocated memory.
+
Max_Taps
indicates the number of taps which is used to allocate that number of columns.
+
Max_Phases
indicates the number of phases which is used to allocate that number of rows.
-
Returns:
XScaler_coef_table
-new coef generation************
-
-
-
Function Documentation
-
-
-
-
-
+
Returns:
1 - Indicates allocation of memory is failed. 0 - Indicates allocation of memory is success.
+
Note:
None.
+
+
+
+
+
+
+
-
s16* XScaler_GenCoefTable
-
(
-
u32
-
Tap,
+
s16* XScaler_GenCoefTable
+
(
+
u32
+
Tap,
-
-
-
u32
-
Phase
+
+
+
u32
+
Phase
-
-
)
-
+
+
)
+
-
-
-
-
-
-
-
-
-
+
+
-XScaler_GenCoefTable generates XScaler_coef_table containing the coefficient values for scaling operations
-
-
-
-
-
-
-
+This function generates a table that contains the coefficient values for scaling operations
+
Parameters:
+
+
Tap
indicates the number of taps configured to the Scaler device.
+
Phase
indicates the number of phase configured to the Scaler device.
+
+
+
Returns:
The pointer to XScaler_Coef_Table.
+
Note:
None.
+
+
+
+
+
+
+
-
void XScaler_GetLanczosCoeffs
-
(
-
float
-
p,
+
void XScaler_GetLanczosCoeffs
+
(
+
float
+
p,
-
-
-
short int
-
icoeffs[],
+
+
+
short int
+
icoeffs[],
-
-
-
int
-
NCOEFF
+
+
+
int
+
NCOEFF
-
-
)
-
+
+
)
+
-
-
-
-
-
-
-
-
-
+
+
-This coefficient generation algorithm implements the Lanczos coefficients: http://en.wikipedia.org/wiki/Lanczos_resampling For a particular scaling ratio, the coefficients can be pre-canned to memory
-
-
-
-
-
-
-
+This coefficient generation algorithm implements the Lanczos coefficients. For a particular scaling ratio, the coefficients can be pre-canned to memory.
+
Parameters:
+
+
p
is a float variable.
+
icoeffs
is a pointer to a single row of Coefficients array which is in SingleFrameCoefs structure.
+
NCOEFF
is variable which holds number of taps which indicates the number of columns
{
@@ -233,7 +342,7 @@ Sine generation This Sine generation algorithm implements Taylor series decompos
10000,
6666
}
-
XScaler_CoefficientsBinScalingFactors contains scaling factors calculated using (Output_Size * 10000 / Input_Size). This table could help find the index of coefficient Bin given an input size and a output size.
-
-
+XScaler_CoefficientsBinScalingFactors contains scaling factors calculated using (Output_Size * 10000 / Input_Size). This table could help find the index of coefficient Bin given an input size and a output size.
+
+
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.
diff --git a/XilinxProcessorIPLib/drivers/scaler/doc/html/api/xscaler__g_8c.html b/XilinxProcessorIPLib/drivers/scaler/doc/html/api/xscaler__g_8c.html
index 8e2303e1..a24febcd 100755
--- a/XilinxProcessorIPLib/drivers/scaler/doc/html/api/xscaler__g_8c.html
+++ b/XilinxProcessorIPLib/drivers/scaler/doc/html/api/xscaler__g_8c.html
@@ -9,7 +9,7 @@
This header file contains identifiers and register-level driver functions (or macros) that can be used to access the Xilinx MVI Video Scaler device.
-For more information about the operation of this device, see the hardware specification and documentation in the higher level driver xscaler.h source code file.
+For more information about the operation of this device, see the hardware specification and documentation in the higher level driver xscaler.h source code file.
MODIFICATION HISTORY:
Ver Who Date Changes
@@ -31,234 +31,306 @@ For more information about the operation of this device, see the hardware specif
1.00a xd 05/14/09 First release
2.00a xd 12/14/09 Updated doxygen document tags
4.03a mpv 05/28/13 Updated the Driver input, output and aperture size mask
+ 7.0 adk 08/22/14 Appended register offset macros with _OFFSET and
+ Bit definition with _MASK.
+ Provided backward compatibility for changed macros.
+ Defined the following macros XSCL_CTL_MEMRD_EN_MASK.
+ Modified XSCL_CTL_ENABLE to XSCL_CTL_SW_EN_MASK,
+ XSCL_RESET_RESET_MASK to XSCL_CTL_RESET_MASK,
+ XSCL_CTL_REGUPDATE to XSCL_CTL_RUE_MASK,
+ XSCL_STSDONE_DONE and XSCL_STS_COEF_W_RDY_MASK to
+ XSCL_IXR_COEF_W_RDY_MASK.
+ Added XSCL_ERR_*_MASK s.
+ Removed XSCL_GIER_GIE_MASK.
+ Removed following macros as they were not defined in
+ latest product guide(v 8.1):
+ XSCL_STSERR_CODE*_MASK, XSCL_IXR_OUTPUT_FRAME_DONE_MASK,
+ XSCL_IXR_COEF_FIFO_READY_MASK, XSCL_IXR_INPUT_ERROR_MASK
+ XSCL_IXR_COEF_WR_ERROR_MASK,
+ XSCL_IXR_REG_UPDATE_DONE_MASK,
+ XSCL_IXR_OUTPUT_ERROR_MASK, XSCL_IXR_EVENT_MASK,
+ XSCL_IXR_ERROR_MASK, XSCL_IXR_ALLINTR_MASK,
+ XSCL_HSF_INT_MASK, XSCL_VSF_INT_MASK,
+ XSCL_COEFFVALUE_BASE_SHIFT and XSCL_COEFVALUE_BASE_MASK.
+ Modified bits of the following macros:
+ XSCL_HSF_FRAC_MASK and XSCL_VSF_FRAC_MASK.
-This code contains interrupt related functions of Xilinx MVI Video Scaler device driver. The Scaler device converts a specified rectangular area of an input digital video image from one original sampling grid to a desired target sampling grid. Please see xscaler.h for more details of the driver.
+This code contains interrupt related functions of Xilinx MVI Video Scaler device driver. The Scaler device converts a specified rectangular area of an input digital video image from one original sampling grid to a desired target sampling grid. Please see xscaler.h for more details of the driver.
MODIFICATION HISTORY:
-
Ver Who Date Changes
- ----- ---- -------- -------------------------------------------------------
- 1.00a xd 02/10/09 First release
- 2.00a xd 12/14/09 Updated doxygen document tags
+
Ver Who Date Changes
+ ----- ------ -------- ------------------------------------------------------
+ 1.00a xd 02/10/09 First release.
+ 2.00a xd 12/14/09 Updated Doxygen document tags.
+ 7.0 adk 08/22/14 XScaler_IntrHandler and XScaler_SetCallBack APIs were
+ modified
This function is the interrupt handler for the Scaler driver.
-This handler reads the pending interrupt from the IER/ISR, determines the source of the interrupts, calls according callbacks, and finally clears the interrupts.
-The application is responsible for connecting this function to the interrupt system. Application beyond this driver is also responsible for providing callbacks to handle interrupts and installing the callbacks using XScaler_SetCallBack() during initialization phase. An example delivered with this driver demonstrates how this could be done.
+This handler calls callback, and finally clears the interrupts.
+The application is responsible for connecting this function to the interrupt system. Application beyond this driver is also responsible for providing callbacks to handle interrupts and installing the callbacks using XScaler_SetCallBack() during initialization phase.
Parameters:
InstancePtr
is a pointer to the XScaler instance that just interrupted.
@@ -76,81 +70,52 @@ The application is responsible for connecting this function to the interrupt sys
-This routine installs an asynchronous callback function for the given HandlerType:
-
- HandlerType Callback Function Type
- ----------------------- ---------------------------
- XSCL_HANDLER_EVENT XScaler_CallBack
- XSCL_HANDLER_ERROR XScaler_CallBack
-
HandlerType Invoked by this driver when:
- ----------------------- --------------------------------------------------
- XSCL_HANDLER_EVENT A normal event just happened. Normal events include
- frame done, Coefficient FIFO Ready and Shadow
- Register updated.
-
XSCL_HANDLER_ERROR An error just happened.
-
+This routine installs an asynchronous callback function.
Parameters:
InstancePtr
is a pointer to the XScaler instance to be worked on.
-
HandlerType
specifies which callback is to be attached.
CallBackFunc
is the address of the callback function.
CallBackRef
is a user data item that will be passed to the callback function when it is invoked.
-
Returns:
-
XST_SUCCESS when handler is installed.
XST_INVALID_PARAM when HandlerType is invalid.
-
-
Note:
Invoking this function for a handler that already has been installed replaces it with the new handler.
-
-
-
+
Returns:
None.
+
Note:
None.
+
+
+
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.
diff --git a/XilinxProcessorIPLib/drivers/scaler/doc/html/api/xscaler__selftest_8c.html b/XilinxProcessorIPLib/drivers/scaler/doc/html/api/xscaler__selftest_8c.html
new file mode 100755
index 00000000..7bbbaab4
--- /dev/null
+++ b/XilinxProcessorIPLib/drivers/scaler/doc/html/api/xscaler__selftest_8c.html
@@ -0,0 +1,72 @@
+
+
XScaler_LookupConfig returns a reference to an XScaler_Config structure based on the unique device id, DeviceId. The return value will refer to an entry in the device configuration table defined in the xscaler_g.c file.
@@ -72,7 +64,7 @@ XScaler_LookupConfig returns a reference to an xscaler_g.c) corresponding to DeviceId, or NULL if no match is found.
-
-
-
+
+
+
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.