视频中为什么需要这么多的颜色空间?

在视频处理中,经常会用到不同色彩空间:非线性RGB,线性 RGB,YUV,XYZ……为什么需要这么多的色彩空间呢?
1、视频采集时的线性RGB颜色空间
由数码相机中的 CMOS 传感器产生并写入原始文件(Raw File)的数据(线性RGB图像)是线性的。与普通照片相比,线性数据通常看起来非常暗且对比度较低。
在这里插入图片描述2、人类视觉系统需要非线性的图像颜色空间
研究表明,人类视觉系统是非线性感知光亮度,是以对数函数的方式来感知光亮度。这意味着,人眼会提高暗部的敏感度,降低高光部分的敏感度。

在这里插入图片描述从数学角度看,感知光强度和测量光强度之间存在一个近似的平方关系,具体如下式所示。
在这里插入图片描述
3、如上,人类视觉感知系统不是以线性方式工作的,必须使用非线性曲线来对拍摄生成 的线性数据进行变换,从而使得拍摄的图像色调与我们的视觉系统的工作方式相匹配,这个过程就是 伽马校正。
在这里插入图片描述
这样,在从线性 RGB 空间转换到非线性 RGB 空间时,需要 γ \gamma γ 作为转换参数。相机中的 ISP 模块负责对图像传感器的线性 RGB 进行伽马校正进而产生对应的符合人眼感知的非线性 RGB 数据。
在这里插入图片描述显示设备支持的色域空间不同,对于不同的显示设备而言,伽马校正之后的 RGB 数值也不同。从这个角度讲,RGB 是设备依赖型的色彩空间

4、视频压缩所需的颜色空间
根据如上信息可知,相机系统经过 ISP 处理后,最终得到非线性的RGB (sRGB)信息。对于视频而言,如果以 RGB 存储每帧信息,需消耗大量存储空间。
人类视觉系统对颜色信息的敏感度弱于亮度信息,一般将相机捕获的 RGB 信息转换为 YUV 格式,然后对 YUV 格式进行色度信息采样(例如,YUV420)以便压缩图像空间。RGB->YUV,不同标准有不同要求,一般常用的标准有:
BT. 601(SD: Standard-Definition)
BT. 709(HD: High-Definition)
BT. 2020(UHD: Ultra-High-Definition)
标准中,不但会规定 RGB->YUV 的转换系数,同时还会规定从线性 RGB 到非线性 RGB 转换的 gamma 系数。
将 RGB颜色模型,转换成 YUV 模型后,接下来采用某种视频编解码标准(H265\H264)对获取的数据进行视频编码,最终得到视频文件(此处忽略音频采集编码及合流的操作)。
到目前为止,视频图像整个处理过程如下:
在这里插入图片描述
5、视频转码涉及的颜色空间
出于各种原因,例如:
终端用户的带宽受限
终端用户支持的视频编解码算法和相机压缩视频的编解码算法不一致
……

一般相机产出的视频文件不会直接分发给用户去消费,媒体服务商会对相机生成的视频文件进行转码,然后选择合适的转码后的视频分发给终端消费用户。

在视频转码阶段,如果我们希望对原视频进行色域的变换,例如从 BT. 601 转码为 BT. 709,则需要在不同色域的 RGB 数值之间进行转换。
在不同的色域空间进行 RGB 数据的转换,就是色彩管理。色彩管理对图像进行色彩管理以适配当前环境下的颜色效果,从而保证同一张图片在不同输入、输出上都呈现出最好的颜色。

色彩转换需在某个线性空间下进行操作,并且操作过程需要保持设备的独立性。因此,不同的 RGB 色域空间是不能直接进行转换的,==需要与设备无关、线性的颜色模型作为中转才能实现其转换,==而 XYZ(CIE 1931 XYZ color space) 模型符合上述要求。

在 FFmpeg 中,主要使用 colorspace 滤镜 来完成不同色域空间的转换。 由colorspace 实现可知,在 FFmpeg 中,BT. 601->BT. 709 的转换过程如下所示:
在这里插入图片描述
如上变换中,涉及到 3 个颜色空间转换:
绿色数字1:YUV 和 RGB 之间的转换
绿色数字2:线性 RGB 和非线性 RGB 之间的转换
绿色数字3: 线性 RGB 和 XYZ 之间的转换

6、视频解码&播放涉及到的颜色空间
转码之后的视频,通过各种渠道分发到终端用户进行消费。大部分显示设备,例如CRT显示器、LCD、OLED,屏幕上的每个像素是通过驱动三个非常靠近但仍然分开的小型 RGB 光源构建的。 因此,显示屏(监视器,电视机,屏幕等等)仅使用 RGB 模型,以不同的方式组织,显示最终的图像。在这里插入图片描述如前所述,RGB 是一种设备依赖型颜色模型,不同显示设备采用 RGB 色域不一定相同。在 Mac 电脑上,可以通过显示器配置来选择显示器支持不同的 RGB 色域。
在这里插入图片描述

下面分几种情况介绍显示中涉及的颜色空间
(1)显示设备和相机的色域一致
在这里插入图片描述
编码视频和播放视频的显示器的 RGB 色域是一致的,比如都是 sRGB。视频解码获取 YUV 数据,根据标准YUV 数据->成非线性的 sRGB 数据,显示器根据 sRGB 数据显示即可。
(2)显示设备和相机的色域不一致
若显示设备支持色域从 sRGB(Standard-Definition下的色域) 变为 Rec. 2020 ,直接显示 sRGB 色域下的数据,会导致比较严重的颜色失真。
在这里插入图片描述
和转码阶段色域转换类似,在不同的色域空间进行 RGB 数据转换(色彩管理)以保证相同视频在不同输入、输出、显示设备上都呈现出最好的颜色。
对于显示设备而言,sRGB->RGB(Rec. 2020)的转换过程如下所示:
在这里插入图片描述这种情况下,拍摄设备和显示设备色域不同,视频从采集到播放增加了颜色管理,如图示:
在这里插入图片描述
7、视频观看涉及的颜色空间
虽然视频采集和最终终端播放采用都是 RGB 颜色模型,但对人眼而言,RGB 其实并不直观,比如我们很难马上反应出天青色的 RGB 色值?

为能更直观表示颜色,又引入了 HSL 色彩模型。HSL 比 RGB 更加直观,比如:想从黄色过度到红色,只需要调整色相即可,饱和度和亮度保持不变。因此,HSL 一般更适合人的色彩感知,而 RGB 更适合显示领域。

在摄影后期,HSL 调整作品是最方便的一种方式。简单几步就可以让灰暗的马路随拍秒变街头大片,如下:
原始图像在这里插入图片描述
HLS模型处理后的图像在这里插入图片描述

总结
虽然颜色还是那个颜色,但是不同的颜色空间的适用范围并不相同:
RGB:面向采集和显示设备
YUV:面向存储
HSL:面向人类视觉感知
XYZ:RGB之间的转换桥梁

从视频采集到视频消费的过程,涉及到不同的设备和标准,而不同的设备和标准所支持的色域空间又不相同。正是通过不同的颜色模型转换和不同的色域转换,才得以让我们实现:在不同输入、输出、显示设备上都呈现出最好的颜色,才得以让我们实现以近似相同的观看体验来消费视频。
参考 https://wangwei1237.github.io/2022/08/14/Why-so-much-color-space-in-video/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/3477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

艾瑞泽5汽车电子控制单元CAN通信数据读写车辆网络系统交互接口

艾瑞泽5的网关接口数据交换通常涉及车辆内部电子设备之间的信息传输,包括车身系统、娱乐系统、远程控制、车辆状态监控、CAN数据采集分析、整车DBC控制策略等信息。 艾瑞泽5作为一款采用CAN协议的汽车,其CAN通信的开发可以提高车辆的安全性、可靠性和实…

怎么设置 idea terminal 窗口的编码格式

1 修改Terminal 窗口为 Git bash 窗口 打开 settings 设置界面,选择 Tools 中的 Terminal (File -> settings -> Tools -> Terminal) 修改 Shell path 为你的 Git bash 安装路径,我的在 C:\my_software\java\Git\bin\bash.exe 2 解决中文显示…

抢单业务介绍

存在的问题 会出现多个人同时访问的问题 解决办法:在判断前加锁,使用户在抢单前先访问锁然后在执行之后的操作 常见的锁 1.基于数据库 2.基础缓存(Redis等) 3.基于Zookeeper

windows 本地部署 ChatGLM2-6b 教程

介绍 ChatGLM2-6B是智谱AI及清华KEG实验室发布的中英双语对话模型,它是 ChatGLM-6B 的第二代版本。 主要特点: 性能提升:ChatGLM2-6B 在初代模型的基础上进行了全面升级,使用了 GLM 的混合目标函数,并经过了 1.4T 中…

小白学习SpringCloud之Eureka

前言 需要搭建springcloud项目,eureka是其中的一个模块,依赖主要继承父依赖 学习视频:b站狂神说 便于理解,我修改了本地域名》这里!!! 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.comEureka入门案例 eureka…

API提取IP

API代理作为IP代理的一项重要业务,在绕开地域网络限制,提高作业效率等方面提供强大的技术支持。它能够帮助用户快速实现软件与软件间的交流,无障碍连通不同应用程序逻辑开发的系统应用。API代理用途范围广泛,如使用API提取代理IP、…

02-JVM学习记录-运行时数据区

二、运行时数据区 每个JVM只有一个Runtime实例,只有一个运行时数据区。 虚拟机栈、堆、方法区最重要 方法区和堆与虚拟机的生命周期相同(随虚拟机启动而创建,虚拟机退出而销毁),程序计数器、虚拟机栈、本地方法栈生命…

区块链技术与应用学习笔记(12-13节)——北大肖臻课程

目录 12.BTC-匿名性 一、什么是匿名? 1,有可能破坏比特币匿名性的两个方面 2,如何提高匿名性 一个比特币用户能采用什么样的方法尽量提高个人的匿名性? 分解: 1、网络层怎么提高匿名性? 2、应用层怎么提高匿名性? 零知…

2024年vue 开发环境 Node.js于win10环境下的安装

2024年vue 开发环境 Node.js于win10环境下的安装 导航 文章目录 2024年vue 开发环境 Node.js于win10环境下的安装导航一、下载node.js二、安装node.js三、测试(一)四、环境配置五、测试(二)六、安装淘宝镜像七、安装vue脚手架 一、下载node.js Node.js 官方网站下载&#xff…

cgroup 资源控制介绍

目录 一 cgroup 介绍 1,cgroup 是什么 2,cgroups有四大功能 二 cgroups对 CPU 的控制 1,cpu 的工作原理 2,设置CPU使用率上限 2.1 cgroups对 CPU 的控制 原理 2.2 --cpu-period 2.3 --cpu-quota 2.4 设置…

Linux(Centos)服务器探索ffmpeg笔记 (命令行、Nvidia硬件加速、GPU、CPU、CUDA、h264_nvenc、过滤器、加水印)

目录 前言内容简介为什么会有这篇文章 1、服务器上怎么使用ffmpeg1.1 使用编译好的(需要root权限)1.2 自己怎么编译(需要root权限) 2 、非Root用户要怎么安装和使用3、ffmpeg命令的一些使用引导和参数介绍3.1 编译参数3.2 查询支持…

uniapp H5实现签名

第一种&#xff1a;跳转签名页面 1、创建审核页面audit.vue <template><view><uni-section title""><view class"auditClass"><uni-forms :model"baseFormData" ref"baseFormRef" :rules"rules&quo…

【Flink入门修炼】2-3 Flink Checkpoint 原理机制

如果让你来做一个有状态流式应用的故障恢复&#xff0c;你会如何来做呢&#xff1f; 单机和多机会遇到什么不同的问题&#xff1f; Flink Checkpoint 是做什么用的&#xff1f;原理是什么&#xff1f; 一、什么是 Checkpoint&#xff1f; Checkpoint 是对当前运行状态的完整记…

elementui el-date-picker禁止选择今年、今天、之前、时间范围限制18个月

1、禁止选择今年之前的所有年份 <el-date-pickerv-if"tabsActive 0":clearable"false"v-model"yearValue"change"yearTimeChange"type"year"placeholder"选择年"value-format"yyyy":picker-options…

03 OLED显示屏实现

文章目录 前言一、软件模拟IIC协议1.开启IIC协议2.结束IIC协议3.传输数据 二、OLED的操作1.传输数据的准备2.写入命令3.写入数据4.初始化函数5.设置光标6.显示字符7.显示字符串8.清屏9.显示汉字10.显示图片11.显示动图 三、完整代码总结 前言 这一章主要是上一节没有讲完的项目…

前端项目中使用插件prettier/jscodeshift/json-stringify-pretty-compact格式化代码或json数据

同学们可以私信我加入学习群&#xff01; 正文开始 前言一、json代码格式化-选型二、json-stringify-pretty-compact简单试用三、prettier在前端使用四、查看prettier支持的语言和插件五、使用prettier格式化vue代码最终效果如图&#xff1a; ![在这里插入图片描述](https://im…

LLM应用实战:当KBQA集成LLM(二)

1. 背景 又两周过去了&#xff0c;本qiang~依然奋斗在上周提到的项目KBQA集成LLM&#xff0c;感兴趣的可通过传送门查阅先前的文章《LLM应用实战&#xff1a;当KBQA集成LLM》。 本次又有什么更新呢&#xff1f;主要是针对上次提到的缺点进行优化改进。主要包含如下方面&#…

多客圈子交友系统 uniapp+thinkphp6适配小程序/H5/app/api全开源,多款插件自选,支持个性定制!

网上交友的优点包括&#xff1a; 1. 方便&#xff1a;网上交友可以随时随地进行&#xff0c;不受时间和空间的限制&#xff0c;方便且高效。 2. 匿名性&#xff1a;网上交友可以实现匿名性&#xff0c;用户可以匿名地搜索、聊天或交换信息&#xff0c;保护个人隐私和安全。 3.…

COOIS 生产订单显示系统增强

需求说明&#xff1a;订单系统显示页面新增批量打印功能 增强点&#xff1a;CL_COIS_DISP_LIST_NAVIGATION -->TOOLBAR方法中新增隐式增强添加自定义打印按钮 增强点&#xff1a;BADI-->WORKORDER_INFOSYSTEM新增增强实施 实现位置&#xff1a;IF_EX_WORKORDER_INFOSYS…

制造型企业 如何实现便捷的机台文件统一管理?

机台文件统一管理&#xff0c;这是生产制造型企业都需要去做的&#xff0c;机台文件需要统一管理的原因主要包括以下几点&#xff1a; 1、提高效率&#xff1a;统一管理可以简化文件的访问和使用过程&#xff0c;提高工作效率&#xff0c;尤其是在需要频繁访问或更新机台文件的…