# Support Modules

{% hint style="info" %}
This API Reference is based on DeGirum Tools version 0.24.1.
{% endhint %}

## Support modules overview

DeGirum Tools provides a suite of support modules designed to streamline common tasks in AI application development. These utilities complement PySDK and DeGirum Tools by covering media handling, math helpers, evaluation, UI elements, and storage helpers.

## Audio support

The [Audio Support module](/degirum-tools/support/audio_support.md) offers utilities for managing and processing audio streams.

* **Key Features**:
  * Open and manage audio streams from microphones and WAV files.
  * Generate audio frames with configurable buffer sizes, including support for overlapping buffers.
  * Handles both blocking and non-blocking stream operations.
* **Typical Usage**: Integrating microphone input or file-based audio into AI pipelines, real-time audio processing.

## Evaluation support

The [Model Evaluation Support module](/degirum-tools/support/eval_support.md) provides base classes and tools for assessing the performance of AI models.

* **Key Features**:
  * Abstract base class (`ModelEvaluatorBase`) for creating custom model evaluators.
  * Support for evaluator configuration via YAML files.
  * Tools for comparing model outputs with ground truth data and reporting results.
* **Typical Usage**: Implementing custom evaluation pipelines for various models and datasets.

## Math support

The [Math Support module](/degirum-tools/support/math_support.md) delivers mathematical utilities tailored for computer vision and signal processing tasks.

* **Key Features**:
  * Bounding box operations: area calculation, Intersection over Union (IoU), coordinate conversions.
  * Non-Maximum Suppression (NMS) with multiple selection policies.
  * Image tiling utilities for fixed size or aspect ratio.
  * A lightweight FIR low-pass filter for signal smoothing.
* **Typical Usage**: Post-processing object detection results, preparing image data for models, smoothing time-series data.

## Object storage support

The [Object Storage Support module](/degirum-tools/support/object_storage_support.md) offers helper utilities for interacting with MinIO object storage.

* **Key Classes**:
  * `ObjectStorageConfig`: Manages configuration parameters for object storage connections.
  * `ObjectStorage`: A wrapper for common bucket operations like upload, download, and delete.
* **Typical Usage**: Managing datasets, saving inference results, or handling other file-based assets in cloud or local storage.

## UI support

The [UI Support module](/degirum-tools/support/ui_support.md) provides a versatile set of tools for user interface operations.

* **Key Features**:
  * Displaying images and videos (`Display` class).
  * Rendering text on images with customizable options (`put_text()`).
  * Tracking progress with visual bars (`Progress` class).
  * Measuring and displaying Frames Per Second (FPS) (`FPSMeter` class).
* **Typical Usage**: Visualizing model outputs, creating interactive demos, monitoring application performance.

## Video support

The [Video Support module](/degirum-tools/support/video_support.md) offers comprehensive capabilities for using video streams with PySDK and DeGirum Tools.

* **Key Features**:
  * Capture from local cameras, IP cameras, and video files.
  * Save video streams with configurable quality, format, and frame rates (`VideoWriter`).
  * Extract frames from video files into JPEG sequences (`video2jpegs()`).
  * Manage and save event-triggered video clips with pre/post event buffering (`ClipSaver`).
* **Typical Usage**: Building video processing pipelines, security and surveillance applications, dataset creation from videos.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.degirum.com/degirum-tools/support.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
