meanin of libvpx configuration options CONFIG_REALTIME_ONLY, CONFIG_ONTHEFLY_BITPACKING

276 views
Skip to first unread message

pps

unread,
Jan 7, 2014, 2:12:54 PM1/7/14
to webm-d...@webmproject.org
I want to use vpx (vp8 mainly) for real-time voip video call. Do I need to configure it to be REALTIME_ONLY? Should I enable the ONTHEFLY_BITPACKING?
I use only vp8, do I need to configure out vp9?

I create static lib (.a/.lib) and if I enable vp8 and vp9, will vp9 related code be sucked in into my final binary even if I do not use vp9?
As I understand the REALTIME_ONLY option is there for realtime video calls. Can I build without this option, but then configure the encoder in a way to have equivalent realtime behavior? What configurations do I need to apply when creating an encoder to have equivalent of realtime only behavior? What's the pros and cons to build vpx with this configuration option?
I read about ONTHEFLY_BITPACKING, and it seems to be useful option to enable. Why isn't it enabled by default then? What are the pros and cons?

PS. if I configure with REALTIME_ONLY most of the tests fail. Can somebody fix it please? When I configure without this options, all tests are OK.

Thanks.

Attila Nagy

unread,
Jan 8, 2014, 9:02:27 AM1/8/14
to webm-d...@webmproject.org
On Tue, Jan 7, 2014 at 9:12 PM, pps <pavlov...@gmail.com> wrote:
I want to use vpx (vp8 mainly) for real-time voip video call. Do I need to configure it to be REALTIME_ONLY? Should I enable the ONTHEFLY_BITPACKING?
I use only vp8, do I need to configure out vp9?

Leave VP9 out if you dont need it.
 

I create static lib (.a/.lib) and if I enable vp8 and vp9, will vp9 related code be sucked in into my final binary even if I do not use vp9?
As I understand the REALTIME_ONLY option is there for realtime video calls. Can I build without this option, but then configure the encoder in a way to have equivalent realtime behavior? What configurations do I need to apply when creating an encoder to have equivalent of realtime only behavior? What's the pros and cons to build vpx with this configuration option?

Encoder can be setup for realtime apps in full config too. REALTIME_ONLY configuration will give you the smallest and fastest encoder (ex. all the multi-pass mode code is stripped out) for real time applications.
 
I read about ONTHEFLY_BITPACKING, and it seems to be useful option to enable. Why isn't it enabled by default then? What are the pros and cons?

Encoder can get even faster but it can hurt the quality, that is the reason why it is not enabled by default.
 

PS. if I configure with REALTIME_ONLY most of the tests fail. Can somebody fix it please? When I configure without this options, all tests are OK.

Thanks.

--
You received this message because you are subscribed to the Google Groups "WebM Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to webm-discuss...@webmproject.org.
To post to this group, send email to webm-d...@webmproject.org.
Visit this group at http://groups.google.com/a/webmproject.org/group/webm-discuss/.
For more options, visit https://groups.google.com/a/webmproject.org/groups/opt_out.

pps

unread,
Jan 9, 2014, 12:56:52 PM1/9/14
to webm-d...@webmproject.org

I create static lib (.a/.lib) and if I enable vp8 and vp9, will vp9 related code be sucked in into my final binary even if I do not use vp9?
As I understand the REALTIME_ONLY option is there for realtime video calls. Can I build without this option, but then configure the encoder in a way to have equivalent realtime behavior? What configurations do I need to apply when creating an encoder to have equivalent of realtime only behavior? What's the pros and cons to build vpx with this configuration option?

Encoder can be setup for realtime apps in full config too. REALTIME_ONLY configuration will give you the smallest and fastest encoder (ex. all the multi-pass mode code is stripped out) for real time applications.


What would be the equivalent options to get realtime with vp8 that wasn't configured with realtime-only?
 
I read about ONTHEFLY_BITPACKING, and it seems to be useful option to enable. Why isn't it enabled by default then? What are the pros and cons?

Encoder can get even faster but it can hurt the quality, that is the reason why it is not enabled by default.
 

PS. if I configure with REALTIME_ONLY most of the tests fail. Can somebody fix it please? When I configure without this options, all tests are OK.


What about the tests? They should be disabled or fixed for realtime-only builds. Or is it the realtime-only code paths have bugs and that's why do not pass the tests?


Johann Koenig

unread,
Jan 9, 2014, 1:08:02 PM1/9/14
to webm-d...@webmproject.org
On Thu, Jan 9, 2014 at 9:56 AM, pps <pavlov...@gmail.com> wrote:
>> Encoder can be setup for realtime apps in full config too. REALTIME_ONLY
>> configuration will give you the smallest and fastest encoder (ex. all the
>> multi-pass mode code is stripped out) for real time applications.
>
> What would be the equivalent options to get realtime with vp8 that wasn't
> configured with realtime-only?

The option for vpxenc is --rt which sets global->deadline =
VPX_DL_REALTIME. Also see VPX_DL_REALTIME referenced in the WebRTC
code:
https://code.google.com/p/webrtc/source/browse/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc

>>> PS. if I configure with REALTIME_ONLY most of the tests fail. Can
>>> somebody fix it please? When I configure without this options, all tests are
>>> OK.
>
> What about the tests? They should be disabled or fixed for realtime-only
> builds. Or is it the realtime-only code paths have bugs and that's why do
> not pass the tests?

It depends on why they are failing. I will look into this. If the test
is trying to use 2 pass features, the code might fail because it
doesn't exist. But in that case the test should not be run.
Reply all
Reply to author
Forward
0 new messages