3453 Commits

Author SHA1 Message Date
Dmitry Kovalev
6e01079cc0 Removing unused vp9_variance_halfpixvar*() functions.
Change-Id: I99695564a3aa9bc8c79ac0a551d257e2ff3ad3c3
2014-04-25 11:50:07 -07:00
Jingning Han
7e6d851675 Merge "Apply max intra block size condition to non-RD mode decision" 2014-04-24 17:27:14 -07:00
Dmitry Kovalev
03e7deae4f Removing unused vp9_sub_pixel_mse* functions.
Change-Id: I8d906da3bd6de0d3042676846f61a8b2a3444508
2014-04-24 11:49:12 -07:00
Adrian Grange
1aa2d1a444 Remove key_frame_frequency variable from VP9_COMP
This member of VP9_COMP seemed unnecessary since it
only shadowed VP9EncoderConfig.key_freq that is
accessible through VP9_COMP.

Change-Id: Ib751bb1cf1b0b3c50a2a527d7c34f6829dd6fee3
2014-04-24 08:44:47 -07:00
Jingning Han
5a4e17b42f Apply max intra block size condition to non-RD mode decision
Change-Id: I9b86a94d11db2239c85f61aeed5bbd83a0dfa028
2014-04-23 18:59:26 -07:00
Adrian Grange
086ae99235 Fixed handling of regularly placed keyframes
The encoder was not handling requests to place keyframes at
fixed intervals, i.e. kf_min_dist == kf_max_dist, correctly.

In this case when looking to place the next keyframe it was
accumulating stats all the way up to the end of the firstpass
file. This patch corrects this behavior.

Change-Id: I948ad9f1d7faa0c05861df588136cce3bb61d7e7
2014-04-23 16:59:43 -07:00
Jingning Han
ace194a059 Merge "Chessboard pattern prediction filter type search in non-RD coding" 2014-04-23 12:48:27 -07:00
Dmitry Kovalev
8e528e8e6d Merge "Adding macro to define vp9_variance_WxH_c() functions." 2014-04-23 11:35:11 -07:00
Jingning Han
8969f7c892 Chessboard pattern prediction filter type search in non-RD coding
This commit introduces a chessboard pattern search for the prediction
filter type search. It runs extensive search in alternate blocks and
allows the rest blocks to refer coding decisions of their nearby
neighbors.

For pedestrian 1080p at 4000 kbps, the runtime of speed -5 goes down
from 43990 ms to 42200 ms. The overall compression performance for
RTC set is changed by -1.37%.

Change-Id: Icfe220c49451cda796f0ca91d935c9ed01e56c9d
2014-04-23 10:41:07 -07:00
Dmitry Kovalev
e608418899 Renaming MB_PREDICTION_MODE to PREDICTION_MODE.
Actually, it would be great to have two separate enums INTRA_MODES and
INTER_MODES in future.

Change-Id: I6c4147cf0002853da9c1e03fe9514eab876f01c8
2014-04-22 17:48:31 -07:00
Dmitry Kovalev
54006d1a1b Adding macro to define vp9_variance_WxH_c() functions.
Change-Id: I983e3831938d4ae055de20b8d257d223e7916b1f
2014-04-22 17:45:30 -07:00
Dmitry Kovalev
ef003078e8 Renaming "onyx" to "encoder".
Actual renames:
  vp9_onyx_if.c -> vp9_encoder.c
  vp9_onyx_int.h -> vp9_encoder.h

Change-Id: I80532a80b118d0060518e6c6a0d640e3f411783c
2014-04-22 14:57:05 -07:00
Alex Converse
9926f1566e Merge "Fix the CONFIG_ALPHA build." 2014-04-22 12:49:28 -07:00
Dmitry Kovalev
4a6abcb900 Merge "Template macros to generate subpix variance functions." 2014-04-22 11:42:42 -07:00
Dmitry Kovalev
a5cd9afb8c Merge "Inlining vp9_set_segmentation_map() function." 2014-04-22 11:42:07 -07:00
Alex Converse
e6222b1a47 Fix the CONFIG_ALPHA build.
Change-Id: Ib89fe34812c17cd6294ce3c38f87d43a79abb16f
2014-04-22 11:23:49 -07:00
Minghai Shang
afc5636699 Merge "Bug fix for svc first pass rate control." 2014-04-22 10:59:55 -07:00
Adrian Grange
4fa3e98876 Merge "Force ARNR filtering to be centered on the ARF frame" 2014-04-22 10:39:02 -07:00
Adrian Grange
59e733ca81 Force ARNR filtering to be centered on the ARF frame
ARNR filtering is now forced to be centered on the ARF
frame and the other two options have been removed.

The other modes of constructing the ARNR frame were
not used and there does not seem to be any good
reason to maintain them.

This is purely an encoder-side change.

Change-Id: Ic772636d23f280752973852b9740083532a49de2
2014-04-22 08:03:25 -07:00
Dmitry Kovalev
0b25a3ca95 Inlining vp9_set_segmentation_map() function.
Change-Id: I82f23f0f91a0be8329e20fcd2a5918c6a096dacc
2014-04-21 20:22:36 -07:00
Dmitry Kovalev
b02b362d21 Template macros to generate subpix variance functions.
Change-Id: I931fde6013aa18294b49a361f75f177ab1262574
2014-04-21 19:57:25 -07:00
Yaowu Xu
0bba4f1efa Merge "Allow full RD TX size search for GF/ALT at speed 2" 2014-04-21 18:32:36 -07:00
Paul Wilkins
de43d2c67e Merge "Change naming of end_usage parameter." 2014-04-21 18:29:22 -07:00
Yaowu Xu
d928b34efe Allow full RD TX size search for GF/ALT at speed 2
For speed 3 and above, such search is only allowed at speed 3.
The change helped cif and stdhd set by 1.2% and .7% in compression,
but increased the encoding time by around 5%.

Change-Id: Ifa4832327f1c1bef3decb032ceb769cbf50e059f
2014-04-21 12:31:46 -07:00
Paul Wilkins
4c7af859d7 Change naming of end_usage parameter.
The end_useage parameter  is confusingly named since it
now actually defines the rate control method used.

Change-Id: I98912caabfe556b7af0b939a645d1336409e4d71
2014-04-21 11:49:38 -07:00
Dmitry Kovalev
79303c993a Merge "Adding setup_frame() function." 2014-04-21 10:44:08 -07:00
Dmitry Kovalev
ece689650a Merge "Cleaning up vp9_rdopt.c." 2014-04-21 10:41:04 -07:00
Dmitry Kovalev
f0a47f85c5 Merge "Don't set loop filter sharpness in vp9_change_config()." 2014-04-21 10:40:30 -07:00
Dmitry Kovalev
37f0886bbf Merge "Cleaning vp9_variance.{c, h}." 2014-04-21 10:40:05 -07:00
Jingning Han
e38ca5422c Merge "Enable background detection for adaptive quantizer control" 2014-04-21 09:36:11 -07:00
Yaowu Xu
a7ecad59b6 Merge "Merge two new VBR adjustment schemes." 2014-04-21 09:11:24 -07:00
Yaowu Xu
3a5b7dd087 Merge "Add experimental VBR adaptation method." 2014-04-21 09:11:19 -07:00
Jingning Han
80a4f55989 Enable background detection for adaptive quantizer control
This commit enables a background detection approach for adaptive
quantizer control. It combines the cyclic refresh pattern and the
background information to determine the segment id for adaptive
quantizer selection, prior to the non-RD mode decision process.
It hence allows proper quantization information update for a more
precise rate-distortion modeling in the non-RD mode decision.

The compression performance of speed -5 for rtc set is improved
by 2.5%, at no speed change.

Change-Id: Ic3713e8ed9185b403b5b1679d19dabd57506d452
2014-04-21 08:57:53 -07:00
Dmitry Kovalev
6962ea665d Merge "Moving set_rd_speed_thresholds{,_sub8x8} to vp9_rdopt.{h, c}." 2014-04-18 18:18:08 -07:00
Dmitry Kovalev
5a54977aa4 Cleaning vp9_variance.{c, h}.
Change-Id: I802308de4817e48a627bb44a744d32010fe7818f
2014-04-18 17:05:28 -07:00
Dmitry Kovalev
d5d26f7692 Cleaning up vp9_rdopt.c.
Change-Id: Ifd008968326e61ab492162351e358bf0ac0dac0a
2014-04-18 16:56:43 -07:00
Adrian Grange
2b22185c14 Merge "Remove ALT_REF_MC_ENABLED and tidy-up ARNR code." 2014-04-18 16:34:57 -07:00
Dmitry Kovalev
76d58ba414 Moving set_rd_speed_thresholds{,_sub8x8} to vp9_rdopt.{h, c}.
Change-Id: I983364b33e8f103b43a0448821e890989176f1cc
2014-04-18 16:34:01 -07:00
Dmitry Kovalev
4c609680fb Don't set loop filter sharpness in vp9_change_config().
The right value is calculated and set in vp9_pick_filter_level().

Change-Id: I5f725ac21f90dc9b80181a09a2040970bf6671d4
2014-04-18 13:59:30 -07:00
Minghai Shang
1ec44505c9 Bug fix for svc first pass rate control.
1. We didn't scale source image in lower layers so that
the stats are incorrect.
2. We didn't extend borders for re-constructed image.

Change-Id: Ia8d7bafbdb695ffa7f504e171f9449812e7bb0a3
2014-04-18 13:08:48 -07:00
Dmitry Kovalev
07f86d0944 Renaming VP9_CONFIG to VP9EncoderConfig.
Change-Id: Id48edd12c6f649c82113128491ef6ea7410e93b2
2014-04-18 11:01:36 -07:00
Dmitry Kovalev
400973c361 Merge "Adding get_pass() function." 2014-04-18 10:38:20 -07:00
Adrian Grange
a6266e0399 Remove ALT_REF_MC_ENABLED and tidy-up ARNR code.
Change-Id: I922d988486b47f413d11a8eeb38532a484d15c80
2014-04-18 08:57:34 -07:00
Jingning Han
741c6bb619 Merge "Fix broken encoding process at sub8x8 block size" 2014-04-18 08:46:54 -07:00
Dmitry Kovalev
e62875b5a6 Merge "Removing cq_target_quality from VP9_COMP." 2014-04-17 18:27:19 -07:00
Dmitry Kovalev
69b88df206 Merge "Adding is_best_mode() function." 2014-04-17 18:26:54 -07:00
Jim Bankoski
1355af5c42 Merge "rename labels2mode because it was a terrible name." 2014-04-17 15:42:41 -07:00
Jim Bankoski
209d348c92 Merge "renamed pick_best_mbsegmentation and remove rd_check_segment_txsize" 2014-04-17 15:42:36 -07:00
Jim Bankoski
d9db2aa12a Merge "rename mode_index to ref index in vp9_rd_pick_inter_mode_sub_8x8" 2014-04-17 15:42:27 -07:00
Jingning Han
a7c69a71d9 Fix broken encoding process at sub8x8 block size
Use the correct buffer to update the coding mode decision for
sub8x8 blocks.

Change-Id: I091ef27d2047eeb8b73ceb7c2c7c45b38ba8c6d5
2014-04-17 15:33:46 -07:00