カモフラージュ: この投稿は、YouTube のビデオ レイアウトでも公開されています。 いくつかのデモ/違いは、ビデオでさらに明白になります.
過去にそれほど長くないこのブログをフォローしている場合は、LetsDriveLCD と呼ばれる一連のブログ投稿があることに気付いた可能性があります。 . それらのほとんどはパッシブ ドット マトリックス LCD です。 20 世紀後半から 2000 年代初頭にかけて製造された多くのポータブル デバイスは、この原因を解明する機能を備えていました。 それらは新しい買い物客の電子デバイスでは事実上絶滅していますが、さまざまな組み込みデバイスで問題が発生しなければ、問題はありません.私はいつもこれらの画面のクリアピアに夢中です。 そこで私は、オンラインでこれらの画面のほんの一部を拾い上げ、それらを駆動するマイクロコントローラーの学習を開始しました。 それがここ10年ほどで大きくなりました最近では、320 x 100 ピクセルの反射型 FSTN LCD カバーに乗って、事実上産業用に頻繁に使用される STN LCD ピクセル インターフェイスを備えた、まったく同じものを 1 つ作成します。 まず、次の画像のアカウントを試しています:
そして、これが…結果です。
トピックは明白で、非表示は 1 ビット モノクロであるため、各ピクセルに対して、オンまたはオフのいずれかが最も挑発的であり、その間に灰色の陰影はありません。 ピクセル価格を 0 または 1 に固定することで、画像の説明を適切に行うと、これを空想することができます。本当のニュースは、たまたまもっと多くのものを生み出すことができるということです。 制限されたカラー パレットで写真を表示することは、研究と理解に成功したトピックであり、解決策の 1 つはディザリングを生成することです。 最も重要な概念は、アクセス可能な色の拡散を使用して、カラーパレットから現在市場に出回っていない色の近似値を作成することです. 例として、画像にディザリングを適用する場合、これは凝ったものになります。
それは 1 ビットの非表示に平凡な出力ですが、テル クランプと比較して、おそらく画像から追加の情報を探すことができます。 ディザリングを実行する方法についてはかなり山ほどありますが、ここで具体的に消滅したものは、誤差拡散と歩調を合わせています。 より深いピアを選びましょう。ため息、実際には入力画像を楽しんでいます。これは8ビットのグレースケールで、出力は1ビットです。 あるいは、入力変動の範囲内で出力を明確にすると、出力は 0 または 255 のいずれかになります。心の中の余暇は利用できません。 入力に合わせて出力価格を消費するために、ここで量子化器が起動されます。入力が半分または 127 より大きい場合は 255 を出力し、そうでない場合は 0 を出力します。シェーディングまたはホワイトストレートへ。
ここで、エラー拡散をテーブルに持ち込みます。 量子化器が入力とはまったく異なる出力価格を選択すると、いつでもエラーが発生します。 エラーはもっぱら入力と出力の間の変動です。 時代遅れの場合、エラーは排他的に削除されます。 とはいえ、エラーに手を貸すのが目的なら、エラーに追いつくための 1 つのことを平気で作成します。 エラーを隣接するピクセルに拡散するためのエラー拡散式。 したがって、量子化器がこれらのピクセルを量子化すると、エラーが補償される可能性があります。 これは私があなたよりも早く確認したものです.
ただし、1 つの問題がありますが、これらの画面はおそらく多くの範囲のグレースケールを生成する可能性があると考えています。 それにもかかわらず、私が購入した画面のほとんどは 1 ビット モノラルでした。 財団では、これはおそらく、私が購入した皮が別のサルベージまたは同じものに目を向けて、彼らがそれを必要としないようになったという説明の可能性があると信じていました. 買い物客の電子機器の最も便利な皮は、グレースケールエンハンスを楽しむでしょう. どちらが偽になるように変更されました。 私は 16 の範囲のグレースケールを楽しむいくつかのデバイスを脇に置き、画面自体が 1 ビット画面であることを発見しました。 そこにあるトリックは何ですか? これについて深く掘り下げてみましょう。だから今、私は今、おそらく陰影と白のどちらかを説明する可能性のある皮を与えられており、皮の灰色のまったく異なる色合いについて説明したいと思います. それを生み出す? それと他の類推を適切に使用すると、実際には、おそらく高または低になる可能性のあるデジタル出力ピンを楽しんでおり、それにリンクされたLEDがあります。 そして、スーツの点灯と消灯の話題では、異様な明るさを楽しみたい。 これは聞き覚えがありますか? これを行うためのPWMと呼ばれる最も絶え間なく消滅した公式があります. 持続時間の概要を説明すると、しばらくの間、この時代の出力は高く、リラックスは低くなります。 その後、完全な期間が何度も繰り返されます。 これが目に見えないほどの急速な変化である場合、オンとオフが切り替えられているという点で、それは心の中で何らかの明るさであると見なされるでしょう.
これらのモノクロ LCD で同じものを作成できますか? 確かにそうではありません。 ドライバ チップに組み込まれた PWM を使用する LCD がいくつかあります。そのため、入力としてピクセルあたり数ビットだけをネイティブに選択し、非表示のリフレッシュ プロセス全体でグレースケールを調整します。 一例として、GameBoy の hide はネイティブで 2 ビット/ピクセルの入力を受け取り、4 度のグレースケールを生成します。
それにもかかわらず、私の声明と歩調を合わせて、これはそれほど頻繁ではありません。他のほとんどの画面は、PDA や古いラップトップの画面に似ています。最も挑発的な選択は、1 ピクセルあたり 1 ビットの入力であり、最も挑発的なものは、シェーディングと白をネイティブに生成します。それでは、非表示のドライバー チップが組み込みの PWM を使用できない場合、PWM をより大きなレベルで消費することはできますか? あなたは、LCDを求めて、アカウントを向上させ、継続的にリフレッシュしたいと考えています. したがって、1 つのピクセルをじっと見ると、一定の間隔で駆動されており、実際には、高いか低いかの度に目を凝らしてサルベージを楽しんでいます。 そういう意味では、単純にPWM波形のままでもいいのかもしれません
例として、16 度のグレースケールが必要な場合、15 の PWM 期間を楽しむことに成功し、出力度に合わせて、責任サイクルは 0 から 15 サイクルになります。 すごいですね。 それは機能しますか? 探しましょうそれをコード化するために、1 ピクセルあたり 1 ビットのボディ バッファーがあり、おそらく隠れ家に送信される可能性があります。 また、8 ビット/ピクセルのボディ バッファーがあり、グレースケール イメージを表示する可能性があります。 ここで、これらのバッファーでマップ PWM を実行する目的を書き留めたいと思います。
そこで、0 から 14 に収まる PWM 持続時間カウンターをトピックアップし、ボディごとにインクリメントします。 次に、ループ内で、ピクセルごとに、入力ピクセル価格をカウンター価格と比較し、大きい場合は 1 を出力し、そうでない場合は 0 を出力します。したがって、まったく異なるピクセル値を使用すると、各ピクセルに対して風変わりな説明責任サイクルが出力されます。
uint32_tframecnt =
0;)静的 列をなして uint8_t
handle_pixel
(uint8_t 色) {
)戻る( (色/ 16
)> framecnt);
} 静的
空所
process_frame() {
にとって (int
私=
0バツ; 私<
*
𝚆𝚊𝚝𝚌𝚑 𝙽𝙾𝚆 📺
My father Bryce Bayer studied this question fifty years ago at Eastman Kodak; his approach is known as ordered dithering:
https://en.wikipedia.org/wiki/Ordered_dithering
One is effectively posterizing a grayscale image, and his primary goal was to reduce artifacts drawing unwanted attention to the borders between poster levels.
With improvements in hardware other approaches to dithering took over. The last time I saw my father's pattern was on a DEC box logo. He moved to the color group at Kodak, and designed the "Bayer filter" used in digital cameras.