Skip to content

Commit d850c2e

Browse files
committed
2.6.3: correct UM model
1 parent 1bdc573 commit d850c2e

11 files changed

+1036
-46
lines changed

CHANGELOG

+5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
JPEG Recompress
22
https://github.com/ImageProcessing-ElectronicPublications/jpeg-recompress
33

4+
2.6.3 "um"
5+
6+
Research: correct UM model.
7+
2023, zvezdochiot
8+
49
2.6.2 "sharpenbad"
510

611
reimplementation SHARPENBAD:

Makefile

+4-2
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ AR ?= ar
1919
RM ?= rm
2020
INSTALL = install
2121

22+
LIBOBJ = src/jmetrics.o
23+
2224
.PHONY: test clean install uninstall
2325

2426
all: $(PROGS)
2527

26-
$(LIBIMM): src/jmetrics.o
28+
$(LIBIMM): $(LIBOBJ)
2729
$(AR) crs $@ $^
2830

2931
$(PROGR): src/$(PROGR).c $(LIBIMM)
@@ -49,7 +51,7 @@ test: test/test.c $(LIBIMM)
4951
./test/$@
5052

5153
clean:
52-
$(RM) -rf $(PROGS) $(LIBIMM) test/test src/*.o
54+
$(RM) -rf $(PROGS) $(LIBIMM) $(LIBOBJ) test/test
5355

5456
install: all
5557
$(INSTALL) -d $(PREFIX)/bin

README.md

+10-7
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Why are they different sizes? The default quality settings are set to average ou
4848

4949
#### Image Comparison Metrics
5050

51-
The following metrics are available when using `jpeg-recompress`. SSIM is the default.
51+
The following metrics are available when using `jpeg-recompress`. SUM is the default.
5252

5353
Name | Option | Description
5454
----------- | ------------- | -----------
@@ -69,7 +69,10 @@ SUMMARY | `-m sum` | `(ssim + vipf1 + smallfry + shbad + nhw) / 5` **DE
6969

7070
**Note**: The SmallFry algorithm may be [patented](http://www.jpegmini.com/main/technology) so use with caution.
7171

72-
"Universal Scale" of metrics (UM):
72+
#### "Universal Scale" of metrics (UM):
73+
74+
![UM example](plot_um.svg)
75+
7376
```
7477
0.0
7578
... (DIRTY) ...
@@ -87,16 +90,16 @@ SUMMARY | `-m sum` | `(ssim + vipf1 + smallfry + shbad + nhw) / 5` **DE
8790
```
8891
Trends:
8992
```
90-
UM = 2.42 * sqrt(sqrt(1.0 / MPE)) - 1.38
93+
UM = 0.25 * (sqrt(sqrt(255.0 / MPE)) - 1.0)
9194
UM = 0.87 * sqrt(PNSR) - 4.70
92-
UM = 1.02 * sqrt(sqrt(1.0 / MSEF)) - 1.49
95+
UM = 0.5 * (sqrt(sqrt(1.0 / MSEF)) - 1.0)
9396
UM = 1.0 * cor_sigma(cor_sigma(COR))
9497
UM = 1.51 * cor_sigma(cor_sigma(cor_sigma(SSIM)))
9598
UM = 1.59 * cor_sigma(cor_sigma(MS_SSIM))
9699
UM = 1.06 * cor_sigma(cor_sigma(VIFP1))
97-
UM = 0.0658 * SMALLFRY - 6.07
98-
UM = 1.40 * cor_sigma(SHARPENBAD)
99-
UM = 0.222 * sqrt(sqrt(1.0 / NHW))
100+
UM = 3.0 * (SMALLFRY * 0.01 - 0.8)
101+
UM = 1.0 * cor_sigma(sqrt(SHARPENBAD))
102+
UM = 0.333 * (sqrt(sqrt(1.0 / NHW)) - 1.0)
100103
101104
cor_sigma(M) = 1.0 - sqrt(1.0 - M * M)
102105
```

man/man1/jpeg-compare.1

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.TH "jpeg-compare" 1 2.6.2 "08 Feb 2023" "User manual"
1+
.TH "jpeg-compare" 1 2.6.3 "09 Feb 2023" "User manual"
22

33
.SH NAME
44
jpeg-compare
@@ -74,16 +74,16 @@ jpeg-compare --method ssim image1.jpg image2.jpg
7474
.PP
7575
Trends:
7676

77-
UM = 2.42 * sqrt(sqrt(1.0 / MPE)) - 1.38
77+
UM = 0.25 * (sqrt(sqrt(255.0 / MPE)) - 1.0)
7878
UM = 0.87 * sqrt(PNSR) - 4.70
79-
UM = 1.02 * sqrt(sqrt(1.0 / MSEF)) - 1.49
79+
UM = 0.5 * (sqrt(sqrt(1.0 / MSEF)) - 1.0)
8080
UM = 1.0 * cor_sigma(cor_sigma(COR))
8181
UM = 1.51 * cor_sigma(cor_sigma(cor_sigma(SSIM)))
8282
UM = 1.59 * cor_sigma(cor_sigma(MS_SSIM))
8383
UM = 1.06 * cor_sigma(cor_sigma(VIFP1))
84-
UM = 0.0658 * SMALLFRY - 6.07
85-
UM = 1.40 * cor_sigma(SHARPENBAD)
86-
UM = 0.222 * sqrt(sqrt(1.0 / NHW))
84+
UM = 3.0 * (SMALLFRY * 0.01 - 0.8)
85+
UM = 1.0 * cor_sigma(sqrt(SHARPENBAD))
86+
UM = 0.333 * (sqrt(sqrt(1.0 / NHW)) - 1.0)
8787
cor_sigma(M) = 1.0 - sqrt(1.0 - M * M)
8888

8989
.SH COPYRIGHT

man/man1/jpeg-hash.1

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.TH "jpeg-hash" 1 2.6.2 "08 Feb 2023" "User manual"
1+
.TH "jpeg-hash" 1 2.6.3 "09 Feb 2023" "User manual"
22

33
.SH NAME
44
jpeg-hash

man/man1/jpeg-recompress.1

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.TH "jpeg-recompress" 1 2.6.2 "08 Feb 2023" "User manual"
1+
.TH "jpeg-recompress" 1 2.6.3 "09 Feb 2023" "User manual"
22

33
.SH NAME
44
jpeg-recompress
@@ -145,16 +145,16 @@ jpeg-recompress --quiet image.jpg compressed.jpg
145145
.PP
146146
Trends:
147147

148-
UM = 2.42 * sqrt(sqrt(1.0 / MPE)) - 1.38
148+
UM = 0.25 * (sqrt(sqrt(255.0 / MPE)) - 1.0)
149149
UM = 0.87 * sqrt(PNSR) - 4.70
150-
UM = 1.02 * sqrt(sqrt(1.0 / MSEF)) - 1.49
150+
UM = 0.5 * (sqrt(sqrt(1.0 / MSEF)) - 1.0)
151151
UM = 1.0 * cor_sigma(cor_sigma(COR))
152152
UM = 1.51 * cor_sigma(cor_sigma(cor_sigma(SSIM)))
153153
UM = 1.59 * cor_sigma(cor_sigma(MS_SSIM))
154154
UM = 1.06 * cor_sigma(cor_sigma(VIFP1))
155-
UM = 0.0658 * SMALLFRY - 6.07
156-
UM = 1.40 * cor_sigma(SHARPENBAD)
157-
UM = 0.222 * sqrt(sqrt(1.0 / NHW))
155+
UM = 3.0 * (SMALLFRY * 0.01 - 0.8)
156+
UM = 1.0 * cor_sigma(sqrt(SHARPENBAD))
157+
UM = 0.333 * (sqrt(sqrt(1.0 / NHW)) - 1.0)
158158
cor_sigma(M) = 1.0 - sqrt(1.0 - M * M)
159159

160160
.SH COPYRIGHT

man/man1/jpeg-zfpoint.1

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.TH "jpeg-zfpoint" 1 2.6.2 "08 Feb 2023" "User manual"
1+
.TH "jpeg-zfpoint" 1 2.6.3 "09 Feb 2023" "User manual"
22

33
.SH NAME
44
jpeg-zfpoint

man/man1/webp-compress.1

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.TH "webp-compress" 1 2.6.2 "08 Feb 2023" "User manual"
1+
.TH "webp-compress" 1 2.6.3 "09 Feb 2023" "User manual"
22

33
.SH NAME
44
webp-compress
@@ -109,17 +109,17 @@ webp-compress --quiet image.jpg compressed.webp
109109
.PP
110110
Trends:
111111

112-
UM = 2.42 * sqrt(sqrt(1.0 / MPE)) - 1.38
112+
UM = 0.25 * (sqrt(sqrt(255.0 / MPE)) - 1.0)
113113
UM = 0.87 * sqrt(PNSR) - 4.70
114-
UM = 1.02 * sqrt(sqrt(1.0 / MSEF)) - 1.49
114+
UM = 0.5 * (sqrt(sqrt(1.0 / MSEF)) - 1.0)
115115
UM = 1.0 * cor_sigma(cor_sigma(COR))
116116
UM = 1.51 * cor_sigma(cor_sigma(cor_sigma(SSIM)))
117117
UM = 1.59 * cor_sigma(cor_sigma(MS_SSIM))
118118
UM = 1.06 * cor_sigma(cor_sigma(VIFP1))
119-
UM = 0.0658 * SMALLFRY - 6.07
120-
UM = 1.40 * cor_sigma(SHARPENBAD)
121-
UM = 0.222 * sqrt(sqrt(1.0 / NHW))
122-
cor_sigma(M) = 1.0 - sqrt(1.0 - M * M)
119+
UM = 3.0 * (SMALLFRY * 0.01 - 0.8)
120+
UM = 1.0 * cor_sigma(sqrt(SHARPENBAD))
121+
UM = 0.333 * (sqrt(sqrt(1.0 / NHW)) - 1.0)
122+
cor_sigma(M) = 1.0 - sqrt(1.0 - M * M)
123123

124124
.SH COPYRIGHT
125125
JPEG-Archive is copyright © 2015 Daniel G. Taylor

0 commit comments

Comments
 (0)