Photo Gallery

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ポテトさんのブログ更新終了につき、当ブログの保守を引き受けた者です。
記事や配布ファイルの保守のみの実施となりますのでご留意下さい。

コメント欄での質問は、保守に関するもののみ対応させて頂きます。
リンク切れ等あれば、当該記事のコメント欄にご連絡下さい。

ポテトさんへの連絡を間違ってブログ管理者宛てに送らないようお願いします。
スポンサーサイト
皆様、こんにちは。

この度、一身上の都合により、当ブログの更新は終了させて頂きます。
3年少々という短い間でしたが、お付き合い頂いてありがとうございました。

ポテト

object.jpg

オブジェクト指向とは、プログラムを物体(オブジェクト)や人物に見立てて活用する考え方で、クラスをただのプログラムのグループ単位として使っている方には少しとっつき難い側面があります。
この記事では、例として C# のコードを使って説明させて頂きます。

オブジェクト指向の話に入る前に一度、プログラミングとは?という所まで掘り下げていきましょう。

コンピュータ君

そもそもプログラムというのは、人間の仕事を、自分の変わりにコンピュータにやってもらうためにあります。
オブジェクト指向を身につけるために頭の体操として、これ以降 コンピュータを人間だと思って 読み進めてください。




さて、現代ではコンピュータの演算速度が非常に高速ですので、円周率を求めるといった途方もない計算をさせたり、桁外れの件数のデータを淡々と処理させることに向いています。

プログラムコードとは、仕事の手順書みたいなもので、これを書いてコンピュータに任せれば、上から順番に文句も言わず淡々とこなしてくれます。
ただ、コンピュータというのは生の人間のように経験から機転を利かせることはできませんので、基本的に手順書通りに仕事をこなします。

たとえば、「目を覚ましてから実行してもらう一連の動作」をプログラムコードとして人間が分かりやすい様式に起こすとこのようになります。





文書

目覚まし止めて。

朝食を食べて。

歯磨きして。

着替えをして。




このようなプログラムを用意してコンピュータに実行させます。
先程も述べましたが、必ず上から順番にこなしていきますので、朝食をとる前に歯を磨くことはありません。
ただ、これではあまりにも単純な手順書ですし、コンピュータはバカですので、「歯磨きをして」と言われても、歯磨きのしかたが分かりません。
ですので、別途「歯磨きの方法」というプログラムを用意する必要があります。






歯ブラシを手にとって。

歯磨き粉を出して。

口に入れて。

ブラシで歯をこすって。

口をゆすいで。


文書



当たり前すぎてバカバカしいと思われるかもしれませんが、ここまで指示しないとコンピュータは歯を磨くことができません。
しかし逆を言うと、指示さえ正確であれば、どんなことでも実行してくれるのがコンピュータです。

さて、「歯磨きの方法」を書きましたので、最初のプログラムを少し修正する必要があります。





文書

目覚まし止めて。

朝食を食べて。

歯磨きして。 →歯磨きの手順書を見て、歯磨きをして。

着替えをして。




こうすることで、歯磨きのプログラムをこなしたのち、再び最初のプログラムに戻り着替えをするようになります。
プログラムは基本的に上から順番に実行されますが、別途用意したプログラムを読みに行かせて、その作業が終わったら元のプログラムに帰って来るという書き方が可能です。


文書
jump.png

文書


このように、作業の内容によってプログラムを分けて書くことをプログラムの関数化と呼びます。





次回は、関数化によるメリットなどから説明したいと思います。
では。




© 2015 - GATAG|フリー画像・写真素材集 1.0 - Design by WPThemeDesigner.com.

Tag:プログラミング


1916.png
853.png


clip1 と clip2 を Merge したものに対して、次の clip2 を追加していく形で FlexibleMerge を使用した場合、より効率的な Merge 順序を知りたくて検証したので、結果をまとめました。

結論から申し上げますと、綺麗なクリップから順番に追加するほうが綺麗でした。

今回画質を評価する値として、 FlexibleMerge 内部でも使用されている CombCheck のルーチンを使い、 AverageChromaV で取れたものを使用しています。
AverageChromaV() はクリップ上の赤色の量を示すもので、赤色は CombCheck() によってコーミングを表しています。

今回検証に使用したソースは、BS11 のガルガンティア OP の 9話分 です。
以下に示すのは、中でも極端に画質破綻が起きているフレームの結果をまとめたものです。


ScriptClip(v04.CombCheck(),"subtitle(string(AverageChromaV()))") #131.931641
ScriptClip(v07.CombCheck(),"subtitle(string(AverageChromaV()))") #133.499557
ScriptClip(v10.CombCheck(),"subtitle(string(AverageChromaV()))") #133.610458
ScriptClip(v09.CombCheck(),"subtitle(string(AverageChromaV()))") #133.891953
ScriptClip(v03.CombCheck(),"subtitle(string(AverageChromaV()))") #134.028824
ScriptClip(v02.CombCheck(),"subtitle(string(AverageChromaV()))") #136.783371
ScriptClip(v05.CombCheck(),"subtitle(string(AverageChromaV()))") #140.683655
ScriptClip(v06.CombCheck(),"subtitle(string(AverageChromaV()))") #144.371918
ScriptClip(v08.CombCheck(),"subtitle(string(AverageChromaV()))") #148.861786


これらのソースを、綺麗な順番と汚い順番でそれぞれ Merge し、再び数値を取ります。
Merge の方法は以下の通り。

previewSourceCode.png


上段、綺麗なクリップ順。下段、汚いクリップ順。
609昇順
609昇順


上段、綺麗なクリップ順。下段、汚いクリップ順。
609昇順up
609降順up


あまりにも歴然の差でした。
今後は Merge する順番にも拘ってエンコードしてみます。

まぁ、それほど気にする必要ないかもしれませんが、フレームごとに検証ルーチン挟んで Merge したほうがいいかもしれないですね。
物凄く重くなりそうだけど。


それでは。




©オケアノス/「翠星のガルガンティア」製作委員会


Tag:FlexibleMerge 翠星のガルガンティア

昨日、Twitter で何気なく投稿したネタが予想外の反響でしたので、ちょっとだけパターン作ってみました。

テロップ2
http://blog-imgs-75.fc2.com/p/o/t/potatosub/2015030108283826d.png


720p に合わせてサイズ調整してあります。
PNG-24 形式で、透過処理もしてあるので素材としてどうぞ。

Tag:テロップ 素材

通常、地上デジタル放送や BS デジタル放送などの録画データには、左右に小さなクロップ領域(黒帯)が存在します。

放送局によってはクロップ領域が大きい場合もありますし、同じ局でも実は時々によって領域面積が微妙に違う場合があります。
※関西地方の MBS は右側のクロップ領域が若干大きい


ユリ熊嵐 BS11 #02
ep02c.png

ユリ熊嵐 BS11 #03
ep03c.png


この領域の幅が大きいと本来映るべき映像が削られるので、小さい事に越したことはありません。
そこで、余分に黒帯がある場合、別の映像ソースからその部分だけ持ってきて、くっ付けてしまおうというのが今回ご紹介する関数です。



function RepairRight(clip mainClip, clip rightClip, int "px", bool "debug") {
px=default(px,8)
debug=default(debug,false)
rightClip=rightClip.Crop(mainClip.width-px,0,0,0).AddBorders(0,0,mainClip.width-px,0)
rightClip=debug?rightClip.ColorYUV(gain_v=192):rightClip
return StackHorizontal(mainClip.Crop(0,0,-px,0),rightClip).Crop(0,0,mainClip.width,0)
}



■ 関数使用後


code.gif

ep02-03c.png

3 話の映像ソースをベースとして、右側の領域だけ 2 話で補うことができました。




■ 領域幅の確認と調整


code2.gif

ep02-03c2.png

領域幅の調整は px 引数で出来ます。
領域のプレビューは debug=true にしてください。



(C)2015 イク二ゴマモナカ/ユリクマ二クル


AutoFrameSelect で、画質のいいフレームを選択してブレンドした動画と
逆に、すべて画質の悪いフレームを選択してブレンドした動画をエンコードし、比較しました。
フレーム選択以外、すべて同じ条件でエンコードを行っています。

ブレンドには BS11 版の「境界の彼方」 #01 ~ #04 を使用しました。

まずはエンコ後のプレビュー画像です。
左が高画質、右が低画質。

AutoFrameSelect.png



続いてエンコードログ抜粋。
上が高画質、下が低画質。

****** エンコードログ抽出 ******
x264 [info]: frame I:34 Avg QP:14.55 size: 98602 PSNR Mean Y:51.98 U:53.76 V:54.21 Avg:52.48 Global:51.79
x264 [info]: frame P:600 Avg QP:16.03 size: 50795 PSNR Mean Y:50.15 U:52.14 V:52.82 Avg:50.70 Global:50.26
x264 [info]: frame B:1523 Avg QP:17.77 size: 13257 PSNR Mean Y:48.55 U:50.99 V:51.83 Avg:49.22 Global:48.90
x264 [info]: 8x8 transform intra:75.3% inter:51.4%
x264 [info]: SSIM Mean Y:0.9914893 (20.700db)
x264 [info]: PSNR Mean Y:49.048 U:51.358 V:52.142 Avg:49.686 Global:49.276 kb/s:4803.69

****** エンコードログ抽出 ******
x264 [info]: frame I:35 Avg QP:14.72 size:121175 PSNR Mean Y:51.10 U:52.48 V:52.87 Avg:51.49 Global:50.81
x264 [info]: frame P:607 Avg QP:16.09 size: 54504 PSNR Mean Y:49.68 U:51.40 V:52.05 Avg:50.17 Global:49.78
x264 [info]: frame B:1515 Avg QP:17.82 size: 14294 PSNR Mean Y:48.35 U:50.68 V:51.48 Avg:49.00 Global:48.67
x264 [info]: 8x8 transform intra:76.9% inter:52.6%
x264 [info]: SSIM Mean Y:0.9908349 (20.379db)
x264 [info]: PSNR Mean Y:48.771 U:50.913 V:51.662 Avg:49.369 Global:48.986 kb/s:5244.73




最後にファイル容量の比較です。
上が高画質、下が低画質。

54.2MB
58.9MB

比べ物にならない程の画質差を叩き出しつつ、8% ほどの容量削減に成功。







関連記事
AutoFrameSelect - 高画質フレームの自動選択
指定したフレーム番号だけ別クリップのフレームを挿入する関数 (2)



引用元:TVアニメ「境界の彼方」
©鳥居なごむ・京都アニメーション/境界の彼方製作委員会



function SelectEveryField(clip c, string fields) {
c
SeparateFields()
Eval("SelectEvery(" + fields+ ")")
Weave()
return last
}
【月】
マンガ家さんとアシスタントさんと
【水】
ノーゲーム・ノーライフ
【木】
悪魔のリドル
僕らはみんな河合荘
エスカ&ロジーのアトリエ~黄昏の空の錬金術士~
【金】
ジョジョの奇妙な冒険 スターダストクルセイダース
【土】
健全ロボ ダイミダラー
それでも世界は美しい
金田一少年の事件簿R
魔法科高校の劣等生
【日】
ブレイクブレイド
極黒のブリュンヒルデ
一週間フレンズ。
ラブライブ!2nd Season
twitter.jpg


ブログの更新情報などを配信しています。
新しい記事を書いたら必ずツイートしますので、是非ご利用ください。
一応、RSS もあります。


twitter__.png

RSS.png



引用元:アイドルマスターシンデレラガールズ
URL:http://www.bandainamcogames.co.jp/cs/list/idolmaster/social_m/
(C)窪岡俊之 (C)NBGI


WHAT'S NEW?

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。