<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/functions-that-deinterleave-integer-interleaved-buffers",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Functions that deinterleave integer interleaved buffers"
}
-->

# Functions that deinterleave integer interleaved buffers

Separate integer interleaved buffers into discrete planar buffers.

## Topics

### Deinterleaving unsigned 8-bit interleaved buffers

[`func vImageConvert_ChunkyToPlanar8(UnsafeMutablePointer<UnsafeRawPointer?>, UnsafeMutablePointer<UnsafePointer<vImage_Buffer>?>, UInt32, Int, vImagePixelCount, vImagePixelCount, Int, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_ChunkyToPlanar8(_:_:_:_:_:_:_:_:))

Deinterleaves an 8-bit-per-channel interleaved buffer with an arbitrary number of channels into the corresponding number of 8-bit planar buffers.

### Deinterleaving unsigned 8-bit, three-channel interleaved buffers

[`func vImageConvert_RGB888toPlanar8(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_RGB888toPlanar8(_:_:_:_:_:))

Deinterleaves an 8-bit-per-channel, 3-channel interleaved buffer into three 8-bit planar buffers.

[`func vImageConvert_RGB888toPlanar16Q12(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_RGB888toPlanar16Q12(_:_:_:_:_:))

Deinterleaves an 8-bit-per-channel, 3-channel interleaved buffer into three fixed-point 16-bit planar buffers.

### Deinterleaving unsigned 8-bit, four-channel interleaved buffers

[`func vImageConvert_BGRX8888ToPlanar8(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_BGRX8888ToPlanar8(_:_:_:_:_:))

Deinterleaves an 8-bit-per-channel, 4-channel interleaved buffer into three 8-bit planar buffers and discards the last channel.

[`func vImageConvert_XRGB8888ToPlanar8(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_XRGB8888ToPlanar8(_:_:_:_:_:))

Deinterleaves an 8-bit-per-channel, 4-channel interleaved buffer into three 8-bit planar buffers and discards the first channel.

[`func vImageConvert_ARGB8888toPlanar8(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_ARGB8888toPlanar8(_:_:_:_:_:_:))

Deinterleaves an 8-bit-per-channel, 4-channel interleaved buffer into four 8-bit planar buffers.

[`func vImageConvert_ARGB8888toPlanar16Q12(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_ARGB8888toPlanar16Q12(_:_:_:_:_:_:))

Deinterleaves an 8-bit-per-channel, 4-channel interleaved buffer into four fixed-point 16-bit planar buffers.

[`func vImageConvert_ARGB8888toPlanarF(UnsafePointer<vImage_Buffer>!, UnsafePointer<vImage_Buffer>!, UnsafePointer<vImage_Buffer>!, UnsafePointer<vImage_Buffer>!, UnsafePointer<vImage_Buffer>!, UnsafePointer<Float>!, UnsafePointer<Float>!, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_ARGB8888toPlanarF(_:_:_:_:_:_:_:_:))

Deinterleaves an 8-bit-per-channel, 4-channel interleaved buffer into four floating-point 32-bit planar buffers.

### Deinterleaving unsigned 16-bit three-channel interleaved buffers

[`func vImageConvert_RGB16UtoPlanar16U(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_RGB16UtoPlanar16U(_:_:_:_:_:))

Deinterleaves an unsigned 16-bit-per-channel, 3-channel interleaved buffer into three unsigned 16-bit planar buffers.

### Deinterleaving unsigned 16-bit four-channel interleaved buffers

[`func vImageConvert_ARGB16UtoPlanar16U(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_ARGB16UtoPlanar16U(_:_:_:_:_:_:))

Deinterleaves an unsigned 16-bit-per-channel, 4-channel interleaved buffer into four unsigned 16-bit planar buffers.

### Deinterleaving RGB565 16-bit three-channel interleaved buffers

[`func vImageConvert_RGB565toPlanar8(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_RGB565toPlanar8(_:_:_:_:_:))

Deinterleaves an RGB565 3-channel interleaved buffer into three 8-bit planar buffers.

### Deinterleaving ARGB1555 16-bit four-channel interleaved buffers

[`func vImageConvert_ARGB1555toPlanar8(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_ARGB1555toPlanar8(_:_:_:_:_:_:))

Deinterleaves an ARGB1555 4-channel interleaved buffer into four 8-bit planar buffers.



---

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)