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

news/2025/2/12 22:51:59/
    在YUV420中,一个像素点对应一个Y,一个2X2的小方块对应一个UV。对于所有YUV420图像,它们的Y值排列是完全相同的,只有Y的图像就是灰度图像。Y UV420spYUV420p的数据格式区别在于UV排列上的完全不同 420 p 它是先把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



http://www.ppmy.cn/news/589771.html

相关文章

Android AudioTrack播放PCM文件

上篇文章写了使用AudioRecord采集音频&#xff0c;为了测试采集音频是否正确&#xff0c;可以通过AudioTrack播放音频试下。 AudioTrack只能播放PCM格式的文件。PCM全称是Pulse Code Modulation&#xff0c;即通常所说的音频的裸数据格式。描述一段PCM数据需要量化格式&#x…

Go 语言结构体

1、Go 语言结构体 Go 语言中数组可以存储同一类型的数据&#xff0c;但在结构体中我们可以为不同项定义不同的数据类型。 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 1.1 定义结构体 结构体定义需要使用 type 和 struct 语句&#xff0c;struct 语句定…

【MySQL】- 07 影响MySQL性能的配置参数

影响MySQL性能的配置参数 1 连接2 查询缓存3 临时表4 会话内存5慢查询日志小结 1 连接 ​ 连接通常来自Web服务器&#xff0c;下面列出了一些与连接有关的参数&#xff0c;以及该如何设置它们。 ​ 1、max_connections ​ 这是Web服务器允许的最大连接数&#xff0c;记住每个连…

iOS 17 beta 2有哪些BUG?iOS 17 beta 2推荐升级吗?

虽然iOS 17 beta 2 带来了大量的功能更新&#xff0c;但毕竟是测试版&#xff0c;海量的适配BUG也一同随之而来。 想升级iOS 17 beta 2的用户不妨先查看下目前存在的问题汇总&#xff01; 一&#xff1a;存储空间更小了 升级beta1后存储空间缩小了大概3G左右&#xff0c;bet…

低功耗电路电池电压测量pcb设计

相信大家都遇到过低功耗电路电池电量检测的PCB设计。如何测量电池的电压呢&#xff1f;采用运放来进行测量肯定不考虑&#xff0c;因为运放也是耗电单元。 那么我们考虑一下电阻分压进行电压测量&#xff0c;因需要考虑到低功耗因素&#xff0c;串联电阻就必须很大&#xff0c;…

CS61a-2020fall学习笔记

此项目含有我对cs61a2020秋季学期大部分lab&#xff0c;discussion&#xff0c;project和homework的解答。从2021/06/22-2021/11/26&#xff0c;暑假太贪玩了&#xff0c;导致一共用时5个月才完成。 课程主页 github项目地址 使用ok时为了不提交邮箱&#xff0c;可在命令行后…

HDLbits---Exams/m2014 q6

HDLbits—Exams/m2014 q6 状态转移图完成就好了不需要任何解题思路 module top_module (input clk,input reset, // synchronous resetinput w,output z); parameter A 3b000,B 3b001,C 3b010,D 3b011,E 3b100,F 3b101;reg[2:0]state,next_state;always(posedge clk)beg…

北京数码视讯s905l固件_数码视讯Q6联通版S905L芯片第三方刷机免拆卡刷固件

数码视讯Q6联通版S905L芯片第三方刷机免拆卡刷固件分享 固件介绍&#xff1a; 1、不带ROOT权限&#xff0c;适用于数码视讯Q6联通版S905L芯片。 2、调出原厂固件屏蔽的wifi&#xff0c;开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、无开机广告&#xff0c;无系统更新…