platform/upstream/libvpx.git
9 years agoRemove vp9_temporal_denoising from experimental list.
Marco [Thu, 13 Nov 2014 01:34:54 +0000 (17:34 -0800)]
Remove vp9_temporal_denoising from experimental list.

Change-Id: I7a941c0efbb5912aa97348da6fd1aba28df4482a

9 years agoMerge "Fix SSSE3 partial_idct_test detection"
Johann [Wed, 12 Nov 2014 20:20:36 +0000 (12:20 -0800)]
Merge "Fix SSSE3 partial_idct_test detection"

9 years agoMerge "Use normal rate_correction_factor for gf in CBR mode"
Yaowu Xu [Wed, 12 Nov 2014 16:00:26 +0000 (08:00 -0800)]
Merge "Use normal rate_correction_factor for gf in CBR mode"

9 years agoMerge "Vidyo: Support for one-pass rc-enabled SVC encoder"
Deb Mukherjee [Wed, 12 Nov 2014 00:03:11 +0000 (16:03 -0800)]
Merge "Vidyo: Support for one-pass rc-enabled SVC encoder"

9 years agoMerge "AQ1 - remove first pass weights."
Paul Wilkins [Tue, 11 Nov 2014 17:17:33 +0000 (09:17 -0800)]
Merge "AQ1 - remove first pass weights."

9 years agoUse normal rate_correction_factor for gf in CBR mode
Yaowu Xu [Mon, 10 Nov 2014 19:46:58 +0000 (11:46 -0800)]
Use normal rate_correction_factor for gf in CBR mode

I0c5f010 changed to allow update golden reference buffer in CBR mode,
this commit changes the use of rate_correction_factor for those frames
to be aligned with the new usage. This commit attempts to solve two
issues:

a. Initialization of rate correction factor for Golden Frame
Prior to this patch, even the regular inter frame has been update
the rate correction factor based on content and encoding results,
the first golden frame would still use the ininitialized value
that can be way off.

b. Allowing rate correction factor update to be slightly faster
Prior to this patch, when the rate correction factor is off, the
update to the factor is too slow, the factor could not get close
to a semi-correct value even after many frames.

The commit helps all clips in psnr/ssim metric, but especially to
a few clip in RTC set that rate correction was way off. For example
thaloundeskmtgvga gained about .5dB for both overall/average psnr.

Change-Id: I0be5c41691be57891d824505348b64be87fa3545

9 years agoVidyo: Support for one-pass rc-enabled SVC encoder
Deb Mukherjee [Fri, 7 Nov 2014 19:01:53 +0000 (11:01 -0800)]
Vidyo: Support for one-pass rc-enabled SVC encoder

Adds support for one-pass rc-enabled SVC encoder with callbacks for
getting per-layer packets.
- the callback function registration is implemented as an encoder
control function.
- if the callback function is not registered, the old way of
aggregating packets with superframe will take effect.
- one more control function “VP9E_GET_SVC_LAYER_ID” has been
implemented to get the temporal/spatial id from the encoder
within the callback. This can be used to get the ids to put on RTP
packet.

Change-Id: I1a90e00135dde65da128b758e6c00b57299a111a

9 years agoMerge "Iadst transforms to use internal low precision"
Deb Mukherjee [Mon, 10 Nov 2014 23:39:46 +0000 (15:39 -0800)]
Merge "Iadst transforms to use internal low precision"

9 years agoMerge "Remove asm offset dependencies"
Johann [Mon, 10 Nov 2014 18:22:09 +0000 (10:22 -0800)]
Merge "Remove asm offset dependencies"

9 years agoMerge "Fix LAST SKIP when considering GOLDEN"
Alex Converse [Sat, 8 Nov 2014 00:21:37 +0000 (16:21 -0800)]
Merge "Fix LAST SKIP when considering GOLDEN"

9 years agoIadst transforms to use internal low precision
Deb Mukherjee [Thu, 6 Nov 2014 20:50:33 +0000 (12:50 -0800)]
Iadst transforms to use internal low precision

Change-Id: I266777d40c300bc53b45b205144520b85b0d6e58
(cherry picked from commit a1b726117f5470f227bc90cd030b7d25045dc510)

9 years agoTest name changes to use SSE/SSE2 exactly
Deb Mukherjee [Fri, 7 Nov 2014 18:19:46 +0000 (10:19 -0800)]
Test name changes to use SSE/SSE2 exactly

Change-Id: I3b5a478d198868c2796366f0ac59d0e2036308b8

9 years agoFix LAST SKIP when considering GOLDEN
Alex Converse [Fri, 7 Nov 2014 21:44:17 +0000 (13:44 -0800)]
Fix LAST SKIP when considering GOLDEN

Change-Id: I39d9f13fa34984ee9dad0c4f303ef672635f420e

9 years agoMerge "Add intra complexity and brightness weight to first pass."
Paul Wilkins [Fri, 7 Nov 2014 17:22:12 +0000 (09:22 -0800)]
Merge "Add intra complexity and brightness weight to first pass."

9 years agoMerge "Change the use of a reserved color space entry"
Yaowu Xu [Fri, 7 Nov 2014 14:24:59 +0000 (06:24 -0800)]
Merge "Change the use of a reserved color space entry"

9 years agoAQ1 - remove first pass weights.
Paul Wilkins [Fri, 7 Nov 2014 14:11:29 +0000 (14:11 +0000)]
AQ1 - remove first pass weights.

Removed redundant weighting function tied for AQ1 from first
pass code.

Improvment in baseline AQ1 results:-
Derf  opsnr +0.142% SSIm +0.258%
YT  opsnr +0.173% SSIm +0.3%

Change-Id: I16ef91caf2d7f302cd5940cc5e2626d48ebcb212

9 years agoChange the use of a reserved color space entry
Yaowu Xu [Fri, 7 Nov 2014 03:09:30 +0000 (19:09 -0800)]
Change the use of a reserved color space entry

This commit rename a reserved color space entry to BT_2020, it intends
to provide support for VP9 bitstream to pass along the color space
type defined in BT.2020(Rec.2020)

please note this entry does not have any effect on encoding/decoding
behavior, but allow applications to the pass the information along
from encoding end to decoding end.

Change-Id: I4678520e89141ea5e8900f7bd1c0e95b710b7091

9 years agoRemove asm offset dependencies
Johann [Thu, 31 Jul 2014 21:19:31 +0000 (14:19 -0700)]
Remove asm offset dependencies

The obj_int_extract code is no longer worth maintaining. It creates
significant issues when adapting for different build systems and no
longer offers as significant of a performance benefit due to
improvements in intrinsics.

Source files will remain until the various third-party builds are updated.

The neon fast quantizer has been moved to intrinsics. The armv6 version
has been removed because so few remaining targets require it.

Compilers and processors have improved significantly since the
pack_tokens code was written. The assembly is no longer faster than the
C code.

pack_tokens were the only optimizations for the armv5te targets so the targets
will be removed after the test infrastructure has been updated.

BUG=710

Change-Id: Ic785b167cd9f95eeff31c7c76b7b736c07fb30eb

9 years agoMerge "Modify the frame context memory deallocation"
Yunqing Wang [Thu, 6 Nov 2014 21:08:57 +0000 (13:08 -0800)]
Merge "Modify the frame context memory deallocation"

9 years agoMerge "Remove unused is_background function"
Jingning Han [Thu, 6 Nov 2014 20:03:15 +0000 (12:03 -0800)]
Merge "Remove unused is_background function"

9 years agoMerge "Rework cut-off decisions in cyclic refresh aq mode"
Jingning Han [Thu, 6 Nov 2014 20:03:07 +0000 (12:03 -0800)]
Merge "Rework cut-off decisions in cyclic refresh aq mode"

9 years agoModify the frame context memory deallocation
Yunqing Wang [Thu, 30 Oct 2014 01:38:18 +0000 (18:38 -0700)]
Modify the frame context memory deallocation

This patch was to fix the vpxdec fuzzing3 test failure. When an
error occurs, setjmp() is invoked, which calls the decoder
removing routine. In multiple thread situation, other threads
could try to access the frame context memory that is already
deallocated, thus causing a segfault.

An invalid unit test was added for this issue.

Change-Id: Ida7442154f3d89759483f0f4fe0324041fffb952

9 years agoAdd intra complexity and brightness weight to first pass.
Paul Wilkins [Tue, 4 Nov 2014 13:13:39 +0000 (13:13 +0000)]
Add intra complexity and brightness weight to first pass.

The aim of this patch is to apply a positive weighting to
frames that have a significant number of blocks that are
of low spatial complexity and are dark. The rationale behind
this is that artifacts tend to be more visible in such frames.

In this patch the weight is only applied in regard to the distribution
of bits between frames. Hence if all the frames share similar
characteristics (as is the case for most of our short test clips) there
will be little or no net effect.

However, the effect can be seen on some longer form test content.

For example Tears of steel baseline test:
2323.09 Kbit/s opsnr 39.915 ssim 74.729
With this patch:-
2213.34 Kbit/s opsnr 39.963 ssim 74.808
(Sligtly better metrics and about 5% smaller)

The weighting may well need some further tuning along side changes
to the aq modes.

Change-Id: Ieced379bca03938166ab87b2b97f55d94948904c

9 years agoRemove unused is_background function
Jingning Han [Tue, 4 Nov 2014 22:42:07 +0000 (14:42 -0800)]
Remove unused is_background function

Change-Id: Ia540eac5f066ae95280c2f898370eddf0110c279

9 years agoRework cut-off decisions in cyclic refresh aq mode
Jingning Han [Tue, 4 Nov 2014 22:32:04 +0000 (14:32 -0800)]
Rework cut-off decisions in cyclic refresh aq mode

This commit removes the cyclic aq mode dependency on
in_static_area and reworks the corresponding cut-off thresholds.
It improves the compression performance of speed -5 by 1.47% in
PSNR and 2.07% in SSIM, and the compression performance of speed
-6 by 3.10% in PSNR and 5.25% in SSIM. Speed wise, about 1% faster
in both settings at high bit-rates.

Change-Id: I1ffc775afdc047964448d9dff5751491ba4ff4a9

9 years agoMerge "Totally remove prev_mi in VP9 decoder."
hkuang [Thu, 6 Nov 2014 01:48:47 +0000 (17:48 -0800)]
Merge "Totally remove prev_mi in VP9 decoder."

9 years agoTotally remove prev_mi in VP9 decoder.
hkuang [Mon, 3 Nov 2014 19:23:22 +0000 (11:23 -0800)]
Totally remove prev_mi in VP9 decoder.

This will save the memory and improve the decode speed due to
removing unnecessary memset of big prev_mi array for
all the key frames.

Decoding a all key frames 1080p video shows speed improve around 2%.

Change-Id: I6284a445c1291056e3c15135c3c20d502f791c10

9 years agoMerge "Fix visual studio 2013 compiler warnings"
Yaowu Xu [Wed, 5 Nov 2014 23:34:13 +0000 (15:34 -0800)]
Merge "Fix visual studio 2013 compiler warnings"

9 years agoMerge "vp8 quantize is now in intrinsics, not asm"
Johann [Wed, 5 Nov 2014 22:05:26 +0000 (14:05 -0800)]
Merge "vp8 quantize is now in intrinsics, not asm"

9 years agoFix visual studio 2013 compiler warnings
Yaowu Xu [Wed, 5 Nov 2014 19:29:21 +0000 (11:29 -0800)]
Fix visual studio 2013 compiler warnings

For configured with --enable-vp9-highbitdepth

Change-Id: I2b181519d7192f8d7a241ad5760c3578255f24e6

9 years agoMerge "Simplify interface of write_selected_tx_size and read_tx_size"
Hui Su [Wed, 5 Nov 2014 21:33:09 +0000 (13:33 -0800)]
Merge "Simplify interface of write_selected_tx_size and read_tx_size"

9 years agoFix SSSE3 partial_idct_test detection
Johann [Wed, 5 Nov 2014 20:56:04 +0000 (12:56 -0800)]
Fix SSSE3 partial_idct_test detection

The test filter is not a prefix matcher. It requires test type to
contain no more than the optimization type. In this example, SSSE3_64
fails to match and the test is not skipped even when SSSE3 is not
available.

Change-Id: Ia74229a167c88da4e6da169012a7a77d438c3f75

9 years agovp8 quantize is now in intrinsics, not asm
Johann [Wed, 5 Nov 2014 18:58:26 +0000 (10:58 -0800)]
vp8 quantize is now in intrinsics, not asm

Change-Id: Ie106c5335c9ba5aac81e23150e7026fb6ea6196e

9 years agoMerge "Skip ref frame mode search conditioned on predicted mv residuals"
Jingning Han [Wed, 5 Nov 2014 20:04:10 +0000 (12:04 -0800)]
Merge "Skip ref frame mode search conditioned on predicted mv residuals"

9 years agoquantize_test: delete QuantizePair related tests
James Zern [Wed, 5 Nov 2014 12:11:34 +0000 (13:11 +0100)]
quantize_test: delete QuantizePair related tests

functions were removed in:
2134eb2 Remove pair quantization

fixes ARM build

Change-Id: I634de50c2752408381d70afb0f5088b61052853c

9 years agoMerge "Remove pair quantization"
Johann [Wed, 5 Nov 2014 00:29:19 +0000 (16:29 -0800)]
Merge "Remove pair quantization"

9 years agoMerge "vp8 quantization -> intrinsics"
Johann [Wed, 5 Nov 2014 00:28:46 +0000 (16:28 -0800)]
Merge "vp8 quantization -> intrinsics"

9 years agoSimplify interface of write_selected_tx_size and read_tx_size
Hui Su [Fri, 31 Oct 2014 00:56:36 +0000 (17:56 -0700)]
Simplify interface of write_selected_tx_size and read_tx_size

Change-Id: Ia2b2a895deefaaf7b34bf26df86add56dbab082c

9 years agoMerge "[spatial svc] Make spatial svc working for one pass rate control"
Minghai Shang [Tue, 4 Nov 2014 23:57:16 +0000 (15:57 -0800)]
Merge "[spatial svc] Make spatial svc working for one pass rate control"

9 years agoMerge "Fix the memory leak due to missing free frame_mvs."
hkuang [Tue, 4 Nov 2014 22:43:47 +0000 (14:43 -0800)]
Merge "Fix the memory leak due to missing free frame_mvs."

9 years agoMerge "Avoid divide-by-zero in vp8 initialization"
Johann [Tue, 4 Nov 2014 22:28:45 +0000 (14:28 -0800)]
Merge "Avoid divide-by-zero in vp8 initialization"

9 years agoFix the memory leak due to missing free frame_mvs.
hkuang [Mon, 3 Nov 2014 20:25:18 +0000 (12:25 -0800)]
Fix the memory leak due to missing free frame_mvs.

Change-Id: I2ceee7341d906259002c0ea31ea009ae32c04bfd

9 years agoAvoid divide-by-zero in vp8 initialization
Johann [Tue, 4 Nov 2014 18:46:24 +0000 (10:46 -0800)]
Avoid divide-by-zero in vp8 initialization

Check that the numerator is not zero. If it is, guess 30fps.

Fixes a clang IOC error in the quantize test. It's very unlikely for
this to occur in the wild because the setup in the quantize test is very
nonstandard.

Change-Id: Icdab7b81d4e168d3423e14db20787f960052e0c3

9 years ago[spatial svc] Make spatial svc working for one pass rate control
Minghai Shang [Tue, 4 Nov 2014 19:46:48 +0000 (11:46 -0800)]
[spatial svc] Make spatial svc working for one pass rate control

Change-Id: Ibd9114485c3d747f9d148f64f706bf873ea473ac

9 years agoAlign structures in quantize test
Johann [Tue, 4 Nov 2014 18:32:51 +0000 (10:32 -0800)]
Align structures in quantize test

MACROBLOCKD structures require alignment.

This fixes an issue caught by clang IOC.

Change-Id: Ibb5bcc122f531b4302a87e1144e4feaf46c1de64

9 years agoAdd some indirection to the quantize test
Johann [Tue, 4 Nov 2014 16:20:25 +0000 (08:20 -0800)]
Add some indirection to the quantize test

Visual Studio and XCode require the address of the functions be passed.

Change-Id: Id39cab8e50061fdc6ac6018371a3a158c713e14b

9 years agoMerge "Refactor sub-pixel motion search unit"
Jingning Han [Tue, 4 Nov 2014 17:11:15 +0000 (09:11 -0800)]
Merge "Refactor sub-pixel motion search unit"

9 years agoSkip ref frame mode search conditioned on predicted mv residuals
Jingning Han [Mon, 3 Nov 2014 19:36:34 +0000 (11:36 -0800)]
Skip ref frame mode search conditioned on predicted mv residuals

This commit makes the RTC coding mode to conditionally skip the
reference frame mode search, when the predicted motion vector of
the current reference frame gives more than two times sum of
absolute difference compared to that of other reference frames.

It reduces the runtim by 1% - 4% for speed -5 and -6. The average
compression performance is improved by about 0.1% in both settings.

It is of particular benefit to light change scenarios. The
compression performance of test clip mmmovingvga.y4m is improved by
6.39% and 15.69% at high bit rates for speed -5 and -6, respectively.

Speed -5
vidyo1 16555 b/f, 40.818 dB, 12422 ms ->
       16552 b/f, 40.804 dB, 12100 ms

nik    33211 b/f, 39.138 dB, 11341 ms ->
       33228 b/f, 39.139 dB, 11023 ms

mmmoving 33263 b/f, 40.935 dB, 13508 ms ->
         33256 b/f, 41.068 dB, 12861 ms

Speed -6
vidyo1 16541 b/f, 40.227 dB, 8437 ms ->
       16540 b/f, 40.220 dB, 8216 ms

nik    33272 b/f, 38.399 dB, 7610 ms ->
       33267 b/f, 38.414 dB, 7490 ms

mmmoving 33255 b/f, 40.555 dB, 7523 ms ->
         33257 b/f, 40.975 dB, 7493 ms

Change-Id: Id2aef76ef74a3cba5e9a82a83b792144948c6a91

9 years agoMerge "WORKAROUND FIX FOR GCC4.9.1"
Yunqing Wang [Tue, 4 Nov 2014 00:56:38 +0000 (16:56 -0800)]
Merge "WORKAROUND FIX FOR GCC4.9.1"

9 years agoMerge "vp8 quantize test"
Johann [Mon, 3 Nov 2014 23:45:21 +0000 (15:45 -0800)]
Merge "vp8 quantize test"

9 years agoMerge "Allow disable of refresh golden for more than 1 layer encoding."
Marco [Mon, 3 Nov 2014 22:38:05 +0000 (14:38 -0800)]
Merge "Allow disable of refresh golden for more than 1 layer encoding."

9 years agovp8 quantize test
Johann [Mon, 20 Oct 2014 17:04:45 +0000 (10:04 -0700)]
vp8 quantize test

Test for Regular, Fast and Pair quantization

Change-Id: I0a26c164afe632db869099402189826c0d43f9a2

9 years agoRefactor sub-pixel motion search unit
Jingning Han [Sun, 2 Nov 2014 18:45:32 +0000 (10:45 -0800)]
Refactor sub-pixel motion search unit

This commit unfolds the legacy macro definitions used in the
sub-pixel motion search and refactors the operational flow for
later optimizations.

Change-Id: I3e3f770cad961d03d1a6eb0b2a0186cc77eaf2b8

9 years agoMerge "Fix the THR_MODES array used in vp9_pick_inter_mode"
Jingning Han [Mon, 3 Nov 2014 16:46:42 +0000 (08:46 -0800)]
Merge "Fix the THR_MODES array used in vp9_pick_inter_mode"

9 years agoMerge "Fix speed 7 and speed 12 for rt"
Yaowu Xu [Mon, 3 Nov 2014 16:02:58 +0000 (08:02 -0800)]
Merge "Fix speed 7 and speed 12 for rt"

9 years agoAllow disable of refresh golden for more than 1 layer encoding.
Marco [Mon, 3 Nov 2014 06:10:56 +0000 (22:10 -0800)]
Allow disable of refresh golden for more than 1 layer encoding.

The current logic was allowing for disabling golden refresh only
for two pass svc encoding. This change disables it as long as
more than 1 layer encoding is used (for example temporal layers under 1pass CBR).

Change-Id: I4dc5204a7ad365c821ec7963e93b59da82e1826b

9 years agoFix the THR_MODES array used in vp9_pick_inter_mode
Jingning Han [Sun, 2 Nov 2014 20:18:53 +0000 (12:18 -0800)]
Fix the THR_MODES array used in vp9_pick_inter_mode

Fix the alignment of entries fo intra prediction modes.

Change-Id: Ie32ad87cf90694efd591a4b1cc29c916c4cd56f7

9 years agoWORKAROUND FIX FOR GCC4.9.1
levytamar82 [Thu, 16 Oct 2014 23:56:37 +0000 (16:56 -0700)]
WORKAROUND FIX FOR GCC4.9.1

In the function mb_lpf_horizontal_edge_w_avx2_16 the usage of the intrinsic
_mm256_cvtepu8_epi16 cause a compiler bug in gcc 4.9.1.
until it will be fixed I created a workaround that create the up convert by
using broadcast128+shuffle.
The bug was reported here:
https://code.google.com/p/webm/issues/detail?id=867

Change-Id: I73452e6806f42e0fadcde96b804ea3afa7eeb351

9 years agoFix speed 7 and speed 12 for rt
Yaowu Xu [Sat, 1 Nov 2014 00:27:54 +0000 (17:27 -0700)]
Fix speed 7 and speed 12 for rt

A recent change has introduced big quality drops for speed 7 and 12
for --rt mode. The change reverted the big drop and improved quality
by 9.5% for speed 7 and 13.4% for speed 12.

Change-Id: I07b82e3bb6002a73af486a083458c88877bdad01

9 years agoBind motion vectors with frame buffer structure.
hkuang [Mon, 27 Oct 2014 23:19:04 +0000 (16:19 -0700)]
Bind motion vectors with frame buffer structure.

This will save a lot of memory for decoder due to removing of prev_mi,
but prev_mi is still needed in encoder. So this will increase a little bit
memory for encoder.

Change-Id: I24b2f1a423ebffa55a9bd2fcee1077dac995b2ed

9 years agoRemove pair quantization
Johann [Fri, 31 Oct 2014 20:42:55 +0000 (13:42 -0700)]
Remove pair quantization

The intrinsics version of the pair quant is slower than running it
individually.

Change-Id: I7b4ea8599d4aab04be0a5a0c59b8b29a7fc283f4

9 years agovp8 quantization -> intrinsics
Johann [Mon, 20 Oct 2014 23:03:28 +0000 (16:03 -0700)]
vp8 quantization -> intrinsics

Use intrinsics for neon quantization. Slight loss (<5%) of performance
compared to the assembly. Roughly 10x faster on arm64 because that was
running C code before.

Change-Id: I7cf5242d8f29b7eab5bca6a1c20c89c9fc9ca66d

9 years agoMerge "Fix mode index use case in vp9_pick_inter_mode"
Jingning Han [Fri, 31 Oct 2014 15:55:40 +0000 (08:55 -0700)]
Merge "Fix mode index use case in vp9_pick_inter_mode"

9 years agoMerge "Refactor vp9_update_rd_thresh_fact"
Jingning Han [Fri, 31 Oct 2014 15:55:28 +0000 (08:55 -0700)]
Merge "Refactor vp9_update_rd_thresh_fact"

9 years agoMerge "Rework pred pixel buffer system in non-RD coding mode"
Jingning Han [Fri, 31 Oct 2014 15:55:24 +0000 (08:55 -0700)]
Merge "Rework pred pixel buffer system in non-RD coding mode"

9 years agoFix mode index use case in vp9_pick_inter_mode
Jingning Han [Thu, 30 Oct 2014 02:30:12 +0000 (19:30 -0700)]
Fix mode index use case in vp9_pick_inter_mode

This improves coding performance of speed -5 and -6 by 0.6%,
respectively.

Change-Id: Ic5a7746a88c73285f0b14333d35dc16b02152c25

9 years agoRefactor vp9_update_rd_thresh_fact
Jingning Han [Thu, 30 Oct 2014 00:37:54 +0000 (17:37 -0700)]
Refactor vp9_update_rd_thresh_fact

Reduce the scope of function parameters.

Change-Id: Ifef2cfb559908a97498ffdbd6ea53da1cd45a73c

9 years agoRework pred pixel buffer system in non-RD coding mode
Jingning Han [Wed, 29 Oct 2014 23:37:16 +0000 (16:37 -0700)]
Rework pred pixel buffer system in non-RD coding mode

This commit makes the inter prediction buffer system to support
hybrid partition search. It reduces the runtime of speed -5 by
about 3%. No compression performance change.

vidyo1 720p 1000 kbps
11831 ms -> 11497 ms

nik 720p 1000 kbps
10919 ms -> 10645 ms

Change-Id: I5b2da747c6395c253cd074d3907f5402e1840c36

9 years agoMerge "Move the definition of switchable filter numbers into enum INTERP_FILTER;...
Hui Su [Thu, 30 Oct 2014 18:05:04 +0000 (11:05 -0700)]
Merge "Move the definition of switchable filter numbers into enum INTERP_FILTER; Modify the macro ADD_MV_REF_LIST and IF_DIFF_REF_FRAME_ADD_MV."

9 years agoMerge "Combine vp9_encode_block_intra and encode_block_intra"
Hui Su [Thu, 30 Oct 2014 18:02:31 +0000 (11:02 -0700)]
Merge "Combine vp9_encode_block_intra and encode_block_intra"

9 years agoMerge "Remove unused speed feature"
Yunqing Wang [Thu, 30 Oct 2014 02:00:32 +0000 (19:00 -0700)]
Merge "Remove unused speed feature"

9 years agoMerge "Addd error resilience test for temporal layers."
Marco [Thu, 30 Oct 2014 01:23:13 +0000 (18:23 -0700)]
Merge "Addd error resilience test for temporal layers."

9 years agoRemove unused speed feature
Yunqing Wang [Thu, 30 Oct 2014 00:05:04 +0000 (17:05 -0700)]
Remove unused speed feature

Partition_check was unused and removed.

Change-Id: I15ec9162d86dc61f04c09229c498629878ed7155

9 years agoAddd error resilience test for temporal layers.
Marco [Wed, 29 Oct 2014 22:34:18 +0000 (15:34 -0700)]
Addd error resilience test for temporal layers.

Test for successful decoding when dropping enhancement layer frames.

Change-Id: Id3ae6e5676894f352680973e52352dc5d98bbf55

9 years agoMerge "Enable mode search threshold update in non-RD coding mode"
Jingning Han [Wed, 29 Oct 2014 19:42:22 +0000 (12:42 -0700)]
Merge "Enable mode search threshold update in non-RD coding mode"

9 years agoEnable mode search threshold update in non-RD coding mode
Jingning Han [Tue, 28 Oct 2014 21:50:10 +0000 (14:50 -0700)]
Enable mode search threshold update in non-RD coding mode

Adaptively adjust the mode thresholds after each mode search round
to skip checking less likely selected modes. Local tests indicate
5% - 10% speed-up in speed -5 and -6. Average coding performance
loss is -1.055%.

speed -5
vidyo1 720p 1000 kbps
16533 b/f, 40.851 dB, 12607 ms -> 16556 b/f, 40.796 dB, 11831 ms

nik 720p 1000 kbps
33229 b/f, 39.127 dB, 11468 ms -> 33235 b/f, 39.131 dB, 10919 ms

speed -6
vidyo1 720p 1000 kbps
16549 b/f, 40.268 dB, 10138 ms -> 16538 b/f, 40.212 dB, 8456 ms

nik 720p 1000 kbps
33271 b/f, 38.433 dB,  7886 ms -> 33279 b/f, 38.416 dB, 7843 ms

Change-Id: I2c2963f1ce4ed9c1cf233b5b2c880b682e1c1e8b

9 years agoSimplify vp9_set_rd_speed_thresholds_sub8x8
Adrian Grange [Wed, 29 Oct 2014 16:09:46 +0000 (09:09 -0700)]
Simplify vp9_set_rd_speed_thresholds_sub8x8

Change-Id: I4bf0f9a38697f5aea564a47afd7f02bb8b2888b6

9 years agoCombine vp9_encode_block_intra and encode_block_intra
Hui Su [Wed, 22 Oct 2014 20:01:40 +0000 (13:01 -0700)]
Combine vp9_encode_block_intra and encode_block_intra

Change-Id: I79091fb677b64892ecca2fb466fde14602d8cdfc

9 years agoMerge "Use zero motion vector in choose_partitioning"
Jingning Han [Tue, 28 Oct 2014 19:00:13 +0000 (12:00 -0700)]
Merge "Use zero motion vector in choose_partitioning"

9 years agoMerge "vp9_denoiser_sse2: refactor the code."
JackyChen [Tue, 28 Oct 2014 18:06:05 +0000 (11:06 -0700)]
Merge "vp9_denoiser_sse2: refactor the code."

9 years agoMerge "Allow update of golden refernce buffer in CBR mode"
Yaowu Xu [Tue, 28 Oct 2014 17:48:02 +0000 (10:48 -0700)]
Merge "Allow update of golden refernce buffer in CBR mode"

9 years agovp9_denoiser_sse2: refactor the code.
JackyChen [Sat, 25 Oct 2014 17:51:51 +0000 (10:51 -0700)]
vp9_denoiser_sse2: refactor the code.

Combined vp9_denoiser_8xM_sse2 and vp9_denoiser_4xM_sse2 into one
function vp9_denoiser_NxM_sse2_small and passed the bitexact testing.
Changed the name of the function vp9_denoiser_64_32_16xM_sse2 to
vp9_denoiser_NxM_sse2_big.

Change-Id: Ib22478df585994dd347ebae04202c0b701e7f451

9 years agoMerge "Add a new control of golden frame boost in CBR mode"
Yaowu Xu [Tue, 28 Oct 2014 16:32:58 +0000 (09:32 -0700)]
Merge "Add a new control of golden frame boost in CBR mode"

9 years agoAllow update of golden refernce buffer in CBR mode
Yaowu Xu [Fri, 17 Oct 2014 19:13:16 +0000 (12:13 -0700)]
Allow update of golden refernce buffer in CBR mode

This commit changes to allow the usage of golden reference frame in
VP9 CBR mode to improve quality. VP9 supports potentially up to 8
reference buffers, it has reference buffers available for this
purpose. This was not possible in VP8 as golden and alt-ref buffers
were used for temporal scalability purpose in CBR mode in WebRTC.

For frames that update golden frame, there can be a quality boost.
The amount of allowed bitrate boost can be controlled via parameter
rc_max_inter_bitrate_pct. The inital value of the boost ratior is
currently based on over_shoot_pct. Further experiments will work
out the adaption of this boost value.

Change-Id: I0c5f010c8fd8b7b598f69779c1b30e5b2ac30a4d

9 years agoRelax maximum Q for extreme overshoot.
Paul Wilkins [Tue, 28 Oct 2014 13:03:06 +0000 (13:03 +0000)]
Relax maximum Q for extreme overshoot.

Added code to relax the active maximum Q in response
to extreme local overshoot to reduce bandwidth peaks.

The impact is small in metrics terms, but it this helps reduce
bandwidth spikes and overall overshoot in a number of
clips in our tests sets (especially the YT test set).

In particular this should help prevent very big spikes where a clip
is mainly easy but has a short hard section. In such a case a choice
of maximum Q for the clip as a whole may allow us to hit the overall
target rate but give some extreme spikes. The chunked encoding in YT
mitigates this problem but it can show up where a longer clip is
coded as a single chunk.

Change-Id: I213d09950ccb8489d10adf00fda1e53235b39203

9 years agoUse zero motion vector in choose_partitioning
Jingning Han [Mon, 27 Oct 2014 19:03:47 +0000 (12:03 -0700)]
Use zero motion vector in choose_partitioning

The zero motion vector was effectively used in the subsampled pixel
based variance calculation. This commit makes it directly use zero
mv to generate prediction.

Change-Id: Ica83dc843e9f8da2f89c3ef451e50f16214c0def

9 years agoRefactor encoder tile data structure
Jingning Han [Mon, 27 Oct 2014 18:11:50 +0000 (11:11 -0700)]
Refactor encoder tile data structure

Make the common tile info as one element in the encoder tile data
struct.

Change-Id: I8c474b4ba67ee3e2c86ab164f353ff71ea9992be

9 years agoAdd a new control of golden frame boost in CBR mode
Yaowu Xu [Mon, 27 Oct 2014 20:13:14 +0000 (13:13 -0700)]
Add a new control of golden frame boost in CBR mode

0 means that golden boost is off, and uses average frame target rate,
a non-zero number means the percentage of boost over average frame
bitrate is given initially to golden frames in CBR mode.

Change-Id: If4334fe2cc424b65ae0cce27f71b5561bf1e577d

9 years agoRefactor rtc coding mode to support tile encoding
Jingning Han [Mon, 27 Oct 2014 16:52:14 +0000 (09:52 -0700)]
Refactor rtc coding mode to support tile encoding

Use per tile threshold in the prediction mode search process.

Change-Id: I6c74ee5a3b069bb4281002dfe51310911a0756c0

9 years agoMerge "Add a new control of max bitrate for inter frame"
Yaowu Xu [Mon, 27 Oct 2014 15:11:54 +0000 (08:11 -0700)]
Merge "Add a new control of max bitrate for inter frame"

9 years agoMerge "Tile based adaptive mode search in RD loop"
Jingning Han [Sat, 25 Oct 2014 01:44:52 +0000 (18:44 -0700)]
Merge "Tile based adaptive mode search in RD loop"

9 years agoMerge changes I8a9c9019,Ic7b2faa3,I44d42a50,I3f3a3924,I10747b32,I31b49c9e
James Zern [Fri, 24 Oct 2014 18:43:51 +0000 (11:43 -0700)]
Merge changes I8a9c9019,Ic7b2faa3,I44d42a50,I3f3a3924,I10747b32,I31b49c9e

* changes:
  add vp9_loop_filter_data_reset
  move LFWorkerData allocation to VP9LfSync
  vp9_loop_filter_frame_mt: remove pbi dependency
  vp9_loop_filter_frame_mt: pass planes directly
  vp9_loop_filter_frame_mt: pass VP9LfSync directly
  vp9: store TileWorkerData allocations separately

9 years agoAdd a new control of max bitrate for inter frame
Yaowu Xu [Fri, 24 Oct 2014 16:31:16 +0000 (09:31 -0700)]
Add a new control of max bitrate for inter frame

Change-Id: I205de3611622cff7f751ea8baf9f82784581730a

9 years agoTile based adaptive mode search in RD loop
Jingning Han [Thu, 23 Oct 2014 23:54:45 +0000 (16:54 -0700)]
Tile based adaptive mode search in RD loop

Make the spatially adaptive mode search in rate-distortion
optimization loop inter tile independent. Experiments suggest that
this does not significantly change the coding staticstics.

Single tile, speed 3:
pedestrian_area 1080p 1500 kbps
59192 b/f, 40.611 dB, 101689 ms

blue_sky 1080p 1500 kbps
58505 b/f, 36.347 dB, 62458 ms

mobile_cal 720p 1000 kbps
13335 b/f, 35.646 dB, 45655 ms

as compared to 4 column tiles, speed 3:
pedestrian_area 1080p 1500 kbps
59329 b/f, 40.597 dB, 101917 ms

blue_sky 1080p 1500 kbps
58712 b/f, 36.320 dB, 62693 ms

mobile_cal 720p 1000 kbps
13191 b/f, 35.485 dB, 45319 ms

Change-Id: I35c6e1e0a859fece8f4145dec28623cbc6a12325

9 years agovp8: Updates to noise level estimate.
Marco [Fri, 24 Oct 2014 16:31:38 +0000 (09:31 -0700)]
vp8: Updates to noise level estimate.

-Use full bandwidth (when temporal layers is on) for checking switching.
-Normalize metric wrt num_blocks.
-Rounding fix to update of average noise level metric.
-Make default internal denoiser mode == kDenoiserOnYUV (in denoiser set_parameters()).
-Adjust some thresholds.

Change-Id: Ib827512b25a7bf1f66c76d3045f3a68ce56b1cd2

9 years agoMerge "Enable dual arf with constant q."
Paul Wilkins [Fri, 24 Oct 2014 12:51:25 +0000 (05:51 -0700)]
Merge "Enable dual arf with constant q."

9 years agoMerge "Move frame re-sizing into the recode loop"
Paul Wilkins [Fri, 24 Oct 2014 12:50:39 +0000 (05:50 -0700)]
Merge "Move frame re-sizing into the recode loop"

9 years agoMove frame re-sizing into the recode loop
Adrian Grange [Fri, 17 Oct 2014 22:12:43 +0000 (15:12 -0700)]
Move frame re-sizing into the recode loop

The point at which frames are scaled to their
coded dimensions is moved into the re-code loop.

This is in preparation for a further patch that
will add logic into the re-code loop to reduce
the coded frame size if the encoder is struggling
to hit the target data rate at the native frame
size.

Change-Id: Ie4131f5ec6fb93148879f6ce96123296442bf2d1

9 years agoMerge "build/make/iosbuild.sh: Remove armv6 support."
Tom Finegan [Thu, 23 Oct 2014 21:20:06 +0000 (14:20 -0700)]
Merge "build/make/iosbuild.sh: Remove armv6 support."

9 years agoMerge "Move filter_ref initialization"
Yaowu Xu [Thu, 23 Oct 2014 18:20:22 +0000 (11:20 -0700)]
Merge "Move filter_ref initialization"