HDMI出力の画面サイズ

はじめまして、システム開発初心者のおのみちです

現在、抱えている問題が2点ありますので是非お力添えをお願い致します。

RZ/A2MのEvaluation Bord Kitを使ってイメージセンサから入手した画像をディスプレイに出力するプログラムを

「rza2m_cam_and_disp_sample_freertos_gcc」のサンプルプログラムベースに開発しております。

1)画面出力サイズが変更されない

ラズパイカメラではないイメージセンサを使用しているため、カメラの初期設定、レジスタ等は変更済みなのですが、

取得画像サイズ(640×480)を(600×800)に変更すると画面に出力されず困っております。

デバッガによるブレークポイントではR_BCD_CamerCaptureStatus()で-1が返ってしまうことで、whileループに入ってしまうようです。

frame_buf_idに値が格納されていないことを考えるとバッファメモリ等の不足などが考えられるのでしょうか

また、カメラ側の問題ではなく、ディスプレイ出力側の問題もあるのでしょうか。

2)画面に二重で出力される

プログラムを(640×480)で動かすと、1)と同じブレークポイントで止っているのですが、電源投入時にはプログラムは動き

画面にカメラ画像が出力されます。ただ、画面半分が二重に出力されて表示されてしまいます。

おそらく時間軸的なズレだと思うので上記でのframe_bufが影響していると思われるのですがわかる方教えていただけますでしょうか。

宜しくお願い致します。

  • 1) 画面出力サイズが変更されない 2 ) 画面に二重で出力されるについて

    「rza2m_cam_and_disp_sample_freertos_gcc」のサンプルプログラムベースで回答します。

    ラズパイカメラの設定は、800x600以上の出力されるように設定を変更します。

    /* binning (digital) mode */
    {0x01, 0x74, 0x01},
    {0x01, 0x75, 0x01},
    {0x01, 0x76, 0x01},
    {0x01, 0x77, 0x01},
       ↓
    /* binning (digital) mode */
    {0x01, 0x74, 0x00},
    {0x01, 0x75, 0x00},
    {0x01, 0x76, 0x00},
    {0x01, 0x77, 0x00},

    カメラの取り込みサイズを以下で修正します。

    以下①、②は、クリップサイズの指定になり、800、600に変更します。
    ③については、画像のストライドを設定します。
    RAW画像については、64pixel単位で設定する必要がある為、832pixelとします。

    camera_imx219_b.h
    /* VIN capture setting */
    ①#define CAM_VIN_PRECLIP_WIDTH_Y (600u) /* Line width of pre clip area */
         :
    ②#define CAM_VIN_PRECLIP_WIDTH_X (800u) /* Pixel width of pre clip area */
         :
         :
    ③#define CAM_VIN_OUTPUT_IS (832u) /* Image Stride size */


    表示の設定については、以下を変更します。
    r_bcd_lcd.h
    #define R_BCD_LCD_WIDTH (640u)
    #define R_BCD_LCD_HEIGHT (480u)

    #define R_BCD_LCD_WIDTH (800u)
    #define R_BCD_LCD_HEIGHT (600u)

    以上です。

  • 返信遅くなり大変申し訳ありません。

    どうやら、カメラの取り込みサイズを見落としていたようです。。

    ご教示いただいた通りで解決致しました。

    ありがとうございます。