Visible to Intel only — GUID: jcj1655825689853
Ixiasoft
Visible to Intel only — GUID: jcj1655825689853
Ixiasoft
25.5. Deinterlacer IP Software API
Register definition header file: intel_vvp_dil_regs.h
Include file: intel_vvp_dil.h
Name | Description |
---|---|
intel_vvp_dil_init | Initialize the Deinterlacer instance |
Intel_vvp_core_* | Accessors defined in Video and Vision Processing IPs Software Programming Model |
intel_vvp_dil_get_lite_mode | Returns lite mode is on |
intel_vvp_dil_get_debug_enabled | Returns debug features is on. |
Intel_vvp_dil_get_max_width | Returns the maximum supported width |
intel_vvp_dil_get_dil_algorithm | Returns the deinterlacing algorithm |
intel_vvp_dil_get_field_sync | Returns the field synchronization method |
intel_vvp_dil_get_mem_base_address | Returns the base address (weave and motion adaptive deinterlacing) |
intel_vvp_dil_get_mem_buff_line_stride | Returns the line stride (weave and motion adaptive deinterlacing) |
intel_vvp_dil_get_bps | Returns the Bits per sample value (weave and motion adaptive deinterlacing) |
intel_vvp_dil_get_num_colors | Returns the Number of color planes value (weave and motion adaptive deinterlacing) |
intel_vvp_dil_get_pixels_in_parallel | Returns the Pixels in parallel value (weave and motion adaptive deinterlacing) |
intel_vvp_dil_get_mem_packing | Returns the Memory packing method (weave and motion adaptive deinterlacing) |
intel_vvp_dil_is_running | Returns if the IP is processing data |
intel_vvp_dil_get_status | Reads the status register |
intel_vvp_dil_get_mem_buff_line_stride | Returns the line stride (weave and motion adaptive deinterlacing) |
intel_vvp_dil_get_bps | Returns the Bits per sample value (weave and motion adaptive deinterlacing) |
intel_vvp_dil_get_num_colors | Returns the Number of color planes value (weave and motion adaptive deinterlacing) |
intel_vvp_dil_get_pixels_in_parallel | Returns the Pixels in parallel value (weave and motion adaptive deinterlacing) |
intel_vvp_dil_get_mem_packing | Returns the Memory packing method (weave and motion adaptive deinterlacing) |
intel_vvp_dil_set_motion_adaptive_adjust | Adjusts motion sensitivity (motion adaptive deinterlacing) |
intel_vvp_dil_get_motion_adaptive_adjust | Returns current motion sensitivity (motion adaptive deinterlacing) |
intel_vvp_dil_set_motion_adaptive_ctrl | Override deinterlacing algorithm at run-time to perform bob/weave deinterlacing (motion adaptive deinterlacing) |
intel_vvp_dil_get_motion_adaptive_ctrl | Returns current run-time deinterlacing algorithm (motion adaptive deinterlacing) |
intel_vvp_dil_commit_writes | Commit all outstanding writes |
intel_vvp_dil_get_mem_base_address | Returns the base address (weave and motion adaptive deinterlacing) |
enum eIntelVvpDilAlgorithms
- Members
-
kIntelVvpDilBobAlgo (0) - Bob deinterlacing
kIntelVvpDilWeaveAlgo (1) - Weave deinterlacing
kIntelVvpDilAlgoErr (-1) - Invalid deinterlacing algorithm (used to indicate errors)
- Description
-
Enumeration for the configurable deinterlacing algorithms
enum eIntelVvpDilMemPacking
- Members
-
kIntelVvpDilPerfectPacking (0) - Perfect packing
kIntelVvpDilColorPacking (1) - Color packing
kIntelVvpDilPixelPacking (2) - Pixel packing
kIntelVvpDilPackingErr (-1) – Invalid value (used to indicate errors)
- Description
-
Enumeration for the configurable memory packing algorithm
enum eIntelVvpDilFieldSyncs
- Members
-
kIntelVvpDilDeinterlaceSyncF0 – Synchronization on F0 (input frame rate = output frame rate)
kIntelVvpDilDeinterlaceSyncF0 – Synchronization on F1 (input frame rate = output frame rate)
kIntelVvpDilDeinterlaceSyncBoth – Synchronization on F0 and F1 (input field rate = output frame rate)
- Description
- Enumeration for the three supported field-to-frame rate conversions
intel_vvp_dil_init
- Prototype
-
int intel_vvp_dil_init(intel_vvp_dil_instance *instance, intel_vvp_core_base base);
- Description
- Initializes a deinterlacer 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_dil_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 Deinterlacer product ID
kIntelVvpCoreInstanceErr if the instance is a null pointer
kIntelVvpDilRegMapVersionErr if the register map is not supported
intel_vvp_dil_get_lite_mode
- Prototype
-
bool intel_vvp_dil_get_lite_mode(intel_vvp_dil_instance *instance);
- Description
- Returns the value of the LITE_MODE register. The instance must be a valid intel_vvp_dil_instance fully initialized
- Arguments
- instance – pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
- true if the IP is parameterized in lite mode
intel_vvp_dil_get_debug_enabled
- Prototype
-
bool intel_vvp_dil_get_debug_enabled(intel_vvp_dil_instance *instance);
- Description
- Returns the value of the DEBUG_ENABLED register. The instance must be a valid intel_vvp_dil_instance fully initialized.
- Arguments
- instance – pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
- true if the IP is parameterized with debug features enabled
intel_vvp_dil_get_max_width
- Prototype
-
uint32_t intel_vvp_dil_get_max_widh(intel_vvp_dil_instance *instance);
- Description
- Returns the value of the MAX_WIDTH register. The instance must be a valid intel_vvp_dil_instance fully initialized.
- Arguments
- instance – pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
- Maximum supported width
intel_vvp_dil_get_dil_algorithm
- Prototype
-
eIntelVvpDilAlgorithms_t intel_vvp_dil_get_dil_algorithm(intel_vvp_dil_instance *instance);
- Description
- Returns the value of the deinterlacing algorithm register. The instance must be a valid intel_vvp_dil_instance fully initialized.
- Arguments
- instance – pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
- Deinterlacing algorithm selected at compile-time
intel_vvp_dil_get_field_sync
- Prototype
-
eIntelVvpDilFieldSyncs intel_vvp_dil_get_field_sync(intel_vvp_dil_instance *instance);
- Description
- Returns the value of the field synchronization register. The instance must be a valid intel_vvp_dil_instance fully initialized.
- Arguments
- instance – pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
- Field synchronization algorithm selected at compile-time
intel_vvp_dil_get_mem_base_address
- Prototype
-
uint32_t intel_vvp_dil_get_mem_base_address(intel_vvp_dil_instance *instance);
- Description
-
Returns the value of the MEM_BASE_ADDR register. The instance must be a valid intel_vvp_dil_instance fully initialized and configured for weave deinterlacing.
- Arguments
-
instance - pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
-
the storage buffer base address in memory
intel_vvp_dil_get_mem_buff_line_stride
- Prototype
-
uint32_t intel_vvp_dil_get_mem_buff_line_stride(intel_vvp_dil_instance *instance);
- Description
-
Returns the value of the MEM_BUFF_LINE_STRIDE register. The instance must be a valid intel_vvp_dil_instance fully initialized and configured for weave deinterlacing.
- Arguments
-
instance - pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
-
the line stride used in the storage buffer
intel_vvp_dil_get_bps
- Prototype
-
uint8_t intel_vvp_dil_get_bps(intel_vvp_dil_instance *instance);
- Description
-
Returns the value of the BITS_PER_SAMPLE register. The instance must be a valid intel_vvp_dil_instance fully initialized and configured for weave deinterlacing.
- Arguments
-
instance - pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
-
the number of bits per color sample
intel_vvp_dil_get_num_colors
- Prototype
-
uint8_t intel_vvp_dil_get_num_colors(intel_vvp_dil_instance *instance);
- Description
-
Returns the value of the NUM_COLOR_PLANES register. The instance must be a valid intel_vvp_dil_instance fully initialized and configured for weave deinterlacing.
- Arguments
-
instance - pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
-
the number of color planes per pixel
intel_vvp_dil_get_pixels_in_parallel
- Prototype
-
uint8_t intel_vvp_dil_get_pixels_in_parallel(intel_vvp_dil_instance *instance);
- Description
-
Returns the value of the PIXELS_IN_PARALLEL register. The instance must be a valid intel_vvp_dil_instance fully initialized and configured for weave deinterlacing.
- Arguments
-
instance - pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
-
the number of pixels streamed in parallel per beat
intel_vvp_dil_get_mem_packing
- Prototype
-
eIntelVvpDilMemPacking intel_vvp_dil_get_mem_packing(intel_vvp_dil_instance *instance);
- Description
-
Returns the value of the MEM_PACKING register. The instance must be a valid intel_vvp_dil_instance fully initialized and configured for weave deinterlacing.
- Arguments
-
instance - pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
-
the memory packing method used to store fields in memory
intel_vvp_dil_is_running
- Prototype
-
bool intel_vvp_ dil _is_running(intel_vvp_dil_instance* instance);
- Description
- Reads and returns the running bit of the STATUS register. The instance must be a valid intel_vvp_dil_instance fully initialized.
- Arguments
- instance – pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
- True is the IP is currently generating an output field, false when between two fields
intel_vvp_dil_get_status
- Prototype
-
uint8_t intel_vvp_dil_get_status(intel_vvp_dil_instance* instance);
- Description
- Reads and returns the STATUS register. The instance must be a valid intel_vvp_dil_instance fully initialized.
- Arguments
- instance – pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
- The value read from the status register
Register definition header file: intel_vvp_dil_regs.h
Include file: intel_vvp_dil.h
enum eIntelVvpDilAlgorithms
- Members
-
kIntelVvpDilBobAlgo (0) - Bob deinterlacing
kIntelVvpDilWeaveAlgo (1) - Weave deinterlacing
kIntelVvpDilMotionAdaptiveAlgo (1) - Motion adaptive deinterlacing
kIntelVvpDilAlgoErr (-1) - Invalid deinterlacing algorithm (used to indicate errors)
- Description
-
Enumeration for the configurable deinterlacing algorithms
intel_vvp_dil_[existing_function]
- Prototype
-
uint32_t intel_vvp_dil_[existing_function](intel_vvp_dil_instance *instance);
- Description
-
Returns the value of the X register. The instance must be a valid intel_vvp_dil_instance fully initialized and configured for weave or motion_adaptive deinterlacing.
- Arguments
-
instance - pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
-
-
intel_vvp_dil_set_motion_adaptive_adjust
- Prototype
-
int intel_vvp_dil_set_motion_adaptive_adjust(intel_vvp_dil_instance* instance, uint16_t ma_adjust)
- Description
-
Changes the motion sensitivity. The instance must be a valid intel_vvp_dil_instance fully initialized and configured for motion_adaptive deinterlacing.
- Arguments
-
instance - pointer to the intel_vvp_dil_instance software driver instance structure
-
ma_adjust - motion sensitivity
- Returns
-
kIntelVvpCoreOk (0) for success, negative error code in case of error
intel_vvp_dil_get_motion_adaptive_adjust
- Prototype
-
uint16_t intel_vvp_dil_get_motion_adaptive_adjust(intel_vvp_dil_instance* instance)
- Description
-
Returns the current run-time motion sensitivity parameter. The instance must be valid and configured for motion_adaptive deinterlacing with debug features enabled.
- Arguments
-
instance - pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
-
the current motion sensitivity or 0 if the call is invalid
intel_vvp_dil_set_motion_adaptive_control
- Prototype
-
int intel_vvp_dil_set_motion_adaptive_control(intel_vvp_dil_instance* instance, eIntelVvpDilAlgorithms override_algo)
- Description
-
Override the run-time behavior of the motion adaptive deinterlacer to switch to either full bob or full weave. The instance must be valid and configured for motion_adaptive deinterlacing.
- Arguments
-
instance - pointer to the intel_vvp_dil_instance software driver instance structure
-
override_algo - kIntelVvpDilBobAlgo or kIntelVvpDilWeaveAlgo to override the default behavior, kIntelVvpDilMotionAdaptiveAlgo to restore it
- Returns
-
kIntelVvpCoreOk (0) for success, negative error code in case of error
intel_vvp_dil_get_motion_adaptive_control
- Prototype
-
eIntelVvpDilAlgorithms intel_vvp_dil_get_motion_adaptive_control(intel_vvp_dil_instance* instance)
- Description
-
Returns the current run-time behavior of the motion adaptive deinterlacer. The instance must be valid and configured for motion_adaptive deinterlacing with debug features enabled.
- Arguments
-
instance - pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
-
kIntelVvpDilMotionAdaptiveAlgo by default if the default motion adaptive algorithm is enabled, kIntelVvpDilBobAlgo or kIntelVvpDilWeaveAlgo if the default algorithm is overriden, kIntelVvpDilAlgoErr if the call is invalid
intel_vvp_dil_commit_writes
- Prototype
-
int intel_vvp_dil_commit_writes(intel_vvp_dil_instance* instance)
- Description
-
Commits all pending writes before processing the next field. The instance must be valid and configured for full variant motion_adaptive deinterlacing.
- Arguments
-
instance - pointer to the intel_vvp_dil_instance software driver instance structure
- Returns
-
kIntelVvpCoreOk (0) for success, kIntelVvpCoreInstanceErr (-1) if the instance is invalid