#B4480. [语言月赛 202601] 峰值信噪比 / PSNR
[语言月赛 202601] 峰值信噪比 / PSNR
题目描述
千秋正在进行新视角合成与实时渲染方面的科研工作。现在,他得到了一张渲染出的图像 ,与真实图像 。
图像是由高为 ,宽为 的像素组成的,每个像素又需要 三个颜色值,分别表示 RGB 三通道颜色。
因此,一张图像可以被简单理解为 个数的集合。 分别表示图像像素的宽度和高度, 表示 RGB 三颜色通道。我们分别用 和 表示第 行第 列,颜色通道 的像素值,值的范围为 。
峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)是衡量两张图像相似程度的重要指标,其计算公式如下:
$$M=\dfrac{1}{3wh}\sum\limits_{k\in \{\texttt{R},\texttt{G},\texttt{B}\}}\sum\limits_{i=1}^{h}{\sum\limits_{j=1}^{w}{(I(i,j,k)-K(i,j,k))^2}}$$$$\operatorname{PSNR}=20\cdot \log_{10} (\dfrac{255}{\sqrt{M}})$$渲染的图像与真实图像必然有细微的区别,因此可以保证 。
千秋想要展示他高质量的渲染细节。千秋可以选择任意宽度不小于 ,且高度不小于 的子图像。请问,千秋选择的子图像,其最大 PSNR 值为多少。
子图像是指,图像中任意连续的矩形形状的像素的集合。
输入格式
第一行为两个整数 ,分别表示图像的高度与宽度。
接下来 行,每行 个非负整数,表示图像 颜色通道 R 的像素值 。
接下来 行,每行 个非负整数,表示图像 颜色通道 G 的像素值 。
接下来 行,每行 个非负整数,表示图像 颜色通道 B 的像素值 。
接下来 行,每行 个非负整数,表示图像 颜色通道 R 的像素值 。
接下来 行,每行 个非负整数,表示图像 颜色通道 G 的像素值 。
接下来 行,每行 个非负整数,表示图像 颜色通道 B 的像素值 。
输出格式
输出一行一个浮点数,表示子图像可以取得的最高 PSNR 值。
假设你输出的值为 ,标准答案为 ,当 时,你的答案被认为正确。
3 3
178 239 196
169 175 32
248 205 45
76 89 228
217 65 83
222 108 153
242 17 68
183 141 49
5 54 90
130 194 229
82 23 243
16 87 23
154 185 192
181 228 2
215 194 29
84 176 6
83 210 28
106 169 63
7.67666099
提示
【数据规模与约定】
对于 的测试数据,,。
【提示】
- 符号表示求和。例如,。
- 表示对 进行以 为底数的对数运算。对于 C/C++ 语言,可以直接使用
cmath头文件中的log10函数计算结果。 - 将输出保留两位小数以上,可以保证不会由于精度误差导致的答案错误。