DVD 再生のための PC の構築

1999 年 5 月 29 日
1999 年 7 月 28 日追加

概要

PC を使った DVD-ROM のソフトウエア再生環境の構築の経験について述べる. CPU の処理能力を最新に高めるよりも,MPEG-2 対応ビデオカードが 効果的であることが分かった.

1. 目的

「ムトゥ踊るマハラジャ」DVD-Video 再生環境を整える.

2. 方法

DVD-Video には大きくいって三種類の再生方法がある.
  1. S-Video 出力からテレビに接続する再生専用機を買う.
  2. PC を使い DVD-ROM 装置とハードウエアデコーダを用いる.
  3. PC を使い DVD-ROM 装置とソフトウエアデコーダを用いる.
第一の再生専用機は,各社の普及価格帯機だと予算は五万円程度である. 東芝から実売四万円のものが出ている. 良い点は,セッティングが容易であること. 悪い点は,
  1. 720x480 ドットの MPEG-2 動画を NTSC のインターレース画面に 変換するため,本来の画質が得られないこと.
  2. 掛かるメディアが限られること.DVD-Video,CD-Video,音楽 CD は掛かるが, DVD-ROM,CD-ROM,CD-R はおろか Photo-CD も再生できない.

第二のハードウエアデコーダは,PC の PCI スロットに挿すデコーダカードを 用いるもの.

  1. Windows 95/98/NT の PC があれば DVD キットは三万円くらいですむ.
  2. ビデオカードの出力を一旦デコーダカードに入力して PC 画面と動画再生画面の合成を アナログ的に行う.この取り回しのため画質が悪くなる傾向がある.

第三のソフトウエアデコーダは,CPU でデコードを行うもので,

  1. 最新の PentiumII クラスの CPU パワーを要求する.
  2. 処理能力が足りないと,コマ落ち,音切れが発生する.
  3. 条件を満たす PC があれば,DVD-ROM ドライブとソフトで二万円程度ですむ.
今回は,画質を最優先しコンピュータで再生することを考えた. 家で使っている PowerMac 8600/250 で再生環境を作りたかったのだが, 残念ながら, '99 年 5 月現在 Mac 用のソフトウエアデコーダは存在せず,後付けのハードウエアデコーダも 入手困難である. そこで,弟のセコンド PC を了解を得て改造して DVD-Video マシンとすることにした. このマシンは AT ケース,PentiumPRO-200,メモリ 96MBytes つきの Windows98 マシンであり, Web 閲覧用として十分な性能を持っている. これにハードウエアデコーダを装着すればそれで終わりなのだが, 今回はあえてソフトウエアデコードに挑戦することにした. その理由は,
  1. 各社のデスクトップ PC '99 年夏モデルはほとんど 400MHz 以上の CPU を装備しており, 今後はソフトウエアデコードが主流になると考えられる. CPU が速ければ他の仕事にも役立つかも知れないが,デコーダボードは DVD-Video を見るときしか 役に立たない.
  2. DFI のマザーボード BIOS が NTSL y2k compliant でないことから, 2000年問題に万全を期するためには,今年中のマザーボード交換も全く無意味ではない. BIOS の日付けは '97 年 7 月であり,Phoenix BIOS の判断基準からいえば大丈夫そうだが, 認定は受けていない.
ソフトウエアデコーダは MMX 命令を使用するため PentiumPRO では使えない. 既存の PC の流用できるところ,匡体,SB16 ISA サウンドカード,HDD,スピーカは使って, スムーズな再生ができるまで段階的な強化を図ることにした.

3. 第一段階 マザーボード交換

マザーボードは,ASUSTeK の Socket7 ボード P5A-B を新調した. オンボードキャッシュが以前の 512k から 1MBytes に増やされており,価格は 11,800 円だった. これに手持ちの Intel MMX200 CPU, S3 ViRGE GX/2 4MB AGP ビデオカード, PC66 SDRAM 32MBytes を挿してみた. ViRGE GX/2 は,かろうじて AGP とはいえ 2D/3D とも遅い方で,MPEG1 再生支援機能付きだが, MPEG2 再生で効果があるのかは不明. 少なくとも CineMaster98 の対応表には載っていないし,動き補償機能や, 離散コサイン変換支援機能はない.

DVD-ROM はパイオニアのドライブで,Software CineMaster98 が付属していた. マザーボード交換ということで,取りあえず Windows98 を上書きインストールする.

CineMaster98 の画質は3段階に調節できる. この状態では,最低の Basic Quality でも毎秒数コマしか再生できなかった. マニュアルには,設定画面で DVD-ROM のバスマスタ転送をオンにせよと書いてあるが, そうしたとたん,DVD-ROM ドライブを認識しなくなった. Windows98 標準のドライバをいろいろいじってみたがだめで, 結局 ASUSTeK の Web の FAQ に載っていることが判明. UDMA IDE ドライバをダウンロードして組み込んで再認識することができた.

これによって Basic Quality ではコマ落ち無しに再生できるようになった. 「PII-233 以上指定だが,MMX200 でも内容の確認はできる」. 解像度は荒く,動き補償もいいかげんのようで,シャープな画面がだんだんぼけてきて また急にシャープになる,ということをくり返している. 観賞用には,少なくとも中間の PC Quality は欲しい. このモードにすると,かなりコマ落ちし,66x3=200MHz から 83x2.5=208MHz に バスオーバークロックしても,解決できなかった. CPU 負荷が 100% 動画処理にくわれているためか,

  1. 字幕が消える.
  2. 再生時間表示は本来毎秒更新されるはずのところ,数秒ずつ飛ぶ.
  3. キーボードショートカットやメニュー表示の反応が極めて鈍い.
などの支障がおこった.

4. 第二段階 CPU と メモリ交換

Socket7 M/B を選んだのは,DVD-Video ではメモリバンド幅を相当消費すると 考えられるので,安く 100MHz FSB を実現するためである. 実は,同 FSB での主記憶アクセスは,バスプロトコルの異なる Intel PentiumII/Celeron CPU の方が三割近く早く, Celeron を FSB 83MHz でまわしたときと K6-2 100MHz でほぼ同じである. また,同様に重要な浮動小数点能力は,同クロックの Intel CPU の七割しかない. 最近のソフトウエアデコーダは SSE にも対応しているから, 性能最優先なら PIII が一番良い. PII でも SSE 以外のメモリアクセスや FPU,MMX 命令 は PII と同等である.

しかし,Slot1 M/B の P2B-B は 18k円位するから,一番安い PII-350 21k円と 組み合わせても40K円になる. VIA のチップセットを使った P2V-B だと 5K円安くなるが, メモリアクセス性能は440BX チップセットに劣るらしい. 一方,K6-2 450 と P5A-B の組み合わせなら合計 27k 円ですみ, クロックが高い分 FPU 能力の差は縮まる. Software CineMaster98 は 3D Now! にも対応しているので, それによる性能アップを 10% と見積もると, 浮動小数点能力は PII-350 とコンパラになる.

メモリアクセスの方は Celeron より速いということで妥協するしかない. 二次キャッシュが PII-350 が 175MHz 512kBytes に対し,100MHz 1MBytes と 速度は遅いものの容量が二倍になるところに期待した. 一次キャッシュは PII/Celeron の二倍の 64KBytes 持っている. メモリは PC100 CL2 SDRAM 128MBytes を購入した.11k円なり. また,DirectX のバージョンが 4 だったので,3D Now! に対応した 最新版 6.1 をダウンロードして入れ替えた.

結果として,K6-2 450 での映画ソフト再生は, Full Quality かつコマ落ち無しで可能になった. 画面モードは 800x600 で,16ビットモードでも,24ビットモードでも CPU の負荷はかわらないようだ. CPU の負荷は,場面によって変動し,細かいものがたくさん動く場面で高くなる. CPU 負荷は一秒平均で 80% 台を推移しているようだ. この状態では,字幕も問題なく, CineMaste98 のメニュー操作も, デスクトップを操作したり, コントロールパネルを起動したりの操作も問題なく行える. 1024x768 モードにして全画面に拡大すると,処理が増大してコマ落ちが発生した.

5. 第三段階 PCI サウンドカードに交換

映画ソフトは毎秒 24 コマだが,ビデオソフトは 30 コマのため単純に 考えて 25% 負荷が高くなる. ソフトデコーダの CPU 対応表を見ても,ビデオソフトの方が要求 CPU 性能が高い. そこで映画ソフトを CPU 負荷 80% 以下で押さえることを目標に, チューニングを開始した.

サウンドカードを ISA バスの SoundBlaster16 から同じ Creative の ENSONIQ AudioPCI64AWE PCI カードに取り替えた. SB16 基盤にはコンデンサなどの素子が林立しているのに, ENSONIQ はコネクタ類の他には1チップしかないこれ以上はない簡素さ. 3,500円. 世の中,レガシーデバイスとかいって ISA バスカードは嫌われているが, どの程度影響があるのか僕自身が確かめるのは初めて. 結果,驚いたことに,CPU の利用率は平均 70% 台と 10% 前後も低下した. これで,DVD-Video 再生においてはバスアクセスがボトルネックに なることがはっきりした. 動きのほとんどない状態での CPU 利用率は 60% を割る程度で, 半分程度が演算ではなく,データのロードストアに費やされていると考えられる.

これを確かめるため,CPU のクロック逓倍率を下げてみた. 300MHz まで下げると,CPU の利用率は平均 90% 程度にあがるが, なおスムーズに再生できた.

6. メモリチューニングと NTSC ビデオ画像

「ムトゥ」にはボーナストラックとして NTSC のビデオクリップが付属している. クロックを 450MHz に戻してこれを再生すると,確かに CPU 負荷率は 80% 前後になり 負荷が高いことが分かった. これまで BIOS 設定画面でのメモリアクセスは by SPD の自動設定に任せており, 3-2-2 になっていたが,CL2 として売られていたものなので手動で 2-2-2 に変更した. 動作に支障はなく,CPU 負荷率はさらに 5% 近く減少して,24 コマ画面で最低が 50% 強,平均 70%というところまでさがった. さらに,CPU 負荷率を 1/4 秒平均に変えて,瞬間的な高負荷をできるだけ 見るようにしたが,最高で 80% いくかいかないかだった. 試しに 2nd キャッシュを無効にしてみると,CPU 負荷率は平均 80% 台 前半まで上昇した. これより 1MBytes のオンボードキャッシュの効果は二割と見積もられる.

NTSC ビデオクリップでは, 2nd キャッシュ有効で平均が 80% 強, 最高が 96% であり,コマ落ちは発生しなかった.

7. 第四段階 ビデオカード交換

第三段階までで DVD-ROM 再生環境は実用になったが, 約二カ月後,MPEG-2 再生支援機能を持ったビデオカードを試してみた. '99 年夏時点で,動き補償と離散コサイン変換の両方の機能を持つ ビデオチップには ATI Rage128 と S3 Savage4 の二種類あるが, ATI のカードには DVD 再生ソフトが同梱されているので前者を積んだ ATI Expert128 というカードを選んだ. 同梱の再生ソフトを使った結果は驚くべきもので, NTSC ビデオ再生での CPU 利用率は,静止画面で 30%, 最高でも 50% にしかいかなかった. これは ViRGE GX/2 の約半分であり,かなりの演算がビデオチップに 移ったことを表している.

この ATI 自製のデコーダソフトは二つの点で Cinemaster98 より 優れている.

  1. NTSC ビデオ画面でのノンイターレース変換でのギザギザが 気にならないくらい少ないこと.
  2. Cinemaster98 でも AIT 3D RageII の動き補償機能はサポート しており Rage128 も再生可能だが,DCT on のときより CPU 利用率は 10% 程度高くなる.

8. 結論

DVD-Video の MPEG2 再生においては,画像によって負荷が上下するため, 一つのソフトのデータだけで最終結論は出せない. しかし,「ムトゥ」再生という目的のためには, AMD K6-2 450 と S3 ViRGE GX/2 で最高画質で再生できる. PentiumIII や K6-III などのハイエンド CPU は必要ないが, データ転送が多いため主記憶やバスに注意を払わなくてはならない.

掛かった予算は,直接 DVD-Video 再生に関わるもの二万円, PC の性能を引き上げるためのもの四万二千円の,合計六万円以上で, 再生専用機や,ハードウエアデコーダにくらべて高くついてしまった.

ATI のDVD 対応ビデオカードは,強力であり,CPU の負荷率を大きく下げる. K6-2 300 あるいはひょっとすると MMXPentium233 あたりでも 再生できるかも知れない. PC の処理能力を引き上げるよりも経済的である可能性がある.