AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
pgpmgr.h

PGP Manager Header

PGP Manager Layer.

none

AXELL CORPORATION

2017_02_22 初版 

2017_10_26 Ver2.0 

2018_01_24 [SDK2.1] 画像前処理の制限項目によるエラーチェックと説明文の追加 (#1773) 

2018_01_24 [SDK2.1] ディザリング機能を有効にしても適切なパイプラインが割当てられない不具合対応 (#1767) 

2018_01_24 [SDK2.1] パイプライン入力ポートに指定するデジタルビデオ入力ポートハンドルの型に誤り (#1757) 

2019_03_08 [SDK2.2] PGPでのMALLOC/FREEの定義にプレフィックスを追加 (#2432) 

2019_12_27 [SDK3.0] PGPのラベリング解析関数が確保したリソースを解放する関数を追加 (#1951)

1: 14: 15: 19: 20: #ifndef PGPMGRH 21: #define PGPMGRH 22: 23: 24: #ifdef __cplusplus 25: extern "C" { 26: #endif 27: 28: #include <stdint.h> 29: #include <stdbool.h> 30: #include "AG903_errno.h" 31: 32: 36: #define AG903_PGP_MGR_TS_FORCE_DISABLE 37: 38: #ifdef AG903_PGP_MGR_TS_FORCE_DISABLE 39: 40: #define AG903_PGP_MGR_MAX_PIPELINE_HANDLE (6) 41: 42: #define AG903_PGP_MGR_MAX_VRAMI_HANDLE (4) 43: 44: #define AG903_PGP_MGR_MAX_FRAME_CALC_HANDLE (2) 45: 46: #define AG903_PGP_MGR_MAX_DGC_LUT (8) 47: #else 48: #define AG903_PGP_MGR_MAX_PIPELINE_HANDLE (16) 49: #define AG903_PGP_MGR_MAX_VRAMI_HANDLE (16) 50: #define AG903_PGP_MGR_MAX_FRAME_CALC_HANDLE (16) 51: #define AG903_PGP_MGR_MAX_DGC_LUT (16) 52: #endif 53: 54: 55: #define AG903_PGP_MGR_PIPELINE_NUM (6) 56: 57: #define AG903_PGP_MGR_VRAMI_NUM (4) 58: 59: #define AG903_PGP_MGR_CALC_PIPELINE_NUM (2) 60: 61: 62: #define AG903_PGP_MGR_CALC_PIPELINE0 (0) 63: 64: #define AG903_PGP_MGR_CALC_PIPELINE1 (1) 65: 66: #define AG903_PGP_MGR_INPUT_PIPELINE0 (2) 67: 68: #define AG903_PGP_MGR_INPUT_PIPELINE1 (3) 69: 70: #define AG903_PGP_MGR_FRAME_PIPELINE0 (4) 71: 72: #define AG903_PGP_MGR_FRAME_PIPELINE1 (5) 73: 74: 75: #define AG903_PGP_MGR_PIPELINE_CMD_MAX_QUEUE (4) 76: 77: #define AG903_PGP_MGR_VI_CMD_MAX_QUEUE (4) 78: 79: #define AG903_PGP_MGR_LBL_CMD_MAX_QUEUE (4) 80: 81: #define AG903_PGP_MGR_HGM_CMD_MAX_QUEUE (4) 82: 83: 84: #define AG903_PGP_MGR_PIPELINE_HANDLE_ID (0x11223344) 85: 86: #define AG903_PGP_MGR_VRAM_INPUT_HANDLE_ID (0x55667788) 87: 88: #define AG903_PGP_MGR_FRAME_CALC_HANDLE_ID (0x99AABBCC) 89: 90: #define AG903_PGP_MGR_DGC_LUT_ID (0xDDEEFF00) 91: 92: 93: #define AG903_PGP_MGR_CMD_NONE (0x0) 94: 95: #define AG903_PGP_MGR_CMD_EXEC (0x1) 96: 97: #define AG903_PGP_MGR_CMD_EXEC_CONTINUE (0x2) 98: 99: #define AG903_PGP_MGR_CMD_TRIG (0x3) 100: 101: #define AG903_PGP_MGR_CMD_TRIG_CONTINUE (0x4) 102: 103: #define AG903_PGP_MGR_CMD_IDLE (0x8) 104: 105: #define AG903_PGP_MGR_CMD_RESET_TIMESTAMP_CNT (0x9) 106: 107: #define AG903_PGP_MGR_CMD_RESET_FRAME_CNT (0xA) 108: 109: #define AG903_PGP_MGR_CMD_RESET_INTR_CNT (0xB) 110: 111: #define AG903_PGP_MGR_CMD_FORCE_QUIT (0xF) 112: 113: 114: #define AG903_PGP_MGR_INTR_CTRL_FIELD_ODD (0x1) 115: 116: #define AG903_PGP_MGR_INTR_CTRL_FIELD_EVEN (0x2) 117: 118: #define AG903_PGP_MGR_INTR_CTRL_FIELD_ODD_EVEN (0x3) 119: 120: 121: #define AG903_PGP_MGR_INTR_CTRL_MAX_FRAME_CNT (16) 122: 123: 124: #define AG903_PGP_MGR_INTR_CTRL_MAX_INPUT_LINE (8191) 125: 126: #define AG903_PGP_MGR_INTR_CTRL_MAX_OUTPUT_LINE (4095) 127: 128: 129: #define AG903_PGP_MGR_STATE_IDLE (0x0) 130: 131: #define AG903_PGP_MGR_STATE_1SHOT (0x1) 132: 133: #define AG903_PGP_MGR_STATE_CONTINUE (0x2) 134: 135: #define AG903_PGP_MGR_STATE_TRIG (0x3) 136: 137: #define AG903_PGP_MGR_STATE_TRIG_CONTINUE (0x4) 138: 139: #define AG903_PGP_MGR_STATE_FORCE_QUIT (0xF) 140: 141: #define AG903_PGP_MGR_SUBSTATE_TRIG_WAIT (0x1) 142: 143: #define AG903_PGP_MGR_SUBSTATE_VSYNC_WAIT (0x2) 144: 145: #define AG903_PGP_MGR_SUBSTATE_EXEC (0x3) 146: 147: 148: #define AG903_PGP_MGR_TRIG_CTRL_FIELD_ODD (0x1) 149: 150: #define AG903_PGP_MGR_TRIG_CTRL_FIELD_EVEN (0x2) 151: 152: #define AG903_PGP_MGR_TRIG_CTRL_FIELD_ODD_EVEN (0x3) 153: 154: 155: #define AG903_PGP_MGR_TRIG_CTRL_MAX_FRAME_CNT (16) 156: 157: 158: #define AG903_PGP_MGR_TRIG_CTRL_MAX_INPUT_LINE (8191) 159: 160: #define AG903_PGP_MGR_TRIG_CTRL_MAX_OUTPUT_LINE (4095) 161: 162: 163: #define AG903_PGP_MGR_MAX_INPUT_HSYNC_DELAY (0x7) 164: 165: 166: #define AG903_PGP_MGR_INPUT_MD_VSYNC (0) 167: 168: #define AG903_PGP_MGR_INPUT_MD_ODD_VSYNC (1) 169: 170: 171: #define AG903_PGP_MGR_INPUT_TIME_CLK0 (0) 172: 173: #define AG903_PGP_MGR_INPUT_TIME_CLK1 (1) 174: 175: 176: #define AG903_PGP_MGR_MAX_TRIG_TIMER_CHANNEL (7) 177: 178: 179: #define AG903_PGP_MGR_INPUT_PORT_VIA_0 (0) 180: 181: #define AG903_PGP_MGR_INPUT_PORT_VIA_1 (1) 182: 183: #define AG903_PGP_MGR_INPUT_PORT_VIA_2 (2) 184: 185: #define AG903_PGP_MGR_INPUT_PORT_VIA_3 (3) 186: 187: #define AG903_PGP_MGR_INPUT_PORT_VID_0 (4) 188: 189: #define AG903_PGP_MGR_INPUT_PORT_VID_1 (5) 190: 191: #define AG903_PGP_MGR_INPUT_PORT_VID_2 (6) 192: 193: #define AG903_PGP_MGR_INPUT_PORT_VID_3 (7) 194: 195: #define AG903_PGP_MGR_INPUT_PORT_VRAM_0 (8) 196: 197: #define AG903_PGP_MGR_INPUT_PORT_VRAM_1 (9) 198: 199: 200: #define AG903_PGP_MGR_INPUT_FMT_RGB888 (0x0) 201: 202: #define AG903_PGP_MGR_INPUT_FMT_RGB565 (0x1) 203: 204: #define AG903_PGP_MGR_INPUT_FMT_YCBCR444 (0x2) 205: 206: #define AG903_PGP_MGR_INPUT_FMT_YCBCR422_WO_IP (0x3) 207: 208: #define AG903_PGP_MGR_INPUT_FMT_YCBCR422_W_IP (0x4) 209: 210: #define AG903_PGP_MGR_INPUT_FMT_CLUT8 (0x5) 211: 212: #define AG903_PGP_MGR_INPUT_FMT_CLUT1 (0x6) 213: 214: 215: #define AG903_PGP_MGR_IFCODR_FRAME_TO_OTHER (0x0) 216: 217: #define AG903_PGP_MGR_IFCODR_OTHER_TO_FRAME (0x1) 218: 219: 220: #define AG903_PGP_MGR_MAX_INPUT_SIZE (4096) 221: 222: 223: #define AG903_PGP_MGR_MAX_INPUT_POS (8191) 224: 225: 226: #define AG903_PGP_MGR_MAX_OUTPUT_PAD (255) 227: 228: 229: #define AG903_PGP_MGR_LIMIT_NONE (0x0) 230: 231: #define AG903_PGP_MGR_LIMIT_0_255 (0x0) 232: 233: #define AG903_PGP_MGR_LIMIT_16_235_AND_240 (0x1) 234: 235: #define AG903_PGP_MGR_LIMIT_M128_127 (0x2) 236: 237: 238: #define AG903_PGP_MGR_SCAN_PROGRESSIVE (0x0) 239: 240: #define AG903_PGP_MGR_SCAN_INTERLACE (0x1) 241: 242: 243: #define AG903_PGP_MGR_ADDR_DIMENTION_1 (0x0) 244: 245: #define AG903_PGP_MGR_ADDR_DIMENTION_2 (0x1) 246: 247: 248: #define AG903_PGP_MGR_OUTPUT_MAX_STRIDE_BYTE (16384) 249: 250: 251: #define AG903_PGP_MGR_OUTPUT_FRAME_SAVE_ODD (0x0) 252: 253: #define AG903_PGP_MGR_OUTPUT_FRAME_SAVE_EVEN (0x1) 254: 255: #define AG903_PGP_MGR_OUTPUT_FRAME_SAVE_IGNORE_FIELD (0x2) 256: 257: #define AG903_PGP_MGR_OUTPUT_FRAME_SAVE_FIELD (0x3) 258: 259: #define AG903_PGP_MGR_OUTPUT_FRAME_SAVE_WEAVE (0x4) 260: 261: 262: #define AG903_PGP_MGR_OUTPUT_BMU_NONE (0x0) 263: 264: #define AG903_PGP_MGR_OUTPUT_BMU_ENABLE (0x1) 265: 266: #define AG903_PGP_MGR_OUTPUT_BMU_ENABLE_EVEN (0x2) 267: 268: 269: #define AG903_PGP_MGR_OUTPUT_FMT_RGB888_TO_RGB888_32BIT (0x0) 270: 271: #define AG903_PGP_MGR_OUTPUT_FMT_RGB888_TO_RGB888_24BIT (0x1) 272: 273: #define AG903_PGP_MGR_OUTPUT_FMT_RGB888_TO_RGB565 (0x2) 274: 275: #define AG903_PGP_MGR_OUTPUT_FMT_RGB888_TO_ARGB1555 (0x3) 276: 277: #define AG903_PGP_MGR_OUTPUT_FMT_RGB888_TO_ARGB4444 (0x4) 278: 279: #define AG903_PGP_MGR_OUTPUT_FMT_RGB888_TO_RGB888_SEP (0x5) 280: 281: #define AG903_PGP_MGR_OUTPUT_FMT_YCBCR444_TO_YCBCR444_32BIT (0x8) 282: 283: #define AG903_PGP_MGR_OUTPUT_FMT_YCBCR444_TO_YCBCR444_24BIT (0x9) 284: 285: #define AG903_PGP_MGR_OUTPUT_FMT_YCBCR444_TO_YCBCR422 (0xA) 286: 287: #define AG903_PGP_MGR_OUTPUT_FMT_YCBCR444_TO_YCBCR444_SEP (0xB) 288: 289: #define AG903_PGP_MGR_OUTPUT_FMT_CLUT8_TO_CLUT8 (0xE) 290: 291: #define AG903_PGP_MGR_OUTPUT_FMT_CLUT1_TO_CLUT1 (0xF) 292: 293: 294: #define AG903_PGP_MGR_INPUT_INTERLACE_EPOS_ZERO (0x0) 295: 296: #define AG903_PGP_MGR_INPUT_INTERLACE_EPOS_ONE (0x1) 297: 298: #define AG903_PGP_MGR_INPUT_INTERLACE_OPOS_ZERO (0x0) 299: 300: #define AG903_PGP_MGR_INPUT_INTERLACE_OPOS_ONE (0x1) 301: 302: 303: #define AG903_PGP_MGR_MAX_IP_BLANK (255) 304: 305: 306: #define AG903_PGP_MGR_MAX_COLOR_SPACE_SHIFT (15) 307: 308: 309: #define AG903_PGP_MGR_FILTER_NEAREST (0x0) 310: 311: #define AG903_PGP_MGR_FILTER_LINEAR (0x1) 312: 313: 314: #define AG903_PGP_MGR_MAX_SCALING_VALUE (16) 315: 316: 317: #define AG903_PGP_MGR_CSC_YUV_BT_601_FULL_TO_RGB (0) 318: 319: #define AG903_PGP_MGR_CSC_RGB_TO_YUV_BT_601_FULL (1) 320: 321: #define AG903_PGP_MGR_CSC_YUV_BT_601_LIMIT_TO_RGB (2) 322: 323: #define AG903_PGP_MGR_CSC_RGB_TO_YUV_BT_601_LIMIT (3) 324: 325: #define AG903_PGP_MGR_CSC_YUV_BT_709_FULL_TO_RGB (4) 326: 327: #define AG903_PGP_MGR_CSC_RGB_TO_YUV_BT_709_FULL (5) 328: 329: #define AG903_PGP_MGR_CSC_YUV_BT_709_LIMIT_TO_RGB (6) 330: 331: #define AG903_PGP_MGR_CSC_RGB_TO_YUV_BT_709_LIMIT (7) 332: 333: 334: #define AG903_PGP_MGR_MAX_SPF_SHIFT (15) 335: 336: 337: #define AG903_PGP_MGR_SPF_BORDER_COLOR (0x0) 338: 339: #define AG903_PGP_MGR_SPF_BORDER_NEIGHBOR (0x1) 340: 341: 342: #define AG903_PGP_MGR_CONVERT_HSV (0x0) 343: 344: #define AG903_PGP_MGR_CONVERT_HLS (0x1) 345: 346: 347: #define AG903_PGP_MGR_HGM_CMD_NONE (0x0) 348: 349: #define AG903_PGP_MGR_HGM_CMD_EXEC (0x1) 350: 351: #define AG903_PGP_MGR_HGM_CMD_EXEC_WO_VRAM (0x2) 352: 353: #define AG903_PGP_MGR_HGM_CMD_DELETE (0x4) 354: 355: #define AG903_PGP_MGR_HGM_CMD_RESET (0x7) 356: 357: 358: #define AG903_PGP_MGR_HGM_EXC_NONE (0x0) 359: 360: #define AG903_PGP_MGR_HGM_EXC_0 (0x1) 361: 362: #define AG903_PGP_MGR_HGM_EXC_0_16 (0x2) 363: 364: #define AG903_PGP_MGR_HGM_EXC_0_WO_R (0x3) 365: 366: 367: #define AG903_PGP_MGR_MAX_HGM_OUTPUT_INVALIDATE (15) 368: 369: 370: #define AG903_PGP_MGR_MAX_HGM_THR (15) 371: 372: 373: #define AG903_PGP_MGR_MAX_HGM_SHIFT (15) 374: 375: 376: #define AG903_PGP_MGR_MAX_HGM_INC (15) 377: 378: 379: #define AG903_PGP_MGR_MAX_HGM_SIZE (1024) 380: 381: 382: #define AG903_PGP_MGR_MAX_HGM_POS (4095) 383: 384: 385: #define AG903_PGP_MGR_THR_OUT_SEL_RGB (0x0) 386: 387: #define AG903_PGP_MGR_THR_OUT_SEL_MUX8 (0x1) 388: 389: #define AG903_PGP_MGR_THR_OUT_SEL_SPF1 (0x2) 390: 391: #define AG903_PGP_MGR_THR_OUT_SEL_LBL (0x3) 392: 393: 394: #define AG903_PGP_MGR_THR_CLUT8_OUT_B (0x0) 395: 396: #define AG903_PGP_MGR_THR_CLUT8_OUT_G (0x1) 397: 398: #define AG903_PGP_MGR_THR_CLUT8_OUT_R (0x2) 399: 400: 401: #define AG903_PGP_MGR_THR_CHANNEL_B (0) 402: 403: #define AG903_PGP_MGR_THR_CHANNEL_G (1) 404: 405: #define AG903_PGP_MGR_THR_CHANNEL_R (2) 406: 407: 408: #define AG903_PGP_MGR_THR_8BIT_TYPE_THR_BIN (0x0) 409: 410: #define AG903_PGP_MGR_THR_8BIT_TYPE_THR_BIN_INV (0x1) 411: 412: #define AG903_PGP_MGR_THR_8BIT_TYPE_TRU (0x2) 413: 414: #define AG903_PGP_MGR_THR_8BIT_TYPE_THR_ZERO (0x3) 415: 416: #define AG903_PGP_MGR_THR_8BIT_TYPE_THR_ZERO_INV (0x4) 417: 418: #define AG903_PGP_MGR_THR_8BIT_TYPE_THR_BIN_EXT (0x8) 419: 420: #define AG903_PGP_MGR_THR_8BIT_TYPE_THR_BIN_INV_EXT (0x9) 421: 422: #define AG903_PGP_MGR_THR_8BIT_TYPE_TRU_EXT (0xA) 423: 424: #define AG903_PGP_MGR_THR_8BIT_TYPE_THR_ZERO_EXT (0xB) 425: 426: #define AG903_PGP_MGR_THR_8BIT_TYPE_THR_ZERO_INV_EXT (0xC) 427: 428: 429: #define AG903_PGP_MGR_LBL_CMD_NONE (0x0) 430: 431: #define AG903_PGP_MGR_LBL_CMD_EXEC (0x1) 432: 433: #define AG903_PGP_MGR_LBL_CMD_DELETE (0x4) 434: 435: #define AG903_PGP_MGR_LBL_CMD_RESET (0x7) 436: 437: 438: #define AG903_PGP_MGR_MAX_LBL_OUTPUT_VALIDATE (16) 439: 440: #define AG903_PGP_MGR_MAX_LBL_OUTPUT_INVALIDATE (15) 441: 442: 443: #define AG903_PGP_MGR_LBL_CNCT_8 (0x0) 444: 445: #define AG903_PGP_MGR_LBL_CNCT_4 (0x1) 446: 447: 448: #define AG903_PGP_MGR_MAX_LBL_FLUSH_THR (255) 449: 450: 451: #define AG903_PGP_MGR_MAX_LBL_ID (255) 452: 453: 454: #define AG903_PGP_MGR_MAX_LBL_VSIZE (1024) 455: 456: 457: #define AG903_PGP_MGR_MAX_LBL_HSIZE (640) 458: 459: 460: #define AG903_PGP_MGR_MAX_LBL_POS (4095) 461: 462: 463: #define AG903_PGP_MGR_IFC_SLAVE_VRAM_UI (0x0) 464: 465: #define AG903_PGP_MGR_IFC_SLAVE_VRAM_I (0x1) 466: 467: #define AG903_PGP_MGR_IFC_SLAVE_PIPELINE (0x2) 468: 469: 470: #define AG903_PGP_MGR_MAX_IFC_GAIN_SHIFT (7) 471: 472: 473: #define AG903_PGP_MGR_IFC_LIMIT_0_255 (0x0) 474: 475: #define AG903_PGP_MGR_IFC_LIMIT_16_235_AND_240 (0x1) 476: 477: #define AG903_PGP_MGR_IFC_LIMIT_M128_127 (0x2) 478: 479: 480: #define AG903_PGP_MGR_IFC_OP_AND (0x0) 481: 482: #define AG903_PGP_MGR_IFC_OP_OR (0x1) 483: 484: #define AG903_PGP_MGR_IFC_OP_XOR (0x2) 485: 486: #define AG903_PGP_MGR_IFC_OP_ADD (0x3) 487: 488: #define AG903_PGP_MGR_IFC_OP_ABS (0x4) 489: 490: 491: #define AG903_PGP_MGR_VI_CMD_NONE (0x0) 492: 493: #define AG903_PGP_MGR_VI_CMD_EXEC (0x1) 494: 495: #define AG903_PGP_MGR_VI_CMD_EXEC_CONTINUE (0x2) 496: 497: #define AG903_PGP_MGR_VI_CMD_IDLE (0x8) 498: 499: #define AG903_PGP_MGR_VI_CMD_RESET (0xF) 500: 501: #define AG903_PGP_MGR_VI_CMD_FORCE_QUIT (0xF) 502: 503: 504: #define AG903_PGP_MGR_VI_BMU_NONE (0x0) 505: 506: #define AG903_PGP_MGR_VI_BMU_ENABLE (0x1) 507: 508: #define AG903_PGP_MGR_VI_BMU_ENABLE_ODD (0x2) 509: 510: 511: #define AG903_PGP_MGR_VI_FRAME_READ_ODD (0x0) 512: 513: #define AG903_PGP_MGR_VI_FRAME_READ_EVEN (0x1) 514: 515: #define AG903_PGP_MGR_VI_FRAME_READ_FIELD (0x2) 516: 517: #define AG903_PGP_MGR_VI_FRAME_READ_WEAVE (0x4) 518: 519: 520: #define AG903_PGP_MGR_MAX_VI_DIV (256) 521: 522: 523: #define AG903_PGP_MGR_MAX_VI_VALIDATE (16) 524: 525: #define AG903_PGP_MGR_MAX_VI_INVALIDATE (15) 526: 527: 528: #define AG903_PGP_MGR_VI_FMT_RGB888_32 (0x0) 529: 530: #define AG903_PGP_MGR_VI_FMT_RGB888_24 (0x1) 531: 532: #define AG903_PGP_MGR_VI_FMT_RGB565 (0x2) 533: 534: #define AG903_PGP_MGR_VI_FMT_YCBCR444_32 (0x8) 535: 536: #define AG903_PGP_MGR_VI_FMT_YCBCR444_24 (0x9) 537: 538: #define AG903_PGP_MGR_VI_FMT_YCBCR422 (0xA) 539: 540: #define AG903_PGP_MGR_VI_FMT_CLUT8 (0xE) 541: 542: #define AG903_PGP_MGR_VI_FMT_CLUT1 (0xF) 543: 544: 545: #define AG903_PGP_MGR_VI_MAX_STRIDE_BYTE (16384) 546: 547: 548: #define AG903_PGP_MGR_MAX_VI_H_PULES_WIDTH (4096) 549: 550: 551: #define AG903_PGP_MGR_MAX_VI_H_FRONT_PORCH (4096) 552: 553: 554: #define AG903_PGP_MGR_MAX_VI_H_BACK_PORCH (4096) 555: 556: 557: #define AG903_PGP_MGR_MAX_VI_V_PULES_WIDTH (4096) 558: 559: 560: #define AG903_PGP_MGR_MAX_VI_V_FRONT_PORCH (4096) 561: 562: 563: #define AG903_PGP_MGR_MAX_VI_V_BACK_PORCH (4096) 564: 565: 566: #define AG903_PGP_MGR_MAX_VI_H_SIZE (4096) 567: 568: #define AG903_PGP_MGR_MAX_VI_V_SIZE (4096) 569: 570: 571: #define AG903_PGP_MGR_INTR_INPUT (0) 572: 573: #define AG903_PGP_MGR_INTR_OUTPUT (1) 574: 575: #define AG903_PGP_MGR_INTR_DONE (2) 576: 577: #define AG903_PGP_MGR_INTR_VRAM_ERROR (3) 578: 579: #define AG903_PGP_MGR_INTR_LBL_ERROR (4) 580: 581: #define AG903_PGP_MGR_INTR_HGM_ERROR (5) 582: 583: #define AG903_PGP_MGR_INTR_ND (6) 584: 585: #define AG903_PGP_MGR_INTR_IFC_OVF (7) 586: 587: #define AG903_PGP_MGR_INTR_INPUT_LINE (8) 588: 589: #define AG903_PGP_MGR_INTR_OUTPUT_LINE (9) 590: 591: #define AG903_PGP_MGR_INTR_LBL_DONE (10) 592: 593: #define AG903_PGP_MGR_INTR_HGM_DONE (11) 594: 595: 596: #define AG903_PGP_MGR_CONFIG_DIRTY_NUM (29) 597: 598: #define AG903_PGP_MGR_CONFIG_INTR_CTRL (0) 599: 600: #define AG903_PGP_MGR_CONFIG_TRIG_CTRL (1) 601: 602: #define AG903_PGP_MGR_CONFIG_INPUT_TRIG_CH (2) 603: 604: #define AG903_PGP_MGR_CONFIG_OUTPUT_CTRL (3) 605: 606: #define AG903_PGP_MGR_CONFIG_OUTPUT_COLOR_MASK (4) 607: 608: #define AG903_PGP_MGR_CONFIG_OUTPUT_BASE_ADDR (5) 609: 610: #define AG903_PGP_MGR_CONFIG_IP_CONV (6) 611: 612: #define AG903_PGP_MGR_CONFIG_COLOR_SPACE (7) 613: 614: #define AG903_PGP_MGR_CONFIG_SCALING (8) 615: 616: #define AG903_PGP_MGR_CONFIG_SP_FILTER (9) 617: 618: #define AG903_PGP_MGR_CONFIG_HSVHSL_CONV (10) 619: 620: #define AG903_PGP_MGR_CONFIG_HGM_PARAM (11) 621: 622: #define AG903_PGP_MGR_CONFIG_HGM_SIZE (12) 623: 624: #define AG903_PGP_MGR_CONFIG_HGM_POS (13) 625: 626: #define AG903_PGP_MGR_CONFIG_HGM_BASE_ADDR (14) 627: 628: #define AG903_PGP_MGR_CONFIG_THR (15) 629: 630: #define AG903_PGP_MGR_CONFIG_THR_HSCHLS_CONV (16) 631: 632: #define AG903_PGP_MGR_CONFIG_THR_COLOR_SPACE (17) 633: 634: #define AG903_PGP_MGR_CONFIG_THR_MASK (18) 635: 636: #define AG903_PGP_MGR_CONFIG_THR_8BIT (19) 637: 638: #define AG903_PGP_MGR_CONFIG_THR_1BIT (20) 639: 640: #define AG903_PGP_MGR_CONFIG_THR_SP_FILTER_1BIT (21) 641: 642: #define AG903_PGP_MGR_CONFIG_LBL_PARAM (22) 643: 644: #define AG903_PGP_MGR_CONFIG_LBL_SIZE (23) 645: 646: #define AG903_PGP_MGR_CONFIG_LBL_POS (24) 647: 648: #define AG903_PGP_MGR_CONFIG_LBL_BASE_ADDR (25) 649: 650: #define AG903_PGP_MGR_CONFIG_IFC_PARAM (26) 651: 652: #define AG903_PGP_MGR_CONFIG_IFC_GAIN (27) 653: 654: #define AG903_PGP_MGR_CONFIG_INTR_ENABLE (28) 655: 656: #define AG903_PGP_MGR_CONFIG_VI_DIRTY_NUM (4) 657: 658: #define AG903_PGP_MGR_CONFIG_VI_CTRL (0) 659: 660: #define AG903_PGP_MGR_CONFIG_VI_CTRL1 (1) 661: 662: #define AG903_PGP_MGR_CONFIG_VI_BASE (2) 663: 664: #define AG903_PGP_MGR_CONFIG_VI_ADJUST_FRAME (3) 665: 666: 667: typedef void (*PGPMGRCALLBACK) (int32_t id, void *handle); 668: 669: 672: typedef struct _AG903_PgpMgrDGCLookupTable { 673: uint32_t id; 674: _Bool is_used; 675: uint32_t ref_cnt; 676: uint8_t lut_data[3][256]; 677: } AG903_PgpMgrDGCLookupTable; 678: 679: 680: 683: typedef struct _AG903_PgpMgrPipelineHandle { 684: uint32_t id; 685: int32_t pipeline_no; 686: _Bool is_used; 687: _Bool is_assign; 688: _Bool is_dirty; 689: _Bool is_config_dirty[AG903_PGP_MGR_CONFIG_DIRTY_NUM]; 690: _Bool is_used_frame_calc; 691: _Bool dgc_lut_dirty; 692: AG903_PgpMgrDGCLookupTable *dgc_lut; 693: void *input_handle; 694: uint32_t input_intr_field; 695: uint32_t input_intr_fcnt; 696: uint32_t input_intr_line; 697: uint32_t output_intr_field; 698: uint32_t output_intr_fcnt; 699: uint32_t output_intr_line; 700: _Bool intr_nd_enable; 701: _Bool intr_voicpl_enable; 702: _Bool intr_vooflw_enable; 703: _Bool intr_ifcofs_enable; 704: _Bool intr_ifcofm_enable; 705: _Bool intr_lblcrpt_enable; 706: _Bool intr_lblcpl_enable; 707: _Bool intr_hgmicpl_enable; 708: _Bool intr_hgmcpl_enable; 709: _Bool intr_vsynco_enable; 710: _Bool intr_vlineo_enable; 711: _Bool intr_vsynci_enable; 712: _Bool intr_vlinei_enable; 713: uint32_t input_trig_field; 714: uint32_t input_trig_fcnt; 715: uint32_t input_trig_line; 716: uint32_t output_trig_field; 717: uint32_t output_trig_fcnt; 718: uint32_t output_trig_line; 719: _Bool trig_vsynco_enable; 720: _Bool trig_vlineo_enable; 721: _Bool trig_vsynci_enable; 722: _Bool trig_vlinei_enable; 723: uint32_t input_hsync_delay; 724: uint32_t input_mode; 725: uint32_t input_timer_clk; 726: uint32_t input_trig_timer_ch; 727: uint32_t input_port; 728: uint32_t input_format; 729: _Bool frame_out_enable; 730: uint32_t ifc_order; 731: _Bool ifc_enable; 732: _Bool thr_enable; 733: _Bool dgc_enable; 734: _Bool hsv1_enable; 735: _Bool spf_enable; 736: _Bool scale_enable; 737: _Bool csc1_enable; 738: _Bool nrf_enable; 739: _Bool hgm_enable; 740: _Bool lbl_enable; 741: uint32_t input_vsize; 742: uint32_t input_hsize; 743: _Bool input_epos; 744: _Bool input_opos; 745: uint32_t input_scan; 746: uint32_t input_vpos; 747: uint32_t input_hpos; 748: uint32_t output_pad; 749: uint32_t output_limit; 750: _Bool output_fai_enable; 751: _Bool output_dither_enable; 752: uint32_t output_bmu; 753: uint32_t output_scan; 754: uint32_t output_dim; 755: _Bool output_word_swap_enable; 756: _Bool output_hword_swap_enable; 757: _Bool output_1bit_swap_enable; 758: _Bool output_4bit_swap_enable; 759: uint32_t output_md; 760: uint32_t output_format; 761: _Bool output_red_enable; 762: _Bool output_green_enable; 763: _Bool output_blue_enable; 764: uint32_t output_base_addr; 765: uint32_t output_vram_stride; 766: uint32_t ipc_limit; 767: uint32_t ipc_blk_y; 768: uint32_t ipc_blk_c; 769: uint32_t csc1_limit; 770: uint32_t csc1_shift; 771: int32_t csc1_matrix[3][4]; 772: uint32_t scale_limit; 773: uint32_t scale_mtd; 774: uint32_t scale_v_nmr; 775: uint32_t scale_v_dnm; 776: uint32_t scale_h_nmr; 777: uint32_t scale_h_dnm; 778: uint32_t spf_shift; 779: uint32_t spf_border_sel; 780: uint32_t spf_border_red; 781: uint32_t spf_border_green; 782: uint32_t spf_border_blue; 783: int32_t spf_coeff[9]; 784: int32_t spf_offset; 785: uint32_t hsv_hls_sel; 786: uint32_t hgm_invalidate; 787: _Bool hgm_bmu; 788: uint32_t hgm_exc; 789: uint32_t hgm_thr; 790: uint32_t hgm_shift; 791: uint32_t hgm_vinc; 792: uint32_t hgm_hinc; 793: uint32_t hgm_vsize; 794: uint32_t hgm_hsize; 795: uint32_t hgm_vpos; 796: uint32_t hgm_hpos; 797: uint32_t hgm_addr; 798: uint32_t thr_limit; 799: _Bool thr_spf1_enable; 800: _Bool thr_msk_enable; 801: _Bool thr_csc2_enable; 802: _Bool thr_hsv2_enable; 803: _Bool thr_thr8bit_enable; 804: uint32_t thr_out_sel; 805: uint32_t thr_clut8_sel; 806: uint32_t thr_hsv_hls_sel; 807: uint32_t thr_csc2_limit; 808: uint32_t thr_csc2_shift; 809: int32_t thr_csc2_matrix[3][4]; 810: uint32_t thr_msk_h[3]; 811: uint32_t thr_msk_l[3]; 812: uint32_t thr_msk_x[3]; 813: uint32_t thr_msk_hmax[3]; 814: uint32_t thr_msk_hmin[3]; 815: uint32_t thr_msk_lmax[3]; 816: uint32_t thr_msk_lmin[3]; 817: uint32_t thr_thr8_prm_type[3]; 818: uint32_t thr_thr8_prm_maxval[3]; 819: uint32_t thr_thr8_prm_maxthr[3]; 820: uint32_t thr_thr8_prm_minthr[3]; 821: uint32_t thr_thr1_h; 822: uint32_t thr_thr1_l; 823: uint32_t thr_thr1_x; 824: uint32_t thr_thr1_hmax; 825: uint32_t thr_thr1_hmin; 826: uint32_t thr_thr1_lmax; 827: uint32_t thr_thr1_lmin; 828: int32_t thr_spf1_coeff[9]; 829: int32_t thr_spf1_thr; 830: uint32_t lbl_valid; 831: uint32_t lbl_invalid; 832: uint32_t lbl_connect; 833: _Bool lbl_bmu; 834: uint32_t lbl_flush_thr; 835: uint32_t lbl_maxid; 836: uint32_t lbl_vsize; 837: uint32_t lbl_hsize; 838: uint32_t lbl_vpos; 839: uint32_t lbl_hpos; 840: uint32_t lbl_addr; 841: uint32_t ifc_scan; 842: uint32_t ifc_limit; 843: uint32_t ifc_slave_src; 844: uint32_t ifc_operation; 845: uint32_t ifc_slave_shift; 846: uint32_t ifc_master_shift; 847: int32_t ifc_slave_gain; 848: int32_t ifc_master_gain; 849: PGPMGRCALLBACK intr_input_func; 850: PGPMGRCALLBACK intr_output_func; 851: PGPMGRCALLBACK intr_done_func; 852: PGPMGRCALLBACK intr_vram_error_func; 853: PGPMGRCALLBACK intr_lbl_error_func; 854: PGPMGRCALLBACK intr_hgm_error_func; 855: PGPMGRCALLBACK intr_nd_func; 856: PGPMGRCALLBACK intr_ifc_ovf_func; 857: PGPMGRCALLBACK intr_input_line_func; 858: PGPMGRCALLBACK intr_output_line_func; 859: PGPMGRCALLBACK intr_lbl_done_func; 860: PGPMGRCALLBACK intr_hgm_done_func; 861: } AG903_PgpMgrPipelineHandle; 862: 863: 864: 867: typedef struct _AG903_PgpMgrVRAMInputHandle { 868: uint32_t id; 869: uint32_t ref_cnt; 870: int32_t port_no; 871: _Bool is_used; 872: _Bool is_dirty; 873: _Bool is_config_dirty[AG903_PGP_MGR_CONFIG_VI_DIRTY_NUM]; 874: _Bool fai_enable; 875: uint32_t bmu; 876: uint32_t scan; 877: uint32_t dim; 878: _Bool vram_word_swap_enable; 879: _Bool vram_hword_swap_enable; 880: _Bool vram_1bit_swap_enable; 881: _Bool vram_4bit_swap_enable; 882: uint32_t md; 883: uint32_t format; 884: uint32_t div; 885: uint32_t valid; 886: uint32_t invalid; 887: uint32_t addr; 888: uint32_t stride; 889: uint32_t h_pulse_width; 890: uint32_t h_front_porch; 891: uint32_t h_back_porch; 892: uint32_t h_frame_size; 893: _Bool adjust_even_vbp; 894: _Bool adjust_even_vfp; 895: _Bool adjust_odd_vbp; 896: _Bool adjust_odd_vfp; 897: uint32_t v_pulse_width; 898: uint32_t v_front_porch; 899: uint32_t v_back_porch; 900: uint32_t v_frame_size; 901: _Bool adjust_odd_vsize; 902: } AG903_PgpMgrVRAMInputHandle; 903: 904: 905: 908: typedef struct _AG903_PgpMgrFrameCalcHandle { 909: uint32_t id; 910: _Bool is_used; 911: AG903_PgpMgrPipelineHandle *master_handle; 912: void *slave_handle; 913: _Bool slave_pipeline; 914: } AG903_PgpMgrFrameCalcHandle; 915: 916: 917: 918: #ifndef AG903_PGP_COMMON_MALLOC 919: 927: extern void *ag903_pgp_common_malloc(uint32_t size); 928: 929: #define AG903_PGP_COMMON_MALLOC ag903_pgp_common_malloc 930: #endif 931: 932: #ifndef AG903_PGP_COMMON_FREE 933: 938: extern void ag903_pgp_common_free(void *ptr); 939: 940: #define AG903_PGP_COMMON_FREE ag903_pgp_common_free 941: #endif 942: 943: #ifndef AG903_PGP_MGR_TS_FORCE_DISABLE 944: int32_t AG903_PgpMgrEnableTimeSharingPipeline(_Bool enable); 945: #endif 946: int32_t AG903_PgpMgrGetPipelineHandle(int32_t num, AG903_PgpMgrPipelineHandle **handles); 947: int32_t AG903_PgpMgrReleasePipelineHandle(AG903_PgpMgrPipelineHandle *handle); 948: int32_t AG903_PgpMgrAssignPipeline(void *handle); 949: int32_t AG903_PgpMgrForceAssignPipeline(void *handle, uint32_t pipeline); 950: int32_t AG903_PgpMgrReleaseAssignment(void *handle); 951: int32_t AG903_PgpMgrCheckFunctionValidation(AG903_PgpMgrPipelineHandle *handle, uint32_t pipeline); 952: int32_t AG903_PgpMgrExecPipeline(void *handle, uint32_t cmd); 953: int32_t AG903_PgpMgrSetIntrCallbackFunc(AG903_PgpMgrPipelineHandle *handle, uint32_t type, void (*func)(int32_t id, void *handle)); 954: int32_t AG903_PgpMgrSetConfigIntrCtrl(AG903_PgpMgrPipelineHandle *handle, uint32_t input_field, uint32_t input_fcnt, uint32_t input_line, uint32_t output_field, uint32_t output_fcnt, uint32_t output_line); 955: int32_t AG903_PgpMgrGetPipelineStatus(AG903_PgpMgrPipelineHandle *handle, uint32_t *blank, _Bool *is_vram_out, uint32_t *queue_cnt, uint32_t *sub_status, uint32_t *status); 956: int32_t AG903_PgpMgrEnableParamTrigCtrl(AG903_PgpMgrPipelineHandle *handle, _Bool vlinei_enable, _Bool vsynci_enable, _Bool vlineo_enable, _Bool vsynco_enable); 957: int32_t AG903_PgpMgrSetConfigTrigCtrl(AG903_PgpMgrPipelineHandle *handle, uint32_t input_field, uint32_t input_fcnt, uint32_t input_line, uint32_t output_field, uint32_t output_fcnt, uint32_t output_line); 958: int32_t AG903_PgpMgrSetParamInputHSyncDelay(AG903_PgpMgrPipelineHandle *handle, uint32_t h_delay); 959: int32_t AG903_PgpMgrSetParamInputMode(AG903_PgpMgrPipelineHandle *handle, uint32_t md); 960: int32_t AG903_PgpMgrSetParamInputTimeCLK(AG903_PgpMgrPipelineHandle *handle, uint32_t tick); 961: int32_t AG903_PgpMgrSetConfigInputTrigChannel(AG903_PgpMgrPipelineHandle *handle, uint32_t timer_ch); 962: int32_t AG903_PgpMgrSetInputPort(AG903_PgpMgrPipelineHandle *handle, void *src); 963: int32_t AG903_PgpMgrSetParamInputFormat(AG903_PgpMgrPipelineHandle *handle, uint32_t format); 964: int32_t AG903_PgpMgrSetParamInputSize(AG903_PgpMgrPipelineHandle *handle, uint32_t vsize, uint32_t hsize); 965: int32_t AG903_PgpMgrSetParamInputPosition(AG903_PgpMgrPipelineHandle *handle, uint32_t vpos, uint32_t hpos); 966: int32_t AG903_PgpMgrSetParamInputScan(AG903_PgpMgrPipelineHandle *handle, uint32_t scan, _Bool epos,_Bool opos); 967: int32_t AG903_PgpMgrSetConfigOutputFramePadding(AG903_PgpMgrPipelineHandle *handle, uint32_t pad); 968: int32_t AG903_PgpMgrSetConfigOutputLimit(AG903_PgpMgrPipelineHandle *handle, uint32_t limit); 969: int32_t AG903_PgpMgrEnableConfigOutputFrameInfo(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 970: int32_t AG903_PgpMgrEnableConfigOutputDither(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 971: int32_t AG903_PgpMgrSetParamOutputScan(AG903_PgpMgrPipelineHandle *handle, uint32_t scan); 972: int32_t AG903_PgpMgrSetParamOutputAddrDim(AG903_PgpMgrPipelineHandle *handle, uint32_t dim); 973: int32_t AG903_PgpMgrSetConfigOutputDataSwap(AG903_PgpMgrPipelineHandle *handle, _Bool word, _Bool hword, _Bool four_bit, _Bool one_bit); 974: int32_t AG903_PgpMgrSetConfigOutputInterlaceFrame(AG903_PgpMgrPipelineHandle *handle, uint32_t frame_save); 975: int32_t AG903_PgpMgrSetParamOutputBMU(AG903_PgpMgrPipelineHandle *handle, uint32_t bmu); 976: int32_t AG903_PgpMgrSetParamOutputFormat(AG903_PgpMgrPipelineHandle *handle, uint32_t format); 977: int32_t AG903_PgpMgrEnableConfigOutputColorMask(AG903_PgpMgrPipelineHandle *handle, _Bool red, _Bool green, _Bool blue); 978: int32_t AG903_PgpMgrSetConfigOutputBaseAddr(AG903_PgpMgrPipelineHandle *handle, void *addr); 979: int32_t AG903_PgpMgrSetParamOutputStride(AG903_PgpMgrPipelineHandle *handle, uint32_t stride); 980: int32_t AG903_PgpMgrGetFrameInfo(AG903_PgpMgrPipelineHandle *handle, uint32_t *tmstmp, uint32_t *field, uint32_t *port, uint32_t *fnum); 981: int32_t AG903_PgpMgrSetParamFrameCalcOrder(AG903_PgpMgrPipelineHandle *handle, uint32_t order); 982: int32_t AG903_PgpMgrEnableParamThresholdOp(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 983: int32_t AG903_PgpMgrEnableParamDGC(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 984: int32_t AG903_PgpMgrEnableParamHSV(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 985: int32_t AG903_PgpMgrEnableParamSpatialFilter(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 986: int32_t AG903_PgpMgrEnableParamScaling(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 987: int32_t AG903_PgpMgrEnableParamColorSpace(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 988: int32_t AG903_PgpMgrEnableParamNRF(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 989: int32_t AG903_PgpMgrEnableParamHistogram(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 990: int32_t AG903_PgpMgrEnableParamLabeling(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 991: int32_t AG903_PgpMgrSetConfigIPConversion(AG903_PgpMgrPipelineHandle *handle, uint32_t limit, uint32_t blky, uint32_t blkc); 992: int32_t AG903_PgpMgrSetConfigColorSpace(AG903_PgpMgrPipelineHandle *handle, uint32_t limit, uint32_t shift, int32_t mtx[3][4]); 993: int32_t AG903_PgpMgrSetConfigPresetColorSpace(AG903_PgpMgrPipelineHandle *handle, uint32_t format); 994: 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); 995: int32_t AG903_PgpMgrSetConfigSpatialFilter(AG903_PgpMgrPipelineHandle *handle, uint32_t shift, uint32_t border, uint32_t border_red, uint32_t border_green, uint32_t border_blue, int32_t coeff[9], int32_t offset); 996: int32_t AG903_PgpMgrSetConfigHSVHLSConversion(AG903_PgpMgrPipelineHandle *handle, uint32_t sel); 997: int32_t AG903_PgpMgrExecHistogram(AG903_PgpMgrPipelineHandle *handle, uint32_t cmd); 998: int32_t AG903_PgpMgrSetConfigHistogramParameter(AG903_PgpMgrPipelineHandle *handle, uint32_t inv, uint32_t exc, uint32_t thr, uint32_t shift, uint32_t v_inc, uint32_t h_inc); 999: int32_t AG903_PgpMgrSetConfigHistogramSize(AG903_PgpMgrPipelineHandle *handle, uint32_t vsize, uint32_t hsize); 1000: int32_t AG903_PgpMgrSetConfigHistogramPosition(AG903_PgpMgrPipelineHandle *handle, uint32_t vpos, uint32_t hpos); 1001: int32_t AG903_PgpMgrSetConfigHistogramBaseAddr(AG903_PgpMgrPipelineHandle *handle, void *addr); 1002: int32_t AG903_PgpMgrEnableParamHistogramBMU(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 1003: int32_t AG903_PgpMgrGetHistogramParameter(AG903_PgpMgrPipelineHandle *handle, uint32_t *most_r, uint32_t *max_r, uint32_t *min_r, uint32_t *most_g, uint32_t *max_g, uint32_t *min_g, uint32_t *most_b, uint32_t *max_b, uint32_t *min_b); 1004: int32_t AG903_PgpMgrGetHistogramStatus(AG903_PgpMgrPipelineHandle *handle, _Bool *is_init, _Bool *is_vram_out, _Bool *is_act, uint32_t *queue_cnt, uint32_t *exec_cmd); 1005: int32_t AG903_PgpMgrSetConfigThreshold(AG903_PgpMgrPipelineHandle *handle, uint32_t limit, _Bool spf, _Bool mask, _Bool csc, _Bool hsv_hls, _Bool thr8, uint32_t sel_out, uint32_t sel_clut8); 1006: int32_t AG903_PgpMgrSetConfigThresholdHSVHLSConversion(AG903_PgpMgrPipelineHandle *handle, uint32_t sel); 1007: int32_t AG903_PgpMgrSetConfigThresholdColorSpace(AG903_PgpMgrPipelineHandle *handle, uint32_t limit, uint32_t shift, int32_t mtx[3][4]); 1008: int32_t AG903_PgpMgrSetConfigThresholdPresetColorSpace(AG903_PgpMgrPipelineHandle *handle, uint32_t format); 1009: int32_t AG903_PgpMgrSetConfigThresholdMask(AG903_PgpMgrPipelineHandle *handle, uint32_t ch, uint32_t h, uint32_t l, uint32_t x, uint32_t hmax, uint32_t hmin, uint32_t lmax, uint32_t lmin); 1010: int32_t AG903_PgpMgrSetConfigThreshold8Bit(AG903_PgpMgrPipelineHandle *handle, uint32_t ch, uint32_t type, uint32_t maxval, uint32_t maxthr, uint32_t minthr); 1011: int32_t AG903_PgpMgrSetConfigThreshold1Bit(AG903_PgpMgrPipelineHandle *handle, uint32_t h, uint32_t l, uint32_t x, uint32_t hmax, uint32_t hmin, uint32_t lmax, uint32_t lmin); 1012: int32_t AG903_PgpMgrSetConfigThresholdSpatialFilter1Bit(AG903_PgpMgrPipelineHandle *handle, int32_t coeff[9], int32_t thr); 1013: int32_t AG903_PgpMgrExecLabeling(AG903_PgpMgrPipelineHandle *handle, uint32_t cmd); 1014: int32_t AG903_PgpMgrSetConfigLabelingValidTime(AG903_PgpMgrPipelineHandle *handle, uint32_t vld, uint32_t inv); 1015: int32_t AG903_PgpMgrSetConfigLabelingParameter(AG903_PgpMgrPipelineHandle *handle, uint32_t connect, uint32_t flush_thr, uint32_t max_id); 1016: int32_t AG903_PgpMgrSetConfigLabelingSize(AG903_PgpMgrPipelineHandle *handle, uint32_t vsize, uint32_t hsize); 1017: int32_t AG903_PgpMgrSetConfigLabelingPosition(AG903_PgpMgrPipelineHandle *handle, uint32_t vpos, uint32_t hpos); 1018: int32_t AG903_PgpMgrSetConfigLabelingBaseAddr(AG903_PgpMgrPipelineHandle *handle, void *addr); 1019: int32_t AG903_PgpMgrEnableParamLabelingBMU(AG903_PgpMgrPipelineHandle *handle, _Bool enable); 1020: int32_t AG903_PgpMgrGetLabelingStatus(AG903_PgpMgrPipelineHandle *handle, uint32_t *id, _Bool *is_vram_out, _Bool *is_act, uint32_t *queue_cnt, uint32_t *exec_cmd); 1021: int32_t AG903_PgpMgrAnalyzeLabelingTable(void *src, uint32_t tbl_num, void **dst); 1022: int32_t AG903_PgpMgrReleaseLabelingTable(void *dst); 1023: int32_t AG903_PgpMgrGetFrameCalcHandle(AG903_PgpMgrFrameCalcHandle **handle, AG903_PgpMgrPipelineHandle *master, void *slave); 1024: int32_t AG903_PgpMgrReleaseFrameCalcHandle(AG903_PgpMgrFrameCalcHandle *handle); 1025: int32_t AG903_PgpMgrSetConfigFrameCalcParameter(AG903_PgpMgrFrameCalcHandle *handle, uint32_t scan, uint32_t limit, uint32_t slave_src, uint32_t operation); 1026: int32_t AG903_PgpMgrSetConfigFrameCalcGain(AG903_PgpMgrFrameCalcHandle *handle, int32_t master_gain, int32_t slave_gain, uint32_t master_shift, uint32_t slave_shift); 1027: int32_t AG903_PgpMgrGetVRAMInputHandle(int32_t num, AG903_PgpMgrVRAMInputHandle **handles); 1028: int32_t AG903_PgpMgrReleaseVRAMInputHandle(AG903_PgpMgrVRAMInputHandle *handle); 1029: int32_t AG903_PgpMgrExecVRAMInput(AG903_PgpMgrVRAMInputHandle *handle, uint32_t cmd); 1030: int32_t AG903_PgpMgrGetVRAMStatus(AG903_PgpMgrVRAMInputHandle *handle, _Bool *is_vram_out, uint32_t *queue_cnt, uint32_t *exec_cmd); 1031: int32_t AG903_PgpMgrSetParamVRAMInputBMU(AG903_PgpMgrVRAMInputHandle *handle, uint32_t bmu); 1032: int32_t AG903_PgpMgrSetParamVRAMInputScan(AG903_PgpMgrVRAMInputHandle *handle, uint32_t scan); 1033: int32_t AG903_PgpMgrSetParamVRAMInputAddrDim(AG903_PgpMgrVRAMInputHandle *handle, uint32_t dim); 1034: int32_t AG903_PgpMgrSetConfigVRAMDataSwap(AG903_PgpMgrVRAMInputHandle *handle, _Bool word, _Bool hword, _Bool four_bit, _Bool one_bit); 1035: int32_t AG903_PgpMgrSetConfigVRAMInterlaceFrame(AG903_PgpMgrVRAMInputHandle *handle, uint32_t frame_read, _Bool fai); 1036: int32_t AG903_PgpMgrSetConfigVRAMValidTime(AG903_PgpMgrVRAMInputHandle *handle, uint32_t div, uint32_t vld, uint32_t inv); 1037: int32_t AG903_PgpMgrSetParamVRAMFormat(AG903_PgpMgrVRAMInputHandle *handle, uint32_t format); 1038: int32_t AG903_PgpMgrSetConfigVRAMBaseAddr(AG903_PgpMgrVRAMInputHandle *handle, void *addr); 1039: int32_t AG903_PgpMgrSetParamVRAMStride(AG903_PgpMgrVRAMInputHandle *handle, uint32_t stride); 1040: int32_t AG903_PgpMgrSetParamVRAMSyncSignal(AG903_PgpMgrVRAMInputHandle *handle, uint32_t h_pw, uint32_t h_fp, uint32_t h_bp, uint32_t v_pw, uint32_t v_fp, uint32_t v_bp); 1041: int32_t AG903_PgpMgrSetParamVRAMSize(AG903_PgpMgrVRAMInputHandle *handle, uint32_t h_size, uint32_t v_size); 1042: int32_t AG903_PgpMgrAdjustVRAMFrame(AG903_PgpMgrVRAMInputHandle *handle, _Bool e_vbp, _Bool e_vfp, _Bool o_vbp, _Bool o_vfp, _Bool o_vsize); 1043: int32_t AG903_PgpMgrCheckVRAMParameter(AG903_PgpMgrVRAMInputHandle *vram, AG903_PgpMgrPipelineHandle *pipeline); 1044: int32_t AG903_PgpMgrSetJPEG(AG903_PgpMgrPipelineHandle *handle); 1045: int32_t AG903_PgpMgrEnableJPEG(_Bool enable); 1046: int32_t AG903_PgpMgrGetDGCLUT(uint8_t red[256], uint8_t green[256], uint8_t blue[256], AG903_PgpMgrDGCLookupTable **table); 1047: int32_t AG903_PgpMgrReleaseDGCLUT(AG903_PgpMgrDGCLookupTable *table); 1048: int32_t AG903_PgpMgrSetConfigDGCLUT(AG903_PgpMgrPipelineHandle *pipeline, AG903_PgpMgrDGCLookupTable *dgc_lut); 1049: 1050: 1051: #ifdef __cplusplus 1052: } 1053: #endif 1054: 1055: 1056: #endif 1057:
 
名前 
説明 
 
動的メモリ解放インタフェース 
 
動的メモリ確保インタフェース 
名前 
説明 
メモリ解放関数定義 
メモリ確保関数定義 
アドレス指定に1次元アドレス 
アドレス指定に2次元アドレス 
物理的な演算パイプラインの数 
演算処理パイプライン0 
演算処理パイプライン1 
パイプラインコマンド(1ショットキャプチャを実行) 
パイプラインコマンド(連続キャプチャを実行) 
パイプラインコマンド(キャプチャ強制終了(ハードリセット) 
パイプラインコマンド(アイドル状態へ移行、コマンドキュー削除) 
パイプラインコマンド(何もしない) 
パイプラインコマンド(フレーム通し番号カウンタリセット) 
パイプラインコマンド(割り込み用フレームカウンタリセット) 
パイプラインコマンド(タイプスタンプカウンタリセット) 
パイプラインコマンド(トリガ起動キャプチャを実行) 
パイプラインコマンド(トリガ起動連続キャプチャを実行) 
色空間変換を制御するパラメータの設定フラグ 
パイプラインのパラメータ設定関数がコールされたことを管理するフラグ数 
ヒストグラム計測出力先ベースアドレスの設定フラグ 
ヒストグラム制御のパラメータの設定フラグ 
ヒストグラム計測開始座標の設定フラグ 
ヒストグラム制御のパラメータの設定フラグ 
HSV、HLS変換回路の出力フォーマットの設定フラグ 
フレーム間演算のゲインパラメータの設定フラグ 
フレーム間演算パラメータの設定フラグ 
トリガ起動のタイマモジュールのチャンネル番号の設定フラグ 
パイプラインの入出力割り込みの設定フラグ 
割り込みのコールバック関数の登録フラグ 
I/P変換回路のパラメータの設定フラグ 
ラベリング付加情報出力先のベースアドレスの設定フラグ 
ラベリングの出力有効無効期間パラメータの設定フラグ 
ラベリング処理開始座標の設定フラグ 
ラベリング処理サイズの設定フラグ 
パイプラインの出力先ベースアドレスの設定フラグ 
パイプライン出力時のカラーマスクの設定フラグ 
フレーム保存時のパディング値の設定フラグ 
スケーリングのパラメータの設定フラグ 
空間フィルタを制御するパラメータの設定フラグ 
閾値処理の機能の設定フラグ 
閾値処理の1bit閾値処理の設定フラグ 
閾値処理の8bit閾値処理のパラメータマスクの設定フラグ 
閾値処理の色空間変換を制御するパラメータの設定フラグ 
閾値処理のHSV、HLS変換回路の出力フォーマット機能の設定フラグ 
閾値処理のマスク生成の設定フラグ 
閾値処理の1bit空間フィルタの設定フラグ 
ビデオ入力、フレーム出力トリガの設定フラグ 
VRAM入力のインタレースモードでのEVEN/ODDフレームの調整フラグ 
VRAM入力の出力先ベースアドレスの設定フラグ 
VRAM入力のデータスワップの設定フラグ 
VRAM入力の出力有効無効期間パラメータの設定フラグ 
VRAM入力のパラメータ設定関数がコールされたことを管理するフラグ数 
HSV、HLS変換回路の出力フォーマットにHLSを選択 
HSV、HLS変換回路の出力フォーマットにHSVを選択 
RGB→YUV(BT.601 Full Range)の色空間変換のプリセット 
RGB→YUV(BT.601 Limit Range)の色空間変換のプリセット 
RGB→YUV(BT.709 Full Range)の色空間変換のプリセット 
RGB→YUV(BT.709 Limit Range)の色空間変換のプリセット 
YUV(BT.601 Full Range)→RGBの色空間変換のプリセット 
YUV(BT.601 Limit Range)→RGBの色空間変換のプリセット 
YUV(BT.709 Full Range)→RGBの色空間変換のプリセット 
YUV(BT.709 Limit Range)→RGBの色空間変換のプリセット 
濃度変換テーブルを識別するID 
縮小フィルタ(リニアフィルタ) 
縮小フィルタ(ポイントサンプル) 
フレーム間演算ハンドルを識別するID 
フレーム保存パイプライン0 
フレーム保存パイプライン1 
ヒストグラムコマンド(キュー、未処理コマンドの削除) 
ヒストグラムコマンド(ヒストグラム計測の実行(VRAMダンプあり)) 
ヒストグラムコマンド(ヒストグラム計測の実行(VRAMダンプなし)) 
ヒストグラム実行コマンドを溜めるキューの最大値 
ヒストグラムコマンド(何もしません) 
ヒストグラムコマンド(回路リセット) 
ヒストグラム抽出時に0を除外 
ヒストグラム抽出時に0~16を除外 
ヒストグラム抽出時に0を除外。ただしR要素(DATA[23:16])は除外なし 
ヒストグラム抽出時の値除外なし 
フレーム間演算のリミット動作を0~255に制限 
フレーム間演算のリミット動作を16~235([23:16]), 240([15:8], [7:0])に制限 
フレーム間演算のリミット動作を-128~127に制限 
フレーム間演算方法にABSを選択 
フレーム間演算方法にADDを選択 
フレーム間演算方法にANDを選択 
フレーム間演算方法にORを選択 
フレーム間演算方法にXORを選択 
フレーム間演算のスレーブ入力に演算処理パイプラインを選択 
フレーム間演算のスレーブ入力にVRAM(8bit符号つき整数)を選択 
フレーム間演算のスレーブ入力にVRAM(8bit符号なし整数)を選択 
演算処理パイプラインにおいて、フレーム間演算→演算処理の処理順で処理 
演算処理パイプラインにおいて、演算処理→フレーム間演算の処理順で処理 
キャプチャフォーマットCLUT1 
キャプチャフォーマットCLUT8 
キャプチャフォーマットRGB565 
キャプチャフォーマットRGB888 
キャプチャフォーマットYCbCr422 I/P変換あり 
キャプチャフォーマットYCbCr422 I/P変換なし 
キャプチャフォーマットYCbCr444 
インタレースモードでのEVENフレームのVPOSを+1して利用 
インタレースモードでのEVENフレームのVPOSをそのまま利用 
インタレースモードでのODDフレームのVPOSを+1して利用 
インタレースモードでのODDフレームのVPOSをそのまま利用 
キャプチャ開始・終了をODDフィールドのVSYNCを基準 
キャプチャ開始・終了をVSYNCを基準 
入力画像処理パイプライン0 
入力画像処理パイプライン1 
アナログ入力0 
アナログ入力1 
アナログ入力2 
アナログ入力3 
デジタル入力0 
デジタル入力1 
デジタル入力2 
デジタル入力3 
VRAM入力0 
VRAM入力1 
タイムスタンプ生成にクロックソース0を用いる 
タイムスタンプ生成にクロックソース1を用いる 
VSYNC割り込みを発生するフィールドを偶数フィールドに設定 
VSYNC割り込みを発生するフィールドを奇数フィールドに設定 
VSYNC割り込みを発生するフィールドを奇数・偶数フィールドに設定 
入出力割り込みのフレームカウンタ最大値 
入力ライン割り込みを発生させるライン番号の最大値 
出力ライン割り込みを発生させるライン番号の最大値 
パイプラインの完了割り込み 
ヒストグラム完了割り込み 
ヒストグラムのエラー割り込み 
フレーム間演算オーバーフロー割り込み 
入力割り込み 
入力ライン割り込み 
ラベリング完了割り込み 
ラベリングのエラー割り込み 
同期信号無検出割り込み 
出力割り込み 
出力ライン割り込み 
VRAM出力のエラー割り込み 
ラベリングコマンド(キュー、未処理コマンドの削除) 
ラベリングコマンド(ラベリング処理の実行) 
ラベリング実行コマンドを溜めるキューの最大値 
ラベリングコマンド(何もしません) 
ラベリングコマンド(回路リセット) 
ラベリングに連結判定に4連結を指定 
ラベリングに連結判定に8連結を指定 
リミット動作を0~255に制限 
リミット動作を16~235([23:16]), 240([15:8], [7:0])に制限 
リミット動作を-128~127に制限 
リミット無し 
色空間変換演算出力時のシフト量の最大値 
This is macro AG903_PGP_MGR_MAX_DGC_LUT. 
This is macro AG903_PGP_MGR_MAX_FRAME_CALC_HANDLE. 
ヒストグラム抽出時の間引き量の最大値 
ヒストグラムの出力無効期間の最大値 
ヒストグラム計測開始座標の最大値 
ヒストグラム計測データ出力時のデータシフト量(右シフト)の最大値 
ヒストグラム計測サイズの最大値 
ヒストグラムレンジ抽出時の敷地の最大値 
フレーム間演算のゲイン演算結果出力時の最大シフト量 
キャプチャ入力のHSYNCに対する遅延の最大値 
キャプチャ開始座標の最大値(垂直位置、水平位置) 
キャプチャサイズの最大値(垂直、水平サイズ) 
I/P変換回路のブランク期間の最大値 
ラベリング付加情報テーブルのフラッシュを行う閾値の最大値 
ラベリング処理の水平サイズの最大値 
ラベリング付加情報テーブルID の最大値 
ラベリング処理の出力無効期間の最大値 
ラベリング処理の出力有効期間の最大値 
ラベリング処理開始座標の最大値 
ラベリング処理の垂直サイズの最大値 
フレーム保存のパディング値の最大値 
This is macro AG903_PGP_MGR_MAX_PIPELINE_HANDLE. 
スケーリング時の分子、分母に指定可能な最大値 
空間フィルタ時のシフト量の最大値 
トリガ起動時タイマモジュールのチャンネル番号 
VRAM出力期間の引き延ばしの最大値 
VRAM入力の水平バックポーチの最大値 
VRAM入力の水平フロントポーチの最大値 
VRAM入力の水平同期信号パルス幅の最大値 
VRAM入力の水平サイズの最大値 
VRAM出力無効期間の最大値 
VRAM入力の垂直バックポーチの最大値 
VRAM入力の垂直フロントポーチの最大値 
VRAM入力の垂直同期信号パルス幅の最大値 
VRAM入力の垂直サイズの最大値 
VRAM出力有効期間の最大値 
This is macro AG903_PGP_MGR_MAX_VRAMI_HANDLE. 
バッファ管理ユニット有効。フィールドに関係なく更新 
バッファ管理ユニット有効。EVENフィールド終了時開始時に更新 
バッファ管理ユニット無効 
出力フォーマットCLUT1→CLUT1 
出力フォーマットCLUT8→CLUT8 
出力フォーマットRGB888→ARGB1555 
出力フォーマットRGB888→ARGB4444 
出力フォーマットRGB888→RGB565 
出力フォーマットRGB888→RGB888(24bit) 
出力フォーマットRGB888→RGB888(32bit) 
出力フォーマットRGB888→RGB888 RGB分離 
出力フォーマットYCbCr444→YCbCr422 
出力フォーマットYCbCr444→YCbCr444(24bit) 
出力フォーマットYCbCr444→YCbCr444(32bit) 
出力フォーマットYCbCr444→YCbCr444 RGB分離 
インタレース入力のフレーム保存方法に偶数フレームのみを指定 
インタレース入力のフレーム保存方法にフィールドに従うを指定 
インタレース入力のフレーム保存方法にフィールド無視を指定 
インタレース入力のフレーム保存方法に奇数フレームのみを指定 
インタレース入力のフレーム保存方法にWeaveを指定 
2次元アドレス時のストライドバイトの最大値 
パイプラインの実行コマンドを溜めるキューの最大値 
前処理パイプラインハンドルを識別するID 
物理的なパイプラインハンドルの数 
フレーム走査方法インタレース 
フレーム走査方法プログレッシブ 
境界処理に固定カラーを使用 
境界処理に最近傍ピクセルを使用 
パイプラインステート(1ショットキャプチャが実行中) 
パイプラインステート(連続キャプチャが実行中) 
パイプラインステート(強制終了処理中) 
パイプラインステート(アイドル状態) 
パイプラインステート(トリガ起動キャプチャが実行中) 
パイプラインステート(トリガ起動連続キャプチャが実行中) 
パイプラインサブステート(キャプチャ実行中) 
パイプラインサブステート(トリガ待ち) 
パイプラインサブステート(VSYNC待ち) 
8bit閾値処理の種類にThreshold Binaryを選択 
8bit閾値処理の種類にThreshold Binary, Extendedを選択 
8bit閾値処理の種類にThreshold Binary, Invertedを選択 
8bit閾値処理の種類にThreshold Binary, Inverted, Extendedを選択 
8bit閾値処理の種類にThreshold to Zeroを選択 
8bit閾値処理の種類にThreshold to Zero, Extendedを選択 
8bit閾値処理の種類にThreshold to Zero, Invertedを選択 
8bit閾値処理の種類にThreshold to Zero, Inverted, Extendedを選択 
8bit閾値処理の種類にTruncateを選択 
8bit閾値処理の種類にTruncate, Extendedを選択 
閾値処理の設定においてBlue要素(DATA[7:0])のパラメータを設定対象に指定します 
閾値処理の設定においてGreen要素(DATA[15:8])のパラメータを設定対象に指定します 
閾値処理の設定においてRed要素(DATA[23:16])のパラメータを設定対象に指定します 
閾値処理のCLUT8の出力にBlue要素(DATA[7:0])を選択 
閾値処理のCLUT8の出力にGreen要素(DATA[15:8])を選択 
閾値処理のCLUT8の出力にRed要素(DATA[23:16])を選択 
閾値処理の出力にラベリング出力を選択 
閾値処理の出力に8bitMUX出力を選択 
閾値処理の出力に画像を選択 
閾値処理の出力に1bit空間フィルタ出力を選択 
VSYNCトリガを発生するフィールドを偶数フィールドに設定 
VSYNCトリガを発生するフィールドを奇数フィールドに設定 
VSYNCトリガを発生するフィールドを奇数・偶数フィールドに設定 
トリガのフレームカウンタ最大値 
入力ライントリガを発生させるライン番号の最大値 
出力ライントリガを発生させるライン番号の最大値 
パイプラインの時分割動作を使用しない場合は以下の定義を有効にすることでリソースの削減ができます
現状では、時分割動作は「Disanble」 で使用して下さい。 
バッファ管理ユニット有効。フィールドに関係なく更新 
バッファ管理ユニット有効。ODDフィールド開始時に更新 
バッファ管理ユニット無効 
VRAM入力コマンド(1ショットの読み出しを実行) 
VRAM入力コマンド(連続での読み出しを実行) 
VRAM入力コマンド(強制終了処理) 
VRAM入力コマンド(アイドル状態へ遷移) 
VRAM入力の実行コマンドを溜めるキューの最大値 
VRAM入力コマンド(何もしません) 
VRAM入力コマンド(回路リセット) 
CLUT1 
CLUT8 
VRAM入力フォーマットRGB565 
VRAM入力フォーマットRGB888(24bit) 
VRAM入力フォーマットRGB888(32bit) 
YCbCr422 
YCbCr444(24bit) 
VRAM入力フォーマットYCbCr444(32bit) 
インタレースフレームの読み出し方法に偶数フレームのみを指定 
インタレースフレームの読み出し方法にフィールド分離を指定 
インタレースフレームの読み出し方法に奇数フレームのみを指定 
インタレースフレームの読み出し方法にWeaveを指定 
VRAMが2次元アドレスの場合のストライドバイト 
VRAM入力ハンドルを識別するID 
物理的なVRAM入力の数 
 
名前 
説明 
 
濃度変換テーブルハンドル 
 
フレーム間演算ハンドル 
 
パイプラインハンドル 
 
VRAM入力ハンドル 
 
濃度変換テーブルハンドル 
 
フレーム間演算ハンドル 
 
パイプラインハンドル 
 
VRAM入力ハンドル 
名前 
説明 
コールバック関数のタイプ 
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.