e-yamada
2017年7月21日 20時26分
お世話になっております。
armadillo-840にて、gstreamerによる動画再生時を行っておりますが、
RGBが正しく表示されておらず、改善方法を検討しております。
現状のfbsetは下記の出力となっており、RGBは565となっております。
mode "1280x1024-60"
# D: 108.003 MHz, H: 63.983 kHz, V: 60.021 Hz
geometry 1280 1024 1920 4096 16
timings 9259 248 48 1 1 112 40
hsync high
vsync high
rgba 5/11,6/5,5/0,0/0 ★
endmode
下記ページの解説では、カラーフォーマットはARGB8888・RGB565の2種類との記載があり、
必要に応じて変更可能と思われますが、変更方法についてご教示いただきたく存じます。
http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
機能(フレームバッファ)
最大解像度: 1920 x 1080 px
カラーフォーマット: ARGB8888 (32bit) or RGB565 (16bit) ★
ダブルバッファサポート
以上よろしくお願いいたします。
コメント
e-yamada
at_kojiro.yamada様
ご回答いただきありがとうございます。
> Armadillo-840 製品マニュアル 6.3. ビデオ(※)にて、
> HDMIモニタおよびLCDにテスト画像を表示させる方法が記載されています。
>
> そちらを実行した場合は、どのような見た目になっているのでしょうか?
情報が不足しており申し訳ございません。
下記コマンドの表示結果を添付させていただきますので(001.jpg)、ご確認のほどよろしくお願いいたします。
> gst-launch-1.0 videotestsrc ! "video/x-raw,width=1920,height=1080" ! fbdevsink device=/dev/fb0
なお、現状のfb0の状態は下記のようになっております(解像度の変更を行っております)。
mode "1920x1080-30"
# D: 74.996 MHz, H: 34.089 kHz, V: 30.302 Hz
geometry 1920 1080 1920 4320 16
timings 13334 148 88 1 1 44 43
rgba 5/11,6/5,5/0,0/0
endmode
また、下記画像につきましても添付させていただきます。
・002.jpg:元画像
・003.jpg:armadillo-840からディスプレイへの表示画像
・004.jpg:armadillo-840からディスプレイへの表示画像(白色の部分に緑が少し混ざって表示)
・005.jpg:動画のグラデーション表示(色が変化している箇所にムラが出る)。
> debian wheezyのfbsetでは、対応しています。
>
> debian wheezyのfbsetのarmhf用バイナリ(※)を添付しますので
> [Armadillo-840]# chmod +x ./fbset
> [Armadillo-840]# ./fbset -fb /dev/fb1 -rgba "8/16,8/8,8/0,8/24"
> のようにして変更できるか確かめてみてください。
ご教示いただきましたfbsetにて、コマンドを実行してみましたが、特に変化はみられませんでした。
[root@armadillo840-0 (ttySC2) ~]# /mnt/sd/common/fbset -fb /dev/fb0 -rgba "8/16,8/8,8/0,8/24"
[root@armadillo840-0 (ttySC2) ~]# /mnt/sd/common/fbset -fb /dev/fb0
mode "1920x1080-30"
# D: 74.996 MHz, H: 34.089 kHz, V: 30.302 Hz
geometry 1920 1080 1920 4320 16
timings 13334 148 88 1 1 44 43
rgba 5/11,6/5,5/0,0/0
endmode
> おそらく、カスタマイズの際に rgba の項目を変更する手順を行っております
> ので、変更点を確認してみるのも良いかと思います。
変更点につきましては、再度見直しを実施したいと思います。
以上よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
001.jpg | |
002.jpg | |
003.jpg | |
004.jpg | |
005.jpg |
at_kojiro.yamada
e-yamada
at_kojiro.yamada様
ご回答いただきありがとうございます。
> 画像(動画)を、
> ・Armadillo-840 から 他のモニタに表示する
> ・Armadillo-840以外(PCなど) から そのモニタに表示する
> といった場合はどうなるでしょうか?
ご教示いただきました情報より、表示するファイル(動画)・モニタの変更にて
確認を行いましたが、状態に変化は見られませんでした。
>> おそらく、カスタマイズの際に rgba の項目を変更する手順を行っております
>> ので、変更点を確認してみるのも良いかと思います。
変更点について再度見直しを行ったところ、
下記の箇所にてRGBの設定をRGB565に変更している事が判明しました。
/arch/arm/mach-shmobile/board-armadillo840.c
static struct sh_mobile_lcdc_info lcdc0_info = {
.ch[0] = {
.fourcc = V4L2_PIX_FMT_BGR32,
.fourcc = V4L2_PIX_FMT_RGB565, ★変更
static struct sh_mobile_lcdc_info lcdc1_info = {
.ch[0] = {
.fourcc = V4L2_PIX_FMT_BGR32,
.fourcc = V4L2_PIX_FMT_RGB565, ★変更
これを元に戻す事でfbsetが下記の出力となり、色の表示が正しく行われる事が確認できました。
[root@armadillo840-0 (ttySC2) ~]# fbset -fb /dev/fb0
mode "1920x1080-30"
# D: 74.996 MHz, H: 34.089 kHz, V: 30.302 Hz
geometry 1920 1080 1920 4320 32
timings 13334 148 88 1 1 44 43
rgba 8/16,8/8,8/0,8/24
endmode
お忙しい中ご教示いただきまして誠にありがとうございました。
今後ともよろしくお願いいたします。
at_kojiro.yamada
2017年7月24日 21時44分
> お世話になっております。
>
> armadillo-840にて、gstreamerによる動画再生時を行っておりますが、
> RGBが正しく表示されておらず、改善方法を検討しております。
RGBが正しく表示されない、とはどのような見た目になっているのでしょうか?
RGBが正しく表示された画像 と RGBが正しく表示されていない画像が無いと
カラーフォーマットを変更することで解決するかどうかもわかりません。
Armadillo-840 製品マニュアル 6.3. ビデオ(※)にて、
HDMIモニタおよびLCDにテスト画像を表示させる方法が記載されています。
そちらを実行した場合は、どのような見た目になっているのでしょうか?
※ http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
>
> 現状のfbsetは下記の出力となっており、RGBは565となっております。
>
> mode "1280x1024-60"
> # D: 108.003 MHz, H: 63.983 kHz, V: 60.021 Hz
> geometry 1280 1024 1920 4096 16
> timings 9259 248 48 1 1 112 40
> hsync high
> vsync high
> rgba 5/11,6/5,5/0,0/0 ★
> endmode
>
> 下記ページの解説では、カラーフォーマットはARGB8888・RGB565の2種類との記載があり、
> 必要に応じて変更可能と思われますが、変更方法についてご教示いただきたく存じます。
APIとしては
1. struct fb_var_screeninfo の メンバ変数(red,green,blue,transp)に、
bit fieldのoffsetとlengthをセット
2. ioctl で FBIOPUT_VSCREENINFO を発行
することで変更します。
atmark-distで利用しているbusybox版のfbsetでは、rgba の項目を変更できま
せんでした(対応していなかったため)。
debian wheezyのfbsetでは、対応しています。
debian wheezyのfbsetのarmhf用バイナリ(※)を添付しますので
[Armadillo-840]# chmod +x ./fbset
[Armadillo-840]# ./fbset -fb /dev/fb1 -rgba "8/16,8/8,8/0,8/24"
のようにして変更できるか確かめてみてください。
※ 下記URLからarmhf用のdebianパッケージをダウンロードし、dpkg -xでパッケージ
を展開してバイナリを抜き出しました。
https://packages.debian.org/wheezy/fbset
また、Armadillo-840の標準イメージ + Armadillo-840液晶モデル開発セットの
組み合わせでは、
rgba 8/16,8/8,8/0,8/24
となっておりますので、
ハードウェアおよびソフトウェアに対して何かしらカスタマイズをされている
かと思います。
おそらく、カスタマイズの際に rgba の項目を変更する手順を行っております
ので、変更点を確認してみるのも良いかと思います。