I develop a application for video streaming with mfx encoder of Intel media SDK.
I set 5 Mbps for target bitrate with VBR.
When my scene is idle, the actual bitrate still is about 1 Mbps. (a little high)
I think the birate should be as low as possbile in idle scece.
Does any bady give me some idea?
Link Copied
Hi Tony:
I see the intel media sdk 2013. any update for this issue in this sdk?
- Rouyun
Hi Rouyun,
Thank you for your patience. This issue will be resolved in the next versions of drivers for 3rd Generation Intel(R) Core(TM) Processors.
Hi Tony:
I update the new driver 15.31.3.64.3071 with intel HD 2500. The bitrate is too high(about 2Mbps) in idle scence.
B.R.
Peter
Hi,
This should not be the case and I see similar bitrate as SW with this driver. Can you capture a log using the <MediaSDK>\tools\mediasdk_tracer\tracer.exe tool?
I wonder if the old MediaSDK DLL might still be getting used on your system. Do you recall any issues/errors when you installed the new driver?
Can you also provide these log files?:
C:\Intel\Logs\IntelGFX.log
C:\Intel\Logs\IntelGFXCoin.log
Maybe we can see what is wrong by looking at these. THANKS
Hi Tony:
I already removed old driver, and install the new driver. I didn't get any error, and still got the same encoding results.
I can use the sample code of Intel media SDK to reproduce the same status.
There are my modifyed pipeline_encode.cpp and you can rebuilded sample_encode.exe in the attached file.
I modifyed some configurations of encoder like "m_mfxEncParams.mfx.RateControlMethod = MFX_RATECONTROL_VBR; " in pipeline_encode.cpp.
my test arguments is
sample_encode.exe h264 -i ..\content\input.yuv -o ..\content\output.264 -w 1024 -h 768 -f 30 -b 5000 -nv12 -hw -u speed
After I run the sample_encode.exe, I get a the bistream "Output.264".
You can see the size is 6,281,247 bytes(6281247*8 =50249976 bits ), and you can see the input file has 272 frames with 1024x768 and NV12 format.
the average bitrate is 5.540 Mbps (272/30 = 9.07 Secs, 50249976/9.07=5540240 bps)
My input .yuv file is always idle scene. I think the bitrate is too high with VBR.
Please help me check these issue. Thanks.
P.S. the input .yuv file is too big, I put it in Dropbox. https://www.dropbox.com/s/jlz9durq2390fyj/input.yuv
B.R.
Hi Tony:
Do you have any update dor this issue?
B.R.
RouYun
Hi RouYun,
We duplicated what you are seeing and are investigating. Thank you for the clear reproducer.
This appears to be a different 'root cause' than the issue that was fixed. I should have more information very soon.
Hi Tony:
Do you have any information to fix this issue in new Intel Media SDK2013R2?
I get the same situration and my bitrate still is high with VBR control.
B.R.
RouYun
Hi RouYun,
The algorithm used in newer drivers is considered to be 'correct' as it achieves the requested bitrate (just not as 'optimal' as it could be with different algorithm). Please make sure you update the drivers (as the MSDK 2013 R2 release does not change the driver implementation of this).
The issue is better if "target usage" is not set to the fastest 'speed' value of 7. On our latest 4th Generation Core processors you will likely find that Target usage 6 provides the optimization you are looking for while maintaining the speed you desire.
We are always looking to improve, and I will make usre the developers are aware of the concerns. Thank You.
I follow the same way to test the encoder and VBR rate control of IntelMediaSDK2013R2. The bitstream is more small than last version " IntelMediaSDK201" with targe usage"speed" in idle scence. but I think it still a little big in idle scence. (my test file is input.yuv in previous reply. threre are 272 frames in this file)
test parameters:
sample_encode.exe h264 -i ..\content\input.yuv -o ..\content\output.264 -w 1024 -h 768 -f 30 -b 5000 -nv12 -hw -u speed
I change the target usage with "-u speed", "-u quality", and "-u balanced" , and I get different size of bitstream. the bitstream with "-u speed" is more small than "-u quality", and "-u balanced" in my test.
"speed" : 3.453 Mbps (272/30 = 9.07 Secs, 3915938*8/9.07=3453970 bps)
"banlanced" : 4.655 Mbps (272/30 = 9.07 Secs, 5277365*8/9.07=4654787 bps)
"quality": 4.649 Mbps (272/30 = 9.07 Secs, 5270571*8/9.07=4648794 bps)
"speed" of last version : 5.540 Mbps (272/30 = 9.07 Secs, 50249976/9.07=5540240 bps)
By the way, why do I only use the API v1.6 on 3rd generation CPU, not v1.7? My CPU is i5-3450 and the new driver is v.15.31.9.3165.
In the document "Intel_Media_Developers_Guide.pf" , It describes "Only 3rd and 4th generation Intel® Core™ processor family-based platforms fully support the latest API versions." in section 2.1.1.
any mismatch?
the attched files are my system analyer and test steps.
For more complete information about compiler optimizations, see our Optimization Notice.