当前位置: 首页 > news >正文

RAW、RGB 、YUV三种图像格式理解

文章目录

    • 1. 背景
    • 2. 相关概念
      • 2.1 颜色与色彩空间
      • 2.2 RAW图像
      • 2.3 RGB图像
      • 2.4 YUV图像
    • 3. 分类简图

RAW、RGB 、YUV三种图像格式理解

1. 背景

在工作中,经常听到用来描述图像格式的RAW,RGB与YUV,但一直没有系统的进行了解,处于局部认知的理解下,现在将相关理解记录。

2. 相关概念

2.1 颜色与色彩空间

  • 颜色
    • 颜色是人眼感知到的现象,它是由光波的频率和强度所决定的,仅仅存在于人的眼睛和大脑中,因此为了方便描述颜色,引入了色彩空间。
  • 色彩空间
    • 色彩空间(Color Space)是用于描述、定义和组织颜色的一种方法,它是一个三维坐标系,其中每个坐标都代表一种颜色。在计算机图形学中,色彩空间被广泛应用于调整、转换和操纵颜色。在色彩空间中,经常使用的三种坐标是 RGB(红色、绿色、蓝色)。
      • RGB:常用于在显示器或电视屏幕上显示颜色,使用红、绿和蓝三种原色来组合出各种颜色,是一种加法颜色模型。

色彩空间

2.2 RAW图像

  • RAW

    • RAW 图像是指图像传感器数字图像,这种图像未经过任何处理,未压缩和未降噪,保留了其原始数据,以便后续的数字后期制作和处理。
  • 采集过程

    • 环境光/补光灯照在物理表面形成反射 –> 镜头汇聚光线 –> 图像传感器彩色滤镜阵列(CFA)将单色光照在光电二极管 –> 光电转换 –> ADC采集,其他模块转换排列为 设置的 bayer格式的RAW。

RAW 一般是使用 bayer 格式进行排列,每个像素实际只包含单种特定颜色 的光的强度(比如单个像素只能为R/G/B亮度信息)。

彩色滤镜CFA

由于人眼对于绿色更加敏感,所以加重了其在感光点的权重,Bayer格式中的G分量都是B、R分量的两倍。

  • bayer 序格式按照排列组合,一共分为4种:

    排列1排列2排列3排列4
    RG
    GB
    BG
    GR
    GR
    BG
    GB
    RG

在这里插入图片描述

2.3 RGB图像

RGB 图像是一种数字图像格式,其名称既指代了该图像格式所使用的颜色空间(红、绿、蓝),也指代了图像本身,其中包含了红、绿、蓝三色通道的像素值。

在 RGB 空间中的颜色可以通过各种亮度级别的三种原色进行表示,通常使用 8 位整数值(0-255)来描述每个通道的亮度级别。因此,成像设备所成功捕捉到的颜色信息可以进行比较精确的映射和表示。

常用的 RGB 格式包括颜色通道的信息位数、每种颜色可以表示的颜色数量和典型应用场景等。

RGB 格式颜色通道信息位数可表示的颜色数量典型应用场景
RGB888每种通道均为 8 位16,777,216数字图像处理、计算机游戏、电影和摄影等
RGB565R: 5位, G: 6位, B: 5位65,536嵌入式应用、机器视觉、数字标志等
RGBA8888R,G,B 各 8 位,A 通道为 8 位16,777,216图像编辑、视觉效果、移动应用等
RGB332每个通道均为 3 位,共 8 位256简单图形、低成本设备、老式显示器等

注意,这里列出的应用场景只是典型的用途,实际应用还要根据具体情况进行选择。

2.4 YUV图像

YUV 图像是一种将图像亮度(Y)和颜色(U、V)分离的数字图像格式,常用于视频编码和数字图像处理的领域。下面介绍一下常见的 YUV 采样与排列方式。

  1. YUV 采样方式

在 YUV 图像格式中,针对颜色信息的采样方式有以下几种:

  • 4:4:4:Y、U、V 三个分量的采样比例均为 1:1,没有任何采样压缩,图像质量最高,但是处理的数据量也最大,需要更多的存储和传输带宽。

  • 4:2:2:Y 分量的采样比例为 1:1,U、V 分量的采样比例为 1:2,即在水平方向上每两个 Y 像素对应一个 UV 像素,垂直方向上不进行压缩,可支持更多的压缩算法和更高的编码效率。

  • 4:2:0:Y 分量的采样比例为 1:1,U、V 分量的采样比例为 1:2,即在水平和垂直方向上每两个 Y 像素对应一个 UV 像素。是很多视频编解码标准的默认格式之一,可在较小的数据量和带宽开销下,实现较高的编解码效率。

  • 4:1:1:Y 分量的采样比例为 1:1,U、V 分量的采样比例为 1:4,即在水平方向上每四个 Y 像素对应一个 UV 像素,垂直方向上不进行压缩,在一些比较老旧的视频编解码标准中可能会使用。

  1. YUV 排列方式

在 YUV 图像格式中,针对采样后的 Y、U、V 分量的排列方式有以下几种:

  • Planar:将 Y、U、V 三个分量单独存放在不同的内存区域中,每个分量都是独立的一维数组,三个数组都存储着相同的宽度和高度。

  • Packed:将 Y、U、V 三个分量数据以一种交叉存储的方式来存放,三个分量紧密地排列在内存中,常见的排列方式有 YYUV、YVYU、UYVY 等。

  • Semi-Planar:将 U、V 两个色度分量合并在一起作为一个独立的数组 VU(或者 UV),与亮度分量 Y 组成一个二维数组,常见的排列方式有 YUV420、YUV422 等。

  • Interleaved:将 RGB 24 位像素格式进行 YUV 转换后得到的 YUV422_YUYV 格式,即 YUV 分量以交错方式存储在内存中,Y 和 U、V 之间依次交替进行存储。

总之,对于 YUV 图像格式,常见的采样方式包括 4:4:4、4:2:2、4:2:0 和 4:1:1 等,常见的排列方式包括 Planar、Packed、Semi-Planar 和 Interleaved 等。根据不同的应用场景和编解码标准的需求,通常会选择不同的采样和排列方式。

下面是YV12(YUV420)格式简图以及内部排布图:
在这里插入图片描述

3. 分类简图

在这里插入图片描述

分类简图图片来自网络,如有侵权,联系删除

相关文章:

RAW、RGB 、YUV三种图像格式理解

文章目录 1. 背景2. 相关概念2.1 颜色与色彩空间2.2 RAW图像2.3 RGB图像2.4 YUV图像 3. 分类简图 RAW、RGB 、YUV三种图像格式理解 1. 背景 在工作中,经常听到用来描述图像格式的RAW,RGB与YUV,但一直没有系统的进行了解,处于局部认…...

关于对【mysql存储过程】的理解与简述

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/130857854 出自【进步*于辰的博客】 【存储过程】这个知识点,我在大二下期学习【mys…...

贪吃蛇游戏的制作记录

关于蛇的实现代码 #include "snake.h" #include "globalvar.h" #include <graphics.h> int fangXiang 1;//方向 0 右 1 上 2 左 3 下 int snakeHang[100] { 10,11,12,13,14 };//蛇 每节所在行 int snakeLie[100] { 10,10,10,10,10 };//蛇 每节所…...

Go基础入门

Go是一种现代的、高效的、开源的编程语言&#xff0c;由Google开发。它的语法简洁、易于学习和使用&#xff0c;支持并发编程&#xff0c;特别适合构建网络应用和分布式系统。本篇文章将介绍Go语言的基础语法和常用特性&#xff0c;帮助初学者快速入门。 一、Go语言的基础语法…...

JavaScript教程(二)

BOM浏览器对象模型 什么是BOM BOM&#xff08;Browser Object Model&#xff09;即浏览器对象模型&#xff0c;它提供了独立于内容而与浏览器窗口进行交互的对象&#xff0c;其核心对象是 window&#xff1b;BOM由一系列相关的对象构成&#xff0c;并且每个对象都提供了很多方…...

设计模式之代理模式

代理模式的定义是&#xff1a;为其他对象提供一种代理以控制对这个对象的访问。 因为代理类与服务类实现同样的接口&#xff0c;所以代理类能代替服务类提供给客户端。当客户端使用代理类时&#xff0c;代理类能对请求进行处理&#xff08;例如增加访问控制、缓存请求结果、隐…...

初识MySQL

&#x1f495;与其抱怨生活的不公&#xff0c;不如积极行动改变它。&#x1f495; &#x1f43c;作者&#xff1a;不能再留遗憾了&#x1f43c; &#x1f386;专栏&#xff1a;MySQL学习&#x1f386; &#x1f697;本文章主要内容&#xff1a;简单了解什么是MySQL、MySQL的发展…...

内网渗透(八十五)之ADCS证书服务攻击

ADCS证书服务攻击 漏洞背景 2021年6月17日,国外安全研究员 Will Schroeder 和 Lee Christensen 共同发布了针对ADCS(Active Directory Certificate Service, 活动目录证书服务)的攻击手法。同年8月5日,在Black Hat 2021上 Will Schroeder 和 Lee CHristensen 对该攻击手法进…...

通过python封装1688图片搜索商品数据接口,拍立淘API接口

1688图片搜索API封装接口是一个可以帮助用户快速使用1688图片搜索API的接口封装库。该接口封装库可以帮助用户快速引入1688图片搜索API&#xff0c;并提供各种参数配置和封装的API调用方法&#xff0c;以方便用户快速实现自己的图片搜索需求。 该接口封装库将1688图片搜索API的…...

HashMap的源码分析(基于JDK1.8)

HashMap的源码分析&#xff08;基于JDK1.8&#xff09; Java中的HashMap是一种常用的数据结构&#xff0c;它是基于哈希表的数据结构&#xff0c;可以用来存储键值对。在HashMap中&#xff0c;每个键值对被称作一个Entry&#xff0c;每个Entry包含一个键和一个值。HashMap的实…...

算法能力-数据安全复合治理框架和模型解读(5)

数据治理,数据安全治理行业在发展,在实践,所以很多东西是实践出来的,哪有什么神仙理论指导,即使有也是一家之说,但为了提高企业投产比,必要的认知是必须的,落地数据安全治理科技水平差异直接决定产品和项目是否可持续性,当前和未来更需要专业和有效创新。数据安全治理…...

java从入门到起飞——基础概念

目录 背景注释和关键字注释关键字 常量变量数据类型计算存储单元数据类型分类 标识符小驼峰命名法&#xff08;方法、变量&#xff09;大驼峰命名法&#xff08;类&#xff09; 类型转换自动类型转换强制类型转换 计算机中的数据存储总结 背景 学编程这么长时间了&#xff0c;重…...

C语言判断队列满or空

1 静态数组队列 循环队列通常使用数组来实现&#xff0c;判别循环队列是否满或空&#xff0c;可以借助两个变量front和rear。 判空&#xff1a;当front和rear相等时&#xff0c;队列为空。 判满&#xff1a;当(front 1) % n rear时&#xff0c;队列为满&#xff0c;其中n为…...

系统中级集成项目管理工程师(中项)好考吗?

软考系统集成项目管理工程师是一项非常重要的考试&#xff0c;对于从事信息技术和管理方面的人员来说&#xff0c;这是一个非常有用的证书。 对于零基础的考生来说&#xff0c;软考系统集成项目管理工程师是否好考&#xff0c;主要取决于他们的学习态度和学习方法。 一般而言…...

【Java多线程进阶】CAS机制

前言 CAS指的是Compare-And-Swap&#xff08;比较与交换&#xff09;&#xff0c;它是一种多线程同步的技术&#xff0c;常用于实现无锁算法&#xff0c;从而提高多线程程序的性能和扩展性。本篇文章具体讲解如何使用 CAS 的机制以及 CAS 机制带来的问题。 目录 1. 什么是CAS&…...

flex布局总结

flex布局总结 总结自&#xff1a;https://www.ruanyifeng.com/blog/2015/07/flex-grammar.html 内容&#xff1a; flex意思是-弹性布局&#xff0c;可以为盒型模型提供极大的灵活性&#xff0c;设置为flex布局后&#xff0c;子元素的fload clear vertical会失效 概念&#x…...

2023 Idea 热部署 JRebel 插件激活方法

2023 Idea 热部署 JRebel 插件激活方法 1. 下载源代码 进入下面 github 地址 clone 代码到本地 https://github.com/Byron4j/JrebelLicenseServerforJava 2. 编译和打包 cd /Users/daixiaohu/Desktop/JrebelLicenseServerforJavamvn clean package3. 运行项目 cd target/jav…...

Java (韩老师课程)第三章

变量的介绍 * 变量是程序的基本组成单位 * 变量相当于内存中一个数据存储空间的表示 * 变量在该区域有自己的名称和类型 * 变量必须先声明&#xff0c;后使用&#xff0c;即顺序 * 变量在该区域的数据/值可以在同一类型内不断变化 * 变量在同一个作用域中不能重…...

【P38】JMeter 随机控制器(Random Controller)

文章目录 一、随机控制器&#xff08;Random Controller&#xff09;参数说明二、测试计划设计2.1、测试计划一2.2、测试计划二2.3、勾选忽略子控制器块 一、随机控制器&#xff08;Random Controller&#xff09;参数说明 可以让控制器内部的逻辑随机执行一个&#xff0c;一般…...

API电商 ERP 数据管理

没有 API&#xff0c;应用之间的通信将会被扼杀&#xff1b;软件开发者将不断重写并执行相同功能的软件&#xff1b;创新的脚步将会放缓。 API 随处可见。大到一个软件系统&#xff0c;小到几行程序&#xff0c;只要具备了一定的特征&#xff0c;都可以被称作 API。那么&#…...

告别‘千人千脑’:用DMMR模型搞定EEG情感识别的跨被试难题(附PyTorch代码)

突破脑电情感识别的个体差异壁垒&#xff1a;DMMR模型实战指南与PyTorch实现 当你在实验室里看着屏幕上跳动的脑电波形时&#xff0c;是否曾为不同受试者数据间的巨大差异而头疼&#xff1f;这种被称为"脑电指纹"的个体特异性&#xff0c;一直是情感识别领域最棘手的…...

实现网页完整捕获:Full Page Screen Capture技术解析与应用指南

实现网页完整捕获&#xff1a;Full Page Screen Capture技术解析与应用指南 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chr…...

LangGraph多智能体框架:构建持久化AI智能体的终极指南 [特殊字符]

LangGraph多智能体框架&#xff1a;构建持久化AI智能体的终极指南 &#x1f680; 【免费下载链接】langgraph Build resilient language agents as graphs. 项目地址: https://gitcode.com/GitHub_Trending/la/langgraph 在当今快速发展的AI领域&#xff0c;多智能体框架…...

DevOps实践:如何让开发、测试、运维不再“打架”?

质量不再是孤岛在追求快速迭代的现代软件开发中&#xff0c;开发、测试与运维团队之间的隔阂与摩擦&#xff0c;常常被戏称为“部门战争”。开发团队渴望快速交付新功能&#xff0c;测试团队需要足够的时间来保障质量&#xff0c;而运维团队则首要追求系统的稳定与可靠。当发布…...

从原理到实践:深入理解Shellcode免杀技术及其对抗策略

Shellcode免杀技术的深度解析与对抗策略演进 在网络安全攻防对抗的永恒博弈中&#xff0c;Shellcode免杀技术始终占据着特殊地位。不同于传统的恶意软件检测规避&#xff0c;Shellcode免杀更注重代码层面的"隐形"能力&#xff0c;其核心在于让关键载荷在内存中执行时…...

OpenSees数值模拟从入门到进阶:理论、代码与实践

OpenSees数值模拟从入门到进阶:理论、代码与实践 摘要 OpenSees(Open System for Earthquake Engineering Simulation)作为开源的地震工程模拟系统,凭借其强大的非线性分析能力和开放的架构,已成为结构地震响应分析领域的重要工具。本文系统介绍OpenSees数值模拟的基本原…...

Claude Code自动模式上线:AI开始自己改代码了

导读最近 Claude Code 推出了一个关键更新&#xff1a;自动决策模式&#xff08;Auto Mode&#xff09;正式上线。这次不是模型升级&#xff0c;而是权限变化&#xff1a;AI可以自行决定是否修改代码可以直接写入文件不再需要开发者逐步确认每一步操作目前已经在企业版和API用户…...

5个关键步骤:OpenCore Legacy Patcher让老旧Mac焕发新生

5个关键步骤&#xff1a;OpenCore Legacy Patcher让老旧Mac焕发新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher是一款基于Pytho…...

霜儿-汉服-造相Z-Turbo作品集:看看AI能生成多美的汉服少女图

霜儿-汉服-造相Z-Turbo作品集&#xff1a;看看AI能生成多美的汉服少女图 1. 惊艳开篇&#xff1a;AI汉服艺术的魅力 当传统汉服遇上现代AI技术&#xff0c;会碰撞出怎样的火花&#xff1f;霜儿-汉服-造相Z-Turbo给出了令人惊叹的答案。这个基于Xinference部署的文生图模型服务…...

Mermaid Live Editor:5分钟快速创建专业图表的终极免费工具

Mermaid Live Editor&#xff1a;5分钟快速创建专业图表的终极免费工具 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-e…...