Конференция "Media" » Качественное и быстрое масштабирование картинки [D6, WinXP]
 
  • Sapersky (16.10.07 09:26) [100]
    Просто делать делать необоснованные утверждения? Photoshop — 532 ms, SmoothResize — 2312ms.

    Да, сам не пробовал сравнивать. Кстати, а где у Фотошопа встроенный таймер (и какая версия нужна)?
    Версия SmoothResize моя или стандартная?
  • homm © (16.10.07 09:28) [101]
    > [100] Sapersky   (16.10.07 09:26)
    > Кстати, а где у Фотошопа встроенный таймер и какая версия нужна

    В программе ProcessExplorer. Любая.


    > Версия SmoothResize моя или стандартная?
    Из комплекта FastDIB. ([20])
  • homm © (16.10.07 09:37) [102]
    > [100] Sapersky   (16.10.07 09:26)
    > Версия SmoothResize моя или стандартная?

    Даже если твоя в 2 раза быстрее (как здявлено) она все равно в 2 раза медленнее, чем в фотошопе.
    Я склонен полагать, что в фотошопе функции всеже менее универсальны, просто их там туча, для каждого формата пикселей и фильтра своя. Соответственно они более оптимизированы.
  • Sapersky (16.10.07 19:54) [103]
    У меня получилось - в 1.5 раз медленнее Фотошопа. В принципе, приемлемо, тем более что я осознанно отказался от некоторых оптимизаций в пользу компактности кода.
    Фирме Adobe - миль пардон, недооценил её продукт.
  • Fenik © (18.10.07 16:56) [104]
    В фотошопе не только под все форматы изображений сделаны оптимизации, но и под разные процессоры и с использование MMX, SSE и т.д.
  • antonn © (27.10.07 13:24) [105]
    а кишки битмапа хранятся в нем "задом-наперед"?
  • homm © (27.10.07 14:45) [106]
    > [105] antonn ©   (27.10.07 13:24)

    Есть формат с обратным порядком строк, пиксели насколько помню всегда слева направо.
  • antonn © (27.10.07 15:00) [107]
    аа, точно, по вертикали разный  ипиксели в BGR лежат
    ну пиксели то обратно перевернуть не проблема:
    bswap eax
    ror   eax, 8


    у меня со строками какая то фигня происходит, на две больше по вертикали отсчитывает :)
  • miek (09.11.07 20:13) [108]
    вернемся к истокам

    >Так как все же качественно (!) и быстро (!) масштабировать картинку

    почему бы не попробовать directX? что-то, а скорость там будет.
  • antonn © (09.11.07 21:22) [109]

    > почему бы не попробовать directX? что-то, а скорость там
    > будет.

    а если на машине нет нужной версии DX? А если еще со встроенным решением...
  • DVM © (10.11.07 13:36) [110]

    > почему бы не попробовать directX? что-то, а скорость там
    > будет.

    Ты картинку туда загонять будешь дольше, чем масштабировать. А потом, какой смысл использовать DirectX если вывод картинки на экран не планируется.
  • antonn © (10.11.07 23:10) [111]

    > homm ©   (16.10.07 07:03) [96]

    тут какая то ерунда выяснилась...
    в коде [96]:
    jnz @LM2

            add esi, Delta

            add esi, 4

            pop eax
            sub eax, 1
      jnz @LM1


    без выделеного картинка сдвигается. а вроде ведь работало... вот теперь сижу и думаю, а код "работающий" или очень "нежный"? :)
  • antonn © (10.11.07 23:13) [112]
    хм, нет, все равно ерунда, ниче не понимаю %)
    на маленьких изображениях все пучком (64*64), на больших - сдвиг
  • antonn © (10.11.07 23:23) [113]
    аа, доперло %)
    если нечетное кол-во пикселей по Х, то сдвигается... блин :(
  • homm © (11.11.07 00:58) [114]
    > [113] antonn ©   (10.11.07 23:23)
    > если нечетное кол-во пикселей по Х, то сдвигается...

    Там вообще код спецефический, был сделан для строго определенной подачи данных, в которой ошибки быть не должно.
  • Sapersky (12.11.07 16:19) [115]
    почему бы не попробовать directX? что-то, а скорость там будет.

    Ну вот для иллюстрации выкладываю ещё раз свой тест:
    http://sapersky.narod.ru/files/GDI_vs_DDraw_vs_FastLIB.rar
    Для DX в заголовке формы после "+" пишется время создания поверхности и копирования в неё картинки.
    Претензии по качеству аппаратного масштабирования (которое, действительно, неважное, ближе к Bilinear, чем к SmoothResize/StretchBlt) просьба предъявлять производителям видеокарт.
    Бороться с плохим качеством можно выводом через 3D с использованием, например, трилинейной фильтрации, или хотя бы просто мип-мэппингом (который можно организовать и вручную с софтвером/DDraw).
  • Андрей (27.11.07 00:51) [116]
    Помогите. Необходимо запихать BitMap картинку в массив. Как это сделать?
  • homm © (27.11.07 06:50) [117]
    > [116] Андрей   (27.11.07 00:51)

    Читай про PixelFormat и ScanLine.
  • antonn © (27.11.07 08:04) [118]
    на предыдущей странице ведь есть...
  • Fenik © (27.11.07 08:59) [119]
    А битмап - это и так массив :)
 
Конференция "Media" » Качественное и быстрое масштабирование картинки [D6, WinXP]
Есть новые Нет новых   [120101   +61][b:0.001][p:0.001]