pixel - 颜色空间如何设法表示可见颜色空间的不同大小的部分?
问题描述
我最近观看了这个关于色彩空间的 YouTube 视频(链接:https ://youtu.be/iXKvwPjCGnY )。有兴趣就查了。事实证明,不同的色彩空间可以代表可见光谱的不同“子集”。并非所有这些子集的大小都相同。我不明白这是如何实现的。只要使用相同数量的字节来表示每个像素,无论编码如何,排列都只有这么多。因此有固定数量的不同颜色。现在我不了解色彩空间。也许他们确实使用了不同数量的字节。我尝试查找它,但大多数文章都过于晦涩和行话,尤其是维基百科。也许有人可以在这里帮助我?
解决方案
您混淆了色域和位深度。色域表示可以由颜色空间表示的颜色范围。位深度表示您可以在色域内定义颜色的精度。
因此,如果色域类似于显示器的大小,那么位深度将对应于该显示器的分辨率。您可以拥有分辨率非常高的小型显示器,反之,它们不相互依赖。这也意味着,对于相同的位深度,具有更大色域的色彩空间将显示比在较小色域中看起来更远的颜色。
您可以在 Wikipedia 页面的以下图像中看到此效果,以了解颜色深度(位深度的同义词),但在这里,色域(sRGB 色域)保持不变,但位深度变低:
您可以看到 4 位变体中的颜色同样丰富多彩,但与 24 位变体相比,可以表示的颜色要少得多。
如果在 2D 表面上查看,色域表示该区域,而位深度表示该区域中有多少种颜色。颜色越多,两种颜色之间的距离就越小,但同样值得注意的是,这些距离不需要是线性的,您可以根据颜色空间规格在不同的地方有更高的密度。例如,sRGB 是经过伽马压缩的,因此更接近黑色的表示颜色的密度高于接近白色的表示颜色。
还有,你说
[...] 不同的色彩空间可以代表可见光谱的不同“子集”。
这是不正确的。没有什么可以阻止颜色空间定义我们可以看到的颜色集之外的颜色。例如,在 CIELAB 色彩空间中,可能会得到一种非常红的颜色,比你看到的更红,同时又没有任何亮度。
推荐阅读
- crud - Laravel 8:无法显示和编辑单个内容
- angular - 从项目中删除的页面上出现错误
- javascript - 单击 Javascript 中的添加按钮后,单选选项和按钮未显示其值
- office365 - 有什么不同:Office.context.auth.getAccessTokenAsync vs OfficeRuntime.auth.getAccessToken
- scala - 日期时间的 Spark SQL 函数适用于 AM 而非 PM 的时间格式
- sql - 在 SQL 中将日期变量放在引号中
- spring-boot - Mapstruct 1.4.2.Final:NullValuePropertyMappingStrategy.SET_TO_DEFAULT 未按预期工作
- python - REST 框架——序列化多对多。创建和保存
- ionic-framework - Ionic 3 iframe 中的 Magento 2 设置 cookie SameSite=None 而不是默认的 SameSite=LAX
- c++ - 错误:没有上下文类型信息的重载函数使用 LEMON-graph-library