Commit Graph

10858 Commits

Author SHA1 Message Date
Pengchong Jin
c580428928 Merge "Store block-wise statistics obtained in the first pass" 2014-07-28 14:49:05 -07:00
Jim Bankoski
6865af6378 Merge "Fix reference frame size restrictions." 2014-07-28 09:47:57 -07:00
Pengchong Jin
bae652245d Store block-wise statistics obtained in the first pass
Change-Id: I9956db2ba2f7d28f484daaf5022d8d1ef5db473c
2014-07-28 09:12:40 -07:00
Jim Bankoski
899585ebe9 Fix reference frame size restrictions.
The issue was introduced by commit g9f37d14 with adding explicit
restrictions on reference-frame scale factors. The restriction
is checked against aligned-by-8 frame dimensions, not against
original ones. So, for example, frame of 35×35 actually can refer
to frame of 70×70, but the new check won't allow this. It will
compare 35 vs 72 (not 70), so 2x downscale limit will be exceeded.

Change-Id: Ic663693034440f64ac8312cbff9e1e773a921060
2014-07-28 08:37:25 -07:00
Jim Bankoski
9bbcc20b57 Merge "This removes a test that fails on 32 bit" 2014-07-28 07:17:27 -07:00
Johann
a7ba80f4cb Remove copy frame neon
No performance benefit

Change-Id: I7f0cfa98ac2bb5b823d0972827b45f32cd3f6b4c
2014-07-25 20:06:30 -07:00
Johann
c7e1d25b00 Remove unused copy src frame function
Change-Id: I03798e387a656473b6ec004246e2b882c8c6bb84
2014-07-25 20:06:29 -07:00
Johann
3f701df0e0 Add test for vp8 copy frame
Change-Id: Iddac0f263b283480315147c51deec2a2bbd7a1a7
2014-07-25 20:06:23 -07:00
Jingning Han
ac1f06188d Merge "Fix rd_pick_partition search loop for 4x4 blocks" 2014-07-25 15:57:35 -07:00
Jingning Han
0c103eb211 Merge "Fix potential ioc issue in vp9_get_prob for 4K above sizes" 2014-07-25 15:56:53 -07:00
Jingning Han
3d5f17311c Merge "Remove unnecessary conditional assignment" 2014-07-25 15:56:31 -07:00
Minghai Shang
8433c8f92d Merge "[spatial svc]Fix reference issues" 2014-07-25 13:24:27 -07:00
Joshua Litt
071c95d8a1 Merge "Encode perf test" 2014-07-25 13:16:36 -07:00
Joshua Litt
83b843f4b1 Encode perf test
Change-Id: I61993946fe5cbcd7ebeb6302efd9538bff022e5a
2014-07-25 11:02:04 -07:00
Yunqing Wang
4005b2d822 Merge "Allocate aligned source in variance test" 2014-07-25 10:53:13 -07:00
Alex Converse
f5827aee38 Merge "Refactor inter/intra_suberblock_yrd." 2014-07-25 10:51:48 -07:00
Yaowu Xu
b43b4fe3a2 Merge "Fix allocation of context buffers on frame resize" 2014-07-25 08:49:39 -07:00
Yaowu Xu
99813843ef Merge "Changed validation of reference frame size" 2014-07-25 08:48:48 -07:00
Marco Paniconi
4d33a01ca3 Merge "vp8: reduce refresh_max_mbs_perframe with fewer layers." 2014-07-25 08:42:41 -07:00
Tim Kopp
bc63608800 Merge "s/CONFIG_DENOISING/CONFIG_VP9_TEMPORAL_DENOISING" 2014-07-25 07:53:51 -07:00
Jingning Han
84af0486f9 Fix rd_pick_partition search loop for 4x4 blocks
The partition search for 4x4 blocks takes unnecessary steps to
reconstruct pixels and an extra partition type update. This commit
removes such operations. No visible compression/speed difference.
Thanks to Yue (yuec@) for finding this issue.

Change-Id: I3f83824aa3fd3717d63be0b280fa57258939a70a
2014-07-25 07:17:58 -07:00
James Zern
747451015c Merge "rtcd.pl: check for auto_help availability" 2014-07-24 23:09:35 -07:00
Johann
62c6411820 Remove neon version of vp8 extend borders
The code fails the unit test. Speed comparisons to the C are invalid
because the code frequently didn't correctly extend the right and
bottom portions of the frame.

Reduce maximum frame size on ARM devices to avoid OOM

Change-Id: Ia664c86406f0bb8120fd7ad401f32d0bd44994fb
2014-07-24 18:33:40 -07:00
Johann
a04ace289a Add test for vp8 extend_borders
Change-Id: I5bfc965019815e631a2300eb29aa065fb2bc94aa
2014-07-24 18:32:43 -07:00
Yunqing Wang
5c93e62e0a Allocate aligned source in variance test
The source buffer is an aligned buffer in VP9. Added the alignment
to make it consistent with libvpx.

Change-Id: I3ebb9d2e8555ed532951da479dd5cbbb8812e02d
2014-07-24 17:11:58 -07:00
Marco Paniconi
64db43d6a7 vp8: reduce refresh_max_mbs_perframe with fewer layers.
Change-Id: Ib39cc0218a1f232c0cde8e99ca3319c17274bd48
2014-07-24 15:47:19 -07:00
Jingning Han
53844275e9 Fix potential ioc issue in vp9_get_prob for 4K above sizes
This commit turns on the existing vp9_get_prob function using
64 bit in the intermediate step. It fixes the ioc issue for 4K
above frame sizes (issue 828).

Change-Id: I9f627f3beca2c522f73b38fd2a3e7eefdff01a7c
2014-07-24 15:35:51 -07:00
Jingning Han
7112d70f24 Remove unnecessary conditional assignment
The assignment of the variable mode_excluded in
vp9_rd_pick_inter_mode_sub8x8 takes redundant conditional jump.
This commit removes it.

Change-Id: Ie195fbe6e54ec2ade7093d562c456a2e93143704
2014-07-24 15:34:11 -07:00
Johann
e956c00762 Set and use uv_crop_[width|height]
Ensure consistent border extension by rounding uv_crop_* at image
creation time. Where it was rounded problems could arise with the right
and bottom extensions.
When padding = 32, y_width = 64, and y_crop_width = 63:
 (padding + width - crop_width + 1) / 2
 32 + 64 - 63 + 1 should equal 32 *but*
 32 + 1 + 1 equals 34 giving a right buffer of 17 instead of 16.
By calculating uv_crop_* earlier we round up at the appropriate time and
for the same values:
 (y_crop_width + 1) / 2
 63 + 1 / 2
 64
 (padding / 2) + uv_width - uv_crop_width
 16 + 16 - 16
 16

Change-Id: If866cd1b63444771440edb1432280ac83875969b
2014-07-24 15:30:13 -07:00
Yaowu Xu
9261e1aa6e Changed validation of reference frame size
A previous change, https://gerrit.chromium.org/gerrit/#/c/70632,
introduced a size validation for reference frames to insuare the
input stream is a valid VP9 stream. However, the logic requiring
all reference frames have valid size turned out to be too strict.

In this commit, we modify the validation to require one of the
reference frame has valid dimension. In addition, the decoder
reports error whenever it detects the use of reference frame
with invalid scalig ratio.

Change-Id: If8efc312244087556cfe00f1fcbdff811268ebad
2014-07-24 14:58:01 -07:00
James Zern
29943519a7 rtcd.pl: check for auto_help availability
'auto_help' was added to Getopt::Long in 2.33
this isn't strictly necessary as an unrecognized option (--help) will
issue a warning and then print the usage

Change-Id: Ia757553a4e19d22a8eb70768a8866ab1a76a0eec
2014-07-24 14:55:19 -07:00
Adrian Grange
423e8a9727 Fix allocation of context buffers on frame resize
The patch:
https://gerrit.chromium.org/gerrit/#/c/70814/
changed the test that determined whether the context
frame buffers needed to be reallocated or not.

The code checked for a change in total frame area
to signal the need to reallocate context buffers.
However, the above_context buffer needs to be
resized i:xf only the width of the frame has increased.

Change-Id: Ib89d75651af252908144cf662578d84f16cf30e6
2014-07-24 14:07:45 -07:00
Tim Kopp
9d337d34f2 s/CONFIG_DENOISING/CONFIG_VP9_TEMPORAL_DENOISING
This should prevent confusion with the VP8 CONFIG_TEMPORAL_DENOISING and other
flags.

Change-Id: I1fe4e2977895b7966841d861ab74317ad875b6c8
2014-07-24 13:43:52 -07:00
Alex Converse
6eae35c07f Refactor inter/intra_suberblock_yrd.
Move txfm_rd_in_plane into choose_tx_size_from_rd and cleanup callers.

Change-Id: I1df2d7dc984802bd5e204cbe881ada0d75fbb3f7
2014-07-24 11:21:51 -07:00
James Zern
0cf0b02c4c Merge "x86inc: fix compilation with NASM Change-Id: I5978921ab1ccad6648a5bde6ad023c3e3430f5f4 " 2014-07-23 22:45:51 -07:00
KO Myung-Hun
7ddb5f5992 x86inc: fix compilation with NASM
Change-Id: I5978921ab1ccad6648a5bde6ad023c3e3430f5f4
2014-07-24 13:02:34 +09:00
KO Myung-Hun
11f2d4df95 Makefile: strip debugging informations only
--strip-unneeded causes SIGSEGV when accessing g_executable_path. So
test_libvpx crashes due to SIGSEGV in ::testing::InitGoogleTest().

OS/2, aout, strip v2.23.2

Change-Id: I2718d082447ee0d9ad0c021b9156c50e1ac085a6
2014-07-23 20:26:52 -07:00
Minghai Shang
929001bf22 [spatial svc]Fix reference issues
1. Remove last reference flag for first frame upper layers in one pass mode.
2. Disable refresh golden frame flag for key frames.

Change-Id: I44ac1bd2c795169e4fbfdd078ea79a1d33a204d6
2014-07-23 16:54:14 -07:00
Jingning Han
374c885919 Merge "Remove redundant argument entry in handle_inter_mode" 2014-07-23 15:07:01 -07:00
Jingning Han
787e8240d5 Merge "Use the chessboard pattern pred search in newmv mode" 2014-07-23 15:06:52 -07:00
Marco Paniconi
f68288c6a4 Merge "Fix clang compiler warning in denoising_neon." 2014-07-23 13:58:45 -07:00
Yaowu Xu
5dcb2e3237 Merge "Moved call to vp9_clear_system_state() to a proper location" 2014-07-23 12:46:11 -07:00
Jingning Han
e945c56d4a Remove redundant argument entry in handle_inter_mode
The value of mode_excluded has been properly set in
vp9_rd_pick_inter_mode_sb(). It is redundant to send it in
handle_inter_mode() and re-set the value again.

Change-Id: I408d4731f2f42e0bcf3ae62e85757717bb410471
2014-07-23 12:04:45 -07:00
Jingning Han
4f2f86725b Use the chessboard pattern pred search in newmv mode
This commit extends the chessboard pattern prediction filter search.
If the above and left blocks have the same prediction filter type,
the encoder will skip the prediction filter type search and use the
reference one.

The overall chessboard pattern prediction filter type search reduces
speed 3 runtime for hard clips. Experiments on park joy at 1080p
and 15000 kbps show that the runtime goes from 723265 ms to 65832 ms,
i.e., about 10% speed-up. Compression performance wise, it affects
the coding quality by

Change-Id: I880975497c7ad166532e9eea9bf46684d77ff327
derf:    -0.326%
yt:      -0.257%
hd:      -0.241%
stdhd:   -0.417%
2014-07-23 11:59:52 -07:00
Jingning Han
66d5757695 Merge "Remove redundant num_refs definition" 2014-07-23 10:34:54 -07:00
Marco Paniconi
7788c62286 Fix clang compiler warning in denoising_neon.
Issue: https://code.google.com/p/webm/issues/detail?id=829

Change-Id: I580308f8aa4af194b5d8990a9692ebd18db68ee8
2014-07-23 09:59:27 -07:00
Jingning Han
353819103e Remove redundant num_refs definition
Use is_comp_pred to replace the use case of num_refs.

Change-Id: I4d0c1e14d5f728428a2ae3d293cd2b4a8b2f31d8
2014-07-23 09:29:51 -07:00
Jingning Han
0e5edf4eae Merge "Enable chessboard inter prediction filter type search" 2014-07-23 09:12:56 -07:00
James Zern
897116d5c8 Merge "frame_size_tests: reduce default 'large' frame size" 2014-07-22 18:40:31 -07:00
Jingning Han
54ad09586c Enable chessboard inter prediction filter type search
This commit enables a chessboard pattern prediction filter type
search scheme for rate-distortion optimization speed-up. For the
inferred motion vector modes, the encoder can re-use its above/left
neighbor blocks' prediction filter type and skip a full test on
all possible filter types. Such operation is turned on/off
alternatively in a chessboard manner.

It is turned on in speed 3. For test clip pedestrian 1080p, the
runtime is reduced from 231500 ms -> 221700 ms. The compression
performance is changed:
derf:  -0.147%
yt:    -0.134%
hd:    -0.079%
stdhd: -0.220%

Change-Id: I1912f278e7576c2dc632688e3ad7a257410c605a
2014-07-22 16:49:03 -07:00