Commit Graph

3307 Commits

Author SHA1 Message Date
Jim Bankoski
7d76cc36df Merge "vp9_write_bit_buffer.h header statics converted to globals" 2014-03-24 14:18:24 -07:00
Jim Bankoski
2587ce0f44 Merge "vp9_variance.h header static version converted to global" 2014-03-24 14:18:07 -07:00
Dmitry Kovalev
65259f2110 Merge "Adding init_rate_control() function + cleanup." 2014-03-24 14:17:23 -07:00
Alex Converse
5182a35004 Don't subpartion inactive area in rd_use_partition.
Change-Id: I50db8d3c99eea39e46cc5876cb1f49513c084073
2014-03-24 12:54:30 -07:00
Alex Converse
f16f507c76 Deduplicate and rename mode info step.
Change-Id: Ie624a119ce8e0891f4ca396040d679e22ef8ce27
2014-03-24 12:54:30 -07:00
Dmitry Kovalev
5b8c834c1a Initialization code cleanup.
Change-Id: I47a8b4bf9a6cc0063d1a6785eaaad641d0659e24
2014-03-24 12:21:22 -07:00
Dmitry Kovalev
6bfcb269a5 Cleaning up vp9_aq_cyclicrefresh.{c, h}.
Change-Id: I288e5ffade508fc3c803986d47ccf06df8d784dd
2014-03-24 12:03:44 -07:00
Dmitry Kovalev
20a40bd0e8 Moving setup_{key, inter}_frame() to vp9_onyx_if.c.
Change-Id: I044e393438c7b58a6393e20efa38fd03d745ad33
2014-03-24 11:27:08 -07:00
Jim Bankoski
2128f714aa Merge "refactor reset_skip_txfm_size and elimate a lot of code" 2014-03-24 11:08:27 -07:00
Jim Bankoski
9a736593ac Merge "vp9_onyx_int.h convert header statics to inline" 2014-03-24 11:07:53 -07:00
Marco Paniconi
d13820b949 Merge "Fix to a static warning." 2014-03-24 10:54:52 -07:00
Dmitry Kovalev
6202406ebc Adding init_rate_control() function + cleanup.
Change-Id: I49b0937a8dd3520f20435a4817a408a094ab1679
2014-03-24 10:54:22 -07:00
Yunqing Wang
b458bb7c20 Merge "AVX2 SAD Optimization:" 2014-03-24 10:52:32 -07:00
Jim Bankoski
423590aa63 vp9_write_bit_buffer.h header statics converted to globals
Change-Id: I12c29a630da1fbc5508f11b61d182f9b527b3a35
2014-03-24 09:56:06 -07:00
Jim Bankoski
1a8a37ceda vp9_variance.h header static version converted to global
Change-Id: I8d02cdb5e7fef02b8c95413dfd239fa51a8c7777
2014-03-24 09:55:58 -07:00
Marco Paniconi
5510e37930 Fix to a static warning.
Change-Id: I398decf319c8f4d1b3abe1f276e009840e61b684
2014-03-24 09:32:10 -07:00
Jim Bankoski
5f0e5d628a vp9_onyx_int.h convert header statics to inline
Change-Id: I7872b726511887494107466a946e2b34e3d74045
2014-03-24 09:26:20 -07:00
Jim Bankoski
f7188e5aea refactor reset_skip_txfm_size and elimate a lot of code
Change-Id: Id70bd0ff8836c28d9c8653e018e071ca9fb06610
2014-03-24 08:54:49 -07:00
Jim Bankoski
35af423e8e vp9_block.h static reconverted to inline
Change-Id: I0e7d2815839d8a64250116a5486570d03659a4c0
2014-03-24 06:30:39 -07:00
Dmitry Kovalev
9895c9d4dd Merge "Removing redundant {above, left}_seg_context manipulation code." 2014-03-22 22:31:48 -07:00
Dmitry Kovalev
31e1c2e0a7 Merge "Removing output_partition from vp9." 2014-03-22 22:31:38 -07:00
Jingning Han
5950a69213 Merge "Reformat non-RD coding flow" 2014-03-21 21:43:02 -07:00
Dmitry Kovalev
355b8baf55 Merge "Convert use_fast_lpf_pick to an enum." 2014-03-21 21:19:31 -07:00
Dmitry Kovalev
e85bff2578 Merge "Cleaning up vp9_svc_layercontext.c" 2014-03-21 18:33:20 -07:00
Jingning Han
89cc421e89 Reformat non-RD coding flow
This commit reformats non-RD coding flow layout to allow mode
decision with fixed and variable block sizes.

Change-Id: I2cdd3bb9f26c499ee4a9849004fd925cdd195d09
2014-03-21 16:41:55 -07:00
Dmitry Kovalev
016bc2e744 Removing output_partition from vp9.
Change-Id: I5e0c558b86cf300722ab34fa45ab4ad7c81bd4df
2014-03-21 16:10:51 -07:00
Dmitry Kovalev
6e9ca1ecef Adding get_buf_from_mv() function.
Change-Id: I21aff45546778b8393e2edf2d810448dec1f4cdb
2014-03-21 15:57:31 -07:00
Marco Paniconi
03a9e5edb6 Rename the aq_mode files.
Change-Id: Id76a628495c822e23825b66a7589b4a3279680e2
2014-03-21 15:20:59 -07:00
Alex Converse
bbfbbbf672 Convert use_fast_lpf_pick to an enum.
Change-Id: I06e17b489dea74dedea356c73ef72dc5ffad3a30
2014-03-21 14:59:26 -07:00
Dmitry Kovalev
e0c212646c Merge "Tiny vp9_picklpf.c cleanup." 2014-03-21 14:03:49 -07:00
Dmitry Kovalev
2df69fefc9 Cleaning up vp9_svc_layercontext.c
Change-Id: I7c94b02f621ccc1a738b0d52edf60e9012cfc014
2014-03-21 13:56:15 -07:00
levytamar82
0fa8b668c1 AVX2 SAD Optimization:
2 functions were optimized for avx2 by using full 256 bit register
In order to handle 32 elements in parallel instead of only 16 in parallel:
1. vp9_sad32x32x4d
2. vp9_sad64x64x4d

The function level gain is 66% and the user level gain is ~1%.

Change-Id: I4efbb3bc7d8bc03b64b6c98f5cd5c4a9dd3212cb
2014-03-21 13:53:32 -07:00
Yunqing Wang
3967435f65 Merge "Add prediction mode skipping in non-rd situation" 2014-03-21 13:40:27 -07:00
Dmitry Kovalev
b3afae3a10 Merge "Cleaning up vp9_mcomp.c." 2014-03-21 13:23:18 -07:00
Dmitry Kovalev
6b32e5f04a Using local variable for token_cache.
We use local variable for token_cache in the decoder.

Change-Id: I032763fa7894313cffe73e3f14863ae1d0527665
2014-03-21 12:14:05 -07:00
Yaowu Xu
bcd102c523 Merge "Fix bad speed settings interaction." 2014-03-21 12:13:44 -07:00
Dmitry Kovalev
4cb37bff96 Removing redundant {above, left}_seg_context manipulation code.
Change-Id: Ib3c1746e61220c629cbd971b2458aa686b5c9e36
2014-03-21 12:12:55 -07:00
Dmitry Kovalev
a57de9da03 Merge "Reusing {above, left}_seg_context vars in both encoder and decoder." 2014-03-21 12:02:42 -07:00
Dmitry Kovalev
50bbd8a583 Tiny vp9_picklpf.c cleanup.
Change-Id: I1804c3629c3df2b67438e87196ab35fafaddaa24
2014-03-21 12:00:26 -07:00
Yaowu Xu
d070aa5de0 Merge "changed to use correct pred_mv" 2014-03-21 11:13:48 -07:00
Yaowu Xu
2d70e16595 Merge "Fix a valgrind error" 2014-03-21 11:13:43 -07:00
Yaowu Xu
0e53d52088 changed to use correct pred_mv
The third pred_mv is stored in x->pred_mv[ref_frame]. This commit make
sure the correct mv is read.

Change-Id: Ibed24daf36703a63f0394c87b2381ee1d2eb7910
2014-03-21 09:16:06 -07:00
Yunqing Wang
49b2330d8b Add prediction mode skipping in non-rd situation
In non-rd pick_mode code, added mode skipping according to
thresholds. Used rd thresholds now, but we can modified them
later for real-time case.

RTC set borg test showed a 0.095% PSNR gain. For different rtc
clips, the real-time(speed 7) encoder speedup is 2% - 10%.

Change-Id: Ic72535c96b891092c662453be32d3168f7e34dcc
2014-03-21 09:15:36 -07:00
Yaowu Xu
46c71e5eba Merge "Remove duplicate declaration" 2014-03-21 08:44:04 -07:00
Yaowu Xu
e993fb5e24 Fix a valgrind error
Valgrind was complaining uninitialzed values are being used.

Change-Id: Ia9eb619f4e67d1fb7af1057d50304f15adc02aab
2014-03-21 08:36:40 -07:00
Paul Wilkins
2e05341ab4 Fix bad speed settings interaction.
The flag x->skip_recode interacts badly with
the cpi->sf.use_nonrd_pick_mode and
cpi->sf.skip_encode_sb speed settings.

Restricting the use of the skip_decode flag when
these other speed choices are in use helps quality
for speeds 3 and 4 by a large amount with only a
small impact on speed.

Average improvmentes for 2 pass speed 4:
Derf +8.8%
Yt + 10.53%
Std-Hd +6.95%
yt-hd + 22.95%

Change-Id: I8010876d8012042a11077c92e69d813c3dfa58eb
2014-03-21 10:10:50 +00:00
Marco Paniconi
1231638d33 Merge "Some code cleanup for cyclic refresh." 2014-03-20 21:15:40 -07:00
Yaowu Xu
98ed74d942 Change the min/max q validation in lossless mode
This commit changed how q is validated in lossless mode. With this
commit, when --lossless=1 is specificed at commandline, --min-q and
--max-q are now ignored. This is to make the option non-ambiguious.

Change-Id: I33e85690460537509d33be75d6a3597be4affc09
2014-03-20 19:22:27 -07:00
Yaowu Xu
0de216a995 Use local vairable in rd_auto_partition_range()
In addition to a few cleanups.

Change-Id: Ice5938ef494513921a47e7c64ba9928f2202e24e
2014-03-20 19:22:26 -07:00
Marco Paniconi
21be5ca042 Some code cleanup for cyclic refresh.
Change-Id: I0e4e2462ee27640f9bf4091431241ede6fc97267
2014-03-20 16:44:31 -07:00
Dmitry Kovalev
7ad40117f1 Reusing {above, left}_seg_context vars in both encoder and decoder.
Change-Id: Id1fa36c92cb007b73a450cc8552e810cedad38b9
2014-03-20 16:15:57 -07:00
Minghai Shang
03d75182f7 Merge "[svc] Finalize spatial svc first pass rate control" 2014-03-20 15:12:14 -07:00
Yunqing Wang
cf07d3e332 Remove unused mode_sad
Removed mode_sad.

Change-Id: I230b42ac9b617ae2c375e297057aa0756bd355fe
2014-03-20 09:28:16 -07:00
Jingning Han
b64d58c773 Merge "Enable variable block size test in non-RD mode decision" 2014-03-19 18:54:42 -07:00
Dmitry Kovalev
4c0cede2bc Merge "Cleaning up vp9_onyx_if.c and vp9_onyx_int.h." 2014-03-19 18:36:09 -07:00
Jingning Han
60f9ebc3f1 Enable variable block size test in non-RD mode decision
This is an initial attempt to allow variable block size partition
in non-RD coding flow. It tests 8x8, 16x16 and 32x32 block size per
64x64 block, all using non-RD mode decision and the associated rate
distortion costs from modeling, then selects the best block size to
encode the entire 64x64 block. Such operations are triggered every
other 3 frames. The blocks of intermediate frames will reuse the
collocated block's partition type.

It improves the compression performance by 13.2%. Note that the gains
are not evenly distributed. For many hard clips, the compression
performance is improved by 20% to 28%. Local speed test shows that
it will also increase runtime by 50%, as compared to speed -7. It is
now enabled in speed -6 setting.

Change-Id: Ib4fb8659d21621c9075b3c369ddaa9ecb0a4b204
2014-03-19 16:10:29 -07:00
Dmitry Kovalev
c9ec26f1d8 Moving common code into vp9_update_mv_count().
Change-Id: I512482853bdf2695fbdf1c705a2ada354ccf76cf
2014-03-19 14:26:11 -07:00
Yaowu Xu
7ef16efca1 Remove duplicate declaration
Change-Id: Ic8e52a89e0df816c38cd8ff1b7c53862b9a6dff2
2014-03-19 12:23:32 -07:00
Jingning Han
4d903f47b6 Merge "Fix the use of uninitialized skip flag" 2014-03-19 11:21:41 -07:00
Dmitry Kovalev
981c5f2e03 Merge "Rearranging and removing unused defines." 2014-03-19 11:18:47 -07:00
Minghai Shang
d205335060 [svc] Finalize spatial svc first pass rate control
1. Save stats for each spatial layer
      2. Add frame buffer management for svc first pass rc
      3. Set default spatial layer to 1
      4. Flush encoder at the end of stream in test app
This only supports spatial svc.
Change-Id: Ia89cfa87bb6394e6c0405b921d86c426d0a0c9ae
2014-03-19 11:06:20 -07:00
Yaowu Xu
39f95de83d Merge "Removed several unused functions." 2014-03-19 09:04:44 -07:00
Yaowu Xu
9aa88c476b Merge "Remove an unused function" 2014-03-19 09:04:35 -07:00
Jingning Han
98fd11c567 Fix the use of uninitialized skip flag
The use of uninitialized skip flag will trigger inconsistency in
coding statistics, when alternate RD and non-RD coding modes are
enabled. This commit fixes this issue and removes unnecessary if
statements from update_state_rt.

Change-Id: I7d549dcb0e3ef48b999e5bbc78174ba84502cfcf
2014-03-18 15:03:45 -07:00
Marco Paniconi
d1d2ef5166 Merge "In-frame q adjustment for cyclic background refresh." 2014-03-18 14:12:48 -07:00
Dmitry Kovalev
d3df2086c9 Merge "Cleaning up calc_active_worst_quality_one_pass_vbr()." 2014-03-18 13:10:10 -07:00
Dmitry Kovalev
8dfbda6d4e Cleaning up vp9_onyx_if.c and vp9_onyx_int.h.
Change-Id: I5136c45d3f5f435005a88d04652addcd835f4bfe
2014-03-18 11:49:23 -07:00
Dmitry Kovalev
66bf94965e Rearranging and removing unused defines.
Change-Id: I03049f89565ce19a297e65e2d53db127dc6f77d9
2014-03-18 11:20:06 -07:00
Marco Paniconi
6b83884ba9 In-frame q adjustment for cyclic background refresh.
Activated using aq_mode=3.

Change-Id: Ied628b9e7bd0e88b0c75790276bca75b19eb5c07
2014-03-18 10:59:21 -07:00
Dmitry Kovalev
645cb98e90 Cleaning up calc_active_worst_quality_one_pass_vbr().
Change-Id: Ibfccee5e35c235c02843e1c1fbd3c39034619cf5
2014-03-18 10:41:22 -07:00
Jingning Han
5e33fd200c Merge "Add bit-stream write flag to nonrd_use_partition" 2014-03-17 14:17:58 -07:00
Dmitry Kovalev
40a4a3dd89 Merge "Cleaning up enums in vp9_onyx_int.h" 2014-03-17 14:13:56 -07:00
Dmitry Kovalev
b93deb6251 Merge "Moving defines from vp9_onyx_int.h to suitable *.c files." 2014-03-17 14:12:13 -07:00
Yaowu Xu
5511968f21 Removed several unused functions.
Change-Id: Ib9e27298c575afc02a98b593bc6ad60762064d9b
2014-03-17 14:09:29 -07:00
Yunqing Wang
c8e84dd2cc Merge "Calculate rate_mv after sub-pixel search in non-rd mode" 2014-03-17 14:04:47 -07:00
Yaowu Xu
aec5e1ed65 Remove an unused function
Change-Id: Iaaea882e59dfec38c0a9a24deaf8525a0fb62515
2014-03-17 14:03:14 -07:00
Dmitry Kovalev
7bc241632c Cleaning up enums in vp9_onyx_int.h
Change-Id: Ib5cbf77052bc03495ae135b3cdcd39c2452c2b34
2014-03-17 12:56:21 -07:00
Dmitry Kovalev
8228ead7df Moving defines from vp9_onyx_int.h to suitable *.c files.
Change-Id: I0d39bdbb8166ee44561f1008d1a2e76e70b36f30
2014-03-17 12:54:51 -07:00
Dmitry Kovalev
cac2cf886c Cleaning up vp9_mcomp.c.
Change-Id: I24a3f0f215d04fb8888c303642dd5663cc593317
2014-03-17 11:41:20 -07:00
Yaowu Xu
1ced9764bb Merge "Remove unused functions" 2014-03-17 11:25:39 -07:00
Dmitry Kovalev
65dc919103 Merge "Cleaning up vp9_diamond_search_sad_c & vp9_diamond_search_sadx4." 2014-03-17 11:23:49 -07:00
Jingning Han
6affef728b Add bit-stream write flag to nonrd_use_partition
This is for the purpose to test variable partition choices for the
same 64x64 block.

Change-Id: I0fab7351a62e7d3dfccd667e908bccb996ee677e
2014-03-14 17:13:02 -07:00
Yunqing Wang
587cca4505 Calculate rate_mv after sub-pixel search in non-rd mode
Modified the non-rd rate_mv calculation and moved it after sub-pixel
motion search is done.

Change-Id: I6a5cbd3d67ff0a86b3693e25ecf1fd77b16d708c
2014-03-14 15:55:02 -07:00
Yaowu Xu
04b7f14ad5 Remove unused functions
Change-Id: Iec885af58c95e65814fcb6ab528ce4e0874eb573
2014-03-14 15:47:41 -07:00
Jingning Han
5aa56f7c48 Merge "Properly reset the block coding skip flag array in non-RD mode" 2014-03-14 14:31:25 -07:00
Yaowu Xu
e6058ea061 Merge "change to save rdmult value correctly" 2014-03-14 13:27:32 -07:00
Jingning Han
a2e711ce38 Properly reset the block coding skip flag array in non-RD mode
The block coding skip flags are assigned in the normal RD mode
decision loop. They are then used in the final encoding stage.
In the non-RD mode decision, the forward transform and quantization
stages are replaced by modeling based on SSE and variance of
prediction residues. This commit applies reset to this array in
the non-RD coding mode.

Change-Id: I66584669b035e9c8ac23e95047849ff277472742
2014-03-14 12:14:06 -07:00
Yaowu Xu
28f947359d Merge "Use of inline instead of INLINE." 2014-03-14 11:48:09 -07:00
Yaowu Xu
2a03d0d22b change to save rdmult value correctly
This commit moves the position where rdmult is saved to make sure it
is the correct value. Prior, an uninitialized value may be saved and
restored.

This addresses issue:
https://code.google.com/p/webm/issues/detail?id=733

Change-Id: I436407f289169bc63da3c5a6bf609bed16cb71b5
2014-03-14 11:18:27 -07:00
Jingning Han
5806e70ee3 Merge "Remove deprecated function nonrd_use_fixed_partition" 2014-03-14 09:06:11 -07:00
Jingning Han
0428f349d4 Merge "Remove unused comment" 2014-03-14 09:06:03 -07:00
Jingning Han
6be7120ecf Merge "Refactor the non-RD partition decision process" 2014-03-14 09:05:54 -07:00
Jingning Han
47460af1aa Merge "Unify non-RD partition use cases" 2014-03-14 09:05:41 -07:00
Jingning Han
a66b68c7b2 Merge "Return rate and distortion cost values from non-RD mode decision" 2014-03-14 09:05:32 -07:00
Paul Wilkins
0fa768704b Use of inline instead of INLINE.
This causes a build failure in VS 2008.

Change-Id: I03b0c0c006589b56d92a238d7b794711eb62575e
2014-03-14 11:36:06 +00:00
Dmitry Kovalev
7c6337ba9e Merge "Adding vp9_swap_mi_and_prev_mi() function." 2014-03-13 17:47:27 -07:00
Jingning Han
9efe0b25c5 Remove deprecated function nonrd_use_fixed_partition
This function was subsumed by nonrd_use_partition, hence removed.

Change-Id: Id36757bc600ce6cf6ca03ad5df80268c4786d386
2014-03-13 16:15:14 -07:00
Jingning Han
73df20e97d Remove unused comment
Change-Id: I12ce22c036b12073a45b762d4dd38f6ec4960e56
2014-03-13 16:04:16 -07:00
Jingning Han
0d39429914 Refactor the non-RD partition decision process
Combine the common variables and functions used by different
speed features.

Change-Id: Ifd1fa86200edbcc9e50b3fc3b1ba8a275bc3c17f
2014-03-13 15:53:40 -07:00
Jingning Han
3d6286c73d Unify non-RD partition use cases
This commit unifies the non-RD partition use cases for both fixed
and variable block sizes. Deprecate and remove the separate function
for fixed partition type only.

Change-Id: I2b6cb945e90c1566f985adcebc4d0757480a8004
2014-03-13 15:41:15 -07:00
Marco Paniconi
07fbd70e38 Merge "Move svc layer_context to separate file." 2014-03-13 14:49:15 -07:00
Marco Paniconi
78664081d1 Move svc layer_context to separate file.
Change-Id: Ie47c139d48cb18409d71f98f6a5b9eeb9f9437a9
2014-03-13 14:39:45 -07:00
Dmitry Kovalev
e65c564c78 Adding vp9_swap_mi_and_prev_mi() function.
Change-Id: I18b3939f0b51085cdd25c9182c3a9c7536ca7e3e
2014-03-13 13:55:33 -07:00
Dmitry Kovalev
069e2458a6 Merge "Removing unused select_cq_level() function." 2014-03-13 13:45:45 -07:00
Jingning Han
ca0625ff31 Return rate and distortion cost values from non-RD mode decision
This commit allows the non-RD mode decision process to return the
rate and distortion costs associated with the selected mode.

Change-Id: Ibe0f67d323f65839fd9cb0a726c1219bf7b55da9
2014-03-13 12:52:59 -07:00
Jingning Han
1ff4a5b3a2 Merge "Tune rate-distortion modeling for non-RD mode decision" 2014-03-13 09:14:13 -07:00
Jingning Han
b25e4061e8 Merge "Explicitly assign interp_kernel value in non-RD coding mode" 2014-03-13 09:14:00 -07:00
Deb Mukherjee
954dbb282b Merge "Preliminary code for variance based paritioning" 2014-03-13 04:09:13 -07:00
Dmitry Kovalev
06b7b575c1 Moving declaration of vp9_encode_frame() to vp9_encodeframe.h.
Change-Id: I14adfd32622152abdc22c16429db38f6724628a4
2014-03-12 17:29:37 -07:00
Deb Mukherjee
e39ecfaa98 Preliminary code for variance based paritioning
Brings back most of Jim's previous patch for choosing
partitioning based on variance while making it compatible
with the current state of the code. Also adds a
nonrd_use_partition() function to recursively encode  for any
arbitrary sb_type decisions within a 64x64 block; and
includes some refactoring.

Currently, when the VAR_BASED_PARTITIONING mode is turned on
for speed 7, there is a 10+% speed-up observed.

Experiments/improvements with this new partitioning method
will be conducted subsequently.

Change-Id: Ie6f43bfbde30583e941f450bf07c3b48828c9571
2014-03-12 15:06:20 -07:00
Dmitry Kovalev
af9ca7d5be Fixing typo in cal_nmvjointsadcost().
Change-Id: I7be6675c68db330d69c541bd9341a7b8e91351d9
2014-03-12 14:44:14 -07:00
Jingning Han
7686c950b5 Tune rate-distortion modeling for non-RD mode decision
This commit adjusts the rate-distortion modeling for non-RD mode
decision. It puts more weights on energy from AC coefficients when
estimating the cost. The coding performance for rtc testset is
improved by 0.72%.

Change-Id: Ifa6ff11311a513ec2b10586589e82a9a21f6c61c
2014-03-12 14:31:59 -07:00
Jingning Han
4e9b0d6cef Explicitly assign interp_kernel value in non-RD coding mode
Assign interp_kernel value in MACROBLOCKD. This will be used to
select prediction filter coefficient sets and generate motion
compensated prediction.

Change-Id: I28c8dfb2dae6566f6939bb328aca5875c94bee65
2014-03-12 14:30:54 -07:00
Dmitry Kovalev
fec0d4bc7d Merge "Removing last_mi from MACROBLOCKD struct." 2014-03-12 12:19:43 -07:00
Dmitry Kovalev
c1486f0efa Merge "Removing unused last_skip_{probs_q, false_probs} arrays." 2014-03-12 10:33:36 -07:00
Jim Bankoski
0ce2d6577c Merge "cut down calls to get_block_context" 2014-03-12 10:30:20 -07:00
Dmitry Kovalev
4435c1e240 Merge "Cleaning up vp9_firstpass.c." 2014-03-12 00:21:06 -07:00
Dmitry Kovalev
189b4315ca Removing unused last_skip_{probs_q, false_probs} arrays.
Change-Id: Id84a43583af57889e87462ce8b76e5a552f44826
2014-03-12 00:20:25 -07:00
Yaowu Xu
1a935e69ea Merge "Increase redo_frequency to 4 and cleanups" 2014-03-11 20:13:35 -07:00
Yaowu Xu
6f5a1e033f Increase redo_frequency to 4 and cleanups
Clean-ups include
a. redundant code in rt -5 speed feature settings
b. code that guarantees square block availability in
rd_auto_partition_range()

Change-Id: Ic7b04d45b6dc15c461e0edbbb4e78aec20348291
2014-03-11 17:33:24 -07:00
Alex Converse
59853f8fdf Fix some active_map corner cases.
These were discovered by ActiveMapTest.

Change-Id: Ifcd305ae2d954b6ec7edcaed0f80baf18c769e01
2014-03-11 16:39:42 -07:00
Alex Converse
75272c97cb Merge "Add a conservative RD based active map in vp9." 2014-03-11 13:39:33 -07:00
Jim Bankoski
8bdc1f25e5 cut down calls to get_block_context
Change-Id: I894977e6655630823145c60c8258551bd3c8c76b
2014-03-11 11:18:43 -07:00
Dmitry Kovalev
1f08824d6d Merge "Using enums instead of integers." 2014-03-10 20:50:58 -07:00
Dmitry Kovalev
e3e1b49331 Merge "Moving static_scene_max_gf_interval to RATE_CONTROL struct." 2014-03-10 20:50:09 -07:00
Dmitry Kovalev
a0ed5541e6 Merge "Using MAX_REF_FRAMES constant instead of number 4." 2014-03-10 20:49:31 -07:00
Jingning Han
486db59cb1 Merge "Fix use of uninitialized bsize in non-RD mode" 2014-03-10 19:03:09 -07:00
Dmitry Kovalev
2b9c581393 Using MAX_REF_FRAMES constant instead of number 4.
Change-Id: I6e2fec2814fd366a1ce1321208d3b0e8aa0d98b0
2014-03-10 18:50:28 -07:00
Dmitry Kovalev
b2c34d5539 Using enums instead of integers.
Change-Id: Ic0d74ab3a4c0c854fbcf59d9df5212c218bc68f9
2014-03-10 18:33:08 -07:00
Dmitry Kovalev
c2d7f5e3c5 Cleaning up vp9_firstpass.c.
Change-Id: Ie68eefddf9b0120021668cf21dc2c6fc837c50ac
2014-03-10 18:03:05 -07:00
Dmitry Kovalev
d6b8709eb0 Moving static_scene_max_gf_interval to RATE_CONTROL struct.
Change-Id: Id63e114a8f0615dbafd6a816019cdebffb983d2c
2014-03-10 17:29:15 -07:00
Dmitry Kovalev
d548de69cb Removing unused select_cq_level() function.
Change-Id: I612a5d2b3ab1f9202d5b0421a82a80849603c40d
2014-03-10 16:24:38 -07:00
Dmitry Kovalev
ff935ff781 Removing last_mi from MACROBLOCKD struct.
Change-Id: Ied12b39c55667b26fd3bf90eb331e601c53a10f6
2014-03-10 16:02:03 -07:00
Jingning Han
29af074fb5 Fix use of uninitialized bsize in non-RD mode
The block size used for non-RD mode decision in FIXED_PARTITION
setting was uninitialized. This commit fixes it by setting block
size to be BLOCK_16X16.

Change-Id: Ief04c9f1ab668de69297d9ab3dc15e2fa0bc4e95
2014-03-10 15:50:13 -07:00
Alex Converse
29a487c77f Add a conservative RD based active map in vp9.
Change-Id: I47b3c38aadfd8f3ea08515a18a5948aa1375c650
2014-03-10 15:48:43 -07:00
Dmitry Kovalev
bbfa9f6959 Cleaning up vp9_rdopt.c.
Change-Id: I8f06d03689ee90a19c9067840b24748bfe2d741f
2014-03-10 15:21:30 -07:00
Dmitry Kovalev
29beeff11d Merge "Cleaning up select_tx_mode() function." 2014-03-10 12:29:28 -07:00
Dmitry Kovalev
cb13d0f3e4 Merge "Cleaning up rd_pick_sb_modes() function." 2014-03-10 12:07:26 -07:00
Dmitry Kovalev
d8c9288465 Cleaning up select_tx_mode() function.
Change-Id: Ib105db0f3deeedf6a8402a292db3df1d77a3d7c1
2014-03-10 11:35:40 -07:00
Dmitry Kovalev
ab1f905438 Cleaning up rd_pick_sb_modes() function.
Changing aq_mode type from int to AQ_MODE enum.

Change-Id: Ib7b5f0b70d02ded58a31dfade9c05a347f73beca
2014-03-10 10:58:32 -07:00
Dmitry Kovalev
f8f8c6d44c Adding reusable get_y_mode_prob() function.
Change-Id: Iebd182d7aeebc0f8964b6fd35057449bb25b00c1
2014-03-10 10:50:16 -07:00
Dmitry Kovalev
924dc81e74 Merge "General cleanup in vp9_encodeframe.c." 2014-03-10 10:43:47 -07:00
Dmitry Kovalev
99ef2f75e9 Merge "Cleaning up optimize_b() function." 2014-03-10 10:40:44 -07:00
Deb Mukherjee
44a203f5cd Merge "Support for a fast diamond search" 2014-03-10 09:53:21 -07:00
Jim Bankoski
622f06eb59 Merge "vp9_reconinter.h static functions in header converted to global" 2014-03-10 07:36:05 -07:00
Dmitry Kovalev
eece45fe23 Merge "Cleaning up vp9_get_mvpred_var()." 2014-03-09 10:26:39 -07:00
Dmitry Kovalev
62e1d37eb4 Merge "Adding const to FIRSTPASS_STATS pointers." 2014-03-09 10:25:48 -07:00
Dmitry Kovalev
3facd6c392 Merge "Cleaning up pack_inter_mode_mvs() function." 2014-03-08 10:57:14 -08:00
Jingning Han
4712be97fe Merge "Skip mode check when mv has been tested" 2014-03-08 07:57:17 -08:00
Jingning Han
a58d0e85d7 Merge "Clearn up model_rd in non-RD coding mode" 2014-03-08 07:57:11 -08:00
Deb Mukherjee
bead2e8fb4 Support for a fast diamond search
Adds a fast diamond search which is about 5% faster than FAST_HEX
with only a 0.1% drop in psnr when turned on for both speeds 5 and 7.
This search is turned on for speed 7.

Change-Id: I497630aa88a5148926086bb3038e7975e5f4eb98
2014-03-07 17:15:09 -08:00
Dmitry Kovalev
ba4bcee616 Cleaning up pack_inter_mode_mvs() function.
Change-Id: Ia60352c7173b59f3f08920ba86096864d4e8250b
2014-03-07 16:00:23 -08:00
Jingning Han
d2059b0d2d Skip mode check when mv has been tested
This commit allows the non-RD mode decision to skip mode RD modelling
check, if the motion vector associated with the current mode is
same as that of NEARESTMV mode. This makes speed -7 about 2% faster.
Previous change that converts cost metric from SAD to model based RD
value makes the codec 6% slower at speed -7.

Change-Id: I30cfec5452f606a671b8432a2f7f0c94fbb49fc8
2014-03-07 14:06:20 -08:00
Dmitry Kovalev
72ba322060 Removing unused active_section global variable.
Change-Id: Ib8c41829a4b5a618b6bda24d9b7df2d491d0fca0
2014-03-07 14:05:51 -08:00
Dmitry Kovalev
51a0e9825b General cleanup in vp9_encodeframe.c.
Change-Id: I446fca8aa11a4d4fc2b23d4b32348b74d74d0202
2014-03-07 10:56:20 -08:00
Jingning Han
0250902475 Clearn up model_rd in non-RD coding mode
The rate-distortion model in non-RD coding mode is only applied to
luma component. This commit removed a few redundant addition steps.

Change-Id: Id8edc0a47c2dbef8deba43debe2c95db39454de3
2014-03-07 10:34:34 -08:00
Jingning Han
6849cde893 Merge "Use modeled rate distortion costs for non-RD mode" 2014-03-07 09:06:24 -08:00
Jingning Han
539c961ed4 Use modeled rate distortion costs for non-RD mode
This commit replaces SAD cost with modeled rate-distortion cost
for non-RD mode decision. It translates the prediction residual
SSE into estimate rate and reconstruction distorion costs, hence
capturing the quantization setting effect. The compression
performance of speed -7 for rtc set is improved by 14.79%.

Change-Id: Ifda014eb0501d13109fe7f92680bf1410b463632
2014-03-06 23:00:48 -08:00
Dmitry Kovalev
cca347ed4e Adding const to FIRSTPASS_STATS pointers.
Change-Id: Ia94d757de1d1b24609128cd40e68558078f50a38
2014-03-06 18:58:17 -08:00
Dmitry Kovalev
ee7d26d50c Cleaning up vp9_get_mvpred_var().
Change-Id: Ic535f0a1c2501c1af143237af3b2b51b4b4980f4
2014-03-06 16:27:15 -08:00
Dmitry Kovalev
a2d846cac4 Cleaning up vp9_diamond_search_sad_c & vp9_diamond_search_sadx4.
Change-Id: I4639cdc29d17ef13cabb774b455295454f1d02ae
2014-03-06 15:00:01 -08:00
Dmitry Kovalev
6e328037c7 Merge "Cleaning up labels2mode() function." 2014-03-06 13:15:32 -08:00
Dmitry Kovalev
b07ae88ec4 Cleaning up optimize_b() function.
Change-Id: Id4c5b73ad747a8851969e9daf5bac40b4b9beefc
2014-03-06 12:47:55 -08:00
Dmitry Kovalev
1b47977b7e Merge "Removing unused mv_ref_stats[] array." 2014-03-06 12:33:38 -08:00
Deb Mukherjee
b28727e693 Merge "Fixes static analysis issues" 2014-03-06 12:07:53 -08:00
Dmitry Kovalev
daf18d6d6c Cleaning up labels2mode() function.
Change-Id: I76e39f7c5545ba4e0cd537f530c574531356e94a
2014-03-06 11:43:53 -08:00
Deb Mukherjee
26fa8cad01 Fixes static analysis issues
Removes some unused variables and assignments

Change-Id: I228f43d658ce50237d65ce8dc8ab2ccf0a0b21ca
2014-03-06 11:07:06 -08:00
Dmitry Kovalev
3f1ab25812 Removing vp9_onyx.h and moving its content to the encoder.
Change-Id: I03451c88536bc498edddbe0cd9773ff79da085c2
2014-03-05 23:33:22 -08:00
Dmitry Kovalev
7a7db0f060 Merge "Combining mode_mv[] and second_mode_mv[]." 2014-03-05 22:29:56 -08:00
Dmitry Kovalev
eb63569d5e Merge "Cleaning up mode cost manipulations." 2014-03-05 22:28:05 -08:00
Dmitry Kovalev
bd1d7c9c81 Merge "Adding vp9_cost.{h, c} files." 2014-03-05 22:26:28 -08:00
Dmitry Kovalev
89c3da568f Merge "Inlining and removing vp9_set_mbmode_and_mvs()." 2014-03-05 21:45:48 -08:00
Dmitry Kovalev
191e2e8455 Merge "Replacing int_mv with MV in full_pixel_motion_search()." 2014-03-05 21:44:54 -08:00
Dmitry Kovalev
08a7d7e405 Merge "Renaming NMV_UPDATE_PROB to MV_UPDATE_PROB." 2014-03-05 21:39:09 -08:00
Yaowu Xu
4fd6ba9da0 Adjust some speed features for --rt (-5)
Change-Id: Ibabd8440ff5c9dd7f300f317e2c9d50e8e84aab9
2014-03-05 16:08:58 -08:00
Jingning Han
99cd4c7679 Merge "Fix set_mode_info settings" 2014-03-05 16:01:06 -08:00
Jingning Han
97ffad507a Merge "Remove repeated tx_mode_select calls" 2014-03-05 16:00:58 -08:00
Jingning Han
3dfa93b058 Merge "Move set_speed_feature out of frame encoding" 2014-03-05 16:00:50 -08:00
Yaowu Xu
bdb1e7e05f Merge "vp9_picklpf.c: remove unused functions and params" 2014-03-05 15:39:44 -08:00
Andrew Russell
e337322e63 Merge "improved speed of 4x4 sse2 fdct." 2014-03-05 14:35:44 -08:00
Dmitry Kovalev
c9f79ca85c Inlining and removing vp9_set_mbmode_and_mvs().
Change-Id: I9717ef611ef9c39b109b2358c9771bf7fae2dd50
2014-03-05 14:22:31 -08:00
Yaowu Xu
023d2a21aa vp9_picklpf.c: remove unused functions and params
Change-Id: Ib4d850227cef35694c663feb157765a2cbf84699
2014-03-05 14:07:36 -08:00
Dmitry Kovalev
413da97bb6 Merge "Cleaning up vp9_refining_search_sadx4()." 2014-03-05 13:57:23 -08:00
Dmitry Kovalev
627720fa81 Cleaning up mode cost manipulations.
Change-Id: If175d97990454b171b6abeddb76d142497484487
2014-03-05 12:29:44 -08:00
Dmitry Kovalev
021073fd5f Adding vp9_cost.{h, c} files.
Change-Id: If90c1bc822873156d4e38fca1938e4907f6c95f0
2014-03-05 11:57:57 -08:00
Alex Converse
e609ab46a1 Merge "Prune RT mode decisions for BLOCK_32x32 and up" 2014-03-05 11:57:04 -08:00
Dmitry Kovalev
a16f1a9bb4 Combining mode_mv[] and second_mode_mv[].
Change-Id: Ie5f69d39b49a4169cc731d4487e4668fb5af4b4f
2014-03-05 11:12:00 -08:00
Dmitry Kovalev
791751015f Merge "Removing VP9_PTR." 2014-03-05 10:57:10 -08:00
Dmitry Kovalev
0b6440ce02 Cleaning up vp9_refining_search_sadx4().
Change-Id: I3ed0a95645a66be069ce92a1fad8083a87d01001
2014-03-05 10:46:46 -08:00
Dmitry Kovalev
d31fc628a7 Renaming NMV_UPDATE_PROB to MV_UPDATE_PROB.
Change-Id: I7f3bcca103f0b1f6b3c064b61472543de9a8288a
2014-03-05 10:37:52 -08:00
Jingning Han
90a8dad162 Fix set_mode_info settings
Properly set intra mode information entries.

Change-Id: Ie3a8992e415dcdd9087a55993bbca06087a0107a
2014-03-05 09:13:36 -08:00
Jingning Han
2702e3c8cf Remove repeated tx_mode_select calls
The frame level transform size selection is done inside
encode_frame_internal().

Change-Id: Id7e5e417a3a3f88f875bf12b21bb8029bc6d0d82
2014-03-05 09:12:18 -08:00
Jingning Han
a57cff2132 Move set_speed_feature out of frame encoding
Set speed features before running frame encoding. This avoids
redundant RD threshold calculation in key frame coding.

Change-Id: If8e3cf2c02976baa59b310c1c23af9eea0c46e36
2014-03-04 18:49:56 -08:00
Alex Converse
bbc8c9d29a Prune RT mode decisions for BLOCK_32x32 and up
* Remove all non-DC intra modes for BLOCK_32x32 and up
* Remove all intra modes for blocks bigger than BLOCK_32x32
* Remove ZEROMV for BLOCK_32x32 and up
* Only consider NEARESTMV for blocks bigger than BLOCK_32x32

Change-Id: Ia18351a238213e2f072f9e481d622949346a245f
2014-03-04 09:48:31 -08:00
Marco Paniconi
02b8baf35e Avoid gf/altref boost in pick_q under svc cbr mode.
Change-Id: Ib719a9f74924718715592e0238bc391ae239d026
2014-03-03 19:11:02 -08:00
Dmitry Kovalev
91e5e5a680 Merge "Cleaning up vp9_init_dsmotion_compensation()." 2014-03-03 17:27:51 -08:00
Dmitry Kovalev
fe7b1d0a8d Removing VP9_PTR.
Change-Id: Ib49d8dbc67c590f22a1a70251ff607c9f38febd7
2014-03-03 16:50:16 -08:00
Deb Mukherjee
b80020d4db Refactoring motion search libs
The core motion estimation fucntions all return sad now consistently.
The only exception is vp9_full_pixel_diamond(), however the core diamond
and refining search routines called from vp9_full_pixel_diamond() also
return SAD. If variance of pred error + mv cost is desired it must be
calculated explicitly outside these functions. For very fast encoding,
hopefully this will eliminate some redundant computations.

Also suggests reimplementing FAST_HEX with the vp9_pattern_search
framework. It is not exactly the same as the existing FAST_HEX, but
performance is slightly better and speed is very similar. Enables
removing a lot of duplicate code.

Change-Id: I152736393438c25bdf7e96b37cbb8ce330f4f94a
2014-03-03 15:13:59 -08:00
Jim Bankoski
e5e9b05d68 vp9_reconinter.h static functions in header converted to global
Change-Id: I916944950deb22f4c2301d83a803b732bf3ecd77
2014-03-03 14:58:43 -08:00
Dmitry Kovalev
686b480ad1 Replacing int_mv with MV in full_pixel_motion_search().
Change-Id: I16dd4d4aaae8ce6a482da3c9d142f41fe9155e82
2014-03-03 14:43:06 -08:00
Andrew Russell
a46f5459c3 improved speed of 4x4 sse2 fdct.
* speed improvment of 30 percent achieved
* multiplies and adds remain the same
* non-arithmetic instructions minimized by hand, by:
   -expanding 2 pass loop
   -removing irrelivant "shuffles"
   -combining last two rounding steps
* further improvments may be possible

Change-Id: Idec2c3f52910c48e6a0e0f9aefed5cae31b0b8c0
2014-03-03 14:25:42 -08:00
Dmitry Kovalev
be647f7b83 Merge "Adding get_tx_type() instead of get_tx_type_{8x8, 16x16}." 2014-03-03 14:24:28 -08:00
Dmitry Kovalev
f084af5ca7 Merge "Adding consts and cleaning up vp9_rdopt." 2014-03-03 14:17:31 -08:00
Jim Bankoski
b247c14c07 Merge "cost_coefs approximation speed up" 2014-03-03 14:08:24 -08:00
Alex Converse
0873dc3ab4 Merge "Enforce intra_y_mode_mask for inter rd." 2014-03-03 12:55:25 -08:00
Alex Converse
9e99e10642 Merge "Refactor ZEROMV equivalence" 2014-03-03 12:30:22 -08:00
Dmitry Kovalev
46af01d719 Adding get_tx_type() instead of get_tx_type_{8x8, 16x16}.
Change-Id: I4a54b12e5229705222c5a101258b9d1f81e2948d
2014-03-03 12:20:51 -08:00
Dmitry Kovalev
c288367678 Adding consts and cleaning up vp9_rdopt.
Change-Id: I9423b543e1be414e5c9e10480b813f06e6b88f8a
2014-03-03 12:19:51 -08:00
Jim Bankoski
9c63e887e6 cost_coefs approximation speed up
This patch adds a new speed feature which doesn't do the rather
expensive entropy context lookup or save to the table,  while
doing costing.

The speed up on desktop36p.y4m is around 10% other clips much less.

On the RTC test set this was + 1% in overall datarate.

Change-Id: Ia5144bbf45270671e7be9c8e4055369909e2f738
2014-03-03 11:49:13 -08:00
Alex Converse
f466fc8bfa Refactor ZEROMV equivalence
This gets more accurate mode hit stats. It's also the first step to
handling ZEROMV not being allowed more intelligently.

Change-Id: I5de6734507b5177bf73e9ddbad923f218c39f3e4
2014-03-03 11:32:24 -08:00
Yunqing Wang
5b2190b2bf Reset search_method for non-rd pick mode
Reset FAST_HEX search_method, which was lost because of code merging.

Change-Id: Ic2b2cb9ec2f1751e96f7db0f9226310f605fcc83
2014-03-03 11:12:11 -08:00
Alex Converse
0fa1e7ee09 Enforce intra_y_mode_mask for inter rd.
intra_y_mode_mask is already enforced for the sub8x8 case.
intra_uv_mode_mask is already enforced for all sizes.

Change-Id: Ia9dd14701cb49873c2e8f24eb5f8b255eaf76a1f
2014-03-03 10:50:17 -08:00
Alex Converse
07c4d2252b Merge "Cleanup conditions in vp9_rd_pick_inter_mode_sb()." 2014-03-03 10:23:51 -08:00
Paul Wilkins
34ad6d00d2 Merge "Clear implied conversion to int64_t warning." 2014-03-03 09:28:12 -08:00
Yunqing Wang
d4648d93f4 Merge "AVX2 SubPixel AVG Variance Optimization" 2014-03-03 09:01:36 -08:00
Yaowu Xu
a9288e297f Merge "vp9_lookahead_push(): remove unused parameters" 2014-03-03 08:36:06 -08:00
Yaowu Xu
e2f663c37f Merge "vp9_mbgraph.c: remove unused parameters" 2014-03-03 08:24:49 -08:00
Yaowu Xu
386265fd2b Merge "temporal_filter_find_matching_mb_c(): remove a param" 2014-03-03 08:24:39 -08:00
Yaowu Xu
c703400bd4 Merge "vp9_prob_diff_update_savings_search_model(): remove params" 2014-03-03 08:24:30 -08:00
Paul Wilkins
74558bc582 Clear implied conversion to int64_t warning.
Clear warning caused by implied conversion from int32 to int64.

Change-Id: I473b37a54984cbfb22702eb3f712465881ff86e8
2014-03-03 15:41:21 +00:00
Yaowu Xu
5ee16cc075 Merge "vp9_firstpass.c: remove unused functions & params" 2014-03-03 06:53:35 -08:00
Dmitry Kovalev
9f17ff452b Merge "Sorting includes in vp9_firstpass.c." 2014-03-03 01:03:21 -08:00
Yaowu Xu
b791c6006b vp9_mbgraph.c: remove unused parameters
Change-Id: I5a01d0dccc9afc87e2adbb5ddc7d44379fe1f125
2014-03-02 20:48:54 -08:00
Yaowu Xu
c0205ebfb4 temporal_filter_find_matching_mb_c(): remove a param
There is one parameter that is never used, therefore is removed.

Change-Id: I595722e7c5731534c72831315359e4dce9c21763
2014-03-02 20:43:42 -08:00
Yaowu Xu
b9d28e715f vp9_prob_diff_update_savings_search_model(): remove params
Two paramemters are not in use, therefore are removed.

Change-Id: I41eb601b7b4bf2feedb13b3f240315656d8694f9
2014-03-02 20:36:32 -08:00
Yaowu Xu
dac3d0cebd vp9_lookahead_push(): remove unused parameters
Change-Id: Ia319bd924401677b5c30b0f46d1ab2be6a1f446e
2014-03-02 14:34:59 -08:00
Yaowu Xu
673621c8ba vp9_firstpass.c: remove unused functions & params
Change-Id: I111c5bd0dd47db7b1f6952c18056bee548bb42e9
2014-03-02 13:46:03 -08:00
Yaowu Xu
b12f5fc748 vp9_encodeframe.c: remove unused function params
Change-Id: I6d47618e8aee6e6c2fe1cf0b8bb4da0b2a0bab66
2014-03-01 14:58:42 -08:00
Yaowu Xu
9bcd361617 Remove unused parameters from update_state_rt()
In addition, a local variable was renamed to avoid confusion.

Change-Id: Id4c497f9cfa219e8a414aa9fee9a85af5f147249
2014-03-01 11:08:52 -08:00
Yaowu Xu
2f4eb5f096 Remove vp9_create_common()
The function has evolved over time, now only calls vp9_rtcd(), so this
commit removes the function and changes to call vp9_rtcd() directly.

Change-Id: I8cfa6190daa4b28f6f3d1e11bb3a07f9c95322bf
2014-03-01 10:59:24 -08:00
Yaowu Xu
3678ed36b9 Remove a parameter from write_selected_tx_size()
The parameter was never used.

Change-Id: I99fd9aad697917ddbe3d10c71cae344228fafc31
2014-03-01 10:40:39 -08:00
levytamar82
ea14909687 AVX2 SubPixel AVG Variance Optimization
Optimizing 2 functions to process 32 elements in parallel instead of 16:
1. vp9_sub_pixel_avg_variance64x64
2. vp9_sub_pixel_avg_variance32x32
both of those function were calling vp9_sub_pixel_avg_variance16xh_ssse3
instead of calling that function, it calls vp9_sub_pixel_avg_variance32xh_avx2
that is written in avx2 and process 32 elements in parallel.
This Optimization gave 80% function level gain and 2% user level gain

Change-Id: Iea694654e1b7612dc6ed11e2626208c2179502c8
2014-02-28 22:51:04 -07:00
Yaowu Xu
a257058aa3 Merge "Fix unused parameters in vp9_extend_frame_borders" 2014-02-28 17:34:38 -08:00
Dmitry Kovalev
4aacfb0f85 Merge "Replacing int_mv with MV." 2014-02-28 16:09:17 -08:00
Dmitry Kovalev
37bb11f5cb Merge "Removing unnecessary casts from quantization code." 2014-02-28 16:08:24 -08:00
Dmitry Kovalev
f97afbc8ea Merge "Using ref_mv[2] instead of two separate variables." 2014-02-28 16:07:45 -08:00
Yaowu Xu
0fa4d89042 Fix unused parameters in vp9_extend_frame_borders
Change-Id: I7255b3bc47d760333f58ac4878becbcc8ad30967
2014-02-28 15:50:32 -08:00
Dmitry Kovalev
3557dfc20f Merge "Sorting includes in vp9_rdopt.c." 2014-02-28 15:37:51 -08:00
Deb Mukherjee
dc8a2c07b3 Merge "Adds speed 8 to vp9 as reference" 2014-02-28 14:17:24 -08:00
Dmitry Kovalev
aed826b065 Using ref_mv[2] instead of two separate variables.
Change-Id: I909a81991aa0cc18afe6526542c7513837445213
2014-02-28 14:10:51 -08:00
Dmitry Kovalev
d89bdd3674 Sorting includes in vp9_rdopt.c.
Change-Id: I7e2591b4b54e0eac8521e128c7d97f62d2057ed8
2014-02-28 14:00:15 -08:00
Dmitry Kovalev
dac630bb22 Merge "Sorting and eliminating includes in vp9_pickmode.c." 2014-02-28 13:57:31 -08:00
Dmitry Kovalev
3c4a57bb4f Merge "Fixing include order in vp9_quantize.c" 2014-02-28 13:18:38 -08:00
Jingning Han
fa9e6e8890 Merge "Fix potential invalid partition size use" 2014-02-28 13:02:58 -08:00
Deb Mukherjee
f872a98b1b Adds speed 8 to vp9 as reference
Adds a speed 8 to VP9 where only the nearestmv (0 mv) is searched.
This seems to be about the same speed as vp8 speed 5.

Adds a new speed feature to disable inter modes based on a mask for
each blocksize.

Adds code for having lower complexity motion search methods
in nonrd pick mode function, even though speed 7 still uses DIAMOND
search for now.

Also uses HEX search for speed 6 rather than FAST_HEX which improves
psnr by 0.56% without any noticeable speed drop (tested on gipsmotion).

Change-Id: Ic13176572dbd3aed5884a26786940a4b1bbd8a75
2014-02-28 12:29:23 -08:00
Jingning Han
da798043c5 Merge "Skip some mode SAD calculation in non-RD mode" 2014-02-28 12:14:10 -08:00
Dmitry Kovalev
ce404e898c Replacing int_mv with MV.
Change-Id: Ib68d4a2de838254a66272324b909292048cbe60d
2014-02-28 12:11:46 -08:00
Dmitry Kovalev
e869869d22 Removing unnecessary casts from quantization code.
Change-Id: I64172710654e95a90ee754d14d7104337d28010f
2014-02-28 11:59:50 -08:00
Dmitry Kovalev
c9513e1dfb Fixing include order in vp9_quantize.c
Change-Id: Ic32eb103d0d7f98c0a16c4e7bdec117faf05df02
2014-02-28 11:30:51 -08:00
Dmitry Kovalev
fc179b3eda Merge "Cleaning up vp9_quantize.c." 2014-02-28 11:29:39 -08:00