From 02eed8a57faadcd7f0e5e999723286ed160bd2bd Mon Sep 17 00:00:00 2001 From: "Yao, Leyu" Date: Mon, 28 Aug 2023 16:27:31 +0800 Subject: [PATCH] encode segmentation map refine Signed-off-by: Yao, Leyu --- va/va_enc_av1.h | 3 ++- va/va_enc_vp9.h | 28 +++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/va/va_enc_av1.h b/va/va_enc_av1.h index e47836b63..82463d058 100644 --- a/va/va_enc_av1.h +++ b/va/va_enc_av1.h @@ -666,7 +666,8 @@ typedef struct _VAEncPictureParameterBufferAV1 { * 0: 16x16 block size, default value; * 1: 32x32 block size; * 2: 64x64 block size; - * 3: 8x8 block size. + * 3: 8x8 block size; + * 4: 4x4 block size. */ uint8_t seg_id_block_size; diff --git a/va/va_enc_vp9.h b/va/va_enc_vp9.h index 107ab0c9c..1f62ec5dc 100644 --- a/va/va_enc_vp9.h +++ b/va/va_enc_vp9.h @@ -507,8 +507,19 @@ typedef struct _VAEncPictureParameterBufferVP9 { */ uint32_t skip_frames_size; + /** \brief Block size for each Segment ID in Segment Map. + * This specify the granularity of media driver of reading and processing the segment map. + * 0: 16x16 block size, default value; + * 1: 32x32 block size; + * 2: 64x64 block size; + * 3: 8x8 block size. + */ + uint8_t seg_id_block_size; + + uint8_t va_reserved8[3]; + /** \brief Reserved bytes for future use, must be zero */ - uint32_t va_reserved[VA_PADDING_MEDIUM]; + uint32_t va_reserved[7]; } VAEncPictureParameterBufferVP9; @@ -594,6 +605,21 @@ typedef struct _VAEncMiscParameterTypeVP9PerSegmantParam { */ +/** \brief Attribute value for VAConfigAttribEncVP9. */ +typedef union _VAConfigAttribValEncVP9 { + struct { + /** + * \brief Min segmentId block size accepted. + * This is the granularity of segmentation map. + */ + uint32_t min_segid_block_size_accepted : 8; + + /** \brief Reserved bits for future, must be zero. */ + uint32_t reserved : 24; + } bits; + uint32_t value; +} VAConfigAttribValEncVP9; + /**@}*/ #ifdef __cplusplus