2008.04.08 18:43
Gadają ludzie, że jak się jotpega zapisuje w tę i wewtę, to on za każdym zapisaniem traci na jakości
Gadają ludzie, że jak się jotpega zapisuje w tę i wewtę, to on za każdym zapisaniem traci na jakości.
Podejrzewam, że ludzie powtarzają to jeden po drugim, a nikt nie sprawdzi. Zrobiłem więc test. Wziąłem
Lenę i napisałem skrypt, który konwertował ją na jotpega,
potem tego jotpega znowu przekonwertowuje na jotpega i tak dużo razy:
#!/usr/bin/perl
$filename_prev = 'lena.png';
for ($i=1; $i<100000; $i++) {
$filename_new = 'lena_' . sprintf('%06d', $i) . '.jpg';
system("nice -n 20 convert $filename_prev $filename_new\\n");
$filename_prev = $filename_new;
print "$i\\n";
}
Oto wyniki:
wzór |
po pierwszym skonwertowaniu na JPEG |
wzór |
po dziesięciu skonwertowaniach na JPEG |
wzór |
po stu skonwertowaniach na JPEG |
wzór |
po 2801 skonwertowaniach na JPEG |
Jak widać różnicy nie da się zauważyć gołym okiem. Po raz kolejny okazało się, że cwaniaki z internetu przepisują
jeden od drugiego, a żaden nie sprawdzi.
komentarze:
2008.04.08 21:05 fds
Ja tam gołym okiem różnicę widzę, delikatną, ale widzę. Po 2801 skonwertowaniach obrazek jest mniej wyrazisty, kolory i kontrast słabsze. Inna sprawa, że i tak nigdy tyle razy nie będę żadnego obrazka konwertował :D A nawet jak będę musiał, to strata na jakości jest na tyle mała, żeby nie trzeba było się przejmować jakoś szczególnie.
2008.04.08 21:29 Jurgi
A, że tak spytam - z jaką kompresją odbywało się owo konwertowanie?
2008.04.08 23:11 Caer
Wystarczy spojrzeć na usta. Przy pierwszym skonwertowaniu usta się bardziej błyszczą niż po 2801 razach.
2008.04.09 01:34 marcin
dorzucajac do twojego skryptu obliczanie md5 widac wyraznie, ze bardzo szybko obraz przestaje sie zmieniac, np. u mnie na jakims obrazku od 7 kroku
b1817f969ec7a12b39af071488620ef1 lena_000001.jpg
1
8d941b1af8f51c4b62bf28663d59a1bb lena_000002.jpg
2
203057e41652612c47ef91a514c38b3e lena_000003.jpg
3
ca457a3b54d0cfa81cc8406e8bb0921b lena_000004.jpg
4
1078b45bf88afcb8ef2a369d3cf69dc4 lena_000005.jpg
5
648fbddf885bead4df5684aacc0eb4e8 lena_000006.jpg
6
70ebce86d99cee5cb86a615f39d6b239 lena_000007.jpg
7
32e56271cfbf9b1418f224414a5682a9 lena_000008.jpg
8
44135ee8f9e0e34998c0dcdbdcd3ad8e lena_000009.jpg
9
44135ee8f9e0e34998c0dcdbdcd3ad8e lena_000010.jpg
10
44135ee8f9e0e34998c0dcdbdcd3ad8e lena_000011.jpg
11
44135ee8f9e0e34998c0dcdbdcd3ad8e lena_000012.jpg
2008.04.09 05:20 Piotrek
> A, że tak spytam - z jaką kompresją odbywało się owo konwertowanie?
Nie wiem - z domyślną, którą używa imagemagick, trzeba by sprawdzić w dokumentacji. Ale, o ile pamiętam, jest to jakaś dość zwykła wartość.
2008.04.09 05:22 Piotrek
> Wystarczy spojrzeć na usta. Przy pierwszym skonwertowaniu
> usta się bardziej błyszczą niż po 2801 razach.
A tak, rzeczywiście na bliku na ustach pewną różnicę widać. Ciekawie byłoby zrobić ślepą próbę, czy da się tę różnicę zauważyć, kiedy się nie wie, który obrazek ma być gorszy.
2008.04.09 05:26 Piotrek
> dorzucajac do twojego skryptu obliczanie md5 widac
> wyraznie, ze bardzo szybko obraz przestaje sie zmieniac,
> np. u mnie na jakims obrazku od 7 kroku
Też to sprawdzałem i u mnie zmieniał się cały czas:
028b47430926fb63e1b6bc7b6e9400a3 lena_000001.jpg
6253b28c19c1b0322fb1519023c1656e lena_000002.jpg
010004ed1a9ce006e5fab49ab6977f92 lena_000003.jpg
ea515d1f249ce4e064f4cfe565e889e8 lena_000004.jpg
2990bbe328b786271d18d085122c1a58 lena_000005.jpg
21654c146984bc072ae7f0340c247348 lena_000006.jpg
6fc8d1a7d5488917db77d0ca78bc0fe9 lena_000007.jpg
c39081bcb6ed744b78e8828088ea614a lena_000008.jpg
e48425e64af83c2febd4591f34a8365f lena_000009.jpg
c0aaa7c5b40165cad87f00c382ad5bae lena_000010.jpg
d7e977dde4e3649699da6c461b5ffe91 lena_000011.jpg
112475326a0923c51ffa83870eb9b38f lena_000012.jpg
9a466ea9918875fe1870b488e62d2efb lena_000013.jpg
83a6e2e7d091e612818233b2939498cc lena_000014.jpg
8e388e89d28d5f7664348a5999eabae7 lena_000015.jpg
06fa9d32c8b134da63fbd05e7bfa76be lena_000016.jpg
8d9bcecab6c5dab7201e5266314c071c lena_000017.jpg
f06df4561c56463f65292480686f8476 lena_000018.jpg
c4d9feba6d3c7cfb61b3aab767eda5d2 lena_000019.jpg
37d05931771ef94515960304f428a603 lena_000020.jpg
834da2efc15366a3e20dbc081aceb442 lena_000021.jpg
1b5911589b7ebfbed37a5bc1067ea95b lena_000022.jpg
8c650a48c486814086ce853cc4f189de lena_000023.jpg
6a070e891708f46b1ebf184e5d987b44 lena_000024.jpg
518a72687e9214fc40e787296d453ff9 lena_000025.jpg
a7c5cf4577d7fedf42f0be480d1ad871 lena_000026.jpg
f84dd882bed162a7cba671093ceff062 lena_000027.jpg
057e21805524217e12ddc20a99ccb6c3 lena_000028.jpg
db7b5df6bb7401acfc35da846116688c lena_000029.jpg
59595839c0a002aa75a85d23abfb5d42 lena_000030.jpg
62db4c9ce38d5ff51bdeb10a60753cd1 lena_000031.jpg
a84260f367fc01730dda984a80e1788b lena_000032.jpg
fe8078baca9076287e9b33450391f404 lena_000033.jpg
51eea51722e3fd042c2624c844bcfd27 lena_000034.jpg
824780c70a9b4222370a3a120d644879 lena_000035.jpg
fc49121ee4dee043e42eacfa549b72c3 lena_000036.jpg
49ea6c11d2944bda76d6840cc080d5a6 lena_000037.jpg
cc6b8b6f7473939a60727c1f5e737358 lena_000038.jpg
b386a978387d0428c581e958a786d398 lena_000039.jpg
9f0c89e5d290b844eabbf108eecc87ed lena_000040.jpg
6cb43d3fd37065cebd66b392f3deb568 lena_000041.jpg
026961521af971086114d339dbace9ec lena_000042.jpg
eb8498cca30057bac9826aef90783f80 lena_000043.jpg
2cf6100b034bd048eef09be15fd58cfd lena_000044.jpg
d398b403e78be82cb346b45b1e3b0a44 lena_000045.jpg
9bc1912b39457270901ebbeb25e8df67 lena_000046.jpg
fc55f53b80db59af8152a48f3cb49fec lena_000047.jpg
d3fcb12fbbc3d5a5fe4e64c683a4ca27 lena_000048.jpg
905c366461e546e64f2124abe7588403 lena_000049.jpg
282ac64eb25170035d84ca80008c51cf lena_000050.jpg
1d33bbb86b24d39ea7724f26debe8d4a lena_000051.jpg
08017be81760e82c11ce1477d5ad3581 lena_000052.jpg
1ca3dcb8281133cbf60fefd24e0def01 lena_000053.jpg
14e4053a12d86640eabe89ffbc7ae74d lena_000054.jpg
02bdd7067d65e186c490ac1b4c5df8fd lena_000055.jpg
12b8c580a8c685a9bb2919a7dfb415be lena_000056.jpg
e874799d7956a0d91e16c2ee58b1bac6 lena_000057.jpg
f5681127d604a2e9b747129568213b23 lena_000058.jpg
bd496abc8036e9bc2972ff6666d2e8e4 lena_000059.jpg
929aa3451b0b4023ac4e67a9c5cfb38f lena_000060.jpg
d3ace1b2828d2b84ee1affc606f8a810 lena_000061.jpg
2bff80d36ce54a32595b5c2049cfda9d lena_000062.jpg
e810124b5ad0b97812cde9908c88362b lena_000063.jpg
078c338c7ca8787ae943e752837a28b0 lena_000064.jpg
268435d69026de597157ac7a80fc67a6 lena_000065.jpg
3e9d9a48c6a482abe6e2ba217d59ff46 lena_000066.jpg
8fbf57d2f8df6fe174a090551612f60b lena_000067.jpg
f42fddccb2cf4c249455f70eb3e9164f lena_000068.jpg
9d32869b267e62f1cdb42ce59ec4f306 lena_000069.jpg
7b4d267ac070cc9f290af814956fc734 lena_000070.jpg
22a5c1ed2fde9c91d851673e5217ce5b lena_000071.jpg
d4f070f98a75146bf58ea32cf5fa05dd lena_000072.jpg
9ad757adee95ec3a73071718f1c7a8e8 lena_000073.jpg
1535a74dd510d0de1615be8582954ece lena_000074.jpg
e5210649e32861c2a0d627ed3eb883b2 lena_000075.jpg
e9e61208ae7780ea400f6152663063be lena_000076.jpg
006a891e898dc98658242c6d8d1c9f82 lena_000077.jpg
f903cf22abcb160670c2730a0774d98d lena_000078.jpg
09e58c843ad6323f39438701827ca0cc lena_000079.jpg
80837764d2039f287e592d1e7e6ae077 lena_000080.jpg
Co też jest ciekawe. Może to zależy od użytego oprogramowania? U mnie:
$ convert --version
Version: ImageMagick 6.2.4 09/30/07 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2005 ImageMagick Studio LLC
2008.04.10 00:53 marcin
Faktycznie, to może być różnica wersji, sprawdziłem na twoim oryginalnym png i też uzyskuję powtórzenia
0051b5916dca7916610ae80a1a7d49fc lena_000001.jpg
23a67ba15be54cb828b184bdbda32c3d lena_000002.jpg
5d387475c3ac0433fef6a7865a5c95e2 lena_000003.jpg
3cb4b57d2575e0639f9bc11affa29665 lena_000004.jpg
5320da22d2318fface582b54ca76ab76 lena_000005.jpg
e6f9489aa28a3d6c34c873e73f65feb7 lena_000006.jpg
20323bb85abead10bc6b02414fa89d5a lena_000007.jpg
63db7decce7dba9ef2eb720353457a73 lena_000008.jpg
be7b6ac28cea76aee1b31db5e0e78b7e lena_000009.jpg
36af6465b15114e6b2006bad62b95fd4 lena_000010.jpg
b385bf445b16e94f230c6ceb08902620 lena_000011.jpg
b385bf445b16e94f230c6ceb08902620 lena_000012.jpg
b385bf445b16e94f230c6ceb08902620 lena_000013.jpg
Moja wersja to
Version: ImageMagick 6.3.9 03/18/08 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2008 ImageMagick Studio LLC
Mozliwe, że twoja wersja modyfikuje jakiś wpis nagłówka (typu data utworzenia), nie znam szczegółów nagłowka jpg, możesz sprawdzić jakimś diffem czy róznice są w całej treści czy tylko w nagłówkach...
2008.04.15 19:45 obserwator
sprobojcie to samo zrobic z tekstem....
2008.05.10 12:33 Jurgi
A jeszcze jedna uwaga - próba była robiona cały czas tym samym programem, czyli tą samą implementacją algorytmu. Trzeba by jeszcze przetestować, jak zachowywałby się obrazek pakowany przy pomocy różnych programów - różnych implementacji algorytmu (opartych na odmiennych bibliotekach), zakładam, że w obrazku spakowanym inną biblioteką byłyby rónice (tak samo, jak różne implementacje ZIP osiągają różne rezultaty, mimo kompatybilności). Różnice mogłyby się kumulować.
2008.05.11 14:17 Piotrek
Yo estudio español y por eso voy a traducir mensajes de mi blog en Español. Este mensaje significa:
La gente dicen que cuando abres el jpeg y despues lo guardas, y de nuevo lo abres, y de nuevo lo guardas... - cada vez el jpeg pierde un poco de cualidad. Wikipedia dice:
http://es.wikipedia.org/wiki/JPEG
"Esta pérdida de calidad se acumula. Esto significa que si comprime una imagen y la descomprime obtendrá una calidad de imagen, pero si vuelve a comprimirla y descomprimirla otra vez obtendrá una pérdida mayor. Cada vez que comprima y descomprima la imagen, esta perderá algo de calidad."
Sospecho que ellos que dicen esto no testó si esto es verdad. Entonces yo testé esto. Escribía guión que convierte Lenna (http://es.wikipedia.org/wiki/Lenna) a jpeg, despues abre lo y guarda (como JPEG), y de nuevo abre y guarda...
#!/usr/bin/perl
$filename_prev = 'lena.png';
for ($i=1; $i<100000; $i++) {
$filename_new = 'lena_' . sprintf('%06d', $i) . '.jpg';
system("nice -n 20 convert $filename_prev $filename_new\n");
$filename_prev = $filename_new;
print "$i\n";
}
Aqui hay resultados de este guión.
powrót na stronę główną
RSS