Re: 株式会社電子辞典の HD 辞典シリーズ
At 24 Oct 2003 06:53:15 GMT,
Junn Ohta wrote:
>
> ことによると、もしかして、ひょっとすると、遠からず
> 解析できてしまうかもしれませんね。:-D
圧縮を伸長できるようになりました。
---
■株式会社電子辞典の HD 辞典シリーズのファイル形式
4096バイト毎に LZSS で圧縮
まとめて圧縮するデータの塊をチャンクと呼ぶ
リトルエンディアン(LE)
本文は UTF-16 (LE)
ヘッダ、オフセット部、チャンク部で構成
■ヘッダ
0x50バイト
位置 (バイト数)
-----------------
0x00 (4) 'BODY' など
0x16 (4)
0x1a (4) チャンク部開始位置(ファイルの先頭から)
0x1e (4) チャンク部のサイズ
0x40 (4) 圧縮前データサイズ
ファイルサイズ = チャンク部開始位置 + チャンク部のサイズ
チャンク数 = (チャンク部開始位置 - 0x50) / 4
■オフセット部
(4 * チャンク数) バイト
各チャンクの開始位置(チャンク部開始位置から)の列
4バイト、LE
■チャンク部
4096バイト毎に LZSS で圧縮
まず、1ビットのフラグ。
フラグが 1 のときは続く8ビットが文字。
フラグが 0 のときは、続く8ビットで位置を5ビットで一致長。
一致長には2を加える。
---
藤井宏憲
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735