Алгоритм Ланцоша (Lanczos)

Тема в разделе "WASM.ASSEMBLER", создана пользователем xRay_TFB, 17 дек 2007.

  1. xRay_TFB

    xRay_TFB New Member

    Публикаций:
    0
    Регистрация:
    17 дек 2007
    Сообщения:
    2
    Если у кого-нибудь имеется реализация алгоритма Ланцоша на ассемблере - просьба выложить исходный код.

    Задача такова: необходимо изменять размеры изображения, желательно очень быстро :)
    Поскольку размер самих изображений достаточно большой, resize одной картинки занимает до нескольких секунд.

    На данный момент фильтр выполняет следующая процедура (Pascal):
    Код (Text):
    1. function Lanczos3Filter(Value: Single): Single;
    2.  
    3.   function Sin(const X: Extended): Extended;
    4.   asm
    5.     FLD     X
    6.     FSIN
    7.     FWAIT
    8.   end;
    9.  
    10.   function SinC(Value: Single): Single;
    11.   begin
    12.     if (Value <> 0.0) then
    13.     begin
    14.       Value := Value * Pi;
    15.       Result := sin(Value) / Value
    16.     end else
    17.       Result := 1.0;
    18.   end;
    19. begin
    20.   if (Value < 0.0) then
    21.     Value := -Value;
    22.   if (Value < 3.0) then
    23.     Result := SinC(Value) * SinC(Value / 3.0)
    24.   else
    25.     Result := 0.0;
    26. end;
    Помогите, пожалуйста, либо переписать эту процедуру на ассемблер, либо подскажите ссылку на исходный код.
    Гуглом пользовался - без особых результатов.
     
  2. halyavin

    halyavin New Member

    Публикаций:
    0
    Регистрация:
    13 май 2005
    Сообщения:
    252
    Адрес:
    Russia
    Это процедура не имеет никакого отношения к ресайзингу. А для быстрого ресайзинга нужно использовать видеокарту ;)
     
  3. xRay_TFB

    xRay_TFB New Member

    Публикаций:
    0
    Регистрация:
    17 дек 2007
    Сообщения:
    2
    Эта процедура производит сглаживание картинки.
    Я же указал на это:
    .
    А чтобы для ресайза использовать видеокарту, вы мне предлагаете DirectX / OpenGL - решение?
    Почему-то мне кажется, что оно будет довольно непростым.
    Хотя, спасибо за новое направление поиска.