

ntrcomp は、TWL-SDKの MI_Uncompress*() コマンドで扱える形式の圧縮データを作成するツールです。
% ntrcomp <-d(8|16)|r|l|lex|h(4|8)> [-s] [-<t|T>[width]] [-H] [-A(4|8|16|32)] [-o outputFile]
<inputFile>
% ntrcomp -x [-o outputFile] [-s] <inputFile>
inputFileで指定された入力ファイルを、指定された形式で圧縮・変換します。
ランレングス圧縮、LZ77拡張圧縮、ハフマン圧縮、差分フィルタの変換が可能です。
-s オプションは、圧縮変換成功時に表示される成功メッセージを非表示にします。
-H オプションは、データにヘッダ情報をつけて圧縮するため、展開後のデータにもデータサイズが付加されます。
-Aオプションは、出力ファイルのサイズが引数nバイトにアライメントされるように末尾を0で埋めます。
-o オプションで、出力ファイルのファイル名を指定できます。 何も指定しなかった場合には、(入力ファイル名本体部)_(圧縮方式).bin という名前の出力ファイルが作成されます。
-t,-T オプションにより出力ファイルをc言語形式のテキストファイルとして出力可能です。
オプションに(1|2|4)を付けることで、型をu8,u16,u32から選択することも可能です。(デフォルトはu8)
u16,u32の場合に-tではリトルエンディアン、-Tではビッグエンディアンとして出力されます。
-x オプションを使用すると、ntrcomp を使用して圧縮したファイルをPC上で展開することができます。
圧縮方式として以下の形式が指定できます。
| オプション | 変換方式 | パラメータ |
|---|---|---|
| -d | 差分フィルタ | 比較する単位ビットサイズを指定 { 8 | 16 } |
| -r | ランレングス圧縮 | なし |
| -h | ハフマン圧縮 | 符号化するビットサイズを指定 { 4 | 8 } |
| -lex | LZ77拡張圧縮 | なし |
| -l | LZ77圧縮(旧互換) | なし |
LZ77拡張圧縮(lex)はLZ77圧縮に比べてより高い圧縮率が期待できますが、旧互換の為に-lオプションが残されています。
どちらも同一の MI_UncompressLZ*() で展開が可能ですが、4.2以前のSDKを使用しているプログラムではLZ77拡張圧縮されたファイルを展開できませんのでご注意ください。
拡張版のLZ圧縮 (-lex) は、旧来のLZ圧縮 (-l) に比べてワーストケースでの圧縮時間が数倍になることがあり、 ランタイムで圧縮する場合には旧来版の方がデータによらず安定した速度での圧縮が期待できますが、展開速度は同等です。
$TwlSDK/tools/bin/ntrcomp.exe
MI_UncompressHuffman, MI_UncompressRL*, MI_UncompressLZ*
2007/11/01 解凍オプションを追加、LZ77拡張圧縮(lex)を追加、LZ77圧縮のオプションパラメータを削除、テキスト出力オプションにエンディアン指定を追加、アライメントに8byte,16byte,32byteを指定できるように修正
2005/03/03 新設されたオプションの説明を追加
2004/08/20 初版