Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.iso-c++ > #2029
| From | Stefan Reuther <stefan.news@arcor.de> |
|---|---|
| Newsgroups | de.comp.lang.iso-c++ |
| Subject | Re: Floyd-Steinberg - geht das nicht noch schneller? |
| Date | 2017-02-22 19:07 +0100 |
| Organization | A noiseless patient Spider |
| Message-ID | <o8kni7.5i4.1@stefan.msgid.phost.de> (permalink) |
| References | <o8fcfi$am$1@news.albasani.net> <o8i24h.4ug.1@stefan.msgid.phost.de> <o8kapt$3iv$1@news.albasani.net> |
Am 22.02.2017 um 16:29 schrieb Jörg "Yadgar" Bleimann: >>> Jetzt habe ich also (danke, Stefan Reuther!) meinen >>> Floyd-Steinberg-Filter einwandfrei implementiert und lasse ihn gerade >>> per bash-Skript eine Sequenz von über 7000 Bildern bearbeiten... aber >>> irgendwie kommt mir das alles ziemlich behäbig vor, was die >>> Rechengeschwindigkeit angeht. Für 2000 Bilder (unkomprimierte TGAs, 533 >>> x 400 Pixel) 69 Minuten, und das auf einem AMD-Hexacore mit 6 x 3,852 >>> GHz... ließe sich da nicht noch einiges optimieren? >> >> Da kann man Bücher drüber schreiben. Die offensichtliche Frage natürlich >> zuerst: Compiler-Optimierung schon eingeschaltet? > > So weit ich weiß, nicht... ich kompliere immer g++ quelle.cc -o kompilat Dann pack da noch ein -O oder -O2 dazu und staune. >> Echte[tm] Bildverarbeitungsalgorithmen arbeiten auf nacktem Speicher, >> also bestenfalls ein Vektor, auf dessen Inhalt dann am Ende per >> Pointer+Länge zugegriffen wird (die Größe ändert sich ja nicht). > > Nein, Pixel bestehen an sich aus jeweils drei unsigned char-Werten... > die müssen zum Rechnen natürlich in längere Typen umgewandelt werden! Dann könntest du schon einen Gewinn daraus ziehen, dass du diese Klasse von "drei unsigned char" auf "ein uint32_t" umbaust. "get_red" ist dann "return (pixel >> 16)", "set_red" ist "pixel = (pixel & 0x00FFFF) | (value << 16)", und so weiter. >> Pixel >> werden dann nach Möglichkeit nicht in einer Klasse dargestellt, sondern >> in einem Datentyp, der es erlaubt, die SIMD-Instruktionen > > SIMD? Kann das mein Hexacore? Das kann sogar ein 20 Jahre alter Pentium MMX. SIMD ist der Oberbegriff für MMX, SSE, AltiVec, NEON, und wie das alles heißt. Voraussetzung dafür ist aber meistens speziell geschriebener Code und die Verwendung spezieller Datentypen, und dann kann der Prozessor halt in einem Zyklus 8 Integer auf einmal addieren. Allerdings: wenn dein "Hauptverkaufsargument" nicht hochoptimierte Grafikalgorithmen sind, ist das alles nicht nötig. Meine Grafikspielereien arbeiten auch nur mit ganz normalem C++ (also ohne SIMD, ohne Assembler) und waren schon auf 200 MHz schnell genug, um damit eine passable GUI zu bauen. Stefan
Back to de.comp.lang.iso-c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Floyd-Steinberg - geht das nicht noch schneller? Jörg "Yadgar" Bleimann <yazdegird@gmx.de> - 2017-02-20 19:27 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? ram@zedat.fu-berlin.de (Stefan Ram) - 2017-02-21 16:23 +0000
Re: Floyd-Steinberg - geht das nicht noch schneller? Stefan Reuther <stefan.news@arcor.de> - 2017-02-21 18:49 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Markus Schaaf <mschaaf@elaboris.de> - 2017-02-21 21:47 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Jörg "Yadgar" Bleimann <yazdegird@gmx.de> - 2017-02-22 16:29 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Stefan Reuther <stefan.news@arcor.de> - 2017-02-22 19:07 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? ram@zedat.fu-berlin.de (Stefan Ram) - 2017-02-23 01:14 +0000
Re: Floyd-Steinberg - geht das nicht noch schneller? Stefan Reuther <stefan.news@arcor.de> - 2017-02-23 18:58 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Jörg "Yadgar" Bleimann <yazdegird@gmx.de> - 2017-03-22 02:23 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Stefan Reuther <stefan.news@arcor.de> - 2017-03-22 19:43 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Bonita Montero <Bonita.Montero@gmail.com> - 2017-02-23 18:27 +0100
Re: Floyd-Steinberg - geht das nicht noch schneller? Stefan Reuther <stefan.news@arcor.de> - 2017-02-24 18:34 +0100
csiph-web