2-06 カメラのRGB565フォーマットに合わせる

●カメラから画像データが出てくる

 図2‐31は本企画で使用するCMOSカメラモジュール(OV5642)です。このモジュールからVGAサイズのカラー(RGB)動画が出てきますが、そのデータバスは
8ビットしかありません。

図2-31

●RGB565フォーマットとは

 図2‐32に画像データバスCamDataからのデータフォーマットを示します。
 R/G/Bの成分はそれぞれ
5/6/5ビットで、R(5bit)&G(3bit)で計8ビット、その次はG(3bit)&B(5bit)で計8ビット・・・このようにRGB成分が多重化され、1画素が2回に分けて送られます。

図2‐32

●Pythonもカメラと同じフォーマットにする

 ここでは入力画像を0〜255の範囲で整数化しました(符号なし
8ビット)。RGB、3色で計24ビットになりますが、実際にカメラから送られる画像はRGB565で計16ビットになります。
 本企画では最終的に「Pythonでの演算」と「FPGA内部での演算」の一致を見ます。そのためには、入力画像のビット数もそろえなければなりません。

図2‐33 X_testの操作

●下位ビットを切り捨ててRGB565にする

 したがって図2‐33のようにX_test(入力画像が入る変数)を操作します。BとRは8で割る→小数点以下切り捨て→8を掛ける→これで下位3ビットが0になり、実質的に5ビットになります。
 Gだけは6ビットあるので4で割る→小数点以下切り捨て→4を掛ける→これで下位2ビットが0になます。

 このようにPythonにおける入力画像をカメラモジュールと同じRGB565とします。


次のページへ


目次へ戻る