Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.05.01;
Скачать: CL | DM;

Вниз

Помогите оптимизировать не большой код   Найти похожие ветки 

 
RWolf ©   (2011-01-26 14:55) [40]


> Slym ©   (26.01.11 14:29) [38]
> 2. регистры 64 битные т.е. в пакет по 4 пикселя 16бит, 3 24бит и 2 32бит.


тоже верно :) 510 fps.


 
novai   (2011-01-26 14:56) [41]

я смотрю, вы тут фпс"ами меряетесь?)


 
Slym ©   (2011-01-26 15:00) [42]

24 битный вариант с развернутым циклом
procedure Fade24(Bitmap:TBitmap;const Value:integer);
label ll;
var
 y,lp:integer;
 p:pointer;
begin
 if Bitmap.PixelFormat<>pf24bit then exit;
 asm
   mov eax,Value
   and eax, $ff
   movd mm0,eax
   punpcklbw mm0, mm0
 punpcklwd mm0, mm0
 punpckldq mm0, mm0
 end;
 for y:= 0 to Bitmap.Height - 1 do
 begin
   p:=Bitmap.ScanLine[y];
   lp:=Bitmap.Width div 16;// 8*6 в байтах = 16 в пикселях
   asm
     push ecx
     push edi
     mov ecx,lp
     mov edi,p
   ll:
     movq mm1,[edi]
     movq mm2,[edi+8]
     movq mm3,[edi+16]
     movq mm4,[edi+24]
     movq mm5,[edi+32]
     movq mm6,[edi+40]

     psubusb mm1,mm0
     psubusb mm2,mm0
     psubusb mm3,mm0
     psubusb mm4,mm0
     psubusb mm5,mm0
     psubusb mm6,mm0

     movq [edi]   ,mm1
     movq [edi+8] ,mm2
     movq [edi+16],mm3
     movq [edi+24],mm4
     movq [edi+32],mm5
     movq [edi+40],mm6

     add edi,48
     loop ll
     pop edi
     pop ecx
   end;
 end;
 asm
   EMMS
 end;
end;


 
Slym ©   (2011-01-26 15:05) [43]

все мои варианты без обработки хвостов!
вариант Slym ©   (26.01.11 15:00) [42] выравнивается на 16 пикселей, т.е. хвостовые пиксели (Bitmap.Width mod 16) нужно допиливать вручную



Страницы: 1 2 вся ветка

Текущий архив: 2011.05.01;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.011 c
15-1295268013
И. Павел
2011-01-17 15:40
2011.05.01
Может ли HTML-страница сохраниться на локальной машине


2-1296220502
Сергей _
2011-01-28 16:15
2011.05.01
Вопрос оптимизации


15-1294867793
Юрий
2011-01-13 00:29
2011.05.01
С днем рождения ! 13 января 2011 четверг


15-1295532470
DevilDevil
2011-01-20 17:07
2011.05.01
pf15bit. Потестируйте код


15-1292611123
картман
2010-12-17 21:38
2011.05.01
почему элементы в земной коре встречаются, как правило, залежами?