Einzelnen Beitrag anzeigen

klaus schaaff

Registriert seit: 25. Jul 2009
24 Beiträge
 
#3

AW: Bitmaps2Video für Windows Media Foundation

  Alt 2. Jun 2023, 18:05
Hallo Renate,

es gibt verschiedene Lanczos Varianten. Dein Lanczos sieht bei mir so aus:

Delphi-Quellcode:
function LanczosXFilter(Value: Extended; LanczosWidth: Integer): Extended;
var
  y, yinv: Extended;
begin
  Value := abs(Value);
  if Value = 0 then
    Result := 3
  else if Value < 1 then begin
    y := Pi * Value;
    yinv := 1 / y;
    Result := sin(3 * y) * sin(y) * yinv * yinv;
  end else
    Result := 0;
end;
Es erzeugt eine Rasterung bei 80% Verkleinerung, siehe Anhang Lanczos.jpg

Meine Variation von Lanczos erzeugt kein Raster:

Delphi-Quellcode:
function LanczosXFilter(Value: Extended; LanczosWidth: Integer): Extended;

  // Normalisierte SinC Funktion = sin(Pi*x) / (Pi*x)
  function SinC(Value: Extended): Extended;
  begin
    if Value <> 0 then begin
      Value:= Value * Pi;
      Result:= Sin(Value) / Value;
    end else
      Result:= 1;
  end;

begin
  if Value < 0 then
    Value:= -Value;
  if Value < LanczosWidth then
    Result:= SinC(Value) * SinC(Value / LanczosWidth)
  else
    Result:= 0;
end;
Weiter finde ich es problematisch auf 3rd Party MfPack, zu verweisen, das es inzwischen in mehr als 4 unterschiedlichen Versionen mit unterschiedlichen Unitnamen gibt. Daduch erhält dein Package eine Halbwertszeit von MfPack. Nicht gut!

Auch die Objektorientierte Kapselung mit Class of Funktionen in Records usw. ist total overpowered. Die tatsächlichen WindowAPI Funktionen sind keine Class Funktionen, brauchen das nicht.

Liebe Grüße
Klaus Schaaff
Miniaturansicht angehängter Grafiken
lancos.jpg  
  Mit Zitat antworten Zitat