こんばんは、川合です。 FORM-Akkie さんは 2004/05/31 17:49:13 の「[osask 6967] tek 圧縮 」で書きました: > tek1/2ですが、無圧縮部分と圧縮部分を分けるというのはいかがなものでしょう。 > ビットストリーム中であってもパディングすれば無圧縮データをbyte境界に置くことができるのではないでしょうか。 > パディングに次の圧縮データの先頭を入れておけばムダは出ませんし。 まずtek2にはバイトストリームはありません。全部ビットストリーム です。だからこの話題はtek2には該当しません。 で、tek1ですが、なるほど、その案は面白そうです。特に圧縮率の観 点からバイトストリーム開始位置(厳密にはビットストリーム長)を書 かなくていいのがいいなと思いました(特に小さいファイルで効果が大 きい)。 ・・・で考えてみたのですが、それだと無圧縮部分がどこからどこま でだったかに合わせて、ビットストリームの読み出しがややこしくなり そうです。tek1では展開速度にも配慮しているので、そういうややこし いことはできれば避けたいなーと。 そもそもバイトストリームを持ち出したのも高速化のためなのですが バイトストリームを統合するならパディングなんかしないで、ビットス トリームとして8bitを書き込んでしまうほうがむしろ速そうです(無圧 縮部分がよほど長く続かない限りは)。現在のtek1/tek2用のビットス トリームリーダは、数回のシフトで一度に24bitくらいは切り出せるの で、必要なときには3バイトずつ切り出すことで、無圧縮部分がある程 度長くても速いかもしれないです。 で、そんな感じの発想で全部ビットストリーム化したのがtek2なので す。tek2ではどうせbitストリームにするならと、バイトを8bitではな く可変長にして、頻度の高い文字は少ないbit数で、頻度の低いbitは多 いbit数で表現しています。それで圧縮率をさらに稼いでいるわけです 。 > あと、時代遅れな話ではありますが、tek0.txtにバグを発見しました。重要な問題は >l2d3 >・一致長の最上位ビットは必ず1なので省略されなければならない >->これに関連して273->274やサンプルデータの変更があります >だけですが、実装に関してtek0で >・符号の順番は距離、一致長の順で、l2d3符号のときとは逆 >というものもあります。 >そこでこれらを含めてtek0.txtを改変したのですが、必要な方はおられますか? せっかくなので、tek0.txtをその改変版に差し替えようと思います。 ついでに。もうお気づきかもしれませんが、 http://wiki.osask.jp/?tek1 にtek1フォーマットの概略を書き途中です。 それでは。 -- 川合 秀実(KAWAI Hidemi) OSASK計画代表 / システム設計開発担当 E-mail:kawai !Atmark! osask.jp Homepage http://osask.jp/