enhance: Main Page

| enhance Xilinx SDK Drivers API Documentation

- Overview
- Data Structures
- APIs
- File List
- Examples

enhance Documentation

This header file contains identifiers and register-level driver functions (or macros), range macros, structure typedefs that can be used to access the Image Statistic core instance.The Image Enhancement core offers noise reduction and/or edge enhancement. For edge enhancement, optional anti-halo and anti-alias post-processing modules are available to reduce image artifacts that can appear from the high-pass filtering of the edge enhancement filters. The amount of noise reduction and edge enhancement is controlled through user parameters. There are two variations of the algorithm offered to choose between high performance and minimal resource usage. This core works on YCbCr 4:4:4 and 4:2:2 data. The core is capable of a maximum resolution of 7680 columns by 7680 rows with 8, 10, 12, or 16 bits per pixel and supports the bandwidth necessary for High-definition (1080p60) resolutions in all Xilinx FPGA device families. Higher resolutions can be supported in Xilinx high-performance device families.

Initialization & Configuration

The device driver enables higher layer software (e.g., an application) to communicate to the Enhance core.

XEnhance_CfgInitialize() API is used to initialize the Enhance core. The user needs to first call the XEnhance_LookupConfig() API which returns the Configuration structure pointer which is passed as a parameter to the XEnhance_CfgInitialize() API.

Interrupts

The driver provides an interrupt handler XEnhance_IntrHandler for handling the interrupt from the Enhance core. The users of this driver have to register this handler with the interrupt system and provide the callback functions by using XEnhance_SetCallBack API.

Virtual Memory

This driver supports Virtual Memory. The RTOS is responsible for calculating the correct device base address in Virtual Memory space.

Threads

This driver is not thread safe. Any needs for threads or thread mutual exclusion must be satisfied by the layer above this driver.

Asserts

Asserts are used within all Xilinx drivers to enforce constraints on argument values. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development.

Building the driver

The XEnhance driver is composed of several source files. This allows the user to build and link only those parts of the driver that are necessary.

    MODIFICATION HISTORY:

    Ver   Who Date     Changes

    2.00a vc  12/14/10 Updated for ENHANCE V2.0
    3.00a rc  09/11/11 Updated for ENHANCE V3.0
    4.00a vyc 04/24/12 Updated for ENHANCE V4.00.a
                       Converted from xio.h to xil_io.h, translating
                       basic type, MB cache functions, exceptions and
                       assertion to xil_io format.
    5.00a vyc 06/19/13 Updated for ENHANCE V8.0
                       New edge enhancement algorithm and registers
                       Noise reduction support added
    6.0   adk 19/12/13 Updated as per the New Tcl API's
    7.0   adk 02/19/14 Changed the filename from enhance.h to xenhance.h.
                       Changes in xenhance.h:
                       Removed the following macros
                       ENHANCE_Enable, ENHANCE_Disable, ENHANCE_RegUpdateEnable,
                       ENHANCE_RegUpdateDisable, ENHANCE_Reset,
                       ENHANCE_AutoSyncReset

                       Added the following function macros
                       XEnhance_Enable, XEnhance_Disable,
                       XEnhance_RegUpdateDisable, XEnhance_RegUpdateDisable
                       XEnhance_Reset, XEnhance_SyncReset, XEnhance_IntrEnable
                       XEnhance_IntrDisable, XEnhance_StatusGetPending
                       XEnhance_IntrGetPending, XEnhance_IntrClear

                       Added the following type definitions:
                       XEnhance_Config and XEnhance structures.
                       XEnhance_CallBack and XEnhance_ErrorCallBack.

                       Changes in xenhance.c:
                       Modified the following functions
                       XENHANCE_CfgInitialize -> XEnhance_CfgInitialize
                       XENHANCE_Setup -> XEnhance_Setup

                       Implemented the following functions:
                       XEnhance_CfgInitialize, XEnhance_Setup,
                       XEnhance_GetVersion, XEnhance_EnableDbgByPass,
                       XEnhance_IsDbgByPassEnabled, XEnhance_DisableDbgBypass
                       XEnhance_EnableDbgTestPattern,
                       XEnhance_IsDbgTestPatternEnabled
                       XEnhance_DisableDbgTestPattern
                       XEnhance_GetDbgFrameCount, XEnhance_GetDbgLineCount,
                       XEnhance_GetDbgPixelCount, XEnhance_SetActiveSize,
                       XEnhance_GetActiveSize, XEnhance_SetNoiseThreshold,
                       XEnhance_GetNoiseThreshold, XEnhance_SetEdgeStrength,
                       XEnhance_GetEdgeStrength, XEnhance_SetHaloSuppress
                       XEnhance_GetHaloSuppress.

                       Changes in xenhance_hw.h:
                       Added the register offsets and bit masks for the
                       registers and added backward compatibility for macros.

                       Changes in xenhance_intr.c:
                       Implemented the following functions
                       XEnhance_IntrHandler
                       XEnhance_SetCallBack

                       Changes in xenhance_sinit.c:
                       Implemented the following function
                       XEnhance_LookupConfig

                       Changes in xenhance_selftest.c:
                       Implemented the following function
                       XEnhance_SelfTest
    7.1   ms  01/31/17 Updated the parameter naming from
                       XPAR_ENHANCE_NUM_INSTANCES to
                       XPAR_XENHANCE_NUM_INSTANCES to avoid compilation
                       failure for XPAR_ENHANCE_NUM_INSTANCES
                       as the tools are generating
                       XPAR_XENHANCE_NUM_INSTANCES in the generated
                       xenhance_g.c for fixing MISRA-C files. This is a
                       fix for CR-967548 based on the update in the tools.
          ms  03/17/17 Added readme.txt file in examples folder for doxygen
                       generation.