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

6.その他のMPEG機能


6.1 MPEG表示画面
(フレームバッファウィンドウとディスプレイウィンドウ)

 MPEGシステムでの画面表示は、フレームバッファウィンドウ内のデータをディスプレイウィンドウに出力することによって行う。各ウィンドウの関係を図6.1に示す。

図6.1 フレームバッファウィンドウとディスプレイウィンドウ

 (1)フレームバッファウィンドウ
 フレームバッファ内の表示データ矩形領域をフレームバッファウィンドウと呼ぶ。
 フレームバッファウィンドウに対しては、以下の値を設定することができる。

  1. 位 置(fpx, fpy):
    フレームバッファウィンドウの左上座標(CDC_MpSetWinFpos

  2. 拡大率(frx, fry):
    フレームバッファウィンドウの拡大率 (CDC_MpSetWinFrat

 ただし、実際のフレームバッファウィンドウサイズの計算式は、ディスプレイウィンドウサイズと拡大率の単純な掛け算ではない。

 (2)ディスプレイウィンドウ
 TVモニタ上に実際に表示される矩形領域をディスプレイウィンドウと呼ぶ。
 ディスプレイウィンドウに対しては、以下の値を設定することができる。

  1. 位 置  (dpx, dpy):
    ディスプレイウィンドウの左上座標(CDC_MpSetWinDpos

  2. サイズ  (dsx, dsy):
    ディスプレイウィンドウのサイズ (CDC_MpSetWinDsiz

  3. オフセット(dox, doy):
    TVモニタ上の表示領域の位置  (CDC_MpSetWinDofs

《備考》
 ここで設定したウィンドウサイズや座標の値は、VDP2に対する設定値とは無関係です。

6.2 MPEGフレームバッファ

6.2.1 イメージデータの取り出し
 MPEGフレームバッファ内に生成されたイメージデータは、MPEGレジスタを通してホストに取り出すことができる。
 取り出されるイメージデータは、フレームバッファウィンドウのデータそのものではなく、ディスプレイウィンドウ画像と同じデータです。

図6.2 イメージデータの取り出し

 (1)イメージデータの形式
 イメージデータは、15ビットRGB555形式の32K色データに減色される。

 (2)イメージデータの取り出し(CDC_MpGetImg)
 画像の出力準備が完了したらコマンドを発行する。コマンド発行後、ホストはMPEGレジスタからデータを転送して取り出す。
 画像データの出力先はホスト出力に設定しておく必要がある。(VDP2出力では無効)
 本機能は動画再生モード・静止画再生モードのどちらでも有効です。

6.2.2 イメージデータの読み込み・書き出し
(イメージデータウィンドウ)
 MPEGフレームバッファは通常解像度で4面、高精細解像度で1面のフレームバンクから構成される。
 静止画再生モードでは、フレームバンクに定義されたイメージデータウィンドウとバッファ区画の間で、イメージデータの読み込み・書き出しが可能です。

図6.3 イメージデータの読み込み・書き出し

 (1)イメージデータウィンドウ
 イメージデータウィンドウは、フレームバンク0〜3のうち任意のフレームバンクに対して設定できる。(高精細解像度の時はフレームバンク0固定)
 イメージデータウィンドウに対しては、以下の値を設定することができる。

  1. 位 置(ipx, ipy):
    イメージデータウィンドウの左上座標(CDC_MpSetImgPos)

  2. サイズ(isx, isy):
    イメージデータウィンドウのサイズ (CDC_MpSetImgSiz)

図6.4 イメージデータウィンドウ

 (2)イメージデータの形式
 イメージデータは、YCC4:2:0形式の輝度・色差データ(以下の3要素)に分解される。

 読み込み・書き出しをするには、それぞれの要素に対してセレクタ(絞りとバッファ区画)を割り当てる必要がある。

 (3)イメージデータの読み込み(CDC_MpReadImg)
 読み込み先の絞り番号を指定して、イメージデータウィンドウからバッファ区画にイメージデータを読み込む。
 イメージデータは、バッファ区画ではモード2フォーム1形式のセクタとして扱われ、ユーザデータ領域(2048バイト)に格納される。先頭の24バイトは0で埋められ、ユーザデータ以後の領域は不定です。

図6.5 イメージデータウィンドウからの読み込み

 (4)イメージデータの書き出し(CDC_MpWriteImg)
 書き出し元のバッファ区画番号を指定して、バッファ区画からイメージデータウィンドウにイメージデータを書き出す。

図6.6 イメージデータウィンドウへの書き出し

 (5)セレクタの設定
 イメージデータの読み込み・書き出し時に必要なセレクタの設定は、ホスト側でCD通信インタフェースを使って行うこと。(バッファ区画のクリアや、絞りとバッファ区画の接続など)CDブロック側ではセレクタの設定は行わない。

6.3 MPEGセクタバッファ

 MPEGセクタバッファモードでは、MPEGバッファはMPEGセクタバッファとして使用される。この機能により、MPEGデコーダを使用しない時は、MPEGカートリッジ内のメモリをデータの保管領域として自由に使用することができる。
 MPEGセクタバッファに対するアクセスは、CDバッファとの間でセクタデータ(2048バイト)を読み書きすることで行う。
 MPEGセクタの数は全部で256セクタです。(NTSC/PALによらない。)

 (1)セクタデータの読み込み(CDC_MpReadSct)
 読み込み先の絞り番号を指定して、MPEGセクタバッファの任意のMPEGセクタ位置からバッファ区画にセクタデータを読み込む。
 MPEGセクタデータは、バッファ区画ではモード2フォーム1形式のセクタとして扱われ、ユーザデータ領域(2048バイト)に格納される。先頭の24バイトは0で埋められ、ユーザデータ以後の領域は不定です。

図6.7 MPEGセクタバッファからの読み込み

 (2)セクタデータの書き出し(CDC_MpWriteSct)
 書き出し元のバッファ区画番号を指定して、バッファ区画からMPEGセクタバッファの任意のMPEGセクタ位置にセクタデータを書き出す。

図6.8 MPEGセクタバッファへの書き出し

6.4 MPEGコマンドに対するREJECTとWAIT

 (1)動作モードによるREJECT
 MPEG動作モード、画像データの出力先によってMPEGコマンドがREJECTになる条件を表6.1に示す。

表6.1 MPEGコマンドがREJECTになる条件
関数名MPEG動作モード画像データの出力先
CDC_MpGetImg-VDP2出力
CDC_MpReadImg,CDC_MpWriteImg静止画再生モード以外-
CDC_MpReadSct,CDC_MpWriteSctMPEGセクタバッファモード以外-

 (2)LONG WAITとSHORT WAIT
 MPEGコマンドに対するWAITには、LONG WAITとSHORT WAITがある。
 LONG WAITは、現在のMPEG動作モードやMPEGステータスでは実行できないコマンドを発行したときに発生する。ホストは、これらの状態が変化してからリトライ(再実行)してください。
 SHORT WAITは、CDブロックの内部状態が変化しているときに特定のコマンドを発行すると発生する。ホストは、50μsec以上の間隔をあけて数回リトライしてください。

表6.2 LONG WAITが発生する要因

CDC_MpSetDec
ビデオの動作状態が復活処理の時にポーズ、フリーズを設定した。

CDC_MpOutDsync
デコードタイミングがVSYNC同期になっている。

CDC_MpSetCon
既に接続先バッファ区画を設定しているのに重ねて設定した。
ビデオ又はオーディオの動作状態が再生、切り替え、復活処理の時に、現在の接続先を取り消した。
ビデオ又はオーディオの動作状態が切り替えの時に、次の接続先を取り消した。

CDC_MpChgCon
次の接続先バッファ区画が登録されていない時に切り替えを実行した。動作状態が再生でない。

CDC_MpSetStm
ビデオ又はオーディオの動作状態が切り替え状態です。

CDC_MpGetImg
MPEG/Videoステータスの出力準備完了フラグが0です。

表6.3 SHORT WAITが発生しうる関数

 WAITが発生した場合、まずLONG WAITの要因を取り除き、それでもWAITが解消しない場合はSHORT WAITに対するリトライを行うこと。


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