博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
YUV 像素格式
阅读量:6595 次
发布时间:2019-06-24

本文共 6781 字,大约阅读时间需要 22 分钟。

YUV是种颜色编码方法,是彩色电视为了兼容黑白电视而发展起来的。在现代彩色电视系统中,通常采用三管彩色摄影机或彩色进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),然后对这三个信号分别进行编码。Y就是所谓的(),表示光的浓度且为非线性,使用()编码处理,而CB和CR则为蓝色和红色的浓度偏移量成份。

 

2 YUV采样格式

  (1) YUV 4:4:4

  YUV三个信道的抽样率相同,因此在生成的图像里,每个象素的三个分量信息完整(每个分量通常8比特),经过8比特量化之后,未经压缩的每个像素占用3个字节。

  下面的四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]

  存放的码流为: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3

  (2) YUV 4:2:2

  每个色差信道的抽样率是亮度信道的一半,所以水平方向的率只是4:4:4的一半。对非压缩的8比特量化的图像来说,每个由两个水平方向相邻的像素组成的宏像素需要占用4字节内存。

  下面的四个像素为:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]

  存放的码流为:Y0 U0 Y1 V1 Y2 U2 Y3 V3

  映射出像素点为:[Y0 U0 V1] [Y1 U0 V1] [Y2 U2 V3] [Y3 U2 V3]

  (3) YUV 4:1:1

  4:1:1的色度抽样,是在水平方向上对色度进行4:1抽样。对于低端用户和消费类产品这仍然是可以接受的。对非压缩的8比特量化的视频来说,每个由4个水平方向相邻的像素组成的宏像素需要占用6字节内存。

  下面的四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]

  存放的码流为: Y0 U0 Y1 Y2 V2 Y3

  映射出像素点为:[Y0 U0 V2] [Y1 U0 V2] [Y2 U0 V2] [Y3 U0 V2]

  (4)YUV4:2:0

  4:2:0并不意味着只有Y,Cb而没有Cr分量。它指得是对每行扫描线来说,只有一种色度分量以2:1的抽样率存储。相邻的扫描行存储不同的色度分量,也就是说,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0...以此类推。对每个色度分量来说,水平方向和竖直方向的抽样率都是2:1,所以可以说色度的抽样率是4:1。

  下面八个像素为:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]

   [Y5 U5 V5] [Y6 U6 V6] [Y7U7 V7] [Y8 U8 V8]

  存放的码流为:Y0 U0 Y1 Y2 U2 Y3 Y5 V5 Y6 Y7 V7 Y8

  映射出的像素点为:[Y0 U0 V5] [Y1 U0 V5] [Y2 U2 V7] [Y3 U2 V7]

   [Y5 U0 V5] [Y6 U0 V5] [Y7U2 V7] [Y8 U2 V7]

 3 YUV 存储格式

YUV格式分为packed格式和planar格式,packed格式会将YUV数据按顺序放进数组里,planar则分将YUV的数据分为三部分放进数组里,即先放Y部分的数据,再放U,接着是V的数据。

3.1 Packed YUV Formats

Label

Bits per pixel

Description

32

Combined YUV and alpha

8

Cirrus Logic format with 4 pixels packed into a u_int32. A form of YUV 4:1:1 wiht less than 8 bits per Y, U and V sample.

16

Essentially a copy of UYVY except that the sense of the height is reversed - the image is upside down with respect to the UYVY version.

8

Apparently a duplicate of Y800 (and also, presumably, "Y8  ")

IRAW

?

Intel uncompressed YUV. I have no information on this format - can you help?

16

Interlaced version of UYVY (line order 0, 2, 4,....,1, 3, 5....) registered by Silviu Brinzei of .

12

Interlaced version of Y41P (line order 0, 2, 4,....,1, 3, 5....) registered by Silviu Brinzei of .

12

12 bit format used in mode 2 of the IEEE 1394 Digital Camera 1.04 spec. This is equivalent to 

24

24 bit format used in mode 0 of the IEEE 1394 Digital Camera 1.04 spec

16

YUV 4:2:2 (Y sample at every pixel, U and V sampled at every second pixel horizontally on each line). A macropixel contains 2 pixels in 1 u_int32. This is a suplicate of  except that the color components use the BT709 color space (as used in HD video).

16

A direct copy of  registered by NVidia to work around problems in some old codecs which did not like hardware which offered more than 2 UYVY surfaces.

UYVP

24?

YCbCr 4:2:2 extended precision 10-bits per component in U0Y0V0Y1 order. Registered by  of Evans & Sutherland. (Awaiting confirmation of component packing structure)

16

YUV 4:2:2 (Y sample at every pixel, U and V sampled at every second pixel horizontally on each line). A macropixel contains 2 pixels in 1 u_int32.

32

10-bit 4:2:2 YCrCb equivalent to the Quicktime format of the same name.

V422

16

I am told that this is an upside down version of UYVY.

V655

16?

16 bit YUV 4:2:2 format registered by Vitec Multimedia. I have no information on the component ordering or packing.

VYUY

?

ATI Packed YUV Data (format unknown but you can get hold of a codec supporting it)

16

Direct copy of UYVY as used by ADS Technologies Pyro WebCam firewire camera.

16

YUV 4:2:2 as for UYVY but with different component ordering within the u_int32 macropixel.

16

Duplicate of YUY2

16

A direct copy of  registered by NVidia to work around problems in some old codecs which did not like hardware which offered more than 2 YUY2 surfaces.

16

YUV 4:2:2 as for UYVY but with different component ordering within the u_int32 macropixel.

12

YUV 4:1:1 (Y sample at every pixel, U and V sampled at every fourth pixel horizontally on each line). A macropixel contains 8 pixels in 3 u_int32s.

12

YUV 4:1:1 with a packed, 6 byte/4 pixel macroblock structure.

8

Packed YUV format with Y sampled at every second pixel across each line and U and V sampled at every fourth pixel.

12

Format as for Y41P but the lsb of each Y component is used to signal pixel transparency .

16

Format as for UYVY but the lsb of each Y component is used to signal pixel transparency .

24?

YCbCr 4:2:2 extended precision 10-bits per component in Y0U0Y1V0 order. Registered by  of Evans & Sutherland.

8

Simple, single Y plane for monochrome images.

8

Duplicate of Y800 as far as I can see.

16

16-bit uncompressed greyscale image.

 UYVY存储结构

UYVY 是一种最常用的 YUV 4:2:2 格式,其数据排列如下:

  

3.2 Planar YUV Formats

Label

Bits per pixel

Description

9

8 bit Y plane followed by 8 bit 4x4 subsampled V and U planes. Registered by Intel.

9?

Registered by Intel., this is the format used internally by Indeo video code

9.5

As YVU9 but an additional 4x4 subsampled plane is appended containing delta information relative to the last frame. (Bpp is reported as 9)

16

8 bit Y plane followed by 8 bit 2x1 subsampled V and U planes.

12

8 bit Y plane followed by 8 bit 2x2 subsampled V and U planes.

12

8 bit Y plane followed by 8 bit 2x2 subsampled U and V planes.

12

Duplicate FOURCC, identical to I420.

12

8-bit Y plane followed by an interleaved U/V plane with 2x2 subsampling

12

As NV12 with U and V reversed in the interleaved plane

12

As YV12 except the U and V planes each have the same stride as the Y plane

12

Similar to IMC1 except that the U and V lines are interleaved at half stride boundaries

12

As IMC1 except that U and V are swapped

12

As IMC2 except that U and V are swapped

12

Format similar to YV12 but including a level of indirection.

Y41B

12?

Weitek format listed as "YUV 4:1:1 planar". I have no other information on this format.

Y42B

16?

Weitek format listed as "YUV 4:2:2 planar". I have no other information on this format.

8

Simple, single Y plane for monochrome images.

8

Duplicate of Y800 as far as I can see.

12

Awaiting clarification of format.

16

Awaiting clarification of format.

Y42B存储结构

YCbCr 4:2:2 的方式存储

 4 YUVRGB的转换关系

yuv422 planar to rgb565

转换公式:
R=Y+1.4075*(V-128)
G=Y-0.3455*(U-128) - 0.7169*(V-128)
B=Y+1.779*(U-128)
为了加快运算速度,采用下面的整形计算法:
u = YUVdata[UPOS] - 128;
v = YUVdata[VPOS] - 128;

rdif = v + ((v * 103) >> 8);

invgdif = ((u * 88) >> 8) +((v * 183) >> 8);
bdif = u +( (u*198) >> 8);

r = YUVdata[YPOS] + rdif;

g = YUVdata[YPOS] - invgdif;
b = YUVdata[YPOS] + bdif;
r=r>255?:255:(r<0:?0:r);
g=g>255?:255:(g<0:?0:g);
b=b>255?:255:(b<0:?0:b);
以上得到的是rgb888的数据,再将rgb888转为rgb555
RGBdata[1] =( (r & 0xF8) | ( g >> 5) );
RGBdata[0] =( ((g & 0x1C) << 3) | ( b >> 3) );
YUV422 Planar  FORMAT size:
size=width*height*2;
YSIZE = size/2;
USIZE = size/4;
VSIZE = size/4;
YPOS=0;
UPOS=YPOS + size/2;
VPOS=UPOS + size/4;

转载地址:http://nijio.baihongyu.com/

你可能感兴趣的文章
当高德一只脚踏入阿里大门时 就注定另一只脚也会迈进去
查看>>
构建Squid代理服务器
查看>>
css 总结1
查看>>
对Oracle ADF中间件开发的一点感觉
查看>>
AWS EBS Magnetic(standard)磁盘性能测试
查看>>
写一个函数,随机地从大小为n的数组中选取m个整数。要求每个元素被选中的概率相等。...
查看>>
Android 在eclipse中没有出现AVD的解决方法
查看>>
求解立方根
查看>>
Encoding Filters to ensure all data is utf-8
查看>>
docker学习笔记1—常用命令
查看>>
怎样分析一个广告创意
查看>>
CentOS6.6 64位Nginx 安装配置
查看>>
查找出含有特定文件并且24小时内有更新的目录
查看>>
etc、var、proc子目录说明
查看>>
Linux 之 rpm 与 yum 包管理
查看>>
AD学习-基本概念
查看>>
Vue.js学习系列(二十)--常用指令(三)
查看>>
PHP下添加pdo_pgsql扩展
查看>>
Linux下查看进程和线程的方法
查看>>
用django搭建一个简单到不好意思见人的博客
查看>>