Commit Graph

5278 Commits

Author SHA1 Message Date
Dmitry Kovalev
4e9529cb24 Renaming av_per_frame_bandwidth to avg_frame_bandwidth.
Just to be consistent with min_frame_bandwidth & max_frame_bandwidth names.

Change-Id: I36702c708cba9ad1a5c36393f37758a2edeadb90
2014-04-15 18:36:01 -07:00
Dmitry Kovalev
003376fc8b Merge "Adding scale_if_required() function." 2014-04-15 17:55:13 -07:00
Dmitry Kovalev
7a85ba8ac3 Adding sad function generation macros.
Change-Id: If6f013835b69ae61b0a0c6006fe0955303f579a5
2014-04-15 17:46:45 -07:00
Dmitry Kovalev
cb9550eea0 Merge "Adding get_search_range() function." 2014-04-15 16:39:27 -07:00
Dmitry Kovalev
0391790f24 Merge "Cleaning up vp9_rc_compute_frame_size_bounds()." 2014-04-15 14:58:31 -07:00
Dmitry Kovalev
6fe75c6397 Merge "Cleaning up vp9_twopass_worst_quality()." 2014-04-15 14:57:33 -07:00
Dmitry Kovalev
2f86279124 Adding scale_if_required() function.
Change-Id: I87819fed5aebb6ffe2f4d4655df226235a3d21cb
2014-04-15 14:43:45 -07:00
Dmitry Kovalev
0739cab86c Adding get_search_range() function.
Change-Id: I988eea8f78f71135b914661420c5c75674e5c010
2014-04-15 14:40:40 -07:00
Yaowu Xu
8f6f6ab244 Add consts in set_fixed_partitioning()
Change-Id: Ib8c1b3b0a5a5689d3261dc822a69e9d473b89be1
2014-04-15 11:49:49 -07:00
Dmitry Kovalev
55977e4a4f Merge "Moving frame_frags field from VP9Common to VP9_COMP." 2014-04-15 10:39:31 -07:00
Dmitry Kovalev
e58ea39fd0 Merge "Using anonymous enum instead of macros." 2014-04-15 10:25:14 -07:00
Dmitry Kovalev
398de52f92 Merge "Adding get_skip_encode_frame()." 2014-04-15 10:24:59 -07:00
Yaowu Xu
1cda057261 Refactor common code into a function
Change-Id: Id156af5662ebe6fbe1cab636564f5f4bedb85ab0
2014-04-15 10:10:23 -07:00
Dmitry Kovalev
14331a84bd Merge "Removing unused vp9_mcomp_x86.h file." 2014-04-14 17:05:15 -07:00
Dmitry Kovalev
78228f30f7 Merge "Replacing int_mv with MV." 2014-04-14 17:05:04 -07:00
Paul Wilkins
fd5a2066d5 Merge "Remove vp9_ prefix on static inline function." 2014-04-14 16:41:09 -07:00
Dmitry Kovalev
41a4b88a04 Adding get_skip_encode_frame().
Change-Id: Id687aa617650a859463e7ae63dd4c0dc4f3e4779
2014-04-14 15:19:43 -07:00
Dmitry Kovalev
c1981bdda0 Using anonymous enum instead of macros.
Change-Id: I5ed360585dae2c9fea6c32058dbfb8ec07700677
2014-04-14 15:11:13 -07:00
Yaowu Xu
d810fe5a92 Merge "Reduce code duplication" 2014-04-14 14:39:50 -07:00
Adrian Grange
48f5066553 Merge "Enable vpxenc to specify internal coded frame size" 2014-04-14 14:39:46 -07:00
Dmitry Kovalev
f3739f9052 Consistent mode names.
Change-Id: Icb4851d98c951506fe5d73d8d5a8ac7e53fecfd0
2014-04-14 14:09:39 -07:00
Paul Wilkins
096b44f43b Merge "Speed 2 alternative balance." 2014-04-14 12:08:42 -07:00
Dmitry Kovalev
60db131567 Replacing int_mv with MV.
Change-Id: I35b9d1856d7951b8df7c933df6936dfc52a28451
2014-04-14 11:42:56 -07:00
Dmitry Kovalev
2fc3a18653 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
2014-04-14 11:32:58 -07:00
Yaowu Xu
54306b5861 Reduce code duplication
Change-Id: I6ea1c335da9ca5b65f6a11466b417ad196fd0d65
2014-04-14 11:23:19 -07:00
Dmitry Kovalev
6733ad19e1 Cleaning up vp9_full_search_sadx3().
Change-Id: Ia63fee65c827fd33080119184e6cf3167421807c
2014-04-14 11:13:33 -07:00
Adrian Grange
f7bd1274e3 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
2014-04-14 10:54:19 -07:00
Dmitry Kovalev
07dddfa3fd Merge "Cleaning up check_best_zero_mv()." 2014-04-14 10:33:43 -07:00
Dmitry Kovalev
2543525700 Merge "Cleaning up optimize_b()." 2014-04-14 10:32:58 -07:00
Dmitry Kovalev
908e1218cd Merge "Removing redundant mvsadcost local variables." 2014-04-14 10:30:38 -07:00
Dmitry Kovalev
07dd705498 Merge "Removing redundant checks from vp9_change_config()." 2014-04-14 10:29:22 -07:00
Paul Wilkins
19536d692e Remove vp9_ prefix on static inline function.
This prefix reserved for global scope functions etc.

Change-Id: I671cda2a63e01a40aae3d7407dd1bb4d338d709c
2014-04-14 10:08:04 -07:00
Paul Wilkins
0639b5cff5 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
2014-04-14 17:55:19 +01:00
Yaowu Xu
e5930d5b77 Merge "Add a few "const"" 2014-04-13 20:21:54 -07:00
Dmitry Kovalev
ebaca9e024 Merge "Adding consts in vp9_picklpf.c." 2014-04-11 21:28:56 -07:00
Dmitry Kovalev
490c5fe074 Merge "Fixing error found by ioc." 2014-04-11 21:26:59 -07:00
Dmitry Kovalev
16efb54939 Merge "Adding vp9_rc_update_framerate() function." 2014-04-11 18:27:34 -07:00
Dmitry Kovalev
1f58f9d092 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
2014-04-11 17:14:15 -07:00
hkuang
78417211e2 Merge "Fix the VP9 encoding unit test failure on ARM." 2014-04-11 16:46:14 -07:00
Dmitry Kovalev
603500055e 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
2014-04-11 15:57:39 -07:00
Yaowu Xu
9168f18069 Add a few "const"
Change-Id: I258351fc1fff70ff2e9fa4845e575b0bb6a423d1
2014-04-11 15:50:16 -07:00
Yaowu Xu
eb0c52baca Merge "Replace the call to set_offsets()" 2014-04-11 15:50:02 -07:00
Dmitry Kovalev
3766ccd37a Adding consts in vp9_picklpf.c.
Change-Id: I84af62cc52954fc2eaf0b737245be76551fc8005
2014-04-11 15:33:50 -07:00
Dmitry Kovalev
ab3d8e6fc5 Renaming VP9D_CONFIG to VP9DecoderConfig.
Change-Id: I9677aab1c7bb0ca9e989cb21348a3a2c926d8f5a
2014-04-11 14:50:11 -07:00
Dmitry Kovalev
35a63b7c0f Cleaning up check_best_zero_mv().
Change-Id: I5c450a4932fb4f20449487596932458ee3b48ae0
2014-04-11 14:32:07 -07:00
Dmitry Kovalev
335a18ad12 Adding vp9_rc_update_framerate() function.
Change-Id: Ie0c905b6f32a37e4360bbb44ceeae77c42ad1dc5
2014-04-11 14:23:13 -07:00
Dmitry Kovalev
58c40986e0 Removing redundant mvsadcost local variables.
Change-Id: I19a197b9525172579f253702c77fa76af88f6565
2014-04-11 14:10:37 -07:00
Dmitry Kovalev
145b24719a Merge "Removing offset argument of mvcomp macros." 2014-04-11 14:09:17 -07:00
Dmitry Kovalev
6653bf7178 Merge "Adding RD_OPT struct." 2014-04-11 14:08:16 -07:00
Dmitry Kovalev
bec3e3e380 Merge "Removing unused cost arguments from mcomp functions." 2014-04-11 13:50:44 -07:00
Dmitry Kovalev
cfae027056 Merge "Renaming zz_motion_search() to get_block_variance()." 2014-04-11 13:46:54 -07:00
Dmitry Kovalev
36d12b6e93 Merge "Adding temp variable q to vp9_cyclic_refresh_setup()." 2014-04-11 13:45:53 -07:00
Yaowu Xu
1243d265cf 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
2014-04-11 13:03:28 -07:00
Dmitry Kovalev
79dd5e7a5a Renaming zz_motion_search() to get_block_variance().
Change-Id: Ibec06411c8cd843c2ca33b528a511a656e551983
2014-04-11 11:03:56 -07:00
Dmitry Kovalev
1ff4aa33de Adding RD_OPT struct.
Change-Id: I2d1b5c1481aefe226082e1f096ca9edd340d4d31
2014-04-11 10:58:37 -07:00
Dmitry Kovalev
93169f8bf8 vp9_rc_postencode_update() cleanup.
Change-Id: Idb1289aa0eadff8f75dcf995547ab3a1b9e27375
2014-04-11 10:36:10 -07:00
Dmitry Kovalev
591e383df5 Adding temp variable q to vp9_cyclic_refresh_setup().
Change-Id: If0e9c811c8ae78c0914d615bad0067a5b57e4a71
2014-04-11 10:31:54 -07:00
Dmitry Kovalev
63fa722179 Removing unused cost arguments from mcomp functions.
Change-Id: Id81a76d18be6b2de69f81bb563d74c3bb356d434
2014-04-11 10:24:36 -07:00
Dmitry Kovalev
59fd74229e Merge "Removing unused initial_{width, height} from VP9Decoder." 2014-04-11 10:23:35 -07:00
Dmitry Kovalev
6d291b700e Merge "Removing unnecessary typedef." 2014-04-11 10:23:23 -07:00
Dmitry Kovalev
1fcce4a1f1 Merge "Replacing int_mv with MV." 2014-04-11 10:23:18 -07:00
Paul Wilkins
1d9755436d 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
2014-04-11 15:02:15 +01:00
Paul Wilkins
d83f6f0632 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
2014-04-11 15:00:06 +01:00
Dmitry Kovalev
73aa5b7656 Replacing int_mv with MV.
Change-Id: I1020dec1ac2e9404a8efcc04681a050417b8b065
2014-04-10 23:48:09 -07:00
Dmitry Kovalev
5939ca9c6a Removing unnecessary typedef.
Change-Id: Ie584128e0120c2d849e8809c4128a759b85e210c
2014-04-10 23:31:45 -07:00
Dmitry Kovalev
b5bf64668e Merge "Cleaning up vp9_dthread.{c, h}." 2014-04-10 21:44:33 -07:00
Dmitry Kovalev
c01e86cc94 Merge "Removing output_framerate field from VP9_COMP." 2014-04-10 20:51:45 -07:00
Dmitry Kovalev
8e4d5e41a8 Merge "Moving last_frame_type update out from vp9_rc_postencode_update." 2014-04-10 20:51:27 -07:00
Dmitry Kovalev
c8406c6559 Merge "Fixing invalid ref buffer in vp9_diamond_search_sad_c()." 2014-04-10 18:18:41 -07:00
Dmitry Kovalev
a4c3e2e4f2 Cleaning up optimize_b().
Change-Id: I81eb1e931e00acfcb65f824e394bbe7795d6deaa
2014-04-10 17:45:07 -07:00
hkuang
31c7a9b174 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
2014-04-10 17:37:48 -07:00
Dmitry Kovalev
5053845a70 Merge "Cleaning up optimize_b()." 2014-04-10 17:15:19 -07:00
Dmitry Kovalev
a286ff8077 Moving last_frame_type update out from vp9_rc_postencode_update.
Change-Id: Ib00a694b9cf8e0c276dfefddab8cb36b8693e022
2014-04-10 16:35:10 -07:00
Dmitry Kovalev
01c4b5ddd7 Merge "Removing unnecessary vp9_zero() call." 2014-04-10 16:27:45 -07:00
Dmitry Kovalev
4d2523bfda Removing output_framerate field from VP9_COMP.
Change-Id: Id755813fd5e78039bc9e76a046b33c8cafbc36dc
2014-04-10 16:21:39 -07:00
Dmitry Kovalev
69c6671ead Cleaning up vp9_dthread.{c, h}.
Change-Id: If33087462293605f79d9281af133091fff33a876
2014-04-10 16:17:49 -07:00
Dmitry Kovalev
d3127382fd Removing offset argument of mvcomp macros.
Change-Id: I8bb72b790a0783720833f27b7cf41055bee6becd
2014-04-10 16:07:41 -07:00
Yunqing Wang
c3e08e4aeb Merge "Define var threshold as unsigned int to match the type" 2014-04-10 15:59:05 -07:00
Marco Paniconi
65d4f6916e Merge "Remove the unneeded output_framerate from svc." 2014-04-10 15:26:59 -07:00
John Koleszar
a5ce28a15a Merge "Fix onyx_if.c to not to redefine M_LOG2_E if it's already defined." 2014-04-10 15:24:25 -07:00
Dmitry Kovalev
c8167f5ba7 Fixing invalid ref buffer in vp9_diamond_search_sad_c().
Problem has been introduced recently with the cleanup patch
I0816ec12ec0a6f21d0f25f10c214b5fd327afc6c

Change-Id: Iaacb956a6039eb5826b82618dc03be32053fb892
2014-04-10 15:16:48 -07:00
Marco Paniconi
a39b201344 Remove the unneeded output_framerate from svc.
And change a parameter setting in vpx_temporal_scalable_patterns.

Change-Id: I7c208296ebcecbc8f73de032f6cdb26a1fc1442b
2014-04-10 13:49:25 -07:00
Dmitry Kovalev
72fbccb52a Cleaning up vp9_rc_compute_frame_size_bounds().
Change-Id: Ibc040bee99908e4dc5793d7a9f6e8bf2d15610e7
2014-04-10 11:44:35 -07:00
Dmitry Kovalev
11eb6075ca Removing unnecessary vp9_zero() call.
Change-Id: I9886f52a0fb19b4250c4c9444c3348897c84c9e2
2014-04-10 11:35:36 -07:00
Dmitry Kovalev
9cf7a0f0da Cleaning up optimize_b().
Change-Id: I5c62fabd380492740c1c2c0d71861e64ee1b05e8
2014-04-10 11:19:38 -07:00
Dmitry Kovalev
35c18baa26 Merge "Regrouping code in rd_pick_sb_modes()." 2014-04-10 11:14:59 -07:00
Dmitry Kovalev
91ff90760a Merge "Cleaning up get_sby_perpixel_{, diff_}variance()." 2014-04-10 11:14:24 -07:00
Alex Converse
67affd9ec9 Merge "Remove vestiges of large tx sizes in sub8x8 code." 2014-04-10 11:13:50 -07:00
Alex Converse
6a9b44c281 Merge "Cleanup table declarations in vp9_rdopt." 2014-04-10 11:13:44 -07:00
Yunqing Wang
eb505a3f3f Define var threshold as unsigned int to match the type
Minor change to use matching type in comparison.

Change-Id: I670cae2d584918c67c1af791a797629f392f599e
2014-04-10 09:48:33 -07:00
Yunqing Wang
23ccf71924 Merge "Fix encoder uninitialized read errors reported by drmemory" 2014-04-10 09:45:08 -07:00
Jingning Han
4b8ad4a847 Merge "Fix coding format in vp9_rc_regulate_q" 2014-04-10 09:30:03 -07:00
Yaowu Xu
675d95f9d9 Merge "Prevent the usage of invalid best_mode_index" 2014-04-10 09:04:10 -07:00
Yaowu Xu
9034094b80 Merge "Remove duplicate code" 2014-04-10 09:04:04 -07:00
Sergey Ulanov
409f8da265 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
2014-04-10 08:54:30 -07:00
Yunqing Wang
81056e2d5e Merge "Minor code cleanup" 2014-04-10 08:25:10 -07:00
Dmitry Kovalev
95f14d7f27 Adding setup_frame() function.
Change-Id: I074db38a71ca0d241323fa63f400680fb1e90a21
2014-04-09 21:22:19 -07:00
Dmitry Kovalev
c3de569bb9 Cleaning up vp9_twopass_worst_quality().
Change-Id: Ie144e9ece57f2d59c230704a2f166bda1042adeb
2014-04-09 21:06:11 -07:00
Dmitry Kovalev
1d5ed021fb Moving frame_frags field from VP9Common to VP9_COMP.
Change-Id: I0f4a5c50561a2653d22c366c214a937272ecfa2c
2014-04-09 20:56:06 -07:00
Dmitry Kovalev
65e650e0c0 Merge "Revert "Converting set_prev_mi() to get_prev_mi()."" 2014-04-09 20:44:30 -07:00
Dmitry Kovalev
3dff8aa36b Merge "Moving q_trans[] table to vp9_quantize.{c, h}." 2014-04-09 20:18:24 -07:00
Dmitry Kovalev
f10c173b40 Merge "Removing unused code from vp9_onyx_if.c." 2014-04-09 20:18:07 -07:00
Alex Converse
dad9e4abaa Remove vestiges of large tx sizes in sub8x8 code.
Change-Id: I27015ed57b4c4390cfde3d0eecd82c3e76fd3786
2014-04-09 18:43:29 -07:00
Yaowu Xu
1dcc1aa942 Prevent the usage of invalid best_mode_index
This commit changed the initialization of best_mode_index to -1 to make
sure it is not mistakenly used for mode masking.

Change-Id: I75b05db51466070dd23c4ee57a4d4b40764dc019
2014-04-09 17:56:06 -07:00
Dmitry Kovalev
41ea9ef955 Merge "Removing redundant assignments." 2014-04-09 16:56:25 -07:00
Alex Converse
71ffc7d7ff Merge "Remove unused tile arguments from vp_rdopt." 2014-04-09 16:45:46 -07:00
Alex Converse
1eee13c0ab Merge "Cleanup vp9_rd_pick_inter_mode_sub8x8()." 2014-04-09 16:45:41 -07:00
Dmitry Kovalev
46a20d67cb Removing unused initial_{width, height} from VP9Decoder.
Change-Id: I039474b34863bc3db9c6cda82485c32826a1b5d1
2014-04-09 16:18:29 -07:00
Jingning Han
2255085584 Fix coding format in vp9_rc_regulate_q
Change-Id: I08aa0c213df34c084eb7a3c51b6b3306e49c7757
2014-04-09 15:41:39 -07:00
Dmitry Kovalev
60def47f21 Revert "Converting set_prev_mi() to get_prev_mi()."
This reverts commit 22a3e30790

Change-Id: I460d905edf5fb2006da58c18fbe02c04d0c631bb
2014-04-09 15:23:16 -07:00
Yaowu Xu
2dc92482d0 Merge "Fix the setting of mode_skip_mask" 2014-04-09 14:29:23 -07:00
Alex Converse
666ecf21df Cleanup table declarations in vp9_rdopt.
Change-Id: Ia4bef41a6b0252593ad84612a2a143c724fd03ea
2014-04-09 14:22:39 -07:00
Dmitry Kovalev
b60d23f308 Removing unused code from vp9_onyx_if.c.
Change-Id: I0462bf1ca1b4e5a1c06259979b4daff949b8a2c6
2014-04-09 13:42:26 -07:00
Dmitry Kovalev
d1a396d8b9 Moving q_trans[] table to vp9_quantize.{c, h}.
Change-Id: I1324c339815a47004ddccdaf651d24c60382b92f
2014-04-09 13:35:39 -07:00
Tom Finegan
4fffefe189 Merge "Fix avx builds on macosx with clang 5.0." 2014-04-09 13:03:26 -07:00
Dmitry Kovalev
876059f7c2 Regrouping code in rd_pick_sb_modes().
Change-Id: I51c71dd4aee6592fb90feebcf864bccc87dacec6
2014-04-09 13:00:02 -07:00
Yaowu Xu
585e01bfe2 Remove duplicate code
Change-Id: Ie26b6ca8de733a527f820b16148e7a2231073f0f
2014-04-09 12:58:10 -07:00
Dmitry Kovalev
7cc78c06e0 Merge "Adding vp9_inc_frame_in_layer() function." 2014-04-09 12:50:25 -07:00
Yunqing Wang
7c891ed2e0 Minor code cleanup
Cleanup.

Change-Id: I54d989e24b35323cda7290654e425565d5c9ea2d
2014-04-09 12:08:07 -07:00
Alex Converse
3ab4d57196 Remove unused tile arguments from vp_rdopt.
Change-Id: I721ff26e3d5dbef80b8cd2dd562adae3748f6687
2014-04-09 11:48:30 -07:00
Alex Converse
dcb5157608 Cleanup vp9_rd_pick_inter_mode_sub8x8().
Change-Id: I9be2e4e9aeda0fae6dc946deae2999be51daebe0
2014-04-09 11:48:24 -07:00
Alex Converse
6e943cabdc Merge "Fixing broken build." 2014-04-09 11:47:23 -07:00
Yaowu Xu
4f95a7fe3e Fix the setting of mode_skip_mask
In mode selection loop, once mode_index pass mode_skip_start, all
modes with a different reference frame from current best mode are
masked out using mode_skip_mask.

However, the setting of mode_skip_mask may use an invalid mode if
there is no mode tested yet. This commit fixes the issue by making
sure a mode has been tested and selected. Otherwise, no mode will be
masked out because of their reference frame.

Change-Id: Ib0009e8a96836a65cf5347440fff8a2e1a67f29f
2014-04-09 11:42:28 -07:00
James Zern
db8af0b0b3 Merge "Fix TODO typo" 2014-04-09 11:29:44 -07:00
Dmitry Kovalev
0ba14e600c Fixing broken build.
Change-Id: I9b8f9a3f4fa9d48695149dd68ecb5e8d84accafe
2014-04-09 10:46:54 -07:00
Dmitry Kovalev
5ed83c3220 Merge "Converting set_prev_mi() to get_prev_mi()." 2014-04-09 10:27:05 -07:00
Yunqing Wang
2e7d327789 Merge "Use source frame difference to make partition decision" 2014-04-09 10:26:42 -07:00
Dmitry Kovalev
51b3035fc3 Adding vp9_inc_frame_in_layer() function.
Change-Id: Idf612c772440158cd1645623241c51ab0d57405c
2014-04-09 10:26:32 -07:00
Dmitry Kovalev
a30ff3458d Merge "Applying q_trans[] inside set_encoder_config()." 2014-04-09 10:25:59 -07:00
Yunqing Wang
3a6670fcf8 Fix encoder uninitialized read errors reported by drmemory
This patch fixed the uninitialized read errors in Issue 748:
"dr memory VP9 encode errors". In vp9_convolve_avg_sse2,
when width is 4, pavgb reads 8 bytes from dst buffer that is
out of range. An error is reported although the data is not
actually used later. This issue was resolved by preventing
uninitialized reads.

Change-Id: I109a54910aa47139cb13119de86f2062cff207df
2014-04-09 09:59:15 -07:00
Jingning Han
ae6485663a Merge "Select prediction filter type in non-RD mode decision" 2014-04-09 09:07:45 -07:00
Frank Galligan
bbf8971a28 Fix TODO typo
Change-Id: I7a5230852cb24ce22bfe85ea2608cdb4619b5200
2014-04-09 08:48:44 -07:00
Deb Mukherjee
0cca5dd8d7 Merge "High-level hooks for Profile 2 (10/12 bit)" 2014-04-08 22:19:38 -07:00
Dmitry Kovalev
5db5154029 Applying q_trans[] inside set_encoder_config().
Change-Id: Ib64edeb58b3e25488fb85bbe85c9decb15b4d0a1
2014-04-08 19:43:08 -07:00
Dmitry Kovalev
191dfa8dc7 Cleaning up get_sby_perpixel_{, diff_}variance().
Change-Id: Icbfeb04647d654253866d290abd4775a877b4f61
2014-04-08 19:00:12 -07:00
Tom Finegan
f600b50a6e Fix avx builds on macosx with clang 5.0.
The macosx release of clang v5.0 identifies itself as:
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)

This version of clang uses the older _mm_broadcastsi128_si256, like
v3.3, as given away in the LLVM svn version above.

Change-Id: I4d6d59d5454efd57d2ae9e75f5eb7486af7cbd0c
2014-04-08 18:56:03 -07:00
Dmitry Kovalev
4b1c4420e7 Removing redundant assignments.
Change-Id: I3ced24f2c3b9cc483278c0f0d60512e7d2efa4f4
2014-04-08 18:52:25 -07:00
Dmitry Kovalev
c27bdb9bc1 Merge "Cleaning up encode_frame_internal()." 2014-04-08 18:23:15 -07:00
Dmitry Kovalev
755433927c Merge "Cleaning up vp9_firstpass.c" 2014-04-08 18:22:34 -07:00
Dmitry Kovalev
c800e3c816 Merge "Adding vp9_ssim.h file." 2014-04-08 18:19:21 -07:00
Frank Galligan
9893fb9859 Merge "Fix decoder resolution change with tiles" 2014-04-08 17:13:33 -07:00
Yunqing Wang
4e66293fcb Use source frame difference to make partition decision
Calculate the difference variance between last source frame and
current source frame. The variance is calculated at 16x16 block
level. The variances are compared to several thresholds to decide
final partition sizes.

An adaptive strategy is implemented to decide using
SOURCE_VAR_BASED_PARTITION or FIXED_PARTITION based on motions
in the video. The switching test is done once every
search_type_check_frequency frames.

The selection of source_var_thresh needs to be investigated
further later.

RTC set Borg test showed 0.424% overall psnr gain, and 0.357%
ssim gain. For clips with large enough static area, the
encoding speedup is around 2% to 15%.

Change-Id: Id7d268f1d8cbca7fb8026aa4a53b3c77459dc156
2014-04-08 17:03:02 -07:00
Jingning Han
06ec873f2c Select prediction filter type in non-RD mode decision
This commit allows the non-RD mode decision flow to  select
prediction filter type in NEWMV mode. It provides 8.14% compression
performance gains in both settings of AQ=0 and 3. The current speed
impact is about 5% to 10% slower.

Change-Id: Id66ecebf77abd8f90fb3f6a066c0e8dfb4bf1c42
2014-04-08 16:47:42 -07:00
Deb Mukherjee
d35df2d8ea High-level hooks for Profile 2 (10/12 bit)
Adds some high-level hooks for profile 2 before further
progress on the implementation.

According to the definitiion in this patch:
1. Profile 2 only supports 10 or 12 bit color but not 8
2. Profile 2 supports all color sampling modes: 444, 422 and 420,
and alpha plane.
3. Profile 3 is currently undefined.

Please consider the definition carefully and suggest modifications
to the definition as needed.

Change-Id: I5b284fc679e54ac5aee171af72fa7994cfd28995
2014-04-08 16:18:34 -07:00
Dmitry Kovalev
129cb23c14 Adding vp9_ssim.h file.
Change-Id: Ib3b3864a6018c62ac1ea18e30795af74464596cd
2014-04-08 16:08:39 -07:00
Dmitry Kovalev
231ef057c4 Cleaning up vp9_firstpass.c
Change-Id: Ie5723690f7c0bfa29a7ccef5da0c6c6326600ee6
2014-04-08 15:21:30 -07:00
Frank Galligan
6ae58931d6 Fix decoder resolution change with tiles
There was a bug with the decoder that if you started the decoder
with more threads than the first frame had tile columns. Afterwards
tried to decode a frame with more tile columns than the first frame,
the decoder would hang. E.g. run vpxdec --threads=4. The first frame
had two tile columns, then the next key frame had 4 tile columns, the
decoder would hang. If you started with 4 tiles and switched to 2
tiles the decoder would be fine. The issue is that the worker the thread
loop is using is stale.

I added a test vector "vp90-2-14-resize-848x480-1280x720.webm" that
exhibited the bug.

Change-Id: I7bdd47241a52ac0fe1c693a609bc779257e94229
2014-04-08 15:16:11 -07:00
Dmitry Kovalev
e8e380f994 Merge "Cleaning up vp9_ratectrl.c file." 2014-04-08 15:06:29 -07:00
Dmitry Kovalev
7e7c95a291 Merge "Cleaning up vp9_diamond_search_sad_c() function." 2014-04-08 13:47:41 -07:00
Dmitry Kovalev
e9fb970af1 Merge "Moving init_rate_control() to vp9_ratectrl.{c, h}." 2014-04-08 12:45:49 -07:00