English
FAQMovie関連
戻る進む
FAQ/Movie関連

TrueMotion



TrueMotionでSGL2.0aで音がならない。

Q)
CD-ROMで供給されているTRUEMOTIONのライブラリはSGL1.3に対応している 様ですがSGL2.0aには対応してないのでしょうか。
コンパイルすると音が 全く再生されません。(供給された状態では正常に動作しました。)

A)
音がならない理由は、SGL Ver1.3のバグ対応のプログラムが入っている ためだと思われます。
実際に問題があった関数は、slSoundRequest関数で バグの対応のために、インラインアセンブラで_sound_request_sub関数を 使用して実行しています。このSGL Ver2.0a以降は、_sound_request_sub関数 を削除して直接slSoundRequest関数を使用するように変更してみてください。


「Compression Level」=「High」の時にムービーサイズが小さくなる。

Q)
"Compress Mode"が"IntERframe","Compression Level"が"High"の時、生成された 圧縮画像が水平方向に1〜2%縮小(?)され、右端に黒い縦線が出現する (230x224の画像で4ドットの幅)。

A)
"High"圧縮はムービーのサイズを3分の2にして持つことで高い圧縮率を実現 しています。つまり320×224なら208×224に縮小したものを対象にエンコードし それを再生時にデータを補完しつつ 312×224 で表示している。結論として12の 倍数サイズのムービーなら上記問題は発生しません。


Low-RAM に TrueMotion で使用するメモリを確保する上での注意点は?

Q)
High-RAM だけではメモリが足りないので TrueMotion ライブラリで使用する メモリの一部を Low-RAM に確保する必要があるのだが、その際このメモリだけは High-RAM で確保した方がよい、といったライブラリが確保するメモリの プライオリティを教えてほしい。

A)
HFB ライブラリ関数で確保するメモリは Low-RAM に確保してもパフォーマンスに それほど影響しません。特にCDバッファを Low-RAM に置くことをすすめます。 DXL ライブラリ関数で確保するメモリは Read/Write されるので High-RAM に 置くことをすすめます。


作成した TrueMotion ムービーに素材にはないロゴマークが入ってしまう。

Q)
TrueMotion 圧縮をしたムービーをサターン上で再生したところ、TrueMotion の ロゴマークがムービーに付いてますが、ムービー作成に失敗したのでしょうか?

A)
ムービー編集ツール上で圧縮後の複数のムービーを Merge したりした時に 再圧縮オプションをOFFにしておかないと、再圧縮がかかってしまいます。 この再圧縮が発生するとロゴマークが入ってしまいます。

彩度の高い部分に出るブロック状ノイズをなくす方法はないのか?

Q)
彩度の高い部分に出るブロック状ノイズをなくす方法はないのか?

A)
一番有効な手段は圧縮時にColor Respパラメータで色解像度を"High_XY"まで 上げる事です。これによって 4×4pixelのブロックが 2×2迄改善されます。 しかしCDで配布される Release 3.0 では 16bitColor の IntRAframeモード でしかこの色解像度を選択できません。他のモードは"High_Y"までしか ありません。

最新版の Release 3.5 では全てのモードで"High_XY"を選べる様に なっていますが、色解像度を上げるとその分転送データレートも上がる事に 注意してください。

また、素材のブロック状ノイズが目立つシーンだけを切り取って、圧縮前に 前処理で彩度を下げておく等のフィルタ処理を施すのも1つの手段ではあります。


市販のタイトルの TrueMotion ムービー をテスト再生できない。

Q)
市販のセガサターンタイトルから TrueMotion のムービーデータを取り出して、 テストで再生しようとしたところ、Windows 上ではサウンドは再生されるの だがビデオの方が画面に縦に赤い縞模様が出るだけで上手く再生できない。 セガサターン上ではVCDを使用して問題なく再生できるのだが?

A)
TrueMotion 開発キットを各ライセンシーに配布する際に同時に発行している キーコードの違いによるものです。TrueMotion 圧縮時に各開発環境ごとに異なる キーコード情報をムービーデータに持たせる事で、他の開発環境上で編集作業を 行えない様にして、ムービーデータの改変等による著作権の侵害を防ぐ事が 目的です。セガサターン上でVCDを使用して製品版と同様のムービーを再生する事 なら可能です。

TrueMotion の音声圧縮だけを利用することは可能か?

Q)
TrueMotion のDK4BIT、DK3BIT音声圧縮だけを利用することは可能か?

A)
オーディオだけのAVIムービーファイルを作成して、TrueMotion ライブラリの オーディオ伸長関数を使用することで可能です。専用のサンプルプログラムは 用意されてないので、提供されるサンプルプレーヤーのオーディオ部分を参考に オーディオ圧縮データ伸長ルーチンを作成する必要があります。

現在はAVI形式のデータしか扱えませんが、他のオーディオ形式への対応も 要望が大きければ検討します。


HFB_FillBuffer()関数の DCK_DEFAULT_READSIZE とは?

Q)
HFB_FillBuffer()関数の DCK_DEFAULT_READSIZE とあるが実際にバッファに フレーム更新時に読み込まれるサイズはいくつになるのか?

A)
例えば 20fps のムービーを再生する場合は、ライブラリ側で2倍速CDの転送 レートの上限である 300KB/s を基準にして、1フレームごとの読み込みサイズを 300/20 = 15(KB) にします。
ここで2K単位のセクタに合わせて

 14(KB), 16(KB), ...

と交互にデータをCDから読んできます。つまり再生するムービーの平均 データレートが200KB程度しかない場合などは、上記 DEFAULT 値ではなく 直接 10×1024(byte) を引数にした方が効率的なバッファ管理ができます。


TrueMotion で圧縮かけると全体にディザがかかってしまう。

Q)
TrueMotion で圧縮かけると全体にディザがかかってしまう。
「smooth」などにパラメータを変更しても状況は変わらない。

A)
24bitで圧縮した場合は全て「grainy」になります。これは圧縮率を上げるために 全体にノイズを発生させるモードです。

16bitでは「smooth」と「grainy」が選択でき、ディザをかけたくない場合は 「smooth」で「Dither」の「Amount」を0にすればマッハバンドは出ますが ディザはかかりません。


True Motionのサンプルがコンパイルできない事がある。

Q)
TRUE MOTIONのサンプルを.o .cofファイルを全て削除して、makeコマンドを 使い、再構築しようとした際に、コンパイルは正常にできるのですが、 ldを 使用したリンクが正常に行われません。
そして、以下のようなエラーが 出力されます。

 c:/gccsh/bin/ld.exe: cannot open dukaudio.o: Interrupted system call

A)
開発環境のconfig.sys中の files = を増やしてやることで解決します。
上記のエラーは、ファイルハンドルが不足してファイルがオープンできない際に 出力されるようです。


長時間ムービー再生時に必要なバッファサイズはどのくらいですか。

Q)
洋画を使用した英語教育ソフトにおいて45分のムービーを再生しようとした ところバッファのサイズを 550Kbyte まで増やさないとちゃんと再生 できませんでした。
他のムービーはサンプルの480Kbyteで問題なく再生できるが 何故こういう事になるのか?

A)
TrueMotionではインデックス情報として1フレームごとに8バイトのデータ 領域が必要になります。
よって短いムービーの場合は、フレームレートを15fps として3分程度のデモなら必要なメモリサイズは約21Kほどですが、これが 45分にもなるとその15倍の約315Kもこのインデックス情報として必要 になります。よって必要なバッファサイズも大きくなります。


指定フレーム再生時にエラーが発生して再生できません。

Q)
指定フレームから開始したいが HFB_GetStreamingData()でエラー値の-4が 返ってきて全く再生ができない。何故エラーが返ってくるのか?

A)
エラー値が返ってくるのは関数の呼び方に問題があります。下記のように変更 すればちゃんと再生することができるはずです。

(変更前)
bg.index = HFB_GetStreamingData(xVideoStream,(void **)&bg.data, ¥ &bg.length, DUK_FORWARD, 1);

(変更後)
bg.index = HFB_GetStreamingData(xVideoStream,(void **)&bg.data, ¥ &bg.length, DUK_ABSOLUTE, 0);

サンプルの「0x25a004a1 = 0x00」は何をしているのか?

Q)
「duckAudioInitHW()」関数内で以下の記述があるが

 *(volatile char *)0x25a004a1 = 0x00;

これは何をやっているのか?

A)
ハンドシェイクOFFをしています。これをやらないとサウンドが鳴りません。
詳しくは

参照
『サウンドドライバプログラマーズガイド /3.サウンドコントロールコマンド

等を参照してください。


バッファサイズとデータレートの関係は?

Q)
バッファの確保状態によって実現できるデータレートはどう変わりますか?

A)
基本的には2倍速CDの転送制限の300K イトを目安にしてPremireなどの ムービー分析でピークの状態を調べながらバッファを調節するしか ありませんので一概には何とも言えません。
ただ300Kオーバーのピークが 長く続くような素材はどれだけバッファを確保しても再生は不可能です。


データ転送方式は?

Q)
データ転送方式は何を使用していますか?

A)
IntERFrame圧縮でHighRAMにフレームバッファをとった場合は SCU-DMAなども 使用できますがLowRAM にとった場合は必ずCPUで転送しています。
ライブラリ側でデータ転送方式を固定したりはしていませんので アプリケーション側で自由に設定ができます。


スプライト表示でエッジに白いノイズがでる

Q)
ウィンドウズのPremire上ではノイズは出ないのにセガサターンで再生すると 黒バックのエッジ部分に白いノイズが出てしまいます。
ムービーは、 16bit Colorでスプライト面に表示していますが、ノイズが表示されている プレーンはまだ特定できていません。

A)
スプライト面のRGB=0部分が透明になってBGのカラーが出ているのが原因 で、スプライトのキャラクターデータで8000Hが書き込まれると透明色に なってしまうのはセガサターンのハード上の仕様です。

現在 TrueMotion のエンコーダーではこれに対応していませんので、回避策と しては、ムービーを圧縮する時に、「Brightness」のパラメータを3%ほど 上げていただいて8000Hのデータを8001Hにしてみてください。


ループ再生モードで音声にノイズがのる

Q)
HFB_SetBufferMode 関数で HFBMODE_FORWARDLOOP を使用して ループ再生を行ったところ10分後に音声再生にノイズが入るように なってしまった。
ムービーはSIMM上においており、最初の10回は 正常ループ再生しているのを確認しています。

A)
オーディオとビデオのレートの違いやバッファリングの問題でこのモードは おすすめできません。
ただし、オーディオは内蔵音源で鳴らして、ビデオ のみをループさせる場合などは問題なく使用できるはずです。


キャプチャー環境について

Q)
日本コロムビアから販売されている DUCK 社製のキャプチャーシステムですが VGAカードとサウンドカードにそれぞれ、MACH64/4MとSB16が 指定されていますが、これらのカードは現在すでにかなり品薄の状態だと思い ます。これでなければだめという場合は仕方ありませんが、あれば使用可能な これらのカードをお教えください。

A)
残念ながらVGAカードは DUCK社のキャプチャーボードではATI社 のMACH64でしか確認が取れておりません。VRAMは2Mでもかまいません。


Ver 3.5.1 のSGLサンプルの仕様は?

Q)
TrueMotion についているサンプルが、SGL3.0になってからのコード 作成の規約(cinit.cを使用する)に沿っていないので、そのあたりの対応は どのようになっているのでしょうか?
再生処理についても、Ver3.2とVer3.51では再生方法が異なっていました。 これはどういう理由なのでしょうか。

A)
サンプルプログラムの内容の変遷について説明いたしますと、まず「Ver3.2」 までの SGL のサンプルは「SGL1.31」を元に作成されました。
新規提供の 「Ver3.5.1」では「SGL2.10」に対応したサンプルになっており、スレーブ 処理をSGLが直接コントロールする形に修正されるなどの変更が加えられて います。よって「Ver3.5.1」のサンプルは「SGL3.0」でも問題なく動作いたし ますが、"cinit.c"への対応はまだされておりません。


Win95のTrueMotionのドライバがDK4Bit、DK3Bitを認識しない。

Q)
Win95 環境に TrueMotion のドライバをインストールしたんですが オーディオの圧縮ドライバとして DK4BIT, DK3BIT が認識されません。

A)
Ver 3.0〜3.5.1 までの TrueMotion のオーディオ圧縮用ドライバは 32ビット対応になっておりません。オーディオ圧縮に使用する 編集ツールは16ビットのアプリケーション、Premireなら Ver 4.0 を お使いください。


戻る進む
FAQMovie関連
Copyright SEGA ENTERPRISES, LTD,. 1997