用数码模拟胶片,感光CMOS记录反向的光电信号得到一个负像,再反转下,是否就可以达到胶片的成像特性?
想法很好,但是不可行。胶片所谓的高光的肩部不是因为形成负像所保持的,而是它对于亮度的非线性感应而形成的。
我大概能理解题主的想法来源。首先吧,常见的负片(不管是彩色还是黑白的负片)都是对应环境中最亮的地方应该是底片上最黑的地方(也就是保留银盐最多的)。考虑到这个点,似乎曝光在足,还是有足够的银盐留存(而不是完全洗掉没有任何信息),能保留一些高光信息在。然后也熟悉底片是存在一定的高光肩部,也就是对亮部的「宽容度大」。

这两个判断一个比较不对,一个比较对。负片的「反相」只改变明暗对应方向,没有细节的情况下无论是正还是负像都是亮度维度上完全没有信息增加或者减少的转制而已(也就是真的一个完全可逆的函数而已,或者说就是photoshop中的cmd+i的一个快捷操作而已),因此信息不会由于「反相」本身更多保留。也就是说单纯的反相不会直接增加高光宽容度。我们拍完的底片上,高光在负片上变成高密度区域,场景阴影在负片上变成低密度区域。但这些区域能保留多少信息(也就是底片上的高低密度区域,即银盐留下多少),取决于曝光量到密度之间那条 S 形曲线。
我们的看得到的胶片的感光特性的更多由于底片上感光材料对曝光量的响应函数。所提到的负片的高光肩部来自 D-logH 特性曲线的非线性压缩。在很亮的地方,底片上感光材料的相应不是简单线性,当曝光越亮的地方时候,其负片密度继续增加,但增长斜率逐渐变小,所以高光被压缩进较窄的密度范围;也就让严重暴光的地方能保留一些亮度信息。

比如我们详细看Kodak的官方信息的话,在B-C以及C-D的变化率(斜率/梯度)就能给我们这样的判断。
而cmos成像,其实是可感应的范围上对于光线线性反应的。而一旦出现过亮的信息时候,也就是会撞上所谓「满阱容量」。大家听到的cmos的动态范围也常写成满阱容量与噪声底之比,因此我们一般会选动态范围大的传感器,ccd的动态范围很多低于cmos,但是再好的cmos不做别的改造的话还是不如好的底片自然,动态范围也会小一些。
当cmos成像时候,遇到亮度超过满阱的地方,每个cmos的像素对应的传感器能容纳的光信息数量是有限的。如果达到上限之后之后,记录值不再准确反映真实信号,额外信息会丢失。当最亮部分的亮度超过白这一极限时,系统无法再记录更高的亮度信息,信号会被「截断」,能接收的信息达到饱和。它在数字图像中常表现为数值达到最大值。CMOS不像胶片一样会在理想的范围外有个肩部(虽然底片达到极高亮度也会表现为溢出,但是cmos很容易达到饱和,多亮的信息都是达到最大值(比如255 也可食65535)。
不过,胶片负片的「胶片味」不只来自于上述非线性。还有很多胶片作为光化学媒介的特点。比如彩色(三个或者四个通道、层)的关系和其中的化学设计。

还有不同胶片对不同颜色存在不一样的色彩响应曲线(图中给的是daylight所谓5500k的卷和tungsten也就是3200k的卷的波长响应数据,甚至不同颜色的响应本身也不是多么光滑的曲线)。每种不同胶卷的独特个性也会随之而来。

比如,银盐在光反应后不一致的结晶以及所谓的「颗粒」感。

所以,要模拟的还很多呢。就算套个LUT还很难!