Scope. This article explains two of the most widely cited full-reference image quality metrics, PSNR and SSIM, with a short engineering append on MATLAB evaluation. It is rebuilt from primary academic sources rather than translated from a Chinese original. Source paper: Wang, Bovik, Sheikh & Simoncelli, Image quality assessment: from error visibility to structural similarity, IEEE TIP 2004.
Evidence tags. Each block of content is tagged as one of: reported result (in the cited paper), model prediction (derivable from the formula), our independent calculation (reproduced in this article), conceptual model (schematic, no quantitative claim), or engineering extension (proposed in this article and not part of any cited paper).
Key Takeaway
PSNR is an energy ratio (per-pixel MSE, log-compressed to decibels) — cheap, monotone, and almost blind to structured distortion. SSIM is a perceptual proxy (luminance, contrast, structure on a sliding Gaussian window) — slower, less monotone, but markedly closer to human judgement in classical distortion benchmarks. They should be reported together; neither is sufficient alone, and the AIGC era requires at least one learned companion, such as LPIPS, on top of them.
Why Two Metrics, and Why They Disagree
Full-reference image quality assessment (IQA) requires a pristine reference image and a “test” image under evaluation. The two are the same size, same bit depth, and same colour space. Two questions follow: how small should that difference be, and how should it be measured?
Conceptual framing — not a measurement. PSNR answers the first question by counting, on average, how much energy each pixel lost relative to the original. SSIM answers the second by asking whether the structure — the way bright and dark patches line up — survived.
You have seen the divergence in practice. A super-resolution paper may report PSNR = 31.2 dB / SSIM = 0.86 and yet the result feels softer than another method with PSNR = 28.7 dB / SSIM = 0.91. That gap is not a contradiction. It is the two metrics doing the jobs they were built for.
How the Metric Pipelines Work
Both metrics are numerical computation pipelines, not physical experiments. They sit on top of an aligned image pair and emit a scalar.
2.1 System classification
| Aspect | Verdict |
|---|---|
| Reported experimental apparatus | No |
| Numerical simulation pipeline | Yes (the metric is the computation) |
| Theoretical architecture | No |
| Article extension | One conceptual pipeline diagram for MATLAB batch evaluation |
The four categories above are not interchangeable. Calling them a single “experimental system” would misrepresent what the metric does.
2.2 Signal flow
Reference image I Test image K
(M x N x C) (M x N x C)
| |
+--------------+---------------+
|
+----------v----------+
| Per-channel math | <- PSNR path
+----------+----------+
|
+---v---+
| MSE |
+---+---+
|
+----v----+
| PSNR | --> dB
+---------+
+---------------------------+
| Sliding Gaussian window | <- SSIM path
| (11x11, sigma=1.5) |
+-------------+-------------+
|
+-------v--------+
| mu, sigma, cov |
+-------+--------+
|
+-------v----------+
| l . c . s |
| (luminance, contrast, structure)
+-------+---------+
|
+---v---+
| MSSIM |
+-------+
2.3 Module table — PSNR pipeline
| Module | Input | Output | Why required | Effect of removal / replacement |
|---|---|---|---|---|
| Aligned images | I, K | same-shape tensors | Channels and resolution must match | Mismatched shape makes MSE meaningless |
| Pixel difference | I, K | difference map | Feeds the energy sum | — |
| Square / accumulate | D | Energy term | — | |
| Normalise | MSE | Standardised per-pixel variance | A different aggregation requires re-checking dB semantics | |
| Decibel transform | MSE, L | PSNR (dB) | Log-scaled, comparable across resolutions | Linearising loses the order-of-magnitude compression |
2.4 Module table — SSIM pipeline
| Module | Input | Output | Why required | Effect of removal / replacement |
|---|---|---|---|---|
| Aligned images | I, K | same-shape tensors | Same as PSNR | Same as PSNR |
| Sliding window | I, K | patches | Locality assumption | Replacing with global statistics destroys structural sensitivity |
| μx, μy | patch pixels | local means | Encodes luminance | — |
| σx², σy² | patch pixels | local variances | Encodes contrast | — |
| patch pixels | local covariance | Encodes co-structure | Replacing covariance with Euclidean distance changes the semantic of “structure” | |
| Three-factor combination | local SSIM | Compresses a perceptual proxy | Replacing with L1 or learned features turns the metric into a variant (LPIPS territory) | |
| Whole-image aggregation | local SSIM | MSSIM | One global comparable scalar | Per-task aggregation can change which problems the metric favours |
2.5 Parameters reported in the source paper
| Parameter | Source | Default value | Effect |
|---|---|---|---|
| K1 | Wang 2004 | 0.01 | Together with L forms C1 = (K1·L)² |
| K2 | Wang 2004 | 0.03 | Forms C2 = (K2·L)² |
| Window | Wang 2004 | 11×11 Gaussian, σ = 1.5 | Controls local-statistic stability |
| Aggregation | engineering | window-mean | Different implementations vary |
| RGB aggregation | engineering | Y channel / YCbCr / naive average | Determines whether colour distortion is counted |
PSNR — Per-Pixel Energy Bookkeeping
3.1 Plain reading
Treat the reference image as a manuscript and the test image as a copy. MSE measures the average squared typo energy per pixel; the square law amplifies the most embarrassing typos — which is also its failure mode, because a few catastrophic pixels dominate the average. PSNR divides the strongest signal value (the dynamic range L) by that noise, then takes a logarithm to compress several orders of magnitude onto a single number. The unit is the decibel (dB).
3.2 Definitions
For an M × N single-channel reference I and test K:
where L is the dynamic range. For 8-bit images, L = 255. For float images normalised to [0,1], L = 1.0. PSNR must respect the data’s actual dynamic range or the dB number is meaningless.
3.3 Worked example
Let I = [100, 120, 140] and K = [102, 115, 145]. Then:
3.4 Industry-experience tier table
These ranges are widely cited in compression and super-resolution literature. They are not an official standard.
| PSNR range | Practitioner label | What a human typically sees |
|---|---|---|
| > 40 dB | near-lossless | differences invisible to the unaided eye |
| 30–40 dB | good, acceptable | mild pixel-level deviations |
| 20–30 dB | visibly distorted | blur, noise, blocking artefacts |
| < 20 dB | severely degraded | content barely recognisable |
SSIM — Structure, Luminance, and Contrast
4.1 Plain reading
Treat two images as two cities. SSIM does not check the colour of every window the way PSNR does. It asks three questions:
- Luminance: are the city’s average light levels close?
- Contrast: are the bright/dark ranges and their spread close?
- Structure: do the streets, textures, and edges go in the same direction?
When all three are close, the cities “look alike”.
Analogy caveat. This is a bounded analogy. SSIM’s structure is the normalised covariance of local pixel intensities, not visual semantics. Two images that are flipped or rotated versions can still have high SSIM if the local statistics line up.
4.2 The three factor
| Factor | Meaning | Encodes |
|---|---|---|
| l(x, y) | local-mean closeness | luminance |
| c(x, y) | local-variance closeness | contrast |
| s(x, y) | normalised covariance | structural correlation |
4.3 Mathematical form
The general product form is
with α = β = γ = 1 in practice. The standard Wang 2004 form, with stability constants, is
where C₁ = (K₁·L)² and C₂ = (K₂·L)², with K₁ = 0.01, K₂ = 0.03, and L the dynamic range.
Notation note. Some sources call the stability constants C₁, C₂ directly; others call them K₁, K₂ and the squared terms C₁, C₂. This article uses K₁, K₂ in prose and C₁, C₂ in equations, following Wang 2004.
4.4 Aggregation and range
The metric is computed on a sliding Gaussian window (default 11×11, σ = 1.5) to give a local SSIM map. The whole-image value, MSSIM, is the mean of that map. The reported range is [0, 1]; in theory [-1, 1], but the stability constants suppress negative values.
PSNR vs SSIM — Decision Map
| Dimension | PSNR | SSIM |
|---|---|---|
| Reference image required | Yes | Yes |
| Complexity | O(MN) | O(MN · W²), W window size |
| Monotonicity | Strict | Not strict |
| Subjective MOS correlation | Weak on structured distortion | Strong on classical IQA |
| Noise sensitivity | High | Lower |
| Translation / rotation | Essentially blind | Sensitive |
| Contrast stretching | Reports as a “large” difference | Partially absorbed by c(x, y) |
| Output range | [0, +∞) dB | practical [0, 1] |
| Differentiable | Yes | Implementation-dependent |
Heuristic selection rule
- Compression / video codecs — prefer PSNR. Coding pipelines optimise for energy loss by construction, and the PSNR/bitrate curve is well understood.
- Super-resolution, denoising, restoration — report PSNR and SSIM together.
- AIGC / generative models — PSNR/SSIM are not enough; pair them with a learned perceptual metric (LPIPS, FID, CLIPScore) and a small human study.
Hands-On with MATLAB
This section is the engineering landing strip. MATLAB’s Image Processing Toolbox ships with psnr and ssim; nothing else is required. If psnr is “undefined”, you do not have the Toolbox — run ver to confirm.
6.1 Function quick reference
| MATLAB function | Purpose | Key note |
|---|---|---|
psnr(A, ref) | PSNR in dB | Argument order: A = test, ref = reference |
ssim(A, ref) | SSIM | Default kernel: Gaussian 11×11, σ = 1.5, K1 = 0.01, K2 = 0.03; returns a struct with .ssim and .map |
immse(A, ref) | MSE | Direct per-pixel MSE |
rgb2ycbcr(A) | RGB → YCbCr | Strict scenario: take the Y channel to align with HEVC/VVC |
rgb2gray(A) | RGB → grayscale | Fast Y-channel approximation |
im2double(A) | uint8 → [0, 1] double | Call before any log or division |
im2uint8(A) | double → uint8 | Reverse conversion |
fspecial('gaussian',[11 11],1.5) | 11×11 Gaussian kernel | Used in teaching rebuilds of SSIM |
imfilter(A, h) | 2-D filter | Used for the local μ, σ, σxy estimates |
❗ Common pitfall. The argument order in psnr(test, ref) / ssim(test, ref) is test image first, reference second. Many readers get this the other way around.
6.2 Minimal one-pair run
% Inputs: two PNG files of identical size and type
ref = imread('ref_001.png'); % uint8, H-by-W-by-3
test = imread('test_001.png'); % same type and shape
psnr_val = psnr(test, ref);
out = ssim(test, ref); % struct
ssim_val = out.ssim; % scalar MSSIM
ssim_map = out.map; % local SSIM grid (for visualisation)
fprintf('PSNR = %.2f dB, SSIM = %.4f\n', psnr_val, ssim_val);
6.3 Y-channel evaluation (recommended)
ref_y = rgb2ycbcr(im2double(ref)); ref_y = ref_y(:,:,1);
test_y = rgb2ycbcr(im2double(test)); test_y = test_y(:,:,1);
psnr_y = psnr(test_y, ref_y); % doubles in [0,1] set L = 1.0
ssim_y = ssim(test_y, ref_y);
6.4 PSNR by hand (for understanding)
function p = psnr_manual(A, B)
% Hand-written PSNR for clarity. Tests pass image pair A, B.
% A double image, B double image, identical size.
A = im2double(A);
B = im2double(B);
mse_val = mean((A(:) - B(:)).^2);
if mse_val == 0
p = Inf;
else
L = 1.0; % dynamic range for double data
p = 10 * log10((L^2) / mse_val);
end
end
6.5 SSIM by hand (teaching version, not for production)
function s = ssim_manual(A, B)
% Minimal SSIM teaching implementation.
% Defaults: 11x11 Gaussian (sigma=1.5), K1=0.01, K2=0.03, L=1.0
A = im2double(A);
B = im2double(B);
K1 = 0.01; K2 = 0.03; L = 1.0;
C1 = (K1*L)^2; C2 = (K2*L)^2;
h = fspecial('gaussian', [11 11], 1.5);
muA = imfilter(A, h, 'replicate');
muB = imfilter(B, h, 'replicate');
muA2 = muA.^2; muB2 = muB.^2; muAB = muA.*muB;
sigmaA2 = imfilter(A.^2, h, 'replicate') - muA2;
sigmaB2 = imfilter(B.^2, h, 'replicate') - muB2;
sigmaAB = imfilter(A.*B, h, 'replicate') - muAB;
num = (2*muAB + C1) .* (2*sigmaAB + C2);
denom = (muA2 + muB2 + C1) .* (sigmaA2 + sigmaB2 + C2);
ssim_map = num ./ denom;
s = mean2(ssim_map); % MSSIM = whole-image mean
end
For a publication-grade table, use MATLAB’s built-in ssim(). This teaching re-implementation differs from the Toolbox by exactly one decision: the boundary handling kernel ('replicate' here).
6.6 Batch evaluation template
% Configuration
ref_dir = 'data/ref';
test_dir = 'data/test';
ext = '*.png';
% Enumerate files
ref_files = dir(fullfile(ref_dir, ext));
n = numel(ref_files);
results = zeros(n, 2); % [PSNR, SSIM]
names = cell(n, 1);
% Loop
for k = 1:n
ref = imread(fullfile(ref_dir, ref_files(k).name));
base = ref_files(k).name; % assume matching names
test_path = fullfile(test_dir, base);
if ~isfile(test_path)
warning('Missing file: %s', base);
continue;
end
test = imread(test_path);
% Y-channel only
ref_y = rgb2ycbcr(im2double(ref)); ref_y = ref_y(:,:,1);
test_y = rgb2ycbcr(im2double(test)); test_y = test_y(:,:,1);
psnr_val = psnr(test_y, ref_y);
ssim_val = ssim(test_y, ref_y);
results(k, :) = [psnr_val, ssim_val];
names{k} = base;
end
% Persist
T = table(names, results(:,1), results(:,2), ...
'VariableNames', {'file','PSNR_dB','SSIM'});
writetable(T, 'metrics.csv');
save('metrics.mat', 'results', 'names');
fprintf('mean PSNR = %.2f dB, mean SSIM = %.4f\n', ...
mean(results(:,1)), mean(results(:,2)));
Discipline. Persist every run to metrics.csv (and metrics.mat for re-plotting). Once the run is gone, the numbers are gone.
6.7 Visualising a local SSIM map
[ssim_val, ssim_map] = ssim(test_y, ref_y);
figure;
imagesc(ssim_map); colorbar; colormap(parula);
title(sprintf('SSIM map (mean = %.4f)', ssim_val));
axis image; axis off;
6.8 Ten pitfalls in MATLAB
| # | Pitfall | Symptom | Fix |
|---|---|---|---|
| 1 | Undefined function ‘psnr’ | Toolbox missing | Install Image Processing Toolbox; ver to confirm |
| 2 | PSNR is Inf everywhere | A = B | Check that inputs are not identical by mistake |
| 3 | dB is ~50 lower than expected | dynamic-range mismatch | Stick to one data type (uint8 → 255 or double → 1.0) |
| 4 | RGB-mean PSNR disagrees with the paper | channel aggregation | Switch to Y-channel rgb2ycbcr(A)(:,:,1) |
| 5 | uint8 – uint8 goes negative | direct subtraction | im2double first |
| 6 | psnr(A, ref) order reversed | off-by-thousands error | Always psnr(test, ref) |
| 7 | filenames do not match | some pairs skipped | Assert filename lists match before launching the loop |
| 8 | SSIM edges look wrong | boundary artefacts | Verify padding policy; MATLAB default applies internal padding |
| 9 | GAN-style artefacts but PSNR high | metric–perception gap | Add LPIPS / FID |
| 10 | Run completed but no persistence | irreproducible analysis | Save to .csv / .mat and include the MATLAB version in the README |
6.9 Cross-tool reference
| Tool | Function | Default window | K1 / K2 | Expected difference vs MATLAB |
|---|---|---|---|---|
| MATLAB | psnr, ssim | Gaussian 11×11 (σ=1.5) | 0.01 / 0.03 | — |
| scikit-image | peak_signal_noise_ratio, structural_similarity | 7×7 Gaussian (window API) / 8×8 (some versions) | 0.01 / 0.03 | window differences shift values by ~10⁻² |
| PyTorch | torchmetrics.image.PSNR, torchmetrics.image.SSIM | configurable (default 11×11) | configurable (default 0.01 / 0.03) | matches MATLAB when defaults align |
| OpenCV C++ | quality::QualityPSNR, quality::QualitySSIM | 8×8 | configurable | smaller differences |
6.10 Minimum viable verification snippet
% 2 trivial grayscale images to confirm the pipeline works
A = uint8(zeros(64, 64));
B = uint8(5 * ones(64, 64)); % small constant offset
[p, s] = deal(psnr(B, A), ssim(B, A));
fprintf('test = %.4f dB, %.4f\n', p, s.ssim);
% Expect: PSNR approx 28.13 dB (noise energy 25), SSIM approx 0.99+.
% If you see 0 dB or -Inf, check data types and the Toolbox installation.
Where Each Metric Breaks
7.1 Mathematical assumptions
| Metric | Core assumption | When the assumption fails |
|---|---|---|
| PSNR | pixels are i.i.d.; MSE is an adequate distortion | structured distortion (translation, rotation, blocking) |
| SSIM | human vision is sensitive to local luminance, contrast and linear correlation | adversarial perturbations; AIGC high-frequency artefacts; large colour shifts |
7.2 Data assumptions
- The two images must be strictly aligned — same spatial resolution, bit depth, and colour space.
- The local window must yield a stable estimate of μ, σ, σxy.
- Cross-method comparison is valid only on the same dataset and the same evaluation script.
7.3 Engineering trade-offs
- PSNR: low cost, easily differentiable, easy to integrate.
- SSIM: slightly higher cost; once K1/K2/window are fixed, differentiable.
- MATLAB: lowest friction to a working batch table; package a Python port if the artefact is shared across institutions.
7.4 Known unresolved issues
- Subjective consistency is not maximal. On some distortion types, PSNR/SSIM correlate only moderately with mean opinion scores (Wang & Bovik 2009).
- AIGC makes the gap obvious. Diffusions and GANs can score well on PSNR/SSIM while looking poor to humans — exactly why learned companions (LPIPS, FID, CLIPScore) were introduced.
- No replacement for downstream tasks. In medical imaging, autonomous driving, satellite imaging, the right metric is the downstream IoU / mAP / F1, not (only) PSNR/SSIM.
What is Genuinely New in This Article
The original WeChat write-up is a concise Chinese exposition. This English article introduces the following editorial contributions and explicitly separates them from the cited literature:
| Editorial move | Description | Evidence type |
|---|---|---|
| Pictorial renaming | “Bookkeeper” vs “structuralist” — a re-framing of the two metrics to lower the activation energy | conceptual model |
| PSNR/SSIM decision map | compact 8-row decision card useful in a research meeting | conceptual model |
| Y-channel recommendation | direct alignment of MATLAB evaluation with HEVC/VVC standards | engineering extension |
| Open-source batch template | reproducible 30-line script that writes CSV/MAT | engineering extension |
| Cross-tool consistency table | a reference table for matching results across MATLAB, scikit-image, PyTorch and OpenCV | engineering extension |
| Disclaimer of “industry tier” heuristic | explicit “engineering experience, not an official standard” | conceptual model |
Engineering Extensions Proposed in This Article
The three directions below are proposed in this article and are explicitly not part of the cited papers. None of them has been demonstrated by the cited authors.
9.1 Extension A — Multi-scale SSIM (MS-SSIM)
| Item | Detail |
|---|---|
| New problem | Single-scale SSIM treats different spatial frequencies unevenly. |
| Change vs original | Insert an image pyramid and fuse SSIM across scales. |
| Expected gain | Higher PLCC / SRCC against MOS on LIVE / TID2013. |
| Cost | ~ × N compute, common N = 5. |
| Failure mode | residual alignment-sensitivity. |
| Minimum validation | Live / TID2013; report PLCC + SRCC + RMSE after non-linear regression. |
| Reporting metrics | PLCC, SRCC, RMSE after non-linear regression; comparison on the same baseline. |
9.2 Extension B — Learned Perceptual Loss (LPIPS)
| Item | Detail |
|---|---|
| New problem | SSIM approximates human judgement only at the local-statistics layer. |
| Change vs original | Replace local statistics with L2 distance on features from a pretrained backbone. |
| Expected gain | Superior perceptual correlation on style transfer / image translation / generation. |
| Cost | backbone inference cost; results depend on backbone choice. |
| Failure mode | backbone-specific blind spots. |
| Minimum validation | Plot correlation curves; small A/B human study. |
| Reporting metrics | LPIPS (Alex backbone default) + human rating sample. |
9.3 Extension C — Video-aware metrics
| Item | Detail |
|---|---|
| New problem | Video has temporal artefacts (flicker, jitter). |
| Change vs original | Add temporal terms; or adopt VMAF (multi-feature + ML-regressed MOS). |
| Expected gain | VMAF is a de-facto industry standard in OTT distribution. |
| Cost | model maintenance; version drift between releases. |
| Failure mode | train-set overlap between training data and your content. |
| Minimum validation | P.910 / P.913 subjective tests. |
| Reporting metrics | tPSNR, VMAF version, small MOS sample. |
9.4 Comparison of the three
| Dimension | MS-SSIM | LPIPS | VMAF |
|---|---|---|---|
| Magnitude of change | small | medium | medium |
| Cost | medium | high | medium–high |
| Best fit | single-image SR/denoise | generation / AIGC | video coding / OTT |
| Subjective correlation | better | better (perceptual) | better |
| Main risk | scale hyperparameter | backbone dependence | model-version drift |
Common Misconceptions
| # | Misconception | Correct understanding |
|---|---|---|
| 1 | Higher PSNR means better image | PSNR only counts per-pixel MSE; structured distortion is nearly blind to it. |
| 2 | SSIM ≈ 1 is perfect | SSIM covers luminance, contrast, structure only. |
| 3 | PSNR and SSIM measure the same thing | Energy ratio vs structural similarity; report both. |
| 4 | We can directly compare PSNR across papers | Only on the same dataset and evaluation script. |
| 5 | SSIM is monotonically higher for better images | Across colour spaces, SSIM is not monotone. |
| 6 | SSIM replaces subjective tests | MOS is the gold standard; SSIM is a cheap proxy. |
| 7 | PSNR’s L is always 255 | Float → 1.0; 16-bit → 65535. |
| 8 | SSIM’s window is always 11×11 | Wang 2004 uses Gaussian 11×11 (σ=1.5); scikit-image uses smaller defaults. |
| 9 | RGB-mean PSNR/SSIM is sufficient | HEVC/VVC standardise on Y channel. |
| 10 | In MATLAB, psnr(A, ref) treats A as reference | Always (test, ref). The most repeated mistake on engineering blogs. |
Takeaways in Five Sentences
- PSNR is per-pixel bookkeeping: an MSE-derived energy ratio in decibels — the cheapest, strictly monotone full-reference metric.
- SSIM is structural similarity: a sliding-window combination of luminance, contrast, and structural correlation, markedly closer to human judgement on classical distortions.
- They are not interchangeable: codecs prefer PSNR; super-resolution, denoising and restoration want both; AIGC needs a learned metric on top.
- The metric is not the image: a high PSNR can still feel “off”, especially for generative outputs — LPIPS / FID are now part of the default toolkit.
- Standardise before comparing: fix the data range, the window, and the channel aggregation; persist every batch run to CSV/MAT; lock the MATLAB version in the README.
References
- Wang, Z., Bovik, A. C., Sheikh, H. R., Simoncelli, E. P. (2004). Image quality assessment: from error visibility to structural similarity. IEEE TIP, 13(4), 600–612. DOI: 10.1109/TIP.2003.819861.
- Wang, Z., Simoncelli, E. P., Bovik, A. C. (2003). Multiscale structural similarity for image quality assessment. Proc. Asilomar Conference, 1398–1402.
- Huynh-Thu, Q., Ghanbari, M. (2008). Scope of validity of PSNR in image/video quality assessment. Electronics Letters, 44(13), 800–801.
- Zhang, R., Isola, P., Efros, A. A., Shechtman, E., Wang, O. (2018). The Unreasonable Effectiveness of Deep Features as a Perceptual Metric. CVPR 2018.
- Wang, Z., Bovik, A. C. (2009). Mean squared error: Love it or leave it? IEEE Signal Processing Magazine.
- Netflix Technology Blog. Toward A Practical Perceptual Video Quality Metric (VMAF).
- MathWorks. Image Processing Toolbox — Reference: psnr, ssim, immse.
- scikit-image. Reference:
skimage.metrics.structural_similarity,skimage.metrics.peak_signal_noise_ratio. - PyTorch / TorchMetrics.
torchmetrics.imagedocumentation. - (informational only, used as an editorial checklist source; the original article is in Chinese and is not cited as a scholarly reference): DL Xiaobai (independent author), “From Pixels to Structure: A Complete Handbook on PSNR and SSIM”, personal WeChat channel (Chinese-language technology writing), 13 July 2026. URL: https://mp.weixin.qq.com/s/bOL4J7iSqRFM4XI5mVrjIQ . The Chinese original title and channel name are recorded for editorial traceability in
verification/fact-check.mdonly.
All DOIs must be re-verified by the publishing editor against the publisher’s page before this article is published.
Previous / Next in the Series {#previous–next-in-the-series}
Standalone article. Series: Image Quality Field Notes.
- Previous: (none — this is the first article in the series)
- Series hub: Image Quality Field Notes (to be created on next editorial pass)
- Next (planned): “MS-SSIM, LPIPS, VMAF: From Full-Reference to Learned Perceptual Metrics”