platform/upstream/libvpx.git
9 years agoarm: Fix building vp8_subpixelvariance_neon.c with MSVC
Martin Storsjo [Thu, 4 Sep 2014 06:23:08 +0000 (09:23 +0300)]
arm: Fix building vp8_subpixelvariance_neon.c with MSVC

Use the right return values - vget_low_s64 returns int64x1_t, not
a normal int64_t.

Also make __builtin_prefetch a no-op on MSVC for this file.

Change-Id: I4d2fce01d0ba106b98d3d53b137803119c2c2c08

9 years agoMerge "Consistent allocation of vpx_codec_alg_priv_t."
Dmitry Kovalev [Thu, 4 Sep 2014 02:41:28 +0000 (19:41 -0700)]
Merge "Consistent allocation of vpx_codec_alg_priv_t."

9 years agoMerge "Replacing asm 16x16 variance calculation with intrinsics."
Dmitry Kovalev [Thu, 4 Sep 2014 01:57:33 +0000 (18:57 -0700)]
Merge "Replacing asm 16x16 variance calculation with intrinsics."

9 years agoMerge "Small cleanup: reusing existing code."
Dmitry Kovalev [Thu, 4 Sep 2014 01:57:25 +0000 (18:57 -0700)]
Merge "Small cleanup: reusing existing code."

9 years agoMerge "Add a more complex SEG_LVL_SKIP test vector."
Yaowu Xu [Thu, 4 Sep 2014 00:17:12 +0000 (17:17 -0700)]
Merge "Add a more complex SEG_LVL_SKIP test vector."

9 years agoAdd a more complex SEG_LVL_SKIP test vector.
Alex Converse [Wed, 3 Sep 2014 22:08:49 +0000 (15:08 -0700)]
Add a more complex SEG_LVL_SKIP test vector.

This file changes the segmentation map, deactivates the map, and
reactivates the map.

Change-Id: I1c8b8949887257b9f4c49a1a9ba9a7c74666ef2e

9 years agoMerge "Change last_partition_redo_frequency for speed 3"
Yaowu Xu [Wed, 3 Sep 2014 21:57:02 +0000 (14:57 -0700)]
Merge "Change last_partition_redo_frequency for speed 3"

9 years agoMerge "Remove redundant code"
Yaowu Xu [Wed, 3 Sep 2014 21:55:28 +0000 (14:55 -0700)]
Merge "Remove redundant code"

9 years agoMerge "Make process_denoise_mode_change function cond-compiled."
Marco [Wed, 3 Sep 2014 20:58:16 +0000 (13:58 -0700)]
Merge "Make process_denoise_mode_change function cond-compiled."

9 years agoNeon version of vp8_build_intra_predictors_mby_s() and
Scott LaVarnway [Wed, 3 Sep 2014 18:26:27 +0000 (11:26 -0700)]
Neon version of vp8_build_intra_predictors_mby_s() and

vp8_build_intra_predictors_mbuv_s().

This patch replaces the assembly version with an intrinsic
version.

On a Nexus 7, vpxenc (in realtime mode, speed -12)
reported a performance improvement of ~2.6%.

Change-Id: I9ef65bad929450c0215253fdae1c16c8b4a8f26f

9 years agoVP8 for ARMv8 by using NEON intrinsics 17
Scott LaVarnway [Tue, 26 Aug 2014 19:13:03 +0000 (12:13 -0700)]
VP8 for ARMv8 by using NEON intrinsics 17

Add vp8_subpixelvariance_neon.c
- vp8_sub_pixel_variance16x16_neon_func
- vp8_variance_halfpixvar16x16_h_neon
- vp8_variance_halfpixvar16x16_v_neon
- vp8_variance_halfpixvar16x16_hv_neon
- vp8_sub_pixel_variance8x8_neon

Change-Id: I3e5d85b2eafc26be0eef6a777789b80e4579257b
Signed-off-by: James Yu <james.yu@linaro.org>
9 years agoMerge "Revert "Revert "VP8 for ARMv8 by using NEON intrinsics 06" This reverts commit...
Johann [Wed, 3 Sep 2014 20:27:11 +0000 (13:27 -0700)]
Merge "Revert "Revert "VP8 for ARMv8 by using NEON intrinsics 06" This reverts commit 81ad047ee57ecb0e2c1ee4dcebda54a44ea54ae9. Revert "VP8 for ARMv8 by using NEON intrinsics 15" This reverts commit 727af7cebe3698b8493ba6c1360b0a6606c310fb.""

9 years agoMerge "Cleaning up vp9_variance_avx2.c."
Dmitry Kovalev [Wed, 3 Sep 2014 20:21:38 +0000 (13:21 -0700)]
Merge "Cleaning up vp9_variance_avx2.c."

9 years agoMerge "Merge two similar functions into one"
Yaowu Xu [Wed, 3 Sep 2014 20:00:02 +0000 (13:00 -0700)]
Merge "Merge two similar functions into one"

9 years agoSmall cleanup: reusing existing code.
Dmitry Kovalev [Wed, 3 Sep 2014 19:20:29 +0000 (12:20 -0700)]
Small cleanup: reusing existing code.

Change-Id: Iac4775ad98e988f2b9cf5bd0dc91ab994d0262ce

9 years agoMerge "Removing duplicated code."
Dmitry Kovalev [Wed, 3 Sep 2014 19:11:37 +0000 (12:11 -0700)]
Merge "Removing duplicated code."

9 years agoMerge "select_tx_mode(): remove special case for key frame"
Yaowu Xu [Wed, 3 Sep 2014 18:54:44 +0000 (11:54 -0700)]
Merge "select_tx_mode(): remove special case for key frame"

9 years agoMake process_denoise_mode_change function cond-compiled.
Marco [Wed, 3 Sep 2014 18:35:06 +0000 (11:35 -0700)]
Make process_denoise_mode_change function cond-compiled.

This function is called only when temporal denoising is enabled.

Change-Id: I25a036e3d628edd34410d6e6fe1f9e68a90a8e56

9 years agoMerge two similar functions into one
Yaowu Xu [Tue, 2 Sep 2014 19:42:34 +0000 (12:42 -0700)]
Merge two similar functions into one

intra_super_block_yrd() and inter_super_block_yrd() are largely same,
this commit merges them into one to reduce code duplication.

Change-Id: I64d7042a5b099345627cf55663010c185b25ec37

9 years agoMerge "Removing clear_system_state() call from update_coef_probs()."
Dmitry Kovalev [Wed, 3 Sep 2014 18:05:45 +0000 (11:05 -0700)]
Merge "Removing clear_system_state() call from update_coef_probs()."

9 years agoConsistent allocation of vpx_codec_alg_priv_t.
Dmitry Kovalev [Wed, 3 Sep 2014 01:26:53 +0000 (18:26 -0700)]
Consistent allocation of vpx_codec_alg_priv_t.

Change-Id: I5a03496de035fbcf31e4527cd25fcae4627a57a0

9 years agoMerge "[svc] Temporal svc with two pass rate control"
Minghai Shang [Wed, 3 Sep 2014 17:51:19 +0000 (10:51 -0700)]
Merge "[svc] Temporal svc with two pass rate control"

9 years agoChange last_partition_redo_frequency for speed 3
Yaowu Xu [Wed, 3 Sep 2014 01:53:10 +0000 (18:53 -0700)]
Change last_partition_redo_frequency for speed 3

From 3 to 2, which seems to be slightly positive on compression for
all test sets, also reduces encoding time by 2%-5%, varying on the
test clips.

Change-Id: If045417bd27311700c919b4a335eff0dc1130ae0

9 years agoRemove redundant code
Yaowu Xu [Wed, 3 Sep 2014 01:00:49 +0000 (18:00 -0700)]
Remove redundant code

Change-Id: I453b167f03811a3cd3592089593b3f2823f62ab3

9 years agoselect_tx_mode(): remove special case for key frame
Yaowu Xu [Tue, 2 Sep 2014 23:21:57 +0000 (16:21 -0700)]
select_tx_mode(): remove special case for key frame

This commit removes the special case for key frame, as transform size
decision is controlled by the appropriate speed feature for all lossy
coding modes: tx_size_search_method.

Change-Id: I9677171e3f2432ec23705f7c5ea8170dd4562fae

9 years agoMerge "Add a test vector for SEG_LVL_SKIP."
Yaowu Xu [Wed, 3 Sep 2014 15:12:20 +0000 (08:12 -0700)]
Merge "Add a test vector for SEG_LVL_SKIP."

9 years agoMerge "Skip comp inter mode test in RD loop with same frame bias signs"
Paul Wilkins [Wed, 3 Sep 2014 09:26:47 +0000 (02:26 -0700)]
Merge "Skip comp inter mode test in RD loop with same frame bias signs"

9 years agoSkip comp inter mode test in RD loop with same frame bias signs
Jingning Han [Wed, 3 Sep 2014 01:05:03 +0000 (18:05 -0700)]
Skip comp inter mode test in RD loop with same frame bias signs

This commit allows the encoder to skip check on compound inter
modes in the rate-distortion optimization loop, if the reference
frame bias signs are the same.

Change-Id: Ib753e6bb11cbdd338aee69dbe2b649671f75a6b0

9 years agoRemoving duplicated code.
Dmitry Kovalev [Wed, 3 Sep 2014 00:57:35 +0000 (17:57 -0700)]
Removing duplicated code.

Change-Id: I7b5c776d5e6f5ca428b87fa9411ae4012a9538ba

9 years agoMerge "Removing MMX SAD calculation code."
Dmitry Kovalev [Wed, 3 Sep 2014 00:35:59 +0000 (17:35 -0700)]
Merge "Removing MMX SAD calculation code."

9 years agoAdd a test vector for SEG_LVL_SKIP.
Alex Converse [Tue, 2 Sep 2014 23:39:21 +0000 (16:39 -0700)]
Add a test vector for SEG_LVL_SKIP.

Change-Id: Ib41acade12fe6cdd4c4a4efdb1260d5f100a3e7f

9 years agoMerge "Adds config opt for highbitdepth + misc. vpx"
Deb Mukherjee [Tue, 2 Sep 2014 22:41:27 +0000 (15:41 -0700)]
Merge "Adds config opt for highbitdepth + misc. vpx"

9 years agoRemoving MMX SAD calculation code.
Dmitry Kovalev [Tue, 2 Sep 2014 21:41:36 +0000 (14:41 -0700)]
Removing MMX SAD calculation code.

Removed functions:
* vp9_sad_16x16_mmx
* vp9_sad_8x16_mmx
* vp9_sad_16x8_mmx
* vp9_sad_8x8_mmx
* vp9_sad_4x4_mmx

Change-Id: Ic5174b93b64d65d846f0c11e72cab149e9472bc3

9 years agoAdds config opt for highbitdepth + misc. vpx
Deb Mukherjee [Tue, 26 Aug 2014 19:35:15 +0000 (12:35 -0700)]
Adds config opt for highbitdepth + misc. vpx

Adds config parameter vp9_highbitdepth, to support highbitdepth profiles.
Also includes most vpx level high bit-depth functions. However
encode/decode in the highbitdepth profiles will not work until
the rest of the code is in place.

Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6

9 years agoMerge "Switching back to #define instead of static const int."
Dmitry Kovalev [Tue, 2 Sep 2014 21:02:04 +0000 (14:02 -0700)]
Merge "Switching back to #define instead of static const int."

9 years agoReplacing asm 16x16 variance calculation with intrinsics.
Dmitry Kovalev [Tue, 2 Sep 2014 17:50:12 +0000 (10:50 -0700)]
Replacing asm 16x16 variance calculation with intrinsics.

New code is 20% faster for 64-bit and 15% faster for 32-bit. Compiled
using clang.

Change-Id: Icfea461238411001fd093561293dbfedfbf8d0bb

9 years ago[svc] Temporal svc with two pass rate control
Minghai Shang [Tue, 2 Sep 2014 19:05:14 +0000 (12:05 -0700)]
[svc] Temporal svc with two pass rate control

It's built based on current spatial svc code.
We only support one spatial two temporal layers at this time.
Change-Id: I1fdc8584354b910331e626bfae60473b3b701ba1

9 years agoSwitching back to #define instead of static const int.
Dmitry Kovalev [Tue, 2 Sep 2014 18:29:40 +0000 (11:29 -0700)]
Switching back to #define instead of static const int.

To avoid 'variable length array' warnings from gcc.

Change-Id: I426f7e93ce674a10b901e79c0c9d9df5d4e47cb6

9 years agoSkip comp inter mode tests for arf coding
Jingning Han [Tue, 2 Sep 2014 17:57:10 +0000 (10:57 -0700)]
Skip comp inter mode tests for arf coding

This commit skips the compound inter mode prediction check in the
rate-distortion optimization loop for ARF coding. It reduces the
runtime for certain test clips at speed 3, at no compression
performance change:

bus CIF 1000 kbps, 8260 ms -> 8090 ms, 1.8% speed-up
stockholm 720p 1000 kbps, 74453 ms -> 71826 ms, 2.9% speed-up

No visible speed-up for pedestrian area 1080p at 2000 kbps.

Change-Id: Ic68aa56837159b726563b784e2e3729e846465ad

9 years agoCleaning up vp9_variance_avx2.c.
Dmitry Kovalev [Wed, 28 May 2014 18:44:45 +0000 (11:44 -0700)]
Cleaning up vp9_variance_avx2.c.

Change-Id: I75eb47dd21f87015efd673dbd2aa71f4386afdf5

9 years agoMerge "Updates to adaptive/aggressive denoiser mode."
Marco [Tue, 2 Sep 2014 17:58:41 +0000 (10:58 -0700)]
Merge "Updates to adaptive/aggressive denoiser mode."

9 years agoMerge "Removing 'frames' field from VP9_COMP."
Dmitry Kovalev [Tue, 2 Sep 2014 17:01:20 +0000 (10:01 -0700)]
Merge "Removing 'frames' field from VP9_COMP."

9 years agoMerge "Adding get_frame_pkt_flags() function."
Dmitry Kovalev [Tue, 2 Sep 2014 17:00:51 +0000 (10:00 -0700)]
Merge "Adding get_frame_pkt_flags() function."

9 years agoUpdates to adaptive/aggressive denoiser mode.
Marco [Tue, 2 Sep 2014 16:45:37 +0000 (09:45 -0700)]
Updates to adaptive/aggressive denoiser mode.

Parameter changes and modification to zero_last bias.

Change-Id: I50a408d47fde049c562bbe95075194cb0f17c31b

9 years agoMerge "Revert "Revert "VP8 for ARMv8 by using NEON intrinsics 08"""
Johann [Tue, 2 Sep 2014 16:28:14 +0000 (09:28 -0700)]
Merge "Revert "Revert "VP8 for ARMv8 by using NEON intrinsics 08"""

9 years agoMerge "Removing lookup_next_frame_stats()."
Dmitry Kovalev [Tue, 2 Sep 2014 16:25:16 +0000 (09:25 -0700)]
Merge "Removing lookup_next_frame_stats()."

9 years agoMerge "Skip intra mode tests depending on inter residuals"
Jingning Han [Tue, 2 Sep 2014 15:32:52 +0000 (08:32 -0700)]
Merge "Skip intra mode tests depending on inter residuals"

9 years agoMerge "Replacing asm 8x8 variance calculation with intrinsics."
Dmitry Kovalev [Mon, 1 Sep 2014 01:39:46 +0000 (18:39 -0700)]
Merge "Replacing asm 8x8 variance calculation with intrinsics."

9 years agoRemoving dummy_packing member from VP9_COMP.
Dmitry Kovalev [Fri, 22 Aug 2014 00:28:44 +0000 (17:28 -0700)]
Removing dummy_packing member from VP9_COMP.

Change-Id: I571ce84c97087f8a1a36a10058393bfdcefbf72a

9 years agoReplacing asm 8x8 variance calculation with intrinsics.
Dmitry Kovalev [Fri, 29 Aug 2014 21:25:31 +0000 (14:25 -0700)]
Replacing asm 8x8 variance calculation with intrinsics.

New code is 10% faster for 64-bit and 25% faster for 32-bit. Compiled
using clang.

Change-Id: I8ba1544c30dd6f3ca479db806384317549650dfc

9 years agoMerge "Fix int64_t to unsigned int conversion warnings"
Jingning Han [Sat, 30 Aug 2014 00:15:46 +0000 (17:15 -0700)]
Merge "Fix int64_t to unsigned int conversion warnings"

9 years agoMerge "Extend block level sse to support multiple txfm blocks"
Jingning Han [Sat, 30 Aug 2014 00:15:30 +0000 (17:15 -0700)]
Merge "Extend block level sse to support multiple txfm blocks"

9 years agoFix int64_t to unsigned int conversion warnings
Jingning Han [Thu, 28 Aug 2014 16:21:58 +0000 (09:21 -0700)]
Fix int64_t to unsigned int conversion warnings

Use unsigned int type to store the sse in the pixel domain. The
precision is sufficient to handle sse of block size up to 64x64.
The transform domain version however needs int64_t, since there is
a transfer gain applied in the forward transformation that might
cause unsigned int overflow.

Change-Id: Ifef97c38597e426262290f35341fbb093cf0a079

9 years agoMerge "Removing variance MMX code."
Dmitry Kovalev [Fri, 29 Aug 2014 21:08:02 +0000 (14:08 -0700)]
Merge "Removing variance MMX code."

9 years agoMerge "vp9: sync workers at the start of decode_tiles_mt()"
James Zern [Fri, 29 Aug 2014 21:07:37 +0000 (14:07 -0700)]
Merge "vp9: sync workers at the start of decode_tiles_mt()"

9 years agoMerge "vp9: fix m/t loop filter invalid free"
James Zern [Fri, 29 Aug 2014 21:07:02 +0000 (14:07 -0700)]
Merge "vp9: fix m/t loop filter invalid free"

9 years agoMerge "Minor fix in vp9_encoder.h"
Yunqing Wang [Fri, 29 Aug 2014 20:44:10 +0000 (13:44 -0700)]
Merge "Minor fix in vp9_encoder.h"

9 years agoRevert "Revert "VP8 for ARMv8 by using NEON intrinsics 08""
Scott LaVarnway [Fri, 29 Aug 2014 20:29:36 +0000 (13:29 -0700)]
Revert "Revert "VP8 for ARMv8 by using NEON intrinsics 08""

This reverts commit 928ff03889dadc3f63883553b443c08e625b4885

Compiles with 4.6 now.

Change-Id: Ib455da1098bb0e0623248be07579882a425fcbd1

9 years agoMinor fix in vp9_encoder.h
Yunqing Wang [Fri, 29 Aug 2014 18:27:24 +0000 (11:27 -0700)]
Minor fix in vp9_encoder.h

Added the missing "int".

Change-Id: I7c8af3dee700837b40f010d53e1431a59370ae3a

9 years agovp9: fix m/t loop filter invalid free
James Zern [Fri, 29 Aug 2014 00:11:31 +0000 (17:11 -0700)]
vp9: fix m/t loop filter invalid free

store the number of allocated rows in VP9LfSync, the calculated values
can not be relied on when dealing with corrupt material.

Change-Id: I13b8bcec9738c299a71df726772ab7ac05511e5b

9 years agoRemoving variance MMX code.
Dmitry Kovalev [Fri, 29 Aug 2014 00:31:00 +0000 (17:31 -0700)]
Removing variance MMX code.

Removed functions:
* vp9_mse16x16_mmx
* vp9_get_mb_ss_mmx
* vp9_get4x4var_mmx
* vp9_get8x8var_mmx
* vp9_variance4x4_mmx
* vp9_variance8x8_mmx
* vp9_variance16x16_mmx
* vp9_variance16x8_mmx
* vp9_variance8x16_mmx

They all have SSE2 equivalent.

Change-Id: I3796f2477c4f59b35b4828f46a300c16e62a2615

9 years agoSkip intra mode tests depending on inter residuals
Jingning Han [Fri, 29 Aug 2014 05:58:30 +0000 (22:58 -0700)]
Skip intra mode tests depending on inter residuals

This commit allows encoder to skip intra coding mode test, when
the known inter residual is less than the source variance. It
reduces the runtime of speed 3 for test clips:
bus cif 1000 kbps: 8587 ms -> 8260 ms, 3.8% speed-up
pedestrian 1080p 2000 kbps: 161381 ms -> 155241 ms, 3.7% speed-up.

The compression performance is down by
derf   -0.36%
stdhd  -0.25%

Change-Id: I75ce1e035b4da2153cb1ac14111d1a07c05a735d

9 years agoExtend block level sse to support multiple txfm blocks
Jingning Han [Thu, 28 Aug 2014 16:09:37 +0000 (09:09 -0700)]
Extend block level sse to support multiple txfm blocks

This commit extends the sse and forward transform computation flag
to support the case 64x64 blocks where there are 4 32x32 2D-DCT
blocks.

Change-Id: I86a3e805dfaa0f3abd812f590520c71aa0e40473

9 years agoMerge "vp9: fix crash in inline loopfilter w/corrupt file"
James Zern [Fri, 29 Aug 2014 01:37:30 +0000 (18:37 -0700)]
Merge "vp9: fix crash in inline loopfilter w/corrupt file"

9 years agoMerge "vp9: fix crash in mt loopfilter w/corrupt file"
James Zern [Fri, 29 Aug 2014 01:36:31 +0000 (18:36 -0700)]
Merge "vp9: fix crash in mt loopfilter w/corrupt file"

9 years agovp9: sync workers at the start of decode_tiles_mt()
James Zern [Fri, 29 Aug 2014 00:50:38 +0000 (17:50 -0700)]
vp9: sync workers at the start of decode_tiles_mt()

prevents any problems resuming decode after decoding a corrupt frame

Change-Id: Ib7eb1b5c062aebe71074fef1ece32a32822c16be

9 years agoMerge "Implementing 4x4 variance calculation with SSE2."
Dmitry Kovalev [Fri, 29 Aug 2014 00:25:46 +0000 (17:25 -0700)]
Merge "Implementing 4x4 variance calculation with SSE2."

9 years agoImplementing 4x4 variance calculation with SSE2.
Dmitry Kovalev [Thu, 28 Aug 2014 00:39:44 +0000 (17:39 -0700)]
Implementing 4x4 variance calculation with SSE2.

New SSE2 function is three times faster than MMX one.

Change-Id: I4f387ce9f75b88379176ec7bdc62d86eb5f70fbe

9 years agoRemoving alg_priv from vpx_codec_priv struct.
Dmitry Kovalev [Thu, 21 Aug 2014 00:02:10 +0000 (17:02 -0700)]
Removing alg_priv from vpx_codec_priv struct.

In order to understand memory layout consider the declaration of the
following structs. The first one is a part of our API:

struct vpx_codec_ctx {
  // ...
  struct vpx_codec_priv *priv;
};

The second one is defined in vpx_codec_internal.h:

struct vpx_codec_priv {
  // ...
};

The following struct is defined 4 times for encoder/decoder VP8/VP9:

struct vpx_codec_alg_priv {
  struct vpx_codec_priv base;
  // ...
};

Private data allocation for the given ctx:

struct vpx_codec_ctx *ctx = <get>
struct vpx_codec_alg_priv *alg_priv = <allocate>
ctx->priv = (struct vpx_codec_priv *)alg_priv;

The cast works because vpx_codec_alg_priv has a
vpx_codec_priv instance as a first member 'base'.

Change-Id: I10d1afc8c9a7dfda50baade8c7b0296678bdb0d0

9 years agoMerge "Removing unused arnr_type from VP9EncoderConfig and vp9_extracfg."
Dmitry Kovalev [Thu, 28 Aug 2014 20:50:05 +0000 (13:50 -0700)]
Merge "Removing unused arnr_type from VP9EncoderConfig and vp9_extracfg."

9 years agoMerge "Early termination in encoding partition search"
Yunqing Wang [Thu, 28 Aug 2014 20:49:39 +0000 (13:49 -0700)]
Merge "Early termination in encoding partition search"

9 years agoMerge "vp8_multi_resolution_encoder: Huge cleanup."
Dmitry Kovalev [Thu, 28 Aug 2014 19:13:29 +0000 (12:13 -0700)]
Merge "vp8_multi_resolution_encoder: Huge cleanup."

9 years agoMerge "test/vp8_multi_resolution_encoder.sh: Add missing devnull redirect."
James Zern [Thu, 28 Aug 2014 18:59:30 +0000 (11:59 -0700)]
Merge "test/vp8_multi_resolution_encoder.sh: Add missing devnull redirect."

9 years agoMerge "Removing unused debug code under WRITE_RECON_BUFFER."
Dmitry Kovalev [Thu, 28 Aug 2014 18:46:45 +0000 (11:46 -0700)]
Merge "Removing unused debug code under WRITE_RECON_BUFFER."

9 years agoMerge "Converting configure_skippable_frame() to is_skippable_frame()."
Dmitry Kovalev [Thu, 28 Aug 2014 18:45:32 +0000 (11:45 -0700)]
Merge "Converting configure_skippable_frame() to is_skippable_frame()."

9 years agoMerge "Renaming vpxenc option from frame_boost to frame-boost."
Dmitry Kovalev [Thu, 28 Aug 2014 18:42:23 +0000 (11:42 -0700)]
Merge "Renaming vpxenc option from frame_boost to frame-boost."

9 years agoMerge "Adding several vpxenc parameter ranges to help output."
Dmitry Kovalev [Thu, 28 Aug 2014 18:42:04 +0000 (11:42 -0700)]
Merge "Adding several vpxenc parameter ranges to help output."

9 years agoEarly termination in encoding partition search
Yunqing Wang [Fri, 15 Aug 2014 00:25:21 +0000 (17:25 -0700)]
Early termination in encoding partition search

In the partition search, the encoder checks all possible
partitionings in the superblock's partition search tree.
This patch proposed a set of criteria for partition search
early termination, which effectively decided whether or
not to terminate the search in current branch based on the
"skippable" result of the quantized transform coefficients.
The "skippable" information was gathered during the
partition mode search, and no overhead calculations were
introduced.

This patch gives significant encoding speed gains without
sacrificing the quality.

Borg test results:
1. At speed 1,
   stdhd set: psnr: +0.074%, ssim: +0.093%;
   derf set:  psnr: -0.024%, ssim: +0.011%;
2. At speed 2,
   stdhd set: psnr: +0.033%, ssim: +0.100%;
   derf set:  psnr: -0.062%, ssim: +0.003%;
3. At speed 3,
   stdhd set: psnr: +0.060%, ssim: +0.190%;
   derf set:  psnr: -0.064%, ssim: -0.002%;
4. At speed 4,
   stdhd set: psnr: +0.070%, ssim: +0.143%;
   derf set:  psnr: -0.104%, ssim: +0.039%;

The speedup ranges from several percent to 60+%.
                 speed1    speed2    speed3    speed4
(1080p, 100f):
old_town_cross:  48.2%     23.9%     20.8%     16.5%
park_joy:        11.4%     17.8%     29.4%     18.2%
pedestrian_area: 10.7%      4.0%      4.2%      2.4%
(720p, 200f):
mobcal:          68.1%     36.3%     34.4%     17.7%
parkrun:         15.8%     24.2%     37.1%     16.8%
shields:         45.1%     32.8%     30.1%      9.6%
(cif, 300f)
bus:              3.7%     10.4%     14.0%      7.9%
deadline:        13.6%     14.8%     12.6%     10.9%
mobile:           5.3%     11.5%     14.7%     10.7%

Change-Id: I246c38fb952ad762ce5e365711235b605f470a66

9 years agovp8_multi_resolution_encoder: Huge cleanup.
Dmitry Kovalev [Tue, 26 Aug 2014 22:54:00 +0000 (15:54 -0700)]
vp8_multi_resolution_encoder: Huge cleanup.

Change-Id: I65b2c1fbed5a306949843315999d10368a100431

9 years agotest/vp8_multi_resolution_encoder.sh: Add missing devnull redirect.
Tom Finegan [Thu, 28 Aug 2014 17:49:33 +0000 (10:49 -0700)]
test/vp8_multi_resolution_encoder.sh: Add missing devnull redirect.

Change-Id: Id60ae8178191e30603a5c8665793ace7eb9c8533

9 years agoAdding several vpxenc parameter ranges to help output.
Dmitry Kovalev [Tue, 26 Aug 2014 06:46:45 +0000 (23:46 -0700)]
Adding several vpxenc parameter ranges to help output.

Change-Id: Iec1a00203930a539ed584961aed4b2bfd7488255

9 years agoMerge "Updates vp9_pattern search to return integer sads"
Deb Mukherjee [Thu, 28 Aug 2014 16:38:56 +0000 (09:38 -0700)]
Merge "Updates vp9_pattern search to return integer sads"

9 years agoMerge "Replacing int_mv with MV."
Dmitry Kovalev [Thu, 28 Aug 2014 16:18:11 +0000 (09:18 -0700)]
Merge "Replacing int_mv with MV."

9 years agoUpdates vp9_pattern search to return integer sads
Deb Mukherjee [Wed, 27 Aug 2014 21:06:30 +0000 (14:06 -0700)]
Updates vp9_pattern search to return integer sads

Updates the vp9_pattern_search function to return integer one-away
neighbors' sad values, for subsequent use in speeding up the
sub-pel search. Also, removes code for the do_refine option
which is not being used currently.
Updates the integer and subpel functions to pass in a 5-element
sad list for output or input.

A new pruned sub-pel search algorithm is implemented that uses
the sad returned from the integer pel search. But it is not
deployed yet.

Change-Id: Ifa9f5ad024b5b660570366d2bd900343e1891520

9 years agoMerge "Re-work RD modeling based on inter frame prediction residual"
Jingning Han [Thu, 28 Aug 2014 01:48:49 +0000 (18:48 -0700)]
Merge "Re-work RD modeling based on inter frame prediction residual"

9 years agoMerge "Re-use switchable rate value in handle_inter_mode"
Jingning Han [Thu, 28 Aug 2014 01:48:41 +0000 (18:48 -0700)]
Merge "Re-use switchable rate value in handle_inter_mode"

9 years agoMerge "Add an early termination check in handle_inter_mode"
Jingning Han [Thu, 28 Aug 2014 01:48:32 +0000 (18:48 -0700)]
Merge "Add an early termination check in handle_inter_mode"

9 years agoMerge "Use max txfm size unit in rate-distortion cost modeling"
Jingning Han [Thu, 28 Aug 2014 01:48:24 +0000 (18:48 -0700)]
Merge "Use max txfm size unit in rate-distortion cost modeling"

9 years agovp9: fix crash in inline loopfilter w/corrupt file
James Zern [Wed, 27 Aug 2014 23:29:34 +0000 (16:29 -0700)]
vp9: fix crash in inline loopfilter w/corrupt file

attempting to decode a frame after the previous frame failed has the
potential of interrupting an earlier loop filter task

Change-Id: I6f2b1ddcdf5b89c3e2ee8caf5289dada2a087d66

9 years agoAdd test for vp8_multi_resolution_encoder.
Tom Finegan [Wed, 27 Aug 2014 22:48:44 +0000 (15:48 -0700)]
Add test for vp8_multi_resolution_encoder.

Change-Id: I94667a23046e3cf17c421ac97ca66ea57f846b5c

9 years agoRe-work RD modeling based on inter frame prediction residual
Jingning Han [Tue, 26 Aug 2014 23:52:56 +0000 (16:52 -0700)]
Re-work RD modeling based on inter frame prediction residual

This commit re-work the operation flow related to prediction
residual generation and the rate-distortion modeling. It saves one
call for model_rd_for_sb.

Change-Id: Icaf96c0ff09c903637ed5283448afe01d798195f

9 years agoRe-use switchable rate value in handle_inter_mode
Jingning Han [Tue, 26 Aug 2014 23:06:28 +0000 (16:06 -0700)]
Re-use switchable rate value in handle_inter_mode

The value of switchable rate has been stored in a local variable.
This change skips the second call to vp9_get_switchable_rate() by
reusing the local variable.

Change-Id: Ib7d3fef7621cc4bde94c6d6e6b3a71f1fd4559f2

9 years agoAdd an early termination check in handle_inter_mode
Jingning Han [Tue, 26 Aug 2014 22:53:56 +0000 (15:53 -0700)]
Add an early termination check in handle_inter_mode

Check the mode and motion vector cost. If it is already above
the existing best rate-distortion cost, skip the rest check process
on this mode.

Change-Id: Ie065cebdfda2a3be3be18b8e8b43dc29aaa8c179

9 years agoUse max txfm size unit in rate-distortion cost modeling
Jingning Han [Tue, 26 Aug 2014 19:34:54 +0000 (12:34 -0700)]
Use max txfm size unit in rate-distortion cost modeling

This commit makes the rate distortion modeling run in the unit of
maximum transform block size. No compression/speed change observed.
It is for the use of later fast forward transform purpose.

Change-Id: Ibaaedb69c765e8d0c5d5012f0ec07f36fd9f68fd

9 years agovp9: fix crash in mt loopfilter w/corrupt file
James Zern [Wed, 27 Aug 2014 19:36:23 +0000 (12:36 -0700)]
vp9: fix crash in mt loopfilter w/corrupt file

if the first frame was corrupt and loop filter not called, the next call
would assume the necessary allocations had been done and segfault when
accessing a NULL pointer

Change-Id: Ib6ef505e5c594e6f0fe65ab0700172bcf06b92a6

9 years agoAdd a separate datarate test for denoiser enabled.
Marco [Wed, 27 Aug 2014 16:40:30 +0000 (09:40 -0700)]
Add a separate datarate test for denoiser enabled.

Change-Id: Ibc91a46d11ad9c58e340b4346ed813a1be9b404a

9 years agoMerge "add a new interp filter search strategy."
Yaowu Xu [Wed, 27 Aug 2014 00:30:42 +0000 (17:30 -0700)]
Merge "add a new interp filter search strategy."

9 years agoMerge "Enable denoiser for vp8 datarate tests."
Marco [Wed, 27 Aug 2014 00:04:37 +0000 (17:04 -0700)]
Merge "Enable denoiser for vp8 datarate tests."

9 years agoEnable denoiser for vp8 datarate tests.
Marco [Tue, 26 Aug 2014 18:21:04 +0000 (11:21 -0700)]
Enable denoiser for vp8 datarate tests.

Keep one test, BasicBufferModel, with denoiser set off.

Change-Id: I762c2004b3adca24f677535cfa5b991108f31f01

9 years agoAdding get_frame_pkt_flags() function.
Dmitry Kovalev [Tue, 26 Aug 2014 21:32:51 +0000 (14:32 -0700)]
Adding get_frame_pkt_flags() function.

Change-Id: Icfacc695a711ec325b1d8f2b5d927a720e2bd6b4