BACK

■ vob,avi動画データ再生実験結果レポート ■


2001/01/13 作成
2001/01/14 追加


Y氏の協力で、vobファイルと、vobから変換したaviファイルを入手することができた。(Y氏に感謝。ありがとう〜)
それらのデータを用い、当方のPC環境における動画再生に関して、実験・考察を行ってみた。


PC環境:

CPU Celeron 700MHz (Cappermine,66MHz x 10.5)
+ MSI製Socket370→Slot1変換ボード (Cappermine対応版)
M/B MSi MS-6163 (Slot1,440BX ChipSet,FSB 66MHz)
MEMORY PC-100,CL2,384MByte (FSB 66MHzで使用)
VIDEO CARD Matrox G400 DH (16MByte版)
DVD-ROM DRIVE DVS DSR-600H (DMA on)

再生確認使用ツール : Windows Media Player 6.4
MPEG4 codec : Windows Media Player 7 添付のVersion
MPEG2 codec : Matrox DVD Player or WinDVD (どちらを利用してるのか不明)

再生データ:

avi : MPEG4V2 235KB/s + MP3 56kBit/s, 24000Hz,Stereo
296,543,232 byte / (20*60 + 28.61) sec = 約 241,365 byte/sec

vob :
105,320,448 byte / ( 1*60 + 35) sec = 約 1,108,636 byte/sec


avi, vob 共に、CD-Rに記録されてあるものを、HDDにコピーすることなく、DVD-ROMドライブ上から直接再生してみた。


再生結果:

vob → 滑らかに再生された。何ら不具合は見られない。

avi → カメラが固定したシーンでは特に不具合は感じられない。しかし、スクロールするシーンなどはかなりガクガクした動きになる。



さて。
avi(MPEG4V2形式)が滑らかに再生されない理由を考えてみる。


仮説その1:
DVD-ROMドライブの転送速度が足りていない。

計算上は、aviよりvobの方が、約4.6倍ほど転送量が大きい。(BitRateが高い)
仮に、DVD-ROMドライブ自体の転送量がネックになっているなら、aviより転送量が大きいvobが滑らかに再生されるはずがない。
それを思うと、aviが滑らかに再生されない原因は、転送量だとは考え難い。
よってこの仮説は成立しないと思われる。


仮説その2:
CPU処理速度が足りていない。

avi再生中、アクセサリ→システムツール→システムモニタでプロセッサ使用率を測定してみた。
通常、60%あたりをふらふらして、時たま80%あたりまでいく。最高値として表示されてる値は、87%。

これらの値から察するに、CPUパワーがネックになってるわけでもないような気がする。
もしネックになっているのであれば、100%になる瞬間が頻繁に見られるのではないか。
よって、この仮説も成立しない可能性が高い。

(もっとも、システムモニタというツールのアルゴリズム・精度の問題から、たまたま100%になってない瞬間のプロセッサ使用率を検出せざるを得なく、実際には頻繁に100%になる瞬間が多数見られる…そんな可能性も否定できないが。)



正直、これらの結果だけでは、なぜavi(MPEG4V2)再生時にガクガク再生されるのか、ハッキリとした理由をつけることができそうにない。
ここからは勝手な推測だが…

CPUパワーを限界まで使い切ってないということは、システム上、どこかで「何か」の「転送」が追いついておらず、それが理由で、滑らかな再生ができてない…
そんな気もする。

もしかすると、CPU ←→ MEMORY かもしれない。
vobの再生処理に必要なメモリ量、CPUとやり取りするデータ量は、avi(MPEG4V2)のそれに比べると少ないのではないか。
そのため、FSB66MHzの環境では、vobの再生に必要なデータ転送の帯域は確保できるが、avi(MPEG4V2)の再生に必要なデータ転送の帯域は確保できてない…
…ということはないだろうか。
FSBが異なる、同クロックのCPUを用いて再生実験することで、この仮説を検証することができるとは思うのだが、残念ながら当方にそのような実験環境は無く、あくまで推測の域を出ない…

あるいは、現在使用しているM/Bが、Cappermine-Celeronに対応してないことを証明する、単なる一例なのかもしれない。
現在使用しているM/Bは、起動時、Celeron 700MHzを、PenIII 700MHz (FSB 66MHz)と認識している。
以前Y氏からも、CeleronとPenIIIでは、M/BのBIOSレベルでの対応処理が違ってくる、という話を聞いたこともある。
この点については、CeleronとPenIIIの違いについて、より多くの情報を集めなければ、仮説を検証することは難しいだろう。


なんともすっきりしない結果になってしまった…
今後も引き続き調査する必要がありそうである。


(2001/01/14 追加)

その後、Y氏とのやり取りで、肝心な点を見逃していたことに気がついた。
ガクガク再生されているaviを、AviUtlで一コマずつ確認したところ、5フレームのうち1フレームは、他の1フレームと同じ画像が含まれていることが判明。

セルアニメは通常24fpsで制作されているが、ビデオ映像は30fps。
つまり、TVで放映する為、24fps→30fpsに変換すると、6フレーム分、同じフレーム画像を含む映像になる。
(実際にはインターレス表示の関係で、5フレーム毎に奇数・偶数ラインが入り混じったフレーム画像になる)
それらのインターレス動画データに対して、インターレス解除を行う際、その処理方法によっては、上記のような動画データになるわけで。
つまり…

結論:
aviは、実は問題無く再生されてた。
単に、再生に用いたaviが、元からガクガクしたデータだった。

ちゅどーん

全くもって、私がお間抜けさんだった。
こんな初歩的な事例を、完全に失念していた…

そんなわけで、最初から動画再生における不具合は存在しなかったわけであり、このレポートは、完全に、単なる勘違い・思い込みの文章の羅列へと、見事に変貌をとげたわけである。
なんとも素晴らしいオチがついてしまった。

…まあ、ちゃんと再生できてることがわかったわけだし。
それはそれで嬉しいことではあるなぁ… (T▽T)

BACK