美文网首页图像相关ArcFace
图像实战 - RGB、YUV图像格式介绍

图像实战 - RGB、YUV图像格式介绍

作者: 省油的灯_wsy | 来源:发表于2019-02-28 16:52 被阅读0次

    ArcFace 2.0 API目前支持多种图像格式:BGR24NV21NV12I420YUYV(Android、IOS只支持其中的部分)。以下介绍这几种图像格式的内存排列方式。

    一、相关图像颜色空间介绍

    1. RGB颜色空间

    RGB颜色空间以Red、Green、Blue三种基本色为基础,进行不同程度的叠加,产生丰富而广泛的颜色,所以俗称三基色模式。
    常见的RGB格式有:RGB_565RGB_888ARGB_8888ARGB_4444等。
    但是,安卓的同学们注意了,谷歌挖了个坑:
    ARGB_8888ARGB_4444实际上在底层对应的是 RGBA_8888RGBA_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全部连续存储,如I420YV12,即3个plane
    packed: Y、U、V交叉存储,如YUYV,即1个plane
    semi-planar: Y连续存储,U、V交叉存储,如NV21NV12,即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交叉排序(NV12NV21只是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各自连续排序(YV12I420只是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

    相关文章

      网友评论

        本文标题:图像实战 - RGB、YUV图像格式介绍

        本文链接:https://www.haomeiwen.com/subject/iahkuqtx.html