Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Jpeg Image anzeigen dauert ewig (D10.1) (https://www.delphipraxis.net/200243-jpeg-image-anzeigen-dauert-ewig-d10-1-a.html)

Redeemer 3. Apr 2019 17:57

AW: Jpeg Image anzeigen dauert ewig (D10.1)
 
Zitat:

Zitat von hstreicher (Beitrag 1429422)
nur mal so aus Neugier, wie ist denn der Farbraum des JPEGs ?

JPEG kennt ein einziges Modell, das heißt YCbCr.

p80286 3. Apr 2019 18:05

AW: Jpeg Image anzeigen dauert ewig (D10.1)
 
Aus Interesse gefragt
ist #15 keine Möglichkeit das Problem zu lösen?
(ich hab it JPEG/Bitmaps etc. ganz wenig am Hut!)

Gruß
K-H

hstreicher 3. Apr 2019 19:30

AW: Jpeg Image anzeigen dauert ewig (D10.1)
 
Zitat:

Zitat von Redeemer (Beitrag 1429457)
Zitat:

Zitat von hstreicher (Beitrag 1429422)
nur mal so aus Neugier, wie ist denn der Farbraum des JPEGs ?

JPEG kennt ein einziges Modell, das heißt YCbCr.

Gut dann nennen wir es eben Farbprofile oder in Photoshop Express in den Speichern Einstellungen auch nur einfach Farbe
da finde ich JPEGs mit sRGB , eciRGBv2 AdobeRGB und weitere auf meinem PC

Graf Gustav 3. Apr 2019 22:13

AW: Jpeg Image anzeigen dauert ewig (D10.1)
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, vielen Dank an alle Beiträge - hat in der Summe geholfen.
Ich kenne zwar nicht die Ursache, aber ich habe eine Lösung:
dank der Recherche von Michael II ist es der Synopse Fast Jpeg Decoder :}}

Gelernt habe ich folgendes zusätzlich:
- Archive zum Upload dürfen hier ziemlich groß sein
- Auch zu Zeiten von D10 brauchen wir noch Torry's Pages etc.

Der gesamte Source Code steht eigentlich in meinem ersten Post,
aber ich habe etwas nachgearbeitet und eine kleine Anwendung daraus gemacht,
die die wesentlichen Daten für ein jpeg anzeigt.
In der Anlage sind 3 Varianten (D10 - langsam, D10 - schnell dank Synopse, D5 - schnell)
und die Sourcen und auch das ursprüngliche Bild.
Die Vermutungen zur HW werden eigentlich dadurch widerlegt, dass die D5-Variante
auf beiden System schnell ist.

Vielen Dank nochmal Euch allen

KarstenK 4. Apr 2019 12:33

AW: Jpeg Image anzeigen dauert ewig (D10.1)
 
Hallo,

In deiner Zeitmessung für Delphi 5 = 0ms ist aber noch nicht die Anzeige des Bildes drin, bei den anderen wohl schon.

Bei Delphi 2009 bis Anzeige (application.processmessage vor der Zeitnahme 2) ist der Faktor 4 zwischen orginal (600ms vs 160ms) Delphi und jpegdec.

Graf Gustav 4. Apr 2019 14:15

AW: Jpeg Image anzeigen dauert ewig (D10.1)
 
Zitat:

Zitat von KarstenK (Beitrag 1429514)
Hallo,

In deiner Zeitmessung für Delphi 5 = 0ms ist aber noch nicht die Anzeige des Bildes drin, bei den anderen wohl schon.

Tja, was soll ich sagen - mir kommen 0ms auch eher wenig vor,
aber schau Dir meinen Sourcecode an, er ist für D5 und D10 identisch....

Michael II 4. Apr 2019 21:48

AW: Jpeg Image anzeigen dauert ewig (D10.1)
 
Nebenschauplatz: Der gemessene Nuller kommt eventuell zustande weil die Zeit mit GetTickCount gemessen wird.
GetTickCount Remarks
The resolution of the GetTickCount function is limited to the resolution of the system timer, which is typically in the range of 10 milliseconds to 16 milliseconds.

Und zum Thema: Es wäre schön, wenn Frau und Mann sich darauf verlassen könnten, dass Standardfunktionen wie "jpg laden" nicht von D zu D langsamer werden. Sowas sollte bei der Qualitätskontrolle hängen bleiben.

Graf Gustav 4. Apr 2019 22:00

AW: Jpeg Image anzeigen dauert ewig (D10.1)
 
Zitat:

Zitat von Michael II (Beitrag 1429554)
Nebenschauplatz: Der gemessene Nuller kommt eventuell zustande weil die Zeit mit GetTickCount gemessen wird.
GetTickCount Remarks
The resolution of the GetTickCount function is limited to the resolution of the system timer, which is typically in the range of 10 milliseconds to 16 milliseconds.

Und zum Thema: Es wäre schön, wenn Frau und Mann sich darauf verlassen könnten, dass Standardfunktionen wie "jpg laden" nicht von D zu D langsamer werden. Sowas sollte bei der Qualitätskontrolle hängen bleiben.

ah, das erklärt, warum ich nie einen Wert < 16 gesehen habe, danke.
Aber 15ms für D5 ist doch auch noch gut ;}
Und dem Statement zur QS kann ich mich nur vollinhaltlich (und kopfschüttelnd) anschließen...

Michael II 4. Apr 2019 23:50

AW: Jpeg Image anzeigen dauert ewig (D10.1)
 
Und es gibt wahrscheinlich noch einen weiteren Grund für die massiven Unterschiede zwischen D5 und D10.

Das Laden und Anzeigen des Bildes läuft bei D5 und D10 unterschiedlich ab. (Ich nehme meine Qualitätsbemerkung zurück.)

Wenn du deinen Code

Delphi-Quellcode:
// Starte die Uhr
  JPegI := TJpegImage.Create;
  JPegI.LoadFromFile( filename );
  Image1.Picture.Assign(JPegI);
// Stoppe die Uhr
- mit D5 kompilierst und laufen lässt, dann passiert dies:
Der Inhalt der Datei filename wird in einen Stream geladen, du stoppst die Zeit und nun erst wird das Bild aufgebaut.

- mit D10 kompilierst und laufen lässt, dann passiert dies:
Der Inhalt der Datei filename wird in einen Stream geladen, das Bild wird aufgebaut, du stoppst die Zeit.

Da das Laden in den Stream nur sehr wenig Zeit benötigt, misst du im D5 Fall sehr kleine Zeiten.

Ich weiss, man sollte Application.ProcessMessages; nicht nutzen und ich tu's auch nicht in Programmen, aber hier dürfen wir vielleicht mal eine Ausnahme machen ;-).

Ergänze den Code wie folgt

Delphi-Quellcode:
// Starte die Uhr
  JPegI := TJpegImage.Create;
  JPegI.LoadFromFile( filename );
  Image1.Picture.Assign(JPegI);
  Application.ProcessMessages;
// Stoppe die Uhr
und miss die Zeit mit D5 und D10. Bei D5 wirst du nun weit mehr messen als vorher, bei D10 bleibt der Wert ungefähr gleich. Grund: Auch im mit D5 kompilierten Programm misst du nun das Laden in den Stream und den Aufbau des Bildes.

[Natürlich könntest du noch genauer messen...]

Wenn ich deine Beispielprogramme starte ist gefühlt Synopses Lösung am schnellsten, dann D5 dann D10.

Und falls dein mit D5 kompilierter Code doch schneller laden sollte als Synopses Code, dann könntest du eventuell mit D5 eine DLL erstellen (da der Quellcode der jpeg unit wahrscheinlich fehlt) und in D10 nutzen (?).

Rollo62 5. Apr 2019 07:50

AW: Jpeg Image anzeigen dauert ewig (D10.1)
 
Vielleicht hift der QueryPerformanceCounter weiter ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz