umezawatakeshi / imck

iM@S MultiColor Keying

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

<html>
<!-- $Id$ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>iM@S MultiColor Keying 2.3.0 readme</title>
<style>
blockquote {
	border: solid 1px;
	padding: 1em;
	margin: 1em;
}
blockquote pre {
	margin: 0;
	padding: 0;
}
</style>
</head>
<body>
<h1>iM@S MultiColor Keying 2.3.0 readme</h1>
<hr>
<h2 id="copyright_notice">著作権表示</h2>
<h3>英語</h3>
<p>iM@S MultiColor Keying<br>Copyright &copy; 2008  UMEZAWA Takeshi</p>
<p>This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.</p>
<p>This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.</p>
<p>You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</p>
<h3>日本語</h3>
<p>iM@S MultiColor Keying<br>Copyright &copy; 2008  梅澤 威志</p>
<p>このプログラムはフリーソフトウェアです。あなたはこれを、フリーソフ
トウェア財団によって発行された GNU 一般公衆利用許諾契約書(バージョ
ン2か、希望によってはそれ以降のバージョンのうちどれか)の定める条件
の下で再頒布または改変することができます。</p>
<p>このプログラムは有用であることを願って頒布されますが、*全くの無保
証* です。商業可能性の保証や特定の目的への適合性は、言外に示された
ものも含め全く存在しません。詳しくはGNU 一般公衆利用許諾契約書をご
覧ください。</p>
<p>あなたはこのプログラムと共に、GNU 一般公衆利用許諾契約書の複製物を
一部受け取ったはずです。もし受け取っていなければ、フリーソフトウェ
ア財団まで請求してください(宛先は the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA)。</p>
<hr>
<h2 id="overview">概要</h2>
<p>iM@S MultiColor Keying は、「アイドルマスター ライブフォーユー!」のブルーバック機能を利用し、半透明のアルファチャネルを持ったダンスの映像を抽出(いわゆる「アルファ抜き」)する AviSynth プラグインです。AviSynth 2.5 での動作を確認しています。</p>
<p>なお、抜けるのはダンスだけです。コミュ等は原理上適用できないので、クロマキーや差分抜きでやってください。ダンス中のアピールも複数回録画して同じアングル・ポーズ・マークにすることは極めて難しいはずなので、抜くのは現実的ではないと思われます。</p>
<h2 id="environment">動作環境</h2>
<h3>必須環境</h3>
<dl>
<dt>OS</dt><dd>Windows XP 以降</dd>
<dt>CPU</dt><dd>SSE2 をサポートする i686 以降の CPU<br>(Intel だと Pentium 4 以降)</dd>
</dl>
<p>また、<a href="http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647">Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86)</a> が必要です。</p>
<h2>ところで…</h2>
<p>使われてるのか使われてないのかサッパリなので、使った動画のコメで使ってるよーと書いていただけると励みになります。まあ、使い所の少ないソフトウェアでありますが…</p>
<hr>
<h2>ImasMultiColorKeying2</h2>
<p>異なる 2 色バックを入力し、アルファチャネルを持ったキャラの映像を出力します。ImasMultiColorKeying と比べると、偽色や偽アルファはだいぶ減っていますが、エッジの抜き精度は若干下がっているようです(ただし、H.264 なり VP6 なりにエンコードするとエッジの精度の差はほとんど分からなくなります)。また、入力するクリップが少ないため、HDD アクセスが少なくなった結果として処理速度も向上しています。</p>
<blockquote><pre>LoadPlugin("imck.dll")

clip1 = AviSource("gray.avi", pixel_type = "RGB24")
clip2 = AviSource("green.avi", pixel_type = "RGB24")

ImasMultiColorKeying2(300, clip1, clip2, outtype = IMCK2_OUTTYPE_RGB32_RGBA)</pre></blockquote>
<ul>
<li>フィルタに渡す映像のフォーマットは RGB24 である必要があります。</li>
<li>異なる 2 色であればどんな組み合わせでも構いませんが、組み合わせによって抜きの精度が異なります。</li>
<li>手元でのテストによれば、入力にレッドバックを使うと、まばたきの抜き結果が若干おかしくなることが分かっています(たぶん気づきませんが)。他の組み合わせ(6通り)では問題ないようです。</li>
<li>最初の引数は、カラーバックの基準色を抽出するべきフレーム番号を指定します。指定したフレームの四隅のちょっと内側の色の平均を採用します。</li>
<li>4番目の引数 (outtype) は、出力タイプを指定します。出力タイプは以下の通りです。
	<table border>
	<cols><col align="left"><col align="center"><col align="center"><col align="center"><col align="center"></cols>
	<thead>
	<tr><th rowspan="2" align="center">指定値</th><th rowspan="2">出力フォーマット<br>(pixel_type)</th><th colspan="2">各チャンネルの中身</th></tr>
	<tr><th>RGBチャンネル</th><th>アルファチャンネル</th></tr>
	</thead>
	<tbody>
	<tr><th>IMCK2_OUTTYPE_RGB32_RGBA</th><td>RGB32</td><td>RGB値</td><td>アルファ値</td></tr>
	<tr><th>IMCK2_OUTTYPE_RGB32_ALPHAONLY</th><td>RGB32</td><td>白</td><td>アルファ値</td></tr>
	<tr><th>IMCK2_OUTTYPE_RGB24_RGBONLY</th><td>RGB24</td><td>RGB値</td><td>-</td></tr>
	<tr><th>IMCK2_OUTTYPE_RGB24_ALPHAONLY</th><td>RGB24</td><td>アルファ値</td><td>-</td></tr>
	</tbody>
	</table>
	指定しなかった場合のデフォルト値は IMCK2_OUTTYPE_RGB32_RGBA であり、これは以前のバージョンと同じ出力になります。</li>
<li>アルファ値を計算した後、RGB 値は clip1 から計算されます。たとえば、まばたきなどの状態は clip1 のものが使われます。</li>
</ul>
<h3>注意</h3>
<ul>
<li>入力のクリップの長さが異なっていた場合の結果は不明です。全部同じ長さにしてください。</li>
<li>入力のクリップのサイズが異なっていた場合の結果は不明です。全部同じ大きさにしてください。</li>
<li>入力のクリップのフォーマットが RGB24 でない場合はエラーになるはずです。</li>
</ul>
<hr>
<h2>ImasMultiColorKeying</h2>
<p>緑と赤を複数枚入力し、アルファチャネルを持ったキャラの映像を出力します。こちらは互換性のために残しているもので、新規に使う意義はないと思います。</p>
<blockquote><pre>LoadPlugin("imck.dll")

clip_r1 = AviSource("red1.avi", pixel_type = "RGB24").ConvertToRGB32()
clip_r2 = AviSource("red2.avi", pixel_type = "RGB24").ConvertToRGB32()
clip_r3 = AviSource("red3.avi", pixel_type = "RGB24").ConvertToRGB32()
clip_g1 = AviSource("green1.avi", pixel_type = "RGB24").ConvertToRGB32()
clip_g2 = AviSource("green2.avi", pixel_type = "RGB24").ConvertToRGB32()
clip_g3 = AviSource("green3.avi", pixel_type = "RGB24").ConvertToRGB32()

ImasMultiColorKeying(clip_r1, clip_r2, clip_r3, clip_g1, clip_g2, clip_g3)</pre></blockquote>
<ul>
<li>フィルタに渡す映像のフォーマットは RGB32 である必要があります。(RGB24を食ってRGB32を出力しようとしたらうまくいかなかったんで…)</li>
<li>まばたきに対応させるため、同じ色のを複数回録画します。複数回録画してまばたきのタイミングが同じになることは非常に少ないはずなので、そのことを利用して計算しています(このへんが力技)。それでもまばたきのタイミングが重なってしまった場合は涙をのんで追加録画し、タイミングが重なったクリップと差し替えてください。</li>
<li>アルファ値を計算した後、RGB 値は clip_g1 から計算されます。たとえば、まばたきなどの状態は clip_g1 のものが使われます。</li>
<li>合計6回も録画できるか!という人は、余ったところには(同じ色の)他のクリップを渡してください。たとえば、緑を1回、赤を2回だけ撮った場合は以下のように渡せば処理できます。
<blockquote><pre>LoadPlugin("imck.dll")

clip_r1 = AviSource("red1.avi", pixel_type = "RGB24").ConvertToRGB32()
clip_r2 = AviSource("red2.avi", pixel_type = "RGB24").ConvertToRGB32()
clip_g1 = AviSource("green1.avi", pixel_type = "RGB24").ConvertToRGB32()

ImasMultiColorKeying(clip_r1, clip_r2, clip_r2, clip_g1, clip_g1, clip_g1)
                                       ~~~~~~~           ~~~~~~~  ~~~~~~~</pre></blockquote></li>
</ul>
<h3>注意</h3>
<ul>
<li>入力のクリップの長さが異なっていた場合の結果は不明です。全部同じ長さにしてください。</li>
<li>入力のクリップのサイズが異なっていた場合の結果は不明です。全部同じ大きさにしてください。</li>
<li>入力のクリップのフォーマットが RGB32 でない場合はエラーになるはずです。</li>
<li>設定項目は一切ありません。本来はカラーバックの色は映像から抽出するべきですが、決め打ちでソースコードに入っています。この色はIntensityで録画したものを基準にしています。</li>
</ul>
<hr>
<h2 id="history">改版履歴</h2>
<h3>バージョン 2.3.0</h3>
<dl>
<dt>性能向上</dt><dd><ul>
<li>ImasMultiColorKeying2 を整数演算化した。大幅に高速化された代わりに、演算精度が落ちているかもしれない。</li>
</ul></dd>
</dl>
<h3>バージョン 2.2.0</h3>
<dl>
<dt>性能向上</dt><dd><ul>
<li>ImasMultiColorKeying2 をマルチスレッド化した。</li>
</ul></dd>
</dl>
<h3>バージョン 2.1.0</h3>
<dl>
<dt>機能追加</dt><dd><ul>
<li>ImasMultiColorKeying2 の出力タイプを追加した。</li>
</ul></dd>
</dl>
<h3>バージョン 2.0.0</h3>
<dl>
<dt>機能追加</dt><dd><ul>
<li>ImasMultiColorKeying2 を追加した。</li>
</ul></dd>
</dl>
<h3>バージョン 1.0.0</h3>
<p>一般公開された最初のバージョン。</p>
<hr>
<address><a href="http://umezawa.dyndns.info/">製作者のサイト</a></address>
</body>
</html>

About

iM@S MultiColor Keying


Languages

Language:C++ 80.5%Language:HTML 19.5%