Commit Graph

4466 Commits

Author SHA1 Message Date
Jim Bankoski
4c2074f969 clear out static analysis warning
Change-Id: Ic8708bb8a56ab30617c8ef47072b53928a53a1a3
2014-02-12 11:54:38 -08:00
Jim Bankoski
df86c4497a clean out static analyzer warnings vp9_encodeframe.c
Change-Id: If14d2fc8cf4202d24f7d87ea74b8ce88a6a816d9
2014-02-12 11:54:04 -08:00
Adrian Grange
4618952a59 Merge "Minor cleanup." 2014-02-12 11:14:10 -08:00
Jingning Han
3602c4312d Merge "Use INTER_OFFSET in vp9_pick_inter_mode" 2014-02-12 10:26:06 -08:00
Yaowu Xu
56d0b36092 Merge "Fixed a bug where no valid partition is allowed" 2014-02-12 10:13:49 -08:00
Deb Mukherjee
cf479baa03 Merge "Removes active_worst_quality feedback" 2014-02-12 09:20:31 -08:00
Adrian Grange
896a9ab934 Minor cleanup.
Change-Id: I6ef0ce5371ed9e2a415dd8c08c93ad603f0ad7b2
2014-02-12 09:18:00 -08:00
Jingning Han
e8b7610e8f Use INTER_OFFSET in vp9_pick_inter_mode
Cosmetic change to use pre-defined macros.

Change-Id: I93e9fa90113d0242599048940b39694660385a6f
2014-02-12 09:14:29 -08:00
Yaowu Xu
69a6871904 Fixed a bug where no valid partition is allowed
Change-Id: I4d2729dc5c46db2847700256941a66b0957c105d
2014-02-12 09:00:34 -08:00
James Yu
619f29cdb0 Remove redundant arm neon instructions.
Change-Id: I1fabad59747eb5f68c64275a36c3a1d94daf32a3
Signed-off-by: James Yu <james.yu@linaro.org>
2014-02-11 21:19:12 -08:00
Yunqing Wang
356a7e9642 Merge "Enable encode_breakout in real time encoding" 2014-02-11 21:07:24 -08:00
Frank Galligan
1604ad2149 Fix frames that have no references to them.
BasicRateTargeting3TemporalLayers found an error with
the get/release frame buffer management.

Change-Id: Iccff25cba1d2f276f2a0d0fb7b20cf99b4405549
2014-02-11 18:34:21 -08:00
Dmitry Kovalev
eff5b79260 Removing init_rdcost_stack() + cleanup.
Change-Id: I6fcbc833063c658749b2d43bb9968a5762647061
2014-02-11 18:08:06 -08:00
Dmitry Kovalev
79dd1f8441 Removing vp9_foreach_transformed_block_uv() function.
Change-Id: I35ec77b71e6fd686865cead9281e4dd9e9bc9e86
2014-02-11 18:06:00 -08:00
Dmitry Kovalev
9453c64726 Merge "Hiding encode_b_args struct inside vp9_encodemb.c." 2014-02-11 17:36:05 -08:00
Dmitry Kovalev
dcb48761cb Cleaning up vp9_full_search_sad_c() function.
Change-Id: Ief941ff75c5e25f3288326a162b1bd0c0f17a779
2014-02-11 17:24:22 -08:00
Deb Mukherjee
d23e339202 Removes active_worst_quality feedback
Removes certain cases of feedback of active_worst_quality,
and removes it from the RATE_CONTROL structure. Now active
worst quality is expected to be computed locally in the
q picking function during the encode.
Making temporal filter strength depend on avg_frame_qindex
rather than on active_worst_quality actually improves
performance esp. for yt.
derf: +0.038%
yt: +0.359%

Change-Id: I1fe5a343034b55af9322289165321f00ac0827b1
2014-02-11 16:59:56 -08:00
Yunqing Wang
507fd5220b Enable encode_breakout in real time encoding
In real time encoding, we enable encode_breakout to make encoding
fast. A speed feature "use_encode_breakout" is defined to set
encode_breakout thresholds for different speeds.

However, currently, static_thresh is an encoder option. The encode_
breakout can be turned off if user sets static_thresh=0 specifically.

The rtc set borg test result: (need to set --static_thresh=1)
speed -5, psnr loss -3.543%;
speed -4, psnr loss -2.358%;
speed -3, psnr loss -0.771%.

Encoding speed test:
speed -5, 11% - 60% speedup;
speed -4, 5.5% - 28% speedup;
speed -3, 0.8% - 7% speedup.

Change-Id: Icde592ffbe77eac7446f872a2e9eb2051733677b
2014-02-11 15:30:54 -08:00
Tom Finegan
c49c75fde0 Merge "vp9/common/x86: Silence MSVC warnings in vp9_asm_stubs.c." 2014-02-11 14:39:27 -08:00
Dmitry Kovalev
4fff8566f8 Merge "Cleaning up compute_fast_motion_search_level()." 2014-02-11 11:12:29 -08:00
Dmitry Kovalev
28f46aa633 Merge "Fixing errorperbit calculation." 2014-02-11 10:19:59 -08:00
Jingning Han
e939396eb8 Merge "Rework mode_info update in vp9_pick_inter_mode" 2014-02-11 08:49:40 -08:00
Jingning Han
220e9a932e Merge "Use more meaningful names for speed features" 2014-02-11 08:49:35 -08:00
Paul Wilkins
f30b323180 Modified Aq1 and Aq2
Aq 1 only updates segment map on kf and arf and
only uses 3 segments. With these settings AQ1 is
+ for most clips in SSIM but negative in psnr.
However, the penalty in PSNR is much less than
previously.

Old version aq1 average results for std hd
-20.899% psnr, -5.809% SSIM
New version aq1 for std hd
-3.57% psnr, +1.23% SSIM

Aq2 Now uses only 2 segments and rd.
This mode is still slightly negative for most clips on
psnr and SSIM but seems to have a much bigger visual
impact on several problem clips than aq mode 1.

Old results for std hd:
-2.578% psnr, -1.151% SSIM
New results for std hd:
-1.561% psnr, -0.85% SSIM

Change-Id: I94f57f8a73121629ce598fb921aad761c1450e1c
2014-02-11 16:27:05 +00:00
Frank Galligan
d51ca0db00 Merge "Add get release decoder frame buffer functions." 2014-02-11 08:19:37 -08:00
Dmitry Kovalev
803a5c67dd Merge "Encoder quantization cleanup." 2014-02-10 21:32:04 -08:00
Dmitry Kovalev
4a13d53523 Merge "Cleaning up update_stats() function." 2014-02-10 17:30:29 -08:00
Dmitry Kovalev
7e7ae66f74 Merge "Making vp9_activity_masking() static." 2014-02-10 17:29:40 -08:00
Deb Mukherjee
992500b8cb Merge "Further one-pass vbr rate control changes" 2014-02-10 16:38:19 -08:00
James Zern
66bfc69bfc Merge "*.mk: s/\bUSE_X86INC/CONFIG_USE_X86INC/" 2014-02-10 15:39:28 -08:00
Jingning Han
f34a7eb253 Rework mode_info update in vp9_pick_inter_mode
This commit moves unnecessary mode_info update steps out of inter
mode test loop.

Change-Id: I3705450c44cda060021f4fd76c34f1b20d11658b
2014-02-10 15:20:11 -08:00
Jingning Han
734938dc6b Use more meaningful names for speed features
Use frame_parameter_update to precisely describe the functionality.

Change-Id: Ia9a55ba8efef7b987e30d949dd00ac716189bdb9
2014-02-10 15:20:11 -08:00
Tom Finegan
60e91a92c3 vp9/common/x86: Silence MSVC warnings in vp9_asm_stubs.c.
Update filter_1dfunction definition to match usage.

Change-Id: Ie3cae13dc1ec3f5838c5f29d1c76a1a98a9217fa
2014-02-10 15:08:42 -08:00
Yaowu Xu
3da25f29f5 Merge "Merged two similar functions to reduce duplication" 2014-02-10 14:50:01 -08:00
Deb Mukherjee
15fb5510a8 Further one-pass vbr rate control changes
Some parameter changes and fixes on one-pass rate control.
derfraw300 is now only 10% below 2-pass speed 0 rate control.

Change-Id: I1940eef8a5a035dc18e71b880d5e00cabd1f01b9
2014-02-10 14:27:19 -08:00
Dmitry Kovalev
52c1550e59 Merge "Cleaning up rd_check_segment_txsize() function." 2014-02-10 14:14:18 -08:00
Frank Galligan
e8e152799b Add get release decoder frame buffer functions.
This CL changes libvpx to call a function when a frame buffer
is needed for decode. Libvpx will call a release callback when
no other frames reference the frame buffer. This CL adds a
default implementation of the frame buffer callbacks. Currently
only VP9 is supported. A future CL will add support for
applications to supply their own frame buffer callbacks.

Change-Id: I1405a320118f1cdd95f80c670d52b085a62cb10d
2014-02-10 14:08:11 -08:00
Yaowu Xu
855070e254 Merged two similar functions to reduce duplication
Function encode_rtc_frame_internal() and encode_frame_internal() only
differed by a couple of speed features, this commit relocation those
difference into the setup of speed features and merged two functions
into one to remove duplication.

It also fixed a subtle bug super_fast_rtc was used before it was
initialized.

Change-Id: I234a5a1d11a4450930e5b4943dbab434208d5030
2014-02-10 11:36:42 -08:00
Jim Bankoski
352db1d134 Merge "Convert small static header functions to inline" 2014-02-10 11:35:12 -08:00
Jim Bankoski
59ff7c6898 Merge "Convert small static functions in header to inline.." 2014-02-10 11:35:02 -08:00
Jim Bankoski
09d374f0a5 Merge "Convert small header functions to inline" 2014-02-10 11:34:56 -08:00
Jim Bankoski
da4df15714 Merge "Convert header static functions to inline or make them global." 2014-02-10 11:34:51 -08:00
Jim Bankoski
00c48ae091 Merge "Converted functions in header to INLINE..." 2014-02-10 11:34:43 -08:00
Jim Bankoski
adc84cf956 Merge "Convert functions to inline that are small ." 2014-02-10 11:34:36 -08:00
Jim Bankoski
56090b2d1e Merge "Convert functions to inline that are in headers static." 2014-02-10 11:34:29 -08:00
Jim Bankoski
3a4598cf67 Merge "Converted function to inline" 2014-02-10 11:34:25 -08:00
Jim Bankoski
2697d6c857 Merge "Converted short static functions to inline." 2014-02-10 11:34:17 -08:00
Dmitry Kovalev
71b7cb2006 Fixing errorperbit calculation.
Change-Id: I06e082a18dbcc6e126cf288ee769c1480e3f2f4d
2014-02-10 11:06:42 -08:00
Marco Paniconi
812bacc919 Some updates and fixes for layered CBR mode.
-Properly set the average frame size for each layer.

-Allow each layer to update its average/last Q stats after encoding.

-Initialize for some layer context variables.

Change-Id: Iaa37d144fcf4f30ff4283a4e8db8b9ca8bf4c815
2014-02-10 10:21:20 -08:00
Jim Bankoski
3c790ec0f8 Convert small static header functions to inline
Change-Id: I467b28346a0d8d4d8b96d6c05fc39c34eec26e5c
2014-02-10 07:56:45 -08:00
Jim Bankoski
b5f59ea280 Convert small static functions in header to inline..
Change-Id: Ic4fc01be7738fbabf8c7860dbe3476ab4caf5fc2
2014-02-10 07:56:38 -08:00
Jim Bankoski
7341725e13 Convert small header functions to inline
Change-Id: I4e5575f0d7ccfe2361b8cbf78e7dc079272c9f5f
2014-02-10 07:56:29 -08:00
Jim Bankoski
69f58b40e0 Convert header static functions to inline or make them global.
Change-Id: Ib26fbfef3505299f754e5af6c437a85d7746fc28
2014-02-10 07:39:12 -08:00
Jim Bankoski
6a9e58cb1d Converted functions in header to INLINE...
Change-Id: I00512c6cef3a4af8df57c7263ceb853fb2db8140
2014-02-09 20:12:04 -08:00
Jim Bankoski
18c8deabbf Convert functions to inline that are small .
Change-Id: I3b160e93d9319c8e1abda2a60f49f89c409d534b
2014-02-09 20:08:58 -08:00
Jim Bankoski
9768d0b184 Convert functions to inline that are in headers static.
Change-Id: If1ec3b64be327e8c48ec7efbacde208d2129fdb0
2014-02-09 20:06:35 -08:00
Jim Bankoski
99e4c508b2 Converted function to inline
Change-Id: Iaa4880c8a207cfea509608e1ef4593794b6b31f2
2014-02-09 20:04:54 -08:00
Jim Bankoski
3a3aa3f4e3 Converted short static functions to inline.
Change-Id: I859719d41ced2e35d2765b636e627bb7edc3651e
2014-02-09 19:58:54 -08:00
Dmitry Kovalev
398f2f6298 Cleaning up rd_check_segment_txsize() function.
Change-Id: I7c09f84b26eb499daafd1393b48f12abb8a6fb8f
2014-02-08 20:18:37 -08:00
Dmitry Kovalev
1a30a8743b Making vp9_activity_masking() static.
Change-Id: Ic6a733f1fe92458da89c8459c5686ba1e08b92bf
2014-02-08 19:41:37 -08:00
Dmitry Kovalev
441b990017 Hiding encode_b_args struct inside vp9_encodemb.c.
Change-Id: I5bcd32874f8a8a693e3eb68ef6728dfbf5475bda
2014-02-08 19:30:45 -08:00
James Zern
7c8a66664c Merge "vp9_dthread: interleave mutex/cond alloc+init" 2014-02-08 11:43:20 -08:00
Tom Finegan
e876cf3869 Merge "vp9/common: Silence MSVC warning in vp9_convolve.c." 2014-02-07 18:34:44 -08:00
Dmitry Kovalev
e844624a0e Merge "Fixing undefined behavior vp9_peek_si()." 2014-02-07 18:14:32 -08:00
Dmitry Kovalev
b94d618fc9 Merge "Removing references to nonexistent functions." 2014-02-07 18:14:01 -08:00
James Zern
ab4b17a4d4 Merge "Remove unnecessary local variables." 2014-02-07 16:45:24 -08:00
Dmitry Kovalev
cd0ffb4228 Removing references to nonexistent functions.
Change-Id: Ib093d2b9030006806ef9eba16c114f25a58e8f6b
2014-02-07 16:45:19 -08:00
Dmitry Kovalev
e1fdcbcb82 Cleaning up compute_fast_motion_search_level().
Change-Id: I151bd3de689bceb72969120095257c37656db92f
2014-02-07 16:39:40 -08:00
Dmitry Kovalev
22ee1b3c5c Merge "Cleaning up vp9_ratectl.c." 2014-02-07 16:04:40 -08:00
Dmitry Kovalev
6c17ab6384 Cleaning up update_stats() function.
Change-Id: I9139210fc6b9878de7844d74dd97784a6d289230
2014-02-07 15:21:31 -08:00
Alex Converse
b104a0a449 Cleanup tokenize_b and hoist some invarients out of the loop.
Change-Id: I60401b45b85de8123d16233c2a14abddc1c55041
2014-02-07 15:04:25 -08:00
Dmitry Kovalev
0865e0d532 Cleaning up vp9_ratectl.c.
Change-Id: I13738ef1f307cc5f563126bc7a92beaa01fde3bd
2014-02-07 15:01:32 -08:00
Yunqing Wang
0d43bd77e5 Bug fix in ssse3 quantize function
A bug was reported in Issue 702: "SIGILL (Illegal instruction) when
transcoding with vp9 - using FFmpeg". It was reproduced and fixed.

Change-Id: Ie32c149a89af02856084aeaf289e848a905c7700
2014-02-07 14:32:30 -08:00
Dmitry Kovalev
0f3cffa685 Fixing undefined behavior vp9_peek_si().
Bitwise OR operation doesn't guarantee any subexpression evaluation order.
Just reading one bit now and ignoring the next one. For reference look at
vp9_decode_frame() implementation.

Change-Id: I4971686929838ae5ded8f43a38a2934db5e1d462
2014-02-07 14:21:19 -08:00
Dmitry Kovalev
9e41de4d61 Merge "Moving twopass_rc and FIRSTPASS_STATS to vp9_firstpass.h." 2014-02-07 11:05:25 -08:00
Tom Finegan
bf79a4da77 vp9/common: Silence MSVC warning in vp9_convolve.c.
Added cast to int to silence MSVC warning.

Change-Id: I9ef4709d2e4cf0db070d9e52385c1b3f138b00a5
2014-02-07 10:13:57 -08:00
Deb Mukherjee
aadebc6d17 Merge "Parameter fixes for one-pass non-cbr mode" 2014-02-06 14:31:54 -08:00
Deb Mukherjee
b2209c3346 Parameter fixes for one-pass non-cbr mode
Fixes some of the parameters for 1-pass non-cbr mode.
Also includes some cleanups, inlcuding refactoring of the
recode_loop options.

Results on derfraw300 improve by about 5-6%, so that the one-pass
mode is now 13% below the 2-pass mode in speed 0.

Change-Id: I844cc2638694c7574f3be00d41d60b23dc1016f0
2014-02-06 13:49:52 -08:00
Adrian Grange
f0e896c120 Merge "Remove out of date comment." 2014-02-06 13:40:42 -08:00
Adrian Grange
37d7cb607e Remove unnecessary local variables.
Change-Id: I1cdcd847f258967534ef30ba15894b486f1519a8
2014-02-06 13:38:00 -08:00
James Zern
4e44457b4d vp9_dthread: interleave mutex/cond alloc+init
this ensures both are properly initialized when calling _dealloc().
+ check the arrays before access

Change-Id: I789af39b41c271b5cb3c029526581b4d9903b895
2014-02-06 12:39:24 -08:00
Dmitry Kovalev
005fc6970b Finally removing "short" from transform names.
Change-Id: I5259b68dc1bcceb153e3ffe638a79a59a3019e9d
2014-02-06 11:54:15 -08:00
Dmitry Kovalev
4d8ebc9ec4 Merge "Adding is_mv_in() function." 2014-02-06 11:06:00 -08:00
Marco Paniconi
4864ab21b0 Layer based rate control for CBR mode.
This patch adds a buffer-based rate control for temporal layers,
under CBR mode.

Added vpx_temporal_scalable_patters.c encoder for testing temporal
layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns).

Updated datarate unittest with tests for temporal layer rate-targeting.

Change-Id: I8900a854288b9354d9c697cfeb0243a9fd6790b1
2014-02-06 09:24:45 -08:00
Dmitry Kovalev
b3ea534155 Merge "Removing redundant is_inter_mode() call." 2014-02-05 18:39:08 -08:00
Dmitry Kovalev
f32fa45cba Merge "Cleaning up vp9_get_pred_context_single_ref_p1()." 2014-02-05 18:38:38 -08:00
Dmitry Kovalev
4a1a7919da Merge "Removing "_1d" suffix from mips transform code." 2014-02-05 18:37:49 -08:00
Dmitry Kovalev
5eda0eae6b Merge "Renaming vp9_sad_c.c to vp9_sad.c." 2014-02-05 18:37:20 -08:00
Dmitry Kovalev
1976dd616d Moving twopass_rc and FIRSTPASS_STATS to vp9_firstpass.h.
Change-Id: I5c942ee1a04eb0d7f2ae7ba8ea8ce47e666550c5
2014-02-05 18:28:28 -08:00
Dmitry Kovalev
a1cfcc0af8 Merge "Cleaning up encode_frame_to_data_rate()." 2014-02-05 18:03:56 -08:00
Dmitry Kovalev
5f5c262766 Merge "Cleaning up recode_loop_test()." 2014-02-05 17:36:18 -08:00
Dmitry Kovalev
1811bc1aa0 Merge "Cleaning up vp9_firstpass.c." 2014-02-05 17:35:56 -08:00
Yunqing Wang
7ad56bf3c9 Merge "Optimize bilinear sub-pixel filters in ssse3" 2014-02-05 17:20:52 -08:00
Dmitry Kovalev
6432ae4902 Merge "Clamping active_{best, worst}_quality values." 2014-02-05 15:53:00 -08:00
Dmitry Kovalev
66188f3a78 Cleaning up recode_loop_test().
Change-Id: Iaa6d01221a1f82ce9b500c85e186ab53b92aae9a
2014-02-05 15:46:11 -08:00
Adrian Grange
aa77872be7 Remove out of date comment.
Change-Id: I8c993cf0881cd77c34a4efe7ba1d067cd28c6105
2014-02-05 15:37:24 -08:00
Dmitry Kovalev
2f05847dbc Cleaning up encode_frame_to_data_rate().
Change-Id: Ib76a31e68aef5cb9eeba57dc58d9c30c9c98ed95
2014-02-05 15:35:37 -08:00
Dmitry Kovalev
dce41c013b Cleaning up vp9_firstpass.c.
Change-Id: I111d6d1ea5ee641780abc096341369a37627aaae
2014-02-05 15:11:12 -08:00
Dmitry Kovalev
77f7f6a8e8 Merge "Removing unused SPEEDSTATS." 2014-02-05 14:44:12 -08:00
Adrian Grange
340f0c9650 Merge "Remove delete_first_pass_file." 2014-02-05 13:01:03 -08:00
Deb Mukherjee
2fb81fba97 Merge "One-pass rate control cleanups/fixes/refactoring" 2014-02-05 11:50:18 -08:00
Dmitry Kovalev
724fefb4cf Cleaning up vp9_get_pred_context_single_ref_p1().
Change-Id: I279343b474d7ff41afcf8f1493b6fbf716b51823
2014-02-05 11:48:01 -08:00
Dmitry Kovalev
a536237228 Merge "Cleaning up vp9_get_pred_context_single_ref_p2()." 2014-02-05 11:37:17 -08:00
Adrian Grange
2554d5731a Remove delete_first_pass_file.
Change-Id: If46d93fb1c26e4629af1f492bfad7a82b4c4f778
2014-02-05 11:31:44 -08:00
Dmitry Kovalev
8b53947a42 Renaming vp9_sad_c.c to vp9_sad.c.
Change-Id: I0beb01b0209cf4ae849b4c67d72107b631f46c0d
2014-02-05 11:31:15 -08:00
Dmitry Kovalev
faeb21dd70 Removing unused SPEEDSTATS.
Change-Id: Ia41007206ce437852dd1b532ee8e233d889e0040
2014-02-05 11:23:13 -08:00
Deb Mukherjee
40e63d4b51 One-pass rate control cleanups/fixes/refactoring
Inlcudes a number cleanups:
1. Moves the one-pass pre-encode parameter setting functions
to vp9_ratectrl.c
2. Deprecates per_frame_bandwidth in RATE_CONTROL structure
3. Removes target_bandwidth in cpi structure since it is not used.
4. Various renaming of functions

There is no bit-stream change in 2-pass, one-pass cbr and one-pass
vbr modes.

Change-Id: Ifd9916bf4d485b7d04c5f52044ffe6703254ccbd
2014-02-05 11:22:15 -08:00
Dmitry Kovalev
9f528c5dbd Removing redundant is_inter_mode() call.
Block type was already detected by is_inter_block() call.

Change-Id: I7923ce11b6a0071ce9df8c744a78c816651a15dc
2014-02-05 11:04:53 -08:00
Martin Storsjo
03bc491721 arm: Consistently use braces around doubleword arguments to vld
This isn't strictly necessary, but makes the file more consistent
with the other arm assembly source files.

Change-Id: I245c9677d89e0ab3f31991e473764858af35b180
2014-02-05 13:24:25 +02:00
Martin Storsjo
c2bb1aa544 arm: Use {} around quadword arguments to vld
This fixes building for iOS.

Change-Id: Ice082648c02a3faf93891f7ddc122875e2bdc9cb
2014-02-05 13:24:17 +02:00
James Zern
7cf0c783c1 *.mk: s/\bUSE_X86INC/CONFIG_USE_X86INC/
CONFIG_USE_X86INC is available to every makefile, there's no need to
duplicate its value with USE_X86INC

Change-Id: Id12bd5f09cba78abba56ab5a8f56351562e5b8b6
2014-02-04 20:04:38 -08:00
James Zern
be34c188a1 Merge "vp9_systemdependent.h: relocate system includes" 2014-02-04 18:58:20 -08:00
James Zern
d89f861f4b vp9_systemdependent.h: relocate system includes
avoid wrapping msvc includes with extern "C"; this breaks some visual
studio builds of the (c++) tests.

Change-Id: Ie8062d55d4f4c049f6cd360a36da6a67607df132
2014-02-04 18:28:45 -08:00
Yaowu Xu
0dc535ecbb Merge "Adjust speed feature for --rt" 2014-02-04 18:20:57 -08:00
Dmitry Kovalev
0c7e1a950c Merge "Removing DBG_PRNT_SEGMAP." 2014-02-04 17:52:16 -08:00
Dmitry Kovalev
c1749e14f6 Adding is_mv_in() function.
Change-Id: I9bdb18c5cde386d3caaa2c2846649cfbda609927
2014-02-04 16:58:33 -08:00
Dmitry Kovalev
8d7cd8e75c Merge "Removing unused estimate_cq() function." 2014-02-04 16:57:57 -08:00
Dmitry Kovalev
96cabf8de1 Merge "Moving MBGRAPH_{MB, FRAME}_STATS structs to vp9_mbgraph.h." 2014-02-04 16:53:55 -08:00
Dmitry Kovalev
041104a965 Merge "Renaming vp9_variance_c.c to vp9_variance.c." 2014-02-04 16:53:27 -08:00
Dmitry Kovalev
fce6a6a346 Merge "Replacing int_mv with MV." 2014-02-04 16:53:14 -08:00
Dmitry Kovalev
4cbe8ec765 Merge "Inlinging get_next_chkpts macro in vp9_mcomp.c." 2014-02-04 16:52:47 -08:00
Dmitry Kovalev
2b3b29332a Merge "Removing SECTIONBITS_OUTPUT." 2014-02-04 16:52:12 -08:00
Dmitry Kovalev
b9fea167f9 Removing DBG_PRNT_SEGMAP.
Change-Id: I71d85e3455545960938e525ae8aa0a667e1db94c
2014-02-04 16:33:03 -08:00
Dmitry Kovalev
c31cf0d647 Merge "Moving x1 & y1 calculation under if condition." 2014-02-04 14:50:25 -08:00
hkuang
948fe9338e Merge "With on demand border extension, clamping the MV is not longer needed." 2014-02-04 14:50:20 -08:00
Dmitry Kovalev
9d6d35c5ef Renaming vp9_variance_c.c to vp9_variance.c.
Change-Id: I7b29cb18ad36d79e1c6329c7de88496059f49db4
2014-02-04 14:49:43 -08:00
hkuang
b0fec6ab4a With on demand border extension, clamping the MV
is not longer needed.

Change-Id: I40c37ef18c67ab27fc336694dfca3c43a87c47ca
2014-02-04 13:57:40 -08:00
Dmitry Kovalev
e829487371 Removing unused estimate_cq() function.
Change-Id: If3a1af1a54f3a3c0d9c966fdc0721981070c7f28
2014-02-04 13:11:25 -08:00
Deb Mukherjee
35ee7f5f4b One-pass rate control fixes and cleanups
Fixes rate control partially in one-pass non-cbr case to achieve a
bitrate close to the one desired. Previous version was way off at
the high bitrate end.

Also includes several one-pass rate control cleanups and refactoring.

On derfraw300, one-pass encoding is now 19% off from two-pass speed
0 encoding, down from 35%.

Change-Id: I6f0dcdb7f8aa85a7e7cd3a3155d4f9d2a4d2f4f4
2014-02-04 10:51:27 -08:00
Yunqing Wang
d1961e6fbf Optimize bilinear sub-pixel filters in ssse3
This patch added ssse3 optimization of bilinear sub-pixel filters.
The real time encoder was speeded up by ~1%.

Change-Id: Ie82e98976f411183cb8c61ab8d2ba0276e55a338
2014-02-04 08:01:55 -08:00
James Zern
2b7338aca4 Merge "vp9_filter.h: rename interp_kernel type" 2014-02-03 23:12:28 -08:00
James Zern
0669cd57c3 Merge "vp9/encoder: fix function prototypes" 2014-02-03 23:09:26 -08:00
Yaowu Xu
084c49ac79 Adjust speed feature for --rt
Moved a few features with low impact on compression form -5 to -4 and
increased adaptive_rd_thresh for -5.

Change-Id: Ib1b748168cc6ed7684ae4818499f3a536ae76253
2014-02-03 18:13:25 -08:00
Dmitry Kovalev
5daaff527e Moving x1 & y1 calculation under if condition.
Change-Id: Iae787d491f7cfe24855ef8f2d04e2c6c19350378
2014-02-03 18:03:17 -08:00
Dmitry Kovalev
64cca45c1d Cleaning up vp9_get_pred_context_single_ref_p2().
Change-Id: I294075acd3073c41e153079ff4462816898b3778
2014-02-03 17:46:34 -08:00
Dmitry Kovalev
9fca1ce9c3 Replacing int_mv with MV.
Change-Id: I36b8b419be92171857e77a881da066424ff47af5
2014-02-03 17:30:59 -08:00
Dmitry Kovalev
3ffb204360 Merge "Removing ENC_DEBUG." 2014-02-03 17:11:52 -08:00
Yongzhe Wang
469b530fa3 Merge "Build fix with config internal stats" 2014-02-03 17:10:23 -08:00
James Zern
cca4276dac vp9_filter.h: rename interp_kernel type
-> InterpKernel
avoids conflicts in variable names, fixing the build with various
toolchains.

broken since:
8691565 Removing subpix_fn_table struct.

Change-Id: Ib5f6fdbcb494a97b62c75b99d4d826ff25d4c981
2014-02-03 16:48:38 -08:00
Alex Converse
be1b41673f Merge "INLINE and reimplement get_unsigned_bits()." 2014-02-03 16:26:33 -08:00
Dmitry Kovalev
220b8f8644 Encoder quantization cleanup.
Change-Id: I633205c95f0e81ce0589580501d0be4425a3cb8e
2014-02-03 14:57:28 -08:00
Yongzhe Wang
513faceaed Build fix with config internal stats
Fixes a build issue when internal stats is enabled

Change-Id: I822cc60274e34b5f29ccbaa1f986fb9da6a8de4b
2014-02-03 14:35:48 -08:00
Dmitry Kovalev
282f36adc4 Merge "Removing "_short" suffix from arm transform file names." 2014-02-03 14:28:47 -08:00
Dmitry Kovalev
ae1c298733 Inlinging get_next_chkpts macro in vp9_mcomp.c.
Change-Id: I38ca35dccfb9051d08b026d75ba2f3a35adb0259
2014-02-03 14:26:36 -08:00
Dmitry Kovalev
a2baab8b85 Moving MBGRAPH_{MB, FRAME}_STATS structs to vp9_mbgraph.h.
Change-Id: I424c79735a7f3bbf6bf9c1391ff53aa78abae624
2014-02-03 12:35:06 -08:00
Yunqing Wang
cabfd505a4 Merge "Optimize bilinear sub-pixel filters in sse2" 2014-02-03 12:31:34 -08:00
Alex Converse
5470e0cfda Merge "Propgate constants through subexp routines." 2014-02-03 12:29:52 -08:00
Marco Paniconi
5437474c54 Merge "Revert "Layer based rate control for CBR mode."" 2014-02-03 12:28:47 -08:00
Marco Paniconi
7ec838edc4 Revert "Layer based rate control for CBR mode."
This reverts commit 6be2b750b8

Change-Id: Ic52acd98b37c3ba49d4999b463389eb564f49c4b
2014-02-03 12:28:32 -08:00
Alex Converse
ffd3d4834b INLINE and reimplement get_unsigned_bits().
The new implementation disagrees when the argument is equal to 2**n but
that is never called in practice and based on how it is used the new
implementation is correct in that case.

Change-Id: Ifbac4ad87d459fe6bd2fd0f400c0340f96617342
2014-02-03 12:16:22 -08:00
Alex Converse
41d3c989fd Propgate constants through subexp routines.
This avoids calls to get_unsigned_bits() with constants and
replaces hard to trace loops with simpler structures.

Change-Id: Ic1afc5a17d7df5bcfc85b76efda316b0bf118467
2014-02-03 11:55:46 -08:00
Dmitry Kovalev
f7c17b89f0 Merge "Cleaning up vp9_mcomp.{c, h}." 2014-02-03 10:53:21 -08:00
Yunqing Wang
2488cb34bc Optimize bilinear sub-pixel filters in sse2
Using bilinear filters could speed up the codec in real-time mode.
This patch added sse2 optimizations of bilinear filters that
operate on different-sized blocks.

Tests showed that the real-time encoder was speeded up by 3%.

Change-Id: If99a7ee4385fcc225c3ee7445d962d5752e57c3f
2014-02-03 10:34:45 -08:00
Marco Paniconi
6be2b750b8 Layer based rate control for CBR mode.
This patch adds a buffer-based rate control for temporal layers,
under CBR mode.

Added vpx_temporal_scalable_patters.c encoder for testing temporal
layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns).

Updated datarate unittest with tests for temporal layer rate-targeting.

Change-Id: I9cb6cce2494390ae6096ee17774af7fb9308bde7
2014-02-02 14:30:43 -08:00
James Zern
ef951d1919 vp9/encoder: fix function prototypes
silences warnings about declarations not matching prototype

Change-Id: I30b9a24f78ebe3b9cc2bbfcd3a7363ba7c328e4d
2014-01-31 20:45:36 -08:00
Jim Bankoski
37e5325b9f Merge "static function convert to inline or global vp9_blockd.h" 2014-01-31 20:16:37 -08:00
Yaowu Xu
1c3fc43771 Merge "Set proper rtc interp_filter at block level" 2014-01-31 19:59:32 -08:00
Adrian Grange
61142301ac Merge "Typo & comment corrections" 2014-01-31 19:51:44 -08:00
Jim Bankoski
9dec7712ab static function convert to inline or global vp9_blockd.h
Change-Id: Ifdd951f24932839f06d1c700371662511dde6ebe
2014-01-31 19:50:40 -08:00
Yunqing Wang
7c6a49bada Merge "Rename a loopfilter parameter" 2014-01-31 18:33:33 -08:00
Dmitry Kovalev
f1761a74cd Merge "Cleaning up vp9_get_second_pass_params() function." 2014-01-31 18:15:33 -08:00
Dmitry Kovalev
3b3f1d8303 Cleaning up vp9_mcomp.{c, h}.
Change-Id: Ib71d9ed3f98e9468ad951bdc24c9ab565216eb38
2014-01-31 18:11:41 -08:00
Dmitry Kovalev
c2ca97caaf Merge "Cleaning up motion compensation code." 2014-01-31 17:33:40 -08:00
Dmitry Kovalev
c49b08c9a1 Removing "_short" suffix from arm transform file names.
Change-Id: Iefe118f61a335e88821a21a9f50fb919212c1507
2014-01-31 17:19:02 -08:00
Dmitry Kovalev
6e4a03e844 Removing "_1d" suffix from mips transform code.
Unifying transform function names across libvpx, 1d is a redundant suffix.

Change-Id: I077c19f3bc7d4842ed7ca5814d77b3dce1728e13
2014-01-31 17:05:03 -08:00
Dmitry Kovalev
1ee4916794 Cleaning up vp9_get_second_pass_params() function.
Change-Id: Ie7b295190d8def447408e575ea0f3fa3c7eb7dd2
2014-01-31 16:49:33 -08:00
Yaowu Xu
f99eb936a4 Set proper rtc interp_filter at block level
Based on frame level settings.

Change-Id: I922c09c195ab055585eaa4f544c51aceb1203a7a
2014-01-31 16:32:19 -08:00
Yunqing Wang
11a9366e3b Rename a loopfilter parameter
As pointed out by Dmitry and James, "partial" is a Microsoft-
specific c++ keyword, and it is renamed.

Change-Id: Ia0fc11ceb89e54b3195287f89f7e26edbbe9beb8
2014-01-31 16:30:04 -08:00
Jim Bankoski
5ccd193219 Merge "bsize problem 360p" 2014-01-31 16:21:13 -08:00
Adrian Grange
908482cb3a Typo & comment corrections
Change-Id: I64569afe61a2679afdd263d3e226a89b9f73cc61
2014-01-31 16:02:48 -08:00
Dmitry Kovalev
88340b173b Merge "Combining fb_idx_ref_cnt[] and yv12_fb[] arrays." 2014-01-31 15:55:04 -08:00
Dmitry Kovalev
a8a2f22958 Merge "Renaming "mbskip" to "skip"." 2014-01-31 15:52:35 -08:00
Yaowu Xu
d009b06ebf Merge "Only allow interp_filter change in SWITCHABLE mode" 2014-01-31 15:44:00 -08:00
Yaowu Xu
328f6d0eef Merge "fix IOCs" 2014-01-31 15:33:22 -08:00
Yaowu Xu
d6a319c62c Merge "Properly merge two different real time modes" 2014-01-31 15:31:33 -08:00
Jim Bankoski
1833028681 bsize problem 360p
Fixes an assert that crashed for 360p..

Change-Id: I2faf15c93cbdb0e62a27a3b663f0d09ba62774a8
2014-01-31 15:14:02 -08:00
Yaowu Xu
538b1c6d52 Only allow interp_filter change in SWITCHABLE mode
This commit added a logic to prevent the inter_filter type from being
changed if the default interp_filter mode is not switchable. Also, it
sets the default interp_filter to BILINEAR at very and super fast rtc
encoding modes

Change-Id: Ic41e6d31de29795a4ce536ec79afb01cab6daad3
2014-01-31 15:10:08 -08:00
Yaowu Xu
dc9af3b509 fix IOCs
Left shift of negative values caused IOC warnings.

Change-Id: I6f41b020ca0ff51f7861719d41393e9460b75d4e
2014-01-31 15:07:51 -08:00
Yaowu Xu
6a4e2ddabc Properly merge two different real time modes
--rt --cpu-used=-5 uses the progressive rtc mode
--rt --cpu-used=-6 uses the new super fast rtc mode

Change-Id: Id6469ca996100cdf794a0e42d76430161f22f976
2014-01-31 15:07:51 -08:00
Yunqing Wang
903801f1ef vp9 decoder: row-based multi-threaded loopfilter
Implemented parallel loopfiltering, which uses existing tile-
decoding threads. Each thread works on one row, and when that row
is loopfiltered, it moves to next unattended row. To ensure the
correct filtering order, threads are synchronized and one
superblock is filtered only if the superblocks it depends on are
filtered already.

To reduce synchronization overhead and speed up the decoder, we use
nsync > 1 for high resolution.

Performance tests:
1. on desktop:
8-tile 4k video using 8 threads, speedup: 70% - 80%
4-tile HD video using 4 threads, speedup: ~35%
2. on mobile device(Nexus 7):
4-tile 1080p video using 4 threads, speedup: 18% - 25%
4-tile 1080p video using 2 threads, speedup: 10% - 15%

Change-Id: If54b4a11960dd706c22d5ad145ad94156031f36a
2014-01-31 14:44:53 -08:00
Alex Converse
e78c174e54 Cleanup block_rd_txfm.
* Avoid unnecessary type erasure
* Prune unused/duplicate fields from struct rdcost_block_args
* Make struct rdcost_block_args a local

Change-Id: I4f1fd4837ccd028bbfe727191ee8d69f0463b7e5
2014-01-31 12:13:18 -08:00
Adrian Grange
42bc14e619 Merge "Add constant to represent minimum KF boost" 2014-01-31 11:10:04 -08:00
Adrian Grange
64e2597465 Disable update of last_show_frame for existing frame
When showing a previously decoded frame, i.e. when
show_existing_frame=1, the update of the
last_show_frame flag must be disabled.

This is to ensure that the last_show_frame flag
reflects the state of the flag for the immediately
previously decoded frame rather then the value that
was forced to ensure that a previously decoded frame
would be displayed.

This patch also adds a test vector to verify that the
display_existing_frame flag works as expected. Code
for generating the test vector can be found in this
patch:
https://gerrit.chromium.org/gerrit/#/c/68581/

(Bug originally reported by Alexander Voronov
<ru.xalba@gmail.com>).

Change-Id: I731d288fba02088959f7fcc87707137fffc6acf5
2014-01-31 08:55:01 -08:00
Jim Bankoski
da6b18622f remove confusing compressor_speed
use mode instead

Change-Id: I419d7a2dc4b0714ca6ff723c5e824521c150c460
2014-01-31 07:55:19 -08:00
Adrian Grange
284e793d5a Add constant to represent minimum KF boost
Added a constant to represent the minimum KF boost
rather than using the magic number 2000 in the code.

Change-Id: I9428b61f47d26312caff81c6f9ae8587df004791
2014-01-31 07:52:09 -08:00
Yaowu Xu
6f954c7b5c Merge "Replace inline with INLINE" 2014-01-30 12:05:09 -08:00
Yaowu Xu
5ebed3e861 Replace inline with INLINE
So x86_64-win64-vs11 can build successfully.

Change-Id: If354c2ea3921fac8c9b413ed39223e70bc20c535
2014-01-30 11:48:16 -08:00
Alex Converse
54ba75a5ee Merge "Enforce the use of profile 1 for non-420 content." 2014-01-30 11:01:53 -08:00
Yaowu Xu
c0856b98cc Merge "Fixing out of bounds access in frame_refs[] array." 2014-01-30 09:34:18 -08:00
Yaowu Xu
4c0a623124 Fix some automerge artifacts
Some changes in 1ca1186 were mistakenly reverted by a later merge,
this commit re-instated the chanages from values to enums.

Change-Id: Ia6b01c31da584a1f612996e6432612c1295b9eaf
2014-01-30 09:01:09 -08:00
Yaowu Xu
6f81942f0e Fix a build issue for --enable-intern-stats
Change-Id: Iea7c9fa0726dbf9792eea79e6a05eb8a3c718d45
2014-01-30 08:20:08 -08:00
Dmitry Kovalev
1bd69ac57f Fixing out of bounds access in frame_refs[] array.
Change-Id: I08f45573e0b2195c09fb6aecacb4c57431a711ea
2014-01-29 22:02:24 -08:00
Yaowu Xu
96dc80da61 Merge "create super fast rtc mode" 2014-01-29 16:36:20 -08:00
Yaowu Xu
08b912b4d1 Merge "Add a strict mode for auto_min_max_partition_size feature" 2014-01-29 16:36:06 -08:00
Yaowu Xu
1ca1186529 Add a strict mode for auto_min_max_partition_size feature
In this new mode, the size range is strictly determined by the min
and max partition size in neighborhood blocks.

Niklas720 encoding time at cpu-used -5 goes from 56250ms to 50676ms,
a 10% reduction.

Change-Id: I316b0e2ac967ff3fad57b28d69c0ec80b7d8b34e
2014-01-29 14:51:51 -08:00
Dmitry Kovalev
b107f2c470 Renaming "mbskip" to "skip".
Change-Id: I27a30b43eae026a77f92958e2238d02d9cdf7832
2014-01-29 14:48:42 -08:00
Dmitry Kovalev
a8285de7a8 Removing SECTIONBITS_OUTPUT.
This code seems to be unmaintaned for a long time (e.g. because of __int64
type usage).

Change-Id: I35fd60d985032fe824f6fd6266910378adcca519
2014-01-29 14:15:34 -08:00
Dmitry Kovalev
afc8f43448 Merge "Moving RATE_CONTROL struct to vp9_ratectrl.h." 2014-01-29 14:02:26 -08:00
Dmitry Kovalev
0ac4e139d4 Merge "Removing ONEPASS_FRAMESTATS struct." 2014-01-29 14:00:25 -08:00
Deb Mukherjee
56200336d1 Merge "Enables alt-ref frames in one pass mode" 2014-01-29 13:37:30 -08:00
Dmitry Kovalev
70cde0af3d Removing ENC_DEBUG.
Change-Id: I101017621003314f000a454725ea13fc9db43177
2014-01-29 12:58:57 -08:00
Dmitry Kovalev
5670f1e2a8 Merge "Finally removing vp9_setup_interp_filters() function." 2014-01-29 12:54:21 -08:00
Dmitry Kovalev
126b096b3c Merge "Cleaning up vp9_firstpass.c." 2014-01-29 12:50:26 -08:00
Dmitry Kovalev
6332063475 Combining fb_idx_ref_cnt[] and yv12_fb[] arrays.
Adding new RefCntBuffer struct which contains reference counter and image
buffer.

Change-Id: I71c1f532faa13442c32c43fc03ec45b6f88fb844
2014-01-29 12:48:01 -08:00
Yunqing Wang
ce1da99745 Merge "Add macros for convolve functions" 2014-01-29 12:45:49 -08:00
Dmitry Kovalev
b00eb5c464 Finally removing vp9_setup_interp_filters() function.
Change-Id: If446225afbb49f6033c2a4516a37c377de6f70f7
2014-01-29 11:29:34 -08:00
Dmitry Kovalev
b496d141af Cleaning up vp9_firstpass.c.
Change-Id: Ic2ff6405f01fd43d07c5ee3b5e374909401115cc
2014-01-29 11:26:09 -08:00
Deb Mukherjee
50bf8fd4f5 Enables alt-ref frames in one pass mode
Includes a few fixes and clean-ups that adds the ability
to use alt-ref frames in one-pass mode.
Whether alt-refs are actually used or not is controlled by a
macro USE_ALTREF_FOR_ONE_PASS in vp9_firstpass.c.

This first cut seems to improve derf by 15+% in 1-pass mode.
But further experiments with parameters are underway.

Change-Id: I78254421435478003367c788c7930d2dc4ee2816
2014-01-29 11:04:52 -08:00
Jim Bankoski
ea8aaf15b5 create super fast rtc mode
This patch only works if the video is a width and height that are both
a multiple of 32..   It sets every partition to 16x16, and does INTRADC
only on the first frame and ZEROMV on every other frame.   It always does
does the largest possible transform, and loop filter level is set to 4.

Was ~20% faster than speed -5 of vp8

Now 20% slower but adds motion search ( every block ), nearest, near
and zeromv

The SVC test was changed because - while this realtime mode produces
bad quality albeit quickly, it isn't obeying all the rules it should
about which frames are available.

Change-Id: I235c0b22573957986d41497dfb84568ec1dec8c7
2014-01-29 08:39:39 -08:00
Paul Wilkins
c382136122 Trap divide by 0.
Trap divide by 0 that could occur with a 0 rate target
in aq mode COMPLEXITY_AQ.

Change-Id: I034514f512b2a0db470ae8d37ea395278bf473cf
2014-01-29 14:59:04 +00:00
Yunqing Wang
3c29cbffbf Add macros for convolve functions
Added macros to reduce the code duplication.

Change-Id: I1916aa5a386ea07d961d4ec439ab09bb8c45487d
2014-01-28 18:40:23 -08:00
Jim Bankoski
d9201cb109 Merge "Reintroduce modelling for some speeds" 2014-01-28 15:12:03 -08:00
Jim Bankoski
79af185891 Reintroduce modelling for some speeds
Change-Id: Ia8fa3961eec34545465018281dc022bc6f73869a
2014-01-28 13:51:06 -08:00
Dmitry Kovalev
45d99257c9 Moving RATE_CONTROL struct to vp9_ratectrl.h.
Change-Id: I0c286e3d68a4a4ecf6df02e6fd9990327b0ceb22
2014-01-28 12:57:49 -08:00
Dmitry Kovalev
214d9bb03a Removing ONEPASS_FRAMESTATS struct.
It seems we don't use it and not going to.

Change-Id: Ie76cd04dafc79b0a5911f8957d4253ca2d787f0c
2014-01-28 12:48:19 -08:00
Dmitry Kovalev
b098c04290 Merge "Decoupling set_ref_ptrs() and vp9_setup_interp_filters()." 2014-01-28 10:37:58 -08:00
Dmitry Kovalev
4ce35d8f2d Merge "Removing _1d suffix from transform names." 2014-01-28 10:37:26 -08:00
Yaowu Xu
1fecc5bd2e Merge "Added a speed feature" 2014-01-28 10:28:54 -08:00
hkuang
af87148a22 Merge "Add vp9_tm_predictor_32x32 neon implementation which is 7.8 times faster than C." 2014-01-28 09:57:08 -08:00
Dmitry Kovalev
ff41764920 Removing _1d suffix from transform names.
It is enough to specify (e.g.) idct16, it is obviously different from
idct16x16.

Change-Id: I6b408a37a945de3162429380b59a775b03b95db0
2014-01-27 16:15:36 -08:00
hkuang
770454f3a8 Add vp9_tm_predictor_32x32 neon implementation
which is 7.8 times faster than C.

Change-Id: I858ef4ec09202a07d445da8db702783d6d9d7321
2014-01-27 16:01:07 -08:00
Dmitry Kovalev
e5b31a1d8c Decoupling set_ref_ptrs() and vp9_setup_interp_filters().
Change-Id: I8d17867a4772554cbba2bd113cc5b4c99d50146d
2014-01-27 16:00:20 -08:00
Dmitry Kovalev
aaa43ed383 Clamping active_{best, worst}_quality values.
Change-Id: If370f83080b403e417716d1edad58fdaa2b90170
2014-01-27 12:58:31 -08:00
Dmitry Kovalev
1c96e3985e Merge "Adding get_bsize() function to vp9_firstpass.c." 2014-01-27 11:46:41 -08:00
Alex Converse
321f0ee272 Enforce the use of profile 1 for non-420 content.
Change-Id: I297954b16bce9e23931331520eadfb47540ff660
2014-01-27 11:23:08 -08:00
Dmitry Kovalev
b2f0ae65c7 Merge "Removing subpix_fn_table struct." 2014-01-27 10:42:42 -08:00
Alex Converse
f01855b0c7 Merge "Cache loop filter errors." 2014-01-27 10:25:35 -08:00
Alex Converse
11786b04e2 Merge "Refactor loop filter level search." 2014-01-27 10:25:12 -08:00
hkuang
05d2081d38 Fix the vp9_tm_predictor_8x8_neon.
Change-Id: I832cf83871044bfee7b7e57dbd31bae05cbd53e9
2014-01-27 10:17:20 -08:00
Deb Mukherjee
1a8394f7f3 Multiple resize filters
Adds multiple filters in the 0.5-1.0 range in the last stage
of the resize functions to prevent over-smoothing/aliasing

Change-Id: I1a615adb16f0df5095790945c94b28b4d6a6fc48
2014-01-25 09:39:48 -08:00
Dmitry Kovalev
b93fcec3b7 Adding get_bsize() function to vp9_firstpass.c.
Change-Id: I31373ad860eb554eb3b03e877e8fba580dc3de07
2014-01-24 18:10:02 -08:00
Alex Converse
c0214e7155 Cache loop filter errors.
This avoids fitlering a frame multiple times at the same level.

Change-Id: I1fd54dd7ea257d16da8569f48036b8fad3a3ed61
2014-01-24 17:08:25 -08:00
Alex Converse
8c2ae2d5df Refactor loop filter level search.
Factor out the code that tries filtering a frame at a given level.

Change-Id: Ia04507e3ce6b1ad6ae7d05a9d88222fd319f44b7
2014-01-24 17:08:24 -08:00
Dmitry Kovalev
8691565441 Removing subpix_fn_table struct.
We don't use different filter kernels for x and y, it is always one kernel
for both directions.

Change-Id: Iefcbb02ec74bf46ea20d9dca672a3efd5d631517
2014-01-24 17:06:26 -08:00
Dmitry Kovalev
f9f936b82f Merge "Renaming INTERPOLATION_TYPE to INTERP_FILTER." 2014-01-24 16:52:10 -08:00
Yaowu Xu
a0b9b050b8 Added a speed feature
That force the stop of subpel search possibly at full/half/quater pel
stages

Change-Id: Ie50c500417bd78e1a53e6620bd4c2b85f63d9c67
2014-01-24 16:40:36 -08:00
Frank Galligan
183361dadb Merge "Optimize vp9_tm_predictor_8x8_neon function" 2014-01-24 16:21:56 -08:00
Yaowu Xu
7adfa9f4cb Merge "change to avoid IOC" 2014-01-24 16:05:13 -08:00
Dmitry Kovalev
4264c93844 Renaming INTERPOLATION_TYPE to INTERP_FILTER.
Corresponding renames:
  subpel_kernel              => interp_kernel
  vp9_get_filter_kernel()    => vp9_get_interp_kernel()
  pred_filter_type           => pred_interp_filter
  adaptive_pred_filter_type  => adaptive_pred_interp_filter
  mcomp_filter_type          => interp_filter
  read_interp_filter_type()  => read_interp_filter()
  write_interp_filter_type() => write_interp_filter()
  fix_mcomp_filter_type()    => fix_interp_filter()

Change-Id: I1fa61fa1dc81ebbf043457c3ee2d8d4515bee6d3
2014-01-24 15:57:28 -08:00
Dmitry Kovalev
03eb63c114 Merge "Removing MODE_STATS." 2014-01-24 15:53:12 -08:00
Alex Converse
aed0d8c463 Merge "Add some consts to vp9_calc_ss_err()." 2014-01-24 15:41:01 -08:00
Dmitry Kovalev
29c1af295f Merge "Removing unused inter_mode_counts field from CODING_CONTEXT." 2014-01-24 14:47:59 -08:00
Alex Converse
ea283a6272 Add some consts to vp9_calc_ss_err().
Also change its wrongly named dest parameter to reference.

Change-Id: Ide142dead31c9ccda1f09a48b221284369783fb7
2014-01-24 14:26:02 -08:00
Alex Converse
6a457ef794 Merge "Add a method to estimate loop filter level from quantizer and frame type." 2014-01-24 14:10:14 -08:00
Dmitry Kovalev
3a05782c6f Merge "Inlining IFMVCV macro." 2014-01-24 13:56:16 -08:00
Yaowu Xu
6d2307b2dd Merge "Fixed integer overflow for large input video" 2014-01-24 13:44:05 -08:00
Dmitry Kovalev
f7ddbeba4a Removing unused inter_mode_counts field from CODING_CONTEXT.
Change-Id: I24ff8ab3d2c807906aa86974bcb4c540256206de
2014-01-24 13:31:57 -08:00
Yaowu Xu
8971338c6b change to avoid IOC
SSE for a 64x64 block with 3 planes can go as high as 3*2^28. So left
shift by 4 may overflow 32 bit int.

Change-Id: I63c84aa56894788bb987299badabbd7cc6fd0be6
2014-01-24 12:49:44 -08:00
Dmitry Kovalev
d79b0706e9 Merge "Cleaning up vp9_ratectl.c file." 2014-01-24 12:29:50 -08:00
Alex Converse
4ce8929b9e Add a method to estimate loop filter level from quantizer and frame type.
Use this method with rt at speed -5.

Change-Id: If3bd6fad4c05ddde72131442dad191e4145047e7
2014-01-24 11:44:10 -08:00