Deb Mukherjee [Thu, 23 Jan 2014 22:53:53 +0000 (14:53 -0800)]
Adds a stand-alone resize utility for testing
Adds a stand-alone resize_util app for testing. The app
will not be built in the shared library configurations
so as not to require the APIs to be exposed.
Change-Id: I4718c8bff1abf4e57c2ab2d84be8738fc0048200
Deb Mukherjee [Sat, 25 Jan 2014 17:16:57 +0000 (09:16 -0800)]
Multiple resize filters
Adds multiple filters in the 0.5-1.0 range in the last stage
of the resize functions to prevent over-smoothing/aliasing
Change-Id: I1a615adb16f0df5095790945c94b28b4d6a6fc48
Dmitry Kovalev [Sat, 25 Jan 2014 00:52:10 +0000 (16:52 -0800)]
Merge "Renaming INTERPOLATION_TYPE to INTERP_FILTER."
Frank Galligan [Sat, 25 Jan 2014 00:21:56 +0000 (16:21 -0800)]
Merge "Optimize vp9_tm_predictor_8x8_neon function"
Yaowu Xu [Sat, 25 Jan 2014 00:05:13 +0000 (16:05 -0800)]
Merge "change to avoid IOC"
Dmitry Kovalev [Fri, 24 Jan 2014 20:26:57 +0000 (12:26 -0800)]
Renaming INTERPOLATION_TYPE to INTERP_FILTER.
Corresponding renames:
subpel_kernel => interp_kernel
vp9_get_filter_kernel() => vp9_get_interp_kernel()
pred_filter_type => pred_interp_filter
adaptive_pred_filter_type => adaptive_pred_interp_filter
mcomp_filter_type => interp_filter
read_interp_filter_type() => read_interp_filter()
write_interp_filter_type() => write_interp_filter()
fix_mcomp_filter_type() => fix_interp_filter()
Change-Id: I1fa61fa1dc81ebbf043457c3ee2d8d4515bee6d3
Dmitry Kovalev [Fri, 24 Jan 2014 23:53:12 +0000 (15:53 -0800)]
Merge "Removing MODE_STATS."
Alex Converse [Fri, 24 Jan 2014 23:41:01 +0000 (15:41 -0800)]
Merge "Add some consts to vp9_calc_ss_err()."
Dmitry Kovalev [Fri, 24 Jan 2014 23:06:47 +0000 (15:06 -0800)]
Merge "Implementing simple API to read video files."
Dmitry Kovalev [Fri, 24 Jan 2014 22:47:59 +0000 (14:47 -0800)]
Merge "Removing unused inter_mode_counts field from CODING_CONTEXT."
Alex Converse [Fri, 24 Jan 2014 22:21:39 +0000 (14:21 -0800)]
Add some consts to vp9_calc_ss_err().
Also change its wrongly named dest parameter to reference.
Change-Id: Ide142dead31c9ccda1f09a48b221284369783fb7
Alex Converse [Fri, 24 Jan 2014 22:10:14 +0000 (14:10 -0800)]
Merge "Add a method to estimate loop filter level from quantizer and frame type."
Dmitry Kovalev [Fri, 24 Jan 2014 21:56:16 +0000 (13:56 -0800)]
Merge "Inlining IFMVCV macro."
Yaowu Xu [Fri, 24 Jan 2014 21:44:05 +0000 (13:44 -0800)]
Merge "Fixed integer overflow for large input video"
Dmitry Kovalev [Fri, 24 Jan 2014 21:31:57 +0000 (13:31 -0800)]
Removing unused inter_mode_counts field from CODING_CONTEXT.
Change-Id: I24ff8ab3d2c807906aa86974bcb4c540256206de
Yaowu Xu [Fri, 24 Jan 2014 20:06:39 +0000 (12:06 -0800)]
change to avoid IOC
SSE for a 64x64 block with 3 planes can go as high as 3*2^28. So left
shift by 4 may overflow 32 bit int.
Change-Id: I63c84aa56894788bb987299badabbd7cc6fd0be6
Dmitry Kovalev [Fri, 24 Jan 2014 20:29:50 +0000 (12:29 -0800)]
Merge "Cleaning up vp9_ratectl.c file."
Alex Converse [Thu, 23 Jan 2014 21:24:20 +0000 (13:24 -0800)]
Add a method to estimate loop filter level from quantizer and frame type.
Use this method with rt at speed -5.
Change-Id: If3bd6fad4c05ddde72131442dad191e4145047e7
Yaowu Xu [Fri, 24 Jan 2014 19:34:41 +0000 (11:34 -0800)]
Fixed integer overflow for large input video
The sum of squared mv components can go beyond int range for large
input resolution. This commit changed the type to int64 to avoid
overflow.
Change-Id: Ib21ea2817845cea1435f893064e6417c79c5bc64
Frank Galligan [Fri, 24 Jan 2014 19:31:23 +0000 (11:31 -0800)]
Merge "Revert external frame buffer code."
Dmitry Kovalev [Fri, 24 Jan 2014 19:20:09 +0000 (11:20 -0800)]
Implementing simple API to read video files.
New API is supposed to be used from example code. Current implementation
only supports IVF containers (will be extended to Y4M).
Change-Id: Ib7da87237690b1a28297bdf03bc41c6836a84b7e
Dmitry Kovalev [Fri, 24 Jan 2014 19:15:01 +0000 (11:15 -0800)]
Merge "Setup pre[0] buffer before calls to {first_pass, zz}_motion_search."
Dmitry Kovalev [Thu, 23 Jan 2014 22:14:31 +0000 (14:14 -0800)]
Cleaning up vp9_ratectl.c file.
Change-Id: I8cfa5d5eb2c1bbacd9b604cc5dc0a2cd2e5cebb8
Dmitry Kovalev [Thu, 23 Jan 2014 22:55:52 +0000 (14:55 -0800)]
Inlining IFMVCV macro.
Change-Id: I5173f996612e410d9cd495df9414d194b1ab18f3
Frank Galligan [Fri, 24 Jan 2014 19:07:14 +0000 (11:07 -0800)]
Optimize vp9_tm_predictor_8x8_neon function
Change-Id: Ia12aae491202098ff66366145aa0c3da38dc97e5
hkuang [Fri, 24 Jan 2014 18:48:44 +0000 (10:48 -0800)]
Merge "Add vp9_tm_predictor_16x16 neon implementation which is 3.5 times faster than C."
James Zern [Fri, 24 Jan 2014 18:47:00 +0000 (10:47 -0800)]
Merge changes I826655a7,I5164df72,Iba9b198c,Ide9a6846,I4f51ce85,I0e6aa00f,Ic334da9a,I252f5f8a,I7865db2d,I13b434b1
* changes:
test/: remove unnecessary extern "C"s
top-level: add extern "C" to headers
vpx_ports: add extern "C" to headers
vpx: add extern "C" to headers
vp9/encoder: add extern "C" to headers
vp9/decoder: add extern "C" to headers
vp9/common: add extern "C" to headers
vp8/encoder: add extern "C" to headers
vp8/decoder: add extern "C" to headers
vp8/common: add extern "C" to headers
hkuang [Tue, 21 Jan 2014 22:49:15 +0000 (14:49 -0800)]
Add vp9_tm_predictor_16x16 neon implementation
which is 3.5 times faster than C.
Change-Id: I24439ba7a2971829c11620f34848facf2c916678
Frank Galligan [Thu, 23 Jan 2014 22:59:00 +0000 (14:59 -0800)]
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
9e41d569d7c84dd9ca8f0047c15377a883945685.
Revert "Add external constants."
This reverts commit
bbf53047b03106e3c2e24b28cb836cc838db5ee8.
Revert "Add frame buffer lru cache."
This reverts commit
fbada948fa345e67acf9aa41a8f9a78f5dfe8648.
Conflicts:
vpxdec.c
Change-Id: I76fe42419923a6ea6c75d9997cbbf941d73d3005
Revert "Add support to pass in external frame buffers."
This reverts commit
10f891696bc4c972c13cc9fde2c53470501a03e2.
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
Adrian Grange [Fri, 24 Jan 2014 16:38:52 +0000 (08:38 -0800)]
Merge changes I24ad1f0f,I33be1366
* changes:
Reorder functions to avoid forward declaration
Rename set_scale_factors as set_ref_ptrs
Yaowu Xu [Fri, 24 Jan 2014 16:07:27 +0000 (08:07 -0800)]
Merge "Changed to prevent decoder crash"
Dmitry Kovalev [Fri, 24 Jan 2014 07:09:21 +0000 (23:09 -0800)]
Merge "Cleaning up vp9_firstpass.c file."
Dmitry Kovalev [Fri, 24 Jan 2014 06:37:36 +0000 (22:37 -0800)]
Merge "Removing get_scale_ref_frame_idx() function + cleanup."
James Zern [Sat, 18 Jan 2014 21:03:31 +0000 (13:03 -0800)]
test/: remove unnecessary extern "C"s
Change-Id: I826655a708010149de231ca31a2e3ba4f1842c0c
James Zern [Sat, 18 Jan 2014 20:16:11 +0000 (12:16 -0800)]
top-level: add extern "C" to headers
Change-Id: I5164df72aff84eca0ace56032c5373f04053c6a5
James Zern [Sat, 18 Jan 2014 20:16:11 +0000 (12:16 -0800)]
vpx_ports: add extern "C" to headers
Change-Id: Iba9b198ce78b3f8b644feba064f83abc247e75dd
Dmitry Kovalev [Fri, 24 Jan 2014 01:20:34 +0000 (17:20 -0800)]
vpxdec: grouping together code with the same if conditions
Change-Id: I5e546fce725b8c4722da5494e9423154e870fd58
James Zern [Sat, 18 Jan 2014 20:16:11 +0000 (12:16 -0800)]
vpx: add extern "C" to headers
Change-Id: Ide9a68466ed30453872465a6c2f9c414690df876
James Zern [Sat, 18 Jan 2014 20:16:11 +0000 (12:16 -0800)]
vp9/encoder: add extern "C" to headers
Change-Id: I4f51ce859a97bf1b8fd2b37ac585b7c643232b69
James Zern [Sat, 18 Jan 2014 20:16:11 +0000 (12:16 -0800)]
vp9/decoder: add extern "C" to headers
Change-Id: I0e6aa00f220280e22d30d098545265835d0c1079
James Zern [Sat, 18 Jan 2014 20:16:11 +0000 (12:16 -0800)]
vp9/common: add extern "C" to headers
Change-Id: Ic334da9aee968e33762c2b25d9fbad24c844b411
James Zern [Sat, 18 Jan 2014 20:16:11 +0000 (12:16 -0800)]
vp8/encoder: add extern "C" to headers
Change-Id: I252f5f8a5d5ada65da08699774a7bb1eb2bd5b2e
James Zern [Sat, 18 Jan 2014 20:16:11 +0000 (12:16 -0800)]
vp8/decoder: add extern "C" to headers
Change-Id: I7865db2d15ffa8cfa4de88714e48734c5ff9bb86
James Zern [Sat, 18 Jan 2014 20:16:11 +0000 (12:16 -0800)]
vp8/common: add extern "C" to headers
Change-Id: I13b434b1e6621e31962b08831c3587c039368c83
Yaowu Xu [Thu, 23 Jan 2014 23:43:08 +0000 (15:43 -0800)]
Changed to prevent decoder crash
The change prevent a decoder crash for invalid stream with negative
size.
Change-Id: I7411765f3524c783058fa3d436549be4e75d8969
Dmitry Kovalev [Thu, 23 Jan 2014 20:36:19 +0000 (12:36 -0800)]
Cleaning up vp9_firstpass.c file.
Change-Id: Ic352b0429d5784f9d78872a478fe6275ee7a56a0
Dmitry Kovalev [Thu, 23 Jan 2014 20:14:57 +0000 (12:14 -0800)]
Setup pre[0] buffer before calls to {first_pass, zz}_motion_search.
Change-Id: I9b94e741201eacb1982014724a532bdaae31f130
Yaowu Xu [Thu, 23 Jan 2014 17:03:56 +0000 (09:03 -0800)]
Revert "Removing unnecessary vp9_clear_system_state() calls."
This reverts commit
36406fdb07dfe08df1d49abe36dbf27469e42213.
Change-Id: I0bd31d03ce2a562d0624f2cd67593d0d25df4a54
James Zern [Thu, 23 Jan 2014 03:45:43 +0000 (19:45 -0800)]
Merge "cpplint: restore runtime/sizeof"
James Zern [Thu, 23 Jan 2014 03:45:28 +0000 (19:45 -0800)]
Merge "update cpplint"
Dmitry Kovalev [Thu, 23 Jan 2014 01:15:22 +0000 (17:15 -0800)]
Merge "Cleaning up vp9_refining_search_sad() function."
Dmitry Kovalev [Thu, 23 Jan 2014 01:10:37 +0000 (17:10 -0800)]
Removing get_scale_ref_frame_idx() function + cleanup.
Change-Id: Ic9472f361f8749a165aa464c2fa859681b66381b
James Zern [Thu, 23 Jan 2014 00:50:30 +0000 (16:50 -0800)]
Merge "Enforce effective motion vector search range"
Dmitry Kovalev [Thu, 23 Jan 2014 00:28:31 +0000 (16:28 -0800)]
Merge "Fixing simple_weight() function + cleanup."
Adrian Grange [Thu, 23 Jan 2014 00:20:39 +0000 (16:20 -0800)]
Reorder functions to avoid forward declaration
Change-Id: I24ad1f0f1cb0e991c476ea174db8ac1584929b02
Yaowu Xu [Wed, 22 Jan 2014 23:46:49 +0000 (15:46 -0800)]
Merge "changed to use vpx_integer.h for type definition"
hkuang [Wed, 22 Jan 2014 23:30:46 +0000 (15:30 -0800)]
Merge "Add tm_predictor_8x8 neon implementation."
hkuang [Wed, 22 Jan 2014 22:58:59 +0000 (14:58 -0800)]
Fix the vpxenc mismatch problem due to seperate
the boarder size for encoder and decoder.
Change-Id: I7291a9e06035d1533202d7a75ab40abfc1131342
hkuang [Sat, 18 Jan 2014 00:25:07 +0000 (16:25 -0800)]
Add tm_predictor_8x8 neon implementation.
Change-Id: I76c2720546b737cb63018a8ab6a3ff62a291786d
Adrian Grange [Wed, 22 Jan 2014 21:04:30 +0000 (13:04 -0800)]
Rename set_scale_factors as set_ref_ptrs
New name better describes what the function does.
Change-Id: I33be1366a81f058a9854b804bcde211061187dc7
Yaowu Xu [Wed, 22 Jan 2014 20:52:31 +0000 (12:52 -0800)]
changed to use vpx_integer.h for type definition
Change-Id: I7739849aa8dd5dcb0755858367fd3223587d107f
Alex Converse [Wed, 22 Jan 2014 20:42:49 +0000 (12:42 -0800)]
Merge "Expand the lossless and datarate tests to cover 4:4:4."
Dmitry Kovalev [Wed, 22 Jan 2014 20:38:08 +0000 (12:38 -0800)]
Merge "vpxdec: Disable writing of Y4M header when --md5 argument is specified."
Dmitry Kovalev [Wed, 22 Jan 2014 19:53:49 +0000 (11:53 -0800)]
vpxdec: Disable writing of Y4M header when --md5 argument is specified.
Change-Id: I2380b1b80f48496732b69c8255a485024d375f0f
Deb Mukherjee [Wed, 22 Jan 2014 19:46:43 +0000 (11:46 -0800)]
Merge "Adds a non-normative resize library to vp9 encoder"
Yaowu Xu [Wed, 22 Jan 2014 19:39:24 +0000 (11:39 -0800)]
Merge "Prevent invaid memory access"
Christian Duvivier [Wed, 22 Jan 2014 19:36:03 +0000 (11:36 -0800)]
Merge "arm: Use vreinterpret instead of a plain cast for converting between neon vector types"
Dmitry Kovalev [Wed, 22 Jan 2014 19:28:22 +0000 (11:28 -0800)]
Merge "Removing out_open() & out_close() functions from vpxdec."
Alex Converse [Fri, 17 Jan 2014 21:52:23 +0000 (13:52 -0800)]
Expand the lossless and datarate tests to cover 4:4:4.
Change-Id: I2dc7b3265d0a87d7a26c95b48e360c7c68cc7355
Adrian Grange [Wed, 22 Jan 2014 19:14:07 +0000 (11:14 -0800)]
Merge "Tidy up comments & remove commented out code."
Johann [Wed, 22 Jan 2014 19:10:51 +0000 (11:10 -0800)]
Merge "Match vp9_coefband_trans_* declarations"
hkuang [Wed, 22 Jan 2014 18:59:31 +0000 (10:59 -0800)]
Merge "Seperate the border size for encoder and decoder."
Adrian Grange [Wed, 22 Jan 2014 17:36:07 +0000 (09:36 -0800)]
Tidy up comments & remove commented out code.
Change-Id: I46dd5ce06f36362c6274511cd1531d93926aa9bc
Yaowu Xu [Wed, 22 Jan 2014 17:10:44 +0000 (09:10 -0800)]
Prevent invaid memory access
Reading second motion vector only when it has a second ref_frame
Change-Id: Ica72c1cd955832e15ceccda5e5a17b0bfcd83044
Dmitry Kovalev [Wed, 22 Jan 2014 17:04:07 +0000 (09:04 -0800)]
Removing out_open() & out_close() functions from vpxdec.
Change-Id: I60f2ce77638cf7d2116bc1e64b466942c76644e0
Dmitry Kovalev [Wed, 22 Jan 2014 16:57:13 +0000 (08:57 -0800)]
Fixing simple_weight() function + cleanup.
We used y_width/y_height instead of y_crop_width/y_crop_height.
Change-Id: Ia796494956f16d7a4085e043d58bdfe6de19abe7
Dmitry Kovalev [Wed, 22 Jan 2014 16:54:59 +0000 (08:54 -0800)]
Merge "Simplifying target_size_from_buffer_level() function."
Dmitry Kovalev [Wed, 22 Jan 2014 16:49:23 +0000 (08:49 -0800)]
Merge "Removing unnecessary vp9_clear_system_state() calls."
Adrian Grange [Wed, 22 Jan 2014 16:34:48 +0000 (08:34 -0800)]
Merge "Force show_frame=1 when show_existing_frame=1"
Dmitry Kovalev [Wed, 22 Jan 2014 10:39:52 +0000 (02:39 -0800)]
Removing unnecessary vp9_clear_system_state() calls.
Change-Id: I597645a15fff2d3a1104861a5c90f64394952e0b
Dmitry Kovalev [Wed, 22 Jan 2014 10:24:01 +0000 (02:24 -0800)]
Simplifying target_size_from_buffer_level() function.
Change-Id: I1d556ddf04ab0a98eadf412972a6977c1055446f
Dmitry Kovalev [Wed, 22 Jan 2014 09:51:08 +0000 (01:51 -0800)]
Merge "Cleaning up first_pass_motion_search() function."
Martin Storsjo [Wed, 22 Jan 2014 09:13:11 +0000 (11:13 +0200)]
arm: Use vreinterpret instead of a plain cast for converting between neon vector types
This fixes building with MSVC for arm.
Change-Id: Iffae0408e0c68760e87e96b9e17d9df8e8cadb1a
Dmitry Kovalev [Wed, 22 Jan 2014 07:12:42 +0000 (23:12 -0800)]
Merge "Cleaning up vp9_ratectrl.c."
Dmitry Kovalev [Wed, 22 Jan 2014 07:11:39 +0000 (23:11 -0800)]
Merge "Cleaning up vp9_setup_buffer_inter() function."
Dmitry Kovalev [Wed, 22 Jan 2014 07:01:27 +0000 (23:01 -0800)]
Merge "Replacing cpi->twopass with twopass."
Dmitry Kovalev [Wed, 22 Jan 2014 03:46:07 +0000 (19:46 -0800)]
Cleaning up vp9_setup_buffer_inter() function.
Change-Id: Ia63e2d05fa5dca3fb67788b0f1f28e9802ef27dd
Yaowu Xu [Wed, 22 Jan 2014 02:02:50 +0000 (18:02 -0800)]
Merge "remove complex rd modeling."
James Zern [Wed, 22 Jan 2014 01:59:26 +0000 (17:59 -0800)]
Merge changes I57a94d2f,Ifb305185
* changes:
test/: remove some unnecessary extern "C"s
rtcd.sh: add extern "C" to generated headers
James Zern [Wed, 22 Jan 2014 01:56:04 +0000 (17:56 -0800)]
cpplint: restore runtime/sizeof
dropped in r113; this check is helpful in this project
Change-Id: If810607b7cbf89ad701b4865d685f4b96aeee2dc
James Zern [Sat, 18 Jan 2014 04:18:48 +0000 (20:18 -0800)]
update cpplint
adds --linelength / --extensions and support for eclipse style output
latest from (r119):
http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py
Change-Id: I58be3a2d60daa9ba0d0bc1574fd13a2144c5d13d
Johann [Wed, 22 Jan 2014 01:06:07 +0000 (17:06 -0800)]
Match vp9_coefband_trans_* declarations
VS2013 Chromium builds failed with:
warning C4742: 'vp9_coefband_trans_8x8plus' has different alignment in
https://code.google.com/p/chromium/issues/detail?id=336620
Change-Id: I865f72bc23ae958531eeb5f497002c12e9a36fcd
Deb Mukherjee [Fri, 17 Jan 2014 20:56:36 +0000 (12:56 -0800)]
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
Alex Converse [Wed, 22 Jan 2014 00:31:14 +0000 (16:31 -0800)]
Merge "Have check_initial_width() take subsampling as arguments directly."
Yaowu Xu [Wed, 22 Jan 2014 00:04:35 +0000 (16:04 -0800)]
Merge "Enforce key frame placement"
hkuang [Fri, 10 Jan 2014 21:10:39 +0000 (13:10 -0800)]
Seperate the border size for encoder and decoder.
Encoder's boarder is still 160, while decoder's boarder will be 32.
With on demand and separate boarder buffer for boarder extension.
The decoder's boarder does not need to to 160 anymore.
Change-Id: I93d5aaff15a33a2213e9761eaa37c5f2870747db
Dmitry Kovalev [Thu, 16 Jan 2014 02:25:05 +0000 (18:25 -0800)]
Removing duplicated SAD calculation code.
Change-Id: I8d693371a29103769d5bed9d5f9cfe4f58ca3189
Yaowu Xu [Tue, 21 Jan 2014 22:07:45 +0000 (14:07 -0800)]
Enforce key frame placement
Change-Id: I2f85c6b058638571d68a7209779de8ca8168934f
Jingning Han [Tue, 21 Jan 2014 19:40:33 +0000 (11:40 -0800)]
Enforce effective motion vector search range
This commit explicitly enforces the effective motion vector range
in the motion search stage. The range needs to be the intersection
of UMV border, effective absolute motion vector value range, and
the target search area.
Change-Id: I1cf7c563e02b1086040dad6c1f4f6be1538635a6
Adrian Grange [Tue, 21 Jan 2014 18:39:39 +0000 (10:39 -0800)]
Force show_frame=1 when show_existing_frame=1
When showing a previously decoded frame, we need to
explicitly set the show_frame flag.
For the current frame being decoded this flag is
explicitly set in the frame header.
This should fix WebM Issue 696:
http://code.google.com/p/webm/issues/detail?id=696
Change-Id: I5751a809813f88d2ca6f62c47c3878475ff9ba8d