hiyama
2022年8月4日 19時32分
お世話になっております。
現在、almaddilo-410を使用しております。
表示モニタに映像が表示されるのですが、特定の色(グレー色)のみ上手く表現できない問題を抱えております。
ソフト側で制御できるものなのかハードウェアが原因なのか切り分けさせていただきたいと考えています。
もしソフトウェアの設定やソース修正で解決できる可能性がありましたら、いただけますでしょうか。
以下のような情報がございましたらいただきたいです。
・表示モニタ調整用のビデオパラメータファイルの場所とファイル名
・パラメータファイルの各項目内容
・変更した際に再構成が必要であればその手順・方法
<現象>
LCDに特定の色が正しく表示されない。
・特定の色「グレー色(灰色)」が実際の色よりも薄く表示される
・特定の色「グレー色(灰色)」に緑と赤の色が表示される
<確認したいこと>
・armadilloの設定やソース修正のみで、本現象の解決は可能か
<わかっていること>
・表示されている=ドットクロックの設定は問題ない認識。
・バックライト設定では明るさの調整のため、対応できない。
コメント
hiyama
情報不足申し訳ありません。
>ハードウェア構成はどのようになっていますか?
>Armadillo-410 液晶モデル開発セット をご利用でしょうか?
液晶モデル開発キットではなく、LCDは個別のものを使用しています。
> <現象>
> LCDに特定の色が正しく表示されない。
>この現象をこちらで再現するのに必要な情報をご提供いただくことは可能ですか?
現在、既存モデルから新モデルのLCDに置き換え評価を行っている状況です。
xy色度の仕様が既存モデルと新モデルで異なるため、表現できない色座標が存在するためではないかと考えております。
本来情報を開示したいのですが社外秘のため、大変申し訳ございませんが開示することが難しい状況です。
勉強不足で恐縮ですが一番知りたいことは、ソフト側の設定で色の調整が可能なのか無理なのかが知りたいことであります。
※可能な範囲での画像を添付いたします。
ファイル | ファイルの説明 |
---|---|
灰色不正.PNG | グラデーションされたグレー(灰色)の場合正常に表現されない色がある。 |
色.PNG | 特定の色(グレー(灰色))の場合赤や緑のドットが出現する。 |
at_mizo
溝渕です。
> 一番知りたいことは、ソフト側の設定で色の調整が可能なのか無理なのかが知りたいことであります。
ソフトで色の調整は可能と思いますが、どの色をどの色に変換しますか? もし明確に変換テーブルが作成できるのであれば、(描画速度は著しく低下すると思いますが)LCDドライバ内等から変換可能と思います。
まずは、意図した色に表示されない理由を調査するのが良いかなと思います。
まずは誤認される色を調べ、その色のみの画像を用意してみてください。その画像を表示した状態で、オシロスコープでLCDの信号線を確認してみてください。
恐らくですが、LCDが期待する波形を作り出せていないのではないかと推測しています。
hiyama
hiyama
at_mizo
溝渕です。
> 現在、LCDへ送信している18bitデータの特定を進めております。
> 24bitカラーコードを18bitで表現できるようにarmadillo仕様のRGB565カラーへ変換していると思いますが、
> 変換テーブル等は存在するでしょうか?それとも計算処理でカラーコードを変換しているのでしょうか?
質問を質問で返して申し訳ございませんが、LCDへの描画はどのように実行されていますか?
例えば、RGB888の画像ファイルをフレームバッファにそのまま書き込むと、フレームバッファがRGB565である為に正しく表示されないと思います。
もし正しく表示されているのであれば、ユーザーランド(アプリケーション)でRGB565の画像を作っていると思いますが、いかがでしょうか?
hiyama
溝渕様、コメントいただきありがとうございます。
> 質問を質問で返して申し訳ございませんが、LCDへの描画はどのように実行されていますか?
> 例えば、RGB888の画像ファイルをフレームバッファにそのまま書き込むと、フレームバッファがRGB565である為に正しく表示されないと思います。
> もし正しく表示されているのであれば、ユーザーランド(アプリケーション)でRGB565の画像を作っていると思いますが、いかがでしょうか?
armadillo側で色を変換していると勘違いしておりました申し訳ございません。
アプリケーションもRGB565画像を使用しております。
調査当初はLCDの色域が若干変更されているため、armadillo側の設定を変更しなければいけないと考えておりましたが
そのような設定は無いと理解しました。
既存ディスプレイでは正しく表示されていますので、やはりLCD側で何か欠陥があるものと考えております。
at_mizo
溝渕です。
> 既存ディスプレイでは正しく表示されていますので、やはりLCD側で何か欠陥があるものと考えております。
LCDはRGB888ですか?
Armadillo-410は最大でRGB各6bitである為、LCDの各(RGB)信号線の最上位bit(MSB)側に、Armadillo-410の信号を接続する必要がありますが、そのようになっていますか?
例えば、Rの場合だと次のようになるかと思います。
Armadillo-410 R5 <-> LCD R7
Armadillo-410 R4 <-> LCD R6
:(省略)
Armadillo-410 R0 <-> LCD R2
未接続 LCD R1
未接続 LCD R0
hiyama
at_mizo
hiyama
>正しく表示できない色があるわけではなく、隣のドットに依存して色がおかしくなるのでしょうか?
単色での確認をしましたので隣のドットに依存しているわけではないと考えております。
>> 表現できない24bitカラーについて特定しました。
>はどのように確認されましたか?
グラデーションで境界値の色を特定し、その特定した色をペイントソフトでPNG画像として作成し確認しました。
単色のはずがモザイクがかかったような表示となる現象です。
色域が関係しているのか、表現できない色の境界値があるような現象です。
例えば、RGB[64,128,192]のような色だと明るい青色でモザイクがかかった色で表示されてしまいますが、
この色よりも濃かったり、薄かったりすると色は正しく表示される現象です。
at_mizo
溝渕です。
単色のRGBファイルを作って、そのまま描画してみていただけますか。
例えば情報は、
RGB[64,128,192]
だと、
RGB565[8,32,24]
なので、
01000 001000 11000 = 0x4118
となります。
解像度が、WQVGA(320×240)の場合は、
320x240 = 76800
なので、次のように画像が作成できます。
[pc]$ echo -en "\x18\x41" > base.bin [pc]$ for i in {0..76799};do cat base.bin >> rgb.bin; done [pc]$ od -x rgb.bin 0000000 4118 4118 4118 4118 4118 4118 4118 4118 * 0454000
作成した画像を、次のように描画してみてください。
[armadillo]# cat rgb.bin > /dev/fb0
hiyama
at_mizo
2022年8月8日 9時57分
溝渕です。
すみません。事前にいくつか教えてください。
ハードウェア構成はどのようになっていますか?
Armadillo-410 液晶モデル開発セット をご利用でしょうか?
# ドットクロックを設定しているとのことなので、多分違うと思って確認させてもらっています
> <現象>
> LCDに特定の色が正しく表示されない。
>
> ・特定の色「グレー色(灰色)」が実際の色よりも薄く表示される
> ・特定の色「グレー色(灰色)」に緑と赤の色が表示される
この現象をこちらで再現するのに必要な情報をご提供いただくことは可能ですか?
> <わかっていること>
> ・バックライト設定では明るさの調整のため、対応できない。
上記、どのような意味でしょうか?
「バックライト設定を行うことで、グレーの色が正しく表示されるようになるが、同時に明るさも変化してしまう為に、この方法は使えない。」という意味と捉えて良いでしょうか?