首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抗锯齿和gamma补偿

抗锯齿和gamma补偿
EN

Stack Overflow用户
提问于 2010-02-10 08:47:19
回答 4查看 972关注 0票数 7

计算机屏幕上像素的亮度通常与像素的数字RGB三元值不是线性相关的。早期CRT的非线性响应需要补偿非线性编码,我们今天继续使用这种编码。

通常我们在电脑屏幕上生成图像,并在那里使用它们,所以一切都很好。但当我们消除锯齿时,非线性-称为伽马-意味着我们不能只将0.5的alpha值添加到50%的覆盖像素上,然后期望它看起来正确。值为0.5的alpha仅与alpha为1.0且典型gamma为2.2时的亮度相同的0.5^2.2=22%。

对于抗锯齿gamma补偿,是否有任何广泛认可的最佳实践?你有没有日常使用的宠物方法?有没有人看过使用不同技术对结果和人类对图形输出质量的感知的研究?

我曾想过做标准的X^(1/2.2)补偿,但这是非常计算量大的。不过,也许我可以用256个条目的查找表让它更快。

EN

回答 4

Stack Overflow用户

发布于 2010-02-12 12:13:55

查找表经常用于这样的工作。它们又小又快。

但无论是查找还是某些公式,如果最终结果是图像文件,并且格式允许,最好在文件中保存颜色配置文件或至少伽马值以供以后查看,而不是尝试自己调整RGB值。

原因:对于典型的字节值R、G、B通道,在每个像素的每个通道中有256个唯一值。这对于人眼来说已经足够好了(我希望"byte“被定义为9位!)除了微不足道的值倒置之外,任何类型的数学都会映射其中一些值的多对一关系。对于R、G或B的每个像素,输出将不会有256个值可供选择,但要少得多。这可能会导致轮廓、锯齿、颜色噪声和其他不良效果。

抛开精度问题不谈,如果想要任何一种像样的质量,所有的堆肥,混合,混合,颜色校正,添加假镜头光斑,色度键控等等,都应该在线性RGB空间中完成,其中R,G和B的值与物理光强度成比例。图像数学模拟物理光数学。但是,在极限速度至关重要的地方,有一些方法可以作弊。

票数 2
EN

Stack Overflow用户

发布于 2010-04-01 07:25:45

Jim Blinns - "Dirty Pixels“一书概述了一个快速和良好的合成计算,它使用16位数学加上查找表来精确地返回和前进到线性颜色空间。这家伙做的是美国宇航局的视觉化工作,他很在行。

票数 2
EN

Stack Overflow用户

发布于 2014-02-05 23:54:12

我试图回答实际的问题,尽管现在主要是作为参考:

首先,有来自国际电信联盟(http://www.itu.int/rec/T-REC-H.272-200701-I/en)的建议,可以应用于编程(但你必须了解你的东西)。

在Jim Blinn的"Notation,Notation,Notation",第9章中,有一个非常详细的数学和感知错误分析,尽管他只涉及合成(许多其他图形任务也受到影响)。

他建立的符号也可以用来推导一种处理伽马的方法,或者检查给定的方法是否实际上是正确的。非常方便,这是我喜欢的方法(主要是因为我独立发现了它,但后来发现了他的书)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2233651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档