Commit Graph

8441 Commits

Author SHA1 Message Date
Deb Mukherjee
35ee7f5f4b One-pass rate control fixes and cleanups
Fixes rate control partially in one-pass non-cbr case to achieve a
bitrate close to the one desired. Previous version was way off at
the high bitrate end.

Also includes several one-pass rate control cleanups and refactoring.

On derfraw300, one-pass encoding is now 19% off from two-pass speed
0 encoding, down from 35%.

Change-Id: I6f0dcdb7f8aa85a7e7cd3a3155d4f9d2a4d2f4f4
2014-02-04 10:51:27 -08:00
Adrian Grange
ee5cf3794e Remove duplicated code
Change-Id: I1b7c8165162e835e22cf164cce989c0cebd7ca95
2014-02-04 10:01:04 -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
Rui Ueyama
25eeac0518 Skip COMDAT sections when parsing COFF
Fixes https://code.google.com/p/chromium/issues/detail?id=339889
when building Clang-based ASan on Windows

Change-Id: Ib77d9593636f46827dbb77f087d407ec0f463fc7
2014-02-04 07:56:52 -08:00
James Zern
2b7338aca4 Merge "vp9_filter.h: rename interp_kernel type" 2014-02-03 23:12:28 -08:00
James Zern
0669cd57c3 Merge "vp9/encoder: fix function prototypes" 2014-02-03 23:09:26 -08:00
James Zern
0a0c2930c6 Merge changes I9ebfeb49,I2e2f9bb6
* changes:
  resize_test: use const_iterator where appropriate
  resize_test: silence a warning
2014-02-03 23:08:53 -08:00
James Zern
ac94505ed7 Merge changes Ic362b088,I1c65c2aa
* changes:
  vpxenc: find_mismatch/compare_img: normalize types
  vpxenc: cosmetics
2014-02-03 23:07:35 -08:00
Yaowu Xu
084c49ac79 Adjust speed feature for --rt
Moved a few features with low impact on compression form -5 to -4 and
increased adaptive_rd_thresh for -5.

Change-Id: Ib1b748168cc6ed7684ae4818499f3a536ae76253
2014-02-03 18:13:25 -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
Dmitry Kovalev
9fca1ce9c3 Replacing int_mv with MV.
Change-Id: I36b8b419be92171857e77a881da066424ff47af5
2014-02-03 17:30:59 -08:00
Dmitry Kovalev
3ffb204360 Merge "Removing ENC_DEBUG." 2014-02-03 17:11:52 -08:00
Yongzhe Wang
469b530fa3 Merge "Build fix with config internal stats" 2014-02-03 17:10:23 -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
Yongzhe Wang
513faceaed Build fix with config internal stats
Fixes a build issue when internal stats is enabled

Change-Id: I822cc60274e34b5f29ccbaa1f986fb9da6a8de4b
2014-02-03 14:35:48 -08:00
Dmitry Kovalev
282f36adc4 Merge "Removing "_short" suffix from arm transform file names." 2014-02-03 14:28:47 -08:00
Dmitry Kovalev
ae1c298733 Inlinging get_next_chkpts macro in vp9_mcomp.c.
Change-Id: I38ca35dccfb9051d08b026d75ba2f3a35adb0259
2014-02-03 14:26:36 -08:00
Dmitry Kovalev
a2baab8b85 Moving MBGRAPH_{MB, FRAME}_STATS structs to vp9_mbgraph.h.
Change-Id: I424c79735a7f3bbf6bf9c1391ff53aa78abae624
2014-02-03 12:35:06 -08:00
Yunqing Wang
cabfd505a4 Merge "Optimize bilinear sub-pixel filters in sse2" 2014-02-03 12:31:34 -08:00
Alex Converse
5470e0cfda Merge "Propgate constants through subexp routines." 2014-02-03 12:29:52 -08:00
Marco Paniconi
5437474c54 Merge "Revert "Layer based rate control for CBR mode."" 2014-02-03 12:28:47 -08:00
Marco Paniconi
7ec838edc4 Revert "Layer based rate control for CBR mode."
This reverts commit 6be2b750b8

Change-Id: Ic52acd98b37c3ba49d4999b463389eb564f49c4b
2014-02-03 12:28:32 -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
Alex Converse
41d3c989fd Propgate constants through subexp routines.
This avoids calls to get_unsigned_bits() with constants and
replaces hard to trace loops with simpler structures.

Change-Id: Ic1afc5a17d7df5bcfc85b76efda316b0bf118467
2014-02-03 11:55:46 -08:00
Dmitry Kovalev
f7c17b89f0 Merge "Cleaning up vp9_mcomp.{c, h}." 2014-02-03 10:53:21 -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
James Zern
ef951d1919 vp9/encoder: fix function prototypes
silences warnings about declarations not matching prototype

Change-Id: I30b9a24f78ebe3b9cc2bbfcd3a7363ba7c328e4d
2014-01-31 20:45:36 -08:00
Jim Bankoski
37e5325b9f Merge "static function convert to inline or global vp9_blockd.h" 2014-01-31 20:16:37 -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
Yaowu Xu
1c3fc43771 Merge "Set proper rtc interp_filter at block level" 2014-01-31 19:59:32 -08:00
Adrian Grange
61142301ac Merge "Typo & comment corrections" 2014-01-31 19:51:44 -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
James Zern
b1c23f7b4b Merge "libmkv: remove unused variable." 2014-01-31 19:29:06 -08:00
James Zern
f5962491d7 Merge "libmkv: Remove spurious declaration." 2014-01-31 18:48:36 -08:00
Yunqing Wang
7c6a49bada Merge "Rename a loopfilter parameter" 2014-01-31 18:33:33 -08:00
Dmitry Kovalev
f1761a74cd Merge "Cleaning up vp9_get_second_pass_params() function." 2014-01-31 18:15:33 -08:00
Dmitry Kovalev
3b3f1d8303 Cleaning up vp9_mcomp.{c, h}.
Change-Id: Ib71d9ed3f98e9468ad951bdc24c9ab565216eb38
2014-01-31 18:11:41 -08:00
Dmitry Kovalev
c2ca97caaf Merge "Cleaning up motion compensation code." 2014-01-31 17:33:40 -08:00
James Zern
389344945e Merge "remove duplicate const from vpx_codec_iface_t use" 2014-01-31 17:28:17 -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
Dmitry Kovalev
1ee4916794 Cleaning up vp9_get_second_pass_params() function.
Change-Id: Ie7b295190d8def447408e575ea0f3fa3c7eb7dd2
2014-01-31 16:49:33 -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
Yaowu Xu
f99eb936a4 Set proper rtc interp_filter at block level
Based on frame level settings.

Change-Id: I922c09c195ab055585eaa4f544c51aceb1203a7a
2014-01-31 16:32:19 -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