Commit Graph

401 Commits

Author SHA1 Message Date
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