NV21、NV12、YV12、RGB、YUV、RGBA、RGBX8888等图像色彩编码格式区别

2023-11-06

常用图像颜色编码格式:


NV21、NV12、YV12、RGB、YUV、RGBA、RGBX8888都是常见的图像颜色编码格式,它们之间的主要区别在于色彩空间和数据排列方式。


NV21:NV21是Android系统使用的一种图像颜色编码格式,它采用的是YUV 4:2:0的采样方式,意味着垂直方向上每两个像素采样一次,水平方向上每个像素采样两次。NV21的Y分量是亮度信息,V和U分量是色度信息(分别代表饱和度和色调)。这种格式主要应用于前置摄像头和Android的Camera API。


NV12:NV12是一种用于视频编解码的颜色编码格式,它同样采用了YUV 4:2:0的采样方式。NV12的Y分量是亮度信息,V和U分量也是色度信息。不同的是,与NV21不同的是,NV12的Y、V、U三个分量分别采用了不同的采样率,即垂直方向上每两个像素采样一次,水平方向上每隔一个像素采样一次。


YV12:YV12是一种常见的视频编解码格式,它同样采用了YUV 4:2:0的采样方式。YV12的Y分量是亮度信息,V和U分量也是色度信息。与NV12不同的是,YV12的V和U分量交换了位置。这种格式主要应用于软件编解码器,如FFmpeg。


RGB:RGB是一种常见的颜色编码格式,它采用红、绿、蓝三种颜色组成图像。RGB的R、G、B三个分量分别表示红色、绿色和蓝色的强度。RGB图像中的每个像素都需要三个值来表示颜色,因此它的数据排列方式是按照红、绿、蓝的顺序排列。


RGBA:RGBA是一种常见的颜色编码格式,与RGB类似,但它额外包含了一个Alpha通道,用于表示像素的透明度。RGBA的R、G、B三个分量分别表示红色、绿色和蓝色的强度,A表示透明度。


RGBX8888:RGBX8888是一种常见的颜色编码格式,与RGBA类似,但它将像素的颜色和透明度信息都存储在32位整型中。RGBX8888的R、G、B三个分量分别表示红色、绿色和蓝色的强度,X表示透明度。


YUY2:YUY2是一种常见的视频编解码格式,它采用YUV 4:2:2的采样方式。YUY2的Y分量是亮度信息,U和V分量是色度信息(分别代表饱和度和色调)。YUY2在水平方向上每隔一个像素采样一次,垂直方向上每隔两个像素采样一次。


UYVY:UYVY是一种常见的视频编解码格式,它同样采用YUV 4:2:2的采样方式。UYVY的Y分量是亮度信息,U和V分量是色度信息(分别代表饱和度和色调)。UYVY在水平方向上每隔一个像素采样一次,垂直方向上每隔两个像素采样一次。


阅读389
分享