Keep on going, never give up.

摄像头输出格式YUV、RAW介绍

本文汇总常见摄像头输出格式YUV和RAW格式,也有直接输出JPEG格式,那种摄像头太高级了,微型终端上很少用到。YU(Cb)V(Cr)。

常见输出格式有:

  • RGB4 —— 16色,每个像素用4位表示,需要调色板
  • RGB8 —— 256色,每个像素用8位表示,需要调色板
  • RGB565 —— 每个像素用16位表示,RGB分量分别使用5位、6位、5位
  • RGB555 —— 每个像素用16位表示,RGB分量都使用5位(剩下的1位不用)
  • RGB24 —— 每个像素用24位表示,RGB分量各使用8位
  • RGB32 —— 每个像素用32位表示,RGB分量各使用8位(剩下的8位不用)
  • ARGB32 —— 每个像素用32位表示,RGB分量各使用8位(剩下的8位用于表示Alpha通道值)
  • YUY2 —— YUY2格式,以4:2:2方式打包
  • YUYV —— YUYV格式(实际格式与YUY2相同)
  • YVYU —— YVYU格式,以4:2:2方式打包
  • UYVY —— UYVY格式,以4:2:2方式打包
  • AYUV —— 带Alpha通道的4:4:4 YUV格式
  • Y41P —— Y41P格式,以4:1:1方式打包
  • Y411 —— Y411格式(实际格式与Y41P相同)
  • Y211 —— Y211格式
  • IF09 —— IF09格式
  • IYUV —— IYUV格式
  • YV12 —— YV12格式
  • YVU9 —— YVU9格式

YVYU, UYVY格式跟YUY2類似,只是排列順序有所不同。

常见排列格式如下:

  • YVYU: YVYUYVYUYVYU  =>YUV422
  • I420: YYYYYYYY UU VV    =>YUV420P
  • YV12: YYYYYYYY VV UU    =>YUV420P
  • NV12: YYYYYYYY UVUV    =>YUV420SP
  • NV21: YYYYYYYY VUVU    =>YUV420SP

I420和YV12都是3-plane,也就是YUV数据段分了三段Y-U-V,而NV12和NV21则是2-plane,也就是YUV数据段只分两段Y-UV或是Y-VU,处理时必须特别注意BUFFER的起始地址!!

网上很多YUV转RGB,其实都是YUV444,而不是YUV420, 420处理时,还细分是NV12还是NV21或是YV12等格式,必须把UV映射弄清楚。不同的转换矩阵转出来效果也不同,不同的转换矩阵往往对应的输入源数据也不同。
正常讲,只要源码流程正确,至多是出来的效果略有差异,但应该不会巨大反差,否则说明要么是YUV测试图有问题,要么是代码有问题。

正在使用的JPEG库是YV12格式,如果NV12转成I420,那么图片看起来,蓝色和黄色就是反着的,转成YV12格式后正常,转换后好像亮度太亮了,于是加了Auto focus,看起来颜色要正常一些了。

更多对应关系:

http://zh.wikipedia.org/wiki/YUV

重要参考:

http://www.blogbus.com/chatte-logs/1475266.html

YUV同RGB之间转换:

http://www.fourcc.org/fccyvrgb.php

相关评论(0):  

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

最新文章

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载也必须遵循“署名-非商业用途-保持一致”的创作共用协议. 返回顶部
Copyright@2005-2016 Metsky.com, All rights Reserved.