Commit Graph

2937 Commits

Author SHA1 Message Date
Jim Bankoski
d496cd3074 remove ioc problem with rdcost calculation
Change-Id: Idd800fae21508699e9d973134817493763a65042
2014-02-26 07:46:56 -08:00
Dmitry Kovalev
abe21e42e7 Removing redundant vp9_clear_system_state() call.
This function is already called in vp9_initialize_rd_consts().

Change-Id: I88c0484a7274660287fa25fdf5cdb721d3284e01
2014-02-25 18:11:42 -08:00
Dmitry Kovalev
8d80c262d1 Using clamp() for active_{best, worst}_quality.
Change-Id: Ia79f975f54829b8ae6b568ca5c05f4f1f541706f
2014-02-25 18:01:49 -08:00
Dmitry Kovalev
7d121ea86e Cleaning up vp9_rdopt.c.
Change-Id: Ic7553a037493107c33cfb9815178a54095a289ec
2014-02-25 17:46:27 -08:00
Dmitry Kovalev
0444deb8d1 Removing vp9_optimize_b() function.
Change-Id: If859c9d58a8fe3f478d409b9e9ca59bcee8fd35d
2014-02-25 17:23:01 -08:00
Jingning Han
c0e99f84f9 Use sub-pixel accuracy prediction non-RD mode
This commit builds the actual prediction block in sub-pixel accuracy
and uses which to calculate SAD for non-RD mode decision. In the trail
run on pedestrian_area at 1080p, rtc speed -7 runtime goes from
23495 ms -> 25107 ms (7% slower). The compression performance is
improved by 20.57% for rtc test set.

Change-Id: I438589cd103fe99f1b50c2d1939ac6ca43fa0157
2014-02-25 16:29:20 -08:00
Alex Converse
cfd0eeeebb Merge "Shrink dct_value_cost[] to int16_t." 2014-02-25 14:30:33 -08:00
Jingning Han
fd49e9678e Use dedicated variables to store the best mode
Use a set of dedicated variables to buffer the current best mode
in non-RD mode decision. This allows to use mode_info for more
complicated test in the non-RD process.

Change-Id: I6024c9feb0662afd3eb29f7017f7b5a5446f303f
2014-02-25 13:56:12 -08:00
Deb Mukherjee
276e568997 Merge "Adds variance based fixed size partitioning" 2014-02-25 13:46:21 -08:00
Alex Converse
1075c49a3f Shrink dct_value_cost[] to int16_t.
The largest value is 13358.

Change-Id: I7a6b024a92b6250933d9ebc0cad066b966c96bd4
2014-02-25 13:07:18 -08:00
Deb Mukherjee
10bae82510 Adds variance based fixed size partitioning
Adds a method for determining a fixed size partition based on
variance of a 64x64 SB. This method is added to rtc speed 6.
Also fixes a bug in rtc_use_partition() and includes some
refactoring related to partitioning search, and some cosmetics.

Currently compared to speed 5, the coding efficiency of speed 6
is -19% and that of speed 7 is -55%, in cbr mode.

Change-Id: I057e04125a8b765906bb7d4bf7a36d1e575de7c6
2014-02-25 12:20:59 -08:00
Dmitry Kovalev
4632a96d97 Merge "Using vp9_subtract_plane instead of vp9_subtract_{sb, sby, sbuv}." 2014-02-25 11:06:05 -08:00
Dmitry Kovalev
7bca32a6a3 Merge "Changing vp9_full_search_sad{, x3, x8} signatures." 2014-02-25 10:51:17 -08:00
Dmitry Kovalev
55214924ac Merge "Cleaning up vp9_refining_search_sad() function." 2014-02-25 10:44:19 -08:00
Yunqing Wang
da47b3415b Merge "Disable adaptive pred filter for non-split mode" 2014-02-25 08:28:03 -08:00
Yaowu Xu
b67bd637e0 Merge changes I7e96d619,I9a7631d5
* changes:
  normalize int64_t high value to INT64_MAX
  resolve issue with arm code failing unit test
2014-02-25 08:22:49 -08:00
Jim Bankoski
ec55dd1007 normalize int64_t high value to INT64_MAX
Change-Id: I7e96d6199f882d35357f6a9a08c04ad0af5dc26e
2014-02-25 07:29:48 -08:00
Jim Bankoski
df9c8d5bd9 resolve issue with arm code failing unit test
The optimizer did something funny with the code around
line 1412.  Before the call to encode_sb split_dist was
set properly but after it was adjusted and converted to
a negative.

https://code.google.com/p/webm/issues/detail?id=714

Change-Id: I9a7631d5325ade2dc28c1030653a23eecec8721b
2014-02-24 17:34:27 -08:00
Yunqing Wang
fee045d13a Disable adaptive pred filter for non-split mode
If sf->disable_split_mask is DISABLE_ALL_SPLIT, disable
sf->adaptive_pred_interp_filter to avoid unnecessary operations.

Change-Id: Icb59174b2f4e9a3c3c16a696deb8018e5bd999eb
2014-02-24 14:05:06 -08:00
Deb Mukherjee
5f542408b4 Adds an intermediate speed level for rtc
Moves the existing speed 6 to speed 7 and adds an
intermediate level 6 which is roughly in between
speeds 6 and 7 in both speed and coding efficiency.
Also includes some minor fixes/adjustments.

Change-Id: I98befc4d82d750e79fe426c457c4a2571f6b6cc7
2014-02-24 12:15:33 -08:00
Dmitry Kovalev
092f32cf78 Merge "Combining if-else branches from different conditions." 2014-02-23 08:28:43 -08:00
Jingning Han
4b3e44f91d Merge "Periodically update mode and mv costs" 2014-02-22 11:54:20 -08:00
Yaowu Xu
5a7ac03b9e Changed a constant array to static const type
Change-Id: I5b3918441f63ceb7889dcf546e9a2d781be4a3cb
2014-02-21 22:44:13 -08:00
Yaowu Xu
f1633e5844 Merge "Remove an unused variable" 2014-02-21 22:44:05 -08:00
Jingning Han
836252bfa6 Periodically update mode and mv costs
Skip coefficient cost update in non-RD mode decision setting. Allow
periodical mode and motion vector cost update. Currently every other
8 frames. The increment runtime is a constant number. Hence more
visible for CIF resolution, while negligible for 1080p.

Speed -6 compression performance for rtc set is improved by 4.5%.

Change-Id: I27e0ad7c521fcc2af1d825582cbdd1a27ac4c323
2014-02-21 18:25:43 -08:00
Jingning Han
ba9b4b81be Merge "Refactor selected partition size coding for rtc" 2014-02-21 17:41:32 -08:00
Jingning Han
1fc0bde675 Refactor selected partition size coding for rtc
This commit makes a refactoring of the rtc_use_partition. It allows
the encoder to take a preferred block size for non-RD mode decision.
The boundary blocks are handled such that smaller block sizes that
fit in the boundary size will be used instread.

In rtc mode, the coding performance of speed -6 for pedestrian_1080p
goes from
158980 b/f, 38.934 dB, 22721 ms to
159008 b/f, 40.064 dB, 23721 ms.

For rtc set, the speed -6 compression performance is improved by
26%. Still about 2dB behind speed -5 at this point.

Change-Id: If0944f0880eaf1ad340bc325d97cea8d0f9dd53f
2014-02-21 14:49:57 -08:00
Yaowu Xu
67a1bff91d Merge "vp9_rd_pick_inter_mode_sb() reorganization" 2014-02-21 12:06:31 -08:00
Alex Converse
463ba70581 vp9_rd_pick_inter_mode_sb() reorganization
* Reduce the number of short cirtcuit checks by pre-computing and combining like checks.
* Postpone non-trivial initializations until after the shortcircuits are evaluated.
* Add some consts and const pointers.

No change to the actual results of the call or output of the encoder.

Change-Id: Ie44c4702aec6e08cfe0b8b0ba3cd6b57206478d1
2014-02-20 18:06:25 -08:00
Jingning Han
d66a63f02b Enable reduced set of intra modes in rtc coding
This commit enables the use of DC, vertical, and horizontal intra
prediction mode in rtc non-RD mode decision. When the best cost value
of inter modes is above a given threshold, the encoder runs the
above three intra modes and selects the one that has minimum
prediction residual in terms of SAD.

This together with recent changes on non-RD mode decision and coding
control improves compression performance of speed -6 by
derf  91%
yt    61%
hd    46%
stdhd 52%

In terms of encoding speed, it is about 3 times faster than speed -5.

Change-Id: I6b483bfd0307e6482bb22a6676ae4e25a52b1310
2014-02-20 18:03:23 -08:00
Jingning Han
a134527bdc Merge "Force alt reference frame off in rtc mode" 2014-02-20 18:03:12 -08:00
James Zern
e36cfc91a4 Merge "vp9_subpel_variance_impl_intrin_avx2.c: make some tables static" 2014-02-20 16:03:23 -08:00
Jingning Han
abf5b8d5eb Force alt reference frame off in rtc mode
When non-RD coding decision is used in rtc mode, the alt reference
is not used for inter frame prediction. This commit disabled alt ref
option whenever speed -6 is used.

Change-Id: I0b33ca03661de1db2d9bef1bcbff848cd4c9396f
2014-02-20 15:27:16 -08:00
Yaowu Xu
c58e1c7be9 Remove an unused variable
Change-Id: I8eeec70a7d4403243762f14d0b560792801645e8
2014-02-20 14:49:44 -08:00
Jingning Han
65bcabbe8c Merge "Use MI_BLOCK_SIZE in block coding loop" 2014-02-20 14:29:30 -08:00
Jingning Han
2aac18a4a6 Merge "Rework non-RD mode decision coding flow" 2014-02-20 14:28:57 -08:00
Yunqing Wang
cde6b50cb1 Merge "Use fast HEX search in real time mode" 2014-02-20 12:07:10 -08:00
Alex Converse
1d34991139 Merge "Only track mode_chosen_counts if CONFIG_INTERNAL_STATS." 2014-02-20 12:03:48 -08:00
Tom Finegan
595985334e vp9_encodeframe.c: Silence rdmult assignment warning with a cast.
Cast result of round() to int.

Change-Id: Ib708fddfadde4c765001ce9723fda113fd0f4bf6
2014-02-20 12:01:47 -08:00
Tom Finegan
6224516235 Merge "vp9_vaq.c: Cast result of round() to int to silence warning caused by clamp() call." 2014-02-20 11:57:36 -08:00
Tom Finegan
15e95086e2 vp9_encodeframe.c: Silence totalrate assignment warning with a cast.
Cast result of round() to int.

Change-Id: I4982886ad4e7657b4c40d21bd850d31690a68c28
2014-02-20 11:53:11 -08:00
Marco Paniconi
fd402e1374 Condition alt-ref entropy context setting on svc.
Avoid special context setting for alt-ref in svc mode.

Change-Id: I5337d0739abe16aab7854bcaa3c8537191c4b60c
2014-02-20 09:55:29 -08:00
Paul Wilkins
bb61327b98 Merge "vp9_rdopt.c: Use int64_t for dist_sum and rate_sum in model_rd_for_sb()." 2014-02-20 02:03:49 -08:00
Alex Converse
657519192e Only track mode_chosen_counts if CONFIG_INTERNAL_STATS.
Change-Id: Ia9252ad0caa4d2bda529a3fe93efcb31e7eb2da0
2014-02-19 18:52:04 -08:00
Alex Converse
43b7959dbc Merge "Do not use the value of 'rate_mv' if uninitialized." 2014-02-19 12:41:14 -08:00
Jingning Han
93ba687499 Use MI_BLOCK_SIZE in block coding loop
Change-Id: Ia70057e11c9b3d9d4bea6fbdd08839334ed02dce
2014-02-19 11:17:12 -08:00
Jingning Han
b99ed1ec5a Rework non-RD mode decision coding flow
In the first coding run of a 64x64 block, check the coding mode
for each 8x8 block. Will need a second annealing stage to decide
the partition size to be encoded.

Change-Id: Ida9417805ff3358979b0c0429d4099c023c88866
2014-02-19 11:13:05 -08:00
Paul Wilkins
98bf47df16 Merge "Remove comment from calls to vp9_clear_system_state." 2014-02-19 05:14:51 -08:00
Dmitry Kovalev
a7f8624458 Cleaning up vp9_onyx_if.c.
Change-Id: I389790f1ad0dd40816a7ae1ddad4a5c46278cff3
2014-02-19 10:59:53 +01:00
Dmitry Kovalev
35bd886864 Merge "Cleaning up pack_inter_mode_mvs() function." 2014-02-19 01:04:36 -08:00
Dmitry Kovalev
4e06ee39b0 Merge "Removing unused tree_update_hist[] array." 2014-02-19 01:02:51 -08:00
Dmitry Kovalev
54164c0e07 Merge "Cleaning up vp9_encodemb.c." 2014-02-19 01:02:30 -08:00
Tom Finegan
a0e495579e vp9_rdopt.c: Use int64_t for dist_sum and rate_sum in model_rd_for_sb().
Removes unnecessary casts and silences warnings.

Change-Id: Ic516a909a2b3748831be6717f02d86ca60190af3
2014-02-18 22:31:11 -08:00
Yaowu Xu
f4ce20c530 Removed unnecessary type cast
Change-Id: I0f2d5155ec042e9b5cbe9a9d6b186b121ed7737f
2014-02-18 21:03:47 -08:00
James Zern
d12b39daab vp9_subpel_variance_impl_intrin_avx2.c: make some tables static
+ fix formatting

Change-Id: I7b4ec11b7b46d8926750e0b69f7a606f3ab80895
2014-02-18 20:42:49 -08:00
Tom Finegan
76c1896fda vp9_vaq.c: Cast result of round() to int to silence warning caused by clamp() call.
clamp() wants an int, round returns a double, warning! Too bad we can't just use lrint.

Change-Id: I9c08289dde742fac0d673df8559a1892edcd1bc7
2014-02-18 18:26:42 -08:00
Alex Converse
2ceaf10e07 Do not use the value of 'rate_mv' if uninitialized.
This happens when exiting single_motion_search() early due to adaptive_motion_search.

Change-Id: Ic396e7e31e59ff219bb66a459c873c9e5b17400d
2014-02-18 17:04:42 -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
Jingning Han
e3178d0c1c Merge "Enable sub-pixel motion search for rtc mode" 2014-02-18 14:52:13 -08:00
Jingning Han
f11a85127b Merge "Initialize internal buffer pointers in rtc mode" 2014-02-18 14:51:38 -08:00
Yunqing Wang
360c80cfb9 Use fast HEX search in real time mode
In good quality mode motion search, the best matches are normally
found after searching in a large area. In real time mode, to make
encoding fast, a center-biased fast HEX search is used, which
converges quickly most of the time. A 4-point diamond search is
also carried out as the following refining search, which gives more
precise results, and maintains good motion search quality.

At speed 5, the borg test on rtc set showed an overall PSNR loss of
0.936%. The encoding speed gain is 4% - 5%.

Change-Id: I42cd68bb56a09ca1b86293c99d5f7312225ca7ae
2014-02-18 14:35:16 -08:00
Yunqing Wang
ad8d4454f0 Merge "AVX2 SubPixel Variance Optimization" 2014-02-18 12:18:13 -08:00
Jingning Han
6478673933 Enable sub-pixel motion search for rtc mode
Run sub-pixel motion search when NEWMV gives lower rate-distortion
cost. This improves coding performance of derf set by 8%, std-hd by
2.2%.

Change-Id: Ife50f7fda8463927784fe59a41cc439c833e941a
2014-02-18 12:07:55 -08:00
Yaowu Xu
671514ebee Merge "vp9_onyx_if.c resolve vs warnings" 2014-02-17 08:37:25 -08:00
Adrian Grange
bed0be5b22 Merge "Change post- to pre-increment." 2014-02-17 07:27:32 -08:00
Dmitry Kovalev
35092585d8 Cleaning up vp9_refining_search_sad() function.
Change-Id: Ife6131d31882177953a22a69d25adc35940429ed
2014-02-17 14:51:58 +01:00
Dmitry Kovalev
36420009ea Changing vp9_full_search_sad{, x3, x8} signatures.
Passing block MV pointer instead of block index into
vp9_full_search_sad{, x3, x8} functions.

Change-Id: Ica07356633471c2c8f81b583a7aeba85a436bafb
2014-02-17 14:24:57 +01:00
Dmitry Kovalev
f6fd5b2704 Using vp9_subtract_plane instead of vp9_subtract_{sb, sby, sbuv}.
Change-Id: I67a82a347245076b6c3b0bc41b587f9961a29943
2014-02-17 13:57:40 +01:00
Dmitry Kovalev
9141272235 Cleaning up vp9_encodemb.c.
Change-Id: Ia5b35494e4e18758f9f6c172526db83a87fdaa26
2014-02-17 12:34:02 +01:00
Jim Bankoski
6c5f6b306b vp9_onyx_if.c resolve vs warnings
Change-Id: I02cc50648b62768e20d2f465b5ad09648b1abe93
2014-02-15 21:02:18 -08:00
James Zern
cca8a54cdd Merge "A couple more V.S. warnings silenced." 2014-02-15 10:32:57 -08:00
Tom Finegan
6a6c427710 vp9/encoder/vp9_onyx_if: Fix compute_qdelta_by_rate() warnings
- Rename and make static
  s/vp9_compute_qdelta_by_rate/compute_qdelta_by_rate/
- Make base_q_index an integer.
- Add a cast.

Change-Id: Iea8d1397fd2717e7373b182ec51f5db960ef2cca
2014-02-14 21:14:33 -08:00
Paul Wilkins
8618c70683 A couple more V.S. warnings silenced.
Change-Id: Ica1b583d69810182f621de757d2543b2a3b35566
2014-02-14 20:34:14 -08:00
Dmitry Kovalev
a6bd65080f Removing unused tree_update_hist[] array.
Change-Id: If2e8e06c74d065323523904ff1771590fd48cabc
2014-02-14 17:22:34 -08:00
Adrian Grange
120f2144d2 Change post- to pre-increment.
Change-Id: I29e4d3a3c8cceb18825371bb78c83c0e7dd86e0f
2014-02-14 16:15:13 -08:00
Adrian Grange
d2095e0c6d Merge "Cleanup some comments." 2014-02-14 16:14:58 -08:00
levytamar82
52dac5d1cb AVX2 SubPixel Variance Optimization
Optimizing 2 functions to process 32 elements in parallel instead of 16:
1. vp9_sub_pixel_variance64x64
2. vp9_sub_pixel_variance32x32
both of those function were calling vp9_sub_pixel_variance16xh_ssse3
instead of calling that function, it calls vp9_sub_pixel_variance32xh_avx2
that is written in avx2 and process 32 elements in parallel.
This Optimization gave 70% function level gain and 2% user level gain

Change-Id: I4f5cb386b346ff6c878a094e1c3b37e418e50bde
2014-02-14 16:59:11 -07:00
Deb Mukherjee
0876302e4e Merge "Make cpi->speed always positive" 2014-02-14 15:53:30 -08:00
Deb Mukherjee
5306eda9da Merge "Enforce max-intra-pct in one-pass cbr mode" 2014-02-14 15:53:19 -08:00
Adrian Grange
b7be30eb36 Cleanup some comments.
Change-Id: I568861ba1d43620865ad9a98a97eef37a51fd856
2014-02-14 15:05:30 -08:00
Yaowu Xu
ecf392a155 Merge "minor spelling cleanup in comments" 2014-02-14 14:29:35 -08:00
Deb Mukherjee
56835f1bdd Make cpi->speed always positive
Minor fix to ensure that positive and negative cpu_used
values produce the same output.

Change-Id: I9157d05cb9a7c0bd57a4d8a9f268205a825b9b0b
2014-02-14 14:28:58 -08:00
Deb Mukherjee
12ae6eaf21 Enforce max-intra-pct in one-pass cbr mode
This was inadvertently left out in a previous refactoring step.

Change-Id: Idf3350e95152f876a1a1a4591dd30c8981856c96
2014-02-14 14:27:02 -08:00
Jim Bankoski
323a7120b9 Merge "vp9_rdopt.c : Silence more V.S. compiler warnings." 2014-02-14 14:23:51 -08:00
Jim Bankoski
f25dec89b8 Merge "vp9_bitstream.c resolve warnings in vs" 2014-02-14 14:17:39 -08:00
Jim Bankoski
57704bff94 Merge "vp9_pickmode.c resolve vs issue" 2014-02-14 14:16:18 -08:00
Jim Bankoski
8dc39a7540 Merge "vp9_vaq.c resolve vs warnings" 2014-02-14 14:15:38 -08:00
Paul Wilkins
40e374bbae vp9_rdopt.c : Silence more V.S. compiler warnings.
Change-Id: I151c6c9396b8ea1ce2e05b80359f60f0d38af138
2014-02-14 11:28:37 -08:00
Jim Bankoski
00717e804c vp9_bitstream.c resolve warnings in vs
Change-Id: I65677b7822204dc7344c67b8080e90633afc13dc
2014-02-14 11:19:39 -08:00
Jim Bankoski
524bac612a vp9_pickmode.c resolve vs issue
Change-Id: Ibe4276fa9ffeb2ef30871d6db8ac75c4648f1e58
2014-02-14 11:19:31 -08:00
Jim Bankoski
a60b76bd09 vp9_vaq.c resolve vs warnings
Change-Id: I8f1107a33f0ec51010fb00eae3d28ee8b4d748c2
2014-02-14 11:18:59 -08:00
Alex Converse
bb07de7cce Remove some unused and non-persistant variables from VP9_COMP.
Change-Id: I4deb1b97eec6b1244e3460a1162b41fa5312654a
2014-02-14 10:17:31 -08:00
Jim Bankoski
80ccb45c9e Merge "vp9_ratectrl - convert buffers to int64 to avoid casting" 2014-02-14 09:42:21 -08:00
Jim Bankoski
e63b78a4bb Merge "vp9_write_bit_buffer.h add consts to suppress warnings in vs" 2014-02-14 09:42:12 -08:00
Jim Bankoski
cd6b9936a6 Merge "vp9_ratectrl.h resolve visual studio warnings" 2014-02-14 09:09:16 -08:00
Jim Bankoski
5cc0de90d2 Merge "vp9_onyx_int.h resolve visual studio warning errors" 2014-02-14 09:09:06 -08:00
Jim Bankoski
5750f78d61 Merge "fast approximate model_rd_from_var_lapndz" 2014-02-14 09:08:52 -08:00
Jim Bankoski
e727bcf7ce Merge "vp9_mcomp.c visual studio warnings resolved" 2014-02-14 09:08:34 -08:00
Jim Bankoski
0c7fbe0057 Merge "vp9_firstpass.c visual studio warnings addressed" 2014-02-14 09:08:27 -08:00
Jim Bankoski
fb4f10a26e vp9_ratectrl - convert buffers to int64 to avoid casting
Change-Id: Ifd6b2d36d91237b5f38853a3a8a529d8be38ba09
2014-02-14 07:36:47 -08:00
Jim Bankoski
0abb06571b vp9_write_bit_buffer.h add consts to suppress warnings in vs
Change-Id: Iacda473090ae84c798f1d93df8284f34bdf646a5
2014-02-14 07:30:33 -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
27f4b14c65 vp9_onyx_int.h resolve visual studio warning errors
Change-Id: Iec8a51bdea6d6c916051d3bc5bbc6d00754d0cc8
2014-02-14 06:36:29 -08:00
Jim Bankoski
6025ec7901 vp9_mcomp.c visual studio warnings resolved
Change-Id: I7546cc8db4decbcd094ad76c64385b97666331b0
2014-02-14 06:35:36 -08:00
Jim Bankoski
bf5f2e7f90 vp9_firstpass.c visual studio warnings addressed
Change-Id: I6fe9ec50f937b12fd9c9321465270e289dbbc59d
2014-02-14 06:10:36 -08:00
Dmitry Kovalev
e9cefd1b20 Cleanup: removing "ptr" suffix from var names.
Change-Id: If8e340dd6823323025a12f851e78fffdbcaaf6f8
2014-02-13 19:23:24 -08:00
Dmitry Kovalev
19a8eee1f0 Cleaning up pack_inter_mode_mvs() function.
Change-Id: I48ad06e3e1ae9720a0683022621f4504e3bebce6
2014-02-13 19:21:10 -08:00
Dmitry Kovalev
bdd8966439 Merge "Removing reference to non-existing context_counters array." 2014-02-13 17:35:19 -08:00
Yaowu Xu
8d646becb6 Merge "Removed the reset of mode_info from previous frame" 2014-02-13 17:03:50 -08:00
Alex Converse
27f809db91 Merge "Disable using golden frame modes if golden frames are not being used" 2014-02-13 16:39:32 -08:00
Marco Paniconi
e590e087d5 Fix target frame size setting, for 1pass cbr.
Only use layered average size if number_temporal_layers > 1.

Also removed unneeded commented-out line, and change some parameter
setting in vpx_temporal_scalable_patterns.c

Change-Id: Ic86e43e7daf0313e8c5a4aba1497299158111955
2014-02-13 15:21:09 -08:00
Dmitry Kovalev
40af118a41 Removing reference to non-existing context_counters array.
Change-Id: I84668fa7b9487102e9bde5aea10f5f42efcd042c
2014-02-13 15:08:07 -08:00
Alex Converse
edec808787 Disable using golden frame modes if golden frames are not being used
Change-Id: I662c480ad49a242e10f1edb0c339ddbe2c6bccf4
2014-02-13 13:38:59 -08:00
Dmitry Kovalev
56f2752231 Merge "Using MV instead of int_mv inside vp9_full_pixel_diamond()." 2014-02-13 12:55:10 -08:00
Yaowu Xu
896d79a57e Removed the reset of mode_info from previous frame
Prior to this commit, both encoder and decoder reset mode/mv info from
previous frame in error resilient mode to ensure bitstreams are able to
decode when there is loss of frame in decoder side. However, this is
not necessary. This commit changed to remove the reset, so encoder can
continue to use mode/mv/partition information from previously encoded
frame without affecting decodeablilty under loss of frame.

Change-Id: I0279f862900dc647fb471ae3389770bb1b9f454f
2014-02-13 12:48:08 -08:00
Jingning Han
95abad9169 Merge "Remove redundant set_offsets in rtc coding mode" 2014-02-13 12:10:45 -08:00
Jingning Han
cc10ee0add Initialize internal buffer pointers in rtc mode
In rtc coding mode, the encoder is running non-RD mode decision. It
does not need dual buffer swap as was the case in the RD mode. This
commit initializes the internal buffer pointers outside the block
coding loop for rtc mode.

Change-Id: Ie076705c60d6b7919217e3f1dfd49e7db5064ac2
2014-02-13 11:41:08 -08:00
Dmitry Kovalev
ea53d6c15f Combining if-else branches from different conditions.
Change-Id: Ie51cf58de4f872d2261022558b6afe780bbc470b
2014-02-13 11:29:45 -08:00
Dmitry Kovalev
fde1b6d7f2 Using MV instead of int_mv inside vp9_full_pixel_diamond().
Change-Id: If33a5a12c4025d9b5ec863dfccea7ee70f800665
2014-02-13 11:23:05 -08:00
Dmitry Kovalev
df6c523fed Merge "Renaming skip_coeff to skip for consistency." 2014-02-13 11:04:34 -08:00
Jingning Han
4712877ef6 Remove redundant set_offsets in rtc coding mode
The functionalities of set_offsets() are subsumed in later
set_partitioning() and rtc_use_partition() functions, hence removed.

Change-Id: Ie514b13cb66c2379f13d0be9b1da4c12ca4581e5
2014-02-13 09:41:58 -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
Jim Bankoski
32d07c626e Merge "vp9_mbgraph.c static analysis issues resolved." 2014-02-13 08:32:12 -08:00
Jim Bankoski
4f34df4bf2 Merge "vp9_temporal_filter.c static analysis issue resolution" 2014-02-13 08:32:01 -08:00
Jim Bankoski
6a6797f5c9 Merge "vp9_pickmode.c static analysis issues resolved" 2014-02-13 08:31:49 -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
72c97b103e vp9_mbgraph.c static analysis issues resolved.
Change-Id: I6ec6e072fcd59f9b5fac4ce221a86f9078103ae3
2014-02-13 06:43:44 -08:00
Jim Bankoski
677b5375aa vp9_temporal_filter.c static analysis issue resolution
Change-Id: I08a4364672cf8171932e8e85fb74fcbfa4b27d2d
2014-02-13 06:22:23 -08:00
Jim Bankoski
d7be0fd5ea Merge "vp9_rdopt.c static analysis issues resolved" 2014-02-13 06:22:08 -08:00
Jim Bankoski
c6eaf5f9f9 vp9_pickmode.c static analysis issues resolved
Change-Id: I716ea2967c6771d7adea571406f315a3197eab93
2014-02-13 06:20:57 -08:00
Jim Bankoski
7336dfe2ae Merge "static analysis warning in vp9_ratectrl.c" 2014-02-13 06:20:35 -08:00
Jim Bankoski
d2cd088cb7 Merge "vp9_mcomp.c static analysis issues" 2014-02-13 06:20:16 -08:00
Jim Bankoski
35e24e33d3 Merge "clear out static analysis warning" 2014-02-13 06:20:05 -08:00
Jim Bankoski
75ac2913de Merge "clean out static analyzer warnings vp9_encodeframe.c" 2014-02-13 06:19:26 -08:00
Dmitry Kovalev
c00d88cdae Merge "Removing init_rdcost_stack() + cleanup." 2014-02-12 18:24:03 -08:00
Dmitry Kovalev
8c3ca45dfb Merge "Converting int_mv to MV." 2014-02-12 17:53:50 -08:00
Jingning Han
dea1604ed2 Merge "Remove unnecessary vp9_setup_buffer_inter use" 2014-02-12 17:51:39 -08:00
Jingning Han
3818132a4b Merge "Remove inactive control parameters" 2014-02-12 17:51:30 -08:00
Jingning Han
91b5145673 Merge "Remove unused using_small_partition_info functions" 2014-02-12 17:51:18 -08:00
Jingning Han
ce79e8a114 Merge "Remove unused function in vp9_encodeframe" 2014-02-12 17:51:11 -08:00
Dmitry Kovalev
004c8c636e Renaming skip_coeff to skip for consistency.
Change-Id: I036e815ca63d00cba71202ae09ba0f6ef745dcb8
2014-02-12 17:44:12 -08:00
Dmitry Kovalev
8dd9ca4c32 Merge "Adding consts to mv search function arguments." 2014-02-12 17:31:52 -08:00
Jim Bankoski
bb2d683c26 vp9_rdopt.c static analysis issues resolved
Change-Id: Id53b574a4ecb5c8749383b3758c46b6bc1b275d5
2014-02-12 17:00:57 -08:00
Andrew Russell
549c31f8ae minor spelling cleanup in comments
Change-Id: Ia91c6c406273345b08505097ffe1af3896980f06
2014-02-12 16:32:51 -08:00
Dmitry Kovalev
733a17d253 Converting int_mv to MV.
Change-Id: Id15285aa48ac6d8fec19a1946e6391412d84f5be
2014-02-12 15:40:43 -08:00
Alex Converse
02c063797b Merge "Cleanup tokenize_b and hoist some invarients out of the loop." 2014-02-12 15:35:55 -08:00
Jingning Han
3c3dd1d5a3 Remove unnecessary vp9_setup_buffer_inter use
This function initializes the predictor buffer pointers and
calculates reference motion vectors. It is only needed in the settings
of inter frame coding. Hence removing it from the key frame coding
branch in rtc_use_partition.

Change-Id: Ic4e16c7467a5f32be4e0bf619ef9d57afb4a7075
2014-02-12 15:10:23 -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
Yunqing Wang
356a7e9642 Merge "Enable encode_breakout in real time encoding" 2014-02-11 21:07:24 -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
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
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
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
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
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
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