Commit Graph

4099 Commits

Author SHA1 Message Date
Paul Wilkins
8160a26fa0 Fix some bugs in multi-arf
Fix some bugs relating to the use of buffers
in the overlay frames.

Fix bug where a mid sequence overlay was
propagating large partition and transform sizes into
the subsequent frame because of :-
  sf->last_partitioning_redo_frequency  > 1 and
  sf->tx_size_search_method == USE_LARGESTALL

Change-Id: Ibf9ef39a5a5150f8cbdd2c9275abb0316c67873a
2014-06-24 13:07:48 +01:00
Paul Wilkins
2611022504 Clean out old CONFIG_MULTIPLE_ARF code.
Remove the old experimental multi arf code that was under
the flag CONFIG_MULTIPLE_ARF.

Change-Id: Ib24865abc11691d6ac8cb0434ada1da674368a61
2014-06-24 13:00:19 +01:00
Paul Wilkins
2e430cba61 Experiment for mid group second arf.
This patch implements a mechanism for inserting a second
arf at the mid position of arf groups.

It is currently disabled by default using the flag multi_arf_enabled.

Results are currently down somewhat in initial testing if
multi-arf is enabled. Most of the loss is attributable to the
fact that code to preserve the previous golden frame
(in the arf buffer) in cases where we are coding an overlay
frame, is currently disabled in the multi-arf case.

Change-Id: I1d777318ca09f147db2e8c86d7315fe86168c865
2014-06-24 12:59:14 +01:00
Alex Converse
2518e33bec Merge "Switch active map implementation to segment based." 2014-06-23 18:25:51 -07:00
Alex Converse
20adfc5350 Merge "Fork vp9_rd_pick_inter_mode_sb_seg_skip" 2014-06-23 18:25:46 -07:00
Adrian Grange
8c1f071f1e Allocate buffers based on correct chroma format
The encoder currently allocates frame buffers before
it establishes what the chroma sub-sampling factor is,
always allocating based on the 4:4:4 format.

This patch detects the chroma format as early as
possible allowing the encoder to allocate buffers of
the correct size.

Future patches will change the encoder to allocate
frame buffers on demand to further reduce the memory
profile of the encoder and rationalize the buffer
management in the encoder and decoder.

Change-Id: Ifd41dd96e67d0011719ba40fada0bae74f3a0d57
2014-06-23 11:45:13 -07:00
Alex Converse
6118dcfe40 Merge "Actually skip blocks in skip segments in non-rd encoder." 2014-06-23 10:23:20 -07:00
Jingning Han
961bafc366 Merge "Remove unused vp9_init_quant_tables function" 2014-06-23 09:37:30 -07:00
Alex Converse
aeacaac574 Switch active map implementation to segment based.
Change-Id: Ibb841a1fa4d08d164cf5461246ec290f582b1f80
2014-06-20 13:13:23 -07:00
Alex Converse
e8a4edf49e Fork vp9_rd_pick_inter_mode_sb_seg_skip
Change-Id: I549868725b789f0f4f89828005a65972c20df888
2014-06-20 13:13:18 -07:00
Alex Converse
173a86b2a2 Actually skip blocks in skip segments in non-rd encoder.
Copy split from macroblock to pick mode context so it doesn't get lost.

Change-Id: Ie37aa12558dbe65c4f8076cf808250fffb7f27a8
2014-06-20 11:49:02 -07:00
Tim Kopp
6d2ebfabb1 Merge "VP9 denoiser bugfixes" 2014-06-20 10:37:46 -07:00
Jingning Han
48b8ce21f0 Merge "Allow key frame more flexibility in mode search" 2014-06-20 09:38:02 -07:00
Tim Kopp
b79d5b62bd Fixed VP9 denoiser COPY_BLOCK case
Now copies the src to the correct location in the running average buffer.

Change-Id: I9c83c96dc7a97f42c8df16ab4a9f18b733181f34
2014-06-20 07:18:42 -07:00
Tim Kopp
31c03b31fe VP9 denoiser bugfixes
s/stdint.h/vpx\/vpx_int.h

Added missing 'break;'s

Also included other minor changes, mostly cosmetic.

Change-Id: I852bba3e85e794f1d4af854c45c16a23a787e6a3
2014-06-20 07:18:42 -07:00
Tim Kopp
7820abe53c Merge "Added CFLAG for outputting vp9 denoised signal" 2014-06-20 07:16:08 -07:00
Jingning Han
c99a8fd7c8 Allow key frame more flexibility in mode search
This commit allows the key frame to search through more prediction
modes and more flexible block sizes. No speed change observed. The
coding performance for rtc set is improved by 1.7% for speed -5 and
3.0% for speed -6.

Change-Id: Ifd1bc28558017851b210b4004f2d80838938bcc5
2014-06-19 14:47:12 -07:00
Tim Kopp
ab9755f3af Merge "Fixes in VP9 alloc, free, and COPY_FRAME case" 2014-06-19 12:43:00 -07:00
Jingning Han
b202e475e9 Merge "Separate rate-distortion modeling for DC and AC coefficients" 2014-06-19 11:47:55 -07:00
Tim Kopp
26955b2b6a Merge "Improved vp9 denoiser running avg update." 2014-06-19 11:22:50 -07:00
Tim Kopp
40d8a20106 Merge "Implemented COPY_BLOCK case for vp9 denoiser" 2014-06-19 11:02:46 -07:00
Yunqing Wang
8297b4d7cd Merge "Modify non-rd intra mode checking" 2014-06-19 09:30:04 -07:00
Tim Kopp
c9c4e13d09 Added CFLAG for outputting vp9 denoised signal
Change-Id: Iab9b4e11cad927f3282e486c203564e1a658f377
2014-06-19 08:41:36 -07:00
Tim Kopp
b56f3af7db Fixes in VP9 alloc, free, and COPY_FRAME case
Change-Id: I1216f17e2206ef521fe219b6d72d8e41d1ba1147
2014-06-19 08:41:36 -07:00
Tim Kopp
0fec8f9712 Improved vp9 denoiser running avg update.
Change-Id: Ie0aa41fb7957755544321897b3bb2dd92f392027
2014-06-19 08:41:36 -07:00
Tim Kopp
ff38807165 Implemented COPY_BLOCK case for vp9 denoiser
Change-Id: Ie89ad1e3aebbd474e1a0db69c1961b4d1ddcd33e
2014-06-19 08:41:36 -07:00
Tim Kopp
2614e56c58 Changed buf_2ds in vp9 denoiser to YV12 buffers
Changed alloc, free, and running average code as necessary.

Change-Id: Ifc4d9ccca462164214019963b3768a457791b9c1
2014-06-18 14:18:09 -07:00
Tim Kopp
a4b7a713a4 Update running avg for VP9 denoiser
Change-Id: I9577d648542064052795bf5770428fbd5c276b7b
2014-06-18 14:18:09 -07:00
Tim Kopp
2a72067301 Implemented vp9_denoiser_{alloc,free}()
Change-Id: I79eba79f7c52eec19ef2356278597e06620d5e27
2014-06-18 14:18:09 -07:00
Alex Converse
7557a65d16 BITSTREAM: Handle transform size and motion vectors more logically for non-420.
This breaks the profile 1 bitstream.

Don't force non420 uv transform size to 1/4 y size. In the 4:2:0 case the
chroma corresponding to a luma block is 1/4 its size. In the 4:4:4 case
chroma and luma planes are the same size. Disallowing larger transforms
can result in a loss of compression efficiency and is inconsistent.

For sub-8x8 blocks only average corresponding motion vectors.

4:2:0 and profile 0 behavior remains unchanged.

Change-Id: I560ae07183012c6734dd1860ea54ed6f62f3cae8
2014-06-18 13:07:51 -07:00
Jingning Han
3b9c19aaa7 Remove unused vp9_init_quant_tables function
This function is not effectively used, hence removed.

Change-Id: I2e8e48fa07c7518931690f3b04bae920cb360e49
2014-06-18 11:51:41 -07:00
Yunqing Wang
55834d42cc Modify non-rd intra mode checking
Speed 6 uses small tx size, namely 8x8. max_intra_bsize needs to
be modified accordingly to ensure valid intra mode checking.
Borg test on RTC set showed an overall PSNR gain of 0.335% in speed
-6.

This also changes speed -5 encoding by allowing DC_PRED checking
for block32x32. Borg test on RTC set showed a slight PSNR gain of
0.145%, and no noticeable speed change.

Change-Id: I1502978d8fbe265b3bb235db0f9c35ba0703cd45
2014-06-18 11:38:44 -07:00
Jingning Han
7c45dc98a8 Separate rate-distortion modeling for DC and AC coefficients
This is the first step to rework the rate-distortion modeling used
in rtc coding mode. The overall goal is to make the modeling
customized for the statistics encountered in the rtc coding.

This commit makes encoder to perform rate-distortion modeling for
DC and AC coefficients separately. No speed changes observed.
The coding performance for pedestrian_area_1080p is largely
improved:

speed -5, from 79558 b/f, 37.871 dB -> 79598 b/f, 38.600 dB
speed -6, from 79515 b/f, 37.822 dB -> 79544 b/f, 38.130 dB

Overall performance for rtc set at speed -6 is improved by 0.67%.

Change-Id: I9153444567e5f75ccdcaac043c2365992c005c0c
2014-06-18 10:50:38 -07:00
Dmitry Kovalev
bf46feb379 Merge "Moving RD-opt related code from vp9_encoder.h to vp9_rdopt.h." 2014-06-17 14:20:17 -07:00
Pengchong Jin
bed7cf2eeb Merge "skip the un-necessary motion search in the first pass" 2014-06-17 12:08:42 -07:00
Jingning Han
6cfb854eef Merge "Fix C versions of DC calculation functions" 2014-06-16 18:33:21 -07:00
Pengchong Jin
cdc954fdc8 skip the un-necessary motion search in the first pass
This patch allows the VP9 encoder to skip the un-necessary
motion search in the first pass. It computes the motion error
of 0,0 motion using the last source frame as the reference,
and skips the further motion search if this error is small.

Borg test shows overall the patch gives PSNR gain (derf -0.001%,
yt 0.341%, hd 0.282%). Individual clips may have PSNR gain or
loss. The best PSNR performance is 7.347% and the worst is -0.662%.
The first pass encoding speedup for slideshow clips is over 30%.

Change-Id: I4cac4dbd911f277ee858e161f3ca652c771344fe
2014-06-16 10:16:27 -07:00
unknown
45648532bc vp9_pickmode.c: fix vs12 compiler warnings
Change-Id: I5042b76a7050c121bf960ecb20c79d35adcc4cd5
2014-06-15 12:47:48 -07:00
Jingning Han
6b0bc34b62 Fix C versions of DC calculation functions
This commit fixes the scaling factors used in the C versions of the
DC calculation functions.

Change-Id: Iab41108c2bb93c2f2e78667214f3a772a2b707b5
2014-06-13 16:09:40 -07:00
Yunqing Wang
feaae409c8 Merge "Revert "skip un-neccessary motion search in the first pass"" 2014-06-13 15:21:26 -07:00
Dmitry Kovalev
3f8508eb61 Moving RD-opt related code from vp9_encoder.h to vp9_rdopt.h.
Change-Id: I8fab776c8801e19d3f5027ed55a6aa69eee951de
2014-06-13 12:34:40 -07:00
Dmitry Kovalev
bcfbd2f948 Replacing RC_MODE with vpx_rc_mode.
Both enums are identical.
Change-Id: I06653f9c90a2d3a2dd5c741e75b17ee7d066a56f
2014-06-13 12:22:35 -07:00
Paul Wilkins
af8d4054d6 Revert "skip un-neccessary motion search in the first pass"
This patch appears to have introduced non-determinism and/or
mismatch from debug vs release.

This reverts commit 5daef90efc.

Change-Id: I80081e55cfeaaa821b510b58a4e6e6328003c7da
2014-06-13 18:53:36 +01:00
Tim Kopp
123cd3a52c Merge "Added skeleton for VP9 denoiser" 2014-06-13 09:44:39 -07:00
Paul Wilkins
3082565b8d Merge "Cleaning up accumulate_frame_motion_stats()." 2014-06-13 02:27:03 -07:00
Dmitry Kovalev
7336903545 Merge "Adding MV_SPEED_FEATURES struct." 2014-06-12 17:15:33 -07:00
Tim Kopp
ab8bfb077b Added skeleton for VP9 denoiser
Change-Id: Iccf6ede4c4f85646b0f8daec47050ce93e267c90
2014-06-12 15:12:22 -07:00
Dmitry Kovalev
48f0935b81 Merge "Removing unused ssim_weighted_pred_err field from FIRSTPASS_STATS." 2014-06-12 14:16:18 -07:00
Dmitry Kovalev
4ff1a614f1 Adding MV_SPEED_FEATURES struct.
Moving all motion vector related speed parameters from SPEED_FEATURES to
MV_SPEED_FEATURES.

Change-Id: I3e9af0039c7162f8671878c5920bce3cb256a84e
2014-06-12 14:15:27 -07:00
Dmitry Kovalev
c90cd4d572 Merge "Moving full_pixel_search() to vp9_mcomp.c." 2014-06-12 14:12:45 -07:00
Dmitry Kovalev
ab449cd9ba Merge "Adding is_altref_enabled() function." 2014-06-12 13:24:42 -07:00
Dmitry Kovalev
f80a346e0e Merge "Replacing txfm_size with tx_size." 2014-06-12 13:07:11 -07:00
Dmitry Kovalev
442cbf565d Moving full_pixel_search() to vp9_mcomp.c.
Change-Id: I12389f801ebd3bd2ae3bf31e125433bfb429ee65
2014-06-12 13:06:37 -07:00
Dmitry Kovalev
86583b2bec Adding is_altref_enabled() function.
Change-Id: I54cdb4ce11590511e6f86bc2fd55771f1c18a20a
2014-06-12 12:13:20 -07:00
Jingning Han
d5ae43318e Merge "Fast computation path for forward transform and quantization" 2014-06-12 11:59:52 -07:00
Dmitry Kovalev
4345d12d28 Replacing txfm_size with tx_size.
Change-Id: Ifa6374e9db5919322733b656e0865f5f19ee6f2c
2014-06-12 11:57:26 -07:00
Dmitry Kovalev
eaeda536a4 Removing unused ssim_weighted_pred_err field from FIRSTPASS_STATS.
Change-Id: Ia8c7e3905ac21732cb6b8099eaf8df72c7e36b73
2014-06-12 11:28:54 -07:00
Jingning Han
ccba289f8d Fast computation path for forward transform and quantization
This commit enables a fast path computational flow for forward
transformation. It checks the sse and variance of prediction
residuals and decides if the quantized coefficients are all
zero, dc only, or more. It then selects the corresponding coding
path in the forward transformation and quantization stage.

It is currently enabled in rtc coding mode. Will do it for rd
coding mode next.

In speed -6, the runtime for pedestrian_area 1080p at 1000 kbps
goes down from 14234 ms to 13704 ms, i.e., about 4% speed-up.
Overall coding performance for rtc set is changed by -0.18%.

Change-Id: I0452da1786d59bc8bcbe0a35fdae9f623d1d44e1
2014-06-12 11:10:54 -07:00
Alex Converse
893433be31 Merge "Fix SEG_LVL_SKIP in non-RD inter mode selection." 2014-06-12 10:38:06 -07:00
Alex Converse
130d9ade25 Merge "Fix SEG_LVL_SKIP in RD inter mode selection." 2014-06-12 10:37:20 -07:00
Yunqing Wang
f9d1e66f6a Merge "skip un-neccessary motion search in the first pass" 2014-06-12 09:43:47 -07:00
Pengchong Jin
5daef90efc skip un-neccessary motion search in the first pass
This patch allows the encoder to skip the
un-neccessary motion search in the first pass. It
calculates the error of the zero motion vector using
the last source frame as reference and skips the
further motion search in the first pass if the error
is small.

The encoding speedup of the first pass for slideshow
videos is over 30%. Borg test shows the overall PSNR
performance remain approximately the same (derf -0.009,
hd 0.387, yt 0.021, stdhd 0.065). Individual clips may
have either PSNR gain or loss. The worst PSNR perfomance
is from yt set, with a PSNR loss of -1.1.

Change-Id: I08b2ab110b695e4689573b2567fa531b6457616e
2014-06-12 08:55:52 -07:00
Alex Converse
6c3f311ba2 Fix SEG_LVL_SKIP in non-RD inter mode selection.
Add a set_mode_info_seg_skip function that fills the requisite mode info.

Change-Id: I460b1b6845d720d9b09ed5b64df0ea0aac443f62
2014-06-11 17:53:26 -07:00
Alex Converse
b0a8057f67 Fix SEG_LVL_SKIP in RD inter mode selection.
* Only use ZEROMV, disalowing the intra modes that were previously
  tested.
* Score rate and distortion as zero.

Change-Id: Ifcf99e272095725f11da1dcd26bd0f850683e680
2014-06-11 17:52:15 -07:00
Dmitry Kovalev
e6fadb5ba8 Merge "Cleaning up vp9_variance_mmx.c." 2014-06-10 17:27:12 -07:00
Dmitry Kovalev
bc93f425d0 Removing two unused TX_SIZE_SEARCH_METHOD members.
Change-Id: I33a38bb9f46e7ef509bbbf0cfd7bc3ea5072d022
2014-06-10 11:08:30 -07:00
Dmitry Kovalev
22368479c0 Merge "Removing chessboard_index from SPEED_FEATURES." 2014-06-10 10:53:53 -07:00
Dmitry Kovalev
9636601146 Merge "Removing unused motion_vector_context enum from vp9_encodeframe.c" 2014-06-10 10:53:25 -07:00
Yunqing Wang
70eb862fd3 Merge "Use small transform size in non-rd real-time mode" 2014-06-09 13:07:24 -07:00
Dmitry Kovalev
e0c6507229 Merge "Removing unused tt_activity_measure()." 2014-06-09 10:45:56 -07:00
Yunqing Wang
b04d766800 Use small transform size in non-rd real-time mode
In non-rd real-time mode, choosing smaller transform size in
encoding gives better video quality and good speed gain than
choosing larger transform size. This patch set tx size search
method to ALLOW_8X8, which is better than using 4x4 or other
larger sizes.

Borg tests on rtc set at speed 6 showed significant gain on quality.
PSNR gain: 11.034% and SSIM gain: 15.466%.

The speed gain is 5% - 12% for <720p clips, and 2% - 7% for
720p clips.

Change-Id: If4dc74ed2df359346b059f47fb73b4a0193ec548
2014-06-09 08:26:50 -07:00
Adrian Grange
61c4295af8 Merge "Fix internal stats printing" 2014-06-09 07:13:20 -07:00
Adrian Grange
b447b9d978 Merge "Revert "Removing this_frame_stats member from TWO_PASS struct."" 2014-06-06 14:03:52 -07:00
Adrian Grange
a4f747921a Revert "Removing this_frame_stats member from TWO_PASS struct."
Use of stack frame variable "fps" beyond the lifetime of the function.

fps is sent as a paremeter to output_stats and stored in the
packet holding this encoded frame. This has scope beyond the
lifetime of the calling function.

This reverts commit 3f95a230c7

Change-Id: Icd8e14b3d7dd733590ada12e619b9dce95b6b0f5
2014-06-06 12:51:56 -07:00
Dmitry Kovalev
5f72de91a8 Merge "Adding encode_tiles() function." 2014-06-06 10:03:18 -07:00
Dmitry Kovalev
923c30a174 Removing chessboard_index from SPEED_FEATURES.
This is not a speed feature, adding inline function instead.

Change-Id: Ia48c41802eec9e92cf990339d724097279695c9a
2014-06-05 18:17:54 -07:00
Dmitry Kovalev
31403fd7d7 Adding encode_tiles() function.
Change-Id: Ib8187c8f2556e1e9268b0683cd2b6ff3489f0205
2014-06-05 18:03:40 -07:00
Deb Mukherjee
e219622b80 Fixes qindex for first frame in 1-pass cq/q modes
Produces sane qindex for the first frame in 1-pass constant and
constrained qualirty modes.

Change-Id: Ib2a5091df15a23489e9bb5534a2019cf2689755e
2014-06-05 12:29:44 -07:00
Adrian Grange
323b85088d Fix internal stats printing
Change-Id: I61bd0b127164a591b1c983bfcebd64ba7617f796
2014-06-05 08:01:40 -07:00
Dmitry Kovalev
580d72d3ea Removing unused tt_activity_measure().
Change-Id: Ifcb46e6904730d14b9ef76b648b4d0dc3cd5d0c5
2014-06-04 17:11:30 -07:00
Dmitry Kovalev
8567739396 Removing unused motion_vector_context enum from vp9_encodeframe.c
The same enum defined and used in vp9_mvref_common.c.

Change-Id: I3975103997797add0a258d36c96d20ac9561a73d
2014-06-04 17:03:10 -07:00
Dmitry Kovalev
b62ce36ea5 Removing unused alt_freq field from VP9EncoderConfig.
Change-Id: I9b683c8647a864e74073161f4aa6f2911b7825e3
2014-06-04 17:02:13 -07:00
Dmitry Kovalev
4a26b240bc Using 2 instead of 3 elements for avg_frame_qindex array.
The third array element was unused. 2 elements now: key- and interframe.

Change-Id: I5b8b9f5d889cc96a204cedfc432059293256298e
2014-06-03 19:45:13 -07:00
Dmitry Kovalev
3a1625614d Merge "Removing lossless field from VP9EncoderConfig." 2014-06-03 16:46:22 -07:00
Jingning Han
a808dfe3f2 Merge "Fix potential overflow issue in SSSE3 forward 8x8 2D-DCT" 2014-06-03 16:43:49 -07:00
Jingning Han
540d910350 Fix potential overflow issue in SSSE3 forward 8x8 2D-DCT
The SSSE3 implementation might find a potential overflow issue in
its second 1-D transform, if all input residual pixels are close to
255. This commit fixes the issue and re-enables the unit test on
the SSSE3 version.

Change-Id: I0520478abdab7afd3ff2842516bec951111e9b3c
2014-06-03 14:21:47 -07:00
Dmitry Kovalev
1cdc238902 Adding buffer levels to RATE_CONTROL struct.
Change-Id: Ib35ff854378764dc3c6745844c67a33dee545663
2014-06-03 13:56:46 -07:00
Dmitry Kovalev
bd0bb363bd Removing lossless field from VP9EncoderConfig.
Right now there is just one place to check: xd->lossless and for the first
pass there is a function is_lossless_requested().

Change-Id: I949a6834e64ce51e422e2892f097f2b871b5429a
2014-06-03 12:52:49 -07:00
Dmitry Kovalev
6cf3d68fe5 Cleaning up accumulate_frame_motion_stats().
Change-Id: I9986f3fd23c5e0677068af768eae0def3db9782f
2014-06-03 10:36:29 -07:00
Dmitry Kovalev
7106f709fc Merge "Cleaning up full_pixel_search()." 2014-06-03 10:22:35 -07:00
Dmitry Kovalev
ebd4e47aa6 Merge "Moving first pass related functions to vp9_firstpasss.c." 2014-06-03 10:05:38 -07:00
Dmitry Kovalev
19c492a749 Merge "Reusing existing vp9_get{8x8, 16x16}var() instead of new ones." 2014-06-03 10:04:27 -07:00
Paul Wilkins
090d07984f Fix AQ mode 2 bug where delta causes Q 0.
In Aq mode 2 for kf/arf/gf the segment q delta
is calculated and then applied by re-quantization without
going through the rd loop again. If the base Q != 0
but the segment Q == 0 (lossless) this can could give rise
to a situation where we have an illegal combination of
transform size and Q. (Q == 0 requires that all blocks
are coded 4x4 WHT).

Change-Id: I241a58c6494ed442e9e4630070b0cde0fb99ae45
2014-06-03 13:31:32 +01:00
Deb Mukherjee
81c2fcccbc Merge "Remove Wextra warnings from vp9_sad.c" 2014-06-02 22:39:17 -07:00
Alex Converse
04a8980c65 Merge "Remove an attempt to handle SEG_LVL_SKIP sub8x8." 2014-06-02 18:50:40 -07:00
Deb Mukherjee
fc88292ef2 Remove Wextra warnings from vp9_sad.c
As a side-effect, the sad unit tests for VP8 and VP9
had to be separated.

Fixes a bug in original patch:
(https://gerrit.chromium.org/gerrit/#/c/70163/8)
that was reverted due to a nightly test failure.

Change-Id: Ia2a4e9e278fd3c89d6c3c82fcc6381320ec2a8a6
2014-06-02 13:50:20 -07:00
Yaowu Xu
f13c99562c Merge "seeing a 10x slowing down, revert now for investigation" 2014-06-02 09:02:32 -07:00
Yaowu Xu
dbfc3692eb seeing a 10x slowing down, revert now for investigation
Revert "Fix a problem of using an uninitialized parameter"

This reverts commit 538af7db5f

Change-Id: I071aa9b7068ef515abb8ae9584df15067706ccb5
2014-06-02 09:02:19 -07:00
Frank Galligan
c40a968e13 Merge "Revert "Remove Wextra warnings from vp9_sad.c"" 2014-06-01 16:58:11 -07:00
Frank Galligan
0b44988952 Revert "Remove Wextra warnings from vp9_sad.c"
This reverts commit 916550428d

Change-Id: I500822b03f09c64ff6ec5396c68edee9ca3b75cb
2014-06-01 16:20:26 -07:00
Dmitry Kovalev
5132e6da1a Merge "Converting disable_inter_mode_mask to inter_mode_mask." 2014-05-31 00:08:45 -07:00
Yaowu Xu
2dc7f506d4 Merge "Fix a problem of using an uninitialized parameter" 2014-05-30 11:37:04 -07:00
Dmitry Kovalev
19b5200172 Merge "Removing unused ref_frame_mask local var." 2014-05-30 11:24:25 -07:00
Yaowu Xu
538af7db5f Fix a problem of using an uninitialized parameter
This commit added a call to set speed feature before initializing
motion search, fixed the problem where unintialized search method
is used before its value being set.

Change-Id: I537e4612bf0d00fd6f51396fd222d4b3bd6fde58
2014-05-30 10:18:54 -07:00
Paul Wilkins
d009c2360e Merge "Re-factor some duplicate code." 2014-05-30 06:14:06 -07:00
Dmitry Kovalev
eccae1de19 Removing unused ref_frame_mask local var.
Change-Id: Ie11558c076a0161cc9608788e050b1b16e31c490
2014-05-29 15:03:02 -07:00
Dmitry Kovalev
cf83983b9a Merge "Consistent names for intra mask flags." 2014-05-29 13:23:31 -07:00
Alex Converse
d30b297c44 Merge "Don't update encoder skip count for SEG_LVL_SKIP." 2014-05-29 12:46:20 -07:00
Dmitry Kovalev
403719963e Converting disable_inter_mode_mask to inter_mode_mask.
Making this consistent with intra mode masks: you need to specify
allowed inter/intra modes to use.

Change-Id: Iaecd28bf79047259707d8e7a59a57bb7b856383e
2014-05-29 12:25:41 -07:00
Dmitry Kovalev
26bdf26ddc Consistent names for intra mask flags.
Change-Id: Ibdd5255d37200fb8a1d50f71a2a49c6089ae21e7
2014-05-29 12:11:02 -07:00
Alex Converse
2a89983999 Remove an attempt to handle SEG_LVL_SKIP sub8x8.
SEG_LEVEL_SKIP requires the block size to be at least 8x8. Attempting to
use it on smaller partitions causes the decoder to reject the bitstream.

Change-Id: Ia7188cdf8ae5ac1df6bd29f3f80dbb0610e1f7b1
2014-05-29 12:04:09 -07:00
Dmitry Kovalev
60866b030a Merge "Making speed checks consistent in set_rt_speed_feature()." 2014-05-29 11:58:42 -07:00
Alex Converse
aaf3765606 Don't update encoder skip count for SEG_LVL_SKIP.
This aligns the encoder behavior with the decoder.

Change-Id: Ifa0840e4b07b19309e0bf1d1182498883249ec45
2014-05-29 11:24:03 -07:00
Dmitry Kovalev
e14f900ae3 Merge "Moving itxm_add pointer from MACROBLOCKD to MACROBLOCK." 2014-05-29 11:16:39 -07:00
Dmitry Kovalev
f7ff24cdd0 Reusing existing vp9_get{8x8, 16x16}var() instead of new ones.
Change-Id: I87b7c657d8813d7fb383ab519d150c0ffb1dd377
2014-05-29 11:14:06 -07:00
Dmitry Kovalev
d262cda524 Making speed checks consistent in set_rt_speed_feature().
Change-Id: Id3d0a49836fe996b806707d29a8130acf9d7ea0e
2014-05-29 11:11:50 -07:00
Yaowu Xu
d553cc10dc Merge "Fixed a crash windows build" 2014-05-29 08:16:19 -07:00
Yaowu Xu
43414f3f7b Fixed a crash windows build
Change-Id: I58baa1da1f3bfc8a6da454399139fe6a7473ff10
2014-05-28 15:50:50 -07:00
Dmitry Kovalev
ac3d97f124 Cleaning up vp9_variance_mmx.c.
Change-Id: I42d83f91e272c92daed604c233f74439fe6307c5
2014-05-28 12:03:55 -07:00
Dmitry Kovalev
39b9731876 Merge "Using 2 instead of 3 elements for last_q array." 2014-05-28 10:57:40 -07:00
Dmitry Kovalev
377950f111 Merge "Removing redundant vp9_zero() call." 2014-05-28 10:55:12 -07:00
Dmitry Kovalev
5023627cb4 Merge "Cleaning up vp9_variance_sse2.c." 2014-05-28 10:50:46 -07:00
Alex Converse
f9501295c9 Merge "Always allow ZEROMV when SEG_LVL_SKIP is on." 2014-05-28 10:19:49 -07:00
Alex Converse
8a69cef042 Merge "Fix the all intra modes mask constant." 2014-05-28 10:19:18 -07:00
Paul Wilkins
15600eb8b8 Merge "Removing this_frame_stats member from TWO_PASS struct." 2014-05-28 08:07:50 -07:00
Paul Wilkins
39c91d84ed Re-factor some duplicate code.
Change-Id: I89a1dbea39c50c7633f746d9c93fec3a289f1b42
2014-05-28 14:15:45 +01:00
Paul Wilkins
8df1b869a2 Merge "Remove brightness weighting in two pass." 2014-05-28 02:04:29 -07:00
Dmitry Kovalev
c7a2e746bf Cleaning up full_pixel_search().
Change-Id: Ie517ac06385133ffb3bbc449d9f23240f245976d
2014-05-27 19:00:53 -07:00
Dmitry Kovalev
edccfcebb2 Using 2 instead of 3 elements for last_q array.
Change-Id: I2c6950e7d79fc89c6f97e6dcf47317ef66c453a5
2014-05-27 18:19:19 -07:00
Alex Converse
6fbbb33aaf Always allow ZEROMV when SEG_LVL_SKIP is on.
Change-Id: I6db1dc82f66438ac48f571d2f1a2ac7c39a97a1a
2014-05-27 18:17:17 -07:00
Alex Converse
75d77e36db Fix the all intra modes mask constant.
The new constant expands to 0x3fc00808.

Change-Id: Ib5109e4faf035fe0402b59f8a8d2e412628b9276
2014-05-27 18:17:17 -07:00
Dmitry Kovalev
3f95a230c7 Removing this_frame_stats member from TWO_PASS struct.
Change-Id: Id8877fad1f1e88b145e7c40c43174109b9c4f373
2014-05-27 17:09:28 -07:00
Dmitry Kovalev
df6f618079 Removing redundant vp9_zero() call.
rd.tx_select_threshes is cleared in encode_frame_internal().

Change-Id: Ie03776a41c585f13b392a9b62d4e91ef26ebeaf0
2014-05-27 16:24:01 -07:00
Yaowu Xu
32228ac13a Merge "vp9_rdopt.c: Removed 2 unused parameters" 2014-05-27 15:52:50 -07:00
Dmitry Kovalev
1349e8634c Merge "Converting target_bandwidth to Bit/s at very beginning." 2014-05-27 15:02:21 -07:00
Yaowu Xu
4c9843cbef vp9_rdopt.c: Removed 2 unused parameters
Change-Id: I935ec0e78570ce3d3585f972350e39043eefa30a
2014-05-27 14:45:19 -07:00
Dmitry Kovalev
a789bfec87 Cleaning up vp9_variance_sse2.c.
Change-Id: I5ec336848f6489c31cf2b645026fa2025db07466
2014-05-27 13:53:19 -07:00
Yunqing Wang
1f2200080b Revert "Making vp9_get_sse_sum_{8x8, 16x16} static."
This reverts commit e8bbb3d9db.

Change-Id: Ie368d36fd249d323d859d208609c711f04537bbc
2014-05-27 13:37:08 -07:00
Deb Mukherjee
444f93945b Merge "Remove Wextra warnings from vp9_sad.c" 2014-05-27 11:54:05 -07:00
Dmitry Kovalev
bf503e5236 Merge "Reusing rd_less_than_thresh() function." 2014-05-27 10:50:55 -07:00
Paul Wilkins
f085d128f7 Remove brightness weighting in two pass.
This code dates from the ancient past and
applied an error score weighting based on pixel
brightness. This not seem to be providing any
benefit metrics wise and could be making some
visual issues in dark frames worse.

The field is left in place in the FIRSTPASS_STATS data
structure in this patch, pending changes to unit tests that
use a pre-defined first pass file.

Change-Id: Id50f04205230234858e7548ce523f11acaf3567d
2014-05-27 13:27:49 +01:00
Paul Wilkins
debd048531 Merge "Further first pass allocation changes." 2014-05-25 14:48:36 -07:00
Paul Wilkins
620ce56154 Merge "Re-factor bit allocation in first pass." 2014-05-25 14:47:35 -07:00
Dmitry Kovalev
3fff4bd2df Converting target_bandwidth to Bit/s at very beginning.
Change-Id: I1d8c9fe4228e2f1ef67a66883694842a9545e7b9
2014-05-23 18:11:07 -07:00
Dmitry Kovalev
d7d7cedaaa Merge "Removing vp9_pragmas.h." 2014-05-23 12:58:00 -07:00
Paul Wilkins
1edbaeb09d Further first pass allocation changes.
Further changes to first pass allocation for gf/arf groups.
Three variables removed from TWO_PASS structure as only
now used locally. Dont adjust gf_group_bits in the post
encode update as this will no longer have any effect.

Change-Id: Iff89b225db923fc856f5d2aedbc899f1d7d68b55
2014-05-23 20:21:25 +01:00
Alex Converse
52b32ad025 Merge "Use offset mode info when filling pc tree." 2014-05-23 10:19:13 -07:00
Alex Converse
7c8479acea Merge "Always partition check after keyframe (rt speed 5)" 2014-05-23 10:19:03 -07:00
Paul Wilkins
03eb06212a Re-factor bit allocation in first pass.
Restructuring to allocate the bits for each frame in
a GF group at the time the group is defined.

At the moment the allocation closely mirrors what
we had before.

Also changes the default rate adjustment method to
LONG_TERM_VBR_CORRECTION.

Change-Id: Ie5793c46c6b9c888cead5d8790792efd7d60b7c1
2014-05-23 18:01:54 +01:00
Deb Mukherjee
916550428d Remove Wextra warnings from vp9_sad.c
As a side-effect, the sad unit tests for VP8 and VP9
had to be separated.

Change-Id: I068cc2391eed51e9b140ea6aba78338c5fec8d71
2014-05-22 22:21:16 -07:00
Dmitry Kovalev
d1ad3b678b Merge "Adding several consts to assign_std_frame_bits()." 2014-05-22 19:26:39 -07:00
Alex Converse
b9c24dfa23 Always partition check after keyframe (rt speed 5)
Prevents too small partitions from being copied to the next frame.

Change-Id: I4b97c30b27d06051574d54aaaca5434407a0c9ff
2014-05-22 16:51:06 -07:00
Alex Converse
80e5326cf2 Use offset mode info when filling pc tree.
Use the appropriate subblock offset mode info rather than the parent
block base, when filling mbmi in the pc tree in nonrd_use_partition.
This mimics what is done in the vertical case and what is done for
both cases in nonrd_pick_partition.

This change has little practical effect at the moment since in speed 5
rt horizontal and vertical partitions are currently only used unpaired
at edges of the picture.

Change-Id: I4632f66ca84086dac56c7d36b45ddbe38a06f42a
2014-05-22 16:24:40 -07:00
Deb Mukherjee
701d907f3a Fix for missing initialization of ratectrl vars
Initializes total_actual_bits and total_target_bits to 0

Change-Id: Ia50d3bf5df765146a44aa1f6045e73367ccf50df
2014-05-22 15:51:41 -07:00
Tom Finegan
00fbdc159b Merge "vp9_ratectrl.c: Fix MSVC warnings." 2014-05-22 15:16:01 -07:00
Dmitry Kovalev
639e16ee00 Merge "Cleaning up vp9_init_second_pass()." 2014-05-22 14:49:33 -07:00
Tom Finegan
4205b51d51 vp9_ratectrl.c: Fix MSVC warnings.
Change-Id: I4bd635949240880ced5f581c24e981ccd0374e40
2014-05-22 14:44:37 -07:00
Dmitry Kovalev
59948cc343 Merge "Cleaning up calculate_section_intra_ratio()." 2014-05-22 13:49:28 -07:00
Deb Mukherjee
cebb03c39b Merge "Adjust cq_level in constrained quality mode" 2014-05-22 13:49:17 -07:00
Dmitry Kovalev
72ab966d5e Removing vp9_pragmas.h.
Change-Id: I9120a87e27e73e496932d11716937e2fad246521
2014-05-22 13:46:31 -07:00
Dmitry Kovalev
f738895099 Merge "Cleaning up calc_frame_boost()." 2014-05-22 13:05:23 -07:00
Dmitry Kovalev
b2be554351 Cleaning up vp9_init_second_pass().
modified_error_total from TWO_PASS struct is not required anymore.

Change-Id: I0e07cac1e6d1b6a78418116be725bcd72bfbd847
2014-05-22 13:04:43 -07:00
Deb Mukherjee
b59b324171 Merge "Renames x86_64 specific asm files" 2014-05-22 12:30:38 -07:00
Deb Mukherjee
53f1452f5d Adjust cq_level in constrained quality mode
If we are already saving a lot in bits from the target (maximum)
bitrate in the constrained quality mode, allow the quantizer
to go lower than the cq level. This hopefully will solve issues
with getting too low a bitrate and consequently poor quality for
certain videos in cq mode.

Change-Id: I1c4e8b0171fcf58f95198b3add85eea5f3c8f19f
2014-05-22 12:19:55 -07:00
Dmitry Kovalev
0a6e42c241 Adding several consts to assign_std_frame_bits().
Change-Id: I6c27c60f7192b1b397f01882ab68a68cdf767534
2014-05-22 12:17:18 -07:00
Dmitry Kovalev
6e6f5881d8 Merge "Cleaning up calculate_modified_err()." 2014-05-22 12:09:48 -07:00
Dmitry Kovalev
da39b6a1af Cleaning up calc_frame_boost().
Change-Id: I3ba9374de96dc31fb4e736742603ef988d8aaa5f
2014-05-22 12:07:14 -07:00
Dmitry Kovalev
b8a65127ae Cleaning up calculate_section_intra_ratio().
Addition of reset_fpf_position() call fixes previous issue with this patch.

Change-Id: I356186d5a1032297a147194e81e9c7db252d14a6
2014-05-22 11:38:02 -07:00
Paul Wilkins
56966ea8ce Merge "Revert "Cleaning up calculate_section_intra_ratio()."" 2014-05-22 10:39:04 -07:00
Yaowu Xu
04cf82fb04 Merge "Enable various thresholds of motion detection" 2014-05-22 09:09:42 -07:00
Paul Wilkins
74a919a239 Revert "Cleaning up calculate_section_intra_ratio()."
Breaks rate control completely.

This reverts commit 9067b293b3.

Change-Id: I8f89e209cf7bd607f7de5c4872adcd57a9c5c72b
2014-05-22 14:30:41 +01:00
Deb Mukherjee
e272273443 Renames x86_64 specific asm files
Renames all x86_64 specific assembly files to consistently
end in _x86_64.asm. This will be useful for build systems to
handle these files differently.
All new 64-bit specific assembly files should use the new
naming convention.

Change-Id: I36c89584967c82ffc4088b1b5044ac15d2bb7536
2014-05-21 13:55:56 -07:00
Dmitry Kovalev
7b3136c8d7 Moving first pass related functions to vp9_firstpasss.c.
Change-Id: I7ce717badf098d1dad14cb6677c0f811057f4bb1
2014-05-21 12:45:32 -07:00
Dmitry Kovalev
508cd5a6bf Reusing rd_less_than_thresh() function.
Change-Id: I29df10fde86128467f5e99fc373ac04f004257e1
2014-05-21 12:20:07 -07:00
Yaowu Xu
3bda7ec1ba Enable various thresholds of motion detection
This commit changed to enable the encoder to adjust motion dection
speed threshold based on picture size. In addition, cpu-used 1 now
does a partition search every other frame instead of every third
frame for low resolution inputs.

The change has no quality/speed impact for 720p and above. Test
showed the change increase encoding time by between 3% to 6% for
cpu-used 2 encodiong of 360p sequences. It also has a compression
gain about .3%.

For cpu-used 2, the change resolved some very disturbing visual
artifacts in certain sequences when large block partitionings and
transforms are used as a result of copying the partition from a
previous frame.

Change-Id: Ic7fd22508cdb811d4ca935655adbf20109286cfa
2014-05-21 12:08:56 -07:00
Dmitry Kovalev
35a83677a5 Moving itxm_add pointer from MACROBLOCKD to MACROBLOCK.
The final goal is eventually to get rid of both itxm_add and fwd_txm4x4.
This patch does it in the decoder.

Change-Id: Ibb3db57efbcbb1ac387c6742538a9fcf2c6f24a5
2014-05-21 11:09:44 -07:00
Dmitry Kovalev
3971967c0b Merge "Cleaning up calculate_section_intra_ratio()." 2014-05-21 10:35:01 -07:00
Jingning Han
d8b26caa71 Merge "Adjust the forward 16x16 DCT computation steps" 2014-05-21 09:16:04 -07:00
Dmitry Kovalev
9067b293b3 Cleaning up calculate_section_intra_ratio().
Change-Id: I3258b789ce8c59fdfeaaca1acb9638b565e82a2a
2014-05-20 19:24:01 -07:00
Dmitry Kovalev
55c52f6626 Merge "Cleaning up vp9_twopass_postencode_update()." 2014-05-20 18:41:14 -07:00
Dmitry Kovalev
68ec479eb6 Merge "Replacing int_mv with MV." 2014-05-20 18:40:34 -07:00
Dmitry Kovalev
1a96edd891 Merge "Hiding struct diff in *.c file." 2014-05-20 18:32:30 -07:00
Deb Mukherjee
ef750d8472 Merge "Extends temporal filtering to work for 422 data" 2014-05-20 16:31:28 -07:00
Deb Mukherjee
a185bc3350 Extends temporal filtering to work for 422 data
This is needed for profiles 1 and 2.

Change-Id: I5dd7644c2932d055ab89e050d4be7d4117cd1028
2014-05-20 15:19:40 -07:00
Dmitry Kovalev
3b62aa4825 Cleaning up vp9_twopass_postencode_update().
Change-Id: Id79138f2dd472ee95c784b0eb2781d4037c51dd8
2014-05-20 14:44:02 -07:00
Dmitry Kovalev
f82ae7980b Cleaning up calculate_modified_err().
Change-Id: I87bb1876f8a04ef28cb7135b657815e12f2f31cb
2014-05-20 14:22:10 -07:00
Minghai Shang
7af3440268 [spatial svc] Remove some restrictions that are needed to improve the quality
Change-Id: I76a48b03388a8c5cc74b871deb836cd92263b306
2014-05-20 11:16:45 -07:00
Paul Wilkins
e9ed051c83 Merge "Cosmetic clean up." 2014-05-20 02:34:56 -07:00
Yunqing Wang
f4f5de0027 Merge "Add static-threshold skipping in non-rd mode" 2014-05-19 13:01:29 -07:00
Jingning Han
7f547336b7 Adjust the forward 16x16 DCT computation steps
This commit adjusts the forward 16x16 DCT computation steps to
simplify the register level operations. It fixes the corresponding
sse2 version accordingly.

Change-Id: I72a9c25b8ca9442fc5e113f47cd701ae55aa7f08
2014-05-19 12:39:26 -07:00
Yunqing Wang
b91b146d1d Add static-threshold skipping in non-rd mode
Added a skipping test in non-rd inter-mode. After interpolation
prediction step, the residuals are tested to see if they will be
quantized to 0 based on modeling between spatial domain and
frequency domain.

Set static-thresh to 800 for >=720p and 300 for <720p, rtc set
tests showed
1. Speed 5, psnr: -0.514%; ssim: -1.748%;
   speedup on related clips: 5% -11%
2. Speed 6, psbr: -0.628%; ssim: -1.637%;
   speedup on related clips: 4% - 9%

Change-Id: I62fbf26bc043ecd2b584f255f1a4ee5ab52bfcf3
2014-05-19 11:47:13 -07:00
Dmitry Kovalev
81e03394d6 Replacing int_mv with MV.
Change-Id: Icd7eea20e944e3e28e5eb20cdc088866a54d53b4
2014-05-19 11:43:07 -07:00
Yaowu Xu
0249531bb9 Merge "Remove unused varables" 2014-05-19 11:28:33 -07:00
Dmitry Kovalev
0271c75afe Hiding struct diff in *.c file.
Change-Id: Ia0dc05e530428af9ab5aa57e24f1115b0b4765d3
2014-05-19 11:19:21 -07:00
Dmitry Kovalev
f80bd43bf8 Removing unused members from PICK_MODE_CONTEXT struct.
Change-Id: Ieb3bc037a2ae7791323a0f9cec04381ba9b0c795
2014-05-19 10:41:58 -07:00
Dmitry Kovalev
9ef3347b85 Merge "Cleaning up vp9_pick_inter_mode()." 2014-05-19 10:29:42 -07:00
Dmitry Kovalev
05d55026f7 Merge "Reusing swap_block_ptr() function." 2014-05-19 10:28:51 -07:00
Dmitry Kovalev
a822a2a566 Merge "Removing unused fields from twopass_rc struct." 2014-05-19 10:27:47 -07:00
Dmitry Kovalev
c23c613fdf Merge "Hiding vp9_sub_pel_filters_{8, 8s, 8lp} filters in *.c file." 2014-05-19 10:27:16 -07:00
Yaowu Xu
d83295f2e1 Merge "Add a TODO" 2014-05-19 08:37:47 -07:00
Paul Wilkins
f07a96fdc1 Cosmetic clean up.
Use type TWO_PASS instead of "struct twopass".

Change-Id: I9d92920893bd436537b2ca19e9c9d355cca56c7c
2014-05-19 11:14:02 +01:00
Dmitry Kovalev
b043c3e081 Merge "Moving PC_TREE from MACROBLOCK to VP9_COMP." 2014-05-16 22:46:45 -07:00
Yaowu Xu
c03ae7d99f Add a TODO
Change-Id: I16bf93d40e9b345705b49bf09dd4b6996b513a83
2014-05-16 12:48:38 -07:00
Dmitry Kovalev
51545f5753 Moving PC_TREE from MACROBLOCK to VP9_COMP.
Because PC_TREE is encoder-level data, not MACROBLOCK-level data.

Change-Id: I4f620c0781acd3a2744860610117e74948e0b2b5
2014-05-16 10:17:13 -07:00
Dmitry Kovalev
79ba41903f Removing MACROBLOCKD dependency from loop filter.
Change-Id: I9ef40f3d95ab8f94f69e92ea25678a40956bc1ce
2014-05-16 09:48:26 -07:00
Yaowu Xu
3316e2654f Remove unused varables
Change-Id: Ieb508d97026d624e853c2cd61b1ddf3591bf8233
2014-05-15 18:49:53 -07:00
Yaowu Xu
7fc5e74232 Reuse precalculated result
Change-Id: Iff9efff6c9cb41f833cee40eae014bd4489a87d0
2014-05-15 18:40:13 -07:00
Dmitry Kovalev
619e6b539a Merge "Removing redundant "8x8" suffix from MODE_INFO vars." 2014-05-15 17:53:31 -07:00
Yaowu Xu
8ea9f1dad7 Merge "vp9_rdopt.c: cleanup -wextra warnings" 2014-05-15 17:44:54 -07:00
Yaowu Xu
1e4a7c111b Merge "vp9_tokenize.c: cleanup -wextra warnings" 2014-05-15 17:36:18 -07:00
Yaowu Xu
2fd79c7a37 Merge "vp9_firstpass.c: clean -wextra warnings" 2014-05-15 15:20:50 -07:00
Yaowu Xu
8989e83341 Merge "vp9_pickmode.c: cleanup -wextra warnings" 2014-05-15 14:51:51 -07:00
Jim Bankoski
ec82d2dfec Merge "Revert "Remove Wextra warnings from vp9_sad.c"" 2014-05-15 11:54:23 -07:00
Yunqing Wang
c661cf0dad Merge "AVX2 To VP9 Block Error Optimization" 2014-05-15 11:29:29 -07:00
Yaowu Xu
21bb6ddb57 vp9_firstpass.c: clean -wextra warnings
Change-Id: Ic488fe6edbc119f475763d72a85809499df60106
2014-05-15 11:29:15 -07:00
Yaowu Xu
e623056b2e vp9_pickmode.c: cleanup -wextra warnings
Change-Id: I07e39f04fb11d2673722651fc78d0e9d22b1f557
2014-05-15 11:29:03 -07:00
Yaowu Xu
d7227958a7 vp9_rdopt.c: cleanup -wextra warnings
Change-Id: I1f87c689cad2224181d40a7d00f5c1064ceefa4b
2014-05-15 11:28:38 -07:00
Dmitry Kovalev
073fbdf7f5 Reusing swap_block_ptr() function.
Change-Id: I51ae33fcaaa7330b68493a782ec6ef02539fda71
2014-05-15 11:19:43 -07:00
Dmitry Kovalev
ed784a0bc4 Removing redundant "8x8" suffix from MODE_INFO vars.
Change-Id: I7ed7fecc959c6598ff98895f1a5cf7e11ac1615f
2014-05-15 11:14:42 -07:00
Dmitry Kovalev
3181290ee8 Removing unused fields from twopass_rc struct.
Change-Id: Iaece070e9d1305ac3d8df9d3431fefa6e20ac0ec
2014-05-15 11:12:45 -07:00
Dmitry Kovalev
be49292ca1 Cleaning up vp9_pick_inter_mode().
Change-Id: I21bff31e58e9078b4ffcbd2027cc52366843ff23
2014-05-15 11:10:13 -07:00
Jim Bankoski
a16794dd31 Revert "Remove Wextra warnings from vp9_sad.c"
This reverts commit 7ab9a9587b

Nightly test http://build.webmproject.org/jenkins/view/libvpx-nightly-tests/job/libvpx%20unit%20tests%20(valgrind-2)/arch=x86_64-linux-gcc,filter=-*VP8*:*Large.*/276/console

Failed 

This patch did not address all the assembly issues 
some of the vp8 assembly counts on 5 arguments being passed in to this function:   

one example : vp8_sad8x16_wmt

Please address or split this into vp9 and vp8 patches.

Change-Id: I78afcc171649894f887bb8ee3c66de24aaddc7ca
2014-05-15 08:31:20 -07:00
Yaowu Xu
9a2749fcc6 Merge "vp9_ratectrl.c: cleanup -wextra warning" 2014-05-15 06:50:12 -07:00
Paul Wilkins
8deb0e182b Merge "Silence unused parameter warnings." 2014-05-15 02:39:22 -07:00
Paul Wilkins
33aeb84c3f Merge "Clear unused parameter warning." 2014-05-15 02:39:14 -07:00
Yaowu Xu
06496d5508 Merge "vp9_quantizer.c: cleanup -wextra warnings" 2014-05-14 17:48:33 -07:00
Yaowu Xu
882f71e52b Merge "vp9_mbgraph.c: cleanup -wextra warnings" 2014-05-14 17:17:28 -07:00
Dmitry Kovalev
021eaabdb8 Hiding vp9_sub_pel_filters_{8, 8s, 8lp} filters in *.c file.
Change-Id: Id401da740b0a0141caaef9e1bcccd981e5cef4a4
2014-05-14 16:21:41 -07:00
Dmitry Kovalev
86094f22ba Merge "Moving frame_coef_probs from VP9_COMP to local scope." 2014-05-14 12:38:19 -07:00
Dmitry Kovalev
9b90820c70 Merge "Cleaning up vp9_context_tree.c." 2014-05-14 12:26:48 -07:00
levytamar82
1fbab853c8 AVX2 To VP9 Block Error Optimization
vp9_block_error_sse2 can only handle 16 bytes at a time but
the function requires to handle a sequence of 32 bytes at a time
so each 16 bytes is handled in a different register.
With AVX2 optimization the 32 bytes can be handled in one register instead
of two in the SSE2
The vp9_block_error was optimized by 85%.
The user level was optimized by 1.2%

Change-Id: Ia8fffe60e61eff7432a5fbd538757894f6c319fd
2014-05-14 11:51:07 -07:00
Jingning Han
0604c0854c Merge "Tune minq index table for P frames in one_pass_cbr coding mode" 2014-05-14 10:50:11 -07:00
Yaowu Xu
6f35081003 vp9_ratectrl.c: cleanup -wextra warning
Change-Id: I7ca46fa26acd80a21210cb8d9584ad812cb995bf
2014-05-14 10:38:04 -07:00
Yaowu Xu
051332a6a4 vp9_tokenize.c: cleanup -wextra warnings
Change-Id: I85854f1ab2d60feea0bfe6b2141f89a998777ecb
2014-05-14 10:36:14 -07:00
Paul Wilkins
e6cd696ba2 Merge "Fix int compared to unsigned int warnings." 2014-05-14 10:08:30 -07:00
Paul Wilkins
8628d3a7ae Merge "Simplify 2 pass KF bitrate allocation" 2014-05-14 10:08:11 -07:00
Paul Wilkins
81bb41fafe Merge "Further two pass clean up." 2014-05-14 10:07:51 -07:00
Deb Mukherjee
9687c057f8 Merge "Remove Wextra warnings from vp9_sad.c" 2014-05-14 10:01:50 -07:00
Yaowu Xu
c39a361b0f vp9_quantizer.c: cleanup -wextra warnings
Change-Id: If5a3c48a8c554018a5d63c1541a2900f15767a00
2014-05-14 09:37:45 -07:00
Paul Wilkins
69544cfe40 Clear unused parameter warning.
Caused by a parameter which is only used under
#if CONFIG_VP9_POSTPROC.

Change-Id: I2c0979d215d45f56da1a38bb13aa214bde52a640
2014-05-14 17:20:24 +01:00
Yaowu Xu
e05a17bf8e vp9_mbgraph.c: cleanup -wextra warnings
Change-Id: Ia6e2c2741adbf45f98a447dbb401506f95a2b0c8
2014-05-14 09:18:16 -07:00
Paul Wilkins
82cf10702d Silence unused parameter warnings.
The various motion search functions share a
common function prototype. In the case of
vp9_full_range_search() two of the parameters
are not needed.

Change-Id: I0e190af54a3b3f276409f20e8ec55912f9b0b798
2014-05-14 16:47:32 +01:00
Paul Wilkins
2493e0f332 Fix int compared to unsigned int warnings.
Also delete vp9_set_roimap() which is not used in VP9.

Change-Id: I48c60b1dc8794c6a234f9c3d95e2debb7bdb3fd5
2014-05-14 16:31:17 +01:00
Paul Wilkins
1c520605e3 Merge "Clean up two unused parameters." 2014-05-14 08:05:44 -07:00
Paul Wilkins
200f9aed4f Silence unused parameter warnings.
Remove two unused parameters in the function
vp9_refining_search_8p_c().

Change-Id: Ic192734586291cf5400926eeb8e720e69d40835c
2014-05-14 14:06:16 +01:00
Paul Wilkins
7b4258da08 Clean up two unused parameters.
Unused parameters to encode_without_recode_loop()

Change-Id: Ia94ce09199cd2419f26964eb5b53db2b7718cf03
2014-05-14 12:59:34 +01:00
Paul Wilkins
6122ca87a3 Simplify 2 pass KF bitrate allocation
Simplify the calculation of KF bitrate in similar way
to previous patch for GF/arf.

This has no impact on derf or std hd sets but gives a
small net gain of ~0.1% for yt and yt-hd sets.

Change-Id: Ida64ac1428d9c2a62adb67056fadbf0180eff030
2014-05-14 12:41:42 +01:00
Paul Wilkins
d677ea1f81 Further two pass clean up.
The variation in boost calculation for gf and arf groups
is not significant enough to justify the extra complexity.
Also removed some other spurious code that no longer
has much material impact.

The handling of the rare case, where the boost bits
number is less than the number of bits a that would
be allocated if a frame was not boosted, will be dealt
with in a subsequent patch.

This change actually helps on all sets a little by
~0.1% - 0.2% with slightly bigger gains on SSIM.

Change-Id: Id42c1ac22a80a8c4993cfa0e51bc733eb9ed4f75
2014-05-14 12:29:36 +01:00
Deb Mukherjee
7ab9a9587b Remove Wextra warnings from vp9_sad.c
As a side-effect, the max_sad check is removed from the
C-implementation of VP8, for consistency with VP9, and to
ensure that the SAD tests common to VP8/VP9 pass.
That will make the VP8 C implementation of sad a little slower
but given that is rarely used in practice, the impact will be
minimal.

Change-Id: I7f43089fdea047fbf1862e40c21e4715c30f07ca
2014-05-14 03:17:31 -07:00
Dmitry Kovalev
eecc750b33 Merge "Moving loopfilter call to vp9_decode_frame()." 2014-05-13 17:20:26 -07:00
Dmitry Kovalev
32c51e8222 Merge "Inlining setup_key_frame() and setup_inter_frame()." 2014-05-13 15:00:22 -07:00
Jingning Han
3f96081a15 Tune minq index table for P frames in one_pass_cbr coding mode
Allow slightly larger minq-maxq range for P frames. This improves
the compression performance of speed -5 for rtc set by 2.7% in psnr.

Change-Id: I438653d52d0fe51111509c6092e2334bac2de0cf
2014-05-13 12:27:42 -07:00
Adrian Grange
9e0b5abc30 Merge "Move frame stats output to after update" 2014-05-13 10:07:36 -07:00
Dmitry Kovalev
889887aa68 Inlining setup_key_frame() and setup_inter_frame().
Change-Id: I6c0f0f91c189c041559f724f4faeada144390353
2014-05-12 17:13:07 -07:00
Dmitry Kovalev
ae7d3ef39f Moving loopfilter call to vp9_decode_frame().
Inline loopfilter has been already handled in vp9_decode_frame().
Collecting all similar code in one place now.

Change-Id: I358a0280fc7c2b27cca520bc1e8c16c4eb6491dd
2014-05-12 16:19:19 -07:00
Yaowu Xu
38f3cf125e Merge "vp9_pickmode.c: Removed unused function parameters" 2014-05-12 14:56:54 -07:00
Yaowu Xu
69d2fb856b Merge "Change to use proper type" 2014-05-12 14:05:52 -07:00
Yaowu Xu
c80287f02d Merge "fixed comparison of different int types." 2014-05-12 14:05:47 -07:00
Yaowu Xu
3e81ee26cc vp9_pickmode.c: Removed unused function parameters
Change-Id: I4ec07d3935dc56ca16ea4ba1e5730b09f1bf1f21
2014-05-12 12:10:23 -07:00
Yaowu Xu
26cb7bee7d Change to use proper type
Change-Id: If1afb9f3eaec88079d1d97907870409bce691c2a
2014-05-12 11:56:17 -07:00
Yaowu Xu
77c754df79 Merge "Cleanup unused parameters" 2014-05-12 11:05:54 -07:00
Yaowu Xu
7145e3f797 fixed comparison of different int types.
Change-Id: Iaa5543eb9e17589d46d9ed2bc363e2646ed4e01e
2014-05-12 10:01:00 -07:00
Yaowu Xu
d22faee98d Cleanup unused parameters
Remove unused function parameters from:
vp9_encodemb.c
vp9_encodeframe.c

Change-Id: I07725e5099cf98486e70c9c70babb0cd785c58a9
2014-05-12 09:53:11 -07:00
Paul Wilkins
702e25839e Clean up of firstpass.c
Re-factor duplicate code.
Add two pass check for use of section_intra_rating as
it is un-initialised in the 1 pass and rt case.

Change-Id: I93120796f07961b8a21fb26e1a9f0d3d13949994
2014-05-12 12:32:42 +01:00
Paul Wilkins
00d54aa331 First pass clean up.
One of a series of changes to clean up two pass
allocation as precursor to support for multiple arf
or boosted frames per GF/ARF group.

This change pulls out the calculation of the total bits
allocated to a GF/ARF group into a function, to aid
readability and reduce the line count for define_gf_group().

This change should have no material impact on output.

Change-Id: I716fba08e26f9ddde3257e7d9b188453791883a3
2014-05-12 12:31:02 +01:00
Jingning Han
6d065ba3cb Merge "Apply constrained partition search range to non-RD mode decision" 2014-05-10 10:39:26 -07:00
Jingning Han
734c5ffa2c Apply constrained partition search range to non-RD mode decision
This commit enables a chessboard pattern for partition search. All
the black blocks run regular partition search ranging from 8x8 to
32x32. The rest white blocks take the nearby blocks' information
to adaptively decide the effective search range.

The compression performance for rtc set at speed -5 is down by 1.5%.
For pedestrian 1080p at speed -5, the runtime goes from 41594 ms to
39697 ms, i.e., about 5% faster.

Change-Id: Ia4b96e237abfaada487c743bca08fe1afd298685
2014-05-09 17:07:19 -07:00
Alex Converse
ec8a3272fa Merge "Add an x86inc MMX fwht4x4." 2014-05-09 13:48:49 -07:00
Alex Converse
09d947ecb9 Allow speed 5 lossless
tx_mode supercedes whatever mechanism is used to push for 16x16
allowing for the use of the 4x4 transform.

Change-Id: I6c3f05ab9fe52050e40cc6303de9334653763289
2014-05-09 09:53:46 -07:00
Adrian Grange
8d2fff7cb4 Move frame stats output to after update
Frame-level stats were being output before the
post-encode update had been carried out.

Change-Id: I67405c67c020cde4468f5db3cee76f7de5b624eb
2014-05-09 09:44:47 -07:00
Alex Converse
4bb70ea136 Skip testing large tx sizes when encoding lossless.
Change-Id: Ib7a17893f6dc0f501b1252ae32804ede144dde37
2014-05-08 18:07:14 -07:00
Alex Converse
b5422fab46 Add an x86inc MMX fwht4x4.
Change-Id: Ib0a73d4863478f9b8a00976379d25d2f6ebbb197
2014-05-08 12:01:27 -07:00
Frank Galligan
07f9fa4336 Merge "vp9_pickmode: Fix signed/unsigned mismatch." 2014-05-08 08:49:12 -07:00
Frank Galligan
aa3d59fcf9 Merge "vp9_firstpass: Fix MSVC data loss warning." 2014-05-08 08:49:04 -07:00
Tom Finegan
86a89d740e vp9_svc_layercontext: Clean up function definition mismatch.
vp9_is_upper_layer_key_frame() definition does not match declaration--
it was missing the second const.

Change-Id: I71312579eb443be1924b8b06d8b3177c3dcb40f3
2014-05-07 18:32:27 -07:00
Tom Finegan
7811039d47 vp9_firstpass: Fix MSVC data loss warning.
Change-Id: I5307fe85ee081fbcfdf55a974f7eba1e0070c723
2014-05-07 18:27:29 -07:00
Tom Finegan
0fc027ad33 vp9_pickmode: Fix signed/unsigned mismatch.
Avoids getting reverted on the next libvpx chrome roll attempt.

Change-Id: I2431bd601111a78320af5f211f6413009674f1c8
2014-05-07 18:20:29 -07:00
Jingning Han
7af0e984b8 Merge "Tune rate-distortion modeling to account for frame light change" 2014-05-07 17:36:00 -07:00
Yaowu Xu
5a65790814 Merge "Remove separate arf and gf minq tables." 2014-05-07 17:04:49 -07:00
Yaowu Xu
9b4d0e81a2 Merge "Rate control adjustment." 2014-05-07 17:04:41 -07:00
Dmitry Kovalev
dc554abc59 Merge "Cleaning up vp9_encode_frame() function." 2014-05-07 14:10:07 -07:00
Dmitry Kovalev
e91616a5d4 Merge "Using SPEED_FEATURES instead of VP9_COMP in vp9_init_search_range()." 2014-05-07 14:07:33 -07:00
Paul Wilkins
ed30c8eff2 Remove separate arf and gf minq tables.
Merged minq tables for arf and gf cases.
These tables were almost the same and for
VBR the arf table was not used at all.

Change-Id: Ie3c87e91dab613cf06f6945ac1ace0e0e4213d34
2014-05-07 14:00:15 -07:00
Paul Wilkins
38ff3e328f Rate control adjustment.
Small adjustment to the active Q range calculations.
These changes should slightly extend the available Q range
for KF/GF/ARF and narrow it for other frames.

The results for this change in isolation are broadly positive
for SSIM and average PSNR and slightly up but mixed for opsnr.

derf +0.293% opsnr, +1.286% SSIM
std-hd + 0.528% opsnr, + 1.746% SSIM
yt +0.056% opsnr, +0.457% SSIM
yt-hd -0.147% opsnr, + 0.226% SSIM

Change-Id: If065280342027ecc5d44b49fc1d440dfef041002
2014-05-07 13:56:05 -07:00
Dmitry Kovalev
68a600d82a Merge "Moving pair_set_epi32 macro into vp9_dct32x32_sse2.c." 2014-05-07 13:34:05 -07:00
Dmitry Kovalev
cc5eee12bf Merge "Removing MODE_TEST_HIT_STATS." 2014-05-07 10:40:31 -07:00
Alex Converse
1354d0bb39 Merge "Revert "Add an MMX fwht4x4"" 2014-05-07 10:09:04 -07:00
Yunqing Wang
fffeaa395c Merge "Clean up full-pixel search calling code" 2014-05-07 08:33:03 -07:00
Paul Wilkins
33b1c457ed Revert "Add an MMX fwht4x4"
Includes changes that are not compatible with VS windows builds.
Amongst other things stdint.h is not supported in VS.

This reverts commit 89fbf3de50.

Change-Id: Ifa86d7df250578d1ada9b539c9ff12ed0c523cdd
2014-05-07 12:53:27 +01:00
Jingning Han
74f98e6f45 Tune rate-distortion modeling to account for frame light change
When the variance is far less than sse, the block is considered to
be under light change. All the energy is compacted into DC coeff
and can be coded at low cost. In such situation, switch the rate-
distortion modeling from sse+var based back to variance based.

Note that this is a temporary solution to handle the rare situations
where the scene light changes.

Change-Id: I1ee0fe2b9eda6b5fac40152e1841bf23f4d229fd
2014-05-06 16:50:50 -07:00
Alex Converse
75d05d5ed4 Merge "Add an MMX fwht4x4" 2014-05-06 11:12:27 -07:00
Jingning Han
d289deb04c Merge "SSSE3 implementation of full inverse 8x8 2D-DCT" 2014-05-06 09:17:22 -07:00
Minghai Shang
e9f46ebd38 Merge "[spatial svc] No need to code full width and height for non key frame" 2014-05-05 23:21:53 -07:00
Dmitry Kovalev
3af5eab2c1 Merge "Cleaning up vp9_full_range_search_c() function." 2014-05-05 22:01:02 -07:00
Dmitry Kovalev
e8bbb3d9db Making vp9_get_sse_sum_{8x8, 16x16} static.
Change-Id: Ifb7937c977308c682986f0ce9645a0807d2aa46a
2014-05-05 19:12:38 -07:00
Dmitry Kovalev
ec234eb5e1 Merge "Moving costs from MACROBLOCK to VP9_COMP." 2014-05-05 19:10:25 -07:00
Dmitry Kovalev
a4533957b0 Merge "Cleaning up vp9_variance.c" 2014-05-05 19:09:57 -07:00
Yunqing Wang
a3c5a79426 Clean up full-pixel search calling code
Removed repetitive code.

Change-Id: Ib6adb6eaf7d4e3feeabb71651f4cc447974a925d
2014-05-05 17:44:13 -07:00
Alex Converse
89fbf3de50 Add an MMX fwht4x4
7% faster encoding a desktop lossless at RT speed 4.

Change-Id: I41627f5b737752616b6512bb91a36ec45995bf64
2014-05-05 15:10:48 -07:00
Adrian Grange
928b34e895 Fix rounding in ARNR calculation
The rounding of the ARNR filter output prior to
normalization by the filter strength was incorrect
when strength = 0.

In this case 1 << (strength - 1) would not create the
required rounding of 0, rather it would outrange. This
patch fixes this issue.

Change-Id: I771809ba34d6052b17d34c870ea11ff67b418dab
2014-05-05 11:00:43 -07:00
Jingning Han
52ae97b6aa SSSE3 implementation of full inverse 8x8 2D-DCT
This commit enables SSSE3 version full inverse 8x8 2D-DCT and
reconstruction. It makes the runtime of vp9_idct8x8_64_add down
from 256 cycles (SSE2) to 246 cycles.

Change-Id: I0600feac894d6a443a3c9d18daf34156d4e225c3
2014-05-05 10:49:27 -07:00
Minghai Shang
bb505879d6 [spatial svc] No need to code full width and height for non key frame
Change-Id: I62ab0f4346b4157a90dc5b5f73ab5e597d69c1bd
2014-05-02 11:29:05 -07:00
Dmitry Kovalev
4498194bad Cleaning up vp9_variance.c
Change-Id: Ie2b9c9881085053c191f3f7b8253e283edef573b
2014-05-02 11:10:45 -07:00
Adrian Grange
8b2b7370b5 Merge "Revert "Force ARNR filtering to be centered on the ARF frame"" 2014-05-02 08:13:06 -07:00
Adrian Grange
a481fcc3e0 Merge "Fix mode selection bug when ARNR filtering disabled" 2014-05-02 08:12:00 -07:00
Debargha Mukherjee
6497f2718f Merge "Switch the default 2 pass vbr variant." 2014-05-02 04:03:29 -07:00
Dmitry Kovalev
53888035f9 Merge "Moving #defines to *.c from *.h." 2014-05-01 18:28:34 -07:00
Dmitry Kovalev
2cba07c660 Merge "Adding vp9_temporal_filter_init() function." 2014-05-01 18:28:21 -07:00
Dmitry Kovalev
d32615c523 Merge "Replacing int_mv with MV." 2014-05-01 18:28:12 -07:00
Dmitry Kovalev
a0327f5eaf Merge "Simplifying vp9_is_upper_layer_key_frame()." 2014-05-01 18:27:56 -07:00
Dmitry Kovalev
25a666ef39 Moving pair_set_epi32 macro into vp9_dct32x32_sse2.c.
Change-Id: I642a7d343677bf934e9a54cf4ad78e908620e39a
2014-05-01 16:45:49 -07:00
Dmitry Kovalev
7d9d5df263 Using SPEED_FEATURES instead of VP9_COMP in vp9_init_search_range().
Change-Id: I961d50d6fafdd37ef7f23f0a871d28e28d2084ca
2014-05-01 16:36:51 -07:00
Dmitry Kovalev
66307bf2c8 Moving costs from MACROBLOCK to VP9_COMP.
Change-Id: I61471dd0f77d1547abec13cbf9670e1c4eb9131a
2014-05-01 16:12:23 -07:00
Dmitry Kovalev
e6a985153f Cleaning up vp9_context_tree.c.
Change-Id: I2d6389773e3c761cda62868735dc5dfbf267b49f
2014-05-01 15:23:35 -07:00
Dmitry Kovalev
9f44467878 Cleaning up vp9_encode_frame() function.
Change-Id: I2b618dfe753f8c6139cecadc5caf14826abb67d9
2014-05-01 15:00:25 -07:00
Dmitry Kovalev
e05b92c0aa Merge "Removing half-variance asm functions which are not used." 2014-05-01 14:50:45 -07:00
Adrian Grange
0423a96469 Fix mode selection bug when ARNR filtering disabled
When ARNR filtering is disabled, by setting
arnr_max_frames=0, mode_skip_mask was being set to
-1 for the ARF frame resulting in no mode being
selected for the block.

The intent is to restrict the reference frame to the
previous ARF frame and the mode to one of ZEROMV,
NEARMV or NEARESTMV.

Change-Id: Ifc3920b153142cd01d422910c94d2f20ffb6f129
2014-05-01 14:38:58 -07:00
Paul Wilkins
307b6c22a3 Switch the default 2 pass vbr variant.
On balance Deb's  modified rate control for VBR seems
to be outperforming especially on some low motion YT
clips so I have switched this to be the default mode for
now.

Change-Id: I0713d430cad6425ac5c48fccdf332e12814ee44a
2014-05-01 11:53:40 -07:00
Dmitry Kovalev
eae4a467a8 Simplifying vp9_is_upper_layer_key_frame().
Change-Id: Ib56df7cd282dadbfd202de23f0c746a93b5ce63e
2014-05-01 11:41:01 -07:00
Dmitry Kovalev
92c536b465 Adding vp9_temporal_filter_init() function.
Change-Id: I0d50354111df79b74aafcd3bb7dc14df3c14733a
2014-05-01 11:35:50 -07:00
Minghai Shang
528a5c28b3 Merge "[svc rc] RC improvement for key frames in upper layers for spatial svc." 2014-05-01 10:53:47 -07:00
Dmitry Kovalev
6653769a02 Merge "Removing unused alt_activity_measure() function." 2014-04-30 15:50:34 -07:00
Dmitry Kovalev
9d3831db33 Merge "Removing unused typedefs." 2014-04-30 15:50:26 -07:00
Dmitry Kovalev
dd1a393624 Replacing int_mv with MV.
Change-Id: Idccb530c814cb8a2fb9f7d0c11eaef25044efe5e
2014-04-30 15:50:13 -07:00
Dmitry Kovalev
c9dfa3f72e Cleaning up vp9_full_range_search_c() function.
Change-Id: Ifc9114aeacd493cfa04d4cb3d071bf1de80e0568
2014-04-30 15:40:24 -07:00
Minghai Shang
f916a3e256 [svc rc] RC improvement for key frames in upper layers for spatial svc.
Change-Id: Id6ab59e505be28cd4eb9f1fe114feb47debe0539
2014-04-30 15:12:55 -07:00
Dmitry Kovalev
4788d4534c Removing MODE_TEST_HIT_STATS.
It seems nobody uses it now.

Change-Id: Ided479cb7f5023559efc8f102ecead43884f4441
2014-04-30 14:17:05 -07:00
Jingning Han
39761eb5d6 Merge "Enable SSSE3 implementation of 8x8 forward 2D-DCT" 2014-04-30 13:41:36 -07:00
Dmitry Kovalev
b035e2f9ae Moving frame_coef_probs from VP9_COMP to local scope.
Change-Id: I58b82c94e893f37b3a07f481abdb3f6c6728f992
2014-04-30 12:52:13 -07:00
Dmitry Kovalev
042274739c Moving #defines to *.c from *.h.
Change-Id: I7cc6f441f414ca1b4d95dad3f789fff6faf8c3c4
2014-04-30 12:40:03 -07:00
Dmitry Kovalev
e826b61305 Removing unused typedefs.
Change-Id: I34ebc59980cf661ed658555e245bf0a93e5c3373
2014-04-30 12:34:09 -07:00
Dmitry Kovalev
94f5491c46 Removing half-variance asm functions which are not used.
Corresponding C functions were removed in
I99695564a3aa9bc8c79ac0a551d257e2ff3ad3c3

Change-Id: I50a5575065a7a9e41904eb2161afd739def927db
2014-04-30 12:21:54 -07:00
Minghai Shang
d9e8c1eafc Merge "[svc rc] Increase worst quality for enhancement layers" 2014-04-30 11:02:54 -07:00
Dmitry Kovalev
d2bc8816a1 Merge "Adding search_site_config struct." 2014-04-29 16:59:47 -07:00
Dmitry Kovalev
14967cd4f5 Removing unused alt_activity_measure() function.
Change-Id: I6b520553cb5334b44356dc4651a2dbc1cb93cca5
2014-04-29 16:58:22 -07:00
Dmitry Kovalev
dde35bbbcc Merge "Cleaning up vp9_full_search_sadx8() function." 2014-04-29 16:37:17 -07:00
Jingning Han
1eaa3a76dc Enable SSSE3 implementation of 8x8 forward 2D-DCT
Assembly implementation of ssse3 8x8 forward 2D-DCT. The current
version is turned on only for x86_64. The average unit runtime
goes from 157 cycles down to 136 cycles, i.e., about 12.8% faster.
This translates into about 1.5% speed-up for pedestrian_area 1080p
at speed 2.

Change-Id: I0f12435857e9425ed7ce12541344dfa16837f4f4
2014-04-29 15:49:18 -07:00
Dmitry Kovalev
3e9943885a Merge "scale_and_extend_frame{,_nonnormative}() cleanup." 2014-04-29 15:09:38 -07:00
Dmitry Kovalev
9b042dc04c Merge "Removing unused vp9_variance_halfpixvar*() functions." 2014-04-29 14:52:58 -07:00
Adrian Grange
0a386b9234 Revert "Force ARNR filtering to be centered on the ARF frame"
This reverts commit 59e733ca81.

Hold off removing arnr_type to give users the opportunity
to change their script files to handle its deprecation. A
follow-up patch will mark the control for setting arnr_type
as deprecated and it will be removed completely in a later
revision of the code.

Change-Id: I8b817c744e144d3714234a4cd4309816d0c7e3e8
2014-04-29 11:04:01 -07:00
Dmitry Kovalev
aa464eca5e Adding search_site_config struct.
Change-Id: I2ad333553e673dbabcdc0f0366aea311e90849bf
2014-04-29 10:34:53 -07:00
Dmitry Kovalev
b87130093e Cleaning up vp9_full_search_sadx8() function.
Change-Id: I61f977a7d0b177881bd5c1a7179fa5f8f089e9a6
2014-04-25 14:55:02 -07:00
Dmitry Kovalev
fae988dc3b Merge "Cleaning up vp9_full_search_sadx3()." 2014-04-25 13:52:20 -07:00
Dmitry Kovalev
3875df8fdb scale_and_extend_frame{,_nonnormative}() cleanup.
Change-Id: Ie99fd7af436ab2f6b3ef0c3f1a652fb26116d861
2014-04-25 12:44:26 -07:00
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
Minghai Shang
4a1386e3c8 [svc rc] Increase worst quality for enhancement layers
Change-Id: Ifbfa90894eec9944bd55f364f1d17eb152338d6b
2014-04-24 11:33:23 -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