The memory mapped AXI4 interface runs on the ap_clk
clock domain. The signals follow the specification as defined
in the
Vivado Design Suite: AXI Reference
Guide (UG1037). The Video Frame Buffer Read and Video Frame Buffer
Write support the pixel formats in memory
described in the following table.
Video Format | ID | Description | Bits per Component | Bytes per Pixel |
---|---|---|---|---|
RGBX8 | 10 | packed RGB | 8 | 4 bytes per pixel |
BGRX8 | 27 | packed BGR | 8 | 4 bytes per pixel |
YUVX8 | 11 | packed YUV 4:4:4 | 8 | 4 bytes per pixel |
YUYV8 | 12 | packed YUV 4:2:2 | 8 | 2 bytes per pixel |
UYVY8 | 28 | packed YUV 4:2:2 | 8 | 2 bytes per pixel |
RGBA8 | 13 | packed RGB with alpha | 8 | 4 bytes per pixel |
BGRA8 | 26 | packed BGR with alpha | 8 | 4 bytes per pixel |
YUVA8 | 14 | packed YUV 4:4:4 with alpha | 8 | 4 bytes per pixel |
RGBX10 | 15 | packed RGB | 10 | 4 bytes per pixel |
YUVX10 | 16 | packed YUV 4:4:4 | 10 | 4 bytes per pixel |
Y_UV8 | 18 | semi-planar YUV 4:2:2 | 8 | 1 byte per pixel per plane |
Y_UV8_420 | 19 | semi-planar YUV 4:2:0 | 8 | 1 byte per pixel per plane |
RGB8 | 20 | packed RGB | 8 | 3 bytes per pixel |
BGR8 | 29 | packed BGR | 8 | 3 bytes per pixel |
YUV8 | 21 | packed YUV 4:4:4 | 8 | 3 bytes per pixel |
Y_UV10 | 22 | semi-planar YUV 4:2:2 | 10 | 4 bytes per 3 pixels per plane |
Y_UV10_420 | 23 | semi-planar YUV 4:2:0 | 10 | 4 bytes per 3 pixels per plane |
Y8 | 24 | packed luma only | 8 | 1 byte per pixel |
XY10 | 25 | packed luma only | 10 | 4 bytes per 3 pixels |
RGBX12 | 30 | packed RGB | 12 | 5 bytes per pixel |
YUVX12 | 31 | packed YUV 4:4:4 | 12 | 5 bytes per pixel |
Y_UV12 | 32 | semi-planar YUV 4:2:2 | 12 | 3 bytes per 2 pixels |
Y_UV12_420 | 33 | semi-planar YUV 4:2:0 | 12 | 3 bytes per 2 pixels |
Y12 | 34 | packed luma only | 12 | 3 bytes per 2 pixels |
RGB16 | 35 | packed RGB | 16 | 6 bytes per pixel |
YUV16 | 36 | packed YUV 4:4:4 | 16 | 6 bytes per pixel |
Y_UV16 | 37 | semi-planar YUV 4:2:2 | 16 | 2 bytes per pixel |
Y_UV16_420 | 38 | semi-planar YUV 4:2:0 | 16 | 2 bytes per pixel |
Y16 | 39 | packed luma only | 16 | 2 bytes per pixel |
Y_U_V8 | 42 | 3 planar YUV 4:4:4 | 8 | 1 byte per pixel |
Y_U_V8_420 | 41 | 3 PLANAR YUV 4:2:0 | 8 | 1 byte per pixel |
Y_U_V10 | 43 | 3 planar YUV 4:4:4 | 10 | 4 byte per 3 pixels |
Y_U_V12 | 44 | 3 planar YUV 4:4:4 | 12 | 3 bytes per 2 pixels |
The following table shows the IP format in raster order with the corresponding V4L2 and DRM pixel formats.
IP Format | V4L2 4CC | DRM 4CC |
---|---|---|
RGBX8 | V4L2_PIX_FMT_BGRX32 | DRM_FORMAT_XBGR8888 |
BGRX8 | V4L2_PIX_FMT_XRGB32 | DRM_FORMAT_XRGB8888 |
YUVX8 | V4L2_PIX_FMT_XVUY32 | DRM_FORMAT_XVUY8888 |
YUYV8 | V4L2_PIX_FMT_YUYV | DRM_FORMAT_YUYV |
UYVY8 | V4L2_PIX_FMT_UYVY | DRM_FORMAT_UYVY |
RGBA8 | Not supported | Not supported |
BGRA8 | Not supported | Not supported |
YUVA8 | Not supported | Not supported |
RGBX10 | V4L2_PIX_FMT_XBGR30 | DRM_FORMAT_XBGR2101010 |
YUVX10 | V4L2_PIX_FMT_XVUY10 | DRM_FORMAT_XVUY2101010 |
Y_UV8 | V4L2_PIX_FMT_NV16 | DRM_FORMAT_NV16 |
Y_UV8_420 | V4L2_PIX_FMT_NV12 | DRM_FORMAT_NV12 |
RGB8 | V4L2_PIX_FMT_RGB24 | DRM_FORMAT_BGR888 |
BGR8 | V4L2_PIX_FMT_BGR24 | DRM_FORMAT_RGB888 |
YUV8 | V4L2_PIX_FMT_VUY24 | DRM_FORMAT_VUY888 |
Y_UV10 | V4L2_PIX_FMT_XV20M | DRM_FORMAT_XV20 |
Y_UV10_420 | V4L2_PIX_FMT_XV15M | DRM_FORMAT_XV15 |
Y8 | V4L2_PIX_FMT_GREY | DRM_FORMAT_Y8 |
XY10 | V4L2_PIX_FMT_XY10 1 | DRM_FORMAT_Y10 |
RGBX12 | V4L2_PIX_FMT_XBGR40 1 | Not supported |
YUVX12 | Not supported | Not supported |
Y_UV12 |
V4L2_PIX_FMT_X212 1 V4L2_PIX_FMT_X212M 1 |
Not supported |
Y_UV12_420 |
V4L2_PIX_FMT_X012 1 V4L2_PIX_FMT_X012M 1 |
Not supported |
Y12 | V4L2_PIX_FMT_XY12 1 | Not supported |
RGB16 | V4L2_PIX_FMT_BGR48 | Not supported |
YUV16 | Not Supported | Not supported |
Y_UV16 |
V4L2_PIX_FMT_X216 1 V4L2_PIX_FMT_X216M 1 |
Not supported |
Y_UV16_420 |
V4L2_PIX_FMT_X016 1 V4L2_PIX_FMT_X016M 1 |
Not supported |
Y16 | V4L2_PIX_FMT_Y16 | Not supported |
|
The following tables explain the expected pixel mappings in memory for each of the mentioned listed formats.