Skip to content

画像復号 (デコード) 処理 API

This content is not available in your language yet.

INFINICAM から受信した独自 DCT 圧縮データを、CPU または GPU を使用してラスタ画像データ(Raw 8bit / Bayer 構造)へ復号する API 仕様です。


1. CPU 画像復号 (標準 / ROI / DC 抽出)

Section titled “1. CPU 画像復号 (標準 / ROI / DC 抽出)”
PUCRESULT WINAPI PUC_DecodeFrame(UCHAR* pSrcBuf, UINT32 nSrcSize, UCHAR* pDstBuf, UINT32 nDstSize);

1 フレーム分の圧縮データをフルサイズ(1/1 スケール)のラスタ画像に復号します。

引数 / 戻り値 型 説明
pSrcBuf UCHAR* [in] カメラから受信した圧縮データバッファ
nSrcSize UINT32 [in] 圧縮データのサイズ (バイト単位)
pDstBuf UCHAR* [out] 復号画像(Bayer / 8bit)の格納先バッファ
nDstSize UINT32 [in] 復号バッファのサイズ (Width * Height バイト以上)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧

PUCRESULT WINAPI PUC_DecodeFrameROI(
UCHAR* pSrcBuf, UINT32 nSrcSize,
UINT32 nOffsetX, UINT32 nOffsetY,
UINT32 nWidth, UINT32 nHeight,
UCHAR* pDstBuf, UINT32 nDstSize
);

圧縮データから指定した部分領域(ROI)のみを抽出して復号します。全系をデコードするより高速に処理できます。

引数 / 戻り値 型 説明
pSrcBuf UCHAR* [in] 圧縮データバッファ
nSrcSize UINT32 [in] 圧縮データのサイズ
nOffsetX / nOffsetY UINT32 [in] 抽出開始座標 (8 の倍数で指定)
nWidth / nHeight UINT32 [in] 抽出サイズ (8 の倍数で指定)
pDstBuf UCHAR* [out] 復号画像の格納先バッファ
nDstSize UINT32 [in] 格納先バッファサイズ (nWidth * nHeight バイト以上)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 範囲エラーは PUC_ERROR_ILLEGAL_ARG

PUCRESULT WINAPI PUC_DecodeFrameDC(UCHAR* pSrcBuf, UINT32 nSrcSize, UCHAR* pDstBuf, UINT32 nDstSize);

DCT 圧縮データの DC(直流)成分のみを抽出し、解像度が縦横 1/8 に縮小された高速プレビュー画像を復号します。

引数 / 戻り値 型 説明
pSrcBuf UCHAR* [in] 圧縮データバッファ
nSrcSize UINT32 [in] 圧縮データのサイズ
pDstBuf UCHAR* [out] 1/8 プレビュー画像の格納先バッファ
nDstSize UINT32 [in] 格納先バッファサイズ ((Width/8) * (Height/8) バイト以上)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧

PUC_SetDecodeThreadCount / PUC_GetDecodeThreadCount

Section titled “PUC_SetDecodeThreadCount / PUC_GetDecodeThreadCount”
PUCRESULT WINAPI PUC_SetDecodeThreadCount(UINT32 nCount);
PUCRESULT WINAPI PUC_GetDecodeThreadCount(UINT32* pCount);

CPU デコード処理で使用する並列スレッド数を設定・取得します。

引数 / 戻り値 型 説明
nCount / pCount UINT32 / UINT32* スレッド数 (1 ~ PUC_MAX_DECODE_THREAD_COUNT)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧

2. ヘッダー & シーケンス情報抽出

Section titled “2. ヘッダー & シーケンス情報抽出”
PUCRESULT WINAPI PUC_GetSequenceNo(UCHAR* pSrcBuf, UINT32 nSrcSize, UINT32* pSequenceNo);

圧縮データ内のヘッダーから、カメラ内部で付与された連続連番(シーケンス番号)を抽出します。コマ落ち検知に利用できます。

引数 / 戻り値 型 説明
pSrcBuf UCHAR* [in] 圧縮データバッファ
nSrcSize UINT32 [in] 圧縮データのサイズ
pSequenceNo UINT32* [out] 抽出されたシーケンス番号の格納先
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / ヘッダー不正は PUC_ERROR_XFER_DATA_INVALID_HEADER

NVIDIA GPU(CUDA)を利用して大解像度・超高フレームレート時のデコード処理をアクセラレーションする API 群です。

PUCRESULT WINAPI PUC_SetupGPUDecode(UINT32 nWidth, UINT32 nHeight);
PUCRESULT WINAPI PUC_FreeGPUDecode();

GPU デコード用リソースの初期化および解放を行います。

引数 / 戻り値 型 説明
nWidth / nHeight UINT32 [in] デコード対象の画像解像度 (幅 / 高さ)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / GPUエラー時は PUC_ERROR_GPU_UNINITIALIZE

PUCRESULT WINAPI PUC_GPUDecodeFrame(UCHAR* pSrcBuf, UINT32 nSrcSize, UCHAR* pDstGpuBuf);

GPU (CUDA) を使用して 1 フレーム分の圧縮データを高速復号します。

引数 / 戻り値 型 説明
pSrcBuf UCHAR* [in] ホスト(CPU)側の圧縮データバッファ
nSrcSize UINT32 [in] 圧縮データのサイズ
pDstGpuBuf UCHAR* [out] GPU デバイスメモリ上の復号画像格納先ポインタ
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / GPU例外発生時は PUC_ERROR_GPU_DECODE_PROCESS