当前位置: 首页 > news >正文

YUV图像

YUV的存储方式

UV格式有两大类:planar和packed。

对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。

对于packed的YUV格式,每个像素点的Y,U,V是连续交替存储的。

YUV的采样

主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0

YUV4:4:4 表示完全取样,一个Y对应一组UV分量。一个YUV占 8+8+8 = 24bits,3个字节。

YUV4:2:2 表示2:1的水平取样,垂直完全采样,两个Y共用一组UV分量。一个YUV占 8+4+4 = 16bits 2个字节。

YUV4:2:0 表示2:1的水平取样,垂直2:1采样,每四个Y共用一组UV分量。一个YUV占 8+2+2 = 12bits 1.5个字节

YUV与RGB转换

RGB转成YUV:

Y      =  (0.257 * R) + (0.504 * G) + (0.098 * B) + 16
Cr = V =  (0.439 * R) - (0.368 * G) - (0.071 * B) + 128
Cb = U = -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128

YUV转成RGB:

B = 1.164(Y - 16) + 2.018(U - 128)
G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)
R = 1.164(Y - 16) + 1.596(V - 128)

YUV420p和YUV420sp

YUV420:是目前最主流的采样方式,因为这样的采样最省空间,而又不会影响肉眼的观赏性。

YUV420p:又叫planer平面模式,Y ,U,V分别在不同平面,也就是有三个平面。

YUV420p又分为YU12 和 YU21(又叫I420):他们的区别只是存储UV的顺序不一样而已。

YU12:安卓的模式。存储顺序是先存Y,再存U,最后存V。YYYYUUUVVV

YV12:存储顺序是先存Y,再存V,最后存U。YYYVVVUUU

YUV420SP是packed类型的。它是先存储了 Y 分量,但接下来并不是再存储所有的 U 或者 V 分量,而是把 UV 分量交替连续存储。

NV12 和 NV21 格式都属于YUV420SP类型。

NV12 是 IOS 中有的模式,它的存储顺序是先存 Y 分量,再 UV 进行交替存储。

NV21 是 安卓 中有的模式,它的存储顺序是先存 Y 分量,在 VU 交替存储。

http://www.lryc.cn/news/8883.html

相关文章:

  • .net6API使用AutoMapper和DTO
  • IO知识整理
  • 【正点原子FPGA连载】第十三章QSPI Flash读写测试实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
  • 深入理解mysql的内核查询成本计算
  • LeetCode 141. 环形链表
  • git提交
  • Java中常见的编码集问题
  • 数据结构与算法(Java版) | 就让我们来看看几个实际编程中遇到的问题吧!
  • 【C++算法】dfs深度优先搜索(上) ——【全面深度剖析+经典例题展示】
  • 总结高频率Vue面试题
  • IP协议详解
  • webpack5 基础配置
  • IDEA入门安装使用教程
  • Lambda表达式使用及详解
  • JAVA练习52-打家劫舍
  • 简单谈一谈幂等测试
  • typescript复习笔记
  • webstorm开发electron,调试主进程方案
  • 2W字正则表达式基础知识总结,这一篇就够了!!(含前端常用案例,建议收藏)
  • 自学web前端觉得好难,可能你遇到了这些困境
  • ASEMI中低压MOS管18N20参数,18N20封装,18N20尺寸
  • [NetBackup]客户端安装后server无法连通client
  • 黑马Java后端项目实战--在线聊天交友
  • 【实战系列 2】Yapi接口管理平台Getshell-Linux后门权限维持与痕迹清除
  • 设计模式之抽象工厂模式(C++)
  • Kotlin新手教程一(Kotlin简介及环境搭建)
  • 【虚拟仿真】Unity3D打包WEBGL实现全屏切换
  • java对象内存结构分析与大小计算
  • RabbitMQ学习(七):交换器
  • cmd命令大全