首页 > 其他 > 详细

YUV格式入门

时间:2015-12-17 19:15:42      阅读:232      评论:0      收藏:0      [点我收藏+]

关于YUV格式的讲解,网上有很多,主要有以下几种格式:

1)打包(packed)格式.将YUV分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(macro-pixel):

MEDIASUBTYPE_YUY2 YUY2格式,以4:2:2方式打包(比较常用的,默认的4:2:2的格式)
MEDIASUBTYPE_YUYV YUYV格式(实际格式与YUY2相同)
MEDIASUBTYPE_YVYU YVYU格式,以4:2:2方式打包
MEDIASUBTYPE_UYVY UYVY格式,以4:2:2方式打包
MEDIASUBTYPE_AYUV              ,带Alpha通道的4:4:4 YUV格式

2)平面(planar)格式。后者使用三个数组分开存放YUV三个分量 

MEDIASUBTYPE_IF09  IF09格式
MEDIASUBTYPE_IYUV  IYUV格式
MEDIASUBTYPE_YV12 YV12格式
MEDIASUBTYPE_YVU9 YVU9格式
 

YUV 采样

YUV 的优点之一是,色度频道的采样率可比 Y 频道低,同时不会明显降低视觉质量。有一种表示法可用来描述 U 和 V 与 Y 的采样频率比例,这个表示法称为 A:B:C 表示法(其实就是Y:U:V):

  • 4:4:4 表示色度频道没有下采样, 每一个Y分量都对应一个UV分量,最简单容易理解。 
srcY = Buf_yuv444;
srcU = srcY + width * height;
srcV = srcU + width * height;
  • 4:2:2 表示 2:1 的水平下采样,没有垂直下采样。相对于4:4:4,就是每隔一行删去一行U(或者V)分量,只保留第0,2,4,6....行的U(V)分量。
srcY = Buf_yuv422;
srcU = srcY + width * height;
srcV = srcU + width/2 * height;
  • 4:2:0 表示 2:1 的水平下采样,2:1 的垂直下采样。相对于4:2:2,再继续每隔一列删去一列U(或者V)分量,只保留第0,2,4,6....列的U(V)分量。
srcY = Buf_yuv420;
srcU = srcY + width * height;
srcV = srcU + width/2 * height/2;
  • 4:1:1 表示 4:1 的水平下采样,没有垂直下采样。对于每个 U 样例或 V 样例,每个扫描行都包含四个 Y 样例。不常见。

 

 

 
 

YUV格式入门

原文:http://www.cnblogs.com/liuyalunuli/p/5054947.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!