* s7stに関するアイデア -以下の文章を読む前に、まずは[[ideas]]をよく読んでおくこと。 -s7sとs7については http://wiki.osask.jp/?tek1 に書いてある。 *** s7st符号 -s7s符号の改造版。s7sで得られたバイト列をそれそれRORで1ビットシフトして、さらに0x80でXORしたもの。デコードは逆にやればいい。 -tek5などの圧縮がかかりやすい。なぜなら、終了・継続ビットが最上位にあるから。 --継続する場合、データビットは1の出現率が高いだろう(継続しない場合との相対的な比較)。 --終了する場合(特に1バイトで済む場合)、データビットは0の出現率が高いだろう。 -パディングバイトは0x80になる。 --反転をやめればパディングバイトは0x00にできるが、パディングバイトよりも0-7fのデータ出現時の挙動を優先した。 -s7stとeh8との比較: -s7stと[[eh8>memo0023]]との比較: --eh8は制御ビットとデータビットが分離している。うまくやればデータをデコードする手間を劇的に減らせる。この手間の減少こそがねらいのすべてであって、ビット化けなどにはECCなどで対処する(ただし手間が減るのはビッグエンディアンマシンに限られるが)。また大きな値を扱うときの制御ビットの少なさも良い。 --s7stは仮に制御ビットが一部破壊されてもそれは次のエンコードには影響しない。頭だしも簡単。 *** s7t符号 -s7符号をs7st化したもの。 --1aaaaaaa 1bbbbbbb 0ccccccc が aaaaaaabbbbbbbccccccc になる。[[ビッグエンディアンの考え方で行けば第一ビットは最上位ビット>memo0024]]だから、s7t符号は継続ビットが各バイトの頭にあることになり、美しい。 --1バイトで0-0x7f(unsigned時) --2バイトで0x80-0x407f(同) --3バイトで0x4080-0x20407f(同) *** 予定 -s7st/s7t符号は圧縮しやすい特質があるので、sarやrjcのF4-03/04に取り入れたい。 --まずは試験的に入れてみて様子を見て効果があれば本格導入 * こめんと欄 #comment