ページへ戻る

− Links

 印刷 

tek1​/oldlog​/000 :: OSASK計画

osaskwiki:tek1/oldlog編集/000

ページ内コンテンツ
  • 旧 tek1​/compの内容
  • tek1の続き
      • 比較表
      • 圧縮形式の説明
  • こめんと欄

tek1​/comp[1]の内容 anchor.png[2]

Page Top

tek1[3]の続き anchor.png[4]

  • (by K[5], 2004.06.15)
  • tek1~tek3の圧縮展開比較表
    • MLに書いたら読みにくくなってきたのでこっちにまとめ
Page Top

比較表 anchor.png[6]

  • サイズ
    無圧縮tek0tek1tek2tek3stk1stk2stk3lh7gzipbzip2LZMALZOrk
    hellok1272128125124145125124145205143166121193208
    zero4k4096272625262625268649433991100
    zero64k65536282827282827281171084390422108
    bim2binc5379215019144751406717229144751406717229141811402912903127871601511608
    kdun00b65536046246420984141249993420984141249993455204458947306345175214836736
    osaskgo197374111496621097405109251713187221097405109251713187221099064111164810474119538211177820909824
    osask.bmp3933346389593456128190593456128190646763414906477986184344
    num128131072106953(40前後)(40前後)4094278(94276)13160311854812464525542842371311361192
  • 規格化指数
    無圧縮tek0tek1tek2tek3stk1stk2stk3lh7gzipbzip2LZMALZOrk
    hellok1224.8105.8103.3102.5119.8103.3102.5119.8169.4118.2137.2100.0159.5171.9
    zero4k16384108.0104.0100.0104.0104.0100.0104.0344.0196.0172.0156.0364.0400.0
    zero64k242726103.7103.7100.0103.7103.7100.0103.7433.3400.0159.3333.31563400.0
    bim2binc463.4129.4124.7121.2148.4124.7121.2148.4122.2120.9111.2110.2138.0100.0
    kdun00b1899134.0122.0120.0144.8122.0120.0144.8131.9129.2137.1100.0151.1106.4
    osaskgo216.9126.4120.6120.1144.9120.6120.1144.9120.8122.2115.1104.8129.5100.0
    osask.bmp9055147.0136.6129.2188.5136.6129.2188.5148.9146.0112.9110.0198.4100.0
    num128327680267383100.0235695(235690)32900829637031161363855210593328402980
    (max)147.0136.6129.2188.5136.6129.2188.5148.9146.0137.1110.2198.4106.4
    • (max)は、bim2binc、kdun00b、osaskgo、osask.bmpのみ対象(他はあまりにtek系が得意なため除外)
    • (max)で判断すると安定して圧縮率のよいものは以下の順になる。
      rkLZMAtek2stk2tek1stk1bzip2gziptek0lh7tek3stk3LZO
      106.4110.2129.2129.2136.6136.6137.1146.0147.0148.9188.5188.5198.4
    • ↑これは主にosask.bmpの結果で決まっているともいえるので、参考までにosask.bmpを除いて集計すると以下のようになる。
      • しかし、「汎用圧縮符号」としては弱点があるというのは好ましくない。そしてosask.bmpの内容は多くの符号の共通の弱点を突く内容なのだろう。
        rkLZMAtek2stk2tek1stk1gziplh7tek0bzip2tek3stk3LZO
        106.4110.2121.2121.1124.7124.7129.2131.9134.0137.1148.4148.4151.1
      • bzip2が落ちてlh7が少し回復する以外は、順位そのものの傾向は変わらない。
  • tar+tek2(.tar.tk/.ttk)
    tarttklh7tgztbztar.lzma
    bim2bi4j2667257003090266845817274765314
    osat45i759808528582532093528923547131503545
    cantrbry[7]2821120708236714769735997568667483768
  • 展開速度
    • 参考:EPIA-VE5000でのosaskgoの展開速度
      meth.deco.timesizevs rkscorescore2言語備考
      tek30.15[sec]1315527144.64.521.7ASKACでは0.22[sec]
      LZO0.18[sec]1177820129.53.823.3?←おそらくasm
      tek10.58[sec]1097475120.610.969.9CASKAは0.52[sec]以下
      tek20.76[sec]1092517120.114.391.3CASKAは0.69[sec]以下
      lh71.04[sec]1099064120.820.6?
      gzip1.24[sec]1111684122.226.4?
      tek01.39[sec]1149662126.435.4175.7C
      LZMA1.42[sec]953821104.86.6148.8C
      bzip22.52[sec]1047411115.137.3290.1?
      GCA4.91[sec]1002311110.249.6?
    • いずれも圧縮データを読み込む時間がデコードタイムに加算されてしまっています。
      • したがって、tek3やLZOは小さくない誤差を含んでいる可能性が高い。
      • 試しに1315527バイトのファイルリードだけやらせてみたら0.05[sec]だった。
    • 「言語」はこの展開速度の測定につかったデコードルーチンの記述言語です。
      • tek系についてはASKAで動かすのがメインなので、実用上はC版の1.5~2倍に上がります(アセンブラ版のライブラリパッケージも用意する予定)。
    • たぶんLZOは既にアセンブラ化されていると思います(そうでないとこの圧縮率でこの速さは出ない)。bzip2はアセンブラ化されているかどうかは僕には想像がつきませんが、ブロックソート法では圧縮率の代償として展開速度低下があるという傾向はつかめると思います。
    • GCA、gzip、lh7に関しては展開ルーチンの記述言語は不明です。
    • score = (time - 0.05) x (vs_rk - 100)
      • なんとなく計算してみたくなったので(笑)。小さければ小さいほど圧縮率と展開速度のバランスに優れていることを示していると思う。
    • score2 = time x vs_rk
      • scoreの指標がどれくらい実感に近いのかを確認するために計算した参考値。この指標で比較するとrkでの圧縮率に影響されないが、この指標ではあんなにがんばっているLZMAがtek2に劣ることになってしまう。これはいくらなんでも圧縮率の評価が弱すぎるわけだ。
    • 補足(履歴)
      • 2004.06.20  tek1のC言語版展開ルーチンを改良(0.75[sec]→0.58[sec])
      • 2004.06.20  tek2のC言語版展開ルーチンを改良(0.82[sec]→0.76[sec])
Page Top

圧縮形式の説明 anchor.png[10]

  • 無圧縮
  • tek0
  • tek1
  • tek2
  • tek3
  • stk1
    • tek1でBS:0かつ補助バッファを使わないもの(subset-tek1)
  • stk2
    • tek2でBS:0かつ補助バッファを使わないもの(subset-tek2)
  • stk3
    • tek3でBS:0かつ補助バッファを使わないもの(subset-tek3)
  • lh7
  • gzip
  • bzip2
  • LZMA
  • LZO
  • rk
  • 展開ルーチンのコンパクトさにこだわる人向けの情報
    • stk3の展開ルーチンは135行(dtk3s.c)
    • stk1/stk2の展開ルーチンセットは582行(dtk2s.c)
    • tek1/tek2/tek3のフルセット展開ルーチンセットは1009行(dtkf.c)
    • 展開速度はフルセット版もサブセット版もほぼ同じ
Page Top

こめんと欄 anchor.png[11]


Last-modified: 2009-11-21 (土) 00:00:00 (JST) (319d) by ゲスト