Experimental rate control change.
Experimental rate control change.

When the codec in VBR (or cq) mode hits its max q limits and is
struggling to hit a target bandwidth, the bit target per frame collapses.

In the first instance normal frames cap out at the maximum allowed
Q and then the ARF and GFs do the same. This latter behavior is not
generally desirable as GFs and ARFs are only effective from a quality
and data rate perspective if they have at lease some level of -Q delta
compared to the surrounding frames.

In this patch I define a separate max Q for GFs and ARFs that is
derived from but somewhat lower than that defined for normal frames.
In effect there is a minimum Q delta that will always be available for
GFs and ARFs regardless of the target rate and MAXQ setting.

This may of course mean that the absolute lowest rate obtainable for
a given clip is somewhat higher.

Change-Id: I268868b28401900d0cd87e51e609cd3b784ab54a

luctrudeau/aom,Laknot/libvpx,Acidburn0zzz/webm.libvpx,mwgoldsmith/vpx,ittiamvpx/libvpx-1,mbebenita/aom,lyx2014/libvpx_c,n4t/libvpx,matanbs/webm.libvpx,altogother/webm.libvpx,ShiftMediaProject/libvpx,turbulenz/libvpx,zofuthan/libvpx,Suvarna1488/webm.libvpx,liqianggao/libvpx,reimaginemedia/webm.libvpx,Maria1099/webm.libvpx,WebRTC-Labs/libvpx,openpeer/libvpx_new,altogother/webm.libvpx,mwgoldsmith/libvpx,stewnorriss/libvpx,Topopiccione/libvpx,Laknot/libvpx,thdav/aom,jmvalin/aom,VTCSecureLLC/libvpx,jdm/libvpx,matanbs/webm.libvpx,openpeer/libvpx_new,altogother/webm.libvpx,kim42083/webm.libvpx,hsueceumd/test_hui,thdav/aom,smarter/aom,turbulenz/libvpx,running770/libvpx,Topopiccione/libvpx,pcwalton/libvpx,charup/https---github.com-webmproject-libvpx-,Laknot/libvpx,mbebenita/aom,Distrotech/libvpx,mwgoldsmith/vpx,matanbs/vp982,Distrotech/libvpx,Distrotech/libvpx,jdm/libvpx,mbebenita/aom,kleopatra999/webm.libvpx,VTCSecureLLC/libvpx,mbebenita/aom,kleopatra999/webm.libvpx,Suvarna1488/webm.libvpx,kleopatra999/webm.libvpx,sanyaade-teachings/libvpx,mwgoldsmith/libvpx,goodleixiao/vpx,hsueceumd/test_hui,gshORTON/webm.libvpx,gshORTON/webm.libvpx,shacklettbp/aom,turbulenz/libvpx,kalli123/webm.libvpx,ittiamvpx/libvpx,kleopatra999/webm.libvpx,VTCSecureLLC/libvpx,GrokImageCompression/aom,ittiamvpx/libvpx,zofuthan/libvpx,abwiz0086/webm.libvpx,kim42083/webm.libvpx,turbulenz/libvpx,ShiftMediaProject/libvpx,charup/https---github.com-webmproject-libvpx-,Maria1099/webm.libvpx,Maria1099/webm.libvpx,matanbs/vp982,shareefalis/libvpx,GrokImageCompression/aom,jdm/libvpx,pcwalton/libvpx,iniwf/webm.libvpx,liqianggao/libvpx,zofuthan/libvpx,stewnorriss/libvpx,kleopatra999/webm.libvpx,ittiamvpx/libvpx,matanbs/webm.libvpx,zofuthan/libvpx,jmvalin/aom,felipebetancur/libvpx,jacklicn/webm.libvpx,mwgoldsmith/vpx,jdm/libvpx,shacklettbp/aom,luctrudeau/aom,iniwf/webm.libvpx,jmvalin/aom,goodleixiao/vpx,smarter/aom,turbulenz/libvpx,thdav/aom,reimaginemedia/webm.libvpx,gshORTON/webm.libvpx,Laknot/libvpx,jacklicn/webm.libvpx,Maria1099/webm.libvpx,matanbs/vp982,lyx2014/libvpx_c,openpeer/libvpx_new,mwgoldsmith/vpx,shareefalis/libvpx,liqianggao/libvpx,shyamalschandra/libvpx,felipebetancur/libvpx,stewnorriss/libvpx,hsueceumd/test_hui,smarter/aom,sanyaade-teachings/libvpx,felipebetancur/libvpx,kalli123/webm.libvpx,GrokImageCompression/aom,charup/https---github.com-webmproject-libvpx-,reimaginemedia/webm.libvpx,openpeer/libvpx_new,ittiamvpx/libvpx-1,kalli123/webm.libvpx,mbebenita/aom,VTCSecureLLC/libvpx,mbebenita/aom,felipebetancur/libvpx,mbebenita/aom,altogother/webm.libvpx,running770/libvpx,jacklicn/webm.libvpx,Suvarna1488/webm.libvpx,n4t/libvpx,Suvarna1488/webm.libvpx,liqianggao/libvpx,VTCSecureLLC/libvpx,Maria1099/webm.libvpx,Topopiccione/libvpx,Distrotech/libvpx,luctrudeau/aom,stewnorriss/libvpx,smarter/aom,shyamalschandra/libvpx,running770/libvpx,kleopatra999/webm.libvpx,Topopiccione/libvpx,webmproject/libvpx,thdav/aom,n4t/libvpx,sanyaade-teachings/libvpx,goodleixiao/vpx,zofuthan/libvpx,jmvalin/aom,goodleixiao/vpx,jacklicn/webm.libvpx,ittiamvpx/libvpx,lyx2014/libvpx_c,matanbs/vp982,shyamalschandra/libvpx,shareefalis/libvpx,gshORTON/webm.libvpx,shareefalis/libvpx,shyamalschandra/libvpx,abwiz0086/webm.libvpx,sanyaade-teachings/libvpx,ittiamvpx/libvpx-1,gshORTON/webm.libvpx,abwiz0086/webm.libvpx,Topopiccione/libvpx,Acidburn0zzz/webm.libvpx,Acidburn0zzz/webm.libvpx,liqianggao/libvpx,ittiamvpx/libvpx,running770/libvpx,reimaginemedia/webm.libvpx,webmproject/libvpx,mwgoldsmith/libvpx,matanbs/vp982,ittiamvpx/libvpx-1,altogother/webm.libvpx,goodleixiao/vpx,shacklettbp/aom,gshORTON/webm.libvpx,Laknot/libvpx,webmproject/libvpx,charup/https---github.com-webmproject-libvpx-,GrokImageCompression/aom,turbulenz/libvpx,WebRTC-Labs/libvpx,n4t/libvpx,hsueceumd/test_hui,shacklettbp/aom,jacklicn/webm.libvpx,thdav/aom,smarter/aom,kim42083/webm.libvpx,Topopiccione/libvpx,matanbs/webm.libvpx,reimaginemedia/webm.libvpx,shareefalis/libvpx,smarter/aom,jmvalin/aom,ShiftMediaProject/libvpx,abwiz0086/webm.libvpx,turbulenz/libvpx,hsueceumd/test_hui,iniwf/webm.libvpx,hsueceumd/test_hui,kalli123/webm.libvpx,kalli123/webm.libvpx,Acidburn0zzz/webm.libvpx,Distrotech/libvpx,webmproject/libvpx,turbulenz/libvpx,abwiz0086/webm.libvpx,GrokImageCompression/aom,shyamalschandra/libvpx,charup/https---github.com-webmproject-libvpx-,jdm/libvpx,ittiamvpx/libvpx-1,ittiamvpx/libvpx-1,mbebenita/aom,matanbs/vp982,matanbs/webm.libvpx,jacklicn/webm.libvpx,mwgoldsmith/libvpx,Acidburn0zzz/webm.libvpx,Distrotech/libvpx,matanbs/webm.libvpx,matanbs/vp982,abwiz0086/webm.libvpx,kim42083/webm.libvpx,GrokImageCompression/aom,lyx2014/libvpx_c,pcwalton/libvpx,VTCSecureLLC/libvpx,mbebenita/aom,webmproject/libvpx,kim42083/webm.libvpx,n4t/libvpx,iniwf/webm.libvpx,mwgoldsmith/vpx,kim42083/webm.libvpx,Suvarna1488/webm.libvpx,luctrudeau/aom,running770/libvpx,goodleixiao/vpx,WebRTC-Labs/libvpx,ShiftMediaProject/libvpx,openpeer/libvpx_new,running770/libvpx,jmvalin/aom,Maria1099/webm.libvpx,jdm/libvpx,zofuthan/libvpx,iniwf/webm.libvpx,ittiamvpx/libvpx,shacklettbp/aom,Acidburn0zzz/webm.libvpx,shacklettbp/aom,liqianggao/libvpx,luctrudeau/aom,pcwalton/libvpx,WebRTC-Labs/libvpx,altogother/webm.libvpx,stewnorriss/libvpx,thdav/aom,shyamalschandra/libvpx,lyx2014/libvpx_c,felipebetancur/libvpx,luctrudeau/aom,mwgoldsmith/libvpx,lyx2014/libvpx_c,iniwf/webm.libvpx,mwgoldsmith/vpx,pcwalton/libvpx,ShiftMediaProject/libvpx,kalli123/webm.libvpx,Laknot/libvpx,felipebetancur/libvpx,turbulenz/libvpx,webmproject/libvpx,shareefalis/libvpx,charup/https---github.com-webmproject-libvpx-,sanyaade-teachings/libvpx,stewnorriss/libvpx,WebRTC-Labs/libvpx,mwgoldsmith/libvpx,Suvarna1488/webm.libvpx,reimaginemedia/webm.libvpx,openpeer/libvpx_new,pcwalton/libvpx