亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【金秋打卡】第24天 YUV的常見數據采集格式和存儲格式

標簽:
Android

课程名称音视频基础+ffmpeg原理 入门音视频技术开发
课程章节:视频基础知识
课程讲师李超

课程内容

1.什么是 YUV

YUV(也称 YCbCr),是一种颜色编码,其中Y表示明亮度,U和V表示的则是色度,作用是描述影像色彩及饱和度。

“色度”定义了颜色的两个方面─色调与饱和度,分别用Cr和Cb来表示。其中Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异。

与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽。YUV 的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。

RGB 与 YUV 的关系

RGB 通常用于屏幕图像的展示,YUV 用于视频的采集和编码。

RGB 转 YUV

    Y = 0.299*R + 0.587*G + 0.114*B
    U = -0.147*R - 0.289*G +0.436*B = 0.492*(B-Y)
    V = 0.615*R - 0.515*G - 0.100*B = 0.877*(R-Y)

YUV 转 RGB

    R = Y + 1.140*V
    G = Y - 0.394*U - 0.581*V
    B = Y + 2.032*U

2.YUV 的常见采集格式

YUV 的常见采样方式有三种:YUV4:4:4、YUV4:2:2、YUV4:2:0,其中YUV4:2:0 是最常用的格式。

4:2:0并不意味着只有 Y、Cb 两个分量,而没有 Cr 分量。它实际指的是对每行扫描线来说,只有一种色度分量,它以 2:1 的抽样率存储。相邻的扫描行存储不同的色度分量,也就是说,如果一行是 4:2:0的话,下一行就是4:0:2,再下一行是4:2:0……以此类推。

  • 4:4:4,表示完全取样。
  • 4:2:2,表示2:1的水平取样,垂直完全采样。
  • 4:2:0,表示2:1的水平取样,垂直2:1采样。

可以这样理解:

  • 4:4:4,每一个Y对应一组UV分量,一个YUV占8+8+8 = 24bits 3个字节。
  • 4:2:2,每两个Y共用一组UV分量,一个YUV占8+4+4 = 16bits 2个字节。
  • 4:2:0,每四个Y共用一组UV分量,一个YUV占8+2+2 = 12bits 1.5个字节。

3.YUV 的存储格式

YUV 的存储格式有两种:planar模式和 packed模式。

planar 模式

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

  • I420(又称 YU12),首先存储所有Y值,然后是所有U值,最后是所有V值。
  • YV12 iOS手机从摄像头采集的预览数据一般都是YV12。首先是所有Y值,然后是所有V值,最后是所有U值。
I420: YYYYYYYY UU VV => YUV420P
YV12: YYYYYYYY VV UU => YUV420P

packed 模式

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

  • NV12,android手机从摄像头采集的预览数据一般都是NV21,存储顺序是先存Y,再VU交替存储。
  • NV21,NV21存储顺序是先存Y值,再VU交替存储。
NV12: YYYYYYYY UVUV => YUV420SP
NV21: YYYYYYYY VUVU => YUV420SP

图片描述
图片描述

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
移動開發工程師
手記
粉絲
12
獲贊與收藏
17

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消