スレの皆様に質問です。
8ビットbitmapファイルを読み込み、各ピクセルに演算を加え、別ファイルとして出力するプログラムを作っています。
演算結果をint型の変数ifooに格納し、unsigned char型にキャストしてputしています。
ifooがunsigned char型の範囲外の値の時は、範囲の端の値を代入しています。

//fin,foutのファイル上の位置は適切な場所にあるとする
for (int y=0 ; y<height ; ++y){
  for (int x=0 ; x<width ; ++x){
    int ifoo = fin.get()*A+B;
    if(ifoo<0) ifoo=0;
    if(ifoo>255) ifoo=255;
    fout.put((unsigned char)ifoo);
    ++i;
  }
  //bmpファイルの幅は4の倍数ピクセルとする
}

先輩が組んだプログラムはこれの2倍以上速いのですが、AとBがハードコードされていて
ソースコードは失われ、先輩本人は行方知れずです。。。
そのためA,Bを引数で与えられるように、イチから再作成しています。
1000x1000pxのBMPを一度に数千枚〜数万枚単位で処理するため
このループ部分をもっと高速化したいです。何か良いアイデアは無いでしょうか。
ちなみにこの部分以外に目立ったループ箇所は無いです。