Zhang, Boyuan wrote:
Hi Andy,

For the VBR target/max bit-rate, yes, this is gstreamer-vaapi's
current design. User typed bit-rate is actually the max bit-rate not
the actual bit-rate, which is a bit confused.

Fair enough on the bitrate, though I am still a bit confused on the VBR
being constrained as both va.h and gstreamer vaapi have vbr and
vbr_constrained.

Any thoughts on my other questions?

For the overflow concern, unsigned int can handle about 4294Mbit/s,
which we thought is big enough for real life cases, right?

Yea, but it gets x 100 and my vce can do at least 2160p so for baseline
higher than 42.94 mbit is not that extreme.

Anyway Christian acked my v2 patch -

https://patchwork.freedesktop.org/patch/112161/



Regards, Boyuan

-----Original Message----- From: Andy Furniss
[mailto:adf.li...@gmail.com] Sent: September-25-16 6:46 AM To: Liu,
Leo; Christian König; Zhang, Boyuan; mesa-dev@lists.freedesktop.org
Subject: Re: [Mesa-dev] [PATCH] st/va: enable vbr rate control for
vaapi encode

Leo Liu wrote:


On 09/07/2016 03:02 AM, Christian König wrote:
Am 06.09.2016 um 22:39 schrieb boyuan.zh...@amd.com:
From: Boyuan Zhang <boyuan.zh...@amd.com>

This patch enables variable bit-rate for vaapi encoding.
According to va.h, target bit-rate equals to maximum bit-rate
multiplies by target_percentage.

Signed-off-by: Boyuan Zhang <boyuan.zh...@amd.com>

That was astonishing simple to fix :)

Bit late on this but I am not sure this is VBR as it's constrained
and that has it's own setting.

Maybe I am taking too much notice of what libx264/broadcast encoders
do, but it would be good if VCE could throw way more bits at IDR
frames as they really need it to avoid pulsing with default gop 30.

Of course I don't know how things work/what's possible.

The names help of course but not always eg. what is -

peak_bits_picture_fraction seems to be always 0.

and

rate_ctrl.vbv_buf_lv 0 or 48 is this some level in a spec, or is it
initial buffer fullness for vbv?

One issue I found and sent a patch for is the bitrate calc can
overflow.

Generally as a user asking for a rate and getting 70% seems a bit
strange anyway but maybe that's a different discussion.

https://patchwork.freedesktop.org/patch/112040/


Patch is Reviewed-by: Christian König
<christian.koe...@amd.com>.

Leo do you want to push it or should I take care of this?

I will take care of it.

Regards, Leo


Regards, Christian.

--- src/gallium/state_trackers/va/config.c  | 2 +-
src/gallium/state_trackers/va/picture.c | 2 +- 2 files changed,
2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/va/config.c
b/src/gallium/state_trackers/va/config.c index 84bf913..4052316
100644 --- a/src/gallium/state_trackers/va/config.c +++
b/src/gallium/state_trackers/va/config.c @@ -120,7 +120,7 @@
vlVaGetConfigAttributes(VADriverContextP ctx, VAProfile
profile, VAEntrypoint en value = VA_RT_FORMAT_YUV420; break;
case VAConfigAttribRateControl: -         value = VA_RC_CQP |
VA_RC_CBR; +         value = VA_RC_CQP | VA_RC_CBR |
VA_RC_VBR; break; default: value = VA_ATTRIB_NOT_SUPPORTED;
diff --git a/src/gallium/state_trackers/va/picture.c
b/src/gallium/state_trackers/va/picture.c index
a283e83..7f3d96d 100644 ---
a/src/gallium/state_trackers/va/picture.c +++
b/src/gallium/state_trackers/va/picture.c @@ -322,7 +322,7 @@
handleVAEncMiscParameterTypeRateControl(vlVaContext *context,
VAEncMiscParameter PIPE_H264_ENC_RATE_CONTROL_METHOD_CONSTANT)
context->desc.h264enc.rate_ctrl.target_bitrate =
rc->bits_per_second; else -
context->desc.h264enc.rate_ctrl.target_bitrate =
rc->bits_per_second * rc->target_percentage; +
context->desc.h264enc.rate_ctrl.target_bitrate =
rc->bits_per_second * rc->target_percentage / 100;
context->desc.h264enc.rate_ctrl.peak_bitrate =
rc->bits_per_second; if
(context->desc.h264enc.rate_ctrl.target_bitrate < 2000000)
context->desc.h264enc.rate_ctrl.vbv_buffer_size =
MIN2((context->desc.h264enc.rate_ctrl.target_bitrate * 2.75),
2000000);


_______________________________________________ mesa-dev mailing
list mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

_______________________________________________ mesa-dev mailing
list mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to