2006年03月16日

「予測」とはなんぞや

【概要】基礎用語を肚に落とすためのメモ書き。厳密には正確じゃないと思います。
【関連エントリ】サンプリングと量子化
    動画エンコードでは「Motion Prediction/Estimation」なる単語が頻出し、大抵は「動き予測」と訳されている。辞書も同様。
 なぜこれを「予測」と呼ぶのか肚に落ちてこない。単に「差分」でもよさそうなものだ。
 どうやらもうひとつの動き分析「動き補償、Motion Compensation」と並べて初めて肚に落ちる用語くさい。
 ひとまず「予測」そのものの解説っぽいものをメモ。

PCMとDCPM

こういうグラフがあったとする。
地震計でも騒音計でもなんでも良いが「アナログの波形」。これをPCM信号にしてみる。
predict.jpg


PCM信号;「アナログ信号を標本化(サンプリング)、量子化してデジタルで表現したもの」
普通の表のようになるハズだ。これが無圧縮デジタル信号。
5, 6, 5, 5, 4, 5, 6

DPCM信号;差分PCM (Differential PCM)、直前の差分だけを送る信号。
+5, +1, -1, 0, -1, +1, +1
最初は差分が無いから+5。次の値は6なので+1。以下同様。
この差分の値を「予測誤差」 と呼ぶ。

値は異なるが、表の意味は変わらない。どちらの表からでも同じ波形が再現できる。
表を「変換(意味を変えずに 別の形式にする)」した事になる。

DPCMのメリット

 あるピクセルの値は隣接ピクセルによく似た値になる事が多い。
 (映像に限らず連続的な値はそうなるものらしい。〜もともと波形グラフから読み取ったものだから、と思っておく事にする〜)。
 従って予測誤差(差分信号)は「0付近に集中する」
  5, 6, 5, 5, 4, 5, 6,,,よりも、
  5, 1, -1, 0, -1, 1, 1,,,のほうが、登場する記号の数が少ない=信号量を減らせる。

 DPCM信号のファイルの中身を妄想してみる。
  1.  「これはDPCM信号です」⇒ヘッダ(=直前の値に後続の値を足す"コデック"を使って下さい。)
  2.  「最初の値は5です」
  3.  「登場する記号は0と1の二種類です。プラスとマイナスがあります」⇒「1,2,3,4,5,6,7,8,,,,があります」より縮む。
  4.  「1, -1, 0, -1, 1, 1,,,,,,」
 デメリットというほどのものではないが、素のPCM信号に比べると足し算する必要(CPU負荷)が増える。

エンコ厨的には、、、

 DPCMを同一フレーム内の隣接ピクセルに対して使うと「フ レーム内予測」
 DPCMを前後フレームにまたがって使うと「フレーム 間予測」
  ⇒直前フレームをメモリ内に待たせておく必要が有る。実用化は1970年代以降。

 DPCMはH.264/AVCどころか、MPEG1よりもさらに古い。
 PCMを元にした最初の圧縮手法で、その後の圧縮の基盤になっている。
 特に、表の値を「できるだけ特定の値に集中するように 変換する」=「振幅分布を偏らせる操作」はH.264/AVCでも随所に顔を出す。
 というのは、頻出記号(ここでは+-1)の記述方式をさらに縮める「工夫」(もちろん無劣化で)が山積みだから。
 直前の値と同じなら[skip]で済ますとか、登場頻度の多い値に「短い符合を割り当てる(可変長符号化)」とか。
 H.264/AVCでは、無劣化で簡潔に記述する「工夫」と、元の情報を劣化させる「省略」、それぞれの手法がたくさんあり、ダマのようになっている。

 ていうかコレ数学ぢゃね?
posted by ばる at 21:25| Comment(0) | TrackBack(0) | その他 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス: [必須入力]

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/14926483
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。