Commit Graph

2114 Commits

Author SHA1 Message Date
Tom Finegan
c49c75fde0 Merge "vp9/common/x86: Silence MSVC warnings in vp9_asm_stubs.c." 2014-02-11 14:39:27 -08:00
Frank Galligan
d51ca0db00 Merge "Add get release decoder frame buffer functions." 2014-02-11 08:19:37 -08:00
Dmitry Kovalev
803a5c67dd Merge "Encoder quantization cleanup." 2014-02-10 21:32:04 -08:00
Tom Finegan
60e91a92c3 vp9/common/x86: Silence MSVC warnings in vp9_asm_stubs.c.
Update filter_1dfunction definition to match usage.

Change-Id: Ie3cae13dc1ec3f5838c5f29d1c76a1a98a9217fa
2014-02-10 15:08:42 -08:00
Frank Galligan
e8e152799b Add get release decoder frame buffer functions.
This CL changes libvpx to call a function when a frame buffer
is needed for decode. Libvpx will call a release callback when
no other frames reference the frame buffer. This CL adds a
default implementation of the frame buffer callbacks. Currently
only VP9 is supported. A future CL will add support for
applications to supply their own frame buffer callbacks.

Change-Id: I1405a320118f1cdd95f80c670d52b085a62cb10d
2014-02-10 14:08:11 -08:00
Jim Bankoski
3c790ec0f8 Convert small static header functions to inline
Change-Id: I467b28346a0d8d4d8b96d6c05fc39c34eec26e5c
2014-02-10 07:56:45 -08:00
Jim Bankoski
b5f59ea280 Convert small static functions in header to inline..
Change-Id: Ic4fc01be7738fbabf8c7860dbe3476ab4caf5fc2
2014-02-10 07:56:38 -08:00
Jim Bankoski
7341725e13 Convert small header functions to inline
Change-Id: I4e5575f0d7ccfe2361b8cbf78e7dc079272c9f5f
2014-02-10 07:56:29 -08:00
Jim Bankoski
69f58b40e0 Convert header static functions to inline or make them global.
Change-Id: Ib26fbfef3505299f754e5af6c437a85d7746fc28
2014-02-10 07:39:12 -08:00
Jim Bankoski
6a9e58cb1d Converted functions in header to INLINE...
Change-Id: I00512c6cef3a4af8df57c7263ceb853fb2db8140
2014-02-09 20:12:04 -08:00
Jim Bankoski
18c8deabbf Convert functions to inline that are small .
Change-Id: I3b160e93d9319c8e1abda2a60f49f89c409d534b
2014-02-09 20:08:58 -08:00
Jim Bankoski
9768d0b184 Convert functions to inline that are in headers static.
Change-Id: If1ec3b64be327e8c48ec7efbacde208d2129fdb0
2014-02-09 20:06:35 -08:00
Jim Bankoski
99e4c508b2 Converted function to inline
Change-Id: Iaa4880c8a207cfea509608e1ef4593794b6b31f2
2014-02-09 20:04:54 -08:00
Jim Bankoski
3a3aa3f4e3 Converted short static functions to inline.
Change-Id: I859719d41ced2e35d2765b636e627bb7edc3651e
2014-02-09 19:58:54 -08:00
Tom Finegan
bf79a4da77 vp9/common: Silence MSVC warning in vp9_convolve.c.
Added cast to int to silence MSVC warning.

Change-Id: I9ef4709d2e4cf0db070d9e52385c1b3f138b00a5
2014-02-07 10:13:57 -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
Dmitry Kovalev
f32fa45cba Merge "Cleaning up vp9_get_pred_context_single_ref_p1()." 2014-02-05 18:38:38 -08:00
Dmitry Kovalev
4a1a7919da Merge "Removing "_1d" suffix from mips transform code." 2014-02-05 18:37:49 -08:00
Yunqing Wang
7ad56bf3c9 Merge "Optimize bilinear sub-pixel filters in ssse3" 2014-02-05 17:20:52 -08:00
Dmitry Kovalev
724fefb4cf Cleaning up vp9_get_pred_context_single_ref_p1().
Change-Id: I279343b474d7ff41afcf8f1493b6fbf716b51823
2014-02-05 11:48:01 -08:00
Dmitry Kovalev
a536237228 Merge "Cleaning up vp9_get_pred_context_single_ref_p2()." 2014-02-05 11:37:17 -08:00
Martin Storsjo
03bc491721 arm: Consistently use braces around doubleword arguments to vld
This isn't strictly necessary, but makes the file more consistent
with the other arm assembly source files.

Change-Id: I245c9677d89e0ab3f31991e473764858af35b180
2014-02-05 13:24:25 +02:00
Martin Storsjo
c2bb1aa544 arm: Use {} around quadword arguments to vld
This fixes building for iOS.

Change-Id: Ice082648c02a3faf93891f7ddc122875e2bdc9cb
2014-02-05 13:24:17 +02:00
James Zern
d89f861f4b vp9_systemdependent.h: relocate system includes
avoid wrapping msvc includes with extern "C"; this breaks some visual
studio builds of the (c++) tests.

Change-Id: Ie8062d55d4f4c049f6cd360a36da6a67607df132
2014-02-04 18:28:45 -08:00
Dmitry Kovalev
c31cf0d647 Merge "Moving x1 & y1 calculation under if condition." 2014-02-04 14:50:25 -08:00
hkuang
b0fec6ab4a With on demand border extension, clamping the MV
is not longer needed.

Change-Id: I40c37ef18c67ab27fc336694dfca3c43a87c47ca
2014-02-04 13:57:40 -08:00
Yunqing Wang
d1961e6fbf Optimize bilinear sub-pixel filters in ssse3
This patch added ssse3 optimization of bilinear sub-pixel filters.
The real time encoder was speeded up by ~1%.

Change-Id: Ie82e98976f411183cb8c61ab8d2ba0276e55a338
2014-02-04 08:01:55 -08:00
James Zern
2b7338aca4 Merge "vp9_filter.h: rename interp_kernel type" 2014-02-03 23:12:28 -08:00
Dmitry Kovalev
5daaff527e Moving x1 & y1 calculation under if condition.
Change-Id: Iae787d491f7cfe24855ef8f2d04e2c6c19350378
2014-02-03 18:03:17 -08:00
Dmitry Kovalev
64cca45c1d Cleaning up vp9_get_pred_context_single_ref_p2().
Change-Id: I294075acd3073c41e153079ff4462816898b3778
2014-02-03 17:46:34 -08:00
James Zern
cca4276dac vp9_filter.h: rename interp_kernel type
-> InterpKernel
avoids conflicts in variable names, fixing the build with various
toolchains.

broken since:
8691565 Removing subpix_fn_table struct.

Change-Id: Ib5f6fdbcb494a97b62c75b99d4d826ff25d4c981
2014-02-03 16:48:38 -08:00
Alex Converse
be1b41673f Merge "INLINE and reimplement get_unsigned_bits()." 2014-02-03 16:26:33 -08:00
Dmitry Kovalev
220b8f8644 Encoder quantization cleanup.
Change-Id: I633205c95f0e81ce0589580501d0be4425a3cb8e
2014-02-03 14:57:28 -08:00
Dmitry Kovalev
282f36adc4 Merge "Removing "_short" suffix from arm transform file names." 2014-02-03 14:28:47 -08:00
Alex Converse
ffd3d4834b INLINE and reimplement get_unsigned_bits().
The new implementation disagrees when the argument is equal to 2**n but
that is never called in practice and based on how it is used the new
implementation is correct in that case.

Change-Id: Ifbac4ad87d459fe6bd2fd0f400c0340f96617342
2014-02-03 12:16:22 -08:00
Yunqing Wang
2488cb34bc Optimize bilinear sub-pixel filters in sse2
Using bilinear filters could speed up the codec in real-time mode.
This patch added sse2 optimizations of bilinear filters that
operate on different-sized blocks.

Tests showed that the real-time encoder was speeded up by 3%.

Change-Id: If99a7ee4385fcc225c3ee7445d962d5752e57c3f
2014-02-03 10:34:45 -08:00
Marco Paniconi
6be2b750b8 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: I9cb6cce2494390ae6096ee17774af7fb9308bde7
2014-02-02 14:30:43 -08:00
Jim Bankoski
9dec7712ab static function convert to inline or global vp9_blockd.h
Change-Id: Ifdd951f24932839f06d1c700371662511dde6ebe
2014-01-31 19:50:40 -08:00
Yunqing Wang
7c6a49bada Merge "Rename a loopfilter parameter" 2014-01-31 18:33:33 -08:00
Dmitry Kovalev
c2ca97caaf Merge "Cleaning up motion compensation code." 2014-01-31 17:33:40 -08:00
Dmitry Kovalev
c49b08c9a1 Removing "_short" suffix from arm transform file names.
Change-Id: Iefe118f61a335e88821a21a9f50fb919212c1507
2014-01-31 17:19:02 -08:00
Dmitry Kovalev
6e4a03e844 Removing "_1d" suffix from mips transform code.
Unifying transform function names across libvpx, 1d is a redundant suffix.

Change-Id: I077c19f3bc7d4842ed7ca5814d77b3dce1728e13
2014-01-31 17:05:03 -08:00
Yunqing Wang
11a9366e3b Rename a loopfilter parameter
As pointed out by Dmitry and James, "partial" is a Microsoft-
specific c++ keyword, and it is renamed.

Change-Id: Ia0fc11ceb89e54b3195287f89f7e26edbbe9beb8
2014-01-31 16:30:04 -08:00
Dmitry Kovalev
88340b173b Merge "Combining fb_idx_ref_cnt[] and yv12_fb[] arrays." 2014-01-31 15:55:04 -08:00
Dmitry Kovalev
a8a2f22958 Merge "Renaming "mbskip" to "skip"." 2014-01-31 15:52:35 -08:00
Yunqing Wang
903801f1ef vp9 decoder: row-based multi-threaded loopfilter
Implemented parallel loopfiltering, which uses existing tile-
decoding threads. Each thread works on one row, and when that row
is loopfiltered, it moves to next unattended row. To ensure the
correct filtering order, threads are synchronized and one
superblock is filtered only if the superblocks it depends on are
filtered already.

To reduce synchronization overhead and speed up the decoder, we use
nsync > 1 for high resolution.

Performance tests:
1. on desktop:
8-tile 4k video using 8 threads, speedup: 70% - 80%
4-tile HD video using 4 threads, speedup: ~35%
2. on mobile device(Nexus 7):
4-tile 1080p video using 4 threads, speedup: 18% - 25%
4-tile 1080p video using 2 threads, speedup: 10% - 15%

Change-Id: If54b4a11960dd706c22d5ad145ad94156031f36a
2014-01-31 14:44:53 -08:00
Yaowu Xu
96dc80da61 Merge "create super fast rtc mode" 2014-01-29 16:36:20 -08:00
Dmitry Kovalev
b107f2c470 Renaming "mbskip" to "skip".
Change-Id: I27a30b43eae026a77f92958e2238d02d9cdf7832
2014-01-29 14:48:42 -08:00
Dmitry Kovalev
5670f1e2a8 Merge "Finally removing vp9_setup_interp_filters() function." 2014-01-29 12:54:21 -08:00