什么是yuv420(苹果6sp升级13怎么样)

在YUV420中,一个像素点对应一个Y,一个2X2的小方块对应一个U和V。对于所有YUV420图像,它们的Y值排列是完全相同的,只有Y的图像就是灰度图像。YUV420sp与YUV420p的数据格式区别在于UV排列上的完全不同。420p它是先把U存放完后,再存放V,如下图。而420sp它是UV、UV这样交替存放的。有了上面的理论,我就可以准确的计算出一个YUV420在内存中存放的大小。

大家好,又见面了,我是你们的朋友全栈君。

    在YUV420中,一个像素点对应一个Y,一个2X2的小方块对应一个U和V。对于所有YUV420图像,它们的Y值排列是完全相同的,只有Y的图像就是灰度图像。Y
UV420sp与YUV420p的数据格式区别在于UV排列上的完全不同
。420
p
它是先把U存放完后,再存放V,
如下图
。而420sp它是UV、UV这样交替存放的。

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

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

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

 什么是yuv420(苹果6sp升级13怎么样)

有了上边的理论,我们可以对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;  

            }  

        }           

  }

运行结果效果如下:

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

 什么是yuv420(苹果6sp升级13怎么样)

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


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127551.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • spring boot jedis_spring整合redis详解

    spring boot jedis_spring整合redis详解1.1.Jedis所需要的jar包redis.clientsjedis3.2.01.1.连接Redis注意事项 禁用Linux的防火墙:Linux(CentOS7)里执行命令systemctlstop/disablefirewalld.serviceredis.conf中注释掉bind127.0.0.1,然后protected-modeno1.2.Jedis常用操作1.2.1.创建动态的工程1.2.1.创建测试程序publicstat

    2022年9月9日
  • Insecure default in Elasticsearch enables remote code execution

    Insecure default in Elasticsearch enables remote code execution

    2022年1月4日
  • webstorm2021.11.4激活码[最新免费获取]

    (webstorm2021.11.4激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlF6EG2ZUBVX-eyJsaWNlbnNlSWQi…

    2022年3月28日
  • 工具杂记-notepad++正则表达式匹配替换

    工具杂记-notepad++正则表达式匹配替换这里其实是这样的就是有时候我们建表不规范,导致idea自动生成的实体类有bug。get/set后面的字母为小写,这样但要使用反射的时候。就会出现问题。找不到这个方法。这里我们可以通过使用notepad++用正则表达式进行替换。这是一个很好的工具:这里可以替换文件夹里面所有文件。这里我以单个文件为例:如下点击repalceAll即可替换运行后结果如下:…

    2022年5月17日
  • Angular面试题_angular面试

    Angular面试题_angular面试1.angular的数据绑定采用什么机制?详述原理答案:脏检查机制。解析:双向数据绑定是AngularJS的核心机制之一。当view中有任何数据变化时,会更新到model,当model中数据有变化时,view也会同步更新,显然,这需要一个监控。原理就是,Angular在scope模型上设置了一个监听队列,用来监听数据变化并更新view。每次绑定一个东西到view上时AngularJS就会往$watch队列里插入一条$watch,用来检测它监视的mode

    2022年10月18日
  • 解决linux下sudo更改文件权限报错xxxis not in the sudoers file. This incident will be reported.

    解决linux下sudo更改文件权限报错xxxis not in the sudoers file. This incident will be reported.本文转自Linux社区作者为z-sm的文章原文链接http://www.linuxidc.com/Linux/2016-07/133066.htmLinux中普通用户用sudo执行命令时报”xxxisnotinthesudoersfile.Thisincidentwillbereported”错误,解决方法就是在/etc/sudoers文件里给该用户添加权限。如下:1.切换到

    2022年6月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号