<!--
{
  "documentType" : "article",
  "framework" : "VideoToolbox",
  "identifier" : "/documentation/VideoToolbox/frame-processing",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Frame processing"
}
-->

# Frame processing

An interface for accessing a range of different video-processing features.

## Discussion

A `Configuration` object defines each processor implementation by passing initialization and configuration parameters for the processor, and a `Parameter` object provides the parameters for each individual processing operation.

## Topics

### Frame processor

[Enhancing your app with machine learning-based video effects](/documentation/VideoToolbox/enhancing-your-app-with-machine-learning-based-video-effects)

Add powerful effects to your videos using the VideoToolbox VTFrameProcessor API.

[`VTFrameProcessor`](/documentation/VideoToolbox/VTFrameProcessor)

A class that creates a new frame processor for the configured video effect.

[`VTFrameProcessorConfiguration`](/documentation/VideoToolbox/VTFrameProcessorConfiguration)

A protocol that describes the configuration of a processor to use during a video processing session.

[`VTFrameProcessorFrame`](/documentation/VideoToolbox/VTFrameProcessorFrame)

An object that wraps video frames to send to the processor, as source, reference, or output frames.

[`VTFrameProcessorParameters`](/documentation/VideoToolbox/VTFrameProcessorParameters)

The base protocol for input and output processing parameters for a frame processor implementation.

### Frame rate conversion

[`VTFrameRateConversionConfiguration`](/documentation/VideoToolbox/VTFrameRateConversionConfiguration)

An object that enables the frame rate conversion on a frame processing session.

[`VTFrameRateConversionParameters`](/documentation/VideoToolbox/VTFrameRateConversionParameters)

An object that contains the required input and output parameters to run a frame rate conversion processor on a frame.

### Low-latency frame interpolation

[`VTLowLatencyFrameInterpolationConfiguration`](/documentation/VideoToolbox/VTLowLatencyFrameInterpolationConfiguration)

Configuration that you use to program Video Toolbox frame processor for low-latency frame interpolation.

[`VTLowLatencyFrameInterpolationParameters`](/documentation/VideoToolbox/VTLowLatencyFrameInterpolationParameters)

An object that contains both input and output parameters that the low-latency frame interpolation processor needs.

### Low-latency super resolution

[`VTLowLatencySuperResolutionScalerConfiguration`](/documentation/VideoToolbox/VTLowLatencySuperResolutionScalerConfiguration)

An object you use to configure frame processor for low-latency super-resolution scaler processing.

[`VTLowLatencySuperResolutionScalerParameters`](/documentation/VideoToolbox/VTLowLatencySuperResolutionScalerParameters)

An object that contains both input and output parameters that the low-latency super-resolution scaler frame processor needs.

### Motion blur

[`VTMotionBlurConfiguration`](/documentation/VideoToolbox/VTMotionBlurConfiguration)

A configuration object to enable motion blur on a frame processing session.

[`VTMotionBlurParameters`](/documentation/VideoToolbox/VTMotionBlurParameters)

This object contains both input and output parameters necessary to run the motion blur processor on a frame.

### Optical flow

[`VTFrameProcessorOpticalFlow`](/documentation/VideoToolbox/VTFrameProcessorOpticalFlow)

A class to wrap bidirectional optical flow to send to the processor.

[`VTOpticalFlowConfiguration`](/documentation/VideoToolbox/VTOpticalFlowConfiguration)

A configuration object that enables optical flow on a frame processing session.

[`VTOpticalFlowParameters`](/documentation/VideoToolbox/VTOpticalFlowParameters)

An object that describes frame-level optical flow parameters.

### Super resolution

[`VTSuperResolutionScalerConfiguration`](/documentation/VideoToolbox/VTSuperResolutionScalerConfiguration)

Configuration that you use to set up the super-resolution processor.

[`VTSuperResolutionScalerParameters`](/documentation/VideoToolbox/VTSuperResolutionScalerParameters)

An object that contains both input and output parameters that the super-resolution processor needs to run on a frame.

### Temporal noise filter

[`VTTemporalNoiseFilterConfiguration`](/documentation/VideoToolbox/VTTemporalNoiseFilterConfiguration)

A configuration object to initiate a frame processor and use temporal noise-filter processor.

[`VTTemporalNoiseFilterParameters`](/documentation/VideoToolbox/VTTemporalNoiseFilterParameters)

Encapsulates the frame-level parameters necessary for processing a source frame using temporal noise-filter processor.

### Errors

[`VTFrameProcessorError`](/documentation/VideoToolbox/VTFrameProcessorError-swift.struct)

Error codes generated by a frame processor.   

[`VTFrameProcessorErrorDomain`](/documentation/VideoToolbox/VTFrameProcessorErrorDomain)

The error domain of Video Toolbox errors.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)