Direktes Mipmapping

Mit dem Mipmapping können Sie große Bilder bei Bedarf skalieren.

Eine weitere neue Funktion in Flash Player 10.1 und AIR 2.5 auf allen Plattformen hat mit dem Mipmapping zu tun. In Flash Player 9 und AIR 1.0 wurde eine Mipmappingfunktion eingeführt, die die Qualität und Leistung von herunterskalierten Bitmaps verbesser hat.

Hinweis: Das Mipmapping gilt nur für dynamisch geladene Bilder oder für eingebettete Bitmaps. Mipmapping ist nicht für Anzeigeobjekte verfügbar, die gefiltert oder zwischengespeichert wurden. Das Mipmapping kann nur verarbeitet werden, wenn Breite und Höhe der Bitmap einen geraden Wert aufweisen. Wird ein ungerader Wert für die Höhe oder Breite erkannt, wird das Mipmapping gestoppt. So kann ein Bild mit den Abmessungen 250 x 250 zwar per Mipmapping auf 125 x 125 verkleinert werden, ein weiteres Mipmapping ist jedoch nicht mehr möglich, da es sich bei mindestens einer Abmessung um eine ungerade Zahl handelt. Die besten Ergebnisse werden bei Bitmaps erzielt, deren Abmessungen eine Potenz von 2 sind, wie beispielsweise 256 x 256, 512 x 512 und 1024 x 1024.

Angenommen, ein Bild mit den Abmessungen 1024 x 1024 wird geladen und soll für ein Miniaturbild in einer Galerie verkleinert werden. Beim Mipmapping wird das skalierte Bild korrekt gerendert, indem die per Downsampling erzielten Zwischenversionen der Bitmap als Texturen verwendet werden. Frühere Versionen der Laufzeitumgebung haben herunterskalierte Zwischenversionen der Bitmap im Arbeitsspeicher erstellt. Wenn ein Bild mit den Abmessungen 1024 x 1024 geladen und mit einer Größe von 64 x 64 angezeigt wurde, wurde in früheren Versionen der Laufzeitumgebung jede Bitmap mit der halben Größe erstellt; in diesem Beispiel wären dies Bitmaps mit den Abmessungen 512 x 512, 256 x 256, 128 x 128 und 64 x 64.

Flash Player 10.1 und AIR 2.5 unterstützen jetzt das direkte Mipmapping von der Quelle zur erforderlichen Zielgröße. In unserem Beispiel würden nur die Originalbitmap mit 4 MB (1024 x 1024) und die per Mipmapping erstellte Bitmap mit 16 KB (64 x 64) erstellt.

Die Mipmapping-Logik kann auch mit dem dynamischen Entladen von Bitmaps eingesetzt werden. Wenn nur die Bitmap mit der Größe 64 x 64 verwendet wird, wird die ursprüngliche 4-MB-Bitmap im Arbeitsspeicher freigegeben. Wenn die Mipmapping-Bitmap neu erstellt werden muss, wird das Original neu geladen. Wenn weitere Mipmapping-Versionen der Bitmap in verschiedenen Größen benötigt werden, wird dazu die per Mipmapping erstellte Bitmap-Kette verwendet. Zum Beispiel: Wenn eine 1:8-Bitmap benötigt wird, werden die Bitmaps in den Größen 1:4, 1:2 und 1:1 überprüft, um festzustellen, welche Bitmap zuerst in den Arbeitsspeicher geladen wird. Wenn keine anderen Versionen gefunden werden, wird die Originalbitmap mit 1:1 geladen und verwendet.

Die JPEG-Dekomprimierung kann das Mipmapping im eigenen Format durchführen. Durch dieses direkte Mipmapping kann eine große Bitmap direkt in das Mipmap-Format dekomprimiert werden, ohne dass das ganze dekomprimierte Bild geladen werden muss. Die Mipmap wird wesentlich schneller erstellt und von großen Bitmaps belegter Speicher muss nicht zugewiesen und dann freigegeben werden. Die JPEG-Bildqualität ist mit der allgemeinen Mipmapping-Technik vergleichbar.

Hinweis: Verwenden Sie das Mipmapping nicht zu häufig. Es verbessert zwar die Qualität verkleinerter Bitmaps, wirkt sich jedoch auf Bandbreite, Arbeitsspeicher und Geschwindigkeit aus. In manchen Fällen ist es besser, eine bereits skalierte Version der Bitmap aus einem externen Tool in Ihre Anwendung zu importieren. Beginnen Sie nicht mit großen Bitmaps, wenn Sie von Anfang an vorhaben, sie zu verkleinern.