Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refine encode segment id map buffer #756

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

XinfengZhang
Copy link
Contributor

attention: these change will break backward compatibility, the pre-assumption is no one is using them besides intel media driver and intel oneVPL runtime, if there are other customer, it should be risky
so, please help to check whether there are somebody are using segment id map buffer for avc or vp9 encoding.

@@ -1474,6 +1482,17 @@ typedef union _VAConfigAttribValEncPerBlockControl {
/** \brief Driver supports decode processing rate report */
#define VA_PROCESSING_RATE_DECODE 0x00000002
/**@}*/

/** @name segment ID map block size */
/**@{*/

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is there no 8x8 and 4x4?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if we add them, to keep some basic compatible , the value should be 3, 4, it looks a little strange, I suspect who are using them.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But segmentation is 8x8 in vp9 and 4x4 in av1. So a driver should be able to support up the size?

/**
* \brief AV1 Block Segmentation ID Buffer
*
* The application provides a buffer of VAEncMacroblockMapBufferType containing

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to set size and num_elements in vaCreateBuffer to width and height as well as in vp9, respectively?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is a kind of backward combability issue, I want to unify them to a linear buffer. so, the question is: is there other user beside intel media driver , is there any application is using the older interface?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be a better solution if we keep the original behavior when calling vaCreateBuffer with VAEncMacroblockMapBufferType, and we define a new BufferType (e.g. named VAEncUnifiedSegmentationMapBufferType).
There are some benefits but libva will a little bit complicated.
We can keep all the backward compability and suggest/guide app-developers to switch to the new/unified interface.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so, we support both for VP9?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I would prefer that.
It would benefit the application maintenance effort.
However, it will make libva more complicated......

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we make a decision here?

XinfengZhang and others added 4 commits May 14, 2024 15:21
Signed-off-by: Carl Zhang <carl.zhang@intel.com>
Signed-off-by: Yao, Leyu <leyu.yao@intel.com>
Signed-off-by: Zhang,Carl <carl.zhang@intel.com>
previous description limited the segment id block 8x8
it is not accurate and should support different block size which
could be set by picture parameter.

attention: this change will impact backward compatiblility,
considering no one is using it. we could ignore this side effect

Signed-off-by: Carl Zhang <carl.zhang@intel.com>
remove VAEncSegMapBufferAV1 which actually not used at all
because there are no enough information to describe how to
use it

attention: this change will impact backward compatiblility,
considering no one is using it. we could ignore this side effect

Signed-off-by: Carl Zhang <carl.zhang@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants