Video and Vision Processing Suite Intel® FPGA IP User Guide

ID 683329
Date 9/30/2024
Public
Document Table of Contents
1. About the Video and Vision Processing Suite 2. Getting Started with the Video and Vision Processing IPs 3. Video and Vision Processing IPs Functional Description 4. Video and Vision Processing IP Interfaces 5. Video and Vision Processing IP Registers 6. Video and Vision Processing IPs Software Programming Model 7. Protocol Converter Intel® FPGA IP 8. 1D LUT Intel® FPGA IP 9. 3D LUT Intel® FPGA IP 10. Adaptive Noise Reduction Intel® FPGA IP 11. Advanced Test Pattern Generator Intel® FPGA IP 12. AXI-Stream Broadcaster Intel® FPGA IP 13. Bits per Color Sample Adapter Intel® FPGA IP 14. Black Level Correction Intel® FPGA IP 15. Black Level Statistics Intel® FPGA IP 16. Chroma Key Intel® FPGA IP 17. Chroma Resampler Intel® FPGA IP 18. Clipper Intel® FPGA IP 19. Clocked Video Input Intel® FPGA IP 20. Clocked Video to Full-Raster Converter Intel® FPGA IP 21. Clocked Video Output Intel® FPGA IP 22. Color Plane Manager Intel® FPGA IP 23. Color Space Converter Intel® FPGA IP 24. Defective Pixel Correction Intel® FPGA IP 25. Deinterlacer Intel® FPGA IP 26. Demosaic Intel® FPGA IP 27. FIR Filter Intel® FPGA IP 28. Frame Cleaner Intel® FPGA IP 29. Full-Raster to Clocked Video Converter Intel® FPGA IP 30. Full-Raster to Streaming Converter Intel® FPGA IP 31. Genlock Controller Intel® FPGA IP 32. Generic Crosspoint Intel® FPGA IP 33. Genlock Signal Router Intel® FPGA IP 34. Guard Bands Intel® FPGA IP 35. Histogram Statistics Intel® FPGA IP 36. Interlacer Intel® FPGA IP 37. Mixer Intel® FPGA IP 38. Pixels in Parallel Converter Intel® FPGA IP 39. Scaler Intel® FPGA IP 40. Stream Cleaner Intel® FPGA IP 41. Switch Intel® FPGA IP 42. Text Box Intel® FPGA IP 43. Tone Mapping Operator Intel® FPGA IP 44. Test Pattern Generator Intel® FPGA IP 45. Unsharp Mask Intel® FPGA IP 46. Video and Vision Monitor Intel FPGA IP 47. Video Frame Buffer Intel® FPGA IP 48. Video Frame Reader Intel FPGA IP 49. Video Frame Writer Intel FPGA IP 50. Video Streaming FIFO Intel® FPGA IP 51. Video Timing Generator Intel® FPGA IP 52. Vignette Correction Intel® FPGA IP 53. Warp Intel® FPGA IP 54. White Balance Correction Intel® FPGA IP 55. White Balance Statistics Intel® FPGA IP 56. Design Security 57. Document Revision History for Video and Vision Processing Suite User Guide

28.6. Frame Cleaner IP Software API

The IP has a software driver for software control of the IP at run time. The IP does not fit any of the generic device models provided by the Nios II HAL. It exposes a set of dedicated accessors to the control and status registers. The driver structure inherits the base driver structure so all common methods described in Video and Vision Processing IPs Software API are applicable.

Register definition header file: intel_vvp_cleaner_regs.h

Include file: intel_vvp_cleaner.h

Table 529.  Frame Cleaner IP Software API
Name Description
intel_vvp_cleaner_init Initialize the Frame Cleaner instance
Intel_vvp_core_* Accessors defined in Video and Vision Processing IPs Software Programming Model
intel_vvp_cleaner_get_lite_mode Returns if lite mode is on.
intel_vvp_cleaner_get_debug_enabled Returns if debug features is on.
intel_vvp_cleaner_uses_custom_min_max Returns whether the IP sets its own limit on the dimensions of field.
intel_vvp_cleaner_get_min_width Returns the minimum width
intel_vvp_cleaner_get_max_width Returns the maximum width
intel_vvp_cleaner_get_min_height Returns the minimum height
intel_vvp_cleaner_get_max_height Returns the maximum height
intel_vvp_cleaner_is_running Returns if the IP is processing data
intel_vvp_cleaner_is_clipping Returns if the IP is clipping lines
intel_vvp_cleaner_is_padding Returns if the IP is padding lines
intel_vvp_cleaner_previous_field_clipped Returns if the previous field is clipped
intel_vvp_cleaner_previous_field_padded Returns is the previous field was padded
intel_vvp_cleaner_get_status Reads the status register
intel_vvp_cleaner_get_field_num Returns the last image info field number in Full mode
intel_vvp_cleaner_get_field_count Returns the current field counter value
intel_vvp_cleaner_get_clipped_field_count Returns the number of fields clipped
intel_vvp_cleaner_get_padded_field_count Returns the number of fields padded
intel_vvp_cleaner_get_previous_field_line_count Returns the line counter value
intel_vvp_cleaner_get_line_width Returns the width counter value
intel_vvp_cleaner_reset_debug_counters Resets all debug counters to zero

intel_vvp_cleaner_init

Prototype
int intel_vvp_cleaner_init(intel_vvp_cleaner_instance *instance, intel_vvp_core_base base);
Description
Initializes a frame cleaner instance. The initialization stops early if the vendor ID or product ID read at the base address are not a match or if the register map version is not supported. Otherwise, the function proceeds to read and store the IP compile-time parameterization. The instance is not fully initialized and the application should not use it further if returning a non-zero error code.
Arguments

instance – pointer to the intel_vvp_cleaner_instance software driver instance structure

base – base address of the register map

Returns

kIntelVvpCoreOk (0) in case of success, a negative error code in case of error

kIntelVvpCoreVidErr if the vendor id of the core is not the IntelFPGA vendor ID (0x6AF7).

kIntelVvpCorePidErr if the product_id does not match with the Frame Cleaner product ID

kIntelVvpCoreInstanceErr if the instance is a null pointer

kIntelVvpCleanerRegMapVersionErr if the register map is not supported

intel_vvp_cleaner_get_lite_mode

Prototype
bool intel_vvp_cleaner_get_lite_mode(intel_vvp_cleaner_instance *instance);
Description
Returns the value of the LITE_MODE register. The instance must be a valid intel_vvp_cleaner_instance fully initialized
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
true if the IP is parameterized in lite mode

intel_vvp_cleaner_get_debug_enabled

Prototype
bool intel_vvp_cleaner_get_debug_enabled(intel_vvp_cleaner_instance *instance);
Description
Returns the value of the DEBUG_ENABLED register. The instance must be a valid intel_vvp_cleaner_instance fully initialized.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
true if the IP is parameterized with debug features enabled

Intel_vvp_cleaner_uses_custom_min_max

Prototype
bool Intel_vvp_ cleaner_uses_custom_min_max(intel_vvp_cleaner_instance *instance);
Description
Returns the value of the CUSTOM_MIN_MAX register. The instance must be a valid intel_vvp_cleaner_instance fully initialized.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
True if the frame cleaner is configured with user-specified minimum and maximum dimension values

intel_vvp_cleaner_get_min_width

Prototype
uint32_t intel_vvp_cleaner_get_min_width(intel_vvp_cleaner_instance *instance);
Description
Returns the value of the MIN_WIDTH register. The instance must be a valid intel_vvp_cleaner_instance fully initialized.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
Minimum allowed width before lines are padded with extra pixels

intel_vvp_cleaner_get_max_width

Prototype
uint32_t intel_vvp_cleaner_get_max_width(intel_vvp_cleaner_instance *instance);
Description
Returns the value of the MAX_WIDTH register. The instance must be a valid intel_vvp_cleaner_instance fully initialized.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
Maximum allowed width before extra pixels in a line are truncated

intel_vvp_cleaner_get_min_height

Prototype
uint32_t intel_vvp_cleaner_get_min_height(intel_vvp_cleaner_instance *instance);
Description
Returns the value of the MIN_HEIGHT register. The instance must be a valid intel_vvp_cleaner_instance fully initialized.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
Minimum supported height before frames are padded with extra lines

intel_vvp_cleaner_get_max_height

Prototype
uint32_t intel_vvp_cleaner_get_max_height(intel_vvp_cleaner_instance *instance);
Description
Returns the value of the MAX_HEIGHT register. The instance must be a valid intel_vvp_cleaner_instance fully initialized.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
Maximum supported height before extra lines are discarded

intel_vvp_cleaner_is_running

Prototype
bool intel_vvp_cleaner_is_running(intel_vvp_cleaner_instance* instance);
Description
Reads and returns the running bit of the STATUS register. The instance must be a valid intel_vvp_cleaner_instance fully initialized.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
True is the IP is currently generating an output field, false when between two fields

intel_vvp_cleaner_is_clipping

Prototype
bool intel_vvp_cleaner_is_clipping(intel_vvp_cleaner_instance* instance);
Description
Reads and returns the clipping bit of the STATUS register. The instance must be a valid intel_vvp_cleaner_instance fully initialized.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
True is the IP is currently discarding extra lines from the current field to keep at the required height

intel_vvp_cleaner_is_padding

Prototype
bool intel_vvp_cleaner_is_padding(intel_vvp_cleaner_instance* instance);
Description
Reads and returns the padding bit of the STATUS register. The instance must be a valid intel_vvp_cleaner_instance fully initialized.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
True is the IP is currently adding extra lines to the current field to meet the required height

intel_vvp_cleaner_previous_field_clipped

Prototype
bool intel_vvp_cleaner_is_previous_field_clipped(intel_vvp_cleaner_instance* instance);
Description
Reads and returns the previous field clipped bit of the STATUS register. The instance must be a valid intel_vvp_cleaner_instance fully initialized.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
True is the IP discarded extra lines from the previous field

intel_vvp_cleaner_previous_field_padded

Prototype
bool intel_vvp_cleaner_previous_field_padded(intel_vvp_cleaner_instance* instance);
Description
Reads and returns the previous field padded bit of the STATUS register. The instance must be a valid intel_vvp_cleaner_instance fully initialized.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns

True is the IP added extra lines to the previous field

intel_vvp_cleaner_get_status

Prototype
uint8_t intel_vvp_cleaner_get_status(intel_vvp_cleaner_instance* instance);
Description
Reads and returns the STATUS register. The instance must be a valid intel_vvp_cleaner_instance fully initialized.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
The value read from the status register

intel_vvp_cleaner_get_field_num

Prototype
uint16_t intel_vvp_cleaner_get_field_num(intel_vvp_cleaner_instance *instance)
Description
Reads and returns the FIELD_NUM register. The instance must be a valid intel_vvp_cleaner_instance fully initialized and parameterized in Full mode with debug enabled.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
The field_num value read from the previous image info packet

intel_vvp_cleaner_get_field_count

Prototype
uint32_t intel_vvp_cleaner_get_field_count(intel_vvp_cleaner_instance *instance)
Description
Reads and returns the FIELD_COUNT register. The instance must be a valid intel_vvp_cleaner_instance fully initialized and parameterized with debug enabled.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
The current value of the field counter

intel_vvp_cleaner_get_clipped_field_count

Prototype
uint32_t intel_vvp_cleaner_get_clipped_field_count(intel_vvp_cleaner_instance *instance)
Description
Reads and returns the CLIPPED_FIELD_COUNT register. The instance must be a valid intel_vvp_cleaner_instance fully initialized and parameterized with debug enabled.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
The current value of the clipped field counter

intel_vvp_cleaner_get_padded_field_count

Prototype
uint32_t intel_vvp_cleaner_get_padded_field_count(intel_vvp_cleaner_instance *instance)
Description
Reads and returns the PADDED_FIELD_COUNT register. The instance must be a valid intel_vvp_cleaner_instance fully initialized and parameterized with debug enabled.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
The current value of the padded field counter

intel_vvp_cleaner_get_previous_field_line_count

Prototype
uint32_t intel_vvp_cleaner_get_previous_field_line_count(intel_vvp_cleaner_instance *instance)
Description
Reads and returns the PREV_FIELD_LINE_COUNT register. The instance must be a valid intel_vvp_cleaner_instance fully initialized and parameterized with debug enabled.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
The number of lines in the previous field

intel_vvp_cleaner_get_line_width

Prototype
uint32_t intel_vvp_cleaner_get_line_width(intel_vvp_cleaner_instance *instance)
Description
Reads and returns the LINE_WIDTH register. The instance must be a valid intel_vvp_cleaner_instance fully initialized and parameterized with debug enabled.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns
The width of the last invalid line, either shorter or longer than expected, in the previous field. If all lines were the correct length, the register returns the actual field width.

intel_vvp_cleaner_reset_debug_counters

Prototype
uint32_t intel_vvp_cleaner_reset_debug_counters(intel_vvp_cleaner_instance *instance)
Description
Resets all debug counters to zero. The instance must be a valid intel_vvp_cleaner_instance fully initialized and parameterized with debug enabled.
Arguments
instance – pointer to the intel_vvp_cleaner_instance software driver instance structure
Returns

kIntelVvpCoreOk in case of success.

kIntelVvpCoreInstanceErr if the call is not appropriate for the given instance