[osask 7101] bim2bin4r.

  こんばんは、川合です。


Hidemi KAWAI は 2004/11/04 01:32:19 の「bim2bin4q, sartol0h.」で
書きました:

>  今後の予定としては、明日くらいに後回しにした説明をして、それで
>今週中にOSASKにASKA版のtek5展開ルーチンとI.Tak.さんの拡張を組み
>込んでリリースしたいです。

  という予定だったのですが、bim2bin4qのリリース直後にバグ報告が
あり、bim2binをバージョンアップすることにしました。

    http://k.hideyosi.com/bim2bin4r.lzh  (204KB)

  修正されたのは次のとおりです。

  ・ファイルサイズ0バイトのファイルをosacmpすると、無限ループに
    陥るバグを修正。
  ・ファイルサイズ1バイトのファイルをosacmpすると、例外で落ちる
    バグを修正(stk5/tek5で発生していた)。
  ・ファイルサイズ1バイトのファイルをrestoreすると、例外で落ちる
    バグを修正(stk5/tek5で発生していた)。
  ・ソースをコンパイルするといっぱい警告が出ていましたが、恥ずか
    しくなってきたので少し直しました。

  ・展開ライブラリが、将来の拡張フォーマットを誤認してしまう可能
    性があったので修正。
  ・展開ライブラリも、1バイトのデータの展開に失敗していたので修
    正。
  ・展開ライブラリのtek5の展開速度の改良(ASKA版のみ)。

  展開ライブラリを修正したので、sartolもリリースしなおす予定です
(ついでに、ソースレベルではI.Tak.さんのLinux対応を組み込んでし
まおうと思っています)。

---

  さて、bim2bin4qで追加された自動最適化機能について説明します。
これはもちろんbim2bin4rでも有効です。

  bim2binで-tek5を選択したとき(註、圧縮フォーマットタイプを特に
指定しない場合、デフォルトでは-tek5を選択したのと同じになります
)、eoptとeprmというパラメータで、圧縮率をコントロールすることが
可能でした。この機能は今でも有効ですが、相変わらず指定できるパラ
メータの組合せがあまりに多く、はっきりいって限られたごく一部の人
にしか使いこなせませんでした。

  bim2bin4q以降では、「eopt:@」とすることで、かなり時間をかけて
最善なオプションを自動で見つけます。しかし通常の圧縮時間の100倍
〜500倍の時間がかかります。速いマシンを持っていて処理能力の使い
道に困っていた人はちょうどいいかもしれませんが、普通の人は、512
コンテストに出すときの、しかもデバッグが終わった最後にだけ、や
ってみるのがいいと思います。

  これで出力されるオプションをメモしておけば、同じデータをもう一
度圧縮するのは速くできます。なお、「eopt:@@」にすると現在どんな
パラメータの組み合わせを試しているのかが分かります。

  eprmは、tek5において、stk5コンパチにするかどうかや、tek5のどの
フォーマットでいくかを細かくコントロールするためのものです。stk5
がほしいときはz0にすればいいので問題ないですが、tek5のなかで(も
ちろんstk5モードも含めて)、一番圧縮率がよいものを利用したいと思
うことがあります。そういう時は、「eprm:@」とします。eoptと同様に
最適なオプションを自動で探します。

  eprmは最善の組み合わせを探すのがそれほど大変ではないので、圧縮
時間は2〜3倍くらいにしかなりません。だからこれはどこまで小さくな
るか見たいなんてときに、たまに使ってもいいと思います。eprmは時間
が掛からないので@@モードはありません。

  しかし悲しいかな、eoptを最適なものにするほうが、はるかに効果が
あります。まあ効果があるといっても、eprmよりも効果があるというだ
けであって、劇的に変わるわけではありませんが。

  例:

    bim2bin -osacmp -tek5 eprm:z0 in:ファイル名 out:ファイル名
    bim2bin -osacmp -tek5 eopt:@ eprm:z0 in:ファイル名 out:ファイル名
    bim2bin -osacmp -tek5 eopt:@ eprm:@ in:ファイル名 out:ファイル名

---

  sartolの拡張機能の説明については、sartol0iのリリース時にまとめ
てやってしまう予定です。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! osask.jp
Homepage http://osask.jp/

ML番号でジャンプ
ML単語検索