Commit Graph

112 Commits

Author SHA1 Message Date
Minghai Shang
6b2e406123 [svc] Verify and store input two pass stats data in 2nd pass rc
Change-Id: Ib09eedc17ea0ea2eec75d78112e4786d98f382aa
2014-03-27 13:43:20 -07:00
Marco Paniconi
6b83884ba9 In-frame q adjustment for cyclic background refresh.
Activated using aq_mode=3.

Change-Id: Ied628b9e7bd0e88b0c75790276bca75b19eb5c07
2014-03-18 10:59:21 -07:00
Alex Converse
a56546961a Add an active map test.
Change-Id: I641a75dd75cd3c53a20eb4dbceb7a9b70a5a0e4d
2014-03-12 14:34:34 -07: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
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
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
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
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
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
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
Alex Converse
8a0b0a035a Add Y4mVideoSource to be used with 4:4:4 tests.
Change-Id: Ida3128e7e8a2ed333ac0b4ee92c23cb7dc1b7843
2014-01-16 15:23:08 -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
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
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
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
Frank Galligan
52b2d50db4 Move test vector list into a separate header.
Change-Id: I36f9033492f12fda7f9ce0e7a97a009aab9aab57
2013-12-11 23:15:39 -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
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
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
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
Joshua Litt
a782d63954 Decoder performance test added to unit tests
Change-Id: Id578a5fe2039631cefd82dc2ef98cc62683194c3
2013-11-18 17:12:05 -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
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
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
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
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
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
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
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
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
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
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
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
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
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
John Koleszar
858475a03a Fix loopfilter of leftmost 4x4 edges in SB
For cases where there's no transform set in bit 0 (the left edge of
the SB) but bit 0 of mask_4x4_int is set (the edge 4 pixels from the
left edge needs filtering), it was incorrectly being skipped before.
This situation only happens on the leftmost edge of the image, as
the edge at column 0 is intentionally skipped since there aren't
pixels to the left to read.

Change-Id: Ib2fbbcb40166e90af31b1a0e13b85b68c226cbd3
2013-06-24 08:26:00 -07:00
John Koleszar
0c8e13d2f8 Merge "Add some unaligned test vectors" 2013-06-21 16:31:18 -07:00
Ronald S. Bultje
25c588b1e4 Add subtract_block SSE2 version and unit test.
3% faster overall (3min35.0 to 3min28.5).

Change-Id: I5ff8a5c2c91586b6632ca5009ad1ea51ce94af5e
2013-06-21 09:35:37 -07:00