ビデオ画像の圧縮


私は、カノープス社製のRIVA128チップ搭載ビデオカードを使っているのですが、このたび('98/5)、AGP版が発売されるのに合わせて従来PCIタイプ用のドライバもアップデートされました。そしてなんと今回のアップデートでは、ビデオ編集ソフトが付けられるようになりました。しかも、そのソフトで、ビデオ形式を任意の物に変更して保存できるようになったのです。
これは画期的なことです。駒落ちの発生しにくい無圧縮のCanopus UYVYで取り込みを行い、適宜編集した上で、適切なCordecで圧縮して保存することが出来るのです。
こんな時、同じRIVA128としては、ちょっと高めのカードかもしれないけど、Canopus製を選択したのは間違ってはいなかったと痛感するのであります。
が、ここで、新しい疑問に出くわしました。

適切なCodec??

ってなに???という疑問です。

カノープス社によると「コーデック:動画を圧縮または伸張するために使用するソフトウェアです。 Windows にはIndeo やCinepak など、あらかじめいくつかの種類(フォーマット)のコーデックが組み込まれています。 本ソフトウェアでは[名前を付けて保存(A)...]のオプションで選択することができます。」ということです。

それで、私の環境では何があるかを調べると次の表の9種類が有ることが判りました。(が、それぞれのCordecがいつから有るかなどは判りません。)また、我が家のもう一台のAT互換機には、Canopus系の2つがなく、別に「ARBC AVI compression driver[ARBC]」という物がありました。
ここで一つの問題がはっきりしました。

Cordecにはいくつもの種類があり、いつ誰(どのソフト)によってインストールされたか判らない。

ということです。というわけで、Cordecの実験をしました。


次に、各Cordecの性能を表にまとめる。
実験に使用した環境は、GIGABYTE製GA586HX、クラッシックペンティアム200、EDOメモリ192メガ、AHA2940AU、Seagate製ウルトラSCSIHDD(ST52160N)、Windows95 4.00.950 B(OSR2)。
それぞれの圧縮のパラメーターはデフォルト値を使用。

Codecs

元のサイズ
(バイト)

生成サイズ
(バイト)

圧縮率

所要時間(min)

効率[1/(圧縮率×時間)]

画質
Canopus Motion JPEG  

26918400

16.41%

3

2.03

Cinepak  

30651392

18.68%

42

0.13

DirectVideo [DRAW]            
Indeo R32 Intel  

13296128

8.10%

3

4.11

×
Indeo IR41 Intel  

18692096

11.39%

40

0.22

Indeo RAW Intel  

96574464

58.86%

3

0.57

Canopus UYVY

164071880
(34秒)

         
RLE            
MS Video 1 (MS-CRAM)  

30956544

18.87%

3

1.77


(Canopus UYVYは取り込みに使用した無圧縮の画像形式、DirectVideo [DRAW]とRLEは圧縮保存できない形式である模様)

表から判るとうり、圧倒的にCanopus Motion JPEGが、所要時間、圧縮率画、質ともいい。
しかし、重大な問題がある。

Canopus Motion JPEG形式は、他では表示できない?

次に、もう一台のPCでの再生状況をまとめる。
このPCは、P5-133、コナーのちょっと遅いEIDEのHDD、AHA2940AU、EDOメモリ48メガ、Windows95 4.00.950(初期タイプ95)
CPUパワーが有り余ってはいない事に加え、MOからの再生ではMOの読み込み速度が、HDDからではIDEがCPUパワーを使うところがネックになると思われる。

Codecs

2倍拡大図

MOからの再生

HDDからの再生

総合印象
Canopus Motion JPEG

×

×
表示出来るなら、
最も早く美しく仕上がる。
動きのはやい部分の処理がやや雑。
Cinepak

画像がたまに飛ぶ

処理に時間がかかる。
美しい。
画像は渋め。
Indeo R32 Intel

正しい画像ではない。
Indeo IR41 Intel

画像がごくたまに飛ぶ

処理に時間がかかる。
最も美しい。
画像は華やかめ。
ファイルサイズ一番小さい。
Indeo RAW Intel

画像全く追いつかない
音声まれに途切れる
コマ送り以下 処理がはやい。
あまり圧縮されない。
画像にノイズがのる。
ロースペックでは再生しづらい。
MS Video 1 (MS-CRAM)

画像がたまに飛ぶ
画像がたまに飛ぶ 処理がはやい。
ブロックノイズが気になる。

結果言えることは、

絵の表示できないIndeo R32 Intelは問題外。

Indeo RAW Intelは、圧縮率が低い上、ロースペックでは表示できない、絵も美しくない、これを採用する理由が何一つ見つからず、やはり問題外。

MS Video 1 (MS-CRAM)は、ブロックノイズが気になるという大きな欠点がある物の、処理が早くそこそこ圧縮されるというメリットがある。

Indeo IR41 IntelとCinepakは共に、画像も美しくロースペック環境でもきちんと表示できるが、圧縮にとてつもない時間がかかるという欠点がある。(たった34秒のビデオに40分以上!)
両者を比べると若干圧縮率の点で、Indeo IR41 Intelに分がある。
画像は、この絵では私はIndeo IR41 Intelの方が好ましく感じたが、人やソースによって変わりうる範囲内である。

Canopus Motion JPEGは、画質、圧縮にかかる時間とも申し分ないが、カノープスのカード(ドライバ)がない環境では表示できない。


ということで、Webに載せたり、知人にCDに焼いてあげたりするなら、Indeo IR41 IntelかCinepakに変換するが無難な線ということに成るのですが、それとて本当に先方の環境にあるかどうか判らないし、たかだか34秒のファイルの処理に40分もかかる様じゃ軽い気持ちでつくれない
なかなか厳しいですね。

「Canopus Motion JPEG」は、いわゆるMPEG1と同じファイルを生成してくれると思っていたのですが、違う形式だったことが残念です。(P5-133のPCには、ソフトウエアMPEGをインストールしてあり、雑誌やWebで手に入れたMPEGファイルは再生できている事から、そう判断しました。)

とりあえず、カノープスさんへ「Canopus Motion JPEG」のCordecを配布する手だてはないかを聞いてみたいと思います。サポートも忙しいでしょうから、返事が来るかどうかは判りませんが、もしありましたら、再度結果をリポートいたします。


Canopus からの回答

「Canopus Motion JPEG」の再生用Cordecを配布しているとの御回答を得ました。
Canopus社再生用ドライバは再配布も可能ということです。
これで安心して、もっとも性能のよい圧縮法が使えます。

また、CanopusのサポートへFAXで問い合わせをしたのですが、その日のうちにE-mailで御回答を得たことを付け加えておきます。(E-mailでの問い合わせが出来ない点がちょっと不自由ですが、あんまりお手軽に質問が出来るとサポートがパンクしちゃうかもしれませんものね。^_^)


Intel 新Cordec と Apple QuickTime

また、インテルからも新しいコーデックが出たことを知りましたので、それについても同様の実験をしました。以下に結果をまとめます。

今回はテレビを録画した画像をソースとして実験しました。テレビ画面は、場面の切り替えが激しく画像自体もカラフルで変化も大きいことから前回とは違った傾向を生む可能性があると考えたからです。

Codecs

元のサイズ
(バイト)

生成サイズ
(バイト)

圧縮率

所要時間(min)

効率[1/(圧縮率×時間)]

2倍拡大図
Canopus Motion JPEG

 792841624
(2分46秒)

156937216

19.79%

14

0.36

Intel Indeo 5.06

 同上

99406336

12.54%

68

0.12

前回最も成績のよかったCanopusMotionJPEGと比べたのが上の表です。前回、鑑賞に堪えうる圧縮を提供するコーデックとしては圧倒的に効率のよかったCanopusMotionJPEGの効率が著しく落ちています。これは、1枚の画像の中にいろいろな色がちりばめられている絵の圧縮率はそれほど高くないJPEG故の結果だと思われます。
CanopusMotionJPEGもIndeo5も、インターネット等に提供されているドライバをインストールしないと利用できない点、画像の劣化はほとんど人の目には判らない程度である点とも同等と判断しました。
その上で、ちょっと時間はかかるけどファイルをより小さくするIndeo5を採るか、あるいはその逆のCanopusMotionJPEGを採るかと言うことになります。
数字だけ並んでいるとピンと来ないかも知れませんが、今回のファイルサイズは、元データが約800メガ、圧縮後でも100メガ程有ります。(ブラックビスケッツの歌うTiming1曲分のデータでです!)
そう考えると、ちょっと時間がかかってもファイルが小さい方がいいかなと思います。

この作業中に面白い現象に出くわしました。active movieで未圧縮データーを再生する場合に限り、30秒を過ぎた途端に画像がコマ送りになるのです。しかし、CanopusのVideoChangerでは、同じファイルを再生しても、最後まで正常に表示されます。800メガのファイルをオンメモリーで処理する事は総メモリ192メガのPCでは通常不可能ですから、どちらもデータを読み込みながら再生しているはずです。その場合、理論上4664 KB/秒の転送速度が必要ですが、ウルトラSCSIのHDDがそれを稼げないとは考えにくいです。どうしてなんでしょうね?→MS
ところでMSにFAXで質問したら回答来るのかな?来ないのかな?やっぱり、、、?。

また、AppleからもQuickTime3がリリースされました。(インストールしたら、Indeo4.1が4.3にアップデートされました。)QuickTime3でも簡単な編集作業とコーデックの変換ができます。
それで大いに期待したのですが、カノープス形式の無圧縮ファイルを読むことが出来ません。そのため、いったんIndeo4.3かCinepakに変換した後、QuickTime形式に変換して作業をすることになります。Indeo5形式も読み込めませんでした。何度も圧縮(保存)形式を変換することには抵抗があるので、QuickTimeでつくることのできる効果(スーパーインポーズとか)を使いたいときに限って利用することになるでしょう。QuickTimeは多機能なようですが、マニュアルもヘルプも無いのでうまく使うことが出来ず困ってます。
マニュアルを電子配信して下さい。→Apple


mainへ戻る

壊し方と直し方へ戻る


補足

system.iniに

[vcache]
minfilecache=512
maxfilecache=20480

という項目を追加しておかないと、キャプチャする際にwindows自身が、メモリをキャッシュとして使い果たしてしまいます。しかも一度使ったメモリーを解放してくれないので、その後メモリーをたくさん要求する作業をする際に不都合が起きる可能性があります。
私は、maxfilecache=20480 としていますが、これは 4096 位でも十分だと思います。