简述

还是facebook360项目,其中下载样例数据,render后,在/Surround360/surround360_render/res/config/isp/目录下可以找到一个README.txt,里面写的是同目录下的json配置文件的说明书。我将之翻译,用于学习交流。

Field description for configuring the soft ISP

BlackLevel

3 channel vector value [r, g, b]
offset in range 0.0, 1.0 where 1.0 == 2^bits_per_channel - This
varies by camera & sensor vendor. For the usb3 grasshoppers it is
12.0/255.0 equally for all 3 channels.

黑电平
3维向量 [r,g,b]
偏移范围取值0-1,其中偏移量为1时,代表2的x次幂个字节。应不同摄影机或者传感器而异。对于“usb3 grasshoppers”(一种微信摄影机),三维都取值12/255。

Vignette rolloff

5x3 matrix
Per-channel 4th order Bezier surface control points, separable on H and V orientations.
The control points spread uniformly on the image. Each pixel in the image is scaled
by the corresponding value of the Bezier surface at that location.
It is not unusual to have each of the channels roll off at different rates to
handle chromatic vignetting effects.
去晕影
5*3的矩阵
每一维表示四阶贝塞尔曲线控制点,在垂直(V),和水平(H)方向分成两组向量。控制点均匀的在图像表面分布。每一个像素点根据改点的贝塞尔曲面值进行了缩放。通常不用不同的比例来处理彩色晕影的效果。

WhiteBalanceGain

3 channel vector value [r, g, b]
Nominally the red and blue channels are usually around 2x gain
to the green channels. Strictly speaking this should be
computed using a global white balance algorithm.

获取白平衡
3维向量 [red, green, blue]
一般来说,红色、蓝色维度是绿的两倍。严格来讲,应该用“global white balance algorithm”算法来计算白平衡。

stuckPixelThreshold

Single value
The absolute difference of the center pixel from the mean of
it’s neighbors such that it is considered a candidate stuck
pixel. A value of 0.05 is around 13 pixel counts out of 255.

缺陷像素阈值
一个实数。缺陷像素指无法正确地再现光线水平的坏像素。
一个像素,当它与他周围相邻像素的均值截然不同的时候,它很有嫌疑是缺陷像素。13个像素间0.05左右的偏差,最后会扩大超过255(rgb最高值)。

stuckPixelVarianceThreshold

Single value
A measure of local smoothness. Such that if the local region is
smooth and the center pixel is “candidate stuck” pixel then the
current pixel is replaced with the local mean. Both the mean
and variance calculation excludes the current pixel.

缺陷像素方差阈值
一个实数。
一种局部光平稳度的测量方法。比如,局部像素平稳,但是中心有一个“可疑的缺陷像素点”,那么就用局部均值代替这个像素。均值和方差的计算,不包括中心点像素。

denoise

Single value
Noise threshold value. Zero disables noise coring. Bigger value
remove more noise but also more signal potentially.

降噪
一个实数
表示白噪声阈值。0表示不降噪。这个值越大,将会抹去更多噪点,但是也抹去了一些潜在的信号。

denoiseRadius

Single value
Radius for noise reduction 3 or 4 is reasonable. 1 will be fast but will leave low frequency noise behind.

降噪半径
一个实数
降噪半径在3-4之间都是可取的。取值1时,运行最快,但是也会留下低频率的噪点。

ccm

3x3 matrix [[m00, m01, m01], …, [m20, m21, m22]]
An identity leaves the color unchanged. This matrix should
calculated from a color calibration session. It usually best if
the rows sum to unity to conserve energy.

正确颜色矩阵(color correct matrix)
3*3的矩阵
一种颜色未变的标志。这个矩阵应该从一个颜色校准的操作中算得。最好每行的和统一,以节约时间。

sharpening

3 channel vector value [r, g, b]
1.0 means no sharpening. Below 1.o means blurring and values
greater than 1.0 will sharpen the image. Excessive
sharpening will cause “ringing.”
锐化
一个3维向量
1.0表示没有锐化。值小于1表示虚化,值大于1表示锐化。过度锐化会晃眼(让人头晕)。

saturation

Single value
1.0 means no saturation gain. 0.0 means no color at all
(e.g. B & W) and values greater than one increase saturation.

饱和度
一个实数
1表示不改变饱和度。0表示没有颜色,值越大饱和度越高。

contrast

Single value
  1.0 means no contrast gain.  Values greater than one increase
  contrast.

对比度
一个实数
1表示没有对比度调整。值越大(大于1)表示增加对比度。

low/high key boost

3 channel vector value [r, g, b]
Boosts low/high key colors, effectively increasing the color difference on the dark/bright
areas of the image. It applies a 4-point Bezier curve between 0.0 and 0.5 (low key) or
0.5 and 1.0 (high key).
Both low/high key default to 0.0 (= flat, no change), and they can range between
-0.1666 and 0.1666 (-1/6 and 1/6).

低/高 关键值增强
一个3维向量。
增强低(高)关键色值,特别是增加图像上明处和暗处部分的区别。这个操作依赖4点连线的贝赛尔曲线,0-0.5表示低值,0.5-1表示高值。低(高)关键值为0时,没有改变,取值范围是-1/6到1/6

gamma

3 channel vector value [r, g, b]
Raises the pixel value to the power of the gamma value. 0.454545
is the classic 2.2 gamma used to to move from linear sRGB to
gamma corrected sRGB.

Y
一个3维向量
增加像素值以增加Y值。0.454545是一个2.2Y的经典值,用来将现行sRGB转化为校准的Y sRGB。

bayerPattern

Single value string
The string is expected to contain a combination of “R” “G” and
“B” in the payer pattern order left to right, top to bottom. So
a Bayer pattern of:
R G
G B
Would be “RGGB”

拜尔模式
一个字符串。
这个字符串由R\G\B组成,用2*2的矩阵表示,顺序是从左到右,从上到下。
R G
G B
就是 RGGB

json样例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
"CameraIsp" : {
"serial" : 0,
"name" : "PointGrey Grasshopper",
"bitsPerPixel" : 16,
"compandingLut" : [[0.0, 0.0, 0.0],
[0.6, 0.6, 0.0],
[1.0, 1.0, 0.0]],
"blackLevel" : [1542.0, 1542.0, 1542.0],
"vignetteRollOffH" : [[1.3, 1.3, 1.3],
[1.1, 1.1, 1.1],
[1.0, 1.0, 1.0],
[1.1, 1.1, 1.1],
[1.3, 1.3, 1.3]],
"vignetteRollOffV" : [[1.3, 1.3, 1.3],
[1.1, 1.1, 1.1],
[1.0, 1.0, 1.0],
[1.1, 1.1, 1.1],
[1.3, 1.3, 1.3]],
"whiteBalanceGain" : [1.1, 1.0, 1.65],
"stuckPixelThreshold" : 5,
"stuckPixelDarknessThreshold" : 0.11,
"stuckPixelRadius" : 0,
"denoise" : 0.8,
"denoiseRadius" : 4,
"ccm" : [[1.02169, -0.05711, 0.03543],
[0.16789, 1.13419, -0.30208],
[-0.15726, -0.07864, 1.2359]],
"sharpening" : [0.5, 0.5, 0.5],
"saturation" : 1.2,
"contrast" : 1.0,
"lowKeyBoost" : [-0.2, -0.2, -0.2],
"highKeyBoost" : [0.2, 0.2, 0.2],
"gamma" : [0.4545, 0.4545, 0.4545],
"bayerPattern" : "GBRG"
}
}