Laden...

Schneller als Array?

Erstellt von digi333 vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.893 Views
D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 16 Jahren
Schneller als Array?

Ich möchte gerne die DCT-Frequenzen eines Video-Frames zwischenspeichern. Wenn ich ein Int-Array von 720x576 nehme ist die Anwendung super langsam. Kann ich Marshall oder Pointer missbrauchen um so etwas zu beschleunigen? Bei RGB-Werten lief es sehr gut. DCT-Koeffizienten haben aber einen Wertebereich von -2048 bis 2048. Vielleicht habt ihr aber auch einen besseren Rat.

Gruss
Digi333

309 Beiträge seit 2007
vor 16 Jahren

Was ist mit Int16[,] ???

**"Zufall ist das Pseudonym Gottes, wenn er nicht selbst unterschreiben will.” **
Anatole France

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 16 Jahren

Schlecht... Arrays sind generell ziemlich langsam.

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 16 Jahren

Gibt es eine Möglichkeit mit Pointer unter C# zu arbeiten???

S
8.746 Beiträge seit 2005
vor 16 Jahren

Original von digi333
Gibt es eine Möglichkeit mit Pointer unter C# zu arbeiten???

Ja, guckst du in der Hilfe unter "unsafe". Aber schonmal deinen Code ge-profiled?

A
138 Beiträge seit 2007
vor 16 Jahren

Hallo,

Original von digi333
Schlecht... Arrays sind generell ziemlich langsam.

hmm, dass kann ich mir gar nicht so recht vorstellen.

In einer Anwendungen verwende ich Arrays mit über 100 Millionen Elementen, und diese läuft dennoch sehr schnell.

Ich schätze mal eher dass das Problem wo anders liegt und nicht der Zugriff auf das Array der bremsende Faktor hier ist.

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 16 Jahren

Keine Ahnung warum Arrays bei mir immer so langsam sind. Mit ArrayList geht alles wesentlich schneller. Hatte vorher die einzelnen DCT-Koeffizienten jedes Macroblockes in ein "großes" Array schreiben lassen. Jetzt speicher ich jeden Macroblock in eine Liste. Geht wesentlich besser.

Frag mich warum...

L
64 Beiträge seit 2006
vor 16 Jahren

nimm doch mal was aus generics list<int> oder sowas

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo digi333,

Gibt es eine Möglichkeit mit Pointer unter C# zu arbeiten???

wie oft, willst du Fragen in der Art eigentlich noch stellen? Du hast dich mit dem Thema doch nun schon ausgiebig beschäftigt. Gerade in dem letzten Thread ist wie aufgefallen, wie viel man dir vorkauen muss. Es wäre an der Zeit, mehr Eigeninitiative zu entwickeln und dich selber durchzubeißen.

Außerdem solltest du die Suche mehr benutzen. So wie es klingt willst du sowas in der Art: Byte-Array: Dimension ändern

Mit ArrayList geht alles wesentlich schneller.

Das halte ich für unwahrscheinlich, da ArrayList ist im Gegenteil in der Regel wesentlich langsamer ist.

herbivore