ArcFace 2.0 API目前支持多种图像格式:BGR24
、NV21
、NV12
、I420
、YUYV
(Android、IOS只支持其中的部分)。以下介绍这几种图像格式的内存排列方式。
一、相关图像颜色空间介绍
1. RGB颜色空间
RGB颜色空间
以Red、Green、Blue三种基本色为基础,进行不同程度的叠加,产生丰富而广泛的颜色,所以俗称三基色模式。
常见的RGB格式有:RGB_565
、RGB_888
、ARGB_8888
、ARGB_4444
等。
但是,安卓的同学们注意了,谷歌挖了个坑:
ARGB_8888
和ARGB_4444
实际上在底层对应的是 RGBA_8888
和RGBA_4444
,例如ARGB_8888
图像,其像素数据在内存中其实是以R G B A R G B A ...
的顺序排布的。
- Bitmap.java中的内容
public static enum Config {
ALPHA_8,
RGB_565,
/** @deprecated */
@Deprecated
ARGB_4444,
ARGB_8888,
RGBA_F16,
HARDWARE;
private Config() {
}
}
- Bitmap.h中的内容
/** Bitmap pixel format. */
enum AndroidBitmapFormat {
/** No format. */
ANDROID_BITMAP_FORMAT_NONE = 0,
/** Red: 8 bits, Green: 8 bits, Blue: 8 bits, Alpha: 8 bits. **/
ANDROID_BITMAP_FORMAT_RGBA_8888 = 1,
/** Red: 5 bits, Green: 6 bits, Blue: 5 bits. **/
ANDROID_BITMAP_FORMAT_RGB_565 = 4,
/** Deprecated in API level 13. Because of the poor quality of this configuration, it is advised to use ARGB_8888 instead. **/
ANDROID_BITMAP_FORMAT_RGBA_4444 = 7,
/** Alpha: 8 bits. */
ANDROID_BITMAP_FORMAT_A_8 = 8,
};
2. YUV颜色空间
在YUV颜色空间
中,Y用来表示亮度,U和V用来表示色度。
常见的YUV格式有以下几大类:
planar: Y、U、V全部连续存储,如I420
、YV12
,即3个plane
packed: Y、U、V交叉存储,如YUYV
,即1个plane
semi-planar: Y连续存储,U、V交叉存储,如NV21
、NV12
,即2个plane
二、相关图像格式介绍
1. BGR24图像格式
BGR24
图像格式是一种采用24bpp(bit per pixel)的格式。每个颜色通道B、G、R各占8bpp。
排列方式如:
B G R B G R B G R B G R B G R B G R B G R B G R
B G R B G R B G R B G R B G R B G R B G R B G R
B G R B G R B G R B G R B G R B G R B G R B G R
B G R B G R B G R B G R B G R B G R B G R B G R
2. NV21图像格式
NV21
图像格式属于 YUV颜色空间中的YUV420SP
格式,每四个Y分量共用一组U分量和V分量,Y连续排序,U与V交叉排序。
排列方式如:
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
V U V U V U V U
V U V U V U V U
3. NV12图像格式
NV12
图像格式属于 YUV颜色空间中的YUV420SP
格式,每四个Y分量共用一组U分量和V分量,Y连续排序,U与V交叉排序(NV12
和NV21
只是U与V的位置相反)。
排列方式如:
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
U V U V U V U V
U V U V U V U V
4. I420图像格式
I420
图像格式属于 YUV颜色空间中的YUV420P
格式,每四个Y分量共用一组U分量和V分量,Y、U、V各自连续排序。
排列方式如:
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
U U U U
U U U U
V V V V
V V V V
5. YV12图像格式
YV12
图像格式属于 YUV颜色空间中的YUV420P
格式,每四个Y分量共用一组U分量和V分量,Y、U、V各自连续排序(YV12
和I420
只是U与V的位置相反)。
排列方式如:
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
V V V V
V V V V
U U U U
U U U U
6. YUYV图像格式
YUYV
图像格式属于 YUV颜色空间中的YUV422
格式,每两个Y分量共用一组U分量和V分量,Y、U、V交叉排序。
排列方式如:
Y U Y V Y U Y V Y U Y V Y U Y V
Y U Y V Y U Y V Y U Y V Y U Y V
Y U Y V Y U Y V Y U Y V Y U Y V
Y U Y V Y U Y V Y U Y V Y U Y V
网友评论