English
PROGRAMMER'S GUIDEPCM・ADPCM再生ライブラリ
戻る進む
PCM・ADPCM再生ライブラリ

2.仕様


 本ライブラリの仕様を次の表に示します。

表2.1 ライブラリ仕様
項 目
仕 様
備 考
サンプリング周波数
最大 44.1kHz
 
量子化ビット数
8bit,16bit
 
チャネル数
モノラル,ステレオ
 
ファイル形式
AIFF形式
指定ADPCM形式1)
CD-ROM XA Audio形式2)
SaturnPCM 形式3)
PCM非圧縮
ADPCM圧縮
ADPCM圧縮
PCM非圧縮
CD-ROMフォーマット
CD-ROM XA Audio形式の場合
Mode2Form2、
それ以外の場合Modelまたは
Mode2Form1
 
再生モード
メモリ再生モード(メモリ上のデータを再生)
ファイル再生モード(CDから読んで再生)
ストリーム再生モード(CDから読んで再生)
4)
ファイルシステムを使用
ストリームシステムを使用
機能
分岐再生,連続再生,ループ再生5)
マルチ再生(4本まで同時再生可能)
ポーズ,中断,ボリューム/パンの指定
ADPCMは1本のみ
連続再生時間
最大1時間
 
使用ライブラリ
ファイルシステム,ストリームシステム,DMAライブラリ,
ADPCM伸張ライブラリ
本ライブラリと同時にこれらをリンク指定すること6)
CPUタイマ
(FRT)の使用
本ライブラリはCPUのタイマ(FRT)を分周数128で使用して
います。PCM_Init関数内で一度だけ初期化します。ユーザ
側のFRT初期化や設定は禁止。
TIM_FRT_GET_16などで、値を取得することは可能
DMAの使用
CPU-DMA(チャネル1)、あるいは
SCU-DMA(チャネル0)を使用。
7)
サウンドドライバ
ユーザ側があらかじめ初期設定(68000リセット,サウンドドライバの転送など)を行う。 本ライブラリは、PCM再生に関するコマンド発行(PCMスタート、ストップ、パラメータチェンジ)を行う。 サウンドドライバへのコマンド発行は、全てサウンドI/Fライブラリを使用して行う。 セガサターンサウンドドライバ2.20プログラマーズガイド』を参照。
バッファの確保
ワークバッファ:ワーク構造体分(約530byte)
拡張ワークバッファ:2048byte
リングバッファ:セクタサイズ*10byte〜
PCMバッファ:4096*2〜4096*4sample/1ch
ポーズ処理用ワーク:4096sample〜PCMバッファサイズ
固定サイズ
8)SaturnPCM形式時のみ
9)
10)
ポーズ実行時のみ必要
CPU負荷
|再生開始後の|
|タスク関数の|
|CPU占有率|
11)
PCM非圧縮 44kHzステレオ 16bit:10%
PCM非圧縮 44kHzモノラル 16bit:6%
ADPCM圧縮 44kHzステレオ 16bit:33%
ADPCM圧縮 37.8kHzステレオ 16bit:29%
ADPCM圧縮 22kHzステレオ 16bit:17%
ADPCM圧縮 11kHzステレオ 16bit:8%
ADPCM圧縮 11kHzモノラル 16bit:4%
これは、CD→ワークメモリ→サウンドメモリのデータ転送など、ADPCMの場合は伸張処理も含む全ての処理時間を計測した値です。
PCM_Task(タスク
関数)の仕様
Vブランク割り込みの頻度(1回/16ms)と同等以上の頻度でコールする。
1回のタスク関数の最大処理時間
 PCM非圧縮 ステレオ 16bit:15ms
 PCM非圧縮 モノラル 16bit:8ms
 ADPCM圧縮 ステレオ 16bit:34ms
 ADPCM圧縮 モノラル 16bit:15ms
適当な頻度でコールしていれば、長い処理時間となるのは数回に1度です

  1)
指定ADPCM形式は、CRC総合研究所のAudio Starckというツール(AIFF→ADPCM変換ツール)で出力されたデータに対応しています。

  2)
CD-ROM XA Audio は、16bitのPCMデータが4bitにADPCM圧縮されおり、次の形式があります。詳細は、CD-ROM XA 規格書を参照してください。
CD-ROM XA Audio を再生する場合は、ストリーム再生モードだけが使用できます。

  3)SaturnPCM形式
SaturnPCM形式ファイルは、AIFFファイルを変換ツールAIF2SAPで変換し作成します。
SaturnPCM形式の特徴は次の通りです。

SaturnPCM形式の使用方法は「4.プログラミング上の注意事項/(8)項」を参照してください。

  4)
メモリ再生モードには2つの使用方法があります。
常駐再生:
メモリ上にファイル全体をあらかじめ読み込んだ、小さなファイルを再生
逐次供給再生:
ユーザがCDから読んだデータを逐次リングバッファへ供給しながら再生

  5)
ループ再生機能は、メモリ再生モード(常駐再生方式)、またはファイル再生モードでのみ使用できます。

  6)
使用する関数によっては、リンクされないものもあります。
ADPCM使用宣言 PCM_DeclareUseAdpcm をしなければ、ADPCM伸張ライブラリはリンクされません。
メモリ再生モードでは、ファイルシステム、ストリームシステムはリンクされません。
ファイル再生モードでは、ストリームシステムはリンクされません。
ストリーム再生モードでは、ファイルシステム、ストリームシステムの両方がリンクされます。

  7)
CDブロックからリングバッファへのデータ転送をCPU-DMAにより行うよう、 デフォルト設定されています(SaturnPCM形式以外。SaturnPCM形式では、CDブロックからサウンドメモリへの転送をSCU-DMAで行うようデフォルト設定されています)。
関数 PCM_SetTrModeCdにより、プログラム転送、CPU-DMA、SCU-DMAのいずれかを指定できます。

  8)
SaturnPCM形式を使用する時にのみ拡張ワークバッファが必要となります。
SaturnPCM形式は拡張ワークバッファを使用しますが、リングバッファを必要としません。

  9)
分岐再生のときや、メモリ再生でユーザがリングバッファへのデータ供給を行うときに、リングバッファを大きくとると途切れたりする危険性が低くなります。
大きいほど、PCM再生にとっては、安全性が高くなるといえますが、1回のタスク処理時間が多少不安定になる欠点があります。
メモリ再生でファイル全体がメモリ上に用意されている場合は、そのアドレスとファイルサイズを指定します。このときはセクタサイズの整数倍である必要はありません。

  10)
PCMバッファサイズは特別な理由がなければ 4096*2 [sample/1ch] で十分です。
これを大きく取ることで、タスク関数を規定の頻度でコールできなかったときでも再生が乱れずに済むことがあります。

  11)
CPU負荷(再生開始後のタスク関数のCPU占有率)の定義を次に示します。
R=(100×Ttask)/Tplay
┌                                    ┐
│ R    :CPU負荷【%】                     │
│ Ttask:再生開始から再生終了までのPCM_Taskの処理時間の総計│
│ Tplay:再生時間                         │
└                                    ┘

戻る進む
PROGRAMMER'S GUIDEPCM・ADPCM再生ライブラリ
Copyright SEGA ENTERPRISES, LTD., 1997