Commit Graph

4426 Commits

Author SHA1 Message Date
Frank Galligan
f860408911 Merge "Fix frames that have no references to them." 2014-02-12 14:38:26 -08:00
Dmitry Kovalev
50712fcaa9 Adding consts to mv search function arguments.
Change-Id: Ie79114bba4f0cea55d9f701e20d2be2017630f3b
2014-02-12 14:28:23 -08:00
Jim Bankoski
9e190dfbfe fast approximate model_rd_from_var_lapndz
Change-Id: Ieceaa16312941992d4a57455e336d625dfe4e094
2014-02-12 14:16:55 -08:00
Jingning Han
0eecccc51e Remove inactive control parameters
Change-Id: Ic5692af975fe6bd2d8ec82bbae103c6f7c2fc13e
2014-02-12 12:48:15 -08:00
Jingning Han
25479e94a4 Remove unused using_small_partition_info functions
This function is deprecated after the re-design of partition search
that runs big block size, then four-way split, followed by
rectangular block sizes. This commit removes the related functions.

Change-Id: I417549c8e0fa3cf35bd29816b805dd4e7c3660c6
2014-02-12 12:24:10 -08:00
Jingning Han
2e86d2de85 Remove unused function in vp9_encodeframe
The function rd_pick_reference_frame can be deprecated. Its use was
subsumed by the adaptive motion search control.

Change-Id: Icb0c2fa335f0f06fa7b79a71f972d9fa54d750db
2014-02-12 12:23:29 -08:00
Dmitry Kovalev
fffb3be765 Merge "Cleaning up vp9_full_search_sad_c() function." 2014-02-12 12:14:34 -08:00
Dmitry Kovalev
0109d757ee Merge "Removing vp9_foreach_transformed_block_uv() function." 2014-02-12 12:11:14 -08:00
Jim Bankoski
eb5889f882 static analysis warning in vp9_ratectrl.c
Change-Id: I8aa3dd068d9a7225b3e8b24392a7b4a54b9435dd
2014-02-12 11:54:53 -08:00
Jim Bankoski
f324f0c54e vp9_mcomp.c static analysis issues
Change-Id: I8c0023e3f03297993431e21158ee3821af75f82d
2014-02-12 11:54:47 -08:00
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