KH-dha8

  • (by K, 2015.02.06)

これはなに?

  • gh4やhh4の仲間で、シンプル化に重きを置いた(つまり効率はあまりよくない)バージョンです。
  • 名前の由来:
    • 倍々方式が基本なので、doubleのd。
    • エンコード長が先頭付近で分かるタイプなのでheaderのh。
    • 今後亜種を作るかもしれないので、とりあえずa型。
    • 8ビット単位のエンコード方式なので、8。
  • そもそもの動機:
    • 最大256ビットの整数値をエンコードする必要があって、でも毎回32バイトも書いていたら長くなってしょうがないので、可変長にして短くしたかった。
    • hh4でもよかったんだけど、8bit単位に特化してもっとシンプルにできないかなーと思っていた。

フォーマット

0xxxxxxx1バイト形式0~0x7f(符号なしの場合)
10xxxxxx_xxxxxxxx2バイト形式0~0x3fff(符号なしの場合)
110xxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx4バイト形式0~0x1fff_ffff(符号なしの場合)
1110xxxx_..._xxxxxxxx8バイト形式0~0x0fff_ffff_ffff_ffff(符号なしの場合)
11110xxx未定義
111110xx未定義
1111110x未定義
11111110拡張形式エンコード長(ヘッダを含まずデータ部分のみの長さ)が後続
111111111バイト形式パディング用
  • 最短フォーマット:
    • 0x7fまでなら1バイト形式(0xxxxxxx)
    • 0x3fffまでなら2バイト形式(10xxxxxx_xxxxxxxx)
    • 0x1fff_ffffまでなら4バイト形式(110xxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
    • 0xffff_ffffまでなら6バイト形式(11111110_00000100_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)

ついでに KH-dhb8

  • KH-dha8に以下の仕様変更をしたもの:
    • 1110xxxx : 拡張形式のコンパクト版。xxxx部分でエンコードバイト数-2を表すので、2~17が表現できる。
  • 最短フォーマット:
    • 0x7fまでなら1バイト形式(0xxxxxxx)
    • 0x3fffまでなら2バイト形式(10xxxxxx_xxxxxxxx)
    • 0xffffまでなら3バイト形式(11100000_xxxxxxxx_xxxxxxxxx)
    • 0x1fff_ffffまでなら4バイト形式(110xxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
    • 0xffff_ffffまでなら5バイト形式(11100010_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
    • 0x00ff_ffff_ffffまでなら6バイト形式(11100011_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
    • 0xffff_ffff_ffffまでなら7バイト形式(11100100_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
    • 0x00ff_ffff_ffff_ffffまでなら8バイト形式(11100101_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)

ついでに KH-dhc8

  • KH-dha8に以下の仕様変更をしたもの:
    • 110xxxxx_... を3バイト形式のヘッダとする(4バイト形式ではなく)。
    • 1110xxxx : 拡張形式のコンパクト版。xxxx部分でエンコードバイト数-4を表すので、4~19が表現できる。
    • もはや倍々方式ではないのでdの名はふさわしくないが、名残でdh属のままとする。
  • 最短フォーマット:
    • 0x7fまでなら1バイト形式(0xxxxxxx)
    • 0x3fffまでなら2バイト形式(10xxxxxx_xxxxxxxx)
    • 0x001f_ffffまでなら3バイト形式(110xxxxx_xxxxxxxx_xxxxxxxxx)
    • 0x00ff_ffffまでなら4バイト形式(11100000_xxxxxxxx_xxxxxxxx_xxxxxxxx)
    • 0xffff_ffffまでなら5バイト形式(11100001_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
    • 0x00ff_ffff_ffffまでなら6バイト形式(11100010_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
    • 0xffff_ffff_ffffまでなら7バイト形式(11100011_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
    • 0x00ff_ffff_ffff_ffffまでなら8バイト形式(11100100_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)

こめんと欄


コメントお名前NameLink

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-02-06 (金) 13:09:48 (3369d)