He hellboyPS,
was mir gerade so in den Sinn kam: du kannst dir doch, nachdem du über die Performancesachen durch Scanline hinaus bist, etwas Spaß genehmigen und einen 50%-Skalierer implementieren, der immer 2x2 Pixel zu 1 Pixel packt. Wenn du nur eines nimmst, hast du die Funktionsweise von StretchBlt nachgebaut, wenn du über alle vier Pixel mittelst, wird das Bild an den Kanten sehr weich, was du wohl auch nicht willst. Neben dem arithmetischen gibt es jedoch auch ein geometrisches Mittel, ein quadratisches Mittel, und die n-Norm (n-te Wurzel der Summe aus den vier Pixelfarbwerten hoch n). Für große n geht dieses Mittel gegen max(r1, r2, r3, r4).
Ebenso könntest du auch etwas content-awareness einbauen, sprich die Wahl "welches der 4 Pixel nehme ich als representativ" statistisch aus der Umgebung der 8 angrenzenden Blöcke ableiten. Damit kann man ebenfalls aliasing unterdrücken. Der Phantasie sind da nur sehr irdische Grenzen gesetzt