マルチメディア命令(グレー画素最大値)
2283 ワード
処理された階調画像でなければ、最大値も面白くありません.
カラー図も階調図に変えてもいいですか.
アセンブリを使用していますが、マルチメディアコマンドは使用されていません.
階調画像のRGBはすべて同じで、mmxレジスタを使う必要はありません.直接単一バイトで処理すればいいです.
最小値を得るのは最大値を得るのと同じ原理で、命令を変更してjaをjnaに変更すればいいだけです.
カラー図も階調図に変えてもいいですか.
アセンブリを使用していますが、マルチメディアコマンドは使用されていません.
階調画像のRGBはすべて同じで、mmxレジスタを使う必要はありません.直接単一バイトで処理すればいいです.
最小値を得るのは最大値を得るのと同じ原理で、命令を変更してjaをjnaに変更すればいいだけです.
Pix asmGetMaxGrayPix(BitmapData *data)
{
// , RGB
// mmx
UINT Height=data->Height;
UINT Width=data->Width;
Pix* p=(Pix*)data->Scan0;
UINT n=Height*Width-1;
Pix Max; //
__asm
{
push esi;
mov ecx,n;
mov esi,[p];
mov eax,[esi];
add esi,4;
lp:
mov ebx,[esi];
cmp al,bl; // al,bl, al>bl, al , ,al=bl;
ja lp2; //al bl, lp2; // : jna lp2;
mov al,bl;
lp2:
add esi,4;
dec ecx;
jnz lp;
mov ah,al;
mov bx,ax;
shl eax,16;
mov ax,bx;
mov [Max],eax;
pop esi;
}
return Max;
}