AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
AG903_PgpMgrSetConfigColorSpace 関数

色空間変換を制御するパラメータ設定

Syntax
C++
int32_t AG903_PgpMgrSetConfigColorSpace(AG903_PgpMgrPipelineHandle * handle, uint32_t limit, uint32_t shift, int32_t mtx[3][4]);
引数 
説明 
AG903_PgpMgrPipelineHandle * handle 
[in] パイプラインハンドルを指定します。 
uint32_t limit 
[in] 出力時のリミット動作を指定します。 
uint32_t shift 
[in] 出力時の右シフト量を指定します。 
int32_t mtx[3][4] 
[in] 色空間変換係数を指定します。 

設定結果

返値の詳細 
説明 
正常終了 
-AG903_EINVAL 
handleに不正な値が指定された場合
limitに不正な値が指定された場合
shiftに不正な値が指定された場合
mtxにNULLが指定された場合 

色空間変換を制御するパラメータを設定します。 

引数に指定可能な範囲は以下の通りです。

引数 
設定可能範囲 
limit 
shift 
mtx 
3x4マトリクスの符号付き整数
加算要素:20bit
それ以外:12bit 

PGPリミット のうち、AG903_PGP_MGR_LIMIT_0_255 / AG903_PGP_MGR_LIMIT_16_235_AND_240 が指定可能です。

マトリクスの3x4の要素は下位12bitが有効となり、加算要素は下位19bitが有効となります。

1: int32_t AG903_PgpMgrSetConfigColorSpace(AG903_PgpMgrPipelineHandle *handle, uint32_t limit, uint32_t shift, int32_t mtx[3][4]) 2: { 3: int32_t i; 4: 5: 6: if ((handle == NULL) || (handle->id != AG903_PGP_MGR_PIPELINE_HANDLE_ID)) { 7: return -AG903_EINVAL; 8: } 9: 10: 11: switch (limit) { 12: case AG903_PGP_MGR_LIMIT_0_255: 13: case AG903_PGP_MGR_LIMIT_16_235_AND_240: 14: break; 15: default: 16: return -AG903_EINVAL; 17: } 18: if (shift > AG903_PGP_MGR_MAX_COLOR_SPACE_SHIFT) { 19: return -AG903_EINVAL; 20: } 21: if (mtx == NULL) { 22: return -AG903_EINVAL; 23: } 24: 25: 26: handle->csc1_limit = limit; 27: handle->csc1_shift = shift; 28: for (i = 0; i < 3; i++) { 29: handle->csc1_matrix[i][0] = mtx[i][0] & CSC_MUL_MASK; 30: handle->csc1_matrix[i][1] = mtx[i][1] & CSC_MUL_MASK; 31: handle->csc1_matrix[i][2] = mtx[i][2] & CSC_MUL_MASK; 32: handle->csc1_matrix[i][3] = mtx[i][3] & CSC_ADD_MASK; 33: } 34: handle->is_config_dirty[AG903_PGP_MGR_CONFIG_COLOR_SPACE] = true; 35: handle->is_dirty = true; 36: return AG903_ENONE; 37: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.