Commit Graph

10705 Commits

Author SHA1 Message Date
Adrian Grange
8cb8aef7c7 Merge "Modified frame buffer handling" 2014-07-17 12:15:16 -07:00
Scott LaVarnway
ba0652e83a Merge "Added vp9_sad64x64_neon(), vp9_sad32x32_neon()" 2014-07-17 11:42:16 -07:00
Adrian Grange
f68aaa38d6 Modified frame buffer handling
This patch is the first step toward simplifying the
frame buffer handling.

The final goal is to have a common frame buffer handling
framework for both encoder and decoder that incorporates
the existing ability to use externally allocated memory.

Change-Id: I2c378a4f54a39908915f46c4260e17a080db7ff1
2014-07-17 11:06:35 -07:00
Jim Bankoski
943e43273b allow config options to limit max size of decode
This is a practical concern to allow us to fail in a decoder instance
if the size of a file is bigger than we can reasonably handle.

Change-Id: I0446b5502b1f8a48408107648ff2a8d187dca393
2014-07-17 07:07:48 -07:00
Jim Bankoski
1a01194ab5 fail allocation of buffers if size_t < frame_size
Change-Id: I25c595e8c197ab0a9955d2373f1a74d42fbd1638
2014-07-17 07:03:31 -07:00
Paul Wilkins
93960c869e Merge "Changes to rd balance and multi-arf bug fix." 2014-07-17 07:01:31 -07:00
Yaowu Xu
42a68e6701 Merge "make default_interp_filter choice a speed feature" 2014-07-16 19:12:22 -07:00
Joshua Litt
422acd0a07 Merge "New decode perf test files" 2014-07-16 16:38:49 -07:00
Joshua Litt
bcfcd7c377 New decode perf test files
Change-Id: I89ff8d4243e0438c8fe4ad74b9745c060b4460d8
2014-07-16 16:01:34 -07:00
Guillaume Martres
f744f19cff Merge "vp9_ratectrl.c: refactor get_active_quality usage" 2014-07-16 14:29:32 -07:00
Yaowu Xu
51c60a891e make default_interp_filter choice a speed feature
This commit changed the hard-coded DEFAULT_INTERP_FILTER to a speed
feature with the same default value: SWITCHABLE.

Change-Id: I7f54f40f1bd3f5277841d04b85db7a84e47313f1
2014-07-16 14:28:51 -07:00
Scott LaVarnway
696fa52eaa Added vp9_sad64x64_neon(), vp9_sad32x32_neon()
and vp9_sad16x16_neon()

On a Nexus 7, vpxenc (in realtime mode, speed -6)
reported a performance improvement of ~17%.

Change-Id: I91e070cde2973451083d3f3d63b49b7886de9a85
2014-07-16 12:54:46 -07:00
James Zern
a04655016b Merge "invalid_file_test: add an operator<< for DecodeParam" 2014-07-16 12:05:34 -07:00
Deb Mukherjee
090f4d4b5a Adds support for raw yuv files for 422/444
Adds support for raw yuv inputs in 422/444 sampling for use
in profiles 1 and 3.
New options added to vpxenc are:
--i422 and --i444, which are to be used in conjunction with
--width, --height, and --fps for proper raw yuv handling.
A new option is added to vpxdec:
--rawvideo, which enforces raw yuv video output for the
bit-stream decoded irrespective of 420, 422 or 444 sampling.
The existing options --i420 and --yv12
are specialized for use only for 420 content.

Change-Id: I2e3028380709afa673bf2e2c25ad5e271a626055
2014-07-16 09:44:30 -07:00
Tim Kopp
ca752e3320 Merge "VP9 Denoiser denoises after mode/bsize search" 2014-07-16 08:22:14 -07:00
Paul Wilkins
b691230dea Changes to rd balance and multi-arf bug fix.
2 pass only change to calculation of rd mult based on Q.
Make a small adjustment based on frame type and also
replace adjustment based on iifactor with an one based
on the ambient GF/ARF boost level.

Also fix multi arf bug / issue.

Overall these change give an slight improvement in ssim
but hurt psnr a little.

Change-Id: I5e1751e3ff5390a26f543d7855059e6fbcce105e
2014-07-16 13:58:47 +01:00
Deb Mukherjee
f1f3d092c2 Merge "Renames interface field in VpxInterface" 2014-07-15 23:01:51 -07:00
Yaowu Xu
998cff6165 Merge "Added a rt speed 12" 2014-07-15 18:02:17 -07:00
James Zern
7d7779738f Merge changes I58a5af33,Ied9b0392
* changes:
  vp8_bilinear_predict4x4_neon: init src vectors
  vp8_sixtap_predict4x4_neon: init src vectors
2014-07-15 18:02:11 -07:00
Deb Mukherjee
f332c6305e Renames interface field in VpxInterface
Renames interface to codec_interface since it is a reserved
word on windows.

Change-Id: I84f2cbf257a4c44f16dc2464127e35ee405c2c3e
2014-07-15 16:55:12 -07:00
Yaowu Xu
faa686bb1b Added a rt speed 12
We target this speed to achieve similar encoding speed and better
compression than vp8 rt mode with cpu-used at -12.

Change-Id: Ic1bb4371c81a17ea80e83459c1cbf4c09a3498e8
2014-07-15 16:46:22 -07:00
Minghai Shang
6d85b12048 Merge "[spatial svc]Fix signed/unsigned mismatch error" 2014-07-15 13:08:08 -07:00
Yaowu Xu
257f16cc54 Merge "Make non-rd pick_mode work with Golden/Altref" 2014-07-15 12:01:31 -07:00
Adrian Grange
7be99c4a26 Merge "Fix show_existing_frame not decreasing frame buffer ref counter." 2014-07-15 12:01:16 -07:00
Minghai Shang
e7135e9d1c [spatial svc]Fix signed/unsigned mismatch error
Change-Id: I5e3b8b1b151bc14416577f85434182cba2302679
2014-07-15 11:22:28 -07:00
Alexander Voronov
0aa2af55b5 Fix show_existing_frame not decreasing frame buffer ref counter.
The issue was introduced by commit g7c43fb6. If current frame
is repeated from existing-ref pool, frame buffer ref counter
is not decreased, so buffer isn't released. Decoder fails being
unable to allocate new frame buffer at some point.

Added a test vector to verify that the condition will not
recur later. Test vector was generated by the code in this patch:
https://gerrit.chromium.org/gerrit/#/c/70862/

Change-Id: I8af96eb5b9670176e01a281d2e18bd458712cf78
2014-07-15 11:06:15 -07:00
Marco Paniconi
669e388e78 Merge "vp8: Allow for on/off control of UV temporal denoiser." 2014-07-15 11:05:54 -07:00
Alex Converse
8e241ae207 Merge "active_map_test: remove unused VP9_FACTORY define" 2014-07-15 10:20:26 -07:00
Marco Paniconi
21042c7154 vp8: Allow for on/off control of UV temporal denoiser.
Use noise_sensitivity level for enabling UV denoiser.

Change-Id: Ib208786a6fdf654981bcd96a3cf44e8e678025c1
2014-07-15 09:51:03 -07:00
Tim Kopp
03819ed9ab VP9 Denoiser denoises after mode/bsize search
In vp8, statistics are collected about the different modes as they are searched.
This process is more complicated due to the variable block size. Fields were
added to the PICM_MODE_CONTEXT struct to hold this information for each point in
the search. The information is then taken from the appropriate part of the tree
during denoising.

Change-Id: I89261ab77ad637821287ae157dfdf694702b8e77
2014-07-15 08:43:43 -07:00
James Zern
760deb37c1 active_map_test: remove unused VP9_FACTORY define
Change-Id: If96a133ad83e3ed4e4b3620dff857b26641da892
2014-07-14 18:59:41 -07:00
James Zern
c1259aa343 invalid_file_test: add an operator<< for DecodeParam
Improves the --gtest_list_tests output and avoids a valgrind warning in
gtest's testing::internal2::PrintBytesInObjectTo() due to padding in the
structure.

old:
VP9/InvalidFileTest.
  ReturnCode/0  # GetParam() = (0x9d5308, 16-byte object <01-00 00-00 00-00 00-00 37-02 73-00 00-00 00-00>)

new:
VP9/InvalidFileTest.
  ReturnCode/0  # GetParam() = (0x9d5308, threads: 1 file: invalid-vp90-01-v2.webm)

Change-Id: Ifb9c66fba2e72272bd591a3f6273aeb6bda6af4a
2014-07-14 18:45:50 -07:00
Pengchong Jin
f349b071c6 Rewrite functions related to first pass block stats
Change-Id: I28679f88e2911b06eef5cbc83ecb62b8c69e4c53
2014-07-14 17:45:27 -07:00
Deb Mukherjee
1f6aaeddc5 Merge "Some extra bit probability cleanups" 2014-07-14 17:26:54 -07:00
Jingning Han
2806ea91f5 Merge "Fix a potential invalid memory access in non-RD coding flow" 2014-07-14 17:25:43 -07:00
Yaowu Xu
f1885bc0ca Make non-rd pick_mode work with Golden/Altref
This is to fix a reported issue #825:
https://code.google.com/p/webm/issues/detail?id=825

Change-Id: I196535aee81a8967551c058849d7f9c6874cb730
2014-07-14 17:16:24 -07:00
Yaowu Xu
832e4f3c6d Merge "Silent -wextra warnings" 2014-07-14 14:03:39 -07:00
Minghai Shang
5179edc0ae Merge "[spatial svc]Implement alt reference frames" 2014-07-14 13:03:11 -07:00
Deb Mukherjee
b386aa0c93 Merge "Misc. bit-depth related changes" 2014-07-14 12:49:47 -07:00
Deb Mukherjee
449e5f2aba Misc. bit-depth related changes
Sets the bit-depth field as default 8 in the image structure in vp8.
Generalizes yuv read in preparation for support for reading 422/444
for 8-bit and 10/12-bit.

Change-Id: I560c13c348b122fd028e408431156376b895058c
2014-07-14 11:48:04 -07:00
Minghai Shang
e899859c48 [spatial svc]Implement alt reference frames
All changes are for spatial svc only.
1. Enable encoding hidden frames in each layer and use alt reference idex to reference the hidden frame in each layer
2. Use golden reference idx for spatial reference
3. For those layers that don't have hidden frames (caused by lack of frame buffers), reference a hidden frame in lower layers
4. Add "auto-alt-refs" in svc options
Change-Id: Idf27d1fd2fb5f3ffd9e86d2119235e3dad36c178
2014-07-14 11:24:17 -07:00
Jingning Han
6ce515b9ff Merge "Fix chrome valgrind warning due to the use of mismatched bsize" 2014-07-13 11:07:44 -07:00
James Zern
44eb577cf7 invalid_file_test: convert test param from tuple to struct
fixes visual studio 9 + apple clang builds where the template type is
interpreted as char[] rather than const char*:

::f1_' : cannot specify explicit initializer for arrays
error: array initializer must be an initializer list or string literal

Change-Id: I27286ce341b2f7a09b6202caffd6b72f64fd2234
2014-07-12 13:34:36 -07:00
Yaowu Xu
618e7ef00e Silent -wextra warnings
1. vpxenc.c
2. y4minput.c

Change-Id: I1cfe1ef84a3eec11376976c09947fe6178ee039f
2014-07-11 16:28:12 -07:00
hkuang
6f85cc6648 Merge "Add unit test to test tile decoding error handling." 2014-07-11 16:09:41 -07:00
James Zern
0999a2a24e Merge "vp9_loopfilter.c: cosmetics" 2014-07-11 16:02:21 -07:00
James Zern
08955ed8e1 Merge "vpxenc: fix per-frame psnr/size output on a terminal" 2014-07-11 15:53:05 -07:00
Jingning Han
b957439c87 Fix a potential invalid memory access in non-RD coding flow
This commit fixes a potential out-of-boundary memory access due to
the use of reuse_inter_pred_sby in the non-RD coding flow. It
resolves the corresponding asan error.

Change-Id: Iff605f5921230966990013541cd855d698810922
2014-07-11 15:50:43 -07:00
Jingning Han
3cddd81c6d Fix chrome valgrind warning due to the use of mismatched bsize
This commit fixes a mismatched use case of block size in non-RD
intra prediction check. The residual SSE and variance should be
calculated per transform block size, instead of operating block
size, which caused chrome valgrind warning on conditional jump
based on uninitialized value (webm issue 823). This commit
resolves this issue.

Change-Id: I595c06599c7e0fd0e4a08736519ba68fc14bc79a
2014-07-11 15:49:22 -07:00
hkuang
c147cf3d3b Add unit test to test tile decoding error handling.
Also fix bugs related with corrupted frame handling.
Return VPX_CODEC_CORRUPT_FRAME when getting corrupted
block.

Change-Id: I7207ccc7c68c4df2b40b561315d16e49ccf7ff41
2014-07-11 13:50:05 -07:00