Skip to content

YUV存储方式

更新日期: 2021-12-30
  • 2021-12-30: 创建文档

前面我们了解了YUV的概念和采样方式。 基于采样方式,本文介绍YUV存储方式。

为表示方便,本文混用YY'

YUV420P

先存放Y,然后是U,最后是V。 Plane模式,即平面模式,不将YUV数据交错存储,而是先存放所有的Y分量,然后存储所有的U(Cb)分量,最后存储所有的V(Cr)分量。

YU12

YU12 即 I420 ,也叫 IYUV ,属于YUV420P。

yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy   (w*h)
uuuuuuuu uuuuuuuu                                                         (w*h/4)
vvvvvvvv vvvvvvvv                                                         (w*h/4)
w*h表示宽乘以高。

YV12

和前面的YU12有些许不同,它的V在U前面

YYYYYYYY
VV
UU

YUV420SP

首先是所有Y值,然后是UV或者VU交替存储。是two-plane模式。Y和UV分为两个plane,但是UV(CbCr)为交错存储,而不是分为三个平面。

NV12

先存y,然后uv交替,u在前,v在后

yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy   (w*h)
uvuvuvuv uvuvuvuv uvuvuvuv uvuvuvuv                                       (w*h/2)

NV21

先存y,然后vu交替,v在前,u在后

yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy
vuvuvuvu vuvuvuvu vuvuvuvu vuvuvuvu

nv21是Android中android.hardware.Camera的默认输出格式。 android.hardware.camera2推荐使用YUV_420_888格式。

作者: rustfisher.com | rf.cs@foxmail.com
示例: AndroidTutorial Gitee, Tutorial Github
本文链接: https://www.an.rustfisher.com/media/video/yuv-save-format/
一家之言,仅当抛砖引玉。如有错漏,还请指出。如果喜欢本站的内容,还请支持作者。也可点击1次下方的链接(链接内容与本站无关),谢谢支持服务器