On Tue, 2003-07-29 at 14:01, Serghei Amelian wrote:
> Stie cineva unde pot gasi documentatie referitoare la scalarea pixmap-urilor? 
> Ma intereseaza algoritmii de interpolare a pixelilor, chestii de astea.
> Sau poate sa ma ajute cineva sa creez un algoritm de scalare mai rapid pentru 
> QFaxReader? Smooth-scaling-ul din QT merge super greu, pentru ca e generic, 
> pentru imagini cu orice adancime de culoare. Pe mine m-ar interesa un 
> algoritm care sa foloseasca la intrare imagini-fax (B/W, un singur bit/pixel) 
> si sa scoata pixmap in trepte de gri pe 8 biti. Sunt convins ar fi muult mai 
> rapid, deoarece cantitatea de date procesata ar fi mai mica. Oare daca 
> sectiunile critice ar fi scrise in assembler folosind toate facilitatile 
> procesoarelor moderne (ma refer la IA32, adica MMX, 3DNow!) nu ar fi si mai 
> rapid?

Ceea ce vrei tu se poate face prin filtrarea imaginilor folosind mai
multe tipuri de filtre ca: Box, Bessel, Blackman, Cubic, Gaussian,
Hanning, Hamming, Hermite, Sinc, Lanczos, Mitchell, Quadratic.

Implementari la filtrele astea le gasesti in gimp, ImageMagick.

Din cate stiu eu nu exista o implementare directa adica resize+conversie
de la 1bpp la 8bpp, dar e usor de modificat implementarile din gimp.

Pentru optimizare la MMX/3DNow!/SSE/SSE2, pornesti de la sursa assembler
generata de compilatorul C pe care incepi sa o optimizezi folosind
instructiuni si registrii speciali. S-ar putea ca gcc-ul sa faca direct
optimizari pt MMX/3DNow!/SSE, dar daca faci in assembler rezultatele pot
fi mai bune. O alta idee de marire a performantelor, este lucrul cu
bucati de imagine de pana 256K (marimea cache a procesorului).

Regards,
Mihnea


Raspunde prin e-mail lui