browser!スポンサー公告募集中1.SSPライブラリのデータ構造SSPライブラリでは以下に列挙するデータ構造を持つ。基本関数はSSP_RESULT型の実行結果を返す。以下の返値が用意されている。致命的エラーが発生した(2)画像フレームタイプSSPライブラリでは以下の画像フレームタイプをカメラからの出力画像として取り出すことができる。この型をssp_frame_preprocess_options構造体のFormatConvertTypeに指定することで、ユーザレベルで受け取る画像フレームタイプを規定できる。...と10ビットの画素が並ぶ。...と8ビットの画素が並ぶ。...と8ビットの画素が並ぶ。10ビットまたは、8ビットのBayerしかサポートしないデバイスの場合は、それらのデータを16ビットに変換している。24ビットRGBフォーマットであり、8ビットにパックされた、R、G、Bの要素がこの順で並ぶ。Bayerからの変換は、ACPI方式を用いている。YUV444フォーマットであり、8ビットにパックされた、Y、Cb、Crがこの順で並ぶ。BT.601変換をRGB24から行う。YUV422フォーマットであり、8ビットにパックされた、Y0、Cb00、Y1、Cr01がこの順で並ぶ。BT.601変換をRGB24から行う。2.SSPライブラリの構造体(1)ssp_handle構造体SSPライブラリを利用する際には、ユーザアプリケーションからはハンドルと呼ばれる構造体を元にして、基本関数を呼び出す。ハンドルは基本関数の初期化関数で作成する。以下のようなメンバを持つ。ユーザ側で利用できるポインタであり、例えば、フレーム処理関数に渡されたハンドルでもこのポインタの値は共通に保持される。SSPライブラリを通して、グローバル変数のように用いる事ができる。基本関数の初期関数が呼ばれた直後に、このポインタは設定されなくてはならない。ユーザから与えられた設定情報であり、それをもとにユーザに自動認識したハードウェア情報なを返す構造体である。構造体ユーザ側への画像フレームはこの構造体で返される。この構造体を操作する際は専用のマクロと基本関数を使うべきである。画像フレームのタイプを表す。画像フレームの幅を画素数を保持する。単位が画素数であるため、バイト数に注意する。画像フレームの高さを画素数で保持する。ssp_settings構造体SSPライブラリでは、ユーザでこの構造体を作成し、初期化関数に渡すことで環境設定を行う。この構造体は静的、動的を問わず、ユーザ側で作成され、さらに、SSPライブラリの終了まで保持されなければいけない。この構造体には複数の構造体を含むので、参照する際に注意が必要である。ユーザ側で初期値を提供するべき変数と、システム側で値を設定する変数があるので、注意が必要である。下記表ではユーザが初期化する変数については「(ユーザ)」とマークしている。ライブラリの基本設定のための構造体である。フレーム画像前処理の設定である。フレームイベントFIFOがFULLの際にSSPライブラリがフレームをFIFOに書き込もうとする際、または、メモリ確保に失敗したときに、この関数が呼ばれる。落とされたフレームはSSPライブラリ側で破棄される。フレーム画像前処理の際にメモリ確保に失敗すると、この関数が呼ばれる。落とされたフレームはSSPライブラリ側で破棄される。フレーム画像前処理の最後に呼び出されるユーザ側のフレーム処理関数を設定する。この関数を介して、フレーム画像データをユーザ側で受け取り、処理できる。画像前処理後の画像フレームのフォーマットを指定する。ガンマ補正を必要とするかをSSP_ENABLE、SSP_DISABEで指定する。ガンマ補正に用いる補正値(ユーザ)フレーム画像の前処理は、FormatConvertType、及び、GammaCorrectionEnableの値に従って、(1)Bayer→RGB変換、(2)ガンマ補正、(3)RGB→YUV変換、の順で実行され、ユーザ側のフレーム処理イベント関数fame_preprocess_user_funcが呼び出される。3.SSPライブラリの関数SSPライブラリでは、以下の関数を用いて、イメージセンサーを制御する。*settings);SSPライブラリを用いる際に最初に呼び出されなければいけない。ssp_settings構造体はユーザ側で用意し、そのポインタを渡す。ssp_profile構造体をssp_read_profile関数で作成して渡す。ssp_handleへのポインタが返される。*handle);SSPライブラリの終了時には、この関数が呼びされなければいけない。この関数の引数のhandleは初期関数で返されたポインタを渡す。ssp_profile構造体を作成する。*handle);イメージセンサーをアクティブにし、画像フレームを受け取りはじめる。*handle);イメージセンサーを停止し、画像フレーム取得を停止する。*handle);フレームイベントのFIFOの中身が全て、フレーム画像前処理スレッドで処理されるまで実行をブロックする関数である。*handle);フレームイベントのFIFOの中身を全て削除する。この場合、処理されなかったイベントに含まれるフレームは全て破棄される。*size);フレーム画像のバイト数を取得する。4.SSPライブラリのマクロ(1)ssp_get_frame_data(frame)はフレーム画像のFrameDataを返す(2)ssp_get_frame_type(frame)はフレーム画像のFrameTypeを返す。(3)ssp_get_frame_height(frame)はフレーム画像のHeightを返す。(4)ssp_get_frame_width(frame)はフレーム画像のWidthを返す。(5)ssp_release_frame(frame)はフレーム画像を解放する。この解放マクロは、ユーザが提供するフレーム処理関数の最後で必ず呼び出されなければいけない。このマクロが呼び出されない場合、フレームを解放する手段がSSPライブラリには用意されていないので、メモリリークとなる。Corporation.。