platform/upstream/libvpx.git
9 years agoResizeCspTest: request PSNR packets
James Zern [Fri, 27 Feb 2015 04:31:59 +0000 (20:31 -0800)]
ResizeCspTest: request PSNR packets

without VPX_CODEC_USE_PSNR they're only generated by default with
--enable-internal-stats

Change-Id: I9a5a8874a3aa4bde39ae09a4101ed5616c83c9a1

9 years agoUse variance metric for integral projection vector match
Jingning Han [Fri, 27 Feb 2015 21:35:22 +0000 (13:35 -0800)]
Use variance metric for integral projection vector match

This commit replaces the SAD with variance as metric for the
integral projection vector match. It improves the search accuracy
in the presence of slight light change. The average speed -6
compression performance for rtc set is improved by 1.7%. No speed
changes are observed for the test clips.

Change-Id: I71c1d27e42de2aa429fb3564e6549bba1c7d6d4d

9 years agoMerge "Fix source frame border extension"
Jingning Han [Sat, 28 Feb 2015 02:19:18 +0000 (18:19 -0800)]
Merge "Fix source frame border extension"

9 years agoFix source frame border extension
Jingning Han [Fri, 27 Feb 2015 23:37:18 +0000 (15:37 -0800)]
Fix source frame border extension

This commit fixes an issue in source frame border extension. It
causes certain frame resolution such as 640x480 to have a portion
of the right/bottom extension filled by zeros, which misleads
motion search and degrades transform coding performance when large
block size is used.

This fix improves the speed 2 compression performance of a few
yt sequence, typically ranging from 1% - 2%, up to 5% at median
to low bit-rate.

Change-Id: Id6b09a5695d9e7651c6dfbc2c6a72288b08af7fb

9 years agoMerge "Fix calc_highbd_psnr"
Adrian Grange [Fri, 27 Feb 2015 23:42:08 +0000 (15:42 -0800)]
Merge "Fix calc_highbd_psnr"

9 years agoMerge "Make SVC compatible with external resize."
Alex Converse [Fri, 27 Feb 2015 22:37:48 +0000 (14:37 -0800)]
Merge "Make SVC compatible with external resize."

9 years agoFix calc_highbd_psnr
Adrian Grange [Fri, 27 Feb 2015 22:02:49 +0000 (14:02 -0800)]
Fix calc_highbd_psnr

Should use the crop dimensions of the frame rather
than the extended size.

Change-Id: I49ed041a46ff0753d43e074020857b7ff2f95e17

9 years agoMerge "Fix arithmetic overflow warnings."
Marco [Fri, 27 Feb 2015 19:53:57 +0000 (11:53 -0800)]
Merge "Fix arithmetic overflow warnings."

9 years agoMerge "use LC_ALL=C to sort libvpx_*srcs.txt"
James Zern [Fri, 27 Feb 2015 18:59:59 +0000 (10:59 -0800)]
Merge "use LC_ALL=C to sort libvpx_*srcs.txt"

9 years agoMerge "Refactor integral projection based motion estimation"
Jingning Han [Fri, 27 Feb 2015 17:49:30 +0000 (09:49 -0800)]
Merge "Refactor integral projection based motion estimation"

9 years agoMerge "Fix high bit-depth loop-filter sse2 compiling issue - part 4"
Jingning Han [Fri, 27 Feb 2015 17:49:10 +0000 (09:49 -0800)]
Merge "Fix high bit-depth loop-filter sse2 compiling issue - part 4"

9 years agoMerge "Fix high bit-depth loop-filter sse2 compiling issue - part 3"
Jingning Han [Fri, 27 Feb 2015 17:49:00 +0000 (09:49 -0800)]
Merge "Fix high bit-depth loop-filter sse2 compiling issue - part 3"

9 years agoMerge "Fix high bit-depth loop-filter sse2 compiling issue - part 2"
Jingning Han [Fri, 27 Feb 2015 17:48:51 +0000 (09:48 -0800)]
Merge "Fix high bit-depth loop-filter sse2 compiling issue - part 2"

9 years agoMerge "Fix high bit-depth loop-filter sse2 compiling issue - part 1"
Jingning Han [Fri, 27 Feb 2015 17:48:39 +0000 (09:48 -0800)]
Merge "Fix high bit-depth loop-filter sse2 compiling issue - part 1"

9 years agotest-data.mk: fix perf test data dependency
James Zern [Fri, 27 Feb 2015 07:14:54 +0000 (23:14 -0800)]
test-data.mk: fix perf test data dependency

both the encode and decode perf tests require niklas_1280_720_30.yuv
broken since:
28eebf3 Merge "tests: add a shorter 720p test clip"
7839d03 tests: add a shorter 720p test clip

Change-Id: I51ebbf7261832e25d8f2c1da5c7df5c2e47f748e

9 years agouse LC_ALL=C to sort libvpx_*srcs.txt
James Zern [Fri, 27 Feb 2015 04:48:40 +0000 (20:48 -0800)]
use LC_ALL=C to sort libvpx_*srcs.txt

Change-Id: I387da141ebade4fc4d2f3c0a2b6aa5aaea091c0c

9 years agotools_common.sh: use $$ in VPX_TEST_OUTPUT_DIR
James Zern [Fri, 27 Feb 2015 02:30:24 +0000 (18:30 -0800)]
tools_common.sh: use $$ in VPX_TEST_OUTPUT_DIR

a bit simpler than invoking awk for rand()

Change-Id: I36ac474708f7bf0157ae59b882c2a9f69b0aaf41

9 years agoMerge "tools_common.sh: add directory name to error output"
James Zern [Thu, 26 Feb 2015 23:54:41 +0000 (15:54 -0800)]
Merge "tools_common.sh: add directory name to error output"

9 years agoFix arithmetic overflow warnings.
Marco [Thu, 26 Feb 2015 22:27:16 +0000 (14:27 -0800)]
Fix arithmetic overflow warnings.

Change-Id: Ib85b5bc135aa0907a76b8c74faafe577e27d014f

9 years agoFix high bit-depth loop-filter sse2 compiling issue - part 3
Jingning Han [Tue, 24 Feb 2015 20:43:06 +0000 (12:43 -0800)]
Fix high bit-depth loop-filter sse2 compiling issue - part 3

Change-Id: Idb14b9a285f8098126f967c5e2750221d6a58f69

9 years agoMerge "Fix the encoder to support profile change"
Yaowu Xu [Thu, 26 Feb 2015 23:13:28 +0000 (15:13 -0800)]
Merge "Fix the encoder to support profile change"

9 years agoMerge "Correct parameter order in a function call"
Yaowu Xu [Thu, 26 Feb 2015 23:13:06 +0000 (15:13 -0800)]
Merge "Correct parameter order in a function call"

9 years agoMerge "tests: add a shorter 720p test clip"
James Zern [Thu, 26 Feb 2015 22:51:44 +0000 (14:51 -0800)]
Merge "tests: add a shorter 720p test clip"

9 years agoRefactor integral projection based motion estimation
Jingning Han [Mon, 23 Feb 2015 22:43:06 +0000 (14:43 -0800)]
Refactor integral projection based motion estimation

Support variable block size integral projection based motion
estimation.

Change-Id: Iee6d65e44df4480aa13fb7b84b9c91914b89caa1

9 years agotools_common.sh: add directory name to error output
James Zern [Thu, 26 Feb 2015 20:57:30 +0000 (12:57 -0800)]
tools_common.sh: add directory name to error output

+ add a helper function to reduce the duplication

this is a bit clearer when the environment variable is set, but the
directory is missing

Change-Id: I08f9b56122b5741bb40a5f795f7f82f5b49f1047

9 years agoFix high bit-depth loop-filter sse2 compiling issue - part 2
Jingning Han [Tue, 24 Feb 2015 20:21:04 +0000 (12:21 -0800)]
Fix high bit-depth loop-filter sse2 compiling issue - part 2

Change-Id: I6728b69bb3dff1daa64ff7142f691e80a089f1c4

9 years agoFix the encoder to support profile change
Yaowu Xu [Wed, 25 Feb 2015 23:39:09 +0000 (15:39 -0800)]
Fix the encoder to support profile change

Change-Id: Iefb928ad1174e274409facfb44f80265ff0f7683

9 years agoCorrect parameter order in a function call
Yaowu Xu [Thu, 26 Feb 2015 19:39:57 +0000 (11:39 -0800)]
Correct parameter order in a function call

Change-Id: Ibd87db1c4371edcbe193d39df2fdc07d3842c21a

9 years agoMerge "Account for rate error in GF group Q calculation."
paulwilkins [Thu, 26 Feb 2015 16:20:08 +0000 (08:20 -0800)]
Merge "Account for rate error in GF group Q calculation."

9 years agotests: add a shorter 720p test clip
James Zern [Thu, 26 Feb 2015 03:09:59 +0000 (19:09 -0800)]
tests: add a shorter 720p test clip

niklas_1280_720_30.y4m 60 frames @ 30fps
only a small number of frames are being used; this reduces the test data
download size in non-perf-test cases by >500M.
retain niklas_1280_720_30.yuv for encode+decode perf tests

Change-Id: I56b3433104acd462f952a9554280de5a3ec0b6d2

9 years agoMake SVC compatible with external resize.
Alex Converse [Wed, 25 Feb 2015 22:05:51 +0000 (14:05 -0800)]
Make SVC compatible with external resize.

Fixes https://code.google.com/p/webm/issues/detail?id=943

Change-Id: I6177bf6ab6b31a22d2652732f579b8aed3f28887

9 years agoMerge "Motion compensated reference refinement"
Jingning Han [Wed, 25 Feb 2015 20:33:09 +0000 (12:33 -0800)]
Merge "Motion compensated reference refinement"

9 years agoMerge "Re-distribute hierarchical vector match pattern"
Jingning Han [Wed, 25 Feb 2015 18:33:25 +0000 (10:33 -0800)]
Merge "Re-distribute hierarchical vector match pattern"

9 years agoMotion compensated reference refinement
Jingning Han [Mon, 23 Feb 2015 20:33:24 +0000 (12:33 -0800)]
Motion compensated reference refinement

This commit applies one-step refinement search to the resulting
motion vector of the integral projectiion based motion estimation,
per 64x64 block. It improves the coding performance of speed -6.

pedestrian 1080p 500 kbps
51735 b/f, 36.794 dB, 16044 ms ->
51382 b/f, 36.793 dB, 16282 ms

cloud 1080p 500 kbps
24081 b/f, 37.988 dB, 14016 ms ->
23597 b/f, 38.076 dB, 12774 ms

vidyo1 720p 1000 kbps
16552 b/f, 40.514 dB, 8279 ms ->
16553 b/f, 40.543 dB, 8510 ms

The rtc set compression performance is improved by 0.5%.

Change-Id: I3d09bea2caf58b2a4f3b38aa26fffafcbe9a2c17

9 years agoMerge "Fix a trivial memory leak"
Yaowu Xu [Wed, 25 Feb 2015 18:26:44 +0000 (10:26 -0800)]
Merge "Fix a trivial memory leak"

9 years agoMerge "Fix ssse3 quantize_fp functions while skip=1"
Yunqing Wang [Wed, 25 Feb 2015 18:10:10 +0000 (10:10 -0800)]
Merge "Fix ssse3 quantize_fp functions while skip=1"

9 years agoFix high bit-depth loop-filter sse2 compiling issue - part 1
Jingning Han [Tue, 24 Feb 2015 20:04:09 +0000 (12:04 -0800)]
Fix high bit-depth loop-filter sse2 compiling issue - part 1

The intrinsic statement _mm_subs_epi16() should take immediate.
Feeding variable as its input argument will cause compile failure
in older version gcc.

Change-Id: I6a71efcc8d3b16b84715e0a9bcfa818494eea3f4

9 years agoMerge "Fix fwd transform sse2 build issue on older gcc version"
Jingning Han [Wed, 25 Feb 2015 17:32:00 +0000 (09:32 -0800)]
Merge "Fix fwd transform sse2 build issue on older gcc version"

9 years agoFix fwd transform sse2 build issue on older gcc version
Jingning Han [Fri, 20 Feb 2015 19:39:05 +0000 (11:39 -0800)]
Fix fwd transform sse2 build issue on older gcc version

Change-Id: I3e0e53d129552babf29e6c5d047483733983973c

9 years agoMerge "vp9_loopfilter: quiet integer constant size warnings"
James Zern [Wed, 25 Feb 2015 03:09:32 +0000 (19:09 -0800)]
Merge "vp9_loopfilter: quiet integer constant size warnings"

9 years agoFix a trivial memory leak
Hanno Böck [Tue, 24 Feb 2015 23:48:21 +0000 (15:48 -0800)]
Fix a trivial memory leak

Change-Id: I1108d720bb3b30586b128dd01ce608e1e62b1756

9 years agoFix high bit-depth loop-filter sse2 compiling issue - part 4
Jingning Han [Tue, 24 Feb 2015 22:48:12 +0000 (14:48 -0800)]
Fix high bit-depth loop-filter sse2 compiling issue - part 4

Change-Id: I39f56f60425836f2e1ec07da71edd4810a4c78bb

9 years agoRe-distribute hierarchical vector match pattern
Jingning Han [Mon, 23 Feb 2015 20:55:50 +0000 (12:55 -0800)]
Re-distribute hierarchical vector match pattern

This commit modifies the hierarchical vector match patter. It
avoids repeated SAD computation at same points. The function
vp9_vector_sad_sse2 is called 12 times per 64x64 block, instead
of 15 times as before. The effective coverage remains the same.

Change-Id: I91ad9d27d40db8963c907d02af84e10702136994

9 years agovp9_loopfilter: quiet integer constant size warnings
James Zern [Fri, 20 Feb 2015 04:05:19 +0000 (20:05 -0800)]
vp9_loopfilter: quiet integer constant size warnings

mark uint64_t constants with 'ULL'

Change-Id: I7648e161b4004fba35e1fa7ab79e34cc19e39716

9 years agoFix ssse3 quantize_fp functions while skip=1
Yunqing Wang [Tue, 24 Feb 2015 18:37:05 +0000 (10:37 -0800)]
Fix ssse3 quantize_fp functions while skip=1

In ssse3 functions, DEFINE_ARGS macro hard codes qcoeff and dqcoeff
to r3 and r4. If skip is 1, qcoeff and dqcoeff need to be loaded
from the stack, which doesn't work because of the above definitions.
Currently, skip=1 case is not used in the encoder. This patch fixed
the issue, so it can be turned on later.

Change-Id: I998d696b1a7a85dca2b3bcee790b21c21e039147

9 years agofix the propagation of color space info in decoder
Yaowu Xu [Mon, 23 Feb 2015 21:01:14 +0000 (13:01 -0800)]
fix the propagation of color space info in decoder

This addresses the issue #960

Change-Id: Iddf45b4bd4f53cb0ddfd879e800a071cd843b915

9 years agoAccount for rate error in GF group Q calculation.
paulwilkins [Fri, 20 Feb 2015 13:41:25 +0000 (13:41 +0000)]
Account for rate error in GF group Q calculation.

When GF group adaptive maxQ is enabled this patch accounts
somewhat for accumulated error in the rate control.

This improves accuracy quite a bit on many clips especially
when there is  overshoot.

Examples when the overshoot and undershoot command line
parameters are set to 100:

Hall @ 1200 overshoot is reduced from 67-24%.
Akiyo @ 400 undershoot is reduced from 28%-15%.

Setting a lower value for undershoot or overshoot still
reduces the error further.

Impact on metrics is mixed with some gains in average psnr
but generally a little lower (e.g. 0.5%) on overall and ssim.

The GF group adaptation is still off by default in this patch.
Compared to with the head, enabling this mode now gives
big average psnr gains on the YT sets (e.g. YT_HD >11.2%),
a drop in overall PSNR (YT-HD 3.9%) and a smaller drop or
neutral for SSIM.

Change-Id: If4b32cd0740d3fb941317b374f9c2951954eee90

9 years agoMerge "Remove redundant test"
Adrian Grange [Sat, 21 Feb 2015 00:13:55 +0000 (16:13 -0800)]
Merge "Remove redundant test"

9 years agoMerge "Remove a few unneccessary multiplications in denoiser."
Marco [Fri, 20 Feb 2015 22:42:02 +0000 (14:42 -0800)]
Merge "Remove a few unneccessary multiplications in denoiser."

9 years agoRemove a few unneccessary multiplications in denoiser.
Marco [Fri, 20 Feb 2015 19:54:28 +0000 (11:54 -0800)]
Remove a few unneccessary multiplications in denoiser.

Change-Id: I3edbb7cc67203fbbf32c6fd4a08015ca9d9ed53e

9 years agoMove dequant table from VP9_COMMON to VP9_COMP as decoder
Hangyu Kuang [Fri, 20 Feb 2015 18:58:12 +0000 (10:58 -0800)]
Move dequant table from VP9_COMMON to VP9_COMP as decoder
does not need it any more.

This reduces VP9_COMMON size from 25776 bytes to 17584 bytes(~31%).

Change-Id: Ic5daea732ccefb6d512b048af7983f0efe08589b

9 years agoMerge "Adjustments to cyclic refresh (aq-mode=3)."
Marco [Fri, 20 Feb 2015 17:55:05 +0000 (09:55 -0800)]
Merge "Adjustments to cyclic refresh (aq-mode=3)."

9 years agoMerge "Add high bit depth support to rtc sub8x8 block coding"
Jingning Han [Fri, 20 Feb 2015 17:35:18 +0000 (09:35 -0800)]
Merge "Add high bit depth support to rtc sub8x8 block coding"

9 years agoAdjustments to cyclic refresh (aq-mode=3).
Marco [Wed, 28 Jan 2015 19:34:24 +0000 (11:34 -0800)]
Adjustments to cyclic refresh (aq-mode=3).

Target higher delta-qp for big blocks with zero motion,
and for segment#1: avoid 64x64 partition size and force 8x8 tx size.

Metrics on RTC set mostly positive: SSIM up by ~4%, PSRN by ~1.5%.
Doesn't seem to be any change in speed.

Change-Id: I1f68fa3c4f62dab3b90cc58041f05ebb048ae5ac

9 years agoAdd high bit depth support to rtc sub8x8 block coding
Jingning Han [Wed, 18 Feb 2015 23:48:40 +0000 (15:48 -0800)]
Add high bit depth support to rtc sub8x8 block coding

This commit adds proper buffer handle to support high bit depth
in rtc sub8x8 block coding.

Change-Id: Ibaf8a2160194121aec9ca68b8094817fed9ccaea

9 years agoMerge "Optimize the dequantization process on decoder side."
Hangyu Kuang [Fri, 20 Feb 2015 16:23:54 +0000 (08:23 -0800)]
Merge "Optimize the dequantization process on decoder side."

9 years agoMerge "Fix control string in firstpass stats fprintf"
Adrian Grange [Fri, 20 Feb 2015 00:36:43 +0000 (16:36 -0800)]
Merge "Fix control string in firstpass stats fprintf"

9 years agoOptimize the dequantization process on decoder side.
Hangyu Kuang [Wed, 18 Feb 2015 23:32:24 +0000 (15:32 -0800)]
Optimize the dequantization process on decoder side.

Change-Id: I00621ff7165bbe86a18794b4a816976c9effaf78

9 years agoMerge "Improve skip_txfm thresholds in the non-rd mode selection"
Yunqing Wang [Thu, 19 Feb 2015 23:31:02 +0000 (15:31 -0800)]
Merge "Improve skip_txfm thresholds in the non-rd mode selection"

9 years agoFix control string in firstpass stats fprintf
Adrian Grange [Thu, 19 Feb 2015 23:18:30 +0000 (15:18 -0800)]
Fix control string in firstpass stats fprintf

20 items in the control string but only 19 arguments.

Change-Id: I51dab9aa1c58c653b52395005a9cb41f09feb484

9 years agoMerge "Integral projection based motion estimation"
Jingning Han [Thu, 19 Feb 2015 23:08:11 +0000 (15:08 -0800)]
Merge "Integral projection based motion estimation"

9 years agoImprove skip_txfm thresholds in the non-rd mode selection
Yunqing Wang [Thu, 19 Feb 2015 00:38:08 +0000 (16:38 -0800)]
Improve skip_txfm thresholds in the non-rd mode selection

Modified the thresholds of deciding whether or not to skip
the transforms in model_rd_for_sb_y(). Used zbin[] instead
of dequant[] to be more precise. Also, modified the checking
coditions.

Rtc set borg test results (at speed 6) showed:
average PSNR gain: 0.138%, overall PSNR gain: 0.158%,
and SSIM gain: 0.177%.

The data rate test was modified slightly as suggested by
Marco.

Change-Id: Ieaf633ab77f4838cb3c45cf69065b29d55f8ae6c

9 years agoIntegral projection based motion estimation
Jingning Han [Fri, 13 Feb 2015 19:23:45 +0000 (11:23 -0800)]
Integral projection based motion estimation

This commit introduces a new block match motion estimation
using integral projection measurement. The 2-D block and the nearby
region is projected onto the horizontal and vertical 1-D vectors,
respectively. It then runs vector match, instead of block match,
over the two separate 1-D vectors to locate the motion compensated
reference block.

This process is run per 64x64 block to align the reference before
choosing partitioning in speed 6. The overall CPU cycle cost due
to this additional 64x64 block match (SSE2 version) takes around 2%
at low bit-rate rtc speed 6. When strong motion activities exist in
the video sequence, it substantially improves the partition
selection accuracy, thereby achieving better compression performance
and lower CPU cycles.

The experiments were tested in RTC speed -6 setting:
cloud 1080p 500 kbps
17006 b/f, 37.086 dB, 5386 ms ->
16669 b/f, 37.970 dB, 5085 ms (>0.9dB gain and 6% faster)

pedestrian_area 1080p 500 kbps
53537 b/f, 36.771 dB, 18706 ms ->
51897 b/f, 36.792 dB, 18585 ms (4% bit-rate savings)

blue_sky 1080p 500 kbps
70214 b/f, 33.600 dB, 13979 ms ->
53885 b/f, 33.645 dB, 10878 ms (30% bit-rate savings, 25% faster)

jimred 400 kbps
13380 b/f, 36.014 dB, 5723 ms ->
13377 b/f, 36.087 dB, 5831 ms  (2% bit-rate savings, 2% slower)

Change-Id: Iffdb6ea5b16b77016bfa3dd3904d284168ae649c

9 years agoFix a check condition in nonrd_pick_partition
Jingning Han [Thu, 19 Feb 2015 17:54:08 +0000 (09:54 -0800)]
Fix a check condition in nonrd_pick_partition

Change-Id: Ic92fb4b16948f745c218351b24fdafecf9abce3a

9 years agoMerge "Fix the frame parallel invalid file test failure on ARM."
hkuang [Wed, 18 Feb 2015 22:09:28 +0000 (14:09 -0800)]
Merge "Fix the frame parallel invalid file test failure on ARM."

9 years agoMerge "test_vector_test: fix build with --disable-(vp8|vp9)"
James Zern [Tue, 17 Feb 2015 22:05:32 +0000 (14:05 -0800)]
Merge "test_vector_test: fix build with --disable-(vp8|vp9)"

9 years agoFix the frame parallel invalid file test failure on ARM.
hkuang [Mon, 9 Feb 2015 20:14:00 +0000 (12:14 -0800)]
Fix the frame parallel invalid file test failure on ARM.

There is a corner case that when a frame is corrupted, the following
inter frame decode worker will miss the previous failure. To solve
this problem, a need_resync flag needs to be added to master thread
to keep control of that.

Change-Id: Iea9309b2562e7b59a83dd6b720607410286c90a6

9 years agoloop_filter_rows_mt: remove dependency on 'last_height'
James Zern [Sat, 14 Feb 2015 02:03:45 +0000 (18:03 -0800)]
loop_filter_rows_mt: remove dependency on 'last_height'

using this to control reallocation would miss a change if the function
were not called for every frame.
fixes potential memory corruption by the subsequent memset

Change-Id: I4c6bb6ab68803104fc824c7e27cc2f9b2cf53e33

9 years agotest_vector_test: fix build with --disable-(vp8|vp9)
James Zern [Sat, 14 Feb 2015 02:48:45 +0000 (18:48 -0800)]
test_vector_test: fix build with --disable-(vp8|vp9)

use VP[89]_INSTANTIATE_TEST_CASE case when possible to disable the tests if
the codec is unavailable.
broken since:
be6aead Try again to merge branch 'frame-parallel' into master branch.

Change-Id: I8d81c5ba3b951f82be94bfaed6be194e4289baec

9 years agoMerge "Fix an encoder/decode mismatch bug"
Yaowu Xu [Sat, 14 Feb 2015 00:40:41 +0000 (16:40 -0800)]
Merge "Fix an encoder/decode mismatch bug"

9 years agoFix an encoder/decode mismatch bug
Yaowu Xu [Fri, 13 Feb 2015 22:53:11 +0000 (14:53 -0800)]
Fix an encoder/decode mismatch bug

This commit prevent the encoder to update last_frame_type when a frame
is dropped in the encoder. Prior to this fix, if there is a dropped
frame immediatedly after a key frame, decoder would have the value of
last_frame_type as key frame, different from encoder as the dropped
frame in encoder would have updated the value to an inter frame. This
leads to different probability update in encoder and decoder, thereby
encoder/decoder mismatch.

This fixes issue #941

Change-Id: I27115224b138bec43ae3916c016574f5740822b0

9 years agoMerge "Replace some operations with shift in encoder_breakout."
Marco [Fri, 13 Feb 2015 23:28:49 +0000 (15:28 -0800)]
Merge "Replace some operations with shift in encoder_breakout."

9 years agoMerge "Improve readability: move return statements"
Adrian Grange [Fri, 13 Feb 2015 23:28:01 +0000 (15:28 -0800)]
Merge "Improve readability: move return statements"

9 years agoRemove redundant test
Adrian Grange [Fri, 13 Feb 2015 22:51:32 +0000 (14:51 -0800)]
Remove redundant test

Change-Id: I11e4fd8dcd44b0475f3bff0545a035feb223ce55

9 years agoReplace some operations with shift in encoder_breakout.
Marco [Fri, 13 Feb 2015 18:42:57 +0000 (10:42 -0800)]
Replace some operations with shift in encoder_breakout.

Replaced a divide by 9 with 8, so some very small difference,
but otherwise no change in behavior.

Change-Id: I1079ae3c41e0789ff0bc6fa9940a238b6bca0f5b

9 years agoMerge "Add VP9 decoder control to get frame size"
Adrian Grange [Fri, 13 Feb 2015 18:20:14 +0000 (10:20 -0800)]
Merge "Add VP9 decoder control to get frame size"

9 years agoImprove readability: move return statements
Adrian Grange [Fri, 13 Feb 2015 17:16:37 +0000 (09:16 -0800)]
Improve readability: move return statements

Change-Id: I18428d0a93084f78ec136d9019f10466326c67e5

9 years agoAdd VP9 decoder control to get frame size
Adrian Grange [Fri, 13 Feb 2015 16:14:44 +0000 (08:14 -0800)]
Add VP9 decoder control to get frame size

Adds a control function that allows the caller to get
the size of the current frame.

Change-Id: Iddfdedc0f3aa9aa46119f87d294681c82f275c9f

9 years agoMerge "vpx_temporal_svc_encoder: Adjust default qp-max setting for vp9."
Marco [Fri, 13 Feb 2015 16:11:31 +0000 (08:11 -0800)]
Merge "vpx_temporal_svc_encoder: Adjust default qp-max setting for vp9."

9 years agoMerge "Fix ioc issue in block_rd_txfm"
Jingning Han [Thu, 12 Feb 2015 23:07:41 +0000 (15:07 -0800)]
Merge "Fix ioc issue in block_rd_txfm"

9 years agoFix ioc issue in block_rd_txfm
Jingning Han [Thu, 12 Feb 2015 20:08:30 +0000 (12:08 -0800)]
Fix ioc issue in block_rd_txfm

Force 64-bit precision in the intermediate steps.

Change-Id: I666113d9adcef8975da201d5aa1a13b783d09594

9 years agovpx_temporal_svc_encoder: Adjust default qp-max setting for vp9.
Marco [Thu, 12 Feb 2015 20:38:11 +0000 (12:38 -0800)]
vpx_temporal_svc_encoder: Adjust default qp-max setting for vp9.

Change-Id: Iada495f05193a1f645a5405ad792931f4d9113ab

9 years agoMerge "Add missing initializer to VP8 codec interface"
Adrian Grange [Thu, 12 Feb 2015 20:40:02 +0000 (12:40 -0800)]
Merge "Add missing initializer to VP8 codec interface"

9 years agoMerge "Remove unnecessary border extension when frame size change."
hkuang [Thu, 12 Feb 2015 20:00:32 +0000 (12:00 -0800)]
Merge "Remove unnecessary border extension when frame size change."

9 years agoMerge "Add skin detection."
Marco [Thu, 12 Feb 2015 19:12:27 +0000 (11:12 -0800)]
Merge "Add skin detection."

9 years agoAdd missing initializer to VP8 codec interface
Adrian Grange [Thu, 12 Feb 2015 17:31:40 +0000 (09:31 -0800)]
Add missing initializer to VP8 codec interface

Change-Id: Ia164ba03fb732e9c9e520e4aa2d75b7eadff6165

9 years agoMerge "Update partition rate cost in rtc speed 5"
Jingning Han [Thu, 12 Feb 2015 17:14:49 +0000 (09:14 -0800)]
Merge "Update partition rate cost in rtc speed 5"

9 years agoMerge "Add mode cost to sub8x8 block mode decision in rtc coding"
Jingning Han [Thu, 12 Feb 2015 17:14:29 +0000 (09:14 -0800)]
Merge "Add mode cost to sub8x8 block mode decision in rtc coding"

9 years agoMerge "Add cast to convert double to int"
Adrian Grange [Thu, 12 Feb 2015 15:02:54 +0000 (07:02 -0800)]
Merge "Add cast to convert double to int"

9 years agoAdd skin detection.
Marco [Tue, 3 Feb 2015 20:34:37 +0000 (12:34 -0800)]
Add skin detection.

Simple skin detection, from vp8; works reasonable on most of the
RTC clips, but could miss sometimes.

Added debug flag to write out skin map over source input.

Change-Id: I2caea7592f1c459047aac46627eeb24a94946464

9 years agoMerge "Make vp9_print_modes_and_motion_vectors() work"
Yunqing Wang [Thu, 12 Feb 2015 00:58:52 +0000 (16:58 -0800)]
Merge "Make vp9_print_modes_and_motion_vectors() work"

9 years agoMerge "vp9_thread: prefer pthread.h if available"
James Zern [Thu, 12 Feb 2015 00:50:07 +0000 (16:50 -0800)]
Merge "vp9_thread: prefer pthread.h if available"

9 years agoMerge "vp9_highbd_tm_predictor_16x16: fix win64"
James Zern [Thu, 12 Feb 2015 00:49:53 +0000 (16:49 -0800)]
Merge "vp9_highbd_tm_predictor_16x16: fix win64"

9 years agoAdd cast to convert double to int
Adrian Grange [Wed, 11 Feb 2015 17:41:47 +0000 (09:41 -0800)]
Add cast to convert double to int

Change-Id: I7f63c2940256a5dadf9a29a853809290dd9e98ed

9 years agoAdd mode cost to sub8x8 block mode decision in rtc coding
Jingning Han [Tue, 10 Feb 2015 23:32:38 +0000 (15:32 -0800)]
Add mode cost to sub8x8 block mode decision in rtc coding

This commit allows the encoder to properly account for the mode
cost in sub8x8 non-RD mode decision.

Change-Id: I2951960d20e37ed08e372ee0c7044935b2b9b899

9 years agoMerge "Account for inter prediction filter rate cost in rtc mode selection"
Jingning Han [Wed, 11 Feb 2015 22:42:44 +0000 (14:42 -0800)]
Merge "Account for inter prediction filter rate cost in rtc mode selection"

9 years agoMerge "Add ref frame rate cost to non-RD mode decision"
Jingning Han [Wed, 11 Feb 2015 22:36:48 +0000 (14:36 -0800)]
Merge "Add ref frame rate cost to non-RD mode decision"

9 years agoUpdate partition rate cost in rtc speed 5
Jingning Han [Wed, 11 Feb 2015 20:25:51 +0000 (12:25 -0800)]
Update partition rate cost in rtc speed 5

The block partition rate cost should be updated when recursive
partition search is needed.

Change-Id: I7bc5ad1fc2cbd3577dee7f7e8da111a2742bdeb9

9 years agoAccount for inter prediction filter rate cost in rtc mode selection
Jingning Han [Mon, 9 Feb 2015 23:29:58 +0000 (15:29 -0800)]
Account for inter prediction filter rate cost in rtc mode selection

Add the rate cost on inter prediction filter type to the overall
rate-distortion cost in vp9_pick_mode_inter.

Change-Id: I72c34017adf5220cadb3962694ee5404469fc673

9 years agoAdd ref frame rate cost to non-RD mode decision
Jingning Han [Wed, 11 Feb 2015 18:51:50 +0000 (10:51 -0800)]
Add ref frame rate cost to non-RD mode decision

This commit adds a heuristic rate cost of reference frame to the
non-RD mode decision. It improves the compression performance of
speed -6 by 0.31% and speed -5 by 0.69%.

Change-Id: If7f3b45519d49b2cb640bcb7316a254efc8be446