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

3.MPEGデバイス


3.1 MPEGデバイスとの通信

3.1.1 MPEGデバイス通信用レジスタ
 MPEG関係の通信用レジスタの一覧と、対応するアクセス関数を表3.1に示す。

表3.1 通信用レジスタ一覧
レジスタ名R/W説  明アクセス関数
HIRQREQR/W割り込み要因レジスタ CDC_GetHirqReq,CDC_ClrHirqReq
HIRQMSKR/W割り込みマスクレジスタ CDC_GetHirqMsk,CDC_SetHirqMsk
MPEGRGBRMPEGレジスタ(RGBデータ)CDC_GetMpegPtr
 アクセス幅はすべて16ビット(1ワード)

 MPEG関係の通信用レジスタの詳細を以下に示す。

 図中、予約ビットは「−」で表す。予約ビットには必ず0を指定する。
 ビット構成は、最上位ビット(MSB)が15、最下位ビット(LSB)が0です。

 (1)割り込み要因レジスタ(HIRQREQ)
 CDブロックからホストへの割り込み要因を通知するためのレジスタです。
(詳細はCDパートを参照のこと)

表3.2 割り込み要因レジスタのビット構成
レジスタ名
R/W
15
14
13
12
11
10
9
8
HIRQREQ
R/W
    
    
MPST
MPCM
MPED
    
    
    
7
6
5
4
3
2
1
0
    
    
    
    
    
    
    
    

ビット名称説  明初期値
bit11MPED1:MPEG関連処理の終了
bit12MPCM1:MPEG動作不定区間の終了
bit13MPST1:MPEG割り込みステータスの通知(MPEG関連の割り込み発生)
bit0〜bit10 :CD関連の割り込み要因

 (2)割り込みマスクレジスタ(HIRQMSK)
 CDブロックからホストへの割り込みをマスクするためのレジスタです。
(詳細はCDパートを参照のこと)

表3.3 割り込みマスクレジスタのビット構成
レジスタ名
R/W
15
14
13
12
11
10
9
8
HIRQMSK
R/W
    
    
MPST
MPCM
MPED
    
    
    
7
6
5
4
3
2
1
0
    
    
    
    
    
    
    
    

  1. ビットの意味は割り込み要因レジスタと同じです。
    (1:割り込み許可、0:マスク)

 (3)MPEGレジスタ(MPEGRGB)
 MPEGフレームバッファのイメージデータをRGB形式でホストへ転送するためのレジスタです。

表3.4 MPEGレジスタのビット構成
レジスタ名
R/W
15
14
13
12
11
10
9
8
MPEGRGB
 R 
TRP 
 B7 
 B6 
 B5 
 B4 
 B3 
 G7 
 G6 
7
6
5
4
3
2
1
0
 G5 
 G4 
 G3 
 R7 
 R6 
 R5 
 R4 
 R3 

名 称説  明
R3〜R7:R(赤)データの上位5ビット
G3〜G7:G(緑)データの上位5ビット
B3〜B7:B(青)データの上位5ビット
TRP :透明ビット(画面特殊効果の透明ビットモードの設定で処理する)

  1. ビットの初期値は不定です。

 (4)コマンド終了フラグ
 MPEDフラグはMPEG関連のコマンド終了フラグであり、以下の各コマンドの処理終了を通知する。CDC関数は、これらのコマンドに対してコマンド発行の排他処理をする。
(コマンド発行の排他処理についてはCDパートを参照のこと)

表3.5 コマンド終了フラグに属するコマンド(MPEGパート)
フラグコ マ ン ド
MPED
・MPEGデコーダの初期化 (CDC_MpInit
・イメージデータウィンドウからの読み込み(CDC_MpReadImg
・イメージデータウィンドウへの書き出し(CDC_MpWriteImg
・MPEGセクタバッファからのセクタ読み込み(CDC_MpReadSct
・MPEGセクタバッファへのセクタ書き出し(CDC_MpWriteSct
CDC_MpInitに関しては、例外的にコマンド終了フラグをチェックせず0クリアだけする。

3.1.2 動作不定区間

 (1)MPEGコマンドの動作周期
 VSYNC同期の場合、MPEGコマンドはVBLANK-INを先頭として2VSYNC周期、または1VSYNC周期で動作する。この1周期を動作区間と呼ぶ。
 ある動作区間中に設定された項目は、次回の動作区間に反映される。
 コマンドの種類に応じた動作区間の間隔(動作周期)を表3.3に示す。

表3.6 コマンドの動作周期
コ マ ン ド動作周期
デコード系(MPEGデコーダ、MPEGストリーム)2VSYNC
表示系(MPEG表示画面)ノンインタレース1VSYNC
インタレース2VSYNC

 (2)動作不定区間
 CDブロック内では、MPEGデコーダに対する設定はVSYNCのタイミングで行われる。一方、ホスト側のユーザプログラムがVSYNCのタイミングを得ることは難しい。このため、発行したMPEGコマンドが現区間で反映されるか、次区間で反映されるか不定となる区間が生ずる。

 (3)動作不定区間の判定
 動作不定区間を避けるには、以下の2つの方法がある。

  1. VBLANK-OUT
    VBLANK-OUTでは、動作不定区間が終了していることが保証される。
    VBLANK-OUTのタイミングからMPEG関連の処理を行うことを推奨する。

  2. 割り込み要因レジスタのMPCMフラグ
    MPCMフラグは、MPEGデコーダのステータスが確定したことを示すフラグです。
    MPCM=1になってからVBLANK-INまでの間に発行したコマンドは、次区間で反映される。
    ホスト側でMPCMフラグを0クリアし、再度1となるのを待つ。

図3.1 動作不定区間の判定

 ホスト同期の場合は、VSYNCに加え、デコード同期信号(DSYNC)の送出にも起因してMPCMフラグが1になる。VSYNC, DSYNCのどちらであっても不定区間は終了する。

 (4)コマンド発行時におけるMPCMフラグのチェック
 MPEG通信関数は、コマンド発行時にMPCMフラグをチェックし、0であればコマンドを発行せずにエラーコードCDC_ERR_MP_COMUを返す。
 動作不定区間の終了をMPCMフラグで判定する場合、ユーザプログラムはVBLANK-INのタイミングでMPCMフラグを0クリアし、MPEG通信関数がCDC_ERR_OKを返すことを確認してください。

 ただし、以下の関数はMPCMフラグのチェックをしない。

表3.7 MPCMフラグのチェックをしないMPEG通信関数
・直前のMPEGステータス情報の取得
CDC_MpGetLastStat
・MPEGデコーダの初期化
CDC_MpInit
・イメージデータウィンドウ位置の設定
CDC_MpSetImgPos
・イメージデータウィンドウサイズの設定
CDC_MpSetImgSiz
・イメージデータウィンドウからの読み込み
CDC_MpReadImg
・イメージデータウィンドウへの書き出し
CDC_MpWriteImg
・MPEGセクタバッファからのセクタ読み込み
CDC_MpReadSct
・MPEGセクタバッファへのセクタ書き出し
CDC_MpWriteSct

3.2 動作モードとデータフロー

 (1)動画再生モード

図3.2 動画再生モードのデータフロー

 (2)静止画再生モード
 静止画は、すべてのピクチャがIピクチャで構成されるMPEGストリームを順次デコードすることによって再生される。
 静止画再生モードでは、イメージデータを格納するフレームバンクを指定してデコードする。表示・出力するフレームバンクは独立に指定できる。
(同一のフレームバンクを指定した場合、デコード途中の状態も画面に表示される)

図3.3 静止画再生モードのデータフロー

 (3)MPEGセクタバッファモード

図3.4MPEGセクタバッファモードのデータフロー

3.3 MPEG機能を使用するための手順

 (1)BOOT ROM内ルーチン「MPEGチェック」
 MPEG機能を使用するには、BOOT ROM内のMPEGチェックルーチン(SYS_CHKMPEG関数マクロ)を実行する必要がある。本ルーチンは、MPEG機能を使用するために必要な処理を行う。
 本ルーチンを実行して正常終了しなければ、全てのMPEG通信関数はREJECTとなってしまい、一切使用できない。
 SYS_CHKMPEG関数マクロは、SYSライブラリ(sega_sys.h)に定義されている。具体的な実行方法やサンプルプログラムについては、ライブラリ説明ファイル(mansys.txt)を参照のこと。

 (2)実行手順
 MPEG機能を使用するために必要な、MPEGチェックルーチンの実行手順を以下に示す。

  1. CDC_CdInit関数によりCDブロックのソフトリセットを実行する。

  2. CDC_GetHwInfo関数を実行し、MPEGカートリッジが装着されているか調べる。

  3. 装着されていれば、SYS_CHKMPEG関数マクロを実行する。
    (失敗しても最大2回まで実行)

  4. 成功すれば、CDC_MpInit関数でスイッチONを指定して実行し、MPEGシステムを起動する。

  5. 正常終了すれば、全てのMPEG通信関数が使用可能となる。


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