Commit Graph

3267 Commits

Author SHA1 Message Date
Dmitry Kovalev
41ea9ef955 Merge "Removing redundant assignments." 2014-04-09 16:56:25 -07:00
Alex Converse
71ffc7d7ff Merge "Remove unused tile arguments from vp_rdopt." 2014-04-09 16:45:46 -07:00
Alex Converse
1eee13c0ab Merge "Cleanup vp9_rd_pick_inter_mode_sub8x8()." 2014-04-09 16:45:41 -07:00
Yaowu Xu
2dc92482d0 Merge "Fix the setting of mode_skip_mask" 2014-04-09 14:29:23 -07:00
Dmitry Kovalev
7cc78c06e0 Merge "Adding vp9_inc_frame_in_layer() function." 2014-04-09 12:50:25 -07:00
Alex Converse
3ab4d57196 Remove unused tile arguments from vp_rdopt.
Change-Id: I721ff26e3d5dbef80b8cd2dd562adae3748f6687
2014-04-09 11:48:30 -07:00
Alex Converse
dcb5157608 Cleanup vp9_rd_pick_inter_mode_sub8x8().
Change-Id: I9be2e4e9aeda0fae6dc946deae2999be51daebe0
2014-04-09 11:48:24 -07:00
Yaowu Xu
4f95a7fe3e Fix the setting of mode_skip_mask
In mode selection loop, once mode_index pass mode_skip_start, all
modes with a different reference frame from current best mode are
masked out using mode_skip_mask.

However, the setting of mode_skip_mask may use an invalid mode if
there is no mode tested yet. This commit fixes the issue by making
sure a mode has been tested and selected. Otherwise, no mode will be
masked out because of their reference frame.

Change-Id: Ib0009e8a96836a65cf5347440fff8a2e1a67f29f
2014-04-09 11:42:28 -07:00
Dmitry Kovalev
0ba14e600c Fixing broken build.
Change-Id: I9b8f9a3f4fa9d48695149dd68ecb5e8d84accafe
2014-04-09 10:46:54 -07:00
Dmitry Kovalev
5ed83c3220 Merge "Converting set_prev_mi() to get_prev_mi()." 2014-04-09 10:27:05 -07:00
Yunqing Wang
2e7d327789 Merge "Use source frame difference to make partition decision" 2014-04-09 10:26:42 -07:00
Dmitry Kovalev
51b3035fc3 Adding vp9_inc_frame_in_layer() function.
Change-Id: Idf612c772440158cd1645623241c51ab0d57405c
2014-04-09 10:26:32 -07:00
Dmitry Kovalev
a30ff3458d Merge "Applying q_trans[] inside set_encoder_config()." 2014-04-09 10:25:59 -07:00
Jingning Han
ae6485663a Merge "Select prediction filter type in non-RD mode decision" 2014-04-09 09:07:45 -07:00
Deb Mukherjee
0cca5dd8d7 Merge "High-level hooks for Profile 2 (10/12 bit)" 2014-04-08 22:19:38 -07:00
Dmitry Kovalev
5db5154029 Applying q_trans[] inside set_encoder_config().
Change-Id: Ib64edeb58b3e25488fb85bbe85c9decb15b4d0a1
2014-04-08 19:43:08 -07:00
Dmitry Kovalev
4b1c4420e7 Removing redundant assignments.
Change-Id: I3ced24f2c3b9cc483278c0f0d60512e7d2efa4f4
2014-04-08 18:52:25 -07:00
Dmitry Kovalev
c27bdb9bc1 Merge "Cleaning up encode_frame_internal()." 2014-04-08 18:23:15 -07:00
Dmitry Kovalev
755433927c Merge "Cleaning up vp9_firstpass.c" 2014-04-08 18:22:34 -07:00
Yunqing Wang
4e66293fcb Use source frame difference to make partition decision
Calculate the difference variance between last source frame and
current source frame. The variance is calculated at 16x16 block
level. The variances are compared to several thresholds to decide
final partition sizes.

An adaptive strategy is implemented to decide using
SOURCE_VAR_BASED_PARTITION or FIXED_PARTITION based on motions
in the video. The switching test is done once every
search_type_check_frequency frames.

The selection of source_var_thresh needs to be investigated
further later.

RTC set Borg test showed 0.424% overall psnr gain, and 0.357%
ssim gain. For clips with large enough static area, the
encoding speedup is around 2% to 15%.

Change-Id: Id7d268f1d8cbca7fb8026aa4a53b3c77459dc156
2014-04-08 17:03:02 -07:00
Jingning Han
06ec873f2c Select prediction filter type in non-RD mode decision
This commit allows the non-RD mode decision flow to  select
prediction filter type in NEWMV mode. It provides 8.14% compression
performance gains in both settings of AQ=0 and 3. The current speed
impact is about 5% to 10% slower.

Change-Id: Id66ecebf77abd8f90fb3f6a066c0e8dfb4bf1c42
2014-04-08 16:47:42 -07:00
Deb Mukherjee
d35df2d8ea High-level hooks for Profile 2 (10/12 bit)
Adds some high-level hooks for profile 2 before further
progress on the implementation.

According to the definitiion in this patch:
1. Profile 2 only supports 10 or 12 bit color but not 8
2. Profile 2 supports all color sampling modes: 444, 422 and 420,
and alpha plane.
3. Profile 3 is currently undefined.

Please consider the definition carefully and suggest modifications
to the definition as needed.

Change-Id: I5b284fc679e54ac5aee171af72fa7994cfd28995
2014-04-08 16:18:34 -07:00
Dmitry Kovalev
129cb23c14 Adding vp9_ssim.h file.
Change-Id: Ib3b3864a6018c62ac1ea18e30795af74464596cd
2014-04-08 16:08:39 -07:00
Dmitry Kovalev
231ef057c4 Cleaning up vp9_firstpass.c
Change-Id: Ie5723690f7c0bfa29a7ccef5da0c6c6326600ee6
2014-04-08 15:21:30 -07:00
Dmitry Kovalev
e8e380f994 Merge "Cleaning up vp9_ratectrl.c file." 2014-04-08 15:06:29 -07:00
Dmitry Kovalev
7e7c95a291 Merge "Cleaning up vp9_diamond_search_sad_c() function." 2014-04-08 13:47:41 -07:00
Dmitry Kovalev
e9fb970af1 Merge "Moving init_rate_control() to vp9_ratectrl.{c, h}." 2014-04-08 12:45:49 -07:00
Dmitry Kovalev
92380695f6 Cleaning up vp9_ratectrl.c file.
Change-Id: If8044d9c71afe02ed1e6c94487344e143bdfcd74
2014-04-08 11:59:41 -07:00
Yaowu Xu
e2ab65ab7d Merge "vp9_ratectrl: change ARF overlays rate correction factor" 2014-04-08 07:17:38 -07:00
Yaowu Xu
8f68468917 Merge "Replace imprecise 32 bits calculations by 64 bits calculations" 2014-04-08 07:14:21 -07:00
Yaowu Xu
2914bcfd9b Merge "vp9_firstpass: Get rid of magic number in bits per MB calculation" 2014-04-08 07:13:49 -07:00
Dmitry Kovalev
6769143cef Merge "Moving compute_qdelta functions into vp9_ratectrl.{h, c}." 2014-04-07 22:39:38 -07:00
Dmitry Kovalev
91dbac178f Moving compute_qdelta functions into vp9_ratectrl.{h, c}.
Change-Id: I512f2a287dd8765879a2d1144e2f028dc65f71ff
2014-04-07 16:57:53 -07:00
Dmitry Kovalev
9243edc737 Cleaning up vp9_diamond_search_sad_c() function.
Change-Id: I0816ec12ec0a6f21d0f25f10c214b5fd327afc6c
2014-04-07 16:28:35 -07:00
Dmitry Kovalev
22a3e30790 Converting set_prev_mi() to get_prev_mi().
Change-Id: Iad4002d7aecaae0e25d88e286bacde7e6cd7264f
2014-04-07 16:01:34 -07:00
Dmitry Kovalev
8204140891 Cleaning up encode_frame_internal().
Change-Id: I9c5f7edc2d5d1ec5aee396b87bdfc99ee21c435a
2014-04-07 15:51:48 -07:00
Marco Paniconi
181949948e Add constrained-copy partition to speed features.
Copy up to a certain bsize, otherwise set to a fixed bsize.
This helsp to reduce artifact near moving boundary caused by full partition
copy without checking motion of super-block.
This artifact can occur at speeds 3,4 in real-time mode.
Issue: https://code.google.com/p/webm/issues/detail?id=738.

Change-Id: I05812521fd38816a467f72eb6a951cae4c227931
2014-04-07 14:58:28 -07:00
Dmitry Kovalev
e8c1c95cde Merge "Rewriting calc_plane_error() function." 2014-04-07 14:41:42 -07:00
Dmitry Kovalev
bbffaf627b Merge "General vp9_encodeframe.c cleanup." 2014-04-07 14:35:54 -07:00
Dmitry Kovalev
e7e426b274 Moving init_rate_control() to vp9_ratectrl.{c, h}.
Change-Id: Iab3effc39064f265426c82b455ef38d37dcce5a8
2014-04-07 14:34:46 -07:00
Dmitry Kovalev
3f48418472 Merge "Cleaning up vp9_speed_features.c." 2014-04-07 14:18:02 -07:00
Dmitry Kovalev
0cb65fe5cc Merge "Removing unused seg0_* vars." 2014-04-07 13:16:06 -07:00
Dmitry Kovalev
acf39c8568 Merge "Moving {restore, save}_coding_context to vp9_onyx_if.c" 2014-04-07 13:15:58 -07:00
Dmitry Kovalev
233b581cef Cleaning up vp9_speed_features.c.
Change-Id: I7b2b690d2d51d55daa642be4131e5febd78cbe0a
2014-04-07 12:54:11 -07:00
Dmitry Kovalev
7169a0b114 Adding temp svc variable.
Change-Id: Ic68caec1bcb8a88f443c3e40ce9770eade5bd320
2014-04-07 11:31:26 -07:00
Dmitry Kovalev
22580c462b Moving {restore, save}_coding_context to vp9_onyx_if.c
These functions do nothing about rate control.

Change-Id: I714e80b1c1f4f9aa157a56df705247fce6db138d
2014-04-07 10:32:15 -07:00
Guillaume Martres
4664b219a2 vp9_ratectrl: change ARF overlays rate correction factor
ARF overlays now use the same rate correction factor as regular inter
frames, further testing would be needed to see if it makes sense to use
a completely separate rate correction factor for ARF overlays.

$ vpxenc --cpu-used=5  --fps=50/1 --target-bitrate=2000
         parkjoy.y4m -o out.webm
=> Before: 3356 kb/s
=> After: 2271 kb/s

Change-Id: I73e4defa615ba7a8a2bdb845864f4b1721cbbffe
2014-04-07 18:22:11 +02:00
Guillaume Martres
0ec5919d42 Replace imprecise 32 bits calculations by 64 bits calculations
Change-Id: If1b0a2d6603ce24f5dd99855e8dfe459e7a2835a
2014-04-07 18:22:08 +02:00
Guillaume Martres
ded9e19144 vp9_firstpass: Get rid of magic number in bits per MB calculation
Change-Id: Ib3886cb7cafc211581f4f9e7f76782d9d1984434
2014-04-07 18:21:40 +02:00
Dmitry Kovalev
f9c7e2c304 Merge "Cleaning up vp9_refining_search_sadx4() function." 2014-04-07 01:49:21 -07:00