始终保持视频数据YUV联系,因为基于其产品的组织不同的公司格不同的类型定义,派生出多种不同YUV格公式。
大体,YUV从在点的形式的像素组织中,有两个:1.planer状态。2.packet状态。
planar模式示例: Y0Y1....Yn U0U1...Um V0V1..Vm,YUV三个通道分别连续存储;
packet模式举例: Y0U0V0 + Y1U1V1 + ... + YnUnVn,YUV三个通道混合存储。
參考:
http://www.fourcc.org/yuv.php
http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html
大体,YUV从在点的形式的像素组织中,有两个:1.planer状态。2.packet状态。
planar模式示例: Y0Y1....Yn U0U1...Um V0V1..Vm,YUV三个通道分别连续存储;
packet模式举例: Y0U0V0 + Y1U1V1 + ... + YnUnVn,YUV三个通道混合存储。
planar模式有利于编解码的输入输出;packet模式有利于视频数据採集输入与显示输出。
因为人眼对于色度不敏感,因此能够减少色度採样。这样能够减少处理数据量。也减少存储空间。
依据UV採样的不同,YUV格式又能够分为400。420,422,444等格式。
400 灰度数据,没有色度数据;
420 色度在水平和垂直两个方向上,採样率都减半。这样每相邻的4个Y公用一个U,V数据。U,V的数据量都为Y的1/4. (420这个名字起的很不好,令人产生误解,可是约定俗成就这个延续下来了。
)
422 色度在水平方向上採样率减半。这样每行相邻的2个Y公用一个U,V数据,U,V的数据量都为Y的1/2.
444 色度採样率和亮度一样。每一个Y都有各自的U,V数据,U,V的数据量都和Y同样。
还有种411格式。不经常使用,就不关注了。
一般称400用8bit来表征一个像素点。420是12比特,422是16比特,444是24比特。
用总的数据量/像素个数 就是这个比特数。比如420格式 总数据量是(w*h + w*h/4 + w*h/4)*8比特 = 12*w*h比特。
YUV经常使用格式
格式 | Mode | 通道 | 比特 | 演示样例 | |
GRAY | Planar | 1 | 8 | 400. Y0Y1...Y15 | |
I420 | Planar | 3 | 12 | 420. Y0Y1..Y15 U0U1U2U3 V0V1V2V3 * 经常使用 理解为YU12 | |
IYUV | Planar | 3 | 12 | 同I420 | |
YUV420P | Planar | 3 | 12 | 同I420 | |
YUVJ420P | Planar | 3 | 12 | 同I420,不同的是色彩转换公式,YUVJ使用 JPEG 公式, 输出数据范围[0..255], I420的范围是 [16-240] | |
YV12 | Planar | 3 | 12 | 420. Y0Y1..Y15 V0V1V2V3 U0U1U2U3 * 经常使用 非常多编解码器都用这个格式输入输出 | |
YVU420P | Planar | 3 | 12 | 同YV12 | |
NV12 | Planar | 2 | 12 | 420. Y0Y1..Y15 U0V0U1V1.....U3V3 *经常使用 | |
NV21 | Planar | 2 | 12 | 420. Y0Y1..Y15 V0U0V1U1.....V3U3 | |
YV16 | Planar | 3 | 16 | 422. Y0Y1..Y15 V0V1..V7 U0U1..U7 | |
YUV422P | Planar | 3 | 16 | 同YV16 | |
I422 | Planar | 3 | 16 | 同YV16 | |
UYVY | Packed | 1 | 16 | 422. U0Y0V0Y1|U1Y2V1Y3|... | |
Y422 | Packed | 1 | 16 | 同UYVY | |
YUY2 | Packed | 1 | 16 | 422. Y0U0Y1V0|Y2U1Y3V1|... *非常多摄像机的输出格式 | |
YUV422 | Packed | 1 | 16 | 同YUY2 | |
YUYV | Packed | 1 | 16 | 同YUY2 | |
YVYU | Packed | 1 | 16 | 422. Y0V0Y1U0|Y2V1Y3U1|... | |
YU16 | Planar | 3 | 16 | 422. Y0Y1..Y15 U0U1..U7 V0V1..V7 | |
NV16 | Planar | 2 | 16 | 422. Y0Y1..Y15 U0V0U1V1..U7V7 | |
YV24 | Planar | 3 | 24 | 444. Y0Y1..Y15 V0V1..V15 U0U1..U15 | |
I444 | Planar | 3 | 24 | 同YV24 | |
IYU2 | Packed | 1 | 24 | 444. U0Y0V0|U1Y1V1|... |
參考:
http://www.fourcc.org/yuv.php
http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html
版权声明:本文博主原创文章,博客,未经同意不得转载。