私のカーソルはどのように白よりも白いですか?


21

最近、カーソルが背景の白よりも白いことに気付きました(純粋な0xFFFFFF)。スクリーンショットを撮ると、背景とカーソルの両方が0xFFFFFFにあることが示されたため、当初は錯覚だと思っていました。次に、カーソルの写真を撮ったところ、明るさの違いがはっきりとわかります。

カーソルの写真

画像にモザイクフィルターを適用して、平均輝度をより良く表示します。

モザイクフィルターを使用したカーソルの写真

矢印の内部は約191グレー(0xBF)で、背景は約177グレー(0xB1)です。つまり、カーソルの白は背景の純粋な白よりも約8%明るくなります。

どのハードウェアがこれをどのように行っていますか?色情報はチャネルごとに8ビット以上で送信されていますか?

コンピューターは、HDMIケーブルを介してSamsung 5100 TVに接続されたNVIDEA GeForce 8500 GTグラフィックカードを搭載したWindows XPです。

別の写真:

2つのカーソルと影付きの正方形

1つのハードウェアカーソル、ハードウェアカーソルの1つのスクリーンショット、および2x2ブロックの0〜0xFFの各グレースケール値の16x16正方形。

2つのカーソルとモザイクフィルター付きの影付きの四角形

前の画像と同じですが、モザイクフィルターが適用されています。どちらが実際のカーソルであり、どれが写真のカーソルのスクリーンショットであるかは明らかです。今回の明るさは185と170ですが、それでも約8%の差があります。カラーピッカーを使用すると、写真の170色は画面上で0xFFFFFFです。カーソルのすぐ下の色をサンプリングするため、カーソル自体でカラーピッカーを使用することはできません。


モニターの明るさまたはコントラストの設定を試しましたか?
ロン

1
上記の問題の写真が生のセンサー画像を処理するカメラアイテムを使用してキャプチャされた場合(生のファイル形式で保存されている場合でもすべて実行されます)、カメラセンサーデータの処理によって視覚的な結果が既に変更されています。その問題を回避するには、「コントロール」を持つことになります。白い背景にカーソル(レンダリングされた個別のカーソルではありません)のイメージがあり、それらがどのように異なるかを観察します。さまざまな方法を使用してコントロールを適用すると、発生した場所を推測できます。
サイコギーク

@Psycogeek私の目のソフトウェアは同じことをしていると思います。目の生データにアクセスするにはどうすればよいですか?しかし、真剣に、私が画像に対して行った唯一のことは、それを関連するビットにトリミングすることでした。実際のカーソルの横にカーソルのスクリーンショットの画像をアップロードすることはできますが、既に説明した以上に明るくなることはありません。明るさ(以前に理解したように)は、カラーチャネルごとに0〜255(0xFF)の範囲になります。カーソル内の白が同じ縮尺である場合、約275(0x113)になり、8ビットでこれをエンコードするのに十分なスペースがありません。
CJデニス

@ user2714915 どこでも明るさやコントラストを調整していません!それは本当に私の質問の中心にはなりません:私のグラフィックモードがチャンネルカラーごとに8ビットであるときに、8ビットでエンコードできる最も明るい色よりもカーソルをどのように明るくすることができますか?
CJデニス

@CJDennis:どのプログラムが影響を受けますか?これは、私にとってはガンマキャリブレーションの問題のようです。
ジェームズP

回答:


10

Psychogeekの答えで述べたように、これはオペレーティングシステムによるカラープロファイル設定の問題です。

カラープロファイルは、アプリケーション、オペレーティングシステム、ビデオカード、およびディスプレイハードウェアによって適用できます。

WindowsのOSカラープロファイルの場合、ビデオカードに送信されると、カラープロファイルは画面イメージとは異なる方法でカーソルに適用され、カラープロファイルが白色点を変更すると、異なる色になる可能性があります。あなたの場合、カーソルは真の白として送信されますが、下の画像にはカラープロファイルが適用され、白色点がより低いレベルに変更されます。

カーソルは、残りの表示データとは別にビデオカードに送信され、レンダリング中にディスプレイに送信される前に、後の段階でビデオカードによって混合されます。

簡略化されたレベルで:

[Cursor Draw]   --   --   --   --   --   --   --
                                               ˅
[Windowing] --> [OS Profile] --> [Video Driver] --> [Video Card] --> [Hardware Profile] --> ...

スクリーンショットは、ウィンドウの段階でキャプチャされるため、OSカラープロファイルを「ショット」データに適用しません。通常、スクリーンショットキャプチャは、OSプロファイルが適用される前でもキャプチャするため、カーソルを表示しません。ただし、画面をキャプチャするための特定のツール(私が使用したと思われます)は、ビデオカードと同じようにカーソルを画像上にミックスします。カーソルと背景の白レベルは両方とも100%であるため、スクリーンショットは両方で同じ白レベルになります。

表示されている通常の動作は、カラーキャリブレーション用のハードウェアLUTを備えたモニターまたはビデオカードを使用するか、別のレンダリングポイントでカーソルの描画を強制することで修正できます。このPhoto.SEの質問を参照してください。また、カーソル画像を編集して、白レベルを変更することもできます。ただし、カーソルが画面上でより目立つようになると思います。


カーソルがより目立つことに同意します。それは私を悩ませません、私はそれが技術的にどのように可能であるかについて単に興味がありました。HDMIはチャネルごとに8ビット以上を伝送しますか、それとも一部のレベルが隣接するレベルと同等になるように、画像の残りの部分は圧縮されますか(デジタルデータ圧縮ではなくオーディオ圧縮の場合)?
CJデニス

1
HDMIは非圧縮データを伝送しており、ほとんどの場合、チャネルごとに8ビットで伝送されますが、より多くのデータを伝送できます。この問題は、HDMI信号の前に発生します
リッチーフレーム

en.wikipedia.org/wiki/Uncompressed_videoは、HDMIがピクセルあたり24、30、36または48ビット(チャネルあたり8、10、12または16ビット)である可能性があると述べています。したがって、システムでチャネルごとに10ビットとして送信されている場合、「純粋な」白はチャネルごとに0x3B3になり、カーソルの白は0x3FFになります。これにより、256個の8ビットレベルをすべて区別できるようになり、カーソルの明るさをさらに高めることができます。ほとんどの隣接するレベルは0x4の差がありますが、いくつかは0x3のみです。
CJデニス

あなたは、出力10ビットのチャンネルまで設定ビデオカードを持っている場合、それは10ビットであるが、それはそうである可能性が高いではありません
リッチー・フレーム

NVIDIAコントロールパネルで、明るさを調整できる設定を見つけました。カーソルには影響せず、画面イメージにのみ影響します。白が約0xC0になるまで明るさを下げて、カーソルを目立たせることができます!ただし、伝送チャネルごとのビットについては何も表示されません。
CJデニス

1

この答えは、デジタルでは物事が1対1ではない理由の分析から始まり、実際の質問に基づいて物事を変更する可能な方法で終わります。

  • カメラで写真を撮影すると、すべてのセンサーデータが処理されます。
  • その後、圧縮されて死にます。
  • 次に、コンピューターに1:1で移動します。
  • OSカラープロファイルによって調整されて表示される場所。
  • ビデオカードにデジタルで描画される場合、ユーザーが調整できるだけでなく、独自のカラートリックを使用できます。
  • 1:1のモニターに送信されます。
  • 表示パネルにする前に、処理中に完全に攻撃できる場所。
  • ディスプレイパネル自体は、そのすべての側面をレンダリングできません。
  • バックライトが発する色スペクトルに基づいて、バックライトの色は膨大な割合で変化します。

この場合、カーソルは(おそらく)ビデオカードハードウェアにオーバーレイされるハードウェアレンダリングアイテムです。最初に確認するか、変更して調整しようとするのは、モニタープロファイルまたはOS適用カラープロファイルです。カラープロファイルは、コントロールパネル、すべてのコントロールパネル項目、カラー管理にあり、モニター自体に到達する前に色を変更するカラープロファイルがあります。
プロファイルは無効にできるため、その効果を確認できます。

ビデオカードソフトウェアの調整。デスクトップ、3D、およびビデオの直接描画などはすべて制御可能です。これらがビデオカードソフトウェアで調整されていなくても、すべてを0 0 0に設定すると、まだ処理が残っている可能性があります。気になる理由がある場合は、カーソルオーバーレイと一致するように試して使用できます。

ビデオカードは、ハードウェアレンダリングされたカーソルをオーバーレイし、他の背景と同じパラメーターを使用せず、それがまさにその方法です。

-制御写真に基づいて、残りのどれもこの特定の質問に適用されません-

別の可能性はモニター設定ですが、これはあまりありませんが。自動コントラスト、モニターおよびテレビの自動カラーアイテムは、巨大な明るい領域または暗い領域のバランスをとることができ、多くの場合、望ましくない変更を引き起こします。モニターの自動カラー調整とレベリング調整は常に調整可能であるとは限らず、そのアクションにさまざまなかわいい名前を使用します。

ゲーム、映画、デスクトップなどのモニターのプロファイル、またはプロファイルに使用する名前は、選択したプロファイルに役立つと特定の色とコントラスト、明るさの設定を設定しますが、適切なプロファイル選択でも望ましくない変更になる可能性があります。

ビデオディスプレイカードではなく、モニターでも、カメラのアルゴリズムをシャープにすると、元のコントラストを高める、または(もちろん)コントラストを下げる領域の周囲にハイライトのマトリックスを作成できます。この質問では、白が2つの異なる処理でない限り、シャープニングマトリックスが適用されるピクセルを超えて白が拡大するため、これは起こりそうにありません。

ソフトウェアが実際に真っ白な背景を持つ必要がない場合、リストはさらに長くなります。それらは調整できます。OSとプログラムの背景は白ではない場合がありますが、この質問では、元のデスクトップまたはプログラムで背景の色を選択した場合、そうではないことを既に知っています。

デスクトップ上の色の選択は、そこに存在するピクセルの色を示し、プログラムが表示しているものに関する事実をユーザーに提供します。カラー写真は、カラープロファイルが出力を調整する前に表示されます。そのため、カラーピッキングは実際の色を見つけるのに最適な方法です。その後、再び処理を通過します。

カーソルをオーバーレイして画面キャプチャを行うプログラムが存在します。そのため、人は物事のカラーピックを行うことができますが、ここでも別の方法を使用してカーソルを描画し、他の方法と同じように処理することができます。したがって、画面のソフトウェアデジタルキャプチャを実行し、カーソルを含めることは可能ですが、実際にここで表示される内容が変わる可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.