Commit Graph

646 Commits

Author SHA1 Message Date
Jim Bankoski
5d185d107b Merge "datarate_test renaming with suffix large because it is slow." 2014-03-13 06:08:29 -07:00
Jim Bankoski
6505b07537 datarate_test renaming with suffix large because it is slow.
Change-Id: I5cdff078159a379bc48f1d8e249e144c6d27c946
2014-03-12 17:20:16 -07:00
Alex Converse
6207a38b7d Add missing virtual destructors to tests.
Change-Id: I916b1e646d9fe142d3483039eb6cc72464529832
2014-03-12 14:51:42 -07:00
Alex Converse
a56546961a Add an active map test.
Change-Id: I641a75dd75cd3c53a20eb4dbceb7a9b70a5a0e4d
2014-03-12 14:34:34 -07:00
James Zern
05a3d8c90f Merge "Disable sixtap_predict_test for neon." 2014-03-10 12:19:38 -07:00
hkuang
4dd053eb57 Disable sixtap_predict_test for neon.
Neon code unit test is failing now due to save/restore neon register
operations are not done inside this function, but outside of it. Disable
it now until VP8 neon code get cleaned up.

Bug: 725

Change-Id: Id1ff1ef50a0e894b41c820a310ff8ba31ef12d18
2014-03-10 10:00:17 -07:00
Marco Paniconi
188074414e Add realtime-mode to datarate tests.
Change-Id: Ib7ef6afbc80a38b134522bff283c01fadbec874b
2014-03-07 10:09:32 -08:00
Yaowu Xu
21ba1c9f95 Merge "cpu_speed_test - now test one pass and more speeds" 2014-03-06 17:48:38 -08:00
Jim Bankoski
9e889d5da5 cpu_speed_test - now test one pass and more speeds
Change-Id: I736f5753ff42782bbb2a401d2c28cd755fa2f8da
2014-03-06 14:52:52 -08:00
Marco Paniconi
41cd4c47b4 Add speeed 5 to datarate test.
Change-Id: I7126e4b36994020cc656d046d10df5d6a6c53e66
2014-03-06 13:51:57 -08:00
hkuang
fdee7623cf Add neon register state check for unit test.
Change-Id: I2c117ddeae3da5119f549b036a5699a8092819d3
2014-03-05 20:49:31 -08:00
Tom Finegan
4aa8ea5917 vp8_decrypt_test.c: Silence MSVC data loss warning.
- Change type of encrypt_buffer() offset argument to ptrdiff_t, and change the
  type of the size argument to size_t.
- Update size argument encrypt_buffer() in vp8_boolcoder_test.c with
  same.

Change-Id: Ie29c7c82c73318bee01b89c6fb4c4e1442eef03c
2014-03-03 18:04:35 -08:00
Yaowu Xu
24c1734f53 fix vp9 only build
Change-Id: I7a1a7190dc32c65846a897a3162a02d63e59719f
2014-02-28 15:26:09 -08:00
James Zern
df008f66cb Merge changes I6e7d6fa5,Ie033bbf2,I08fa0e90,I8612f197
* changes:
  cosmetics: test.mk: sort source lists
  test.mk: fix test availability
  sad_test: (arm) fix vp9-only build
  cosmetics: sad_test: add a few comments
2014-02-27 20:32:31 -08:00
James Zern
acefe86ef8 Merge "y4m_video_source: fix memory leak" 2014-02-27 14:59:30 -08:00
James Zern
bfdd4aad04 cosmetics: test.mk: sort source lists
Change-Id: I6e7d6fa557be2af49722d3726991ae7c40f90f4e
2014-02-27 14:11:46 -08:00
James Zern
2f6fc64473 test.mk: fix test availability
- move vp9-only vp9_subtract_test.cc to vp9 block
- move sad_test.cc to a common location

Change-Id: Ie033bbf2c31e7faaae73f2050d657619bfaa3287
2014-02-27 14:03:55 -08:00
James Zern
5f1486feff sad_test: (arm) fix vp9-only build
Change-Id: I08fa0e90039186cd237001b7e43b1eabe6d326a3
2014-02-27 14:03:21 -08:00
James Zern
d7cff28796 cosmetics: sad_test: add a few comments
- break the platform sections a bit more visibly
- add #endif comments on long blocks

Change-Id: I8612f19755ea37efd6dac2918f51deee4a2c483e
2014-02-27 12:49:02 -08:00
Minghai Shang
20da0653f4 Merge "Change for adding QP settings for key frames" 2014-02-27 10:50:02 -08:00
James Zern
655fa807df Merge changes I03c1ba21,I6d8ac50c,Id0a2d9ef,I3db3acbd,I028bdec9,I26f8724b,I3795d78b,I6bb7ffe8
* changes:
  variance_test: add NEON functions
  subtract_test: add NEON functions
  sixtap_predict_test: add NEON functions
  partial_idct_test: add NEON functions
  fdct8x8_test: add NEON functions
  fdct4x4_test: add NEON functions
  dct32x32_test: add NEON functions
  dct16x16_test: add NEON functions
2014-02-26 23:34:40 -08:00
James Zern
f651bcb296 y4m_video_source: fix memory leak
Begin() will be called twice with 2-pass encodes, invoking
y4m_input_open which allocates memory; close the old instance first.

Change-Id: Id252a21d286ca9ae998bd87599d43aeb8d7d77aa
2014-02-26 23:27:17 -08:00
James Zern
d5e07a8451 variance_test: add NEON functions
note not all functions have NEON implementations:
- variance4x4_neon

Change-Id: I03c1ba21f3b02aa2482d7ca8feedc3ef74b5947f
2014-02-26 19:25:02 -08:00
James Zern
15b57a2bf3 subtract_test: add NEON functions
Change-Id: I6d8ac50ce842749a2a643d8173bbd301cc284236
2014-02-26 19:25:01 -08:00
James Zern
703c79ca17 sixtap_predict_test: add NEON functions
Change-Id: Id0a2d9ef9636c84ee988dabecd5d4dc2b8641944
2014-02-26 19:25:01 -08:00
James Zern
2a66e9f746 partial_idct_test: add NEON functions
note not all functions have NEON implementations:
- vp9_idct32x32_34_add

Change-Id: I3db3acbd5b33839aabd1beadc6e0742ec50b1072
2014-02-26 19:25:01 -08:00
James Zern
c3331105f2 fdct8x8_test: add NEON functions
FwdTrans8x8HT is disabled as the tests currently fail.

note not all functions have NEON implementations:
- fdct8x8/fht8x8

Change-Id: I028bdec9a21eaaee2c5865470ab179aac403540e
2014-02-26 19:25:01 -08:00
James Zern
08c3180732 fdct4x4_test: add NEON functions
Trans4x4HT is disabled as the tests currently fail.

note not all functions have NEON implementations:
- fdct4x4/fht4x4

Change-Id: I26f8724bf2a9ea01d59205a1c57119ed25d043bc
2014-02-26 19:25:00 -08:00
James Zern
a6effda70f dct32x32_test: add NEON functions
note not all functions have NEON implementations:
- vp9_fdct32x32/vp9_fdct32x32_rd

Change-Id: I3795d78bf215e41ab8801c2c37cf633f16931f9d
2014-02-26 19:24:05 -08:00
Minghai Shang
c79bd22a5f Change for adding QP settings for key frames
Change-Id: I4dcabb60cb1185eb9a2efa18b50f17af272d2cd6
2014-02-26 11:19:06 -08:00
Tom Finegan
11bd630f39 Merge "cq_test.cc: Use size_t for file size and unsigned int for target bitrate." 2014-02-26 10:42:44 -08:00
James Zern
adbb881497 dct16x16_test: add NEON functions
note not all functions have NEON implementations:
- fdct/fht/iht

Change-Id: I6bb7ffe89b8cc23b642e19caf22f04f2d5e39087
2014-02-25 23:11:49 -08:00
Marco Paniconi
f61b962c1a Add consective frame loss to error_resilience test.
Modify existing test to also check the case of dropping
(i.e., skip decoding) a consecutive list of frames.

Change-Id: Ia8c1195559f952e86e6697996931d3a920c05ae3
2014-02-25 19:08:30 -08:00
James Zern
8e3ef6c0e1 Merge "move nestegg to third_party" 2014-02-22 11:43:37 -08:00
James Zern
b4262c6cc5 tests: enable datarate_test based on CONFIG_ENCODERS
not just CONFIG_VP8_ENCODER; there's now VP9 code in the same file

Change-Id: I73d8b9141af1374b37480fb0495e17a7952eb4f9
2014-02-21 18:33:09 -08:00
James Zern
bb3b9aa93f move nestegg to third_party
Change-Id: Idf58109195a88dec66c5e1ea6a51c61e6c659ff1
2014-02-21 17:16:04 -08:00
James Zern
a0f0655b5e Merge "update nestegg" 2014-02-21 17:15:16 -08:00
Alex Converse
6e3cf6ec1d Stop gating non420 features with a configure flag.
Change-Id: I8cc38fdef6a2a0968af8dfe15e7c2b3c46c531ea
2014-02-21 12:05:29 -08:00
James Zern
cc6117d0f3 update nestegg
+ prune some unused files

https://github.com/kinetiknz/nestegg.git

commit f46223191d8116a36bf299b5b9793fcb798417b1
Merge: 0851279 4b0190a
Author:     Matthew Gregan <kinetik@flim.org>
AuthorDate: Wed Nov 27 13:50:43 2013 -0800
Commit:     Matthew Gregan <kinetik@flim.org>
CommitDate: Wed Nov 27 13:50:43 2013 -0800

    Merge pull request #15 from shadone/master

    Fix compiler warning.

Change-Id: I59eecdd68fced1ef61b67d446735539628d81484
2014-02-21 11:50:01 -08:00
Adrian Grange
b27207cf63 Merge "Added three test vectors with droppable frames" 2014-02-20 18:29:59 -08:00
Yaowu Xu
70c38b162a Added three test vectors with droppable frames
Change-Id: I70240e50927b4379603628f6349bf615f756b5a1
2014-02-20 17:04:08 -08:00
Adrian Grange
6d6d9b294e Merge "Test vectors for odd image width and height." 2014-02-20 16:40:02 -08:00
Jim Bankoski
12c4458db9 Test vectors for odd image width and height.
Change-Id: I39286df9fc76e3451f14ce2652d671e11b0c37bc
2014-02-20 14:35:40 -08:00
Tom Finegan
b5793bf9b4 cq_test.cc: Use size_t for file size and unsigned int for target bitrate.
Silences warnings and minizes required casts.

Change-Id: I7d6c5b87c56191f3bec7b0747d7dbe8938e8ec82
2014-02-20 12:51:36 -08:00
Tom Finegan
eb2325ee9f video_source.h: Minor clean up.
- Use size_t for frame_size() (fixes warnings elsewhere)
- Remove unnecessary use of const.

Change-Id: Id2cba182ac3fd2f67d25fd1db3a0bc3e1eda040b
2014-02-19 14:17:55 -08:00
Frank Galligan
fb8c246b70 Merge "Add VP9 decoder support for external frame buffers" 2014-02-13 15:29:52 -08:00
Frank Galligan
a4f30a5023 Add VP9 decoder support for external frame buffers
Added support for external frame buffers to libvpx's VP9 decoder.
If the external frame buffer functions are set then libvpx will
call the get function whenever it needs a new frame buffer to
decode a frame into. And it will call the release function
whenever there are no more references to that buffer.

Change-Id: Id2934d005f606af6e052fb6db0d5b7c02f567522
2014-02-13 13:14:19 -08:00
Marco Paniconi
640885ddb3 Datarate test for temporal layers and frame dropper.
Also, removed a TODO and removed speed 1 from the tests.

Change-Id: I4e6b114204b6d42d93fd1902a56eb0c459bad135
2014-02-13 08:57:16 -08:00
Tom Finegan
2a7f98c486 Merge "decode_test_driver: Use size_t for size arg to DecodeFrame()." 2014-02-12 18:16:48 -08:00
Tom Finegan
235b77e54b decode_test_driver: Use size_t for size arg to DecodeFrame().
Use size_t for DecodeFrame()'s size arg, and cast only
at the vpx_codec_decode() call site. This silences warnings that
appear in svc_test.cc when building with vs2013.

Change-Id: I2cf39f02a45732c752097f07b0c7ad414b1517d8
2014-02-12 16:01:52 -08:00
Frank Galligan
1604ad2149 Fix frames that have no references to them.
BasicRateTargeting3TemporalLayers found an error with
the get/release frame buffer management.

Change-Id: Iccff25cba1d2f276f2a0d0fb7b20cf99b4405549
2014-02-11 18:34:21 -08:00
Dmitry Kovalev
531d3acc8f Disabling BasicRateTargeting3TemporalLayers test.
Frank is going to fix it soon, disabling for now.

Change-Id: Ifb7092d7db5af01bde62897af189fd620b7bbdf3
2014-02-11 14:37:13 -08:00
Marco Paniconi
812bacc919 Some updates and fixes for layered CBR mode.
-Properly set the average frame size for each layer.

-Allow each layer to update its average/last Q stats after encoding.

-Initialize for some layer context variables.

Change-Id: Iaa37d144fcf4f30ff4283a4e8db8b9ca8bf4c815
2014-02-10 10:21:20 -08:00
Dmitry Kovalev
005fc6970b Finally removing "short" from transform names.
Change-Id: I5259b68dc1bcceb153e3ffe638a79a59a3019e9d
2014-02-06 11:54:15 -08:00
Marco Paniconi
4864ab21b0 Layer based rate control for CBR mode.
This patch adds a buffer-based rate control for temporal layers,
under CBR mode.

Added vpx_temporal_scalable_patters.c encoder for testing temporal
layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns).

Updated datarate unittest with tests for temporal layer rate-targeting.

Change-Id: I8900a854288b9354d9c697cfeb0243a9fd6790b1
2014-02-06 09:24:45 -08:00
James Zern
bb061388a2 resize_test: use const_iterator where appropriate
Change-Id: I9ebfeb4947e7d7bc8af175730b0b25b2880ee26c
2014-01-31 20:11:55 -08:00
James Zern
17b899322c resize_test: silence a warning
the timebase of pts is 1/fps, so casting down to unsigned is safe here.

Change-Id: I2e2f9bb68604c3c5539804685e6166beb54fe83e
2014-01-31 20:10:28 -08:00
James Zern
4a703576f7 remove duplicate const from vpx_codec_iface_t use
the public typedef already includes a const, quiets
'same type qualifier used more than once' warnings

Change-Id: Ib118b3b116fba59d4c6ead84d85b26e5d3ed363d
2014-01-31 16:32:42 -08:00
Adrian Grange
64e2597465 Disable update of last_show_frame for existing frame
When showing a previously decoded frame, i.e. when
show_existing_frame=1, the update of the
last_show_frame flag must be disabled.

This is to ensure that the last_show_frame flag
reflects the state of the flag for the immediately
previously decoded frame rather then the value that
was forced to ensure that a previously decoded frame
would be displayed.

This patch also adds a test vector to verify that the
display_existing_frame flag works as expected. Code
for generating the test vector can be found in this
patch:
https://gerrit.chromium.org/gerrit/#/c/68581/

(Bug originally reported by Alexander Voronov
<ru.xalba@gmail.com>).

Change-Id: I731d288fba02088959f7fcc87707137fffc6acf5
2014-01-31 08:55:01 -08:00
James Zern
46f02da747 Merge "tests: fix a few msvc warnings" 2014-01-30 12:03:36 -08:00
James Zern
77e64d8c13 tests: fix a few msvc warnings
Change-Id: I7ee89d6fc2afc20563d1784598ce83e29c0e6651
2014-01-29 15:48:45 -08:00
Jim Bankoski
ea8aaf15b5 create super fast rtc mode
This patch only works if the video is a width and height that are both
a multiple of 32..   It sets every partition to 16x16, and does INTRADC
only on the first frame and ZEROMV on every other frame.   It always does
does the largest possible transform, and loop filter level is set to 4.

Was ~20% faster than speed -5 of vp8

Now 20% slower but adds motion search ( every block ), nearest, near
and zeromv

The SVC test was changed because - while this realtime mode produces
bad quality albeit quickly, it isn't obeying all the rules it should
about which frames are available.

Change-Id: I235c0b22573957986d41497dfb84568ec1dec8c7
2014-01-29 08:39:39 -08:00
Frank Galligan
c6d537155c Merge "Revert external frame buffer code." 2014-01-24 11:31:23 -08:00
Frank Galligan
b1c72b633e Revert external frame buffer code.
A future CL will add external frame buffers
differently.

Squash commit of four revert commits:
Revert "Increase required number of external frame buffers"

This reverts commit 9e41d569d7.

Revert "Add external constants."

This reverts commit bbf53047b0.

Revert "Add frame buffer lru cache."

This reverts commit fbada948fa.

Conflicts:
	vpxdec.c

Change-Id: I76fe42419923a6ea6c75d9997cbbf941d73d3005

Revert "Add support to pass in external frame buffers."

This reverts commit 10f891696b.

Conflicts:
	test/external_frame_buffer_test.cc
	vp9/common/vp9_alloccommon.c
	vp9/common/vp9_reconinter.c
	vp9/decoder/vp9_decodeframe.c
	vp9/encoder/vp9_onyx_if.c
	vp9/vp9_dx_iface.c
	vpx/vpx_decoder.h
	vpx/vpx_external_frame_buffer.h
	vpx_scale/generic/yv12config.c
	vpxdec.c

Change-Id: I7434cf590f1c852b38569980e4247fad0d939c2e
2014-01-24 10:10:20 -08:00
James Zern
002ad40897 test/: remove unnecessary extern "C"s
Change-Id: I826655a708010149de231ca31a2e3ba4f1842c0c
2014-01-23 19:42:59 -08:00
Alex Converse
a1d8918fd1 Merge "Expand the lossless and datarate tests to cover 4:4:4." 2014-01-22 12:42:49 -08:00
Deb Mukherjee
58b9c9fbce Merge "Adds a non-normative resize library to vp9 encoder" 2014-01-22 11:46:43 -08:00
Alex Converse
f5949fab9d Expand the lossless and datarate tests to cover 4:4:4.
Change-Id: I2dc7b3265d0a87d7a26c95b48e360c7c68cc7355
2014-01-22 11:26:04 -08:00
Deb Mukherjee
3cd37dfeb5 Adds a non-normative resize library to vp9 encoder
Adds an arbitrary-size resize library for use in scaling of input
frames in a non-normative manner in the vp9 encoder. The method
used is as follows:
Downsampling - Uses a 8 tap filter for factor of 2 decimation upto
a size just higher than the desired size. Then interpolates pixels
at a precision of 1/32 pel using a set of 8-tap filters.
Upsampling - Interpolates pixels at a precision of 1/32 pel using
a set of 8-tap filters.

There is no assembly optimization yet.

Change-Id: Ib5b81e174fc139da322bb97c8214d52289d60d8a
2014-01-21 16:50:00 -08:00
James Zern
f061968213 test/: remove some unnecessary extern "C"s
Change-Id: I57a94d2f9e26a872a20d805a506855a20e61c356
2014-01-18 13:14:14 -08:00
Alex Converse
8a0b0a035a Add Y4mVideoSource to be used with 4:4:4 tests.
Change-Id: Ida3128e7e8a2ed333ac0b4ee92c23cb7dc1b7843
2014-01-16 15:23:08 -08:00
James Zern
ff0d073d88 Merge "test_libvpx: fix negative CPU filter" 2014-01-13 11:25:59 -08:00
James Zern
01236769ab Merge "datarate_test: fix some type conversions" 2014-01-11 12:38:36 -08:00
James Zern
ada9dd7d84 test_libvpx: fix negative CPU filter
negative patterns begin with _one_ '-', not one before each pattern.

https://code.google.com/p/googletest/wiki/V1_7_AdvancedGuide#Running_a_Subset_of_the_Tests

Change-Id: I6fd527b31bc2571dfdaa453cbbb57c77b3409563
2014-01-10 19:08:44 -08:00
Dmitry Kovalev
f69b5609ff Renaming vp9_dboolhuff.{h, c} to vp9_reader.{h, c}.
Change-Id: I50c009ff8108bda1c57427f23d63a79c04f7e776
2013-12-20 12:53:03 -08:00
Dmitry Kovalev
36ee0a2d0b Merge "Renaming vp9_boolcoder.{h, c} to vp9_writer.{h, c}." 2013-12-20 12:51:37 -08:00
Dmitry Kovalev
4084566554 Renaming vp9_boolcoder.{h, c} to vp9_writer.{h, c}.
Change-Id: I9b9a5fcce8530284df0f270706ee060a0edc1517
2013-12-20 11:10:24 -08:00
James Zern
cc8ea84d3d Merge "test/partial_idct_test: fix msvc build" 2013-12-19 19:31:02 -08:00
Tom Finegan
46444c268a Merge "test/decode_perf_test: fix msvc build" 2013-12-19 10:35:41 -08:00
Tom Finegan
d2fdea1079 test/decode_perf_test: fix msvc build
Change-Id: I46590947dfde0bce727b20c12e3a0a8c27be8433
2013-12-18 18:34:32 -08:00
James Zern
949194db3b Merge "test/partial_idct_test: fix formatting and a warning" 2013-12-18 18:33:49 -08:00
James Zern
cac85f82c5 datarate_test: fix some type conversions
Change-Id: I9840dfab644b0c75ff667174f8005dece005e700
2013-12-18 16:58:43 -08:00
James Zern
a5768f61e5 test/partial_idct_test: fix msvc build
Change-Id: I7fa72980d17f1ca997959e9c4f0f82501810d7c4
2013-12-18 16:38:41 -08:00
James Zern
19c53534bd test/partial_idct_test: fix formatting and a warning
test/partial_idct_test.cc:74:5: warning: variable 'size' is
used uninitialized whenever 'if' condition is true
[-Wsometimes-uninitialized]
    ASSERT_TRUE(0) << "Wrong Size!";

Change-Id: Ic2f880ae09268561c9f036b4d6de220fde6dc5c4
2013-12-18 15:59:09 -08:00
Yaowu Xu
f71f581ba2 Merge "Added a test vector that exercises lpf deltas" 2013-12-18 11:41:56 -08:00
Marco Paniconi
02d5ebcfdc Merge "Updates for 1-pass CBR rate control." 2013-12-18 10:28:33 -08:00
Yaowu Xu
2424ba3d8b Added a test vector that exercises lpf deltas
From frame 2, the lpf deltas are all cleared for for even frames, and
a set of values are set and used for odd frames. The intention is to
exercise decoding code around lpf delta/update decoding.

Change-Id: Ic9ff1bc2c2a023f4805852f8573398f2ec2249d7
2013-12-18 10:08:39 -08:00
Marco Paniconi
1b8b8b0d0d Updates for 1-pass CBR rate control.
Adjustments based on buffer level, frame dropper.

Change-Id: Iaa85b570493526a60c4b9fb7ded4c0226b1b3a33
2013-12-18 09:24:24 -08:00
Johann
b46da98f3a Merge "Only exclude VP8 when it is included" 2013-12-17 21:26:44 -08:00
Frank Galligan
05d5332407 Merge "Increase required number of external frame buffers" 2013-12-17 21:20:34 -08:00
Johann
af416c4daf Only exclude VP8 when it is included
If configured with --disable-vp8 kVP8TestVectors is undefined.

Change-Id: I9d83e805923977ab057ab48042580ce0d817ba68
2013-12-17 18:27:04 -08:00
Frank Galligan
9e41d569d7 Increase required number of external frame buffers
Make applications pass in VPX_MAXIMUM_WORK_BUFFERS as well as
VP9_MAXIMUM_REF_BUFFERS.

Change-Id: I9c07ce83fa19c90ed43227b801b2013690e81edd
2013-12-17 17:34:36 -08:00
Yaowu Xu
ede392d765 Merge changes I5d28c2f5,Ib00b036f
* changes:
  Remove redundant function and calls
  Add test for partial inverse transforms
2013-12-17 16:57:01 -08:00
Yaowu Xu
ed7e3d2447 Add test for partial inverse transforms
To make sure the results they produce to match their full versions

Change-Id: Ib00b036fecf43fe20af716acfc580af18ef87757
2013-12-16 22:01:02 -08:00
Yaowu Xu
a3e919a4ba Added a test vector
The added vector was encoded with aq mode on, with the intent to
exercise the decode code around segment feature.

Change-Id: Iedcb7261e87d3e11b25ecf031d3a69385271148e
2013-12-16 15:48:04 -08:00
Deb Mukherjee
4a535efcfd Change in data rate test to be less stringent
Makes the thresholds for bitrate control more leniant to
prevent test failures.

Change-Id: I535c1565174a8a46493b033531eb40360def883b
2013-12-16 09:29:37 -08:00
Frank Galligan
fbada948fa Add frame buffer lru cache.
Add an option for libvpx to return the least recently used
frame buffer.

Change-Id: I886a96ffb94984f1c42de53086e0131922df3260
2013-12-15 19:57:42 -08:00
Frank Galligan
d0ee1fd797 Merge "Add support to pass in external frame buffers." 2013-12-15 19:18:25 -08:00
Frank Galligan
10f891696b Add support to pass in external frame buffers.
VP9 decoder can now use frame buffers passed in by the application.

Change-Id: I599527ec85c577f3f5552831d79a693884fafb73
2013-12-15 18:45:46 -08:00
James Zern
c5aaf923d8 webmdec/tests: fix leak when file isn't read to eof
the nestegg packet was only freed by subsequent reads

Change-Id: Ib687a13907861c7575830783e47a596d85169cf1
2013-12-13 19:06:21 -08:00
Adrian Grange
2ec473bb0a Merge "Set rc_2pass_vbr_maxsection_pct to correct value" 2013-12-13 10:30:46 -08:00
Adrian Grange
15cf59605f Set rc_2pass_vbr_maxsection_pct to correct value
Corrected a typo that set rc_2pass_vbr_minsection_pct to
two different values on consecutive lines. Second line
should have set rc_2pass_vbr_maxsection_pct.

Change-Id: Ie07ac67cd5455afe556bef34da8127304db9c97c
2013-12-13 08:50:13 -08:00
James Zern
c2634188ce Merge "test-data.sha1: add missing sha1sums" 2013-12-12 11:57:10 -08:00
Frank Galligan
38536f6b1c Cleanup copyright headers.
Change-Id: I7ff2b18e085f3fffaa7f25d40e4e50427b808f43
2013-12-12 08:36:34 -08:00
Frank Galligan
802fc78bd7 Merge "Move test vector list into a separate header." 2013-12-12 08:28:48 -08:00
Frank Galligan
994a552c09 Merge "Add pre decode frame hook to decoder test class." 2013-12-12 08:26:43 -08:00
Frank Galligan
52b2d50db4 Move test vector list into a separate header.
Change-Id: I36f9033492f12fda7f9ce0e7a97a009aab9aab57
2013-12-11 23:15:39 -08:00
James Zern
1586bbf7f1 test-data.sha1: add missing sha1sums
vp90-2-02-size-lf-1920x1080.webm{,.md5} were added in:
ebb583d Add a test vector for loopfilter

Change-Id: I021808338935932cb742ea2621b94f44f22e3037
2013-12-11 19:19:39 -08:00
Yaowu Xu
d62af81f6a Reduce the number of frames used in lossless test
Change-Id: I976f70b640b06f20533ad29578a5b2acca134fd4
2013-12-11 13:45:07 -08:00
Frank Galligan
f9d69bd0fd Add pre decode frame hook to decoder test class.
Adds a hook that derived test classes can implement to be notified
before every call to decode a frame.

Change-Id: Iefa836459cf3e5d7df9ee27f8198daf82b1be088
2013-12-11 08:58:21 -08:00
James Zern
937c3b990b add tile test vectors
3840x2160

vp90-2-08-tile_1x8_frame_parallel.webm
vp90-2-08-tile_1x8.webm

vpxenc crowd_run_2160p50.y4m \
  --codec=vp9 -p 2 \
  --frame-parallel=${fpm} \
  --tile-columns=${tc} \
  --limit=10 \
  --auto-alt-ref=1 \
  --lag-in-frames=5 \
  --target-bitrate=2500

Change-Id: I6dc19b4fca483d03ef9a897a843bf9037d095c8e
2013-12-05 21:04:46 -08:00
Jingning Han
61da0870b9 Merge "Add a test vector for loopfilter" 2013-12-04 17:13:57 -08:00
Jingning Han
ebb583d291 Add a test vector for loopfilter
The test vector exercises the loopfilter behavior at frame boundary.

blue_sky_1080p25.y4m --good --cpu-used=2 --threads=0 --profile=0
--lag-in-frames=25 --limit=300 --min-q=0 --max-q=63 --cq-level=20
--end-usage=0 --auto-alt-ref=1 -p 2 --kf-max-dist=9999 --kf-min-dist=0
--drop-frame=0 --static-thresh=0 --bias-pct=50 --minsection-pct=0
--maxsection-pct=2000 --arnr-maxframes=7 --arnr-strength=5
--arnr-type=3 --sharpness=0 --undershoot-pct=100 --target-bitrate=6000

Change-Id: Ibd0807395d2fe87f24f81f990369678df3de7c23
2013-12-04 13:05:21 -08:00
Adrian Grange
475d1d60b8 Modified spatial scalable encoder & unit tests
Modifications to the spatial scalable encoder to match
changes made to the scaling code in the decoder.

In particular, the use of a dummy first frame was removed
now that the decoder is able to handle a smaller first
frame.

SvcTest.FirstFrameHasLayers unit test re-enabled.

Change-Id: Ic2e91fbe4eadf95895569947670d36d68abaf458
2013-12-04 11:45:40 -08:00
Yaowu Xu
a0f77f6acb Fix VP8 border replication for very small image
Also added a test vector for this issue.

Change-Id: I8a8654f9d33b27afd53c295f1ea44d198550d067
2013-12-03 17:06:17 -08:00
Yaowu Xu
e9c19617bf Merge "vp9_short_fdct32x32_rd vp9_short_fdct32x32 optimized for AVX2" 2013-11-27 10:27:32 -08:00
Yunqing Wang
f234136414 Add a noise test vector
Added the test vector provided by Attila, which caught the bug in
Issue 661 "Decoder produces mismatched outputs with ssse3 enabled
and disabled"

vp90-hantro-stream-001.ivf
size: 320x180; 20 frames

Change-Id: Ic0d2b57ac7596ecb938dd55abc8c706fc2dd6d8f
2013-11-26 11:30:13 -08:00
Dmitry Kovalev
5925ba08a3 Merge "Using num_4x4_blocks_* instead of b_{width, height}_log2." 2013-11-21 16:48:34 -08:00
Dmitry Kovalev
27e6b5b6bd Using num_4x4_blocks_* instead of b_{width, height}_log2.
Change-Id: I9ea3946c17b19f511565cd771037abe7db8b3ddb
2013-11-21 15:53:06 -08:00
Joshua Litt
3aeebfb231 Merge "Removing PARAMS macro for consistency" 2013-11-21 15:06:51 -08:00
levytamar82
8def766de2 vp9_short_fdct32x32_rd vp9_short_fdct32x32 optimized for AVX2
Change-Id: I6366e84490883b72362f762369d7e5bccb64f02f
2013-11-21 14:19:49 -08:00
Joshua Litt
51490e5654 Removing PARAMS macro for consistency
Change-Id: I23ed873a6c47b15491a2ffbcdd4f0fdeef1207a0
2013-11-19 09:28:18 -08:00
Joshua Litt
a782d63954 Decoder performance test added to unit tests
Change-Id: Id578a5fe2039631cefd82dc2ef98cc62683194c3
2013-11-18 17:12:05 -08:00
Joshua Litt
f16cde998b Tweaks to vpx_test android make file
* Change from thumb mode to arm mode improves test time significantly
  * Direct inclusion of test.mk allows for unit test configuration via
    configure script
Change-Id: Id58d3ba8289374528756a672459d8334afe20e2a
2013-11-14 13:30:28 -08:00
Jingning Han
4995dbc713 Merge "Enable 4x4 DCT/ADST transform unit test" 2013-11-14 09:26:33 -08:00
Jingning Han
30d4c5ed7a Enable 4x4 DCT/ADST transform unit test
This commit enables the  unit tests for 4x4 DCT and ADST transforms.
It covers tests of round-trip error check, coefficient match check,
coefficient overflow check, and inverse accuracy check.

Change-Id: Ibfea928ee48f0ebc088b7fdb0bf2d89a14161299
2013-11-13 18:18:06 -08:00
Marco Paniconi
9977332615 For CBR, keep rate-correction damping factor to 2.
The switch to the rate-correction damping factor
in https://gerrit.chromium.org/gerrit/#/c/67536/ was not conditioned on CBR mode.

Change-Id: I2326704e8ac030a4f7b592dd3fedb94c7dd0644d
2013-11-13 16:14:31 -08:00
Jingning Han
25af150911 Merge "Add test vector for row/col tile decoding" 2013-11-12 18:11:34 -08:00
Joshua Litt
c88f1ec8ca Android.mk file for vpx unittests
These changes are to support automated regressions of vpx on android
	new file:   test/android/Android.mk
	new file:   test/android/README
	new file:   test/android/get_files.py

Change-Id: I52c8e9daf3676a3561badbe710ec3a16fed72abd
2013-11-12 14:20:25 -08:00
Jingning Han
458951d8e3 Add test vector for row/col tile decoding
1920x1080

vp90-2-08-tile-4x4.webm
vp90-2-08-tile-4x4.webm.md5

vpxenc blue_sky_1080p25 --frame-parallel=0 \
--tile-columns=2 --tile-rows=2 \
--lossless=0 --error-resilient=0 \
--min-q=0 --max-q=30 --kf-min-dist=0 --kf-max-dist=9999 \
--cpu-used=0 --codec=vp9 -p 2 --good --fps=25/1 --limit=5

vp90-2-08-tile-4x1.webm
vp90-2-08-tile-4x1.webm.md5

vpxenc blue_sky_1080p25 --frame-parallel=0 \
--tile-columns=0 --tile-rows=2 \
--lossless=0 --error-resilient=0 \
--min-q=0 --max-q=30 --kf-min-dist=0 --kf-max-dist=9999 \
--cpu-used=0 --codec=vp9 -p 2 --good --fps=25/1 --limit=5

Change-Id: I77d0ccf9b721ae5cfa72781fe0d3c534ea43b756
2013-11-12 11:26:26 -08:00
Ivan Maltz
d2c8cb70bd Fixed memory leak with svc_test.cc
was not calling vpx_codec_destroy and delete(decoder_) in TearDown

Change-Id: Iff4fd24a260223d224b3ea3287cdf0227405492f
2013-11-11 15:20:26 -08:00
Yaowu Xu
a4a5a210cb Disable zeroblock forcing for lossless coding mode
This to make sure that prediction residue always get coded in lossless
mode.

This commit also fixed lossless unit test

Change-Id: I537726ee55328d4e4cf0a0196393a67e12bfcde1
2013-11-08 10:32:44 -08:00
Ivan Maltz
741c14fcf0 Merge "Move SVC per-frame loop from sample app into libvpx proper" 2013-11-06 17:24:05 -08:00
Ivan Maltz
1ed0e1beb5 Move SVC per-frame loop from sample app into libvpx proper
SVC multiple layer per frame encoding is invoked with vpx_svc_init and
vpx_svc_encode. These interfaces are designed to be invoked from ffmpeg.
Additional improvements:
- make dummy frame handling a bit more explicit
- fixed bug with single layer encodes
- track individual frame sizes and psnrs instead of averages
- parameterized quantizer, 16th scalefactors, more logging,
- enabled single layer encodes to generate baseline
- include new mode for 3 layer I frame with 5 total layers

Change-Id: I46cfa600d102e208c6af8acd6132e0cc25cda8d4
2013-11-06 14:49:27 -08:00
Joshua Litt
ab9160de90 Allow test data path to be set by preprocessor symbol
Change-Id: I19c482c7cba34db574b3f33178ba20aede49779e
2013-11-06 13:08:59 -08:00
Marco Paniconi
b26ce8b1be Updates to 1-pass:
-Don't reduce maxQ for gold/alt in CBR mode.

   -Fix to min/maxQ for first/initial key frame.

   -Add more speeds to datarate test and reduce the starting bitrate for test.

Change-Id: Id2a333d76dd3f6a51b322ca984588e2a22159c58
2013-10-30 16:52:46 -07:00
James Zern
ce053e7006 Merge "vp9: add multi-threaded tile decoder" 2013-10-29 17:44:22 -07:00
James Zern
fb484524bd vp9: add multi-threaded tile decoder
tiles are decoded in parallel within a single frame

Change-Id: I7aca87cb1c239b74eceef72bdc9f672faebac373
2013-10-30 01:00:20 +01:00
Erik Niemeyer
e6863ef318 CL for adding AVX-AVX2 support in libvpx.
Change-Id: Idc03f3fca4bf2d0afd33631ea1d3caf8fc34ec29
2013-10-29 15:11:16 -07:00
James Zern
080150d96f Merge "add tile test vectors" 2013-10-28 13:32:45 -07:00
James Zern
ea9b2c0312 add tile test vectors
1920x1080

vp90-2-08-tile_1x2_frame_parallel.webm
vp90-2-08-tile_1x2.webm
vp90-2-08-tile_1x4_frame_parallel.webm
vp90-2-08-tile_1x4.webm

vpxenc blue_sky_1080p25.y4m \
  --codec=vp9 -p 2 \
  --frame-parallel=${fpm} \
  --tile-columns=${tc} \
  --limit=10 \
  --auto-alt-ref=1 \
  --lag-in-frames=5 \
  --target-bitrate=2500

Change-Id: Id9c94b722cc553a6865d443a94e8482c78b038bb
2013-10-28 17:53:20 +01:00
James Zern
e5edad3dc7 Merge "vp9_thread_test: quiet some msvc int->bool warnings" 2013-10-28 07:58:04 -07:00
James Zern
00053aa6c4 vp9_thread_test: quiet some msvc int->bool warnings
Change-Id: I2ed1cb537831c8b595c74ec641296d13d38ef622
2013-10-26 11:08:28 +02:00
Dmitry Kovalev
600a3860a4 Making input pointer constant for all fdct/fht functions.
Change-Id: I78f7012f967a777ddd39bae6671eb501df6bbfe8
2013-10-24 11:48:25 -07:00
Dmitry Kovalev
fd724f13b0 Renaming vp9_short_fdct4x4 and vp9_short_walsh4x4.
For consistency with idct function names. Renames:
  vp9_short_fdct4x4  -> vp9_fdct4x4
  vp9_short_walsh4x4 -> vp9_fwht4x4

Change-Id: Id15497cc1270acca626447d846f0ce9199770f58
2013-10-23 14:28:39 -07:00
Dmitry Kovalev
a018988ce8 Renaming vp9_short_fdct32x32 to vp9_fdct32x32.
For consistency with idct function names.

Change-Id: Ie77b7178e0894c57cd5cb9243c949eb9224ece18
2013-10-23 13:41:40 -07:00
Dmitry Kovalev
5bdd4d9ccf Merge "Renaming vp9_short_fdct16x16 to vp9_fdct16x16." 2013-10-23 13:37:09 -07:00
Dmitry Kovalev
02feb63684 Renaming vp9_short_fdct16x16 to vp9_fdct16x16.
For consistency with idct function names.

Change-Id: I5ca355ba99fdba04f09254be95cf79808b534f71
2013-10-23 10:57:12 -07:00
Dmitry Kovalev
fa143dbc8e Renaming vp9_short_fdct8x8 to vp9_fdct8x8.
For consistency with idct function names.

Change-Id: I7b6af2f92c66eff56f84ed29edc3a66af8dc421f
2013-10-23 10:52:33 -07:00
Dmitry Kovalev
9f09618bd4 Merge "Using stride (# of elements) instead of pitch (bytes) in fdct4x4." 2013-10-22 13:05:24 -07:00
James Zern
c9af3de155 Merge changes I305fd55f,I13fe92b1
* changes:
  vp9/dec: use loop filter worker for all inline cases
  vp9_thread: add vp9_worker_execute()
2013-10-22 13:00:33 -07:00
James Zern
64d94b4aa6 Merge "Revert "Merge "SVC improvements""" 2013-10-22 12:47:22 -07:00
Dmitry Kovalev
a767d10fa5 Merge "Using stride (# of elements) instead of pitch (bytes) in fdct8x8." 2013-10-22 11:34:17 -07:00
James Zern
cd74a901a7 Revert "Merge "SVC improvements""
This reverts commit a82001b1cf, reversing
changes made to f6d870f7ae.

This commit breaks windows builds and needs some work to fix those and
some additional comments.

Change-Id: Ic0b0228e36704b127e5e399ce59db26182cfffe7
2013-10-22 11:09:22 +02:00
Dmitry Kovalev
190c2b4591 Using stride (# of elements) instead of pitch (bytes) in fdct4x4.
Just making fdct consistent with iht/idct/fht functions which all use
stride (# of elements) as input argument.

Change-Id: I0ba3c52513a5fdd194f1e7e2901092671398985b
2013-10-21 15:27:35 -07:00
Ivan Maltz
663916cea7 SVC improvements
These changes were originally made in the Stratacaster team-review repository

commit e114bffcd82ad74c3696ec58e13c0ac895d6c82d
Author: Charles 'Buck' Krasic <ckrasic@google.com>
Date:   Mon Oct 14 16:52:13 2013 -0700

    Make dummy frame handling a bit more explicit, fixing bug
    with single layer encodes.

Squashed commit of the following:

commit 1ebbfd976c0fadb02bf1ea562a2d0e3f0206daad
Merge: ac468dd 54e88b7
Author: Ivan Maltz <ivanmaltz@google.com>
Date:   Fri Oct 11 17:29:58 2013 -0700

    Move SVC code from vp9_spatial_scalable_encoder to libvpx module accessible from ffmpeg

commit 54e88b78b160becc9569fc3c6cb6b0a8c95dc357
Author: Ivan Maltz <ivanmaltz@google.com>
Date:   Tue Oct 8 09:08:40 2013 -0700

    common svc encoding code for sample app and ffmpeg

    added svc_encodeframe.c, svc_context.h, svc_test.cc

    vp9_spatial_scalable_encoder uses vpx_svc_encode

commit 5616ec8e2e3d3e8d277333d8a9242f6c70151162
Merge: 4528014 e29137d
Author: Ivan Maltz <ivanmaltz@google.com>
Date:   Tue Oct 8 08:47:58 2013 -0700

    Merge branch 'master' into stratacaster

commit 45280148450b1f3d61e390df8aadedf85cd5bce1
Merge: bb2b675 1ab60f7
Author: Sujeevan Rajayogam <sujee@google.com>
Date:   Fri Oct 4 10:22:31 2013 -0700

    Merge branch 'master' into stratacaster

commit bb2b675e595dc9bfc8551e963edf56800c3aea61
Author: Sujeevan Rajayogam <sujee@google.com>
Date:   Wed Oct 2 12:37:26 2013 -0700

    Track individual frame sizes and psnrs instead of averages.

commit c6d303b714795c81e7ceb4173967115c9f8ff5b7
Merge: fa87df9 3583087
Author: Sujeevan Rajayogam <sujee@google.com>
Date:   Fri Sep 27 10:05:35 2013 -0700

    Merge branch 'master' into stratacaster

commit fa87df94fba923d9f7aeb8ae20c6e15f777e00b5
Merge: bf22d71 3c465af
Author: Sujeevan Rajayogam <sujee@google.com>
Date:   Thu Sep 26 16:10:31 2013 -0700

    Merge branch 'master' into stratacaster

commit bf22d7144895a82e0c348ac177c8a261b9e2b88e
Author: Sujeevan Rajayogam <sujee@google.com>
Date:   Thu Sep 26 11:10:34 2013 -0700

    Parameterized quantizer, 16th scalefactors, more logging, enabled single layer encodes to generate baseline.

commit ceffd7e6025b765f9886b5ea0f324248aa37e327
Author: Sujeevan Rajayogam <sujee@google.com>
Date:   Thu Sep 19 10:04:49 2013 -0700

    - Include new mode for 3 layer I frame with 5 total layers.
    - Refactor svc api.

Change-Id: Ie4d775e21e006fa597d884c59488dc999478e9b5
2013-10-21 14:34:37 -07:00
Dmitry Kovalev
e5fa44c869 Using stride (# of elements) instead of pitch (bytes) in fdct8x8.
Just making fdct consistent with iht/idct/fht functions which all use
stride (# of elements) as input argument.

Change-Id: Ibc944952a192e6c7b2b6a869ec2894c01da82ed1
2013-10-18 12:20:26 -07:00
Dmitry Kovalev
1aa7fd5aef Using stride (# of elements) instead of pitch (bytes) in fdct16x16.
Just making fdct consistent with iht/idct/fht functions which all use
stride (# of elements) as input argument.

Change-Id: I2d95fdcbba96aaa0ed24a80870cb38f53487a97d
2013-10-18 11:49:33 -07:00
Dmitry Kovalev
e05412fc23 Using stride (# of elements) instead of pitch (bytes) in fdct32x32.
Just making fdct consistent with iht/idct/fht functions which all use
stride (# of elements) as input argument.

Change-Id: Id623c5113262655fa50f7c9d6cec9a91fcb20bb4
2013-10-17 13:02:28 -07:00
James Zern
820201caa8 vp9_thread: add vp9_worker_execute()
cherry-picked from:
commit 988b70844e03efcfcc075a9bc25d846670494f36
Author: Pascal Massimino <pascal.massimino@gmail.com>
Date:   Fri Aug 2 11:15:16 2013 -0700

    add WebPWorkerExecute() for convenient bypass

    This is mainly for re-using the worker structs without using the
    thread.

    Change-Id: I8e1be29e53874ef425b15c192fb68036b4c0a359

Original source:
 http://git.chromium.org/webm/libwebp.git
 100644 blob c0d318aee628fdf9ba4876451a28aa978f1066b8 src/utils/thread.c
 100644 blob c2b92c9fe353f8e514f78922f3d237204a9cbc66 src/utils/thread.h

Change-Id: I13fe92b1e94062bb99fdeeb7cb0b4b0575d27793
2013-10-17 16:44:22 +02:00
Marco Paniconi
e078c3d854 Initial 1-pass.
Change-Id: I58c5436f5c95f6012fb2891cd2a02f76e4870b6a
2013-10-16 12:04:29 -07:00
James Zern
9d98e936b5 Merge "add a test vector with frame parallel mode enabled" 2013-10-15 02:02:16 -07:00
James Zern
798cf80c1e add a test vector with frame parallel mode enabled
vp90-2-07-frame_parallel.webm:
vpxenc stefan_sif.y4m \
  --codec=vp9 -p 2 \
  --frame-parallel=1 \
  --limit=10 \
  --auto-alt-ref=1 \
  --lag-in-frames=5

Change-Id: I7381a69aaaec238b309169a51b34cb6bf29a9c50
2013-10-14 18:50:55 +02:00
Dmitry Kovalev
65f118d72f Making input pointer of any inverse transform constant.
Also renaming dest_stride to stride in some places.

Change-Id: I75f602b623a5a7071d4922b747c45fa0b7d7a940
2013-10-11 18:27:12 -07:00
Dmitry Kovalev
7ef573914d Consistent names for inverse hybrid transforms (1 of 2).
Renames:
  vp9_short_iht4x4_add     -> vp9_iht4x4_16_add
  vp9_short_iht8x8_add     -> vp9_iht8x8_64_add
  vp9_short_iht16x16_add_c -> vp9_iht16x16_256_add

Change-Id: Ibca7a188fd062b196787ac5efc1ea545e7f166c0
2013-10-11 13:31:32 -07:00
Yunqing Wang
3a0b59e3fd Merge "SSE2 8-tap sub-pixel filter optimization" 2013-10-11 08:44:56 -07:00
Paul Wilkins
899ab95c8c Adjustment to allowed range in resize unit test
Change-Id: I5222e3db2627a3a9f7fc34f2ab4554aa5807ed51
2013-10-11 13:38:24 +01:00
Yunqing Wang
3fb728c749 SSE2 8-tap sub-pixel filter optimization
To ensure fast encoding/decoding on devices without ssse3 support,
SSE2 optimization of sub-pixel filters was done. Test using 1080p
clip showed the decoder speeds were ~70fps with ssse3 filters, ~60fps
with sse2 filters, and ~15fps with c filters.

Change-Id: Ie2088f87d83a889fba80a613e4d0e287aadd785c
2013-10-10 14:12:47 -07:00
Dmitry Kovalev
1e766b50e2 Giving consistent names to IDCT 32x32 functions.
Renames:
  vp9_short_idct32x32_add   -> vp9_idct32x32_1024_add
  vp9_short_idct32x32_1_add -> vp9_idct32x32_1_add
  vp9_idct_add_32x32        -> vp9_idct32x32_add

Change-Id: Id85306f5814bac6c47463a6b5901a93082510666
2013-10-10 11:27:39 -07:00
Dmitry Kovalev
b096c5a336 Giving consistent names to IDCT 16x16 functions.
Renames:
  vp9_short_idct16x16_add    -> vp9_idct16x16_256_add
  vp9_short_idct16x16_10_add -> vp9_idct16x16_10_add
  vp9_short_idct16x16_1_add  -> vp9_idct16x16_1_add
  vp9_idct_add_16x16         -> vp9_idct16x16_add

Change-Id: Ief8a3904de78deab0f4ede944c4d0339c228cfc3
2013-10-07 14:31:10 -07:00
Dmitry Kovalev
c6ad70d5f1 Giving consistent names to IDCT 8x8 functions.
Renames:
  vp9_short_idct8x8_add    -> vp9_idct8x8_64_add
  vp9_short_idct8x8_1_add  -> vp9_idct8x8_1_add
  vp9_short_idct8x8_10_add -> vp9_idct8x8_10_add
  vp9_idct_add_8x8         -> vp9_idct8x8_add

Change-Id: Ifb8d3a45b4c0397aa805b30463f3d14581bf72c1
2013-10-06 00:24:09 -07:00
Dmitry Kovalev
3a0602578e Giving consistent names to IDCT/IWHT functions.
The idea is to have the following names for each transform size:

vp9_idct4x4_add
  vp9_idct4x4_1_add
  vp9_idct4x4_10_add
  vp9_idct4x4_16_add

vp9_idct8x8_add
  vp9_idct8x8_1_add
  vp9_idct8x8_10_add
  vp9_idct8x8_64_add

etc for 16x16, 32x32

The actual list of renames in this patch:

vp9_idct_add_lossless     -> vp9_iwht4x4_add
vp9_short_iwalsh4x4_add   -> vp9_iwht4x4_16_add
vp9_short_iwalsh4x4_1_add -> vp9_iwht4x4_1_add

vp9_idct_add            -> vp9_idct4x4_add
vp9_short_idct4x4_add   -> vp9_idct4x4_16_add
vp9_short_idct4x4_1_add -> vp9_idct4x4_1_add

Change-Id: I6f43f7437c68dd30cdd05d72e213765578ed30b1
2013-10-04 14:17:06 -07:00
Johann
fd6c4c71d6 Merge "mips dsp-ase r2 vp9 decoder convolve module optimizations" 2013-10-03 09:41:16 -07:00
Dmitry Kovalev
68a3e4a888 BITSTREAM - RESTORING BILINEAR INTERPOLATION FILTER SUPPORT
Adding appropriate test vector vp90-2-06-bilinear.webm.

Change-Id: Ia3bbf57318e0cc61a1b724fe751e3f9c7e11b337
2013-10-02 18:04:12 -07:00
Parag Salasakar
40edab5e39 mips dsp-ase r2 vp9 decoder convolve module optimizations
Change-Id: I401536778e3c68ba2b3ae3955c689d005e1f1d59
2013-10-02 16:58:37 -07:00
Yaowu Xu
253fd256bf Align structs used unit test to 32 bytes
Change-Id: Id36309d405bf7b7e8805a8320f5a95eeb5d240f5
2013-09-26 10:38:59 -07:00
Yaowu Xu
e45f4a4a4c Revert "Align struct to 32 bytes"
This reverts commit b5242368f3

Change-Id: I73c7a8bd23bb67f278f86b3fd2ecdc25a39b12b9
2013-09-26 08:34:12 -07:00
Yaowu Xu
b5242368f3 Align struct to 32 bytes
Change-Id: I32fd813af7dd2a7d451f5fda278ea888b181fa8e
2013-09-25 17:20:25 -07:00
Jingning Han
f363aa3a15 Merge "Refactor 8x8 fwd transform unit test" 2013-09-19 09:59:56 -07:00
Yaowu Xu
b0211e7edf Merge "fix vp8-only build" 2013-09-19 09:27:59 -07:00
James Zern
a0fcbcfa5f fix vp8-only build
Change-Id: Id9ce44f3364dd57b30ea491d956a2a0d6186be05
2013-09-17 18:47:25 -07:00
Adrian Grange
88c8ff2508 Modified resize unit test to output test vector
Modified the resize unit test so that it optionally
writes the encoded bitstream to file. The macro
WRITE_COMPRESSED_STREAM should be set to 1 to enable
output of the test bitstream; it is set to 0 by default.

Change-Id: I7d436b1942f935da97db6d84574a98d379f57fb1
2013-09-17 15:38:30 -07:00
Jingning Han
4bd171152d Refactor 8x8 fwd transform unit test
This commit reworked the unit test for 8x8 forward transform. It
allows scalability to cover various implemented versions.

Change-Id: I5594bd3e2307bb5bec764eaffd8860caa260e432
2013-09-16 19:00:56 -07:00
Yaowu Xu
040ffb6326 Minor adjustment in unit tests
The CpuSpeedTest is extended to cover 2pass good quality with CpuUsed
from 0 to 4. The BordersTest is changed to use CpuUsed 1 for faster
turn around.

Change-Id: I005e89adee7fe63af4b1f2a76a3a13ea826feadf
2013-09-13 09:32:16 -07:00
Adrian Grange
93ffd371eb Enable and fix resize_test for VP9
Added the resize_test unit test to the VP9 set.

Set g_in_frames = 0 to avoid a problem when the total
number of frames being encoded is smaller than
g_in_frames. In this case the test will not have
access to the encoded frames and will not be able to
compare them for testing for encoder/decoder mismatch.

Change-Id: I0d2ff8ef058de7002c5faa894ed6ea794d5f900b
2013-09-10 12:02:37 -07:00
Jingning Han
2873d5608b Merge "Enable accuracy/memory check for 16x16 transforms" 2013-09-10 09:05:34 -07:00
Jingning Han
87bc705fb5 Merge "Rework 16x16 transform unit test" 2013-09-10 09:05:04 -07:00
James Zern
563c273738 test/idct_test: add missing vpx_integer.h include
Change-Id: I9de764638ec981bb34fc8e183985d8c285b006fb
2013-09-09 22:20:41 -07:00
Jingning Han
37705a3bc5 Enable accuracy/memory check for 16x16 transforms
This commit completes the per coefficient accuracy check and memory
overflow check for SSE2 and other implemented versions of 16x16
transform.

Change-Id: If26a3e4f6ba82ccecc13f0b73cb8f7bb6ac14584
2013-09-09 17:07:55 -07:00
Jingning Han
8f92a7efdb Rework 16x16 transform unit test
This commit refactors the 16x16 transform unit test. It enables the
test on all implemented versions of forward and inverse 16x16 transform
modules.

Change-Id: I0c7d5f3c5fdd5d789a25f73e287aeeaf463b9d69
2013-09-09 16:12:32 -07:00
Yaowu Xu
afffa3d9b0 cleanup cpplint warnings
Suggested by James Zern to clear out cpplint warnings for all unit
test code.

Change-Id: I731a3fa4d2a257eb9ef733426ba84286fbd7ea34
2013-09-06 10:13:49 -07:00
Jingning Han
170be56a74 Merge "Enable 32x32 Transform unit test" 2013-09-05 15:23:27 -07:00
Jingning Han
4ad52a8f18 Enable 32x32 Transform unit test
This commit enabled a full functional test on 32x32 forward/inverse
transform, including round-trip error and memory overflow check. It
tests the prototype functions in C and all other implementations if
applicable.

Change-Id: I9cc50b05abdb4863e7abbcb29209a19b1fe90da7
2013-09-05 14:46:51 -07:00
Yaowu Xu
7bc775d93d Merge "Added ClearSystemState in a unit test" 2013-09-05 08:14:44 -07:00
Yaowu Xu
e494df1a37 Added ClearSystemState in a unit test
There is another unit test that has been failing randomly on win32
build. Investigation has shown that the failure was caused by simd
register state is not reset appropriately in the fdct8x8 test. This
commit added ClearSystemState() in the teardown of this test, tests
showed it resolved the random failure issue for win32 build.

Related issue: https://code.google.com/p/webm/issues/detail?id=614

Change-Id: I9381d0c1a6f4b855ccaeef1aca8c417ac8c71ee2
2013-09-04 15:07:34 -07:00
Dmitry Kovalev
890eee3b47 Fixing problem with invalid delta_q reading.
This is a bitstream change but no currently produces videos should
be affected. https://code.google.com/p/webm/issues/detail?id=610

Change-Id: Ic85a6477df6c201cdf7f70f6bd84607b71f4593c
2013-09-04 11:25:43 -07:00
James Zern
1cf2272347 Merge "Fix intermediate height in convolve_c" 2013-09-03 15:50:33 -07:00
Tero Rintaluoma
e326cecf18 Fix intermediate height in convolve_c
- Intermediate height was not correct i.e. when block size is 4 and
  y_step_q4 is 6. In this case intermediate height was
  (4*6) >> 4 = 1 and vertical interpolation needs two source pixels
  plus 7 extra pixels for taps.
- Also if the current output block is 16x16 and we are using 4x upscaling
  we need only 12 rows after horizontal filtering instead of 16.

  Patch Set 2: Intermediate_height updated after CL 66723
               "Fix bug in convolution functions (filter selection)"

Change-Id: I5a1a1bc2ac9d5edb3a6e0818de618bf318fdd589
2013-08-30 10:31:21 +03:00
Jingning Han
ec4b2742e7 Refactor 16x16 unit tests
Make the new test module comply to the unit test rules.

Change-Id: Id79ff7f03f870973ffbc74f26d64edb418b75299
2013-08-29 16:49:11 -07:00
Dmitry Kovalev
bfebe7e927 Merge "Renaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the common/decoder." 2013-08-27 10:15:21 -07:00
Jim Bankoski
a5cb05c45d Add a test vector that tests color space 444
This adds a test vector for 444 color space.

Change-Id: I1e2ac3883211989a062cfafc0e58151b14d294b8
2013-08-26 15:24:35 -07:00
Jim Bankoski
af13fbb70f Fix Chroma plane md5 check
Chroma plane MD5 calculation was incorrect for 444 and 422
yuv color spaces.

Change-Id: If985396871a2f57db85108a4355172f9793d3007
2013-08-26 14:26:38 -07:00
Dmitry Kovalev
45870619f3 Renaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the common/decoder.
Adding temporary "typedef BLOCK_SIZE BLOCK_SIZE_TYPE" which will go away
after encoder's patch.

Change-Id: I06ec6a6f079401439843ec981d1496234fd7775c
2013-08-26 11:33:16 -07:00
Adrian Grange
3f10831308 Fix bug in convolution functions (filter selection)
(In response to Issue 604:
 https://code.google.com/p/webm/issues/detail?id=604)

There were bugs in the convolution code for two cases:

1. Where the filter table was assumed to be aligned to a
   256 byte boundary. The offset of the pixel in the
   source buffer was computed incorrectly.

2. Where no such alignment assumption was made. An
   incorrect address for the filter table base was used.

To fix both problems, I now assume that the filter table is
256-byte aligned and modify the pixel offset calculation to
match.

A later patch should remove the restriction that the filter
table is aligned to a 256-byte boundary.

There was also a bug in the ConvolveTest unit test
(convolve_test.cc).

(Bug & initial fix suggestion submitted by Tero Rintaluoma
and Sami Pietilä).

Change-Id: I71985551e62846e55e40de9e7e3959d4805baa82
2013-08-23 11:16:08 -07:00
Deb Mukherjee
0d8723f8d5 Make "good" quality 2-pass vpxenc encoding default
Currently, the best quality mode in VP9 is not very well developed,
and unnecessarily makes the encode too slow. Hence the command line
default is changed to "good" quality. Also, the number of passes
default is changed to 2 passes as well, since 1-pass encoding is
not very efficient in VP9.

Besides, a number of VP9 defaults are set to the currently
recommended settings. With these changes, vpxenc
run with --codec=vp9 --kf-max-dist=9999 --cpu-used=0 should
work about the same as our borg results.
Note when the --cpu-used=0 option is dropped there will be a slight
difference in the output, because of a difference in the cpu-used
value for the first pass. Specifically, the default when unspecified
is to use cpu_used=1 for the first pass and cpu_used=0 for the
second pass. But when specified, both passes will use the cpu-used
value specified.

Note that this also changes the default for VP8 as being "good"
but other options stay unchanged.

Change-Id: Ib23c1a05ae2f36ee076c0e34403efbda518c5066
2013-08-21 12:41:26 -07:00
Dmitry Kovalev
3c43ec206c Renaming BLOCK_SIZE_TYPES constant to BLOCK_SIZES.
There will be another change set to rename BLOCK_SIZE_TYPE enum to
BLOCK_SIZE.

Change-Id: I8d1dfc873d6186fa5e554262f5169e929978085e
2013-08-09 17:47:32 -07:00
Yaowu Xu
bc484ebf06 fix unit test failure on win32 vs2008 build
The mix use of double type and simd code caused invalid values stored
in double variables, further caused unit tests to fail. The failures
were only observed on x86-win32-vs9 build with vs2008.

Change-Id: If0131754a3bf217a5ace303b7963e8f5162c34b5
2013-08-08 18:51:51 -07:00
Jim Bankoski
5b307886fb variance x86inc guards
also fixed bug in sad calcs

Change-Id: I6571fcbe37556c16ae32be66dc0fd879852aac1d
2013-08-06 14:17:13 -07:00
Jim Bankoski
c9126e0b30 sad + miscellaneous updates
Enable use_x86inc as a commandline option.  Fix Bug with sse2 when
x86inc is disabled. Adds Sad asm protection to x86inc protection

Change-Id: Iee0f9dd235ea10e8ace512eb362ba9bebe8c9df6
2013-08-06 12:16:04 -07:00
Jim Bankoski
62c6aa884d block error / x86inc mods
Change-Id: Icb607745634e10b9bac5019d06661ece09fcdb40
2013-08-06 06:23:38 -07:00
Jim Bankoski
a93b115cd6 reworked config for use_x86_inc
Support enabling it or disabling it.  Moved read out to configure.sh
so that its done once instead of in make and in config.

Change-Id: I73a9190cf31de9f03e8a577f478fa522f8c01c8b
2013-08-05 17:35:25 -07:00
James Zern
d115cd8b12 Merge changes I082959ab,Ib6932640
* changes:
  vp9/decoder: threaded row-based loop filter
  vp9/decoder: add thread worker
2013-08-05 16:07:09 -07:00
Jim Bankoski
a5a7322459 Merge "Begin to restrict x86inc.asm usage" 2013-08-05 14:17:49 -07:00
James Zern
a0ffa2794b vp9/decoder: threaded row-based loop filter
Currently the only threaded option for vp9 decode. Enabled when the
decoder config thread count is > 1.

Change-Id: I082959abac9e31aa4a38ed9fd68b94680e57f4df
2013-08-05 13:22:04 -07:00
James Zern
183b77d5ab vp9/decoder: add thread worker
vp9/decoder/vp9_thread.[hc]
Original source:
 http://git.chromium.org/webm/libwebp.git
 100644 blob b1615d0fb8d311666b2fa4561076c62d72c2e3ff  src/utils/thread.c
 100644 blob 13a61a4c84194c3374080cbf03d881d3cd6af40d  src/utils/thread.h

Local modifications:
 - s/WebP/VP9/g
 - camelcase functions -> lower with _'s

Change-Id: Ib6932640ee34f8b4782c6fbd15864a59d5d4c5fe
2013-08-05 13:21:13 -07:00
Jim Bankoski
c3809f3de5 Begin to restrict x86inc.asm usage
Chromium does not support 32bit builds for Mac which use x86inc.asm.
Make the files which include it work if 64bit or not PIC enabled
starting with vp9_copy_sse2.asm

Consolidate these targets in vp9_rtcd_defs.sh

Change-Id: If18f0b957a611efd085a3ee7d245cf1eb91e8248
2013-08-05 12:07:30 -07:00
Dmitry Kovalev
d007446b3f Replacing long block size enum values with shorter ones (2).
Change-Id: I428c4d42212b757112e3acfe5b81314cfbb5fd6b
2013-08-05 10:51:02 -07:00
James Zern
1197d6736c Merge "tests: silence a few type related warnings" 2013-07-22 11:50:22 -07:00
James Zern
4a688b26f7 Merge "cosmetics: idct_test.cc: fix formatting" 2013-07-22 11:49:23 -07:00
James Zern
104dbbbfd9 tests: silence a few type related warnings
Change-Id: If908328c1dbbb5bd84c57e30fab1cda1804933e4
2013-07-18 16:13:39 -07:00
James Zern
bae311772f cosmetics: tile_independence_test: fix formatting
Change-Id: Ifd48f796fa70fe1dc9b87a6f2bdc715bc0ea5ad3
2013-07-18 16:00:01 -07:00
James Zern
36b882eeb6 cosmetics: idct_test.cc: fix formatting
clang-format -style=Google

Change-Id: Ic85f2cd2a1d65d9cf18a0f8bc515c0a0f5161747
2013-07-18 15:42:06 -07:00
Johann
9ca66ec050 Merge "vp9_convolve8_neon placeholder" 2013-07-17 10:09:00 -07:00
Johann
59dc4e9cdd vp9_convolve8_neon placeholder
Call the individually optimized horizontal and vertical functions. This
implementation abuses the temp buffer.

This will be replaced with a custom optimized function.

Over 2x speedup.

Change-Id: I5b908d2a73d264e9810d6022bbff73207a3055dd
2013-07-17 08:39:27 -07:00
James Zern
70fe2b3ec3 Merge "Cosmetic changes in 4x4 and 8x8 fdct unit tests" 2013-07-16 12:55:42 -07:00
Johann
90ebfe621f Merge "vp9_convolve8_[horiz|vert]_avg" 2013-07-16 09:42:52 -07:00
Jingning Han
6094bf37c5 Cosmetic changes in 4x4 and 8x8 fdct unit tests
Make the codes consistent with conventions.

Change-Id: Id044ed8382f83a3c3f54f9edd569f00bcd0523db
2013-07-15 11:37:17 -07:00
Dmitry Kovalev
31a68bcdff Fixing vp9_get_pred_context_comp_ref_p function.
Adding missed parenthesis around boolean expressions. Bitstream is changed.
Regenerating test vectors.

Change-Id: I4cc00b761e9473f92f180a9fc3a0c607f0aaae56
2013-07-12 17:46:02 -07:00
Johann
a15bebfc0a vp9_convolve8_[horiz|vert]_avg
Super basic conversion from the other implementations. Any changes to
one should be trivial to copy over keep in sync.

Change-Id: I1720b4128e0aba4b2779e3761f6494f8a09d3ea8
2013-07-12 16:21:33 -07:00
Jingning Han
119decdee7 Merge "Cosmetic changes in 16x16 ADST/DCT unit test" 2013-07-11 21:52:39 -07:00
Jingning Han
29c45f31ee Cosmetic changes in 16x16 ADST/DCT unit test
Change-Id: Ic649e9e47d14d6f8cae0c443a425ea533a97ad8d
2013-07-11 11:37:38 -07:00
Johann
158c80cbb0 convolve8 optimizations for neon
Independent horizontal and vertical implementations.

Requires that blocks be built from 4x4 and [xy]_step_q4 == 16

6-10% improvement. CIF improved the least.

Change-Id: I137f5ceae4440adc0960bf88e4453e55a618bcda
2013-07-11 11:08:19 -07:00
Ronald S. Bultje
decead7336 Replace copy_memNxM functions with a generic copy/avg function.
Change-Id: I3ce849452ed4f08527de9565a9914d5ee36170aa
2013-07-10 18:27:24 -07:00
Jingning Han
82c415328c Merge "Add unit test for 16x16 forward ADST/DCT" 2013-07-10 11:16:39 -07:00
Jingning Han
cf768b2d80 Add unit test for 16x16 forward ADST/DCT
Unit tests on the functional accuracy of forward ADST/DCT.

Change-Id: I81afff866bdeacbd457b0af96993a035741657f6
2013-07-10 09:40:46 -07:00
Yaowu Xu
9ce6de195b Added a lossless test
It does encodings with min and max q set at 0, and check to make sure
output PSNR at MAX_PSNR (100).

Change-Id: Ia2418353cccf6e487204ea4ff874a7e71e55cb3e
2013-07-09 14:40:20 -07:00
Yaowu Xu
df5731273f Merge "Fix loopfilter bug" 2013-07-09 01:34:25 -07:00
John Koleszar
527fc5caf6 Fix loopfilter bug
In the rare case were 4x4 interior filtering was called for but no
8x8 or larger filtering takes place, the previous code was skipping
the filtering. This patch fixes the issue by including the interior
mask in the overall mask for the filter application loops.

Change-Id: I4a0b65056c64f97478827c2ff41e0914fc7779d0
2013-07-08 16:49:57 -07:00
Jim Bankoski
b0520b61ed new unit test for cpu-speed
Tests q0 ( lossless),  very high bitrate and low bitrates at cpu speed
0, 1 and 2.

Change-Id: I0c5cdca00acd8d01e7b13f124b3b08d4b1ae9f6d
2013-07-02 14:38:03 -07:00
James Zern
e247ab09a6 variance_test: add missing ClearSystemState...
...to recently added SubpelVarianceTest

Change-Id: I8775e39fd5dbfba81ad42b79b47bf6dd6ca8cc0e
2013-06-26 18:32:21 -07:00
Jingning Han
9b744ce35b Fix aligned memory allocation in unit tests
Change-Id: I38fac90e0ed25cb747453ab1d6396187cf5ef3b9
2013-06-26 11:59:46 -07:00
James Zern
e4f38c88da test/fdct*: fix some warnings
comment out some unused parameters and adjust the format to avoid:
./test/fdct4x4_test.cc|27| warning C4138: '*/' found outside of comment

Change-Id: I60f93b4c3cd7e8d61f0de80019f3404b40161f03
2013-06-26 11:09:08 -07:00
James Zern
66c7dffd5c tests/*source: test file pointer before reading
if the caller did not abort after an ASSERT failure in Begin()
FillFrame() would segfault.

Change-Id: I2d3f5a0918611bbd081be6f686dea19c56695073
2013-06-25 17:57:52 -07:00
James Zern
1c05e9de2c encode_test_driver: check for fatal failures
Make the base test be:
!(fatal || abort_) removing some redundancy in the encode tests

Change-Id: I8ffaf33fcf9a3030b38ea3e8eb94704cdc2fc920
2013-06-25 17:57:52 -07:00
Jingning Han
3f184bce7b Merge "Cosmetic changes in 4x4 fwd transform unit test" 2013-06-25 13:17:23 -07:00
Jingning Han
d52c359d43 Merge "Tune the rounding operations in 8x8 ADST/DCT sse2" 2013-06-25 13:17:05 -07:00
James Zern
4c0f283886 Merge "I420VideoSource: normalize framerate types" 2013-06-25 12:57:49 -07:00
James Zern
9d95993115 Merge "intrapred_test: add virtual dtor to IntraPredBase" 2013-06-25 12:56:40 -07:00
Jingning Han
0084e61d5f Tune the rounding operations in 8x8 ADST/DCT sse2
Improve the round-trip precision to meet the unit test setttings.

Change-Id: I303febae56b4b990ea3798b8ebed94c0510ecf79
2013-06-25 12:02:26 -07:00
Ronald S. Bultje
becf1691c4 Merge "Add SAD unit tests for all rectangular sizes." 2013-06-25 12:00:41 -07:00