Accelerate
Make large-scale mathematical computations and image calculations, optimized for high performance and low energy consumption.
Overview
Accelerate provides high-performance, energy-efficient computation on the CPU by leveraging its vector-processing capability. The following Accelerate libraries abstract that capability so that code written for them executes appropriate instructions for the processor available at runtime:
- BNNS
Subroutines for constructing and running neural networks for both training and inference.
- vImage
A wide range of image-processing functions, including Core Graphics and Core Video interoperation, format conversion, and image manipulation.
- vDSP
Digital signal processing functions, including 1D and 2D fast Fourier transforms, biquadratic filtering, vector and matrix arithmetic, convolution, and type conversion.
- vForce
Functions for performing arithmetic and transcendental functions on vectors.
- Sparse Solvers, BLAS, and LAPACK
Libraries for performing linear algebra on sparse and dense matrices.
Although not part of the Accelerate framework, the following libraries are closely related:
- Apple Archive
A framework for performing multithreaded lossless compression of directories, files, and data.
- Compression
Algorithms for lossless data compression that support LZFSE, LZ4, LZMA, and ZLIB algorithms.
- simd
A module for performing computations on small vectors and matrices.
- Spatial
Spatial is a lightweight 3D mathematical library that provides a simple API for working with 3D primitives.
Topics
Neural Networks
Directories, Files, and Data Archives
Compressing single filesDecompressing single filesCompressing file system directoriesDecompressing and extracting an archived directoryCompressing and saving a string to the file systemDecompressing and parsing an archived string
Compression
Compressing and decompressing files with stream compressionCompressing and decompressing data with buffer compressionCompressing and decompressing data with input and output filters
Image Processing Essentials
Converting bitmap data between Core Graphics images and vImage buffersCreating and Populating Buffers from Core Graphics ImagesCreating a Core Graphics Image from a vImage BufferBuilding a Basic Image-Processing WorkflowApplying geometric transforms to imagesCompositing images with alpha blendingCompositing images with vImage blend modesApplying vImage operations to regions of interestOptimizing image-processing performancevImage
Signal Processing Essentials
Controlling vDSP operations with strideUsing linear interpolation to construct new data pointsUsing vDSP for vector-based arithmeticResampling a signal with decimationvDSP
Fourier and Cosine Transforms
Understanding data packing for Fourier transformsFinding the component frequencies in a composite sine wavePerforming Fourier transforms on interleaved-complex dataReducing spectral leakage with windowingSignal extraction from noisePerforming Fourier Transforms on Multiple SignalsHalftone descreening with 2D fast Fourier transformFast Fourier transformsDiscrete Fourier transformsDiscrete Cosine transforms
Core Video Interoperation
Using vImage pixel buffers to generate video effectsIntegrating vImage pixel buffers into a Core Image workflowApplying vImage operations to video sample buffersImproving the quality of quantized images with ditheringCore Video interoperability
Vectors, Matrices, and Quaternions
Working with VectorsWorking with MatricesWorking with QuaternionsRotating a cube by transforming its verticessimdvForce
Audio Processing
Visualizing sound as an audio spectrogramApplying biquadratic filters to a music loopEqualizing audio with discrete cosine transforms (DCTs)Biquadratic IIR filtersDiscrete Cosine transforms
Conversion Between Image Formats
Building a basic image conversion workflowConverting color images to grayscaleApplying color transforms to images with a multidimensional lookup tableBuilding a basic image conversion workflowConverting luminance and chrominance planes to an ARGB imageConversion
Image Resampling
Convolution and Morphology
Color and Tone Adjustment
Adjusting the brightness and contrast of an imageAdjusting saturation and applying tone mappingApplying tone curve adjustments to imagesAdjusting the hue of an imageSpecifying histograms with vImageEnhancing image contrast with histogram manipulationHistogram
vImage / vDSP Interoperability
Finding the sharpest image in a sequence of captured imagesVisualizing sound as an audio spectrogram
Sparse Matrices
Creating sparse matricesSolving systems using direct methodsSolving systems using iterative methodsCreating a sparse matrix from coordinate format arraysSparse Solvers
Arithmetic and Transcendental Functions
Linear Algebra
Solving systems of linear equations with LAPACKFinding an interpolating polynomial using the Vandermonde methodCompressing an image using linear algebraBLAS