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

スケーリングのパラメータ設定

Syntax
C++
int32_t AG903_PgpMgrSetConfigScaling(AG903_PgpMgrPipelineHandle * handle, uint32_t limit, uint32_t filter, uint32_t nmr_v, uint32_t dnm_v, uint32_t nmr_h, uint32_t dnm_h);
引数 
説明 
AG903_PgpMgrPipelineHandle * handle 
[in] パイプラインハンドルを指定します。 
uint32_t limit 
[in] 出力時のリミット動作を指定します。 
uint32_t filter 
[in] 縮小時のフィルタモードを指定します。 
uint32_t nmr_v 
[in] 垂直方向縮小率の分子を指定します。 
uint32_t dnm_v 
[in] 垂直方向縮小率の分母を指定します。 
uint32_t nmr_h 
[in] 水平方向縮小率の分子を指定します。 
uint32_t dnm_h 
[in] 水平方向縮小率の分母を指定します。 

設定結果

返値の詳細 
説明 
正常終了 
-AG903_EINVAL 
handleに不正な値が指定された場合
limitに不正な値が指定された場合
nmr_vに不正な値が指定された場合
dnm_vに不正な値が指定された場合
nmr_hに不正な値が指定された場合
dnm_hに不正な値が指定された場合 

スケーリングのパラメータを設定します。 

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

引数 
設定可能範囲 
limit 
filter 
nmr_v 
dnm_v 
nmr_h 
dnm_h 

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

1: int32_t AG903_PgpMgrSetConfigScaling(AG903_PgpMgrPipelineHandle *handle, uint32_t limit, uint32_t filter, uint32_t nmr_v, uint32_t dnm_v, uint32_t nmr_h, uint32_t dnm_h) 2: { 3: 4: if ((handle == NULL) || (handle->id != AG903_PGP_MGR_PIPELINE_HANDLE_ID)) { 5: return -AG903_EINVAL; 6: } 7: 8: 9: switch (limit) { 10: case AG903_PGP_MGR_LIMIT_0_255: 11: case AG903_PGP_MGR_LIMIT_16_235_AND_240: 12: break; 13: default: 14: return -AG903_EINVAL; 15: } 16: switch (filter) { 17: case AG903_PGP_MGR_FILTER_NEAREST: 18: case AG903_PGP_MGR_FILTER_LINEAR: 19: break; 20: default: 21: return -AG903_EINVAL; 22: } 23: if ((nmr_v == 0) || (nmr_v > AG903_PGP_MGR_MAX_SCALING_VALUE)) { 24: return -AG903_EINVAL; 25: } 26: if ((dnm_v == 0) || (dnm_v > AG903_PGP_MGR_MAX_SCALING_VALUE)) { 27: return -AG903_EINVAL; 28: } 29: if ((nmr_h == 0) || (nmr_h > AG903_PGP_MGR_MAX_SCALING_VALUE)) { 30: return -AG903_EINVAL; 31: } 32: if ((dnm_h == 0) || (dnm_h > AG903_PGP_MGR_MAX_SCALING_VALUE)) { 33: return -AG903_EINVAL; 34: } 35: 36: 37: handle->scale_limit = limit; 38: handle->scale_mtd = filter; 39: handle->scale_v_nmr = nmr_v; 40: handle->scale_v_dnm = dnm_v; 41: handle->scale_h_nmr = nmr_h; 42: handle->scale_h_dnm = dnm_h; 43: handle->is_config_dirty[AG903_PGP_MGR_CONFIG_SCALING] = true; 44: handle->is_dirty = true; 45: return AG903_ENONE; 46: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.