关闭

详解YUV420数据格式 (YUV420sp和YUV420p)

标签: YUV420spYUV420p旋转90度
4318人阅读 评论(0) 收藏 举报
分类:
    在YUV420中,一个像素点对应一个Y,一个2X2的小方块对应一个UV。对于所有YUV420图像,它们的Y值排列是完全相同的,只有Y的图像就是灰度图像。YUV420spYUV420p的数据格式区别在于UV排列上的完全不同420p它是先把U存放完后,再存放V如下图。而420sp它是UVUV这样交替存放的。

有了上面的理论,我就可以准确的计算出一个YUV420在内存中存放的大小。
Y = width * height像素点
U = Y / 4  
V = Y / 4

所以YUV420 数据在内存中的大小 width * height * 3 / 2 Bytes

设一个分辨率为8X4YUV图像,它们的格式如下图:

 

有了上边的理论,我们可以对Android摄像头采集的YUV420sp数据做很多的转换,下面我写一个旋转90度的算法。

代码如下

static void rotateYUV240SP(byte[] src,byte[] des,int width,int height)  

 {           

        int wh = width * height;  

        //旋转Y  

        int k = 0;  

        for(int i=0;i<width;i++) {  

            for(int j=0;j<height;j++)   

            {  

                  des[k] = src[width*j + i];              

                  k++;  

            }  

        }  

          

        for(int i=0;i<width;i+=2) {  

            for(int j=0;j<height/2;j++)   

            {     

                  des[k] = src[wh+ width*j + i];      

                  des[k+1]=src[wh + width*j + i+1];  

                  k+=2;  

            }  

        }           

  }

运行结果效果如下:

上边视频是摄像头的预览数据(预览数据的图像截图看不见,郁闷啊),所以我为了能让大家看到效果,专门拍了一张照片。

 

转自:http://blog.csdn.net/jefry_xdz/article/details/7931018


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

YUV格式学习:NV12和YUV420P格式互换

NV12和YUV420的转换是在相同采样空间的转换,只是个别分量位置的调整,只要明白了Y、U、V分量的布置,就很容易写出来。
  • subfate
  • subfate
  • 2015-08-05 22:38
  • 4486

YUV422转换YUV420应用实例

在上一篇文章中JPEG编码学习—JPEG数据转YUV数据应用实例 已经可以将v4l2 采集到的JPEG数据转换为YUV422格式,但是我们有时候需要使用其他格式的数据,比如用YUV420作为H264的...
  • li_wen01
  • li_wen01
  • 2016-12-20 19:58
  • 1432

YUV格式学习:YUV420P、YV12、NV12、NV21格式转换成RGB24

对于YUV420的格式,网上有一大堆资料,这里就不说了。直奔主题,给出如何转换的函数,一如既往,只用代码说事。
  • subfate
  • subfate
  • 2015-08-05 22:30
  • 3531

图文详解YUV420数据格式

声明:本文转载自:http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html YUV格式有两大类:planar和p...
  • think_embed
  • think_embed
  • 2013-07-22 14:02
  • 895

图文详解YUV420数据格式

YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U...
  • liujian8654562
  • liujian8654562
  • 2017-12-22 16:18
  • 103

图文详解YUV420数据格式

YUV格式有两大类:planar和packed。 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。 对于packed的YUV格式,每个像素点...
  • jinghao666666
  • jinghao666666
  • 2016-02-25 15:50
  • 295

详解 YUV420数据格式

YUV格式有两大类:planar和packed。 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。 对于packed的YUV格式,每个像素点的Y...
  • liukun321
  • liukun321
  • 2013-07-13 15:45
  • 1586

文详解YUV420数据格式

文详解YUV420数据格式 YUV格式有两大类:planar和packed。 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V...
  • tgdzsjh
  • tgdzsjh
  • 2014-03-26 16:19
  • 321

详解YUV420数据格式

1. YUV简介 YUV定义:分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影...
  • m0_37402140
  • m0_37402140
  • 2017-10-26 00:43
  • 66

详解YUV420数据格式

原文地址:http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html 1. YUV简介 YUV定义:分为三个分量,“Y”表示明亮...
  • wanfengnianhua
  • wanfengnianhua
  • 2017-04-18 12:33
  • 284
    个人资料
    • 访问:41626次
    • 积分:928
    • 等级:
    • 排名:千里之外
    • 原创:51篇
    • 转载:4篇
    • 译文:1篇
    • 评论:6条