数え上げ符号のソースを表示
←
数え上げ符号
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{出典の明記|date=2014年1月}} '''数え上げ符号'''(かぞえあげふごう)は、[[符号化方式]]の1つ。次の手順で符号化を行う。 * 符号化の対象(情報系列)の1情報ブロック中にある "1" の個数([[ハミング重み]])を数える。 * "1" の個数と情報ブロックの長さを定めると 0と 1 の組み合わせも限られるので、0 と 1 の組み合わせを列挙し、情報ブロックが何番目の組み合わせと一致するかを数える。 * "1" の個数を[[二進記数法|2進数]]表現したものと、何番目のバイナリ系列と一致したかを数え、2進数表現したものを組み合わせて符号語とする。 下記の例のように符号化後の方がより多くのビットを使用する場合もある。この例では圧縮としての符号化を目的としたものではない。この符号化方式をナップサック暗号に組み合せると、よく知られた攻撃法を回避できるという提案もある。 == 例 == 符号化対象を 0101100(7ビット)とする。符号化対象に "1" は最大 7 個ある可能性があるため、符号化後の長さを一定にするためには<math>7 < 2^3 = 8</math>となり3ビット必要。35通りを 2進数で表現するには<math>35 < 2^6=64</math>となり、6 ビット必要となる。符号化後の長さを一定にするためには、このように 3+6=9 ビット必要となる(圧縮を目的とするなら、最小表現方式を使用するのも良い)。 STEP1:符号化対象のバイナリ系列 "0101100" の中の "1" の個数を数える。 :"1" の個数:3 STEP2:"1" が 3 つある長さ 7 の符号の全ての組み合わせは、7C3 = 35 通りある。 : "0000111","0001110","0011100","0111000","1110000", : "0001011","0010110","0101100","1011000","0001101", :"0011010","0110100","1101000","0010011","0100110", :"1001100","0010101","0101010","1010100","0011001", :"0110010","1100100","0100011","1000110","0100101", :"1001010","0101001","1010010","0110001","1100010", :"1000011","1000101","1001001","1010001","1100001" : 符号化対象の "0101100" は 35 通りの中の 8 番目にあたる。 STEP3:上で得た情報をバイナリ表現をして連結する。 : 3を2進数表現したもの "011" : 8番目の符号である事を示す 8 を2進数表現したもの "001000" : 上の二つを連結した "011001000" を数え上げ符号とする。 == 関連項目 == * [[符号化方式]] * [[データ圧縮]] {{Tech-stub}} {{DEFAULTSORT:かそえあけふこう}} [[Category:データ圧縮]]
このページで使用されているテンプレート:
テンプレート:Tech-stub
(
ソースを閲覧
)
テンプレート:出典の明記
(
ソースを閲覧
)
数え上げ符号
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報