10ed5401bSmrg/* 20ed5401bSmrg * Copyright © 2018 NVIDIA Corporation 30ed5401bSmrg * 40ed5401bSmrg * Permission is hereby granted, free of charge, to any person obtaining a 50ed5401bSmrg * copy of this software and associated documentation files (the "Software"), 60ed5401bSmrg * to deal in the Software without restriction, including without limitation 70ed5401bSmrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 80ed5401bSmrg * and/or sell copies of the Software, and to permit persons to whom the 90ed5401bSmrg * Software is furnished to do so, subject to the following conditions: 100ed5401bSmrg * 110ed5401bSmrg * The above copyright notice and this permission notice shall be included in 120ed5401bSmrg * all copies or substantial portions of the Software. 130ed5401bSmrg * 140ed5401bSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 150ed5401bSmrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 160ed5401bSmrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 170ed5401bSmrg * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 180ed5401bSmrg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 190ed5401bSmrg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 200ed5401bSmrg * OTHER DEALINGS IN THE SOFTWARE. 210ed5401bSmrg */ 220ed5401bSmrg 230ed5401bSmrg#ifndef VIC42_H 240ed5401bSmrg#define VIC42_H 250ed5401bSmrg 260ed5401bSmrg#include <stdint.h> 270ed5401bSmrg 280ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_APPLICATION_ID 0x00000200 290ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_EXECUTE 0x00000300 300ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_CONTROL_PARAMS 0x00000704 310ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_CONFIG_STRUCT_OFFSET 0x00000708 320ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_FILTER_STRUCT_OFFSET 0x0000070c 330ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_HIST_OFFSET 0x00000714 340ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_OUTPUT_SURFACE_LUMA_OFFSET 0x00000720 350ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE0_LUMA_OFFSET(slot) (0x00001200 + (slot) * 0x00000060) 360ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE0_CHROMA_U_OFFSET(slot) (0x00001204 + (slot) * 0x00000060) 370ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE0_CHROMA_V_OFFSET(slot) (0x00001208 + (slot) * 0x00000060) 380ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE1_LUMA_OFFSET(slot) (0x0000120c + (slot) * 0x00000060) 390ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE1_CHROMA_U_OFFSET(slot) (0x00001210 + (slot) * 0x00000060) 400ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE1_CHROMA_V_OFFSET(slot) (0x00001214 + (slot) * 0x00000060) 410ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE2_LUMA_OFFSET(slot) (0x00001218 + (slot) * 0x00000060) 420ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE2_CHROMA_U_OFFSET(slot) (0x0000121c + (slot) * 0x00000060) 430ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE2_CHROMA_V_OFFSET(slot) (0x00001220 + (slot) * 0x00000060) 440ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE3_LUMA_OFFSET(slot) (0x00001224 + (slot) * 0x00000060) 450ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE3_CHROMA_U_OFFSET(slot) (0x00001228 + (slot) * 0x00000060) 460ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE3_CHROMA_V_OFFSET(slot) (0x0000122c + (slot) * 0x00000060) 470ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE4_LUMA_OFFSET(slot) (0x00001230 + (slot) * 0x00000060) 480ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE4_CHROMA_U_OFFSET(slot) (0x00001234 + (slot) * 0x00000060) 490ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE4_CHROMA_V_OFFSET(slot) (0x00001238 + (slot) * 0x00000060) 500ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE5_LUMA_OFFSET(slot) (0x0000123c + (slot) * 0x00000060) 510ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE5_CHROMA_U_OFFSET(slot) (0x00001240 + (slot) * 0x00000060) 520ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE5_CHROMA_V_OFFSET(slot) (0x00001244 + (slot) * 0x00000060) 530ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE6_LUMA_OFFSET(slot) (0x00001248 + (slot) * 0x00000060) 540ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE6_CHROMA_U_OFFSET(slot) (0x0000124c + (slot) * 0x00000060) 550ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE6_CHROMA_V_OFFSET(slot) (0x00001250 + (slot) * 0x00000060) 560ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE7_LUMA_OFFSET(slot) (0x00001254 + (slot) * 0x00000060) 570ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE7_CHROMA_U_OFFSET(slot) (0x00001258 + (slot) * 0x00000060) 580ed5401bSmrg#define NVC5B6_VIDEO_COMPOSITOR_SET_SURFACE7_CHROMA_V_OFFSET(slot) (0x0000125c + (slot) * 0x00000060) 590ed5401bSmrg 600ed5401bSmrgtypedef struct { 610ed5401bSmrg uint64_t SlotEnable : 1; /* 0 */ 620ed5401bSmrg uint64_t DeNoise : 1; /* 1 */ 630ed5401bSmrg uint64_t AdvancedDenoise : 1; /* 2 */ 640ed5401bSmrg uint64_t CadenceDetect : 1; /* 3 */ 650ed5401bSmrg uint64_t MotionMap : 1; /* 4 */ 660ed5401bSmrg uint64_t MMapCombine : 1; /* 5 */ 670ed5401bSmrg uint64_t IsEven : 1; /* 6 */ 680ed5401bSmrg uint64_t ChromaEven : 1; /* 7 */ 690ed5401bSmrg uint64_t CurrentFieldEnable : 1; /* 8 */ 700ed5401bSmrg uint64_t PrevFieldEnable : 1; /* 9 */ 710ed5401bSmrg uint64_t NextFieldEnable : 1; /* 10 */ 720ed5401bSmrg uint64_t NextNrFieldEnable : 1; /* 11 */ 730ed5401bSmrg uint64_t CurMotionFieldEnable : 1; /* 12 */ 740ed5401bSmrg uint64_t PrevMotionFieldEnable : 1; /* 13 */ 750ed5401bSmrg uint64_t PpMotionFieldEnable : 1; /* 14 */ 760ed5401bSmrg uint64_t CombMotionFieldEnable : 1; /* 15 */ 770ed5401bSmrg uint64_t FrameFormat : 4; /* 19..16 */ 780ed5401bSmrg uint64_t FilterLengthY : 2; /* 21..20 */ 790ed5401bSmrg uint64_t FilterLengthX : 2; /* 23..22 */ 800ed5401bSmrg uint64_t Panoramic : 12; /* 35..24 */ 810ed5401bSmrg uint64_t ChromaUpLengthY : 2; /* 37..36 */ 820ed5401bSmrg uint64_t ChromaUpLengthX : 2; /* 39..38 */ 830ed5401bSmrg uint64_t reserved1 : 18; /* 57..40 */ 840ed5401bSmrg uint64_t DetailFltClamp : 6; /* 63..58 */ 850ed5401bSmrg uint64_t FilterNoise : 10; /* 73..64 */ 860ed5401bSmrg uint64_t FilterDetail : 10; /* 83..74 */ 870ed5401bSmrg uint64_t ChromaNoise : 10; /* 93..84 */ 880ed5401bSmrg uint64_t ChromaDetail : 10; /* 103..94 */ 890ed5401bSmrg uint64_t DeinterlaceMode : 4; /* 107..104 */ 900ed5401bSmrg uint64_t MotionAccumWeight : 3; /* 110..108 */ 910ed5401bSmrg uint64_t NoiseIir : 11; /* 121..111 */ 920ed5401bSmrg uint64_t LightLevel : 4; /* 125..122 */ 930ed5401bSmrg uint64_t reserved4 : 2; /* 127..126 */ 940ed5401bSmrg /* 128 */ 950ed5401bSmrg uint64_t SoftClampLow : 10; /* 9..0 */ 960ed5401bSmrg uint64_t SoftClampHigh : 10; /* 19..10 */ 970ed5401bSmrg uint64_t reserved5 : 12; /* 31..20 */ 980ed5401bSmrg uint64_t reserved6 : 2; /* 33..32 */ 990ed5401bSmrg uint64_t PlanarAlpha : 8; /* 41..34 */ 1000ed5401bSmrg uint64_t ConstantAlpha : 1; /* 42 */ 1010ed5401bSmrg uint64_t StereoInterleave : 3; /* 45..43 */ 1020ed5401bSmrg uint64_t ClipEnabled : 1; /* 46 */ 1030ed5401bSmrg uint64_t ClearRectMask : 8; /* 54..47 */ 1040ed5401bSmrg uint64_t DegammaMode : 2; /* 56..55 */ 1050ed5401bSmrg uint64_t reserved7 : 1; /* 57 */ 1060ed5401bSmrg uint64_t DecompressEnable : 1; /* 58 */ 1070ed5401bSmrg uint64_t DecompressKind : 4; /* 62..59 */ 1080ed5401bSmrg uint64_t reserved9 : 1; /* 63 */ 1090ed5401bSmrg uint64_t DecompressCtbCount : 8; /* 71..64 */ 1100ed5401bSmrg uint64_t DecompressZbcColor : 32; /* 103..72 */ 1110ed5401bSmrg uint64_t reserved12 : 24; /* 127..104 */ 1120ed5401bSmrg /* 256 */ 1130ed5401bSmrg uint64_t SourceRectLeft : 30; /* 29..0 */ 1140ed5401bSmrg uint64_t reserved14 : 2; /* 31..30 */ 1150ed5401bSmrg uint64_t SourceRectRight : 30; /* 61..32 */ 1160ed5401bSmrg uint64_t reserved15 : 2; /* 63..62 */ 1170ed5401bSmrg uint64_t SourceRectTop : 30; /* 93..64 */ 1180ed5401bSmrg uint64_t reserved16 : 2; /* 95..94 */ 1190ed5401bSmrg uint64_t SourceRectBottom : 30; /* 125..96 */ 1200ed5401bSmrg uint64_t reserved17 : 2; /* 127..126 */ 1210ed5401bSmrg /* 384 */ 1220ed5401bSmrg uint64_t DestRectLeft : 14; /* 13..0 */ 1230ed5401bSmrg uint64_t reserved18 : 2; /* 15..14 */ 1240ed5401bSmrg uint64_t DestRectRight : 14; /* 29..16 */ 1250ed5401bSmrg uint64_t reserved19 : 2; /* 31..30 */ 1260ed5401bSmrg uint64_t DestRectTop : 14; /* 45..32 */ 1270ed5401bSmrg uint64_t reserved20 : 2; /* 47..46 */ 1280ed5401bSmrg uint64_t DestRectBottom : 14; /* 61..48 */ 1290ed5401bSmrg uint64_t reserved21 : 2; /* 63..62 */ 1300ed5401bSmrg uint64_t B16ScalerEnable : 1; /* 64 */ 1310ed5401bSmrg uint64_t reserved22 : 31; /* 95..65 */ 1320ed5401bSmrg uint64_t reserved23 : 32; /* 127..96 */ 1330ed5401bSmrg} SlotConfig; 1340ed5401bSmrg 1350ed5401bSmrgtypedef struct { 1360ed5401bSmrg uint64_t SlotPixelFormat : 7; /* 6..0 */ 1370ed5401bSmrg uint64_t SlotChromaLocHORIZ : 2; /* 8..7 */ 1380ed5401bSmrg uint64_t SlotChromaLocVert : 2; /* 10..9 */ 1390ed5401bSmrg uint64_t SlotBlkKind : 4; /* 14..11 */ 1400ed5401bSmrg uint64_t SlotBlkHeight : 4; /* 18..15 */ 1410ed5401bSmrg uint64_t SlotCacheWidth : 3; /* 21..19 */ 1420ed5401bSmrg uint64_t reserved0 : 10; /* 31..22 */ 1430ed5401bSmrg uint64_t SlotSurfaceWidth : 14; /* 45..32 */ 1440ed5401bSmrg uint64_t SlotSurfaceHeight : 14; /* 59..46 */ 1450ed5401bSmrg uint64_t reserved1 : 4; /* 63..60 */ 1460ed5401bSmrg uint64_t SlotLumaWidth : 14; /* 77..64 */ 1470ed5401bSmrg uint64_t SlotLumaHeight : 14; /* 91..78 */ 1480ed5401bSmrg uint64_t reserved2 : 4; /* 95..92 */ 1490ed5401bSmrg uint64_t SlotChromaWidth : 14; /* 109..96 */ 1500ed5401bSmrg uint64_t SlotChromaHeight : 14; /* 123..110 */ 1510ed5401bSmrg uint64_t reserved3 : 4; /* 127..124 */ 1520ed5401bSmrg} SlotSurfaceConfig; 1530ed5401bSmrg 1540ed5401bSmrgtypedef struct { 1550ed5401bSmrg uint64_t luma_coeff0 : 20; /* 19..0 */ 1560ed5401bSmrg uint64_t luma_coeff1 : 20; /* 39..20 */ 1570ed5401bSmrg uint64_t luma_coeff2 : 20; /* 59..40 */ 1580ed5401bSmrg uint64_t luma_r_shift : 4; /* 63..60 */ 1590ed5401bSmrg uint64_t luma_coeff3 : 20; /* 83..64 */ 1600ed5401bSmrg uint64_t LumaKeyLower : 10; /* 93..84 */ 1610ed5401bSmrg uint64_t LumaKeyUpper : 10; /* 103..94 */ 1620ed5401bSmrg uint64_t LumaKeyEnabled : 1; /* 104 */ 1630ed5401bSmrg uint64_t reserved0 : 2; /* 106..105 */ 1640ed5401bSmrg uint64_t reserved1 : 21; /* 127..107 */ 1650ed5401bSmrg} LumaKeyStruct; 1660ed5401bSmrg 1670ed5401bSmrgtypedef struct { 1680ed5401bSmrg uint64_t matrix_coeff00 : 20; /* 19..0 */ 1690ed5401bSmrg uint64_t matrix_coeff10 : 20; /* 39..20 */ 1700ed5401bSmrg uint64_t matrix_coeff20 : 20; /* 59..40 */ 1710ed5401bSmrg uint64_t matrix_r_shift : 4; /* 63..60 */ 1720ed5401bSmrg uint64_t matrix_coeff01 : 20; /* 83..64 */ 1730ed5401bSmrg uint64_t matrix_coeff11 : 20; /* 103..84 */ 1740ed5401bSmrg uint64_t matrix_coeff21 : 20; /* 123..104 */ 1750ed5401bSmrg uint64_t reserved0 : 3; /* 126..124 */ 1760ed5401bSmrg uint64_t matrix_enable : 1; /* 127 */ 1770ed5401bSmrg /* 128 */ 1780ed5401bSmrg uint64_t matrix_coeff02 : 20; /* 19..0 */ 1790ed5401bSmrg uint64_t matrix_coeff12 : 20; /* 39..20 */ 1800ed5401bSmrg uint64_t matrix_coeff22 : 20; /* 59..40 */ 1810ed5401bSmrg uint64_t reserved1 : 4; /* 63..60 */ 1820ed5401bSmrg uint64_t matrix_coeff03 : 20; /* 83..64 */ 1830ed5401bSmrg uint64_t matrix_coeff13 : 20; /* 103..84 */ 1840ed5401bSmrg uint64_t matrix_coeff23 : 20; /* 123..104 */ 1850ed5401bSmrg uint64_t reserved2 : 4; /* 127..124 */ 1860ed5401bSmrg} MatrixStruct; 1870ed5401bSmrg 1880ed5401bSmrgtypedef struct { 1890ed5401bSmrg uint64_t ClearRect0Left : 14; /* 13..0 */ 1900ed5401bSmrg uint64_t reserved0 : 2; /* 15..14 */ 1910ed5401bSmrg uint64_t ClearRect0Right : 14; /* 29..16 */ 1920ed5401bSmrg uint64_t reserved1 : 2; /* 31..30 */ 1930ed5401bSmrg uint64_t ClearRect0Top : 14; /* 45..32 */ 1940ed5401bSmrg uint64_t reserved2 : 2; /* 47..46 */ 1950ed5401bSmrg uint64_t ClearRect0Bottom : 14; /* 61..48 */ 1960ed5401bSmrg uint64_t reserved3 : 2; /* 63..62 */ 1970ed5401bSmrg uint64_t ClearRect1Left : 14; /* 77..64 */ 1980ed5401bSmrg uint64_t reserved4 : 2; /* 79..78 */ 1990ed5401bSmrg uint64_t ClearRect1Right : 14; /* 93..80 */ 2000ed5401bSmrg uint64_t reserved5 : 2; /* 95..94 */ 2010ed5401bSmrg uint64_t ClearRect1Top : 14; /* 109..96 */ 2020ed5401bSmrg uint64_t reserved6 : 2; /* 111..110 */ 2030ed5401bSmrg uint64_t ClearRect1Bottom : 14; /* 125..112 */ 2040ed5401bSmrg uint64_t reserved7 : 2; /* 127..126 */ 2050ed5401bSmrg} ClearRectStruct; 2060ed5401bSmrg 2070ed5401bSmrgtypedef struct { 2080ed5401bSmrg uint64_t reserved0 : 2; /* 1..0 */ 2090ed5401bSmrg uint64_t AlphaK1 : 8; /* 9..2 */ 2100ed5401bSmrg uint64_t reserved1 : 6; /* 17..10 */ 2110ed5401bSmrg uint64_t AlphaK2 : 8; /* 25..18 */ 2120ed5401bSmrg uint64_t reserved2 : 6; /* 31..26 */ 2130ed5401bSmrg uint64_t SrcFactCMatchSelect : 3; /* 34..32 */ 2140ed5401bSmrg uint64_t reserved3 : 1; /* 35 */ 2150ed5401bSmrg uint64_t DstFactCMatchSelect : 3; /* 38..36 */ 2160ed5401bSmrg uint64_t reserved4 : 1; /* 39 */ 2170ed5401bSmrg uint64_t SrcFactAMatchSelect : 3; /* 42..40 */ 2180ed5401bSmrg uint64_t reserved5 : 1; /* 43 */ 2190ed5401bSmrg uint64_t DstFactAMatchSelect : 3; /* 46..44 */ 2200ed5401bSmrg uint64_t reserved6 : 1; /* 47 */ 2210ed5401bSmrg uint64_t reserved7 : 4; /* 51..48 */ 2220ed5401bSmrg uint64_t reserved8 : 4; /* 55..52 */ 2230ed5401bSmrg uint64_t reserved9 : 4; /* 59..56 */ 2240ed5401bSmrg uint64_t reserved10 : 4; /* 63..60 */ 2250ed5401bSmrg uint64_t reserved11 : 2; /* 65..64 */ 2260ed5401bSmrg uint64_t OverrideR : 10; /* 75..66 */ 2270ed5401bSmrg uint64_t OverrideG : 10; /* 85..76 */ 2280ed5401bSmrg uint64_t OverrideB : 10; /* 95..86 */ 2290ed5401bSmrg uint64_t reserved12 : 2; /* 97..96 */ 2300ed5401bSmrg uint64_t OverrideA : 8; /* 105..98 */ 2310ed5401bSmrg uint64_t reserved13 : 2; /* 107..106 */ 2320ed5401bSmrg uint64_t UseOverrideR : 1; /* 108 */ 2330ed5401bSmrg uint64_t UseOverrideG : 1; /* 109 */ 2340ed5401bSmrg uint64_t UseOverrideB : 1; /* 110 */ 2350ed5401bSmrg uint64_t UseOverrideA : 1; /* 111 */ 2360ed5401bSmrg uint64_t MaskR : 1; /* 112 */ 2370ed5401bSmrg uint64_t MaskG : 1; /* 113 */ 2380ed5401bSmrg uint64_t MaskB : 1; /* 114 */ 2390ed5401bSmrg uint64_t MaskA : 1; /* 115 */ 2400ed5401bSmrg uint64_t reserved14 : 12; /* 127..116 */ 2410ed5401bSmrg} BlendingSlotStruct; 2420ed5401bSmrg 2430ed5401bSmrgtypedef struct { 2440ed5401bSmrg uint64_t AlphaFillMode : 3; /* 2..0 */ 2450ed5401bSmrg uint64_t AlphaFillSlot : 3; /* 5..3 */ 2460ed5401bSmrg uint64_t reserved0 : 2; /* 6..5 */ 2470ed5401bSmrg uint64_t BackgroundAlpha : 8; /* 15..7 */ 2480ed5401bSmrg uint64_t BackgroundR : 10; /* 25..16 */ 2490ed5401bSmrg uint64_t BackgroundG : 10; /* 35..26 */ 2500ed5401bSmrg uint64_t BackgroundB : 10; /* 45..36 */ 2510ed5401bSmrg uint64_t RegammaMode : 2; /* 47..46 */ 2520ed5401bSmrg uint64_t OutputFlipX : 1; /* 48 */ 2530ed5401bSmrg uint64_t OutputFlipY : 1; /* 49 */ 2540ed5401bSmrg uint64_t OutputTranspose : 1; /* 50 */ 2550ed5401bSmrg uint64_t reserved1 : 1; /* 51 */ 2560ed5401bSmrg uint64_t reserved2 : 12; /* 63..52 */ 2570ed5401bSmrg uint64_t TargetRectLeft : 14; /* 77..64 */ 2580ed5401bSmrg uint64_t reserved3 : 2; /* 79..78 */ 2590ed5401bSmrg uint64_t TargetRectRight : 14; /* 93..80 */ 2600ed5401bSmrg uint64_t reserved4 : 2; /* 95..94 */ 2610ed5401bSmrg uint64_t TargetRectTop : 14; /* 109..96 */ 2620ed5401bSmrg uint64_t reserved5 : 2; /* 111..110 */ 2630ed5401bSmrg uint64_t TargetRectBottom : 14; /* 125..112 */ 2640ed5401bSmrg uint64_t reserved6 : 2; /* 127..126 */ 2650ed5401bSmrg} OutputConfig; 2660ed5401bSmrg 2670ed5401bSmrgtypedef struct { 2680ed5401bSmrg uint64_t OutPixelFormat : 7; /* 6..0 */ 2690ed5401bSmrg uint64_t OutChromaLocHoriz : 2; /* 8..7 */ 2700ed5401bSmrg uint64_t OutChromaLocVert : 2; /* 10..9 */ 2710ed5401bSmrg uint64_t OutBlkKind : 4; /* 14..11 */ 2720ed5401bSmrg uint64_t OutBlkHeight : 4; /* 18..15 */ 2730ed5401bSmrg uint64_t reserved0 : 3; /* 21..19 */ 2740ed5401bSmrg uint64_t reserved1 : 10; /* 31..22 */ 2750ed5401bSmrg uint64_t OutSurfaceWidth : 14; /* 45..32 */ 2760ed5401bSmrg uint64_t OutSurfaceHeight : 14; /* 59..46 */ 2770ed5401bSmrg uint64_t reserved2 : 4; /* 63..60 */ 2780ed5401bSmrg uint64_t OutLumaWidth : 14; /* 77..64 */ 2790ed5401bSmrg uint64_t OutLumaHeight : 14; /* 91..78 */ 2800ed5401bSmrg uint64_t reserved3 : 4; /* 95..92 */ 2810ed5401bSmrg uint64_t OutChromaWidth : 14; /* 109..96 */ 2820ed5401bSmrg uint64_t OutChromaHeight : 14; /* 123..110 */ 2830ed5401bSmrg uint64_t reserved4 : 4; /* 127..124 */ 2840ed5401bSmrg} OutputSurfaceConfig; 2850ed5401bSmrg 2860ed5401bSmrgtypedef struct { 2870ed5401bSmrg uint64_t f00 : 10; /* 9..0 */ 2880ed5401bSmrg uint64_t f10 : 10; /* 19..10 */ 2890ed5401bSmrg uint64_t f20 : 10; /* 29..20 */ 2900ed5401bSmrg uint64_t reserved0 : 2; /* 31..30 */ 2910ed5401bSmrg uint64_t f01 : 10; /* 41..32 */ 2920ed5401bSmrg uint64_t f11 : 10; /* 51..42 */ 2930ed5401bSmrg uint64_t f21 : 10; /* 61..52 */ 2940ed5401bSmrg uint64_t reserved1 : 2; /* 63..62 */ 2950ed5401bSmrg uint64_t f02 : 10; /* 73..64 */ 2960ed5401bSmrg uint64_t f12 : 10; /* 83..74 */ 2970ed5401bSmrg uint64_t f22 : 10; /* 93..84 */ 2980ed5401bSmrg uint64_t reserved2 : 2; /* 95..94 */ 2990ed5401bSmrg uint64_t f03 : 10; /* 105..96 */ 3000ed5401bSmrg uint64_t f13 : 10; /* 115..106 */ 3010ed5401bSmrg uint64_t f23 : 10; /* 125..116 */ 3020ed5401bSmrg uint64_t reserved3 : 2; /* 127..126 */ 3030ed5401bSmrg} FilterCoeffStruct; 3040ed5401bSmrg 3050ed5401bSmrgtypedef struct { 3060ed5401bSmrg uint64_t DownsampleHoriz : 11; /* 10..0 */ 3070ed5401bSmrg uint64_t reserved0 : 5; /* 15..11 */ 3080ed5401bSmrg uint64_t DownsampleVert : 11; /* 26..16 */ 3090ed5401bSmrg uint64_t reserved1 : 5; /* 31..27 */ 3100ed5401bSmrg uint64_t reserved2 : 32; /* 63..32 */ 3110ed5401bSmrg uint64_t reserved3 : 32; /* 95..64 */ 3120ed5401bSmrg uint64_t reserved4 : 32; /* 127..96 */ 3130ed5401bSmrg} PipeConfig; 3140ed5401bSmrg 3150ed5401bSmrgtypedef struct { 3160ed5401bSmrg uint64_t OldCadence : 32; /* 31..0 */ 3170ed5401bSmrg uint64_t OldDiff : 32; /* 63..32 */ 3180ed5401bSmrg uint64_t OldWeave : 32; /* 95..64 */ 3190ed5401bSmrg uint64_t OlderWeave : 32; /* 127..96 */ 3200ed5401bSmrg} SlotHistoryBuffer; 3210ed5401bSmrg 3220ed5401bSmrgtypedef struct { 3230ed5401bSmrg uint64_t crc0 : 32; /* 31..0 */ 3240ed5401bSmrg uint64_t crc1 : 32; /* 63..32 */ 3250ed5401bSmrg uint64_t crc2 : 32; /* 95..64 */ 3260ed5401bSmrg uint64_t crc3 : 32; /* 127..96 */ 3270ed5401bSmrg} PartitionCrcStruct; 3280ed5401bSmrg 3290ed5401bSmrgtypedef struct { 3300ed5401bSmrg uint64_t crc0 : 32; /* 31..0 */ 3310ed5401bSmrg uint64_t crc1 : 32; /* 63..32 */ 3320ed5401bSmrg} SlotCrcStruct; 3330ed5401bSmrg 3340ed5401bSmrgtypedef struct { 3350ed5401bSmrg uint64_t ErrorStatus : 32; /* 31..0 */ 3360ed5401bSmrg uint64_t CycleCount : 32; /* 63..32 */ 3370ed5401bSmrg uint64_t reserved0 : 32; /* 95..64 */ 3380ed5401bSmrg uint64_t reserved1 : 32; /* 127..96 */ 3390ed5401bSmrg} StatusStruct; 3400ed5401bSmrg 3410ed5401bSmrgtypedef struct { 3420ed5401bSmrg uint64_t coeff_0 : 10; /* 9..0 */ 3430ed5401bSmrg uint64_t reserved0 : 6; /* 15..10 */ 3440ed5401bSmrg uint64_t coeff_1 : 10; /* 25..16 */ 3450ed5401bSmrg uint64_t reserved1 : 6; /* 31..26 */ 3460ed5401bSmrg uint64_t coeff_2 : 10; /* 41..32 */ 3470ed5401bSmrg uint64_t reserved2 : 6; /* 47..42 */ 3480ed5401bSmrg uint64_t coeff_3 : 10; /* 57..48 */ 3490ed5401bSmrg uint64_t reserved3 : 6; /* 63..58 */ 3500ed5401bSmrg} CoeffPhaseParamStruct; 3510ed5401bSmrg 3520ed5401bSmrgtypedef struct { 3530ed5401bSmrg uint64_t GeoTranEn : 1; /* 0 */ 3540ed5401bSmrg uint64_t GeoTranMode : 2; /* 2..1 */ 3550ed5401bSmrg uint64_t IPTMode : 1; /* 3 */ 3560ed5401bSmrg uint64_t PixelFilterType : 2; /* 5..4 */ 3570ed5401bSmrg uint64_t PixelFormat : 7; /* 12..6 */ 3580ed5401bSmrg uint64_t CacheWidth : 3; /* 15..13 */ 3590ed5401bSmrg uint64_t SrcBlkKind : 4; /* 19..16 */ 3600ed5401bSmrg uint64_t SrcBlkHeight : 4; /* 23..20 */ 3610ed5401bSmrg uint64_t DestBlkKind : 4; /* 27..24 */ 3620ed5401bSmrg uint64_t DestBlkHeight : 4; /* 31..28 */ 3630ed5401bSmrg uint64_t MskBitMapEn : 1; /* 32 */ 3640ed5401bSmrg uint64_t MaskedPixelFillMode : 1; /* 33 */ 3650ed5401bSmrg uint64_t XSobelMode : 2; /* 35..34 */ 3660ed5401bSmrg uint64_t SubFrameEn : 1; /* 36 */ 3670ed5401bSmrg uint64_t reserved0 : 3; /* 39..37 */ 3680ed5401bSmrg uint64_t XSobelBlkKind : 4; /* 43..40 */ 3690ed5401bSmrg uint64_t XSobelBlkHeight : 4; /* 47..44 */ 3700ed5401bSmrg uint64_t XSobelDSBlkKind : 4; /* 51..48 */ 3710ed5401bSmrg uint64_t XSobelDSBlkHeight : 4; /* 55..52 */ 3720ed5401bSmrg uint64_t reserved1 : 8; /* 63..56 */ 3730ed5401bSmrg uint64_t NonFixedPatchEn : 1; /* 64 */ 3740ed5401bSmrg uint64_t HorRegionNum : 2; /* 66..65 */ 3750ed5401bSmrg uint64_t VerRegionNum : 2; /* 68..67 */ 3760ed5401bSmrg uint64_t reserved2 : 3; /* 71..69 */ 3770ed5401bSmrg uint64_t log2HorSpace_0 : 3; /* 74..72 */ 3780ed5401bSmrg uint64_t log2VerSpace_0 : 3; /* 77..75 */ 3790ed5401bSmrg uint64_t log2HorSpace_1 : 3; /* 80..78 */ 3800ed5401bSmrg uint64_t log2VerSpace_1 : 3; /* 83..81 */ 3810ed5401bSmrg uint64_t log2HorSpace_2 : 3; /* 86..84 */ 3820ed5401bSmrg uint64_t log2VerSpace_2 : 3; /* 89..87 */ 3830ed5401bSmrg uint64_t log2HorSpace_3 : 3; /* 92..90 */ 3840ed5401bSmrg uint64_t log2VerSpace_3 : 3; /* 95..93 */ 3850ed5401bSmrg uint64_t horRegionWidth_0 : 14; /* 109..96 */ 3860ed5401bSmrg uint64_t reserved3 : 2; /* 111..110 */ 3870ed5401bSmrg uint64_t horRegionWidth_1 : 14; /* 125..112 */ 3880ed5401bSmrg uint64_t reserved4 : 2; /* 127..126 */ 3890ed5401bSmrg uint64_t horRegionWidth_2 : 14; /* 141..128 */ 3900ed5401bSmrg uint64_t reserved5 : 2; /* 143..142 */ 3910ed5401bSmrg uint64_t horRegionWidth_3 : 14; /* 157..144 */ 3920ed5401bSmrg uint64_t reserved6 : 2; /* 159..158 */ 3930ed5401bSmrg uint64_t verRegionHeight_0 : 14; /* 173..160 */ 3940ed5401bSmrg uint64_t reserved7 : 2; /* 175..174 */ 3950ed5401bSmrg uint64_t verRegionHeight_1 : 14; /* 189..176 */ 3960ed5401bSmrg uint64_t reserved8 : 2; /* 191..190 */ 3970ed5401bSmrg uint64_t verRegionHeight_2 : 14; /* 205..192 */ 3980ed5401bSmrg uint64_t reserved9 : 2; /* 207..206 */ 3990ed5401bSmrg uint64_t verRegionHeight_3 : 14; /* 221..208 */ 4000ed5401bSmrg uint64_t reserved10 : 2; /* 223..222 */ 4010ed5401bSmrg uint64_t IPT_M11 : 32; /* 255..224 */ 4020ed5401bSmrg uint64_t IPT_M12 : 32; /* 287..256 */ 4030ed5401bSmrg uint64_t IPT_M13 : 32; /* 319..288 */ 4040ed5401bSmrg uint64_t IPT_M21 : 32; /* 351..320 */ 4050ed5401bSmrg uint64_t IPT_M22 : 32; /* 383..352 */ 4060ed5401bSmrg uint64_t IPT_M23 : 32; /* 415..384 */ 4070ed5401bSmrg uint64_t IPT_M31 : 32; /* 447..416 */ 4080ed5401bSmrg uint64_t IPT_M32 : 32; /* 479..448 */ 4090ed5401bSmrg uint64_t IPT_M33 : 32; /* 511..480 */ 4100ed5401bSmrg uint64_t SourceRectLeft : 14; /* 525..512 */ 4110ed5401bSmrg uint64_t reserved11 : 2; /* 527..526 */ 4120ed5401bSmrg uint64_t SourceRectRight : 14; /* 541..528 */ 4130ed5401bSmrg uint64_t reserved12 : 2; /* 543..542 */ 4140ed5401bSmrg uint64_t SourceRectTop : 14; /* 557..544 */ 4150ed5401bSmrg uint64_t reserved13 : 2; /* 559..558 */ 4160ed5401bSmrg uint64_t SourceRectBottom : 14; /* 573..560 */ 4170ed5401bSmrg uint64_t reserved14; /* 575..574 */ 4180ed5401bSmrg uint64_t SrcImgWidth : 14; /* 589..576 */ 4190ed5401bSmrg uint64_t reserved15 : 2; /* 591..590 */ 4200ed5401bSmrg uint64_t SrcImgHeight : 14; /* 605..592 */ 4210ed5401bSmrg uint64_t reserved16 : 2; /* 607..606 */ 4220ed5401bSmrg uint64_t SrcSfcLumaWidth : 14; /* 621..608 */ 4230ed5401bSmrg uint64_t reserved17 : 2; /* 623..622 */ 4240ed5401bSmrg uint64_t SrcSfcLumaHeight : 14; /* 637..624 */ 4250ed5401bSmrg uint64_t reserved18 : 2; /* 639..638 */ 4260ed5401bSmrg uint64_t SrcSfcChromaWidth : 14; /* 653..640 */ 4270ed5401bSmrg uint64_t reserved19 : 2; /* 655..654 */ 4280ed5401bSmrg uint64_t SrcSfcChromaHeight : 14; /* 669..656 */ 4290ed5401bSmrg uint64_t reserved20 : 2; /* 671..670 */ 4300ed5401bSmrg uint64_t DestRectLeft : 14; /* 685..672 */ 4310ed5401bSmrg uint64_t reserved21 : 2; /* 687..686 */ 4320ed5401bSmrg uint64_t DestRectRight : 14; /* 701..688 */ 4330ed5401bSmrg uint64_t reserved22 : 2; /* 703..702 */ 4340ed5401bSmrg uint64_t DestRectTop : 14; /* 717..704 */ 4350ed5401bSmrg uint64_t reserved23 : 2; /* 719..718 */ 4360ed5401bSmrg uint64_t DestRectBottom : 14; /* 733..720 */ 4370ed5401bSmrg uint64_t reserved24 : 2; /* 735..734 */ 4380ed5401bSmrg uint64_t SubFrameRectTop : 14; /* 749..736 */ 4390ed5401bSmrg uint64_t reserved25 : 2; /* 751..750 */ 4400ed5401bSmrg uint64_t SubFrameRectBottom : 14; /* 765..752 */ 4410ed5401bSmrg uint64_t reserved26 : 2; /* 767..766 */ 4420ed5401bSmrg uint64_t DestSfcLumaWidth : 14; /* 781..768 */ 4430ed5401bSmrg uint64_t reserved27 : 2; /* 783..782 */ 4440ed5401bSmrg uint64_t DestSfcLumaHeight : 14; /* 797..784 */ 4450ed5401bSmrg uint64_t reserved28 : 2; /* 799..798 */ 4460ed5401bSmrg uint64_t DestSfcChromaWidth : 14; /* 813..800 */ 4470ed5401bSmrg uint64_t reserved29 : 2; /* 815..814 */ 4480ed5401bSmrg uint64_t DestSfcChromaHeight : 14; /* 829..816 */ 4490ed5401bSmrg uint64_t reserved30 : 2; /* 831..830 */ 4500ed5401bSmrg uint64_t SparseWarpMapWidth : 14; /* 845..832 */ 4510ed5401bSmrg uint64_t reserved31 : 2; /* 847..846 */ 4520ed5401bSmrg uint64_t SparseWarpMapHeight : 14; /* 861..848 */ 4530ed5401bSmrg uint64_t reserved32 : 2; /* 863..862 */ 4540ed5401bSmrg uint64_t SparseWarpMapStride : 14; /* 877..864 */ 4550ed5401bSmrg uint64_t reserved33 : 2; /* 879..878 */ 4560ed5401bSmrg uint64_t MaskBitMapWidth : 14; /* 893..880 */ 4570ed5401bSmrg uint64_t reserved34 : 2; /* 895..894 */ 4580ed5401bSmrg uint64_t MaskBitMapHeight : 14; /* 909..896 */ 4590ed5401bSmrg uint64_t reserved35 : 2; /* 911..910 */ 4600ed5401bSmrg uint64_t MaskBitMapStride : 14; /* 925..912 */ 4610ed5401bSmrg uint64_t reserved36 : 2; /* 927..926 */ 4620ed5401bSmrg uint64_t XSobelWidth : 14; /* 941..928 */ 4630ed5401bSmrg uint64_t reserved37 : 2; /* 943..942 */ 4640ed5401bSmrg uint64_t XSobelHeight : 14; /* 957..944 */ 4650ed5401bSmrg uint64_t reserved38 : 2; /* 959..958 */ 4660ed5401bSmrg uint64_t XSobelStride : 14; /* 973..960 */ 4670ed5401bSmrg uint64_t reserved39 : 2; /* 975..974 */ 4680ed5401bSmrg uint64_t DSStride : 14; /* 989..976 */ 4690ed5401bSmrg uint64_t reserved40 : 2; /* 991..990 */ 4700ed5401bSmrg uint64_t XSobelTopOffset : 32; /* 1023..992 */ 4710ed5401bSmrg uint64_t reserved41 : 32; /* 1055..1024 */ 4720ed5401bSmrg uint64_t maskY : 16; /* 1071..1056 */ 4730ed5401bSmrg uint64_t maskU : 16; /* 1087..1072 */ 4740ed5401bSmrg uint64_t maskV : 16; /* 1103..1088 */ 4750ed5401bSmrg uint64_t reserved42 : 16; /* 1119..1104 */ 4760ed5401bSmrg} GeoTranConfigParamStruct; 4770ed5401bSmrg 4780ed5401bSmrgtypedef struct { 4790ed5401bSmrg uint64_t TNR3En : 1; /* 0 */ 4800ed5401bSmrg uint64_t BetaBlendingEn : 1; /* 1 */ 4810ed5401bSmrg uint64_t AlphaBlendingEn : 1; /* 2 */ 4820ed5401bSmrg uint64_t AlphaSmoothEn : 1; /* 3 */ 4830ed5401bSmrg uint64_t TempAlphaRestrictEn : 1; /* 4 */ 4840ed5401bSmrg uint64_t AlphaClipEn : 1; /* 5 */ 4850ed5401bSmrg uint64_t BFRangeEn : 1; /* 6 */ 4860ed5401bSmrg uint64_t BFDomainEn : 1; /* 7 */ 4870ed5401bSmrg uint64_t BFRangeLumaShift : 4; /* 11..8 */ 4880ed5401bSmrg uint64_t BFRangeChromaShift : 4; /* 15..12 */ 4890ed5401bSmrg uint64_t SADMultiplier : 6; /* 21..16 */ 4900ed5401bSmrg uint64_t reserved1 : 2; /* 23..22 */ 4910ed5401bSmrg uint64_t SADWeightLuma : 6; /* 29..24 */ 4920ed5401bSmrg uint64_t reserved2 : 2; /* 31..30 */ 4930ed5401bSmrg uint64_t TempAlphaRestrictIncCap : 11; /* 42..32 */ 4940ed5401bSmrg uint64_t reserved3 : 5; /* 47..43 */ 4950ed5401bSmrg uint64_t AlphaScaleIIR : 11; /* 58..48 */ 4960ed5401bSmrg uint64_t reserved4 : 5; /* 63..59 */ 4970ed5401bSmrg uint64_t AlphaClipMaxLuma : 11; /* 74..64 */ 4980ed5401bSmrg uint64_t reserved5 : 5; /* 79..75 */ 4990ed5401bSmrg uint64_t AlphaClipMinLuma : 11; /* 90..80 */ 5000ed5401bSmrg uint64_t reserved6 : 5; /* 95..91 */ 5010ed5401bSmrg uint64_t AlphaClipMaxChroma : 11; /* 106..96 */ 5020ed5401bSmrg uint64_t reserved7 : 5; /* 111..107 */ 5030ed5401bSmrg uint64_t AlphaClipMinChroma : 11; /* 122..112 */ 5040ed5401bSmrg uint64_t reserved8 : 5; /* 127..123 */ 5050ed5401bSmrg uint64_t BetaCalcMaxBeta : 11; /* 138..128 */ 5060ed5401bSmrg uint64_t reserved9 : 5; /* 143..139 */ 5070ed5401bSmrg uint64_t BetaCalcMinBeta : 11; /* 154..144 */ 5080ed5401bSmrg uint64_t reserved10 : 5; /* 159..155 */ 5090ed5401bSmrg uint64_t BetaCalcBetaX1 : 11; /* 170..160 */ 5100ed5401bSmrg uint64_t reserved11 : 5; /* 175..171 */ 5110ed5401bSmrg uint64_t BetaCalcBetaX2 : 11; /* 186..176 */ 5120ed5401bSmrg uint64_t reserved12 : 5; /* 191..187 */ 5130ed5401bSmrg uint64_t BetaCalcStepBeta : 11; /* 202..192 */ 5140ed5401bSmrg uint64_t reserved13 : 5; /* 207..203 */ 5150ed5401bSmrg uint64_t reserved14 : 16; /* 223..208 */ 5160ed5401bSmrg uint64_t BFDomainLumaCoeffC00 : 7; /* 230..224 */ 5170ed5401bSmrg uint64_t reserved15 : 1; /* 231 */ 5180ed5401bSmrg uint64_t BFDomainLumaCoeffC01 : 7; /* 238..232 */ 5190ed5401bSmrg uint64_t reserved16 : 1; /* 239 */ 5200ed5401bSmrg uint64_t BFDomainLumaCoeffC02 : 7; /* 246..240 */ 5210ed5401bSmrg uint64_t reserved17 : 1; /* 247 */ 5220ed5401bSmrg uint64_t BFDomainLumaCoeffC11 : 7; /* 254..248 */ 5230ed5401bSmrg uint64_t reserved18 : 1; /* 255 */ 5240ed5401bSmrg uint64_t BFDomainLumaCoeffC12 : 7; /* 262..256 */ 5250ed5401bSmrg uint64_t reserved19 : 1; /* 263 */ 5260ed5401bSmrg uint64_t BFDomainLumaCoeffC22 : 7; /* 270..264 */ 5270ed5401bSmrg uint64_t reserved20 : 1; /* 271 */ 5280ed5401bSmrg uint64_t reserved21 : 16; /* 287..272 */ 5290ed5401bSmrg uint64_t BFDomainChromaCoeffC00 : 7; /* 294..288 */ 5300ed5401bSmrg uint64_t reserved22 : 1; /* 295 */ 5310ed5401bSmrg uint64_t BFDomainChromaCoeffC01 : 7; /* 302..296 */ 5320ed5401bSmrg uint64_t reserved23 : 1; /* 303 */ 5330ed5401bSmrg uint64_t BFDomainChromaCoeffC02 : 7; /* 310..304 */ 5340ed5401bSmrg uint64_t reserved24 : 1; /* 311 */ 5350ed5401bSmrg uint64_t BFDomainChromaCoeffC11 : 7; /* 318..312 */ 5360ed5401bSmrg uint64_t reserved25 : 1; /* 319 */ 5370ed5401bSmrg uint64_t BFDomainChromaCoeffC12 : 7; /* 326..320 */ 5380ed5401bSmrg uint64_t reserved26 : 1; /* 327 */ 5390ed5401bSmrg uint64_t BFDomainChromaCoeffC22 : 7; /* 334..328 */ 5400ed5401bSmrg uint64_t reserved27 : 1; /* 335 */ 5410ed5401bSmrg uint64_t reserved28 : 16; /* 351..336 */ 5420ed5401bSmrg uint64_t LeftBufSize : 32; /* 383..352 */ 5430ed5401bSmrg uint64_t TopBufSize : 32; /* 415..384 */ 5440ed5401bSmrg uint64_t AlphaSufStride : 14; /* 429..416 */ 5450ed5401bSmrg uint64_t reserved29 : 18; /* 447..430 */ 5460ed5401bSmrg} TNR3ConfigParamStruct; 5470ed5401bSmrg 5480ed5401bSmrgtypedef struct { 5490ed5401bSmrg uint64_t item0 : 7; /* 6..0 */ 5500ed5401bSmrg uint64_t reserved0 : 9; /* 15..7 */ 5510ed5401bSmrg uint64_t item1 : 7; /* 22..16 */ 5520ed5401bSmrg uint64_t reserved1 : 9; /* 31..23 */ 5530ed5401bSmrg uint64_t item2 : 7; /* 38..32 */ 5540ed5401bSmrg uint64_t reserved2 : 9; /* 47..39 */ 5550ed5401bSmrg uint64_t item3 : 7; /* 54..48 */ 5560ed5401bSmrg uint64_t reserved3 : 9; /* 63..55 */ 5570ed5401bSmrg} BFRangeTableItems; 5580ed5401bSmrg 5590ed5401bSmrgtypedef struct { 5600ed5401bSmrg SlotConfig slotConfig; 5610ed5401bSmrg SlotSurfaceConfig slotSurfaceConfig; 5620ed5401bSmrg LumaKeyStruct lumaKeyStruct; 5630ed5401bSmrg MatrixStruct colorMatrixStruct; 5640ed5401bSmrg MatrixStruct gamutMatrixStruct; 5650ed5401bSmrg BlendingSlotStruct blendingSlotStruct; 5660ed5401bSmrg} SlotStruct; 5670ed5401bSmrg 5680ed5401bSmrgtypedef struct { 5690ed5401bSmrg FilterCoeffStruct filterCoeffStruct[520]; 5700ed5401bSmrg} FilterStruct; 5710ed5401bSmrg 5720ed5401bSmrgtypedef struct { 5730ed5401bSmrg PipeConfig pipeConfig; 5740ed5401bSmrg OutputConfig outputConfig; 5750ed5401bSmrg OutputSurfaceConfig outputSurfaceConfig; 5760ed5401bSmrg MatrixStruct outColorMatrixStruct; 5770ed5401bSmrg ClearRectStruct clearRectStruct[4]; 5780ed5401bSmrg SlotStruct slotStruct[16]; 5790ed5401bSmrg} ConfigStruct; 5800ed5401bSmrg 5810ed5401bSmrgtypedef struct { 5820ed5401bSmrg PartitionCrcStruct partitionCrcStruct[2]; 5830ed5401bSmrg} InterfaceCrcStruct; 5840ed5401bSmrg 5850ed5401bSmrgtypedef struct { 5860ed5401bSmrg SlotCrcStruct slotCrcStruct[16]; 5870ed5401bSmrg} InputCrcStruct; 5880ed5401bSmrg 5890ed5401bSmrgtypedef struct { 5900ed5401bSmrg GeoTranConfigParamStruct paramConfig; 5910ed5401bSmrg CoeffPhaseParamStruct FilterCoeff[17]; 5920ed5401bSmrg TNR3ConfigParamStruct tnr3Config; 5930ed5401bSmrg BFRangeTableItems BFRangeTableLuma[16]; 5940ed5401bSmrg BFRangeTableItems BFRangeTableChroma[16]; 5950ed5401bSmrg} GeoTranConfigStruct; 5960ed5401bSmrg 5970ed5401bSmrg#endif 598