2022年对YUV格式的详细描述 .pdf

上传人:Che****ry 文档编号:35749064 上传时间:2022-08-23 格式:PDF 页数:4 大小:60.93KB
返回 下载 相关 举报
2022年对YUV格式的详细描述 .pdf_第1页
第1页 / 共4页
2022年对YUV格式的详细描述 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年对YUV格式的详细描述 .pdf》由会员分享,可在线阅读,更多相关《2022年对YUV格式的详细描述 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、对 YUV 格式的详细描述 ,以及存储形式小知识: RGB 与 YUV- 摘自 DirectShow实务精选作者:陆其明计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R( Red )、G(Green )、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB 色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法)。根据三基色原理,任意一种色光F 都可以用不同分量的R、G、B 三色相加混合而成。F = r R + g G + b B 其中, r、g、b 分别为三基色参与混合的系数。当三

2、基色分量都为0(最弱)时混合为黑色光;而当三基色分量都为k(最强)时混合为白色光。调整r、g、b 三个系数的值,可以混合出介于黑色光和白色光之间的各种各样的色光。那么 YUV 又从何而来呢?在现代彩色电视系统中,通常采用三管彩色摄像机或彩色CCD摄像机进行摄像,然后把摄得的彩色图像信号经分色、分别放大校正后得到RGB ,再经过矩阵变换电路得到亮度信号Y 和两个色差信号R Y(即 U)、BY(即 V),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的 YUV 色彩空间表示。采用 YUV 色彩空间的重要性是它的亮度信号Y 和色度信号U、V 是分离的。如果

3、只有Y 信号分量而没有U、V 分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV 空间正是为了用亮度信号Y 解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。YUV 与 RGB 相互转换的公式如下(RGB 取值范围均为0-255 ):Y = 0.299R + 0.587G + 0.114B U = -0.147R - 0.289G + 0.436B V = 0.615R - 0.515G - 0.100B R = Y + 1.14V G = Y - 0.39U - 0.58V B = Y + 2.03U 在 DirectShow中, 常见的 RGB 格式有 RG

4、B1 、 RGB4 、 RGB8 、 RGB565 、 RGB555 、 RGB24 、RGB32 、ARGB32 等;常见的 YUV 格式有 YUY2 、YUYV 、YVYU 、UYVY 、AYUV 、Y41P 、Y411 、Y211 、IF09、IYUV 、YV12 、YVU9 、YUV411 、YUV420 等。作为视频媒体类型的辅助说明类型(Subtype ),它们对应的GUID 见表 2.3。常见的 RGB 和 YUV 格式 GUID格式描述 MEDIASUBTYPE_RGB12 色,每个像素用1 位表示,需要调色板 名师资料总结 - - -精品资料欢迎下载 - - - - - -

5、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - MEDIASUBTYPE_RGB416 色,每个像素用4 位表示,需要调色板 MEDIASUBTYPE_RGB8256 色,每个像素用8 位表示,需要调色板 MEDIASUBTYPE_RGB565每个像素用16 位表示, RGB 分量分别使用5 位、6 位、 5 位 MEDIASUBTYPE_RGB555每个像素用16 位表示, RGB 分量都使用5 位(剩下的 1 位不用) MEDIASUBTYPE_RGB24每个像素用24 位表示, RGB

6、分量各使用8 位 MEDIASUBTYPE_RGB32每个像素用32 位表示, RGB 分量各使用8 位(剩下的 8 位不用) MEDIASUBTYPE_ARGB32每个像素用32 位表示, RGB 分量各使用8 位(剩下的 8 位用于表示Alpha 通道值) MEDIASUBTYPE_YUY2YUY2 格式,以 4:2:2 方式打包 MEDIASUBTYPE_YUYVYUYV 格式(实际格式与YUY2 相同) MEDIASUBTYPE_YVYUYVYU 格式,以 4:2:2 方式打包 MEDIASUBTYPE_UYVYUYVY 格式,以4:2:2 方式打包 MEDIASUBTYPE_AYUV

7、 带 Alpha 通道的 4:4:4 YUV格式 MEDIASUBTYPE_Y41PY41P 格式,以4:1:1 方式打包 MEDIASUBTYPE_Y411Y411 格式(实际格式与Y41P 相同) MEDIASUBTYPE_Y211Y211 格式 MEDIASUBTYPE_IF09 IF09 格式 MEDIASUBTYPE_IYUV IYUV 格式 MEDIASUBTYPE_YV12YV12 格式 MEDIASUBTYPE_YVU9 YVU9 格式下面分别介绍各种RGB 格式。RGB1 、 RGB4 、RGB8 都是调色板类型的RGB 格式,在描述这些媒体类型的格式细节时,通常会在 BIT

8、MAPINFOHEADER数据结构后面跟着一个调色板(定义一系列颜色)。它们的图像数据并不是真正的颜色值,而是当前像素颜色值在调色板中的索引。以RGB1 ( 2 色位图)为例,比如它的调色板中定义的两种颜色值依次为0 x000000 (黑色)和0 xFFFFFF(白色),那么图像数据001101010111 (每个像素用1 位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白 。 RGB565使用 16 位表示一个像素,这16 位中的 5 位用于 R,6 位用于 G,5 位用于 B。程序中通常使用一个字(WORD ,一个字等于两个字节)来操作一个像素。当读出一个像素后,这个字的各个位意义如

9、下:高字节低字节R R R R R G G G G G G B B B B B可以组合使用屏蔽字和移位操作来得到RGB 各分量的值:#define RGB565_MASK_RED 0 xF800 #define RGB565_MASK_GREEN 0 x07E0 #define RGB565_MASK_BLUE 0 x001F R = (wPixel & RGB565_MASK_RED) 11; / 取值范围0-31 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页

10、 - - - - - - - - - G = (wPixel & RGB565_MASK_GREEN) 5; / 取值范围0-63 B = wPixel & RGB565_MASK_BLUE; / 取值范围0-31 RGB555 是另一种16 位的 RGB 格式, RGB 分量都用5 位表示(剩下的1 位不用)。使用一个字读出一个像素后,这个字的各个位意义如下:高字节低字节X R R R R G G G G G B B B B B(X 表示不用,可以忽略)可以组合使用屏蔽字和移位操作来得到RGB 各分量的值:#define RGB555_MASK_RED 0 x7C00 #define RGB

11、555_MASK_GREEN 0 x03E0 #define RGB555_MASK_BLUE 0 x001F R = (wPixel & RGB555_MASK_RED) 10; / 取值范围0-31 G = (wPixel & RGB555_MASK_GREEN) 5; / 取值范围0-31 B = wPixel & RGB555_MASK_BLUE; / 取值范围0-31 RGB24使用 24 位来表示一个像素,RGB 分量都用8 位表示, 取值范围为0-255 。注意在内存中 RGB 各分量的排列顺序为:BGR BGR BGR。通常可以使用RGBTRIPLE数据结构来操作一个像素,它的

12、定义为:typedef struct tagRGBTRIPLE BYTE rgbtBlue; / 蓝色分量 BYTE rgbtGreen; / 绿色分量 BYTE rgbtRed; / 红色分量 RGBTRIPLE; RGB32使用 32 位来表示一个像素,RGB 分量各用去8 位,剩下的8 位用作 Alpha 通道或者不用。(ARGB32 就是带 Alpha 通道的 RGB32 。)注意在内存中RGB 各分量的排列顺序为: BGRA BGRA BGRA。通常可以使用RGBQUAD数据结构来操作一个像素,它的定义为:typedef struct tagRGBQUAD BYTE rgbBlue;

13、 / 蓝色分量 BYTE rgbGreen; / 绿色分量 BYTE rgbRed; / 红色分量 BYTE rgbReserved; / 保留字节(用作Alpha 通道或忽略) RGBQUAD; 下面介绍各种YUV 格式。 YUV 格式通常有两大类:打包(packed )格式和平面(planar )格式。前者将YUV 分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(macro-pixel );而后者使用三个数组分开存放YUV 三个分量, 就像是一个三维平面一样。表 2.3 中的 YUY2 到 Y211 都是打包格式,而IF09 到 YVU9 都是平面格式。(注意:在介绍各种具体格

14、式时,YUV 各分量都会带有下标,如Y0、U0、V0 表示第一个像素的YUV分量, Y1、U1、V1 表示第二个像素的YUV 分量,以此类推。)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - YUY2 (和 YUYV )格式为每个像素保留Y 分量,而 UV 分量在水平方向上每两个像素采样一次。一个宏像素为4 个字节,实际表示2 个像素。( 4:2:2 的意思为一个宏像素中有4 个Y 分量、 2 个 U 分量和 2 个 V 分量。

15、)图像数据中YUV 分量排列顺序如下:Y0 U0 Y1 V0 Y2 U2 Y3 V2 YVYU 格式跟 YUY2 类似,只是图像数据中YUV 分量的排列顺序有所不同:Y0 V0 Y1 U0 Y2 V2 Y3 U2 UYVY 格式跟 YUY2 类似,只是图像数据中YUV 分量的排列顺序有所不同:U0 Y0 V0 Y1 U2 Y2 V2 Y3 AYUV 格式带有一个Alpha 通道,并且为每个像素都提取YUV 分量,图像数据格式如下:A0 Y0 U0 V0 A1 Y1 U1 V1 Y41P (和 Y411)格式为每个像素保留Y 分量,而UV 分量在水平方向上每4 个像素采样一次。一个宏像素为12

16、个字节,实际表示8 个像素。图像数据中YUV 分量排列顺序如下:U0 Y0 V0 Y1 U4 Y2 V4 Y3 Y4 Y5 Y6 Y8 Y211 格式在水平方向上Y 分量每 2 个像素采样一次,而UV 分量每 4 个像素采样一次。一个宏像素为4 个字节,实际表示4 个像素。图像数据中YUV 分量排列顺序如下:Y0 U0 Y2 V0 Y4 U4 Y6 V4 YVU9 格式为每个像素都提取Y 分量,而在 UV 分量的提取时, 首先将图像分成若干个4 x 4的宏块,然后每个宏块提取一个U 分量和一个V 分量。图像数据存储时,首先是整幅图像的 Y 分量数组,然后就跟着U 分量数组,以及V 分量数组。

17、IF09 格式与 YVU9 类似。IYUV 格式为每个像素都提取Y 分量,而在 UV 分量的提取时, 首先将图像分成若干个2 x 2的宏块,然后每个宏块提取一个U 分量和一个V 分量。 YV12 格式与 IYUV 类似。YUV411 、 YUV420格式多见于DV 数据中,前者用于 NTSC 制,后者用于 PAL 制。YUV411为每个像素都提取Y 分量,而 UV 分量在水平方向上每4 个像素采样一次。YUV420 并非 V分量采样为0,而是跟 YUV411 相比, 在水平方向上提高一倍色差采样频率,在垂直方向上以 U/V 间隔的方式减小一半色差采样,如图2.12 所示。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁