美文网首页日常收录
RGBA和YUV的区别

RGBA和YUV的区别

作者: ugpass | 来源:发表于2020-08-28 17:14 被阅读0次

视频压缩方式

  • 对视频采用一定对编码技术进行压缩
  • 采集格式不一致,原文件大小也会不一致

以1280x720的一张位图为例

RGB格式
RGB 24位格式,RGB分别占8位

则图片大小为:1280 * 720 * 3 * 8 / 8 / 1024 / 1024 = 2.63M

YUV格式

  • 原始数据


    原始数据
  • YUV4:4:4 采样
    每个像素点Y、UV的分量均采集,并且每个分量占8位,所以同样是2.63M

YUV4:4:4
  • YUV4:2:2 采样
    每个像素点Y的分量采集,UV分量是隔一个像素点采集一个,计算公式为:
    (1280 * 720 * 8 + 1280 * 720 * 8 * 2 * 0.5) / 8 / 1024 / 1024 = 1.75M
    YUV4:2:2

即相邻两个像素点,共用1个UV分量,采集的YUV分量为

Y1, U1, Y2, V2, Y3, U3, Y4, V4
Y5, U5, Y6, V6, Y7, U7, Y8, V8

映射还原后的像素点为

[Y1, U1, V2] [Y2, U1, V2] [Y3, U3, V4] [Y4, U3, V4] 
[Y5, U5, V6] [Y6, U5, V6] [Y7, U7, V8] [Y8, U7, V8] 
  • YUV4:2:0 采样 常用


    YUV4:2:0

大小计算:
(1280 * 720 * 8 + 1280 * 720 * 8 * 2 * 0.25) / 8 / 1024 / 1024 = 1.32M

即一个田字格内的像素共用一堆UV分量,采集的YUV分量为

Y1, U1, Y2, Y3, U3, Y4
Y5, V5, Y6, Y7, V7, Y8

映射还原后的像素点为

[Y1, U1, V5] [Y2, U1, V5] [Y3, U3, V7] [Y4, U3, V7] 
[Y5, U1, V5] [Y6, U1, V5] [Y7, U3, V7] [Y8, U3, V7] 

相关文章

  • RGBA和YUV的区别

    视频压缩方式 对视频采用一定对编码技术进行压缩 采集格式不一致,原文件大小也会不一致 以1280x720的一张位图...

  • rgba / yuv buffer 转 UIImage

    1.rgba转UIimage 1.yuv 转UIimage a.YUV(NV12)-->CIImage--->UI...

  • YUV420转RGBA之使用libyuv

    前面在《YUV_420_888介绍及YUV420转RGBA》[https://www.jianshu.com/p/...

  • Metal--RGBA与YUV

    在看这篇文章的时候,我们需要带着几个问题。 什么是YUV? 为什么视频采集要用YUV而不用RGBA? RGB和YU...

  • YUV420转RGBA之使用opencv

    前面在《YUV_420_888介绍及YUV420转RGBA》一文中介绍了YUV420的转换,并提供了自己写的转换代...

  • 视频基础-YUV,RGBA

    矩阵 在先讲颜色编码之前,先回顾一下高数中的矩阵的基本知识《线性代数》: 什么是矩阵 矩阵是指纵横排列的二维数据表...

  • 关于透明度属性回顾

    关于透明度属性区别 rgba()和opacity的透明效果有什么不同? rgba()和opacity都能实现透明效...

  • 30.rgba和opacity的区别? 31.CSS属性curs

    30.rgba和opacity的区别? (1)rgba和opacity都能实现透明效果,但最大的不同在于opaci...

  • OpenGL 使用 Shader 实现 RGBA 转 I420(

    前面连续写过两篇 shader 实现 RGBA 转 YUV 的文章: OpenGL 使用 shader 实现 RG...

  • rgba()和 opacity 的区别

    opacity作用于元素,以及元素内的所有内容的透明度, 而rgba()只作用于元素的颜色或其背景色。(设置rgb...

网友评论

    本文标题:RGBA和YUV的区别

    本文链接:https://www.haomeiwen.com/subject/bqkcsktx.html