nv12和nv21(NV12和NV21的区别也就是12和21的区别)
一个平面存储亮度(Y)分量,另一个平面存储两个色度(UV)分量,其中 UV 分量共用一个平面并且以 U, V, U, V 的顺序交错排列,而打包格式由于仅一个平面,打包格式通常只有一个平面,半平面格式具有两个平面而不是三个平面,内存排列如下图所示: I422 属于 YUV422P 格式,内存中按照 Y U Y V 的顺序排列。
本文目录
NV12和NV21的区别也就是12和21的区别
存储格式不同。
存储格式指对计算机信息以"文件"方式的存储,包括图像,声音,图像等。
内容概述:
计算机信息多种多样,信息的存储格式也多种多样。对用户而言,计算机存储的信息都是以“文件”的形式存在。
用户通过计算机应用程序可以创建并保存文件,这个过程便建立了保存文件和应用程序之间的一个“关联”,该关联链接着文件和应用程序,所谓的“文件格式”是指文件中保存的数据类型和保存的方法,与特定应用程序的文件关联直接相关的便是文件的保存格式(存储格式),文件的扩展名便表征了这种“关联”。
详解 YUV 格式(I420/YUV420/NV12/NV12/YUV422)
YUV ( Y’CbCr )是一种像素格式,常见于视频编码与静态图像。与 RGB 格式(红-绿-蓝)相反,YUV 分别由一个称为 Y (相当于灰度)的“亮度”分量(Luminance or Luma)和两个称为 U (蓝色投影 Cb )和 V (红色投影 Cr )的“色度”分量(Chrominance or Chroma)表示,由此得名。 仅有 Y 分量而没有 UV 分量信息,一样可以显示完整的黑白(灰度)图像,解决了模拟信号电视黑白与彩色的兼容问题。 色度通道(UV)的采样率可以低于亮度通道(Y),而不会显着降低感知质量。一种称为 “A:B:C” 的表示法用于描述相对于 Y 采样, U 和 V 的频率: 下图显示了如何针对每个下采样率采样色度。亮度样本用十字表示,色度样本用圆圈表示。 YUV 在存储上通常分为平面格式( Planar ),半平面格式( Semi-Planar )以及打包格式( Packed )。 平面格式有时也称为三面格式( Triplanar ),即 Y, U, V 三个分量各自使用单独的数组保存,这种三平面分离的格式比较方便视频编码。 YU12 即 I420 ,也叫 IYUV ,属于 YUV420P 格式。三个平面,分别存储 Y U V 分量。每四个 Y 分量共享一组 UV 分量。U、V 平面的 strides, width 和 height 都是 Y 平面的一半,因此一个像素 12 bits,内存排列如下图所示: 从图中可看出,U、V 平面的每行字节数(strides)、高(height)都是 Y 平面的一半。 I420 是音视频开发中常用的一种格式。 YV12 与 I420 几乎一样,仅改变了 U, V 平面的顺序。内存排列如下图所示: J420 与 I420 完全相同,但具有完整范围(0-255,full range)的亮度(Y)分量,而不是有限范围(16-240,limited range,在 iOS 上也叫做 video range)。色度(UV)分量与 I420 中的完全相同。 IMC1 与 I420 类似,U, V 平面的宽(width)、高(height)是 Y 平面的一半,但是每行字节数(strides)与 Y 平面一致,因此 U, V 平面在内存上会有留空(padding),因此一个像素 16 bits,如图所示: IMC3 与 IMC1 几乎一样,仅改变了 U, V 平面的顺序。内存排列如下图所示: I422 属于 YUV422P 格式。三个平面,分别存储 Y U V 分量。每两个 Y 分量共享一组 UV 分量。U、V 平面的 strides, width 是 Y 平面的一半,但 height 与 Y 平面一致,因此一个像素 16 bits,内存排列如下图所示: 从图中可看出,U、V 平面的每行字节数(strides)是 Y 平面的一半,高(height)与 Y 平面一致。 J422 与 I422 完全相同,但具有完整范围(0-255,full range)的亮度(Y)分量,而不是有限范围(16-240,limited range,在 iOS 上也叫做 video range)。色度(UV)分量与 I420 中的完全相同。 半平面格式具有两个平面而不是三个平面,一个平面存储亮度(Y)分量,另一个平面存储两个色度(UV)分量。有时也将它们称为双平面格式( BiPlanar )。 NV12 属于 YUV420SP 格式。两个平面,分别存储 Y 分量 和 UV 分量。其中 UV 分量共用一个平面并且以 U, V, U, V 的顺序交错排列。每四个 Y 分量共享一组 UV 分量。 UV 平面的 strides, width 与 Y 平面一样长,但 height 仅为 Y 平面的一半。因此一个像素 12 bits,内存排列如下图所示: 从图中可看出,UV 平面的每行字节数(strides)与 Y 平面一致,高(height)是 Y 平面的一半。 NV12 是 iOS 相机( **CaptureOutput )可直接输出的两种视频帧格式之一,另外一种是 BGRA32 ( kCVPixelFormatType_32BGRA )。 在 iOS 上, NV12 还分为 Full Range (0-255, kCVPixelFormatType_420YpCbCr8BiPlanarFullRange ) 和 Video Range (16-240, kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange ),区别仅为亮度(Y)分量的取值范围,一般而言,Full Range 适用于静态图像(拍照),Video Range 适用于视频采集(摄像)。 NV21 属于 YUV420SP ,与 NV12 几乎一致,区别是 UV 平面中 U 与 V 的排列顺序颠倒,以 V, U, V, U 的顺序交错排列,内存排列如图所示: NV21 是 Android 相机( Camera )默认的输出格式。 打包格式通常只有一个平面,所有亮度(Y)和色度(UV)数据都交织在一起。有点类似于 RGB 格式,只是使用了不同的色彩空间。 打包格式在网络摄像头中较为常见。硬件设备使用多平面格式效率较低,因为每个像素需要多次内存访问。而打包格式由于仅一个平面,访问内存的开销较小。 AYUV 是 Packed 打包格式,其中每个像素编码为四个连续字节,每个像素在内存中按照 V, U, Y, A 的顺序排列(A 指 alpha 通道),如下图所示: YUYV 通常也称作 V422 、 YUY2 、 YUNV YUY2 是 Packed 打包格式,其中两个像素共用一组 UV 分量,内存中按照 Y U Y V 的顺序排列,如下图所示: UYVY 通常也称作 Y422 、 UYNV UYVY 与 YUYV 类似,只是亮度(Y)分量与色度(UV)分量排列顺序颠倒,如下图所示:
更多文章:

plead 和 defend的用法和意义有什么区别?solicit、plead和beg有什么区别
2024年8月12日 00:50

惠普m1005mfp恢复出厂设置(惠普打印机怎么恢复出厂设置)
2024年10月22日 21:31

苹果7手机无服务重启也不行(我的苹果7手机无服务了怎么回事啊)
2025年4月7日 00:36

为什么电脑关不了机怎么解决方法(电脑开机后没反应关不了机怎么办)
2024年6月11日 16:30

东芝c5198功放管参数(c5198三极管是npn吗,和它的参数谢谢)
2025年2月7日 11:43

中关村商城买电脑可靠吗(笔记本电脑zol中关村商城买的是真货吗)
2024年12月28日 17:52

klv-42ex410(索尼KLV-42EX410的保修信息)
2024年7月15日 16:00

华为nova3i和华为nova3(在华为nova3、nova3i和vivo z3中,该如何选择)
2024年2月26日 10:00

zte中兴路由器怎么恢复出厂设置(中兴1800路由器恢复出厂设置)
2023年5月2日 07:40

适马镜头编号年份查询(适马sigma镜头怎么查看生产日期呢)
2025年3月28日 13:40