JLD: Perceptual Distance Through A Jacobian Lens
Organizations: The University of Texas at Austin, Austin, TX, USA · Google, USA · University of Colorado Boulder, Boulder, CO, USA
Abstract
Image compression, restoration, and generation all require a way to measure how different two images look to a person. Pixel error ignores how people see, while the most accurate perceptual distances are typically fitted to human judgments, tying them to a fixed data and resolution. For example, when image resolution is doubled, the correlation of DISTS with human scores on TID2013 drops from 0.815 to 0.717. We introduce the Jacobian Lens Distance (JLD), which derives its perceptual geometry from a frozen vision encoder rather than from human labels. JLD combines the locality of early patch features with the perceptual sensitivity captured by later encoder representations. Specifically, we use the encoder Jacobian to identify directions in the early feature space that most strongly affect the encoder output, producing a fixed metric tensor, , which we call the Jacobian lens. The lens is fitted only once from 100 unlabeled images, taking about 35 seconds. Locally, this construction defines a pullback metric in pixel space, giving JLD a clear geometric interpretation that can be directly analyzed on real images. Across four standard perceptual databases, JLD achieves state-of-the-art performance and consistently outperforms LPIPS, DISTS, PieAPP, and DreamSim. JLD is also robust to changes in image resolution, on TID2013, its lens-term correlation remains nearly unchanged when the resolution is doubled, decreasing only from 0.850 to 0.845. We further introduce JLD-fast, which is faster than LPIPS-VGG while achieving a mean correlation of 0.911. Finally, JLD naturally extends to video, reaching a correlation of 0.786 on Waterloo IVC 4K compared with 0.611 for VMAF.
Figures & tables
| Cost per pair | Spearman correlation with human ratings | |||||||
| Method | GFLOPs | ms | TID2013 (diag.) | CSIQ (dev.) | LIVE test | KADID-10k test | Mean first four | PIPAL val |
| Learned deep distances, fitted to human judgements (similarity choices or quality scores) | ||||||||
| LPIPS-VGG | 240.6 | 10.9 | 0.670 | 0.883 | 0.932 | 0.724 | 0.802 | 0.612 |
| DISTS | 240.7 | 9.9 | 0.818 | 0.943 | 0.954 | 0.885 | 0.900 | 0.704 |
| PieAPP | 385.7 | 16.5 | 0.844 | 0.897 | 0.918 | 0.864 | 0.881 | 0.706 |
| DreamSim | 212.2 | 51.3 | 0.812 | 0.911 | 0.910 | 0.851 | 0.871 | 0.759 |
Appendix figures & tables27 assets
Supplementary material from the paper’s appendix.
Appendix
| in the lens term | CSIQ | KADID dev. | TID2013 | KADID test | Dev. mean, with output |
|---|---|---|---|---|---|
| (flat, released) | 0.956 | 0.876 | 0.874 | 0.870 | 0.932 |
| (Mahalanobis) | 0.946 | 0.848 | 0.859 | 0.845 | 0.926 |
| ( -weighted lens) | 0.934 | 0.836 | 0.859 | 0.830 | 0.926 |
| (raw block-1 features) | 0.836 | 0.710 | 0.670 | 0.718 | 0.859 |
| Fit corpus | Overlap | SRCC | Disjoint half | Overlap | SRCC | ||
|---|---|---|---|---|---|---|---|
| 10 images | 0.877 | 0.913 | Half A, seed 0 | 0.963 | 0.913 | ||
| 25 images | 0.916 | 0.914 | Half A, seed 1 | 0.935 | 0.914 | ||
| 50 images | 0.963 | 0.913 | Half B, seed 0 | 0.943 | 0.914 | ||
| 100 images | 1.000 | 0.913 | Half B, seed 1 | 0.951 | 0.913 |
| TID2013 | CSIQ | LIVE | KADID test | PIPAL pub. | PIPAL val. | |||||||
| Metric | SRCC | PLCC | SRCC | PLCC | SRCC | PLCC | SRCC | PLCC | SRCC | PLCC | SRCC | PLCC |
| PSNR | 0.687 | 0.679 | 0.809 | 0.828 | 0.873 | 0.868 | 0.673 | 0.678 | 0.407 | 0.415 | 0.255 | 0.292 |
| SSIM | 0.627 | 0.686 | 0.837 | 0.815 | 0.910 | 0.915 | 0.621 | 0.630 | 0.504 | 0.509 | 0.363 | 0.426 |
| MS-SSIM | 0.786 | 0.834 | 0.913 | 0.899 | 0.951 | 0.948 | 0.826 | 0.823 | 0.562 | 0.593 | 0.491 | 0.566 |
| FSIM | 0.851 | 0.877 | 0.931 | 0.919 | 0.965 | 0.961 | 0.853 | 0.850 | 0.589 | 0.615 | 0.468 | 0.570 |
| VSI | 0.895 | 0.898 | 0.940 | 0.925 | 0.949 | 0.945 | 0.876 | 0.876 | 0.539 | 0.560 | 0.450 | 0.524 |
| TID2013 | CSIQ | LIVE | KADID test | PIPAL pub. | PIPAL val. | |||||||
| Metric | KRCC | SRCC | KRCC | SRCC | KRCC | SRCC | KRCC | SRCC | KRCC | SRCC | KRCC | SRCC |
| PSNR | 0.496 | 0.686 | 0.599 | 0.806 | 0.680 | 0.870 | 0.485 | 0.675 | 0.276 | – | 0.174 | – |
| SSIM | 0.455 | 0.628 | 0.632 | 0.837 | 0.731 | 0.910 | 0.449 | 0.623 | 0.349 | – | 0.249 | – |
| MS-SSIM | 0.605 | 0.784 | 0.738 | 0.912 | 0.803 | 0.949 | 0.635 | 0.826 | 0.397 | – | 0.341 | – |
| FSIM | 0.666 | 0.737 | 0.768 | 0.931 | 0.837 | 0.964 | 0.664 | 0.768 | 0.416 | – | 0.323 | – |
| VSI | 0.716 | 0.812 | 0.780 | 0.940 | 0.799 | 0.949 | 0.688 | 0.837 | 0.375 | – | 0.309 | – |
| Variant | TID2013 (diag.) | CSIQ (dev.) | LIVE | KADID-10k test | Mean |
|---|---|---|---|---|---|
| Full block 1 | 0.660 | 0.841 | 0.859 | 0.727 | 0.772 |
| Random 64 | 0.660 | 0.841 | 0.859 | 0.726 | 0.772 |
| PCA 64 | 0.766 | 0.912 | 0.925 | 0.800 | 0.851 |
| Lens 64 | 0.857 | 0.956 | 0.942 | 0.866 | 0.905 |
| + pre-filter | 0.875 | 0.956 | 0.945 | 0.870 | 0.911 |
| + output term = JLD | 0.877 | 0.971 | 0.964 | 0.892 | 0.926 |
| Method | 256 | 512 | Change |
| Deep features | |||
| Lens | 0.850 | 0.845 | 0.005 |
| PieAPP | 0.618 | 0.700 | 0.081 |
| LPIPS-VGG | 0.757 | 0.661 | 0.096 |
| DISTS | 0.815 | 0.717 | 0.099 |
| DeepDC | 0.806 | 0.695 | 0.111 |
| Form | TID2013 (diag.) | CSIQ (dev.) | LIVE | KADID test | KADID dev | Mean |
|---|---|---|---|---|---|---|
| Lens alone ( ) | 0.875 | 0.956 | 0.945 | 0.870 | 0.876 | 0.911 |
| Sum ( ) | 0.877 | 0.969 | 0.959 | 0.885 | 0.887 | 0.923 |
| JLD ( ) | 0.877 | 0.971 | 0.964 | 0.892 | 0.892 | 0.926 |
| Sum ( ) | 0.875 | 0.970 | 0.966 | 0.895 | 0.895 | 0.927 |
| Sum ( ) | 0.872 | 0.968 | 0.967 | 0.897 | 0.896 | 0.926 |
| Sum ( ) | 0.861 | 0.959 | 0.965 | 0.897 | 0.894 | 0.920 |
| Selected block | Best block | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Encoder | Block | Rank | Lens | Raw | PCA 64 | raw | PCA | Raw | PCA 64 |
| DINOv2-S | 1 | 64 | 0.913 | 0.782 | 0.858 | +0.132 | +0.056 | 0.807 | 0.858 |
| DINOv2-B | 1 | 64 | 0.908 | 0.804 | 0.859 | +0.104 | +0.049 | 0.804 | 0.859 |
| DINOv2-L | 4 | 32 | 0.906 | 0.829 | 0.891 | +0.077 | +0.015 | 0.829 | 0.895 |
| DINOv2-G | 4 | 16 | 0.896 | 0.785 | 0.875 | +0.112 | +0.022 | 0.795 | 0.875 |
| DINOv2-S-reg | 1 | 64 | 0.902 | 0.818 | 0.871 | +0.084 | +0.031 | 0.820 | 0.871 |
| Fitted to | Waterloo 4K (dev., 240) | AVT-UHD (held out, 120) | AVT | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Metric | video MOS | SRCC | Within | SRCC | KRCC | PLCC | Within | Lower | encoded |
| JLD-video | no | 0.786 | 0.967 | 0.912 | 0.761 | 0.918 | 0.944 | 0.786 | 0.582 |
| VMAF | yes | 0.611 | 0.834 | 0.932 | 0.790 | 0.939 | 0.953 | 0.611 | 0.663 |
| MS-SSIM | no | 0.694 | 0.967 | 0.884 | 0.718 | 0.888 | 0.945 | 0.694 | 0.561 |
| PSNR | no | 0.562 | 0.968 | 0.908 | 0.758 | 0.915 | 0.964 | 0.562 | 0.754 |