最近需要将摄像头采集到的YUYV数据转换为YUV420,在网上找了很多算法,发现写的比较复杂,因此自己写了两个,仅供参考:

void YUV422To420P(char *yuv422, char *yuv420,int i32Height ,int i32Width  )
{          if( yuv422 == nullptr || yuv420 == nullptr ){return;}char *y = nullptr;char *u = nullptr;char *v = nullptr;int i = 0, j = 0,z = 0,GetUvFlag = 0;char* start = yuv422;y = yuv420;u = y + i32Height * i32Width;v = u + i32Height * i32Width / 4;for (int row = 0; row < i32Width * i32Height * 2; ){y[i++]      = start[row];        y[i++]      = start[row+2];if(GetUvFlag%2 == 0){u[j++]  = start[row+1];//uv[z++]  = start[row+3];//v}row+=4;if(row%(i32Width*2) == 0){GetUvFlag++;}}}
void YUV422TO420SP(char *yuv422, char *yuv420,int i32Height ,int i32Width )
{if( yuv422 == nullptr || yuv420 == nullptr ){return;}char *y = yuv420;char *uv = yuv420+ i32Width * i32Height ;char *start = yuv422;int i = 0, j = 0, GetUvFlag = 0;for (int row = 0; row < i32Width * i32Height * 2; ){y[i++]      = start[row];        y[i++]      = start[row+2];//只取偶数行if(GetUvFlag%2 == 0){uv[j]     = start[row+1];//uuv[j+1]         = start[row+3];//vj+=2;}row+=4;if(row%(i32Width*2) == 0){GetUvFlag++;}}
}

YUYV(YUV422)转YUV420算法相关推荐

  1. YUV和RGB的区别(以及YUV444 YUV422 YUV411 YUV420的介绍)

    RGB是构成多种颜色的三基色(红绿蓝),也称为加成色.主要是图像的采集和显示.YUV是优化彩色视频信号的编码和传输,和rgb相比,YUV占用的带宽少. YUV中Y表示的是亮度,是通过RGB输入信号确定 ...

  2. YUV444、YUV422、YUV420、YUV420P、YUV420SP、YV12、YU12、NV12、NV21

    前言 各种YUV格式多如牛毛啊,刚开始学起来确实很费劲,网上搜索的文章讲的并不是很明白. 各种不同的YUV格式其实只是采样方式和存储方式不同,就这两点,不同的采样方式是为了实现节省内存,不同的存储方式 ...

  3. RGB、YUY2、YUYV、YVYU、UYVY、AYUV、YUV444、YUV422、YUV420、YUV411

    1) YUV 4:4:4YUV三个信道的抽样率相同,因此在生成的图像里,每个象素的三个分量信息完整(每个分量通常8比特),经过8比特量化之后,未经压缩的每个像素占用3个字节.下面的四个像素为: [Y0 ...

  4. 笔记:YUV444、YUV422、YUV420、YU12、YV12、NV12、NV21的区别

    介绍 YUV444:指在采样时,Y.U.V采样的比例相同,每个像素占用的分量相同 YUV422:指在采样时,Y 和 UV 分量按照 2: 1 的比例采样,每两个 Y 分量公用一组 UV 分量. YUV ...

  5. V4L2采集YUYV数据—X264编码H264视频实例

    前几天在网上买个罗技的C270摄像头,它支持YUYV(YUV422)和JPEG数据输出.它规格书上写的是支持HD720P(1280*720像素),在实际的调试过程中,我使用该分辨率会导致数据采集过慢. ...

  6. 02.yuyv转rgb888代码优化

    一.前言 最近准备做一个图形检测项目练手,奈何选用的UVC摄像头支持YUYV或MJPG格式不能直接使用,对网上大部分关于yuyv转rgb888转化算法都如下原代码所示(我自己也搞不清这代码是从那抄的, ...

  7. 摄像头YUV图像常见数据格式介绍

    1.YUV模型分类: 是根据一个亮度(Y分量)和两个色度(UV分量)来定义颜色空间,常见的YUV格式描述有YUY2.YUYV.YVYU.UYVY.AYUV.Y41P.Y411.Y211.IF09.IY ...

  8. iOS视频开发(二):视频H264硬编码

    1.前言 前面我们已经介绍了在iOS开发中如果调用摄像头进行视频数据的采集和编解码.但折腾了这么多,对于YUV这玩意儿还是不是特别理解.其实在我的个人实践过程中我也一直搞不懂这个YUV,一顿恶补之后, ...

  9. YUV色彩空间变换与采样格式

    YUV实际上是一个家族, 除了YUV色彩空间外还有其他色彩空间, 如YIQ, YCbCr , YDbDr (YDbDr主要用于模拟信号)等,都是用于描述灰度和色差概念的.由于这些色彩空间与YUV 色彩 ...

最新文章

  1. Apache Tiles 学习(四)、Tiles实战
  2. python游戏编程入门书籍推荐-Python游戏编程入门3
  3. zend studio for Eclipse注册码及汉化
  4. 【DP】砝码称重 (ssl 1072)
  5. 计算机科学中的研究成果,田聪教授团队科研成果在计算机科学顶会LICS 2020发表...
  6. es multi match_PHP 的ES搜索操作
  7. mysql 动态传入表名 存储过程_MySQL之常见约束以及事务和存储过程
  8. #include,#import ,@class 有什么区别?
  9. 四大行的CIO们如何看待大数据
  10. php进销存源码系统开发
  11. vm虚拟机显卡是不是比服务器主板上的要好,自VM11起,虚拟显卡的性能是增强还是削弱?...
  12. RuoYi-Vue前端分页
  13. MacBook 管理员账户无法删除 解决方法
  14. equal和==区别详解
  15. linux服务器实现AD域认证,Linux下用户启用Windows AD做集中认证
  16. Excel:如何批量将文本数字转为数值型数据
  17. SpringBoot+阿里云短信服务实现发送短信验证码功能
  18. 2020年 ICLR 国际会议最终接受论文(poster-paper)列表(四)
  19. 云服务器的购买和使用教程(腾讯云为例)
  20. android拨号器源代码,android拨号器...

热门文章

  1. Chrome 完整 主题背景 黑色 设置
  2. 解决wget下载https时报错
  3. 基于uniapp+vue+微信小程序+安卓app电影院订票小程序H5网站设计
  4. 51单片机八人抢答器c语言,抢答器 - 基于51单片机 - 8人有程序较完整.doc
  5. 斯坦福大学(吴恩达) 机器学习课后习题详解 第一周 线性代数
  6. 计算机网络主机访问网址(建立HTTP)过程
  7. 全国大学生软件测试开发者测试大赛笔记总结
  8. (二)CAN通信协议代码-基础版
  9. PHP与MySQL连接菜鸟教程_PHP 连接 MySQL 数据库 | w3cschool菜鸟教程
  10. 某政府部门IBM x3850X5服务器数据丢失的解决过程