LCL(旧LRC)
LCLのダウンロード
- LCLはフリーウェアです。転載も自由に行ってかまいません。
- パソコンでノンリニア編集をされている方は是非お試し下さい。
最新バージョン2.2.3(LCL223.ZIP 76KB)のダウンロード
G400の新ドライバーでYUV出力すると正常に表示できないのを修正。
バージョン2.2.2(LCL222.ZIP 76KB)のダウンロード
ALPHA-CPU版 (LCL120A.LZH 81KB)のダウンロード
適当なフォルダに解凍し、readme_jp.txtを参考にインストールして下さい。
LCL Ver2.2.0からの新機能
- 今回からPNGフイルタを実装しました(AVIZLIBのみ)。このフィルタは、PNGフォーマットと同じフィルタ処理を行い、画像データをZLIBで圧縮し易いフォーマットに変換します。また、可逆フィルタなので画質が劣化することもありません。ただし、ベタ塗りアニメのような画像にはかえって逆効果となります。扱う画像によって使い分けてください。
- PNGフィルタの効果
- ビデオキャプチャーした画像を素材にし、PNGフィルタ有無による圧縮率の違いを見てみましょう。
- 使用素材 地上波TVアニメ(640x480/24Bit/無圧縮/90秒/1940MB)
-
| フォーマット |
フィルタ無し |
フィルタ有り |
| RGB |
1470MB(76%) |
1076MB(55%) |
| 422 |
946MB(49%) |
690MB(36%) |
| 420 |
746MB(38%) |
571MB(29%) |
注)素材はMJPEGでキャプチャーしているので元画像のフォーマットは422です。
LCLって何?
- LCLとはvfw(Video for Windows)用のLoss-Less Codec Library(可逆圧縮ドライバー)です。Loss-Less
Codec Libraryの頭文字をとってLCLと呼んでいます。
LCLの開発背景
- 最近のアニメーション制作現場は急速にデジタル化が進んでおり、フルデジタルで制作されるケースもめずらしくありません。通常はアニモやレタス等のアニメーション専用のソフトでデジタル彩色し通常の撮影にあたるレンダリング出力を一コマづつデジタルレコーダーに記録し編集されます。しかし、これらのデジタル機材は非常に高価なものです。安価な編集システムを構築するには、パソコンを利用したノンリニア編集がうってつけではありますが業務用に耐えうる画質をもたせるにはやはり高価な機材を必要とします。最近はDVフォーマットを採用したものが登場していますが、DVフォーマットではデジタル彩色されたCGや3DCGでは画質の劣化が顕著にでてしまい業務用としては使えません。もちろん無圧縮で編集という手もありますが、この場合は必要とするHDDの容量やスピードの点で問題があります。そこで、画像の圧縮に可逆圧縮を使用すれば画質の劣化がまったくなく、HDDの必要容量も無圧縮より少なくて済むと言うことになります。ところが、探してみるとvfw用の可逆圧縮なコーデックがないんです(私の探しかたがわるかったのかもしれませんが)。そこで、と
りあえず自分で作ってみるかってな感じで作り始めたのがLCLです。
LCLの動作環境
- 現在公開中のコーデックはWindows95/98/NT対応です。
LCLの圧縮アルゴリズム
- 現在LCLには二種類のコーデックが用意されています。
- 1.AVImszh
- LZ77(注1)をベースに伸長速度に重点を置いて作成しました。基本的にデジタル彩色されたCGアニメーション用なのでそれ以外の素材では圧縮効率は低いです。
- 2.AVIzlib
- 可逆圧縮ライブラリにLZ77をベースにしたzlib(注2)を採用しています。PNGファイルやZip等に使用されている圧縮ライブラリで、汎用の物としてはもっとも圧縮率の高い可逆圧縮ライブラリの一つです。ただし、圧縮率は高いものの展開速度はさほど早くないです。どうせフルフレーム展開出来ないならとことん圧縮した方がいいかなと思ってYUVフォーマットへの変換機能も搭載してあります。通常はこのコーデックを使用する機会がもっとも多いでしょう。
-
- 圧縮率と平均展開速度の例
テスト用素材
テストマシン |
LightWave3Dで作成した3DCGのAVIムービー
PentiumPro200MHz+96MB |
| コーデック |
サイズ |
圧縮率 |
平均展開速度 |
| 無圧縮 |
340MB |
1/1 |
−−−−− |
| MotionSZH |
177MB |
1/1.9 |
30ms |
| AVIzlib |
107MB |
1/3.18 |
220ms |
| DVSoft |
未測定 |
1/8.6固定(RGB換算) |
未測定 |
| MPEG2(9.6M) |
未測定 |
1/26固定 |
未測定 |
- 注1)
- LZ77は、1977年にAbraham Lempel氏とJacob Ziv 氏が発表した圧縮アルゴリズムで、LHAやZIPのベースとなっている。
- 注2)
- zlibは、zip,gzipの圧縮アルゴリズムをライブラリ化したものです。作者は、zip,gzipを作ったJean-loup
GaillyとMark Adlertの両氏です。このライブラリはフリーソフトで、下記のホームページで公開されています。
zlib Home Page http://www.cdrom.com/pub/infozip/zlib/
YUVフォーマットについて
- LCL Ver1.10では次のYUVフォーマットに対応しています。
-
- YUV 1:1:1
- このフォーマットはRGB(24ビット)からYUV(24ビット)に単純に変換されたものなのでRGBの元画像に対して画質の劣化はありません。また、画像の質によってはRGBよりも圧縮率が高くなります。
- YUV 4:2:2(2:1:1)
- このフォーマットはYUVに変換された水平2画素分のY情報に対して、水平2画素分の平均されたUV情報をパックしますので色情報が少し劣化しますが、MJPEG等で使用されています。4:2:2と2:1:1の違いはフォーマット上のYUV配置の違いだけで、画質に差はありません。
- YUV 4:1:1
- このフォーマットは水平4画素のY情報に対して、水平4画素分の平均されたUV情報をパックしたもので、色情報の劣化は結構深刻です。コンピューター上のRGBプログレッシブ表示では、いくら人の目が色に鈍感でも、違いがはっきりわかります。DVや1万前後の安価なビデオキャプチャーボードで使用されているようです。一般的には、NTSCで出力するか352X240のサイズにリサイズする事を前提とした用途に限定されると思います。
- YUV 4:2:0
- 4:1:1フォーマットが水平4画素分の色情報をパックするのに対して、水平2画素、垂直2画素の計4画素に対してバックしてます。MPEGでよく使用されているフォーマットです。
各YUVフォーマットによる画像サンプル(4倍に拡大)
| YUV 1:1:1 |
YUV 4:2:2(2:1:1) |
 |
 |
| YUV 4:1:1 |
YUV 4:2:0 |
 |
 |
各画像フォーマットでの圧縮率(元画像 720X480X24 30フレーム 31,104KB)
|
実写画像 |
CG画像 |
| RGB |
20,878KB |
67% |
12,447KB |
40% |
| YUV 1:1:1 |
16,951KB |
54% |
10,719KB |
34% |
| YUV 4:2:2 |
13,496KB |
43% |
8,464KB |
27% |
| YUV 2:1:1 |
14,042KB |
45% |
8,043KB |
26% |
| YUV 4:1:1 |
11,317KB |
36% |
7,253KB |
23% |
| YUV 4:2:0 |
11,365KB |
37% |
7,494KB |
24% |
LCL Ver2.0.0からの新機能
-
- 1.マルチスレッドモード
- 1フレームを2分割し、2つのスレッドで圧縮展開と色空間の変換を行います。これによりマルチCPUを搭載したNTマシンでより高速な処理が可能になります。
-
- 2.YUV出力
- RGBフォーマット以外に、UYVY及びYUY2フォーマットで出力できます。これにより、YUVオーバーレイ表示モードに対応したビデオカードとプレイヤーで、高速高品質な再生が可能となります。 注)YUVフォーマットで圧縮した場合。
マルチスレッド及びYUV出力の効果を以下の条件で測定しました。
| CPU |
Celeron300A(450MHz) x 2 |
| OS |
WindowsNT4.0(SP5) |
| VGA |
Matrox G400 (PowerDesk Ver4.34) |
| 編集ソフト |
VideoMaid Ver1.7b |
| 再生ソフト |
メディアプレイヤー2 Ver6.4 |
| 素材 |
アニメのOP(640x480/29.97fps/ 90秒) |
| 使用コーデック |
avizlib.dll(Ver2.0.0) |
●測定1 VideoMaidの再圧縮時間
| フォーマット |
シングルスレッド |
マルチスレッド |
| RGB24ビット |
19分54秒 |
13分35秒 |
| YUV 4:2:2 |
15分57秒 |
10分59秒 |
●測定2 メディアプレイヤー2の平均フレームレート
| フォーマット |
シングルスレッド |
マルチスレッド |
| (RGB出力) |
(YUV出力) |
(RGB出力) |
(YUV出力) |
| RGB24ビット |
15.76fps |
--- |
24.85fps |
--- |
| YUV 4:2:2 |
13.29fps |
21.13fps |
21.54fps |
29.89fps |
ALPHAプロセッサ版 (Ver1.2.0)
- 梅田宏明さんのご協力により、ALPHAプロセッサ用のネイティプコード版を作ることが出来ました。ただし、自分では動作確認が出来ないので、実験公開することにしました。ALPHAプロセッサをご利用の方は是非動作確認にご協力下さい。梅田さんのご報告では、FX!32
によるエミュレーションに比べ、5〜6倍のスピードアップがなされたそうです。
LCLの名称変更について
- 今までLRCと言う名称で皆様にご利用頂いておりましたが、この度LCLと名称変更させて頂くことにしました。そもそもLRCの名前の由来はLoss
Ress Codecの頭文字をとったものでしたが、正しい英語ではRessではなくLessです。まぁ、単純なスペルミスな訳で、まことに持ってお恥ずかしい限りです。自分的にはまぁいいかってな感じでほっといたんですが、最近これを指摘される方が増えてきたのでいつまでもほっとくわけにはいかないなと思い、思い切って変更することにしました。ホームページ上の表記は一応変更しましたが、公開中のファイルはLRCのままです。こちらは次回のバージョンアップ時に変更したいと思います。なを、このページのファイル名(LRC.htm)は直リンクを張られている方が多いのでそのままにしようと思います。