Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.
3061 Discussions

does cuqp or mbqp will be disable when I turn on the extbrc?

luyf91
Beginner
2,898 Views

I use the sample_encode to test the extbrc feature, but I find the cuqp or mbqp will be disable, thats mean every cu or mb use the frame qp. Is that normal? Why media sdk can not enable extbrc with mbqp?

sample_encode.exe h265 -w 1920 -h 1080 -i 04_StandardSequence_1920x1080_1097f.yuv -f 15 -b 2000 -cbr -nobref -r 1 -x 1 -g 65535 -CodecProfile 1 -gpb:off -o StandardSequence_cbr.bin -extbrc:on

 

My devices is Intel core i7-8700@3.2GHz, my system is windows 10.

0 Kudos
1 Solution
Mark_L_Intel1
Moderator
2,746 Views

Glad to help,


To be more clear:

  1. This enable/disable happens at MSDK API, not in sample. This means every time you use extBRC, you disable the HW MB rate control.
  2. This apply to both Windows and Linux.
  3. extBRC is a software feature, this added flexibility for customer to implement their own BRC control, the trade-off is the software based. In this case, our sample of extBRC didn't implement the MB control, this is the reason why you can't find it.


Mark



View solution in original post

0 Kudos
12 Replies
ArunJ_Intel
Moderator
2,879 Views

Hi 



Could you please provide the media sdk version you are using. Also please mention the GPU device you are using to run sample encode


Thanks

Arun 


0 Kudos
luyf91
Beginner
2,870 Views

my media sdk version is 2020 R1,my GPU is Intel UHD Graphics 630,the GPU driver version is 27.20.100.9316.

0 Kudos
ArunJ_Intel
Moderator
2,849 Views

Hi


We are checking on this internally will get back to you when we have an update.


Thanks

Arun


0 Kudos
luyf91
Beginner
2,844 Views

ok,thank you for your reply, and waiting for your news.

0 Kudos
Mark_L_Intel1
Moderator
2,836 Views

Hi Luyf,


I saw your post on GitHub and this is good approach, since that is supported by dev team directly..


I will try to contact with dev team but want to understand more about your test. In your command: sample_encode.exe h265 -w 1920 -h 1080 -i 04_StandardSequence_1920x1080_1097f.yuv -f 15 -b 2000 -cbr -nobref -r 1 -x 1 -g 65535 -CodecProfile 1 -gpb:off -o StandardSequence_cbr.bin -extbrc:on


It seems you disabled qpb at the command line and this command run successful. If not, how did you get the conclusion "...the extbrc feature, but I find the cuqp or mbqp will be disable,...". Could you post both your failed command and error message(or the test to the wrong result)?


Mark


0 Kudos
luyf91
Beginner
2,822 Views

Actually I got no error from the cmd, I use the Intel video Pro Analyzer tool to see the stream, and I find that every cu or mb use the frame qp. I set  "-gpb:off ", because I want use Lowdelay-P GOP.

0 Kudos
Mark_L_Intel1
Moderator
2,800 Views

Hi luyf:


I don't know sample_encode enabled MBQP, I check the sample document and can't find an argument to turn it on. Our sample is used for demo purpose, it is not necessary to turn on every features. You might try sample_multi-transcoding samples.


Based on this document:

https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption3


When enableMBQP is set, CQP for bitrate control is required. So you can add the argument "-cqp" to check if there is any different result.


You can also change the sample to enable MBQP manually and see if it works.


Mark


0 Kudos
luyf91
Beginner
2,792 Views

I think you may be didn't get my point. I will give what i know.

first, "-extbrc:on"  feature, I think the feature is opened for developers to adjust the encoder frame level ratecontrol algorithm, so this will impact the frame qp.

secode, intel hardware encoder does support mb or cu level ratecontrol algorithm(or AQ algorithm), i find out that cu or mb qp does vary from frame qp, whether it's cbr or vbr.

third, when i turn on the "-extbrc:on"  feature, the frame level ratecontrol algorithm does works on cbr or vbr, but the mb or cu level ratecontrol algorithm will be disabled, because i find out that cu or mb qp is same as frame qp.

And as a developer, i wish that when i turn on the "-extbrc:on"  feature, the frame level ratecontrol algorithm and mb or cu level ratecontrol algorithm will both work.

0 Kudos
Mark_L_Intel1
Moderator
2,785 Views

Thanks lufy,


Got it, I have made a request to dev team and will keep you updated.


Mark


0 Kudos
Mark_L_Intel1
Moderator
2,759 Views

Hi Lufy,


I got result from dev team, they conclude:

Enabling of extbrc will disable HW BRC including HW MB rate control.  

But current implantation of extbrc in samples does not support MB rate control.

That is why the same frame QP are seen for MBs.

Mark


0 Kudos
luyf91
Beginner
2,753 Views

ok,i got it, And thankyou very much for your help.

0 Kudos
Mark_L_Intel1
Moderator
2,747 Views

Glad to help,


To be more clear:

  1. This enable/disable happens at MSDK API, not in sample. This means every time you use extBRC, you disable the HW MB rate control.
  2. This apply to both Windows and Linux.
  3. extBRC is a software feature, this added flexibility for customer to implement their own BRC control, the trade-off is the software based. In this case, our sample of extBRC didn't implement the MB control, this is the reason why you can't find it.


Mark



0 Kudos
Reply