1029 Commits

Author SHA1 Message Date
Scott LaVarnway
fe2cc873dc VP8 encoder for ARMv8 by using NEON intrinsics 1
Add vp8_mse16x16_neon.c
- vp8_mse16x16_neon
- vp8_get4x4sse_cs_neon

Change-Id: I108952f60a9ae50613f0ce3903c2c81df19d99d0
Signed-off-by: James Yu <james.yu@linaro.org>
2014-09-15 12:04:09 -07:00
Deb Mukherjee
41e6ec4a57 Visual Studio build (warning) fix
Explicit type casting to prevent warning.

Change-Id: Ib5be4ad6d4126d88f7c67d246bb085df1e813329
2014-09-14 07:32:18 -07:00
Deb Mukherjee
10783d4f3a Adds high bitdepth transform functions and tests
Adds various high bitdepth transform functions and tests.
Much of the changes are related to using typedefs tran_low_t
and tran_high_t for the final transform cofficients and intermediate
stages of the transform computation respectively rather than fixed
types int16_t/int. When vp9_highbitdepth configure flag is off,
these map tp int16_t/int32_t, but when the flag is on, they map
to int32_t/int64_t to make space for needed extra precision.

Change-Id: I3c56de79e15b904d6f655b62ffae170729befdd8
2014-09-11 19:56:33 -07:00
Johann
ac2f2e7855 Merge "Allow specifying opt dependencies" 2014-09-11 16:02:41 -07:00
Johann
8645a53039 Allow specifying opt dependencies
If optimizations use more than one cpu feature, allow
specifying them so that '--disable-X' still works

https://code.google.com/p/webm/issues/detail?id=854

Change-Id: I3108ea37b397371a2be84dd5f2380b304db23f18
2014-09-11 13:43:48 -07:00
Minghai Shang
12aaff560b [spatial svc] Remove handling frame and stats packets in the codec
1. svc_encodeframe.c will not handle frame or stats packets anymore.
   The app will process them.
2. Remove APIs that related to these packets.

Change-Id: Id0d7f8b458dc09c6f77064c0878fd4e572db001b
2014-09-11 11:35:27 -07:00
James Zern
7ee073e61d vp9: wait for key/intra-only frame after corruption
don't bother decoding any further after receiving an earlier decode
error until a key/intra-only frame is encountered.

Change-Id: I381917b70d7a9e6f8d6de42e3d181bb113a4cec4
2014-09-09 19:36:11 -07:00
Alex Converse
864fd85011 Add an invalid file test for referencing a different color space.
Change-Id: I46472a524f5188b293332946be943bd15cfc8777
2014-09-08 11:12:15 -07:00
Dmitry Kovalev
1f19ebbab6 Replacing vp9_get_mb_ss_sse2 asm implementation with intrinsics.
Change-Id: Ib4f5dd733eb2939b108070a01e83da5d9990bac0
2014-09-06 00:10:25 -07:00
hkuang
4d0d78424b Increase the thread test range to cover 5, 6, 7, 8 threads.
Change-Id: Id25c294720551bb5153987d8758668befaa57929
2014-09-05 17:11:30 -07:00
James Zern
bb4950dfdf vp9: correct context buffer resize check
allocations within vp9_alloc_context_buffers() rely on mi_rows/mi_cols
individually, use those to determine whether to realloc rather than
stride and stride * rows. this fixes a crash with some fuzzed files for
invalid accesses into last_frame_seg_map and above_context.

Change-Id: I7b9f40dcf170d443890f3bd2acd285507943c7d4
2014-09-04 19:14:21 -07:00
James Zern
440f5097c7 vp9: fail decode if block/frame refs are corrupt
proceeding using a corrupt (incompletely decoded) frame reference may
lead to incorrect assumptions about allocation sizes leading to a crash.

Change-Id: I76e74f2e1be127c2e2c7e1174bb3307497dfd23d
2014-09-04 19:14:00 -07:00
Dmitry Kovalev
202edb3d23 Actually resetting random generator for all variance test cases.
Calling Reset(int) method instead of overloaded operator()(int).
Adding underscore at the end of class member name.

Change-Id: I01934e7bc056d4b594e5d05d693328febd34ac3c
2014-09-04 12:24:52 -07:00
Alex Converse
81e5d3f988 Add a more complex SEG_LVL_SKIP test vector.
This file changes the segmentation map, deactivates the map, and
reactivates the map.

Change-Id: I1c8b8949887257b9f4c49a1a9ba9a7c74666ef2e
2014-09-03 15:08:49 -07:00
Scott LaVarnway
dcbfacbb98 Neon version of vp8_build_intra_predictors_mby_s() and
vp8_build_intra_predictors_mbuv_s().

This patch replaces the assembly version with an intrinsic
version.

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

Change-Id: I9ef65bad929450c0215253fdae1c16c8b4a8f26f
2014-09-03 13:41:27 -07:00
Minghai Shang
759afe525c Merge "[svc] Temporal svc with two pass rate control" 2014-09-03 10:51:19 -07:00
Yaowu Xu
14bcbdac76 Merge "Add a test vector for SEG_LVL_SKIP." 2014-09-03 08:12:20 -07:00
Dmitry Kovalev
0ecc75c819 Merge "Removing MMX SAD calculation code." 2014-09-02 17:35:59 -07:00
Alex Converse
deeeb427dd Add a test vector for SEG_LVL_SKIP.
Change-Id: Ib41acade12fe6cdd4c4a4efdb1260d5f100a3e7f
2014-09-02 16:48:36 -07:00
Dmitry Kovalev
318fc0c34f Removing MMX SAD calculation code.
Removed functions:
* vp9_sad_16x16_mmx
* vp9_sad_8x16_mmx
* vp9_sad_16x8_mmx
* vp9_sad_8x8_mmx
* vp9_sad_4x4_mmx

Change-Id: Ic5174b93b64d65d846f0c11e72cab149e9472bc3
2014-09-02 14:41:36 -07:00
Deb Mukherjee
5acfafb18e Adds config opt for highbitdepth + misc. vpx
Adds config parameter vp9_highbitdepth, to support highbitdepth profiles.
Also includes most vpx level high bit-depth functions. However
encode/decode in the highbitdepth profiles will not work until
the rest of the code is in place.

Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
2014-09-02 14:37:10 -07:00
Minghai Shang
be3b08da3e [svc] Temporal svc with two pass rate control
It's built based on current spatial svc code.
We only support one spatial two temporal layers at this time.
Change-Id: I1fdc8584354b910331e626bfae60473b3b701ba1
2014-09-02 12:05:14 -07:00
Dmitry Kovalev
72037944df Merge "Removing variance MMX code." 2014-08-29 14:08:02 -07:00
James Zern
fec40f9269 vp9: fix m/t loop filter invalid free
store the number of allocated rows in VP9LfSync, the calculated values
can not be relied on when dealing with corrupt material.

Change-Id: I13b8bcec9738c299a71df726772ab7ac05511e5b
2014-08-29 11:04:45 -07:00
Dmitry Kovalev
12cd6f421d Removing variance MMX code.
Removed functions:
* vp9_mse16x16_mmx
* vp9_get_mb_ss_mmx
* vp9_get4x4var_mmx
* vp9_get8x8var_mmx
* vp9_variance4x4_mmx
* vp9_variance8x8_mmx
* vp9_variance16x16_mmx
* vp9_variance16x8_mmx
* vp9_variance8x16_mmx

They all have SSE2 equivalent.

Change-Id: I3796f2477c4f59b35b4828f46a300c16e62a2615
2014-08-29 10:26:42 -07:00
James Zern
c29cc89c78 Merge "vp9: fix crash in inline loopfilter w/corrupt file" 2014-08-28 18:37:30 -07:00
James Zern
458d0114f9 Merge "vp9: fix crash in mt loopfilter w/corrupt file" 2014-08-28 18:36:31 -07:00
Tom Finegan
6b5b4bf235 test/vp8_multi_resolution_encoder.sh: Add missing devnull redirect.
Change-Id: Id60ae8178191e30603a5c8665793ace7eb9c8533
2014-08-28 10:49:33 -07:00
James Zern
cde790c36d vp9: fix crash in inline loopfilter w/corrupt file
attempting to decode a frame after the previous frame failed has the
potential of interrupting an earlier loop filter task

Change-Id: I6f2b1ddcdf5b89c3e2ee8caf5289dada2a087d66
2014-08-27 16:55:31 -07:00
Tom Finegan
3b0934cf39 Add test for vp8_multi_resolution_encoder.
Change-Id: I94667a23046e3cf17c421ac97ca66ea57f846b5c
2014-08-27 16:16:55 -07:00
James Zern
4f27202df7 vp9: fix crash in mt loopfilter w/corrupt file
if the first frame was corrupt and loop filter not called, the next call
would assume the necessary allocations had been done and segfault when
accessing a NULL pointer

Change-Id: Ib6ef505e5c594e6f0fe65ab0700172bcf06b92a6
2014-08-27 14:21:14 -07:00
Marco
503792ffef Add a separate datarate test for denoiser enabled.
Change-Id: Ibc91a46d11ad9c58e340b4346ed813a1be9b404a
2014-08-27 11:31:56 -07:00
Marco
16e52fc155 Enable denoiser for vp8 datarate tests.
Keep one test, BasicBufferModel, with denoiser set off.

Change-Id: I762c2004b3adca24f677535cfa5b991108f31f01
2014-08-26 15:46:24 -07:00
Tom Finegan
efb0fd1ba4 vpxenc.sh: Move some frequently used params into functions.
Echo args back from new util functions to decrease the repetition
in this file.

Change-Id: Id4d7c02bf81cf2c5261f58b560e033869a346677
2014-08-25 15:00:16 -07:00
Minghai Shang
42ad07a138 Merge "[spatial svc]Multiple frame context feature" 2014-08-25 14:29:49 -07:00
Tom Finegan
93ac60a65b vpxenc.sh: Make vpxenc() usage agree with implementation.
- Make $1 input file at all call sites.
- Actually use vpxenc_pipe().

Change-Id: I22f25719aeb3dce60863207b2e2a49e42e27ed06
2014-08-25 14:28:07 -07:00
Tom Finegan
8b2abdeed7 Merge "vpxenc.sh: Add real time tests." 2014-08-25 14:27:11 -07:00
Minghai Shang
d4a407c051 [spatial svc]Multiple frame context feature
We can use one frame context for each layer so that we don't have
to reset the probs every frame. But we can't use prev_mi since we
may drop enhancement layers. So we have to generate a non vp9
compatible bitstream and modify it in the player.
1. We need to code all frames as invisible frame to let prev_mi
   not to be used. But in the bitstream we need to code the
   show_frame flag to 1 so that the publisher will know it's
   supposed to be a visible frame.
2. In the player we need to change the show_frame flag to 0 for
   all frames. Then add an one byte frame into the super frame
   to tell the decoder which layer we want to show.
Change-Id: I75b7304cf31f0ab952f043e33c034495e88f01f3
2014-08-25 10:02:45 -07:00
James Zern
79bb2cddd3 invalid_file_test: correct HandlePeekResult signature
restore const lost in:
f0f9ab6 invalid_file_test.cc: remove unused param warnings

Change-Id: I0c5318f84c81e3dd7bb44468463faf9edd6bc18a
2014-08-22 23:06:13 -07:00
James Zern
b070d7021d active_map_test: use vpx_active_map_t() to initialize vars
0-initializes [1] and removes a warning for missing initializer fields

[1] http://en.cppreference.com/w/cpp/language/value_initialization

Change-Id: I886fa72c74679b52cdce2af3364172395a5b6a51
2014-08-22 17:10:18 -07:00
James Zern
aaea40d847 Merge "tests: use vpx_codec_dec_cfg_t() to initialize vars" 2014-08-22 17:05:03 -07:00
Tom Finegan
4aab423255 vpxenc.sh: Add real time tests.
Add --rt tests for VP8 and VP9.

Change-Id: I401d2962bf27e8a775ee5d71784d63ba4c014dfd
2014-08-22 16:40:46 -07:00
James Zern
dbe691709e resize_test.cc: remove unused param warnings
Change-Id: I86b21186e49f9e0ec0d8eb3addaa44b9fd196a6b
2014-08-22 12:47:52 -07:00
James Zern
f0f9ab68ae invalid_file_test.cc: remove unused param warnings
Change-Id: Ifde2849f45acb59fbcf29c8735ef0a10d4d9041e
2014-08-22 12:47:49 -07:00
James Zern
722eecfa35 fdct8x8_test.cc: remove unused param warnings
Change-Id: Ic53cdb8c9f8312e7404505fcec653d5b9e9587d1
2014-08-22 12:47:45 -07:00
James Zern
771dd6ef5e fdct4x4_test.cc: remove unused param warnings
Change-Id: Id3db2ae8e88f9ac64a00f7d989c1ec3ff0c8ef84
2014-08-22 12:47:42 -07:00
James Zern
eb2f0009e4 tests/reference_32x32_dct_1d: remove unused stride param
Change-Id: Iba3c63cda2d825e72879b567589615aded522fbb
2014-08-22 12:29:37 -07:00
James Zern
632e41976e dct16x16_test.cc: remove unused param warnings
Change-Id: I744342b12ae7e5423b06b87ceec2d2ab4a3a3cbb
2014-08-22 12:25:23 -07:00
James Zern
cd2ac828cc datarate_test.cc: remove unused param warnings
Change-Id: I627dc800f1925cc5a5d68630009cf8a454f07567
2014-08-22 12:24:18 -07:00
James Zern
5c3d4f6ab8 frame_size_tests.cc: remove unused param warnings
Change-Id: Ie1c8830ca3b73f19764d79f122ee990f3f297d63
2014-08-22 12:22:50 -07:00