English
PROGRAMMER'S GUIDECD通信I/F(MPEGパート)
戻る進む
CD通信I/F(MPEGパート)

4.MPEGデコーダ


4.1 MPEG/Videoデコーダ

 MPEG/Videoデコーダの構造を図4.1に示す。

図4.1 MPEG/Videoデコーダの構造
制御可能な項目
《転送ブロック》
・再生するストリームの登録
・次に再生するストリームの登録
・ストリームデータの転送
・動画の強制切り替え
《デコードブロック》
・デコードの開始
・デコードの停止
・デコーダバッファ内のデータの消去
《表示ブロック》
・デコードタイミングの切り替え
・動画のポーズの設定と解除
・動画のフリーズの設定と解除
・出力先の切り替え

4.1.1 MPEG/Videoデコーダの動作概要
 MPEG/Videoデコーダの動作概要を図4.2に示す。

図4.2 MPEG/Videoデコーダの動作概要

4.1.2 MPEG/Videoデコードブロック
 デコードブロックでは、デコードの開始/停止、およびデコーダバッファ(VBVバッファとMPEGフレームバッファ)の消去を制御する。

 (1)デコードの開始/停止
 MPEG/Videoデコーダのデコードスイッチを直接制御することができる。
あるビデオストリームをデコード中にデコードの停止を指示すると、処理中のピクチャのデコードを完了し、次のピクチャ開始コードをデコーダが検出した時点でデコードを停止する。

  1. ストリームAデコード中
      VBVバッファ           MPEGフレームバッファ
    ┌────┬─┬──┐ ┌────┐ ┌─┬──┬───┬───┐
    │    │ |  │→│デコーダ│→│ |  │   │   │
    └────┴─┴──┘ └────┘ └─┴──┴───┴───┘
    未デコード ↑ ↑
          │ デコード済み
          │
          次のピクチャ開始
    

  2. デコード停止指示
      VBVバッファ           MPEGフレームバッファ
    ┌────┬────┐ ┌────┐ ┌─┬──┬───┬───┐
    │    │    │→│デコーダ│→│ |  │   │   │
    └────┴────┘ └────┘ └─┴──┴───┴───┘
              ↑         ↑
              次のピクチャ開始  処理中のピクチャのデコードは完了する
    

 (2)ストリームの切り替えとデコーダバッファの消去
ストリームを切り替える場合、それ以前にデコードしていたストリームのデータが、下記のデコーダバッファに残っている。このデータを消去する必要がある。

VBVバッファ
現在処理中のピクチャのデコード未完了部分とそれ以降の先読みされているデータが残っている。

MPEGフレームバッファ
現在処理中のピクチャのデコード完了部分とすでにデコードを完了したピクチャデータが残っている。

 (3)VBVバッファの消去
 ピクチャ開始コードを待ってVBVバッファを消去し、別のストリームに切り替えること。
MPEGフレームバッファ内のデコード完了ピクチャに連続して、後続のストリームのピクチャをスムーズに再生できる。
 ピクチャ開始コードを待たず即座にVBVバッファを消去した場合、MPEGフレームバッファ内のデコード途中のピクチャが処理を完了できずに、デコードエラーとなるおそれがある。

 (4)MPEGフレームバッファの消去
 VBVバッファを消去しただけで、別のストリームに切り替えた場合、MPEGフレームバッファ内のデコード済みピクチャが先行して表示されてしまう。その結果、ストリームの切り替えに3フレームの遅延を生じる。
 この遅延を避けるために、MPEGフレームバッファ内のデコード完了データを、VBVバッファと同時に消去することができる。

4.1.3 MPEG/Video表示ブロック
 表示ブロックは、デコードブロックにおいてデコードされたイメージデータの出力を制御する。
 以下の説明で再ポーズとは、ポーズスイッチが開いている状態で、あるデコードタイミングの間待ってスイッチを閉じ、次のデコードタイミングで開く動作である。再フリーズとフリーズスイッチについても同様である。

 (1)表示ブロックの機能
 表示ブロックは以下の機能をもつ。

  1. デコードタイミングの切り替え
     デコード同期信号のタイミングを規定する。VSYNC同期によりデコードを行うか、ホスト同期によりデコードを行うかを指定できる。

  2. 動画のポーズの設定と解除
     ポーズスイッチを開くことにより、動画のポーズを設定する。ポーズ中は、イメージデータがポーズスイッチより先へは流れないので、画像の更新を行わない。ポーズスイッチを閉じることにより、動画の一時停止を解除する。
     また、再ポーズの間隔を指定することにより、スロー再生ができる。

  3. 動画のフリーズの設定と解除
     フリーズスイッチを開くことにより、動画のフリーズを設定する。フリーズ中は、イメージデータをフリーズスイッチから捨てるので、画像の更新を行わない。フリーズスイッチを閉じることにより、動画のフリーズを解除する。
     また、再フリーズの間隔を指定することにより、ストロボ再生ができる。

  4. 出力先の切り替え
     画像データの出力先を切り替える。出力先として、VDP2とホストを設定できる。

 (2)表示ブロックの状態遷移
 表示ブロックは以下の状態をもつ。

表4.1 表示ブロックの状態
 状態
  スイッチの状態  
説    明
ポーズフリーズ
1
通常再生
通常の再生をしている。
2
ポーズ
動画が止まっている。
イメージデータはポーズスイッチのところで止まっている。
3
フリーズ
動画が止まっている。
イメージデータはフリーズスイッチから捨てている。
4
ポーズ

フリーズ
動画が止まっている。
イメージデータはポーズスイッチのところで止まっている。
ポーズを解除してもフリーズ状態となり、動画の再生を再開しない。

 MPEG/Videoデコーダの表示ブロックの状態遷移図を図4.3に示す。

図4.3 MPEG/Video表示ブロックの状態遷移図

4.2 MPEG/Audioデコーダ

 MPEG/Audioデコーダは、指定されたバッファ区画からセクタを取り出し、デコードする。デコードされたデータは、シリアル線によってサウンドブロック(SCSP)に送られる。
 MPEG/Audioデコーダの構造を図4.4に示す。

図4.4 MPEG/Audioデコーダの構造
制御可能な項目
《転送ブロック》
・再生するストリームの登録
・次に再生するストリームの登録
・ストリームデータの転送
・ストリームの切り替え
・ストリーム番号、チャネル番号の設定
《デコードブロック》
・デコードの開始
・デコードの停止
・オーディオのミュート
注1:デコーダバッファは、CDバッファ区画内の処理対象セクタ領域が使用される。

4.2.1 MPEG/Audioデコードブロックの機能
 オーディオデコードブロックは以下の機能をもつ。

 (1)オーディオのミュート
 MPEGオーディオデコーダに対して以下の設定ができる。

  1. LRチャンネルのミュート
    左右独立にミュートする。

  2. ストリーム入力開始時の自動ミュート
     オーディオデコーダにストリームが入力されたときに、先頭のオーディオフレーム3個分のデータ(約100msec)をミュートする。

4.2.2 複数チャネルの再生
 多国語(マルチリンガル)の再生をする場合は、各チャネル番号にMPEGオーディオのデータを割り振る。
 再生対象となるチャネルを設定すると、そのチャネルのデータだけがデコーダに送られる。その他のチャネルのデータは再生チャネルの転送に合わせて破棄されていくため、別のチャネルに切り替えても即座にビデオと同期した音声を再生できる。
 多国語再生の例を図4.5に示す。

図4.5 多国語の再生

バッファ区画
┌────┬────┬────┬────┬────┬────┬────┐    ┌────┐
│CN=3│CN=2│CN=1│CN=3│CN=2│CN=1│CN=3│CN=1│デコーダ│
│ 仏  │ 英  │ 日  │ 仏  │ 英  │ 日  │ 仏  │ →  │    │
└────┴────┴────┴────┴────┴────┴────┘    └────┘
チャネル番号1番(CN=1)の日本語を再生している例を示す。
フランス語や英語のオーディオデータは、日本語のデータの再生に合わせて破棄されていく。

戻る進む
PROGRAMMER'S GUIDECD通信I/F(MPEGパート)
Copyright SEGA ENTERPRISES, LTD., 1997