Schrift
[thread]8787[/thread]

Compression von JPEG



<< |< 1 2 >| >> 20 Einträge, 2 Seiten
Froschpopo
 2007-02-25 05:51
#74550 #74550
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ich möchte gerne die Qualität eines Bildes ermitteln.

Das mach ich so:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
use strict;
use Image::Info;

my $bild = "img.jpg";

my $info = image_info($bild);

if (my $error = $info->{error}) {
die "Kann Bild nicht auslesen: $error\n";
}

print "Kompressionsrate: $info->{Compression}\n";


leider bekomme ich da nie ein Ergebnis!
An meinem Code kann das aber nicht liegen, denn Infos wie file_ext, color_type oder gar Comment kann ich einwandfrei abrufen.
Wie aber kann ich die Qualität eines Bildes erfragen?
Ist Compression überhaupt richtig für diesen Fall?
esskar
 2007-02-25 11:35
#74551 #74551
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
mach doch mal ein dump von $info, und schau, was drin steht!
jan
 2007-02-25 13:11
#74552 #74552
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
http://search.cpan.org/~tels/Image-Info-1.23/lib/I...

Quote
Compression
This tells you which compression algorithm is used


wenn ich mich nicht irre, wird die quality (kompressionsrate) auch nicht als wert im bild gespeichert - macht ja auch keinen sinn, das original ist weg, sobald es mit einer niedrigeren qualität gespeichert wird. die kannst du natürlich wieder schlechter speichern als vorher, irgendeinen wert da anzugeben hat also keinerlei aussage. ich kann ein bild mit quality 30 speichern, das ist dann schon stark komprimiert. wenn ich dieses gespeicherte bild nun nehme und es mit quality 100 speichere, kriege ich beinahe das selbe ergebnis aber nun würde es heißen "qualität ist 100%". ist's aber nicht, im vergleich zum original ist es immer noch ~30%. du könntest wohl höchstens in der abhängigkeit vom kompressionsalgo versuchen, festzustellen, wie hart er zugeschlagen hat. kA, ob das einfach zu machen ist oder ob das schon jemand freundlicherweise gemacht hat.
GwenDragon
 2007-02-25 18:12
#74553 #74553
User since
2005-01-17
14830 Artikel
Admin1
[Homepage]
user image
Nirgendwo steht die Kompressionsrate beim JPEG. Wozu?
Die Qualität des Bilde ist nur sichtbar, nicht messbar oder als Dateiinfo stehend.
Denn was soll z. B. 30% bedeuten? Dateigröße? Anzahl der JPEG-Fragmente? Farbabweichung?
esskar
 2007-02-25 18:17
#74554 #74554
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
jpeg kompression unterstützt kompressionen von 1 bis 100

nimm mal ein bild komprimier es zu 100%
wenn du es nochmal komprimierst, sollte es aber zu keinem verlust mehr kommen
Froschpopo
 2007-02-25 21:48
#74555 #74555
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Achso, ich dachte, dass das Bild sowieso gemessen wird und das Ergebnis dann in Compression zu finden ist.
Ich hab ne Community wo am Tag bis zu 300 Bilder hochgeladen werden. Ich will mir wenigstens die hälfte der Arbeit erleichtern. Bisher prüfe ich auf Abmasse und auf Dateigröße.
z.b. kann von einer minderguten Qualität ausgegangen werden, wenn das Bild 250x250 Pixel und nur 8kb groß ist.
Das kann man sicherlich auch etwas professioneller lösen. Und wenn man dann erst die Auflösung ermitteln muss weil sie im jpeg header nicht zu finden ist, ist doch egal. dann will ich sie halt ermitteln :) Solang die Bilder nicht im Sekundentakt hochgeladen werden, ist der Aufwand auch nicht so sehr relevant.
Und wenn ich dann irgendwann pro sekunde mal ein neues Bild habe, dann kann ich eh einen Perl Programmierer festanstellen :D
Aber halten wir uns lieber nicht mit dem Konjunktiv auf.
Es gibt doch bestimmt einen Trick, wie man mit den Relationen zwischen Pixeln rechnen kann. z.B. ist doch das häufigste Phänomen einer JPEG-Komprimierung die, dass im Bild winzige je nach Komprimierung wachsende Quadrate auftauchen in deren Innern die Pixel alle eine gemeinsamkeit teilen.
Aber wäre ja doof wenn es dafür schon irgendeine Lösung gibt. Dann ärgere ich mich hinterher wieder warum ich nicht einfach das Modul genommen hab welches ich ja eh schon verwende.
GwenDragon
 2007-02-26 12:53
#74556 #74556
User since
2005-01-17
14830 Artikel
Admin1
[Homepage]
user image
Oha, du willst eine Analyse des Bildes machen, basierend auf dem JPEG-Algorithmus.
Aufwändig.
[google=JPEG Analyze compression]JPEG Analyze compression[/google]

Bildverarbeitung und -analyse. Sowas ist rechenintesiv, denke ich.\n\n

<!--EDIT|GwenDragon|1172487633-->
Froschpopo
 2007-02-27 05:55
#74557 #74557
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ah, hat ja doch noch jemand geantwortet ;) Ich dachte schon, da kommt nichtsmehr weil das so ein seltenes problem ist...
Aber jetzt zum Thema:
Es müsste doch theoretisch genügen, die ersten paar Bytes zu analysieren. Denn entweder ist ein Bild hoch komprimiert, oder eben wenig. Aber in beiden Fällen sollten doch schon die ersten paar bytes auskunft darüber geben. Wenn die ersten bytes total spießig sind wird es sich kaum im weiteren Verlauf ändern. Wäre es ein gutes Bild, wären die ersten bytes auch entsprechend gut komprimiert.
Aber wenn ich mir den Wikipedia-Eintrag zum JPEG-Algo anschaue wird mir schon recht schnell klar, dass jemand wie ich das nicht per Hand machen wird können.
GwenDragon
 2007-02-27 12:40
#74558 #74558
User since
2005-01-17
14830 Artikel
Admin1
[Homepage]
user image
[quote=Froschpopo,27.02.2007, 04:55]Es müsste doch theoretisch genügen, die ersten paar Bytes zu analysieren. Denn entweder ist ein Bild hoch komprimiert, oder eben wenig. Aber in beiden Fällen sollten doch schon die ersten paar bytes auskunft darüber geben. Wenn die ersten bytes total spießig sind wird es sich kaum im weiteren Verlauf ändern. Wäre es ein gutes Bild, wären die ersten bytes auch entsprechend gut komprimiert.

Aber wenn ich mir den Wikipedia-Eintrag zum JPEG-Algo anschaue wird mir schon recht schnell klar, dass jemand wie ich das nicht per Hand machen wird können.[/quote]
Es müssen ja eben immer nicht die ersten Bytes sein, die hochkomprimiert sind. Kommt doch auf die Art die Bildinhalts an, wo die Kompression wie zuschlägt.

Den Alogo wirst du kaum selbst nachprogrammieren können und wenn der schnell sein soll, dann muss er schon kompiliert sein.
Froschpopo
 2007-02-28 10:37
#74559 #74559
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ok, dann hacken wir das thema jetzt ab.
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2007-02-25 05:51.