Assembler ist auch nur dann schneller wenn man genau weiß was man tut. An den passenden Stellen eingesetzt lohnt es zwar richtig aber wunder sind trotzdem nicht drin.
Gewisse Dinge brauchen einfach ihre Zeit.
Ein paar Ideen keine Ahnung ob sie wirklich etwas bringen.
1. Du solltest mal schauen ob die GraphicEx evtl die Möglichkeit hat bei der du die Filtermethode einstellen kannst. Es wird häufig so etwas wie Lanczos oder Bicubic benutzt. Die brauchen länger als Linear oder ein Boxfilter, weil sie auch komplexer sind.
2. Für StretchBlt gibt es die Möglichkeit einen Modus einzustellen. Kann mir leider nie merken wie der heißt. Musste mal suchen. Damit kannst du unter XP ein Bild automatisch Glätten lassen wärend es dargestellt wird. Ich meine der hatte eine ganz nette Geschwindigkeit.
3. Zur Not kann man sich einen Boxfilter auch selber schreiben. Der muss ja nicht perfekt sein. Sollte aber trotzdem schneller als 20 Sekunden sein. Bzw da dein Bild wahrscheinlich auch aus mehr als 50% Weiß besteht könnte man solche Stellen auch recht schnell überspringen. Denn so etwas bleibt weiß. Ist aber eine sehr sehr spezielle Optimierung.