Paul Wilkins [Wed, 16 Apr 2014 02:15:43 +0000 (19:15 -0700)]
Fix rate control bug.
Fix rate control bug whereby the rate factor heuristics
were being updated on arf overlays causing a rate surge
for a few frames followed by a corrective drop.
This fix eliminates many of the overshoot problems that
we were seeing on hard clips (even without applying
stricter vbr rate control) and also helps quality on
almost all clips with some hard clips improving by >5%.
Overall quality results measured at speed 2.
Derf +1.78% opsnr , +2.44% SSIM
Stdhd +2.41% opsnr, +2.85% SSIM
Change-Id: I2369df6295c2705963fa6307877f6acb304bcc39
Dmitry Kovalev [Wed, 16 Apr 2014 00:55:13 +0000 (17:55 -0700)]
Merge "Adding scale_if_required() function."
Dmitry Kovalev [Tue, 15 Apr 2014 23:39:27 +0000 (16:39 -0700)]
Merge "Adding get_search_range() function."
Dmitry Kovalev [Tue, 15 Apr 2014 21:58:31 +0000 (14:58 -0700)]
Merge "Cleaning up vp9_rc_compute_frame_size_bounds()."
Dmitry Kovalev [Tue, 15 Apr 2014 21:57:33 +0000 (14:57 -0700)]
Merge "Cleaning up vp9_twopass_worst_quality()."
Dmitry Kovalev [Tue, 15 Apr 2014 21:43:45 +0000 (14:43 -0700)]
Adding scale_if_required() function.
Change-Id: I87819fed5aebb6ffe2f4d4655df226235a3d21cb
Dmitry Kovalev [Tue, 15 Apr 2014 21:40:40 +0000 (14:40 -0700)]
Adding get_search_range() function.
Change-Id: I988eea8f78f71135b914661420c5c75674e5c010
Dmitry Kovalev [Tue, 15 Apr 2014 19:00:23 +0000 (12:00 -0700)]
Merge "More user friendly vpxenc help strings."
Dmitry Kovalev [Tue, 15 Apr 2014 17:39:31 +0000 (10:39 -0700)]
Merge "Moving frame_frags field from VP9Common to VP9_COMP."
Dmitry Kovalev [Tue, 15 Apr 2014 17:25:14 +0000 (10:25 -0700)]
Merge "Using anonymous enum instead of macros."
Dmitry Kovalev [Tue, 15 Apr 2014 17:24:59 +0000 (10:24 -0700)]
Merge "Adding get_skip_encode_frame()."
Vignesh Venkatasubramanian [Tue, 15 Apr 2014 16:54:01 +0000 (09:54 -0700)]
Merge "Remove fatal() call in webmdec.c"
Dmitry Kovalev [Tue, 15 Apr 2014 00:05:15 +0000 (17:05 -0700)]
Merge "Removing unused vp9_mcomp_x86.h file."
Dmitry Kovalev [Tue, 15 Apr 2014 00:05:04 +0000 (17:05 -0700)]
Merge "Replacing int_mv with MV."
Paul Wilkins [Mon, 14 Apr 2014 23:41:09 +0000 (16:41 -0700)]
Merge "Remove vp9_ prefix on static inline function."
Dmitry Kovalev [Mon, 14 Apr 2014 22:19:43 +0000 (15:19 -0700)]
Adding get_skip_encode_frame().
Change-Id: Id687aa617650a859463e7ae63dd4c0dc4f3e4779
Dmitry Kovalev [Mon, 14 Apr 2014 22:11:13 +0000 (15:11 -0700)]
Using anonymous enum instead of macros.
Change-Id: I5ed360585dae2c9fea6c32058dbfb8ec07700677
Yaowu Xu [Mon, 14 Apr 2014 21:39:50 +0000 (14:39 -0700)]
Merge "Reduce code duplication"
Adrian Grange [Mon, 14 Apr 2014 21:39:46 +0000 (14:39 -0700)]
Merge "Enable vpxenc to specify internal coded frame size"
Vignesh Venkatasubramanian [Mon, 14 Apr 2014 21:21:47 +0000 (14:21 -0700)]
Remove fatal() call in webmdec.c
Remove call to fatal() in webmdec.c so that it does not depend on
tools_common.c for compilation.
Change-Id: I3eec483afe6fae72436993c72b26d61d14a7f2bf
Dmitry Kovalev [Mon, 14 Apr 2014 19:12:50 +0000 (12:12 -0700)]
More user friendly vpxenc help strings.
Change-Id: I257fb32673c47848258dc7e6e22147d0beb49f86
Paul Wilkins [Mon, 14 Apr 2014 19:08:42 +0000 (12:08 -0700)]
Merge "Speed 2 alternative balance."
Dmitry Kovalev [Mon, 14 Apr 2014 18:42:56 +0000 (11:42 -0700)]
Replacing int_mv with MV.
Change-Id: I35b9d1856d7951b8df7c933df6936dfc52a28451
Dmitry Kovalev [Mon, 14 Apr 2014 18:32:58 +0000 (11:32 -0700)]
Removing unused vp9_mcomp_x86.h file.
We don't use declarations from this file. The real declarations
(differently named) are in vp9_rtcd_defs.pl, e.g. vp9_full_search_sad.
Change-Id: I73cbf064305710ba20747233cfdbe67366f069a0
Yaowu Xu [Mon, 14 Apr 2014 18:23:19 +0000 (11:23 -0700)]
Reduce code duplication
Change-Id: I6ea1c335da9ca5b65f6a11466b417ad196fd0d65
Adrian Grange [Wed, 9 Apr 2014 21:51:29 +0000 (14:51 -0700)]
Enable vpxenc to specify internal coded frame size
Added command line flags "resize-width" & "resize-height"
to allow the user to specify the frame size to encode at.
These two flags are ignored if the "resize-allowed" switch
is not set to 1.
All frames in the clip are then encoded at this size, which
must be smaller than the raw frame size.
Change-Id: I3d64bd9303d5c0bd678461a866a1ea621700d744
Dmitry Kovalev [Mon, 14 Apr 2014 17:33:43 +0000 (10:33 -0700)]
Merge "Cleaning up check_best_zero_mv()."
Dmitry Kovalev [Mon, 14 Apr 2014 17:32:58 +0000 (10:32 -0700)]
Merge "Cleaning up optimize_b()."
Dmitry Kovalev [Mon, 14 Apr 2014 17:30:38 +0000 (10:30 -0700)]
Merge "Removing redundant mvsadcost local variables."
Dmitry Kovalev [Mon, 14 Apr 2014 17:29:22 +0000 (10:29 -0700)]
Merge "Removing redundant checks from vp9_change_config()."
Paul Wilkins [Mon, 14 Apr 2014 17:04:35 +0000 (10:04 -0700)]
Remove vp9_ prefix on static inline function.
This prefix reserved for global scope functions etc.
Change-Id: I671cda2a63e01a40aae3d7407dd1bb4d338d709c
Paul Wilkins [Fri, 28 Mar 2014 15:21:26 +0000 (15:21 +0000)]
Speed 2 alternative balance.
A previous path improved speed 2 quality a little but
more extensive testing showed that it slowed encode
by a few %.
The change will have a similar effect for speed 3 but
should not impact speeds 4+;
This experiment should reverse that and give a speed
up at the cost of a small quality loss.
Borg results pending.
Change-Id: I4493fc1541aaf44587f1a41ff219f7088da9252c
Yaowu Xu [Mon, 14 Apr 2014 03:21:54 +0000 (20:21 -0700)]
Merge "Add a few "const""
Dmitry Kovalev [Sat, 12 Apr 2014 04:28:56 +0000 (21:28 -0700)]
Merge "Adding consts in vp9_picklpf.c."
Dmitry Kovalev [Sat, 12 Apr 2014 04:26:59 +0000 (21:26 -0700)]
Merge "Fixing error found by ioc."
Dmitry Kovalev [Sat, 12 Apr 2014 01:27:34 +0000 (18:27 -0700)]
Merge "Adding vp9_rc_update_framerate() function."
Dmitry Kovalev [Sat, 12 Apr 2014 00:14:15 +0000 (17:14 -0700)]
Fixing error found by ioc.
vp9/encoder/vp9_rdopt.c:3913:44: runtime error: index -1 out of bounds for
type 'RefBuffer [3]'.
Change-Id: Ic0ec755328853b359e3a1ee84d319589183e38b7
hkuang [Fri, 11 Apr 2014 23:46:14 +0000 (16:46 -0700)]
Merge "Fix the VP9 encoding unit test failure on ARM."
Dmitry Kovalev [Fri, 11 Apr 2014 22:57:39 +0000 (15:57 -0700)]
Removing redundant checks from vp9_change_config().
Both values are already checked as command line arguments:
RANGE_CHECK_HI(cfg, g_lag_in_frames, MAX_LAG_BUFFERS);
RANGE_CHECK_HI(extra_cfg, sharpness, 7);
Change-Id: I584798d587152d88dfd517c210054b466f4e5f8a
Yaowu Xu [Thu, 10 Apr 2014 23:22:52 +0000 (16:22 -0700)]
Add a few "const"
Change-Id: I258351fc1fff70ff2e9fa4845e575b0bb6a423d1
Yaowu Xu [Fri, 11 Apr 2014 22:50:02 +0000 (15:50 -0700)]
Merge "Replace the call to set_offsets()"
Dmitry Kovalev [Fri, 11 Apr 2014 22:33:50 +0000 (15:33 -0700)]
Adding consts in vp9_picklpf.c.
Change-Id: I84af62cc52954fc2eaf0b737245be76551fc8005
Dmitry Kovalev [Fri, 11 Apr 2014 21:32:07 +0000 (14:32 -0700)]
Cleaning up check_best_zero_mv().
Change-Id: I5c450a4932fb4f20449487596932458ee3b48ae0
Dmitry Kovalev [Fri, 11 Apr 2014 21:23:13 +0000 (14:23 -0700)]
Adding vp9_rc_update_framerate() function.
Change-Id: Ie0c905b6f32a37e4360bbb44ceeae77c42ad1dc5
James Zern [Fri, 11 Apr 2014 21:23:11 +0000 (14:23 -0700)]
Merge "rename README.webm -> README.libvpx"
Dmitry Kovalev [Fri, 11 Apr 2014 21:02:17 +0000 (14:02 -0700)]
Removing redundant mvsadcost local variables.
Change-Id: I19a197b9525172579f253702c77fa76af88f6565
Dmitry Kovalev [Fri, 11 Apr 2014 21:09:17 +0000 (14:09 -0700)]
Merge "Removing offset argument of mvcomp macros."
Dmitry Kovalev [Fri, 11 Apr 2014 21:08:16 +0000 (14:08 -0700)]
Merge "Adding RD_OPT struct."
Dmitry Kovalev [Fri, 11 Apr 2014 20:50:44 +0000 (13:50 -0700)]
Merge "Removing unused cost arguments from mcomp functions."
Dmitry Kovalev [Fri, 11 Apr 2014 20:46:54 +0000 (13:46 -0700)]
Merge "Renaming zz_motion_search() to get_block_variance()."
Dmitry Kovalev [Fri, 11 Apr 2014 20:45:53 +0000 (13:45 -0700)]
Merge "Adding temp variable q to vp9_cyclic_refresh_setup()."
Yaowu Xu [Thu, 10 Apr 2014 22:57:38 +0000 (15:57 -0700)]
Replace the call to set_offsets()
With a more approriate one vp9_setup_src_planes() as only src buffer
pointers need to be initialized here.
Change-Id: I40fac4d8b2d39eb7d0c65b9b6afab45138a13936
James Zern [Fri, 11 Apr 2014 19:28:01 +0000 (12:28 -0700)]
rename README.webm -> README.libvpx
matches the project name and doesn't share a media file extension
Change-Id: I9ad6c0a180e36c41f8fc49120615a070ea792a30
Dmitry Kovalev [Fri, 11 Apr 2014 18:03:56 +0000 (11:03 -0700)]
Renaming zz_motion_search() to get_block_variance().
Change-Id: Ibec06411c8cd843c2ca33b528a511a656e551983
Dmitry Kovalev [Wed, 9 Apr 2014 22:00:14 +0000 (15:00 -0700)]
Adding RD_OPT struct.
Change-Id: I2d1b5c1481aefe226082e1f096ca9edd340d4d31
Dmitry Kovalev [Fri, 11 Apr 2014 17:36:10 +0000 (10:36 -0700)]
vp9_rc_postencode_update() cleanup.
Change-Id: Idb1289aa0eadff8f75dcf995547ab3a1b9e27375
Dmitry Kovalev [Fri, 11 Apr 2014 17:31:54 +0000 (10:31 -0700)]
Adding temp variable q to vp9_cyclic_refresh_setup().
Change-Id: If0e9c811c8ae78c0914d615bad0067a5b57e4a71
Dmitry Kovalev [Fri, 11 Apr 2014 17:27:46 +0000 (10:27 -0700)]
Merge "Removing legacy XMA code from vp8."
Dmitry Kovalev [Fri, 11 Apr 2014 06:28:52 +0000 (23:28 -0700)]
Removing unused cost arguments from mcomp functions.
Change-Id: Id81a76d18be6b2de69f81bb563d74c3bb356d434
Dmitry Kovalev [Fri, 11 Apr 2014 17:23:35 +0000 (10:23 -0700)]
Merge "Removing unused initial_{width, height} from VP9Decoder."
Dmitry Kovalev [Fri, 11 Apr 2014 17:23:23 +0000 (10:23 -0700)]
Merge "Removing unnecessary typedef."
Dmitry Kovalev [Fri, 11 Apr 2014 17:23:18 +0000 (10:23 -0700)]
Merge "Replacing int_mv with MV."
Paul Wilkins [Fri, 4 Apr 2014 13:39:39 +0000 (14:39 +0100)]
Adjust active minQ calculation for normal frames.
This increases the range of Q values available to
normal inter frames to allow encoder a better chance
to hit the target rate.
Change-Id: I33cd96469a46577fdcea631e26d3355710909e6d
Paul Wilkins [Fri, 4 Apr 2014 11:56:50 +0000 (12:56 +0100)]
Change Qlimit for arf kf.
The limits applied under the flag
"LIMIT_QRANGE_FOR_ALTREF_AND_KEY"
behaved in an undesirable way if the gap between
active_worst_quality and active_best_quality was
changed.
In this patch, the adjustment is made using the
vp9_compute_qdelta_by_rate() function and fixed
rate multiplier values. Hence it is not impacted by
the relative value of active_best_quality.
Change-Id: I93b3308e04ade1e4eb5af63edf64f91cd3700249
Dmitry Kovalev [Fri, 11 Apr 2014 06:48:09 +0000 (23:48 -0700)]
Replacing int_mv with MV.
Change-Id: I1020dec1ac2e9404a8efcc04681a050417b8b065
Dmitry Kovalev [Fri, 11 Apr 2014 06:31:45 +0000 (23:31 -0700)]
Removing unnecessary typedef.
Change-Id: Ie584128e0120c2d849e8809c4128a759b85e210c
Dmitry Kovalev [Fri, 11 Apr 2014 00:52:37 +0000 (17:52 -0700)]
Removing legacy XMA code from vp8.
Change-Id: Ib9f7fd3fd56e304e5f587f790c97ac34a3077265
Dmitry Kovalev [Fri, 11 Apr 2014 04:44:33 +0000 (21:44 -0700)]
Merge "Cleaning up vp9_dthread.{c, h}."
Dmitry Kovalev [Fri, 11 Apr 2014 03:51:45 +0000 (20:51 -0700)]
Merge "Removing output_framerate field from VP9_COMP."
Dmitry Kovalev [Fri, 11 Apr 2014 03:51:27 +0000 (20:51 -0700)]
Merge "Moving last_frame_type update out from vp9_rc_postencode_update."
Dmitry Kovalev [Fri, 11 Apr 2014 01:18:41 +0000 (18:18 -0700)]
Merge "Fixing invalid ref buffer in vp9_diamond_search_sad_c()."
Dmitry Kovalev [Fri, 11 Apr 2014 00:45:07 +0000 (17:45 -0700)]
Cleaning up optimize_b().
Change-Id: I81eb1e931e00acfcb65f824e394bbe7795d6deaa
hkuang [Thu, 10 Apr 2014 20:54:21 +0000 (13:54 -0700)]
Fix the VP9 encoding unit test failure on ARM.
The cause is because VP9 encoding use vp8_vpxyv12_extendframeborders_neon
on arm which only extend boarder size 32. But VP9's border size is 160
Change-Id: I1ff7e945344a658af862beb1197925e677e8ff57
Dmitry Kovalev [Fri, 11 Apr 2014 00:15:19 +0000 (17:15 -0700)]
Merge "Cleaning up optimize_b()."
Dmitry Kovalev [Thu, 10 Apr 2014 23:35:10 +0000 (16:35 -0700)]
Moving last_frame_type update out from vp9_rc_postencode_update.
Change-Id: Ib00a694b9cf8e0c276dfefddab8cb36b8693e022
Dmitry Kovalev [Thu, 10 Apr 2014 23:27:45 +0000 (16:27 -0700)]
Merge "Removing unnecessary vp9_zero() call."
Dmitry Kovalev [Thu, 10 Apr 2014 23:21:39 +0000 (16:21 -0700)]
Removing output_framerate field from VP9_COMP.
Change-Id: Id755813fd5e78039bc9e76a046b33c8cafbc36dc
Dmitry Kovalev [Thu, 10 Apr 2014 23:17:49 +0000 (16:17 -0700)]
Cleaning up vp9_dthread.{c, h}.
Change-Id: If33087462293605f79d9281af133091fff33a876
Dmitry Kovalev [Thu, 10 Apr 2014 23:07:41 +0000 (16:07 -0700)]
Removing offset argument of mvcomp macros.
Change-Id: I8bb72b790a0783720833f27b7cf41055bee6becd
Yunqing Wang [Thu, 10 Apr 2014 22:59:05 +0000 (15:59 -0700)]
Merge "Define var threshold as unsigned int to match the type"
Marco Paniconi [Thu, 10 Apr 2014 22:26:59 +0000 (15:26 -0700)]
Merge "Remove the unneeded output_framerate from svc."
John Koleszar [Thu, 10 Apr 2014 22:24:25 +0000 (15:24 -0700)]
Merge "Fix onyx_if.c to not to redefine M_LOG2_E if it's already defined."
Dmitry Kovalev [Thu, 10 Apr 2014 22:16:48 +0000 (15:16 -0700)]
Fixing invalid ref buffer in vp9_diamond_search_sad_c().
Problem has been introduced recently with the cleanup patch
I0816ec12ec0a6f21d0f25f10c214b5fd327afc6c
Change-Id: Iaacb956a6039eb5826b82618dc03be32053fb892
Vignesh Venkatasubramanian [Thu, 10 Apr 2014 21:51:50 +0000 (14:51 -0700)]
Merge "Changing webmenc to use libwebm"
Marco Paniconi [Thu, 10 Apr 2014 20:43:36 +0000 (13:43 -0700)]
Remove the unneeded output_framerate from svc.
And change a parameter setting in vpx_temporal_scalable_patterns.
Change-Id: I7c208296ebcecbc8f73de032f6cdb26a1fc1442b
Dmitry Kovalev [Thu, 10 Apr 2014 18:44:35 +0000 (11:44 -0700)]
Cleaning up vp9_rc_compute_frame_size_bounds().
Change-Id: Ibc040bee99908e4dc5793d7a9f6e8bf2d15610e7
Dmitry Kovalev [Thu, 10 Apr 2014 18:35:36 +0000 (11:35 -0700)]
Removing unnecessary vp9_zero() call.
Change-Id: I9886f52a0fb19b4250c4c9444c3348897c84c9e2
Dmitry Kovalev [Thu, 10 Apr 2014 18:19:38 +0000 (11:19 -0700)]
Cleaning up optimize_b().
Change-Id: I5c62fabd380492740c1c2c0d71861e64ee1b05e8
Dmitry Kovalev [Thu, 10 Apr 2014 18:14:59 +0000 (11:14 -0700)]
Merge "Regrouping code in rd_pick_sb_modes()."
Dmitry Kovalev [Thu, 10 Apr 2014 18:14:24 +0000 (11:14 -0700)]
Merge "Cleaning up get_sby_perpixel_{, diff_}variance()."
Alex Converse [Thu, 10 Apr 2014 18:13:50 +0000 (11:13 -0700)]
Merge "Remove vestiges of large tx sizes in sub8x8 code."
Alex Converse [Thu, 10 Apr 2014 18:13:44 +0000 (11:13 -0700)]
Merge "Cleanup table declarations in vp9_rdopt."
Yunqing Wang [Thu, 10 Apr 2014 15:32:23 +0000 (08:32 -0700)]
Define var threshold as unsigned int to match the type
Minor change to use matching type in comparison.
Change-Id: I670cae2d584918c67c1af791a797629f392f599e
Yunqing Wang [Thu, 10 Apr 2014 16:45:08 +0000 (09:45 -0700)]
Merge "Fix encoder uninitialized read errors reported by drmemory"
Jingning Han [Thu, 10 Apr 2014 16:30:03 +0000 (09:30 -0700)]
Merge "Fix coding format in vp9_rc_regulate_q"
Yaowu Xu [Thu, 10 Apr 2014 16:04:10 +0000 (09:04 -0700)]
Merge "Prevent the usage of invalid best_mode_index"
Yaowu Xu [Thu, 10 Apr 2014 16:04:04 +0000 (09:04 -0700)]
Merge "Remove duplicate code"
Sergey Ulanov [Thu, 10 Apr 2014 01:47:00 +0000 (18:47 -0700)]
Fix onyx_if.c to not to redefine M_LOG2_E if it's already defined.
This fixes warning when compiling libvpx for PNaCl. PNaCl's version
of math.h defines M_LOG2_E.
Change-Id: Iba9450441538e9f82447ad2936bea94d21bafdf1
Yunqing Wang [Thu, 10 Apr 2014 15:25:10 +0000 (08:25 -0700)]
Merge "Minor code cleanup"
Dmitry Kovalev [Thu, 10 Apr 2014 04:06:11 +0000 (21:06 -0700)]
Cleaning up vp9_twopass_worst_quality().
Change-Id: Ie144e9ece57f2d59c230704a2f166bda1042adeb