YUV的几种格式

420P:420P数据的存放方式一般是先存放Y,然后存放U,最后存放V的数据,每一个像素使用12bits(1.5BYTE)保存。

422P:422P数据的存放方式也是先存放Y,然后存放U,最后存放V的数据,每一个像素使用16bits(2BYTE)保存。

420PSemi,422PSemi:这是TI新添加的一种格式,在DM6467的输出当中使用的是422PSemi来进行输出,所以将YUV的数据输出之前都需要将其他格式的YUV数据转换为422PSemi格式。

这两种格式所占用的存储空间分别和420P, 422P所占的存储空间一致。

420PSemi:先存放Y的数据,接着U和V的数据交叉存放,对于422PSemi也是一样。

举个例子:

对于30*20像素的420P的YUV数据,在存储的时候会先存30*20字节的Y,然后存放15*10字节的U,最后存放15*10的V。

如果是420PSemi,那么会先存放30*20字节的Y,接着U和V会交叉存放,分别存放15*10字节,这样420P和420PSemi所占空间均为30*20*3/2字节。

YUV格式简介

YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB要求三个独立的视频信号同时传输)。其中 “Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是透过RGB输入信号来建立的,方 法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面─色调与饱和度,分别用Cr和CB来表示。其中,Cr反映了RGB输入信号红色部 分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。

采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而 没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机 也能接收彩色电视信号。

在TI的DMAI框架中,对于OMAP3530,视频输出的时候使用的是V4L2_PIX_FMT_YUYV (’YUYV’), 而DM6467采用的是V4L2_PIX_FMT_YUV422UVP。

下面的话是从DMAI的ColorSpace.h中摘出来的:

而我们在使用YUVPlayer的时候,只有420P, 422P等能够播放,而420PSemi和422PSemi不能播放,所以在存储和读取的时候需要转换,下面是一个转化函数:

void yuv_420p_to_420psemi(int32_t height, int32_t width, int32_t lineLength, char *src, char *dst)

{

int32_t i, j;

int32_t size;

int32_t quarter_size;

size = height * lineLength;

quarter_size = size / 4;

for (i=0; i<height; i++)

{

for (j=0; j<width; j++)

{

memcpy(dst, src, width);

}

dst += lineLength;

src += width;

}

for (i=0; i<height/2; i++)

{

for (j=0; j<width; j += 2)

{

*(dst+j+i*lineLength) = *src++;

}

}

for (i=0; i<height/2; i++)

{

for (j=1; j<width; j += 2)

{

*(dst+j+i*lineLength) = *src++;

}

}

}

DM365 color space相关推荐

  1. Unity Gamma Linear Color Space

    转载文章,出自http://www.manew.com/thread-105872-1-1.html,作者 alphatt Gamma & Linear Color Space 一.真实?感觉 ...

  2. Gamma、Linear、sRGB 和Unity Color Space,你真懂了吗?

    "为什么我渲染出来的场景,总是感觉和真实世界不像呢?" 游戏从业者或多或少都听过Linear.Gamma.sRGB和伽马校正这些术语,互联网上也有很多科普的资料,但是它们似乎又都没 ...

  3. 彩色空间(Color Space)

    背景 学习openCV-Python Tutorial,在Image Processing in OpenCV这一节里有提到彩色空间的转换,结合其他的一些资料对彩色空间(Color Space),彩色 ...

  4. java.lang.IllegalArgumentException: Numbers of source Raster bands and source color space components

    项目在文件压缩的时候报错如下: Exception in thread "main" java.lang.IllegalArgumentException: Numbers of ...

  5. 关于Color Space是Gamma还是Linear的一些问题

    这个问题源自于我们的UI发现自己在FGUI下制作的东西,在Unity中显示的效果不对.例如90%透明度的黑底图片导出到Unity中的效果非常的透,可能只有70%左右的效果. 然后我们绞尽脑汁的找了半天 ...

  6. Gamma Linear Color Space

    http://www.manew.com/forum.php?mod=viewthread&tid=105872 一.真实?感觉?    1.你相信你的眼睛吗 (蓝黑or白金?) (A和B的颜 ...

  7. sRGB Color Space

    转自:http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/ With consumer-level hardware now cap ...

  8. Color Space: Ycc

    在进行图像扫描时,有一种重要的扫描输入设备PhotoCd,由于PhotoCd在存储图像的时候要经过一种模式压缩,所以PhotoCd采用了Ycc颜色空间,此空间将亮度作由它的主要组件,具有两个单独的颜色 ...

  9. color space

    r本来在看frostbite在hdr output上面的文章,里面介绍了一些我比较模糊的概念,所以先补充下这个部分. 视觉系统和chroma subsampling 这个就是大家比较常见的人类视觉的特 ...

最新文章

  1. 蓝桥杯2015初赛试题
  2. 微软Expression Blend功能介绍
  3. 模拟键盘 键盘虚拟代码
  4. 图书管理系统_目前图书管理系统存在的问题
  5. “1天一朵云”,这是如何做到的?
  6. java第七章jdbc课后简答题_jsp编程基础第七章习题
  7. Google 要进军游戏行业了?!
  8. 忘记win7登陆密码的问题解决2种可能以及其问题的延伸
  9. Win2008:在 Win2008R2 中安装 PowerShell 4.0 (旧作)
  10. GIT (develop|MERGING)
  11. Excel日期运算单,多条件求和与计数
  12. 计算机网络原理ip计算,计算机网络原理IP地址计算题
  13. 你创业为什么会失败?
  14. oracle 恢复表关联,ORACLE 12C使用RMAN进行表恢复
  15. 5. SAP S/4 运维基础知识(Basic Knowledge) - SAP S/4 Basis Learning
  16. POJ1753 Flip Game题解
  17. 必须了解的产品经济学:边际效用VS边际成本
  18. Spark中repartition和coalesce的用法
  19. android 黑科技 hook技术简单示例
  20. 【Week2 -3】Switch日程安排

热门文章

  1. 什么样的数据应该放入缓存
  2. 判断字符串中是否为数字的三种方法
  3. 使用HTML5+CSS3制作圆角内发光按钮----示例
  4. 一步一步学Silverlight 2系列(3):界面布局_转载
  5. MFC的程序,不想显示窗口,任务栏里也不显示
  6. unity深度查找某个子物体和遍历所有子物体方法
  7. docker实战系列之搭建rabbitmq
  8. 013. MVC5过滤器
  9. 如何用MaskBlt实现两个位图的合并,从而实现背景透明
  10. SpringXML方式配置bean的懒加载lazy-init