Commit Graph

217 Commits

Author SHA1 Message Date
Dmitry Kovalev
9774962a24 Cleaning up vp9_encodemb.c file.
Usage of encode_b_args is unnecessary because encode_block_pass1() doesn't
use them. That's why optimize_init_b() call is also not required.

Change-Id: Ib6cfe4916c2ca85749c90bb0adcba6fea592f9ac
2014-02-26 13:51:12 -08:00
Adrian Grange
9b9c33a2b8 Remove comment from calls to vp9_clear_system_state.
Removed the comment "// __asm emms;" from all calls
to vp9_clear_system_state.

Change-Id: Ib4dae69c1cdf3f185b04184a870cd70c4d703f10
2014-02-18 15:43:42 -08:00
Adrian Grange
120f2144d2 Change post- to pre-increment.
Change-Id: I29e4d3a3c8cceb18825371bb78c83c0e7dd86e0f
2014-02-14 16:15:13 -08:00
Adrian Grange
b7be30eb36 Cleanup some comments.
Change-Id: I568861ba1d43620865ad9a98a97eef37a51fd856
2014-02-14 15:05:30 -08:00
Jim Bankoski
cd6b9936a6 Merge "vp9_ratectrl.h resolve visual studio warnings" 2014-02-14 09:09:16 -08:00
Jim Bankoski
0c7fbe0057 Merge "vp9_firstpass.c visual studio warnings addressed" 2014-02-14 09:08:27 -08:00
Jim Bankoski
e5dda3b677 vp9_ratectrl.h resolve visual studio warnings
Change-Id: If3a2edd744eb76337fa78f34d0e059cda2c6da54
2014-02-14 06:36:44 -08:00
Jim Bankoski
bf5f2e7f90 vp9_firstpass.c visual studio warnings addressed
Change-Id: I6fe9ec50f937b12fd9c9321465270e289dbbc59d
2014-02-14 06:10:36 -08:00
Paul Wilkins
d84978b84f Merge changes I121fe66c,I94f57f8a
* changes:
  Remove some cases for turning off arf.
  Modified Aq1 and Aq2
2014-02-13 09:31:53 -08:00
Paul Wilkins
c30a9cd97d Remove some cases for turning off arf.
Flipping arf on and off too often is hurting some clips.
This change makes no difference for 50-75% of our test
clips but helps some by a big margin. (eg. std-hd crew
by 6% and one of the YT and YT-hd clips by 14%)

Average improvements for 2 pass, speed 2 (psnr,ssim)
are as follows:-

derf  0.165%, 0.210%
yt  1.210%, 1.464%
yt-hd 1.189%, 1.471%
std-hd 1.031%, 0.886%

Change-Id: I121fe66cfb4a62d384b23b484a7d648789641969
2014-02-13 14:51:38 +00:00
Jim Bankoski
35e24e33d3 Merge "clear out static analysis warning" 2014-02-13 06:20:05 -08:00
Jim Bankoski
4c2074f969 clear out static analysis warning
Change-Id: Ic8708bb8a56ab30617c8ef47072b53928a53a1a3
2014-02-12 11:54:38 -08:00
Deb Mukherjee
cf479baa03 Merge "Removes active_worst_quality feedback" 2014-02-12 09:20:31 -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
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
dce41c013b Cleaning up vp9_firstpass.c.
Change-Id: I111d6d1ea5ee641780abc096341369a37627aaae
2014-02-05 15:11:12 -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
8d7cd8e75c Merge "Removing unused estimate_cq() function." 2014-02-04 16:57:57 -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
Jim Bankoski
37e5325b9f Merge "static function convert to inline or global vp9_blockd.h" 2014-01-31 20:16:37 -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
Dmitry Kovalev
1ee4916794 Cleaning up vp9_get_second_pass_params() function.
Change-Id: Ie7b295190d8def447408e575ea0f3fa3c7eb7dd2
2014-01-31 16:49:33 -08:00
Adrian Grange
908482cb3a Typo & comment corrections
Change-Id: I64569afe61a2679afdd263d3e226a89b9f73cc61
2014-01-31 16:02:48 -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
Deb Mukherjee
56200336d1 Merge "Enables alt-ref frames in one pass mode" 2014-01-29 13:37:30 -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
Dmitry Kovalev
b93fcec3b7 Adding get_bsize() function to vp9_firstpass.c.
Change-Id: I31373ad860eb554eb3b03e877e8fba580dc3de07
2014-01-24 18:10:02 -08:00
Yaowu Xu
e5034f65e5 Fixed integer overflow for large input video
The sum of squared mv components can go beyond int range for large
 input resolution. This commit changed the type to int64 to avoid
overflow.

Change-Id: Ib21ea2817845cea1435f893064e6417c79c5bc64
2014-01-24 11:34:41 -08:00
Dmitry Kovalev
9c0fbd573f Merge "Setup pre[0] buffer before calls to {first_pass, zz}_motion_search." 2014-01-24 11:15:01 -08:00
Adrian Grange
8b0537f631 Merge changes I24ad1f0f,I33be1366
* changes:
  Reorder functions to avoid forward declaration
  Rename set_scale_factors as set_ref_ptrs
2014-01-24 08:38:52 -08:00
Dmitry Kovalev
520496ba95 Cleaning up vp9_firstpass.c file.
Change-Id: Ic352b0429d5784f9d78872a478fe6275ee7a56a0
2014-01-23 12:36:19 -08:00
Dmitry Kovalev
7450275755 Setup pre[0] buffer before calls to {first_pass, zz}_motion_search.
Change-Id: I9b94e741201eacb1982014724a532bdaae31f130
2014-01-23 12:14:57 -08:00
Adrian Grange
e54e4b03db Reorder functions to avoid forward declaration
Change-Id: I24ad1f0f1cb0e991c476ea174db8ac1584929b02
2014-01-22 16:20:39 -08:00
Dmitry Kovalev
ed6bb10f0f Fixing simple_weight() function + cleanup.
We used y_width/y_height instead of y_crop_width/y_crop_height.

Change-Id: Ia796494956f16d7a4085e043d58bdfe6de19abe7
2014-01-22 08:57:13 -08:00
Dmitry Kovalev
2b6e0fe010 Merge "Cleaning up first_pass_motion_search() function." 2014-01-22 01:51:08 -08:00
Dmitry Kovalev
209a3ae4f4 Merge "Replacing cpi->twopass with twopass." 2014-01-21 23:01:27 -08:00
Yaowu Xu
dbae98082c Enforce key frame placement
Change-Id: I2f85c6b058638571d68a7209779de8ca8168934f
2014-01-21 14:08:43 -08:00
Alex Converse
2b3891d9da Fix key frames for one pass.
Set this_key_frame_forced flag and don't use kf_boost when not set.

Change-Id: Ibe66a82fa9219e60db358ddeb43d6471816c8b50
2014-01-16 13:04:51 -08:00
Dmitry Kovalev
a86a5b17e5 Replacing cpi->twopass with twopass.
Change-Id: I733a84ec178439ead66e031395d9a8e49e8f4d1a
2014-01-15 16:21:38 -08:00
Dmitry Kovalev
c37d54a93e Merge "Replacing cpi->rc with rc." 2014-01-15 16:04:05 -08:00
Yaowu Xu
293532f314 Merge "Add max burst bitrate control." 2014-01-15 14:40:59 -08:00
Dmitry Kovalev
b7465b3efb Replacing cpi->rc with rc.
Change-Id: I0fbb7615545861e26ebffe72bd44f3a0e8616df7
2014-01-15 12:46:18 -08:00
Dmitry Kovalev
efdbd29928 calculate_modified_err() cleanup.
Change-Id: Ia24c9b1ff2d51dd9cb133722a041a615e1b8419f
2014-01-15 12:23:16 -08:00
Dmitry Kovalev
0f008fbd2e Cleaning up first_pass_motion_search() function.
Change-Id: I4826a71c7f99db09e5362b16703d024939587f25
2014-01-14 18:07:23 -08:00
Dmitry Kovalev
382470db42 Merge "Removing unnecessary casts + cleanup." 2014-01-14 14:47:48 -08:00
Dmitry Kovalev
970e945795 Merge changes I8eda5762,Ia2ffca07
* changes:
  Removing unused switchable_interp_count[] field from VP9_COMP.
  Using clamp() function instead of the same raw code.
2014-01-14 14:46:07 -08:00