5834 Commits

Author SHA1 Message Date
James Zern
cbce09ce62 Merge changes I6abc0657,I8224fba2,I04f64a45,I5d49d119,I76b4d171,I88c11ac3
* changes:
  vp9_sub_pixel_*variance*: disable avx2 variants
  vp9_sad*x4d: disable avx2 variants
  vp9_f(dct|ht): disable avx2 variants
  convolve: disable avx2 variants
  fdct8x8_test: add missing avx2 functions
  dct4x4_test: add missing avx2 functions
2014-06-10 16:14:45 -07:00
James Zern
520cb3f39f vp9_sub_pixel_*variance*: disable avx2 variants
tests failing under Win32/Win64

+ variance_test: add missing avx2 functions (partially disabled)

Change-Id: I6abc0657ea076379ab9ca65c12678b9ea199849d
2014-06-10 16:11:15 -07:00
James Zern
d3ff009d84 vp9_sad*x4d: disable avx2 variants
tests failing under Win32/Win64

+ sad_test: add missing avx2 functions (disabled)

Change-Id: I8224fba2b270f6039ab1877d71e1e512f0081856
2014-06-10 16:10:12 -07:00
hkuang
5556d11841 Merge "Add mode info arrays and mode info index." 2014-06-10 14:27:31 -07:00
hkuang
cdffeaaae0 Add mode info arrays and mode info index.
In non frame-parallel decoding, this works the same way as
current decoding scheme. Every time after decoder finish
decoding a frame, it will swap the current mode info pointer
and  previous mode info pointer if the decoded frame needs
to be shown. Both mode info pointer and previous mode info
pointer are from mode info arrays.

In frame-parallel decoding, this will become more complicated
as current frame's mode info pointer will be shared with next
frame as previous mode info pointer. But when one decoder
thread finishes decoding one frame and starts to work on next
available frame, it needs to retain the decoded frame's mode
info pointers until next frame finishes decoding. The mode info
index will serve this purpose. The decoder will use different
buffer in the mode info arrays and use the other buffer to save
previous decoded frame’s mode info.

Change-Id: If11d57d8eb0ee38c8876158e5482177fcb229428
2014-06-10 13:43:36 -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
James Zern
dd9f502933 vp9_f(dct|ht): disable avx2 variants
tests failing under Win32/Win64

+ dct16x16_test: add missing avx2 functions (partially disabled)

exercises the forward transforms
no idct/iht implementations, so the c-code is used

Change-Id: I04f64a457fa0828a00f32b5c9fe4f55294f21f61
2014-06-09 18:48:11 -07:00
James Zern
5704578f5f convolve: disable avx2 variants
tests failing under Win32/Win64

Change-Id: I5d49d11911bcda3a832b14efe5500d22597bedcf
2014-06-09 18:42:03 -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 3f95a230c7e54104201b3f6c577dfa9251b4642a

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
Jingning Han
0c4a4225ec Merge "Enable SSSE3 inverse 2D-DCT with 10 non-zero coeffs" 2014-06-03 16:51:39 -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
Dmitry Kovalev
f5628853d7 Fixing failed ARM build.
Change-Id: I3f74418f07c2dfdd7725a5b4a8ef5c5f4aca6289
2014-06-02 11:14:12 -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 538af7db5ffe2ab560511a3bc0ae74dae9316c14

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 916550428db803c54c993ff9d3c34b9b0bcebb7c

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
Jingning Han
ba6bed372b Merge "Fix a potential overflow issue in inverse 16x16 full 2D-DCT" 2014-05-30 15:52:53 -07:00
hkuang
6a0dcc1337 Merge "Refactor the vp9_get_frame code for frame parallel." 2014-05-30 13:38:36 -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
hkuang
6f5aba069a Refactor the vp9_get_frame code for frame parallel.
In frame parallel decoding mode,  there will be still several frames inside
the decoder when application stop calling vpx_codec_decode to decode frames.
The application will need to keep calling vpx_codec_get_frame to get all the
remaining decoded frames in the decoder.

Change-Id: I2ce8260a91282f045bb9a6093ff8a606b1990f14
2014-05-30 10:37:00 -07:00