Граф коммитов

752 Коммитов

Автор SHA1 Сообщение Дата
James Zern c00e9c4709 Merge changes Ie241772d,I3c72e226
* changes:
  tests: add API_REGISTER_STATE_CHECK
  call vp[89]_clear_system_state after longjmp
2014-07-10 21:11:40 -07:00
Tom Finegan f3544f079b Merge "sh tests: Add support for running tested programs within another program." 2014-07-10 16:16:06 -07:00
Tom Finegan 926a6f63cb sh tests: Add support for running tested programs within another program.
Specifying the --prefix command line arg executes all test programs within the
context of the prefix string, which is assigned to VPX_TEST_PREFIX.
All test functions updated to include VPX_TEST_PREFIX in their eval command.

Change-Id: I2e215cc8f216048edf3269db02a6b5660fe32318
2014-07-10 15:32:01 -07:00
Tom Finegan 4eae56d660 Add warning to temporal SVC test when temporal denoising is disabled.
Change-Id: Ib3792aa93514ccaf06c5d3f737f6e9243096f61c
2014-07-10 14:52:31 -07:00
James Zern 29e1b1a4b0 tests: add API_REGISTER_STATE_CHECK
used to wrap API functions to ensure full environment consistency as
opposed to the renamed ASM_REGISTER_STATE_CHECK which is used with
assembly functions.
currently checks the FPU tag word in x86/x86_64 gcc builds to ensure
emms has been called.

Change-Id: Ie241772dbf903d33d516a1add4c8c6783f2e1490
2014-07-10 12:40:31 -07:00
James Zern 8701ed0270 update vp9_thread.c
pull the latest from libwebp.

Original source:
 http://git.chromium.org/webm/libwebp.git
 100644 blob 264210ba2807e4da47eb5d18c04cf869d89b9784 src/utils/thread.c

commit 46fd44c1042c9903b2f1ab87e9f200a13c7e702d
Author: James Zern <jzern@google.com>
Date:   Tue Jul 8 19:53:28 2014 -0700

    thread: remove harmless race on status_ in End()

    if a thread was still doing work when End() was called there'd be a race
    on worker->status_. in these cases, however, the specific value is
    meaningless as it would be >= OK and the thread would have been shut
    down properly, but we'll check 'impl_' instead to avoid any potential
    TSan/DRD reports.

    Change-Id: Ib93cbc226a099f07761f7bad765549dffb8054b1

Change-Id: Ib0ef25737b3c6d017fa74822e21ed58508230b91
2014-07-10 12:20:54 -07:00
hkuang b84ee5a3d0 Merge "Move vp9_thread.* to common." 2014-07-09 10:16:13 -07:00
Adrian Grange 75e5abe83d Merge "Fix decoder handling of intra-only frames" 2014-07-09 07:37:28 -07:00
James Zern 8abbd37d21 Merge changes I2abd6716,I4a65f7f8
* changes:
  cpu_speed_test: cosmetics
  aq_segment_test: cosmetics
2014-07-08 19:01:39 -07:00
James Zern bdfb9e5804 Merge "invalid_file_test: output error detail on mismatch" 2014-07-08 19:00:53 -07:00
Adrian Grange 7c43fb67ae Fix decoder handling of intra-only frames
This patch fixes bug 633:
https://code.google.com/p/webm/issues/detail?id=633

The first decoded frame does not have to be a keyframe,
it could be an inter-frame that is coded intra-only.

This patch fixes the handling of intra-only frames.

A test vector has also been added that encodes 3
intra-only frames at the start of the clip. The
test vector was generated using the code in the
following patch:
https://gerrit.chromium.org/gerrit/#/c/70680/

Change-Id: Ib40b1dbf91aae2bc047e23c626eaef09d1860147
2014-07-08 16:24:03 -07:00
hkuang 337e8015c9 Move vp9_thread.* to common.
Prepare for frame parallel decoding, the reference count buffers
need to be protected by mutex. Move vp9_thread.* to common
folder so that those buffers could use cross-platform mutex
from vp9_thread.*.

Change-Id: I541277cf15eefed6641555944f67f4a0bcdc8154
2014-07-07 14:52:19 -07:00
Deb Mukherjee 5820c5d614 Adds support for reading and writing 10/12-bit y4m
The y4m extension used is the same as the one used in ffmpeg/x264.
The patch is adapted from the highbitdepth branch.

Also adds unit tests for y4m header parsing and md5 check
of the raw frame data, as well as y4m writing.

[build fix for Mac/VS by not using tuples with strings]

Change-Id: I40897ee37d289e4b6cea6fedc67047d692b8cb46
2014-07-05 16:00:54 -07:00
Dmitry Kovalev 79199e465a Reverting "Adds support for reading and writing 10/12-bit y4m" for now because of Mac Build Failure.
This reverts commit 82dc1332af

Change-Id: I824bf42bf47c7df6985c79e451d6af913030d374
2014-07-02 22:23:38 -07:00
Deb Mukherjee 82dc1332af Adds support for reading and writing 10/12-bit y4m
The y4m extension used is the same as the one used in ffmpeg/x264.
The patch is adapted from the highbitdepth branch.

Also adds unit tests for y4m header parsing and md5 check
of the raw frame data, as well as y4m writing.

Change-Id: Ie2794daf6dbafd2f128464f9b9da520fc54c0dd6
2014-07-02 05:41:14 -07:00
James Zern 8aafd34050 Merge changes I875ac5a7,I2b13369d,I9ceb47a9
* changes:
  update vp9_thread.[hc]
  vp9_thread_test: remove unnecessary c_str()'s
  vp9_thread_test: factorize decode loop
2014-07-01 20:46:53 -07:00
James Zern ec942e6e82 invalid_file_test: output error detail on mismatch
Change-Id: I6abf139961fbb6a46db740dc023e26ac1e8e9305
2014-07-01 20:18:00 -07:00
James Zern 99df92d126 cpu_speed_test: cosmetics
- add a virtual destructor
- fix formatting
- remove some unnecessary includes
- remove unused functions/defines/typedefs

Change-Id: I2abd671670cc89fa80edb466ff4bc1fee35b5e31
2014-07-01 18:23:53 -07:00
James Zern 6de8dae0a7 aq_segment_test: cosmetics
- add a virtual destructor
- fix formatting
- remove some unnecessary includes
- remove unused functions/defines/typedefs

Change-Id: I4a65f7f85b2ff53645e4b0e97ca438c1e93dabc8
2014-07-01 18:22:30 -07:00
Jim Bankoski bd756699b9 Merge "Add a test that tests invalid partitions for profile 1" 2014-07-01 16:48:56 -07:00
Jim Bankoski ee3802150c Add a test that tests invalid partitions for profile 1
Change-Id: I3d95fbe9a8098256582b5386881d5b7bbdb317ed
2014-07-01 15:37:26 -07:00
James Zern 2f16e79e62 Merge "vp9_thread_test: add 'Thread' to test names" 2014-07-01 15:25:45 -07:00
Alex Converse 79ceb79b35 Add a new yuv444 testvector.
This refelects the profile 1 bitstream change in 6c54dbc.

Change-Id: I39625d88f236a79b7f2955d79c5a451e3753da16
2014-07-01 11:03:17 -07:00
James Zern e656f44c24 update vp9_thread.[hc]
pull the latest from WebP, which adds a worker interface abstraction
allowing an application to override init/reset/sync/launch/execute/end

this has the side effect of removing a harmless, but annoying, TSan
warning.

Original source:
 http://git.chromium.org/webm/libwebp.git
  100644 blob 08ad4e1fecba302bf1247645e84a7d2779956bc3 src/utils/thread.c
  100644 blob 7bd451b124ae3b81596abfbcc823e3cb129d3a38 src/utils/thread.h

Local modifications:
 - s/WebP/VP9/g
 - camelcase functions -> lower with _'s
 - associate '*' with the variable, not the type

Change-Id: I875ac5a74ed873cbcb19a3a100b5e0ca6fcd9aed
2014-07-01 00:39:10 -07:00
James Zern 8c6263e8dc vp9_thread_test: remove unnecessary c_str()'s
EXPECT_EQ() works with strings

Change-Id: I2b13369d2aa7ff305ee516e6cb73bd099f8dead9
2014-07-01 00:31:23 -07:00
James Zern 0b27ed434c vp9_thread_test: factorize decode loop
+ add a SCOPED_TRACE with the current filename

Change-Id: I9ceb47a9154bc0d9f9878a83b707e8ed935790f9
2014-06-30 23:58:42 -07:00
James Zern 415b84bee0 vp9_thread_test: add 'Thread' to test names
s/VP9DecodeMTTest/VP9DecodeMultiThreadedTest/

this enables simpler test filtering

Change-Id: I010a451cf32fa5a95db6734cc22f331f0a0d515a
2014-06-30 23:38:21 -07:00
Alex Converse 6c54dbcb69 Merge "BITSTREAM: Handle transform size and motion vectors more logically for non-420." 2014-06-30 17:44:01 -07:00
Yunqing Wang 9d41313e4b Decide the partitioning threshold from the variance histogram
Before encoding a frame, calculate and store each 16x16 block's
variance of source difference between last and current frame.
Find partitioning threshold T for the frame from its variance
histogram, and then use T to make partition decisions.

Comparing with fixed 16x16 partitioning, rtc set test showed an
overall psnr gain of 3.242%, and ssim gain of 3.751%. The best
psnr gain is 8.653%.

The overall encoding speed didn't change much. It got faster for
some clips(for example, 12% speedup for vidyo1), and a little
slower for others.

Also, a minor modification was made in datarate unit test.

Change-Id: Ie290743aa3814e83607b93831b667a2a49d0932c
2014-06-30 09:36:23 -07:00
Alex Converse 4bf24488ce Add a test using VP9E_SET_LOSSLESS
Change-Id: Ia9ac079d65fbd0a134e8d69c1f4ce171fe94bf64
2014-06-27 21:01:17 -07:00
James Zern 715b8d3bef Merge "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:""" 2014-06-27 20:53:57 -07:00
James Zern 749e0c7b28 Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:""
This reverts commit b336356198.

This causes a hang in:
VP9/InvalidFileTest.ReturnCode/3

the change to test/user_priv_test.cc remains with a minor update

Change-Id: I4a8a272ca37ea329b0f413f0b1cd827a238bd9fd
2014-06-27 19:46:27 -07:00
Alex Converse ae77d0fe85 Merge "Add a CPU speed test with screen content." 2014-06-27 16:32:52 -07:00
Minghai Shang 83269ff8ff Merge "[spatial svc] Remove encoding modes since we only need one mode at this time." 2014-06-27 11:48:22 -07:00
Minghai Shang 5ca7c65e0d Merge "[spatial svc]Remove key frame quantizer settings since key frame is decided by rate control" 2014-06-27 11:48:16 -07:00
Alex Converse 63de0f1628 Merge "Verify that the ouput of q0 is lossless in cpu speed test." 2014-06-27 11:09:14 -07:00
Jim Bankoski 52b63c238e Merge "Better validation of invalid files" 2014-06-27 11:05:21 -07:00
Alex Converse 5d0881237e Add a CPU speed test with screen content.
Encoding screen content exercises various fast skip paths that are
missed by natural video content.

Change-Id: Ie359884ef9be89cbe5dda6d82f1f79360604a090
2014-06-27 10:26:17 -07:00
Alex Converse a869e62a8f Verify that the ouput of q0 is lossless in cpu speed test.
Change-Id: Ib94ee638eb486f1368f2e3098d25c1d3d28fc265
2014-06-27 10:20:17 -07:00
Jim Bankoski 9f37d149c1 Better validation of invalid files
This patch checks that a decoder never tries to reference frame that's
outside the range of 2x to 1/16th the size of this frame.  Any attempt
to do so causes a failure.

Change-Id: I5c98fa7bb95ac4f29146f29dd92b62fe96164e4c
2014-06-27 10:03:15 -07:00
Alex Converse 340e7433b7 Add realtime coverage to cpu speed test
Change-Id: I33e8d1788ce29ffc695f7e9b84167ef446b1b56c
2014-06-26 16:24:01 -07:00
James Zern ce7199075e Merge changes I915beaef,I229dd6ca
* changes:
  vp9cx.mk: move avx c files outside of x86inc block
  test.mk: remove renamed file
2014-06-25 14:26:18 -07:00
hkuang 36eeb1799d Merge "Revert "Revert 3 patches from Hangyu to get Chrome to build:"" 2014-06-25 11:42:08 -07:00
hkuang b336356198 Revert "Revert 3 patches from Hangyu to get Chrome to build:"
This patch reverts the previous revert from Jim and also add a
variable user_priv in the FrameWorker to save the user_priv
passed from the application. In the decoder_get_frame function,
the user_priv will be binded with the img. This change is needed
or it will fail the unit test added here:
https://gerrit.chromium.org/gerrit/#/c/70610/

This reverts commit 9be46e4565.

Change-Id: I376d9a12ee196faffdf3c792b59e6137c56132c1
2014-06-25 11:21:37 -07:00
James Zern 3abfee9add test.mk: remove renamed file
vp90-2-15-fuzz-flicker.webm was renamed in:
c3db2d8 error check vp9 superframe parsing

Change-Id: I229dd6ca4c662802c457beea0f7b4128153a65dc
2014-06-25 11:04:14 -07:00
James Zern d9c37b08f8 Merge "decode_test_driver: check HasFailure() in RunLoop" 2014-06-25 10:44:36 -07:00
James Zern f8b0f52850 Merge "decode_test_driver: fix type size warning" 2014-06-25 10:43:49 -07:00
Minghai Shang df38196453 [spatial svc] Remove encoding modes since we only need one mode at this time.
Change-Id: I1b6ed2e82a7e3e8a9e790bf29d667a3f856a9518
2014-06-25 10:42:04 -07:00
Minghai Shang 41b451eb1f [spatial svc]Remove key frame quantizer settings since key frame is decided by rate control
Change-Id: I7eda0f5e678034f0e9c2ab481c517d2e9b280eb5
2014-06-25 10:36:24 -07:00
Minghai Shang 0a103ae999 Merge "[spatial svc]Implement lag in frames for spatial svc" 2014-06-25 10:31:05 -07:00
James Zern aff720f8c5 decode_test_driver: fix type size warning
like vpx_codec_decode(), vpx_codec_peek_stream_info() takes an unsigned
int, not size_t, parameter for buffer size

Change-Id: I4ce0e1fbbde461c2e1b8fcbaac3cd203ed707460
2014-06-24 22:44:24 -07:00
James Zern b2b07755e0 vp9: check tile column count
the max is 6. there are assumptions throughout the decode regarding
this; fixes a crash with a fuzzed bitstream

$ zzuf -s 5861 -r 0.01:0.05 -b 6- \
  < vp90-2-00-quantizer-00.webm.ivf \
  | dd of=invalid-vp90-2-00-quantizer-00.webm.ivf.s5861_r01-05_b6-.ivf \
    bs=1 count=81883

Change-Id: I6af41bb34252e88bc156a4c27c80d505d45f5642
2014-06-24 19:26:11 -07:00
Minghai Shang 277338f748 [spatial svc]Implement lag in frames for spatial svc
Change-Id: I930dced169c9d53f8044d2754a04332138347409
2014-06-24 14:01:17 -07:00
hkuang 5e7242dfda Add unit test to test user_priv parameter.
Change-Id: I6ba6171e43e0a43331ee0a7b698590b143979c44
2014-06-24 11:20:43 -07:00
Jim Bankoski 97d0cb58f8 Merge "Add Check for Peek Stream validity to decoder test." 2014-06-23 11:21:07 -07:00
Jim Bankoski 96727b9562 Add Check for Peek Stream validity to decoder test.
Change-Id: I9b745670a9f842582c47e6001dc77480b31fb6a1
2014-06-23 08:37:18 -07:00
Jim Bankoski c3db2d8bc8 error check vp9 superframe parsing
This patch insures that the last byte of a chunk that contains a
valid superframe marker byte,  actually has a proper superframe index.
If not it returns an error.

As part of doing that the file : vp90-2-15-fuzz-flicker.webm now fails
to decode properly and moves to the invalid file test from the test
vector suite.

Change-Id: I5f1da7eb37282ec0c6394df5c73251a2df9c1744
2014-06-23 07:04:57 -07:00
James Zern 8f5b81fa8d decode_test_driver: check HasFailure() in RunLoop
avoids unnecessary errors due to e.g., read (Next()) failures

Change-Id: I70b1d09766456f1c55367d98299b5abd7afff842
2014-06-21 19:04:12 -07:00
Jim Bankoski 3431f575ed Merge "Fix bug in error handling that causes segfault" 2014-06-20 16:46:31 -07:00
Jim Bankoski 55eaf585cc Added Test vector that tests more show existing frames.
Change-Id: I0ddd7dd55313ee62d231ed4b9040e08c3761b3fe
2014-06-20 14:45:18 -07:00
Jim Bankoski 88ba08818e Fix bug in error handling that causes segfault
See: https://code.google.com/p/chromium/issues/detail?id=362697

The code properly catches an invalid stream but seg faults instead of
returning an error due to a buffer not having been initialized. This
code fixes that.

Change-Id: I695595e742cb08807e1dfb2f00bc097b3eae3a9b
2014-06-20 14:44:50 -07:00
Jim Bankoski dc2f2ce594 Validate error checking code in decoder.
This patch adds a mechanism for insuring error checking on invalid files
by creating a unit test that runs the decoder and tests that the error
code matches what's expected on each frame in the decoder.

Disabled for now as this unit test will segfault with existing code.

Change-Id: I896f9686d9ebcbf027426933adfbea7b8c5d956e
2014-06-20 13:52:06 -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
Tom Finegan 54547f6827 Merge "example tests: Make failures due to incorrect bin path easier to diagnose." 2014-06-16 16:16:49 -07:00
Tom Finegan 12672c24d3 example tests: Make failures due to incorrect bin path easier to diagnose.
Add elog() to tools_common, and checks for the executable in each test.

Change-Id: I3c6334eca62c0b56040d91145abbe1bf5f9c763c
2014-06-16 10:57:00 -07:00
Jingning Han d203203cc5 Merge "Fix out of boundary memory read in fuzz test on vpxdec" 2014-06-16 10:27:30 -07:00
Tom Finegan 1557d4b0a2 test/tools_common.sh: Log all shared variables in verbose mode.
Several variables were not being logged.

Change-Id: I2f2ded19470a73c4551bbb1abbd6e4d27bd59fac
2014-06-13 11:18:43 -07:00
Jingning Han 1ba1871786 Fix out of boundary memory read in fuzz test on vpxdec
This commit fixes frame header decoding for superframe index, to
prevent out of boundary memory read triggered by fuzz test
vector. It resolves a chromium security violation issue
crbug.com/376802.

The issue was introduced in the change:

Add VPXD_SET_DECRYPTOR support to the VP9 decoder.
cl-id I88f86c8ff9af34e0b6531028b691921b54c2fc48

where the buffer was read before validation check on index offset
applied.

A test vector is added accordingly.

Change-Id: I41c988e776bbdd1033312a668e03a3dbcf44ca99
2014-06-13 11:10:36 -07:00
Minghai Shang 686b54adcb Merge "[spatial svc]Combine first and second pass test to keep stats data in memory." 2014-06-11 18:12:38 -07:00
Minghai Shang 6b74776635 [spatial svc]Combine first and second pass test to keep stats data in memory.
Change-Id: Idccbfe35bebe6f05655bd54da7d8b616b1bffe03
2014-06-11 10:44:58 -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
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
James Zern 0d6267ca39 fdct8x8_test: add missing avx2 functions
exercises the forward transforms
no idct/iht implementations, so the c-code is used

Change-Id: I76b4d1712f10225c1ffa5ffb0ed9a551e68b93b4
2014-06-09 18:42:03 -07:00
James Zern b8395a87c2 dct4x4_test: add missing avx2 functions
exercises the forward transforms
no idct/iht implementations, so the c-code is used

Change-Id: I88c11ac37ac6456de9b4b3ec5da059faf4ad6066
2014-06-09 18:42:03 -07:00
Jingning Han 7eaad70bf7 Enable unit test for partial 16x16 inverse 2D-DCT
This commit enables unit test for SSSE3 16x16 inverse 2D-DCT with
10 non-zero coefficients. It includes a new test condition to
cover the potential overflow issue due to extremely coarse quantization.

Change-Id: I945e16f05dfbe19500f0da5f15990feba8e26d99
2014-06-03 19:06:39 -07:00
Jingning Han 74d47a8132 Merge "Re-enable unit test for SSSE3 forward 8x8 2D-DCT" 2014-06-03 18:56:23 -07:00
Jingning Han 0c4a4225ec Merge "Enable SSSE3 inverse 2D-DCT with 10 non-zero coeffs" 2014-06-03 16:51:39 -07:00
Jingning Han 0343e30cf2 Re-enable unit test for SSSE3 forward 8x8 2D-DCT
This commit enables the unit test for SSSE3 forward 8x8 2D-DCT.

Change-Id: Ie4aae84ac74f6eb1a80b62285c91632bd6db29f1
2014-06-03 16:46:22 -07:00
Jingning Han bf168d54ab Merge "Rework unit test for 8x8 transformation" 2014-06-03 16:43:26 -07:00
Jingning Han 5c2696c378 Rework unit test for 8x8 transformation
This commit reworks the unit test for 8x8 forward/inverse
transformation. It adds extreme input value test to detect overflow
issues in the intermediate steps.

It temporarily disables unit test for the SSSE3 version, which
showed overflow failure in the new test conditions.

Change-Id: I7caf10bba4b6db031add65d8c0eb99426b38aa42
2014-06-03 14:20:47 -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
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
Jingning Han 49b4a274a0 Add overflow check unit test for 16x16 inverse DCT/ADST transform
This commit applies quantization process with coarse quantization
step size to the forward transform coefficients and tests all the
inverse 16x16 DCT and ADST implementation versions with the
dequantized coefficients as input, to verify that the outcomes
match the prototype.

Change-Id: I68034a6126b45192c87d8c642155290e89bff8fa
2014-05-30 11:59:00 -07:00
Jingning Han 6d21cbd20b Enable SSSE3 inverse 2D-DCT with 10 non-zero coeffs
This commit enables SSSE3 implementation of the inverse 2D-DCT
with only first 10 coefficients non-zero. It reduces the runtime
of SSE2 version from 745 cycles to 538 cycles, i.e., 27% speed-up.

Change-Id: I18ba4128859b09c704a6ee361d69a86c09fe8dfe
2014-05-28 10:53:33 -07:00
Erik Niemeyer c92d776c32 Merge "Turn on unit tests for AVX2 convolve functions" 2014-05-27 14:00:39 -07:00
Deb Mukherjee 444f93945b Merge "Remove Wextra warnings from vp9_sad.c" 2014-05-27 11:54:05 -07:00
Yunqing Wang 4f0943b996 Turn on unit tests for AVX2 convolve functions
This patch turned on unit tests for AVX2 convolve functions.

Change-Id: I51b8bfdaa290fb22862c68af61abf2394d00d47c
2014-05-27 10:36:56 -07:00
Jingning Han 26a76dc3f8 Merge changes I4f0f4378,I02250d13
* changes:
  Re-enable unit test on neon implementation of 16x16 idct
  Turn on unit test for inverse 16x16 2D-DCT ssse3
2014-05-23 16:02:09 -07:00
Jingning Han 74a854fcab Re-enable unit test on neon implementation of 16x16 idct
The previous change only tunes forward transform. It doesn't affect
the neon implementation of the inverse transform. Hence turn the
unit test on.

Change-Id: I4f0f43783b98814d1eee53182209f9669d538140
2014-05-23 15:11:16 -07:00
Jingning Han e4a758bbd4 Turn on unit test for inverse 16x16 2D-DCT ssse3
Change-Id: I02250d1364ca2e637585a8db020cba9fd4a95664
2014-05-23 15:11:05 -07:00
Yaowu Xu 077144d206 Use extreme values for input in convovle tests
The intepolation filter functions can be better tested withe extreme
values, especially given the optimization functions are prone to
overflow signed 16 bit intermediate value when operation order is
wrong.

Change-Id: I712142b0bc1e5969c692c0486a57ffa37c9742b5
2014-05-23 13:32:54 -07: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
James Zern 8188096640 tools_common: fix test_name quoting
quoting within $() doesn't need to be escaped; removes trailing " in
test_name

Change-Id: I97ffad9fdfd97b3cdf4dec2a8547804875d85e66
2014-05-21 19:54:48 -07:00
Jingning Han d8b26caa71 Merge "Adjust the forward 16x16 DCT computation steps" 2014-05-21 09:16:04 -07:00
Tom Finegan ca5d96315e Merge "Add make target for running example tests." 2014-05-20 15:48:04 -07:00
Tom Finegan 2823b295df Merge "tools_common.sh: Allow over ride of test name." 2014-05-20 15:47:51 -07:00
James Zern 80acef01d4 Merge "make spatial svc an experiment" 2014-05-20 15:24:20 -07:00
James Zern 3946cdfdd4 Merge "Add test for vpx_temporal_svc_encoder example." 2014-05-19 18:06:04 -07:00
Tom Finegan 0d9d3793d9 Merge "Add test for vp9_spatial_svc_encoder example." 2014-05-19 17:44:17 -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
Dmitry Kovalev c23c613fdf Merge "Hiding vp9_sub_pel_filters_{8, 8s, 8lp} filters in *.c file." 2014-05-19 10:27:16 -07:00
Tom Finegan 20ae20c6b9 Add test for vp9_spatial_svc_encoder example.
Change-Id: I6f392ee38842120c0ff32b6c8853333af032ccb9
2014-05-17 14:14:51 -07:00
Tom Finegan 3d38cf9c12 tools_common.sh: Allow over ride of test name.
Use VPX_TEST_NAME instead of the script name sans path and extension
when reporting test results when the variable is not empty.

Also: Clean up some style nits while I'm at it.

Change-Id: I0319745a3b7a90d0f307e55c5108fea2204187cd
2014-05-17 13:49:23 -07:00
Tom Finegan e331203528 Add test for vpx_temporal_svc_encoder example.
Change-Id: Icbb0ca1c899f7a58d6f73970e6434451738195b7
2014-05-16 11:09:13 -07:00
Tom Finegan bc27d7e967 Add make target for running example tests.
Change-Id: I0d0dfda96b99cefb5ef5c16df4a024de5bf8007e
2014-05-15 21:35:01 -07:00
Jim Bankoski ec82d2dfec Merge "Revert "Remove Wextra warnings from vp9_sad.c"" 2014-05-15 11:54:23 -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
James Zern f12ebfc939 make spatial svc an experiment
disabled by default, enable with:
--enable-experimental --enable-spatial-svc

this disables vp9_spatial_svc_encoder and svc_test, further work is
needed to remove internal lib references

Change-Id: I6a487ecbf07eb98843a99d96e17f08f960b63088
2014-05-14 19:47:23 -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
Deb Mukherjee 9687c057f8 Merge "Remove Wextra warnings from vp9_sad.c" 2014-05-14 10:01:50 -07:00
Tom Finegan 7f8684437f Merge "Add test for the twopass_encoder example." 2014-05-14 08:57:29 -07:00
Tom Finegan 576609382b Merge "Add test for the resize_util example." 2014-05-14 08:57:21 -07: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
Tom Finegan eaa4dff97c Add test for the resize_util example.
Change-Id: I97c052a35a1d54455b91c269fd6a9a094fa3db7f
2014-05-13 17:43:08 -07:00
Tom Finegan f04e9c4b71 Add test for the twopass_encoder example.
Change-Id: I7b577f2a492e981156f969f8f9e61f9d2156fe60
2014-05-13 11:53:42 -07:00
Johann ce23931a3f Only build neon assembly for armv7 targets
Allow selectively building just the intrinsics for armv8

Change-Id: I2f29b2e4508b8b8e5649c2906b3159ad1d4ec477
2014-05-12 08:52:02 -07:00
Yaowu Xu fea5eab718 Add another test vector
The test vector has segment enabled with different quantizer used for
different segments for bot the first frame(key) frame and the rest of
non-key frames.

Change-Id: I7e21122183050ee046219caba483c18cbc34afe7
2014-05-09 16:24:40 -07:00
Yaowu Xu 242c36b646 Merge "Added a test vector" 2014-05-09 15:56:45 -07:00
Alex Converse ec8a3272fa Merge "Add an x86inc MMX fwht4x4." 2014-05-09 13:48:49 -07:00
Jingning Han 9412785b02 Merge changes I3edd4b95,I4514f974,Ie7fa4386
* changes:
  Turn on unit tests for SSSE3 8x8 forward and inverse 2D-DCT
  Change eob threshold for partial inverse 8x8 2D-DCT to 12
  SSSE3 8x8 inverse 2D-DCT with first 10 coeffs non-zero
2014-05-09 09:58:39 -07:00
James Zern 8d799940bc Merge "Revert "Removing redundant variables from variance_test.cc."" 2014-05-08 16:28:55 -07:00
Tom Finegan 94d0692740 Merge "Add test for the vp8cx_set_ref example." 2014-05-08 15:54:36 -07:00
Tom Finegan e6224ddaa3 Merge "tools_common.sh: Fix vlog()" 2014-05-08 15:54:26 -07:00
James Zern 6e5e75fa21 Revert "Removing redundant variables from variance_test.cc."
This reverts commit 4725ab7e51.

The constants are necessary to avoid breakage in vs9 builds:
 warning C4180: qualifier applied to function type has no meaning; ignored
 error C2436: 'f2_' : member function or nested class in constructor initializer list
 while compiling class template member function 'std::tr1::tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::tuple(const int &,const int &,unsigned int (__cdecl &))'
 ..\test\variance_test.cc : see reference to class template instantiation 'std::tr1::tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>' being compiled

Change-Id: Ia218b74fc473d40f02fee84cb7009adfbe82e5a7
2014-05-08 14:35:40 -07:00
Tom Finegan 23d010a5b1 Add test for the vp8cx_set_ref example.
Change-Id: I68850699ecaebbbb7962cbc1c9bc85e92a0ea5ca
2014-05-08 12:36:12 -07:00
Tom Finegan 7279d44a4e tools_common.sh: Fix vlog()
Abusing '[] && echo' resulted in the --verbose flag being required to
actually run tests.

Change-Id: I39edaa30a05272928f9f4a4bb8581f91d6fe824b
2014-05-08 12:06:08 -07:00
Alex Converse b5422fab46 Add an x86inc MMX fwht4x4.
Change-Id: Ib0a73d4863478f9b8a00976379d25d2f6ebbb197
2014-05-08 12:01:27 -07:00
Jingning Han b466ad5efc Turn on unit tests for SSSE3 8x8 forward and inverse 2D-DCT
Change-Id: I3edd4b956a1273d65547771bf43c5cdaea25e5d6
2014-05-08 10:53:27 -07:00
Jingning Han 41a350a83d Change eob threshold for partial inverse 8x8 2D-DCT to 12
The scanning order has the first 12 coefficients of the 8x8 2D-DCT
sitting in the top left 4x4 block. Hence the partial inverse 8x8
2D-DCT allows to handle cases with eob below 12.

The overall runtime of the inverse 8x8 2D-DCT unit is reduced from
166 cycles (using SSE2) to 150 cycles (using SSSE3).

Change-Id: I4514f9748042809ac84df4c14382c00f313f1cd2
2014-05-08 09:48:58 -07:00
Dmitry Kovalev 0d27c747e9 Merge "Removing redundant variables from variance_test.cc." 2014-05-07 19:00:18 -07:00
Yaowu Xu 4921c4fcdb Merge "Relax rc test threshold" 2014-05-07 16:52:01 -07:00
Dmitry Kovalev 4725ab7e51 Removing redundant variables from variance_test.cc.
Change-Id: Icd44bce1c9d292f6e6f4d5157b694f6170b7b289
2014-05-07 14:40:21 -07:00
Yaowu Xu c4180f8f9c Relax rc test threshold
For multilayer coding

Change-Id: I830a0176c020658b836e3f5d2ce6bc5932736c0c
2014-05-07 13:55:08 -07:00
Yaowu Xu f641d6bc7a Added a test vector
The test vector is produced to have a single key frame, with segment
map enabled and transmitted. Yet no segment feature is active.

Change-Id: I365d62f00d05c07098b9a76fc8d3a991e427ec1a
2014-05-07 12:08:57 -07:00
Alex Converse 1354d0bb39 Merge "Revert "Add an MMX fwht4x4"" 2014-05-07 10:09:04 -07:00
Johann 09cbb6c1f7 Merge "Android NDK support for x86 and mips" 2014-05-07 08:54:13 -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
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
Alex Converse 9f9f87c7f6 Add test for 4x4 WHT.
Change-Id: I97ba3152f9b44d23a74c6144809142810d07e368
2014-05-05 15:10:44 -07:00
Tom Finegan f386d3960d Add test for postproc example.
Change-Id: I3446d2ebc23e6f1ed650dd5c82648041febe3c4d
2014-05-05 11:20:26 -07:00
Johann 1b91fa8ac8 Merge "vp9 register checks only apply to vp9" 2014-05-03 19:03:39 -07:00
Vignesh Venkatasubramanian 56186c2540 Merge "third_party/libwebm: Add Android.mk" 2014-05-02 11:39:29 -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
Johann 07967b36b7 vp9 register checks only apply to vp9
Disable register checks when vp9 is not configured. Soon vp8 assembly
will move to intrinsics, obviating this check.

This will still run the check when vp9 is enabled.

Change-Id: I90f50d22cb8c15e9c07f2c8e830e08de7fce0689
2014-05-02 08:11:54 -07:00
Johann 7d54e0f093 Android NDK support for x86 and mips
This does not do the full toolchain setup like the arm builds. It only
allows for ndk-builds. See the instructions in tests/android/README or
the webm jnin bindings project:
https://chromium.googlesource.com/webm/bindings/+/master/JNI/README.Android

Because this support is not quite polished, the build targets must be
forced. Please use
--force-target=x86-android-gcc --disable-ssse3 --disable-sse4_1 --disable-avx2
--force-target-mips-android-gcc

Change-Id: Ie2b6623f71ac816e3965c39bf97097e9d30b6e94
2014-05-02 07:26:46 -07:00
Tom Finegan 1d29ce53fe Add --show-program-output option to shell tests.
When used --show-program-output shows the output from the programs run
during testing.

Change-Id: I15a47c43d1fcf0243c8df1a75d0d2a584ae1f08f
2014-04-30 16:17:25 -07:00
Tom Finegan c5d962d5bb tools_common.sh: Add vlog()
Add a verbose logging function instead of checking
$VPX_TEST_VERBOSE_OUTPUT in multiple places.

Change-Id: I82618809f0964f696ed17ca4d99d8d7d252232f4
2014-04-30 11:16:15 -07:00