Video and Vision Processing Suite Intel® FPGA IP User Guide

ID 683329
Date 7/08/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. Tone Mapping Operator Intel® FPGA IP 43. Test Pattern Generator Intel® FPGA IP 44. Unsharp Mask Intel® FPGA IP 45. Video and Vision Monitor Intel FPGA IP 46. Video Frame Buffer Intel® FPGA IP 47. Video Frame Reader Intel FPGA IP 48. Video Frame Writer Intel FPGA IP 49. Video Streaming FIFO Intel® FPGA IP 50. Video Timing Generator Intel® FPGA IP 51. Vignette Correction Intel® FPGA IP 52. Warp Intel® FPGA IP 53. White Balance Correction Intel® FPGA IP 54. White Balance Statistics Intel® FPGA IP 55. Design Security 56. Document Revision History for Video and Vision Processing Suite User Guide

21.6. Clocked Video Output 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.

intel_vvp_cvo_get_param_vid_pid

prototype:
int intel_vvp_cvo_get_param_vid_pid(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The product ID number

intel_vvp_cvo_get_param_version_number

prototype:
 int intel_vvp_cvo_get_param_version_number(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The IP version number

intel_vvp_cvo_get_param_vid_fifo_depth

prototype:
int intel_vvp_cvo_get_param_vid_fifo_depth(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The VID_FIFO_DEPTH parameter

intel_vvp_cvo_get_param_tpg_fifo_depth

prototype:
int intel_vvp_cvo_get_param_tpg_fifo_depth(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The TPG_FIFO_DEPTH parameter

intel_vvp_cvo_get_param_bps

prototype:
int intel_vvp_cvo_get_param_bps(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The BPS parameter

intel_vvp_cvo_get_param_internal_vtiming

prototype:
prototype: int intel_vvp_cvo_get_param_internal_vtiming(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The INTERNAL_VTIMING parameter

intel_vvp_cvo_get_param_fall_back_input_en

prototype:
int intel_vvp_cvo_get_param_fall_back_input_en(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The FALL_BACK_INPUT_EN parameter

intel_vvp_cvo_get_param_pip

prototype:
int intel_vvp_cvo_get_param_pip(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The PIXELS_IN_PARALLEL parameter

intel_vvp_cvo_get_param_color_planes

prototype:
int intel_vvp_cvo_get_param_internal_vtiming(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The INTERNAL_VTIMING parameter

intel_vvp_cvo_get_separate_cpu_clock

prototype:
int intel_vvp_cvo_get_param_color_planes(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The NUMBER_OF_COLOR_PLANES parameter

intel_vvp_cvo_get_separate_cpu_freq

prototype:
int intel_vvp_cvo_get_separate_cpu_clock(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The SEPARATE_SLAVE_CLOCK parameter

intel_vvp_cvo_get_tim_dimensions

prototype:
 int intel_vvp_cvo_get_tim_dimensions(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The TIM_DIMENSIONS parameter

intel_vvp_cvo_get_vid_is_async

prototype:
 int intel_vvp_cvo_get_vid_is_async(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The VID_IS_ASYNC parameter

intel_vvp_cvo_get_vid_dimensions

prototype:
 int intel_vvp_cvo_get_vid_dimensions(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The VID_DIMENSIONS parameter

intel_vvp_cvo_get_vid_debug

prototype:
 int intel_vvp_cvo_get_vid_debug(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The VID_DEBUG parameter

intel_vvp_cvo_get_tpg_is_async

prototype:
 int intel_vvp_cvo_get_tpg_is_async(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The TPG_IS_ASYNC parameter

intel_vvp_cvo_get_tpg_dimensions

prototype:
 int intel_vvp_cvo_get_tpg_dimensions(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The TPG_DIMENSIONS parameter

intel_vvp_cvo_get_tpg_debug

prototype:
 int intel_vvp_cvo_get_tpg_debug(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The TPG_DEBUG parameter

intel_vvp_cvo_vtiming_get_param_num_pulses

prototype:
 int intel_vvp_cvo_vtiming_get_param_num_pulses(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The NUM_PULSES parameter

intel_vvp_cvo_vtiming_get_param_hsize

prototype:
 int intel_vvp_cvo_vtiming_get_param_hsize(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The HSIZE parameter

intel_vvp_cvo_vtiming_get_param_vsize

prototype:
 int intel_vvp_cvo_vtiming_get_param_vsize(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The VSIZE parameter

intel_vvp_cvo_vtiming_get_param_build_hard_frame_lock

prototype:
 int intel_vvp_cvo_vtiming_get_param_build_hard_frame_lock(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The BUILD_HARD_FRAME_LOCK parameter

intel_vvp_cvo_vtiming_get_param_build_soft_frame_lock

prototype:
 int intel_vvp_cvo_vtiming_get_param_build_soft_frame_lock(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The BUILD_SOFT_FRAME_LOCK parameter

intel_vvp_cvo_vtiming_get_param_build_vrr

prototype:
 int intel_vvp_cvo_vtiming_get_param_build_vrr (intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The BUILD_VRR parameter

intel_vvp_cvo_get_status_vid_locked

prototype:
 int intel_vvp_cvo_get_status_vid_locked(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The VID_LOCKED field from the REG_STATUS register

intel_vvp_cvo_get_status_vid_is_full

prototype:
 int intel_vvp_cvo_get_status_vid_is_full (intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The VID_AXI4-S_FULL field from the REG_STATUS register

intel_vvp_cvo_get_status_vid_stall_error

prototype:
 int intel_vvp_cvo_get_status_vid_stall_error(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The VID_STALL_ERR field from the REG_STATUS register

intel_vvp_cvo_get_status_vid_size_mismatch

prototype:
 int intel_vvp_cvo_get_status_vid_size_mismatch(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The VID_SIZE_ERR field from the REG_STATUS register

intel_vvp_cvo_get_status_tpg_locked

prototype:
 int intel_vvp_cvo_get_status_tpg_locked(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The TPG_LOCKED field from the REG_STATUS register

intel_vvp_cvo_get_status_tpg_is_full

prototype:
 int intel_vvp_cvo_get_status_tpg_is_full (intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The TPG_AXI4-S_FULL field from the REG_STATUS register

intel_vvp_cvo_get_status_tpg_stall_error

prototype:
 int intel_vvp_cvo_get_status_tpg_stall_error(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The TPG_STALL_ERR field from the REG_STATUS register

intel_vvp_cvo_get_status_tpg_size_mismatch

prototype:
 int intel_vvp_cvo_get_status_tpg_size_mismatch(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The TPG_SIZE_ERR field from the REG_STATUS register

intel_vvp_cvo_get_status_phase

prototype:
 int intel_vvp_cvo_get_status_phase(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The TIMING_PHASE field from the REG_STATUS register

intel_vvp_cvo_get_black_0

prototype:
 int intel_vvp_cvo_get_black_0(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The BLACK_0 register

intel_vvp_cvo_get_black_1

prototype:
 int intel_vvp_cvo_get_black_1(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The BLACK_1 register

intel_vvp_cvo_get_black_2

prototype:
 int intel_vvp_cvo_get_black_2(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The BLACK_2 register

intel_vvp_cvo_get_black_3

prototype:
 int intel_vvp_cvo_get_black_3(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The BLACK_3 register

intel_vvp_cvo_set_black_0

prototype:
 int intel_vvp_cvo_set_black_0(intel_vvp_cvo_instance* instance, uint32_t in_val);
argument:

instance, pointer to the intel_vvp_cvo_instance

in_val, value for this color plane

return value

If kIntelVvpVtimingOk, otherwise kIntelVvpVtimingInstanceErr

intel_vvp_cvo_set_black_1

prototype:
 int intel_vvp_cvo_set_black_1(intel_vvp_cvo_instance* instance, uint32_t in_val);
argument:

instance, pointer to the intel_vvp_cvo_instance

in_val, value for this color plane

return value

If kIntelVvpVtimingOk, otherwise kIntelVvpVtimingInstanceErr

intel_vvp_cvo_set_black_2

prototype:
 int intel_vvp_cvo_set_black_2(intel_vvp_cvo_instance* instance, uint32_t in_val);
argument:

instance, pointer to the intel_vvp_cvo_instance

in_val, value for this color plane

return value

If kIntelVvpVtimingOk, otherwise kIntelVvpVtimingInstanceErr

intel_vvp_cvo_set_black_3

prototype:
 int intel_vvp_cvo_set_black_3(intel_vvp_cvo_instance* instance, uint32_t in_val);
argument:

instance, pointer to the intel_vvp_cvo_instance

in_val, value for this color plane

return value

If kIntelVvpVtimingOk, otherwise kIntelVvpVtimingInstanceErr

intel_vvp_cvo_get_fallback_auto_recover

prototype:
 int intel_vvp_cvo_get_fallback_auto_recover (intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The AUTO RECOVER field from the REG_FALLBACK register

intel_vvp_cvo_get_fallback_force_black

prototype:
 int intel_vvp_cvo_get_fallback_force_black (intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The FORCE BLACK field from the REG_FALLBACK register

intel_vvp_cvo_get_fallback_force_tpg

prototype:
 int intel_vvp_cvo_get_fallback_force_tpg (intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The FORCE TPG field from the REG_FALLBACK register

intel_vvp_cvo_get_fallback_force_vid

prototype:
 int intel_vvp_cvo_get_fallback_force_vid (intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The FORCE VID field from the REG_FALLBACK register

intel_vvp_cvo_set_fallback_auto_recover

prototype:
 int intel_vvp_cvo_set_fallback_auto_recover(intel_vvp_cvo_instance* instance, uint32_t in_val);
argument:

instance, pointer to the intel_vvp_cvo_instance

in_val, set this value to enable/disable the auto recover mode for this IP

return value

If kIntelVvpVtimingOk, otherwise kIntelVvpVtimingInstanceErr

intel_vvp_cvo_set_fallback_force_black

prototype:
 int intel_vvp_cvo_set_fallback_force_black(intel_vvp_cvo_instance* instance, uint32_t in_val);
argument:

instance, pointer to the intel_vvp_cvo_instance

in_val, setting this value forces the IP to output the color planes values previously set in registers BLACK_0, BLACK_1, BLACK_2 and BLACK_3

return value

If kIntelVvpVtimingOk, otherwise kIntelVvpVtimingInstanceErr

intel_vvp_cvo_set_fallback_force_tpg

prototype:
 int intel_vvp_cvo_set_fallback_force_tpg(intel_vvp_cvo_instance* instance, uint32_t in_val);
argument:

instance, pointer to the intel_vvp_cvo_instance

in_val, setting this value forces the IP to output the test pattern video input

return value

If kIntelVvpVtimingOk, otherwise kIntelVvpVtimingInstanceErr

intel_vvp_cvo_set_fallback_force_vid

prototype:
 int intel_vvp_cvo_set_fallback_force_vid(intel_vvp_cvo_instance* instance, uint32_t in_val);
argument:

instance, pointer to the intel_vvp_cvo_instance

in_val, setting this value forces the IP to output the video input

return value

If kIntelVvpVtimingOk, otherwise kIntelVvpVtimingInstanceErr

intel_vvp_cvo_set_fallback_do_recover

prototype:
 int intel_vvp_cvo_set_fallback_force_vid(intel_vvp_cvo_instance* instance, uint32_t in_val);
argument:

instance, pointer to the intel_vvp_cvo_instance

in_val, setting this value forces the IP to return to the video input if the video input is valid.

return value

If kIntelVvpVtimingOk, otherwise kIntelVvpVtimingInstanceErr

intel_vvp_cvo_get_fr_totalh

prototype:
 int intel_vvp_cvo_get_fr_totalh(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_FR_TOTALH register

intel_vvp_cvo_get_fr_activeh

prototype:
 int intel_vvp_cvo_get_fr_activeh(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_FR_ACTIVEH register

intel_vvp_cvo_get_fr_totalv

prototype:
 int intel_vvp_cvo_get_fr_totalv(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_FR_TOTALV register

intel_vvp_cvo_get_fr_activev

prototype:
 int intel_vvp_cvo_get_fr_activev(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_FR_ACTIVEV register

intel_vvp_cvo_get_fr_freq_dims

prototype:
 int intel_vvp_cvo_get_fr_freq_dims(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_FR_FREQ_DIMS register

intel_vvp_cvo_get_fr_clk_dims

prototype:
 int intel_vvp_cvo_get_fr_clk_dims(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_FR_CLKS_DIMS register

intel_vvp_cvo_get_vid_activeh

prototype:
 int intel_vvp_cvo_get_vid_activeh(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_VID_ACTIVEH register

intel_vvp_cvo_get_vid_activev

prototype:
 int intel_vvp_cvo_get_vid_activev(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_VID_ACTIVEV register

intel_vvp_cvo_get_vid_freq_dims

prototype:
 int intel_vvp_cvo_get_vid_freq_dims(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_VID_FREQ_DIMS register

intel_vvp_cvo_get_vid_clk_dims

prototype:
 int intel_vvp_cvo_get_vid_clk_dims(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_VID_CLKS_DIMS register

intel_vvp_cvo_get_tpg_activeh

prototype:
 int intel_vvp_cvo_get_tpg_activeh(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_TPG_ACTIVEH register

intel_vvp_cvo_get_tpg_activev

prototype:
 int intel_vvp_cvo_get_tpg_activev(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_TPG_ACTIVEV register

intel_vvp_cvo_get_tpg_freq_dims

prototype:
 int intel_vvp_cvo_get_tpg_freq_dims(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_TPG_FREQ_DIMS register

intel_vvp_cvo_get_tpg_clk_dims

prototype:
 int intel_vvp_cvo_get_tpg_clk_dims(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_TPG_CLKS_DIMS register

intel_vvp_cvo_get_vid_locked_count

prototype:
 int intel_vvp_cvo_get_vid_locked_count(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_VID_LOCKED_COUNT register

intel_vvp_cvo_get_vid_size_err_count

prototype:
 int intel_vvp_cvo_get_vid_size_err_count(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_VID_SIZE_ERR_COUNT register

intel_vvp_cvo_get_vid_stall_count

prototype:
 int intel_vvp_cvo_get_vid_stall_count(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_VID_STALL_COUNT register

intel_vvp_cvo_get_tpg_locked_count

prototype:
 int intel_vvp_cvo_get_tpg_locked_count(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_TPG_LOCKED_COUNT register

intel_vvp_cvo_get_tpg_size_err_count

prototype:
 int intel_vvp_cvo_get_tpg_size_err_count(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_TPG_ERR_COUNT register

intel_vvp_cvo_get_tpg_stall_count

prototype:
 int intel_vvp_cvo_get_tpg_stall_count(intel_vvp_cvo_instance* instance);
argument:

instance, pointer to the intel_vvp_cvo_instance

return value

The REG_TPG_STALL_COUNT register