惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tenable Blog
WordPress大学
WordPress大学
小众软件
小众软件
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
T
The Exploit Database - CXSecurity.com
Attack and Defense Labs
Attack and Defense Labs
Simon Willison's Weblog
Simon Willison's Weblog
C
CXSECURITY Database RSS Feed - CXSecurity.com
量子位
有赞技术团队
有赞技术团队
C
Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
F
Fortinet All Blogs
S
Schneier on Security
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
Stack Overflow Blog
Stack Overflow Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Spread Privacy
Spread Privacy
F
Full Disclosure
Scott Helme
Scott Helme
GbyAI
GbyAI
N
Netflix TechBlog - Medium
MyScale Blog
MyScale Blog
Cloudbric
Cloudbric
云风的 BLOG
云风的 BLOG
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
Hacker News - Newest:
Hacker News - Newest: "LLM"
Security Latest
Security Latest
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
The GitHub Blog
The GitHub Blog
The Register - Security
The Register - Security
L
Lohrmann on Cybersecurity
PCI Perspectives
PCI Perspectives
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
D
Docker
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Secure Thoughts
C
Check Point Blog

中文博客 on 范叶亮 | Leo Van

多智能体系统 (Multi-Agent System) 确定性和掌控欲 - 你的 AI 不是你的 AI LLM Token 消耗节省计划 (How to Save Token for LLM) 智能体的角色定位和身份演化 (Agent Role Orientation and Identity Evolution) 本地部署 OpenClaw,QwenPaw 和 Hermes Agent (Local Deployment of OpenClaw, QwenPaw and Hermes Agent) 本地部署智能体 - OpenClaw,QwenPaw,Hermes Agent ... 部署 Matrix 服务器 Synapse (Deployment of Matrix Server Synapse) 部署 frp 内网穿透服务 (Deployment of frp NAT Traversal Service) 本地部署大模型服务 (Local Deployment of LLM Services) AI 时代的生产力和生产关系 (Forces and Relations of Production in AI Era) 业余无线电入门 - CQ, CQ, CQ, this is BD1CZP. Calling CQ and standing by. 重构 - 之于代码、之于工作、之于生活 大语言模型微调 (Fine-tuning Large Language Models) 提升图片分辨率和质量 - Invoke AI 101 教程 使用画布创建和组合生成新的图片 - Invoke AI 101 教程 探索 AI 模型和概念适配器 - Invoke AI 101 教程 理解图像到图像和降噪过程 - Invoke AI 101 教程 使用控制层和指示控制图片的生成 - Invoke AI 101 教程 使用 Invoke 创作你的第一张图片 - Invoke AI 101 教程 在 OpenWrt 和群晖中自动申请和部署证书 凡人歌 - 凡人,但不要烦心 Shell 调用方式 fork,exec 和 source (Run Shell with fork, exec and source) 重定向和管道 (Redirect and Pipe) 模型压缩和推理加速 (Model Compression and Inference Acceleration) 我们需要多少种编程语言 (How Many Programming Languages do We Need) 数据可视化小贴士 - 面向动态文档生成,秉承规范、统一和实用的理念 从 rm -rf * 说起 - 喜新、怀旧、再出发 CSS 布局和定位 (CSS Layout and Position) 当我谈修图时,我谈些什么 - 色彩篇 Part 1 在 Windows 下利用 WSL2 和 Ubuntu 配置 GPU 机器学习环境 文学编程和可重复性研究 (Literate Programming and Reproducible Research) 在 OpenWrt 中安装 Jellyfin 搭建家庭影音中心 自私和贪婪 (Selfish and Greedy) 评分和排名算法 (Rating & Ranking Algorithms) 小记这一波裁员浪潮 基于内容的图像检索 (Content-based Image Retrieval, CBIR) 你所应该知道的 A/B 测试 (A/B Test You Should Know) 一个人的摩旅 (Travel with My Motorcycle Alone) 设计语言初探 (A Glimpse of Design Language) Spark 集群搭建 (Spark Cluster Setup) Hive 安装和配置 (Hive Setup) Hadoop 集群搭建 (Hadoop Cluster Setup) 虚拟环境准备 (Virtual Environment Preparation) 大数据 SQL 性能调优 (Big Data SQL Performance Tuning) SQL 样式指南 (SQL Style Guide) 进程,线程和协程 (Process, Thread and Coroutine) - 实现篇 进程,线程和协程 (Process, Thread and Coroutine) - 理论篇 胶囊网络 (Capsule Network) 投票公平合理吗? 图存储与计算 (Network Storage and Computing) - 复杂网络系列 网络算法 (Network Algorithms) - 复杂网络系列 真实世界网络结构 (Structure of Real-World Network) - 复杂网络系列 网络表示,测度和度量 (Network Representation, Measures and Metrics) - 复杂网络系列 文本相似度 (Text Similarity) 而立之前 (Life before 30) 最近邻搜索 (Nearest Neighbor Search) 无模型策略预测和控制 - 时序差分学习 (Model-Free Policy Prediction and Control - Temporal Difference Learning) - 强化学习系列 无模型策略预测和控制 - 蒙特卡洛方法 (Model-Free Policy Prediction and Control - Monte-Carlo Learning) - 强化学习系列 利用动态规划求解马尔可夫决策过程 (Planning by Dynamic Programming) - 强化学习系列 贝叶斯优化 (Bayesian Optimization) 马尔可夫决策过程 (Markov Decision Process) - 强化学习系列 多臂赌博机 (Multi-armed Bandit) - 强化学习系列 强化学习简介 (Introduction of Reinforcement Learning) - 强化学习系列 在群晖 NAS 上编译安装 tmux 隐马尔可夫,条件随机场和序列标注 (Hidden Markov Model, Conditional Random Fields and Sequence Labeling) 图嵌入和图神经网络 (Graph Embedding and Graph Neural Network) 预训练自然语言模型 (Pre-trained Models for NLP) toB 产品用户权限 (User Privileges of toB Products) 京东数科 HIPO 学习之旅 (JDD HIPO Learning Journey) 杭州和东京之旅 (Tour of Hangzhou and Tokyo) 国际智慧温室种植挑战赛 (International Autonomous Greenhouse Challenge) 记忆中的儿时 (My Childhood in Memory) 启发式算法 (Heuristic Algorithms) 关不掉的浏览器标签页 (Browser Tabs You do not Close) 贝塞尔曲线 (Bézier Curve) 如何阅读一本书 (How to Read a Book) 相似性和距离度量 (Similarity and Distance Measurement) 集成学习算法 (Ensemble Learning) 计算复杂性与动态规划 (Computational Complexity and Dynamic Programming) 利用 Flask 和 Google App Engine 部署模型服务 序列到序列和注意力机制 (Seq2Seq and Attention Machanism) 词向量 (Word Embeddings) 循环神经网络 (Recurrent Neural Network, RNN) 泰国之行 (Tour of Thailand) 媒介之战 (War of Medias) 卷积神经网络 (Convolutional Neural Network, CNN) 买书,囤书,看书 (Buy Books, Hoard Books and Read Books) Play Safe, Smart Choice & Yuppie 基于 PyQt5/PySide2 和 QML 的跨平台 GUI 程序开发 流形学习 (Manifold Learning) 深度学习优化算法 (Optimization Methods for Deep Learning) 深度学习优化算法 (Optimization Methods for Deeplearning) 生成对抗网络简介 (GAN Introduction) Ising 模型,Hopfield 网络和受限的玻尔兹曼机 (Ising, Hopfield and RBM) 马尔科夫链蒙特卡洛方法和吉布斯采样 (MCMC and Gibbs Sampling) 特征值分解,奇异值分解和主成分分析 (EVD, SVD and PCA) 墨尔本之行 (Trip to Melbourne)
当我谈摄影时,我谈些什么 - 色彩篇 Part 1
范叶亮 · 2023-07-30 · via 中文博客 on 范叶亮 | Leo Van

当我谈摄影时,我谈些什么

色彩篇 Part 1

分类: 科普, 当我谈, 生活 / 字数: 2484 / 标签: 摄影, 色域, CIE 1931 色彩空间, 颜色匹配实验, 三刺激值曲线, 相对色度图, 明度, 色度, 色彩深度, 色深, FRC, 帧率控制, 像素抖动, Dither, 色度抽样, 动态范围, Dynamic Range, 高动态范围, High Dynamic Range, HDR, 标准动态范围, Standard Dynamic Range, SDR, 包围曝光, 曝光合成, Log 曲线, 曝光量, Photometric Exposure, 曝光值, Exposure Value, EV


色域

当我谈修图时,我谈些什么 - 色彩篇 Part 1 中已经介绍过什么是色彩空间,在显示领域通常会使用 RGB 色彩模型,在印刷领域通常会使用 CMYK 色彩模型。而在颜色感知领域CIE 1931 色彩空间 则是在设计之初便要求包含普通人眼可见的所有颜色的标准色彩空间。

人类眼睛有对于短、中和长波的感光细胞,色彩空间在描述颜色时则可以通过定义三种刺激值,再利用值的叠加表示各种颜色。在 CIE 1931 色彩空间中,这三种刺激值并不是指对短、中和长波的反应,而是一组约略对应红色、绿色和蓝色的 X、Y 和 Z 的值。X、Y 和 Z 的值并不是真的看起来是红色、绿色和蓝色,而是使用 CIE XYZ 颜色匹配函数计算而来。

颜色匹配实验中,如下图 1 所示:

受试者通过观察单一光源的颜色和三原色光源的混合颜色是否相同,得到光谱三刺激值曲线如下图 2 左所示。为了消除负值对数据处理带来的不便,通过转换得到了三个新的值 $X$、$Y$ 和 $Z$ 的曲线如下图 2 右所示。

在 CIE 1931 色彩空间中,所有可视颜色的完整绘图是三维的,$Y$ 可以表示颜色的明度 3。$Y$ 表示明度的好处是在给定 $Y$ 值时,XZ 平面将包含此明度下的所有色度。通过规范化 $X$、$Y$ 和 $Z$ 的值:

$$ \begin{aligned} x &= \dfrac{X}{X + Y + Z} \\ y &= \dfrac{Y}{X + Y + Z} \\ z &= \dfrac{Z}{X + Y + Z} = 1 - x - y \end{aligned} $$

色度可以使用 $x$ 和 $y$ 来表示。CIE 1931 的相对色度图 4 如下所示:

外侧曲线边界是光谱轨迹,波长用纳米标记。不同色域(Color Gamut)标准之间的对比如下图 5 所示:

对于一个显示设备来说,不可能产生超过其色域的颜色。通常情况下,讨论一台摄影设备的色域并没有意义,但使用什么样的色彩空间进行编码则需要重点关注。

色彩深度

色彩深度,简称色深(Color Depth),即存储一个像素的颜色所需要的位数。若色彩深度为 $n$ 位,则代表一共包含 $2^n$ 种颜色。例如我们常说的真彩色,即 24 位,对应 RGB 三个通道,每个通道 8 位(即 0-255),共可以表示 16,777,216 种颜色。

从上述对比图 6 中不难看出,色深越大,图像的效果越好,图像内容之间的过度越自然,与此同时占用的存储也会越多。

在视频拍摄中,我们通常说的 8bit 和 10bit 指的是位深(Bit Depth),即每个通道的位数。设备在拍摄素材时,记录更大位数的信息会更有利于后期调色等处理。

在显示器的特性中,我们也经常会遇见 8bit 和 10bit,以及 8bit FRC 这个概念。FRCFrame Rate Control 的缩写,即帧率控制,是一种时间维度的像素抖动算法。以灰度图像为例,如下图所示,当渲染一个图像包含多个帧时,可以让帧在明暗之间进行切换,从而产生中间灰度。

相应的空间维度的像素抖动算法(Dither)如下图所示:

所以,一块原生 10bit 屏幕优于 8bit FRC 10bit 的屏幕优于原生 8bit 的屏幕。

色度抽样

在拍摄视频时,除了 8bit 和 10bit 位深的区别外,我们还经常听到 4:2:2 和 4:2:0 等比值,这代表色度抽样。由于人眼对色度的敏感度不及对亮度的敏感度,图像的色度分量不需要有和亮度分量相同的清晰度,在色度上进行抽样可以在不明显降低画面质量的同时降低影像信号的总带宽。

抽样系统通常用一个三分比值表示:$J : a : b$,其中:

  • $J$ 为水平抽样的宽度
  • $a$ 为第一行 $J$ 个像素中色度的抽样数量
  • $b$ 为第二行 $J$ 个像素中色度的抽样数量

不同的比值色度抽样对比图 7 如下所示:

动态范围

动态范围Dynamic Range)是可变信号(例如声音或光)最大值和最小值的比值。在相机中,设置不同的 ISO 会影响到动态范围在记录高光和暗部时的噪点表现。

高动态范围High Dynamic RangeHDR)相比与标准动态范围Standard Dynamic RangeSDR)具有更大的动态范围,简而言之 HDR 可以让画面中亮的地方足够亮暗的的地方足够暗。HDR 需要采集设备和显示设备同时支持才能够得以正常的显示,下图 8 展示了 HDR 和 SDR 从场景采集到显示还原的过程:

最终 SDR 和 HDR 成像的区别如下图 9 所示(模拟效果):

在摄影过程中,如下两种方式都可以得到不错的 HDR 照片:

  1. 针对 RAW 格式照片,其存储的不同明暗数据已经足够多,针对高光降低一些曝光,暗部增加一些曝光即可获得 HDR 照片。
  2. 前期进行包围曝光,即在拍摄时同时拍摄多张具有不同曝光补偿的照片,后期再利用曝光合成技术得到一张 HDR 照片。

在摄像过程中,上述的两种方案就变得不太可行了,如果对于视频的每一帧都保存 RAW 信息会导致视频素材体积过大。此时我们会采用一种名为 Log 曲线的方式对视频的每一帧图像进行处理。

首先我们需要了解一下什么是曝光量Photometric Exposure)和曝光值Exposure ValueEV)。曝光量是指进入镜头在感光介质上的光量,其由光圈、快门和感光度组合控制,定义为:

$$ H = Et $$

其中,$E$ 为影像平面的照度,$t$ 为快门的曝光时间。影像平面照度与光圈孔径面积成正比,因此与光圈 $f$ 值的平方成反比,则有:

$$ H \propto \dfrac{t}{N^2} $$

其中,$N$ 为光圈的 $f$ 值。$\dfrac{t}{N^2}$ 这个比例值可以用于表示多个等效的曝光时间和光圈 $f$ 值组合。此比值具有较大的分母,为了方便使用反转该比值并取以 $2$ 为底的对数则可以得到曝光值的定义:

$$ EV = \log_2{\dfrac{N^2}{t}} = 2 \log_2{\left(N\right)} - \log_2{\left(t\right)} $$

在现实中,随着光线强度(类比曝光量)的成倍增加,人眼对于光的感应(类比曝光值)大约成线性增长。同时,摄像机器对于光线强度的记录是线性的,也就是说当光线强度翻倍时,转换后存储的数值也会翻倍。

以 8bit 为例,对于高光部分(7 - 8 档曝光值)会使用 128 位存储相关信息,而对于暗部(0 - 1 档曝光值)则仅使用 8 位存储相关信息,如下图左所示。此时由于高光部分看起来亮度变化并不大,使用的存储位数比暗部多得多,这种非均衡的的存储容易丢失图像的暗部细节。通过对曝光量进行 Log 处理,可以得到均衡的对应关系,如下图右所示。

在真实场景中,各个相机厂商的所搭载的 Log 曲线并不完全相同,都会为了实现某种效果进行调整修改。但整体来说其目的还是为了让每一档曝光值之间存储的信息量大致相同。颜色矫正后和原始应用 Log 曲线的对比图像 10 如下所示: