ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

MPEG2 の展開について

どうやら展開しか仕様化されて無い模様?
まぁ展開がきっちり決まってれば圧縮は自然に決定しますしね。


とりあえず、MPEG2 は JPEG + 予測 な感じ。


時間ごとに順に流れてくる画像を片っ端から JPEG で圧縮していくわけだけど、
動画は時間軸方向の相関が強いから、直前のコマとか直後のコマからある程度予測可能。
よって、JPEG 圧縮後もう一回展開した物と次の画像の動きを予測するということ。


ここで、一回圧縮→展開したものとの差分にするのがミソで、展開後の劣化を計算に入れることで
誤差の蓄積を防ぐ効果があるらしい。無劣化のとの差分だと誤差が溜まってダメなんだとか。


MPEG2 では、各コマは I, P, B ピクチャーの3種類に分類できる。
何が違うって、予測で使う非参照ピクチャーの制限範囲が違う。

  • 完全にそのコマのデータだけで展開できる I ピクチャー
  • 直前の I, P ピクチャーのみ参照可能な P ピクチャー
  • 前後の I, P ピクチャーを参照する B ピクチャー

これのおかげで最初から展開しなくても途中から展開できたり、
一部分のデータが欠損してもそこを飛ばして展開したり出来るらしい。
たとえば I B B P B B P B B I B B P … なんて並んでるということ。


データ格納に関しても、画像をさらにスライス、ブロックと階層化することによって、
一部分のデータ欠損での影響範囲が小さくなるよう工夫されている。


…とりあえず分かったことはこんな感じ。
予測に関してよくわかんないなぁ……