Impact Acquire SDK Java
TImageBufferPixelFormat Class Reference

Valid image buffer pixel formats. More...

Static Public Attributes

static final int ibpfAuto = acquireJNI.ibpfAuto_get()
 The framework will decide which format will be used.
 
static final int ibpfBGR101010Packed_V2 = acquireJNI.ibpfBGR101010Packed_V2_get()
 A three channel 10 bit per color component RGB packed format occupying 32 bit per pixel.
 
static final int ibpfBGR888Packed = acquireJNI.ibpfBGR888Packed_get()
 A three channel interleaved RGB format with 24 bit per pixel.
 
static final int ibpfMono10 = acquireJNI.ibpfMono10_get()
 A single channel 10 bit per pixel format.
 
static final int ibpfMono12 = acquireJNI.ibpfMono12_get()
 A single channel 12 bit per pixel format.
 
static final int ibpfMono12Packed_V1 = acquireJNI.ibpfMono12Packed_V1_get()
 A single channel 12 bit per pixel packed format occupying 12 bit per pixel.
 
static final int ibpfMono12Packed_V2 = acquireJNI.ibpfMono12Packed_V2_get()
 A single channel 12 bit per pixel packed format occupying 12 bit per pixel.
 
static final int ibpfMono14 = acquireJNI.ibpfMono14_get()
 A single channel 14 bit per pixel format.
 
static final int ibpfMono16 = acquireJNI.ibpfMono16_get()
 A single channel 16 bit per pixel format.
 
static final int ibpfMono32 = acquireJNI.ibpfMono32_get()
 A single channel 32 bit per pixel format.
 
static final int ibpfMono8 = acquireJNI.ibpfMono8_get()
 A single channel 8 bit per pixel format.
 
static final int ibpfRaw = acquireJNI.ibpfRaw_get()
 An unprocessed block of data.
 
static final int ibpfRGB101010Packed = acquireJNI.ibpfRGB101010Packed_get()
 A three channel interleaved RGB image occupying 48 bit with 30 bit of usable data per pixel.
 
static final int ibpfRGB121212Packed = acquireJNI.ibpfRGB121212Packed_get()
 A three channel interleaved RGB image occupying 48 bit with 36 bit of usable data per pixel.
 
static final int ibpfRGB141414Packed = acquireJNI.ibpfRGB141414Packed_get()
 A three channel interleaved RGB image occupying 48 bit with 42 bit of usable data per pixel.
 
static final int ibpfRGB161616Packed = acquireJNI.ibpfRGB161616Packed_get()
 A three channel interleaved RGB image occupying 48 bit per pixel.
 
static final int ibpfRGB888Packed = acquireJNI.ibpfRGB888Packed_get()
 A three channel interleaved RGB format containing 24 bit per pixel.
 
static final int ibpfRGB888Planar = acquireJNI.ibpfRGB888Planar_get()
 A three channel planar RGB format.
 
static final int ibpfRGBx888Packed = acquireJNI.ibpfRGBx888Packed_get()
 A four channel interleaved RGB format with 32 bit per pixel containing one alpha byte per pixel.
 
static final int ibpfRGBx888Planar = acquireJNI.ibpfRGBx888Planar_get()
 A four channel planar RGB format.
 
static final int ibpfYUV411_UYYVYY_Packed = acquireJNI.ibpfYUV411_UYYVYY_Packed_get()
 A three channel interleaved YUV format occupying 48 bit for four pixels.
 
static final int ibpfYUV422_10Packed = acquireJNI.ibpfYUV422_10Packed_get()
 A three channel interleaved YUV422 format occupying 64 bit for a pair of pixels.
 
static final int ibpfYUV422_UYVY_10Packed = acquireJNI.ibpfYUV422_UYVY_10Packed_get()
 A three channel interleaved YUV422 format occupying 64 bit for a pair of pixels.
 
static final int ibpfYUV422_UYVYPacked = acquireJNI.ibpfYUV422_UYVYPacked_get()
 A three channel interleaved YUV422 format occupying 32 bit for a pair of pixels.
 
static final int ibpfYUV422Packed = acquireJNI.ibpfYUV422Packed_get()
 A three channel interleaved YUV422 format using 32 bit for a pair of pixels.
 
static final int ibpfYUV422Planar = acquireJNI.ibpfYUV422Planar_get()
 A three channel YUV422 planar format occupying 32 bit for a pair of pixels.
 
static final int ibpfYUV444_10Packed = acquireJNI.ibpfYUV444_10Packed_get()
 A three channel interleaved YUV format occupying 48 bit per pixel with 30 bit of usable data per pixel.
 
static final int ibpfYUV444_UYV_10Packed = acquireJNI.ibpfYUV444_UYV_10Packed_get()
 A three channel interleaved YUV format occupying 48 bit per pixel with 30 bit of usable data per pixel.
 
static final int ibpfYUV444_UYVPacked = acquireJNI.ibpfYUV444_UYVPacked_get()
 A three channel interleaved YUV format occupying 24 bit per pixel.
 
static final int ibpfYUV444Packed = acquireJNI.ibpfYUV444Packed_get()
 A three channel interleaved YUV format occupying 24 bit per pixel.
 
static final int ibpfYUV444Planar = acquireJNI.ibpfYUV444Planar_get()
 A three channel YUV444 planar format occupying 24 bit per pixels.
 

Detailed Description

Valid image buffer pixel formats.

Also refer to Pixel Formats in Impact Acquire and Other Contexts

Member Data Documentation

◆ ibpfAuto

final int ibpfAuto = acquireJNI.ibpfAuto_get()
static

The framework will decide which format will be used.

◆ ibpfBGR101010Packed_V2

final int ibpfBGR101010Packed_V2 = acquireJNI.ibpfBGR101010Packed_V2_get()
static

A three channel 10 bit per color component RGB packed format occupying 32 bit per pixel.

(PFNC name: RGB10p32)

This format will use 4 bytes to store one 10 bit per color component RGB pixel. The following memory layout is used for each pixel:

byte 0 | byte 1 | byte 2 | byte 3 |
0 7 | 890....5 | 6..90..3 | 4 9xx |
RRRRRRRR | RRGGGGGG | GGGGBBBB | BBBBBB |

The last 2 bit of each 32 bit bit may contain undefined data.

See also
Converting packed data to planar formats

◆ ibpfBGR888Packed

final int ibpfBGR888Packed = acquireJNI.ibpfBGR888Packed_get()
static

A three channel interleaved RGB format with 24 bit per pixel.

(PFNC name: RGB8)

This is an interleaved pixel format suitable for most processing functions. Most blit/display function however will expect ibpfRGB888Packed. The data is stored pixel-wise:

3 bytes 3 bytes 3 bytes etc.
R(1)G(1)B(1) R(2)G(2)B(2) R(3)G(3)B(3) etc.
..........................................
........................... R(n)G(n)B(n)

So the first byte in memory is the first pixels red component. ImageBuffer.vpData will therefore point to R(1) when using a byte pointer.

See also
Converting packed data to planar formats

◆ ibpfMono10

final int ibpfMono10 = acquireJNI.ibpfMono10_get()
static

A single channel 10 bit per pixel format.

(PFNC name: Mono10)

Each pixel in this format consumes 2 bytes of memory. The lower 10 bit of this 2 bytes will contain valid data.

◆ ibpfMono12

final int ibpfMono12 = acquireJNI.ibpfMono12_get()
static

A single channel 12 bit per pixel format.

(PFNC name: Mono12)

Each pixel in this format consumes 2 bytes of memory. The lower 12 bit of this 2 bytes will contain valid data.

◆ ibpfMono12Packed_V1

final int ibpfMono12Packed_V1 = acquireJNI.ibpfMono12Packed_V1_get()
static

A single channel 12 bit per pixel packed format occupying 12 bit per pixel.

(PFNC name: Mono12p)

This format will use 3 bytes to store 2 12 bit pixel. Every 3 bytes will use the following layout in memory:

3 bytes 3 bytes etc.
bits 0..7(1) bits 8..11(1) bits 0..3(2) bits 4..11(2) bits 0..7(3) bits 8..11(3) bits 0..3(4) bits 4..11(4) etc.
Note
When the width is not divisible by 2 the line pitch of a buffer can't be used to calculate line start offsets in a buffer! In that case something like this can be used to access a certain pixel (pseudo code assuming 'pointerToStartOfTheBuffer' is a 'byte pointer'):
GetMono12Packed_V1Pixel( pointerToStartOfTheBuffer, pixelIndex )
const int offsetFromStartOfTheBuffer = pixel + pixel/2
if pixel divisible by 2
return (pointerToStartOfTheBuffer[offset] >> 4) | (pointerToStartOfTheBuffer[offset+1] << 4)
return pointerToStartOfTheBuffer[offset]) | (pointerToStartOfTheBuffer[offset+1] & 0xF) << 8)
Since
2.5.0

◆ ibpfMono12Packed_V2

final int ibpfMono12Packed_V2 = acquireJNI.ibpfMono12Packed_V2_get()
static

A single channel 12 bit per pixel packed format occupying 12 bit per pixel.

(PFNC name: Mono12Packed)

This format will use 3 bytes to store 2 12 bit pixel. Every 3 bytes will use the following layout in memory:

3 bytes 3 bytes etc.
bits 11..4(1) bits 3..0(1) bits 3..0(2) bits 11..4(2) bits 11..4(3) bits 3..0(3) bits 3..0(4) bits 11..4(4) etc.
Note
When the width is not divisible by 2 the line pitch of a buffer can't be used to calculate line start offsets in a buffer! In that case something like this can be used to access a certain pixel (pseudo code assuming 'pointerToStartOfTheBuffer' is a 'byte pointer'):
GetMono12Packed_V1Pixel( pointerToStartOfTheBuffer, pixelIndex )
const int offsetFromStartOfTheBuffer = (3*pixel)/2
if pixel divisible by 2
return (pointerToStartOfTheBuffer[offset+1] << shift) | (pointerToStartOfTheBuffer[offset] >> 4)
return pointerToStartOfTheBuffer[offset] << shift) | (pointerToStartOfTheBuffer[offset+1] & 0xF)

◆ ibpfMono14

final int ibpfMono14 = acquireJNI.ibpfMono14_get()
static

A single channel 14 bit per pixel format.

(PFNC name: Mono14)

Each pixel in this format consumes 2 bytes of memory. The lower 14 bit of this 2 bytes will contain valid data.

◆ ibpfMono16

final int ibpfMono16 = acquireJNI.ibpfMono16_get()
static

A single channel 16 bit per pixel format.

(PFNC name: Mono16)

◆ ibpfMono32

final int ibpfMono32 = acquireJNI.ibpfMono32_get()
static

A single channel 32 bit per pixel format.

(PFNC name: Mono32)

◆ ibpfMono8

final int ibpfMono8 = acquireJNI.ibpfMono8_get()
static

A single channel 8 bit per pixel format.

(PFNC name: Mono8)

◆ ibpfRaw

final int ibpfRaw = acquireJNI.ibpfRaw_get()
static

An unprocessed block of data.

◆ ibpfRGB101010Packed

final int ibpfRGB101010Packed = acquireJNI.ibpfRGB101010Packed_get()
static

A three channel interleaved RGB image occupying 48 bit with 30 bit of usable data per pixel.

(PFNC name: BGR10)

This is an interleaved pixel format with 2 bytes per color component. The data is stored pixel-wise:

6 bytes 6 bytes 6 bytes etc.
B(1)G(1)R(1) B(2)G(2)R(2) B(3)G(3)R(3) etc.
..........................................
........................... B(n)G(n)R(n)

The data of each color component will be LSB aligned, thus the 6 MSB of each 16 bit will not contain valid data.

So the first 2 bytes in memory are the first pixels blue component. ImageBuffer.vpData will therefore point to B(1) when using a 16 bit pointer.

See also
Converting packed data to planar formats

◆ ibpfRGB121212Packed

final int ibpfRGB121212Packed = acquireJNI.ibpfRGB121212Packed_get()
static

A three channel interleaved RGB image occupying 48 bit with 36 bit of usable data per pixel.

(PFNC name: BGR12)

This is an interleaved pixel format with 2 bytes per color component. The data is stored pixel-wise:

6 bytes 6 bytes 6 bytes etc.
B(1)G(1)R(1) B(2)G(2)R(2) B(3)G(3)R(3) etc.
..........................................
........................... B(n)G(n)R(n)

The data of each color component will be LSB aligned, thus the 4 MSB of each 16 bit will not contain valid data.

So the first 2 bytes in memory are the first pixels blue component. ImageBuffer.vpData will therefore point to B(1) when using a 16 bit pointer.

See also
Converting packed data to planar formats

◆ ibpfRGB141414Packed

final int ibpfRGB141414Packed = acquireJNI.ibpfRGB141414Packed_get()
static

A three channel interleaved RGB image occupying 48 bit with 42 bit of usable data per pixel.

(PFNC name: BGR14)

This is an interleaved pixel format with 2 bytes per color component. The data is stored pixel-wise:

6 bytes 6 bytes 6 bytes etc.
B(1)G(1)R(1) B(2)G(2)R(2) B(3)G(3)R(3) etc.
..........................................
........................... B(n)G(n)R(n)

The data of each color component will be LSB aligned, thus the 2 MSB of each 16 bit will not contain valid data.

So the first 2 bytes in memory are the first pixels blue component. ImageBuffer.vpData will therefore point to B(1) when using a 16 bit pointer.

See also
Converting packed data to planar formats

◆ ibpfRGB161616Packed

final int ibpfRGB161616Packed = acquireJNI.ibpfRGB161616Packed_get()
static

A three channel interleaved RGB image occupying 48 bit per pixel.

(PFNC name: BGR16)

This is an interleaved pixel format with 2 bytes per color component. The data is stored pixel-wise:

6 bytes 6 bytes 6 bytes etc.
B(1)G(1)R(1) B(2)G(2)R(2) B(3)G(3)R(3) etc.
..........................................
........................... B(n)G(n)R(n)

The data of each color component will be LSB aligned.

So the first 2 bytes in memory are the first pixels blue component. ImageBuffer.vpData will therefore point to B(1) when using a 16 bit pointer.

See also
Converting packed data to planar formats

◆ ibpfRGB888Packed

final int ibpfRGB888Packed = acquireJNI.ibpfRGB888Packed_get()
static

A three channel interleaved RGB format containing 24 bit per pixel.

(PFNC name: BGR8)

This is an interleaved pixel format suitable for most display and processing functions. The data is stored pixel-wise:

3 bytes 3 bytes 3 bytes etc.
B(1)G(1)R(1) B(2)G(2)R(2) B(3)G(3)R(3) etc.
..........................................
........................... B(n)G(n)R(n)

So the first byte in memory is the first pixels blue component. ImageBuffer.vpData will therefore point to B(1) when using a byte pointer.

See also
Converting packed data to planar formats

◆ ibpfRGB888Planar

final int ibpfRGB888Planar = acquireJNI.ibpfRGB888Planar_get()
static

A three channel planar RGB format.

(PFNC name: RGB8_Planar)

This is a format best suitable for most image processing functions. The image will be converted into 3 planes(a plane for each color component).

R(1) R(2) R(3) R(4) etc.
...................
.............. R(n)
G(1) G(2) G(3) G(4) etc.
...................
.............. G(n)
B(1) B(2) B(3) B(4) etc.
...................
.............. B(n)

So the first byte in memory is the first pixels red component. ImageBuffer.vpData will therefore point to R(1) when using a byte pointer.

Since
2.17.0

◆ ibpfRGBx888Packed

final int ibpfRGBx888Packed = acquireJNI.ibpfRGBx888Packed_get()
static

A four channel interleaved RGB format with 32 bit per pixel containing one alpha byte per pixel.

(PFNC name: BGRa8)

This is an interleaved pixel format suitable for most display functions. The data is stored pixel-wise. The memory layout of the pixel data is like this:

4 bytes 4 bytes etc.
B(1) G(1) R(1) A(1) B(2) G(2) R(2) A(2) etc.
.......................................
B(n) G(n) R(n) A(n)

So the first byte in memory is the first pixels blue component. ImageBuffer.vpData will therefore point to B(1) when using a byte pointer. The 4th byte could be used for alpha information but isn't used by this framework.

Note
This format reports 3 channels only for backward compatibility reasons while in fact memory is allocated for 4 channels! Use this format with some extra care!
See also
Converting packed data to planar formats

◆ ibpfRGBx888Planar

final int ibpfRGBx888Planar = acquireJNI.ibpfRGBx888Planar_get()
static

A four channel planar RGB format.

(PFNC name: RGBa8_Planar)

This is a format best suitable for most image processing functions. The data is stored in 4 separate planes (one plane for each color component and one alpha plane).

R(1) R(2) R(3) R(4) etc.
...................
.............. R(n)
G(1) G(2) G(3) G(4) etc.
...................
.............. G(n)
B(1) B(2) B(3) B(4) etc.
...................
.............. B(n)
A(1) A(2) A(3) A(4) etc.
...................
.............. A(n)

So the first byte in memory is the first pixels red component. ImageBuffer.vpData will therefore point to R(1) when using a byte pointer. All red data will follow!

Note
This format reports 3 channels only for backward compatibility reasons while in fact memory is allocated for 4 channels! Use this format with some extra care!

◆ ibpfYUV411_UYYVYY_Packed

final int ibpfYUV411_UYYVYY_Packed = acquireJNI.ibpfYUV411_UYYVYY_Packed_get()
static

A three channel interleaved YUV format occupying 48 bit for four pixels.

(PFNC name: YUV411_8_UYYVYY)

This format uses 4:1 horizontal downsampling, meaning the Y component is sampled at each pixel, while U(Cb) and V(Cr) components are sampled every 4 pixels in horizontal direction. If each component takes 8 bits, four pixels require 48 bits.

Four consecutive pixels (48 bit, 0xaabbccddeeff ) contain 8 bit chrominance blue of pixels 1, 2, 3 and 4(aa), 8 bit luminance of pixel 1(bb),8 bit luminance of pixel 2(cc), 8 bit chrominance red of pixels 1, 2, 3 and 4(dd), 8 bit luminance of pixel 3(ee) and finally 8 bit luminance of pixel 4(ff).

Thus in memory the data will be stored like this:

6 bytes 6 bytes etc.
Cb(1,2,3,4) Y(1) Y(2) Cr(1,2,3,4) Y(3) Y(4) Cb(5,6,7,8) Y(5) Y(6) Cr(5,6,7,8) Y(7) Y(8) etc.
.................. Cb(n,n+1,n+2,n+3) Y(n) Y(n+1) Cr(n,n+1,n+2,n+3) Y(n+2) Y(n+3)

So the first byte in memory is the chrominance blue component. ImageBuffer.vpData will therefore point to Cb when using a byte pointer.

See also
Converting packed data to planar formats
Since
2.13.0

◆ ibpfYUV422_10Packed

final int ibpfYUV422_10Packed = acquireJNI.ibpfYUV422_10Packed_get()
static

A three channel interleaved YUV422 format occupying 64 bit for a pair of pixels.

(PFNC name: YUV422_10)

This format uses 2:1 horizontal downsampling, meaning the Y component is sampled at each pixel, while U(Cb) and V(Cr) components are sampled every 2 pixels in horizontal direction. If each component takes 16 bits, the pair of pixels requires 64 bits.

Two consecutive pixels (64 bit, 0xaaaabbbbccccdddd ) contain 10 bit luminance of pixel 1(aaaa), 10 bit chrominance blue of pixel 1 and 2(bbbb), 10 bit luminance of pixel 2(cccc) and finally 10 bit chrominance red of pixels 1 and 2(dddd). The upper 6 bits of each component will be 0.

Thus in memory the data will be stored like this:

8 bytes 8 bytes etc.
Y(1) Cb(1,2) Y(2) Cr(1,2) Y(3) Cb(3,4) Y(4) Cr(3,4) etc.
..........................Y(n-1) Cb(n-1,n) Y(n) Cr(n-1,n)

So the first 2 bytes in memory are the first pixels luminance component. ImageBuffer.vpData will therefore point to Y(1) when using a 16 bit pointer.

See also
Converting packed data to planar formats

◆ ibpfYUV422_UYVY_10Packed

final int ibpfYUV422_UYVY_10Packed = acquireJNI.ibpfYUV422_UYVY_10Packed_get()
static

A three channel interleaved YUV422 format occupying 64 bit for a pair of pixels.

(PFNC name: YUV422_10_UYV)

This format uses 2:1 horizontal downsampling, meaning the Y component is sampled at each pixel, while U(Cb) and V(Cr) components are sampled every 2 pixels in horizontal direction. If each component takes 16 bits, the pair of pixels requires 64 bits.

Two consecutive pixels (64 bit, 0xaaaabbbbccccdddd ) will contain 10 bit chrominance blue of pixel 1 and 2(aaaa), 10 bit luminance of pixel 1(bbbb), 10 bit chrominance red of pixel 1 and 2 (cccc) and finally 10 bit luminance of pixel 2(dddd). The upper 6 bits of each component will be 0.

Thus in memory the data will be stored like this:

8 bytes 8 bytes etc.
Cb(1,2) Y(1) Cr(1,2) Y(2) Cb(3,4) Y(3) Cr(3,4) Y(4) etc.
..........................Cb(n-1,n) Y(n-1) Cr(n-1,n) Y(n)

So the first 2 bytes in memory are the first pixels luminance component. ImageBuffer.vpData will therefore point to Cb(1,2) when using a 16 bit pointer.

See also
Converting packed data to planar formats

◆ ibpfYUV422_UYVYPacked

final int ibpfYUV422_UYVYPacked = acquireJNI.ibpfYUV422_UYVYPacked_get()
static

A three channel interleaved YUV422 format occupying 32 bit for a pair of pixels.

(PFNC name: YUV422_8_UYVY)

This format uses 2:1 horizontal downsampling, meaning the Y component is sampled at each pixel, while U(Cb) and V(Cr) components are sampled every 2 pixels in horizontal direction. If each component takes 8 bits, the pair of pixels requires 32 bits.

Two consecutive pixels (32 bit, 0xaabbccdd ) will contain 8 bit chrominance blue of pixel 1 and 2(aa), 8 bit luminance of pixel 1(bb), 8 bit chrominance red of pixel 1 and 2 (cc) and finally 8 bit luminance of pixel 2(dd).

Thus in memory the data will be stored like this:

4 bytes 4 bytes etc.
Cb(1,2) Y(1) Cr(1,2) Y(2) Cb(3,4) Y(3) Cr(3,4) Y(4) etc.
..........................Cb(n-1,n) Y(n-1) Cr(n-1,n) Y(n)

So the first byte in memory is the first pixels Cb component. ImageBuffer.vpData will therefore point to Cb(1,2) when using a byte pointer.

See also
Converting packed data to planar formats

◆ ibpfYUV422Packed

final int ibpfYUV422Packed = acquireJNI.ibpfYUV422Packed_get()
static

A three channel interleaved YUV422 format using 32 bit for a pair of pixels.

(PFNC name: YUV422_8)

This format uses 2:1 horizontal downsampling, meaning the Y component is sampled at each pixel, while U(Cb) and V(Cr) components are sampled every 2 pixels in horizontal direction. Each component takes 8 bits, therefore a pair of pixels requires 32 bits.

Two consecutive pixels (32 bit, 0xaabbccdd ) contain 8 bit luminance of pixel 1(aa), 8 bit chrominance blue of pixel 1 and 2(bb), 8 bit luminance of pixel 2(cc) and finally 8 bit chrominance red of pixels 1 and 2(dd).

Thus in memory the data will be stored like this:

4 bytes 4 bytes etc.
Y(1) Cb(1,2) Y(2) Cr(1,2) Y(3) Cb(3,4) Y(4) Cr(3,4) etc.
..........................Y(n-1) Cb(n-1,n) Y(n) Cr(n-1,n)

So the first byte in memory is the first pixels luminance component. ImageBuffer.vpData will therefore point to Y(1) when using a byte pointer.

See also
Converting packed data to planar formats

◆ ibpfYUV422Planar

final int ibpfYUV422Planar = acquireJNI.ibpfYUV422Planar_get()
static

A three channel YUV422 planar format occupying 32 bit for a pair of pixels.

(PFNC name: YUV422_8_YVU_Planar)

This format uses 2:1 horizontal downsampling, meaning the Y component is sampled at each pixel, while U(Cb) and V(Cr) components are sampled every 2 pixels in horizontal direction. If each component takes 8 bits, the pair of pixels requires 32 bits.

In memory the data will be stored like this:

Y(1) Y(2) Y(3) Y(4) etc.
............................
.............. Y(n-1) Y(n)
Cr(1,2) Cr(3,4) etc.
...............
....... Cr(n/2)
Cb(1,2) Cb(3,4) etc.
...............
....... Cb(n/2)

Thus the Y planes size in bytes equals the sum of the 2 other planes.

So the first byte in memory is the first pixels luminance component. ImageBuffer.vpData will therefore point to Y(1) when using a byte pointer.

◆ ibpfYUV444_10Packed

final int ibpfYUV444_10Packed = acquireJNI.ibpfYUV444_10Packed_get()
static

A three channel interleaved YUV format occupying 48 bit per pixel with 30 bit of usable data per pixel.

(PFNC name: YUV10)

This is an interleaved pixel format with 2 bytes per color component. The data is stored pixel-wise:

6 bytes 6 bytes 6 bytes etc.
Y(1)Cb(1)Cr(1) Y(2)Cb(2)Cr(2) Y(3)Cb(3)Cr(3) etc.
..........................................
........................... Y(n)Cb(n)Cr(n)

The data of each color component will be LSB aligned, thus the 6 MSB of each 16 bit will not contain valid data.

So the first byte in memory is the first pixels luminance component. ImageBuffer.vpData will therefore point to Y(1) when using a 16 bit pointer.

See also
Converting packed data to planar formats

◆ ibpfYUV444_UYV_10Packed

final int ibpfYUV444_UYV_10Packed = acquireJNI.ibpfYUV444_UYV_10Packed_get()
static

A three channel interleaved YUV format occupying 48 bit per pixel with 30 bit of usable data per pixel.

(PFNC name: YUV422_10_UYV)

This is an interleaved pixel format with 2 bytes per color component. The data is stored pixel-wise:

6 bytes 6 bytes 6 bytes etc.
Cb(1)Y(1)Cr(1) Cb(2)Y(2)Cr(2) Cb(3)Y(3)Cr(3) etc.
..........................................
........................... Cb(n)Y(n)Cr(n)

The data of each color component will be LSB aligned, thus the 6 MSB of each 16 bit will not contain valid data.

So the first byte in memory is the first pixels Cb component. ImageBuffer.vpData will therefore point to Cb(1) when using a 16 bit pointer.

See also
Converting packed data to planar formats

◆ ibpfYUV444_UYVPacked

final int ibpfYUV444_UYVPacked = acquireJNI.ibpfYUV444_UYVPacked_get()
static

A three channel interleaved YUV format occupying 24 bit per pixel.

(PFNC name: YUV8_UYV)

This is an interleaved pixel format.

The data is stored pixel-wise:

3 bytes 3 bytes 3 bytes etc.
Cb(1)Y(1)Cr(1) Cb(2)Y(2)Cr(2) Cb(3)Y(3)Cr(3) etc.
..........................................
........................... Cb(n)Y(n)Cr(n)

So the first byte in memory is the first pixels Cb component. ImageBuffer.vpData will therefore point to Cb(1) when using a byte pointer.

See also
Converting packed data to planar formats

◆ ibpfYUV444Packed

final int ibpfYUV444Packed = acquireJNI.ibpfYUV444Packed_get()
static

A three channel interleaved YUV format occupying 24 bit per pixel.

(PFNC name: YUV8)

This is an interleaved pixel format.

The data is stored pixel-wise:

3 bytes 3 bytes 3 bytes etc.
Y(1)Cb(1)Cr(1) Y(2)Cb(2)Cr(2) Y(3)Cb(3)Cr(3) etc.
..........................................
........................... Y(n)Cb(n)Cr(n)

So the first byte in memory is the first pixels luminance component. ImageBuffer.vpData will therefore point to Y(1) when using a byte pointer.

See also
Converting packed data to planar formats

◆ ibpfYUV444Planar

final int ibpfYUV444Planar = acquireJNI.ibpfYUV444Planar_get()
static

A three channel YUV444 planar format occupying 24 bit per pixels.

(PFNC name: YUV444_8_YVU_Planar)

A planar YUV format. In memory the data will be stored plane-wise like this:

Y(1) Y(2) Y(3) Y(4) etc.
............................
.............. Y(n-1) Y(n)
Cr(1) Cr(2) Cr(3) Cr(4) etc.
............................
.............. Cr(n-1) Cr(n)
Cb(1) Cb(2) Cb(3) Cb(4) etc.
............................
............. Cb(n-1) Cb(n)

So the first byte in memory is the first pixels luminance component. ImageBuffer.vpData will therefore point to Y(1) when using a byte pointer.