Software Drivers

Enhance v7_0

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
 
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.