Software Drivers

xycrcb2rgb.h File Reference

#include "xycrcb2rgb_hw.h"
#include "xil_assert.h"
#include "xstatus.h"

Classes

struct  XYCrCb2Rgb_Config
struct  XYCrCb2Rgb
struct  XYCrCb2Rgb_Coef_Inputs
struct  XYCrCb2Rgb_Coef_Outputs
struct  XYCrCb2Rgb_Coefficients
#define XYCC_ACT_SIZE_FIRST   32
#define XYCC_ACT_SIZE_LAST   8192
#define XYCC_RGBMAX_MIN_FIRST   0
#define XYCC_RGBMAX_MIN_LAST   255
#define XYCC_RGBOFFSET_FIRST   0
#define XYCC_RGBOFFSET_LAST   255

Handler Types

enum  { XYCC_HANDLER_PROCSTART = 1, XYCC_HANDLER_FRAMEDONE, XYCC_HANDLER_ERROR }

Standard Types

enum  XYcc_Standards {
  XYCC_STANDARD_ITU_601_SD = 0, XYCC_STANDARD_ITU_709_NTSC, XYCC_STANDARD_ITU_709_PAL, XYCC_STANDARD_YUV,
  XYCC_STANDARD_CUSTOM
}

Output Ranges

enum  XYcc_OutputRanges { XYCC_TV_16_TO_240 = 0, XYCC_STUDIO_16_TO_235, XYCC_GRAPHICS_0_TO_255 }

Defines

#define XYCRCB2RGB_H_
#define XYCrCb2Rgb_Enable(InstancePtr)
#define XYCrCb2Rgb_Disable(InstancePtr)
#define XYCrCb2Rgb_Start   XYCrCb2Rgb_Enable
#define XYCrCb2Rgb_Stop   XYCrCb2Rgb_Disable
#define XYCrCb2Rgb_RegUpdateEnable(InstancePtr)
#define XYCrCb2Rgb_RegUpdateDisable(InstancePtr)
#define XYCrCb2Rgb_SyncReset(InstancePtr)
#define XYCrCb2Rgb_Reset(InstancePtr)
#define XYCrCb2Rgb_IntrEnable(InstancePtr, IntrType)
#define XYCrCb2Rgb_IntrDisable(InstancePtr, IntrType)
#define XYCrCb2Rgb_StatusGetPending(InstancePtr)
#define XYCrCb2Rgb_IntrGetPending(InstancePtr)
#define XYCrCb2Rgb_IntrClear(InstancePtr, IntrType)
#define XYCrCb2Rgb_Max(Num1, Num2)   (((Num1) > (Num2)) ? (Num1) : (Num2))

Typedefs

typedef void(*) XYCrCb2Rgb_CallBack (void *CallBackRef)
typedef void(*) XYCrCb2Rgb_ErrorCallBack (void *CallBackRef, u32 ErrorMask)

Functions

XYCrCb2Rgb_ConfigXYCrCb2Rgb_LookupConfig (u16 DeviceId)
int XYCrCb2Rgb_CfgInitialize (XYCrCb2Rgb *InstancePtr, XYCrCb2Rgb_Config *CfgPtr, u32 EffectiveAddr)
void XYCrCb2Rgb_EnableDbgByPass (XYCrCb2Rgb *InstancePtr)
int XYCrCb2Rgb_IsDbgByPassEnabled (XYCrCb2Rgb *InstancePtr)
void XYCrCb2Rgb_DisableDbgBypass (XYCrCb2Rgb *InstancePtr)
void XYCrCb2Rgb_EnableDbgTestPattern (XYCrCb2Rgb *InstancePtr)
int XYCrCb2Rgb_IsDbgTestPatternEnabled (XYCrCb2Rgb *InstancePtr)
void XYCrCb2Rgb_DisableDbgTestPattern (XYCrCb2Rgb *InstancePtr)
u32 XYCrCb2Rgb_GetVersion (XYCrCb2Rgb *InstancePtr)
u32 XYCrCb2Rgb_GetDbgFrameCount (XYCrCb2Rgb *InstancePtr)
u32 XYCrCb2Rgb_GetDbgLineCount (XYCrCb2Rgb *InstancePtr)
u32 XYCrCb2Rgb_GetDbgPixelCount (XYCrCb2Rgb *InstancePtr)
void XYCrCb2Rgb_Setup (XYCrCb2Rgb *InstancePtr)
void XYCrCb2Rgb_SetActiveSize (XYCrCb2Rgb *InstancePtr, u16 HSize, u16 VSize)
void XYCrCb2Rgb_GetActiveSize (XYCrCb2Rgb *InstancePtr, u16 *HSize, u16 *VSize)
void XYCrCb2Rgb_SetRGBMax (XYCrCb2Rgb *InstancePtr, u32 RGBMax)
u32 XYCrCb2Rgb_GetRGBMax (XYCrCb2Rgb *InstancePtr)
void XYCrCb2Rgb_SetRGBMin (XYCrCb2Rgb *InstancePtr, u32 RGBMin)
u32 XYCrCb2Rgb_GetRGBMin (XYCrCb2Rgb *InstancePtr)
void XYCrCb2Rgb_SetROffset (XYCrCb2Rgb *InstancePtr, u32 ROffset)
u32 XYCrCb2Rgb_GetROffset (XYCrCb2Rgb *InstancePtr)
void XYCrCb2Rgb_SetGOffset (XYCrCb2Rgb *InstancePtr, u32 GOffset)
u32 XYCrCb2Rgb_GetGOffset (XYCrCb2Rgb *InstancePtr)
void XYCrCb2Rgb_SetBOffset (XYCrCb2Rgb *InstancePtr, u32 BOffset)
u32 XYCrCb2Rgb_GetBOffset (XYCrCb2Rgb *InstancePtr)
void XYCrCb2Rgb_SetCoefs (XYCrCb2Rgb *InstancePtr, struct XYCrCb2Rgb_Coefficients *Coef)
void XYCrCb2Rgb_GetCoefs (XYCrCb2Rgb *InstancePtr, struct XYCrCb2Rgb_Coefficients *Coef)
void XYCrCb2Rgb_Select_Standard (XYCrCb2Rgb *InstancePtr, enum XYcc_Standards StandardSel, enum XYcc_OutputRanges InputRange, u32 DataWidth, struct XYCrCb2Rgb_Coef_Inputs *CoefIn)
u32 XYCrCb2Rgb_Coefficient_Translation (XYCrCb2Rgb *InstancePtr, struct XYCrCb2Rgb_Coef_Inputs *CoefIn, struct XYCrCb2Rgb_Coef_Outputs *CoefOut, u32 DataWidth, u32 MWidth)
void XYCrCb2Rgb_Select_OutputRange (XYCrCb2Rgb *InstancePtr, enum XYcc_OutputRanges Range)
int XYCrCb2Rgb_SelfTest (XYCrCb2Rgb *InstancePtr)
void XYCrCb2Rgb_IntrHandler (void *InstancePtr)
int XYCrCb2Rgb_SetCallBack (XYCrCb2Rgb *InstancePtr, u32 HandlerType, void *CallBackFunc, void *CallBackRef)


Define Documentation

#define XYCC_ACT_SIZE_FIRST   32

Active Size (VxH) range macros Starting value for H/V

#define XYCC_ACT_SIZE_LAST   8192

Ending value for H/V

#define XYCC_RGBMAX_MIN_FIRST   0

RGBMAX, RGBMIN range macros Starting value for RGBMAX/RGBMIN

#define XYCC_RGBMAX_MIN_LAST   255

Ending value for RGBMAX/RGBMIN

#define XYCC_RGBOFFSET_FIRST   0

ROFFSET, GOFFSET, BOFFSET range macros Starting value for ROFFSET/ GOFFSET/BOFFSET

#define XYCC_RGBOFFSET_LAST   255

Ending value for ROFFSET/ GOFFSET/BOFFSET

#define XYCrCb2Rgb_Disable ( InstancePtr   ) 

Value:

XYCrCb2Rgb_WriteReg((InstancePtr)->Config.BaseAddress, \
                (XYCC_CONTROL_OFFSET), \
                (XYCrCb2Rgb_ReadReg((InstancePtr)->Config.BaseAddress, \
                        (XYCC_CONTROL_OFFSET)) & (~(XYCC_CTL_SW_EN_MASK))))
This macro disables the YCrCb2Rgb core.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
C-style signature: void XYCrCb2Rgb_Disable(*XYCrCb2Rgb InstancePtr)

#define XYCrCb2Rgb_Enable ( InstancePtr   ) 

Value:

XYCrCb2Rgb_WriteReg((InstancePtr)->Config.BaseAddress, \
                        (XYCC_CONTROL_OFFSET), \
                XYCrCb2Rgb_ReadReg((InstancePtr)->Config.BaseAddress, \
                        (XYCC_CONTROL_OFFSET)) | (XYCC_CTL_SW_EN_MASK))
This macro enables the YCrCb2Rgb core.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
C-style signature: void XYCrCb2Rgb_Enable(*XYCrCb2Rgb InstancePtr)

#define XYCRCB2RGB_H_

Prevent circular inclusions by using protection macros

#define XYCrCb2Rgb_IntrClear ( InstancePtr,
IntrType   ) 

Value:

XYCrCb2Rgb_WriteReg((InstancePtr)->Config.BaseAddress, \
                        (XYCC_STATUS_OFFSET), \
                                (IntrType) & (XYCC_IXR_ALLINTR_MASK))
This function macro clears/acknowledges pending interrupts of the YCRCB2RGB core in the Status register. Bit positions of 1 will be cleared.

Parameters:
InstancePtr is a pointer to the YCRCB2RGB core instance to be worked on.
IntrType is the pending interrupts to clear/acknowledge. Use OR'ing of XYCC_IXR_*_MASK constants defined in xycrcb2rgb_hw.h to create this parameter value.
Returns:
None.
Note:
C-style signature: void XYCrCb2Rgb_IntrClear(XYCC *InstancePtr, u32 IntrType)

#define XYCrCb2Rgb_IntrDisable ( InstancePtr,
IntrType   ) 

Value:

XYCrCb2Rgb_WriteReg((InstancePtr)->Config.BaseAddress, \
                (XYCC_IRQ_EN_OFFSET),\
                        XYCrCb2Rgb_ReadReg((InstancePtr)->Config.BaseAddress, \
                                (XYCC_IRQ_EN_OFFSET)) & \
                                ((~(IntrType)) & (XYCC_IXR_ALLINTR_MASK)))
This function macro disables individual interrupts of the YCRCB2RGB core by updating the IRQ_ENABLE register.

Parameters:
InstancePtr is a pointer to the YCrCb2Rgb core instance to be worked on.
IntrType is the bit-mask of the interrupts to be disabled. Bit positions of 1 will be disabled. Bit positions of 0 will keep the previous setting. This mask is formed by OR'ing XYCC_IXR_*_MASK bits defined in xycrcb2rgb_hw.h.
Returns:
None
Note:
C-style signature: void XYCrCb2Rgb_IntrDisable(XYCrCb2Rgb *InstancePtr, u32 IntrType)
Any other interrupt not covered by parameter IntrType, if enabled before this macro is called, will remain enabled.

#define XYCrCb2Rgb_IntrEnable ( InstancePtr,
IntrType   ) 

Value:

XYCrCb2Rgb_WriteReg((InstancePtr)->Config.BaseAddress, \
                (XYCC_IRQ_EN_OFFSET), (((IntrType) & \
                        (XYCC_IXR_ALLINTR_MASK)) | \
                (XYCrCb2Rgb_ReadReg((InstancePtr)->Config.BaseAddress, \
                                (XYCC_IRQ_EN_OFFSET)))))
This function macro enables individual interrupts of the YCRCB2RGB core by updating the IRQ_ENABLE register.

Parameters:
InstancePtr is a pointer to the YCrCb2Rgb core instance to be worked on.
IntrType is the bit-mask of the interrupts to be enabled. Bit positions of 1 will be enabled. Bit positions of 0 will keep the previous setting. This mask is formed by OR'ing XYCC_IXR_*_MASK bits defined in xycrcb2rgb_hw.h.
Returns:
None
Note:
C-style signature: void XYCrCb2Rgb_IntrEnable(XYCrCb2Rgb *InstancePtr, u32 IntrType)
The existing enabled interrupt(s) will remain enabled.

#define XYCrCb2Rgb_IntrGetPending ( InstancePtr   ) 

Value:

XYCrCb2Rgb_ReadReg((InstancePtr)->Config.BaseAddress, \
                        (XYCC_IRQ_EN_OFFSET)) & \
                (XYCrCb2Rgb_ReadReg((InstancePtr)->Config.BaseAddress, \
                                (XYCC_STATUS_OFFSET)) & \
                                        ((u32)(XYCC_IXR_ALLINTR_MASK)))
This function macro returns the pending interrupts of the YCRCB2RGB core for the interrupts that have been enabled.

Parameters:
InstancePtr is a pointer to the YCrCb2Rgb core instance to be worked on.
Returns:
The pending interrupts of the YCRCB2RGB core. Use XYCC_IXR_*_MASK constants defined in xycrcb2rgb_hw.h to interpret this value. The returned value is a logical AND of the contents of the STATUS register and the IRQ_ENABLE register.
Note:
C-style signature: u32 XYCC_IntrGetPending(XYCC *InstancePtr)

#define XYCrCb2Rgb_Max ( Num1,
Num2   )     (((Num1) > (Num2)) ? (Num1) : (Num2))

This macro identifies maximum number from given numbers.

Parameters:
Num1 is a a u32 number.
Num2 is a a u32 number.
Returns:
Maximum number from given two numbers.
Note:
C-style signature: u32 XYCrCb2Rgb_Max(u32 Num1, u32 Num2)

#define XYCrCb2Rgb_RegUpdateDisable ( InstancePtr   ) 

Value:

XYCrCb2Rgb_WriteReg((InstancePtr)->Config.BaseAddress, \
                (XYCC_CONTROL_OFFSET), \
                (XYCrCb2Rgb_ReadReg((InstancePtr)->Config.BaseAddress, \
                        (XYCC_CONTROL_OFFSET)) & (~(XYCC_CTL_RUE_MASK))))
This macro disables copying from updated processor register values to the active set at the end of each AXI-Stream frame.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
C-style signature: void XYCrCb2Rgb_RegUpdateDisable(*XYCrCb2Rgb InstancePtr)

#define XYCrCb2Rgb_RegUpdateEnable ( InstancePtr   ) 

Value:

XYCrCb2Rgb_WriteReg((InstancePtr)->Config.BaseAddress, \
                (XYCC_CONTROL_OFFSET), \
                (XYCrCb2Rgb_ReadReg((InstancePtr)->Config.BaseAddress, \
                        (XYCC_CONTROL_OFFSET)) | (XYCC_CTL_RUE_MASK)))
This macro enables copying from updated processor register values to the active set at the end of each AXI-Stream frame.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
C-style signature: void XYCrCb2Rgb_RegUpdateEnable(*XYCrCb2Rgb InstancePtr)

#define XYCrCb2Rgb_Reset ( InstancePtr   ) 

Value:

XYCrCb2Rgb_WriteReg((InstancePtr)->Config.BaseAddress, \
                        (XYCC_CONTROL_OFFSET), (XYCC_CTL_RESET_MASK))
This macro resets the YCrCb2Rgb core.. This reset effects the core immediately and may cause image tearing.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
C-style signature: void XYCrCb2Rgb_Reset(XYCrCb2Rgb *InstancePtr)

#define XYCrCb2Rgb_Start   XYCrCb2Rgb_Enable

This macro starts the YCrCb2Rgb core.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
C-style signature: void XYCrCb2Rgb_Start(*XYCrCb2Rgb InstancePtr)

#define XYCrCb2Rgb_StatusGetPending ( InstancePtr   ) 

Value:

XYCrCb2Rgb_ReadReg((InstancePtr)->Config.BaseAddress, \
                (XYCC_STATUS_OFFSET)) & (XYCC_IXR_ALLINTR_MASK)
This function macro returns the pending interrupt status of the YCRCB2RGB core read from the Status register.

Parameters:
InstancePtr is a pointer to the YCrCb2Rgb core instance to be worked on.
Returns:
The status of pending interrupts of the YCRCB2RGB core. Use XYCC_IXR_*_MASK constants defined in xycrcb2rgb_hw.h to interpret this value.
Note:
C-style signature: XYCrCb2Rgb_StatusGePending(XYCC *InstancePtr)

#define XYCrCb2Rgb_Stop   XYCrCb2Rgb_Disable

This macro stops the YCrCb2Rgb core.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
C-style signature: void XYCrCb2Rgb_Stop(*XYCrCb2Rgb InstancePtr)

#define XYCrCb2Rgb_SyncReset ( InstancePtr   ) 

Value:

XYCrCb2Rgb_WriteReg((InstancePtr)->Config.BaseAddress, \
                (XYCC_CONTROL_OFFSET), (XYCC_CTL_AUTORESET_MASK))
This macro resets a the YCrCb2Rgb core, but differs from XYCrCb2Rgb_Reset() in that it automatically synchronizes to the VBlank_in input of the core to prevent tearing.

On the next rising-edge of VBlank_in following a call to XYCrCb2Rgb_SyncReset(), all of the core's configuration registers and outputs will be reset, then the reset flag will be immediately released, allowing the core to immediately resume default operation.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
C-style signature: void XYCrCb2Rgb_SyncReset(*XYCrCb2Rgb InstancePtr)


Typedef Documentation

typedef void(*) XYCrCb2Rgb_CallBack(void *CallBackRef)

Callback type for all interrupts except error interrupt.

Parameters:
CallBackRef 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.
Returns:
None.
Note:
None.

typedef void(*) XYCrCb2Rgb_ErrorCallBack(void *CallBackRef, u32 ErrorMask)

Callback type for error interrupt.

Parameters:
CallBackRef 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.
ErrorMask is a bit mask indicating the cause of the error. Its value equals 'OR'ing one or more XYCC_IXR_*_MASK values defined in xycrcb2rgb_hw.h.
Returns:
None.
Note:
None.


Enumeration Type Documentation

anonymous enum

These constants specify different types of handler and used to differentiate interrupt requests from core.

Enumerator:
XYCC_HANDLER_PROCSTART  A processing start event interrupt type
XYCC_HANDLER_FRAMEDONE  A frame done event interrupt type
XYCC_HANDLER_ERROR  An error condition interrupt type

enum XYcc_OutputRanges

These constants specify different ranges used for studio equipment, television and computer graphics respectively.

Enumerator:
XYCC_TV_16_TO_240  16 to 240, for Television.
XYCC_STUDIO_16_TO_235  16 to 235, for Studio Equipment.
XYCC_GRAPHICS_0_TO_255  0 to 255, for Computer Graphics.

enum XYcc_Standards

These constants specify different types of standards used to represent standard color encoding.

Enumerator:
XYCC_STANDARD_ITU_601_SD  Standard ITU 601 SD.
XYCC_STANDARD_ITU_709_NTSC  Standard ITU 709 NTSC.
XYCC_STANDARD_ITU_709_PAL  Standard ITU 709 PAL.
XYCC_STANDARD_YUV  Standard YUV.
XYCC_STANDARD_CUSTOM  Standard Custom.


Function Documentation

int XYCrCb2Rgb_CfgInitialize ( XYCrCb2Rgb InstancePtr,
XYCrCb2Rgb_Config CfgPtr,
u32  EffectiveAddr 
)

This function initializes the YCrCb2Rgb core. This function must be called prior to using the YCrCb2Rgb core. Initialization of the YCrCb2Rgb includes setting up the instance data and ensuring the hardware is in a quiescent state.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
CfgPtr is a reference to a structure containing information about a specific XYCrCb2Rgb driver.
EffectiveAddr is the core base address in the virtual memory address space. The caller is responsible for keeping the address mapping from EffectiveAddr to the core physical base address unchanged once this function is invoked. Unexpected errors may occur if the address mapping changes after this function is called. If address translation is not used, pass in the physical address instead.
Returns:
- XST_SUCCESS if initialization was successful.
Note:
None.

u32 XYCrCb2Rgb_Coefficient_Translation ( XYCrCb2Rgb InstancePtr,
struct XYCrCb2Rgb_Coef_Inputs CoefIn,
struct XYCrCb2Rgb_Coef_Outputs CoefOut,
u32  DataWidth,
u32  MWidth 
)

This function translates the XYCrCb2Rgb_Coef_Inputs structure into the XYCrCb2Rgb_Coef_Outputs structure that can be used to program the core's registers. The XYCrCb2Rgb_Coef_Inputs structure uses the same values as the core's GUIs. The XYCrCb2Rgb_Coef_Outputs structure uses the values that can be programmed into the core's registers.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgbb instance.
CoefIn specifies a pointer to a XYCrCb2Rgb_Coef_Inputs structure to be translated.
CoefOut specifies a pointer to a XYCrCb2Rgb_Coef_Outputs structure with translated values.
DataWidth specifies a valid range of [8,10,12,16] that needs to be set.
MWidth specifies a valid range from min(32, DataWidth + 17)
Returns:
RetVal, returns value with following bit information:
  • bit(0) = 1 = data width outside range [8, 10, 12, 16]
  • bit(1) = Acoef + Bcoef > 1.0
  • bit(2) = Y Offset outside data width range: [-2^DataWidth, (2^DataWidth)-1].
  • bit(3) = Cb Offset outside data width range: [-2^DataWidth, (2^DataWidth)-1].
  • bit(4) = Cr Offset outside data width range: [-2^DataWidth, (2^DataWidth)-1].
  • bit(5) = RGB Max outside data width range: [0, (2^DataWidth)-1].
  • bit(6) = RGB Min outside data width range: [0, (2^DataWidth)-1].
Note:
Floating point coefficients are represented in 17-bit fixed point format where 17 bits indicates integer portion (Mantissa) of the number exclusive of sign bit.

void XYCrCb2Rgb_DisableDbgBypass ( XYCrCb2Rgb InstancePtr  ) 

This function disables Bypass mode of the core.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
Debug functionality should be enabled.

void XYCrCb2Rgb_DisableDbgTestPattern ( XYCrCb2Rgb InstancePtr  ) 

This function disables debug test pattern mode.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
Debug functionality should be enabled.

void XYCrCb2Rgb_EnableDbgByPass ( XYCrCb2Rgb InstancePtr  ) 

This function sets the bypass bit of control register to switch the core to bypass mode if debug is enabled in the IP.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
Debug functionality should be enabled.

void XYCrCb2Rgb_EnableDbgTestPattern ( XYCrCb2Rgb InstancePtr  ) 

This function switches the core to test-pattern generator mode if debug feature is enabled.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
Debug functionality should be enabled.

void XYCrCb2Rgb_GetActiveSize ( XYCrCb2Rgb InstancePtr,
u16 *  HSize,
u16 *  VSize 
)

This function gets the active H/V sizes of the YCrCb2Rgb core from active size register.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
HSize is a pointer to 16-bit variable in which the number of Active Pixels per scanline is returned within the range [32, 8192].
VSize is a pointer to 16-bit variable in which the number of Active Lines per frame is returned within the range [32, 8192].
Returns:
None.
Note:
None.

u32 XYCrCb2Rgb_GetBOffset ( XYCrCb2Rgb InstancePtr  ) 

This function gets offset compensation value from the Blue channel.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
BOffset is a compensation value within the range [0, 255] from the Blue channel.
Note:
None.

void XYCrCb2Rgb_GetCoefs ( XYCrCb2Rgb InstancePtr,
struct XYCrCb2Rgb_Coefficients Coef 
)

This function returns A, B, C and D coefficients.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgbb instance.
Coef specifies a pointer to XYCrCb2Rgb_Coefficients structure in which ACoef, BCoef, CCoef, DCoef members value will be updated within the range [0.0, 1.0].
Returns:
None.
Note:
Floating point coefficients are represented in 17-bit fixed point format where 17 bits indicates integer portion (Mantissa) of the number exclusive of sign bit.

u32 XYCrCb2Rgb_GetDbgFrameCount ( XYCrCb2Rgb InstancePtr  ) 

This function returns the frame count, the number of frames processed since power-up. This is available only if the debugging feature is enabled.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
DbgFrameCount, number of frames processed since power-up.
Note:
Debug functionality should be enabled.

u32 XYCrCb2Rgb_GetDbgLineCount ( XYCrCb2Rgb InstancePtr  ) 

This function returns Line count, the number of lines processed since power-up. This is available only if the debugging feature is enabled.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
DbgLineCount, number of lines processed since power-up.
Note:
Debug functionality should be enabled.

u32 XYCrCb2Rgb_GetDbgPixelCount ( XYCrCb2Rgb InstancePtr  ) 

This function returns the pixel count, the number of pixels processed since power up. This is available only if the debugging feature is enabled.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
DbgPixelCount, number of pixels processed since power-up.
Note:
Debug functionality should be enabled.

u32 XYCrCb2Rgb_GetGOffset ( XYCrCb2Rgb InstancePtr  ) 

This function gets offset compensation value from the Green channel.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
GOffset is a compensation value within the range [0, 255] from the Green channel.
Note:
None.

u32 XYCrCb2Rgb_GetRGBMax ( XYCrCb2Rgb InstancePtr  ) 

This function gets the maximum value on RGB channels of the output.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
RGBMax is the maximum value within the range [0, 255] from RGB channels of the output.
Note:
Clipping functionality should be enabled.

u32 XYCrCb2Rgb_GetRGBMin ( XYCrCb2Rgb InstancePtr  ) 

This function gets the minimum value on RGB channels of the output.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
RGBMin is the minimum value within the range [0, 255] from RGB channels of the output.
Note:
Clamping functionality should be enabled.

u32 XYCrCb2Rgb_GetROffset ( XYCrCb2Rgb InstancePtr  ) 

This function gets offset compensation value from the Red channel.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
ROffset is a compensation value within the range [0, 255] from the Red channel.
Note:
None.

u32 XYCrCb2Rgb_GetVersion ( XYCrCb2Rgb InstancePtr  ) 

This function facilitates software identification of exact version of the YCrCb2rGB hardware (h/w).

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
Version, contents of a Version register.
Note:
None.

void XYCrCb2Rgb_IntrHandler ( void *  InstancePtr  ) 

This function is the interrupt handler for the YCRCB2RGB core.

This handler reads the pending interrupt from the IER(IRQ_ENABLE register) or ISR (STATUS register), 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 XYCrCb2Rgb_SetCallBack() during initialization phase.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance that just interrupted.
Returns:
None.
Note:
Interrupt interface (HasIntcIf) should be enabled.

int XYCrCb2Rgb_IsDbgByPassEnabled ( XYCrCb2Rgb InstancePtr  ) 

This function returns the current bypass mode of the core.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
  • TRUE if Bypass mode is enabled.
  • FALSE if Bypass mode is not enabled.
Note:
Debug functionality should be enabled.

int XYCrCb2Rgb_IsDbgTestPatternEnabled ( XYCrCb2Rgb InstancePtr  ) 

This function returns the test-pattern generator mode (enabled or not), if debug feature is enabled.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
  • TRUE if Test-pattern mode is enabled.
  • FALSE if Test-pattern mode is not enabled.
Note:
Debug functionality should be enabled.

XYCrCb2Rgb_Config* XYCrCb2Rgb_LookupConfig ( u16  DeviceId  ) 

This function returns a reference to an XYCrCb2Rgb_Config structure based on the unique core id, DeviceId. The return value will refer to an entry in the core configuration table defined in the xycrcb2rgb_g.c file.

Parameters:
DeviceId is the unique core ID of the core for the lookup operation.
Returns:
XYCrCb2Rgb_LookupConfig returns a reference to a config record in the configuration table (in xycrcb2rgb_g.c) corresponding to DeviceId, or NULL if no match is found.
Note:
None.

void XYCrCb2Rgb_Select_OutputRange ( XYCrCb2Rgb InstancePtr,
enum XYcc_OutputRanges  Range 
)

This function governs the range of outputs R, G and B by affecting the conversion coefficients as well as the clipping and clamping values.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Range needs to be set from the enum XYcc_OutputRanges values as: 0 = XYCC_TV_16_TO_240, 1 = XYCC_STUDIO_16_TO_235, 2 = XYCC_GRAPHICS_0_TO_255.
Returns:
None.
Note:
None.

void XYCrCb2Rgb_Select_Standard ( XYCrCb2Rgb InstancePtr,
enum XYcc_Standards  StandardSel,
enum XYcc_OutputRanges  InputRange,
u32  DataWidth,
struct XYCrCb2Rgb_Coef_Inputs CoefIn 
)

This function populates an XYCrCb2Rgb_Coef_Inputs structure with the values from the selected video standard.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgbb instance.
StandardSel needs to be set from enum XYcc_Standards value as : 0 = XYCC_STANDARD_ITU_601_SD 1 = XYCC_STANDARD_ITU_709_NTSC 2 = XYCC_STANDARD_ITU_709_PAL 3 = XYCC_STANDARD_YUV.
InputRange needs to be set from enum XYcc_OutputRanges value as: 0 = XYCC_TV_16_TO_240, 1 = XYCC_STUDIO_16_TO_235, 2 = XYCC_GRAPHICS_0_TO_255.
DataWidth specifies the valid range of [8,10,12,16] that needs to be set.
CoefIn specifies a pointer to a XYCrCb2Rgb_Coef_Inputs structure which is populated with the values from selected video standard.
Returns:
None.
Note:
Floating point coefficients are represented in 17-bit fixed point format where 17 bits indicates integer portion (Mantissa) of the number exclusive of sign bit.

int XYCrCb2Rgb_SelfTest ( XYCrCb2Rgb InstancePtr  ) 

This function reads Version register of YCRCB2RGB core and compares with zero as part of self test.

Parameters:
InstancePtr is a pointer to the XCrCb2Rgb instance.
Returns:
  • XST_SUCCESS if the Version register read test was successful.
  • XST_FAILURE if the Version register read test failed.
Note:
None.

void XYCrCb2Rgb_SetActiveSize ( XYCrCb2Rgb InstancePtr,
u16  HSize,
u16  VSize 
)

This function sets active H/V sizes in the active frame size register.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
HSize specifies the number of Active Pixels per scanline that needs to be set within the range [32, 8192].
VSize specifies the number of Active Lines per frame that needs to be set within the range [32, 8192].
Returns:
None.
Note:
None.

void XYCrCb2Rgb_SetBOffset ( XYCrCb2Rgb InstancePtr,
u32  BOffset 
)

This function sets offset compensation value on the Blue channel.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
BOffset is a compensation value within the range [0, 255] to be set on the Blue channel.
Returns:
None.
Note:
None.

int XYCrCb2Rgb_SetCallBack ( XYCrCb2Rgb InstancePtr,
u32  HandlerType,
void *  CallBackFunc,
void *  CallBackRef 
)

This routine installs an asynchronous callback function for the given HandlerTypes.

 HandlerType              Callback Function Type
 -----------------------  ---------------------------
 XYCC_HANDLER_PROCSTART   ProcStartCallBack.
 XYCC_HANDLER_FRAMEDONE   FrameDoneCallBack.
 XYCC_HANDLER_ERROR       ErrCallBack.
 

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb 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.

void XYCrCb2Rgb_SetCoefs ( XYCrCb2Rgb InstancePtr,
struct XYCrCb2Rgb_Coefficients Coef 
)

This function sets A, B, C and D coefficients.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Coef specifies a pointer to XYCrCb2Rgb_Coefficients structure in which ACoef, BCoef, CCoef, DCoef members value within the range [0.0, 1.0] that needs to be set.
Returns:
None.
Note:
Floating point coefficients are represented in 17-bit fixed point format where 17 bits indicates integer portion (Mantissa) of the number exclusive of sign bit.

void XYCrCb2Rgb_SetGOffset ( XYCrCb2Rgb InstancePtr,
u32  GOffset 
)

This function sets offset compensation value on the Green channel.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
GOffset is a compensation value within the range [0, 255] to be set on the Green channel.
Returns:
None.
Note:
None.

void XYCrCb2Rgb_SetRGBMax ( XYCrCb2Rgb InstancePtr,
u32  RGBMax 
)

This function sets the RGB maximum value on YCrCb2Rgb channels of the output.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
RGBMax is the maximum value within the range [0, 255] on the RGB channels of the output.
Returns:
None.
Note:
Clipping functionality should be enabled.

void XYCrCb2Rgb_SetRGBMin ( XYCrCb2Rgb InstancePtr,
u32  RGBMin 
)

This function sets minimum value on RGB channels of the output.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
RGBMin is the minimum value within the range [0, 255] on RGB channels of the output.
Returns:
None.
Note:
Clamping functionality should be enabled.

void XYCrCb2Rgb_SetROffset ( XYCrCb2Rgb InstancePtr,
u32  ROffset 
)

This function sets offset compensation value on the Red channel.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
ROffset is compensation value within the range [0, 255] to be set on the Red channel.
Returns:
None.
Note:
None.

void XYCrCb2Rgb_Setup ( XYCrCb2Rgb InstancePtr  ) 

This function sets up double buffered active size register and enables the register update.

Parameters:
InstancePtr is a pointer to the XYCrCb2Rgb instance.
Returns:
None.
Note:
None.

Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.