首页 > 其他分享 >YUV(NV12)与NHWC(BGRA)图像格式之间的区别联系

YUV(NV12)与NHWC(BGRA)图像格式之间的区别联系

时间:2024-09-03 14:38:07浏览次数:9  
标签:采样 图像格式 YUV 色度 NHWC 格式 NV12 分量

NV12是一种视频编码格式,属于YUV颜色空间的一种采样方式。

以下是关于NV12格式的具体介绍:

  1. YUV色彩空间:在数字图像处理中,YUV色彩空间将彩色图像分为亮度信息(Y)和色度信息(U、V)。这种分离使得图像处理更为灵活,尤其是在视频压缩和传输中非常有用。

  2. 4:2:0采样:YUV 4:2:0是指对亮度信息Y进行全采样,而色度信息U和V则进行半数采样,即每四个Y分量共享一对UV分量。这样做可以在保证图像质量的同时减少数据量。

  3. 交错存储:在NV12格式中,亮度信息Y和色度信息UV是交替存储的。具体来说,所有的Y分量连续存储,紧随其后的是交替排列的U和V分量。

  4. 硬件支持:由于NV12格式在英特尔硬件平台上有原生支持,因此在兼容性和性能方面有一定的优势。它通常用于Android平台的相机默认图像格式。

  5. 与其他YUV格式的关系:除了NV12外,还有其他几种常见的YUV像素格式,如I420、YV12、YUYV等。它们之间的主要区别在于色度信息的采样和存储方式。

  6. 应用场景:NV12由于其高效的存储方式,常用于视频会议、视频编解码器以及各种多媒体应用中。

  7. 转换方法:有时需要将NV12格式的视频数据转换为其他格式以适应不同的处理需求或显示设备,这通常涉及到色度重采样和颜色空间转换的过程。

  8. 优缺点:与完全独立的色度采样相比,交错存储的方式可能会降低一些图像质量,但同时减少了数据带宽的需求,实现了存储空间和传输效率的优化。

综上所述,NV12是一种在视频处理和通信中广泛使用的色彩编码格式,它在保持图像质量的同时有效降低了数据量,适用于多种不同的应用场合。

YUV数据长度=width * height * 3 / 2
RGB数据长度=width * height * 3
NV12图像格式属于YUV颜色空间中的YUV420SP格式,每四个Y分量共用一组U分量和V分量,Y连续排序,U与V交叉排序


若每个小方框为1个pixel,每个pixel为1Byte,这张图像的分辨率就是4*4,图片大小就是4 *4 *1.5 = 24Byte

标签:采样,图像格式,YUV,色度,NHWC,格式,NV12,分量
From: https://www.cnblogs.com/bai7/p/18298715

相关文章

  • 【工程应用十二】Bayer图像格式中Hamilton-Adams及Zhang Wu 基于LMMSS算法的Demosaic
    Demosaic,中文直接发翻译为去马赛克,但是其本质上并不是去除马赛克,这让很多第一次接触这个名词或者概念的人总会想的更多。因此,一般传感器在采集信息时一个位置只采集RGB颜色中的一个通道,这样可以减少采集量,降低成本,由于人的视觉对绿色最为敏感,所以一般情况下,绿色分量会比红色......
  • 【用python进行图像格式转换】
    Pillow是Python中一个强大的图像处理库,其截图功能不仅可以获取屏幕截图,还能对截图进行丰富的图像处理操作。例如,您可以使用Pillow库对截图进行图像格式转换,如将JPEG格式转换为PNG格式。以下为您提供一些使用Python进行图像格式转换的代码示例:首先,使用Pillow......
  • fpga图像处理实战-RGB转YCBCR(YUV)算法
    YCBCR        YCbCr是一种用于数字图像和视频的颜色空间。它将颜色分解为亮度(Y)和两个色度分量(Cb和Cr)。这种分解使得视频压缩和传输更加高效,因为人眼对亮度变化更敏感,而对色度变化较不敏感。        亮度(Y):亮度表示图像的灰度级别或光强度。它是RGB颜色空间中......
  • Qt基于SDL库简单实现YUV视频播放
    示例使用的是Qt5.10和minGW_32位,用C语言实现。将用于测试的YUV视频和SDL2.dll放到对应的build目录下,将SDL库放到项目目录下.pro文件:点击查看代码TEMPLATE=appCONFIG+=consoleCONFIG-=app_bundleCONFIG-=qtSOURCES+=main.cwin32{INCLUDEPATH+=$$PWD/SD......
  • QT中常见QImage、Pixmap、Mat三种图像格式的转换
    写在前面    暑假实习参与了单位的QT项目开发,在过程中遇见了一些困扰以及解决方式,在此记录下来常见图像格式之间的转换    我将他们都封装在了一个类中,代码见下#ifndefUTIL_H#defineUTIL_H#include"qimage.h"#include"QPixmap"#include"opencv2/open......
  • 图像RGB-YUV
    RGB颜色空间RGB(Red,Green,Blue)颜色空间是最常见的颜色表示方法,用于大多数显示设备如电视、电脑显示器和相机。每个颜色分量(红、绿、蓝)通常用8位表示,范围从0到255。红色(R):表示红色强度绿色(G):表示绿色强度蓝色(B):表示蓝色强度在RGB颜色空间中,所有颜色都是通过混合......
  • 为什么是视频传输用YUV格式,而放弃RGB格式?
    ......
  • RGB/YUV转HDMI,PIN对PIN替换IT66121
    基本概述:一款HDMI发送芯片。输入输出最高分辨率支持4K@30Hz,最高采样率达到300MHz。支持YUV和RGB之间的色彩空间转换,数字接口支持YUV以及RGB格式输入。ⅡS接口以及S/PDIF接口支持高清音频的传输,其中S/PDIF接口既可以兼容IEC61937标准下的压缩音频传输,同时还......
  • ffmpeg编码之实现YUV转换成H264
    方法1:命令转换#转换ffmpeg-s720*1280-pix_fmtyuv420p-iinput.yuv-vcodeclibx264-b:v4096k-bf0-g10-r30output.h264#播放ffplayoutput.h264方法2:代码转换 main.c#include"libavutil/log.h"#include"libavutil/avutil.h"#include......
  • ffmpeg解码YUV
    方法1:命令解码#解码命令ffmpeg-iinput.mp4-frawvideooutput.yuv#播放命令ffplay-s720x1280-pix_fmtyuv420poutput.yuv方法2:代码解码 main.c#include"libavutil/log.h"#include"libavformat/avformat.h"#include"libavutil/avutil.h&quo......