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.




ksywa:

tu wpisz cyfrę cztery: (to takie zabezpieczenie antyspamowe)

komentarze wulgarne albo co mi się nie spodobają będę kasował


powrot na strone glowna

RSS