AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 03:02

Parameter dieser Suchanfrage:

Suche in Thema: Optimierung von Pixel
Suche alle Beiträge, die von "Medium" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 21 von insges. 21 Treffern
Suche benötigte 0.001s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 12. Apr 2016
    Auch das nicht. Ein Callback wäre ideal, und Bass scheint sowas anzubieten. Aber das sind i-Tüpfelchen jetzt.
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 12. Apr 2016
    Profis würden für sowas nie einen Timer nehmen (und gucken da nichtmal hin) :P


    Aber läuft ja prima jetzt!
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 12. Apr 2016
    Ich habe jetzt mal ein knapp 5min langes Lied genommen, und komme bei pf32Bit auf 11s Gesamt und 4,5s davon zum Zeichnen. Irgendwie ist bei dir etwas anders.

    Was mir auch auffiel: Bei einem 5min Lied wird das Bitmap schon über üppige 25000 Pixel breit, was von der Anzahl her 4 Megapixel sind. Bei 16min Liedern werden das schon gut 12MP, und das Bitmap >75000 Pixel breit. Da ist irgendwann bald...
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 11. Apr 2016
    Achsooo! Hab das so verstanden, als würde auch mit dem anderen Pointer-Typ nur graue Suppe raus kommen :) Dann alles gut, bitte weiter gehen. Hier gibt es nichts zu sehen. :stupid:
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 11. Apr 2016
    Ich glaube dann brauchen wir noch Mal ein Stückchen Code.
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 11. Apr 2016
    Du musst auch dann natürlich deine Pointertypen anpassen ;) PRGBQuad statt PRGBTriple in diesem Fall.
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 11. Apr 2016
    Das Puffern der Scanlines kommt da her, dass Emil fortschreitend vertikale Linien zeichnet, und das von mir schon weiter vorne im Thread vorgeschlagene für jeden Pixel immer wieder neu Abholen der Scanline unerwartet große Performance-Einbußen brachte. Im 8-Bit Thread wurde auch meine Idee von weiter vorne hier, auf einem gerdrehten Offscreen-Bitmap zu malen, und dann mit PlgBlt gedreht auf das...
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 11. Apr 2016
    Kenn ich was von *schäm*


    Hab jetzt leider einen Aussentermin, aber heute Nachmittag mal schauen wie es hier im Büro aussieht. Jetzt weiss ich ja wie ich an einen gültigen Kanal komme :)


    Ich finde an dem so praktisch, dass es damit tatsächlich aussagekräftige Ergebnisse gibt, selbst wenn man nur eine kleine Zeile misst. Ohne das wäre das Aufsummieren der Zeichenaufrufe kaum drin. Hab mir...
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 10. Apr 2016
    Ich habe das Ganze mal unter Lazarus ans Laufen bekommen, und auch gefunden warum ich keinen gültigen Channel bekam: Du übergibst das Flag BASS_UNICODE ohne Wenn und Aber, aber ich habe nur Delphi 2007 im Büro. Daher war der Dateiname bei mir nicht in Unicode. Da wäre ggf. eine Fallunterscheidung nicht übel, die du zum Abspielen weiter unten sogar schon drin hast.

    Die Ergebnisse sind zwischen...
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 9. Apr 2016
    Exakt das, ja.

    Ist ja erstmal nicht schlimm, das ist ja gewollt, wenn ich das richtig verstanden habe.

    Und das ist wichtig! Was du bisher hattest, war einer der klassischsten Bugs überhaupt, und ganz klar ein echter Fehler im Code. Solche Dinger sind keine Kleinigkeiten, weil die potenziellen Effekte von gar nichts bis Bluescreen reichen, und sowohl zeitlich als auch örtlich (lies:...
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 9. Apr 2016
    Nochmal: Nur weil du genau passend aus dem Buffer liest, heisst das nicht, dass die DLL auch passend rein schreibt. Stell dir die Funktion in der DLL grob so vor:

    function GetData(aChannel, aMaxData, aPosition: Integer): Single;
    begin
    ...
    end;

    procedure BASS_ChannelGetData(aChannel: Integer; buf: Pointer, aDataType: TBassDataType);
    var
    i: Integer;
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 9. Apr 2016
    Dann ist dein Buffer größer als das Bitmap hoch ist. (Oder du übergibst aus irgend welchen anderen Gründen eine Y-Koordinate ausserhalb des Bitmaps. Ohne konkreten Code schwer zu sagen.) Was diese Meldung sagt: "Du forderst eine Zeile im Bitmap an, die das Bitmap gar nicht besitzt." Also entweder eine Zeile < 0 oder >= Bitmap.Height.

    Letztlich ist aber die Variante, die die Scanlines puffert,...
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 8. Apr 2016
    Implizit schon, da ab dem Moment klar ist, dass keine (tatsächlichen) Längeninformationen übergeben werden, ab dem ein typloser Pointer übergeben wird. Aber das muss man natürlich erst mal wissen.


    Wie gesagt: Glück! Solche Dinge sind nicht selten die Ursache für richtig fiese, extrem schwer zu findende Fehler, weil sie gerne Symptome an Stellen verursachen, die augenscheinlich so überhaupt...
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 8. Apr 2016
    Du ja, aber die Bass.dll der du genau diesen Buffer zum rein Schreiben gibst schert sich nicht darum. Mit dem Parameter "BASS_DATA_FFT512" forderst du explizit 256 (danke für die Klärung) Werte (Floats) an, und so viele schreibt die DLL dann auch. Völlig egal auf welche Länge das übergebene Array gesetzt wurde. (Genau genommen weiss die DLL nichtmals, dass es ein Array ist. Nur, dass sie ab...
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 8. Apr 2016
    Schreibt das nicht sogar 512 Bytes? Die letzten 256 sind zwar eine Spiegelung der ersten, aber eigentlich gehören sie dazu. Ich weiss nicht genau wie die Bass.dll das handhabt. Aber 160 Bytes sind definitv zu wenig, egal wie.
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 8. Apr 2016
    Du übergibst deinen zu kurzen Buffer mit BASS_ChannelGetData(Channel, Pointer(Buffer), BASS_DATA_FFT512); in die Obhut der Bass.dll, und sagst ihr: "Hallo Bass.dll, bitte fülle diesen Buffer mit den FFT Daten eines 512 Byte langen Samples.". Die Bass.dll sieht nur einen Pointer auf ein Stück speicher, und glaubt dir blind, dass du genug Speicher für all die Werte die sie nun schreiben will...
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 8. Apr 2016
    Oder den Buffer zwar so groß machen wie ihn die Bass.dll befüllt, aber weniger daraus lesen. Du hast dann zwar "zu viele Daten", aber die Bass.dll schreibt dir nicht in undefiniertem Speicher herum. Definitv die bessere Wahl. (Und verlieren tust du auch nichts, da du ja auch mit dem kleineren Buffer letztlich Daten einfach weg lässt. Nur mit dem zusätzlichen Effekt, dass du nicht sicher sein...
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 8. Apr 2016
    Leider bleibt "Channel" bei mir immer 0, daher kann ich nicht selbst testen. Inwiefern ist das Ergebnis falsch? (Ich frage aus persönlichem Interesse, nicht weil ich dir nicht glaube :))
    Ist es trotz falsch dennoch flotter?
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 8. Apr 2016
    Roter Kasten:


    Das wundert mich ehrlich gesagt, aber da ich keine konkreten Tests gemacht habe, nehme ich das mal so hin :)
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 8. Apr 2016
    Canvas.Pixels ruft intern die WinAPI Funktion SetPixel auf. Scanline macht zwar auch einen API Call (GDIFlush), aber dennoch ist es erheblich schneller als SetPixel. Klar, der "saubere" Weg wäre es mit nur einem Mal Scanline abrufen und ab dann nur noch den Pointer inkrementieren. Aber dennoch sollte der Unterschied sehr deutlich ausfallen.

    Misst du eventuell das Berechnen der FFT mit? Weil...
  • Forum: Multimedia

    AW: Optimierung von Pixel

     
      by Medium, 8. Apr 2016
    Unter sehr leichtem Performaceverlust lässt sich Scanline auch ähnlich wie Pixels verwenden, wenn man sich eine kleine Helferprozedur bastelt.


    procedure SetPixel(aBitmap: TBitmap; aX, aY: Integer; aColor: TColor);
    var
    P: PRGBTriple;
    begin
    if aBitmap.Pixelformat <> pf24Bit then
    raise Exception.Create('Bitmap hat falsches Pixelformat (nicht 24-Bit).');
    if (aX < 0) or (aX >...


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=Medium&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=188798
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz