xref: /aosp_15_r20/external/intel-media-driver/media_softlet/agnostic/common/hw/vdbox/mhw_vdbox_avp_cmdpar.h (revision ba62d9d3abf0e404f2022b4cd7a85e107f48596f)
1 /*
2 * Copyright (c) 2020-2024, Intel Corporation
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included
12 * in all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 * OTHER DEALINGS IN THE SOFTWARE.
21 */
22 //!
23 //! \file     mhw_vdbox_avp_cmdpar.h
24 //! \brief    MHW command parameters
25 //! \details
26 //!
27 
28 #ifndef __MHW_VDBOX_AVP_CMDPAR_H__
29 #define __MHW_VDBOX_AVP_CMDPAR_H__
30 
31 #include "codec_def_common_encode.h"
32 #include "codec_def_common_av1.h"
33 #include "codec_def_decode_av1.h"
34 #include "mhw_vdbox.h"
35 #include "mhw_vdbox_cmdpar.h"
36 
37 #ifdef IGFX_AVP_INTERFACE_EXT_SUPPORT
38 #include "mhw_vdbox_avp_cmdpar_ext.h"
39 #define __MHW_VDBOX_AVP_WRAPPER(STUFF)
40 #define __MHW_VDBOX_AVP_WRAPPER_EXT(STUFF) STUFF
41 #else
42 #define __MHW_VDBOX_AVP_WRAPPER(STUFF) STUFF
43 #define __MHW_VDBOX_AVP_WRAPPER_EXT(STUFF)
44 #endif
45 
46 namespace mhw
47 {
48 namespace vdbox
49 {
50 namespace avp
51 {
52 
53 enum class SURFACE_FORMAT
54 {
55     SURFACE_FORMAT_P010VARIANT = 3,
56     SURFACE_FORMAT_PLANAR4208  = 4,
57     SURFACE_FORMAT_P010        = 13,
58 };
59 
60 enum AvpBufferType
61 {
62     segmentIdBuffer        = 0,    //!< segment ID temporal buffers
63     mvTemporalBuffer,              //!< MV temporal buffers of both current and collocated
64     bsdLineBuffer,                 //!< bitstream decode line buffer
65     bsdTileLineBuffer,             //!< bitstream decode tile line buffer
66     intraPredLineBuffer,           //!< intra prediction line buffer
67     intraPredTileLineBuffer,
68     spatialMvLineBuffer,
69     spatialMvTileLineBuffer,
70     lrMetaTileColBuffer,           //!< Loop Restoration Meta Tile Column Read/Write Buffer Address
71     lrTileLineYBuffer,             //!< Loop Restoration Filter Tile Read/Write Line Y Buffer Address
72     lrTileLineUBuffer,             //!< Loop Restoration Filter Tile Read/Write Line U Buffer Address
73     lrTileLineVBuffer,             //!< Loop Restoration Filter Tile Read/Write Line V Buffer Address
74     deblockLineYBuffer,
75     deblockLineUBuffer,
76     deblockLineVBuffer,
77     deblockTileLineYBuffer,
78     deblockTileLineVBuffer,
79     deblockTileLineUBuffer,
80     deblockTileColYBuffer,
81     deblockTileColUBuffer,
82     deblockTileColVBuffer,
83     cdefLineBuffer,
84     cdefTileLineBuffer,
85     cdefTileColBuffer,
86     cdefMetaTileLineBuffer,
87     cdefMetaTileColBuffer,
88     cdefTopLeftCornerBuffer,
89     superResTileColYBuffer,
90     superResTileColUBuffer,
91     superResTileColVBuffer,
92     lrTileColYBuffer,
93     lrTileColUBuffer,
94     lrTileColVBuffer,
95     frameStatusErrBuffer,
96     dbdStreamoutBuffer,
97     fgTileColBuffer,
98     fgSampleTmpBuffer,
99     lrTileColAlignBuffer,
100     tileSzStreamOutBuffer,
101     tileStatStreamOutBuffer,
102     cuStreamoutBuffer,
103     sseLineBuffer,
104     sseTileLineBuffer,
105     avpInternalBufferMax
106 };
107 
108 struct AvpBufferSizePar
109 {
110     uint8_t      bitDepthIdc;
111     uint32_t     width;
112     uint32_t     height;
113     uint32_t     tileWidth;
114     uint32_t     bufferSize;
115     bool         isSb128x128;
116     uint32_t     curFrameTileNum;
117     uint32_t     numTileCol;
118     uint8_t      numOfActivePipes;
119     uint16_t     chromaFormat;
120 };
121 
122 struct AvpVdboxRowStorePar
123 {
124     uint32_t mode;
125     uint32_t picWidth;
126     uint32_t mbaff;
127     bool     isFrame;
128     uint8_t  bitDepthMinus8;
129     uint8_t  chromaFormat;
130     uint8_t  lcuSize;
131 };
132 
_MHW_PAR_T(AVP_PIPE_MODE_SELECT)133 struct _MHW_PAR_T(AVP_PIPE_MODE_SELECT)
134 {
135     uint8_t                         codecSelect                       = 0;
136     bool                            cdefOutputStreamoutEnableFlag     = false;
137     bool                            lrOutputStreamoutEnableFlag       = false;
138     bool                            picStatusErrorReportEnable        = false;
139     uint8_t                         codecStandardSelect               = 0;
140     MHW_VDBOX_HCP_MULTI_ENGINE_MODE multiEngineMode                   = MHW_VDBOX_HCP_MULTI_ENGINE_MODE_FE_LEGACY;
141     MHW_VDBOX_HCP_PIPE_WORK_MODE    pipeWorkingMode                   = MHW_VDBOX_HCP_PIPE_WORK_MODE_LEGACY;
142     bool                            tileBasedReplayMode               = false;
143     bool                            picStatusErrorReportId            = false;
144     uint8_t                         phaseIndicator                    = 0;
145     bool                            frameReconDisable                 = false;
146     bool                            vdencMode                         = false;
147     bool                            tileStatsStreamoutEnable          = false;
148     bool                            motionCompMemTrackerCounterEnable = false;
149     bool                            pakFrameLevelStreamOutEnable      = false;
150     bool                            motionCompMemoryTrackerCntEnable  = false;
151     uint8_t                         srcPixelPrefetchLen               = 0;
152     bool                            srcPixelPrefetchEnable            = false;
153     bool                            sseEnable                         = false;
154 };
155 
_MHW_PAR_T(AVP_PIC_STATE)156 struct _MHW_PAR_T(AVP_PIC_STATE)
157 {
158     uint32_t frameWidthMinus1                    = 0;
159     uint32_t frameHeightMinus1                   = 0;
160 
161     uint8_t  frameType                           = 0;
162     uint8_t  primaryRefFrame                     = 0;
163     bool     applyFilmGrainFlag                  = 0;
164     bool     deltaQPresentFlag                   = false;
165     uint8_t  log2DeltaQRes                       = 0;
166     bool     codedLossless                       = false;
167     uint16_t baseQindex                          = 0;
168     int8_t   yDcDeltaQ                           = 0;
169     int8_t   uDcDeltaQ                           = 0;
170     int8_t   uAcDeltaQ                           = 0;
171     int8_t   vDcDeltaQ                           = 0;
172     int8_t   vAcDeltaQ                           = 0;
173     bool     allowHighPrecisionMV                = false;
174     bool     referenceSelect                     = false;
175     uint8_t  interpFilter                        = 0;
176     uint16_t currentOrderHint                    = 0;
177     bool     reducedTxSetUsed                    = false;
178     uint8_t  txMode                              = 0;
179     bool     skipModePresent                     = false;
180     uint8_t  globalMotionType[7]                 = {};
181     uint8_t  refFrameIdx[8]                      = {};
182 
183     CodecAv1SegmentsParams segmentParams         = {};
184 
185     uint8_t  bitDepthIdc                         = 0;
186     uint8_t  chromaFormat                        = 0;
187     uint32_t superblockSizeUsed                  = 0;
188     uint8_t  skipModeFrame[2]                    = {};
189     uint8_t  refFrameSide                        = 0;
190     uint8_t  refFrameBiasFlag                    = 0;
191     uint8_t  frameLevelGlobalMotionInvalidFlags  = 0;
192     uint32_t warpParamsArrayProjection[21]       = {};
193     uint32_t refFrameRes[8]                      = {};
194     uint32_t refScaleFactor[8]                   = {};
195     uint8_t  refOrderHints[8]                    = {};
196     uint32_t errorResilientMode                  = 0;
197 
198     bool     enableOrderHint                     = false;
199     bool     enableCDEF                          = false;
200     bool     enableSuperres                      = false;
201     bool     enableRestoration                   = false;
202     bool     enableFilterIntra                   = false;
203     bool     enableIntraEdgeFilter               = false;
204     bool     enableDualFilter                    = false;
205     bool     enableInterIntraCompound            = false;
206     bool     enableMaskedCompound                = false;
207     bool     enableJointCompound                 = false;
208     bool     forceIntegerMv                      = false;
209     bool     allowWarpedMotion                   = false;
210     bool     enableLargeScaleTile                = false;
211     bool     motionModeSwitchable                = false;
212     bool     useReferenceFrameMvSet              = false;
213 
214     uint8_t  orderHintBitsMinus1                 = 0;
215 
216     bool     notFirstPass                        = false;
217     bool     vdencPackOnlyPass                   = false;
218     bool     frameBitRateMaxReportMask           = false;
219     bool     frameBitRateMinReportMask           = false;
220     bool     headerPresent                       = false;
221 
222     uint32_t frameBitRateMax                     = 0;
223     uint32_t frameBitRateMaxUnit                 = 0;  // select unit - 0 : 32B, 1 : 4KB
224     uint32_t frameBitRateMin                     = 0;
225     uint32_t frameBitRateMinUnit                 = 0;  // select unit - 0 : 32B, 1 : 4KB
226 
227     uint32_t frameDeltaQindexMax[2]              = {};
228     uint32_t frameDeltaQindexMin                 = 0;
229 
230     uint32_t frameDeltaLFMax[2]                  = {};
231     uint32_t frameDeltaLFMin                     = 0;
232 
233     uint32_t frameDeltaQindexLFMaxRange[2]       = {};
234     uint32_t frameDeltaQindexLFMinRange          = 0;
235 
236     uint32_t minFramSize                         = 0;
237     uint32_t minFramSizeUnits                    = 0;
238 
239     uint32_t bitOffsetForFirstPartitionSize      = 0;
240 
241     uint32_t class0_SSE_Threshold0               = 0;
242     uint32_t class0_SSE_Threshold1               = 0;
243 
244     uint32_t rdmult                              = 0;
245 
246     int32_t  sbMaxBitSizeAllowed                 = 0;
247     bool     sbMaxSizeReportMask                 = false;
248 
249     bool     autoBistreamStitchingInHardware     = false;
250 
251     bool     postCdefReconPixelStreamoutEn       = false;
252 
253     bool     allowScreenContentTools             = false;
254     bool     allowIntraBC                        = false;
255     bool     VdaqmEnable                         = false;
256 
257     __MHW_VDBOX_AVP_WRAPPER_EXT(AVP_PIC_STATE_CMDPAR_EXT);
258 };
259 
_MHW_PAR_T(AVP_INLOOP_FILTER_STATE)260 struct _MHW_PAR_T(AVP_INLOOP_FILTER_STATE)
261 {
262     uint8_t  loopFilterLevel[4]                  = {};
263     uint8_t  loopFilterSharpness                 = 0;
264     bool     loopFilterDeltaEnabled              = 0;
265     uint8_t  deltaLfRes                          = 0;
266     uint8_t  deltaLfMulti                        = 0;
267     bool     loopFilterDeltaUpdate               = false;
268 
269     int8_t   loopFilterRefDeltas[8]              = {};
270     int8_t   loopFilterModeDeltas[2]             = {};
271 
272     uint8_t  cdefYStrength[8]                    = {};
273     uint8_t  cdefUVStrength[8]                   = {};
274     uint8_t  cdefBits                            = 0;
275     uint8_t  cdefDampingMinus3                   = 0;
276 
277     //super-resolution;
278     uint32_t superresUpscaledWidthMinus1         = 0;
279     uint8_t  superresDenom                       = 0;
280     int32_t lumaPlaneXStepQn                     = 0;
281     int32_t lumaPlaneX0Qn                        = 0;
282     int32_t chromaPlaneXStepQn                   = 0;
283     int32_t chromaPlaneX0Qn                      = 0;
284 
285     //loop restoration;
286     uint8_t  LoopRestorationType[3]              = {};
287     uint8_t  LoopRestorationSizeLuma             = 0;
288     bool     UseSameLoopRestorationSizeForChroma = false;
289 };
290 
_MHW_PAR_T(AVP_TILE_CODING)291 struct _MHW_PAR_T(AVP_TILE_CODING)
292 {
293     uint16_t tileId                                  = 0;
294     uint16_t tgTileNum                                 = 0;  //!< Tile ID in its Tile group
295     uint16_t tileGroupId                             = 0;
296 
297     uint16_t tileColPositionInSb                     = 0;
298     uint16_t tileRowPositionInSb                     = 0;
299 
300     uint16_t tileWidthInSbMinus1                     = 0;  //!< Tile width minus 1 in SB unit
301     uint16_t tileHeightInSbMinus1                    = 0;  //!< Tile height minus 1 in SB unit
302 
303     bool     tileRowIndependentFlag                  = false;
304     bool     firstTileInAFrame                       = false;
305     bool     lastTileOfColumn                        = false;
306     bool     lastTileOfRow                           = false;
307     bool     firstTileOfTileGroup                    = false;
308     bool     lastTileOfTileGroup                     = false;
309     bool     lastTileOfFrame                         = false;
310     bool     disableCdfUpdateFlag                    = false;
311     bool     disableFrameContextUpdateFlag           = false;
312 #if (_DEBUG || _RELEASE_INTERNAL)
313     bool     enableAvpDebugMode                      = false;
314 #endif
315 
316     uint8_t  numOfActiveBePipes                      = 0;
317     uint16_t numOfTileColumnsInFrame                 = 0;
318     uint16_t numOfTileRowsInFrame                    = 0;
319     uint16_t outputDecodedTileColPos                 = 0;
320     uint16_t outputDecodedTileRowPos                 = 0;
321 };
322 
_MHW_PAR_T(AVP_SEGMENT_STATE)323 struct _MHW_PAR_T(AVP_SEGMENT_STATE)
324 {
325     uint8_t                 numSegments       = 1;
326     CodecAv1SegmentsParams  av1SegmentParams  = {};
327     uint8_t                 currentSegmentId  = 0;
328 };
329 
_MHW_PAR_T(AVP_PIPE_BUF_ADDR_STATE)330 struct _MHW_PAR_T(AVP_PIPE_BUF_ADDR_STATE)
331 {
332     PMOS_RESOURCE     refs[8]                          = {};
333     MOS_MEMCOMP_STATE mmcStatePreDeblock               = MOS_MEMCOMP_DISABLED;
334     MOS_MEMCOMP_STATE mmcStateRawSurf                  = MOS_MEMCOMP_DISABLED;
335     PMOS_SURFACE      decodedPic                       = nullptr;
336     PMOS_RESOURCE     intrabcDecodedOutputFrameBuffer  = nullptr;
337     PMOS_RESOURCE     cdfTableInitBuffer               = nullptr;
338     uint32_t          cdfTableInitBufferOffset         = 0;
339     PMOS_RESOURCE     cdfTableBwdAdaptBuffer           = nullptr;
340     PMOS_RESOURCE     segmentIdReadBuffer              = nullptr;
341     PMOS_RESOURCE     segmentIdWriteBuffer             = nullptr;
342     PMOS_RESOURCE     colMvTempBuffer[9]               = {};
343     PMOS_RESOURCE     curMvTempBuffer                  = nullptr;
344     PMOS_RESOURCE     bsLineRowstoreBuffer             = nullptr;
345     PMOS_RESOURCE     bsTileLineRowstoreBuffer         = nullptr;
346     PMOS_RESOURCE     intraPredLineRowstoreBuffer      = nullptr;
347     PMOS_RESOURCE     intraPredTileLineRowstoreBuffer  = nullptr;
348     PMOS_RESOURCE     spatialMVLineBuffer              = nullptr;
349     PMOS_RESOURCE     spatialMVCodingTileLineBuffer    = nullptr;
350     PMOS_RESOURCE     lrMetaTileColumnBuffer           = nullptr;
351     PMOS_RESOURCE     lrTileLineYBuffer                = nullptr;
352     PMOS_RESOURCE     lrTileLineUBuffer                = nullptr;
353     PMOS_RESOURCE     lrTileLineVBuffer                = nullptr;
354     PMOS_RESOURCE     deblockLineYBuffer               = nullptr;
355     PMOS_RESOURCE     deblockLineUBuffer               = nullptr;
356     PMOS_RESOURCE     deblockLineVBuffer               = nullptr;
357     PMOS_RESOURCE     deblockTileLineYBuffer           = nullptr;
358     PMOS_RESOURCE     deblockTileLineVBuffer           = nullptr;
359     PMOS_RESOURCE     deblockTileLineUBuffer           = nullptr;
360     PMOS_RESOURCE     deblockTileColumnYBuffer         = nullptr;
361     PMOS_RESOURCE     deblockTileColumnUBuffer         = nullptr;
362     PMOS_RESOURCE     deblockTileColumnVBuffer         = nullptr;
363     PMOS_RESOURCE     cdefLineBuffer                   = nullptr;
364     PMOS_RESOURCE     cdefTileLineBuffer               = nullptr;
365     PMOS_RESOURCE     cdefTileColumnBuffer             = nullptr;
366     PMOS_RESOURCE     cdefMetaTileLineBuffer           = nullptr;
367     PMOS_RESOURCE     cdefMetaTileColumnBuffer         = nullptr;
368     PMOS_RESOURCE     cdefTopLeftCornerBuffer          = nullptr;
369     PMOS_RESOURCE     superResTileColumnYBuffer        = nullptr;
370     PMOS_RESOURCE     superResTileColumnUBuffer        = nullptr;
371     PMOS_RESOURCE     superResTileColumnVBuffer        = nullptr;
372     PMOS_RESOURCE     lrTileColumnYBuffer              = nullptr;
373     PMOS_RESOURCE     lrTileColumnUBuffer              = nullptr;
374     PMOS_RESOURCE     lrTileColumnVBuffer              = nullptr;
375     PMOS_RESOURCE     lrTileColumnAlignBuffer          = nullptr;
376     PMOS_RESOURCE     decodedFrameStatusErrorBuffer    = nullptr;
377     PMOS_RESOURCE     decodedBlockDataStreamoutBuffer  = nullptr;
378     PMOS_RESOURCE     originalPicSourceBuffer          = nullptr;
379     PMOS_RESOURCE     dsPictureSourceBuffer            = nullptr;
380     PMOS_RESOURCE     tileSizeStreamoutBuffer          = nullptr;
381     uint32_t          tileSizeStreamoutBufferOffset    = 0;
382     PMOS_RESOURCE     tileStatisticsPakStreamoutBuffer = nullptr;
383     PMOS_RESOURCE     cuStreamoutBuffer                = nullptr;
384     PMOS_RESOURCE     sseLineBuffer                    = nullptr;
385     PMOS_RESOURCE     sseTileLineBuffer                = nullptr;
386     PMOS_SURFACE      postCDEFpixelsBuffer             = nullptr;
387     MOS_MEMCOMP_STATE postCdefSurfMmcState             = MOS_MEMCOMP_DISABLED;
388 
389     PMOS_RESOURCE     filmGrainTileColumnDataBuffer    = nullptr;
390     PMOS_RESOURCE     filmGrainSampleTemplateBuffer    = nullptr;
391     PMOS_RESOURCE     filmGrainOutputSurface           = nullptr;
392 
393     PMOS_RESOURCE     AvpPipeBufAddrStatePar0          = nullptr;
394 };
395 
_MHW_PAR_T(AVP_INTER_PRED_STATE)396 struct _MHW_PAR_T(AVP_INTER_PRED_STATE)
397 {
398     uint8_t savedRefOrderHints[7][7];
399     uint8_t refMaskMfProj;
400 };
401 
_MHW_PAR_T(AVP_IND_OBJ_BASE_ADDR_STATE)402 struct _MHW_PAR_T(AVP_IND_OBJ_BASE_ADDR_STATE)
403 {
404     uint32_t      Mode                      = 0;
405     PMOS_RESOURCE dataBuffer                = nullptr;
406     uint32_t      dataSize                  = 0;
407     uint32_t      dataOffset                = 0;
408     PMOS_RESOURCE mvObjectBuffer            = nullptr;
409     uint32_t      mvObjectSize              = 0;
410     uint32_t      mvObjectOffset            = 0;
411     PMOS_RESOURCE pakBaseObjectBuffer       = nullptr;
412     uint32_t      pakBaseObjectSize         = 0;
413     uint32_t      pakBaseObjectOffset       = 0;
414     PMOS_RESOURCE pakTileSizeStasBuffer     = nullptr;
415     uint32_t      pakTileSizeStasBufferSize = 0;
416     uint32_t      pakTileSizeRecordOffset   = 0;
417 };
418 
_MHW_PAR_T(AVP_SURFACE_STATE)419 struct _MHW_PAR_T(AVP_SURFACE_STATE)
420 {
421     uint32_t          pitch              = 0;
422     uint32_t          uOffset            = 0;
423     uint32_t          vOffset            = 0;
424     uint8_t           surfaceStateId     = 0;
425     uint8_t           bitDepthLumaMinus8 = 0;
426     MOS_MEMCOMP_STATE mmcState[av1TotalRefsPerFrame] = { MOS_MEMCOMP_DISABLED };
427     uint32_t          compressionFormat  = 0;
428     SURFACE_FORMAT    srcFormat          = SURFACE_FORMAT::SURFACE_FORMAT_PLANAR4208;
429     uint32_t          uvPlaneAlignment   = 0;
430 };
431 
_MHW_PAR_T(AVP_BSD_OBJECT)432 struct _MHW_PAR_T(AVP_BSD_OBJECT)
433 {
434     uint32_t         bsdDataLength      = 0;
435     uint32_t         bsdDataStartOffset = 0;
436 };
437 
_MHW_PAR_T(AVP_PAK_INSERT_OBJECT)438 struct _MHW_PAR_T(AVP_PAK_INSERT_OBJECT)
439 {
440     PBSBuffer bsBuffer                           = nullptr;
441     // also reuse dwBitSize for passing SrcDataEndingBitInclusion when (pEncoder->bLastPicInStream || pEncoder->bLastPicInSeq)
442     uint32_t          bitSize                    = 0;
443     uint32_t          offset                     = 0;
444     uint32_t          skipEmulationCheckCount    = 0;
445     bool              lastPicInSeq               = false;
446     bool              lastPicInStream            = false;
447     bool              lastHeader                 = false;
448     bool              emulationByteBitsInsert    = false;
449     bool              setLastPicInStreamData     = false;
450     bool              sliceHeaderIndicator       = false;
451     bool              headerLengthExcludeFrmSize = false;
452     bool              bResetBitstreamStartingPos = false;
453     bool              endOfHeaderInsertion       = false;
454     uint32_t          lastPicInSeqData           = 0;
455     uint32_t          lastPicInStreamData        = 0;
456     PMHW_BATCH_BUFFER batchBufferForPakSlices    = nullptr;
457 };
458 
_MHW_PAR_T(AVP_FILM_GRAIN_STATE)459 struct _MHW_PAR_T(AVP_FILM_GRAIN_STATE)
460 {
461     uint16_t    grainRandomSeed            = 0;
462     uint8_t     clipToRestrictedRange      = 0;
463     uint8_t     numOfYPoints               = 0;
464     uint8_t     numOfCbPoints              = 0;
465     uint8_t     numOfCrPoints              = 0;
466     uint8_t     matrixCoefficients         = 0;
467     uint8_t     grainScalingMinus8         = 0;
468     uint8_t     arCoeffLag                 = 0;
469     uint32_t    arCoeffShiftMinus6         = 0;
470     uint32_t    grainScaleShift            = 0;
471     uint32_t    chromaScalingFromLuma      = 0;
472     uint32_t    grainNoiseOverlap          = 0;
473 
474     uint8_t     pointYValue[14]            = {};
475     uint8_t     pointYScaling[14]          = {};
476     uint8_t     pointCbValue[10]           = {};
477     uint8_t     pointCbScaling[10]         = {};
478     uint8_t     pointCrValue[10]           = {};
479     uint8_t     pointCrScaling[10]         = {};
480 
481     int8_t      arCoeffsY[24]              = {};
482     int8_t      arCoeffsCb[25]             = {};
483     int8_t      arCoeffsCr[25]             = {};
484 
485     uint8_t     cbMult                     = 0;
486     uint8_t     cbLumaMult                 = 0;
487     uint16_t    cbOffset                   = 0;
488     uint8_t     crMult                     = 0;
489     uint8_t     crLumaMult                 = 0;
490     uint16_t    crOffset                   = 0;
491 };
492 
493 }  // namespace avp
494 }  // namespace vdbox
495 }  // namespace mhw
496 
497 #endif  // __MHW_VDBOX_AVP_CMDPAR_H__
498