7月 222014
 

そのうちまとめるつもり。

  • .NETのカラマネ対応APIは、System.Windows.Media, System.Windows.Media.Imagingの中にちょっとだけある。ほぼWPF専用なのではないかという予感…
    クラス / 構造体 概要
    ColorConvertedBitmap WICで一度だけ色変換できるBitmapSource。微妙MarkupExtensionもあるよ。
    ColorContext ICCプロファイル的なやつ。
    Color sRGB/scRGBカラーを扱う。挙動が微妙なこともあり、カラマネ的には役に立たない可能性が。
    BitmapFrameと各種Encoder/Decoder 画像ファイルを取り扱うクラス群。画像プロファイルも読み書きしてくれるっぽい。中身はWICの模様。

  • 内部的にはICM / WCS, WICを利用している。
    • System.Windows.MediaがICMに対応して、System.Windows.Media.ImagingがWICに対応するイメージなのかな?
  • いずれの場合もTransformは使い捨ててるので、パフォーマンスは微妙。
    • WCSプロファイルはTransform生成がかなり遅い(iccの30倍位)ため、非常に残念な事になる。回避するには多分P/Invokeしかない。
  • 残念なことにデバイスプロファイル等、PC/ユーザーに設定されているプロファイルを取得する方法は用意されていないので、ファイルパスを指定するかP/Invokeするしかない。

System.Windows.Media.Imaging.ColorConvertedBitmap

  • 変換元、変換先のColorContextと、変換したいBitmapSourceを指定して色変換できる。
  • これ自身がBitmapSourceを継承してるので、Image.Sourceとかに指定できる。
  • 一度初期化したら変更できない。
  • 内部的にはIWICColorTransformを使ってる。
  • ColorConvertedBitmap のマークアップ拡張機能なんてのもあるが、各プロパティ指定できるの一度きりだし、果てしなく微妙。

System.Windows.Media.ColorContext

  • イメージ的にはICCプロファイルとかと同じ。
  • 内部的にはColorContextHelperを通してICMのOpenColorProfile()GetColorProfileHeader()を利用している。
  • PixelFormatを指定して初期化することでsRGBとかscRGBのColorContextを取得できることになっているが、実際に取得されるのは コントロールパネル>色の管理>詳細設定>デバイスプロファイル に設定されているプロファイルだったり。
    • これはICMのGetStandardColorSpaceProfile()を利用しているからで、sRGBのプロファイルIDを指定しているにもかかわらず上記のような結果になるという謎挙動が原因である。
    • 既定のデバイスプロファイルではなく、ちゃんとsRGBを指定したいならば、自分でURIを指定する必要がある。

System.Windows.Media.Color

  • 一見RGBを抽象化したものに見えるが、実際はsRGB/scRGBカラーを取り扱う構造体である。
  • FromValues()およびFromAValues()にてColorContextを指定できるが、これは非常にややこしいことに「指定されたColorContext」→「既定のデバイスプロファイル(大抵はsRGB)」という変換となる。
    • 最初は「指定されたColorContextのRGB」を表す型なのかと思ってたら全然違った。
    • ComputeScRgbValues()というprivate methodの中で、PixelFormats.Bgra32を用いて変換先ColorContextを初期化しており、このソースを見る限りは本当はsRGBを変換先とするつもりっぽいのだけど、上記ColorContextの謎挙動により既定のデバイスプロファイルが変換先となってしまっている。
    • この変換処理ではColorTransformというinternal classを使っている。それ使わせてくれよ…
      • ColorTransformは、ColorTransformHelperを経由してICMのCreateMultiProfileTransform()TranslateColors()をやってくれるクラス。
    • 一色変換するだけの処理にもかかわらずTransformを使い捨てしており、コスト的にも大分残念な感じになっている。何に使うんだろうこれ…

System.Windows.Media.Imaging.BitmapFrame とか

  • まだあまり試してないが、画像プロファイルの読み書きができそうで良さ気。
  • System.Windows.Media.Imagingは大体WICと同じ雰囲気っぽい?
  • 内部的には完全にWIC依存。
  • でもIWICColorTransformとかは使わせてくれない微妙な感じ…
  • BitmapFrame.Create時などにBitmapCreateOptions.IgnoreColorProfileを指定していないと、埋め込まれた画像プロファイルからsRGB (これも同様にデバイスプロファイルかも知れない) へ変換される
    • 変換されるくせに埋め込まれたプロファイルColorContexts[0]はsRGBに置き換えられず、そのままである
    • これに気付かずにColorConvertedBitmapに食わせると、二重に変換されたりして悲しい思いをする
    • BitmapCreateOptions.IgnoreColorProfileを指定した場合、元のカラースペースを保持した状態で読み込まれる
  • CMYK画像をBitmapFrame.Createする際にBitmapCreateOptions.PreservePixelFormatを指定していない場合も、RGB PixelFormatへ自動変換される
    • 同様に、プロファイルが埋め込まれていた場合ColorContexts[0]はCMYKプロファイルのままである
  • BitmapCacheOption.None以外で読み込んだ場合、その時に指定されたBitmapCreateOptionsで画像がキャッシュされ、再読込時のBitmapCreateOptionsは無視される
    • Streamから読み込む場合はキャッシュの影響は受けないようだが、即時読込するためにはBitmapCacheOption.OnLoadが必要な点に注意

モニタプロファイルの取得

  • .NET じゃ無理ぽ
  • EnumDisplayMonitors()GetMonitorInfo()MONITORINFOEX取得
    →取得したデバイス名からCreateDC()でデバイスコンテキスト取得
    GetICMProfile()でプロファイルパス取得
  • 実コードとかはそのうち…
7月 162014
 
12月 192013
 

買いました。
ヨドバシ通販で42800円 / 10%ポイント還元 / Windowsストアギフトカード5000円分付き。

ちゃんとしたレビューは巷に結構あるので、気になった点などをメモ程度にダラダラと。
以下に書くのは主に不満点になりますが、総合的にはなかなか快適で、結構良い物だと思ってます。

多分気まぐれで書き換えたりするかと…

雑感


  • イヤホンジャックにたまにノイズが乗る
  • スピーカーがショボい
  • 画面が明滅することがたまにある
    • 暗い状態と明るい状態をごく短時間で連続して行き来するようなことがある。自動輝度調整のせいかと思ったが、オフにしていても発生する。地味に気になる問題。。
    • IEでFlashが固まって「スクリプトの実行を中止しますか?」ダイアログが出る際にもIEの窓がチラつくが、コレはアプリの問題だろう。
    • メガネケエスRT等一部アプリもチラつくが、コレもアプリの問題だろう。
    • BIOS1.13で直った Fixed : backlight flashing issue when backlight UI setting is under 23%Acer | ドライバダウンロード
  • sRGBと比べて色域がややズレてる。主にG方向。
    • i1Proでキャリブレーションした結果。とりあえずやっただけなんで、あんまりちゃんと結果は見てない
    • ガンマ補正も少々グニョグニョしてた記憶。
    • まぁでも値段考えれば十分なレベルな気がする。
  • 良いケースがない
  • スリープダルい
    • マグネット非対応っぽく、ケースもないため、スイッチか放置でスリープするしか無い
    • スリープしてもほんのりあたたかく、どうやらきちんとスリープできてない事がある。こうなるとバッテリの消耗も結構激しく、放置してても24h持たない感じ。どうやらVirtualBoxの仮想ネットワークアダプタが原因?無効にするとディープスリープしてくれるようになった気がする。
    • スリープ中にRundll32.exeが大量起動しており、それがバッテリをバカ食いする現象にも遭遇した。原因不明。
  • 艦これは概ね快適
    • だが、起動時などで「スクリプトの実行を中止しますか?」ダイアログが出る事がある。多分ship3等巨大データを取得する時重い。
    • 戦闘リザルトなどでの一部描写は僅かにもっさりする気もしないでもない。
  • エロゲも概ね快適
    • ただしタッチを念頭に置いてUI設計されていないので、右クリック、ホイール、Ctrlキー、D&D等が自在に使えない事で操作性に問題が出ることがしばしばある。
    • Bluetoothマウス&キーボードが欲しくなる…
    • 画面解像度が足りないこともある。

割とNativeなディスプレイプロファイル


ディスプレイ固有ガンマ
  • HWiNFO32ではMonitor NameにはChi Mei [Unknown Model: CMN0802]と表示される

※2013-12-21: i1 ProfilerだとなんかおかしかったのでEye-One Matchで計測しなおし

  • 白色点:ディスプレイ固有
  • ガンマ:ディスプレイ固有
  • ディスプレイの明るさ21%指定

  • できたプロファイル

  • 80cd/㎡くらい
  • 白色点5800Kくらい

キャリブレーション結果。
最低輝度0.0cd/㎡になってるけど正しく計測出来てるんだろうか…
ちなみにi1 Profilerは同じ輝度設定でコントラスト比500:1弱と言ってきていた。

sRGBとのLabプロット比較。グレーがsRGB。

Yyxプロット比較。

ガンマ2.2
  • 白色点:ディスプレイ固有
  • ガンマ:2.2
  • ディスプレイの明るさ21%指定

  • できたプロファイル

  • 82cd/㎡くらい
  • 白色点5800Kくらい

キャリブレーション結果。

sRGBとのLabプロット比較。グレーがsRGB。

Yyxプロット比較。

vcgt-red。

vcgt-green。

vcgt-blue。

8月 252013
 

潜水艦Lv

タイミング 出撃回数 イムヤLv ゴーヤLv
E4開始 0 20 0
ゴーヤドロップ 76 58 0
E4クリア 181 72 63
飽きた 301 84 77

ボス到達率

  • トータル:66.78%
  • E4クリア以降:75.00%

戦闘評価

トータル
評価
S 2
A 7
B 742
C 65
D 186
合計 1002
勝率 74.95%

E4クリア後
評価
S 0
A 1
B 346
C 31
D 48
合計 426
勝率 81.46%
7月 112013
 

日記というかメモです。

概要
  1. グラボ1枚に2つのモニタを繋いでる
  2. 手持ちのグラボのDisplayPort(以下DP)に、DVIモニタをつなげてトリプルディスプレイにしたい
  3. アクティブ変換アダプタで繋いでみる →映らず
  4. 諦めてグラボ1枚追加(2枚刺し)してDVI接続 →できた
事前環境
  • グラボ:H775P1GD (HIS製RADEON HD7750 ファンレス)
  • モニタ1:NEC MultiSync LCD2190UXi
  • モニタ2:NEC MultiSync LCD2490WUXi
  • 繋ぎたいモニタ:NEC MultiSync LCD2690WUXi
買ったもの
知ったこと
  • DVI/HDMI出力には、1出力に付きクロックジェネレータが1つ必要。らしい。
  • RADEONはそれを大体2つしか積んでない。(SapphireのFlexシリーズはリファレンスより多いっぽい)
  • DisplayPortはクロックジェネレータ無しに出力可能。
  • DP->DVI変換アダプタにはパッシブとアクティブの二種類ある。
    • パッシブは物理形状を変えるだけ。
    • アクティブはクロックジェネレータを内蔵している。
    • アクティブアダプタは相性等のトラブルが多いとパーツショップの店員が言ってた。
  • DisplayPort自体スリープ時の認識等でトラブルが多い雰囲気?
変換アダプタを使った時の症状
  • 基本的に刺しても無反応。
  • 稀にハードウェア追加の音がして認識されることがある。
  • 認識されてもモニタを判別できない事が多い。
  • 極希にモニタも判別できて映ることがあるが、長続きしない。
  • 一旦見失うと、全ての主電源を落として再度立ち上げるまで全く認識しないことが多い。
  • 無反応なのを刺しっぱなしにしておくと、突然認識されることも稀にある。
追加グラボの選定
  1. ファンレスがいい。
  2. できれば1スロットがいい。
  3. 安い方がいい。
  4. 既にRADEON使ってるのでRADEONしかない。
  5. EDIDベースの色補正機能の精度的にHD6xxx以降が良い。
  6. これらの条件を満たすのはHD6450しかない。
  7. 安いのはSapphireか玄人志向。
  8. Sapphireは上部にせり出すタイプのヒートシンクらしく、1つ上のスロットが使えなくなる問題がある。多分2枚目に刺す位置には向かない。
  9. 玄人志向のにはその問題がないので決定。
  10. だが玄人志向のもヒートシンクが思ったより厚く、1つ下のスロットに干渉したので結果的にほぼ同じだったかも。
3月 162013
 

最初、具体的にどうすればいいのかさっぱり分からなかったので、メモ。

端的に言えば、新規購入と同様に、リセラーからSAのみのライセンスを買えばOK。

状況
  • 2012/12/31でSAが切れてる
    • OpenLicenseのOpenBusinessの場合は、 期限が切れてから90日以内の間に更新可能
更新経緯
  1. [3/1] LICENSE ONLINEで見積もり&発注
    ※パスワード登録で”半角英数字で、6文字から30文字”とか無いわ…
    ※会社名とか部署名は全部”個人”で埋めた
    ※新規購入と同じなので3ライセンス必要。無駄に増えるDVDPlaybackPack…
  2. [3/1] 更新対象の情報を寄越せというメールが来る
  3. [3/1夜] どの情報が必要なんだと迷いつつ、VLSCの発注確認>詳細のスクリーンショットを添付して返信
  4. [3/4] 請求メールが来る(期限3/11)
  5. [3/7] ノンビリと振り込み
  6. [3/8] 振込み確認メールが来る
  7. [3/12] Microsoftから買ってくれてありがとうメールが届くと共に、VLSCに契約が追加される
    →2013/03/11-2015/03/31の契約になっていた
その他
  • 契約が追加されるので、新たにプロダクトキーをもらえる。
    MAK認証回数が増えるので嬉しい。
  • 前回購入時とリセラーが異なるせいか、VLSCの”組織”に表示される苗字と名前の間のスペースが、半角と全角チグハグになってしまってしょんぼり…
  • ボリューム ライセンスで更新 – Open License